-- 打开对象的函数
-- 该函数尝试打开一个指定的对象（例如 NPC）。如果对象在目标位置附近并且可以打开，则直接执行打开操作；
-- 如果对象距离目标位置较远，则会先进行寻路。如果未找到对象，则会尝试根据提供的 X 和 Y 坐标进行寻路。
-- 参数：
-- classObj: 对象的类名（字符串类型），用于指定要查找的对象类型。例如："NPC"、"Monster" 等。
-- X, Y: 目标位置的坐标（整数），表示寻路的目标位置。
-- nTypeOpen: 0=npc 1等于仓库
-- nSleep: 延时（整数类型），表示在打开对象时的延时（可选）。
-- 返回值：
-- 返回 1 表示成功打开指定的对象。
-- 返回 -1 表示成功到达目标位置并等待进一步操作，通常在未找到对象时会返回此值。
-- 返回 0 表示函数未执行任何有效操作，或者在寻找对象时发生了问题。

function Fn_打开对象(classObj, X, Y, nTypeOpen, nSleep)
    -- 尝试查找指定类型的对象（classObj）周围的对象，目标坐标为 (0, 0)
    X = X or -1
    Y = Y or -1
    local npcObj = L商店NPC(classObj)

    -- 如果找到了对象（ID 不等于 -1）
    --L信息(npcObj.ID.."@"..npcObj.距离.."@"..npcObj.名称)

    if npcObj.ID>0 then
        -- 如果对象距离当前位置的距离小于 3，表示该对象非常接近

        if npcObj.距离 < 2  then
            -- 尝试打开该对象，传入打开方式和延时
            -- if L打开对象(npcObj.ID, nTypeOpen, nSleep) == 1 then
            --     -- 成功打开对象，输出信息并返回 1
            --     L信息("成功打开对象: "..npcObj.名称)
            --     return 1
            -- else
            --     L信息("打开对象: "..npcObj.名称)
            -- end
            L点击对象(npcObj.ID) 
            L延时(1000)
            L信息("成功打开对象: "..npcObj.名称)
            return 1
            -- if == 1 then
            --     -- 成功打开对象，输出信息并返回 1
            --     L信息("成功打开对象: "..npcObj.名称)
            --     return 1
            -- else
            --     L信息("打开对象: "..npcObj.名称)
            -- end
            -- L信息("打开对象: "..npcObj.名称)
        else
            -- 如果对象离得较远，则进行寻路，移动到目标位置
            local 地图Ptr=L地图信息()
            if  npcObj.距离<8   and 地图Ptr.位置~=0    then 
                if L执行间隔("点击一下对象间隔",3000)==1        then 
                    L点击对象(npcObj.ID)
                    if npcObj.距离 < 3  then
                        return 1
                    end
                end
   
            end 
            L寻路(npcObj.X, npcObj.Y)

        end
    else

        if X<=0 or Y<=0 then

            return -1
        else
        -- 如果未找到对象，尝试根据提供的 X 和 Y 坐标进行寻路

            if L寻路(X, Y) == 1 then
                -- 如果寻路成功并到达目标位置，返回 -1
                return -1
            end
        end
    end
    -- 如果函数未执行任何有效操作，返回 0
    return 0
end



function Fn_对话(classObj,szTalk,X,Y,nTypeOpen,ui可视类型,DhType,nTime)
 local result=0
    X= X or -1
    Y= Y or -1
    ui可视类型 = ui可视类型 or 0
    nTypeOpen= nTypeOpen or 0
    DhType = DhType or 0

    if ui可视类型==0 then
        if L商店栏是否打开()==1 then
            result=1
            return result
        else
            if L执行间隔("出售物品可视判断间隔",30*1000)==1        then
                if L可视UI(UI_可视偏移.UI打开NPC框)==1      then
                    L结束对话()
                end
            end
        end
    elseif ui可视类型==1     then
        if L分解栏是否打开()==1 then
            result=1
            return result
        end
    end



    if Fn_打开对象(classObj,X,Y,nTypeOpen,nTime)==1    then
        L延时(1500)
        if L是否存在对话(szTalk)==1     then 
            result=1
        end 
        L对话(szTalk,DhType)
        L延时(1000)
        if szTalk==sz鑑定物品 then
            LEsc()
        end
  
     end

    return result
end

function Fn_读取仓库信息()
    local result=0
    if L读取仓库页()==0  then
        if Fn_进入崎點(1)==1    then
            local x,y=L获取对象的位置信息()
            if Fn_打开对象(sz普通仓库,x,y,1,500)==-1    then
            --说明没找到仓库位置
                L信息("未找到仓库")
                
                result=1
            else
                L信息("打开仓库中..")
            end
        end
    else
        if L仓库物品设置处理类型(0)==1    then
            -- if g全局记录变量.关闭一次个人仓库==0        then 
            --     g全局记录变量.关闭一次个人仓库=1
            --     LEsc()
            -- end 
            result=1
        end
    end
    return result
end

function Fn_当前是否存在公会仓库()

    local npcObj = L周围对象(sz公会仓库)
    if npcObj.ID <=0 then
        return 0
    end
    return 1
end 
function Fn_读取公会仓库信息()
    local result=0

    if L读取公会仓库页()==0  then
        local npcObj = L周围对象(sz公会仓库)
        if npcObj.ID <=0 then
            if Fn_进入崎點(1)==1    then
                result=1
            end
        else
            if Fn_打开对象(sz公会仓库,-1,-1,6,500)==-1    then
            --说明没找到仓库位置
            end
        end
    else
        if L公会仓库设置处理类型()==1    then
            -- if g全局记录变量.关闭一次公会仓库==0        then 
            --     g全局记录变量.关闭一次公会仓库=1
            --     LEsc()
            -- end 
            result=1
        end
    end


    return result
end

function D重置状态()
    gErrOpenNpc=0
    g背包清理状态=0

    local 地图Ptr=L地图信息()
    if 地图Ptr.位置==0      then 
        if g全局记录变量.全局记录还未清空==1        then 
           clearTable(g全局记录变量)
        end
        g鉴定并使用富豪次数=0
        g使用蜕变石=0
        g使用增幅石=0
        g使用富豪石=0
        g使用崇高石=0
        g使用瓦尔宝珠=0
        g使用机会石=0
        g全局记录变量.领取NPC奖励=0
        G开启帝王副本=0
        G购买知识卷轴次数=0
        G商店购装次数=0
        g高等級角色在高地之塔返回藏身處=0
        g深渊洗图完成=0
        G倒货前先处理一下背包物品=0
    end
    
    g剧情鉴定物品=0
    g提升装备=0
    g提升次数=0
    g公会读取完成=0
    g井水点击次数=0
    g当前兑换通货是否已经执行=0
    g每次兑换容错次数=0


end

function D城镇重置状态()
    g全局记录变量.全局记录还未清空=1
    L重置所有事件计数()
    L拾取开关(1)
    L清除躲避信息()
    L只进入指定下次路口("")
    L屏蔽下层路口("")
    g记录模块位置抵达次数=0
    g组队剧情不同步_野外执行一次当前任务=0
    G剧情进图等待成员=0
    g风沙回城=0
    g重置反击=0
end

function Fn_处理存仓()
local result=0
    L背包处理()
    local _存仓物品数量=L物品处理数量("存仓")
    local _公会存仓物品数量=L物品处理数量("存入公会")
    local _存满后销毁数量=L物品处理数量("普通存满后销毁")
    local _公会存满后销毁数量=L物品处理数量("公会存满后销毁")
    local _使用物品=L物品处理数量("使用物品")

    if _存仓物品数量>0 then
        result=1
        L信息("当前执行: => 有".._存仓物品数量.."件物品需要存仓")
        local ck=L周围对象(sz普通仓库)
        if ck.ID>0     then
            --开始做存仓处理
            if Fn_打开对象(sz普通仓库,-1,-1,1,500)==1   then 
               -- if Fn_读取仓库信息()==1 then
                    L执行存仓()
                    Sleep(1000)
                    L执行存仓(1)

               -- end
            end
        else

            local _传送点=L周围对象(sz传送点)
 
            if _传送点.ID>0     then 
                L走路(_传送点.X,_传送点.Y)
            end 
            L信息("未找到仓库")
        end
    elseif _公会存仓物品数量>0  then
        local 地图Ptr=L地图信息()
        if 地图Ptr.位置~=0      then
            result=1
            L信息("当前执行: => 有".._公会存仓物品数量.."件物品需要公会存仓")
            if Fn_打开对象(sz公会仓库,-1,-1,6,500)==1    then
                --开始做存仓处理
                L信息("开始进行存仓处理...")
               -- if Fn_读取公会仓库信息()==1 then
                    L执行公会存仓()
                    Sleep(1000)

              --  end
            else
                 
              L信息("还未打开..")
            end
        end
    elseif _公会存满后销毁数量>0  then
        result=1
        L信息("当前执行: => 有".._公会存满后销毁数量.."件物品需要公会存仓 满了的话就销毁")
        if Fn_打开对象(sz公会仓库,x,y,6,500)==1    then
            --开始做存仓处理
           --if Fn_读取公会仓库信息()==1 then
                L执行公会存仓满了销毁()
                Sleep(1000)

           -- end
        end   
    elseif _存满后销毁数量>0  then
        result=1
        L信息("当前执行: => 有".._存满后销毁数量.."件物品需要存仓 满了的话就销毁")
        if Fn_打开对象(sz普通仓库,x,y,1,500)==1    then
            --开始做存仓处理
           -- if Fn_读取仓库信息()==1 then
                L执行存仓满了销毁(1)
                Sleep(1000)
          
          --  end
        end
 
    elseif _使用物品>0    then
        result=1
        L信息("当前执行: => 有".._使用物品.."件物品需要使用")

        L执行使用物品()


    end

    return result

end


function Fn_处理仅存仓()
local result=0
    L背包处理()
    local _存仓物品数量=L物品处理数量("存仓")
    local _公会存仓物品数量=L物品处理数量("存入公会")

    local _使用物品=L物品处理数量("使用物品")

    if _存仓物品数量>0 then
        result=1
        L信息("当前执行: => 有".._存仓物品数量.."件物品需要存仓")
        local ck=L周围对象(sz普通仓库)
        if ck.ID>0     then
            --开始做存仓处理
            if Fn_打开对象(sz普通仓库,-1,-1,1,500)==1   then 
                if Fn_读取仓库信息()==1 then
                    L执行存仓()
                    Sleep(1000)
                    L执行存仓(1)

                end
            end
        else

            local _传送点=L周围对象(sz传送点)
 
            if _传送点.ID>0     then 
                L走路(_传送点.X,_传送点.Y)
            end 
            L信息("未找到仓库")
        end
    elseif _公会存仓物品数量>0  then
        local 地图Ptr=L地图信息()
        if 地图Ptr.位置~=0      then
            result=1
            L信息("当前执行: => 有".._公会存仓物品数量.."件物品需要公会存仓")
            if Fn_打开对象(sz公会仓库,-1,-1,6,500)==1    then
                --开始做存仓处理
                
                if Fn_读取公会仓库信息()==1 then
                    L执行公会存仓()
                    Sleep(1000)

                end
            else
                 
              L信息("还未打开..")
            end
        end
    elseif _使用物品>0    then
        result=1
        L信息("当前执行: => 有".._使用物品.."件物品需要使用")

        L执行使用物品()


    end

    return result

end

function Fn_处理分解()
    local result=0

    if L是否包满(5,4)==0    then
        L背包处理()
        local _分解物品数量=L物品处理数量("分解")
    --  local _公会存仓物品数量=L物品处理数量("存入公会")
        if _分解物品数量>0 then
            result=1
            L信息("当前执行: => 有".._分解物品数量.."件物品需要分解")
            if Fn_对话(sz分解NPC,sz分解,nil,nil,nil,1)==1    then
                L执行分解()
            end
        end
    end
    return result
end


function Fn_藏身处卡位检测(地图Ptr)
    local result=0

    local _仓库=L周围对象(sz普通仓库)
    if _仓库.ID==-1      then 
        if 地图Ptr.地图名称=="藏身處：殞落"     then 
            L寻路(226,263)
            result=1
        end 
    else 
        Fn_藏身处卡位处理(地图Ptr)
    end 

    return result
end 
function Fn_藏身处物品处理()
    local result=0

    local 地图Ptr=L地图信息()
    if 地图Ptr.位置~=0 then

       if g背包清理状态==1 then return  result  end
        L背包处理()

        local x,y=L获取对象的位置信息()
        local _存仓物品数量=L物品处理数量("存仓")
        local _公会存仓物品数量=L物品处理数量("存入公会")

        local _存满后销毁数量=L物品处理数量("普通存满后销毁")
        local _公会存满后销毁数量=L物品处理数量("公会存满后销毁")


        local _出售物品数量=L物品处理数量("出售")
        local _垃圾出售物品数量=L物品处理数量("垃圾出售")
        local _销毁物品数量=L物品处理数量("垃圾销毁")
        local _鉴定物品数量=L物品处理数量("鉴定")
        local _分解物品数量=L物品处理数量("分解")
        local _改造天赋宝石=L物品处理数量("改造天赋宝石")
        local _使用物品=L物品处理数量("使用物品")
        local _激活物品=L物品处理数量("激活物品")

        local _使用蜕变石=L物品处理数量("蜕变石")
        local _使用增幅石=L物品处理数量("增幅石")
        local _使用富豪石=L物品处理数量("富豪石")
        local _使用崇高石_1=L物品处理数量("使用崇高石_1")
        local _使用崇高石_2=L物品处理数量("使用崇高石_2")
        local _使用崇高石_3=L物品处理数量("使用崇高石_3")
        local _使用瓦尔宝珠=L物品处理数量("使用瓦尔宝珠")
        local _使用机会石=L物品处理数量("使用机会石")


        local _使用巧匠石_1=L物品处理数量("使用巧匠石_1")
        local _使用巧匠石_2=L物品处理数量("使用巧匠石_2")
        local _使用护甲片=L物品处理数量("使用护甲片")
        local _使用磨刀石=L物品处理数量("使用磨刀石")
        local _使用奧術蝕刻師=L物品处理数量("使用奧術蝕刻師")

        local _使用巧匠石瓦尔宝珠=L物品处理数量("巧匠石瓦尔宝珠")
        local _使用提升品质巧匠石瓦尔宝珠=L物品处理数量("提升品质巧匠石瓦尔宝珠")
        

       -- L信息("当前存仓物品: ".._存仓物品数量)
        if _存仓物品数量>0 then

            result=1
            L信息("当前执行: => 有".._存仓物品数量.."件物品需要存仓")
            if Fn_打开对象(sz普通仓库,x,y,1,500)==1    then
                --开始做存仓处理
                if Fn_读取仓库信息()==1 then
                    L执行存仓()
                    Sleep(1000)
                    L执行存仓(1)
                end
            end
        elseif _公会存仓物品数量>0  then
            result=1
            L信息("当前执行: => 有".._公会存仓物品数量.."件物品需要公会存仓")
            if Fn_打开对象(sz公会仓库,x,y,6,500)==1    then
                --开始做存仓处理
                if Fn_读取公会仓库信息()==1 then
                    L执行公会存仓()
                    Sleep(1000)

                end
            end
        elseif _公会存满后销毁数量>0  then
            result=1
            L信息("当前执行: => 有".._公会存满后销毁数量.."件物品需要公会存仓 满了的话就销毁")
            if Fn_打开对象(sz公会仓库,x,y,6,500)==1    then
                --开始做存仓处理
                if Fn_读取公会仓库信息()==1 then
                    L执行公会存仓满了销毁()
                    Sleep(1000)

                end
            end              
        elseif _存满后销毁数量>0  then
            result=1
            L信息("当前执行: => 有".._存满后销毁数量.."件物品需要存仓 满了的话就销毁")
            if Fn_打开对象(sz普通仓库,x,y,1,500)==1    then
                --开始做存仓处理
                if Fn_读取仓库信息()==1 then
                    L执行存仓满了销毁()
                    Sleep(1000)
                    L执行存仓(1)
                end
            end
 

            
        elseif _鉴定物品数量>0      then
            result=1

            Fn_对话(sz藏身处重置天赋NPC,sz鑑定物品)

            L信息("鉴定物品中....")
        elseif _出售物品数量>0 or _垃圾出售物品数量>0 then
            result=1
           -- if L可视UI(UI仓库)

            -- if L可视UI(UI_可视偏移.UI仓库)==1      then
            --     L结束对话()
            -- end
            L信息("当前执行: => 有".._出售物品数量.."件物品需要出售  当前对话次数: "..gErrOpenNpc)
            if gErrOpenNpc==10 or gErrOpenNpc==20        then 
                LEsc()
            end
            
            if gErrOpenNpc>60       then 
                L返回登录界面()
                gErrOpenNpc=0
            else 
                if Fn_对话(sz出售NPC,sz出售)==1    then

                    L执行出售()
                end
                if L执行间隔("出售错误",1000)==1       then 
                    gErrOpenNpc=gErrOpenNpc+1
                end
            end
        elseif  _销毁物品数量>0 then
            result=1
            L执行销毁()


        elseif _分解物品数量>0 then
            result=1
            L信息("当前执行: => 有".._分解物品数量.."件物品需要分解")
           if Fn_对话(sz分解NPC,sz分解,nil,nil,nil,1)==1    then

             L执行分解()
           end
           
        elseif _使用蜕变石>0 and    g使用蜕变石<3 then
            result=1
            if L执行使用蜕变石()==0     then 
                g使用蜕变石=g使用蜕变石+1
                L信息("当前为找到指定通货进行加工 【使用蜕变石】处理的物品")
            end 
            
            
        elseif _使用增幅石>0 and    g使用增幅石<3 then
            result=1
            if L执行使用增幅石()==0     then 
                g使用增幅石=g使用增幅石+1
                L信息("当前为找到指定通货进行加工 【使用增幅石】处理的物品")
            end 
        elseif _使用富豪石>0 and    g使用富豪石<3 then
            result=1
            if L执行使用富豪石()==0     then 
                g使用富豪石=g使用富豪石+1
                L信息("当前为找到指定通货进行加工 【使用富豪石】处理的物品")
            end 
        elseif (_使用崇高石_1>0 or _使用崇高石_2>0 or _使用崇高石_3>0 )and    g使用崇高石<3 then
            result=1
            if L执行使用崇高石()==0     then 
                g使用崇高石=g使用崇高石+1
                L信息("当前为找到指定通货进行加工 【使用崇高石】处理的物品")
            end  
        -- elseif (_使用巧匠石_1>0 or _使用巧匠石_2>0 )and    g全局记录变量.使用巧匠石<3 then
        --     result=1
        --     if L执行使用巧匠石()==0     then 
        --         g全局记录变量.使用巧匠石=g全局记录变量.使用巧匠石+1
        --         L信息("当前为找到指定通货进行加工 【使用巧匠石】处理的物品")
        --     end  
        -- elseif (_使用护甲片>0 or _使用磨刀石>0 or _使用奧術蝕刻師>0 )and    g全局记录变量.使用品质石<3 then
        --     result=1
        --     if L执行使用提升品质()==0     then 
        --         g全局记录变量.使用品质石=g全局记录变量.使用品质石+1
        --         L信息("当前为找到指定通货进行加工 【提升品质】处理的物品")
        --     end  
     



        elseif (_使用提升品质巧匠石瓦尔宝珠>0 or  _使用巧匠石瓦尔宝珠>0) and    g使用瓦尔宝珠<3 then    
            result=1
            if L执行使用全流程瓦尔宝珠()==0     then 
                g使用瓦尔宝珠=g使用瓦尔宝珠+1
                L信息("当前为找到指定通货进行加工 【使用瓦尔宝珠】处理的物品  "..g使用瓦尔宝珠)
            end  

        elseif _使用瓦尔宝珠>0 and    g使用瓦尔宝珠<3 then
       
            result=1
            if L执行使用瓦尔宝珠()==0     then 
                g使用瓦尔宝珠=g使用瓦尔宝珠+1
                L信息("当前为找到指定通货进行加工 【使用瓦尔宝珠】处理的物品  "..g使用瓦尔宝珠)
            end  

            
        elseif _使用机会石>0 and    g使用机会石<3 then
            result=1
            if L执行使用机会石()==0     then 
                g使用机会石=g使用机会石+1
                L信息("当前为找到指定通货进行加工 【使用机会石】处理的物品")
            end  

            
        elseif _改造天赋宝石>0 and    g鉴定并使用富豪次数<3 then
            result=1
            if  L执行鉴定并使用富豪()==0        then
                g鉴定并使用富豪次数=g鉴定并使用富豪次数+1
                L信息("当前为找到指定通货进行加工 【改造天赋宝石】处理的物品")
            end

        elseif _使用物品>0  or _激活物品>0  then
            result=1
            L信息("当前执行: => 有".._使用物品.."件物品需要使用")

            L执行使用物品()


        else
            L信息("背包清理完成...")
            g背包清理状态=1
            gErrOpenNpc=0
        end
    else

        D重置状态()
    end
    return result
end

function Fn_剧情城镇NPC(地图Ptr)
    local 鉴定NPC=""
    local 出售Npc=""
    local 分解Npc=""
    local 药水商店Npc=""

    if 地图Ptr.位置==2      then
        分解Npc=sz分解NPC
        出售Npc=sz出售NPC
        鉴定NPC=sz藏身处重置天赋NPC
  --  elseif 地图Ptr.难度==1      then
    elseif 地图Ptr.章节==1      then
        鉴定NPC=""
        出售Npc=sz倫利
        分解Npc=sz烏娜
    elseif 地图Ptr.章节==2      then
        鉴定NPC="Metadata/NPC/Four_Act2/HoodedMentorCaravan*"
        出售Npc="Metadata/NPC/Four_Act2/MarakethTrader"
        分解Npc="Metadata/NPC/Four_Act2/MarakethMystic*"
    elseif 地图Ptr.章节==3      then
        if   地图Ptr.地图类名=="G_Endgame_Town"       then
            鉴定NPC="Metadata/NPC/Four_Act3/DoryaniEndgameTown*"
            -- 出售Npc="Metadata/NPC/Four_Act3/AlvaZigguratEncampment*"
            出售Npc="Metadata/NPC/Four_Endgame/Vaal/VaalTimeScientist"

            分解Npc="Metadata/NPC/Four_Endgame/Vaal/VaalTimeScientist*"

            药水商店Npc="Metadata/NPC/Four_Endgame/Vaal/VaalTimeScientist*"
        else
            鉴定NPC="Metadata/NPC/Four_Act3/HoodedMentorZigguratEncampment"
            -- 出售Npc="Metadata/NPC/Four_Act3/AlvaZigguratEncampment*"
           -- 出售Npc="Metadata/NPC/Four_Act3/OswaldZigguratEncampment" --Metadata/NPC/Four_Act3/OswaldZigguratEncampmentNearTimePortal

            出售Npc="Metadata/NPC/Four_Act3/OswaldZiggurat"
            分解Npc="Metadata/NPC/Four_Act3/ServiZiggurat"

            药水商店Npc="Metadata/NPC/Four_Act3/ServiZiggurat"
        end
    elseif 地图Ptr.章节==4      then
        鉴定NPC="Metadata/NPC/Four_Act4/HoodedMentorKingsmarch*"
        -- 出售Npc="Metadata/NPC/Four_Act3/AlvaZigguratEncampment*"
        出售Npc="Metadata/NPC/Four_Act4/Expedition/Dannig*"

        分解Npc="Metadata/NPC/Four_Act4/Expedition/Rog*"

        药水商店Npc="Metadata/NPC/Four_Act4/Expedition/Rog*"

    elseif 地图Ptr.章节==5      then
        鉴定NPC="Metadata/NPC/Four_Interlude/Part1/HoodedMentor*"
     
        出售Npc="Metadata/NPC/Four_Interlude/Part1/Renly*"

        分解Npc="Metadata/NPC/Four_Act4/Expedition/Rog*"

        药水商店Npc="Metadata/NPC/Four_Interlude/Part1/Una*"

    elseif 地图Ptr.章节==6      then
        鉴定NPC="Metadata/NPC/Four_Interlude/Part2/HoodedMentor*"
     
        出售Npc="Metadata/NPC/Four_Interlude/Part2/MarakethMatriarch*"

        分解Npc="Metadata/NPC/Four_Interlude/Part2/MarakethMystic*"

        药水商店Npc="Metadata/NPC/Four_Interlude/Part2/MarakethMystic*"

    elseif 地图Ptr.章节==7      then
        鉴定NPC="Metadata/NPC/Four_Interlude/Part3/HoodedMentor*"
     
        出售Npc="Metadata/NPC/Four_Interlude/Part3/Delwyn*"

        分解Npc="Metadata/NPC/Four_Interlude/Part3/Doryani*"   

        药水商店Npc="Metadata/NPC/Four_Interlude/Part3/Doryani*"              
    end



   -- end
    return 鉴定NPC,出售Npc,分解Npc,药水商店Npc
end


function Fn_剧情城镇商店NPC(地图Ptr)
    local 鉴定NPC=""
    local 出售Npc=""
    local 赌博Npc=""
    local 药水商店Npc=""

    if 地图Ptr.位置==2      then
        赌博Npc=sz分解NPC
        出售Npc=sz出售NPC
        鉴定NPC=sz藏身处重置天赋NPC
  --  elseif 地图Ptr.难度==1      then
    elseif 地图Ptr.章节==1      then
        鉴定NPC=""
        出售Npc=sz倫利
        赌博Npc="Metadata/NPC/Four_Act1/Finn"
        药水商店Npc=sz烏娜
    elseif 地图Ptr.章节==2      then

        鉴定NPC="Metadata/NPC/Four_Act2/HoodedMentorCaravan*"
        出售Npc="Metadata/NPC/Four_Act2/MarakethTrader"
        if 地图Ptr.难度==1      then
          赌博Npc="Metadata/NPC/Four_Act2/RisuCaravan*"
        else
            赌博Npc="Metadata/NPC/Four_Act2/RisuCouncil"
        end
        药水商店Npc="Metadata/NPC/Four_Act2/MarakethMystic"
    elseif 地图Ptr.章节==3      then
        if   地图Ptr.地图类名=="G_Endgame_Town"       then
            鉴定NPC="Metadata/NPC/Four_Act3/DoryaniEndgameTown*"
            -- 出售Npc="Metadata/NPC/Four_Act3/AlvaZigguratEncampment*"
            出售Npc="Metadata/NPC/Four_Endgame/Vaal/VaalTimeScientist"

            赌博Npc="Metadata/NPC/Four_Endgame/Vaal/VaalTimeScientist*"

            药水商店Npc="Metadata/NPC/Four_Endgame/Vaal/VaalTimeScientist*"
        else
            鉴定NPC="Metadata/NPC/Four_Act3/HoodedMentorZiggurat"

            出售Npc="Metadata/NPC/Four_Act3/OswaldZiggurat"

            药水商店Npc="Metadata/NPC/Four_Act3/ServiZiggurat"

            赌博Npc="Metadata/NPC/Four_Act3/AlvaZiggurat"

        end
    elseif 地图Ptr.章节==4      then
        鉴定NPC="Metadata/NPC/Four_Act4/HoodedMentorKingsmarch*"
        -- 出售Npc="Metadata/NPC/Four_Act3/AlvaZigguratEncampment*"
        出售Npc="Metadata/NPC/Four_Act4/Expedition/Dannig*"

        药水商店Npc="Metadata/NPC/Four_Act4/Expedition/Rog*"
        赌博Npc="Metadata/NPC/Four_Act4/Expedition/Tujen*"
    elseif 地图Ptr.章节==5      then
        鉴定NPC="Metadata/NPC/Four_Interlude/Part1/HoodedMentor*"
        -- 出售Npc="Metadata/NPC/Four_Act3/AlvaZigguratEncampment*"
        出售Npc="Metadata/NPC/Four_Interlude/Part1/Renly*"

        药水商店Npc="Metadata/NPC/Four_Interlude/Part1/Una*"
        赌博Npc="Metadata/NPC/Four_Interlude/Part1/Finn*"

    elseif 地图Ptr.章节==6      then
        鉴定NPC="Metadata/NPC/Four_Interlude/Part2/HoodedMentor*"
     
        出售Npc="Metadata/NPC/Four_Interlude/Part2/MarakethMatriarch*"
        
        赌博Npc="Metadata/NPC/Four_Interlude/Part2/Risu*"

        药水商店Npc="Metadata/NPC/Four_Interlude/Part2/MarakethMystic"       
    elseif 地图Ptr.章节==7      then
        鉴定NPC="Metadata/NPC/Four_Interlude/Part3/HoodedMentor*"
     
        出售Npc="Metadata/NPC/Four_Interlude/Part3/Delwyn*"

        赌博Npc="Metadata/NPC/Four_Interlude/Part3/MonsterHunter*"

        药水商店Npc="Metadata/NPC/Four_Interlude/Part3/Doryani*"       

    end



   -- end
    return 鉴定NPC,出售Npc,赌博Npc,药水商店Npc
end
function Fn_剧情城镇物品处理()
    local result=0
    local 地图Ptr=L地图信息()

    local 鉴定NPC,出售NPC,分解NPC=Fn_剧情城镇NPC(地图Ptr)

    if 地图Ptr.位置==1   then
        L背包处理()
        local Is鉴定NPC=L商店NPC(鉴定NPC)
        local Is出售NPC=L商店NPC(出售NPC)
        local Is分解NPC=L商店NPC(分解NPC)

        if g背包清理状态==1 then return  result  end


        local x,y=L获取对象的位置信息()
        local _存仓物品数量=L物品处理数量("存仓")
        local _公会存仓物品数量=L物品处理数量("存入公会")
        local _出售物品数量=L物品处理数量("出售")
        local _销毁物品数量=L物品处理数量("垃圾销毁")
        local _鉴定物品数量=L物品处理数量("鉴定")
        local _分解物品数量=L物品处理数量("分解")
        local _改造天赋宝石=L物品处理数量("改造天赋宝石")
        local _使用物品=L物品处理数量("使用物品")
        local _激活物品=L物品处理数量("激活物品")
        -- if _存仓物品数量>0 or _公会存仓物品数量>0       then
        --     Fn_读取仓库数据()
        -- end

        if _存仓物品数量>0  or _公会存仓物品数量>0  or _出售物品数量>0  or _鉴定物品数量>0  or _分解物品数量>0      then
            if 地图Ptr.章节==3  and Fn_进入崎點(1)==0    then

                return 1
            end
        end
        if _存仓物品数量>0 then

            result=1
            L信息("当前执行: => 有".._存仓物品数量.."件物品需要存仓")
            if Fn_打开对象(sz普通仓库,x,y,1,500)==1    then
                --开始做存仓处理
                if Fn_读取仓库信息()==1 then
                    L执行存仓()
                    Sleep(1000)
                    L执行存仓(1)
                end
            end
        elseif _公会存仓物品数量>0  then
            result=1
            L信息("当前执行: => 有".._公会存仓物品数量.."件物品需要公会存仓")
            if Fn_打开对象(sz公会仓库,x,y,6,500)==1    then
                --开始做存仓处理
                if Fn_读取公会仓库信息()==1 then
                    L执行公会存仓()
                    Sleep(1000)

                end
            end
        elseif _改造天赋宝石>0 and    g鉴定并使用富豪次数<3 then
            result=1
            if  L执行鉴定并使用富豪()==0        then
                g鉴定并使用富豪次数=g鉴定并使用富豪次数+1
                L信息("当前为找到指定通货进行加工 【改造天赋宝石】处理的物品")
            end
        elseif _鉴定物品数量>0   and  g剧情鉴定物品<6   and Is鉴定NPC.ID>0  and g剧情鉴定物品_status==0 then
            result=1

            if Is鉴定NPC.ID>0   and 地图Ptr.章节~=1    then

                Fn_对话(鉴定NPC,sz鑑定物品)
                if L执行间隔("鉴定物品间隔",1500)==1        then
                    g剧情鉴定物品=g剧情鉴定物品+1
                end
            else
                local _知識卷軸=L背包信息("知識卷軸")
                if  _知識卷軸.ID>0      then
                  L执行鉴定()
                else
                    g剧情鉴定物品_status=1
                end
                g剧情鉴定物品=g剧情鉴定物品+1
            end

            L信息("鉴定物品中...."..g剧情鉴定物品)
        elseif  _销毁物品数量>0 then
            result=1
            L执行销毁()
        elseif _出售物品数量>0  and Is出售NPC.ID>0  then
            result=1
            L信息("当前执行: => 有".._出售物品数量.."件物品需要出售")
           if Fn_对话(出售NPC,sz倫利出售,nil,nil,nil,nil,2)==1    then

              L执行出售()
           end
        elseif _分解物品数量>0 and  Is分解NPC.ID>0   then
            result=1
            L信息("当前执行: => 有".._分解物品数量.."件物品需要分解")
           if Fn_对话(分解NPC,sz分解,nil,nil,nil,1)==1    then

             L执行分解()
           end
        elseif _使用物品>0  or _激活物品>0  then
            result=1
            L信息("当前执行: => 有".._使用物品.."件物品需要使用")

            L执行使用物品()
        else
            L信息("背包清理完成...")
            g背包清理状态=1
            g剧情鉴定物品_status=0
        end
    else

        D重置状态()
    end
    return result
end

function Fn_地图鉴定(地图Ptr)
 local result=0

 local 鉴定NPC,出售NPC,分解NPC=Fn_剧情城镇NPC(地图Ptr)

    if 鉴定NPC~=""      then
        local 鉴定NPCPtr=L周围对象(鉴定NPC)
        if 鉴定NPCPtr.ID>0      then
            if L地图是否需要鉴定()==1 then
                result=1
                -- L执行鉴定()
                if L可视UI(UI_可视偏移.UI异界全图UI)==1     then
                    LEsc()
                end
                Fn_对话(鉴定NPC,sz鑑定物品)

            end
        end
    end
    return result
end

function Fn_風沙沼澤回城()

    L信息("風沙沼澤回城中....")
    L设置探索地图(-1)
    while  To(500)==1  do
        local 地图Ptr=L地图信息()
        if 地图Ptr.位置==1      then
            break
        end
        local 传送点=L周围对象(sz传送点)
        L设置全局坐标(0,0,-1)
        if 传送点.ID>0      then
            L信息("靠近传送点"..传送点.ID)
            if 传送点.距离>2 then
                L信息("靠近传送点")
                --  L设置全局坐标(传送点.X,传送点.Y,4)
                L寻路(传送点.X,传送点.Y)
            else
                L传送地图(G高地神塔營地,地图Ptr.难度)
            end

        else
            L返回城镇()
        end
    end








end
function Fn_包满不回的地图(地图Ptr)
local ret=1
    if 地图Ptr==nil then return 0  end
    if 地图Ptr.地图类名=="Delirium_Act1Town"        then
        ret=0
    elseif 地图Ptr.地图名称==G河岸		then
        ret=0
    elseif  地图Ptr.章节==3     then
         if  地图Ptr.地图名称==G風沙沼澤        then
            local jh=L传送点是否激活("高地神塔營地",地图Ptr.难度)

            if jh==0        then
                ret=0
            end
        end

    elseif 地图Ptr.地图名称=="瓦斯提里郊區"			then
        local jh=L传送点是否激活("阿杜拉車隊",地图Ptr.难度)

        if jh==0        then
            ret=0
        end

    end
    return ret
end


function Fn_返回城镇()
    local 地图Ptr=L地图信息()
    if 地图Ptr.位置==0      then 
        L返回城镇()
    end 
end 
function Fn_包满回城(nw,nH)
    nw=nw or 2
    nH=nH or 4
 local 地图Ptr=L地图信息()
 local result=0
    if  Fn_包满不回的地图(地图Ptr)==1       then
        if 地图Ptr.位置==0     then

            if L是否包满(nw,nH)==0    then

                if 地图Ptr.地图名称==G風沙沼澤       then
                    result=1
                    Fn_風沙沼澤回城()

                else
                    L执行鉴定()
                    L延时(1500)
                    L执行销毁()
            
                    if L是否包满(nw,nH)==0    then

                        result=1

                        if Q_前往异界BOSS复活点回城()==1		then
                            L返回城镇()
                        end

                        L设置探索地图(-1) --暂停探索
                    end
                end


            end
        else
       --    L信息("@@包:"..L是否包满(2,4))
            if L是否包满(nw,nH)==0    then
                result=1
              --  Fn_剧情城镇NPC(地图Ptr)
                D重置状态()
            end

        end
    end
    return result
end

function Fn_返回野外(szMap)
local result=0

    if L地图是否完成()==0   and L当前事件计数("返回野外")<8 then

        local 回城门=L周围对象(sz传送门)

        if 回城门.ID>0  then
         --   if szMap==回城门.名称  or 查找包含字符(回城门.名称,szMap)==1 then

     
           if szMap==回城门.名称   then
                result=1
                Fn_打开对象(sz传送门)
                L事件计时("返回野外")
            end
        end

    end
    return result
