#include "StdAfx.h" #include ".\worldlog.h" #include "User.h" #include "WorldGuild.h" WorldLog::WorldLog(void) { for(int i = 0; i < (CHAT_CHANNEL - CHAT_NORMAL) + 1; i++) { m_bLogAble[i] = FALSE; } } WorldLog::~WorldLog(void) { } VOID WorldLog::SetLogAble() { // ¼³Á¤ ÆÄÀÏ¿¡¼­ Log ¿©ºÎ¸¦ Àд´٠m_bLogAble[0] = GetPrivateProfileInt( "CHATLOG", "CHAT_NORMAL", 0, ".\\WorldServer.ini" ); m_bLogAble[1] = GetPrivateProfileInt( "CHATLOG", "CHAT_SHOUT", 0, ".\\WorldServer.ini" ); m_bLogAble[2] = GetPrivateProfileInt( "CHATLOG", "CHAT_PARTY", 0, ".\\WorldServer.ini" ); m_bLogAble[3] = GetPrivateProfileInt( "CHATLOG", "CHAT_GUILD", 0, ".\\WorldServer.ini" ); m_bLogAble[4] = GetPrivateProfileInt( "CHATLOG", "CHAT_PRIVATE", 0, ".\\WorldServer.ini" ); m_bLogAble[5] = GetPrivateProfileInt( "CHATLOG", "CHAT_FRIEND", 0, ".\\WorldServer.ini" ); m_bLogAble[6] = GetPrivateProfileInt( "CHATLOG", "CHAT_CHANNEL", 0, ".\\WorldServer.ini" ); } ////////////////////////////////////////////////////////////////////////// // äÆÃ ·Î±× // 1. ÀÏ¹Ý Ã¤ÆÃ void WorldLog::WriteNormalChat( User* pUser, int nChannelID, TCHAR* pszMsg, DWORD MaxSize ) { if( !IsRun() || !IsLogAble( CHAT_NORMAL ) ) return; if( !pUser ) return; m_ChatData.Init(); m_ChatData.SetLogType( CHAT_NORMAL ); m_ChatData.SetAccountID( pUser->GetAccountID(), ID_MAX_LEN ); m_ChatData.SetCharName( pUser->GetCharName().c_str(), MAX_CHARNAME_LENGTH ); m_ChatData.SetUserIP( pUser->GetAuthIP(), MAX_IPADDRESS_SIZE ); m_ChatData.SetMapCode( pUser->GetMapCode() ); m_ChatData.SetChannel( nChannelID ); m_ChatData.SetRoomNo( pUser->GetZoneKey() ); m_ChatData.SetUserGuid( pUser->GetGUID() ); m_ChatData.SetContext( pszMsg , MaxSize); m_LogMng.Serialize( m_ChatData ); } // 2. ¿ÜÄ¡±â void WorldLog::WriteShoutChat( User* pUser, int nChannelID, TCHAR* szChatMsg, DWORD MaxSize) { if( !IsRun() || !IsLogAble( CHAT_SHOUT ) ) return; if( !pUser ) return; m_ChatData.Init(); m_ChatData.SetLogType( CHAT_SHOUT ); m_ChatData.SetAccountID( pUser->GetAccountID(), ID_MAX_LEN ); m_ChatData.SetCharName( pUser->GetCharName().c_str(), MAX_CHARNAME_LENGTH ); m_ChatData.SetUserIP( pUser->GetAuthIP(), MAX_IPADDRESS_SIZE ); m_ChatData.SetMapCode( pUser->GetMapCode() ); m_ChatData.SetChannel( nChannelID ); m_ChatData.SetRoomNo( pUser->GetZoneKey() ); m_ChatData.SetUserGuid( pUser->GetGUID() ); m_ChatData.SetContext( szChatMsg , MaxSize ); m_LogMng.Serialize( m_ChatData ); } // 3. ÆÄƼ äÆÃ void WorldLog::WritePartyChat( User* pUser, int nChannelID, TCHAR* szChatMsg, DWORD MaxSize ) { if( !IsRun() || !IsLogAble( CHAT_PARTY ) ) return; if( !pUser ) return; m_ChatData.Init(); m_ChatData.SetLogType( CHAT_PARTY ); m_ChatData.SetAccountID( pUser->GetAccountID(), ID_MAX_LEN ); m_ChatData.SetCharName( pUser->GetCharName().c_str(), MAX_CHARNAME_LENGTH ); m_ChatData.SetUserIP( pUser->GetAuthIP(), MAX_IPADDRESS_SIZE ); m_ChatData.SetMapCode( pUser->GetMapCode() ); m_ChatData.SetChannel( nChannelID ); m_ChatData.SetRoomNo( pUser->GetZoneKey() ); m_ChatData.SetUserGuid( pUser->GetGUID() ); m_ChatData.SetContext( szChatMsg, MaxSize ); m_LogMng.Serialize( m_ChatData ); } // 4. ±æµå äÆÃ void WorldLog::WriteGuildChat( User* pUser, int nChannelID, WorldGuild* pGuild, TCHAR* szChatMsg, DWORD MaxSize) { if( !IsRun() || !IsLogAble( CHAT_GUILD ) ) return; m_ChatData.Init(); m_ChatData.SetLogType( CHAT_GUILD ); m_ChatData.SetAccountID( pUser->GetAccountID(), ID_MAX_LEN ); m_ChatData.SetCharName( pUser->GetCharName().c_str(), MAX_CHARNAME_LENGTH ); m_ChatData.SetUserIP( pUser->GetAuthIP(), MAX_IPADDRESS_SIZE ); m_ChatData.SetMapCode( pUser->GetMapCode() ); m_ChatData.SetChannel( nChannelID ); m_ChatData.SetRoomNo( pUser->GetZoneKey() ); m_ChatData.SetUserGuid( pUser->GetGUID() ); m_ChatData.SetListenUserGuid( pGuild->GetGuildGuid() ); m_ChatData.SetListenCharName( const_cast( pGuild->GetGuildName() ), MAX_GUILDNAME_LENGTH ) ; m_ChatData.SetContext( szChatMsg, MaxSize ); m_LogMng.Serialize( m_ChatData ); } // 5. ±Ó¼Ó¸» void WorldLog::WriteWhisperChat( User* pUser, int nChannelID, User* pTargetUser, TCHAR* szChatMsg, DWORD MaxSize ) { if( !IsRun() || !IsLogAble( CHAT_PRIVATE ) ) return; m_ChatData.Init(); m_ChatData.SetLogType( CHAT_PRIVATE ); m_ChatData.SetAccountID( pUser->GetAccountID(), ID_MAX_LEN ); m_ChatData.SetCharName( pUser->GetCharName().c_str(), MAX_CHARNAME_LENGTH ); m_ChatData.SetUserIP( pUser->GetAuthIP(), MAX_IPADDRESS_SIZE ); m_ChatData.SetMapCode( pUser->GetMapCode() ); m_ChatData.SetChannel( nChannelID ); m_ChatData.SetRoomNo( pUser->GetZoneKey() ); m_ChatData.SetUserGuid( pUser->GetGUID() ); m_ChatData.SetListenUserGuid( pTargetUser->GetGUID() ); m_ChatData.SetListenCharName( const_cast( pTargetUser->GetCharName().c_str()), MAX_CHARNAME_LENGTH ); m_ChatData.SetContext( szChatMsg, MaxSize ); m_LogMng.Serialize( m_ChatData ); } // 6. Ä£±¸ äÆÃ void WorldLog::WriteFriendChat( User* pUser, int nChannelID, User* pFriend, TCHAR* szChatMsg, DWORD MaxSize ) { if( !IsRun() || !IsLogAble( CHAT_FRIEND ) ) return; m_ChatData.Init(); m_ChatData.SetLogType( CHAT_FRIEND ); m_ChatData.SetAccountID( pUser->GetAccountID(), ID_MAX_LEN ); m_ChatData.SetCharName( pUser->GetCharName().c_str(), MAX_CHARNAME_LENGTH ); m_ChatData.SetUserIP( pUser->GetAuthIP(), MAX_IPADDRESS_SIZE ); m_ChatData.SetMapCode( pUser->GetMapCode() ); m_ChatData.SetChannel( nChannelID ); m_ChatData.SetRoomNo( pUser->GetZoneKey() ); m_ChatData.SetUserGuid( pUser->GetGUID() ); m_ChatData.SetListenUserGuid( pFriend->GetGUID() ); m_ChatData.SetListenCharName( const_cast( pFriend->GetCharName().c_str() ), MAX_CHARNAME_LENGTH ); m_ChatData.SetContext( szChatMsg, MaxSize ); m_LogMng.Serialize( m_ChatData ); } void WorldLog::WriteChannelChat(User* pUser, int nChannelID, TCHAR* ptszChatMsg, DWORD dwMaxSize) { if(!IsRun() || !IsLogAble(CHAT_CHANNEL)) return; m_ChatData.Init(); m_ChatData.SetLogType(CHAT_CHANNEL); m_ChatData.SetAccountID(pUser->GetAccountID(), ID_MAX_LEN); m_ChatData.SetCharName(pUser->GetCharName().c_str(), MAX_CHARNAME_LENGTH); m_ChatData.SetUserIP(pUser->GetAuthIP(), MAX_IPADDRESS_SIZE); m_ChatData.SetMapCode( pUser->GetMapCode() ); m_ChatData.SetChannel( nChannelID ); m_ChatData.SetRoomNo( pUser->GetZoneKey() ); m_ChatData.SetUserGuid( pUser->GetGUID() ); m_ChatData.SetContext( ptszChatMsg, dwMaxSize ); m_LogMng.Serialize( m_ChatData ); } ////////////////////////////////////////////////////////////////////////// // ÇÏÀÓ ·Î±× //ÇÏÀÓ·Î¶Ç Á¤»ê ·Î±× void WorldLog::LogSettleHeimLotto(int log_type, User* user, CHARGUID char_guid, WORD draw_num, BYTE winner_grade, MONEY amount_cost) { if (!IsRun()) { return; } assert(log_type >= MONEY_TOTAL && log_type < MONEY_MAX); m_MoneyData.Init(); m_MoneyData.SetLogType(log_type); if (user != NULL) { m_MoneyData.SetAccountID(user->GetAccountID(), ID_MAX_LEN); m_MoneyData.SetCharName(user->GetCharName().c_str(), MAX_CHARNAME_LENGTH); m_MoneyData.SetUserIP(user->GetAuthIP(), MAX_IPADDRESS_SIZE ); } if (log_type == MONEY_HEIM_LOTTO_SETTLE_RESULT) { _sntprintf(m_pTmpBuffer, MAX_ADDINFO_SIZE, "CharId:%d,Round:%d,Grade:%d,Money:%I64u", char_guid, draw_num, winner_grade, amount_cost); m_pTmpBuffer[_countof(m_pTmpBuffer) - 1] = '\0'; m_MoneyData.AddAddInfo(m_pTmpBuffer); } m_LogMng.Serialize(m_MoneyData); } ////////////////////////////////////////////////////////////////////////// // ¾×¼Ç ·Î±× // implemented by _NA_1798_20110114_SYSTEM_MEMO_ADDITIONAL_LOGGING void WorldLog::LogAction(int log_type, User* user, const TCHAR* char_name, const TCHAR* additional_info) { if (!IsRun()) { return; } assert(log_type >= ACT_CREATE_CHAR && log_type < ACT_MAX); m_ActionData.Init(); m_ActionData.SetLogType(log_type); if (user != NULL) { m_ActionData.SetAccountID(user->GetAccountID(), ID_MAX_LEN); m_ActionData.SetUserIP(user->GetAuthIP(), MAX_IPADDRESS_SIZE); m_ActionData.SetCharName(user->GetCharName().c_str(), MAX_CHARNAME_LENGTH); m_ActionData.SetMapCode(user->GetMapCode()); } else if (char_name != NULL) { m_ActionData.SetCharName(char_name, MAX_CHARNAME_LENGTH); } if (additional_info != NULL) { m_ActionData.AddAddInfo(const_cast(additional_info)); } m_LogMng.Serialize(m_ActionData); } #ifdef _NA_008283_20150511_NOTIFICATIONS_SYSTEM void WorldLog::LogNotification( NotificationInfo& notification ) { if (!IsRun()) { return; } m_ActionData.Init(); m_ActionData.SetLogType(ACT_NOTIFICATION_MESSAGE); m_ActionData.SetCharName(notification.m_char_name, MAX_CHARNAME_LENGTH); m_ActionData.SetMapCode(notification.m_map_code); _sntprintf(m_pTmpBuffer, MAX_ADDINFO_SIZE, "Type:%d, ItemCode:%d(%d) Time:%d", notification.m_notification_type, notification.m_item_code, notification.m_optione_value1, notification.m_time); m_pTmpBuffer[_countof(m_pTmpBuffer) - 1] = '\0'; m_ActionData.AddAddInfo(m_pTmpBuffer); m_LogMng.Serialize(m_ActionData); } #endif // _NA_008283_20150511_NOTIFICATIONS_SYSTEM