From d1b4f76d85e4f8f2d219e7c8d76510fee2441d8f Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期三, 13 二月 2019 11:59:37 +0800
Subject: [PATCH] 3335 信息提示优化

---
 System/FairyAu/FairyModel.cs                                               |    4 
 System/Store/Logic/BuyWingsTip.cs                                          |    6 
 System/Dungeon/DungeonBuyTimesWin.cs                                       |    4 
 System/FriendSystem/MailPanel.cs                                           |    2 
 System/Compose/New/ComposeWingsWin.cs                                      |    6 
 System/Vip/FairyJadeInvestmentWin.cs                                       |    4 
 System/FairyAu/FairyRequestWin.cs                                          |   36 +-
 System/Message/MessageWin.cs                                               |  321 +++++++++----------
 System/SystemSetting/SystemSetWin.cs                                       |    2 
 Fight/Stage/StageLoadProcessor.cs                                          |    1 
 System/FairyAu/FairyBoss.cs                                                |    8 
 System/Skill/SkillAccordWin.cs                                             |    2 
 System/KnapSack/Logic/PackModelInterface.cs                                |    2 
 System/Mount/MountWin.cs                                                   |    6 
 System/SystemSetting/SetUp_BugWin.cs                                       |  158 ++++----
 System/FriendSystem/New/AddFriendTips.cs                                   |    2 
 System/JadeDynastyBoss/JadeDynastyBossWin.cs                               |    2 
 System/Tip/ServerTipDetails.cs                                             |  100 +++++
 System/Strengthening/StrengtheningSripts.cs                                |   12 
 System/Rune/RunePackCell.cs                                                |    6 
 System/Market/MarketDealWin.cs                                             |    2 
 System/Treasure/DemonTreasureCollectPanel.cs                               |    2 
 System/KnapSack/New/RoleEquipWin.cs                                        |    2 
 System/Strengthening/WingsBouncedWin.cs                                    |    2 
 Core/GameEngine/Model/Player/Skill/PlayerSkillDatas.cs                     |    4 
 System/FairyAu/FairyCreateWin.cs                                           |    4 
 System/Rune/RuneBreakWin.cs                                                |    2 
 System/FairyAu/FairyMemberWin.cs                                           |    6 
 System/FairyAu/FairyApplyWin.cs                                            |    8 
 System/Store/StoreModel.cs                                                 |    4 
 System/Login/LoginWin.cs                                                   |    2 
 System/Login/BanShuLoginWin.cs                                             |   12 
 System/Strengthening/WashTips.cs                                           |    2 
 System/FairyAu/UnionTaskWin.cs                                             |    6 
 System/Compose/New/ComposeTicketWin.cs                                     |   12 
 System/KnapSack/Logic/BoxGetItemModel.cs                                   |    2 
 Core/NetworkPackage/DTCFile/ServerPack/H32_GM/DTC3202_tagServerResponse.cs |   11 
 System/MainInterfacePanel/MainInterfaceWin.cs                              |    2 
 System/OpenServerActivity/MysticalPurchaseSaleItem.cs                      |    2 
 System/TaiChi/TaiChilDungeonEntranceWin.cs                                 |    4 
 System/Authentication/IDAuthenticationWin.cs                               |    8 
 System/Store/Logic/BuyGuardTip.cs                                          |    6 
 System/Mount/MountSkillWin.cs                                              |    6 
 Core/GameEngine/Login/LoginStage.cs                                        |    1 
 System/Login/LoginModel.cs                                                 |    4 
 System/Store/Logic/BuyEquipTip.cs                                          |    4 
 System/Realm/RealmPracticeWin.cs                                           |    2 
 System/Debug/DebugLogin.cs                                                 |    4 
 System/Compose/New/ComposeEquipWin.cs                                      |    6 
 System/FairyAu/FairyDutyWin.cs                                             |    6 
 System/Strengthening/WingsRefined.cs                                       |   20 
 System/Store/Logic/BuyBoxInfoWin.cs                                        |    6 
 Utility/LanguageVerify.cs                                                  |    2 
 System/Compose/New/ComposeWinModel.cs                                      |    2 
 System/Dungeon/MultipleDifficultyDungeonWin.cs                             |    2 
 System/Chat/FairyChatWin.cs                                                |    2 
 System/FindPrecious/DemonJarWin.cs                                         |    2 
 System/Realm/RealmUpHoldWin.cs                                             |    2 
 System/Team/TeamListWin.cs                                                 |    2 
 System/Login/CreateRoleWin.cs                                              |   12 
 System/BlastFurnace/LingDanTips.cs                                         |    2 
 System/Compose/New/ComposeToolsWin.cs                                      |   12 
 System/FriendSystem/New/AddFriendWin.cs                                    |    2 
 System/Role/RoleRenameWin.cs                                               |    8 
 System/FairyAu/FairyChangeTipWin.cs                                        |    2 
 System/Market/MarketPutedItem.cs                                           |    2 
 System/Chat/ChatCtrl.cs                                                    |    2 
 System/Store/Logic/BuyPetMatInfoWin.cs                                     |    6 
 System/Chat/ChatWin.cs                                                     |    2 
 System/GMCommand/GMInputWin.cs                                             |    2 
 System/Compose/New/ComposeDogzEquipWin.cs                                  |    6 
 System/Role/RoleModel.cs                                                   |    2 
 System/Treasure/TreasurePotentialPanel.cs                                  |    6 
 System/Role/MagicianModel.cs                                               |    2 
 System/KnapSack/Logic/PackSendQuestMgr.cs                                  |    2 
 System/Message/SysNotifyMgr.cs                                             |    6 
 System/AssetVersion/InGameDownLoadWin.cs                                   |    2 
 System/KnapSack/New/ChooseItemWin.cs                                       |    6 
 System/MainInterfacePanel/TaskBoxBGMWin.cs                                 |    4 
 System/Store/Logic/BuyItemInfoWin.cs                                       |    6 
 System/KnapSack/Logic/RoleElixirTipWin.cs                                  |    2 
 81 files changed, 513 insertions(+), 445 deletions(-)

diff --git a/Core/GameEngine/Login/LoginStage.cs b/Core/GameEngine/Login/LoginStage.cs
index ef3a2c5..9183616 100644
--- a/Core/GameEngine/Login/LoginStage.cs
+++ b/Core/GameEngine/Login/LoginStage.cs
@@ -13,7 +13,6 @@
         checkClientTimer = Time.time + 60f;
         checkAssetVersionTimer = Time.time + 70f;
 
-        WindowCenter.Instance.Open<MessageWin>();
         WindowCenter.Instance.Close<FightingPKWin>();
 
         if (VersionUtility.Instance.InIosAuditTime())
diff --git a/Core/GameEngine/Model/Player/Skill/PlayerSkillDatas.cs b/Core/GameEngine/Model/Player/Skill/PlayerSkillDatas.cs
index c09832d..4cf07df 100644
--- a/Core/GameEngine/Model/Player/Skill/PlayerSkillDatas.cs
+++ b/Core/GameEngine/Model/Player/Skill/PlayerSkillDatas.cs
@@ -194,7 +194,7 @@
         PlayerSkillData data = GetSKillById(id);
         if (data == null)
         {
-            MessageWin.Inst.ShowFixedTip(Language.Get("ThisSkillIsNotObtained_Z"));
+            ServerTipDetails.DisplayNormalTip(Language.Get("ThisSkillIsNotObtained_Z"));
             return;
         }
         if (data.skillCfg.UseType == 0)
@@ -204,7 +204,7 @@
         if (data.skillCfg == null || PlayerDatas.Instance.baseData.LV < data.skillCfg.LearnLVReq
             || data.skillCfg.FuncType != SkillModel.ACT_SKILL_TYPE)
         {
-            MessageWin.Inst.ShowFixedTip(Language.Get("L1009"));
+            ServerTipDetails.DisplayNormalTip(Language.Get("L1009"));
             return;
         }
         bool change = false;
diff --git a/Core/NetworkPackage/DTCFile/ServerPack/H32_GM/DTC3202_tagServerResponse.cs b/Core/NetworkPackage/DTCFile/ServerPack/H32_GM/DTC3202_tagServerResponse.cs
index 6004621..f547643 100644
--- a/Core/NetworkPackage/DTCFile/ServerPack/H32_GM/DTC3202_tagServerResponse.cs
+++ b/Core/NetworkPackage/DTCFile/ServerPack/H32_GM/DTC3202_tagServerResponse.cs
@@ -7,18 +7,21 @@
 
 
 
-public class DTC3202_tagServerResponse : DtcBasic {
+public class DTC3202_tagServerResponse : DtcBasic
+{
 
-    public override void Done(GameNetPackBasic vNetPack) {
+    public override void Done(GameNetPackBasic vNetPack)
+    {
 
         base.Done(vNetPack);
 
 #if UNITY_EDITOR
         H3202_tagServerResponse vNetData = vNetPack as H3202_tagServerResponse;
 
-        if (vNetData != null) {
+        if (vNetData != null)
+        {
             DebugEx.LogFormat("---------- 鏀跺埌鏈嶅姟绔俊鎭�: {0}", vNetData.Message);
-            MessageWin.Inst.RevGMMsg(vNetData.Message);
+            ServerTipDetails.ReceivePackage(vNetData.Message);
         }
 #endif
     }
diff --git a/Fight/Stage/StageLoadProcessor.cs b/Fight/Stage/StageLoadProcessor.cs
index 4a72323..6047ab2 100644
--- a/Fight/Stage/StageLoadProcessor.cs
+++ b/Fight/Stage/StageLoadProcessor.cs
@@ -497,7 +497,6 @@
 
         public override void End()
         {
-            WindowCenter.Instance.Open<MessageWin>();
             Application.backgroundLoadingPriority = ThreadPriority.BelowNormal;
             DebugEx.LogFormat("StageLoad => Load Scene : {0} Finished.", command.toMapId);
         }
diff --git a/System/AssetVersion/InGameDownLoadWin.cs b/System/AssetVersion/InGameDownLoadWin.cs
index 1dbc6b2..827f17f 100644
--- a/System/AssetVersion/InGameDownLoadWin.cs
+++ b/System/AssetVersion/InGameDownLoadWin.cs
@@ -169,7 +169,7 @@
                 case InGameDownLoad.State.Pause:
                     if (Application.internetReachability == NetworkReachability.NotReachable)
                     {
-                        MessageWin.Inst.ShowFixedTip(Language.GetFromLocal(24));
+                        ServerTipDetails.DisplayNormalTip(Language.GetFromLocal(24));
                     }
                     else
                     {
diff --git a/System/Authentication/IDAuthenticationWin.cs b/System/Authentication/IDAuthenticationWin.cs
index 55ccda9..ed551eb 100644
--- a/System/Authentication/IDAuthenticationWin.cs
+++ b/System/Authentication/IDAuthenticationWin.cs
@@ -54,7 +54,7 @@
         {
             if (string.IsNullOrEmpty(m_UserName.text))
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("UserName_Z"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("UserName_Z"));
                 return;
             }
 
@@ -62,14 +62,14 @@
 
             if (string.IsNullOrEmpty(m_IdentityNumber.text))
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("IdentityNumber_Z"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("IdentityNumber_Z"));
                 return;
             }
 
             var identityNumber = m_IdentityNumber.text;
             if (identityNumber.Length != 15 && identityNumber.Length != 18)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("IdentityNumber_Z1"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("IdentityNumber_Z1"));
                 return;
             }
 
@@ -79,7 +79,7 @@
 
         private void OnAuthenticationOk(SDKUtility.FP_DoIDAuthentication _result)
         {
-            MessageWin.Inst.ShowFixedTip(_result.errordesc);
+            ServerTipDetails.DisplayNormalTip(_result.errordesc);
 
             if (_result.errorcode == "1")
             {
diff --git a/System/BlastFurnace/LingDanTips.cs b/System/BlastFurnace/LingDanTips.cs
index ceb69a5..efbf325 100644
--- a/System/BlastFurnace/LingDanTips.cs
+++ b/System/BlastFurnace/LingDanTips.cs
@@ -160,7 +160,7 @@
                 }
                 else
                 {
-                    MessageWin.Inst.ShowFixedTip("Material101");
+                    ServerTipDetails.DisplayNormalTip("Material101");
                 }
                 AchievementGoto.guideAchievementId = 0;
             }
diff --git a/System/Chat/ChatCtrl.cs b/System/Chat/ChatCtrl.cs
index eea6945..ae229e9 100644
--- a/System/Chat/ChatCtrl.cs
+++ b/System/Chat/ChatCtrl.cs
@@ -290,7 +290,7 @@
             var length = GetChatMessageLength(msg);
             if (length > CHAT_INFO_CNT)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("L1014"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("L1014"));
                 return;
             }
         }
diff --git a/System/Chat/ChatWin.cs b/System/Chat/ChatWin.cs
index 9253331..48274f5 100644
--- a/System/Chat/ChatWin.cs
+++ b/System/Chat/ChatWin.cs
@@ -225,7 +225,7 @@
                         int limit = Config.Instance.Get<FuncOpenLVConfig>((int)FuncOpenEnum.Fairy).LimitLV;
                         if (PlayerDatas.Instance.baseData.LV < limit)
                         {
-                            MessageWin.Inst.ShowFixedTip(Language.Get("L1136", limit));
+                            ServerTipDetails.DisplayNormalTip(Language.Get("L1136", limit));
                             return;
                         }
                         CloseImmediately();
diff --git a/System/Chat/FairyChatWin.cs b/System/Chat/FairyChatWin.cs
index 5b0bd6a..9d429a2 100644
--- a/System/Chat/FairyChatWin.cs
+++ b/System/Chat/FairyChatWin.cs
@@ -74,7 +74,7 @@
             int limit = Config.Instance.Get<FuncOpenLVConfig>((int)FuncOpenEnum.Fairy).LimitLV;
             if (PlayerDatas.Instance.baseData.LV < limit)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("L1136", limit));
