召唤兽不是无情的工具人:忠诚度系统让召唤兽有了脾气——忠诚度高时主动协战、死亡自动复活,忠诚度低时消极怠工甚至倒戈。忠诚度靠喂养与并肩作战积累,战斗中阵亡则大幅下降,召唤师需要经营与召唤兽的感情。
召唤兽出战每分钟涨一点忠诚,阵亡扣三十点,忠诚低于三十消极怠工(攻击间隔翻倍),归零时召唤兽叛逃。actor是字符串,转对象后读写忠诚值。
local function addLoyalty(actor, delta)
local player = class(actor)
local loy = tonumber(getplayvar(actor, 2, "SUMMON_LOY") or "50") + delta
loy = math.max(0, math.min(100, loy))
setplayvar(actor, "HUMAN", "SUMMON_LOY", loy, 1)
if loy <= 0 then
recallmob(actor)
sendmsg(actor, 0, "召唤兽转身离群而去……")
end
end
喂养口粮恢复二十点忠诚,与召唤兽共同击杀五十只怪物触发并肩羁绊加十点,恢复途径多样化让召唤师有养成目标。actor是字符串,转对象后恢复忠诚。
local function feedSummon(actor)
local player = class(actor)
if player:checkitemw("召唤兽口粮", 1) == false then
sendmsg(actor, 0, "缺少召唤兽口粮")
return
end
player:takeitem("召唤兽口粮", 1)
addLoyalty(actor, 20)
sendmsg(actor, 0, "召唤兽吃得津津有味,忠诚+20")
end
忠诚升降的边界钳制、消极怠工、叛逃回收三条路径验证;忠诚值分布的统计核对。上线后看忠诚度低于三十的召唤师占比,占比超过两成说明掉忠诚的代价太狠,调整阵亡扣点从三十降到二十。
SUMMON_LOY的读写入口要统一,散落的加减代码会让忠诚值的变更无法追踪,统一走addLoyalty通道。recallmob在忠诚归零时触发,但召唤兽已死亡的状态下再调用会报错,先判存活再回收。忠诚度的恢复有每日上限,防囤口粮一次性灌满,每日恢复上限五十点。道士死亡时召唤兽的忠诚额外扣十点,主人阵亡召唤兽不离不弃的设定不符合野性的直觉。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 装备回收商 NPC 每天按评分收购玩家的装备,裁决之杖、骨玉权杖按攻击、持久加权打分,榜上只要前五名。数…
实战应用:用在哪里 沙巴克攻城是全服行会战的最高舞台:攻方砸开城门、抢占皇宫,守方依托城墙与复活点反打。规则设计的关键是节奏…
实战应用:用在哪里 影分身玩法给法师职业补上生存短板:危急时刻召唤四个影分身分担仇恨,敌人需要在六格范围内分辨真身,猜错就浪…
实战应用:用在哪里 组队邀请、行会宣战这类关键信令丢了没有兜底,玩家只能反复手点,高峰期体验很差。重试机制给信令加确认回执:…
实战应用:用在哪里 新资料片上线首日预约量常是日常十倍,一口气全开会让数据库与登录网关同时过载。滚动开区把开区动作排成队列:…
实战应用:用在哪里 百人同屏的沙巴克外围战场,每个玩家每秒跑动会触发数次位置更新,全部即时下发时广播量随人数平方增长,网关先…