跳到主要内容

OnNPCWeaponShot

注意

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

描述

当 NPC 开火时调用此回调。

参数说明
npcid开火的 NPC 的 ID
WEAPON:weaponid开火的武器 ID
BULLET_HIT_TYPE:hittype命中的实体类型(如果有)
hitid命中的实体 ID(如果有)
Float:fX子弹击中的 X 坐标
Float:fY子弹击中的 Y 坐标
Float:fZ子弹击中的 Z 坐标

返回值

返回 false 阻止射击被处理,或返回 true 允许射击。

示例

public OnNPCWeaponShot(npcid, WEAPON:weaponid, BULLET_HIT_TYPE:hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
// 仅通知追踪此 NPC 的玩家
for (new playerid = 0; playerid < MAX_PLAYERS; playerid++)
{
if (!IsPlayerConnected(playerid))
continue;

if (PlayerNPC[playerid] == npcid)
{
static hitTypeNames[5][32] = {
"无",
"玩家",
"车辆",
"物体",
"玩家物体"
};

SendClientMessage(playerid, 0xFFFF00FF, "NPC %d 使用武器 %d 射击 %s %d(%.2f, %.2f, %.2f)",
npcid, _:weaponid, hitTypeNames[_:hittype], hitid, fX, fY, fZ);
}
}
return 1;
}

注意事项

  • NPC 每次射击都会调用此回调
  • hittype 参数指示命中的内容(无、玩家、车辆、物体等)
  • hitid 参数包含命中实体的 ID(玩家 ID、车辆 ID 等)
  • 命中坐标显示子弹撞击的位置
  • 返回 false 会阻止服务器处理此次射击

相关函数

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

相关回调