Pular para o conteúdo principal

OnNPCGiveDamage

aviso

This function was added in omp v1.5.8.3079 and will not work in earlier versions!

Description

This callback is called when an NPC gives damage to a player.

NameDescription
npcidThe ID of the NPC that gave the damage
damagedidThe ID of the player that received the damage
Float:amountThe amount of damage that was given
WEAPON:weaponidThe weapon ID used to give the damage
bodypartThe body part that was hit

Returns

1 - Callback will not be called in other filterscripts.

0 - Allows this callback to be called in other filterscripts.

It is always called first in filterscripts so returning 1 there blocks other filterscripts from processing it.

Examples

public OnNPCGiveDamage(npcid, damagedid, Float:amount, WEAPON:weaponid, bodypart)
{
// Only notify players tracking this NPC
for (new playerid = 0; playerid < MAX_PLAYERS; playerid++)
{
if (!IsPlayerConnected(playerid))
continue;

if (PlayerNPC[playerid] == npcid)
{
SendClientMessage(playerid, 0xFF8800FF, "NPC %d dealt %.1f damage to player %d (weapon: %d, bodypart: %d)",
npcid, amount, damagedid, _:weaponid, bodypart);
}
}
return 1;
}

Notes

  • This callback is called before the damage is actually applied to the player
  • Returning false will NOT prevent the damage from being applied
  • The bodypart parameter uses the same values as OnPlayerTakeDamage

The following functions might be useful, as they're related to this callback in one way or another.