From 84ee64515807bba2acb48d8276ba05a1260046bb Mon Sep 17 00:00:00 2001 From: NightFyre <80198020+xCENTx@users.noreply.github.com> Date: Mon, 29 Jan 2024 14:23:52 -0500 Subject: [PATCH] death aura # FEATURES - Death Aura ( distance, dmg amount , scalar, vFx ) - Debug print engine globals - attempt restore default values for some toggles # PROJECT - include SDK solution to base project --- DX11-Base.sln | 12 +++++++++++- config.cpp | 9 ++++++++- config.h | 6 +++++- feature.cpp | 39 ++++++++++++++++++++++++++++++++++++-- feature.h | 4 +++- src/Menu.cpp | 52 +++++++++++++++++++++++++++++++++++++++++++-------- 6 files changed, 108 insertions(+), 14 deletions(-) diff --git a/DX11-Base.sln b/DX11-Base.sln index 0c8f69b..5de8613 100644 --- a/DX11-Base.sln +++ b/DX11-Base.sln @@ -3,7 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.32802.440 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DX11-Base", "DX11-Base.vcxproj", "{EB52DDF1-EFC4-4222-9D86-6918D4D891A5}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetCrack-PalWorld", "DX11-Base.vcxproj", "{EB52DDF1-EFC4-4222-9D86-6918D4D891A5}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PalworldSDK", "libs\SDKLibrary\PalworldSDK.vcxproj", "{202F0C63-0183-4CE5-AAB4-4ABD2EA773D9}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -21,6 +23,14 @@ Global {EB52DDF1-EFC4-4222-9D86-6918D4D891A5}.Release|x64.Build.0 = Release|x64 {EB52DDF1-EFC4-4222-9D86-6918D4D891A5}.Release|x86.ActiveCfg = Release|Win32 {EB52DDF1-EFC4-4222-9D86-6918D4D891A5}.Release|x86.Build.0 = Release|Win32 + {202F0C63-0183-4CE5-AAB4-4ABD2EA773D9}.Debug|x64.ActiveCfg = Debug|x64 + {202F0C63-0183-4CE5-AAB4-4ABD2EA773D9}.Debug|x64.Build.0 = Debug|x64 + {202F0C63-0183-4CE5-AAB4-4ABD2EA773D9}.Debug|x86.ActiveCfg = Debug|Win32 + {202F0C63-0183-4CE5-AAB4-4ABD2EA773D9}.Debug|x86.Build.0 = Debug|Win32 + {202F0C63-0183-4CE5-AAB4-4ABD2EA773D9}.Release|x64.ActiveCfg = Release|x64 + {202F0C63-0183-4CE5-AAB4-4ABD2EA773D9}.Release|x64.Build.0 = Release|x64 + {202F0C63-0183-4CE5-AAB4-4ABD2EA773D9}.Release|x86.ActiveCfg = Release|Win32 + {202F0C63-0183-4CE5-AAB4-4ABD2EA773D9}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/config.cpp b/config.cpp index 1f09a9e..3854bf0 100644 --- a/config.cpp +++ b/config.cpp @@ -164,7 +164,14 @@ bool config::GetTAllPals(SDK::TArray* outResult) return true; } -bool GetPartyPals(std::vector outResult) +// @TODO: +bool config::GetPartyPals(std::vector* outResult) +{ + return false; +} + +// @TODO: +bool config::GetPlayerDeathChests(std::vector* outLocations) { return false; } diff --git a/config.h b/config.h index 21d1eff..7af0f2d 100644 --- a/config.h +++ b/config.h @@ -17,6 +17,7 @@ public: bool IsFullbright = false; bool IsForgeMode = false; bool IsTeleportAllToXhair = false; + bool IsDeathAura = false; bool IsAimbot = false; bool IsSpeedHack = false; bool IsAttackModiler = false; @@ -38,6 +39,8 @@ public: //def and value float mDebugESPDistance = 5.0f; float mDebugEntCapDistance = 10.0f; + float mDeathAuraDistance = 10.f; + int mDeathAuraAmount = 1.f; int DamageUp = 0; int DefuseUp = 0; int EXP = 0; @@ -96,7 +99,8 @@ public: static bool GetTAllImpNPC(SDK::TArray* outResult); static bool GetTAllNPC(SDK::TArray* outResult); static bool GetTAllPals(SDK::TArray* outResult); - static bool GetPartyPals(std::vector outResult); + static bool GetPartyPals(std::vector* outResult); + static bool GetPlayerDeathChests(std::vector* outLocations); static bool GetAllActorsofType(SDK::UClass* mType, std::vector* outArray, bool bLoopAllLevels = false, bool bSkipLocalPlayer = false); static void Init(); static void Update(const char* filterText); diff --git a/feature.cpp b/feature.cpp index 33cf89c..5377f43 100644 --- a/feature.cpp +++ b/feature.cpp @@ -532,7 +532,7 @@ void ForgeActor(SDK::AActor* pTarget, float mDistance, float mHeight, float mAng } // credit: -void SendDamageToActor(APalCharacter* character, int32 damage, bool bSpoofAttacker) +void SendDamageToActor(APalCharacter* pTarget, int32 damage, bool bSpoofAttacker) { APalPlayerState* pPalPlayerState = Config.GetPalPlayerState(); APalPlayerCharacter* pPalPlayerCharacter = Config.GetPalPlayerCharacter(); @@ -549,7 +549,42 @@ void SendDamageToActor(APalCharacter* character, int32 damage, bool bSpoofAttack info.bAttackableToFriend = true; info.IgnoreShield = true; info.NativeDamageValue = damage; - pPalPlayerState->SendDamage_ToServer(character, info); + pPalPlayerState->SendDamage_ToServer(pTarget, info); +} + +// NOTE: only targets pals +void DeathAura(__int32 dmgAmount, float mDistance, bool bIntensityEffect, bool bVisualAffect, EPalVisualEffectID visID) +{ + APalCharacter* pPalCharacter = Config.GetPalPlayerCharacter(); + + TArray outPals; + if (!Config.GetTAllPals(&outPals)) + return; + + DWORD palsCount = outPals.Count(); + for (auto i = 0; i < palsCount; i++) + { + APalCharacter* cEnt = outPals[i]; + + if (!cEnt || !cEnt->IsA(APalMonsterCharacter::StaticClass())) + continue; + + float distanceTo = GetDistanceToActor(pPalCharacter, cEnt); + if (distanceTo > mDistance) + continue; + + float dmgScalar = dmgAmount * (1.0f - distanceTo / mDistance); + if (bIntensityEffect) + dmgAmount = dmgScalar; + + UPalVisualEffectComponent* pVisComp = cEnt->VisualEffectComponent; + if (bVisualAffect && pVisComp) + { + FPalVisualEffectDynamicParameter fvedp; + pVisComp->AddVisualEffect_ToServer(visID, fvedp, 1); // uc: killer1478 + } + SendDamageToActor(cEnt, dmgAmount); + } } // credit: xCENTx diff --git a/feature.h b/feature.h index 6902d90..fdf8fa3 100644 --- a/feature.h +++ b/feature.h @@ -55,7 +55,9 @@ float GetDistanceToActor(SDK::AActor* pLocal, SDK::AActor* pTarget); void ForgeActor(SDK::AActor* pTarget, float mDistance, float mHeight = 0.0f, float mAngle = 0.0f); -void SendDamageToActor(SDK::APalCharacter* character, int32 damage, bool bSpoofAttacker = false); +void SendDamageToActor(SDK::APalCharacter* pTarget, int32 damage, bool bSpoofAttacker = false); + +void DeathAura(__int32 dmgAmount, float mDistance, bool bIntensityEffect = false, bool bVisualEffect = false, SDK::EPalVisualEffectID visID = SDK::EPalVisualEffectID::None); void TeleportAllPalsToCrosshair(float mDistance); diff --git a/src/Menu.cpp b/src/Menu.cpp index 3214850..350f2f0 100644 --- a/src/Menu.cpp +++ b/src/Menu.cpp @@ -361,27 +361,61 @@ namespace DX11_Base void TABDebug() { - ImGui::Checkbox("DEBUG ESP", &Config.isDebugESP); + if (ImGui::Checkbox("DEBUG ESP", &Config.isDebugESP) && !Config.isDebugESP) + Config.mDebugESPDistance = 10.f; if (Config.isDebugESP) { ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); ImGui::SliderFloat("##DISTANCE", &Config.mDebugESPDistance, 1.0f, 100.f, "%.0f", ImGuiSliderFlags_AlwaysClamp); } - ImGui::Checkbox("TELEPORT PALS TO XHAIR", &Config.IsTeleportAllToXhair); + + if (ImGui::Checkbox("TELEPORT PALS TO XHAIR", &Config.IsTeleportAllToXhair) && !Config.IsTeleportAllToXhair) + Config.mDebugEntCapDistance = 10.f; if (Config.IsTeleportAllToXhair) { ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); ImGui::SliderFloat("##ENT_CAP_DISTANCE", &Config.mDebugEntCapDistance, 1.0f, 100.f, "%.0f", ImGuiSliderFlags_AlwaysClamp); } - - // @TODO: print additional debug information - if (ImGui::Button("PrintPlayerAddr", ImVec2(ImGui::GetContentRegionAvail().x - 3, 20))) + + if (ImGui::Checkbox("DEATH AURA", &Config.IsDeathAura) && !Config.IsDeathAura) { - SDK::APalPlayerCharacter* p_appc = Config.GetPalPlayerCharacter(); - if (p_appc) - g_Console->printdbg("\n\n[+] APalPlayerCharacter: 0x%llX\n", Console::Colors::green, p_appc); + Config.mDeathAuraDistance = 10.0f; + Config.mDeathAuraAmount = 1; + } + if (Config.IsDeathAura) + { + ImGui::SameLine(); + ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x * .7); + ImGui::SliderFloat("##AURA_DISTANCE", &Config.mDeathAuraDistance, 1.0f, 100.f, "%.0f", ImGuiSliderFlags_AlwaysClamp); + ImGui::SameLine(); + ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); + ImGui::SliderInt("##AURA_DMG", &Config.mDeathAuraAmount, 1, 10, "%d", ImGuiSliderFlags_AlwaysClamp); + } + + if (ImGui::Button("PRINT ENGINE GLOBALS", ImVec2(ImGui::GetContentRegionAvail().x - 3, 20))) + { + + g_Console->printdbg("[+] [UNREAL ENGINE GLOBALS]\n" + "UWorld:\t\t\t0x%llX\n" + "ULocalPlayer:\t\t0x%llX\n" + "APalPlayerController:\t0x%llX\n" + "APalPlayerCharacter:\t0x%llX\n" + "APalPlayerState:\t0x%llX\n" + "UCharacterImpMan:\t0x%llX\n" + "UPalPlayerInventory:\t0x%llX\n" + "APalWeaponBase:\t\t0x%llX\n", + Console::Colors::yellow, + Config.gWorld, + Config.GetLocalPlayer(), + Config.GetPalPlayerController(), + Config.GetPalPlayerCharacter(), + Config.GetPalPlayerState(), + Config.GetCharacterImpManager(), + Config.GetInventoryComponent(), + Config.GetPlayerEquippedWeapon() + ); } @@ -742,6 +776,8 @@ namespace DX11_Base if (Config.IsTeleportAllToXhair) TeleportAllPalsToCrosshair(Config.mDebugEntCapDistance); + if (Config.IsDeathAura) + DeathAura(Config.mDeathAuraAmount, Config.mDeathAuraDistance); // // SetDemiGodMode(Config.IsMuteki); }