#!/usr/bin/python
|
# -*- coding: GBK -*-
|
|
##@package GameLogInfo
|
# ·þÎñÆ÷¶ËÐÅÏ¢¼Ç¼
|
#
|
# @author Mark
|
# @date 2010-4-28
|
# @version 1.0
|
#
|
# ÐÞ¸Äʱ¼ä ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ
|
# VER = "2010-05-12 18:30" zhengyang Ìí¼Ó×¢ÊÍ
|
#
|
# Ä£¿éÏêϸ˵Ã÷
|
#·þÎñÆ÷¶ËÐÅÏ¢¼Ç¼
|
#---------------------------------------------------------------------
|
#µ¼Èë
|
import GameWorld
|
import time
|
#---------------------------------------------------------------------
|
#È«¾Ö±äÁ¿
|
#---------------------------------------------------------------------
|
|
#---------------------------------------------------------------------
|
#Â߼ʵÏÖ
|
#===============================================================================
|
# MapServer²ÎÊýͳ¼Æ(ÿ¸ömapServer¶ÀÁ¢¼Ç¼)
|
# ÿÈÕNPC´¦ÀíÂß¼´¦Àí×ܺÄʱms 'NPCLogicTime'
|
# ÿÈÕÈÎÎñ´¦ÀíÂß¼×ܺÄʱms 'MissionTime'
|
# ÿÈÕÍæ¼ÒÂß¼´¦Àí×ܺÄʱms 'PlayerLogicTime'
|
# ÈÎÎñµÄÇëÇó´ÎÊý 'MissionCount'
|
#===============================================================================
|
Def_LogInfo_NPCLogicTime = 'NPCLogicTime'
|
Def_LogInfo_MissionTime = 'MissionTime'
|
Def_LogInfo_PlayerLogicTime = 'PlayerLogicTime'
|
Def_LogInfo_MissionCount = 'MissionCount'
|
Def_LogInfo_PlayerSight = 'PlayerSightRefresh' #Õâ¸öC++±£´æµÄ
|
|
#×Ü±í£¬ÐèÒª¼Ç¼ËùÓеÄkey
|
Def_LogInfo_Key_List = [
|
Def_LogInfo_NPCLogicTime , Def_LogInfo_MissionTime ,
|
Def_LogInfo_PlayerLogicTime , Def_LogInfo_MissionCount,
|
Def_LogInfo_PlayerSight ,
|
]
|
|
## »ñµÃ¼Ç¼¹ÜÀíÆ÷
|
# @param ÎÞ
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def GetLogInfoManager():
|
return GameWorld.GetGameWorld().GetDBMapServerInfoManager()
|
|
## ÿÈÕNPC´¦ÀíÂß¼´¦Àí×ܺÄʱms
|
# @param startClock ʱ¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def LogInfo_NPCLogicTime( startClock ):
|
return
|
__DoLogic_LogInfo_MS( Def_LogInfo_NPCLogicTime , startClock )
|
return
|
|
## ÿÈÕÈÎÎñ´¦ÀíÂß¼×ܺÄʱms
|
# @param startClock ʱ¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def LogInfo_MissionTime( startClock ):
|
return
|
__DoLogic_LogInfo_MS( Def_LogInfo_MissionTime , startClock )
|
return
|
|
## ÿÈÕÍæ¼ÒÂß¼´¦Àí×ܺÄʱms
|
# @param startClock ʱ¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def LogInfo_PlayerLogicTime( startClock ):
|
return
|
__DoLogic_LogInfo_MS( Def_LogInfo_PlayerLogicTime , startClock )
|
return
|
|
## ÈÎÎñµÄÇëÇó´ÎÊý
|
# @param value ÇëÇó´ÎÊý
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def LogInfo_MissionCount( value ):
|
return
|
__DoLogic_LogInfo_Count( Def_LogInfo_MissionCount , value )
|
return
|
|
## Ö´ÐмǼÂß¼,(ºÁÃë)
|
# @param key
|
# @param startClock ʱ¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def __DoLogic_LogInfo_MS( key , startClock ):
|
lastClock = __GetLastClock( key , startClock )
|
__SaveLogInfo( key , lastClock )
|
return
|
|
## Ö´ÐмǼÂß¼,(´ÎÊý)
|
# @param key
|
# @param value ´ÎÊý
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def __DoLogic_LogInfo_Count( key , value ):
|
__SaveLogInfo( key , value )
|
return
|
|
## »ñµÃ³ÖÐøÊ±¼ä
|
# @param key
|
# @param timeClock ʱ¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def __GetLastClock( key , timeClock ):
|
lastClock = time.clock() - timeClock
|
|
if lastClock < 0 :
|
GameWorld.Log('###¼Ç¼key = %s , tick = %s , Òì³£'%( key , timeClock ))
|
return 0
|
|
#¼Ç¼ΪºÁÃë
|
return int( lastClock * 1000 )
|
|
## Ö´ÐмǼÂß¼
|
# @param key
|
# @param addValue ¼Ç¼¸½¼ÓÖµ
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def __SaveLogInfo( key , addValue ):
|
return
|
if addValue <= 0:
|
return
|
|
info = GetLogInfoManager().GetDBMapServerInfo( GameWorld.GetMap().GetMapID() , key )
|
info.SetValue( info.GetValue() + addValue )
|
return
|
|
## Çå¿ÕËùÓмǼÐÅÏ¢
|
# @param ÎÞ
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def ClearGameLogInfo():
|
#»ñµÃÐÅÏ¢¹ÜÀíÆ÷
|
infoManager = GetLogInfoManager()
|
|
for key in Def_LogInfo_Key_List:
|
__DoLogic_ClearGameLogInfo( key , infoManager )
|
|
#GameWorld.Log('SaveAndClearGameLogInfo_Success')
|
return
|
|
## Çå¿ÕÓÎÏ·logÐÅÏ¢
|
# @param key
|
# @param infoManager log¹ÜÀíÆ÷
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def __DoLogic_ClearGameLogInfo( key , infoManager ):
|
info = infoManager.GetDBMapServerInfo( GameWorld.GetGameWorld().GetRealMapID() , key )
|
#Ïȱ£´æ
|
#info.DataServer_SaveInfo()
|
#ÔÚÇå¿Õ
|
info.SetValue( 0 )
|
return
|