坐骑不喂会饿、喂饱了跑得快,饱食度是坐骑系统的核心状态。坐骑喂养接口管理饱食度的增减与加成联动:饱食度一百时移速加成全额生效,低于三十坐骑拒绝出战并提示喂养,饱食度按天自然消耗,喂养道具按饥饿度恢复对应点数。
喂养入口校验坐骑饱食度上限与道具类型,不同道具体供的饱食点不同;喂养后立即刷新坐骑加成状态,饱食度变化实时可见。示例代码如下:
-- 坐骑喂养:饱食度增减
local player = class(actor)
local FEED_ITEMS = {["优质草料"] = 40, ["普通草料"] = 20}
local SAT_MAX = 100
local function feedMount(player, itemName)
local gain = FEED_ITEMS[itemName]
if gain == nil then
sendmsg(player, 1, 0, "该道具不能喂坐骑。")
return
end
if not checkitemw(player, itemName, 1) then
sendmsg(player, 1, 0, "背包里没有" .. itemName .. "。")
return
end
local sat = tonumber(getplayvar(player, "HUMAN", "MountSat") or 0)
local add = math.min(gain, SAT_MAX - sat)
if add <= 0 then
sendmsg(player, 1, 0, "坐骑已经很饱了。")
return
end
takeitem(player, itemName, 1)
setplayvar(player, "HUMAN", "MountSat", sat + add, true)
sendmsg(player, 1, 0, "喂养成功,饱食度 " .. sat + add .. "/" .. SAT_MAX .. "。")
end
饱食度分三档联动坐骑状态:一百到七十全额移速加成,七十到三十加成减半,三十以下坐骑拒绝出战并提示喂养;分档阈值配置化,调整不用发版。示例代码如下:
-- 坐骑加成:分档联动
local player = class(actor)
local function mountState(player)
local sat = tonumber(getplayvar(player, "HUMAN", "MountSat") or 0)
if sat >= 70 then
return "fast", "移速加成全额生效"
elseif sat >= 30 then
return "normal", "移速加成减半"
end
return "hungry", "坐骑饥饿,拒绝出战"
end
local function tryRide(player)
local state, tip = mountState(player)
if state == "hungry" then
sendmsg(player, 1, 0, tip .. ",请先喂些草料。")
return
end
sendmsg(player, 1, 0, "翻身上马!" .. tip)
end
验证三条链路:不同草料的饱食点数正确、饱食度上限一百不溢出、三档状态切换与出战门槛拦截正确;饱食度跨天自然消耗的数值逐日核对。线上监控坐骑饱食度分布与喂养道具的消耗速度,饱食度长期低于三十的坐骑占比超过两成,把普通草料的恢复点数上调;喂养道具销量异常波动时排查是否有脚本囤草料。
饱食度曾按真实时间自然消耗,服务器重启补偿期间玩家坐骑集体饥饿,消耗按在线时长计。喂养道具曾不限类型,任务道具也能喂出饱食度,道具白名单校验补上。加成分档曾只做面板显示不生效,玩家反馈跑得慢才发现分档只做了 UI,数值联动在接口层补齐,展示与生效永远同步实现。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
学员常见误区 Lua函数可返回多个值,学员用固定变量数接收时如果变量少于返回值,多余返回值被静默丢弃;如果变量多于返回值,多…
设计初衷 行会建筑的死穴是一次全解锁:会员没有逐步建设的过程感。梯度设计让每栋建筑都有前置条件和资源门槛。 数值模型 建筑分…
设计初衷 婚姻系统的属性加成是社交玩法的经济锚点:加成太弱没人结婚,太强则"为了属性被迫结婚"扭曲了社交本质。婚姻边界的设计…
设计初衷 宝箱类玩法的信任危机都源于同一句话:"概率是不是骗人的。"期望公示把概率从事后争议变成事前契约:奖池概率表全量公示…
设计初衷 流拍物(拍卖未成交的退回物品)堆积在卖家背包里成为死资产:低价值物流拍后无人问津,高价值物流拍后卖家不愿降价重拍。…
业务场景 沙巴克战功榜每周结算,玩家提交战功前不知道"再打多少能进前 10、前 10 的奖励是什么"。名次预览:输入自己的战…