From 00f4a55d20b44485efb11172bf61263e8cfb57fa Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 12 三月 2025 15:09:14 +0800
Subject: [PATCH] 10416 【英文】【bt】【GM】【砍树】登录基金和幻境基金 完成后可以重置购买(重置关联的充值ID)
---
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldArena.py | 25 +++++++++++++++++++++++--
1 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldArena.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldArena.py
index 4cea4dc..5a3d184 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldArena.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldArena.py
@@ -230,6 +230,7 @@
if updScore != None:
__SyncPlayerBechallengedUpdScore(curPlayer, updScore)
+ PlayerControl.DoOfflineUnprocessed(curPlayer, "BattleResult", __DoOfflineArenaBattleResult)
return
def OnDayEx():
@@ -293,6 +294,9 @@
GameWorld.GetUniversalRecMgr().Delete(Def_RecType_ArenaBattleRecord)
PyGameData.g_arenaPlayerBattleRecDict = {}
PyGameData.g_arenaPlayerMatchDict = {}
+
+ # 删除未处理的
+ PlayerControl.DelOfflineUnprocessed("BattleResult")
# 更新新赛季信息
if openServerDay <= customMaxServerDay and OSSeasonState == 0:
@@ -546,21 +550,27 @@
GameWorld.Log(" 奖励保底玩家信息: %s" % floorPlayerIDList)
return
-def MapServer_Arena(curPlayer, msgList):
- GameWorld.DebugLog("MapServer_Arena %s" % str(msgList), curPlayer.GetPlayerID())
+def MapServer_Arena(playerID, msgList):
+ GameWorld.DebugLog("MapServer_Arena %s" % str(msgList), playerID)
if not msgList:
return
+ curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(playerID)
cmd = msgList[0]
cmdDict = msgList[1] if len(msgList) > 1 else {}
retDict = {}
# 匹配刷新
if cmd == "MatchRefresh":
+ if not curPlayer:
+ return
__DoArenaMatchRefresh(curPlayer, cmdDict["isRefresh"], cmdDict["playerLV"], cmdDict["playerScore"], cmdDict.get("gmMatchIDList"))
# 对战结算
elif cmd == "BattleResult":
+ if not curPlayer:
+ PlayerControl.AddOfflineUnprocessed(playerID, "BattleResult", cmdDict)
+ return
retDict = __DoArenaBattleResult(curPlayer, cmdDict)
return msgList + [retDict]
@@ -819,6 +829,17 @@
NetPackCommon.SendFakePack(curPlayer, clientPack)
return
+def __DoOfflineArenaBattleResult(curPlayer, recData, cmdName, cmdDict):
+ ## 执行离线未处理的战斗结果
+ recTime = recData.GetTime()
+ msgList = [cmdName, cmdDict]
+ retDict = __DoArenaBattleResult(curPlayer, cmdDict)
+ retDict["offlineRecTime"] = recTime
+ ret = msgList + [retDict]
+ resultName = '%s' % ret
+ curPlayer.MapServer_QueryPlayerResult(0, 0, "Arena", resultName, len(resultName))
+ return
+
def __DoArenaBattleResult(curPlayer, cmdDict):
## 地图玩家同步战斗结果
--
Gitblit v1.8.0