Ped
查看 MarkdownPed 生成、作弊、帮派控制。
include/XBase/Ped.h · XBase::Ped
Ped 的生成、删除、属性和持续状态由 XBase 管理。XMenu 只负责参数转换和 UI;VC/III 只启用已确认 backend 与能力矩阵支持的对象级能力,不能把可链接桩当作支持。
Ped::Process() 由 Core::Process() 唯一调用,宿主不得直接调用。NotifyGameInit() 会清理上一局的对象追踪状态;Shutdown() 会恢复由 XBase 管理的持续状态并清理生成会话。
void NotifyGameInit();
void Shutdown();struct NoFireOptions {
bool enable = false;
bool civilians = true;
bool gangs = true;
bool cops = true;
bool mission = false;
};
void SetNoFire(bool enable);
void SetNoFire(const NoFireOptions& options);
bool GetNoFire();
NoFireOptions GetNoFireOptions();
void SetSpawnLimits(bool limitPolice, bool limitGangs, int maxPolice, int maxGangs);
void SetSmokingEffect(bool enable);
void SetFliesEffect(bool enable);NoFireOptions 按 Ped 分类决定是否抑制开火,分类判定与抑制逻辑在 XBase 后端完成,宿主只推送选项:
| 字段 | 默认 | 作用 |
|---|---|---|
enable | false | 总开关,关闭时任何分类都不抑制 |
civilians | true | 平民 |
gangs | true | 帮派 |
cops | true | 警察 |
mission | false | 任务 Ped |
一个 Ped 同时满足多个分类时按 任务、警察、帮派、平民 的顺序取第一个命中项,例如任务警察只受 mission 控制。
SetNoFire(bool) — 只改总开关,分类保持当前值SetNoFire(const NoFireOptions&) — 整组写入,宿主控制器每帧按自身状态推送GetNoFireOptions() — 读回当前整组选项BulletAssistFireSuppression;查询为 Unsupported 的版本必须禁用入口SetSpawnLimits — 限制警察/帮派最大生成数量SetSmokingEffect / SetFliesEffect — 在玩家身上循环播放香烟/苍蝇特效;仅 SA 实现,能力项为 PedSmokeFliesstruct PedSnapshot {
bool valid;
PedId id;
unsigned int modelId;
Vec3 position;
float health;
float armour;
bool player;
bool mission;
bool cop;
bool gang;
};
PedId GetLastSpawnedId();
PedSnapshot GetLastSpawnedSnapshot();
bool SpawnNearPlayer(unsigned int modelId, const Types::PedSpawnOptions& options);
bool SpawnAtMarker(unsigned int modelId, const Types::PedSpawnOptions& options);
void DeleteLastSpawned();GetLastSpawnedId() 返回 XBase 的强类型 PedId。默认构造值或 value == 0 表示无效对象;XMenu 不保存游戏对象指针,也不参与 pool 生命周期管理。
GetLastSpawnedSnapshot() 在 XBase 内验证 pool 生命周期,返回模型、位置、生命、护甲和分类等纯值数据。对象不存在或已失效时返回 valid == false 的默认快照。
SpawnNearPlayer — 在玩家面前 3 米生成 Ped,支持选项(血量、护甲、武器、敌对)SpawnAtMarker — 在雷达标记点位置生成 Ped(需放置标记)DeleteLastSpawned — 删除上次生成的 Pedvoid SetGangsControl(bool enable); // 帮派控制街道
bool IsGangsControl();
void SetGangsEverywhere(bool enable); // 帮派无处不在
bool IsGangsEverywhere();
void SetGangWarsActive(bool enable); // 开启/关闭帮派战争
bool IsGangWarsActive();
void StartGangWar(bool offensive); // 主动/防守触发帮战
void EndGangWar();
int GetGangZoneDensity(int gangId); // 获取帮派区域密度
void SetGangZoneDensity(int gangId, int density);
unsigned int GetGangMemberModel(unsigned int gangId, unsigned int slot);
void SetGangMemberModel(unsigned int gangId, unsigned int slot, unsigned int modelId);
void ResetGangModels();
void SetGangWeapons(unsigned int gangId, int weapon1, int weapon2, int weapon3);void SetElvisEverywhere(bool enable); bool IsElvisEverywhere();
void SetEveryoneArmed(bool enable); bool IsEveryoneArmed();
void SetPedsMayhem(bool enable); bool IsPedsMayhem();
void SetPedsAtkRocket(bool enable); bool IsPedsAtkRocket();
void SetPedsRiot(bool enable); bool IsPedsRiot();
void SetSlutMagnet(bool enable); bool IsSlutMagnet();
void SetBigHead(bool enable); bool IsBigHead();
void SetThinBody(bool enable); bool IsThinBody();
void SetNastyLimbs(bool enable); bool IsNastyLimbs();
void SetNoProstitutes(bool enable); bool IsNoProstitutes();Ped::Process() 维护由 XBase 接管的持续状态;XMenu 不得在页面或控制器中每帧重复写入游戏对象。
评论