From 3b45b8cfa4cb24ad084c4fadf5d31430d0de5d21 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期五, 22 三月 2019 16:54:07 +0800
Subject: [PATCH] 6341 【后端】【2.0】境界改版开发单(修为池通知)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py |  153 ++++++++++++++++++++++----------------------------
 1 files changed, 68 insertions(+), 85 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 fac69d7..b83e73d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py
@@ -20,6 +20,7 @@
 #import ReadChConfig
 import ShareDefine
 import ChPyNetSendPack
+import CrossRealmPlayer
 import NetPackCommon
 import EventReport
 import PlayerSuccess
@@ -53,7 +54,7 @@
     
     
     #如果在普通地图, 就广播, 如果在副本就单个通知
-    if GameWorld.GetMap().GetMapFBType() == IPY_GameWorld.fbtNull:
+    if GameWorld.GetMap().GetMapFBType() == IPY_GameWorld.fbtNull and not GameWorld.IsCrossServer():
         #广播
         extras = GetTalkExtraValue(curPlayer)
         curPlayer.ChatArea(content, 0, extras)
@@ -104,7 +105,8 @@
     extras = GetTalkExtraValue(curPlayer)
     curPlayer.ChatGong(content, 0, extras)
     #世界频道发言成就
-    PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_TalkWorld, 1)
+    #PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_TalkWorld, 1)
+    PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_FeastRedPack_TalkWorld, 1)
     return
 
 ## 国家频道(封包参数)
@@ -113,44 +115,29 @@
 #  @return None
 #  @remarks 函数详细说明.
 def TalkCountry(index, tick):
-    #===========================================================================
-    # #20150918 hxp目前作为跨服阵营聊天频道
-    # #20151009 hxp增加py自定义聊天频道
-    # return
-    # curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-    # 
-    # 
-    # #等级判断
-    # #if curPlayer.GetLV() < ChConfig.Def_PlayerTalkCountryLV:
-    # #    PlayerControl.NotifyCode(curPlayer, "PlayerCall_Error_NoCountry")
-    # #    return
-    # 
-    # #获得国家频封包
-    # sendPack = IPY_GameWorld.IPY_CTalkCountry()
-    # #玩家聊天内容
-    # content = sendPack.GetContent()
-    # 
-    # #通用判断
-    # if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick):
-    #    return
-    # 
-    # #国王说话免费
-    # #if PlayerCountry.CheckIsCountryKing(curPlayer.GetCountry() , curPlayer.GetID()):
-    # #    PlayerControl.NotifyCode(curPlayer , "C16615EF-FDBC-49AF-9285668F7C8930AA")
-    # #else:
-    # #    moneyType = curPlayer.GetUseSilverType()
-    # #    #金钱判定
-    # #    if not PlayerControl.PayMoney(curPlayer, moneyType, ChConfig.Def_PlayerTalkCoutryMoney):
-    # #        return False
-    # 
-    # #通用设置
-    # SetTalkTime(curPlayer, content, IPY_GameWorld.tcCountry, tick)
-    # 
-    # #说话
-    # extraValue = GetTalkExtraValue(curPlayer)
-    # extras = ''
-    # curPlayer.ChatCountry(content, extraValue, extras)
-    #===========================================================================
+    ## 跨服世界频道
+    if GameWorld.IsCrossServer():
+        return
+    
+    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
+    
+    if not CrossRealmPlayer.IsCrossServerOpen():
+        PlayerControl.NotifyCode(curPlayer, "CrossMatching18")
+        return
+    
+    sendPack = IPY_GameWorld.IPY_CTalkCountry()
+    #玩家聊天内容
+    content = sendPack.GetContent()
+    
+    #通用检测
+    if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick, checkSameMsg = False):
+        return
+    
+    #通用设置
+    SetTalkTime(curPlayer, content, IPY_GameWorld.tcCountry, tick)
+    #发送聊天内容
+    extras = GetTalkExtraValue(curPlayer)
+    curPlayer.ChatCountry(content, 0, extras)
     return
 
 ## 联盟家族频道(封包参数)
@@ -261,7 +248,7 @@
 def __CheckTalk(curPlayer, content, length, tick, checkGMForbidenTalk = True, checkSameMsg = True):
     if checkGMForbidenTalk and GetGMToolForbidTalk(curPlayer):
         #GeRen_chenxin_921745 对不起,您已被GM禁言,发送信息失败
-        PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_921745")
+        #PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_921745")
         return False
     
     #间隔时间
@@ -365,8 +352,6 @@
     vipLv = objTalk.GetVIPLv()  # 玩家vip等级
     GMLevel = objTalk.GetGMLevel()
     job = objTalk.GetJob()
-    #mergeWarRank = PlayerControl.GetMergeWarRank(objTalk) 
-    #freshmanGuiderDay = PlayerFreshmanGuide.GetFreshmanGuiderDay(objTalk)
     
     extraValueStr = ""
     # vip等级
