打造一把裁决之杖要凑五种材料:玄铁 10 块、锻造图谱 1 张、金币 5 万——差哪样、去哪打,打造台界面的材料清单要回答得一清二楚。齐备提示的即时性决定打造的动线顺不顺。
---打造台:配方的材料清单
ForgeUI.recipe = nil
function ForgeUI.show(recipeId)
local recipe = ForgeUI.recipes[recipeId]
ForgeUI.recipe = recipe
GUI:Text_Create(ForgeUI.win, "title", 10, 8, 14,
"#FFD700", recipe.name)
local list = GUI:ListView_Create(ForgeUI.win, "mats", 10, 40, 260, 200)
ForgeUI.renderMats(recipe.mats)
end
---材料行:持有量与需求的比对
function ForgeUI.renderMats(mats)
ForgeUI.clearRows()
local allOk = true
for i, m in ipairs(mats) do
local have = ForgeUI.countOf(m.name)
local row = GUI:Text_Create(ForgeUI.list, "mat" .. i,
0, 0, 12,
have >= m.count and "#66CC66" or "#FF6666",
m.name .. " " .. have .. "/" .. m.count)
if have < m.count then allOk = false end
end
ForgeUI.setReady(allOk)
end
材料的清单逐行比对持有量与需求:齐了的绿色、缺的红红,一行一色看得明明白白。全部齐备时打造按钮点亮,缺料时按钮置灰并标注缺的第一项——按钮的状态就是玩家的下一步指令。材料的获取途径悬停可见:玄铁的提示写着「矿区深层与黑市兑换」,缺料的玩家知道去哪补。
---背包变更的即时刷新
SL:RegisterLuaNetMsg("BAGSYNC", function()
if not ForgeUI.recipe then return end
-- 背包变化时重算齐备状态
ForgeUI.renderMats(ForgeUI.recipe.mats)
end)
---打造的提交:齐备校验的双保险
function ForgeUI.submit()
local r = ForgeUI.recipe
local allOk = ForgeUI.checkAll(r.mats)
if not allOk then
SL:ShowSystemTips("材料尚未集齐")
return
end
SL:SendNetMsg(MSGID.FORGE_MAKE, r.id, 0, 0, "")
end
背包的同步消息驱动即时刷新:挖到一块玄铁的瞬间,材料行的红变绿、按钮的状态同步点亮——打造的爽感在集齐的那一下,UI 的即时反馈就是这一下的放大器。提交的服务器校验做双保险:客户端判断齐备后发送,服务端再验一遍材料的真实持有,改包的打造在服务器的闸口被拒。打造的成功率与保底在界面的明示:成功率 80%,失败返还一半材料——概率的透明让玩家敢把家底投进炉子。
材料齐备的判断与服务器校验的一致性测试,两端的判定差一份材料都是缺陷;打造按钮的状态刷新延迟监控,背包变更到按钮点亮的延迟不超过 200 毫秒。
材料的计数曾经只查背包不查仓库,仓库里有货的玩家被误判缺料,计数的口径加仓库可选开关。刷新的监听曾经在界面关闭后仍挂着,关闭后的刷新空引用报错,监听的生命周期随界面。打造的提交曾经可以连点,双击发了两个请求出了两把武器,提交的节流与禁用。
配方的材料与途径提示进配置表,新配方的接入只填表。打造的动效按成功失败分色:成功的金光与失败的暗淡,结果的反馈不靠小字。缺料的快捷购买在材料行直供跳转,打造与交易行的联动让缺料不再劝退。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 行会活动集中在攻城战,日常缺乏轻量社交场景。行会篝火答题做行会固定社交活动:每周三、周日晚在行会驻地点燃…
实战应用:用在哪里 全服答题活动办过几期,参与的人不少但黏性不足,答完就散。科举答题把答题做成两段式:每天晚八点的乡试答题筛…
n n n 实战应用:用在哪里 n战斗中打字沟通慢且危险,队伍协作靠喊话效率太低。快捷短语栏在屏幕底部提供八条可自定义的战斗…
n n n 实战应用:用在哪里 n龙脉区域的野外宝箱是散人玩家的每日福利:每逢整点在龙脉区域随机刷新十五个宝箱,分三档给不同…
实战应用:用在哪里 同一玩家的两条消息走了不同的处理路径,先发的后到,装备穿上的消息比脱下的消息晚处理,面板状态错乱。消息有…
实战应用:用在哪里 战斗日志全量打印,一天写满一块硬盘,翻日志像大海捞针。日志采样按类别分策略:错误日志全量保留、行为日志按…