少年修仙传客户端代码仓库
client_Wu Xijin
2018-08-30 426af3b08821d36018e04a29ada04b06bc63156c
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
4个文件已添加
15个文件已修改
585 ■■■■ 已修改文件
Core/GameEngine/DataToCtl/PackageRegedit.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA16_tagMCSuperGiftInfo.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA16_tagMCSuperGiftInfo.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA16_tagMCSuperGiftInfo.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA16_tagMCSuperGiftInfo.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/BlastFurnace/GetItemPathModel.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Chat/ChatCenter.cs 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyGrabBossModel.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/PlayerFairyAuTreasureData.cs 154 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/WarehouseTipsWin.cs 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Message/RichMoveEvent.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/OSGiftBehaviour.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/OSGiftModel.cs 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/OpenServerGiftWin.cs 61 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/TreasureFindHost/ReciveConditionCell.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/TreasureFindHost/TreasureFindHostModel.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/TreasureFindHost/TreasureFindHostWin.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/LimitedTimePackageWin.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowJump/WindowJumpMgr.cs 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/DataToCtl/PackageRegedit.cs
@@ -11,6 +11,7 @@
    public static void Init()
    {
        // 登记相应的数据体及对应的数据转逻辑类
        Register(typeof(HAA16_tagMCSuperGiftInfo), typeof(DTCAA16_tagMCSuperGiftInfo));
        Register(typeof(HAC10_tagGCAllFamilyBossHurtInfoList), typeof(DTCAC10_tagGCAllFamilyBossHurtInfoList));
        Register(typeof(HA715_tagMCFamilyBossHurtList), typeof(DTCA715_tagMCFamilyBossHurtList));
        Register(typeof(HAB04_tagMCBossRebornInfo), typeof(DTCAB04_tagMCBossRebornInfo));
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA16_tagMCSuperGiftInfo.cs
New file
@@ -0,0 +1,23 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Thursday, August 30, 2018
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using Snxxz.UI;
public class DTCAA16_tagMCSuperGiftInfo : DtcBasic {
    public override void Done(GameNetPackBasic vNetPack)
    {
        base.Done(vNetPack);
        var package = vNetPack as HAA16_tagMCSuperGiftInfo;
        ModelCenter.Instance.GetModel<OSGiftModel>().UpdateTime(package);
    }
}
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA16_tagMCSuperGiftInfo.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 202ec0a13d751474ab11e14b107c5178
timeCreated: 1535599736
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA16_tagMCSuperGiftInfo.cs
New file
@@ -0,0 +1,19 @@
using UnityEngine;
using System.Collections;
// AA 16 通知超值礼包信息 #tagMCSuperGiftInfo
public class HAA16_tagMCSuperGiftInfo : GameNetPackBasic {
    public uint GiftID;    //商品ID
    public byte RemainDay;    //剩余天数
    public HAA16_tagMCSuperGiftInfo () {
        _cmd = (ushort)0xAA16;
    }
    public override void ReadFromBytes (byte[] vBytes) {
        TransBytes (out GiftID, vBytes, NetDataType.DWORD);
        TransBytes (out RemainDay, vBytes, NetDataType.BYTE);
    }
}
Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA16_tagMCSuperGiftInfo.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 9eb5c2d3bd7e1c44dbe9549eb0f3fd8a
timeCreated: 1535599707
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/BlastFurnace/GetItemPathModel.cs
@@ -208,12 +208,19 @@
        switch(itemWaysModel.ID)
        {
            case 38:
                ModelCenter.Instance.GetModel<PlayerFairyAuTreasureData>().JumpItemID = itemId;
                SetUnionWarehouseGetWay();
                break;
        }
        WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)itemWaysModel.OpenpanelId);
    }
    public void SetUnionWarehouseGetWay()
    {
        var model1 = ModelCenter.Instance.GetModel<PlayerFairyAuTreasureData>();
        var model2 = ModelCenter.Instance.GetModel<TreasureFindHostModel>();
        model1.JumpItemID = model2.adviceIdlist;
    }
    #region 设置弹框位置
    private RectTransform infoTip = null;
    private RectTransform waysTip = null;
System/Chat/ChatCenter.cs
@@ -23,6 +23,7 @@
            VoiceHttpRequest.Instance.samplesDecodecComplete += SamplesDecodecComplete;
            WindowCenter.Instance.windowAfterOpenEvent += WindowAfterOpenEvent;
            StageManager.Instance.onStageLoadFinish += OnStageLoadFinish;
            PlayerRealmData.OnPlayerCollectEnd += OnPlayerCollectEnd;
        }
        public override void UnInit()