end

function Fn_返回任务地(className,szMap)
    local result=0 --Metadata/QuestObjects/Four_Act1/ExitTransition_Mausoleum
    local 回城门=L周围对象(className)
    if 回城门.ID>0  then
       if szMap==回城门.名称    or szMap==""   then

            result=1
            Fn_打开对象(sz传送门)
        end
    end
    return result
end

-- function Fn_异界开图(nType)
--     -- body

--     nType= nType or 0
--     local result=0

--     local 地图Ptr=L地图信息()

--     if 地图Ptr.位置~=0 then
--         result=1
   
--         if L地图是否完成()==1 then
   
--             if L制图仪是否打开()==1  then

--                 if  L开启异界(nType)<2       then
--                     LEsc()
--                     L延时(2000)
--                 end
--                 L信息("开启异界地图...")
--             else
--                 if L可视UI(UI_可视偏移.UI打开NPC框)==1  then
--                     LEsc()
--                 else


--                     if 地图Ptr.位置==3      then
--                         Fn_打开对象(sz城镇制图仪)
--                     else
--                        Fn_打开对象(sz黄金制图仪)
--                     end --
--                 end

--             end
--         else

--             if  L进入异界()==0      then
--                 if L制图仪是否打开()==1  then

--                     if L开启异界(nType)<2       then
--                         LEsc()
--                         L延时(2000)
--                     end
--                 else
             
--                     if L可视UI(UI_可视偏移.UI打开NPC框)==1  then
         
--                         LEsc()
--                     else
--                         if 地图Ptr.位置==3      then
--                             Fn_打开对象(sz城镇制图仪)
--                         else
                        
--                            Fn_打开对象(sz黄金制图仪)
--                         end --
--                     end
--                 end
--             else

--                 L信息("进入异界地图...")
    
            
--             end
--         end
--     end
--     return result
-- end


function Fn_开启异界地图_不进入(nType)
    -- body
    nType = nType or 0
    local result=1
    if  L开启异界(nType)==0       then
        result=0
    end
    if L制图仪是否打开()==1  then


 
    else
        if L可视UI(UI_可视偏移.UI打开NPC框)==1  then
            LEsc()
        else

            local 地图Ptr=L地图信息()
            if 地图Ptr.位置==3      then
                Fn_打开对象(sz城镇制图仪)
            else
                Fn_打开对象(sz黄金制图仪)
            end --
        end

    end
   return result
end
function Fn_异界开图(nType,nGo)
    -- body

    nType= nType or 0
    nGo = nGo or 1
    local result=0

    local 地图Ptr=L地图信息()

    if 地图Ptr.位置~=0 then
        result=1
   
        if L地图是否完成()==1  then
   
            if L制图仪是否打开()==1  then

                if  L开启异界(nType)<2       then
                    LEsc()
                    L延时(2000)
                end
                L信息("开启异界地图...")
            else
                if L可视UI(UI_可视偏移.UI打开NPC框)==1  then
                    LEsc()
                else


                    if 地图Ptr.位置==3      then
                        Fn_打开对象(sz城镇制图仪)
                    else
                       Fn_打开对象(sz黄金制图仪)
                    end --
                end

            end
        else

            if  L进入异界()==0      then
                if L制图仪是否打开()==1  then

                    if L开启异界(nType)<2       then
                        LEsc()
                        L延时(2000)
                    end
                else
             
                    if L可视UI(UI_可视偏移.UI打开NPC框)==1  then
         
                        LEsc()
                    else
                        if 地图Ptr.位置==3      then
                            Fn_打开对象(sz城镇制图仪)
                        else
                        
                           Fn_打开对象(sz黄金制图仪)
                        end --
                    end
                end
            else

                L信息("进入异界地图...")
    
            
            end
        end
    end
    return result
end


function Fn_购买异界地图()
    if Fn_对话(天赋NPC,sz出售)==1    then
        L商店购买地图()
     end
end

function Fn_购买知识卷轴()
local result=0

    if  g常规设置.购买知识卷轴>0   and G购买知识卷轴次数<15   then

        g常规设置.购买知识卷轴=120
        local _Npc=L商店NPC(sz時間建造者)

        if _Npc.ID>0      then

            local 自身=L自身信息()

            if 自身.金币>25       then
                local _背包卷轴=L背包信息("知識卷軸")

                if _背包卷轴.ID<=0      then
                    _背包卷轴.物品总数=0
                end

                L信息("卷轴数量@:".._背包卷轴.物品总数)
                if _背包卷轴.物品总数>=20       then 
                    return result
                else 
                    local _需要购买的数量= (g常规设置.购买知识卷轴-_背包卷轴.物品总数)

                    local maxBuyNum=math.floor(自身.金币/25)


                    if maxBuyNum<_需要购买的数量 then
                        _需要购买的数量=maxBuyNum
                    end

                    if _需要购买的数量>0        then

                        if Fn_进入崎點(1)==0    then
                            return 1
                        end
                        L信息("当前背包知识卷轴少于你设定的数量:".. g常规设置.购买知识卷轴.."前往购买: ".._需要购买的数量)
                        if L可视UI(UI_可视偏移.UI异界全图UI)==1      then
                            L信息("關閉地圖UI")
                            LEsc()
                        end

                        result=1
                        if Fn_对话(sz時間建造者,sz出售,nil,nil,nil,nil,nil,1500)==1    then
                            L信息("開始購買知識卷軸")
                            L商店购物("知識卷軸",0,_需要购买的数量)
                        end
                        if L执行间隔("购买知识卷轴间隔",1000)==1        then 
                            G购买知识卷轴次数=G购买知识卷轴次数+1
                        end 

                        
                    end
                end 
            end
        end
    end
    return result
end


function Fn_打开艾瓦通货兑换框()
local result=0

    local _Npc=L周围对象(sz安潔)
    if _Npc.ID>0        then

        -- if L可视UI(UI_可视偏移.UI通货兑换框)==1      then
        --     L信息("通货兑换框 打开成功")
        --     result=1
        -- else
            Fn_对话(sz安潔,"通貨交換,揚帆啟航獎勵")
        --end
    end

    return result
end


function Fn_剧情购买药剂(szNpc,szDh,药剂名称,地图Ptr,角色Ptr)
    药剂名称 = 药剂名称 or "巨大生命藥劑"
    local result=0
    local _购买生命药水="购买生命药水"
    local _购买魔法药水="购买魔法药水"
    if 地图Ptr.位置==1      then

        if  地图Ptr.章节==3    then
            if 角色Ptr.等级>=40  then
                local 生命药剂Ptr=L身上药剂信息("生命药剂")
                local 魔法药剂Ptr=L身上药剂信息("魔法药剂")
                if 生命药剂Ptr.需求等级<40   and  L当前事件计数(_购买生命药水)<10   then
                    local _背包物品=L背包信息(药剂名称)
                    if _背包物品.ID<=0      then
                        result=1
                        if Fn_对话(szNpc,szDh,524,869)==1    then
                            L增加事件(_购买生命药水)
                            L商店购物(药剂名称)
                        end
                    end
                elseif 魔法药剂Ptr.需求等级<40    and  L当前事件计数(_购买魔法药水)<3  then
                    local _背包物品=L背包信息("巨大魔力藥劑")
                    if _背包物品.ID<=0      then
                        result=1

                        if Fn_对话(szNpc,szDh,524,869)==1    then
                            L增加事件(_购买魔法药水)
                            L商店购物("巨大魔力藥劑")
                        end
                    end
                end
            end
        end
    end
    return result
end

function  Fn_剧情自动提升药剂()
    local 地图Ptr=L地图信息()
    local 角色Ptr=L自身信息()
    local Npc=""
    local Dh=""
    if  地图Ptr.章节==3    then
        Npc="Metadata/NPC/Four_Act3/ServiZigguratEncampment"
        Dh=sz出售
        return Fn_剧情购买药剂(Npc,Dh,"巨大生命藥劑",地图Ptr,角色Ptr)
    end
    return 0
end


-- function Fn_传送指定地图(mapFormat)
-- local result=0
--     mapFormat= mapFormat or ""
--     if mapFormat==""    then return result   end

--     local 地图Ptr=L地图信息()

--     if 地图Ptr.位置==0 then return result   end
--     if mapFormat=="" then return result end
--     local groups =提取剧情地图练级信息(mapFormat)
--     if groups ==nil then  L信息("当前无指定的传送地图") return result end
--     local role=L自身信息()

--     if role.ID==-1  then  L信息("当前无法获取角色信息") return result end
--     local nLv=role.等级

--     for _, group in ipairs(groups) do

--         if group.Lv>nLv  then

--           --  if L传送点是否激活(group.map,group.nandu)==1     then
--                 result=1
--                 local 传送点=L周围对象(sz传送点)
--                 if 传送点.ID>0 then
--                     if 传送点.距离>3 then
--                         L寻路(传送点.X,传送点.Y)
--                     else
--                         L传送地图(group.map,group.nandu)
--                     end
--                 else
--                     if 地图Ptr.章节==3 then
--                         L寻路(676,706)
--                     else
--                         L信息("附近没发现传送点")
--                     end

--                 end
--          --   end
--         end
--      end
--      return result
-- end

function Fn_进入路口(ClassName)
    local result=0
    local 路口=L周围对象(ClassName)
    if 路口.ID>0 then
        -- body
        result=1
        Fn_打开对象(ClassName)
    end
    --
    return result
end


function Fn_判断当前崎點是否可出去()
    local result=0
    local 地图Ptr=L地图信息()
    if 地图Ptr.章节==3  and 地图Ptr.难度==2     then
        local role=L自身信息()
        if role.X>=2000     then
            local 路口=L周围对象(sz崎點_里)
            if 路口.ID<=0       then
                result=1
            elseif 路口.ID>0    and 路口.门状态~=2      then
                result=1
            end
        end
    end
    return result
end
--0 进入
--1 出去
function Fn_进入崎點(ntype)

    local 地图Ptr=L地图信息()
    if  地图Ptr.章节~=3     then
        return 1
    end
    local result=0
    ntype = ntype or 0
    local x=0
    local y=0
    local sz路口=sz崎點_里
    if  ntype==0  then
        sz路口=sz崎點_外
        x=424
        y=828
    else
        sz路口=sz崎點_里
        x=2358
        y=854

    end


    local role=L自身信息()
    local 当前里外判断=0
    if role.X>=2000     then
        当前里外判断=0
    else
        当前里外判断=1
    end

    if ntype==当前里外判断      then

        return 1
    end


    local 路口=L周围对象(sz路口)

    if 路口.ID>0 then
        -- body
        Fn_打开对象(sz路口)
      --  L信息("@@@@@@@@1123")

    else
        if  L寻路(x,y)==1       then
            result=1
        end
    end
    --
    return result
end
function Fn_难二三章找传送点()

    Fn_进入路口(424,835)
end
function Fn_根据章节前往城镇传送点(n章节,n难度,szMap)
    -- body
    local result=0
    local 传送点=L周围对象(sz传送点)
 
    if 传送点.ID>0 and  传送点.距离<=2  then

        result=1
    else
        if  n章节==1        then
            L寻路(283,250)

        elseif  n章节==2        then

            L寻路(345,172)
        elseif  n章节==3        then
            if szMap=="阿戈拉" or szMap=="奧札爾"   or szMap=="漆黑密室"     then
                if Fn_进入崎點(0)==1			then --
                    result=L寻路(2352,928)
                 end
            else
                if L组队剧情开关()==0		then
             
                   L寻路(705,692)
                else
                 
                    if 传送点.ID>0      then
                      L寻路(传送点.X,传送点.Y)
                    else
                        Fn_进入崎點(0)
                    end
                end
            end
    
        elseif  n章节==3    and n难度==2    then
            Fn_难二三章找传送点()
        elseif  n章节==4        then 
            if 传送点.ID>0      then
                L寻路(传送点.X,传送点.Y)
              else
                  Fn_进入崎點(0)
              end
        elseif  n章节==5        then 
            if 传送点.ID>0      then
                L寻路(传送点.X,传送点.Y)
              else
                L寻路(357,490)
                
              end
        elseif  n章节==6        then 
            if 传送点.ID>0      then
                L寻路(传送点.X,传送点.Y)
                else
                L寻路(300,286)
                
                end
        elseif  n章节==7        then 
            if 传送点.ID>0      then
                L寻路(传送点.X,传送点.Y)
            else
                L寻路(434,373)
            
            end        
  
        else
            if 传送点.ID>0 and  传送点.距离>2  then
                L寻路(传送点.X,传送点.Y)
            end
        end

        --
    end
    return result
end


function Fn_出城(szMap,n难度,isTown,n章节)
    -- body
    local result=1

    if  isTown==1       then
        if  szMap=="皆伐"       then
            result=L寻路(380,383)
        elseif  n章节==2      then
            result=L寻路(561,280)
        elseif     n章节==3    then
            if szMap=="叢林遺跡"   then
                result=L寻路(508,979)
            elseif szMap==G風沙沼澤   then
                result=L寻路(271,803)
            elseif szMap=="淹沒之城"   then
                result=L寻路(434,266)
            elseif szMap=="科佩克神殿"   then
                result=L寻路(420,386)
            elseif szMap=="奧札爾"   then
                if Fn_进入崎點(0)==1			then --
                   result=L寻路(2358,264)
                end
            end
        elseif     n章节==5    then
            result=L寻路(288,285)
        elseif     n章节==6    then
            result=L寻路(300,225)
       
        elseif     n章节==7    then
            result=L寻路(532,582) 
        end
    end

    return result
end


function Fn_剧情练级()
    -- body
    local 地图Ptr=L地图信息()
    local role=L自身信息()
    if 地图Ptr.位置==1 then
      --  L重新加载地图()
        if Fn_根据章节前往城镇传送点(地图Ptr.章节,地图Ptr.难度)==1   then
            if role.等级<25 then
                L传送地图("乳齒象惡地",1)
            elseif role.等级<30 then
                L传送地图("骨坑",1)
            elseif role.等级<35 then
                L传送地图("叢林遺跡",1)
            elseif role.等级<50 then
                L传送地图("淹沒之城",1)
            elseif role.等级<60 then
                L传送地图("獵場",2)
            elseif role.等级<65 then
                L传送地图("乳齒象惡地",2)
            elseif role.等级<90 then
                L传送地图("阿札克泥沼",2)
            end
        end
    elseif 地图Ptr.位置==0 then
        L设置探索地图(1)
    end


end


function Fn_传送到指定地图Ex(szMap,n章节,难度)
    -- body

    n章节 = n章节 or 1
    难度 = 难度 or 1
    if szMap~=""        then
        local 地图Ptr=L地图信息()

        if 地图Ptr.位置==1 or 地图Ptr.位置==2 then
        --  L重新加载地图()

            if Fn_根据章节前往城镇传送点(n章节,难度)==1   then
                L传送地图(szMap,难度)
            end
        end
    end
end

function Fn_传送到指定章节(n章节,难度)
    -- body
local ret=0
    n章节 = n章节 or 1
    难度 = 难度 or 1

    local 地图Ptr=L地图信息()
    local szMap=""
    if n章节==1     then
        szMap=G皆伐營地

    elseif n章节==2     then
        szMap=G阿杜拉車隊
    elseif n章节==3     then
        szMap=G高地神塔營地
    elseif n章节==4     then
        szMap=G金司馬區
    elseif n章节==5     then
        szMap=G庇護所
    elseif n章节==6     then 
        szMap=G卡里市集
    elseif n章节==7     then 
        szMap=G林間空地
    end

    if 地图Ptr.位置==1 then
    --  L重新加载地图()

        if 地图Ptr.章节~=n章节   or 地图Ptr.难度~=难度    then
            if Fn_根据章节前往城镇传送点(n章节,难度)==1   then

                L传送地图(szMap,难度)
            end
        else
            ret=1
        end
    elseif 地图Ptr.位置==2 then
        if 地图Ptr.地图名称~=szMap   or 地图Ptr.难度~=难度    then
            local 传送点=L周围对象(sz传送点)
    
            if 传送点.ID>0 and  传送点.距离<=2  then
              L传送地图(szMap,难度)
            else
                L寻路(传送点.X,传送点.Y)
            end
        else
            ret=1
        end
    else
        ret=1
    end
    return ret
end

function Fn_打击丰碑()
    -- body
    local result=0
    local 路口=L周围对象(sz先驱丰碑)

    if 路口.ID>0    and    路口.把手状态==1   and 路口.距离<30 then
        result=1
      
        if L寻路(路口.X, 路口.Y) == 1   or  路口.距离<4 then
            L点击对象(路口.ID)
            L延时(1500)
        end

    end
    return result
end

function Fn_打开破碎之境()
    -- body
    local result=0

    local 路口=L周围对象(sz破碎之境)

    if L精英数量()==0       then 
 --   L信息("@@@"..路口.距离)
        if 路口.ID>0    and    路口.门状态==1  then
            result=1
            if L寻路(路口.X, 路口.Y) == 1   or  路口.距离<3 then
                L点击对象(路口.ID)
            end

        end
    end
    return result
end


function Fn_打开金盒()
    -- body
    local result=0

    local 路口=L周围对象("UniqueVaultGoldChest_01")


 --   L信息("@@@"..路口.距离)
    if 路口.ID>0    and    路口.把手状态==1  then
        result=1

        if L寻路(路口.X, 路口.Y) == 1   or  路口.距离<3 then
            L点击对象(路口.ID)
        end

    end
 
    return result
end

function Fn_打开湿地碑文()
    -- body
    local result=0

    local 路口=L周围对象("MapTriggerObject")


 --   L信息("@@@"..路口.距离)
    if 路口.ID>0    and    路口.把手状态==1  then
        result=1

        if L寻路(路口.X, 路口.Y) == 1   or  路口.距离<3 then
            L点击对象(路口.ID)
        end

    end
 
    return result
end
function Fn_打开符文豐碑()
    -- body
    local result=0

    local 路口=L周围对象("_Source")
 --   L信息("@@@"..路口.距离)
    if 路口.ID>0    and    路口.把手状态==1   and 路口.距离<20 then
        result=1
        if L寻路(路口.X, 路口.Y) == 1   or  路口.距离<3 then
            L点击对象(路口.ID)
        end

    end
    return result
end


function Fn_打开符文豐碑()
    -- body
    local result=0

    local 路口=L周围对象("_Source")
 --   L信息("@@@"..路口.距离)
    if 路口.ID>0    and    路口.把手状态==1   and 路口.距离<20 then
        result=1
        if L寻路(路口.X, 路口.Y) == 1   or  路口.距离<3 then
            L点击对象(路口.ID)
        end

    end
    return result
