From 10691422c3a3c3a9f090a7fabedbea390b185ad8 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 29 六月 2023 16:54:03 +0800
Subject: [PATCH] 9790 9762 【BT9】【后端】藏宝阁修改(增加古宝分类;等级属性改为由分类及品质决定)
---
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTalk.py | 88 +++++++++++++++++++++++++++++++-------------
1 files changed, 62 insertions(+), 26 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTalk.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTalk.py
index 8bd9d39..110ce43 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTalk.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTalk.py
@@ -147,7 +147,7 @@
g_ChatMi[tagPlayerID].pop(0)
return
- PlayerGeTui.ChatMiGeTui(tagPlayerID, tagPlayerName, curPlayer.GetName())
+ #PlayerGeTui.ChatMiGeTui(tagPlayerID, tagPlayerName, curPlayer.GetName())
# 登录时将离线消息下发
def LoginChatMi(curPlayer):
@@ -187,10 +187,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 +445,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 +460,14 @@
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
+ extraValueStr = "%s|%s|%s|%s" % (extraValueStr, coupleName, coupleJob, bridePriceMaxID)
return extraValueStr
@@ -496,13 +513,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 +535,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