行会走过两年,第一次拿下沙巴克、第一位满级成员、最强的一次攻防战,这些瞬间散落在聊天记录里无人记得。行会大事记自动记录里程碑事件:首次击败世界首领、行会人数破百、攻城告捷,大事记在行会驻地长廊永久展示,成为行会的编年史。
关键事件发生时自动写入大事记:按事件类型与里程碑阈值判定,只有“首次”或“破纪录”类事件才入记,日常事件不占版面。示例代码如下:
-- 行会大事记:里程碑判定
local player = class(actor)
local MILESTONES = {
{key = "FirstZuma", desc = "首次讨伐祖玛教主", check = 1},
{key = "Member100", desc = "行会成员突破一百人", check = 100},
}
local function recordMilestone(player, eventKey, currentValue)
for _, m in ipairs(MILESTONES) do
if m.key == eventKey then
local done = tonumber(getsysvar("GuildMile_" .. eventKey) or 0)
if currentValue >= m.check and done == 0 then
setsysvarex("GuildMile_" .. eventKey, os.time(), true)
sendcentermsg(player, 255, 0, "【行会大事记】" .. m.desc .. "!", 0, 10)
end
end
end
end
大事记在行会驻地的荣誉长廊按时间顺序陈列,成员点击任一事件可查看详情与当期参与者名单;行会周年庆时,大事记自动生成周年回顾卷轴全服展示。示例代码如下:
-- 大事记:长廊陈列
local player = class(actor)
local function showChronicle(player)
local events = {
{name = "首次讨伐祖玛教主", date = "2026-03-15"},
{name = "行会成员突破一百人", date = "2026-06-01"},
{name = "首次攻占沙巴克", date = "2026-08-20"},
}
sendmsg(player, 1, 0, "———— 行会大事记 ————")
for i, e in ipairs(events) do
sendmsg(player, 1, 0, i .. ". " .. e.date .. " " .. e.name)
end
end
验证三条链路:里程碑只记首次、参与者名单与事件时间配对、周年卷轴按大事记自动生成不错漏;重复触发同类事件不再入记。运营看两个数:大事记年度新增条数与成员查看率,新增条数过少说明里程碑设计太苛刻,增设阶段性小里程碑;查看率高说明行会归属感建设有效,归属感正是大件留存的底层指标。
记录曾按行会手动录入,帮主懒更新大事记半年不动,自动化监听取代手工。里程碑曾含成员离职类负面事件,离职名单公示引发旧成员不满,大事记只记集体荣誉不记人事变动。周年卷轴曾把测试期事件也写进去,测试数据打上标记在生成时过滤,数据卫生从源头治理。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
学员常见误区 Lua函数可返回多个值,学员用固定变量数接收时如果变量少于返回值,多余返回值被静默丢弃;如果变量多于返回值,多…
设计初衷 行会建筑的死穴是一次全解锁:会员没有逐步建设的过程感。梯度设计让每栋建筑都有前置条件和资源门槛。 数值模型 建筑分…
设计初衷 婚姻系统的属性加成是社交玩法的经济锚点:加成太弱没人结婚,太强则"为了属性被迫结婚"扭曲了社交本质。婚姻边界的设计…
设计初衷 宝箱类玩法的信任危机都源于同一句话:"概率是不是骗人的。"期望公示把概率从事后争议变成事前契约:奖池概率表全量公示…
设计初衷 流拍物(拍卖未成交的退回物品)堆积在卖家背包里成为死资产:低价值物流拍后无人问津,高价值物流拍后卖家不愿降价重拍。…
业务场景 沙巴克战功榜每周结算,玩家提交战功前不知道"再打多少能进前 10、前 10 的奖励是什么"。名次预览:输入自己的战…