this should work fine:
PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <fun>
new g_max_players
public plugin_init(){
register_plugin( "NoWeaponDmg", "1.0", "Sylwester")
register_forward(FM_TraceLine, "traceline")
register_forward(FM_TraceHull, "tracehull", 1)
register_event("Damage", "damage_event", "b", "2!0")
g_max_players = get_maxplayers()
}
//block bullets
public traceline(Float:v1[3], Float:v2[3], noMonsters, pentToSkip){
new iAttacker = pentToSkip
new iVictim = get_tr(TR_pHit)
if ( iVictim >= 1 && iVictim <= g_max_players && iAttacker >= 1 && iAttacker <= g_max_players){
set_tr(TR_flFraction, 1.0)
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}
//block knife
public tracehull(Float:v1[3], Float:v2[3], noMonsters, hullNumber, pentToSkip){
new iAttacker = pentToSkip
new iVictim = get_tr(TR_pHit)
if ( iVictim >= 1 && iVictim <= g_max_players && iAttacker >= 1 && iAttacker <= g_max_players){
set_tr(TR_flFraction, 1.0)
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}
//block HE grenades
public damage_event(id){
if(id < 1 || id > g_max_players)
return PLUGIN_CONTINUE
new weapon
new bodypart
new attacker = get_user_attacker(id, weapon, bodypart)
if(attacker < 1 || attacker > g_max_players)
return PLUGIN_CONTINUE
new damage = read_data(2)
if(weapon==4) //grenade
set_user_health(id, get_user_health (attacker) + damage)
return PLUGIN_HANDLED
}
__________________