少年修仙传客户端代码仓库
client_Zxw
2018-10-19 fcd52e44576c730097e9b1a7d545c0406e08ad14
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
6个文件已添加
16个文件已修改
670 ■■■■ 已修改文件
Core/ResModule/GameObjectPoolManager.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/HeroAI_Base.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Stage/Dungeon/GuardDungeonStage.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Chat/ChatCtrl.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestData.cs 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonFightWin.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyGrabBossModel.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyGrabBossNoticeWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HeavenBattle/HeavenBattleModel.cs 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HeavenBattle/HeavenBattleWin.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Market/MarketDealWin.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Message/HrefAnalysis.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/OpenServerActivityWin.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/PoolItemCell.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/PoolItemCell.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/WishingPoolModel.cs 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/WishingPoolModel.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/WishingPoolWin.cs 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/WishingPoolWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/RuneTower/RunePreviewBehaviour.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/AwardExchangeWin.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/LanguageVerify.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/ResModule/GameObjectPoolManager.cs
@@ -565,6 +565,7 @@
                DebugItem _debugItem = Instance.m_DebugInstIDDict[_go.GetInstanceID()];
                _debugItem.transform.SetParent(m_DebugFree);
#endif
                _go.transform.SetParent(Instance.m_TargetContainer);
                _go.transform.position = Constants.Special_Hide_Position;
                if (releaseCallBack != null)
