OnPlayerDeath
Descripción
Este callback se llama cuando un jugador muere, ya sea suicidándose o siendo asesinado por otro jugador.
| Nombre | Descripción |
|---|---|
| playerid | El ID del jugador que murió. |
| killerid | El ID del jugador que mató al jugador que murió, o INVALID_PLAYER_ID si no fue ninguno. |
| WEAPON:reason | El ID de la causa de la muerte del jugador. |
Devoluciones
0 - Prevendrá a otros filterscripts de recibir este callback.
1 - Indica que este callback será pasado al siguiente filterscript.
Siempre se llama primero en filterscripts.
Ejemplos
new PlayerDeaths[MAX_PLAYERS];
new PlayerKills[MAX_PLAYERS];
public OnPlayerDeath(playerid, killerid, WEAPON:reason)
{
SendDeathMessage(killerid, playerid, reason); //Muestra el asesinato en la tabla de asesinatos
//Comprueba si 'killerid' es válida antes de hacer cualquier cosa con ella.
if (killerid != INVALID_PLAYER_ID)
{
PlayerKills[killerid] ++;
}
//Fuera de la comprobación, hacer cosas sobre playerid (siempre es válido)
PlayerDeaths[playerid] ++;
return 1;
}
Notas
nota
- La razón retornará 37 (lanzallamas) por cualquier origen de fuego (ej. molotov, 18).
- La razón retornará 51 de cualquier arma que cree una explosión (ej. Lanzamisiles, granada).
- No es necesario comprobar si killerid es válido antes de usarlo en SendDeathMessage, ya que INVALID_PLAYER_ID es un parámetro válido en esa función.
- playerid es el único que puede llamar el callback. (bueno saberlo para anti fake death)
aviso
TENÉS que comprobar que 'killerid' sea válido (no INVALID_PLAYER-ID) antes de usarlo en un array (o realmente en donde sea), ya que causará que el script OnPlayerDeath crashee (no el script entero). Esto es debido a que INVALID_PLAYER_ID es definido como 65535, y si un array sólo tiene 'MAX_PLAYERS' elementos, ejemplo 500, vas a estar intentando acceder a un índice por arriba de 499, que está fuera de alcance (out of bonds).
Funciones Relacionadas
- SendDeathMessage: Añadir un asesinato a la lista de muertes.
- SetPlayerHealth: Establecer la salud (vida) de un jugador.