OnPlayerGiveDamage RU

From SA-MP Wiki

Jump to: navigation, search

OnPlayerGiveDamage

Описание:

Этот колбэк вызывается, когда один игрок наносит урон другому игроку.


OnPlayerGiveDamage RU добавлено в 0.3d Этот обратный вызов был добавлен в SA-MP 0.3d и не работает в более ранних версиях!


Параметры:
(playerid, damagedid, Float:amount, weaponid, bodypart)
playeridID игрока, который нанёс урон.
damagedidID игрока, который получил урон.
amountКоличество потерянного здоровья/брони (комбинировано).
weaponidОружие/причина нанесения урона.
bodypartЧасть тела, в которую попали. (ПРИМЕЧАНИЕ: Этот параметр был добавлен в 0.3z. Пропустите его, если используете более старую версию!)


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

  • 1 - Указывает, что этот обратный вызов не будет передан другим filterscript'ам.
  • 0 - Этот обратный вызов будет передан в следующий filterscript.
  • Это всегда вызывается первым из filterscript'ов, так что вернув 1 это не позволит увидеть его вызов в следующем filterscript'е.


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

public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid, bodypart)
{
    if(damagedid != INVALID_PLAYER_ID)
    {
        new string[128], victim[MAX_PLAYER_NAME], attacker[MAX_PLAYER_NAME];
        new weaponname[24];
        GetPlayerName(playerid, attacker, sizeof (attacker));
        GetPlayerName(damagedid, victim, sizeof (victim));
 
        GetWeaponName(weaponid, weaponname, sizeof (weaponname));
        format(string, sizeof(string), "%s нанёс %.0f урона игроку %s из %s", attacker, amount, victim, weaponname);
        SendClientMessageToAll(0xFFFFFFFF, string);
    }
    return 1;
}


Image:32px-Ambox_warning_orange.png

Примечания

  • Имейте в виду, эта функция неточная в некоторых случаях.
  • Если вы хотите, чтобы определённые игроки не могли наносить урон друг другу, используйте SetPlayerTeam.
  • weaponid будет равен 37 (огнемёт) для любых источников огня (например коктейль молотова, 18).
  • weaponid будет равен 51 для любого оружия, создающего взрывы (например РПГ, гранаты).
  • OnPlayerTakeDamage и OnPlayerGiveDamage не синхронизированы полностью.

Из-за различия в пинге, функция OnPlayerTakeDamage вызывается через несколько миллисекунд в случае успешного вызова функции OnPlayerGiveDamage.

  • playerid единственный, кто может вызывать данный callback.


Связанные автовызываемые функции

Эти автовызываемые функции могут оказаться полезными, т.к. они связаны с текущей функцией.

Template:OnPlayerTakeDamage RU

Personal tools
In other languages