综述

XBase 是 GTA SA / VC / III 的轻量基础库。大道至简。

XBase 是一个按游戏版本隔离的 静态库,为 GTA SA、GTA Vice City 和 GTA III 分别生成 XBaseSA.libXBaseVC.libXBaseIII.lib。公共 API 形状一致,但每个库只允许使用对应游戏的 plugin-sdk ABI。

当前版本后端状态:

游戏状态
XBaseSA.libGTA San Andreas全部 13 个领域已有真实实现;部分特性按能力表报告 Partial
XBaseVC.libGTA Vice CityPlayer / Ped / Vehicle / Weapon / World / Visual / Teleport / BulletAssist 已有实现;Scene、Camera、Cheats、VehicleEffects、Overlay 未支持
XBaseIII.libGTA IIIPlayer / Ped / Vehicle / Weapon / World / Visual / Teleport 已有实现;BulletAssist、Scene、Camera、Cheats、VehicleEffects、Overlay 未支持

公共符号可链接不等于功能已实现。页面必须使用 FeatureCapability 判断细粒度支持;能力返回 Unsupported 时,宿主必须禁用对应入口,不能因 XBase 提供兼容桩而启用。

VC/III 库不会复用 SA 地址或 SA 类布局。尚未实现的域通过 XBase::HasCapability() 返回 false,而不是伪造成功。

设计哲学

一行 #include <XBase/XBase.h>,通过 XBase:: 命名空间直接调用全部功能。

控制器一览

基础设施

控制器命名空间职责
LogXBase::Log线程安全日志,文件输出+内存环缓存
JsonXBase::Json递归下降 JSON 解析/序列化
ConfigXBase::ConfigJSON 持久化配置,点号嵌套键
I18nXBase::I18n多语言翻译,目录扫描+fallback 链
HooksXBase::Hookskiero D3D9 钩子 + ImGui 集成
HotkeyXBase::Hotkey按键绑定、Toggle/Hold/Once 模式与持久化
PlatformXBase::Platform文件、模块目录、剪贴板、外部打开、时钟
RuntimeXBase::Runtime当前游戏目标检测与运行环境校验
HostXBase::Host宿主事件安装、消息提示与版本运行时保护

控制器

控制器命名空间职责
CoreXBase::Core初始化、领域所有权、世界就绪检测、全局 Process 分发
PlayerXBase::Player血量/护甲/金钱/通缉/皮肤/技能/无敌/隐身/硬核/自由飞行
PedXBase::PedPed 生成、Elvis/武装/暴动等作弊、帮派控制
VehicleXBase::Vehicle修复/生成/引擎/灯光/锁定/防护/车门/速度锁定/巡航
WorldXBase::World天气/时间/游戏速度/重力/Pickup/物理控制
WeaponXBase::Weapon给予/清空/丢弃/无限弹药/快速装填/技能
TeleportXBase::Teleport坐标/标记点/地图传送
SceneXBase::Scene动画/粒子/过场动画/任务控制/战斗行走风格
VisualXBase::VisualHUD/雷达显示控制、后处理滤镜
BulletAssistXBase::BulletAssist子弹追踪、坐标透视、强锁与开火抑制
OverlayXBase::Overlay屏幕信息覆盖层(FPS/坐标/面板)
CameraXBase::Camera自由视角与俯视相机
CheatsXBase::Cheats飞车/氮气/完美操控/绿灯/暴动/随机作弊
VehicleEffectsXBase::VehicleEffects载具霓虹等渲染期特效

UI 层

模块命名空间职责
ThemeXBase::Theme主题配色、样式预设、字体管理
UIXBase::UI窗口管理、Tab 系统、MenuSurface 与基础组件封装
WebViewXBase::WebView通过系统 WebView2 在游戏窗口内渲染网页

其他

控制器命名空间职责
VersionXBase游戏版本检测
TypesXBase::Types共享数据结构(ProofState/PedSpawnOptions 等)

版本能力查询

#include <XBase/XBase.h>

if (XBase::HasCapability(XBase::FeatureCapability::VehicleBasic)) {
    XBase::Vehicle::Repair();
}

能力查询属于当前静态库的编译目标,不是运行时猜测。宿主必须链接与游戏目标对应的库;禁止将 XBaseSA.lib 链接到 VC 或 III。

宿主生命周期

XBase 作为 XMenu 等宿主的静态库时,由宿主负责驱动生命周期:

#include <XBase/XBase.h>

void OnGameInit() {
    XBase::Core::NotifyGameInit();
}

void OnProcess() {
    XBase::Core::Process();
}

// 安装宿主回调;同时启用当前版本的运行时保护
XBase::Host::Install({OnGameInit, OnProcess});

// 显式移交领域;掩码会过滤当前库不支持的领域
XBase::Core::Init(XBase::Core::AllDomains);

// 卸载前恢复状态并清理领域
XBase::Core::Shutdown();
XBase::Host::Shutdown();

Host::Install() 会同时安装版本相关的运行时保护:VC 增加剧情资源目录纠正与空文件句柄保护,SA/VC 增加剧情期间的对象访问安全门(由 BulletAssist 消费)。

用法

#include <XBase/XBase.h>

XBase::Player::Heal();
XBase::Player::GiveMoney(100000);
XBase::Vehicle::Spawn(411);       // Infernus
XBase::Vehicle::Repair();
XBase::World::SetWeather(0, true); // 锁定晴天
XBase::Weapon::GiveAll();

构建

  • C++20 / Win32 (x86) / MBCS / static runtime
  • Premake5 生成 VS2022 解决方案
  • XBaseSA.lib 使用 plugin_sa
  • XBaseVC.lib 使用 plugin_vc,当前未实现域通过能力查询拒绝调用
  • XBaseIII.lib 使用 plugin_III,当前未实现域通过能力查询拒绝调用
  • Setup.bat 生成项目文件,Build.bat 编译三个目标

On this page