找回密码
 register
搜索
查看: 29|回复: 0

洱海月 "勇气"任务"白狼大王的宝箱"修复教程

[复制链接]
  • 打卡等级:本地老炮
  • 打卡总天数:553
  • 打卡月天数:14
  • 打卡总奖励:550
  • 最近打卡:2026-07-14 06:29:25
Waylee 发表于 2026-7-7 23:24 | 显示全部楼层 |阅读模式 | Google Chrome | Windows 10

马上注册,查看网站隐藏内容!!

您需要 登录 才可以下载或查看,没有账号?register

×

任务“勇气”白狼宝箱修复教程

问题现象:

玩家点击“白狼大王的宝箱”后,出现:

已得到 白狼大王的耳环 0/1
已经拿到了耳环,快去交任务吧

或者之前出现:

已经拿到了耳环,快去交任务吧
没找到该任务
没找到该任务

核心原因:

gp_renwu_bailangdawangbaoxiang.lua 原来用了:

self:HaveItem(selfId, 40002066)

但当前服务端的 script_base:HaveItem() 是旧接口残留,固定返回 true,不能用于判断背包是否真的有任务道具。

修复点:

文件:

\ubuntu\tlbb\services\scripts\obj\growpoint\gp_renwu_bailangdawangbaoxiang.lua

核心代码:

local class = require "class"
local ScriptGlobal = require "scripts.ScriptGlobal"
local define = require "define"
local script_base = require "script_base"

local gp_renwu_bailangdawangbaoxiang = class("gp_renwu_bailangdawangbaoxiang", script_base)
gp_renwu_bailangdawangbaoxiang.script_id = 715000
gp_renwu_bailangdawangbaoxiang.g_MissionId = ScriptGlobal.MISSION_546
gp_renwu_bailangdawangbaoxiang.g_IsMissionOkFail = 0
gp_renwu_bailangdawangbaoxiang.g_MainItemId = 40002066
gp_renwu_bailangdawangbaoxiang.g_AlreadyGotText = "已经拿到了耳环,快去交任务吧"

function gp_renwu_bailangdawangbaoxiang:RefreshMissionStateIfHasItem(selfId)
    if not self:IsHaveMission(selfId, self.g_MissionId) or not self:HaveItemInBag(selfId, self.g_MainItemId) then
        return false
    end

    local misIndex = self:GetMissionIndexByID(selfId, self.g_MissionId)
    if misIndex == define.INVAILD_ID then
        return false
    end

    self:SetMissionByIndex(selfId, misIndex, self.g_IsMissionOkFail, 1)
    return true
end

OnOpen 改成:

function gp_renwu_bailangdawangbaoxiang:OnOpen(selfId, targetId)
    if self:HaveItemInBag(selfId, self.g_MainItemId) then
        if not self:RefreshMissionStateIfHasItem(selfId) then
            return define.OPERATE_RESULT.OR_MISSION_NOT_FIND
        end

        self:BeginEvent(self.script_id)
        self:AddText(self.g_AlreadyGotText)
        self:EndEvent()
        self:DispatchMissionTips(selfId)

        return define.OPERATE_RESULT.OR_ERROR
    end

    if self:IsHaveMission(selfId, self.g_MissionId) then
        return define.OPERATE_RESULT.OR_OK
    end

    return define.OPERATE_RESULT.OR_MISSION_NOT_FIND
end

不要这样写:

self:HaveItem(selfId, self.g_MainItemId)
self:CallScriptFunction(1030082, "PickupItem", selfId, self.g_MainItemId)

原因:

HaveItem() 会误判;PickupItem() 会走通用 LootItem 提示,容易刷出“0/1”这种错误进度提示。

宝箱刷新时间:

tlbb/configs/scene/caoyuan_growpointsetup.txt
49    1    1        60000    0

白狼宝箱 GrowPoint 类型是 49,当前补充间隔是 60000ms,也就是约 60 秒 刷新一次。

脚本 715000 已在 scripts.lua 注册,热重载脚本即可复测,不需要重启服务器。

您需要登录后才可以回帖 登录 | register

本版积分规则

QQ|手机版|雪舞知识库 ( 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 )|天天打卡

GMT+8, 2026-7-14 11:00 , Processed in 0.067065 second(s), 29 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表