Fight/Actor/AI/HeroAI_Base.cs
@@ -173,7 +173,7 @@
    protected GActorFight DecideAttackTarget(Vector3 searchCenter, float range, int lockNpcID = -1)
    {
        GA_Hero _hero = PlayerDatas.Instance.hero;
        GActorFight _target = _hero.SelectTarget as GActorFight;
        GActorFight _target = _hero.LockTarget as GActorFight;
        if (_target == null || !_target.CanAtked())
        {
Fight/Stage/Dungeon/GuardDungeonStage.cs
@@ -369,7 +369,7 @@
            if (guardAdjustPosition)
            {
                var functionNpcs = GAMgr.Instance.GetGroupList(E_ActorGroup.FuncNpc);
                if (functionNpcs != null)
                if (functionNpcs != null && cageInvincibleEffect != null)
                {
                    for (int i = 0; i < functionNpcs.Count; i++)
                    {
@@ -378,7 +378,6 @@
                        {
                            var yoffset = actor.Pos.y;
                            actor.Pos = cageInvincibleEffect.transform.position.SetY(yoffset);
                            //Debug.LogFormat("矫正 {0} 的位置到 {1}", actor.ServerInstID, actor.Pos);
                        }
                    }
                }
System/Chat/ChatCtrl.cs
@@ -763,7 +763,7 @@
                {
                    bool equip = itemPlaceList[i].packType == PackType.rptEquip;
                    uint[] stones = equip ? PlayerStoneData.Instance.GetStoneInfo(itemPlaceList[i].itemInfo.ItemPlace) : null;
                    _textBuilder.Append(StringUtility.Contact("*", itemPlaceList[i].itemInfo.ItemID,
                    _textBuilder.Append(StringUtility.Contact("#item#", itemPlaceList[i].itemInfo.ItemID,
                                                              "|", itemPlaceList[i].itemInfo.IsBind,
                                                              "|", itemPlaceList[i].itemInfo.ItemCount,
                                                              "|", stones != null ? LitJson.JsonMapper.ToJson(stones) :
@@ -814,7 +814,7 @@
                            ",\"Value\":", LitJson.JsonMapper.ToJson(_array)));
                        _textBuilder.Append("}");
                    }
                    _textBuilder.Append("*");
                    _textBuilder.Append("#item#");
                    if (_recently != null)
                    {
                        _recently.Add(cfg.ItemName, _textBuilder.ToString().Substring(_length));
System/DailyQuest/DailyQuestData.cs
@@ -334,110 +334,133 @@
    }
    public int GetFirstOpenSurplusSeconds()
    public int GetNextSessionSurplusTime()
    {
        if (IsAfterFirstOpen())
        if (InOpenTime())
        {
            return 0;
        }
        var openDayWeek = (int)TimeUtility.openServerDayOfWeek;
        var dayIndex = TimeUtility.OpenDay + 1;
        var maxDays = 15 - openDayWeek == 0 ? 7 : openDayWeek;
        var startDay = dayIndex;
        var createRoleTime = TimeUtility.createRoleTime;
        if (dayIndex == 1 && specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex))
        var maxSpecialDays = 15 - (openDayWeek == 0 ? 7 : openDayWeek);
        var hour = TimeUtility.ServerNow.Hour;
        var minute = TimeUtility.ServerNow.Minute;
        for (int i = 0; i <= 7; i++)//一周内必须有活动
        {
            var openServerDay = TimeUtility.ServerNow.AddTicks(-TimeUtility.OpenDay * TimeSpan.TicksPerDay);
            if (createRoleTime.Year == openServerDay.Year && createRoleTime.Month == openServerDay.Month
                && createRoleTime.Day == openServerDay.Day)
            List<HourMinute> hourminutes = null;
            var days = dayIndex + i;
            if (days <= maxSpecialDays)
            {
                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))
                if (!specialOpenTimes.ContainsKey(openDayWeek)
                || !specialOpenTimes[openDayWeek].ContainsKey(days))
                {
                    startDay++;
                    continue;
                }
                hourminutes = specialOpenTimes[openDayWeek][days];
            }
        }
        for (int i = startDay; i <= maxDays; i++)
        {
            if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex))
            else
            {
                var days = i - dayIndex;
                var hourMinute = specialOpenTimes[openDayWeek][dayIndex][0];
                var hour = TimeUtility.ServerNow.Hour;
                var minute = TimeUtility.ServerNow.Minute;
                var time = TimeUtility.ServerNow.AddDays(days);
                time = new DateTime(time.Year, time.Month, time.Day, hourMinute.hourBegin, hourMinute.minuteBegin, 0);
                var seconds = (int)(time - TimeUtility.ServerNow).TotalSeconds;
                return Mathf.Max(0, seconds);
                var dayOfWeek = (int)TimeUtility.ServerNow.AddTicks(i * TimeSpan.TicksPerDay).DayOfWeek;
                if (!openTimes.ContainsKey(dayOfWeek))
                {
                    continue;
                }
                hourminutes = openTimes[dayOfWeek];
            }
            if (hourminutes != null)
            {
                foreach (var hourMinute in hourminutes)
                {
                    if (days == dayIndex && hourMinute.AfterOpenTime(hour, minute))
                    {
                        continue;
                    }
                    var time = TimeUtility.ServerNow.AddTicks(i * TimeSpan.TicksPerDay);
                    time = new DateTime(time.Year, time.Month, time.Day, hourMinute.hourBegin, hourMinute.minuteBegin, 0);
                    var seconds = (int)(time - TimeUtility.ServerNow).TotalSeconds;
                    return Mathf.Max(0, seconds);
                }
            }
        }
        return 0;
    }
    public bool IsAfterFirstOpen()
    public int PassSessionCount(DateTime beginTime)
    {
        var isSpecialDay = TimeUtility.OpenWeekCnt <= 1;
        if (!isSpecialDay)
        {
            return true;
        }
        var openDayWeek = (int)TimeUtility.openServerDayOfWeek;
        var dayIndex = TimeUtility.OpenDay + 1;
        var maxDays = 15 - openDayWeek == 0 ? 7 : openDayWeek;
        var startDay = 1;
        var createRoleTime = TimeUtility.createRoleTime;
        if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(1))
        var maxSpecialDays = 15 - (openDayWeek == 0 ? 7 : openDayWeek);
        var beginHour = beginTime.Hour;
        var beginMinute = beginTime.Minute;
        var session = 0;
        var openServerDay = TimeUtility.ServerNow.AddTicks(-TimeUtility.OpenDay * TimeSpan.TicksPerDay);
        openServerDay = new DateTime(openServerDay.Year, openServerDay.Month, openServerDay.Day);
        var beginDay = (int)(beginTime - openServerDay).TotalDays + 1;
        List<HourMinute> hourMinutes = null;
        if (beginDay <= maxSpecialDays)
        {
            var openServerDay = TimeUtility.ServerNow.AddTicks(-TimeUtility.OpenDay * TimeSpan.TicksPerDay);
            if (createRoleTime.Year == openServerDay.Year && createRoleTime.Month == openServerDay.Month
                && createRoleTime.Day == openServerDay.Day)
            if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(beginDay))
            {
                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;
                }
                hourMinutes = specialOpenTimes[openDayWeek][beginDay];
            }
        }
        for (int i = startDay; i <= maxDays; i++)
        else
        {
            if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex))
            var dayOfWeek = (int)beginTime.DayOfWeek;
            if (openTimes.ContainsKey(dayOfWeek))
            {
                hourMinutes = openTimes[dayOfWeek];
            }
        }
        if (hourMinutes != null)
        {
            var hourMinute = hourMinutes[hourMinutes.Count - 1];
            if (hourMinute.AfterOpenTime(beginHour, beginMinute))
            {
                beginDay++;
            }
        }
        var nowHour = TimeUtility.ServerNow.Hour;
        var nowMinute = TimeUtility.ServerNow.Minute;
        for (int i = beginDay; i <= dayIndex; i++)
        {
            hourMinutes = null;
            if (i <= maxSpecialDays)
            {
                if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(i))
                {
                    hourMinutes = specialOpenTimes[openDayWeek][i];
                }
            }
            else
            {
                var dayOfWeek = (int)openServerDay.AddTicks((i - 1) * TimeSpan.TicksPerDay).DayOfWeek;
                if (openTimes.ContainsKey(dayOfWeek))
                {
                    hourMinutes = openTimes[dayOfWeek];
                }
            }
            if (hourMinutes != null)
            {
                if (i < dayIndex)
                {
                    return true;
                    session += hourMinutes.Count;
                }
                if (i == dayIndex)
                else if (i == dayIndex)
                {
                    var hourMinute = specialOpenTimes[openDayWeek][dayIndex][0];
                    var hour = TimeUtility.ServerNow.Hour;
                    var minute = TimeUtility.ServerNow.Minute;
                    if (hour < hourMinute.hourEnd ||
                        (hour == hourMinute.hourEnd && minute < hourMinute.minuteEnd))
                    foreach (var hourMinute in hourMinutes)
                    {
                        return false;
                        if (hourMinute.AfterOpenTime(nowHour, nowMinute))
                        {
                            session++;
                        }
                    }
                    else
                    {
                        return true;
                    }
                }
                if (i > dayIndex)
                {
                    return false;
                }
            }
        }
        return true;
        return session;
    }
    public bool ContainTimeNode(int week, int timeNode)
