Advertisement
Guest User

Untitled

a guest
Mar 4th, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 64.53 KB | None | 0 0
  1. #pragma once
  2.  
  3. #ifdef USE_AHNLAB_HACKSHIELD
  4. #include "Hackshield.h"
  5. #include METIN2HS_INCLUDE_ANTICPXSVR
  6. #else
  7. #pragma pack(push) //±βΑΈ alignment ΐϊΐε
  8. #pragma pack(8)
  9.  
  10. #define ANTICPX_TRANS_BUFFER_MAX 400
  11.  
  12. typedef struct _AHNHS_TRANS_BUFFER
  13. {
  14. unsigned char byBuffer[ANTICPX_TRANS_BUFFER_MAX/* ΌΫΌφ½Ε ΖΠΕ¶ΐΗ ΓΦ΄λ Ε©±β */];
  15. unsigned short nLength;
  16. } AHNHS_TRANS_BUFFER, *PAHNHS_TRANS_BUFFER;
  17.  
  18. #pragma pack(pop) // ±βΑΈ alignment ΊΉ±Έ.
  19. #endif /* !USE_AHNLAB_HACKSHIELD */
  20.  
  21. #include "../gamelib/RaceData.h"
  22.  
  23. typedef BYTE TPacketHeader;
  24.  
  25. enum
  26. {
  27. /////////////////////////////////////////////////
  28. // To Server
  29. // HEADER_BLANK is the not use(for future use)
  30. HEADER_CG_HANDSHAKE = 0xff,
  31. HEADER_CG_PONG = 0xfe,
  32. HEADER_CG_TIME_SYNC = 0xfc,
  33. HEADER_CG_KEY_AGREEMENT = 0xfb, // _IMPROVED_PACKET_ENCRYPTION_
  34.  
  35. HEADER_CG_LOGIN = 1,
  36. HEADER_CG_ATTACK = 2,
  37. HEADER_CG_CHAT = 3,
  38. HEADER_CG_CHARACTER_CREATE = 4,
  39. HEADER_CG_CHARACTER_DELETE = 5,
  40. HEADER_CG_CHARACTER_SELECT = 6,
  41. HEADER_CG_MOVE = 7,
  42. HEADER_CG_SYNC_POSITION = 8,
  43. HEADER_CG_DIRECT_ENTER = 9,
  44. HEADER_CG_ENTERGAME = 10,
  45.  
  46. HEADER_CG_ITEM_USE = 11,
  47. HEADER_CG_ITEM_DROP = 12,
  48. HEADER_CG_ITEM_MOVE = 13,
  49. HEADER_CG_HIT = 14,
  50. HEADER_CG_ITEM_PICKUP = 15,
  51.  
  52. HEADER_CG_QUICKSLOT_ADD = 16,
  53. HEADER_CG_QUICKSLOT_DEL = 17,
  54. HEADER_CG_QUICKSLOT_SWAP = 18,
  55. HEADER_CG_WHISPER = 19,
  56. HEADER_CG_ITEM_DROP2 = 20,
  57.  
  58. HEADER_CG_GUILD_BUILDING = 21,
  59.  
  60. HEADER_CG_ON_CLICK = 26,
  61. HEADER_CG_EXCHANGE = 27,
  62. HEADER_CG_CHARACTER_POSITION = 28,
  63. HEADER_CG_SCRIPT_ANSWER = 29,
  64. HEADER_CG_QUEST_INPUT_STRING = 30,
  65. HEADER_CG_QUEST_CONFIRM = 31,
  66.  
  67. HEADER_CG_SHOP = 50,
  68. HEADER_CG_FLY_TARGETING = 51,
  69. HEADER_CG_USE_SKILL = 52,
  70. HEADER_CG_ADD_FLY_TARGETING = 53,
  71. HEADER_CG_SHOOT = 54,
  72. HEADER_CG_MYSHOP = 55,
  73.  
  74. HEADER_CG_ITEM_USE_TO_ITEM = 60,
  75. HEADER_CG_TARGET = 61,
  76.  
  77. HEADER_CG_TEXT = 64, // @ 로 시작되면 텍스트를 파싱한다.
  78. HEADER_CG_WARP = 65,
  79. HEADER_CG_SCRIPT_BUTTON = 66,
  80. HEADER_CG_MESSENGER = 67,
  81.  
  82. HEADER_CG_MALL_CHECKOUT = 69,
  83. HEADER_CG_SAFEBOX_CHECKIN = 70, // 아이템을 창고에 넣†š는다.
  84. HEADER_CG_SAFEBOX_CHECKOUT = 71, // 아이템을 창고로 부터 빼온다.
  85.  
  86. HEADER_CG_PARTY_INVITE = 72,
  87. HEADER_CG_PARTY_INVITE_ANSWER = 73,
  88. HEADER_CG_PARTY_REMOVE = 74,
  89. HEADER_CG_PARTY_SET_STATE = 75,
  90. HEADER_CG_PARTY_USE_SKILL = 76,
  91. HEADER_CG_SAFEBOX_ITEM_MOVE = 77,
  92. HEADER_CG_PARTY_PARAMETER = 78,
  93.  
  94. HEADER_CG_GUILD = 80,
  95. HEADER_CG_ANSWER_MAKE_GUILD = 81,
  96.  
  97. HEADER_CG_FISHING = 82,
  98.  
  99. HEADER_CG_ITEM_GIVE = 83,
  100.  
  101. HEADER_CG_EMPIRE = 90,
  102.  
  103. HEADER_CG_REFINE = 96,
  104.  
  105. HEADER_CG_MARK_LOGIN = 100,
  106. HEADER_CG_MARK_CRCLIST = 101,
  107. HEADER_CG_MARK_UPLOAD = 102,
  108. HEADER_CG_MARK_IDXLIST = 104,
  109.  
  110. HEADER_CG_HACK = 105,
  111. HEADER_CG_CHANGE_NAME = 106,
  112. HEADER_CG_SMS = 107,
  113. HEADER_CG_CHINA_MATRIX_CARD = 108,
  114. HEADER_CG_LOGIN2 = 109,
  115. HEADER_CG_DUNGEON = 110,
  116. HEADER_CG_LOGIN3 = 111,
  117.  
  118. HEADER_CG_GUILD_SYMBOL_UPLOAD = 112,
  119. HEADER_CG_SYMBOL_CRC = 113,
  120.  
  121. // SCRIPT_SELECT_ITEM
  122. HEADER_CG_SCRIPT_SELECT_ITEM = 114,
  123. // END_OF_SCRIPT_SELECT_ITEM
  124.  
  125. HEADER_CG_LOGIN5_OPENID = 116, //OpenID : 클라이언트로부터 OpenID 인증키를 받는다.
  126.  
  127. // CMD-to-Packet
  128. HEADER_CG_RESTART = 117,
  129. // END OF CMD-to-Packet
  130.  
  131. HEADER_CG_RUNUP_MATRIX_ANSWER = 201,
  132. HEADER_CG_NEWCIBN_PASSPOD_ANSWER = 202,
  133. HEADER_CG_XTRAP_ACK = 204,
  134. HEADER_CG_DRAGON_SOUL_REFINE = 205,
  135. HEADER_CG_STATE_CHECKER = 206,
  136.  
  137. HEADER_CG_CLIENT_VERSION = 0xfd,
  138. HEADER_CG_CLIENT_VERSION2 = 0xf1,
  139.  
  140. /////////////////////////////////////////////////
  141. // From Server
  142.  
  143. HEADER_GC_KEY_AGREEMENT_COMPLETED = 0xfa, // _IMPROVED_PACKET_ENCRYPTION_
  144. HEADER_GC_KEY_AGREEMENT = 0xfb, // _IMPROVED_PACKET_ENCRYPTION_
  145. HEADER_GC_TIME_SYNC = 0xfc,
  146. HEADER_GC_PHASE = 0xfd,
  147. HEADER_GC_BINDUDP = 0xfe,
  148. HEADER_GC_HANDSHAKE = 0xff,
  149.  
  150. HEADER_GC_CHARACTER_ADD = 1,
  151. HEADER_GC_CHARACTER_DEL = 2,
  152. HEADER_GC_MOVE = 3,
  153. HEADER_GC_CHAT = 4,
  154. HEADER_GC_SYNC_POSITION = 5,
  155.  
  156. HEADER_GC_LOGIN_SUCCESS = 6,
  157. HEADER_GC_LOGIN_FAILURE = 7,
  158.  
  159. HEADER_GC_CHARACTER_CREATE_SUCCESS = 8,
  160. HEADER_GC_CHARACTER_CREATE_FAILURE = 9,
  161. HEADER_GC_CHARACTER_DELETE_SUCCESS = 10,
  162. HEADER_GC_CHARACTER_DELETE_WRONG_SOCIAL_ID = 11,
  163.  
  164. HEADER_GC_ATTACK = 12,
  165. HEADER_GC_STUN = 13,
  166. HEADER_GC_DEAD = 14,
  167.  
  168. HEADER_GC_MAIN_CHARACTER_OLD = 15,
  169. HEADER_GC_CHARACTER_POINTS = 16,
  170. HEADER_GC_CHARACTER_POINT_CHANGE = 17,
  171. HEADER_GC_CHANGE_SPEED = 18,
  172. HEADER_GC_CHARACTER_UPDATE = 19,
  173.  
  174. HEADER_GC_ITEM_DEL = 20,
  175. HEADER_GC_ITEM_SET = 21,
  176. HEADER_GC_ITEM_USE = 22,
  177. HEADER_GC_ITEM_DROP = 23,
  178. HEADER_GC_CHARACTER_UPDATE_NEW = 24,
  179. HEADER_GC_ITEM_UPDATE = 25,
  180.  
  181. HEADER_GC_ITEM_GROUND_ADD = 26,
  182. HEADER_GC_ITEM_GROUND_DEL = 27,
  183.  
  184. HEADER_GC_QUICKSLOT_ADD = 28,
  185. HEADER_GC_QUICKSLOT_DEL = 29,
  186. HEADER_GC_QUICKSLOT_SWAP = 30,
  187.  
  188. HEADER_GC_ITEM_OWNERSHIP = 31,
  189. HEADER_GC_LOGIN_SUCCESS_NEWSLOT = 32,
  190.  
  191. HEADER_GC_WHISPER = 34,
  192. HEADER_GC_ITEM_SET2 = 35,
  193. HEADER_GC_MOTION = 36,
  194. HEADER_GC_PARTS = 37,
  195.  
  196. HEADER_GC_SHOP = 38,
  197. HEADER_GC_SHOP_SIGN = 39,
  198.  
  199. HEADER_GC_DUEL_START = 40,
  200. HEADER_GC_PVP = 41,
  201. HEADER_GC_EXCHANGE = 42,
  202. HEADER_GC_CHARACTER_POSITION = 43,
  203.  
  204. HEADER_GC_PING = 44,
  205. HEADER_GC_SCRIPT = 45,
  206. HEADER_GC_QUEST_CONFIRM = 46,
  207.  
  208. HEADER_GC_MOUNT = 61,
  209. HEADER_GC_OWNERSHIP = 62,
  210. HEADER_GC_TARGET = 63,
  211.  
  212. HEADER_GC_WARP = 65,
  213.  
  214. HEADER_GC_ADD_FLY_TARGETING = 69,
  215. HEADER_GC_CREATE_FLY = 70,
  216. HEADER_GC_FLY_TARGETING = 71,
  217. HEADER_GC_SKILL_LEVEL_OLD = 72,
  218. HEADER_GC_SKILL_COOLTIME_END = 73,
  219. HEADER_GC_MESSENGER = 74,
  220. HEADER_GC_GUILD = 75,
  221. HEADER_GC_SKILL_LEVEL = 76,
  222.  
  223. HEADER_GC_PARTY_INVITE = 77,
  224. HEADER_GC_PARTY_ADD = 78,
  225. HEADER_GC_PARTY_UPDATE = 79,
  226. HEADER_GC_PARTY_REMOVE = 80,
  227. HEADER_GC_QUEST_INFO = 81,
  228. HEADER_GC_REQUEST_MAKE_GUILD = 82,
  229. HEADER_GC_PARTY_PARAMETER = 83,
  230. HEADER_GC_SAFEBOX_MONEY_CHANGE = 84,
  231. HEADER_GC_SAFEBOX_SET = 85,
  232. HEADER_GC_SAFEBOX_DEL = 86,
  233. HEADER_GC_SAFEBOX_WRONG_PASSWORD = 87,
  234. HEADER_GC_SAFEBOX_SIZE = 88,
  235.  
  236. HEADER_GC_FISHING = 89,
  237.  
  238. HEADER_GC_EMPIRE = 90,
  239.  
  240. HEADER_GC_PARTY_LINK = 91,
  241. HEADER_GC_PARTY_UNLINK = 92,
  242.  
  243. HEADER_GC_REFINE_INFORMATION_OLD = 95,
  244. HEADER_GC_OBSERVER_ADD = 96,
  245. HEADER_GC_OBSERVER_REMOVE = 97,
  246. HEADER_GC_OBSERVER_MOVE = 98,
  247.  
  248. HEADER_GC_VIEW_EQUIP = 99,
  249.  
  250. HEADER_GC_MARK_BLOCK = 100,
  251. HEADER_GC_MARK_DIFF_DATA = 101,
  252. HEADER_GC_MARK_IDXLIST = 102,
  253. HEADER_GC_MAIN_CHARACTER2_EMPIRE = 103,
  254.  
  255. HEADER_GC_TIME = 106,
  256. HEADER_GC_CHANGE_NAME = 107,
  257.  
  258. HEADER_GC_DUNGEON = 110,
  259.  
  260. HEADER_GC_WALK_MODE = 111,
  261. HEADER_GC_SKILL_GROUP = 112,
  262. HEADER_GC_MAIN_CHARACTER = 113,
  263.  
  264. // HEADER_GC_USE_POTION = 114,
  265. HEADER_GC_SEPCIAL_EFFECT = 114,
  266.  
  267. HEADER_GC_NPC_POSITION = 115,
  268. HEADER_GC_CHINA_MATRIX_CARD = 116,
  269. HEADER_GC_CHARACTER_UPDATE2 = 117,
  270. HEADER_GC_LOGIN_KEY = 118,
  271. HEADER_GC_REFINE_INFORMATION = 119,
  272. HEADER_GC_CHARACTER_ADD2 = 120,
  273. HEADER_GC_CHANNEL = 121,
  274. HEADER_GC_MALL_OPEN = 122,
  275.  
  276. // 122 HEADER_GC_MALL_OPEN
  277. HEADER_GC_TARGET_UPDATE = 123,
  278. HEADER_GC_TARGET_DELETE = 124,
  279. HEADER_GC_TARGET_CREATE = 125,
  280.  
  281. HEADER_GC_AFFECT_ADD = 126,
  282. HEADER_GC_AFFECT_REMOVE = 127,
  283.  
  284. HEADER_GC_MALL_SET = 128,
  285. HEADER_GC_MALL_DEL = 129,
  286.  
  287. HEADER_GC_LAND_LIST = 130,
  288. HEADER_GC_LOVER_INFO = 131,
  289. HEADER_GC_LOVE_POINT_UPDATE = 132,
  290.  
  291. HEADER_GC_SYMBOL_DATA = 133,
  292.  
  293. // MINING
  294. HEADER_GC_DIG_MOTION = 134,
  295. // END_OF_MINING
  296.  
  297. HEADER_GC_DAMAGE_INFO = 135,
  298. HEADER_GC_CHAR_ADDITIONAL_INFO = 136,
  299.  
  300. // SUPPORT_BGM
  301. HEADER_GC_MAIN_CHARACTER3_BGM = 137,
  302. HEADER_GC_MAIN_CHARACTER4_BGM_VOL = 138,
  303. // END_OF_SUPPORT_BGM
  304.  
  305. HEADER_GC_AUTH_SUCCESS = 150,
  306.  
  307. HEADER_GC_PANAMA_PACK = 151,
  308.  
  309. //HYBRID CRYPT
  310. HEADER_GC_HYBRIDCRYPT_KEYS = 152,
  311. HEADER_GC_HYBRIDCRYPT_SDB = 153, // SDB means Supplmentary Data Blocks
  312. //HYBRID CRYPT
  313.  
  314. HEADER_GC_AUTH_SUCCESS_OPENID = 154,
  315.  
  316. // ROULETTE
  317. HEADER_GC_ROULETTE = 200,
  318. // END_ROULETTE
  319.  
  320. HEADER_GC_RUNUP_MATRIX_QUIZ = 201,
  321. HEADER_GC_NEWCIBN_PASSPOD_REQUEST = 202,
  322. HEADER_GC_NEWCIBN_PASSPOD_FAILURE = 203,
  323. HEADER_GC_XTRAP_CS1_REQUEST = 205,
  324. HEADER_GC_HS_REQUEST = 207, // Origially it's 204 on devel branch
  325. HEADER_GC_SPECIFIC_EFFECT = 208,
  326.  
  327. HEADER_GC_DRAGON_SOUL_REFINE = 209,
  328. HEADER_GC_RESPOND_CHANNELSTATUS = 210,
  329.  
  330. /////////////////////////////////////////////////
  331. // Client To Client for UDP
  332. /*
  333. HEADER_CC_STATE_WAITING = 1,
  334. HEADER_CC_STATE_WALKING = 2,
  335. HEADER_CC_STATE_GOING = 3,
  336. HEADER_CC_EVENT_NORMAL_ATTACKING = 4,
  337. HEADER_CC_EVENT_COMBO_ATTACKING = 5,
  338. HEADER_CC_EVENT_HIT = 6,
  339. */
  340. };
  341.  
  342. enum
  343. {
  344. ID_MAX_NUM = 30,
  345. PASS_MAX_NUM = 16,
  346. CHAT_MAX_NUM = 128,
  347. PATH_NODE_MAX_NUM = 64,
  348. SHOP_SIGN_MAX_LEN = 32,
  349.  
  350. PLAYER_PER_ACCOUNT3 = 3,
  351. PLAYER_PER_ACCOUNT4 = 4,
  352.  
  353. PLAYER_ITEM_SLOT_MAX_NUM = 20, // ΗΓ·΅ΐΜΎξΐΗ ½½·Τ΄η µιΎξ°΅΄Β °ΉΌφ.
  354.  
  355. QUICKSLOT_MAX_LINE = 4,
  356. QUICKSLOT_MAX_COUNT_PER_LINE = 8, // Ε¬¶σΐΜΎπΖ® ΐΣΐΗ °αΑ¤°
  357. QUICKSLOT_MAX_COUNT = QUICKSLOT_MAX_LINE * QUICKSLOT_MAX_COUNT_PER_LINE,
  358.  
  359. QUICKSLOT_MAX_NUM = 36, // Ό­ΉφΏΝ ΈΒΓηΑ® ΐΦ΄Β °
  360.  
  361. SHOP_HOST_ITEM_MAX_NUM = 40,
  362.  
  363. METIN_SOCKET_COUNT = 6,
  364.  
  365. PARTY_AFFECT_SLOT_MAX_NUM = 7,
  366.  
  367. GUILD_GRADE_NAME_MAX_LEN = 8,
  368. GUILD_NAME_MAX_LEN = 12,
  369. GUILD_GRADE_COUNT = 15,
  370. GULID_COMMENT_MAX_LEN = 50,
  371.  
  372. MARK_CRC_NUM = 8*8,
  373. MARK_DATA_SIZE = 16*12,
  374. SYMBOL_DATA_SIZE = 128*256,
  375. QUEST_INPUT_STRING_MAX_NUM = 64,
  376.  
  377. PRIVATE_CODE_LENGTH = 8,
  378.  
  379. REFINE_MATERIAL_MAX_NUM = 5,
  380.  
  381. CHINA_MATRIX_ANSWER_MAX_LEN = 8,
  382.  
  383. RUNUP_MATRIX_QUIZ_MAX_LEN = 8,
  384. RUNUP_MATRIX_ANSWER_MAX_LEN = 4,
  385. NEWCIBN_PASSPOD_ANSWER_MAX_LEN = 8,
  386. NEWCIBN_PASSPOD_FAILURE_MAX_LEN = 128,
  387.  
  388. WEAR_MAX_NUM = 11,
  389.  
  390. OPENID_AUTHKEY_LEN = 32,
  391.  
  392. SHOP_TAB_NAME_MAX = 32,
  393. SHOP_TAB_COUNT_MAX = 3,
  394. };
  395.  
  396. #pragma pack(push)
  397. #pragma pack(1)
  398.  
  399. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  400. // Mark
  401. typedef struct command_mark_login
  402. {
  403. BYTE header;
  404. DWORD handle;
  405. DWORD random_key;
  406. } TPacketCGMarkLogin;
  407.  
  408. typedef struct command_mark_upload
  409. {
  410. BYTE header;
  411. DWORD gid;
  412. BYTE image[16*12*4];
  413. } TPacketCGMarkUpload;
  414.  
  415. typedef struct command_mark_idxlist
  416. {
  417. BYTE header;
  418. } TPacketCGMarkIDXList;
  419.  
  420. typedef struct command_mark_crclist
  421. {
  422. BYTE header;
  423. BYTE imgIdx;
  424. DWORD crclist[80];
  425. } TPacketCGMarkCRCList;
  426.  
  427. typedef struct packet_mark_idxlist
  428. {
  429. BYTE header;
  430. DWORD bufSize;
  431. WORD count;
  432. //µΪΏ΅ size * (WORD + WORD)ΈΈΕ­ µ¥ΐΜΕΝ ΊΩΐ½
  433. } TPacketGCMarkIDXList;
  434.  
  435. typedef struct packet_mark_block
  436. {
  437. BYTE header;
  438. DWORD bufSize;
  439. BYTE imgIdx;
  440. DWORD count;
  441. // µΪΏ΅ 64 x 48 x ΗΘΌΏΕ©±β(4ΉΩΐΜΖ®) = 12288ΈΈΕ­ µ¥ΐΜΕΝ ΊΩΐ½
  442. } TPacketGCMarkBlock;
  443.  
  444. typedef struct command_symbol_upload
  445. {
  446. BYTE header;
  447. WORD size;
  448. DWORD handle;
  449. } TPacketCGSymbolUpload;
  450.  
  451. typedef struct command_symbol_crc
  452. {
  453. BYTE header;
  454. DWORD dwGuildID;
  455. DWORD dwCRC;
  456. DWORD dwSize;
  457. } TPacketCGSymbolCRC;
  458.  
  459. typedef struct packet_symbol_data
  460. {
  461. BYTE header;
  462. WORD size;
  463. DWORD guild_id;
  464. } TPacketGCGuildSymbolData;
  465.  
  466. //
  467. //
  468. //
  469. typedef struct packet_observer_add
  470. {
  471. BYTE header;
  472. DWORD vid;
  473. WORD x;
  474. WORD y;
  475. } TPacketGCObserverAdd;
  476.  
  477. typedef struct packet_observer_move
  478. {
  479. BYTE header;
  480. DWORD vid;
  481. WORD x;
  482. WORD y;
  483. } TPacketGCObserverMove;
  484.  
  485.  
  486. typedef struct packet_observer_remove
  487. {
  488. BYTE header;
  489. DWORD vid;
  490. } TPacketGCObserverRemove;
  491.  
  492.  
  493. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  494. // To Server
  495.  
  496. typedef struct command_checkin
  497. {
  498. BYTE header;
  499. char name[ID_MAX_NUM+1];
  500. char pwd[PASS_MAX_NUM+1];
  501. } TPacketCGCheckin;
  502.  
  503. typedef struct command_login
  504. {
  505. BYTE header;
  506. char name[ID_MAX_NUM + 1];
  507. char pwd[PASS_MAX_NUM + 1];
  508. } TPacketCGLogin;
  509.  
  510. // start - ±ΗΗΡ Ό­Ήφ ΑΆΌΣΐ» ΐ§ΗΡ ΖΠΕ¶µι
  511. typedef struct command_login2
  512. {
  513. BYTE header;
  514. char name[ID_MAX_NUM + 1];
  515. DWORD login_key;
  516. DWORD adwClientKey[4];
  517. } TPacketCGLogin2;
  518.  
  519. typedef struct command_login3
  520. {
  521. BYTE header;
  522. char name[ID_MAX_NUM + 1];
  523. char pwd[PASS_MAX_NUM + 1];
  524. DWORD adwClientKey[4];
  525. } TPacketCGLogin3;
  526.  
  527. typedef struct command_login5
  528. {
  529. BYTE header;
  530. char authKey[OPENID_AUTHKEY_LEN + 1];
  531. DWORD adwClientKey[4];
  532. } TPacketCGLogin5;
  533. // end - ±ΗΗΡ Ό­Ήφ ΑΆΌΣΐ» ΐ§ΗΡ ΖΠΕ¶µι
  534.  
  535. typedef struct command_direct_enter
  536. {
  537. BYTE bHeader;
  538. char login[ID_MAX_NUM + 1];
  539. char passwd[PASS_MAX_NUM + 1];
  540. BYTE index;
  541. } TPacketCGDirectEnter;
  542.  
  543. typedef struct command_player_select
  544. {
  545. BYTE header;
  546. BYTE player_index;
  547. } TPacketCGSelectCharacter;
  548.  
  549. typedef struct command_attack
  550. {
  551. BYTE header;
  552. BYTE bType; // °ψ°έ ΐ―Ηό
  553. DWORD dwVictimVID; // ΐϋ VID
  554. BYTE bCRCMagicCubeProcPiece;
  555. BYTE bCRCMagicCubeFilePiece;
  556. } TPacketCGAttack;
  557.  
  558. typedef struct command_chat
  559. {
  560. BYTE header;
  561. WORD length;
  562. BYTE type;
  563. } TPacketCGChat;
  564.  
  565. typedef struct command_whisper
  566. {
  567. BYTE bHeader;
  568. WORD wSize;
  569. char szNameTo[CHARACTER_NAME_MAX_LEN + 1];
  570. } TPacketCGWhisper;
  571.  
  572. typedef struct command_sms
  573. {
  574. BYTE bHeader;
  575. WORD wSize;
  576. char szNameTo[CHARACTER_NAME_MAX_LEN + 1];
  577. } TPacketCGSMS;
  578.  
  579. enum EBattleMode
  580. {
  581. BATTLEMODE_ATTACK = 0,
  582. BATTLEMODE_DEFENSE = 1,
  583. };
  584.  
  585. typedef struct command_EnterFrontGame
  586. {
  587. BYTE header;
  588. } TPacketCGEnterFrontGame;
  589.  
  590. typedef struct command_item_use
  591. {
  592. BYTE header;
  593. TItemPos pos;
  594. } TPacketCGItemUse;
  595.  
  596. typedef struct command_item_use_to_item
  597. {
  598. BYTE header;
  599. TItemPos source_pos;
  600. TItemPos target_pos;
  601. } TPacketCGItemUseToItem;
  602.  
  603. typedef struct command_item_drop
  604. {
  605. BYTE header;
  606. TItemPos pos;
  607. DWORD elk;
  608. } TPacketCGItemDrop;
  609.  
  610. typedef struct command_item_drop2
  611. {
  612. BYTE header;
  613. TItemPos pos;
  614. DWORD gold;
  615. BYTE count;
  616. } TPacketCGItemDrop2;
  617.  
  618. typedef struct command_item_move
  619. {
  620. BYTE header;
  621. TItemPos pos;
  622. TItemPos change_pos;
  623. BYTE num;
  624. } TPacketCGItemMove;
  625.  
  626. typedef struct command_hit
  627. {
  628. BYTE byHeader;
  629. int data;
  630. } TPacketCGHit;
  631.  
  632. typedef struct command_item_pickup
  633. {
  634. BYTE header;
  635. DWORD vid;
  636. } TPacketCGItemPickUp;
  637.  
  638. typedef struct command_quickslot_add
  639. {
  640. BYTE header;
  641. BYTE pos;
  642. TQuickSlot slot;
  643. }TPacketCGQuickSlotAdd;
  644.  
  645. typedef struct command_quickslot_del
  646. {
  647. BYTE header;
  648. BYTE pos;
  649. }TPacketCGQuickSlotDel;
  650.  
  651. typedef struct command_quickslot_swap
  652. {
  653. BYTE header;
  654. BYTE pos;
  655. BYTE change_pos;
  656. }TPacketCGQuickSlotSwap;
  657.  
  658. typedef struct command_set_building_mode
  659. {
  660. BYTE header;
  661. bool isBuildMode;
  662. } TPacketCGGuildBuilding;
  663.  
  664. typedef struct command_on_click
  665. {
  666. BYTE header;
  667. DWORD vid;
  668. } TPacketCGOnClick;
  669.  
  670.  
  671. enum
  672. {
  673. SHOP_SUBHEADER_CG_END,
  674. SHOP_SUBHEADER_CG_BUY,
  675. SHOP_SUBHEADER_CG_SELL,
  676. SHOP_SUBHEADER_CG_SELL2,
  677. };
  678.  
  679. typedef struct command_shop
  680. {
  681. BYTE header;
  682. BYTE subheader;
  683. } TPacketCGShop;
  684.  
  685. enum
  686. {
  687. EXCHANGE_SUBHEADER_CG_START, // arg1 == vid of target character
  688. EXCHANGE_SUBHEADER_CG_ITEM_ADD, // arg1 == position of item
  689. EXCHANGE_SUBHEADER_CG_ITEM_DEL, // arg1 == position of item
  690. EXCHANGE_SUBHEADER_CG_ELK_ADD, // arg1 == amount of elk
  691. EXCHANGE_SUBHEADER_CG_ACCEPT, // arg1 == not used
  692. EXCHANGE_SUBHEADER_CG_CANCEL, // arg1 == not used
  693. };
  694.  
  695. typedef struct command_exchange
  696. {
  697. BYTE header;
  698. BYTE subheader;
  699. DWORD arg1;
  700. BYTE arg2;
  701. TItemPos Pos;
  702. } TPacketCGExchange;
  703.  
  704. typedef struct command_position
  705. {
  706. BYTE header;
  707. BYTE position;
  708. } TPacketCGPosition;
  709.  
  710. typedef struct command_script_answer
  711. {
  712. BYTE header;
  713. BYTE answer;
  714. } TPacketCGScriptAnswer;
  715.  
  716. typedef struct command_script_button
  717. {
  718. BYTE header;
  719. unsigned int idx;
  720. } TPacketCGScriptButton;
  721.  
  722. typedef struct command_target
  723. {
  724. BYTE header;
  725. DWORD dwVID;
  726. } TPacketCGTarget;
  727.  
  728. typedef struct command_move
  729. {
  730. BYTE bHeader;
  731. BYTE bFunc;
  732. BYTE bArg;
  733. BYTE bRot;
  734. LONG lX;
  735. LONG lY;
  736. DWORD dwTime;
  737. } TPacketCGMove;
  738.  
  739. typedef struct command_sync_position_element
  740. {
  741. DWORD dwVID;
  742. long lX;
  743. long lY;
  744. } TPacketCGSyncPositionElement;
  745.  
  746. typedef struct command_sync_position
  747. {
  748. BYTE bHeader;
  749. WORD wSize;
  750. } TPacketCGSyncPosition;
  751.  
  752. typedef struct command_fly_targeting
  753. {
  754. BYTE bHeader;
  755. DWORD dwTargetVID;
  756. long lX;
  757. long lY;
  758. } TPacketCGFlyTargeting;
  759.  
  760. typedef struct packet_fly_targeting
  761. {
  762. BYTE bHeader;
  763. DWORD dwShooterVID;
  764. DWORD dwTargetVID;
  765. long lX;
  766. long lY;
  767. } TPacketGCFlyTargeting;
  768.  
  769. typedef struct packet_shoot
  770. {
  771. BYTE bHeader;
  772. BYTE bType;
  773. } TPacketCGShoot;
  774.  
  775. typedef struct command_warp
  776. {
  777. BYTE bHeader;
  778. } TPacketCGWarp;
  779.  
  780. enum
  781. {
  782. MESSENGER_SUBHEADER_GC_LIST,
  783. MESSENGER_SUBHEADER_GC_LOGIN,
  784. MESSENGER_SUBHEADER_GC_LOGOUT,
  785. MESSENGER_SUBHEADER_GC_INVITE,
  786. MESSENGER_SUBHEADER_GC_MOBILE,
  787. };
  788.  
  789. typedef struct packet_messenger
  790. {
  791. BYTE header;
  792. WORD size;
  793. BYTE subheader;
  794. } TPacketGCMessenger;
  795.  
  796. typedef struct packet_messenger_list_offline
  797. {
  798. BYTE connected; // always 0
  799. BYTE length;
  800. } TPacketGCMessengerListOffline;
  801.  
  802. enum
  803. {
  804. MESSENGER_CONNECTED_STATE_OFFLINE,
  805. MESSENGER_CONNECTED_STATE_ONLINE,
  806. MESSENGER_CONNECTED_STATE_MOBILE,
  807. };
  808.  
  809. typedef struct packet_messenger_list_online
  810. {
  811. BYTE connected;
  812. BYTE length;
  813. //BYTE length_char_name;
  814. } TPacketGCMessengerListOnline;
  815.  
  816. typedef struct packet_messenger_login
  817. {
  818. //BYTE length_login;
  819. //BYTE length_char_name;
  820. BYTE length;
  821. } TPacketGCMessengerLogin;
  822.  
  823. typedef struct packet_messenger_logout
  824. {
  825. BYTE length;
  826. } TPacketGCMessengerLogout;
  827.  
  828. enum
  829. {
  830. MESSENGER_SUBHEADER_CG_ADD_BY_VID,
  831. MESSENGER_SUBHEADER_CG_ADD_BY_NAME,
  832. MESSENGER_SUBHEADER_CG_REMOVE,
  833. };
  834.  
  835. typedef struct command_messenger
  836. {
  837. BYTE header;
  838. BYTE subheader;
  839. } TPacketCGMessenger;
  840.  
  841. typedef struct command_messenger_remove
  842. {
  843. BYTE length;
  844. } TPacketCGMessengerRemove;
  845.  
  846. enum
  847. {
  848. SAFEBOX_MONEY_STATE_SAVE,
  849. SAFEBOX_MONEY_STATE_WITHDRAW,
  850. };
  851.  
  852. typedef struct command_safebox_money
  853. {
  854. BYTE bHeader;
  855. BYTE bState;
  856. DWORD dwMoney;
  857. } TPacketCGSafeboxMoney;
  858.  
  859. typedef struct command_safebox_checkout
  860. {
  861. BYTE bHeader;
  862. BYTE bSafePos;
  863. TItemPos ItemPos;
  864. } TPacketCGSafeboxCheckout;
  865.  
  866. typedef struct command_safebox_checkin
  867. {
  868. BYTE bHeader;
  869. BYTE bSafePos;
  870. TItemPos ItemPos;
  871. } TPacketCGSafeboxCheckin;
  872.  
  873. typedef struct command_mall_checkout
  874. {
  875. BYTE bHeader;
  876. BYTE bMallPos;
  877. TItemPos ItemPos;
  878. } TPacketCGMallCheckout;
  879.  
  880. ///////////////////////////////////////////////////////////////////////////////////
  881. // Party
  882.  
  883. typedef struct command_use_skill
  884. {
  885. BYTE bHeader;
  886. DWORD dwVnum;
  887. DWORD dwTargetVID;
  888. } TPacketCGUseSkill;
  889.  
  890. typedef struct command_party_invite
  891. {
  892. BYTE header;
  893. DWORD vid;
  894. } TPacketCGPartyInvite;
  895.  
  896. typedef struct command_party_invite_answer
  897. {
  898. BYTE header;
  899. DWORD leader_pid;
  900. BYTE accept;
  901. } TPacketCGPartyInviteAnswer;
  902.  
  903. typedef struct command_party_remove
  904. {
  905. BYTE header;
  906. DWORD pid;
  907. } TPacketCGPartyRemove;
  908.  
  909. typedef struct command_party_set_state
  910. {
  911. BYTE byHeader;
  912. DWORD dwVID;
  913. BYTE byState;
  914. BYTE byFlag;
  915. } TPacketCGPartySetState;
  916.  
  917. typedef struct packet_party_link
  918. {
  919. BYTE header;
  920. DWORD pid;
  921. DWORD vid;
  922. } TPacketGCPartyLink;
  923.  
  924. typedef struct packet_party_unlink
  925. {
  926. BYTE header;
  927. DWORD pid;
  928. DWORD vid;
  929. } TPacketGCPartyUnlink;
  930.  
  931. typedef struct command_party_use_skill
  932. {
  933. BYTE byHeader;
  934. BYTE bySkillIndex;
  935. DWORD dwTargetVID;
  936. } TPacketCGPartyUseSkill;
  937.  
  938. enum
  939. {
  940. GUILD_SUBHEADER_CG_ADD_MEMBER,
  941. GUILD_SUBHEADER_CG_REMOVE_MEMBER,
  942. GUILD_SUBHEADER_CG_CHANGE_GRADE_NAME,
  943. GUILD_SUBHEADER_CG_CHANGE_GRADE_AUTHORITY,
  944. GUILD_SUBHEADER_CG_OFFER,
  945. GUILD_SUBHEADER_CG_POST_COMMENT,
  946. GUILD_SUBHEADER_CG_DELETE_COMMENT,
  947. GUILD_SUBHEADER_CG_REFRESH_COMMENT,
  948. GUILD_SUBHEADER_CG_CHANGE_MEMBER_GRADE,
  949. GUILD_SUBHEADER_CG_USE_SKILL,
  950. GUILD_SUBHEADER_CG_CHANGE_MEMBER_GENERAL,
  951. GUILD_SUBHEADER_CG_GUILD_INVITE_ANSWER,
  952. GUILD_SUBHEADER_CG_CHARGE_GSP,
  953. GUILD_SUBHEADER_CG_DEPOSIT_MONEY,
  954. GUILD_SUBHEADER_CG_WITHDRAW_MONEY,
  955. };
  956.  
  957. typedef struct command_guild
  958. {
  959. BYTE byHeader;
  960. BYTE bySubHeader;
  961. } TPacketCGGuild;
  962.  
  963. typedef struct command_guild_answer_make_guild
  964. {
  965. BYTE header;
  966. char guild_name[GUILD_NAME_MAX_LEN+1];
  967. } TPacketCGAnswerMakeGuild;
  968.  
  969. typedef struct command_give_item
  970. {
  971. BYTE byHeader;
  972. DWORD dwTargetVID;
  973. TItemPos ItemPos;
  974. BYTE byItemCount;
  975. } TPacketCGGiveItem;
  976.  
  977. typedef struct SPacketCGHack
  978. {
  979. BYTE bHeader;
  980. char szBuf[255 + 1];
  981. } TPacketCGHack;
  982.  
  983. typedef struct command_dungeon
  984. {
  985. BYTE bHeader;
  986. WORD size;
  987. } TPacketCGDungeon;
  988.  
  989. // Private Shop
  990. typedef struct SShopItemTable
  991. {
  992. DWORD vnum;
  993. BYTE count;
  994.  
  995. TItemPos pos; // PC »σΑ΅Ώ΅ΈΈ ΐΜΏλ
  996. DWORD price; // PC »σΑ΅Ώ΅ΈΈ ΐΜΏλ
  997. BYTE display_pos; // PC »σΑ΅Ώ΅ΈΈ ΐΜΏλ, ΊΈΐΟ ΐ§Δ΅.
  998. } TShopItemTable;
  999.  
  1000. typedef struct SPacketCGMyShop
  1001. {
  1002. BYTE bHeader;
  1003. char szSign[SHOP_SIGN_MAX_LEN + 1];
  1004. BYTE bCount; // count of TShopItemTable, max 39
  1005. } TPacketCGMyShop;
  1006.  
  1007. typedef struct SPacketCGRefine
  1008. {
  1009. BYTE header;
  1010. BYTE pos;
  1011. BYTE type;
  1012. } TPacketCGRefine;
  1013.  
  1014. typedef struct SPacketCGChangeName
  1015. {
  1016. BYTE header;
  1017. BYTE index;
  1018. char name[CHARACTER_NAME_MAX_LEN+1];
  1019. } TPacketCGChangeName;
  1020.  
  1021. typedef struct command_client_version
  1022. {
  1023. BYTE header;
  1024. char filename[32+1];
  1025. char timestamp[32+1];
  1026. } TPacketCGClientVersion;
  1027.  
  1028. typedef struct command_client_version2
  1029. {
  1030. BYTE header;
  1031. char filename[32+1];
  1032. char timestamp[32+1];
  1033. } TPacketCGClientVersion2;
  1034.  
  1035. typedef struct command_crc_report
  1036. {
  1037. BYTE header;
  1038. BYTE byPackMode;
  1039. DWORD dwBinaryCRC32;
  1040. DWORD dwProcessCRC32;
  1041. DWORD dwRootPackCRC32;
  1042. } TPacketCGCRCReport;
  1043.  
  1044. typedef struct command_china_matrix_card
  1045. {
  1046. BYTE bHeader;
  1047. char szAnswer[CHINA_MATRIX_ANSWER_MAX_LEN + 1];
  1048. } TPacketCGChinaMatrixCard;
  1049.  
  1050. typedef struct command_runup_matrix_answer
  1051. {
  1052. BYTE bHeader;
  1053. char szAnswer[RUNUP_MATRIX_ANSWER_MAX_LEN + 1];
  1054. } TPacketCGRunupMatrixAnswer;
  1055.  
  1056. typedef struct command_newcibn_passpod_answer
  1057. {
  1058. BYTE bHeader;
  1059. char szAnswer[NEWCIBN_PASSPOD_ANSWER_MAX_LEN + 1];
  1060. } TPacketCGNEWCIBNPasspodAnswer;
  1061.  
  1062. enum EPartyExpDistributionType
  1063. {
  1064. PARTY_EXP_DISTRIBUTION_NON_PARITY,
  1065. PARTY_EXP_DISTRIBUTION_PARITY,
  1066. };
  1067.  
  1068. typedef struct command_party_parameter
  1069. {
  1070. BYTE bHeader;
  1071. BYTE bDistributeMode;
  1072. } TPacketCGPartyParameter;
  1073.  
  1074. typedef struct command_quest_input_string
  1075. {
  1076. BYTE bHeader;
  1077. char szString[QUEST_INPUT_STRING_MAX_NUM+1];
  1078. } TPacketCGQuestInputString;
  1079.  
  1080. typedef struct command_quest_confirm
  1081. {
  1082. BYTE header;
  1083. BYTE answer;
  1084. DWORD requestPID;
  1085. } TPacketCGQuestConfirm;
  1086.  
  1087. typedef struct command_script_select_item
  1088. {
  1089. BYTE header;
  1090. DWORD selection;
  1091. } TPacketCGScriptSelectItem;
  1092.  
  1093. // CMD-to-Packet
  1094. typedef struct command_restart
  1095. {
  1096. BYTE header;
  1097. bool bTown;
  1098. } TPacketCGRestart;
  1099. // END OF CMD-to-Packet
  1100.  
  1101. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1102. // From Server
  1103. enum EPhase
  1104. {
  1105. PHASE_CLOSE, // ²χ±β΄Β »σΕΒ (¶Η΄Β ²χ±β ΐό »σΕΒ)
  1106. PHASE_HANDSHAKE, // ΎΗΌφ..;;
  1107. PHASE_LOGIN, // ·Ξ±ΧΐΞ Αί
  1108. PHASE_SELECT, // Δ³Έ―ΕΝ Ό±ΕΓ Θ­Έι
  1109. PHASE_LOADING, // Ό±ΕΓ ΘΔ ·Ξµω Θ­Έι
  1110. PHASE_GAME, // °ΤΐΣ Θ­Έι
  1111. PHASE_DEAD, // ΑΧΎϊΐ» ¶§.. (°ΤΐΣ ΎΘΏ΅ ΐΦ΄Β °ΝΐΟ Όφµµ..)
  1112.  
  1113. PHASE_DBCLIENT_CONNECTING, // Ό­ΉφΏλ
  1114. PHASE_DBCLIENT, // Ό­ΉφΏλ
  1115. PHASE_P2P, // Ό­ΉφΏλ
  1116. PHASE_AUTH, // ·Ξ±ΧΐΞ ΐΞΑυ Ώλ
  1117. };
  1118.  
  1119. typedef struct packet_phase
  1120. {
  1121. BYTE header;
  1122. BYTE phase;
  1123. } TPacketGCPhase;
  1124.  
  1125. typedef struct packet_blank // °ψΉιΖΠΕ¶.
  1126. {
  1127. BYTE header;
  1128. } TPacketGCBlank;
  1129.  
  1130. typedef struct packet_blank_dynamic
  1131. {
  1132. BYTE header;
  1133. WORD size;
  1134. } TPacketGCBlankDynamic;
  1135.  
  1136. typedef struct packet_header_handshake
  1137. {
  1138. BYTE header;
  1139. DWORD dwHandshake;
  1140. DWORD dwTime;
  1141. LONG lDelta;
  1142. } TPacketGCHandshake;
  1143.  
  1144. typedef struct packet_header_bindudp
  1145. {
  1146. BYTE header;
  1147. DWORD addr;
  1148. WORD port;
  1149. } TPacketGCBindUDP;
  1150.  
  1151. typedef struct packet_header_dynamic_size
  1152. {
  1153. BYTE header;
  1154. WORD size;
  1155. } TDynamicSizePacketHeader;
  1156.  
  1157. typedef struct SSimplePlayerInformation
  1158. {
  1159. DWORD dwID;
  1160. char szName[CHARACTER_NAME_MAX_LEN + 1];
  1161. BYTE byJob;
  1162. BYTE byLevel;
  1163. DWORD dwPlayMinutes;
  1164. BYTE byST, byHT, byDX, byIQ;
  1165. // WORD wParts[CRaceData::PART_MAX_NUM];
  1166. WORD wMainPart;
  1167. BYTE bChangeName;
  1168. WORD wHairPart;
  1169. BYTE bDummy[4];
  1170. long x, y;
  1171. LONG lAddr;
  1172. WORD wPort;
  1173. BYTE bySkillGroup;
  1174. } TSimplePlayerInformation;
  1175.  
  1176. typedef struct packet_login_success3
  1177. {
  1178. BYTE header;
  1179. TSimplePlayerInformation akSimplePlayerInformation[PLAYER_PER_ACCOUNT3];
  1180. DWORD guild_id[PLAYER_PER_ACCOUNT3];
  1181. char guild_name[PLAYER_PER_ACCOUNT3][GUILD_NAME_MAX_LEN+1];
  1182. DWORD handle;
  1183. DWORD random_key;
  1184. } TPacketGCLoginSuccess3;
  1185.  
  1186. typedef struct packet_login_success4
  1187. {
  1188. BYTE header;
  1189. TSimplePlayerInformation akSimplePlayerInformation[PLAYER_PER_ACCOUNT4];
  1190. DWORD guild_id[PLAYER_PER_ACCOUNT4];
  1191. char guild_name[PLAYER_PER_ACCOUNT4][GUILD_NAME_MAX_LEN+1];
  1192. DWORD handle;
  1193. DWORD random_key;
  1194. } TPacketGCLoginSuccess4;
  1195.  
  1196.  
  1197. enum { LOGIN_STATUS_MAX_LEN = 8 };
  1198. typedef struct packet_login_failure
  1199. {
  1200. BYTE header;
  1201. char szStatus[LOGIN_STATUS_MAX_LEN + 1];
  1202. } TPacketGCLoginFailure;
  1203.  
  1204. typedef struct command_player_create
  1205. {
  1206. BYTE header;
  1207. BYTE index;
  1208. char name[CHARACTER_NAME_MAX_LEN + 1];
  1209. WORD job;
  1210. BYTE shape;
  1211. BYTE CON;
  1212. BYTE INT;
  1213. BYTE STR;
  1214. BYTE DEX;
  1215. } TPacketCGCreateCharacter;
  1216.  
  1217. typedef struct command_player_create_success
  1218. {
  1219. BYTE header;
  1220. BYTE bAccountCharacterSlot;
  1221. TSimplePlayerInformation kSimplePlayerInfomation;
  1222. } TPacketGCPlayerCreateSuccess;
  1223.  
  1224. typedef struct command_create_failure
  1225. {
  1226. BYTE header;
  1227. BYTE bType;
  1228. } TPacketGCCreateFailure;
  1229.  
  1230. typedef struct command_player_delete
  1231. {
  1232. BYTE header;
  1233. BYTE index;
  1234. char szPrivateCode[PRIVATE_CODE_LENGTH];
  1235. } TPacketCGDestroyCharacter;
  1236.  
  1237. typedef struct packet_player_delete_success
  1238. {
  1239. BYTE header;
  1240. BYTE account_index;
  1241. } TPacketGCDestroyCharacterSuccess;
  1242.  
  1243. enum
  1244. {
  1245. ADD_CHARACTER_STATE_DEAD = (1 << 0),
  1246. ADD_CHARACTER_STATE_SPAWN = (1 << 1),
  1247. ADD_CHARACTER_STATE_GUNGON = (1 << 2),
  1248. ADD_CHARACTER_STATE_KILLER = (1 << 3),
  1249. ADD_CHARACTER_STATE_PARTY = (1 << 4),
  1250. };
  1251.  
  1252. enum EPKModes
  1253. {
  1254. PK_MODE_PEACE,
  1255. PK_MODE_REVENGE,
  1256. PK_MODE_FREE,
  1257. PK_MODE_PROTECT,
  1258. PK_MODE_GUILD,
  1259. PK_MODE_MAX_NUM,
  1260. };
  1261.  
  1262. // 2004.11.20.myevan.CRaceData::PART_MAX_NUM »ηΏλΎΘΗΟ°Τ ΌφΑ¤ - Ό­ΉφΏ΅Ό­ »ηΏλΗϴ°Ͱϊ ΐΟΔ΅ΗΟΑφ ΎΚΐ½
  1263. enum ECharacterEquipmentPart
  1264. {
  1265. CHR_EQUIPPART_ARMOR,
  1266. CHR_EQUIPPART_WEAPON,
  1267. CHR_EQUIPPART_HEAD,
  1268. CHR_EQUIPPART_HAIR,
  1269.  
  1270. CHR_EQUIPPART_NUM,
  1271. };
  1272.  
  1273. typedef struct packet_char_additional_info
  1274. {
  1275. BYTE header;
  1276. DWORD dwVID;
  1277. char name[CHARACTER_NAME_MAX_LEN + 1];
  1278. WORD awPart[CHR_EQUIPPART_NUM];
  1279. BYTE bEmpire;
  1280. DWORD dwGuildID;
  1281. DWORD dwLevel;
  1282. short sAlignment; //Ό±ΎΗΔ΅
  1283. BYTE bPKMode;
  1284. DWORD dwMountVnum;
  1285. } TPacketGCCharacterAdditionalInfo;
  1286.  
  1287. typedef struct packet_add_char
  1288. {
  1289. BYTE header;
  1290.  
  1291. DWORD dwVID;
  1292.  
  1293. //char name[CHARACTER_NAME_MAX_LEN + 1];
  1294.  
  1295. float angle;
  1296. long x;
  1297. long y;
  1298. long z;
  1299.  
  1300. BYTE bType;
  1301. WORD wRaceNum;
  1302. //WORD awPart[CHR_EQUIPPART_NUM];
  1303. BYTE bMovingSpeed;
  1304. BYTE bAttackSpeed;
  1305.  
  1306. BYTE bStateFlag;
  1307. DWORD dwAffectFlag[2]; // ??
  1308. //BYTE bEmpire;
  1309. //DWORD dwGuild;
  1310. //short sAlignment;
  1311. //BYTE bPKMode;
  1312. //DWORD dwMountVnum;
  1313. } TPacketGCCharacterAdd;
  1314.  
  1315. typedef struct packet_add_char2
  1316. {
  1317. BYTE header;
  1318.  
  1319. DWORD dwVID;
  1320.  
  1321. char name[CHARACTER_NAME_MAX_LEN + 1];
  1322.  
  1323. float angle;
  1324. long x;
  1325. long y;
  1326. long z;
  1327.  
  1328. BYTE bType;
  1329. WORD wRaceNum;
  1330. WORD awPart[CHR_EQUIPPART_NUM];
  1331. BYTE bMovingSpeed;
  1332. BYTE bAttackSpeed;
  1333.  
  1334. BYTE bStateFlag;
  1335. DWORD dwAffectFlag[2]; // ??
  1336. BYTE bEmpire;
  1337.  
  1338. DWORD dwGuild;
  1339. //DWORD dwLevel; // RTLv
  1340. short sAlignment;
  1341. BYTE bPKMode;
  1342. DWORD dwMountVnum;
  1343. } TPacketGCCharacterAdd2;
  1344.  
  1345. typedef struct packet_update_char
  1346. {
  1347. BYTE header;
  1348. DWORD dwVID;
  1349.  
  1350. WORD awPart[CHR_EQUIPPART_NUM];
  1351. BYTE bMovingSpeed;
  1352. BYTE bAttackSpeed;
  1353.  
  1354. BYTE bStateFlag;
  1355. DWORD dwAffectFlag[2];
  1356.  
  1357. DWORD dwGuildID;
  1358. short sAlignment;
  1359. DWORD dwLevel;
  1360. BYTE bPKMode;
  1361. DWORD dwMountVnum;
  1362. } TPacketGCCharacterUpdate;
  1363.  
  1364. typedef struct packet_update_char2
  1365. {
  1366. BYTE header;
  1367. DWORD dwVID;
  1368.  
  1369. WORD awPart[CHR_EQUIPPART_NUM];
  1370. BYTE bMovingSpeed;
  1371. BYTE bAttackSpeed;
  1372.  
  1373. BYTE bStateFlag;
  1374. DWORD dwAffectFlag[2];
  1375.  
  1376. DWORD dwGuildID;
  1377. short sAlignment;
  1378. DWORD dwLevel;
  1379. BYTE bPKMode;
  1380. DWORD dwMountVnum;
  1381. } TPacketGCCharacterUpdate2;
  1382.  
  1383. typedef struct packet_del_char
  1384. {
  1385. BYTE header;
  1386. DWORD dwVID;
  1387. } TPacketGCCharacterDelete;
  1388.  
  1389. typedef struct packet_GlobalTime
  1390. {
  1391. BYTE header;
  1392. float GlobalTime;
  1393. } TPacketGCGlobalTime;
  1394.  
  1395. enum EChatType
  1396. {
  1397. CHAT_TYPE_TALKING, /* ±Χ³Ι Γ¤ΖΓ */
  1398. CHAT_TYPE_INFO, /* Α¤ΊΈ (ΎΖΐΜΕΫΐ» ΑύΎϊ΄Ω, °ζΗθΔ΅Έ¦ ΎςΎϊ΄Ω. µξ) */
  1399. CHAT_TYPE_NOTICE, /* °ψΑφ»ηΗΧ */
  1400. CHAT_TYPE_PARTY, /* ΖΔΖΌΈ» */
  1401. CHAT_TYPE_GUILD, /* ±ζµεΈ» */
  1402. CHAT_TYPE_COMMAND, /* Έν·Ι */
  1403. CHAT_TYPE_SHOUT, /* ΏάΔ΅±β */
  1404. CHAT_TYPE_WHISPER, // Ό­ΉφΏΝ΄Β Ώ¬µΏµΗΑφ ΎΚ΄Β Only Client Enum
  1405. CHAT_TYPE_BIG_NOTICE,
  1406. CHAT_TYPE_MAX_NUM,
  1407. };
  1408.  
  1409. typedef struct packet_chatting
  1410. {
  1411. BYTE header;
  1412. WORD size;
  1413. BYTE type;
  1414. DWORD dwVID;
  1415. BYTE bEmpire;
  1416. } TPacketGCChat;
  1417.  
  1418. typedef struct packet_whisper // °΅Ί― ΖΠΕ¶
  1419. {
  1420. BYTE bHeader;
  1421. WORD wSize;
  1422. BYTE bType;
  1423. char szNameFrom[CHARACTER_NAME_MAX_LEN + 1];
  1424. } TPacketGCWhisper;
  1425.  
  1426. typedef struct packet_stun
  1427. {
  1428. BYTE header;
  1429. DWORD vid;
  1430. } TPacketGCStun;
  1431.  
  1432. typedef struct packet_dead
  1433. {
  1434. BYTE header;
  1435. DWORD vid;
  1436. } TPacketGCDead;
  1437.  
  1438. typedef struct packet_main_character
  1439. {
  1440. BYTE header;
  1441. DWORD dwVID;
  1442. WORD wRaceNum;
  1443. char szName[CHARACTER_NAME_MAX_LEN + 1];
  1444. long lX, lY, lZ;
  1445. BYTE bySkillGroup;
  1446. } TPacketGCMainCharacter;
  1447.  
  1448. // SUPPORT_BGM
  1449. typedef struct packet_main_character2_empire
  1450. {
  1451. BYTE header;
  1452. DWORD dwVID;
  1453. WORD wRaceNum;
  1454. char szName[CHARACTER_NAME_MAX_LEN + 1];
  1455. long lX, lY, lZ;
  1456. BYTE byEmpire;
  1457. BYTE bySkillGroup;
  1458. } TPacketGCMainCharacter2_EMPIRE;
  1459.  
  1460. typedef struct packet_main_character3_bgm
  1461. {
  1462. enum
  1463. {
  1464. MUSIC_NAME_MAX_LEN = 24,
  1465. };
  1466. BYTE header;
  1467. DWORD dwVID;
  1468. WORD wRaceNum;
  1469. char szUserName[CHARACTER_NAME_MAX_LEN + 1];
  1470. char szBGMName[MUSIC_NAME_MAX_LEN + 1];
  1471. long lX, lY, lZ;
  1472. BYTE byEmpire;
  1473. BYTE bySkillGroup;
  1474. } TPacketGCMainCharacter3_BGM;
  1475.  
  1476. typedef struct packet_main_character4_bgm_vol
  1477. {
  1478. enum
  1479. {
  1480. MUSIC_NAME_MAX_LEN = 24,
  1481. };
  1482. BYTE header;
  1483. DWORD dwVID;
  1484. WORD wRaceNum;
  1485. char szUserName[CHARACTER_NAME_MAX_LEN + 1];
  1486. char szBGMName[MUSIC_NAME_MAX_LEN + 1];
  1487. float fBGMVol;
  1488. long lX, lY, lZ;
  1489. BYTE byEmpire;
  1490. BYTE bySkillGroup;
  1491. } TPacketGCMainCharacter4_BGM_VOL;
  1492. // END_OF_SUPPORT_BGM
  1493.  
  1494. enum EPointTypes
  1495. {
  1496. POINT_NONE, // 0
  1497. POINT_LEVEL, // 1
  1498. POINT_VOICE, // 2
  1499. POINT_EXP, // 3
  1500. POINT_NEXT_EXP, // 4
  1501. POINT_HP, // 5
  1502. POINT_MAX_HP, // 6
  1503. POINT_SP, // 7
  1504. POINT_MAX_SP, // 8
  1505. POINT_STAMINA, // 9 ½ΊΕΧΉΜ³Κ
  1506. POINT_MAX_STAMINA, // 10 ΓΦ΄λ ½ΊΕΧΉΜ³Κ
  1507.  
  1508. POINT_GOLD, // 11
  1509. POINT_ST, // 12 ±Ω·Β
  1510. POINT_HT, // 13 ΓΌ·Β
  1511. POINT_DX, // 14 ΉΞΓΈΌΊ
  1512. POINT_IQ, // 15 Α¤½Ε·Β
  1513. POINT_ATT_POWER, // 16 °ψ°έ·Β
  1514. POINT_ATT_SPEED, // 17 °ψ°έΌΣµµ
  1515. POINT_EVADE_RATE, // 18 ΘΈΗΗΐ²
  1516. POINT_MOV_SPEED, // 19 ΐΜµΏΌΣµµ
  1517. POINT_DEF_GRADE, // 20 ΉζΎξµξ±ή
  1518. POINT_CASTING_SPEED, // 21 ΑΦΉ®ΌΣµµ (Δπ΄ΩΏξΕΈΐΣ*100) / (100 + ΐΜ°) = ΓΦΑΎ Δπ΄ΩΏξ ΕΈΐΣ
  1519. POINT_MAGIC_ATT_GRADE, // 22 Έ¶Ήύ°ψ°έ·Β
  1520. POINT_MAGIC_DEF_GRADE, // 23 Έ¶ΉύΉζΎξ·Β
  1521. POINT_EMPIRE_POINT, // 24 Α¦±ΉΑ΅Όφ
  1522. POINT_LEVEL_STEP, // 25 ΗΡ ·ΉΊ§Ώ΅Ό­ΐΗ ΄ά°θ.. (1 2 3 µΙ ¶§ ΊΈ»σ, 4 µΗΈι ·ΉΊ§ Ύχ)
  1523. POINT_STAT, // 26 ΄Ι·ΒΔ΅ ΏΓΈ± Όφ ΐΦ΄Β °³Όφ
  1524. POINT_SUB_SKILL, // 27 ΊΈΑ¶ ½ΊΕ³ ΖχΐΞΖ®
  1525. POINT_SKILL, // 28 ΎΧΖΌΊκ ½ΊΕ³ ΖχΐΞΖ®
  1526. // POINT_SKILL_PASV, // 27 ΖΠ½ΓΊκ ±βΌϊ ΏΓΈ± Όφ ΐΦ΄Β °³Όφ
  1527. // POINT_SKILL_ACTIVE, // 28 ΎΧΖΌΊκ ½ΊΕ³ ΖχΐΞΖ®
  1528. POINT_MIN_ATK, // 29 ΓΦΌ ΖΔ±«·Β
  1529. POINT_MAX_ATK, // 30 ΓΦ΄λ ΖΔ±«·Β
  1530. POINT_PLAYTIME, // 31 ΗΓ·ΉΐΜ½Γ°£
  1531. POINT_HP_REGEN, // 32 HP ΘΈΊΉ·ό
  1532. POINT_SP_REGEN, // 33 SP ΘΈΊΉ·ό
  1533.  
  1534. POINT_BOW_DISTANCE, // 34 Θ° »ηΑ¤°ΕΈ® Αυ°΅Δ΅ (meter)
  1535.  
  1536. POINT_HP_RECOVERY, // 35 ΓΌ·Β ΘΈΊΉ Αυ°΅·®
  1537. POINT_SP_RECOVERY, // 36 Α¤½Ε·Β ΘΈΊΉ Αυ°΅·®
  1538.  
  1539. POINT_POISON_PCT, // 37 µ¶ Θ®·ό
  1540. POINT_STUN_PCT, // 38 ±βΐύ Θ®·ό
  1541. POINT_SLOW_PCT, // 39 ½½·ΞΏμ Θ®·ό
  1542. POINT_CRITICAL_PCT, // 40 Ε©Έ®ΖΌΔΓ Θ®·ό
  1543. POINT_PENETRATE_PCT, // 41 °όΕλΕΈ°έ Θ®·ό
  1544. POINT_CURSE_PCT, // 42 ΐϊΑΦ Θ®·ό
  1545.  
  1546. POINT_ATTBONUS_HUMAN, // 43 ΐΞ°£Ώ΅°Τ °­ΗΤ
  1547. POINT_ATTBONUS_ANIMAL, // 44 µΏΉ°Ώ΅°Τ µ¥ΉΜΑφ % Αυ°΅
  1548. POINT_ATTBONUS_ORC, // 45 Ώυ±ΝΏ΅°Τ µ¥ΉΜΑφ % Αυ°΅
  1549. POINT_ATTBONUS_MILGYO, // 46 ΉΠ±³Ώ΅°Τ µ¥ΉΜΑφ % Αυ°΅
  1550. POINT_ATTBONUS_UNDEAD, // 47 ½ΓΓΌΏ΅°Τ µ¥ΉΜΑφ % Αυ°΅
  1551. POINT_ATTBONUS_DEVIL, // 48 Έ¶±Ν(ΎΗΈ¶)Ώ΅°Τ µ¥ΉΜΑφ % Αυ°΅
  1552. POINT_ATTBONUS_INSECT, // 49 Ήϊ·ΉΑ·
  1553. POINT_ATTBONUS_FIRE, // 50 Θ­Ώ°Α·
  1554. POINT_ATTBONUS_ICE, // 51 ΊωΌ³Α·
  1555. POINT_ATTBONUS_DESERT, // 52 »ηΈ·Α·
  1556. POINT_ATTBONUS_UNUSED0, // 53 UNUSED0
  1557. POINT_ATTBONUS_UNUSED1, // 54 UNUSED1
  1558. POINT_ATTBONUS_UNUSED2, // 55 UNUSED2
  1559. POINT_ATTBONUS_UNUSED3, // 56 UNUSED3
  1560. POINT_ATTBONUS_UNUSED4, // 57 UNUSED4
  1561. POINT_ATTBONUS_UNUSED5, // 58 UNUSED5
  1562. POINT_ATTBONUS_UNUSED6, // 59 UNUSED6
  1563. POINT_ATTBONUS_UNUSED7, // 60 UNUSED7
  1564. POINT_ATTBONUS_UNUSED8, // 61 UNUSED8
  1565. POINT_ATTBONUS_UNUSED9, // 62 UNUSED9
  1566.  
  1567. POINT_STEAL_HP, // 63 »ύΈν·Β ΘνΌφ
  1568. POINT_STEAL_SP, // 64 Α¤½Ε·Β ΘνΌφ
  1569.  
  1570. POINT_MANA_BURN_PCT, // 65 Έ¶³ Ήψ
  1571.  
  1572. /// ΗΗΗΨ½Γ ΊΈ³Κ½Ί ///
  1573.  
  1574. POINT_DAMAGE_SP_RECOVER, // 66 °ψ°έ΄ηΗ ½Γ Α¤½Ε·Β ΘΈΊΉ Θ®·ό
  1575.  
  1576. POINT_BLOCK, // 67 Ίν·°ΐ²
  1577. POINT_DODGE, // 68 ΘΈΗΗΐ²
  1578.  
  1579. POINT_RESIST_SWORD, // 69
  1580. POINT_RESIST_TWOHAND, // 70
  1581. POINT_RESIST_DAGGER, // 71
  1582. POINT_RESIST_BELL, // 72
  1583. POINT_RESIST_FAN, // 73
  1584. POINT_RESIST_BOW, // 74 Θ­»μ ΐϊΗΧ : ΄λΉΜΑφ °¨Ό
  1585. POINT_RESIST_FIRE, // 75 Θ­Ώ° ΐϊΗΧ : Θ­Ώ°°ψ°έΏ΅ ΄λΗΡ ΄λΉΜΑφ °¨Ό
  1586. POINT_RESIST_ELEC, // 76 ΐό±β ΐϊΗΧ : ΐό±β°ψ°έΏ΅ ΄λΗΡ ΄λΉΜΑφ °¨Ό
  1587. POINT_RESIST_MAGIC, // 77 ΌϊΉύ ΐϊΗΧ : ΈπµηΌϊΉύΏ΅ ΄λΗΡ ΄λΉΜΑφ °¨Ό
  1588. POINT_RESIST_WIND, // 78 ΉΩ¶χ ΐϊΗΧ : ΉΩ¶χ°ψ°έΏ΅ ΄λΗΡ ΄λΉΜΑφ °¨Ό
  1589.  
  1590. POINT_REFLECT_MELEE, // 79 °ψ°έ Ήέ»η
  1591.  
  1592. /// Ζ―Όφ ΗΗΗΨ½Γ ///
  1593. POINT_REFLECT_CURSE, // 80 ΐϊΑΦ Ήέ»η
  1594. POINT_POISON_REDUCE, // 81 µ¶µ¥ΉΜΑφ °¨Ό
  1595.  
  1596. /// ΐϋ ΌΈκ½Γ ///
  1597. POINT_KILL_SP_RECOVER, // 82 ΐϋ ΌΈκ½Γ MP ΘΈΊΉ
  1598. POINT_EXP_DOUBLE_BONUS, // 83
  1599. POINT_GOLD_DOUBLE_BONUS, // 84
  1600. POINT_ITEM_DROP_BONUS, // 85
  1601.  
  1602. /// ΘΈΊΉ °ό·Γ ///
  1603. POINT_POTION_BONUS, // 86
  1604. POINT_KILL_HP_RECOVER, // 87
  1605.  
  1606. POINT_IMMUNE_STUN, // 88
  1607. POINT_IMMUNE_SLOW, // 89
  1608. POINT_IMMUNE_FALL, // 90
  1609. //////////////////
  1610.  
  1611. POINT_PARTY_ATT_GRADE, // 91
  1612. POINT_PARTY_DEF_GRADE, // 92
  1613.  
  1614. POINT_ATT_BONUS, // 93
  1615. POINT_DEF_BONUS, // 94
  1616.  
  1617. POINT_ATT_GRADE_BONUS, // 95
  1618. POINT_DEF_GRADE_BONUS, // 96
  1619. POINT_MAGIC_ATT_GRADE_BONUS, // 97
  1620. POINT_MAGIC_DEF_GRADE_BONUS, // 98
  1621.  
  1622. POINT_RESIST_NORMAL_DAMAGE, // 99
  1623.  
  1624. POINT_STAT_RESET_COUNT = 112,
  1625. POINT_HORSE_SKILL = 113,
  1626.  
  1627. POINT_MALL_ATTBONUS, // 114 °ψ°έ·Β +x%
  1628. POINT_MALL_DEFBONUS, // 115 ΉζΎξ·Β +x%
  1629. POINT_MALL_EXPBONUS, // 116 °ζΗθΔ΅ +x%
  1630. POINT_MALL_ITEMBONUS, // 117 ΎΖΐΜΕΫ µε·Σΐ² x/10Ήθ
  1631. POINT_MALL_GOLDBONUS, // 118 µ· µε·Σΐ² x/10Ήθ
  1632. POINT_MAX_HP_PCT, // 119 ΓΦ΄λ»ύΈν·Β +x%
  1633. POINT_MAX_SP_PCT, // 120 ΓΦ΄λΑ¤½Ε·Β +x%
  1634.  
  1635. POINT_SKILL_DAMAGE_BONUS, // 121 ½ΊΕ³ µ¥ΉΜΑφ *(100+x)%
  1636. POINT_NORMAL_HIT_DAMAGE_BONUS, // 122 ΖςΕΈ µ¥ΉΜΑφ *(100+x)%
  1637.  
  1638. POINT_SKILL_DEFEND_BONUS, // 123 ½ΊΕ³ ΉζΎξ µ¥ΉΜΑφ
  1639. POINT_NORMAL_HIT_DEFEND_BONUS, // 124 ΖςΕΈ ΉζΎξ µ¥ΉΜΑφ
  1640. POINT_PC_BANG_EXP_BONUS, // 125
  1641. POINT_PC_BANG_DROP_BONUS, // 126 PCΉζ ΐόΏλ µε·Σ·ό ΊΈ³Κ½Ί
  1642.  
  1643. POINT_ENERGY = 128, // 128 ±β·Β
  1644.  
  1645. // ±β·Β ui Ώλ.
  1646. // ΐΜ·Έ°Τ ΗΟ°ν ½ΝΑφ ΎΚΎΑφΈΈ,
  1647. // uiTaskBarΏ΅Ό­΄Β affectΏ΅ ΑΆ±ΩΗ Όφ Ύψ°ν,
  1648. // ΄υ±Έ³ Ε¬¶σΈ®ΎπΖ®Ώ΅Ό­΄Β blend_affect΄Β °όΈ®ΗΟΑφ ΎΚΎΖ,
  1649. // ΐΣ½Γ·Ξ ΐΜ·Έ°Τ µΠ΄Ω.
  1650. POINT_ENERGY_END_TIME = 129, // 129 ±β·Β ΑΎ·α ½Γ°£
  1651.  
  1652. POINT_COSTUME_ATTR_BONUS = 130,
  1653. POINT_MAGIC_ATT_BONUS_PER = 131,
  1654. POINT_MELEE_MAGIC_ATT_BONUS_PER = 132,
  1655.  
  1656. // NEW RESISTANCE POINTS
  1657. POINT_RESIST_ICE = 133, // RESISTANCE: LESS DAMAGE FROM ICE-BASED ENEMIES
  1658. POINT_RESIST_EARTH = 134, // RESISTANCE: LESS DAMAGE FROM EARTH-BASED ENEMIES
  1659. POINT_RESIST_DARK = 135, // RESISTANCE: LESS DAMAGE FROM DARKNESS-BASED ENEMIES
  1660.  
  1661. POINT_RESIST_CRITICAL = 136, // RESISTANCE: LESS DAMAGE TAKEN FROM A CRITICAL HIT
  1662. POINT_RESIST_PENETRATE = 137, // RESISTANCE: LESS DAMAGE TAKEN FROM A PIERCING HIT
  1663.  
  1664. POINT_ATTBONUS_WOLFMAN, // 138 BONUS DAMAGE AGAINST WOLFMAN CHARACTER
  1665. POINT_RESIST_WOLFMAN, // 139 LESS DAMAGE TAKEN FROM WOLFMAN CHARACTER HITS
  1666. POINT_RESIST_CLAW, // 140 LESS DAMAGE TAKEN FROM CHARACTERS EQIPPED WITH CLAW WEAPONS
  1667.  
  1668. // Ε¬¶σΐΜΎπΖ® ΖχΐΞΖ®
  1669. POINT_MIN_WEP = 200,
  1670. POINT_MAX_WEP,
  1671. POINT_MIN_MAGIC_WEP,
  1672. POINT_MAX_MAGIC_WEP,
  1673. POINT_HIT_RATE,
  1674.  
  1675.  
  1676. //POINT_MAX_NUM = 255,=>stdafx.h ·Ξ/
  1677. };
  1678.  
  1679. typedef struct packet_points
  1680. {
  1681. BYTE header;
  1682. long points[POINT_MAX_NUM];
  1683. } TPacketGCPoints;
  1684.  
  1685. typedef struct packet_point_change
  1686. {
  1687. int header;
  1688.  
  1689. DWORD dwVID;
  1690. BYTE Type;
  1691.  
  1692. long amount; // ΉΩ²ο °
  1693. long value; // Ηφΐη °
  1694. } TPacketGCPointChange;
  1695.  
  1696. typedef struct packet_motion
  1697. {
  1698. BYTE header;
  1699. DWORD vid;
  1700. DWORD victim_vid;
  1701. WORD motion;
  1702. } TPacketGCMotion;
  1703.  
  1704. #if defined(GAIDEN)
  1705. struct TPacketGCItemDelDeprecate
  1706. {
  1707. TPacketGCItemDelDeprecate() :
  1708. header(HEADER_GC_ITEM_DEL),
  1709. pos(0),
  1710. vnum(0),
  1711. count(0)
  1712. {
  1713. memset(&alSockets, 0, sizeof(alSockets));
  1714. memset(&aAttr, 0, sizeof(aAttr));
  1715. }
  1716.  
  1717. BYTE header;
  1718. BYTE pos;
  1719. DWORD vnum;
  1720. BYTE count;
  1721. long alSockets[ITEM_SOCKET_SLOT_MAX_NUM];
  1722. TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_SLOT_MAX_NUM];
  1723. };
  1724.  
  1725. typedef struct packet_set_item
  1726. {
  1727. BYTE header;
  1728. BYTE pos;
  1729. DWORD vnum;
  1730. BYTE count;
  1731. DWORD flags; // ΗΓ·΅±Χ Γί°΅
  1732. long alSockets[ITEM_SOCKET_SLOT_MAX_NUM];
  1733. TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_SLOT_MAX_NUM];
  1734. } TPacketGCItemSet;
  1735.  
  1736. typedef struct packet_item_del
  1737. {
  1738. BYTE header;
  1739. BYTE pos;
  1740. } TPacketGCItemDel;
  1741. #else
  1742. typedef struct packet_set_item
  1743. {
  1744. BYTE header;
  1745. TItemPos Cell;
  1746. DWORD vnum;
  1747. BYTE count;
  1748. long alSockets[ITEM_SOCKET_SLOT_MAX_NUM];
  1749. TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_SLOT_MAX_NUM];
  1750. } TPacketGCItemSet;
  1751.  
  1752. typedef struct packet_set_item2
  1753. {
  1754. BYTE header;
  1755. TItemPos Cell;
  1756. DWORD vnum;
  1757. BYTE count;
  1758. DWORD flags; // ΗΓ·΅±Χ Γί°΅
  1759. DWORD anti_flags; // ΗΓ·΅±Χ Γί°΅
  1760. bool highlight;
  1761. long alSockets[ITEM_SOCKET_SLOT_MAX_NUM];
  1762. TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_SLOT_MAX_NUM];
  1763. } TPacketGCItemSet2;
  1764. #endif
  1765.  
  1766. typedef struct packet_item_del
  1767. {
  1768. BYTE header;
  1769. BYTE pos;
  1770. } TPacketGCItemDel;
  1771.  
  1772. typedef struct packet_use_item
  1773. {
  1774. BYTE header;
  1775. TItemPos Cell;
  1776. DWORD ch_vid;
  1777. DWORD victim_vid;
  1778.  
  1779. DWORD vnum;
  1780. } TPacketGCItemUse;
  1781.  
  1782. typedef struct packet_update_item
  1783. {
  1784. BYTE header;
  1785. TItemPos Cell;
  1786. BYTE count;
  1787. long alSockets[ITEM_SOCKET_SLOT_MAX_NUM];
  1788. TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_SLOT_MAX_NUM];
  1789. } TPacketGCItemUpdate;
  1790.  
  1791. typedef struct packet_ground_add_item
  1792. {
  1793. BYTE bHeader;
  1794. long lX;
  1795. long lY;
  1796. long lZ;
  1797.  
  1798. DWORD dwVID;
  1799. DWORD dwVnum;
  1800. } TPacketGCItemGroundAdd;
  1801.  
  1802. typedef struct packet_ground_del_item
  1803. {
  1804. BYTE header;
  1805. DWORD vid;
  1806. } TPacketGCItemGroundDel;
  1807.  
  1808. typedef struct packet_item_ownership
  1809. {
  1810. BYTE bHeader;
  1811. DWORD dwVID;
  1812. char szName[CHARACTER_NAME_MAX_LEN + 1];
  1813. } TPacketGCItemOwnership;
  1814.  
  1815. typedef struct packet_quickslot_add
  1816. {
  1817. BYTE header;
  1818. BYTE pos;
  1819. TQuickSlot slot;
  1820. } TPacketGCQuickSlotAdd;
  1821.  
  1822. typedef struct packet_quickslot_del
  1823. {
  1824. BYTE header;
  1825. BYTE pos;
  1826. } TPacketGCQuickSlotDel;
  1827.  
  1828. typedef struct packet_quickslot_swap
  1829. {
  1830. BYTE header;
  1831. BYTE pos;
  1832. BYTE change_pos;
  1833. } TPacketGCQuickSlotSwap;
  1834.  
  1835. typedef struct packet_shop_start
  1836. {
  1837. struct packet_shop_item items[SHOP_HOST_ITEM_MAX_NUM];
  1838. } TPacketGCShopStart;
  1839.  
  1840. typedef struct packet_shop_start_ex // ΄Ωΐ½Ώ΅ TSubPacketShopTab* shop_tabs ΐΜ µϋ¶σΏΘ.
  1841. {
  1842. typedef struct sub_packet_shop_tab
  1843. {
  1844. char name[SHOP_TAB_NAME_MAX];
  1845. BYTE coin_type;
  1846. packet_shop_item items[SHOP_HOST_ITEM_MAX_NUM];
  1847. } TSubPacketShopTab;
  1848. DWORD owner_vid;
  1849. BYTE shop_tab_count;
  1850. } TPacketGCShopStartEx;
  1851.  
  1852.  
  1853. typedef struct packet_shop_update_item
  1854. {
  1855. BYTE pos;
  1856. struct packet_shop_item item;
  1857. } TPacketGCShopUpdateItem;
  1858.  
  1859. typedef struct packet_shop_update_price
  1860. {
  1861. int iElkAmount;
  1862. } TPacketGCShopUpdatePrice;
  1863.  
  1864. enum EPacketShopSubHeaders
  1865. {
  1866. SHOP_SUBHEADER_GC_START,
  1867. SHOP_SUBHEADER_GC_END,
  1868. SHOP_SUBHEADER_GC_UPDATE_ITEM,
  1869. SHOP_SUBHEADER_GC_UPDATE_PRICE,
  1870. SHOP_SUBHEADER_GC_OK,
  1871. SHOP_SUBHEADER_GC_NOT_ENOUGH_MONEY,
  1872. SHOP_SUBHEADER_GC_SOLDOUT,
  1873. SHOP_SUBHEADER_GC_INVENTORY_FULL,
  1874. SHOP_SUBHEADER_GC_INVALID_POS,
  1875. SHOP_SUBHEADER_GC_SOLD_OUT,
  1876. SHOP_SUBHEADER_GC_START_EX,
  1877. SHOP_SUBHEADER_GC_NOT_ENOUGH_MONEY_EX,
  1878. };
  1879.  
  1880. typedef struct packet_shop
  1881. {
  1882. BYTE header;
  1883. WORD size;
  1884. BYTE subheader;
  1885. } TPacketGCShop;
  1886.  
  1887. typedef struct packet_exchange
  1888. {
  1889. BYTE header;
  1890. BYTE subheader;
  1891. BYTE is_me;
  1892. DWORD arg1;
  1893. TItemPos arg2;
  1894. DWORD arg3;
  1895. long alValues[ITEM_SOCKET_SLOT_MAX_NUM];
  1896. TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_SLOT_MAX_NUM];
  1897. } TPacketGCExchange;
  1898.  
  1899. enum
  1900. {
  1901. EXCHANGE_SUBHEADER_GC_START, // arg1 == vid
  1902. EXCHANGE_SUBHEADER_GC_ITEM_ADD, // arg1 == vnum arg2 == pos arg3 == count
  1903. EXCHANGE_SUBHEADER_GC_ITEM_DEL, // arg1 == pos
  1904. EXCHANGE_SUBHEADER_GC_ELK_ADD, // arg1 == elk
  1905. EXCHANGE_SUBHEADER_GC_ACCEPT, // arg1 == accept
  1906. EXCHANGE_SUBHEADER_GC_END, // arg1 == not used
  1907. EXCHANGE_SUBHEADER_GC_ALREADY, // arg1 == not used
  1908. EXCHANGE_SUBHEADER_GC_LESS_ELK, // arg1 == not used
  1909. };
  1910.  
  1911. typedef struct packet_position
  1912. {
  1913. BYTE header;
  1914. DWORD vid;
  1915. BYTE position;
  1916. } TPacketGCPosition;
  1917.  
  1918. typedef struct packet_ping
  1919. {
  1920. BYTE header;
  1921. } TPacketGCPing;
  1922.  
  1923. typedef struct packet_pong
  1924. {
  1925. BYTE bHeader;
  1926. } TPacketCGPong;
  1927.  
  1928. typedef struct packet_script
  1929. {
  1930. BYTE header;
  1931. WORD size;
  1932. BYTE skin;
  1933. WORD src_size;
  1934. } TPacketGCScript;
  1935.  
  1936. typedef struct packet_target
  1937. {
  1938. BYTE header;
  1939. DWORD dwVID;
  1940. BYTE bHPPercent;
  1941. } TPacketGCTarget;
  1942.  
  1943. typedef struct packet_damage_info
  1944. {
  1945. BYTE header;
  1946. DWORD dwVID;
  1947. BYTE flag;
  1948. int damage;
  1949. } TPacketGCDamageInfo;
  1950.  
  1951. typedef struct packet_mount
  1952. {
  1953. BYTE header;
  1954. DWORD vid;
  1955. DWORD mount_vid;
  1956. BYTE pos;
  1957. DWORD _x, _y;
  1958. } TPacketGCMount;
  1959.  
  1960. typedef struct packet_change_speed
  1961. {
  1962. BYTE header;
  1963. DWORD vid;
  1964. WORD moving_speed;
  1965. } TPacketGCChangeSpeed;
  1966.  
  1967. typedef struct packet_move
  1968. {
  1969. BYTE bHeader;
  1970. BYTE bFunc;
  1971. BYTE bArg;
  1972. BYTE bRot;
  1973. DWORD dwVID;
  1974. LONG lX;
  1975. LONG lY;
  1976. DWORD dwTime;
  1977. DWORD dwDuration;
  1978. } TPacketGCMove;
  1979.  
  1980. enum
  1981. {
  1982. QUEST_SEND_IS_BEGIN = 1 << 0,
  1983. QUEST_SEND_TITLE = 1 << 1, // 28ΐΪ ±ξΑφ
  1984. QUEST_SEND_CLOCK_NAME = 1 << 2, // 16ΐΪ ±ξΑφ
  1985. QUEST_SEND_CLOCK_VALUE = 1 << 3,
  1986. QUEST_SEND_COUNTER_NAME = 1 << 4, // 16ΐΪ ±ξΑφ
  1987. QUEST_SEND_COUNTER_VALUE = 1 << 5,
  1988. QUEST_SEND_ICON_FILE = 1 << 6, // 24ΐΪ ±ξΑφ
  1989. };
  1990.  
  1991. typedef struct packet_quest_info
  1992. {
  1993. BYTE header;
  1994. WORD size;
  1995. WORD index;
  1996. BYTE flag;
  1997. } TPacketGCQuestInfo;
  1998.  
  1999. typedef struct packet_quest_confirm
  2000. {
  2001. BYTE header;
  2002. char msg[64+1];
  2003. long timeout;
  2004. DWORD requestPID;
  2005. } TPacketGCQuestConfirm;
  2006.  
  2007. typedef struct packet_attack
  2008. {
  2009. BYTE header;
  2010. DWORD dwVID;
  2011. DWORD dwVictimVID; // ΐϋ VID
  2012. BYTE bType; // °ψ°έ ΐ―Ηό
  2013. } TPacketGCAttack;
  2014.  
  2015. typedef struct packet_c2c
  2016. {
  2017. BYTE header;
  2018. WORD wSize;
  2019. } TPacketGCC2C;
  2020.  
  2021. typedef struct packetd_sync_position_element
  2022. {
  2023. DWORD dwVID;
  2024. long lX;
  2025. long lY;
  2026. } TPacketGCSyncPositionElement;
  2027.  
  2028. typedef struct packetd_sync_position
  2029. {
  2030. BYTE bHeader;
  2031. WORD wSize;
  2032. } TPacketGCSyncPosition;
  2033.  
  2034. typedef struct packet_ownership
  2035. {
  2036. BYTE bHeader;
  2037. DWORD dwOwnerVID;
  2038. DWORD dwVictimVID;
  2039. } TPacketGCOwnership;
  2040.  
  2041. #define SKILL_MAX_NUM 255
  2042.  
  2043. typedef struct packet_skill_level
  2044. {
  2045. BYTE bHeader;
  2046. BYTE abSkillLevels[SKILL_MAX_NUM];
  2047. } TPacketGCSkillLevel;
  2048.  
  2049. typedef struct SPlayerSkill
  2050. {
  2051. BYTE bMasterType;
  2052. BYTE bLevel;
  2053. time_t tNextRead;
  2054. } TPlayerSkill;
  2055.  
  2056. typedef struct packet_skill_level_new
  2057. {
  2058. BYTE bHeader;
  2059. TPlayerSkill skills[SKILL_MAX_NUM];
  2060. } TPacketGCSkillLevelNew;
  2061.  
  2062. // fly
  2063. typedef struct packet_fly
  2064. {
  2065. BYTE bHeader;
  2066. BYTE bType;
  2067. DWORD dwStartVID;
  2068. DWORD dwEndVID;
  2069. } TPacketGCCreateFly;
  2070.  
  2071. enum EPVPModes
  2072. {
  2073. PVP_MODE_NONE,
  2074. PVP_MODE_AGREE,
  2075. PVP_MODE_FIGHT,
  2076. PVP_MODE_REVENGE,
  2077. };
  2078.  
  2079. typedef struct packet_duel_start
  2080. {
  2081. BYTE header ;
  2082. WORD wSize ; // DWORD°΅ Έξ°³? °³Όφ = (wSize - sizeof(TPacketGCPVPList)) / 4
  2083. } TPacketGCDuelStart ;
  2084.  
  2085. typedef struct packet_pvp
  2086. {
  2087. BYTE header;
  2088. DWORD dwVIDSrc;
  2089. DWORD dwVIDDst;
  2090. BYTE bMode;
  2091. } TPacketGCPVP;
  2092.  
  2093. typedef struct packet_skill_cooltime_end
  2094. {
  2095. BYTE header;
  2096. BYTE bSkill;
  2097. } TPacketGCSkillCoolTimeEnd;
  2098.  
  2099. typedef struct packet_warp
  2100. {
  2101. BYTE bHeader;
  2102. LONG lX;
  2103. LONG lY;
  2104. LONG lAddr;
  2105. WORD wPort;
  2106. } TPacketGCWarp;
  2107.  
  2108. typedef struct packet_party_invite
  2109. {
  2110. BYTE header;
  2111. DWORD leader_pid;
  2112. } TPacketGCPartyInvite;
  2113.  
  2114. typedef struct packet_party_add
  2115. {
  2116. BYTE header;
  2117. DWORD pid;
  2118. char name[CHARACTER_NAME_MAX_LEN+1];
  2119. } TPacketGCPartyAdd;
  2120.  
  2121. typedef struct packet_party_update
  2122. {
  2123. BYTE header;
  2124. DWORD pid;
  2125. BYTE state;
  2126. BYTE percent_hp;
  2127. short affects[PARTY_AFFECT_SLOT_MAX_NUM];
  2128. } TPacketGCPartyUpdate;
  2129.  
  2130. typedef struct packet_party_remove
  2131. {
  2132. BYTE header;
  2133. DWORD pid;
  2134. } TPacketGCPartyRemove;
  2135.  
  2136. typedef TPacketCGSafeboxCheckout TPacketGCSafeboxCheckout;
  2137. typedef TPacketCGSafeboxCheckin TPacketGCSafeboxCheckin;
  2138.  
  2139. typedef struct packet_safebox_wrong_password
  2140. {
  2141. BYTE bHeader;
  2142. } TPacketGCSafeboxWrongPassword;
  2143.  
  2144. typedef struct packet_safebox_size
  2145. {
  2146. BYTE bHeader;
  2147. BYTE bSize;
  2148. } TPacketGCSafeboxSize;
  2149.  
  2150. typedef struct packet_safebox_money_change
  2151. {
  2152. BYTE bHeader;
  2153. DWORD dwMoney;
  2154. } TPacketGCSafeboxMoneyChange;
  2155.  
  2156. typedef struct command_empire
  2157. {
  2158. BYTE bHeader;
  2159. BYTE bEmpire;
  2160. } TPacketCGEmpire;
  2161.  
  2162. typedef struct packet_empire
  2163. {
  2164. BYTE bHeader;
  2165. BYTE bEmpire;
  2166. } TPacketGCEmpire;
  2167.  
  2168. enum
  2169. {
  2170. FISHING_SUBHEADER_GC_START,
  2171. FISHING_SUBHEADER_GC_STOP,
  2172. FISHING_SUBHEADER_GC_REACT,
  2173. FISHING_SUBHEADER_GC_SUCCESS,
  2174. FISHING_SUBHEADER_GC_FAIL,
  2175. FISHING_SUBHEADER_GC_FISH,
  2176. };
  2177.  
  2178. typedef struct packet_fishing
  2179. {
  2180. BYTE header;
  2181. BYTE subheader;
  2182. DWORD info;
  2183. BYTE dir;
  2184. } TPacketGCFishing;
  2185.  
  2186. typedef struct paryt_parameter
  2187. {
  2188. BYTE bHeader;
  2189. BYTE bDistributeMode;
  2190. } TPacketGCPartyParameter;
  2191.  
  2192. //////////////////////////////////////////////////////////////////////////
  2193. // Guild
  2194.  
  2195. enum
  2196. {
  2197. GUILD_SUBHEADER_GC_LOGIN,
  2198. GUILD_SUBHEADER_GC_LOGOUT,
  2199. GUILD_SUBHEADER_GC_LIST,
  2200. GUILD_SUBHEADER_GC_GRADE,
  2201. GUILD_SUBHEADER_GC_ADD,
  2202. GUILD_SUBHEADER_GC_REMOVE,
  2203. GUILD_SUBHEADER_GC_GRADE_NAME,
  2204. GUILD_SUBHEADER_GC_GRADE_AUTH,
  2205. GUILD_SUBHEADER_GC_INFO,
  2206. GUILD_SUBHEADER_GC_COMMENTS,
  2207. GUILD_SUBHEADER_GC_CHANGE_EXP,
  2208. GUILD_SUBHEADER_GC_CHANGE_MEMBER_GRADE,
  2209. GUILD_SUBHEADER_GC_SKILL_INFO,
  2210. GUILD_SUBHEADER_GC_CHANGE_MEMBER_GENERAL,
  2211. GUILD_SUBHEADER_GC_GUILD_INVITE,
  2212. GUILD_SUBHEADER_GC_WAR,
  2213. GUILD_SUBHEADER_GC_GUILD_NAME,
  2214. GUILD_SUBHEADER_GC_GUILD_WAR_LIST,
  2215. GUILD_SUBHEADER_GC_GUILD_WAR_END_LIST,
  2216. GUILD_SUBHEADER_GC_WAR_POINT,
  2217. GUILD_SUBHEADER_GC_MONEY_CHANGE,
  2218. };
  2219.  
  2220. typedef struct packet_guild
  2221. {
  2222. BYTE header;
  2223. WORD size;
  2224. BYTE subheader;
  2225. } TPacketGCGuild;
  2226.  
  2227. // SubHeader - Grade
  2228. enum
  2229. {
  2230. GUILD_AUTH_ADD_MEMBER = (1 << 0),
  2231. GUILD_AUTH_REMOVE_MEMBER = (1 << 1),
  2232. GUILD_AUTH_NOTICE = (1 << 2),
  2233. GUILD_AUTH_SKILL = (1 << 3),
  2234. };
  2235.  
  2236. typedef struct packet_guild_sub_grade
  2237. {
  2238. char grade_name[GUILD_GRADE_NAME_MAX_LEN+1]; // 8+1 ±ζµεΐε, ±ζµεΏψ µξΐΗ ΐΜΈ§
  2239. BYTE auth_flag;
  2240. } TPacketGCGuildSubGrade;
  2241.  
  2242. typedef struct packet_guild_sub_member
  2243. {
  2244. DWORD pid;
  2245. BYTE byGrade;
  2246. BYTE byIsGeneral;
  2247. BYTE byJob;
  2248. BYTE byLevel;
  2249. DWORD dwOffer;
  2250. BYTE byNameFlag;
  2251. // if NameFlag is TRUE, name is sent from server.
  2252. // char szName[CHARACTER_ME_MAX_LEN+1];
  2253. } TPacketGCGuildSubMember;
  2254.  
  2255. typedef struct packet_guild_sub_info
  2256. {
  2257. WORD member_count;
  2258. WORD max_member_count;
  2259. DWORD guild_id;
  2260. DWORD master_pid;
  2261. DWORD exp;
  2262. BYTE level;
  2263. char name[GUILD_NAME_MAX_LEN+1];
  2264. DWORD gold;
  2265. BYTE hasLand;
  2266. } TPacketGCGuildInfo;
  2267.  
  2268. enum EGuildWarState
  2269. {
  2270. GUILD_WAR_NONE,
  2271. GUILD_WAR_SEND_DECLARE,
  2272. GUILD_WAR_REFUSE,
  2273. GUILD_WAR_RECV_DECLARE,
  2274. GUILD_WAR_WAIT_START,
  2275. GUILD_WAR_CANCEL,
  2276. GUILD_WAR_ON_WAR,
  2277. GUILD_WAR_END,
  2278.  
  2279. GUILD_WAR_DURATION = 2*60*60, // 2½Γ°£
  2280. };
  2281.  
  2282. typedef struct packet_guild_war
  2283. {
  2284. DWORD dwGuildSelf;
  2285. DWORD dwGuildOpp;
  2286. BYTE bType;
  2287. BYTE bWarState;
  2288. } TPacketGCGuildWar;
  2289.  
  2290. typedef struct SPacketGuildWarPoint
  2291. {
  2292. DWORD dwGainGuildID;
  2293. DWORD dwOpponentGuildID;
  2294. long lPoint;
  2295. } TPacketGuildWarPoint;
  2296.  
  2297. // SubHeader - Dungeon
  2298. enum
  2299. {
  2300. DUNGEON_SUBHEADER_GC_TIME_ATTACK_START = 0,
  2301. DUNGEON_SUBHEADER_GC_DESTINATION_POSITION = 1,
  2302. };
  2303.  
  2304. typedef struct packet_dungeon
  2305. {
  2306. BYTE bHeader;
  2307. WORD size;
  2308. BYTE subheader;
  2309. } TPacketGCDungeon;
  2310.  
  2311. // Private Shop
  2312. typedef struct SPacketGCShopSign
  2313. {
  2314. BYTE bHeader;
  2315. DWORD dwVID;
  2316. char szSign[SHOP_SIGN_MAX_LEN + 1];
  2317. } TPacketGCShopSign;
  2318.  
  2319. typedef struct SPacketGCTime
  2320. {
  2321. BYTE bHeader;
  2322. time_t time;
  2323. } TPacketGCTime;
  2324.  
  2325. enum
  2326. {
  2327. WALKMODE_RUN,
  2328. WALKMODE_WALK,
  2329. };
  2330.  
  2331. typedef struct SPacketGCWalkMode
  2332. {
  2333. BYTE header;
  2334. DWORD vid;
  2335. BYTE mode;
  2336. } TPacketGCWalkMode;
  2337.  
  2338. typedef struct SPacketGCChangeSkillGroup
  2339. {
  2340. BYTE header;
  2341. BYTE skill_group;
  2342. } TPacketGCChangeSkillGroup;
  2343.  
  2344. struct TMaterial
  2345. {
  2346. DWORD vnum;
  2347. DWORD count;
  2348. };
  2349.  
  2350. typedef struct SRefineTable
  2351. {
  2352. DWORD src_vnum;
  2353. DWORD result_vnum;
  2354. BYTE material_count;
  2355. int cost; // ΌΏδ ΊρΏλ
  2356. int prob; // Θ®·ό
  2357. TMaterial materials[REFINE_MATERIAL_MAX_NUM];
  2358. } TRefineTable;
  2359.  
  2360. typedef struct SPacketGCRefineInformation
  2361. {
  2362. BYTE header;
  2363. BYTE pos;
  2364. TRefineTable refine_table;
  2365. } TPacketGCRefineInformation;
  2366.  
  2367. typedef struct SPacketGCRefineInformationNew
  2368. {
  2369. BYTE header;
  2370. BYTE type;
  2371. BYTE pos;
  2372. TRefineTable refine_table;
  2373. } TPacketGCRefineInformationNew;
  2374.  
  2375. enum SPECIAL_EFFECT
  2376. {
  2377. SE_NONE,
  2378. SE_HPUP_RED,
  2379. SE_SPUP_BLUE,
  2380. SE_SPEEDUP_GREEN,
  2381. SE_DXUP_PURPLE,
  2382. SE_CRITICAL,
  2383. SE_PENETRATE,
  2384. SE_BLOCK,
  2385. SE_DODGE,
  2386. SE_CHINA_FIREWORK,
  2387. SE_SPIN_TOP,
  2388. SE_SUCCESS,
  2389. SE_FAIL,
  2390. SE_FR_SUCCESS,
  2391. SE_LEVELUP_ON_14_FOR_GERMANY, //·ΉΊ§Ύχ 14ΐΟ¶§ ( µ¶ΐΟΐόΏλ )
  2392. SE_LEVELUP_UNDER_15_FOR_GERMANY,//·ΉΊ§Ύχ 15ΐΟ¶§ ( µ¶ΐΟΐόΏλ )
  2393. SE_PERCENT_DAMAGE1,
  2394. SE_PERCENT_DAMAGE2,
  2395. SE_PERCENT_DAMAGE3,
  2396. SE_AUTO_HPUP,
  2397. SE_AUTO_SPUP,
  2398. SE_EQUIP_RAMADAN_RING, // ΓΚ½Β΄ήΐΗ ΉέΑφΈ¦ ΒψΏλΗϴ Όψ°£Ώ΅ ΉίµΏΗϴ ΐΜΖεΖ®
  2399. SE_EQUIP_HALLOWEEN_CANDY, // Η·Ξΐ© »ηΕΑΐ» ΒψΏλ(-_-;)ΗΡ Όψ°£Ώ΅ ΉίµΏΗϴ ΐΜΖεΖ®
  2400. SE_EQUIP_HAPPINESS_RING, // Ε©Έ®½ΊΈ¶½Ί ΗΰΊΉΐΗ ΉέΑφΈ¦ ΒψΏλΗϴ Όψ°£Ώ΅ ΉίµΏΗϴ ΐΜΖεΖ®
  2401. SE_EQUIP_LOVE_PENDANT, // Ήί·»ΕΈΐΞ »η¶ϋΐΗ Ζ΄ψΖ®(71145) ΒψΏλΗ ¶§ ΐΜΖεΖ® (ΉίµΏΐΜΖεΖ®ΐΣ, ΑφΌΣΐΜΖεΖ® ΎΖ΄Τ)
  2402. };
  2403.  
  2404. typedef struct SPacketGCSpecialEffect
  2405. {
  2406. BYTE header;
  2407. BYTE type;
  2408. DWORD vid;
  2409. } TPacketGCSpecialEffect;
  2410.  
  2411. typedef struct SPacketGCNPCPosition
  2412. {
  2413. BYTE header;
  2414. WORD size;
  2415. WORD count;
  2416. } TPacketGCNPCPosition;
  2417.  
  2418. struct TNPCPosition
  2419. {
  2420. BYTE bType;
  2421. char name[CHARACTER_NAME_MAX_LEN+1];
  2422. long x;
  2423. long y;
  2424. };
  2425.  
  2426. typedef struct SPacketGCChangeName
  2427. {
  2428. BYTE header;
  2429. DWORD pid;
  2430. char name[CHARACTER_NAME_MAX_LEN+1];
  2431. } TPacketGCChangeName;
  2432.  
  2433. enum EBlockAction
  2434. {
  2435. BLOCK_EXCHANGE = (1 << 0),
  2436. BLOCK_PARTY_INVITE = (1 << 1),
  2437. BLOCK_GUILD_INVITE = (1 << 2),
  2438. BLOCK_WHISPER = (1 << 3),
  2439. BLOCK_MESSENGER_INVITE = (1 << 4),
  2440. BLOCK_PARTY_REQUEST = (1 << 5),
  2441. };
  2442.  
  2443. typedef struct packet_china_matrixd_card
  2444. {
  2445. BYTE bHeader;
  2446. DWORD dwRows;
  2447. DWORD dwCols;
  2448. } TPacketGCChinaMatrixCard;
  2449.  
  2450. typedef struct packet_runup_matrixd_quiz
  2451. {
  2452. BYTE bHeader;
  2453. char szQuiz[RUNUP_MATRIX_QUIZ_MAX_LEN + 1];
  2454. } TPacketGCRunupMatrixQuiz;
  2455.  
  2456. typedef struct packet_newcibn_passpod_request
  2457. {
  2458. BYTE bHeader;
  2459. } TPacketGCNEWCIBNPasspodRequest;
  2460.  
  2461. typedef struct packet_newcibn_passpod_failure
  2462. {
  2463. BYTE bHeader;
  2464. char szMessage[NEWCIBN_PASSPOD_FAILURE_MAX_LEN + 1];
  2465. } TPacketGCNEWCIBNPasspodFailure;
  2466.  
  2467. typedef struct packet_login_key
  2468. {
  2469. BYTE bHeader;
  2470. DWORD dwLoginKey;
  2471. } TPacketGCLoginKey;
  2472.  
  2473. typedef struct packet_auth_success
  2474. {
  2475. BYTE bHeader;
  2476. DWORD dwLoginKey;
  2477. BYTE bResult;
  2478. } TPacketGCAuthSuccess;
  2479.  
  2480. typedef struct packet_auth_success_openid
  2481. {
  2482. BYTE bHeader;
  2483. DWORD dwLoginKey;
  2484. BYTE bResult;
  2485. char login[ID_MAX_NUM + 1];
  2486. } TPacketGCAuthSuccessOpenID;
  2487.  
  2488. typedef struct packet_channel
  2489. {
  2490. BYTE header;
  2491. BYTE channel;
  2492. } TPacketGCChannel;
  2493.  
  2494. typedef struct SEquipmentItemSet
  2495. {
  2496. DWORD vnum;
  2497. BYTE count;
  2498. long alSockets[ITEM_SOCKET_SLOT_MAX_NUM];
  2499. TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_SLOT_MAX_NUM];
  2500. } TEquipmentItemSet;
  2501.  
  2502. typedef struct pakcet_view_equip
  2503. {
  2504. BYTE header;
  2505. DWORD dwVID;
  2506. TEquipmentItemSet equips[WEAR_MAX_NUM];
  2507. } TPacketGCViewEquip;
  2508.  
  2509. typedef struct
  2510. {
  2511. DWORD dwID;
  2512. long x, y;
  2513. long width, height;
  2514. DWORD dwGuildID;
  2515. } TLandPacketElement;
  2516.  
  2517. typedef struct packet_land_list
  2518. {
  2519. BYTE header;
  2520. WORD size;
  2521. } TPacketGCLandList;
  2522.  
  2523. typedef struct
  2524. {
  2525. BYTE bHeader;
  2526. long lID;
  2527. char szTargetName[32+1];
  2528. } TPacketGCTargetCreate;
  2529.  
  2530. enum
  2531. {
  2532. CREATE_TARGET_TYPE_NONE,
  2533. CREATE_TARGET_TYPE_LOCATION,
  2534. CREATE_TARGET_TYPE_CHARACTER,
  2535. };
  2536.  
  2537. typedef struct
  2538. {
  2539. BYTE bHeader;
  2540. long lID;
  2541. char szTargetName[32+1];
  2542. DWORD dwVID;
  2543. BYTE byType;
  2544. } TPacketGCTargetCreateNew;
  2545.  
  2546. typedef struct
  2547. {
  2548. BYTE bHeader;
  2549. long lID;
  2550. long lX, lY;
  2551. } TPacketGCTargetUpdate;
  2552.  
  2553. typedef struct
  2554. {
  2555. BYTE bHeader;
  2556. long lID;
  2557. } TPacketGCTargetDelete;
  2558.  
  2559. typedef struct
  2560. {
  2561. DWORD dwType;
  2562. BYTE bPointIdxApplyOn;
  2563. long lApplyValue;
  2564. DWORD dwFlag;
  2565. long lDuration;
  2566. long lSPCost;
  2567. } TPacketAffectElement;
  2568.  
  2569. typedef struct
  2570. {
  2571. BYTE bHeader;
  2572. TPacketAffectElement elem;
  2573. } TPacketGCAffectAdd;
  2574.  
  2575. typedef struct
  2576. {
  2577. BYTE bHeader;
  2578. DWORD dwType;
  2579. BYTE bApplyOn;
  2580. } TPacketGCAffectRemove;
  2581.  
  2582. typedef struct packet_mall_open
  2583. {
  2584. BYTE bHeader;
  2585. BYTE bSize;
  2586. } TPacketGCMallOpen;
  2587.  
  2588. typedef struct packet_lover_info
  2589. {
  2590. BYTE bHeader;
  2591. char szName[CHARACTER_NAME_MAX_LEN + 1];
  2592. BYTE byLovePoint;
  2593. } TPacketGCLoverInfo;
  2594.  
  2595. typedef struct packet_love_point_update
  2596. {
  2597. BYTE bHeader;
  2598. BYTE byLovePoint;
  2599. } TPacketGCLovePointUpdate;
  2600.  
  2601. typedef struct packet_dig_motion
  2602. {
  2603. BYTE header;
  2604. DWORD vid;
  2605. DWORD target_vid;
  2606. BYTE count;
  2607. } TPacketGCDigMotion;
  2608.  
  2609. typedef struct SPacketGCOnTime
  2610. {
  2611. BYTE header;
  2612. int ontime; // sec
  2613. } TPacketGCOnTime;
  2614.  
  2615. typedef struct SPacketGCResetOnTime
  2616. {
  2617. BYTE header;
  2618. } TPacketGCResetOnTime;
  2619.  
  2620. typedef struct SPacketGCPanamaPack
  2621. {
  2622. BYTE bHeader;
  2623. char szPackName[256];
  2624. BYTE abIV[32];
  2625. } TPacketGCPanamaPack;
  2626.  
  2627. typedef struct SPacketGCHybridCryptKeys
  2628. {
  2629. private:
  2630. SPacketGCHybridCryptKeys() : m_pStream(NULL) {}
  2631.  
  2632. public:
  2633. SPacketGCHybridCryptKeys(int iStreamSize) : iKeyStreamLen(iStreamSize)
  2634. {
  2635. m_pStream = new BYTE[iStreamSize];
  2636. }
  2637. ~SPacketGCHybridCryptKeys()
  2638. {
  2639. if( m_pStream )
  2640. {
  2641. delete[] m_pStream;
  2642. m_pStream = NULL;
  2643. }
  2644. }
  2645. static int GetFixedHeaderSize()
  2646. {
  2647. return sizeof(BYTE)+sizeof(WORD)+sizeof(int);
  2648. }
  2649.  
  2650. BYTE bHeader;
  2651. WORD wDynamicPacketSize;
  2652. int iKeyStreamLen;
  2653. BYTE* m_pStream;
  2654.  
  2655. } TPacketGCHybridCryptKeys;
  2656.  
  2657.  
  2658. typedef struct SPacketGCHybridSDB
  2659. {
  2660. private:
  2661. SPacketGCHybridSDB() : m_pStream(NULL) {}
  2662.  
  2663. public:
  2664. SPacketGCHybridSDB(int iStreamSize) : iSDBStreamLen(iStreamSize)
  2665. {
  2666. m_pStream = new BYTE[iStreamSize];
  2667. }
  2668. ~SPacketGCHybridSDB()
  2669. {
  2670. delete[] m_pStream;
  2671. m_pStream = NULL;
  2672. }
  2673. static int GetFixedHeaderSize()
  2674. {
  2675. return sizeof(BYTE)+sizeof(WORD)+sizeof(int);
  2676. }
  2677.  
  2678. BYTE bHeader;
  2679. WORD wDynamicPacketSize;
  2680. int iSDBStreamLen;
  2681. BYTE* m_pStream;
  2682.  
  2683. } TPacketGCHybridSDB;
  2684. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2685. // Client To Client
  2686.  
  2687. typedef struct packet_state
  2688. {
  2689. BYTE bHeader;
  2690. BYTE bFunc;
  2691. BYTE bArg;
  2692. BYTE bRot;
  2693. DWORD dwVID;
  2694. DWORD dwTime;
  2695. TPixelPosition kPPos;
  2696. } TPacketCCState;
  2697.  
  2698. typedef struct packet_hs_check_req
  2699. {
  2700. BYTE bHeader;
  2701. AHNHS_TRANS_BUFFER Req;
  2702. } TPacketHSCheck;
  2703.  
  2704. //NOTE : recv/sendΏ΅ °ψΕλΐΈ·Ξ »ύ±θ, bPacketDataΐΗ ³»ΏλΈΈ ΉΩ²ο΄Ω.
  2705. typedef struct packet_xtrap_verify
  2706. {
  2707. BYTE bHeader;
  2708. BYTE bPacketData[128];
  2709.  
  2710. } TPacketXTrapCSVerify;
  2711. // AUTOBAN
  2712. typedef struct packet_autoban_quiz
  2713. {
  2714. BYTE bHeader;
  2715. BYTE bDuration;
  2716. BYTE bCaptcha[64*32];
  2717. char szQuiz[256];
  2718. } TPacketGCAutoBanQuiz;
  2719. // END_OF_AUTOBAN
  2720.  
  2721. #ifdef _IMPROVED_PACKET_ENCRYPTION_
  2722. struct TPacketKeyAgreement
  2723. {
  2724. static const int MAX_DATA_LEN = 256;
  2725. BYTE bHeader;
  2726. WORD wAgreedLength;
  2727. WORD wDataLength;
  2728. BYTE data[MAX_DATA_LEN];
  2729. };
  2730.  
  2731. struct TPacketKeyAgreementCompleted
  2732. {
  2733. BYTE bHeader;
  2734. BYTE data[3]; // dummy (not used)
  2735. };
  2736. #endif // _IMPROVED_PACKET_ENCRYPTION_
  2737.  
  2738. #ifdef __AUCTION__
  2739. // ArgumentΐΗ Ώλµµ΄Β cmdΏ΅ µϋ¶σ ΄ΩΈ£΄Ω.
  2740. typedef struct SPacketCGAuctionCmd
  2741. {
  2742. BYTE bHeader;
  2743. BYTE cmd;
  2744. int arg1;
  2745. int arg2;
  2746. int arg3;
  2747. int arg4;
  2748. } TPacketCGAuctionCmd;
  2749.  
  2750. typedef struct SPacketGCAuctionItemListPack
  2751. {
  2752. BYTE bHeader;
  2753. BYTE bNumbers;
  2754. } TPacketGCAuctionItemListPack;
  2755.  
  2756. #endif
  2757.  
  2758. typedef struct SPacketGCSpecificEffect
  2759. {
  2760. BYTE header;
  2761. DWORD vid;
  2762. char effect_file[128];
  2763. } TPacketGCSpecificEffect;
  2764.  
  2765. // ΏλΘ¥Ό®
  2766. enum EDragonSoulRefineWindowRefineType
  2767. {
  2768. DragonSoulRefineWindow_UPGRADE,
  2769. DragonSoulRefineWindow_IMPROVEMENT,
  2770. DragonSoulRefineWindow_REFINE,
  2771. };
  2772.  
  2773. enum EPacketCGDragonSoulSubHeaderType
  2774. {
  2775. DS_SUB_HEADER_OPEN,
  2776. DS_SUB_HEADER_CLOSE,
  2777. DS_SUB_HEADER_DO_UPGRADE,
  2778. DS_SUB_HEADER_DO_IMPROVEMENT,
  2779. DS_SUB_HEADER_DO_REFINE,
  2780. DS_SUB_HEADER_REFINE_FAIL,
  2781. DS_SUB_HEADER_REFINE_FAIL_MAX_REFINE,
  2782. DS_SUB_HEADER_REFINE_FAIL_INVALID_MATERIAL,
  2783. DS_SUB_HEADER_REFINE_FAIL_NOT_ENOUGH_MONEY,
  2784. DS_SUB_HEADER_REFINE_FAIL_NOT_ENOUGH_MATERIAL,
  2785. DS_SUB_HEADER_REFINE_FAIL_TOO_MUCH_MATERIAL,
  2786. DS_SUB_HEADER_REFINE_SUCCEED,
  2787. };
  2788.  
  2789. typedef struct SPacketCGDragonSoulRefine
  2790. {
  2791. SPacketCGDragonSoulRefine() : header (HEADER_CG_DRAGON_SOUL_REFINE)
  2792. {}
  2793. BYTE header;
  2794. BYTE bSubType;
  2795. TItemPos ItemGrid[DS_REFINE_WINDOW_MAX_NUM];
  2796. } TPacketCGDragonSoulRefine;
  2797.  
  2798. typedef struct SPacketGCDragonSoulRefine
  2799. {
  2800. SPacketGCDragonSoulRefine() : header(HEADER_GC_DRAGON_SOUL_REFINE)
  2801. {}
  2802. BYTE header;
  2803. BYTE bSubType;
  2804. TItemPos Pos;
  2805. } TPacketGCDragonSoulRefine;
  2806.  
  2807. typedef struct SChannelStatus
  2808. {
  2809. short nPort;
  2810. BYTE bStatus;
  2811. } TChannelStatus;
  2812.  
  2813. #pragma pack(pop)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement