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