From dae838e71a37330fe1c129cc212c90637cc97bd5 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 16 十一月 2023 15:32:44 +0800
Subject: [PATCH] 10007 【主干】【港台】充值成功回复客户端详细信息
---
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py | 34 ++++++++++++++++++++++++++++++----
1 files changed, 30 insertions(+), 4 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py
index 322b1a8..9c220f0 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py
@@ -24,10 +24,13 @@
import GameWorldArena
import ChPyNetSendPack
import PlayerFBHelpBattle
+import GameWorldSkyTower
+import CrossChampionship
import CrossBattlefield
import PyGameDataStruct
import IpyGameDataPY
import PyDataManager
+import ShareDefine
import ChConfig
import json
@@ -46,6 +49,12 @@
return True
if CrossBattlefield.IsBattlefieldCallPlayer(playerID):
+ return True
+
+ if CrossChampionship.IsChampionshipPlayer(playerID):
+ return True
+
+ if GameWorldSkyTower.IsSkyTowerPassPlayer(playerID):
return True
SaveDBLimitLV = IpyGameDataPY.GetFuncCfg("PlayerViewCache", 1)
@@ -67,6 +76,9 @@
if CrossBattlefield.IsBattlefieldCallPlayer(playerID):
return True
+ if CrossChampionship.IsChampionshipPlayer(playerID):
+ return True
+
NeedCheckBillBoardType = IpyGameDataPY.GetFuncEvalCfg("PlayerViewCache", 2)
#校验玩家是否上排行榜
billboardMgr = GameWorld.GetBillboard()
@@ -77,6 +89,16 @@
if curBillboard.FindByID(playerID):
return True
+ #跨服榜单上的默认保留
+ if GameWorld.IsCrossServer():
+ billboardMgr = PyDataManager.GetCrossBillboardManager()
+ for billboardType in ShareDefine.CrossBillboardTypeList:
+ groupList = billboardMgr.GetBillboardGroupList(billboardType)
+ for billboardType, groupValue1, groupValue2 in groupList:
+ billboardObj = billboardMgr.GetCrossBillboard(billboardType, groupValue1, groupValue2)
+ if billboardObj.FindByID(playerID):
+ return True
+
return False
def DelOutofTimeViewCacheData():
@@ -106,8 +128,9 @@
GameWorld.DebugLog("删除查看缓存!", playerID)
return
-def FindViewCache(playerID, isAddNew=False):
+def FindViewCache(playerID, isAddNew=False, newPropData={}):
## 查找玩家缓存
+ # @param newPropData: 新数据初始PropData {}, key: LV,RealmLV,Job,VIPLV,Name,FamilyID,FamilyName,FightPower
curCache = None
pyViewCacheMgr = PyDataManager.GetPlayerViewCachePyManager()
playerViewCachePyDict = pyViewCacheMgr.playerViewCachePyDict
@@ -116,6 +139,9 @@
elif isAddNew:
curCache = PyGameDataStruct.tagPlayerViewCachePy()
curCache.PlayerID = playerID
+ if newPropData:
+ curCache.PropData = json.dumps(newPropData, ensure_ascii=False).replace(" ", "")
+ curCache.PropDataSize = len(curCache.PropData)
playerViewCachePyDict[playerID] = curCache
return curCache
@@ -143,8 +169,8 @@
# WORD ItemDataSize1;
# char ItemData1[ItemDataSize1]; //1阶装备数据
# ... ...
-# WORD ItemDataSize15;
-# char ItemData15[ItemDataSize15];
+# WORD ItemDataSize20;
+# char ItemData20[ItemDataSize20];
#};
def OnMGUpdatePlayerCache(routeIndex, mapID, curPackData, tick):
playerID = curPackData.PlayerID
@@ -181,7 +207,7 @@
#GameWorld.DebugLog(" 更新Plus数据: size=%s, %s" % (curCache.PlusDataSize, curCache.PlusData), playerID)
# 装备数据存储,不保存装备数据的话则清空
- for classLV in xrange(1, 15 + 1):
+ for classLV in xrange(1, 20 + 1):
if not isSaveAll:
itemDataSize = 0
itemData = ""
--
Gitblit v1.8.0