#pragma once // ¼¥¼­¹ö ¿¬µ¿ »ùÇà #include // ÇÊ¿äÇÑ ClientStub ¶óÀ̺귯¸® import #include #include #include "ShopEventHandler.h" class CShopEH : public CShopEventHandler { public: CShopEH(void); virtual ~CShopEH(void); protected: // ¼¥¼­¹ö ·Î±× ÀÛ¼º À̺¥Æ® : ÇÔ¼ö³»ºÎ¿¡¼­ ·Î±×¸¦ ³²±æ¼ö ÀÖµµ·Ï ÇØ¾ß ÇÔ. void WriteLog(char* szMsg); // ¼¥¼­¹öÀÇ ¿¬°á ¼º°ø ¿©ºÎ // success : ¿¬°á ¼º°ø ¿©ºÎ // error : ¿¡·¯ÄÚµå void OnNetConnect(bool success, DWORD error); // ¼¥¼­¹ö·Î º¸³½ µ¥ÀÌŸ Àü¼Û ¿©ºÎ // size : Àü¼ÛµÈ ÆÐŶ »çÀÌÁî void OnNetSend(int size); // ¼¥¼­¹ö¿Í ¼¼¼ÇÀÌ ²÷°åÀ»¶§ (¼¥¼­¹ö°¡ Á×Àº°ÍÀ¸·Î ó¸® ÇØ¾ßÇÑ´Ù.) // error: ¿¡·¯ÄÚµå void OnNetClose( DWORD error ); protected: // »óǰ ¼¥ ½ºÅ©¸³Æ® ÃֽйöÀü Á¤º¸ Á¶È¸ virtual void OnInquireSalesZoneScriptVersion( unsigned short SalesZone, unsigned short Year, unsigned short YearIdentity, long ResultCode); // ¹è³Ê ½ºÅ©¸³Æ® ÃֽйöÀü Á¤º¸ Á¶È¸ virtual void OnInquireBannerZoneScriptVersion( unsigned short BannerZone, unsigned short Year, unsigned short YearIdentity, long ResultCode); // 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 virtual void OnInquireCash( DWORD AccountSeq, double CashSum, double PointSum, double MileageSum, int ListCount, ShopProtocol::STCashDetail_GB Detail[], long ResultCode); // ij½ÃÁ¶È¸ °á°ú : SUN_RU, 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_RU, 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 virtual void OnGiftProduct( DWORD SenderSeq, DWORD ReceiverSeq, double LimitedCash, long LeftProductCount, long ResultCode); // »óǰ¼±¹° °á°ú : SUN_RU, 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); // ij½Ã ¼±¹° °á°ú : ¸ðµç °ÔÀÓ virtual void OnGiftCash( DWORD SenderSeq, DWORD ReceiverSeq, long ResultCode, double GiftSendLimit); // »óǰ ±¸¸Å/¼±¹° °¡´É Á¶È¸ °á°ú : ¸ðµç °ÔÀÓ virtual void OnInquireBuyGiftPossibility( DWORD AccountID, long ResultCode, long ItemBuy, long Present, double MyPresentCash, double MyPresentSendLimit); // À̺¥Æ® »óǰ ¸®½ºÆ® Á¶È¸ °á°ú : ¸ðµç °ÔÀÓ virtual void OnInquireEventProductList( DWORD AccountSeq, long ProductDisplaySeq, int PackagesCount, long Packages[]); // Àü½Ã »óǰ ÀÜ¿© °³¼ö Á¶È¸ °á°ú : ¸ðµç °ÔÀÓ virtual void OnInquireProductLeftCount( long PackageSeq, long LeftCount); // º¸°üÇÔ Á¶È¸ °á°ú : ¸ðµç °ÔÀÓ virtual void OnInquireStorageList( DWORD AccountID, long ListCount, long ResultCode, ShopProtocol::STStorage StorageList[]); // º¸°üÇÔ ÆäÀÌÁö Á¶È¸ °á°ú virtual void OnInquireStorageListPage( DWORD AccountID, int ResultCode, char StorageType, int NowPage, int TotalPage, int TotalCount, int ListCount, ShopProtocol::STStorage StorageList[]); // [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); // º¸°üÇÔ »óǰ ¹ö¸®±â °á°ú : ¸ðµç °ÔÀÓ virtual void OnThrowStorage( DWORD AccountSeq, long ResultCode); // ¸¶Àϸ®Áö ¼ÒÁø : ¸ðµç °ÔÀÓ virtual void OnMileageDeduct( DWORD AccountSeq, long ResultCode); // ¸¶Àϸ®Áö Àû¸³ : ¸ðµç °ÔÀÓ virtual void OnMileageSave( DWORD AccountSeq, long ResultCode); // ½Ç½Ã°£ ¸¶Àϸ®Áö Àû¸³ : ¸ðµç °ÔÀÓ virtual void OnMileageLiveSaveUp( DWORD AccountSeq, long ResultCode); // ¾ÆÀÌÅÛ ½Ã¸®¾ó ÄÚµå ¾÷µ¥ÀÌÆ® : ¸ðµç °ÔÀÓ virtual void OnItemSerialUpdate( DWORD AccountSeq, long ResultCode); // ¼¥ ½ºÅ©¸³Æ® ¹öÀü Á¤º¸ ¾÷µ¥ÀÌÆ® : ¸ðµç °ÔÀÓ virtual void OnUpdateVersion( long GameCode, unsigned short SalesZone, unsigned short year, unsigned short yearIdentity); // ¹è³Ê ½ºÅ©¸³Æ® ¹öÀü Á¤º¸ ¾÷µ¥ÀÌÆ® : ¸ðµç °ÔÀÓ virtual void OnUpdateBannerVersion( long GameCode, unsigned short BannerZone, unsigned short year, unsigned short yearIdentity); // ÀΰÔÀÓ Æ÷ÀÎÆ® À¯Çüº° Áö±Þ ÆÛ¼¾Æ® Á¶È¸ : HX Àü¿ë virtual void OnInquireInGamePointValue( long ResultCode, long PointCount, ShopProtocol::STPointDetail PointList[]); private: CRITICAL_SECTION m_cs; // ·Î±ëÀ» À§ÇÑ lock CString ConvertTime(DWORD dwTime); };