Merge branch 'Cross_Server' of http://192.168.0.87:10010/r/snxxz_scripts into Cross_Server
| | |
| | | public ushort WinCount; // 胜利次数
|
| | | public ushort CWinCount; // 连胜次数
|
| | | public byte DayPKCount; // 当日已PK次数
|
| | | public byte DayWinCount; // 当日已胜利次数
|
| | | public byte DayBuyCount; // 当日已购买次数
|
| | |
|
| | | public HC101_tagMCCrossRealmPKPlayerInfo () {
|
| | |
| | | TransBytes (out WinCount, vBytes, NetDataType.WORD);
|
| | | TransBytes (out CWinCount, vBytes, NetDataType.WORD);
|
| | | TransBytes (out DayPKCount, vBytes, NetDataType.BYTE);
|
| | | TransBytes (out DayWinCount, vBytes, NetDataType.BYTE);
|
| | | TransBytes (out DayBuyCount, vBytes, NetDataType.BYTE);
|
| | | }
|
| | |
|
| | |
| | | CrossServerRewardModel rewardModel { get { return ModelCenter.Instance.GetModel<CrossServerRewardModel>(); } }
|
| | | public event Action UpdateDayAwardsEvent;
|
| | | public const int CrossServerDataMapId = 32010;
|
| | | DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
| | |
|
| | | public override void Init()
|
| | | {
|
| | | ParseFuncConfig();
|
| | |
| | |
|
| | | public void OnBeforePlayerDataInitialize()
|
| | | {
|
| | | dungeonModel.updateMissionEvent -= UpdateFBHelp;
|
| | | rewardModel.CrossRealmPKAwardStateUpdate -= UpdateDayAwardState;
|
| | | CrossServerPlayerInfo.Instance.UpdatePlayerInfoEvent -= UpdateDayAwardState;
|
| | | InitData();
|
| | |
| | | {
|
| | | rewardModel.CrossRealmPKAwardStateUpdate += UpdateDayAwardState;
|
| | | CrossServerPlayerInfo.Instance.UpdatePlayerInfoEvent += UpdateDayAwardState;
|
| | | dungeonModel.updateMissionEvent += UpdateFBHelp;
|
| | | UpdateDayAwardState();
|
| | | }
|
| | |
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | private void UpdateFBHelp()
|
| | | {
|
| | | int dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (dataMapId != CrossServerDataMapId) return;
|
| | |
|
| | | var mission = dungeonModel.mission;
|
| | | if(mission.prepareTime > 0)
|
| | | {
|
| | | if(!WindowCenter.Instance.IsOpen<CrossServerRoundWin>())
|
| | | {
|
| | | WindowCenter.Instance.Open<CrossServerRoundWin>();
|
| | | }
|
| | | }
|
| | |
|
| | | if(mission.isStart == 1)
|
| | | {
|
| | | |
| | | }
|
| | | }
|
| | |
|
| | | public List<AwardType> sortDayAwardslist = new List<AwardType>();
|
| | | public void SortDayAwardsList()
|
| | | {
|
| | |
| | | this.CWinCount = playerInfo.CWinCount;
|
| | | this.DayPKCount = playerInfo.DayPKCount;
|
| | | this.DayBuyCount = playerInfo.DayBuyCount;
|
| | | this.DayWinCount = playerInfo.DayWinCount;
|
| | | if(UpdatePlayerInfoEvent != null)
|
| | | {
|
| | | UpdatePlayerInfoEvent();
|
| | |
| | | }
|
| | | public enum CrossRealmPKAwardStateEnum
|
| | | {
|
| | | DayPKCountAwardState=1,
|
| | | DayWinCountAwardState=2,
|
| | | DanLVAwardState=3,
|
| | | SeasonAwardState=4,
|
| | | DayPKCountAwardState = 1,
|
| | | DayWinCountAwardState = 2,
|
| | | DanLVAwardState = 3,
|
| | | SeasonAwardState = 4,
|
| | | }
|
| | | public class CrossServerRewardModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
|
| | | {
|
| | | CrossServerModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerModel>(); } }
|
| | | 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>();
|
| | |
| | |
|
| | | public void OnBeforePlayerDataInitialize()
|
| | | {
|
| | | |
| | | crossServerModel.UpdatePkResultEvent -= UpdatePkResultEvent;
|
| | | }
|
| | |
|
| | | public void OnPlayerLoginOk()
|
| | | {
|
| | | crossServerModel.UpdatePkResultEvent += UpdatePkResultEvent;
|
| | | }
|
| | |
|
| | |
|
| | |
| | | {
|
| | |
|
| | | }
|
| | |
|
| | | private void UpdatePkResultEvent()
|
| | | {
|
| | | if (IsCrossServer())//副本结算界面
|
| | | {
|
| | | WindowCenter.Instance.Open<CrossServerSettlementWin>();
|
| | | }
|
| | | }
|
| | | private void GetSeasonAward()
|
| | | {
|
| | | var config = Config.Instance.GetAllValues<CrossServerArenaConfig>();
|
| | |
| | | }
|
| | | SeasonRewardDic = _award;
|
| | | }
|
| | | public void ResetTime()
|
| | | public void ResetTime()
|
| | | {
|
| | | Date_Time= TimeUtility.ServerNow;
|
| | | Date_Time = TimeUtility.ServerNow;
|
| | | }
|
| | | public void CrossRealmPKAwardState(HC102_tagMCCrossRealmPKAwardState info)//c102跨服PK玩家奖励记录
|
| | | {
|
| | |
| | | break;
|
| | | }
|
| | | }
|
| | | return _bool;
|
| | | return _bool;
|
| | | }
|
| | |
|
| | | public void CrossRealmPKGetAward(CrossRealmPKAwardStateEnum _cross, int Index)//领奖发包
|
| | |
| | | GameNetSystem.Instance.SendInfo(c103);
|
| | | }
|
| | |
|
| | | public bool IsCrossServer()//是否再跨服副本中
|
| | | {
|
| | | bool _bool = false;
|
| | | int mapId = PlayerDatas.Instance.baseData.MapID;
|
| | | if (mapId == 32010 || mapId == 32011)
|
| | | {
|
| | | _bool = true;
|
| | | }
|
| | | return _bool;
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | |
| | | [SerializeField] Text infoText;
|
| | |
|
| | | CrossServerModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerModel>(); } }
|
| | |
|
| | | DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
| | | int coolTime = 0;
|
| | | #region Built-in
|
| | | protected override void BindController()
|
| | | {
|
| | |
| | |
|
| | | protected override void OnPreOpen()
|
| | | {
|
| | |
|
| | | GlobalTimeEvent.Instance.secondEvent += UpdateCoolTime;
|
| | | SetDisplay();
|
| | | }
|
| | | protected override void OnAfterOpen()
|
| | | {
|
| | |
| | |
|
| | | protected override void OnPreClose()
|
| | | {
|
| | | |
| | | GlobalTimeEvent.Instance.secondEvent -= UpdateCoolTime;
|
| | | }
|
| | | protected override void OnAfterClose()
|
| | | {
|
| | |
| | |
|
| | | private void SetDisplay()
|
| | | {
|
| | | int roundNum = 0;
|
| | | switch (roundNum)
|
| | | {
|
| | | case 1:
|
| | | break;
|
| | | case 2:
|
| | | break;
|
| | | }
|
| | | int roundNum = dungeonModel.mission.roundNum;
|
| | | coolTime = dungeonModel.mission.prepareTime / 1000;
|
| | | string roundStr = Language.Get(StringUtility.Contact("Num_CHS_", roundNum));
|
| | | roundText.text = Language.Get("CrossServer112", roundStr);
|
| | | resultText.text = IsWin() ? Language.Get("CrossServer113") : Language.Get("CrossServer114");
|
| | | UpdateCoolTime();
|
| | | }
|
| | |
|
| | | private void UpdateCoolTime()
|
| | | {
|
| | | infoText.text = Language.Get("CrossServer115",coolTime);
|
| | | coolTime -= 1;
|
| | | if(coolTime <= 0)
|
| | | {
|
| | | CloseImmediately();
|
| | | coolTime = 0;
|
| | | }
|
| | | }
|
| | |
|
| | | private bool IsWin()
|
| | | {
|
| | | int roundNum = dungeonModel.mission.roundNum;
|
| | | int[] winerIds = dungeonModel.mission.roundWinerIDList;
|
| | | if (winerIds == null) return false;
|
| | | int playerId = (int)PlayerDatas.Instance.baseData.PlayerID;
|
| | | int index = roundNum - 1;
|
| | | if(index < winerIds.Length)
|
| | | {
|
| | | if(playerId == winerIds[index])
|
| | | {
|
| | | return true;
|
| | | }
|
| | | }
|
| | | return false;
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | |
| | | public class CrossServerSettlementWin : Window |
| | | { |
| | | |
| | | [SerializeField] GameObject m_BackFailure; |
| | | [SerializeField] GameObject m_BackWin; |
| | | [SerializeField] Transform m_ContainerResult; |
| | | [SerializeField] Button m_DropOutBtn; |
| | | [SerializeField] Text m_DropOutBtnText; |
| | | #region Built-in |
| | | CrossServerModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerModel>(); } } |
| | | protected override void BindController() |
| | | { |
| | | } |
| | |
| | | |
| | | protected override void OnPreOpen() |
| | | { |
| | | int WinnerID = crossServerModel.pkResultInfo.WinnerID; |
| | | int playerID =(int)PlayerDatas.Instance.baseData.PlayerID; |
| | | if (WinnerID == playerID)
|
| | | {
|
| | | m_BackFailure.SetActive(false);
|
| | | m_BackWin.SetActive(true);
|
| | | }
|
| | | else
|
| | | {
|
| | | m_BackFailure.SetActive(true);
|
| | | m_BackWin.SetActive(false);
|
| | | } |
| | | } |
| | | |
| | | protected override void OnAfterOpen() |
| | |
| | | });
|
| | | }
|
| | | }
|
| | |
|
| | | switch(awardType.type)
|
| | | {
|
| | | case 1:
|
| | | taskNameText.text = Language.Get("CrossServer116",awardType.curCompletedNum);
|
| | | break;
|
| | | case 2:
|
| | | taskNameText.text = Language.Get("CrossServer117", awardType.curCompletedNum);
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | | private void ClickRecieve()
|
| | |
| | | public int isHelp;
|
| | | public int helpCount;
|
| | | public int[] relation;
|
| | | public int roundNum;
|
| | | public int[] roundWinerIDList;
|
| | | public int prepareTime;
|
| | | public int isStart;
|
| | | public long totalExp
|
| | | {
|
| | | get
|