跳到主要内容

OnNPCGiveDamage

注意

这个回调是在omp v1.5.8.3079中添加的,在以前的版本中不起作用!

描述

当 NPC 对玩家造成伤害时调用此回调。

参数说明
npcid造成伤害的 NPC 的 ID
damagedid受到伤害的玩家的 ID
Float:amount造成的伤害数量
WEAPON:weaponid用于造成伤害的武器 ID
bodypart被击中的身体部位

返回值

返回 false 阻止伤害生效,或返回 true 允许伤害。

示例

public OnNPCGiveDamage(npcid, damagedid, Float:amount, WEAPON:weaponid, bodypart)
{
// 仅通知追踪此 NPC 的玩家
for (new playerid = 0; playerid < MAX_PLAYERS; playerid++)
{
if (!IsPlayerConnected(playerid))
continue;

if (PlayerNPC[playerid] == npcid)
{
SendClientMessage(playerid, 0xFF8800FF, "NPC %d 对玩家 %d 造成了 %.1f 点伤害(武器:%d,身体部位:%d)",
npcid, amount, damagedid, _:weaponid, bodypart);
}
}
return 1;
}

注意事项

  • 此回调在伤害实际应用到玩家之前调用
  • 返回 false 将阻止伤害生效
  • bodypart 参数使用与 OnPlayerTakeDamage 相同的值

相关函数

以下函数可能有用,因为它们与此回调以某种方式相关。

相关回调