From 388823edfe6308cba6f76ca6dc4f20022c5cb2be Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 30 六月 2025 19:03:50 +0800
Subject: [PATCH] 10431 【英文】看广告获得限时代金券

---
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py |   72 ++++++++++++++++++++++++++++++++---
 1 files changed, 65 insertions(+), 7 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
index d0be780..8dc7086 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
@@ -89,6 +89,7 @@
 #import ReloadModule
 import CrossRealmPK
 import CrossRealmMsg
+import CrossFamilyGCZ
 import CrossRealmPlayer
 import CrossBattlefield
 import CrossActionControl
@@ -113,6 +114,9 @@
 import CrossBillboard
 import CrossChampionship
 import GameWorldMineArea
+import PlayerFuncTeam
+import GameWorship
+import os
 #---------------------------------------------------------------------
 
 #---------------------------------------------------------------------
@@ -177,6 +181,7 @@
     GameWorldOpenServerCampaign.DoOnDay()
     #清理过期补偿
     PlayerCompensation.ClearUpTimeOutCompensation()
+    PlayerControl.DoOnDay()
     #PlayerGeTui.ClearFMTGeTuiLimit()
     import PlayerBourse
     PlayerBourse.OverTimeItemsDeal()
@@ -186,6 +191,8 @@
     PlayerLove.DoOnDay()
     # 云购
     CrossLuckyCloudBuy.DoOnDay()
+    # 膜拜
+    GameWorship.DoOnDay()
     return
 
 def OnDayEx(tick):
@@ -309,8 +316,6 @@
     PlayerFamily.OnLeaderImpeachTick(tick)
     #跨服玩家
     CrossRealmPlayer.OnCrossProcess(tick)
-    #跨服PK匹配
-    CrossRealmPK.OnPKMatchProcess(tick)
     
     GameWorldBoss.DoCheckWorldBossReborn(tick)
     #GameWorldBoss.ProcessBossGeTui(tick)
@@ -370,6 +375,8 @@
     DisposeGameActivePlayer(tick)
     #处理游戏世界中的时间事件
     DisposeGameWorldEvenByTime(tick)
+    #榜单
+    CrossBillboard.OnMinuteProcess()
     GameWorldActionControl.Dispose_OperationActionState()
     GameWorldActionControl.Dispose_DailyActionState()
     GameWorldActionControl.Dispose_FBStateTime()
@@ -378,6 +385,8 @@
     #跨服排位
     CrossChampionship.OnMinuteProcess(curMinute)
     CrossBattlefield.OnMinuteProcess()
+    #仙盟攻城战
+    CrossFamilyGCZ.OnMinuteProcess(curMinute)
     #处理重开服务器后, 活动继续开启逻辑根据天数
     #GameWorldActionControl.Dispose_Action_GoOn_ByDay(tick)
     #触发世界等级
@@ -390,11 +399,8 @@
     AuctionHouse.OnAuctionItemMinuteProcess(tick)
     #福地
     GameWorldMineArea.OnProcessOnMinute()
-    #每5分钟触发一次仙盟总战力更新
-    if curMinute % 5 == 0:
-        PlayerFamily.UpdFamilyTotalFightPower()
-        PlayerFamilyRedPacket.CheckDelRedpacketData()
-        
+    #仙盟
+    PlayerFamily.OnMinuteProcess(curMinute)        
     return
 
 def CheckServerHasPlayerLoginAfterInitOK():
@@ -416,6 +422,13 @@
     return
 
 def OnReloadConfig():
+    
+    if GameWorld.IsCrossServer():
+        # 跨服重读时重推跨服相关数据
+        tick = GameWorld.GetGameWorld().GetTick()
+        CrossRealmMsg.Sync_CrossServerInitDataToClientServer(tick, serverGroupID=0) # 这里设置为0,广播所有子服务器组
+        return
+    
     return
 
 #---------------------------------------------------------------------
@@ -1271,8 +1284,11 @@
     GameWorld.GetFamilyManager().SetFamilyUpperLimitCount(ChConfig.Def_Family_MaxCnt)
     #排序元宝交易平台
     GameWorld.GetGameWorld().GetDBGoldOrderFormMgr().Sort()
+    PlayerBillboard.FixBillboardBigCmpValue()
     #排序排行榜
     PlayerBillboard.SortServerBillboard()
+    #功能队伍
+    PlayerFuncTeam.OnGameServerInitOK()
     #仙盟
     PlayerFamily.OnGameServerInitOK()
     GameWorldActionControl.Dispose_FBStateTime()
@@ -1300,6 +1316,7 @@
     CrossChampionship.OnServerStart()
     #跨服战场
     CrossBattlefield.OnServerStart()
+    GameWorship.OnServerStart()
     #红包
     PlayerFamilyRedPacket.OnServerStart()
     #云购
@@ -1441,6 +1458,7 @@
     if not GameWorld.GetGameWorld().GetDictByKey(ChConfig.Def_WorldKey_IsGameWorldInit):
         GameWorld.Log("AllMapServerInitOK时GameServer还未启动好!")
         return
+    __CheckAllMapInitOK()
     #通知所有地图服务器初始化成功, 同步时间
     GameWorld.GetGameWorld().Notify_AllMapServerInitOK(GameWorld.GetCurrentDataTimeStr())
     
@@ -1486,6 +1504,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) 
@@ -1511,6 +1532,8 @@
     
     # 跨服PK
     CrossRealmPK.OnMapServerInitOK()
+    # 跨服排位赛
+    CrossChampionship.OnMapServerInitOK()
     #跨服战场
     CrossBattlefield.OnMapServerInitOK()
     # 本服竞技场
@@ -1534,6 +1557,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