end


function Fn_打开随机符文豐碑()
    -- body
    local result=0

    local 路口=L机关把手("Metadata/Terrain/Gallows/Leagues/StoneCircle/Objects/RuneRock*")
 --   L信息("@@@"..路口.距离)
    if 路口.ID>0    and    路口.把手状态==1   and 路口.距离<20 then
        result=1
        if L寻路(路口.X, 路口.Y,8000) == 1   or  路口.距离<2.5 then
            L点击对象(路口.ID)
            
        end

    end
    return result
end
--MirrorKalandraPrimer

function Fn_点击不同对象事件(地图Ptr)
local result=0
    地图Ptr=地图Ptr or L地图信息()
    if L当前祭坛状态()==0       then 
        if  Fn_打击丰碑()==1        then
            result=1

        elseif  Fn_打开随机符文豐碑()==1        then
                result=1
        
        elseif 地图Ptr.地图名称=="法瑞爾巨石"  and  Fn_打开符文豐碑()==1 then 
            result=1
            
        end
    end
    return result
end




function Fn_清空躲避信息()
    L躲避开关(0)
end

function Fn_对话野外NPC()
    return Q_领取野外任务()
end

function Fn_前往死亡坐标()
local result=0
local _事件="无法前往死亡坐标"
    local pt=L死亡坐标()
    if pt.X>0   and pt.Y>0      then
        result=1
       -- L周围反击(6)
        if L是否可通行(pt.X,pt.Y)==1      then
     
            if G等待大号过来==1 then 
                --L设置全局坐标(pt.X,pt.Y,1)
             
            else 
                L寻路(pt.X,pt.Y)
                L信息("前往死亡坐标中...")
            end 
        
           -- L设置全局坐标(pt.X,pt.Y,4)
     
        
        else

             L死亡坐标(1)

        end

    end
    return result
end

function Fn_前往模块坐标(szMap,重复指定模块路径,是否跟随,重置指定模块名)
    local result=0
    if szMap==nil   then return 0       end
    重复指定模块路径 = 重复指定模块路径 or 0
    是否跟随= 是否跟随 or 0
    重置指定模块名 = 重置指定模块名 or ""
    local modName=L查找模块名(szMap)
    if 是否跟随==1  and L组队剧情开关()==1    then

        if L跟随角色()==1       then
            L信息("当前开启剧情跟随模式...")
            L关闭地图探索(1)
            result=1
        else
            L关闭地图探索(0)
            if modName~=nil and modName~=""  then
                L获取模型路径(modName)
                result=L前往模型位置(modName)
                if result==0  and  重复指定模块路径==1      then
                    L获取模型路径(重置指定模块名,1)
                end
            end
        end
    else

  

        if modName~=nil and modName~=""  then
            if 重复指定模块路径==2      then 
                if L执行间隔("抵达间隔AA",3*1000)==1        then
                   L获取模型路径(重置指定模块名,1)
                end
            else 

                L获取模型路径(modName)
                result=L前往模型位置(modName)
          
                if result==0  and  重复指定模块路径==1      then
                    L获取模型路径(重置指定模块名,1)
                    if L执行间隔("抵达间隔",1000)==1        then
                        g记录模块位置抵达次数=g记录模块位置抵达次数+1
                    end
                end
            end
        end
    end
    return result
end


function Fn_前往模块坐标_异界专用(szMap,dis,nType)
    local result=0
    nType = nType or 1
    if szMap==nil   then return 0       end

    重复指定模块路径 = 重复指定模块路径 or 0
    local modName=L查找模块名(szMap)

    if modName~=nil and modName~=""  then
        L设置探索灵敏度(dis)
        L获取模型路径(modName)
        result=L前往模型位置(modName,nType)
    else
        L设置探索灵敏度()
    end
    return result
end


function Fn_激活附近传送点(地图Ptr)
    local 传送点=L周围对象(sz传送点)
    if 传送点.ID>0        then
        if L传送点是否激活(地图Ptr.地图名称,地图Ptr.难度)==0        then

            L设置全局坐标(传送点.X,传送点.Y)
            return 1
        end
    end
    return 0
end

function Fn_剧情跟随(nstatus,dis)
 local result=0
    nstatus =nstatus or 1
    dis = dis or 3

    if L组队剧情开关()==1       then
        if L我是队长()==0		then --

            if  nstatus>=1     then

                if L跟随角色(dis)==1       then
                    L信息("当前开启跟随模式...")
                    L关闭地图探索(1)
                    L关闭反击(2) --完全关闭战斗
                    result=1
                else
                    L关闭地图探索(0)
                    L关闭反击(0)

                end
            else
                L关闭地图探索(0)
                L关闭反击(0)
            end
        end
    else
        if g重置反击==0     then
            L关闭地图探索(0)
            L关闭反击(0)
            g重置反击=1
        end
    end
    return result
end
-- function Fn_前往指定地图(szMap,ModPath,重复指定模块路径,计算过图路径,是否跟随,默认难度,判断模块坐标达到次数,是否新建)
--     是否新建 = 是否新建 or 0
--     ModPath = ModPath or ""
--     重复指定模块路径 = 重复指定模块路径 or 0
--     计算过图路径 = 计算过图路径 or 1
--     是否跟随 = 是否跟随 or 1
--     默认难度= 默认难度 or -1
--     判断模块坐标达到次数 = 判断模块坐标达到次数 or -1
--     local isPassWay=0
--     local 地图Ptr=L地图信息()

--     if 默认难度==-1     then
--         if G_组队当前难度>0     then
--             默认难度=G_组队当前难度
--         else
--             默认难度=地图Ptr.难度
--         end

--     end

--     local 传送点
--     local _复活点
--     传送点=L周围对象(sz传送点)
--     if 地图Ptr.位置==0      then
--         if 传送点.ID<=0         then
--             if 地图Ptr.位置==0     then
--                 isPassWay=1
--             end
--         else
--             if L传送点是否激活(地图Ptr.地图名称,默认难度)==0        then
--                 --L暂停剧情探索(0)
--                 L设置全局坐标(传送点.X,传送点.Y,1)
--                 L翻滚(传送点.X,传送点.Y,5000)
--                 return 1
--             end
--         end

--         _复活点=L周围对象(sz复活点)
--         if  _复活点.ID>0  and _复活点.ICON=="CheckpointNotActive"  and  _复活点.距离<10    then
--             L设置全局坐标(_复活点.X,_复活点.Y)

--             return 1
--         end
--     end

--     if  Fn_剧情跟随(是否跟随)==1        then

--         --L暂停剧情探索(0)
--         return 1

--     end

--     if 地图Ptr.位置==0      then

--         -- if Fn_对话野外NPC()==1          then return 1   end
--         if	L地图是否完成()==0	then --

--             if Fn_前往死亡坐标()==1         then return 1   end
--         end

--     end

--     if 地图Ptr.地图名称==G河岸      then
--         L地图是否完成(0)

--         local _Boss=L周围对象(河岸BOSS)
--         if _Boss.ID>0	and  _Boss.HP>0	then
--             szMap=G河岸
--         else
--             szMap=G皆伐營地
--         end

--     end

--     if 地图Ptr.地图名称==szMap      then
--         --L暂停剧情探索(0)

--         Fn_前往模块坐标(ModPath,重复指定模块路径)

--         if 判断模块坐标达到次数>0       then
--             L信息("抵达指定模块次数: "..g记录模块位置抵达次数.."/"..判断模块坐标达到次数.."满足重置")
--             if  g记录模块位置抵达次数>判断模块坐标达到次数      then
--                 g记录模块位置抵达次数=0
--                 L地图是否完成(1)

--             end
--         end
--         return 1
--     end
--   --  L信息("传送点是否激活"..szMap)
--     local _目的地图激活=0
--     if 地图Ptr.地图名称~=G河岸      then
--         if L传送点是否激活(szMap,默认难度)==1        then
--             _目的地图激活=1

--             if 是否跟随~=2        then
--                 if 地图Ptr.位置==0    then
--                     if 传送点.ID<=0 then
--                         L信息("附近未发现有传送点..选择回城传送过去")
--                         L返回城镇()
--                         return 2
--                     end
--                 end
--             end
--         end
--     end



--     if 计算过图路径>0      then
--         local next=L取最近地图节点(szMap,isPassWay)

--         if next.地图名称~=""        then

--             szMap=next.地图名称
--             if 计算过图路径==2      then --不传送
--                 goto Next0
--             end
--             if 地图Ptr.位置==1      then

--                 if Fn_返回野外(szMap)==1			then --
--                     L信息("返回野外")
--                     return 1
--                 end
--             end
--             if next.传送点激活==1  and szMap~="奧札爾"  and szMap~="阿戈拉"      then

--                 if 地图Ptr.位置==1      then
--                     --用来添加传送

--                     if Fn_根据章节前往城镇传送点(地图Ptr.章节,默认难度,szMap)==1      then
--                         L信息("传送到:"..szMap)
--                         L传送地图(szMap,默认难度)
--                     end

--                     return 2
--                 else
--                     if 传送点.ID>0 then

--                         if 传送点.距离>2 then

--                             L设置全局坐标(传送点.X,传送点.Y,1)

--                         else
--                             L传送地图(szMap,默认难度)
--                         end

--                         return 2

--                     end
--                 end
--             else

--                 if szMap=="阿戈拉"  and 默认难度==2     then
--                     if 地图Ptr.位置==1      then
--                         --用来添加传送

--                         if Fn_根据章节前往城镇传送点(地图Ptr.章节,默认难度,szMap)==1      then
--                             L信息("传送到:"..szMap)
--                             L传送地图(szMap,默认难度)
--                         end
--                         return 2
--                     else
--                         if 传送点.ID>0 then

--                             if 传送点.距离>2 then

--                                 L设置全局坐标(传送点.X,传送点.Y,1)

--                             else
--                                 L传送地图(szMap,默认难度)
--                             end

--                             return 2

--                         end
--                     end
--                 end
--             end
--         else
--             if _目的地图激活==1 then
--                 if 传送点.ID>0 then

--                     if 传送点.距离>2 then

--                         L设置全局坐标(传送点.X,传送点.Y,1)

--                     else

--                         L传送地图(szMap,默认难度)
--                     end

--                     return 2

--                 end
--             end

--         end
--     end
-- ::Next0::
--     if 地图Ptr.位置==0      then
--         Fn_前往模块坐标(szMap)
--     end

--     L信息("下一个路口点"..szMap)
--     if Fn_出城(szMap,地图Ptr.难度,地图Ptr.位置,地图Ptr.章节)==1       then
--         if L进入路口(szMap,是否新建)==1 then
--         --     L暂停剧情探索(1)
--         -- else
--         --     L暂停剧情探索(0)
--         end
--     else

--     end

--     return 0
-- end

function Fn_前往指定地图(szMap,ModPath,重复指定模块路径,计算过图路径,是否跟随,默认难度,判断模块坐标达到次数,是否新建)
    是否新建 = 是否新建 or 0
    ModPath = ModPath or ""
    重复指定模块路径 = 重复指定模块路径 or 0
    计算过图路径 = 计算过图路径 or 1
    是否跟随 = 是否跟随 or 1
    默认难度= 默认难度 or -1
    判断模块坐标达到次数 = 判断模块坐标达到次数 or -1
    默认难度=1
    local isPassWay=0
    local 地图Ptr=L地图信息()
 

    if 默认难度==-1     then
        if G_组队当前难度>0     then
            默认难度=G_组队当前难度
        else
            默认难度=地图Ptr.难度
        end

    end

    local 传送点
    local _复活点
    传送点=L周围对象(sz传送点)
    if 地图Ptr.位置==0      then
        if 传送点.ID<=0         then
            if 地图Ptr.位置==0     then
                isPassWay=1
            end
        else
            if 地图Ptr.地图名称~=G阿拉塔斯  and 地图Ptr.地图名称~=G尼加卡努 and L传送点是否激活(地图Ptr.地图名称,默认难度)==0        then
                --L暂停剧情探索(0)

                --L设置全局坐标(传送点.X,传送点.Y,4)
                L寻路(传送点.X,传送点.Y)
                --L翻滚(传送点.X,传送点.Y,5000)
                L信息("前往激活传送点")
                return 1
            end
        end

        _复活点=L周围对象(sz复活点)
        if  _复活点.ID>0  and _复活点.ICON=="CheckpointNotActive"       then


            if _复活点.距离<10  then

                local nstep=0

               -- L关闭反击(2)
                while To(200)==1 do
                    _复活点=L周围对象(sz复活点)
                    if _复活点.ID<=0  or _复活点.ICON~="CheckpointNotActive"      then

                        break
                    end

                   -- L设置全局坐标(_复活点.X,_复活点.Y,4)
                    L信息("前往附近记录点...")
                    L寻路(_复活点.X,_复活点.Y)
                    if nstep>60      then

                        break
                    else
                        nstep=nstep+1
                    end
                end

              --  L关闭反击()
                return 1
            end


        end
    end

    if  Fn_剧情跟随(是否跟随)==1        then

        --L暂停剧情探索(0)
        return 1

    end

 
    if 地图Ptr.位置==0      then

        -- if Fn_对话野外NPC()==1          then return 1   end
        if	L地图是否完成()==0	then --

            if Fn_前往死亡坐标()==1         then 
                if 地图Ptr.地图名称==szMap      then
                
                    Fn_前往模块坐标(ModPath,2)
                end
                return 1   
            end
        end

    end


    if 地图Ptr.地图名称==G河岸      then
        L地图是否完成(0)
        local _自身=L自身信息()


        local _Boss=L周围对象(河岸BOSS)
        if (_Boss.ID>0	and  _Boss.HP>0)	or _自身.等级==1  then
            szMap=G河岸
        else
            szMap=G皆伐營地
        end

    end

    if 地图Ptr.地图名称==szMap      then
        --L暂停剧情探索(0)
        -- L开关进入下层路口(0)
        -- L开关返回上一层路口(0)
        Fn_前往模块坐标(ModPath,重复指定模块路径)

        if 判断模块坐标达到次数>0       then
            L信息("抵达指定模块次数: "..g记录模块位置抵达次数.."/"..判断模块坐标达到次数.."满足重置")
            if  g记录模块位置抵达次数>判断模块坐标达到次数      then
                g记录模块位置抵达次数=0
                L地图是否完成(1)

            end
        end
        return 1
    else
        --如果还没进入刀当前的地图则关闭进入非指定路口
        -- L开关进入下层路口(1)
        -- L开关返回上一层路口(1)
    end

    local _目的地图激活=0

    if 地图Ptr.地图名称~=G河岸      then
        if L传送点是否激活(szMap,默认难度)==1        then
            _目的地图激活=1
      
            if 是否跟随~=2        then

                if 地图Ptr.位置==0    then
                    if 传送点.ID<=0   then
                       if  L查找路口(szMap)==0       then 
                            L信息("附近未发现有传送点..选择回城传送过去")
                            L返回城镇()
                            return 2
                       end
                    end
                end
            end
        else 
   
            if  szMap==G金氏島  or szMap==G凱吉灣 or szMap==G阿拉塔斯 or szMap==G伯勞鳥之島 
            or szMap==G尼加卡努 or szMap==G瓦卡帕努島 or szMap==G掠奪者之角  or szMap==G廢棄監獄  
            or szMap==G阿拉塔斯2   or szMap==G尼加卡努2  or szMap==G悉妮蔻拉之眼

            then 
                L信息("前往岛屿....")
                L前往岛屿(szMap)
            end 
        end
    end



    if 计算过图路径>0      then
    
        local next=L取最近地图节点(szMap,isPassWay)

        if next.地图名称~=""        then

            szMap=next.地图名称
  
            if 计算过图路径==2      then --不传送
       
                goto Next0
            end
            if 地图Ptr.位置==1      then
        
                if Fn_返回野外(szMap)==1			then --
                    L信息("返回野外....."..szMap)
                    return 1
                end
            end
            if next.传送点激活==1  and szMap~="奧札爾"  and szMap~="阿戈拉"      then
        
                if 地图Ptr.位置==1      then
                    --用来添加传送
            
                    if Fn_根据章节前往城镇传送点(地图Ptr.章节,1,szMap)==1      then
                        L信息("传送到:"..szMap)
                        L传送地图(szMap,默认难度)
                    end
              
                    return 2
                else
                    if 传送点.ID>0 then

                        if 传送点.距离>2 then

                            L设置全局坐标(传送点.X,传送点.Y,4)

                        else
                            L传送地图(szMap,默认难度)
                        end

                        return 2

                    end
                end
            else
       
                if szMap=="阿戈拉"  and 默认难度==1     then
                    if 地图Ptr.位置==1      then
                        --用来添加传送


                        if Fn_进入崎點(0)==1        then
                            if 传送点.ID>0 and next.传送点激活==1  then

                                if 传送点.距离>2 then

                                    L设置全局坐标(传送点.X,传送点.Y,4)

                                else
                                    L传送地图(szMap,默认难度)
                                end

                                return 2

                            end
                        end
                        return 2
                    else
                        if 传送点.ID>0 and next.传送点激活==1  then

                            if 传送点.距离>2 then

                                L设置全局坐标(传送点.X,传送点.Y,4)

                            else
                                L传送地图(szMap,默认难度)
                            end

                            return 2

                        end
                    end
                else

                    if 传送点.ID>0 and next.传送点激活==1   then

                        if 传送点.距离>2 then

                            L设置全局坐标(传送点.X,传送点.Y,4)

                        else
                            L传送地图(szMap,默认难度)
                        end

                        return 2

                    end
                end
            end
        else
            if _目的地图激活==1 then
                if 传送点.ID>0 then

                    if 传送点.距离>2 then

                        L设置全局坐标(传送点.X,传送点.Y,4)

                    else

                        L传送地图(szMap,默认难度)
                    end

                    return 2

                end
            end

        end
    end