+                ServerTipDetails.DisplayNormalTip(Language.Get("L1136", limit));
                 return;
             }
             WindowCenter.Instance.Close<SocialWin>();
diff --git a/System/Compose/New/ComposeDogzEquipWin.cs b/System/Compose/New/ComposeDogzEquipWin.cs
index 6a5e3dc..404230e 100644
--- a/System/Compose/New/ComposeDogzEquipWin.cs
+++ b/System/Compose/New/ComposeDogzEquipWin.cs
@@ -145,11 +145,11 @@
                     isJumpTo = false;
                     if (!composeWinModel.IsEnoughFixedMat(thirdTypeData.itemCompound) || !composeWinModel.IsEnoughUnfixedMat(thirdTypeData.itemCompound))
                     {
-                        MessageWin.Inst.ShowFixedTip(Language.Get("Compose101"));
+                        ServerTipDetails.DisplayNormalTip(Language.Get("Compose101"));
                     }
                     else if (!composeWinModel.IsEnoughMoney(thirdTypeData.itemCompound))
                     {
-                        MessageWin.Inst.ShowFixedTip(Language.Get("Z1011"));
+                        ServerTipDetails.DisplayNormalTip(Language.Get("Z1011"));
                     }
                 }
             }
@@ -476,7 +476,7 @@
             bool isTrailer = composeWinModel.IsTrailerByLevel(compoundModel);
             if (isTrailer)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("FuncOpenLv", compoundModel.levelNeed));
+                ServerTipDetails.DisplayNormalTip(Language.Get("FuncOpenLv", compoundModel.levelNeed));
                 return;
             }
             composeWinModel.SendComposeRequest(compoundModel,fixedItemIndexDict,composeEffect,1);
diff --git a/System/Compose/New/ComposeEquipWin.cs b/System/Compose/New/ComposeEquipWin.cs
index 9da7031..cd17335 100644
--- a/System/Compose/New/ComposeEquipWin.cs
+++ b/System/Compose/New/ComposeEquipWin.cs
@@ -497,7 +497,7 @@
                         else
                         {
                             isIncreaseRate = false;
-                            MessageWin.Inst.ShowFixedTip(Language.Get("Compose110", increaseNeedNum, itemConfig.ItemName));
+                            ServerTipDetails.DisplayNormalTip(Language.Get("Compose110", increaseNeedNum, itemConfig.ItemName));
                         }
                     }
                     RefreshComposeSuccessRate();
@@ -697,7 +697,7 @@
                 bool isTrailer = composeWinModel.IsTrailerByLevel(compoundModel);
                 if (isTrailer)
                 {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("FuncOpenLv", compoundModel.levelNeed));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("FuncOpenLv", compoundModel.levelNeed));
                     return;
                 }
             }
@@ -707,7 +707,7 @@
                 case RoleEquipType.retSpiritAnimal:
                     if (!composeWinModel.IsEnoughUnfixedMat(compoundModel))
                     {
-                        MessageWin.Inst.ShowFixedTip(Language.Get("Compose101"));
+                        ServerTipDetails.DisplayNormalTip(Language.Get("Compose101"));
                     }
                     else
                     {
diff --git a/System/Compose/New/ComposeTicketWin.cs b/System/Compose/New/ComposeTicketWin.cs
index 355da44..53c6a96 100644
--- a/System/Compose/New/ComposeTicketWin.cs
+++ b/System/Compose/New/ComposeTicketWin.cs
@@ -144,12 +144,12 @@
                     bool isCanCompose = true;
                     if (!composeWinModel.IsEnoughFixedMat(thirdTypeData.itemCompound))
                     {
-                        MessageWin.Inst.ShowFixedTip(Language.Get("Compose101"));
+                        ServerTipDetails.DisplayNormalTip(Language.Get("Compose101"));
                         isCanCompose = false;
                     }
                     else if (!composeWinModel.IsEnoughMoney(thirdTypeData.itemCompound))
                     {
-                        MessageWin.Inst.ShowFixedTip(Language.Get("Z1011"));
+                        ServerTipDetails.DisplayNormalTip(Language.Get("Z1011"));
                         isCanCompose = false;
                     }
 
@@ -463,7 +463,7 @@
             bool isTrailer = composeWinModel.IsTrailerByLevel(compoundModel);
             if (isTrailer)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("FuncOpenLv", compoundModel.levelNeed));
+                ServerTipDetails.DisplayNormalTip(Language.Get("FuncOpenLv", compoundModel.levelNeed));
                 return;
             }
 
@@ -506,7 +506,7 @@
             bool isTrailer = composeWinModel.IsTrailerByLevel(compoundModel);
             if (isTrailer)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("FuncOpenLv", compoundModel.levelNeed));
+                ServerTipDetails.DisplayNormalTip(Language.Get("FuncOpenLv", compoundModel.levelNeed));
                 return;
             }
             SetFixedItemIndexDic();
@@ -559,11 +559,11 @@
 
             if (answer.Result == 1)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("Compose102"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("Compose102"));
             }
             else
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("Compose103"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("Compose103"));
             }
 
             RefreshUI(compoundModel);
diff --git a/System/Compose/New/ComposeToolsWin.cs b/System/Compose/New/ComposeToolsWin.cs
index 2646ecc..c6dd267 100644
--- a/System/Compose/New/ComposeToolsWin.cs
+++ b/System/Compose/New/ComposeToolsWin.cs
@@ -171,12 +171,12 @@
                     bool isCanCompose = true;
                     if (!composeWinModel.IsEnoughFixedMat(thirdTypeData.itemCompound))
                     {
-                        MessageWin.Inst.ShowFixedTip(Language.Get("Compose101"));
+                        ServerTipDetails.DisplayNormalTip(Language.Get("Compose101"));
                         isCanCompose = false;
                     }
                     else if (!composeWinModel.IsEnoughMoney(thirdTypeData.itemCompound))
                     {
-                        MessageWin.Inst.ShowFixedTip(Language.Get("Z1011"));
+                        ServerTipDetails.DisplayNormalTip(Language.Get("Z1011"));
                         isCanCompose = false;
                     }
 
@@ -439,7 +439,7 @@
             bool isTrailer = composeWinModel.IsTrailerByLevel(compoundModel);
             if (isTrailer)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("FuncOpenLv", compoundModel.levelNeed));
+                ServerTipDetails.DisplayNormalTip(Language.Get("FuncOpenLv", compoundModel.levelNeed));
                 return;
             }
 
@@ -491,7 +491,7 @@
             bool isTrailer = composeWinModel.IsTrailerByLevel(compoundModel);
             if (isTrailer)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("FuncOpenLv", compoundModel.levelNeed));
+                ServerTipDetails.DisplayNormalTip(Language.Get("FuncOpenLv", compoundModel.levelNeed));
                 return;
             }
 
@@ -525,11 +525,11 @@
 
             if (answer.Result == 1)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("Compose102"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("Compose102"));
             }
             else
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("Compose103"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("Compose103"));
             }
 
             RefreshUI(compoundModel);
diff --git a/System/Compose/New/ComposeWinModel.cs b/System/Compose/New/ComposeWinModel.cs
index b79086c..23208a7 100644
--- a/System/Compose/New/ComposeWinModel.cs
+++ b/System/Compose/New/ComposeWinModel.cs
@@ -532,7 +532,7 @@
         int i = 0;
         if (!IsEnoughUnfixedMat(compoundModel))
         {
-            MessageWin.Inst.ShowFixedTip(Language.Get("Compose101"));
+            ServerTipDetails.DisplayNormalTip(Language.Get("Compose101"));
             return;
         }
         var packType = GetPackTypeByMakerId(compoundModel.makeID);
diff --git a/System/Compose/New/ComposeWingsWin.cs b/System/Compose/New/ComposeWingsWin.cs
index b0fdbe2..ae02ea4 100644
--- a/System/Compose/New/ComposeWingsWin.cs
+++ b/System/Compose/New/ComposeWingsWin.cs
@@ -172,12 +172,12 @@
                     bool isCanCompose = true;
                     if (!composeWinModel.IsEnoughFixedMat(thirdTypeData.itemCompound))
                     {
-                        MessageWin.Inst.ShowFixedTip(Language.Get("Compose101"));
+                        ServerTipDetails.DisplayNormalTip(Language.Get("Compose101"));
                         isCanCompose = false;
                     }
                     else if (!composeWinModel.IsEnoughMoney(thirdTypeData.itemCompound))
                     {
-                        MessageWin.Inst.ShowFixedTip(Language.Get("Z1011"));
+                        ServerTipDetails.DisplayNormalTip(Language.Get("Z1011"));
                         isCanCompose = false;
                     }
 
@@ -597,7 +597,7 @@
             bool isTrailer = composeWinModel.IsTrailerByLevel(compoundModel);
             if (isTrailer)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("FuncOpenLv", compoundModel.levelNeed));
+                ServerTipDetails.DisplayNormalTip(Language.Get("FuncOpenLv", compoundModel.levelNeed));
                 return;
             }
             SetFixedMatIndex();
diff --git a/System/Debug/DebugLogin.cs b/System/Debug/DebugLogin.cs
index af713c0..556a334 100644
--- a/System/Debug/DebugLogin.cs
+++ b/System/Debug/DebugLogin.cs
@@ -151,12 +151,12 @@
             }
             else
             {
-                MessageWin.Inst.ShowFixedTip(result.errordesc);
+                ServerTipDetails.DisplayNormalTip(result.errordesc);
             }
         }
         else
         {
-            MessageWin.Inst.ShowFixedTip(Language.Get("LoginFailed_Z"));
+            ServerTipDetails.DisplayNormalTip(Language.Get("LoginFailed_Z"));
         }
     }
 
diff --git a/System/Dungeon/DungeonBuyTimesWin.cs b/System/Dungeon/DungeonBuyTimesWin.cs
index b741970..1c4046b 100644
--- a/System/Dungeon/DungeonBuyTimesWin.cs
+++ b/System/Dungeon/DungeonBuyTimesWin.cs
@@ -184,7 +184,7 @@
                 var _enterTimes = model.GetEnterTimes(DemonJarModel.DEMONJAR_MAPID);
                 if ((_totalTimes - _enterTimes) >= DemonJarModel.TOTALTIME_LIMIT)
                 {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("DemonJar18"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("DemonJar18"));
                     return false;
                 }
             }
@@ -195,7 +195,7 @@
                 var jadeDynastyBossModel = ModelCenter.Instance.GetModel<JadeDynastyBossModel>();
                 if ((_totalTimes - _enterTimes) >= jadeDynastyBossModel.challengeLimitCount)
                 {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("DemonJar18"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("DemonJar18"));
                     return false;
                 }
                 var mapId = PlayerDatas.Instance.baseData.MapID;
diff --git a/System/Dungeon/MultipleDifficultyDungeonWin.cs b/System/Dungeon/MultipleDifficultyDungeonWin.cs
index 671b35b..3ba3026 100644
--- a/System/Dungeon/MultipleDifficultyDungeonWin.cs
+++ b/System/Dungeon/MultipleDifficultyDungeonWin.cs
@@ -160,7 +160,7 @@
                         SysNotifyMgr.Instance.ShowTip("Multiple_UpLV", dungeonConfig.LVLimitMin);
                         break;
                     case 2:
-                        MessageWin.Inst.ShowFixedTip(Language.Get("InsufficientTL_Z"));
+                        ServerTipDetails.DisplayNormalTip(Language.Get("InsufficientTL_Z"));
                         break;
                     case 3:
                         var requireLineId = model.selectedKylinDungeon.lineId - 1;
diff --git a/System/FairyAu/FairyApplyWin.cs b/System/FairyAu/FairyApplyWin.cs
index 4b07403..f38d910 100644
--- a/System/FairyAu/FairyApplyWin.cs
+++ b/System/FairyAu/FairyApplyWin.cs
@@ -164,7 +164,7 @@
             int limit = Config.Instance.Get<FuncOpenLVConfig>((int)FuncOpenEnum.Fairy).LimitLV;
             if (PlayerDatas.Instance.baseData.LV < limit)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("L1106", limit));