@@ -621,6 +644,19 @@
        }
    }
    public bool AfterOpenTime(int hour,int minute)
    {
        if (wholeDay)
        {
            return false;
        }
        else
        {
            var minutes = hour * 60 + minute;
            return (hourEnd * 60 + minuteEnd) <= minutes;
        }
    }
    public override string ToString()
    {
        var minuteBeginStr = minuteBegin > 9 ? minuteBegin.ToString() : StringUtility.Contact("0", minuteBegin);
System/Dungeon/DungeonFightWin.cs
@@ -133,19 +133,22 @@
            model.dungeonCoolDownEvent -= OnLeaveMapTimeEvent;
            var mapId = PlayerDatas.Instance.baseData.MapID;
            var mapConfig = Config.Instance.Get<MapConfig>(mapId);
            try
            if (mapId != 31250)
            {
                if (mapConfig != null && mapConfig.MapFBType != (int)MapType.OpenCountry)
                var mapConfig = Config.Instance.Get<MapConfig>(mapId);
                try
                {
                    throw new NullReferenceException();
                    if (mapConfig != null && mapConfig.MapFBType != (int)MapType.OpenCountry)
                    {
                        throw new NullReferenceException();
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.Log(ex);
                var content = StringUtility.Contact("当前地图:", PlayerDatas.Instance.baseData.MapID, ";堆栈信息:", ex.StackTrace);
                ExceptionCatcher.ReportException("副本战斗界面异常关闭", content);
                catch (Exception ex)
                {
                    Debug.Log(ex);
                    var content = StringUtility.Contact("当前地图:", PlayerDatas.Instance.baseData.MapID, ";堆栈信息:", ex.StackTrace);
                    ExceptionCatcher.ReportException("副本战斗界面异常关闭", content);
                }
            }
        }
System/FairyAu/FairyGrabBossModel.cs
@@ -346,6 +346,12 @@
                noticeShowPet = int.Parse(config.Numerical1);
                noticeShowHorse = int.Parse(config.Numerical2);
            }
            config = Config.Instance.Get<FuncConfigConfig>("FairyGrabBossNoticeSessions");
            noticeSessions = 2;
            if (config != null)
            {
                noticeSessions = int.Parse(config.Numerical1);
            }
        }
        public bool TryGetDropItems(int bossId, out List<Item> dropItems)
