全服稀有幸道具进包瞬间要造气氛:拾取裁决之杖全服播报,同时给道具打上绑定标记防止秒交易洗白。addbag触发就是进包入口,一个函数同时完成播报与风控标记。
进包触发里判断物品名,稀有件走全服消息,普通件直接跳过,避免消息泛滥。
local RARE = { ["裁决之杖"] = true, ["嗜魂法杖"] = true }
function addbag(actor, itemname)
if RARE[itemname] then
local player = class(actor)
sendmsg(actor, 1, player:GetName() .. " 获得了 " .. itemname .. "!")
playsound(actor, "rare_get.wav")
end
end
同一玩家60秒内重复触发只播一次,稀有件写入拾取流水变量供GM核查。
local lastAnn = {}
function addbag(actor, itemname)
local player = class(actor)
local name = player:GetName()
if RARE[itemname] then
local now = os.time()
if lastAnn[name] == nil or now - lastAnn[name] > 60 then
sendmsg(actor, 1, name .. " 获得了 " .. itemname .. "!")
setplayvar(actor, "HUMAN", "RARE_LOG", itemname .. "@" .. now, 1)
lastAnn[name] = now
end
end
end
GM制造稀有件投递测试号验证播报与流水;监控全服稀有播报频次,单日超过30次说明爆率异常,第一时间反馈数值组。
addbag的第二参数名以站点QF触发文档为准,个别版本传的是物品表索引而非名字,判断前先打日志确认。播报类型1是全服可见,测试时误把调试消息用1发出,全服刷屏被玩家截图,验证环境务必用0。lastAnn表按名字累计不清理,服务端跑一周能到几十万条,加定时清扫或改用时间片轮转。绑定标记若用checkitemstate回查,注意拾取当帧物品可能尚未就绪,延后一拍再写标记。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 悬赏捕杀把玩家之间的恩怨变成可托付的系统行为:仇家难以亲自复仇时,花费金条发布悬赏,全服玩家接单击杀目标…
实战应用:用在哪里 策划改表是日常动作,漏填字段、引用了不存在的编号、数值越界这三类问题占了配表故障的绝大多数。等玩家报错再…
实战应用:用在哪里 行会擂台给中小行会提供了固定的对抗出口:挑战方击败守擂方后接管擂台,连胜次数决定每日结算奖励档位。接口层…
实战应用:用在哪里 世界首领战里玩家最关心的是伤害前十名:榜单要求随时插入、随时能按序取出,每来一条伤害记录都重新排序一次太…
实战应用:用在哪里 百人同屏的攻城战里,把每条移动、施法消息广播给全地图是最常见的性能失误。九宫格视野的做法是把地图切成等大…
实战应用:用在哪里 留言板、行会招募语、邮件标题这类字段会被玩家自由填写,并写入角色变量或转发给持久层。拼接式的写法一旦遇到…