+                ServerTipDetails.DisplayNormalTip(Language.Get("L1106", limit));
                 return false;
             }
             return true;
@@ -187,7 +187,7 @@
             }
             if (model.presentFairy < 0 || model.presentFairy >= model.fairyList.Count)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("L1016"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("L1016"));
                 return;
             }
             PlayerFairyData.FairyData fairy = model.fairyList[model.presentFairy];
@@ -196,7 +196,7 @@
                 FamilyConfig cfg = Config.Instance.Get<FamilyConfig>(fairy.FamilyLV);
                 if (fairy.MemberCount >= cfg.memberCnt)
                 {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("L1017"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("L1017"));
                     return;
                 }
                 if (model.FairyRequested((int)fairy.FamilyID))
@@ -223,7 +223,7 @@
             {
                 if (PlayerDatas.Instance.fairyData.mine.FamilyLV == 3 && fairy.MemberCount > 1)
                 {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("L1018"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("L1018"));
                     return;
                 }
                 else
diff --git a/System/FairyAu/FairyBoss.cs b/System/FairyAu/FairyBoss.cs
index d6784c4..1740158 100644
--- a/System/FairyAu/FairyBoss.cs
+++ b/System/FairyAu/FairyBoss.cs
@@ -58,13 +58,13 @@
                 {
                     if (!PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanOpenBoss))
                     {
-                        MessageWin.Inst.ShowFixedTip(Language.Get("L1019"));
+                        ServerTipDetails.DisplayNormalTip(Language.Get("L1019"));
                         return;
                     }
                 }
                 if (TimeUtility.Hour < fairyBossModel.FairyBossStartHour || TimeUtility.Hour >= fairyBossModel.FairyBossEndHour)
                 {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("L1020"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("L1020"));
                     return;
                 }
                 if (PlayerDatas.Instance.fairyData.weekBossOpenCnt >= fairyBossModel.GetFairyBossWeekCount())
@@ -74,7 +74,7 @@
                 }
                 if (PlayerDatas.Instance.fairyData.fairy.FamilyHornor < fairyBossModel.OpenFairyBossNeed)
                 {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("L1124"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("L1124"));
                     OnFoodGetWay();
                     return;
                 }
@@ -91,7 +91,7 @@
             {
                 if (TimeUtility.Hour < fairyBossModel.FairyBossStartHour || TimeUtility.Hour >= fairyBossModel.FairyBossEndHour)
                 {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("L1020"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("L1020"));
                     return;
                 }
                 ModelCenter.Instance.GetModel<DungeonModel>().SingleChallenge(fairyBossModel.MapId);
diff --git a/System/FairyAu/FairyChangeTipWin.cs b/System/FairyAu/FairyChangeTipWin.cs
index 5fd9190..b18b6bc 100644
--- a/System/FairyAu/FairyChangeTipWin.cs
+++ b/System/FairyAu/FairyChangeTipWin.cs
@@ -27,7 +27,7 @@
             {
                 if (DirtyWordConfig.IsDirtWord(notifyInput.text))
                 {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("L1007"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("L1007"));
                     return;
                 }
             }
diff --git a/System/FairyAu/FairyCreateWin.cs b/System/FairyAu/FairyCreateWin.cs
index 775e8b1..0679a10 100644
--- a/System/FairyAu/FairyCreateWin.cs
+++ b/System/FairyAu/FairyCreateWin.cs
@@ -67,12 +67,12 @@
         {
             if (PlayerDatas.Instance.baseData.LV < model.createFairyLv)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("L1005"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("L1005"));
                 return;
             }
             if (string.IsNullOrEmpty(creationInput.text))
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("L1015"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("L1015"));
                 return;
             }
             if (DirtyWordConfig.IsDirtWord(creationInput.text) || UIHelper.HasSpecialCharac(creationInput.text)
diff --git a/System/FairyAu/FairyDutyWin.cs b/System/FairyAu/FairyDutyWin.cs
index b7cf83e..69e2641 100644
--- a/System/FairyAu/FairyDutyWin.cs
+++ b/System/FairyAu/FairyDutyWin.cs
@@ -133,7 +133,7 @@
         {
             if (presentDuty == changeMember.FamilyLV)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("L1029"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("L1029"));
                 return;
             }
             FamilyConfig cfg = Config.Instance.Get<FamilyConfig>(PlayerDatas.Instance.fairyData.fairy.FamilyLV);
@@ -151,7 +151,7 @@
                         {
                             if (PlayerDatas.Instance.fairyData.GetEliteList().Count >= cfg.eliteCnt)
                             {
-                                MessageWin.Inst.ShowFixedTip(Language.Get("L1030"));
+                                ServerTipDetails.DisplayNormalTip(Language.Get("L1030"));
                                 return;
                             }
                             OnChangeDuty();
@@ -162,7 +162,7 @@
                         {
                             if (PlayerDatas.Instance.fairyData.GetDeputyLeaderList().Count >= cfg.deputyLeaderCnt)
                             {
-                                MessageWin.Inst.ShowFixedTip(Language.Get("L1031"));
+                                ServerTipDetails.DisplayNormalTip(Language.Get("L1031"));
                                 return;
                             }
                             ConfirmCancel.ShowPopConfirm(Language.Get("L1003"), Language.Get("L1032", changeMember.Name), (bool isOk) =>
diff --git a/System/FairyAu/FairyMemberWin.cs b/System/FairyAu/FairyMemberWin.cs
index a7ddba3..2e692f8 100644
--- a/System/FairyAu/FairyMemberWin.cs
+++ b/System/FairyAu/FairyMemberWin.cs
@@ -44,7 +44,7 @@
         {
             if (!PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanNotify))
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("L1019"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("L1019"));
                 return;
             }
             WindowCenter.Instance.Open<FairyChangeTipWin>();
@@ -112,7 +112,7 @@
             {
                 if (!PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanCall))
                 {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("L1019"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("L1019"));
                     return;
                 }
                 CA406_tagCGChangeFamilyAcceptJoinType acceptPack = new CA406_tagCGChangeFamilyAcceptJoinType();
@@ -172,7 +172,7 @@
         {
             if (!PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanCall))
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("L1019"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("L1019"));
                 return;
             }
             WindowCenter.Instance.Open<FairyRequestWin>();
diff --git a/System/FairyAu/FairyModel.cs b/System/FairyAu/FairyModel.cs
index b078dc3..e68d57e 100644
--- a/System/FairyAu/FairyModel.cs
+++ b/System/FairyAu/FairyModel.cs
@@ -122,12 +122,12 @@
             int limit = Config.Instance.Get<FuncOpenLVConfig>((int)FuncOpenEnum.Fairy).LimitLV;
             if (PlayerDatas.Instance.baseData.LV < limit)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("L1106", limit));
+                ServerTipDetails.DisplayNormalTip(Language.Get("L1106", limit));
                 return;
             }
             if (PlayerDatas.Instance.fairyData.HasFairy)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("HasFairyTip"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("HasFairyTip"));
                 return;
             }
             CA602_tagCGRequesJoinFamily rqPack = new CA602_tagCGRequesJoinFamily();
diff --git a/System/FairyAu/FairyRequestWin.cs b/System/FairyAu/FairyRequestWin.cs
index c43b655..d3c0db7 100644
--- a/System/FairyAu/FairyRequestWin.cs
+++ b/System/FairyAu/FairyRequestWin.cs
@@ -41,10 +41,10 @@
             PlayerDatas.Instance.fairyData.OnRefreshFairyMine += OnRefreshFairyMine;
             OnRefreshApplyList();
 
-            if (applyList.Count > 0)
-            {
-                CA402_tagCGViewFamilyRequestInfo pak = new CA402_tagCGViewFamilyRequestInfo();
-                GameNetSystem.Instance.SendInfo(pak);
+            if (applyList.Count > 0)
+            {
+                CA402_tagCGViewFamilyRequestInfo pak = new CA402_tagCGViewFamilyRequestInfo();
+                GameNetSystem.Instance.SendInfo(pak);
             }
         }
 
@@ -58,19 +58,19 @@
 
         protected override void OnAfterClose()
         {
-            PlayerDatas.Instance.fairyData.OnRefreshApplyList -= OnRefreshApplyList;
+            PlayerDatas.Instance.fairyData.OnRefreshApplyList -= OnRefreshApplyList;
             PlayerDatas.Instance.fairyData.OnRefreshFairyMine -= OnRefreshFairyMine;
-        }
-
+        }
+
         #endregion
 
-        private void OnRefreshFairyMine()
-        {
-            if (!PlayerDatas.Instance.fairyData.HasFairy
-                || !PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanCall))
-            {
-                CloseImmediately();
-            }
+        private void OnRefreshFairyMine()
+        {
+            if (!PlayerDatas.Instance.fairyData.HasFairy
+                || !PlayerDatas.Instance.fairyData.IsCanFunc(PlayerFairyData.LimitFunc.CanCall))
+            {
+                CloseImmediately();
+            }
         }
         private void OnRefreshFairyInfo()
         {
@@ -123,7 +123,7 @@
                 }
             }
             if (!isOnline) {
-                MessageWin.Inst.ShowFixedTip(Language.Get("L1097"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("L1097"));
                 return;
             }
             HandleApply(0, true);
@@ -164,7 +164,7 @@
         private void OnAgree(PlayerFairyData.FairyApply apply)
         {
             if (apply.IsOnLine == 0) {
-                MessageWin.Inst.ShowFixedTip(Language.Get("L1096"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("L1096"));
                 return;
             }
             HandleApply(apply.PlayerID, true);
@@ -178,13 +178,13 @@
             if (cfg == null) return;
             if (playerid == 0 && isOk) {
                 if (applyList.Count > cfg.memberCnt - fairy.MemberCount) {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("L1027"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("L1027"));
                     return;
                 }
             }
             else if (isOk) {
                 if (cfg.memberCnt - fairy.MemberCount < 1) {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("L1028"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("L1028"));
                     return;
                 }
             }
diff --git a/System/FairyAu/UnionTaskWin.cs b/System/FairyAu/UnionTaskWin.cs
index acd31e5..7b92564 100644
--- a/System/FairyAu/UnionTaskWin.cs
+++ b/System/FairyAu/UnionTaskWin.cs
@@ -90,7 +90,7 @@
                 {
                     if(!isHaveRecieve)
                     {
-                        MessageWin.Inst.ShowFixedTip(Language.Get("UnionLiven104"));
+                        ServerTipDetails.DisplayNormalTip(Language.Get("UnionLiven104"));
                     }
                     AchievementGoto.guideAchievementId = 0;
                 }
@@ -240,12 +240,12 @@
                 }
                 else
                 {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("UnionLiven105"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("UnionLiven105"));
                 }
             }
             else
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("UnionLiven104"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("UnionLiven104"));
             }
    
         }
diff --git a/System/FindPrecious/DemonJarWin.cs b/System/FindPrecious/DemonJarWin.cs
index 8322cac..6a0c655 100644
--- a/System/FindPrecious/DemonJarWin.cs
+++ b/System/FindPrecious/DemonJarWin.cs
@@ -153,7 +153,7 @@
         {
             if ((totalTimes - enterTimes) >= DemonJarModel.TOTALTIME_LIMIT)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("DemonJar18"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("DemonJar18"));
             }
             else
             {
diff --git a/System/FriendSystem/MailPanel.cs b/System/FriendSystem/MailPanel.cs
index 98005e7..d9655e9 100644
--- a/System/FriendSystem/MailPanel.cs
+++ b/System/FriendSystem/MailPanel.cs
@@ -613,7 +613,7 @@
         }
         else
         {
-            MessageWin.Inst.ShowFixedTip(Language.Get("Mail103"));
+            ServerTipDetails.DisplayNormalTip(Language.Get("Mail103"));
         }
     }
 
diff --git a/System/FriendSystem/New/AddFriendTips.cs b/System/FriendSystem/New/AddFriendTips.cs
index 289defa..beea752 100644
--- a/System/FriendSystem/New/AddFriendTips.cs
+++ b/System/FriendSystem/New/AddFriendTips.cs
@@ -230,7 +230,7 @@
         }
         else
         {
-            MessageWin.Inst.ShowFixedTip(Language.Get("Friend106"));
+            ServerTipDetails.DisplayNormalTip(Language.Get("Friend106"));
         }
      
     }
diff --git a/System/FriendSystem/New/AddFriendWin.cs b/System/FriendSystem/New/AddFriendWin.cs
index 9908c2f..ba2b8c8 100644
--- a/System/FriendSystem/New/AddFriendWin.cs
+++ b/System/FriendSystem/New/AddFriendWin.cs
@@ -206,7 +206,7 @@
             }
             else
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("Friend106"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("Friend106"));
             }
         }
 
diff --git a/System/GMCommand/GMInputWin.cs b/System/GMCommand/GMInputWin.cs
index b7a1236..69146f1 100644
--- a/System/GMCommand/GMInputWin.cs
+++ b/System/GMCommand/GMInputWin.cs
@@ -123,7 +123,7 @@
 
         private void OnClickGMInfoBtn()
         {
-            MessageWin.Inst.OnGMOpen();
+            ServerTipDetails.OpenGMPanel();
         }
 
         private void OnClickLookBtn()
