From 4c7696dc9229baf6f79d1433883aef49c1cb66a7 Mon Sep 17 00:00:00 2001 From: CPunch Date: Tue, 7 Mar 2023 16:28:34 -0600 Subject: [PATCH] genstructs.py now also scrapes constant definitions --- protocol/consts.go | 834 -------------------------------------------- protocol/structs.go | 795 +++++++++++++++++++++++++++++++++++++++++ tools/genstructs.py | 78 ++++- 3 files changed, 860 insertions(+), 847 deletions(-) delete mode 100644 protocol/consts.go diff --git a/protocol/consts.go b/protocol/consts.go deleted file mode 100644 index d17aba0..0000000 --- a/protocol/consts.go +++ /dev/null @@ -1,834 +0,0 @@ -package protocol - -const ( - SUCC = 1 - FAIL = 0 - - SIZEOF_BYTE = 1 - SIZEOF_DWORD = 4 - SIZEOF_INT = 4 - SIZEOF_FLOAT = 4 - SIZEOF_SHORT = 2 - SIZEOF_ULONG = 4 - SIZEOF_UINT64 = 8 - SIZEOF_IP_STRING = 16 - SIZEOF_CN_UID_STRING = 50 - SIZEOF_ACCOUNT_STRING = 33 - SIZEOF_PASSWORD_STRING = 33 - SIZEOF_AUTH_ID_STRING = 255 - - CN_MAX_COUNT_GROUP_MEMBER = 5 - CN_MAX_COUNT_PC_GROUP_MEMBER = 4 - CN_MAX_COUNT_NPC_GROUP_MEMBER = 5 - - CHAT_MAX_STRING = 128 - PC_START_LOCATION_RANDOM_RANGE = 10000 - SIZEOF_ANNOUNCE_STRING = 512 - SERVER_COUNT_SHARD_CLIENT = 25 - - EXIT_CODE_DISCONNECT = 0 - EXIT_CODE_REQ_BY_PC = 1 - EXIT_CODE_REQ_BY_SVR = 2 - EXIT_CODE_REQ_BY_GM = 3 - EXIT_CODE_HACK = 4 - EXIT_CODE_ERROR = 5 - EXIT_CODE_LIVE_CHECK = 6 - EXIT_CODE_REQ_BY_PC_DUPE_LOGIN = 7 - EXIT_CODE_SERVER_ERROR = 99 - - SIZEOF_USER_ID = 32 - SIZEOF_USER_PW = 32 - SIZEOF_PC_SLOT = 4 - SIZEOF_PC_NAME = 16 - SIZEOF_PC_FIRST_NAME = 9 - SIZEOF_PC_LAST_NAME = 17 - SIZEOF_PC_NAME_FLAG = 8 - - GENDER_NONE = 0 - GENDER_MALE = 1 - GENDER_FEMALE = 2 - - MENTOR_CHANGE_BASE_COST = 100 - REPEAT_MISSION_RESET_TIME = 9 - SIZEOF_REPEAT_QUESTFLAG_NUMBER = 8 - FATIGUE_RESET_TIME = 0 - - PC_FATIGUE_KILL_UNIT = 7 - PC_FATIGUE_1_LEVEL = 11420 - PC_FATIGUE_2_LEVEL = 6480 - PC_FATIGUE_MAX_LEVEL = 2 - PC_FUSIONMATTER_MAX = 999999999 - PC_CANDY_MAX = 999999999 - PC_BATTERY_MAX = 9999 - PC_LEVEL_MAX = 36 - SIZEOF_PC_BULLET_SLOT = 3 - PC_TICK_TIME = 5000 - SIZEOF_EQUIP_SLOT = 9 - - EQUIP_SLOT_HAND = 0 - EQUIP_SLOT_UPPERBODY = 1 - EQUIP_SLOT_LOWERBODY = 2 - EQUIP_SLOT_FOOT = 3 - EQUIP_SLOT_HEAD = 4 - EQUIP_SLOT_FACE = 5 - EQUIP_SLOT_BACK = 6 - EQUIP_SLOT_END = 6 - EQUIP_SLOT_HAND_EX = 7 - EQUIP_SLOT_VEHICLE = 8 - - LOGIN_FAIL_DB_ERROR = 0 - LOGIN_FAIL_ID_ERROR = 1 - LOGIN_FAIL_ID_PW_MATCH_ERROR = 2 - LOGIN_FAIL_DUP_ERROR = 3 - LOGIN_FAIL_VERSION_ERROR = 6 - LOGIN_FAIL_NOT_BETA_ERROR = 7 - LOGIN_FAIL_CN_SERVICE_ERROR = 8 - LOGIN_FAIL_EULA_ERROR = 9 - - WPN_EQUIP_TYPE_NONE = 0 - WPN_EQUIP_TYPE_OH_BLADE = 1 - WPN_EQUIP_TYPE_OH_CLUB = 2 - WPN_EQUIP_TYPE_OH_PISTOL = 3 - WPN_EQUIP_TYPE_OH_RIPLE = 4 - WPN_EQUIP_TYPE_OH_THROW = 5 - WPN_EQUIP_TYPE_DH_BLADE = 6 - WPN_EQUIP_TYPE_DH_CLUB = 7 - WPN_EQUIP_TYPE_DH_DPISTOL = 8 - WPN_EQUIP_TYPE_DH_RIPLE = 9 - WPN_EQUIP_TYPE_DH_THROW = 10 - WPN_EQUIP_TYPE_DH_ROCKET = 11 - - SIZEOF_INVEN_SLOT = 50 - SIZEOF_QINVEN_SLOT = 50 - SIZEOF_BANK_SLOT = 119 - SIZEOF_RESTORE_SLOT = 5 - SIZEOF_NANO_BANK_SLOT = 37 - SIZEOF_QUEST_SLOT = 1024 - NANO_QUEST_INDEX = 0 - SIZEOF_RQUEST_SLOT = 9 - SIZEOF_QUESTFLAG_NUMBER = 32 - SIZEOF_EP_RECORD_SLOT = 51 - SIZEOF_TRADE_SLOT = 12 - SIZEOF_VENDOR_TABLE_SLOT = 20 - SIZEOF_VENDOR_RESTORE_SLOT = 5 - SIZEOF_QUEST_NPC_SLOT = 3 - SIZEOF_QUEST_ITEM_SLOT = 3 - SIZEOF_MAX_ITEM_STACK = 100 - SIZEOF_PC_SKILL_SLOT = 33 - SIZEOF_QUICK_SLOT = 8 - ENCHANT_WEAPON_MATERIAL_ID = 101 - ENCHANT_DEFENCE_MATERIAL_ID = 102 - SIZEOF_NANO_CARRY_SLOT = 3 - COUNTOF_NANO_PER_SET = 3 - SIZEOF_NANO_SET = 13 - SIZEOF_NANO_STYLE = 3 - NANO_STYLE_NONE = 1 - NANO_STYLE_CRYSTAL = 0 - NANO_STYLE_ENERGY = 1 - NANO_STYLE_FLUID = 2 - SIZEOF_NANO_TYPE = 4 - NANO_TYPE_POWER = 0 - NANO_TYPE_ACCURACY = 1 - NANO_TYPE_PROTECT = 2 - NANO_TYPE_DODGE = 3 - SIZEOF_NANO_TUNE_NEED_ITEM_SLOT = 10 - VALUE_ATTACK_MISS = 1 - - MSG_ONLINE = 1 - MSG_BUSY = 2 - MSG_OFFLINE = 0 - SIZEOF_FREE_CHAT_STRING = 128 - SIZEOF_MENU_CHAT_STRING = 128 - SIZEOF_BUDDYLIST_SLOT = 50 - SIZEOF_EMAIL_SUBJECT_STRING = 32 - SIZEOF_EMAIL_CONTENT_STRING = 512 - SIZEOF_EMAIL_PAGE_SIZE = 5 - SIZEOF_EMAIL_ITEM_CNT = 4 - EMAIL_AND_MONEY_COST = 50 - EMAIL_ITEM_COST = 20 - BUDDYWARP_INTERVAL = 60 - EMAILSEND_TIME_DELAY = 60 - DB_ERROR_INVALID_DATA = 1 - DB_ERROR_HACK_ATTEMPT = 2 - DB_ERROR_ACCESS_FAIL = 3 - DB_ERROR_PC_INSERT_FAIL = 4 - CALL_NPC_MAX_CNT = 2048 - - CN_EP_RING_MAX_CNT = 999 - - HF_BIT_NONE = 0 - HF_BIT_NORMAL = 1 - HF_BIT_CRITICAL = 2 - HF_BIT_STYLE_WIN = 4 - HF_BIT_STYLE_TIE = 8 - HF_BIT_STYLE_LOSE = 16 - SKIN_COLOR_MAX = 12 - HAIR_COLOR_MAX = 18 - EYE_COLOR_MAX = 5 - BODY_TYPE_MAX = 3 - HEIGHT_TYPE_MAX = 5 - CLASS_TYPE_MAX = 4 - CN_EP_RACE_MODE_PRACTICE = 0 - CN_EP_RACE_MODE_RECORD = 1 - CN_EP_SECOM_NPC_TYPE_NUM = 13 - CN_EP_EECOM_NPC_TYPE_NUM = 14 - CN_EP_SIZE_SMALL = 0 - CN_EP_SIZE_MIDDLE = 1 - CN_EP_SIZE_BIG = 2 - CN_EP_TICKET_ITEM_ID_SMALL = 115 - CN_EP_TICKET_ITEM_ID_MIDDLE = 116 - CN_EP_TICKET_ITEM_ID_BIG = 117 - CN_EP_TICKET_ITEM_ID_FREE = 118 - CN_EP_DISTANCE_ERROR_SAFE_RANGE = 1200 - - CN_ACCOUNT_LEVEL__MASTER = 1 - CN_ACCOUNT_LEVEL__POWER_DEVELOPER = 10 - CN_ACCOUNT_LEVEL__QA = 20 - CN_ACCOUNT_LEVEL__GM = 30 - CN_ACCOUNT_LEVEL__CS = 40 - CN_ACCOUNT_LEVEL__FREE_USER = 48 - CN_ACCOUNT_LEVEL__PAY_USER = 49 - CN_ACCOUNT_LEVEL__DEVELOPER = 50 - CN_ACCOUNT_LEVEL__CLOSEBETA_USER = 80 - CN_ACCOUNT_LEVEL__OPENBETA_USER = 85 - CN_ACCOUNT_LEVEL__USER = 99 - - CN_SPECIAL_STATE_FLAG__PRINT_GM = 1 - CN_SPECIAL_STATE_FLAG__INVISIBLE = 2 - CN_SPECIAL_STATE_FLAG__INVULNERABLE = 4 - CN_SPECIAL_STATE_FLAG__FULL_UI = 16 - CN_SPECIAL_STATE_FLAG__COMBAT = 32 - CN_SPECIAL_STATE_FLAG__MUTE_FREECHAT = 64 - - CN_GM_SET_VALUE_TYPE__HP = 1 - CN_GM_SET_VALUE_TYPE__WEAPON_BATTERY = 2 - CN_GM_SET_VALUE_TYPE__NANO_BATTERY = 3 - CN_GM_SET_VALUE_TYPE__FUSION_MATTER = 4 - CN_GM_SET_VALUE_TYPE__CANDY = 5 - CN_GM_SET_VALUE_TYPE__SPEED = 6 - CN_GM_SET_VALUE_TYPE__JUMP = 7 - CN_GM_SET_VALUE_TYPE__END = 8 - - HEIGHT_CLIMBABLE = 150 - CN_GROUP_WARP_CHECK_RANGE = 1000 - WYVERN_LOCATION_FLAG_SIZE = 2 - CN_PC_EVENT_ID_GET_NANO_QUEST = 1 - CN_PC_EVENT_ID_DEFEAT_FUSE_AND_GET_NANO = 2 - _dCN_STREETSTALL__ITEMLIST_COUNT_MAX = 5 - - CSB_BIT_NONE = 0 // 0 - CSB_BIT_UP_MOVE_SPEED = 0x1 // 1 - CSB_BIT_UP_SWIM_SPEED = 0x2 // 2 - CSB_BIT_UP_JUMP_HEIGHT = 0x4 // 4 - CSB_BIT_UP_STEALTH = 0x8 // 8 - CSB_BIT_PHOENIX = 0x10 // 16 - CSB_BIT_PROTECT_BATTERY = 0x20 // 32 - CSB_BIT_PROTECT_INFECTION = 0x40 // 64 - CSB_BIT_DN_MOVE_SPEED = 0x80 // 128 - CSB_BIT_DN_ATTACK_SPEED = 0x100 // 256 - CSB_BIT_STUN = 0x200 // 512 - CSB_BIT_MEZ = 0x400 // 1024 - CSB_BIT_KNOCKDOWN = 0x800 // 2048 - CSB_BIT_MINIMAP_ENEMY = 0x1000 // 4096 - CSB_BIT_MINIMAP_TRESURE = 0x2000 // 8192 - CSB_BIT_REWARD_BLOB = 0x4000 // 16384 - CSB_BIT_REWARD_CASH = 0x8000 // 32768 - CSB_BIT_INFECTION = 0x10000 // 65536 - CSB_BIT_FREEDOM = 0x20000 // 131072 - CSB_BIT_BOUNDINGBALL = 0x40000 // 262144 - CSB_BIT_INVULNERABLE = 0x80000 // 524288 - CSB_BIT_STIMPAKSLOT1 = 0x100000 // 1048576 - CSB_BIT_STIMPAKSLOT2 = 0x200000 // 2097152 - CSB_BIT_STIMPAKSLOT3 = 0x400000 // 4194304 - CSB_BIT_HEAL = 0x800000 // 8388608 - CSB_BIT_EXTRABANK = 0x1000000 // 16777216 - - TIME_BUFF_CONFIRM_KEY_MAX = 2000000000 - READPACKET_SUCC = 0 - READPACKET_FAIL = 1 - READPACKET_RETURN = 2 - BITMASK_FROM2TO = 0x7fffffff // 2147483647 - BITMASK_FROM = 0x7fffffff // 2147483647 - BITMASK_TO = 0xf000000 // 251658240 - BITMASK_SENDBLOCK = 0x800000 // 8388608 - BITMASK_AUTHED = 0x400000 // 4194304 - BITMASK_U_ID = 0xfff // 4095 - - CL2LS = 0x12000000 - CL2FE = 0x13000000 - LS2CL = 0x21000000 - LS2LS = 0x22000000 - LS2DBA = 0x27000000 - FE2CL = 0x31000000 - FE2FE = 0x33000000 - FE2GS = 0x34000000 - FE2EP = 0x36000000 - FE2MSG = 0x38000000 - GS2FE = 0x43000000 - GS2GS = 0x44000000 - GS2AI = 0x45000000 - GS2EP = 0x46000000 - GS2DBA = 0x47000000 - GS2MSG = 0x48000000 - GS2MGR = 0x4a000000 - AI2GS = 0x54000000 - EP2FE = 0x63000000 - EP2GS = 0x64000000 - DBA2GS = 0x74000000 - DBA2EP = 0x75000000 - MSG2FE = 0x7fffffff - MSG2GS = 0x7fffffff - MSG2CMSG = 0x7fffffff - CMSG2MSG = 0x7fffffff - MGR2SPY = 0x7fffffff - SPY2MGR = 0x7fffffff - MGR2SA = 0x7fffffff - SA2MGR = 0x7fffffff - SA2SPY = 0x7fffffff - SPY2SA = 0x7fffffff - SPY2SVR = 0x7fffffff - SVR2SPY = 0x7fffffff - SCH2SVR = 0x7fffffff - SCH2LS = 0x7fffffff - SCH2FE = 0x7fffffff - SCH2GS = 0x7fffffff - SCH2AI = 0x7fffffff - SCH2EP = 0x7fffffff - SCH2DBA = 0x7fffffff - SCH2MSG = 0x7fffffff - SCH2CMSG = 0x7fffffff - CL2CDR = 0x1f000000 - - SENDBLOCK = 0x800000 // 8388608 - AUTHED_X = 0 // 0 - AUTHED_O = 0x400000 // 4194304 - - SEND_SVR_FE = 1 - SEND_SVR_FE_ANY = 2 - SEND_SVR_FE_ALL = 3 - SEND_SVR_AI = 4 - SEND_SVR_AI_ANY = 5 - SEND_SVR_AI_ALL = 6 - SEND_SVR_FE_AI_ALL = 7 - SEND_SVR_DBA = 8 - SEND_SVR_GS = 9 - SEND_SVR_MSG = 10 - SEND_SVR_MSG_ANY = 11 - SEND_SVR_MSG_ALL = 12 - - SEND_UNICAST = 1 - SEND_ANYCAST = 2 - SEND_ANYCAST_NEW = 3 - SEND_BROADCAST = 4 - - CN_PACKET_BUFFER_SIZE = 4096 - - P_CL2LS_REQ_LOGIN = 0x12000001 // 301989889 - P_CL2LS_REQ_CHECK_CHAR_NAME = 0x12000002 // 301989890 - P_CL2LS_REQ_SAVE_CHAR_NAME = 0x12000003 // 301989891 - P_CL2LS_REQ_CHAR_CREATE = 0x12000004 // 301989892 - P_CL2LS_REQ_CHAR_SELECT = 0x12000005 // 301989893 - P_CL2LS_REQ_CHAR_DELETE = 0x12000006 // 301989894 - P_CL2LS_REQ_SHARD_SELECT = 0x12000007 // 301989895 - P_CL2LS_REQ_SHARD_LIST_INFO = 0x12000008 // 301989896 - P_CL2LS_CHECK_NAME_LIST = 0x12000009 // 301989897 - P_CL2LS_REQ_SAVE_CHAR_TUTOR = 0x1200000a // 301989898 - P_CL2LS_REQ_PC_EXIT_DUPLICATE = 0x1200000b // 301989899 - P_CL2LS_REP_LIVE_CHECK = 0x1200000c // 301989900 - P_CL2LS_REQ_CHANGE_CHAR_NAME = 0x1200000d // 301989901 - P_CL2LS_REQ_SERVER_SELECT = 0x1200000e // 301989902 - - P_CL2FE_REQ_PC_ENTER = 0x13000001 // 318767105 - P_CL2FE_REQ_PC_EXIT = 0x13000002 // 318767106 - P_CL2FE_REQ_PC_MOVE = 0x13000003 // 318767107 - P_CL2FE_REQ_PC_STOP = 0x13000004 // 318767108 - P_CL2FE_REQ_PC_JUMP = 0x13000005 // 318767109 - P_CL2FE_REQ_PC_ATTACK_NPCs = 0x13000006 // 318767110 - P_CL2FE_REQ_SEND_FREECHAT_MESSAGE = 0x13000007 // 318767111 - P_CL2FE_REQ_SEND_MENUCHAT_MESSAGE = 0x13000008 // 318767112 - P_CL2FE_REQ_PC_REGEN = 0x13000009 // 318767113 - P_CL2FE_REQ_ITEM_MOVE = 0x1300000a // 318767114 - P_CL2FE_REQ_PC_TASK_START = 0x1300000b // 318767115 - P_CL2FE_REQ_PC_TASK_END = 0x1300000c // 318767116 - P_CL2FE_REQ_NANO_EQUIP = 0x1300000d // 318767117 - P_CL2FE_REQ_NANO_UNEQUIP = 0x1300000e // 318767118 - P_CL2FE_REQ_NANO_ACTIVE = 0x1300000f // 318767119 - P_CL2FE_REQ_NANO_TUNE = 0x13000010 // 318767120 - P_CL2FE_REQ_NANO_SKILL_USE = 0x13000011 // 318767121 - P_CL2FE_REQ_PC_TASK_STOP = 0x13000012 // 318767122 - P_CL2FE_REQ_PC_TASK_CONTINUE = 0x13000013 // 318767123 - P_CL2FE_REQ_PC_GOTO = 0x13000014 // 318767124 - P_CL2FE_REQ_CHARGE_NANO_STAMINA = 0x13000015 // 318767125 - P_CL2FE_REQ_PC_KILL_QUEST_NPCs = 0x13000016 // 318767126 - P_CL2FE_REQ_PC_VENDOR_ITEM_BUY = 0x13000017 // 318767127 - P_CL2FE_REQ_PC_VENDOR_ITEM_SELL = 0x13000018 // 318767128 - P_CL2FE_REQ_PC_ITEM_DELETE = 0x13000019 // 318767129 - P_CL2FE_REQ_PC_GIVE_ITEM = 0x1300001a // 318767130 - P_CL2FE_REQ_PC_ROCKET_STYLE_READY = 0x1300001b // 318767131 - P_CL2FE_REQ_PC_ROCKET_STYLE_FIRE = 0x1300001c // 318767132 - P_CL2FE_REQ_PC_ROCKET_STYLE_HIT = 0x1300001d // 318767133 - P_CL2FE_REQ_PC_GRENADE_STYLE_READY = 0x1300001e // 318767134 - P_CL2FE_REQ_PC_GRENADE_STYLE_FIRE = 0x1300001f // 318767135 - P_CL2FE_REQ_PC_GRENADE_STYLE_HIT = 0x13000020 // 318767136 - P_CL2FE_REQ_PC_NANO_CREATE = 0x13000021 // 318767137 - P_CL2FE_REQ_PC_TRADE_OFFER = 0x13000022 // 318767138 - P_CL2FE_REQ_PC_TRADE_OFFER_CANCEL = 0x13000023 // 318767139 - P_CL2FE_REQ_PC_TRADE_OFFER_ACCEPT = 0x13000024 // 318767140 - P_CL2FE_REQ_PC_TRADE_OFFER_REFUSAL = 0x13000025 // 318767141 - P_CL2FE_REQ_PC_TRADE_OFFER_ABORT = 0x13000026 // 318767142 - P_CL2FE_REQ_PC_TRADE_CONFIRM = 0x13000027 // 318767143 - P_CL2FE_REQ_PC_TRADE_CONFIRM_CANCEL = 0x13000028 // 318767144 - P_CL2FE_REQ_PC_TRADE_CONFIRM_ABORT = 0x13000029 // 318767145 - P_CL2FE_REQ_PC_TRADE_ITEM_REGISTER = 0x1300002a // 318767146 - P_CL2FE_REQ_PC_TRADE_ITEM_UNREGISTER = 0x1300002b // 318767147 - P_CL2FE_REQ_PC_TRADE_CASH_REGISTER = 0x1300002c // 318767148 - P_CL2FE_REQ_PC_TRADE_EMOTES_CHAT = 0x1300002d // 318767149 - P_CL2FE_REQ_PC_BANK_OPEN = 0x1300002e // 318767150 - P_CL2FE_REQ_PC_BANK_CLOSE = 0x1300002f // 318767151 - P_CL2FE_REQ_PC_VENDOR_START = 0x13000030 // 318767152 - P_CL2FE_REQ_PC_VENDOR_TABLE_UPDATE = 0x13000031 // 318767153 - P_CL2FE_REQ_PC_VENDOR_ITEM_RESTORE_BUY = 0x13000032 // 318767154 - P_CL2FE_REQ_PC_COMBAT_BEGIN = 0x13000033 // 318767155 - P_CL2FE_REQ_PC_COMBAT_END = 0x13000034 // 318767156 - P_CL2FE_REQ_REQUEST_MAKE_BUDDY = 0x13000035 // 318767157 - P_CL2FE_REQ_ACCEPT_MAKE_BUDDY = 0x13000036 // 318767158 - P_CL2FE_REQ_SEND_BUDDY_FREECHAT_MESSAGE = 0x13000037 // 318767159 - P_CL2FE_REQ_SEND_BUDDY_MENUCHAT_MESSAGE = 0x13000038 // 318767160 - P_CL2FE_REQ_GET_BUDDY_STYLE = 0x13000039 // 318767161 - P_CL2FE_REQ_SET_BUDDY_BLOCK = 0x1300003a // 318767162 - P_CL2FE_REQ_REMOVE_BUDDY = 0x1300003b // 318767163 - P_CL2FE_REQ_GET_BUDDY_STATE = 0x1300003c // 318767164 - P_CL2FE_REQ_PC_JUMPPAD = 0x1300003d // 318767165 - P_CL2FE_REQ_PC_LAUNCHER = 0x1300003e // 318767166 - P_CL2FE_REQ_PC_ZIPLINE = 0x1300003f // 318767167 - P_CL2FE_REQ_PC_MOVEPLATFORM = 0x13000040 // 318767168 - P_CL2FE_REQ_PC_SLOPE = 0x13000041 // 318767169 - P_CL2FE_REQ_PC_STATE_CHANGE = 0x13000042 // 318767170 - P_CL2FE_REQ_PC_MAP_WARP = 0x13000043 // 318767171 - P_CL2FE_REQ_PC_GIVE_NANO = 0x13000044 // 318767172 - P_CL2FE_REQ_NPC_SUMMON = 0x13000045 // 318767173 - P_CL2FE_REQ_NPC_UNSUMMON = 0x13000046 // 318767174 - P_CL2FE_REQ_ITEM_CHEST_OPEN = 0x13000047 // 318767175 - P_CL2FE_REQ_PC_GIVE_NANO_SKILL = 0x13000048 // 318767176 - P_CL2FE_DOT_DAMAGE_ONOFF = 0x13000049 // 318767177 - P_CL2FE_REQ_PC_VENDOR_BATTERY_BUY = 0x1300004a // 318767178 - P_CL2FE_REQ_PC_WARP_USE_NPC = 0x1300004b // 318767179 - P_CL2FE_REQ_PC_GROUP_INVITE = 0x1300004c // 318767180 - P_CL2FE_REQ_PC_GROUP_INVITE_REFUSE = 0x1300004d // 318767181 - P_CL2FE_REQ_PC_GROUP_JOIN = 0x1300004e // 318767182 - P_CL2FE_REQ_PC_GROUP_LEAVE = 0x1300004f // 318767183 - P_CL2FE_REQ_PC_AVATAR_EMOTES_CHAT = 0x13000050 // 318767184 - P_CL2FE_REQ_PC_BUDDY_WARP = 0x13000051 // 318767185 - P_CL2FE_REQ_GET_MEMBER_STYLE = 0x13000052 // 318767186 - P_CL2FE_REQ_GET_GROUP_STYLE = 0x13000053 // 318767187 - P_CL2FE_REQ_PC_CHANGE_MENTOR = 0x13000054 // 318767188 - P_CL2FE_REQ_GET_BUDDY_LOCATION = 0x13000055 // 318767189 - P_CL2FE_REQ_NPC_GROUP_SUMMON = 0x13000056 // 318767190 - P_CL2FE_REQ_PC_WARP_TO_PC = 0x13000057 // 318767191 - P_CL2FE_REQ_EP_RANK_GET_LIST = 0x13000058 // 318767192 - P_CL2FE_REQ_EP_RANK_GET_DETAIL = 0x13000059 // 318767193 - P_CL2FE_REQ_EP_RANK_GET_PC_INFO = 0x1300005a // 318767194 - P_CL2FE_REQ_EP_RACE_START = 0x1300005b // 318767195 - P_CL2FE_REQ_EP_RACE_END = 0x1300005c // 318767196 - P_CL2FE_REQ_EP_RACE_CANCEL = 0x1300005d // 318767197 - P_CL2FE_REQ_EP_GET_RING = 0x1300005e // 318767198 - P_CL2FE_REQ_IM_CHANGE_SWITCH_STATUS = 0x1300005f // 318767199 - P_CL2FE_REQ_SHINY_PICKUP = 0x13000060 // 318767200 - P_CL2FE_REQ_SHINY_SUMMON = 0x13000061 // 318767201 - P_CL2FE_REQ_PC_MOVETRANSPORTATION = 0x13000062 // 318767202 - P_CL2FE_REQ_SEND_ALL_GROUP_FREECHAT_MESSAGE = 0x13000063 // 318767203 - P_CL2FE_REQ_SEND_ANY_GROUP_FREECHAT_MESSAGE = 0x13000064 // 318767204 - P_CL2FE_REQ_BARKER = 0x13000065 // 318767205 - P_CL2FE_REQ_SEND_ALL_GROUP_MENUCHAT_MESSAGE = 0x13000066 // 318767206 - P_CL2FE_REQ_SEND_ANY_GROUP_MENUCHAT_MESSAGE = 0x13000067 // 318767207 - P_CL2FE_REQ_REGIST_TRANSPORTATION_LOCATION = 0x13000068 // 318767208 - P_CL2FE_REQ_PC_WARP_USE_TRANSPORTATION = 0x13000069 // 318767209 - P_CL2FE_GM_REQ_PC_SPECIAL_STATE_SWITCH = 0x1300006a // 318767210 - P_CL2FE_GM_REQ_PC_SET_VALUE = 0x1300006b // 318767211 - P_CL2FE_GM_REQ_KICK_PLAYER = 0x1300006c // 318767212 - P_CL2FE_GM_REQ_TARGET_PC_TELEPORT = 0x1300006d // 318767213 - P_CL2FE_GM_REQ_PC_LOCATION = 0x1300006e // 318767214 - P_CL2FE_GM_REQ_PC_ANNOUNCE = 0x1300006f // 318767215 - P_CL2FE_REQ_SET_PC_BLOCK = 0x13000070 // 318767216 - P_CL2FE_REQ_REGIST_RXCOM = 0x13000071 // 318767217 - P_CL2FE_GM_REQ_PC_MOTD_REGISTER = 0x13000072 // 318767218 - P_CL2FE_REQ_ITEM_USE = 0x13000073 // 318767219 - P_CL2FE_REQ_WARP_USE_RECALL = 0x13000074 // 318767220 - P_CL2FE_REP_LIVE_CHECK = 0x13000075 // 318767221 - P_CL2FE_REQ_PC_MISSION_COMPLETE = 0x13000076 // 318767222 - P_CL2FE_REQ_PC_TASK_COMPLETE = 0x13000077 // 318767223 - P_CL2FE_REQ_NPC_INTERACTION = 0x13000078 // 318767224 - P_CL2FE_DOT_HEAL_ONOFF = 0x13000079 // 318767225 - P_CL2FE_REQ_PC_SPECIAL_STATE_SWITCH = 0x1300007a // 318767226 - P_CL2FE_REQ_PC_EMAIL_UPDATE_CHECK = 0x1300007b // 318767227 - P_CL2FE_REQ_PC_READ_EMAIL = 0x1300007c // 318767228 - P_CL2FE_REQ_PC_RECV_EMAIL_PAGE_LIST = 0x1300007d // 318767229 - P_CL2FE_REQ_PC_DELETE_EMAIL = 0x1300007e // 318767230 - P_CL2FE_REQ_PC_SEND_EMAIL = 0x1300007f // 318767231 - P_CL2FE_REQ_PC_RECV_EMAIL_ITEM = 0x13000080 // 318767232 - P_CL2FE_REQ_PC_RECV_EMAIL_CANDY = 0x13000081 // 318767233 - P_CL2FE_GM_REQ_TARGET_PC_SPECIAL_STATE_ONOFF = 0x13000082 // 318767234 - P_CL2FE_REQ_PC_SET_CURRENT_MISSION_ID = 0x13000083 // 318767235 - P_CL2FE_REQ_NPC_GROUP_INVITE = 0x13000084 // 318767236 - P_CL2FE_REQ_NPC_GROUP_KICK = 0x13000085 // 318767237 - P_CL2FE_REQ_PC_FIRST_USE_FLAG_SET = 0x13000086 // 318767238 - P_CL2FE_REQ_PC_TRANSPORT_WARP = 0x13000087 // 318767239 - P_CL2FE_REQ_PC_TIME_TO_GO_WARP = 0x13000088 // 318767240 - P_CL2FE_REQ_PC_RECV_EMAIL_ITEM_ALL = 0x13000089 // 318767241 - P_CL2FE_REQ_CHANNEL_INFO = 0x1300008a // 318767242 - P_CL2FE_REQ_PC_CHANNEL_NUM = 0x1300008b // 318767243 - P_CL2FE_REQ_PC_WARP_CHANNEL = 0x1300008c // 318767244 - P_CL2FE_REQ_PC_LOADING_COMPLETE = 0x1300008d // 318767245 - P_CL2FE_REQ_PC_FIND_NAME_MAKE_BUDDY = 0x1300008e // 318767246 - P_CL2FE_REQ_PC_FIND_NAME_ACCEPT_BUDDY = 0x1300008f // 318767247 - P_CL2FE_REQ_PC_ATTACK_CHARs = 0x13000090 // 318767248 - P_CL2FE_PC_STREETSTALL_REQ_READY = 0x13000091 // 318767249 - P_CL2FE_PC_STREETSTALL_REQ_CANCEL = 0x13000092 // 318767250 - P_CL2FE_PC_STREETSTALL_REQ_REGIST_ITEM = 0x13000093 // 318767251 - P_CL2FE_PC_STREETSTALL_REQ_UNREGIST_ITEM = 0x13000094 // 318767252 - P_CL2FE_PC_STREETSTALL_REQ_SALE_START = 0x13000095 // 318767253 - P_CL2FE_PC_STREETSTALL_REQ_ITEM_LIST = 0x13000096 // 318767254 - P_CL2FE_PC_STREETSTALL_REQ_ITEM_BUY = 0x13000097 // 318767255 - P_CL2FE_REQ_PC_ITEM_COMBINATION = 0x13000098 // 318767256 - P_CL2FE_GM_REQ_SET_PC_SKILL = 0x13000099 // 318767257 - P_CL2FE_REQ_PC_SKILL_ADD = 0x1300009a // 318767258 - P_CL2FE_REQ_PC_SKILL_DEL = 0x1300009b // 318767259 - P_CL2FE_REQ_PC_SKILL_USE = 0x1300009c // 318767260 - P_CL2FE_REQ_PC_ROPE = 0x1300009d // 318767261 - P_CL2FE_REQ_PC_BELT = 0x1300009e // 318767262 - P_CL2FE_REQ_PC_VEHICLE_ON = 0x1300009f // 318767263 - P_CL2FE_REQ_PC_VEHICLE_OFF = 0x130000a0 // 318767264 - P_CL2FE_REQ_PC_REGIST_QUICK_SLOT = 0x130000a1 // 318767265 - P_CL2FE_REQ_PC_DISASSEMBLE_ITEM = 0x130000a2 // 318767266 - P_CL2FE_GM_REQ_REWARD_RATE = 0x130000a3 // 318767267 - P_CL2FE_REQ_PC_ITEM_ENCHANT = 0x130000a4 // 318767268 - - P_FE2CL_ERROR = 0x31000000 // 822083584 - P_FE2CL_REP_PC_ENTER_FAIL = 0x31000001 // 822083585 - P_FE2CL_REP_PC_ENTER_SUCC = 0x31000002 // 822083586 - P_FE2CL_PC_NEW = 0x31000003 // 822083587 - P_FE2CL_REP_PC_EXIT_FAIL = 0x31000004 // 822083588 - P_FE2CL_REP_PC_EXIT_SUCC = 0x31000005 // 822083589 - P_FE2CL_PC_EXIT = 0x31000006 // 822083590 - P_FE2CL_PC_AROUND = 0x31000007 // 822083591 - P_FE2CL_PC_MOVE = 0x31000008 // 822083592 - P_FE2CL_PC_STOP = 0x31000009 // 822083593 - P_FE2CL_PC_JUMP = 0x3100000a // 822083594 - P_FE2CL_NPC_ENTER = 0x3100000b // 822083595 - P_FE2CL_NPC_EXIT = 0x3100000c // 822083596 - P_FE2CL_NPC_MOVE = 0x3100000d // 822083597 - P_FE2CL_NPC_NEW = 0x3100000e // 822083598 - P_FE2CL_NPC_AROUND = 0x3100000f // 822083599 - P_FE2CL_AROUND_DEL_PC = 0x31000010 // 822083600 - P_FE2CL_AROUND_DEL_NPC = 0x31000011 // 822083601 - P_FE2CL_REP_SEND_FREECHAT_MESSAGE_SUCC = 0x31000012 // 822083602 - P_FE2CL_REP_SEND_FREECHAT_MESSAGE_FAIL = 0x31000013 // 822083603 - P_FE2CL_PC_ATTACK_NPCs_SUCC = 0x31000014 // 822083604 - P_FE2CL_PC_ATTACK_NPCs = 0x31000015 // 822083605 - P_FE2CL_NPC_ATTACK_PCs = 0x31000016 // 822083606 - P_FE2CL_REP_PC_REGEN_SUCC = 0x31000017 // 822083607 - P_FE2CL_REP_SEND_MENUCHAT_MESSAGE_SUCC = 0x31000018 // 822083608 - P_FE2CL_REP_SEND_MENUCHAT_MESSAGE_FAIL = 0x31000019 // 822083609 - P_FE2CL_PC_ITEM_MOVE_SUCC = 0x3100001a // 822083610 - P_FE2CL_PC_EQUIP_CHANGE = 0x3100001b // 822083611 - P_FE2CL_REP_PC_TASK_START_SUCC = 0x3100001c // 822083612 - P_FE2CL_REP_PC_TASK_START_FAIL = 0x3100001d // 822083613 - P_FE2CL_REP_PC_TASK_END_SUCC = 0x3100001e // 822083614 - P_FE2CL_REP_PC_TASK_END_FAIL = 0x3100001f // 822083615 - P_FE2CL_NPC_SKILL_READY = 0x31000020 // 822083616 - P_FE2CL_NPC_SKILL_FIRE = 0x31000021 // 822083617 - P_FE2CL_NPC_SKILL_HIT = 0x31000022 // 822083618 - P_FE2CL_NPC_SKILL_CORRUPTION_READY = 0x31000023 // 822083619 - P_FE2CL_NPC_SKILL_CORRUPTION_HIT = 0x31000024 // 822083620 - P_FE2CL_NPC_SKILL_CANCEL = 0x31000025 // 822083621 - P_FE2CL_REP_NANO_EQUIP_SUCC = 0x31000026 // 822083622 - P_FE2CL_REP_NANO_UNEQUIP_SUCC = 0x31000027 // 822083623 - P_FE2CL_REP_NANO_ACTIVE_SUCC = 0x31000028 // 822083624 - P_FE2CL_REP_NANO_TUNE_SUCC = 0x31000029 // 822083625 - P_FE2CL_NANO_ACTIVE = 0x3100002a // 822083626 - P_FE2CL_NANO_SKILL_USE_SUCC = 0x3100002b // 822083627 - P_FE2CL_NANO_SKILL_USE = 0x3100002c // 822083628 - P_FE2CL_REP_PC_TASK_STOP_SUCC = 0x3100002d // 822083629 - P_FE2CL_REP_PC_TASK_STOP_FAIL = 0x3100002e // 822083630 - P_FE2CL_REP_PC_TASK_CONTINUE_SUCC = 0x3100002f // 822083631 - P_FE2CL_REP_PC_TASK_CONTINUE_FAIL = 0x31000030 // 822083632 - P_FE2CL_REP_PC_GOTO_SUCC = 0x31000031 // 822083633 - P_FE2CL_REP_CHARGE_NANO_STAMINA = 0x31000032 // 822083634 - P_FE2CL_REP_PC_TICK = 0x31000033 // 822083635 - P_FE2CL_REP_PC_KILL_QUEST_NPCs_SUCC = 0x31000034 // 822083636 - P_FE2CL_REP_PC_VENDOR_ITEM_BUY_SUCC = 0x31000035 // 822083637 - P_FE2CL_REP_PC_VENDOR_ITEM_BUY_FAIL = 0x31000036 // 822083638 - P_FE2CL_REP_PC_VENDOR_ITEM_SELL_SUCC = 0x31000037 // 822083639 - P_FE2CL_REP_PC_VENDOR_ITEM_SELL_FAIL = 0x31000038 // 822083640 - P_FE2CL_REP_PC_ITEM_DELETE_SUCC = 0x31000039 // 822083641 - P_FE2CL_PC_ROCKET_STYLE_READY = 0x3100003a // 822083642 - P_FE2CL_REP_PC_ROCKET_STYLE_FIRE_SUCC = 0x3100003b // 822083643 - P_FE2CL_PC_ROCKET_STYLE_FIRE = 0x3100003c // 822083644 - P_FE2CL_PC_ROCKET_STYLE_HIT = 0x3100003d // 822083645 - P_FE2CL_PC_GRENADE_STYLE_READY = 0x3100003e // 822083646 - P_FE2CL_REP_PC_GRENADE_STYLE_FIRE_SUCC = 0x3100003f // 822083647 - P_FE2CL_PC_GRENADE_STYLE_FIRE = 0x31000040 // 822083648 - P_FE2CL_PC_GRENADE_STYLE_HIT = 0x31000041 // 822083649 - P_FE2CL_REP_PC_TRADE_OFFER = 0x31000042 // 822083650 - P_FE2CL_REP_PC_TRADE_OFFER_CANCEL = 0x31000043 // 822083651 - P_FE2CL_REP_PC_TRADE_OFFER_SUCC = 0x31000044 // 822083652 - P_FE2CL_REP_PC_TRADE_OFFER_REFUSAL = 0x31000045 // 822083653 - P_FE2CL_REP_PC_TRADE_OFFER_ABORT = 0x31000046 // 822083654 - P_FE2CL_REP_PC_TRADE_CONFIRM = 0x31000047 // 822083655 - P_FE2CL_REP_PC_TRADE_CONFIRM_CANCEL = 0x31000048 // 822083656 - P_FE2CL_REP_PC_TRADE_CONFIRM_ABORT = 0x31000049 // 822083657 - P_FE2CL_REP_PC_TRADE_CONFIRM_SUCC = 0x3100004a // 822083658 - P_FE2CL_REP_PC_TRADE_CONFIRM_FAIL = 0x3100004b // 822083659 - P_FE2CL_REP_PC_TRADE_ITEM_REGISTER_SUCC = 0x3100004c // 822083660 - P_FE2CL_REP_PC_TRADE_ITEM_REGISTER_FAIL = 0x3100004d // 822083661 - P_FE2CL_REP_PC_TRADE_ITEM_UNREGISTER_SUCC = 0x3100004e // 822083662 - P_FE2CL_REP_PC_TRADE_ITEM_UNREGISTER_FAIL = 0x3100004f // 822083663 - P_FE2CL_REP_PC_TRADE_CASH_REGISTER_SUCC = 0x31000050 // 822083664 - P_FE2CL_REP_PC_TRADE_CASH_REGISTER_FAIL = 0x31000051 // 822083665 - P_FE2CL_REP_PC_TRADE_EMOTES_CHAT = 0x31000052 // 822083666 - P_FE2CL_REP_PC_NANO_CREATE_SUCC = 0x31000053 // 822083667 - P_FE2CL_REP_PC_NANO_CREATE_FAIL = 0x31000054 // 822083668 - P_FE2CL_REP_NANO_TUNE_FAIL = 0x31000055 // 822083669 - P_FE2CL_REP_PC_BANK_OPEN_SUCC = 0x31000056 // 822083670 - P_FE2CL_REP_PC_BANK_OPEN_FAIL = 0x31000057 // 822083671 - P_FE2CL_REP_PC_BANK_CLOSE_SUCC = 0x31000058 // 822083672 - P_FE2CL_REP_PC_BANK_CLOSE_FAIL = 0x31000059 // 822083673 - P_FE2CL_REP_PC_VENDOR_START_SUCC = 0x3100005a // 822083674 - P_FE2CL_REP_PC_VENDOR_START_FAIL = 0x3100005b // 822083675 - P_FE2CL_REP_PC_VENDOR_TABLE_UPDATE_SUCC = 0x3100005c // 822083676 - P_FE2CL_REP_PC_VENDOR_TABLE_UPDATE_FAIL = 0x3100005d // 822083677 - P_FE2CL_REP_PC_VENDOR_ITEM_RESTORE_BUY_SUCC = 0x3100005e // 822083678 - P_FE2CL_REP_PC_VENDOR_ITEM_RESTORE_BUY_FAIL = 0x3100005f // 822083679 - P_FE2CL_CHAR_TIME_BUFF_TIME_OUT = 0x31000060 // 822083680 - P_FE2CL_REP_PC_GIVE_ITEM_SUCC = 0x31000061 // 822083681 - P_FE2CL_REP_PC_GIVE_ITEM_FAIL = 0x31000062 // 822083682 - P_FE2CL_REP_PC_BUDDYLIST_INFO_SUCC = 0x31000063 // 822083683 - P_FE2CL_REP_PC_BUDDYLIST_INFO_FAIL = 0x31000064 // 822083684 - P_FE2CL_REP_REQUEST_MAKE_BUDDY_SUCC = 0x7fffffff // 2147483647 - P_FE2CL_REP_REQUEST_MAKE_BUDDY_FAIL = 0x31000066 // 822083686 - P_FE2CL_REP_ACCEPT_MAKE_BUDDY_SUCC = 0x31000067 // 822083687 - P_FE2CL_REP_ACCEPT_MAKE_BUDDY_FAIL = 0x31000068 // 822083688 - P_FE2CL_REP_SEND_BUDDY_FREECHAT_MESSAGE_SUCC = 0x31000069 // 822083689 - P_FE2CL_REP_SEND_BUDDY_FREECHAT_MESSAGE_FAIL = 0x3100006a // 822083690 - P_FE2CL_REP_SEND_BUDDY_MENUCHAT_MESSAGE_SUCC = 0x3100006b // 822083691 - P_FE2CL_REP_SEND_BUDDY_MENUCHAT_MESSAGE_FAIL = 0x3100006c // 822083692 - P_FE2CL_REP_GET_BUDDY_STYLE_SUCC = 0x3100006d // 822083693 - P_FE2CL_REP_GET_BUDDY_STYLE_FAIL = 0x3100006e // 822083694 - P_FE2CL_REP_GET_BUDDY_STATE_SUCC = 0x3100006f // 822083695 - P_FE2CL_REP_GET_BUDDY_STATE_FAIL = 0x31000070 // 822083696 - P_FE2CL_REP_SET_BUDDY_BLOCK_SUCC = 0x31000071 // 822083697 - P_FE2CL_REP_SET_BUDDY_BLOCK_FAIL = 0x31000072 // 822083698 - P_FE2CL_REP_REMOVE_BUDDY_SUCC = 0x31000073 // 822083699 - P_FE2CL_REP_REMOVE_BUDDY_FAIL = 0x31000074 // 822083700 - P_FE2CL_PC_JUMPPAD = 0x31000075 // 822083701 - P_FE2CL_PC_LAUNCHER = 0x31000076 // 822083702 - P_FE2CL_PC_ZIPLINE = 0x31000077 // 822083703 - P_FE2CL_PC_MOVEPLATFORM = 0x31000078 // 822083704 - P_FE2CL_PC_SLOPE = 0x31000079 // 822083705 - P_FE2CL_PC_STATE_CHANGE = 0x3100007a // 822083706 - P_FE2CL_REP_REQUEST_MAKE_BUDDY_SUCC_TO_ACCEPTER = 0x3100007b // 822083707 - P_FE2CL_REP_REWARD_ITEM = 0x3100007c // 822083708 - P_FE2CL_REP_ITEM_CHEST_OPEN_SUCC = 0x3100007d // 822083709 - P_FE2CL_REP_ITEM_CHEST_OPEN_FAIL = 0x3100007e // 822083710 - P_FE2CL_CHAR_TIME_BUFF_TIME_TICK = 0x3100007f // 822083711 - P_FE2CL_REP_PC_VENDOR_BATTERY_BUY_SUCC = 0x31000080 // 822083712 - P_FE2CL_REP_PC_VENDOR_BATTERY_BUY_FAIL = 0x31000081 // 822083713 - P_FE2CL_NPC_ROCKET_STYLE_FIRE = 0x31000082 // 822083714 - P_FE2CL_NPC_GRENADE_STYLE_FIRE = 0x31000083 // 822083715 - P_FE2CL_NPC_BULLET_STYLE_HIT = 0x31000084 // 822083716 - P_FE2CL_CHARACTER_ATTACK_CHARACTERs = 0x31000085 // 822083717 - P_FE2CL_PC_GROUP_INVITE = 0x31000086 // 822083718 - P_FE2CL_PC_GROUP_INVITE_FAIL = 0x31000087 // 822083719 - P_FE2CL_PC_GROUP_INVITE_REFUSE = 0x31000088 // 822083720 - P_FE2CL_PC_GROUP_JOIN = 0x31000089 // 822083721 - P_FE2CL_PC_GROUP_JOIN_FAIL = 0x3100008a // 822083722 - P_FE2CL_PC_GROUP_JOIN_SUCC = 0x3100008b // 822083723 - P_FE2CL_PC_GROUP_LEAVE = 0x3100008c // 822083724 - P_FE2CL_PC_GROUP_LEAVE_FAIL = 0x3100008d // 822083725 - P_FE2CL_PC_GROUP_LEAVE_SUCC = 0x3100008e // 822083726 - P_FE2CL_PC_GROUP_MEMBER_INFO = 0x3100008f // 822083727 - P_FE2CL_REP_PC_WARP_USE_NPC_SUCC = 0x31000090 // 822083728 - P_FE2CL_REP_PC_WARP_USE_NPC_FAIL = 0x31000091 // 822083729 - P_FE2CL_REP_PC_AVATAR_EMOTES_CHAT = 0x31000092 // 822083730 - P_FE2CL_REP_PC_CHANGE_MENTOR_SUCC = 0x31000093 // 822083731 - P_FE2CL_REP_PC_CHANGE_MENTOR_FAIL = 0x31000094 // 822083732 - P_FE2CL_REP_GET_MEMBER_STYLE_FAIL = 0x31000095 // 822083733 - P_FE2CL_REP_GET_MEMBER_STYLE_SUCC = 0x31000096 // 822083734 - P_FE2CL_REP_GET_GROUP_STYLE_FAIL = 0x31000097 // 822083735 - P_FE2CL_REP_GET_GROUP_STYLE_SUCC = 0x31000098 // 822083736 - P_FE2CL_PC_REGEN = 0x31000099 // 822083737 - P_FE2CL_INSTANCE_MAP_INFO = 0x3100009a // 822083738 - P_FE2CL_TRANSPORTATION_ENTER = 0x3100009b // 822083739 - P_FE2CL_TRANSPORTATION_EXIT = 0x3100009c // 822083740 - P_FE2CL_TRANSPORTATION_MOVE = 0x3100009d // 822083741 - P_FE2CL_TRANSPORTATION_NEW = 0x3100009e // 822083742 - P_FE2CL_TRANSPORTATION_AROUND = 0x3100009f // 822083743 - P_FE2CL_AROUND_DEL_TRANSPORTATION = 0x310000a0 // 822083744 - P_FE2CL_REP_EP_RANK_LIST = 0x310000a1 // 822083745 - P_FE2CL_REP_EP_RANK_DETAIL = 0x310000a2 // 822083746 - P_FE2CL_REP_EP_RANK_PC_INFO = 0x310000a3 // 822083747 - P_FE2CL_REP_EP_RACE_START_SUCC = 0x310000a4 // 822083748 - P_FE2CL_REP_EP_RACE_START_FAIL = 0x310000a5 // 822083749 - P_FE2CL_REP_EP_RACE_END_SUCC = 0x310000a6 // 822083750 - P_FE2CL_REP_EP_RACE_END_FAIL = 0x310000a7 // 822083751 - P_FE2CL_REP_EP_RACE_CANCEL_SUCC = 0x310000a8 // 822083752 - P_FE2CL_REP_EP_RACE_CANCEL_FAIL = 0x310000a9 // 822083753 - P_FE2CL_REP_EP_GET_RING_SUCC = 0x310000aa // 822083754 - P_FE2CL_REP_EP_GET_RING_FAIL = 0x310000ab // 822083755 - P_FE2CL_REP_IM_CHANGE_SWITCH_STATUS = 0x310000ac // 822083756 - P_FE2CL_SHINY_ENTER = 0x310000ad // 822083757 - P_FE2CL_SHINY_EXIT = 0x310000ae // 822083758 - P_FE2CL_SHINY_NEW = 0x310000af // 822083759 - P_FE2CL_SHINY_AROUND = 0x310000b0 // 822083760 - P_FE2CL_AROUND_DEL_SHINY = 0x310000b1 // 822083761 - P_FE2CL_REP_SHINY_PICKUP_FAIL = 0x310000b2 // 822083762 - P_FE2CL_REP_SHINY_PICKUP_SUCC = 0x310000b3 // 822083763 - P_FE2CL_PC_MOVETRANSPORTATION = 0x310000b4 // 822083764 - P_FE2CL_REP_SEND_ALL_GROUP_FREECHAT_MESSAGE_SUCC = 0x310000b5 // 822083765 - P_FE2CL_REP_SEND_ALL_GROUP_FREECHAT_MESSAGE_FAIL = 0x310000b6 // 822083766 - P_FE2CL_REP_SEND_ANY_GROUP_FREECHAT_MESSAGE_SUCC = 0x310000b7 // 822083767 - P_FE2CL_REP_SEND_ANY_GROUP_FREECHAT_MESSAGE_FAIL = 0x310000b8 // 822083768 - P_FE2CL_REP_BARKER = 0x310000b9 // 822083769 - P_FE2CL_REP_SEND_ALL_GROUP_MENUCHAT_MESSAGE_SUCC = 0x310000ba // 822083770 - P_FE2CL_REP_SEND_ALL_GROUP_MENUCHAT_MESSAGE_FAIL = 0x310000bb // 822083771 - P_FE2CL_REP_SEND_ANY_GROUP_MENUCHAT_MESSAGE_SUCC = 0x310000bc // 822083772 - P_FE2CL_REP_SEND_ANY_GROUP_MENUCHAT_MESSAGE_FAIL = 0x310000bd // 822083773 - P_FE2CL_REP_PC_REGIST_TRANSPORTATION_LOCATION_FAIL = 0x310000be // 822083774 - P_FE2CL_REP_PC_REGIST_TRANSPORTATION_LOCATION_SUCC = 0x310000bf // 822083775 - P_FE2CL_REP_PC_WARP_USE_TRANSPORTATION_FAIL = 0x310000c0 // 822083776 - P_FE2CL_REP_PC_WARP_USE_TRANSPORTATION_SUCC = 0x310000c1 // 822083777 - P_FE2CL_ANNOUNCE_MSG = 0x310000c2 // 822083778 - P_FE2CL_REP_PC_SPECIAL_STATE_SWITCH_SUCC = 0x310000c3 // 822083779 - P_FE2CL_PC_SPECIAL_STATE_CHANGE = 0x310000c4 // 822083780 - P_FE2CL_GM_REP_PC_SET_VALUE = 0x310000c5 // 822083781 - P_FE2CL_GM_PC_CHANGE_VALUE = 0x310000c6 // 822083782 - P_FE2CL_GM_REP_PC_LOCATION = 0x310000c7 // 822083783 - P_FE2CL_GM_REP_PC_ANNOUNCE = 0x310000c8 // 822083784 - P_FE2CL_REP_PC_BUDDY_WARP_FAIL = 0x310000c9 // 822083785 - P_FE2CL_REP_PC_CHANGE_LEVEL = 0x310000ca // 822083786 - P_FE2CL_REP_SET_PC_BLOCK_SUCC = 0x310000cb // 822083787 - P_FE2CL_REP_SET_PC_BLOCK_FAIL = 0x310000cc // 822083788 - P_FE2CL_REP_REGIST_RXCOM = 0x310000cd // 822083789 - P_FE2CL_REP_REGIST_RXCOM_FAIL = 0x310000ce // 822083790 - P_FE2CL_PC_INVEN_FULL_MSG = 0x310000cf // 822083791 - P_FE2CL_REQ_LIVE_CHECK = 0x310000d0 // 822083792 - P_FE2CL_PC_MOTD_LOGIN = 0x310000d1 // 822083793 - P_FE2CL_REP_PC_ITEM_USE_FAIL = 0x310000d2 // 822083794 - P_FE2CL_REP_PC_ITEM_USE_SUCC = 0x310000d3 // 822083795 - P_FE2CL_PC_ITEM_USE = 0x310000d4 // 822083796 - P_FE2CL_REP_GET_BUDDY_LOCATION_SUCC = 0x310000d5 // 822083797 - P_FE2CL_REP_GET_BUDDY_LOCATION_FAIL = 0x310000d6 // 822083798 - P_FE2CL_REP_PC_RIDING_FAIL = 0x310000d7 // 822083799 - P_FE2CL_REP_PC_RIDING_SUCC = 0x310000d8 // 822083800 - P_FE2CL_PC_RIDING = 0x310000d9 // 822083801 - P_FE2CL_PC_BROOMSTICK_MOVE = 0x310000da // 822083802 - P_FE2CL_REP_PC_BUDDY_WARP_OTHER_SHARD_SUCC = 0x310000db // 822083803 - P_FE2CL_REP_WARP_USE_RECALL_FAIL = 0x310000dc // 822083804 - P_FE2CL_REP_PC_EXIT_DUPLICATE = 0x310000dd // 822083805 - P_FE2CL_REP_PC_MISSION_COMPLETE_SUCC = 0x310000de // 822083806 - P_FE2CL_PC_BUFF_UPDATE = 0x310000df // 822083807 - P_FE2CL_REP_PC_NEW_EMAIL = 0x310000e0 // 822083808 - P_FE2CL_REP_PC_READ_EMAIL_SUCC = 0x310000e1 // 822083809 - P_FE2CL_REP_PC_READ_EMAIL_FAIL = 0x310000e2 // 822083810 - P_FE2CL_REP_PC_RECV_EMAIL_PAGE_LIST_SUCC = 0x310000e3 // 822083811 - P_FE2CL_REP_PC_RECV_EMAIL_PAGE_LIST_FAIL = 0x310000e4 // 822083812 - P_FE2CL_REP_PC_DELETE_EMAIL_SUCC = 0x310000e5 // 822083813 - P_FE2CL_REP_PC_DELETE_EMAIL_FAIL = 0x310000e6 // 822083814 - P_FE2CL_REP_PC_SEND_EMAIL_SUCC = 0x310000e7 // 822083815 - P_FE2CL_REP_PC_SEND_EMAIL_FAIL = 0x310000e8 // 822083816 - P_FE2CL_REP_PC_RECV_EMAIL_ITEM_SUCC = 0x310000e9 // 822083817 - P_FE2CL_REP_PC_RECV_EMAIL_ITEM_FAIL = 0x310000ea // 822083818 - P_FE2CL_REP_PC_RECV_EMAIL_CANDY_SUCC = 0x310000eb // 822083819 - P_FE2CL_REP_PC_RECV_EMAIL_CANDY_FAIL = 0x310000ec // 822083820 - P_FE2CL_PC_SUDDEN_DEAD = 0x310000ed // 822083821 - P_FE2CL_REP_GM_REQ_TARGET_PC_SPECIAL_STATE_ONOFF_SUCC = 0x310000ee // 822083822 - P_FE2CL_REP_PC_SET_CURRENT_MISSION_ID = 0x310000ef // 822083823 - P_FE2CL_REP_NPC_GROUP_INVITE_FAIL = 0x310000f0 // 822083824 - P_FE2CL_REP_NPC_GROUP_INVITE_SUCC = 0x310000f1 // 822083825 - P_FE2CL_REP_NPC_GROUP_KICK_FAIL = 0x310000f2 // 822083826 - P_FE2CL_REP_NPC_GROUP_KICK_SUCC = 0x310000f3 // 822083827 - P_FE2CL_PC_EVENT = 0x310000f4 // 822083828 - P_FE2CL_REP_PC_TRANSPORT_WARP_SUCC = 0x310000f5 // 822083829 - P_FE2CL_REP_PC_TRADE_EMOTES_CHAT_FAIL = 0x310000f6 // 822083830 - P_FE2CL_REP_PC_RECV_EMAIL_ITEM_ALL_SUCC = 0x310000f7 // 822083831 - P_FE2CL_REP_PC_RECV_EMAIL_ITEM_ALL_FAIL = 0x310000f8 // 822083832 - P_FE2CL_REP_PC_LOADING_COMPLETE_SUCC = 0x310000f9 // 822083833 - P_FE2CL_REP_CHANNEL_INFO = 0x310000fa // 822083834 - P_FE2CL_REP_PC_CHANNEL_NUM = 0x310000fb // 822083835 - P_FE2CL_REP_PC_WARP_CHANNEL_FAIL = 0x310000fc // 822083836 - P_FE2CL_REP_PC_WARP_CHANNEL_SUCC = 0x310000fd // 822083837 - P_FE2CL_REP_PC_FIND_NAME_MAKE_BUDDY_SUCC = 0x310000fe // 822083838 - P_FE2CL_REP_PC_FIND_NAME_MAKE_BUDDY_FAIL = 0x310000ff // 822083839 - P_FE2CL_REP_PC_FIND_NAME_ACCEPT_BUDDY_FAIL = 0x31000100 // 822083840 - P_FE2CL_REP_PC_BUDDY_WARP_SAME_SHARD_SUCC = 0x31000101 // 822083841 - P_FE2CL_PC_ATTACK_CHARs_SUCC = 0x31000102 // 822083842 - P_FE2CL_PC_ATTACK_CHARs = 0x31000103 // 822083843 - P_FE2CL_NPC_ATTACK_CHARs = 0x31000104 // 822083844 - P_FE2CL_REP_PC_CHANGE_LEVEL_SUCC = 0x31000105 // 822083845 - P_FE2CL_REP_PC_NANO_CREATE = 0x31000106 // 822083846 - P_FE2CL_PC_STREETSTALL_REP_READY_SUCC = 0x31000107 // 822083847 - P_FE2CL_PC_STREETSTALL_REP_READY_FAIL = 0x31000108 // 822083848 - P_FE2CL_PC_STREETSTALL_REP_CANCEL_SUCC = 0x31000109 // 822083849 - P_FE2CL_PC_STREETSTALL_REP_CANCEL_FAIL = 0x3100010a // 822083850 - P_FE2CL_PC_STREETSTALL_REP_REGIST_ITEM_SUCC = 0x3100010b // 822083851 - P_FE2CL_PC_STREETSTALL_REP_REGIST_ITEM_FAIL = 0x3100010c // 822083852 - P_FE2CL_PC_STREETSTALL_REP_UNREGIST_ITEM_SUCC = 0x3100010d // 822083853 - P_FE2CL_PC_STREETSTALL_REP_UNREGIST_ITEM_FAIL = 0x3100010e // 822083854 - P_FE2CL_PC_STREETSTALL_REP_SALE_START_SUCC = 0x3100010f // 822083855 - P_FE2CL_PC_STREETSTALL_REP_SALE_START_FAIL = 0x31000110 // 822083856 - P_FE2CL_PC_STREETSTALL_REP_ITEM_LIST = 0x31000111 // 822083857 - P_FE2CL_PC_STREETSTALL_REP_ITEM_LIST_FAIL = 0x31000112 // 822083858 - P_FE2CL_PC_STREETSTALL_REP_ITEM_BUY_SUCC_BUYER = 0x31000113 // 822083859 - P_FE2CL_PC_STREETSTALL_REP_ITEM_BUY_SUCC_SELLER = 0x31000114 // 822083860 - P_FE2CL_PC_STREETSTALL_REP_ITEM_BUY_FAIL = 0x31000115 // 822083861 - P_FE2CL_REP_PC_ITEM_COMBINATION_SUCC = 0x31000116 // 822083862 - P_FE2CL_REP_PC_ITEM_COMBINATION_FAIL = 0x31000117 // 822083863 - P_FE2CL_PC_CASH_BUFF_UPDATE = 0x31000118 // 822083864 - P_FE2CL_REP_PC_SKILL_ADD_SUCC = 0x31000119 // 822083865 - P_FE2CL_REP_PC_SKILL_ADD_FAIL = 0x3100011a // 822083866 - P_FE2CL_REP_PC_SKILL_DEL_SUCC = 0x3100011b // 822083867 - P_FE2CL_REP_PC_SKILL_DEL_FAIL = 0x3100011c // 822083868 - P_FE2CL_REP_PC_SKILL_USE_SUCC = 0x3100011d // 822083869 - P_FE2CL_REP_PC_SKILL_USE_FAIL = 0x3100011e // 822083870 - P_FE2CL_PC_SKILL_USE = 0x3100011f // 822083871 - P_FE2CL_PC_ROPE = 0x31000120 // 822083872 - P_FE2CL_PC_BELT = 0x31000121 // 822083873 - P_FE2CL_PC_VEHICLE_ON_SUCC = 0x31000122 // 822083874 - P_FE2CL_PC_VEHICLE_ON_FAIL = 0x31000123 // 822083875 - P_FE2CL_PC_VEHICLE_OFF_SUCC = 0x31000124 // 822083876 - P_FE2CL_PC_VEHICLE_OFF_FAIL = 0x31000125 // 822083877 - P_FE2CL_PC_QUICK_SLOT_INFO = 0x31000126 // 822083878 - P_FE2CL_REP_PC_REGIST_QUICK_SLOT_FAIL = 0x31000127 // 822083879 - P_FE2CL_REP_PC_REGIST_QUICK_SLOT_SUCC = 0x31000128 // 822083880 - P_FE2CL_PC_DELETE_TIME_LIMIT_ITEM = 0x31000129 // 822083881 - P_FE2CL_REP_PC_DISASSEMBLE_ITEM_SUCC = 0x3100012a // 822083882 - P_FE2CL_REP_PC_DISASSEMBLE_ITEM_FAIL = 0x3100012b // 822083883 - P_FE2CL_GM_REP_REWARD_RATE_SUCC = 0x3100012c // 822083884 - P_FE2CL_REP_PC_ITEM_ENCHANT_SUCC = 0x3100012d // 822083885 - P_FE2CL_REP_PC_ITEM_ENCHANT_FAIL = 0x3100012e // 822083886 - - P_LS2CL_REP_LOGIN_SUCC = 0x21000001 // 553648129 - P_LS2CL_REP_LOGIN_FAIL = 0x21000002 // 553648130 - P_LS2CL_REP_CHAR_INFO = 0x21000003 // 553648131 - P_LS2CL_REP_CHECK_CHAR_NAME_SUCC = 0x21000005 // 553648133 - P_LS2CL_REP_CHECK_CHAR_NAME_FAIL = 0x21000006 // 553648134 - P_LS2CL_REP_SAVE_CHAR_NAME_SUCC = 0x21000007 // 553648135 - P_LS2CL_REP_SAVE_CHAR_NAME_FAIL = 0x21000008 // 553648136 - P_LS2CL_REP_CHAR_CREATE_SUCC = 0x21000009 // 553648137 - P_LS2CL_REP_CHAR_CREATE_FAIL = 0x2100000a // 553648138 - P_LS2CL_REP_CHAR_SELECT_SUCC = 0x2100000b // 553648139 - P_LS2CL_REP_CHAR_SELECT_FAIL = 0x2100000c // 553648140 - P_LS2CL_REP_CHAR_DELETE_SUCC = 0x2100000d // 553648141 - P_LS2CL_REP_CHAR_DELETE_FAIL = 0x2100000e // 553648142 - P_LS2CL_REP_SHARD_SELECT_SUCC = 0x2100000f // 553648143 - P_LS2CL_REP_SHARD_SELECT_FAIL = 0x21000010 // 553648144 - P_LS2CL_REP_VERSION_CHECK_SUCC = 0x21000011 // 553648145 - P_LS2CL_REP_VERSION_CHECK_FAIL = 0x21000012 // 553648146 - P_LS2CL_REP_CHECK_NAME_LIST_SUCC = 0x21000013 // 553648147 - P_LS2CL_REP_CHECK_NAME_LIST_FAIL = 0x21000014 // 553648148 - P_LS2CL_REP_PC_EXIT_DUPLICATE = 0x21000015 // 553648149 - P_LS2CL_REQ_LIVE_CHECK = 0x21000016 // 553648150 - P_LS2CL_REP_CHANGE_CHAR_NAME_SUCC = 0x21000017 // 553648151 - P_LS2CL_REP_CHANGE_CHAR_NAME_FAIL = 0x21000018 // 553648152 - P_LS2CL_REP_SHARD_LIST_INFO_SUCC = 0x21000019 // 553648153 -) diff --git a/protocol/structs.go b/protocol/structs.go index c16648b..9a153bd 100644 --- a/protocol/structs.go +++ b/protocol/structs.go @@ -1,6 +1,801 @@ // generated via genstructs.py - All structure padding and member alignment verified package protocol +const ( + SUCC = 0x1 + FAIL = 0x0 + SIZEOF_BYTE = 0x1 + SIZEOF_DWORD = 0x4 + SIZEOF_INT = 0x4 + SIZEOF_FLOAT = 0x4 + SIZEOF_SHORT = 0x2 + SIZEOF_ULONG = 0x4 + SIZEOF_UINT64 = 0x8 + SIZEOF_IP_STRING = 0x10 + SIZEOF_CN_UID_STRING = 0x32 + SIZEOF_ACCOUNT_STRING = 0x21 + SIZEOF_PASSWORD_STRING = 0x21 + SIZEOF_AUTH_ID_STRING = 0xff + CN_MAX_COUNT_GROUP_MEMBER = 0x5 + CN_MAX_COUNT_PC_GROUP_MEMBER = 0x4 + CN_MAX_COUNT_NPC_GROUP_MEMBER = 0x5 + CHAT_MAX_STRING = 0x80 + PC_START_LOCATION_RANDOM_RANGE = 0x2710 + SIZEOF_ANNOUNCE_STRING = 0x200 + SERVER_COUNT_SHARD_CLIENT = 0x19 + EXIT_CODE_DISCONNECT = 0x0 + EXIT_CODE_REQ_BY_PC = 0x1 + EXIT_CODE_REQ_BY_SVR = 0x2 + EXIT_CODE_REQ_BY_GM = 0x3 + EXIT_CODE_HACK = 0x4 + EXIT_CODE_ERROR = 0x5 + EXIT_CODE_LIVE_CHECK = 0x6 + EXIT_CODE_REQ_BY_PC_DUPE_LOGIN = 0x7 + EXIT_CODE_SERVER_ERROR = 0x63 + SIZEOF_USER_ID = 0x20 + SIZEOF_USER_PW = 0x20 + SIZEOF_PC_SLOT = 0x4 + SIZEOF_PC_NAME = 0x10 + SIZEOF_PC_FIRST_NAME = 0x9 + SIZEOF_PC_LAST_NAME = 0x11 + SIZEOF_PC_NAME_FLAG = 0x8 + GENDER_NONE = 0x0 + GENDER_MALE = 0x1 + GENDER_FEMALE = 0x2 + MENTOR_CHANGE_BASE_COST = 0x64 + REPEAT_MISSION_RESET_TIME = 0x9 + SIZEOF_REPEAT_QUESTFLAG_NUMBER = 0x8 + FATIGUE_RESET_TIME = 0x0 + PC_FATIGUE_KILL_UNIT = 0x7 + PC_FATIGUE_1_LEVEL = 0x2c9c + PC_FATIGUE_2_LEVEL = 0x1950 + PC_FATIGUE_MAX_LEVEL = 0x2 + PC_FUSIONMATTER_MAX = 0x3b9ac9ff + PC_CANDY_MAX = 0x3b9ac9ff + PC_BATTERY_MAX = 0x270f + PC_LEVEL_MAX = 0x24 + SIZEOF_PC_BULLET_SLOT = 0x3 + PC_TICK_TIME = 0x1388 + SIZEOF_EQUIP_SLOT = 0x9 + EQUIP_SLOT_HAND = 0x0 + EQUIP_SLOT_UPPERBODY = 0x1 + EQUIP_SLOT_LOWERBODY = 0x2 + EQUIP_SLOT_FOOT = 0x3 + EQUIP_SLOT_HEAD = 0x4 + EQUIP_SLOT_FACE = 0x5 + EQUIP_SLOT_BACK = 0x6 + EQUIP_SLOT_END = 0x6 + EQUIP_SLOT_HAND_EX = 0x7 + EQUIP_SLOT_VEHICLE = 0x8 + WPN_EQUIP_TYPE_NONE = 0x0 + WPN_EQUIP_TYPE_OH_BLADE = 0x1 + WPN_EQUIP_TYPE_OH_CLUB = 0x2 + WPN_EQUIP_TYPE_OH_PISTOL = 0x3 + WPN_EQUIP_TYPE_OH_RIPLE = 0x4 + WPN_EQUIP_TYPE_OH_THROW = 0x5 + WPN_EQUIP_TYPE_DH_BLADE = 0x6 + WPN_EQUIP_TYPE_DH_CLUB = 0x7 + WPN_EQUIP_TYPE_DH_DPISTOL = 0x8 + WPN_EQUIP_TYPE_DH_RIPLE = 0x9 + WPN_EQUIP_TYPE_DH_THROW = 0xa + WPN_EQUIP_TYPE_DH_ROCKET = 0xb + SIZEOF_INVEN_SLOT = 0x32 + SIZEOF_QINVEN_SLOT = 0x32 + SIZEOF_BANK_SLOT = 0x77 + SIZEOF_RESTORE_SLOT = 0x5 + SIZEOF_NANO_BANK_SLOT = 0x25 + SIZEOF_QUEST_SLOT = 0x400 + NANO_QUEST_INDEX = 0x0 + SIZEOF_RQUEST_SLOT = 0x9 + SIZEOF_QUESTFLAG_NUMBER = 0x20 + SIZEOF_EP_RECORD_SLOT = 0x33 + SIZEOF_TRADE_SLOT = 0xc + SIZEOF_VENDOR_TABLE_SLOT = 0x14 + SIZEOF_VENDOR_RESTORE_SLOT = 0x5 + SIZEOF_QUEST_NPC_SLOT = 0x3 + SIZEOF_QUEST_ITEM_SLOT = 0x3 + SIZEOF_MAX_ITEM_STACK = 0x64 + SIZEOF_PC_SKILL_SLOT = 0x21 + SIZEOF_QUICK_SLOT = 0x8 + ENCHANT_WEAPON_MATERIAL_ID = 0x65 + ENCHANT_DEFENCE_MATERIAL_ID = 0x66 + SIZEOF_NANO_CARRY_SLOT = 0x3 + COUNTOF_NANO_PER_SET = 0x3 + SIZEOF_NANO_SET = 0xd + SIZEOF_NANO_STYLE = 0x3 + NANO_STYLE_NONE = 0x1 + NANO_STYLE_CRYSTAL = 0x0 + NANO_STYLE_ENERGY = 0x1 + NANO_STYLE_FLUID = 0x2 + SIZEOF_NANO_TYPE = 0x4 + NANO_TYPE_POWER = 0x0 + NANO_TYPE_ACCURACY = 0x1 + NANO_TYPE_PROTECT = 0x2 + NANO_TYPE_DODGE = 0x3 + SIZEOF_NANO_TUNE_NEED_ITEM_SLOT = 0xa + VALUE_ATTACK_MISS = 0x1 + MSG_ONLINE = 0x1 + MSG_BUSY = 0x2 + MSG_OFFLINE = 0x0 + SIZEOF_FREE_CHAT_STRING = 0x80 + SIZEOF_MENU_CHAT_STRING = 0x80 + SIZEOF_BUDDYLIST_SLOT = 0x32 + SIZEOF_EMAIL_SUBJECT_STRING = 0x20 + SIZEOF_EMAIL_CONTENT_STRING = 0x200 + SIZEOF_EMAIL_PAGE_SIZE = 0x5 + SIZEOF_EMAIL_ITEM_CNT = 0x4 + EMAIL_AND_MONEY_COST = 0x32 + EMAIL_ITEM_COST = 0x14 + BUDDYWARP_INTERVAL = 0x3c + EMAILSEND_TIME_DELAY = 0x3c + DB_ERROR_INVALID_DATA = 0x1 + DB_ERROR_HACK_ATTEMPT = 0x2 + DB_ERROR_ACCESS_FAIL = 0x3 + DB_ERROR_PC_INSERT_FAIL = 0x4 + CALL_NPC_MAX_CNT = 0x800 + CN_EP_RING_MAX_CNT = 0x3e7 + HF_BIT_NONE = 0x0 + HF_BIT_NORMAL = 0x1 + HF_BIT_CRITICAL = 0x2 + HF_BIT_STYLE_WIN = 0x4 + HF_BIT_STYLE_TIE = 0x8 + HF_BIT_STYLE_LOSE = 0x10 + SKIN_COLOR_MAX = 0xc + HAIR_COLOR_MAX = 0x12 + EYE_COLOR_MAX = 0x5 + BODY_TYPE_MAX = 0x3 + HEIGHT_TYPE_MAX = 0x5 + CLASS_TYPE_MAX = 0x4 + CN_EP_RACE_MODE_PRACTICE = 0x0 + CN_EP_RACE_MODE_RECORD = 0x1 + CN_EP_SECOM_NPC_TYPE_NUM = 0xd + CN_EP_EECOM_NPC_TYPE_NUM = 0xe + CN_EP_SIZE_SMALL = 0x0 + CN_EP_SIZE_MIDDLE = 0x1 + CN_EP_SIZE_BIG = 0x2 + CN_EP_TICKET_ITEM_ID_SMALL = 0x73 + CN_EP_TICKET_ITEM_ID_MIDDLE = 0x74 + CN_EP_TICKET_ITEM_ID_BIG = 0x75 + CN_EP_TICKET_ITEM_ID_FREE = 0x76 + CN_EP_DISTANCE_ERROR_SAFE_RANGE = 0x4b0 + CN_ACCOUNT_LEVEL__MASTER = 0x1 + CN_ACCOUNT_LEVEL__POWER_DEVELOPER = 0xa + CN_ACCOUNT_LEVEL__QA = 0x14 + CN_ACCOUNT_LEVEL__GM = 0x1e + CN_ACCOUNT_LEVEL__CS = 0x28 + CN_ACCOUNT_LEVEL__FREE_USER = 0x30 + CN_ACCOUNT_LEVEL__PAY_USER = 0x31 + CN_ACCOUNT_LEVEL__DEVELOPER = 0x32 + CN_ACCOUNT_LEVEL__CLOSEBETA_USER = 0x50 + CN_ACCOUNT_LEVEL__OPENBETA_USER = 0x55 + CN_ACCOUNT_LEVEL__USER = 0x63 + CN_SPECIAL_STATE_FLAG__PRINT_GM = 0x1 + CN_SPECIAL_STATE_FLAG__INVISIBLE = 0x2 + CN_SPECIAL_STATE_FLAG__INVULNERABLE = 0x4 + CN_SPECIAL_STATE_FLAG__FULL_UI = 0x10 + CN_SPECIAL_STATE_FLAG__COMBAT = 0x20 + CN_SPECIAL_STATE_FLAG__MUTE_FREECHAT = 0x40 + CN_GM_SET_VALUE_TYPE__HP = 0x1 + CN_GM_SET_VALUE_TYPE__WEAPON_BATTERY = 0x2 + CN_GM_SET_VALUE_TYPE__NANO_BATTERY = 0x3 + CN_GM_SET_VALUE_TYPE__FUSION_MATTER = 0x4 + CN_GM_SET_VALUE_TYPE__CANDY = 0x5 + CN_GM_SET_VALUE_TYPE__SPEED = 0x6 + CN_GM_SET_VALUE_TYPE__JUMP = 0x7 + CN_GM_SET_VALUE_TYPE__END = 0x8 + HEIGHT_CLIMBABLE = 0x96 + CN_GROUP_WARP_CHECK_RANGE = 0x3e8 + WYVERN_LOCATION_FLAG_SIZE = 0x2 + CN_PC_EVENT_ID_GET_NANO_QUEST = 0x1 + CN_PC_EVENT_ID_DEFEAT_FUSE_AND_GET_NANO = 0x2 + _dCN_STREETSTALL__ITEMLIST_COUNT_MAX = 0x5 + CSB_BIT_NONE = 0x0 + CSB_BIT_UP_MOVE_SPEED = 0x1 + CSB_BIT_UP_SWIM_SPEED = 0x2 + CSB_BIT_UP_JUMP_HEIGHT = 0x4 + CSB_BIT_UP_STEALTH = 0x8 + CSB_BIT_PHOENIX = 0x10 + CSB_BIT_PROTECT_BATTERY = 0x20 + CSB_BIT_PROTECT_INFECTION = 0x40 + CSB_BIT_DN_MOVE_SPEED = 0x80 + CSB_BIT_DN_ATTACK_SPEED = 0x100 + CSB_BIT_STUN = 0x200 + CSB_BIT_MEZ = 0x400 + CSB_BIT_KNOCKDOWN = 0x800 + CSB_BIT_MINIMAP_ENEMY = 0x1000 + CSB_BIT_MINIMAP_TRESURE = 0x2000 + CSB_BIT_REWARD_BLOB = 0x4000 + CSB_BIT_REWARD_CASH = 0x8000 + CSB_BIT_INFECTION = 0x10000 + CSB_BIT_FREEDOM = 0x20000 + CSB_BIT_BOUNDINGBALL = 0x40000 + CSB_BIT_INVULNERABLE = 0x80000 + CSB_BIT_STIMPAKSLOT1 = 0x100000 + CSB_BIT_STIMPAKSLOT2 = 0x200000 + CSB_BIT_STIMPAKSLOT3 = 0x400000 + CSB_BIT_HEAL = 0x800000 + CSB_BIT_EXTRABANK = 0x1000000 + TIME_BUFF_CONFIRM_KEY_MAX = 0x77359400 + READPACKET_SUCC = 0x0 + READPACKET_FAIL = 0x1 + READPACKET_RETURN = 0x2 + BITMASK_FROM2TO = 0xff000000 + BITMASK_FROM = 0xf0000000 + BITMASK_TO = 0xf000000 + BITMASK_SENDBLOCK = 0x800000 + BITMASK_AUTHED = 0x400000 + BITMASK_U_ID = 0xfff + CL2LS = 0x12000000 + CL2FE = 0x13000000 + LS2CL = 0x21000000 + LS2LS = 0x22000000 + LS2DBA = 0x27000000 + FE2CL = 0x31000000 + FE2FE = 0x33000000 + FE2GS = 0x34000000 + FE2EP = 0x36000000 + FE2MSG = 0x38000000 + GS2FE = 0x43000000 + GS2GS = 0x44000000 + GS2AI = 0x45000000 + GS2EP = 0x46000000 + GS2DBA = 0x47000000 + GS2MSG = 0x48000000 + GS2MGR = 0x4a000000 + AI2GS = 0x54000000 + EP2FE = 0x63000000 + EP2GS = 0x64000000 + DBA2GS = 0x74000000 + DBA2EP = 0x75000000 + MSG2FE = 0x83000000 + MSG2GS = 0x84000000 + MSG2CMSG = 0x89000000 + CMSG2MSG = 0x98000000 + MGR2SPY = 0xb3000000 + SPY2MGR = 0xb4000000 + MGR2SA = 0xb5000000 + SA2MGR = 0xb6000000 + SA2SPY = 0xb7000000 + SPY2SA = 0xb8000000 + SPY2SVR = 0xb9000000 + SVR2SPY = 0xba000000 + SCH2SVR = 0xc0000000 + SCH2LS = 0xc2000000 + SCH2FE = 0xc3000000 + SCH2GS = 0xc4000000 + SCH2AI = 0xc5000000 + SCH2EP = 0xc6000000 + SCH2DBA = 0xc7000000 + SCH2MSG = 0xc8000000 + SCH2CMSG = 0xc9000000 + CL2CDR = 0x1f000000 + SENDBLOCK = 0x800000 + AUTHED_X = 0x0 + AUTHED_O = 0x400000 + SEND_SVR_FE = 0x1 + SEND_SVR_FE_ANY = 0x2 + SEND_SVR_FE_ALL = 0x3 + SEND_SVR_AI = 0x4 + SEND_SVR_AI_ANY = 0x5 + SEND_SVR_AI_ALL = 0x6 + SEND_SVR_FE_AI_ALL = 0x7 + SEND_SVR_DBA = 0x8 + SEND_SVR_GS = 0x9 + SEND_SVR_MSG = 0xa + SEND_SVR_MSG_ANY = 0xb + SEND_SVR_MSG_ALL = 0xc + SEND_UNICAST = 0x1 + SEND_ANYCAST = 0x2 + SEND_ANYCAST_NEW = 0x3 + SEND_BROADCAST = 0x4 + CN_PACKET_BUFFER_SIZE = 0x1000 + P_CL2LS_REQ_LOGIN = 0x12000001 + P_CL2LS_REQ_CHECK_CHAR_NAME = 0x12000002 + P_CL2LS_REQ_SAVE_CHAR_NAME = 0x12000003 + P_CL2LS_REQ_CHAR_CREATE = 0x12000004 + P_CL2LS_REQ_CHAR_SELECT = 0x12000005 + P_CL2LS_REQ_CHAR_DELETE = 0x12000006 + P_CL2LS_REQ_SHARD_SELECT = 0x12000007 + P_CL2LS_REQ_SHARD_LIST_INFO = 0x12000008 + P_CL2LS_CHECK_NAME_LIST = 0x12000009 + P_CL2LS_REQ_SAVE_CHAR_TUTOR = 0x1200000a + P_CL2LS_REQ_PC_EXIT_DUPLICATE = 0x1200000b + P_CL2LS_REP_LIVE_CHECK = 0x1200000c + P_CL2LS_REQ_CHANGE_CHAR_NAME = 0x1200000d + P_CL2LS_REQ_SERVER_SELECT = 0x1200000e + P_CL2FE_REQ_PC_ENTER = 0x13000001 + P_CL2FE_REQ_PC_EXIT = 0x13000002 + P_CL2FE_REQ_PC_MOVE = 0x13000003 + P_CL2FE_REQ_PC_STOP = 0x13000004 + P_CL2FE_REQ_PC_JUMP = 0x13000005 + P_CL2FE_REQ_PC_ATTACK_NPCs = 0x13000006 + P_CL2FE_REQ_SEND_FREECHAT_MESSAGE = 0x13000007 + P_CL2FE_REQ_SEND_MENUCHAT_MESSAGE = 0x13000008 + P_CL2FE_REQ_PC_REGEN = 0x13000009 + P_CL2FE_REQ_ITEM_MOVE = 0x1300000a + P_CL2FE_REQ_PC_TASK_START = 0x1300000b + P_CL2FE_REQ_PC_TASK_END = 0x1300000c + P_CL2FE_REQ_NANO_EQUIP = 0x1300000d + P_CL2FE_REQ_NANO_UNEQUIP = 0x1300000e + P_CL2FE_REQ_NANO_ACTIVE = 0x1300000f + P_CL2FE_REQ_NANO_TUNE = 0x13000010 + P_CL2FE_REQ_NANO_SKILL_USE = 0x13000011 + P_CL2FE_REQ_PC_TASK_STOP = 0x13000012 + P_CL2FE_REQ_PC_TASK_CONTINUE = 0x13000013 + P_CL2FE_REQ_PC_GOTO = 0x13000014 + P_CL2FE_REQ_CHARGE_NANO_STAMINA = 0x13000015 + P_CL2FE_REQ_PC_KILL_QUEST_NPCs = 0x13000016 + P_CL2FE_REQ_PC_VENDOR_ITEM_BUY = 0x13000017 + P_CL2FE_REQ_PC_VENDOR_ITEM_SELL = 0x13000018 + P_CL2FE_REQ_PC_ITEM_DELETE = 0x13000019 + P_CL2FE_REQ_PC_GIVE_ITEM = 0x1300001a + P_CL2FE_REQ_PC_ROCKET_STYLE_READY = 0x1300001b + P_CL2FE_REQ_PC_ROCKET_STYLE_FIRE = 0x1300001c + P_CL2FE_REQ_PC_ROCKET_STYLE_HIT = 0x1300001d + P_CL2FE_REQ_PC_GRENADE_STYLE_READY = 0x1300001e + P_CL2FE_REQ_PC_GRENADE_STYLE_FIRE = 0x1300001f + P_CL2FE_REQ_PC_GRENADE_STYLE_HIT = 0x13000020 + P_CL2FE_REQ_PC_NANO_CREATE = 0x13000021 + P_CL2FE_REQ_PC_TRADE_OFFER = 0x13000022 + P_CL2FE_REQ_PC_TRADE_OFFER_CANCEL = 0x13000023 + P_CL2FE_REQ_PC_TRADE_OFFER_ACCEPT = 0x13000024 + P_CL2FE_REQ_PC_TRADE_OFFER_REFUSAL = 0x13000025 + P_CL2FE_REQ_PC_TRADE_OFFER_ABORT = 0x13000026 + P_CL2FE_REQ_PC_TRADE_CONFIRM = 0x13000027 + P_CL2FE_REQ_PC_TRADE_CONFIRM_CANCEL = 0x13000028 + P_CL2FE_REQ_PC_TRADE_CONFIRM_ABORT = 0x13000029 + P_CL2FE_REQ_PC_TRADE_ITEM_REGISTER = 0x1300002a + P_CL2FE_REQ_PC_TRADE_ITEM_UNREGISTER = 0x1300002b + P_CL2FE_REQ_PC_TRADE_CASH_REGISTER = 0x1300002c + P_CL2FE_REQ_PC_TRADE_EMOTES_CHAT = 0x1300002d + P_CL2FE_REQ_PC_BANK_OPEN = 0x1300002e + P_CL2FE_REQ_PC_BANK_CLOSE = 0x1300002f + P_CL2FE_REQ_PC_VENDOR_START = 0x13000030 + P_CL2FE_REQ_PC_VENDOR_TABLE_UPDATE = 0x13000031 + P_CL2FE_REQ_PC_VENDOR_ITEM_RESTORE_BUY = 0x13000032 + P_CL2FE_REQ_PC_COMBAT_BEGIN = 0x13000033 + P_CL2FE_REQ_PC_COMBAT_END = 0x13000034 + P_CL2FE_REQ_REQUEST_MAKE_BUDDY = 0x13000035 + P_CL2FE_REQ_ACCEPT_MAKE_BUDDY = 0x13000036 + P_CL2FE_REQ_SEND_BUDDY_FREECHAT_MESSAGE = 0x13000037 + P_CL2FE_REQ_SEND_BUDDY_MENUCHAT_MESSAGE = 0x13000038 + P_CL2FE_REQ_GET_BUDDY_STYLE = 0x13000039 + P_CL2FE_REQ_SET_BUDDY_BLOCK = 0x1300003a + P_CL2FE_REQ_REMOVE_BUDDY = 0x1300003b + P_CL2FE_REQ_GET_BUDDY_STATE = 0x1300003c + P_CL2FE_REQ_PC_JUMPPAD = 0x1300003d + P_CL2FE_REQ_PC_LAUNCHER = 0x1300003e + P_CL2FE_REQ_PC_ZIPLINE = 0x1300003f + P_CL2FE_REQ_PC_MOVEPLATFORM = 0x13000040 + P_CL2FE_REQ_PC_SLOPE = 0x13000041 + P_CL2FE_REQ_PC_STATE_CHANGE = 0x13000042 + P_CL2FE_REQ_PC_MAP_WARP = 0x13000043 + P_CL2FE_REQ_PC_GIVE_NANO = 0x13000044 + P_CL2FE_REQ_NPC_SUMMON = 0x13000045 + P_CL2FE_REQ_NPC_UNSUMMON = 0x13000046 + P_CL2FE_REQ_ITEM_CHEST_OPEN = 0x13000047 + P_CL2FE_REQ_PC_GIVE_NANO_SKILL = 0x13000048 + P_CL2FE_DOT_DAMAGE_ONOFF = 0x13000049 + P_CL2FE_REQ_PC_VENDOR_BATTERY_BUY = 0x1300004a + P_CL2FE_REQ_PC_WARP_USE_NPC = 0x1300004b + P_CL2FE_REQ_PC_GROUP_INVITE = 0x1300004c + P_CL2FE_REQ_PC_GROUP_INVITE_REFUSE = 0x1300004d + P_CL2FE_REQ_PC_GROUP_JOIN = 0x1300004e + P_CL2FE_REQ_PC_GROUP_LEAVE = 0x1300004f + P_CL2FE_REQ_PC_AVATAR_EMOTES_CHAT = 0x13000050 + P_CL2FE_REQ_PC_BUDDY_WARP = 0x13000051 + P_CL2FE_REQ_GET_MEMBER_STYLE = 0x13000052 + P_CL2FE_REQ_GET_GROUP_STYLE = 0x13000053 + P_CL2FE_REQ_PC_CHANGE_MENTOR = 0x13000054 + P_CL2FE_REQ_GET_BUDDY_LOCATION = 0x13000055 + P_CL2FE_REQ_NPC_GROUP_SUMMON = 0x13000056 + P_CL2FE_REQ_PC_WARP_TO_PC = 0x13000057 + P_CL2FE_REQ_EP_RANK_GET_LIST = 0x13000058 + P_CL2FE_REQ_EP_RANK_GET_DETAIL = 0x13000059 + P_CL2FE_REQ_EP_RANK_GET_PC_INFO = 0x1300005a + P_CL2FE_REQ_EP_RACE_START = 0x1300005b + P_CL2FE_REQ_EP_RACE_END = 0x1300005c + P_CL2FE_REQ_EP_RACE_CANCEL = 0x1300005d + P_CL2FE_REQ_EP_GET_RING = 0x1300005e + P_CL2FE_REQ_IM_CHANGE_SWITCH_STATUS = 0x1300005f + P_CL2FE_REQ_SHINY_PICKUP = 0x13000060 + P_CL2FE_REQ_SHINY_SUMMON = 0x13000061 + P_CL2FE_REQ_PC_MOVETRANSPORTATION = 0x13000062 + P_CL2FE_REQ_SEND_ALL_GROUP_FREECHAT_MESSAGE = 0x13000063 + P_CL2FE_REQ_SEND_ANY_GROUP_FREECHAT_MESSAGE = 0x13000064 + P_CL2FE_REQ_BARKER = 0x13000065 + P_CL2FE_REQ_SEND_ALL_GROUP_MENUCHAT_MESSAGE = 0x13000066 + P_CL2FE_REQ_SEND_ANY_GROUP_MENUCHAT_MESSAGE = 0x13000067 + P_CL2FE_REQ_REGIST_TRANSPORTATION_LOCATION = 0x13000068 + P_CL2FE_REQ_PC_WARP_USE_TRANSPORTATION = 0x13000069 + P_CL2FE_GM_REQ_PC_SPECIAL_STATE_SWITCH = 0x1300006a + P_CL2FE_GM_REQ_PC_SET_VALUE = 0x1300006b + P_CL2FE_GM_REQ_KICK_PLAYER = 0x1300006c + P_CL2FE_GM_REQ_TARGET_PC_TELEPORT = 0x1300006d + P_CL2FE_GM_REQ_PC_LOCATION = 0x1300006e + P_CL2FE_GM_REQ_PC_ANNOUNCE = 0x1300006f + P_CL2FE_REQ_SET_PC_BLOCK = 0x13000070 + P_CL2FE_REQ_REGIST_RXCOM = 0x13000071 + P_CL2FE_GM_REQ_PC_MOTD_REGISTER = 0x13000072 + P_CL2FE_REQ_ITEM_USE = 0x13000073 + P_CL2FE_REQ_WARP_USE_RECALL = 0x13000074 + P_CL2FE_REP_LIVE_CHECK = 0x13000075 + P_CL2FE_REQ_PC_MISSION_COMPLETE = 0x13000076 + P_CL2FE_REQ_PC_TASK_COMPLETE = 0x13000077 + P_CL2FE_REQ_NPC_INTERACTION = 0x13000078 + P_CL2FE_DOT_HEAL_ONOFF = 0x13000079 + P_CL2FE_REQ_PC_SPECIAL_STATE_SWITCH = 0x1300007a + P_CL2FE_REQ_PC_EMAIL_UPDATE_CHECK = 0x1300007b + P_CL2FE_REQ_PC_READ_EMAIL = 0x1300007c + P_CL2FE_REQ_PC_RECV_EMAIL_PAGE_LIST = 0x1300007d + P_CL2FE_REQ_PC_DELETE_EMAIL = 0x1300007e + P_CL2FE_REQ_PC_SEND_EMAIL = 0x1300007f + P_CL2FE_REQ_PC_RECV_EMAIL_ITEM = 0x13000080 + P_CL2FE_REQ_PC_RECV_EMAIL_CANDY = 0x13000081 + P_CL2FE_GM_REQ_TARGET_PC_SPECIAL_STATE_ONOFF = 0x13000082 + P_CL2FE_REQ_PC_SET_CURRENT_MISSION_ID = 0x13000083 + P_CL2FE_REQ_NPC_GROUP_INVITE = 0x13000084 + P_CL2FE_REQ_NPC_GROUP_KICK = 0x13000085 + P_CL2FE_REQ_PC_FIRST_USE_FLAG_SET = 0x13000086 + P_CL2FE_REQ_PC_TRANSPORT_WARP = 0x13000087 + P_CL2FE_REQ_PC_TIME_TO_GO_WARP = 0x13000088 + P_CL2FE_REQ_PC_RECV_EMAIL_ITEM_ALL = 0x13000089 + P_CL2FE_REQ_CHANNEL_INFO = 0x1300008a + P_CL2FE_REQ_PC_CHANNEL_NUM = 0x1300008b + P_CL2FE_REQ_PC_WARP_CHANNEL = 0x1300008c + P_CL2FE_REQ_PC_LOADING_COMPLETE = 0x1300008d + P_CL2FE_REQ_PC_FIND_NAME_MAKE_BUDDY = 0x1300008e + P_CL2FE_REQ_PC_FIND_NAME_ACCEPT_BUDDY = 0x1300008f + P_CL2FE_REQ_PC_ATTACK_CHARs = 0x13000090 + P_CL2FE_PC_STREETSTALL_REQ_READY = 0x13000091 + P_CL2FE_PC_STREETSTALL_REQ_CANCEL = 0x13000092 + P_CL2FE_PC_STREETSTALL_REQ_REGIST_ITEM = 0x13000093 + P_CL2FE_PC_STREETSTALL_REQ_UNREGIST_ITEM = 0x13000094 + P_CL2FE_PC_STREETSTALL_REQ_SALE_START = 0x13000095 + P_CL2FE_PC_STREETSTALL_REQ_ITEM_LIST = 0x13000096 + P_CL2FE_PC_STREETSTALL_REQ_ITEM_BUY = 0x13000097 + P_CL2FE_REQ_PC_ITEM_COMBINATION = 0x13000098 + P_CL2FE_GM_REQ_SET_PC_SKILL = 0x13000099 + P_CL2FE_REQ_PC_SKILL_ADD = 0x1300009a + P_CL2FE_REQ_PC_SKILL_DEL = 0x1300009b + P_CL2FE_REQ_PC_SKILL_USE = 0x1300009c + P_CL2FE_REQ_PC_ROPE = 0x1300009d + P_CL2FE_REQ_PC_BELT = 0x1300009e + P_CL2FE_REQ_PC_VEHICLE_ON = 0x1300009f + P_CL2FE_REQ_PC_VEHICLE_OFF = 0x130000a0 + P_CL2FE_REQ_PC_REGIST_QUICK_SLOT = 0x130000a1 + P_CL2FE_REQ_PC_DISASSEMBLE_ITEM = 0x130000a2 + P_CL2FE_GM_REQ_REWARD_RATE = 0x130000a3 + P_CL2FE_REQ_PC_ITEM_ENCHANT = 0x130000a4 + P_FE2CL_ERROR = 0x31000000 + P_FE2CL_REP_PC_ENTER_FAIL = 0x31000001 + P_FE2CL_REP_PC_ENTER_SUCC = 0x31000002 + P_FE2CL_PC_NEW = 0x31000003 + P_FE2CL_REP_PC_EXIT_FAIL = 0x31000004 + P_FE2CL_REP_PC_EXIT_SUCC = 0x31000005 + P_FE2CL_PC_EXIT = 0x31000006 + P_FE2CL_PC_AROUND = 0x31000007 + P_FE2CL_PC_MOVE = 0x31000008 + P_FE2CL_PC_STOP = 0x31000009 + P_FE2CL_PC_JUMP = 0x3100000a + P_FE2CL_NPC_ENTER = 0x3100000b + P_FE2CL_NPC_EXIT = 0x3100000c + P_FE2CL_NPC_MOVE = 0x3100000d + P_FE2CL_NPC_NEW = 0x3100000e + P_FE2CL_NPC_AROUND = 0x3100000f + P_FE2CL_AROUND_DEL_PC = 0x31000010 + P_FE2CL_AROUND_DEL_NPC = 0x31000011 + P_FE2CL_REP_SEND_FREECHAT_MESSAGE_SUCC = 0x31000012 + P_FE2CL_REP_SEND_FREECHAT_MESSAGE_FAIL = 0x31000013 + P_FE2CL_PC_ATTACK_NPCs_SUCC = 0x31000014 + P_FE2CL_PC_ATTACK_NPCs = 0x31000015 + P_FE2CL_NPC_ATTACK_PCs = 0x31000016 + P_FE2CL_REP_PC_REGEN_SUCC = 0x31000017 + P_FE2CL_REP_SEND_MENUCHAT_MESSAGE_SUCC = 0x31000018 + P_FE2CL_REP_SEND_MENUCHAT_MESSAGE_FAIL = 0x31000019 + P_FE2CL_PC_ITEM_MOVE_SUCC = 0x3100001a + P_FE2CL_PC_EQUIP_CHANGE = 0x3100001b + P_FE2CL_REP_PC_TASK_START_SUCC = 0x3100001c + P_FE2CL_REP_PC_TASK_START_FAIL = 0x3100001d + P_FE2CL_REP_PC_TASK_END_SUCC = 0x3100001e + P_FE2CL_REP_PC_TASK_END_FAIL = 0x3100001f + P_FE2CL_NPC_SKILL_READY = 0x31000020 + P_FE2CL_NPC_SKILL_FIRE = 0x31000021 + P_FE2CL_NPC_SKILL_HIT = 0x31000022 + P_FE2CL_NPC_SKILL_CORRUPTION_READY = 0x31000023 + P_FE2CL_NPC_SKILL_CORRUPTION_HIT = 0x31000024 + P_FE2CL_NPC_SKILL_CANCEL = 0x31000025 + P_FE2CL_REP_NANO_EQUIP_SUCC = 0x31000026 + P_FE2CL_REP_NANO_UNEQUIP_SUCC = 0x31000027 + P_FE2CL_REP_NANO_ACTIVE_SUCC = 0x31000028 + P_FE2CL_REP_NANO_TUNE_SUCC = 0x31000029 + P_FE2CL_NANO_ACTIVE = 0x3100002a + P_FE2CL_NANO_SKILL_USE_SUCC = 0x3100002b + P_FE2CL_NANO_SKILL_USE = 0x3100002c + P_FE2CL_REP_PC_TASK_STOP_SUCC = 0x3100002d + P_FE2CL_REP_PC_TASK_STOP_FAIL = 0x3100002e + P_FE2CL_REP_PC_TASK_CONTINUE_SUCC = 0x3100002f + P_FE2CL_REP_PC_TASK_CONTINUE_FAIL = 0x31000030 + P_FE2CL_REP_PC_GOTO_SUCC = 0x31000031 + P_FE2CL_REP_CHARGE_NANO_STAMINA = 0x31000032 + P_FE2CL_REP_PC_TICK = 0x31000033 + P_FE2CL_REP_PC_KILL_QUEST_NPCs_SUCC = 0x31000034 + P_FE2CL_REP_PC_VENDOR_ITEM_BUY_SUCC = 0x31000035 + P_FE2CL_REP_PC_VENDOR_ITEM_BUY_FAIL = 0x31000036 + P_FE2CL_REP_PC_VENDOR_ITEM_SELL_SUCC = 0x31000037 + P_FE2CL_REP_PC_VENDOR_ITEM_SELL_FAIL = 0x31000038 + P_FE2CL_REP_PC_ITEM_DELETE_SUCC = 0x31000039 + P_FE2CL_PC_ROCKET_STYLE_READY = 0x3100003a + P_FE2CL_REP_PC_ROCKET_STYLE_FIRE_SUCC = 0x3100003b + P_FE2CL_PC_ROCKET_STYLE_FIRE = 0x3100003c + P_FE2CL_PC_ROCKET_STYLE_HIT = 0x3100003d + P_FE2CL_PC_GRENADE_STYLE_READY = 0x3100003e + P_FE2CL_REP_PC_GRENADE_STYLE_FIRE_SUCC = 0x3100003f + P_FE2CL_PC_GRENADE_STYLE_FIRE = 0x31000040 + P_FE2CL_PC_GRENADE_STYLE_HIT = 0x31000041 + P_FE2CL_REP_PC_TRADE_OFFER = 0x31000042 + P_FE2CL_REP_PC_TRADE_OFFER_CANCEL = 0x31000043 + P_FE2CL_REP_PC_TRADE_OFFER_SUCC = 0x31000044 + P_FE2CL_REP_PC_TRADE_OFFER_REFUSAL = 0x31000045 + P_FE2CL_REP_PC_TRADE_OFFER_ABORT = 0x31000046 + P_FE2CL_REP_PC_TRADE_CONFIRM = 0x31000047 + P_FE2CL_REP_PC_TRADE_CONFIRM_CANCEL = 0x31000048 + P_FE2CL_REP_PC_TRADE_CONFIRM_ABORT = 0x31000049 + P_FE2CL_REP_PC_TRADE_CONFIRM_SUCC = 0x3100004a + P_FE2CL_REP_PC_TRADE_CONFIRM_FAIL = 0x3100004b + P_FE2CL_REP_PC_TRADE_ITEM_REGISTER_SUCC = 0x3100004c + P_FE2CL_REP_PC_TRADE_ITEM_REGISTER_FAIL = 0x3100004d + P_FE2CL_REP_PC_TRADE_ITEM_UNREGISTER_SUCC = 0x3100004e + P_FE2CL_REP_PC_TRADE_ITEM_UNREGISTER_FAIL = 0x3100004f + P_FE2CL_REP_PC_TRADE_CASH_REGISTER_SUCC = 0x31000050 + P_FE2CL_REP_PC_TRADE_CASH_REGISTER_FAIL = 0x31000051 + P_FE2CL_REP_PC_TRADE_EMOTES_CHAT = 0x31000052 + P_FE2CL_REP_PC_NANO_CREATE_SUCC = 0x31000053 + P_FE2CL_REP_PC_NANO_CREATE_FAIL = 0x31000054 + P_FE2CL_REP_NANO_TUNE_FAIL = 0x31000055 + P_FE2CL_REP_PC_BANK_OPEN_SUCC = 0x31000056 + P_FE2CL_REP_PC_BANK_OPEN_FAIL = 0x31000057 + P_FE2CL_REP_PC_BANK_CLOSE_SUCC = 0x31000058 + P_FE2CL_REP_PC_BANK_CLOSE_FAIL = 0x31000059 + P_FE2CL_REP_PC_VENDOR_START_SUCC = 0x3100005a + P_FE2CL_REP_PC_VENDOR_START_FAIL = 0x3100005b + P_FE2CL_REP_PC_VENDOR_TABLE_UPDATE_SUCC = 0x3100005c + P_FE2CL_REP_PC_VENDOR_TABLE_UPDATE_FAIL = 0x3100005d + P_FE2CL_REP_PC_VENDOR_ITEM_RESTORE_BUY_SUCC = 0x3100005e + P_FE2CL_REP_PC_VENDOR_ITEM_RESTORE_BUY_FAIL = 0x3100005f + P_FE2CL_CHAR_TIME_BUFF_TIME_OUT = 0x31000060 + P_FE2CL_REP_PC_GIVE_ITEM_SUCC = 0x31000061 + P_FE2CL_REP_PC_GIVE_ITEM_FAIL = 0x31000062 + P_FE2CL_REP_PC_BUDDYLIST_INFO_SUCC = 0x31000063 + P_FE2CL_REP_PC_BUDDYLIST_INFO_FAIL = 0x31000064 + P_FE2CL_REP_REQUEST_MAKE_BUDDY_SUCC = 0x83000065 + P_FE2CL_REP_REQUEST_MAKE_BUDDY_FAIL = 0x31000066 + P_FE2CL_REP_ACCEPT_MAKE_BUDDY_SUCC = 0x31000067 + P_FE2CL_REP_ACCEPT_MAKE_BUDDY_FAIL = 0x31000068 + P_FE2CL_REP_SEND_BUDDY_FREECHAT_MESSAGE_SUCC = 0x31000069 + P_FE2CL_REP_SEND_BUDDY_FREECHAT_MESSAGE_FAIL = 0x3100006a + P_FE2CL_REP_SEND_BUDDY_MENUCHAT_MESSAGE_SUCC = 0x3100006b + P_FE2CL_REP_SEND_BUDDY_MENUCHAT_MESSAGE_FAIL = 0x3100006c + P_FE2CL_REP_GET_BUDDY_STYLE_SUCC = 0x3100006d + P_FE2CL_REP_GET_BUDDY_STYLE_FAIL = 0x3100006e + P_FE2CL_REP_GET_BUDDY_STATE_SUCC = 0x3100006f + P_FE2CL_REP_GET_BUDDY_STATE_FAIL = 0x31000070 + P_FE2CL_REP_SET_BUDDY_BLOCK_SUCC = 0x31000071 + P_FE2CL_REP_SET_BUDDY_BLOCK_FAIL = 0x31000072 + P_FE2CL_REP_REMOVE_BUDDY_SUCC = 0x31000073 + P_FE2CL_REP_REMOVE_BUDDY_FAIL = 0x31000074 + P_FE2CL_PC_JUMPPAD = 0x31000075 + P_FE2CL_PC_LAUNCHER = 0x31000076 + P_FE2CL_PC_ZIPLINE = 0x31000077 + P_FE2CL_PC_MOVEPLATFORM = 0x31000078 + P_FE2CL_PC_SLOPE = 0x31000079 + P_FE2CL_PC_STATE_CHANGE = 0x3100007a + P_FE2CL_REP_REQUEST_MAKE_BUDDY_SUCC_TO_ACCEPTER = 0x3100007b + P_FE2CL_REP_REWARD_ITEM = 0x3100007c + P_FE2CL_REP_ITEM_CHEST_OPEN_SUCC = 0x3100007d + P_FE2CL_REP_ITEM_CHEST_OPEN_FAIL = 0x3100007e + P_FE2CL_CHAR_TIME_BUFF_TIME_TICK = 0x3100007f + P_FE2CL_REP_PC_VENDOR_BATTERY_BUY_SUCC = 0x31000080 + P_FE2CL_REP_PC_VENDOR_BATTERY_BUY_FAIL = 0x31000081 + P_FE2CL_NPC_ROCKET_STYLE_FIRE = 0x31000082 + P_FE2CL_NPC_GRENADE_STYLE_FIRE = 0x31000083 + P_FE2CL_NPC_BULLET_STYLE_HIT = 0x31000084 + P_FE2CL_CHARACTER_ATTACK_CHARACTERs = 0x31000085 + P_FE2CL_PC_GROUP_INVITE = 0x31000086 + P_FE2CL_PC_GROUP_INVITE_FAIL = 0x31000087 + P_FE2CL_PC_GROUP_INVITE_REFUSE = 0x31000088 + P_FE2CL_PC_GROUP_JOIN = 0x31000089 + P_FE2CL_PC_GROUP_JOIN_FAIL = 0x3100008a + P_FE2CL_PC_GROUP_JOIN_SUCC = 0x3100008b + P_FE2CL_PC_GROUP_LEAVE = 0x3100008c + P_FE2CL_PC_GROUP_LEAVE_FAIL = 0x3100008d + P_FE2CL_PC_GROUP_LEAVE_SUCC = 0x3100008e + P_FE2CL_PC_GROUP_MEMBER_INFO = 0x3100008f + P_FE2CL_REP_PC_WARP_USE_NPC_SUCC = 0x31000090 + P_FE2CL_REP_PC_WARP_USE_NPC_FAIL = 0x31000091 + P_FE2CL_REP_PC_AVATAR_EMOTES_CHAT = 0x31000092 + P_FE2CL_REP_PC_CHANGE_MENTOR_SUCC = 0x31000093 + P_FE2CL_REP_PC_CHANGE_MENTOR_FAIL = 0x31000094 + P_FE2CL_REP_GET_MEMBER_STYLE_FAIL = 0x31000095 + P_FE2CL_REP_GET_MEMBER_STYLE_SUCC = 0x31000096 + P_FE2CL_REP_GET_GROUP_STYLE_FAIL = 0x31000097 + P_FE2CL_REP_GET_GROUP_STYLE_SUCC = 0x31000098 + P_FE2CL_PC_REGEN = 0x31000099 + P_FE2CL_INSTANCE_MAP_INFO = 0x3100009a + P_FE2CL_TRANSPORTATION_ENTER = 0x3100009b + P_FE2CL_TRANSPORTATION_EXIT = 0x3100009c + P_FE2CL_TRANSPORTATION_MOVE = 0x3100009d + P_FE2CL_TRANSPORTATION_NEW = 0x3100009e + P_FE2CL_TRANSPORTATION_AROUND = 0x3100009f + P_FE2CL_AROUND_DEL_TRANSPORTATION = 0x310000a0 + P_FE2CL_REP_EP_RANK_LIST = 0x310000a1 + P_FE2CL_REP_EP_RANK_DETAIL = 0x310000a2 + P_FE2CL_REP_EP_RANK_PC_INFO = 0x310000a3 + P_FE2CL_REP_EP_RACE_START_SUCC = 0x310000a4 + P_FE2CL_REP_EP_RACE_START_FAIL = 0x310000a5 + P_FE2CL_REP_EP_RACE_END_SUCC = 0x310000a6 + P_FE2CL_REP_EP_RACE_END_FAIL = 0x310000a7 + P_FE2CL_REP_EP_RACE_CANCEL_SUCC = 0x310000a8 + P_FE2CL_REP_EP_RACE_CANCEL_FAIL = 0x310000a9 + P_FE2CL_REP_EP_GET_RING_SUCC = 0x310000aa + P_FE2CL_REP_EP_GET_RING_FAIL = 0x310000ab + P_FE2CL_REP_IM_CHANGE_SWITCH_STATUS = 0x310000ac + P_FE2CL_SHINY_ENTER = 0x310000ad + P_FE2CL_SHINY_EXIT = 0x310000ae + P_FE2CL_SHINY_NEW = 0x310000af + P_FE2CL_SHINY_AROUND = 0x310000b0 + P_FE2CL_AROUND_DEL_SHINY = 0x310000b1 + P_FE2CL_REP_SHINY_PICKUP_FAIL = 0x310000b2 + P_FE2CL_REP_SHINY_PICKUP_SUCC = 0x310000b3 + P_FE2CL_PC_MOVETRANSPORTATION = 0x310000b4 + P_FE2CL_REP_SEND_ALL_GROUP_FREECHAT_MESSAGE_SUCC = 0x310000b5 + P_FE2CL_REP_SEND_ALL_GROUP_FREECHAT_MESSAGE_FAIL = 0x310000b6 + P_FE2CL_REP_SEND_ANY_GROUP_FREECHAT_MESSAGE_SUCC = 0x310000b7 + P_FE2CL_REP_SEND_ANY_GROUP_FREECHAT_MESSAGE_FAIL = 0x310000b8 + P_FE2CL_REP_BARKER = 0x310000b9 + P_FE2CL_REP_SEND_ALL_GROUP_MENUCHAT_MESSAGE_SUCC = 0x310000ba + P_FE2CL_REP_SEND_ALL_GROUP_MENUCHAT_MESSAGE_FAIL = 0x310000bb + P_FE2CL_REP_SEND_ANY_GROUP_MENUCHAT_MESSAGE_SUCC = 0x310000bc + P_FE2CL_REP_SEND_ANY_GROUP_MENUCHAT_MESSAGE_FAIL = 0x310000bd + P_FE2CL_REP_PC_REGIST_TRANSPORTATION_LOCATION_FAIL = 0x310000be + P_FE2CL_REP_PC_REGIST_TRANSPORTATION_LOCATION_SUCC = 0x310000bf + P_FE2CL_REP_PC_WARP_USE_TRANSPORTATION_FAIL = 0x310000c0 + P_FE2CL_REP_PC_WARP_USE_TRANSPORTATION_SUCC = 0x310000c1 + P_FE2CL_ANNOUNCE_MSG = 0x310000c2 + P_FE2CL_REP_PC_SPECIAL_STATE_SWITCH_SUCC = 0x310000c3 + P_FE2CL_PC_SPECIAL_STATE_CHANGE = 0x310000c4 + P_FE2CL_GM_REP_PC_SET_VALUE = 0x310000c5 + P_FE2CL_GM_PC_CHANGE_VALUE = 0x310000c6 + P_FE2CL_GM_REP_PC_LOCATION = 0x310000c7 + P_FE2CL_GM_REP_PC_ANNOUNCE = 0x310000c8 + P_FE2CL_REP_PC_BUDDY_WARP_FAIL = 0x310000c9 + P_FE2CL_REP_PC_CHANGE_LEVEL = 0x310000ca + P_FE2CL_REP_SET_PC_BLOCK_SUCC = 0x310000cb + P_FE2CL_REP_SET_PC_BLOCK_FAIL = 0x310000cc + P_FE2CL_REP_REGIST_RXCOM = 0x310000cd + P_FE2CL_REP_REGIST_RXCOM_FAIL = 0x310000ce + P_FE2CL_PC_INVEN_FULL_MSG = 0x310000cf + P_FE2CL_REQ_LIVE_CHECK = 0x310000d0 + P_FE2CL_PC_MOTD_LOGIN = 0x310000d1 + P_FE2CL_REP_PC_ITEM_USE_FAIL = 0x310000d2 + P_FE2CL_REP_PC_ITEM_USE_SUCC = 0x310000d3 + P_FE2CL_PC_ITEM_USE = 0x310000d4 + P_FE2CL_REP_GET_BUDDY_LOCATION_SUCC = 0x310000d5 + P_FE2CL_REP_GET_BUDDY_LOCATION_FAIL = 0x310000d6 + P_FE2CL_REP_PC_RIDING_FAIL = 0x310000d7 + P_FE2CL_REP_PC_RIDING_SUCC = 0x310000d8 + P_FE2CL_PC_RIDING = 0x310000d9 + P_FE2CL_PC_BROOMSTICK_MOVE = 0x310000da + P_FE2CL_REP_PC_BUDDY_WARP_OTHER_SHARD_SUCC = 0x310000db + P_FE2CL_REP_WARP_USE_RECALL_FAIL = 0x310000dc + P_FE2CL_REP_PC_EXIT_DUPLICATE = 0x310000dd + P_FE2CL_REP_PC_MISSION_COMPLETE_SUCC = 0x310000de + P_FE2CL_PC_BUFF_UPDATE = 0x310000df + P_FE2CL_REP_PC_NEW_EMAIL = 0x310000e0 + P_FE2CL_REP_PC_READ_EMAIL_SUCC = 0x310000e1 + P_FE2CL_REP_PC_READ_EMAIL_FAIL = 0x310000e2 + P_FE2CL_REP_PC_RECV_EMAIL_PAGE_LIST_SUCC = 0x310000e3 + P_FE2CL_REP_PC_RECV_EMAIL_PAGE_LIST_FAIL = 0x310000e4 + P_FE2CL_REP_PC_DELETE_EMAIL_SUCC = 0x310000e5 + P_FE2CL_REP_PC_DELETE_EMAIL_FAIL = 0x310000e6 + P_FE2CL_REP_PC_SEND_EMAIL_SUCC = 0x310000e7 + P_FE2CL_REP_PC_SEND_EMAIL_FAIL = 0x310000e8 + P_FE2CL_REP_PC_RECV_EMAIL_ITEM_SUCC = 0x310000e9 + P_FE2CL_REP_PC_RECV_EMAIL_ITEM_FAIL = 0x310000ea + P_FE2CL_REP_PC_RECV_EMAIL_CANDY_SUCC = 0x310000eb + P_FE2CL_REP_PC_RECV_EMAIL_CANDY_FAIL = 0x310000ec + P_FE2CL_PC_SUDDEN_DEAD = 0x310000ed + P_FE2CL_REP_GM_REQ_TARGET_PC_SPECIAL_STATE_ONOFF_SUCC = 0x310000ee + P_FE2CL_REP_PC_SET_CURRENT_MISSION_ID = 0x310000ef + P_FE2CL_REP_NPC_GROUP_INVITE_FAIL = 0x310000f0 + P_FE2CL_REP_NPC_GROUP_INVITE_SUCC = 0x310000f1 + P_FE2CL_REP_NPC_GROUP_KICK_FAIL = 0x310000f2 + P_FE2CL_REP_NPC_GROUP_KICK_SUCC = 0x310000f3 + P_FE2CL_PC_EVENT = 0x310000f4 + P_FE2CL_REP_PC_TRANSPORT_WARP_SUCC = 0x310000f5 + P_FE2CL_REP_PC_TRADE_EMOTES_CHAT_FAIL = 0x310000f6 + P_FE2CL_REP_PC_RECV_EMAIL_ITEM_ALL_SUCC = 0x310000f7 + P_FE2CL_REP_PC_RECV_EMAIL_ITEM_ALL_FAIL = 0x310000f8 + P_FE2CL_REP_PC_LOADING_COMPLETE_SUCC = 0x310000f9 + P_FE2CL_REP_CHANNEL_INFO = 0x310000fa + P_FE2CL_REP_PC_CHANNEL_NUM = 0x310000fb + P_FE2CL_REP_PC_WARP_CHANNEL_FAIL = 0x310000fc + P_FE2CL_REP_PC_WARP_CHANNEL_SUCC = 0x310000fd + P_FE2CL_REP_PC_FIND_NAME_MAKE_BUDDY_SUCC = 0x310000fe + P_FE2CL_REP_PC_FIND_NAME_MAKE_BUDDY_FAIL = 0x310000ff + P_FE2CL_REP_PC_FIND_NAME_ACCEPT_BUDDY_FAIL = 0x31000100 + P_FE2CL_REP_PC_BUDDY_WARP_SAME_SHARD_SUCC = 0x31000101 + P_FE2CL_PC_ATTACK_CHARs_SUCC = 0x31000102 + P_FE2CL_PC_ATTACK_CHARs = 0x31000103 + P_FE2CL_NPC_ATTACK_CHARs = 0x31000104 + P_FE2CL_REP_PC_CHANGE_LEVEL_SUCC = 0x31000105 + P_FE2CL_REP_PC_NANO_CREATE = 0x31000106 + P_FE2CL_PC_STREETSTALL_REP_READY_SUCC = 0x31000107 + P_FE2CL_PC_STREETSTALL_REP_READY_FAIL = 0x31000108 + P_FE2CL_PC_STREETSTALL_REP_CANCEL_SUCC = 0x31000109 + P_FE2CL_PC_STREETSTALL_REP_CANCEL_FAIL = 0x3100010a + P_FE2CL_PC_STREETSTALL_REP_REGIST_ITEM_SUCC = 0x3100010b + P_FE2CL_PC_STREETSTALL_REP_REGIST_ITEM_FAIL = 0x3100010c + P_FE2CL_PC_STREETSTALL_REP_UNREGIST_ITEM_SUCC = 0x3100010d + P_FE2CL_PC_STREETSTALL_REP_UNREGIST_ITEM_FAIL = 0x3100010e + P_FE2CL_PC_STREETSTALL_REP_SALE_START_SUCC = 0x3100010f + P_FE2CL_PC_STREETSTALL_REP_SALE_START_FAIL = 0x31000110 + P_FE2CL_PC_STREETSTALL_REP_ITEM_LIST = 0x31000111 + P_FE2CL_PC_STREETSTALL_REP_ITEM_LIST_FAIL = 0x31000112 + P_FE2CL_PC_STREETSTALL_REP_ITEM_BUY_SUCC_BUYER = 0x31000113 + P_FE2CL_PC_STREETSTALL_REP_ITEM_BUY_SUCC_SELLER = 0x31000114 + P_FE2CL_PC_STREETSTALL_REP_ITEM_BUY_FAIL = 0x31000115 + P_FE2CL_REP_PC_ITEM_COMBINATION_SUCC = 0x31000116 + P_FE2CL_REP_PC_ITEM_COMBINATION_FAIL = 0x31000117 + P_FE2CL_PC_CASH_BUFF_UPDATE = 0x31000118 + P_FE2CL_REP_PC_SKILL_ADD_SUCC = 0x31000119 + P_FE2CL_REP_PC_SKILL_ADD_FAIL = 0x3100011a + P_FE2CL_REP_PC_SKILL_DEL_SUCC = 0x3100011b + P_FE2CL_REP_PC_SKILL_DEL_FAIL = 0x3100011c + P_FE2CL_REP_PC_SKILL_USE_SUCC = 0x3100011d + P_FE2CL_REP_PC_SKILL_USE_FAIL = 0x3100011e + P_FE2CL_PC_SKILL_USE = 0x3100011f + P_FE2CL_PC_ROPE = 0x31000120 + P_FE2CL_PC_BELT = 0x31000121 + P_FE2CL_PC_VEHICLE_ON_SUCC = 0x31000122 + P_FE2CL_PC_VEHICLE_ON_FAIL = 0x31000123 + P_FE2CL_PC_VEHICLE_OFF_SUCC = 0x31000124 + P_FE2CL_PC_VEHICLE_OFF_FAIL = 0x31000125 + P_FE2CL_PC_QUICK_SLOT_INFO = 0x31000126 + P_FE2CL_REP_PC_REGIST_QUICK_SLOT_FAIL = 0x31000127 + P_FE2CL_REP_PC_REGIST_QUICK_SLOT_SUCC = 0x31000128 + P_FE2CL_PC_DELETE_TIME_LIMIT_ITEM = 0x31000129 + P_FE2CL_REP_PC_DISASSEMBLE_ITEM_SUCC = 0x3100012a + P_FE2CL_REP_PC_DISASSEMBLE_ITEM_FAIL = 0x3100012b + P_FE2CL_GM_REP_REWARD_RATE_SUCC = 0x3100012c + P_FE2CL_REP_PC_ITEM_ENCHANT_SUCC = 0x3100012d + P_FE2CL_REP_PC_ITEM_ENCHANT_FAIL = 0x3100012e + P_LS2CL_REP_LOGIN_SUCC = 0x21000001 + P_LS2CL_REP_LOGIN_FAIL = 0x21000002 + P_LS2CL_REP_CHAR_INFO = 0x21000003 + P_LS2CL_REP_CHECK_CHAR_NAME_SUCC = 0x21000005 + P_LS2CL_REP_CHECK_CHAR_NAME_FAIL = 0x21000006 + P_LS2CL_REP_SAVE_CHAR_NAME_SUCC = 0x21000007 + P_LS2CL_REP_SAVE_CHAR_NAME_FAIL = 0x21000008 + P_LS2CL_REP_CHAR_CREATE_SUCC = 0x21000009 + P_LS2CL_REP_CHAR_CREATE_FAIL = 0x2100000a + P_LS2CL_REP_CHAR_SELECT_SUCC = 0x2100000b + P_LS2CL_REP_CHAR_SELECT_FAIL = 0x2100000c + P_LS2CL_REP_CHAR_DELETE_SUCC = 0x2100000d + P_LS2CL_REP_CHAR_DELETE_FAIL = 0x2100000e + P_LS2CL_REP_SHARD_SELECT_SUCC = 0x2100000f + P_LS2CL_REP_SHARD_SELECT_FAIL = 0x21000010 + P_LS2CL_REP_VERSION_CHECK_SUCC = 0x21000011 + P_LS2CL_REP_VERSION_CHECK_FAIL = 0x21000012 + P_LS2CL_REP_CHECK_NAME_LIST_SUCC = 0x21000013 + P_LS2CL_REP_CHECK_NAME_LIST_FAIL = 0x21000014 + P_LS2CL_REP_PC_EXIT_DUPLICATE = 0x21000015 + P_LS2CL_REQ_LIVE_CHECK = 0x21000016 + P_LS2CL_REP_CHANGE_CHAR_NAME_SUCC = 0x21000017 + P_LS2CL_REP_CHANGE_CHAR_NAME_FAIL = 0x21000018 + P_LS2CL_REP_SHARD_LIST_INFO_SUCC = 0x21000019 +) + type SP_CL2FE_REQ_PC_ENTER struct { SzID string `size:"33" pad:"2"` ITempValue int32 diff --git a/tools/genstructs.py b/tools/genstructs.py index dfa7180..b6bbc86 100755 --- a/tools/genstructs.py +++ b/tools/genstructs.py @@ -3,10 +3,11 @@ genstructs.py - gopenfusion Takes raw structures from a decompiled 'Assembly - CSharp.dll' from a main.unity3d fusionfall beta client, - and transpiles them to gopenfusion's custom packet structure & tags. This requires a C compiler installed, - since struct field padding is grabbed via the `offsetof()` C macro. Some manual rearranging of structures - from the disassembled source might be needed, however the script should 'just werk' off of ilspycmd output. - This script can also be modified to generate c-style structures (because it already does!) + and transpiles them to gopenfusion's custom packet structure & tags. Some useful constants are also grabbed + and transpiled. This requires a C compiler installed, since struct field padding is grabbed via the `offsetof()` + C macro. Some manual rearranging of structures from the disassembled source might be needed, however the script + should 'just werk' off of ilspycmd output. This script can also be modified to generate c-style structures + (because it already does!) usage: ./genstructs.py [IN.cs] > structs.go @@ -239,17 +240,13 @@ class StructTranspiler: source += "\n}\n" return source -if __name__ == '__main__': - inFilePath = sys.argv[1] - - iFile = open(inFilePath, "r") - lines = iFile.readlines() +def transpileStructs(lines: list[str]) -> list[StructTranspiler]: structs: list[StructTranspiler] = [] def tryPatching(struct: StructTranspiler) -> StructTranspiler: f = struct.needsPatching() lastf = None - while f != -1: + while f != -1 and lastf != f: # search for existing struct name = struct.fields[f].type for s in structs: @@ -259,10 +256,9 @@ if __name__ == '__main__': struct.fields[f].size *= s.size # field's size was set to 1 even if it wasn't an array struct.fields[f].needsPatching = False # mark done break + lastf = f f = struct.needsPatching() - if lastf == f: # we're stuck, we'll try patching later - break return struct @@ -309,13 +305,69 @@ if __name__ == '__main__': for i in range(len(structs)): structs[i].populatePadding(lines[i].split(" ")) + return structs + +class ConstTranspiler: + def __init__(self, lines: list[str]) -> None: + self.lines = lines + self.cursor = 0 + self.value = 0 + self.name = 0 + + def getLine(self) -> str: + return self.lines[self.cursor] + + def getNextLine(self) -> str: + self.cursor += 1 + return self.getLine() + + # skip lines until we run into a 'public const uint ' + def searchForConst(self) -> None: + line = self.getLine() + while True: + if line.find("public const uint ") != -1: + nameStart = (line.find("public const uint ") + len("public const uint ")) + self.value = int(line[(line.find("= ", nameStart) + len("= ")):line.find("u;")]) + self.name = line[nameStart:line.find(" = ", nameStart)] + self.getNextLine() + return + line = self.getNextLine() + +def transpileConsts(lines: list[str]) -> list[ConstTranspiler]: + consts: list[ConstTranspiler] = [] + + while True: + try: + const = ConstTranspiler(lines) + const.searchForConst() + + consts.append(const) + lines = const.lines[const.cursor:] + except: + break + + return consts + +if __name__ == '__main__': + inFilePath = sys.argv[1] + + iFile = open(inFilePath, "r") + lines = iFile.readlines() + structs = transpileStructs(lines) + consts = transpileConsts(lines) + # emit structures source = "// generated via genstructs.py" if WARN_INVALID: source += " - WARN!! Not all structures are valid, grep 'WARNING'\n" else: source += " - All structure padding and member alignment verified\n" - source += "package protocol\n\n" + + source += "package protocol\n\nconst (\n" + for const in consts: + source += "\t%s = 0x%x\n" % (const.name, const.value) + source += ")\n\n" + for struct in structs: source += struct.toGoStyle() + "\n" print(source)