把自走棋的三合一升星搬进召唤体系:三只同名同级召唤兽可合成一只高一星的强化召唤兽,星级越高外形与技能越华丽。合成让冗余召唤兽有了归宿,收集与升星两条养成线同时启动。
合成入口校验三只同名同级召唤兽,扣三合一发高一星。actor是字符串,转对象后读召唤兽背包。
local function mergeSummon(actor, name, star)
local player = class(actor)
if star >= 3 then
sendmsg(actor, 0, "已达到3星上限")
return
end
local mat = name .. "·" .. star .. "星"
if player:checkitemw(mat, 3) == false then
sendmsg(actor, 0, "需要3只" .. mat)
return
end
player:takeitem(mat, 3)
giveitem(actor, name .. "·" .. (star + 1) .. "星", 1)
sendcentermsg(class(actor):GetName() .. " 合成了" .. star + 1 .. "星" .. name .. "!")
end
升星后的召唤兽挂对应星级的Buff与外形标识,三星解锁专属技能,星级在名字后缀直观可见。
local function applyStarBuff(actor, star)
local player = class(actor)
addbuff(actor, "SUMMON_STAR_" .. star, 86400)
if star == 3 then
sendmsg(actor, 0, "3星召唤兽解锁专属技能:裂地击")
end
end
合成路径的星级上限拦截、材料不足、成功升星三路径验证;升星Buff与星级一致。上线后统计各星级召唤兽的分布,三星占比超过一成说明材料投放过快,回收合成券控速。
召唤兽入包为物品形态,checkitemw按名字计数时含星级的全名必须与物品库逐字一致,中间点号别用中文句号。SUMMON_STAR_Buff按星级分档预建三条,档位收敛防Buff表膨胀。合成后旧召唤兽消失的确认弹窗不能省,误合成三星的申诉无法回滚。sendcentermsg的合成播报只在二星升三星时触发,低星合成刷屏会淹没世界频道。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 成就点数不该只是数字摆设:点数商店兑换永久属性加成,50分换百分之一攻击,上限百分之五。兑换接口管三件事…
实战应用:用在哪里 UI 合图(把零散小图打包成图集)是 DrawCall 合批的前提(合批原理参考前篇)。手工打包的问题:…
实战应用:用在哪里 SQLite 默认的回滚日志模式在写入时会阻塞读取(写锁独占),游戏服务端“边写日志边查配置”的场景会出…
实战应用:用在哪里 烈火剑法甩出去的瞬间最怕砍到队友:PK 模式是攻击的准星开关——和平、组队、行会、全体四种模式决定谁的技…
实战应用:用在哪里 把大逃杀的缩圈机制搬进沙巴克野区:五十人无阵营乱斗,安全区每六十秒收缩一圈,圈外持续掉血,终局幸存者独享…
停服更新最怕撞上在线高峰,踢掉几百人换来一片抱怨。选对发布窗口,同样的更新内容,玩家体验是两回事。本文讲如何用996引擎的在…