跳到主要内容

NPC_Shoot

注意

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

描述

让 NPC 开火射击。

参数说明
npcidNPC 的 ID
weapon用于射击的武器 ID
hitId被射击目标实体的 ID
hitType被击中的实体类型(玩家、NPC、车辆等)
endPointX子弹终点的 X 坐标
endPointY子弹终点的 Y 坐标
endPointZ子弹终点的 Z 坐标
offsetX距离击中点的 X 偏移
offsetY距离击中点的 Y 偏移
offsetZ距离击中点的 Z 偏移
isHit射击是否实际击中目标
checkInBetweenFlags实体检查标志(默认:NPC_ENTITY_CHECK_ALL)

返回值

如果操作成功则返回true,否则返回false

示例

public OnPlayerCommandText(playerid, cmdtext[])
{
if (!strcmp(cmdtext, "/npcshoot", true))
{
new npcid = PlayerNPC[playerid];
if (npcid == INVALID_NPC_ID)
return SendClientMessage(playerid, 0xFF0000FF, "你没有在调试NPC。");

if (!NPC_IsValid(npcid))
return SendClientMessage(playerid, 0xFF0000FF, "无效的NPC。");

new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);

new weapon = NPC_GetWeapon(npcid);
NPC_Shoot(npcid, WEAPON:weapon, playerid, 1, x, y, z, 0.0, 0.0, 0.0, true, NPC_ENTITY_CHECK_ALL);

SendClientMessage(playerid, 0x00FF00FF, "NPC %d 向你开了一枪。", npcid);
return 1;
}
return 0;
}

注意事项

  • NPC 在射击前必须使用 NPC_SetWeapon 设置武器
  • 使用 isHit = false 进行警告射击或压制火力
  • checkInBetweenFlags 参数决定哪些实体会阻挡射击

相关函数

相关回调