驻地守御靠玩家人肉站桩:离线时段防务真空。箭塔守御封装:驻地点位部署箭塔(帮会资金建造),箭塔自动索敌(优先最近、次选血少)、每 2 秒一发、单发 300 点——防务从人力值守升级为设施值守。
索敌选择。示例代码如下:
local function towerPick(targets)
local best, bestDist = nil, math.huge
for _, t in ipairs(targets) do
if t.dist < bestDist
or (t.dist == bestDist and t.hp < best.hp) then
best, bestDist = t, t.dist
end
end
return best
end
开火结算。示例代码如下:
local function towerFire(actor, target)
local hp = tonumber(getplayvar(target, 0, "HP")) or 0
setplayvar(target, 0, "HP", hp - 300, 0)
sendmsg(target, 1, "箭塔命中,受到 300 点伤害。")
if hp - 300 <= 0 then
sendmsg(actor, 1, "箭塔击退一名入侵者。")
end
end
towerPick 的索敌规则——优先距离最近,距离相同选血量最少的(集火收割),入侵者名单由进图触发器维护(复用法阵与战鼓的名单模式);towerFire 每 2 秒由定时器驱动,对选中目标结算 300 点伤害;击退反馈发到帮会频道——箭塔的每次开火都是防务的可见产出。
箭塔守御踩过三个坑:一是索敌只看距离不看阵营,帮会成员路过也挨打,索敌名单过滤为非本帮且非同盟;二是箭塔无射程上限全图狙杀,加 15 格射程边界、超出不索敌;三是目标死亡后索敌列表残留死目标,塔空转不切换目标,tick 前先清理失效条目。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【语法】 一、隐蔽陷阱 打印 5 层星号金字塔,每层比上层多 2 颗星、左侧空格少 1 个——空格与星数的数量关系不清晰时,…
【游戏】 一、业务场景 帮会下午没活动,成员上线点个卯就走。狩猎场上线:每晚 8 点开门 30 分钟,场内刷固定猎物,猎杀计…
【游戏】 一、业务场景 帮战开打才发现帮会没有物资储备,临时收捐谁也不交。粮仓上线:平日捐粮入库记账,帮战期间按配给开仓领补…
【语法】 一、隐蔽陷阱 验证"任一整数的立方都能写成连续奇数之和"时,起点从 1 开始逐个试,n 稍大就长跑几百步还没对上—…
【游戏】 一、业务场景 帮会大厅一面空墙,有人提议留言,结果聊天区刷屏根本留不住。题字墙上线:花 100 帮贡刻一句题字永久…
【游戏】 一、业务场景 灯谜活动上线半小时谜底被解题工具全数搜出——谜面与谜底同放在一份客户端配置里,读表即得。服务端重构:…