mirror of
https://github.com/DumbDev69420/EscapeTheBackrooms_Internal.git
synced 2024-12-22 14:37:30 +08:00
Changed Anti Cheat and Added Options to Interact with it in dllmain.cpp
This commit is contained in:
parent
abb143ef7c
commit
a798139d7e
@ -294,84 +294,123 @@ void ProcessEventHook(SDK::UObject* Obj, SDK::UFunction* Function, void* Parms)
|
||||
}
|
||||
|
||||
if (execF == FunctionHooks[BPCharacter_Demo_C_SpawnEquipItem_SERVER]) {
|
||||
auto CallingPawn = (SDK::ABPCharacter_Demo_C*)Obj;
|
||||
if (Settings::AntiCheat && Settings::AC_InvalidItemSpawner)
|
||||
{
|
||||
|
||||
auto params_ = (SDK::Params::ABPCharacter_Demo_C_SpawnEquipItem_SERVER_Params*)Parms;
|
||||
auto CallingPawn = (SDK::ABPCharacter_Demo_C*)Obj;
|
||||
|
||||
bool IsLocalHost = false;
|
||||
bool IsLocalPlayer = false;
|
||||
auto params_ = (SDK::Params::ABPCharacter_Demo_C_SpawnEquipItem_SERVER_Params*)Parms;
|
||||
|
||||
SDK::AMP_GameMode_C* GameMode = nullptr;
|
||||
bool IsLocalHost = false;
|
||||
bool IsLocalPlayer = false;
|
||||
|
||||
SDK::AMP_GameMode_C* GameMode = nullptr;
|
||||
|
||||
if (CallingPawn->Controller) {
|
||||
auto world = Cheat::Engine->GameViewport->World;
|
||||
IsLocalHost = true;
|
||||
GameMode = (SDK::AMP_GameMode_C*)world->AuthorityGameMode;
|
||||
|
||||
if (auto LocalPlayer = world->OwningGameInstance->LocalPlayers[0]; LocalPlayer && LocalPlayer->PlayerController) {
|
||||
IsLocalPlayer = (CallingPawn->Controller == LocalPlayer->PlayerController);
|
||||
}
|
||||
}
|
||||
|
||||
if(CallingPawn->PlayerState)
|
||||
Cheat::Message(std::format("Spawned Item {} by Player: {}", (!Cheat::IsClassOfClass(params_->ItemClass, SDK::ABP_Item_C::StaticClass()) ? "Invalid Item" : params_->ItemClass->GetName()), PlayerStuff::Player::SanitizeString(CallingPawn->PlayerState->GetPlayerName().ToString())));
|
||||
else
|
||||
return;
|
||||
|
||||
|
||||
if (!IsLocalPlayer) {
|
||||
if (auto ItemClass = params_->ItemClass; ItemClass) {
|
||||
|
||||
if (!Cheat::IsClassOfClass(params_->ItemClass, SDK::ABP_Item_C::StaticClass())) {
|
||||
if (IsLocalHost) {
|
||||
Cheat::MessageW(L"Non Item was passed to SpawnEquipItem, kicking that bad Cheater!");
|
||||
|
||||
GameMode->KickPlayer(CallingPawn->PlayerState, CallingPawn->GetOwner(), (SDK::AMP_PlayerController_C*)CallingPawn->Controller, true, true);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
if (CallingPawn->Controller)
|
||||
{
|
||||
if (IsLocalHost) {
|
||||
Cheat::MessageW(L"Nullpointer was passed to SpawnEquipItem, kicking that bad Cheater!");
|
||||
GameMode->KickPlayer(CallingPawn->PlayerState, CallingPawn->GetOwner(), (SDK::AMP_PlayerController_C*)CallingPawn->Controller, true, true);
|
||||
|
||||
|
||||
IsLocalHost = true;
|
||||
|
||||
GameMode = (SDK::AMP_GameMode_C*)world->AuthorityGameMode;
|
||||
|
||||
if (auto LocalPlayer = world->OwningGameInstance->LocalPlayers[0]; LocalPlayer && LocalPlayer->PlayerController) {
|
||||
IsLocalPlayer = (CallingPawn->Controller == LocalPlayer->PlayerController);
|
||||
}
|
||||
}
|
||||
|
||||
if (CallingPawn->PlayerState)
|
||||
Cheat::Message(std::format("Spawned Item {} by Player: {}", (!Cheat::IsClassOfClass(params_->ItemClass, SDK::ABP_Item_C::StaticClass()) ? "Invalid Item" : params_->ItemClass->GetName()), PlayerStuff::Player::SanitizeString(CallingPawn->PlayerState->GetPlayerName().ToString())));
|
||||
else //Invalid Player
|
||||
return;
|
||||
|
||||
|
||||
if (!IsLocalPlayer) {
|
||||
if (auto ItemClass = params_->ItemClass; ItemClass)
|
||||
{
|
||||
|
||||
if (!Cheat::IsClassOfClass(params_->ItemClass, SDK::ABP_Item_C::StaticClass())) {
|
||||
if (IsLocalHost) {
|
||||
const char* Reason = "Non Item Class was passed to SpawnEquipItem";
|
||||
|
||||
if (Settings::AC_KickOnViolation)
|
||||
{
|
||||
auto re = FunctionsSpecial::KickPlayer(world, CallingPawn, Reason);
|
||||
Cheat::Message(re);
|
||||
}
|
||||
else
|
||||
Cheat::Message(Reason);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (IsLocalHost)
|
||||
{
|
||||
const char* Reason = "Nullpointer was passed as Class to SpawnEquipItem";
|
||||
|
||||
if (Settings::AC_KickOnViolation)
|
||||
{
|
||||
auto re = FunctionsSpecial::KickPlayer(world, CallingPawn, Reason);
|
||||
Cheat::Message(re);
|
||||
}
|
||||
else
|
||||
Cheat::Message(Reason);
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (execF == FunctionHooks[APlayerController_ServerChangeName]) {
|
||||
auto CallingController = (SDK::APlayerController*)Obj;
|
||||
auto paramsServerChangeName = (SDK::Params::APlayerController_ServerChangeName_Params*)Parms;
|
||||
if (Settings::AntiCheat && Settings::AC_NameChanger)
|
||||
{
|
||||
auto CallingController = (SDK::APlayerController*)Obj;
|
||||
auto paramsServerChangeName = (SDK::Params::APlayerController_ServerChangeName_Params*)Parms;
|
||||
|
||||
std::wstring NewName = paramsServerChangeName->S.ToWString();
|
||||
std::wstring NewName = paramsServerChangeName->S.ToWString();
|
||||
|
||||
auto world = Cheat::Engine->GameViewport->World;
|
||||
bool IsLocalHost = false;
|
||||
auto world = Cheat::Engine->GameViewport->World;
|
||||
bool IsLocalHost = false;
|
||||
|
||||
if (auto LocalPlayer = world->OwningGameInstance->LocalPlayers[0]; LocalPlayer && LocalPlayer->PlayerController) {
|
||||
IsLocalHost = (CallingController == LocalPlayer->PlayerController);
|
||||
}
|
||||
if (auto LocalPlayer = world->OwningGameInstance->LocalPlayers[0]; LocalPlayer && LocalPlayer->PlayerController) {
|
||||
IsLocalHost = (CallingController == LocalPlayer->PlayerController);
|
||||
}
|
||||
|
||||
if (!IsLocalHost) {
|
||||
for (size_t i = 0; i < PlayerNameChanges.size(); i++)
|
||||
{
|
||||
if (PlayerNameChanges[i].first == CallingController) {
|
||||
if (!IsLocalHost) {
|
||||
for (size_t i = 0; i < PlayerNameChanges.size(); i++)
|
||||
{
|
||||
if (PlayerNameChanges[i].first == CallingController) {
|
||||
|
||||
if (PlayerNameChanges[i].second.size() > 1) {
|
||||
Cheat::MessageW(std::format(L"Player {} tried to Change Name too soon again. Maybe Player is using a Name Changer", PlayerStuff::Player::SanitizeWString(CallingController->PlayerState->PlayerNamePrivate.ToWString())));
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (PlayerNameChanges[i].second.size() > Settings::AC_NameChangerAllowedChanges) {
|
||||
std::string reason = "Player tried to Change Name too soon again.";
|
||||
|
||||
PlayerNameChanges[i].second.push_back(NewName);
|
||||
break;
|
||||
if (Settings::AC_KickOnViolation)
|
||||
{
|
||||
auto re = FunctionsSpecial::KickPlayer(world, CallingController->Character, reason);
|
||||
Cheat::Message(re);
|
||||
}
|
||||
else
|
||||
Cheat::Message(reason);
|
||||
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
PlayerNameChanges[i].second.push_back(NewName);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -379,25 +418,42 @@ void ProcessEventHook(SDK::UObject* Obj, SDK::UFunction* Function, void* Parms)
|
||||
}
|
||||
|
||||
if (execF == FunctionHooks[AMP_PlayerController_C_ReceiveEndPlay]) {
|
||||
auto CallingController = (SDK::AMP_PlayerController_C*)Obj;
|
||||
|
||||
for (size_t i = 0; i < PlayerNameChanges.size(); i++)
|
||||
if (Settings::AntiCheat && Settings::AC_NameChanger)
|
||||
{
|
||||
if (PlayerNameChanges[i].first == CallingController) {
|
||||
PlayerNameChanges.erase(PlayerNameChanges.begin() + i);
|
||||
break;
|
||||
auto CallingController = (SDK::AMP_PlayerController_C*)Obj;
|
||||
|
||||
for (auto It = PlayerNameChanges.begin(); It != PlayerNameChanges.end();)
|
||||
{
|
||||
auto ItVal = *It;
|
||||
|
||||
if (ItVal.first == CallingController) {
|
||||
It = PlayerNameChanges.erase(It);
|
||||
}
|
||||
else
|
||||
{
|
||||
It++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (execF == FunctionHooks[Lobby_PlayerController_C_ReceiveEndPlay]) {
|
||||
auto CallingController = (SDK::ALobby_PlayerController_C*)Obj;
|
||||
|
||||
for (size_t i = 0; i < PlayerNameChanges.size(); i++)
|
||||
if (Settings::AntiCheat && Settings::AC_NameChanger)
|
||||
{
|
||||
if (PlayerNameChanges[i].first == CallingController) {
|
||||
PlayerNameChanges.erase(PlayerNameChanges.begin() + i);
|
||||
break;
|
||||
auto CallingController = (SDK::ALobby_PlayerController_C*)Obj;
|
||||
|
||||
for (auto It = PlayerNameChanges.begin(); It != PlayerNameChanges.end();)
|
||||
{
|
||||
auto ItVal = *It;
|
||||
|
||||
if (ItVal.first == CallingController) {
|
||||
It = PlayerNameChanges.erase(It);
|
||||
}
|
||||
else
|
||||
{
|
||||
It++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -470,7 +526,8 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
||||
}
|
||||
}
|
||||
|
||||
static SDK::FVector2D WindowSize = { 500.0f, 555.0f };
|
||||
const SDK::FVector2D DefaultValue = { 500.0f, 650.0f };
|
||||
static SDK::FVector2D WindowSize = DefaultValue;
|
||||
|
||||
if (ShowHelp || Settings::NewVersion_) {
|
||||
static SDK::FVector2D WindowPos = { 500.0f, 475.0f };
|
||||
@ -492,8 +549,8 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
||||
if (CWINGui::Window("?", &WindowPos, WindowSize, Settings::NewVersion_)) {
|
||||
CWINGui::Text(std::format(L"New Version {}!!!", Settings::CheatVersion).c_str());
|
||||
|
||||
CWINGui::Text(L"* Fixed Memory Leak Bug!");
|
||||
CWINGui::Text(L"* Fixed Anti Cheat (Is off now by Default)!");
|
||||
CWINGui::Text(L"* Fixed Memory Leak Bug");
|
||||
CWINGui::Text(L"* Fixed Anti Cheat (plus its off now by Default)");
|
||||
|
||||
CWINGui::Text(L""), CWINGui::SameLine();
|
||||
|
||||
@ -515,32 +572,34 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
||||
|
||||
}
|
||||
|
||||
const SDK::FVector2D DefaultValue = { 500.0f, 620.0f };
|
||||
|
||||
if (CWINGui::Window("Escape The Backrooms Internal", &Settings::WindowPos, WindowSize, Settings::Open, GifBackground))
|
||||
{
|
||||
static int tab = 1;
|
||||
if (CWINGui::ButtonTab(L"Game Shit", SDK::FVector2D{ 110, 35 }, tab == 0)) { tab = 0; CWINGui::ChangeWindowSize(WindowSize, { 500.0f, 640.0f }); }
|
||||
static int tab = 0;
|
||||
if (CWINGui::ButtonTab(L"Game Shit", SDK::FVector2D{ 110, 35 }, tab == 0)) { tab = 0; CWINGui::ChangeWindowSize(WindowSize, { 500.0f, std::max<float>(DefaultValue.Y, 640.0f) }); }
|
||||
if (CWINGui::ButtonTab(L"World Visuals", SDK::FVector2D{ 110, 35 }, tab == 1)) { tab = 1; CWINGui::ChangeWindowSize(WindowSize, DefaultValue); }
|
||||
if (CWINGui::ButtonTab(L"Miscellaneous", SDK::FVector2D{ 110, 35 }, tab == 2)) { tab = 2; CWINGui::ChangeWindowSize(WindowSize, DefaultValue); }
|
||||
if (CWINGui::ButtonTab(L"Item Spawner", SDK::FVector2D{ 110, 35 }, tab == 3)) { tab = 3; CWINGui::ChangeWindowSize(WindowSize, DefaultValue); }
|
||||
if (CWINGui::ButtonTab(L"Level Miscs", SDK::FVector2D{ 110, 35 }, tab == 4)) { tab = 4; CWINGui::ChangeWindowSize(WindowSize, DefaultValue); }
|
||||
if (CWINGui::ButtonTab(L"Host Info", SDK::FVector2D{ 110, 35 }, tab == 5)) { tab = 5; CWINGui::ChangeWindowSize(WindowSize, DefaultValue); }
|
||||
#ifdef Gatekeep
|
||||
if (CWINGui::ButtonTab(L"Chat Spoofer", SDK::FVector2D{ 110, 35 }, tab == 6)) { tab = 6; CWINGui::ChangeWindowSize(WindowSize, { 540.0f, 625.0f }); }
|
||||
if (CWINGui::ButtonTab(L"Chat Spoofer", SDK::FVector2D{ 110, 35 }, tab == 6)) { tab = 6; CWINGui::ChangeWindowSize(WindowSize, { 540.0f, std::max<float>(DefaultValue.Y, 625.0f) }); }
|
||||
#endif
|
||||
if (CWINGui::ButtonTab(L"Level Loader", SDK::FVector2D{ 110, 35 }, tab == 7)) { tab = 7; CWINGui::ChangeWindowSize(WindowSize, { 740.0f, 575.0f }); }
|
||||
if (CWINGui::ButtonTab(L"Level Loader", SDK::FVector2D{ 110, 35 }, tab == 7)) { tab = 7; CWINGui::ChangeWindowSize(WindowSize, { 740.0f, std::max<float>(DefaultValue.Y, 575.0f) }); }
|
||||
|
||||
if (CWINGui::ButtonTab(L"Players", SDK::FVector2D{ 110, 35 }, tab == 8)) { tab = 8; CWINGui::ChangeWindowSize(WindowSize, DefaultValue);}
|
||||
if (CWINGui::ButtonTab(L"Hosting Options", SDK::FVector2D{ 110, 35 }, tab == 10)) { tab = 10; CWINGui::ChangeWindowSize(WindowSize, DefaultValue); }
|
||||
|
||||
if (Settings::Spawner_ && CWINGui::ButtonTab(L"Spawner Options", SDK::FVector2D{ 110, 35 }, tab == 11)) { tab = 11; CWINGui::ChangeWindowSize(WindowSize, DefaultValue); }
|
||||
|
||||
if (CWINGui::ButtonTab(L"Config", SDK::FVector2D{ 110, 35 }, tab == 12)) { tab = 12; CWINGui::ChangeWindowSize(WindowSize, DefaultValue); }
|
||||
if (Settings::Spawner_ && CWINGui::ButtonTab(L"Spawner Options", SDK::FVector2D{ 110, 35 }, tab == 11)) { tab = 11; CWINGui::ChangeWindowSize(WindowSize, DefaultValue);}
|
||||
if (CWINGui::ButtonTab(L"Anti Cheat", SDK::FVector2D{ 110, 35 }, tab == 13)) { tab = 13; CWINGui::ChangeWindowSize(WindowSize, DefaultValue); }
|
||||
|
||||
CWINGui::NextColumn(140.0f);
|
||||
CWINGui::Text(L"");
|
||||
switch (tab)
|
||||
{
|
||||
case 0:
|
||||
case 0: //General Game Options
|
||||
CWINGui::Checkbox(L"Peace Mode (Removes any Entity)", &Settings::PeacefullMode);
|
||||
CWINGui::Checkbox(L"No Cameras", &Settings::NoCams);
|
||||
CWINGui::Checkbox(L"NoClip (Client Sided)", &Settings::Noclip);
|
||||
@ -595,7 +654,7 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
||||
// Settings::OwnSelf = true;
|
||||
//}
|
||||
break;
|
||||
case 1:
|
||||
case 1: //Visual Options
|
||||
//CWINGui::Checkbox(L"Main Switch", &Settings::Esp);
|
||||
CWINGui::Checkbox(L"Spectator List", &Settings::SpectatorList);
|
||||
CWINGui::Checkbox(L"Enemy Esp", &Settings::EnemyEsp);
|
||||
@ -611,7 +670,7 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
||||
CWINGui::Checkbox(L"Enviroment RGB", &Settings::EnviromentRGB);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
case 2: //Misc Options
|
||||
CWINGui::Checkbox(L"Unlock Playercounter (100 Players)", RGBLinear, &Settings::UnlockPlayers);
|
||||
CWINGui::Checkbox(L"Freecam (Activate with J, Teleport with F1)", SDK::FLinearColor{ 0.0f, 1.0f, 0.0f, 1.0f }, &Settings::Freecam);
|
||||
CWINGui::Checkbox(L"Spawner (Lets you Spawn stuff!)", SDK::FLinearColor{ 0.92f, 0.22f, 0.91f, 1.0f }, &Settings::Spawner_);
|
||||
@ -677,7 +736,7 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
||||
}
|
||||
|
||||
break;
|
||||
case 3:
|
||||
case 3: // Server Sided Item Spawner (Spawns on Ground)
|
||||
CWINGui::Text(L"Item Spawner:");
|
||||
/*CWINGui::Checkbox(L"Silent Spawner", &Settings::SilentItemSpawner);*/
|
||||
if (CWINGui::Button(L"Give Diving Helmet", SDK::FVector2D{ 125, 35 })) {
|
||||
@ -762,13 +821,13 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
||||
break;
|
||||
|
||||
|
||||
case 4:
|
||||
case 4: //Level Misc stuff. I havent really worked on this yet
|
||||
CWINGui::Text(stringToWideString(Backend::LevelName).c_str());
|
||||
/*CWINGui::Text(L"Coming soon, since this shit takes Time!");*/
|
||||
Backend::RunLevelBackend();
|
||||
break;
|
||||
|
||||
case 5:
|
||||
case 5: //Current Host Information
|
||||
CWINGui::Text(stringToWideString(UseSteamID ? "Host SteamID: " + Backend::HostSteamID_Clean : "No Host Detected!").c_str());
|
||||
|
||||
|
||||
@ -784,7 +843,7 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
||||
break;
|
||||
|
||||
|
||||
case 6:
|
||||
case 6: //Name Spoofer for Chat
|
||||
|
||||
CWINGui::Text(std::wstring(L"Spoofed as Player: " + (Settings::PlayerPicked != -1 ? PlayerStuff::PlayerList[Settings::PlayerPicked].name : std::wstring(L"None")) ).c_str());
|
||||
|
||||
@ -862,7 +921,7 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
||||
|
||||
break;
|
||||
|
||||
case 7:
|
||||
case 7: //Level Loader
|
||||
CWINGui::Text(L"Level Loader 1.0");
|
||||
if (CWINGui::Button(L"Main Menu", SDK::FVector2D{ 110, 35 })) {
|
||||
Settings::LevelToLoad = L"MainMenuMap";
|
||||
@ -1050,7 +1109,7 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
||||
}
|
||||
break;
|
||||
|
||||
case 8:
|
||||
case 8: // Player List to Pick for Trolling stuff or General stuff like Teleport to them and so so
|
||||
|
||||
for (size_t i = 0; i < PlayerStuff::PlayerList.size(); i++)
|
||||
{
|
||||
@ -1074,7 +1133,7 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
||||
|
||||
break;
|
||||
|
||||
case 9:
|
||||
case 9: // Options to Mess with Current Picked Player
|
||||
if (Settings::PlayerPicked_S != -1)
|
||||
{
|
||||
auto player = PlayerStuff::PlayerList[Settings::PlayerPicked_S];
|
||||
@ -1151,13 +1210,13 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
||||
break;
|
||||
|
||||
|
||||
case 10:
|
||||
case 10: // Hosting Stuff
|
||||
CWINGui::Checkbox(L"Players Noclip through Players", &Settings::Host_CollisionPlayers);
|
||||
CWINGui::Checkbox(L"Fun Mode", &Settings::Host_FunMode);
|
||||
|
||||
break;
|
||||
|
||||
case 11:
|
||||
case 11: // Server Sided Spawner
|
||||
using namespace Settings;
|
||||
|
||||
if (CWINGui::Button(L"Spawn Boat", SDK::FVector2D{ 125, 35 })) {
|
||||
@ -1183,8 +1242,16 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
||||
break;
|
||||
|
||||
|
||||
case 12:
|
||||
case 12: // Config System
|
||||
{
|
||||
|
||||
if (configsys->hasConfigFailed()) //In case of Completly breaking Config System, just hide this Tab
|
||||
{
|
||||
tab = 0;
|
||||
Cheat::Message("Can´t Use Config System, something went really really wrong");
|
||||
}
|
||||
|
||||
|
||||
static std::wstring CurrentConfigFileName = L"";
|
||||
|
||||
if (CurrentConfigFileName == L"") {
|
||||
@ -1219,7 +1286,7 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
||||
if (!configsys->ActivateConfig(Out__, configsys->GetSettingsPath())) {
|
||||
Cheat::Message("Failed to Change Config File!, Changing to Default");
|
||||
if (!configsys->ActivateConfig("config1", configsys->GetSettingsPath()))
|
||||
Cheat::Message("Failed to Change to Default Config File. Fuck you tbh");
|
||||
Cheat::Message("Failed to Change to Default Config File. ");
|
||||
}
|
||||
|
||||
Settings::AddFieldsToConfig(configsys);
|
||||
@ -1242,6 +1309,13 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
||||
}
|
||||
break;
|
||||
|
||||
case 13://Anti Cheat Options
|
||||
CWINGui::Checkbox(L"Anti Cheat", &Settings::AntiCheat);
|
||||
CWINGui::Checkbox(L"Kick on Violations", &Settings::AC_KickOnViolation);
|
||||
CWINGui::Checkbox(L"Check Bad Item (Item Spawner)", &Settings::AC_InvalidItemSpawner);
|
||||
CWINGui::Checkbox(L"Check Name Changer", &Settings::AC_NameChanger);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -1267,6 +1341,8 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
||||
return origin_renderer(object, Canvas);
|
||||
}
|
||||
|
||||
HMODULE module_ = NULL;
|
||||
|
||||
void ExitCheat() {
|
||||
SDK::UWorld* World = SDK::UWorld::GetWorld();
|
||||
auto GameInstance = World->OwningGameInstance;
|
||||
@ -1304,7 +1380,6 @@ void ExitCheat() {
|
||||
}
|
||||
|
||||
std::cout << "[*] Unhooked Renderfunc\n[*] Freeing Console!\n";
|
||||
ConsoleExit();
|
||||
|
||||
configsys->ActivateConfig("menu_data", configsys->GetSettingsPath());
|
||||
|
||||
@ -1316,9 +1391,25 @@ void ExitCheat() {
|
||||
|
||||
delete GifBackground;
|
||||
delete configsys;
|
||||
|
||||
Settings::FreeUpCheat = true;
|
||||
|
||||
ConsoleExit();
|
||||
}
|
||||
|
||||
void MainThread() {
|
||||
void RunThread(HMODULE module_) //doesnt work :(
|
||||
{
|
||||
while (!Settings::FreeUpCheat)
|
||||
{
|
||||
Sleep(1000);
|
||||
}
|
||||
|
||||
Sleep(500);
|
||||
|
||||
FreeLibrary(module_);
|
||||
}
|
||||
|
||||
void MainThread(HMODULE hModule) {
|
||||
|
||||
if (!Cheat::Ini()) {
|
||||
Cheat::Message("Cheat needs to be Updated. Im up to Updating probly already", FOREGROUND_GREEN);
|
||||
@ -1423,9 +1514,11 @@ void MainThread() {
|
||||
GifBackground = new CWINGui::GifData(TexturesCopy, 50);
|
||||
}
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
BOOL APIENTRY DllMain( HMODULE hModule,
|
||||
DWORD ul_reason_for_call,
|
||||
LPVOID lpReserved
|
||||
@ -1438,7 +1531,11 @@ BOOL APIENTRY DllMain( HMODULE hModule,
|
||||
freopen_s(&ConsoleFile, "CONOUT$", "w", stdout);
|
||||
freopen_s(&ConsoleFile, "CONOUT$", "w", stderr);
|
||||
freopen_s(&ConsoleFile, "CONIN$", "r", stdin);
|
||||
MainThread();
|
||||
MainThread(hModule);
|
||||
break;
|
||||
|
||||
case DLL_PROCESS_DETACH:
|
||||
ConsoleExit();
|
||||
break;
|
||||
|
||||
default:
|
||||
|
Loading…
Reference in New Issue
Block a user