BulletAssist
子弹追踪、坐标透视、强制锁定与开火抑制。
include/XBase/BulletAssist.h · XBase::BulletAssist
追踪计算、射线重定向和绘制由 XBase 后端持有,宿主只设置
Config并决定 UI 开关。命中重定向只发生在本地玩家的开火作用域内,相机专用射线不参与改写。
配置
enum class AimPart {
Head,
Chest,
Abdomen,
Legs,
};
struct Config {
bool tracking = false;
bool throughWalls = false;
bool hardLock = false;
bool trackCivilian = true;
bool trackFriend = false;
bool trackHostile = true;
bool trackNeutral = true;
AimPart aimPart = AimPart::Chest;
float lockRange = 100.0f;
int maxTargets = 4;
bool drawPedBounds = false;
bool drawPedCollision = false;
bool drawPedSkeleton = false;
bool drawVehicleBounds = false;
bool drawVehicleCollision = false;
};
void SetConfig(const Config& config);
Config GetConfig();lockRange 下限为 10,maxTargets 限定 1~16,越界值由 XBase 在 SetConfig() 内收敛。
生命周期
void Init();
bool IsInitialized();
void Process();
void Shutdown();
void Draw();Init()、Process()、Shutdown() 由 Core 领域分发,宿主不要绕过 Core 建立第二套 Process()。Draw() 由宿主在绘制回调中调用,只负责 ESP 显示,不驱动目标搜索。
开火抑制
bool ShouldSuppressPedFire(PedId ped);只提供开火抑制判断,不暴露 CPed*;Ped 分类与总开关由 XBase::Ped::SetNoFire() 负责。
行为边界
- 目标搜索基于相机前向与距离评分,关系过滤使用任务关系(平民/友军/敌对/中立),被锁定目标在每次开火时轮询。
- 追踪命中重定向只作用于本地玩家的开火调用栈;相机专用射线(
cameraIgnore)始终按原参数放行。 - 追踪命中时只强制开启行人碰撞;只有启用
throughWalls才关闭建筑、物体与假对象碰撞。 - 已损毁载具不会作为有效命中实体返回。
hardLock需要同时开启tracking并按住瞄准输入(瞄准键或鼠标键)才生效;锁定目标具有粘性,目标失效后才切换到准星最优目标,不会随多发轮询跳视角。- 剧情、过场动画、相机过渡、玩家控制被脚本禁用、玩家死亡或濒死、相机缓冲或行人池不可用时,追踪计算、射线重定向与 ESP 绘制同时停止,并持续清空候选列表、本次射击目标与强锁目标;离开阻断状态后延迟 750 毫秒自动恢复,不需要宿主重新开关功能。
版本能力
| FeatureCapability | SA | VC | III |
|---|---|---|---|
| BulletAssistTracking / ThroughWalls / HardLock / PedBounds / VehicleBounds | ✅ | ✅ | ✖ |
| BulletAssistPedCollision / PedSkeleton / VehicleCollision / FireSuppression | ◐ | ◐ | ✖ |
标注 ◐ 表示同领域内仍有部分动作受限。页面必须逐项查询 FeatureCapability,不能因为 Capability::BulletAssist 可链接就启用全部开关;III 当前没有可用的追踪后端。