setautogetexp 是定时发放经验的引擎接口:修炼 Patr、挂机奖励、会员离线收益的定时经验全走它。接口按间隔与单次数量自动发放,发放的节奏与上限的控制在接口参数与外层的校验里完成。
---定时自动经验 actor:玩家 evetime:间隔秒 experience:单次经验 isSafe:限安全区 mapid:地图 opt:叠加 alltime:总时长 level:等级上限
function setautogetexp(actor, evetime, experience, isSafe, mapid, opt, alltime, level) end
-- 会员离线修炼:每 60 秒 5000 经验,持续 4 小时
function vipOfflineTrain(actor)
setautogetexp(actor, 60, 5000, 1, actor.mapId, 0, 14400, actor.level)
sendmsg(actor, 1, "离线修炼已开启,持续 4 小时")
end
evetime 是发放间隔秒,experience 是单次经验,alltime 是总时长秒,到期自动停止。isSafe 置 1 限定只在安全区生效,挂机修炼与打怪经验的冲突由区域区分。发放的经验走 changeexp 的统一管线,升级链的联动自动完成。
---修炼的每日上限
function Train.limit(actor)
local today = os.date("%Y%m%d")
local earned = getplayvar(actor, "HUMAN", "train_" .. today) or 0
if earned >= 400000 then
return false, "今日修炼收益已达上限"
end
setplayvar(actor, "HUMAN", "train_" .. today, earned + 5000, 1)
return true
end
修炼的每日收益上限 40 万经验,上限的计数按自然日重置。挂机修炼与在线打怪的经验池分离统计,两条曲线的平衡由数值组按周校准。修炼的开启条件绑定 VIP 等级或月卡,权益的边界在商城说明页公示。修炼的状态在角色下线时暂停、上线时恢复,离线的时段不计时——离线收益是独立的商品,不与在线修炼混算。
修炼经验的发放总量与 VIP 权益的比值监控,发放的速率异常(突增三倍)触发权益滥用排查。
修炼的经验曾经绕过防沉迷的递减,挂机收益全额发放,递减的挂钩补上后公平恢复。定时器在下线时的清理曾经遗漏,上线的重复开启导致双倍收益,定时器的注销与开启严格配对。
修炼的界面显示剩余时长与预计收益,玩家的预期管理靠信息透明。修炼的收益进经验流水单独标记,修炼的产出与打怪的经验在报表里分列对比,两条成长线的平衡有数据支撑。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 战士的烈火剑法一击熄火后要等八秒冷却,连招断档感强烈。疾风烈火斩在烈火剑法命中后给一次连击窗口:三秒内再…
实战应用:用在哪里 阵营对抗打到中期容易疲软:打赢没有额外好处,输掉也没有代价。阵营声望体系给阵营战装上荣誉刻度:个人与阵营…
实战应用:用在哪里 拿下沙巴克之后呢?城主除了名字挂在城墙上,对城市毫无影响。城主施政玩法让占领变成治理:城主每周获得市政令…
实战应用:用在哪里 主线路光缆被挖断的深夜,全服掉线 20 分钟,玩家以为游戏倒闭。备用线路方案给接入层配第二条出口:主线路…
实战应用:用在哪里 行会官员由帮主任命的老模式弊端明显:任人唯亲、能上不能下。行会选举接口把官员换届做成投票制:每两个月一次…
实战应用:用在哪里 烈火剑法的伤害加成、冷却时间、下一级提升,全靠玩家记忆或去官网查。技能说明悬浮卡片在鼠标悬停技能图标零点…