少年修仙传客户端代码仓库
client_Wu Xijin
2018-10-13 dc052a4934a924124971e6fa51af42dfbe3ceb03
Merge branch 'master' into UserCenter
1 文件已重命名
53个文件已修改
1个文件已删除
2 文件已复制
3个文件已添加
1158 ■■■■ 已修改文件
Core/GameEngine/Login/Launch.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/BlastFurnaceLVConfig.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/ConfigManager.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ClientPack/ClientToMapServer/CA3_Item/CA313_tagCMItemDecompound.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ClientPack/ClientToMapServer/CA3_Item/CA313_tagCMItemDecompound.cs.meta 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/SDK/SDKUtility.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/Status/Status_Polymorph.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GActorNpcFight.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GActorPlayerBase.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/PreFightMission.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Achievement/AchievementGotoPart3.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Achievement/AchievementModel.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Backpack/BackpackData.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/BlastFurnace/PrayForDrugVipLackWin.cs 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/BlastFurnace/PrayForDrugVipLackWin.cs.meta 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/BlastFurnace/PrayForDurgModel.cs 69 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/BlastFurnace/PrayforDrugWin.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ClientVersion/VersionConfig.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ClientVersion/VersionUtility.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Compose/New/ComposeEquipWin.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestData.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DogzDungeon/DogzDungeonWin.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyGrabBossModel.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/PlayerMethodData.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FakeDungeon/FakeDemonJarDungeonStage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/ItemTipsModel.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/PackSendQuestMgr.cs 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/PlayerPackModels.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/PlayerStarNumWin.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/NewItemGetWin.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Launch/LaunchWin.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Login/LoginModel.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/PlayerTaskDatas.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/UpgradeWin.cs 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainWin/SkillButton.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/NewBieGuidance/FunctionalGuideCenter.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Rank/RankPanel.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Role/RoleTitleCell.cs 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/WashMasterActiveWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/WingsRefined.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/SystemSetting/SettingMgr.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/SystemSetting/SystemSetting.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasurePotentialPanel.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasureSoulPattern4.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasureSoulWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/UI3DTreasureSelectStage.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/VipInvest/CheckDisplay.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/VipInvest/RotatePointer.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/VipInvest/UIEffectFly.cs 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/VipInvest/UIEffectFly.cs.meta 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/VipInvest/WheelOfFortuneModel.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/VipInvest/WheelOfFortuneWin.cs 214 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/AwardExchangeWin.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/WelfareWin.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowBase/WindowCenter.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowJump/WindowJumpMgr.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI/Common/ItemBehaviour.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI/Common/UI3DModelFactory.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/EnumHelper.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/UIHelper.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Login/Launch.cs
@@ -43,6 +43,7 @@
        SoundPlayer.CreateSoundPlayer();
        SoundPlayer.Instance.PlayLoginMusic();
        SystemSetting.Instance.SetSoundVolume(SystemSetting.Instance.GetSoundVolume());
        SystemSetting.Instance.SetSoundEffect(SystemSetting.Instance.GetSoundEffect());
        SystemSetting.Instance.SetGameFps(SystemSetting.Instance.GetGameFps());
        SDKUtility.Instance.Init();
Core/GameEngine/Model/Config/BlastFurnaceLVConfig.cs
File was deleted
Core/GameEngine/Model/ConfigManager.cs
@@ -125,7 +125,6 @@
        AddAsyncTask<RuneTowerFloorConfig>();
        AddAsyncTask<TreasureRefineConfig>();
        AddAsyncTask<AlchemyConfig>();
        AddAsyncTask<BlastFurnaceLVConfig>();
        AddAsyncTask<AlchemySpecConfig>();
        AddAsyncTask<QuestionBankConfig>();
        AddAsyncTask<WingRefineExpConfig>();
Core/NetworkPackage/ClientPack/ClientToMapServer/CA3_Item/CA313_tagCMItemDecompound.cs
New file
@@ -0,0 +1,18 @@
using UnityEngine;
using System.Collections;
// A3 13 物品拆解 #tagCMItemDecompound
public class CA313_tagCMItemDecompound : GameNetPackBasic {
    public byte Index;    // 拆解物品所在背包索引
    public CA313_tagCMItemDecompound () {
        combineCmd = (ushort)0x03FE;
        _cmd = (ushort)0xA313;
    }
    public override void WriteToBytes () {
        WriteBytes (Index, NetDataType.BYTE);
    }
}
Core/NetworkPackage/ClientPack/ClientToMapServer/CA3_Item/CA313_tagCMItemDecompound.cs.meta
File was renamed from Core/GameEngine/Model/Config/BlastFurnaceLVConfig.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 1bbbc87171e60f949bb6b7572c73fa38
timeCreated: 1515213620
guid: 77eef483c79a1a244b31335edb236af7
timeCreated: 1539335657
licenseType: Pro
MonoImporter:
  serializedVersion: 2
Core/SDK/SDKUtility.cs
@@ -712,7 +712,7 @@
                            m_Json["roleID"] = PlayerDatas.Instance.baseData.PlayerID;
                            m_Json["roleName"] = PlayerDatas.Instance.baseData.PlayerName;
                            m_Json["level"] = PlayerDatas.Instance.baseData.LV.ToString();
                            m_Json["sid"] = "s" + ServerListCenter.Instance.currentServer.region_flag;
                            m_Json["sid"] = ServerListCenter.Instance.currentServer.region_flag;
                        }
                        if (ChannelPlatform == E_ChannelPlatform.Mr)
@@ -890,7 +890,7 @@
        m_Json["roleID"] = roleID;
        m_Json["roleName"] = roleName;
        m_Json["sid"] = "s" + ServerListCenter.Instance.currentServer.region_flag;
        m_Json["sid"] = ServerListCenter.Instance.currentServer.region_flag;
        m_Json["serverName"] = ServerListCenter.Instance.currentServer.name;
        m_Json["familyName"] = PlayerDatas.Instance.baseData.FamilyName;
        m_Json["level"] = "1";
@@ -908,7 +908,7 @@
        m_Json["roleID"] = roleID;
        m_Json["roleName"] = roleName;
        m_Json["sid"] = "s" + ServerListCenter.Instance.currentServer.region_flag;
        m_Json["sid"] = ServerListCenter.Instance.currentServer.region_flag;
        m_Json["serverName"] = ServerListCenter.Instance.currentServer.name;
        m_Json["familyName"] = PlayerDatas.Instance.baseData.FamilyName;
        m_Json["level"] = PlayerDatas.Instance.baseData.LV;
@@ -927,7 +927,7 @@
        m_Json["roleID"] = PlayerDatas.Instance.PlayerId.ToString();
        m_Json["roleName"] = PlayerDatas.Instance.baseData.PlayerName;
        m_Json["sid"] = "s" + ServerListCenter.Instance.currentServer.region_flag;
        m_Json["sid"] = ServerListCenter.Instance.currentServer.region_flag;
        m_Json["serverName"] = ServerListCenter.Instance.currentServer.name;
        m_Json["familyName"] = PlayerDatas.Instance.baseData.FamilyName;
        m_Json["level"] = PlayerDatas.Instance.baseData.LV;
Fight/Actor/Status/Status_Polymorph.cs
@@ -49,7 +49,36 @@
        if (_actor != null)
        {
            _actor.Polymorph(false);
            var _config = Config.Instance.Get<TableConfig.SkillConfig>(h0605.SkillID);
            int _npcID = 0;
            if (_config.Effect1 == 1063)
            {
                _npcID = _config.EffectValue11;
            }
            else if (_config.Effect2 == 1063)
            {
                _npcID = _config.EffectValue21;
            }
            else if (_config.Effect3 == 1063)
            {
                _npcID = _config.EffectValue31;
            }
            else if (_config.Effect4 == 1063)
            {
                _npcID = _config.EffectValue41;
            }
            else if (_config.Effect5 == 1063)
            {
                _npcID = _config.EffectValue51;
            }
            else if (_config.Effect6 == 1063)
            {
                _npcID = _config.EffectValue61;
            }
            _actor.Polymorph(false, _npcID);
        }
    }
}
Fight/GameActor/GActorNpcFight.cs
@@ -773,13 +773,19 @@
        {
            if (m_SheepModel)
            {
                var _a = m_SheepModel.GetComponent<Animator>();
                if (_a)
                {
                    _a.enabled = false;
                }
                if (m_SheepIsDefaultNpc)
                {
                    GameObjectPoolManager.Instance.ReleaseDefaultFightNPC(m_SheepModel);
                }
                else
                {
                    var _prefab = InstanceResourcesLoader.LoadNpc(10101001);
                    var _prefab = InstanceResourcesLoader.LoadNpc(npcID);
                    GameObjectPoolManager.Instance.ReleaseGameObject(_prefab, m_SheepModel);
                }
            }
Fight/GameActor/GActorPlayerBase.cs
@@ -151,7 +151,7 @@
                }
                else
                {
                    var _prefab = InstanceResourcesLoader.LoadNpc(10101001);
                    var _prefab = InstanceResourcesLoader.LoadNpc(npcID);
                    GameObjectPoolManager.Instance.ReleaseGameObject(_prefab, m_SheepModel);
                }
            }
