把塔防的布防思路搬进行会活动:守卫矿脉战开放十二个炮台基座,会长用公会资金在基座上布设三种守卫塔,怪物按固定路线进攻,布防策略决定守卫成败,会长从指挥官变成工程师。
基座可布设箭塔、毒塔、冰塔三种守卫塔,资金不足提示差额,同基座重复布设先拆后建。actor是字符串,转对象后扣公会资金。
local TOWERS = { arrow = 500, poison = 800, ice = 1200 }
function buildTower(actor, baseId, kind)
local player = class(actor)
local cost = TOWERS[kind]
if cost == nil then
sendmsg(actor, 0, "未知塔型")
return
end
local fund = tonumber(getplayvar(actor, 2, "GUILD_FUND") or "0")
if fund < cost then
sendmsg(actor, 0, "公会资金不足,还差" .. cost - fund)
return
end
setplayvar(actor, "HUMAN", "GUILD_FUND", fund - cost, 1)
genmon("mine_defense", baseId * 3, 20, kind .. "守卫塔", 1)
sendmsg(actor, 0, kind .. "守卫塔布设成功")
end
箭塔单体高伤、毒塔范围减疗、冰塔减速聚怪,三塔配合的覆盖设计是布防的核心策略。
local function towerFire(kind, targets)
if kind == "arrow" then
humanhp(targets[1], "-", 300)
elseif kind == "poison" then
for _, t in ipairs(targets) do makeposion(t, 5, 30) end
elseif kind == "ice" then
for _, t in ipairs(targets) do
makeposion(t, 0, 20)
end
end
end
三塔的攻击范围与效果逐塔验证;资金扣减与布设状态一致性核对。上线后统计三塔的布设比例,毒塔冷门就调减疗强度,配装多样性是塔防玩法健康的标志。
makeposion的参数含义以引擎文档为准,中毒伤害与减速是两种效果形态,参数写错冰塔会变毒塔。genmon生成的守卫塔本质是怪物,敌我识别靠阵营标记,攻城方技能误伤自家塔的判定要排除。GUILD_FUND是行会资金镜像,与行会金库主账的同步时机要对齐,双账漂移是资金类玩法的通病。十二基座全满时的同屏怪物与塔攻击结算量要压测,塔防的负载在结算不在渲染。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 战士的烈火剑法一击熄火后要等八秒冷却,连招断档感强烈。疾风烈火斩在烈火剑法命中后给一次连击窗口:三秒内再…
实战应用:用在哪里 阵营对抗打到中期容易疲软:打赢没有额外好处,输掉也没有代价。阵营声望体系给阵营战装上荣誉刻度:个人与阵营…
实战应用:用在哪里 拿下沙巴克之后呢?城主除了名字挂在城墙上,对城市毫无影响。城主施政玩法让占领变成治理:城主每周获得市政令…
实战应用:用在哪里 主线路光缆被挖断的深夜,全服掉线 20 分钟,玩家以为游戏倒闭。备用线路方案给接入层配第二条出口:主线路…
实战应用:用在哪里 行会官员由帮主任命的老模式弊端明显:任人唯亲、能上不能下。行会选举接口把官员换届做成投票制:每两个月一次…
实战应用:用在哪里 烈火剑法的伤害加成、冷却时间、下一级提升,全靠玩家记忆或去官网查。技能说明悬浮卡片在鼠标悬停技能图标零点…