道士的宝宝是半个自己:召唤麒麟、指挥跟随、下令攻击,宝宝的行为全部由玩家的指令驱动。宝宝指令的协议要点是召唤的权威校验、指令的下发与宝宝状态的回传——人宠合一的手感靠协议的顺畅。
---召唤:校验后引擎生成宝宝
function Pet.summon(actor)
local player = class(actor)
if not player then return false end
-- 召唤兽数量上限:道士 2 只
local cnt = Pet.countOf(actor)
if cnt >= 2 then
sendmsg(actor, 1, "召唤兽数量已达上限")
return false
end
if not checkitemw(actor, "魔法药", 5) then
sendmsg(actor, 1, "蓝量不足,无法召唤")
return false
end
takeitem(actor, "魔法药", 5, 0, "召唤消耗")
recallmob(actor, "麒麟", 1)
sendmsg(actor, 1, "麒麟已听候差遣")
return true
end
召唤的校验三件事:数量上限(道士同时 2 只)、蓝耗的支付、职业的资格。recallmob 按名字生成宝宝,宝宝的属性随主人的等级与技能等级成长——召唤神兽的等级是道士的看家功夫。宝宝的归属绑定主人,转赠与拾取的宝宝归属不可转移,宝宝的所有权清晰。
---指令协议:跟随、攻击、停留
function Pet.command(actor, petIdx, cmd, targetId)
local player = class(actor)
if not player then return false end
-- 归属校验:只能指挥自己的宝宝
if not Pet.ownedBy(actor, petIdx) then
sendmsg(actor, 1, "宝宝归属不符")
return false
end
local pet = Pet.of(actor, petIdx)
if cmd == "follow" then
pet.mode = "follow"
sendmsg(actor, 1, "宝宝已切换为跟随")
elseif cmd == "attack" then
pet.target = targetId
pet.mode = "attack"
sendmsg(actor, 1, "宝宝出击!")
elseif cmd == "stay" then
pet.mode = "stay"
sendmsg(actor, 1, "宝宝原地待命")
end
return true
end
指令的协议三要素:宝宝的索引、指令字、目标(攻击指令才带)。归属的校验在指令的入口——指挥别人的宝宝是协议层的越权,改包的指令在归属的比对处被拒。宝宝的 AI 三态:跟随(贴身半格的随行)、攻击(锁定目标追击)、停留(原地警戒),状态的切换由指令驱动、被打的反击自动触发。状态的回传按需推送:宝宝的位置变化走同屏的移动同步,血量与状态的变化走独立的小包,宝宝的存活状态在主人的面板常驻显示。
指令的频控监控,单玩家每秒的宝宝指令超过 5 次按宏处理;宝宝与主人的距离衰减统计,跟随的断联距离调参有数据可依。
归属的校验曾经只在召唤时做,拾取别人遗落的宝宝后指令错乱,每次指令的归属复查修复。攻击的目标曾经不校验敌我,宝宝打了同队的队友,目标合法性加阵营过滤。跟随的寻路曾经逐帧计算,宝宝多时的寻路开销拖累帧率,路径的缓存与节流让三只宝宝轻装上阵。
宝宝的属性成长曲线与主人的等级挂钩的公式进配置,宝宝的上限按职业定档。指令的快捷键默认位与技能栏互补,人宠的协同不抢键位。宝宝的死亡与复活规则公示:战死的宝宝回栏冷却 60 秒,道士的召唤是可持续的资源。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 未知暗殿是传奇最著名的陷阱地图:满屋子的“祖玛教主”,只有一只是真的,其余全是会秒人的假教主。镜像刷新触…
实战应用:用在哪里 行会领地只有一块挂名的地,成员没有归属感。牧场经营把领地变成养殖场:行会购入幼畜分给成员认养,认养者每日…
实战应用:用在哪里 节日活动都是打打杀杀,会乐器的玩家无处施展。行会演出把节日晚会做成玩法:会内征集节目(演奏、时装秀、脱口…
实战应用:用在哪里 凌晨三点金币产出异常和白天聊天频道卡顿,显然不是一回事,但响应流程曾经一模一样。应急预案分级把事件分成四…
实战应用:用在哪里 全服许愿墙是最有烟火气的玩法:玩家写下心愿投入奖励池,许愿消耗许愿币,系统按周开奖,幸运者瓜分奖池大奖。…
实战应用:用在哪里 成就系统做了几十项,玩家做完就翻篇,成就的荣誉感没有出口。成就展示墙给玩家一面可以布置的墙:已解锁的成就…