@@ -160,6 +161,11 @@
            if (!isDungeon)
            {
                ClearAllVoice();
                openChatAfterCollect = false;
            }
            if (PlayerDatas.Instance.baseData.MapID != 31230)
            {
                openChatAfterCollect = false;
            }
        }
@@ -694,6 +700,10 @@
        private void WindowAfterOpenEvent(Window win)
        {
            CheckChatFloatOpen();
            if (win is MainInterfaceWin)
            {
                CheckOpenChatAfterCollect();
            }
        }
        private void CheckChatFloatOpen()
@@ -716,6 +726,44 @@
        }
        #endregion
        #region 仙盟宴会采集完后打开聊天界面
        bool openChatAfterCollect = false;
        private void OnPlayerCollectEnd(int playerId, byte type)
        {
            if (playerId == PlayerDatas.Instance.baseData.PlayerID
                && type == 0 && PlayerDatas.Instance.baseData.MapID == 31230)
            {
                openChatAfterCollect = true;
            }
            CheckOpenChatAfterCollect();
        }
        void CheckOpenChatAfterCollect()
        {
            if (!openChatAfterCollect)
            {
                return;
            }
            if (PlayerDatas.Instance.baseData.MapID != 31230)
            {
                return;
            }
            if (!WindowCenter.Instance.Open<MainInterfaceWin>()
                || WindowCenter.Instance.ExitAnyFullScreenOrMaskWin()
                || StageManager.Instance.isLoading
                || NewBieCenter.Instance.inGuiding)
            {
                return;
            }
            openChatAfterCollect = false;
            if (!WindowCenter.Instance.CheckOpen<ChatWin>())
            {
                ChatCtrl.Inst.presentChatType = ChatInfoType.Fairy;
                WindowCenter.Instance.Open<ChatWin>();
            }
        }
        #endregion
    }
}
System/FairyAu/FairyGrabBossModel.cs
@@ -93,6 +93,7 @@
            GA_Hero.OnEnterOrExitArea += OnEnterOrExitArea;
            GAMgr.Instance.OnFightNpcRequest += OnFightNpcUpdate;
            GAMgr.Instance.OnFightNpcRelease += OnFightNpcUpdate;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent;
        }
        public void OnBeforePlayerDataInitialize()
@@ -112,6 +113,15 @@
            GA_Hero.OnEnterOrExitArea -= OnEnterOrExitArea;
            GAMgr.Instance.OnFightNpcRequest -= OnFightNpcUpdate;
            GAMgr.Instance.OnFightNpcRelease -= OnFightNpcUpdate;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= PlayerDataRefreshInfoEvent;
        }
        private void PlayerDataRefreshInfoEvent(PlayerDataRefresh refreshType)
        {
            if (refreshType == PlayerDataRefresh.FBID)
            {
                RecheckGrabBoss();
            }
        }
        private void OnEnterOrExitArea(MapArea.E_Type type, bool arg1)
System/FairyAu/PlayerFairyAuTreasureData.cs
@@ -48,25 +48,40 @@
    public Dictionary<int, FamilyStoreItem> _DicfamilyStoreItem = new Dictionary<int, FamilyStoreItem>();//家族仓库物品信息
    public   List<FamilyActionInfoClass> _InformationList = new List<FamilyActionInfoClass>();
    public List<FamilyActionInfoClass> _InformationList = new List<FamilyActionInfoClass>();
    public delegate void OnFairyAuIntegral();
    public static event OnFairyAuIntegral Event_FairyAuIntegral;//用于仙盟积分的刷新
    public delegate void OnFamilyActionInfo();
    public static event OnFamilyActionInfo Event_FamilyActionInfo;//家族行为信息的刷新
    public delegate void OnFamilyStoreItemInfo();
    public static event OnFamilyStoreItemInfo Event_FamilyStoreItemInfo;//仓库信息的刷新
    public static event Action<List<int>> Del_FamilyStoreItemInfo;//仓库信息物品的删除
    public static event Action<List<int>> Del_FamilyStoreItemInfo;//仓库信息物品的删除
    PlayerPackModel _playerPack;
    PlayerPackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PlayerPackModel>()); } }
    PackModelInterface _modelInterface;
    PackModelInterface modelInterface { get { return _modelInterface ?? (_modelInterface = ModelCenter.Instance.GetModel<PackModelInterface>()); } }
    public int _FairyAuIntegral = 0;//获取仙盟积分
    public int JumpItemID = 0;//
    public List<int> JumpItemID = new List<int>();//从跳转到仙盟仓库需要选中高亮
    List<int> EquipmentList = new List<int>();//关于装备位置
    public bool IsShowPoint = false;//是否显示红点
    private const int Redpoint_key1 = 1070103;
    public Redpoint redPointStre1 = new Redpoint(10701, Redpoint_key1);//仙盟仓库红点
    public override void Init()
    {
        var funConfig = Config.Instance.Get<FuncConfigConfig>("StrengthenDisplay");
        int[] List = ConfigParse.GetMultipleStr<int>(funConfig.Numerical1);
        EquipmentList.Clear();
        for (int i = 0; i < List.Length; i++)
        {
            EquipmentList.Add(List[i]);
        }
    }
    public override void UnInit()
    {
    {
    }
    public void OnBeforePlayerDataInitialize()
@@ -76,8 +91,14 @@
    }
    public void OnPlayerLoginOk()
    {
        PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= Updatefighting;//数据的刷新(h0418)
        PlayerDatas.Instance.PlayerDataRefreshInfoEvent += Updatefighting;
        WarehouseTipsWin.RedPointUpdate -= RedPointUpdate;
        WarehouseTipsWin.RedPointUpdate += RedPointUpdate;
    }
    }
    public void FairyAuIntegral(int value)//获取仙盟积分
    {
        _FairyAuIntegral = value;
@@ -94,46 +115,45 @@
            FuncConfigConfig _PetFoodExchange = Config.Instance.Get<FuncConfigConfig>("PetFoodExchange");
            _FamilyStoreItemP.ItemID = int.Parse(_PetFoodExchange.Numerical1);
            _DicfamilyStoreItem.Add(0, _FamilyStoreItemP);
        }
        }
        for (int i = 0; i < info.Count; i++)
        {
            if (_DicfamilyStoreItem.ContainsKey(info.StoreItemList[i].Index + 1))
                continue;
            FamilyStoreItem _FamilyStoreItem = new FamilyStoreItem();
            _FamilyStoreItem.ItemData = JsonUtility.FromJson<FamilyStoreItem.ItemJsonData>(info.StoreItemList[i].ItemData);
            _FamilyStoreItem.Index = info.StoreItemList[i].Index+1;
            _FamilyStoreItem.Index = info.StoreItemList[i].Index + 1;
            _FamilyStoreItem.ItemID = (int)info.StoreItemList[i].ItemID;
            _FamilyStoreItem._UserData = ConfigParse.Analysis(_FamilyStoreItem.ItemData.UserData);
            _DicfamilyStoreItem.Add((int)info.StoreItemList[i].Index+1, _FamilyStoreItem);
        }
        if (Event_FamilyStoreItemInfo != null)
            Event_FamilyStoreItemInfo();
            _DicfamilyStoreItem.Add((int)info.StoreItemList[i].Index + 1, _FamilyStoreItem);
        }
        if (Event_FamilyStoreItemInfo != null)
        {
            Event_FamilyStoreItemInfo();
        }
        IsShowRedPoint();
    }
    List<int> List = new List<int>();
    public void WarehouseToRefresh(byte [] _list)//仓库刷新
    public void WarehouseToRefresh(byte[] _list)//仓库刷新
    {
        List.Clear();
        for (int i = 0; i < _list.Length; i++)
        {
            List.Add(_list[i]+1);
            List.Add(_list[i] + 1);
        }
        if (Del_FamilyStoreItemInfo != null)
        {
            Del_FamilyStoreItemInfo(List);
        }
        IsShowRedPoint();
    }
    public void FamilyStoreDel(int _index ,int ClearType)//家族仓库物品删除(清除的格子索引, 仅单格子清除时有效,从0开始代表第一格,0-单格子清除; 1-所有物品清除)
    public void FamilyStoreDel(int _index, int ClearType)//家族仓库物品删除(清除的格子索引, 仅单格子清除时有效,从0开始代表第一格,0-单格子清除; 1-所有物品清除)
    {
        if (_DicfamilyStoreItem.ContainsKey(_index + 1) && ClearType==0)
        if (_DicfamilyStoreItem.ContainsKey(_index + 1) && ClearType == 0)
        {
            _DicfamilyStoreItem.Remove(_index + 1);
        }
@@ -148,7 +168,7 @@
                _FamilyStoreItemP.ItemID = int.Parse(_PetFoodExchange.Numerical1);
                _DicfamilyStoreItem.Add(0, _FamilyStoreItemP);
            }
        }
        }
    }
    public void FamilyActionInfo(HA403_tagGCFamilyActionInfo info)//接收家族行为信息
@@ -159,20 +179,96 @@
            FamilyActionInfoClass _FamilyActionInfoClass = new FamilyActionInfoClass();
            _FamilyActionInfoClass.FamilyID = (int)info.FamilyID;
            _FamilyActionInfoClass.ActionType = (int)info.ActionType;
            _FamilyActionInfoClass.Time =(int)info.FamilyActionList[i].Time;
            _FamilyActionInfoClass.Time = (int)info.FamilyActionList[i].Time;
            _FamilyActionInfoClass.Name = info.FamilyActionList[i].Name;
            _FamilyActionInfoClass.OperationType = (int)info.FamilyActionList[i].Value1;
            _FamilyActionInfoClass.PlayerID = (int)info.FamilyActionList[i].Value2;
            _FamilyActionInfoClass.ItemID = (int)info.FamilyActionList[i].Value3;
            _FamilyActionInfoClass.ItemData = JsonUtility.FromJson<FamilyActionInfoClass.ItemJsonData>(info.FamilyActionList[i].UseData);
            _FamilyActionInfoClass._UserData = ConfigParse.Analysis(_FamilyActionInfoClass.ItemData.UserData);
            _InformationList.Add(_FamilyActionInfoClass);
            _InformationList.Add(_FamilyActionInfoClass);
        }
        if (Event_FamilyActionInfo != null)
            Event_FamilyActionInfo();//家族行为信息的刷新
    }
    private bool IsEquipmentComparison()
    {
        bool IsBool = false;
        SinglePackModel singlePack = playerPack.GetSinglePackModel(PackType.rptEquip);
        for (int i = 0; i < EquipmentList.Count; i++)
        {
            ItemModel ItemModel = singlePack.GetItemModelByIndex(i);
            int Type = i;
            if (ItemModel != null)
            {
                foreach (var key in _DicfamilyStoreItem.Keys)
                {
                    if (key == 0)
                    {
                        continue;
                    }
                    int ItemId = _DicfamilyStoreItem[key].ItemID;
                    var itemConfig = Config.Instance.Get<ItemConfig>(ItemId);
                    int RealmLevel = PlayerDatas.Instance.baseData.realmLevel;
                    int equipScore = modelInterface.SetEquipScore(PackType.rptEquip, ItemId, _DicfamilyStoreItem[key]._UserData);
                    if (ItemModel.chinItemModel.EquipPlace == Type && RealmLevel >= itemConfig.RealmLimit && equipScore >= ItemModel.equipScore)
                    {
                        IsBool = true;
                    }
                }
            }
            else
            {
                foreach (var key in _DicfamilyStoreItem.Keys)
                {
                    if (key == 0)
                    {
                        continue;
                    }
                    int ItemId = _DicfamilyStoreItem[key].ItemID;
                    var itemConfig = Config.Instance.Get<ItemConfig>(ItemId);
                    int RealmLevel = PlayerDatas.Instance.baseData.realmLevel;
                    if (itemConfig.EquipPlace == Type && RealmLevel >= itemConfig.RealmLimit)
                    {
                        IsBool = true;
                    }
                }
            }
        }
        return IsBool;
    }
    private void IsShowRedPoint()
    {
        int GetDayOfYear = DateTime.Now.DayOfYear;
        string strKey= "Treasure"+ PlayerDatas.Instance.baseData.LV;
        int day = LocalSave.GetInt(strKey);
        if (day != GetDayOfYear && IsEquipmentComparison())
        {
            LocalSave.SetInt(strKey, GetDayOfYear);
            IsShowPoint = true;
        }
        if (IsShowPoint)
        {
            redPointStre1.state = RedPointState.Simple;
        }
        else
        {
            redPointStre1.state = RedPointState.None;
        }
    }
    private void Updatefighting(PlayerDataRefresh obj)//刷新境界
    {
        if (obj == PlayerDataRefresh.OfficialRank)
        {
            IsShowRedPoint();
        }
    }
    private void RedPointUpdate()
    {
        IsShowRedPoint();
    }
}
System/FairyAu/WarehouseTipsWin.cs
@@ -84,6 +84,7 @@
        int _indexList = 0;//标记需要兑换的数组下标
        int _WPID = 0;//用来标记需要兑换的物品ID
        private int SpiritPetDan = 0;
        public static event Action RedPointUpdate;
        #endregion
@@ -132,15 +133,20 @@
        protected override void OnAfterOpen()
        {
            if (RedPointUpdate!=null && playerFairyAuTreasureData.IsShowPoint)
            {
                playerFairyAuTreasureData.IsShowPoint = false;
                RedPointUpdate();
            }
            _GridlineCtrl.mScrollRect.verticalNormalizedPosition = 1;
            HandleAchievement();
        }
        protected override void OnPreClose()
        {
            if (playerFairyAuTreasureData.JumpItemID != 0)
            if (playerFairyAuTreasureData.JumpItemID!=null && playerFairyAuTreasureData.JumpItemID.Count>0)
            {
                playerFairyAuTreasureData.JumpItemID = 0;
                playerFairyAuTreasureData.JumpItemID.Clear();
            }
        }
@@ -1021,36 +1027,41 @@
            int Color = 0;//颜色
            int Star = 0;//颜色
            int EquipPlace = 0;//装备位置
            if (playerFairyAuTreasureData.JumpItemID == 0)
            if (playerFairyAuTreasureData.JumpItemID==null || playerFairyAuTreasureData.JumpItemID.Count <= 0)
            {
                return;
            }
            int ItemId = playerFairyAuTreasureData.JumpItemID;
            var itemconfig = Config.Instance.Get<ItemConfig>(ItemId);
            if (itemconfig.EquipPlace == 0 && itemconfig.EquipPlace > 10)
            for (int i = 0; i < playerFairyAuTreasureData.JumpItemID.Count; i++)
            {
                return;
            }
            Order = itemconfig.LV;
            Color = itemconfig.ItemColor;
            Star = itemconfig.StarLevel;
            EquipPlace = itemconfig.EquipPlace;
            foreach (var key in playerFairyAuTreasureData._DicfamilyStoreItem.Keys)
            {
                var Item_ID = playerFairyAuTreasureData._DicfamilyStoreItem[key].ItemID;
                var item_config = Config.Instance.Get<ItemConfig>(Item_ID);
                if (item_config==null && item_config.EquipPlace == 0 && item_config.EquipPlace > 10)
                int ItemId = playerFairyAuTreasureData.JumpItemID[i];
                var itemconfig = Config.Instance.Get<ItemConfig>(ItemId);
                if (itemconfig.EquipPlace == 0 && itemconfig.EquipPlace > 10)
                {
                    continue;
                    return;
                }
                if (item_config.LV >= Order && item_config.ItemColor >= Color
                    && item_config.StarLevel >= Star && EquipPlace == item_config.EquipPlace
                    && PlayerDatas.Instance.baseData.Job == item_config.JobLimit / 100)
                Order = itemconfig.LV;
                Color = itemconfig.ItemColor;
                Star = itemconfig.StarLevel;
                EquipPlace = itemconfig.EquipPlace;
                foreach (var key in playerFairyAuTreasureData._DicfamilyStoreItem.Keys)
                {
                    DicHighlight.Add(key,1);
                    var Item_ID = playerFairyAuTreasureData._DicfamilyStoreItem[key].ItemID;
                    var item_config = Config.Instance.Get<ItemConfig>(Item_ID);
                    if (item_config == null && item_config.EquipPlace == 0 && item_config.EquipPlace > 10)
                    {
                        continue;
                    }
                    if (item_config.LV >= Order && item_config.ItemColor >= Color
                        && item_config.StarLevel >= Star && EquipPlace == item_config.EquipPlace
                        && PlayerDatas.Instance.baseData.Job == item_config.JobLimit / 100)
                    {
                        if (!DicHighlight.ContainsKey(key))
                        {
                            DicHighlight.Add(key, 1);
                        }
                    }
                }
            }
            }
        }
        private void ClearItemID(int Index)
System/Message/RichMoveEvent.cs
@@ -45,6 +45,12 @@
            case RichTextEventEnum.MOVENPC:
                {
                    int id = int.Parse(href.mSplits["movenpc"]);
                    var error = 0;
                    if (MoveNpcLimit(id, out error))
                    {
                        ProcessMoveNpcError(error);
                        return false;
                    }
                    GA_Hero hero = PlayerDatas.Instance.hero;
                    if (hero != null)
                    {
@@ -217,4 +223,27 @@
        pos.y = _hero.Pos.y;
        _hero.MoveToPosition(pos);
    }
    private bool MoveNpcLimit(int npcId, out int error)
    {
        error = 0;
        var _fairyGrabBossModel = ModelCenter.Instance.GetModel<FairyGrabBossModel>();
        if (_fairyGrabBossModel.bosses.Contains(npcId)
            && !_fairyGrabBossModel.InActivityTime)
        {
            error = 1;
            return true;
        }
        return false;
    }
    void ProcessMoveNpcError(int error)
    {
        switch (error)
        {
            case 1:
                SysNotifyMgr.Instance.ShowTip("FairyGrabBossUnOpen");
                break;
        }
    }
}
System/OpenServerActivity/OSGiftBehaviour.cs
@@ -38,6 +38,8 @@
            }
        }
        OSGiftModel giftModel { get { return ModelCenter.Instance.GetModel<OSGiftModel>(); } }
        private int storeId = 0;
        private void Awake()
