少年修仙传客户端代码仓库
client_Wu Xijin
2019-04-28 17c684a98dd8811fd22ced8da1590e08d3bc4831
Merge branch 'master' into ViewOtherPlayer
48个文件已修改
1315 ■■■■■ 已修改文件
Core/GameEngine/Model/Config/ActorShowConfig.cs 609 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/ActorShowConfig.cs.meta 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/Process/PN_AttackCount.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/Process/PN_AutoAI.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/Process/PN_BeAttackCount.cs 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/Process/PN_CastSkill.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/Process/PN_CommonAttack.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/Process/PN_Die.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/Process/PN_HpPer.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/Process/PN_LockHp.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/Process/PN_OpenDialog.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/Process/PN_PlayEffect.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/Process/PN_ShowMotion.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/Process/PN_StartPlayerAI.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/Process/PN_StopAI.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/Process/PN_StopEffect.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/Process/PN_WaitTime.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/HeroBehaviour.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_NpcClientFightNorm.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_NpcFightBoss.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GActorPlayerBase.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/MapTransferUtility.cs 125 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/PreFightMission.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Stage/Dungeon/AdventureStage.cs 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/ActorShowConfigWrap.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Alchemy/AlchemyDrugWin.cs 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Alchemy/AlchemyModel.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/BossShow/BossShowModel.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/BossShow/ShowActor.cs 83 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonFightWin.cs 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/TargetBriefInfoWin.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyDemonKingModel.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyGrassModel.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionEntrancePanel.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionIncidentBehaviour.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionIncidentPanel.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/ItemModel.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/FunctionForecastTip.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/FunctionForecastWin.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/MainInterfaceWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/MainPositionTween.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/MapSwitchingBehaviour.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Message/RichMoveEvent.cs 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Tip/ItemConfirmWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/HumanTreasureWin.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowBase/WindowCenter.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowJump/WindowJumpMgr.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/RuntimeLogUtility.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/ActorShowConfig.cs
@@ -1,298 +1,311 @@
//--------------------------------------------------------
//    [Author]:           Fish
//    [  Date ]:           Thursday, February 14, 2019
//--------------------------------------------------------
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System;
using UnityEngine;
[XLua.LuaCallCSharp]
public partial class ActorShowConfig
{
    public readonly int ID;
    public readonly int NpcID;
    public readonly int MapID;
    public readonly int line;
    public readonly int[] showNpcs;
    public readonly int length;
    public readonly int showNameTime;
    public readonly int BindMissionID;
    public readonly int type;
    public readonly int[] scale;
    public readonly int[] NpcFace;
    public readonly int[] PosX;
    public readonly int[] PosY;
    public readonly int shadow;
    public readonly int effect;
    public readonly int uieffect;
    public readonly string[] mob;
    public readonly string cam;
    public readonly int[] Height;
    public readonly int DialogueTime;
    public readonly int Dialogue;
    public readonly int soundId;
    public readonly int soundTime;
    public readonly int step;
    public ActorShowConfig()
    {
    }
    public ActorShowConfig(string input)
    {
        try
        {
            var tables = input.Split('\t');
            int.TryParse(tables[0],out ID);
            int.TryParse(tables[1],out NpcID);
            int.TryParse(tables[2],out MapID);
            int.TryParse(tables[3],out line);
            string[] showNpcsStringArray = tables[4].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
            showNpcs = new int[showNpcsStringArray.Length];
            for (int i=0;i<showNpcsStringArray.Length;i++)
            {
                 int.TryParse(showNpcsStringArray[i],out showNpcs[i]);
            }
            int.TryParse(tables[5],out length);
            int.TryParse(tables[6],out showNameTime);
            int.TryParse(tables[7],out BindMissionID);
            int.TryParse(tables[8],out type);
            string[] scaleStringArray = tables[9].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
            scale = new int[scaleStringArray.Length];
            for (int i=0;i<scaleStringArray.Length;i++)
            {
                 int.TryParse(scaleStringArray[i],out scale[i]);
            }
            string[] NpcFaceStringArray = tables[10].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
            NpcFace = new int[NpcFaceStringArray.Length];
            for (int i=0;i<NpcFaceStringArray.Length;i++)
            {
                 int.TryParse(NpcFaceStringArray[i],out NpcFace[i]);
            }
            string[] PosXStringArray = tables[11].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
            PosX = new int[PosXStringArray.Length];
            for (int i=0;i<PosXStringArray.Length;i++)
            {
                 int.TryParse(PosXStringArray[i],out PosX[i]);
            }
            string[] PosYStringArray = tables[12].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
            PosY = new int[PosYStringArray.Length];
            for (int i=0;i<PosYStringArray.Length;i++)
            {
                 int.TryParse(PosYStringArray[i],out PosY[i]);
            }
            int.TryParse(tables[13],out shadow);
            int.TryParse(tables[14],out effect);
            int.TryParse(tables[15],out uieffect);
            mob = tables[16].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
            cam = tables[17];
            string[] HeightStringArray = tables[18].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
            Height = new int[HeightStringArray.Length];
            for (int i=0;i<HeightStringArray.Length;i++)
            {
                 int.TryParse(HeightStringArray[i],out Height[i]);
            }
            int.TryParse(tables[19],out DialogueTime);
            int.TryParse(tables[20],out Dialogue);
            int.TryParse(tables[21],out soundId);
            int.TryParse(tables[22],out soundTime);
            int.TryParse(tables[23],out step);
        }
        catch (Exception ex)
        {
            DebugEx.Log(ex);
        }
    }
    static Dictionary<string, ActorShowConfig> configs = new Dictionary<string, ActorShowConfig>();
    public static ActorShowConfig Get(string id)
    {
        if (!inited)
        {
            Debug.Log("ActorShowConfig 还未完成初始化。");
            return null;
        }
        if (configs.ContainsKey(id))
        {
            return configs[id];
        }
        ActorShowConfig config = null;
        if (rawDatas.ContainsKey(id))
        {
            config = configs[id] = new ActorShowConfig(rawDatas[id]);
            rawDatas.Remove(id);
        }
        return config;
    }
    public static ActorShowConfig Get(int id)
    {
        return Get(id.ToString());
    }
    public static List<string> GetKeys()
    {
        var keys = new List<string>();
        keys.AddRange(configs.Keys);
        keys.AddRange(rawDatas.Keys);
        return keys;
    }
    public static List<ActorShowConfig> GetValues()
    {
        var values = new List<ActorShowConfig>();
        values.AddRange(configs.Values);
        var keys = new List<string>(rawDatas.Keys);
        foreach (var key in keys)
        {
            values.Add(Get(key));
        }
        return values;
    }
    public static bool Has(string id)
    {
        return configs.ContainsKey(id) || rawDatas.ContainsKey(id);
    }
    public static bool Has(int id)
    {
        return Has(id.ToString());
    }
    public static bool inited { get; private set; }
    protected static Dictionary<string, string> rawDatas = new Dictionary<string, string>();
    public static void Init(bool sync=false)
    {
        inited = false;
        var path = string.Empty;
        if (AssetSource.refdataFromEditor)
        {
            path = ResourcesPath.CONFIG_FODLER +"/ActorShow.txt";
        }
        else
        {
            path = AssetVersionUtility.GetAssetFilePath("config/ActorShow.txt");
        }
        var tempConfig = new ActorShowConfig();
        var preParse = tempConfig is IConfigPostProcess;
        if (sync)
        {
            var lines = File.ReadAllLines(path);
            if (!preParse)
            {
                rawDatas = new Dictionary<string, string>(lines.Length - 3);
            }
            for (int i = 3; i < lines.Length; i++)
            {
                try
                {
                    var line = lines[i];
                    var index = line.IndexOf("\t");
                    if (index == -1)
                    {
                        continue;
                    }
                    var id = line.Substring(0, index);
                    if (preParse)
                    {
                        var config = new ActorShowConfig(line);
                        configs[id] = config;
                        (config as IConfigPostProcess).OnConfigParseCompleted();
                    }
                    else
                    {
                        rawDatas[id] = line;
                    }
                }
                catch (System.Exception ex)
                {
                    Debug.LogError(ex);
                }
            }
            inited = true;
        }
        else
        {
            ThreadPool.QueueUserWorkItem((object _object) =>
            {
                var lines = File.ReadAllLines(path);
                if (!preParse)
                {
                    rawDatas = new Dictionary<string, string>(lines.Length - 3);
                }
                for (int i = 3; i < lines.Length; i++)
                {
                    try
                    {
                       var line = lines[i];
                        var index = line.IndexOf("\t");
                        if (index == -1)
                        {
                            continue;
                        }
                        var id = line.Substring(0, index);
                        if (preParse)
                        {
                            var config = new ActorShowConfig(line);
                            configs[id] = config;
                            (config as IConfigPostProcess).OnConfigParseCompleted();
                        }
                        else
                        {
                            rawDatas[id] = line;
                        }
                    }
                    catch (System.Exception ex)
                    {
                        Debug.LogError(ex);
                    }
                }
                inited = true;
            });
        }
    }
}
//--------------------------------------------------------
//    [Author]:           Fish
//    [  Date ]:           Saturday, April 27, 2019
//--------------------------------------------------------
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System;
using UnityEngine;
[XLua.LuaCallCSharp]
public partial class ActorShowConfig
{
    public readonly int ID;
    public readonly int NpcID;
    public readonly int MapID;
    public readonly int line;
    public readonly int[] showNpcs;
    public readonly int length;
    public readonly int showNameTime;
    public readonly int BindMissionID;
    public readonly int type;
    public readonly int[] scale;
    public readonly int[] NpcFace;
    public readonly int[] PosX;
    public readonly int[] PosY;
    public readonly int shadow;
    public readonly int[] effect;
    public readonly int uieffect;
    public readonly string[] mob;
    public readonly int[] clipActions;
    public readonly string cam;
    public readonly int[] Height;
    public readonly int DialogueTime;
    public readonly int Dialogue;
    public readonly int soundId;
    public readonly int soundTime;
    public readonly int step;
    public ActorShowConfig()
    {
    }
    public ActorShowConfig(string input)
    {
        try
        {
            var tables = input.Split('\t');
            int.TryParse(tables[0], out ID);
            int.TryParse(tables[1], out NpcID);
            int.TryParse(tables[2], out MapID);
            int.TryParse(tables[3], out line);
            string[] showNpcsStringArray = tables[4].Trim().Split(StringUtility.splitSeparator, StringSplitOptions.RemoveEmptyEntries);
            showNpcs = new int[showNpcsStringArray.Length];
            for (int i = 0; i < showNpcsStringArray.Length; i++)
            {
                int.TryParse(showNpcsStringArray[i], out showNpcs[i]);
            }
            int.TryParse(tables[5], out length);
            int.TryParse(tables[6], out showNameTime);
            int.TryParse(tables[7], out BindMissionID);
            int.TryParse(tables[8], out type);
            string[] scaleStringArray = tables[9].Trim().Split(StringUtility.splitSeparator, StringSplitOptions.RemoveEmptyEntries);
            scale = new int[scaleStringArray.Length];
            for (int i = 0; i < scaleStringArray.Length; i++)
            {
                int.TryParse(scaleStringArray[i], out scale[i]);
            }
            string[] NpcFaceStringArray = tables[10].Trim().Split(StringUtility.splitSeparator, StringSplitOptions.RemoveEmptyEntries);
            NpcFace = new int[NpcFaceStringArray.Length];
            for (int i = 0; i < NpcFaceStringArray.Length; i++)
            {
                int.TryParse(NpcFaceStringArray[i], out NpcFace[i]);
            }
            string[] PosXStringArray = tables[11].Trim().Split(StringUtility.splitSeparator, StringSplitOptions.RemoveEmptyEntries);
            PosX = new int[PosXStringArray.Length];
            for (int i = 0; i < PosXStringArray.Length; i++)
            {
                int.TryParse(PosXStringArray[i], out PosX[i]);
            }
            string[] PosYStringArray = tables[12].Trim().Split(StringUtility.splitSeparator, StringSplitOptions.RemoveEmptyEntries);
            PosY = new int[PosYStringArray.Length];
            for (int i = 0; i < PosYStringArray.Length; i++)
            {
                int.TryParse(PosYStringArray[i], out PosY[i]);
            }
            int.TryParse(tables[13], out shadow);
            string[] effectStringArray = tables[14].Trim().Split(StringUtility.splitSeparator, StringSplitOptions.RemoveEmptyEntries);
            effect = new int[effectStringArray.Length];
            for (int i = 0; i < effectStringArray.Length; i++)
            {
                int.TryParse(effectStringArray[i], out effect[i]);
            }
            int.TryParse(tables[15], out uieffect);
            mob = tables[16].Trim().Split(StringUtility.splitSeparator, StringSplitOptions.RemoveEmptyEntries);
            string[] clipActionsStringArray = tables[17].Trim().Split(StringUtility.splitSeparator, StringSplitOptions.RemoveEmptyEntries);
            clipActions = new int[clipActionsStringArray.Length];
            for (int i = 0; i < clipActionsStringArray.Length; i++)
            {
                int.TryParse(clipActionsStringArray[i], out clipActions[i]);
            }
            cam = tables[18];
            string[] HeightStringArray = tables[19].Trim().Split(StringUtility.splitSeparator, StringSplitOptions.RemoveEmptyEntries);
            Height = new int[HeightStringArray.Length];
            for (int i = 0; i < HeightStringArray.Length; i++)
            {
                int.TryParse(HeightStringArray[i], out Height[i]);
            }
            int.TryParse(tables[20], out DialogueTime);
            int.TryParse(tables[21], out Dialogue);
            int.TryParse(tables[22], out soundId);
            int.TryParse(tables[23], out soundTime);
            int.TryParse(tables[24], out step);
        }
        catch (Exception ex)
        {
            DebugEx.Log(ex);
        }
    }
    static Dictionary<string, ActorShowConfig> configs = new Dictionary<string, ActorShowConfig>();
    public static ActorShowConfig Get(string id)
    {
        if (!inited)
        {
            Debug.Log("ActorShowConfig 还未完成初始化。");
            return null;
        }
        if (configs.ContainsKey(id))
        {
            return configs[id];
        }
        ActorShowConfig config = null;
        if (rawDatas.ContainsKey(id))
        {
            config = configs[id] = new ActorShowConfig(rawDatas[id]);
            rawDatas.Remove(id);
        }
        return config;
    }
    public static ActorShowConfig Get(int id)
    {
        return Get(id.ToString());
    }
    public static List<string> GetKeys()
    {
        var keys = new List<string>();
        keys.AddRange(configs.Keys);
        keys.AddRange(rawDatas.Keys);
        return keys;
    }
    public static List<ActorShowConfig> GetValues()
    {
        var values = new List<ActorShowConfig>();
        values.AddRange(configs.Values);
        var keys = new List<string>(rawDatas.Keys);
        foreach (var key in keys)
        {
            values.Add(Get(key));
        }
        return values;
    }
    public static bool Has(string id)
    {
        return configs.ContainsKey(id) || rawDatas.ContainsKey(id);
    }
    public static bool Has(int id)
    {
        return Has(id.ToString());
    }
    public static bool inited { get; private set; }
    protected static Dictionary<string, string> rawDatas = new Dictionary<string, string>();
    public static void Init(bool sync = false)
    {
        inited = false;
        var path = string.Empty;
        if (AssetSource.refdataFromEditor)
        {
            path = ResourcesPath.CONFIG_FODLER + "/ActorShow.txt";
        }
        else
        {
            path = AssetVersionUtility.GetAssetFilePath("config/ActorShow.txt");
        }
        var tempConfig = new ActorShowConfig();
        var preParse = tempConfig is IConfigPostProcess;
        if (sync)
        {
            var lines = File.ReadAllLines(path);
            if (!preParse)
            {
                rawDatas = new Dictionary<string, string>(lines.Length - 3);
            }
            for (int i = 3; i < lines.Length; i++)
            {
                try
                {
                    var line = lines[i];
                    var index = line.IndexOf("\t");
                    if (index == -1)
                    {
                        continue;
                    }
                    var id = line.Substring(0, index);
                    if (preParse)
                    {
                        var config = new ActorShowConfig(line);
                        configs[id] = config;
                        (config as IConfigPostProcess).OnConfigParseCompleted();
                    }
                    else
                    {
                        rawDatas[id] = line;
                    }
                }
                catch (System.Exception ex)
                {
                    Debug.LogError(ex);
                }
            }
            inited = true;
        }
        else
        {
            ThreadPool.QueueUserWorkItem((object _object) =>
            {
                var lines = File.ReadAllLines(path);
                if (!preParse)
                {
                    rawDatas = new Dictionary<string, string>(lines.Length - 3);
                }
                for (int i = 3; i < lines.Length; i++)
                {
                    try
                    {
                        var line = lines[i];
                        var index = line.IndexOf("\t");
                        if (index == -1)
                        {
                            continue;
                        }
                        var id = line.Substring(0, index);
                        if (preParse)
                        {
                            var config = new ActorShowConfig(line);
                            configs[id] = config;
                            (config as IConfigPostProcess).OnConfigParseCompleted();
                        }
                        else
                        {
                            rawDatas[id] = line;
                        }
                    }
                    catch (System.Exception ex)
                    {
                        Debug.LogError(ex);
                    }
                }
                inited = true;
            });
        }
    }
}
Core/GameEngine/Model/Config/ActorShowConfig.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: ef8ad14c092549545a7623899eb26c2a
timeCreated: 1550121904
timeCreated: 1556351379
licenseType: Pro
MonoImporter:
  serializedVersion: 2
