Guest User

Untitled

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