• Damage info (getting attackers/other things)
    6 replies, posted
I'm experimenting with classes in Fretta right now and am having some trouble getting some info from the, uh, damage. The EntityTakeDamage function only activates on taking damage, and I can't seem to get who is attacking. Like, for example... Player A attacks Player B. I know how to tell Player B that Player A is attacking them, but how do I tell Player A that they're attacking Player B? (I know it's really obvious to Player A, but still) Also, is there any sort of function that runs when a player attacks another? Not a take damage, but some sort of a 'deal damage' thing... or something like that. I'm having a hard time trying to explain what I mean.
Just notify the attacker in takedamage. So in the same hook where you notice the victim.
[b][url=http://wiki.garrysmod.com/?title=CTakeDamageInfo.GetAttacker]CTakeDamageInfo.GetAttacker [img]http://wiki.garrysmod.com/favicon.ico[/img][/url][/b]? lol
Alright, after playing with the code for a bit, I got this out... [lua]function OnDamageTaken(ent, attacker) ent:ChatPrint("YOU HAVE BEEN SHOT BY " .. attacker) end function OnHit(ent, attacker) attacker:ChatPrint("YOU HAVE SHOT " .. ent) end function who_hit_who( ent, inflictor, attacker, amount ) ent:OnDamageTaken(ent, attacker) attacker:OnHit(ent, attacker) end hook.Add("EntityTakeDamage","who_hit_who",who_hit_who)[/lua] It's a serverside script, but I'm getting no message on shot/being shot in chat/server console. I'm sure the answer is staring me right in the face, but...
[lua] ent:OnDamageTaken(ent, attacker) attacker:OnHit(ent, attacker) [/lua] Should be [lua] OnDamageTaken(ent, attacker) OnHit(ent, attacker) [/lua]
Still no dice. I'm beginning to think the entire problem is because of the function placement... maybe if I put OnHit and OnTakeDamage in a seperated shared file, they'll work the way I want.
[lua]hook.Add("EntityTakeDamage","who_hit_who",function( victim, inflictor, attacker, amount, dmginfo ) if victim:IsPlayer() and attacker:IsPlayer() then victim:ChatPrint("YOU HAVE BEEN SHOT BY " .. attacker:Nick()) attacker:ChatPrint("YOU HAVE SHOT " .. victim:Nick()) end end)[/lua] Use this serverside. I see no reason it wouldn't work. Making that code shared wouldn't help one bit since the hook is serverside only.
Sorry, you need to Log In to post a reply to this thread.