Fight/Actor/AI/Process/PN_AttackCount.cs
@@ -16,13 +16,22 @@
        m_Target.OnAttackObj += OnAttackObj;
#if UNITY_EDITOR
        Debug.LogFormat("开始检测NPC攻击次数, 需要攻击: {0} 次");
        if (RuntimeLogUtility.s_LogProcessInfo)
        {
            Debug.LogFormat("开始检测NPC攻击次数, 需要攻击: {0} 次");
        }
#endif
    }
    private void OnAttackObj(uint sid, int skillId)
    {
        m_AttackCount += 1;
#if UNITY_EDITOR
        if (RuntimeLogUtility.s_LogProcessInfo)
        {
            Debug.LogFormat("NPC攻击次数: {0} 次", m_AttackCount);
        }
#endif
    }
    public override bool IsOver()
Fight/Actor/AI/Process/PN_AutoAI.cs
@@ -3,7 +3,10 @@
    public override void Init()
    {
#if UNITY_EDITOR
        UnityEngine.Debug.LogFormat("恢复自动AI状态");
        if (RuntimeLogUtility.s_LogProcessInfo)
        {
            UnityEngine.Debug.LogFormat("恢复自动AI状态");
        }
#endif
    }
Fight/Actor/AI/Process/PN_BeAttackCount.cs
@@ -15,7 +15,10 @@
    {
        m_Target.OnAttacked += OnBeAttacked;
#if UNITY_EDITOR
        UnityEngine.Debug.LogFormat("开始计算被攻击次数");
        if (RuntimeLogUtility.s_LogProcessInfo)
        {
            UnityEngine.Debug.LogFormat("开始计算被攻击次数");
        }
#endif
    }
