#include "pch.h" #include "feature.h" using namespace SDK; void ESP() { APalPlayerCharacter* pPalCharacter = Config.GetPalPlayerCharacter(); if (!pPalCharacter) return; UPalShooterComponent* pShootComponent = pPalCharacter->ShooterComponent; if (!pShootComponent) return; APalWeaponBase* pWeapon = pShootComponent->HasWeapon; if (pWeapon) DrawUActorComponent(pWeapon->InstanceComponents, ImColor(128, 0, 0)); if (!Config.UCIM) return; TArray T = {}; Config.UCIM->GetAllPalCharacter(&T); if (!T.IsValid()) return; for (int i = 0; i < T.Count(); i++) ImGui::GetBackgroundDrawList()->AddText(nullptr, 16, ImVec2(10, 10 + (i * 30)), ImColor(128,0,0), T[i]->GetFullName().c_str()); } void DrawUActorComponent(SDK::TArray Comps,ImColor color) { ImGui::GetBackgroundDrawList()->AddText(nullptr, 16, ImVec2(ImGui::GetIO().DisplaySize.x / 2, ImGui::GetIO().DisplaySize.y / 2), color, "Drawing..."); if (Comps.IsValid()) { for (int i = 0; i < Comps.Count(); i++) { if (Comps[i] != NULL) { ImGui::GetBackgroundDrawList()->AddText(nullptr, 16, ImVec2(10, 10 + (i * 30)), color, Comps[i]->GetFullName().c_str()); } } } } void ResetStamina() { APalPlayerCharacter* pPalCharacter = Config.GetPalPlayerCharacter(); if (!pPalCharacter) return; UPalCharacterParameterComponent* pParams = pPalCharacter->CharacterParameterComponent; if (!pParams) return; pParams->ResetSP(); } void SetInfiniteAmmo(bool bInfAmmo) { APalPlayerCharacter* pPalCharacter = Config.GetPalPlayerCharacter(); if (!pPalCharacter) return; UPalShooterComponent* pShootComponent = pPalCharacter->ShooterComponent; if (!pShootComponent) return; APalWeaponBase* pWeapon = pShootComponent->HasWeapon; if (pWeapon) pWeapon->IsRequiredBullet = bInfAmmo ? false : true; } void SetCraftingSpeed(float mNewSpeed, bool bRestoreDefault) { APalPlayerCharacter* pPalCharacter = Config.GetPalPlayerCharacter(); if (!pPalCharacter) return; UPalCharacterParameterComponent* pParams = pPalCharacter->CharacterParameterComponent; if (!pParams) return; UPalIndividualCharacterParameter* ivParams = pParams->IndividualParameter; if (!ivParams) return; FPalIndividualCharacterSaveParameter sParams = ivParams->SaveParameter; TArray mCraftSpeedArray = sParams.CraftSpeedRates.Values; if (mCraftSpeedArray.Count() > 0) mCraftSpeedArray[0].Value = bRestoreDefault ? 1.0f : mNewSpeed; } void AddTechPoints(__int32 mPoints) { APalPlayerState* mPlayerState = Config.GetPalPlayerState(); if (!mPlayerState) return; UPalTechnologyData* pTechData = mPlayerState->TechnologyData; if (!pTechData) return; pTechData->TechnologyPoint += mPoints; } void AddAncientTechPoints(__int32 mPoints) { APalPlayerState* mPlayerState = Config.GetPalPlayerState(); if (!mPlayerState) return; UPalTechnologyData* pTechData = mPlayerState->TechnologyData; if (!pTechData) return; pTechData->bossTechnologyPoint += mPoints; } void RemoveTechPoints(__int32 mPoints) { APalPlayerState* mPlayerState = Config.GetPalPlayerState(); if (!mPlayerState) return; UPalTechnologyData* pTechData = mPlayerState->TechnologyData; if (!pTechData) return; pTechData->TechnologyPoint -= mPoints; } void RemoveAncientTechPoint(__int32 mPoints) { APalPlayerState* mPlayerState = Config.GetPalPlayerState(); if (!mPlayerState) return; UPalTechnologyData* pTechData = mPlayerState->TechnologyData; if (!pTechData) return; pTechData->bossTechnologyPoint -= mPoints; }