| | |
| | | import ChPyNetSendPack
|
| | | import ShareDefine
|
| | | import PlayerViewCache
|
| | | import CrossRealmPlayer
|
| | | import CrossRealmMsg
|
| | | import ChNetSendPack
|
| | | import NetPackCommon
|
| | | import PlayerGeTui
|
| | |
| | | NetPackCommon.SendFakePack(curPlayer, chatPack)
|
| | | return
|
| | |
|
| | | ## 国家频(封包参数)
|
| | | # @param index 玩家索引 |
| | | # @param tick 当前时间
|
| | | # @return None
|
| | | # @remarks 函数详细说明.
|
| | | def ChatCountry(index, tick):
|
| | | ## 跨服频道
|
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | sendPack = IPY_GameServer.IPY_GTalkCountry()
|
| | | content = sendPack.GetContent()
|
| | | extraValue = sendPack.GetExtraValue()
|
| | | extras = sendPack.GetExtras()
|
| | | |
| | | ## 发送到跨服服务器,直接使用跨服boss的分区配置
|
| | | dataMsg = {"PlayerID":playerID, "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)
|
| | | if not zoneIpyData:
|
| | | return
|
| | | serverGroupIDList = zoneIpyData.GetServerGroupIDList()
|
| | | CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_ChatCrossWorld, msgData, serverGroupIDList)
|
| | | return
|
| | |
|
| | | def CrossServerMsg_ChatCrossWorld(msgData):
|
| | | ## 收到跨服世界频道聊天
|
| | | |
| | | playerID = msgData["PlayerID"]
|
| | | content = msgData["Content"]
|
| | | extraValue = msgData["ExtraValue"]
|
| | | extras = msgData["Extras"]
|
| | | |
| | | curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(playerID)
|
| | | if curPlayer:
|
| | | curPlayer.ChatCountry(content, extraValue, extras)
|
| | | return
|
| | |
|
| | | ## 公频(封包参数)
|
| | | # @param index 玩家索引
|
| | | # @param tick 当前时间
|
| | |
| | | # };
|
| | | #===============================================================================
|
| | | def OnVoiceChat(index, clientPack, tick):
|
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | | if not CheckTalk(curPlayer, tick):
|
| | | 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)
|
| | | |
| | | playerManager = GameWorld.GetPlayerManager()
|
| | | if clientPack.ChannelType == ShareDefine.Def_ChannelChat_World:
|
| | | # 世界频道
|
| | | curPlayer.BroadCastAll(sendPack.GetBuffer(), len(sendPack.GetBuffer()))
|
| | | elif clientPack.ChannelType == ShareDefine.Def_ChannelChat_Family:
|
| | | # 家族频道
|
| | | curFamily = curPlayer.GetFamily()
|
| | | if curFamily == None:
|
| | | return
|
| | | for i in range(0, curFamily.GetCount()):
|
| | | notifyMember = curFamily.GetAt(i)
|
| | | notifyPlayer = playerManager.FindPlayerByID(notifyMember.GetPlayerID())
|
| | | |
| | | if notifyPlayer == None or not notifyPlayer.GetInitOK():
|
| | | continue
|
| | | |
| | | if PlayerControl.GetIsTJG(notifyPlayer):
|
| | | continue
|
| | | #===================================================================
|
| | | # if notifyPlayer.GetPlayerID() == curPlayer.GetPlayerID():
|
| | | # #不包括自己
|
| | | # continue
|
| | | #===================================================================
|
| | |
|
| | | NetPackCommon.SendFakePack(notifyPlayer, sendPack)
|
| | | elif clientPack.ChannelType == ShareDefine.Def_ChannelChat_Team:
|
| | | # 队伍
|
| | | curTeam = curPlayer.GetTeam()
|
| | | if curTeam == None:
|
| | | return
|
| | | for index in xrange(curTeam.GetMemberCount()):
|
| | | curMember = curTeam.GetMemberPlayer(index)
|
| | | if not curMember or not curMember.GetPlayerID():
|
| | | continue
|
| | |
|
| | | #===================================================================
|
| | | # if curMember.GetPlayerID() == curPlayer.GetPlayerID():
|
| | | # #不包括自己
|
| | | # continue
|
| | | #===================================================================
|
| | |
|
| | | if PlayerControl.GetIsTJG(curMember):
|
| | | continue
|
| | | NetPackCommon.SendFakePack(curMember, sendPack)
|
| | | |
| | | elif clientPack.ChannelType == ShareDefine.Def_ChannelChat_Private:
|
| | | # 私聊
|
| | | tagPlayer = GameWorld.GetPlayerManager().FindPlayerByID(clientPack.TargetID)
|
| | | if not tagPlayer:
|
| | | tagPlayer = GameWorld.GetPlayerManager().FindPlayerByName(clientPack.TargetName)
|
| | | if tagPlayer == None:
|
| | | return
|
| | | |
| | | # 黑名单检查
|
| | | if PyDataManager.GetBlacklistManager().CheckBlacklistBoth(curPlayer.GetID(), tagPlayer.GetID(), curPlayer):
|
| | | return
|
| | | |
| | | sendPack.ToName = tagPlayer.GetName()
|
| | | sendPack.ToNameLen = len(tagPlayer.GetName())
|
| | | sendPack.ToPlayerID = tagPlayer.GetID()
|
| | | NetPackCommon.SendFakePack(tagPlayer, sendPack)
|
| | | NetPackCommon.SendFakePack(curPlayer, sendPack)
|
| | | # curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | | # if not CheckTalk(curPlayer, tick):
|
| | | # 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)
|
| | | # |
| | | # playerManager = GameWorld.GetPlayerManager()
|
| | | # if clientPack.ChannelType == ShareDefine.Def_ChannelChat_World:
|
| | | # # 世界频道
|
| | | # curPlayer.BroadCastAll(sendPack.GetBuffer(), len(sendPack.GetBuffer()))
|
| | | # elif clientPack.ChannelType == ShareDefine.Def_ChannelChat_Family:
|
| | | # # 家族频道
|
| | | # curFamily = curPlayer.GetFamily()
|
| | | # if curFamily == None:
|
| | | # return
|
| | | # for i in range(0, curFamily.GetCount()):
|
| | | # notifyMember = curFamily.GetAt(i)
|
| | | # notifyPlayer = playerManager.FindPlayerByID(notifyMember.GetPlayerID())
|
| | | # |
| | | # if notifyPlayer == None or not notifyPlayer.GetInitOK():
|
| | | # continue
|
| | | # |
| | | # if PlayerControl.GetIsTJG(notifyPlayer):
|
| | | # continue
|
| | | # #===================================================================
|
| | | # # if notifyPlayer.GetPlayerID() == curPlayer.GetPlayerID():
|
| | | # # #不包括自己
|
| | | # # continue
|
| | | # #===================================================================
|
| | | #
|
| | | # NetPackCommon.SendFakePack(notifyPlayer, sendPack)
|
| | | # elif clientPack.ChannelType == ShareDefine.Def_ChannelChat_Team:
|
| | | # # 队伍
|
| | | # curTeam = curPlayer.GetTeam()
|
| | | # if curTeam == None:
|
| | | # return
|
| | | # for index in xrange(curTeam.GetMemberCount()):
|
| | | # curMember = curTeam.GetMemberPlayer(index)
|
| | | # if not curMember or not curMember.GetPlayerID():
|
| | | # continue
|
| | | #
|
| | | # #===================================================================
|
| | | # # if curMember.GetPlayerID() == curPlayer.GetPlayerID():
|
| | | # # #不包括自己
|
| | | # # continue
|
| | | # #===================================================================
|
| | | #
|
| | | # if PlayerControl.GetIsTJG(curMember):
|
| | | # continue
|
| | | # NetPackCommon.SendFakePack(curMember, sendPack)
|
| | | # |
| | | # elif clientPack.ChannelType == ShareDefine.Def_ChannelChat_Private:
|
| | | # # 私聊
|
| | | # tagPlayer = GameWorld.GetPlayerManager().FindPlayerByID(clientPack.TargetID)
|
| | | # if not tagPlayer:
|
| | | # tagPlayer = GameWorld.GetPlayerManager().FindPlayerByName(clientPack.TargetName)
|
| | | # if tagPlayer == None:
|
| | | # return
|
| | | # |
| | | # # 黑名单检查
|
| | | # if PyDataManager.GetBlacklistManager().CheckBlacklistBoth(curPlayer.GetID(), tagPlayer.GetID(), curPlayer):
|
| | | # return
|
| | | # |
| | | # sendPack.ToName = tagPlayer.GetName()
|
| | | # sendPack.ToNameLen = len(tagPlayer.GetName())
|
| | | # sendPack.ToPlayerID = tagPlayer.GetID()
|
| | | # NetPackCommon.SendFakePack(tagPlayer, sendPack)
|
| | | # NetPackCommon.SendFakePack(curPlayer, sendPack)
|
| | | return
|
| | |
|
| | |
|
| | |
| | | extraValueStr += GetTalkExtraValueStar(ShareDefine.Def_TalkExtraValue_Bit_JOB)% job
|
| | | # 气泡框
|
| | | extraValueStr += GetTalkExtraValueStar(ShareDefine.Def_TalkExtraValue_Bit_BubbleBox) % PlayerControl.GetChatBubbleBox(player)
|
| | | # 服务器组ID
|
| | | extraValueStr += GetTalkExtraValueStar(ShareDefine.Def_TalkExtraValue_Bit_ServerGroupID) % PlayerControl.GetPlayerServerGroupID(player)
|
| | | # 等级
|
| | | extraValueStr += GetTalkExtraValueStar(ShareDefine.Def_TalkExtraValue_Bit_LV) % player.GetLV()
|
| | | return extraValueStr
|
| | |
|
| | |
|