diff --git a/System/JadeDynastyBoss/JadeDynastyBossWin.cs b/System/JadeDynastyBoss/JadeDynastyBossWin.cs
index 73b765d..e79a0df 100644
--- a/System/JadeDynastyBoss/JadeDynastyBossWin.cs
+++ b/System/JadeDynastyBoss/JadeDynastyBossWin.cs
@@ -331,7 +331,7 @@
             var enterTimes = dungeonModel.GetEnterTimes(JadeDynastyBossModel.JADEDYNASTY_MAP);
             if ((totalTimes - enterTimes) >= model.challengeLimitCount)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("DemonJar18"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("DemonJar18"));
                 return;
             }
             var mapId = PlayerDatas.Instance.baseData.MapID;
diff --git a/System/KnapSack/Logic/BoxGetItemModel.cs b/System/KnapSack/Logic/BoxGetItemModel.cs
index 561fb1f..92d14e0 100644
--- a/System/KnapSack/Logic/BoxGetItemModel.cs
+++ b/System/KnapSack/Logic/BoxGetItemModel.cs
@@ -89,7 +89,7 @@
             ItemConfig boxConfig = Config.Instance.Get<ItemConfig>(itemId);
             if(PlayerDatas.Instance.baseData.LV < boxConfig.UseLV)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("MakeUseItem101",boxConfig.UseLV));
+                ServerTipDetails.DisplayNormalTip(Language.Get("MakeUseItem101",boxConfig.UseLV));
                 return;
             }
 
diff --git a/System/KnapSack/Logic/PackModelInterface.cs b/System/KnapSack/Logic/PackModelInterface.cs
index 8b704ef..877cb6f 100644
--- a/System/KnapSack/Logic/PackModelInterface.cs
+++ b/System/KnapSack/Logic/PackModelInterface.cs
@@ -1625,7 +1625,7 @@
             }
             else if (strCoins.Length >= 19)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("KnapS127"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("KnapS127"));
             }
             return strCoins;
         }
diff --git a/System/KnapSack/Logic/PackSendQuestMgr.cs b/System/KnapSack/Logic/PackSendQuestMgr.cs
index 50df7b2..8a5d9ba 100644
--- a/System/KnapSack/Logic/PackSendQuestMgr.cs
+++ b/System/KnapSack/Logic/PackSendQuestMgr.cs
@@ -955,7 +955,7 @@
                         int playerLv = PlayerDatas.Instance.baseData.LV;
                         if (playerLv < config.UseLV)
                         {
-                            MessageWin.Inst.ShowFixedTip(Language.Get("MakeUseItem101", useItemModel.chinItemModel.UseLV));
+                            ServerTipDetails.DisplayNormalTip(Language.Get("MakeUseItem101", useItemModel.chinItemModel.UseLV));
                             return false;
                         }
                         break;
diff --git a/System/KnapSack/Logic/RoleElixirTipWin.cs b/System/KnapSack/Logic/RoleElixirTipWin.cs
index 2cc55f3..be95353 100644
--- a/System/KnapSack/Logic/RoleElixirTipWin.cs
+++ b/System/KnapSack/Logic/RoleElixirTipWin.cs
@@ -98,7 +98,7 @@
                     }
                     if(!isCanUse)
                     {
-                        MessageWin.Inst.ShowFixedTip(Language.Get("RoleElixir3"));
+                        ServerTipDetails.DisplayNormalTip(Language.Get("RoleElixir3"));
                     }
                     AchievementGoto.guideAchievementId = 0;
                 }
diff --git a/System/KnapSack/New/ChooseItemWin.cs b/System/KnapSack/New/ChooseItemWin.cs
index e191eb2..25bc5b8 100644
--- a/System/KnapSack/New/ChooseItemWin.cs
+++ b/System/KnapSack/New/ChooseItemWin.cs
@@ -103,7 +103,7 @@
             if (useNum > itemModel.itemInfo.ItemCount)
             {
                 useNum = itemModel.itemInfo.ItemCount;
-                MessageWin.Inst.ShowFixedTip(Language.Get("MaxUseNum"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("MaxUseNum"));
             }
             else if(useNum < 1)
             {
@@ -134,7 +134,7 @@
             if(useNum > itemModel.itemInfo.ItemCount)
             {
                 useNum = itemModel.itemInfo.ItemCount;
-                MessageWin.Inst.ShowFixedTip(Language.Get("MaxUseNum"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("MaxUseNum"));
             }
 
             numText.text = useNum.ToString();
@@ -202,7 +202,7 @@
         {
             if(chooseId == 0)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("ItemSwith_Z"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("ItemSwith_Z"));
                 return;
             }
             ItemModel itemModel = playerPack.GetItemModelByGUID(BoxModel.guid);
diff --git a/System/KnapSack/New/RoleEquipWin.cs b/System/KnapSack/New/RoleEquipWin.cs
index 837900d..60ce219 100644
--- a/System/KnapSack/New/RoleEquipWin.cs
+++ b/System/KnapSack/New/RoleEquipWin.cs
@@ -290,7 +290,7 @@
             }
             else
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("KnapS129"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("KnapS129"));
             }
 
         }
diff --git a/System/Login/BanShuLoginWin.cs b/System/Login/BanShuLoginWin.cs
index b91b7c6..bde0ae0 100644
--- a/System/Login/BanShuLoginWin.cs
+++ b/System/Login/BanShuLoginWin.cs
@@ -60,13 +60,13 @@
 
             if (string.IsNullOrEmpty(m_Account.text) || m_Account.text.Length < 6 || !IsNumberOrAlphabet(m_Account.text))
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("Account_Z"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("Account_Z"));
                 return;
             }
 
             if (string.IsNullOrEmpty(m_Password.text) || m_Password.text.Length < 6 || !IsNumberOrAlphabet(m_Password.text))
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("Password_Z"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("Password_Z"));
                 return;
             }
 
@@ -96,12 +96,12 @@
                 }
                 else
                 {
-                    MessageWin.Inst.ShowFixedTip(result.errordesc);
+                    ServerTipDetails.DisplayNormalTip(result.errordesc);
                 }
             }
             else
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("RegistrationFailed_Z"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("RegistrationFailed_Z"));
             }
         }
 
@@ -138,12 +138,12 @@
                 }
                 else
                 {
-                    MessageWin.Inst.ShowFixedTip(result.errordesc);
+                    ServerTipDetails.DisplayNormalTip(result.errordesc);
                 }
             }
             else
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("LoginFailed_Z"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("LoginFailed_Z"));
             }
         }
 
diff --git a/System/Login/CreateRoleWin.cs b/System/Login/CreateRoleWin.cs
index b5e1ae4..b66c02c 100644
--- a/System/Login/CreateRoleWin.cs
+++ b/System/Login/CreateRoleWin.cs
@@ -183,7 +183,7 @@
 
             if (userNameInput.text.Equals(string.Empty))
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("CreateRole_NameNull"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("CreateRole_NameNull"));
                 return;
             }
             int error = 0;
@@ -192,10 +192,10 @@
                 switch (error)
                 {
                     case 1:
-                        MessageWin.Inst.ShowFixedTip(Language.Get("CreateRole_NameLimit"));
+                        ServerTipDetails.DisplayNormalTip(Language.Get("CreateRole_NameLimit"));
                         break;
                     case 2:
-                        MessageWin.Inst.ShowFixedTip(Language.Get("CreateRole_NameShort"));
+                        ServerTipDetails.DisplayNormalTip(Language.Get("CreateRole_NameShort"));
                         break;
                 }
                 return;
@@ -203,12 +203,12 @@
             if (DirtyWordConfig.IsDirtWord(userNameInput.text) || UIHelper.HasSpecialCharac(userNameInput.text)
                 || DirtyNameConfig.IsDirtName(userNameInput.text))
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("L1007"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("L1007"));
                 return;
             }
             if (Application.internetReachability == NetworkReachability.NotReachable)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("L1116"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("L1116"));
                 return;
             }
 
@@ -236,7 +236,7 @@
         {
             if (Application.internetReachability == NetworkReachability.NotReachable)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("L1116"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("L1116"));
                 return;
             }
             C0108_tagCRoleLoginAsk tagCRoleLoginAsk = new C0108_tagCRoleLoginAsk();
diff --git a/System/Login/LoginModel.cs b/System/Login/LoginModel.cs
index 53da4fb..b4ca0df 100644
--- a/System/Login/LoginModel.cs
+++ b/System/Login/LoginModel.cs
@@ -222,7 +222,7 @@
             if (string.IsNullOrEmpty(_result))
             {
                 busy = false;
-                MessageWin.Inst.ShowFixedTip(Language.Get("L1117"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("L1117"));
                 NetLinkWin.Hide();
                 return;
             }
@@ -232,7 +232,7 @@
             {
                 if (stringSet.Length > 1)
                 {
-                    MessageWin.Inst.ShowFixedTip(stringSet[1]);
+                    ServerTipDetails.DisplayNormalTip(stringSet[1]);
                 }
 
                 busy = false;
diff --git a/System/Login/LoginWin.cs b/System/Login/LoginWin.cs
index a40309a..7832034 100644
--- a/System/Login/LoginWin.cs
+++ b/System/Login/LoginWin.cs
@@ -308,7 +308,7 @@
                     case VersionAuthority.InterTest:
                         if (string.IsNullOrEmpty(m_Account.text))
                         {
-                            MessageWin.Inst.ShowFixedTip(Language.Get("L1095"));
+                            ServerTipDetails.DisplayNormalTip(Language.Get("L1095"));
                             return;
                         }
 
diff --git a/System/MainInterfacePanel/MainInterfaceWin.cs b/System/MainInterfacePanel/MainInterfaceWin.cs
index c79bdb4..97d0a10 100644
--- a/System/MainInterfacePanel/MainInterfaceWin.cs
+++ b/System/MainInterfacePanel/MainInterfaceWin.cs
@@ -1137,7 +1137,7 @@
                     }
                     if (PlayerDatas.Instance.hero.SkillMgr.Get(_skillId).cd > 0)
                     {
-                        MessageWin.Inst.ShowFixedTip(Language.Get("SkillCooling_Z"));
+                        ServerTipDetails.DisplayNormalTip(Language.Get("SkillCooling_Z"));
                     }
                     else
                     {
diff --git a/System/MainInterfacePanel/TaskBoxBGMWin.cs b/System/MainInterfacePanel/TaskBoxBGMWin.cs
index b8d6a8f..36c84b6 100644
--- a/System/MainInterfacePanel/TaskBoxBGMWin.cs
+++ b/System/MainInterfacePanel/TaskBoxBGMWin.cs
@@ -160,7 +160,7 @@
             int blank = playerPack.GetReaminGridCount(PackType.rptItem);
             if (blank < 1)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("BackpackReward_Z"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("BackpackReward_Z"));
                 return;
             }
             if (!_AllMissionDict.ContainsKey(_TaskId))
@@ -409,7 +409,7 @@
             int blank = playerPack.GetReaminGridCount(PackType.rptItem);
             if (blank < 1)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("BackpackReward_Z"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("BackpackReward_Z"));
                 return;
             }
             if (!_AllMissionDict.ContainsKey(_TaskId))
diff --git a/System/Market/MarketDealWin.cs b/System/Market/MarketDealWin.cs
index 90c3d39..dc9f42c 100644
--- a/System/Market/MarketDealWin.cs
+++ b/System/Market/MarketDealWin.cs
@@ -239,7 +239,7 @@
         {
             if (m_SearchInput.text.Equals(string.Empty))
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("Market_Text_41"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("Market_Text_41"));
                 return;
             }
             m_Searching = true;
diff --git a/System/Market/MarketPutedItem.cs b/System/Market/MarketPutedItem.cs
index ea1e609..aa8fcbb 100644
--- a/System/Market/MarketPutedItem.cs
+++ b/System/Market/MarketPutedItem.cs
@@ -63,7 +63,7 @@
                         int gridCnt = PackModel.GetReaminGridCount(PackType.rptItem);
                         if (gridCnt < 1)
                         {
-                            MessageWin.Inst.ShowFixedTip(Language.Get("KnapS130"));
+                            ServerTipDetails.DisplayNormalTip(Language.Get("KnapS130"));
                             return;
                         }
                         C1B03_tagCMPlayerRecaptureBourseItem putoutpack = new C1B03_tagCMPlayerRecaptureBourseItem();
