#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ć?


Dodatki SourceMod



Temat jest zamknięty









