#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <engine>
#define PLUGIN "Stealth Assasin Mod"
#define VERSION "1.0"
#define AUTHOR "HoLLyWooD"
new kn_on,kn_rend,kn_speed,kn_grav,kn_addheal,kn_healtime,kn_maxhp, kn_jumps;
new jumpnum[33] = 0
new bool:dojump[33] = false
new bool:with_knife[33]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
kn_on = register_cvar("kn_on","1");
kn_rend = register_cvar("kn_rend","50");
kn_grav = register_cvar("kn_grav","0.7");
kn_speed = register_cvar("kn_speed","350.0");
kn_addheal = register_cvar("kn_addheal","10");
kn_healtime = register_cvar("kn_healtime","3.0");
kn_maxhp = register_cvar("kn_maxhp","100");
kn_jumps = register_cvar("kn_jumps","2");
register_event("CurWeapon","CurWeapon","be")
}
public CurWeapon(id){
if(get_pcvar_num(kn_on) == 1 && is_user_alive(id) && is_user_connected(id) && get_user_flags(id) & ADMIN_LEVEL_H)){
new clip, ammo
new weapon = get_user_weapon(id,clip,ammo)
if (weapon == CSW_KNIFE ){
set_user_rendering(id,kRenderFxNone, 0,0,0, kRenderTransTexture,get_pcvar_num(kn_rend));
set_user_gravity(id,get_pcvar_float(kn_grav));
set_user_maxspeed(id,get_pcvar_float(kn_speed));
if(!task_exists(id))
set_task(get_pcvar_float(kn_healtime),"task_healing",id,_,_,"b")
with_knife[id] = true
}else{
set_user_rendering(id,kRenderFxNone, 0,0,0, kRenderTransTexture, 255 )
set_user_gravity(id,1.0);
set_user_maxspeed(id,250.0);
if(task_exists(id))
remove_task(id)
with_knife[id] = false
}
}
}
public task_healing(id){
if(get_pcvar_num(kn_on) && is_user_alive(id) && get_user_flags(id) & ADMIN_LEVEL_H)){
new addhealth = get_pcvar_num(kn_addheal);
new maxhealth = get_pcvar_num(kn_maxhp);
new health = get_user_health(id);
if (is_user_alive(id) && (health < maxhealth)){
if( ( health + addhealth ) < maxhealth )
set_user_health(id, health + addhealth)
else
set_user_health(id, maxhealth)
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id)
write_short(1<<10)
write_short(1<<10)
write_short(0x0000)
write_byte(0)
write_byte(0)
write_byte(200)
write_byte(75)
message_end()
}else{
remove_task(id)
}
}
}
public client_putinserver(id){
jumpnum[id] = 0
dojump[id] = false
with_knife[id] = false
}
public client_disconnect(id){
jumpnum[id] = 0
dojump[id] = false
with_knife[id] = false
}
public client_PreThink(id){
if(is_user_alive(id) && with_knife[id] == true && get_user_flags(id) & ADMIN_LEVEL_H)){
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(kn_jumps))
{
dojump[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) && with_knife[id] == true && get_user_flags(id) & ADMIN_LEVEL_H)){
if(dojump[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)
dojump[id] = false
return PLUGIN_CONTINUE
}
}
return PLUGIN_CONTINUE
}