#include <amxmodx> #include <fun> #include <fakemeta> #include <hamsandwich> new hitbox[33] public plugin_init() { register_plugin("Real damage","1.0","grankee") RegisterHam(Ham_TakeDamage, "player", "hook_TakeDamage") RegisterHam(Ham_TraceAttack,"player","func_TraceAttack") register_forward(FM_Spawn,"spawne") } public spawne(id) { hitbox[id]=0 } public func_TraceAttack(id,idattacker,Float:damage,Float:direction[3],traceresult,damagebits) { hitbox[id] = get_tr2(traceresult,TR_iHitgroup) return HAM_IGNORED } public hook_TakeDamage(Victim, weapid, Attacker, Float:damage, damagebits) { if(!is_user_alive(Attacker)) return HAM_IGNORED new Ateam[6],Vteam[6] get_user_team(Attacker,Ateam,5) get_user_team(Victim,Vteam,5) if(equal(Ateam,Vteam)) return HAM_IGNORED new classa[32] pev(weapid,pev_classname,classa,31) if(equal(classa,"grenade")) return HAM_IGNORED new bron=get_user_weapon(Attacker) if(bron==CSW_AWP) { SetHamParamFloat(4,damage*1.3) return HAM_HANDLED } if(hitbox[Victim]==HIT_HEAD) { if(bron==CSW_P228||bron==CSW_ELITE||bron==CSW_FIVESEVEN||bron==CSW_GLOCK18||bron==CSW_USP) { SetHamParamFloat(4,damage*1.3) return HAM_HANDLED } if(damage>20.0) { set_user_health(Victim,1) return HAM_IGNORED } } return HAM_IGNORED }
A więc tak, kod działa jak trzeba, nie ma błędów przy kompilacji ani eksploatacji. Jest jednak pewien problem, przez ten plugin na serwerze 30 slotowym ścina w losowych momentach(jednak raczej zawsze podczas zadawania dmg). Czy da radę coś z tym zrobić?