• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Suggestion] Control over damage & death
#1
OnPlayerTakeDamage is currently called after a player has already taken the damage. This makes it impossible to make a custom damage system.



1. OnPlayerGiveDamage does the same thing. This callback seems redundant anyway since we got lag compensation with 0.3z, no idea why that's still around.

2. OnPlayerWeaponShot prevents bullet data from being sent entirely. People don't even see when they are hit.

3. SetPlayerTeam does not prevent self-inflicted damage.



I'd like to suggest calling OnPlayerTakeDamage BEFORE a player takes damage. This way all damage could be prevented - but not all death events which brings me to my next point: death events hardcoded into the game, like a car explosion while being in the driver's seat or a parachute splat. Having greater control over these as well would give us total control over any and all damage and death events.
  Reply
#2
Well, to be honest this is already possible with a workaround, weapon-config.inc by Slice it's maybe the most famous example. I would focus more on the OnPlayerWeaponShot callback which it's kinda buggy since it doesnt even got triggered in some situations
  Reply
#3
The thing about weapon-config is that it relies on SKY which is a memory-hacking plugin. I think adding this natively is the better way to go.
  Reply
#4
Maybe doing something similar to how zcmd has OnCommandProcessed (called when command is executed) and OnCommandRecieved (called when attempt to use command is detected) where we have callbacks for when damage info has been received (before dmg is applied) and processed (after dmg is applied) by the server.
Stoned Ape

  Reply
#5
(2020-04-26, 08:44 PM)DTV Wrote: Maybe doing something similar to how zcmd has OnCommandProcessed (called when command is executed) and OnCommandRecieved (called when attempt to use command is detected) where we have callbacks for when damage info has been received (before dmg is applied) and processed (after dmg is applied) by the server.

I'd personally go with OnPlayerTakeDamage (present tense) and OnPlayerDamageTaken (past tense). I think this wording would be much clearer than OnPlayerDamageReceived and OnPlayerDamageProcessed.
  Reply


Forum Jump: