Files
2022-10-26 12:25:11 +08:00

424 lines
8.9 KiB
C++

#pragma once
#pragma pack(1)
#include "ShopDefine.h"
namespace ShopProtocol
{
struct STCashDetail
{
STCashDetail()
{
ZeroMemory(Name, MAX_TYPENAME_LENGTH * sizeof(WCHAR));
Value = 0;
Type = 0;
};
WCHAR Name[MAX_TYPENAME_LENGTH];
double Value;
char Type;
};
struct STPointDetail
{
STPointDetail()
{
ZeroMemory(PointTypeName, MAX_POINTNAME_LENGTH);
PointType = PointValue = 0;
};
char PointTypeName[MAX_POINTNAME_LENGTH];
long PointType;
long PointValue;
};
struct STItemProperty
{
STItemProperty()
{
PropertySeq = 0;
Value = 0;
};
long PropertySeq;
int Value;
};
struct STStorage
{
STStorage()
{
StorageSeq = PackageProductSeq = PriceSeq = 0;
};
long StorageSeq;
long PackageProductSeq;
long PriceSeq;
DWORD DeleteDate;
};
struct STStorageNoGiftMessage
{
STStorageNoGiftMessage()
{
Seq = ItemSeq = GroupCode = ShareFlag = ProductSeq = PriceSeq = ProductType = 0;
CashPoint = 0;
ItemType = 0;
RelationType = 0;
ZeroMemory(CashName, MAX_TYPENAME_LENGTH * sizeof(WCHAR));
ZeroMemory(SendAccountID, MAX_ACCOUNTID_LENGTH * sizeof(WCHAR));
};
long Seq;
long ItemSeq;
long GroupCode;
long ShareFlag;
long ProductSeq;
WCHAR CashName[MAX_TYPENAME_LENGTH];
double CashPoint;
WCHAR SendAccountID[MAX_ACCOUNTID_LENGTH];
char ItemType;
BYTE RelationType;
long PriceSeq;
long ProductType;
DWORD DeleteDate;
};
enum PaymentType
{
Inbound = 0,
Outbound_HanCoin = 1,
Outbound_Ijji = 2,
Outbound_GameOn = 3,
Outbound_GameChu = 4,
Outbound_Channeling = 5,
Outbound_FPTOnline = 6,
Outbound_WebzenTW = 7,
Outbound_WinneronlineTH = 8,
Outbound_SUN_JP = 9,
Outbound_BT_TH = 10,
Outbound_SUN_RU = 11,
Outbound_SUN_CN = 12,
};
template <class _subcls>
class MSG_REQUEST_BASE
{
public:
MSG_REQUEST_BASE() {}
MSG_REQUEST_BASE(DWORD dwID)
: dwProtocolID(dwID),
GameCode(0),
dwPacketSize(sizeof( _subcls ))
{}
long GetGameCode() { return GameCode; }
DWORD dwPacketSize;
DWORD dwProtocolID;
long GameCode;
};
template <class _subcls>
class MSG_RESPONSE_BASE : public MSG_REQUEST_BASE<_subcls>
{
public:
MSG_RESPONSE_BASE(DWORD dwProtocol)
: MSG_REQUEST_BASE<_subcls>(dwProtocol)
{
ResultCode = 0;
}
public:
long ResultCode;
};
class MSG_SERVER_GIFTPRODUCT : public MSG_RESPONSE_BASE<MSG_SERVER_GIFTPRODUCT>
{
public:
MSG_SERVER_GIFTPRODUCT(long nGameCode)
: MSG_RESPONSE_BASE<MSG_SERVER_GIFTPRODUCT>(PROTOCOL_SERVER_GIFTPRODUCT)
{
GameCode = nGameCode;
SenderSeq = ReceiverSeq = 0;
DeductCashSeq = 0;
ZeroMemory(SenderID, MAX_ACCOUNT_LENGTH);
ZeroMemory(ReceiverID, MAX_ACCOUNT_LENGTH);
}
public:
char SenderID[MAX_ACCOUNT_LENGTH];
char ReceiverID[MAX_ACCOUNT_LENGTH];
DWORD SenderSeq;
DWORD ReceiverSeq;
long DeductCashSeq;
};
class MSG_CLIENT_INQUIRE_CASH : public MSG_REQUEST_BASE<MSG_CLIENT_INQUIRE_CASH>
{
public:
MSG_CLIENT_INQUIRE_CASH(long nGameCode)
: MSG_REQUEST_BASE<MSG_CLIENT_INQUIRE_CASH>(PROTOCOL_CLIENT_INQUIRE_CASH)
{
GameCode = nGameCode;
AccountSeq = 0;
}
public:
DWORD AccountSeq;
};
class MSG_SERVER_INQUIRE_CASH : public MSG_RESPONSE_BASE<MSG_SERVER_INQUIRE_CASH>
{
public:
MSG_SERVER_INQUIRE_CASH(long nGameCode)
: MSG_RESPONSE_BASE<MSG_SERVER_INQUIRE_CASH>(PROTOCOL_SERVER_INQUIRE_CASH)
{
GameCode = nGameCode;
PackHeader = dwPacketSize;
AccountSeq = 0;
ListCount = 0;
CashPoint = 0;
PPCashPoint = 0;
MileagePoint = 0;
}
public:
DWORD AccountSeq;
long PackHeader;
int ListCount;
double CashPoint;
double PPCashPoint;
double MileagePoint;
};
class MSG_CLIENT_BUYPRODUCT : public MSG_REQUEST_BASE<MSG_CLIENT_BUYPRODUCT>
{
public:
MSG_CLIENT_BUYPRODUCT(long nGameCode)
: MSG_REQUEST_BASE<MSG_CLIENT_BUYPRODUCT>(PROTOCOL_CLIENT_BUYPRODUCT)
{
GameCode = nGameCode;
AccountSeq = 0;
PackageSeq = PriceSeq = 0;
ZeroMemory(CharName, MAX_CHARACTERID_LENGTH * sizeof(WCHAR));
}
public:
DWORD AccountSeq;
long PackageSeq;
long PriceSeq;
WCHAR CharName[MAX_CHARACTERID_LENGTH];
};
class MSG_SERVER_BUYPRODUCT : public MSG_RESPONSE_BASE<MSG_SERVER_BUYPRODUCT>
{
public:
MSG_SERVER_BUYPRODUCT(long nGameCode)
: MSG_RESPONSE_BASE<MSG_SERVER_BUYPRODUCT>(PROTOCOL_SERVER_BUYPRODUCT)
{
GameCode = nGameCode;
AccountSeq = 0;
}
public:
DWORD AccountSeq;
};
class MSG_CLIENT_GIFTPRODUCT : public MSG_REQUEST_BASE<MSG_CLIENT_GIFTPRODUCT>
{
public:
MSG_CLIENT_GIFTPRODUCT(long nGameCode)
: MSG_REQUEST_BASE<MSG_CLIENT_GIFTPRODUCT>(PROTOCOL_CLIENT_GIFTPRODUCT)
{
GameCode = nGameCode;
SenderSeq = ReceiverSeq = 0;
PackageSeq = PriceSeq = 0;
ZeroMemory(Message, MAX_MESSAGE_LENGTH * sizeof(WCHAR));
ZeroMemory(SenderCharName, MAX_CHARACTERID_LENGTH * sizeof(WCHAR));
ZeroMemory(ReceiverCharName, MAX_CHARACTERID_LENGTH * sizeof(WCHAR));
}
public:
DWORD SenderSeq;
WCHAR SenderCharName[MAX_CHARACTERID_LENGTH];
DWORD ReceiverSeq;
WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH];
WCHAR Message[MAX_MESSAGE_LENGTH];
long PackageSeq;
long PriceSeq;
};
class MSG_CLIENT_GIFTCASH : public MSG_REQUEST_BASE<MSG_CLIENT_GIFTCASH>
{
public:
MSG_CLIENT_GIFTCASH()
: MSG_REQUEST_BASE<MSG_CLIENT_GIFTCASH>(PROTOCOL_CLIENT_GIFTCASH)
{
SenderAccountSeq = ReceiverAccountSeq = 0;
SendServerIndex = ReceiverServerIndex = 0;
CashValue = 0;
ZeroMemory(Message, MAX_MESSAGE_LENGTH * sizeof(WCHAR));
ZeroMemory(SendCharName, MAX_CHARACTERID_LENGTH * sizeof(WCHAR));
ZeroMemory(ReceiverCharName, MAX_CHARACTERID_LENGTH * sizeof(WCHAR));
}
public:
DWORD SenderAccountSeq;
WCHAR SendCharName[MAX_CHARACTERID_LENGTH];
long SendServerIndex;
DWORD ReceiverAccountSeq;
WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH];
long ReceiverServerIndex;
WCHAR Message[MAX_MESSAGE_LENGTH];
double CashValue;
};
class MSG_SERVER_GIFTCASH : public MSG_RESPONSE_BASE<MSG_SERVER_GIFTCASH>
{
public:
MSG_SERVER_GIFTCASH()
: MSG_RESPONSE_BASE<MSG_SERVER_GIFTCASH>(PROTOCOL_SERVER_GIFTCASH)
{
SenderSeq = ReceiverSeq = 0;
GiftSendLimit = 0;
}
public:
DWORD SenderSeq;
DWORD ReceiverSeq;
double GiftSendLimit;
};
class MSG_CLIENT_STORAGELIST : public MSG_REQUEST_BASE<MSG_CLIENT_STORAGELIST>
{
public:
MSG_CLIENT_STORAGELIST()
: MSG_REQUEST_BASE<MSG_CLIENT_STORAGELIST>(PROTOCOL_CLIENT_STORAGELIST)
{
AccountSeq = 0;
}
public:
DWORD AccountSeq;
};
class MSG_SERVER_STORAGELIST : public MSG_RESPONSE_BASE<MSG_SERVER_STORAGELIST>
{
public:
MSG_SERVER_STORAGELIST()
: MSG_RESPONSE_BASE<MSG_SERVER_STORAGELIST>(PROTOCOL_SERVER_STORAGELIST)
{
PackHeader = dwPacketSize;
AccountSeq = 0;
ListCount = 0;
}
public:
long PackHeader;
DWORD AccountSeq;
int ListCount;
};
class MSG_CLIENT_STORAGEUSEROLLBACK:public MSG_REQUEST_BASE<MSG_CLIENT_STORAGEUSEROLLBACK>
{
public:
MSG_CLIENT_STORAGEUSEROLLBACK()
:MSG_REQUEST_BASE<MSG_CLIENT_STORAGEUSEROLLBACK>(PROTOCOL_CLINET_STORAGEUSE_ROLLBACK)
{
}
DWORD AccountSeq;
long StorageSeq;
};
class MSG_CLIENT_STORAGEUSE : public MSG_REQUEST_BASE<MSG_CLIENT_STORAGEUSE>
{
public:
MSG_CLIENT_STORAGEUSE()
: MSG_REQUEST_BASE<MSG_CLIENT_STORAGEUSE>(PROTOCOL_CLIENT_STORAGEUSE)
,EmptySlotNum(0),AccountSeq(0),IPAddress(0),StorageSeq(0)
{
ZeroMemory(CharName, MAX_CHARACTERID_LENGTH * sizeof(WCHAR));
}
public:
DWORD AccountSeq;
DWORD IPAddress;
long StorageSeq;
BYTE EmptySlotNum;
WCHAR CharName[MAX_CHARACTERID_LENGTH];
};
class MSG_SERVER_STORAGEUSE_ONE : public MSG_RESPONSE_BASE<MSG_SERVER_STORAGEUSE_ONE>
{
public:
MSG_SERVER_STORAGEUSE_ONE()
: MSG_RESPONSE_BASE<MSG_SERVER_STORAGEUSE_ONE>(PROTOCOL_SERVER_STORAGEUSE)
,PackHeader(dwPacketSize),AccountSeq(0),ProductSeq(0),StorageSeq(0)
,InGameProductID(0)
{
}
public:
DWORD AccountSeq;
long InGameProductID;
long PackHeader;
long ProductSeq;
long StorageSeq;
ShopProtocol::STItemProperty ItemProperty;
};
class MSG_SERVER_STORAGEUSE_MULIT:public MSG_RESPONSE_BASE<MSG_SERVER_STORAGEUSE_MULIT>
{
public:
MSG_SERVER_STORAGEUSE_MULIT()
:MSG_RESPONSE_BASE<MSG_SERVER_STORAGEUSE_MULIT>(PROTOCOL_SERVER_STORAGEUSE_ALL)
,iListCount(0),PackHeader(dwPacketSize)
{
}
public:
int iListCount;
long PackHeader;
};
class MSG_CLIENT_INQUIRE_SALESVERSION : public MSG_REQUEST_BASE<MSG_CLIENT_INQUIRE_SALESVERSION>
{
public:
MSG_CLIENT_INQUIRE_SALESVERSION()
: MSG_REQUEST_BASE<MSG_CLIENT_INQUIRE_SALESVERSION>(PROTOCOL_CLIENT_INQUIRE_SALESVERSION)
{
}
};
class MSG_SERVER_INQUIRE_SALESVERSION : public MSG_RESPONSE_BASE<MSG_SERVER_INQUIRE_SALESVERSION>
{
public:
MSG_SERVER_INQUIRE_SALESVERSION()
: MSG_RESPONSE_BASE<MSG_SERVER_INQUIRE_SALESVERSION>(PROTOCOL_SERVER_INQUIRE_SALESVERSION)
{
SalesZone = Year = YearIdentity = 0;
}
public:
unsigned short SalesZone;
unsigned short Year;
unsigned short YearIdentity;
};
}
#pragma pack()