diff --git a/System/Message/MessageWin.cs b/System/Message/MessageWin.cs
index 4b32aae..bfdfb3d 100644
--- a/System/Message/MessageWin.cs
+++ b/System/Message/MessageWin.cs
@@ -9,81 +9,11 @@
 using DG.Tweening;
 namespace Snxxz.UI
 {
+    [XLua.Hotfix]
     public class MessageWin : Window
     {
-        private static MessageWin _inst = null;
-        public static MessageWin Inst
-        {
-            get
-            {
-                if (_inst == null)
-                {
-                    _inst = WindowCenter.Instance.Get<MessageWin>();
-                }
-
-                return _inst;
-            }
-        }
-
-        [SerializeField] RectTransform m_ContianerFixedTip0;
-        [SerializeField] RichText m_FixedTip0;
-
-        [SerializeField] List<RectTransform> m_ContianerFixedTips;
-        [SerializeField] List<RichText> m_FixedTips;
-        List<bool> m_FixedTipDisplays = new List<bool>();
-
-        #region GM
-        [SerializeField] GameObject gmPanel;
-        [SerializeField] ScrollerController gmCtrl;
-        [SerializeField] Toggle gmToggle;
-        [SerializeField] Toggle gmUpdateToggle;
-        [SerializeField] Button gmClose;
-        #endregion
-
-        public void ShowFixedTip(string tip, ArrayList infoList = null)
-        {
-            transform.SetAsLastSibling();
-            m_FixedTip0.SetExtenalData(infoList);
-            m_FixedTip0.text = tip;
-            if (!m_ContianerFixedTip0.gameObject.activeInHierarchy)
-            {
-                m_ContianerFixedTip0.gameObject.SetActive(true);
-            }
-            m_ContianerFixedTip0.DoWaitRestart();
-        }
-
-        public void ShowFixedTips(string tip, ArrayList infoList = null)
-        {
-            transform.SetAsLastSibling();
-            var _index = m_FixedTipDisplays.FindIndex((x) =>
-             {
-                 return !x;
-             });
-            _index = _index == -1 ? 0 : _index;
-            m_FixedTips[_index].SetExtenalData(infoList);
-            m_FixedTips[_index].text = tip;
-            m_FixedTipDisplays[_index] = true;
-            if (!m_ContianerFixedTips[_index].gameObject.activeInHierarchy)
-            {
-                m_ContianerFixedTips[_index].gameObject.SetActive(true);
-            }
-            m_ContianerFixedTips[_index].DoWaitRestart();
-        }
-
-        private void OnHideFixedTip(Component com)
-        {
-            com.DoWaitStop();
-            com.gameObject.SetActive(false);
-
-            var _index = m_ContianerFixedTips.FindIndex((x) =>
-             {
-                 return x.Equals(com);
-             });
-            if (_index != -1)
-            {
-                m_FixedTipDisplays[_index] = false;
-            }
-        }
+        [SerializeField] RectTransform m_ContainerNormalHint;
+        [SerializeField] RichText m_NormalHint;
 
         [SerializeField] RectTransform m_ContainerServerTip;
         [SerializeField] ScaleTween m_ServerTipScaleTween;
@@ -91,35 +21,142 @@
         [SerializeField] RichText m_ServerTip;
         [SerializeField, Header("鍏ㄦ湇骞挎挱鍋滅暀鏃堕棿")] float m_ServerTipKeepTime = 1.5f;
 
-        private bool serverTipPrepared = true;
-        public void ShowServerTip()
+        [SerializeField] RectTransform m_ContainerGM;
+        [SerializeField] ScrollerController m_ScrollControl;
+        [SerializeField] Toggle m_AutoPopToggle;
+        [SerializeField] Toggle m_AutoRefreshToggle;
+        [SerializeField] Button m_GMClose;
+
+        bool m_ServerTipPrepared = true;
+
+        protected override void BindController()
         {
-            if (!serverTipPrepared)
+        }
+
+        protected override void AddListeners()
+        {
+            m_ContainerNormalHint.OnWaitCompelete(OnHintDisplayComplete);
+            m_ScrollControl.OnRefreshCell += OnRefreshGmCell;
+            m_ScrollControl.lockType = EnhanceLockType.LockVerticalBottom;
+            m_GMClose.onClick.AddListener(OnGMClose);
+        }
+
+        protected override void OnPreOpen()
+        {
+            m_ServerTipPrepared = true;
+
+#if UNITY_EDITOR
+            m_ContainerGM.gameObject.SetActive(VersionConfig.Get().debugVersion);
+#else
+            m_ContainerGM.gameObject.SetActive(false);
+#endif
+            ServerTipDetails.normalHintRefresh += CheckNormalHint;
+            ServerTipDetails.serverHintRefresh += CheckServerHint;
+            ServerTipDetails.gmMessageRefresh += DisplayGM;
+            ServerTipDetails.gmOpenEvent += GmOpenEvent;
+            CheckNormalHint();
+            CheckServerHint();
+            DisplayGM(string.Empty);
+
+            if (ServerTipDetails.requireOpenGM)
+            {
+                if (hasOnFrom)
+                {
+                    OnGMOpen();
+                }
+                ServerTipDetails.requireOpenGM = false;
+            }
+        }
+
+        protected override void OnAfterOpen()
+        {
+        }
+
+        protected override void OnPreClose()
+        {
+            ServerTipDetails.normalHintRefresh -= CheckNormalHint;
+            ServerTipDetails.serverHintRefresh -= CheckServerHint;
+            ServerTipDetails.gmMessageRefresh -= DisplayGM;
+            ServerTipDetails.gmOpenEvent -= GmOpenEvent;
+        }
+
+        protected override void OnAfterClose()
+        {
+        }
+
+        private void GmOpenEvent()
+        {
+            if (ServerTipDetails.requireOpenGM)
+            {
+                if (hasOnFrom)
+                {
+                    OnGMOpen();
+                }
+                ServerTipDetails.requireOpenGM = false;
+            }
+        }
+
+        void CheckNormalHint()
+        {
+            var hint = ServerTipDetails.RequireNormalHint();
+            if (hint != null)
+            {
+                DisplayNormalHint(hint);
+            }
+        }
+
+        void DisplayNormalHint(SystemHintData hint)
+        {
+            transform.SetAsLastSibling();
+            m_NormalHint.SetExtenalData(hint.extentionData);
+            m_NormalHint.text = hint.message;
+            if (!m_ContainerNormalHint.gameObject.activeInHierarchy)
+            {
+                m_ContainerNormalHint.gameObject.SetActive(true);
+            }
+            m_ContainerNormalHint.DoWaitRestart();
+        }
+
+        private void OnHintDisplayComplete(Component com)
+        {
+            com.DoWaitStop();
+            com.gameObject.SetActive(false);
+        }
+
+        void CheckServerHint()
+        {
+            if (!m_ServerTipPrepared)
             {
                 return;
             }
-            transform.SetAsLastSibling();
-            var _hint = ServerTipDetails.RequireServerTip();
-            if (_hint != null)
+            var hint = ServerTipDetails.RequireServerTip();
+            if (hint != null && gameObject.activeInHierarchy)
             {
-                serverTipPrepared = false;
-                if (!m_ServerTipScaleTween.gameObject.activeSelf)
-                {
-                    m_ServerTipScaleTween.gameObject.SetActive(true);
-                }
-                m_ServerTipScaleTween.SetStartState();
-                m_ServerTipPositionTween.SetStartState();
-                m_ContainerServerTip.gameObject.SetActive(true);
-                m_ServerTip.SetExtenalData(_hint.extentionData);
-                m_ServerTip.text = _hint.message;
-                m_ServerTipScaleTween.Play();
-                TimeMgr.Instance.Register(m_ServerTip, ServerTipStartHide, m_ServerTipKeepTime + m_ServerTipScaleTween.duration);
+                DisplayServerHint(hint);
             }
             else
             {
                 DisableServerTip();
             }
         }
+
+        public void DisplayServerHint(SystemHintData hint)
+        {
+            transform.SetAsLastSibling();
+            m_ServerTipPrepared = false;
+            if (!m_ServerTipScaleTween.gameObject.activeSelf)
+            {
+                m_ServerTipScaleTween.gameObject.SetActive(true);
+            }
+            m_ServerTipScaleTween.SetStartState();
+            m_ServerTipPositionTween.SetStartState();
+            m_ContainerServerTip.gameObject.SetActive(true);
+            m_ServerTip.SetExtenalData(hint.extentionData);
+            m_ServerTip.text = hint.message;
+            m_ServerTipScaleTween.Play();
+            TimeMgr.Instance.Register(m_ServerTip, ServerTipStartHide, m_ServerTipKeepTime + m_ServerTipScaleTween.duration);
+        }
+
         private void ServerTipStartHide(Component comp)
         {
             m_ServerTipPositionTween.Play();
@@ -128,9 +165,9 @@
 
         private void ServerTipTweenComplete(Component comp)
         {
-            serverTipPrepared = true;
+            m_ServerTipPrepared = true;
             DisableServerTip();
-            ShowServerTip();
+            CheckServerHint();
         }
 
         private void DisableServerTip()
@@ -144,37 +181,32 @@
 
 
         #region GM
-        private const int MAX_GM = 300;
-        private List<string> gmList = new List<string>();
-        public readonly Regex autoPopRegex = new Regex("鍙傛暟閿欒|鎵цGM鍛戒护閿欒|^###");
-        public void RevGMMsg(string msg)
+        readonly Regex autoPopRegex = new Regex("鍙傛暟閿欒|鎵цGM鍛戒护閿欒|^###");
+        void DisplayGM(string latest)
         {
-            if (gmList.Count >= MAX_GM)
+            if (!string.IsNullOrEmpty(latest))
             {
-                gmList.RemoveAt(0);
+                if (m_AutoPopToggle.isOn && hasOnFrom)
+                {
+                    RectTransform rt = m_ContainerGM;
+                    Vector3 pos = new Vector3(hasOnFrom ? -rt.sizeDelta.x / 2 : rt.sizeDelta.x / 2, 0, 0);
+                    rt.DOLocalMove(pos, 1.0f);
+                    hasOnFrom = !hasOnFrom;
+                    m_GMClose.gameObject.SetActive(!hasOnFrom);
+                }
             }
-            msg.Replace("###", string.Empty);
-            gmList.Add(msg);
-            if (gmToggle.isOn && hasOnFrom)
+            if (m_ScrollControl.GetNumberOfCells(m_ScrollControl.m_Scorller) >= 300)
             {
-                RectTransform rt = gmPanel.transform as RectTransform;
-                Vector3 pos = new Vector3(hasOnFrom ? -rt.sizeDelta.x / 2 : rt.sizeDelta.x / 2, 0, 0);
-                rt.DOLocalMove(pos, 1.0f);
-                hasOnFrom = !hasOnFrom;
-                gmClose.gameObject.SetActive(!hasOnFrom);
-            }
-            if (gmCtrl.GetNumberOfCells(gmCtrl.m_Scorller) >= MAX_GM)
-            {
-                gmCtrl.m_Scorller.RefreshActiveCellViews();
+                m_ScrollControl.m_Scorller.RefreshActiveCellViews();
                 return;
             }
-            gmCtrl.Refresh();
-            for (int i = 0; i < gmList.Count; i++)
+            m_ScrollControl.Refresh();
+            for (int i = 0; i < ServerTipDetails.gmMessages.Count; i++)
             {
-                gmCtrl.AddCell(ScrollerDataType.Normal, i);
+                m_ScrollControl.AddCell(ScrollerDataType.Normal, i);
             }
-            gmCtrl.Restart();
-            if (autoPopRegex.IsMatch(msg))
+            m_ScrollControl.Restart();
+            if (autoPopRegex.IsMatch(latest))
             {
                 if (hasOnFrom)
                 {
@@ -185,10 +217,10 @@
 
         private void OnRefreshGmCell(ScrollerDataType type, CellView cell)
         {
-            if (cell.index < gmList.Count)
+            if (cell.index < ServerTipDetails.gmMessages.Count)
             {
                 Text text = cell.transform.Find("Text").GetComponent<Text>();
-                text.text = gmList[cell.index];
+                text.text = ServerTipDetails.gmMessages[cell.index];
             }
         }
 
@@ -196,22 +228,18 @@
         {
             if (!hasOnFrom)
             {
-                RectTransform rt = gmPanel.transform as RectTransform;
+                RectTransform rt = m_ContainerGM;
                 Vector3 pos = new Vector3(hasOnFrom ? -rt.sizeDelta.x / 2 : rt.sizeDelta.x / 2, 0, 0);
                 rt.DOLocalMove(pos, 1.0f);
                 hasOnFrom = !hasOnFrom;
-                gmClose.gameObject.SetActive(!hasOnFrom);
+                m_GMClose.gameObject.SetActive(!hasOnFrom);
             }
         }
         #endregion
 
         private void OnDisable()
         {
-            m_ContianerFixedTip0.gameObject.SetActive(false);
-            for (int i = 0; i < m_ContianerFixedTips.Count; i++)
-            {
-                m_ContianerFixedTips[i].gameObject.SetActive(false);
-            }
+            m_ContainerNormalHint.gameObject.SetActive(false);
             DisableServerTip();
             StopAllCoroutines();
         }
@@ -221,50 +249,11 @@
         private bool hasOnFrom = true;
         public void OnGMOpen()
         {
-            RectTransform rt = gmPanel.transform as RectTransform;
+            RectTransform rt = m_ContainerGM;
             Vector3 pos = new Vector3(hasOnFrom ? -rt.sizeDelta.x / 2 : rt.sizeDelta.x / 2, 0, 0);
             rt.DOLocalMove(pos, 1.0f);
             hasOnFrom = !hasOnFrom;
-            gmClose.gameObject.SetActive(!hasOnFrom);
-        }
-
-        protected override void BindController()
-        {
-        }
-        protected override void AddListeners()
-        {
-            m_ContianerFixedTip0.OnWaitCompelete(OnHideFixedTip);
-            for (int i = 0; i < m_ContianerFixedTips.Count; i++)
-            {
-                m_ContianerFixedTips[i].OnWaitCompelete(OnHideFixedTip);
-                m_FixedTipDisplays.Add(false);
-            }
-            gmCtrl.OnRefreshCell += OnRefreshGmCell;
-            gmCtrl.lockType = EnhanceLockType.LockVerticalBottom;
-            gmClose.onClick.AddListener(OnGMClose);
-        }
-
-        protected override void OnPreOpen()
-        {
-#if UNITY_EDITOR
-            gmPanel.SetActive(VersionConfig.Get().debugVersion);
-#else
-           gmPanel.SetActive(false);
-#endif
-            serverTipPrepared = true;
-        }
-
-        protected override void OnAfterOpen()
-        {
-        }
-
-        protected override void OnPreClose()
-        {
-        }
-
-        protected override void OnAfterClose()
-        {
-            _inst = null;
+            m_GMClose.gameObject.SetActive(!hasOnFrom);
         }
     }
 }
diff --git a/System/Message/SysNotifyMgr.cs b/System/Message/SysNotifyMgr.cs
index 2a569c0..6b81797 100644
--- a/System/Message/SysNotifyMgr.cs
+++ b/System/Message/SysNotifyMgr.cs
@@ -46,7 +46,7 @@
 #if UNITY_EDITOR
         if (Input.GetKeyDown(KeyCode.F3))
         {
-            MessageWin.Inst.OnGMOpen();
+            ServerTipDetails.OpenGMPanel();
         }
 #endif
     }
@@ -200,11 +200,9 @@
             switch ((SysNotifyType)type[i])
             {
                 case SysNotifyType.SysFixedTip:
-                    MessageWin.Inst.ShowFixedTip(msg, tipInfoList);
+                    ServerTipDetails.DisplayNormalTip(msg, tipInfoList);
                     break;
                 case SysNotifyType.SysFixedTip1:
-                    MessageWin.Inst.ShowFixedTips(msg, tipInfoList);
-                    break;
                 case SysNotifyType.SysScrollTip:
                     ScrollTip.ShowTip(msg, tipInfoList, order);
                     break;
diff --git a/System/Mount/MountSkillWin.cs b/System/Mount/MountSkillWin.cs
index ddd2a51..6325c73 100644
--- a/System/Mount/MountSkillWin.cs
+++ b/System/Mount/MountSkillWin.cs
@@ -180,7 +180,7 @@
             {
                 if (_GetMountSkills.ContainsKey(SkillIDNow) && _GetMountSkills[SkillIDNow] >= 3)
                 {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("Z1816"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("Z1816"));
                     return;
                 }
                 C0304_tagCAddSkillPoint _C0304 = new C0304_tagCAddSkillPoint();
@@ -191,11 +191,11 @@
             {
                 if (Quantity <= 0)
                 {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("Z1817"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("Z1817"));
                 }
                 else if (Quantity > 0)
                 {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("Z1818"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("Z1818"));
                 }
 
             }
diff --git a/System/Mount/MountWin.cs b/System/Mount/MountWin.cs
index c38f62b..6bed387 100644
--- a/System/Mount/MountWin.cs
+++ b/System/Mount/MountWin.cs
@@ -388,7 +388,7 @@
             }
             else
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("Z1028"));//褰撳墠鍧愰獞鍗囬樁婊$骇
+                ServerTipDetails.DisplayNormalTip(Language.Get("Z1028"));//褰撳墠鍧愰獞鍗囬樁婊$骇
             }
         }
         private void SingleUseMountDan(int MountDanNumber)//鍗曟浣跨敤鍧愰獞涓�
@@ -414,7 +414,7 @@
             }
             else
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("Z1028"));//褰撳墠鍧愰獞鍗囬樁婊$骇
+                ServerTipDetails.DisplayNormalTip(Language.Get("Z1028"));//褰撳墠鍧愰獞鍗囬樁婊$骇
             }
         }
         IEnumerator AutomaticDomesticated()//鑷姩椹吇