Fight/PreFightMission.cs
@@ -951,11 +951,17 @@
        yield return WaitingForSecondConst.WaitMS500;
        string _path = "BaseCanvas/MainInterfaceWin/TaskAndTeamTip/TaskListTip/Parent/TaskScroll View/Content/Main_1000";
        if(!WindowCenter.Instance.uiRoot.transform.Find(_path))
        {
            _path = "BaseCanvas/MainInterfaceWin/TaskAndTeamTip/TaskListTip/Parent/TaskScroll View/Content/Main_1001";
        }
        // 打开引导界面
        NewGuideModel _model2 = ModelCenter.Instance.GetModel<NewGuideModel>();
        _model2.showMask = true;
        _model2.content = "点击开始<color=#00ff00>试炼</color>";
        _model2.componentPath = "BaseCanvas/MainInterfaceWin/TaskAndTeamTip/TaskListTip/Parent/TaskScroll View/Content/Main_1001";
        _model2.componentPath = _path;
        _model2.size = new Vector2(276, 72);
        _model2.direction = 3;
        _model2.clickClosed = true;
@@ -964,7 +970,7 @@
        {
            GA_Hero.s_MapSwitching = false;
            _temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/TaskAndTeamTip/TaskListTip/Parent/TaskScroll View/Content/Main_1001");
            _temp = WindowCenter.Instance.uiRoot.transform.Find(_path);
            var _btn = _temp.GetComponent<UnityEngine.UI.Button>();
            if (_btn)
            {
System/Achievement/AchievementGotoPart3.cs
@@ -135,6 +135,20 @@
                guideAchievementId = _achievementId;
            }
        }
        public static void Goto3129(int _achievementId, SuccessConfig config)
        {
            if (config == null) return;
            guideAchievementId = _achievementId;
            var dogzModel = ModelCenter.Instance.GetModel<DogzModel>();
            int dogzId = 0;
            if(config.Condition != null && config.Condition.Length > 0)
            {
                dogzId = config.Condition[0];
            }
            dogzModel.SetSelectDogz(dogzId);
        }
    }
}
System/Achievement/AchievementModel.cs
@@ -731,6 +731,9 @@
                case 125:
                    AchievementGoto.GotoIceCrystal(_achievementId);
                    break;
                case 129:
                    AchievementGoto.Goto3129(_achievementId, config);
                    break;
            }
        }
System/Backpack/BackpackData.cs
@@ -13,12 +13,14 @@
        public int id;
        public int count;
        public bool bind;
        public int quality;
        public Item(int _id, int _count)
        {
            this.id = _id;
            this.count = _count;
            this.bind = false;
            this.quality = 0;
        }
        public Item(int _id, int _count, bool _bind)
@@ -26,6 +28,15 @@
            this.id = _id;
            this.count = _count;
            this.bind = _bind;
            this.quality = 0;
        }
        public Item(int _id, int _count, bool _bind, int _quality)
        {
            this.id = _id;
            this.count = _count;
            this.bind = _bind;
            this.quality = _quality;
        }
    }
System/BlastFurnace/PrayForDrugVipLackWin.cs
New file
@@ -0,0 +1,60 @@
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class PrayForDrugVipLackWin : Window
    {
        [SerializeField] Button m_ViewVip;
        [SerializeField] Button m_Close;
        [SerializeField] Text vipLvText;
        [SerializeField] Text contenetText;
        #region Built-in
        public static int vipLv = 0;
        public static string content;
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
            m_ViewVip.AddListener(ViewVip);
            m_Close.AddListener(CloseClick);
        }
        protected override void OnPreOpen()
        {
            Display();
        }
        protected override void OnAfterOpen()
        {
        }
        protected override void OnPreClose()
        {
        }
        protected override void OnAfterClose()
        {
        }
        #endregion
        private void Display()
        {
            vipLvText.text = vipLv.ToString();
            contenetText.text = content;
        }
        private void ViewVip()
        {
            if (VersionConfig.Get().isBanShu)
            {
                SysNotifyMgr.Instance.ShowTip("FuncNoOpen_VIP");
                return;
            }
            WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.VipRechargeFunc2);
        }
    }
}
System/BlastFurnace/PrayForDrugVipLackWin.cs.meta
copy from Core/GameEngine/Model/Config/BlastFurnaceLVConfig.cs.meta copy to System/BlastFurnace/PrayForDrugVipLackWin.cs.meta
File was copied from Core/GameEngine/Model/Config/BlastFurnaceLVConfig.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 1bbbc87171e60f949bb6b7572c73fa38
timeCreated: 1515213620
guid: 55268f4e1c8090748bdbe67d2162fc31
timeCreated: 1539156973
licenseType: Pro
MonoImporter:
  serializedVersion: 2
System/BlastFurnace/PrayForDurgModel.cs
@@ -18,6 +18,7 @@
        {
            SetPrayDrugCondi();
            SetPrayDrugDict();
            SetPrayVipLimit();
        }
        public override void UnInit()
@@ -31,6 +32,7 @@
            FuncOpen.Instance.OnFuncStateChangeEvent -= UpdateFuncState;
            blastModel.RefreshStoveModelEvent -= UpdateBlastLv;
            playerPack.RefreshItemSumUseCntAct -= RefreshItemUsce;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= UpdateVipLV;
          
        }
@@ -41,11 +43,21 @@
        public void OnPlayerLoginOk()
        {
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += UpdateVipLV;
            FuncOpen.Instance.OnFuncStateChangeEvent += UpdateFuncState;
            blastModel.RefreshStoveModelEvent += UpdateBlastLv;
            playerPack.RefreshItemSumUseCntAct += RefreshItemUsce;
            SetPrayPrivilegeByVipLv();
            prayDrugRecordKey = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "PrayDrugRecord");
            SetIsNewDay();
            UpdatePrayDanRedpoint();
        }
        private void UpdateVipLV(PlayerDataRefresh type)
        {
            if (type != PlayerDataRefresh.VIPLv) return;
            SetPrayPrivilegeByVipLv();
            UpdatePrayDanRedpoint();
        }
@@ -95,14 +107,11 @@
        #region 读取本地配置
        public int costMoney { get; private set; }
        public int everyDayNum { get; private set; }
        public int prayPushLv { get; private set;}
        private void SetPrayDrugCondi()
        {
            FuncConfigConfig func = Config.Instance.Get<FuncConfigConfig>("GodAlchemy");
            costMoney = int.Parse(func.Numerical2);
            everyDayNum = int.Parse(func.Numerical3);
            func = Config.Instance.Get<FuncConfigConfig>("GodAlchemyShow");
            prayPushLv = int.Parse(func.Numerical2);
        }
@@ -147,7 +156,10 @@
                if (day != TimeUtility.ServerNow.Day)
                {
                    IsNewDay = true;
                    if (CheckIsPray())
                    {
                    LocalSave.SetInt(prayDrugRecordKey, TimeUtility.ServerNow.Day);
                    }
                }
                else
                {
@@ -157,8 +169,37 @@
            else
            {
                IsNewDay = true;
                if(CheckIsPray())
                {
                LocalSave.SetInt(prayDrugRecordKey, TimeUtility.ServerNow.Day);
            }
            }
        }
        public int everyDayNum { get; private set; }
        public int minVipLvLimit { get; private set; }
        public void SetPrayPrivilegeByVipLv()
        {
            int vipLv = PlayerDatas.Instance.baseData.VIPLv;
            everyDayNum = VipPrivilegeConfig.GetVipPrivilegeData(VipPrivilegeType.PrayForDrug,vipLv);
        }
        public void SetPrayVipLimit()
        {
            for (int i = 0; i < 16; i++)
            {
                int prayNum = VipPrivilegeConfig.GetVipPrivilegeData(VipPrivilegeType.PrayForDrug, i);
                if(prayNum != 0)
                {
                    minVipLvLimit = i;
                    break;
                }
            }
        }
        public bool CheckIsPrayByVip()
        {
            return PlayerDatas.Instance.baseData.VIPLv >= minVipLvLimit ? true : false;
        }
        #endregion
@@ -223,14 +264,24 @@
        }
        #region 红点
        public bool CheckIsPray()
        {
            if (blastModel.StoveLV < prayPushLv
               || alreadyPrayNum >= everyDayNum
               || GetPrayDruglist().Count < 1)
            {
                return false;
            }
            return true;
        }
        public const int PRAYDRUGREDPOINT_KEY = 110011001;
        private Redpoint prayRedpoint = new Redpoint(BlastFurnaceModel.LINGDANREDPOINT_KEY, PRAYDRUGREDPOINT_KEY);
        public void UpdatePrayDanRedpoint()
        {
            if (blastModel.StoveLV < prayPushLv
                 || alreadyPrayNum >= everyDayNum
                 || GetPrayDruglist().Count < 1
                 || !IsNewDay)
            if ( !CheckIsPray() || !IsNewDay)
            {
                prayRedpoint.state = RedPointState.None;
                return;
@@ -242,9 +293,13 @@
        public void ClearPrayRedpoint()
        {
            if(prayRedpoint.state != RedPointState.None)
            {
            prayRedpoint.state = RedPointState.None;
                LocalSave.SetInt(prayDrugRecordKey, TimeUtility.ServerNow.Day);
            IsNewDay = false;
        }
        }
        #endregion
    }
}
System/BlastFurnace/PrayforDrugWin.cs
@@ -10,6 +10,12 @@
        [SerializeField] ScrollerController ctrl;
        [SerializeField] Button prayBtn;
        [SerializeField] Image prayBtnImg;
        [SerializeField] GameObject vipPray;
        [SerializeField] Text prayVipLimit;
        [SerializeField] GameObject unVipPray;
        [SerializeField] GameObject vipLimitText;
        [SerializeField] GameObject prayMoneyGo;
        [SerializeField] Text costText;
        [SerializeField] Button closeBtn;
        [Header("最大格子数")]
