packets.hpp 27 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114
  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. DEFINE_PACKET_HEADER(ZC_PC_PURCHASE_RESULT, 0xca)
  32. struct PACKET_CZ_REQ_MAKINGARROW{
  33. int16 packetType;
  34. #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
  35. uint32 itemId;
  36. #else
  37. uint16 itemId;
  38. #endif
  39. } __attribute__((packed));
  40. DEFINE_PACKET_HEADER(CZ_REQ_MAKINGARROW, 0x1ae)
  41. struct PACKET_CZ_SE_PC_BUY_CASHITEM_LIST_sub{
  42. uint32 itemId;
  43. uint32 amount;
  44. uint16 tab;
  45. } __attribute__((packed));
  46. struct PACKET_CZ_SE_PC_BUY_CASHITEM_LIST{
  47. int16 packetType;
  48. int16 packetLength;
  49. uint16 count;
  50. uint32 kafraPoints;
  51. struct PACKET_CZ_SE_PC_BUY_CASHITEM_LIST_sub items[];
  52. } __attribute__((packed));
  53. DEFINE_PACKET_HEADER(CZ_SE_PC_BUY_CASHITEM_LIST, 0x848)
  54. struct PACKET_CZ_REQ_CASH_BARGAIN_SALE_ITEM_INFO{
  55. int16 packetType;
  56. int16 packetLength;
  57. uint32 AID;
  58. #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
  59. uint32 itemId;
  60. #else
  61. uint16 itemId;
  62. #endif
  63. } __attribute__((packed));
  64. DEFINE_PACKET_HEADER(CZ_REQ_CASH_BARGAIN_SALE_ITEM_INFO, 0x9ac)
  65. struct PACKET_ZC_ACK_CASH_BARGAIN_SALE_ITEM_INFO{
  66. int16 packetType;
  67. uint16 result;
  68. #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
  69. uint32 itemId;
  70. #else
  71. uint16 itemId;
  72. #endif
  73. uint32 price;
  74. } __attribute__((packed));
  75. DEFINE_PACKET_HEADER(ZC_ACK_CASH_BARGAIN_SALE_ITEM_INFO, 0x9ad)
  76. struct PACKET_CZ_REQ_APPLY_BARGAIN_SALE_ITEM{
  77. int16 packetType;
  78. uint32 AID;
  79. #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
  80. uint32 itemId;
  81. #else
  82. uint16 itemId;
  83. #endif
  84. uint32 amount;
  85. uint32 startTime;
  86. #if PACKETVER >= 20150520
  87. uint16 hours;
  88. #else
  89. uint8 hours;
  90. #endif
  91. } __attribute__((packed));
  92. DEFINE_PACKET_HEADER(CZ_REQ_APPLY_BARGAIN_SALE_ITEM, 0x9ae)
  93. struct PACKET_CZ_REQ_REMOVE_BARGAIN_SALE_ITEM{
  94. int16 packetType;
  95. uint32 AID;
  96. #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
  97. uint32 itemId;
  98. #else
  99. uint16 itemId;
  100. #endif
  101. } __attribute__((packed));
  102. DEFINE_PACKET_HEADER(CZ_REQ_REMOVE_BARGAIN_SALE_ITEM, 0x9b0)
  103. struct PACKET_ZC_NOTIFY_BARGAIN_SALE_SELLING{
  104. int16 packetType;
  105. #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
  106. uint32 itemId;
  107. #else
  108. uint16 itemId;
  109. #endif
  110. uint32 remainingTime;
  111. } __attribute__((packed));
  112. DEFINE_PACKET_HEADER(ZC_NOTIFY_BARGAIN_SALE_SELLING, 0x9b2)
  113. struct PACKET_ZC_NOTIFY_BARGAIN_SALE_CLOSE{
  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. } __attribute__((packed));
  121. DEFINE_PACKET_HEADER(ZC_NOTIFY_BARGAIN_SALE_CLOSE, 0x9b3)
  122. struct PACKET_ZC_ACK_COUNT_BARGAIN_SALE_ITEM{
  123. int16 packetType;
  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. uint32 amount;
  130. } __attribute__((packed));
  131. DEFINE_PACKET_HEADER(ZC_ACK_COUNT_BARGAIN_SALE_ITEM, 0x9c4)
  132. struct PACKET_ZC_ACK_GUILDSTORAGE_LOG_sub{
  133. uint32 id;
  134. #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
  135. uint32 itemId;
  136. #else
  137. uint16 itemId;
  138. #endif
  139. int32 amount;
  140. uint8 action;
  141. int32 refine;
  142. int64 uniqueId;
  143. uint8 IsIdentified;
  144. uint16 itemType;
  145. struct EQUIPSLOTINFO slot;
  146. char name[NAME_LENGTH];
  147. char time[NAME_LENGTH];
  148. uint8 attribute;
  149. } __attribute__((packed));
  150. struct PACKET_ZC_ACK_GUILDSTORAGE_LOG{
  151. int16 packetType;
  152. int16 PacketLength;
  153. uint16 result;
  154. uint16 amount;
  155. struct PACKET_ZC_ACK_GUILDSTORAGE_LOG_sub items[];
  156. } __attribute__((packed));
  157. DEFINE_PACKET_HEADER(ZC_ACK_GUILDSTORAGE_LOG, 0x9da)
  158. struct PACKET_CZ_ADVANCED_STATUS_CHANGE{
  159. int16 packetType;
  160. int16 type;
  161. int16 amount;
  162. } __attribute__((packed));
  163. DEFINE_PACKET_HEADER(CZ_ADVANCED_STATUS_CHANGE, 0x0b24)
  164. struct PACKET_CZ_REQ_ADD_NEW_EMBLEM {
  165. int16 packetType;
  166. uint32 guild_id;
  167. uint32 version;
  168. } __attribute__((packed));
  169. DEFINE_PACKET_HEADER(CZ_REQ_ADD_NEW_EMBLEM, 0x0b46)
  170. struct PACKET_ZC_BROADCAST{
  171. int16 packetType;
  172. int16 PacketLength;
  173. char message[];
  174. } __attribute__((packed));
  175. DEFINE_PACKET_HEADER(ZC_BROADCAST, 0x9a)
  176. struct PACKET_ZC_BROADCAST2{
  177. int16 packetType;
  178. int16 PacketLength;
  179. uint32 fontColor;
  180. int16 fontType;
  181. int16 fontSize;
  182. int16 fontAlign;
  183. int16 fontY;
  184. char message[];
  185. } __attribute__((packed));
  186. DEFINE_PACKET_HEADER(ZC_BROADCAST2, 0x1c3)
  187. struct PACKET_ZC_SOULENERGY{
  188. int16 PacketType;
  189. uint32 AID;
  190. uint16 num;
  191. } __attribute__((packed));
  192. DEFINE_PACKET_HEADER(ZC_SOULENERGY, 0xb73)
  193. struct PACKET_ZC_ENTRY_QUEUE_INIT {
  194. int16 packetType;
  195. } __attribute__((packed));
  196. DEFINE_PACKET_HEADER(ZC_ENTRY_QUEUE_INIT, 0x90e)
  197. struct PACKET_CZ_RODEX_RETURN{
  198. int16 packetType;
  199. uint32 msgId;
  200. } __attribute__((packed));
  201. DEFINE_PACKET_HEADER(CZ_RODEX_RETURN, 0xb98)
  202. struct PACKET_CZ_REQ_STYLE_CLOSE{
  203. int16 packetType;
  204. } __attribute__((packed));
  205. DEFINE_PACKET_HEADER(CZ_REQ_STYLE_CLOSE, 0xa48)
  206. struct PACKET_ZC_SUMMON_HP_INIT {
  207. int16 PacketType;
  208. uint32 summonAID;
  209. uint32 CurrentHP;
  210. uint32 MaxHP;
  211. } __attribute__((packed));
  212. DEFINE_PACKET_HEADER(ZC_SUMMON_HP_INIT, 0xb6b)
  213. struct PACKET_ZC_SUMMON_HP_UPDATE {
  214. int16 PacketType;
  215. uint32 summonAID;
  216. uint16 VarId;
  217. uint32 Value;
  218. } __attribute__((packed));
  219. DEFINE_PACKET_HEADER(ZC_SUMMON_HP_UPDATE, 0xb6c)
  220. struct PACKET_ZC_REPUTE_INFO_sub{
  221. uint64 type;
  222. int64 points;
  223. } __attribute__((packed));
  224. struct PACKET_ZC_REPUTE_INFO{
  225. int16 packetType;
  226. int16 packetLength;
  227. uint8 success;
  228. struct PACKET_ZC_REPUTE_INFO_sub list[];
  229. } __attribute__((packed));
  230. DEFINE_PACKET_HEADER(ZC_REPUTE_INFO, 0x0b8d)
  231. struct PACKET_ZC_UI_OPEN_V3{
  232. int16 packetType;
  233. uint8 type;
  234. uint64 data;
  235. } __attribute__((packed));
  236. DEFINE_PACKET_HEADER(ZC_UI_OPEN_V3, 0x0b9a)
  237. struct PACKET_ZC_TARGET_SPIRITS {
  238. int16 packetType;
  239. uint32 GID;
  240. uint32 unknown_val;
  241. uint16 amount;
  242. } __attribute__((packed));
  243. DEFINE_PACKET_HEADER(ZC_TARGET_SPIRITS, 0xb68)
  244. struct PACKET_ZC_FRIENDS_LIST_sub{
  245. uint32 AID;
  246. uint32 CID;
  247. #if !( PACKETVER_MAIN_NUM >= 20180307 || PACKETVER_RE_NUM >= 20180221 || PACKETVER_ZERO_NUM >= 20180328 ) || PACKETVER >= 20200902
  248. char name[NAME_LENGTH];
  249. #endif
  250. } __attribute__((packed));
  251. struct PACKET_ZC_FRIENDS_LIST{
  252. int16 packetType;
  253. int16 PacketLength;
  254. struct PACKET_ZC_FRIENDS_LIST_sub friends[];
  255. } __attribute__((packed));
  256. DEFINE_PACKET_HEADER(ZC_FRIENDS_LIST, 0x201)
  257. struct PACKET_CZ_PC_SELL_ITEMLIST_sub {
  258. uint16 index;
  259. uint16 amount;
  260. } __attribute__((packed));
  261. struct PACKET_CZ_PC_SELL_ITEMLIST {
  262. int16 packetType;
  263. int16 packetLength;
  264. PACKET_CZ_PC_SELL_ITEMLIST_sub sellList[];
  265. } __attribute__((packed));
  266. DEFINE_PACKET_HEADER(CZ_PC_SELL_ITEMLIST, 0x00c9)
  267. struct PACKET_CZ_REQ_CHANGE_MEMBERPOS_sub{
  268. uint32 AID;
  269. uint32 CID;
  270. int32 position;
  271. } __attribute__((packed));
  272. struct PACKET_CZ_REQ_CHANGE_MEMBERPOS{
  273. int16 packetType;
  274. int16 packetLength;
  275. struct PACKET_CZ_REQ_CHANGE_MEMBERPOS_sub list[];
  276. } __attribute__((packed));
  277. DEFINE_PACKET_HEADER(CZ_REQ_CHANGE_MEMBERPOS, 0x155)
  278. struct PACKET_ZC_CLEAR_DIALOG{
  279. int16 packetType;
  280. uint32 GID;
  281. } __attribute__((packed));
  282. DEFINE_PACKET_HEADER(ZC_CLEAR_DIALOG, 0x8d6)
  283. struct PACKET_ZC_NOTIFY_BIND_ON_EQUIP{
  284. int16 packetType;
  285. int16 index;
  286. } __attribute__((packed));
  287. DEFINE_PACKET_HEADER(ZC_NOTIFY_BIND_ON_EQUIP, 0x2d3)
  288. struct PACKET_ZC_BANKING_CHECK{
  289. int16 packetType;
  290. int64 money;
  291. int16 reason;
  292. } __attribute__((packed));
  293. DEFINE_PACKET_HEADER(ZC_BANKING_CHECK, 0x9a6)
  294. struct PACKET_ZC_ACK_BANKING_WITHDRAW{
  295. int16 packetType;
  296. int16 reason;
  297. int64 money;
  298. int32 zeny;
  299. } __attribute__((packed));
  300. DEFINE_PACKET_HEADER(ZC_ACK_BANKING_WITHDRAW, 0x9aa)
  301. struct PACKET_ZC_ACK_BANKING_DEPOSIT{
  302. int16 packetType;
  303. int16 reason;
  304. int64 money;
  305. int32 zeny;
  306. } __attribute__((packed));
  307. DEFINE_PACKET_HEADER(ZC_ACK_BANKING_DEPOSIT, 0x9a8)
  308. struct PACKET_ZC_ACK_CLOSE_BANKING{
  309. int16 packetType;
  310. int16 unknown;
  311. } __attribute__((packed));
  312. DEFINE_PACKET_HEADER(ZC_ACK_CLOSE_BANKING, 0x9b9)
  313. struct PACKET_ZC_ACK_OPEN_BANKING{
  314. int16 packetType;
  315. int16 unknown;
  316. } __attribute__((packed));
  317. DEFINE_PACKET_HEADER(ZC_ACK_OPEN_BANKING, 0x9b7)
  318. struct PACKET_ZC_ACK_ADD_EXCHANGE_ITEM {
  319. int16 packetType;
  320. uint16 index;
  321. uint8 result;
  322. } __attribute__((packed));
  323. DEFINE_PACKET_HEADER(ZC_ACK_ADD_EXCHANGE_ITEM, 0xea)
  324. struct PACKET_ZC_COUPLENAME {
  325. int16 packetType;
  326. char name[NAME_LENGTH];
  327. } __attribute__((packed));
  328. DEFINE_PACKET_HEADER(ZC_COUPLENAME, 0x1e6);
  329. struct PACKET_CZ_PARTY_REQ_MASTER_TO_JOIN{
  330. int16 packetType;
  331. uint32 CID;
  332. uint32 AID;
  333. } __attribute__((packed));
  334. DEFINE_PACKET_HEADER(CZ_PARTY_REQ_MASTER_TO_JOIN, 0x0ae6)
  335. struct PACKET_ZC_PARTY_REQ_MASTER_TO_JOIN{
  336. int16 packetType;
  337. uint32 CID;
  338. uint32 AID;
  339. char name[NAME_LENGTH];
  340. uint16 x;
  341. uint16 y;
  342. } __attribute__((packed));
  343. DEFINE_PACKET_HEADER(ZC_PARTY_REQ_MASTER_TO_JOIN, 0x0ae7)
  344. struct PACKET_CZ_PARTY_REQ_ACK_MASTER_TO_JOIN{
  345. int16 packetType;
  346. uint32 CID;
  347. uint32 AID;
  348. uint8 accept;
  349. } __attribute__((packed));
  350. DEFINE_PACKET_HEADER(CZ_PARTY_REQ_ACK_MASTER_TO_JOIN, 0x0af8)
  351. struct PACKET_ZC_PARTY_JOIN_REQ_ACK_FROM_MASTER{
  352. int16 packetType;
  353. char player_name[NAME_LENGTH];
  354. char party_name[NAME_LENGTH];
  355. uint32 AID;
  356. uint32 refused;
  357. } __attribute__((packed));
  358. DEFINE_PACKET_HEADER(ZC_PARTY_JOIN_REQ_ACK_FROM_MASTER, 0x0afa)
  359. struct PACKET_CZ_REQ_SE_CASH_TAB_CODE{
  360. int16 packetType;
  361. int16 tab;
  362. } __attribute__((packed));
  363. DEFINE_PACKET_HEADER(CZ_REQ_SE_CASH_TAB_CODE, 0x846)
  364. struct PACKET_ZC_ACK_SE_CASH_ITEM_LIST2_sub{
  365. #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
  366. uint32 itemId;
  367. #else
  368. uint16 itemId;
  369. #endif
  370. int32 price;
  371. } __attribute__((packed));
  372. struct PACKET_ZC_ACK_SE_CASH_ITEM_LIST2{
  373. int16 packetType;
  374. int16 packetLength;
  375. uint32 tab;
  376. int16 count;
  377. struct PACKET_ZC_ACK_SE_CASH_ITEM_LIST2_sub items[];
  378. } __attribute__((packed));
  379. DEFINE_PACKET_HEADER(ZC_ACK_SE_CASH_ITEM_LIST2, 0x8c0)
  380. struct PACKET_CZ_REQ_MERGE_ITEM{
  381. int16 packetType;
  382. int16 packetLength;
  383. uint16 indices[];
  384. } __attribute__((packed));
  385. DEFINE_PACKET_HEADER(CZ_REQ_MERGE_ITEM, 0x96e)
  386. struct PACKET_CZ_RESET_SKILL{
  387. int16 packetType;
  388. uint8 unknown;
  389. } __attribute__((packed));
  390. DEFINE_PACKET_HEADER(CZ_RESET_SKILL, 0x0bb1)
  391. struct PACKET_ZC_BOSS_INFO{
  392. int16 packetType;
  393. uint8 type;
  394. uint32 x;
  395. uint32 y;
  396. uint16 minHours;
  397. uint16 minMinutes;
  398. uint16 maxHours;
  399. uint16 maxMinutes;
  400. char name[51];
  401. } __attribute__((packed));
  402. DEFINE_PACKET_HEADER(ZC_BOSS_INFO, 0x293)
  403. struct PACKET_CZ_INVENTORY_TAB{
  404. int16 packetType;
  405. int16 index;
  406. bool favorite;
  407. } __attribute__((packed));
  408. DEFINE_PACKET_HEADER(CZ_INVENTORY_TAB, 0x907)
  409. struct PACKET_ZC_INVENTORY_TAB{
  410. int16 packetType;
  411. int16 index;
  412. bool favorite;
  413. } __attribute__((packed));
  414. DEFINE_PACKET_HEADER(ZC_INVENTORY_TAB, 0x908)
  415. struct PACKET_ZC_SKILL_SELECT_REQUEST_sub{
  416. int16 skill_id;
  417. } __attribute__((packed));
  418. struct PACKET_ZC_SKILL_SELECT_REQUEST{
  419. int16 packetType;
  420. int16 packetLength;
  421. int32 why;
  422. struct PACKET_ZC_SKILL_SELECT_REQUEST_sub skills[];
  423. } __attribute__((packed));
  424. struct PACKET_CZ_REQ_OPEN_BANKING{
  425. int16 packetType;
  426. uint32 AID;
  427. } __attribute__((packed));
  428. struct PACKET_CZ_REQ_CLOSE_BANKING{
  429. int16 packetType;
  430. uint32 AID;
  431. } __attribute__((packed));
  432. struct PACKET_CZ_REQ_BANKING_CHECK{
  433. int16 packetType;
  434. uint32 AID;
  435. } __attribute__((packed));
  436. struct PACKET_CZ_REQ_BANKING_DEPOSIT{
  437. int16 packetType;
  438. uint32 AID;
  439. int32 zeny;
  440. } __attribute__((packed));
  441. struct PACKET_CZ_REQ_BANKING_WITHDRAW{
  442. int16 packetType;
  443. uint32 AID;
  444. int32 zeny;
  445. } __attribute__((packed));
  446. #if PACKETVER < 20080102
  447. struct PACKET_ZC_ACCEPT_ENTER {
  448. int16 packetType;
  449. uint32 startTime;
  450. uint8 posDir[3];
  451. uint8 xSize;
  452. uint8 ySize;
  453. } __attribute__((packed));
  454. DEFINE_PACKET_HEADER(ZC_ACCEPT_ENTER, 0x73)
  455. #elif PACKETVER < 20141022 || PACKETVER >= 20160330
  456. struct PACKET_ZC_ACCEPT_ENTER {
  457. int16 packetType;
  458. uint32 startTime;
  459. uint8 posDir[3];
  460. uint8 xSize;
  461. uint8 ySize;
  462. uint16 font;
  463. } __attribute__((packed));
  464. DEFINE_PACKET_HEADER(ZC_ACCEPT_ENTER, 0x2eb)
  465. #else
  466. struct PACKET_ZC_ACCEPT_ENTER {
  467. int16 packetType;
  468. uint32 startTime;
  469. uint8 posDir[3];
  470. uint8 xSize;
  471. uint8 ySize;
  472. uint16 font;
  473. uint8 sex;
  474. } __attribute__((packed));
  475. DEFINE_PACKET_HEADER(ZC_ACCEPT_ENTER, 0xa18)
  476. #endif
  477. struct PACKET_ZC_REFUSE_ENTER {
  478. int16 packetType;
  479. uint8 errorCode;
  480. } __attribute__((packed));
  481. static_assert(sizeof(PACKET_ZC_REFUSE_ENTER) == 3);
  482. DEFINE_PACKET_HEADER(ZC_REFUSE_ENTER, 0x74)
  483. struct PACKET_SC_NOTIFY_BAN {
  484. int16 packetType;
  485. uint8 errorCode;
  486. } __attribute__((packed));
  487. DEFINE_PACKET_HEADER(SC_NOTIFY_BAN, 0x81)
  488. struct PACKET_ZC_RESTART_ACK {
  489. int16 packetType;
  490. uint8 type;
  491. } __attribute__((packed));
  492. DEFINE_PACKET_HEADER(ZC_RESTART_ACK, 0xb3)
  493. struct PACKET_ZC_NOTIFY_VANISH {
  494. int16 packetType;
  495. uint32 gid;
  496. uint8 type;
  497. } __attribute__((packed));
  498. DEFINE_PACKET_HEADER(ZC_NOTIFY_VANISH, 0x80)
  499. struct PACKET_ZC_ITEM_DISAPPEAR {
  500. int16 packetType;
  501. uint32 itemAid;
  502. } __attribute__((packed));
  503. DEFINE_PACKET_HEADER(ZC_ITEM_DISAPPEAR, 0xa1)
  504. struct PACKET_ZC_MILLENNIUMSHIELD {
  505. int16 packetType;
  506. uint32 aid;
  507. int16 num;
  508. int16 state;
  509. } __attribute__((packed));
  510. DEFINE_PACKET_HEADER(ZC_MILLENNIUMSHIELD, 0x440)
  511. struct PACKET_ZC_SPIRITS_ATTRIBUTE {
  512. int16 packetType;
  513. uint32 aid;
  514. int16 spiritsType;
  515. int16 num;
  516. } __attribute__((packed));
  517. DEFINE_PACKET_HEADER(ZC_SPIRITS_ATTRIBUTE, 0x8cf)
  518. struct PACKET_ZC_CHANGESTATE_MER {
  519. int16 packetType;
  520. uint8 type;
  521. uint8 state;
  522. uint32 gid;
  523. uint32 data;
  524. } __attribute__((packed));
  525. DEFINE_PACKET_HEADER(ZC_CHANGESTATE_MER, 0x230)
  526. struct PACKET_ZC_HOSKILLINFO_LIST_sub {
  527. uint16 id;
  528. uint16 inf;
  529. uint16 unknown;
  530. uint16 level;
  531. uint16 sp;
  532. uint16 range;
  533. char name[NAME_LENGTH];
  534. uint8 upgradable;
  535. } __attribute__((packed));
  536. struct PACKET_ZC_HOSKILLINFO_LIST {
  537. int16 packetType;
  538. int16 packetLength;
  539. PACKET_ZC_HOSKILLINFO_LIST_sub skills[];
  540. } __attribute__((packed));
  541. DEFINE_PACKET_HEADER(ZC_HOSKILLINFO_LIST, 0x235)
  542. struct PACKET_ZC_HOSKILLINFO_UPDATE {
  543. int16 packetType;
  544. uint16 skill_id;
  545. int16 Level;
  546. int16 SP;
  547. int16 AttackRange;
  548. bool upgradable;
  549. } __attribute__((packed));
  550. DEFINE_PACKET_HEADER(ZC_HOSKILLINFO_UPDATE, 0x239)
  551. struct PACKET_ZC_NOTIFY_MOVE {
  552. int16 packetType;
  553. uint32 gid;
  554. uint8 moveData[6];
  555. uint32 moveStartTime;
  556. } __attribute__((packed));
  557. DEFINE_PACKET_HEADER(ZC_NOTIFY_MOVE, 0x86)
  558. struct PACKET_ZC_NOTIFY_PLAYERMOVE {
  559. int16 packetType;
  560. uint32 moveStartTime;
  561. uint8 moveData[6];
  562. } __attribute__((packed));
  563. DEFINE_PACKET_HEADER(ZC_NOTIFY_PLAYERMOVE, 0x87);
  564. struct PACKET_ZC_NPCACK_MAPMOVE {
  565. int16 packetType;
  566. char mapName[MAP_NAME_LENGTH_EXT];
  567. uint16 xPos;
  568. uint16 yPos;
  569. } __attribute__((packed));
  570. DEFINE_PACKET_HEADER(ZC_NPCACK_MAPMOVE, 0x91)
  571. #if PACKETVER >= 20170315
  572. // Actually ZC_NPCACK_SERVERMOVE_DOMAIN
  573. struct PACKET_ZC_NPCACK_SERVERMOVE {
  574. int16 packetType;
  575. char mapName[MAP_NAME_LENGTH_EXT];
  576. uint16 xPos;
  577. uint16 yPos;
  578. uint32 ip;
  579. uint16 port;
  580. char domain[128];
  581. } __attribute__((packed));
  582. DEFINE_PACKET_HEADER(ZC_NPCACK_SERVERMOVE, 0xac7)
  583. #else
  584. struct PACKET_ZC_NPCACK_SERVERMOVE {
  585. int16 packetType;
  586. char mapName[MAP_NAME_LENGTH_EXT];
  587. uint16 xPos;
  588. uint16 yPos;
  589. uint32 ip;
  590. uint16 port;
  591. } __attribute__((packed));
  592. DEFINE_PACKET_HEADER(ZC_NPCACK_SERVERMOVE, 0x92)
  593. #endif
  594. struct PACKET_ZC_STOPMOVE {
  595. int16 packetType;
  596. uint32 AID;
  597. uint16 xPos;
  598. uint16 yPos;
  599. } __attribute__((packed));
  600. DEFINE_PACKET_HEADER(ZC_STOPMOVE, 0x88)
  601. struct PACKET_ZC_SELECT_DEALTYPE {
  602. int16 packetType;
  603. uint32 npcId;
  604. } __attribute__((packed));
  605. DEFINE_PACKET_HEADER(ZC_SELECT_DEALTYPE, 0xc4)
  606. struct PACKET_ZC_PC_SELL_ITEMLIST_sub {
  607. uint16 index;
  608. uint32 price;
  609. uint32 overcharge;
  610. } __attribute__((packed));
  611. struct PACKET_ZC_PC_SELL_ITEMLIST {
  612. int16 packetType;
  613. int16 packetLength;
  614. PACKET_ZC_PC_SELL_ITEMLIST_sub items[];
  615. } __attribute__((packed));
  616. DEFINE_PACKET_HEADER(ZC_PC_SELL_ITEMLIST, 0xc7)
  617. struct PACKET_ZC_CLOSE_DIALOG {
  618. int16 packetType;
  619. uint32 npcId;
  620. } __attribute__((packed));
  621. DEFINE_PACKET_HEADER(ZC_CLOSE_DIALOG, 0xb6)
  622. struct PACKET_ZC_MENU_LIST {
  623. int16 packetType;
  624. int16 packetLength;
  625. uint32 npcId;
  626. char menu[];
  627. } __attribute__((packed));
  628. DEFINE_PACKET_HEADER(ZC_MENU_LIST, 0xb7)
  629. struct PACKET_ZC_OPEN_EDITDLG {
  630. int16 packetType;
  631. uint32 npcId;
  632. } __attribute__((packed));
  633. DEFINE_PACKET_HEADER(ZC_OPEN_EDITDLG, 0x142)
  634. struct PACKET_ZC_OPEN_EDITDLGSTR {
  635. int16 packetType;
  636. uint32 npcId;
  637. } __attribute__((packed));
  638. DEFINE_PACKET_HEADER(ZC_OPEN_EDITDLGSTR, 0x1d4)
  639. struct PACKET_ZC_COMPASS {
  640. int16 packetType;
  641. uint32 npcId;
  642. uint32 type;
  643. uint32 xPos;
  644. uint32 yPos;
  645. uint8 id;
  646. uint32 color;
  647. } __attribute__((packed));
  648. DEFINE_PACKET_HEADER(ZC_COMPASS, 0x144)
  649. struct PACKET_ZC_ITEM_THROW_ACK {
  650. int16 packetType;
  651. uint16 index;
  652. uint16 count;
  653. } __attribute__((packed));
  654. DEFINE_PACKET_HEADER(ZC_ITEM_THROW_ACK, 0xaf)
  655. struct PACKET_ZC_DELETE_ITEM_FROM_BODY {
  656. int16 packetType;
  657. int16 deleteType;
  658. uint16 index;
  659. int16 count;
  660. } __attribute__((packed));
  661. DEFINE_PACKET_HEADER(ZC_DELETE_ITEM_FROM_BODY, 0x7fa)
  662. struct PACKET_ZC_CARTOFF {
  663. int16 packetType;
  664. } __attribute__((packed));
  665. DEFINE_PACKET_HEADER(ZC_CARTOFF, 0x12b)
  666. struct PACKET_ZC_NOTIFY_POSITION_TO_GUILDM {
  667. int16 packetType;
  668. uint32 aid;
  669. int16 xPos;
  670. int16 yPos;
  671. } __attribute__((packed));
  672. DEFINE_PACKET_HEADER(ZC_NOTIFY_POSITION_TO_GUILDM, 0x1eb)
  673. struct PACKET_ZC_STATUS {
  674. int16 packetType;
  675. uint16 point;
  676. uint8 str;
  677. uint8 standardStr;
  678. uint8 agi;
  679. uint8 standardAgi;
  680. uint8 vit;
  681. uint8 standardVit;
  682. uint8 int_;
  683. uint8 standardInt;
  684. uint8 dex;
  685. uint8 standardDex;
  686. uint8 luk;
  687. uint8 standardLuk;
  688. int16 attPower;
  689. int16 refiningPower;
  690. int16 max_mattPower;
  691. int16 min_mattPower;
  692. int16 itemdefPower;
  693. int16 plusdefPower;
  694. int16 mdefPower;
  695. int16 plusmdefPower;
  696. int16 hitSuccessValue;
  697. int16 avoidSuccessValue;
  698. int16 plusAvoidSuccessValue;
  699. int16 criticalSuccessValue;
  700. int16 ASPD;
  701. int16 plusASPD;
  702. } __attribute__((packed));
  703. DEFINE_PACKET_HEADER(ZC_STATUS, 0xbd)
  704. struct PACKET_ZC_NOTIFY_MAPINFO {
  705. int16 packetType;
  706. int16 type;
  707. } __attribute__((packed));
  708. DEFINE_PACKET_HEADER(ZC_NOTIFY_MAPINFO, 0x189)
  709. struct PACKET_ZC_ACK_REMEMBER_WARPPOINT {
  710. int16 packetType;
  711. uint8 type;
  712. } __attribute__((packed));
  713. DEFINE_PACKET_HEADER(ZC_ACK_REMEMBER_WARPPOINT, 0x11e)
  714. struct PACKET_ZC_DISPEL {
  715. int16 packetType;
  716. uint32 gid;
  717. } __attribute__((packed));
  718. DEFINE_PACKET_HEADER(ZC_DISPEL, 0x1b9)
  719. struct PACKET_ZC_RESURRECTION {
  720. int16 packetType;
  721. uint32 gid;
  722. int16 type;
  723. } __attribute__((packed));
  724. DEFINE_PACKET_HEADER(ZC_RESURRECTION, 0x148)
  725. struct PACKET_ZC_NOTIFY_MAPPROPERTY2 {
  726. int16 packetType;
  727. int16 type;
  728. } __attribute__((packed));
  729. DEFINE_PACKET_HEADER(ZC_NOTIFY_MAPPROPERTY2, 0x1d6)
  730. struct PACKET_ZC_ACK_ITEMREFINING {
  731. int16 packetType;
  732. uint16 result;
  733. uint16 index;
  734. uint16 value;
  735. } __attribute__((packed));
  736. DEFINE_PACKET_HEADER(ZC_ACK_ITEMREFINING, 0x188)
  737. struct PACKET_ZC_PAR_CHANGE_USER {
  738. int16 packetType;
  739. uint32 gid;
  740. int16 type;
  741. uint16 value;
  742. } __attribute__((packed));
  743. DEFINE_PACKET_HEADER(ZC_PAR_CHANGE_USER, 0x1ab)
  744. struct PACKET_ZC_EQUIP_ARROW {
  745. int16 packetType;
  746. uint16 index;
  747. } __attribute__((packed));
  748. DEFINE_PACKET_HEADER(ZC_EQUIP_ARROW, 0x13c)
  749. struct PACKET_ZC_CLOSE_STORE {
  750. int16 packetType;
  751. } __attribute__((packed));
  752. DEFINE_PACKET_HEADER(ZC_CLOSE_STORE, 0xf8);
  753. struct PACKET_ZC_DELETE_ITEM_FROM_STORE {
  754. int16 packetType;
  755. uint16 index;
  756. uint32 amount;
  757. } __attribute__((packed));
  758. DEFINE_PACKET_HEADER(ZC_DELETE_ITEM_FROM_STORE, 0xf6);
  759. struct PACKET_ZC_NOTIFY_STOREITEM_COUNTINFO {
  760. int16 packetType;
  761. uint16 amount;
  762. uint16 max_amount;
  763. } __attribute__((packed));
  764. DEFINE_PACKET_HEADER(ZC_NOTIFY_STOREITEM_COUNTINFO, 0xf2);
  765. struct PACKET_ZC_EXCHANGEITEM_UNDO {
  766. int16 packetType;
  767. } __attribute__((packed));
  768. DEFINE_PACKET_HEADER(ZC_EXCHANGEITEM_UNDO, 0xf1);
  769. struct PACKET_ZC_EXEC_EXCHANGE_ITEM {
  770. int16 packetType;
  771. uint8 result;
  772. } __attribute__((packed));
  773. DEFINE_PACKET_HEADER(ZC_EXEC_EXCHANGE_ITEM, 0xf0);
  774. struct PACKET_ZC_CANCEL_EXCHANGE_ITEM {
  775. int16 packetType;
  776. } __attribute__((packed));
  777. DEFINE_PACKET_HEADER(ZC_CANCEL_EXCHANGE_ITEM, 0xee);
  778. struct PACKET_ZC_CONCLUDE_EXCHANGE_ITEM {
  779. int16 packetType;
  780. uint8 who;
  781. } __attribute__((packed));
  782. struct PACKET_ZC_ACK_CREATE_CHATROOM {
  783. int16 packetType;
  784. uint8 flag;
  785. } __attribute__((packed));
  786. DEFINE_PACKET_HEADER(ZC_ACK_CREATE_CHATROOM, 0xd6);
  787. DEFINE_PACKET_HEADER(ZC_CONCLUDE_EXCHANGE_ITEM, 0xec);
  788. struct PACKET_ZC_REFUSE_ENTER_ROOM {
  789. int16 packetType;
  790. uint8 result;
  791. } __attribute__((packed));
  792. DEFINE_PACKET_HEADER(ZC_REFUSE_ENTER_ROOM, 0xda);
  793. struct PACKET_ZC_NPC_SHOWEFST_UPDATE {
  794. int16 packetType;
  795. uint32 gid;
  796. uint32 effectState;
  797. int32 level;
  798. uint32 showEFST;
  799. } __attribute__((packed));
  800. DEFINE_PACKET_HEADER(ZC_NPC_SHOWEFST_UPDATE, 0x28a);
  801. struct PACKET_ZC_ACTION_FAILURE {
  802. int16 packetType;
  803. uint16 type;
  804. } __attribute__((packed));
  805. DEFINE_PACKET_HEADER(ZC_ACTION_FAILURE, 0x13b)
  806. struct PACKET_ZC_NOTIFY_EFFECT {
  807. int16 packetType;
  808. uint32 aid;
  809. uint32 effectId;
  810. } __attribute__((packed));
  811. DEFINE_PACKET_HEADER(ZC_NOTIFY_EFFECT, 0x19b);
  812. struct PACKET_ZC_ACK_ITEMCOMPOSITION {
  813. int16 packetType;
  814. uint16 equipIndex;
  815. uint16 cardIndex;
  816. uint8 result;
  817. } __attribute__((packed));
  818. DEFINE_PACKET_HEADER(ZC_ACK_ITEMCOMPOSITION, 0x17d);
  819. struct PACKET_ZC_ACK_ITEMIDENTIFY {
  820. int16 packetType;
  821. uint16 index;
  822. uint8 result;
  823. } __attribute__((packed));
  824. DEFINE_PACKET_HEADER(ZC_ACK_ITEMIDENTIFY, 0x179);
  825. struct PACKET_ZC_ACK_ITEMREPAIR {
  826. int16 packetType;
  827. uint16 index;
  828. uint8 result;
  829. } __attribute__((packed));
  830. DEFINE_PACKET_HEADER(ZC_ACK_ITEMREPAIR, 0x1fe);
  831. struct PACKET_ZC_EQUIPITEM_DAMAGED {
  832. int16 packetType;
  833. uint16 equipLocation;
  834. uint32 GID;
  835. } __attribute__((packed));
  836. DEFINE_PACKET_HEADER(ZC_EQUIPITEM_DAMAGED, 0x2bb);
  837. struct PACKET_ZC_DELETE_ITEM_FROM_CART {
  838. int16 packetType;
  839. uint16 index;
  840. int32 amount;
  841. } __attribute__((packed));
  842. DEFINE_PACKET_HEADER(ZC_DELETE_ITEM_FROM_CART, 0x125);
  843. struct PACKET_ZC_OPENSTORE {
  844. int16 packetType;
  845. uint16 num;
  846. } __attribute__((packed));
  847. DEFINE_PACKET_HEADER(ZC_OPENSTORE, 0x12d);
  848. struct PACKET_ZC_PC_PURCHASE_RESULT_FROMMC {
  849. int16 packetType;
  850. uint16 index;
  851. uint16 amount;
  852. uint8 result;
  853. } __attribute__((packed));
  854. DEFINE_PACKET_HEADER(ZC_PC_PURCHASE_RESULT_FROMMC, 0x135);
  855. struct PACKET_ZC_ACK_OPENSTORE2 {
  856. int16 packetType;
  857. uint8 result;
  858. } __attribute__((packed));
  859. DEFINE_PACKET_HEADER(ZC_ACK_OPENSTORE2, 0xa28 );
  860. struct PACKET_ZC_SKILL_DISAPPEAR {
  861. int16 packetType;
  862. uint32 GID;
  863. } __attribute__((packed));
  864. DEFINE_PACKET_HEADER(ZC_SKILL_DISAPPEAR, 0x120);
  865. struct PACKET_ZC_SKILL_UPDATE {
  866. int16 packetType;
  867. uint32 GID;
  868. } __attribute__((packed));
  869. DEFINE_PACKET_HEADER(ZC_SKILL_UPDATE, 0x1ac);
  870. #if PACKETVER >= 20141022
  871. struct PACKET_ZC_RECOVERY {
  872. int16 packetType;
  873. uint16 type;
  874. int32 amount;
  875. } __attribute__((packed));
  876. DEFINE_PACKET_HEADER(ZC_RECOVERY, 0xa27);
  877. #else
  878. struct PACKET_ZC_RECOVERY {
  879. int16 packetType;
  880. uint16 type;
  881. int16 amount;
  882. } __attribute__((packed));
  883. DEFINE_PACKET_HEADER(ZC_RECOVERY, 0x13d);
  884. #endif
  885. #if PACKETVER >= 20131223
  886. struct PACKET_ZC_ACK_WHISPER {
  887. int16 packetType;
  888. uint8 result;
  889. uint32 CID;
  890. } __attribute__((packed));
  891. DEFINE_PACKET_HEADER(ZC_ACK_WHISPER, 0x9df);
  892. #else
  893. struct PACKET_ZC_ACK_WHISPER {
  894. int16 packetType;
  895. uint8 result;
  896. } __attribute__((packed));
  897. DEFINE_PACKET_HEADER(ZC_ACK_WHISPER, 0x98);
  898. #endif
  899. struct PACKET_ZC_ACK_ADDITEM_TO_CART {
  900. int16 packetType;
  901. uint8 result;
  902. } __attribute__((packed));
  903. DEFINE_PACKET_HEADER(ZC_ACK_ADDITEM_TO_CART, 0x12c);
  904. // TODO : not sure for client date [Napster]
  905. #if PACKETVER >= 20141016
  906. struct PACKET_ZC_DELETEITEM_FROM_MCSTORE {
  907. int16 packetType;
  908. uint16 index;
  909. uint16 amount;
  910. uint32 buyerCID;
  911. uint32 date;
  912. int32 zeny;
  913. } __attribute__((packed));
  914. DEFINE_PACKET_HEADER(ZC_DELETEITEM_FROM_MCSTORE, 0x9e5);
  915. #else
  916. struct PACKET_ZC_DELETEITEM_FROM_MCSTORE {
  917. int16 packetType;
  918. uint16 index;
  919. uint16 amount;
  920. } __attribute__((packed));
  921. DEFINE_PACKET_HEADER(ZC_DELETEITEM_FROM_MCSTORE, 0x137);
  922. #endif
  923. // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
  924. #if !defined( sun ) && ( !defined( __NETBSD__ ) || __NetBSD_Version__ >= 600000000 )
  925. #pragma pack( pop )
  926. #endif
  927. // Other packets without struct defined in this file
  928. DEFINE_PACKET_HEADER(ZC_NOTIFY_CHAT, 0x8d)
  929. DEFINE_PACKET_HEADER(ZC_ITEM_ENTRY, 0x9d)
  930. DEFINE_PACKET_HEADER(ZC_MVP_GETTING_ITEM, 0x10a)
  931. DEFINE_PACKET_HEADER(CZ_REQMAKINGITEM, 0x18e)
  932. DEFINE_PACKET_HEADER(ZC_ACK_REQMAKINGITEM, 0x18f)
  933. #if PACKETVER_MAIN_NUM >= 20200916 || PACKETVER_RE_NUM >= 20200724
  934. DEFINE_PACKET_HEADER(CZ_REQ_ITEMREPAIR, 0xb66)
  935. #else
  936. DEFINE_PACKET_HEADER(CZ_REQ_ITEMREPAIR, 0x1fd)
  937. #endif
  938. DEFINE_PACKET_HEADER(ZC_NOTIFY_WEAPONITEMLIST, 0x221)
  939. DEFINE_PACKET_HEADER(ZC_ACK_WEAPONREFINE, 0x223)
  940. DEFINE_PACKET_HEADER(CZ_REQ_MAKINGITEM, 0x25b)
  941. DEFINE_PACKET_HEADER(ZC_PC_CASH_POINT_ITEMLIST, 0x287)
  942. DEFINE_PACKET_HEADER(ZC_CASH_TIME_COUNTER, 0x298)
  943. DEFINE_PACKET_HEADER(ZC_CASH_ITEM_DELETE, 0x299)
  944. DEFINE_PACKET_HEADER(ZC_SKILL_SELECT_REQUEST, 0x442)
  945. DEFINE_PACKET_HEADER(ZC_FAILED_TRADE_BUYING_STORE_TO_SELLER, 0x824)
  946. DEFINE_PACKET_HEADER(CZ_SSILIST_ITEM_CLICK, 0x83c)
  947. DEFINE_PACKET_HEADER(ZC_ACK_SCHEDULER_CASHITEM, 0x8ca)
  948. DEFINE_PACKET_HEADER(CZ_REQ_BANKING_DEPOSIT, 0x9a7)
  949. DEFINE_PACKET_HEADER(CZ_REQ_BANKING_WITHDRAW, 0x9a9)
  950. DEFINE_PACKET_HEADER(CZ_REQ_BANKING_CHECK, 0x9ab)
  951. DEFINE_PACKET_HEADER(CZ_REQ_OPEN_BANKING, 0x9b6)
  952. DEFINE_PACKET_HEADER(CZ_REQ_CLOSE_BANKING, 0x9b8)
  953. DEFINE_PACKET_HEADER(CZ_REQ_APPLY_BARGAIN_SALE_ITEM2, 0xa3d)
  954. DEFINE_PACKET_HEADER(CZ_REQ_STYLE_CHANGE, 0xa46)
  955. DEFINE_PACKET_HEADER(ZC_STYLE_CHANGE_RES, 0xa47)
  956. DEFINE_PACKET_HEADER(ZC_GROUP_ISALIVE, 0xab2)
  957. DEFINE_PACKET_HEADER(CZ_REQ_STYLE_CHANGE2, 0xafc)
  958. DEFINE_PACKET_HEADER(ZC_REMOVE_EFFECT, 0x0b0d)
  959. DEFINE_PACKET_HEADER(ZC_FEED_MER, 0x22f)
  960. DEFINE_PACKET_HEADER(ZC_FEED_PET, 0x1a3)
  961. const int16 MAX_INVENTORY_ITEM_PACKET_NORMAL = ( ( INT16_MAX - ( sizeof( struct packet_itemlist_normal ) - ( sizeof( struct NORMALITEM_INFO ) * MAX_ITEMLIST) ) ) / sizeof( struct NORMALITEM_INFO ) );
  962. const int16 MAX_INVENTORY_ITEM_PACKET_EQUIP = ( ( INT16_MAX - ( sizeof( struct packet_itemlist_equip ) - ( sizeof( struct EQUIPITEM_INFO ) * MAX_ITEMLIST ) ) ) / sizeof( struct EQUIPITEM_INFO ) );
  963. 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 ) );
  964. 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 ) );
  965. const int16 MAX_GUILD_STORAGE_LOG_PACKET = ( ( INT16_MAX - sizeof( struct PACKET_ZC_ACK_GUILDSTORAGE_LOG ) ) / sizeof( struct PACKET_ZC_ACK_GUILDSTORAGE_LOG_sub ) );
  966. #undef MAX_ITEM_OPTIONS
  967. #undef UNAVAILABLE_STRUCT
  968. #undef MAX_ITEMLIST
  969. #undef MAX_ACHIEVEMENT_DB
  970. #undef MAX_PACKET_POS
  971. #undef DEFINE_PACKET_HEADER
  972. #pragma warning( pop )
  973. #endif /* PACKETS_HPP */