From 40f2e314ff6df3d45e643419c6f155bb665b78dc Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 14 九月 2024 13:34:19 +0800
Subject: [PATCH] 10249 【越南】【砍树】【英文】仙宫(增加获得气运提示;)
---
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTalk.py | 91 +++++++++++++++++++++++++++++++--------------
1 files changed, 63 insertions(+), 28 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTalk.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTalk.py
index 8bd9d39..c1f7cf3 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTalk.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTalk.py
@@ -26,7 +26,6 @@
import CrossRealmMsg
import ChNetSendPack
import NetPackCommon
-import PlayerGeTui
import PyGameData
import re
@@ -146,8 +145,6 @@
if len(g_ChatMi[tagPlayerID]) > 8:
g_ChatMi[tagPlayerID].pop(0)
return
-
- PlayerGeTui.ChatMiGeTui(tagPlayerID, tagPlayerName, curPlayer.GetName())
# 登录时将离线消息下发
def LoginChatMi(curPlayer):
@@ -187,10 +184,18 @@
def ClientServerMsg_ChatCrossWorld(serverGroupID, msgData, tick):
## 收到子服跨服世界频道聊天
- zoneIpyData = CrossRealmPlayer.GetCrossZoneIpyDataByServerGroupID(0, serverGroupID)
- if not zoneIpyData:
- return
- serverGroupIDList = zoneIpyData.GetServerGroupIDList()
+ chatCrossType = IpyGameDataPY.GetFuncCfg("TalkCross", 1) # 跨服聊天范围设定 0-全服;1-boss分区;2-跨服竞技场分区
+ if chatCrossType == 0:
+ serverGroupIDList = []
+ else:
+ crossTypeMapDict = {1:ChConfig.Def_FBMapID_CrossPenglai, 2:ChConfig.Def_FBMapID_CrossRealmPK}
+ if chatCrossType not in crossTypeMapDict:
+ GameWorld.ErrLog("跨服聊天范围配置错误! chatCrossType=%s" % chatCrossType)
+ return
+ zoneIpyData = CrossRealmPlayer.GetCrossZoneIpyDataByServerGroupID(crossTypeMapDict[chatCrossType], serverGroupID)
+ if not zoneIpyData:
+ return
+ serverGroupIDList = zoneIpyData.GetServerGroupIDList()
CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_ChatCrossWorld, msgData, serverGroupIDList)
return
@@ -437,7 +442,8 @@
vipLv = player.GetVIPLv() # 玩家vip等级
GMLevel = player.GetGMLevel()
job = player.GetJob()
-
+ playerID = player.GetID()
+
extraValueStr = ""
# vip等级
extraValueStr += GetTalkExtraValueStar(ShareDefine.Def_TalkExtraValue_Bit_VipLv)%vipLv
@@ -451,6 +457,16 @@
extraValueStr += GetTalkExtraValueStar(ShareDefine.Def_TalkExtraValue_Bit_ServerGroupID) % PlayerControl.GetPlayerServerGroupID(player)
# 等级
extraValueStr += GetTalkExtraValueStar(ShareDefine.Def_TalkExtraValue_Bit_LV) % player.GetLV()
+ # 伴侣信息
+ coupleName, coupleJob, bridePriceMaxID = "", 1, 0
+ couple = PyDataManager.GetDBPyCoupleManager().GetCouple(playerID)
+ if couple:
+ coupleName = couple.GetCoupleName(playerID)
+ coupleJob = couple.GetCoupleJob(playerID)
+ bridePriceMaxID = couple.BridePriceMaxID
+ face = player.GetFace()
+ facePic = player.GetFacePic()
+ extraValueStr = "%s|%s|%s|%s|%s|%s" % (extraValueStr, coupleName, coupleJob, bridePriceMaxID, face, facePic)
return extraValueStr
@@ -496,13 +512,18 @@
return
def NotifyTalkCache(curPlayer):
- ##上线通知聊天缓存
- sendPack = ChPyNetSendPack.tagGCTalkCache()
- sendPack.Clear()
- sendPack.InfoList = []
+ ##上线通知非脱机离线后的聊天缓存
+ if PlayerControl.GetIsTJG(curPlayer):
+ return
+ playerID = curPlayer.GetPlayerID()
+ unTJLogoffTime = PyGameData.g_unTJLogoffTime.get(playerID, 0)
+
+ familyCacheList, worldCacheList = [], []
familyID = curPlayer.GetFamilyID()
if familyID and familyID in PyGameData.g_familyTalkCache:
for curTime, name, playerID, content, extras in PyGameData.g_familyTalkCache[familyID]:
+ if curTime < unTJLogoffTime:
+ continue
contentInfo = ChPyNetSendPack.tagGCTalkCacheInfo()
contentInfo.Clear()
contentInfo.ChannelType = 2
@@ -513,20 +534,34 @@
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)
+ familyCacheList.append(contentInfo)
+
+ for curTime, name, playerID, content, extras in PyGameData.g_worldTalkCache:
+ if curTime < unTJLogoffTime:
+ continue
+ 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
+ worldCacheList.append(contentInfo)
+
+ if familyCacheList:
+ sendPack = ChPyNetSendPack.tagGCTalkCache()
+ sendPack.Clear()
+ sendPack.InfoList = familyCacheList
+ sendPack.Count = len(sendPack.InfoList)
+ NetPackCommon.SendFakePack(curPlayer, sendPack)
+
+ if worldCacheList:
+ sendPack = ChPyNetSendPack.tagGCTalkCache()
+ sendPack.Clear()
+ sendPack.InfoList = worldCacheList
+ sendPack.Count = len(sendPack.InfoList)
+ NetPackCommon.SendFakePack(curPlayer, sendPack)
return
\ No newline at end of file
--
Gitblit v1.8.0