@@ -375,14 +360,12 @@
     extraValueStr += GetTalkExtraValueStar(ShareDefine.Def_TalkExtraValue_Bit_GM)% (GMLevel > 0)
     # job
     extraValueStr += GetTalkExtraValueStar(ShareDefine.Def_TalkExtraValue_Bit_JOB)% job
-    
-    # 跨服预选赛排位(称呼)
-    #extraValueStr += GetTalkExtraValueStar(ShareDefine.Def_TalkExtraValue_Bit_MergeWarRank)%mergeWarRank
-    # 新手指导员
-    #extraValueStr += GetTalkExtraValueStar(ShareDefine.Def_TalkExtraValue_Bit_NewGuider)% (freshmanGuiderDay > 0)
-    # QQ会员
-    #operateInfo = int(objTalk.GetOperateInfo())
-    #extraValueStr += GetTalkExtraValueStar(ShareDefine.Def_TalkExtraValue_Bit_QQOperate)% (operateInfo)
+    # 气泡框
+    extraValueStr += GetTalkExtraValueStar(ShareDefine.Def_TalkExtraValue_Bit_BubbleBox) % PlayerControl.GetChatBubbleBox(objTalk)
+    # 服务器组ID
+    extraValueStr += GetTalkExtraValueStar(ShareDefine.Def_TalkExtraValue_Bit_ServerGroupID) % PlayerControl.GetPlayerServerGroupID(objTalk)
+    # 等级
+    extraValueStr += GetTalkExtraValueStar(ShareDefine.Def_TalkExtraValue_Bit_LV) % objTalk.GetLV()
     return extraValueStr
 
 
@@ -554,39 +537,39 @@
 # };
 #===============================================================================
 def OnVoiceChat(index, clientPack, tick):
-    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-    if GetGMToolForbidTalk(curPlayer):
-        return
-    if clientPack.ChannelType != ShareDefine.Def_ChannelChat_Area:
-        return
-    sendPack = ChPyNetSendPack.tagGCVoiceChat()
-    sendPack.Clear()
-    sendPack.ChannelType = clientPack.ChannelType
-    sendPack.SrcName = curPlayer.GetName()
-    sendPack.SrcNameLen = len(curPlayer.GetName())
-    sendPack.PlayerID = curPlayer.GetID()
-    sendPack.Len = clientPack.Len
-    sendPack.Content = clientPack.Content
-    sendPack.Extras = GetTalkExtraValue(curPlayer)
-    sendPack.ExtraValue = len(sendPack.Extras)
-    
-    # 区域频道
-    
-    #如果在普通地图, 就广播, 如果在副本就单个通知
-    if GameWorld.GetMap().GetMapFBType() == IPY_GameWorld.fbtNull:
-        curPlayer.BroadCastAll(sendPack.GetBuffer(), len(sendPack.GetBuffer()))
-    else:
-        playerManager = GameWorld.GetMapCopyPlayerManager()
-        
-        for index in range(0 , playerManager.GetPlayerCount()):
-            #广播玩家
-            tempPlayer = playerManager.GetPlayerByIndex(index)
-            if not tempPlayer.GetPlayerID():
-                continue
-            
-            if PlayerTJG.GetIsTJG(tempPlayer):
-                continue
-                
-            NetPackCommon.SendFakePack(tempPlayer, sendPack)
+#    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
+#    if GetGMToolForbidTalk(curPlayer):
+#        return
+#    if clientPack.ChannelType != ShareDefine.Def_ChannelChat_Area:
+#        return
+#    sendPack = ChPyNetSendPack.tagGCVoiceChat()
+#    sendPack.Clear()
+#    sendPack.ChannelType = clientPack.ChannelType
+#    sendPack.SrcName = curPlayer.GetName()
+#    sendPack.SrcNameLen = len(curPlayer.GetName())
+#    sendPack.PlayerID = curPlayer.GetID()
+#    sendPack.Len = clientPack.Len
+#    sendPack.Content = clientPack.Content
+#    sendPack.Extras = GetTalkExtraValue(curPlayer)
+#    sendPack.ExtraValue = len(sendPack.Extras)
+#    
+#    # 区域频道
+#    
+#    #如果在普通地图, 就广播, 如果在副本就单个通知
+#    if GameWorld.GetMap().GetMapFBType() == IPY_GameWorld.fbtNull:
+#        curPlayer.BroadCastAll(sendPack.GetBuffer(), len(sendPack.GetBuffer()))
+#    else:
+#        playerManager = GameWorld.GetMapCopyPlayerManager()
+#        
+#        for index in range(0 , playerManager.GetPlayerCount()):
+#            #广播玩家
+#            tempPlayer = playerManager.GetPlayerByIndex(index)
+#            if not tempPlayer.GetPlayerID():
+#                continue
+#            
+#            if PlayerTJG.GetIsTJG(tempPlayer):
+#                continue
+#                
+#            NetPackCommon.SendFakePack(tempPlayer, sendPack)
     return
 

--
Gitblit v1.8.0