Files
Sun1602/Tools/UpdateModule/PacketStruct.h
T
2022-10-26 12:25:11 +08:00

121 lines
3.1 KiB
C++

#pragma once
/// 카테고리
enum eMO_CATEGORY
{
MO_OPERATION = 0,
};
/// 프로토콜
enum eMO_OPERATION_PROTOCOL
{
/*
MO_RELOAD_DATA_SYN,
*/
MO_RTTG_CERTIFY_REQ = 0x01,
MO_RTTG_CERTIFY_ANS = 0x02,
MO_RTTG_GAMENOTICE_REQ = 0x03,
MO_RTTG_GAMENOTICE_ANS = 0x04,
MO_RTTG_GAMEADMINLIST_REQ = 0x05,
MO_RTTG_GAMEADMINLIST_ANS = 0x06,
MO_RTTG_GAMEADMINADD_NTF = 0x07,
MO_RTTG_GAMEADMINREMOVE_NTF = 0x08,
MO_RTTG_DROPUSER_REQ = 0x09,
MO_RTTG_DROPUSER_ANS = 0x0A,
MO_RTTG_USERCOUNT_NTF = 0x0B,
// MO_RTTG_USERMONEY_NTF = 0x0C, // 돈~
MO_RTTG_BATTLEZONEINFO_REQ = 0x0C,
MO_RTTG_BATTLEZONEINFO_ANS = 0x0D,
MO_RTTG_ARMORKIT_FINDHACK_NTF = 0x0E,
MO_RTTG_USERMONEY_REQ = 0x0F, // 돈~
MO_RTTG_USERMONEY_ANS = 0x10,
MO_RTTG_ABUSING_NTF = 0x11, // abuse alarm
MO_RTTG_SERVERSHUTDOWN_REQ = 0x12, // 서버 정상종료 요청
MO_RTTG_SERVERSHUTDOWN_ANS = 0x13, // 서버 정상종료 통보
MO_RTTG_PATCHRESULT_REQ = 0x14, // 서버 패치 결과 요청
MO_RTTG_PATCHRESULT_ANS = 0x15, // 서버 패치 결과 통보
MO_RTTG_GMSCOMMAND_REQ = 0xF0,
MO_RTTG_GMSCOMMAND_ANS = 0xF1,
};
class HDRMessageID4
{
public:
BYTE byCategory;
BYTE byMessageID;
};
class MSG_HEADER4
{
public:
WORD wSize; // HEADER 크기를 제외한 Payload 사이즈
union
{
WORD wID; // Message ID
HDRMessageID4 hdrID;
};
};
#define SIZEOFHDR 2
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
// Redirection : RTTA → General
// Description : 패치 결과의 통보를 요청한다.
class MSG_MO_RTTG_PATCHRESULT_REQ : public MSG_HEADER4
{
public:
MSG_MO_RTTG_PATCHRESULT_REQ()
{
wSize = sizeof( MSG_MO_RTTG_PATCHRESULT_REQ ) - SIZEOFHDR;
hdrID.byCategory = MO_OPERATION;
hdrID.byMessageID = MO_RTTG_PATCHRESULT_REQ;
}
~MSG_MO_RTTG_PATCHRESULT_REQ()
{
}
DWORD dwKey; // RTT 내에서 사용하는 전용필드
};
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
// Redirection : General → RTTA
// Description : 패치 결과를 통보한다.
class MSG_MO_RTTG_PATCHRESULT_ANS : public MSG_HEADER4
{
public:
static const DWORD ERROR_PATCHSUCCESS = 0x00; // 패치 성공
static const DWORD ERROR_PROCESSRUN = 0x01; // 해당 프로세스 실행중
static const DWORD ERROR_FTPCONNECT_FAIL = 0x02; // ftp 연결 오류
static const DWORD ERROR_DOWNLOAD_FAIL = 0x03; // 파일 받기 오류
static const DWORD ERROR_FILENOTFOUND = 0x04; // 패치파일 찾기 오류
static const DWORD ERROR_INVALID_SERVERTYPE = 0x05; // 잘못된 서버 타입
static const DWORD ERROR_LASTEST_VERSION = 0x06; // 이미 최신 버전입니다
static const DWORD ERROR_PATCHFAIL = 0x07; // 패치 실패
public:
MSG_MO_RTTG_PATCHRESULT_ANS()
{
wSize = sizeof( MSG_MO_RTTG_PATCHRESULT_ANS ) - SIZEOFHDR;
hdrID.byCategory = MO_OPERATION;
hdrID.byMessageID = MO_RTTG_PATCHRESULT_ANS;
}
~MSG_MO_RTTG_PATCHRESULT_ANS() {}
DWORD dwKey; // RTT 내에서 사용하는 전용필드
DWORD dwError; // 0 : 성공, 1 : 에러발생(RTTServer 로그확인)
BYTE byNum; // 패치 순서 넘버..
BYTE byServerType; // 패치 서버 타입.
BYTE byVer1; // 적용된 패치 버전
BYTE byVer2;
BYTE byVer3;
};