#pragma once #include #include #include #include #include #include using namespace std; //ÀÎþƮ½Ã »ç¿ë º¸¼®Á¤º¸ struct COMPOSITEMATERIAL { int nMaterialCode; WORD wCntMaterial; }; //¾ÆÀÌÅÛ°Å·¡½Ã »ç¿ëµÇ´Â ¾ÆÀÌÅÛ Á¤º¸ struct ITEMLOGINFO { int nItemCode; int nItemSerial; int nItemCount; DWORD dwMoney; }; enum eREGULAR_LOGTYPE { REGULAR_SKILL = 0, }; //Thread Argument unsigned int __stdcall SkillWorkThread(void* pArg); //°ÔÀÓ·Î±× ÀÎÅÍÆäÀ̽º Ŭ·¡½º class CGameLog { public: CGameLog(void); ~CGameLog(void); private: CWriteLogMgr m_LogMng; WZTime m_Time; BOOL m_bWriteText; public: BOOL Init( TCHAR* pszDirName = NULL, TCHAR* pszFilenamePrefix = NULL, TCHAR* pszTextDirName = NULL ); void WriteBaseData( BaseData* pData, TCHAR* szAccountID, TCHAR* szCharName ); ////////////////////////////////////////////////////////////////////////// // °æÇèÄ¡ ·Î±× // 1. ·¹º§¾÷ ·Î±× void WriteLevelUp( TCHAR* szAccountID, TCHAR* szCharName, int nServerCode, DWORD dwOldExp, DWORD dwNewExp, WORD wOldLevel, WORD wNewLevel ); // 2. ·¹º§ 50ÀÌ»ó½Ã °æÇèÄ¡ 10µîºÐ ·Î±× void WriteDivideExp( TCHAR* szAccountID, TCHAR* szCharName, int nServerCode, DWORD dwOldExp, DWORD dwNewExp, WORD wOldLevel, WORD wNewLevel, WORD wDivideCount ); // 3. °æÇèÄ¡ Ãß°¡/´Ù¿î void WriteDownExp( TCHAR* szAccountID, TCHAR* szCharName, int nServerCode, DWORD dwTotalExp, DWORD dwChangeExp, WORD wLevel ); ////////////////////////////////////////////////////////////////////////// // ¾ÆÀÌÅÛ ·Î±× // 1. ¾ÆÀÌÅÛ µå·Ó(¶¥¿¡ ¶³±À) °ú Áݱâ void WriteItemOwner( TCHAR* szAccountID, TCHAR* szCharName, int nServerCode, BOOL bOwner, int nItemCode, int nItemSerial, int nItemCount, int nMapCode, int nPosX, int nPosY, int nPosZ); // 2. ÀÎþƮ ¼º°ø/½ÇÆÐ void WriteEnchantResult( TCHAR* szAccountID, TCHAR* szCharName, int nServerCode, BOOL bSuccess, int nItemCode, int nItemSerial, vector vecMatInfo ); // 3. NPC¿ÍÀÇ °Å·¡ void WriteItemTradeWithNPC( TCHAR* szAccountID, TCHAR* szCharName, int nServerCode, BOOL bSell, int nItemCode, int nItemSerial, int nItemCount, DWORD dwMoney ); // 4. ¾ÆÀÌÅÛ °³Àΰŷ¡ void WriteItemTradeWithPlayer( TCHAR* szPlayer1_ID, TCHAR* szPlayer1_CharName, int nServerCode, BOOL bGive, ITEMLOGINFO ItemInfo, TCHAR* szPlayer2_ID, TCHAR* szPlayer2_CharName); // 5. µ· °³Àΰŷ¡ void WriteMoneyTradeWithPlayer( TCHAR* szPlayer1_ID, TCHAR* szPlayer1_CharName, int nServerCode, BOOL bGive, DWORD dwMoney, TCHAR* szPlayer2_ID, TCHAR* szPlayer2_CharName); // 6. °³ÀλóÁ¡ °Å·¡ void WriteItemVendorWithPlayer( TCHAR* szPlayer1_ID, TCHAR* szPlayer1_CharName, int nServerCode, BOOL bSell, ITEMLOGINFO ItemInfo, DWORD dwMoney, TCHAR* szPlayer2_ID, TCHAR* szPlayer2_CharName); // 7. ¾ÆÀÌÅÛ ·©Å©¾÷ void WriteItemRankUpResult( TCHAR* szPlayer1_ID, TCHAR* szPlayer1_CharName, int nServerCode, ITEMLOGINFO ItemInfo, DWORD dwMoney, BOOL bCreateSocket ); // 8. â°í¿¡ ¸Â±â±â / ã±â void WriteItemMoveInWareHouse( TCHAR* szAccountID, TCHAR* szCharName, int nServerCode, BOOL bKeep, ITEMLOGINFO ItemInfo ); // 9. ÀÎþƮ ½Ãµµ void WriteEnchantStart( TCHAR* szAccountID, TCHAR* szCharName, int nServerCode, vector vecMatInfo ); // 10. ¸ó½ºÅÍ ¾ÆÀÌÅÛ µå¶ø void WriteMonsterItemDrop( int nServerCode, ITEMLOGINFO ItemInfo, DWORD dwMonsterCode, DWORD dwMonsterLevel, int nMapCode, int nPosX, int nPosY, int nPosZ ); // 11. ¾ÆÀÌÅÛ °³Àΰŷ¡ ¿äû / ½ÂÀÎ / ¿äû°ÅºÎ void WriteItemTradeStatus( TCHAR* szPlayer1_ID, TCHAR* szPlayer1_CharName, int nServerCode, TCHAR* szPlayer2_ID, TCHAR* szPlayer2_CharName, int nType ); // 12. °³ÀλóÁ¡ °³¼³/Æó¼â void WriteItemVendorStatus( TCHAR* szAccountID, TCHAR* szCharName, int nServerCode, BOOL bOpen, DWORD dwMoney, int nMapCode, int nPosX, int nPosY, int nPosZ ); // 13. °³ÀλóÁ¡ º¸±â void WriteViewItemVendor( TCHAR* szPlayer1_ID, TCHAR* szPlayer1_CharName, int nServerCode, TCHAR* szPlayer2_ID, TCHAR* szPlayer2_CharName ); // 14. â°í Á¤º¸ void WriteWareHouseInfo( TCHAR* szAccountID, TCHAR* szCharName, int nServerCode, vector vecItem, DWORD dwMoney ); // 15. °³ÀλóÁ¡ Á¤º¸ void WriteVendorInfo( TCHAR* szAccountID, TCHAR* szCharName, int nServerCode, vector vecItem ); ////////////////////////////////////////////////////////////////////////// // À¯Àú¾×¼Ç ·Î±× // 1. ºÎȰ ·Î±× void WritePlayerResurrection( TCHAR* szAccountID, TCHAR* szCharName, int nServerCode, DWORD dwExp, int nMapCode, int nPosX, int nPosY, int nPosZ ); // 2. »ç¸Á ·Î±× void WritePlayerDead( TCHAR* szAccountID, TCHAR* szCharName, int nServerCode, DWORD dwExp, int nMapCode, int nPosX, int nPosY, int nPosZ ); // 3. ·Î±×Àνà Àκ¥Å丮 Á¤º¸ ³²±â±â void WriteInvenInfoOnLogin( TCHAR* szAccountID, TCHAR* szCharName, int nServerCode ); // 4. ½ºÅÝ»ç¿ë ·Î±× void WriteUseStat( TCHAR* szAccountID, TCHAR* szCharName, int nServerCode, byte byStatType ); // 5. ij¸¯ÅÍ »ý¼º void WriteCharacter( TCHAR* szAccountID, TCHAR* szCharName, int nServerCode, BOOL bCreate ); // 6. ¸¶À»·Î À̵¿ void WriteMoveVillage( TCHAR* szAccountID, TCHAR* szCharName, int nServerCode, int nMapCode ); // 7. ½ºÅ³·¹º§¾÷ void WriteSkillLevelUp( TCHAR* szAccountID, TCHAR* szCharName, int nServerCode, int nSkillCode, BOOL bLevelUp ); ////////////////////////////////////////////////////////////////////////// // ¼¼¼Ç ·Î±× // 1. Ç÷¹ÀÌ¾î ·Î±×ÀÎ void WritePlayerLogin( TCHAR* szAccountID, TCHAR* szCharName, int nServerCode, TCHAR* szIP, WORD wClass, WORD wLevel ); // 2. Ç÷¹ÀÌ¾î ·Î±×ÀÎ ½ÇÆÐ void WritePlayerLoginFail( TCHAR* szAccountID, TCHAR* szCharName, int nServerCode, TCHAR* szIP ); // 3. ·Î±×¾Æ¿ô void WritePlayerLogOut( TCHAR* szAccountID, TCHAR* szCharName, int nServerCode, TCHAR* szIP, TCHAR* szLoginTime, WORD wClass, WORD wLevel ); // 4. ij¸¯ÅÍ Á¢¼Ó / Á¾·á void WriteCharConnect( TCHAR* szAccountID, TCHAR* szCharName, int nServerCode, BOOL bConnect ); ////////////////////////////////////////////////////////////////////////// // äÆÃ ·Î±× // 1. ¸¶À» äÆÃ void WriteVillageChat( TCHAR* szAccountID, TCHAR* szCharName, int nServerCode, short sMapCode, TCHAR* szChatMsg ); // 2. ¿ÜÄ¡±â void WriteShoutChat( TCHAR* szAccountID, TCHAR* szCharName, int nServerCode, short sMapCode, TCHAR* szChatMsg ); // 3. ¹èƲÁ¸ äÆÃ void WriteBattleZoneChat( TCHAR* szAccountID, TCHAR* szCharName, int nRoomNo, int nServerCode, short sMapCode, TCHAR* szChatMsg ); // 4. ±æµå äÆÃ void WriteGuildChat( TCHAR* szAccountID, TCHAR* szCharName, TCHAR* szGuildName, int nServerCode, short sMapCode, TCHAR* szChatMsg ); // 5. ±Ó¼Ó¸» void WriteWhisperChat( TCHAR* szAccountID, TCHAR* szCharName, TCHAR* szRecvCharName, int nServerCode, TCHAR* szChatMsg ); // 6. Ä£±¸ äÆÃ(1:1 äÆÃ) void WriteFriendChat( TCHAR* szAccountID, TCHAR* szCharName, TCHAR* szRecvCharName, int nServerCode, TCHAR* szChatMsg ); ////////////////////////////////////////////////////////////////////////// // Á¤±âÀûÀÎ °ÔÀÓ·Î±× void StartRegularLog( int nLogType ); ////////////////////////////////////////////////////////////////////////// // Á¤±âÀûÀÎ °ÔÀÓ·Î±× ¾²·¹µå friend unsigned int __stdcall SkillWorkThread(void* pArg); };