描述
当玩家死亡时,无论是自杀还是被其他玩家杀死,都会调用此回调。
姓名 |
描述 |
playerid |
死亡玩家的ID。 |
killerid |
杀死已死亡玩家的玩家的 ID,如果没有则为 INVALID_PLAYER_ID。 |
reason |
玩家死亡原因的ID(武器ID )。 |
返回
0 - 将阻止其他过滤器脚本接收此回调。
1 - 表示此回调将传递给下一个过滤器脚本。
它总是在过滤器脚本中首先被调用。
例子
new PlayerDeaths[MAX_PLAYERS];
new PlayerKills[MAX_PLAYERS];
public OnPlayerDeath(playerid, killerid, reason)
{
SendDeathMessage(killerid, playerid, reason); // Shows the kill in the killfeed
// Check that the killerid is valid before doing anything with it
if (killerid != INVALID_PLAYER_ID)
{
PlayerKills[killerid] ++;
}
// Outside the check, handle stuff for playerid (it's always valid)
PlayerDeaths[playerid] ++;
return 1;
}
笔记
提示
原因将从任何火源(例如莫洛托夫,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 的索引,这是越界的。