From 6343277477b190efbc389bab2706cf94eb09be8d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 07 二月 2026 20:59:32 +0800
Subject: [PATCH] 358 【内政】红颜系统-服务端(红颜时装默认解锁的状态也通知;红颜时装物品解锁改为直接取背包中的物品;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py |   26 +++++++++++++++-----------
 1 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py
index bb6d873..8d4e576 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py
@@ -20,12 +20,12 @@
 import ShareDefine
 import IPY_GameWorld
 import ChPyNetSendPack
-import CrossRealmPlayer
 import PlayerViewCache
 import NetPackCommon
 import IpyGameDataPY
 import PlayerControl
 import PlayerFamily
+import CrossPlayer
 import DBDataMgr
 
 import math
@@ -36,7 +36,8 @@
                    }
     
 def OnPlayerLogin(curPlayer):
-    NotifyTalkCache(curPlayer)
+    crossPlayer = CrossPlayer.GetCrossPlayerMgr().FindCrossPlayer(curPlayer.GetPlayerID())
+    NotifyTalkCache(crossPlayer, [IPY_GameWorld.tcWorld])
     return
 
 #// B3 20 聊天 #tagCSTalk
@@ -64,9 +65,6 @@
     elif channelType == IPY_GameWorld.tcCountry:
         if GameWorld.IsCrossServer():
             return
-        if not CrossRealmPlayer.IsCrossServerOpen():
-            PlayerControl.NotifyCode(curPlayer, "CrossMatching18")
-            return
         
     if not __CheckTalk(curPlayer, channelType, content, tick):
         return
@@ -93,14 +91,15 @@
     clientPack.RealmLV = curPlayer.GetOfficialRank()
     clientPack.Face = curPlayer.GetFace()
     clientPack.FacePic = curPlayer.GetFacePic()
+    clientPack.TitleID = PlayerControl.GetTitleID(curPlayer)
     clientPack.ServerID = GameWorld.GetPlayerServerID(curPlayer)
     
     if channelType == IPY_GameWorld.tcWorld:
         NetPackCommon.SendFackPackOnline(clientPack)
+        DoTalkCache(channelType, playerID, content, bubbleBox, familyID)
     elif channelType == IPY_GameWorld.tcFamily:
-        PlayerFamily.Broadcast_FamilyPack(familyID, clientPack)
+        PlayerFamily.OnFamilyTalk(curPlayer, familyID, clientPack, tick)
         
-    DoTalkCache(channelType, playerID, content, bubbleBox, familyID)
     return
 
 def __CheckTalk(curPlayer, channelType, content, tick, checkGMForbidenTalk=True):
@@ -167,13 +166,17 @@
         
     return
 
-def NotifyTalkCache(curPlayer):
+def NotifyTalkCache(crossPlayer, channelTypeList):
     ##上线通知聊天缓存
-    
+    # @param channelTypeList: 指定需要通知聊天缓存频道列表,不同频道的缓存可能存储在不同的服务器,如公会在公会数据所在服等
+    if not crossPlayer:
+        return
     for channelType in ChannelCacheMax.keys():
+        if channelType not in channelTypeList:
+            continue
         cacheList = []
         if channelType == IPY_GameWorld.tcFamily:
-            familyID = curPlayer.GetFamilyID()
+            familyID = crossPlayer.GetFamilyID()
             if not familyID:
                 continue
             familyActonMgr = DBDataMgr.GetFamilyActionMgr().GetFamilyAction(familyID, ShareDefine.Def_ActionType_TalkCache)
@@ -218,6 +221,7 @@
             talkCache.RealmLV = viewCache.GetRealmLV()
             talkCache.Face = viewCache.GetFace()
             talkCache.FacePic = viewCache.GetFacePic()
+            talkCache.TitleID = viewCache.GetTitleID()
             talkCache.ServerID = viewCache.GetServerID()
             talkCache.TalkTime = talkTime
             packCacheList.append(talkCache)
@@ -229,6 +233,6 @@
         clientPack.ChannelType = channelType
         clientPack.InfoList = packCacheList
         clientPack.Count = len(clientPack.InfoList)
-        NetPackCommon.SendFakePack(curPlayer, clientPack)
+        CrossPlayer.SendFakePack(crossPlayer, clientPack)
         
     return

--
Gitblit v1.8.0