少年修仙传客户端代码仓库
client_Wu Xijin
2018-12-19 819fe0978ef216322cbce9ea2f5af2316e2fa8e6
Merge branch 'Cross_Server' of http://192.168.0.87:10010/r/snxxz_scripts into Cross_Server
5个文件已修改
6个文件已添加
352 ■■■■■ 已修改文件
System/CrossServerOneVsOne/CrossMatchRecordWin.cs 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossMatchRecordWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossMatchResultCell.cs 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossMatchResultCell.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerArenaWin.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerModel.cs 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerRewardModel.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerWin.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/RankCellCtrl.cs 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/RankCellCtrl.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/RankingWin.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossMatchRecordWin.cs
New file
@@ -0,0 +1,59 @@
using System;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    [XLua.Hotfix]
    public class CrossMatchRecordWin : Window
    {
        [SerializeField] ScrollerController resultCtrl;
        [SerializeField] Button closeBtn;
        CrossServerModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerModel>(); } }
        #region Built-in
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
            closeBtn.AddListener(CloseClick);
        }
        protected override void OnPreOpen()
        {
            SetDisplay();
        }
        protected override void OnAfterOpen()
        {
        }
        protected override void OnPreClose()
        {
        }
        protected override void OnAfterClose()
        {
        }
        #endregion
        private void SetDisplay()
        {
            UpdateResultCell();
        }
        private void UpdateResultCell()
        {
            var results = crossServerModel.localSaveResults;
            resultCtrl.Refresh();
            for(int i = 0; i < results.Count; i++)
            {
                resultCtrl.AddCell(ScrollerDataType.Header,i);
            }
            resultCtrl.Restart();
        }
    }
}
System/CrossServerOneVsOne/CrossMatchRecordWin.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: df6eb0062ff2c524aa564a542bf94e39
timeCreated: 1545199685
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/CrossServerOneVsOne/CrossMatchResultCell.cs
New file
@@ -0,0 +1,66 @@
using System;
using UnityEngine;
using UnityEngine.UI;
using EnhancedUI.EnhancedScroller;
namespace Snxxz.UI
{
    [XLua.Hotfix]
    public class CrossMatchResultCell : ScrollerUI
    {
        [SerializeField] Text dateTime;
        [SerializeField] Text info;
        [SerializeField] Image resultImg;
        CrossServerModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerModel>(); } }
        public override void Refresh(CellView cell)
        {
            var results = crossServerModel.localSaveResults;
            var resultInfo = results[cell.index];
            dateTime.text = resultInfo.PkEndTime;
            int offlineType = 0;
            bool isOffline = crossServerModel.TryGetOffLine(out offlineType);
            int winStreakScore = 0;
            bool isWinStreak = crossServerModel.TryGetWinStreakScore(out winStreakScore);
            if(isOffline)
            {
              switch(offlineType)
                {
                    case 1:
                        info.text = Language.Get("CrossServer105", resultInfo.VsPlayerName, resultInfo.AddScore);
                        break;
                    case 2:
                        if(isWinStreak)
                        {
                            info.text = Language.Get("CrossServer104", resultInfo.VsPlayerName, resultInfo.AddScore,
                                resultInfo.WinStreak,winStreakScore);
                        }
                        else
                        {
                            info.text = Language.Get("CrossServer103",resultInfo.VsPlayerName,resultInfo.AddScore);
                        }
                        break;
                }
            }
            else
            {
                int winNum = 0;
                int failNum = 0;
                crossServerModel.GetWinAndFailNum(out winNum,out failNum);
                string compareScore = StringUtility.Contact(winNum,":",failNum);
                if (isWinStreak)
                {
                    info.text = Language.Get("CrossServer102", resultInfo.VsPlayerName,compareScore,resultInfo.AddScore,
                        resultInfo.WinStreak, winStreakScore);
                }
                else
                {
                    info.text = Language.Get("CrossServer101", resultInfo.VsPlayerName,compareScore,resultInfo.AddScore);
                }
            }
            bool isWinner = PlayerDatas.Instance.baseData.PlayerID == resultInfo.WinnerID ? true : false;
            resultImg.SetSprite(isWinner ? "" : "");
        }
    }
}
System/CrossServerOneVsOne/CrossMatchResultCell.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 0cfdcd65f265117449df8b7ebdadb182
timeCreated: 1545200173
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/CrossServerOneVsOne/CrossServerArenaWin.cs
@@ -17,7 +17,7 @@
        [SerializeField] Text seasonTimeText;
        [SerializeField] Text openTimeText;
        [SerializeField] Button buyTimesBtn;
        [SerializeField] Button matchRecordBtn;
        CrossServerRewardModel m_CrossServerRewardModel;
        CrossServerRewardModel crossServerRewardModel { get { return m_CrossServerRewardModel ?? (m_CrossServerRewardModel = ModelCenter.Instance.GetModel<CrossServerRewardModel>()); } }
        CrossServerModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerModel>(); } }
