World

天气、时间、游戏速度、重力、Pickup。

include/XBase/World.h · XBase::World

World 的游戏对象访问、地址写入、天气锁定、时间锁定和 Pickup 会话由 XBase 管理。XMenu 只转换参数并消费结果;支持情况必须通过 FeatureCapability 判断。

天气

int  GetWeather();
void SetWeather(int id, bool lock);
void ReleaseWeather();
bool IsWeatherLocked();

时间

void SetTime(int hour, int minute);
void GetTime(int& hour, int& minute);
void SyncTimeWithSystemClock();

时间控制

void SetFreezeTime(bool enable);   // 冻结时间流逝
bool IsTimeFrozen();
void SetLockedTime(bool enable, int hour, int minute); // 锁定到指定时刻
void SetFasterClock(bool enable);  // 加速时间流逝
bool IsFasterClock();

系统控制

void SetDisableReplay(bool enable);      // 禁止重播
bool IsReplayDisabled();
void SetDisableCheats(bool enable);      // 禁用所有作弊
bool AreCheatsDisabled();
void SetForbiddenAreaWanted(bool enable); // 禁区通缉
bool IsForbiddenAreaWanted();
void SetFreePayNSpray(bool enable);      // 免费喷漆
bool IsFreePayNSpray();
void SetNoWaterPhysics(bool enable);     // 无水物理
bool IsNoWaterPhysics();
void SetSolidWater(bool enable);         // 水面可站立

天气特效

float GetRain();            void SetRain(float rain);
float GetFoggyness();       void SetFoggyness(float fog);
float GetCloudCoverage();   void SetCloudCoverage(float clouds);
float GetWind();            void SetWind(float wind);
float GetSandstorm();       void SetSandstorm(float sandstorm);
float GetExtraSunnyness();  void SetExtraSunnyness(float sun);
float GetWetRoads();        void SetWetRoads(float wet);

取值范围通常 0.0~1.0。

游戏速度与重力

void SetGameSpeed(float speed);
float GetGameSpeed();
int GetFpsLimit();
void SetFpsLimit(int limit);
float GetGravity();
void SetGravity(float gravity);

SetGameSpeed(0.0f) 即暂停游戏。

游戏日期

int  GetDaysPassed();
void SetDaysPassed(int days);

Pickup

int SpawnPickup(const Types::PickupOptions& options); // 返回 pickup 句柄,失败返回 -1
bool UpdateLastPickup(const Types::PickupOptions& options); // 在最近一次生成位置重建 pickup
bool RemoveLastPickup();      // 移除最近一次生成的 pickup
bool RemoveTrackedPickups();  // 移除 XBase 创建的全部 pickup

XBase 只记录自己创建的 pickup 句柄;RemoveTrackedPickups() 不会清空游戏任务 pickup。WorldPickups 在 SA 为 Supported,VC/III 由 portable 后端实现,报告 Partial

全局清除

void DestroyAllVehicles();  // 炸毁所有载具
void DestroyAllPeds();      // 击杀所有 Ped(玩家除外)

生命周期

void NotifyGameInit();
void Process();
void Shutdown();

World::Process()Core::Process() 唯一调用,负责天气、时间和运行时状态维护;宿主不得直接调用。NotifyGameInit() 丢弃上一局的锁定状态与 pickup 会话;Shutdown() 释放天气锁定、恢复时钟与拾取物追踪状态。

On this page