Not tested.
PHP Code:
#include <amxmodx>
#include <hamsandwich>
native strip_user_weapons(index);
native cs_get_user_hasprim(index);
native cs_get_user_buyzone(index);
enum cvars
{
szCvar[MAX_NAME_LENGTH],
iValue
}
new const name_cvars[][cvars] =
{
{"surf_delete_corpse", 1},
{"surf_buyzone_kill", 0},
{"surf_superwalls", 1},
{"surf_strip_sec_weapons", 1}
}
new cvars2[4]
public plugin_init()
{
register_plugin("Surf Addon", "1.1", "cyby");
RegisterHam(Ham_TakeDamage, "player", "ham_take_damage");
RegisterHam(Ham_TraceAttack, "player", "ham_trace_attack");
RegisterHam(Ham_Killed, "player", "killed_player");
for(new i = 0; i < sizeof name_cvars; i++)
cvars2[i] = register_cvar(name_cvars[i][szCvar], name_cvars[i][iValue]);
if(get_pcvar_num(cvars2[0]) > 0)
set_msg_block(get_user_msgid("ClCorpse"), BLOCK_SET);
}
public ham_take_damage(vic, inf, att, Float:dmg, dmgbits)
{
if(!is_user_alive(att) || att == vic || !is_user_alive(vic))
return HAM_IGNORED;
if(get_pcvar_num(cvars2[1]) == 0)
{
if(get_user_team(att) != get_user_team(vic))
{
if(cs_get_user_buyzone(att))
{
client_print(att, print_center, "Nu poti ataca playeri in buy zone!");
return HAM_SUPERCEDE;
}
if(cs_get_user_buyzone(vic))
return HAM_SUPERCEDE;
}
}
if(get_pcvar_num(cvars2[2]) > 0)
{
if(!(dmgbits & (1<<1)))
return HAM_IGNORED;
if(!get_isplayer(att))
return HAM_SUPERCEDE;
}
return HAM_IGNORED;
}
public ham_trace_attack(vic, att, Float:dmg, Float:vecdr[3], tr, dmgbits)
{
if(!is_user_alive(vic) || !is_user_alive(att))
return HAM_IGNORED;
if(get_pcvar_num(cvars2[1]) == 0)
{
if(get_user_team(att) != get_user_team(vic))
{
if(cs_get_user_buyzone(att))
return HAM_SUPERCEDE;
if(cs_get_user_buyzone(vic))
return HAM_SUPERCEDE;
}
}
if(get_pcvar_num(cvars2[2]) > 0)
{
if(!(dmgbits & (1<<1)))
return HAM_IGNORED;
if(!get_isplayer(att))
return HAM_SUPERCEDE;
}
return HAM_IGNORED;
}
public killed_player(victim)
{
if(get_pcvar_num(cvars2[3]) > 0)
{
if(!is_user_connected(victim))
return HAM_IGNORED;
if(!cs_get_user_hasprim(victim))
strip_user_weapons(victim);
}
return HAM_IGNORED;
}
stock bool:get_isplayer(attacker)
{
new victim, crap;
get_user_aiming(attacker, victim, crap);
if(!is_user_alive(victim))
return false;
return true;
}
__________________