Код
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <csx>
#include <engine>
#include <fakemeta>
new Title[32] = "Stealth Assassin"
new Version[32] = "1.3.0"
new Author[16] = "TaRgEt*TuRkEy"
new knifekill = 0
new stealthmode = 0
new roundfreeze = 1
public client_damage(attacker, victim, damage, wpnindex, hitplace, TA)
{
if(get_cvar_num("amx_stealthonehitkill")==1)
{
if(is_user_alive(victim))
{
if(attacker != victim) //prevents killing self with knife from fall damage.
{
if(wpnindex == CSW_KNIFE && TA != 1)
{
knifekill = 1
if(hitplace == HIT_HEAD)
{
make_deathmsg(attacker, victim, 1, "knife")
}
else
{
make_deathmsg(attacker, victim, 0, "knife")
}
user_silentkill(victim)
set_user_frags(attacker, get_user_frags(attacker)+1)
}
}
}
}
return PLUGIN_HANDLED
}
public blocksuicide(at_type, message[])
{
if(containi(message,"suicide") > -1 && containi(message,"world") > -1 && knifekill == 1)
{
knifekill = 0
return FMRES_SUPERCEDE
}
return PLUGIN_CONTINUE
}
public SetVisibility(id)
{
new wepi = read_data(2)
BackToNorm(id)
if(stealthmode==1)
{
client_cmd(id,"weapon_knife")
}
if(wepi == 29)
{
if(is_user_alive(id))
AlterAlpha(id,get_cvar_num("amx_stealthvalue"))
} else {
BackToNorm(id)
}
return PLUGIN_HANDLED
}
public BackToNorm(id)
{
set_user_footsteps(id,0)
set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderTransAlpha,255)
set_hudmessage(200, 100, 0, -2.0, 0.20, 0, 6.0, 6.0, 0.5, 0.15, 4)
show_hudmessage(id,"")
set_view(id, CAMERA_NONE)
}
public AlterAlpha(id,alphaVal)
{
new Float:maxSpeed = get_cvar_float("amx_stealthspeed")
if(roundfreeze == 0)
{
set_user_maxspeed(id,maxSpeed)
}
set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderTransAlpha,alphaVal)
// set_hudmessage(200, 100, 0, -2.0, 0.20, 0, 6.0, 99999.0, 0.5, 0.15, 4)
// show_hudmessage(id,"You are stealthing!")
set_user_footsteps(id,1)
if(get_cvar_num("amx_stealth3rdperson")==1)
{
set_view(id, CAMERA_3RDPERSON)
}
}
public stealthmatch(id)
{
new arg[2]
read_argv(1,arg,1)
set_hudmessage(100, 125, 250, -1.0, 0.25, 0, 1.0, 5.0, 0.1, 0.2, 2)
if(equal(arg,"1"))
{
client_cmd(id,"weapon_knife")
stealthmode = 1
show_hudmessage(0,"Stealth Mode Engaged.")
set_lights("e")
} else if(equal(arg,"0")){
stealthmode = 0
show_hudmessage(0,"Stealth Mode Off.")
set_lights("m")
} else {
console_print(id,"Usage: amx_stealthmatch 1 = 0n 0 = off")
}
return PLUGIN_CONTINUE
}
public round_end()
{
roundfreeze = 1
}
public round_start()
{
roundfreeze = 0
}
public plugin_init()
{
register_plugin(Title,Version,Author)
register_event("CurWeapon","SetVisibility","b","1=1")
register_forward(FM_AlertMessage,"blocksuicide")
register_concmd("amx_stealthmatch","stealthmatch",ADMIN_LEVEL_A,"- disable and enable stealth match 1 = on 0 = off")
register_logevent("round_start", 2, "1=Round_Start")
register_logevent("round_end", 2, "1=Round_End")
register_cvar("amx_stealthvalue","120")
register_cvar("amx_stealthspeed","345")
register_cvar("amx_stealthonehitkill","1")
register_cvar("amx_stealth3rdperson","1")
return PLUGIN_HANDLED
}
public plugin_precache()
{
//Fixes set_view bug that needs this model on map change
precache_model("models/rpgrocket.mdl")
return PLUGIN_CONTINUE
}