packets.hpp 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568
  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_BROADCAST{
  158. int16 packetType;
  159. int16 PacketLength;
  160. char message[];
  161. } __attribute__((packed));
  162. struct PACKET_ZC_BROADCAST2{
  163. int16 packetType;
  164. int16 PacketLength;
  165. uint32 fontColor;
  166. int16 fontType;
  167. int16 fontSize;
  168. int16 fontAlign;
  169. int16 fontY;
  170. char message[];
  171. } __attribute__((packed));
  172. struct PACKET_ZC_SOULENERGY{
  173. int16 PacketType;
  174. uint32 AID;
  175. uint16 num;
  176. } __attribute__((packed));
  177. struct PACKET_ZC_ENTRY_QUEUE_INIT {
  178. int16 packetType;
  179. } __attribute__((packed));
  180. struct PACKET_CZ_UNCONFIRMED_RODEX_RETURN{
  181. int16 packetType;
  182. uint32 msgId;
  183. } __attribute__((packed));
  184. struct PACKET_CZ_REQ_STYLE_CLOSE{
  185. int16 packetType;
  186. } __attribute__((packed));
  187. struct PACKET_ZC_SUMMON_HP_INIT {
  188. int16 PacketType;
  189. uint32 summonAID;
  190. uint32 CurrentHP;
  191. uint32 MaxHP;
  192. } __attribute__((packed));
  193. struct PACKET_ZC_SUMMON_HP_UPDATE {
  194. int16 PacketType;
  195. uint32 summonAID;
  196. uint16 VarId;
  197. uint32 Value;
  198. } __attribute__((packed));
  199. struct PACKET_ZC_REPUTE_INFO_sub{
  200. uint64 type;
  201. int64 points;
  202. } __attribute__((packed));
  203. struct PACKET_ZC_REPUTE_INFO{
  204. int16 packetType;
  205. int16 packetLength;
  206. uint8 success;
  207. struct PACKET_ZC_REPUTE_INFO_sub list[];
  208. } __attribute__((packed));
  209. struct PACKET_ZC_UI_OPEN_V3{
  210. int16 packetType;
  211. uint8 type;
  212. uint64 data;
  213. } __attribute__((packed));
  214. struct PACKET_ZC_TARGET_SPIRITS {
  215. int16 packetType;
  216. uint32 GID;
  217. uint32 unknown_val;
  218. uint16 amount;
  219. } __attribute__((packed));
  220. struct PACKET_ZC_FRIENDS_LIST_sub{
  221. uint32 AID;
  222. uint32 CID;
  223. #if !( PACKETVER_MAIN_NUM >= 20180307 || PACKETVER_RE_NUM >= 20180221 || PACKETVER_ZERO_NUM >= 20180328 ) || PACKETVER >= 20200902
  224. char name[NAME_LENGTH];
  225. #endif
  226. } __attribute__((packed));
  227. struct PACKET_ZC_FRIENDS_LIST{
  228. int16 packetType;
  229. int16 PacketLength;
  230. struct PACKET_ZC_FRIENDS_LIST_sub friends[];
  231. } __attribute__((packed));
  232. struct PACKET_CZ_PC_SELL_ITEMLIST_sub {
  233. uint16 index;
  234. uint16 amount;
  235. } __attribute__((packed));
  236. struct PACKET_CZ_PC_SELL_ITEMLIST {
  237. int16 packetType;
  238. int16 packetLength;
  239. PACKET_CZ_PC_SELL_ITEMLIST_sub sellList[];
  240. } __attribute__((packed));
  241. struct PACKET_CZ_REQ_CHANGE_MEMBERPOS_sub{
  242. uint32 AID;
  243. uint32 CID;
  244. int32 position;
  245. } __attribute__((packed));
  246. struct PACKET_CZ_REQ_CHANGE_MEMBERPOS{
  247. int16 packetType;
  248. int16 packetLength;
  249. struct PACKET_CZ_REQ_CHANGE_MEMBERPOS_sub list[];
  250. } __attribute__((packed));
  251. struct PACKET_ZC_CLEAR_DIALOG{
  252. int16 packetType;
  253. uint32 GID;
  254. } __attribute__((packed));
  255. struct PACKET_ZC_NOTIFY_BIND_ON_EQUIP{
  256. int16 packetType;
  257. int16 index;
  258. } __attribute__((packed));
  259. struct PACKET_ZC_BANKING_CHECK{
  260. int16 packetType;
  261. int64 money;
  262. int16 reason;
  263. } __attribute__((packed));
  264. struct PACKET_ZC_ACK_BANKING_WITHDRAW{
  265. int16 packetType;
  266. int16 reason;
  267. int64 money;
  268. int32 zeny;
  269. } __attribute__((packed));
  270. struct PACKET_ZC_ACK_BANKING_DEPOSIT{
  271. int16 packetType;
  272. int16 reason;
  273. int64 money;
  274. int32 zeny;
  275. } __attribute__((packed));
  276. struct PACKET_ZC_ACK_CLOSE_BANKING{
  277. int16 packetType;
  278. int16 unknown;
  279. } __attribute__((packed));
  280. struct PACKET_ZC_ACK_OPEN_BANKING{
  281. int16 packetType;
  282. int16 unknown;
  283. } __attribute__((packed));
  284. struct PACKET_ZC_ACK_ADD_EXCHANGE_ITEM {
  285. int16 packetType;
  286. uint16 index;
  287. uint8 result;
  288. } __attribute__((packed));
  289. struct PACKET_ZC_COUPLENAME {
  290. int16 packetType;
  291. char name[NAME_LENGTH];
  292. } __attribute__((packed));
  293. struct PACKET_CZ_PARTY_REQ_MASTER_TO_JOIN{
  294. int16 packetType;
  295. uint32 CID;
  296. uint32 AID;
  297. } __attribute__((packed));
  298. struct PACKET_ZC_PARTY_REQ_MASTER_TO_JOIN{
  299. int16 packetType;
  300. uint32 CID;
  301. uint32 AID;
  302. char name[NAME_LENGTH];
  303. uint16 x;
  304. uint16 y;
  305. } __attribute__((packed));
  306. struct PACKET_CZ_PARTY_REQ_ACK_MASTER_TO_JOIN{
  307. int16 packetType;
  308. uint32 CID;
  309. uint32 AID;
  310. uint8 accept;
  311. } __attribute__((packed));
  312. struct PACKET_ZC_PARTY_JOIN_REQ_ACK_FROM_MASTER{
  313. int16 packetType;
  314. char player_name[NAME_LENGTH];
  315. char party_name[NAME_LENGTH];
  316. uint32 AID;
  317. uint32 refused;
  318. } __attribute__((packed));
  319. struct PACKET_CZ_REQ_SE_CASH_TAB_CODE{
  320. int16 packetType;
  321. int16 tab;
  322. } __attribute__((packed));
  323. struct PACKET_ZC_ACK_SE_CASH_ITEM_LIST2_sub{
  324. #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
  325. uint32 itemId;
  326. #else
  327. uint16 itemId;
  328. #endif
  329. int32 price;
  330. } __attribute__((packed));
  331. struct PACKET_ZC_ACK_SE_CASH_ITEM_LIST2{
  332. int16 packetType;
  333. int16 packetLength;
  334. uint32 tab;
  335. int16 count;
  336. struct PACKET_ZC_ACK_SE_CASH_ITEM_LIST2_sub items[];
  337. } __attribute__((packed));
  338. struct PACKET_CZ_REQ_MERGE_ITEM{
  339. int16 packetType;
  340. int16 packetLength;
  341. uint16 indices[];
  342. } __attribute__((packed));
  343. struct PACKET_CZ_RESET_SKILL{
  344. int16 packetType;
  345. uint8 unknown;
  346. } __attribute__((packed));
  347. struct PACKET_ZC_BOSS_INFO{
  348. int16 packetType;
  349. uint8 type;
  350. uint32 x;
  351. uint32 y;
  352. uint16 minHours;
  353. uint16 minMinutes;
  354. uint16 maxHours;
  355. uint16 maxMinutes;
  356. char name[51];
  357. } __attribute__((packed));
  358. struct PACKET_CZ_INVENTORY_TAB{
  359. int16 packetType;
  360. int16 index;
  361. bool favorite;
  362. } __attribute__((packed));
  363. struct PACKET_ZC_INVENTORY_TAB{
  364. int16 packetType;
  365. int16 index;
  366. bool favorite;
  367. } __attribute__((packed));
  368. struct PACKET_ZC_SKILL_SELECT_REQUEST_sub{
  369. int16 skill_id;
  370. } __attribute__((packed));
  371. struct PACKET_ZC_SKILL_SELECT_REQUEST{
  372. int16 packetType;
  373. int16 packetLength;
  374. int32 why;
  375. struct PACKET_ZC_SKILL_SELECT_REQUEST_sub skills[];
  376. } __attribute__((packed));
  377. struct PACKET_CZ_REQ_OPEN_BANKING{
  378. int16 packetType;
  379. uint32 AID;
  380. } __attribute__((packed));
  381. struct PACKET_CZ_REQ_CLOSE_BANKING{
  382. int16 packetType;
  383. uint32 AID;
  384. } __attribute__((packed));
  385. struct PACKET_CZ_REQ_BANKING_CHECK{
  386. int16 packetType;
  387. uint32 AID;
  388. } __attribute__((packed));
  389. struct PACKET_CZ_REQ_BANKING_DEPOSIT{
  390. int16 packetType;
  391. uint32 AID;
  392. int32 zeny;
  393. } __attribute__((packed));
  394. struct PACKET_CZ_REQ_BANKING_WITHDRAW{
  395. int16 packetType;
  396. uint32 AID;
  397. int32 zeny;
  398. } __attribute__((packed));
  399. // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
  400. #if !defined( sun ) && ( !defined( __NETBSD__ ) || __NetBSD_Version__ >= 600000000 )
  401. #pragma pack( pop )
  402. #endif
  403. DEFINE_PACKET_HEADER(ZC_NOTIFY_CHAT, 0x8d)
  404. DEFINE_PACKET_HEADER(ZC_BROADCAST, 0x9a)
  405. DEFINE_PACKET_HEADER(ZC_ITEM_ENTRY, 0x9d)
  406. DEFINE_PACKET_HEADER(ZC_PC_PURCHASE_RESULT, 0xca)
  407. DEFINE_PACKET_HEADER(ZC_ACK_ADD_EXCHANGE_ITEM, 0xea)
  408. DEFINE_PACKET_HEADER(ZC_MVP_GETTING_ITEM, 0x10a)
  409. DEFINE_PACKET_HEADER(CZ_REQ_CHANGE_MEMBERPOS, 0x155)
  410. DEFINE_PACKET_HEADER(CZ_REQMAKINGITEM, 0x18e)
  411. DEFINE_PACKET_HEADER(ZC_ACK_REQMAKINGITEM, 0x18f)
  412. DEFINE_PACKET_HEADER(CZ_REQ_MAKINGARROW, 0x1ae)
  413. DEFINE_PACKET_HEADER(ZC_BROADCAST2, 0x1c3)
  414. #if PACKETVER_MAIN_NUM >= 20200916 || PACKETVER_RE_NUM >= 20200724
  415. DEFINE_PACKET_HEADER(CZ_REQ_ITEMREPAIR, 0xb66)
  416. #else
  417. DEFINE_PACKET_HEADER(CZ_REQ_ITEMREPAIR, 0x1fd)
  418. #endif
  419. DEFINE_PACKET_HEADER(ZC_COUPLENAME, 0x1e6);
  420. DEFINE_PACKET_HEADER(ZC_FRIENDS_LIST, 0x201)
  421. DEFINE_PACKET_HEADER(ZC_NOTIFY_WEAPONITEMLIST, 0x221)
  422. DEFINE_PACKET_HEADER(ZC_ACK_WEAPONREFINE, 0x223)
  423. DEFINE_PACKET_HEADER(CZ_REQ_MAKINGITEM, 0x25b)
  424. DEFINE_PACKET_HEADER(ZC_PC_CASH_POINT_ITEMLIST, 0x287)
  425. DEFINE_PACKET_HEADER(ZC_BOSS_INFO, 0x293)
  426. DEFINE_PACKET_HEADER(ZC_CASH_TIME_COUNTER, 0x298)
  427. DEFINE_PACKET_HEADER(ZC_CASH_ITEM_DELETE, 0x299)
  428. DEFINE_PACKET_HEADER(ZC_NOTIFY_BIND_ON_EQUIP, 0x2d3)
  429. DEFINE_PACKET_HEADER(ZC_SKILL_SELECT_REQUEST, 0x442)
  430. DEFINE_PACKET_HEADER(ZC_FAILED_TRADE_BUYING_STORE_TO_SELLER, 0x824)
  431. DEFINE_PACKET_HEADER(CZ_SSILIST_ITEM_CLICK, 0x83c)
  432. DEFINE_PACKET_HEADER(CZ_REQ_SE_CASH_TAB_CODE, 0x846)
  433. DEFINE_PACKET_HEADER(ZC_ACK_SE_CASH_ITEM_LIST2, 0x8c0)
  434. DEFINE_PACKET_HEADER(ZC_ACK_SCHEDULER_CASHITEM, 0x8ca)
  435. DEFINE_PACKET_HEADER(ZC_CLEAR_DIALOG, 0x8d6)
  436. DEFINE_PACKET_HEADER(CZ_INVENTORY_TAB, 0x907)
  437. DEFINE_PACKET_HEADER(ZC_INVENTORY_TAB, 0x908)
  438. DEFINE_PACKET_HEADER(ZC_ENTRY_QUEUE_INIT, 0x90e)
  439. DEFINE_PACKET_HEADER(CZ_REQ_MERGE_ITEM, 0x96e)
  440. DEFINE_PACKET_HEADER(ZC_BANKING_CHECK, 0x9a6)
  441. DEFINE_PACKET_HEADER(CZ_REQ_BANKING_DEPOSIT, 0x9a7)
  442. DEFINE_PACKET_HEADER(ZC_ACK_BANKING_DEPOSIT, 0x9a8)
  443. DEFINE_PACKET_HEADER(CZ_REQ_BANKING_WITHDRAW, 0x9a9)
  444. DEFINE_PACKET_HEADER(ZC_ACK_BANKING_WITHDRAW, 0x9aa)
  445. DEFINE_PACKET_HEADER(CZ_REQ_BANKING_CHECK, 0x9ab)
  446. DEFINE_PACKET_HEADER(CZ_REQ_CASH_BARGAIN_SALE_ITEM_INFO, 0x9ac)
  447. DEFINE_PACKET_HEADER(ZC_ACK_CASH_BARGAIN_SALE_ITEM_INFO, 0x9ad)
  448. DEFINE_PACKET_HEADER(CZ_REQ_APPLY_BARGAIN_SALE_ITEM, 0x9ae)
  449. DEFINE_PACKET_HEADER(CZ_REQ_REMOVE_BARGAIN_SALE_ITEM, 0x9b0)
  450. DEFINE_PACKET_HEADER(ZC_NOTIFY_BARGAIN_SALE_SELLING, 0x9b2)
  451. DEFINE_PACKET_HEADER(ZC_NOTIFY_BARGAIN_SALE_CLOSE, 0x9b3)
  452. DEFINE_PACKET_HEADER(CZ_REQ_OPEN_BANKING, 0x9b6)
  453. DEFINE_PACKET_HEADER(ZC_ACK_OPEN_BANKING, 0x9b7)
  454. DEFINE_PACKET_HEADER(CZ_REQ_CLOSE_BANKING, 0x9b8)
  455. DEFINE_PACKET_HEADER(ZC_ACK_CLOSE_BANKING, 0x9b9)
  456. DEFINE_PACKET_HEADER(ZC_ACK_COUNT_BARGAIN_SALE_ITEM, 0x9c4)
  457. DEFINE_PACKET_HEADER(ZC_ACK_GUILDSTORAGE_LOG, 0x9da)
  458. DEFINE_PACKET_HEADER(CZ_REQ_APPLY_BARGAIN_SALE_ITEM2, 0xa3d)
  459. DEFINE_PACKET_HEADER(CZ_REQ_STYLE_CHANGE, 0xa46)
  460. DEFINE_PACKET_HEADER(ZC_STYLE_CHANGE_RES, 0xa47)
  461. DEFINE_PACKET_HEADER(CZ_REQ_STYLE_CLOSE, 0xa48)
  462. DEFINE_PACKET_HEADER(ZC_GROUP_ISALIVE, 0xab2)
  463. DEFINE_PACKET_HEADER(CZ_PARTY_REQ_MASTER_TO_JOIN, 0x0ae6)
  464. DEFINE_PACKET_HEADER(ZC_PARTY_REQ_MASTER_TO_JOIN, 0x0ae7)
  465. DEFINE_PACKET_HEADER(CZ_PARTY_REQ_ACK_MASTER_TO_JOIN, 0x0af8)
  466. DEFINE_PACKET_HEADER(ZC_PARTY_JOIN_REQ_ACK_FROM_MASTER, 0x0afa)
  467. DEFINE_PACKET_HEADER(CZ_REQ_STYLE_CHANGE2, 0xafc)
  468. DEFINE_PACKET_HEADER(ZC_REMOVE_EFFECT, 0x0b0d)
  469. DEFINE_PACKET_HEADER(CZ_UNCONFIRMED_TSTATUS_UP, 0x0b24)
  470. DEFINE_PACKET_HEADER(CZ_GUILD_EMBLEM_CHANGE2, 0x0b46)
  471. DEFINE_PACKET_HEADER(ZC_TARGET_SPIRITS, 0xb68)
  472. DEFINE_PACKET_HEADER(ZC_SOULENERGY, 0xb73)
  473. DEFINE_PACKET_HEADER(CZ_UNCONFIRMED_RODEX_RETURN, 0xb98)
  474. DEFINE_PACKET_HEADER(ZC_SUMMON_HP_INIT, 0xb6b)
  475. DEFINE_PACKET_HEADER(ZC_SUMMON_HP_UPDATE, 0xb6c)
  476. DEFINE_PACKET_HEADER(ZC_REPUTE_INFO, 0x0b8d)
  477. DEFINE_PACKET_HEADER(ZC_UI_OPEN_V3, 0x0b9a)
  478. DEFINE_PACKET_HEADER(CZ_RESET_SKILL, 0x0bb1)
  479. DEFINE_PACKET_HEADER(CZ_PC_SELL_ITEMLIST, 0x00c9)
  480. const int16 MAX_INVENTORY_ITEM_PACKET_NORMAL = ( ( INT16_MAX - ( sizeof( struct packet_itemlist_normal ) - ( sizeof( struct NORMALITEM_INFO ) * MAX_ITEMLIST) ) ) / sizeof( struct NORMALITEM_INFO ) );
  481. const int16 MAX_INVENTORY_ITEM_PACKET_EQUIP = ( ( INT16_MAX - ( sizeof( struct packet_itemlist_equip ) - ( sizeof( struct EQUIPITEM_INFO ) * MAX_ITEMLIST ) ) ) / sizeof( struct EQUIPITEM_INFO ) );
  482. 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 ) );
  483. 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 ) );
  484. const int16 MAX_GUILD_STORAGE_LOG_PACKET = ( ( INT16_MAX - sizeof( struct PACKET_ZC_ACK_GUILDSTORAGE_LOG ) ) / sizeof( struct PACKET_ZC_ACK_GUILDSTORAGE_LOG_sub ) );
  485. #undef MAX_ITEM_OPTIONS
  486. #undef UNAVAILABLE_STRUCT
  487. #undef MAX_ITEMLIST
  488. #undef MAX_ACHIEVEMENT_DB
  489. #undef MAX_PACKET_POS
  490. #undef DEFINE_PACKET_HEADER
  491. #pragma warning( pop )
  492. #endif /* PACKETS_HPP */