OnPlayerDeath
Paramètres
Cette callback est appelée quand le joueur est mort. Il peut s'agir aussi bien d'une mort par kill qu'une mort par suicide.
| Nom | Description |
|---|---|
int playerid | ID du joueur mort |
int killerid | ID du joueur qui kill le playerid, ou INVALID_PLAYER_ID à défaut |
int WEAPON:reason | ID de la raison de la mort |
Valeur de retour
Cette callback ne retourne rien, mais doit retourner quelque chose. Autrement dit, return callback(); ne fonctionnera pas car la callback ne retourne rien, mais un return (return 1; ou return 0;) doit être effectué dans la callback.
Exemple
new PlayerDeaths[MAX_PLAYERS];
new PlayerKills[MAX_PLAYERS];
public OnPlayerDeath(playerid, killerid, WEAPON:reason)
{
SendDeathMessage(killerid, playerid, reason); // Notification dans le killfeed
// Vérifie si le killerid est valide
if (killerid != INVALID_PLAYER_ID)
{
PlayerKills[killerid] ++;
}
// Ajoute une mort au playerid
PlayerDeaths[playerid] ++;
return 1;
}
Astuces
- Les morts à raison d'une source de feu seront caractérisées par l'ID 37 (lance-flammes) ;
- La raison pour les explosions avec une arme (RPG, grenade, ...) sera caractérisée par l'ID 51.
- Vous n'avez pas besoin de vérifier si
killeridvautINVALID_PLAYER_IDavant d'utiliser SendDeathMessage.INVALID_PLAYER_IDest un ID de tueur valide et s'affichera correctement. playeridest le seul à pouvoir appeler cette callback (bon à savoir pour un anti fake death par exemple).
Vous DEVEZ vérifier que killerid est valide (pas INVALID_PLAYER_ID) avant de l'utiliser dans un array (n'importe où en réalité), sinon le script OnPlayerDeath est susceptible de crash. C'est parce que INVALID_PLAYER_ID est défini comme ayant la valeur '65535' que si un array a seulement MAX_PLAYERS comme élément le script OnPlayerDeath va crash (vous tentez d'indexer au-delà de la limite MAX_PLAYERS).
Callbacks connexes
Les Callbacks ci-dessous sont indirectement ou directement liées à cette Callback.
- OnPlayerSpawn: Appelée lorsqu'un joueur spawn (apparaît).
Fonctions connexes
Les fonctions suivantes peuvent être utiles, car elles sont liées à ce rappel d'une manière ou d'une autre.
- SendDeathMessage: Ajoute un kill dans le killfeed.
- SetPlayerHealth: Heal un joueur.