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