CHUAN2 DEV ENGINE
996 正版授权研发中心 · 360 授权合作教学中心 · 抖音传奇直播合作授权 · 快手推广运营商授权
OFFICIAL LICENSED ACADEMY 查验官方授权证书 →
// 威海旷世互娱教学基地 · 技术文章
后端接口宠物系统

【后端接口】宠物放生:放生的确认与资质返还

2026-09-23 17:01 作者:996 技术组 996引擎Lua教程传奇脚本

实战应用:用在哪里

宠物的放生是资源的回收与取舍:格子满了、资质差了、想换新的——放生让不再需要的宠物转化为资源。放生的实现要点是双重确认、资质的折算与误放的保护,放弃的决策要有安全网。

放生的确认

lua
---宠物放生:两段确认防误操作
function PetRelease.confirm1(actor, petId)
    local player = class(actor)
    if not player then return false end
    local quality = Pet.qualityOf(actor, petId)
    if quality >= 4 then
        sendmsg(actor, 1, "高品质宠物需要输入放生确认码")
        setplayvar(actor, "HUMAN",
            "Release_" .. petId, os.time(), 0)
        return false
    end
    PetRelease.doRelease(actor, petId)
    return true
end

---二次确认后执行放生
function PetRelease.confirm2(actor, petId)
    local mark = getplayvar(actor, 2,
        "Release_" .. petId)
    if not mark or mark == "" then
        sendmsg(actor, 1, "请先点击放生按钮")
        return false
    end
    local quality = Pet.qualityOf(actor, petId)
    local refund = quality * 10
    PetRelease.remove(actor, petId)
    giveitem(actor, "宠物零食", refund)
    setplayvar(actor, "HUMAN",
        "Release_" .. petId, "", 0)
    sendmsg(actor, 1, "放生完成,获得宠物零食 x" .. refund)
    return true
end

放生的确认两段执行:第一段标记意图、第二段执行放生,两段之间玩家有时间反悔。高品质宠物的放生额外要求输入确认码,误触的代价用交互的摩擦力对冲。放生的资源按品质折算:品质越高的宠物返还越多,投入的尊重在放生的补偿中体现。

误放的保护

lua
---误放的保护:30 分钟内的撤销窗口
setontimerex(150, 60)
function PetRelease.undoCheck()
    for uid, record in pairs(PetRelease.recent) do
        if os.time() - record.at > 1800 then
            PetRelease.recent[uid] = nil
        end
    end
end

---撤销放生:30 分钟内可恢复
function PetRelease.undo(actor)
    local record = PetRelease.recent[actor:GetUserId()]
    if not record then
        sendmsg(actor, 1, "没有可撤销的放生记录")
        return false
    end
    PetRelease.restore(actor, record.petId)
    PetRelease.recent[actor:GetUserId()] = nil
    sendmsg(actor, 1, "宠物已恢复")
    return true
end

误放的保护用 30 分钟的撤销窗口:放生后 30 分钟内可以一键恢复宠物,恢复后资源退回。撤销的窗口给手滑的玩家一条退路——误操作的挫败感由撤销的出口稀释。放生的流水记录宠物的基本信息与返还的资源,纠纷的追溯有据可查。放生的确认流程在高品质宠物上再加一道:全服播报级别的宠物需要输入宠物名字确认,名字的匹配是最终的身份校验。

验证与监控

放生的量与撤销率的统计,撤销率超 30% 提示确认流程的交互设计需要优化;资质返还的数量与宠物的品质对账,折算的公式进配表校验。

踩坑记录

放生曾经在宠物出战时也执行,战宠凭空消失引发客诉,出战状态的放生拦截补上。撤销曾经不清返还的资源,撤销后资源与宠物双份持有,撤销时回收返还的资源。确认码的验证曾经在宠物转生后失效,转生重置了标记但确认码的键没变,确认码的键绑定宠物唯一 ID。

上线要点

放生的确认级别按宠物的品质分档:低品质一键放生、高品质两段确认加确认码。放生的资源折算公式进配表,品质与返还的比例公示。误放的撤销入口在放生操作的反馈中直达,撤销的动线零层级。

作者履历与出处

本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。

← 返回文章地图返回研学路径

幂尔框架 · 实战干货 · 接口调用

LATEST ARTICLES

全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →

引擎触发猪洞七层白野猪巡回

【引擎触发】猪洞七层:白野猪的巡回触发设计

实战应用:用在哪里 猪洞七层的白野猪是中级玩家的过渡首领,巡回触发让它在三层地图间按路线巡逻,而非固定在一个点位被反复蹲守。…

2026-09-23 22:15 996 技术组
玩法策划行会目标集体目标达成

【玩法策划】行会目标系统:行会集体目标的设定与达成

实战应用:用在哪里 行会活动零散且缺乏组织性,成员不知道这周行会要做什么。行会目标系统让帮主每周设定行会集体目标(击杀指定首…

2026-09-23 22:15 996 技术组
工具链GM审计台审计回放

【工具链】GM 审计台:操作留痕的查询与回放

实战应用:用在哪里 GM 操作的审计曾散落在各系统日志里,追查一次误操作需要跨三个日志文件。GM 审计台将所有 GM 操作集…

2026-09-23 22:15 996 技术组
界面UI背包筛选器筛选过滤

【界面UI】背包筛选器:按品质与类型的快速过滤

实战应用:用在哪里 背包一百格塞满后找一件药要翻三页。背包筛选器在背包面板顶部加一排筛选标签:按品质(白绿紫橙)与类型(药品…

2026-09-23 22:15 996 技术组
网络通信区域组播组播投递

【网络通信】区域组播:按地图分组的消息投递

实战应用:用在哪里 行会广播、地图公告、活动提醒需要发给特定地图的所有玩家,逐个发送时包量随人数线性增长。区域组播按地图分组…

2026-09-23 22:15 996 技术组
运维发布故障分级响应时限

【运维发布】故障分级响应:从P0到P3的处置时限

实战应用:用在哪里 凌晨三点的数据库主从延迟和下午三点的聊天频道延迟,影响的范围和紧急度截然不同,但响应流程曾一模一样。故障…

2026-09-23 22:15 996 技术组