| | |
| | | import PyDataManager
|
| | | import ChConfig
|
| | | import EventReport
|
| | | import ChPyNetSendPack
|
| | | import NetPackCommon
|
| | | import PlayerFamilyParty
|
| | | import ChPyNetSendPack
|
| | | import ShareDefine
|
| | |
| | | import ChNetSendPack
|
| | | import NetPackCommon
|
| | | import PlayerGeTui
|
| | | import PyGameData
|
| | |
|
| | | import re
|
| | | import time
|
| | | import IpyGameDataPY
|
| | |
|
| | |
|
| | | g_ChatMi = {} # 离线聊天记录 {玩家ID:[信息]} 一个玩家最多8条
|
| | |
|
| | |
| | | extraValue = sendPack.GetExtraValue()
|
| | | extras = sendPack.GetExtras()
|
| | | curPlayer.ChatGong(content, extraValue, extras)
|
| | | |
| | | #缓存
|
| | | DoTalkCache(0, curPlayer.GetName(), curPlayer.GetPlayerID(), content, extras)
|
| | | return
|
| | |
|
| | |
|
| | |
| | | curPlayer.ChatFamily(content, extraValue, extras)
|
| | | #仙盟宴会答题
|
| | | PlayerFamilyParty.OnTalkFamily(curPlayer, content, tick)
|
| | | #缓存
|
| | | DoTalkCache(curPlayer.GetFamilyID(), curPlayer.GetName(), curPlayer.GetPlayerID(), content, extras)
|
| | | return
|
| | |
|
| | |
|
| | |
| | |
|
| | | return True
|
| | |
|
| | |
|
| | | def DoTalkCache(familyID, name, playerID, content, extras):
|
| | | #仙盟、世界频道聊天缓存
|
| | | curTime = int(time.time())
|
| | | saveInfo = [curTime, name, playerID, content, extras]
|
| | | if familyID:
|
| | | if familyID not in PyGameData.g_familyTalkCache:
|
| | | PyGameData.g_familyTalkCache[familyID] = []
|
| | | else:
|
| | | maxCnt = IpyGameDataPY.GetFuncCfg('TalkCache', 2)
|
| | | if maxCnt and len(PyGameData.g_familyTalkCache[familyID]) >= maxCnt:
|
| | | del PyGameData.g_familyTalkCache[familyID][0]
|
| | | PyGameData.g_familyTalkCache[familyID].append(saveInfo)
|
| | | else:
|
| | | maxCnt = IpyGameDataPY.GetFuncCfg('TalkCache', 1)
|
| | | if maxCnt and len(PyGameData.g_worldTalkCache) >= maxCnt:
|
| | | del PyGameData.g_worldTalkCache[0]
|
| | | PyGameData.g_worldTalkCache.append(saveInfo)
|
| | | return
|
| | |
|
| | | def NotifyTalkCache(curPlayer):
|
| | | ##上线通知聊天缓存
|
| | | sendPack = ChPyNetSendPack.tagGCTalkCache()
|
| | | sendPack.Clear()
|
| | | sendPack.InfoList = []
|
| | | familyID = curPlayer.GetFamilyID()
|
| | | if familyID and familyID in PyGameData.g_familyTalkCache:
|
| | | for curTime, name, playerID, content, extras in PyGameData.g_familyTalkCache[familyID]:
|
| | | contentInfo = ChPyNetSendPack.tagGCTalkCacheInfo()
|
| | | contentInfo.Clear()
|
| | | contentInfo.ChannelType = 2
|
| | | contentInfo.Name = name
|
| | | contentInfo.NameLen = len(name)
|
| | | contentInfo.PlayerID = playerID
|
| | | contentInfo.Time = curTime
|
| | | contentInfo.Content = content
|
| | | contentInfo.Len = len(content)
|
| | | contentInfo.Extras = extras
|
| | | sendPack.InfoList.append(contentInfo)
|
| | | elif PyGameData.g_worldTalkCache:
|
| | | for curTime, name, playerID, content, extras in PyGameData.g_worldTalkCache:
|
| | | contentInfo = ChPyNetSendPack.tagGCTalkCacheInfo()
|
| | | contentInfo.Clear()
|
| | | contentInfo.ChannelType = 1
|
| | | contentInfo.Name = name
|
| | | contentInfo.NameLen = len(name)
|
| | | contentInfo.PlayerID = playerID
|
| | | contentInfo.Time = curTime
|
| | | contentInfo.Content = content
|
| | | contentInfo.Len = len(content)
|
| | | contentInfo.Extras = extras
|
| | | sendPack.InfoList.append(contentInfo)
|
| | | sendPack.Count = len(sendPack.InfoList)
|
| | | NetPackCommon.SendFakePack(curPlayer, sendPack)
|
| | | return |