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

Client