::Next0::

    if 地图Ptr.位置==0      then
        if 重复指定模块路径==2      then 
            Fn_前往模块坐标(szMap,1)
        else 
            Fn_前往模块坐标(szMap)
        end 
  
    end

    if L执行间隔("下一个路口点间隔",1500)==1        then 
      
            if  szMap==G金氏島  or szMap==G凱吉灣 or szMap==G阿拉塔斯 or szMap==G伯勞鳥之島 
            or szMap==G尼加卡努 or szMap==G瓦卡帕努島 or szMap==G掠奪者之角  or szMap==G廢棄監獄  
            or szMap==G阿拉塔斯2   or szMap==G尼加卡努2  or szMap==G悉妮蔻拉之眼

            then 
                 if L传送点是否激活(szMap,默认难度)==0        then
                    L信息("前往岛屿....")
                    L前往岛屿(szMap)
                 end
            end 
      
    end

    if Fn_出城(szMap,地图Ptr.难度,地图Ptr.位置,地图Ptr.章节)==1       then
        if 地图Ptr.地图名称~=G河岸  then 
          L关闭地图探索(1,3005)
        else 
            local _BOss=L周围对象(河岸BOSS)
            if _BOss.ID>0   and _BOss.HP==0         then --
                L关闭地图探索(1,3006)
            end 
        end
     
        if L进入路口(szMap,是否新建)==1 then
        --     L暂停剧情探索(1)
        -- else
        --     L暂停剧情探索(0)
        end
        L关闭地图探索()
    else

    end

    return 0
end

function Fn_使用物品(szItemName)
    local ret=0
    local Item=L背包信息(szItemName)
    if Item.ID>0        then
        L使用物品(Item.ID)
        ret=1
    end

    return ret
end


function Fn_读取仓库数据()
    if Fn_读取仓库信息()==0 then
        -- body
        L信息("当前正在读取仓库信息")
        return 1
    --	goto Next
    end
    if g常规设置.公会仓库页最大读取页数>0	and	g公会读取完成==0 and Fn_读取公会仓库信息()==0 then
        -- body
        L信息("当前正在读取公会仓库信息")
        return 1
    --	goto Next
    else
        g公会读取完成=1
    end

end




function Fn_提升战力(isQx)
    isQx = isQx or 0
    if isQx==1      then 
        g提升装备=0
        g提升次数=0
    end 
    local num=100
    if g提升次数>=num     then
        g提升装备=1
    end
    if g提升装备==0    or isQx==1    then
        if  g常规设置.自动换装==1 and L取出换装装备()==1       then
            L信息("正在取出指定装备")
            Fn_读取仓库数据()
            return 1
        elseif g常规设置.自动镶嵌宝石==1 and  L宝石打孔()==1			then --
            L信息("宝石打孔中")
            g提升次数=g提升次数+1
            return 1
        elseif g常规设置.自动镶嵌宝石==1 and L自动镶嵌宝石()==1		then --
            L信息("自动镶嵌宝石")
            g提升次数=g提升次数+1
            return 1
        elseif g常规设置.自动镶嵌宝石==1 and L自动升级宝石()==1		then --
            L信息("自动升级宝石")
            g提升次数=g提升次数+1
            return 1

        elseif g常规设置.自动镶嵌宝石==1 and  L提升技能品质()==1		then --
            L信息("提升技能品质")
            g提升次数=g提升次数+1
            return 1

        elseif g常规设置.自动换装==1 and L装备打孔()==1         then
            L信息("装备打孔中")
            return 1
        elseif g常规设置.自动换装==1 and L镶嵌符文()==1    then
            L信息("镶嵌符文")
            return 1
        elseif g常规设置.自动换装==1 and L改造装备()==1    then
            L信息("改造装备")
            return 1
        elseif g常规设置.自动换装==1 and L提升装备品质()==1    then
            L信息("提升装备品质")
            return 1               
        else
            g提升装备=1
        end


    end
    return 0
end
function Fn_提升装备()
    local num=24
    -- if L组队剧情开关()==0		then
    --     num=6
    -- end
   if g提升装备==0    and g常规设置.自动换装==1    then
        if g提升次数>=num     then
            g提升装备=1
        else
            if L组队剧情开关()==0 and L取出换装装备()==1       then
                L信息("正在取出指定装备")
                Fn_读取仓库数据()
                return 1
            elseif L宝石打孔()==1			then --
                L信息("宝石打孔中")
                g提升次数=g提升次数+1
                return 1
            elseif L自动镶嵌宝石()==1		then --
                L信息("自动镶嵌宝石")
                g提升次数=g提升次数+1
                return 1
            elseif L自动升级宝石()==1		then --
                L信息("自动升级宝石")
                g提升次数=g提升次数+1
                return 1               
            elseif L装备打孔()==1			then --
                L信息("装备打孔中")
                g提升次数=g提升次数+1
                return 1


            elseif L镶嵌符文()==1		then --
                L信息("镶嵌符文")
                return 1
            elseif L改造装备()==1		then --
                L信息("改造装备")
                return 1
            elseif L提升装备品质()==1		then --
                L信息("提升装备品质")
                return 1
            elseif L提升技能品质()==1		then --
                L信息("提升技能品质")
                return 1
            else
                L信息("当前无需提升.................")
                g提升装备=1
            end
        end
    end
    return 0
end


function Fn_商店购买更好装备()
    local result=0

    if G升级后商店查找装备<2  and g常规设置.自动换装==1  and  G商店购装次数<30  then
        result=1
        local 地图Ptr=L地图信息()

        local 鉴定NPC,出售NPC,分解NPC,药水NPC=Fn_剧情城镇商店NPC(地图Ptr)

        if 地图Ptr.位置==1   then
            if Fn_进入崎點(1)==0    then
                return 1
            end
            local Is鉴定NPC=L商店NPC(鉴定NPC)
            local Is出售NPC=L商店NPC(出售NPC)
            local Is药水NPC=L商店NPC(药水NPC)

            local x,y=L获取对象的位置信息()
       

            if G升级后商店查找装备==0         then
                if Is出售NPC.ID>0   then
                    if Fn_对话(出售NPC,sz倫利出售,nil,nil,nil,nil,2,1500)==1    then
                        if L商店购买更好装备()==1       then
                            L自动换装(0)

                        else

                            LEsc()
                            L延时(500)
                            G升级后商店查找装备=1
                        end

                    end

                else 
                    if L寻路(x,y)~=1    then 
                        goto _Exit
                    end 
                end
        
            elseif G升级后商店查找装备==1     then

                if  Is药水NPC.ID>0      then 
                    if Fn_对话(药水NPC,sz倫利出售,nil,nil,nil,nil,2,1500)==1    then
                        if L商店购买更好装备()==1       then
                            L自动换装(0)

                        else
                            LEsc()
                            L延时(500)
                            G升级后商店查找装备=2
                        end

                    end
                else
                    if L寻路(x,y)~=1    then 
                        goto _Exit
                    end 
                end
         
            end
            if L执行间隔("购买商店装备间隔",1000)==1        then 
                G商店购装次数=G商店购装次数+1
            end 

        end
    end
::_Exit::
    return result
end



function Fn_商店赌博更好装备()
    local result=0


    local _赌博装备类名=L商店赌博更好的装备()
    if _赌博装备类名~=""    and g常规设置.自动换装==1    then

        local 地图Ptr=L地图信息()

        local 鉴定NPC,出售NPC,赌博Npc,药水NPC=Fn_剧情城镇商店NPC(地图Ptr)

        if 地图Ptr.位置==1   then

            local Is赌博Npc=L商店NPC(赌博Npc)

            local x,y=L获取对象的位置信息()
            if Is赌博Npc.ID>0          then

                if 地图Ptr.章节==3  and Is赌博Npc.X>2000 then

                else
                    if Fn_进入崎點(1)==0    then
                        return 1
                    end
                    result=1
                    if Fn_对话(赌博Npc,sz倫利出售,nil,nil,nil,nil,2)==1    then
                        L商店购物(_赌博装备类名,0,1)
                        L延时(1000)
                        L自动换装(0)

                    end
                end

            end
        end
    end

    return result
end


function Fn_设置为指定路口(szRk)
    L开关进入下层路口(0)
    L设置路口类型(szRk,0)
    L只进入指定下次路口(szRk)
end

function Fn_商店赌博()
    local result=0
    local n单位=10000
    local 满足金币=g常规设置.商店赌博_金币大于*n单位
    local 保留金币=g常规设置.商店赌博_金币保留*n单位
    if g常规设置.商店赌博_购买部位~=""      then
        local _自身=L自身信息()
        if _自身.金币>满足金币      then
            g开启赌博功能=1
        end
        if _自身.金币>保留金币   and  g开启赌博功能==1   then
            local _Npc=L周围对象(sz安潔)
            if _Npc.ID>0        then

              local ItemInfo= splitString( g常规设置.商店赌博_购买部位,",")

                if ItemInfo[1]~=nil and ItemInfo[2]~=nil  then
                    result=1
                    if Fn_对话(sz安潔,sz出售)==1    then
                        g背包清理状态=0
                        L商店购物(ItemInfo[1],ItemInfo[2],40)
                    end
                end
            end
        else
            g开启赌博功能=0
        end
    end

    return result
end


function Fn_高塔开异界地图()
local result=0
	if Q_领取城镇任务()==1		then
        L信息("对话任务")
        result=1
        goto Next
    else
        if Fn_补全天赋任务()==1     then
           L信息("切换到一体化脚本...")
           L更改脚本("一体化脚本.lua")
        end
        
        result=1
        goto Next
    end


    g剧情完成=1

    if Fn_读取仓库信息()==0 then
        -- body
        L信息("当前正在读取仓库信息")
        result=1
        goto Next
    end

    if g常规设置.公会仓库页最大读取页数>0	and	Fn_读取公会仓库信息()==0 then
        -- body
        L信息("当前正在读取公会仓库信息")
        result=1
        goto Next
    end
    if Fn_地图鉴定(地图Ptr)==1		then
        L信息("鉴定物品...")
        result=1
        goto Next
    end

    L自动换装(3)



    if	Fn_剧情城镇物品处理()==1			then --
        L信息("城镇处物品处理")
        result=1
        goto Next
    end


    if	Fn_包满回城()==1			then --
        D重置状态()
        L关闭地图探索()
        L信息("需要处理背包...")
        result=1
        goto Next
    end

    if L地图合成()==1	then
        L信息("正在合成不需要的地图...这个过程根据你仓库与背包里地图的数量决定时间长短..")
        result=1
        goto Next
    end

    if g仓库取图是否成功==2 then

        if	L缺少异界地图()==1			then --
            L信息("当前缺少可刷的异界地图....")
            Fn_购买异界地图()
            result=1
            goto Next
        else
            g仓库取图是否成功=0
        end
    end

    if	Fn_异界开图()==1		then --
        result=1
        goto Next
    end
::Next::
    return result
end


function Fn_返回城镇补充药剂(地图Ptr)
local result=0

    if 地图Ptr.地图名称==G河岸 or 地图Ptr.地图名称==G瓦斯提里郊區   or 地图Ptr.地图等级>=65   or   地图Ptr.章节==3  or L当前BOSS目标()~=""  then

    else

        if g井水点击次数<3 and L药剂充能(0)==0      then


            result=1
            if 地图Ptr.位置>0     then
                local _井水=L周围对象("/HealingWell")
                if _井水.ID>0       then
                    L信息("补充药剂充能")
                    if _井水.距离<3     then
                        L点击对象(_井水.ID)
                        L延时(1000)
                        g井水点击次数=g井水点击次数+1

                    else
                        L寻路(_井水.X,_井水.Y)
                    end
                end
            else

                local dis=L指定范围是否存在怪物(12)
                if dis==1       then
                    L信息("当前处于BOSS战当中 忽略回城补充药剂充能")
                    result=0
                else

                    if  dis>12  then
                        L信息("返回城镇 补充药剂充能1")
                        L返回城镇(1) --正常回城
                    else
                        L信息("返回城镇 补充药剂充能2")
                        L返回城镇(2) --返回复活点回城
                    end

                end
            end
        end
    end
    return result
end


function Fn_藏身處补充药剂(地图Ptr)
    local result=0

    if g井水点击次数<6 and L药剂充能(0)==0      then

        if 地图Ptr.位置==2    then
          
            local _井水=L周围对象("HealingWell")
            if _井水.ID>0       then
                result=1
                if _井水.距离<2.5     then
                    L点击对象(_井水.ID)
                    L延时(1000)
                    g井水点击次数=6

                else
                    L寻路(_井水.X,_井水.Y)
                    if L执行间隔("泉水补给间隔",1000)==1    then 
                        g井水点击次数=g井水点击次数+1
                    end 
                end
            end
        end
    end

    return result
end
    

--0 表示没有可帮忙的大号
--1表示正在邀请帮忙大号
--2 表示大号已经与你在一张图了
--chat =""时，表示要离开队伍
function Fn_召唤大号过来帮忙(chat,地图Ptr)
    --憎惡者．賈嫚拉
    chat = chat or ""

    local result=0

    if chat==""      		then --  then
        --L暂停剧情探索(0)\
 
        L召唤大号帮忙(chat)

    elseif 地图Ptr.位置~=0	        then
        L信息("当前在城镇中...")
    else

        if L大号名称()~=""      then
            result=1

            L召唤大号帮忙(chat)
        end

    end
    return result
end


function Fn_召唤大号过来帮忙帝王(chat,qx)
    --憎惡者．賈嫚拉
    chat = chat or ""
    qx = qx or 0
    local result=0

    if chat==""      		then --  then
        --L暂停剧情探索(0)
        L队伍交流(chat,qx)

    else

       -- if L大号名称()~=""      then
            result=1
            L队伍交流(chat,qx)
     --   else
      --      L信息("你还未设置 帮助的大号名称")
     --   end

    end
    return result
end

function Fn_特殊章节切换地图处理(地图Ptr,_帮忙难度)
    local result=0
    local _队长信息=L队长信息()
    if (_队长信息.地图==G漆黑密室  or _队长信息.地图==G奧札爾  or _队长信息.地图==G阿戈拉)  and  地图Ptr.地图名称~=_队长信息.地图      then

        if 地图Ptr.位置==0  and  地图Ptr.地图等级>=65       then --处于异界之中..
            if Fn_当前是否还处于BOSS战()==0     then
                result=1
                L返回城镇()
            else
                L信息("当前处于BOSS战中...")
            end
        else
            if 地图Ptr.位置==0          then --
                if 地图Ptr.地图名称==G河岸  then
                    L设置探索地图(探索类型.跟随刷图)
                else
                  L返回城镇()
                end
            else
                if Fn_传送到指定章节(3,_帮忙难度)==1            then --
                    if Fn_进入崎點(0)==1        then --
                        L设置探索地图(探索类型.跟随刷图)

                    end
                end
            end
            result=1
        end

    else
        L设置可以击杀的怪物("多里亞尼的凱旋")
        L设置探索地图(探索类型.跟随刷图)
        result=1

    end
    return result
end
function Fn_大号前往帮忙(地图Ptr)
    local result=0
    if L队伍人数()>0        then
      local ss=L地图信息()
      local _帮忙难度=0
        if L取队长口令(G大号帮忙难1,123456789)==1			then --
            _帮忙难度=1
        elseif L取队长口令(G大号帮忙难2,123456789)==1			then --
            _帮忙难度=2
        end
        if  L队长是否在附近()==0		then 
            if L执行间隔("帮助队伍",15*1000)==1        then
                L前往队长身边()
            end 
        end
        if _帮忙难度>0			then --
            G是否是帮助队伍=0
            G刚刚帮助过小号=1
            result=Fn_特殊章节切换地图处理(地图Ptr,_帮忙难度);
        else

                if L执行间隔("帮助队伍",1000)==1        then
                    if G是否是帮助队伍>12        then
                        G是否是帮助队伍=0
                        L离开队伍(1000)
                    else
                        G是否是帮助队伍=G是否是帮助队伍+1
                    end
                end
    
        


        end
    else
        if G刚刚帮助过小号==1       then

            if 地图Ptr.位置==1	        then
                L信息("当前角色帮助过小号过剧情...所以回优先返回藏身处")
                L返回藏身处()
                L延时(6000)
            else
                if 地图Ptr.地图名称==G瓦斯提里郊區          then --
                    Fn_前往指定地图(G阿杜拉車隊)
                else
                    if 	地图Ptr.地图等级<65     then

                        L延时(6000)
                        L返回城镇()
                    end
                end
            end
        end

        L进入队伍()
    end

    return result
end


function Fn_帮助是否结束(ClassName,nType)
local ret=0
    if nType==1     then 
        local _obj=L周围对象(ClassName)
        if _obj.ID<=0        then
            L离开队伍(1)

            ret=1
        end 
    elseif nType==2     then 
        if L取死亡BOSS信息(ClassName)==1      then 
            ret=1
        end 
    else 
        if L取死亡BOSS信息(ClassName)==1      then 
            -- L剧情报数(_完成帮助)
            L离开队伍(1)

            ret=1
        end
    end
    return ret
end


function Fn_帮助BOSS是否被击杀(BossName)
local nret=0
--
    local Obj=L全图对象(BossName,0)
    if Obj.ID>0     then 
        nret=1
        L离开队伍(1)
    end 
    return nret
end 
function Fn_前往寻找BOSS(BossName)
    local nret=0
--
    local Obj=L全图对象(BossName,1)
    if Obj.ID>0     then 
        L寻路(Obj.X,Obj.Y)
        nret=1
    end 
    return nret

end 


function Fn_前往寻找BOSSEx(BossName)
    local nret=0
--
    local Obj=L周围对象(BossName)
    if Obj.ID>0     then 

        L寻路(Obj.X,Obj.Y)
        nret=1
    end 
    return nret

end 
function Fn_跟随小号打怪()
    L跟随角色(3,1)
    local _Boss=L周围BOSS()
    if _Boss.ID<=0 or _Boss.距离>6		then 
        L设置探索地图(0)
        L信息("前往队友身边")
    else 
        L设置探索地图(1)
    end
