Guest User

Untitled

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