少年修仙传客户端代码仓库
client_linchunjie
2018-09-18 ff903365659ed5fd80e52dfa866ae896fa59801e
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
16个文件已修改
2个文件已添加
406 ■■■■ 已修改文件
Core/NetworkPackage/ClientPack/ClientToMapServer/C01_System/C0101_tagCPlayerLogin.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/NetPkgCtl.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/SDK/SDKUtility.cs 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestData.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/BossHomeModel.cs 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/PersonalBossModel.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FriendSystem/MailAllModel.cs 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Login/LoginModel.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/FeatureNoticeModel.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/FeatureNoticeTip.cs 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/FeatureNoticeTip.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/FeatureNoticeWin.cs 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/FunctionForecastTip.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Team/TeamModel.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/AwardExchangeModel.cs 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/ExchangeGetItemWin.cs 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/ExchangeGetItemWin.cs.meta 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowBase/ModelCenter.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ClientPack/ClientToMapServer/C01_System/C0101_tagCPlayerLogin.cs
@@ -17,6 +17,8 @@
    public byte Phone;    //是否绑定手机
    public uint ServerID;    //服务器ID
    public byte Adult;    //是否成年 0未成年 1成年
    public byte ExtraLen; // 扩展信息长度
    public string Extra; // 扩展信息
    public C0101_tagCPlayerLogin()
    {
@@ -37,6 +39,8 @@
        WriteBytes(Phone, NetDataType.BYTE);
        WriteBytes(ServerID, NetDataType.DWORD);
        WriteBytes(Adult, NetDataType.BYTE);
        WriteBytes(ExtraLen, NetDataType.BYTE);
        WriteBytes(Extra, NetDataType.Chars, ExtraLen);
    }
}
Core/NetworkPackage/NetPkgCtl.cs
@@ -81,7 +81,7 @@
        return _tempNetPkgLst;
    }
    public static void WriteAllNetLog()
    public static void WriteAllNetLog(bool @details)
    {
        if (_typeLst != null)
        {
@@ -96,8 +96,9 @@
                var package = _typeLst[i];
                var line = string.Empty;
                line = StringUtility.Contact(package.NetPkgTp == NetPkgType.Client ? "【发送】" : "【接收】", package.SendOrGetTime, ":", package.GameNetName, "\r\n");
                if (package.fieldDetails != null)
                line = StringUtility.Contact(package.NetPkgTp == NetPkgType.Client ? "【发送】\t" : "【接收】\t", package.SendOrGetTime, ":", package.GameNetName, @details ? "\r\n" : "-->" + package.fields);
                if (@details && package.fieldDetails != null)
                {
                    for (int j = 0; j < package.fieldDetails.Count; j++)
                    {
@@ -109,7 +110,7 @@
                count++;
            }
            File.WriteAllLines(Application.dataPath + "/PackageLogs" + "_" + DateTime.Now.ToString("HH_mm_ss") + ".txt", lines.ToArray());
            File.WriteAllLines(Application.dataPath + "/PackageLogs_" + (@details ? "details" : "abstract") + "_" + DateTime.Now.ToString("HH_mm_ss") + ".txt", lines.ToArray());
        }
    }
}
Core/SDK/SDKUtility.cs
@@ -18,8 +18,9 @@
    public enum E_ChannelPlatform
    {
        Free,
        Mr,
        Free = 1,// 自由
        Mr = 2,// 猫耳
        Sp = 3,// 思璞
    }
    public E_ChannelPlatform ChannelPlatform { get; private set; }
@@ -315,6 +316,10 @@
                        {
                            ChannelPlatform = E_ChannelPlatform.Mr;
                        }
                        else if (_channelPlatform.Equals("sp"))
                        {
                            ChannelPlatform = E_ChannelPlatform.Sp;
                        }
                    }
                }
                break;
@@ -498,6 +503,7 @@
        public const int PayFinished = 105;
        public const int CreateRole = 106;
        public const int RoleLogin = 107;
        public const int RoleLevelUp = 108;
        /**
         * 极光推送
         * */
@@ -546,6 +552,8 @@
        public string tokenExpire;
        public int phone;
        public int accountID;
        public string timeStamp;
        public string sessionID;
    }
    public struct FP_CheckIDAuthentication
