| | |
| | | import ShareDefine
|
| | | import PyGameData
|
| | | import BattleObj
|
| | | import ChPlayer
|
| | | import ObjPool
|
| | |
|
| | | import datetime
|
| | |
| | | ## 每秒分钟执行一次
|
| | | if not PyGameData.g_initGameTime:
|
| | | return
|
| | | if tick - PyGameData.g_highProcessTick < 1000:
|
| | | curTime = int(time.time())
|
| | | if not PyGameData.g_highProcessTime:
|
| | | PyGameData.g_highProcessTime = curTime
|
| | | |
| | | if curTime < PyGameData.g_highProcessTime:
|
| | | GameWorld.Log("时间回调了: lastProcessTime=%s" % (GameWorld.ChangeTimeNumToStr(PyGameData.g_highProcessTime)))
|
| | | PyGameData.g_highProcessTime = curTime
|
| | | OnFixServerTimeProcess()
|
| | | |
| | | passSeconds = curTime - PyGameData.g_highProcessTime
|
| | | if passSeconds < 1:
|
| | | return
|
| | | PyGameData.g_highProcessTick = tick
|
| | | if passSeconds > 10:
|
| | | GameWorld.Log("时间误差过大: passSeconds=%s,lastProcessTime=%s" % (passSeconds, GameWorld.ChangeTimeNumToStr(PyGameData.g_highProcessTime)))
|
| | | OnFixServerTimeProcess()
|
| | | |
| | | PyGameData.g_highProcessTime = curTime
|
| | |
|
| | | if PyGameData.g_serverClosing:
|
| | | CheckCloseMapOK()
|
| | |
| | |
|
| | | return
|
| | |
|
| | | def OnFixServerTimeProcess():
|
| | | |
| | | # 补同步一次服务器时间给前端
|
| | | playerManager = GameWorld.GetPlayerManager()
|
| | | for i in xrange(playerManager.GetPlayerCount()):
|
| | | curPlayer = playerManager.GetPlayerByIndex(i)
|
| | | |
| | | if not GameWorld.IsNormalPlayer(curPlayer):
|
| | | continue
|
| | | |
| | | ChPlayer.Sync_PyServerDataTimeToClient(curPlayer)
|
| | | ChPlayer.Sync_OpenServerDay(curPlayer)
|
| | | |
| | | return
|
| | | |
| | | def OnMinute(tick):
|
| | | ## 每整分钟执行一次
|
| | | curTime = GameWorld.GetCurrentTime()
|