@@ -23,7 +26,10 @@
    {
        m_BeAttackCount += 1;
#if UNITY_EDITOR
        UnityEngine.Debug.LogFormat("被攻击次数: {0}", m_BeAttackCount);
        if (RuntimeLogUtility.s_LogProcessInfo)
        {
            UnityEngine.Debug.LogFormat("被攻击次数: {0}", m_BeAttackCount);
        }
#endif
    }
@@ -36,7 +42,10 @@
    {
        m_Target.OnAttacked -= OnBeAttacked;
#if UNITY_EDITOR
        UnityEngine.Debug.LogFormat("被攻击检测节点结束");
        if (RuntimeLogUtility.s_LogProcessInfo)
        {
            UnityEngine.Debug.LogFormat("被攻击检测节点结束");
        }
#endif
    }
Fight/Actor/AI/Process/PN_CastSkill.cs
@@ -10,7 +10,10 @@
    {
        m_Target.lockSkillID = param;
#if UNITY_EDITOR
        UnityEngine.Debug.LogFormat("进入释放技能: {0} 节点", param);
        if (RuntimeLogUtility.s_LogProcessInfo)
        {
            UnityEngine.Debug.LogFormat("进入释放技能: {0} 节点", param);
        }
#endif
    }
@@ -30,7 +33,10 @@
    {
        m_Target.lockSkillID = -1;
#if UNITY_EDITOR
        UnityEngine.Debug.LogFormat("{0} 技能释放结束", param);
        if (RuntimeLogUtility.s_LogProcessInfo)
        {
            UnityEngine.Debug.LogFormat("{0} 技能释放结束", param);
        }
#endif
    }
Fight/Actor/AI/Process/PN_CommonAttack.cs
@@ -9,7 +9,10 @@
    {
        m_Target.lockCommonAtk = true;
#if UNITY_EDITOR
        UnityEngine.Debug.LogFormat("开始锁定普攻");
        if (RuntimeLogUtility.s_LogProcessInfo)
        {
            UnityEngine.Debug.LogFormat("开始锁定普攻");
        }
#endif
    }
Fight/Actor/AI/Process/PN_Die.cs
@@ -16,7 +16,10 @@
            ClientSceneManager.Instance.NpcDead(m_Target.belongEventID, m_Target, m_Target.NpcConfig.NPCID);
        }
#if UNITY_EDITOR
        UnityEngine.Debug.LogFormat("强制对象死亡");
        if (RuntimeLogUtility.s_LogProcessInfo)
        {
            UnityEngine.Debug.LogFormat("强制对象死亡");
        }
#endif
    }
Fight/Actor/AI/Process/PN_HpPer.cs
@@ -12,7 +12,10 @@
    public override void Init()
    {
#if UNITY_EDITOR
        UnityEngine.Debug.LogFormat("开始等待血量下降到: {0}", m_Target.ActorInfo.RealMaxHp * m_Per);
        if (RuntimeLogUtility.s_LogProcessInfo)
        {
            UnityEngine.Debug.LogFormat("开始等待血量下降到: {0}", m_Target.ActorInfo.RealMaxHp * m_Per);
        }
#endif
    }
@@ -24,7 +27,10 @@
    public override void UnInit()
    {
#if UNITY_EDITOR
        UnityEngine.Debug.LogFormat("血量下降到: {0} 了", m_Target.ActorInfo.RealHp);
        if (RuntimeLogUtility.s_LogProcessInfo)
        {
            UnityEngine.Debug.LogFormat("血量下降到: {0} 了", m_Target.ActorInfo.RealHp);
        }
#endif
    }
Fight/Actor/AI/Process/PN_LockHp.cs
@@ -11,14 +11,20 @@
        {
            m_Target.LockHp(0);
#if UNITY_EDITOR
            UnityEngine.Debug.LogFormat("解除锁定血量");
            if (RuntimeLogUtility.s_LogProcessInfo)
            {
                UnityEngine.Debug.LogFormat("解除锁定血量");
            }
#endif
        }
        else
        {
            m_Target.LockHp(param * Constants.F_BETA);
#if UNITY_EDITOR
            UnityEngine.Debug.LogFormat("开始锁定血量: {0}", param * Constants.F_BETA);
            if (RuntimeLogUtility.s_LogProcessInfo)
            {
                UnityEngine.Debug.LogFormat("开始锁定血量: {0}", param * Constants.F_BETA);
            }
#endif
        }
    }
Fight/Actor/AI/Process/PN_OpenDialog.cs
@@ -27,7 +27,10 @@
            _hero.Behaviour.StopHandupAI();
        }
#if UNITY_EDITOR
        Debug.LogFormat("开始对话: {0}", param);
        if (RuntimeLogUtility.s_LogProcessInfo)
        {
            Debug.LogFormat("开始对话: {0}", param);
        }
#endif
        m_Target.isTalking = true;
    }
@@ -36,7 +39,10 @@
    {
        m_IsOver = true;
#if UNITY_EDITOR
        Debug.LogFormat("对话: {0} 结束", param);
        if (RuntimeLogUtility.s_LogProcessInfo)
        {
            Debug.LogFormat("对话: {0} 结束", param);
        }
#endif
    }
Fight/Actor/AI/Process/PN_PlayEffect.cs
@@ -9,7 +9,10 @@
    public sealed override void Init()
    {
#if UNITY_EDITOR
        UnityEngine.Debug.LogFormat("进入播放特效: {0} 节点", param);
        if (RuntimeLogUtility.s_LogProcessInfo)
        {
            UnityEngine.Debug.LogFormat("进入播放特效: {0} 节点", param);
        }
#endif
        m_Target.ProcessEffectDict[param] = SFXPlayUtility.Instance.PlayBattleEffect(param, m_Target);
    }
@@ -22,7 +25,10 @@
    public sealed override void UnInit()
    {
#if UNITY_EDITOR
        UnityEngine.Debug.LogFormat("{0} 特效播放结束", param);
        if (RuntimeLogUtility.s_LogProcessInfo)
        {
            UnityEngine.Debug.LogFormat("{0} 特效播放结束", param);
        }
#endif
    }
Fight/Actor/AI/Process/PN_ShowMotion.cs
@@ -25,7 +25,10 @@
        }
#if UNITY_EDITOR
        UnityEngine.Debug.LogFormat("开始播放动画: {0}", param);
        if (RuntimeLogUtility.s_LogProcessInfo)
        {
            UnityEngine.Debug.LogFormat("开始播放动画: {0}", param);
        }
#endif
        var _actorShow = ActorShowConfig.Get(param);
@@ -47,7 +50,10 @@
    public override void UnInit()
    {
#if UNITY_EDITOR
        UnityEngine.Debug.LogFormat("动画: {0} 播放结束", param);
        if (RuntimeLogUtility.s_LogProcessInfo)
        {
            UnityEngine.Debug.LogFormat("动画: {0} 播放结束", param);
        }
#endif
        m_Target.isTalking = false;
    }
Fight/Actor/AI/Process/PN_StartPlayerAI.cs
@@ -3,7 +3,10 @@
    public sealed override void Init()
    {
#if UNITY_EDITOR
        UnityEngine.Debug.LogFormat("恢复自动AI状态");
        if (RuntimeLogUtility.s_LogProcessInfo)
        {
            UnityEngine.Debug.LogFormat("恢复自动AI状态");
        }
#endif
        GA_Hero _hero = PlayerDatas.Instance.hero;
Fight/Actor/AI/Process/PN_StopAI.cs
@@ -9,6 +9,12 @@
    public sealed override void Init()
    {
        m_Target.isStopAI = (param == 1);
#if UNITY_EDITOR
        if (RuntimeLogUtility.s_LogProcessInfo)
        {
            UnityEngine.Debug.LogFormat("停止AI逻辑");
        }
#endif
    }
    public sealed override bool IsOver()
Fight/Actor/AI/Process/PN_StopEffect.cs
@@ -14,7 +14,10 @@
            SFXPlayUtility.Instance.Release(_sfx);
            m_Target.ProcessEffectDict.Remove(param);
#if UNITY_EDITOR
            UnityEngine.Debug.LogFormat("进入停止特效: {0} 节点", param);
            if (RuntimeLogUtility.s_LogProcessInfo)
            {
                UnityEngine.Debug.LogFormat("进入停止特效: {0} 节点", param);
            }
#endif
        }
    }