@@ -689,13 +697,27 @@
                        m_Json["cpInfo"] = cpInfo;
                        m_Json["title"] = title;
                        if (ChannelPlatform == E_ChannelPlatform.Mr)
                        if(ChannelPlatform == E_ChannelPlatform.Mr
                        || ChannelPlatform == E_ChannelPlatform.Sp)
                        {
                            m_Json["notifyurl"] = _json["notifyurl"];
                            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;
                        }
                        if (ChannelPlatform == E_ChannelPlatform.Mr)
                        {
                            m_Json["notifyurl"] = _json["notifyurl"];
                        }
                        else if(ChannelPlatform == E_ChannelPlatform.Sp)
                        {
                            m_Json["serverName"] = ServerListCenter.Instance.currentServer.name;
                            m_Json["familyName"] = PlayerDatas.Instance.baseData.FamilyName;
                            m_Json["job"] = PlayerDatas.Instance.baseData.Job.ToString();
                            m_Json["money"] = PlayerDatas.Instance.baseData.Gold.ToString();
                            m_Json["gameName"] = VersionConfig.Get().productName;
                            m_Json["vipLevel"] = PlayerDatas.Instance.baseData.VIPLv.ToString();
                        }
#if UNITY_IOS
                        m_Json["identifier"] = VersionConfig.Get().bundleIdentifier;
