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相同的值
相关函数
以下函数可能有用,因为它们与此回调以某种方式相关。
- NPC_AimAt: 使 NPC 瞄准位置
- NPC_AimAtPlayer: 使 NPC 瞄准玩家
- NPC_Shoot: 使 NPC 射击
- NPC_SetWeapon: 设置 NPC 的武器
相关回调
- OnNPCTakeDamage: 当 NPC 受到伤害时调用
- OnPlayerTakeDamage: 当玩家受到伤害时调用
- OnPlayerGiveDamage: 当玩家造成伤害时调用