trus7

packet.h

Nov 20th, 2020
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 55.75 KB | None | 0 0
  1. #ifndef __INC_PACKET_H__
  2. #define __INC_PACKET_H__
  3. #include "stdafx.h"
  4.  
  5. enum
  6. {
  7. HEADER_CG_HANDSHAKE = 0xff,
  8. HEADER_CG_PONG = 0xfe,
  9. HEADER_CG_TIME_SYNC = 0xfc,
  10. HEADER_CG_KEY_AGREEMENT = 0xfb, // _IMPROVED_PACKET_ENCRYPTION_
  11.  
  12. HEADER_CG_LOGIN = 1,
  13. HEADER_CG_ATTACK = 2,
  14. HEADER_CG_CHAT = 3,
  15. HEADER_CG_CHARACTER_CREATE = 4,
  16. HEADER_CG_CHARACTER_DELETE = 5,
  17. HEADER_CG_CHARACTER_SELECT = 6,
  18. HEADER_CG_MOVE = 7,
  19. HEADER_CG_SYNC_POSITION = 8,
  20. HEADER_CG_ENTERGAME = 10,
  21.  
  22. HEADER_CG_ITEM_USE = 11,
  23. HEADER_CG_ITEM_DROP = 12,
  24. HEADER_CG_ITEM_MOVE = 13,
  25. HEADER_CG_ITEM_PICKUP = 15,
  26.  
  27. HEADER_CG_QUICKSLOT_ADD = 16,
  28. HEADER_CG_QUICKSLOT_DEL = 17,
  29. HEADER_CG_QUICKSLOT_SWAP = 18,
  30. HEADER_CG_WHISPER = 19,
  31. HEADER_CG_ITEM_DROP2 = 20,
  32. HEADER_CG_ITEM_DESTROY = 21,
  33.  
  34. HEADER_CG_ON_CLICK = 26,
  35. HEADER_CG_EXCHANGE = 27,
  36. HEADER_CG_CHARACTER_POSITION = 28,
  37. HEADER_CG_SCRIPT_ANSWER = 29,
  38. HEADER_CG_QUEST_INPUT_STRING = 30,
  39. HEADER_CG_QUEST_CONFIRM = 31,
  40.  
  41. HEADER_CG_SHOP = 50,
  42. HEADER_CG_FLY_TARGETING = 51,
  43. HEADER_CG_USE_SKILL = 52,
  44. HEADER_CG_ADD_FLY_TARGETING = 53,
  45. HEADER_CG_SHOOT = 54,
  46. HEADER_CG_MYSHOP = 55,
  47. #ifdef ENABLE_GEM_SYSTEM
  48. HEADER_CG_GEM_SHOP = 56,
  49. #endif
  50.  
  51. HEADER_CG_ITEM_USE_TO_ITEM = 60,
  52. HEADER_CG_TARGET = 61,
  53.  
  54. HEADER_CG_TEXT = 64, // @ ·Î ½ÃÀ۵Ǹé ÅØ½ºÆ®¸¦ ÆÄ½ÌÇÑ´Ù.
  55. HEADER_CG_WARP = 65,
  56. HEADER_CG_SCRIPT_BUTTON = 66,
  57. HEADER_CG_MESSENGER = 67,
  58.  
  59. HEADER_CG_MALL_CHECKOUT = 69,
  60. HEADER_CG_SAFEBOX_CHECKIN = 70, // ¾ÆÀÌÅÛÀ» â°í¿¡ ³Ö†š´Â´Ù.
  61. HEADER_CG_SAFEBOX_CHECKOUT = 71, // ¾ÆÀÌÅÛÀ» â°í·Î ºÎÅÍ »©¿Â´Ù.
  62.  
  63. HEADER_CG_PARTY_INVITE = 72,
  64. HEADER_CG_PARTY_INVITE_ANSWER = 73,
  65. HEADER_CG_PARTY_REMOVE = 74,
  66. HEADER_CG_PARTY_SET_STATE = 75,
  67. HEADER_CG_PARTY_USE_SKILL = 76,
  68. HEADER_CG_SAFEBOX_ITEM_MOVE = 77,
  69. HEADER_CG_PARTY_PARAMETER = 78,
  70.  
  71. HEADER_CG_GUILD = 80,
  72. HEADER_CG_ANSWER_MAKE_GUILD = 81,
  73.  
  74. HEADER_CG_FISHING = 82,
  75.  
  76. HEADER_CG_ITEM_GIVE = 83,
  77.  
  78. HEADER_CG_EMPIRE = 90,
  79.  
  80. HEADER_CG_REFINE = 96,
  81.  
  82. HEADER_CG_MARK_LOGIN = 100,
  83. HEADER_CG_MARK_CRCLIST = 101,
  84. HEADER_CG_MARK_UPLOAD = 102,
  85. HEADER_CG_MARK_IDXLIST = 104,
  86.  
  87. HEADER_CG_HACK = 105,
  88. HEADER_CG_CHANGE_NAME = 106,
  89. HEADER_CG_LOGIN2 = 117,
  90. HEADER_CG_DUNGEON = 110,
  91. HEADER_CG_LOGIN3 = 119,
  92.  
  93. HEADER_CG_GUILD_SYMBOL_UPLOAD = 112,
  94. HEADER_CG_SYMBOL_CRC = 113,
  95.  
  96. // SCRIPT_SELECT_ITEM
  97. HEADER_CG_SCRIPT_SELECT_ITEM = 114,
  98. #if defined(WHEEL_OF_DESTINY)
  99. HEADER_CG_WHEEL_DESTINY = 135,
  100. #endif
  101. // END_OF_SCRIPT_SELECT_ITEM
  102.  
  103. HEADER_CG_LOGIN5_OPENID = 116, //OpenID : Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍ OpenID ÀÎÁõ۸¦ ¹Þ´Â´Ù.
  104. #ifdef ENABLE_FEATURES_OXEVENT
  105. HEADER_CG_OXEVENT_MANAGER = 120,
  106. #endif
  107. #ifdef __ADMIN_MANAGER__
  108. HEADER_CG_ADMIN_BAN_MANAGER = 126,
  109. #endif
  110. #ifdef __UPGRADE_ITEMS_STORAGE__
  111. HEADER_CG_UPGRADE_ITEMS_STORAGE_CHECKIN = 127,
  112. HEADER_CG_UPGRADE_ITEMS_STORAGE_CHECKOUT = 128,
  113. HEADER_CG_UPGRADE_ITEMS_STORAGE_ITEM_MOVE = 129,
  114. #endif
  115. // HEADER_CG_ROULETTE = 200,
  116. // HEADER_CG_RUNUP_MATRIX_ANSWER = 201,
  117.  
  118. //
  119. HEADER_CG_PASSPOD_ANSWER = 202,
  120.  
  121. //NOTE : ÀÌ·± °³XXX Á¤¸» À̰ŠPacket¼³°èÇÑ »ç¶÷Àº ´©±¸³Ä. ÀÌ·¸°Ô ÄÚµùÇÏ°í ¹äÀÌ ³Ñ¾î°¡³ª.
  122. //enumÀ» º°µµ·Î ±¸º°À» ÇÏ´ø°¡. ¾Æ´Ô namepsace·Î ±¸º°À» ÇÏ´ø°¡..
  123. //Á¤¸» packet generator±îÁö´Â ¹Ù¶óÁöµµ ¾Ê´Â´Ù. ÀÌ·± ¾¾XX
  124. //ÀÌ·¯´Ù°¡ ¼ýÀÚ °ãÄ¡¸é ´©°¡ Ã¥ÀÓÁö´Âµ¥???
  125. HEADER_CG_HS_ACK = 203,
  126. HEADER_CG_XTRAP_ACK = 204,
  127.  
  128. HEADER_CG_DRAGON_SOUL_REFINE = 205,
  129. HEADER_CG_STATE_CHECKER = 206,
  130. #ifdef __WHISPER_ADMIN__
  131. HEADER_CG_WHISPER_ADMIN = 215,
  132. #endif
  133. HEADER_CG_CLIENT_VERSION = 0xfd,
  134. HEADER_CG_CLIENT_VERSION2 = 0xf1,
  135.  
  136. /********************************************************/
  137. HEADER_GC_KEY_AGREEMENT_COMPLETED = 0xfa, // _IMPROVED_PACKET_ENCRYPTION_
  138. HEADER_GC_KEY_AGREEMENT = 0xfb, // _IMPROVED_PACKET_ENCRYPTION_
  139. HEADER_GC_TIME_SYNC = 0xfc,
  140. HEADER_GC_PHASE = 0xfd,
  141. HEADER_GC_BINDUDP = 0xfe,
  142. HEADER_GC_HANDSHAKE = 0xff,
  143.  
  144. HEADER_GC_CHARACTER_ADD = 1,
  145. HEADER_GC_CHARACTER_DEL = 2,
  146. HEADER_GC_MOVE = 3,
  147. HEADER_GC_CHAT = 4,
  148. HEADER_GC_SYNC_POSITION = 5,
  149.  
  150. HEADER_GC_LOGIN_SUCCESS = 6,
  151. HEADER_GC_LOGIN_SUCCESS_NEWSLOT = 32,
  152. HEADER_GC_LOGIN_FAILURE = 7,
  153.  
  154. HEADER_GC_CHARACTER_CREATE_SUCCESS = 8,
  155. HEADER_GC_CHARACTER_CREATE_FAILURE = 9,
  156. HEADER_GC_CHARACTER_DELETE_SUCCESS = 10,
  157. HEADER_GC_CHARACTER_DELETE_WRONG_SOCIAL_ID = 11,
  158.  
  159. HEADER_GC_ATTACK = 12,
  160. HEADER_GC_STUN = 13,
  161. HEADER_GC_DEAD = 14,
  162.  
  163. HEADER_GC_MAIN_CHARACTER_OLD = 15,
  164. HEADER_GC_CHARACTER_POINTS = 16,
  165. HEADER_GC_CHARACTER_POINT_CHANGE = 17,
  166. HEADER_GC_CHANGE_SPEED = 18,
  167. HEADER_GC_CHARACTER_UPDATE = 19,
  168. HEADER_GC_CHARACTER_UPDATE_NEW = 24,
  169.  
  170. HEADER_GC_ITEM_DEL = 20,
  171. HEADER_GC_ITEM_SET = 21,
  172. HEADER_GC_ITEM_USE = 22,
  173. HEADER_GC_ITEM_DROP = 23,
  174. HEADER_GC_ITEM_UPDATE = 25,
  175.  
  176. HEADER_GC_ITEM_GROUND_ADD = 26,
  177. HEADER_GC_ITEM_GROUND_DEL = 27,
  178.  
  179. HEADER_GC_QUICKSLOT_ADD = 28,
  180. HEADER_GC_QUICKSLOT_DEL = 29,
  181. HEADER_GC_QUICKSLOT_SWAP = 30,
  182.  
  183. HEADER_GC_ITEM_OWNERSHIP = 31,
  184.  
  185. HEADER_GC_WHISPER = 34,
  186.  
  187. HEADER_GC_MOTION = 36,
  188. HEADER_GC_PARTS = 37,
  189.  
  190. HEADER_GC_SHOP = 38,
  191. HEADER_GC_SHOP_SIGN = 39,
  192.  
  193. HEADER_GC_DUEL_START = 40,
  194. HEADER_GC_PVP = 41,
  195. HEADER_GC_EXCHANGE = 42,
  196. HEADER_GC_CHARACTER_POSITION = 43,
  197.  
  198. HEADER_GC_PING = 44,
  199. HEADER_GC_SCRIPT = 45,
  200. HEADER_GC_QUEST_CONFIRM = 46,
  201. #ifdef NEW_PET_SYSTEM
  202. HEADER_CG_PetSetName = 147,
  203. #endif
  204.  
  205. HEADER_GC_MOUNT = 61,
  206. HEADER_GC_OWNERSHIP = 62,
  207. HEADER_GC_TARGET = 63,
  208. #ifdef __SEND_TARGET_INFO__
  209. HEADER_GC_TARGET_INFO = 58,
  210. HEADER_CG_TARGET_INFO_LOAD = 59,
  211. #endif
  212.  
  213. HEADER_GC_WARP = 65,
  214.  
  215. HEADER_GC_ADD_FLY_TARGETING = 69,
  216. HEADER_GC_CREATE_FLY = 70,
  217. HEADER_GC_FLY_TARGETING = 71,
  218. HEADER_GC_SKILL_LEVEL_OLD = 72,
  219. HEADER_GC_SKILL_LEVEL = 76,
  220.  
  221. HEADER_GC_MESSENGER = 74,
  222. HEADER_GC_GUILD = 75,
  223.  
  224. HEADER_GC_PARTY_INVITE = 77,
  225. HEADER_GC_PARTY_ADD = 78,
  226. HEADER_GC_PARTY_UPDATE = 79,
  227. HEADER_GC_PARTY_REMOVE = 80,
  228. HEADER_GC_QUEST_INFO = 81,
  229. HEADER_GC_REQUEST_MAKE_GUILD = 82,
  230. HEADER_GC_PARTY_PARAMETER = 83,
  231.  
  232. HEADER_GC_SAFEBOX_SET = 85,
  233. HEADER_GC_SAFEBOX_DEL = 86,
  234. HEADER_GC_SAFEBOX_WRONG_PASSWORD = 87,
  235. HEADER_GC_SAFEBOX_SIZE = 88,
  236.  
  237. HEADER_GC_FISHING = 89,
  238.  
  239. HEADER_GC_EMPIRE = 90,
  240.  
  241. HEADER_GC_PARTY_LINK = 91,
  242. HEADER_GC_PARTY_UNLINK = 92,
  243. #ifdef ENABLE_SUPPORT_SYSTEM
  244. HEADER_GC_SUPPORT_SKILL = 148,
  245. #endif
  246. HEADER_GC_REFINE_INFORMATION_OLD = 95,
  247.  
  248. HEADER_GC_VIEW_EQUIP = 99,
  249.  
  250. HEADER_GC_MARK_BLOCK = 100,
  251. HEADER_GC_MARK_IDXLIST = 102,
  252.  
  253. HEADER_GC_TIME = 106,
  254. HEADER_GC_CHANGE_NAME = 107,
  255.  
  256. HEADER_GC_DUNGEON = 110,
  257.  
  258. HEADER_GC_WALK_MODE = 111,
  259. HEADER_GC_SKILL_GROUP = 112,
  260. HEADER_GC_MAIN_CHARACTER = 113,
  261.  
  262. // HEADER_GC_USE_POTION = 114,
  263. HEADER_GC_SEPCIAL_EFFECT = 114,
  264.  
  265. HEADER_GC_NPC_POSITION = 115,
  266.  
  267. HEADER_GC_MATRIX_CARD = 116,
  268. HEADER_GC_LOGIN_KEY = 118,
  269. HEADER_GC_REFINE_INFORMATION = 119,
  270. HEADER_GC_CHANNEL = 121,
  271.  
  272. // 122 HEADER_GC_MALL_OPEN
  273. HEADER_GC_TARGET_UPDATE = 123,
  274. HEADER_GC_TARGET_DELETE = 124,
  275. HEADER_GC_TARGET_CREATE = 125,
  276.  
  277. HEADER_GC_AFFECT_ADD = 126,
  278. HEADER_GC_AFFECT_REMOVE = 127,
  279.  
  280. HEADER_GC_MALL_OPEN = 122,
  281. HEADER_GC_MALL_SET = 128,
  282. HEADER_GC_MALL_DEL = 129,
  283.  
  284. HEADER_GC_LAND_LIST = 130,
  285. HEADER_GC_LOVER_INFO = 131,
  286. HEADER_GC_LOVE_POINT_UPDATE = 132,
  287.  
  288. HEADER_GC_SYMBOL_DATA = 133,
  289.  
  290. // MINING
  291. HEADER_GC_DIG_MOTION = 134,
  292. // END_OF_MINING
  293.  
  294. HEADER_GC_DAMAGE_INFO = 135,
  295. HEADER_GC_CHAR_ADDITIONAL_INFO = 136,
  296.  
  297. // SUPPORT_BGM
  298. HEADER_GC_MAIN_CHARACTER3_BGM = 137,
  299. HEADER_GC_MAIN_CHARACTER4_BGM_VOL = 138,
  300. #ifdef ENABLE_FEATURES_OXEVENT
  301. HEADER_GC_OXEVENT = 146,
  302. #endif
  303. HEADER_GC_AUTH_SUCCESS = 150,
  304.  
  305. HEADER_GC_PANAMA_PACK = 151,
  306.  
  307. //HYBRID CRYPT
  308. HEADER_GC_HYBRIDCRYPT_KEYS = 152,
  309. HEADER_GC_HYBRIDCRYPT_SDB = 153, // SDB means Supplmentary Data Blocks
  310. //HYBRID CRYPT
  311.  
  312. HEADER_GC_AUTH_SUCCESS_OPENID = 154,
  313. #ifdef ENABLE_GEM_SYSTEM
  314. HEADER_GC_GEM_SHOP_OPEN = 155,
  315. HEADER_GC_GEM_SHOP_REFRESH = 156,
  316. #endif
  317. #ifdef __UPGRADE_ITEMS_STORAGE__
  318. HEADER_GC_UPGRADE_ITEMS_STORAGE_SET = 160,
  319. HEADER_GC_UPGRADE_ITEMS_STORAGE_DEL = 161,
  320. HEADER_GC_UPGRADE_ITEMS_STORAGE_OPEN = 162,
  321. #endif
  322.  
  323. // ROULETTE
  324. HEADER_GC_ROULETTE = 200,
  325. // END_ROULETTE
  326. //
  327. HEADER_GC_REQUEST_PASSPOD = 202,
  328. HEADER_GC_REQUEST_PASSPOD_FAILED = 203,
  329.  
  330. HEADER_GC_HS_REQUEST = 204,
  331. HEADER_GC_XTRAP_CS1_REQUEST = 205,
  332.  
  333. HEADER_GC_SPECIFIC_EFFECT = 208,
  334.  
  335. HEADER_GC_DRAGON_SOUL_REFINE = 209,
  336. HEADER_GC_RESPOND_CHANNELSTATUS = 210,
  337. HEADER_GC_SKILL_MOTION = 157,
  338. HEADER_GC_IGNORE_NEXT_SKILL_COOLDOWN = 158,
  339.  
  340.  
  341. /////////////////////////////////////////////////////////////////////////////
  342.  
  343. HEADER_GG_LOGIN = 1,
  344. HEADER_GG_LOGOUT = 2,
  345. HEADER_GG_RELAY = 3,
  346. HEADER_GG_NOTICE = 4,
  347. HEADER_GG_SHUTDOWN = 5,
  348. HEADER_GG_GUILD = 6,
  349. HEADER_GG_DISCONNECT = 7, // ´©±º°¡ÀÇ Á¢¼ÓÀ» °­Á¦·Î ²÷À» ¶§
  350. HEADER_GG_SHOUT = 8,
  351. HEADER_GG_SETUP = 9,
  352. HEADER_GG_MESSENGER_ADD = 10,
  353. HEADER_GG_MESSENGER_REMOVE = 11,
  354. HEADER_GG_FIND_POSITION = 12,
  355. HEADER_GG_WARP_CHARACTER = 13,
  356. HEADER_GG_MESSENGER_MOBILE = 14,
  357. HEADER_GG_GUILD_WAR_ZONE_MAP_INDEX = 15,
  358. HEADER_GG_TRANSFER = 16,
  359. HEADER_GG_XMAS_WARP_SANTA = 17,
  360. HEADER_GG_XMAS_WARP_SANTA_REPLY = 18,
  361. HEADER_GG_RELOAD_CRC_LIST = 19,
  362. HEADER_GG_LOGIN_PING = 20,
  363. HEADER_GG_CHECK_CLIENT_VERSION = 21,
  364. HEADER_GG_BLOCK_CHAT = 22,
  365.  
  366. HEADER_GG_BLOCK_EXCEPTION = 24,
  367. HEADER_GG_SIEGE = 25,
  368. HEADER_GG_MONARCH_NOTICE = 26,
  369. HEADER_GG_MONARCH_TRANSFER = 27,
  370. HEADER_GG_PCBANG_UPDATE = 28,
  371. #ifdef __TITLE_SYSTEM__
  372. HEADER_CG_TITLE_CHOOSE = 208,
  373. HEADER_GG_TITLE_ANSWER = 37,
  374. #endif
  375. HEADER_GG_CHECK_AWAKENESS = 29,
  376. #ifdef ENABLE_FULL_NOTICE
  377. HEADER_GG_BIG_NOTICE = 30,
  378. #endif
  379. #ifdef __WHISPER_ADMIN__
  380. HEADER_GG_WHISPER_SYSTEM = 31,
  381. #endif
  382. };
  383.  
  384. #pragma pack(1)
  385. typedef struct SPacketGGSetup
  386. {
  387. BYTE bHeader;
  388. WORD wPort;
  389. BYTE bChannel;
  390. } TPacketGGSetup;
  391.  
  392. typedef struct SPacketGGLogin
  393. {
  394. BYTE bHeader;
  395. char szName[CHARACTER_NAME_MAX_LEN + 1];
  396. DWORD dwPID;
  397. BYTE bEmpire;
  398. long lMapIndex;
  399. BYTE bChannel;
  400. } TPacketGGLogin;
  401.  
  402. typedef struct SPacketGGLogout
  403. {
  404. BYTE bHeader;
  405. char szName[CHARACTER_NAME_MAX_LEN + 1];
  406. } TPacketGGLogout;
  407.  
  408. typedef struct SPacketGGRelay
  409. {
  410. BYTE bHeader;
  411. char szName[CHARACTER_NAME_MAX_LEN + 1];
  412. long lSize;
  413. } TPacketGGRelay;
  414.  
  415. typedef struct SPacketGGNotice
  416. {
  417. BYTE bHeader;
  418. long lSize;
  419. } TPacketGGNotice;
  420.  
  421. typedef struct SPacketGGMonarchNotice
  422. {
  423. BYTE bHeader;
  424. BYTE bEmpire;
  425. long lSize;
  426. } TPacketGGMonarchNotice;
  427.  
  428. //FORKED_ROAD
  429. typedef struct SPacketGGForkedMapInfo
  430. {
  431. BYTE bHeader;
  432. BYTE bPass;
  433. BYTE bSungzi;
  434. } TPacketGGForkedMapInfo;
  435. //END_FORKED_ROAD
  436. typedef struct SPacketGGShutdown
  437. {
  438. BYTE bHeader;
  439. } TPacketGGShutdown;
  440.  
  441. typedef struct SPacketGGGuild
  442. {
  443. BYTE bHeader;
  444. BYTE bSubHeader;
  445. DWORD dwGuild;
  446. } TPacketGGGuild;
  447.  
  448. enum
  449. {
  450. GUILD_SUBHEADER_GG_CHAT,
  451. GUILD_SUBHEADER_GG_SET_MEMBER_COUNT_BONUS,
  452. };
  453.  
  454. typedef struct SPacketGGGuildChat
  455. {
  456. BYTE bHeader;
  457. BYTE bSubHeader;
  458. DWORD dwGuild;
  459. char szText[CHAT_MAX_LEN + 1];
  460. } TPacketGGGuildChat;
  461.  
  462. typedef struct SPacketGGParty
  463. {
  464. BYTE header;
  465. BYTE subheader;
  466. DWORD pid;
  467. DWORD leaderpid;
  468. } TPacketGGParty;
  469.  
  470. enum
  471. {
  472. PARTY_SUBHEADER_GG_CREATE,
  473. PARTY_SUBHEADER_GG_DESTROY,
  474. PARTY_SUBHEADER_GG_JOIN,
  475. PARTY_SUBHEADER_GG_QUIT,
  476. };
  477.  
  478. typedef struct SPacketGGDisconnect
  479. {
  480. BYTE bHeader;
  481. char szLogin[LOGIN_MAX_LEN + 1];
  482. } TPacketGGDisconnect;
  483.  
  484. typedef struct SPacketGGShout
  485. {
  486. BYTE bHeader;
  487. BYTE bEmpire;
  488. char szText[CHAT_MAX_LEN + 1];
  489. } TPacketGGShout;
  490.  
  491. typedef struct SPacketGGXmasWarpSanta
  492. {
  493. BYTE bHeader;
  494. BYTE bChannel;
  495. long lMapIndex;
  496. } TPacketGGXmasWarpSanta;
  497.  
  498. typedef struct SPacketGGXmasWarpSantaReply
  499. {
  500. BYTE bHeader;
  501. BYTE bChannel;
  502. } TPacketGGXmasWarpSantaReply;
  503.  
  504. typedef struct SMessengerData
  505. {
  506. char szMobile[MOBILE_MAX_LEN + 1];
  507. } TMessengerData;
  508.  
  509. typedef struct SPacketGGMessenger
  510. {
  511. BYTE bHeader;
  512. char szAccount[CHARACTER_NAME_MAX_LEN + 1];
  513. char szCompanion[CHARACTER_NAME_MAX_LEN + 1];
  514. } TPacketGGMessenger;
  515.  
  516. typedef struct SPacketGGMessengerMobile
  517. {
  518. BYTE bHeader;
  519. char szName[CHARACTER_NAME_MAX_LEN + 1];
  520. char szMobile[MOBILE_MAX_LEN + 1];
  521. } TPacketGGMessengerMobile;
  522.  
  523. typedef struct SPacketGGFindPosition
  524. {
  525. BYTE header;
  526. DWORD dwFromPID; // Àú À§Ä¡·Î ¿öÇÁÇÏ·Á´Â »ç¶÷
  527. DWORD dwTargetPID; // ã´Â »ç¶÷
  528. } TPacketGGFindPosition;
  529.  
  530. typedef struct SPacketGGWarpCharacter
  531. {
  532. BYTE header;
  533. DWORD pid;
  534. long x;
  535. long y;
  536. } TPacketGGWarpCharacter;
  537.  
  538. // HEADER_GG_GUILD_WAR_ZONE_MAP_INDEX = 15,
  539.  
  540. typedef struct SPacketGGGuildWarMapIndex
  541. {
  542. BYTE bHeader;
  543. DWORD dwGuildID1;
  544. DWORD dwGuildID2;
  545. long lMapIndex;
  546. } TPacketGGGuildWarMapIndex;
  547.  
  548. typedef struct SPacketGGTransfer
  549. {
  550. BYTE bHeader;
  551. char szName[CHARACTER_NAME_MAX_LEN + 1];
  552. long lX, lY;
  553. } TPacketGGTransfer;
  554.  
  555. typedef struct SPacketGGLoginPing
  556. {
  557. BYTE bHeader;
  558. char szLogin[LOGIN_MAX_LEN + 1];
  559. } TPacketGGLoginPing;
  560.  
  561. typedef struct SPacketGGBlockChat
  562. {
  563. BYTE bHeader;
  564. char szName[CHARACTER_NAME_MAX_LEN + 1];
  565. long lBlockDuration;
  566. } TPacketGGBlockChat;
  567.  
  568. /* Ŭ¶óÀÌ¾ðÆ® Ãø¿¡¼­ º¸³»´Â ÆÐŶ */
  569.  
  570. typedef struct command_text
  571. {
  572. BYTE bHeader;
  573. } TPacketCGText;
  574.  
  575. #ifdef __UPGRADE_ITEMS_STORAGE__
  576. typedef struct command_upgrade_items_storage_checkout
  577. {
  578. BYTE bHeader;
  579. WORD bSafePos;
  580. TItemPos ItemPos;
  581. } TPacketCGUpgradeItemsStorageCheckout;
  582.  
  583. typedef struct command_upgrade_items_storage_checkin
  584. {
  585. BYTE bHeader;
  586. WORD bSafePos;
  587. TItemPos ItemPos;
  588. } TPacketCGUpgradeItemsStorageCheckin;
  589. #endif
  590.  
  591. /* ·Î±×ÀÎ (1) */
  592. typedef struct command_handshake
  593. {
  594. BYTE bHeader;
  595. DWORD dwHandshake;
  596. DWORD dwTime;
  597. long lDelta;
  598. } TPacketCGHandshake;
  599.  
  600. typedef struct command_login
  601. {
  602. BYTE header;
  603. char login[LOGIN_MAX_LEN + 1];
  604. char passwd[PASSWD_MAX_LEN + 1];
  605. } TPacketCGLogin;
  606.  
  607. typedef struct command_login2
  608. {
  609. BYTE header;
  610. char login[LOGIN_MAX_LEN + 1];
  611. DWORD dwLoginKey;
  612. DWORD adwClientKey[4];
  613. } TPacketCGLogin2;
  614.  
  615. typedef struct command_login3
  616. {
  617. BYTE header;
  618. char login[LOGIN_MAX_LEN + 1];
  619. char passwd[PASSWD_MAX_LEN + 1];
  620. DWORD adwClientKey[4];
  621. } TPacketCGLogin3;
  622.  
  623. typedef struct command_login5
  624. {
  625. BYTE header;
  626. char authKey[OPENID_AUTHKEY_LEN + 1];
  627. DWORD adwClientKey[4];
  628. } TPacketCGLogin5;
  629.  
  630. typedef struct command_matrix_card
  631. {
  632. BYTE bHeader;
  633. char szAnswer[MATRIX_ANSWER_MAX_LEN + 1];
  634. } TPacketCGMatrixCard;
  635.  
  636. #ifdef NEW_PET_SYSTEM
  637. typedef struct packet_RequestPetName
  638. {
  639. BYTE byHeader;
  640. char petname[13];
  641.  
  642. }TPacketCGRequestPetName;
  643. #endif
  644.  
  645. typedef struct packet_matrix_card
  646. {
  647. BYTE bHeader;
  648. DWORD dwRows;
  649. DWORD dwCols;
  650. } TPacketGCMatrixCard;
  651.  
  652. typedef struct packet_login_key
  653. {
  654. BYTE bHeader;
  655. DWORD dwLoginKey;
  656. } TPacketGCLoginKey;
  657.  
  658. typedef struct command_player_select
  659. {
  660. BYTE header;
  661. BYTE index;
  662. } TPacketCGPlayerSelect;
  663.  
  664. typedef struct command_player_delete
  665. {
  666. BYTE header;
  667. BYTE index;
  668. char private_code[8];
  669. } TPacketCGPlayerDelete;
  670.  
  671. typedef struct command_player_create
  672. {
  673. BYTE header;
  674. BYTE index;
  675. char name[CHARACTER_NAME_MAX_LEN + 1];
  676. WORD job;
  677. BYTE shape;
  678. BYTE Con;
  679. BYTE Int;
  680. BYTE Str;
  681. BYTE Dex;
  682. } TPacketCGPlayerCreate;
  683.  
  684. typedef struct command_player_create_success
  685. {
  686. BYTE header;
  687. BYTE bAccountCharacterIndex;
  688. TSimplePlayer player;
  689. } TPacketGCPlayerCreateSuccess;
  690.  
  691. // °ø°Ý
  692. typedef struct command_attack
  693. {
  694. BYTE bHeader;
  695. BYTE bType;
  696. DWORD dwVID;
  697. BYTE bCRCMagicCubeProcPiece;
  698. BYTE bCRCMagicCubeFilePiece;
  699. } TPacketCGAttack;
  700.  
  701. enum EMoveFuncType
  702. {
  703. FUNC_WAIT,
  704. FUNC_MOVE,
  705. FUNC_ATTACK,
  706. FUNC_COMBO,
  707. FUNC_MOB_SKILL,
  708. _FUNC_SKILL,
  709. FUNC_MAX_NUM,
  710. FUNC_SKILL = 0x80,
  711. };
  712.  
  713. // À̵¿
  714. typedef struct command_move
  715. {
  716. BYTE bHeader;
  717. BYTE bFunc;
  718. BYTE bArg;
  719. BYTE bRot;
  720. long lX;
  721. long lY;
  722. DWORD dwTime;
  723. } TPacketCGMove;
  724.  
  725. typedef struct command_sync_position_element
  726. {
  727. DWORD dwVID;
  728. long lX;
  729. long lY;
  730. } TPacketCGSyncPositionElement;
  731.  
  732. // À§Ä¡ µ¿±âÈ­
  733. typedef struct command_sync_position // °¡º¯ ÆÐŶ
  734. {
  735. BYTE bHeader;
  736. WORD wSize;
  737. } TPacketCGSyncPosition;
  738.  
  739. /* äÆÃ (3) */
  740. typedef struct command_chat // °¡º¯ ÆÐŶ
  741. {
  742. BYTE header;
  743. WORD size;
  744. BYTE type;
  745. } TPacketCGChat;
  746.  
  747. /* ±Ó¼Ó¸» */
  748. typedef struct command_whisper
  749. {
  750. BYTE bHeader;
  751. WORD wSize;
  752. char szNameTo[CHARACTER_NAME_MAX_LEN + 1];
  753. } TPacketCGWhisper;
  754.  
  755. typedef struct command_entergame
  756. {
  757. BYTE header;
  758. } TPacketCGEnterGame;
  759.  
  760. typedef struct command_item_use
  761. {
  762. BYTE header;
  763. TItemPos Cell;
  764. } TPacketCGItemUse;
  765.  
  766. typedef struct command_item_use_to_item
  767. {
  768. BYTE header;
  769. TItemPos Cell;
  770. TItemPos TargetCell;
  771. } TPacketCGItemUseToItem;
  772.  
  773. typedef struct command_item_drop
  774. {
  775. BYTE header;
  776. TItemPos Cell;
  777. DWORD gold;
  778. } TPacketCGItemDrop;
  779.  
  780. typedef struct command_item_drop2
  781. {
  782. BYTE header;
  783. TItemPos Cell;
  784. DWORD gold;
  785. BYTE count;
  786. } TPacketCGItemDrop2;
  787.  
  788. typedef struct command_item_destroy
  789. {
  790. BYTE header;
  791. TItemPos Cell;
  792. } TPacketCGItemDestroy;
  793.  
  794. typedef struct command_item_move
  795. {
  796. BYTE header;
  797. TItemPos Cell;
  798. TItemPos CellTo;
  799. BYTE count;
  800. } TPacketCGItemMove;
  801.  
  802. typedef struct command_item_pickup
  803. {
  804. BYTE header;
  805. DWORD vid;
  806. } TPacketCGItemPickup;
  807.  
  808. #if defined(WHEEL_OF_DESTINY)
  809. typedef struct command_wheel
  810. {
  811. BYTE header;
  812. BYTE option;
  813. } TPacketCGWheelDestiny;
  814. #endif
  815.  
  816. #ifdef ENABLE_GEM_SYSTEM
  817. typedef struct command_gem_shop
  818. {
  819. BYTE header;
  820. BYTE subheader;
  821. } TPacketCGGemShop;
  822.  
  823. typedef struct command_gem_shop_open
  824. {
  825. BYTE header;
  826. int nextRefreshTime;
  827. TGemShopItem shopItems[GEM_SLOTS_MAX_NUM];
  828. } TPacketGCGemShopOpen;
  829.  
  830. typedef struct command_gem_shop_refresh
  831. {
  832. BYTE header;
  833. int nextRefreshTime;
  834. TGemShopItem shopItems[GEM_SLOTS_MAX_NUM];
  835. } TPacketGCGemShopRefresh;
  836.  
  837. enum
  838. {
  839. GEM_SHOP_SUBHEADER_CG_BUY,
  840. GEM_SHOP_SUBHEADER_CG_ADD,
  841. GEM_SHOP_SUBHEADER_CG_REFRESH,
  842. };
  843. #endif
  844.  
  845. typedef struct command_quickslot_add
  846. {
  847. BYTE header;
  848. BYTE pos;
  849. TQuickslot slot;
  850. } TPacketCGQuickslotAdd;
  851.  
  852. typedef struct command_quickslot_del
  853. {
  854. BYTE header;
  855. BYTE pos;
  856. } TPacketCGQuickslotDel;
  857.  
  858. typedef struct command_quickslot_swap
  859. {
  860. BYTE header;
  861. BYTE pos;
  862. BYTE change_pos;
  863. } TPacketCGQuickslotSwap;
  864.  
  865. enum
  866. {
  867. SHOP_SUBHEADER_CG_END,
  868. SHOP_SUBHEADER_CG_BUY,
  869. SHOP_SUBHEADER_CG_SELL,
  870. SHOP_SUBHEADER_CG_SELL2
  871. };
  872.  
  873. typedef struct command_shop_buy
  874. {
  875. BYTE count;
  876. } TPacketCGShopBuy;
  877.  
  878. typedef struct command_shop_sell
  879. {
  880. BYTE pos;
  881. BYTE count;
  882. } TPacketCGShopSell;
  883.  
  884. typedef struct command_shop
  885. {
  886. BYTE header;
  887. BYTE subheader;
  888. } TPacketCGShop;
  889.  
  890. typedef struct command_on_click
  891. {
  892. BYTE header;
  893. DWORD vid;
  894. } TPacketCGOnClick;
  895.  
  896. enum
  897. {
  898. EXCHANGE_SUBHEADER_CG_START, /* arg1 == vid of target character */
  899. EXCHANGE_SUBHEADER_CG_ITEM_ADD, /* arg1 == position of item */
  900. EXCHANGE_SUBHEADER_CG_ITEM_DEL, /* arg1 == position of item */
  901. EXCHANGE_SUBHEADER_CG_ELK_ADD, /* arg1 == amount of gold */
  902. EXCHANGE_SUBHEADER_CG_ACCEPT, /* arg1 == not used */
  903. EXCHANGE_SUBHEADER_CG_CANCEL, /* arg1 == not used */
  904. };
  905.  
  906. typedef struct command_exchange
  907. {
  908. BYTE header;
  909. BYTE sub_header;
  910. long long arg1;
  911. BYTE arg2;
  912. TItemPos Pos;
  913. } TPacketCGExchange;
  914.  
  915. typedef struct command_position
  916. {
  917. BYTE header;
  918. BYTE position;
  919. } TPacketCGPosition;
  920.  
  921. typedef struct command_script_answer
  922. {
  923. BYTE header;
  924. BYTE answer;
  925. //char file[32 + 1];
  926. //BYTE answer[16 + 1];
  927. } TPacketCGScriptAnswer;
  928.  
  929.  
  930. typedef struct command_script_button
  931. {
  932. BYTE header;
  933. unsigned int idx;
  934. } TPacketCGScriptButton;
  935.  
  936. typedef struct command_quest_input_string
  937. {
  938. BYTE header;
  939. char msg[64+1];
  940. } TPacketCGQuestInputString;
  941.  
  942. typedef struct command_quest_confirm
  943. {
  944. BYTE header;
  945. BYTE answer;
  946. DWORD requestPID;
  947. } TPacketCGQuestConfirm;
  948.  
  949. /*
  950. * ¼­¹ö Ãø¿¡¼­ º¸³»´Â ÆÐŶ
  951. */
  952. typedef struct packet_quest_confirm
  953. {
  954. BYTE header;
  955. char msg[64+1];
  956. long timeout;
  957. DWORD requestPID;
  958. } TPacketGCQuestConfirm;
  959.  
  960. typedef struct packet_handshake
  961. {
  962. BYTE bHeader;
  963. DWORD dwHandshake;
  964. DWORD dwTime;
  965. long lDelta;
  966. } TPacketGCHandshake;
  967.  
  968. enum EPhase
  969. {
  970. PHASE_CLOSE,
  971. PHASE_HANDSHAKE,
  972. PHASE_LOGIN,
  973. PHASE_SELECT,
  974. PHASE_LOADING,
  975. PHASE_GAME,
  976. PHASE_DEAD,
  977.  
  978. PHASE_CLIENT_CONNECTING,
  979. PHASE_DBCLIENT,
  980. PHASE_P2P,
  981. PHASE_AUTH,
  982. PHASE_TEEN,
  983. PHASE_PASSPOD,
  984. };
  985.  
  986. typedef struct packet_phase
  987. {
  988. BYTE header;
  989. BYTE phase;
  990. } TPacketGCPhase;
  991.  
  992. typedef struct packet_bindudp
  993. {
  994. BYTE header;
  995. DWORD addr;
  996. WORD port;
  997. } TPacketGCBindUDP;
  998.  
  999. enum
  1000. {
  1001. LOGIN_FAILURE_ALREADY = 1,
  1002. LOGIN_FAILURE_ID_NOT_EXIST = 2,
  1003. LOGIN_FAILURE_WRONG_PASS = 3,
  1004. LOGIN_FAILURE_FALSE = 4,
  1005. LOGIN_FAILURE_NOT_TESTOR = 5,
  1006. LOGIN_FAILURE_NOT_TEST_TIME = 6,
  1007. LOGIN_FAILURE_FULL = 7
  1008. };
  1009.  
  1010. typedef struct packet_login_success
  1011. {
  1012. BYTE bHeader;
  1013. TSimplePlayer players[PLAYER_PER_ACCOUNT];
  1014. DWORD guild_id[PLAYER_PER_ACCOUNT];
  1015. char guild_name[PLAYER_PER_ACCOUNT][GUILD_NAME_MAX_LEN+1];
  1016.  
  1017. DWORD handle;
  1018. DWORD random_key;
  1019. } TPacketGCLoginSuccess;
  1020.  
  1021. typedef struct packet_auth_success
  1022. {
  1023. BYTE bHeader;
  1024. DWORD dwLoginKey;
  1025. BYTE bResult;
  1026. } TPacketGCAuthSuccess;
  1027.  
  1028. typedef struct packet_auth_success_openid
  1029. {
  1030. BYTE bHeader;
  1031. DWORD dwLoginKey;
  1032. BYTE bResult;
  1033. char login[LOGIN_MAX_LEN + 1];
  1034. } TPacketGCAuthSuccessOpenID;
  1035.  
  1036. typedef struct packet_login_failure
  1037. {
  1038. BYTE header;
  1039. char szStatus[ACCOUNT_STATUS_MAX_LEN + 1];
  1040. } TPacketGCLoginFailure;
  1041.  
  1042. typedef struct packet_create_failure
  1043. {
  1044. BYTE header;
  1045. BYTE bType;
  1046. } TPacketGCCreateFailure;
  1047.  
  1048. enum
  1049. {
  1050. ADD_CHARACTER_STATE_DEAD = (1 << 0),
  1051. ADD_CHARACTER_STATE_SPAWN = (1 << 1),
  1052. ADD_CHARACTER_STATE_GUNGON = (1 << 2),
  1053. ADD_CHARACTER_STATE_KILLER = (1 << 3),
  1054. ADD_CHARACTER_STATE_PARTY = (1 << 4),
  1055. };
  1056.  
  1057. enum ECharacterEquipmentPart
  1058. {
  1059. CHR_EQUIPPART_ARMOR,
  1060. CHR_EQUIPPART_WEAPON,
  1061. CHR_EQUIPPART_HEAD,
  1062. CHR_EQUIPPART_HAIR,
  1063. #ifdef __SASH_SYSTEM__
  1064. CHR_EQUIPPART_SASH,
  1065. #endif
  1066. CHR_EQUIPPART_NUM,
  1067. };
  1068.  
  1069. typedef struct packet_add_char
  1070. {
  1071. BYTE header;
  1072. DWORD dwVID;
  1073. #if defined(__WJ_SHOW_MOB_INFO__)
  1074. DWORD dwLevel;
  1075. DWORD dwAIFlag;
  1076. #endif
  1077. float angle;
  1078. long x;
  1079. long y;
  1080. long z;
  1081.  
  1082. BYTE bType;
  1083. WORD wRaceNum;
  1084. BYTE bMovingSpeed;
  1085. BYTE bAttackSpeed;
  1086.  
  1087. BYTE bStateFlag;
  1088. DWORD dwAffectFlag[2]; // È¿°ú
  1089. } TPacketGCCharacterAdd;
  1090.  
  1091. typedef struct packet_char_additional_info
  1092. {
  1093. BYTE header;
  1094. DWORD dwVID;
  1095. char name[CHARACTER_NAME_MAX_LEN + 1];
  1096. WORD awPart[CHR_EQUIPPART_NUM];
  1097. BYTE bEmpire;
  1098. DWORD dwGuildID;
  1099. DWORD dwLevel;
  1100. short sAlignment;
  1101. BYTE bPKMode;
  1102. #ifdef __TITLE_SYSTEM__
  1103. int iTitleID;
  1104. #endif
  1105. DWORD dwMountVnum;
  1106. #ifdef __ENABLE_BATTLE_FIELD__
  1107. BYTE bBattleRank;
  1108. #endif
  1109. } TPacketGCCharacterAdditionalInfo;
  1110.  
  1111. /*
  1112. typedef struct packet_update_char_old
  1113. {
  1114. BYTE header;
  1115. DWORD dwVID;
  1116.  
  1117. WORD awPart[CHR_EQUIPPART_NUM];
  1118. BYTE bMovingSpeed;
  1119. BYTE bAttackSpeed;
  1120.  
  1121. BYTE bStateFlag;
  1122. DWORD dwAffectFlag[2];
  1123.  
  1124. DWORD dwGuildID;
  1125. short sAlignment;
  1126. BYTE bPKMode;
  1127. DWORD dwMountVnum;
  1128. } TPacketGCCharacterUpdateOld;
  1129. */
  1130.  
  1131. typedef struct packet_update_char
  1132. {
  1133. BYTE header;
  1134. DWORD dwVID;
  1135.  
  1136. WORD awPart[CHR_EQUIPPART_NUM];
  1137. BYTE bMovingSpeed;
  1138. BYTE bAttackSpeed;
  1139.  
  1140. BYTE bStateFlag;
  1141. DWORD dwAffectFlag[2];
  1142.  
  1143. DWORD dwGuildID;
  1144. short sAlignment;
  1145. #ifdef NEW_PET_SYSTEM
  1146. DWORD dwLevel;
  1147. #endif
  1148. BYTE bPKMode;
  1149. #ifdef __TITLE_SYSTEM__
  1150. int iTitleID;
  1151. #endif
  1152. DWORD dwMountVnum;
  1153. #ifdef __ENABLE_BATTLE_FIELD__
  1154. BYTE bBattleRank;
  1155. #endif
  1156. } TPacketGCCharacterUpdate;
  1157.  
  1158.  
  1159. #ifdef __WHISPER_ADMIN__
  1160. typedef struct SPacketCGWhisperAdmin
  1161. {
  1162. BYTE header;
  1163. char szText[512 + 1];
  1164. char szLang[2 + 1];
  1165. int color;
  1166. } TPacketCGWhisperAdmin;
  1167.  
  1168. typedef struct SPacketGGWhisperSystem
  1169. {
  1170. BYTE bHeader;
  1171. long lSize;
  1172. } TPacketGGWhisperSystem;
  1173. #endif
  1174.  
  1175. typedef struct packet_del_char
  1176. {
  1177. BYTE header;
  1178. DWORD id;
  1179. } TPacketGCCharacterDelete;
  1180.  
  1181. #ifdef ENABLE_FEATURES_OXEVENT
  1182. typedef struct SPacketOxEvent
  1183. {
  1184. char name[12 + 1];
  1185. int level;
  1186. char guild[12 + 1];
  1187. int empire;
  1188. int job;
  1189. char date[19 + 1];
  1190. int correct_answers;
  1191. } TPacketCGOxEvent;
  1192.  
  1193. typedef struct SPacketOxEventData
  1194. {
  1195. BYTE header;
  1196. TPacketCGOxEvent tempInfo[5];
  1197. } TPacketCGOxEventData;
  1198.  
  1199. typedef struct SPacketCGOxEventManager
  1200. {
  1201. BYTE header;
  1202. int type;
  1203. char password[12 + 1];
  1204. int vnum;
  1205. int count;
  1206. } TPacketCGOxEventManager;
  1207. #endif
  1208.  
  1209. typedef struct packet_chat // °¡º¯ ÆÐŶ
  1210. {
  1211. BYTE header;
  1212. WORD size;
  1213. BYTE type;
  1214. DWORD id;
  1215. BYTE bEmpire;
  1216. } TPacketGCChat;
  1217.  
  1218. typedef struct packet_whisper // °¡º¯ ÆÐŶ
  1219. {
  1220. BYTE bHeader;
  1221. WORD wSize;
  1222. BYTE bType;
  1223. char szNameFrom[CHARACTER_NAME_MAX_LEN + 1];
  1224. } TPacketGCWhisper;
  1225.  
  1226. typedef struct packet_main_character
  1227. {
  1228. BYTE header;
  1229. DWORD dwVID;
  1230. WORD wRaceNum;
  1231. char szName[CHARACTER_NAME_MAX_LEN + 1];
  1232. long lx, ly, lz;
  1233. BYTE empire;
  1234. BYTE skill_group;
  1235. } TPacketGCMainCharacter;
  1236.  
  1237. // SUPPORT_BGM
  1238. typedef struct packet_main_character3_bgm
  1239. {
  1240. enum
  1241. {
  1242. MUSIC_NAME_LEN = 24,
  1243. };
  1244.  
  1245. BYTE header;
  1246. DWORD dwVID;
  1247. WORD wRaceNum;
  1248. char szChrName[CHARACTER_NAME_MAX_LEN + 1];
  1249. char szBGMName[MUSIC_NAME_LEN + 1];
  1250. long lx, ly, lz;
  1251. BYTE empire;
  1252. BYTE skill_group;
  1253. } TPacketGCMainCharacter3_BGM;
  1254.  
  1255. typedef struct packet_main_character4_bgm_vol
  1256. {
  1257. enum
  1258. {
  1259. MUSIC_NAME_LEN = 24,
  1260. };
  1261.  
  1262. BYTE header;
  1263. DWORD dwVID;
  1264. WORD wRaceNum;
  1265. char szChrName[CHARACTER_NAME_MAX_LEN + 1];
  1266. char szBGMName[MUSIC_NAME_LEN + 1];
  1267. float fBGMVol;
  1268. long lx, ly, lz;
  1269. BYTE empire;
  1270. BYTE skill_group;
  1271. } TPacketGCMainCharacter4_BGM_VOL;
  1272. // END_OF_SUPPORT_BGM
  1273.  
  1274. typedef struct packet_points
  1275. {
  1276. BYTE header;
  1277. long long points[POINT_MAX_NUM];
  1278. } TPacketGCPoints;
  1279.  
  1280. typedef struct packet_skill_level
  1281. {
  1282. BYTE bHeader;
  1283. TPlayerSkill skills[SKILL_MAX_NUM];
  1284. } TPacketGCSkillLevel;
  1285.  
  1286. typedef struct packet_point_change
  1287. {
  1288. int header;
  1289. DWORD dwVID;
  1290. BYTE type;
  1291. long long amount;
  1292. long long value;
  1293. } TPacketGCPointChange;
  1294.  
  1295. typedef struct packet_stun
  1296. {
  1297. BYTE header;
  1298. DWORD vid;
  1299. } TPacketGCStun;
  1300.  
  1301. typedef struct packet_dead
  1302. {
  1303. BYTE header;
  1304. DWORD vid;
  1305. } TPacketGCDead;
  1306.  
  1307. struct TPacketGCItemDelDeprecated
  1308. {
  1309. BYTE header;
  1310. TItemPos Cell;
  1311. DWORD vnum;
  1312. BYTE count;
  1313. #ifdef __CHANGELOOK_SYSTEM__
  1314. DWORD transmutation;
  1315. #endif
  1316. long alSockets[ITEM_SOCKET_MAX_NUM];
  1317. TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_MAX_NUM];
  1318. };
  1319.  
  1320. typedef struct packet_item_set
  1321. {
  1322. BYTE header;
  1323. TItemPos Cell;
  1324. DWORD vnum;
  1325. BYTE count;
  1326. #ifdef __CHANGELOOK_SYSTEM__
  1327. DWORD transmutation;
  1328. #endif
  1329. DWORD flags;
  1330. DWORD anti_flags;
  1331. bool highlight;
  1332. long alSockets[ITEM_SOCKET_MAX_NUM];
  1333. TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_MAX_NUM];
  1334. } TPacketGCItemSet;
  1335.  
  1336. typedef struct packet_item_del
  1337. {
  1338. BYTE header;
  1339. BYTE pos;
  1340. } TPacketGCItemDel;
  1341.  
  1342. struct packet_item_use
  1343. {
  1344. BYTE header;
  1345. TItemPos Cell;
  1346. DWORD ch_vid;
  1347. DWORD victim_vid;
  1348. DWORD vnum;
  1349. };
  1350.  
  1351. struct packet_item_move
  1352. {
  1353. BYTE header;
  1354. TItemPos Cell;
  1355. TItemPos CellTo;
  1356. };
  1357.  
  1358. typedef struct packet_item_update
  1359. {
  1360. BYTE header;
  1361. TItemPos Cell;
  1362. BYTE count;
  1363. #ifdef __CHANGELOOK_SYSTEM__
  1364. DWORD transmutation;
  1365. #endif
  1366. long alSockets[ITEM_SOCKET_MAX_NUM];
  1367. TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_MAX_NUM];
  1368. } TPacketGCItemUpdate;
  1369.  
  1370. typedef struct packet_item_ground_add
  1371. {
  1372. #ifdef __EXTENDED_ITEM_NAME__
  1373. packet_item_ground_add()
  1374. {
  1375. memset(&alSockets, 0, sizeof(alSockets));
  1376. memset(&aAttrs, 0, sizeof(aAttrs));
  1377. }
  1378. #endif
  1379.  
  1380. BYTE bHeader;
  1381. long x, y, z;
  1382. DWORD dwVID;
  1383. DWORD dwVnum;
  1384. #ifdef __EXTENDED_ITEM_NAME__
  1385. long alSockets[ITEM_SOCKET_MAX_NUM];//3
  1386. TPlayerItemAttribute aAttrs[ITEM_ATTRIBUTE_MAX_NUM];//7
  1387. #endif
  1388. } TPacketGCItemGroundAdd;
  1389.  
  1390. typedef struct packet_item_ownership
  1391. {
  1392. BYTE bHeader;
  1393. DWORD dwVID;
  1394. char szName[CHARACTER_NAME_MAX_LEN + 1];
  1395. } TPacketGCItemOwnership;
  1396.  
  1397. typedef struct packet_item_ground_del
  1398. {
  1399. BYTE bHeader;
  1400. DWORD dwVID;
  1401. } TPacketGCItemGroundDel;
  1402.  
  1403. struct packet_quickslot_add
  1404. {
  1405. BYTE header;
  1406. BYTE pos;
  1407. TQuickslot slot;
  1408. };
  1409.  
  1410. struct packet_quickslot_del
  1411. {
  1412. BYTE header;
  1413. BYTE pos;
  1414. };
  1415.  
  1416. struct packet_quickslot_swap
  1417. {
  1418. BYTE header;
  1419. BYTE pos;
  1420. BYTE pos_to;
  1421. };
  1422.  
  1423. struct packet_motion
  1424. {
  1425. BYTE header;
  1426. DWORD vid;
  1427. DWORD victim_vid;
  1428. WORD motion;
  1429. };
  1430.  
  1431. enum EPacketShopSubHeaders
  1432. {
  1433. SHOP_SUBHEADER_GC_START,
  1434. SHOP_SUBHEADER_GC_END,
  1435. SHOP_SUBHEADER_GC_UPDATE_ITEM,
  1436. SHOP_SUBHEADER_GC_UPDATE_PRICE,
  1437. SHOP_SUBHEADER_GC_OK,
  1438. SHOP_SUBHEADER_GC_NOT_ENOUGH_MONEY,
  1439. #ifdef __MULTI_SHOP__
  1440. SHOP_SUBHEADER_GC_NOT_ENOUGH_ITEM,
  1441. #endif
  1442. YOK_2,
  1443. YOK_3,
  1444. SHOP_SUBHEADER_GC_SOLDOUT,
  1445. SHOP_SUBHEADER_GC_INVENTORY_FULL,
  1446. SHOP_SUBHEADER_GC_INVALID_POS,
  1447. SHOP_SUBHEADER_GC_SOLD_OUT,
  1448. SHOP_SUBHEADER_GC_START_EX,
  1449. SHOP_SUBHEADER_GC_NOT_ENOUGH_MONEY_EX,
  1450. #ifdef __ENABLE_BATTLE_FIELD__
  1451. SHOP_SUBHEADER_GC_NOT_ENOUGH_BATTLE_POINTS,
  1452. SHOP_SUBHEADER_GC_EXCEED_LIMIT_TODAY,
  1453. #endif
  1454. };
  1455.  
  1456. struct packet_shop_item
  1457. {
  1458. DWORD vnum;
  1459. #ifdef FULL_YANG
  1460. long long price;
  1461. #else
  1462. DWORD price;
  1463. #endif
  1464. BYTE count;
  1465.  
  1466. #ifdef __MULTI_SHOP__
  1467. DWORD wPriceVnum;
  1468. DWORD wPrice;
  1469. #endif
  1470.  
  1471. #ifdef __CHANGELOOK_SYSTEM__
  1472. DWORD transmutation;
  1473. #endif
  1474. BYTE display_pos;
  1475. long alSockets[ITEM_SOCKET_MAX_NUM];
  1476. TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_MAX_NUM];
  1477. };
  1478.  
  1479. typedef struct packet_shop_start
  1480. {
  1481. DWORD owner_vid;
  1482. struct packet_shop_item items[SHOP_HOST_ITEM_MAX_NUM];
  1483. } TPacketGCShopStart;
  1484.  
  1485. typedef struct packet_shop_start_ex // ´ÙÀ½¿¡ TSubPacketShopTab* shop_tabs ÀÌ µû¶ó¿È.
  1486. {
  1487. typedef struct sub_packet_shop_tab
  1488. {
  1489. char name[SHOP_TAB_NAME_MAX];
  1490. BYTE coin_type;
  1491. packet_shop_item items[SHOP_HOST_ITEM_MAX_NUM];
  1492. } TSubPacketShopTab;
  1493. DWORD owner_vid;
  1494. BYTE shop_tab_count;
  1495. #ifdef __ENABLE_BATTLE_FIELD__
  1496. int usablePoints;
  1497. int limitMaxPoints;
  1498. #endif
  1499. } TPacketGCShopStartEx;
  1500.  
  1501. typedef struct packet_shop_update_item
  1502. {
  1503. BYTE pos;
  1504. struct packet_shop_item item;
  1505. } TPacketGCShopUpdateItem;
  1506.  
  1507. typedef struct packet_shop_update_price
  1508. {
  1509. long long iPrice;
  1510. } TPacketGCShopUpdatePrice;
  1511.  
  1512. typedef struct packet_shop // °¡º¯ ÆÐŶ
  1513. {
  1514. BYTE header;
  1515. WORD size;
  1516. BYTE subheader;
  1517. } TPacketGCShop;
  1518.  
  1519. struct packet_exchange
  1520. {
  1521. BYTE header;
  1522. BYTE sub_header;
  1523. BYTE is_me;
  1524. long long arg1; // vnum
  1525. TItemPos arg2; // cell
  1526. DWORD arg3; // count
  1527. #ifdef WJ_ENABLE_TRADABLE_ICON
  1528. TItemPos arg4; // srccell
  1529. #endif
  1530. #ifdef __CHANGELOOK_SYSTEM__
  1531. DWORD dwTransmutation;
  1532. #endif
  1533. long alSockets[ITEM_SOCKET_MAX_NUM];
  1534. TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_MAX_NUM];
  1535. };
  1536.  
  1537. enum EPacketTradeSubHeaders
  1538. {
  1539. EXCHANGE_SUBHEADER_GC_START, /* arg1 == vid */
  1540. EXCHANGE_SUBHEADER_GC_ITEM_ADD, /* arg1 == vnum arg2 == pos arg3 == count */
  1541. EXCHANGE_SUBHEADER_GC_ITEM_DEL,
  1542. EXCHANGE_SUBHEADER_GC_GOLD_ADD, /* arg1 == gold */
  1543. EXCHANGE_SUBHEADER_GC_ACCEPT, /* arg1 == accept */
  1544. EXCHANGE_SUBHEADER_GC_END, /* arg1 == not used */
  1545. EXCHANGE_SUBHEADER_GC_ALREADY, /* arg1 == not used */
  1546. EXCHANGE_SUBHEADER_GC_LESS_GOLD, /* arg1 == not used */
  1547. };
  1548.  
  1549. struct packet_position
  1550. {
  1551. BYTE header;
  1552. DWORD vid;
  1553. BYTE position;
  1554. };
  1555.  
  1556. typedef struct packet_ping
  1557. {
  1558. BYTE header;
  1559. } TPacketGCPing;
  1560.  
  1561. struct packet_script
  1562. {
  1563. BYTE header;
  1564. WORD size;
  1565. BYTE skin;
  1566. WORD src_size;
  1567. #ifdef ENABLE_QUEST_CATEGORY
  1568. BYTE quest_flag;
  1569. #endif
  1570. };
  1571.  
  1572. typedef struct packet_change_speed
  1573. {
  1574. BYTE header;
  1575. DWORD vid;
  1576. WORD moving_speed;
  1577. } TPacketGCChangeSpeed;
  1578.  
  1579. struct packet_mount
  1580. {
  1581. BYTE header;
  1582. DWORD vid;
  1583. DWORD mount_vid;
  1584. BYTE pos;
  1585. DWORD x, y;
  1586. };
  1587.  
  1588. typedef struct packet_move
  1589. {
  1590. BYTE bHeader;
  1591. BYTE bFunc;
  1592. BYTE bArg;
  1593. BYTE bRot;
  1594. DWORD dwVID;
  1595. long lX;
  1596. long lY;
  1597. DWORD dwTime;
  1598. DWORD dwDuration;
  1599. } TPacketGCMove;
  1600.  
  1601. // ¼ÒÀ¯±Ç
  1602. typedef struct packet_ownership
  1603. {
  1604. BYTE bHeader;
  1605. DWORD dwOwnerVID;
  1606. DWORD dwVictimVID;
  1607. } TPacketGCOwnership;
  1608.  
  1609. // À§Ä¡ µ¿±âÈ­ ÆÐŶÀÇ bCount ¸¸Å­ ºÙ´Â ´ÜÀ§
  1610. typedef struct packet_sync_position_element
  1611. {
  1612. DWORD dwVID;
  1613. long lX;
  1614. long lY;
  1615. } TPacketGCSyncPositionElement;
  1616.  
  1617. // À§Ä¡ µ¿±âÈ­
  1618. typedef struct packet_sync_position // °¡º¯ ÆÐŶ
  1619. {
  1620. BYTE bHeader;
  1621. WORD wSize; // °³¼ö = (wSize - sizeof(TPacketGCSyncPosition)) / sizeof(TPacketGCSyncPositionElement)
  1622. } TPacketGCSyncPosition;
  1623.  
  1624. typedef struct packet_fly
  1625. {
  1626. BYTE bHeader;
  1627. BYTE bType;
  1628. DWORD dwStartVID;
  1629. DWORD dwEndVID;
  1630. } TPacketGCCreateFly;
  1631.  
  1632. typedef struct command_fly_targeting
  1633. {
  1634. BYTE bHeader;
  1635. DWORD dwTargetVID;
  1636. long x, y;
  1637. } TPacketCGFlyTargeting;
  1638.  
  1639. typedef struct packet_fly_targeting
  1640. {
  1641. BYTE bHeader;
  1642. DWORD dwShooterVID;
  1643. DWORD dwTargetVID;
  1644. long x, y;
  1645. } TPacketGCFlyTargeting;
  1646.  
  1647. typedef struct packet_shoot
  1648. {
  1649. BYTE bHeader;
  1650. BYTE bType;
  1651. } TPacketCGShoot;
  1652.  
  1653. typedef struct packet_duel_start
  1654. {
  1655. BYTE header;
  1656. WORD wSize; // DWORD°¡ ¸î°³? °³¼ö = (wSize - sizeof(TPacketGCPVPList)) / 4
  1657. } TPacketGCDuelStart;
  1658.  
  1659. enum EPVPModes
  1660. {
  1661. PVP_MODE_NONE,
  1662. PVP_MODE_AGREE,
  1663. PVP_MODE_FIGHT,
  1664. PVP_MODE_REVENGE
  1665. };
  1666.  
  1667. typedef struct packet_pvp
  1668. {
  1669. BYTE bHeader;
  1670. DWORD dwVIDSrc;
  1671. DWORD dwVIDDst;
  1672. BYTE bMode; // 0 ÀÌ¸é ²û, 1À̸é ÄÔ
  1673. } TPacketGCPVP;
  1674.  
  1675. #ifdef ENABLE_SUPPORT_SYSTEM
  1676. typedef struct support_use_skill
  1677. {
  1678. BYTE bHeader;
  1679. DWORD dwVnum;
  1680. DWORD dwVid;
  1681. DWORD dwLevel;
  1682. }TPacketGCSupportUseSkill;
  1683. #endif
  1684.  
  1685. typedef struct command_use_skill
  1686. {
  1687. BYTE bHeader;
  1688. DWORD dwVnum;
  1689. DWORD dwVID;
  1690. } TPacketCGUseSkill;
  1691.  
  1692. typedef struct command_target
  1693. {
  1694. BYTE header;
  1695. DWORD dwVID;
  1696. } TPacketCGTarget;
  1697.  
  1698. typedef struct packet_target
  1699. {
  1700. BYTE header;
  1701. DWORD dwVID;
  1702. BYTE bHPPercent;
  1703. #ifdef __VIEW_TARGET_DECIMAL_HP__
  1704. int iMinHP;
  1705. int iMaxHP;
  1706. #endif
  1707. } TPacketGCTarget;
  1708.  
  1709. #ifdef __SEND_TARGET_INFO__
  1710. typedef struct packet_target_info
  1711. {
  1712. BYTE header;
  1713. DWORD dwVID;
  1714. DWORD race;
  1715. DWORD dwVnum;
  1716. BYTE count;
  1717. } TPacketGCTargetInfo;
  1718.  
  1719. typedef struct packet_target_info_load
  1720. {
  1721. BYTE header;
  1722. DWORD dwVID;
  1723. } TPacketCGTargetInfoLoad;
  1724. #endif
  1725.  
  1726. typedef struct packet_warp
  1727. {
  1728. BYTE bHeader;
  1729. long lX;
  1730. long lY;
  1731. long lAddr;
  1732. WORD wPort;
  1733. } TPacketGCWarp;
  1734.  
  1735. typedef struct command_warp
  1736. {
  1737. BYTE bHeader;
  1738. } TPacketCGWarp;
  1739.  
  1740. struct packet_quest_info
  1741. {
  1742. BYTE header;
  1743. WORD size;
  1744. WORD index;
  1745. #ifdef ENABLE_QUEST_CATEGORY
  1746. WORD c_index;
  1747. #endif
  1748. BYTE flag;
  1749. };
  1750.  
  1751. enum
  1752. {
  1753. MESSENGER_SUBHEADER_GC_LIST,
  1754. MESSENGER_SUBHEADER_GC_LOGIN,
  1755. MESSENGER_SUBHEADER_GC_LOGOUT,
  1756. MESSENGER_SUBHEADER_GC_INVITE,
  1757. MESSENGER_SUBHEADER_GC_MOBILE
  1758. };
  1759.  
  1760. typedef struct packet_messenger
  1761. {
  1762. BYTE header;
  1763. WORD size;
  1764. BYTE subheader;
  1765. } TPacketGCMessenger;
  1766.  
  1767. typedef struct packet_messenger_guild_list
  1768. {
  1769. BYTE connected;
  1770. BYTE length;
  1771. //char login[LOGIN_MAX_LEN+1];
  1772. } TPacketGCMessengerGuildList;
  1773.  
  1774. typedef struct packet_messenger_guild_login
  1775. {
  1776. BYTE length;
  1777. //char login[LOGIN_MAX_LEN+1];
  1778. } TPacketGCMessengerGuildLogin;
  1779.  
  1780. typedef struct packet_messenger_guild_logout
  1781. {
  1782. BYTE length;
  1783.  
  1784. //char login[LOGIN_MAX_LEN+1];
  1785. } TPacketGCMessengerGuildLogout;
  1786.  
  1787. typedef struct packet_messenger_list_offline
  1788. {
  1789. BYTE connected; // always 0
  1790. BYTE length;
  1791. } TPacketGCMessengerListOffline;
  1792.  
  1793. typedef struct packet_messenger_list_online
  1794. {
  1795. BYTE connected; // always 1
  1796. BYTE length;
  1797. } TPacketGCMessengerListOnline;
  1798.  
  1799. enum
  1800. {
  1801. MESSENGER_SUBHEADER_CG_ADD_BY_VID,
  1802. MESSENGER_SUBHEADER_CG_ADD_BY_NAME,
  1803. MESSENGER_SUBHEADER_CG_REMOVE,
  1804. MESSENGER_SUBHEADER_CG_INVITE_ANSWER,
  1805. };
  1806.  
  1807. typedef struct command_messenger
  1808. {
  1809. BYTE header;
  1810. BYTE subheader;
  1811. } TPacketCGMessenger;
  1812.  
  1813. typedef struct command_messenger_add_by_vid
  1814. {
  1815. DWORD vid;
  1816. } TPacketCGMessengerAddByVID;
  1817.  
  1818. typedef struct command_messenger_add_by_name
  1819. {
  1820. BYTE length;
  1821. //char login[LOGIN_MAX_LEN+1];
  1822. } TPacketCGMessengerAddByName;
  1823.  
  1824. typedef struct command_messenger_remove
  1825. {
  1826. char login[LOGIN_MAX_LEN+1];
  1827. //DWORD account;
  1828. } TPacketCGMessengerRemove;
  1829.  
  1830. typedef struct command_safebox_checkout
  1831. {
  1832. BYTE bHeader;
  1833. BYTE bSafePos;
  1834. TItemPos ItemPos;
  1835. } TPacketCGSafeboxCheckout;
  1836.  
  1837. typedef struct command_safebox_checkin
  1838. {
  1839. BYTE bHeader;
  1840. BYTE bSafePos;
  1841. TItemPos ItemPos;
  1842. } TPacketCGSafeboxCheckin;
  1843.  
  1844. ///////////////////////////////////////////////////////////////////////////////////
  1845. // Party
  1846.  
  1847. typedef struct command_party_parameter
  1848. {
  1849. BYTE bHeader;
  1850. BYTE bDistributeMode;
  1851. } TPacketCGPartyParameter;
  1852.  
  1853. typedef struct paryt_parameter
  1854. {
  1855. BYTE bHeader;
  1856. BYTE bDistributeMode;
  1857. } TPacketGCPartyParameter;
  1858.  
  1859. typedef struct packet_party_add
  1860. {
  1861. BYTE header;
  1862. DWORD pid;
  1863. char name[CHARACTER_NAME_MAX_LEN+1];
  1864. } TPacketGCPartyAdd;
  1865.  
  1866. typedef struct command_party_invite
  1867. {
  1868. BYTE header;
  1869. DWORD vid;
  1870. } TPacketCGPartyInvite;
  1871.  
  1872. typedef struct packet_party_invite
  1873. {
  1874. BYTE header;
  1875. DWORD leader_vid;
  1876. } TPacketGCPartyInvite;
  1877.  
  1878. typedef struct command_party_invite_answer
  1879. {
  1880. BYTE header;
  1881. DWORD leader_vid;
  1882. BYTE accept;
  1883. } TPacketCGPartyInviteAnswer;
  1884.  
  1885. typedef struct packet_party_update
  1886. {
  1887. BYTE header;
  1888. DWORD pid;
  1889. BYTE role;
  1890. BYTE percent_hp;
  1891. short affects[7];
  1892. } TPacketGCPartyUpdate;
  1893.  
  1894. typedef struct packet_party_remove
  1895. {
  1896. BYTE header;
  1897. DWORD pid;
  1898. } TPacketGCPartyRemove;
  1899.  
  1900. typedef struct packet_party_link
  1901. {
  1902. BYTE header;
  1903. DWORD pid;
  1904. DWORD vid;
  1905. } TPacketGCPartyLink;
  1906.  
  1907. typedef struct packet_party_unlink
  1908. {
  1909. BYTE header;
  1910. DWORD pid;
  1911. DWORD vid;
  1912. } TPacketGCPartyUnlink;
  1913.  
  1914. typedef struct command_party_remove
  1915. {
  1916. BYTE header;
  1917. DWORD pid;
  1918. } TPacketCGPartyRemove;
  1919.  
  1920. typedef struct command_party_set_state
  1921. {
  1922. BYTE header;
  1923. DWORD pid;
  1924. BYTE byRole;
  1925. BYTE flag;
  1926. } TPacketCGPartySetState;
  1927.  
  1928. enum
  1929. {
  1930. PARTY_SKILL_HEAL = 1,
  1931. PARTY_SKILL_WARP = 2
  1932. };
  1933.  
  1934. typedef struct command_party_use_skill
  1935. {
  1936. BYTE header;
  1937. BYTE bySkillIndex;
  1938. DWORD vid;
  1939. } TPacketCGPartyUseSkill;
  1940.  
  1941. typedef struct packet_safebox_size
  1942. {
  1943. BYTE bHeader;
  1944. BYTE bSize;
  1945. } TPacketCGSafeboxSize;
  1946.  
  1947. typedef struct packet_safebox_wrong_password
  1948. {
  1949. BYTE bHeader;
  1950. } TPacketCGSafeboxWrongPassword;
  1951.  
  1952. typedef struct command_empire
  1953. {
  1954. BYTE bHeader;
  1955. BYTE bEmpire;
  1956. } TPacketCGEmpire;
  1957.  
  1958. typedef struct packet_empire
  1959. {
  1960. BYTE bHeader;
  1961. BYTE bEmpire;
  1962. } TPacketGCEmpire;
  1963.  
  1964. enum
  1965. {
  1966. SAFEBOX_MONEY_STATE_SAVE,
  1967. SAFEBOX_MONEY_STATE_WITHDRAW,
  1968. };
  1969.  
  1970. typedef struct command_safebox_money
  1971. {
  1972. BYTE bHeader;
  1973. BYTE bState;
  1974. long lMoney;
  1975. } TPacketCGSafeboxMoney;
  1976.  
  1977. typedef struct packet_safebox_money_change
  1978. {
  1979. BYTE bHeader;
  1980. long lMoney;
  1981. } TPacketGCSafeboxMoneyChange;
  1982.  
  1983. // Guild
  1984.  
  1985. enum
  1986. {
  1987. GUILD_SUBHEADER_GC_LOGIN,
  1988. GUILD_SUBHEADER_GC_LOGOUT,
  1989. GUILD_SUBHEADER_GC_LIST,
  1990. GUILD_SUBHEADER_GC_GRADE,
  1991. GUILD_SUBHEADER_GC_ADD,
  1992. GUILD_SUBHEADER_GC_REMOVE,
  1993. GUILD_SUBHEADER_GC_GRADE_NAME,
  1994. GUILD_SUBHEADER_GC_GRADE_AUTH,
  1995. GUILD_SUBHEADER_GC_INFO,
  1996. GUILD_SUBHEADER_GC_COMMENTS,
  1997. GUILD_SUBHEADER_GC_CHANGE_EXP,
  1998. GUILD_SUBHEADER_GC_CHANGE_MEMBER_GRADE,
  1999. GUILD_SUBHEADER_GC_SKILL_INFO,
  2000. GUILD_SUBHEADER_GC_CHANGE_MEMBER_GENERAL,
  2001. GUILD_SUBHEADER_GC_GUILD_INVITE,
  2002. GUILD_SUBHEADER_GC_WAR,
  2003. GUILD_SUBHEADER_GC_GUILD_NAME,
  2004. GUILD_SUBHEADER_GC_GUILD_WAR_LIST,
  2005. GUILD_SUBHEADER_GC_GUILD_WAR_END_LIST,
  2006. GUILD_SUBHEADER_GC_WAR_SCORE,
  2007. GUILD_SUBHEADER_GC_MONEY_CHANGE,
  2008. };
  2009.  
  2010. enum GUILD_SUBHEADER_CG
  2011. {
  2012. GUILD_SUBHEADER_CG_ADD_MEMBER,
  2013. GUILD_SUBHEADER_CG_REMOVE_MEMBER,
  2014. GUILD_SUBHEADER_CG_CHANGE_GRADE_NAME,
  2015. GUILD_SUBHEADER_CG_CHANGE_GRADE_AUTHORITY,
  2016. GUILD_SUBHEADER_CG_OFFER,
  2017. GUILD_SUBHEADER_CG_POST_COMMENT,
  2018. GUILD_SUBHEADER_CG_DELETE_COMMENT,
  2019. GUILD_SUBHEADER_CG_REFRESH_COMMENT,
  2020. GUILD_SUBHEADER_CG_CHANGE_MEMBER_GRADE,
  2021. GUILD_SUBHEADER_CG_USE_SKILL,
  2022. GUILD_SUBHEADER_CG_CHANGE_MEMBER_GENERAL,
  2023. GUILD_SUBHEADER_CG_GUILD_INVITE_ANSWER,
  2024. GUILD_SUBHEADER_CG_CHARGE_GSP,
  2025. GUILD_SUBHEADER_CG_DEPOSIT_MONEY,
  2026. GUILD_SUBHEADER_CG_WITHDRAW_MONEY,
  2027. };
  2028.  
  2029. typedef struct packet_guild
  2030. {
  2031. BYTE header;
  2032. WORD size;
  2033. BYTE subheader;
  2034. } TPacketGCGuild;
  2035.  
  2036. typedef struct packet_guild_name_t
  2037. {
  2038. BYTE header;
  2039. WORD size;
  2040. BYTE subheader;
  2041. DWORD guildID;
  2042. char guildName[GUILD_NAME_MAX_LEN];
  2043. } TPacketGCGuildName;
  2044.  
  2045. typedef struct packet_guild_war
  2046. {
  2047. DWORD dwGuildSelf;
  2048. DWORD dwGuildOpp;
  2049. BYTE bType;
  2050. BYTE bWarState;
  2051. } TPacketGCGuildWar;
  2052.  
  2053. typedef struct command_guild
  2054. {
  2055. BYTE header;
  2056. BYTE subheader;
  2057. } TPacketCGGuild;
  2058.  
  2059. #ifdef __ADMIN_MANAGER__
  2060. typedef struct SPacketCGAdminTool
  2061. {
  2062. BYTE header;
  2063. int action;
  2064. char user_name[12 + 1];
  2065. char reason[32 + 1];
  2066. int duration;
  2067. } TPacketCGAdminBanManger;
  2068. #endif
  2069.  
  2070. typedef struct command_guild_answer_make_guild
  2071. {
  2072. BYTE header;
  2073. char guild_name[GUILD_NAME_MAX_LEN+1];
  2074. } TPacketCGAnswerMakeGuild;
  2075.  
  2076. typedef struct command_guild_use_skill
  2077. {
  2078. DWORD dwVnum;
  2079. DWORD dwPID;
  2080. } TPacketCGGuildUseSkill;
  2081.  
  2082. // Guild Mark
  2083. typedef struct command_mark_login
  2084. {
  2085. BYTE header;
  2086. DWORD handle;
  2087. DWORD random_key;
  2088. } TPacketCGMarkLogin;
  2089.  
  2090. typedef struct command_mark_upload
  2091. {
  2092. BYTE header;
  2093. DWORD gid;
  2094. BYTE image[16*12*4];
  2095. } TPacketCGMarkUpload;
  2096.  
  2097. typedef struct command_mark_idxlist
  2098. {
  2099. BYTE header;
  2100. } TPacketCGMarkIDXList;
  2101.  
  2102. typedef struct command_mark_crclist
  2103. {
  2104. BYTE header;
  2105. BYTE imgIdx;
  2106. DWORD crclist[80];
  2107. } TPacketCGMarkCRCList;
  2108.  
  2109. typedef struct packet_mark_idxlist
  2110. {
  2111. BYTE header;
  2112. DWORD bufSize;
  2113. WORD count;
  2114. //µÚ¿¡ size * (WORD + WORD)¸¸Å­ µ¥ÀÌÅÍ ºÙÀ½
  2115. } TPacketGCMarkIDXList;
  2116.  
  2117. typedef struct packet_mark_block
  2118. {
  2119. BYTE header;
  2120. DWORD bufSize;
  2121. BYTE imgIdx;
  2122. DWORD count;
  2123. // µÚ¿¡ 64 x 48 x Çȼ¿Å©±â(4¹ÙÀÌÆ®) = 12288¸¸Å­ µ¥ÀÌÅÍ ºÙÀ½
  2124. } TPacketGCMarkBlock;
  2125.  
  2126. typedef struct command_symbol_upload
  2127. {
  2128. BYTE header;
  2129. WORD size;
  2130. DWORD guild_id;
  2131. } TPacketCGGuildSymbolUpload;
  2132.  
  2133. typedef struct command_symbol_crc
  2134. {
  2135. BYTE header;
  2136. DWORD guild_id;
  2137. DWORD crc;
  2138. DWORD size;
  2139. } TPacketCGSymbolCRC;
  2140.  
  2141. typedef struct packet_symbol_data
  2142. {
  2143. BYTE header;
  2144. WORD size;
  2145. DWORD guild_id;
  2146. } TPacketGCGuildSymbolData;
  2147.  
  2148. // Fishing
  2149.  
  2150. typedef struct command_fishing
  2151. {
  2152. BYTE header;
  2153. BYTE dir;
  2154. } TPacketCGFishing;
  2155.  
  2156. typedef struct packet_fishing
  2157. {
  2158. BYTE header;
  2159. BYTE subheader;
  2160. DWORD info;
  2161. BYTE dir;
  2162. } TPacketGCFishing;
  2163.  
  2164. enum
  2165. {
  2166. FISHING_SUBHEADER_GC_START,
  2167. FISHING_SUBHEADER_GC_STOP,
  2168. FISHING_SUBHEADER_GC_REACT,
  2169. FISHING_SUBHEADER_GC_SUCCESS,
  2170. FISHING_SUBHEADER_GC_FAIL,
  2171. FISHING_SUBHEADER_GC_FISH,
  2172. };
  2173.  
  2174. typedef struct command_give_item
  2175. {
  2176. BYTE byHeader;
  2177. DWORD dwTargetVID;
  2178. TItemPos ItemPos;
  2179. BYTE byItemCount;
  2180. } TPacketCGGiveItem;
  2181.  
  2182. typedef struct SPacketCGHack
  2183. {
  2184. BYTE bHeader;
  2185. char szBuf[255 + 1];
  2186. } TPacketCGHack;
  2187.  
  2188. // SubHeader - Dungeon
  2189. enum
  2190. {
  2191. DUNGEON_SUBHEADER_GC_TIME_ATTACK_START = 0,
  2192. DUNGEON_SUBHEADER_GC_DESTINATION_POSITION = 1,
  2193. };
  2194.  
  2195. typedef struct packet_dungeon
  2196. {
  2197. BYTE bHeader;
  2198. WORD size;
  2199. BYTE subheader;
  2200. } TPacketGCDungeon;
  2201.  
  2202. typedef struct packet_dungeon_dest_position
  2203. {
  2204. long x;
  2205. long y;
  2206. } TPacketGCDungeonDestPosition;
  2207.  
  2208. typedef struct SPacketGCShopSign
  2209. {
  2210. BYTE bHeader;
  2211. DWORD dwVID;
  2212. char szSign[SHOP_SIGN_MAX_LEN + 1];
  2213. } TPacketGCShopSign;
  2214.  
  2215. typedef struct SPacketCGMyShop
  2216. {
  2217. BYTE bHeader;
  2218. char szSign[SHOP_SIGN_MAX_LEN + 1];
  2219. BYTE bCount;
  2220. #ifdef OFFLINE_SHOP
  2221. BYTE days;
  2222. #endif
  2223. } TPacketCGMyShop;
  2224.  
  2225. typedef struct SPacketGCTime
  2226. {
  2227. BYTE bHeader;
  2228. time_t time;
  2229. } TPacketGCTime;
  2230.  
  2231. enum
  2232. {
  2233. WALKMODE_RUN,
  2234. WALKMODE_WALK,
  2235. };
  2236.  
  2237. typedef struct SPacketGCWalkMode
  2238. {
  2239. BYTE header;
  2240. DWORD vid;
  2241. BYTE mode;
  2242. } TPacketGCWalkMode;
  2243.  
  2244. typedef struct SPacketGCChangeSkillGroup
  2245. {
  2246. BYTE header;
  2247. BYTE skill_group;
  2248. } TPacketGCChangeSkillGroup;
  2249.  
  2250. typedef struct SPacketCGRefine
  2251. {
  2252. BYTE header;
  2253. BYTE pos;
  2254. BYTE type;
  2255. #ifdef __REFINE_SYSTEM__
  2256. BYTE lLow;
  2257. BYTE lMedium;
  2258. BYTE lExtra;
  2259. BYTE lTotal;
  2260. #endif
  2261. } TPacketCGRefine;
  2262.  
  2263. typedef struct SPacketCGRequestRefineInfo
  2264. {
  2265. BYTE header;
  2266. BYTE pos;
  2267. } TPacketCGRequestRefineInfo;
  2268.  
  2269. typedef struct SPacketGCRefineInformaion
  2270. {
  2271. BYTE header;
  2272. BYTE type;
  2273. BYTE pos;
  2274. DWORD src_vnum;
  2275. DWORD result_vnum;
  2276. BYTE material_count;
  2277. int cost; // ¼Ò¿ä ºñ¿ë
  2278. int prob; // È®·ü
  2279. TRefineMaterial materials[REFINE_MATERIAL_MAX_NUM];
  2280. } TPacketGCRefineInformation;
  2281.  
  2282. struct TNPCPosition
  2283. {
  2284. BYTE bType;
  2285. char name[CHARACTER_NAME_MAX_LEN+1];
  2286. long x;
  2287. long y;
  2288. };
  2289.  
  2290. typedef struct SPacketGCNPCPosition
  2291. {
  2292. BYTE header;
  2293. WORD size;
  2294. WORD count;
  2295.  
  2296. // array of TNPCPosition
  2297. } TPacketGCNPCPosition;
  2298.  
  2299. typedef struct SPacketGCSpecialEffect
  2300. {
  2301. BYTE header;
  2302. BYTE type;
  2303. DWORD vid;
  2304. } TPacketGCSpecialEffect;
  2305.  
  2306. typedef struct SPacketCGChangeName
  2307. {
  2308. BYTE header;
  2309. BYTE index;
  2310. char name[CHARACTER_NAME_MAX_LEN+1];
  2311. } TPacketCGChangeName;
  2312.  
  2313. typedef struct SPacketGCChangeName
  2314. {
  2315. BYTE header;
  2316. DWORD pid;
  2317. char name[CHARACTER_NAME_MAX_LEN+1];
  2318. } TPacketGCChangeName;
  2319.  
  2320.  
  2321. typedef struct command_client_version
  2322. {
  2323. BYTE header;
  2324. char filename[32+1];
  2325. char timestamp[32+1];
  2326. } TPacketCGClientVersion;
  2327.  
  2328. typedef struct command_client_version2
  2329. {
  2330. BYTE header;
  2331. char filename[32+1];
  2332. char timestamp[32+1];
  2333. } TPacketCGClientVersion2;
  2334.  
  2335. typedef struct packet_channel
  2336. {
  2337. BYTE header;
  2338. BYTE channel;
  2339. } TPacketGCChannel;
  2340.  
  2341. typedef struct SEquipmentItemSet
  2342. {
  2343. DWORD vnum;
  2344. BYTE count;
  2345. long alSockets[ITEM_SOCKET_MAX_NUM];
  2346. TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_MAX_NUM];
  2347. } TEquipmentItemSet;
  2348.  
  2349. typedef struct pakcet_view_equip
  2350. {
  2351. BYTE header;
  2352. DWORD vid;
  2353. TEquipmentItemSet equips[WEAR_MAX_NUM];
  2354. } TPacketViewEquip;
  2355.  
  2356. typedef struct
  2357. {
  2358. DWORD dwID;
  2359. long x, y;
  2360. long width, height;
  2361. DWORD dwGuildID;
  2362. } TLandPacketElement;
  2363.  
  2364. typedef struct packet_land_list
  2365. {
  2366. BYTE header;
  2367. WORD size;
  2368. } TPacketGCLandList;
  2369.  
  2370. typedef struct
  2371. {
  2372. BYTE bHeader;
  2373. long lID;
  2374. char szName[32+1];
  2375. DWORD dwVID;
  2376. BYTE bType;
  2377. } TPacketGCTargetCreate;
  2378.  
  2379. typedef struct
  2380. {
  2381. BYTE bHeader;
  2382. long lID;
  2383. long lX, lY;
  2384. } TPacketGCTargetUpdate;
  2385.  
  2386. typedef struct
  2387. {
  2388. BYTE bHeader;
  2389. long lID;
  2390. } TPacketGCTargetDelete;
  2391.  
  2392. typedef struct
  2393. {
  2394. BYTE bHeader;
  2395. TPacketAffectElement elem;
  2396. } TPacketGCAffectAdd;
  2397.  
  2398. typedef struct
  2399. {
  2400. BYTE bHeader;
  2401. DWORD dwType;
  2402. BYTE bApplyOn;
  2403. } TPacketGCAffectRemove;
  2404.  
  2405. typedef struct packet_lover_info
  2406. {
  2407. BYTE header;
  2408. char name[CHARACTER_NAME_MAX_LEN + 1];
  2409. BYTE love_point;
  2410. } TPacketGCLoverInfo;
  2411.  
  2412. typedef struct packet_love_point_update
  2413. {
  2414. BYTE header;
  2415. BYTE love_point;
  2416. } TPacketGCLovePointUpdate;
  2417.  
  2418. // MINING
  2419. typedef struct packet_dig_motion
  2420. {
  2421. BYTE header;
  2422. DWORD vid;
  2423. DWORD target_vid;
  2424. BYTE count;
  2425. } TPacketGCDigMotion;
  2426. // END_OF_MINING
  2427.  
  2428. // SCRIPT_SELECT_ITEM
  2429. typedef struct command_script_select_item
  2430. {
  2431. BYTE header;
  2432. DWORD selection;
  2433. } TPacketCGScriptSelectItem;
  2434. // END_OF_SCRIPT_SELECT_ITEM
  2435.  
  2436. typedef struct packet_damage_info
  2437. {
  2438. BYTE header;
  2439. DWORD dwVID;
  2440. BYTE flag;
  2441. int damage;
  2442. } TPacketGCDamageInfo;
  2443.  
  2444. enum
  2445. {
  2446. RUNUP_MATRIX_ANSWER_MAX_LEN = 4,
  2447. RUNUP_MATRIX_QUIZ_MAX_LEN = 8 ,
  2448.  
  2449. };
  2450.  
  2451. typedef struct packet_runup_matrix_quiz
  2452. {
  2453. BYTE bHeader;
  2454. char szQuiz[RUNUP_MATRIX_QUIZ_MAX_LEN + 1];
  2455. } TPacketGCRunupMatrixQuiz;
  2456.  
  2457. typedef struct command_runup_matrix_answer
  2458. {
  2459. BYTE bHeader;
  2460. char szAnswer[RUNUP_MATRIX_ANSWER_MAX_LEN + 1];
  2461. } TPacketCGRunupMatrixAnswer;
  2462.  
  2463. typedef struct packet_passpod
  2464. {
  2465. BYTE bHeader;
  2466. char szAnswer[8+1];
  2467. } TPacketCGPasspod;
  2468.  
  2469. typedef struct packet_passpod_failed
  2470. {
  2471. BYTE bHeader;
  2472. char szMessage[128];
  2473. } TPacketCGPasspodFailed;
  2474.  
  2475. typedef struct tag_GGSiege
  2476. {
  2477. BYTE bHeader;
  2478. BYTE bEmpire;
  2479. BYTE bTowerCount;
  2480. } TPacketGGSiege;
  2481.  
  2482. typedef struct SPacketGGMonarchTransfer
  2483. {
  2484. BYTE bHeader;
  2485. DWORD dwTargetPID;
  2486. long x;
  2487. long y;
  2488. } TPacketMonarchGGTransfer;
  2489.  
  2490. typedef struct SPacketGGPCBangUpdate
  2491. {
  2492. BYTE bHeader;
  2493. unsigned long ulPCBangID;
  2494. } TPacketPCBangUpdate;
  2495.  
  2496. typedef struct SPacketGGCheckAwakeness
  2497. {
  2498. BYTE bHeader;
  2499. } TPacketGGCheckAwakeness;
  2500.  
  2501. typedef struct SPacketGCPanamaPack
  2502. {
  2503. BYTE bHeader;
  2504. char szPackName[256];
  2505. BYTE abIV[32];
  2506. } TPacketGCPanamaPack;
  2507.  
  2508. //TODO : ¾Æ¿ì ¯³ª..°¡º¯ÆÐŶ »çÀÌÁî ¹Þ¾ÆµéÀϼö ÀÖ°Ô ÆÐŶ Çڵ鷯 Refactoring ÇÏÀÚ.
  2509. typedef struct SPacketGCHybridCryptKeys
  2510. {
  2511. SPacketGCHybridCryptKeys() : m_pStream(NULL) {}
  2512. ~SPacketGCHybridCryptKeys()
  2513. {
  2514. //GCC ¿¡¼± NULL delete ÇØµµ ±¦Âú³ª? ÀÏ´Ü ¾ÈÀüÇÏ°Ô NULL üũ ÇÏÀÚ. ( ±Ùµ¥ À̰ŠC++ Ç¥ÁؾƴϾú³ª --a )
  2515. if( m_pStream )
  2516. {
  2517. delete[] m_pStream;
  2518. m_pStream = NULL;
  2519. }
  2520. }
  2521.  
  2522. DWORD GetStreamSize()
  2523. {
  2524. return sizeof(bHeader) + sizeof(WORD) + sizeof(int) + KeyStreamLen;
  2525. }
  2526.  
  2527. BYTE* GetStreamData()
  2528. {
  2529. if( m_pStream )
  2530. delete[] m_pStream;
  2531.  
  2532. uDynamicPacketSize = (WORD)GetStreamSize();
  2533.  
  2534. m_pStream = new BYTE[ uDynamicPacketSize ];
  2535.  
  2536. memcpy( m_pStream, &bHeader, 1 );
  2537. memcpy( m_pStream+1, &uDynamicPacketSize, 2 );
  2538. memcpy( m_pStream+3, &KeyStreamLen, 4 );
  2539.  
  2540. if( KeyStreamLen > 0 )
  2541. memcpy( m_pStream+7, pDataKeyStream, KeyStreamLen );
  2542.  
  2543. return m_pStream;
  2544. }
  2545.  
  2546. BYTE bHeader;
  2547. WORD uDynamicPacketSize; // ºô¾î¸ÔÀ» Ŭ¶ó DynamicPacketHeader ±¸Á¶¶§¹®¿¡ ¸ÂÃçÁà¾ßÇÑ´Ù -_-;
  2548. int KeyStreamLen;
  2549. BYTE* pDataKeyStream;
  2550.  
  2551. private:
  2552. BYTE* m_pStream;
  2553.  
  2554.  
  2555. } TPacketGCHybridCryptKeys;
  2556.  
  2557.  
  2558. typedef struct SPacketGCPackageSDB
  2559. {
  2560. SPacketGCPackageSDB() : m_pDataSDBStream(NULL), m_pStream(NULL) {}
  2561. ~SPacketGCPackageSDB()
  2562. {
  2563. if( m_pStream )
  2564. {
  2565. delete[] m_pStream;
  2566. m_pStream = NULL;
  2567. }
  2568. }
  2569.  
  2570. DWORD GetStreamSize()
  2571. {
  2572. return sizeof(bHeader) + sizeof(WORD) + sizeof(int) + iStreamLen;
  2573. }
  2574.  
  2575. BYTE* GetStreamData()
  2576. {
  2577. if( m_pStream )
  2578. delete[] m_pStream;
  2579.  
  2580. uDynamicPacketSize = GetStreamSize();
  2581.  
  2582. m_pStream = new BYTE[ uDynamicPacketSize ];
  2583.  
  2584. memcpy( m_pStream, &bHeader, 1 );
  2585. memcpy( m_pStream+1, &uDynamicPacketSize, 2 );
  2586. memcpy( m_pStream+3, &iStreamLen, 4 );
  2587.  
  2588. if( iStreamLen > 0 )
  2589. memcpy( m_pStream+7, m_pDataSDBStream, iStreamLen );
  2590.  
  2591. return m_pStream;
  2592. }
  2593.  
  2594. BYTE bHeader;
  2595. WORD uDynamicPacketSize; // ºô¾î¸ÔÀ» Ŭ¶ó DynamicPacketHeader ±¸Á¶¶§¹®¿¡ ¸ÂÃçÁà¾ßÇÑ´Ù -_-;
  2596. int iStreamLen;
  2597. BYTE* m_pDataSDBStream;
  2598.  
  2599. private:
  2600. BYTE* m_pStream;
  2601.  
  2602.  
  2603. } TPacketGCPackageSDB;
  2604.  
  2605. #ifdef _IMPROVED_PACKET_ENCRYPTION_
  2606. struct TPacketKeyAgreement
  2607. {
  2608. static const int MAX_DATA_LEN = 256;
  2609. BYTE bHeader;
  2610. WORD wAgreedLength;
  2611. WORD wDataLength;
  2612. BYTE data[MAX_DATA_LEN];
  2613. };
  2614.  
  2615. struct TPacketKeyAgreementCompleted
  2616. {
  2617. BYTE bHeader;
  2618. BYTE data[3]; // dummy (not used)
  2619. };
  2620.  
  2621. #endif // _IMPROVED_PACKET_ENCRYPTION_
  2622.  
  2623. #define MAX_EFFECT_FILE_NAME 128
  2624. typedef struct SPacketGCSpecificEffect
  2625. {
  2626. BYTE header;
  2627. DWORD vid;
  2628. char effect_file[MAX_EFFECT_FILE_NAME];
  2629. } TPacketGCSpecificEffect;
  2630.  
  2631. // ¿ëÈ¥¼®
  2632. enum EDragonSoulRefineWindowRefineType
  2633. {
  2634. DragonSoulRefineWindow_UPGRADE,
  2635. DragonSoulRefineWindow_IMPROVEMENT,
  2636. DragonSoulRefineWindow_REFINE,
  2637. };
  2638.  
  2639. enum EPacketCGDragonSoulSubHeaderType
  2640. {
  2641. DS_SUB_HEADER_OPEN,
  2642. DS_SUB_HEADER_CLOSE,
  2643. DS_SUB_HEADER_DO_REFINE_GRADE,
  2644. DS_SUB_HEADER_DO_REFINE_STEP,
  2645. DS_SUB_HEADER_DO_REFINE_STRENGTH,
  2646. DS_SUB_HEADER_REFINE_FAIL,
  2647. DS_SUB_HEADER_REFINE_FAIL_MAX_REFINE,
  2648. DS_SUB_HEADER_REFINE_FAIL_INVALID_MATERIAL,
  2649. DS_SUB_HEADER_REFINE_FAIL_NOT_ENOUGH_MONEY,
  2650. DS_SUB_HEADER_REFINE_FAIL_NOT_ENOUGH_MATERIAL,
  2651. DS_SUB_HEADER_REFINE_FAIL_TOO_MUCH_MATERIAL,
  2652. DS_SUB_HEADER_REFINE_SUCCEED,
  2653. };
  2654. typedef struct SPacketCGDragonSoulRefine
  2655. {
  2656. SPacketCGDragonSoulRefine() : header (HEADER_CG_DRAGON_SOUL_REFINE)
  2657. {}
  2658. BYTE header;
  2659. BYTE bSubType;
  2660. TItemPos ItemGrid[DRAGON_SOUL_REFINE_GRID_SIZE];
  2661. } TPacketCGDragonSoulRefine;
  2662.  
  2663. typedef struct SPacketGCDragonSoulRefine
  2664. {
  2665. SPacketGCDragonSoulRefine() : header(HEADER_GC_DRAGON_SOUL_REFINE)
  2666. {}
  2667. BYTE header;
  2668. BYTE bSubType;
  2669. TItemPos Pos;
  2670. } TPacketGCDragonSoulRefine;
  2671.  
  2672. typedef struct SPacketCGStateCheck
  2673. {
  2674. BYTE header;
  2675. unsigned long key;
  2676. unsigned long index;
  2677. } TPacketCGStateCheck;
  2678.  
  2679. typedef struct SPacketGCStateCheck
  2680. {
  2681. BYTE header;
  2682. unsigned long key;
  2683. unsigned long index;
  2684. unsigned char state;
  2685. } TPacketGCStateCheck;
  2686.  
  2687. #ifdef __ENABLE_BATTLE_FIELD__
  2688. enum
  2689. {
  2690. HEADER_CG_REQUEST_ENTER_BATTLE = 217,
  2691. HEADER_CG_REQUEST_EXIT_BATTLE = 218,
  2692.  
  2693. HEADER_GC_BATTLE_ZONE_INFO = 222,
  2694. };
  2695.  
  2696. typedef struct SBattleRankingMember {
  2697. BYTE bPosition;
  2698. BYTE bType;
  2699. char szName[CHARACTER_NAME_MAX_LEN + 1];
  2700. BYTE bEmpire;
  2701. long lScore;
  2702. } TBattleRankingMember;
  2703.  
  2704. typedef struct SPacketGCBattleInfo {
  2705. BYTE bHeader;
  2706. WORD wSize;
  2707. int iOpenTime;
  2708. int iCloseTime;
  2709. bool bIsEnterOpen;
  2710. bool bIsEvent;
  2711. } TPacketGCBattleInfo;
  2712. #endif
  2713.  
  2714. #ifdef __TITLE_SYSTEM__
  2715. typedef struct SPacketGGTitleInfo
  2716. {
  2717. BYTE bHeader;
  2718. int iTitle;
  2719. BYTE bAnswer;
  2720. } TPacketGGTitleInfo;
  2721. #endif
  2722.  
  2723. #ifdef __CHANGELOOK_SYSTEM__
  2724. enum
  2725. {
  2726. HEADER_CG_CL = 213,
  2727. HEADER_GC_CL = 218,
  2728. CL_SUBHEADER_OPEN = 0,
  2729. CL_SUBHEADER_CLOSE,
  2730. CL_SUBHEADER_ADD,
  2731. CL_SUBHEADER_REMOVE,
  2732. CL_SUBHEADER_REFINE,
  2733. };
  2734.  
  2735. typedef struct SPacketChangeLook
  2736. {
  2737. BYTE header;
  2738. BYTE subheader;
  2739. DWORD dwCost;
  2740. BYTE bPos;
  2741. TItemPos tPos;
  2742. } TPacketChangeLook;
  2743. #endif
  2744.  
  2745. #ifdef __SASH_SYSTEM__
  2746. enum
  2747. {
  2748. HEADER_CG_SASH = 211,
  2749. HEADER_GC_SASH = 215,
  2750. SASH_SUBHEADER_GC_OPEN = 0,
  2751. SASH_SUBHEADER_GC_CLOSE,
  2752. SASH_SUBHEADER_GC_ADDED,
  2753. SASH_SUBHEADER_GC_REMOVED,
  2754. SASH_SUBHEADER_CG_REFINED,
  2755. SASH_SUBHEADER_CG_CLOSE = 0,
  2756. SASH_SUBHEADER_CG_ADD,
  2757. SASH_SUBHEADER_CG_REMOVE,
  2758. SASH_SUBHEADER_CG_REFINE,
  2759. };
  2760.  
  2761. typedef struct SPacketSash
  2762. {
  2763. BYTE header;
  2764. BYTE subheader;
  2765. bool bWindow;
  2766. DWORD dwPrice;
  2767. BYTE bPos;
  2768. TItemPos tPos;
  2769. DWORD dwItemVnum;
  2770. DWORD dwMinAbs;
  2771. DWORD dwMaxAbs;
  2772. } TPacketSash;
  2773. #endif
  2774.  
  2775. //ceva buffi
  2776. typedef struct SPacketGCIgnoreNextSkillCooldown
  2777. {
  2778. BYTE header;
  2779. } TPacketGCIgnoreNextSkillCooldown;
  2780.  
  2781. typedef struct SPacketGCSkillMotion
  2782. {
  2783. BYTE header;
  2784. DWORD dwVID;
  2785. long lX;
  2786. long lY;
  2787. BYTE bRot;
  2788. DWORD dwTime;
  2789. DWORD dwSkillVnum;
  2790. BYTE bSkillLevel;
  2791. BYTE bSkillGrade;
  2792. } TPacketGCSkillMotion;
  2793.  
  2794. #ifdef __SHOW_CHEST_DROP__
  2795. enum
  2796. {
  2797. HEADER_CG_CHEST_DROP_INFO = 216,
  2798. HEADER_GC_CHEST_DROP_INFO = 219,
  2799. };
  2800.  
  2801. typedef struct SPacketCGChestDropInfo {
  2802. BYTE header;
  2803. WORD wInventoryCell;
  2804. } TPacketCGChestDropInfo;
  2805.  
  2806. typedef struct SChestDropInfoTable {
  2807. BYTE bPageIndex;
  2808. BYTE bSlotIndex;
  2809. DWORD dwItemVnum;
  2810. BYTE bItemCount;
  2811. } TChestDropInfoTable;
  2812.  
  2813. typedef struct SPacketGCChestDropInfo {
  2814. BYTE bHeader;
  2815. WORD wSize;
  2816. DWORD dwChestVnum;
  2817. } TPacketGCChestDropInfo;
  2818. #endif
  2819.  
  2820. #ifdef __ATTENDANCE_EVENT__
  2821. enum
  2822. {
  2823. HEADER_CG_ATTENDANCE_REWARD = 220,
  2824.  
  2825. HEADER_GC_HIT_COUNT_INFO = 224,
  2826. HEADER_GC_ATTENDANCE_EVENT = 225,
  2827. HEADER_GC_ATTENDANCE_EVENT_INFO = 226,
  2828. };
  2829.  
  2830. typedef struct SHitCountInfo
  2831. {
  2832. SHitCountInfo(){ dwVid = dwCount = 0;}
  2833. SHitCountInfo(DWORD vid, DWORD count)
  2834. {
  2835. dwVid = vid;
  2836. dwCount = count;
  2837. }
  2838. DWORD dwVid;
  2839. DWORD dwCount;
  2840. } THitCountInfo;
  2841.  
  2842. typedef struct SRewardItem
  2843. {
  2844. BYTE bDay;
  2845. DWORD dwVnum;
  2846. DWORD dwCount;
  2847. } TRewardItem;
  2848.  
  2849. typedef struct SPacketGCHitCountInfo {
  2850. BYTE bHeader;
  2851. DWORD dwVid;
  2852. DWORD dwCount;
  2853. } TPacketGCHitCountInfo;
  2854.  
  2855. typedef struct SPacketGCAttendanceEventInfo {
  2856. BYTE bHeader;
  2857. WORD wSize;
  2858. bool bIsEnable;
  2859. BYTE bDay;
  2860. BYTE bClear;
  2861. BYTE bReward;
  2862. } TPacketGCAttendanceEventInfo;
  2863.  
  2864. typedef struct SPacketGCAttendanceEvent {
  2865. BYTE bHeader;
  2866. BYTE bType;
  2867. BYTE bValue;
  2868. } TPacketGCAttendanceEvent;
  2869. #endif
  2870.  
  2871. #ifdef ENABLE_FISH_EVENT
  2872. enum
  2873. {
  2874. HEADER_CG_FISH_EVENT_SEND = 219,
  2875. HEADER_GC_FISH_EVENT_INFO = 223,
  2876. };
  2877.  
  2878. enum
  2879. {
  2880. FISH_EVENT_SUBHEADER_BOX_USE,
  2881. FISH_EVENT_SUBHEADER_SHAPE_ADD,
  2882. FISH_EVENT_SUBHEADER_GC_REWARD,
  2883. FISH_EVENT_SUBHEADER_GC_ENABLE,
  2884. };
  2885.  
  2886. typedef struct SPacketGCFishEvent {
  2887. BYTE bHeader;
  2888. BYTE bSubheader;
  2889. } TPacketCGFishEvent;
  2890.  
  2891. typedef struct SPacketGCFishEventInfo {
  2892. BYTE bHeader;
  2893. BYTE bSubheader;
  2894. DWORD dwFirstArg;
  2895. DWORD dwSecondArg;
  2896. } TPacketGCFishEventInfo;
  2897. #endif
  2898.  
  2899. #pragma pack()
  2900. #endif
  2901.  
Advertisement
Add Comment
Please, Sign In to add comment