That is excellent VEN, I really appreciate your help. I will try this out when I get home - and this will save me a TON of unnecessary and ugly code. When you say 'it should be get_user_attacker()'s fault', do you mean that particular function should have the information when that logevent occurs?
Now on your second part, I've noticed you cannot block a log message with register_logevent. However, I saw this thread (granted it was over 2 years ago), where BAILOPAN offered a different option:
http://forums.alliedmods.net/showthread.php?t=6385
Out of curiosity, is this method still valid / accurate? I'm guessing the FakeMeta function would be preferred?
--------
For future reference, this is what came from my initial testing and how messages are ordered:
L 02/12/2007 - 02:01:01: TEST: in register_logevent(1=attacked) message
L 02/12/2007 - 02:01:01: TEST: victim is 1, attacker is 0, weapon = 0, hitzone = 0
L 02/12/2007 - 02:01:01: "blah<2><STEAM_0><T>" attacked "me<1><STEAM_0:1><CT>" with "deagle" (damage "71") (damage_armor "0") (health "29") (armor "0")
L 02/12/2007 - 02:01:01: TEST: in register_event(Damage)
L 02/12/2007 - 02:01:01: TEST: victim is 1, attacker is 2, weapon = 26, hitzone = 1
L 02/12/2007 - 02:01:01: TEST: in client_damage()
L 02/12/2007 - 02:01:01: TEST: victim is 1, attacker is 2, weapon = 26, hitzone = 1
Notice how get_user_attacker() isn't set in the logevent. Even weirder, check out what happens when the attack results in a kill...and end of the round as well:
L 02/12/2007 - 02:00:17: TEST: in register_logevent(1=attacked) message
L 02/12/2007 - 02:00:17: TEST: victim is 2, attacker is 0, weapon = 0, hitzone = 0
L 02/12/2007 - 02:00:17: "blah<2><STEAM_0><T>" attacked "me<1><STEAM_0:1><CT>" with "knife" (damage "65") (damage_armor "0") (health "-59") (armor "0")
L 02/12/2007 - 02:00:17: TEST: in register_event(DeathMsg)
L 02/12/2007 - 02:00:17: TEST: in register_logevent(1=killed)
L 02/12/2007 - 02:00:17: "blah<2><STEAM_0><T>" killed "me<1><STEAM_0:1><CT>" with "knife"
L 02/12/2007 - 02:00:17: Team "CT" triggered "CTs_Win" (CT "1") (T "0")
L 02/12/2007 - 02:00:17: World triggered "Round_End"
L 02/12/2007 - 02:00:17: TEST: in register_event(Damage)
L 02/12/2007 - 02:00:17: victim is 1, attacker is 2, weapon = 29, hitzone = 4
L 02/12/2007 - 02:00:17: TEST: in client_damage()
L 02/12/2007 - 02:00:17: victim is 1, attacker is 2, weapon = 29, hitzone = 4
Look closely. This really caught me by surprise, because the DeathMsg event, logevent for the kill, and 2 logevents for the round ending all occur before Damage and client_damage(). I also found it strange how for kills, the DeathMsg occurs before the log, while for attacks it is the opposite.