跳到主要内容

OnPlayerWeaponShot

描述

当玩家射击时触发该回调函数(仅支持枪械类武器)。

参数名说明
playerid射击的玩家ID
WEAPON:weaponid使用的武器ID
BULLET_HIT_TYPE:hittype子弹命中的目标类型
hitid被击中的玩家/车辆/物体ID
Float:fX命中点的X坐标
Float:fY命中点的Y坐标
Float:fZ命中点的Z坐标

返回值

0 - 阻止子弹造成伤害

1 - 允许子弹造成伤害

该回调始终在滤镜脚本中优先触发,返回0将阻止其他脚本处理此事件。

示例

public OnPlayerWeaponShot(playerid, WEAPON:weaponid, BULLET_HIT_TYPE:hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
new string[144];
format(string, sizeof(string), "武器ID %i,命中类型: %i,目标ID: %i,坐标: %f, %f, %f", weaponid, hittype, hitid, fX, fY, fZ);
SendClientMessage(playerid, -1, string);
return 1;
}

注意事项

提示
  • 仅在启用延迟补偿时触发此回调
  • 当hittype为BULLET_HIT_TYPE_NONE时,fX/fY/fZ为绝对坐标(若未命中则返回0.0)
  • 其他命中类型时,坐标为相对于hitid的偏移量
  • 使用GetPlayerLastShotVectors可获取更详细的弹道向量信息
注意

已知问题

  • 作为车辆驾驶员射击时不会触发
  • 开启瞄准镜向后射击时不会触发
  • 击中车辆内玩家时返回BULLET_HIT_TYPE_VEHICLE而非PLAYER类型
  • 0.3.7版本后需校验weaponid真实性以防止客户端崩溃
  • 武装车辆(如直升机机炮)射击时不会触发

相关回调

以下回调可能与该回调存在关联:

相关函数

以下函数可能与该回调存在关联:

相关资源