packets.hpp 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558
  1. // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
  2. // For more information, see LICENCE in the main folder
  3. #ifndef PACKETS_HPP
  4. #define PACKETS_HPP
  5. #pragma warning( push )
  6. #pragma warning( disable : 4200 )
  7. // Required for MESSAGE_SIZE, TALKBOX_MESSAGE_SIZE
  8. #include "map.hpp"
  9. #define MAX_ITEM_OPTIONS MAX_ITEM_RDM_OPT
  10. #define UNAVAILABLE_STRUCT int8 _____unavailable
  11. /* packet size constant for itemlist */
  12. #if MAX_INVENTORY > MAX_STORAGE && MAX_INVENTORY > MAX_CART
  13. #define MAX_ITEMLIST MAX_INVENTORY
  14. #elif MAX_CART > MAX_INVENTORY && MAX_CART > MAX_STORAGE
  15. #define MAX_ITEMLIST MAX_CART
  16. #else
  17. #define MAX_ITEMLIST MAX_STORAGE
  18. #endif
  19. #define MAX_ACHIEVEMENT_DB MAX_ACHIEVEMENT_OBJECTIVES
  20. #define DEFINE_PACKET_HEADER(name, id) const int16 HEADER_##name = id;
  21. #define DEFINE_PACKET_ID(name, id) DEFINE_PACKET_HEADER(name, id)
  22. #include "packets_struct.hpp"
  23. // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
  24. #if !defined( sun ) && ( !defined( __NETBSD__ ) || __NetBSD_Version__ >= 600000000 )
  25. #pragma pack( push, 1 )
  26. #endif
  27. struct PACKET_ZC_PC_PURCHASE_RESULT{
  28. int16 packetType;
  29. uint8 result;
  30. } __attribute__((packed));
  31. struct PACKET_CZ_REQ_MAKINGARROW{
  32. int16 packetType;
  33. #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
  34. uint32 itemId;
  35. #else
  36. uint16 itemId;
  37. #endif
  38. } __attribute__((packed));
  39. struct PACKET_CZ_SE_PC_BUY_CASHITEM_LIST_sub{
  40. uint32 itemId;
  41. uint32 amount;
  42. uint16 tab;
  43. } __attribute__((packed));
  44. struct PACKET_CZ_SE_PC_BUY_CASHITEM_LIST{
  45. int16 packetType;
  46. int16 packetLength;
  47. uint16 count;
  48. uint32 kafraPoints;
  49. struct PACKET_CZ_SE_PC_BUY_CASHITEM_LIST_sub items[];
  50. } __attribute__((packed));
  51. struct PACKET_CZ_REQ_CASH_BARGAIN_SALE_ITEM_INFO{
  52. int16 packetType;
  53. int16 packetLength;
  54. uint32 AID;
  55. #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
  56. uint32 itemId;
  57. #else
  58. uint16 itemId;
  59. #endif
  60. } __attribute__((packed));
  61. struct PACKET_ZC_ACK_CASH_BARGAIN_SALE_ITEM_INFO{
  62. int16 packetType;
  63. uint16 result;
  64. #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
  65. uint32 itemId;
  66. #else
  67. uint16 itemId;
  68. #endif
  69. uint32 price;
  70. } __attribute__((packed));
  71. struct PACKET_CZ_REQ_APPLY_BARGAIN_SALE_ITEM{
  72. int16 packetType;
  73. uint32 AID;
  74. #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
  75. uint32 itemId;
  76. #else
  77. uint16 itemId;
  78. #endif
  79. uint32 amount;
  80. uint32 startTime;
  81. #if PACKETVER >= 20150520
  82. uint16 hours;
  83. #else
  84. uint8 hours;
  85. #endif
  86. } __attribute__((packed));
  87. struct PACKET_CZ_REQ_REMOVE_BARGAIN_SALE_ITEM{
  88. int16 packetType;
  89. uint32 AID;
  90. #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
  91. uint32 itemId;
  92. #else
  93. uint16 itemId;
  94. #endif
  95. } __attribute__((packed));
  96. struct PACKET_ZC_NOTIFY_BARGAIN_SALE_SELLING{
  97. int16 packetType;
  98. #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
  99. uint32 itemId;
  100. #else
  101. uint16 itemId;
  102. #endif
  103. uint32 remainingTime;
  104. } __attribute__((packed));
  105. struct PACKET_ZC_NOTIFY_BARGAIN_SALE_CLOSE{
  106. int16 packetType;
  107. #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
  108. uint32 itemId;
  109. #else
  110. uint16 itemId;
  111. #endif
  112. } __attribute__((packed));
  113. struct PACKET_ZC_ACK_COUNT_BARGAIN_SALE_ITEM{
  114. int16 packetType;
  115. #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
  116. uint32 itemId;
  117. #else
  118. uint16 itemId;
  119. #endif
  120. uint32 amount;
  121. } __attribute__((packed));
  122. struct PACKET_ZC_ACK_GUILDSTORAGE_LOG_sub{
  123. uint32 id;
  124. #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
  125. uint32 itemId;
  126. #else
  127. uint16 itemId;
  128. #endif
  129. int32 amount;
  130. uint8 action;
  131. int32 refine;
  132. int64 uniqueId;
  133. uint8 IsIdentified;
  134. uint16 itemType;
  135. struct EQUIPSLOTINFO slot;
  136. char name[NAME_LENGTH];
  137. char time[NAME_LENGTH];
  138. uint8 attribute;
  139. } __attribute__((packed));
  140. struct PACKET_ZC_ACK_GUILDSTORAGE_LOG{
  141. int16 packetType;
  142. int16 PacketLength;
  143. uint16 result;
  144. uint16 amount;
  145. struct PACKET_ZC_ACK_GUILDSTORAGE_LOG_sub items[];
  146. } __attribute__((packed));
  147. struct PACKET_CZ_UNCONFIRMED_TSTATUS_UP{
  148. int16 packetType;
  149. int16 type;
  150. int16 amount;
  151. } __attribute__((packed));
  152. struct PACKET_CZ_GUILD_EMBLEM_CHANGE2 {
  153. int16 packetType;
  154. uint32 guild_id;
  155. uint32 version;
  156. } __attribute__((packed));
  157. struct PACKET_ZC_CHANGE_GUILD {
  158. int16 packetType;
  159. #if PACKETVER < 20190724
  160. uint32 aid;
  161. uint32 guild_id;
  162. uint16 emblem_id;
  163. #else
  164. uint32 guild_id;
  165. uint32 emblem_id;
  166. uint32 unknown;
  167. #endif
  168. } __attribute__((packed));
  169. struct PACKET_ZC_BROADCAST{
  170. int16 packetType;
  171. int16 PacketLength;
  172. char message[];
  173. } __attribute__((packed));
  174. struct PACKET_ZC_BROADCAST2{
  175. int16 packetType;
  176. int16 PacketLength;
  177. uint32 fontColor;
  178. int16 fontType;
  179. int16 fontSize;
  180. int16 fontAlign;
  181. int16 fontY;
  182. char message[];
  183. } __attribute__((packed));
  184. struct PACKET_ZC_SOULENERGY{
  185. int16 PacketType;
  186. uint32 AID;
  187. uint16 num;
  188. } __attribute__((packed));
  189. struct PACKET_ZC_ENTRY_QUEUE_INIT {
  190. int16 packetType;
  191. } __attribute__((packed));
  192. struct PACKET_CZ_UNCONFIRMED_RODEX_RETURN{
  193. int16 packetType;
  194. uint32 msgId;
  195. } __attribute__((packed));
  196. struct PACKET_CZ_REQ_STYLE_CLOSE{
  197. int16 packetType;
  198. } __attribute__((packed));
  199. struct PACKET_ZC_SUMMON_HP_INIT {
  200. int16 PacketType;
  201. uint32 summonAID;
  202. uint32 CurrentHP;
  203. uint32 MaxHP;
  204. } __attribute__((packed));
  205. struct PACKET_ZC_SUMMON_HP_UPDATE {
  206. int16 PacketType;
  207. uint32 summonAID;
  208. uint16 VarId;
  209. uint32 Value;
  210. } __attribute__((packed));
  211. struct PACKET_ZC_REPUTE_INFO_sub{
  212. uint64 type;
  213. int64 points;
  214. } __attribute__((packed));
  215. struct PACKET_ZC_REPUTE_INFO{
  216. int16 packetType;
  217. int16 packetLength;
  218. uint8 success;
  219. struct PACKET_ZC_REPUTE_INFO_sub list[];
  220. } __attribute__((packed));
  221. struct PACKET_ZC_OPEN_REFORM_UI{
  222. int16 packetType;
  223. uint32 itemId;
  224. } __attribute__((packed));
  225. struct PACKET_CZ_CLOSE_REFORM_UI{
  226. int16 packetType;
  227. } __attribute__((packed));
  228. struct PACKET_CZ_ITEM_REFORM{
  229. int16 packetType;
  230. uint32 itemId;
  231. uint16 index;
  232. } __attribute__((packed));
  233. struct PACKET_ZC_ITEM_REFORM_ACK{
  234. int16 packetType;
  235. uint16 index;
  236. uint8 result;
  237. } __attribute__((packed));
  238. struct PACKET_ZC_UI_OPEN_V3{
  239. int16 packetType;
  240. uint8 type;
  241. uint64 data;
  242. } __attribute__((packed));
  243. struct PACKET_CZ_REQUEST_RANDOM_ENCHANT{
  244. int16 packetType;
  245. uint64 clientLuaIndex;
  246. uint16 index;
  247. } __attribute__((packed));
  248. struct PACKET_CZ_REQUEST_PERFECT_ENCHANT{
  249. int16 packetType;
  250. uint64 clientLuaIndex;
  251. uint16 index;
  252. uint32 itemId;
  253. } __attribute__((packed));
  254. struct PACKET_CZ_REQUEST_UPGRADE_ENCHANT{
  255. int16 packetType;
  256. uint64 clientLuaIndex;
  257. uint16 index;
  258. uint16 slot;
  259. } __attribute__((packed));
  260. struct PACKET_CZ_REQUEST_RESET_ENCHANT{
  261. int16 packetType;
  262. uint64 clientLuaIndex;
  263. uint16 index;
  264. } __attribute__((packed));
  265. struct PACKET_ZC_RESPONSE_ENCHANT{
  266. int16 packetType;
  267. uint32 messageId;
  268. uint32 enchantItemId;
  269. } __attribute__((packed));
  270. struct PACKET_CZ_CLOSE_UI_ENCHANT{
  271. int16 packetType;
  272. } __attribute__((packed));
  273. struct PACKET_ZC_TARGET_SPIRITS {
  274. int16 packetType;
  275. uint32 GID;
  276. uint32 unknown_val;
  277. uint16 amount;
  278. } __attribute__((packed));
  279. struct PACKET_CZ_USE_PACKAGEITEM{
  280. int16 PacketType;
  281. uint16 index;
  282. uint32 AID;
  283. uint32 itemID;
  284. uint32 BoxIndex;
  285. } __attribute__((packed));
  286. struct PACKET_ZC_FRIENDS_LIST_sub{
  287. uint32 AID;
  288. uint32 CID;
  289. #if !( PACKETVER_MAIN_NUM >= 20180307 || PACKETVER_RE_NUM >= 20180221 || PACKETVER_ZERO_NUM >= 20180328 ) || PACKETVER >= 20200902
  290. char name[NAME_LENGTH];
  291. #endif
  292. } __attribute__((packed));
  293. struct PACKET_ZC_FRIENDS_LIST{
  294. int16 packetType;
  295. int16 PacketLength;
  296. struct PACKET_ZC_FRIENDS_LIST_sub friends[];
  297. } __attribute__((packed));
  298. struct PACKET_CZ_PC_SELL_ITEMLIST_sub {
  299. uint16 index;
  300. uint16 amount;
  301. } __attribute__((packed));
  302. struct PACKET_CZ_PC_SELL_ITEMLIST {
  303. int16 packetType;
  304. int16 packetLength;
  305. PACKET_CZ_PC_SELL_ITEMLIST_sub sellList[];
  306. } __attribute__((packed));
  307. struct PACKET_CZ_REQ_CHANGE_MEMBERPOS_sub{
  308. uint32 AID;
  309. uint32 CID;
  310. int32 position;
  311. } __attribute__((packed));
  312. struct PACKET_CZ_REQ_CHANGE_MEMBERPOS{
  313. int16 packetType;
  314. int16 packetLength;
  315. struct PACKET_CZ_REQ_CHANGE_MEMBERPOS_sub list[];
  316. } __attribute__((packed));
  317. struct PACKET_ZC_CLEAR_DIALOG{
  318. int16 packetType;
  319. uint32 GID;
  320. } __attribute__((packed));
  321. struct PACKET_ZC_NOTIFY_BIND_ON_EQUIP{
  322. int16 packetType;
  323. int16 index;
  324. } __attribute__((packed));
  325. struct PACKET_ZC_BANKING_CHECK{
  326. int16 packetType;
  327. int64 money;
  328. int16 reason;
  329. } __attribute__((packed));
  330. struct PACKET_ZC_ACK_BANKING_WITHDRAW{
  331. int16 packetType;
  332. int16 reason;
  333. int64 money;
  334. int32 zeny;
  335. } __attribute__((packed));
  336. struct PACKET_ZC_ACK_BANKING_DEPOSIT{
  337. int16 packetType;
  338. int16 reason;
  339. int64 money;
  340. int32 zeny;
  341. } __attribute__((packed));
  342. struct PACKET_ZC_ACK_CLOSE_BANKING{
  343. int16 packetType;
  344. int16 unknown;
  345. } __attribute__((packed));
  346. struct PACKET_ZC_ACK_OPEN_BANKING{
  347. int16 packetType;
  348. int16 unknown;
  349. } __attribute__((packed));
  350. struct PACKET_ZC_ACK_ADD_EXCHANGE_ITEM {
  351. int16 packetType;
  352. uint16 index;
  353. uint8 result;
  354. } __attribute__((packed));
  355. struct PACKET_ZC_COUPLENAME {
  356. int16 packetType;
  357. char name[NAME_LENGTH];
  358. } __attribute__((packed));
  359. struct PACKET_ZC_DYNAMICNPC_CREATE_RESULT{
  360. int16 packetType;
  361. int32 result;
  362. } __attribute__((packed));
  363. struct PACKET_CZ_PARTY_REQ_MASTER_TO_JOIN{
  364. int16 packetType;
  365. uint32 CID;
  366. uint32 AID;
  367. } __attribute__((packed));
  368. struct PACKET_ZC_PARTY_REQ_MASTER_TO_JOIN{
  369. int16 packetType;
  370. uint32 CID;
  371. uint32 AID;
  372. char name[NAME_LENGTH];
  373. uint16 x;
  374. uint16 y;
  375. } __attribute__((packed));
  376. struct PACKET_CZ_PARTY_REQ_ACK_MASTER_TO_JOIN{
  377. int16 packetType;
  378. uint32 CID;
  379. uint32 AID;
  380. uint8 accept;
  381. } __attribute__((packed));
  382. struct PACKET_ZC_PARTY_JOIN_REQ_ACK_FROM_MASTER{
  383. int16 packetType;
  384. char player_name[NAME_LENGTH];
  385. char party_name[NAME_LENGTH];
  386. uint32 AID;
  387. uint32 refused;
  388. } __attribute__((packed));
  389. // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
  390. #if !defined( sun ) && ( !defined( __NETBSD__ ) || __NetBSD_Version__ >= 600000000 )
  391. #pragma pack( pop )
  392. #endif
  393. DEFINE_PACKET_HEADER(ZC_NOTIFY_CHAT, 0x8d)
  394. DEFINE_PACKET_HEADER(ZC_BROADCAST, 0x9a)
  395. DEFINE_PACKET_HEADER(ZC_ITEM_ENTRY, 0x9d)
  396. DEFINE_PACKET_HEADER(ZC_PC_PURCHASE_RESULT, 0xca)
  397. DEFINE_PACKET_HEADER(ZC_ACK_ADD_EXCHANGE_ITEM, 0xea)
  398. DEFINE_PACKET_HEADER(ZC_MVP_GETTING_ITEM, 0x10a)
  399. DEFINE_PACKET_HEADER(CZ_REQ_CHANGE_MEMBERPOS, 0x155)
  400. DEFINE_PACKET_HEADER(CZ_REQMAKINGITEM, 0x18e)
  401. DEFINE_PACKET_HEADER(ZC_ACK_REQMAKINGITEM, 0x18f)
  402. DEFINE_PACKET_HEADER(CZ_REQ_MAKINGARROW, 0x1ae)
  403. DEFINE_PACKET_HEADER(ZC_BROADCAST2, 0x1c3)
  404. #if PACKETVER_MAIN_NUM >= 20200916 || PACKETVER_RE_NUM >= 20200724
  405. DEFINE_PACKET_HEADER(CZ_REQ_ITEMREPAIR, 0xb66)
  406. #else
  407. DEFINE_PACKET_HEADER(CZ_REQ_ITEMREPAIR, 0x1fd)
  408. #endif
  409. #if PACKETVER >= 20190724
  410. DEFINE_PACKET_HEADER(ZC_CHANGE_GUILD, 0x0b47)
  411. #else
  412. DEFINE_PACKET_HEADER(ZC_CHANGE_GUILD, 0x1b4)
  413. #endif
  414. DEFINE_PACKET_HEADER(ZC_COUPLENAME, 0x1e6);
  415. DEFINE_PACKET_HEADER(ZC_FRIENDS_LIST, 0x201)
  416. DEFINE_PACKET_HEADER(ZC_NOTIFY_WEAPONITEMLIST, 0x221)
  417. DEFINE_PACKET_HEADER(ZC_ACK_WEAPONREFINE, 0x223)
  418. DEFINE_PACKET_HEADER(CZ_REQ_MAKINGITEM, 0x25b)
  419. DEFINE_PACKET_HEADER(ZC_CASH_TIME_COUNTER, 0x298)
  420. DEFINE_PACKET_HEADER(ZC_CASH_ITEM_DELETE, 0x299)
  421. DEFINE_PACKET_HEADER(ZC_NOTIFY_BIND_ON_EQUIP, 0x2d3)
  422. DEFINE_PACKET_HEADER(ZC_FAILED_TRADE_BUYING_STORE_TO_SELLER, 0x824)
  423. DEFINE_PACKET_HEADER(CZ_SSILIST_ITEM_CLICK, 0x83c)
  424. DEFINE_PACKET_HEADER(ZC_CLEAR_DIALOG, 0x8d6)
  425. DEFINE_PACKET_HEADER(ZC_ENTRY_QUEUE_INIT, 0x90e);
  426. DEFINE_PACKET_HEADER(ZC_BANKING_CHECK, 0x9a6)
  427. DEFINE_PACKET_HEADER(ZC_ACK_BANKING_DEPOSIT, 0x9a8)
  428. DEFINE_PACKET_HEADER(ZC_ACK_BANKING_WITHDRAW, 0x9aa)
  429. DEFINE_PACKET_HEADER(CZ_REQ_CASH_BARGAIN_SALE_ITEM_INFO, 0x9ac)
  430. DEFINE_PACKET_HEADER(ZC_ACK_CASH_BARGAIN_SALE_ITEM_INFO, 0x9ad)
  431. DEFINE_PACKET_HEADER(CZ_REQ_APPLY_BARGAIN_SALE_ITEM, 0x9ae)
  432. DEFINE_PACKET_HEADER(CZ_REQ_REMOVE_BARGAIN_SALE_ITEM, 0x9b0)
  433. DEFINE_PACKET_HEADER(ZC_NOTIFY_BARGAIN_SALE_SELLING, 0x9b2)
  434. DEFINE_PACKET_HEADER(ZC_NOTIFY_BARGAIN_SALE_CLOSE, 0x9b3)
  435. DEFINE_PACKET_HEADER(ZC_ACK_OPEN_BANKING, 0x9b7)
  436. DEFINE_PACKET_HEADER(ZC_ACK_CLOSE_BANKING, 0x9b9)
  437. DEFINE_PACKET_HEADER(ZC_ACK_COUNT_BARGAIN_SALE_ITEM, 0x9c4)
  438. DEFINE_PACKET_HEADER(ZC_ACK_GUILDSTORAGE_LOG, 0x9da)
  439. DEFINE_PACKET_HEADER(ZC_DYNAMICNPC_CREATE_RESULT, 0xa17)
  440. DEFINE_PACKET_HEADER(CZ_REQ_APPLY_BARGAIN_SALE_ITEM2, 0xa3d)
  441. DEFINE_PACKET_HEADER(CZ_REQ_STYLE_CHANGE, 0xa46)
  442. DEFINE_PACKET_HEADER(ZC_STYLE_CHANGE_RES, 0xa47)
  443. DEFINE_PACKET_HEADER(CZ_REQ_STYLE_CLOSE, 0xa48)
  444. DEFINE_PACKET_HEADER(ZC_GROUP_ISALIVE, 0xab2)
  445. DEFINE_PACKET_HEADER(CZ_PARTY_REQ_MASTER_TO_JOIN, 0x0ae6)
  446. DEFINE_PACKET_HEADER(ZC_PARTY_REQ_MASTER_TO_JOIN, 0x0ae7)
  447. DEFINE_PACKET_HEADER(CZ_PARTY_REQ_ACK_MASTER_TO_JOIN, 0x0af8)
  448. DEFINE_PACKET_HEADER(ZC_PARTY_JOIN_REQ_ACK_FROM_MASTER, 0x0afa)
  449. DEFINE_PACKET_HEADER(CZ_REQ_STYLE_CHANGE2, 0xafc)
  450. DEFINE_PACKET_HEADER(ZC_REMOVE_EFFECT, 0x0b0d)
  451. DEFINE_PACKET_HEADER(CZ_UNCONFIRMED_TSTATUS_UP, 0x0b24)
  452. DEFINE_PACKET_HEADER(CZ_GUILD_EMBLEM_CHANGE2, 0x0b46)
  453. DEFINE_PACKET_HEADER(ZC_TARGET_SPIRITS, 0xb68)
  454. DEFINE_PACKET_HEADER(ZC_SOULENERGY, 0xb73)
  455. DEFINE_PACKET_HEADER(CZ_UNCONFIRMED_RODEX_RETURN, 0xb98)
  456. DEFINE_PACKET_HEADER(ZC_SUMMON_HP_INIT, 0xb6b)
  457. DEFINE_PACKET_HEADER(ZC_SUMMON_HP_UPDATE, 0xb6c)
  458. DEFINE_PACKET_HEADER(ZC_REPUTE_INFO, 0x0b8d)
  459. DEFINE_PACKET_HEADER(ZC_OPEN_REFORM_UI, 0x0b8f)
  460. DEFINE_PACKET_HEADER(CZ_CLOSE_REFORM_UI, 0x0b90)
  461. DEFINE_PACKET_HEADER(CZ_ITEM_REFORM, 0x0b91)
  462. DEFINE_PACKET_HEADER(ZC_ITEM_REFORM_ACK, 0x0b92)
  463. DEFINE_PACKET_HEADER(ZC_UI_OPEN_V3, 0x0b9a)
  464. DEFINE_PACKET_HEADER(CZ_REQUEST_RANDOM_ENCHANT, 0x0b9b)
  465. DEFINE_PACKET_HEADER(CZ_REQUEST_PERFECT_ENCHANT, 0x0b9c)
  466. DEFINE_PACKET_HEADER(CZ_REQUEST_UPGRADE_ENCHANT, 0x0b9d)
  467. DEFINE_PACKET_HEADER(CZ_REQUEST_RESET_ENCHANT, 0x0b9e)
  468. DEFINE_PACKET_HEADER(ZC_RESPONSE_ENCHANT, 0x0b9f)
  469. DEFINE_PACKET_HEADER(CZ_CLOSE_UI_ENCHANT, 0x0ba0)
  470. DEFINE_PACKET_HEADER(CZ_USE_PACKAGEITEM, 0x0baf)
  471. DEFINE_PACKET_HEADER(CZ_PC_SELL_ITEMLIST, 0x00c9)
  472. const int16 MAX_INVENTORY_ITEM_PACKET_NORMAL = ( ( INT16_MAX - ( sizeof( struct packet_itemlist_normal ) - ( sizeof( struct NORMALITEM_INFO ) * MAX_ITEMLIST) ) ) / sizeof( struct NORMALITEM_INFO ) );
  473. const int16 MAX_INVENTORY_ITEM_PACKET_EQUIP = ( ( INT16_MAX - ( sizeof( struct packet_itemlist_equip ) - ( sizeof( struct EQUIPITEM_INFO ) * MAX_ITEMLIST ) ) ) / sizeof( struct EQUIPITEM_INFO ) );
  474. 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 ) );
  475. 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 ) );
  476. const int16 MAX_GUILD_STORAGE_LOG_PACKET = ( ( INT16_MAX - sizeof( struct PACKET_ZC_ACK_GUILDSTORAGE_LOG ) ) / sizeof( struct PACKET_ZC_ACK_GUILDSTORAGE_LOG_sub ) );
  477. #undef MAX_ITEM_OPTIONS
  478. #undef UNAVAILABLE_STRUCT
  479. #undef MAX_ITEMLIST
  480. #undef MAX_ACHIEVEMENT_DB
  481. #undef MAX_PACKET_POS
  482. #undef DEFINE_PACKET_HEADER
  483. #pragma warning( pop )
  484. #endif /* PACKETS_HPP */