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

119 lines
2.9 KiB
C++

#pragma once
/**************************************************************************************************
작성일: 2008-07-08
작성자: 문상현 (youngmoon@webzen.co.kr)
설명: 샵 서버를 사용하는 클라이언트에게 수신된 패킷을 전달해 주기 위한 이벤트 객체
이벤트를 받는쪽(샵클라이언트)에서 상속받아 사용해야 한다.
**************************************************************************************************/
#include "ClientSession.h"
//#include "protocol_shop.h"
#define BATTERYGAME_CHANNEL_CODE 811
class CShopEventHandler : public CClientSession
{
public:
CShopEventHandler(void);
virtual ~CShopEventHandler(void);
bool CreateSession(WBANetwork::LPFN_ErrorHandler errhandler = NULL);
bool InquireSalesZoneScriptVersion(long GameCode);
bool InquireCash(long GameCode,
DWORD AccountSeq);
bool BuyProduct(long GameCode,
DWORD AccountSeq,
long PackageProductSeq,
long PriceSeq,
WCHAR CharName[MAX_CHARACTERID_LENGTH]
);
bool GiftProduct(long GameCode,
DWORD SenderSeq,
WCHAR SenderCharName[MAX_CHARACTERID_LENGTH],
DWORD ReceiverSeq,
WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH],
WCHAR Message[MAX_MESSAGE_LENGTH],
long PackageProductSeq,
long PriceSeq);
bool InquireStorageList(DWORD AccountSeq,
long GameCode);
bool UseStorage(DWORD AccountSeq,
long GameCode,
DWORD IPAddress,
long StorageSeq,
WCHAR CharName[MAX_CHARACTERID_LENGTH],
bool bUseAll,
POSTYPE EmptySlotNum
);
bool UseStorageRollback(DWORD AccountSeq,
long StorageSeq
);
protected:
void OnReceive(PBYTE buffer, int size);
void OnConnect(bool success, DWORD error);
void OnSend(int size);
void OnClose(DWORD error);
virtual void OnInquireSalesZoneScriptVersion(unsigned short SalesZone,
unsigned short Year,
unsigned short YearIdentity,
long ResultCode) = 0;
virtual void OnInquireCash(DWORD AccountSeq,
double CashSum,
double PointSum,
double MileageSum,
long ResultCode) = 0;
virtual void OnBuyProduct(DWORD AccountSeq,
long ResultCode) = 0;
virtual void OnGiftProduct(DWORD SenderAccountSeq,
DWORD ReceiverAccountSeq,
long ResultCode) = 0;
virtual void OnInquireStorageList(DWORD AccountID,
long ListCount,
long ResultCode,
ShopProtocol::STStorage StorageList[]) = 0;
virtual void OnUseStorage(DWORD AccountSeq,
long ResultCode,
long InGameProductID,
long StorageSeq,
ShopProtocol::STItemProperty PropertyList) = 0;
virtual void OnNetConnect(bool success, DWORD error) = 0;
virtual void OnNetSend( int size ) = 0;
virtual void OnNetClose( DWORD error ) = 0;
virtual void WriteLog(char* szMsg) = 0;
private:
void WriteLog(const char* szFormat, ...);
};