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
@@ -113,44 +114,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
## 联盟家族频道(封包参数)
@@ -375,12 +361,10 @@
    extraValueStr += GetTalkExtraValueStar(ShareDefine.Def_TalkExtraValue_Bit_JOB)% job
    # 气泡框
    extraValueStr += GetTalkExtraValueStar(ShareDefine.Def_TalkExtraValue_Bit_BubbleBox) % PlayerControl.GetChatBubbleBox(objTalk)
    # 新手指导员
    #extraValueStr += GetTalkExtraValueStar(ShareDefine.Def_TalkExtraValue_Bit_NewGuider)% (freshmanGuiderDay > 0)
    # QQ会员
    #operateInfo = int(objTalk.GetOperateInfo())
    #extraValueStr += GetTalkExtraValueStar(ShareDefine.Def_TalkExtraValue_Bit_QQOperate)% (operateInfo)
    # 服务器组ID
    extraValueStr += GetTalkExtraValueStar(ShareDefine.Def_TalkExtraValue_Bit_ServerGroupID) % PlayerControl.GetPlayerServerGroupID(objTalk)
    # 等级
    extraValueStr += GetTalkExtraValueStar(ShareDefine.Def_TalkExtraValue_Bit_LV) % objTalk.GetLV()
    return extraValueStr
@@ -552,39 +536,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