警告
回调是在SA-MP 0.3z中添加的,在早期版本中不起作用!

描述

当玩家用武器射击时会调用此回调。仅支持子弹武器。仅支持乘客路过(不支持驾驶员路过,也不支持海麻雀/猎人射击)。
姓名 描述
playerid 射击武器的玩家的 ID。
weaponid 玩家射击的武器
的ID 。
hittype 射击击中的物体类型
(无、玩家、车辆或(玩家)物体)。
hitid 被击中的玩家、车辆或物体的 ID。
fX 射击击中的 X 坐标。
fY 射击击中的 Y 坐标。
fZ 射击击中的 Z 坐标。

返回

0 - 防止子弹造成伤害。 1 - 让子弹造成伤害。 它总是在过滤器脚本中首先被调用,因此返回 0 也会阻止其他脚本看到它。

例子

  1. public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
  2. {
  3. new szString[144];
  4. format(szString, sizeof(szString), "Weapon %i fired. hittype: %i hitid: %i pos: %f, %f, %f", weaponid, hittype, hitid, fX, fY, fZ);
  5. SendClientMessage(playerid, -1, szString);
  6. return 1;
  7. }

笔记

提示
仅当启用滞后补偿时才会调用此回调。如果命中类型是:
  • BULLET_HIT_TYPE_NONE:fX、fY和fZ参数是普通坐标,如果没有击中物体(例如子弹无法到达的远处物体),则坐标为0.0;
  • 其他:fX、fY 和 fZ 是相对于 hitid 的偏移量。
提示
可以在此回调中使用 GetPlayerLastShotVectors 来获取更详细的子弹矢量信息。
警告
已知错误:如果您作为驾驶员在车辆中开枪,或者您在启用瞄准功能的情况下向后看(空中射击),则不会调用。如果您正在射击车辆中的玩家,则它被称为 BULLET_HIT_TYPE_VEHICLE 并具有正确的 hitid(命中玩家的车辆 ID)。它根本不会被称为 BULLET_HIT_TYPE_PLAYER。[点击此处获取可能的修复] SA-MP 0.3.7 中部分修复:如果恶意用户发送虚假武器数据,其他玩家客户端可能会冻结或崩溃。为了解决这个问题,请检查报告的 Weaponid 是否真的可以发射子弹。