Talk:Event Handling
OnHit & OnHitWith
An OnHit event handler with no filter will trigger when any object is struck by an attack or projectile, assigning the first parameter to any physical object including statics, activators, misc items, doors, containers, etc. However, unless an actor was struck, the second parameter (the attacker) will be a projectile if using a ranged attack. The second parameter will still correctly be an actor if using a melee weapon.
OnHitWith is somewhat more useful in that it will always trigger for any object, and will always provide the second parameter for the weapon used by the attacker. However, it will still not yield which actor was the attacker, merely the weapon they are using.
There is thus no way to determine who caused an impact against an object with a ranged weapon, although it is entirely possible to determine who caused an impact against a person or creature.