行会领地是行会玩法的资源核心:公会通过占领野外领地石获得领地经营权,领地内的采集与练级加成归占领公会。领地占领的触发设计要点是占领读条、争夺干扰与占领保护的节奏平衡。
站在领地石五格内开启占领读条,六十秒读条期间受击则暂停,读条完成即变更归属。actor是字符串,转对象后推进读条。
local capProg = {}
function touchTerritory(actor, spot)
local p = class(actor)
local g = getplayvar(actor, 2, "GUILD_NAME") or ""
if g == "" then sendmsg(actor, 0, "加入行会才能争夺") return end
capProg[spot] = (capProg[spot] or 0) + 10
if capProg[spot] >= 100 then
capProg[spot] = 0
setsysvarex("TERR_OWNER_" .. spot, g, 1)
sendcentermsg(g .. " 占领了领地" .. spot .. "!")
end
end
领地变更后进入600秒的占领保护期,保护期内不可被反抢,防止两个公会一秒一换的拉锯。
local function checkProtect(spot)
local ownerTs = tonumber(getsysvar("TERR_TS_" .. spot) or "0")
return os.time() - ownerTs < 600
end
读条推进、攻击中断、保护期拦截三路径验证;归属变更与领地加成生效的联动核对。
capProg按领地点分键,读条进度在占领者离开范围时不清零的漏洞会让断续站桩慢慢磨满读条。TERR_TS在占领成功时写入,保护期的判定与占领写入要在同一事务。行会解散时其领地回归无主状态,回归的领地重新进入可争夺池。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 装备回收商 NPC 每天按评分收购玩家的装备,裁决之杖、骨玉权杖按攻击、持久加权打分,榜上只要前五名。数…
实战应用:用在哪里 沙巴克攻城是全服行会战的最高舞台:攻方砸开城门、抢占皇宫,守方依托城墙与复活点反打。规则设计的关键是节奏…
实战应用:用在哪里 影分身玩法给法师职业补上生存短板:危急时刻召唤四个影分身分担仇恨,敌人需要在六格范围内分辨真身,猜错就浪…
实战应用:用在哪里 组队邀请、行会宣战这类关键信令丢了没有兜底,玩家只能反复手点,高峰期体验很差。重试机制给信令加确认回执:…
实战应用:用在哪里 新资料片上线首日预约量常是日常十倍,一口气全开会让数据库与登录网关同时过载。滚动开区把开区动作排成队列:…
实战应用:用在哪里 百人同屏的沙巴克外围战场,每个玩家每秒跑动会触发数次位置更新,全部即时下发时广播量随人数平方增长,网关先…