@@ -31,6 +31,7 @@
            dayAwardBtn.AddListener(ClickDayAward);
            matchBtn.AddListener(ClickMatch);
            buyTimesBtn.AddListener(ClickBuyTimes);
            matchRecordBtn.AddListener(ClickMatchRecord);
        }
        protected override void OnPreOpen()
@@ -105,7 +106,6 @@
        }
        private void ClickBuyTimes()
        {
            int remainNum = crossServerModel.alreadyBuyNum + crossServerModel.freeMaxMatchNum - crossServerModel.dayMatchNum;
@@ -128,5 +128,10 @@
            WindowCenter.Instance.Open<MatchWin>();
        }
        private void ClickMatchRecord()
        {
            WindowCenter.Instance.Open<CrossMatchRecordWin>();
        }
    }
}
System/CrossServerOneVsOne/CrossServerModel.cs
@@ -11,6 +11,9 @@
    [XLua.LuaCallCSharp]
    public class CrossServerModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk
    {
        public string PkResultLocalSaveKey { get; private set; }
        public List<PkResultInfo> localSaveResults { get; private set; }
        public override void Init()
        {
            ParseFuncConfig();
@@ -23,7 +26,9 @@
        public void OnAfterPlayerDataInitialize()
        {
            int playerId = (int)PlayerDatas.Instance.baseData.PlayerID;
            PkResultLocalSaveKey = StringUtility.Contact("PkResultLocalSaveKey", playerId);
            GetLocalSaveData();
        }
        public void OnPlayerLoginOk()
@@ -64,6 +69,17 @@
            return Equation.Instance.Eval<int>(priceFormula);
        }
        public bool TryGetWinStreakScore(out int score)
        {
            score = 0;
            if (pkResultInfo.WinStreak < 2) return false;
            Equation.Instance.Clear();
            Equation.Instance.AddKeyValue("cWinCount",pkResultInfo.WinStreak);
            score = Equation.Instance.Eval<int>(winStreakScoreFormula);
            return true;
        }
        public List<AwardType> sortDayAwardslist = new List<AwardType>();
        public void SortDayAwardsList()
        {
@@ -89,6 +105,7 @@
        public int freeMaxMatchNum { get; private set; } //每日免费匹配次数
        public int buyMaxMatchNum { get; private set; } //每日可购买次数
        public string priceFormula { get;private set;} //购买匹配次数需要价格公式
        public string winStreakScoreFormula { get; private set; } //连胜积分公式
        public List<AwardType> dayAwardTypelist { get; private set; }
        private void ParseFuncConfig()
        {
@@ -152,6 +169,9 @@
            freeMaxMatchNum = int.Parse(CrossRealmPKMatchCount.Numerical1);
            buyMaxMatchNum = int.Parse(CrossRealmPKMatchCount.Numerical2);
            priceFormula = CrossRealmPKMatchCount.Numerical3;
            var CrossRealmPKScore = Config.Instance.Get<FuncConfigConfig>("CrossRealmPKScore");
            winStreakScoreFormula = CrossRealmPKScore.Numerical3;
        }
        public class AwardType
@@ -222,6 +242,7 @@
        public event Action UpdatePkResultEvent;
        public void UpdatePKResultInfo(HC003_tagGCCrossRealmPKOverInfo pKOverInfo)
        {
            pkResultInfo = new PkResultInfo();
            pkResultInfo.PkEndTime = pKOverInfo.TimeStr;
            pkResultInfo.OverType = pKOverInfo.OverType;
            pkResultInfo.WinnerID = (int)pKOverInfo.WinnerID;
@@ -232,6 +253,7 @@
            pkResultInfo.DanLV = pKOverInfo.DanLV;
            pkResultInfo.WinStreak = pKOverInfo.CWinCnt;
            pkResultInfo.VsPlayerName = pKOverInfo.TagName;
            SetPkInfoLocalSave(pkResultInfo);
            if(UpdatePkResultEvent != null)
            {
                UpdatePkResultEvent();
@@ -244,7 +266,7 @@
            public int OverType;    // 0-正常,1-有人离线
            public int WinnerID;    // 胜方ID
            public int WinnerID;    // 胜方ID(本次战斗结束,不是回合结束)
            public int RoundCount;    // PK回合数
@@ -281,6 +303,22 @@
        }
        /// <summary>
        /// 1 自己离线 2 对手离线
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public bool TryGetOffLine(out int type)
        {
            type = 0;
            int playerId = (int)PlayerDatas.Instance.baseData.PlayerID;
            if(pkResultInfo.OverType != 0)
            {
                type = playerId == pkResultInfo.WinnerID ? 2 : 1;
            }
            return pkResultInfo.OverType != 0;
        }
        /// <summary>
        ///0-取消匹配; 1-进行匹配
        /// </summary>
        /// <param name="type"></param>
@@ -291,6 +329,41 @@
            GameNetSystem.Instance.SendInfo(match);
        }
        #endregion
        #region 匹配记录
        private void GetLocalSaveData()
        {
            localSaveResults = new List<PkResultInfo>();
            string[] localJsons = LocalSave.GeStringArray(PkResultLocalSaveKey);
            if(localJsons != null)
            {
                for(int i = 0; i < localJsons.Length; i++)
                {
                    PkResultInfo resultInfo = JsonMapper.ToObject<PkResultInfo>(localJsons[i]);
                    localSaveResults.Add(resultInfo);
                }
            }
        }
        public void SetPkInfoLocalSave(PkResultInfo resultInfo)
        {
            if (localSaveResults.Count >= 30)
            {
                localSaveResults.RemoveAt(localSaveResults.Count - 1);
            }
            localSaveResults.Insert(0,resultInfo);
            string[] localJsons = new string[localSaveResults.Count];
            for(int i = 0; i < localJsons.Length; i++)
            {
                string json = JsonMapper.ToJson(localSaveResults[i]);
                localJsons[i] = json;
            }
            LocalSave.SetStringArray(PkResultLocalSaveKey,localJsons);
        }
        #endregion
        #region 红点
        #endregion
System/CrossServerOneVsOne/CrossServerRewardModel.cs
@@ -21,10 +21,23 @@
    public int Score;
    public List<Item_Class> ItemList;
}
public class RankingInformationClass//排名信息
{
    public int Rankin;//名次
    public int Realm;//境界
    public int PlayerID;//玩家ID
    public string ServerName;//服务器名
    public int Job;//职业
    public int Power;//战力
    public int Segment;//段位
    public int Integral;//积分
}
public class CrossServerRewardModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
{
    public Dictionary<int, SeasonAwardClass> SegmentRewardDic = new Dictionary<int, SeasonAwardClass>();
    public ImpactRankModel.RankAwardItem SeasonRewardDic = new ImpactRankModel.RankAwardItem();
    public Dictionary<int, RankingInformationClass> RankInformationDic = new Dictionary<int, RankingInformationClass>();
    private bool m_IsOpenMatch;
    public bool IsOpenMatch
    {
@@ -45,13 +58,11 @@
    public void OnBeforePlayerDataInitialize()
    {
        GlobalTimeEvent.Instance.secondEvent -= secondEvent;
       
    }
    public void OnPlayerLoginOk()
    {
        GlobalTimeEvent.Instance.secondEvent += secondEvent;
    }
   
@@ -111,10 +122,6 @@
    public  void ResetTime()
    {
        Date_Time= TimeUtility.ServerNow;
    }
    private void secondEvent()
    {
    }
}
System/CrossServerOneVsOne/CrossServerWin.cs
@@ -22,6 +22,7 @@
        [SerializeField] Text honorText;
        [SerializeField] Slider scoreSlider;
        [SerializeField] Text scorePerText;
        [SerializeField] GameObject danLvUpObj;
        [SerializeField] Button scoreRankBtn;
        [SerializeField] Button rankAwardBtn;
        [SerializeField] Button arenaBtn;
@@ -95,6 +96,7 @@
            curScoreText.text = crossServerModel.pkResultInfo.CurScore.ToString();
            int maxScore = 0;
            bool isMaxRank = crossServerModel.TryGetMaxRank(out maxScore);
            danLvUpObj.SetActive(!isMaxRank);
            if (!isMaxRank)
            {
                scorePerText.text = StringUtility.Contact(crossServerModel.pkResultInfo.CurScore, "/", maxScore);
System/CrossServerOneVsOne/RankCellCtrl.cs
New file
@@ -0,0 +1,82 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Wednesday, December 19, 2018
//--------------------------------------------------------
using EnhancedUI.EnhancedScroller;
using System.Collections;
using System.Collections.Generic;
using TableConfig;
using UnityEngine;
using UnityEngine.UI;
using System;
namespace Snxxz.UI {
    public class RankCellCtrl : ScrollerUI
    {
        [SerializeField] Button m_RankButton;
        [SerializeField] Text m_RankNum;
        [SerializeField] Image m_RankNumBottom;
        [SerializeField] Text m_NameTxt;
        [SerializeField] Text m_JobTxt;
        [SerializeField] Text m_RankWhatTxt;
        [SerializeField] Text m_SegmentTxt;
        [SerializeField] Text m_IntegralTxt;
        CrossServerRewardModel m_CrossServerRewardModel;
        CrossServerRewardModel crossServerRewardModel { get { return m_CrossServerRewardModel ?? (m_CrossServerRewardModel = ModelCenter.Instance.GetModel<CrossServerRewardModel>()); } }
        public override void Refresh(CellView cell)
        {
            int index = cell.index;
            if (index < 3)
            {
                m_RankNumBottom.gameObject.SetActive(true);
                if (index == 0)
                {
                    m_RankNumBottom.SetSprite("Rank_First");
                }
                else if (index == 1)
                {
                    m_RankNumBottom.SetSprite("Rank_Second");
                }
                else if (index == 2)
                {
                    m_RankNumBottom.SetSprite("Rank_Third");
                }
                m_RankNum.gameObject.SetActive(false);
            }
            else
            {
                m_RankNumBottom.gameObject.SetActive(false);
                m_RankNum.text = (index + 1).ToString();
                m_RankNum.gameObject.SetActive(true);
            }
            RankingInformationClass data = null;
            if (crossServerRewardModel.RankInformationDic != null && index < crossServerRewardModel.RankInformationDic.Count)
            {
                data = crossServerRewardModel.RankInformationDic[index];
            }
            if (data != null)
            {
            }
            else
            {
                m_NameTxt.text = Language.Get("L1046");
                m_JobTxt.text = "-";
                m_RankWhatTxt.text = "-";
                m_SegmentTxt.text= "-";
                m_IntegralTxt.text= "-";
                m_NameTxt.color = UIHelper.GetUIColor(TextColType.NavyBrown);
                m_JobTxt.color = UIHelper.GetUIColor(TextColType.NavyBrown);
                m_RankWhatTxt.color = UIHelper.GetUIColor(TextColType.NavyBrown);
                m_SegmentTxt.color = UIHelper.GetUIColor(TextColType.NavyBrown);
                m_SegmentTxt.color = UIHelper.GetUIColor(TextColType.NavyBrown);
            }
        }
    }
}
System/CrossServerOneVsOne/RankCellCtrl.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 7e2f54309d2f92a48854420b24f50804
timeCreated: 1545200441
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/CrossServerOneVsOne/RankingWin.cs
@@ -17,6 +17,7 @@
    public class RankingWin : Window
    {
        [SerializeField] ScrollerController m_ScrollerController;
        [SerializeField] Button m_CloseButton;
        #region Built-in
        protected override void BindController()
        {
@@ -25,6 +26,7 @@
        protected override void AddListeners()
        {
            m_CloseButton.AddListener(()=> { Close(); });
        }
        protected override void OnPreOpen()