private void RunPacket(ushort Opcode, byte[] Buffer, string value) { try { AuthPacketReader Packet = null; switch (Opcode) { case 2672: Packet = new PROTOCOL_BASE_LOGIN_TH_REQ(); break; case 2561: Packet = new PROTOCOL_BASE_LOGIN_REQ(); break; case 528: Packet = new PROTOCOL_BASE_USER_GIFTLIST_REQ(); break; case 544: Packet = new PROTOCOL_BASE_WEB_CASH_REQ(); break; case 2565: Packet = new PROTOCOL_BASE_USER_INFO_REQ(); break; //case 2666: Packet = new PROTOCOL_BASE_USER_INFO_REQ(); break; case 2567: Packet = new PROTOCOL_BASE_USER_FRIENDS_REQ(); break; case 2577: Packet = new PROTOCOL_BASE_SERVER_CHANGE_REQ(); break; case 2579: Packet = new PROTOCOL_BASE_USER_ENTER_REQ(); break; case 2581: Packet = new PROTOCOL_BASE_CONFIG_SAVE_REQ(); break; case 2642: Packet = new PROTOCOL_BASE_SERVER_LIST_REFRESH_REQ(); break; case 2654: Packet = new PROTOCOL_BASE_USER_EXIT_REQ(); break; case 2678: Packet = new PROTOCOL_BASE_SOURCE_REQ(); break; case 2698: Packet = new PROTOCOL_BASE_USER_INVENTORY_REQ(); break; case 2575: break; default: { Logger.Warning($" [AuthClient] Unknown REQ ID: {Opcode} Value: {value}."); Close(5); break; } } if (Packet == null) { return; } Logger.PacketREQ($" [AuthClient] [RunPacket] {Packet} Value: {value} SessionDate: {SessionDate} ReceiveDate: {DateTime.Now}"); Packet.client = this; Packet.buffer = Buffer; if (Settings.DebugMode) { Logger.Debug($" [AuthClient] PacketId: {Opcode} PacketLength: {Buffer.Length} PacketName: {Packet}\n{FormatHex(Buffer)}"); } try { Packet.ReadImplement(); new Thread(new ThreadStart(() => { try { Packet.RunImplement(); } catch (Exception ex) { Logger.Error(" [AuthClient] RunImplement Catch [!] Exception: " + ex); Close(50); } })).Start(); } catch (Exception ex) { Logger.Error(" [AuthClient] ReadImplement Catch [!] Exception: " + ex); Close(50); } } catch (Exception ex) { Logger.Exception(ex); } }
private void RunPacket(ushort Opcode, byte[] Buffer, string value) { try { GamePacketReader Packet = null; switch (Opcode) { case 275: Packet = new PROTOCOL_FRIEND_INVITE_FOR_ROOM_REQ(); break; case 280: Packet = new PROTOCOL_FRIEND_ACCEPT_REQ(); break; case 282: Packet = new PROTOCOL_FRIEND_INVITE_REQ(); break; case 284: Packet = new PROTOCOL_FRIEND_DELETE_REQ(); break; case 290: Packet = new PROTOCOL_BASE_SEND_WHISPER_REQ(); break; case 292: Packet = new PROTOCOL_BASE_SEND_WHISPER2_REQ(); break; case 297: Packet = new PROTOCOL_BASE_FIND_USER_REQ(); break; case 417: Packet = new PROTOCOL_BOX_MESSAGE_CREATE_REQ(); break; case 419: Packet = new PROTOCOL_BOX_MESSAGE_REPLY_REQ(); break; case 422: Packet = new PROTOCOL_BOX_MESSAGE_VIEW_REQ(); break; case 424: Packet = new PROTOCOL_BOX_MESSAGE_DELETE_REQ(); break; case 530: Packet = new PROTOCOL_SHOP_BUY_ITEM_REQ(); break; case 534: Packet = new PROTOCOL_INVENTORY_ITEM_EQUIP_REQ(); break; case 536: Packet = new PROTOCOL_INVENTORY_ITEM_EFFECT_REQ(); break; case 540: Packet = new PROTOCOL_BOX_MESSAGE_GIFT_TAKE_REQ(); break; case 542: Packet = new PROTOCOL_INVENTORY_ITEM_EXCLUDE_REQ(); break; case 544: Packet = new PROTOCOL_BASE_WEB_CASH_REQ(); break; case 548: Packet = new PROTOCOL_INVENTORY_ITEM_CHECK_NICKNAME_REQ(); break; case 1304: Packet = new PROTOCOL_CLAN_GET_INFO_REQ(); break; case 1306: Packet = new PROTOCOL_CLAN_MEMBER_CONTEXT_REQ(); break; case 1308: Packet = new PROTOCOL_CLAN_MEMBER_LIST_REQ(); break; case 1310: Packet = new PROTOCOL_CLAN_CREATE_REQ(); break; case 1312: Packet = new PROTOCOL_CLAN_DELETE_REQ(); break; case 1314: Packet = new PROTOCOL_CLAN_CHECK_CREATE_INVITE_REQ(); break; case 1316: Packet = new PROTOCOL_CLAN_CREATE_INVITE_REQ(); break; case 1318: Packet = new PROTOCOL_CLAN_PLAYER_CLEAN_INVITES_REQ(); break; case 1320: Packet = new PROTOCOL_CLAN_GET_CONTEXT_ENLISTMENTS_REQ(); break; case 1322: Packet = new PROTOCOL_CLAN_GET_LIST_ENLISTMENTS_REQ(); break; case 1324: Packet = new PROTOCOL_CLAN_REQUEST_INFO_REQ(); break; case 1326: Packet = new PROTOCOL_CLAN_REQUEST_ACCEPT_REQ(); break; case 1329: Packet = new PROTOCOL_CLAN_REQUEST_DENIAL_REQ(); break; case 1332: Packet = new PROTOCOL_CLAN_MEMBER_LEAVE_REQ(); break; case 1334: Packet = new PROTOCOL_CLAN_DEMOTE_KICK_REQ(); break; case 1337: Packet = new PROTOCOL_CLAN_PROMOTE_MASTER_REQ(); break; case 1340: Packet = new PROTOCOL_CLAN_PROMOTE_AUX_REQ(); break; case 1343: Packet = new PROTOCOL_CLAN_DEMOTE_NORMAL_REQ(); break; case 1358: Packet = new PROTOCOL_CLAN_CHATTING_REQ(); break; case 1360: Packet = new PROTOCOL_CLAN_CHECK_LOGO_REQ(); break; case 1362: Packet = new PROTOCOL_CLAN_CHANGE_NOTICE_REQ(); break; case 1364: Packet = new PROTOCOL_CLAN_CHANGE_INFO_REQ(); break; case 1372: Packet = new PROTOCOL_CLAN_SAVE_CONFIG_REQ(); break; case 1381: Packet = new PROTOCOL_CLAN_ROOM_INVITED_REQ(); break; case 1390: Packet = new PROTOCOL_CLAN_CHAT_1390_REQ(); break; case 1392: Packet = new PROTOCOL_CLAN_MESSAGE_INVITE_REQ(); break; case 1394: Packet = new PROTOCOL_CLAN_MESSAGE_REQUEST_INTERACT_REQ(); break; case 1396: Packet = new PROTOCOL_CLAN_MSG_FOR_PLAYERS_REQ(); break; case 1416: Packet = new PROTOCOL_CLAN_CREATE_REQUIREMENTS_REQ(); break; case 1441: Packet = new PROTOCOL_CLAN_ENTER_REQ(); break; case 1443: Packet = new PROTOCOL_CLAN_LEAVE_REQ(); break; case 1445: Packet = new PROTOCOL_CLAN_LIST_REQ(); break; case 1447: Packet = new PROTOCOL_CLAN_CHECK_NAME_REQ(); break; case 1451: Packet = new PROTOCOL_CLAN_LIST_CONTEXT_REQ(); break; case 1538: Packet = new PROTOCOL_CLAN_WAR_PARTY_CONTEXT_REQ(); break; case 1540: Packet = new PROTOCOL_CLAN_WAR_PARTY_LIST_REQ(); break; case 1542: Packet = new PROTOCOL_CLAN_WAR_MATCH_TEAM_CONTEXT_REQ(); break; case 1544: Packet = new PROTOCOL_CLAN_WAR_MATCH_TEAM_LIST_REQ(); break; case 1546: Packet = new PROTOCOL_CLAN_WAR_CREATE_TEAM_REQ(); break; case 1548: Packet = new PROTOCOL_CLAN_WAR_JOIN_TEAM_REQ(); break; case 1550: Packet = new PROTOCOL_CLAN_WAR_LEAVE_TEAM_REQ(); break; case 1553: Packet = new PROTOCOL_CLAN_WAR_PROPOSE_REQ(); break; case 1558: Packet = new PROTOCOL_CLAN_WAR_ACCEPT_BATTLE_REQ(); break; case 1565: Packet = new PROTOCOL_CLAN_WAR_CREATE_ROOM_REQ(); break; case 1567: Packet = new PROTOCOL_CLAN_WAR_JOIN_ROOM_REQ(); break; case 1569: Packet = new PROTOCOL_CLAN_WAR_MATCH_TEAM_INFO_REQ(); break; case 1571: Packet = new PROTOCOL_CLAN_WAR_UPTIME_REQ(); break; case 1576: Packet = new PROTOCOL_CLAN_WAR_TEAM_CHATTING_REQ(); break; case 2571: Packet = new PROTOCOL_BASE_CHANNEL_LIST_REQ(); break; case 2573: Packet = new PROTOCOL_BASE_CHANNEL_ENTER_REQ(); break; case 2575: break; //PROTOCOL_BASE_HEARTBEAT_REQ case 2577: Packet = new PROTOCOL_BASE_SERVER_CHANGE_REQ(); break; case 2579: Packet = new PROTOCOL_BASE_USER_ENTER_REQ(); break; case 2581: Packet = new PROTOCOL_BASE_CONFIG_SAVE_REQ(); break; case 2591: Packet = new PROTOCOL_BASE_GET_USER_STATS_REQ(); break; case 2601: Packet = new PROTOCOL_BASE_MISSION_ENTER_REQ(); break; case 2605: Packet = new PROTOCOL_BASE_QUEST_BUY_CARD_SET_REQ(); break; case 2607: Packet = new PROTOCOL_BASE_QUEST_DELETE_CARD_SET_REQ(); break; case 2619: Packet = new PROTOCOL_BASE_TITLE_GET_REQ(); break; case 2621: Packet = new PROTOCOL_BASE_TITLE_USE_REQ(); break; case 2623: Packet = new PROTOCOL_BASE_TITLE_DETACH_REQ(); break; case 2627: Packet = new PROTOCOL_BASE_CHATTING_REQ(); break; case 2635: break; //PROTOCOL_BASE_MISSION_SUCCESS_REQ case 2639: Packet = new PROTOCOL_LOBBY_PLAYER_STATISTICS_REQ(); break; case 2642: Packet = new PROTOCOL_BASE_SERVER_LIST_REFRESH_REQ(); break; case 2644: Packet = new PROTOCOL_BASE_SERVER_PASSWORD_REQ(); break; case 2654: Packet = new PROTOCOL_BASE_USER_EXIT_REQ(); break; case 2661: Packet = new PROTOCOL_EVENT_VISIT_CONFIRM_REQ(); break; case 2663: Packet = new PROTOCOL_EVENT_VISIT_REWARD_REQ(); break; case 2684: Packet = new PROTOCOL_GM_LOG_LOBBY_REQ(); break; case 2686: Packet = new PROTOCOL_GM_LOG_ROOM_REQ(); break; case 2817: Packet = new PROTOCOL_SHOP_LEAVE_REQ(); break; case 2819: Packet = new PROTOCOL_SHOP_ENTER_REQ(); break; case 2821: Packet = new PROTOCOL_SHOP_LIST_REQ(); break; case 3073: Packet = new PROTOCOL_LOBBY_GET_ROOMLIST_REQ(); break; case 3077: Packet = new PROTOCOL_LOBBY_QUICKJOIN_ROOM_REQ(); break; case 3079: Packet = new PROTOCOL_LOBBY_ENTER_REQ(); break; case 3081: Packet = new PROTOCOL_LOBBY_JOIN_ROOM_REQ(); break; case 3083: Packet = new PROTOCOL_LOBBY_LEAVE_REQ(); break; case 3087: Packet = new PROTOCOL_LOBBY_GET_ROOMINFO_REQ(); break; case 3089: Packet = new PROTOCOL_LOBBY_CREATE_ROOM_REQ(); break; case 3094: Packet = new PROTOCOL_A_3094_REQ(); break; case 3099: Packet = new PROTOCOL_LOBBY_PLAYER_EQUIPMENTS_REQ(); break; case 3101: Packet = new PROTOCOL_LOBBY_CREATE_NICKNAME_REQ(); break; case 3331: Packet = new PROTOCOL_BATTLE_READYBATTLE_REQ(); break; case 3333: Packet = new PROTOCOL_BATTLE_STARTBATTLE_REQ(); break; case 3337: Packet = new PROTOCOL_BATTLE_RESPAWN_REQ(); break; case 3344: Packet = new PROTOCOL_BATTLE_SENDPING_REQ(); break; case 3348: Packet = new PROTOCOL_BATTLE_PRESTARTBATTLE_REQ(); break; case 3354: Packet = new PROTOCOL_BATTLE_DEATH_REQ(); break; case 3356: Packet = new PROTOCOL_BATTLE_MISSION_BOMB_INSTALL_REQ(); break; case 3358: Packet = new PROTOCOL_BATTLE_MISSION_BOMB_UNINSTALL_REQ(); break; case 3368: Packet = new PROTOCOL_BATTLE_MISSION_GENERATOR_INFO_REQ(); break; case 3372: Packet = new PROTOCOL_BATTLE_TIMERSYNC_REQ(); break; case 3376: Packet = new PROTOCOL_BATTLE_CHANGE_DIFFICULTY_LEVEL_REQ(); break; case 3378: Packet = new PROTOCOL_BATTLE_RESPAWN_FOR_AI_REQ(); break; case 3384: Packet = new PROTOCOL_BATTLE_PLAYER_LEAVE_REQ(); break; case 3386: Packet = new PROTOCOL_BATTLE_MISSION_DEFENCE_INFO_REQ(); break; case 3390: Packet = new PROTOCOL_BATTLE_DINO_DEATHBLOW_REQ(); break; case 3394: Packet = new PROTOCOL_BATTLE_ENDTUTORIAL_REQ(); break; case 3396: Packet = new PROTOCOL_VOTEKICK_START_REQ(); break; case 3400: Packet = new PROTOCOL_VOTEKICK_UPDATE_REQ(); break; case 3421: Logger.Error(" [GameManager] PROTOCOL_BATTLE_PAUSE_REQ"); break; case 3423: Logger.Error(" [GameManager] PROTOCOL_BATTLE_UNPAUSE_REQ"); break; case 3428: Packet = new PROTOCOL_A_3428_REQ(); break; case 3585: Packet = new PROTOCOL_INVENTORY_ENTER_REQ(); break; case 3589: Packet = new PROTOCOL_INVENTORY_LEAVE_REQ(); break; case 3841: Packet = new PROTOCOL_ROOM_GET_PLAYERINFO_REQ(); break; case 3845: Packet = new PROTOCOL_ROOM_CHANGE_SLOT_REQ(); break; case 3847: Packet = new PROTOCOL_BATTLE_ROOM_INFO_REQ(); break; case 3849: Packet = new PROTOCOL_ROOM_CLOSE_SLOT_REQ(); break; case 3854: Packet = new PROTOCOL_ROOM_GET_LOBBY_USER_LIST_REQ(); break; case 3858: Packet = new PROTOCOL_ROOM_CHANGE_OPTIONS_REQ(); break; case 3862: Packet = new PROTOCOL_BASE_PROFILE_ENTER_REQ(); break; case 3864: Packet = new PROTOCOL_BASE_PROFILE_LEAVE_REQ(); break; case 3866: Packet = new PROTOCOL_ROOM_REQUEST_HOST_REQ(); break; case 3868: Packet = new PROTOCOL_ROOM_RANDOM_HOST2_REQ(); break; case 3870: Packet = new PROTOCOL_ROOM_CHANGE_HOST_REQ(); break; case 3872: Packet = new PROTOCOL_ROOM_RANDOM_HOST_REQ(); break; case 3874: Packet = new PROTOCOL_ROOM_CHANGE_TEAM_REQ(); break; case 3884: Packet = new PROTOCOL_ROOM_INVITE_PLAYERS_REQ(); break; case 3886: Packet = new PROTOCOL_ROOM_CHANGE_INFO_REQ(); break; case 3890: Packet = new PROTOCOL_GM_KICK_PLAYER_BYSLOT_REQ(); break; case 3894: Packet = new PROTOCOL_A_3894_REQ(); break; case 3900: Packet = new PROTOCOL_A_3900_REQ(); break; case 3902: Packet = new PROTOCOL_A_3902_REQ(); break; case 3904: Packet = new PROTOCOL_BATTLE_LOADING_REQ(); break; case 3906: Packet = new PROTOCOL_ROOM_CHANGE_PASSWORD_REQ(); break; case 3910: Packet = new PROTOCOL_EVENT_PLAYTIME_REWARD_REQ(); break; case 77: Packet = new PROTOCOL_BASE_ADMIN_REQ(); break; case 2694: break; default: { //3329: Pode ser chamado caso state = 13| caso contrário é chamado o 3333 Logger.Warning($" [GameClient] Unknown REQ ID: {Opcode} Value: {value}."); Close(5); break; } } if (Packet == null) { return; } Logger.PacketREQ($" [GameClient] [RunPacket] {Packet} Value: {value} SessionDate: {SessionDate} ReceiveDate: {DateTime.Now}"); Packet.client = this; Packet.buffer = Buffer; if (Settings.DebugMode) { Logger.Debug($" [GameClient] PacketId: {Opcode} PacketLength: {Buffer.Length} PacketName: {Packet}\n{FormatHex(Buffer)}"); } try { Packet.ReadImplement(); new Thread(new ThreadStart(() => { try { Packet.RunImplement(); } catch (Exception ex) { Logger.Error(" [GameClient] RunImplement Catch [!] Exception: " + ex); Close(50); } })).Start(); } catch (Exception ex) { Logger.Error(" [GameClient] ReadImplement Catch [!] Exception: " + ex); Close(50); } } catch (Exception ex) { Logger.Exception(ex); } }