@@ -164,6 +166,11 @@
                    return;
                case StoreFunc.OSGift:
                    {
                        if (giftModel.IsGiftOverdue(_storeConfig.ID))
                        {
                            SysNotifyMgr.Instance.ShowTip("ActiveOutTime");
                            return;
                        }
                        ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),
                        Language.Get("OSTimeLimitGiftConfirm", _storeConfig.MoneyNumber), (bool isOk) =>
                        {
System/OpenServerActivity/OSGiftModel.cs
@@ -31,6 +31,7 @@
        }
        public event Action<int> onStateUpate;
        public event Action timeLimitUpdate;
        public bool activate { get; private set; }
@@ -74,6 +75,31 @@
            }
        }
        public int timeOverdueGiftId { get; private set; }
        public DateTime overDueTime = DateTime.Now;
        public bool allOverdue { get; private set; }
        public void UpdateTime(HAA16_tagMCSuperGiftInfo package)
        {
            timeOverdueGiftId = (int)package.GiftID;
            var _time = new DateTime(TimeUtility.Year, TimeUtility.Month, TimeUtility.Day, 0, 0, 0);
            overDueTime = _time.AddDays(package.RemainDay);
            allOverdue = package.RemainDay == 0;
            bool _activate = CheckActivate();
            if (activate != _activate)
            {
                activate = _activate;
                if (onStateUpate != null)
                {
                    onStateUpate(6);
                }
            }
            if (timeLimitUpdate != null)
            {
                timeLimitUpdate();
            }
            UpdateRedpoint();
        }
        private void FirstChargeRewardEvent()
        {
            bool _activate = CheckActivate();
@@ -95,15 +121,48 @@
            {
                return false;
            }
            if (allOverdue)
            {
                return false;
            }
            List<StoreConfig> _list = null;
            StoreConfig.TryGetStoreConfigs((int)StoreFunc.OSGift,out _list);
            for (int i = 0; i < _list.Count; i++)
            {
                if (IsGiftOverdue(_list[i].ID))
                {
                    continue;
                }
                var _limit = storeModel.GetBuyShopLimit((uint)_list[i].ID);
                if (_limit == null || _limit.BuyCnt < _list[i].PurchaseNumber[0])
                {
                    return true;
                }
            }
            return false;
        }
        public bool IsGiftOverdue(int _id)
        {
            if (allOverdue || _id < timeOverdueGiftId)
            {
                return true;
            }
            if (_id == timeOverdueGiftId)
            {
                return TimeUtility.ServerNow >= overDueTime;
            }
            return false;
        }
        public bool IsGiftBuy(int _id)
        {
            var _limit = storeModel.GetBuyShopLimit((uint)_id);
            var config = Config.Instance.Get<StoreConfig>(_id);
            if (_limit != null && config != null
                && _limit.BuyCnt >= config.PurchaseNumber[0])
            {
                return true;
            }
            return false;
        }
@@ -123,8 +182,10 @@
        public void OnBeforePlayerDataInitialize()
        {
            allOverdue = false;
            timeOverdueGiftId = 0;
        }
        public void SetDayRemind()
        {
            if (OSGiftRedpoint.state == RedPointState.Simple)
System/OpenServerActivity/OpenServerGiftWin.cs
@@ -17,7 +17,9 @@
        [SerializeField] RectTransform m_ContainerDisplay;
        [SerializeField] Button[] m_CloseBtns;
        [SerializeField] OSGiftBehaviour[] m_OSGifts;
        [SerializeField] RectTransform m_ContainerTime;
        [SerializeField] Text m_Overdue;
        [SerializeField] Text m_Timer;
        StoreModel m_Model;
        StoreModel model
        {
@@ -26,6 +28,8 @@
                return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<StoreModel>());
            }
        }
        int currentSelectId = 0;
        OSGiftModel giftModel { get { return ModelCenter.Instance.GetModel<OSGiftModel>(); } }
        #region Built-in
@@ -46,6 +50,9 @@
            WindowCenter.Instance.windowAfterOpenEvent += WindowAfterOpenEvent;
            WindowCenter.Instance.windowAfterCloseEvent += windowAfterCloseEvent;
            model.RefreshBuyShopLimitEvent += RefreshBuyShopLimitEvent;
            TimeUtility.OnServerOpenDayRefresh += OnServerOpenDayRefresh;
            GlobalTimeEvent.Instance.secondEvent += SecondEvent;
            giftModel.timeLimitUpdate += TimeLimitUpdate;
            giftModel.SetDayRemind();
            Display();
@@ -61,6 +68,9 @@
            WindowCenter.Instance.windowAfterOpenEvent -= WindowAfterOpenEvent;
            WindowCenter.Instance.windowAfterCloseEvent -= windowAfterCloseEvent;
            model.RefreshBuyShopLimitEvent -= RefreshBuyShopLimitEvent;
            TimeUtility.OnServerOpenDayRefresh -= OnServerOpenDayRefresh;
            GlobalTimeEvent.Instance.secondEvent -= SecondEvent;
            giftModel.timeLimitUpdate -= TimeLimitUpdate;
        }
        protected override void OnAfterClose()