@@ -64,6 +70,11 @@
        private void UpdatePrayBtn()
        {
            prayBtn.RemoveAllListeners();
            if(PrayModel.CheckIsPrayByVip())
            {
                vipLimitText.SetActive(false);
                vipPray.SetActive(false);
                unVipPray.SetActive(true);
            if (PrayModel.alreadyPrayNum >= PrayModel.everyDayNum)
            {
                prayBtnImg.material = MaterialUtility.GetDefaultSpriteGrayMaterial();
@@ -74,6 +85,22 @@
                prayBtnImg.material = MaterialUtility.GetUIDefaultGraphicMaterial();
            }
        }
            else
            {
                prayBtnImg.material = MaterialUtility.GetDefaultSpriteGrayMaterial();
                vipPray.SetActive(true);
                unVipPray.SetActive(false);
                vipLimitText.SetActive(true);
                prayVipLimit.text = StringUtility.Contact("V",PrayModel.minVipLvLimit);
                prayBtn.AddListener(()=>
                {
                    PrayForDrugVipLackWin.vipLv = PrayModel.minVipLvLimit;
                    PrayForDrugVipLackWin.content = Language.Get("BlessingHint", PrayModel.costMoney);
                    WindowCenter.Instance.Open<PrayForDrugVipLackWin>();
                });
            }
        }
        private void ClickPrayBtn()
        {
System/ClientVersion/VersionConfig.cs
@@ -228,4 +228,19 @@
        }
    }
    public static int GetVersionNumber(string version)
    {
        var numberStrings = version.Split('.');
        var number = 0;
        for (var i = 0; i < Mathf.Min(numberStrings.Length, 3); i++)
        {
            var temp = 0;
            int.TryParse(numberStrings[i], out temp);
            number += temp * MathUtility.Power(1000, 2 - i);
        }
        return number;
    }
}
System/ClientVersion/VersionUtility.cs
@@ -322,6 +322,11 @@
        }
    }
    public bool IsShangGu()
    {
        return VersionConfig.Get().appId == "815035927";
    }
    public class VersionInfo
    {
        public int ForceCount;
System/Compose/New/ComposeEquipWin.cs
@@ -24,6 +24,8 @@
        [SerializeField]
        Text successRateText;
        [SerializeField] Text dismantleText;
        [SerializeField]
        Button helpBtn;
@@ -177,8 +179,8 @@
        private void CreateCell()
        {
            dismantleText.gameObject.SetActive(false);
            cellCtrl.Refresh();
            if(curSecondType == 0)
            {
                ChangeUIState(true, false,false);
@@ -366,6 +368,24 @@
                ItemCompoundConfig tagItemCompound = thirdTypelist[curComposeEquipIndex];
                ClickEquipTypeCell(tagItemCompound, curComposeEquipIndex);
            }
            if(thirdTypelist.Count > 1)
            {
                ItemConfig itemConfig = Config.Instance.Get<ItemConfig>(thirdTypelist[0].makeID);
                if (itemConfig != null && itemConfig.ItemColor == 6)
                {
                    dismantleText.gameObject.SetActive(true);
                }
                else
                {
                    dismantleText.gameObject.SetActive(false);
                }
            }
            else
            {
                dismantleText.gameObject.SetActive(false);
            }
        }
        private void RefreshEquipTypeLineCell(ScrollerDataType type, CellView cell)
System/DailyQuest/DailyQuestData.cs
@@ -291,7 +291,7 @@
                for (int i = 0; i < hourMinutes.Count; i++)
                {
                    var hourMinute = hourMinutes[i];
                    if (hour <= hourMinute.hourEnd && minute <= hourMinute.minuteEnd)
                    if (hour < hourMinute.hourEnd || (hour == hourMinute.hourEnd && minute <= hourMinute.minuteEnd))
                    {
                        _hourMinute = hourMinute;
                        break;
@@ -322,7 +322,7 @@
            for (int i = 0; i < hourMinutes.Count; i++)
            {
                var hourMinute = hourMinutes[i];
                if (hour <= hourMinute.hourEnd && minute <= hourMinute.minuteEnd)
                if (hour < hourMinute.hourEnd || (hour == hourMinute.hourEnd && minute <= hourMinute.minuteEnd))
                {
                    _hourMinute = hourMinute;
                    break;
@@ -343,7 +343,26 @@
        var openDayWeek = (int)TimeUtility.openServerDayOfWeek;
        var dayIndex = TimeUtility.OpenDay + 1;
        var maxDays = 15 - openDayWeek == 0 ? 7 : openDayWeek;
        for (int i = dayIndex; i <= maxDays; i++)
        var startDay = dayIndex;
        var createRoleTime = TimeUtility.createRoleTime;
        if (dayIndex == 1 && specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex))
        {
            var openServerDay = TimeUtility.ServerNow.AddTicks(-TimeUtility.OpenDay * TimeSpan.TicksPerDay);
            if (createRoleTime.Year == openServerDay.Year && createRoleTime.Month == openServerDay.Month
                && createRoleTime.Day == openServerDay.Day)
            {
                var hourMinutes = specialOpenTimes[openDayWeek][1];
                var hourMinute = hourMinutes[hourMinutes.Count - 1];
                var hour = createRoleTime.Hour;
                var minute = createRoleTime.Minute;
                if (hour > hourMinute.hourEnd ||
                    (hour == hourMinute.hourEnd && minute >= hourMinute.minuteEnd))
                {
                    startDay++;
                }
            }
        }
        for (int i = startDay; i <= maxDays; i++)
        {
            if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex))
            {
@@ -370,7 +389,26 @@
        var openDayWeek = (int)TimeUtility.openServerDayOfWeek;
        var dayIndex = TimeUtility.OpenDay + 1;
        var maxDays = 15 - openDayWeek == 0 ? 7 : openDayWeek;
        for (int i = 1; i <= maxDays; i++)
        var startDay = 1;
        var createRoleTime = TimeUtility.createRoleTime;
        if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(1))
        {
            var openServerDay = TimeUtility.ServerNow.AddTicks(-TimeUtility.OpenDay * TimeSpan.TicksPerDay);
            if (createRoleTime.Year == openServerDay.Year && createRoleTime.Month == openServerDay.Month
                && createRoleTime.Day == openServerDay.Day)
            {
                var hourMinutes = specialOpenTimes[openDayWeek][1];
                var hourMinute = hourMinutes[hourMinutes.Count - 1];
                var hour = createRoleTime.Hour;
                var minute = createRoleTime.Minute;
                if (hour > hourMinute.hourEnd ||
                    (hour == hourMinute.hourEnd && minute >= hourMinute.minuteEnd))
                {
                    startDay = 2;
                }
            }
        }
        for (int i = startDay; i <= maxDays; i++)
        {
            if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex))
            {
System/DogzDungeon/DogzDungeonWin.cs
@@ -109,6 +109,7 @@
        {
            if (PlayerDatas.Instance.baseData.MapID == DogzDungeonModel.DATA_MAPID)
            {
                WindowJumpMgr.Instance.ClearJumpData();
                WindowCenter.Instance.Close<LootPreciousFrameWin>();
                WindowCenter.Instance.Open<MainInterfaceWin>();
            }
System/FairyAu/FairyGrabBossModel.cs
@@ -107,6 +107,7 @@
            SysNotifyMgr.Instance.sysNotifyEvent += SystemNotifyEvent;
            GlobalTimeEvent.Instance.secondEvent += SecondEvent;
            TimeMgr.Instance.OnMinuteEvent += MinuteEvent;
            TimeUtility.OnServerOpenDayRefresh += OnServerOpenDayRefresh;
            OpenServerActivityCenter.Instance.Register(13, this);
        }
@@ -135,6 +136,19 @@
            SysNotifyMgr.Instance.sysNotifyEvent -= SystemNotifyEvent;
            GlobalTimeEvent.Instance.secondEvent -= SecondEvent;
            TimeMgr.Instance.OnMinuteEvent -= MinuteEvent;
            TimeUtility.OnServerOpenDayRefresh -= OnServerOpenDayRefresh;
        }
        private void OnServerOpenDayRefresh()
        {
            if (cacheNoticeOpen != IsOpen)
            {
                cacheNoticeOpen = !cacheNoticeOpen;
                if (onStateUpate != null)
                {
                    onStateUpate((int)OpenServerActivityCenter.OSActivityType.FairyGrabBossNotice);
                }
            }
        }
        private void MinuteEvent()
System/FairyAu/PlayerMethodData.cs
@@ -62,10 +62,21 @@
        PlayerDatas.Instance.fairyData.OnRefreshFairyMine -= OnRefreshFairyMine;
        PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;//加入仙盟
        PlayerDatas.Instance.fairyData.OnRefreshFairyMine += OnRefreshFairyMine;//退出仙盟
        PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= Updatefighting;//数据的刷新(h0418)
        PlayerDatas.Instance.PlayerDataRefreshInfoEvent += Updatefighting;//数据的刷新(h0418)
        FairyAuMethodDic();
        FairyAuMethodRedPoint();
    }
    private void Updatefighting(PlayerDataRefresh obj)
    {
        if (obj == PlayerDataRefresh.LV)
        {
            FairyAuMethodDic();
            FairyAuMethodRedPoint();
        }
    }
    private void OnRefreshFairyInfo()//加入仙盟
    {
        FairyAuHallRedPoint();
System/FakeDungeon/FakeDemonJarDungeonStage.cs
@@ -109,7 +109,7 @@
    {
        if (isReconnected)
        {
            if (surplusTime < 0f)
            if (surplusTime <= 0f)
            {
                if (fighting)
                {
System/KnapSack/Logic/ItemTipsModel.cs
@@ -710,6 +710,12 @@
                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)
@@ -1092,7 +1098,6 @@
            }
            return s;
        }
        #endregion
        #region 设置传奇属性
@@ -2023,11 +2028,16 @@
            if(type == PackType.rptDogzEquip || type == PackType.rptDogzItem)
            {
                strengthDataDict = new Dictionary<int, int>();
                if (GetUseDataModel((int)ItemUseDataKey.Def_IudetDogzEquipPlus) != null)
                {
                    StrengthLV = GetUseDataModel((int)ItemUseDataKey.Def_IudetDogzEquipPlus)[0];
                }
                strengthDataDict = beastModel.SiteEnhancementAttribute(type,index);
                Dictionary<int,int> getStregthDict = beastModel.SiteEnhancementAttribute(type,index);
                foreach(var key in getStregthDict.Keys)
                {
                    strengthDataDict.Add(key,getStregthDict[key]);
                }
            }
            SetWinType();
@@ -2059,9 +2069,17 @@
        {
            legendIdlist = new List<int>();
            legendValuelist = new List<int>();
            string attrCntKey = StringUtility.Contact(itemConfig.ItemColor, itemConfig.StarLevel);
            if (itemTipsModel.legendAttrIDPreviewDict.ContainsKey(itemConfig.EquipPlace))
            {
                foreach (var attrType in itemTipsModel.legendAttrIDPreviewDict[itemConfig.EquipPlace].Keys)
                {
                    int attrCnt = 0;
                    if (itemTipsModel.legendAttrCntPreviewDict.ContainsKey(attrCntKey))
                    {
                        attrCnt = itemTipsModel.legendAttrCntPreviewDict[attrCntKey][attrType];
                    }
                    if(attrCnt > 0)
                {
                    switch (attrType)
                    {
@@ -2073,6 +2091,8 @@
                            break;
                    }
                }
                }
            }
            int i = 0;
            for (i = 0; i < legendIdlist.Count; i++)
System/KnapSack/Logic/PackSendQuestMgr.cs
@@ -1083,6 +1083,68 @@
        }
        #endregion
        #region 发送拆解请求
        public void SendDismantleQuest(ItemWinBtnType btnType, ItemAttrData attrData)
        {
            List<int> dismantleReturnlist = attrData.GetUseDataModel((int)ItemUseDataKey.Def_IudetItemDecompound);
            int needGridCnt = 0;
            int fixedMatcnt = 0;
            int unfixedMatId = 0;
            for (int i = 0; i < dismantleReturnlist.Count; i++)
            {
                if (i == 0)
                {
                    if (dismantleReturnlist[i] != 0)
                    {
                        needGridCnt += 1;
                        unfixedMatId = dismantleReturnlist[i];
                    }
                }
                else
                {
                    if ((i - 1) % 3 == 0)
                    {
                        if (dismantleReturnlist[i] != 0)
                        {
                            needGridCnt += 1;
                            fixedMatcnt += dismantleReturnlist[i + 1];
                        }
                    }
                }
            }
            int offsetGrid = needGridCnt - playerPack.GetReaminGridCount(PackType.rptItem) - 1;
            if (offsetGrid > 0)
            {
                SysNotifyMgr.Instance.ShowTip("BagFull102", attrData.itemConfig.ItemName, offsetGrid);
                return;
            }
            else
            {
                ItemConfig itemConfig = Config.Instance.Get<ItemConfig>(unfixedMatId);
                if(itemConfig != null)
                {
                    ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("PinkChaiRemind2", fixedMatcnt,itemConfig.LV),
                        (bool isOk)=>
                        {
                            if(isOk)
                            {
                                CA313_tagCMItemDecompound decompound = new CA313_tagCMItemDecompound();
                                decompound.Index = (byte)attrData.index;
                                GameNetSystem.Instance.SendInfo(decompound);
                            }
                        });
                }
                else
                {
                    CA313_tagCMItemDecompound decompound = new CA313_tagCMItemDecompound();
                    decompound.Index = (byte)attrData.index;
                    GameNetSystem.Instance.SendInfo(decompound);
                }
            }
        }
        #endregion
        #region 发送续费请求 
        public void SendRenewalQuest(ItemWinBtnType btnType,int index)
        {
System/KnapSack/Logic/PlayerPackModels.cs
@@ -550,6 +550,47 @@
            equipAttrActiveDict.TryGetValue(type,out cnt);
            return cnt;
        }
        public List<int> GetAddAttrIdByStars(out int starsCount)
        {
            starsCount = 0;
            List<int> activeIdlist = new List<int>();
            List<int> addIdlist = new List<int>();
            int activeStars = GetActiveCntByType(1);
            RoleEquipStarsConfig activeStarsConfig = RoleEquipStarsConfig.GetEquipStarsModel(activeStars);
            if(activeStarsConfig != null)
            {
                for(int i = 0; i < activeStarsConfig.attType.Length; i++)
                {
                    activeIdlist.Add(activeStarsConfig.attType[i]);
                }
            }
            List<RoleEquipStarsConfig> starsConfigs = Config.Instance.GetAllValues<RoleEquipStarsConfig>();
            for (int i = 0; i < starsConfigs.Count; i++)
            {
                bool isAddId = false;
                RoleEquipStarsConfig starsConfig = starsConfigs[i];
                if (activeStars < starsConfig.countNeed)
                {
                    for(int j = 0; j < starsConfig.attType.Length; j++)
                    {
                        int attrId = starsConfig.attType[j];
                        if (!activeIdlist.Contains(attrId))
                        {
                            isAddId = true;
                            addIdlist.Add(attrId);
                        }
                    }
                }
                if(isAddId)
                {
                    starsCount = starsConfig.countNeed;
                    break;
                }
            }
            return addIdlist;
        }
        #endregion
        #endregion
System/KnapSack/Logic/PlayerStarNumWin.cs
@@ -23,6 +23,7 @@
        [SerializeField] Button activityBtn;
        [SerializeField] Text activeBtnText;
        [SerializeField] UIEffect successEffect;
        [SerializeField] Text addAttrText;
        private int _curStarsCount;
        private PlayerPropertyConfig _playerProModel;
@@ -155,6 +156,27 @@
                nextNoActObj.SetActive(true);
                RefreshActiveBtnUI(false);
            }
            int addAttrStarsNum = 0;
            List<int> addIdlist = playerPack.GetAddAttrIdByStars(out addAttrStarsNum);
            if(addIdlist.Count > 0)
            {
                addAttrText.gameObject.SetActive(true);
                string addAttr = "";
                for(int i = 0; i < addIdlist.Count; i++)
                {
                    PlayerPropertyConfig propertyConfig = Config.Instance.Get<PlayerPropertyConfig>(addIdlist[i]);
                    if(propertyConfig != null)
                    {
                        addAttr = StringUtility.Contact(addAttr, propertyConfig.Name);
                    }
                }
                addAttrText.text = Language.Get("KnapS148",addAttrStarsNum,addAttr);
            }
            else
            {
                addAttrText.gameObject.SetActive(false);
            }
        }
        private void RefreshActiveBtnUI(bool isActive)
