From 776645f88d3ccd3841cdce0253ecbbecc65ca87e Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 06 九月 2022 15:26:53 +0800 Subject: [PATCH] 9708 【后端】【越南】【BT7】【主干】聊天增加CD配置 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py | 33 ++++++++++++++++++++++++--------- 1 files changed, 24 insertions(+), 9 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 e9c3dbe..fe1d4b5 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py @@ -31,6 +31,7 @@ import EventShell import PyGameData import PlayerLove +import math #--------------------------------------------------------------------- @@ -49,7 +50,7 @@ content = sendPack.GetContent() #通用判断 - if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick): + if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick, talkType=IPY_GameWorld.tcArea): return #通用设置 @@ -99,7 +100,7 @@ content = sendPack.GetContent() #通用检测 - if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick, checkSameMsg = False): + if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick, checkSameMsg = False, talkType=IPY_GameWorld.tcWorld): return #通用设置 @@ -134,7 +135,7 @@ content = sendPack.GetContent() #通用检测 - if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick, checkSameMsg = False): + if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick, checkSameMsg = False, talkType=IPY_GameWorld.tcCountry): return #通用设置 @@ -159,8 +160,11 @@ #玩家聊天内容 content = sendPack.GetContent() - if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick): + if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick, talkType=IPY_GameWorld.tcFamily): return + + #通用设置 + SetTalkTime(curPlayer, content, IPY_GameWorld.tcFamily, tick) extras = GetTalkExtraValue(curPlayer) curPlayer.ChatFamily(content, 0, extras) @@ -184,7 +188,7 @@ #玩家聊天内容 content = sendPack.GetContent() - if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick): + if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick, talkType=IPY_GameWorld.tcTeam): return #通用设置 @@ -207,7 +211,7 @@ #玩家聊天内容 content = sendPack.GetContent() - if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick): + if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick, talkType=IPY_GameWorld.tcPrivate): return #通用设置 @@ -237,7 +241,7 @@ #玩家聊天内容 content = sendPack.GetContent() - if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick): + if not __CheckTalk(curPlayer, content, sendPack.GetLen(), tick, talkType=IPY_GameWorld.tcPrivate): return #通用设置 @@ -258,7 +262,7 @@ # @param checkSameMsg 是否检查相同信息 # @return True or False # @remarks 函数详细说明. -def __CheckTalk(curPlayer, content, length, tick, checkGMForbidenTalk = True, checkSameMsg = True): +def __CheckTalk(curPlayer, content, length, tick, checkGMForbidenTalk = True, checkSameMsg = True, talkType=None): if checkGMForbidenTalk and GetGMToolForbidTalk(curPlayer): #GeRen_chenxin_921745 对不起,您已被GM禁言,发送信息失败 #PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_921745") @@ -269,6 +273,17 @@ #PlayerControl.NotifyCode(curPlayer, "CanootTalk02") return False + #频道各自间隔时间 + if talkType != None: + talkCDDict = IpyGameDataPY.GetFuncEvalCfg("TalkCD", 1, {}) + if str(talkType) in talkCDDict: + cdTicks = talkCDDict[str(talkType)] * 1000 + lastTalkTick = curPlayer.GetTalkTick(talkType) + remainTick = cdTicks - (tick - lastTalkTick) + if remainTick > 0: + PlayerControl.NotifyCode(curPlayer, "CanootTalk01", [int(math.ceil(remainTick/1000.0))]) + return False + #聊天信息太长 if length > ChConfig.Def_PlayerTalkMaxCount : PlayerControl.NotifyCode(curPlayer, "CanootTalk13") @@ -305,7 +320,7 @@ #设置当前聊天内容为玩家本次聊天内容 #curPlayer.SetLastChatContent(content) #设置当前频道时间 - #curPlayer.SetTalkTick(type, tick) + curPlayer.SetTalkTick(type, tick) return ## 信件2B封包 -- Gitblit v1.8.0