| | |
| | | #import MergeBroadcast
|
| | | #import GameWorldMixServerCampaign
|
| | | #import GameWorldMergeKing
|
| | | #import GameWorldMergePK
|
| | | #import PlayerManorWar
|
| | | import GameWorldBoss
|
| | | #import GameWorldActionTeHui
|
| | |
| | | import ReadChConfig
|
| | | import EventReport
|
| | | #import ReloadModule
|
| | | import MergeChildMsg
|
| | | import CrossRealmMsg
|
| | | import CrossRealmPK
|
| | | #import MergePlayer
|
| | | import PlayerFBHelpBattle
|
| | | import PlayerFamilyRedPacket
|
| | | import IpyGameDataPY
|
| | | import PlayerFamilyParty
|
| | |
| | | #__ClearTreasureDropCount()
|
| | | #记录当前时间
|
| | | GameLogInfo.Set_Server_Hour()
|
| | | |
| | | PlayerFamily.FamilyOnHour()
|
| | | return
|
| | |
|
| | | ## 触发每日事件(参数 -> 当前时间)
|
| | |
| | | PlayerGeTui.ClearFMTGeTuiLimit()
|
| | | import PlayerBourse
|
| | | PlayerBourse.OverTimeItemsDeal()
|
| | | # 仙盟联赛
|
| | | GameWorldFamilyWar.DoOnDay()
|
| | | return
|
| | |
|
| | | def OnDayEx(tick):
|
| | |
| | | #跨服广播
|
| | | #MergeBroadcast.OnBroadcastProccee(tick)
|
| | | #跨服PK匹配
|
| | | #GameWorldMergePK.OnPKMatchProcess(tick)
|
| | | CrossRealmPK.OnPKMatchProcess(tick)
|
| | | #跨服王者争霸
|
| | | #GameWorldMergeKing.OnMergeKingProcess(tick)
|
| | |
|
| | |
| | | GameWorldActionControl.Dispose_OperationActionState()
|
| | | GameWorldActionControl.Dispose_DailyActionState()
|
| | | GameWorldActionControl.Dispose_FBStateTime()
|
| | | |
| | | #跨服PK
|
| | | CrossRealmPK.OnMinuteProcess()
|
| | | #处理重开服务器后, 活动继续开启逻辑根据天数
|
| | | #GameWorldActionControl.Dispose_Action_GoOn_ByDay(tick)
|
| | | #触发世界等级
|
| | | GameWorldAverageLv.OpenWorldAverageLv()
|
| | | #倒计时离队处理
|
| | | PlayerTeam.DoCountdownLeaveTeamLogic(tick)
|
| | | |
| | | #副本助战
|
| | | PlayerFBHelpBattle.OnMinuteProcess()
|
| | | #每5分钟触发一次仙盟总战力更新
|
| | | if curMinute % 5 == 0:
|
| | | PlayerFamily.UpdFamilyTotalFightPower()
|
| | |
| | | tjgOnlineCnt += 1
|
| | | continue
|
| | |
|
| | | platform = GameWorld.GetPlayerPlatform(player.GetAccID())
|
| | | platform = GameWorld.GetPlayerPlatform(player)
|
| | | platformOLDict[platform] = platformOLDict.get(platform, 0) + 1 # 累计平台在线人数
|
| | |
|
| | | # mapID = player.GetMapID()
|
| | |
| | | # @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)
|
| | | #排序元宝交易平台
|
| | |
| | | #事件汇报初始化
|
| | | 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()
|
| | |
| | | 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()
|
| | | GameWorld.Log("服务器启动成功: ServerGroupID=%s" % serverGroupID)
|
| | | return
|
| | |
|
| | | def DoCheckNewServerOpen(tick):
|
| | |
| | |
|
| | | 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 当前时间
|
| | |
| | | # 通知开服天数
|
| | | 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)
|
| | |
| | | # 通知战盟相关活动开启状态
|
| | | 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()
|
| | |
| | | #GameWorldShopItem.OnMapServerInitOK()
|
| | |
|
| | | # 跨服PK
|
| | | #GameWorldMergePK.OnMapServerInitOK()
|
| | | CrossRealmPK.OnMapServerInitOK()
|
| | | #GameWorldMergeKing.OnMapServerInitOK()
|
| | |
|
| | | SendAllMapGlobalDropInfo() # 全局掉落控制
|
| | |
| | | def BeforeClose(tick):
|
| | | PlayerTeam.OnServerClose(tick)
|
| | | ChPlayer.SavePlayerLVData()
|
| | | PlayerFBHelpBattle.OnServerClose()
|
| | | GameWorld.Log("通知C++关服!")
|
| | | GameWorld.GetGameWorld().OnServerClose()
|
| | |
|