end 
function Fn_大号自动匹配帮助目标()
    local result=0
    local 地图Ptr=L地图信息()
  
    if L队伍人数()>0        then
        result=1
        if L地图是否完成()==1       then 
            L信息("地图完成...")
            L离开队伍(1)
            L回到记录点()
            L地图是否完成(0)
            goto Exit
        end 
     
        local _帮助内容=L取队长口令内容()

        if _帮助内容==""        then 
            L信息("当前无帮助信息...等待信息...")
            if G等待队员帮助信息>12     then 
                G等待队员帮助信息=0
                L离开队伍(1)
                L信息("当前6秒无应答...")
            else 
                if L执行间隔("等待帮助内容",1000)==1    then 
                    G等待队员帮助信息=G等待队员帮助信息+1
                end 
            end 
   
            goto Exit
        else 
            G等待队员帮助信息=0
        end 

        if  L队长是否在附近(1000)==0		then 
            if L执行间隔("清空路口信息",1500)==1        then 
                L清空重置状态()
            end
            if G传送队员失败次数>3      then 
                G传送队员失败次数=0
                L离开队伍(1)
                L信息("无法传送到队友身边...")
                 goto Exit
            end 
            if _帮助内容==_需帮助BOSS_奧札爾Boss       then 
             
                if 地图Ptr.章节~=3  or 地图Ptr.位置==0    then 
                    if 地图Ptr.位置==0     then 
                
                        L返回城镇()
                    else 
         
                        Fn_传送到指定章节(3,1)
                    end 
                else 

                    if 地图Ptr.位置==1		then 
                        if Fn_进入崎點(0)==1		then 
                            if L执行间隔("帮助队伍",15*1000)==1        then
                                L前往队长身边()
                                L延时(1000)
                                L重新加载地图()
                                L地图是否完成(0)
                                G传送队员失败次数=G传送队员失败次数+1
                            end 
                        end
                
                    end
                end 
            else 
                if L执行间隔("帮助队伍",15*1000)==1        then
                  
                    L前往队长身边()
                    L延时(1000)
                    L重新加载地图()
                    L地图是否完成(0)
                    G传送队员失败次数=G传送队员失败次数+1
                end 
            end 
        else 
            G传送队员失败次数=0
  
            result=1
            if 地图Ptr.位置==1   or       _帮助内容==""  then 
           
                if G前往队友地图等待>=3     then 
                    L信息("当前无帮助内容 或 位置在城镇.所以选择离队")
                    L离开队伍(1)
                else 
                    if L执行间隔("前往队员地图等",1000)==1  then 
                        G前往队友地图等待=G前往队友地图等待+1
                    end
                end
                goto Exit
            end 
            
            if _帮助内容==_需帮助BOSS_墓碑BOSS       then 
                local _Boss1="Metadata/Monsters/BitterGuy/BitterGuyBoss"
                if Fn_帮助是否结束(_Boss1)==1      then 
                    L信息("完成帮助...")

                else 
                    if Fn_前往寻找BOSSEx(_Boss1)==0      then 
                    L开关进入下层路口(1)
                    L屏蔽下层路口("纏縛陰林")
                    L设置路口类型("競技場",0)
                    Fn_前往指定地图("不朽帝國之墓","政務官陵墓_墓碑",1)	
                    end
                
                end 
            
            elseif _帮助内容==_需帮助BOSS_赤谷BOSS       then 
                if Fn_帮助是否结束("Metadata/Monsters/RustKing/TheRustKingBoss@")==1      then 
                    L信息("完成帮助...")

                else 
                    if	Q_打开附近对象("Metadata/Terrain/Gallows/Act1/1_4/Objects/TreeOfSoulsNailStake1")==1	then 
                        L设置探索地图(探索类型.暂停)
                        goto Exit		
                    elseif	Q_打开附近对象("Metadata/Terrain/Gallows/Act1/1_4/Objects/TreeOfSoulsNailStake2")==1	then 
                        L设置探索地图(探索类型.暂停)
                        goto Exit
                    elseif	Q_打开附近对象("Metadata/Terrain/Gallows/Act1/1_4/Objects/TreeOfSoulsNailStake3")==1	then 
                        L设置探索地图(探索类型.暂停)
                    else
                        Q_赤谷BOSS()
                    
                    end 
                end
            elseif _帮助内容==_需帮助BOSS_神威銀拳       then 
                local _Boss1="Metadata/Monsters/Quadrilla/QuadrillaBoss"
                if Fn_帮助是否结束(_Boss1)==1      then 
                    L信息("完成帮助...")

                else 
                    --Q_神威銀拳()
                    if Fn_前往寻找BOSSEx(_Boss1)==0      then 
               
                        Fn_前往指定地图("叢林遺跡","叢林遺跡_天赋BOSS",1) 
                    end
                
                end 
                
            elseif _帮助内容==_需帮助BOSS_鴉鈴       then 
                local _Boss1="Metadata/Monsters/CrowBell/CrowBellBoss_@" 
                if Fn_帮助是否结束("Metadata/Monsters/CrowBell/CrowBellBoss_@")==1      then 
                    L信息("完成帮助...")

                else 
                    if Fn_前往寻找BOSSEx(_Boss1)==0      then 
                    Fn_前往指定地图("獵場","獵場_BOSS")
                    end
                  
                end
            elseif _帮助内容==_需帮助BOSS_配偶的墓室       then 
                local _Boss1="Metadata/Monsters/WifeMonster/WifeMonster"
                if Fn_帮助是否结束(_Boss1)==1      then 
                    L信息("完成帮助...")

                else 
                    if Fn_前往寻找BOSSEx(_Boss1)==0      then 
                    Q_配偶的墓室_BOSS()
                    end
                  
                end
            elseif _帮助内容==_需帮助BOSS_政務官陵墓       then 
                local _Boss1="Metadata/Monsters/HusbandMonster/HusbandMonster"
                if Fn_帮助是否结束(_Boss1)==1      then 
                    L信息("完成帮助...")

                else 
                    if Fn_前往寻找BOSSEx(_Boss1)==0      then 
                    Q_政務官陵墓_BOSS()
                    end
                  
                end           
            elseif _帮助内容==_需帮助BOSS_太阳神殿BOSS       then 
                local _Boss1="Metadata/Monsters/VaalSunWorshipper/VaalSunWorshipperBoss"
                if Fn_帮助是否结束(_Boss1)==1      then 
                    L信息("完成帮助...")

                else 
                    if Fn_前往寻找BOSSEx(_Boss1)==0      then 
                    Q_太阳神殿BOSS()
                    end
                end                  
                
            elseif _帮助内容==_需帮助BOSS_劊子手       then 
                local _Boss1="Metadata/Monsters/GuillotineExecutioner/GuillotineExecutioner@"
                if Fn_帮助是否结束(_Boss1)==1      then 
                    L信息("完成帮助...")

                else 
                    if Fn_前往寻找BOSSEx(_Boss1)==0      then 
                        Q_劊子手()

                        Fn_前往指定地图("奧格姆村","奧格姆村_BOSS",1)		
                    end
                  
                end

            elseif _帮助内容==_需帮助BOSS_哈拉妮關口       then 
                local _Boss1="Metadata/Monsters/PerennialKingHumanBoss@"
                if Fn_帮助是否结束(_Boss1)==1      then 
                    L信息("完成帮助...")

                else 
                    if Fn_前往寻找BOSSEx(_Boss1)==0      then 
                    Q_哈拉妮關口_楼梯Boss()
                    end
                  
                end        
            elseif _帮助内容==_需帮助BOSS_異界干擾女王卡巴拉_BOSS       then 
                local _Boss1="Metadata/Monsters/SerpentClanMonster/SerpentClanCasterBoss@"
                if Fn_帮助是否结束(_Boss1)==1      then 
                    L信息("完成帮助...")

                else 
                  --  Q_異界干擾女王卡巴拉()
                    if Fn_前往寻找BOSSEx(_Boss1)==0      then 
                    Fn_前往指定地图("凱斯城","凱斯城_蛇女BOSS",1)
                    end
                  
                end                
            elseif _帮助内容==_需帮助BOSS_掩埋神殿_凱斯之心_BOSS       then 
        
                if Fn_帮助是否结束("Metadata/Monsters/Act2/ForsakenSon@")==1      then 
                    L信息("完成帮助...")

                else 
                    --Q_掩埋神殿_凱斯之心()
                    L开关返回上一层路口(1)

                    local _IConName=GBossRoomMinimapIcon
					Fn_设置为指定路口("凱斯之心")
					local _icon=L周围对象(_IConName)
					if _icon.ID>0			then --
						
						Fn_前往指定地图("掩埋神殿","掩埋神殿_凱斯之心",1,nil,0)
					else 
						Fn_前往指定地图("掩埋神殿","掩埋神殿_凱斯之心")
					end
                  
                end                   
                
            elseif _帮助内容==_需帮助BOSS_骨坑_BOSS       then 
        
                local _Boss1="Metadata/Monsters/MastodonBoss/MastodonBoss"
                local _BoSS2="Metadata/Monsters/BoneCultists/BoneCultist_Necromancer/BoneCultist_NecromancerBoss@"
                if Fn_帮助是否结束(_Boss1,2)==1   or  Fn_帮助是否结束(_BoSS2,2)==1    then 
                    L信息("完成帮助...")
                    L离开队伍(1)
                    L离开队伍(1)
                    L回到记录点()
                   -- Metadata/Monsters/BoneCultists/BoneCultist_Necromancer/BoneCultist_NecromancerBoss@
                else 
                  --  Q_骨坑_BOSS()
                    if Fn_前往寻找BOSSEx(_Boss1)==0      then 
                    Fn_前往指定地图("骨坑","骨坑_BOSS",1)
                    end
                end    
            elseif _帮助内容==_需帮助BOSS_泰坦石窟BOSS       then 
        
                local _Boss1="Metadata/Monsters/TitanBoss/TitanBoss"
       
                if Fn_帮助是否结束(_Boss1)==1     then 
                    L信息("完成帮助...")
                    -- L离开队伍(1)
                    -- L离开队伍(1)
                    -- L回到记录点()
                   -- Metadata/Monsters/BoneCultists/BoneCultist_Necromancer/BoneCultist_NecromancerBoss@
                else 
                    if Fn_前往寻找BOSSEx(_Boss1)==0      then 
					Fn_前往指定地图("泰坦石窟","泰坦石窟_BOSS")
                    end
                  
                end                
            elseif _帮助内容==_需帮助BOSS_戴斯哈尖塔       then 
        
                local _Boss1="Metadata/Monsters/GiantSnakeSkeletonBoss/GiantSkeletonSnakeBoss_"
       
                if Fn_帮助是否结束(_Boss1)==1     then 
                    L信息("完成帮助...")
                    -- L离开队伍(1)
                    -- L离开队伍(1)
                    -- L回到记录点()
                   -- Metadata/Monsters/BoneCultists/BoneCultist_Necromancer/BoneCultist_NecromancerBoss@
                else 
                    if Fn_前往寻找BOSSEx(_Boss1)==0      then 
					Q_戴斯哈尖塔_BOSS()
                    end
                  
                end      
            elseif _帮助内容==_需帮助BOSS_叛徒芭芭拉       then 
        
                local _Boss1="Metadata/Monsters/Balbala/Balbala@"
       
                if Fn_帮助是否结束(_Boss1)==1     then 
                    L信息("完成帮助...")
                    -- L离开队伍(1)
                    -- L离开队伍(1)
                    -- L回到记录点()
                   -- Metadata/Monsters/BoneCultists/BoneCultist_Necromancer/BoneCultist_NecromancerBoss@
                else 
			
                    if	Q_打开附近对象("BossDoor")==1	then 
                        L设置探索地图(探索类型.暂停)
                        goto Exit		
                    elseif	Q_打开附近对象("BossChainAnchor_1")==1	then 
                        L设置探索地图(探索类型.暂停)
                        goto Exit
                    elseif	Q_打开附近对象("BossChainAnchor_2")==1	then 
                        L设置探索地图(探索类型.暂停)
                        goto Exit
                    elseif	Q_打开附近对象("BossChainAnchor_3")==1	then 
                        L设置探索地图(探索类型.暂停)
                        goto Exit
                    end
                    if Fn_前往寻找BOSSEx(_Boss1)==0      then 
                    Fn_前往指定地图("叛徒之路","叛徒之路_BOSS")	
                    end

                end                   
                
            elseif _帮助内容==_需帮助BOSS_二章最后BOSS       then 
        
        
                local _Boss1="Metadata/Monsters/PerennialKingStage2/PerennialKing@"
                local _Npc="Metadata/Monsters/NPC/MarakethMatriarchDreadnought_@"
                if Q_打开附近对象(_Npc)==1      then 
                    goto Exit
                end 
                if Fn_帮助是否结束(_Boss1)==1     then 
                    L信息("完成帮助...")
                    -- L离开队伍(1)
                    -- L离开队伍(1)
                    -- L回到记录点()
                   -- Metadata/Monsters/BoneCultists/BoneCultist_Necromancer/BoneCultist_NecromancerBoss@
                else 
                    if Fn_前往寻找BOSSEx(_Boss1)==0      then 
					Fn_前往指定地图("無畏隊先鋒","無畏隊先鋒_BOSS",1,2,2)	
                    end
                  
                end   
            elseif _帮助内容==_需帮助BOSS_一章狼王       then   
                
        
                local _Boss1="Metadata/Monsters/Baron/BaronBossCorruptedWolfForm"
       
                if Fn_帮助是否结束(_Boss1)==1     then 
                    L信息("完成帮助...")
                    -- L离开队伍(1)
                    -- L离开队伍(1)
                    -- L回到记录点()
                   -- Metadata/Monsters/BoneCultists/BoneCultist_Necromancer/BoneCultist_NecromancerBoss@
                else 
                    L开关进入下层路口(0)
                    L屏蔽下层路口("宅第壁壘,門")
                
                    L设置路口类型("競技場",0)
                    L设置躲避参照物(GBossRoomMinimapIcon,8)
                    Q_一章狼王()
        
                    Fn_前往指定地图("奧格姆宅第","奧格姆宅第_楼梯")
                  
                end  
   
          
            elseif _帮助内容==_需帮助BOSS_天之禍殃       then 
        
        
                local _Boss1="Metadata/Monsters/Bird2/MutantBird2NOUltimatum@"
       
                if Fn_帮助是否结束(_Boss1)==1     then 
                    L信息("完成帮助...")
                    -- L离开队伍(1)
                    -- L离开队伍(1)
                    -- L回到记录点()
                   -- Metadata/Monsters/BoneCultists/BoneCultist_Necromancer/BoneCultist_NecromancerBoss@
                else 
                    if Fn_前往寻找BOSSEx(_Boss1)==0      then 
		                Fn_前往指定地图(G伯勞鳥之島,"伯勞鳥之島_Boss",1)	
                    end
                end          
          
            elseif _帮助内容==_需帮助BOSS_領主和夫人       then 
        
        
                local _Boss1="Metadata/Monsters/WifeMonster/VampireQueenBoss@"
       
                if Fn_帮助是否结束(_Boss1)==1     then 
                    L信息("完成帮助...")
         
                else 

                    if Fn_前往寻找BOSSEx(_Boss1)==0      then 
                    Fn_前往指定地图(G霍爾登宅第,"霍爾登宅第_BOSS夫人",1)	
                    end
                end                    
            elseif _帮助内容==_需帮助BOSS_奧札爾Boss       then 
                local _Boss1="Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatzi@"
       
                if Fn_帮助是否结束(_Boss1)==1     then 
                    L信息("完成帮助...")
                else 
                    if Fn_前往寻找BOSSEx(_Boss1)==0      then 
                        Fn_前往指定地图(G奧札爾,G阿戈拉)
                    end
                 
                
                  --  Fn_跟随小号打怪()
    
                end       
            elseif _帮助内容==_需帮助BOSS_瑟雷之石_巨石阵BOSS       then 
                local _Boss1="Metadata/Monsters/ReaperBoss/EzomyteReaperBoss@"
       
                if Fn_帮助是否结束(_Boss1)==1     then 
                    L信息("完成帮助...")
                else 
   
                    Q_5_瑟雷之石_巨石阵BOSS()
                    Fn_前往指定地图(G瑟雷之石,"瑟雷之石_BOSS",1)		
                end     
                
            elseif _帮助内容==_需帮助BOSS_多里亞尼的凱旋       then 
                local _Boss1="Metadata/Monsters/DoryaniMechSuit/DoryaniMech@"

                if Fn_帮助是否结束(_Boss1)==1    then 
                    L离开队伍(1)
                    L信息("完成帮助...")
                else 
                    local _Boss2="Metadata/Monsters/Doryani/DoryaniInThePast/DoryaniPast@"
                    if Fn_前往寻找BOSSEx(_Boss2)==0      then 
                     Fn_前往指定地图("漆黑密室","漆黑密室_BOSS",1)	
                    else
                        Q_多里亞尼的凱旋()
                    end
                  --  Q_多里亞尼的凱旋()
                end     
            elseif _帮助内容==_需帮助BOSS_眼盲巨獸       then 
                local _Boss1="Metadata/Monsters/Goblins/Beast/ArenaBeastBoss@"

                if Fn_帮助是否结束(_Boss1)==1    then 
                    L离开队伍(1)
                    L信息("完成帮助...")
                else 
                    if Fn_前往寻找BOSSEx(_Boss1)==0      then 
                    Fn_前往指定地图(G金氏島,"眼盲巨獸",1) 
                    end
                end   
            elseif _帮助内容==_需帮助BOSS_暗黑迷雾船长       then 
                local _Boss1="Metadata/Monsters/Pirates/CaptainRothBoss"

                if Fn_帮助是否结束(_Boss1)==1    then 
                    L离开队伍(1)
                    L信息("完成帮助...")
                else 

                    if Fn_前往寻找BOSSEx(_Boss1)==0      then 
                    Fn_前往指定地图(G旅程結束,"旅程結束_BOSS",1)	
                    end
                end                  
            elseif _帮助内容==_需帮助BOSS_塔瓦凱       then 
                local _Boss1="BoatCaptainFemale_A4Boss"

                if Fn_帮助是否结束(_Boss1)==1    then 
                    L离开队伍(1)
                    L信息("完成帮助...")
                else 
                    local _Boss1=L周围对象("Metadata/Monsters/KaruiChieftain/KaruiCaptainBoss_3")
                    if _Boss1.ID>0  then 
                        if  _Boss1.隐藏==1       then 
                            Fn_前往指定地图(G部族之心,"部族之心_BOSS2",1)	 
                        else 
                            Fn_前往指定地图(G部族之心,"部族之心_BOSS1",1)	 
                        end 
                    else 
                        Fn_前往指定地图(G部族之心,"部族之心_BOSS2",1)	 
                    end
             
            
             
                end     
            elseif _帮助内容==_需帮助BOSS_海妖       then 
                local _Boss1="Metadata/Monsters/SirenMonster/SirenBoss@"

                if Fn_帮助是否结束(_Boss1)==1    then 
                    L离开队伍(1)
                    L信息("完成帮助...")
                else 
                    if Fn_前往寻找BOSSEx(_Boss1)==0      then 
                    Fn_前往指定地图(G吟謠洞窟,"吟謠洞窟_海妖",0)	
                    end
                end                                  
                

                
            elseif _帮助内容==_需帮助BOSS_囚犯       then 
                local _Boss1="Metadata/Monsters/PrisonerBoss/PrisonerBoss@"
       
                if Fn_帮助是否结束(_Boss1)==1     then 
                    L信息("完成帮助...")
                else 

                   
                    local _BossObj=L周围对象(_Boss1)
                    if _BossObj.ID>0             then 
                        if  _BossObj.距离>20    then 
                            L寻路(_BossObj.X,_BossObj.Y)
                          --  Fn_循环执行特定函数(L寻路,_BossObj.X,_BossObj.Y,100)
                        end 
                      
                        local _把手开关=L全图对象("LabyrinthLever",1)
                  
                        if _把手开关.ID>0	and _把手开关.距离<3.5	then 
                            if L执行间隔("开把手间隔",6000)==1      then 
                                L寻路(_把手开关.X,_把手开关.Y,6000)

                                L点击对象(_把手开关.ID)

                                L点击对象(_把手开关.ID)

                                L点击对象(_把手开关.ID)
                            end
                        end 
                    end 
  
                    
              
                     Q_4_單獨禁閉_囚犯(1)
                    
                     if Fn_前往寻找BOSSEx(_Boss1)==0      then 
                        Fn_前往指定地图(G單獨禁閉,"單獨禁閉_Boss",1)	
                     end
                end   
            elseif _帮助内容==_需帮助BOSS_蝎子跟毒虫       then 
      
                local _Boss1="Metadata/Monsters/MudBurrower/DevourerDuo/DevourerBossDuoHead@"
                local _Boss2="Metadata/Monsters/MarakethSanctumTrial/Boss/Shakari/ShakariDuo@" --蝎子
                if Fn_帮助是否结束(_Boss1,2)==1  and Fn_帮助是否结束(_Boss2,2)==1  then 
                    L离开队伍(1)
                    L信息("完成帮助...")
                else 
                    if Fn_前往寻找BOSSEx(_Boss2)==0      then 
                        Fn_前往指定地图(G卡里交匯道,"卡里交匯道_BOSS",1) 
                    end
                end                                  
                
            elseif _帮助内容==_需帮助BOSS_阿札克泥沼_BOSS       then 
      
                local _Boss1="Metadata/Monsters/IgnagdukBogWitch/IgnagdukBogWitch@"
    
                if Fn_帮助是否结束(_Boss1)==1  then 
                    L离开队伍(1)
                    L信息("完成帮助...")
                else 
                    if Fn_前往寻找BOSSEx(_Boss1)==0     then 
                        Q_阿札克泥沼_BOSS()
                    end
                end                                  
            elseif _帮助内容==_需帮助BOSS_火山迷窟BOSS       then 
      
                local _Boss1="Metadata/Monsters/Goblins/GoblinGiantBoss/GoblinGiantBoss@"
    
                if Fn_帮助是否结束(_Boss1)==1  then 
                    L离开队伍(1)
                    L信息("完成帮助...")
                else 
                    if Fn_前往寻找BOSSEx(_Boss1)==0     then 
                        Fn_前往指定地图(G火山迷窟,"火山迷窟_BOSS",1)	
                    end
                end                    
            elseif _帮助内容==_需帮助BOSS_迷失長鋒萊塔拉       then 
      
                local _Boss1="Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri@"
    
                if Fn_帮助是否结束(_Boss1)==1  then 
                    L离开队伍(1)
                    L信息("完成帮助...")
                else 
  
                    Fn_前往指定地图(G庫萊亞村,"庫萊亞村_BOSS",1) 
                end                   
                
            elseif _帮助内容==_需帮助BOSS_荊棘懼怪       then 
      
                local _Boss1="Metadata/Monsters/CarnivorousPlantEater/OldForest/CarnivorousPlantEaterOldForest_"
    
                if Fn_帮助是否结束(_Boss1)==1  then 
                    L离开队伍(1)
                    L信息("完成帮助...")
                else 
                    if Fn_前往寻找BOSSEx(_Boss1)==0     then 
                        Fn_前往指定地图("葛瑞爾林","葛瑞爾林_树怪")
                    end
                end                   
                 
            elseif _帮助内容==_需帮助BOSS_托維安       then 
      
                local _Boss1="Metadata/Monsters/TwilightOrderSoldiers/TwilightOrderGuardBoss@"
    
                if Fn_帮助是否结束(_Boss1)==1  then 
                    L离开队伍(1)
                    L信息("完成帮助...")
                else 
                    Q_4_阿拉塔斯_托維安()
                    if 地图Ptr.地图名称==G阿拉塔斯		then 
                        Fn_前往指定地图(G阿拉塔斯,"阿拉塔斯_BOSS",1)	
                    else 
                        Fn_前往指定地图(G阿拉塔斯2,"阿拉塔斯_BOSS",1)	
                    end 
                end                 
 
            elseif _帮助内容==_需帮助BOSS_烏托邦的第一使者       then 
      
                local _Boss1="TwilightOrderExcavationOverlord/TwilightOrderOverlord@"
    
                if Fn_帮助是否结束(_Boss1)==1  then 
                    L离开队伍(1)
                    L信息("完成帮助...")
                else 
                  --  Q_4_挖掘_烏托邦的第一使者()
                    if Fn_前往寻找BOSSEx(_Boss1)==0     then 
                        Fn_前往指定地图(G挖掘,"挖掘_BOSS",1)	
                    end
                end                 
            elseif _帮助内容==_需帮助BOSS_火噬農地_烏托邦的第一使者       then 
      
                local _Boss1="Metadata/Monsters/Hags/UrchinHagBossHagBattleInterlude@"
                local _Boss2="Metadata/Monsters/IgnagdukBogWitch/IgnagdukBogWitchHagBattleInterlude@"
                if Fn_帮助是否结束(_Boss1,2)==1 or  Fn_帮助是否结束(_Boss2,2)==1 then 
                    L离开队伍(1)
                    L信息("完成帮助...")
                else 
               
                    if Fn_前往寻找BOSSEx(_Boss1)==0     then 
                        Fn_前往指定地图(G瑟雷之石,"",0)		
                    end
                end       
                
            elseif _帮助内容==_需帮助BOSS_暗黑迷雾BOSS       then 
      
                local _Boss1="Metadata/Monsters/LeagueAffliction/JourneyEndAfflictionDemonBoss"
 
                if Fn_帮助是否结束(_Boss1)==1 then 
                    L离开队伍(1)
                    L信息("完成帮助...")
                else 
                    if Fn_前往寻找BOSSEx(_Boss1)==0     then 
                         Fn_前往指定地图(G旅程結束,"旅程結束_NPC任务点1",1)	
                    end
                end                     
            elseif _帮助内容==_需帮助BOSS_龍蜥濕地_BOSS       then 
      
                local _Boss1="Metadata/Monsters/ChimeraWetlandsBoss/ChimeraWetlandsBoss"
 
                if Fn_帮助是否结束(_Boss1)==1 then 
                    L离开队伍(1)
                    L信息("完成帮助...")
                else 
                    if Fn_前往寻找BOSSEx(_Boss1)==0     then 
                      Fn_前往指定地图("龍蜥濕地","龍蜥濕地_BOSS")
                    end
                end         
            elseif _帮助内容==_需帮助BOSS_爾卡里庇護所BOSS       then 
      
                local _Boss1="Metadata/Monsters/Pirates/CaptainSandstorm_@"
 
                if Fn_帮助是否结束(_Boss1)==1 then 
                    L离开队伍(1)
                    L信息("完成帮助...")
                else 
                    if Fn_前往寻找BOSSEx(_Boss1)==0     then 

                        Fn_前往指定地图(G塞爾卡里庇護所,"塞爾卡里庇護所_BOSS",1) 
                    end
                end                    
            elseif _帮助内容==_需帮助BOSS_瓦斯提里郊區_BOSS       then 
      
                local _Boss1="Metadata/Monsters/HyenaMonster/RathbreakerBoss"
 
                if Fn_帮助是否结束(_Boss1)==1 then 
                    L离开队伍(1)
                    L信息("完成帮助...")
                else 
                    if Fn_前往寻找BOSSEx(_Boss1)==0     then 

                        Fn_前往指定地图("瓦斯提里郊區","瓦斯提里郊區_BOSS",1)		
                    end
                end                  
            elseif _帮助内容==_需帮助BOSS_迷雾之主       then 
       
                local _Boss1="Metadata/Monsters/VoodooKing/VoodooKingBoss"
 
                if Fn_帮助是否结束(_Boss1)==1 then 
                    L离开队伍(1)
                    L信息("完成帮助...")
                else 
                    if Fn_前往寻找BOSSEx(_Boss1)==0     then 
                  
                        Q_迷雾之主()
                    end
                end                     
            elseif _帮助内容==_需帮助BOSS_凍結之爪拉卡爾       then 
       
                local _Boss1="Metadata/Monsters/ChaosGodOwlBoss/IcyOwlBoss@"
 
                if Fn_帮助是否结束(_Boss1)==1 then 
                    L离开队伍(1)
                    L信息("完成帮助...")
                else 
                    if Fn_前往寻找BOSSEx(_Boss1)==0     then 

                        Fn_前往指定地图(G冰川湖泊,"冰川湖泊_BOSS",1) 
                    end
                end                       
            elseif _帮助内容==_需帮助BOSS_白之亞瑪       then 
                local _Boss1="Metadata/Monsters/YamaBoss/YamaBoss@"

     
                local _Boss=L周围对象(_Boss1)
        
                if (_Boss.ID>0 and _Boss.HP==1) or Fn_帮助是否结束(_Boss1)==1 then 
                    L离开队伍(1)
                    L信息("完成帮助...")
                else 
                    if Fn_前往寻找BOSSEx(_Boss1)==0     then 
                        Fn_前往指定地图(G亡者之殿,"亡者之殿_BOSS",1)	
                    end
                end   
            end 

 
            L设置探索地图(探索类型.剧情刷图)

        end

    else 
        if 地图Ptr.位置==0      then 
            if 地图Ptr.地图名称==G瓦斯提里郊區      then 
                Fn_前往指定地图(G阿杜拉車隊,nil,nil,2,2)
            else 
               L返回城镇()
            end
        end 
    	L当前地图计时(4)
        L进入队伍()
    end