@@ -89,6 +99,38 @@
            Display();
        }
        private void OnServerOpenDayRefresh()
        {
            Display();
        }
        private void SecondEvent()
        {
            DisplayTimer();
        }
        private void TimeLimitUpdate()
        {
            DisplayTimer();
        }
        void DisplayTimer()
        {
            var seconds = (int)(giftModel.overDueTime - TimeUtility.ServerNow).TotalSeconds;
            if (giftModel.allOverdue || giftModel.IsGiftOverdue(currentSelectId) || seconds <= 0)
            {
                m_ContainerTime.gameObject.SetActive(false);
                m_Overdue.gameObject.SetActive(true);
            }
            else
            {
                m_ContainerTime.gameObject.SetActive(true);
                m_Overdue.gameObject.SetActive(false);
                m_Timer.text = TimeUtility.SecondsToDHMSCHS(seconds);
                m_Timer.color = UIHelper.GetUIColor(TextColType.Green);
            }
        }
        private void Display()
        {
            List<StoreConfig> _list = null;
@@ -96,13 +138,17 @@
            var _index = 0;
            for (int i = 0; i < _list.Count; i++)
            {
                var _storeConfig = Config.Instance.Get<StoreConfig>(_list[i].ID);
                var _limit = model.GetBuyShopLimit((uint)_list[i].ID);
                if (_limit == null || _limit.BuyCnt < _storeConfig.PurchaseNumber[0])
                if (!giftModel.IsGiftOverdue(_list[i].ID))
                {
                    _index = i;
                    m_OSGifts[i].Display(_list[i].ID);
                    break;
                    var _storeConfig = Config.Instance.Get<StoreConfig>(_list[i].ID);
                    var _limit = model.GetBuyShopLimit((uint)_list[i].ID);
                    if (_limit == null || _limit.BuyCnt < _storeConfig.PurchaseNumber[0])
                    {
                        _index = i;
                        currentSelectId = _list[i].ID;
                        m_OSGifts[i].Display(_list[i].ID);
                        break;
                    }
                }
                _index = i;
            }
@@ -110,6 +156,7 @@
            {
                m_OSGifts[i].gameObject.SetActive(_index == i);
            }
            DisplayTimer();
        }
        private void OnCloseClick()
System/TreasureFindHost/ReciveConditionCell.cs
@@ -118,6 +118,7 @@
                    receivedImg.SetActive(false);
                    receiveBtn.AddListener(() =>
                    {
                        hostModel.SetAdviceIdlist(adviceIdlist);
                        ItemAttrData attrData = new ItemAttrData(adviceIdlist[0], true, 0, -1, 0, true, PackType.rptDeleted, "", null, ItemTipChildType.GetEquipPath);
                        tipsModel.SetItemTipsModel(attrData, false);
                        if (tipsModel.compareAttrData != null)
System/TreasureFindHost/TreasureFindHostModel.cs
@@ -340,6 +340,21 @@
            return false;
        }
        public int SelectTreasureId { get; private set; }
        public void SetSelectTreasureId(int treasureId)
        {
            SelectTreasureId = treasureId;
        }
        public List<int> adviceIdlist = new List<int>();
        public void SetAdviceIdlist(List<int> idlist)
        {
            if (idlist == null || idlist.Count < 1) return;
            adviceIdlist.Clear();
            adviceIdlist.AddRange(idlist);
        }
        #region 处理服务端数据
        public event Action OnCompletedAct;
        public void GetServerAwardRecord(HA348_tagMCXBXZAwardRecordList awardRecord)
System/TreasureFindHost/TreasureFindHostWin.cs
@@ -202,6 +202,7 @@
            }
            selectTreasureId = treasureId;
            hostModel.SetSelectTreasureId(treasureId);
            UI3DTreasureExhibition.Instance.BeginShowTreasure(selectTreasureId, treasureIcon);
            CreateConditionCell();
            functionOrder = index;
