From e02ac9afc27cf8cb820302ca7f61697e6db3fbf9 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期六, 22 十二月 2018 18:33:16 +0800 Subject: [PATCH] 5424 【后端】【1.4】跨服竞技场开发(是否跨服服务器判断错误) --- ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py | 43 +++++++++++++++++++++++++++---------------- 1 files changed, 27 insertions(+), 16 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py index f4d004e..4e9df57 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py @@ -86,7 +86,6 @@ #import MergeBroadcast #import GameWorldMixServerCampaign #import GameWorldMergeKing -#import GameWorldMergePK #import PlayerManorWar import GameWorldBoss #import GameWorldActionTeHui @@ -96,8 +95,10 @@ import ReadChConfig import EventReport #import ReloadModule -import MergeChildMsg +import CrossRealmMsg +import CrossRealmPK #import MergePlayer +import PlayerFBHelpBattle import PlayerFamilyRedPacket import IpyGameDataPY import PlayerFamilyParty @@ -129,6 +130,8 @@ #__ClearTreasureDropCount() #记录当前时间 GameLogInfo.Set_Server_Hour() + + PlayerFamily.FamilyOnHour() return ## 触发每日事件(参数 -> 当前时间) @@ -295,7 +298,7 @@ #跨服广播 #MergeBroadcast.OnBroadcastProccee(tick) #跨服PK匹配 - #GameWorldMergePK.OnPKMatchProcess(tick) + CrossRealmPK.OnPKMatchProcess(tick) #跨服王者争霸 #GameWorldMergeKing.OnMergeKingProcess(tick) @@ -356,7 +359,8 @@ GameWorldAverageLv.OpenWorldAverageLv() #倒计时离队处理 PlayerTeam.DoCountdownLeaveTeamLogic(tick) - + #副本助战 + PlayerFBHelpBattle.OnMinuteProcess() #每5分钟触发一次仙盟总战力更新 if curMinute % 5 == 0: PlayerFamily.UpdFamilyTotalFightPower() @@ -1207,7 +1211,7 @@ # @remarks 先请求排行榜信息,然后SetTickTypeCount,设置需要保存的时间种类 def InitGameWorld(tick): #标记GameWorld初始化完成 - GameWorld.GetGameWorld().SetDict(ChConfig.Def_WorldKey_IsGameWorldInit, 1) + GameWorld.GetGameWorld().SetDict(ChConfig.Def_WorldKey_IsGameWorldInit, int(time.time())) #初始化游戏时钟 GameWorld.GetGameWorld().SetTickTypeCount(ChConfig.TYPE_Tick_Count) #初始话开服时间、星期几 @@ -1216,6 +1220,7 @@ if initOpenServerTime <= 0 or openServerWeekday <= 0: #记录首次开发时间(现实时间戳) PlayerDBGSEvent.SetInitOpenServerTime(initOpenServerTime if initOpenServerTime else int(time.time())) + #初始化家族数量 GameWorld.GetFamilyManager().SetFamilyUpperLimitCount(ChConfig.Def_Family_MaxCnt) #排序元宝交易平台 @@ -1240,19 +1245,19 @@ PlayerXMZZ.OnGameServerInitOK() #加载活跃玩家等级信息 ChPlayer.LoadPlayerLVData() + #加载助战信息 + PlayerFBHelpBattle.OnServerStart() #世界boss被杀次数重置 #GameWorldBoss.CheckResetBossKilledCntOnServerInit() #GameWorldActionTeHui.OnGameServerInitOK() # 特惠活动初始化 #子服启动成功告知跨服主服 - #=========================================================================== - # serverGroupID = GameWorld.GetServerGroupID() - # if GameWorld.IsMergeOpen() and not GameWorld.IsMergeServer(): - # GameWorld.Log("通知跨服主服务器启动成功, 可接收最新跨服活动状态及数据...") - # dataMsg = {"Platform":GameWorld.GetPlatform(), "ServerID":GameWorld.GetServerSID(), "ServerGroupID":serverGroupID} - # MergeChildMsg.SendMergerChildToCenterStringData(ChConfig.Def_ClientServerInitOK, dataMsg) - # - # GameWorld.Log("服务器启动成功: ServerGroupID=%s" % serverGroupID) - #=========================================================================== + serverGroupID = GameWorld.GetServerGroupID() + if GameWorld.IsCrossRealmOpen() and not GameWorld.IsCrossServer(): + GameWorld.Log("通知跨服主服务器启动成功, 可接收最新跨服活动状态及数据...") + dataMsg = {"ServerGroupID":serverGroupID} + CrossRealmMsg.SendMsgToCrossServer(ShareDefine.ClientServerMsg_ServerInitOK, dataMsg) + + GameWorld.Log("服务器启动成功: ServerGroupID=%s" % serverGroupID) return def DoCheckNewServerOpen(tick): @@ -1324,9 +1329,11 @@ PyGameData.g_sortBOSSRefreshList = [] # boss刷新信息记录缓存重置, 不重置会导致通知前端的boss信息为空 - AllMapServerInitOK(tick) - PlayerDBGSEvent.SetInitOpenServerTime(setOpenServerTime) + + ReadChConfig.ReloadConfig() + + AllMapServerInitOK(tick) return ## 服务器开服时是星期几 @@ -1388,6 +1395,9 @@ # 通知战盟相关活动开启状态 fadState = PlayerDBGSEvent.GetDBGSTrig_ByKey(ShareDefine.Def_Notify_WorldKey_FamilyActivityDayState) GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_FamilyActivityDayState, fadState) + # 通知开启服务器时间 + initGameWorldTime = GameWorld.GetGameWorld().GetDictByKey(ChConfig.Def_WorldKey_IsGameWorldInit) + GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_InitGameWorldTime, initGameWorldTime) # 通知世界boss奖励信息 GameWorldBoss.OnMapServerInitOK() @@ -1894,6 +1904,7 @@ def BeforeClose(tick): PlayerTeam.OnServerClose(tick) ChPlayer.SavePlayerLVData() + PlayerFBHelpBattle.OnServerClose() GameWorld.Log("通知C++关服!") GameWorld.GetGameWorld().OnServerClose() -- Gitblit v1.8.0