Merge branch 'Cross_Server' of http://192.168.0.87:10010/r/snxxz_scripts into Cross_Server
| | |
| | | //-------------------------------------------------------- |
| | | // [Author]: 第二世界 |
| | | // [ Date ]: Wednesday, December 12, 2018 |
| | | // [ Date ]: Thursday, December 20, 2018 |
| | | //-------------------------------------------------------- |
| | | |
| | | using UnityEngine; |
| | |
| | | |
| | | public int DanLV { get ; private set ; }
|
| | | public string Name { get ; private set; }
|
| | | public string IconKey { get ; private set; } |
| | | public int LVUpScore { get ; private set ; }
|
| | | public string DayAwardList { get ; private set; } |
| | | public string DanLVAwardList { get ; private set; } |
| | | public string SeasonAwardList { get ; private set; } |
| | | |
| | | public override string getKey() |
| | |
| | |
|
| | | Name = rawContents[1].Trim();
|
| | |
|
| | | LVUpScore=IsNumeric(rawContents[2]) ? int.Parse(rawContents[2]):0; |
| | | IconKey = rawContents[2].Trim();
|
| | |
|
| | | DayAwardList = rawContents[3].Trim();
|
| | | LVUpScore=IsNumeric(rawContents[3]) ? int.Parse(rawContents[3]):0; |
| | |
|
| | | SeasonAwardList = rawContents[4].Trim(); |
| | | DanLVAwardList = rawContents[4].Trim();
|
| | | |
| | | SeasonAwardList = rawContents[5].Trim(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | fileFormatVersion: 2 |
| | | guid: f10a2faba8659904ab5c13d1a770a7e2 |
| | | timeCreated: 1544607874 |
| | | licenseType: Free |
| | | timeCreated: 1545293132 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | |
| | | dungeonModel.UpdateCoolDown((DungeonCoolDownType)vNetData.Type,vNetData.Tick);
|
| | | if((DungeonCoolDownType)vNetData.Type == DungeonCoolDownType.WaitStart)
|
| | | {
|
| | | var mapId = PlayerDatas.Instance.baseData.MapID;
|
| | | var mapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | switch (mapId)
|
| | | {
|
| | | case HeavenBattleModel.HEAVEBATTLE_MAPID:
|
| | |
| | | WindowCenter.Instance.Open<BattlePrepareCoolDownWin>();
|
| | | }
|
| | | break;
|
| | |
|
| | | case CrossServerModel.CrossServerDataMapId:
|
| | | WindowCenter.Instance.CloseImmediately<DungeonBeginCoolDownWin>();
|
| | | WindowCenter.Instance.CloseImmediately<DungeonEndCoolDownWin>();
|
| | | if (!WindowCenter.Instance.IsOpen<BattlePrepareCoolDownWin>())
|
| | | {
|
| | | WindowCenter.Instance.Open<BattlePrepareCoolDownWin>();
|
| | | }
|
| | | break;
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | protected override void OnPreOpen()
|
| | | {
|
| | | SetDisplay();
|
| | | TimeMgr.Instance.OnMinuteEvent += UpdateMinute;
|
| | | }
|
| | |
|
| | | protected override void OnAfterOpen()
|
| | |
| | |
|
| | | protected override void OnPreClose()
|
| | | {
|
| | | |
| | | TimeMgr.Instance.OnMinuteEvent -= UpdateMinute;
|
| | | }
|
| | | protected override void OnAfterClose()
|
| | | {
|
| | |
| | | UpdatePKInfo();
|
| | | UpdateActivityState();
|
| | | seasonTimeText.text = CrossServerPKSeason.Instance.ToDisplaySeasonTime();
|
| | | var openTimes = CrossServerPKSeason.Instance.GetActivityTimes();
|
| | | openTimeText.gameObject.SetActive(openTimes != null && openTimes.Count > 0);
|
| | | if(openTimes != null)
|
| | | {
|
| | | string openTimeDes = string.Empty;
|
| | | for(int i = 0; i < openTimes.Count; i++)
|
| | | {
|
| | | var openTime = openTimes[i];
|
| | | string timeDes = StringUtility.Contact(openTime.hourBegin.ToString("D2"), ":", openTime.minuteBegin.ToString("D2")
|
| | | ,"-",openTime.hourEnd.ToString("D2"),":",openTime.minuteEnd.ToString("D2"));
|
| | | if(i == 0)
|
| | | {
|
| | | openTimeDes = timeDes;
|
| | | }
|
| | | else
|
| | | {
|
| | | openTimeDes = StringUtility.Contact(openTimeDes,"、",timeDes);
|
| | | }
|
| | | }
|
| | | openTimeText.text = Language.Get("CrossServer119", openTimeDes);
|
| | | }
|
| | | |
| | | }
|
| | |
|
| | | private void UpdateMatchInfo()
|
| | |
| | | sumNumText.text = CrossServerPlayerInfo.Instance.PKCount.ToString();
|
| | | }
|
| | |
|
| | | private void UpdateMinute()
|
| | | {
|
| | | UpdateActivityState();
|
| | | }
|
| | |
|
| | | private void UpdateActivityState()
|
| | | {
|
| | | bool isInTime = CrossServerPKSeason.Instance.InDay(TimeUtility.ServerNow);
|
| | | bool isOpen = false;
|
| | | bool isOpen = CrossServerPKSeason.Instance.InOpenTime();
|
| | | matchBtn.RemoveAllListeners();
|
| | | if(!isInTime)
|
| | | {
|
| | | matchBtn_Text.text = "即将开启";
|
| | | matchBtn_Text.text = Language.Get("CrossServer111");
|
| | | matchBtn_Img.material = MaterialUtility.GetDefaultSpriteGrayMaterial();
|
| | | }
|
| | | else
|
| | | {
|
| | | matchBtn_Text.text = "开始匹配";
|
| | | matchBtn_Text.text = Language.Get("CrossServer109");
|
| | | if(isOpen)
|
| | | {
|
| | | matchBtn_Img.material = MaterialUtility.GetUIDefaultGraphicMaterial();
|
| | |
| | | public List<CrossServerPkResult> localSaveResults { get; private set; }
|
| | | CrossServerRewardModel rewardModel { get { return ModelCenter.Instance.GetModel<CrossServerRewardModel>(); } }
|
| | | public event Action UpdateDayAwardsEvent;
|
| | |
|
| | | public const int CrossServerDataMapId = 32010;
|
| | | public override void Init()
|
| | | {
|
| | | ParseFuncConfig();
|
| | |
| | | using System.Collections.Generic;
|
| | | using System.Linq;
|
| | | using System.Text;
|
| | | using TableConfig;
|
| | |
|
| | | namespace Snxxz.UI
|
| | | {
|
| | |
| | | public event Action activityEndEvent;
|
| | | private bool inDateNotify = false;
|
| | | private bool stepDateNotify = false;
|
| | | public const int dailyQuestId = 21;
|
| | | DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
|
| | |
|
| | | public CrossServerPKSeason()
|
| | | {
|
| | |
| | | private void BeforePlayerDataInitializeEvent()
|
| | | {
|
| | |
|
| | | }
|
| | |
|
| | | public List<HourMinute> GetActivityTimes()
|
| | | {
|
| | | DailyQuestOpenTime _openTime = null;
|
| | | dailyQuestModel.TryGetOpenTime(dailyQuestId, out _openTime);
|
| | | var dayOfWeek = (int)TimeUtility.ServerNow.DayOfWeek;
|
| | | return _openTime != null ? _openTime.GetHourMinuteByWeek(dayOfWeek) : null;
|
| | | }
|
| | |
|
| | | private void SecondEvent()
|
| | |
| | | return date >= StartDate && date <= EndDate;
|
| | | }
|
| | |
|
| | | public bool InOpenTime()
|
| | | {
|
| | | DailyQuestOpenTime _openTime = null;
|
| | | dailyQuestModel.TryGetOpenTime(dailyQuestId, out _openTime);
|
| | | return _openTime != null && _openTime.InOpenTime();
|
| | | }
|
| | |
|
| | | public int IndexOfDays(DateTime time)
|
| | | {
|
| | | if (!InDay(time))
|
| | |
| | | if(!StartDate.Equals(default(OperationDate))
|
| | | && InDay(TimeUtility.ServerNow))
|
| | | {
|
| | | return ToDisplayTime(StartDate,EndDate);
|
| | | return Language.Get("CrossServer106", ToDisplayTime(StartDate, EndDate));
|
| | | }
|
| | | else
|
| | | {
|
| | | if(NextStartDate.Equals(default(OperationDate)))
|
| | | {
|
| | | return "敬请期待";
|
| | | return Language.Get("107",Language.Get("CrossServer108"));
|
| | | }
|
| | | else
|
| | | {
|
| | | return ToDisplayTime(NextStartDate,NextEndDate);
|
| | | return Language.Get("CrossServer107", ToDisplayTime(NextStartDate, NextEndDate));
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | |
|
| | | public string DisplayWinningRate()
|
| | | {
|
| | | float rate = (float)WinCount / PKCount;
|
| | | float rate = PKCount != 0 ? (float)WinCount / PKCount : 0;
|
| | | return StringUtility.Contact((float)Math.Round(rate,1),"%");
|
| | | }
|
| | |
|
| | |
| | | [SerializeField] Text rankText;
|
| | | [SerializeField] Text curScoreText;
|
| | | [SerializeField] Text honorText;
|
| | | [SerializeField] Image rankImg;
|
| | | [SerializeField] Slider scoreSlider;
|
| | | [SerializeField] Text scorePerText;
|
| | | [SerializeField] GameObject danLvUpObj;
|
| | |
| | |
|
| | | var arenaConfig = Config.Instance.Get<CrossServerArenaConfig>(playerInfo.DanLV);
|
| | | rankText.text = arenaConfig.Name;
|
| | |
|
| | | rankImg.SetSprite(arenaConfig.IconKey);
|
| | | }
|
| | |
|
| | | private void UpdateScore()
|
| New file |
| | |
| | | //--------------------------------------------------------
|
| | | // [Author]: 第二世界
|
| | | // [ Date ]: Wednesday, September 13, 2017
|
| | | //--------------------------------------------------------
|
| | |
|
| | | using System;
|
| | | using System.Collections;
|
| | | using System.Collections.Generic;
|
| | | using UnityEngine;
|
| | | using UnityEngine.UI;
|
| | |
|
| | | namespace Snxxz.UI
|
| | | {
|
| | |
|
| | | public class DungeonPlayerLeaveCoolDownWin : Window
|
| | | {
|
| | | [SerializeField]
|
| | | Transform m_CoolDownContainer;
|
| | |
|
| | | [SerializeField]
|
| | | Text m_CoolDown;
|
| | | DateTime beginTime = DateTime.Now;
|
| | |
|
| | | DungeonModel m_Model;
|
| | | DungeonModel model {
|
| | | get {
|
| | | return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<DungeonModel>());
|
| | | }
|
| | | }
|
| | | int coolTime = -1;
|
| | | #region Built-in
|
| | | protected override void BindController()
|
| | | {
|
| | | }
|
| | |
|
| | | protected override void AddListeners()
|
| | | {
|
| | | }
|
| | |
|
| | | protected override void OnPreOpen()
|
| | | {
|
| | | coolTime = -1;
|
| | | beginTime = model.GetCoolDownEndTime(DungeonCoolDownType.PlayerLeave);
|
| | | model.dungeonCoolDownEvent += OnBeginTimeEvent;
|
| | | }
|
| | |
|
| | | protected override void OnAfterOpen()
|
| | | {
|
| | | }
|
| | |
|
| | | protected override void OnPreClose()
|
| | | {
|
| | | model.dungeonCoolDownEvent -= OnBeginTimeEvent;
|
| | | }
|
| | |
|
| | | protected override void OnAfterClose()
|
| | | {
|
| | | }
|
| | | #endregion
|
| | |
|
| | |
|
| | | private void OnBeginTimeEvent(DungeonCoolDownType _type)
|
| | | {
|
| | | if (_type != DungeonCoolDownType.PlayerLeave)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | beginTime = model.GetCoolDownEndTime(_type);
|
| | | }
|
| | |
|
| | | protected override void LateUpdate()
|
| | | {
|
| | | base.LateUpdate();
|
| | |
|
| | | if (beginTime > DateTime.Now)
|
| | | {
|
| | | var surplusTime =Mathf.Clamp((int)(beginTime - DateTime.Now).TotalSeconds,0,int.MaxValue);
|
| | | if (coolTime != surplusTime)
|
| | | {
|
| | | coolTime = surplusTime;
|
| | | m_CoolDown.text = Language.Get("CrossServer118",surplusTime);
|
| | | }
|
| | | if (!m_CoolDownContainer.gameObject.activeInHierarchy)
|
| | | {
|
| | | m_CoolDownContainer.gameObject.SetActive(true);
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | if (m_CoolDownContainer.gameObject.activeInHierarchy)
|
| | | {
|
| | | m_CoolDownContainer.gameObject.SetActive(false);
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | |
|
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 06957814b0967e2408ce1f18ed6ea6d1 |
| | | timeCreated: 1545298190 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| New file |
| | |
| | | //-------------------------------------------------------- |
| | | // [Author]: 第二世界 |
| | | // [ Date ]: Wednesday, September 13, 2017 |
| | | //-------------------------------------------------------- |
| | | |
| | | using System; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | |
| | | namespace Snxxz.UI |
| | | { |
| | | |
| | | public class DungeonWaitPlayerCoolDownWin : Window |
| | | { |
| | | [SerializeField] |
| | | Transform m_CoolDownContainer; |
| | | |
| | | [SerializeField] |
| | | Text m_CoolDown; |
| | | DateTime beginTime = DateTime.Now; |
| | | |
| | | DungeonModel m_Model; |
| | | DungeonModel model { |
| | | get { |
| | | return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<DungeonModel>()); |
| | | } |
| | | } |
| | | |
| | | #region Built-in |
| | | protected override void BindController() |
| | | { |
| | | } |
| | | |
| | | protected override void AddListeners() |
| | | { |
| | | } |
| | | |
| | | protected override void OnPreOpen() |
| | | { |
| | | beginTime = model.GetCoolDownEndTime(DungeonCoolDownType.WaitPlayer); |
| | | model.dungeonCoolDownEvent += OnBeginTimeEvent; |
| | | } |
| | | |
| | | protected override void OnAfterOpen() |
| | | { |
| | | } |
| | | |
| | | protected override void OnPreClose() |
| | | { |
| | | model.dungeonCoolDownEvent -= OnBeginTimeEvent; |
| | | } |
| | | |
| | | protected override void OnAfterClose() |
| | | { |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | private void OnBeginTimeEvent(DungeonCoolDownType _type) |
| | | { |
| | | if (_type != DungeonCoolDownType.WaitPlayer) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | beginTime = model.GetCoolDownEndTime(_type); |
| | | } |
| | | |
| | | protected override void LateUpdate() |
| | | { |
| | | base.LateUpdate(); |
| | | |
| | | if (beginTime > DateTime.Now) |
| | | { |
| | | var surplusTime =Mathf.Clamp((int)(beginTime - DateTime.Now).TotalSeconds,0,int.MaxValue); |
| | | m_CoolDown.text = surplusTime.ToString(); |
| | | if (!m_CoolDownContainer.gameObject.activeInHierarchy) |
| | | { |
| | | m_CoolDownContainer.gameObject.SetActive(true); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (m_CoolDownContainer.gameObject.activeInHierarchy) |
| | | { |
| | | m_CoolDownContainer.gameObject.SetActive(false); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 8e5a4e30b66e6fc41973e7aceb0ef6bf |
| | | timeCreated: 1545297371 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| | |
| | | switch (_type)
|
| | | {
|
| | | case DungeonCoolDownType.WaitStart:
|
| | | case DungeonCoolDownType.WaitPlayer:
|
| | | case DungeonCoolDownType.PlayerLeave:
|
| | | dungeonFightStage = DungeonFightStage.Prepare;
|
| | | break;
|
| | | case DungeonCoolDownType.TowerTake:
|
| | |
| | | dungeonFightStage = DungeonFightStage.ElderGodAreaNearDead;
|
| | | break;
|
| | | }
|
| | |
|
| | | switch(_type)
|
| | | {
|
| | | case DungeonCoolDownType.WaitPlayer:
|
| | | if(!WindowCenter.Instance.IsOpen<DungeonWaitPlayerCoolDownWin>())
|
| | | {
|
| | | WindowCenter.Instance.Open<DungeonWaitPlayerCoolDownWin>();
|
| | | }
|
| | | break;
|
| | | case DungeonCoolDownType.PlayerLeave:
|
| | | if (!WindowCenter.Instance.IsOpen<DungeonPlayerLeaveCoolDownWin>())
|
| | | {
|
| | | WindowCenter.Instance.Open<DungeonPlayerLeaveCoolDownWin>();
|
| | | }
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | | if (_type == DungeonCoolDownType.WaitStart)
|
| | |
| | | FBAddTime = 6,
|
| | | ElderGodAreaDeadTime = 7,//古神禁地倒计时
|
| | | PickUpTime = 8,//副本捡装备倒计时
|
| | | WaitPlayer = 9, //等待对手倒计时
|
| | | PlayerLeave = 10, //对手掉线倒计时
|
| | | }
|
| | |
|
| | | /// <summary>
|