::Exit::
    return result
end

function  Fn_当前是否还处于BOSS战()
    local result=0
    local _BossName=L当前BOSS目标()
    if _BossName~=""        then
        local _Boss=L周围对象(_BossName)
        if _Boss.ID>0     then
            if _Boss.HP>0       then
                result=1
            end
        end
    else

    end
    return result
end
function Fn_是否需要召唤大号(地图Ptr)
    local result=1
    local _大号=L大号名称()

    if _大号~=""   and 地图Ptr.地图名称~=G河岸 then
        local 死亡次数=L单图累计死亡次数()

        local _BossName=L当前BOSS目标()

        if  死亡次数>g常规设置.死亡次数超过进行召唤大号   then
            L当前地图计时(4)
            if Fn_当前是否还处于BOSS战()==1  and 死亡次数>g常规设置.死亡次数超过进行召唤大号    then
                if L队员是否在附近()==1     then
                    L信息("大号已经就位...开始战斗")

                  --  L单图累计死亡次数(g常规设置.死亡次数超过进行召唤大号-1)
                    L地图是否完成(0)
                    result=0
                else

                   
                    L信息("当前死亡次数大于>="..死亡次数.. "召唤大号中.....")
                    Fn_召唤大号过来帮忙(G大号帮忙,地图Ptr)
                  

                end

            else
                --
       
                Fn_召唤大号过来帮忙()
                result=0
            end
        else
     
            Fn_召唤大号过来帮忙()

            result=0
        end
    else
        result=0
    end
    return result
end

function Fn_检查大号是否已经完成帮助()
    if L队伍人数()==0        then
        if G刚刚帮助过小号~=0       then 
            L单图累计死亡次数(0)
            G刚刚帮助过小号=0
            G等待大号过来=0
            G上次帮助的BOSS=""
        end
       
    end
end 

function Fn_检查帮忙BOSS是否已处于所在地图(BossName)

local result=0
local 地图Ptr=L地图信息()
    if BossName==_需帮助BOSS_鐵鏽之王  and 地图Ptr.地图名称==G赤谷     then 
        result=1
    elseif BossName==_需帮助BOSS_荊棘懼怪  and 地图Ptr.地图名称==G葛瑞爾林     then 
        result=1
    elseif BossName==_需帮助BOSS_配偶的墓室  and 地图Ptr.地图名称==G配偶的墓室     then 
        result=1
    elseif BossName==_需帮助BOSS_政務官陵墓  and 地图Ptr.地图名称==G政務官陵墓     then 
        result=1
    elseif BossName==_需帮助BOSS_墓碑BOSS  and 地图Ptr.地图名称==G不朽帝國之墓     then 
        result=1       
    elseif BossName==_需帮助BOSS_鴉鈴  and 地图Ptr.地图名称==G獵場     then 
        result=1            
    elseif BossName==_需帮助BOSS_劊子手  and 地图Ptr.地图名称==G奧格姆村     then 
        result=1    
    elseif BossName==_需帮助BOSS_迷雾之主  and 地图Ptr.地图名称==G弗雷索恩     then 
        result=1   
    elseif BossName==_需帮助BOSS_阿札克泥沼_BOSS  and 地图Ptr.地图名称==G阿札克泥沼     then 
        result=1   
    elseif BossName==_需帮助BOSS_赤谷BOSS  and 地图Ptr.地图名称==G赤谷     then 
        result=1         
    elseif BossName==_需帮助BOSS_纏縛陰林BOSS  and 地图Ptr.地图名称==G纏縛陰林     then 
        result=1     
    elseif BossName==_需帮助BOSS_一章狼王  and 地图Ptr.地图名称==G奧格姆宅第     then 
        result=1      
    elseif BossName==_需帮助BOSS_二章最后BOSS  and 地图Ptr.地图名称==G無畏隊先鋒     then 
        result=1     
    elseif BossName==_需帮助BOSS_瓦斯提里郊區_BOSS  and 地图Ptr.地图名称==G瓦斯提里郊區     then 
        result=1      
    elseif BossName==_需帮助BOSS_異界干擾女王卡巴拉_BOSS  and 地图Ptr.地图名称==G凱斯城     then 
        result=1     
    elseif BossName==_需帮助BOSS_掩埋神殿_凱斯之心_BOSS  and 地图Ptr.地图名称==G掩埋神殿     then 
        result=1    
    elseif BossName==_需帮助BOSS_骨坑_BOSS  and 地图Ptr.地图名称==G骨坑     then 
        result=1    
    elseif BossName==_需帮助BOSS_泰坦石窟BOSS  and 地图Ptr.地图名称==G泰坦石窟     then 
        result=1   
    elseif BossName==_需帮助BOSS_叛徒芭芭拉  and 地图Ptr.地图名称==G叛徒之路     then 
        result=1   
    elseif BossName==_需帮助BOSS_龍蜥濕地_BOSS  and 地图Ptr.地图名称==G龍蜥濕地     then 
        result=1   
    elseif BossName==_需帮助BOSS_莫頓礦坑_BOSS  and 地图Ptr.地图名称==G莫頓礦坑     then 
        result=1  
    elseif BossName==_需帮助BOSS_戴斯哈尖塔  and 地图Ptr.地图名称==G戴斯哈尖塔     then 
        result=1   
    elseif BossName==_需帮助BOSS_哈拉妮關口  and 地图Ptr.地图名称==G哈拉妮關口     then 
        result=1   
    elseif BossName==_需帮助BOSS_神威銀拳  and 地图Ptr.地图名称==G感染荒地     then 
        result=1   
    elseif BossName==_需帮助BOSS_多里亞尼的凱旋  and 地图Ptr.地图名称==G漆黑密室     then 
        result=1   
    elseif BossName==_需帮助BOSS_奧札爾Boss  and 地图Ptr.地图名称==G奧札爾     then 
        result=1  
    elseif BossName==_需帮助BOSS_太阳神殿BOSS  and 地图Ptr.地图名称==G科佩克神殿     then 
        result=1  
    elseif BossName==_需帮助BOSS_暗黑迷雾船长  and 地图Ptr.地图名称==G旅程結束     then 
        result=1  
    elseif BossName==_需帮助BOSS_暗黑迷雾BOSS  and 地图Ptr.地图名称==G旅程結束     then 
        result=1  
    elseif BossName==_需帮助BOSS_火山迷窟BOSS  and 地图Ptr.地图名称==G火山迷窟     then 
        result=1  
    elseif BossName==_需帮助BOSS_眼盲巨獸  and 地图Ptr.地图名称==G金氏島     then 
        result=1  
    elseif BossName==_需帮助BOSS_天之禍殃  and 地图Ptr.地图名称==G伯勞鳥之島     then 
        result=1  
    elseif BossName==_需帮助BOSS_大白鲨  and 地图Ptr.地图名称==G伯勞鳥之島     then 
        result=1  
    elseif BossName==_需帮助BOSS_海妖  and 地图Ptr.地图名称==G吟謠洞窟     then 
        result=1  
    elseif BossName==_需帮助BOSS_囚犯  and 地图Ptr.地图名称==G單獨禁閉     then 
        result=1  
   elseif BossName==_需帮助BOSS_托維安  and 地图Ptr.地图名称==G阿拉塔斯     then 
        result=1   
    elseif BossName==_需帮助BOSS_塔瓦凱  and 地图Ptr.地图名称==G部族之心     then 
        result=1  
    elseif BossName==_需帮助BOSS_烏托邦的第一使者  and 地图Ptr.地图名称==G挖掘     then 
        result=1  
    elseif BossName==_需帮助BOSS_火噬農地_烏托邦的第一使者  and 地图Ptr.地图名称==G火噬農地     then 
        result=1  
    elseif BossName==_需帮助BOSS_瑟雷之石_巨石阵BOSS  and 地图Ptr.地图名称==G瑟雷之石     then 
        result=1  
    elseif BossName==_需帮助BOSS_領主和夫人  and 地图Ptr.地图名称==G霍爾登宅第     then 
        result=1  
    elseif BossName==_需帮助BOSS_恐懼典獄長歐斯溫  and 地图Ptr.地图名称==G狼之要塞     then 
        result=1  
    elseif BossName==_需帮助BOSS_爾卡里庇護所BOSS  and 地图Ptr.地图名称==G塞爾卡里庇護所     then 
        result=1  
    elseif BossName==_需帮助BOSS_賈萊關口BOSS  and 地图Ptr.地图名称==G賈萊關口     then 
        result=1  
    elseif BossName==_需帮助BOSS_奇瑪水源地BOSS  and 地图Ptr.地图名称==G奇瑪水源地     then 
        result=1  
    elseif BossName==_需帮助BOSS_迷失長鋒萊塔拉  and 地图Ptr.地图名称==G庫萊亞村     then 
        result=1  
    elseif BossName==_需帮助BOSS_狂嗥之風  and 地图Ptr.地图名称==G狂嗥洞穴     then 
        result=1  
    elseif BossName==_需帮助BOSS_凍結之爪拉卡爾  and 地图Ptr.地图名称==G冰川湖泊     then 
        result=1  
    elseif BossName==_需帮助BOSS_守護者風暴血獸  and 地图Ptr.地图名称==G蝕刻溪谷     then 
        result=1  
    elseif BossName==_需帮助BOSS_佐林和澤莉娜  and 地图Ptr.地图名称==G庫阿西克寶庫     then 
        result=1  
    elseif BossName==_需帮助BOSS_蝎子跟毒虫  and 地图Ptr.地图名称==G卡里交匯道     then 
        result=1  
    elseif BossName==_需帮助BOSS_白之亞瑪  and 地图Ptr.地图名称==G亡者之殿     then 
        result=1  
  
    end 

    return result