System/Vip/LimitedTimePackageWin.cs
@@ -50,6 +50,7 @@
        {
            OperationTimeHepler.Instance.operationTimeUpdateEvent += OperationTimeUpdateEvent;
            limitedTimePackageItemModel.UpdateLimitedTimePackageItem += UpdateLimitedTimePackageItem;
            GlobalTimeEvent.Instance.secondEvent += secondEvent;
            time = 0;
            m_Buy_Btn.interactable = true;
            DisPlay();
@@ -88,7 +89,7 @@
            if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.GiftPackage, out operationBase))
            {
                GiftPackageClass operation = operationBase as GiftPackageClass;
                m_Text_ActivityTimeTo.text = StringUtility.Contact(Language.Get("ExpActivity_Text1"), operation.ToDisplayTime());
               // m_Text_ActivityTimeTo.text = StringUtility.Contact(Language.Get("ExpActivity_Text1"), operation.ToDisplayTime());
                var index = operation.IndexOfFlashShop();
                if (index != -1 && index < operation.giftpackage1.Count)
                {
@@ -169,8 +170,10 @@
        {
            OperationTimeHepler.Instance.operationTimeUpdateEvent -= OperationTimeUpdateEvent;
            limitedTimePackageItemModel.UpdateLimitedTimePackageItem -= UpdateLimitedTimePackageItem;
            GlobalTimeEvent.Instance.secondEvent -= secondEvent;
        }
        protected override void OnAfterClose()
        {
        }
@@ -186,7 +189,37 @@
                }
            }
        }
        private void secondEvent()
        {
            int time = OperationTimeHepler.Instance.GetOperationSurplusTime(Operation.GiftPackage);
            if (time <= 0)
            {
                m_Text_ActivityTimeTo.text = Language.Get("LimitGift2");
            }
            if (time > 86400)
            {
                m_Text_ActivityTimeTo.gameObject.SetActive(false);
            }
            else
            {
                if (!m_Text_ActivityTimeTo.gameObject.activeSelf)
                {
                    m_Text_ActivityTimeTo.gameObject.SetActive(true);
                }
                if (time < 3600)
                {
                    m_Text_ActivityTimeTo.text =Language.Get("LimitGift1")+":"+ TimeUtility.SecondsToHMS(time);
                    m_Text_ActivityTimeTo.color = UIHelper.GetUIColor(TextColType.Green);
                }
                else
                {
                    m_Text_ActivityTimeTo.text = Language.Get("LimitGift1") + ":" + TimeUtility.SecondsToHMS(time);
                    m_Text_ActivityTimeTo.color = UIHelper.GetUIColor(TextColType.Green);
                }
            }
        }
        #endregion
    }
System/WindowJump/WindowJumpMgr.cs
@@ -219,21 +219,32 @@
                    return;
                }
                break;
            case JumpUIType.OpenServerGift:
                if (!ModelCenter.Instance.GetModel<OSGiftModel>().activate)
            case JumpUIType.OpenServerGift1:
            case JumpUIType.OpenServerGift2:
            case JumpUIType.OpenServerGift3:
                var giftModel = ModelCenter.Instance.GetModel<OSGiftModel>();
                int giftId = 0;
                int.TryParse(_tagWinSearchModel.SelectActive, out giftId);
                if (!giftModel.CheckActivate())
                {
                    if (PlayerDatas.Instance.baseData.coinPointTotal <= 0
                        || !ModelCenter.Instance.GetModel<VipModel>().firstChargeRewardGet)
                    {
                        SysNotifyMgr.Instance.ShowTip("GiftNoOpen");
                    }
                    else
                    else if (giftModel.IsGiftBuy(giftId))
                    {
                        SysNotifyMgr.Instance.ShowTip("GiftAlreadyBuy");
                    }
                    else if (giftModel.IsGiftOverdue(giftId))
                    {
                        SysNotifyMgr.Instance.ShowTip("MissSell");
                    }
                    return;
                }
                break;
            case JumpUIType.OpenServerGift:
                return;
        }
        DebugEx.Log("WindowJumpTo" + jumpType);
@@ -575,6 +586,9 @@
            case JumpUIType.ConsumreRebate:
            case JumpUIType.BossReborn:
            case JumpUIType.OpenServerGift:
            case JumpUIType.OpenServerGift1:
            case JumpUIType.OpenServerGift2:
            case JumpUIType.OpenServerGift3:
            case JumpUIType.LimitedTimePackage:
            case JumpUIType.OpenServerRank:
                SetJumpLogic<OpenServerActivityWin>(_tagWinSearchModel.TABID);
@@ -1126,7 +1140,9 @@
    TrialDungeonSelect3 = 219, //宗门试练三层
    FindPreciousFrameFunc4Type2 = 220, //古神禁地界面 返回主界面
    FindPreciousFrameFunc2Type2 = 221, //BOSS之家 返回主界面
    OpenServerGift1 = 223, //超值礼包1
    OpenServerGift2 = 224, //超值礼包2
    OpenServerGift3 = 225, //超值礼包3
    DhszTs = 1001,//定海神针功法提升界面
    HyqTs = 1002,//皓月枪功法提升界面
    GyzTs = 1003,//鬼牙刃功法提升界面