996传奇三端引擎--实战-04-回收UI逻辑实现demo使用、对接后端
一、回收功能核心机制
-
配置表与数据校验基石
- 转表操作:将原始策划表转换为引擎可识别的结构化数据,是功能实现的基础
- 模板(temple)设计:在数据表中预置合法回收项模板,服务端据此校验客户端提交的数据
-- 示例:回收配置表结构 local recycleConfig = { [1001] = { item_id=1001, name="生铁", points=5, valid=true }, [1002] = { item_id=1002, name="黑铁矿", points=8, valid=true } } -
服务端权威校验
- 客户端提交回收请求时,服务端比对其选择项与模板表
- 拒绝非法数据(如未配置的回收项),仅存储通过验证的选项
二、客户端界面动态渲染
-
列表控件与模板复用
- 使用
ListView动态生成分类选项区域 - 通过模板(demo)实例化每个回收项UI,避免硬编码
-- 创建回收项UI模板 function CreateRecycleItemTemplate(parent) local item = GUI.Create("Button") item:SetSize(120, 40) -- 绑定点击事件处理... return item end - 使用
-
跨界面联动控制
- 背包关闭事件监听实现界面协同关闭
BagWindow.OnClose:AddListener(function() RecycleWindow:Close() end)
三、双端数据同步策略
| 同步方式 | 触发时机 | 性能影响 | 数据实时性 |
|---|---|---|---|
| 接口实时请求 | 每次操作时 | 高延迟 | 实时 |
| 登录预加载(推荐) | 角色登录时 | 低延迟 | 准实时 |