C++ 引擎接口到 mock 的映射(INTERFACE_MAP)

C++ 引擎接口到 mock 的映射(INTERFACE_MAP)

第0条(基线)依据=C++ 绑定与注册清单(Luna 机制、全局函数、各服务器 KScriptFuncList、闭源 UI 引擎头文件)加 Lua 使用矩阵(tools/scan_framework_usage.lua,扫描根为 modules/ 与 scripts/,共 2525 个 Lua 文件,20260918 实测)。新增或缺失接口必须先查本表;未实现的必须补入 mock 并登记本表。

第1条(引擎全局函数)被 Lua 使用的 224 个引擎导出 API 必须全部实现(tools/compare_engine_usage.lua 校验零缺失;运行时门禁为 tests/harness/run_framework_engine_completeness_test.lua)。分类与覆盖:

类别(实现位置 framework_engine.lua 章节) 覆盖
时间与时钟 服务器时间、逻辑帧、循环、微秒、纳秒、毫秒、时区与偏差、日期互转、时间调整、循环时间
服务器身份与拓扑 中心 ID、中心名与信息、已连接中心系、已连接场景服系、本地场景服 ID、服务器索引与名、程序名、连接索引、世界索引、GS 信息系、随机 GS、控制服 ID、队列计数
服务器设置 开服与合服时间、世界等级、人数上限、跨服开关、建角校验、等级上限、开关类、URL 类
实体与玩家 玩家、在局玩家、NPC、机关、角色实体、遍历系、计数系、批量系、判定系、方向
角色 按 ID 或名查询、账号角色列表、全角色、在线角色系、踢出、冻结、改名、团队 ID、账号切换、白名单、类型掩码
数值与杂项 整数运算、目录创建、GUID、文件名哈希、文本过滤系、名称过滤系、封禁文本系、调试与平台判定、模块 ID、语言、日志文件、设备 ID、本地 IP、打开 URL、运行外部程序、资源包、易盾与 TMG 语音 SDK
序列化 严格版序列化与反序列化(确定性文本、可往返、循环引用保护、非法输入返回空)
网络全局 Send 系、广播系、Call 系、UI 事件系、HTTP 结果下发、世界激活、AI 剧情注册(全部经消息总线,无路由时安全返回)
HTTP 请求发送、HttpPost、请求计数、Curl 池、帧配额(请求记录可模拟响应)
地图与场景 场景与地图信息、副本创建与重置、相邻与网络距离、同场景判定、飞行距离
战斗与技能 技能、Buff、NPC 模板、属性与关系力、设置重载
配置与存档 配置表加载、脚本重载、脚本 DB 表、角色与账号存取、数据获取、序列号、备份信息
市场与畅游点 市场商品、摆摊、购买、畅游点兑换与发放与查询与日志
日志服与合服工具 LC 信息、目录操作、空闲帧、日志服关闭、合服工具退出与重命名
引擎全局 性能日志、内存转储、内存池、错误处理、栈信息、默认对齐、平台位数、LightUserData

配置注入:Mock.tEngineConfig 全字段必须可注入与断言;实体注册必须经 Mock_RegisterEntity、Mock_RegisterNpc、Mock_RegisterDoodad。

第2条(全局函数)

C++ 全局接口 mock 实现位置 语义
MJLOG 分级日志 framework.lua 分级 stub,可覆盖输出
富文本日志 framework.lua stub;产品以 local 引用捕获,覆盖必须在加载前完成
GetCurrentTime/GetMilliSecond framework.lua 返回虚拟时钟毫秒
GetServerTime framework_engine.lua 等于 GetCurrentTime
GetLogicFrame/GetCurrentLoop framework_engine.lua 逻辑帧计数,Tick 推进
Random framework.lua 确定性种子
Include framework.lua 模块缓存 stub
FireEvent loader.lua 真实分发:订阅表加 pcall 保护
FireModuleEvent framework.lua 真实分发:module 订阅者加全局 param,可关闭
语音播放系 framework.lua stub,播放行为纳入追踪
GetPlayingRole/GetRole/GetPlayer framework.lua 玩家注册表;GetPlayer 按本服在局判定
实体查询系 framework_engine.lua 实体注册表
Framework_RegisterPlayer framework.lua 注册玩家并补属性容器、方法、场景与实体表
L2CGetAttrValue framework.lua 玩家属性读取
GetWnd/GetStringEx framework_ui.lua 虚拟控件树与文本资源
PlayPositionAnimate framework.lua 虚拟动画,定时器驱动回调
配置加载系 framework.lua GetGlobalTable、GetRuleTable(测试注入优先)、GetParamTable

第3条(网络层)

