diff --git a/BigBaseV2/src/core/enums.hpp b/BigBaseV2/src/core/enums.hpp index 5dc99a08..e0559cd8 100644 --- a/BigBaseV2/src/core/enums.hpp +++ b/BigBaseV2/src/core/enums.hpp @@ -1,183 +1,196 @@ -#pragma once - -namespace big -{ - enum class CustomWeapon - { - NONE, - CAGE_GUN, - DELETE_GUN, - GRAVITY_GUN, - STEAL_VEHICLE_GUN, - REPAIR_GUN, - VEHICLE_GUN - }; - - enum class ContextEntityType : uint8_t - { - NONE = 0, - PED = 1 << 0, - PLAYER = 1 << 1, - VEHICLE = 1 << 2, - OBJECT = 1 << 3, - SHARED = 1 << 4 - }; - - enum class eEntityType - { - UNK_0, - UNK_1, - UNK_2, - UNK_3, - UNK_4, - VEHICLE, - PED, - }; - - enum class eTransitionState - { - TRANSITION_STATE_EMPTY, - TRANSITION_STATE_SP_SWOOP_UP, - TRANSITION_STATE_MP_SWOOP_UP, - TRANSITION_STATE_CREATOR_SWOOP_UP, - TRANSITION_STATE_PRE_HUD_CHECKS, - TRANSITION_STATE_WAIT_HUD_EXIT, - TRANSITION_STATE_WAIT_FOR_SUMMON, - TRANSITION_STATE_SP_SWOOP_DOWN, - TRANSITION_STATE_MP_SWOOP_DOWN, - TRANSITION_STATE_CANCEL_JOINING, - TRANSITION_STATE_RETRY_LOADING, - TRANSITION_STATE_RETRY_LOADING_SLOT_1, - TRANSITION_STATE_RETRY_LOADING_SLOT_2, - TRANSITION_STATE_RETRY_LOADING_SLOT_3, - TRANSITION_STATE_RETRY_LOADING_SLOT_4, - TRANSITION_STATE_WAIT_ON_INVITE, - TRANSITION_STATE_PREJOINING_FM_SESSION_CHECKS, - TRANSITION_STATE_LOOK_FOR_FRESH_JOIN_FM, - TRANSITION_STATE_LOOK_TO_JOIN_ANOTHER_SESSION_FM, - TRANSITION_STATE_CONFIRM_FM_SESSION_JOINING, - TRANSITION_STATE_WAIT_JOIN_FM_SESSION, - TRANSITION_STATE_CREATION_ENTER_SESSION, - TRANSITION_STATE_PRE_FM_LAUNCH_SCRIPT, - TRANSITION_STATE_FM_TEAMFULL_CHECK, - TRANSITION_STATE_START_FM_LAUNCH_SCRIPT, - TRANSITION_STATE_FM_TRANSITION_CREATE_PLAYER, - TRANSITION_STATE_IS_FM_AND_TRANSITION_READY, - TRANSITION_STATE_FM_SWOOP_DOWN, - TRANSITION_STATE_POST_BINK_VIDEO_WARP, - TRANSITION_STATE_FM_FINAL_SETUP_PLAYER, - TRANSITION_STATE_MOVE_FM_TO_RUNNING_STATE, - TRANSITION_STATE_FM_HOW_TO_TERMINATE, - TRANSITION_STATE_START_CREATOR_PRE_LAUNCH_SCRIPT_CHECK, - TRANSITION_STATE_START_CREATOR_LAUNCH_SCRIPT, - TRANSITION_STATE_CREATOR_TRANSITION_CREATE_PLAYER, - TRANSITION_STATE_IS_CREATOR_AND_TRANSITION_READY, - TRANSITION_STATE_CREATOR_SWOOP_DOWN, - TRANSITION_STATE_CREATOR_FINAL_SETUP_PLAYER, - TRANSITION_STATE_MOVE_CREATOR_TO_RUNNING_STATE, - TRANSITION_STATE_PREJOINING_TESTBED_SESSION_CHECKS, - TRANSITION_STATE_LOOK_FOR_FRESH_JOIN_TESTBED, - TRANSITION_STATE_LOOK_FOR_FRESH_HOST_TESTBED, - TRANSITION_STATE_LOOK_TO_JOIN_ANOTHER_SESSION_TESTBED, - TRANSITION_STATE_LOOK_TO_HOST_SESSION_TESTBED, - TRANSITION_STATE_CONFIRM_TESTBED_SESSION_JOINING, - TRANSITION_STATE_WAIT_JOIN_TESTBED_SESSION, - TRANSITION_STATE_START_TESTBED_LAUNCH_SCRIPT, - TRANSITION_STATE_TESTBED_TRANSITION_CREATE_PLAYER, - TRANSITION_STATE_IS_TESTBED_AND_TRANSITION_READY, - TRANSITION_STATE_TESTBED_SWOOP_DOWN, - TRANSITION_STATE_TESTBED_FINAL_SETUP_PLAYER, - TRANSITION_STATE_MOVE_TESTBED_TO_RUNNING_STATE, - TRANSITION_STATE_TESTBED_HOW_TO_TERMINATE, - TRANSITION_STATE_QUIT_CURRENT_SESSION_PROMPT, - TRANSITION_STATE_WAIT_FOR_TRANSITION_SESSION_TO_SETUP, - TRANSITION_STATE_TERMINATE_SP, - TRANSITION_STATE_WAIT_TERMINATE_SP, - TRANSITION_STATE_KICK_TERMINATE_SESSION, - TRANSITION_STATE_TERMINATE_SESSION, - TRANSITION_STATE_WAIT_TERMINATE_SESSION, - TRANSITION_STATE_TERMINATE_SESSION_AND_HOLD, - TRANSITION_STATE_TERMINATE_SESSION_AND_MOVE_INTO_HOLDING_STATE, - TRANSITION_STATE_TEAM_SWAPPING_CHECKS, - TRANSITION_STATE_RETURN_TO_SINGLEPLAYER, - TRANSITION_STATE_WAIT_FOR_SINGLEPLAYER_TO_START, - TRANSITION_STATE_WAITING_FOR_EXTERNAL_TERMINATION_CALL, - TRANSITION_STATE_TERMINATE_MAINTRANSITION, - TRANSITION_STATE_WAIT_FOR_DIRTY_LOAD_CONFIRM, - TRANSITION_STATE_DLC_INTRO_BINK, - TRANSITION_STATE_MAX = INT_MAX - }; - - enum eVehicleFlags - { - TRIGGER_SPAWN_TOGGLE = 1 << 0, - DESTROYED = 1 << 1, - HAS_INSURANCE = 1 << 2, - UNK0 = 1 << 3, - IMPOUNDED = 1 << 6, - UNK1 = 1 << 10, - SPAWN_AT_MORS_MUTUAL = 1 << 11, - UNK2 = 1 << 16 - }; - - enum class ePedTask - { - TASK_NONE, - TASK_FOOT = 1 << 4, - TASK_UNK = 1 << 5, - TASK_DRIVING = 1 << 6 - }; - - enum class eRemoteEvent - { - Bounty = 1294995624, - CeoBan = -764524031, - CeoKick = 248967238, - CeoMoney = 1890277845, - ClearWantedLevel = -91354030, - Crash = -1386010354, - FakeDeposit = 677240627, - ForceMission = 2020588206, - GtaBanner = 1572255940, - MCTeleport = 962740265, - NetworkBail = 1228916411, - PersonalVehicleDestroyed = 802133775, - RemoteOffradar = -391633760, - RotateCam = 801199324, - SendToCutscene = 1068259786, - SendToIsland = -621279188, - SendToCayo = 1463943751, - SoundSpam = 1132878564, - Spectate = -1113591308, - Teleport = 603406648, - TransactionError = -1704141512, - VehicleKick = 578856274, - Unknown1 = -145306724, - Unknown2 = -581037897, - Unknown3 = 1757755807, - Unknown4 = 436475575, - Unknown5 = 990606644, - Unknown6 = 69874647 - }; - - enum class eSessionType - { - JOIN_PUBLIC, - NEW_PUBLIC, - CLOSED_CREW, - CREW, - CLOSED_FRIENDS = 6, - FIND_FRIEND = 9, - SOLO, - INVITE_ONLY, - JOIN_CREW, - LEAVE_ONLINE = -1 - }; - - enum class SpeedoMeter - { - DISABLED, - KMH, - MPH - }; -} +#pragma once + +namespace big +{ + enum class CustomWeapon + { + NONE, + CAGE_GUN, + DELETE_GUN, + GRAVITY_GUN, + STEAL_VEHICLE_GUN, + REPAIR_GUN, + VEHICLE_GUN + }; + + enum class ContextEntityType : uint8_t + { + NONE = 0, + PED = 1 << 0, + PLAYER = 1 << 1, + VEHICLE = 1 << 2, + OBJECT = 1 << 3, + SHARED = 1 << 4 + }; + + enum class eEntityType + { + UNK_0, + UNK_1, + UNK_2, + UNK_3, + UNK_4, + VEHICLE, + PED, + }; + + enum class eTransitionState + { + TRANSITION_STATE_EMPTY, + TRANSITION_STATE_SP_SWOOP_UP, + TRANSITION_STATE_MP_SWOOP_UP, + TRANSITION_STATE_CREATOR_SWOOP_UP, + TRANSITION_STATE_PRE_HUD_CHECKS, + TRANSITION_STATE_WAIT_HUD_EXIT, + TRANSITION_STATE_WAIT_FOR_SUMMON, + TRANSITION_STATE_SP_SWOOP_DOWN, + TRANSITION_STATE_MP_SWOOP_DOWN, + TRANSITION_STATE_CANCEL_JOINING, + TRANSITION_STATE_RETRY_LOADING, + TRANSITION_STATE_RETRY_LOADING_SLOT_1, + TRANSITION_STATE_RETRY_LOADING_SLOT_2, + TRANSITION_STATE_RETRY_LOADING_SLOT_3, + TRANSITION_STATE_RETRY_LOADING_SLOT_4, + TRANSITION_STATE_WAIT_ON_INVITE, + TRANSITION_STATE_PREJOINING_FM_SESSION_CHECKS, + TRANSITION_STATE_LOOK_FOR_FRESH_JOIN_FM, + TRANSITION_STATE_LOOK_TO_JOIN_ANOTHER_SESSION_FM, + TRANSITION_STATE_CONFIRM_FM_SESSION_JOINING, + TRANSITION_STATE_WAIT_JOIN_FM_SESSION, + TRANSITION_STATE_CREATION_ENTER_SESSION, + TRANSITION_STATE_PRE_FM_LAUNCH_SCRIPT, + TRANSITION_STATE_FM_TEAMFULL_CHECK, + TRANSITION_STATE_START_FM_LAUNCH_SCRIPT, + TRANSITION_STATE_FM_TRANSITION_CREATE_PLAYER, + TRANSITION_STATE_IS_FM_AND_TRANSITION_READY, + TRANSITION_STATE_FM_SWOOP_DOWN, + TRANSITION_STATE_POST_BINK_VIDEO_WARP, + TRANSITION_STATE_FM_FINAL_SETUP_PLAYER, + TRANSITION_STATE_MOVE_FM_TO_RUNNING_STATE, + TRANSITION_STATE_FM_HOW_TO_TERMINATE, + TRANSITION_STATE_START_CREATOR_PRE_LAUNCH_SCRIPT_CHECK, + TRANSITION_STATE_START_CREATOR_LAUNCH_SCRIPT, + TRANSITION_STATE_CREATOR_TRANSITION_CREATE_PLAYER, + TRANSITION_STATE_IS_CREATOR_AND_TRANSITION_READY, + TRANSITION_STATE_CREATOR_SWOOP_DOWN, + TRANSITION_STATE_CREATOR_FINAL_SETUP_PLAYER, + TRANSITION_STATE_MOVE_CREATOR_TO_RUNNING_STATE, + TRANSITION_STATE_PREJOINING_TESTBED_SESSION_CHECKS, + TRANSITION_STATE_LOOK_FOR_FRESH_JOIN_TESTBED, + TRANSITION_STATE_LOOK_FOR_FRESH_HOST_TESTBED, + TRANSITION_STATE_LOOK_TO_JOIN_ANOTHER_SESSION_TESTBED, + TRANSITION_STATE_LOOK_TO_HOST_SESSION_TESTBED, + TRANSITION_STATE_CONFIRM_TESTBED_SESSION_JOINING, + TRANSITION_STATE_WAIT_JOIN_TESTBED_SESSION, + TRANSITION_STATE_START_TESTBED_LAUNCH_SCRIPT, + TRANSITION_STATE_TESTBED_TRANSITION_CREATE_PLAYER, + TRANSITION_STATE_IS_TESTBED_AND_TRANSITION_READY, + TRANSITION_STATE_TESTBED_SWOOP_DOWN, + TRANSITION_STATE_TESTBED_FINAL_SETUP_PLAYER, + TRANSITION_STATE_MOVE_TESTBED_TO_RUNNING_STATE, + TRANSITION_STATE_TESTBED_HOW_TO_TERMINATE, + TRANSITION_STATE_QUIT_CURRENT_SESSION_PROMPT, + TRANSITION_STATE_WAIT_FOR_TRANSITION_SESSION_TO_SETUP, + TRANSITION_STATE_TERMINATE_SP, + TRANSITION_STATE_WAIT_TERMINATE_SP, + TRANSITION_STATE_KICK_TERMINATE_SESSION, + TRANSITION_STATE_TERMINATE_SESSION, + TRANSITION_STATE_WAIT_TERMINATE_SESSION, + TRANSITION_STATE_TERMINATE_SESSION_AND_HOLD, + TRANSITION_STATE_TERMINATE_SESSION_AND_MOVE_INTO_HOLDING_STATE, + TRANSITION_STATE_TEAM_SWAPPING_CHECKS, + TRANSITION_STATE_RETURN_TO_SINGLEPLAYER, + TRANSITION_STATE_WAIT_FOR_SINGLEPLAYER_TO_START, + TRANSITION_STATE_WAITING_FOR_EXTERNAL_TERMINATION_CALL, + TRANSITION_STATE_TERMINATE_MAINTRANSITION, + TRANSITION_STATE_WAIT_FOR_DIRTY_LOAD_CONFIRM, + TRANSITION_STATE_DLC_INTRO_BINK, + TRANSITION_STATE_MAX = INT_MAX + }; + + enum eVehicleFlags + { + TRIGGER_SPAWN_TOGGLE = 1 << 0, + DESTROYED = 1 << 1, + HAS_INSURANCE = 1 << 2, + UNK0 = 1 << 3, + IMPOUNDED = 1 << 6, + UNK1 = 1 << 10, + SPAWN_AT_MORS_MUTUAL = 1 << 11, + UNK2 = 1 << 16 + }; + + enum class ePedTask + { + TASK_NONE, + TASK_FOOT = 1 << 4, + TASK_UNK = 1 << 5, + TASK_DRIVING = 1 << 6 + }; + + enum class eRemoteEvent + { + Bounty = 1294995624, + CeoBan = -764524031, + CeoKick = 248967238, + CeoMoney = 1890277845, + ClearWantedLevel = -91354030, + Crash = -1386010354, + FakeDeposit = 677240627, + ForceMission = 2020588206, + GtaBanner = 1572255940, + MCTeleport = 962740265, + NetworkBail = 1228916411, + PersonalVehicleDestroyed = 802133775, + RemoteOffradar = -391633760, + RotateCam = 801199324, + SendToCutscene = 1068259786, + SendToIsland = -621279188, + SendToCayo = 1463943751, + SoundSpam = 1132878564, + Spectate = -1113591308, + Teleport = 603406648, + TransactionError = -1704141512, + VehicleKick = 578856274, + Unknown1 = -145306724, + Unknown2 = -581037897, + Unknown3 = 1757755807, + Unknown4 = 436475575, + Unknown5 = 990606644, + Unknown6 = 69874647, + + SEC3 = -2113023004, + SEC6 = 704979198, + SEC7 = -1715193475, + SEC8 = 1258808115, + SEC9 = 2112408256, + SEC10 = 998716537, + SEC11 = 163598572, + SEC12 = -1970125962, + SEC13 = -1056683619, + Spaghettios = -393294520, + ForceMission2 = -1525161016, + SHKick = -786546101 + }; + + enum class eSessionType + { + JOIN_PUBLIC, + NEW_PUBLIC, + CLOSED_CREW, + CREW, + CLOSED_FRIENDS = 6, + FIND_FRIEND = 9, + SOLO, + INVITE_ONLY, + JOIN_CREW, + LEAVE_ONLINE = -1 + }; + + enum class SpeedoMeter + { + DISABLED, + KMH, + MPH + }; +} diff --git a/BigBaseV2/src/hooks/script_event_handler.cpp b/BigBaseV2/src/hooks/script_event_handler.cpp index c3781510..6d89db1c 100644 --- a/BigBaseV2/src/hooks/script_event_handler.cpp +++ b/BigBaseV2/src/hooks/script_event_handler.cpp @@ -6,7 +6,7 @@ namespace big void format_string(std::string_view player_name, std::string_view protection_type, bool should_log, bool should_notify) { if (should_log) - LOG(WARNING) << "BLOCKED_SCRIPT_EVENT"; + LOG(WARNING) << "BLOCKED_SCRIPT_EVENT From: " << player_name << " Event Type: " << protection_type; if (should_notify) g_notification_service->push_warning("Script Event Protection", @@ -153,12 +153,14 @@ namespace big return true; } - break; } + else + { + format_string(player_name, "TSE Freeze", notify.tse_freeze.log, notify.tse_freeze.notify); - format_string(player_name, "TSE Freeze", notify.tse_freeze.log, notify.tse_freeze.notify); - - return true; + return true; + } + break; case eRemoteEvent::SendToCutscene: if (g->protections.script_events.send_to_cutscene) { @@ -217,36 +219,168 @@ namespace big break; case eRemoteEvent::Unknown1: if (g->protections.script_events.crash && args[2] >= 32) { - format_string(player_name, "Crash - #" + args[0], notify.crash.log, notify.crash.notify); + format_string(player_name, "Crash - #" + std::to_string(args[0]), notify.crash.log, notify.crash.notify); + return true; } break; case eRemoteEvent::Unknown2: if (g->protections.script_events.crash && (args[2] >= 62 || args[3] >= 32)) { - format_string(player_name, "Crash - #" + args[0], notify.crash.log, notify.crash.notify); + format_string(player_name, "Crash - #" + std::to_string(args[0]), notify.crash.log, notify.crash.notify); + return true; } break; case eRemoteEvent::Unknown3: if (g->protections.script_events.crash && args[2] >= 62) { - format_string(player_name, "Crash - #" + args[0], notify.crash.log, notify.crash.notify); + format_string(player_name, "Crash - #" + std::to_string(args[0]), notify.crash.log, notify.crash.notify); + return true; } break; case eRemoteEvent::Unknown4: case eRemoteEvent::Unknown5: if (g->protections.script_events.crash && args[2] >= 20) { - format_string(player_name, "Crash - #" + args[0], notify.crash.log, notify.crash.notify); + format_string(player_name, "Crash - #" + std::to_string(args[0]), notify.crash.log, notify.crash.notify); + return true; } break; case eRemoteEvent::Unknown6: if (g->protections.script_events.crash) { - format_string(player_name, "Crash - #" + args[0], notify.crash.log, notify.crash.notify); + format_string(player_name, "Crash - #" + std::to_string(args[0]), notify.crash.log, notify.crash.notify); + + return true; + } + break; + case eRemoteEvent::SEC3: + if ( + g->protections.script_events.crash && + ( + (args[2] <= 115831 || args[2] >= 9999449) || + (args[3] <= -1 || args[3] >= 1) || + (args[4] <= -1 || args[4] >= 3) || + (args[5] <= -1 || args[5] >= 101) || + (args[6] <= -1 || args[6] >= 3) || + (args[7] <= -1 || args[7] >= 1) + ) + ) { + format_string(player_name, "Crash - #" + std::to_string(args[0]), notify.crash.log, notify.crash.notify); + + return true; + } + break; + case eRemoteEvent::SEC6: + if ( + g->protections.script_events.crash && + ( + (args[2] <= -1 || args[2] >= 1) || + (args[3] <= -2 || args[3] >= 0) || + (args[4] <= 3 || args[4] >= 5) || + (args[5] <= 172 || args[5] >= 174) || + (args[6] <= 20 || args[6] >= 510) || + (args[7] <= 62 || args[7] >= 64) || + (args[11] <= -1 || args[11] >= 1) || + (args[12] <= -1 || args[12] >= 1) || + (args[13] <= -1 || args[13] >= 1) + ) + ) { + format_string(player_name, "Crash - #" + std::to_string(args[0]), notify.crash.log, notify.crash.notify); + + return true; + } + break; + case eRemoteEvent::SEC7: + if (g->protections.script_events.crash) { + format_string(player_name, "Crash - #" + std::to_string(args[0]), notify.crash.log, notify.crash.notify); + + return true; + } + break; + case eRemoteEvent::SEC8: + if (g->protections.script_events.crash) { + format_string(player_name, "Crash - #" + std::to_string(args[0]), notify.crash.log, notify.crash.notify); + + return true; + } + break; + case eRemoteEvent::SEC9: + if ( + g->protections.script_events.crash && + ( + (args[2] <= -1986324736 || args[2] >= 1747413822) || + (args[2] > -9999999 || args[2] < 77777777) || + (args[3] <= -1986324736 || args[3] >= 1777712108) || + (args[3] > -9999999 || args[3] < 77777777) || + (args[4] <= -1673857408 || args[4] >= 1780088064) || + (args[4] > -9999999 || args[4] < 77777777) || + (args[6] <= (0LL - 2588888790LL) || args[6] >= 2100146067) + ) + ) { + format_string(player_name, "Crash - #" + std::to_string(args[0]), notify.crash.log, notify.crash.notify); + + return true; + } + break; + case eRemoteEvent::SEC10: + if (g->protections.script_events.crash) { + format_string(player_name, "Crash - #" + std::to_string(args[0]), notify.crash.log, notify.crash.notify); + + return true; + } + break; + case eRemoteEvent::SEC11: + if (g->protections.script_events.crash) { + format_string(player_name, "Crash - #" + std::to_string(args[0]), notify.crash.log, notify.crash.notify); + + return true; + } + break; + case eRemoteEvent::SEC12: + if ( + g->protections.script_events.crash && + ( + (args[2] <= -1 || args[2] >= 50) || + (args[3] <= -1 || args[3] >= 50) + ) + ) { + format_string(player_name, "Crash - #" + std::to_string(args[0]), notify.crash.log, notify.crash.notify); + + return true; + } + break; + case eRemoteEvent::SEC13: + if (g->protections.script_events.crash) { + format_string(player_name, "Crash - #" + std::to_string(args[0]), notify.crash.log, notify.crash.notify); + + return true; + } + break; + case eRemoteEvent::Spaghettios: + if (g->protections.script_events.crash) { + format_string(player_name, "Crash - #" + std::to_string(args[0]), notify.crash.log, notify.crash.notify); + + return true; + } + break; + case eRemoteEvent::ForceMission2: + if (g->protections.script_events.force_mission) + { + format_string(player_name, "Force Mission", notify.force_mission.log, notify.force_mission.notify); + + return true; + } + break; + case eRemoteEvent::SHKick: + if (g->protections.script_events.network_bail) + { + format_string(player_name, "Network Bail", notify.network_bail.log, notify.network_bail.notify); + return true; } } + if (g->debug.script_event_logging) { LOG(INFO) << "== Begin of Script Event ==";