mirror of
https://github.com/DumbDev69420/EscapeTheBackrooms_Internal.git
synced 2024-12-22 22:47: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]) {
|
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;
|
auto params_ = (SDK::Params::ABPCharacter_Demo_C_SpawnEquipItem_SERVER_Params*)Parms;
|
||||||
bool IsLocalPlayer = false;
|
|
||||||
|
|
||||||
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;
|
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) {
|
if (CallingPawn->Controller)
|
||||||
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 (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]) {
|
if (execF == FunctionHooks[APlayerController_ServerChangeName]) {
|
||||||
auto CallingController = (SDK::APlayerController*)Obj;
|
if (Settings::AntiCheat && Settings::AC_NameChanger)
|
||||||
auto paramsServerChangeName = (SDK::Params::APlayerController_ServerChangeName_Params*)Parms;
|
{
|
||||||
|
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;
|
auto world = Cheat::Engine->GameViewport->World;
|
||||||
bool IsLocalHost = false;
|
bool IsLocalHost = false;
|
||||||
|
|
||||||
if (auto LocalPlayer = world->OwningGameInstance->LocalPlayers[0]; LocalPlayer && LocalPlayer->PlayerController) {
|
if (auto LocalPlayer = world->OwningGameInstance->LocalPlayers[0]; LocalPlayer && LocalPlayer->PlayerController) {
|
||||||
IsLocalHost = (CallingController == LocalPlayer->PlayerController);
|
IsLocalHost = (CallingController == LocalPlayer->PlayerController);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!IsLocalHost) {
|
if (!IsLocalHost) {
|
||||||
for (size_t i = 0; i < PlayerNameChanges.size(); i++)
|
for (size_t i = 0; i < PlayerNameChanges.size(); i++)
|
||||||
{
|
{
|
||||||
if (PlayerNameChanges[i].first == CallingController) {
|
if (PlayerNameChanges[i].first == CallingController) {
|
||||||
|
|
||||||
if (PlayerNameChanges[i].second.size() > 1) {
|
if (PlayerNameChanges[i].second.size() > Settings::AC_NameChangerAllowedChanges) {
|
||||||
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())));
|
std::string reason = "Player tried to Change Name too soon again.";
|
||||||
return;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
|
|
||||||
PlayerNameChanges[i].second.push_back(NewName);
|
if (Settings::AC_KickOnViolation)
|
||||||
break;
|
{
|
||||||
|
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]) {
|
if (execF == FunctionHooks[AMP_PlayerController_C_ReceiveEndPlay]) {
|
||||||
auto CallingController = (SDK::AMP_PlayerController_C*)Obj;
|
if (Settings::AntiCheat && Settings::AC_NameChanger)
|
||||||
|
|
||||||
for (size_t i = 0; i < PlayerNameChanges.size(); i++)
|
|
||||||
{
|
{
|
||||||
if (PlayerNameChanges[i].first == CallingController) {
|
auto CallingController = (SDK::AMP_PlayerController_C*)Obj;
|
||||||
PlayerNameChanges.erase(PlayerNameChanges.begin() + i);
|
|
||||||
break;
|
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]) {
|
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) {
|
auto CallingController = (SDK::ALobby_PlayerController_C*)Obj;
|
||||||
PlayerNameChanges.erase(PlayerNameChanges.begin() + i);
|
|
||||||
break;
|
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_) {
|
if (ShowHelp || Settings::NewVersion_) {
|
||||||
static SDK::FVector2D WindowPos = { 500.0f, 475.0f };
|
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_)) {
|
if (CWINGui::Window("?", &WindowPos, WindowSize, Settings::NewVersion_)) {
|
||||||
CWINGui::Text(std::format(L"New Version {}!!!", Settings::CheatVersion).c_str());
|
CWINGui::Text(std::format(L"New Version {}!!!", Settings::CheatVersion).c_str());
|
||||||
|
|
||||||
CWINGui::Text(L"* Fixed Memory Leak Bug!");
|
CWINGui::Text(L"* Fixed Memory Leak Bug");
|
||||||
CWINGui::Text(L"* Fixed Anti Cheat (Is off now by Default)!");
|
CWINGui::Text(L"* Fixed Anti Cheat (plus its off now by Default)");
|
||||||
|
|
||||||
CWINGui::Text(L""), CWINGui::SameLine();
|
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))
|
if (CWINGui::Window("Escape The Backrooms Internal", &Settings::WindowPos, WindowSize, Settings::Open, GifBackground))
|
||||||
{
|
{
|
||||||
static int tab = 1;
|
static int tab = 0;
|
||||||
if (CWINGui::ButtonTab(L"Game Shit", SDK::FVector2D{ 110, 35 }, tab == 0)) { tab = 0; CWINGui::ChangeWindowSize(WindowSize, { 500.0f, 640.0f }); }
|
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"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"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"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"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); }
|
if (CWINGui::ButtonTab(L"Host Info", SDK::FVector2D{ 110, 35 }, tab == 5)) { tab = 5; CWINGui::ChangeWindowSize(WindowSize, DefaultValue); }
|
||||||
#ifdef Gatekeep
|
#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
|
#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"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 (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 (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::NextColumn(140.0f);
|
||||||
CWINGui::Text(L"");
|
CWINGui::Text(L"");
|
||||||
switch (tab)
|
switch (tab)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0: //General Game Options
|
||||||
CWINGui::Checkbox(L"Peace Mode (Removes any Entity)", &Settings::PeacefullMode);
|
CWINGui::Checkbox(L"Peace Mode (Removes any Entity)", &Settings::PeacefullMode);
|
||||||
CWINGui::Checkbox(L"No Cameras", &Settings::NoCams);
|
CWINGui::Checkbox(L"No Cameras", &Settings::NoCams);
|
||||||
CWINGui::Checkbox(L"NoClip (Client Sided)", &Settings::Noclip);
|
CWINGui::Checkbox(L"NoClip (Client Sided)", &Settings::Noclip);
|
||||||
@ -595,7 +654,7 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
|||||||
// Settings::OwnSelf = true;
|
// Settings::OwnSelf = true;
|
||||||
//}
|
//}
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1: //Visual Options
|
||||||
//CWINGui::Checkbox(L"Main Switch", &Settings::Esp);
|
//CWINGui::Checkbox(L"Main Switch", &Settings::Esp);
|
||||||
CWINGui::Checkbox(L"Spectator List", &Settings::SpectatorList);
|
CWINGui::Checkbox(L"Spectator List", &Settings::SpectatorList);
|
||||||
CWINGui::Checkbox(L"Enemy Esp", &Settings::EnemyEsp);
|
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);
|
CWINGui::Checkbox(L"Enviroment RGB", &Settings::EnviromentRGB);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2: //Misc Options
|
||||||
CWINGui::Checkbox(L"Unlock Playercounter (100 Players)", RGBLinear, &Settings::UnlockPlayers);
|
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"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_);
|
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;
|
break;
|
||||||
case 3:
|
case 3: // Server Sided Item Spawner (Spawns on Ground)
|
||||||
CWINGui::Text(L"Item Spawner:");
|
CWINGui::Text(L"Item Spawner:");
|
||||||
/*CWINGui::Checkbox(L"Silent Spawner", &Settings::SilentItemSpawner);*/
|
/*CWINGui::Checkbox(L"Silent Spawner", &Settings::SilentItemSpawner);*/
|
||||||
if (CWINGui::Button(L"Give Diving Helmet", SDK::FVector2D{ 125, 35 })) {
|
if (CWINGui::Button(L"Give Diving Helmet", SDK::FVector2D{ 125, 35 })) {
|
||||||
@ -762,13 +821,13 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
case 4:
|
case 4: //Level Misc stuff. I havent really worked on this yet
|
||||||
CWINGui::Text(stringToWideString(Backend::LevelName).c_str());
|
CWINGui::Text(stringToWideString(Backend::LevelName).c_str());
|
||||||
/*CWINGui::Text(L"Coming soon, since this shit takes Time!");*/
|
/*CWINGui::Text(L"Coming soon, since this shit takes Time!");*/
|
||||||
Backend::RunLevelBackend();
|
Backend::RunLevelBackend();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 5:
|
case 5: //Current Host Information
|
||||||
CWINGui::Text(stringToWideString(UseSteamID ? "Host SteamID: " + Backend::HostSteamID_Clean : "No Host Detected!").c_str());
|
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;
|
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());
|
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;
|
break;
|
||||||
|
|
||||||
case 7:
|
case 7: //Level Loader
|
||||||
CWINGui::Text(L"Level Loader 1.0");
|
CWINGui::Text(L"Level Loader 1.0");
|
||||||
if (CWINGui::Button(L"Main Menu", SDK::FVector2D{ 110, 35 })) {
|
if (CWINGui::Button(L"Main Menu", SDK::FVector2D{ 110, 35 })) {
|
||||||
Settings::LevelToLoad = L"MainMenuMap";
|
Settings::LevelToLoad = L"MainMenuMap";
|
||||||
@ -1050,7 +1109,7 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
|||||||
}
|
}
|
||||||
break;
|
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++)
|
for (size_t i = 0; i < PlayerStuff::PlayerList.size(); i++)
|
||||||
{
|
{
|
||||||
@ -1074,7 +1133,7 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 9:
|
case 9: // Options to Mess with Current Picked Player
|
||||||
if (Settings::PlayerPicked_S != -1)
|
if (Settings::PlayerPicked_S != -1)
|
||||||
{
|
{
|
||||||
auto player = PlayerStuff::PlayerList[Settings::PlayerPicked_S];
|
auto player = PlayerStuff::PlayerList[Settings::PlayerPicked_S];
|
||||||
@ -1151,13 +1210,13 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
case 10:
|
case 10: // Hosting Stuff
|
||||||
CWINGui::Checkbox(L"Players Noclip through Players", &Settings::Host_CollisionPlayers);
|
CWINGui::Checkbox(L"Players Noclip through Players", &Settings::Host_CollisionPlayers);
|
||||||
CWINGui::Checkbox(L"Fun Mode", &Settings::Host_FunMode);
|
CWINGui::Checkbox(L"Fun Mode", &Settings::Host_FunMode);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 11:
|
case 11: // Server Sided Spawner
|
||||||
using namespace Settings;
|
using namespace Settings;
|
||||||
|
|
||||||
if (CWINGui::Button(L"Spawn Boat", SDK::FVector2D{ 125, 35 })) {
|
if (CWINGui::Button(L"Spawn Boat", SDK::FVector2D{ 125, 35 })) {
|
||||||
@ -1183,8 +1242,16 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
|||||||
break;
|
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"";
|
static std::wstring CurrentConfigFileName = L"";
|
||||||
|
|
||||||
if (CurrentConfigFileName == L"") {
|
if (CurrentConfigFileName == L"") {
|
||||||
@ -1219,7 +1286,7 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
|||||||
if (!configsys->ActivateConfig(Out__, configsys->GetSettingsPath())) {
|
if (!configsys->ActivateConfig(Out__, configsys->GetSettingsPath())) {
|
||||||
Cheat::Message("Failed to Change Config File!, Changing to Default");
|
Cheat::Message("Failed to Change Config File!, Changing to Default");
|
||||||
if (!configsys->ActivateConfig("config1", configsys->GetSettingsPath()))
|
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);
|
Settings::AddFieldsToConfig(configsys);
|
||||||
@ -1242,6 +1309,13 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
|||||||
}
|
}
|
||||||
break;
|
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:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1267,6 +1341,8 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
|||||||
return origin_renderer(object, Canvas);
|
return origin_renderer(object, Canvas);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HMODULE module_ = NULL;
|
||||||
|
|
||||||
void ExitCheat() {
|
void ExitCheat() {
|
||||||
SDK::UWorld* World = SDK::UWorld::GetWorld();
|
SDK::UWorld* World = SDK::UWorld::GetWorld();
|
||||||
auto GameInstance = World->OwningGameInstance;
|
auto GameInstance = World->OwningGameInstance;
|
||||||
@ -1304,7 +1380,6 @@ void ExitCheat() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::cout << "[*] Unhooked Renderfunc\n[*] Freeing Console!\n";
|
std::cout << "[*] Unhooked Renderfunc\n[*] Freeing Console!\n";
|
||||||
ConsoleExit();
|
|
||||||
|
|
||||||
configsys->ActivateConfig("menu_data", configsys->GetSettingsPath());
|
configsys->ActivateConfig("menu_data", configsys->GetSettingsPath());
|
||||||
|
|
||||||
@ -1316,9 +1391,25 @@ void ExitCheat() {
|
|||||||
|
|
||||||
delete GifBackground;
|
delete GifBackground;
|
||||||
delete configsys;
|
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()) {
|
if (!Cheat::Ini()) {
|
||||||
Cheat::Message("Cheat needs to be Updated. Im up to Updating probly already", FOREGROUND_GREEN);
|
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);
|
GifBackground = new CWINGui::GifData(TexturesCopy, 50);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
BOOL APIENTRY DllMain( HMODULE hModule,
|
BOOL APIENTRY DllMain( HMODULE hModule,
|
||||||
DWORD ul_reason_for_call,
|
DWORD ul_reason_for_call,
|
||||||
LPVOID lpReserved
|
LPVOID lpReserved
|
||||||
@ -1438,7 +1531,11 @@ BOOL APIENTRY DllMain( HMODULE hModule,
|
|||||||
freopen_s(&ConsoleFile, "CONOUT$", "w", stdout);
|
freopen_s(&ConsoleFile, "CONOUT$", "w", stdout);
|
||||||
freopen_s(&ConsoleFile, "CONOUT$", "w", stderr);
|
freopen_s(&ConsoleFile, "CONOUT$", "w", stderr);
|
||||||
freopen_s(&ConsoleFile, "CONIN$", "r", stdin);
|
freopen_s(&ConsoleFile, "CONIN$", "r", stdin);
|
||||||
MainThread();
|
MainThread(hModule);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DLL_PROCESS_DETACH:
|
||||||
|
ConsoleExit();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
Loading…
Reference in New Issue
Block a user