From dbf4ab83f90d9119141d5a80bebe25fedec4384f Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期六, 25 五月 2019 17:18:24 +0800
Subject: [PATCH] 6942 【后端】视野层级设计

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTalk.py |   33 ++++++++++++++++++++++++++-------
 1 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTalk.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTalk.py
index 9a8e18d..1d267d8 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTalk.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTalk.py
@@ -88,7 +88,7 @@
     curCache = None
     tagPlayerName = ""
     if tagPlayer == None:
-        curCache = PlayerViewCache.ViewCacheMgr.FindCache(tagPlayerID)
+        curCache = PlayerViewCache.FindViewCache(tagPlayerID)
         if not curCache:
             PlayerControl.NotifyCode(curPlayer, "CanootTalk10")
             return
@@ -100,7 +100,7 @@
         return
     
     if curCache:
-        cacheDict = eval(curCache.GetPropData())
+        cacheDict = PlayerViewCache.GetCachePropDataDict(curCache)
         tagPlayerName = cacheDict["Name"]
         
     talkType = sendPack.GetTalkType()
@@ -175,15 +175,16 @@
     content = sendPack.GetContent()
     extraValue = sendPack.GetExtraValue()
     extras = sendPack.GetExtras()
+    crossPlayerName = CrossRealmPlayer.GetCrossPlayerName(curPlayer)
     
     ## 发送到跨服服务器,直接使用跨服boss的分区配置
-    dataMsg = {"PlayerID":playerID, "Content":content, "ExtraValue":extraValue, "Extras":extras}
+    dataMsg = {"PlayerID":playerID, "Name":crossPlayerName, "Content":content, "ExtraValue":extraValue, "Extras":extras}
     CrossRealmMsg.SendMsgToCrossServer(ShareDefine.ClientServerMsg_ChatCrossWorld, dataMsg)
     return
 
 def ClientServerMsg_ChatCrossWorld(serverGroupID, msgData, tick):
     ## 收到子服跨服世界频道聊天
-    zoneIpyData = CrossRealmPlayer.GetServerCrossZoneIpyData(ChConfig.Def_FBMapID_CrossPenglai, serverGroupID)
+    zoneIpyData = CrossRealmPlayer.GetCrossZoneIpyDataByServerGroupID(0, serverGroupID)
     if not zoneIpyData:
         return
     serverGroupIDList = zoneIpyData.GetServerGroupIDList()
@@ -194,13 +195,31 @@
     ## 收到跨服世界频道聊天
     
     playerID = msgData["PlayerID"]
+    crossPlayerName = msgData["Name"]
     content = msgData["Content"]
     extraValue = msgData["ExtraValue"]
     extras = msgData["Extras"]
     
-    curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(playerID)
-    if curPlayer:
-        curPlayer.ChatCountry(content, extraValue, extras)
+    sendPack = ChNetSendPack.tagTalkCountry()
+    sendPack.Clear()
+    sendPack.Name = crossPlayerName
+    sendPack.NameLen = len(sendPack.Name)
+    sendPack.PlayerID = playerID
+    sendPack.Content = content
+    sendPack.Len = len(sendPack.Content)
+    sendPack.ExtraValue = extraValue
+    sendPack.Extras = extras
+    
+    # 全服广播在线玩家
+    playerManager = GameWorld.GetPlayerManager()
+    for i in xrange(playerManager.GetActivePlayerCount()):
+        player = playerManager.GetActivePlayerAt(i)
+        if player == None:
+            continue
+        if PlayerControl.GetIsTJG(player):
+            continue
+        NetPackCommon.SendFakePack(player, sendPack)
+    #curPlayer.ChatCountry(content, extraValue, extras)
     return
 
 ## 公频(封包参数)

--
Gitblit v1.8.0