把MOBA的中立资源博弈搬进大世界:比奇矿区每1800秒刷新中立领主矿石巨像,击杀它的公会让全体成员采集速度提升两成持续一小时。领主成为公会间必争之地,野区从此有了战争的理由。
领主定时刷新,击杀时按公会伤害占比判定归属,占比最高的公会全员吃增益。actor是字符串,转对象后读公会归属。
local guildDmg = {}
function onLordHit(actor, dmg)
local player = class(actor)
local g = getplayvar(actor, 2, "GUILD_NAME")
if g == nil or g == "" then return end
guildDmg[g] = (guildDmg[g] or 0) + dmg
end
function onLordDie(actor)
local top, best = "", 0
for g, d in pairs(guildDmg) do
if d > best then top, best = g, d end
end
if top ~= "" then
setsysvar("LORD_OWNER", top)
broadcastGuildBuff(top)
sendcentermsg(top .. " 击败矿石巨像,公会采集速度提升20%一小时!")
end
guildDmg = {}
end
归属公会全员挂采集加速Buff,在线即挂,离线成员登录时补挂一次。
local function broadcastGuildBuff(gname)
for _, name in ipairs(guildMembers(gname)) do
local a = getplayerbyname(name)
if a ~= nil and isplayer(a) then
addbuff(a, "MINE_SPEED", 3600)
end
end
end
多公会混战按伤害占比判定归属,占比并列时先到先得;增益到期自动失效。上线后记录领主每期的争夺公会数与冲突烈度,单公会长期垄断说明刷新点位太偏,挪到中立走廊。
guildDmg按公会累计伤害,散人无公会的伤害不计入归属但应有参与奖,两套账分开记。addbuff对全员批量挂载在百人公会要切片执行,一口气挂完会有秒级卡顿。onLordDie里的归属判定用 Last hit 会变成抢尾刀玩法,与设计不符,占比判定的伤害数据要实时聚合。矿石巨像的刷新点位公布后会被蹲点,刷新时间加正负三分钟抖动。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 装备回收商 NPC 每天按评分收购玩家的装备,裁决之杖、骨玉权杖按攻击、持久加权打分,榜上只要前五名。数…
实战应用:用在哪里 沙巴克攻城是全服行会战的最高舞台:攻方砸开城门、抢占皇宫,守方依托城墙与复活点反打。规则设计的关键是节奏…
实战应用:用在哪里 影分身玩法给法师职业补上生存短板:危急时刻召唤四个影分身分担仇恨,敌人需要在六格范围内分辨真身,猜错就浪…
实战应用:用在哪里 组队邀请、行会宣战这类关键信令丢了没有兜底,玩家只能反复手点,高峰期体验很差。重试机制给信令加确认回执:…
实战应用:用在哪里 新资料片上线首日预约量常是日常十倍,一口气全开会让数据库与登录网关同时过载。滚动开区把开区动作排成队列:…
实战应用:用在哪里 百人同屏的沙巴克外围战场,每个玩家每秒跑动会触发数次位置更新,全部即时下发时广播量随人数平方增长,网关先…