| | |
| | | # @change: "2014-02-27 12:00" hxp 增加世界boss逻辑
|
| | | # @change: "2014-04-26 19:30" hxp 增加领地战活动
|
| | | # @change: "2014-06-21 15:20" hxp 增加特惠活动
|
| | | # @change: "2014-08-04 17:30" xmnathan 天梯每日更新
|
| | | # @change: "2014-08-15 17:00" xmnathan 修改OnDay函数内的执行顺序
|
| | | # @change: "2014-10-08 10:30" xmnathan add 定时清理过期补偿
|
| | | # @change: "2014-10-29 22:00" hxp MapServerInitOK增加扩展key状态通知
|
| | |
| | | import CrossRealmPK
|
| | | import CrossRealmMsg
|
| | | import CrossRealmPlayer
|
| | | import CrossActionControl
|
| | | import PlayerFBHelpBattle
|
| | | import PlayerFamilyRedPacket
|
| | | import PlayerFairyDomain
|
| | | import IpyGameDataPY
|
| | | import PlayerFamilyParty
|
| | | import GameWorldFamilyWar
|
| | | import GameWorldArena
|
| | | import AuctionHouse
|
| | | import PlayerXMZZ
|
| | | import PlayerTeam
|
| | | import PyGameData
|
| | | import CrossBoss
|
| | | import ChPlayer
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | |
| | | #GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_ServerDay, openServerDay)
|
| | | #清理过期补偿
|
| | | PlayerCompensation.ClearUpTimeOutCompensation()
|
| | | PlayerGeTui.ClearFMTGeTuiLimit()
|
| | | #PlayerGeTui.ClearFMTGeTuiLimit()
|
| | | import PlayerBourse
|
| | | PlayerBourse.OverTimeItemsDeal()
|
| | | # 仙盟联赛
|
| | |
| | | CrossRealmPK.OnPKMatchProcess(tick)
|
| | |
|
| | | GameWorldBoss.DoCheckWorldBossReborn(tick)
|
| | | GameWorldBoss.ProcessBossGeTui(tick)
|
| | | PlayerGeTui.ProcessNewGuyCallBackGeTui(tick)
|
| | | #GameWorldBoss.ProcessBossGeTui(tick)
|
| | | #PlayerGeTui.ProcessNewGuyCallBackGeTui(tick)
|
| | | #组队副本版本
|
| | | PlayerTeam.DoTeamProcess(tick)
|
| | |
|
| | |
| | | #每5分钟触发一次仙盟总战力更新
|
| | | if curMinute % 5 == 0:
|
| | | PlayerFamily.UpdFamilyTotalFightPower()
|
| | | PlayerFamilyRedPacket.CheckDelRedpacketData()
|
| | | |
| | | return
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | |
| | | GameWorld.GetGameWorld().SetDict(ChConfig.Def_WorldKey_IsGameWorldInit, int(time.time()))
|
| | | #初始化游戏时钟
|
| | | GameWorld.GetGameWorld().SetTickTypeCount(ChConfig.TYPE_Tick_Count)
|
| | | #转移运营活动旧db记录key value 到 新记录
|
| | | GameWorldActionControl.TransferOperationActDBKeyValue()
|
| | | #初始话开服时间、星期几
|
| | | initOpenServerTime = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_InitOpenServerTime)
|
| | | openServerWeekday = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_OpenServerWeekday)
|
| | |
| | | ChPlayer.LoadPlayerLVData()
|
| | | #加载助战信息
|
| | | PlayerFBHelpBattle.OnServerStart()
|
| | | #本服竞技场
|
| | | GameWorldArena.OnServerStart()
|
| | | #跨服PK
|
| | | CrossRealmPK.OnGameServerInitOK()
|
| | | #红包
|
| | | PlayerFamilyRedPacket.OnServerStart()
|
| | | #世界boss被杀次数重置
|
| | | #GameWorldBoss.CheckResetBossKilledCntOnServerInit()
|
| | |
|
| | |
| | | universalRecMgr.Delete(recType)
|
| | | if recordCount:
|
| | | GameWorld.Log("DeleteRecData recType=%s, count=%s" % (recType, recordCount))
|
| | | |
| | | CrossBoss.g_bossRecDataDict = {} # 需要清除,不然会导致跨服boss通用记录缓存对象错误
|
| | | |
| | | #清 家族
|
| | | familyList = []
|
| | | familyMgr = GameWorld.GetFamilyManager()
|
| | |
| | |
|
| | | # 跨服PK
|
| | | CrossRealmPK.OnMapServerInitOK()
|
| | | # 本服竞技场
|
| | | GameWorldArena.SendMapServerArenaInfo()
|
| | |
|
| | | SendAllMapGlobalDropInfo() # 全局掉落控制
|
| | |
|
| | |
| | | if mapServerPack.GetState() not in [0,1,2,3] and curMap.GetState() != mapServerPack.GetState():
|
| | | # 记录服务器是否正常开启完毕, 避免重复发送
|
| | | GameWorld.DebugLog("MapServer_RunningStateRefresh--_%s"%([mapServerPack.GetState(), curMap.GetState(), mapServerPack.GetMapID(), curMap.GetID()]))
|
| | | SendGameError("MapError")
|
| | | GameWorld.SendGameError("MapError")
|
| | |
|
| | | curMap.SetState(mapServerPack.GetState())
|
| | | curMap.SetRefreshTick(tick)
|
| | |
|
| | | return
|
| | |
|
| | |
|
| | | def SendGameError(state):
|
| | | getUrl = ReadChConfig.GetPyMongoConfig("EventReport", "OpenStateUrl")
|
| | | groupID = ReadChConfig.GetPyMongoConfig("platform", "GroupID")
|
| | | userDBName = ReadChConfig.GetPyMongoConfig("connect", "USER_DB_NAME")
|
| | | getUrl = getUrl + "?Type=%s&groupID=%s&userDBName=%s"%(state, groupID, userDBName)
|
| | | GameWorld.GetGameWorld().EventReport_EventReport("", "", "", "", 0, getUrl)
|
| | |
|
| | | ## 刷新地图服务器状态, 如果1分钟没有状态回报, 刷新为消失状态
|
| | | # @param tick 当前时间
|
| | |
| | | curMap.SetState(IPY_GameServer.mssNone)
|
| | | if not isSendMapClose:
|
| | | # 避免多地图发送过多邮件, 如关服的时候
|
| | | SendGameError("MapDisconnect") # 状态报告
|
| | | GameWorld.SendGameError("MapDisconnect") # 状态报告
|
| | | isSendMapClose = True
|
| | |
|
| | | return
|
| | |
| | | PlayerTeam.OnServerClose(tick)
|
| | | ChPlayer.SavePlayerLVData()
|
| | | PlayerFBHelpBattle.OnServerClose()
|
| | | CrossActionControl.OnServerClose()
|
| | | PlayerFamilyRedPacket.OnServerClose()
|
| | | GameWorldArena.OnServerClose()
|
| | | GameWorld.Log("通知C++关服!")
|
| | | GameWorld.GetGameWorld().OnServerClose()
|
| | |
|
| | |
| | | def ChangeGameServerState(state):
|
| | | # 只接收大于等于mssPyError
|
| | | GameWorld.DebugLog("ChangeGameServerState:%s"%state)
|
| | | SendGameError("GameServerError")
|
| | | GameWorld.SendGameError("GameServerError")
|
| | |
|
| | | |