Пређи на главни садржај

OnPlayerTakeDamage

Опис

Овај повратни позив се позива када играч претрпи штету.

ИмеОпис
playeridID играча који је претрпео штету.
issueridID играча који је нанео штету. INVALID_PLAYER_ID ако је самонанета.
Float:amountКоличина штете коју је играч претрпео (здравље и оклоп заједно).
WEAPON:weaponidID оружја/разлог штете.
bodypartДео тела који је погођен.

Враћа

1 - Повратни позив неће бити позван у другим filterscripts.

0 - Омогућава да се овај повратни позив позове у другим filterscripts.

Увек се прво позива у filterscripts, па враћањем 1 блокирате остале filterscripts да га виде.

Примери

public OnPlayerTakeDamage(playerid, issuerid, Float:amount, WEAPON:weaponid, bodypart)
{
if (issuerid != INVALID_PLAYER_ID) // Ако није самонанета.
{
new
infoString[128],
weaponName[24],
victimName[MAX_PLAYER_NAME],
attackerName[MAX_PLAYER_NAME];

GetPlayerName(playerid, victimName, sizeof (victimName));
GetPlayerName(issuerid, attackerName, sizeof (attackerName));

GetWeaponName(weaponid, weaponName, sizeof (weaponName));

format(infoString, sizeof(infoString), "%s has made %.0f damage to %s, weapon: %s, bodypart: %d", attackerName, amount, victimName, weaponName, bodypart);
SendClientMessageToAll(-1, infoString);
}
return 1;
}

public OnPlayerTakeDamage(playerid, issuerid, Float:amount, WEAPON:weaponid, bodypart)
{
if (issuerid != INVALID_PLAYER_ID && weaponid == 34 && bodypart == 9)
{
// Убија одмах снајпером уколико се погоди у главу
SetPlayerHealth(playerid, 0.0);
}
return 1;
}

Белешке

tip
  • weaponid ће враћати 37 (бацач пламена) за све изворе ватре (нпр. молотов, 18).
  • weaponid ће враћати 51 за било које оружје које прави експлозију (нпр. RPG, граната).
  • playerid је једини који може позвати повратни позив.
  • Количина је увек максимална штета коју weaponid може нанети, чак и када здравље преостало је мање од те максималне штете. Дакле, када играч има 100.0 здравља и буде погођен Desert Eagle-ом који има вредност штете од 46.2, потребна су 3 пуцња да би се убила тај играч. Сва три пуцња ће приказати количину од 46.2, иако када последњи пуцац погоди, играч има само 7.6 здравља преосталог.
warning
  • GetPlayerHealth и GetPlayerArmour ће враћати старе количине здравља и оклопа играча пре овог повратног позива.
  • Увек проверите да ли је issuerid важећи пре него што га користите као индекс у низу.

Повезане повратне функције

Следеће повратне функције могу бити корисне, јер су на један или други начин повезане са овим позивом.

  • OnPlayerGiveDamage: Позива се када играч нанесе штету.
  • OnPlayerWeaponShot: Позива се када играч искористи оружје(удари њиме, пуца..).

Повезане ресурси