System/KnapSack/NewItemGetWin.cs
@@ -90,8 +90,9 @@
                    var itemBehaviour = RequireBehaviour();
                    if (itemBehaviour != null)
                    {
                        var quality = modelInterface.GetItemQuality(itemId, model.useDataDict);
                        itemBehaviour.transform.SetParentEx(this.transform, Vector3.zero, Quaternion.identity, Vector3.one);
                        itemBehaviour.Begin(new Item(itemId, 1), m_StartPoint.localPosition, m_EndPoint.localPosition, OnBehaviourFinished);
                        itemBehaviour.Begin(new Item(itemId, 1, false, quality), m_StartPoint.localPosition, m_EndPoint.localPosition, OnBehaviourFinished);
                        showingItems.Add(itemBehaviour.gameObject);
                    }
                }
System/Launch/LaunchWin.cs
@@ -61,7 +61,7 @@
                m_BuildTime.text = "";
            }
            m_Progress.text = StringUtility.Contact(0, "%");
            m_Progress.text = VersionUtility.Instance.IsShangGu() ? "" : StringUtility.Contact(0, "%");
            UpdateLoadingProgress(Launch.currentStage, Launch.progress);
@@ -122,7 +122,8 @@
            }
            m_ProgressSlider.value = behaviourProgress;
            m_Progress.text = StringUtility.Contact(stepDescription, Mathf.RoundToInt(behaviourProgress * 100), "%");
            m_Progress.text = VersionUtility.Instance.IsShangGu() ? stepDescription :
                StringUtility.Contact(stepDescription, Mathf.RoundToInt(behaviourProgress * 100), "%");
            if (!assetBuildTimeShowed && AssetVersionUtility.assetsBuildTime != DateTime.MinValue)
            {
System/Login/LoginModel.cs
@@ -296,6 +296,8 @@
                    }else if(SDKUtility.Instance.ChannelPlatform == SDKUtility.E_ChannelPlatform.Js)
                    {
                        send.IDType = 4;
                        send.Extra += ("|" + sdkLoginResult.token);
                        send.ExtraLen = (byte)send.Extra.Length;
                    }
                    send.AccID = sdkLoginResult.account;
                    send.Password = sdkLoginResult.token;
