全服稀有幸道具进包瞬间要造气氛:拾取裁决之杖全服播报,同时给道具打上绑定标记防止秒交易洗白。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 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 战士的烈火剑法一击熄火后要等八秒冷却,连招断档感强烈。疾风烈火斩在烈火剑法命中后给一次连击窗口:三秒内再…
实战应用:用在哪里 阵营对抗打到中期容易疲软:打赢没有额外好处,输掉也没有代价。阵营声望体系给阵营战装上荣誉刻度:个人与阵营…
实战应用:用在哪里 拿下沙巴克之后呢?城主除了名字挂在城墙上,对城市毫无影响。城主施政玩法让占领变成治理:城主每周获得市政令…
实战应用:用在哪里 主线路光缆被挖断的深夜,全服掉线 20 分钟,玩家以为游戏倒闭。备用线路方案给接入层配第二条出口:主线路…
实战应用:用在哪里 行会官员由帮主任命的老模式弊端明显:任人唯亲、能上不能下。行会选举接口把官员换届做成投票制:每两个月一次…
实战应用:用在哪里 烈火剑法的伤害加成、冷却时间、下一级提升,全靠玩家记忆或去官网查。技能说明悬浮卡片在鼠标悬停技能图标零点…