genstructs.py now also scrapes constant definitions

This commit is contained in:
CPunch 2023-03-07 16:28:34 -06:00
parent 07dae43072
commit 4c7696dc92
3 changed files with 860 additions and 847 deletions

View File

@ -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
)

View File

@ -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

View File

@ -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)