@@ -697,7 +703,8 @@
                DailyQuestOpenTime dailyQuestOpenTime;
                if (dailyQuestModel.TryGetOpenTime((int)DailyQuestType.FairyGrabBoss, out dailyQuestOpenTime))
                {
                    return FuncOpen.Instance.IsFuncOpen(139) && !dailyQuestOpenTime.IsAfterFirstOpen();
                    return FuncOpen.Instance.IsFuncOpen(139)
                        && dailyQuestOpenTime.PassSessionCount(TimeUtility.createRoleTime) < noticeSessions;
                }
                return false;
            }
@@ -715,17 +722,20 @@
        bool cacheNoticeOpen { get; set; }
        int noticeSessions { get; set; }
        public event Action<int> onStateUpate;
        public int GetFirstOpenSeconds()
        public int GetNextSessionSeconds()
        {
            int seconds = 0;
            if (!InActivityTime)
            if (!IsOpen)
            {
                DailyQuestOpenTime dailyQuestOpenTime;
                if (dailyQuestModel.TryGetOpenTime((int)DailyQuestType.FairyGrabBoss, out dailyQuestOpenTime))
                {
                    seconds = dailyQuestOpenTime.GetFirstOpenSurplusSeconds();
                }
                return 0;
            }
            DailyQuestOpenTime dailyQuestOpenTime;
            if (dailyQuestModel.TryGetOpenTime((int)DailyQuestType.FairyGrabBoss, out dailyQuestOpenTime))
            {
                seconds = dailyQuestOpenTime.GetNextSessionSurplusTime();
            }
            return seconds;
        }
