123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445 |
- // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
- // For more information, see LICENCE in the main folder
- #ifndef PACKETS_HPP
- #define PACKETS_HPP
- #pragma warning( push )
- #pragma warning( disable : 4200 )
- // Required for MESSAGE_SIZE, TALKBOX_MESSAGE_SIZE
- #include "map.hpp"
- #define MAX_ITEM_OPTIONS MAX_ITEM_RDM_OPT
- #define UNAVAILABLE_STRUCT int8 _____unavailable
- /* packet size constant for itemlist */
- #if MAX_INVENTORY > MAX_STORAGE && MAX_INVENTORY > MAX_CART
- #define MAX_ITEMLIST MAX_INVENTORY
- #elif MAX_CART > MAX_INVENTORY && MAX_CART > MAX_STORAGE
- #define MAX_ITEMLIST MAX_CART
- #else
- #define MAX_ITEMLIST MAX_STORAGE
- #endif
- #define MAX_ACHIEVEMENT_DB MAX_ACHIEVEMENT_OBJECTIVES
- #define DEFINE_PACKET_HEADER(name, id) const int16 HEADER_##name = id;
- #define DEFINE_PACKET_ID(name, id) DEFINE_PACKET_HEADER(name, id)
- #include "packets_struct.hpp"
- // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
- #if !defined( sun ) && ( !defined( __NETBSD__ ) || __NetBSD_Version__ >= 600000000 )
- #pragma pack( push, 1 )
- #endif
- struct PACKET_ZC_PC_PURCHASE_RESULT{
- int16 packetType;
- uint8 result;
- } __attribute__((packed));
- struct PACKET_CZ_REQ_MAKINGARROW{
- int16 packetType;
- #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
- uint32 itemId;
- #else
- uint16 itemId;
- #endif
- } __attribute__((packed));
- struct PACKET_CZ_SE_PC_BUY_CASHITEM_LIST_sub{
- uint32 itemId;
- uint32 amount;
- uint16 tab;
- } __attribute__((packed));
- struct PACKET_CZ_SE_PC_BUY_CASHITEM_LIST{
- int16 packetType;
- int16 packetLength;
- uint16 count;
- uint32 kafraPoints;
- struct PACKET_CZ_SE_PC_BUY_CASHITEM_LIST_sub items[];
- } __attribute__((packed));
- struct PACKET_CZ_REQ_CASH_BARGAIN_SALE_ITEM_INFO{
- int16 packetType;
- int16 packetLength;
- uint32 AID;
- #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
- uint32 itemId;
- #else
- uint16 itemId;
- #endif
- } __attribute__((packed));
- struct PACKET_ZC_ACK_CASH_BARGAIN_SALE_ITEM_INFO{
- int16 packetType;
- uint16 result;
- #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
- uint32 itemId;
- #else
- uint16 itemId;
- #endif
- uint32 price;
- } __attribute__((packed));
- struct PACKET_CZ_REQ_APPLY_BARGAIN_SALE_ITEM{
- int16 packetType;
- uint32 AID;
- #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
- uint32 itemId;
- #else
- uint16 itemId;
- #endif
- uint32 amount;
- uint32 startTime;
- #if PACKETVER >= 20150520
- uint16 hours;
- #else
- uint8 hours;
- #endif
- } __attribute__((packed));
- struct PACKET_CZ_REQ_REMOVE_BARGAIN_SALE_ITEM{
- int16 packetType;
- uint32 AID;
- #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
- uint32 itemId;
- #else
- uint16 itemId;
- #endif
- } __attribute__((packed));
- struct PACKET_ZC_NOTIFY_BARGAIN_SALE_SELLING{
- int16 packetType;
- #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
- uint32 itemId;
- #else
- uint16 itemId;
- #endif
- uint32 remainingTime;
- } __attribute__((packed));
- struct PACKET_ZC_NOTIFY_BARGAIN_SALE_CLOSE{
- int16 packetType;
- #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
- uint32 itemId;
- #else
- uint16 itemId;
- #endif
- } __attribute__((packed));
- struct PACKET_ZC_ACK_COUNT_BARGAIN_SALE_ITEM{
- int16 packetType;
- #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
- uint32 itemId;
- #else
- uint16 itemId;
- #endif
- uint32 amount;
- } __attribute__((packed));
- struct PACKET_ZC_ACK_GUILDSTORAGE_LOG_sub{
- uint32 id;
- #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
- uint32 itemId;
- #else
- uint16 itemId;
- #endif
- int32 amount;
- uint8 action;
- int32 refine;
- int64 uniqueId;
- uint8 IsIdentified;
- uint16 itemType;
- struct EQUIPSLOTINFO slot;
- char name[NAME_LENGTH];
- char time[NAME_LENGTH];
- uint8 attribute;
- } __attribute__((packed));
- struct PACKET_ZC_ACK_GUILDSTORAGE_LOG{
- int16 packetType;
- int16 PacketLength;
- uint16 result;
- uint16 amount;
- struct PACKET_ZC_ACK_GUILDSTORAGE_LOG_sub items[];
- } __attribute__((packed));
- struct PACKET_CZ_UNCONFIRMED_TSTATUS_UP{
- int16 packetType;
- int16 type;
- int16 amount;
- } __attribute__((packed));
- struct PACKET_CZ_GUILD_EMBLEM_CHANGE2 {
- int16 packetType;
- uint32 guild_id;
- uint32 version;
- } __attribute__((packed));
- struct PACKET_ZC_CHANGE_GUILD {
- int16 packetType;
- #if PACKETVER < 20190724
- uint32 aid;
- uint32 guild_id;
- uint16 emblem_id;
- #else
- uint32 guild_id;
- uint32 emblem_id;
- uint32 unknown;
- #endif
- } __attribute__((packed));
- struct PACKET_ZC_BROADCAST{
- int16 packetType;
- int16 PacketLength;
- char message[];
- } __attribute__((packed));
- struct PACKET_ZC_BROADCAST2{
- int16 packetType;
- int16 PacketLength;
- uint32 fontColor;
- int16 fontType;
- int16 fontSize;
- int16 fontAlign;
- int16 fontY;
- char message[];
- } __attribute__((packed));
- struct PACKET_ZC_SOULENERGY{
- int16 PacketType;
- uint32 AID;
- uint16 num;
- } __attribute__((packed));
- struct PACKET_ZC_ENTRY_QUEUE_INIT {
- int16 packetType;
- } __attribute__((packed));
- struct PACKET_CZ_UNCONFIRMED_RODEX_RETURN{
- int16 packetType;
- uint32 msgId;
- } __attribute__((packed));
- struct PACKET_CZ_REQ_STYLE_CLOSE{
- int16 packetType;
- } __attribute__((packed));
- struct PACKET_ZC_SUMMON_HP_INIT {
- int16 PacketType;
- uint32 summonAID;
- uint32 CurrentHP;
- uint32 MaxHP;
- } __attribute__((packed));
- struct PACKET_ZC_SUMMON_HP_UPDATE {
- int16 PacketType;
- uint32 summonAID;
- uint16 VarId;
- uint32 Value;
- } __attribute__((packed));
- struct PACKET_ZC_REPUTE_INFO_sub{
- uint64 type;
- int64 points;
- } __attribute__((packed));
- struct PACKET_ZC_REPUTE_INFO{
- int16 packetType;
- int16 packetLength;
- uint8 success;
- struct PACKET_ZC_REPUTE_INFO_sub list[];
- } __attribute__((packed));
- struct PACKET_ZC_OPEN_REFORM_UI{
- int16 packetType;
- uint32 itemId;
- } __attribute__((packed));
- struct PACKET_CZ_CLOSE_REFORM_UI{
- int16 packetType;
- } __attribute__((packed));
- struct PACKET_CZ_ITEM_REFORM{
- int16 packetType;
- uint32 itemId;
- uint16 index;
- } __attribute__((packed));
- struct PACKET_ZC_ITEM_REFORM_ACK{
- int16 packetType;
- uint16 index;
- uint8 result;
- } __attribute__((packed));
- struct PACKET_ZC_UI_OPEN_V3{
- int16 packetType;
- uint8 type;
- uint64 data;
- } __attribute__((packed));
- struct PACKET_CZ_REQUEST_RANDOM_ENCHANT{
- int16 packetType;
- uint64 clientLuaIndex;
- uint16 index;
- } __attribute__((packed));
- struct PACKET_CZ_REQUEST_PERFECT_ENCHANT{
- int16 packetType;
- uint64 clientLuaIndex;
- uint16 index;
- uint32 itemId;
- } __attribute__((packed));
- struct PACKET_CZ_REQUEST_UPGRADE_ENCHANT{
- int16 packetType;
- uint64 clientLuaIndex;
- uint16 index;
- uint16 slot;
- } __attribute__((packed));
- struct PACKET_CZ_REQUEST_RESET_ENCHANT{
- int16 packetType;
- uint64 clientLuaIndex;
- uint16 index;
- } __attribute__((packed));
- struct PACKET_ZC_RESPONSE_ENCHANT{
- int16 packetType;
- uint32 messageId;
- uint32 enchantItemId;
- } __attribute__((packed));
- struct PACKET_CZ_CLOSE_UI_ENCHANT{
- int16 packetType;
- } __attribute__((packed));
- struct PACKET_ZC_TARGET_SPIRITS {
- int16 packetType;
- uint32 GID;
- uint32 unknown_val;
- uint16 amount;
- } __attribute__((packed));
- struct PACKET_CZ_USE_PACKAGEITEM{
- int16 PacketType;
- uint16 index;
- uint32 AID;
- uint32 itemID;
- uint32 BoxIndex;
- } __attribute__((packed));
- struct PACKET_ZC_FRIENDS_LIST_sub{
- uint32 AID;
- uint32 CID;
- #if !( PACKETVER_MAIN_NUM >= 20180307 || PACKETVER_RE_NUM >= 20180221 || PACKETVER_ZERO_NUM >= 20180328 ) || PACKETVER >= 20200902
- char name[NAME_LENGTH];
- #endif
- } __attribute__((packed));
- struct PACKET_ZC_FRIENDS_LIST{
- int16 packetType;
- int16 PacketLength;
- struct PACKET_ZC_FRIENDS_LIST_sub friends[];
- } __attribute__((packed));
- struct PACKET_CZ_PC_SELL_ITEMLIST_sub {
- uint16 index;
- uint16 amount;
- } __attribute__((packed));
- struct PACKET_CZ_PC_SELL_ITEMLIST {
- int16 packetType;
- int16 packetLength;
- PACKET_CZ_PC_SELL_ITEMLIST_sub sellList[];
- } __attribute__((packed));
- // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
- #if !defined( sun ) && ( !defined( __NETBSD__ ) || __NetBSD_Version__ >= 600000000 )
- #pragma pack( pop )
- #endif
- DEFINE_PACKET_HEADER(ZC_NOTIFY_CHAT, 0x8d)
- DEFINE_PACKET_HEADER(ZC_BROADCAST, 0x9a)
- DEFINE_PACKET_HEADER(ZC_ITEM_ENTRY, 0x9d)
- DEFINE_PACKET_HEADER(ZC_PC_PURCHASE_RESULT, 0xca)
- DEFINE_PACKET_HEADER(ZC_MVP_GETTING_ITEM, 0x10a)
- DEFINE_PACKET_HEADER(CZ_REQMAKINGITEM, 0x18e)
- DEFINE_PACKET_HEADER(ZC_ACK_REQMAKINGITEM, 0x18f)
- DEFINE_PACKET_HEADER(CZ_REQ_MAKINGARROW, 0x1ae)
- DEFINE_PACKET_HEADER(ZC_BROADCAST2, 0x1c3)
- #if PACKETVER_MAIN_NUM >= 20200916 || PACKETVER_RE_NUM >= 20200724
- DEFINE_PACKET_HEADER(CZ_REQ_ITEMREPAIR, 0xb66)
- #else
- DEFINE_PACKET_HEADER(CZ_REQ_ITEMREPAIR, 0x1fd)
- #endif
- #if PACKETVER >= 20190724
- DEFINE_PACKET_HEADER(ZC_CHANGE_GUILD, 0x0b47)
- #else
- DEFINE_PACKET_HEADER(ZC_CHANGE_GUILD, 0x1b4)
- #endif
- DEFINE_PACKET_HEADER(ZC_FRIENDS_LIST, 0x201)
- DEFINE_PACKET_HEADER(ZC_NOTIFY_WEAPONITEMLIST, 0x221)
- DEFINE_PACKET_HEADER(ZC_ACK_WEAPONREFINE, 0x223)
- DEFINE_PACKET_HEADER(CZ_REQ_MAKINGITEM, 0x25b)
- DEFINE_PACKET_HEADER(ZC_CASH_TIME_COUNTER, 0x298)
- DEFINE_PACKET_HEADER(ZC_CASH_ITEM_DELETE, 0x299)
- DEFINE_PACKET_HEADER(ZC_FAILED_TRADE_BUYING_STORE_TO_SELLER, 0x824)
- DEFINE_PACKET_HEADER(CZ_SSILIST_ITEM_CLICK, 0x83c)
- DEFINE_PACKET_HEADER(ZC_ENTRY_QUEUE_INIT, 0x90e);
- DEFINE_PACKET_HEADER(CZ_REQ_CASH_BARGAIN_SALE_ITEM_INFO, 0x9ac)
- DEFINE_PACKET_HEADER(ZC_ACK_CASH_BARGAIN_SALE_ITEM_INFO, 0x9ad)
- DEFINE_PACKET_HEADER(CZ_REQ_APPLY_BARGAIN_SALE_ITEM, 0x9ae)
- DEFINE_PACKET_HEADER(CZ_REQ_REMOVE_BARGAIN_SALE_ITEM, 0x9b0)
- DEFINE_PACKET_HEADER(ZC_NOTIFY_BARGAIN_SALE_SELLING, 0x9b2)
- DEFINE_PACKET_HEADER(ZC_NOTIFY_BARGAIN_SALE_CLOSE, 0x9b3)
- DEFINE_PACKET_HEADER(ZC_ACK_COUNT_BARGAIN_SALE_ITEM, 0x9c4)
- DEFINE_PACKET_HEADER(ZC_ACK_GUILDSTORAGE_LOG, 0x9da)
- DEFINE_PACKET_HEADER(CZ_REQ_APPLY_BARGAIN_SALE_ITEM2, 0xa3d)
- DEFINE_PACKET_HEADER(CZ_REQ_STYLE_CHANGE, 0xa46)
- DEFINE_PACKET_HEADER(ZC_STYLE_CHANGE_RES, 0xa47)
- DEFINE_PACKET_HEADER(CZ_REQ_STYLE_CLOSE, 0xa48)
- DEFINE_PACKET_HEADER(ZC_GROUP_ISALIVE, 0xab2)
- DEFINE_PACKET_HEADER(CZ_REQ_STYLE_CHANGE2, 0xafc)
- DEFINE_PACKET_HEADER(ZC_REMOVE_EFFECT, 0x0b0d)
- DEFINE_PACKET_HEADER(CZ_UNCONFIRMED_TSTATUS_UP, 0x0b24)
- DEFINE_PACKET_HEADER(CZ_GUILD_EMBLEM_CHANGE2, 0x0b46)
- DEFINE_PACKET_HEADER(ZC_TARGET_SPIRITS, 0xb68)
- DEFINE_PACKET_HEADER(ZC_SOULENERGY, 0xb73)
- DEFINE_PACKET_HEADER(CZ_UNCONFIRMED_RODEX_RETURN, 0xb98)
- DEFINE_PACKET_HEADER(ZC_SUMMON_HP_INIT, 0xb6b)
- DEFINE_PACKET_HEADER(ZC_SUMMON_HP_UPDATE, 0xb6c)
- DEFINE_PACKET_HEADER(ZC_REPUTE_INFO, 0x0b8d)
- DEFINE_PACKET_HEADER(ZC_OPEN_REFORM_UI, 0x0b8f)
- DEFINE_PACKET_HEADER(CZ_CLOSE_REFORM_UI, 0x0b90)
- DEFINE_PACKET_HEADER(CZ_ITEM_REFORM, 0x0b91)
- DEFINE_PACKET_HEADER(ZC_ITEM_REFORM_ACK, 0x0b92)
- DEFINE_PACKET_HEADER(ZC_UI_OPEN_V3, 0x0b9a)
- DEFINE_PACKET_HEADER(CZ_REQUEST_RANDOM_ENCHANT, 0x0b9b)
- DEFINE_PACKET_HEADER(CZ_REQUEST_PERFECT_ENCHANT, 0x0b9c)
- DEFINE_PACKET_HEADER(CZ_REQUEST_UPGRADE_ENCHANT, 0x0b9d)
- DEFINE_PACKET_HEADER(CZ_REQUEST_RESET_ENCHANT, 0x0b9e)
- DEFINE_PACKET_HEADER(ZC_RESPONSE_ENCHANT, 0x0b9f)
- DEFINE_PACKET_HEADER(CZ_CLOSE_UI_ENCHANT, 0x0ba0)
- DEFINE_PACKET_HEADER(CZ_USE_PACKAGEITEM, 0x0baf)
- DEFINE_PACKET_HEADER(CZ_PC_SELL_ITEMLIST, 0x00c9)
- const int16 MAX_INVENTORY_ITEM_PACKET_NORMAL = ( ( INT16_MAX - ( sizeof( struct packet_itemlist_normal ) - ( sizeof( struct NORMALITEM_INFO ) * MAX_ITEMLIST) ) ) / sizeof( struct NORMALITEM_INFO ) );
- const int16 MAX_INVENTORY_ITEM_PACKET_EQUIP = ( ( INT16_MAX - ( sizeof( struct packet_itemlist_equip ) - ( sizeof( struct EQUIPITEM_INFO ) * MAX_ITEMLIST ) ) ) / sizeof( struct EQUIPITEM_INFO ) );
- const int16 MAX_STORAGE_ITEM_PACKET_NORMAL = ( ( INT16_MAX - ( sizeof( struct ZC_STORE_ITEMLIST_NORMAL ) - ( sizeof( struct NORMALITEM_INFO ) * MAX_ITEMLIST) ) ) / sizeof( struct NORMALITEM_INFO ) );
- const int16 MAX_STORAGE_ITEM_PACKET_EQUIP = ( ( INT16_MAX - ( sizeof( struct ZC_STORE_ITEMLIST_EQUIP ) - ( sizeof( struct EQUIPITEM_INFO ) * MAX_ITEMLIST ) ) ) / sizeof( struct EQUIPITEM_INFO ) );
- const int16 MAX_GUILD_STORAGE_LOG_PACKET = ( ( INT16_MAX - sizeof( struct PACKET_ZC_ACK_GUILDSTORAGE_LOG ) ) / sizeof( struct PACKET_ZC_ACK_GUILDSTORAGE_LOG_sub ) );
- #undef MAX_ITEM_OPTIONS
- #undef UNAVAILABLE_STRUCT
- #undef MAX_ITEMLIST
- #undef MAX_ACHIEVEMENT_DB
- #undef MAX_PACKET_POS
- #undef DEFINE_PACKET_HEADER
- #pragma warning( pop )
- #endif /* PACKETS_HPP */
|