@@ -27,7 +30,10 @@
    public sealed override void UnInit()
    {
#if UNITY_EDITOR
        UnityEngine.Debug.LogFormat("{0} 特效停止结束", param);
        if (RuntimeLogUtility.s_LogProcessInfo)
        {
            UnityEngine.Debug.LogFormat("{0} 特效停止结束", param);
        }
#endif
    }
Fight/Actor/AI/Process/PN_WaitTime.cs
@@ -12,6 +12,12 @@
    public override void Init()
    {
        m_StartTime = Time.time;
#if UNITY_EDITOR
        if (RuntimeLogUtility.s_LogProcessInfo)
        {
            UnityEngine.Debug.LogFormat("开始等待时间 {0} 毫秒", param);
        }
#endif
    }
    public override bool IsOver()
@@ -22,6 +28,12 @@
    public override void UnInit()
    {
#if UNITY_EDITOR
        if (RuntimeLogUtility.s_LogProcessInfo)
        {
            UnityEngine.Debug.LogFormat("等待时间结束");
        }
#endif
    }
    public override void Update()
Fight/Actor/HeroBehaviour.cs
@@ -234,7 +234,7 @@
            }
        }
        if (PreFightMission.Instance.IsFinished() == false)
        if (!PreFightMission.Instance.IsFinished())
        {
            return;
        }
Fight/GameActor/GA_NpcClientFightNorm.cs
@@ -139,6 +139,8 @@
        lockHp = 0;
        isTalking = false;
        isStopAI = false;
        heroAttacked = false;
        AutoAI();
        if (m_ProcessManager == null)
@@ -148,8 +150,6 @@
        m_ProcessManager.Load(this);
        InitAI();
        heroAttacked = false;
    }
    protected virtual void InitAI()
