758 lines
21 KiB
C++
758 lines
21 KiB
C++
|
|
#ifndef _NA_0_20110613_GAME_SHOP_RENEWAL
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
#ifndef SOLAR_SHOP_SHOP_SERVER_PROTOCOL_DEFINITION_H
|
|
#define SOLAR_SHOP_SHOP_SERVER_PROTOCOL_DEFINITION_H
|
|
|
|
#if SUN_CODE_BACKUP
|
|
|
|
// NOTE: this file declares protocols related to a ShopServer communication.
|
|
// the SUN server redefine a below protocol information to fit the SUN protocol format.
|
|
|
|
#pragma pack(1)
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
/// protocol define
|
|
/// GAME : Game Server
|
|
/// SHOP : ItemShop Server
|
|
/// Manager : ItemShop Manager
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
/// protocol id (GAME <-> SHOP)
|
|
#define GTOS_USER_CASH_REQ 0x0100 ///> 잔여캐쉬 조회 요청
|
|
#define STOG_USER_CASH_ANS 0x0200 ///> 잔여캐쉬 조회 전송
|
|
#define GTOS_ITEM_LIST_REQ 0x0300 ///> 유료 아이템 목록 요청
|
|
#define STOG_ITEM_LIST_ANS 0x0400 ///> 유료 아이템 목록 전송
|
|
#define GTOS_PACKAGE_LIST_REQ 0x0500 ///> 패키지 목록 요청
|
|
#define STOG_PACKAGE_LIST_ANS 0x0600 ///> 패키지 목록 전송
|
|
#define GTOS_BRANCH_ITEM_LIST_REQ 0x0700 ///> 특화 분료 아이템 목록 요청
|
|
#define STOG_BRANCH_ITEM_LIST_ANS 0x0800 ///> 특화 분료 아이템 목록 전송
|
|
#define GTOS_BUY_ITEM_REQ 0x0900 ///> 아이템 구매 요청
|
|
#define STOG_BUY_ITEM_ANS 0x0A00 ///> 아이템 구매 전송
|
|
#define GTOS_BUY_ITEM_NTF 0x0B00 ///> 아이템 구매 게임내 처리 결과
|
|
#define GTOS_USER_BUY_HISTORY_REQ 0x0C00 ///> 사용자 구매 이력 요청
|
|
#define STOG_USER_BUY_HISTORY_ANS 0x0D00 ///> 사용자 구매 이력 전송
|
|
#define STOG_RELOAD_SHOP_DATA_NTF 0x0E00 ///> SHOP DATA 갱신 요청
|
|
#define GTOS_SEND_GIFT_ITEM_REQ 0x0F00 ///> 아이템 선물 하기 요청
|
|
#define STOG_SEND_GIFT_ITEM_ANS 0x1000 ///> 아이템 선물 하기 결과 전송
|
|
#define GTOS_ACTION_RECV_GIFT_REQ 0x1100 ///> 받은 선물 처리 요청
|
|
#define STOG_ACTION_RECV_GIFT_ANS 0x1200 ///> 받은 선물 처리 요청 결과 전송
|
|
#define GTOS_ACTION_RECV_GIFT_NTF 0x1300 ///> 게임내 처리 결과 전송
|
|
#define GTOS_IS_RECV_GIFT_REQ 0x1400 ///> 받은 선물 존재 여부
|
|
#define STOG_IS_RECV_GIFT_ANS 0x1500 ///> 받은 선물 존재 여부 확인 결과 전송
|
|
#define GTOS_RECV_GIFT_LIST_REQ 0x1600 ///> 받은 선물 목록 요청
|
|
#define STOG_RECV_GIFT_LIST_ANS 0x1700 ///> 받은 선물 목록 전송
|
|
#define GTOS_SEND_GIFT_LIST_REQ 0x1800 ///> 보낸 선물 목록 요청
|
|
#define STOG_SEND_GIFT_LIST_ANS 0x1900 ///> 보낸 선물 목록 전송
|
|
|
|
#ifdef __NA_00387_20070605_SHOP_MILEAGE2
|
|
//2007/6/5 추가
|
|
#define GTOS_MILEAGE_ITEM_LIST_REQ 0x1A00 ///> 마일리지 아이템 목록 요청
|
|
#define STOG_MILEAGE_ITEM_LIST_ANS 0x1B00 ///> 마일리지 아이템 목록 전송
|
|
#endif
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
/// protocol id (Manager <-> SHOP)
|
|
#define MTOS_RELOAD_SHOP_DATA_NTF 0x0101 ///> SHOP DATA 갱신 요청
|
|
|
|
namespace protocol {
|
|
|
|
class HDRMessageID4
|
|
{
|
|
public:
|
|
BYTE category;
|
|
BYTE cessageID;
|
|
};
|
|
|
|
class HDRMessageID8
|
|
{
|
|
public:
|
|
WORD category;
|
|
WORD messageID;
|
|
};
|
|
|
|
class MSG_HEADER4
|
|
{
|
|
public:
|
|
WORD size;
|
|
union
|
|
{
|
|
WORD id; // Message ID
|
|
HDRMessageID4 hdrid;
|
|
};
|
|
};
|
|
|
|
class MSG_HEADER8
|
|
{
|
|
public:
|
|
DWORD size;
|
|
union
|
|
{
|
|
DWORD id; // Message ID
|
|
HDRMessageID8 hdrid;
|
|
};
|
|
};
|
|
|
|
/*
|
|
SUN은 4바이트 헤더에 사이즈 2byte가 포함되지 않은 헤더를 사용한다.
|
|
#define __HEADER4_SIZE_2__
|
|
MU는 8바이트 해더에 전체 헤더 사이즈가 포함된 헤더를 사용한다.
|
|
*/
|
|
|
|
#define __HEADER4_SIZE_2__
|
|
|
|
#ifdef __HEADER4_SIZE_2__
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
/// 4Byte Header size에 header size 2byte만 포함
|
|
//#define MSG_HEADER MSG_HEADER4
|
|
//#define SIZEOFHDR 2
|
|
typedef MSG_HEADER4 MSG_HEADER;
|
|
const WORD SIZEOFHDR = 2;
|
|
|
|
#elif __HEADER8_SIZE_8__
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
/// 8Byte Header size에 header size 미포함
|
|
//#define MSG_HEADER MSG_HEADER8
|
|
//#define SIZEOFHDR 8
|
|
typedef MSG_HEADER8 MSG_HEADER;
|
|
const WORD SIZEOFHDR = 8;
|
|
|
|
#else
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
/// 8Byte Header size에 header size 포함
|
|
//#define MSG_HEADER MSG_HEADER8
|
|
//#define SIZEOFHDR 0
|
|
typedef MSG_HEADER8 MSG_HEADER;
|
|
const WORD SIZEOFHDR = 8;
|
|
#endif
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : GAME -> SHOP
|
|
// Description : 잔여캐쉬 조회 요청
|
|
class MSG_GTOS_USER_CASH_REQ : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_GTOS_USER_CASH_REQ()
|
|
{
|
|
size = sizeof(MSG_GTOS_USER_CASH_REQ) - SIZEOFHDR;
|
|
id = GTOS_USER_CASH_REQ;
|
|
}
|
|
~MSG_GTOS_USER_CASH_REQ()
|
|
{
|
|
}
|
|
|
|
DWORD dwUserGuid; ///> 사용자 Guid
|
|
};
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : SHOP -> GAME
|
|
// Description : 잔여캐쉬 조회 전송
|
|
class MSG_STOG_USER_CASH_ANS : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_STOG_USER_CASH_ANS()
|
|
{
|
|
size = sizeof(MSG_STOG_USER_CASH_ANS) - SIZEOFHDR;
|
|
id = STOG_USER_CASH_ANS;
|
|
}
|
|
~MSG_STOG_USER_CASH_ANS()
|
|
{
|
|
}
|
|
|
|
DWORD dwUserGuid; ///> 사용자 Guid
|
|
DWORD dwUserCash; ///> 잔여 캐쉬
|
|
#ifdef SHOPSERVER_FOR_CHINA
|
|
DWORD dwHonors; ///> 잔여 마일리지 갯수(해방군의 훈장)
|
|
#endif
|
|
};
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : GAME -> SHOP
|
|
// Description : 유료 아이템 목록 요청
|
|
class MSG_GTOS_ITEM_LIST_REQ : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_GTOS_ITEM_LIST_REQ()
|
|
{
|
|
size = sizeof(MSG_GTOS_ITEM_LIST_REQ) - SIZEOFHDR;
|
|
id = GTOS_ITEM_LIST_REQ;
|
|
}
|
|
~MSG_GTOS_ITEM_LIST_REQ()
|
|
{
|
|
}
|
|
};
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : SHOP -> GAME
|
|
// Description : 유료 아이템 목록 전송
|
|
class MSG_STOG_ITEM_LIST_ANS : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_STOG_ITEM_LIST_ANS()
|
|
{
|
|
size = sizeof(MSG_STOG_ITEM_LIST_ANS) - SIZEOFHDR;
|
|
id = STOG_ITEM_LIST_ANS;
|
|
}
|
|
~MSG_STOG_ITEM_LIST_ANS()
|
|
{
|
|
}
|
|
|
|
void resize()
|
|
{
|
|
size = size - (MAX_ITEM_SIZE - (WORD)dwItemCount)* sizeof(tblSellItem);
|
|
}
|
|
|
|
DWORD dwItemCount; ///> 아이템 목록 갯수
|
|
tblSellItem sellItems[MAX_ITEM_SIZE]; ///> 아이템 목록
|
|
};
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : GAME -> SHOP
|
|
// Description : 패키지 목록 요청
|
|
class MSG_GTOS_PACKAGE_LIST_REQ : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_GTOS_PACKAGE_LIST_REQ()
|
|
{
|
|
size = sizeof(MSG_GTOS_PACKAGE_LIST_REQ) - SIZEOFHDR;
|
|
id = GTOS_PACKAGE_LIST_REQ;
|
|
}
|
|
~MSG_GTOS_PACKAGE_LIST_REQ()
|
|
{
|
|
}
|
|
};
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : SHOP -> GAME
|
|
// Description : 패키지 목록 전송
|
|
class MSG_STOG_PACKAGE_LIST_ANS : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_STOG_PACKAGE_LIST_ANS()
|
|
{
|
|
size = sizeof(MSG_STOG_PACKAGE_LIST_ANS) - SIZEOFHDR;
|
|
id = STOG_PACKAGE_LIST_ANS;
|
|
}
|
|
~MSG_STOG_PACKAGE_LIST_ANS()
|
|
{
|
|
}
|
|
|
|
void resize()
|
|
{
|
|
size = size - (MAX_PACKAGE_SIZE - (WORD)dwPackageCount)* sizeof(tblSellPackage);
|
|
}
|
|
|
|
DWORD dwPackageCount; ///> 패키지 목록 갯수
|
|
tblSellPackage sellPackages[MAX_PACKAGE_SIZE]; ///> 패키지 목록
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : GAME -> SHOP
|
|
// Description : 분료 아이템 목록 요청
|
|
class MSG_GTOS_BRANCH_ITEM_LIST_REQ : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_GTOS_BRANCH_ITEM_LIST_REQ()
|
|
{
|
|
size = sizeof(MSG_GTOS_BRANCH_ITEM_LIST_REQ) - SIZEOFHDR;
|
|
id = GTOS_BRANCH_ITEM_LIST_REQ;
|
|
}
|
|
~MSG_GTOS_BRANCH_ITEM_LIST_REQ()
|
|
{
|
|
}
|
|
};
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : SHOP -> GAME
|
|
// Description : 특화 분료 아이템 목록 전송
|
|
class MSG_STOG_BRANCH_ITEM_LIST_ANS : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_STOG_BRANCH_ITEM_LIST_ANS()
|
|
{
|
|
size = sizeof(MSG_STOG_BRANCH_ITEM_LIST_ANS) - SIZEOFHDR;
|
|
id = STOG_BRANCH_ITEM_LIST_ANS;
|
|
}
|
|
~MSG_STOG_BRANCH_ITEM_LIST_ANS()
|
|
{
|
|
}
|
|
|
|
void resize()
|
|
{
|
|
size = size - (MAX_BRANCH_ITEM_SIZE - (WORD)dwItemCount)* sizeof(tblItemBranch);
|
|
}
|
|
|
|
DWORD dwItemCount; ///> 목록 갯수
|
|
tblItemBranch branchItems[MAX_BRANCH_ITEM_SIZE]; ///> 목록
|
|
};
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : GAME -> SHOP
|
|
// Description : 아이템 구매 요청
|
|
class MSG_GTOS_BUY_ITEM_REQ : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_GTOS_BUY_ITEM_REQ()
|
|
{
|
|
size = sizeof(MSG_GTOS_BUY_ITEM_REQ) - SIZEOFHDR;
|
|
id = GTOS_BUY_ITEM_REQ;
|
|
}
|
|
~MSG_GTOS_BUY_ITEM_REQ()
|
|
{
|
|
}
|
|
|
|
void resize()
|
|
{
|
|
size = size - (MAX_BUY_REQ_SIZE - (WORD)dwCount)* sizeof(DWORD);
|
|
}
|
|
|
|
DWORD dwServerGuid; ///> 구매 요청 서버 Guid
|
|
DWORD dwUserGuid; ///> 사용자 Guid
|
|
DWORD dwCharGuid; ///> 캐릭터 Guid
|
|
char szCharName[MAX_CHARACTER_NAME_LENGTH]; ///> 캐릭터 이름
|
|
DWORD dwCount; ///> 구매 아이템/패키지 갯수
|
|
DWORD dwPriceGuids[MAX_BUY_REQ_SIZE]; ///> 판매 가격 고유 번호 목록
|
|
};
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : SHOP -> GAME
|
|
// Description : 아이템 구매 전송
|
|
class MSG_STOG_BUY_ITEM_ANS : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_STOG_BUY_ITEM_ANS()
|
|
{
|
|
size = sizeof(MSG_STOG_BUY_ITEM_ANS) - SIZEOFHDR;
|
|
id = STOG_BUY_ITEM_ANS;
|
|
}
|
|
~MSG_STOG_BUY_ITEM_ANS()
|
|
{
|
|
}
|
|
|
|
void resize()
|
|
{
|
|
size = size - (MAX_BUY_REQ_SIZE - (WORD)dwCount)* sizeof(tblBuyItemTransaction);
|
|
}
|
|
|
|
DWORD dwServerGuid; ///> 구매 요청 서버 Guid
|
|
DWORD dwUserGuid; ///> 사용자 Guid
|
|
DWORD dwCharGuid; ///> 캐릭터 Guid
|
|
DWORD dwUserCash; ///> 사용자 잔여 캐쉬
|
|
#ifdef SHOPSERVER_FOR_CHINA
|
|
DWORD dwHonors; ///> 잔여 마일리지 갯수(해방군의 훈장)
|
|
#endif
|
|
DWORD dwResult; ///> 구매 결과
|
|
DWORD dwCount; ///> 구매 transaction 갯수
|
|
tblBuyItemTransaction transactions[MAX_BUY_REQ_SIZE]; ///> 구매 transaction
|
|
|
|
};
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : GAME -> SHOP
|
|
// Description : 아이템 구매 게임내 처리 결과
|
|
class MSG_GTOS_BUY_ITEM_NTF : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_GTOS_BUY_ITEM_NTF()
|
|
{
|
|
size = sizeof(MSG_GTOS_BUY_ITEM_NTF) - SIZEOFHDR;
|
|
id = GTOS_BUY_ITEM_NTF;
|
|
}
|
|
~MSG_GTOS_BUY_ITEM_NTF()
|
|
{
|
|
}
|
|
|
|
void resize()
|
|
{
|
|
size = size - (MAX_BUY_REQ_SIZE - (WORD)dwCount)* sizeof(tblBuyItemTransaction);
|
|
}
|
|
|
|
DWORD dwServerGuid; ///> 구매 요청 서버 Guid
|
|
DWORD dwUserGuid; ///> 사용자 Guid
|
|
DWORD dwCharGuid; ///> 캐릭터 Guid
|
|
DWORD dwCount; ///> 구매 transaction 갯수
|
|
tblBuyItemTransaction transactions[MAX_BUY_REQ_SIZE]; ///> 구매 transaction
|
|
};
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : GAME -> SHOP
|
|
// Description : 사용자 구매 이력 요청
|
|
class MSG_GTOS_USER_BUY_HISTORY_REQ : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_GTOS_USER_BUY_HISTORY_REQ()
|
|
{
|
|
size = sizeof(MSG_GTOS_USER_BUY_HISTORY_REQ) - SIZEOFHDR;
|
|
id = GTOS_USER_BUY_HISTORY_REQ;
|
|
}
|
|
~MSG_GTOS_USER_BUY_HISTORY_REQ()
|
|
{
|
|
}
|
|
|
|
DWORD dwServerGuid; ///> 요청 서버 Guid
|
|
DWORD dwUserGuid; ///> 사용자 Guid
|
|
DWORD dwCharGuid; ///> 캐릭터 Guid
|
|
};
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : SHOP -> GAME
|
|
// Description : 사용자 구매 이력 전송
|
|
class MSG_STOG_USER_BUY_HISTORY_ANS : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_STOG_USER_BUY_HISTORY_ANS()
|
|
{
|
|
size = sizeof(MSG_STOG_USER_BUY_HISTORY_ANS) - SIZEOFHDR;
|
|
id = STOG_USER_BUY_HISTORY_ANS;
|
|
}
|
|
~MSG_STOG_USER_BUY_HISTORY_ANS()
|
|
{
|
|
}
|
|
void resize()
|
|
{
|
|
size = size - (MAX_BUY_ITEM_SIZE - (WORD)dwCount)* sizeof(tblBuyItem);
|
|
}
|
|
|
|
DWORD dwServerGuid; ///> 요청 서버 Guid
|
|
DWORD dwUserGuid; ///> 사용자 Guid
|
|
DWORD dwCharGuid; ///> 캐릭터 Guid
|
|
DWORD dwCount; ///> 구매 이력 목록 갯수
|
|
tblBuyItem buyItems[MAX_BUY_ITEM_SIZE]; ///> 구매 이력 목록
|
|
};
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : SHOP -> GAME
|
|
// Description : 샵 데이타 변경에 대한 갱신 요청을 한다.
|
|
class MSG_STOG_RELOAD_SHOP_DATA_NTF : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_STOG_RELOAD_SHOP_DATA_NTF()
|
|
{
|
|
size = sizeof(MSG_STOG_RELOAD_SHOP_DATA_NTF) - SIZEOFHDR;
|
|
id = STOG_RELOAD_SHOP_DATA_NTF;
|
|
}
|
|
~MSG_STOG_RELOAD_SHOP_DATA_NTF()
|
|
{
|
|
}
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : Manager -> GAME
|
|
// Description : 샵 데이타 변경에 대한 갱신 요청을 한다.
|
|
class MSG_MTOS_RELOAD_SHOP_DATA_NTF : public MSG_HEADER8
|
|
{
|
|
public:
|
|
MSG_MTOS_RELOAD_SHOP_DATA_NTF()
|
|
{
|
|
size = sizeof(MSG_MTOS_RELOAD_SHOP_DATA_NTF);
|
|
id = MTOS_RELOAD_SHOP_DATA_NTF;
|
|
}
|
|
~MSG_MTOS_RELOAD_SHOP_DATA_NTF()
|
|
{
|
|
}
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : GAME -> SHOP
|
|
// Description : 아이템 선물하기
|
|
class MSG_GTOS_SEND_GIFT_ITEM_REQ : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_GTOS_SEND_GIFT_ITEM_REQ()
|
|
{
|
|
size = sizeof(MSG_GTOS_SEND_GIFT_ITEM_REQ) - SIZEOFHDR;
|
|
id = GTOS_SEND_GIFT_ITEM_REQ;
|
|
}
|
|
~MSG_GTOS_SEND_GIFT_ITEM_REQ()
|
|
{
|
|
}
|
|
|
|
DWORD dwServerGuid; ///> 구매 요청 서버 Guid
|
|
DWORD dwUserGuid; ///> 사용자 Guid
|
|
DWORD dwCharGuid; ///> 캐릭터 Guid
|
|
char szCharName[MAX_CHARACTER_NAME_LENGTH]; ///> 캐릭터 이름
|
|
DWORD dwToServerGuid; ///> 선물을 받을 서버 Guid
|
|
DWORD dwToUserGuid; ///> 선물을 받을 사용자 Guid
|
|
DWORD dwToCharGuid; ///> 선물을 받을 캐릭터 Guid
|
|
char szToCharName[MAX_CHARACTER_NAME_LENGTH]; ///> 선물을 받을 캐릭터 이름
|
|
DWORD dwPriceGuid; ///> 판매 가격 고유 번호
|
|
char szGiftMessage[MAX_GIFT_MESSAGE_LENGTH]; ///> 선물 메세지
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : SHOP -> GAME
|
|
// Description : 아이템 선물 하기 결과 전송
|
|
class MSG_STOG_SEND_GIFT_ITEM_ANS : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_STOG_SEND_GIFT_ITEM_ANS()
|
|
{
|
|
size = sizeof(MSG_STOG_SEND_GIFT_ITEM_ANS) - SIZEOFHDR;
|
|
id = STOG_SEND_GIFT_ITEM_ANS;
|
|
}
|
|
~MSG_STOG_SEND_GIFT_ITEM_ANS()
|
|
{
|
|
}
|
|
|
|
DWORD dwServerGuid; ///> 구매 요청 서버 Guid
|
|
DWORD dwUserGuid; ///> 사용자 Guid
|
|
DWORD dwCharGuid; ///> 캐릭터 Guid
|
|
DWORD dwToServerGuid; ///> 선물을 받을 서버 Guid
|
|
DWORD dwToUserGuid; ///> 선물을 받을 사용자 Guid
|
|
DWORD dwToCharGuid; ///> 선물을 받을 캐릭터 Guid
|
|
DWORD dwUserCash; ///> 사용자 잔여 캐쉬
|
|
#ifdef SHOPSERVER_FOR_CHINA
|
|
DWORD dwHonors; ///> 잔여 마일리지 갯수(해방군의 훈장)
|
|
#endif
|
|
DWORD dwTransactionGuid; ///> 구매 요청 Transaction Guid
|
|
DWORD dwPriceGuid; ///> 판매 가격 고유 번호
|
|
DWORD dwResult; ///> 구매 결과
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : GAME -> SHOP
|
|
// Description : 아이템 선물 받기 요청
|
|
class MSG_GTOS_ACTION_RECV_GIFT_REQ : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_GTOS_ACTION_RECV_GIFT_REQ()
|
|
{
|
|
size = sizeof(MSG_GTOS_ACTION_RECV_GIFT_REQ) - SIZEOFHDR;
|
|
id = GTOS_ACTION_RECV_GIFT_REQ;
|
|
}
|
|
~MSG_GTOS_ACTION_RECV_GIFT_REQ()
|
|
{
|
|
}
|
|
DWORD dwServerGuid; ///> 서버 GUID
|
|
DWORD dwUserGuid; ///> 사용자 GUID
|
|
DWORD dwCharGuid; ///> 캐릭터 GUID
|
|
DWORD dwGiftItemID; ///> 선물 ID
|
|
DWORD dwAction; ///> 선물 처리 방법 (1:선물 받기, 2:선물 버리기, 3:목록에서 선물 삭제) 참고 : eGIFT_STATE
|
|
char szMessage[MAX_GIFT_MESSAGE_LENGTH]; ///> 선물 메세지
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : SHOP -> GAME
|
|
// Description : 아이템 선물 받기 결과 전송
|
|
class MSG_STOG_ACTION_RECV_GIFT_ANS : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_STOG_ACTION_RECV_GIFT_ANS()
|
|
{
|
|
size = sizeof(MSG_STOG_ACTION_RECV_GIFT_ANS) - SIZEOFHDR;
|
|
id = STOG_ACTION_RECV_GIFT_ANS;
|
|
}
|
|
~MSG_STOG_ACTION_RECV_GIFT_ANS()
|
|
{
|
|
}
|
|
DWORD dwServerGuid; ///> 서버 GUID
|
|
DWORD dwUserGuid; ///> 사용자 GUID
|
|
DWORD dwCharGuid; ///> 캐릭터 GUID
|
|
DWORD dwGiftItemID; ///> 선물 ID
|
|
DWORD dwAction; ///> 선물 처리 방법 (1:선물 받기, 2:선물 버리기, 3:목록에서 선물 삭제) 참고 : eGIFT_STATE
|
|
DWORD dwResult; ///> 처리 결과
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : GAME -> SHOP
|
|
// Description : 아이템 선물 받기 결과 전송
|
|
class MSG_GTOS_ACTION_RECV_GIFT_NTF : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_GTOS_ACTION_RECV_GIFT_NTF()
|
|
{
|
|
size = sizeof(MSG_GTOS_ACTION_RECV_GIFT_NTF) - SIZEOFHDR;
|
|
id = GTOS_ACTION_RECV_GIFT_NTF;
|
|
}
|
|
~MSG_GTOS_ACTION_RECV_GIFT_NTF()
|
|
{
|
|
}
|
|
DWORD dwServerGuid; ///> 서버 GUID
|
|
DWORD dwUserGuid; ///> 사용자 GUID
|
|
DWORD dwCharGuid; ///> 캐릭터 GUID
|
|
DWORD dwGiftItemID; ///> 선물 GUID
|
|
DWORD dwResult; ///> 처리 결과(0 : 실패, 1 : 성공)
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : GAME -> SHOP
|
|
// Description : 받은 선물 존재 여부
|
|
class MSG_GTOS_IS_RECV_GIFT_REQ : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_GTOS_IS_RECV_GIFT_REQ()
|
|
{
|
|
size = sizeof(MSG_GTOS_IS_RECV_GIFT_REQ) - SIZEOFHDR;
|
|
id = GTOS_IS_RECV_GIFT_REQ;
|
|
}
|
|
~MSG_GTOS_IS_RECV_GIFT_REQ()
|
|
{
|
|
}
|
|
|
|
DWORD dwServerGuid; ///> 서버 GUID
|
|
DWORD dwUserGuid; ///> 사용자 GUID
|
|
DWORD dwCharGuid; ///> 캐릭터 GUID
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : SHOP -> GAME
|
|
// Description : 받은 선물 존재 여부 확인 결과 전송
|
|
class MSG_STOG_IS_RECV_GIFT_ANS : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_STOG_IS_RECV_GIFT_ANS()
|
|
{
|
|
size = sizeof(MSG_STOG_IS_RECV_GIFT_ANS) - SIZEOFHDR;
|
|
id = STOG_IS_RECV_GIFT_ANS;
|
|
}
|
|
~MSG_STOG_IS_RECV_GIFT_ANS()
|
|
{
|
|
}
|
|
DWORD dwServerGuid; ///> 서버 GUID
|
|
DWORD dwUserGuid; ///> 사용자 GUID
|
|
DWORD dwCharGuid; ///> 캐릭터 GUID
|
|
DWORD dwGiftCount; ///> 선물 존재 여부 (0 : 받은 선물 없음 N : N개의 받은 선물이 있음)
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : GAME -> SHOP
|
|
// Description : 받은 선물 목록 요청
|
|
class MSG_GTOS_RECV_GIFT_LIST_REQ : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_GTOS_RECV_GIFT_LIST_REQ()
|
|
{
|
|
size = sizeof(MSG_GTOS_RECV_GIFT_LIST_REQ) - SIZEOFHDR;
|
|
id = GTOS_RECV_GIFT_LIST_REQ;
|
|
}
|
|
~MSG_GTOS_RECV_GIFT_LIST_REQ()
|
|
{
|
|
}
|
|
DWORD dwServerGuid; ///> 서버 GUID
|
|
DWORD dwUserGuid; ///> 사용자 GUID
|
|
DWORD dwCharGuid; ///> 캐릭터 GUID
|
|
DWORD dwMaxCount; ///> 최대 목록 갯수(0 : 기본, N : N개의 최대 목록)
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : SHOP -> GAME
|
|
// Description : 받은 선물 목록 전송
|
|
class MSG_STOG_RECV_GIFT_LIST_ANS : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_STOG_RECV_GIFT_LIST_ANS()
|
|
{
|
|
size = sizeof(MSG_STOG_RECV_GIFT_LIST_ANS) - SIZEOFHDR;
|
|
id = STOG_RECV_GIFT_LIST_ANS;
|
|
}
|
|
~MSG_STOG_RECV_GIFT_LIST_ANS()
|
|
{
|
|
}
|
|
|
|
void resize()
|
|
{
|
|
size = size - (MAX_GIFT_ITEM_SIZE - (WORD)dwCount)* sizeof(tblRecvGiftItem);
|
|
}
|
|
|
|
DWORD dwServerGuid; ///> 서버 GUID
|
|
DWORD dwUserGuid; ///> 사용자 GUID
|
|
DWORD dwCharGuid; ///> 캐릭터 GUID
|
|
DWORD dwCount; ///> 전송 목록 갯수
|
|
tblRecvGiftItem recvGiftItems[MAX_GIFT_ITEM_SIZE]; ///> 받은 선물 목록
|
|
};
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : GAME -> SHOP
|
|
// Description : 보낸 선물 목록 요청
|
|
class MSG_GTOS_SEND_GIFT_LIST_REQ : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_GTOS_SEND_GIFT_LIST_REQ()
|
|
{
|
|
size = sizeof(MSG_GTOS_SEND_GIFT_LIST_REQ) - SIZEOFHDR;
|
|
id = GTOS_SEND_GIFT_LIST_REQ;
|
|
}
|
|
~MSG_GTOS_SEND_GIFT_LIST_REQ()
|
|
{
|
|
}
|
|
DWORD dwServerGuid; ///> 서버 GUID
|
|
DWORD dwUserGuid; ///> 사용자 GUID
|
|
DWORD dwCharGuid; ///> 캐릭터 GUID
|
|
DWORD dwMaxCount; ///> 최대 목록 갯수(0 : 기본, N : N개의 최대 목록)
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : GAME -> SHOP
|
|
// Description : 보낸 선물 목록 전송
|
|
class MSG_STOG_SEND_GIFT_LIST_ANS : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_STOG_SEND_GIFT_LIST_ANS()
|
|
{
|
|
size = sizeof(MSG_STOG_SEND_GIFT_LIST_ANS) - SIZEOFHDR;
|
|
id = STOG_SEND_GIFT_LIST_ANS;
|
|
}
|
|
~MSG_STOG_SEND_GIFT_LIST_ANS()
|
|
{
|
|
}
|
|
|
|
void resize()
|
|
{
|
|
size = size - (MAX_GIFT_ITEM_SIZE - (WORD)dwCount)* sizeof(tblSendGiftItem);
|
|
}
|
|
|
|
DWORD dwServerGuid; ///> 서버 GUID
|
|
DWORD dwUserGuid; ///> 사용자 GUID
|
|
DWORD dwCharGuid; ///> 캐릭터 GUID
|
|
DWORD dwCount; ///> 전송 목록 갯수
|
|
tblSendGiftItem sendGiftItems[MAX_GIFT_ITEM_SIZE]; ///> 보낸 선물 목록
|
|
};
|
|
|
|
#ifdef __NA_00387_20070605_SHOP_MILEAGE2
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : GAME -> SHOP
|
|
// Description : 판매 마일리지 아이템 목록 요청
|
|
class MSG_GTOS_MILEAGE_ITEM_LIST_REQ : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_GTOS_MILEAGE_ITEM_LIST_REQ()
|
|
{
|
|
size = sizeof(MSG_GTOS_MILEAGE_ITEM_LIST_REQ) - SIZEOFHDR;
|
|
id = GTOS_MILEAGE_ITEM_LIST_REQ;
|
|
}
|
|
~MSG_GTOS_MILEAGE_ITEM_LIST_REQ()
|
|
{
|
|
}
|
|
};
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Redirection : SHOP -> GAME
|
|
// Description : 판매 마일리지 아이템 목록 전송
|
|
class MSG_STOG_MILEAGE_ITEM_LIST_ANS : public MSG_HEADER
|
|
{
|
|
public:
|
|
MSG_STOG_MILEAGE_ITEM_LIST_ANS()
|
|
{
|
|
size = sizeof(MSG_STOG_MILEAGE_ITEM_LIST_ANS) - SIZEOFHDR;
|
|
id = STOG_MILEAGE_ITEM_LIST_ANS;
|
|
}
|
|
~MSG_STOG_MILEAGE_ITEM_LIST_ANS()
|
|
{
|
|
}
|
|
|
|
void resize()
|
|
{
|
|
size = size - (MAX_ITEM_SIZE - (WORD)dwItemCount)* sizeof(tblSellMileageItem);
|
|
}
|
|
|
|
DWORD dwItemCount; ///> 판매 마일리지 아이템 목록 갯수
|
|
tblSellMileageItem sellMileageItems[MAX_ITEM_SIZE]; ///> 판매 마일리지 아이템 목록
|
|
};
|
|
|
|
#endif
|
|
|
|
};// namespace protocol
|
|
|
|
using namespace protocol;
|
|
#pragma pack()
|
|
|
|
#endif //SUN_CODE_BACKUP
|
|
|
|
#endif //SOLAR_SHOP_SHOP_SERVER_PROTOCOL_DEFINITION_H
|
|
|
|
|
|
|
|
#endif // not defined _NA_0_20110613_GAME_SHOP_RENEWAL
|