System/MainInterfacePanel/PlayerTaskDatas.cs
@@ -885,7 +885,7 @@
            if (_DicTaskInformation[_MissionId].ContainsKey(_DictKey))
            {
                _DicTaskInformation[_MissionId][_DictKey] = _DictValue.ToString();
                if (_DictKey == "kaji" && _DictValue == 0)
                if (_DictKey == "kaji" && (_DictValue == 0|| _DictValue == 1))//kaji:0为主线卡级变更,kaji:1为魔族卡级变更
                {
                    if (CardLevelChange != null)
                    {
System/MainInterfacePanel/UpgradeWin.cs
@@ -15,8 +15,10 @@
    public class UpgradeWin : Window
    {
        [SerializeField] ScaleTween m_ScaleTween;
        [SerializeField] UIAlphaTween m_UIAlphaTween;
        [SerializeField] Text m_TextLV;
        [SerializeField] UIEffect m_UIEffect;
        public float Delay = 0.5f;
        #region Built-in
        protected override void BindController()
        {
@@ -28,13 +30,18 @@
        protected override void OnPreOpen()
        {
            m_UIAlphaTween.SetStartState();
            m_TextLV.text = PlayerDatas.Instance.baseData.LV.ToString();
        }
        protected override void OnActived()
        {
            m_UIEffect.Play();
            m_UIEffect.OnComplete = () => { CloseImmediately(); };
            m_ScaleTween.Play();
            m_UIEffect.OnComplete = () =>
            {
                StopCoroutine(DelayIEnumerator());
                Close();
            };
            m_ScaleTween.Play(false, () => { StartCoroutine(DelayIEnumerator()); });
        }
        protected override void OnAfterOpen()
        {
@@ -54,11 +61,18 @@
        protected override void OnAfterClose()
        {
        }
        IEnumerator DelayIEnumerator()
        {
            yield return new WaitForSeconds(Delay);
            m_UIAlphaTween.Play();
        }
        #endregion
        private void windowBeforeClose(Window _window)
        {
            if (_window is MainInterfaceWin)
            {
                StopCoroutine(DelayIEnumerator());
                Close();
            }
        }
System/MainWin/SkillButton.cs
@@ -32,7 +32,13 @@
        [SerializeField] Image m_Icon;
        public Image icon { get { return m_Icon; } }
        [SerializeField] Transform m_Locked;
        public Transform locked { get { return m_Locked; } }
        public Transform locked
        {
            get
            {
                return m_Locked;
            }
        }
        [SerializeField] Text m_CoolDown;
        [SerializeField] Image m_CoolDownMask;
@@ -46,21 +52,27 @@
        bool isExit = false;
        float m_TotalCoolDown = 0f;
        public float totalCoolDown {
            get {
        public float totalCoolDown
        {
            get
            {
                return m_TotalCoolDown;
            }
            set {
            set
            {
                m_TotalCoolDown = value;
            }
        }
        float m_CoolDownCompleteTime = 0f;
        public float coolDownCompleteTime {
            get {
        public float coolDownCompleteTime
        {
            get
            {
                return m_CoolDownCompleteTime;
            }
            set {
            set
            {
                m_CoolDownCompleteTime = value;
            }
        }
@@ -75,14 +87,15 @@
            m_SkillData = _skillData;
            if (m_SkillData == null)
            {
                m_Locked.gameObject.SetActive(true);
                locked.gameObject.SetActive(true);
                m_Icon.gameObject.SetActive(false);
            }
            else
            {
                if (PreFightMission.Instance.IsFinished())
                if (PreFightMission.Instance.IsFinished()
                 || PreFightMission.Instance.s_MissionDict.ContainsKey(1002))
                {
                    m_Locked.gameObject.SetActive(false);
                    locked.gameObject.SetActive(false);
                    m_Icon.gameObject.SetActive(true);
                }
                var skillConfig = m_SkillData.skillCfg;
System/NewBieGuidance/FunctionalGuideCenter.cs
@@ -271,10 +271,12 @@
                case GuideTriggerType.QuestCanAward:
                    return mainTaskId == config.Condition && taskmodel.currentMissionState == 2;
                case GuideTriggerType.QuestLimit:
                    return taskmodel.currentMission == config.Condition &&
                    return mainTaskId == config.Condition &&
                        (taskmodel.GetTaskStatus(config.Condition) == PlayerTaskDatas.TaskStatus.CardLevel || taskmodel.GetTaskStatus(config.Condition) == PlayerTaskDatas.TaskStatus.TreasureCardLevel);
                case GuideTriggerType.QuestContinue:
                    return taskmodel.currentMission == config.Condition && (taskmodel.GetTaskStatus(config.Condition) == PlayerTaskDatas.TaskStatus.Normal);
                    var questState = taskmodel.SideQuestState(config.Condition);
                    var taskStatus = taskmodel.GetTaskStatus(config.Condition);
                    return questState == 1 && (taskStatus == PlayerTaskDatas.TaskStatus.Normal || taskStatus == PlayerTaskDatas.TaskStatus.TreasureCardLevel);
                case GuideTriggerType.Treasure:
                    if (!model.newGotShowing)
                    {
System/Rank/RankPanel.cs
@@ -278,6 +278,10 @@
        private void OnRankListClick(CellView cell)
        {
            int index = cell.index;
            if (model.rankList == null)
            {
                return;
            }
            if (index < model.rankList.Count)
            {
                if (model.rankList[index].ID == PlayerDatas.Instance.baseData.PlayerID)
System/Role/RoleTitleCell.cs
@@ -37,8 +37,8 @@
            }
            int _titleId = model.roleTitleList[_index];
            TitleData titleData = model.GetGainTitle(_titleId);
            DienstgradConfig _dienstgradCfg = Config.Instance.Get<DienstgradConfig>(_titleId);
            m_TitleIcon.SetSprite(_dienstgradCfg.Image);
            DienstgradConfig config = Config.Instance.Get<DienstgradConfig>(_titleId);
            m_TitleIcon.SetSprite(config.Image);
            m_TitleIcon.SetNativeSize();
            if (model.presentSelectTitle == model.roleTitleList[_index])
            {
@@ -48,7 +48,7 @@
            {
                m_BottomImg.SetSprite("Title_PopupWindow");
            }
            m_TitleGetBtn.gameObject.SetActive(!model.IsTitleGain(_titleId));
            m_TitleGetBtn.gameObject.SetActive(!model.IsTitleGain(_titleId) && config.gotoId > 0);
            m_UseTitleBtn.gameObject.SetActive(model.IsTitleGain(_titleId));
            m_ContainerNewGet.gameObject.SetActive(model.IsNewGet(_titleId));
            m_UseTitleBtn.onClick.RemoveAllListeners();
@@ -61,16 +61,16 @@
                m_TitleEquipImg.gameObject.SetActive(titleData.isEquiped);
            }
            m_TitleGetBtn.RemoveAllListeners();
            if (titleData == null)
            if (titleData == null && config.gotoId > 0)
            {
                m_TitleGetBtn.AddListener(() =>
                {
                    if (_dienstgradCfg.gotoId > 0)
                    if (config.gotoId > 0)
                    {
                        if (_dienstgradCfg.missionId > 0
                             && task.GetQuestState(_dienstgradCfg.missionId) == -1)
                        if (config.missionId > 0
                             && task.GetQuestState(config.missionId) == -1)
                        {
                            var taskConfig = Config.Instance.Get<PyTaskConfig>(_dienstgradCfg.missionId);
                            var taskConfig = Config.Instance.Get<PyTaskConfig>(config.missionId);
                            var taskName = string.Empty;
                            if (taskConfig != null)
                            {
@@ -83,7 +83,7 @@
                            SysNotifyMgr.Instance.ShowTip("RoleTitle_1", taskName);
                            return;
                        }
                        WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)_dienstgradCfg.gotoId);
                        WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)config.gotoId);
                    }
                });
            }
System/Strengthening/WashMasterActiveWin.cs
@@ -216,7 +216,7 @@
            int[] curAttrValues = ConfigParse.GetMultipleStr<int>(curSpecConfig.attByLevelValue);
            raiseAttrCell.SetActive(false);
            tempCelllist.Add(GetRaiseGo(Language.Get("MainInterfacePanel_HeadPortraitTip_ZL"),preFightNum.ToString(),(curFightNum-preFightNum).ToString()));
            tempCelllist.Add(GetRaiseGo(Language.Get("L1056"),preFightNum.ToString(),(curFightNum-preFightNum).ToString()));
            for (int i = 0; i < preAttrIds.Length; i++)
            {
System/Strengthening/WingsRefined.cs
@@ -282,7 +282,8 @@
        ItemModel itemModel = playerPack.GetItemModelByIndex(PackType.rptEquip, (int)RoleEquipType.retWing);
        if (itemModel == null)
        var WingItem = Config.Instance.Get<WingRefineExpConfig>(itemModel.itemId);
        if (itemModel == null || WingItem == null)
            return;
        int YRefiningRatioMin = 0;//预览生命比值
System/SystemSetting/SettingMgr.cs
@@ -43,8 +43,6 @@
            #endregion
            #region 初始化系统设置
            SystemSetting.Instance.SetSoundVolume(1);
            SystemSetting.Instance.SetSoundEffect(1);
            SystemSetting.Instance.SetSystemSettingSwitch(SystemSwitch.OtherPlayer, false);
            SystemSetting.Instance.SetSystemSettingSwitch(SystemSwitch.HideMonster, false);
            #endregion
System/SystemSetting/SystemSetting.cs
@@ -40,7 +40,7 @@
    public float GetSoundVolume()
    {
        return LocalSave.GetFloat(SOUND_VOLUME_KEY, 1);
        return LocalSave.GetFloat(SOUND_VOLUME_KEY, .55f);
    }
    public void SetSoundEffect(float value)
@@ -50,7 +50,7 @@
    public float GetSoundEffect()
    {
        return LocalSave.GetFloat(SOUND_EFFECT_KEY, 1);
        return LocalSave.GetFloat(SOUND_EFFECT_KEY, .55f);
    }
    public void SetGameFps(GameFps _frame)
System/Treasure/TreasurePotentialPanel.cs
@@ -951,7 +951,9 @@
            {
                DisplayPotentialBook(model.selectedPotentialBook);
                var levelUpConfig = GetPotentialLevelUpConfig();
                m_PotentialCount.text = StringUtility.Contact(levelUpConfig.own, "/", levelUpConfig.need);
                bool satisfy = levelUpConfig.own >= levelUpConfig.need;
                m_PotentialCount.text = StringUtility.Contact(UIHelper.GetTextColorByItemColor(satisfy ?
                    TextColType.LightYellow : TextColType.Red, levelUpConfig.own.ToString()), "/", levelUpConfig.need);
            }
        }
System/Treasure/TreasureSoulPattern4.cs
@@ -94,7 +94,7 @@
                            }
                        }
                        properties[0].gameObject.SetActive(true);
                        properties[0].Display(6, (int)(value * percentWing));
                        properties[0].DisplayUpper(6, (int)(value * percentWing));
                    }
                    break;
            }
System/Treasure/TreasureSoulWin.cs
@@ -368,7 +368,7 @@
                            }
                        }
                        m_PreviewPropretys[0].gameObject.SetActive(true);
                        m_PreviewPropretys[0].Display(6, (int)(value * percentWing));
                        m_PreviewPropretys[0].DisplayUpper(6, (int)(value * percentWing));
                    }
                    break;
                case TreasurePrivilege.DemonJarAtk:
System/Treasure/UI3DTreasureSelectStage.cs
@@ -219,6 +219,7 @@
        private Dictionary<TreasureCategory, List<TreasureComponent>> m_Treasures = new Dictionary<TreasureCategory, List<TreasureComponent>>();
        private Dictionary<TreasureCategory, bool> m_PreloadDict = new Dictionary<TreasureCategory, bool>();
        Coroutine preloadCoroutine = null;
        private void InitTreasure()
        {
            Load(TreasureCategory.Human);
@@ -417,6 +418,12 @@
            HideAllTreasure();
            InitScene();
            if (preloadCoroutine != null)
            {
                StopCoroutine(preloadCoroutine);
                preloadCoroutine = null;
            }
            if (!m_PreloadDict.ContainsKey(currentCategory) && !_closer)
            {
                Preloading = true;
@@ -424,7 +431,7 @@
                current_angle = 0;
                before_angle = 0;
                before_drag_angle = current_angle;
                StartCoroutine(Co_PreLoad(currentCategory, () =>
                preloadCoroutine = StartCoroutine(Co_PreLoad(currentCategory, () =>
                {
                    if (!m_PreloadDict.ContainsKey(currentCategory))
                    {
@@ -432,6 +439,7 @@
                    }
                    GoTreasureFromHeader(_index);
                    Preloading = false;
                      preloadCoroutine = null;
                }));
            }
            else
@@ -596,6 +604,10 @@
        public void Goto(int _index, bool _force = false)
        {
            var _list = m_Treasures[currentCategory];
            if (_index < 0 || _index >= _list.Count)
            {
                _index = 0;
            }
            jumpTreasure = _list[_index].treasureId;
            if (!_force && _index == presentSelectIndex)
            {
System/Vip/VipInvest/CheckDisplay.cs
@@ -5,10 +5,12 @@
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System;
namespace Snxxz.UI {
    public class CheckDisplay:MonoBehaviour {
        public static event Action EndOfFlashing;
        [SerializeField] Image m_Image1;
        [SerializeField] Image m_Image2;
        [SerializeField] Image m_Image3;
@@ -18,7 +20,31 @@
        [SerializeField] Image m_Image7;
        [SerializeField] Image m_Image8;
        [SerializeField] Image m_Image9;
        [Header("闪烁时间")]
        public float FlashingTime = 2f;
        private float _time=0;
        bool IsBool = false;
        private void OnEnable()
        {
            IsBool = false;
            _time = 0;
        }
        private void LateUpdate()
        {
            if (IsBool)
            {
                _time += Time.deltaTime;
                if (FlashingTime < _time)
                {
                    CloseAll();
                    if (EndOfFlashing != null)
                    {
                        EndOfFlashing();
                    }
                }
            }
        }
        public void CloseAll()
        {
            m_Image1.gameObject.SetActive(false);
@@ -30,6 +56,8 @@
            m_Image7.gameObject.SetActive(false);
            m_Image8.gameObject.SetActive(false);
            m_Image9.gameObject.SetActive(false);
            IsBool = false;
            _time = 0;
        }
        public void ShowSelected(int Index)
@@ -63,9 +91,8 @@
                case 9:
                    m_Image9.gameObject.SetActive(true);
                    break;
            }
            IsBool = true;
        }
    }
System/Vip/VipInvest/RotatePointer.cs
@@ -8,11 +8,12 @@
using DG.Tweening;
using System;
namespace Snxxz.UI {
    public class RotatePointer:MonoBehaviour {
namespace Snxxz.UI
{
    public class RotatePointer : MonoBehaviour
    {
        public bool _isRotate = false;//是否旋转      
        public float Speed = 2000;//旋转速度
        private float Speed = 2000;//旋转速度
        public float Angle = 0; // 这个是设置停止的角度
        private float Acceleration = 0;//加速度
        private float _time;
@@ -42,33 +43,31 @@
        {
           
        }
        private Sequence sequence;
        void Update()
        {
            if (!_isRotate)
            {
                if (-Angle != transform.eulerAngles.z)
                if (Math.Abs((360 - Angle) - transform.eulerAngles.z) > 0.2 && Angle - transform.eulerAngles.z != 0)
                {
                    transform.DOPause();
                    sequence.Kill();
                    transform.localRotation = Quaternion.Euler(0, 0, -Angle);
                    m_CheckDisplay.ShowSelected(wheelOfFortuneModel.Lattice);
                    if (IsButtonShow != null)
                    {
                        IsButtonShow(true);
                    }
                    _time = 0;
                    IsRotateBool = false;
                    _isRotate = false;
                }          
                return; //不旋转结束
            }
            if (IsRotateBool)
            {
                _time += Time.deltaTime;
                if (_time < SpeedTime)//匀加速
                {
                    Speed = MinSpeed + Acceleration * _time;
@@ -97,7 +96,8 @@
                {
                    //结束,使用DoTween旋转到结束角度,耗时1秒
                    //这里有个360,使用来防止指针回转的,如果不加这个360,你会看到指针倒退
                    Sequence sequence = DOTween.Sequence();
                    sequence = DOTween.Sequence();
                    sequence.SetAutoKill(false);
                    sequence.Append(transform.DORotate(new Vector3(0, 0, -(360 + Angle)), 2f, RotateMode.FastBeyond360));
                    sequence.AppendCallback(()=> 
                    {
@@ -110,11 +110,9 @@
                    });                 
                    IsRotateBool = false;
                }
               // DebugEx.LogError(transform.eulerAngles.z);
            }          
        }
        //外部调用,初始化时间和打开旋转
        //外部调用,初始化时间和打开旋转,设置停止角度
        public void SetTime(bool _bool)
        {
            _time =0;
@@ -129,14 +127,7 @@
                IsRotateBool = true;
                _isRotate = true;
            }
        }
        private void TweenOver()
        {
        }
        //外部调用,设置停止角度
    }
}
System/Vip/VipInvest/UIEffectFly.cs
New file
@@ -0,0 +1,98 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Tuesday, October 09, 2018
//--------------------------------------------------------
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
namespace Snxxz.UI {
    public class UIEffectFly:MonoBehaviour {
        [SerializeField] Transform m_tran1;
        [SerializeField] Transform m_tran2;
        [SerializeField] Transform m_tran3;
        [SerializeField] Transform m_tran4;
        [SerializeField] Transform m_tran5;
        [SerializeField] Transform m_tran6;
        [SerializeField] Transform m_tran7;
        [SerializeField] Transform m_tran8;
        [SerializeField] Transform m_tran9;
        [SerializeField] Transform m_endTran;
        [Header("需要生成的个数")]
        public int NUMBER = 5;
        [Header("移动的时间")]
        public float SPEED = 2f;
        [Header("需要进行延迟的时间")]
        public float LOADTIME = 0.1f;
        public void StartFly(int Inedx)
        {
            switch (Inedx)
            {
                case 1:
                    GetVector3Pos(m_tran1.position, m_endTran.position);
                    break;
                case 2:
                    GetVector3Pos(m_tran2.position, m_endTran.position);
                    break;
                case 3:
                    GetVector3Pos(m_tran3.position, m_endTran.position);
                    break;
                case 4:
                    GetVector3Pos(m_tran4.position, m_endTran.position);
                    break;
                case 5:
                    GetVector3Pos(m_tran5.position, m_endTran.position);
                    break;
                case 6:
                    GetVector3Pos(m_tran6.position, m_endTran.position);
                    break;
                case 7:
                    GetVector3Pos(m_tran7.position, m_endTran.position);
                    break;
                case 8:
                    GetVector3Pos(m_tran8.position, m_endTran.position);
                    break;
                case 9:
                    GetVector3Pos(m_tran9.position, m_endTran.position);
                    break;
            }
        }
        private void GetVector3Pos(Vector3 StartVec,Vector3 endVec)
        {
            var direction = Vector3.Normalize(StartVec - endVec);
            var normal = new Vector3(-direction.y, direction.x, 0);
            var distance = Vector3.Distance(StartVec, endVec);
            int Type = 0;
            int Type1 = 0;
            for (int i = 0; i < NUMBER; i++)
            {
                var pivot = StartVec + normal * UnityEngine.Random.Range(-distance, distance) * 0.7f + direction * distance * 0.4f;
                var effect = EffectMgr.Instance.PlayUIEffect(5134,2500, this.transform, true);
                effect.transform.position = StartVec;
                var bezierMove = effect.AddMissingComponent<BezierMove>();
                bezierMove.duration = (SPEED - i * LOADTIME);
                Type += 1;
                bezierMove.Begin(StartVec, pivot, endVec, () =>
                {
                    Type1 += 1;
                    effect.Stop();
                    DestroyObject(bezierMove);
                    if (Type == Type1)
                    {
                      //  OnComplet();
                    }
                });
            }
        }
    }
}
System/Vip/VipInvest/UIEffectFly.cs.meta
copy from Core/GameEngine/Model/Config/BlastFurnaceLVConfig.cs.meta copy to System/Vip/VipInvest/UIEffectFly.cs.meta
File was copied from Core/GameEngine/Model/Config/BlastFurnaceLVConfig.cs.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 1bbbc87171e60f949bb6b7572c73fa38
timeCreated: 1515213620
licenseType: Pro
guid: cd341680a37e9b14d92099dbcb899a44
timeCreated: 1539072327
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
System/Vip/VipInvest/WheelOfFortuneModel.cs
@@ -39,9 +39,9 @@
            var BindJadewheel = Config.Instance.Get<FuncConfigConfig>("BindJadeWheelCfg");
            NeedJade = int.Parse(BindJadewheel.Numerical1);
            AngleList = JsonMapper.ToObject<double[][]>(BindJadewheel.Numerical5);
            for (int i = 0; i < AngleList.Length; i++)
            {
                if (AngleDic.Count <= 0)
            {
                for (int i = 0; i < AngleList.Length; i++)
                {
                    int Type = i + 1;
                    AngleClass angleClass = new AngleClass();
@@ -89,12 +89,12 @@
        {
            Lattice = Info.Index;
            Number = Info.Cnt;
            if (IsOk)
            if (IsOk && Info.Index!=0)
            {
                if (AngleDic.ContainsKey(Lattice))
                {
                    float flo = UnityEngine.Random.Range(AngleDic[Lattice].AngleStart + 0.05f, AngleDic[Lattice].AngleEnd - 0.05f);
                    float flo = UnityEngine.Random.Range(AngleDic[Lattice].AngleStart + 1f, AngleDic[Lattice].AngleEnd - 1f);
                    flo = (float)Math.Round((double)flo, 2);
                    if (flo > 360f)
                    {
                        flo = flo - 360f;
@@ -108,7 +108,6 @@
                }
                RedPoint();
            }
        }
        public void StartTheDraw()//开始抽奖
        {
@@ -154,7 +153,6 @@
            return 0;
        }
    }
}
System/Vip/VipInvest/WheelOfFortuneWin.cs
@@ -7,6 +7,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
using TableConfig;
using UnityEngine;
using UnityEngine.UI;
@@ -16,14 +17,20 @@
    public class WheelOfFortuneWin : Window
    {
        [SerializeField] Button m_LotteryBtn;
        [SerializeField] ImageEx m_LotteryImage;
        [SerializeField] RotatePointer m_RotatePointer;
        [SerializeField] Toggle m_Toggle;
        [SerializeField] Button m_CloseBtn;
        [SerializeField] CheckDisplay m_CheckDisplay;
        [SerializeField] Text Money1_Text;
        [SerializeField] Text Money2_Text;
        [SerializeField] Text m_Text_remainingTimes;
        [SerializeField] Text m_Text_remainingTimes;//剩余转动次数
        [SerializeField] Text m_Text_VIPuP;//VIP提升转动次数
        [SerializeField] Text m_GO;
        [SerializeField] Button m_PromotionBtn;
        [SerializeField] RotationTween m_RotationTween;
        [SerializeField] GameObject m_RequiredConsumption;
        [SerializeField] Text m_NeedMoney_Text;
        [SerializeField] UIEffect m_UIEffect_1;
        [Header("滚动时间")]
        public  float RollingTime = 1f;
        VipModel m_Vipmodel;
@@ -48,14 +55,26 @@
            FairyJade = (int)UIHelper.GetMoneyCnt(2);
            Money1_Text.text = FairyJade.ToString();
            Money2_Text.text = UIHelper.GetMoneyCnt(1).ToString();
            m_NeedMoney_Text.text = wheelOfFortuneModel.NeedJade.ToString();
            m_RotatePointer.Init();
            IsLottery();//判断是否拥有次数
            m_LotteryBtn.interactable = true;
            m_RequiredConsumption.SetActive(true);
            m_LotteryImage.gray = false;
            TextGo();
            IncreaseInFrequency();//次数提升
            RemainingTimes();//剩余次数
        }
        protected override void OnActived()
        {
            Money1_Text.transform.localRotation = Quaternion.Euler(0, 0, 0);
            m_RotationTween.enabled = false;
        }
        protected override void OnAfterOpen()
        {
            wheelOfFortuneModel.WheelOfFortuneUpdate += WheelOfFortuneUpdate;
            RotatePointer.IsButtonShow += IsButtonShow;
            CheckDisplay.EndOfFlashing += EndOfFlashing;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += Updatefighting;//数据的刷新(h0418)
            if (wheelOfFortuneModel.redPointStre1.state == RedPointState.Simple)
            {
                int GetDayOfYear = DateTime.Now.DayOfYear;
@@ -69,15 +88,39 @@
        {
            wheelOfFortuneModel.WheelOfFortuneUpdate -= WheelOfFortuneUpdate;
            RotatePointer.IsButtonShow -= IsButtonShow;
            CheckDisplay.EndOfFlashing -= EndOfFlashing;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= Updatefighting;//数据的刷新(h0418)
        }
        private void Updatefighting(PlayerDataRefresh obj)
        {
            if (obj == PlayerDataRefresh.VIPLv)
            {
                TextGo();
                RemainingTimes();//剩余次数
                IncreaseInFrequency();//次数提升
            }
            if (obj == PlayerDataRefresh.Gold)
            {
                Money2_Text.text = UIHelper.GetMoneyCnt(1).ToString();
            }
        }
        private void EndOfFlashing()
        {
            TiedJadeChange();
            m_UIEffect_1.Play();
        }
        private void WheelOfFortuneUpdate(float Angel)
        {
            m_LotteryBtn.interactable = false;
            m_RequiredConsumption.SetActive(false);
            m_LotteryImage.gray = true;
            m_RotatePointer.SetTime(m_Toggle.isOn);
            IsLottery();
            TextGo();
            RemainingTimes();//剩余次数
            IncreaseInFrequency();//次数提升
        }
        protected override void OnAfterClose()
@@ -86,9 +129,24 @@
        private void OnClickButton()
        {
            int LotteryNumber = vipmodel.GetVipPrivilegeCnt(VipPrivilegeType.BindJadeWheel);
            if (LotteryNumber <= wheelOfFortuneModel.Number)
            {
                LackOfVIP(); //VIP 不足
                return;
            }
            else if (LotteryNumber > wheelOfFortuneModel.Number && (int)UIHelper.GetMoneyCnt(1) < wheelOfFortuneModel.NeedJade)
            {
                LackFairyJade();//仙玉不足
                return;
            }
            else if (LotteryNumber > wheelOfFortuneModel.Number && (int)UIHelper.GetMoneyCnt(1) >= wheelOfFortuneModel.NeedJade)
            {
            m_CheckDisplay.CloseAll();
                FairyJade = (int)UIHelper.GetMoneyCnt(2);
                Money1_Text.text = FairyJade.ToString();
            wheelOfFortuneModel.StartTheDraw();//开始抽奖
            m_RotatePointer.SetTime(m_Toggle.isOn);
            }
        }
        private void OnClickToggle(bool _bool)
        {
@@ -100,33 +158,29 @@
            {
                m_RotatePointer._isRotate = true;
            }
        }
        private void OnClickPromotionBtn()
        {        
            if (PlayerDatas.Instance.baseData.VIPLv >= 10)
            {
                WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.VipRechargeFunc1);
            }
            else
            {
            WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.VipRechargeFunc4);
            }
        }
        private void IsButtonShow(bool _bool)//是否可点击旋转
        {
            m_LotteryBtn.interactable = _bool;
        }
        private void IsLottery()
        {
            int LotteryNumber = vipmodel.GetVipPrivilegeCnt(VipPrivilegeType.BindJadeWheel);
            if (LotteryNumber > wheelOfFortuneModel.Number)
            {
                remainingTimes = LotteryNumber - wheelOfFortuneModel.Number;
                m_LotteryBtn.interactable = true;
            }
            else
            {
                m_LotteryBtn.interactable = false;
            }
            m_RequiredConsumption.SetActive(_bool);
            m_LotteryImage.gray = !_bool;
        }
        private Sequence mScoreSequence;
        private void TiedJadeChange()//绑玉变化
        {
            m_RotationTween.enabled = true;
            mScoreSequence = DOTween.Sequence();
            mScoreSequence.SetAutoKill(false);
            mScoreSequence.Append(DOTween.To(delegate(float value) 
@@ -134,8 +188,126 @@
                var temp = Math.Floor(value);
                Money1_Text.text = temp + "";
            }, FairyJade,(int)UIHelper.GetMoneyCnt(2), RollingTime));
            mScoreSequence.AppendCallback(() =>
            {
                Money1_Text.transform.localRotation = Quaternion.Euler(0, 0, 0);
                m_RotationTween.enabled = false;
            });
            FairyJade = (int)UIHelper.GetMoneyCnt(2);
        }
        private void LackOfVIP()//VIP 不足
        {
            string str = Language.Get("Turntable_2");
            ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), str, (bool isOk) =>
             {
                 if (isOk)
                 {
                     WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.VipRechargeFunc4);
                 }
             });
        }
        private void LackFairyJade()//仙玉不足
        {
            if (VersionConfig.Get().isBanShu)
            {
                SysNotifyMgr.Instance.ShowTip("GoldErr");
                return;
            }
            WindowCenter.Instance.Open<RechargeTipWin>();
        }
        private void RemainingTimes()//剩余次数
        {
            int LotteryNumber = vipmodel.GetVipPrivilegeCnt(VipPrivilegeType.BindJadeWheel);
            if (LotteryNumber > wheelOfFortuneModel.Number)
            {
                m_Text_remainingTimes.text =(LotteryNumber - wheelOfFortuneModel.Number).ToString();
            }
            else
            {
                m_Text_remainingTimes.text = 0.ToString();
            }
        }
        private void IncreaseInFrequency()//次数提升
        {
            if (PlayerDatas.Instance.baseData.VIPLv >= 10)
            {
                m_Text_VIPuP.gameObject.SetActive(false);
                return;
            }
            else
            {
                m_Text_VIPuP.gameObject.SetActive(true);
            }
            int LotteryNumber = vipmodel.GetVipPrivilegeCnt(VipPrivilegeType.BindJadeWheel);
            for (int i = 0; i <= 10; i++)
            {
                var VipConfig = VipPrivilegeConfig.GetVipPrivilegeData(VipPrivilegeType.BindJadeWheel, i);
                if (VipConfig != 0 && VipConfig > LotteryNumber)
                {
                    int type = i;
                    int number = VipConfig - LotteryNumber;
                    m_Text_VIPuP.text = string.Format(Language.Get("Turntable_1"), type, Number(number));
                    return;
                }
            }
        }
        private string Number(int number)
        {
            string Str = string.Empty;
            switch (number)
            {
                case 1:
                    Str = Language.Get("Num_CHS_1");
                    return Str;
                case 2:
                    Str = Language.Get("Num_CHS_2");
                    return Str;
                case 3:
                    Str = Language.Get("Num_CHS_3");
                    return Str;
                case 4:
                    Str = Language.Get("Num_CHS_4");
                    return Str;
                case 5:
                    Str = Language.Get("Num_CHS_5");
                    return Str;
                case 6:
                    Str = Language.Get("Num_CHS_6");
                    return Str;
                case 7:
                    Str = Language.Get("Num_CHS_7");
                    return Str;
                case 8:
                    Str = Language.Get("Num_CHS_8");
                    return Str;
                case 9:
                    Str = Language.Get("Num_CHS_9");
                    return Str;
                case 10:
                    Str = Language.Get("Num_CHS_10");
                    return Str;
            }
            return Str;
        }
        private void TextGo()
        {
            if (PlayerDatas.Instance.baseData.VIPLv >= 10)
            {
                m_GO.text = Language.Get("Turntable_4");
            }
            else
            {
                m_GO.text = Language.Get("Turntable_3");
            }
        }
        #endregion
    }
System/Welfare/AwardExchangeWin.cs
@@ -60,6 +60,7 @@
                tables["accid"] = SDKUtility.Instance.FreePlatformInfo.account;
                tables["sid"] = ServerListCenter.Instance.currentServer.region_flag.ToString();
                tables["pushurl"] = ServerListCenter.Instance.currentServer.region_domain;
                tables["spid"] = VersionConfig.Get().SpID;
                HttpRequest.Instance.RequestHttpGet(StringUtility.Contact(exchangeUrl, HttpRequest.HashtablaToString(tables)), HttpRequest.defaultHttpContentType, 1, null);
            }
        }
System/Welfare/WelfareWin.cs
@@ -138,6 +138,14 @@
            {
                Btn_InSeven.gameObject.SetActive(true);
            }
            if (FuncOpen.Instance.IsFuncOpen(144))
            {
                m_TurntableBtn.gameObject.SetActive(true);
            }
            else
            {
                m_TurntableBtn.gameObject.SetActive(false);
            }
            CheckOperationOpen();
System/WindowBase/WindowCenter.cs
@@ -14,7 +14,7 @@
        List<string> closeAllIgnoreWindows = new List<string>() {
            "MessageWin", "NewBieWin", "NewItemGetWin", "AttributePromoteShowWin" ,"DungeonBeginCoolDownWin","DungeonFightWin","StatusTipWin"
            ,"ScrollTipWin","MarqueeWin","ExperienceOpenWin","TrumpetWin","BattlePrepareCoolDownWin","DungeonGradeWin","BattleHintWin",
            "TreasureDungeonMissionHintWin","FairyGrabBossHintWin","DungeonFairyFeastHintWin","PetAndMountPushWin",
            "TreasureDungeonMissionHintWin","FairyGrabBossHintWin","DungeonFairyFeastHintWin","PetAndMountPushWin","UpgradeWin",
        };
        UIRoot m_UIRoot;
System/WindowJump/WindowJumpMgr.cs
@@ -333,6 +333,7 @@
            case JumpUIType.WelfareFunc2:
            case JumpUIType.WelfareFunc3:
            case JumpUIType.WelfareFunc2Type2:
            case JumpUIType.BindGoldWheel:
                SetJumpLogic<WelfareWin>(_tagWinSearchModel.TABID);
                break;
            case JumpUIType.SystemSettingFunc1:
@@ -526,6 +527,8 @@
                break;
            case JumpUIType.DogzFunc1Type1:
            case JumpUIType.DogzFunc1Type2:
            case JumpUIType.DogzFunc2Type1:
            case JumpUIType.DogzFunc2Type2:
                SetJumpLogic<DogzWin>(_tagWinSearchModel.TABID);
                break;
            case JumpUIType.FaBaoSoul_BenYuan:
@@ -1374,6 +1377,9 @@
    CeremonyOutof = 247, //仙界盛典绝版降临界面
    DogzFunc1Type1 = 248, //神兽界面
    DogzFunc1Type2 = 249, //神兽界面
    DogzFunc2Type1 = 250, //神兽强化界面
    DogzFunc2Type2 = 251, //神兽强化界面
    BindGoldWheel = 252, //绑玉转盘界面
    DhszTs = 1001,//定海神针功法提升界面
    HyqTs = 1002,//皓月枪功法提升界面
    GyzTs = 1003,//鬼牙刃功法提升界面
UI/Common/ItemBehaviour.cs
@@ -60,6 +60,7 @@
        }
        public bool itemBind { get; private set; }
        public int itemQuality { get; private set; }
        private void Awake()
        {
@@ -71,14 +72,15 @@
        public void SetItem(Item _item)
        {
            SetItem(_item.id, _item.count, _item.bind);
            SetItem(_item.id, _item.count, _item.bind, _item.quality);
        }
        public void SetItem(int _id, int _count, bool _bind = false)
        public void SetItem(int _id, int _count, bool _bind = false, int _quality = 0)
        {
            itemId = _id;
            itemCount = _count;
            itemBind = _bind;
            itemQuality = _quality;
            DisplayBaseInfo();
            DisplayCount();
        }
@@ -128,7 +130,8 @@
                if (backGround != null)
                {
                    backGround.gameObject.SetActive(true);
                    backGround.SetItemBackGround(itemInfo.ItemColor);
                    backGround.SetItemBackGround(itemQuality != 0 ? itemQuality : itemInfo.ItemColor);
                }
                if (m_Stars != null)
UI/Common/UI3DModelFactory.cs
@@ -82,10 +82,38 @@
        var animator = model.GetComponent<Animator>();
        if (animator != null)
        {
            var suffix = AnimatorControllerLoader.controllerUISuffix;
            var animatorController = AnimatorControllerLoader.LoadMobController(suffix, config.MODE);
            if (animatorController != null)
            {
                animator.runtimeAnimatorController = animatorController;
            }
            var isDance = false;
            if (config.NPCType == (int)E_NpcType.Func)
            {
                var clipInfos = animator.runtimeAnimatorController.animationClips;
                foreach (var item in clipInfos)
                {
                    if (item.name == "Idle2")
                    {
                        isDance = true;
                        break;
                    }
                }
            }
            animator.enabled = true;
            if (isDance)
            {
                animator.Play(GAStaticDefine.State_Dance);
            }
            else
            {
            animator.SetInteger(GAStaticDefine.Param_Action, GAStaticDefine.Act_Idle);
            animator.Play(GAStaticDefine.State_IdleHash);
        }
        }
        LayerUtility.SetLayer(model, LayerUtility.Monster, true);
        return model;
Utility/EnumHelper.cs
@@ -1112,6 +1112,7 @@
    BossHomeAwardLimit = 27,
    DemonJarDouble = 28,
    BindJadeWheel=30,
    PrayForDrug = 31,
}
@@ -1486,6 +1487,7 @@
    Def_IudetSuiteLV = 30,  //套装等级
    Def_IudetDogzEquipPlus = 31,  // 神兽装备强化信息列表 [强化等级, 强化熟练度]
    Def_IudetHasOpenCnt = 32,  // 物品累积开启次数
    Def_IudetItemDecompound = 33,  //合成物品拆解返还物品列表 [装备ID,材料1ID,个数,是否绑定,材料2ID,个数,是否绑定,...]
    Def_IudetCreateItemLoginDay = 34,  //创建物品时的登录天数
    Def_IudetLastOpenItemLoginDay = 36,  //上一次开启物品时的登录天数
    Def_IudetRuneLV = 38,  // 符印等级
@@ -1506,6 +1508,7 @@
{
    makeUse, //使用
    putOn, //穿上
    dismantle, //拆解合成装备
    split, //拆分
    putAway,//上架
    inlay, //镶嵌
Utility/UIHelper.cs
@@ -581,7 +581,7 @@
                }
                else
                {
                    int attrValue = _propertyDict[_key];
                    float attrValue = _propertyDict[_key];
                    int fightParm = GetFightPowerParmByAttrId(_key);
                    if(_key == 11)
                    {