Ped
Ped 生成、作弊、帮派控制。
include/XBase/Ped.h · XBase::Ped
Ped 的生成、删除、属性和持续状态由 XBase 管理。XMenu 只负责参数转换和 UI;VC/III 只启用已确认 backend 与能力矩阵支持的对象级能力,不能把可链接桩当作支持。
生命周期
Ped::Process() 由 Core::Process() 唯一调用,宿主不得直接调用。NotifyGameInit() 会清理上一局的对象追踪状态;Shutdown() 会恢复由 XBase 管理的持续状态并清理生成会话。
void NotifyGameInit();
void Shutdown();安全控制
void SetNoFire(bool enable);
bool GetNoFire();
void SetSpawnLimits(bool limitPolice, bool limitGangs, int maxPolice, int maxGangs);SetNoFire— 禁止所有 Ped 开火SetSpawnLimits— 限制警察/帮派最大生成数量
生成与删除
struct 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— 删除上次生成的 Ped
帮派控制
void 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);Ped 作弊
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 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 不得在页面或控制器中每帧重复写入游戏对象。