end 
function Fn_BOSS战需要召唤大号(BossName,n跟随)
local result=1

    if Fn_检查帮忙BOSS是否已处于所在地图(BossName)==1       then 
        n跟随= n跟随 or 0
        local _大号=L大号名称()
        local 地图Ptr=L地图信息()
        if _大号~=""   then
        
            local 死亡次数=L单图累计死亡次数()
            if  死亡次数>g常规设置.死亡次数超过进行召唤大号   then
    
        
                G等待大号过来=1

                L当前地图计时(4)

                if L队员是否在附近()==1     then
                    L信息("大号已经就位...等待..")
                    G刚刚帮助过小号=1
                    --  L单图累计死亡次数(g常规设置.死亡次数超过进行召唤大号-1)
                    L地图是否完成(0)
                    if n跟随==0     then 
                        L关闭地图探索(1)
                    end
                    result=0
                else
                    L信息("当前死亡次数大于>="..死亡次数.. "召唤大号中....."..BossName)
                    Fn_召唤大号过来帮忙(BossName,地图Ptr)
                    L关闭地图探索(1)
                end
                result=0

            end
    
        
        end
    end
::Exit::
    return result
end


function Fn_自动兑换通货()
    local reuslt=0
    if  g当前兑换通货是否已经执行==0    and  g每次兑换容错次数<15    then
        local 自身=L自身信息()
        if 自身.金币>500000      then 
            if   L满足兑换条件()>0		then
                reuslt=1
                if L执行间隔("兑换通货",1000)==1        then
                    g每次兑换容错次数=g每次兑换容错次数+1
                    L信息("兑换通货计数: "..g每次兑换容错次数)
                end

                if L兑换通货可视()==1       then
                    if L取回订单物品()==1			then --

                    else
                        if L兑换通货()~=1          then --
                            g当前兑换通货是否已经执行=1
                            L清空兑换记录()
                        else 
                            L延时(5000)
                            L取回订单物品()
                        end
            
                    --  g每次兑换容错次数=g每次兑换容错次数+1
                    end

                else
                    Fn_打开艾瓦通货兑换框()
                    L信息("打开安潔中...")
                end
            else
            --   if L取回订单物品()==1			then --

            --   else
                    g当前兑换通货是否已经执行=1
            --  end
            end
        else 
            L信息("金币低于50W  跳过通货兑换....")
        end 

    end
    return reuslt
end



function Fn_城镇卡位处理(地图Ptr)

    local n计数=L城镇无动作计时()
    --L信息("@@@@"..n计数)
    if n计数>15     then 
        if 地图Ptr.地图名称==G皆伐營地      then 
   
            L寻路(355,387)
            L延时(1500)
            L走路(355,387)
            L延时(1500)
            L城镇无动作计时(0)
        end 
    end 

end 

function Fn_藏身处卡位处理(地图Ptr)

    if  地图Ptr.位置==2     then 
        local n计数=L城镇无动作计时()
        if n计数>60     then 
            if L执行间隔("藏身处卡位间隔处理",3000)==1      then 
                L随机方向移动()
                L城镇无动作计时(50)
            end
        end 
    end

end 


function Fn_指定部位进行补抗操作()
local result=0
local _属性=L属性面板()
L信息("当前抗性达标: ".._属性.符合抗性数量.." 项  属性平均低分".. tonumber(_属性.平均低分))
    if L提升身上装备()==0       then 
        local _镶嵌符文=""
        local _部位=L参与补抗部位()

        if _属性.火炕<75        then 
            L信息("当前火炕: ".._属性.火炕.." 未达标.使用 高階沙漠符文 进行弥补，请确保背包或者仓库有该符文...")
            if _镶嵌符文~=""        then 
                _镶嵌符文=_镶嵌符文..",高階沙漠符文"
            -- _部位=_部位..",手套"
            else 
                _镶嵌符文="高階沙漠符文"
            -- _部位="鞋子"
            end

            
        end 
        if _属性.冰抗<75        then 
            L信息("当前冰抗: ".._属性.冰抗.." 未达标.使用 高階冰川符文 进行弥补，请确保背包或者仓库有该符文...")     
            if _镶嵌符文~=""        then 
                _镶嵌符文=_镶嵌符文..",高階冰川符文"
                --_部位=_部位..",手套"
            else 
                _镶嵌符文="高階冰川符文"
                --_部位="鞋子"
            end
        end

        if _属性.电抗<75        then 
            L信息("当前电抗: ".._属性.电抗.." 未达标.使用 高階暴風符文 进行弥补，请确保背包或者仓库有该符文...")           
            if _镶嵌符文~=""        then 
                _镶嵌符文=_镶嵌符文..",高階暴風符文"
                --_部位=_部位..",手套"
            else 
                _镶嵌符文="高階暴風符文"
                --_部位="鞋子"
            end
        end
        if _属性.混沌抗<75        then 
            L信息("当前混沌抗: ".._属性.混沌抗.." 未达标.使用 特卡蒂靈魂核心 进行弥补，请确保背包或者仓库有该符文...")    
            if _镶嵌符文~=""        then 
                _镶嵌符文=_镶嵌符文..",特卡蒂靈魂核心"
                --_部位=_部位..",手套"
            else 
                _镶嵌符文="特卡蒂靈魂核心"
                --_部位="鞋子"
            end
        end
        if _镶嵌符文~=""        then 
            result=1
        end 
        L镶嵌符文到身上(_部位,_镶嵌符文)
    end
    return result
end 

function Fn_当前是否执行过全身补抗操作()

	local Isok=Ltonumber(L读取配置(G全身补抗))

    return Isok   
end
function Fn_凑装备并装备异界装()
    local result=0

    if Fn_当前是否执行过全身补抗操作()==1        then 
  
        if L提升身上装备()==0       then 
            if L全身镶嵌符文()==0       then 
                if L护身符涂油()==0     then 
                    if L装备天赋宝石()==0      then 
                        if Fn_更换技能宝石()==1         then --
                            L信息("当前换装全部完成...准备切换一体化开始执行异界...")
                            result=1
                        else 
                            L信息("更换技能宝石中...")
                        end
                    else 
                        L信息("正在装备天赋宝石...")
                    end
                else 
                    L信息("正在进行护身符涂油...")
                end
            else 
                L信息("正在进行镶嵌符文....")
            end
        else 
            L信息("正在进行全是装备提升品质-打孔等等...")
        end 

    else 
        if L凑装穿到身上()==0       then 
        
            if L开始凑装()==1        then 
                L信息("凑装成功...")
                if Fn_指定部位进行补抗操作()==0    then 
                    L信息("完成补抗操作。当前全身抗性已经达标")
                    
                    L更新配置(G全身补抗,1)
                
                end 
            else
                L信息("凑装搜索中....")
            end
        else 
            L信息("开始将凑出来的装备穿到身上....")
        end 
    end 
    return result
end 

function Fn_更换技能宝石(isQx)
local result=1
    if   L宝石打孔()==1			then --
        L信息("宝石打孔中")

        result=0
    elseif  L自动镶嵌宝石()==1		then --
        L信息("自动镶嵌宝石")
  
        result=0
       
    elseif  L自动升级宝石()==1		then --
        L信息("自动升级宝石")
  
        result=0

    elseif   L提升技能品质()==1		then --
        L信息("提升技能品质")

        result=0
    else 
        if L技能是否镶嵌完成()==0       then 
            result=0
        end 
    end

    return result
end
function 全自动凑装流程()
    g循环状态=1
    L加载配置_一体化()
    G自动提升一次战力=0

    while To(500)==1 do
        if	 Fn_包满回城()==1	or  G切换配置包满处理==0		then --
			if	Fn_藏身处物品处理()==1			then --
				L信息("背包物品处理")
                goto Contiune
           --elseif Fn_返回城镇补充药剂(地图Ptr)==1			then --
                   
            
         
            else 
                G切换配置包满处理=1
			end

        else 
            if Fn_读取仓库信息()==0 then
                -- body
                L信息("当前正在读取仓库信息")
                goto Contiune
            end
    
            if  Fn_当前是否存在公会仓库()==1 and Fn_读取公会仓库信息()==0 then
                -- body
                L信息("当前正在读取公会仓库信息")
                goto Contiune
            end
        end
        if L自动加点天赋(1)==1          then --
            if Fn_凑装备并装备异界装()==1           then --
                L信息("当前异界步骤基本已经完成..请做最后的换装")
                break
            else 
            
            end 

           
        else 
            L信息("正在加点天赋中....")
        end 
 ::Contiune::    

     
    end 


end
function Fn_切换配置_重置天赋()
local result=0
 
   if  g常规设置.切换配置等级>0  and g常规设置.切换配置名称~="" and g常规设置.切换配置名称~=L已选配置名()   then 
        local _自身=L自身信息()

        if _自身.等级>=g常规设置.切换配置等级        then 
      
            result=1
            if  _自身.金币>30*10000         then 
                if	 Fn_包满回城(4,4)==1		then --
                    D重置状态()
                    L信息("需要处理背包...")
                    if	Fn_藏身处物品处理()==1		then --
                    
                        
                    else 
                        if g常规设置.切换配置时重置当前天赋==1      then 
                            if  L可视UI(UI_可视偏移.UI异界天赋)==1     or Fn_对话(天赋NPC,"重置天賦點數")==1    then
                                L重置天赋()
                                L更换配置(g常规设置.切换配置名称)
                                L信息("切换配置："..g常规设置.切换配置名称)
                                L更改脚本("#自动异界换装#.lua")
                                G切换配置包满处理=1
                                LEsc()
                            end
                        else 
                            L更换配置(g常规设置.切换配置名称)
                            L信息("切换配置："..g常规设置.切换配置名称)
                            L更改脚本("#自动异界换装#.lua")
                            G切换配置包满处理=1
                            LEsc()
                        end
                    end
                else 
                    if g常规设置.切换配置时重置当前天赋==1      then 
                        if  L可视UI(UI_可视偏移.UI异界天赋)==1     or Fn_对话(天赋NPC,"重置天賦點數")==1    then
                            L重置天赋()
                            L更换配置(g常规设置.切换配置名称)
                            L信息("切换配置："..g常规设置.切换配置名称)
                            L更改脚本("#自动异界换装#.lua")
                            G切换配置包满处理=1
                            LEsc()
                        end
                    else 
                        L更换配置(g常规设置.切换配置名称)
                        L信息("切换配置："..g常规设置.切换配置名称)
                        L更改脚本("#自动异界换装#.lua")
                        G切换配置包满处理=1
                        LEsc()
                    end
                end

            else 
                if g常规设置.切换配置时重置当前天赋==0     then 
                    L更换配置(g常规设置.切换配置名称)
                    L信息("切换配置："..g常规设置.切换配置名称)

                    L更改脚本("#自动异界换装#.lua")
                    G切换配置包满处理=1
                    LEsc()
                else 
                    result=0
                    L信息("当前金币少于30W 选择继续异界打金来洗天赋")
                end 
            end
        end 
   end 
   return result
end 


function Fn_根据常规设置切换配置及脚本()

    if   g常规设置.切换配置等级>0       then 
        local _自身=L自身信息()
        if _自身.等级>=g常规设置.切换配置等级       then 
            if g常规设置.切换配置名称~=""       then 
            L更换配置(g常规设置.切换配置名称)
            L信息("切换配置："..g常规设置.切换配置名称)
            end

            if g常规设置.切换脚本~=""       then 

                L更改脚本(g常规设置.切换脚本)
                L信息("切换脚本："..g常规设置.切换脚本)
            end 
        end
    end
end 


function Fn_剧情完成后根据常规设置切换配置及脚本()



    if g常规设置.切换配置名称~=""       then 
        L更换配置(g常规设置.切换配置名称)
        L信息("切换配置："..g常规设置.切换配置名称)

    end

    if g常规设置.切换脚本~=""       then 

        L更改脚本(g常规设置.切换脚本)
        L信息("切换脚本："..g常规设置.切换脚本)
    else 
        L更改脚本("#切换#自动补等级.lua")
        L信息("切换脚本：#切换#自动补等级.lua")
        
    end 
     

end 


function Fn_节点回城(nvale)
    local result=0
    nvale = nvale or 0
    local 自身=L自身信息()
    if 回城节点1==自身.等级	 and 已经执行回城1==0	then 
        if nvale==1     then 
            已经执行回城1=1
        end 
        result=1
    elseif 回城节点2==自身.等级	and 已经执行回城2==0		then 
        if nvale==1     then 
            已经执行回城2=1
        end 
        result=1
    end 
    return result
end 

function Fn_藏身处领取NPC奖励(className,对话内容,选择奖励)

	className = className or "Hideout/Doryani"
--Metadata/NPC/Hideout/BloodPriestFemale
	local nPage = 0
	对话内容= 对话内容 or "獎勵,取得,拿取"
	选择奖励 =选择奖励 or "知識之,祭祀碑牌"

    local sz执行="累加间隔奖励"
	local result=1
	local _npc=L周围对象(className)
    if g全局记录变量.领取NPC奖励>=3      then 
        className = "BloodPriestFemale"
    end
    if g全局记录变量.领取NPC奖励>6      then 
        return 0
    end 

	if  _npc.ID>0	then 
	
   
		if L可视UI(UI_可视偏移.UI任务奖励框)==1 then
    
			L领取奖励(选择奖励,nPage)
            if L执行间隔(sz执行,1000)==1    then 
                g全局记录变量.领取NPC奖励=g全局记录变量.领取NPC奖励+1
            end 
		else 
			if _npc.距离>2.8	 then
				L寻路(_npc.X,_npc.Y)
             
                -- if L执行间隔(sz执行,1000)==1    then 
                --     g全局记录变量.领取NPC奖励=g全局记录变量.领取NPC奖励+1
                -- end 
			else 
        
				 L点击对象(_npc.ID)
                L延时(1000)
                L对话(对话内容)
                L延时(1000)
                L领取奖励(选择奖励,nPage)
                L延时(1000)
     
				
                if L执行间隔(sz执行,1000)==1    then 
                    g全局记录变量.领取NPC奖励=g全局记录变量.领取NPC奖励+3 
                end 
			end

		end
	else 
        if L执行间隔(sz执行,1000)==1    then 
		    g全局记录变量.领取NPC奖励=g全局记录变量.领取NPC奖励+6
        end
        result=0
	end
    L信息("@@领取次数: ".. g全局记录变量.领取NPC奖励)
	return result
end 


function Fn_前往捕捉灵体(地图Ptr)
    local ret=0
    local _灵体信息=L召唤灵体信息()
    if _灵体信息.所在地图~=""       then 
        ret=1
        if G成功捕捉灵体后<=0       then 
        
            G成功捕捉灵体后=地图Ptr.章节
            L更新配置(G捕捉灵体记录,G成功捕捉灵体后)
        end 
        L信息("发现当前有灵体还未捕捉...前往执行捕捉")
        Fn_前往指定地图(_灵体信息.所在地图)
        if L捕捉灵体(_灵体信息.ID,_灵体信息.灵体名称,_灵体信息.所需精魂)==1     then 
            L关闭地图探索(1)
        else 
            L关闭地图探索()
        end
        L设置探索地图(2)
    else 

        if G成功捕捉灵体后<0       then 
            G成功捕捉灵体后=Ltonumber(L读取配置(G捕捉灵体记录))
         

            if G成功捕捉灵体后==-1      then 
                L更新配置(G捕捉灵体记录,0)
                G成功捕捉灵体后=0
            end 
        end 

        if G成功捕捉灵体后>0        then 
         
            if 地图Ptr.章节~=G成功捕捉灵体后    then 
                if 地图Ptr.位置==0      then 
                    L返回城镇()
                else
                    Fn_传送到指定章节(G成功捕捉灵体后,1)
                end
   
            else 
                L更新配置(G捕捉灵体记录,0)
                G成功捕捉灵体后=0
            end 
        end 
    end 
    return ret
end




function Fn_完整洗图流程()
local _洗图步骤="洗图步骤"
	if g常规设置.是否开启洗图功能==1	and g深渊洗图完成==0	then 
		while To(200)==1 do
			local 地图Ptr=L地图信息()

			if L返回步骤(_洗图步骤)==0		then 
				local ret=L地图上基底()
				if ret==0		then 
					g当前兑换通货是否已经执行=0    
					g每次兑换容错次数=0
					L信息("材料不足..前往通货兑换购买..请在通货兑换页设置你要购买的材料....")
				elseif ret==3	or 地图Ptr.位置==5	then  
					L设置步骤(_洗图步骤,1)
				end 
			elseif L返回步骤(_洗图步骤)==1		then 
				if L是否还需解密地图()==1		then 
					L前往解密地图()
				else 
					if 地图Ptr.位置~=2	 then
						L返回藏身处()
					else 
		
						if L解密后涂油()==0		then 
							L设置步骤(_洗图步骤,2)
						end 
					end
				end 
		
		
			elseif L返回步骤(_洗图步骤)==2		then 
				if L解密后瓦尔()==0		then 
					L设置步骤(_洗图步骤,3)
				end 
			elseif L返回步骤(_洗图步骤)==3		then 
				if L解密后瓦尔()==0		then 
					L设置步骤(_洗图步骤,4)
				end 
			elseif L返回步骤(_洗图步骤)==4		then 
				if  g常规设置.存入洗好的地图时不执行物品处理==1 or Fn_处理仅存仓()==0	then 
					L设置步骤(_洗图步骤,5)
				end 
			elseif L返回步骤(_洗图步骤)==5		then 
				if L完成洗图后存仓()==0		then 
					L设置步骤(_洗图步骤,6)			
				end 
			elseif L返回步骤(_洗图步骤)==6		then 
				if 地图Ptr.位置~=2	 then
					L返回藏身处()
				else 
					L设置步骤(_洗图步骤,0)	
				end 
			else 
				L设置步骤(_洗图步骤,0)	
				g深渊洗图完成=1
			end 
		
		end
	else 
		return 0
	end
	return 1
end 