描述

当玩家死亡时,无论是自杀还是被其他玩家杀死,都会调用此回调。
姓名 描述
playerid 死亡玩家的ID。
killerid 杀死已死亡玩家的玩家的 ID,如果没有则为 INVALID_PLAYER_ID。
reason 玩家死亡原因的ID(武器ID )。

返回

0 - 将阻止其他过滤器脚本接收此回调。 1 - 表示此回调将传递给下一个过滤器脚本。 它总是在过滤器脚本中首先被调用。

例子

  1. new PlayerDeaths[MAX_PLAYERS];
  2. new PlayerKills[MAX_PLAYERS];
  3. public OnPlayerDeath(playerid, killerid, reason)
  4. {
  5. SendDeathMessage(killerid, playerid, reason); // Shows the kill in the killfeed
  6. // Check that the killerid is valid before doing anything with it
  7. if (killerid != INVALID_PLAYER_ID)
  8. {
  9. PlayerKills[killerid] ++;
  10. }
  11. // Outside the check, handle stuff for playerid (it's always valid)
  12. PlayerDeaths[playerid] ++;
  13. return 1;
  14. }

笔记

提示
原因将从任何火源(例如莫洛托夫,18)返回37(火焰喷射器) 原因将从任何产生爆炸的武器(例如RPG,手榴弹)返回51 使用前无需检查killerid是否有效在SendDeathMessage中。INVALID_PLAYER_ID 是该函数中有效的 KillerID ID 参数。playerid 是唯一可以调用回调的人。(对于防假死很有帮助)
警告
在数组(或任何地方)中使用“killerid”之前,您必须检查“killerid”是否有效(不是 INVALID_PLAYER_ID),因为它会导致 OnPlayerDeath 脚本崩溃(而不是整个脚本)。这是因为 INVALID_PLAYER_ID 被定义为 65535,并且如果数组只有“MAX_PLAYER”元素(例如 500),那么您将尝试访问高于 499 的索引,这是越界的。