@@ -460,7 +460,7 @@
             }
             m_AutoTrainBtn.gameObject.SetActive(true);
             m_StopDomesticateBtn.gameObject.SetActive(false);
-            MessageWin.Inst.ShowFixedTip(Language.Get("Z1028"));//褰撳墠鍧愰獞鍗囬樁婊$骇;
+            ServerTipDetails.DisplayNormalTip(Language.Get("Z1028"));//褰撳墠鍧愰獞鍗囬樁婊$骇;
             yield break;
         }
 
diff --git a/System/OpenServerActivity/MysticalPurchaseSaleItem.cs b/System/OpenServerActivity/MysticalPurchaseSaleItem.cs
index 54e51f6..8f8f82e 100644
--- a/System/OpenServerActivity/MysticalPurchaseSaleItem.cs
+++ b/System/OpenServerActivity/MysticalPurchaseSaleItem.cs
@@ -98,7 +98,7 @@
                          }
                          else
                          {
-                            MessageWin.Inst.ShowFixedTip(Language.Get("MysticalPurchase105"));
+                            ServerTipDetails.DisplayNormalTip(Language.Get("MysticalPurchase105"));
                          }
                      }
                  });
diff --git a/System/Realm/RealmPracticeWin.cs b/System/Realm/RealmPracticeWin.cs
index 1331ed7..7d253c3 100644
--- a/System/Realm/RealmPracticeWin.cs
+++ b/System/Realm/RealmPracticeWin.cs
@@ -85,7 +85,7 @@
 
                     if(!isAchieveReach)
                     {
-                        MessageWin.Inst.ShowFixedTip(Language.Get("RealmWin_Practice_1"));
+                        ServerTipDetails.DisplayNormalTip(Language.Get("RealmWin_Practice_1"));
                     }
                     AchievementGoto.guideAchievementId = 0;
                 }
diff --git a/System/Realm/RealmUpHoldWin.cs b/System/Realm/RealmUpHoldWin.cs
index 6b1d9f8..463d777 100644
--- a/System/Realm/RealmUpHoldWin.cs
+++ b/System/Realm/RealmUpHoldWin.cs
@@ -55,7 +55,7 @@
                 }
                 else
                 {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("RealmWin_Bewrite_8"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("RealmWin_Bewrite_8"));
                 }
             }
             OnCloseBtn();
diff --git a/System/Role/MagicianModel.cs b/System/Role/MagicianModel.cs
index 445fbb3..e812192 100644
--- a/System/Role/MagicianModel.cs
+++ b/System/Role/MagicianModel.cs
@@ -404,7 +404,7 @@
             }
             if (IsGodWeaponMaxLevel(type))
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("L1054"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("L1054"));
                 return;
             }
             int[] items = GetLevelUpItemByType(type);
diff --git a/System/Role/RoleModel.cs b/System/Role/RoleModel.cs
index 8baa3e6..df30f10 100644
--- a/System/Role/RoleModel.cs
+++ b/System/Role/RoleModel.cs
@@ -49,7 +49,7 @@
                     SysNotifyMgr.Instance.ShowTip("GoldErr");
                     break;
                 case RoleRenameResult.NameRuleErr:
-                    MessageWin.Inst.ShowFixedTip(Language.Get("L1007"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("L1007"));
                     break;
                 case RoleRenameResult.NameLengErr:
                     break;
diff --git a/System/Role/RoleRenameWin.cs b/System/Role/RoleRenameWin.cs
index 6014b96..bf63f1a 100644
--- a/System/Role/RoleRenameWin.cs
+++ b/System/Role/RoleRenameWin.cs
@@ -91,7 +91,7 @@
         {
             if (renameInput.text.Equals(string.Empty))
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("CreateRole_NameNull"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("CreateRole_NameNull"));
                 return;
             }
             if(GetRenameToolNum() < 1)
@@ -106,10 +106,10 @@
                 switch (error)
                 {
                     case 1:
-                        MessageWin.Inst.ShowFixedTip(Language.Get("CreateRole_NameLimit"));
+                        ServerTipDetails.DisplayNormalTip(Language.Get("CreateRole_NameLimit"));
                         break;
                     case 2:
-                        MessageWin.Inst.ShowFixedTip(Language.Get("CreateRole_NameShort"));
+                        ServerTipDetails.DisplayNormalTip(Language.Get("CreateRole_NameShort"));
                         break;
                 }
                 return;
@@ -117,7 +117,7 @@
             if (DirtyWordConfig.IsDirtWord(renameInput.text) || UIHelper.HasSpecialCharac(renameInput.text)
                 || DirtyNameConfig.IsDirtName(renameInput.text))
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("L1007"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("L1007"));
                 return;
             }
 
diff --git a/System/Rune/RuneBreakWin.cs b/System/Rune/RuneBreakWin.cs
index 429798a..5b2de2c 100644
--- a/System/Rune/RuneBreakWin.cs
+++ b/System/Rune/RuneBreakWin.cs
@@ -68,7 +68,7 @@
             }
             if (m_BreakRunes.Count < 1)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("L1059"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("L1059"));
                 return;
             }
             ushort[] placeIndexs = null;
diff --git a/System/Rune/RunePackCell.cs b/System/Rune/RunePackCell.cs
index 4221e94..abeee2d 100644
--- a/System/Rune/RunePackCell.cs
+++ b/System/Rune/RunePackCell.cs
@@ -76,7 +76,7 @@
         {
             if (model.sltRuneHole == -1)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("L1061"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("L1061"));
                 return;
             }
             var sltHoleRune = model.GetHoleRune(model.sltRuneHole);
@@ -87,7 +87,7 @@
             {
                 if (model.IsSameInHoleRune(_rune.id, model.sltRuneHole))
                 {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("L1078"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("L1078"));
                     return;
                 }
             }
@@ -96,7 +96,7 @@
                 model.IsSameRune(_rune.id, ref sameHoles);
                 if (sameHoles.Count > 0 && !sameHoles.Contains(model.sltRuneHole))
                 {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("L1078"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("L1078"));
                     return;
                 }
                 if (sameHoles.Count > 1)
diff --git a/System/Skill/SkillAccordWin.cs b/System/Skill/SkillAccordWin.cs
index 81daba5..f8f777d 100644
--- a/System/Skill/SkillAccordWin.cs
+++ b/System/Skill/SkillAccordWin.cs
@@ -294,7 +294,7 @@
                 SkillConfig skillCfg = Config.Instance.Get<SkillConfig>(skillid);
                 if (skillCfg != null)
                 {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("L1115", skillCfg.Skillsource));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("L1115", skillCfg.Skillsource));
                 }
                 return;
             }
diff --git a/System/Store/Logic/BuyBoxInfoWin.cs b/System/Store/Logic/BuyBoxInfoWin.cs
index 3fdb267..f710be8 100644
--- a/System/Store/Logic/BuyBoxInfoWin.cs
+++ b/System/Store/Logic/BuyBoxInfoWin.cs
@@ -444,7 +444,7 @@
             numKeyboard.Value = buyCnt.ToString();
             if (isReachUpper)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("StoreWin109"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("StoreWin109"));
             }
         }
 
@@ -466,7 +466,7 @@
             RefreshBuyPrice(buyCnt);
             if (isReachUpper)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("StoreWin109"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("StoreWin109"));
             }
         }
 
@@ -494,7 +494,7 @@
                 } 
                 if (remainNum < 1)
                 {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("StoreWin109"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("StoreWin109"));
                     return;
                 }
 
diff --git a/System/Store/Logic/BuyEquipTip.cs b/System/Store/Logic/BuyEquipTip.cs
index ba819ea..b2bc230 100644
--- a/System/Store/Logic/BuyEquipTip.cs
+++ b/System/Store/Logic/BuyEquipTip.cs
@@ -826,7 +826,7 @@
             numKeyboard.Value = buyCnt.ToString();
             if (isReachUpper)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("StoreWin109"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("StoreWin109"));
             }
         }
 
@@ -850,7 +850,7 @@
             m_storeModel.SetBuyCnt(buyCnt);
             if (isReachUpper)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("StoreWin109"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("StoreWin109"));
             }
 
         }
diff --git a/System/Store/Logic/BuyGuardTip.cs b/System/Store/Logic/BuyGuardTip.cs
index 3c3fe77..44c6619 100644
--- a/System/Store/Logic/BuyGuardTip.cs
+++ b/System/Store/Logic/BuyGuardTip.cs
@@ -499,7 +499,7 @@
             numKeyboard.Value = buyCnt.ToString();
             if (isReachUpper)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("StoreWin109"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("StoreWin109"));
             }
 
         }
