hxp
2022-09-06 776645f88d3ccd3841cdce0253ecbbecc65ca87e
9708 【后端】【越南】【BT7】【主干】聊天增加CD配置
1个文件已修改
33 ■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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")
@@ -267,6 +271,17 @@
    #间隔时间
    if tick - curPlayer.GetLastChatTick() < ChConfig.Def_PlayerTalkTick:
        #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
    
    #聊天信息太长
@@ -305,7 +320,7 @@
    #设置当前聊天内容为玩家本次聊天内容
    #curPlayer.SetLastChatContent(content)
    #设置当前频道时间
    #curPlayer.SetTalkTick(type, tick)
    curPlayer.SetTalkTick(type, tick)
    return
## 信件2B封包