I tried to fix this Double Jump class for people who can't do codes, its really simple plugin.
So the bug is "All modes have same power/skills if you choose this Double Jump class which is more powerful for nemesis and other modes.
The idea is i try to remove double jump in round Nemesis / Assassin / Dragon / NightCrawler / Winos and make it with cvar that you can change it in console or amxx.cfg or zombieplague.cfg
Remove Double Jump in Nemesis / Assassin / Dragon / NightCrawler / Winos
Enjoy ^^
PHP Code:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <zombieplague>
#include <zp50_class_zombie>
#include <zp50_class_nemesis>
#include <zp50_class_assassin>
#include <zp50_class_nightcrawler>
#include <zp50_class_dragon>
#include <zp50_class_winos>
#include <ColorChat>
new _gJumpCount[33]
new cvar_multi_jump_amount
new cvar_multi_jump_nemesis
new cvar_multi_jump_assassin
new cvar_multi_jump_dragon
new cvar_multi_jump_nightcrawler
new cvar_multi_jump_winos
new g_zclass_jumper
new const zclass_name[] = {"Jumper"}
new const zclass_info[] = {"=Double Jump="}
new const zclass_model[] = {"zombie_source"}
new const zclass_clawmodel[] = {"v_knife_zombie.mdl"}
const zclass_health = 2000
const zclass_speed = 240
const Float:zclass_gravity = 0.7
const Float:zclass_knockback = 1.3
public plugin_init()
{
register_plugin("[ZP] Zombie Class: Jumper", "1.0", "zmd94")
RegisterHam(Ham_Player_Jump, "player", "fw_PlayerJump", 0)
cvar_multi_jump_amount = register_cvar("zp_jumper_amount", "1")
cvar_multi_jump_nemesis = register_cvar("zp_jumper_nemesis", "0")
cvar_multi_jump_assassin = register_cvar("zp_jumper_assassin", "0")
cvar_multi_jump_nightcrawler = register_cvar("zp_jumper_nightcrawler", "0")
cvar_multi_jump_dragon = register_cvar("zp_jumper_dragon", "0")
cvar_multi_jump_dragon = register_cvar("zp_jumper_winos", "0")
}
public plugin_precache()
{
g_zclass_jumper = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback)
}
public zp_user_infected_post(id, infector)
{
if (zp_get_user_zombie_class(id) == g_zclass_jumper)
{
ColorChat(id, GREEN, "^x01[^x04ZPM^x01] You're class is ^x04[^x01Rubber Zombie^x04]^x01 Your Skills :^x03 Double Jump.")
}
}
public fw_PlayerJump(id)
{
if(!is_user_alive(id) || !zp_get_user_zombie(id))
{
return HAM_IGNORED
}
if(zp_class_nemesis_get_count() && get_pcvar_num(cvar_multi_jump_nemesis) == 0)
return FMRES_IGNORED
if(zp_class_assassin_get_count() && get_pcvar_num(cvar_multi_jump_assassin) == 0)
return FMRES_IGNORED
if(zp_class_dragon_get_count() && get_pcvar_num(cvar_multi_jump_dragon) == 0)
return FMRES_IGNORED
if(zp_class_nightcrawler_get_count() && get_pcvar_num(cvar_multi_jump_nightcrawler) == 0)
return FMRES_IGNORED
if(zp_class_winos_get_count() && get_pcvar_num(cvar_multi_jump_winos) == 0)
return FMRES_IGNORED
if(zp_get_user_zombie_class(id) == g_zclass_jumper)
{
new Flags = pev(id, pev_flags)
if( Flags & FL_WATERJUMP || pev(id, pev_waterlevel) >= 2 || !(get_pdata_int(id, 246) & IN_JUMP) )
{
return HAM_IGNORED
}
if(Flags & FL_ONGROUND)
{
_gJumpCount[id] = 0
return HAM_IGNORED
}
if(get_pcvar_num(cvar_multi_jump_amount))
{
if( get_pdata_float(id, 251) < 500 && ++_gJumpCount[id] <= get_pcvar_num(cvar_multi_jump_amount))
{
new Float:fVelocity[3]
pev(id, pev_velocity, fVelocity)
fVelocity[2] = 268.328157
set_pev(id, pev_velocity, fVelocity)
return HAM_HANDLED
}
}
}
return HAM_IGNORED
}