召唤兽不是无情的工具人:忠诚度系统让召唤兽有了脾气——忠诚度高时主动协战、死亡自动复活,忠诚度低时消极怠工甚至倒戈。忠诚度靠喂养与并肩作战积累,战斗中阵亡则大幅下降,召唤师需要经营与召唤兽的感情。
召唤兽出战每分钟涨一点忠诚,阵亡扣三十点,忠诚低于三十消极怠工(攻击间隔翻倍),归零时召唤兽叛逃。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 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 行会建设需要资金,成员的投入却看不到回报。行会发展基金让成员按份投入行会基金,基金用于行会建设与集体活动…
实战应用:用在哪里 占领沙巴克后的日常维护靠几个人,城内挂机广告无人管,安全区成了法外之地。沙城巡逻队把城防日常做成排班玩法…
实战应用:用在哪里 行会仓库运营数月后杂物堆积:过期活动道具、低级材料、重复装备混杂在贵重物资之间。仓库整理接口按价值与用途…
实战应用:用在哪里 一次活动奖励少发,三名客服给出三种答复:补发、不补发、等通知。玩家把三张截图拼在一起发到论坛,一场本可善…
实战应用:用在哪里 玩家拥有多个称号,切换佩戴后效果不符预期又要来回换。称号预览在切换前展示佩戴效果:名字上方的称号样式、属…
实战应用:用在哪里 赤月巢穴的魔龙教主血量降至三成会进入狂暴:攻击翻倍、召唤赤月护卫、周期性释放全屏魔龙血域。狂暴触发把 b…