| Main/System/BeautyMM/BeautyMMTravelWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Chat/ChatBulletView.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Chat/ChatManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Chat/ChatPlayerMineCell.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Chat/ChatPlayerOtherCell.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Chat/ChatWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Guild/GuildBossManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Guild/GuildManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/ItemTip/ItemBatchUseWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/KnapSack/Logic/ItemLogicUtility.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Main/HomeWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/TimingGift/TimingGiftWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Main/System/BeautyMM/BeautyMMTravelWin.cs
@@ -307,7 +307,7 @@ void AddEnergy() { ItemLogicUtility.Instance.ShowItemBatchUseWin(BeautyMMManager.Instance.addEnergyItemID, ShowTip); ItemLogicUtility.Instance.ShowItemBatchUseWin(BeautyMMManager.Instance.addEnergyItemID, ShowTip, Language.Get("GuildBoss22")); } string ShowTip(long useCnt) Main/System/Chat/ChatBulletView.cs
@@ -61,6 +61,8 @@ fmlv = fairyMember.FmLV; } return Language.Get("Chat16", RichTextMsgReplaceConfig.GetRichReplace("FAMILY", fmlv), data.Name, data.Content); case ChatChannel.CrossServer: return Language.Get("Chat17", data.Name, data.Content); default: return data.Content; } Main/System/Chat/ChatManager.cs
@@ -115,7 +115,7 @@ { talkDict.Clear(); lastTalkDataDict.Clear(); currentDay = -1; currentDayDict.Clear(); nowChatChannel = ChatChannel.World; nowChatTab = ChatTab.World; } @@ -413,13 +413,19 @@ } } public int currentDay = -1; public Dictionary<ChatChannel, int> currentDayDict = new Dictionary<ChatChannel, int>(); public bool TryAddDate(int allSeconds, ChatChannel type, bool isSendBullet) { DateTime talkTime = TimeUtility.GetTime((uint)allSeconds); if (talkTime.Day != currentDay) // 确保字典中包含该频道的条目 if (!currentDayDict.ContainsKey(type)) { currentDay = talkTime.Day; currentDayDict[type] = -1; } // 每个频道独立检查日期 if (talkTime.Day != currentDayDict[type]) { currentDayDict[type] = talkTime.Day; AddTalkData(type, new TalkData() { ChannelType = (byte)type, @@ -434,7 +440,7 @@ public void AddSysData(string msg, ArrayList infoList, ChatChannel type, bool isSendBullet) { int allSeconds = TimeUtility.AllSeconds; int allSeconds = type == ChatChannel.CrossServer ? TimeUtility.GetCommServerTick(GuildManager.Instance.zoneID) : TimeUtility.AllSeconds; // 如果隔天,增加日期行 TryAddDate(allSeconds, type, isSendBullet); @@ -464,7 +470,7 @@ talkDict[type] = new List<TalkData>(); } int allSeconds = TimeUtility.AllSeconds; int allSeconds = type == ChatChannel.CrossServer ? TimeUtility.GetCommServerTick(GuildManager.Instance.zoneID) : TimeUtility.AllSeconds; // 如果隔天,增加日期行 TryAddDate(allSeconds, type, true); @@ -572,6 +578,7 @@ { ChatTab.World, ChatTab.Guild, ChatTab.CrossServer, // ChatTab.Person, // ChatTab.BlackList, }; @@ -583,8 +590,6 @@ switch (chatTab) { case ChatTab.World: return true; case ChatTab.Guild: //没有公会 if (!PlayerDatas.Instance.fairyData.HasFairy) @@ -594,8 +599,17 @@ return false; } return true; default: case ChatTab.CrossServer: //没有合服 if (GuildManager.Instance.zoneID <= 0) { if (isTip) SysNotifyMgr.Instance.ShowTip("CrossServerNoOpen"); return false; } return true; default: return true; } } @@ -697,8 +711,9 @@ { World = 0, //世界 Guild = 1, //公会 Person = 2, //私聊 BlackList = 3, //黑名单 CrossServer = 2, //跨服 Person = 3, //私聊 BlackList = 4, //黑名单 } public enum ChatChannel { Main/System/Chat/ChatPlayerMineCell.cs
@@ -30,11 +30,16 @@ string serverName = ServerListCenter.Instance.GetServerName(UIHelper.GetServerIDByAccount(PlayerDatas.Instance.baseData.AccID)); m_PlayerName.text = Language.Get("Chat08", serverName, PlayerDatas.Instance.baseData.PlayerName); } else else if (manager.nowChatTab == ChatTab.Guild) { int fmlv = PlayerDatas.Instance.fairyData.mine.FmLV; m_PlayerName.text = Language.Get("Chat08", RichTextMsgReplaceConfig.GetRichReplace("FAMILY", fmlv), PlayerDatas.Instance.baseData.PlayerName); } else if (manager.nowChatTab == ChatTab.CrossServer) { string serverName = ServerListCenter.Instance.GetServerName(UIHelper.GetServerIDByAccount(PlayerDatas.Instance.baseData.AccID)); m_PlayerName.text = Language.Get("Chat08", serverName, PlayerDatas.Instance.baseData.PlayerName); } } public float GetHeight(string content, ArrayList list) Main/System/Chat/ChatPlayerOtherCell.cs
@@ -32,7 +32,7 @@ string serverName = ServerListCenter.Instance.GetServerName((int)data.ServerID); m_PlayerName.text = Language.Get("Chat08", serverName, data.Name); } else else if (manager.nowChatTab == ChatTab.Guild) { FairyMember fairyMember = PlayerDatas.Instance.fairyData.GetMember((int)data.PlayerID); int fmlv = 0; @@ -42,6 +42,11 @@ } m_PlayerName.text = Language.Get("Chat08", RichTextMsgReplaceConfig.GetRichReplace("FAMILY", fmlv), data.Name); } else if (manager.nowChatTab == ChatTab.CrossServer) { string serverName = ServerListCenter.Instance.GetServerName((int)data.ServerID); m_PlayerName.text = Language.Get("Chat08", serverName, data.Name); } avatarCell.SetListener(() => { Main/System/Chat/ChatWin.cs
@@ -22,7 +22,9 @@ [SerializeField] TextEx txtSendChat; [SerializeField] ScrollerController scrWorld; [SerializeField] ScrollerController scrGuild; [SerializeField] ScrollerController scrCrossServer; [SerializeField] ButtonEx serversBtn; private int unreadMsgCount = 0; [SerializeField] ButtonEx btnNewMsgTip; [SerializeField] TextEx txtNewMsgTip; @@ -32,6 +34,7 @@ bool isSettingOpen = false; [SerializeField] ChatSettingButton btnWorldSetting; [SerializeField] ChatSettingButton btnGuildSetting; [SerializeField] ChatSettingButton btnCrossServerSetting; ChatManager manager { get { return ChatManager.Instance; } } protected override void InitComponent() @@ -69,6 +72,11 @@ RefreshChat(manager.nowChatChannel, scrGuild); ScrollerJump(scrGuild, ChatChannel.Guild); } else if (manager.nowChatChannel == ChatChannel.CrossServer) { RefreshChat(manager.nowChatChannel, scrCrossServer); ScrollerJump(scrCrossServer, ChatChannel.CrossServer); } ClearUnreadMsg(); }); btnSetting.SetListener(() => @@ -76,7 +84,10 @@ isSettingOpen = !isSettingOpen; transSettings.SetActive(isSettingOpen); }); serversBtn.SetListener(() => { UIHelper.ShowServersPanel(GuildManager.Instance.crossServerIDList); }); } // 清理未读消息状态 @@ -104,12 +115,18 @@ manager.OnUpdatePlayerInfoEvent += OnUpdatePlayerInfoEvent; scrChatTab.OnRefreshCell += OnRefreshChatTabCell; scrWorld.OnGetDynamicSize += OnGetWorldChatDynamicSize; scrWorld.OnRefreshCell += OnRefreshWorldCell; scrWorld.mScrollRect.onValueChanged.AddListener(OnWorldScrollValChange); scrGuild.OnGetDynamicSize += OnGetGuildChatDynamicSize; scrGuild.OnRefreshCell += OnRefreshGuildCell; scrGuild.mScrollRect.onValueChanged.AddListener(OnGuildScrollValChange); scrCrossServer.OnGetDynamicSize += OnGetChatDynamicSize; scrCrossServer.OnRefreshCell += OnRefreshCell; scrCrossServer.mScrollRect.onValueChanged.AddListener(OnCrossServerScrollValChange); clickScreenOtherSpace.AddListener(OnClickScreenOtherSpace); GlobalTimeEvent.Instance.secondEvent += OnSecondEvent; @@ -119,6 +136,7 @@ transSettings.SetActive(isSettingOpen); btnWorldSetting.SetChannelType(ChatChannel.World); btnGuildSetting.SetChannelType(ChatChannel.Guild); btnCrossServerSetting.SetChannelType(ChatChannel.CrossServer); inputChat.characterLimit = ChatManager.Instance.characterLimit; CreaterAll(manager.nowChatTab); } @@ -139,9 +157,15 @@ scrWorld.OnGetDynamicSize -= OnGetWorldChatDynamicSize; scrWorld.OnRefreshCell -= OnRefreshWorldCell; scrWorld.mScrollRect.onValueChanged.RemoveListener(OnWorldScrollValChange); scrGuild.OnGetDynamicSize -= OnGetGuildChatDynamicSize; scrGuild.OnRefreshCell -= OnRefreshGuildCell; scrGuild.mScrollRect.onValueChanged.RemoveListener(OnGuildScrollValChange); scrCrossServer.OnGetDynamicSize -= OnGetChatDynamicSize; scrCrossServer.OnRefreshCell -= OnRefreshCell; scrCrossServer.mScrollRect.onValueChanged.RemoveListener(OnCrossServerScrollValChange); GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent; clickScreenOtherSpace.RemoveAllListeners(); } @@ -165,6 +189,10 @@ else if (channel == ChatChannel.Guild) { CreateScroller(scrGuild, channel); } else if (channel == ChatChannel.CrossServer) { CreateScroller(scrCrossServer, channel); } } @@ -227,7 +255,10 @@ { if (scrWorld.lockType != EnhanceLockType.LockVerticalBottom) scrWorld.lockType = EnhanceLockType.LockVerticalBottom; if (scrGuild.lockType != EnhanceLockType.LockVerticalBottom) scrGuild.lockType = EnhanceLockType.LockVerticalBottom; if (scrCrossServer.lockType != EnhanceLockType.LockVerticalBottom) scrCrossServer.lockType = EnhanceLockType.LockVerticalBottom; // 如果回到底部,直接清零消息 ClearUnreadMsg(); } @@ -236,6 +267,10 @@ { if (scrWorld.lockType != EnhanceLockType.KeepVertical) scrWorld.lockType = EnhanceLockType.KeepVertical; if (scrGuild.lockType != EnhanceLockType.KeepVertical) scrGuild.lockType = EnhanceLockType.KeepVertical; if (scrCrossServer.lockType != EnhanceLockType.KeepVertical) scrCrossServer.lockType = EnhanceLockType.KeepVertical; } } } @@ -248,6 +283,10 @@ private void OnGuildScrollValChange(Vector2 _pos) { OnScrollValChange(scrGuild, _pos); } private void OnCrossServerScrollValChange(Vector2 _pos) { OnScrollValChange(scrCrossServer, _pos); } private void OnScrollValChange(ScrollerController scorller, Vector2 _pos) @@ -308,7 +347,11 @@ scrGuild.lockType = EnhanceLockType.LockVerticalBottom; // 初始锁定底部 scrGuild.SetActive(chatTab == ChatTab.Guild); transInput.SetActive(chatTab == ChatTab.World || chatTab == ChatTab.Guild); scrCrossServer.lockType = EnhanceLockType.LockVerticalBottom; // 初始锁定底部 scrCrossServer.SetActive(chatTab == ChatTab.CrossServer); transInput.SetActive(true); serversBtn.SetActive(chatTab == ChatTab.CrossServer); CreateChatTabScroller(); @@ -324,6 +367,12 @@ manager.nowChatChannel = ChatChannel.Guild; CreateScroller(scrGuild, ChatChannel.Guild); ScrollerJump(scrGuild, ChatChannel.Guild); ClearUnreadMsg(); break; case ChatTab.CrossServer: manager.nowChatChannel = ChatChannel.CrossServer; CreateScroller(scrCrossServer, ChatChannel.CrossServer); ScrollerJump(scrCrossServer, ChatChannel.CrossServer); ClearUnreadMsg(); break; } @@ -354,6 +403,10 @@ else if (type == ChatChannel.Guild) { RefreshChat(type, scrGuild, playerId, isUpdatePlayerInfo); } else if (type == ChatChannel.CrossServer) { RefreshChat(type, scrCrossServer, playerId, isUpdatePlayerInfo); } } @@ -391,6 +444,8 @@ return; if (type == ChatChannel.Guild && manager.nowChatTab != ChatTab.Guild) return; if (type == ChatChannel.CrossServer && manager.nowChatTab != ChatTab.CrossServer) return; // 1. 自己发送的消息 -> 强制跳转到底部 + 清零 if (playerId == PlayerDatas.Instance.PlayerId) { @@ -423,7 +478,7 @@ } // 特殊情况:如果未读数量巨大(超过了总显示数量),说明整个列表都被刷新了,直接消零 if (unreadMsgCount >= scrWorld.GetNumberOfCells(scrWorld.m_Scorller)) if (unreadMsgCount >= scroller.GetNumberOfCells(scroller.m_Scorller)) { ClearUnreadMsg(); } Main/System/Guild/GuildBossManager.cs
@@ -100,12 +100,14 @@ { DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitializeEventOnRelogin; GuildManager.Instance.EnterOrQuitGuildEvent += EnterOrQuitGuildEvent; PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo; ParseConfig(); } public override void Release() { DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin -= OnBeforePlayerDataInitializeEventOnRelogin; GuildManager.Instance.EnterOrQuitGuildEvent -= EnterOrQuitGuildEvent; PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo; } void OnBeforePlayerDataInitializeEventOnRelogin() @@ -123,6 +125,10 @@ taofaPlayerData.Clear(); } private void OnRefreshFairyInfo() { UpdateRedpoint(); } void EnterOrQuitGuildEvent(bool isEnter) { Main/System/Guild/GuildManager.cs
@@ -64,6 +64,7 @@ private void OnRefreshFairyInfo() { UpdateRequestRedpoint(); UpdateDonateRedPoint(); } void OnBeforePlayerDataInitialize() Main/System/ItemTip/ItemBatchUseWin.cs
@@ -8,29 +8,38 @@ public class ItemBatchUseWin : UIBase { [SerializeField] ItemCell itemCell; [SerializeField] Text itemCntTxt; [SerializeField] LongPressButton subBtn; [SerializeField] LongPressButton addBtn; [SerializeField] Text nameText; [SerializeField] Text countText; [SerializeField] Text descText; [SerializeField] SliderPanel sliderPanel; [SerializeField] Text tipText; [SerializeField] Button okBtn; [SerializeField] Text btnNameText; [SerializeField] Text titleText; public static Func<long, string> ShowTextEvent; public static int itemID; long curUseCount; long maxCount; public static string btnName; int useCnt; long maxCnt; protected override void InitComponent() { addBtn.SetListener(OnClickPlus); addBtn.onPress.AddListener(OnClickPlus); subBtn.SetListener(OnClickReduce); subBtn.onPress.AddListener(OnClickReduce); okBtn.AddListener(OnOK); } protected override void OnPreOpen() { useCnt = 1; Display(); } void Display() { var key = "UseItemTitle_" + itemID; if (LanguageConfig.HasKey(key)) { @@ -40,32 +49,36 @@ { titleText.text = Language.Get("UseItemDefault"); } maxCount = PackManager.Instance.GetItemCountByID(PackType.Item, itemID); curUseCount = maxCount > 0 ? 1 : 0; itemCell.Init(new ItemCellModel(itemID, false, curUseCount)); maxCnt = PackManager.Instance.GetItemCountByID(PackType.Item, itemID); useCnt = maxCnt > 0 ? 1 : 0; itemCell.Init(new ItemCellModel(itemID, false, useCnt)); itemCell.button.AddListener(() => { ItemTipUtility.Show(itemID); }); RefreshCount(); RefreshBtn(); var itemConfig = ItemConfig.Get(itemID); nameText.text = itemConfig.ItemName; countText.text = Language.Get("storename12", maxCnt); descText.text = itemConfig.Description; OnSliderChange(useCnt); sliderPanel.Init((value) => { OnSliderChange(value); }, (int)maxCnt); btnNameText.text = btnName; } protected override void OnPreClose() void OnSliderChange(int value) { } useCnt = value; itemCell.countText.text = UIHelper.ReplaceLargeNum(useCnt); void RefreshCount() { itemCntTxt.text = curUseCount + "/" + maxCount; itemCell.countText.text = curUseCount.ToString(); if (ShowTextEvent != null) { tipText.text = ShowTextEvent(curUseCount); tipText.text = ShowTextEvent(useCnt); } else { @@ -74,66 +87,21 @@ } void RefreshBtn() { if (curUseCount >= maxCount) { addBtn.interactable = false; addBtn.SetColorful(null, false); } else { addBtn.interactable = true; addBtn.SetColorful(null, true); } if (curUseCount == 0) { subBtn.interactable = false; subBtn.SetColorful(null, false); } else { subBtn.interactable = true; subBtn.SetColorful(null, true); } } void OnClickPlus() { if (curUseCount >= maxCount) { curUseCount = maxCount; return; } curUseCount++; RefreshCount(); RefreshBtn(); } void OnClickReduce() { if (curUseCount == 0) return; curUseCount--; RefreshCount(); RefreshBtn(); } void OnOK() { CloseWindow(); if (curUseCount == 0) if (useCnt == 0) { SysNotifyMgr.Instance.ShowTip("UseItem1"); return; } if (ItemLogicUtility.CheckItemCount(PackType.Item, itemID, curUseCount, 2)) if (ItemLogicUtility.CheckItemCount(PackType.Item, itemID, useCnt, 1)) { ItemLogicUtility.Instance.UseItem(PackManager.Instance.GetItemGUIDByID(itemID), (int)curUseCount); ItemLogicUtility.Instance.UseItem(PackManager.Instance.GetItemGUIDByID(itemID), useCnt); } SysNotifyMgr.Instance.ShowTip("UseOK"); } } Main/System/KnapSack/Logic/ItemLogicUtility.cs
@@ -292,18 +292,20 @@ /// </summary> /// <param name="itemID">要使用的物品</param> /// <param name="showTipEvent">参数为要使用的物品数量,返回值为文本</param> public void ShowItemBatchUseWin(int itemID, Func<long, string> showTipEvent) public void ShowItemBatchUseWin(int itemID, Func<long, string> showTipEvent, string btnName) { if (UIManager.Instance.IsOpened<ItemBatchUseWin>()) { UIManager.Instance.CloseWindow<ItemBatchUseWin>(); } if (!CheckItemCount(PackType.Item, itemID, 1, 2)) //提示类型后续有变化,要约定下如何提示 if (!CheckItemCount(PackType.Item, itemID, 1, 1)) { return; } ItemBatchUseWin.itemID = itemID; ItemBatchUseWin.ShowTextEvent = showTipEvent; ItemBatchUseWin.btnName = btnName; UIManager.Instance.OpenWindow<ItemBatchUseWin>(); } Main/System/Main/HomeWin.cs
@@ -375,6 +375,10 @@ ChatManager.Instance.nowChatTab = ChatTab.Guild; ChatManager.Instance.nowChatChannel = ChatChannel.Guild; break; case ChatChannel.CrossServer: ChatManager.Instance.nowChatTab = ChatTab.CrossServer; ChatManager.Instance.nowChatChannel = ChatChannel.CrossServer; break; } } UIManager.Instance.OpenWindow<ChatWin>(); Main/System/TimingGift/TimingGiftWin.cs
@@ -1,6 +1,7 @@ using System.Collections.Generic; using Cysharp.Threading.Tasks; using UnityEngine; using UnityEngine.UI; public class TimingGiftWin : UIBase { @@ -10,7 +11,7 @@ [SerializeField] TimingGiftCtgIdCell[] ctgIdCells; [SerializeField] TextEx timeText; [SerializeField] ImageEx bgImage; [SerializeField] RawImage bgImage; [SerializeField] ImageEx IconImage; [SerializeField] GradientText giftText; //"礼包" [SerializeField] OutlineEx giftTextOutline; @@ -238,7 +239,7 @@ leftButton.SetActive(isShowSwitch); rightButton.SetActive(isShowSwitch); bgImage.SetSprite($"TimingGiftBg_{manager.selectTabGiftId}"); bgImage.SetTexture2DPNG(IconConfig.Get($"TimingGiftBg_{manager.selectTabGiftId}").sprite); bgImage.SetNativeSize(); IconImage.SetSprite($"TimingGiftIcon_{manager.selectTabGiftId}"); IconImage.SetNativeSize();