把FPS的占点模式搬进行会玩法:沙巴克外围野区设三座哨塔控制点,公会成员站进控制圈读条占领,同时持有两座以上哨塔的公会全员获得增益。三线控制让小公会也能靠局部人数优势找到参与感。
占领需要圈内存活公会员人数持续压过敌方,进度条从零到满即易主。actor是字符串,转对象后按圈内人数推进进度。
local POINTS = { { id = "north", x = 40, y = 40 }, { id = "mid", x = 60, y = 60 }, { id = "south", x = 80, y = 80 } }
local progress = {}
local function countInZone(point, guild)
local n = 0
for _, name in ipairs(onlineGuildMembers(guild)) do
local a = getplayerbyname(name)
if a ~= nil and inCircle(name, point.x, point.y, 8) then
n = n + 1
end
end
return n
end
同时持有两座哨塔的公会给全员攻击加成一成,三座全占加两成,哨塔被反占后增益立即失效。
local function refreshBuff(guild, ownCnt)
for _, name in ipairs(onlineGuildMembers(guild)) do
local a = getplayerbyname(name)
if a ~= nil and isplayer(a) then
if ownCnt >= 3 then
addbuff(a, "POINT_ALL", 120)
elseif ownCnt >= 2 then
addbuff(a, "POINT_TWO", 120)
end
end
end
end
占点进度的人数对抗、增益发放与失效、三线独立推进验证。上线后看三座哨塔的占领时长分布,一座塔长期无争夺说明位置太偏,挪位比加奖励有效。
progress的推进按秒结算,双方人数相等时保持不变不推进,谁都不占优的僵局由时间强制裁决。onlineGuildMembers的名单遍历在大会是重操作,三座塔共享一次遍历结果。增益的120秒时长与刷新周期错位会造成增益空窗,续挂按剩余量补齐。圈半径八格的判定以角色坐标为准,坐骑体型大的模型视觉出圈但判定在圈内,UI要画判定圈避免争议。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 装备回收商 NPC 每天按评分收购玩家的装备,裁决之杖、骨玉权杖按攻击、持久加权打分,榜上只要前五名。数…
实战应用:用在哪里 沙巴克攻城是全服行会战的最高舞台:攻方砸开城门、抢占皇宫,守方依托城墙与复活点反打。规则设计的关键是节奏…
实战应用:用在哪里 影分身玩法给法师职业补上生存短板:危急时刻召唤四个影分身分担仇恨,敌人需要在六格范围内分辨真身,猜错就浪…
实战应用:用在哪里 组队邀请、行会宣战这类关键信令丢了没有兜底,玩家只能反复手点,高峰期体验很差。重试机制给信令加确认回执:…
实战应用:用在哪里 新资料片上线首日预约量常是日常十倍,一口气全开会让数据库与登录网关同时过载。滚动开区把开区动作排成队列:…
实战应用:用在哪里 百人同屏的沙巴克外围战场,每个玩家每秒跑动会触发数次位置更新,全部即时下发时广播量随人数平方增长,网关先…