From 27851e45dc926af04efcbdefbeb951d3560deb58 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 23 五月 2022 17:00:16 +0800 Subject: [PATCH] 9415 【BT】【后端】古神战场(采集积分墙可增加个人积分) --- ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 43 insertions(+), 0 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py index 4912bed..a73766d 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py @@ -90,6 +90,7 @@ import CrossRealmPK import CrossRealmMsg import CrossRealmPlayer +import CrossBattlefield import CrossActionControl import PlayerFBHelpBattle import PlayerFamilyRedPacket @@ -98,12 +99,16 @@ import PlayerFamilyParty import GameWorldFamilyWar import GameWorldArena +import CrossLuckyCloudBuy import AuctionHouse import PlayerXMZZ +import PlayerLove import PlayerTeam import PyGameData import CrossBoss import ChPlayer +import PyDataManager +import GameWorldOpenServerCampaign #--------------------------------------------------------------------- #--------------------------------------------------------------------- @@ -164,6 +169,7 @@ # 通知开服天数 #openServerDay = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_ServerDay) #GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_ServerDay, openServerDay) + GameWorldOpenServerCampaign.DoOnDay() #清理过期补偿 PlayerCompensation.ClearUpTimeOutCompensation() #PlayerGeTui.ClearFMTGeTuiLimit() @@ -171,6 +177,10 @@ PlayerBourse.OverTimeItemsDeal() # 仙盟联赛 GameWorldFamilyWar.DoOnDay() + # 情缘 + PlayerLove.DoOnDay() + # 云购 + CrossLuckyCloudBuy.DoOnDay() return def OnDayEx(tick): @@ -309,6 +319,9 @@ #拍卖行 AuctionHouse.OnAuctionItemTimeProcess(curTime, tick) + #情缘 + PlayerLove.OnTimeProcess(curTime, tick) + #每整分钟处理一次 curDateTime = datetime.datetime.today() curMinute = curDateTime.minute @@ -352,6 +365,7 @@ GameWorldActionControl.Dispose_FBStateTime() #跨服PK CrossRealmPK.OnMinuteProcess() + CrossBattlefield.OnMinuteProcess() #处理重开服务器后, 活动继续开启逻辑根据天数 #GameWorldActionControl.Dispose_Action_GoOn_ByDay(tick) #触发世界等级 @@ -367,6 +381,9 @@ PlayerFamily.UpdFamilyTotalFightPower() PlayerFamilyRedPacket.CheckDelRedpacketData() + return + +def OnReloadConfig(): return #--------------------------------------------------------------------- @@ -1205,6 +1222,7 @@ def InitGameWorld(tick): #标记GameWorld初始化完成 GameWorld.GetGameWorld().SetDict(ChConfig.Def_WorldKey_IsGameWorldInit, int(time.time())) + PlayerControl.LoadDBPlayer() #初始化游戏时钟 GameWorld.GetGameWorld().SetTickTypeCount(ChConfig.TYPE_Tick_Count) #初始话开服时间、星期几 @@ -1243,8 +1261,12 @@ GameWorldArena.OnServerStart() #跨服PK CrossRealmPK.OnGameServerInitOK() + #跨服战场 + CrossBattlefield.OnServerStart() #红包 PlayerFamilyRedPacket.OnServerStart() + #云购 + CrossLuckyCloudBuy.OnServerStart() #世界boss被杀次数重置 #GameWorldBoss.CheckResetBossKilledCntOnServerInit() @@ -1265,6 +1287,11 @@ AuctionHouse.OnGameServerInitOK() # 注意:跨服相关信息的调用需放在最后,不然可能导致服务器未启动功能或者功能未加载成功导致跨服服务器与子服之间的数据同步可能出现异常的情况 CrossRealmMsg.OnGameServerInitOK() + if PyGameData.g_allMapServerInitOK: + GameWorld.Log("InitGameWorld时AllMapServerInitOK已触发则补触发一次!") + GameWorld.SendGameError("GameWarning", "InitGameWorld later than AllMapServerInitOK") + AllMapServerInitOK(tick) + return def DoCheckNewServerOpen(tick): @@ -1339,6 +1366,8 @@ GameWorldArena.OnServerStart() + CrossBattlefield.OnServerStart() + PlayerDBGSEvent.SetInitOpenServerTime(setOpenServerTime) ReadChConfig.ReloadConfig() @@ -1354,6 +1383,10 @@ # @return None # @remarks 当一个mapServer开启时, def AllMapServerInitOK(tick): + PyGameData.g_allMapServerInitOK = True + if not GameWorld.GetGameWorld().GetDictByKey(ChConfig.Def_WorldKey_IsGameWorldInit): + GameWorld.Log("AllMapServerInitOK时GameServer还未启动好!") + return #通知所有地图服务器初始化成功, 同步时间 GameWorld.GetGameWorld().Notify_AllMapServerInitOK(GameWorld.GetCurrentDataTimeStr()) @@ -1417,14 +1450,19 @@ GameWorldFamilyWar.OnMapServerInitOK() # 跨服服务器状态 + GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_CrossServerTime, PyGameData.g_crossServerTimeInfo) isCrossServerOpen = GameWorld.GetGameWorld().GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossServerOpen) GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_CrossServerOpen, isCrossServerOpen) GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_CrossZoneName, PyGameData.g_crossZoneName) # 跨服PK CrossRealmPK.OnMapServerInitOK() + #跨服战场 + CrossBattlefield.OnMapServerInitOK() # 本服竞技场 GameWorldArena.SendMapServerArenaInfo() + # 幸运云购 + CrossLuckyCloudBuy.OnMapServerInitOK() SendAllMapGlobalDropInfo() # 全局掉落控制 @@ -1433,6 +1471,8 @@ PlayerFamily.RandomFakeFamily() #缥缈仙域 PlayerFairyDomain.OnMapServerInitOK() + #情侣信息 + PyDataManager.GetDBPyCoupleManager().SendMapServerCoupleInfo() # 记录服务器是否正常开启完毕 getUrl = ReadChConfig.GetPyMongoConfig("EventReport", "OpenStateUrl") + "?Type=MapInit&MapCount=%s"%GameWorld.GetGameWorld().GetGameMapManager().GetCount() GameWorld.GetGameWorld().EventReport_EventReport("", "", "", "", 0, getUrl) @@ -1932,8 +1972,11 @@ ChPlayer.SavePlayerLVData() PlayerFBHelpBattle.OnServerClose() CrossActionControl.OnServerClose() + CrossBattlefield.OnServerClose() PlayerFamilyRedPacket.OnServerClose() + CrossLuckyCloudBuy.OnServerClose() GameWorldArena.OnServerClose() + PlayerLove.OnServerClose() GameWorld.Log("通知C++关服!") GameWorld.GetGameWorld().OnServerClose() -- Gitblit v1.8.0