拍卖行的出价是一场与时间的博弈:出价的按钮、倒计时的紧迫、截拍瞬间的悬念——拍卖界面的要点是出价的流程、倒计时的呈现与截拍提醒的即时性,博弈的体验一半在界面的反馈里。
---拍卖行的出价:加价规则与提交
AuctionUI.item = nil
function AuctionUI.show(item)
AuctionUI.item = item
GUI:Text_Create(AuctionUI.win, "cur", 10, 8, 14,
"#FFD700",
"当前出价:" .. AuctionUI.thousand(item.price))
local btn = GUI:Button_Create(AuctionUI.win, "bid",
10, 160)
GUI:Button_setTitleText(btn, "加价 " ..
AuctionUI.thousand(item.step))
GUI:addOnClickEvent(btn, function()
local newPrice = AuctionUI.current + item.step
SL:SendNetMsg(MSGID.AUCTION_BID, item.id,
newPrice, 0, "")
end)
end
出价的加价按固定的步长:每次加价 1000 金币,按钮的文案直接写明下一口的价格——出价的决策不需要心算。出价的提交带服务器的校验:出价必须高于当前价一个步长、截拍后出价无效、金币的冻结在出价时执行(被反超即解冻退还)——拍卖的资金纪律在服务器的闸口把关。出价被反超的即时反馈:自己的出价被顶掉的瞬间提示「已被反超,当前价 XXXX」,博弈的信息对等是竞拍的公平。
---截拍的倒计时:30 秒内的红色预警
SL:RegisterLuaNetMsg("AUCTION_END", function(data)
local d = SL:JsonDecode(data)
if not d then return end
if d.winner == SL.myName() then
SL:ShowSystemTips("恭喜!成功拍得 " .. d.item)
SL:PlayAudio(2060)
elseif AuctionUI.joined[d.id] then
SL:ShowSystemTips("惜败," .. d.winner ..
" 以 " .. d.price .. " 金币截拍")
end
end)
---截拍前的临门提醒
SL:Schedule(1.0, function()
local item = AuctionUI.item
if not item then return end
local left = item.endAt - os.time()
if left == 30 then
SL:ShowSystemTips("拍卖还剩 30 秒!")
end
end)
截拍的提醒按角色分场景:拍得的恭喜加音效、参与后惜败的礼貌告知——两种结局都给明确的反馈,沉默的失败是体验的暗坑。截拍前的 30 秒提醒把犹豫的玩家拉回竞拍,倒计时的红色预警在界面上同步跳动。拍卖的结果页保留出价的流水:谁在何时出了多少,竞拍的全过程可回溯——拍卖的公信在流程的透明。加价的延时规则:截拍前 10 秒内的出价自动延长 15 秒(反狙击的惯例),收尾十秒的争夺才有戏剧性。
出价的响应延迟监控,出价到确认的回环超 500 毫秒即体验的告警;截拍的时序准确性测试:服务器的截拍时刻与客户端的倒计时误差不超 200 毫秒。
加价的步长曾经可以自定义小数,0.01 金币的恶意加价刷屏,步长的固定与校验修复。截拍的判定曾经按客户端的时间,改本地时钟提前截拍的漏洞,时刻的权威收口服务器。提醒的音效曾经不分场景,惜败也放庆祝音效,反馈的音效按结局分轨。
拍卖的截拍延时规则与步长进配置,竞拍的节奏是运营的调节阀。拍卖的专场与流拍的处理公示:流拍的物品退还卖家、流拍的次数不限但手续费不退。出价的金币冻结的解冻即时到账,资金的占用感降到最低。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
设计初衷 行会系统的通病是"人多力量大"只体现在攻城:日常没有人人有份的参与结构,普通成员对行会缺少归属感与参与点。科技树把…
设计初衷 打怪掉装、强化失败、版本更替,都在往玩家背包里塞过渡装备,卖不掉、扔了心疼,压在包里发臭。回收系统的价值两条:给过…
底层原理 性能优化不靠猜,靠剖析。os.clock 返回脚本进程占用的 CPU 时间(秒,小数),两次取值之差就是中间代码的…
设计初衷 满级是长线游戏的分水岭:不转生,毕业玩家无事可做、数值通胀无处吸收;硬开新等级,老装备一夜贬值。转生系统的价值在于…
业务场景 石墓阵里 6 个精英点位驻着白野猪王,被清掉后要按周期补位。散装写法把地图、坐标、怪物名硬编码在脚本里,开新区要复…
底层原理 闭包是函数与其捕获环境的绑定:内层函数引用外层局部变量时,这份数据随函数体一起存活,外部既访问不到也改不掉。限频器…