From 17bc19e882bb3f91367c390d28f5ea925482199c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 22 十二月 2018 14:11:13 +0800
Subject: [PATCH] 5424 【后端】【1.4】跨服竞技场开发(排行榜封包)
---
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py | 68 ++++++++++++++++++++--------------
1 files changed, 40 insertions(+), 28 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
index 2a47ecf..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
## 触发每日事件(参数 -> 当前时间)
@@ -172,6 +175,8 @@
PlayerGeTui.ClearFMTGeTuiLimit()
import PlayerBourse
PlayerBourse.OverTimeItemsDeal()
+ # 仙盟联赛
+ GameWorldFamilyWar.DoOnDay()
return
def OnDayEx(tick):
@@ -293,7 +298,7 @@
#跨服广播
#MergeBroadcast.OnBroadcastProccee(tick)
#跨服PK匹配
- #GameWorldMergePK.OnPKMatchProcess(tick)
+ CrossRealmPK.OnPKMatchProcess(tick)
#跨服王者争霸
#GameWorldMergeKing.OnMergeKingProcess(tick)
@@ -354,7 +359,8 @@
GameWorldAverageLv.OpenWorldAverageLv()
#倒计时离队处理
PlayerTeam.DoCountdownLeaveTeamLogic(tick)
-
+ #副本助战
+ PlayerFBHelpBattle.OnMinuteProcess()
#每5分钟触发一次仙盟总战力更新
if curMinute % 5 == 0:
PlayerFamily.UpdFamilyTotalFightPower()
@@ -578,7 +584,7 @@
tjgOnlineCnt += 1
continue
- platform = GameWorld.GetPlayerPlatform(player.GetAccID())
+ platform = GameWorld.GetPlayerPlatform(player)
platformOLDict[platform] = platformOLDict.get(platform, 0) + 1 # 累计平台在线人数
# mapID = player.GetMapID()
@@ -1205,9 +1211,16 @@
# @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)
+ #初始话开服时间、星期几
+ initOpenServerTime = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_InitOpenServerTime)
+ openServerWeekday = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_OpenServerWeekday)
+ if initOpenServerTime <= 0 or openServerWeekday <= 0:
+ #记录首次开发时间(现实时间戳)
+ PlayerDBGSEvent.SetInitOpenServerTime(initOpenServerTime if initOpenServerTime else int(time.time()))
+
#初始化家族数量
GameWorld.GetFamilyManager().SetFamilyUpperLimitCount(ChConfig.Def_Family_MaxCnt)
#排序元宝交易平台
@@ -1225,10 +1238,6 @@
#事件汇报初始化
EventReport.InitDllAppID()
- initOpenServerTime = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_InitOpenServerTime)
- if initOpenServerTime <= 0:
- #记录首次开发时间(现实时间戳)
- PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_InitOpenServerTime, int(time.time()))
#ReloadModule.RefreshModuleFileCMTime(True)
#合服首次启动加载处理
__DoMixServerInit()
@@ -1236,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):
@@ -1320,18 +1329,15 @@
PyGameData.g_sortBOSSRefreshList = [] # boss刷新信息记录缓存重置, 不重置会导致通知前端的boss信息为空
- AllMapServerInitOK(tick)
+ PlayerDBGSEvent.SetInitOpenServerTime(setOpenServerTime)
- PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_InitOpenServerTime, setOpenServerTime)
+ ReadChConfig.ReloadConfig()
+
+ AllMapServerInitOK(tick)
return
-def GetOpenServerWeekday():
- # 服务器开服时是星期几
- openServerTime = PlayerDBGSEvent.GetDBGSTrig_ByKey( PlayerDBGSEvent.Def_InitOpenServerTime)
- if not openServerTime:
- return 0
- openDatetime = GameWorld.ChangeTimeNumToDatetime(openServerTime)
- return openDatetime.weekday() + 1
+## 服务器开服时是星期几
+def GetOpenServerWeekday(): return PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_OpenServerWeekday)
## 所有地图服务器初始化成功后(封包注册)
# @param tick 当前时间
@@ -1371,6 +1377,8 @@
# 通知开服天数
openServerDay = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_ServerDay)
GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_ServerDay, openServerDay)
+ openServerWeekday = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_OpenServerWeekday)
+ GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_OpenServerWeekday, openServerWeekday)
# 合服状态
isMixServer = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_IsMixServer)
GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_IsMixServer, isMixServer)
@@ -1387,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()
@@ -1893,6 +1904,7 @@
def BeforeClose(tick):
PlayerTeam.OnServerClose(tick)
ChPlayer.SavePlayerLVData()
+ PlayerFBHelpBattle.OnServerClose()
GameWorld.Log("通知C++关服!")
GameWorld.GetGameWorld().OnServerClose()
--
Gitblit v1.8.0