Fight/GameActor/GA_NpcFightBoss.cs
@@ -79,7 +79,9 @@
    public override void RefreshLifeBar(ulong value)
    {
        var _hero = PlayerDatas.Instance.hero;
        if (_hero != null && _hero.SelectTarget == this)
        if ((_hero != null
          && _hero.SelectTarget == this)
          || ModelCenter.Instance.GetModel<HazyDemonKingModel>().IsInDungeon)
        {
            // 非选中状态下不刷新
            if (s_HpRefresh != null)
Fight/GameActor/GActorPlayerBase.cs
@@ -458,6 +458,13 @@
    #region 装备穿戴相关
    private GameObject m_ClothesModel;
    public GameObject ClothedModel
    {
        get
        {
            return m_ClothesModel;
        }
    }
    private GameObject m_WeaponModel;
    private GameObject m_SecondaryModel;
    private GameObject m_WingModel;
Fight/MapTransferUtility.cs
@@ -236,9 +236,10 @@
    {
        public int npcID;
        public int sid;
        public bool directTransfer;
    }
    public void MoveToNPC(int _npcID, int _sid = 0)
    public void MoveToNPC(int _npcID, int _sid = 0, bool direct = false)
    {
#if UNITY_EDITOR
        Debug.LogFormat("想要切换至目标npc: {0}", _npcID);
@@ -247,7 +248,8 @@
        var _data = new MoveToData
        {
            npcID = _npcID,
            sid = _sid
            sid = _sid,
            directTransfer = direct
        };
        StartCoroutine("CoMoveToNPC", _data);
    }
@@ -307,80 +309,87 @@
            // 判断是否在同一张地图中
            if (_npcLocation.mapId != PlayerDatas.Instance.baseData.MapID)
            {
                int _idx1 = m_TransMapLine.IndexOf(PlayerDatas.Instance.baseData.MapID);
                int _idx2 = m_TransMapLine.IndexOf(_npcLocation.mapId);
                bool _valid = true;
                if (_idx1 == -1)
                if (data.directTransfer)
                {
                    _valid = false;
                    Debug.LogErrorFormat("寻找的地图ID不在线路中: {0}", PlayerDatas.Instance.baseData.MapID);
                    _MoveToNPC(NpcID, sid);
                }
                if (_idx2 == -1)
                else
                {
                    _valid = false;
                    Debug.LogErrorFormat("寻找的地图ID不在线路中: {0}", _npcLocation.mapId);
                }
                if (_valid)
                {
                    int _nextMapID = -1;
                    // 顺序
                    if (_idx2 > _idx1)
                    int _idx1 = m_TransMapLine.IndexOf(PlayerDatas.Instance.baseData.MapID);
                    int _idx2 = m_TransMapLine.IndexOf(_npcLocation.mapId);
                    bool _valid = true;
                    if (_idx1 == -1)
                    {
                        _nextMapID = m_TransMapLine[_idx1 + 1];
                        _valid = false;
                        Debug.LogErrorFormat("寻找的地图ID不在线路中: {0}", PlayerDatas.Instance.baseData.MapID);
                    }
                    // 逆序
                    else
                    if (_idx2 == -1)
                    {
                        _nextMapID = m_TransMapLine[_idx1 - 1];
                        _valid = false;
                        Debug.LogErrorFormat("寻找的地图ID不在线路中: {0}", _npcLocation.mapId);
                    }
                    // 先寻找传送点
                    int _transportID = GetNextTransportID(PlayerDatas.Instance.baseData.MapID,
                                                          _nextMapID);
                    if (_transportID != -1)
                    if (_valid)
                    {
                        if (_curStage)
                        int _nextMapID = -1;
                        // 顺序
                        if (_idx2 > _idx1)
                        {
                            Vector3 _moveToPos;
                            if (_curStage.TryGetTransportPosition(_transportID, out _moveToPos))
                            _nextMapID = m_TransMapLine[_idx1 + 1];
                        }
                        // 逆序
                        else
                        {
                            _nextMapID = m_TransMapLine[_idx1 - 1];
                        }
                        // 先寻找传送点
                        int _transportID = GetNextTransportID(PlayerDatas.Instance.baseData.MapID,
                                                              _nextMapID);
                        if (_transportID != -1)
                        {
                            if (_curStage)
                            {
                                while (true)
                                Vector3 _moveToPos;
                                if (_curStage.TryGetTransportPosition(_transportID, out _moveToPos))
                                {
                                    if (PathFinder.WalkAble(_hero.Pos, _moveToPos))
                                    while (true)
                                    {
                                        break;
                                        if (PathFinder.WalkAble(_hero.Pos, _moveToPos))
                                        {
                                            break;
                                        }
                                        var _nextPos = ClientSceneManager.Instance.GetTransPoint(_hero.Pos, _moveToPos);
                                        // 如果找到的下一个点
                                        if (!PathFinder.WalkAble(_hero.Pos, _nextPos)
                                         || _nextPos == Vector3.zero)
                                        {
                                            Debug.LogErrorFormat("移动至NPC: {0} 时找不到任何跳跃点", NpcID);
                                            break;
                                        }
                                        float _dis = MathUtility.DistanceSqrtXZ(_hero.Pos, _nextPos);
                                        while (_dis > 0.01f)
                                        {
                                            _dis = MathUtility.DistanceSqrtXZ(_hero.Pos, _nextPos);
                                            _hero.MoveToPosition(_nextPos);
                                            yield return null;
                                        }
                                        while (!GA_Hero.s_Flying)
                                        {
                                            yield return null;
                                        }
                                        while (GA_Hero.s_Flying)
                                        {
                                            yield return null;
                                        }
                                    }
                                    var _nextPos = ClientSceneManager.Instance.GetTransPoint(_hero.Pos, _moveToPos);
                                    // 如果找到的下一个点
                                    if (!PathFinder.WalkAble(_hero.Pos, _nextPos)
                                     || _nextPos == Vector3.zero)
                                    {
                                        Debug.LogErrorFormat("移动至NPC: {0} 时找不到任何跳跃点", NpcID);
                                        break;
                                    }
                                    float _dis = MathUtility.DistanceSqrtXZ(_hero.Pos, _nextPos);
                                    while (_dis > 0.01f)
                                    {
                                        _dis = MathUtility.DistanceSqrtXZ(_hero.Pos, _nextPos);
                                        _hero.MoveToPosition(_nextPos);
                                        yield return null;
                                    }
                                    while (!GA_Hero.s_Flying)
                                    {
                                        yield return null;
                                    }
                                    while (GA_Hero.s_Flying)
                                    {
                                        yield return null;
                                    }
                                    _hero.MoveToPosition(_moveToPos);
                                    yield break;
                                }
                                _hero.MoveToPosition(_moveToPos);
                                yield break;
                            }
                        }
                    }
                    _MoveToNPC(NpcID, sid);
                }
                _MoveToNPC(NpcID, sid);
                yield break;
            }
            _destPostion = new Vector3(_npcLocation.position.x, 0, _npcLocation.position.y);
Fight/PreFightMission.cs
@@ -89,7 +89,7 @@
    {
        var _actorShowConfig = ActorShowConfig.Get(9);
        GameObject _prefab = InstanceResourcesLoader.LoadEffect(_actorShowConfig.effect);
        GameObject _prefab = InstanceResourcesLoader.LoadEffect(_actorShowConfig.effect.Length > 0 ? _actorShowConfig.effect[0] : 0);
        GameObjectPoolManager.Instance.CacheGameObject(_prefab, 1, false);
        _prefab = InstanceResourcesLoader.LoadEffect(_actorShowConfig.uieffect);
        GameObjectPoolManager.Instance.CacheGameObject(_prefab, 1, false);
@@ -97,7 +97,7 @@
        _actorShowConfig = ActorShowConfig.Get(12);
        _prefab = InstanceResourcesLoader.LoadEffect(_actorShowConfig.effect);
        _prefab = InstanceResourcesLoader.LoadEffect(_actorShowConfig.effect.Length > 0 ? _actorShowConfig.effect[0] : 0);
        GameObjectPoolManager.Instance.CacheGameObject(_prefab, 1, false);
        _prefab = InstanceResourcesLoader.LoadEffect(_actorShowConfig.uieffect);
        GameObjectPoolManager.Instance.CacheGameObject(_prefab, 1, false);
Fight/Stage/Dungeon/AdventureStage.cs
@@ -2,14 +2,16 @@
using Snxxz.UI;
using UnityEngine.SceneManagement;
using UnityEngine;
using System;
using System;
public class AdventureStage : Singleton<AdventureStage>
{
    public bool IsInAdventureStage { get; private set; }
    private Vector3 m_CacheHeroPos;
    private GA_NpcClientFunc m_Npc;
    private bool dungeonFightWinOpenRecord = false;
    public event Action onLoadAdventureStage;
    public event Action onExitAdventureStage;
@@ -18,7 +20,7 @@
    public void Enter()
    {
        IsInAdventureStage = true;
        IsInAdventureStage = true;
        ClientDungeonStageUtility.RequestStartClientDungeon(0, 0);
        m_CacheHeroPos = PlayerDatas.Instance.hero.Pos;
        SnxxzGame.Instance.StartCoroutine(_Enter());
@@ -33,7 +35,7 @@
    private IEnumerator _Enter()
    {
        WindowCenter.Instance.Open<LoadingWin>();
        WindowCenter.Instance.Open<LoadingWin>();
        WindowCenter.Instance.Close<MainInterfaceWin>();
        if (!AssetSource.sceneFromEditor)
        {
@@ -45,37 +47,44 @@
        if (_hero != null)
        {
            _hero.Pos = new Vector3(9.517f, 18.742f, 7.485f);
            _hero.Behaviour.StopHandupAI();
            _hero.Behaviour.StopKillUntilDieAI();
        }
        CameraController.Instance.Apply();
        yield return null;
        WindowCenter.Instance.Close<LoadingWin>();
        WindowCenter.Instance.Open<MainInterfaceWin>();
        WindowCenter.Instance.Close<LoadingWin>();
        WindowCenter.Instance.Open<MainInterfaceWin>();
        dungeonFightWinOpenRecord = WindowCenter.Instance.IsOpen<DungeonFightWin>();
        if (!dungeonFightWinOpenRecord)
        {
            WindowCenter.Instance.Open<DungeonFightWin>();
        }
        BossShowModel.Instance.bossShowCompletedEvent -= BossShowCompletedEvent;
        BossShowModel.Instance.bossShowCompletedEvent += BossShowCompletedEvent;
        if (onLoadAdventureStage != null)
        {
            onLoadAdventureStage();
        if (onLoadAdventureStage != null)
        {
            onLoadAdventureStage();
        }
    }
    private void BossShowCompletedEvent()
    {
    }
    private void BossShowCompletedEvent()
    {
        m_Npc = GAMgr.Instance.ReqClntNoFightNpc<GA_NpcClientFunc>((uint)hazyRegionModel.GetAdventureNpcId(), E_ActorGroup.FuncNpc);
        m_Npc.Pos = new Vector3(9.012f, 18.76f, 9.089f);
        m_Npc.Rotation = Quaternion.Euler(0f, 165f, 0f);
        NPCInteractProcessor.s_NpcInteractEvent -= OnNpcTalkEvent;
        NPCInteractProcessor.s_NpcInteractEvent += OnNpcTalkEvent;
    }
        NPCInteractProcessor.s_NpcInteractEvent += OnNpcTalkEvent;
    }
    private IEnumerator _Exit()
    {
        NPCInteractProcessor.s_NpcInteractEvent -= OnNpcTalkEvent;
        NPCInteractProcessor.s_NpcInteractEvent -= OnNpcTalkEvent;
        BossShowModel.Instance.bossShowCompletedEvent -= BossShowCompletedEvent;
        GAMgr.Instance.ServerDie(m_Npc.ServerInstID);
        GAMgr.Instance.Release(m_Npc);
        WindowCenter.Instance.Open<LoadingWin>();
        WindowCenter.Instance.Open<LoadingWin>();
        WindowCenter.Instance.Close<MainInterfaceWin>();
        var _async = SceneManager.UnloadSceneAsync("Map140_Qy");
        yield return _async;
@@ -89,13 +98,17 @@
            _hero.Pos = m_CacheHeroPos;
        }
        CameraController.Instance.Apply();
        yield return null;
        yield return null;
        WindowCenter.Instance.Open<MainInterfaceWin>();
        WindowCenter.Instance.Close<LoadingWin>();
        WindowCenter.Instance.Close<LoadingWin>();
        if (!dungeonFightWinOpenRecord)
        {
            WindowCenter.Instance.Close<DungeonFightWin>();
        }
        if (onExitAdventureStage != null)
        {
            onExitAdventureStage();
        if (onExitAdventureStage != null)
        {
            onExitAdventureStage();
        }
    }
@@ -108,8 +121,8 @@
                if (m_Npc.NpcConfig.NPCID == npcid
                 && m_Npc.ServerInstID == sid)
                {
                    if (!WindowCenter.Instance.IsOpen<HazyRegionDialogueWin>())
                    {
                    if (!WindowCenter.Instance.IsOpen<HazyRegionDialogueWin>())
                    {
                        hazyRegionModel.StartAdventureDialogue();
                    }
                }
Lua/Gen/ActorShowConfigWrap.cs
@@ -40,7 +40,6 @@
            Utils.RegisterFunc(L, Utils.GETTER_IDX, "PosX", _g_get_PosX);
            Utils.RegisterFunc(L, Utils.GETTER_IDX, "PosY", _g_get_PosY);
            Utils.RegisterFunc(L, Utils.GETTER_IDX, "shadow", _g_get_shadow);
            Utils.RegisterFunc(L, Utils.GETTER_IDX, "effect", _g_get_effect);
            Utils.RegisterFunc(L, Utils.GETTER_IDX, "uieffect", _g_get_uieffect);
            Utils.RegisterFunc(L, Utils.GETTER_IDX, "mob", _g_get_mob);
            Utils.RegisterFunc(L, Utils.GETTER_IDX, "cam", _g_get_cam);
@@ -578,20 +577,6 @@
            
                ActorShowConfig gen_to_be_invoked = (ActorShowConfig)translator.FastGetCSObj(L, 1);
                LuaAPI.xlua_pushinteger(L, gen_to_be_invoked.shadow);
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
            return 1;
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _g_get_effect(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                ActorShowConfig gen_to_be_invoked = (ActorShowConfig)translator.FastGetCSObj(L, 1);
                LuaAPI.xlua_pushinteger(L, gen_to_be_invoked.effect);
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
System/Alchemy/AlchemyDrugWin.cs
@@ -38,6 +38,8 @@
            SetDefaultSelect();
            model.jumpAlchemy = 0;
            m_AlchemyScroll.Display((int)m_AlchemyType);
            DisplayAlchmey();
            m_AlchemyDrug.Display();
@@ -81,10 +83,28 @@
            }
            var qualities = AlchemyConfig.GetAlchemyQualities((int)m_AlchemyType);
            model.selectQuality = qualities.First();
            var alchemys = AlchemyConfig.GetAlchemies((int)m_AlchemyType, model.selectQuality);
            model.selectAlchemy = alchemys[0];
            if (model.jumpAlchemy != 0)
            {
                foreach (var quality in qualities)
                {
                    var alchemys = AlchemyConfig.GetAlchemies((int)m_AlchemyType, quality);
                    if (alchemys.Contains(model.jumpAlchemy))
                    {
                        model.selectQuality = quality;
                        model.selectAlchemy = model.jumpAlchemy;
                        return;
                    }
                }
            }
            {
                model.selectQuality = qualities.First();
                var alchemys = AlchemyConfig.GetAlchemies((int)m_AlchemyType, model.selectQuality);
                model.selectAlchemy = alchemys[0];
            }
        }
        private void SelectQualityRefresh()
System/Alchemy/AlchemyModel.cs
@@ -64,6 +64,8 @@
        public int stoveExp { get; private set; }
        public string alchemySuccRate { get; private set; }
        public int jumpAlchemy { get; set; }
        public bool isServerPrepare { get; private set; }
        Clock m_AlchemingClock = null;
System/BossShow/BossShowModel.cs
@@ -201,16 +201,25 @@
            var _hero = PlayerDatas.Instance.hero;
            if (_handleFight && _hero != null && !_hero.ActorInfo.serverDie)
            {
                bool _needStart = false;
                int _dgDataID = ModelCenter.Instance.GetModel<DungeonModel>().GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
                var dungeonOpen = DungeonOpenTimeConfig.Get(_dgDataID);
                if (dungeonOpen != null)
                {
                    if (dungeonOpen.DoFight == 1)
                    {
                        _hero.Behaviour.StartHandupAI();
                        _needStart = true;
                    }
                }
                else
                {
                    if (!ClientSceneManager.Instance.IsClientFightMode)
                    {
                        _needStart = true;
                    }
                }
                if (_needStart)
                {
                    _hero.Behaviour.StartHandupAI();
                }
@@ -309,6 +318,11 @@
                {
                    for (int i = 0; i < showTargetList.Count; i++)
                    {
                        if (showTargetList[i].npcId == 1)
                        {
                            showTargetList[i].Destroy();
                            continue;
                        }
                        List<ShowActor> list = GetShowActor(showTargetList[i].npcId);
                        if (list == null)
                        {
System/BossShow/ShowActor.cs
@@ -50,8 +50,16 @@
        this.m_Index = index;
        this.m_Instance = instanceid;
        m_NpcCfg = NPCConfig.Get(npcID);
        Appear(index, _actorShowConfig);
        if (npcId == 1)
        {
            Appear(index, _actorShowConfig);
        }
        else
        {
            m_NpcCfg = NPCConfig.Get(npcID);
            Appear(index, _actorShowConfig);
        }
    }
    public void Appear(int index, ActorShowConfig _actorShowConfig)
@@ -60,10 +68,21 @@
        this.actorShowModel = _actorShowConfig;
        if (m_Model == null)
        {
            m_Model = GameObjectPoolManager.Instance.RequestNpcGameObject(m_NpcId);
            m_Animator = m_Model.AddMissingComponent<Animator>();
            m_CacheLayer = m_Model.layer;
            m_Model.gameObject.SetLayer(LayerUtility.BossShow, true);
            if (npcId != 1)
            {
                m_Model = GameObjectPoolManager.Instance.RequestNpcGameObject(m_NpcId);
                m_Animator = m_Model.AddMissingComponent<Animator>();
                m_CacheLayer = m_Model.layer;
                m_Model.gameObject.SetLayer(LayerUtility.BossShow, true);
            }
            else
            {
                var hero = PlayerDatas.Instance.hero;
                m_Model = GameObject.Instantiate(hero.ClothedModel) as GameObject;
                m_Animator = m_Model.AddMissingComponent<Animator>();
                m_CacheLayer = m_Model.layer;
                m_Model.gameObject.SetLayer(LayerUtility.BossShow, true);
            }
        }
        m_Model.SetActive(true);
        m_Model.transform.position = new Vector3((float)actorShowModel.PosX[m_Index] / 200, 0, (float)actorShowModel.PosY[m_Index] / 200);
@@ -72,7 +91,7 @@
        RaycastHit _hit;
        var _heightPos = m_Model.transform.position;
        if (actorShowModel.Height.Length > 1)
        if (actorShowModel.Height.Length > 1 && m_Index == 0)
        {
            _heightPos.x = (float)actorShowModel.Height[0] / 200;
            _heightPos.y = 0;
@@ -85,7 +104,21 @@
        }
        m_Model.transform.rotation = MathUtility.GetClientRotationFromAngle(actorShowModel.NpcFace[m_Index]);
        var controller = AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerShowSuffix, actorShowModel.mob[m_Index]);
        RuntimeAnimatorController controller = null;
        if (npcId == 1)
        {
            var job = PlayerDatas.Instance.baseData.Job;
            var _controllerName = "A_Zs";
            if (job == 2)
            {
                _controllerName = "A_Fs";
            }
            controller = AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerShowSuffix, _controllerName);
        }
        else
        {
            controller = AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerShowSuffix, actorShowModel.mob[m_Index]);
        }
        if (controller != null)
        {
            m_CacheAnimator = m_Animator.runtimeAnimatorController;
@@ -94,8 +127,16 @@
            if (m_Animator != null)
            {
                m_Animator.enabled = true;
                m_Animator.Play(Animator.StringToHash("Show"), 0, 0);
                nextAction = GAStaticDefine.Act_Show;
                m_Animator.Play(Animator.StringToHash("Idle"), 0, 0);
                nextAction = 0;
                if (m_Index < actorShowModel.clipActions.Length)
                {
                    nextAction = actorShowModel.clipActions[m_Index];
                }
                else
                {
                    nextAction = GAStaticDefine.Act_Show;
                }
            }
        }
        else
@@ -107,16 +148,17 @@
            }
        }
        if (actorShowModel.effect != 0)
        if (actorShowModel.effect != null && m_Index < actorShowModel.effect.Length
            && actorShowModel.effect[m_Index] != 0)
        {
            sfxController = SFXPlayUtility.Instance.Play(actorShowModel.effect, m_Model.transform);
            sfxController = SFXPlayUtility.Instance.Play(actorShowModel.effect[m_Index], m_Model.transform);
            if (sfxController != null)
            {
                sfxController.duration = 0;
            }
        }
        RequestCircleShadow();
        if (shadow)
        if (shadow && m_NpcId != 1)
        {
            shadow.transform.localScale = m_NpcCfg.IsBoss == 1 ? Vector3.one * 3 : Vector3.one;
            shadow.gameObject.SetLayer(LayerUtility.BossShow, true);
@@ -172,4 +214,19 @@
        RecyleCircleShadow();
    }
    public void Destroy()
    {
        if (m_Model != null)
        {
            GameObject.Destroy(m_Model);
            m_Model = null;
        }
        if (sfxController != null)
        {
            SFXPlayUtility.Instance.Release(sfxController);
            sfxController = null;
        }
        RecyleCircleShadow();
    }
}
System/Dungeon/DungeonFightWin.cs
@@ -217,6 +217,18 @@
        private void ExitDungeon()
        {
            if (AdventureStage.Instance.IsInAdventureStage)
            {
                ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("HazyExitAdventureConfirm"), (bool isOk) =>
                  {
                      if (isOk)
                      {
                          AdventureStage.Instance.Exit();
                      }
                  });
                return;
            }
            var dataMapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
            var config = DungeonOpenTimeConfig.Get(dataMapId);
            string language = string.Empty;
@@ -362,6 +374,10 @@
        {
            if (immedidately)
            {
                m_ContainerFuncBtn.localPosition = MainPositionTween.isDefaultState ? m_ContainerFuncBottom.localPosition : m_ContainerFuncUp.localPosition;
            }
            else
            {
                if (MainPositionTween.isDefaultState)
                {
                    m_Tweener = m_ContainerFuncBtn.DOLocalMoveY(m_ContainerFuncBottom.localPosition.y, 1);
@@ -370,10 +386,6 @@
                {
                    m_Tweener = m_ContainerFuncBtn.DOLocalMoveY(m_ContainerFuncUp.localPosition.y, 1);
                }
            }
            else
            {
                m_ContainerFuncBtn.localPosition = MainPositionTween.isDefaultState ? m_ContainerFuncBottom.localPosition : m_ContainerFuncUp.localPosition;
            }
        }
System/Dungeon/TargetBriefInfoWin.cs
@@ -15,6 +15,8 @@
    public static PlayerInfo playerInfo { get; private set; }
    public static MonsterInfo bossInfo { get; private set; }
    static HazyDemonKingModel hazyDemonKingModel { get { return ModelCenter.Instance.GetModel<HazyDemonKingModel>(); } }
    public static void Init()
    {
        GA_NpcFightBoss.s_OnSelect += OnShowBossLifeBar;
@@ -30,6 +32,11 @@
    static void OnShowBossLifeBar(uint _instanceId, int _npcId, bool _show)
    {
        if (CrossServerUtility.IsCrossServerOneVsOne() && _show)
        {
            return;
        }
        if (hazyDemonKingModel.IsInDungeon && !_show)
        {
            return;
        }
@@ -128,6 +135,11 @@
            return;
        }
        if (hazyDemonKingModel.IsInDungeon)
        {
            return;
        }
        if (_show)
        {
            var player = GAMgr.Instance.GetBySID(_instanceId) as GActorPlayerBase;
@@ -173,6 +185,11 @@
            return;
        }
        if (hazyDemonKingModel.IsInDungeon)
        {
            return;
        }
        bossInfo = default(MonsterInfo);
        var player = GAMgr.Instance.GetBySID(_instanceId) as GActorPlayerBase;
        if (player != null)
System/HazyRegion/HazyDemonKingModel.cs
@@ -96,6 +96,11 @@
        private void PerSecond()
        {
            if (!(StageLoad.Instance.currentStage is DungeonStage))
            {
                return;
            }
            if (IsInDungeon)
            {
                var requireRefreshPlayer = false;
@@ -203,6 +208,11 @@
        public bool IsInDemonKingDungeon(int mapId)
        {
            if (!(StageLoad.Instance.currentStage is DungeonStage))
            {
                return false;
            }
            if (mapId == Client_MapID)
            {
                return true;
System/HazyRegion/HazyGrassModel.cs
@@ -116,6 +116,11 @@
        public bool IsInGrassDungeon(int mapId)
        {
            if (!(StageLoad.Instance.currentStage is DungeonStage))
            {
                return false;
            }
            if (mapId == Client_ReikiGrassMapID
                || mapId == Client_FairyGrassMapID)
            {
System/HazyRegion/HazyRegionEntrancePanel.cs
@@ -112,6 +112,12 @@
                return;
            }
            if (questState == DailyQuestModel.DailyQuestState.Completed)
            {
                SysNotifyMgr.Instance.ShowTip("OpenHazyRegionError_3");
                return;
            }
            if (!model.TryAddTimes())
            {
                SysNotifyMgr.Instance.ShowTip("OpenHazyAddTimesError_1");
System/HazyRegion/HazyRegionIncidentBehaviour.cs
@@ -33,6 +33,9 @@
        [SerializeField] Text m_PlayerCount;
        [SerializeField] Text m_RebornTime;
        [Header("宝藏")]
        [SerializeField] UIEffect m_TitleEffect;
        public UIAlphaTween alphaTween { get { return m_AlphaTween; } }
        public UILinerMove linerMove { get { return m_LinerMove; } }
@@ -98,6 +101,14 @@
            findPreciousModel.bossInfoUpdateEvent += BossInfoUpdateEvent;
            hazyDemonKingModel.onPlayerCountRefresh -= OnPlayerCountRefresh;
            hazyDemonKingModel.onPlayerCountRefresh += OnPlayerCountRefresh;
            m_TitleEffect.gameObject.SetActive(false);
            switch (incidentType)
            {
                case HazyRegionIncidentType.Precious:
                    m_TitleEffect.gameObject.SetActive(true);
                    break;
            }
        }
        void DisplayBase()
System/HazyRegion/HazyRegionIncidentPanel.cs
@@ -14,6 +14,7 @@
        [SerializeField] Text m_Point;
        [SerializeField] Button m_Back;
        [SerializeField] Button m_Goto;
        [SerializeField] Text m_GotoLabel;
        List<int> incidents = new List<int>();
@@ -21,6 +22,7 @@
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
        FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
        DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
        DateTime requestTime = DateTime.Now;
        int requestCount = 0;
@@ -38,10 +40,14 @@
            DisplayPoint();
            DisplayIncidents();
            DisplayBackButton();
            DisplayGotoState();
            requestCount = 0;
            model.incidentDirty = false;
            SendRequestPlayerCount();
            DailyQuestActionTimer.Instance.RefreshDailyQuestState -= RefreshDailyQuestState;
            DailyQuestActionTimer.Instance.RefreshDailyQuestState += RefreshDailyQuestState;
        }
        void DisplayIncidents()
@@ -85,6 +91,12 @@
        {
            var lhs_config = HazyRegionConfig.Get(lhs);
            var rhs_config = HazyRegionConfig.Get(rhs);
            var lhs_precious = lhs_config.incidentType == (int)HazyRegionIncidentType.Precious;
            var rhs_precious = rhs_config.incidentType == (int)HazyRegionIncidentType.Precious;
            if (lhs_precious != rhs_precious)
            {
                return -lhs_precious.CompareTo(rhs_precious);
            }
            if (lhs_config.incidentType != rhs_config.incidentType)
            {
                return lhs_config.incidentType.CompareTo(rhs_config.incidentType);
@@ -159,8 +171,31 @@
            }
        }
        private void DisplayGotoState()
        {
            var questState = dailyQuestModel.GetQuestState((int)DailyQuestType.HazyRegion);
            m_Goto.SetColorful(m_GotoLabel, questState != DailyQuestModel.DailyQuestState.OutTime);
        }
        private void Goto()
        {
            var questState = dailyQuestModel.GetQuestState((int)DailyQuestType.HazyRegion);
            if (questState == DailyQuestModel.DailyQuestState.OutTime)
            {
                DailyQuestOpenTime dailyQuestOpenTime;
                if (dailyQuestModel.TryGetOpenTime((int)DailyQuestType.HazyRegion, out dailyQuestOpenTime))
                {
                    HourMinute hourMinute;
                    if (dailyQuestOpenTime.TryGetTodayNearestOpenTime(out hourMinute))
                    {
                        SysNotifyMgr.Instance.ShowTip("OpenHazyRegionError_1",
                            hourMinute.hourBegin.ToString("D2"),
                            hourMinute.hourEnd.ToString("D2"));
                    }
                }
                return;
            }
            var error = 0;
            if (!model.TryGotoIncident(model.selectIncident, out error))
            {
@@ -267,9 +302,15 @@
            }
        }
        private void RefreshDailyQuestState()
        {
            DisplayGotoState();
        }
        public void Dispose()
        {
            m_CyclicScroll.Dispose();
            DailyQuestActionTimer.Instance.RefreshDailyQuestState -= RefreshDailyQuestState;
        }
#if UNITY_EDITOR
System/KnapSack/Logic/ItemModel.cs
@@ -113,7 +113,7 @@
                }
            }
            this.score = ItemLogicUtility.Instance.GetEquipScore(packType, itemId, useDataDict);
            this.score = ItemLogicUtility.Instance.GetEquipScore(packType, itemId, useDataDict, isAuction);
        }
        public void RefreshCount(int count)
System/MainInterfacePanel/FunctionForecastTip.cs
@@ -120,26 +120,7 @@
            _Information.gameObject.SetActive(true);
            _FunctionIcon.SetSprite(FunctionForecastConfig.Get(ID).FuncIconKey);
            _NameText.text = FunctionForecastConfig.Get(ID).Describe;
            FuncOpenLVConfig funcoPenConfig = FuncOpenLVConfig.Get(ID);
            if (funcoPenConfig.LimitMagicWeapon != 0 || funcoPenConfig.LimitMissionID != 0)
            {
                if (funcoPenConfig.LimitMagicWeapon != 0)
                {
                    int faBaoID = funcoPenConfig.LimitMagicWeapon / 100;
                    TreasureConfig treasure = TreasureConfig.Get(faBaoID);
                    _Information.text = string.Format(Language.Get("FuncFBOpen"), treasure.Name);
                    return;
                }
                if (funcoPenConfig.LimitMissionID != 0)
                {
                    _Information.text = string.Format(Language.Get("TaskFuncOpen"), funcoPenConfig.LimitLV);
                    return;
                }
            }
            else
            {
                _Information.text = string.Format(Language.Get("FuncLevelOpen"), funcoPenConfig.LimitLV);
            }
            _Information.text= FunctionForecastConfig.Get(ID).OpenDescribe;
        }
System/MainInterfacePanel/FunctionForecastWin.cs
@@ -58,25 +58,7 @@
            FunctionImage.SetSprite(functionForcecastConfig.FuncIconKey);
            IconText.text = functionForcecastConfig.FuncName;
            ContentText.text = functionForcecastConfig.DetailDescribe;
            if (openLvConfig.LimitMagicWeapon != 0 || openLvConfig.LimitMissionID != 0)
            {
                if (openLvConfig.LimitMagicWeapon != 0)
                {
                    int faBaoID = openLvConfig.LimitMagicWeapon / 100;
                    TreasureConfig treasure = TreasureConfig.Get(faBaoID);
                    ContentText1.text = string.Format(Language.Get("FuncFBOpen"), treasure.Name);
                    return;
                }
                if (openLvConfig.LimitMissionID != 0)
                {
                    ContentText1.text = string.Format(Language.Get("TaskFuncOpen"), openLvConfig.LimitLV);
                    return;
                }
            }
            else
            {
                ContentText1.text = string.Format(Language.Get("FuncLevelOpen"), openLvConfig.LimitLV);
            }
            ContentText1.text = functionForcecastConfig.OpenDescribe;
        }
        protected override void OnPreClose()
System/MainInterfacePanel/MainInterfaceWin.cs
@@ -145,7 +145,7 @@
            }
            var isNeutralMap = GeneralDefine.neutralBossMaps.Contains(PlayerDatas.Instance.baseData.MapID);
            if (isNeutralMap)
            if (isNeutralMap && !AdventureStage.Instance.IsInAdventureStage)
            {
                m_BossBriefInfos.gameObject.SetActive(true);
                if (PlayerDatas.Instance.baseData.MapID == DogzDungeonModel.DATA_MAPID)
System/MainInterfacePanel/MainPositionTween.cs
@@ -109,7 +109,8 @@
            m_ContainerBossList.gameObject.SetActive(isNeutralMap);
            rightTopState = RightTopState.Function;
            if ((isDungeon || isNeutralMap || isBossArea) && !isGuiding && switchParams.showDefault)
            if ((isDungeon || isNeutralMap || isBossArea || AdventureStage.Instance.IsInAdventureStage)
                && !isGuiding && switchParams.showDefault)
            {
                rightTopState = RightTopState.Boss;
            }
System/MainInterfacePanel/MapSwitchingBehaviour.cs
@@ -29,7 +29,7 @@
        public void Init()
        {
            int MapID = PlayerDatas.Instance.baseData.MapID;
            if (MapIdList.Contains(MapID))
            if (MapIdList.Contains(MapID) && !AdventureStage.Instance.IsInAdventureStage)
            {
                m_Btn_MapSwitch.gameObject.SetActive(true);
            }
System/Message/RichMoveEvent.cs
@@ -45,6 +45,11 @@
            case RichTextEventEnum.MOVENPC:
                {
                    int id = int.Parse(href.mSplits["movenpc"]);
                    var movetype = 1;
                    if (href.mSplits.ContainsKey("movetype"))
                    {
                        movetype = int.Parse(href.mSplits["movetype"]);
                    }
                    var error = 0;
                    if (!TestMoveNpc(id, out error))
                    {
@@ -55,7 +60,7 @@
                    if (hero != null)
                    {
                        PlayerDatas.Instance.hero.Behaviour.StopHandupAI();
                        SnxxzGame.Instance.StartCoroutine(WaitForSkillFinished(id));
                        SnxxzGame.Instance.StartCoroutine(WaitForSkillFinished(id, movetype));
                    }
                }
                break;
@@ -202,7 +207,7 @@
        SnxxzGame.Instance.StartCoroutine(WaitForSkillFinished(new Vector3(m_Posx / 2, 0, m_Posy / 2)));
    }
    private IEnumerator WaitForSkillFinished(int id)
    private IEnumerator WaitForSkillFinished(int id, int movetype)
    {
        GA_Hero _hero = PlayerDatas.Instance.hero;
@@ -227,7 +232,7 @@
            yield break;
        }
        MapTransferUtility.Instance.MoveToNPC(id);
        MapTransferUtility.Instance.MoveToNPC(id, 0, movetype == 1);
    }
    private IEnumerator WaitForSkillFinished(Vector3 pos)
System/Tip/ItemConfirmWin.cs
@@ -66,7 +66,7 @@
            var _itemCnt = ModelCenter.Instance.GetModel<PackModel>().GetItemCountByID(PackType.Item, ConfirmCancel.generalItemId);
            if (_itemCnt < ConfirmCancel.generalItemCnt)
            {
                ScrollTip.ShowTip(Language.Get("InsufficientQIR_Z"));
                ItemTipUtility.Show(ConfirmCancel.generalItemId);
                return;
            }
            CloseClick();
System/Treasure/HumanTreasureWin.cs
@@ -31,6 +31,7 @@
        [SerializeField] Slider m_TaskSlider;
        [SerializeField] Text m_TaskProgress;
        [SerializeField] UIEffect m_EffectInduction;
        [SerializeField] UIEffect m_EffectInduction1;
        [SerializeField] Transform m_ContainerSkillDetial;
        [SerializeField] Image m_SkillDetailIcon;
@@ -303,6 +304,7 @@
                var count = m_TaskController.GetNumberOfCells(m_TaskController.m_Scorller);
                m_TaskController.JumpIndex(count - 1);
                m_EffectInduction.Play();
                m_EffectInduction1.Play();
                m_TaskController.mScrollRect.enabled = false;
                StartCoroutine(Co_DelayShowTask());
            }
System/WindowBase/WindowCenter.cs
@@ -553,6 +553,7 @@
        float checkTimer = 0f;
        private void LateUpdate()
        {
            var checkMainWinImmedidately = closeCommands.Count + openCommands.Count > 0;
            while (closeCommands.Count > 0)
            {
                var command = closeCommands[0];
@@ -594,7 +595,7 @@
            }
            checkTimer += Time.deltaTime;
            checkTimer += checkMainWinImmedidately ? 1f : Time.deltaTime;
            if (checkTimer > 0.5f)
            {
                checkTimer = 0f;
@@ -609,15 +610,15 @@
                        && !IsOpen("HazyRegionDialogueWin")
                        && !IsOpen("NormalDialogueWin");
                    if (exceptOpen != IsOpen("MainInterfaceWin"))
                    if (exceptOpen != IsOpen("MainInterfaceWin") && windows.ContainsKey("MainInterfaceWin"))
                    {
                        if (exceptOpen)
                        {
                            Open("MainInterfaceWin", true);
                            windows["MainInterfaceWin"].Open();
                        }
                        else
                        {
                            Close("MainInterfaceWin");
                            windows["MainInterfaceWin"].CloseImmediately();
                        }
                    }
                }
System/WindowJump/WindowJumpMgr.cs
@@ -143,6 +143,7 @@
            case JumpUIType.SkillFunc2:
            case JumpUIType.SkillFunc3:
            case JumpUIType.SkillFunc2Type2:
            case JumpUIType.TreasureSkill:
                SetJumpLogic<SkillWin>(_tagWinSearchModel.TABID);
                break;
            case JumpUIType.StrengthFunc1:
@@ -716,6 +717,16 @@
                break;
            case JumpUIType.HazyRegion:
                SetJumpLogic<CrossServerWin>(_tagWinSearchModel.TABID);
                break;
            case JumpUIType.Alchemy1:
            case JumpUIType.Alchemy2:
            case JumpUIType.Alchemy3:
            case JumpUIType.Alchemy4:
            case JumpUIType.Alchemy5:
                var selectAlchemy = 0;
                int.TryParse(_tagWinSearchModel.SelectActive, out selectAlchemy);
                ModelCenter.Instance.GetModel<AlchemyModel>().jumpAlchemy = selectAlchemy;
                SetJumpLogic<AlchemyBaseWin>(_tagWinSearchModel.TABID);
                break;
            default:
                DebugEx.Log("未添加此跳转界面:" + jumpType);
@@ -1651,6 +1662,12 @@
    AllianceBoss1 = 308,//仙盟Boss1
    AllianceBoss2 = 309,//仙盟Boss2
    FairyAuction = 310,//仙盟拍卖行
    TreasureSkill = 311,//技能升级
    Alchemy1 = 312,//炼丹
    Alchemy2 = 313,
    Alchemy3 = 314,
    Alchemy4 = 315,
    Alchemy5 = 316,
    DhszTs = 1001,//定海神针功法提升界面
    HyqTs = 1002,//皓月枪功法提升界面
Utility/RuntimeLogUtility.cs
@@ -4,6 +4,7 @@
#endif
using System.Collections.Generic;
using System.Text;
using Snxxz.UI;
public class RuntimeLogUtility : MonoBehaviour
{
@@ -21,6 +22,7 @@
    public static bool s_ShowZZAtkValue = false;
    public static bool s_ForceSupperHit = false;
    public static bool s_ForceLuckHit = false;
    public static bool s_LogProcessInfo = false;
    public static bool s_forceAutoFight
    {
        get
@@ -202,7 +204,7 @@
        if (GUILayout.Button("触发客户端触发器"))
        {
            // ClientSceneManager.Instance.TriggerTest(_triggerID);
            GA_NpcFunc.SetNpcFuncVisible(10104003, true);
            // GA_NpcFunc.SetNpcFuncVisible(10104003, true);
        }
        EditorGUILayout.EndHorizontal();
@@ -212,7 +214,8 @@
        if (GUILayout.Button("测试寻路"))
        {
            // Debug.Log(PathFinder.WalkAble(_start3, _end3));
            MapTransferUtility.Instance.MoveToNPC(10904012);
            // MapTransferUtility.Instance.MoveToNPC(10904012);
            MapTransferUtility.Instance.MoveToLocalMapPosition(new Vector2(_end3.x, _end3.z));
        }
        EditorGUILayout.LabelField("Log存储路径", RuntimeLogUtility.s_LogPath);
@@ -240,19 +243,17 @@
        RuntimeLogUtility.TEST_CLIENT_PVP_AI = EditorGUILayout.Toggle("模拟客户端PVP的AI状态", RuntimeLogUtility.TEST_CLIENT_PVP_AI);
        RuntimeLogUtility.s_ForceSupperHit = EditorGUILayout.Toggle("强制暴击", RuntimeLogUtility.s_ForceSupperHit);
        RuntimeLogUtility.s_ForceLuckHit = EditorGUILayout.Toggle("强制会心一击", RuntimeLogUtility.s_ForceLuckHit);
        RuntimeLogUtility.s_LogProcessInfo = EditorGUILayout.Toggle("输出AI流程控制", RuntimeLogUtility.s_LogProcessInfo);
        if (GUILayout.Button("创建PVP敌方"))
        {
            var _npc = GAMgr.Instance.ReqClntFightNpc<GA_NpcClientFightNorm>(30102003, E_ActorGroup.Enemy);
            var _npc = GAMgr.Instance.ReqClntFightNpc<GA_NpcClientFightBoss>(10103001, E_ActorGroup.Enemy);
            _npc.BornPos = _npc.Pos = PlayerDatas.Instance.hero.Pos;
            _npc.ActorInfo.ResetHp(9999999, -1, 9999999);
            // BossShowModel.Instance.Start(PlayerDatas.Instance.baseData.MapID, 10103001);
            // ClientDropItemUtility.Instance.Drop(PlayerDatas.Instance.hero.Pos,
            //                                     new int[] { 5006, 5301, 5410, 5505, 10543, 1043050,
            //                                                 5301, 5410, 5505, 10543, 1043050,
            //                                                 5301, 5410, 5505, 10543, 1043050,
            //                                                 5301, 5410, 5505, 10543, 1043050,
            //                                                 5301, 5410, 5505, 10543, 1043050 });
            //                                                 5301, 5410, 5505, 10543, 1043050});
            // var _npc = GAMgr.Instance.ReqClntFightNpc<GA_NpcClientFightBoss>(10103001, E_ActorGroup.Enemy);
@@ -295,6 +296,7 @@
        {
            // GA_PVPClientPlayer.Reset();
            // AdventureStage.Instance.Exit();
            ClientSceneManager.Instance.ExitClientFightMode();
        }
        _navChkPos = EditorGUILayout.Vector3Field("检测点", _navChkPos);