#pragma once #pragma pack(push, 1) //------------------------------------------------- // Cash Packet (Nexon) //------------------------------------------------- struct TBillingHeader { BYTE cPacketID; // 0xAF °íÁ¤ UINT nLength; // }; #if (defined(_KR) || defined(_US)) && defined(_CASHSERVER) struct TBonusProductInfo { UINT nProductNo; // º¸³Ê½º »óǰ ¹øÈ£ char szExtend[10]; // º¸³Ê½º°ª }; struct TProductInquiry { int nCommodityItemSN; // CashCommodity »óǰ¹øÈ£ int nProductNo; // »óǰ¹øÈ£ int nRelationProductNo; // ¿¬°ü»óǰ ¾Æ´Ò°æ¿ì 0 ´ëÇ¥»óǰÀÏ °æ¿ì product no¿Í µ¿ÀÏ short wProductExpire; // »ç¿ë±â°£ (ÀÏ) short wProductPieces; // °³º° »óǰ¼ö char szProductID[100]; // °ÔÀÓ¼­¹ö¿¡¼­ »ç¿ëÇÏ´Â DBID char szProductGUID[32]; // NISMS¿¡¼­ ºÎ¿©µÇ´Â »óǰ GUID Å×½ºÆ®, »ó¿ëȯ°æ µ¿ÀÏÇÑ °ª int nPaymentType; // ÁöºÒ¼ö´Ü char szProductType[2]; // »óǰŸÀÔ int nSalePrice; // »óǰÆÇ¸Å±Ý¾× int nCategoryNo; // »óǰÀÌ ¼ÓÇÑ Ä«Å×°í¸® ¹øÈ£ short wProductStatus; // »óǰ »óÅ ¹øÈ£ char cBonusProductCount; // º¸³Ê½º»óǰ ÃÑ Ä«¿îÆ® std::vector vBonusProduct; }; struct TProductItem { int nProductNo; // »óǰ¹øÈ£ short wOrderQuantity; // ÁÖ¹®¼ö·® char szExtend[10]; // È®Àå°ª }; struct TPickupItemSub { UINT nProductNo; // »óǰ¹øÈ£ char szProductName[100];// »óǰÀ̸§ char szProductID[100]; // °ÔÀÓ¼­¹ö¿¡¼­ »ç¿ëÇÏ´Â DBID USHORT wProductExpire; // »ç¿ë±â°£ (ÀÏ) USHORT wProductPieces; // °³º° »óǰ¼ö char szProductAttribute[64][5]; // »óǰ ¼Ó¼º°ª }; struct TPickupItemBonus { UINT nBonusProduct; // º¸³Ê½º »óǰ¹øÈ£ UINT nBonusAmount; // º¸³Ê½º ±Ý¾× }; struct TInventoryInquiryProduct { int nOrderNo; int nProductNo; char cProductKind; char szProductName[100]; char szProductID[100]; short wProductExpire; short wProductPieces; short wOrderQuantity; short wRemainProductQuantity; char cPresent; char cRead; char cSenderServerNo; char szSenderGameID[64]; char szSenderPresentMessage[100]; char szProductAttribute[64][5]; char szExtend[10]; }; #endif /*------------------------------------------------- Cash Packet AccountDBID¸¦ ²À ¾Õ¿¡ ½áÁà¾ßÇÔ. Àú°É·Î À¯Àú ãÀ½ -------------------------------------------------*/ struct TCashHeader { UINT nAccountDBID; }; // CASH_BALANCEINQUIRY struct TQCashBalanceInquiry : public TCashHeader { char szAccountName[IDLENMAX]; bool bOpen; bool bServer; UINT nIp; #if defined(_KR) || defined(_US) UINT nNexonSN; #endif // _KR _CH }; struct TACashBalanceInquiry : public TCashHeader { int nResult; int nCashBalance; int nPetal; bool bOpen; bool bServer; #if defined(_US) int nNotRefundableBalance; // #endif // _US }; struct TCashItemBase { int nItemSN; TItem CashItem; DWORD dwPartsColor1; // ÆÄÃ÷ »ö±ò DWORD dwPartsColor2; // ÆÄÃ÷ »ö±ò2 TVehicleItem VehiclePart1; TVehicleItem VehiclePart2; int nPaidCashAmount; }; struct TCashBuyItem: TCashItemBase { char cCartIndex; bool bFail; }; // CASH_BUY struct TQCashBuyBase : public TCashHeader { INT64 biCharacterDBID; char cWorldSetID; char szCharacterName[NAMELENMAX]; char cAge; bool bPCBang; int nMapID; int nChannelID; #if defined(PRE_ADD_CASH_REFUND) bool bMoveCashInven; // ij½¬Àκ¥À¸·Î ¹Ù·Î ¿Å±â±â Ç÷¡±× #endif char cPaymentRules; // Cash::PaymentRules }; struct TQCashBuy: TQCashBuyBase { char cCartType; // ±¸¸Å īƮ ŸÀÔ (3,7: PREVIEWCARTLISTMAX, ³ª¸ÓÁö: CARTLISTMAX, 50 + eInstantCashShopBuyType: °£Æí°áÀç) char cProductCount; #if defined(PRE_ADD_SALE_COUPON) INT64 biSaleCouponSerial; // ¼¼ÀÏÄíÆù »ç¿ë #endif TCashBuyItem BuyList[PREVIEWCARTLISTMAX]; }; struct TACashBuy : public TCashHeader { int nResult; char cPaymentRules; // Cash::PaymentRules int nPetalBalance; char cCartType; // ±¸¸Å īƮ ŸÀÔ (3,7: PREVIEWCARTLISTMAX, ³ª¸ÓÁö: CARTLISTMAX, 50 + eInstantCashShopBuyType: °£Æí°áÀç) #if defined(PRE_ADD_CASH_REFUND) TPaymentItemInfoEx ItemList[PREVIEWCARTLISTMAX]; #endif #if defined(PRE_ADD_SALE_COUPON) INT64 biSaleCouponSerial; #endif #if defined( PRE_ADD_NEW_MONEY_SEED ) INT64 nSeedPoint; #endif char cProductCount; TCashBuyItem BuyList[PREVIEWCARTLISTMAX]; }; // CASH_PACKAGEBUY struct TQCashPackageBuy: TQCashBuyBase { int nPackageSN; // ÆÐŰÁö ´ëÇ¥ SN #if defined(PRE_ADD_SALE_COUPON) INT64 biSaleCouponSerial; // ¼¼ÀÏÄíÆù »ç¿ë #endif char cPackageCount; // ÆÐŰÁö¾È¿¡ »óǰµé TCashItemBase BuyList[PACKAGEITEMMAX]; }; struct TACashPackageBuy : public TCashHeader { int nResult; char cPaymentRules; // Cash::PaymentRules int nPetalBalance; int nPackageSN; // ÆÐŰÁö ´ëÇ¥ SN #if defined(PRE_ADD_CASH_REFUND) TPaymentPackageItemInfoEx PaymentItem; #endif #if defined(PRE_ADD_SALE_COUPON) INT64 biSaleCouponSerial; #endif #if defined( PRE_ADD_NEW_MONEY_SEED ) INT64 nSeedPoint; #endif char cPackageCount; TCashItemBase BuyList[PACKAGEITEMMAX]; }; struct TCashGiftItem { char cCartIndex; int nItemSN; int nItemID; char cItemOption; bool bFail; }; struct TCashPackageGiftItem { int nItemSN; int nItemID; char cItemOption; }; struct TQCashGiftBase : public TCashHeader { INT64 biCharacterDBID; char cWorldSetID; char szCharacterName[NAMELENMAX]; char cAge; bool bPCBang; int nMapID; int nChannelID; WCHAR wszReceiverCharacterName[NAMELENMAX]; WCHAR wszMessage[GIFTMESSAGEMAX]; #if defined(PRE_ADD_CADGE_CASH) int nMailDBID; #endif // #if defined(PRE_ADD_CADGE_CASH) }; // CASH_GIFT struct TQCashGift: TQCashGiftBase { char cCartType; // ±¸¸Å īƮ ŸÀÔ (3,7: PREVIEWCARTLISTMAX, ³ª¸ÓÁö: CARTLISTMAX, 50 + eInstantCashShopBuyType: °£Æí°áÀç) char cProductCount; TCashGiftItem GiftList[PREVIEWCARTLISTMAX]; }; struct TACashGift : public TCashHeader { UINT nReceiverAccountDBID; INT64 biReceiverCharacterDBID; int nReceiverGiftCount; int nResult; int nPetalBalance; char cCartType; // ±¸¸Å īƮ ŸÀÔ (3,7: PREVIEWCARTLISTMAX, ³ª¸ÓÁö: CARTLISTMAX, 50 + eInstantCashShopBuyType: °£Æí°áÀç) #if defined(PRE_ADD_CADGE_CASH) int nMailDBID; #endif // #if defined(PRE_ADD_CADGE_CASH) #if defined( PRE_ADD_NEW_MONEY_SEED ) INT64 nSeedPoint; #endif char cGiftCount; TCashGiftItem GiftList[PREVIEWCARTLISTMAX]; }; // CASH_PACKAGEGIFT struct TQCashPackageGift: TQCashGiftBase { int nPackageSN; // ÆÐŰÁö ´ëÇ¥ SN char cPackageCount; // ÆÐŰÁö¾È¿¡ »óǰµé TCashPackageGiftItem GiftList[PACKAGEITEMMAX]; }; struct TACashPackageGift : public TCashHeader { UINT nReceiverAccountDBID; INT64 biReceiverCharacterDBID; int nReceiverGiftCount; int nResult; int nPetalBalance; int nPackageSN; // ÆÐŰÁö ´ëÇ¥ SN #if defined(PRE_ADD_CADGE_CASH) int nMailDBID; #endif // #if defined(PRE_ADD_CADGE_CASH) #if defined( PRE_ADD_NEW_MONEY_SEED ) INT64 nSeedPoint; #endif char cPackageCount; TCashPackageGiftItem GiftList[PACKAGEITEMMAX]; }; // CASH_COUPON struct TQCashCoupon : public TCashHeader { INT64 biCharacterDBID; char cWorldSetID; char szCharacterName[NAMELENMAX]; WCHAR wszCoupon[COUPONMAX]; bool bPCBang; }; struct TACashCoupon : public TCashHeader { int nResult; }; // CASH_DELUSER struct TQCashDelUser : public TCashHeader { }; // CASH_VIPBUY, struct TQCashVIPBuy : public TCashHeader { INT64 biCharacterDBID; int nItemSN; char cWorldSetID; bool bPCBang; int nMapID; int nChannelID; bool bAutoPay; // 0=¼öµ¿°áÁ¦, 1=ÀÚµ¿°áÁ¦ bool bServer; // À¯Àú°¡ »ê°ÇÁö ¼­¹ö¿¡¼­ º¸³½°ÇÁö }; struct TACashVIPBuy : public TCashHeader { int nResult; int nPetal; int nCash; int nItemSN; int nVIPTotalPoint; __time64_t tVIPEndDate; bool bAutoPay; // 0=¼öµ¿°áÁ¦, 1=ÀÚµ¿°áÁ¦ bool bServer; // À¯Àú°¡ »ê°ÇÁö ¼­¹ö¿¡¼­ º¸³½°ÇÁö #if defined( PRE_ADD_NEW_MONEY_SEED ) INT64 nSeedPoint; #endif }; // CASH_VIPGIFT, struct TQCashVIPGift : public TCashHeader { INT64 biCharacterDBID; int nItemSN; char cWorldSetID; bool bPCBang; int nMapID; int nChannelID; WCHAR wszReceiverCharacterName[NAMELENMAX]; WCHAR wszMessage[GIFTMESSAGEMAX]; }; struct TACashVIPGift : public TCashHeader { int nResult; int nPetal; int nCash; int nItemSN; UINT nReceiverAccountDBID; INT64 biReceiverCharacterDBID; int nReceiverGiftCount; #if defined( PRE_ADD_NEW_MONEY_SEED ) INT64 nSeedPoint; #endif }; #ifdef PRE_ADD_LIMITED_CASHITEM struct TQGetLimitedItemList { }; struct TAGetLimitedItemList { BYTE cIsLast; BYTE cCount; LimitedCashItem::TLimitedQuantityCashItem Limited[LimitedCashItem::Common::DefaultPacketCount]; }; struct TAGetChangedLimitedItemList { BYTE cCount; LimitedCashItem::TChangedLimitedQuantity Limited[LimitedCashItem::Common::DefaultPacketCount]; }; struct TQChangeLimitMax { int nSN; int nLimitMax; }; #endif //#ifdef PRE_ADD_LIMITED_CASHITEM // CASH_SALEABORTLIST struct TASaleAbortList { BYTE cCount; int nAbortList[SALEABORTLISTMAX]; }; // CASH_MOVE_CASHINVEN struct TQCashMoveCashInven : public TCashHeader { INT64 biCharacterDBID; char cWorldSetID; int nMapID; int nChannelID; TCashItemBase CashItem; TPaymentItemInfoEx PaymentItemInfo; }; struct TACashMoveCashInven : public TCashHeader { int nResult; int nTotalPetal; // ÆäÅ»ÀÌ Àû¸³µÉ ¼ö ÀÖ´Ù.(ÅäÅ» ÆäÅ») #if defined( PRE_ADD_NEW_MONEY_SEED ) int nTotalSeed; // ½Ãµå Àû¸³ #endif TCashItemBase CashItem; INT64 biPurchaseOrderDetailID; }; // CASH_PACKAGE_MOVE_CASHINVEN struct TQCashPackageMoveCashInven : public TCashHeader { INT64 biCharacterDBID; char cWorldSetID; int nMapID; int nChannelID; TCashItemBase CashItemList[PACKAGEITEMMAX]; TPaymentPackageItemInfoEx PaymentPackageItemInfo; }; struct TACashPackageMoveCashInven : public TCashHeader { int nResult; int nTotalPetal; // ÆäÅ»ÀÌ Àû¸³µÉ ¼ö ÀÖ´Ù.(ÅäÅ» ÆäÅ») #if defined( PRE_ADD_NEW_MONEY_SEED ) int nTotalSeed; // ½Ãµå Àû¸³ #endif TCashItemBase CashItemList[PACKAGEITEMMAX]; INT64 biPurchaseOrderDetailID; }; // CASH_REFUNDCASH struct TQCashRefund : public TCashHeader { char cItemType; // 1..ÀϹÝ, 2..Package char cWorldSetID; int nItemSN; UINT uiOrderNo; // Nexon INT64 biPurchaseOrderDetailID; // ¿ì¸®²¨ }; struct TACashRefund : public TCashHeader { int nResult; char cItemType; INT64 biPurchaseOrderDetailID; // ¿ì¸®²¨ }; #pragma pack(pop)