Core/ResModule/GameObjectPoolManager.cs
@@ -565,6 +565,7 @@ DebugItem _debugItem = Instance.m_DebugInstIDDict[_go.GetInstanceID()]; _debugItem.transform.SetParent(m_DebugFree); #endif _go.transform.SetParent(Instance.m_TargetContainer); _go.transform.position = Constants.Special_Hide_Position; if (releaseCallBack != null) Fight/Actor/AI/HeroAI_Base.cs
@@ -173,7 +173,7 @@ protected GActorFight DecideAttackTarget(Vector3 searchCenter, float range, int lockNpcID = -1) { GA_Hero _hero = PlayerDatas.Instance.hero; GActorFight _target = _hero.SelectTarget as GActorFight; GActorFight _target = _hero.LockTarget as GActorFight; if (_target == null || !_target.CanAtked()) { Fight/Stage/Dungeon/GuardDungeonStage.cs
@@ -369,7 +369,7 @@ if (guardAdjustPosition) { var functionNpcs = GAMgr.Instance.GetGroupList(E_ActorGroup.FuncNpc); if (functionNpcs != null) if (functionNpcs != null && cageInvincibleEffect != null) { for (int i = 0; i < functionNpcs.Count; i++) { @@ -378,7 +378,6 @@ { var yoffset = actor.Pos.y; actor.Pos = cageInvincibleEffect.transform.position.SetY(yoffset); //Debug.LogFormat("矫正 {0} 的位置到 {1}", actor.ServerInstID, actor.Pos); } } } System/Chat/ChatCtrl.cs
@@ -763,7 +763,7 @@ { bool equip = itemPlaceList[i].packType == PackType.rptEquip; uint[] stones = equip ? PlayerStoneData.Instance.GetStoneInfo(itemPlaceList[i].itemInfo.ItemPlace) : null; _textBuilder.Append(StringUtility.Contact("*", itemPlaceList[i].itemInfo.ItemID, _textBuilder.Append(StringUtility.Contact("#item#", itemPlaceList[i].itemInfo.ItemID, "|", itemPlaceList[i].itemInfo.IsBind, "|", itemPlaceList[i].itemInfo.ItemCount, "|", stones != null ? LitJson.JsonMapper.ToJson(stones) : @@ -814,7 +814,7 @@ ",\"Value\":", LitJson.JsonMapper.ToJson(_array))); _textBuilder.Append("}"); } _textBuilder.Append("*"); _textBuilder.Append("#item#"); if (_recently != null) { _recently.Add(cfg.ItemName, _textBuilder.ToString().Substring(_length)); System/DailyQuest/DailyQuestData.cs
@@ -334,110 +334,133 @@ } public int GetFirstOpenSurplusSeconds() public int GetNextSessionSurplusTime() { if (IsAfterFirstOpen()) if (InOpenTime()) { return 0; } var openDayWeek = (int)TimeUtility.openServerDayOfWeek; var dayIndex = TimeUtility.OpenDay + 1; var maxDays = 15 - openDayWeek == 0 ? 7 : openDayWeek; var startDay = dayIndex; var createRoleTime = TimeUtility.createRoleTime; if (dayIndex == 1 && specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex)) var maxSpecialDays = 15 - (openDayWeek == 0 ? 7 : openDayWeek); var hour = TimeUtility.ServerNow.Hour; var minute = TimeUtility.ServerNow.Minute; for (int i = 0; i <= 7; i++)//一周内必须有活动 { var openServerDay = TimeUtility.ServerNow.AddTicks(-TimeUtility.OpenDay * TimeSpan.TicksPerDay); if (createRoleTime.Year == openServerDay.Year && createRoleTime.Month == openServerDay.Month && createRoleTime.Day == openServerDay.Day) List<HourMinute> hourminutes = null; var days = dayIndex + i; if (days <= maxSpecialDays) { var hourMinutes = specialOpenTimes[openDayWeek][1]; var hourMinute = hourMinutes[hourMinutes.Count - 1]; var hour = createRoleTime.Hour; var minute = createRoleTime.Minute; if (hour > hourMinute.hourEnd || (hour == hourMinute.hourEnd && minute >= hourMinute.minuteEnd)) if (!specialOpenTimes.ContainsKey(openDayWeek) || !specialOpenTimes[openDayWeek].ContainsKey(days)) { startDay++; continue; } hourminutes = specialOpenTimes[openDayWeek][days]; } } for (int i = startDay; i <= maxDays; i++) { if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex)) else { var days = i - dayIndex; var hourMinute = specialOpenTimes[openDayWeek][dayIndex][0]; var hour = TimeUtility.ServerNow.Hour; var minute = TimeUtility.ServerNow.Minute; var time = TimeUtility.ServerNow.AddDays(days); time = new DateTime(time.Year, time.Month, time.Day, hourMinute.hourBegin, hourMinute.minuteBegin, 0); var seconds = (int)(time - TimeUtility.ServerNow).TotalSeconds; return Mathf.Max(0, seconds); var dayOfWeek = (int)TimeUtility.ServerNow.AddTicks(i * TimeSpan.TicksPerDay).DayOfWeek; if (!openTimes.ContainsKey(dayOfWeek)) { continue; } hourminutes = openTimes[dayOfWeek]; } if (hourminutes != null) { foreach (var hourMinute in hourminutes) { if (days == dayIndex && hourMinute.AfterOpenTime(hour, minute)) { continue; } var time = TimeUtility.ServerNow.AddTicks(i * TimeSpan.TicksPerDay); time = new DateTime(time.Year, time.Month, time.Day, hourMinute.hourBegin, hourMinute.minuteBegin, 0); var seconds = (int)(time - TimeUtility.ServerNow).TotalSeconds; return Mathf.Max(0, seconds); } } } return 0; } public bool IsAfterFirstOpen() public int PassSessionCount(DateTime beginTime) { var isSpecialDay = TimeUtility.OpenWeekCnt <= 1; if (!isSpecialDay) { return true; } var openDayWeek = (int)TimeUtility.openServerDayOfWeek; var dayIndex = TimeUtility.OpenDay + 1; var maxDays = 15 - openDayWeek == 0 ? 7 : openDayWeek; var startDay = 1; var createRoleTime = TimeUtility.createRoleTime; if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(1)) var maxSpecialDays = 15 - (openDayWeek == 0 ? 7 : openDayWeek); var beginHour = beginTime.Hour; var beginMinute = beginTime.Minute; var session = 0; var openServerDay = TimeUtility.ServerNow.AddTicks(-TimeUtility.OpenDay * TimeSpan.TicksPerDay); openServerDay = new DateTime(openServerDay.Year, openServerDay.Month, openServerDay.Day); var beginDay = (int)(beginTime - openServerDay).TotalDays + 1; List<HourMinute> hourMinutes = null; if (beginDay <= maxSpecialDays) { var openServerDay = TimeUtility.ServerNow.AddTicks(-TimeUtility.OpenDay * TimeSpan.TicksPerDay); if (createRoleTime.Year == openServerDay.Year && createRoleTime.Month == openServerDay.Month && createRoleTime.Day == openServerDay.Day) if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(beginDay)) { var hourMinutes = specialOpenTimes[openDayWeek][1]; var hourMinute = hourMinutes[hourMinutes.Count - 1]; var hour = createRoleTime.Hour; var minute = createRoleTime.Minute; if (hour > hourMinute.hourEnd || (hour == hourMinute.hourEnd && minute >= hourMinute.minuteEnd)) { startDay = 2; } hourMinutes = specialOpenTimes[openDayWeek][beginDay]; } } for (int i = startDay; i <= maxDays; i++) else { if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex)) var dayOfWeek = (int)beginTime.DayOfWeek; if (openTimes.ContainsKey(dayOfWeek)) { hourMinutes = openTimes[dayOfWeek]; } } if (hourMinutes != null) { var hourMinute = hourMinutes[hourMinutes.Count - 1]; if (hourMinute.AfterOpenTime(beginHour, beginMinute)) { beginDay++; } } var nowHour = TimeUtility.ServerNow.Hour; var nowMinute = TimeUtility.ServerNow.Minute; for (int i = beginDay; i <= dayIndex; i++) { hourMinutes = null; if (i <= maxSpecialDays) { if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(i)) { hourMinutes = specialOpenTimes[openDayWeek][i]; } } else { var dayOfWeek = (int)openServerDay.AddTicks((i - 1) * TimeSpan.TicksPerDay).DayOfWeek; if (openTimes.ContainsKey(dayOfWeek)) { hourMinutes = openTimes[dayOfWeek]; } } if (hourMinutes != null) { if (i < dayIndex) { return true; session += hourMinutes.Count; } if (i == dayIndex) else if (i == dayIndex) { var hourMinute = specialOpenTimes[openDayWeek][dayIndex][0]; var hour = TimeUtility.ServerNow.Hour; var minute = TimeUtility.ServerNow.Minute; if (hour < hourMinute.hourEnd || (hour == hourMinute.hourEnd && minute < hourMinute.minuteEnd)) foreach (var hourMinute in hourMinutes) { return false; if (hourMinute.AfterOpenTime(nowHour, nowMinute)) { session++; } } else { return true; } } if (i > dayIndex) { return false; } } } return true; return session; } public bool ContainTimeNode(int week, int timeNode) @@ -621,6 +644,19 @@ } } public bool AfterOpenTime(int hour,int minute) { if (wholeDay) { return false; } else { var minutes = hour * 60 + minute; return (hourEnd * 60 + minuteEnd) <= minutes; } } public override string ToString() { var minuteBeginStr = minuteBegin > 9 ? minuteBegin.ToString() : StringUtility.Contact("0", minuteBegin); System/Dungeon/DungeonFightWin.cs
@@ -133,19 +133,22 @@ model.dungeonCoolDownEvent -= OnLeaveMapTimeEvent; var mapId = PlayerDatas.Instance.baseData.MapID; var mapConfig = Config.Instance.Get<MapConfig>(mapId); try if (mapId != 31250) { if (mapConfig != null && mapConfig.MapFBType != (int)MapType.OpenCountry) var mapConfig = Config.Instance.Get<MapConfig>(mapId); try { throw new NullReferenceException(); if (mapConfig != null && mapConfig.MapFBType != (int)MapType.OpenCountry) { throw new NullReferenceException(); } } } catch (Exception ex) { Debug.Log(ex); var content = StringUtility.Contact("当前地图:", PlayerDatas.Instance.baseData.MapID, ";堆栈信息:", ex.StackTrace); ExceptionCatcher.ReportException("副本战斗界面异常关闭", content); catch (Exception ex) { Debug.Log(ex); var content = StringUtility.Contact("当前地图:", PlayerDatas.Instance.baseData.MapID, ";堆栈信息:", ex.StackTrace); ExceptionCatcher.ReportException("副本战斗界面异常关闭", content); } } } System/FairyAu/FairyGrabBossModel.cs
@@ -346,6 +346,12 @@ noticeShowPet = int.Parse(config.Numerical1); noticeShowHorse = int.Parse(config.Numerical2); } config = Config.Instance.Get<FuncConfigConfig>("FairyGrabBossNoticeSessions"); noticeSessions = 2; if (config != null) { noticeSessions = int.Parse(config.Numerical1); } } public bool TryGetDropItems(int bossId, out List<Item> dropItems) @@ -697,7 +703,8 @@ DailyQuestOpenTime dailyQuestOpenTime; if (dailyQuestModel.TryGetOpenTime((int)DailyQuestType.FairyGrabBoss, out dailyQuestOpenTime)) { return FuncOpen.Instance.IsFuncOpen(139) && !dailyQuestOpenTime.IsAfterFirstOpen(); return FuncOpen.Instance.IsFuncOpen(139) && dailyQuestOpenTime.PassSessionCount(TimeUtility.createRoleTime) < noticeSessions; } return false; } @@ -715,17 +722,20 @@ bool cacheNoticeOpen { get; set; } int noticeSessions { get; set; } public event Action<int> onStateUpate; public int GetFirstOpenSeconds() public int GetNextSessionSeconds() { int seconds = 0; if (!InActivityTime) if (!IsOpen) { DailyQuestOpenTime dailyQuestOpenTime; if (dailyQuestModel.TryGetOpenTime((int)DailyQuestType.FairyGrabBoss, out dailyQuestOpenTime)) { seconds = dailyQuestOpenTime.GetFirstOpenSurplusSeconds(); } return 0; } DailyQuestOpenTime dailyQuestOpenTime; if (dailyQuestModel.TryGetOpenTime((int)DailyQuestType.FairyGrabBoss, out dailyQuestOpenTime)) { seconds = dailyQuestOpenTime.GetNextSessionSurplusTime(); } return seconds; } System/FairyAu/FairyGrabBossNoticeWin.cs
@@ -77,7 +77,7 @@ void DisplayTime() { var seconds = model.GetFirstOpenSeconds(); var seconds = model.GetNextSessionSeconds(); var isOpen = model.IsOpen; if (seconds > 0) { System/HeavenBattle/HeavenBattleModel.cs
@@ -11,12 +11,8 @@ { public const int HEAVEBATTLE_MAPID = 31010; public const int HEAVEBATTLE_TargetID = 38; public const int HEAVEBATTLE_START = 1; public const int HeavenBattleDailyId = 14; List<DungeonStateTimeConfig> prepareConfiglist; DailyQuestConfig dailyConfig; public HeavenBattleState heavenBattleState { get; private set; } Dictionary<DayOfWeek,WeekTime> heavenBattleWeekTimeDict = new Dictionary<DayOfWeek,WeekTime>(); public Dictionary<int,List<XMZZVictoryRewardInfo>> heavenAwardDict { get; private set; } public Dictionary<int, ItemCellModel> campVicRewardDict { get; private set; } public Dictionary<int, ItemCellModel> campFailRewardDict { get; private set; } @@ -49,24 +45,6 @@ public override void Init() { heavenBattleWeekTimeDict.Clear(); prepareConfiglist = DungeonStateTimeConfig.DungeonStateTimelist(HEAVEBATTLE_MAPID, HEAVEBATTLE_START); for(int i = 0; i < prepareConfiglist.Count;i++) { DungeonStateTimeConfig prepareConfig = prepareConfiglist[i]; WeekTime weekTime1 = new WeekTime(prepareConfig.StartWeekday, prepareConfig.StartHour , prepareConfig.StartMinute, prepareConfig.EndHour, prepareConfig.EndMinute); DayOfWeek dayOfWeek = (DayOfWeek)(prepareConfig.StartWeekday % 7); if(!heavenBattleWeekTimeDict.ContainsKey(dayOfWeek)) { heavenBattleWeekTimeDict.Add(dayOfWeek, weekTime1); } else { heavenBattleWeekTimeDict[dayOfWeek] = weekTime1; } } FuncConfigConfig heavenAwardConfig = Config.Instance.Get<FuncConfigConfig>("XMZZAward"); JsonData xmzzVicRewardData = JsonMapper.ToObject(heavenAwardConfig.Numerical1); heavenAwardDict = new Dictionary<int, List<XMZZVictoryRewardInfo>>(); @@ -189,7 +167,7 @@ { if(dailyQuestModel.GetQuestState(dailyConfig.ID) != DailyQuestModel.DailyQuestState.OutTime) { if (!WindowCenter.Instance.IsOpen<HeavenBattleWin>()) if (!WindowCenter.Instance.IsOpen<HeavenBattleWin>() && GetActivityRemainTime() > 0) { var config = Config.Instance.Get<DailyQuestConfig>(dailyConfig.ID); dungeonModel.currentDungeon = new Dungeon(config.RelatedID, 0); @@ -348,40 +326,38 @@ #endregion public HeavenBattleState GetXMZZState() { heavenBattleState = HeavenBattleState.None; DayOfWeek serverWeekDay = TimeUtility.ServerNow.DayOfWeek; if (heavenBattleWeekTimeDict.ContainsKey(serverWeekDay)) { WeekTime activityEndWeek = new WeekTime(heavenBattleWeekTimeDict[serverWeekDay].dayOfWeek, heavenBattleWeekTimeDict[serverWeekDay].endHour, heavenBattleWeekTimeDict[serverWeekDay].endMinute , 0, 0); if ((WeekTime.Now - heavenBattleWeekTimeDict[serverWeekDay]).TotalSeconds >= 0 && (activityEndWeek - WeekTime.Now).TotalSeconds >= 0) { heavenBattleState = HeavenBattleState.BattleStart; } else if ((WeekTime.Now - activityEndWeek).TotalSeconds > 0) { heavenBattleState = HeavenBattleState.BattleEnd; } } return heavenBattleState; } public int GetActivityRemainTime() { if (heavenBattleWeekTimeDict.ContainsKey(TimeUtility.ServerNow.DayOfWeek)) DailyQuestOpenTime openTime = null; bool isActivity = dailyQuestModel.TryGetOpenTime(HeavenBattleDailyId,out openTime); if(isActivity) { DayOfWeek serverWeekDay = TimeUtility.ServerNow.DayOfWeek; List<HourMinute> hourMinutes = openTime.GetHourMinuteByWeek((int)TimeUtility.ServerNow.DayOfWeek); if(hourMinutes != null && hourMinutes.Count > 0) { HourMinute hourMinute = hourMinutes[0]; DateTime endTime = new DateTime(TimeUtility.ServerNow.Year,TimeUtility.ServerNow.Month, TimeUtility.ServerNow.Day, hourMinute.hourEnd,hourMinute.minuteEnd,0); DateTime startTime = new DateTime(TimeUtility.ServerNow.Year, TimeUtility.ServerNow.Month, TimeUtility.ServerNow.Day, hourMinute.hourBegin, hourMinute.minuteBegin, 0); int advanceSec = Mathf.CeilToInt((float)(startTime - TimeUtility.ServerNow).TotalSeconds); int endSec = Mathf.CeilToInt((float)(endTime - TimeUtility.ServerNow).TotalSeconds); if(advanceSec > 0) { return 0; } else if(endSec <= 0) { return 0; } else { return endSec; } WeekTime endTime = new WeekTime(heavenBattleWeekTimeDict[serverWeekDay].dayOfWeek, heavenBattleWeekTimeDict[serverWeekDay].endHour, heavenBattleWeekTimeDict[serverWeekDay].endMinute , 0, 0); return (int)(endTime - WeekTime.Now).TotalSeconds; } } return 0; } System/HeavenBattle/HeavenBattleWin.cs
@@ -96,6 +96,9 @@ //this.transform.SetAsLastSibling(); RefreshPlayerInfoUI(); RefreshBattleInfo(BATTLEINFO_TYPE); int remainTime = heavenModel.GetActivityRemainTime(); RefreshRemainTimeText(remainTime); TimeDownMgr.Instance.Begin(TimeDownMgr.CoolTimeType.HeavenBattleReaminTime, remainTime, RefreshRemainTimeText); } protected override void OnPreClose() @@ -134,10 +137,7 @@ victoryCntlist = heavenModel.heavenAwardDict.Keys.ToList(); rewardSlider.minValue = victoryCntlist[0]; rewardSlider.maxValue = victoryCntlist[victoryCntlist.Count - 1]; int remainTime = heavenModel.GetActivityRemainTime(); RefreshRemainTimeText(remainTime); TimeDownMgr.Instance.Begin(TimeDownMgr.CoolTimeType.HeavenBattleReaminTime, remainTime, RefreshRemainTimeText); for (int i = victoryCntlist.Count - 1; i > -1; i--) { XMZZVictoryRewardInfo rewardInfo = heavenModel.heavenAwardDict[victoryCntlist[i]][0]; System/Market/MarketDealWin.cs
@@ -95,6 +95,10 @@ private void OnRefreshQueryMarketItem() { if (model.presentItemType == -1) { return; } m_ItemController.m_Scorller.spacing = 14; m_ItemController.Refresh(); List<MarketItemData> list = null; System/Message/HrefAnalysis.cs
@@ -272,7 +272,7 @@ } public static Regex EquipRegex = new Regex(@"\[([\u4e00-\u9fa5a-zA-Z0-9\|'_\(\)()\. ::]+?)\]", RegexOptions.Singleline); public static Regex EquipDetailRegex = new Regex("\\*([\u4e00-\u9fa5a-zA-Z0-9\\|'_\\(\\)()\\. ::\\,\\[\\]a-zA-Z\"\\{\\}]+?)\\*", RegexOptions.Singleline); public static Regex EquipDetailRegex = new Regex("#item#([\u4e00-\u9fa5a-zA-Z0-9\\|'_\\(\\)()\\. ::\\,\\[\\]a-zA-Z\"\\{\\}]+?)#item#", RegexOptions.Singleline); public bool ExcuteHrefEvent(string msg, int index = 0) { System/OpenServerActivity/OpenServerActivityWin.cs
@@ -186,7 +186,7 @@ if (cell != null) { var activityCell = cell as OpenServerActivityCell; var seconds = fairyGrabBossModel.GetFirstOpenSeconds(); var seconds = fairyGrabBossModel.GetNextSessionSeconds(); bool isOpen = fairyGrabBossModel.IsOpen; activityCell.title.gameObject.SetActive(seconds > 0 || isOpen); activityCell.title.color = UIHelper.GetUIColor(TextColType.Green, true); @@ -282,7 +282,7 @@ break; case 13: { var seconds = fairyGrabBossModel.GetFirstOpenSeconds(); var seconds = fairyGrabBossModel.GetNextSessionSeconds(); bool isOpen = fairyGrabBossModel.IsOpen; _cell.title.gameObject.SetActive(seconds > 0 || isOpen); _cell.title.color = UIHelper.GetUIColor(TextColType.Green, true); System/OpenServerActivity/PoolItemCell.cs
New file @@ -0,0 +1,42 @@ using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; namespace Snxxz.UI { public class PoolItemCell : MonoBehaviour,IDragHandler,IDropHandler { [SerializeField] CommonItemBaisc itemBaisc; [SerializeField] GameObject bestIconObj; ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } } WishingPoolModel wishingModel { get { return ModelCenter.Instance.GetModel<WishingPoolModel>(); } } int itemId = 0; public void OnDrag(PointerEventData eventData) { Debug.Log("拖拽开始"); wishingModel.isDraging = true; wishingModel.dragItemId = itemId; } public void OnDrop(PointerEventData eventData) { Debug.Log("拖拽结束"); wishingModel.ResetDragData(); } public void Display(int itemId) { this.itemId = itemId; bestIconObj.SetActive(false); ItemCellModel cellModel = new ItemCellModel(itemId); itemBaisc.Init(cellModel); itemBaisc.cellBtn.RemoveAllListeners(); itemBaisc.cellBtn.AddListener(()=> { ItemAttrData attrData = new ItemAttrData(itemId); tipsModel.SetItemTipsModel(attrData); }); } } } System/OpenServerActivity/PoolItemCell.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: cfb17095c4683604ab0d6ee15f706366 timeCreated: 1539852829 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/OpenServerActivity/WishingPoolModel.cs
New file @@ -0,0 +1,81 @@ using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class WishingPoolModel : Model,IBeforePlayerDataInitialize,IPlayerLoginOk { public override void Init() { } public void OnBeforePlayerDataInitialize() { ResetDragData(); ResetPoolData(); } public void OnPlayerLoginOk() { SetWishingPoolData(); } public override void UnInit() { } #region 本地数据 public bool isDraging { get; set; } public int dragItemId { get; set; } public void ResetDragData() { isDraging = false; dragItemId = 0; } #endregion #region 协议 Dictionary<int, int> poolDataDict = new Dictionary<int, int>(); public void SetWishingPoolData() { for(int i = 0; i< 8; i++) { int itemId = 10101 + i; poolDataDict.Add(i,itemId); } } Dictionary<int, int> wishingDataDict = new Dictionary<int, int>(); public void SetWishingData(int index,int id) { if(!wishingDataDict.ContainsKey(index)) { wishingDataDict.Add(index,id); } else { wishingDataDict[index] = id; } } public bool TryGetPoolDataByIndex(int index,out int id) { return poolDataDict.TryGetValue(index,out id); } public bool TryGetWishDataByIndex(int index, out int id) { return wishingDataDict.TryGetValue(index, out id); } #endregion public void ResetPoolData() { poolDataDict.Clear(); wishingDataDict.Clear(); } } } System/OpenServerActivity/WishingPoolModel.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 15695b2ce757fe2489989e1c5b8112c2 timeCreated: 1539851881 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/OpenServerActivity/WishingPoolWin.cs
New file @@ -0,0 +1,129 @@ using UnityEngine; using UnityEngine.UI; using System.Collections.Generic; using System; namespace Snxxz.UI { public class WishingPoolWin : Window { [SerializeField] DragItem dragItem; [SerializeField] List<PoolItemCell> poolItemCells = new List<PoolItemCell>(); [SerializeField] List<WishingCell> wishingCells = new List<WishingCell>(); ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } } WishingPoolModel wishingModel { get { return ModelCenter.Instance.GetModel<WishingPoolModel>(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } #endregion private void Display() { UpdatePoolItem(); for(int i = 0; i < wishingCells.Count; i++) { UpdateWishItemByIndex(i); } } protected override void LateUpdate() { if(wishingModel.isDraging) { } } private void UpdatePoolItem() { for (int i = 0; i < poolItemCells.Count; i++) { UpdatePoolItemByIndex(i); } } private void UpdatePoolItemByIndex(int index) { int id = 0; var poolItemCell = poolItemCells[index]; bool isPoolData = wishingModel.TryGetPoolDataByIndex(index, out id); if (isPoolData) { poolItemCell.gameObject.SetActive(true); poolItemCell.Display(id); } else { poolItemCell.gameObject.SetActive(false); } } private void UpdateWishItemByIndex(int index) { int id = 0; var wishCell = wishingCells[index]; bool isWishData = wishingModel.TryGetWishDataByIndex(index, out id); if (isWishData) { wishCell.itemBaisc.gameObject.SetActive(true); wishCell.noneItemObj.gameObject.SetActive(false); ItemCellModel cellModel = new ItemCellModel(id); wishCell.itemBaisc.Init(cellModel); wishCell.itemBaisc.cellBtn.RemoveAllListeners(); wishCell.itemBaisc.cellBtn.AddListener(() => { ItemAttrData attrData = new ItemAttrData(id); tipsModel.SetItemTipsModel(attrData); }); } else { wishCell.itemBaisc.gameObject.SetActive(false); wishCell.noneItemObj.gameObject.SetActive(true); } } [Serializable] public class WishingCell { public CommonItemBaisc itemBaisc; public GameObject noneItemObj; public Button noneItemBtn; } [Serializable] public class DragItem { [SerializeField] CommonItemBaisc dragItemBasic; [SerializeField] GameObject dragBestIcon; } } } System/OpenServerActivity/WishingPoolWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: c258b8a747a14734ea67448bf5870305 timeCreated: 1539851707 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/RuneTower/RunePreviewBehaviour.cs
@@ -31,8 +31,23 @@ private void PreView() { var config = Config.Instance.Get<RuneConfig>(runeId); if (config == null) { return; } var towerFloorConfig = Config.Instance.Get<RuneTowerFloorConfig>(config.TowerID); if (towerFloorConfig == null) { return; } var runeTowerConfig = Config.Instance.Get<RuneTowerConfig>(towerFloorConfig.TowerId); if (runeTowerConfig == null) { return; } var runeModel = ModelCenter.Instance.GetModel<RuneModel>(); var propertyValue = runeModel.GetRuneAttrStr(runeId, 1); System/Welfare/AwardExchangeWin.cs
@@ -10,6 +10,8 @@ [SerializeField] InputField input; [SerializeField] Button receiveBtn; const string exchangeUrl = "http://center.2460web.com:53003/Coupon/CouponCode.php?"; bool isCool = false; float time = 0; protected override void BindController() { @@ -22,6 +24,8 @@ protected override void OnPreOpen() { time = 0; isCool = false; InitUI(); } protected override void OnAfterOpen() @@ -39,6 +43,19 @@ } protected override void LateUpdate() { if(isCool) { time += Time.deltaTime; if(time >= 3) { time = 0; isCool = false; } } } private void InitUI() { input.text = string.Empty; @@ -46,6 +63,8 @@ private void ClickRecevieBtn() { if (isCool) return; string passward = input.text; if(string.IsNullOrEmpty(passward)) { @@ -54,6 +73,7 @@ } else { isCool = true; var tables = new Dictionary<string, string>(); tables["channel"] = VersionConfig.Get().appId; tables["code"] = passward; @@ -61,8 +81,19 @@ tables["sid"] = ServerListCenter.Instance.currentServer.region_flag.ToString(); tables["pushurl"] = ServerListCenter.Instance.currentServer.region_domain; tables["spid"] = VersionConfig.Get().SpID; tables["roleid"] = UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName); tables["level"] = PlayerDatas.Instance.baseData.LV.ToString(); tables["viplevel"] = PlayerDatas.Instance.baseData.VIPLv.ToString(); HttpRequest.Instance.RequestHttpGet(StringUtility.Contact(exchangeUrl, HttpRequest.HashtablaToString(tables)), HttpRequest.defaultHttpContentType, 1, null); } if(passward.Length > 1) { string wxCode = passward.Substring(0, 2); if (wxCode == "wx") { WindowCenter.Instance.CloseImmediately<WelfareWin>(); } } } } } Utility/LanguageVerify.cs
@@ -162,7 +162,8 @@ return; } var account = ModelCenter.Instance.GetModel<LoginModel>().sdkLoginResult.account; var sdkLoginResult = ModelCenter.Instance.GetModel<LoginModel>().sdkLoginResult; var account = sdkLoginResult == null ? string.Empty : sdkLoginResult.account; var playerId = PlayerDatas.Instance.baseData.PlayerID; var playerName = PlayerDatas.Instance.baseData.PlayerName; var ts = System.DateTime.UtcNow - new System.DateTime(1970, 1, 1, 0, 0, 0, 0);