// GameResourceInterface.cpp // (SUN_SECURE) #include "stdafx.h" #ifdef __NA000630_070817_MOLA_5th_UPDATE #include "CryptManager_4Client.h" #include "IGameResourceInClient.h" #include #include #undef DECL_GRES_HASH #define DECL_GRES_HASH(name, val, val2) \ uREG_NODE IWzGResTableInClient::##name(uREG_NODE* pARGs) //¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦´ // ±âº» Æ÷¸Ë // typedef uREG_PV (*IGResHandler)(uREG_NODE*); // uREG_NODE : { ARG0, ARG1, ARG2, ARG3 } // (~~) // uREG_NODE : { ... } // uREG_NODE : { NULL, NULL, NULL, NULL } // (NONE) // uREG_NODE : { NULL, NULL, NULL, NULL } DECL_GRES_HASH(EMPTY_CODE , 001, 001) { uREG_NODE uRET; ZeroMemory(&uRET, sizeof(uRET)); uRET.EX = TRUE; return uRET; } // uREG_NODE : { BYTE*, NULL, NULL, NULL } // ARG0.PTRB[0] = HIGH, ARG0.PTRB[1] = MIDDLE, ARG0.PTRB[2] = LOW // uREG_NODE : uRET { TRUE } DECL_GRES_HASH(GET_PROTOCOL_VERSION_A , 002, 002) { uREG_NODE uRET; pARGs->PTRB[0] = C2S_HIGH_VERSION_NO; pARGs->PTRB[1] = C2S_MIDDLE_VERSION_NO; pARGs->PTRB[2] = C2S_LOW_VERSION_NO; uRET.EX = TRUE; return uRET; } // uREG_NODE : { NULL, NULL, NULL, NULL } // uRET.ARRAY[0] = HIGH, uRET.ARRAY[1] = MIDDLE, uRET.ARRAY[2] = LOW, uRET.ARRAY[3] = CATEGORY_GENERATOR_250 // uREG_NODE : uRET DECL_GRES_HASH(GET_PROTOCOL_VERSION_B , 002, 003) { uREG_NODE uRET; uRET.ARRAY[0].EX = C2S_HIGH_VERSION_NO; uRET.ARRAY[1].EX = C2S_MIDDLE_VERSION_NO; uRET.ARRAY[2].EX = C2S_LOW_VERSION_NO; uRET.ARRAY[3].EX = CATEGORY_GENERATOR_250; return uRET; } // uREG_NODE : { NULL, NULL, NULL, NULL } // uRET.EX = CryptManager::GetMolaProtocolCRC() // uREG_NODE : uRET DECL_GRES_HASH(GET_MOLA_PROTOCOL_CRC , 003, 001) { uREG_NODE uRET; uRET.EX = CryptManager::GetMolaProtocolCRC(); return uRET; } // uREG_NODE : { NULL, NULL, NULL, NULL } // uRET.EX = NATION_CODE+CATEGORY_ODD_NUMBER // uREG_NODE : uRET DECL_GRES_HASH(GET_NATION_CODE_A , 003, 003) { uREG_NODE uRET; uRET.EX = NATION_CODE + CATEGORY_ODD_NUMBER; return uRET; } // uREG_NODE : { NULL, NULL, NULL, NULL } // uRET.EX = NATION_CODE+PROTOCOL_ODD_NUMBER // uREG_NODE : uRET DECL_GRES_HASH(GET_NATION_CODE_B , 004, 004) { uREG_NODE uRET; uRET.EX = NATION_CODE + PROTOCOL_ODD_NUMBER; return uRET; } // uREG_NODE : { º°µµ Á¤ÀÇ } // (º°µµ Á¤ÀÇ) // uREG_NODE : { º°µµ Á¤ÀÇ } DECL_GRES_HASH(CALCULATION_T1 , 005, 005) { uREG_NODE uRET; ZeroMemory(&uRET, sizeof(uRET)); return uRET; } // uREG_NODE : { º°µµ Á¤ÀÇ } // (º°µµ Á¤ÀÇ) // uREG_NODE : { º°µµ Á¤ÀÇ } DECL_GRES_HASH(CALCULATION_T2 , 006, 006) { uREG_NODE uRET; ZeroMemory(&uRET, sizeof(uRET)); return uRET; } // uREG_NODE : { º°µµ Á¤ÀÇ } // (º°µµ Á¤ÀÇ) // uREG_NODE : { º°µµ Á¤ÀÇ } DECL_GRES_HASH(CALCULATION_T3 , 007, 007) { uREG_NODE uRET; ZeroMemory(&uRET, sizeof(uRET)); return uRET; } // uREG_NODE : { º°µµ Á¤ÀÇ } // (º°µµ Á¤ÀÇ) // uREG_NODE : { º°µµ Á¤ÀÇ } DECL_GRES_HASH(CALCULATION_T4 , 008, 008) { uREG_NODE uRET; ZeroMemory(&uRET, sizeof(uRET)); return uRET; } // uREG_NODE : { º°µµ Á¤ÀÇ } // (º°µµ Á¤ÀÇ) // uREG_NODE : { º°µµ Á¤ÀÇ } DECL_GRES_HASH(CALCULATION_T5 , 009, 009) { uREG_NODE uRET; ZeroMemory(&uRET, sizeof(uRET)); return uRET; } // uREG_NODE : { NULL, NULL, NULL, NULL } // uRET.EX = GetTickCount() // uREG_NODE : uRET DECL_GRES_HASH(GET_TICK_COUNT , 011, 011) { uREG_NODE uRET; uRET.EX = GetTickCount(); return uRET; } // uREG_NODE : { NULL, NULL, NULL, NULL } // uRET.PTR = ([GAMESERVER][SEND_INFO].CProtocolCryptography *) // uREG_NODE : uRET DECL_GRES_HASH(NETWORK_GET_GAME_SEND_CLIENT_CRYPT_INFO , 012, 012) { uREG_NODE uRET; #if defined(_SERVER) #elif defined(WISE_BASE) WiseUser* pUser = UserSessionMgr::GetActiveTransactionWiseUser(); if(pUser) { UserSessionMgr& rMGR = pUser->GetSessionMgr(); ServerSession* pSession = rMGR.GetSession(AGENT_SESSION); if(pSession) { ClientSecurePackNode4Session& rSESSION = pSession->SECURE_PACK(); uRET.PTR = &rSESSION.SEND_CRYPT_PACKET_INFO(); return uRET; } } #else //CLIENT #endif // uRET.PTR = NULL; return uRET; } // uREG_NODE : { NULL, NULL, NULL, NULL } // uRET.PTR = ([GAMESERVER][RECV_INFO].CProtocolCryptography *) // uREG_NODE : uRET DECL_GRES_HASH(NETWORK_GET_GAME_RECV_CLIENT_CRYPT_INFO , 012, 013) { uREG_NODE uRET; #if defined(_SERVER) #elif defined(WISE_BASE) WiseUser* pUser = UserSessionMgr::GetActiveTransactionWiseUser(); if(pUser) { UserSessionMgr& rMGR = pUser->GetSessionMgr(); ServerSession* pSession = rMGR.GetSession(AGENT_SESSION); if(pSession) { ClientSecurePackNode4Session& rSESSION = pSession->SECURE_PACK(); uRET.PTR = &rSESSION.RECV_CRYPT_PACKET_INFO(); return uRET; } } #else //CLIENT #endif uRET.PTR = NULL; return uRET; } // uREG_NODE : { PVOID, WORD, NULL, NULL } // uRET.EX = GlobalFunc::SendPacket(CI_GAMESERVERIDX, pARGs->ARRAY[0].PTR, pARGs->ARRAY[1].EX); // uREG_NODE : uRET DECL_GRES_HASH(NETWORK_SENDPACKET_TO_GAMESERVER , 014, 014) { uREG_NODE uRET; #if defined(_SERVER) && !defined(WISE_BASE) User* pUser = GetActiveTransactionUser(); MSG_BASE*& rpMSG = (MSG_BASE*)pARGs->ARRAY[0].PTR; WORD rwSize = (WORD)pARGs->ARRAY[1].EX; if(pUser && pMSG && rwSize) { if(pUser->SendPacket(pMSG, rwSize)) { uRET.EX = TRUE; return uRET; } } #elif defined(WISE_BASE) WiseUser* pUser = UserSessionMgr::GetActiveTransactionWiseUser(); MSG_BASE* pMSG = (MSG_BASE*)pARGs->ARRAY[0].PTR; WORD rwSize = (WORD)pARGs->ARRAY[1].VAL; if(pUser && pMSG && rwSize) { UserSessionMgr& rMGR = pUser->GetSessionMgr(); uRET.EX = rMGR.SendPacket(AGENT_SESSION, pMSG, rwSize); return uRET; } #else //CLIENT #endif uRET.EX = FALSE; return uRET; } // uREG_NODE : { CHAR buffer[17], WORD, NULL, NULL } // strncpy(pARGs->PTRC, (CHARNAME*), 16); pARGs->PTRC[16] = '\0'; // uREG_NODE : uRET DECL_GRES_HASH(GET_USER_ID , 015, 015) { uREG_NODE uRET; //strncpy(pARG->PTRC, (CHARNAME*), 16); pARG->PTRC[16] = '\0'; #if defined(_SERVER) && !defined(WISE_BASE) if(GetActiveTransactionUser()) { strncpy(pARGs->PTRC, GetActiveTransactionUser()->GetUserID(), 16); pARGs->PTRC[16] = '\0'; uRET.EX = TRUE; } #elif defined(WISE_BASE) #else //CLIENT #endif // uRET.EX = FALSE; return uRET; } //DECL_GRES_HASH(GET_C2S_GAME_SENDCRYPT_INFO_DATA , 100, 100) //DECL_GRES_HASH(GET_C2S_GAME_RECVCRYPT_INFO_DATA , 101, 101) //DECL_GRES_HASH(GET_CHAR_MOVSPD_IN_DATA , 102, 102) //DECL_GRES_HASH(GET_CHAR_MOVSPD_IN_GAME , 103, 103) //DECL_GRES_HASH(GET_S2C_AGENT_SENDCRYPT_INFO_DATA , 104, 104) //DECL_GRES_HASH(GET_S2C_AGENT_RECVCRYPT_INFO_DATA , 105, 105) #undef DECL_GRES_HASH //}; #endif //__NA000630_070817_MOLA_5th_UPDATE