接口 mock 实现 路由
CallServer framework.lua 客户端到服务器
CallClient framework.lua 与 node_ps.lua 按 dwID 到对应客户端节点
CallCenter node_ps.lua 转发链;冒号调用存在 self 偏移,必须核对
CallCenterByCenterID 等 framework.lua 按节点路由
Broadcast 与 CenterBroadcast 系 framework.lua 全量实现,广播等于全客户端投递
RegisterEvent/UnRegisterEvent framework.lua 真实注册表,env 捕获防重,经 FireModuleEvent 分发
SavedData 与 UserData 系 framework.lua 按调用者 env 隔离存储
GetEnv framework.lua 返回调用者 env
StartActivate/StopActivate framework.lua 帧回调注册,默认不驱动
RegisterDataDealFunc 与 RegisterProtocol 与 RegisterFunction framework.lua 登记表
客户端路由表 node_client.lua C2S 路由与 MC 桩节点

第4条(定时器)

C++ 接口 mock 实现 说明
CreateTimer Mock.TimerCreate 虚拟定时器;0 与负延迟强制 1ms;房间 ID 必须伴随存储与 trace
CloseTimer/StopTimer/CancelTimer Mock.TimerClose 单定时器置死
RemoveTimersByRoom Mock.TimerRemoveByRoom 批量置死、输出事件、返回清除数;他房不受影响
DoEvents stub trace 化
GetRemainingTime/GetTimerCount Mock.TimerRemaining 剩余时间与计数

第5条(控件系统)闭源 UI 引擎由 framework_ui.lua 的 VirtualWindow 虚拟化(247 方法,20260918 实测),分类:

类别 方法
树操作 深度查找与自动创建、模板创建、子窗口管理、销毁、挂接
显隐 显示、隐藏、查询、设置;级联语义见 ARCHITECTURE.md 第9条
文字 文本读写、字体、行数与多行、显示文本
资源与纹理 纹理、图片、图标、影片、视频、声音、音乐、字符串资源
动画 淡入淡出、透明度、播放与停止、动画与控制、特效、缓动与时长与循环与速度、位置动画
位置与尺寸 坐标读写、尺寸、锚点、Z 序、偏移、缩放、旋转、角度
事件 窗口事件注册与查询、事件触发
列表与选项 项增删改查、选项、选择、勾选、展开、滚动
状态 可用、焦点、灰度、数据与值、帧、时间、选中、棋盘
批处理 批处理起止
布局 布局加载、设置、自适应

Mock.cfg 开关与引擎枚举(窗口事件类型 107 项,20260918 实测)必须由 loader.lua 全量注入;开关语义见 ARCHITECTURE.md 第9条。

第6条(已知缺口)

(一)Mock.cfg.bDriveActivate 默认关闭,帧回调不驱动。

(二)node_ps.lua 缺 PlayServer2MatchCenter_PullResult 路由;拉取类测试必须自包装转发或补路由。

(三)Mock.cfg.nPrimaryPlayerID 必须可配置;未设置时零行为变化。

(四)断线重连、丢包重试、帧驱动能力由 frame_driver.lua 提供;缺口必须随用随补,禁止降级测试。

相关推荐
slacker-kian5 小时前
SAP On-Premise 部署环境下 ABAP 开发对接 AI Agent 方案探讨
人工智能·ai·sap·agent·abap·mcp·odata
百数平台5 小时前
百数照片知识库配置指南:图片上传、OCR 识别与智能 / 人工标注全流程说明
低代码·ai·ocr
智商网输送线配件5 小时前
非标自动化零部件采购避坑指南:从零散补货到一站式协同的实战路径
运维·自动化
百数平台5 小时前
百数表单知识库配置指南:对接低代码业务表单、字段自动映射与实时同步全说明
低代码·ai
海宇数据5 小时前
零信任架构实战:基于海宇车辆vin码查车辆信息详版构建自动化车险承保定级网关
人工智能·架构·自动化·php
远牧5 小时前
Ubuntu 26 升级踩坑实录:hermes-agent venv 重建全过程
linux·ubuntu·ai·agent
Qt云程序员6 小时前
按钮是图片、系统没接口?我用找图加OCR把它自动化了
运维·自动化·ocr
大文说跨境6 小时前
用 Python 自动化检测浏览器环境指纹:WebRTC 泄露、Canvas 哈希与时区一致性校验
python·自动化·webrtc
范中勤6 小时前
Agent IDE 双层异步调用机制:前端流式与后端多分支调度,到底各自解决什么问题
llm·agent·claude code·subagent·异步架构
JackLam6 小时前
mobile-use 使用与接入第三方 LLM 网关完整指南OC
android·ai·mobile use