@@ -522,7 +522,7 @@
             RefreshBuyPrice(buyCnt);
             if (isReachUpper)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("StoreWin109"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("StoreWin109"));
             }
 
         }
@@ -552,7 +552,7 @@
                 }
                 if (remainNum < 1)
                 {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("StoreWin109"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("StoreWin109"));
                     return;
                 }
 
diff --git a/System/Store/Logic/BuyItemInfoWin.cs b/System/Store/Logic/BuyItemInfoWin.cs
index f200116..17ba62c 100644
--- a/System/Store/Logic/BuyItemInfoWin.cs
+++ b/System/Store/Logic/BuyItemInfoWin.cs
@@ -473,7 +473,7 @@
             numKeyboard.Value = buyCnt.ToString();
             if (isReachUpper)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("StoreWin109"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("StoreWin109"));
             }
         }
 
@@ -495,7 +495,7 @@
             RefreshBuyPrice(buyCnt);
             if (isReachUpper || buyCnt == 0)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("StoreWin109"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("StoreWin109"));
             }
         }
 
@@ -523,7 +523,7 @@
                 } 
                 if (remainNum < 1)
                 {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("StoreWin109"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("StoreWin109"));
                     return;
                 }
 
diff --git a/System/Store/Logic/BuyPetMatInfoWin.cs b/System/Store/Logic/BuyPetMatInfoWin.cs
index 44ea839..48fc627 100644
--- a/System/Store/Logic/BuyPetMatInfoWin.cs
+++ b/System/Store/Logic/BuyPetMatInfoWin.cs
@@ -442,7 +442,7 @@
             numKeyboard.Value = buyCnt.ToString();
             if (isReachUpper)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("StoreWin109"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("StoreWin109"));
             }
         }
 
@@ -464,7 +464,7 @@
             RefreshBuyPrice(buyCnt);
             if (isReachUpper)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("StoreWin109"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("StoreWin109"));
             }
         }
 
@@ -492,7 +492,7 @@
                 } 
                 if (remainNum < 1)
                 {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("StoreWin109"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("StoreWin109"));
                     return;
                 }
 
diff --git a/System/Store/Logic/BuyWingsTip.cs b/System/Store/Logic/BuyWingsTip.cs
index 39c8cd6..ab6df16 100644
--- a/System/Store/Logic/BuyWingsTip.cs
+++ b/System/Store/Logic/BuyWingsTip.cs
@@ -461,7 +461,7 @@
             numKeyboard.Value = buyCnt.ToString();
             if (isReachUpper)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("StoreWin109"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("StoreWin109"));
             }
         }
 
@@ -483,7 +483,7 @@
             RefreshBuyPrice(buyCnt);
             if (isReachUpper)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("StoreWin109"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("StoreWin109"));
             }
         }
 
@@ -513,7 +513,7 @@
                 }
                 if (remainNum < 1)
                 {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("StoreWin109"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("StoreWin109"));
                     return;
                 }
 
diff --git a/System/Store/StoreModel.cs b/System/Store/StoreModel.cs
index c738268..97cf4c9 100644
--- a/System/Store/StoreModel.cs
+++ b/System/Store/StoreModel.cs
@@ -879,7 +879,7 @@
             }
             if (remainNum < 1)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("StoreWin109"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("StoreWin109"));
                 return;
             }
 
@@ -899,7 +899,7 @@
             {
                 if (!IsCanBuyItem(_tagRuneModel.TowerID))
                 {
-                    MessageWin.Inst.ShowFixedTip(Language.Get("Store101"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("Store101"));
                     return;
                 }
             }
diff --git a/System/Strengthening/StrengtheningSripts.cs b/System/Strengthening/StrengtheningSripts.cs
index 3c0492d..1d40ef9 100644
--- a/System/Strengthening/StrengtheningSripts.cs
+++ b/System/Strengthening/StrengtheningSripts.cs
@@ -356,16 +356,16 @@
             }
             else
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("Z1012"));//瑁呭寮哄寲婊$骇
+                ServerTipDetails.DisplayNormalTip(Language.Get("Z1012"));//瑁呭寮哄寲婊$骇
             }
         }
         else if (_theType == 2)
         {
-            MessageWin.Inst.ShowFixedTip(Language.Get("Z1013"));//璇蜂僵鎴磋澶�
+            ServerTipDetails.DisplayNormalTip(Language.Get("Z1013"));//璇蜂僵鎴磋澶�
         }
         else if (_theType == 3)
         {
-            MessageWin.Inst.ShowFixedTip(Language.Get("Z1012"));//瑁呭寮哄寲婊$骇
+            ServerTipDetails.DisplayNormalTip(Language.Get("Z1012"));//瑁呭寮哄寲婊$骇
         }
     }
 
@@ -420,12 +420,12 @@
             }
             else
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("Z1012"));//瑁呭寮哄寲婊$骇
+                ServerTipDetails.DisplayNormalTip(Language.Get("Z1012"));//瑁呭寮哄寲婊$骇
             }
         }
         else if (_theType == 2)
         {
-            MessageWin.Inst.ShowFixedTip(Language.Get("Z1013"));//璇蜂僵鎴磋澶�
+            ServerTipDetails.DisplayNormalTip(Language.Get("Z1013"));//璇蜂僵鎴磋澶�
             if (IsGuide)
             {
                 NewBieCenter.Instance.StartNewBieGuide(92);
@@ -434,7 +434,7 @@
         }
         else if (_theType == 3)
         {
-            MessageWin.Inst.ShowFixedTip(Language.Get("Z1012"));//瑁呭寮哄寲婊$骇
+            ServerTipDetails.DisplayNormalTip(Language.Get("Z1012"));//瑁呭寮哄寲婊$骇
         }
        
     }
diff --git a/System/Strengthening/WashTips.cs b/System/Strengthening/WashTips.cs
index 506d290..d334a56 100644
--- a/System/Strengthening/WashTips.cs
+++ b/System/Strengthening/WashTips.cs
@@ -183,7 +183,7 @@
 
             if (!isWash)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("Material101"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("Material101"));
             }
             else
             {
diff --git a/System/Strengthening/WingsBouncedWin.cs b/System/Strengthening/WingsBouncedWin.cs
index e836622..67c2403 100644
--- a/System/Strengthening/WingsBouncedWin.cs
+++ b/System/Strengthening/WingsBouncedWin.cs
@@ -130,7 +130,7 @@
                 //}
                 //else
                 //{
-                //    MessageWin.Inst.ShowFixedTip(Language.Get("Z1019"));//"缈呰唨鏈揪鍒扮┛鎴存潯浠�"
+                //    ServerTipDetails.DisplayNormalTip(Language.Get("Z1019"));//"缈呰唨鏈揪鍒扮┛鎴存潯浠�"
                 //}
             });
         }
diff --git a/System/Strengthening/WingsRefined.cs b/System/Strengthening/WingsRefined.cs
index 8f7327a..603d1ad 100644
--- a/System/Strengthening/WingsRefined.cs
+++ b/System/Strengthening/WingsRefined.cs
@@ -234,7 +234,7 @@
 
         if (itemModel == null)
         {
-            MessageWin.Inst.ShowFixedTip(Language.Get("EquipReinforceWin_WingRefLv_2"));
+            ServerTipDetails.DisplayNormalTip(Language.Get("EquipReinforceWin_WingRefLv_2"));
             return;
         }
 
@@ -242,11 +242,11 @@
         {
             if (!JudgeConditions())
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("Z1018"));//缈呰唨绮剧偧宸插埌杈炬弧绾ф棤娉曠户缁簿鐐�
+                ServerTipDetails.DisplayNormalTip(Language.Get("Z1018"));//缈呰唨绮剧偧宸插埌杈炬弧绾ф棤娉曠户缁簿鐐�
             }
             else
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("EquipReinforceWin_WingHText_1"));//鎵�闇�鏉愭枡涓嶈冻
+                ServerTipDetails.DisplayNormalTip(Language.Get("EquipReinforceWin_WingHText_1"));//鎵�闇�鏉愭枡涓嶈冻
             }
 
             return;
@@ -262,7 +262,7 @@
         }
         else
         {
-            MessageWin.Inst.ShowFixedTip(Language.Get("Z1018"));//缈呰唨绮剧偧宸插埌杈炬弧绾ф棤娉曠户缁簿鐐�
+            ServerTipDetails.DisplayNormalTip(Language.Get("Z1018"));//缈呰唨绮剧偧宸插埌杈炬弧绾ф棤娉曠户缁簿鐐�
         }
     }
 
@@ -419,7 +419,7 @@
         ItemModel itemModel = playerPack.GetItemModelByIndex(PackType.rptEquip, (int)RoleEquipType.retWing);
         if (itemModel == null)
         {
-            MessageWin.Inst.ShowFixedTip(Language.Get("EquipReinforceWin_WingRefLv_2"));
+            ServerTipDetails.DisplayNormalTip(Language.Get("EquipReinforceWin_WingRefLv_2"));
             return;
         }
 
@@ -432,11 +432,11 @@
         {
             if (!JudgeConditions())
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("Z1018"));//缈呰唨绮剧偧宸插埌杈炬弧绾ф棤娉曠户缁簿鐐�
+                ServerTipDetails.DisplayNormalTip(Language.Get("Z1018"));//缈呰唨绮剧偧宸插埌杈炬弧绾ф棤娉曠户缁簿鐐�
             }
             else if (_DevourDIc.Count <= 0)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("EquipReinforceWin_WingHText_1"));//鎵�闇�鏉愭枡涓嶈冻
+                ServerTipDetails.DisplayNormalTip(Language.Get("EquipReinforceWin_WingHText_1"));//鎵�闇�鏉愭枡涓嶈冻
             }
 
         }
@@ -466,7 +466,7 @@
             if (!JudgeConditions())
             {
                 RefineStopButton();//鍋滄绮剧偧鎸夐挳
-                MessageWin.Inst.ShowFixedTip(Language.Get("Z1018"));//缈呰唨绮剧偧宸插埌杈炬弧绾ф棤娉曠户缁簿鐐�
+                ServerTipDetails.DisplayNormalTip(Language.Get("Z1018"));//缈呰唨绮剧偧宸插埌杈炬弧绾ф棤娉曠户缁簿鐐�
                 yield break;
             }
             if (_DevourDIc.Count <= 0)
@@ -484,7 +484,7 @@
         SinglePackModel singlePack = playerPack.GetSinglePackModel(PackType.rptItem);
         if (singlePack == null || singlePack.GetPackModelIndexDict().Count == 0)
         {
-            MessageWin.Inst.ShowFixedTip(Language.Get("WingsRefine_NoWing"));
+            ServerTipDetails.DisplayNormalTip(Language.Get("WingsRefine_NoWing"));
             return;
         }
         Dictionary<int, ItemModel> backpack_dic = singlePack.GetPackModelIndexDict();
@@ -509,7 +509,7 @@
         }
         else
         {
-            MessageWin.Inst.ShowFixedTip(Language.Get("WingsRefine_NoWing"));
+            ServerTipDetails.DisplayNormalTip(Language.Get("WingsRefine_NoWing"));
         }
 
     }