@@ -787,7 +809,6 @@
        if (_iDict.Contains("token"))
        {
            FreePlatformInfo.token = json["token"].ToString();
            Debug.Log("token: " + FreePlatformInfo.token);
        }
        if (_iDict.Contains("token_expire"))
        {
@@ -800,12 +821,21 @@
        if (_iDict.Contains("account"))
        {
            FreePlatformInfo.account = json["account"].ToString();
            Debug.Log("account: " + FreePlatformInfo.account);
        }
        if (_iDict.Contains("account_id"))
        {
            int.TryParse(json["account_id"].ToString(), out FreePlatformInfo.accountID);
            Debug.Log("account_id: " + FreePlatformInfo.accountID);
        }
        if (_iDict.Contains("session_id"))
        {
            FreePlatformInfo.sessionID = (string)json["session_id"];
        }
        if (_iDict.Contains("timeStamp"))
        {
            FreePlatformInfo.timeStamp = (string)json["timeStamp"];
        }
        FreePlatformInfo.phone = 0;
@@ -848,9 +878,17 @@
    {
        m_Json.Clear();
        m_Json["code"] = CodeU2A.CreateRole;
        m_Json["roleID"] = roleID;
        m_Json["roleName"] = roleName;
        m_Json["sid"] = "s" + ServerListCenter.Instance.currentServer.region_flag;
        m_Json["serverName"] = ServerListCenter.Instance.currentServer.name;
        m_Json["familyName"] = PlayerDatas.Instance.baseData.FamilyName;
        m_Json["level"] = "1";
        m_Json["job"] = PlayerDatas.Instance.baseData.Job.ToString();
        m_Json["money"] = PlayerDatas.Instance.baseData.Gold.ToString();
        m_Json["gameName"] = VersionConfig.Get().productName;
        m_Json["vipLevel"] = PlayerDatas.Instance.baseData.VIPLv.ToString();
        SendMessageToSDK(m_Json);
    }
System/DailyQuest/DailyQuestData.cs
@@ -330,7 +330,7 @@
        var openDayWeek = (int)TimeUtility.openServerTime.DayOfWeek;
        List<HourMinute> hourMinutes = null;
        var dayDelta = (week == 0 ? 7 : week) - openDayWeek;
        var dayDelta = (week == 0 ? 7 : week) - (openDayWeek == 0 ? 7 : openDayWeek);
        if (TimeUtility.OpenWeekCnt < 1 && dayDelta < 0)
        {
            openTimes.TryGetValue(week, out hourMinutes);
@@ -358,7 +358,7 @@
    {
        var openDayWeek = (int)TimeUtility.openServerTime.DayOfWeek;
        var todayWeek = (int)TimeUtility.ServerNow.DayOfWeek;
        var dayDelta = ((week == 0 ? 7 : week) - (todayWeek == 0 ? 7 : todayWeek));
        var dayDelta = (week == 0 ? 7 : week) - (openDayWeek == 0 ? 7 : openDayWeek);
        if (TimeUtility.OpenWeekCnt < 1 && dayDelta < 0)
        {
System/FindPrecious/BossHomeModel.cs
@@ -50,11 +50,7 @@
            get { return m_WearyValue; }
            set {
                m_WearyValue = value;
                var count = vipModel.GetVipPrivilegeCnt(VipPrivilegeType.BossHomeAwardLimit) - m_WearyValue;
                bossHomeRedpoint.count = count;
                bossHomeRedpoint.state = count > 0 ? RedPointState.Quantity : RedPointState.None;
                UpdateRedpoint();
                if (bossWearyValueChangeEvent != null)
                {
                    bossWearyValueChangeEvent();
@@ -75,10 +71,12 @@
        public override void Init()
        {
            ParseConfig();
            PlayerDatas.Instance.PlayerDataRefreshEvent += OnPlayerDataChange;
        }
        public override void UnInit()
        {
            PlayerDatas.Instance.PlayerDataRefreshEvent -= OnPlayerDataChange;
        }
        public bool TryGetBossHomeData(int _layer, out BossHomeData _data)
@@ -148,6 +146,21 @@
            }
        }
        private void OnPlayerDataChange(PlayerDataRefresh _type, int _value)
        {
            if (_type == PlayerDataRefresh.VIPLv)
            {
                UpdateRedpoint();
            }
        }
        private void UpdateRedpoint()
        {
            var count = vipModel.GetVipPrivilegeCnt(VipPrivilegeType.BossHomeAwardLimit) - m_WearyValue;
            bossHomeRedpoint.count = count;
            bossHomeRedpoint.state = count > 0 ? RedPointState.Quantity : RedPointState.None;
        }
        private void ParseConfig()
        {
            var bossHomeConfigs = Config.Instance.GetAllValues<BossHomeConfig>();
System/FindPrecious/PersonalBossModel.cs
@@ -133,6 +133,7 @@
            if (enterTimes >= totalTimes)
            {
                personalRedpoint.count = 0;
                personalRedpoint.state = RedPointState.None;
                return;
            }
System/FriendSystem/MailAllModel.cs
@@ -62,6 +62,8 @@
        get { return m_dailyModel ?? (m_dailyModel = ModelCenter.Instance.GetModel<DailyQuestModel>()); }
    }
    AwardExchangeModel exchangeModel { get { return ModelCenter.Instance.GetModel<AwardExchangeModel>(); } }
    public MailAllModel()
    {
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += BeforePlayerDataInit;
@@ -158,12 +160,14 @@
                if (mailModelDict.ContainsKey(mailModel.PackList[i].GUID))
                {
                    MailInfo info = mailModelDict[mailModel.PackList[i].GUID];
                    switch(GetMailType(info))
                    string mailTitle = GetMailTitle(info);
                    if(mailTitle.Contains("<gcode>"))
                    {
                        case "CodeRewardMail":
                            WindowCenter.Instance.Open<ExchangeGetItemWin>();
                            break;
                        exchangeModel.SetAwardExchangeModel(info.Items);
                    }
                    else if(GetMailType(info) == "CodeRewardMail")
                    {
                        exchangeModel.SetAwardExchangeModel(info.Items);
                    }
                }
            }
@@ -428,6 +432,7 @@
            }
        }
        mailTitleStr = mailTitleStr.Replace("<gcode>","");
    }
    public string GetMailType(MailInfo info)
@@ -444,6 +449,28 @@
        return string.Empty;
    }
    public string GetMailTitle(MailInfo info)
    {
        if (smatch.IsMatch(info.Text))
        {
            Match match = smatch.Match(info.Text);
            MailConfig _mailModel = Config.Instance.Get<MailConfig>(match.Groups[1].Value);
            if (_mailModel != null)
            {
                return _mailModel.Title;
            }
        }
        else
        {
            string[] mailContentArray = info.Text.Split(new string[] { "<$_$>" }, StringSplitOptions.RemoveEmptyEntries);
            if (mailContentArray.Length > 0)
            {
                return mailContentArray[1];
            }
        }
        return string.Empty;
    }
    StringBuilder todayDailySB = new StringBuilder();
    public string GetTodayDailyNotify(DateTime getTime)
    {
System/Login/LoginModel.cs
@@ -271,6 +271,8 @@
                    send.Phone = 0;
                    send.ServerID = (uint)ServerListCenter.Instance.currentServer.region_flag;
                    send.Adult = 1;
                    send.ExtraLen = 0;
                    send.Extra = "";
                    break;
                case VersionAuthority.Release:
                    if (SDKUtility.Instance.ChannelPlatform == SDKUtility.E_ChannelPlatform.Free)
@@ -281,6 +283,10 @@
                    {
                        send.IDType = 2;
                    }
                    else if (SDKUtility.Instance.ChannelPlatform == SDKUtility.E_ChannelPlatform.Sp)
                    {
                        send.IDType = 3;
                    }
                    send.AccID = sdkLoginResult.account;
                    send.Password = sdkLoginResult.token;
                    send.MAC = DeviceUtility.GetMac();
System/MainInterfacePanel/FeatureNoticeModel.cs
@@ -11,7 +11,7 @@
using Snxxz.UI;
//功能预告红点
public class FeatureNoticeModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
public class FeatureNoticeModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk,ISwitchAccount
{
    public List<FunctionForecastConfig> FunctionList = new List<FunctionForecastConfig>();
    private const int Redpoint_key1 = 38;
@@ -48,6 +48,12 @@
    public override void UnInit()
    {
    }
    public void OnSwitchAccount()
    {
        OpenFuncId = 0;
        RedPointChange = false;
        IsRedPoint = false;
    }
    private void treasureStageUpEvent(int obj)
    {
@@ -269,6 +275,8 @@
        var mapConfig = Config.Instance.Get<MapConfig>(mapId);
        return mapConfig != null && mapConfig.MapFBType != 0;
    }
}
System/MainInterfacePanel/FeatureNoticeTip.cs
New file
@@ -0,0 +1,76 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Tuesday, September 18, 2018
//--------------------------------------------------------
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using TableConfig;
using System;
using System.Collections.Generic;
using DG.Tweening;
namespace Snxxz.UI {
    public class FeatureNoticeTip:MonoBehaviour {
        private int OpenTag = 0;
        [SerializeField] Image _FunctionIcon;//图标Icon
        [SerializeField] Text _NameText;//标题名
        [SerializeField] Text _Information;//信息内容
        [SerializeField] GameObject m_FeatureNoticeTipObj;
        public GameObject FeatureNoticeTipObj
        {
            get { return m_FeatureNoticeTipObj; }
            set { m_FeatureNoticeTipObj = value; }
        }
        public void Init()//初始化
        {
            DataAssignment();
        }
        void DataAssignment()
        {
            var configs = Config.Instance.GetAllValues<FunctionForecastConfig>();
            foreach (var config in configs)
            {
                if (!FuncOpen.Instance.IsFuncOpen(config.FuncId)
                    && PlayerDatas.Instance.baseData.LV >= config.OpenLevel && config.Display == 1)
                {
                    OpenTag = config.FuncId;
                    OpenPanel(OpenTag);
                    return;
                }
            }
            return;
        }
        void OpenPanel(int ID)
        {
            _FunctionIcon.SetSprite(Config.Instance.Get<FunctionForecastConfig>(ID).FuncIconKey);
            _NameText.text = Config.Instance.Get<FunctionForecastConfig>(ID).Describe;
            FuncOpenLVConfig funcoPenConfig = Config.Instance.Get<FuncOpenLVConfig>(ID);
            if (funcoPenConfig.LimitMagicWeapon != 0 || funcoPenConfig.LimitMissionID != 0)
            {
                if (funcoPenConfig.LimitMagicWeapon != 0)
                {
                    int faBaoID = funcoPenConfig.LimitMagicWeapon / 100;
                    TreasureConfig treasure = Config.Instance.Get<TreasureConfig>(faBaoID);
                    _Information.text = string.Format(Language.Get("FuncFBOpen"), treasure.Name);
                    return;
                }
                if (funcoPenConfig.LimitMissionID != 0)
                {
                    _Information.text = string.Format(Language.Get("TaskFuncOpen"), funcoPenConfig.LimitLV);
                    return;
                }
            }
            else
            {
                _Information.text = string.Format(Language.Get("FuncLevelOpen"), funcoPenConfig.LimitLV);
            }
        }
    }
}
System/MainInterfacePanel/FeatureNoticeTip.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: af6be847766546d448a74ba71b36526f
timeCreated: 1537257744
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/MainInterfacePanel/FeatureNoticeWin.cs
@@ -41,9 +41,13 @@
        [SerializeField] RawImage m_RawImage3;
        [SerializeField] RawImage m_RawImage4;
        [SerializeField] Text m_keyName;
        [SerializeField] FeatureNoticeTip m_FeatureNoticeTip;
        [SerializeField] ScaleTween m_ScaleTween;
        [SerializeField] Transform m_Tran;
        public int Offset = 0;//偏移
        TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
        FeatureNoticeModel featureNoticeModel { get { return ModelCenter.Instance.GetModel<FeatureNoticeModel>(); } }
        FeatureNoticeModel featureNoticeModel { get { return ModelCenter.Instance.GetModel<FeatureNoticeModel>(); } }
        private bool IsJump = false;
        #region Built-in
        private int ClickFuncID = 0;
        protected override void BindController()
@@ -52,16 +56,19 @@
        protected override void AddListeners()
        {
            m_CloseButton.AddListener(() => { Close(); });
            m_CloseButton.AddListener(OnClickBtn);
            m_ScrollerController.OnRefreshCell += OnRefreshGridCell;
        }
        protected override void OnPreOpen()
        {
            if (!WindowJumpMgr.Instance.IsJumpState)//是否经历跳转打开
            m_ScaleTween.SetStartState();
            IsJump = WindowJumpMgr.Instance.IsJumpState;
            if (!IsJump)//是否经历跳转打开
            {
                DefaultSelection();//获取默认选择
            }
            m_ScrollerController.OnRefreshCell += OnRefreshGridCell;
            m_FeatureNoticeTip.Init();
            OnCreateGridLineCell(m_ScrollerController);
            ContentDisplay();
          
@@ -77,7 +84,15 @@
            FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += OnPlayersUpLV;
            treasureModel.treasureStateChangeEvent += treasureStateChangeEvent;
            treasureModel.treasureStageUpEvent += treasureStageUpEvent;
            treasureModel.treasureStageUpEvent += treasureStageUpEvent;
            if (!IsJump)//是否经历跳转打开
            {
                m_ScaleTween.Play(false, IsOpen);
            }
            else
            {
                m_ScaleTween.SetEndState();
            }
        }
        protected override void OnPreClose()
        {
@@ -90,7 +105,6 @@
        {
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= OnPlayersUpLV;
            FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
            m_ScrollerController.OnRefreshCell -= OnRefreshGridCell;
            treasureModel.treasureStateChangeEvent -= treasureStateChangeEvent;
            treasureModel.treasureStageUpEvent -= treasureStageUpEvent;
            if (featureNoticeModel.redPointStre1.state == RedPointState.Simple)
@@ -433,6 +447,27 @@
                m_Textschedule.text = string.Format(Language.Get("YGNoFB"), _treasure.Name);
            }
        }
        private void OnClickBtn()
        {
            if (!WindowJumpMgr.Instance.IsJumpState)//是否经历跳
            {
                m_FeatureNoticeTip.FeatureNoticeTipObj.SetActive(true);
                m_ScaleTween.Play(true, IsClose);
            }
            else
            {
                Close();
            }
        }
        private void IsOpen()
        {
            m_FeatureNoticeTip.FeatureNoticeTipObj.SetActive(false);
        }
        private void IsClose()
        {
            Close();
        }
    }
}
System/MainInterfacePanel/FunctionForecastTip.cs
@@ -10,10 +10,12 @@
using System.Collections.Generic;
using DG.Tweening;
//主界面功能预告
namespace Snxxz.UI {
namespace Snxxz.UI
{
    public class FunctionForecastTip : MonoBehaviour {
        public static  int OpenTag = 0;
    public class FunctionForecastTip : MonoBehaviour
    {
        public static int OpenTag = 0;
        [SerializeField] Transform _FunctionForecastPanel;//切换面板 
        [SerializeField] Image _FunctionIcon;//图标Icon
        [SerializeField] Button _FunctionIconBtn;//面板开关按钮
@@ -34,7 +36,7 @@
            FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= OnPlayersUpLV;
        }
        private void Start()
        {
@@ -52,7 +54,7 @@
        private void OnPlayersUpLV(PlayerDataRefresh _type)
        {
            if (_type==PlayerDataRefresh.LV)
            if (_type == PlayerDataRefresh.LV)
            {
                DataAssignment();
            }
@@ -69,7 +71,7 @@
            foreach (var config in configs)
            {
                if (!FuncOpen.Instance.IsFuncOpen(config.FuncId)
                    && PlayerDatas.Instance.baseData.LV >= config.OpenLevel && config.Display==1)
                    && PlayerDatas.Instance.baseData.LV >= config.OpenLevel && config.Display == 1)
                {
                    OpenTag = config.FuncId;
                    if (FunctionOpenTagEvent != null)
@@ -90,7 +92,7 @@
            _FunctionIcon.SetSprite(Config.Instance.Get<FunctionForecastConfig>(ID).FuncIconKey);
            _NameText.text = Config.Instance.Get<FunctionForecastConfig>(ID).Describe;
            FuncOpenLVConfig funcoPenConfig = Config.Instance.Get<FuncOpenLVConfig>(ID);
            if (funcoPenConfig.LimitMagicWeapon != 0 || funcoPenConfig.LimitMissionID!=0)
            if (funcoPenConfig.LimitMagicWeapon != 0 || funcoPenConfig.LimitMissionID != 0)
            {
                if (funcoPenConfig.LimitMagicWeapon != 0)
                {
@@ -109,14 +111,15 @@
            {
                _Information.text = string.Format(Language.Get("FuncLevelOpen"), funcoPenConfig.LimitLV);
            }
        }
        void FunctionIconBtn()//面板开启
        {
            WindowCenter.Instance.Close<MainInterfaceWin>();
            WindowCenter.Instance.Open<FeatureNoticeWin>();
           // WindowCenter.Instance.Open<ZXWTestWin>();
        }
    }
System/Team/TeamModel.cs
@@ -1011,6 +1011,10 @@
                    prepareBeginTime = DateTime.MinValue;
                    WindowCenter.Instance.Close<TeamPrepareWin>();
                }
                else if (teamPrepare.IsAllOk())
                {
                    prepareBeginTime = DateTime.MinValue;
                }
                else
                {
                    Teammate mate;
System/Welfare/AwardExchangeModel.cs
@@ -7,8 +7,9 @@
{
    public class AwardExchangeModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
    {
        public PlayerPackModel.DecomposeGetMatInfo[] getItems { get; private set; }
        public MailItemModel[] getItems { get; private set; }
        bool isLogin = true;
        public override void Init()
        {
           
@@ -16,7 +17,7 @@
        public void OnBeforePlayerDataInitialize()
        {
            isLogin = true;
        }
        public void OnAfterPlayerDataInitialize()
@@ -26,12 +27,29 @@
        public void OnPlayerLoginOk()
        {
            isLogin = false;
        }
        public override void UnInit()
        {
           
        }
        public void SetAwardExchangeModel(MailItemModel[] Items)
        {
            getItems = null;
            if (Items == null || isLogin) return;
            getItems = Items;
            if(!WindowCenter.Instance.CheckOpen<ExchangeGetItemWin>())
            {
                WindowCenter.Instance.Open<ExchangeGetItemWin>();
            }
        }
        public void ClearAwardExchangeModel()
        {
            getItems = null;
        }
    }
}
System/Welfare/ExchangeGetItemWin.cs
@@ -6,37 +6,31 @@
{
    public class ExchangeGetItemWin : Window
    {
        [SerializeField] GameObject getItemObj;
        [SerializeField] RectTransform getItemParent;
        [SerializeField] Button sureBtn;
        [SerializeField] List<CommonItemBaisc> itemBaiscs = new List<CommonItemBaisc>();
        List<GameObject> GetItemlist = new List<GameObject>();
        AwardExchangeModel exchange { get { return ModelCenter.Instance.GetModel<AwardExchangeModel>(); } }
        AwardExchangeModel exchangeModel { get { return ModelCenter.Instance.GetModel<AwardExchangeModel>(); } }
        ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
            sureBtn.AddListener(CloseClick);
        }
        protected override void OnPreOpen()
        {
            getItemObj.SetActive(false);
            CreateGetItem();
            SetDisplayModel();
        }
        protected override void OnAfterOpen()
        {
            transform.SetAsLastSibling();
        }
        protected override void OnPreClose()
        {
            DestroyGetItemlist();
            exchangeModel.ClearAwardExchangeModel();
        }
        protected override void OnAfterClose()
@@ -44,42 +38,33 @@
        }
        private void CreateGetItem()
        private void SetDisplayModel()
        {
            GetItemlist.Clear();
            if (exchange.getItems == null) return;
            if (exchangeModel == null) return;
            for (int i = 0; i < exchange.getItems.Length; i++)
            for(int i = 0; i < itemBaiscs.Count; i++)
            {
                GameObject item = Instantiate(getItemObj);
                PlayerPackModel.DecomposeGetMatInfo  matInfo = exchange.getItems[i];
                item.transform.SetParent(getItemParent);
                item.transform.localPosition = Vector3.zero;
                item.transform.localScale = Vector3.one;
                item.name = StringUtility.Contact("getItem",i);
                item.gameObject.SetActive(true);
                CommonItemBaisc itemBasic = item.transform.Find("CommonItemCell").GetComponent<CommonItemBaisc>();
                ItemCellModel cellModel = new ItemCellModel(matInfo.ItemID, false, (ulong)matInfo.Count, matInfo.IsBind,
                    "", PackType.rptDeleted, false, ConfigParse.Analysis(matInfo.UserData));
                itemBasic.Init(cellModel);
                itemBasic.cellBtn.RemoveAllListeners();
                itemBasic.cellBtn.AddListener(() =>
                if(i < exchangeModel.getItems.Length)
                {
                    ItemAttrData attrData = new ItemAttrData(matInfo.ItemID, false, (ulong)matInfo.Count, -1, matInfo.IsBind,
                        false, PackType.rptDeleted, "", ConfigParse.Analysis(matInfo.UserData));
                    tipsModel.SetItemTipsModel(attrData);
                });
                itemBasic.gameObject.SetActive(true);
                GetItemlist.Add(item);
            }
        }
        private void DestroyGetItemlist()
        {
            for (int i = 0; i < GetItemlist.Count; i++)
            {
                Destroy(GetItemlist[i]);
                    MailItemModel itemModel = exchangeModel.getItems[i];
                    itemBaiscs[i].gameObject.SetActive(true);
                    ItemCellModel cellModel = new ItemCellModel((int)itemModel.ItemID,false
                        ,(ulong)itemModel.Count, itemModel.IsBind,"",PackType.rptDeleted,
                        false,ConfigParse.Analysis(itemModel.UserData));
                    itemBaiscs[i].Init(cellModel);
                    itemBaiscs[i].cellBtn.RemoveAllListeners();
                    itemBaiscs[i].cellBtn.AddListener(()=>
                    {
                        ItemAttrData attrData = new ItemAttrData((int)itemModel.ItemID, false
                        , (ulong)itemModel.Count,-1,itemModel.IsBind,false, PackType.rptDeleted,
                        "", ConfigParse.Analysis(itemModel.UserData));
                        tipsModel.SetItemTipsModel(attrData);
                    });
                }
                else
                {
                    itemBaiscs[i].gameObject.SetActive(false);
                }
            }
        }
System/Welfare/ExchangeGetItemWin.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: b88138dfb3783c34db741e9d6a847c2a
timeCreated: 1531139769
guid: b367524e0821f67439d7c80ed1a0254f
timeCreated: 1537257075
licenseType: Pro
MonoImporter:
  serializedVersion: 2
System/WindowBase/ModelCenter.cs
@@ -194,6 +194,7 @@
            RegisterModel<GodBeastModel>();
            RegisterModel<PrayForDurgModel>();
            RegisterModel<FeatureNoticeModel>();
            RegisterModel<AwardExchangeModel>();
            inited = true;
        }