少年修仙传客户端代码仓库
client_Zxw
2019-01-24 4bcda00aa3cb3678f5b42ab86d8624f32a1ec24c
Merge remote-tracking branch 'origin/master' into SpringFestival
1个文件已删除
14个文件已添加
53个文件已修改
4420 ■■■■ 已修改文件
Core/GameEngine/DataToCtl/PackageRegedit.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Login/Launch.cs 1071 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/SkillFrameAnimationConfig.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/SkillFrameAnimationConfig.cs.meta 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/ConfigManager.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ClientPack/ClientToMapServer/CA3_Item/CA332_tagCMZhuXianEquipDecompose.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ClientPack/ClientToMapServer/CA3_Item/CA332_tagCMZhuXianEquipDecompose.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0403_tagPlayerLoginLoadOK.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0614_tagUseSkillPos.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HA8_Item/DTCA815_tagMCZhuXianDecomposeResult.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HA8_Item/DTCA815_tagMCZhuXianDecomposeResult.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HA8_Item/HA815_tagMCZhuXianDecomposeResult.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HA8_Item/HA815_tagMCZhuXianDecomposeResult.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/HeroAI_KillUntilDie.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/HeroBehaviour.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/UserInputHandler.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GActor.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GActorPlayerBase.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Stage/Dungeon/DungeonStage.cs 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Stage/StageManager.cs 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/DebugUtilityWrap.cs.meta 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/DelegatesGensBridge.cs 842 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/Resources.meta 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/ServerListCenterWrap.cs 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/SnxxzUIJadeDynastyBossModelWrap.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/SnxxzUIJadeDynastySkillModelWrap.cs 483 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/SnxxzUIJadeDynastySkillModelWrap.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/SnxxzUIRankModelWrap.cs 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/XLuaGenAutoRegister.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/link.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyMemberCell.cs 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyBoss/JadeDynastyBossModel.cs 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyBoss/JadeDynastyBossVictoryWin.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyKnapSack/JadeDynastyDecomposeGetItemWin.cs 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyKnapSack/JadeDynastyDecomposeGetItemWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyKnapSack/JadeDynastyDecomposeModel.cs 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyKnapSack/JadeDynastyDecomposeWin.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyKnapSack/JadeDynastyEquipBeh.cs 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyKnapSack/JadeDynastyEquipGetPathsWin.cs 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyKnapSack/JadeDynastyEquipGetPathsWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyKnapSack/JadeDynastyEquipModel.cs 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyKnapSack/JadeDynastyEquipWin.cs 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyKnapSack/JadeDynastyItemBeh.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyKnapSack/JadeDynastySuitAttrBeh.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastySkill/JadeDynastySkillWin.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyTower/JadeDynastyTowerModel.cs 71 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyTower/JadeDynastyTowerRankBehaviour.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyTower/JadeDynastyTowerRewardBehaviour.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyTower/JadeDynastyTowerWin.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyTower/JadyDynastyTowerVictoryWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyTower/TowerWin.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/BetterItemGetBehaviour.cs 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/EquipTip.cs 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/ItemTipsModel.cs 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/PackModelInterface.cs 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/PackSendQuestMgr.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Launch/LaunchWin.cs 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Login/ServerListCenter.cs 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Login/ServerListParser.cs 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Login/ServerListParser.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/OpenServiceAchievementModel.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Rank/RankHeadCell.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Realm/RealmPropertyUpWin.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowJump/WindowJumpMgr.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI/Common/FrameEffect.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI/Common/SortTable.cs 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/EnumHelper.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/StageLoadTimeOutCatcher.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/DataToCtl/PackageRegedit.cs
@@ -210,6 +210,7 @@
        Register(typeof(HC102_tagMCCrossRealmPKAwardState), typeof(DTCC102_tagMCCrossRealmPKAwardState));
        Register(typeof(HC005_tagGCCrossRealmPKBillboardInfo), typeof(DTCC005_tagGCCrossRealmPKBillboardInfo));
        Register(typeof(HC006_tagGCCrossRealmPKSeasonState), typeof(DTCC006_tagGCCrossRealmPKSeasonState));
        Register(typeof(HA815_tagMCZhuXianDecomposeResult), typeof(DTCA815_tagMCZhuXianDecomposeResult));
        #region 背包
        Register(typeof(H0724_tagRolePackCanUseCount), typeof(DTC0724_tagRolePackCanUseCount));
Core/GameEngine/Login/Launch.cs
@@ -10,32 +10,15 @@
public class Launch : MonoBehaviour
{
    static LaunchStage m_CurrentStage = LaunchStage.None;
    static public LaunchStage currentStage { get { return m_CurrentStage; } }
    static float m_Progress = 0f;
    static public float progress {
        get { return m_Progress; }
        set {
            if (m_Progress != value)
            {
                m_Progress = value;
                if (progressEvent != null)
                {
                    progressEvent(m_CurrentStage, m_Progress);
                }
            }
        }
    }
    public static event Action<LaunchStage, float> progressEvent;
    public static ProgressInfo progressInfo { get; private set; }
    private void Awake()
    {
        ResourcesPath.Instance.Init();
        SnxxzGame.Instance.gameObject.name = "__SnxxzGame__";
        Application.backgroundLoadingPriority = ThreadPriority.BelowNormal;
        Screen.sleepTimeout = SleepTimeout.NeverSleep;
        SDKUtility.Instance.Init();
@@ -139,157 +122,256 @@
        GlobalTimeEvent.Instance.Begin();
    }
    private byte m_Step = 0;
    float timer = 0f;
    float progressRateOfIncrease = 1f;
    float originalExpectTotalTime = -1f;
    float expectTotalTime = 0f;
    public float totalTime {
        get {
            return Mathf.Lerp(originalExpectTotalTime, expectTotalTime, Mathf.Clamp01(timer / expectTotalTime));
        }
    }
    Queue<LaunchTask> tasks = new Queue<LaunchTask>();
    LaunchTask currentTask = null;
    bool launchComplete = false;
    void Start()
    {
        m_Step = 0;
        Application.backgroundLoadingPriority = ThreadPriority.High;
        SoundPlayer.Instance.PlayLoginMusic();
        Config.Instance.PreLoadConfigs();
        WindowCenter.Instance.OpenFromLocal<LaunchWin>();
        SystemSetting.Instance.LetFPSUnLimit();
        Config.Instance.RegisterGlobalEvent();
        PackageRegedit.Init();
        DebugUtility.Instance.CreateDebugRoot();
        StartCoroutine(Co_Lanuch());
        WindowCenter.Instance.OpenFromLocal<LaunchWin>();
        var sdkInitedTask = new SDKInitedTask();
        var assetCopyTask = new AssetCopyTask();
        var assetDecompressTask = new AssetDecompressTask();
        var getVersionInfoTask = new GetVersionInfoTask();
        var checkAssetValidTask = new CheckAssetValidTask();
        var downLoadAssetTask = new DownLoadAssetTask();
        var assetBundleInitTask = new AssetBundleInitTask();
        var configInitTask = new ConfigInitTask();
        var launchFadeOutTask = new LaunchFadeOutTask();
#if !UNITY_EDITOR
        tasks.Enqueue(sdkInitedTask);
#endif
#if UNITY_ANDROID
#if  !UNITY_EDITOR
        tasks.Enqueue(assetCopyTask);
        tasks.Enqueue(assetDecompressTask);
#endif
        tasks.Enqueue(getVersionInfoTask);
#endif
#if UNITY_IOS
        tasks.Enqueue(getVersionInfoTask);
        tasks.Enqueue(assetCopyTask);
#endif
        tasks.Enqueue(checkAssetValidTask);
        tasks.Enqueue(downLoadAssetTask);
        tasks.Enqueue(assetBundleInitTask);
        tasks.Enqueue(configInitTask);
        tasks.Enqueue(launchFadeOutTask);
        CalculateExpectTotalTime();
        originalExpectTotalTime = expectTotalTime;
    }
    void Update()
    {
        if (m_Step == 1)
        if (!launchComplete)
        {
            ServerListCenter.Instance.RequestJumpUrl();
            m_Step = 2;
            if (currentTask == null)
            {
                if (tasks.Count > 0)
                {
                    currentTask = tasks.Dequeue();
                    currentTask.Begin();
                }
                else
                {
                    launchComplete = true;
                }
            }
            if (currentTask != null)
            {
                currentTask.Update();
            }
            if (currentTask != null && currentTask.done)
            {
                currentTask.End();
                CalculateExpectTotalTime();
                currentTask = null;
            }
            if (m_CurrentStage == LaunchStage.DownLoad)
            {
                progressInfo = new ProgressInfo(m_CurrentStage, progressInfo.totalProgress, 0f);
            }
            else
            {
                timer += Time.deltaTime;
                var progress = progressInfo.totalProgress + progressRateOfIncrease * Time.deltaTime / totalTime;
                var partProgress = 0f;
                if (currentTask == null)
                {
                    partProgress = 0f;
                }
                else
                {
                    var temp = currentTask.timer / Mathf.Min(1f, currentTask.duration);
                    partProgress = temp - (int)temp;
                }
                progressInfo = new ProgressInfo(m_CurrentStage, Mathf.Clamp01(progress), partProgress);
            }
        }
        if (launchComplete)
        {
            Debug.LogFormat("启动耗时:{0}", timer);
            progressInfo = new ProgressInfo(m_CurrentStage, 1f, 1f);
            this.enabled = false;
            StageManager.Instance.LoadLoginStage();
        }
    }
    IEnumerator Co_Lanuch()
    void CalculateExpectTotalTime()
    {
        var startTime = Time.time;
        var progressBuf = progress;
        var timer = 0f;
        var duration = 1f;
#if !UNITY_EDITOR
        while (!SDKUtility.Instance.InitFinished)
        var time = timer;
        foreach (var item in tasks)
        {
            time += item.expectTime;
        }
        expectTotalTime = time;
        if (originalExpectTotalTime <= 0f)
        {
            originalExpectTotalTime = expectTotalTime;
        }
        progressRateOfIncrease = (expectTotalTime - timer) / (originalExpectTotalTime - timer);
    }
    public enum LaunchStage
    {
        None = 0,
        SDKInit = 1,
        AssetCopy = 2,
        ClientVersion = 3,
        CheckAsset = 4,
        DownLoad = 5,
        AssetBundleInit = 6,
        ConfigInit = 7,
        Complete = 8,
    }
    public abstract class LaunchTask
    {
        public float timer { get; protected set; }
        public float duration { get; protected set; }
        bool exceptionReported = false;
        public bool done { get; protected set; }
        public float progress { get; protected set; }
        public virtual float expectTime { get; protected set; }
        protected float outTime = 15f;
        public abstract void Begin();
        public abstract void Update();
        public abstract void End();
        public void ExceptionReport()
        {
            if (!exceptionReported && timer > outTime && !done)
            {
                var content = string.Format("任务:{0};网络状态:{1}", this.GetType().Name, Application.internetReachability);
                ExceptionCatcher.ReportException("游戏启动执行超时!", content);
                exceptionReported = true;
            }
        }
    }
    public class SDKInitedTask : LaunchTask
    {
        public override float expectTime {
            get { return LocalSave.GetFloat("SDKInitedTask_ExpectTime", 1f); }
            protected set { LocalSave.SetFloat("SDKInitedTask_ExpectTime", value); }
        }
        public override void Begin()
        {
            m_CurrentStage = LaunchStage.SDKInit;
            duration = Mathf.Max(0.1f, expectTime);
        }
        public override void End()
        {
            expectTime = timer;
            DebugEx.LogFormat("{0}执行时长:{1};", this.GetType().Name, timer);
            OperationLogCollect.Instance.RecordLauchEvent(1);
            OperationLogCollect.Instance.RecordEvent(1);
            var cpu = 2;
            var memory = 2048;
            DeviceUtility.GetCpuAndMemory(out cpu, out memory);
            DebugEx.LogFormat("获得机器信息:cpu {0}----内存 {1}", cpu, memory);
            GameNotice.OpenGameNotice();
        }
        public override void Update()
        {
            if (done)
            {
                return;
            }
            timer += Time.deltaTime;
            progress = Mathf.Clamp(progressBuf + timer / duration * 0.1f, progressBuf, progressBuf + 0.1f);
            yield return null;
            if (SDKUtility.Instance.InitFinished)
            {
                done = true;
            }
            else
            {
                done = false;
                progress = timer / duration;
            }
            ExceptionReport();
        }
#endif
    }
        m_Step = 1;
        var cpu = 2;
        var memory = 2048;
        DeviceUtility.GetCpuAndMemory(out cpu, out memory);
    public class AssetCopyTask : LaunchTask
    {
        int completedCount = 0;
        int totalCount = 1;
        List<FileInfo> copyTasks = new List<FileInfo>();
        DebugEx.LogFormat("获得机器信息:cpu {0}----内存 {1}", cpu, memory);
        public override float expectTime {
            get { return LocalSave.GetFloat("AssetCopyTask_ExpectTime", 30f); }
            protected set { LocalSave.SetFloat("AssetCopyTask_ExpectTime", value); }
        }
        OperationLogCollect.Instance.RecordLauchEvent(1);
        OperationLogCollect.Instance.RecordEvent(1);
        SystemSetting.Instance.LetFPSUnLimit();
        Config.Instance.RegisterGlobalEvent();
        PackageRegedit.Init();
        GameNotice.OpenGameNotice();
#if UNITY_ANDROID && !UNITY_EDITOR
        switch (VersionConfig.Get().assetAccess)
        public override void Begin()
        {
            case InstalledAsset.FullAsset:
            case InstalledAsset.HalfAsset:
            case InstalledAsset.IngoreDownLoad:
                progressBuf = progress;
                timer = 0f;
                duration = 30f;
                if (!SDKUtility.Instance.AssetCopyFinished)
                {
                    m_CurrentStage = LaunchStage.AssetCopy;
                    SDKUtility.Instance.CopyAsset();
                    while (!SDKUtility.Instance.AssetCopyFinished)
                    {
                        timer += Time.deltaTime;
                        progress = Mathf.Clamp(progressBuf + timer / duration * 0.7f, progressBuf, progressBuf + 0.7f);
                        yield return null;
                    }
                }
                if (!AssetDeCompressTask.assetDeCompressCompleted)
                {
                    progressBuf = progress;
                    var decompressProgress = AssetDeCompressTask.DecompressAync(ResourcesPath.Instance.ExternalStorePath);
                    while (!decompressProgress.done)
                    {
                        progress = progressBuf + decompressProgress.progress * 0.2f;
                        yield return null;
                    }
                    AssetDeCompressTask.assetDeCompressVersion = VersionConfig.Get().version;
                    progressBuf = progress;
                    timer = 0f;
                    while (timer < 2f)
                    {
                        timer += Time.deltaTime;
                        progress = progressBuf + timer * 0.5f * 0.1f;
                        yield return null;
                    }
                    AssetDeCompressTask.Delete7zFiles(ResourcesPath.Instance.ExternalStorePath);
                }
                break;
            case InstalledAsset.NullAsset:
                progress = 1f;
                break;
        }
#endif
        progress = 0f;
            m_CurrentStage = LaunchStage.AssetCopy;
            duration = Mathf.Max(0.1f, expectTime);
            outTime = 50f;
#if UNITY_ANDROID
        m_CurrentStage = LaunchStage.ClientVersion;
        if (!Application.isEditor || InGameDownTestUtility.enable)
        {
            VersionUtility.Instance.RequestVersionCheck();
            progressBuf = progress;
            timer = 0f;
            duration = 1f;
            while (!VersionUtility.Instance.completed)
            {
                timer += Time.deltaTime;
                progress = Mathf.Clamp(progressBuf + timer / duration * 0.1f, progressBuf, progressBuf + 0.1f);
                yield return null;
            }
        }
#endif
#if UNITY_IOS
        if (!VersionUtility.Instance.InIosAuditTime())
        {
            m_CurrentStage = LaunchStage.ClientVersion;
            if (!Application.isEditor || InGameDownTestUtility.enable)
            {
                VersionUtility.Instance.RequestVersionCheck();
                progressBuf = progress;
                timer = 0f;
                duration = 1f;
                while (!VersionUtility.Instance.completed)
                {
                    timer += Time.deltaTime;
                    progress = Mathf.Clamp(progressBuf + timer / duration * 0.1f, progressBuf, progressBuf + 0.1f);
                    yield return null;
                }
            }
        }
#endif
#if UNITY_IOS && !UNITY_EDITOR
        if (VersionUtility.Instance.versionInfo != null && VersionUtility.Instance.versionInfo.downAsset == 1)
        {
            switch (VersionConfig.Get().assetAccess)
            {
                case InstalledAsset.FullAsset:
@@ -297,168 +379,611 @@
                case InstalledAsset.IngoreDownLoad:
                    if (!SDKUtility.Instance.AssetCopyFinished)
                    {
                        m_CurrentStage = LaunchStage.AssetCopy;
                        progressBuf = progress;
                        var allFiles = new List<FileInfo>();
                        FileExtersion.GetAllDirectoryFileInfos(ResourcesPath.Instance.StreamingAssetPath, allFiles);
                        var count = allFiles.Count;
                        var index = 0;
                        while (index < count)
                        {
                            try
                            {
                                var fileInfo = allFiles[index];
                                var destPath = fileInfo.FullName.Replace(ResourcesPath.Instance.StreamingAssetPath, ResourcesPath.Instance.ExternalStorePath);
                                if (File.Exists(destPath))
                                {
                                    index++;
                                    continue;
                                }
                                var destDirectoryName = Path.GetDirectoryName(destPath);
                                if (!Directory.Exists(destDirectoryName))
                                {
                                    Directory.CreateDirectory(destDirectoryName);
                                }
                                DebugEx.LogFormat("拷贝文件:{0}", fileInfo.Name);
                                File.Copy(fileInfo.FullName, destPath, true);
                                index++;
                            }
                            catch (Exception ex)
                            {
                                DebugEx.Log(ex);
                            }
                            finally
                            {
                                progress = Mathf.Clamp(progressBuf + ((float)index / count) * 0.3f, progressBuf, progressBuf + 0.3f);
                            }
                            yield return null;
                        }
                        LocalSave.SetString("AssetCopyCompleted_IOS", VersionConfig.Get().version);
                        SDKUtility.Instance.CopyAsset();
                        done = false;
                        progress = 0f;
                    }
                    else
                    {
                        done = true;
                    }
                    break;
                case InstalledAsset.NullAsset:
                    progress = 0.1f;
                    done = true;
                    break;
            }
#endif
#if UNITY_IOS
            if (VersionUtility.Instance.versionInfo != null && VersionUtility.Instance.versionInfo.downAsset == 1)
            {
                switch (VersionConfig.Get().assetAccess)
                {
                    case InstalledAsset.FullAsset:
                    case InstalledAsset.HalfAsset:
                    case InstalledAsset.IngoreDownLoad:
                        if (!SDKUtility.Instance.AssetCopyFinished)
                        {
                            copyTasks = new List<FileInfo>();
                            FileExtersion.GetAllDirectoryFileInfos(ResourcesPath.Instance.StreamingAssetPath, copyTasks);
                            for (var i = copyTasks.Count - 1; i >= 0; i--)
                            {
                                var fileInfo = copyTasks[i];
                                var destPath = fileInfo.FullName.Replace(ResourcesPath.Instance.StreamingAssetPath, ResourcesPath.Instance.ExternalStorePath);
                                if (File.Exists(destPath))
                                {
                                    copyTasks.RemoveAt(i);
                                }
                            }
                            completedCount = 0;
                            totalCount = copyTasks.Count;
                        }
                        if (totalCount > 0)
                        {
                            done = false;
                            progress = 0f;
                        }
                        else
                        {
                            done = true;
                        }
                        break;
                    case InstalledAsset.NullAsset:
                        done = true;
                        break;
                }
            }
            else
            {
                done = true;
            }
#endif
        }
        public override void End()
        {
            expectTime = timer;
            DebugEx.LogFormat("{0}执行时长:{1};", this.GetType().Name, timer);
#if UNITY_IOS
            LocalSave.SetString("AssetCopyCompleted_IOS", VersionConfig.Get().version);
#endif
        }
        public override void Update()
        {
            if (done)
            {
                return;
            }
            timer += Time.deltaTime;
#if UNITY_ANDROID
            if (!SDKUtility.Instance.AssetCopyFinished)
            {
                done = false;
                progress = timer / duration;
            }
            else
            {
                done = true;
            }
#endif
#if UNITY_IOS
            if (totalCount > 0)
            {
                if (completedCount < totalCount)
                {
                    var fileInfo = copyTasks[0];
                    var destPath = fileInfo.FullName.Replace(ResourcesPath.Instance.StreamingAssetPath, ResourcesPath.Instance.ExternalStorePath);
                    var destDirectoryName = Path.GetDirectoryName(destPath);
                    if (!Directory.Exists(destDirectoryName))
                    {
                        Directory.CreateDirectory(destDirectoryName);
                    }
                    DebugEx.LogFormat("拷贝文件:{0}", fileInfo.Name);
                    File.Copy(fileInfo.FullName, destPath, true);
                    copyTasks.RemoveAt(0);
                    completedCount++;
                    done = false;
                    progress = (float)completedCount / totalCount;
                }
                else
                {
                    done = true;
                }
            }
            else
            {
                done = true;
            }
        }
#endif
            ExceptionReport();
        }
    }
        OperationLogCollect.Instance.RecordLauchEvent(2);
        OperationLogCollect.Instance.RecordEvent(2);
    public class AssetDecompressTask : LaunchTask
    {
        public override float expectTime {
            get { return LocalSave.GetFloat("AssetDecompressTask_ExpectTime", 5f); }
            protected set { LocalSave.SetFloat("AssetDecompressTask_ExpectTime", value); }
        }
        if (VersionUtility.Instance.NeedDownAsset())
        AssetDeCompressTask.DecompressProgress deCompressProgress = null;
        float waitTimer = 0f;
        public override void Begin()
        {
            m_CurrentStage = LaunchStage.AssetCopy;
            duration = Mathf.Max(0.1f, expectTime);
            if (!AssetDeCompressTask.assetDeCompressCompleted)
            {
                deCompressProgress = AssetDeCompressTask.DecompressAync(ResourcesPath.Instance.ExternalStorePath);
                done = false;
            }
            else
            {
                done = true;
            }
        }
        public override void End()
        {
            AssetDeCompressTask.assetDeCompressVersion = VersionConfig.Get().version;
            AssetDeCompressTask.Delete7zFiles(ResourcesPath.Instance.ExternalStorePath);
        }
        public override void Update()
        {
            if (done)
            {
                return;
            }
            timer += Time.deltaTime;
            progress = timer / duration;
            if (deCompressProgress == null || deCompressProgress.done)
            {
                waitTimer += Time.deltaTime;
                if (waitTimer > 2f)
                {
                    done = true;
                }
            }
        }
    }
    public class GetVersionInfoTask : LaunchTask
    {
        public override float expectTime {
            get { return LocalSave.GetFloat("GetVersionInfoTask_ExpectTime", 1f); }
            protected set { LocalSave.SetFloat("GetVersionInfoTask_ExpectTime", value); }
        }
        public override void Begin()
        {
            m_CurrentStage = LaunchStage.ClientVersion;
            duration = expectTime;
#if UNITY_ANDROID
            if (InGameDownTestUtility.enable || !Application.isEditor)
            {
                VersionUtility.Instance.RequestVersionCheck();
                done = false;
                progress = 0f;
            }
            else
            {
                done = true;
            }
#endif
#if UNITY_IOS
            if (!VersionUtility.Instance.InIosAuditTime())
            {
                VersionUtility.Instance.RequestVersionCheck();
                done = false;
                progress = 0f;
            }
            else
            {
                done = true;
            }
#endif
        }
        public override void End()
        {
            expectTime = timer;
            DebugEx.LogFormat("{0}执行时长:{1};", this.GetType().Name, timer);
        }
        public override void Update()
        {
            if (done)
            {
                return;
            }
            timer += Time.deltaTime;
            if (!VersionUtility.Instance.completed)
            {
                done = false;
                progress = timer / expectTime;
            }
            else
            {
                done = true;
            }
            ExceptionReport();
        }
    }
    public class CheckAssetValidTask : LaunchTask
    {
        public override float expectTime {
            get { return LocalSave.GetFloat("CheckAssetValidTask_ExpectTime", 3f); }
            protected set { LocalSave.SetFloat("CheckAssetValidTask_ExpectTime", value); }
        }
        public override void Begin()
        {
            m_CurrentStage = LaunchStage.CheckAsset;
            duration = Mathf.Max(0.1f, expectTime);
            ServerListCenter.Instance.RequestJumpUrl();
            OperationLogCollect.Instance.RecordLauchEvent(2);
            OperationLogCollect.Instance.RecordEvent(2);
            if (VersionUtility.Instance.NeedDownAsset())
            {
                AssetVersionUtility.GetAssetVersionFile();
                done = false;
                progress = 0f;
            }
            else
            {
                done = true;
            }
        }
        public override void End()
        {
            expectTime = timer;
            DebugEx.LogFormat("{0}执行时长:{1};", this.GetType().Name, timer);
        }
        public override void Update()
        {
            if (done)
            {
                return;
            }
            timer += Time.deltaTime;
            if (!AssetVersionUtility.checkAssetCompleted)
            {
                done = false;
                progress = timer / expectTime;
            }
            else
            {
                done = true;
            }
            ExceptionReport();
        }
    }
    public class DownLoadAssetTask : LaunchTask
    {
        public override float expectTime {
            get { return LocalSave.GetFloat("DownLoadAssetTask_ExpectTime", 3f); }
            protected set { LocalSave.SetFloat("DownLoadAssetTask_ExpectTime", value); }
        }
        public override void Begin()
        {
            m_CurrentStage = LaunchStage.DownLoad;
            progressBuf = progress;
            timer = 0f;
            duration = 1.5f;
            AssetVersionUtility.GetAssetVersionFile();
            while (!AssetVersionUtility.checkAssetCompleted)
            duration = Mathf.Max(0.1f, expectTime);
            if (VersionUtility.Instance.NeedDownAsset())
            {
                timer += Time.deltaTime;
                progress = Mathf.Clamp(progressBuf + timer / duration * 0.3f, progressBuf, progressBuf + 0.3f);
                yield return null;
            }
            if (!AssetVersionUtility.priorAssetDownLoadDone)
            {
                AssetVersionUtility.BeginDownLoadTask(true);
                while (!AssetVersionUtility.priorAssetDownLoadDone)
                if (!AssetVersionUtility.priorAssetDownLoadDone)
                {
                    yield return null;
                    AssetVersionUtility.BeginDownLoadTask(true);
                    done = false;
                    progress = 0f;
                }
                else
                {
                    done = true;
                }
                yield return WaitingForSecondConst.WaitMS200;
            }
            else
            {
                done = true;
            }
        }
        public override void End()
        {
            expectTime = timer;
            DebugEx.LogFormat("{0}执行时长:{1};", this.GetType().Name, timer);
            if (!AssetVersionUtility.unPriorAssetDownLoadDone)
            {
                AssetVersionUtility.BeginDownLoadTask(false);
            }
        }
        if (!AssetSource.allFromEditor)
        public override void Update()
        {
            StartCoroutine(AssetBundleUtility.Instance.Initialize());
        }
        m_CurrentStage = LaunchStage.ConfigLoad;
        LaunchPostProcess.Instance.Begin();
        progressBuf = progress;
        while (!LaunchPostProcess.Instance.completed
            && LaunchPostProcess.Instance.progress < (Application.platform == RuntimePlatform.WindowsEditor ? 1f : 0.8f))
        {
            progress = Mathf.Clamp(progressBuf + LaunchPostProcess.Instance.progress * (1 - progressBuf), progressBuf, 1f);
            yield return null;
        }
        OperationLogCollect.Instance.RecordLauchEvent(3);
        OperationLogCollect.Instance.RecordEvent(3);
        LuaUtility.Instance.Init();
        CSharpCallLua.Init();
        ShaderUtility.WarmUpAll();
        SpeechTranslate.Instance.RequestGetToken();
        if (!AssetSource.allFromEditor)
        {
            progressBuf = progress;
            timer = 0f;
            duration = 3f;
            while (!AssetBundleUtility.Instance.initialized)
            if (done)
            {
                timer += Time.deltaTime;
                progress = Mathf.Clamp(progressBuf + timer / duration * 0.2f, progressBuf, 1f);
                yield return null;
                return;
            }
            AssetBundleUtility.Instance.Sync_LoadAll("ui/prioritywindow");
            SnxxzGame.Instance.StartCoroutine(AssetBundleUtility.Instance.InitalizeUIResources());
        }
        UI3DModelExhibition.CreateStage();
        var launchWin = WindowCenter.Instance.Get<LaunchWin>();
        if (launchWin != null)
        {
            launchWin.FadeOut();
        }
        WindowCenter.Instance.Open<LaunchBackGroundWin>(true);
        var launchBackGroundWin = WindowCenter.Instance.Get<LaunchBackGroundWin>();
        launchBackGroundWin.transform.SetAsFirstSibling();
        progressBuf = progress;
        timer = 0f;
        duration = 1f;
        while (timer < duration)
        {
            timer += Time.deltaTime;
            progress = Mathf.Clamp(progressBuf + timer / duration, progressBuf, 1f);
            yield return null;
            if (!AssetVersionUtility.priorAssetDownLoadDone)
            {
                done = false;
                progress = 0f;
            }
            else
            {
                done = true;
            }
            ExceptionReport();
        }
        StageManager.Instance.LoadLoginStage();
        Debug.LogFormat("启动耗时:{0}", Time.time - startTime);
    }
    public enum LaunchStage
    public class AssetBundleInitTask : LaunchTask
    {
        None,
        AssetCopy,
        ClientVersion,
        DownLoad,
        ConfigLoad,
        Complete,
        public override float expectTime {
            get { return LocalSave.GetFloat("AssetBundleInitTask_ExpectTime", 1f); }
            protected set { LocalSave.SetFloat("AssetBundleInitTask_ExpectTime", value); }
        }
        public override void Begin()
        {
            m_CurrentStage = LaunchStage.AssetBundleInit;
            duration = Mathf.Max(0.1f, expectTime);
            if (!AssetSource.allFromEditor)
            {
                AssetBundleUtility.Instance.Sync_LoadAll("ui/prioritywindow");
                SnxxzGame.Instance.StartCoroutine(AssetBundleUtility.Instance.Initialize());
                SnxxzGame.Instance.StartCoroutine(AssetBundleUtility.Instance.InitalizeUIResources());
                done = false;
                progress = 0f;
            }
            else
            {
                done = true;
            }
        }
        public override void End()
        {
            expectTime = timer;
            DebugEx.LogFormat("{0}执行时长:{1};", this.GetType().Name, timer);
        }
        public override void Update()
        {
            if (done)
            {
                return;
            }
            if (AssetBundleUtility.Instance.initialized && AssetBundleUtility.Instance.initializedUIAssetBundle)
            {
                done = true;
            }
            else
            {
                done = false;
                progress = timer / duration;
            }
            ExceptionReport();
        }
    }
    public class ConfigInitTask : LaunchTask
    {
        public override float expectTime {
            get { return LocalSave.GetFloat("ConfigInitTask_ExpectTime", inferredTime); }
            protected set { LocalSave.SetFloat("ConfigInitTask_ExpectTime", value); }
        }
        float threshold = 1f;
        float inferredTime = 3f;
        public override void Begin()
        {
            inferredTime = LocalSave.GetFloat("AssetCopyTask_ExpectTime", 30f) / 30f * 10f;
            m_CurrentStage = LaunchStage.ConfigInit;
            duration = Mathf.Max(0.1f, expectTime);
            threshold = Application.platform == RuntimePlatform.WindowsEditor ? 1f : 0.9f;
            LaunchPostProcess.Instance.Begin();
        }
        public override void End()
        {
            expectTime = timer;
            DebugEx.LogFormat("{0}执行时长:{1};", this.GetType().Name, timer);
            OperationLogCollect.Instance.RecordLauchEvent(3);
            OperationLogCollect.Instance.RecordEvent(3);
        }
        public override void Update()
        {
            if (done)
            {
                return;
            }
            timer += Time.deltaTime;
            if (!LaunchPostProcess.Instance.completed && LaunchPostProcess.Instance.progress < threshold)
            {
                done = false;
                progress = timer / duration;
            }
            else
            {
                done = true;
            }
            ExceptionReport();
        }
    }
    public class LaunchFadeOutTask : LaunchTask
    {
        public override float expectTime {
            get { return LocalSave.GetFloat("LaunchFadeOutTask_ExpectTime", 1f); }
            protected set { LocalSave.SetFloat("LaunchFadeOutTask_ExpectTime", value); }
        }
        bool launchBackGroundLoadedOk = false;
        bool openBackGround = false;
        public override void Begin()
        {
            m_CurrentStage = LaunchStage.Complete;
            duration = Mathf.Max(0.1f, expectTime);
            LuaUtility.Instance.Init();
            CSharpCallLua.Init();
            ShaderUtility.WarmUpAll();
            SpeechTranslate.Instance.RequestGetToken();
            UI3DModelExhibition.CreateStage();
            var launchWin = WindowCenter.Instance.Get<LaunchWin>();
            if (launchWin != null)
            {
                launchWin.FadeOut();
            }
            UILoader.LoadWindowAsync("LaunchBackGroundWin",
                (bool ok, UnityEngine.Object @object) =>
                {
                    if (ok)
                    {
                        launchBackGroundLoadedOk = true;
                    }
                });
        }
        public override void End()
        {
            expectTime = timer;
            DebugEx.LogFormat("{0}执行时长:{1};", this.GetType().Name, timer);
            if (!openBackGround)
            {
                WindowCenter.Instance.Open<LaunchBackGroundWin>(true);
            }
            var launchBackGroundWin = WindowCenter.Instance.Get<LaunchBackGroundWin>();
            launchBackGroundWin.transform.SetAsFirstSibling();
        }
        public override void Update()
        {
            if (done)
            {
                return;
            }
            timer += Time.deltaTime;
            if (!openBackGround)
            {
                if (launchBackGroundLoadedOk)
                {
                    WindowCenter.Instance.Open<LaunchBackGroundWin>();
                    openBackGround = true;
                }
            }
            if (timer >= expectTime)
            {
                done = true;
            }
            else
            {
                done = false;
                progress = Mathf.Clamp01(timer / expectTime);
            }
            ExceptionReport();
        }
    }
    public class WaitTask : LaunchTask
    {
        public WaitTask(float seconds)
        {
            expectTime = Mathf.Max(0.1f, seconds);
        }
        public override void Begin()
        {
        }
        public override void End()
        {
        }
        public override void Update()
        {
            timer += Time.deltaTime;
            if (timer >= expectTime)
            {
                done = true;
            }
            else
            {
                done = false;
                progress = Mathf.Clamp01(timer / expectTime);
            }
        }
    }
    public struct ProgressInfo
    {
        public LaunchStage stage;
        public float totalProgress;
        public float partProgress;
        public ProgressInfo(LaunchStage stage, float totalProgress, float partProgress)
        {
            this.stage = stage;
            this.totalProgress = totalProgress;
            this.partProgress = partProgress;
        }
    }
}
Core/GameEngine/Model/Config/SkillFrameAnimationConfig.cs
@@ -1,6 +1,6 @@
//--------------------------------------------------------
//    [Author]:            第二世界
//    [  Date ]:           Tuesday, January 22, 2019
//    [  Date ]:           Wednesday, January 23, 2019
//--------------------------------------------------------
using UnityEngine;
@@ -14,7 +14,9 @@
        public int skillTypeId { get ; private set ; }
        public int totalTime { get ; private set ; }
        public string[] spriteKeys;
        public string descriptionIcon { get ; private set; }
        public string descriptionIcon { get ; private set; }
        public Vector3 sizeDelta { get ; private set; }
        public Vector3 position { get ; private set; }
        public override string getKey()
        {
@@ -30,7 +32,11 @@
            
                spriteKeys = rawContents[2].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
            
                descriptionIcon = rawContents[3].Trim();
                descriptionIcon = rawContents[3].Trim();
                sizeDelta=rawContents[4].Vector3Parse();
                position=rawContents[5].Vector3Parse();
            }
            catch (Exception ex)
            {
Core/GameEngine/Model/Config/SkillFrameAnimationConfig.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: d2052f17dcdee634082ca8f214df0ecd
timeCreated: 1548156734
timeCreated: 1548246768
licenseType: Pro
MonoImporter:
  serializedVersion: 2
Core/GameEngine/Model/ConfigManager.cs
@@ -359,7 +359,7 @@
                    return 1;
                }
            case RuntimePlatform.WindowsEditor:
                return 50;
                return 4;
            default:
                return 1;
        }
