From 10b89ac878a7d6ddf03818c73c74abb38615809c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 11 三月 2025 18:28:15 +0800
Subject: [PATCH] 10414 【英文】【BT】【砍树】减少跨服天梯比赛系统提示
---
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 51 insertions(+), 2 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
index 79fd046..54f790c 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
@@ -97,6 +97,7 @@
import IpyGameDataPY
import PlayerFamilyParty
import PlayerFamilyZhenfa
+import PlayerFamilyEmblem
import GameWorldFamilyWar
import GameWorldArena
import CrossLuckyCloudBuy
@@ -112,8 +113,10 @@
import CrossBillboard
import CrossChampionship
import GameWorldMineArea
+import PlayerFuncTeam
import GameWorship
import GameWorldAlineInvade
+import os
#---------------------------------------------------------------------
#---------------------------------------------------------------------
@@ -313,8 +316,6 @@
PlayerFamily.OnLeaderImpeachTick(tick)
#跨服玩家
CrossRealmPlayer.OnCrossProcess(tick)
- #跨服PK匹配
- CrossRealmPK.OnPKMatchProcess(tick)
GameWorldBoss.DoCheckWorldBossReborn(tick)
@@ -373,6 +374,8 @@
DisposeGameActivePlayer(tick)
#处理游戏世界中的时间事件
DisposeGameWorldEvenByTime(tick)
+ #榜单
+ CrossBillboard.OnMinuteProcess()
GameWorldActionControl.Dispose_OperationActionState()
GameWorldActionControl.Dispose_DailyActionState()
GameWorldActionControl.Dispose_FBStateTime()
@@ -397,6 +400,7 @@
if curMinute % 5 == 0:
PlayerFamily.UpdFamilyTotalFightPower()
PlayerFamilyRedPacket.CheckDelRedpacketData()
+ PlayerFamilyEmblem.CheckExpireEmblem()
return
@@ -1281,8 +1285,11 @@
GameWorld.GetFamilyManager().SetFamilyUpperLimitCount(ChConfig.Def_Family_MaxCnt)
#排序元宝交易平台
GameWorld.GetGameWorld().GetDBGoldOrderFormMgr().Sort()
+ PlayerBillboard.FixBillboardBigCmpValue()
#排序排行榜
PlayerBillboard.SortServerBillboard()
+ #功能队伍
+ PlayerFuncTeam.OnGameServerInitOK()
#仙盟
PlayerFamily.OnGameServerInitOK()
GameWorldActionControl.Dispose_FBStateTime()
@@ -1310,6 +1317,7 @@
CrossChampionship.OnServerStart()
#跨服战场
CrossBattlefield.OnServerStart()
+ GameWorship.OnServerStart()
#红包
PlayerFamilyRedPacket.OnServerStart()
#云购
@@ -1451,6 +1459,7 @@
if not GameWorld.GetGameWorld().GetDictByKey(ChConfig.Def_WorldKey_IsGameWorldInit):
GameWorld.Log("AllMapServerInitOK时GameServer还未启动好!")
return
+ __CheckAllMapInitOK()
#通知所有地图服务器初始化成功, 同步时间
GameWorld.GetGameWorld().Notify_AllMapServerInitOK(GameWorld.GetCurrentDataTimeStr())
@@ -1496,6 +1505,9 @@
lastMixServerWorldLV = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_LastMixServerWorldLV)
GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_LastMixServerWorldLV, lastMixServerWorldLV)
+ # 功能队伍
+ PlayerFuncTeam.OnMapServerInitOK()
+
# 通知战盟相关活动开启状态
fadState = PlayerDBGSEvent.GetDBGSTrig_ByKey(ShareDefine.Def_Notify_WorldKey_FamilyActivityDayState)
GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_FamilyActivityDayState, fadState)
@@ -1521,6 +1533,8 @@
# 跨服PK
CrossRealmPK.OnMapServerInitOK()
+ # 跨服排位赛
+ CrossChampionship.OnMapServerInitOK()
#跨服战场
CrossBattlefield.OnMapServerInitOK()
# 本服竞技场
@@ -1544,6 +1558,41 @@
GameWorld.GetGameWorld().EventReport_EventReport("", "", "", "", 0, getUrl)
return
+def __CheckAllMapInitOK():
+ ## 检查所有地图是否启动成功
+ rootPath = ChConfig.GetServerRootPath()
+ mapIDTxtPath = os.path.join(rootPath, "ZoneServerGroup\map1_8G\MapServer\MapServerData\Map\MapID.txt")
+ if not os.path.isfile(mapIDTxtPath):
+ GameWorld.ErrLog("MapID.txt不存在: %s" % mapIDTxtPath)
+ return
+ fileObj = open(mapIDTxtPath, 'rb')
+ content = fileObj.read()
+ fileObj.close()
+
+ mapInfoDict = {}
+ mapInfoList = content.split('\r\n')
+ for info in mapInfoList:
+ mapInfo = info.split('\t')
+ if len(mapInfo) < 3:
+ continue
+ mapInfoDict[GameWorld.ToIntDef(mapInfo[1])] = mapInfo[2]
+
+ gameMapManager = GameWorld.GetGameWorld().GetGameMapManager()
+ for i in range(0, gameMapManager.GetCount()):
+ curMap = gameMapManager.GetAt(i)
+ mapID = curMap.GetID()
+ state = curMap.GetState()
+ if mapID in mapInfoDict and state == IPY_GameServer.mssRunning:
+ mapInfoDict.pop(mapID)
+
+ if not mapInfoDict:
+ #GameWorld.Log("都启动成功了")
+ return
+ # 汇报没有启动启动成功的地图ID信息
+ errorMapIDList = mapInfoDict.keys()
+ GameWorld.SendGameError("AllMapInitError", "未启动成功地图:%s" % (str(errorMapIDList)))
+ return
+
## 服务器合服首次启动数据加载处理
# @param None
# @return None
--
Gitblit v1.8.0