System/FairyAu/FairyGrabBossNoticeWin.cs
@@ -77,7 +77,7 @@
        void DisplayTime()
        {
            var seconds = model.GetFirstOpenSeconds();
            var seconds = model.GetNextSessionSeconds();
            var isOpen = model.IsOpen;
            if (seconds > 0)
            {
System/HeavenBattle/HeavenBattleModel.cs
@@ -11,12 +11,8 @@
{
    public const int HEAVEBATTLE_MAPID = 31010;
    public const int HEAVEBATTLE_TargetID = 38;
    public const int HEAVEBATTLE_START = 1;
    public const int HeavenBattleDailyId = 14;
    List<DungeonStateTimeConfig> prepareConfiglist;
    DailyQuestConfig dailyConfig;
    public HeavenBattleState heavenBattleState { get; private set; }
    Dictionary<DayOfWeek,WeekTime> heavenBattleWeekTimeDict = new Dictionary<DayOfWeek,WeekTime>();
    public Dictionary<int,List<XMZZVictoryRewardInfo>> heavenAwardDict { get; private set; }
    public Dictionary<int, ItemCellModel> campVicRewardDict { get; private set; }
    public Dictionary<int, ItemCellModel> campFailRewardDict { get; private set; }
@@ -49,24 +45,6 @@
    public override void Init()
    {
        heavenBattleWeekTimeDict.Clear();
        prepareConfiglist = DungeonStateTimeConfig.DungeonStateTimelist(HEAVEBATTLE_MAPID, HEAVEBATTLE_START);
        for(int i = 0; i < prepareConfiglist.Count;i++)
        {
           DungeonStateTimeConfig  prepareConfig = prepareConfiglist[i];
            WeekTime weekTime1 = new WeekTime(prepareConfig.StartWeekday, prepareConfig.StartHour
           , prepareConfig.StartMinute, prepareConfig.EndHour, prepareConfig.EndMinute);
            DayOfWeek dayOfWeek = (DayOfWeek)(prepareConfig.StartWeekday % 7);
            if(!heavenBattleWeekTimeDict.ContainsKey(dayOfWeek))
            {
                heavenBattleWeekTimeDict.Add(dayOfWeek, weekTime1);
            }
            else
            {
                heavenBattleWeekTimeDict[dayOfWeek] = weekTime1;
            }
        }
        FuncConfigConfig heavenAwardConfig = Config.Instance.Get<FuncConfigConfig>("XMZZAward");
        JsonData xmzzVicRewardData = JsonMapper.ToObject(heavenAwardConfig.Numerical1);
        heavenAwardDict = new Dictionary<int, List<XMZZVictoryRewardInfo>>();
@@ -189,7 +167,7 @@
        {
            if(dailyQuestModel.GetQuestState(dailyConfig.ID) != DailyQuestModel.DailyQuestState.OutTime)
            {
                if (!WindowCenter.Instance.IsOpen<HeavenBattleWin>())
                if (!WindowCenter.Instance.IsOpen<HeavenBattleWin>() && GetActivityRemainTime() > 0)
                {
                    var config = Config.Instance.Get<DailyQuestConfig>(dailyConfig.ID);
                    dungeonModel.currentDungeon = new Dungeon(config.RelatedID, 0);
@@ -348,40 +326,38 @@
    #endregion
    public HeavenBattleState GetXMZZState()
    {
        heavenBattleState = HeavenBattleState.None;
        DayOfWeek serverWeekDay = TimeUtility.ServerNow.DayOfWeek;
        if (heavenBattleWeekTimeDict.ContainsKey(serverWeekDay))
        {
            WeekTime activityEndWeek = new WeekTime(heavenBattleWeekTimeDict[serverWeekDay].dayOfWeek, heavenBattleWeekTimeDict[serverWeekDay].endHour, heavenBattleWeekTimeDict[serverWeekDay].endMinute
                , 0, 0);
            if ((WeekTime.Now - heavenBattleWeekTimeDict[serverWeekDay]).TotalSeconds >= 0
               && (activityEndWeek - WeekTime.Now).TotalSeconds >= 0)
            {
                heavenBattleState = HeavenBattleState.BattleStart;
            }
            else if ((WeekTime.Now - activityEndWeek).TotalSeconds > 0)
            {
                heavenBattleState = HeavenBattleState.BattleEnd;
            }
        }
        return heavenBattleState;
    }
    public int GetActivityRemainTime()
    {
        if (heavenBattleWeekTimeDict.ContainsKey(TimeUtility.ServerNow.DayOfWeek))
        DailyQuestOpenTime openTime = null;
        bool isActivity = dailyQuestModel.TryGetOpenTime(HeavenBattleDailyId,out openTime);
        if(isActivity)
        {
            DayOfWeek serverWeekDay = TimeUtility.ServerNow.DayOfWeek;
            List<HourMinute> hourMinutes = openTime.GetHourMinuteByWeek((int)TimeUtility.ServerNow.DayOfWeek);
            if(hourMinutes != null && hourMinutes.Count > 0)
            {
                HourMinute hourMinute = hourMinutes[0];
                DateTime endTime = new DateTime(TimeUtility.ServerNow.Year,TimeUtility.ServerNow.Month, TimeUtility.ServerNow.Day,
                    hourMinute.hourEnd,hourMinute.minuteEnd,0);
                DateTime startTime = new DateTime(TimeUtility.ServerNow.Year, TimeUtility.ServerNow.Month, TimeUtility.ServerNow.Day,
                 hourMinute.hourBegin, hourMinute.minuteBegin, 0);
                int advanceSec = Mathf.CeilToInt((float)(startTime - TimeUtility.ServerNow).TotalSeconds);
                int endSec = Mathf.CeilToInt((float)(endTime - TimeUtility.ServerNow).TotalSeconds);
                if(advanceSec > 0)
                {
                    return 0;
                }
                else if(endSec <= 0)
                {
                    return 0;
                }
                else
                {
                    return endSec;
                }
            WeekTime endTime = new WeekTime(heavenBattleWeekTimeDict[serverWeekDay].dayOfWeek, heavenBattleWeekTimeDict[serverWeekDay].endHour, heavenBattleWeekTimeDict[serverWeekDay].endMinute
                , 0, 0);
            return (int)(endTime - WeekTime.Now).TotalSeconds;
            }
        }
        return 0;
    }
System/HeavenBattle/HeavenBattleWin.cs
@@ -96,6 +96,9 @@
            //this.transform.SetAsLastSibling();
            RefreshPlayerInfoUI();
            RefreshBattleInfo(BATTLEINFO_TYPE);
            int remainTime = heavenModel.GetActivityRemainTime();
            RefreshRemainTimeText(remainTime);
            TimeDownMgr.Instance.Begin(TimeDownMgr.CoolTimeType.HeavenBattleReaminTime, remainTime, RefreshRemainTimeText);
        }
        protected override void OnPreClose()
@@ -134,10 +137,7 @@
            victoryCntlist = heavenModel.heavenAwardDict.Keys.ToList();
            rewardSlider.minValue = victoryCntlist[0];
            rewardSlider.maxValue = victoryCntlist[victoryCntlist.Count - 1];
            int remainTime = heavenModel.GetActivityRemainTime();
            RefreshRemainTimeText(remainTime);
            TimeDownMgr.Instance.Begin(TimeDownMgr.CoolTimeType.HeavenBattleReaminTime, remainTime, RefreshRemainTimeText);
            for (int i = victoryCntlist.Count - 1; i > -1; i--)
            {
                XMZZVictoryRewardInfo rewardInfo = heavenModel.heavenAwardDict[victoryCntlist[i]][0];
System/Market/MarketDealWin.cs
@@ -95,6 +95,10 @@
        private void OnRefreshQueryMarketItem()
        {
            if (model.presentItemType == -1)
            {
                return;
            }
            m_ItemController.m_Scorller.spacing = 14;
            m_ItemController.Refresh();
            List<MarketItemData> list = null;
System/Message/HrefAnalysis.cs
@@ -272,7 +272,7 @@
    }
    public static Regex EquipRegex = new Regex(@"\[([\u4e00-\u9fa5a-zA-Z0-9\|'_\(\)()\. ::]+?)\]", RegexOptions.Singleline);
    public static Regex EquipDetailRegex = new Regex("\\*([\u4e00-\u9fa5a-zA-Z0-9\\|'_\\(\\)()\\. ::\\,\\[\\]a-zA-Z\"\\{\\}]+?)\\*", RegexOptions.Singleline);
    public static Regex EquipDetailRegex = new Regex("#item#([\u4e00-\u9fa5a-zA-Z0-9\\|'_\\(\\)()\\. ::\\,\\[\\]a-zA-Z\"\\{\\}]+?)#item#", RegexOptions.Singleline);
    public bool ExcuteHrefEvent(string msg, int index = 0)
    {
System/OpenServerActivity/OpenServerActivityWin.cs
@@ -186,7 +186,7 @@
            if (cell != null)
            {
                var activityCell = cell as OpenServerActivityCell;
                var seconds = fairyGrabBossModel.GetFirstOpenSeconds();
                var seconds = fairyGrabBossModel.GetNextSessionSeconds();
                bool isOpen = fairyGrabBossModel.IsOpen;
                activityCell.title.gameObject.SetActive(seconds > 0 || isOpen);
                activityCell.title.color = UIHelper.GetUIColor(TextColType.Green, true);
@@ -282,7 +282,7 @@
                    break;
                case 13:
                    {
                        var seconds = fairyGrabBossModel.GetFirstOpenSeconds();
                        var seconds = fairyGrabBossModel.GetNextSessionSeconds();
                        bool isOpen = fairyGrabBossModel.IsOpen;
                        _cell.title.gameObject.SetActive(seconds > 0 || isOpen);
                        _cell.title.color = UIHelper.GetUIColor(TextColType.Green, true);
System/OpenServerActivity/PoolItemCell.cs
New file
@@ -0,0 +1,42 @@
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class PoolItemCell : MonoBehaviour,IDragHandler,IDropHandler
    {
        [SerializeField] CommonItemBaisc itemBaisc;
        [SerializeField] GameObject bestIconObj;
        ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
        WishingPoolModel wishingModel { get { return ModelCenter.Instance.GetModel<WishingPoolModel>(); } }
        int itemId = 0;
        public void OnDrag(PointerEventData eventData)
        {
            Debug.Log("拖拽开始");
            wishingModel.isDraging = true;
            wishingModel.dragItemId = itemId;
        }
        public void OnDrop(PointerEventData eventData)
        {
            Debug.Log("拖拽结束");
            wishingModel.ResetDragData();
        }
        public void Display(int itemId)
        {
            this.itemId = itemId;
            bestIconObj.SetActive(false);
            ItemCellModel cellModel = new ItemCellModel(itemId);
            itemBaisc.Init(cellModel);
            itemBaisc.cellBtn.RemoveAllListeners();
            itemBaisc.cellBtn.AddListener(()=>
            {
                ItemAttrData attrData = new ItemAttrData(itemId);
                tipsModel.SetItemTipsModel(attrData);
            });
        }
    }
}
System/OpenServerActivity/PoolItemCell.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: cfb17095c4683604ab0d6ee15f706366
timeCreated: 1539852829
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/OpenServerActivity/WishingPoolModel.cs
New file
@@ -0,0 +1,81 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class WishingPoolModel : Model,IBeforePlayerDataInitialize,IPlayerLoginOk
    {
        public override void Init()
        {
        }
        public void OnBeforePlayerDataInitialize()
        {
            ResetDragData();
            ResetPoolData();
        }
        public void OnPlayerLoginOk()
        {
            SetWishingPoolData();
        }
        public override void UnInit()
        {
        }
        #region 本地数据
        public bool isDraging { get; set; }
        public int dragItemId { get; set; }
        public void ResetDragData()
        {
            isDraging = false;
            dragItemId = 0;
        }
        #endregion
        #region 协议
        Dictionary<int, int> poolDataDict = new Dictionary<int, int>();
        public void SetWishingPoolData()
        {
            for(int i = 0; i< 8; i++)
            {
                int itemId = 10101 + i;
                poolDataDict.Add(i,itemId);
            }
        }
        Dictionary<int, int> wishingDataDict = new Dictionary<int, int>();
        public void SetWishingData(int index,int id)
        {
            if(!wishingDataDict.ContainsKey(index))
            {
                wishingDataDict.Add(index,id);
            }
            else
            {
                wishingDataDict[index] = id;
            }
        }
        public bool TryGetPoolDataByIndex(int index,out int id)
        {
           return  poolDataDict.TryGetValue(index,out id);
        }
        public bool TryGetWishDataByIndex(int index, out int id)
        {
            return wishingDataDict.TryGetValue(index, out id);
        }
        #endregion
        public void ResetPoolData()
        {
            poolDataDict.Clear();
            wishingDataDict.Clear();
        }
    }
}
System/OpenServerActivity/WishingPoolModel.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 15695b2ce757fe2489989e1c5b8112c2
timeCreated: 1539851881
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/OpenServerActivity/WishingPoolWin.cs
New file
@@ -0,0 +1,129 @@
using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;
using System;
namespace Snxxz.UI
{
    public class WishingPoolWin : Window
    {
        [SerializeField] DragItem dragItem;
        [SerializeField] List<PoolItemCell> poolItemCells = new List<PoolItemCell>();
        [SerializeField] List<WishingCell> wishingCells = new List<WishingCell>();
        ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
        WishingPoolModel wishingModel { get { return ModelCenter.Instance.GetModel<WishingPoolModel>(); } }
        #region Built-in
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
        }
        protected override void OnPreOpen()
        {
        }
        protected override void OnAfterOpen()
        {
        }
        protected override void OnPreClose()
        {
        }
        protected override void OnAfterClose()
        {
        }
        #endregion
        private void Display()
        {
            UpdatePoolItem();
            for(int i = 0; i < wishingCells.Count; i++)
            {
                UpdateWishItemByIndex(i);
            }
        }
        protected override void LateUpdate()
        {
           if(wishingModel.isDraging)
            {
            }
        }
        private void UpdatePoolItem()
        {
            for (int i = 0; i < poolItemCells.Count; i++)
            {
                UpdatePoolItemByIndex(i);
            }
        }
        private void UpdatePoolItemByIndex(int index)
        {
            int id = 0;
            var poolItemCell = poolItemCells[index];
            bool isPoolData = wishingModel.TryGetPoolDataByIndex(index, out id);
            if (isPoolData)
            {
                poolItemCell.gameObject.SetActive(true);
                poolItemCell.Display(id);
            }
            else
            {
                poolItemCell.gameObject.SetActive(false);
            }
        }
        private void UpdateWishItemByIndex(int index)
        {
            int id = 0;
            var wishCell = wishingCells[index];
            bool isWishData = wishingModel.TryGetWishDataByIndex(index, out id);
            if (isWishData)
            {
                wishCell.itemBaisc.gameObject.SetActive(true);
                wishCell.noneItemObj.gameObject.SetActive(false);
                ItemCellModel cellModel = new ItemCellModel(id);
                wishCell.itemBaisc.Init(cellModel);
                wishCell.itemBaisc.cellBtn.RemoveAllListeners();
                wishCell.itemBaisc.cellBtn.AddListener(() =>
                {
                    ItemAttrData attrData = new ItemAttrData(id);
                    tipsModel.SetItemTipsModel(attrData);
                });
            }
            else
            {
                wishCell.itemBaisc.gameObject.SetActive(false);
                wishCell.noneItemObj.gameObject.SetActive(true);
            }
        }
        [Serializable]
        public class WishingCell
        {
            public CommonItemBaisc itemBaisc;
            public GameObject noneItemObj;
            public Button noneItemBtn;
        }
        [Serializable]
        public class DragItem
        {
            [SerializeField] CommonItemBaisc dragItemBasic;
            [SerializeField] GameObject dragBestIcon;
        }
    }
}
System/OpenServerActivity/WishingPoolWin.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: c258b8a747a14734ea67448bf5870305
timeCreated: 1539851707
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/RuneTower/RunePreviewBehaviour.cs
@@ -31,8 +31,23 @@
        private void PreView()
        {
            var config = Config.Instance.Get<RuneConfig>(runeId);
            if (config == null)
            {
                return;
            }
            var towerFloorConfig = Config.Instance.Get<RuneTowerFloorConfig>(config.TowerID);
            if (towerFloorConfig == null)
            {
                return;
            }
            var runeTowerConfig = Config.Instance.Get<RuneTowerConfig>(towerFloorConfig.TowerId);
            if (runeTowerConfig == null)
            {
                return;
            }
            var runeModel = ModelCenter.Instance.GetModel<RuneModel>();
            var propertyValue = runeModel.GetRuneAttrStr(runeId, 1);
System/Welfare/AwardExchangeWin.cs
@@ -10,6 +10,8 @@
        [SerializeField] InputField input;
        [SerializeField] Button receiveBtn;
        const string exchangeUrl = "http://center.2460web.com:53003/Coupon/CouponCode.php?";
        bool isCool = false;
        float time = 0;
        protected override void BindController()
        {
@@ -22,6 +24,8 @@
        protected override void OnPreOpen()
        {
            time = 0;
            isCool = false;
            InitUI();
        }
        protected override void OnAfterOpen()
@@ -39,6 +43,19 @@
         
        }
        protected override void LateUpdate()
        {
            if(isCool)
            {
                time += Time.deltaTime;
                if(time >= 3)
                {
                    time = 0;
                    isCool = false;
                }
            }
        }
        private void InitUI()
        {
            input.text = string.Empty;
@@ -46,6 +63,8 @@
        private void ClickRecevieBtn()
        {
            if (isCool) return;
            string passward = input.text;
            if(string.IsNullOrEmpty(passward))
            {
@@ -54,6 +73,7 @@
            }
            else
            {
                isCool = true;
                var tables = new Dictionary<string, string>();
                tables["channel"] = VersionConfig.Get().appId;
                tables["code"] = passward;
@@ -61,8 +81,19 @@
                tables["sid"] = ServerListCenter.Instance.currentServer.region_flag.ToString();
                tables["pushurl"] = ServerListCenter.Instance.currentServer.region_domain;
                tables["spid"] = VersionConfig.Get().SpID;
                tables["roleid"] = UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName);
                tables["level"] = PlayerDatas.Instance.baseData.LV.ToString();
                tables["viplevel"] = PlayerDatas.Instance.baseData.VIPLv.ToString();
                HttpRequest.Instance.RequestHttpGet(StringUtility.Contact(exchangeUrl, HttpRequest.HashtablaToString(tables)), HttpRequest.defaultHttpContentType, 1, null);
            }
            if(passward.Length > 1)
            {
                string wxCode = passward.Substring(0, 2);
                if (wxCode == "wx")
                {
                    WindowCenter.Instance.CloseImmediately<WelfareWin>();
                }
            }
        }
    }
}
Utility/LanguageVerify.cs
@@ -162,7 +162,8 @@
            return;
        }
        var account = ModelCenter.Instance.GetModel<LoginModel>().sdkLoginResult.account;
        var sdkLoginResult = ModelCenter.Instance.GetModel<LoginModel>().sdkLoginResult;
        var account = sdkLoginResult == null ? string.Empty : sdkLoginResult.account;
        var playerId = PlayerDatas.Instance.baseData.PlayerID;
        var playerName = PlayerDatas.Instance.baseData.PlayerName;
        var ts = System.DateTime.UtcNow - new System.DateTime(1970, 1, 1, 0, 0, 0, 0);