@@ -396,7 +396,7 @@
                    return 1;
                }
            case RuntimePlatform.WindowsEditor:
                return 50;
                return 20;
            default:
                return 5;
        }
Core/NetworkPackage/ClientPack/ClientToMapServer/CA3_Item/CA332_tagCMZhuXianEquipDecompose.cs
New file
@@ -0,0 +1,24 @@
using UnityEngine;
using System.Collections;
// A3 32 诛仙装备分解 #tagCMZhuXianEquipDecompose
public class CA332_tagCMZhuXianEquipDecompose : GameNetPackBasic {
    public byte Count;    //材料所在背包索引的数量
    public  ushort[] IndexList;    //材料所在背包索引列表
    public  uint[] ItemIDList;    //材料所在背包物品ID列表
    public byte IsAuto;    //是否自动分解
    public CA332_tagCMZhuXianEquipDecompose () {
        combineCmd = (ushort)0x03FE;
        _cmd = (ushort)0xA332;
    }
    public override void WriteToBytes () {
        WriteBytes (Count, NetDataType.BYTE);
        WriteBytes (IndexList, NetDataType.WORD, Count);
        WriteBytes (ItemIDList, NetDataType.DWORD, Count);
        WriteBytes (IsAuto, NetDataType.BYTE);
    }
}
Core/NetworkPackage/ClientPack/ClientToMapServer/CA3_Item/CA332_tagCMZhuXianEquipDecompose.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 59fd31bf691c8de45befe15b1f45fd79
timeCreated: 1548228630
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0403_tagPlayerLoginLoadOK.cs
@@ -15,6 +15,8 @@
    {
        base.Done(vNetPack);
        var vNetData = vNetPack as H0403_tagPlayerLoginLoadOK;
        StageLoadTimeOutCatcher.RecordProtocol(vNetPack.socketType, "0403", DateTime.Now);
        GameNetSystem.Instance.netState = GameNetSystem.NetState.Connected;
        finishedLogin = true;
        GA_Hero.s_MapSwitching = false;
Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0614_tagUseSkillPos.cs
@@ -189,6 +189,13 @@
                            {
                                SFXPlayUtility.Instance.PlayBattleEffect(_effectID, _cTarget.Root);
                            }
                            if (int.TryParse(_funcConfig.Numerical2, out _effectID))
                            {
                                if (_effectID != 0)
                                {
                                    EffectMgr.Instance.PlayUIEffect(_effectID, 2500, Snxxz.UI.WindowCenter.Instance.uiRoot.normalCanvas, false);
                                }
                            }
                        }
                    }
@@ -631,7 +638,7 @@
                    {
                        if (_effectID != 0)
                        {
                            EffectMgr.Instance.PlayUIEffect(_effectID, 2500, Snxxz.UI.WindowCenter.Instance.uiRoot.normalCanvas, true);
                            EffectMgr.Instance.PlayUIEffect(_effectID, 2500, Snxxz.UI.WindowCenter.Instance.uiRoot.normalCanvas, false);
                        }
                    }
                }
Core/NetworkPackage/DTCFile/ServerPack/HA8_Item/DTCA815_tagMCZhuXianDecomposeResult.cs
New file
@@ -0,0 +1,21 @@
using UnityEngine;
using System.Collections;
using Snxxz.UI;
// A8 15 诛仙装备分解结果通知 #tagMCZhuXianDecomposeResult
public class DTCA815_tagMCZhuXianDecomposeResult : DtcBasic {
    public override void Done(GameNetPackBasic vNetPack) {
        base.Done(vNetPack);
        HA815_tagMCZhuXianDecomposeResult vNetData = vNetPack as HA815_tagMCZhuXianDecomposeResult;
        var model = ModelCenter.Instance.GetModel<JadeDynastyDecomposeModel>();
        model.UpdateJadeDynastyDecomposeResult(vNetData);
    }
}
Core/NetworkPackage/DTCFile/ServerPack/HA8_Item/DTCA815_tagMCZhuXianDecomposeResult.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 89773dd503eda2b46ada6ec382c07cb6
timeCreated: 1548228630
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/ServerPack/HA8_Item/HA815_tagMCZhuXianDecomposeResult.cs
New file
@@ -0,0 +1,31 @@
using UnityEngine;
using System.Collections;
// A8 15 诛仙装备分解结果通知 #tagMCZhuXianDecomposeResult
public class HA815_tagMCZhuXianDecomposeResult : GameNetPackBasic {
    public byte Cnt;    //数量
    public  tagMCZhuXianDecomposeItem[] ItemList;
    public HA815_tagMCZhuXianDecomposeResult () {
        _cmd = (ushort)0xA815;
    }
    public override void ReadFromBytes (byte[] vBytes) {
        TransBytes (out Cnt, vBytes, NetDataType.BYTE);
        ItemList = new tagMCZhuXianDecomposeItem[Cnt];
        for (int i = 0; i < Cnt; i ++) {
            ItemList[i] = new tagMCZhuXianDecomposeItem();
            TransBytes (out ItemList[i].ItemID, vBytes, NetDataType.DWORD);
            TransBytes (out ItemList[i].ItemCnt, vBytes, NetDataType.BYTE);
            TransBytes (out ItemList[i].IsBind, vBytes, NetDataType.BYTE);
        }
    }
    public struct tagMCZhuXianDecomposeItem {
        public uint ItemID;        //物品ID
        public byte ItemCnt;        //物品数量
        public byte IsBind;        //是否绑定
    }
}
Core/NetworkPackage/ServerPack/HA8_Item/HA815_tagMCZhuXianDecomposeResult.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 52dfc4652741b4d45a851499d0df08b0
timeCreated: 1548228630
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Fight/Actor/AI/HeroAI_KillUntilDie.cs
@@ -226,6 +226,12 @@
                m_IsMovingToTarget = true;
                if (!_hero.IsRushing && UserInputHandler.isTouched)
                {
                    m_LimitOnce = true;
                    _hero.StopPathFind();
                }
                return;
            }
Fight/Actor/HeroBehaviour.cs
@@ -139,7 +139,8 @@
            }
        }
        if (m_Hero.aiHandler.currentType == E_HeroAIType.None)
        if (m_Hero.aiHandler.currentType == E_HeroAIType.None
         || m_Hero.aiHandler.currentType == E_HeroAIType.KillUntilDie)
        {
            byte _type = (byte)E_HeroAIType.KillUntilDie;
            KillUntilDieData _data = m_Hero.aiHandler.aiData[_type] as KillUntilDieData;
Fight/Actor/UserInputHandler.cs
@@ -278,6 +278,7 @@
                    _hero.Run();
                    _hero.State = E_ActorState.CtrlRun;
                    _hero.Behaviour.StopKillUntilDieAI();
                }
            }
        }
@@ -296,13 +297,17 @@
        GA_Hero _hero = PlayerDatas.Instance.hero;
        if ((StatusMgr.IsValid()
         && StatusMgr.Instance.CanMove(PlayerDatas.Instance.PlayerId)))
        if (_hero != null)
        {
            if (_hero != null
             && _hero.State == E_ActorState.AutoRun)
            _hero.Behaviour.StopKillUntilDieAI();
            if ((StatusMgr.IsValid()
             && StatusMgr.Instance.CanMove(PlayerDatas.Instance.PlayerId)))
            {
                _hero.StopPathFind();
                if (_hero.State == E_ActorState.AutoRun)
                {
                    _hero.StopPathFind();
                }
            }
        }
    }
Fight/GameActor/GActor.cs
@@ -282,11 +282,12 @@
        return m_Path.corners;
    }
    public void MoveToTarget(GActor target, float keepDist = 0)
    public void MoveToTarget(GActor target, float keepDist = 0, bool force = false)
    {
        if (PathFindStatus == E_PathFindStatus.Moving
         && m_SearchType == E_SearchType.Dynamic
         && TargetActor == target)
         && TargetActor == target
         && !force)
        {
            return;
        }
@@ -335,16 +336,16 @@
    public void StopPathFind()
    {
        PathFindStatus = E_PathFindStatus.Stop;
        if (State != E_ActorState.AutoRun)
        {
            return;
        }
        PathFindStatus = E_PathFindStatus.Stop;
        TargetActor = null;
        DestPos = Vector3.zero;
        m_CornerIndex = 0;
        if (NextAction != GAStaticDefine.Act_Dead
         && NextAction != 200
Fight/GameActor/GActorPlayerBase.cs
@@ -1191,11 +1191,6 @@
        {
            if (null != m_Guard)
            {
                if (m_Guard.itemID == guardID)
                {
                    return;
                }
                m_Guard.UnInit();
                m_Guard = null;
            }
Fight/Stage/Dungeon/DungeonStage.cs
@@ -231,6 +231,7 @@
                break;
            case DemonJarModel.DEMONJAR_MAPID:
            case 31140:
            case JadeDynastyBossModel.JADEDYNASTY_MAP:
                WindowCenter.Instance.Open<DungeonPickUpItemCoolDownWin>();
                break;
            case FairyLeagueModel.FAIRY_LEAGUE_DUNGEON:
@@ -249,7 +250,8 @@
        // 等待处理开启自动战斗
        DungeonModel _dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>();
        if (PlayerDatas.Instance.baseData.MapID == 52020
         || PlayerDatas.Instance.baseData.MapID == 52010)
         || PlayerDatas.Instance.baseData.MapID == 52010
         || PlayerDatas.Instance.baseData.MapID == JadeDynastyBossModel.JADEDYNASTY_MAP)
        {
            _dungeonModel.updateMissionEvent += HandleAutoFight;
        }
@@ -261,43 +263,41 @@
    private void HandleMapData()
    {
        mapData = H2Engine.MapData.LoadFormFile(PlayerDatas.Instance.baseData.MapID);
        if (mapData == null)
        {
            Debug.LogFormat("------------------ 数据是空的");
            return;
        }
        // 目前版本只处理刷场景物件
        foreach (var _trigger in mapData.triggers)
        {
            if (_trigger.triggerType != H2Engine.MapTrigger.E_TriggerType.EnterStage)
            {
                Debug.Log("_trigger.triggerType: " + _trigger.triggerType);
                continue;
            }
        // mapData = H2Engine.MapData.LoadFormFile(PlayerDatas.Instance.baseData.MapID);
        // if (mapData == null)
        // {
        //     return;
        // }
        // // 目前版本只处理刷场景物件
        // foreach (var _trigger in mapData.triggers)
        // {
        //     if (_trigger.triggerType != H2Engine.MapTrigger.E_TriggerType.EnterStage)
        //     {
        //         continue;
        //     }
            foreach (var _id in _trigger.evevntIDs)
            {
                var _event = mapData.eventDict[_id];
                if (_event.type == H2Engine.Evt.E_EventType.SceneObject)
                {
                    var _refreshSceneObject = _event as H2Engine.Evt_RefreshSceneObject;
                    if (_refreshSceneObject != null)
                    {
                        foreach (var _sceneObjData in _refreshSceneObject.sceneObjects)
                        {
                            var _prefab = InstanceResourcesLoader.LoadModelPrefab(InstanceResourcesLoader.raceSuffix, _sceneObjData.resName, false);
                            if (_prefab)
                            {
                                var _go = GameObject.Instantiate(_prefab);
                                _go.transform.position = _sceneObjData.position;
                                _go.transform.eulerAngles = _sceneObjData.eulerAngles;
                            }
                        }
                    }
                }
            }
        }
        //     foreach (var _id in _trigger.evevntIDs)
        //     {
        //         var _event = mapData.eventDict[_id];
        //         if (_event.type == H2Engine.Evt.E_EventType.SceneObject)
        //         {
        //             var _refreshSceneObject = _event as H2Engine.Evt_RefreshSceneObject;
        //             if (_refreshSceneObject != null)
        //             {
        //                 foreach (var _sceneObjData in _refreshSceneObject.sceneObjects)
        //                 {
        //                     var _prefab = InstanceResourcesLoader.LoadModelPrefab(InstanceResourcesLoader.raceSuffix, _sceneObjData.resName, false);
        //                     if (_prefab)
        //                     {
        //                         var _go = GameObject.Instantiate(_prefab);
        //                         _go.transform.position = _sceneObjData.position;
        //                         _go.transform.eulerAngles = _sceneObjData.eulerAngles;
        //                     }
        //                 }
        //             }
        //         }
        //     }
        // }
    }
    private void HandleAutoFight()
@@ -464,9 +464,9 @@
    {
        for (var i = 100101; i <= 100109; i++)
        {
            var config = Config.Instance.Get<SceneReplaceConfig>(i);
            if (config != null)
            if (Config.Instance.ContainKey<SceneReplaceConfig>(i))
            {
                var config = Config.Instance.Get<SceneReplaceConfig>(i);
                var groundTexture = SceneLoader.LoadTexture(config.folder, config.resourceName);
                var @object = GameObject.Find(config.objectPath);
@@ -475,6 +475,35 @@
            }
        }
        var _func = Config.Instance.Get<FuncConfigConfig>("MapObjectConfig");
        if (_func != null)
        {
            var _json = LitJson.JsonMapper.ToObject(_func.Numerical1);
            var _mapID = PlayerDatas.Instance.baseData.MapID.ToString();
            if ((_json as IDictionary).Contains(_mapID))
            {
                _json = _json[_mapID];
                bool _isShow = (bool)_json["show"];
                if (_isShow)
                {
                    string _effectName = _json["obj"].ToString();
                    string _parent = _json["parent"].ToString();
                    var _prefab = InstanceResourcesLoader.LoadModelPrefab(InstanceResourcesLoader.raceSuffix, _effectName, false);
                    if (_prefab)
                    {
                        var _go = GameObject.Instantiate(_prefab);
                        var _parentNode = GameObject.Find(_parent);
                        _go.transform.SetParent(_parentNode.transform);
                        _go.transform.localPosition = Vector3.zero;
                        _go.transform.localRotation = Quaternion.identity;
                        _go.transform.localScale = Vector3.one;
                    }
                }
            }
        }
    }
Fight/Stage/StageManager.cs
@@ -318,7 +318,7 @@
            }
            catch (System.Exception ex)
            {
                ExceptionCatcher.ReportException("场景加载 Step6", ex);
                ExceptionCatcher.ReportException("场景加载 Step6 执行到: " + m_InitHeroStep, ex);
            }
        }
