#pragma once /************************************************************************************************** ÀÛ¼ºÀÏ: 2008-07-08 ¼³¸í: ¼¥ ¼­¹ö¸¦ »ç¿ëÇϴ Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¼ö½ÅµÈ ÆÐŶÀ» Àü´ÞÇØ ÁÖ±â À§ÇÑ À̺¥Æ® °´Ã¼ À̺¥Æ®¸¦ ¹Þ´ÂÂÊ(¼¥Å¬¶óÀ̾ðÆ®)¿¡¼­ »ó¼Ó¹Þ¾Æ »ç¿ëÇØ¾ß ÇÑ´Ù. **************************************************************************************************/ #include "ClientSession.h" #include class CShopEventHandler : public CClientSession { public: CShopEventHandler(void); virtual ~CShopEventHandler(void); // ÃʱâÈ­ ÇÔ¼ö (ÇÁ·Î±×·¥ ½ÇÇàÇϰí Çѹø¸¸ »ç¿ëÇØ¾ß ÇÑ´Ù.) bool CreateSession(WBANetwork::LPFN_ErrorHandler errhandler = NULL); // ij½ÃÁ¶È¸ // ij½ÃÁ¶È¸ : MU_KR, BT_KR, R2_KR, SUN_KR bool InquireCash( long GameCode, BYTE ViewType, DWORD AccountSeq, bool SumOnly, long MileageSection); // ij½ÃÁ¶È¸ : MU_GB, SUN_GB bool InquireCash( BYTE ViewType, DWORD AccountSeq, long GameCode, bool SumOnly, long MileageSection); // ij½ÃÁ¶È¸ : SUN_CN, SUN_RU, BT_TH, SUN_JP, MU_JP(GameChu, GameOn), MU_VN, MU_TW bool InquireCash( long GameCode, ShopProtocol::PaymentType PaymentType, long AccountSeq, int USN, BYTE ViewType, long MileageSection, bool SumOnly); // ij½ÃÁ¶È¸ : OB bool InquireCash( long GameCode, ShopProtocol::PaymentType PaymentType, DWORD AccountSeq, char AccountID[MAX_ACCOUNTID_LENGTH], BYTE ViewType, long MileageSection, bool SumOnly); // ij½ÃÁ¶È¸ : BT_CNL bool InquireCash( long GameCode, ShopProtocol::PaymentType PaymentType, DWORD AccountSeq, char AccountID[MAX_ACCOUNTID_LENGTH], BYTE ViewType, long MileageSection, bool SumOnly, WCHAR strMemberNo[MAX_CHANNELING_LENGTH]); // »óǰ±¸¸Å // [deprecated] - [AccessIP Ãß°¡ ¹öÀü] »ç¿ë ±ÇÀå // »óǰ±¸¸Å : MU_KR, BT_KR, R2_KR, SUN KR bool BuyProduct( long GameCode, DWORD AccountSeq, long PackageProductSeq, long ProductDisplaySeq, long SalesZone, long PriceSeq, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex); // [AccessIP Ãß°¡ ¹öÀü] // »óǰ±¸¸Å : MU_KR, BT_KR, R2_KR, SUN KR bool BuyProduct( long GameCode, DWORD AccountSeq, long PackageProductSeq, long ProductDisplaySeq, long SalesZone, long PriceSeq, long Class, long Level, DWORD AccessIP, // <----- AccessIP Ãß°¡ ¹öÀü WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex); // [deprecated] - [DeductMileageFlag & AccessIP Ãß°¡ ¹öÀü] »ç¿ë ±ÇÀå bool BuyProduct( DWORD AccountSeq, long GameCode, long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex, int CashTypeCode); // [deprecated] - [DeductMileageFlag & AccessIP Ãß°¡ ¹öÀü] »ç¿ë ±ÇÀå bool BuyProduct( DWORD AccountSeq, long GameCode, long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex, int CashTypeCode, bool DeductMileageFlag); // <----- DeductMileageFlag Ãß°¡ // [deprecated] - [DeductMileageFlag & AccessIP Ãß°¡ ¹öÀü] »ç¿ë ±ÇÀå // »óǰ±¸¸Å : MU_GB, SUN_GB bool BuyProduct( DWORD AccountSeq, long GameCode, long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex, int CashTypeCode, bool DeductMileageFlag, // <----- DeductMileageFlag Ãß°¡ DWORD AccessIP); // »óǰ±¸¸Å : SUN_CN, SUN_RU, BT_TH, SUN_JP, MU_JP(GameChu, GameOn), MU_VN, MU_TW bool BuyProduct( long GameCode, ShopProtocol::PaymentType PaymentType, DWORD AccountSeq, int USN, long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex, DWORD dwIPAddress, bool DeductMileageFlag); // »óǰ±¸¸Å : MU_TH bool BuyProduct( long GameCode, ShopProtocol::PaymentType PaymentType, DWORD AccountSeq, char AccountID[MAX_ACCOUNTID_LENGTH], long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex, DWORD dwIPAddress, char RefKey[MAX_TYPENAME_LENGTH], bool DeductMileageFlag); // [deprecated] - [AccessIP Ãß°¡ ¹öÀü] »ç¿ë ±ÇÀå // »óǰ±¸¸Å : BT_CNL bool BuyProduct( long GameCode, ShopProtocol::PaymentType PaymentType, DWORD AccountSeq, char AccountID[MAX_ACCOUNTID_LENGTH], long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex, DWORD dwIPAddress, char RefKey[MAX_TYPENAME_LENGTH], bool DeductMileageFlag, WCHAR strMemberNo[MAX_CHANNELING_LENGTH]); // [AccessIP Ãß°¡ ¹öÀü] // »óǰ±¸¸Å : BT_CNL bool BuyProduct( long GameCode, ShopProtocol::PaymentType PaymentType, DWORD AccountSeq, char AccountID[MAX_ACCOUNTID_LENGTH], long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex, DWORD dwIPAddress, char RefKey[MAX_TYPENAME_LENGTH], bool DeductMileageFlag, WCHAR strMemberNo[MAX_CHANNELING_LENGTH], DWORD AccessIP); // <----- AccessIP Ãß°¡ ¹öÀü // »óǰ¼±¹° // [deprecated] - [AccessIP Ãß°¡ ¹öÀü] »ç¿ë ±ÇÀå // »óǰ ¼±¹° : MU_KR, BT_KR, R2_KR, SUN_KR bool GiftProduct( long GameCode, DWORD SenderSeq, long SenderServerIndex, WCHAR SenderCharName[MAX_CHARACTERID_LENGTH], DWORD ReceiverSeq, long ReceiverServerIndex, WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], WCHAR Message[MAX_MESSAGE_LENGTH], long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq); // [AccessIP Ãß°¡ ¹öÀü] // »óǰ¼±¹° : MU_KR, BT_KR, R2_KR, SUN_KR bool GiftProduct( long GameCode, DWORD SenderSeq, long SenderServerIndex, WCHAR SenderCharName[MAX_CHARACTERID_LENGTH], DWORD ReceiverSeq, long ReceiverServerIndex, WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], WCHAR Message[MAX_MESSAGE_LENGTH], long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, DWORD AccessIP); // <----- AccessIP Ãß°¡ ¹öÀü // [deprecated] - [DeductMileageFlag & AccessIP Ãß°¡ ¹öÀü] »ç¿ë ±ÇÀå // »óǰ¼±¹° : MU_GB bool GiftProduct( DWORD SenderAccountSeq, WCHAR SenderCharName[MAX_CHARACTERID_LENGTH], long SenderServerIndex, DWORD ReceiverAccountSeq, WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], long ReceiverServerIndex, WCHAR SendMessage[MAX_MESSAGE_LENGTH], long GameCode, long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, int CashTypeCode); // [deprecated] - [DeductMileageFlag & AccessIP Ãß°¡ ¹öÀü] »ç¿ë ±ÇÀå // »óǰ¼±¹° : MU_GB, SUN_GB bool GiftProduct( DWORD SenderAccountSeq, WCHAR SenderCharName[MAX_CHARACTERID_LENGTH], long SenderServerIndex, DWORD ReceiverAccountSeq, WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], long ReceiverServerIndex, WCHAR SendMessage[MAX_MESSAGE_LENGTH], long GameCode, long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, int CashTypeCode, bool DeductMileageFlag); // <----- DeductMileageFlag Ãß°¡ // [DeductMileageFlag & AccessIP Ãß°¡ ¹öÀü] // »óǰ¼±¹° : MU_GB, SUN_GB bool GiftProduct( DWORD SenderAccountSeq, WCHAR SenderCharName[MAX_CHARACTERID_LENGTH], long SenderServerIndex, DWORD ReceiverAccountSeq, WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], long ReceiverServerIndex, WCHAR SendMessage[MAX_MESSAGE_LENGTH], long GameCode, long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, int CashTypeCode, bool DeductMileageFlag, // <----- DeductMileageFlag Ãß°¡ DWORD AccessIP); // <----- AccessIP Ãß°¡(client ip) // »óǰ¼±¹° : SUN_CN, SUN_RU, BT_TH, SUN_JP, MU_JP(GameChu, GameOn), MU_VN, MU_TW bool GiftProduct( long GameCode, ShopProtocol::PaymentType PaymentType, DWORD AccountSeq, int USN, WCHAR CharName[MAX_CHARACTERID_LENGTH], long ServerIndex, DWORD ReceiverAccountSeq, WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], long ReceiverServerIndex, WCHAR Message[MAX_MESSAGE_LENGTH], long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, DWORD dwIPAddress, bool DeductMileageFlag); // »óǰ¼±¹° : MU_TH bool GiftProduct( long GameCode, ShopProtocol::PaymentType PaymentType, DWORD AccountSeq, char AccountID[MAX_ACCOUNTID_LENGTH], WCHAR CharName[MAX_CHARACTERID_LENGTH], long ServerIndex, DWORD ReceiverAccountSeq, char ReceiverAccountID[MAX_ACCOUNTID_LENGTH], WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], long ReceiverServerIndex, WCHAR Message[MAX_MESSAGE_LENGTH], long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, DWORD dwIPAddress, char RefKey[MAX_TYPENAME_LENGTH], bool DeductMileageFlag); // [deprecated] - [AccessIP Ãß°¡ ¹öÀü] »ç¿ë ±ÇÀå // »óǰ¼±¹° : BT_CNL bool GiftProduct( long GameCode, ShopProtocol::PaymentType PaymentType, DWORD AccountSeq, char AccountID[MAX_ACCOUNTID_LENGTH], WCHAR CharName[MAX_CHARACTERID_LENGTH], long ServerIndex, DWORD ReceiverAccountSeq, char ReceiverAccountID[MAX_ACCOUNTID_LENGTH], WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], long ReceiverServerIndex, WCHAR Message[MAX_MESSAGE_LENGTH], long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, DWORD dwIPAddress, char RefKey[MAX_TYPENAME_LENGTH], bool DeductMileageFlag, WCHAR strMemberNo[MAX_CHANNELING_LENGTH]); // [AccessIP Ãß°¡ ¹öÀü] // »óǰ¼±¹° : BT_CNL bool GiftProduct( long GameCode, ShopProtocol::PaymentType PaymentType, DWORD AccountSeq, char AccountID[MAX_ACCOUNTID_LENGTH], WCHAR CharName[MAX_CHARACTERID_LENGTH], long ServerIndex, DWORD ReceiverAccountSeq, char ReceiverAccountID[MAX_ACCOUNTID_LENGTH], WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], long ReceiverServerIndex, WCHAR Message[MAX_MESSAGE_LENGTH], long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, DWORD dwIPAddress, char RefKey[MAX_TYPENAME_LENGTH], bool DeductMileageFlag, WCHAR strMemberNo[MAX_CHANNELING_LENGTH], DWORD AccessIP); // °øÅë ¼­ºñ½º // »óǰ ¼¥ ½ºÅ©¸³Æ® ÃֽйöÀü Á¤º¸ Á¶È¸ : ¸ðµç °ÔÀÓ bool InquireSalesZoneScriptVersion( long GameCode, long SalesZone); // ¹è³Ê ½ºÅ©¸³Æ® ÃֽйöÀü Á¤º¸ Á¶È¸ : ¸ðµç °ÔÀÓ bool InquireBannerZoneScriptVersion( long GameCode, long BannerZone); // [deprecated] ij½Ã¼±¹° : ¸ðµç °ÔÀÓ, [AccessIP Ãß°¡ ¹öÀü] »ç¿ë ±ÇÀå bool GiftCash( DWORD SenderAccountSeq, long SendServerIndex, WCHAR SendCharName[MAX_CHARACTERID_LENGTH], DWORD ReceiverAccountSeq, long ReceiverServerIndex, WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], WCHAR Message[MAX_MESSAGE_LENGTH], double CashValue, long GameCode); // ij½Ã¼±¹° : ¸ðµç °ÔÀÓ, [AccessIP Ãß°¡ ¹öÀü] bool GiftCash( DWORD SenderAccountSeq, long SendServerIndex, WCHAR SendCharName[MAX_CHARACTERID_LENGTH], DWORD ReceiverAccountSeq, long ReceiverServerIndex, WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], WCHAR Message[MAX_MESSAGE_LENGTH], double CashValue, long GameCode, DWORD AccessIP); // <----- AccessIP Ãß°¡ ¹öÀü // »óǰ ±¸¸Å/¼±¹° °¡´É ¿©ºÎ Á¶È¸ : ¸ðµç °ÔÀÓ bool InquireBuyGiftPossibility( DWORD AccountSeq, long GameCode); // À̺¥Æ® »óǰ ¸ñ·Ï Á¶È¸ : ¸ðµç °ÔÀÓ bool InquireEventProductList( long GameCode, DWORD AccountSeq, long SalesZone, long ProductDisplaySeq); // Àü½Ã »óǰ ÀÜ¿© °³¼ö Á¶È¸ : ¸ðµç °ÔÀÓ bool InquireProductLeftCount( long GameCode, long PackageSeq); // [deprecated] º¸°üÇÔ ¸®½ºÆ® Á¶È¸ : ¸ðµç °ÔÀÓ, InquireStorageListEx() »ç¿ë ±ÇÀå bool InquireStorageList( DWORD AccountSeq, long GameCode, long SalesZone); // [deprecated] º¸°üÇÔ ¸®½ºÆ® ÆäÀÌÁö Á¶È¸ : ¸ðµç °ÔÀÓ, InquireStorageListPageEx() »ç¿ë ±ÇÀå bool InquireStorageListPage( DWORD AccountSeq, int GameCode, int SalesZone, char StorageType, int NowPage, int PageSize); // [deprecated] º¸°üÇÔ ¸®½ºÆ® ÆäÀÌÁö Á¶È¸(¼±¹° ¸Þ½ÃÁö Á¦¿Ü) : ¸ðµç °ÔÀÓ, InquireStorageListPageNoGiftMessageEx() »ç¿ë ±ÇÀå bool InquireStorageListPageNoGiftMessage( DWORD AccountSeq, int GameCode, int SalesZone, char StorageType, int NowPage, int PageSize); // º¸°üÇÔ ¸®½ºÆ®¸¦ Á¶È¸(¸¸·á½ÃÁ¡ Ãß°¡) : ¸ðµç °ÔÀÓ bool InquireStorageListEx( DWORD AccountSeq, long GameCode, long SalesZone); // º¸°üÇÔ ¸®½ºÆ® ÆäÀÌÁö¸¦ Á¶È¸(¸¸·á½ÃÁ¡ Ãß°¡) : ¸ðµç °ÔÀÓ bool InquireStorageListPageEx( DWORD AccountSeq, int GameCode, int SalesZone, char StorageType, int NowPage, int PageSize); // º¸°üÇÔ ¸®½ºÆ® ÆäÀÌÁö¸¦ Á¶È¸ÇÑ´Ù(¼±¹° ¸Þ½ÃÁö Á¦¿Ü, ¸¸·á½ÃÁ¡ Ãß°¡) : ¸ðµç °ÔÀÓ bool InquireStorageListPageNoGiftMessageEx( DWORD AccountSeq, int GameCode, int SalesZone, char StorageType, int NowPage, int PageSize); // º¸°üÇÔ »óǰ »ç¿ë : ¸ðµç °ÔÀÓ bool UseStorage( DWORD AccountSeq, long GameCode, DWORD IPAddress, long StorageSeq, long StorageItemSeq, char StorageItemType, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex); // º¸°üÇÔ »óǰ »ç¿ë EX : SUN_GB // °á°ú·Î CashTypeÀ» Ãß°¡ ¸®ÅÏÇÔ bool UseStorageEx( DWORD AccountSeq, long GameCode, DWORD IPAddress, long StorageSeq, long StorageItemSeq, char StorageItemType, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex); // º¸°üÇÔ »óǰ »ç¿ë EX : SUN_CN // °á°ú·Î DeductMileageFlag¸¦ Ãß°¡ ¸®ÅÏÇÔ. (false : ij½Ã»óǰ(0), true : ¸¶Àϸ®Áö »óǰ(1)) bool UseStorageExDeductMileageFlag( DWORD AccountSeq, long GameCode, DWORD IPAddress, long StorageSeq, long StorageItemSeq, char StorageItemType, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex); // º¸°üÇÔ »óǰ »ç¿ëÇϱ⠷ѹé : ¸ðµç °ÔÀÓ bool RollbackUseStorage( DWORD AccountSeq, long GameCode, long StorageSeq, long StorageItemSeq); // º¸°üÇÔ »óǰ ¹ö¸² : ¸ðµç °ÔÀÓ bool ThrowStorage( DWORD AccountSeq, long GameCode, long StorageSeq, long StorageItemSeq, char StorageItemType); // ¸¶Àϸ®Áö ¼ÒÁø : ¸ðµç °ÔÀÓ bool MileageDeduct( DWORD AccountSeq, long GameCode, long DeductCategory, long MileageSection, long MileageDeductPoint, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex); // ¸¶Àϸ®Áö Àû¸³ : ¸ðµç °ÔÀÓ bool MileageSave( DWORD AccountSeq, long GameCode, long MileageType, long MileageSection, long MileagePoint, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex); // ½Ç½Ã°£ ¸¶Àϸ®Áö Àû¸³ : ¸ðµç °ÔÀÓ bool MileageLiveSaveUp( DWORD AccountSeq, long GameCode, long MileageSection, long SourceType); // ¾ÆÀÌÅÛ ½Ã¸®¾ó ÄÚµå ¾÷µ¥ÀÌÆ® : ¸ðµç °ÔÀÓ bool ItemSerialUpdate( DWORD AccountSeq, long GameCode, long StorageSeq, long StorageItemSeq, INT64 InGameUseCode); // ÀΰÔÀÓ Æ÷ÀÎÆ® À¯Çüº° Áö±Þ ÆÛ¼¾Æ® Á¶È¸ : ¸ðµç °ÔÀÓ bool InquireInGamePointValue( long GameCode, long ServerType, long AccessType); protected: // [do not override] - ·Î±ëÈÄ ÀûÀýÇÑ ÀÀ´äó¸® ÇÔ¼ö(On...()) È£Ãâ void OnReceive(PBYTE buffer, int size); // [do not override] - ·Î±ë¸¸ Çϰí OnNetConnect() È£Ãâ void OnConnect(bool success, DWORD error); // [do not override] - ·Î±ë¸¸ Çϰí OnNetSend() È£Ãâ void OnSend(int size); // [do not override] - ·Î±ë¸¸ Çϰí OnNetClose() È£Ãâ void OnClose(DWORD error); protected: // ¼¥ ¼­¹ö ¿¬°áÇÑ °á°ú 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; // ij½ÃÁ¶È¸ °á°ú // ij½ÃÁ¶È¸ °á°ú : MU_KR, BT_KR, R2_KR, SUN_KR virtual void OnInquireCash( DWORD AccountSeq, double CashSum, double PointSum, double MileageSum, int DetailCount, ShopProtocol::STCashDetail Detail[], long ResultCode); // ij½ÃÁ¶È¸ °á°ú : MU_GB, SUN_GB virtual void OnInquireCash( DWORD AccountSeq, double CashSum, double PointSum, double MileageSum, int ListCount, ShopProtocol::STCashDetail_GB Detail[], long ResultCode); // ij½ÃÁ¶È¸ °á°ú : SUN_CN, SUN_RU, BT_TH, SUN_JP, MU_JP(GameChu, GameOn), MU_TH, MU_TW, MU_VN virtual void OnInquireCash( DWORD AccountSeq, long ResultCode, long OutBoundResultCode, double CashSum, double MileageSum); // ijÁöÁ¶È¸ °á°ú : BT_CNL virtual void OnInquireCash( DWORD AccountSeq, char AccountID[MAX_ACCOUNTID_LENGTH], double CashSum, double PointSum, double MileageSum, int DetailCount, ShopProtocol::STCashDetail Detail[], long ResultCode, long OutBoundResultCode); // »óǰ±¸¸Å °á°ú // »óǰ±¸¸Å °á°ú : MU_KR, BT_KR, R2_KR, SUN_KR virtual void OnBuyProduct( DWORD AccountSeq, long ResultCode, long LeftProductCount); // »óǰ±¸¸Å °á°ú : SUN_CN, SUN_RU, BT_TH, SUN_JP, MU_JP(GameChu, GameOn), MU_TH, MU_TW, MU_VN virtual void OnBuyProduct( DWORD AccountSeq, long ResultCode, long OutBoundResultCode, long LeftProductCount); // »óǰ±¸¸Å °á°ú : BT_CNL virtual void OnBuyProduct( DWORD AccountSeq, char AccountID[MAX_ACCOUNTID_LENGTH], long LeftProductCount, long ResultCode, long OutBoundResultCode); // »óǰ¼±¹° °á°ú // »óǰ¼±¹° °á°ú : MU_KR, BT_KR, R2_KR, SUN_KR, MU_GB, SUN_GB virtual void OnGiftProduct( DWORD SenderAccountSeq, DWORD ReceiverAccountSeq, double GiftSendLimit, long LeftProductCount, long ResultCode); // »óǰ¼±¹° °á°ú : SUN_CN, SUN_RU, BT_TH, SUN_JP, MU_JP(GameChu, GameOn), MU_TH, MU_TW, MU_VN virtual void OnGiftProduct( DWORD SenderAccountSeq, long ResultCode, long OutBoundResultCode, DWORD ReceiverAccountSeq, long LeftProductCount); // »óǰ¼±¹° °á°ú : BT_CNL virtual void OnGiftProduct( DWORD SenderAccountSeq, char SenderAccountID[MAX_ACCOUNTID_LENGTH], WCHAR SenderCharName[MAX_CHARACTERID_LENGTH], DWORD ReceiverAccountSeq, char ReceiverAccountID[MAX_ACCOUNTID_LENGTH], WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], WCHAR Message[MAX_MESSAGE_LENGTH], double LimitedCash, long LeftProductCount, long ResultCode, long OutBoundResultCode); // °øÅë ¼­ºñ½º // »óǰ ¼¥ ½ºÅ©¸³Æ® ÃֽйöÀü Á¤º¸ Á¶È¸ : ¸ðµç °ÔÀÓ virtual void OnInquireSalesZoneScriptVersion( unsigned short SalesZone, unsigned short Year, unsigned short YearIdentity, long ResultCode) = 0; // ¹è³Ê ½ºÅ©¸³Æ® ÃֽйöÀü Á¤º¸ Á¶È¸ : ¸ðµç °ÔÀÓ virtual void OnInquireBannerZoneScriptVersion( unsigned short BannerZone, unsigned short Year, unsigned short YearIdentity, long ResultCode) = 0; // ij½Ã ¼±¹° °á°ú : ¸ðµç °ÔÀÓ virtual void OnGiftCash( DWORD SenderSeq, DWORD ReceiverSeq, long ResultCode, double GiftSendLimit) = 0; // »óǰ ±¸¸Å/¼±¹° °¡´É Á¶È¸ °á°ú : ¸ðµç °ÔÀÓ virtual void OnInquireBuyGiftPossibility( DWORD AccountID, long ResultCode, long ItemBuy, long Present, double MyPresentCash, double MyPresentSendLimit) = 0; // À̺¥Æ® »óǰ ¸®½ºÆ® Á¶È¸ °á°ú : ¸ðµç °ÔÀÓ virtual void OnInquireEventProductList( DWORD AccountSeq, long ProductDisplaySeq, int PackagesCount, long Packages[]) = 0; // Àü½Ã »óǰ ÀÜ¿© °³¼ö Á¶È¸ °á°ú : ¸ðµç °ÔÀÓ virtual void OnInquireProductLeftCount( long PackageSeq, long LeftCount) = 0; // [deprecated] º¸°üÇÔ Á¶È¸ °á°ú : ¸ðµç °ÔÀÓ virtual void OnInquireStorageList( DWORD AccountID, long ListCount, long ResultCode, ShopProtocol::STStorage StorageList[]); // [deprecated] º¸°üÇÔ ÆäÀÌÁö Á¶È¸ °á°ú : ¸ðµç °ÔÀÓ virtual void OnInquireStorageListPage( DWORD AccountID, int ResultCode, char StorageType, int NowPage, int TotalPage, int TotalCount, int ListCount, ShopProtocol::STStorage StorageList[]) = 0; // [deprecated] º¸°üÇÔ ÆäÀÌÁö Á¶È¸ °á°ú(¼±¹° ¸Þ½ÃÁö Á¦¿Ü) : ¸ðµç °ÔÀÓ virtual void OnInquireStorageListPageNoGiftMessage( DWORD AccountID, int ResultCode, char StorageType, int NowPage, int TotalPage, int TotalCount, int ListCount, ShopProtocol::STStorageNoGiftMessage StorageList[]); // º¸°üÇÔ Á¶È¸ °á°ú(¸¸·á½ÃÁ¡ Ãß°¡) : ¸ðµç °ÔÀÓ virtual void OnInquireStorageListEx( DWORD AccountID, long ListCount, long ResultCode, ShopProtocol::STStorageEx StorageListEx[]); // º¸°üÇÔ ÆäÀÌÁö Á¶È¸ °á°ú(¸¸·á½ÃÁ¡ Ãß°¡) : ¸ðµç °ÔÀÓ virtual void OnInquireStorageListPageEx( DWORD AccountID, int ResultCode, char StorageType, int NowPage, int TotalPage, int TotalCount, int ListCount, ShopProtocol::STStorageEx StorageListEx[]); // º¸°üÇÔ ÆäÀÌÁö Á¶È¸ °á°ú(¼±¹° ¸Þ½ÃÁö Á¦¿Ü,¸¸·á½ÃÁ¡ Ãß°¡) : ¸ðµç °ÔÀÓ virtual void OnInquireStorageListPageNoGiftMessageEx( DWORD AccountID, int ResultCode, char StorageType, int NowPage, int TotalPage, int TotalCount, int ListCount, ShopProtocol::STStorageNoGiftMessageEx StorageListEx[]); // º¸°üÇÔ »óǰ »ç¿ëÇϱ⠰á°ú : ¸ðµç °ÔÀÓ virtual void OnUseStorage( DWORD AccountSeq, long ResultCode, char InGameProductID[MAX_TYPENAME_LENGTH], BYTE PropertyCount, long ProductSeq, long StorageSeq, long StorageItemSeq, ShopProtocol::STItemProperty PropertyList[]); // º¸°üÇÔ »óǰ »ç¿ëÇϱ⠰á°ú Ex : SUN_GB // °á°ú°ª CashType Ãß°¡ virtual void OnUseStorageEx( DWORD AccountSeq, long ResultCode, char InGameProductID[MAX_TYPENAME_LENGTH], BYTE PropertyCount, long ProductSeq, long StorageSeq, long StorageItemSeq, ShopProtocol::STItemProperty PropertyList[], int CashType); // º¸°üÇÔ »óǰ »ç¿ëÇϱ⠰á°ú Ex : SUN_CN // DeductMileageFlag Ãß°¡ (false : ij½Ã»óǰ(0), true : ¸¶Àϸ®Áö »óǰ(1)) virtual void OnUseStorageExDeductMileageFlag( DWORD AccountSeq, long ResultCode, char InGameProductID[MAX_TYPENAME_LENGTH], BYTE PropertyCount, long ProductSeq, long StorageSeq, long StorageItemSeq, ShopProtocol::STItemProperty PropertyList[], bool DeductMileageFlag); // º¸°üÇÔ »óǰ »ç¿ëÇϱ⠷ѹé : ¸ðµç °ÔÀÓ virtual void OnRollbackUseStorage( DWORD AccountSeq, long ResultCode) = 0; // º¸°üÇÔ »óǰ ¹ö¸®±â °á°ú : ¸ðµç °ÔÀÓ virtual void OnThrowStorage( DWORD AccountSeq, long ResultCode) = 0; // ¸¶Àϸ®Áö ¼ÒÁø : ¸ðµç °ÔÀÓ virtual void OnMileageDeduct( DWORD AccountSeq, long ResultCode) = 0; // ¸¶Àϸ®Áö Àû¸³ : ¸ðµç °ÔÀÓ virtual void OnMileageSave( DWORD AccountSeq, long ResultCode) = 0; // ½Ç½Ã°£ ¸¶Àϸ®Áö Àû¸³ : ¸ðµç °ÔÀÓ virtual void OnMileageLiveSaveUp( DWORD AccountSeq, long ResultCode) = 0; // ¾ÆÀÌÅÛ ½Ã¸®¾ó ÄÚµå ¾÷µ¥ÀÌÆ® : ¸ðµç °ÔÀÓ virtual void OnItemSerialUpdate( DWORD AccountSeq, long ResultCode) = 0; // ¼¥ ½ºÅ©¸³Æ® ¹öÀü Á¤º¸ ¾÷µ¥ÀÌÆ® : ¸ðµç °ÔÀÓ virtual void OnUpdateVersion( long GameCode, unsigned short SalesZone, unsigned short year, unsigned short yearIdentity) = 0; // ¹è³Ê ½ºÅ©¸³Æ® ¹öÀü Á¤º¸ ¾÷µ¥ÀÌÆ® : ¸ðµç °ÔÀÓ virtual void OnUpdateBannerVersion( long GameCode, unsigned short BannerZone, unsigned short year, unsigned short yearIdentity) = 0; // ÀΰÔÀÓ Æ÷ÀÎÆ® À¯Çüº° Áö±Þ ÆÛ¼¾Æ® Á¶È¸ : HX Àü¿ë virtual void OnInquireInGamePointValue( long ResultCode, long PointCount, ShopProtocol::STPointDetail PointList[]); private: // ·Î±× »ç¿ë void WriteLog(const char* szFormat, ...); };