diff --git a/System/SystemSetting/SetUp_BugWin.cs b/System/SystemSetting/SetUp_BugWin.cs
index 9da9693..98aad94 100644
--- a/System/SystemSetting/SetUp_BugWin.cs
+++ b/System/SystemSetting/SetUp_BugWin.cs
@@ -1,79 +1,79 @@
-锘縰sing System;
-using UnityEngine;
-using UnityEngine.UI;
-using System.Collections;
-
-namespace Snxxz.UI
-{
-    public class SetUp_BugWin : MonoBehaviour
-    {
-        [SerializeField] InputField inputTitle;
-        [SerializeField] InputField inputContent;
-        [SerializeField] Button putBtn;
-        float coolTime = 0f;
-
-        private void Awake()
-        {
-            putBtn.AddListener(ClickPutBtn);
-        }
-
-        private void OnEnable()
-        {
-            inputTitle.text = "";
-            inputContent.text = "";
-        }
-
-        private void ClickPutBtn()
-        {
-            string title = inputTitle.text;
-            string content = inputContent.text;
-          
-           if (string.IsNullOrEmpty(title))
-            {
-                MessageWin.Inst.ShowFixedTip(Language.Get("BugSubmit101"));
-                return;
-            }
-
-            if (string.IsNullOrEmpty(content))
-            {
-                MessageWin.Inst.ShowFixedTip(Language.Get("BugSubmit102"));
-                return;
-            }
-
-            ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),Language.Get("BugSubmit103"),
-                (bool isOk)=>
-                {
-                    if(isOk)
-                    {
-                        if(coolTime <= 0)
-                        {
-                            OperationLogCollect.Instance.BugReport(title, content);
-                            SysNotifyMgr.Instance.ShowTip("BUGSubmit");
-                            coolTime = 60;
-                            StartCoroutine(SubmitCoolTime());
-                        }
-                        else
-                        {
-                            SysNotifyMgr.Instance.ShowTip("BUGSubmitCoolTime");
-                        }
-                      
-                    }
-                });
-        }
-
-        IEnumerator SubmitCoolTime()
-        {
-            while(true)
-            {
-                coolTime -= 1;
-                if(coolTime <= 0)
-                {
-                    break;
-                }
-                yield return new WaitForSeconds(1);
-            }
-          
-        }
-
-    }
-}
+锘縰sing System;
+using UnityEngine;
+using UnityEngine.UI;
+using System.Collections;
+
+namespace Snxxz.UI
+{
+    public class SetUp_BugWin : MonoBehaviour
+    {
+        [SerializeField] InputField inputTitle;
+        [SerializeField] InputField inputContent;
+        [SerializeField] Button putBtn;
+        float coolTime = 0f;
+
+        private void Awake()
+        {
+            putBtn.AddListener(ClickPutBtn);
+        }
+
+        private void OnEnable()
+        {
+            inputTitle.text = "";
+            inputContent.text = "";
+        }
+
+        private void ClickPutBtn()
+        {
+            string title = inputTitle.text;
+            string content = inputContent.text;
+          
+           if (string.IsNullOrEmpty(title))
+            {
+                ServerTipDetails.DisplayNormalTip(Language.Get("BugSubmit101"));
+                return;
+            }
+
+            if (string.IsNullOrEmpty(content))
+            {
+                ServerTipDetails.DisplayNormalTip(Language.Get("BugSubmit102"));
+                return;
+            }
+
+            ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),Language.Get("BugSubmit103"),
+                (bool isOk)=>
+                {
+                    if(isOk)
+                    {
+                        if(coolTime <= 0)
+                        {
+                            OperationLogCollect.Instance.BugReport(title, content);
+                            SysNotifyMgr.Instance.ShowTip("BUGSubmit");
+                            coolTime = 60;
+                            StartCoroutine(SubmitCoolTime());
+                        }
+                        else
+                        {
+                            SysNotifyMgr.Instance.ShowTip("BUGSubmitCoolTime");
+                        }
+                      
+                    }
+                });
+        }
+
+        IEnumerator SubmitCoolTime()
+        {
+            while(true)
+            {
+                coolTime -= 1;
+                if(coolTime <= 0)
+                {
+                    break;
+                }
+                yield return new WaitForSeconds(1);
+            }
+          
+        }
+
+    }
+}
diff --git a/System/SystemSetting/SystemSetWin.cs b/System/SystemSetting/SystemSetWin.cs
index e927aad..293868f 100644
--- a/System/SystemSetting/SystemSetWin.cs
+++ b/System/SystemSetting/SystemSetWin.cs
@@ -298,7 +298,7 @@
 
         private void OnAuthenticationOk(SDKUtility.FP_DoIDAuthentication _result)
         {
-            MessageWin.Inst.ShowFixedTip(_result.errordesc);
+            ServerTipDetails.DisplayNormalTip(_result.errordesc);
             m_AntiAddition.gameObject.SetActive(_result.errorcode != "1");
         }
 
diff --git a/System/TaiChi/TaiChilDungeonEntranceWin.cs b/System/TaiChi/TaiChilDungeonEntranceWin.cs
index d596d82..408e224 100644
--- a/System/TaiChi/TaiChilDungeonEntranceWin.cs
+++ b/System/TaiChi/TaiChilDungeonEntranceWin.cs
@@ -111,10 +111,10 @@
             switch (_error)
             {
                 case 1:
-                    MessageWin.Inst.ShowFixedTip(Language.Get("L1005"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("L1005"));
                     break;
                 case 2:
-                    MessageWin.Inst.ShowFixedTip(Language.Get("CopyLimit_Z"));
+                    ServerTipDetails.DisplayNormalTip(Language.Get("CopyLimit_Z"));
                     break;
             }
         }
diff --git a/System/Team/TeamListWin.cs b/System/Team/TeamListWin.cs
index e33a7be..ac10392 100644
--- a/System/Team/TeamListWin.cs
+++ b/System/Team/TeamListWin.cs
@@ -149,7 +149,7 @@
             {
                 if (model.currentMission.mapId == TeamModel.NONE_MISSION)
                 {
-                    MessageWin.Inst.ShowFixedTip("AutoMatchingNoTarget");
+                    ServerTipDetails.DisplayNormalTip("AutoMatchingNoTarget");
                 }
                 else if (model.myTeam.memberCount >= 4)
                 {
diff --git a/System/Tip/ServerTipDetails.cs b/System/Tip/ServerTipDetails.cs
index d1ea4f5..ac543e9 100644
--- a/System/Tip/ServerTipDetails.cs
+++ b/System/Tip/ServerTipDetails.cs
@@ -74,11 +74,11 @@
         #endregion
 
         #region 鍥哄畾鍏ㄦ湇娑堟伅
-        private static List<SystemHintData> hintTips = new List<SystemHintData>();
-
+        private static List<SystemHintData> serverHints = new List<SystemHintData>();
+        public static event Action serverHintRefresh;
         public static void ShowServerTip(string msg, ArrayList info, int order)
         {
-            hintTips.Add(new SystemHintData()
+            serverHints.Add(new SystemHintData()
             {
                 message = msg,
                 order = order,
@@ -86,28 +86,108 @@
                 appendTime = DateTime.Now,
             });
 
-            hintTips.Sort(SysNotifyMgr.Instance.Compare);
+            serverHints.Sort(SysNotifyMgr.Instance.Compare);
 
-            MessageWin.Inst.ShowServerTip();
+            if (serverHintRefresh != null)
+            {
+                serverHintRefresh();
+            }
+            if (!WindowCenter.Instance.IsOpen<MessageWin>())
+            {
+                WindowCenter.Instance.Open<MessageWin>();
+            }
         }
 
         public static SystemHintData RequireServerTip()
         {
-            if (hintTips.Count > 0)
+            if (serverHints.Count > 0)
             {
-                var _hint = hintTips[0];
-                hintTips.RemoveAt(0);
-                return _hint;
+                var hint = serverHints[0];
+                serverHints.RemoveAt(0);
+                return hint;
             }
             return null;
         }
         #endregion
 
+        #region 鏅�氫俊鎭彁绀�
+        private static List<SystemHintData> normalHints = new List<SystemHintData>();
+        public static event Action normalHintRefresh;
+        public static void DisplayNormalTip(string msg, ArrayList info = null)
+        {
+            normalHints.Clear();
+            normalHints.Add(new SystemHintData()
+            {
+                message = msg,
+                order = 0,
+                extentionData = info == null ? info : new ArrayList(info),
+                appendTime = DateTime.Now,
+            });
+            if (normalHintRefresh != null)
+            {
+                normalHintRefresh();
+            }
+            if (!WindowCenter.Instance.IsOpen<MessageWin>())
+            {
+                WindowCenter.Instance.Open<MessageWin>();
+            }
+        }
+
+        public static SystemHintData RequireNormalHint()
+        {
+            if (normalHints.Count > 0)
+            {
+                var hint = normalHints[0];
+                normalHints.RemoveAt(0);
+                return hint;
+            }
+            return null;
+        }
+        #endregion
+
+        #region GM娑堟伅
+        public static List<string> gmMessages = new List<string>();
+        public static event Action<string> gmMessageRefresh;
+        public static void ReceivePackage(string message)
+        {
+            message = message.Replace("###", string.Empty);
+            if (gmMessages.Count >= 300)
+            {
+                gmMessages.RemoveAt(0);
+            }
+            gmMessages.Add(message);
+
+            if (gmMessageRefresh != null)
+            {
+                gmMessageRefresh(message);
+            }
+        }
+
+        public static event Action gmOpenEvent;
+        public static bool requireOpenGM;
+        public static void OpenGMPanel()
+        {
+            requireOpenGM = true;
+            if (!WindowCenter.Instance.IsOpen<MessageWin>())
+            {
+                WindowCenter.Instance.Open<MessageWin>();
+            }
+            else
+            {
+                if (gmOpenEvent != null)
+                {
+                    gmOpenEvent();
+                }
+            }
+        }
+        #endregion
+
         public static void ClearHint()
         {
-            hintTips.Clear();
+            serverHints.Clear();
             m_Marquees.Clear();
             queueTrumpetTips.Clear();
+            normalHints.Clear();
         }
 
         #region 鍠囧彮淇℃伅
diff --git a/System/Treasure/DemonTreasureCollectPanel.cs b/System/Treasure/DemonTreasureCollectPanel.cs
index b4115ff..badaf46 100644
--- a/System/Treasure/DemonTreasureCollectPanel.cs
+++ b/System/Treasure/DemonTreasureCollectPanel.cs
@@ -117,7 +117,7 @@
             var treasureConfig = Config.Instance.Get<TreasureConfig>(treasureId);
             if (PlayerDatas.Instance.baseData.LV < treasureConfig.ChallengeLevel)
             {
-                MessageWin.Inst.ShowFixedTip(Language.Get("TrialDungeonLevelLimit"));
+                ServerTipDetails.DisplayNormalTip(Language.Get("TrialDungeonLevelLimit"));
             }
             else
             {
diff --git a/System/Treasure/TreasurePotentialPanel.cs b/System/Treasure/TreasurePotentialPanel.cs
index f300b3e..e1e17b9 100644
--- a/System/Treasure/TreasurePotentialPanel.cs
+++ b/System/Treasure/TreasurePotentialPanel.cs
@@ -764,18 +764,18 @@
                 switch (error)
                 {
                     case 1:
-                        MessageWin.Inst.ShowFixedTip(Language.Get("Hallows_NeedLv", skillConfig.LearnLVReq));
+                        ServerTipDetails.DisplayNormalTip(Language.Get("Hallows_NeedLv", skillConfig.LearnLVReq));
                         break;
                     case 2:
                         if (skillConfig.LearnSkillReq > 0)
                         {
                             var preSkillConfig = Config.Instance.Get<SkillConfig>(skillConfig.LearnSkillReq);
-                            MessageWin.Inst.ShowFixedTip(Language.Get("Hallows_NeedSkillLV", preSkillConfig.SkillName, skillConfig.LearnSkillLV));
+                            ServerTipDetails.DisplayNormalTip(Language.Get("Hallows_NeedSkillLV", preSkillConfig.SkillName, skillConfig.LearnSkillLV));
                         }
                         break;
                     case 3:
                         ModelCenter.Instance.GetModel<GetItemPathModel>().SetChinItemModel(148);
-                        //MessageWin.Inst.ShowFixedTip(Language.Get("Hallows_SpUnEnough"));
+                        //ServerTipDetails.DisplayNormalTip(Language.Get("Hallows_SpUnEnough"));
                         break;
                     case 4:
                         SysNotifyMgr.Instance.ShowTip("TreasureUnsealed");
diff --git a/System/Vip/FairyJadeInvestmentWin.cs b/System/Vip/FairyJadeInvestmentWin.cs
index ea203fd..65b4c38 100644
--- a/System/Vip/FairyJadeInvestmentWin.cs
+++ b/System/Vip/FairyJadeInvestmentWin.cs
@@ -17,7 +17,7 @@
     {
         FairyJadeInvestmentModel m_FairyJadeInvestmentModel;
         FairyJadeInvestmentModel fairyJadeInvestmentModel { get { return m_FairyJadeInvestmentModel ?? (m_FairyJadeInvestmentModel = ModelCenter.Instance.GetModel<FairyJadeInvestmentModel>()); } }
-        VipInvestModel m_VipInvestModel;
+        VipInvestModel m_VipInvestModel;
         VipInvestModel VipInvestModel { get { return m_VipInvestModel ?? (m_VipInvestModel = ModelCenter.Instance.GetModel<VipInvestModel>()); } }
         [SerializeField] ScrollerController m_ScrollerController;
         [SerializeField] Button m_InvestmentButton;//鎶曡祫鎸夐挳
@@ -282,7 +282,7 @@
             int InvestGold = fairyJadeInvestmentModel.GetInvestGold();
             //if (PlayerDatas.Instance.baseData.LV > 300)
             //{
-            //    MessageWin.Inst.ShowFixedTip(Language.Get("HasExceededTheInvestmentGrade_Z"));
+            //    ServerTipDetails.DisplayNormalTip(Language.Get("HasExceededTheInvestmentGrade_Z"));
             //    return;
             //}
             if (InvestGold > 0)
diff --git a/Utility/LanguageVerify.cs b/Utility/LanguageVerify.cs
index bce8bdb..a374abf 100644
--- a/Utility/LanguageVerify.cs
+++ b/Utility/LanguageVerify.cs
@@ -216,7 +216,7 @@
                             switch (response.code)
                             {
                                 case -1:
-                                    MessageWin.Inst.ShowFixedTip(Language.Get("L1007"));
+                                    ServerTipDetails.DisplayNormalTip(Language.Get("L1007"));
                                     break;
                                 case -2:
                                     SysNotifyMgr.Instance.ShowTip("VerifyErrorCode2");

--
Gitblit v1.8.0