From 67a84dc38db8f7d0f85b03e2b06ba728d95c1e82 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 07 二月 2026 20:29:42 +0800
Subject: [PATCH] 476 【付费内容】时机礼包-服务端(自定义存储支持;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py | 26 +++++++++++++++-----------
1 files changed, 15 insertions(+), 11 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 bb6d873..8d4e576 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py
@@ -20,12 +20,12 @@
import ShareDefine
import IPY_GameWorld
import ChPyNetSendPack
-import CrossRealmPlayer
import PlayerViewCache
import NetPackCommon
import IpyGameDataPY
import PlayerControl
import PlayerFamily
+import CrossPlayer
import DBDataMgr
import math
@@ -36,7 +36,8 @@
}
def OnPlayerLogin(curPlayer):
- NotifyTalkCache(curPlayer)
+ crossPlayer = CrossPlayer.GetCrossPlayerMgr().FindCrossPlayer(curPlayer.GetPlayerID())
+ NotifyTalkCache(crossPlayer, [IPY_GameWorld.tcWorld])
return
#// B3 20 聊天 #tagCSTalk
@@ -64,9 +65,6 @@
elif channelType == IPY_GameWorld.tcCountry:
if GameWorld.IsCrossServer():
return
- if not CrossRealmPlayer.IsCrossServerOpen():
- PlayerControl.NotifyCode(curPlayer, "CrossMatching18")
- return
if not __CheckTalk(curPlayer, channelType, content, tick):
return
@@ -93,14 +91,15 @@
clientPack.RealmLV = curPlayer.GetOfficialRank()
clientPack.Face = curPlayer.GetFace()
clientPack.FacePic = curPlayer.GetFacePic()
+ clientPack.TitleID = PlayerControl.GetTitleID(curPlayer)
clientPack.ServerID = GameWorld.GetPlayerServerID(curPlayer)
if channelType == IPY_GameWorld.tcWorld:
NetPackCommon.SendFackPackOnline(clientPack)
+ DoTalkCache(channelType, playerID, content, bubbleBox, familyID)
elif channelType == IPY_GameWorld.tcFamily:
- PlayerFamily.Broadcast_FamilyPack(familyID, clientPack)
+ PlayerFamily.OnFamilyTalk(curPlayer, familyID, clientPack, tick)
- DoTalkCache(channelType, playerID, content, bubbleBox, familyID)
return
def __CheckTalk(curPlayer, channelType, content, tick, checkGMForbidenTalk=True):
@@ -167,13 +166,17 @@
return
-def NotifyTalkCache(curPlayer):
+def NotifyTalkCache(crossPlayer, channelTypeList):
##上线通知聊天缓存
-
+ # @param channelTypeList: 指定需要通知聊天缓存频道列表,不同频道的缓存可能存储在不同的服务器,如公会在公会数据所在服等
+ if not crossPlayer:
+ return
for channelType in ChannelCacheMax.keys():
+ if channelType not in channelTypeList:
+ continue
cacheList = []
if channelType == IPY_GameWorld.tcFamily:
- familyID = curPlayer.GetFamilyID()
+ familyID = crossPlayer.GetFamilyID()
if not familyID:
continue
familyActonMgr = DBDataMgr.GetFamilyActionMgr().GetFamilyAction(familyID, ShareDefine.Def_ActionType_TalkCache)
@@ -218,6 +221,7 @@
talkCache.RealmLV = viewCache.GetRealmLV()
talkCache.Face = viewCache.GetFace()
talkCache.FacePic = viewCache.GetFacePic()
+ talkCache.TitleID = viewCache.GetTitleID()
talkCache.ServerID = viewCache.GetServerID()
talkCache.TalkTime = talkTime
packCacheList.append(talkCache)
@@ -229,6 +233,6 @@
clientPack.ChannelType = channelType
clientPack.InfoList = packCacheList
clientPack.Count = len(clientPack.InfoList)
- NetPackCommon.SendFakePack(curPlayer, clientPack)
+ CrossPlayer.SendFakePack(crossPlayer, clientPack)
return
--
Gitblit v1.8.0