@@ -455,16 +455,24 @@
        yield return WaitingForSecondConst.WaitMS1000;
        var mapConfig = Config.Instance.Get<MapConfig>(PlayerDatas.Instance.baseData.MapID);
        if (mapConfig.MapFBType == (int)MapType.OpenCountry)
        if (CrossServerUtility.IsCrossServer())
        {
            var sjzMapConfig = Config.Instance.Get<MapConfig>(10010);
            var position = new Vector3(sjzMapConfig.BornPoints[0].x, 0, sjzMapConfig.BornPoints[0].y);
            MapTransferUtility.Send_WorldTransfer(10010, position, MapTransferType.WorldTransport, 255, 0);
            var sendInfo = new CC003_tagCGForceQuitCrossState();
            GameNetSystem.Instance.SendInfo(sendInfo);
        }
        else
        {
            ModelCenter.Instance.GetModel<DungeonModel>().ExitCurrentDungeon();
            var mapConfig = Config.Instance.Get<MapConfig>(PlayerDatas.Instance.baseData.MapID);
            if (mapConfig.MapFBType == (int)MapType.OpenCountry)
            {
                var sjzMapConfig = Config.Instance.Get<MapConfig>(10010);
                var position = new Vector3(sjzMapConfig.BornPoints[0].x, 0, sjzMapConfig.BornPoints[0].y);
                MapTransferUtility.Send_WorldTransfer(10010, position, MapTransferType.WorldTransport, 255, 0);
            }
            else
            {
                ModelCenter.Instance.GetModel<DungeonModel>().ExitCurrentDungeon();
            }
        }
        if (loadTimeOutCatcher != null)
@@ -487,8 +495,11 @@
        }
    }
    private int m_InitHeroStep = 0;
    private void InitHero()
    {
        m_InitHeroStep = 0;
        // 初始化摄像机
        if (!CameraController.Instance)
        {
@@ -496,19 +507,19 @@
            CameraController.Instance.AcceptInput = false;
            CameraController.Instance.CameraObject.enabled = false;
        }
        m_InitHeroStep = 1;
        GA_Hero _hero = PlayerDatas.Instance.hero;
        if (_hero == null)
        {
            _hero = GAMgr.Instance.RequestPlayer<GA_Hero>(PlayerDatas.Instance.PlayerId, E_ActorGroup.User, null);
        }
        m_InitHeroStep = 2;
        _hero.State = E_ActorState.Idle;
        _hero.ActorInfo.ResetHp((int)PlayerDatas.Instance.baseData.HP, -1, (int)PlayerDatas.Instance.extersion.MaxHP);
        _hero.CalculateMoveSpeed((ushort)PlayerDatas.Instance.extersion.SpeedValue);
        _hero.CalculateAtkSpeed(PlayerDatas.Instance.extersion.battleValEx1);
        _hero.InitBornPos(PlayerDatas.Instance.baseData.PosX, PlayerDatas.Instance.baseData.PosY);
        m_InitHeroStep = 3;
        CameraController.Instance.SetLookTarget(_hero.Root);
        CameraController.Instance.Apply();
@@ -517,7 +528,7 @@
        ItemModel _itemModel = _equipModel.GetItemModelByIndex((int)RoleEquipType.retClothes);
        ItemModel _fashion = _equipModel.GetItemModelByIndex((int)RoleEquipType.retFashionClothes);
        m_InitHeroStep = 4;
        if (_fashion != null)
        {
            _hero.SwitchClothes((uint)_fashion.itemInfo.ItemID, (int)RoleEquipType.retFashionClothes);
@@ -530,7 +541,7 @@
        {
            _hero.SwitchClothes(0);
        }
        m_InitHeroStep = 5;
        _itemModel = _equipModel.GetItemModelByIndex((int)RoleEquipType.retWeapon);
        _fashion = _equipModel.GetItemModelByIndex((int)RoleEquipType.retFashionWeapon);
@@ -547,6 +558,7 @@
            _hero.SwitchWeapon(0);
        }
        m_InitHeroStep = 6;
        _itemModel = _equipModel.GetItemModelByIndex((int)RoleEquipType.retWeapon2);
        _fashion = _equipModel.GetItemModelByIndex((int)RoleEquipType.retFashionWeapon2);
@@ -562,6 +574,7 @@
        {
            _hero.SwitchSecondary(0);
        }
        m_InitHeroStep = 7;
        _itemModel = _equipModel.GetItemModelByIndex((int)RoleEquipType.retWing);
@@ -570,6 +583,7 @@
            _hero.SwitchWing((uint)_itemModel.itemInfo.ItemID);
        }
        m_InitHeroStep = 8;
        var _mapConfig = Config.Instance.Get<MapConfig>(PlayerDatas.Instance.baseData.MapID);
        if (_mapConfig.CanRide == 1)
        {
@@ -584,6 +598,7 @@
                }
            }
        }
        m_InitHeroStep = 9;
        _itemModel = _equipModel.GetItemModelByIndex((int)RoleEquipType.retSpiritAnimal);
@@ -592,12 +607,17 @@
            _hero.SwitchGuard((uint)_itemModel.itemInfo.ItemID);
        }
        m_InitHeroStep = 10;
        _hero.SyncSuitEffect();
        m_InitHeroStep = 11;
        _hero.IdleImmediate();
        _hero.SetFairyLeagueHeadUp(PlayerDatas.Instance.baseData.MapID == FairyLeagueModel.FAIRY_LEAGUE_DUNGEON);
        _hero.CheckAncientHeadUp();
        m_InitHeroStep = 12;
        var titleId = 0;
        if (PlayerDatas.Instance.baseData.MapID != 31160)
        {
@@ -607,6 +627,7 @@
        }
        _hero.SwitchTitle((uint)titleId);
        m_InitHeroStep = 13;
        // 判断buff
        if (StatusMgr.Instance.IsExist(PlayerDatas.Instance.PlayerId, StatusMgr.Instance.redNameBuffID))
        {
@@ -615,6 +636,7 @@
        _hero.RequestLight();
        m_InitHeroStep = 14;
        PlayerDatas.Instance.hero = _hero;
        var _preloadEffectList = GeneralDefine.PreloadSkillEffect[_hero.JobSetup.Job - 1];
@@ -625,6 +647,7 @@
                InstanceResourcesLoader.PreloadSkillEffect(_id);
            }
        }
        m_InitHeroStep = 15;
    }
    private string GetAssetBundleNameByStageId(int stageID, int mapResID)
Lua/Gen/DebugUtilityWrap.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 2e45bdc7ab1407847ac64c5843fb2d66
timeCreated: 1547610180
timeCreated: 1548252570
licenseType: Pro
MonoImporter:
  serializedVersion: 2
