minetest-wiki-minenux/en/backporting/minetest-engine-api.md
2024-04-07 15:49:44 +00:00

1.6 KiB

reason or PlayerHPChangeReason

PlayerHPChangeReason table kind of, the minetest api is so crap that does not specified that has properties.. neither refers to the PlayerHPChangeReason object, the most important things here are:

since 5.0

  • from with values of
    • mod
    • engine
  • type values when specific hp actions, and also any of those will have additional fields from mods.
    • set_hp: A mod or the engine called set_hp without giving a type - use this for custom damage types.
    • punch: Was punched. reason.object will hold the puncher, or nil if none.
    • fall: the player dies from a high fall or something forced
    • node_damage: damage_per_second from a neighboring node. for older 5.2 use the position of player to get node_pos
    • drown: since 5.5
    • respawn:
  • node since 5.3 will hold the node name or nil if type is node_damage.
  • node_pos since 5.3 will hold the position of the node if type is node_damage.

register_on_dieplayer and register_on_player_hpchange

Those functions for player dead were enhanced since version 5, using new reason or PlayerHPChangeReason

  • minetest.register_on_dieplayer(function(ObjectRef)) since 0.4.15, 4.0
  • minetest.register_on_dieplayer(function(ObjectRef, reason)) since 5.0

Those functions ofr player hp change where enhanced since version 5

  • minetest.register_on_player_hpchange(func(player, hp_change), modifier) since 0.4.15, 4.0
  • minetest.register_on_player_hpchange(function(player, hp_change, reason), modifier) since 5.0