From bcd1dcef07dc129d68539ca2d562c5df53007f36 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 12 二月 2026 21:32:52 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts

---
 Main/System/Guild/GuildManager.cs              |    1 
 Main/System/TimingGift/TimingGiftWin.cs        |    5 
 Main/System/Chat/ChatManager.cs                |   41 +++++--
 Main/System/ItemTip/ItemBatchUseWin.cs         |  116 ++++++++--------------
 Main/System/Guild/GuildBossManager.cs          |    6 +
 Main/System/Chat/ChatPlayerMineCell.cs         |    7 +
 Main/System/Main/HomeWin.cs                    |    4 
 Main/System/Chat/ChatBulletView.cs             |    2 
 Main/System/KnapSack/Logic/ItemLogicUtility.cs |    6 
 Main/System/Chat/ChatWin.cs                    |   63 +++++++++++
 Main/System/BeautyMM/BeautyMMTravelWin.cs      |    2 
 Main/System/Chat/ChatPlayerOtherCell.cs        |    9 +
 12 files changed, 163 insertions(+), 99 deletions(-)

diff --git a/Main/System/BeautyMM/BeautyMMTravelWin.cs b/Main/System/BeautyMM/BeautyMMTravelWin.cs
index b4040da..c695d90 100644
--- a/Main/System/BeautyMM/BeautyMMTravelWin.cs
+++ b/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)
diff --git a/Main/System/Chat/ChatBulletView.cs b/Main/System/Chat/ChatBulletView.cs
index e38c955..e15e123 100644
--- a/Main/System/Chat/ChatBulletView.cs
+++ b/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;
         }
diff --git a/Main/System/Chat/ChatManager.cs b/Main/System/Chat/ChatManager.cs
index b5bf315..ed795fd 100644
--- a/Main/System/Chat/ChatManager.cs
+++ b/Main/System/Chat/ChatManager.cs
@@ -115,7 +115,7 @@
     {
         talkDict.Clear();
         lastTalkDataDict.Clear();
-        currentDay = -1;
+        currentDayDict.Clear();
         nowChatChannel = ChatChannel.World;
         nowChatTab = ChatTab.World;
     }
@@ -331,12 +331,12 @@
         ChatReport(channelType, content);
     }
 
-    void ChatReport(int chatType, string content, string toPlayer="")
+    void ChatReport(int chatType, string content, string toPlayer = "")
     {
         try
         {
             var channelName = Language.Get($"ChatTab{chatType}");
-            
+
             OperationLogCollect.Instance.ChatReport(content, channelName, toPlayer, chatType);
         }
         catch (Exception e)
@@ -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;
+            case ChatTab.CrossServer:
+                //娌℃湁鍚堟湇
+                if (GuildManager.Instance.zoneID <= 0)
+                {
+                    if (isTip)
+                        SysNotifyMgr.Instance.ShowTip("CrossServerNoOpen");
+                    return false;
+                }
+                return true;
             default:
-                return false;
+                return true;
         }
     }
 
@@ -697,8 +711,9 @@
 {
     World = 0,      //涓栫晫
     Guild = 1,      //鍏細      
-    Person = 2,     //绉佽亰
-    BlackList = 3,  //榛戝悕鍗�
+    CrossServer = 2,    //璺ㄦ湇
+    Person = 3,     //绉佽亰
+    BlackList = 4,  //榛戝悕鍗�
 }
 public enum ChatChannel
 {
diff --git a/Main/System/Chat/ChatPlayerMineCell.cs b/Main/System/Chat/ChatPlayerMineCell.cs
index 1830577..1613725 100644
--- a/Main/System/Chat/ChatPlayerMineCell.cs
+++ b/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)
diff --git a/Main/System/Chat/ChatPlayerOtherCell.cs b/Main/System/Chat/ChatPlayerOtherCell.cs
index af20b9c..5aa1011 100644
--- a/Main/System/Chat/ChatPlayerOtherCell.cs
+++ b/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,7 +42,12 @@
             }
             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(() =>
         {
             AvatarHelper.TryViewOtherPlayerInfo((int)data.PlayerID, serverID: (int)data.ServerID, viewPlayerLineupType: (int)BattlePreSetType.Arena);
diff --git a/Main/System/Chat/ChatWin.cs b/Main/System/Chat/ChatWin.cs
index 5e026dc..6b58dbc 100644
--- a/Main/System/Chat/ChatWin.cs
+++ b/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();
             }
diff --git a/Main/System/Guild/GuildBossManager.cs b/Main/System/Guild/GuildBossManager.cs
index 01e3f73..4812420 100644
--- a/Main/System/Guild/GuildBossManager.cs
+++ b/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)
     {
diff --git a/Main/System/Guild/GuildManager.cs b/Main/System/Guild/GuildManager.cs
index 4366d50..b41ae7a 100644
--- a/Main/System/Guild/GuildManager.cs
+++ b/Main/System/Guild/GuildManager.cs
@@ -64,6 +64,7 @@
     private void OnRefreshFairyInfo()
     {
         UpdateRequestRedpoint();
+        UpdateDonateRedPoint();
     }
 
     void OnBeforePlayerDataInitialize()
diff --git a/Main/System/ItemTip/ItemBatchUseWin.cs b/Main/System/ItemTip/ItemBatchUseWin.cs
index b5ee930..daf0a4e 100644
--- a/Main/System/ItemTip/ItemBatchUseWin.cs
+++ b/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");
     }
 }
 
diff --git a/Main/System/KnapSack/Logic/ItemLogicUtility.cs b/Main/System/KnapSack/Logic/ItemLogicUtility.cs
index dbc172c..696d42a 100644
--- a/Main/System/KnapSack/Logic/ItemLogicUtility.cs
+++ b/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>();
     }
 
diff --git a/Main/System/Main/HomeWin.cs b/Main/System/Main/HomeWin.cs
index b4927d7..46a4cca 100644
--- a/Main/System/Main/HomeWin.cs
+++ b/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>();
diff --git a/Main/System/TimingGift/TimingGiftWin.cs b/Main/System/TimingGift/TimingGiftWin.cs
index 6444fbe..8ddc17d 100644
--- a/Main/System/TimingGift/TimingGiftWin.cs
+++ b/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();

--
Gitblit v1.8.0