Lua/Gen/DelegatesGensBridge.cs
@@ -171,7 +171,7 @@
#endif
        }
        
        public Snxxz.UI.DailyQuestModel __Gen_Delegate_Imp7(object p0)
        public void __Gen_Delegate_Imp7(object p0, object p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -181,63 +181,20 @@
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                ObjectTranslator translator = luaEnv.translator;
                translator.PushAny(L, p0);
                translator.PushAny(L, p1);
                
                PCall(L, 1, 1, errFunc);
                PCall(L, 2, 0, errFunc);
                
                
                Snxxz.UI.DailyQuestModel __gen_ret = (Snxxz.UI.DailyQuestModel)translator.GetObject(L, errFunc + 1, typeof(Snxxz.UI.DailyQuestModel));
                LuaAPI.lua_settop(L, errFunc - 1);
                return  __gen_ret;
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        
        public Snxxz.UI.DungeonModel __Gen_Delegate_Imp8(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                ObjectTranslator translator = luaEnv.translator;
                translator.PushAny(L, p0);
                PCall(L, 1, 1, errFunc);
                Snxxz.UI.DungeonModel __gen_ret = (Snxxz.UI.DungeonModel)translator.GetObject(L, errFunc + 1, typeof(Snxxz.UI.DungeonModel));
                LuaAPI.lua_settop(L, errFunc - 1);
                return  __gen_ret;
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public Snxxz.UI.ActivityModel __Gen_Delegate_Imp9(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                ObjectTranslator translator = luaEnv.translator;
                translator.PushAny(L, p0);
                PCall(L, 1, 1, errFunc);
                Snxxz.UI.ActivityModel __gen_ret = (Snxxz.UI.ActivityModel)translator.GetObject(L, errFunc + 1, typeof(Snxxz.UI.ActivityModel));
                LuaAPI.lua_settop(L, errFunc - 1);
                return  __gen_ret;
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public void __Gen_Delegate_Imp10(object p0)
        public void __Gen_Delegate_Imp8(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -259,7 +216,73 @@
#endif
        }
        
        public void __Gen_Delegate_Imp11(object p0, int p1, object p2)
        public Snxxz.UI.DailyQuestModel __Gen_Delegate_Imp9(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                ObjectTranslator translator = luaEnv.translator;
                translator.PushAny(L, p0);
                PCall(L, 1, 1, errFunc);
                Snxxz.UI.DailyQuestModel __gen_ret = (Snxxz.UI.DailyQuestModel)translator.GetObject(L, errFunc + 1, typeof(Snxxz.UI.DailyQuestModel));
                LuaAPI.lua_settop(L, errFunc - 1);
                return  __gen_ret;
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public Snxxz.UI.DungeonModel __Gen_Delegate_Imp10(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                ObjectTranslator translator = luaEnv.translator;
                translator.PushAny(L, p0);
                PCall(L, 1, 1, errFunc);
                Snxxz.UI.DungeonModel __gen_ret = (Snxxz.UI.DungeonModel)translator.GetObject(L, errFunc + 1, typeof(Snxxz.UI.DungeonModel));
                LuaAPI.lua_settop(L, errFunc - 1);
                return  __gen_ret;
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public Snxxz.UI.ActivityModel __Gen_Delegate_Imp11(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                ObjectTranslator translator = luaEnv.translator;
                translator.PushAny(L, p0);
                PCall(L, 1, 1, errFunc);
                Snxxz.UI.ActivityModel __gen_ret = (Snxxz.UI.ActivityModel)translator.GetObject(L, errFunc + 1, typeof(Snxxz.UI.ActivityModel));
                LuaAPI.lua_settop(L, errFunc - 1);
                return  __gen_ret;
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public void __Gen_Delegate_Imp12(object p0, int p1, object p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -283,7 +306,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp12(object p0, int p1)
        public void __Gen_Delegate_Imp13(object p0, int p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -294,29 +317,6 @@
                ObjectTranslator translator = luaEnv.translator;
                translator.PushAny(L, p0);
                LuaAPI.xlua_pushinteger(L, p1);
                PCall(L, 2, 0, errFunc);
                LuaAPI.lua_settop(L, errFunc - 1);
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public void __Gen_Delegate_Imp13(object p0, object p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                ObjectTranslator translator = luaEnv.translator;
                translator.PushAny(L, p0);
                translator.PushAny(L, p1);
                
                PCall(L, 2, 0, errFunc);
                
@@ -2566,7 +2566,29 @@
#endif
        }
        
        public Snxxz.UI.FashionDressModel __Gen_Delegate_Imp112(object p0)
        public Snxxz.UI.KingFairyModel __Gen_Delegate_Imp112(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                ObjectTranslator translator = luaEnv.translator;
                translator.PushAny(L, p0);
                PCall(L, 1, 1, errFunc);
                Snxxz.UI.KingFairyModel __gen_ret = (Snxxz.UI.KingFairyModel)translator.GetObject(L, errFunc + 1, typeof(Snxxz.UI.KingFairyModel));
                LuaAPI.lua_settop(L, errFunc - 1);
                return  __gen_ret;
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public Snxxz.UI.FashionDressModel __Gen_Delegate_Imp113(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -2588,7 +2610,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp113(object p0, object p1, bool p2)
        public void __Gen_Delegate_Imp114(object p0, object p1, bool p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -2612,7 +2634,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp114(object p0, object p1, out Snxxz.UI.FashionDecomposeModel.DecomposeItem p2)
        public bool __Gen_Delegate_Imp115(object p0, object p1, out Snxxz.UI.FashionDecomposeModel.DecomposeItem p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -2636,7 +2658,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp115(object p0, out System.Collections.Generic.List<ushort> p1, out System.Collections.Generic.List<uint> p2)
        public void __Gen_Delegate_Imp116(object p0, out System.Collections.Generic.List<ushort> p1, out System.Collections.Generic.List<uint> p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -2660,7 +2682,7 @@
#endif
        }
        
        public GetItemPathModel __Gen_Delegate_Imp116(object p0)
        public GetItemPathModel __Gen_Delegate_Imp117(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -2682,7 +2704,7 @@
#endif
        }
        
        public System.Collections.Generic.Dictionary<int, int> __Gen_Delegate_Imp117(object p0)
        public System.Collections.Generic.Dictionary<int, int> __Gen_Delegate_Imp118(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -2704,7 +2726,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp118(object p0, PackType p1, int p2, int p3)
        public void __Gen_Delegate_Imp119(object p0, PackType p1, int p2, int p3)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -2729,7 +2751,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp119(object p0, int p1, out Snxxz.UI.FashionDress p2)
        public bool __Gen_Delegate_Imp120(object p0, int p1, out Snxxz.UI.FashionDress p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -2753,7 +2775,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp120(object p0, int p1, int p2, out System.Collections.Generic.List<int> p3)
        public bool __Gen_Delegate_Imp121(object p0, int p1, int p2, out System.Collections.Generic.List<int> p3)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -2778,7 +2800,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp121(object p0, int p1, out System.Collections.Generic.List<int> p2)
        public bool __Gen_Delegate_Imp122(object p0, int p1, out System.Collections.Generic.List<int> p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -2802,7 +2824,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp122(object p0, int p1, int p2, out System.Collections.Generic.Dictionary<int, int> p3)
        public bool __Gen_Delegate_Imp123(object p0, int p1, int p2, out System.Collections.Generic.Dictionary<int, int> p3)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -2827,7 +2849,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp123(object p0, int p1, out System.Collections.Generic.Dictionary<int, int> p2)
        public bool __Gen_Delegate_Imp124(object p0, int p1, out System.Collections.Generic.Dictionary<int, int> p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -2851,7 +2873,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp124(object p0, ref System.Collections.Generic.List<int> p1)
        public bool __Gen_Delegate_Imp125(object p0, ref System.Collections.Generic.List<int> p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -2875,7 +2897,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp125(object p0, out System.Collections.Generic.List<int> p1)
        public bool __Gen_Delegate_Imp126(object p0, out System.Collections.Generic.List<int> p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -2898,7 +2920,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp126(object p0, int p1, int p2, int p3, int p4)
        public void __Gen_Delegate_Imp127(object p0, int p1, int p2, int p3, int p4)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -2924,7 +2946,7 @@
#endif
        }
        
        public Snxxz.UI.MagicianModel __Gen_Delegate_Imp127(object p0)
        public Snxxz.UI.MagicianModel __Gen_Delegate_Imp128(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -2946,7 +2968,7 @@
#endif
        }
        
        public int __Gen_Delegate_Imp128(object p0, Snxxz.UI.ServerItem p1, Snxxz.UI.ServerItem p2)
        public int __Gen_Delegate_Imp129(object p0, Snxxz.UI.ServerItem p1, Snxxz.UI.ServerItem p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -2970,7 +2992,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp129(bool p0)
        public void __Gen_Delegate_Imp130(bool p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -2992,7 +3014,7 @@
#endif
        }
        
        public Snxxz.UI.GatherSoulDungeonModel __Gen_Delegate_Imp130(object p0)
        public Snxxz.UI.GatherSoulDungeonModel __Gen_Delegate_Imp131(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3014,7 +3036,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp131(object p0, int p1, uint p2)
        public void __Gen_Delegate_Imp132(object p0, int p1, uint p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3038,7 +3060,7 @@
#endif
        }
        
        public Snxxz.UI.GatherSoulComposeModel __Gen_Delegate_Imp132(object p0)
        public Snxxz.UI.GatherSoulComposeModel __Gen_Delegate_Imp133(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3060,7 +3082,7 @@
#endif
        }
        
        public Snxxz.UI.GatheringSoulModel __Gen_Delegate_Imp133(object p0)
        public Snxxz.UI.GatheringSoulModel __Gen_Delegate_Imp134(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3082,7 +3104,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp134(object p0, Snxxz.UI.GatherSoulComposeModel.ComposeCategory p1)
        public void __Gen_Delegate_Imp135(object p0, Snxxz.UI.GatherSoulComposeModel.ComposeCategory p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3105,7 +3127,7 @@
#endif
        }
        
        public System.Collections.Generic.List<Snxxz.UI.GatherSoulComposeModel.ComposeCategory> __Gen_Delegate_Imp135(object p0)
        public System.Collections.Generic.List<Snxxz.UI.GatherSoulComposeModel.ComposeCategory> __Gen_Delegate_Imp136(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3127,7 +3149,7 @@
#endif
        }
        
        public System.Collections.Generic.Dictionary<Snxxz.UI.GatherSoulComposeModel.ComposeCategory, System.Collections.Generic.List<int>> __Gen_Delegate_Imp136(object p0)
        public System.Collections.Generic.Dictionary<Snxxz.UI.GatherSoulComposeModel.ComposeCategory, System.Collections.Generic.List<int>> __Gen_Delegate_Imp137(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3149,7 +3171,7 @@
#endif
        }
        
        public Snxxz.UI.GatherSoulComposeModel.ComposeCategory __Gen_Delegate_Imp137(object p0)
        public Snxxz.UI.GatherSoulComposeModel.ComposeCategory __Gen_Delegate_Imp138(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3171,7 +3193,7 @@
#endif
        }
        
        public Snxxz.UI.VirtualItem __Gen_Delegate_Imp138(object p0)
        public Snxxz.UI.VirtualItem __Gen_Delegate_Imp139(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3193,7 +3215,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp139(object p0, Snxxz.UI.VirtualItem p1)
        public void __Gen_Delegate_Imp140(object p0, Snxxz.UI.VirtualItem p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3216,7 +3238,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp140(object p0, int p1, out Snxxz.UI.GatherSoulComposeModel.Compose p2)
        public bool __Gen_Delegate_Imp141(object p0, int p1, out Snxxz.UI.GatherSoulComposeModel.Compose p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3240,7 +3262,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp141(object p0, UnityEngine.Vector3 p1)
        public void __Gen_Delegate_Imp142(object p0, UnityEngine.Vector3 p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3263,7 +3285,7 @@
#endif
        }
        
        public System.Collections.IEnumerator __Gen_Delegate_Imp142(object p0, object p1)
        public System.Collections.IEnumerator __Gen_Delegate_Imp143(object p0, object p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3286,7 +3308,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp143(object p0, ScrollerDataType p1, int p2, out float p3)
        public bool __Gen_Delegate_Imp144(object p0, ScrollerDataType p1, int p2, out float p3)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3311,7 +3333,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp144(object p0, int p1, int p2, bool p3)
        public void __Gen_Delegate_Imp145(object p0, int p1, int p2, bool p3)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3336,7 +3358,7 @@
#endif
        }
        
        public Snxxz.UI.GatherSoulDungeonHelp __Gen_Delegate_Imp145(object p0)
        public Snxxz.UI.GatherSoulDungeonHelp __Gen_Delegate_Imp146(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3358,7 +3380,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp146(object p0, Snxxz.UI.GatherSoulDungeonHelp p1)
        public void __Gen_Delegate_Imp147(object p0, Snxxz.UI.GatherSoulDungeonHelp p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3381,7 +3403,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp147(object p0, int p1, out System.Collections.Generic.List<Snxxz.UI.GatherSoulDungeonModel.ItemInfo> p2)
        public bool __Gen_Delegate_Imp148(object p0, int p1, out System.Collections.Generic.List<Snxxz.UI.GatherSoulDungeonModel.ItemInfo> p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3405,7 +3427,7 @@
#endif
        }
        
        public int __Gen_Delegate_Imp148(object p0, Snxxz.UI.GatherSoulDungeonModel.ItemInfo p1, Snxxz.UI.GatherSoulDungeonModel.ItemInfo p2)
        public int __Gen_Delegate_Imp149(object p0, Snxxz.UI.GatherSoulDungeonModel.ItemInfo p1, Snxxz.UI.GatherSoulDungeonModel.ItemInfo p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3429,7 +3451,7 @@
#endif
        }
        
        public Snxxz.UI.VirtualPackModel __Gen_Delegate_Imp149(object p0)
        public Snxxz.UI.VirtualPackModel __Gen_Delegate_Imp150(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3451,7 +3473,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp150(object p0, ItemWinBtnType p1, object p2)
        public void __Gen_Delegate_Imp151(object p0, ItemWinBtnType p1, object p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3475,7 +3497,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp151(object p0, PackType p1, int p2)
        public void __Gen_Delegate_Imp152(object p0, PackType p1, int p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3499,7 +3521,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp152(object p0, Snxxz.UI.SortType p1, int p2)
        public void __Gen_Delegate_Imp153(object p0, Snxxz.UI.SortType p1, int p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3523,7 +3545,7 @@
#endif
        }
        
        public int __Gen_Delegate_Imp153(object p0, int p1, int p2)
        public int __Gen_Delegate_Imp154(object p0, int p1, int p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3547,7 +3569,7 @@
#endif
        }
        
        public System.Collections.IEnumerator __Gen_Delegate_Imp154(object p0, UnityEngine.Vector3 p1, UnityEngine.Vector3 p2)
        public System.Collections.IEnumerator __Gen_Delegate_Imp155(object p0, UnityEngine.Vector3 p1, UnityEngine.Vector3 p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3571,7 +3593,7 @@
#endif
        }
        
        public System.Collections.Generic.List<Snxxz.UI.GatherSoulItem> __Gen_Delegate_Imp155(object p0)
        public System.Collections.Generic.List<Snxxz.UI.GatherSoulItem> __Gen_Delegate_Imp156(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3593,7 +3615,7 @@
#endif
        }
        
        public string __Gen_Delegate_Imp156(int p0)
        public string __Gen_Delegate_Imp157(int p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3615,7 +3637,7 @@
#endif
        }
        
        public int __Gen_Delegate_Imp157(object p0, object p1)
        public int __Gen_Delegate_Imp158(object p0, object p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3638,7 +3660,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp158(object p0, PackType p1)
        public void __Gen_Delegate_Imp159(object p0, PackType p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3661,7 +3683,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp159(object p0, int p1, ref System.Collections.Generic.List<Snxxz.UI.GatherSoulItem> p2)
        public void __Gen_Delegate_Imp160(object p0, int p1, ref System.Collections.Generic.List<Snxxz.UI.GatherSoulItem> p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3686,7 +3708,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp160(object p0, object p1, int p2, out int p3)
        public bool __Gen_Delegate_Imp161(object p0, object p1, int p2, out int p3)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3711,7 +3733,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp161(object p0, object p1, out int p2)
        public bool __Gen_Delegate_Imp162(object p0, object p1, out int p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3735,7 +3757,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp162(object p0, int p1, object p2)
        public bool __Gen_Delegate_Imp163(object p0, int p1, object p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3759,7 +3781,7 @@
#endif
        }
        
        public int __Gen_Delegate_Imp163(object p0, int p1, object p2)
        public int __Gen_Delegate_Imp164(object p0, int p1, object p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3783,7 +3805,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp164(object p0, int p1, int p2)
        public bool __Gen_Delegate_Imp165(object p0, int p1, int p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3807,7 +3829,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp165(object p0, object p1, int p2, int p3)
        public bool __Gen_Delegate_Imp166(object p0, object p1, int p2, int p3)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3832,7 +3854,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp166(object p0, object p1, int p2)
        public void __Gen_Delegate_Imp167(object p0, object p1, int p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3856,7 +3878,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp167(object p0, Snxxz.UI.VirtualItem p1)
        public bool __Gen_Delegate_Imp168(object p0, Snxxz.UI.VirtualItem p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3879,7 +3901,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp168(object p0, int p1, out Snxxz.UI.GatherSoulHoleCondition p2)
        public bool __Gen_Delegate_Imp169(object p0, int p1, out Snxxz.UI.GatherSoulHoleCondition p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3903,7 +3925,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp169(object p0, int p1, out Snxxz.UI.GatherSoulItem p2)
        public bool __Gen_Delegate_Imp170(object p0, int p1, out Snxxz.UI.GatherSoulItem p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3927,7 +3949,7 @@
#endif
        }
        
        public int __Gen_Delegate_Imp170(object p0, int p1, int p2, int p3)
        public int __Gen_Delegate_Imp171(object p0, int p1, int p2, int p3)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3952,7 +3974,7 @@
#endif
        }
        
        public int __Gen_Delegate_Imp171(object p0, int p1, ulong p2)
        public int __Gen_Delegate_Imp172(object p0, int p1, ulong p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -3976,7 +3998,7 @@
#endif
        }
        
        public int __Gen_Delegate_Imp172(object p0, int p1, int p2, bool p3)
        public int __Gen_Delegate_Imp173(object p0, int p1, int p2, bool p3)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4001,7 +4023,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp173(object p0, object p1, ref System.Collections.Generic.Dictionary<int, int> p2)
        public void __Gen_Delegate_Imp174(object p0, object p1, ref System.Collections.Generic.Dictionary<int, int> p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4026,7 +4048,7 @@
#endif
        }
        
        public int __Gen_Delegate_Imp174(object p0, PackType p1)
        public int __Gen_Delegate_Imp175(object p0, PackType p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4049,7 +4071,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp175(object p0, PackType p1, out System.Collections.Generic.List<int> p2)
        public bool __Gen_Delegate_Imp176(object p0, PackType p1, out System.Collections.Generic.List<int> p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4073,7 +4095,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp176(object p0, PackType p1, ref System.Collections.Generic.List<Snxxz.UI.VirtualPackItem> p2, object p3)
        public void __Gen_Delegate_Imp177(object p0, PackType p1, ref System.Collections.Generic.List<Snxxz.UI.VirtualPackItem> p2, object p3)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4099,7 +4121,7 @@
#endif
        }
        
        public Snxxz.UI.JadeDynastyBossModel __Gen_Delegate_Imp177(object p0)
        public Snxxz.UI.JadeDynastyBossModel __Gen_Delegate_Imp178(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4121,7 +4143,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp178(object p0, System.DateTime p1, object p2)
        public void __Gen_Delegate_Imp179(object p0, System.DateTime p1, object p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4145,7 +4167,7 @@
#endif
        }
        
        public ulong __Gen_Delegate_Imp179(object p0)
        public ulong __Gen_Delegate_Imp180(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4167,7 +4189,7 @@
#endif
        }
        
        public Snxxz.UI.MapModel __Gen_Delegate_Imp180(object p0)
        public Snxxz.UI.MapModel __Gen_Delegate_Imp181(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4189,7 +4211,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp181(object p0, int p1, out System.Collections.Generic.List<Snxxz.UI.Item> p2)
        public bool __Gen_Delegate_Imp182(object p0, int p1, out System.Collections.Generic.List<Snxxz.UI.Item> p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4213,7 +4235,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp182(object p0, int p1, out Snxxz.UI.JadeDynastyBossCondition p2)
        public bool __Gen_Delegate_Imp183(object p0, int p1, out Snxxz.UI.JadeDynastyBossCondition p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4237,7 +4259,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp183(object p0, int p1, out Snxxz.UI.JadeDynastyBossLine p2)
        public bool __Gen_Delegate_Imp184(object p0, int p1, out Snxxz.UI.JadeDynastyBossLine p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4261,7 +4283,7 @@
#endif
        }
        
        public int __Gen_Delegate_Imp184(Snxxz.UI.JadeDynastyBossData p0, Snxxz.UI.JadeDynastyBossData p1)
        public int __Gen_Delegate_Imp185(Snxxz.UI.JadeDynastyBossData p0, Snxxz.UI.JadeDynastyBossData p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4284,7 +4306,7 @@
#endif
        }
        
        public System.Collections.IEnumerator __Gen_Delegate_Imp185(object p0, float p1)
        public System.Collections.IEnumerator __Gen_Delegate_Imp186(object p0, float p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4307,7 +4329,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp186(object p0, Snxxz.UI.Item p1)
        public bool __Gen_Delegate_Imp187(object p0, Snxxz.UI.Item p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4330,7 +4352,215 @@
#endif
        }
        
        public Snxxz.UI.KingTreasureModel __Gen_Delegate_Imp187(object p0)
        public int __Gen_Delegate_Imp188(object p0, Snxxz.UI.FindPreciousModel.BossKillRecord p1, Snxxz.UI.FindPreciousModel.BossKillRecord p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                ObjectTranslator translator = luaEnv.translator;
                translator.PushAny(L, p0);
                translator.Push(L, p1);
                translator.Push(L, p2);
                PCall(L, 3, 1, errFunc);
                int __gen_ret = LuaAPI.xlua_tointeger(L, errFunc + 1);
                LuaAPI.lua_settop(L, errFunc - 1);
                return  __gen_ret;
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public Snxxz.UI.JadeDynastyDecomposeModel __Gen_Delegate_Imp189(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                ObjectTranslator translator = luaEnv.translator;
                translator.PushAny(L, p0);
                PCall(L, 1, 1, errFunc);
                Snxxz.UI.JadeDynastyDecomposeModel __gen_ret = (Snxxz.UI.JadeDynastyDecomposeModel)translator.GetObject(L, errFunc + 1, typeof(Snxxz.UI.JadeDynastyDecomposeModel));
                LuaAPI.lua_settop(L, errFunc - 1);
                return  __gen_ret;
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public Snxxz.UI.JadeDynastySkillModel __Gen_Delegate_Imp190(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                ObjectTranslator translator = luaEnv.translator;
                translator.PushAny(L, p0);
                PCall(L, 1, 1, errFunc);
                Snxxz.UI.JadeDynastySkillModel __gen_ret = (Snxxz.UI.JadeDynastySkillModel)translator.GetObject(L, errFunc + 1, typeof(Snxxz.UI.JadeDynastySkillModel));
                LuaAPI.lua_settop(L, errFunc - 1);
                return  __gen_ret;
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public UnityEngine.Transform __Gen_Delegate_Imp191(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                ObjectTranslator translator = luaEnv.translator;
                translator.PushAny(L, p0);
                PCall(L, 1, 1, errFunc);
                UnityEngine.Transform __gen_ret = (UnityEngine.Transform)translator.GetObject(L, errFunc + 1, typeof(UnityEngine.Transform));
                LuaAPI.lua_settop(L, errFunc - 1);
                return  __gen_ret;
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public Snxxz.UI.JadeDynastySkillState __Gen_Delegate_Imp192(object p0, int p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                ObjectTranslator translator = luaEnv.translator;
                translator.PushAny(L, p0);
                LuaAPI.xlua_pushinteger(L, p1);
                PCall(L, 2, 1, errFunc);
                Snxxz.UI.JadeDynastySkillState __gen_ret;translator.Get(L, errFunc + 1, out __gen_ret);
                LuaAPI.lua_settop(L, errFunc - 1);
                return  __gen_ret;
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public bool __Gen_Delegate_Imp193(object p0, int p1, out Snxxz.UI.JadeDynastySkillCondition p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                ObjectTranslator translator = luaEnv.translator;
                translator.PushAny(L, p0);
                LuaAPI.xlua_pushinteger(L, p1);
                PCall(L, 2, 2, errFunc);
                translator.Get(L, errFunc + 2, out p2);
                bool __gen_ret = LuaAPI.lua_toboolean(L, errFunc + 1);
                LuaAPI.lua_settop(L, errFunc - 1);
                return  __gen_ret;
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public bool __Gen_Delegate_Imp194(object p0, int p1, out UnityEngine.Sprite[] p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                ObjectTranslator translator = luaEnv.translator;
                translator.PushAny(L, p0);
                LuaAPI.xlua_pushinteger(L, p1);
                PCall(L, 2, 2, errFunc);
                p2 = (UnityEngine.Sprite[])translator.GetObject(L, errFunc + 2, typeof(UnityEngine.Sprite[]));
                bool __gen_ret = LuaAPI.lua_toboolean(L, errFunc + 1);
                LuaAPI.lua_settop(L, errFunc - 1);
                return  __gen_ret;
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public void __Gen_Delegate_Imp195(object p0, Snxxz.UI.ActivateShow.ActivateFunc p1, int p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                ObjectTranslator translator = luaEnv.translator;
                translator.PushAny(L, p0);
                translator.Push(L, p1);
                LuaAPI.xlua_pushinteger(L, p2);
                PCall(L, 3, 0, errFunc);
                LuaAPI.lua_settop(L, errFunc - 1);
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public void __Gen_Delegate_Imp196(object p0, Snxxz.UI.ActivateShow.ActivateFunc p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                ObjectTranslator translator = luaEnv.translator;
                translator.PushAny(L, p0);
                translator.Push(L, p1);
                PCall(L, 2, 0, errFunc);
                LuaAPI.lua_settop(L, errFunc - 1);
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public Snxxz.UI.KingTreasureModel __Gen_Delegate_Imp197(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4352,7 +4582,7 @@
#endif
        }
        
        public TableConfig.KingTreasureItemConfig __Gen_Delegate_Imp188(object p0)
        public TableConfig.KingTreasureItemConfig __Gen_Delegate_Imp198(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4374,7 +4604,7 @@
#endif
        }
        
        public string __Gen_Delegate_Imp189(object p0, object p1, int p2)
        public string __Gen_Delegate_Imp199(object p0, object p1, int p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4398,7 +4628,7 @@
#endif
        }
        
        public Snxxz.UI.KingTreasureShowModel __Gen_Delegate_Imp190(object p0)
        public Snxxz.UI.KingTreasureShowModel __Gen_Delegate_Imp200(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4420,7 +4650,7 @@
#endif
        }
        
        public Snxxz.UI.CrossServerOneVsOne __Gen_Delegate_Imp191(object p0)
        public Snxxz.UI.CrossServerOneVsOne __Gen_Delegate_Imp201(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4442,7 +4672,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp192(object p0, Snxxz.UI.CrossServerOneVsOne p1)
        public void __Gen_Delegate_Imp202(object p0, Snxxz.UI.CrossServerOneVsOne p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4465,7 +4695,7 @@
#endif
        }
        
        public Snxxz.UI.LoginModel __Gen_Delegate_Imp193(object p0)
        public Snxxz.UI.LoginModel __Gen_Delegate_Imp203(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4487,7 +4717,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp194(object p0, object p1, object p2, int p3, bool p4)
        public void __Gen_Delegate_Imp204(object p0, object p1, object p2, int p3, bool p4)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4513,7 +4743,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp195(object p0, byte p1)
        public void __Gen_Delegate_Imp205(object p0, byte p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4536,7 +4766,7 @@
#endif
        }
        
        public PlayerTaskDatas __Gen_Delegate_Imp196(object p0)
        public PlayerTaskDatas __Gen_Delegate_Imp206(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4558,7 +4788,7 @@
#endif
        }
        
        public System.Collections.IEnumerator __Gen_Delegate_Imp197(object p0, int p1, int p2)
        public System.Collections.IEnumerator __Gen_Delegate_Imp207(object p0, int p1, int p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4582,7 +4812,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp198(object p0, TreasureCategory p1)
        public void __Gen_Delegate_Imp208(object p0, TreasureCategory p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4605,7 +4835,7 @@
#endif
        }
        
        public Snxxz.UI.VipModel __Gen_Delegate_Imp199(object p0)
        public Snxxz.UI.VipModel __Gen_Delegate_Imp209(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4627,7 +4857,7 @@
#endif
        }
        
        public Snxxz.UI.MarketModel __Gen_Delegate_Imp200(object p0)
        public Snxxz.UI.MarketModel __Gen_Delegate_Imp210(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4649,7 +4879,7 @@
#endif
        }
        
        public Snxxz.UI.FlashSaleModel __Gen_Delegate_Imp201(object p0)
        public Snxxz.UI.FlashSaleModel __Gen_Delegate_Imp211(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4671,7 +4901,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp202(object p0, Snxxz.UI.OperationFlashSale.FlashSaleGift p1)
        public void __Gen_Delegate_Imp212(object p0, Snxxz.UI.OperationFlashSale.FlashSaleGift p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4694,7 +4924,7 @@
#endif
        }
        
        public Snxxz.UI.MysticalPurchaseModel __Gen_Delegate_Imp203(object p0)
        public Snxxz.UI.MysticalPurchaseModel __Gen_Delegate_Imp213(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4716,7 +4946,7 @@
#endif
        }
        
        public Snxxz.UI.ImpactRankModel __Gen_Delegate_Imp204(object p0)
        public Snxxz.UI.ImpactRankModel __Gen_Delegate_Imp214(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4738,7 +4968,7 @@
#endif
        }
        
        public Snxxz.UI.OSRedEnvelopeModel __Gen_Delegate_Imp205(object p0)
        public Snxxz.UI.OSRedEnvelopeModel __Gen_Delegate_Imp215(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4760,7 +4990,7 @@
#endif
        }
        
        public Snxxz.UI.FairyLeagueModel __Gen_Delegate_Imp206(object p0)
        public Snxxz.UI.FairyLeagueModel __Gen_Delegate_Imp216(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4782,7 +5012,7 @@
#endif
        }
        
        public Snxxz.UI.FairyGrabBossModel __Gen_Delegate_Imp207(object p0)
        public Snxxz.UI.FairyGrabBossModel __Gen_Delegate_Imp217(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4804,7 +5034,7 @@
#endif
        }
        
        public Snxxz.UI.OSGiftModel __Gen_Delegate_Imp208(object p0)
        public Snxxz.UI.OSGiftModel __Gen_Delegate_Imp218(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4826,7 +5056,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp209(object p0, Snxxz.UI.Operation p1)
        public void __Gen_Delegate_Imp219(object p0, Snxxz.UI.Operation p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4849,7 +5079,7 @@
#endif
        }
        
        public OpenServiceAchievementModel __Gen_Delegate_Imp210(object p0)
        public OpenServiceAchievementModel __Gen_Delegate_Imp220(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4871,7 +5101,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp211(object p0, int p1, object p2, int p3, int p4)
        public void __Gen_Delegate_Imp221(object p0, int p1, object p2, int p3, int p4)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4897,7 +5127,120 @@
#endif
        }
        
        public Snxxz.UI.RealmModel __Gen_Delegate_Imp212(object p0)
        public Snxxz.UI.ActivateShow.ActivateFunc __Gen_Delegate_Imp222()
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                ObjectTranslator translator = luaEnv.translator;
                PCall(L, 0, 1, errFunc);
                Snxxz.UI.ActivateShow.ActivateFunc __gen_ret;translator.Get(L, errFunc + 1, out __gen_ret);
                LuaAPI.lua_settop(L, errFunc - 1);
                return  __gen_ret;
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public void __Gen_Delegate_Imp223(Snxxz.UI.ActivateShow.ActivateFunc p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                ObjectTranslator translator = luaEnv.translator;
                translator.Push(L, p0);
                PCall(L, 1, 0, errFunc);
                LuaAPI.lua_settop(L, errFunc - 1);
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public string __Gen_Delegate_Imp224()
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                PCall(L, 0, 1, errFunc);
                string __gen_ret = LuaAPI.lua_tostring(L, errFunc + 1);
                LuaAPI.lua_settop(L, errFunc - 1);
                return  __gen_ret;
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public void __Gen_Delegate_Imp225(int p0, int p1, int p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                LuaAPI.xlua_pushinteger(L, p0);
                LuaAPI.xlua_pushinteger(L, p1);
                LuaAPI.xlua_pushinteger(L, p2);
                PCall(L, 3, 0, errFunc);
                LuaAPI.lua_settop(L, errFunc - 1);
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public void __Gen_Delegate_Imp226(int p0, int p1, int p2, int p3)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                LuaAPI.xlua_pushinteger(L, p0);
                LuaAPI.xlua_pushinteger(L, p1);
                LuaAPI.xlua_pushinteger(L, p2);
                LuaAPI.xlua_pushinteger(L, p3);
                PCall(L, 4, 0, errFunc);
                LuaAPI.lua_settop(L, errFunc - 1);
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public Snxxz.UI.RealmModel __Gen_Delegate_Imp227(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4919,7 +5262,7 @@
#endif
        }
        
        public Snxxz.UI.MagicianModel __Gen_Delegate_Imp213()
        public Snxxz.UI.MagicianModel __Gen_Delegate_Imp228()
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4940,7 +5283,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp214(uint p0, out System.Collections.Generic.Dictionary<int, int> p1)
        public bool __Gen_Delegate_Imp229(uint p0, out System.Collections.Generic.Dictionary<int, int> p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4963,7 +5306,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp215(uint p0, int p1, out int p2)
        public bool __Gen_Delegate_Imp230(uint p0, int p1, out int p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -4987,7 +5330,7 @@
#endif
        }
        
        public byte __Gen_Delegate_Imp216(int p0, int p1)
        public byte __Gen_Delegate_Imp231(int p0, int p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5010,7 +5353,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp217(int p0, int p1, bool p2)
        public void __Gen_Delegate_Imp232(int p0, int p1, bool p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5034,7 +5377,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp218(Snxxz.UI.EquipShowSwitch.EquipShowSwitchType p0, uint p1)
        public bool __Gen_Delegate_Imp233(Snxxz.UI.EquipShowSwitch.EquipShowSwitchType p0, uint p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5057,7 +5400,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp219(uint p0)
        public void __Gen_Delegate_Imp234(uint p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5079,7 +5422,7 @@
#endif
        }
        
        public System.Collections.Generic.Dictionary<int, string> __Gen_Delegate_Imp220(object p0)
        public System.Collections.Generic.Dictionary<int, string> __Gen_Delegate_Imp235(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5101,7 +5444,7 @@
#endif
        }
        
        public int[] __Gen_Delegate_Imp221(object p0)
        public int[] __Gen_Delegate_Imp236(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5123,7 +5466,7 @@
#endif
        }
        
        public int[] __Gen_Delegate_Imp222(object p0, int p1)
        public int[] __Gen_Delegate_Imp237(object p0, int p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5146,7 +5489,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp223(object p0, int p1, int p2, int p3, out int p4)
        public bool __Gen_Delegate_Imp238(object p0, int p1, int p2, int p3, out int p4)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5172,7 +5515,7 @@
#endif
        }
        
        public Snxxz.UI.GodWeaponInfo __Gen_Delegate_Imp224(object p0, int p1)
        public Snxxz.UI.GodWeaponInfo __Gen_Delegate_Imp239(object p0, int p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5195,7 +5538,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp225(object p0, int p1, out System.Collections.Generic.List<Snxxz.UI.GodWeaponCondition> p2)
        public bool __Gen_Delegate_Imp240(object p0, int p1, out System.Collections.Generic.List<Snxxz.UI.GodWeaponCondition> p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5219,7 +5562,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp226(object p0, int p1, int p2, out int p3)
        public bool __Gen_Delegate_Imp241(object p0, int p1, int p2, out int p3)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5244,7 +5587,7 @@
#endif
        }
        
        public bool __Gen_Delegate_Imp227(object p0, int p1, out Snxxz.UI.AutoHammerCost p2)
        public bool __Gen_Delegate_Imp242(object p0, int p1, out Snxxz.UI.AutoHammerCost p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5268,7 +5611,7 @@
#endif
        }
        
        public System.Collections.Generic.Dictionary<int, int> __Gen_Delegate_Imp228(object p0, int p1, int p2)
        public System.Collections.Generic.Dictionary<int, int> __Gen_Delegate_Imp243(object p0, int p1, int p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5292,7 +5635,7 @@
#endif
        }
        
        public System.Collections.Generic.List<int> __Gen_Delegate_Imp229(object p0, int p1)
        public System.Collections.Generic.List<int> __Gen_Delegate_Imp244(object p0, int p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5315,7 +5658,7 @@
#endif
        }
        
        public string __Gen_Delegate_Imp230(object p0, int p1, int p2)
        public string __Gen_Delegate_Imp245(object p0, int p1, int p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5339,7 +5682,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp231(object p0, object p1, object p2)
        public void __Gen_Delegate_Imp246(object p0, object p1, object p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5363,54 +5706,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp232(object p0, Snxxz.UI.ActivateShow.ActivateFunc p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                ObjectTranslator translator = luaEnv.translator;
                translator.PushAny(L, p0);
                translator.Push(L, p1);
                PCall(L, 2, 0, errFunc);
                LuaAPI.lua_settop(L, errFunc - 1);
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public void __Gen_Delegate_Imp233(object p0, Snxxz.UI.ActivateShow.ActivateFunc p1, int p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                ObjectTranslator translator = luaEnv.translator;
                translator.PushAny(L, p0);
                translator.Push(L, p1);
                LuaAPI.xlua_pushinteger(L, p2);
                PCall(L, 3, 0, errFunc);
                LuaAPI.lua_settop(L, errFunc - 1);
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public bool __Gen_Delegate_Imp234(object p0, int p1, out int p2, out int p3)
        public bool __Gen_Delegate_Imp247(object p0, int p1, out int p2, out int p3)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5435,7 +5731,7 @@
#endif
        }
        
        public Snxxz.UI.FuncSwitchModel __Gen_Delegate_Imp235(object p0)
        public Snxxz.UI.FuncSwitchModel __Gen_Delegate_Imp248(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5457,7 +5753,7 @@
#endif
        }
        
        public System.Collections.Generic.Dictionary<int, Snxxz.UI.FuncSwitchModel.FuncSwithData> __Gen_Delegate_Imp236(object p0)
        public System.Collections.Generic.Dictionary<int, Snxxz.UI.FuncSwitchModel.FuncSwithData> __Gen_Delegate_Imp249(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5479,7 +5775,7 @@
#endif
        }
        
        public Snxxz.UI.TestModel __Gen_Delegate_Imp237(object p0)
        public Snxxz.UI.TestModel __Gen_Delegate_Imp250(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5501,7 +5797,7 @@
#endif
        }
        
        public UIEffect __Gen_Delegate_Imp238(object p0)
        public UIEffect __Gen_Delegate_Imp251(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5523,7 +5819,7 @@
#endif
        }
        
        public Treasure3DConfig __Gen_Delegate_Imp239(object p0)
        public Treasure3DConfig __Gen_Delegate_Imp252(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5545,7 +5841,7 @@
#endif
        }
        
        public Snxxz.UI.AchievementModel __Gen_Delegate_Imp240(object p0)
        public Snxxz.UI.AchievementModel __Gen_Delegate_Imp253(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5567,7 +5863,7 @@
#endif
        }
        
        public UnityEngine.Vector3 __Gen_Delegate_Imp241(object p0, int p1)
        public UnityEngine.Vector3 __Gen_Delegate_Imp254(object p0, int p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5590,7 +5886,7 @@
#endif
        }
        
        public UnityEngine.Vector3 __Gen_Delegate_Imp242(object p0, UnityEngine.Vector3 p1)
        public UnityEngine.Vector3 __Gen_Delegate_Imp255(object p0, UnityEngine.Vector3 p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5613,7 +5909,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp243(object p0, bool p1, bool p2)
        public void __Gen_Delegate_Imp256(object p0, bool p1, bool p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5637,7 +5933,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp244(object p0, Snxxz.UI.TreasureAnimation.TreasureShowStep p1)
        public void __Gen_Delegate_Imp257(object p0, Snxxz.UI.TreasureAnimation.TreasureShowStep p1)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5660,7 +5956,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp245(object p0, bool p1, int p2)
        public void __Gen_Delegate_Imp258(object p0, bool p1, int p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5684,29 +5980,7 @@
#endif
        }
        
        public UnityEngine.Transform __Gen_Delegate_Imp246(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                ObjectTranslator translator = luaEnv.translator;
                translator.PushAny(L, p0);
                PCall(L, 1, 1, errFunc);
                UnityEngine.Transform __gen_ret = (UnityEngine.Transform)translator.GetObject(L, errFunc + 1, typeof(UnityEngine.Transform));
                LuaAPI.lua_settop(L, errFunc - 1);
                return  __gen_ret;
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public UnityEngine.Vector3 __Gen_Delegate_Imp247(object p0)
        public UnityEngine.Vector3 __Gen_Delegate_Imp259(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5728,7 +6002,7 @@
#endif
        }
        
        public Treasure3DConfig.TreasureParam __Gen_Delegate_Imp248(object p0)
        public Treasure3DConfig.TreasureParam __Gen_Delegate_Imp260(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5750,7 +6024,7 @@
#endif
        }
        
        public Snxxz.UI.UI3DTreasureSelectStage __Gen_Delegate_Imp249()
        public Snxxz.UI.UI3DTreasureSelectStage __Gen_Delegate_Imp261()
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5771,7 +6045,7 @@
#endif
        }
        
        public TreasureCategory __Gen_Delegate_Imp250(object p0)
        public TreasureCategory __Gen_Delegate_Imp262(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5793,7 +6067,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp251(object p0, bool p1, TreasureCategory p2)
        public void __Gen_Delegate_Imp263(object p0, bool p1, TreasureCategory p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5817,7 +6091,7 @@
#endif
        }
        
        public System.Collections.IEnumerator __Gen_Delegate_Imp252(object p0, TreasureCategory p1, object p2)
        public System.Collections.IEnumerator __Gen_Delegate_Imp264(object p0, TreasureCategory p1, object p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5841,7 +6115,7 @@
#endif
        }
        
        public void __Gen_Delegate_Imp253(object p0, TreasureCategory p1, bool p2)
        public void __Gen_Delegate_Imp265(object p0, TreasureCategory p1, bool p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5865,7 +6139,7 @@
#endif
        }
        
        public System.Collections.IEnumerator __Gen_Delegate_Imp254(object p0, object p1, float p2)
        public System.Collections.IEnumerator __Gen_Delegate_Imp266(object p0, object p1, float p2)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
@@ -5889,7 +6163,7 @@
#endif
        }
        
        public Snxxz.UI.SignInModel __Gen_Delegate_Imp255(object p0)
        public Snxxz.UI.SignInModel __Gen_Delegate_Imp267(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
Lua/Gen/Resources.meta
File was deleted
Lua/Gen/ServerListCenterWrap.cs
@@ -21,12 +21,14 @@
        {
            ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
            System.Type type = typeof(ServerListCenter);
            Utils.BeginObjectRegister(type, L, translator, 0, 10, 6, 3);
            Utils.BeginObjectRegister(type, L, translator, 0, 12, 6, 3);
            
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetServerData", _m_GetServerData);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "RequestJumpUrl", _m_RequestJumpUrl);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "RequestServerList", _m_RequestServerList);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "SetServerlistCommon", _m_SetServerlistCommon);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "RequestServerListPlayer", _m_RequestServerListPlayer);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "SetServerListPlayer", _m_SetServerListPlayer);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "TryGetServerGroup", _m_TryGetServerGroup);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "ParseServerLocalServerList", _m_ParseServerLocalServerList);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetAllServerGroup", _m_GetAllServerGroup);
@@ -179,6 +181,34 @@
        }
        
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_SetServerlistCommon(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                ServerListCenter gen_to_be_invoked = (ServerListCenter)translator.FastGetCSObj(L, 1);
                {
                    ServerInfoCommon _common = (ServerInfoCommon)translator.GetObject(L, 2, typeof(ServerInfoCommon));
                    gen_to_be_invoked.SetServerlistCommon( _common );
                    return 0;
                }
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_RequestServerListPlayer(RealStatePtr L)
        {
            try {
@@ -207,6 +237,34 @@
        }
        
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_SetServerListPlayer(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                ServerListCenter gen_to_be_invoked = (ServerListCenter)translator.FastGetCSObj(L, 1);
                {
                    ServerInfoPlayer _serverInfoPlayer = (ServerInfoPlayer)translator.GetObject(L, 2, typeof(ServerInfoPlayer));
                    gen_to_be_invoked.SetServerListPlayer( _serverInfoPlayer );
                    return 0;
                }
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_TryGetServerGroup(RealStatePtr L)
        {
            try {
Lua/Gen/SnxxzUIJadeDynastyBossModelWrap.cs
@@ -21,7 +21,7 @@
        {
            ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
            System.Type type = typeof(Snxxz.UI.JadeDynastyBossModel);
            Utils.BeginObjectRegister(type, L, translator, 0, 20, 7, 2);
            Utils.BeginObjectRegister(type, L, translator, 0, 21, 7, 2);
            
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "Init", _m_Init);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "OnBeforePlayerDataInitialize", _m_OnBeforePlayerDataInitialize);
@@ -30,6 +30,7 @@
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "UnInit", _m_UnInit);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "IsJadeDynastyBoss", _m_IsJadeDynastyBoss);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "IsBossUnLocked", _m_IsBossUnLocked);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "IsAssistState", _m_IsAssistState);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetJadeDynastyBosses", _m_GetJadeDynastyBosses);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetParticipantCount", _m_GetParticipantCount);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetLatestUnLockBoss", _m_GetLatestUnLockBoss);
@@ -301,6 +302,34 @@
        }
        
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_IsAssistState(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                Snxxz.UI.JadeDynastyBossModel gen_to_be_invoked = (Snxxz.UI.JadeDynastyBossModel)translator.FastGetCSObj(L, 1);
                {
                        bool gen_ret = gen_to_be_invoked.IsAssistState(  );
                        LuaAPI.lua_pushboolean(L, gen_ret);
                    return 1;
                }
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_GetJadeDynastyBosses(RealStatePtr L)
        {
            try {
Lua/Gen/SnxxzUIJadeDynastySkillModelWrap.cs
New file
@@ -0,0 +1,483 @@
#if USE_UNI_LUA
using LuaAPI = UniLua.Lua;
using RealStatePtr = UniLua.ILuaState;
using LuaCSFunction = UniLua.CSharpFunctionDelegate;
#else
using LuaAPI = XLua.LuaDLL.Lua;
using RealStatePtr = System.IntPtr;
using LuaCSFunction = XLua.LuaDLL.lua_CSFunction;
#endif
using XLua;
using System.Collections.Generic;
namespace XLua.CSObjectWrap
{
    using Utils = XLua.Utils;
    public class SnxxzUIJadeDynastySkillModelWrap
    {
        public static void __Register(RealStatePtr L)
        {
            ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
            System.Type type = typeof(Snxxz.UI.JadeDynastySkillModel);
            Utils.BeginObjectRegister(type, L, translator, 0, 11, 3, 1);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "Init", _m_Init);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "OnBeforePlayerDataInitialize", _m_OnBeforePlayerDataInitialize);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "OnPlayerLoginOk", _m_OnPlayerLoginOk);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "UnInit", _m_UnInit);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "IsSatisfyEquipLevel", _m_IsSatisfyEquipLevel);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetSkillState", _m_GetSkillState);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "TryGetSkillCondition", _m_TryGetSkillCondition);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "TryGetSkillFrames", _m_TryGetSkillFrames);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "OnReceivePackage", _m_OnReceivePackage);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "skillRefresh", _e_skillRefresh);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "selectSkillRefresh", _e_selectSkillRefresh);
            Utils.RegisterFunc(L, Utils.GETTER_IDX, "mySkills", _g_get_mySkills);
            Utils.RegisterFunc(L, Utils.GETTER_IDX, "selectSkill", _g_get_selectSkill);
            Utils.RegisterFunc(L, Utils.GETTER_IDX, "redpoint", _g_get_redpoint);
            Utils.RegisterFunc(L, Utils.SETTER_IDX, "selectSkill", _s_set_selectSkill);
            Utils.EndObjectRegister(type, L, translator, null, null,
                null, null, null);
            Utils.BeginClassRegister(type, L, __CreateInstance, 1, 0, 0);
            Utils.EndClassRegister(type, L, translator);
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int __CreateInstance(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                if(LuaAPI.lua_gettop(L) == 1)
                {
                    Snxxz.UI.JadeDynastySkillModel gen_ret = new Snxxz.UI.JadeDynastySkillModel();
                    translator.Push(L, gen_ret);
                    return 1;
                }
            }
            catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
            return LuaAPI.luaL_error(L, "invalid arguments to Snxxz.UI.JadeDynastySkillModel constructor!");
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_Init(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                Snxxz.UI.JadeDynastySkillModel gen_to_be_invoked = (Snxxz.UI.JadeDynastySkillModel)translator.FastGetCSObj(L, 1);
                {
                    gen_to_be_invoked.Init(  );
                    return 0;
                }
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_OnBeforePlayerDataInitialize(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                Snxxz.UI.JadeDynastySkillModel gen_to_be_invoked = (Snxxz.UI.JadeDynastySkillModel)translator.FastGetCSObj(L, 1);
                {
                    gen_to_be_invoked.OnBeforePlayerDataInitialize(  );
                    return 0;
                }
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_OnPlayerLoginOk(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                Snxxz.UI.JadeDynastySkillModel gen_to_be_invoked = (Snxxz.UI.JadeDynastySkillModel)translator.FastGetCSObj(L, 1);
                {
                    gen_to_be_invoked.OnPlayerLoginOk(  );
                    return 0;
                }
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_UnInit(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                Snxxz.UI.JadeDynastySkillModel gen_to_be_invoked = (Snxxz.UI.JadeDynastySkillModel)translator.FastGetCSObj(L, 1);
                {
                    gen_to_be_invoked.UnInit(  );
                    return 0;
                }
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_IsSatisfyEquipLevel(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                Snxxz.UI.JadeDynastySkillModel gen_to_be_invoked = (Snxxz.UI.JadeDynastySkillModel)translator.FastGetCSObj(L, 1);
                {
                    int _equipPlace = LuaAPI.xlua_tointeger(L, 2);
                    int _level = LuaAPI.xlua_tointeger(L, 3);
                        bool gen_ret = gen_to_be_invoked.IsSatisfyEquipLevel( _equipPlace, _level );
                        LuaAPI.lua_pushboolean(L, gen_ret);
                    return 1;
                }
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_GetSkillState(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                Snxxz.UI.JadeDynastySkillModel gen_to_be_invoked = (Snxxz.UI.JadeDynastySkillModel)translator.FastGetCSObj(L, 1);
                {
                    int _skillId = LuaAPI.xlua_tointeger(L, 2);
                        Snxxz.UI.JadeDynastySkillState gen_ret = gen_to_be_invoked.GetSkillState( _skillId );
                        translator.Push(L, gen_ret);
                    return 1;
                }
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_TryGetSkillCondition(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                Snxxz.UI.JadeDynastySkillModel gen_to_be_invoked = (Snxxz.UI.JadeDynastySkillModel)translator.FastGetCSObj(L, 1);
                {
                    int _skillId = LuaAPI.xlua_tointeger(L, 2);
                    Snxxz.UI.JadeDynastySkillCondition _condition;
                        bool gen_ret = gen_to_be_invoked.TryGetSkillCondition( _skillId, out _condition );
                        LuaAPI.lua_pushboolean(L, gen_ret);
                    translator.Push(L, _condition);
                    return 2;
                }
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_TryGetSkillFrames(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                Snxxz.UI.JadeDynastySkillModel gen_to_be_invoked = (Snxxz.UI.JadeDynastySkillModel)translator.FastGetCSObj(L, 1);
                {
                    int _skillId = LuaAPI.xlua_tointeger(L, 2);
                    UnityEngine.Sprite[] __sprites;
                        bool gen_ret = gen_to_be_invoked.TryGetSkillFrames( _skillId, out __sprites );
                        LuaAPI.lua_pushboolean(L, gen_ret);
                    translator.Push(L, __sprites);
                    return 2;
                }
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_OnReceivePackage(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                Snxxz.UI.JadeDynastySkillModel gen_to_be_invoked = (Snxxz.UI.JadeDynastySkillModel)translator.FastGetCSObj(L, 1);
                {
                    H0310_tagRoleSkillChange _package = (H0310_tagRoleSkillChange)translator.GetObject(L, 2, typeof(H0310_tagRoleSkillChange));
                    gen_to_be_invoked.OnReceivePackage( _package );
                    return 0;
                }
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _g_get_mySkills(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                Snxxz.UI.JadeDynastySkillModel gen_to_be_invoked = (Snxxz.UI.JadeDynastySkillModel)translator.FastGetCSObj(L, 1);
                translator.Push(L, gen_to_be_invoked.mySkills);
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
            return 1;
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _g_get_selectSkill(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                Snxxz.UI.JadeDynastySkillModel gen_to_be_invoked = (Snxxz.UI.JadeDynastySkillModel)translator.FastGetCSObj(L, 1);
                LuaAPI.xlua_pushinteger(L, gen_to_be_invoked.selectSkill);
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
            return 1;
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _g_get_redpoint(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                Snxxz.UI.JadeDynastySkillModel gen_to_be_invoked = (Snxxz.UI.JadeDynastySkillModel)translator.FastGetCSObj(L, 1);
                translator.Push(L, gen_to_be_invoked.redpoint);
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
            return 1;
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _s_set_selectSkill(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                Snxxz.UI.JadeDynastySkillModel gen_to_be_invoked = (Snxxz.UI.JadeDynastySkillModel)translator.FastGetCSObj(L, 1);
                gen_to_be_invoked.selectSkill = LuaAPI.xlua_tointeger(L, 2);
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
            return 0;
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _e_skillRefresh(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                int gen_param_count = LuaAPI.lua_gettop(L);
            Snxxz.UI.JadeDynastySkillModel gen_to_be_invoked = (Snxxz.UI.JadeDynastySkillModel)translator.FastGetCSObj(L, 1);
                System.Action<int> gen_delegate = translator.GetDelegate<System.Action<int>>(L, 3);
                if (gen_delegate == null) {
                    return LuaAPI.luaL_error(L, "#3 need System.Action<int>!");
                }
                if (gen_param_count == 3)
                {
                    if (LuaAPI.xlua_is_eq_str(L, 2, "+")) {
                        gen_to_be_invoked.skillRefresh += gen_delegate;
                        return 0;
                    }
                    if (LuaAPI.xlua_is_eq_str(L, 2, "-")) {
                        gen_to_be_invoked.skillRefresh -= gen_delegate;
                        return 0;
                    }
                }
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
            LuaAPI.luaL_error(L, "invalid arguments to Snxxz.UI.JadeDynastySkillModel.skillRefresh!");
            return 0;
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _e_selectSkillRefresh(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                int gen_param_count = LuaAPI.lua_gettop(L);
            Snxxz.UI.JadeDynastySkillModel gen_to_be_invoked = (Snxxz.UI.JadeDynastySkillModel)translator.FastGetCSObj(L, 1);
                System.Action<int> gen_delegate = translator.GetDelegate<System.Action<int>>(L, 3);
                if (gen_delegate == null) {
                    return LuaAPI.luaL_error(L, "#3 need System.Action<int>!");
                }
                if (gen_param_count == 3)
                {
                    if (LuaAPI.xlua_is_eq_str(L, 2, "+")) {
                        gen_to_be_invoked.selectSkillRefresh += gen_delegate;
                        return 0;
                    }
                    if (LuaAPI.xlua_is_eq_str(L, 2, "-")) {
                        gen_to_be_invoked.selectSkillRefresh -= gen_delegate;
                        return 0;
                    }
                }
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
            LuaAPI.luaL_error(L, "invalid arguments to Snxxz.UI.JadeDynastySkillModel.selectSkillRefresh!");
            return 0;
        }
    }
}
Lua/Gen/SnxxzUIJadeDynastySkillModelWrap.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: aaf543a659c2c984a9809b27100037e9
timeCreated: 1548250966
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Lua/Gen/SnxxzUIRankModelWrap.cs
@@ -21,16 +21,20 @@
        {
            ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
            System.Type type = typeof(Snxxz.UI.RankModel);
            Utils.BeginObjectRegister(type, L, translator, 0, 2, 2, 1);
            Utils.BeginObjectRegister(type, L, translator, 0, 4, 3, 2);
            
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "Init", _m_Init);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "OnPlayerLoginOk", _m_OnPlayerLoginOk);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "UnInit", _m_UnInit);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "SendBegRank", _m_SendBegRank);
            
            
            Utils.RegisterFunc(L, Utils.GETTER_IDX, "rankType", _g_get_rankType);
            Utils.RegisterFunc(L, Utils.GETTER_IDX, "rankList", _g_get_rankList);
            Utils.RegisterFunc(L, Utils.GETTER_IDX, "jumpRankType", _g_get_jumpRankType);
            
            Utils.RegisterFunc(L, Utils.SETTER_IDX, "rankType", _s_set_rankType);
            Utils.RegisterFunc(L, Utils.SETTER_IDX, "jumpRankType", _s_set_jumpRankType);
            
            
            Utils.EndObjectRegister(type, L, translator, null, null,
@@ -104,6 +108,33 @@
        }
        
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_OnPlayerLoginOk(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                Snxxz.UI.RankModel gen_to_be_invoked = (Snxxz.UI.RankModel)translator.FastGetCSObj(L, 1);
                {
                    gen_to_be_invoked.OnPlayerLoginOk(  );
                    return 0;
                }
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_UnInit(RealStatePtr L)
        {
            try {
@@ -118,6 +149,34 @@
                {
                    
                    gen_to_be_invoked.UnInit(  );
                    return 0;
                }
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_SendBegRank(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                Snxxz.UI.RankModel gen_to_be_invoked = (Snxxz.UI.RankModel)translator.FastGetCSObj(L, 1);
                {
                    PlayerRankData.RankType _rankType;translator.Get(L, 2, out _rankType);
                    gen_to_be_invoked.SendBegRank( _rankType );
                    
                    
                    
@@ -161,6 +220,20 @@
            return 1;
        }
        
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _g_get_jumpRankType(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                Snxxz.UI.RankModel gen_to_be_invoked = (Snxxz.UI.RankModel)translator.FastGetCSObj(L, 1);
                LuaAPI.xlua_pushinteger(L, gen_to_be_invoked.jumpRankType);
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
            return 1;
        }
        
        
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
@@ -178,6 +251,21 @@
            return 0;
        }
        
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _s_set_jumpRankType(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                Snxxz.UI.RankModel gen_to_be_invoked = (Snxxz.UI.RankModel)translator.FastGetCSObj(L, 1);
                gen_to_be_invoked.jumpRankType = LuaAPI.xlua_tointeger(L, 2);
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
            return 0;
        }
        
        
        
Lua/Gen/XLuaGenAutoRegister.cs
@@ -453,6 +453,9 @@
            translator.DelayWrapLoader(typeof(Snxxz.UI.JadeDynastyBossModel), SnxxzUIJadeDynastyBossModelWrap.__Register);
        
        
            translator.DelayWrapLoader(typeof(Snxxz.UI.JadeDynastySkillModel), SnxxzUIJadeDynastySkillModelWrap.__Register);
            translator.DelayWrapLoader(typeof(Snxxz.UI.FBHelpPointExchageModel), SnxxzUIFBHelpPointExchageModelWrap.__Register);
        
        
@@ -485,13 +488,13 @@
        
            translator.DelayWrapLoader(typeof(Snxxz.UI.KingTreasureShowModel), SnxxzUIKingTreasureShowModelWrap.__Register);
        
            translator.DelayWrapLoader(typeof(KnapSackEventMgr), KnapSackEventMgrWrap.__Register);
        }
        
        static void wrapInit3(LuaEnv luaenv, ObjectTranslator translator)
        {
            translator.DelayWrapLoader(typeof(KnapSackEventMgr), KnapSackEventMgrWrap.__Register);
        
            translator.DelayWrapLoader(typeof(Snxxz.UI.LoginModel), SnxxzUILoginModelWrap.__Register);
        
@@ -642,13 +645,13 @@
        
            translator.DelayWrapLoader(typeof(Snxxz.UI.RuneModel), SnxxzUIRuneModelWrap.__Register);
        
            translator.DelayWrapLoader(typeof(Snxxz.UI.RuneTowerModel), SnxxzUIRuneTowerModelWrap.__Register);
        }
        
        static void wrapInit4(LuaEnv luaenv, ObjectTranslator translator)
        {
            translator.DelayWrapLoader(typeof(Snxxz.UI.RuneTowerModel), SnxxzUIRuneTowerModelWrap.__Register);
        
            translator.DelayWrapLoader(typeof(QuickSetting), QuickSettingWrap.__Register);
        
@@ -799,14 +802,14 @@
        
            translator.DelayWrapLoader(typeof(Snxxz.UI.ModelCenter), SnxxzUIModelCenterWrap.__Register);
        
            translator.DelayWrapLoader(typeof(Snxxz.UI.WindowCenter), SnxxzUIWindowCenterWrap.__Register);
        }
        
        static void wrapInit5(LuaEnv luaenv, ObjectTranslator translator)
        {
        
            translator.DelayWrapLoader(typeof(Snxxz.UI.WindowCenter), SnxxzUIWindowCenterWrap.__Register);
            translator.DelayWrapLoader(typeof(WindowJumpMgr), WindowJumpMgrWrap.__Register);
        
        
Lua/Gen/link.xml
@@ -123,6 +123,7 @@
        <type fullname="HeavenBattleModel" preserve="all"/>
        <type fullname="HttpRequest" preserve="all"/>
        <type fullname="Snxxz.UI.JadeDynastyBossModel" preserve="all"/>
        <type fullname="Snxxz.UI.JadeDynastySkillModel" preserve="all"/>
        <type fullname="Snxxz.UI.FBHelpPointExchageModel" preserve="all"/>
        <type fullname="Snxxz.UI.KnapsackTimeCDMgr" preserve="all"/>
        <type fullname="Snxxz.UI.BoxGetItemModel" preserve="all"/>
System/FairyAu/FairyMemberCell.cs
@@ -6,11 +6,14 @@
using UnityEngine.UI;
namespace EnhancedUI.EnhancedScroller
{
    [XLua.Hotfix]
    public class FairyMemberCell : ScrollerUI
    {
        FairyModel m_Model;
        FairyModel model {
            get {
        FairyModel model
        {
            get
            {
                return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<FairyModel>());
            }
        }
@@ -35,38 +38,41 @@
        public override void Refresh(CellView cell)
        {
            int index = cell.index;
            if (index >= model.sortFairyMembers.Count) {
            if (index < 0 || index >= model.sortFairyMembers.Count)
            {
                return;
            }
            PlayerFairyData.FairyMember fairyMember = model.sortFairyMembers[index];
            m_NameTxt.text = model.sortFairyMembers[index].Name;
            var fairyMember = model.sortFairyMembers[index];
            if (fairyMember == null)
            {
                return;
            }
            m_NameTxt.text = fairyMember.Name;
            m_NameTxt.color = UIHelper.GetUIColor(fairyMember.PlayerID == PlayerDatas.Instance.PlayerId ?
                TextColType.Green : TextColType.NavyBrown, true);
            int realmLv = fairyMember.OfficialRank;
            if (realmLv > 0) {
                m_RealmImg.gameObject.SetActive(true);
                RealmConfig presentCfg = Config.Instance.Get<RealmConfig>(realmLv);
                if (presentCfg != null) {
                    m_RealmImg.SetSprite(presentCfg.Img);
                }
            var realmConfig = Config.Instance.Get<RealmConfig>(realmLv);
            m_RealmImg.gameObject.SetActive(realmConfig != null);
            if (realmConfig != null)
            {
                m_RealmImg.SetSprite(realmConfig.Img);
            }
            else {
                m_RealmImg.gameObject.SetActive(false);
            }
            m_LvTxt.text = model.sortFairyMembers[index].LV.ToString();
            m_LvTxt.text = fairyMember.LV.ToString();
            m_DutyTxt.text = Language.Get(string.Format("L102{0}", fairyMember.FamilyLV + 1));
            m_ContributeTxt.text = fairyMember.FamilyActiveValue.ToString();
            if (model.sortFairyMembers[index].Exattr2 == 0)
            if (fairyMember.Exattr2 == 0)
            {
                m_TimeTxt.text = Language.Get("L1025");
            }
            else
            {
                m_TimeTxt.text = UIHelper.GetFadeTime(model.sortFairyMembers[index].Exattr2) + Language.Get("L1026");
                m_TimeTxt.text = UIHelper.GetFadeTime(fairyMember.Exattr2) + Language.Get("L1026");
            }
            if (model.IsOnAllot) {
            if (model.IsOnAllot && m_AllotBtn != null)
            {
                m_AllotBtn.RemoveAllListeners();
                m_AllotBtn.onClick.AddListener(() => {
                m_AllotBtn.onClick.AddListener(() =>
                {
                    OnAllot(fairyMember);
                });
            }
System/JadeDynastyBoss/JadeDynastyBossModel.cs
@@ -80,6 +80,7 @@
            dungeonModel.updateDungeonBuyCnt += OnDungeonBuyCount;
            FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
            packModel.RefreshItemCountAct += RefreshItemCountAct;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent;
        }
        public void OnBeforePlayerDataInitialize()
@@ -104,6 +105,7 @@
            dungeonModel.updateDungeonBuyCnt -= OnDungeonBuyCount;
            FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
            packModel.RefreshItemCountAct -= RefreshItemCountAct;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= PlayerDataRefreshInfoEvent;
        }
        void ParseConfig()
@@ -420,6 +422,15 @@
            }
        }
        private void PlayerDataRefreshInfoEvent(PlayerDataRefresh refreshType)
        {
            if(refreshType==PlayerDataRefresh.OfficialRank
                || refreshType == PlayerDataRefresh.LV)
            {
                UpdateRedpoint();
            }
        }
        private void RefreshItemCountAct(PackType packType, int arg2, int arg3)
        {
            if (packType == PackType.rptJadeDynastyEquip)
@@ -436,8 +447,25 @@
        {
            if (FuncOpen.Instance.IsFuncOpen(FUNCTIONID))
            {
                var count = dungeonModel.GetTotalTimes(JADEDYNASTY_MAP) - dungeonModel.GetEnterTimes(JADEDYNASTY_MAP);
                redpoint.count = count;
                var existAnyChallengeable = false;
                var condition = 0;
                foreach (var boss in jadeDynastyBosses)
                {
                    if (IsBossUnLocked(boss.bossNpcId, out condition))
                    {
                        existAnyChallengeable = true;
                        break;
                    }
                }
                if (existAnyChallengeable)
                {
                    var count = dungeonModel.GetTotalTimes(JADEDYNASTY_MAP) - dungeonModel.GetEnterTimes(JADEDYNASTY_MAP);
                    redpoint.count = count;
                }
                else
                {
                    redpoint.count = 0;
                }
            }
            else
            {
System/JadeDynastyBoss/JadeDynastyBossVictoryWin.cs
@@ -186,16 +186,16 @@
            {
                return -islhsJadeDynastyEquip.CompareTo(isrhsJadeDynastyEquip);
            }
            var islhsJadeDynasty126 = IsJadeDynasty126(_lhs);
            var isrhsJadeDynasty126 = IsJadeDynasty126(_rhs);
            if (islhsJadeDynasty126 == isrhsJadeDynasty126
                && islhsJadeDynasty126)
            var islhsJadeDynasty138 = IsJadeDynasty138(_lhs);
            var isrhsJadeDynasty138 = IsJadeDynasty138(_rhs);
            if (islhsJadeDynasty138 == isrhsJadeDynasty138
                && islhsJadeDynasty138)
            {
                return _lhs.id.CompareTo(_rhs.id);
            }
            else if (islhsJadeDynasty126 != isrhsJadeDynasty126)
            else if (islhsJadeDynasty138 != isrhsJadeDynasty138)
            {
                return -islhsJadeDynasty126.CompareTo(isrhsJadeDynasty126);
                return -islhsJadeDynasty138.CompareTo(isrhsJadeDynasty138);
            }
            var lhsConfig = Config.Instance.Get<ItemConfig>(_lhs.id);
            var rhsConfig = Config.Instance.Get<ItemConfig>(_rhs.id);
@@ -217,7 +217,7 @@
            return type >= 128 && type <= 137;
        }
        bool IsJadeDynasty126(Item item)
        bool IsJadeDynasty138(Item item)
        {
            var config = Config.Instance.Get<ItemConfig>(item.id);
            var type = 0;
@@ -225,7 +225,7 @@
            {
                type = config.Type;
            }
            return type == 126;
            return type == 138;
        }
        private void GenerateRewardBehaviour(RectTransform _parent, int _needCount)
System/JadeDynastyKnapSack/JadeDynastyDecomposeGetItemWin.cs
New file
@@ -0,0 +1,84 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class JadeDynastyDecomposeGetItemWin : Window
    {
        [SerializeField] GameObject getItemObj;
        [SerializeField] RectTransform getItemParent;
        [SerializeField] Button sureBtn;
        List<GameObject> GetItemlist = new List<GameObject>();
        JadeDynastyDecomposeModel decomposeModel { get { return ModelCenter.Instance.GetModel<JadeDynastyDecomposeModel>(); } }
        ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
            sureBtn.AddListener(CloseClick);
        }
        protected override void OnPreOpen()
        {
            getItemObj.SetActive(false);
            CreateGetItem();
        }
        protected override void OnAfterOpen()
        {
        }
        protected override void OnPreClose()
        {
            DestroyGetItemlist();
        }
        protected override void OnAfterClose()
        {
        }
        private void CreateGetItem()
        {
            GetItemlist.Clear();
            List<JadeDynastyDecomposeModel.DecomposeGetItem> matInfolist = decomposeModel.getDecomposeItems;
            for (int i = 0; i < matInfolist.Count; i++)
            {
                GameObject item = Instantiate(getItemObj);
                var  matInfo= matInfolist[i];
                item.transform.SetParent(getItemParent);
                item.transform.localPosition = Vector3.zero;
                item.transform.localScale = Vector3.one;
                item.name = StringUtility.Contact("getItem",i);
                item.gameObject.SetActive(true);
                CommonItemBaisc itemBasic = item.transform.Find("CommonItemCell").GetComponent<CommonItemBaisc>();
                ItemCellModel cellModel = new ItemCellModel(matInfo.itemId, false, (ulong)matInfo.itemCount, matInfo.isBind);
                itemBasic.Init(cellModel);
                itemBasic.cellBtn.RemoveAllListeners();
                itemBasic.cellBtn.AddListener(() =>
                {
                    ItemAttrData attrData = new ItemAttrData(matInfo.itemId, false, (ulong)matInfo.itemCount, -1, matInfo.isBind);
                    tipsModel.SetItemTipsModel(attrData);
                });
                itemBasic.gameObject.SetActive(true);
                GetItemlist.Add(item);
            }
        }
        private void DestroyGetItemlist()
        {
            for (int i = 0; i < GetItemlist.Count; i++)
            {
                Destroy(GetItemlist[i]);
            }
        }
    }
}
System/JadeDynastyKnapSack/JadeDynastyDecomposeGetItemWin.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 1f316cc8750556c46ab5cf0d725d0ec3
timeCreated: 1548230749
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/JadeDynastyKnapSack/JadeDynastyDecomposeModel.cs
@@ -26,7 +26,7 @@
        public void OnBeforePlayerDataInitialize()
        {
            playerPack.RefreshItemCountAct -= UpdateItem;
        }
        public void OnAfterPlayerDataInitialize()
@@ -40,6 +40,7 @@
        public void OnPlayerLoginOk()
        {
            playerPack.RefreshItemCountAct += UpdateItem;
            UpdateDecomposeModels();
            UpdateSelectModels();
        }
@@ -47,6 +48,36 @@
        public override void UnInit()
        {
           
        }
        public List<DecomposeGetItem> getDecomposeItems = new List<DecomposeGetItem>();
        public void UpdateJadeDynastyDecomposeResult(HA815_tagMCZhuXianDecomposeResult result)
        {
            getDecomposeItems.Clear();
            for (int i = 0; i < result.Cnt; i++)
            {
                var itemData = result.ItemList[i];
                var getItemData = new DecomposeGetItem((int)itemData.ItemID,itemData.ItemCnt,itemData.IsBind);
                getDecomposeItems.Add(getItemData);
            }
            if(getDecomposeItems.Count > 0)
            {
                WindowCenter.Instance.Open<JadeDynastyDecomposeGetItemWin>();
            }
        }
        private void UpdateItem(PackType type, int index, int id)
        {
            if (type != PackType.rptJadeDynastyItem || !isAutoDecompose) return;
            UpdateDecomposeModels();
            UpdateSelectModels();
            int remainGrid = playerPack.GetReaminGridCount(PackType.rptJadeDynastyItem);
            if(remainGrid < 1)
            {
                SendJadeDynastyDecompose(1);
            }
        }
        private int GetSelectEquipLvByLocalSave()
@@ -133,5 +164,45 @@
            }
        }
        public void SendJadeDynastyDecompose(int isAuto)
        {
            List<ushort> indexs = null;
            List<uint> ids = null;
            GetSelectItemIndexs(out indexs, out ids);
            CA332_tagCMZhuXianEquipDecompose zhuXianEquipDecompose = new CA332_tagCMZhuXianEquipDecompose();
            zhuXianEquipDecompose.Count = (byte)indexs.Count;
            zhuXianEquipDecompose.IndexList = indexs.ToArray();
            zhuXianEquipDecompose.ItemIDList = ids.ToArray();
            zhuXianEquipDecompose.IsAuto = (byte)isAuto;
            GameNetSystem.Instance.SendInfo(zhuXianEquipDecompose);
        }
        private void GetSelectItemIndexs(out List<ushort> indexs, out List<uint> ids)
        {
            indexs = new List<ushort>();
            ids = new List<uint>();
            foreach(var guid in selectGuids)
            {
                var model = playerPack.GetItemModelByGUID(guid);
                if(model != null)
                {
                    indexs.Add((ushort)model.itemInfo.ItemPlace);
                    ids.Add((uint)model.itemId);
                }
            }
        }
        public class DecomposeGetItem
        {
            public int itemId { get; private set; }
            public int itemCount { get; private set;}
            public int isBind { get; private set; }
            public DecomposeGetItem(int id,int count,int isBind)
            {
                this.itemId = id;
                this.itemCount = count;
                this.isBind = isBind;
            }
        }
    }
}
System/JadeDynastyKnapSack/JadeDynastyDecomposeWin.cs
@@ -16,6 +16,7 @@
        [SerializeField] Transform sortArrow;
        [SerializeField] int initCount = 100;
       
        PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
        JadeDynastyDecomposeModel decomposeModel { get { return ModelCenter.Instance.GetModel<JadeDynastyDecomposeModel>(); } }
        #region Built-in
        protected override void BindController()
@@ -32,10 +33,11 @@
        protected override void OnPreOpen()
        {
            playerPack.RefreshItemCountAct += UpdateItem;
            decomposeModel.UpdateSelectItemEvent += UpdateSelectItem;
            sortTable.onSortCloseEvent += CloseSortTable;
            sortTable.onSelectSortEvent += UpdateSelectEquipLv;
            sortTable.SetDefault();
            sortTable.SetDefault(decomposeModel.selectEquipLv);
            SetDisplay();
        }
@@ -46,6 +48,7 @@
        protected override void OnPreClose()
        {
            playerPack.RefreshItemCountAct -= UpdateItem;
            decomposeModel.UpdateSelectItemEvent -= UpdateSelectItem;
            sortTable.onSortCloseEvent -= CloseSortTable;
            sortTable.onSelectSortEvent -= UpdateSelectEquipLv;
@@ -77,6 +80,15 @@
            decomposeCtrl.Restart();
        }
        private void UpdateItem(PackType type, int index, int id)
        {
            if (type != PackType.rptJadeDynastyItem) return;
            decomposeModel.UpdateDecomposeModels();
            decomposeModel.UpdateSelectModels();
            UpdateSelectItem();
        }
        private void UpdateSelectEquipLv(SortType type, int lv)
        {
            if (type != SortType.EquipLv) return;
@@ -105,7 +117,7 @@
        private void ClickDecompose()
        {
            decomposeModel.SendJadeDynastyDecompose(0);
        }
        private void ClickAutoDecompose()
System/JadeDynastyKnapSack/JadeDynastyEquipBeh.cs
@@ -12,6 +12,8 @@
        [SerializeField] Text lockText;
        [SerializeField] Text nameText;
        [SerializeField] Button equipBtn;
        [SerializeField] GameObject equipLvObj;
        [SerializeField] Text equipLvText;
        ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
        PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
@@ -33,15 +35,17 @@
        public void SetDisplay()
        {
            bool islock = equipModel.IsLockEquipPlace((int)equipType);
            nameText.text = string.Empty;
            nameText.gameObject.SetActive(true);
            nameText.text = Language.Get(equipType.ToString());
            lockText.gameObject.SetActive(false);
            nameText.gameObject.SetActive(false);
            lockObj.SetActive(islock);
            equipBtn.RemoveAllListeners();
            itemCell.cellBtn.RemoveAllListeners();
            equipLvObj.SetActive(false);
            if(islock)
            {
                itemCell.gameObject.SetActive(false);
                equipBtn.AddListener(ClickEquipBtn);
            }
            else
            {
@@ -49,10 +53,22 @@
                itemCell.gameObject.SetActive(itemModel != null);
                if (itemModel != null)
                {
                    equipLvObj.SetActive(true);
                    nameText.gameObject.SetActive(false);
                    itemCell.Init(itemModel);
                    itemCell.cellBtn.AddListener(() => { ClickItemCell(itemModel); });
                    equipLvText.text = Language.Get("L1091",itemModel.chinItemModel.LV);
                }
                else
                {
                    equipBtn.AddListener(ClickEquipBtn);
                }
            }
        }
        private void ClickEquipBtn()
        {
            equipModel.SetLookEquipGetPath((int)equipType);
        }
        private void PutOffEquip(PackType type, int index, int id)
@@ -79,7 +95,7 @@
            if (item == null) return;
            tipsModel.SetItemTipsModel(item.packType,item.itemInfo.ItemGUID,false);
            tipsModel.SetPutOnTipsBtn(tipsModel.curAttrData);
            tipsModel.SetJadeDynastyPutOnTipsBtn(tipsModel.curAttrData);
            tipsModel.ShowUICtrl();
        }
    }
System/JadeDynastyKnapSack/JadeDynastyEquipGetPathsWin.cs
New file
@@ -0,0 +1,154 @@
using System;
using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;
using TableConfig;
using System.Collections;
namespace Snxxz.UI
{
    public class JadeDynastyEquipGetPathsWin : Window
    {
        [SerializeField] RectTransform container;
        [SerializeField] CanvasGroup alpha;
        [SerializeField] List<Path> paths = new List<Path>();
        JadeDynastyEquipModel equipModel { get { return ModelCenter.Instance.GetModel<JadeDynastyEquipModel>(); } }
        #region Built-in
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
        }
        protected override void OnPreOpen()
        {
            SetDisplay();
        }
        protected override void OnActived()
        {
            base.OnActived();
            StartCoroutine(DelayShow());
        }
        protected override void OnAfterOpen()
        {
        }
        protected override void OnPreClose()
        {
        }
        protected override void OnAfterClose()
        {
        }
        #endregion
        private void SetDisplay()
        {
            alpha.alpha = 0;
            container.gameObject.SetActive(false);
            UpdatePath();
        }
        IEnumerator DelayShow()
        {
            yield return null;
            container.gameObject.SetActive(true);
            container.localPosition = equipModel.targetPos;
            StartCoroutine(DelayAlpha());
        }
        IEnumerator DelayAlpha()
        {
            yield return null;
            alpha.alpha = 1;
        }
        private void UpdatePath()
        {
            bool isLock = equipModel.IsLockEquipPlace(equipModel.targetEquipPlace);
            if(isLock)
            {
                int towerLayer = 0;
                equipModel.TryGetLockTowerLayer(equipModel.targetEquipPlace,out towerLayer);
                for (int i = 0; i < paths.Count; i++)
                {
                    var path = paths[i];
                    if(i == 0)
                    {
                        path.pathObj.SetActive(true);
                        path.SetDisPlay(0,towerLayer);
                    }
                    else
                    {
                        path.pathObj.SetActive(false);
                    }
                }
            }
            else
            {
                List<int> pathIds = null;
                bool isPath = equipModel.TryGetEquipPaths(equipModel.targetEquipPlace,out pathIds);
                if(isPath)
                {
                    for(int i = 0; i < paths.Count; i++)
                    {
                        var path = paths[i];
                        if(i < pathIds.Count)
                        {
                            var pathId = pathIds[i];
                            path.pathObj.SetActive(true);
                            path.SetDisPlay(pathId,0);
                        }
                        else
                        {
                            path.pathObj.SetActive(false);
                        }
                    }
                }
            }
        }
        [Serializable]
        public class Path
        {
            [SerializeField] public GameObject pathObj;
            [SerializeField] Text pathText;
            [SerializeField] Button pathBtn;
            public void SetDisPlay(int pathId,int towerLayer)
            {
                pathBtn.RemoveAllListeners();
                if (towerLayer == 0)
                {
                    var pathConfig = Config.Instance.Get<GetItemWaysConfig>(pathId);
                    if (pathConfig == null) return;
                    pathText.text = pathConfig.name;
                    pathBtn.AddListener(()=>
                    {
                        WindowCenter.Instance.CloseImmediately<JadeDynastyEquipGetPathsWin>();
                        WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)pathConfig.OpenpanelId);
                    });
                }
                else
                {
                    pathText.text = Language.Get("JadeDynastyEquip2",towerLayer);
                    pathBtn.AddListener(() =>
                    {
                        WindowCenter.Instance.CloseImmediately<JadeDynastyEquipGetPathsWin>();
                        WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.JadeDynastyTower288);
                    });
                }
            }
        }
    }
}
System/JadeDynastyKnapSack/JadeDynastyEquipGetPathsWin.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 2f33faa6ffe19c3488cdb1f273751e8c
timeCreated: 1548247759
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/JadeDynastyKnapSack/JadeDynastyEquipModel.cs
@@ -4,6 +4,7 @@
using System.Text;
using TableConfig;
using LitJson;
using UnityEngine;
namespace Snxxz.UI
{
@@ -46,6 +47,7 @@
        #region 解析表数据
        public Dictionary<int, int> lockEquipLayerDict { get; private set; }
        public Dictionary<int, List<int>> suitTypeDict { get; private set;}
        public Dictionary<int, List<int>> equipGetPathDict { get; private set;}
        public void ParseFuncConfig()
        {
            lockEquipLayerDict = new Dictionary<int, int>();
@@ -75,6 +77,27 @@
                    }
                }
            }
            equipGetPathDict = new Dictionary<int, List<int>>();
            var jadeDynastyEquipGetPaths = Config.Instance.Get<FuncConfigConfig>("JadeDynastyEquipGetPaths");
            var equipGetPathData = JsonMapper.ToObject(jadeDynastyEquipGetPaths.Numerical1);
            foreach(var key in equipGetPathData.Keys)
            {
                var pathData = equipGetPathData[key];
                int equipPlace = int.Parse(key);
                List<int> pathIds = new List<int>();
                equipGetPathDict.Add(equipPlace,pathIds);
                if(pathData.IsArray)
                {
                    for(int i = 0; i < pathData.Count; i++)
                    {
                        int pathId = int.Parse(pathData[i].ToString());
                        pathIds.Add(pathId);
                    }
                }
            }
        }
        public Dictionary<int, Dictionary<int, JadeDynastySuitAttrData>> suitAttrDict { get; private set; }
@@ -141,8 +164,53 @@
        }
        #endregion
        #region 封包
        #region 查看物品
        public string lookGuid { get; private set; }
        public int jumpIndex { get; private set;}
        public void SetLookItemModel(string guid)
        {
            jumpIndex = -1;
            lookGuid = string.Empty;
            if (string.IsNullOrEmpty(guid)) return;
            var model = playerPack.GetItemModelByGUID(guid);
            if(model != null)
            {
                lookGuid = guid;
                int itemIndex = model.itemInfo.ItemPlace;
                jumpIndex = itemIndex / 5;
                WindowCenter.Instance.CloseImmediately<MainInterfaceWin>();
                WindowCenter.Instance.Open<JadeDynastyKnapSackWin>(false,0);
            }
        }
        public void ClearLookItemModel()
        {
            lookGuid = string.Empty;
            jumpIndex = -1;
        }
        #endregion
        #region 查看装备栏获取途径
        public Vector2 targetPos;
        public int targetEquipPlace { get; private set; }
        public void SetLookEquipGetPath(int equipPlace)
        {
            this.targetEquipPlace = equipPlace;
            RectTransformUtility.ScreenPointToLocalPointInRectangle(WindowCenter.Instance.uiRoot.tipsCanvas, Input.mousePosition, WindowCenter.Instance.uiRoot.uicamera, out targetPos);
            if(!WindowCenter.Instance.IsOpen<JadeDynastyEquipGetPathsWin>())
            {
                WindowCenter.Instance.Open<JadeDynastyEquipGetPathsWin>();
            }
        }
        #endregion
        public bool TryGetEquipPaths(int equipPlace, out List<int> pathIds)
        {
            pathIds = null;
            return equipGetPathDict.TryGetValue(equipPlace,out pathIds);
        }
        public bool TryGetJadeDynastyEquipIndex(int equipPlace,out int equipIndex)
        {
@@ -304,7 +372,7 @@
                case PackType.rptJadeDynastyItem:
                    if(isMax)
                    {
                        curSuitLv = maxSuitLv;
                        nextSuitLV = maxSuitLv;
                        return true;
                    }
                    break;
System/JadeDynastyKnapSack/JadeDynastyEquipWin.cs
@@ -6,7 +6,12 @@
{
    public class JadeDynastyEquipWin : Window
    {
        [SerializeField] Text fightPowerText;
        [SerializeField] Button decomposeBtn;
        [SerializeField] Button sortBtn;
        [SerializeField] Text sortText;
        [SerializeField] Image sortImage;
        [Header("诛仙装备位")]
        [SerializeField] Button stoneAttrBtn;
        [SerializeField] Button suitAttrBtn;
@@ -16,6 +21,9 @@
        [SerializeField] int initCount = 100;
        PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
        PackModelInterface modelInterface { get { return ModelCenter.Instance.GetModel<PackModelInterface>(); } }
        JadeDynastyEquipModel equipModel { get { return ModelCenter.Instance.GetModel<JadeDynastyEquipModel>(); } }
        #region Built-in
        protected override void BindController()
        {
@@ -26,11 +34,13 @@
            decomposeBtn.AddListener(ClickDecompose);
            stoneAttrBtn.AddListener(ClickStoneAttr);
            suitAttrBtn.AddListener(ClickSuitAttr);
            sortBtn.AddListener(OnClickSort);
        }
        protected override void OnPreOpen()
        {
            playerPack.RefreshItemCountAct += UpdateJadeDynastyItem;
            playerPack.RefreshPackAct += UpdateJadeDynastyKnapSack;
            SetDisplay();
        }
@@ -41,8 +51,10 @@
        protected override void OnPreClose()
        {
            playerPack.RefreshPackAct -= UpdateJadeDynastyKnapSack;
            playerPack.RefreshItemCountAct -= UpdateJadeDynastyItem;
            UI3DModelExhibition.Instance.StopShow();
            equipModel.ClearLookItemModel();
        }
        protected override void OnAfterClose()
@@ -55,6 +67,32 @@
        {
            CreateItemLine();
            UpdatePlayerUI3DModel();
            UpdateFightPower();
            UpdateLookItem();
            TimeDownMgr.CoolTimeData data;
            if (TimeDownMgr.Instance.Get(TimeDownMgr.CoolTimeType.BagSort, out data))
            {
                data.func = RefreshTime;
                sortImage.SetSprite("BlackBtn");
                sortText.text = Language.Get("BagWin_SortCDbtn_Text_1", Mathf.CeilToInt(data.duration - data.time));
                sortBtn.enabled = false;
            }
            else
            {
                sortImage.SetSprite("SecondBtn1");
                sortText.text = Language.Get("BagWin_Sortbtn_Text_1");
                sortBtn.enabled = true;
            }
        }
        public void UpdateLookItem()
        {
            if (equipModel.jumpIndex < 0) return;
            int jumpIndex = equipModel.jumpIndex;
            jumpIndex = jumpIndex > 2 ? jumpIndex - 2 : jumpIndex;
            itemCtrl.JumpIndex(jumpIndex);
            itemCtrl.m_Scorller.RefreshActiveCellViews();
        }
        private void CreateItemLine()
@@ -68,6 +106,28 @@
            itemCtrl.Restart();
        }
        private void UpdateJadeDynastyKnapSack(PackType type)
        {
            if (type != PackType.rptJadeDynastyItem) return;
            UpdateItemLine();
        }
        private void UpdateFightPower()
        {
            int fightPower = 0;
            var singlePack = playerPack.GetSinglePackModel(PackType.rptJadeDynastyEquip);
            if (singlePack != null)
            {
                var dict = singlePack.GetPackModelIndexDict();
                foreach(var model in dict.Values)
                {
                    fightPower += model.equipScore;
                }
            }
            fightPowerText.text = fightPower.ToString();
        }
        private void UpdateJadeDynastyItem(PackType type, int index, int id)
        {
            if (type != PackType.rptJadeDynastyItem) return;
@@ -76,9 +136,11 @@
            {
                case PackType.rptJadeDynastyItem:
                    UpdateItemLine();
                    equipModel.ClearLookItemModel();
                    break;
                case PackType.rptJadeDynastyEquip:
                    UpdatePlayerUI3DModel();
                    UpdateFightPower();
                    break;
            }
        }
@@ -103,6 +165,31 @@
        }
        public void OnClickSort()
        {
            modelInterface.SendPackResetQuest(PackType.rptJadeDynastyItem);
            TimeDownMgr.Instance.Begin(TimeDownMgr.CoolTimeType.BagSort, 5.0f, RefreshTime);
            sortText.text = Language.Get("BagWin_SortCDbtn_Text_1", 5);
            sortImage.SetSprite("BlackBtn");
            sortBtn.enabled = false;
        }
        private void RefreshTime(float time)
        {
            if (time <= 0)
            {
                sortImage.SetSprite("SecondBtn1");
                sortText.text = Language.Get("BagWin_Sortbtn_Text_1");
                sortBtn.enabled = true;
            }
            else
            {
                sortText.text = Language.Get("BagWin_SortCDbtn_Text_1", time);
                sortBtn.enabled = false;
            }
        }
        private void ClickDecompose()
        {
            WindowCenter.Instance.Open<JadeDynastyDecomposeWin>();
System/JadeDynastyKnapSack/JadeDynastyItemBeh.cs
@@ -7,9 +7,13 @@
    {
        [SerializeField] ItemCell itemCell;
        [SerializeField] Button lockBtn;
        [SerializeField] UIEffect effect;
        [SerializeField] GameObject equipLvObj;
        [SerializeField] Text equipLvText;
        ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
        PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
        JadeDynastyEquipModel equipModel { get { return ModelCenter.Instance.GetModel<JadeDynastyEquipModel>(); } }
        public void SetDisplay(int index)
        {
@@ -18,23 +22,51 @@
            var itemModel = playerPack.GetItemModelByIndex(PackType.rptJadeDynastyItem, index);
            itemCell.gameObject.SetActive(itemModel != null);
            if(itemModel != null)
            {
                equipLvObj.SetActive(true);
                lockBtn.gameObject.SetActive(false);
                itemCell.Init(itemModel,true);
                equipLvText.text = Language.Get("L1091",itemModel.chinItemModel.LV);
                itemCell.cellBtn.RemoveAllListeners();
                itemCell.cellBtn.AddListener(()=>
                {
                    tipsModel.SetItemTipsModel(itemModel.packType,itemModel.itemInfo.ItemGUID,false,true);
                    tipsModel.SetBagTipsBtn(tipsModel.curAttrData);
                    tipsModel.SetJadeDynastyItemTipsBtn(tipsModel.curAttrData);
                    tipsModel.ShowUICtrl();
                });
                UpdatePlayerEffect(itemModel.itemInfo.ItemGUID);
            }
            else
            {
                equipLvObj.SetActive(false);
                bool isLock = index > (singlePack.openGridCount - 1);
                lockBtn.gameObject.SetActive(isLock);
                UpdatePlayerEffect(null);
            }
        }
        private void UpdatePlayerEffect(string guid)
        {
            if (effect == null) return;
            if(string.IsNullOrEmpty(guid))
            {
                if(effect.IsPlaying)
                {
                    effect.Stop();
                }
            }
            else
            {
                if(guid == equipModel.lookGuid)
                {
                    if (!effect.IsPlaying)
                    {
                        effect.Play();
                    }
                }
            }
        }
    }
System/JadeDynastyKnapSack/JadeDynastySuitAttrBeh.cs
@@ -85,11 +85,11 @@
        {
            if (!isNext)
            {
                titleText.text = StringUtility.Contact("套装总属性");
                titleText.text = Language.Get("JadeDynastyEquip3");
            }
            else
            {
                titleText.text = StringUtility.Contact("进阶属性");
                titleText.text = Language.Get("JadeDynastyEquip4");
            }
            List<int> suitTypes = equipModel.suitTypeDict.Keys.ToList();
@@ -172,29 +172,37 @@
                else
                {
                    attrTypeObj.SetActive(true);
                    switch (suitType)
                    {
                        case 1:
                            suitTypeText.text = StringUtility.Contact("诛仙守护LV." + suitAttrData.suitLv);
                            break;
                        case 2:
                            suitTypeText.text = StringUtility.Contact("诛仙之力LV." + suitAttrData.suitLv);
                            break;
                        case 3:
                            suitTypeText.text = StringUtility.Contact("诛仙剑阵LV." + suitAttrData.suitLv);
                            break;
                    }
                    string suitName = Language.Get(StringUtility.Contact("JadeDynastyEquipSuit_", suitType));
                    suitTypeText.text = StringUtility.Contact(suitName,"Lv." + suitAttrData.suitLv);
                }
                int[] ids = suitAttrData.suitAttrConfig.attrIDList;
                int[] values = suitAttrData.suitAttrConfig.attrValueList;
                int equipPlace = equipModel.suitTypeDict[suitType][0];
                var equipPlaces = equipModel.suitTypeDict[suitType];
                int equipPlace = equipPlaces[0];
                List<int> activeEquips = null;
                bool isActive = equipModel.TryGetIsActiveSuit(equipPlace,suitAttrData.suitLv,out activeEquips);
                activeObj.SetActive(!isActive);
                if(!isActive)
                {
                    string conditionSB = StringUtility.Contact("达到",suitAttrData.suitLv,"阶激活");
                    string equipsName = string.Empty;
                    for(int i = 0; i < equipPlaces.Count; i++)
                    {
                        var place = equipPlaces[i];
                        string equipName = Language.Get(((RoleEquipType)place).ToString());
                        if (activeEquips.Contains(place))
                        {
                            equipName = UIHelper.AppendStringColor(TextColType.Green,equipName);
                        }
                        if (i == 0)
                        {
                            equipsName = equipName;
                        }
                        else
                        {
                            equipsName = StringUtility.Contact(equipsName, " ", equipName);
                        }
                    }
                    string conditionSB = Language.Get("JadeDynastyEquip1",equipsName,suitAttrData.suitLv);
                    activeText.text = conditionSB;
                }
                for (int i = 0; i < attrObjlist.Count; i++)
System/JadeDynastySkill/JadeDynastySkillWin.cs
@@ -126,6 +126,9 @@
                    var config = Config.Instance.Get<SkillFrameAnimationConfig>(model.selectSkill);
                    m_SkillFrame.SetSprites(sprites, (float)config.totalTime / 1000);
                    m_SkillDescriptionIcon.SetSprite(config.descriptionIcon);
                    var rt = m_SkillFrame.transform as RectTransform;
                    rt.sizeDelta = config.sizeDelta;
                    rt.localPosition = config.position;
                }
            }
        }
System/JadeDynastyTower/JadeDynastyTowerModel.cs
@@ -5,10 +5,13 @@
namespace Snxxz.UI
{
    public class JadeDynastyTowerModel : Model, IPlayerLoginOk, IMapInitOk, IBeforePlayerDataInitialize
    [XLua.LuaCallCSharp]
    [XLua.Hotfix]
    public class JadeDynastyTowerModel : Model, IPlayerLoginOk, IMapInitOk, IBeforePlayerDataInitialize, ISwitchAccount
    {
        public const int DATA_MAPID = 31370;
        const int REDPOINTID = 1;
        const int REDPOINTID_01 = 21501;
        const int REDPOINTID_02 = 215;
        const int FUNCTIONID = 164;
        public int highestPassFloor { get; private set; }
@@ -33,7 +36,13 @@
        public bool openJadeDynastyTower { get; set; }
        bool serverInited = false;
        Redpoint redpoint = new Redpoint(REDPOINTID);
        bool redpointConfirm_01 = false;
        bool redpointConfirm_02 = false;
        Redpoint redpoint01 = new Redpoint(37, REDPOINTID_01);
        Redpoint redpoint02 = new Redpoint(REDPOINTID_02);
        List<int> sortedFloors = new List<int>();
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
@@ -61,8 +70,10 @@
                    case 1:
                        break;
                    case 2:
                        SysNotifyMgr.Instance.ShowTip("GeRen_chenxin_268121", DATA_MAPID);
                        break;
                    case 3:
                        SysNotifyMgr.Instance.ShowTip("SingleEnterCD", DATA_MAPID);
                        break;
                    default:
                        break;
@@ -82,15 +93,15 @@
                return 1;
            }
            var coolDown = dungeonModel.GetEnterCoolDown(JadeDynastyTowerModel.DATA_MAPID);
            if (coolDown != null && coolDown.suplursSeconds > 0)
            var enterTimes = dungeonModel.GetEnterTimes(DATA_MAPID);
            var totalTimes = dungeonModel.GetTotalTimes(DATA_MAPID);
            if (enterTimes >= totalTimes)
            {
                return 2;
            }
            var enterTimes = dungeonModel.GetEnterTimes(DATA_MAPID);
            var totalTimes = dungeonModel.GetTotalTimes(DATA_MAPID);
            if (enterTimes >= totalTimes)
            var coolDown = dungeonModel.GetEnterCoolDown(DATA_MAPID);
            if (coolDown != null && coolDown.suplursSeconds > 0)
            {
                return 3;
            }
@@ -173,9 +184,28 @@
            }
        }
        public void ConfirmRedpoint01()
        {
            redpointConfirm_01 = true;
            UpateRedpoint();
        }
        public void ConfirmRedpoint02()
        {
            redpointConfirm_02 = true;
            UpateRedpoint();
        }
        public void OnPlayerLoginOk()
        {
            serverInited = true;
            UpateRedpoint();
        }
        public void OnSwitchAccount()
        {
            redpointConfirm_01 = false;
            redpointConfirm_02 = false;
        }
        public void OnMapInitOk()
@@ -185,6 +215,29 @@
                case DATA_MAPID:
                    RequestRefreshMonster();
                    break;
            }
        }
        private void UpateRedpoint()
        {
            var challengable = IsChallengable();
            if (!redpointConfirm_01)
            {
                redpoint01.state = challengable ? RedPointState.Simple : RedPointState.None;
            }
            else
            {
                redpoint01.state = RedPointState.None;
            }
            if (!redpointConfirm_02)
            {
                redpoint02.state = challengable ? RedPointState.Simple : RedPointState.None;
            }
            else
            {
                redpoint02.state = RedPointState.None;
            }
        }
@@ -201,6 +254,8 @@
        {
            serverInited = false;
        }
    }
}
System/JadeDynastyTower/JadeDynastyTowerRankBehaviour.cs
@@ -51,7 +51,7 @@
        private void ViewRank()
        {
            WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.JadeDynastyTowerRank);
        }
        public struct RankInfo
System/JadeDynastyTower/JadeDynastyTowerRewardBehaviour.cs
@@ -46,7 +46,7 @@
                if (i < config.rewardIdsLevelA.Length)
                {
                    var id = config.rewardIdsLevelA[i];
                    var count = config.rewardIdsLevelS[i];
                    var count = config.rewardCountsLevelA[i];
                    behaviour.gameObject.SetActive(true);
                    behaviour.SetItem(id, count);
                }
System/JadeDynastyTower/JadeDynastyTowerWin.cs
@@ -12,7 +12,7 @@
namespace Snxxz.UI
{
    [XLua.Hotfix]
    public class JadeDynastyTowerWin : Window
    {
        [SerializeField] JadeDynastyTowerBehaviour m_TowerBehaviour;
@@ -41,6 +41,7 @@
        protected override void OnPreOpen()
        {
            model.ConfirmRedpoint02();
            ModelCenter.Instance.GetModel<RankModel>().SendBegRank(PlayerRankData.RankType.JadeDynastyTower);
        }
System/JadeDynastyTower/JadyDynastyTowerVictoryWin.cs
@@ -106,7 +106,7 @@
        {
            model.RequestAward();
            if (model.IsTopFloor(model.currentFloor))
            if (model.IsTopFloor(model.highestPassFloor))
            {
                dungeonModel.ExitCurrentDungeon();
            }
System/JadeDynastyTower/TowerWin.cs
@@ -19,6 +19,8 @@
        [SerializeField] FunctionButton m_JadeDynastyTower;
        [SerializeField] Button m_Close;
        JadeDynastyTowerModel jadeDynastyTowerModel { get { return ModelCenter.Instance.GetModel<JadeDynastyTowerModel>(); } }
        #region Built-in
        protected override void BindController()
        {
@@ -33,6 +35,7 @@
        protected override void OnPreOpen()
        {
            jadeDynastyTowerModel.ConfirmRedpoint01();
        }
        protected override void OnAfterOpen()
System/KnapSack/BetterItemGetBehaviour.cs
@@ -90,43 +90,63 @@
            ItemModel betterEquip;
            if (model.TryGetBetterEquip(model.currentEquipGuid, out betterEquip))
            {
                var itemConfig = Config.Instance.Get<ItemConfig>(betterEquip.itemInfo.ItemID);
                if (NewBieCenter.Instance.inGuiding)
                switch(betterEquip.packType)
                {
                    case PackType.rptItem:
                        ToOpenRoleKanpsack(betterEquip);
                        break;
                    case PackType.rptJadeDynastyItem:
                        ToOpenJadeDynastyKnapsack(betterEquip);
                        break;
                }
            }
        }
        private void ToOpenRoleKanpsack(ItemModel betterEquip)
        {
            var itemConfig = Config.Instance.Get<ItemConfig>(betterEquip.itemInfo.ItemID);
            if (NewBieCenter.Instance.inGuiding)
            {
                playerPack.SetLookIndex(betterEquip.itemInfo.ItemGUID);
                WindowCenter.Instance.Close<MainInterfaceWin>();
                WindowCenter.Instance.Open<KnapSackWin>();
                StartCoroutine(Co_Delay(model.currentEquipGuid));
            }
            else
            {
                if (itemConfig.ItemColor >= 3)
                {
                    playerPack.SetLookIndex(betterEquip.itemInfo.ItemGUID);
                    WindowCenter.Instance.Close<MainInterfaceWin>();
                    WindowCenter.Instance.Open<KnapSackWin>();
                    StartCoroutine(Co_Delay(model.currentEquipGuid));
                }
                else
                {
                    if (itemConfig.ItemColor >= 3)
                    if ((itemConfig.LV == 1 || itemConfig.LV == 2) && (itemConfig.EquipPlace == 1 || itemConfig.EquipPlace == 2))
                    {
                        playerPack.SetLookIndex(betterEquip.itemInfo.ItemGUID);
                        WindowCenter.Instance.Close<MainInterfaceWin>();
                        WindowCenter.Instance.Open<KnapSackWin>();
                        if ((itemConfig.LV == 1 || itemConfig.LV == 2) && (itemConfig.EquipPlace == 1 || itemConfig.EquipPlace == 2))
                        {
                            StartCoroutine(Co_Delay(model.currentEquipGuid));
                        }
                        else
                        {
                            model.ReportConfirmBetterEquip(model.currentEquipGuid);
                        }
                        StartCoroutine(Co_Delay(model.currentEquipGuid));
                    }
                    else
                    {
                        PackSendQuestMgr.Instance.SendPutOnQuest(ItemWinBtnType.putOn, model.currentEquipGuid);
                        model.ReportConfirmBetterEquip(model.currentEquipGuid);
                    }
                }
                else
                {
                    PackSendQuestMgr.Instance.SendPutOnQuest(ItemWinBtnType.putOn, model.currentEquipGuid);
                    model.ReportConfirmBetterEquip(model.currentEquipGuid);
                }
            }
        }
        private void ToOpenJadeDynastyKnapsack(ItemModel betterEquip)
        {
            var model = ModelCenter.Instance.GetModel<JadeDynastyEquipModel>();
            model.SetLookItemModel(betterEquip.itemInfo.ItemGUID);
        }
        private void ShowBetterEquipDetails()
        {
            ItemModel betterEquip;
System/KnapSack/Logic/EquipTip.cs
@@ -971,7 +971,37 @@
            source.jobTitleText.text = Language.Get("EquipWin_JobTitleText_1");
            source.jobText.text = itemTipsModel.GetEquipJobName(itemAttrData);
            source.partTitleText.text = Language.Get("EquipWin_PartTitleText_1");
            source.partText.text = StringUtility.Contact(FuncConfigConfig.GetEquipTipsAreaName(itemAttrData.itemConfig.EquipPlace), itemAttrData.itemConfig.LV,Language.Get("L1047"));
            int equipPlace = itemAttrData.itemConfig.EquipPlace;
            switch(equipPlace)
            {
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6:
                case 7:
                case 8:
                case 9:
                case 10:
                case 12:
                    source.partText.text = StringUtility.Contact(FuncConfigConfig.GetEquipTipsAreaName(itemAttrData.itemConfig.EquipPlace), itemAttrData.itemConfig.LV, Language.Get("L1047"));
                    break;
                case 121:
                case 122:
                case 123:
                case 124:
                case 125:
                case 126:
                case 127:
                case 128:
                case 129:
                case 130:
                case 131:
                case 132:
                    source.partText.text = StringUtility.Contact(Language.Get(((RoleEquipType)equipPlace).ToString()), itemAttrData.itemConfig.LV, Language.Get("L1047"));
                    break;
            }
        }
        private void CreateFuncBtn()
System/KnapSack/Logic/ItemTipsModel.cs
@@ -1075,6 +1075,100 @@
                }
            }
        }
        public void SetJadeDynastyItemTipsBtn(ItemAttrData attrData)
        {
            if (attrData == null) return;
            bool isOverdue = modelInterface.IsOverdue(attrData.guid, attrData.itemId, attrData.useDataDict);
            if (attrData.itemConfig.CanSell == 1)
            {
                attrData.SetTipsFuncBtn(ItemWinBtnType.sell, (ItemWinBtnType, ItemAttrData) => { PackSendQuestMgr.Instance.SendSellQuest(ItemWinBtnType.sell, attrData); });
            }
            List<int> dismantleReturnlist = attrData.GetUseDataModel((int)ItemUseDataKey.Def_IudetItemDecompound);
            if (dismantleReturnlist != null && dismantleReturnlist.Count > 0)
            {
                attrData.SetTipsFuncBtn(ItemWinBtnType.dismantle, (ItemWinBtnType, ItemAttrData) => { PackSendQuestMgr.Instance.SendDismantleQuest(ItemWinBtnType.dismantle, attrData); });
            }
            if (!isOverdue)
            {
                if (attrData.itemConfig.JumpComposeCondi != null && attrData.itemConfig.JumpComposeCondi.Length > 0)
                {
                    attrData.SetTipsFuncBtn(ItemWinBtnType.compose, (ItemWinBtnType, ItemAttrData) => {
                        int jumpId = 0;
                        bool isUnlock = ModelCenter.Instance.GetModel<ComposeWinModel>().CheckComposeItemById(attrData.itemId, out jumpId);
                        if (isUnlock)
                        {
                            PackSendQuestMgr.Instance.ClickComposeBtn(ItemWinBtnType.compose, jumpId);
                        }
                    });
                }
                if (attrData.itemConfig.Type == 25 && attrData.itemConfig.Effect1 == 225)
                {
                    attrData.SetTipsFuncBtn(ItemWinBtnType.inlay, (ItemWinBtnType, ItemAttrData) => { PackSendQuestMgr.Instance.ClickInlayBtn(ItemWinBtnType.inlay, attrData.guid); });
                }
                if (attrData.itemConfig.CanTrade == 1 && attrData.isBind == 0)
                {
                    attrData.SetTipsFuncBtn(ItemWinBtnType.putAway, (ItemWinBtnType, ItemAttrData) => { PackSendQuestMgr.Instance.SendPutAwayQuest(ItemWinBtnType.putAway, attrData.guid); });
                }
            }
            if (attrData.count > 1)
            {
                attrData.SetTipsFuncBtn(ItemWinBtnType.split, (ItemWinBtnType, ItemAttrData) => { PackSendQuestMgr.Instance.OnClickSplitBtn(ItemWinBtnType.split, attrData.guid); });
            }
            if (!isOverdue)
            {
                switch (attrData.winType)
                {
                    case ItemWinType.equipWin:
                        attrData.SetTipsFuncBtn(ItemWinBtnType.putOn, (ItemWinBtnType, ItemAttrData) => { PackSendQuestMgr.Instance.SendPutOnQuest(ItemWinBtnType.putOn, attrData.guid); });
                        break;
                }
                if (attrData.itemConfig.UseTag == 1)
                {
                    attrData.SetTipsFuncBtn(ItemWinBtnType.makeUse, (ItemWinBtnType, ItemAttrData) => { PackSendQuestMgr.Instance.SendUseItemQuest(ItemWinBtnType.makeUse, attrData.index); });
                }
            }
            for (int i = 0; i < ItemRenewalIds.Length; i++)
            {
                if (ItemRenewalIds[i] == attrData.itemId)
                {
                    if (isOverdue)
                    {
                        attrData.SetTipsFuncBtn(ItemWinBtnType.renewal, (ItemWinBtnType, ItemAttrData) => { PackSendQuestMgr.Instance.SendRenewalQuest(ItemWinBtnType.renewal, attrData.guid); });
                    }
                }
            }
            for (int i = 0; i < tryPutOnEquipIds.Length; i++)
            {
                if (tryPutOnEquipIds[i] == attrData.itemId)
                {
                    if (PlayerDatas.Instance.baseData.coinPointTotal <= 0)
                    {
                        attrData.SetTipsFuncBtn(ItemWinBtnType.renewal, (ItemWinBtnType, ItemAttrData) => { WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.FirstRecharge); });
                    }
                }
            }
        }
        public void SetJadeDynastyPutOnTipsBtn(ItemAttrData attrData)
        {
            if (attrData == null) return;
            RoleEquipType equipType = (RoleEquipType)attrData.itemConfig.EquipPlace;
            attrData.SetTipsFuncBtn(ItemWinBtnType.putOff, (ItemWinBtnType, ItemAttrData) => {
                PackSendQuestMgr.Instance.SendPutOffQuest(ItemWinBtnType.putOff, attrData.guid);
            });
        }
        #endregion
        #region 设置获取途径列表
@@ -1480,6 +1574,18 @@
                case 9:
                case 10:
                case 12:
                case 121:
                case 122:
                case 123:
                case 124:
                case 125:
                case 126:
                case 127:
                case 128:
                case 129:
                case 130:
                case 131:
                case 132:
                    idlist.Sort(CompareLegendAttrType);
                    break;
                case 101:
@@ -1634,6 +1740,18 @@
                        case 9:
                        case 10:
                        case 12:
                        case 121:
                        case 122:
                        case 123:
                        case 124:
                        case 125:
                        case 126:
                        case 127:
                        case 128:
                        case 129:
                        case 130:
                        case 131:
                        case 132:
                            s = GetTextColorByLegendType(GetLegendType(idlist[i]), s);
                            break;
                        case 101:
System/KnapSack/Logic/PackModelInterface.cs
@@ -463,13 +463,16 @@
                    Equation.Instance.AddKeyValue("AtkSpeedC", 0);
                }
                DebugEx.Log("评分:" + Equation.Instance.Eval<double>(_equipGSFormula.Numerical1));
                if (type == PackType.rptDogzEquip || type == PackType.rptDogzItem)
                switch(type)
                {
                    return Equation.Instance.Eval<int>(_equipGSFormula.Numerical3);
                }
                else
                {
                    return Equation.Instance.Eval<int>(_equipGSFormula.Numerical1);
                    case PackType.rptDogzEquip:
                    case PackType.rptDogzItem:
                         return Equation.Instance.Eval<int>(_equipGSFormula.Numerical3);
                    case PackType.rptJadeDynastyItem:
                    case PackType.rptJadeDynastyEquip:
                        return Equation.Instance.Eval<int>(_equipGSFormula.Numerical4);
                    default:
                        return Equation.Instance.Eval<int>(_equipGSFormula.Numerical1);
                }
            }
            return 0;
@@ -817,27 +820,54 @@
        public event Action<string> RefreshGetBetterEquipEvent; //得到更好的装备 value 物品的实例ID
        public bool IsSameJob(int jobLimit)
        {
            return jobLimit == 0 || jobLimit / 100 == PlayerDatas.Instance.baseData.Job;
        }
        public void OnGetEquip(ItemModel model)
        {
            if (model.packType != PackType.rptItem
                || (model.chinItemModel.EquipPlace <= 0 || model.chinItemModel.EquipPlace > 12)
                || (model.chinItemModel.JobLimit / 100 != PlayerDatas.Instance.baseData.Job
                    && model.chinItemModel.Type != (int)ItemType.Necklaces
                    && model.chinItemModel.Type != (int)ItemType.FairyEquip
                    && model.chinItemModel.Type != (int)ItemType.SpiritAnimal))
            {
                return;
            }
            if (model == null) return;
            if (model.packType != PackType.rptItem && model.packType != PackType.rptJadeDynastyItem) return;
            if (!IsSameJob(model.chinItemModel.JobLimit)) return;
            if (betterEquipExceptDungeonDict.ContainsKey(PlayerDatas.Instance.baseData.MapID))
            int equipPlace = model.chinItemModel.EquipPlace;
            switch ((RoleEquipType)equipPlace)
            {
                if (betterEquipExceptDungeonDict[PlayerDatas.Instance.baseData.MapID].Contains(model.itemInfo.ItemID))
                {
                    return;
                }
                case RoleEquipType.retWeapon:
                case RoleEquipType.retWeapon2:
                case RoleEquipType.retHat:
                case RoleEquipType.retClothes:
                case RoleEquipType.retBelt:
                case RoleEquipType.retTrousers:
                case RoleEquipType.retShoes:
                case RoleEquipType.retNeck:
                case RoleEquipType.retFairyCan:
                case RoleEquipType.retFairyCan2:
                case RoleEquipType.retWing:
                case RoleEquipType.retSpiritAnimal:
                case RoleEquipType.JadeDynasty_Cloak:
                case RoleEquipType.JadeDynasty_FaceMask:
                case RoleEquipType.JadeDynasty_Glove1:
                case RoleEquipType.JadeDynasty_Glove2:
                case RoleEquipType.JadeDynasty_Ruyi:
                case RoleEquipType.JadeDynasty_Pendant:
                case RoleEquipType.JadeDynasty_Ring1:
                case RoleEquipType.JadeDynasty_Ring2:
                case RoleEquipType.JadeDynasty_Sword1:
                case RoleEquipType.JadeDynasty_Sword2:
                case RoleEquipType.JadeDynasty_Sword3:
                case RoleEquipType.JadeDynasty_Sword4:
                    if (betterEquipExceptDungeonDict.ContainsKey(PlayerDatas.Instance.baseData.MapID))
                    {
                        if (betterEquipExceptDungeonDict[PlayerDatas.Instance.baseData.MapID].Contains(model.itemInfo.ItemID))
                        {
                            return;
                        }
                    }
                    SetGetBetterEquipEvent(model);
                    break;
            }
            SetGetBetterEquipEvent(model);
        }
        private void SetGetBetterEquipEvent(ItemModel model)
@@ -1672,10 +1702,6 @@
                            putOnModel = putOnModel2;
                        }
                    }
                }
                else
                {
                    putOnModel = putOnModel2;
                }
                int equipScore1 = 0;
System/KnapSack/Logic/PackSendQuestMgr.cs
@@ -166,18 +166,6 @@
                }
            }
            if(config.EquipPlace >= (int)RoleEquipType.JadeDynasty_Cloak
                && config.EquipPlace <= (int)RoleEquipType.JadeDynasty_Sword4)
            {
                var jadeDynastyModel = ModelCenter.Instance.GetModel<JadeDynastyEquipModel>();
                bool islock = jadeDynastyModel.IsLockEquipPlace(config.EquipPlace);
                isCanPut = !islock;
                if(islock)
                {
                    MessageWin.Inst.ShowFixedTip("请解锁诛仙塔");
                }
            }
            if(isCanPut)
            {
                CheckPutOnPlace();
@@ -568,6 +556,33 @@
                return;
            }
            if (sendItemModel.chinItemModel.EquipPlace >= (int)RoleEquipType.JadeDynasty_Cloak
              && sendItemModel.chinItemModel.EquipPlace <= (int)RoleEquipType.JadeDynasty_Sword4)
            {
                var jadeDynastyModel = ModelCenter.Instance.GetModel<JadeDynastyEquipModel>();
                bool islock = jadeDynastyModel.IsLockEquipPlace(sendItemModel.chinItemModel.EquipPlace);
                if (islock)
                {
                    int towerlayer = 0;
                    jadeDynastyModel.TryGetLockTowerLayer(sendItemModel.chinItemModel.EquipPlace, out towerlayer);
                    SysNotifyMgr.Instance.ShowTip("JadeDynastyEquip", towerlayer);
                    return;
                }
            }
            if (sendItemModel != null && sendItemModel.itemInfo.IsBind == 0)
            {
                ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("JadeDynastyEquip5"),(bool isOk)=>
                {
                    if(isOk)
                    {
                        SendPutOnQuest(equipPlace, itemIndex);
                    }
                });
                return;
            }
            SendPutOnQuest(equipPlace, itemIndex);
        }
System/Launch/LaunchWin.cs
@@ -18,8 +18,11 @@
        [SerializeField] UIAlphaTween m_AlphaTween;
        [SerializeField] Image m_BackGround;
        [SerializeField] RectTransform m_AndroidProgressContainer;
        [SerializeField] SmoothSlider m_ProgressSlider;
        [SerializeField] Text m_Progress;
        [SerializeField] SmoothSlider m_PartProgressSlider;
        [SerializeField] Text m_PartProgress;
        [SerializeField] SmoothSlider m_TotalProgressSlider;
        [SerializeField] Text m_TotalProgress;
        [SerializeField] Text m_StageDescription;
        [SerializeField] RectTransform m_IosProgressContainer;
        [SerializeField] Text m_IosProgressTip;
        [SerializeField] Text m_BuildTime;
@@ -28,12 +31,8 @@
        bool assetBuildTimeShowed = false;
        Launch.LaunchStage showStage = Launch.LaunchStage.None;
        string stepDescription = string.Empty;
        float behaviourProgress = 0f;
        float timer = 0.1f;
        float interval = 0.1f;
        float backGroundTimer = 0f;
        int backGroundIndex = 0;
@@ -66,8 +65,7 @@
        {
            backGroundTimer = 0f;
            backGroundIndex = 0;
            behaviourProgress = 0f;
            m_ProgressSlider.ResetValue(0f);
            m_TotalProgressSlider.ResetValue(0f);
            m_AlphaTween.SetStartState();
            m_Version.text = StringUtility.Contact(VersionConfig.Get().version, "_", VersionConfig.Get().buildIndex);
@@ -84,16 +82,14 @@
            {
                m_AndroidProgressContainer.gameObject.SetActive(false);
                m_IosProgressContainer.gameObject.SetActive(true);
                m_IosProgressTip.text = Language.GetFromLocal(30);
            }
            else
            {
                m_AndroidProgressContainer.gameObject.SetActive(true);
                m_IosProgressContainer.gameObject.SetActive(false);
                m_Progress.text = VersionUtility.Instance.IsShangGu() ? "" : StringUtility.Contact(0, "%");
                UpdateLoadingProgress(Launch.currentStage, Launch.progress);
                Launch.progressEvent += UpdateLoadingProgress;
            }
            UpdateProgress();
        }
        protected override void OnAfterOpen()
@@ -102,7 +98,6 @@
        protected override void OnPreClose()
        {
            Launch.progressEvent -= UpdateLoadingProgress;
        }
        protected override void OnAfterClose()
@@ -115,51 +110,36 @@
            m_AlphaTween.Play();
        }
        void UpdateLoadingProgress(Launch.LaunchStage _stage, float _progress)
        string GetLaunchStageDescription(Launch.LaunchStage _stage)
        {
            behaviourProgress = _progress;
            switch (_stage)
            {
                case Launch.LaunchStage.SDKInit:
                    return Language.GetFromLocal(36);
                case Launch.LaunchStage.AssetCopy:
                    stepDescription = Language.GetFromLocal(14);
                    break;
                    return Language.GetFromLocal(37);
                case Launch.LaunchStage.ClientVersion:
                    stepDescription = Language.GetFromLocal(15);
                    break;
                    return Language.GetFromLocal(38);
                case Launch.LaunchStage.CheckAsset:
                    return Language.GetFromLocal(39);
                case Launch.LaunchStage.DownLoad:
                    stepDescription = Language.GetFromLocal(16);
                    break;
                case Launch.LaunchStage.ConfigLoad:
                    stepDescription = Language.GetFromLocal(17);
                    break;
                    return Language.GetFromLocal(40);
                case Launch.LaunchStage.AssetBundleInit:
                    return Language.GetFromLocal(41);
                case Launch.LaunchStage.ConfigInit:
                    return Language.GetFromLocal(42);
                case Launch.LaunchStage.Complete:
                    return Language.GetFromLocal(43);
                default:
                    return "";
            }
        }
        protected override void LateUpdate()
        {
            base.LateUpdate();
            if (Application.platform == RuntimePlatform.IPhonePlayer)
            {
                m_IosProgressContainer.gameObject.SetActive(Launch.currentStage != Launch.LaunchStage.DownLoad);
                var remainder = ((int)Time.time) % 3;
                var dot = remainder == 0 ? "." : remainder == 1 ? ".." : "...";
                m_IosProgressTip.text = StringUtility.Contact(Language.GetFromLocal(30), dot);
            }
            else
            {
                m_ProgressSlider.value = behaviourProgress;
                m_Progress.text = VersionUtility.Instance.IsShangGu() ? stepDescription :
                    StringUtility.Contact(stepDescription, Mathf.RoundToInt(behaviourProgress * 100), "%");
                if (!assetBuildTimeShowed && AssetVersionUtility.assetsBuildTime != DateTime.MinValue)
                {
                    assetBuildTimeShowed = true;
                    var totalMinute = (int)(AssetVersionUtility.assetsBuildTime - new DateTime(2018, 1, 1)).TotalMinutes;
                    m_Version.text = StringUtility.Contact(VersionConfig.Get().version, "_", VersionConfig.Get().buildIndex, "_", totalMinute.ToString());
                }
            }
            UpdateProgress();
            backGroundTimer += Time.deltaTime;
            if (backGroundTimer >= 3f)
@@ -174,6 +154,61 @@
            WindowCenter.Instance.OpenFromLocal<UserHelpWin>();
        }
        private void UpdateProgress()
        {
            if (Application.platform == RuntimePlatform.IPhonePlayer)
            {
                m_IosProgressContainer.gameObject.SetActive(Launch.progressInfo.stage != Launch.LaunchStage.DownLoad);
                var remainder = ((int)Time.time) % 3;
                var dot = remainder == 0 ? "." : remainder == 1 ? ".." : "...";
                m_IosProgressTip.text = StringUtility.Contact(Language.GetFromLocal(30), dot);
            }
            else
            {
                var progressInfo = Launch.progressInfo;
                m_TotalProgressSlider.value = progressInfo.totalProgress;
                m_TotalProgress.text = StringUtility.Contact(Mathf.RoundToInt(progressInfo.totalProgress * 100), "%");
                if (progressInfo.stage == Launch.LaunchStage.DownLoad)
                {
                    if (m_PartProgressSlider.gameObject.activeInHierarchy)
                    {
                        m_PartProgressSlider.gameObject.SetActive(false);
                    }
                }
                else
                {
                    if (!m_PartProgressSlider.gameObject.activeInHierarchy)
                    {
                        m_PartProgressSlider.gameObject.SetActive(true);
                    }
                    m_PartProgressSlider.value = progressInfo.partProgress;
                    m_PartProgress.text = StringUtility.Contact(Mathf.RoundToInt(progressInfo.partProgress * 100), "%");
                }
                DisplayStageDescription(progressInfo.stage);
                if (!assetBuildTimeShowed && AssetVersionUtility.assetsBuildTime != DateTime.MinValue)
                {
                    assetBuildTimeShowed = true;
                    var totalMinute = (int)(AssetVersionUtility.assetsBuildTime - new DateTime(2018, 1, 1)).TotalMinutes;
                    m_Version.text = StringUtility.Contact(VersionConfig.Get().version, "_", VersionConfig.Get().buildIndex, "_", totalMinute.ToString());
                }
            }
        }
        private void DisplayStageDescription(Launch.LaunchStage stage)
        {
            if (showStage != stage)
            {
                showStage = stage;
                m_StageDescription.text = GetLaunchStageDescription(stage);
            }
        }
    }
}
System/Login/ServerListCenter.cs
@@ -188,38 +188,42 @@
    {
        if (_ok)
        {
            serverListCommonPartGot = true;
            serverInfoCommon = JsonMapper.ToObject<ServerInfoCommon>(_result);
            serverInfoCommon.recommend = new ServerGroup();
            serverInfoCommon.recommend.group_title = Language.GetFromLocal(18);
            var recommendServers = new List<ServerData>();
            for (int i = 0; i < serverInfoCommon.common.Length; i++)
            {
                var serverList = serverInfoCommon.common[i].group_list;
                foreach (var server in serverList)
                {
                    if (server.is_recommend == 1)
                    {
                        recommendServers.Add(server);
                    }
                }
            }
            serverInfoCommon.recommend.group_list = recommendServers.ToArray();
            FiltrateDefaultServerAndServerGroup();
            ServerListParser.Instance.PushCommonServerListRawData(_result);
            NetLinkWin.Hide();
            if (onServerListRefreshEvent != null)
            {
                onServerListRefreshEvent();
            }
        }
        else
        {
            Clock.Create(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestServerCommonList);
        }
    }
    public void SetServerlistCommon(ServerInfoCommon common)
    {
        serverInfoCommon = common;
        serverInfoCommon.recommend = new ServerGroup();
        serverInfoCommon.recommend.group_title = Language.GetFromLocal(18);
        var recommendServers = new List<ServerData>();
        for (int i = 0; i < serverInfoCommon.common.Length; i++)
        {
            var serverList = serverInfoCommon.common[i].group_list;
            foreach (var server in serverList)
            {
                if (server.is_recommend == 1)
                {
                    recommendServers.Add(server);
                }
            }
        }
        serverInfoCommon.recommend.group_list = recommendServers.ToArray();
        FiltrateDefaultServerAndServerGroup();
        serverListCommonPartGot = true;
        if (onServerListRefreshEvent != null)
        {
            onServerListRefreshEvent();
        }
    }
@@ -252,9 +256,7 @@
        if (_ok)
        {
            serverListPlayerPartGot = true;
            serverInfoPlayer = JsonMapper.ToObject<ServerInfoPlayer>(_result);
            ProcessRecentServerData();
            FiltrateDefaultServerAndServerGroup();
            ServerListParser.Instance.PushPlayerServerListRawData(_result);
        }
        else
        {
@@ -268,6 +270,12 @@
        }
    }
    public void SetServerListPlayer(ServerInfoPlayer serverInfoPlayer)
    {
        ProcessRecentServerData();
        FiltrateDefaultServerAndServerGroup();
    }
    public bool TryGetServerGroup(string _key, out ServerGroup _group)
    {
        if (serverInfoPlayer != null && serverInfoPlayer.player != null && _key == serverInfoPlayer.player.group_title)
System/Login/ServerListParser.cs
New file
@@ -0,0 +1,66 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Threading;
using LitJson;
public class ServerListParser : SingletonMonobehaviour<ServerListParser>
{
    bool hasCommonResult = false;
    ServerInfoCommon serverInfoCommon;
    bool hasPlayerResult = false;
    ServerInfoPlayer serverInfoPlayer;
    public void PushCommonServerListRawData(string content)
    {
        hasCommonResult = false;
        ThreadPool.QueueUserWorkItem((object aaa) =>
        {
            serverInfoCommon = JsonMapper.ToObject<ServerInfoCommon>(content);
            hasCommonResult = true;
        });
    }
    public void PushPlayerServerListRawData(string content)
    {
        hasPlayerResult = false;
        ThreadPool.QueueUserWorkItem((object aaa) =>
        {
            serverInfoPlayer = JsonMapper.ToObject<ServerInfoPlayer>(content);
            hasPlayerResult = true;
        });
    }
    public void ReportCommonResult()
    {
        if (serverInfoCommon != null)
        {
            ServerListCenter.Instance.SetServerlistCommon(serverInfoCommon);
        }
    }
    public void ReportPlayerResult()
    {
        if (serverInfoPlayer != null)
        {
            ServerListCenter.Instance.SetServerListPlayer(serverInfoPlayer);
        }
    }
    private void Update()
    {
        if (hasCommonResult)
        {
            ReportCommonResult();
            hasCommonResult = false;
        }
        if (hasPlayerResult)
        {
            ReportPlayerResult();
            hasPlayerResult = false;
        }
    }
}
System/Login/ServerListParser.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: b9bd5530884d0a445aa130e1980993f8
timeCreated: 1547868402
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/OpenServerActivity/OpenServiceAchievementModel.cs
@@ -120,6 +120,7 @@
    {
        GlobalTimeEvent.Instance.secondEvent -= secondEvent;
        GlobalTimeEvent.Instance.secondEvent += secondEvent;
        GetDayNow();//获取当前天数
        SetRedPoint();
    }
@@ -206,6 +207,8 @@
    public void WeekPartyInfo(HAA0A_tagMCWeekPartyInfo info)
    {
        WeekPartyDayDic.Clear();
        WeekPartyActionDic.Clear();
        ResetType = info.ResetType;
        string[] dateArray = info.StartDate.Split('-');
        if (dateArray != null && dateArray.Length == 3)
@@ -430,10 +433,7 @@
    }
    private void SetRedPointId()//设置红点ID
    {
        if (RedPointDic.Count > 0)
        {
            return;
        }
        RedPointDic.Clear();
        foreach (var key in WeekPartyDayInfoDic.Keys)
        {
            int RedPoint = Redpoint_key1 * 10 + key;
System/Rank/RankHeadCell.cs
@@ -111,6 +111,7 @@
                        realmLv = (int)data.cmpValue;
                        break;
                    case PlayerRankData.RankType.JadeDynastyTower:
                        realmLv = (int)data.value1;
                        jobText.text = data.cmpValue +Language.Get("JadeDynastyBossDungeon_Floor") ;
                        rankWhat.text =(10000-data.cmpValue2) +Language.Get("RealmWin_Bewrite_35") ;
                        break;
System/Realm/RealmPropertyUpWin.cs
@@ -425,6 +425,8 @@
            {
                var config = Config.Instance.Get<SkillFrameAnimationConfig>(skillId);
                m_NewGotSkillFrame.SetSprites(sprites, (float)config.totalTime / 1000);
                var rt = m_NewGotSkillFrame.transform as RectTransform;
                rt.sizeDelta = config.sizeDelta;
            }
        }
System/WindowJump/WindowJumpMgr.cs
@@ -703,6 +703,9 @@
            case JumpUIType.PrayforDrug:
                SetJumpLogic<PrayforDrugWin>(_tagWinSearchModel.TABID);
                break;
            case JumpUIType.JadeDynastyTower288:
                SetJumpLogic<TowerWin>(_tagWinSearchModel.TABID);
                break;
            case JumpUIType.JadeDynastyTowerRank:
                var rankModel = ModelCenter.Instance.GetModel<RankModel>();
                rankModel.jumpRankType = int.Parse(_tagWinSearchModel.SelectActive);
@@ -1598,6 +1601,7 @@
    SevenDaysTour285 = 285, //七日巡礼
    SevenDaysTour286 = 286, //七日巡礼
    SevenDaysTour287 = 287, //七日巡礼
    JadeDynastyTower288 = 288,//诛仙塔
    JadeDynastyTowerRank = 289,//排行榜-诛仙塔
    DhszTs = 1001,//定海神针功法提升界面
UI/Common/FrameEffect.cs
@@ -85,8 +85,8 @@
                timer = 0f;
                tempSumTime = sumTime;
                m_Behaviour.sprite = m_Sprites[index];
                m_Behaviour.overrideSprite = m_Sprites[index];
                m_Behaviour.SetNativeSize();
            }
        }
UI/Common/SortTable.cs
@@ -80,12 +80,31 @@
            _sortCell.sortTypeTxt.text = Language.Get(m_SortElements[cell.index].textKey);
        }
        public void SetDefault()
        public void SetDefault(int value = 0)
        {
            if (m_TargetDisplay != null && m_SortElements != null && m_SortElements.Count > 0)
            if(value == 0)
            {
                m_TargetDisplay.text = Language.Get(m_SortElements[0].textKey);
                if (m_TargetDisplay != null && m_SortElements != null && m_SortElements.Count > 0)
                {
                    m_TargetDisplay.text = Language.Get(m_SortElements[0].textKey);
                }
            }
            else
            {
                if (m_TargetDisplay != null && m_SortElements != null && m_SortElements.Count > 0)
                {
                    foreach(var key in m_SortElements)
                    {
                        if(key.type == value)
                        {
                            m_TargetDisplay.text = Language.Get(key.textKey);
                            break;
                        }
                    }
                }
            }
        }
    }
Utility/EnumHelper.cs
@@ -1342,6 +1342,7 @@
    Fairy = 17,//仙族法宝
    PetSoul = 18,//灵宠魂石
    HorseSoul = 19,//坐骑魂石
    JadeDynastyEquip = 25, //诛仙装备
}
public enum E_AtkType
Utility/StageLoadTimeOutCatcher.cs
@@ -12,6 +12,7 @@
    public static ProtocolRecorder gotA126Time;
    public static ProtocolRecorder gotA127Time;
    public static ProtocolRecorder got0109Time;
    public static ProtocolRecorder got0403Time;
    public static ProtocolRecorder send0107Time;
    public static StageLoadTimeOutCatcher Begin(int stageId)
@@ -46,13 +47,14 @@
        {
            var title = StringUtility.Contact(stageId, "地图加载超时");
            var description = StringUtility.Contact(
                                        "开始时间:", startTime.ToString("HH:mm:ss"), ";",
                                        "超时时间:", DateTime.Now.ToString("HH:mm:ss"),
                                        "0102记录:", got0102Time.ToString(), ";",
                                        "A126记录:", gotA126Time.ToString(), ";",
                                        "A127记录:", gotA127Time.ToString(), ";",
                                        "0109记录:", got0109Time.ToString(), ";",
                                        "0107记录:", send0107Time.ToString());
                                        "开始时间:", startTime.ToString("HH:mm:ss"), "$$",
                                        "超时时间:", DateTime.Now.ToString("HH:mm:ss"), "$$",
                                        got0102Time.ToString(), "$$",
                                        gotA126Time.ToString(), "$$",
                                        gotA127Time.ToString(), "$$",
                                        got0109Time.ToString(), "$$",
                                        send0107Time.ToString(), "$$",
                                        got0403Time.ToString());
            ExceptionCatcher.ReportException(title, description);
            Stop();
@@ -79,20 +81,11 @@
            case "0107":
                send0107Time = recorder;
                break;
            case "0403":
                got0403Time = recorder;
                break;
            default:
                break;
        }
        try
        {
            var title = StringUtility.Contact("地图加载记录-->封包编号:", number);
            var description = StringUtility.Contact(recorder.ToString(), "玩家:", PlayerDatas.Instance.baseData.PlayerName);
            ExceptionCatcher.ReportException(title, description);
        }
        catch (System.Exception ex)
        {
        }
    }