#!/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