#include <amxmodx>
#include <engine>
#include <zombieplague>
#define PLUGIN "Multiple jumps for the nemesis"
#define VERSION "0.1"
#define AUTHOR "Strax"
//#define FOR_ADMINS
#if defined FOR_ADMINS
#define ADMINACCESS ADMIN_LEVEL_B
#endif
new Jumpnum[33] = false
new bool:canJump[33] = false
new g_maxjumps
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
}
public client_putinserver(id)
{
Jumpnum[id] = 0
canJump[id] = false
}
public client_disconnect(id)
{
Jumpnum[id] = 0
canJump[id] = false
}
public plugin_precache()
{
g_maxjumps = register_cvar("zp_nemesis_maxjumps", "3")
}
public zp_user_humanized_post(player)
{
if (zp_get_user_nemesis(player))
{
canJump[player] = true
Jumpnum[player] = true
}
}
public client_PreThink(id)
{
if (!is_user_alive(id) || !zp_get_user_nemesis(id))
return PLUGIN_CONTINUE
#if defined FOR_ADMINS
if( !( get_user_flags(id) & ADMINACCESS) )
return PLUGIN_CONTINUE
#endif
new nbut = get_user_button(id)
new obut = get_user_oldbutton(id)
if (( nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
{
if (Jumpnum[id] < get_pcvar_num(g_maxjumps))
{
canJump[id] = true
Jumpnum[id]++
return PLUGIN_CONTINUE
}
}
if ((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
{
Jumpnum[id] = 0
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}
public client_PostThink(id)
{
if (!is_user_alive(id) || !zp_get_user_nemesis(id))
return PLUGIN_CONTINUE
#if defined FOR_ADMINS
if( !( get_user_flags(id) & ADMINACCESS) )
return PLUGIN_CONTINUE
#endif
if (canJump[id] == true)
{
new Float:velocity[3]
entity_get_vector(id,EV_VEC_velocity,velocity)
velocity[2] = random_float(265.0,285.0)
entity_set_vector(id,EV_VEC_velocity,velocity)
canJump[id] = false
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}