驻地巡逻 AI 只会沿固定路线走:玩家摸清路线后绕行如入无人之境。傀儡机关封装:机关傀儡按"巡逻、警戒、袭扰"三态运行——巡逻期沿路线走、发现入侵者进入警戒(面向喊话 5 秒)、持续入侵升级袭扰(主动攻击)——守卫有了行为层次,误入者有撤退窗口。
三态推进。示例代码如下:
local function puppetAI(puppet, intruder, state)
if state == "patrol" and intruder then
state = "alert"
setplayvar(puppet, 0, "AlertUntil", os.time() + 5, 0)
sendmsg(intruder, 1, "傀儡转向监视!5 秒后攻击。")
elseif state == "alert"
and os.time() > (tonumber(getplayvar(puppet, 0, "AlertUntil")) or 0) then
state = "attack"
sendmsg(intruder, 1, "傀儡发起袭扰!")
end
return state
end
定时驱动。示例代码如下:
local function puppetTick(puppet, intruder)
local state = tostring(getplayvar(puppet, 0, "PupState") or "patrol")
state = puppetAI(puppet, intruder, state)
setplayvar(puppet, 0, "PupState", state, 0)
end
puppetAI 是三态状态机——patrol 沿路线走、发现入侵者转 alert(面向喊话 5 秒警告期)、警告超时转 attack 主动袭扰;警告期的设计是给误入者撤退窗口;状态存傀儡自己的变量(isSave=0 战斗态),每 2 秒 tick 驱动一次状态推进——三态转换的条件全部参数化(5 秒警告、2 秒 tick)。
傀儡机关踩过三个坑:一是警戒期入侵者跑出视野傀儡仍追到天涯,超出巡逻半径 15 格自动回 patrol 并返程;二是袭扰召唤的同伴没有上限,连环袭扰拖出全图守卫,召唤上限 2 个;三是 attack 态没有出口(目标死亡后卡死),目标失效或死亡即回 patrol——状态机每个分支都要有出口。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【语法】 一、隐蔽陷阱 打印 5 层星号金字塔,每层比上层多 2 颗星、左侧空格少 1 个——空格与星数的数量关系不清晰时,…
【游戏】 一、业务场景 帮会下午没活动,成员上线点个卯就走。狩猎场上线:每晚 8 点开门 30 分钟,场内刷固定猎物,猎杀计…
【游戏】 一、业务场景 帮战开打才发现帮会没有物资储备,临时收捐谁也不交。粮仓上线:平日捐粮入库记账,帮战期间按配给开仓领补…
【语法】 一、隐蔽陷阱 验证"任一整数的立方都能写成连续奇数之和"时,起点从 1 开始逐个试,n 稍大就长跑几百步还没对上—…
【游戏】 一、业务场景 帮会大厅一面空墙,有人提议留言,结果聊天区刷屏根本留不住。题字墙上线:花 100 帮贡刻一句题字永久…
【游戏】 一、业务场景 灯谜活动上线半小时谜底被解题工具全数搜出——谜面与谜底同放在一份客户端配置里,读表即得。服务端重构:…