【游戏】
一、业务场景
军衔长期挂零,功勋攒了没处用,玩家反复询问军衔的意义。晋升规则上线:周功勋达标段位线即晋升一级并解锁对应特权,每周日统一结算后清零重计。
二、实现方案
晋升核心(周日结算触发):
local RANKS = {0, 200, 500, 1200, 3000} -- 五段功勋线
local function promote(actor)
local merit = getplayvar(actor, "weekMerit") or 0
local rank = getplayvar(actor, "rankLv") or 0
if rank < 4 and merit >= RANKS[rank + 2] then
setplayvar(actor, "rankLv", rank + 1)
sendmsg(actor, 1, "晋升军衔 " .. (rank + 2)
.. " 级,特权已解锁")
end
setplayvar(actor, "weekMerit", 0)
end
功勋累计(日常行为触发):
local function addMerit(actor, n)
local m = (getplayvar(actor, "weekMerit") or 0) + n
setplayvar(actor, "weekMerit", m)
sendmsg(actor, 1, "本周功勋 " .. m)
end
三、边界处理
功勋每周清零不跨周累积;军衔终身保留不回退;段位线 0/200/500/1200/3000 逐级抬升。
四、引擎验证
一周攒 520 功勋越过 200 线从军衔 1 级晋升 2 级;下周再攒满 500 线升 3 级;周日结算后计数归零,离线成员由触发器统一补算。
五、FAQ
问:掉线错过结算吗?
答:不会,触发器全员统一执行。
问:特权有哪些?
答:每级解锁对应商店折扣与专属频道。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【语法】 一、机制原理 一行代码拆解:local extra = index[main[key]] or {}。两张表按共同…
【游戏】 一、规则机制 隐蔽的坑:拖拽小窗松手位置随缘,有的只剩一半挂在屏幕外,再也拉不回来。边缘吸附补上收尾:松手时窗口落…
【游戏】 一、规则机制 一行代码拆解:if text == lastText and now - lastAt < 5 th…
【语法】 一、机制原理 抛坑提问:二分查找在均匀分布的有序数组上,还能再快吗?插值查找把对半改成按比例估位:目标值在区间里处…
【游戏】 一、规则机制 线上事故:新手第一次进主界面面对满屏按钮无所适从,客诉清一色"不知道先点哪"。新手遮罩的流程:首次进…
【游戏】 一、规则机制 抛个坑:装备好坏要看攻击、气血、抗性一堆属性,太费劲——综合评分怎么算才服众?评分规则:各属性按配置…