mirror of
https://github.com/DumbDev69420/EscapeTheBackrooms_Internal.git
synced 2024-12-22 22:47:30 +08:00
Reworked some stuff, and tested an way to Print Steam ids of clients which joined.
Also changed that now an Gif is the Background of the Menu for Testing purposes. Looks kinda okay but sketchy
This commit is contained in:
parent
915f2eefc1
commit
7200fcf4c1
@ -72,6 +72,7 @@ namespace Cheat {
|
|||||||
SDK::UKismetStringLibrary* StringLib = 0x0;
|
SDK::UKismetStringLibrary* StringLib = 0x0;
|
||||||
SDK::UKismetTextLibrary* TextLib = 0x0;
|
SDK::UKismetTextLibrary* TextLib = 0x0;
|
||||||
SDK::UGameplayStatics* GPStatics = 0x0;
|
SDK::UGameplayStatics* GPStatics = 0x0;
|
||||||
|
SDK::UKismetRenderingLibrary* RenderLib = 0x0;
|
||||||
SDK::AMP_PlayerController_C* PlayerController = 0x0;
|
SDK::AMP_PlayerController_C* PlayerController = 0x0;
|
||||||
SDK::ULocalPlayer* LocalPlayer = 0x0;
|
SDK::ULocalPlayer* LocalPlayer = 0x0;
|
||||||
SDK::ULevel* CurLevel = 0x0;
|
SDK::ULevel* CurLevel = 0x0;
|
||||||
@ -168,6 +169,8 @@ namespace Cheat {
|
|||||||
|
|
||||||
GPStatics = (SDK::UGameplayStatics*)SDK::UObject::FindClassFast("GameplayStatics")->DefaultObject;
|
GPStatics = (SDK::UGameplayStatics*)SDK::UObject::FindClassFast("GameplayStatics")->DefaultObject;
|
||||||
|
|
||||||
|
RenderLib = (SDK::UKismetRenderingLibrary*)SDK::UObject::FindClassFast("KismetRenderingLibrary")->DefaultObject;
|
||||||
|
|
||||||
CWINGui::Font = SDK::UObject::FindObject<SDK::UFont>("Font Roboto.Roboto");
|
CWINGui::Font = SDK::UObject::FindObject<SDK::UFont>("Font Roboto.Roboto");
|
||||||
|
|
||||||
StaticConstructObject_Internal = (fStaticConstructObject_Internal)((uintptr_t)GetModuleHandle(0) + Offsets::StaticConstructObject_Internal);
|
StaticConstructObject_Internal = (fStaticConstructObject_Internal)((uintptr_t)GetModuleHandle(0) + Offsets::StaticConstructObject_Internal);
|
||||||
@ -1322,6 +1325,29 @@ namespace Cheat {
|
|||||||
//Esp shit, World needed obviously else crashes
|
//Esp shit, World needed obviously else crashes
|
||||||
if (Ok || Stages >= 6) {
|
if (Ok || Stages >= 6) {
|
||||||
|
|
||||||
|
#ifdef DEBUG //Will have to reverse some shit later. For now wont work
|
||||||
|
if (Settings::TestEvent_PrintSteamIDS) {
|
||||||
|
Settings::TestEvent_PrintSteamIDS = false;
|
||||||
|
|
||||||
|
auto Players = PlayerStuff::PlayerList;
|
||||||
|
|
||||||
|
for (size_t i = 0; i < Players.size(); i++)
|
||||||
|
{
|
||||||
|
auto Controller = (SDK::APlayerController*)Players[i].Pawn_->Controller;
|
||||||
|
|
||||||
|
if (Controller) {
|
||||||
|
auto NetConnection = Controller->NetConnection;
|
||||||
|
|
||||||
|
if (NetConnection) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
if (PlayerController->SpectatorPawn) {
|
if (PlayerController->SpectatorPawn) {
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1571,7 +1597,7 @@ namespace Cheat {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef Gatekeep
|
#ifdef DEBUG
|
||||||
|
|
||||||
//Spawn stuff inside your hand, that wasnt supposed to even Spawn in there (Exploit 1, Dangerous Exploit)
|
//Spawn stuff inside your hand, that wasnt supposed to even Spawn in there (Exploit 1, Dangerous Exploit)
|
||||||
if (Settings::Spawner) {
|
if (Settings::Spawner) {
|
||||||
@ -1698,7 +1724,7 @@ namespace Cheat {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Message("Couldnt Spawn Rope. Class Not Found");
|
Message("Couldnt Spawn Firework. Class Not Found");
|
||||||
}
|
}
|
||||||
//BPCharacter->CustomTimeDilation = 0.001f;
|
//BPCharacter->CustomTimeDilation = 0.001f;
|
||||||
}
|
}
|
||||||
@ -1831,10 +1857,9 @@ namespace Cheat {
|
|||||||
|
|
||||||
|
|
||||||
{ // Only works as Host
|
{ // Only works as Host
|
||||||
BPCharacter->CanJumpscare = false;
|
|
||||||
BPCharacter->CanKill = false;
|
|
||||||
|
|
||||||
if (BPCharacter->Climb) {
|
|
||||||
|
if (BPCharacter->Climb) { //Fast climb ladder
|
||||||
BPCharacter->Climb->TheTimeline.Length = 0.0f;
|
BPCharacter->Climb->TheTimeline.Length = 0.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1971,7 +1996,7 @@ namespace Cheat {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef Gatekeep
|
#ifdef DEBUG
|
||||||
|
|
||||||
//Spawn ropes anywhere you want, how often you want also. (Exploit 3, severe)
|
//Spawn ropes anywhere you want, how often you want also. (Exploit 3, severe)
|
||||||
if (GetAsyncKeyState(VK_F2)& 1 && BPCharacter->CurrentItem_Rep) {
|
if (GetAsyncKeyState(VK_F2)& 1 && BPCharacter->CurrentItem_Rep) {
|
||||||
@ -1985,7 +2010,7 @@ namespace Cheat {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // Gatekeep
|
#endif // No real Frontend implementation for this, for now
|
||||||
|
|
||||||
|
|
||||||
if (GetAsyncKeyState(VK_F3) & 1)
|
if (GetAsyncKeyState(VK_F3) & 1)
|
||||||
@ -2226,7 +2251,7 @@ namespace Cheat {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef Gatekeep
|
#ifdef DEBUG //Debugging purposes
|
||||||
if (Settings::UnpossePawns) {
|
if (Settings::UnpossePawns) {
|
||||||
Settings::UnpossePawns = false;
|
Settings::UnpossePawns = false;
|
||||||
|
|
||||||
@ -2377,7 +2402,7 @@ namespace Cheat {
|
|||||||
PlayerController->AcknowledgedPawn->K2_SetActorLocation(SDK::FVector(PlayerPos.X - UPVector.X, PlayerPos.Y - UPVector.Y, PlayerPos.Z - UPVector.Z), false, 0, true);
|
PlayerController->AcknowledgedPawn->K2_SetActorLocation(SDK::FVector(PlayerPos.X - UPVector.X, PlayerPos.Y - UPVector.Y, PlayerPos.Z - UPVector.Z), false, 0, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef Gatekeep
|
#ifdef DEBUG //no real frontend for this yet
|
||||||
if (GetAsyncKeyState(VK_F1)) {
|
if (GetAsyncKeyState(VK_F1)) {
|
||||||
BPCharacter->StartPushingActor_SERVER((SDK::ABP_Pushable_C*)PlayerController->AcknowledgedPawn, PlayerController->AcknowledgedPawn->K2_GetActorLocation(), PlayerController->ControlRotation);
|
BPCharacter->StartPushingActor_SERVER((SDK::ABP_Pushable_C*)PlayerController->AcknowledgedPawn, PlayerController->AcknowledgedPawn->K2_GetActorLocation(), PlayerController->ControlRotation);
|
||||||
BPCharacter->StopPushingActor_SERVER((SDK::ABP_Pushable_C*)PlayerController->AcknowledgedPawn);
|
BPCharacter->StopPushingActor_SERVER((SDK::ABP_Pushable_C*)PlayerController->AcknowledgedPawn);
|
||||||
@ -2523,7 +2548,7 @@ namespace Cheat {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (CurrentInteractable->IsUsable && !CurrentInteractable->WasUsed) {
|
if (CurrentInteractable->IsUsable) {
|
||||||
|
|
||||||
SDK::FVector2D ScreenPos;
|
SDK::FVector2D ScreenPos;
|
||||||
auto Location = CurrentInteractable->K2_GetActorLocation();
|
auto Location = CurrentInteractable->K2_GetActorLocation();
|
||||||
@ -2556,6 +2581,7 @@ namespace Cheat {
|
|||||||
SDK::UClass* StaticSkinMf = nullptr;
|
SDK::UClass* StaticSkinMf = nullptr;
|
||||||
SDK::UClass* StaticBacteriaMf = nullptr;
|
SDK::UClass* StaticBacteriaMf = nullptr;
|
||||||
SDK::UClass* StaticHowlerMf = nullptr;
|
SDK::UClass* StaticHowlerMf = nullptr;
|
||||||
|
SDK::UClass* StaticABPCharacter = SDK::ABPCharacter_Demo_C::StaticClass();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -2566,15 +2592,15 @@ namespace Cheat {
|
|||||||
if (Settings::RandomName)
|
if (Settings::RandomName)
|
||||||
srand(time(NULL));
|
srand(time(NULL));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for (size_t i = 0; i < EnemyArray.Num(); i++)
|
for (size_t i = 0; i < EnemyArray.Num(); i++)
|
||||||
{
|
{
|
||||||
if (!EnemyArray.IsValidIndex(i) || !EnemyArray[i] || EnemyArray[i] == PlayerController->Character)continue;
|
if (!EnemyArray.IsValidIndex(i) || !EnemyArray[i] || EnemyArray[i] == PlayerController->Character)continue;
|
||||||
|
|
||||||
auto CurrentEnemy = (SDK::ACharacter*)EnemyArray[i];
|
auto CurrentEnemy = (SDK::ACharacter*)EnemyArray[i];
|
||||||
|
|
||||||
auto Name = CurrentEnemy->Name.ToString();
|
if (CurrentEnemy->Class->IsA(StaticABPCharacter)) {
|
||||||
|
|
||||||
if (Name.find("BPCharacter_Demo_C") != std::string::npos) {
|
|
||||||
|
|
||||||
auto CharacterBP = (SDK::ABPCharacter_Demo_C*)CurrentEnemy;
|
auto CharacterBP = (SDK::ABPCharacter_Demo_C*)CurrentEnemy;
|
||||||
auto StateBP = (SDK::AMP_PS_C*)CharacterBP->PlayerState;
|
auto StateBP = (SDK::AMP_PS_C*)CharacterBP->PlayerState;
|
||||||
@ -2649,6 +2675,14 @@ namespace Cheat {
|
|||||||
|
|
||||||
|
|
||||||
if (Settings::Godmode) {
|
if (Settings::Godmode) {
|
||||||
|
|
||||||
|
if (!Settings::IniShitsPlayer[7]) {
|
||||||
|
Settings::IniShitsPlayer[7] = true;
|
||||||
|
BPCharacter->CanJumpscare = false;
|
||||||
|
BPCharacter->CanKill = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
auto Name = CurrentEnemy->Class->Name;
|
auto Name = CurrentEnemy->Class->Name;
|
||||||
if (StaticSkinMf && Name == StaticSkinMf->Name) {
|
if (StaticSkinMf && Name == StaticSkinMf->Name) {
|
||||||
auto SkinSteala = (SDK::ABP_SkinStealer_C*)CurrentEnemy;
|
auto SkinSteala = (SDK::ABP_SkinStealer_C*)CurrentEnemy;
|
||||||
@ -2673,7 +2707,15 @@ namespace Cheat {
|
|||||||
// Howlerdude->CanAttack = false;
|
// Howlerdude->CanAttack = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (Settings::IniShitsPlayer[7]) {
|
||||||
|
Settings::IniShitsPlayer[7] = false;
|
||||||
|
|
||||||
|
BPCharacter->CanJumpscare = true;
|
||||||
|
BPCharacter->CanKill = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Settings::EnemyEsp) {
|
if (Settings::EnemyEsp) {
|
||||||
UsefullFuncs::DrawBoxOnActor(Canvas, CurrentEnemy, UsefullFuncs::RGBATOFLinear(255, 0, 0, 255));
|
UsefullFuncs::DrawBoxOnActor(Canvas, CurrentEnemy, UsefullFuncs::RGBATOFLinear(255, 0, 0, 255));
|
||||||
|
@ -91,6 +91,7 @@
|
|||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<IncludePath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Include;$(IncludePath)</IncludePath>
|
<IncludePath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Include;$(IncludePath)</IncludePath>
|
||||||
<LibraryPath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x64;$(LibraryPath)</LibraryPath>
|
<LibraryPath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x64;$(LibraryPath)</LibraryPath>
|
||||||
|
<ExternalIncludePath>C:\Users\sonny\Downloads\backgroundpng\Out;$(ExternalIncludePath)</ExternalIncludePath>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<VcpkgUseStatic>true</VcpkgUseStatic>
|
<VcpkgUseStatic>true</VcpkgUseStatic>
|
||||||
@ -183,6 +184,7 @@
|
|||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ClInclude Include="C:\Users\sonny\Downloads\backgroundpng\Out\IncludeFile.h" />
|
||||||
<ClInclude Include="Cheat.h" />
|
<ClInclude Include="Cheat.h" />
|
||||||
<ClInclude Include="framework.h" />
|
<ClInclude Include="framework.h" />
|
||||||
<ClInclude Include="HostModifiers.h" />
|
<ClInclude Include="HostModifiers.h" />
|
||||||
|
@ -22,6 +22,9 @@
|
|||||||
<Filter Include="Quelldateien\SDK">
|
<Filter Include="Quelldateien\SDK">
|
||||||
<UniqueIdentifier>{53f1abc9-974e-496b-adbb-45a701a650ce}</UniqueIdentifier>
|
<UniqueIdentifier>{53f1abc9-974e-496b-adbb-45a701a650ce}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
<Filter Include="Headerdateien\Data">
|
||||||
|
<UniqueIdentifier>{af4a5384-604f-4524-93cc-ca60a54a5fb4}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="framework.h">
|
<ClInclude Include="framework.h">
|
||||||
@ -5754,6 +5757,9 @@
|
|||||||
<ClInclude Include="HostModifiers.h">
|
<ClInclude Include="HostModifiers.h">
|
||||||
<Filter>Headerdateien</Filter>
|
<Filter>Headerdateien</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="C:\Users\sonny\Downloads\backgroundpng\Out\IncludeFile.h">
|
||||||
|
<Filter>Headerdateien\Data</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="dllmain.cpp">
|
<ClCompile Include="dllmain.cpp">
|
||||||
|
@ -383,7 +383,38 @@ namespace CWINGui
|
|||||||
FVector2D dragPos;
|
FVector2D dragPos;
|
||||||
void DrawThunder(FVector2D Size, FVector2D Pos);
|
void DrawThunder(FVector2D Size, FVector2D Pos);
|
||||||
|
|
||||||
bool Window(const char* name, FVector2D* pos, FVector2D size, bool isOpen)
|
struct GifData {
|
||||||
|
std::vector<SDK::UTexture2D*> TextureArray;
|
||||||
|
int CurrentIndex;
|
||||||
|
ULONGLONG Const_Delay;
|
||||||
|
ULONGLONG CurrentTickDelay;
|
||||||
|
|
||||||
|
GifData(std::vector<SDK::UTexture2D*> Array, ULONGLONG AnimationDelay) {
|
||||||
|
this->TextureArray = Array;
|
||||||
|
this->Const_Delay = AnimationDelay;
|
||||||
|
this->CurrentIndex = 0;
|
||||||
|
this->CurrentTickDelay = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
SDK::UTexture2D* GetCurrentImage() {
|
||||||
|
SDK::UTexture2D* Texture_ = TextureArray[CurrentIndex];
|
||||||
|
|
||||||
|
if (GetTickCount64() >= CurrentTickDelay) {
|
||||||
|
CurrentTickDelay = GetTickCount64() + Const_Delay;
|
||||||
|
|
||||||
|
if (CurrentIndex + 1 >= TextureArray.size())
|
||||||
|
CurrentIndex = 0;
|
||||||
|
else
|
||||||
|
CurrentIndex++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Texture_;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
void DrawTexture(SDK::UTexture2D* texture, SDK::FVector2D ScreenPos, SDK::FVector2D ScreenSize, float rotation = 0.0f, SDK::FLinearColor color = {1.0f, 1.0f, 1.0f, 1.0f}, SDK::EBlendMode BlendMode = SDK::EBlendMode::BLEND_Masked);
|
||||||
|
|
||||||
|
bool Window(const char* name, FVector2D* pos, FVector2D size, bool isOpen, GifData* Gif = nullptr)
|
||||||
{
|
{
|
||||||
elements_count = 0;
|
elements_count = 0;
|
||||||
|
|
||||||
@ -437,9 +468,21 @@ namespace CWINGui
|
|||||||
current_element_pos = FVector2D{ 0, 0 };
|
current_element_pos = FVector2D{ 0, 0 };
|
||||||
current_element_size = FVector2D{ 0, 0 };
|
current_element_size = FVector2D{ 0, 0 };
|
||||||
|
|
||||||
//Bg
|
|
||||||
drawFilledRect(FVector2D{ pos->X, pos->Y }, size.X, size.Y, Colors::Window_Background);
|
if (Gif) {
|
||||||
//drawFilledRect(FVector2D{ pos->X, pos->Y }, 122, size.Y, FLinearColor{ 0.006f, 0.006f, 0.006f, 1.0f });//My tabs bg
|
auto Texture = Gif->GetCurrentImage();
|
||||||
|
|
||||||
|
drawFilledRect(FVector2D{ pos->X, pos->Y }, size.X, 25.0f, { 49 / 255, 49 / 255, 49 / 255, 1.0f});
|
||||||
|
|
||||||
|
DrawTexture(Texture, { pos->X, pos->Y }, { size.X, size.Y });
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//Bg
|
||||||
|
drawFilledRect(FVector2D{ pos->X, pos->Y }, size.X, size.Y, Colors::Window_Background);
|
||||||
|
//drawFilledRect(FVector2D{ pos->X, pos->Y }, 122, size.Y, FLinearColor{ 0.006f, 0.006f, 0.006f, 1.0f });//My tabs bg
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//Header
|
//Header
|
||||||
drawFilledRect(FVector2D{ pos->X, pos->Y }, size.X, 25.0f, Colors::Window_Header);
|
drawFilledRect(FVector2D{ pos->X, pos->Y }, size.X, 25.0f, Colors::Window_Header);
|
||||||
@ -740,6 +783,57 @@ namespace CWINGui
|
|||||||
drawFilledRect(SDK::FVector2D{ RootPosition.X - (Width / 1.5f), RootPosition.Y - 10 + (Height / 6) }, (Width) * (Shield / 100), Height2, ShieldColor);
|
drawFilledRect(SDK::FVector2D{ RootPosition.X - (Width / 1.5f), RootPosition.Y - 10 + (Height / 6) }, (Width) * (Shield / 100), Height2, ShieldColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SDK::UTexture2D* LoadTexture(const wchar_t* Path) {
|
||||||
|
UTexture2D* LoadedTexture = nullptr;
|
||||||
|
|
||||||
|
auto RenderClass = SDK::UKismetRenderingLibrary::StaticClass();
|
||||||
|
|
||||||
|
if (RenderClass) {
|
||||||
|
auto RenderingLibrary = (SDK::UKismetRenderingLibrary*)RenderClass->DefaultObject;
|
||||||
|
|
||||||
|
if(RenderingLibrary)
|
||||||
|
LoadedTexture = RenderingLibrary->ImportFileAsTexture2D(SDK::UWorld::GetWorld(), SDK::FString(Path));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return LoadedTexture;
|
||||||
|
}
|
||||||
|
|
||||||
|
SDK::UTexture2D* LoadTexture(std::vector<byte> Texture) {
|
||||||
|
UTexture2D* LoadedTexture = nullptr;
|
||||||
|
|
||||||
|
auto RenderClass = SDK::UKismetRenderingLibrary::StaticClass();
|
||||||
|
|
||||||
|
if (RenderClass) {
|
||||||
|
auto RenderingLibrary = (SDK::UKismetRenderingLibrary*)RenderClass->DefaultObject;
|
||||||
|
|
||||||
|
if (RenderingLibrary) {
|
||||||
|
SDK::TArray<uint8> BufferArray = SDK::TArray<uint8>(Texture.size());
|
||||||
|
|
||||||
|
void** ptr = (void**)&BufferArray;
|
||||||
|
int* Size = (int*)( (uintptr_t)(&BufferArray) + 0x8);
|
||||||
|
|
||||||
|
std::memcpy(ptr[0], Texture.data(), sizeof(uint8) * Texture.size());
|
||||||
|
|
||||||
|
*Size = Texture.size();
|
||||||
|
|
||||||
|
LoadedTexture = RenderingLibrary->ImportBufferAsTexture2D(SDK::UWorld::GetWorld(), BufferArray);
|
||||||
|
|
||||||
|
delete[] ptr[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return LoadedTexture;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DrawTexture(SDK::UTexture2D* texture, SDK::FVector2D ScreenPos, SDK::FVector2D ScreenSize, float rotation, SDK::FLinearColor color, SDK::EBlendMode BlendMode) {
|
||||||
|
if(texture)
|
||||||
|
canvas->K2_DrawTexture(texture, ScreenPos, ScreenSize, { 1.0f, 1.0f }, { 1.0f, 1.0f }, color, BlendMode, rotation, { 1.0f, 1.0f });
|
||||||
|
}
|
||||||
|
|
||||||
void Checkbox(const wchar_t* name, bool* value)
|
void Checkbox(const wchar_t* name, bool* value)
|
||||||
{
|
{
|
||||||
elements_count++;
|
elements_count++;
|
||||||
|
@ -300,6 +300,7 @@ namespace Settings {
|
|||||||
//Misc
|
//Misc
|
||||||
|
|
||||||
bool ProtectCamServer = true;
|
bool ProtectCamServer = true;
|
||||||
|
bool TestEvent_PrintSteamIDS = false;
|
||||||
bool UnlockPlayers = false;
|
bool UnlockPlayers = false;
|
||||||
bool UnpossePawns = false;
|
bool UnpossePawns = false;
|
||||||
bool ChangeNameEvent = false;
|
bool ChangeNameEvent = false;
|
||||||
@ -340,7 +341,7 @@ namespace Settings {
|
|||||||
bool AutoRespawnPlayers = true;
|
bool AutoRespawnPlayers = true;
|
||||||
bool wtf_ = false;
|
bool wtf_ = false;
|
||||||
bool IniShitsLevel[6];
|
bool IniShitsLevel[6];
|
||||||
bool IniShitsPlayer[7];
|
bool IniShitsPlayer[8];
|
||||||
|
|
||||||
bool SpawnItem = false;
|
bool SpawnItem = false;
|
||||||
Items ItemToSpawn;
|
Items ItemToSpawn;
|
||||||
|
@ -3,8 +3,8 @@
|
|||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include "Cheat.h"
|
#include "Cheat.h"
|
||||||
#include <MinHook.h>
|
#include <MinHook.h>
|
||||||
|
#include <IncludeFile.h>
|
||||||
|
|
||||||
#define Gatekeep
|
|
||||||
|
|
||||||
typedef void (*PostRender_t)(SDK::UObject* pObject, SDK::UCanvas* pCanvas);
|
typedef void (*PostRender_t)(SDK::UObject* pObject, SDK::UCanvas* pCanvas);
|
||||||
PostRender_t origin_renderer;
|
PostRender_t origin_renderer;
|
||||||
@ -13,6 +13,10 @@ typedef void(__stdcall* fnProcessEvent)(SDK::UObject* Object, SDK::UFunction* Fu
|
|||||||
fnProcessEvent fnProcessEventOrigin;
|
fnProcessEvent fnProcessEventOrigin;
|
||||||
fnProcessEvent fnProcessEventTarget;
|
fnProcessEvent fnProcessEventTarget;
|
||||||
|
|
||||||
|
std::vector<ByteData> Datas;
|
||||||
|
CWINGui::GifData* GifBackground;
|
||||||
|
|
||||||
|
|
||||||
std::wstring stringToWideString(const std::string& str)
|
std::wstring stringToWideString(const std::string& str)
|
||||||
{
|
{
|
||||||
std::wstring wstr(str.length(), L' ');
|
std::wstring wstr(str.length(), L' ');
|
||||||
@ -177,7 +181,7 @@ void ProcessEventHook(SDK::UObject* Obj, SDK::UFunction* Function, void* Parms)
|
|||||||
auto obj_ = (SDK::UW_Kicked_C*)Obj;
|
auto obj_ = (SDK::UW_Kicked_C*)Obj;
|
||||||
auto params_ = (SDK::Params::UW_Kicked_C_Tick_Params*)Parms;
|
auto params_ = (SDK::Params::UW_Kicked_C_Tick_Params*)Parms;
|
||||||
|
|
||||||
auto mssg = Cheat::TextLib->Conv_StringToText(SDK::FString(L"Host the Broke ass Nigga kicked you lmao"));
|
auto mssg = Cheat::TextLib->Conv_StringToText(SDK::FString(L"Host the Broke ass fella kicked you lmao"));
|
||||||
|
|
||||||
obj_->TextBlock_Message->SetText(mssg);
|
obj_->TextBlock_Message->SetText(mssg);
|
||||||
|
|
||||||
@ -190,6 +194,8 @@ void ProcessEventHook(SDK::UObject* Obj, SDK::UFunction* Function, void* Parms)
|
|||||||
return fnProcessEventOrigin(Obj, Function, Parms);
|
return fnProcessEventOrigin(Obj, Function, Parms);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SDK::UTexture2D* ImageTexture = nullptr;
|
||||||
|
|
||||||
|
|
||||||
void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
||||||
|
|
||||||
@ -241,6 +247,7 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
|||||||
|
|
||||||
Cheat::DrawTextRGBWithFString(Canvas, SDK::FString(L"Spectator List:"), SDK::FVector2D(10, SpectatorListPositionY), SDK::FLinearColor(0.0f, 1.0f, 0.0f, 1.0f), false, 1.1f);
|
Cheat::DrawTextRGBWithFString(Canvas, SDK::FString(L"Spectator List:"), SDK::FVector2D(10, SpectatorListPositionY), SDK::FLinearColor(0.0f, 1.0f, 0.0f, 1.0f), false, 1.1f);
|
||||||
|
|
||||||
|
|
||||||
for (size_t i = 0; i < PlayerStuff::PlayerList.size(); i++)
|
for (size_t i = 0; i < PlayerStuff::PlayerList.size(); i++)
|
||||||
{
|
{
|
||||||
if (PlayerStuff::PlayerList[i].IsSpectatingLocalPlayer(Cheat::PlayerController)) {
|
if (PlayerStuff::PlayerList[i].IsSpectatingLocalPlayer(Cheat::PlayerController)) {
|
||||||
@ -252,7 +259,7 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
|||||||
|
|
||||||
static SDK::FVector2D WindowSize = { 500.0f, 555.0f };
|
static SDK::FVector2D WindowSize = { 500.0f, 555.0f };
|
||||||
|
|
||||||
if (CWINGui::Window("Escape The Backrooms Internal", &Settings::WindowPos, WindowSize, Settings::Open))
|
if (CWINGui::Window("Escape The Backrooms Internal", &Settings::WindowPos, WindowSize, Settings::Open, GifBackground))
|
||||||
{
|
{
|
||||||
static int tab = 1;
|
static int tab = 1;
|
||||||
if (CWINGui::ButtonTab(L"Game Shit", SDK::FVector2D{ 110, 35 }, tab == 0)) { tab = 0; WindowSize = { 500.0f, 640.0f }; }
|
if (CWINGui::ButtonTab(L"Game Shit", SDK::FVector2D{ 110, 35 }, tab == 0)) { tab = 0; WindowSize = { 500.0f, 640.0f }; }
|
||||||
@ -297,7 +304,7 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
|||||||
if (CWINGui::Button(L"Bring Tapes", SDK::FVector2D{ 110, 35 })) {
|
if (CWINGui::Button(L"Bring Tapes", SDK::FVector2D{ 110, 35 })) {
|
||||||
Settings::BringAllItems = true;
|
Settings::BringAllItems = true;
|
||||||
}
|
}
|
||||||
#ifdef Gatekeep
|
#ifdef DEBUG
|
||||||
if (CWINGui::Button(L"Unposses Pawn", SDK::FVector2D{ 110, 35 })) {
|
if (CWINGui::Button(L"Unposses Pawn", SDK::FVector2D{ 110, 35 })) {
|
||||||
Settings::UnpossePawns = true;
|
Settings::UnpossePawns = true;
|
||||||
}
|
}
|
||||||
@ -311,6 +318,13 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
|||||||
if (CWINGui::Button(L"Clear Items", SDK::FVector2D{ 110, 35 })) {
|
if (CWINGui::Button(L"Clear Items", SDK::FVector2D{ 110, 35 })) {
|
||||||
Settings::ClearItems = true;
|
Settings::ClearItems = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
if (CWINGui::Button(L"Test Print", SDK::FVector2D{ 110, 35 })) {
|
||||||
|
Settings::TestEvent_PrintSteamIDS = true;
|
||||||
|
}
|
||||||
|
#endif // DEBUG
|
||||||
|
|
||||||
if (CWINGui::Button(L"Alloc Console", SDK::FVector2D{ 110, 35 })) {
|
if (CWINGui::Button(L"Alloc Console", SDK::FVector2D{ 110, 35 })) {
|
||||||
Settings::wtf_ = true;
|
Settings::wtf_ = true;
|
||||||
/*auto arrayAudio = Cheat::AudioData(std::vector<int8>{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0});
|
/*auto arrayAudio = Cheat::AudioData(std::vector<int8>{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0});
|
||||||
@ -346,11 +360,9 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
|||||||
CWINGui::Checkbox(L"GodMode (Host Only)(Works only on some Enemies)", &Settings::Godmode);
|
CWINGui::Checkbox(L"GodMode (Host Only)(Works only on some Enemies)", &Settings::Godmode);
|
||||||
CWINGui::Checkbox(L"Speedhack", &Settings::SpeedHack);
|
CWINGui::Checkbox(L"Speedhack", &Settings::SpeedHack);
|
||||||
CWINGui::Checkbox(L"Interactables always on", &Settings::InteractAll);
|
CWINGui::Checkbox(L"Interactables always on", &Settings::InteractAll);
|
||||||
#ifdef Gatekeep
|
|
||||||
CWINGui::Checkbox(L"NameChanger", &Settings::NameChanger);
|
CWINGui::Checkbox(L"NameChanger", &Settings::NameChanger);
|
||||||
/*CWINGui::Checkbox(L"NameChanger Random", &Settings::RandomName);*/
|
/*CWINGui::Checkbox(L"NameChanger Random", &Settings::RandomName);*/
|
||||||
CWINGui::Checkbox(L"Spawner", &Settings::Spawner);
|
CWINGui::Checkbox(L"Spawner", &Settings::Spawner);
|
||||||
#endif
|
|
||||||
CWINGui::Checkbox(L"Fov Changer", &Settings::FovChanger);
|
CWINGui::Checkbox(L"Fov Changer", &Settings::FovChanger);
|
||||||
CWINGui::SliderFloat(L"Fov", &Settings::Fov, 10.0f, 200.0f);
|
CWINGui::SliderFloat(L"Fov", &Settings::Fov, 10.0f, 200.0f);
|
||||||
CWINGui::SliderFloat(L"Speed", &Settings::Speed, 100, 10000);
|
CWINGui::SliderFloat(L"Speed", &Settings::Speed, 100, 10000);
|
||||||
@ -375,8 +387,6 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
|||||||
// }
|
// }
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
|
||||||
#ifdef Gatekeep
|
|
||||||
if (Settings::NameChanger)
|
if (Settings::NameChanger)
|
||||||
{
|
{
|
||||||
static bool hasfinishedConsole = false;
|
static bool hasfinishedConsole = false;
|
||||||
@ -402,7 +412,7 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
CWINGui::Text(L"Item Spawner:");
|
CWINGui::Text(L"Item Spawner:");
|
||||||
@ -512,7 +522,6 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
|||||||
|
|
||||||
|
|
||||||
case 6:
|
case 6:
|
||||||
#ifdef Gatekeep
|
|
||||||
|
|
||||||
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());
|
||||||
|
|
||||||
@ -588,9 +597,6 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 7:
|
case 7:
|
||||||
@ -848,12 +854,11 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
|||||||
Settings::UseItemEventPlayer = true;
|
Settings::UseItemEventPlayer = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef Gatekeep
|
|
||||||
if (CWINGui::Button(L"Collect Player info", SDK::FVector2D{ 110, 35 })) {
|
if (CWINGui::Button(L"Collect Player info", SDK::FVector2D{ 110, 35 })) {
|
||||||
Settings::Event_PlayerID = player.PlayerID;
|
Settings::Event_PlayerID = player.PlayerID;
|
||||||
Settings::EventCollectDataPlayer = true;
|
Settings::EventCollectDataPlayer = true;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -915,6 +920,8 @@ void MainRender(SDK::UObject* object, SDK::UCanvas* Canvas) {
|
|||||||
std::cout << "[*] Unhooked Renderfunc\n[*] Freeing Console!\n";
|
std::cout << "[*] Unhooked Renderfunc\n[*] Freeing Console!\n";
|
||||||
ConsoleExit();
|
ConsoleExit();
|
||||||
|
|
||||||
|
|
||||||
|
delete GifBackground;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -960,6 +967,21 @@ void MainThread() {
|
|||||||
std::cout << "Failed to get: " << renderError << processeventError << "" << "!\n";
|
std::cout << "Failed to get: " << renderError << processeventError << "" << "!\n";
|
||||||
ConsoleExit();
|
ConsoleExit();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Datas = GetBytes();
|
||||||
|
|
||||||
|
std::vector<SDK::UTexture2D*> TexturesCopy;
|
||||||
|
|
||||||
|
for (size_t i = 0; i < Datas.size(); i++)
|
||||||
|
{
|
||||||
|
std::vector<byte> ByteData(Datas[i].ByteSize); std::memcpy(ByteData.data(), Datas[i].DataPointer, Datas[i].ByteSize);
|
||||||
|
|
||||||
|
TexturesCopy.push_back(CWINGui::LoadTexture(ByteData));
|
||||||
|
}
|
||||||
|
|
||||||
|
GifBackground = new CWINGui::GifData(TexturesCopy, 100);
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user