OnPlayerDeath — различия между версиями

Материал из Pro-Pawn Wiki
Перейти к: навигация, поиск
(Новая страница: «{{Description | Вызывается при смерти игрока. }} {{Params|playerid, killerid, reason}} {{Param | playerid | ID погибшего игр…»)
 
(изменён пример, добавлены функции в "см. также")
 
Строка 40: Строка 40:
 
public OnPlayerDeath(playerid, killerid, reason)
 
public OnPlayerDeath(playerid, killerid, reason)
 
{
 
{
 +
// Отправим в киллфид сообщение о смерти
 +
SendDeathMessage(playerid, killerid, reason);
 +
 
// Увеличим счётчик смертей у убитого игрока
 
// Увеличим счётчик смертей у убитого игрока
 
num_deaths[playerid]++;
 
num_deaths[playerid]++;
Строка 46: Строка 49:
 
// убедимся, что ID убийцы - не INVALID_PLAYER_ID
 
// убедимся, что ID убийцы - не INVALID_PLAYER_ID
 
if (killerid != INVALID_PLAYER_ID)
 
if (killerid != INVALID_PLAYER_ID)
{
 
// Увеличим счётчик
 
 
num_kills[killerid]++;
 
num_kills[killerid]++;
}
+
 
 
return 1;
 
return 1;
 
}
 
}
 
</pawn>
 
</pawn>
 +
{{SeeAlso}}
 +
* [[SendDeathMessage]]
 +
* [[SendDeathMessageToPlayer]]
 
[[Категория:Автовызываемые функции SA-MP]]
 
[[Категория:Автовызываемые функции SA-MP]]

Текущая версия на 22:18, 30 августа 2018

Описание:

Вызывается при смерти игрока.

Параметры:

(playerid, killerid, reason)
playerid ID погибшего игрока.
killerid ID убийцы. Может иметь значение INVALID_PLAYER_ID, если игрок умер сам (например, утонул или упал с высоты).
reason ID причины смерти.


Возвращаемое значение:

  • В моде: Возвращаемое значение не обрабатывается сервером.
  • В фильтрскриптах: При возврате 0 функция не будет вызвана в других фильтрскриптах.

Info rhombus.png
Примечание
Функция вызывается сначала в фильтрскриптах, затем в моде.


Exclamation.png
Внимание!
Не забывайте проверять параметр killerid на равенство INVALID_PLAYER_ID, чтобы не получить выход за пределы массива из-за неосторожного обращения к какому-либо массиву по индексу killerid (см. пример ниже).


Пример использования:

// Массивы под счётчики смертей и убийств
new num_deaths[MAX_PLAYERS], num_kills[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    num_deaths[playerid] = 0;
    num_kills[playerid] = 0;
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    // Отправим в киллфид сообщение о смерти
    SendDeathMessage(playerid, killerid, reason);

    // Увеличим счётчик смертей у убитого игрока
    num_deaths[playerid]++;

    // Перед тем, как увеличить счётчик убийств,
    // убедимся, что ID убийцы - не INVALID_PLAYER_ID
    if (killerid != INVALID_PLAYER_ID)
        num_kills[killerid]++;

    return 1;
}


См. также: