Updated some features, Creadit:Evoc

This commit is contained in:
2200151533 2024-01-30 00:08:18 +08:00
parent c44509cadb
commit 0cfc05db2b
4 changed files with 302 additions and 115 deletions

View File

@ -7,6 +7,13 @@
typedef bool(*Tick)(SDK::APalPlayerCharacter* m_this, float DeltaSecond);
typedef void(*SendDamage)(SDK::APalPlayerState* d_this, SDK::APalCharacter* Target, SDK::FPalDamageInfo* info);
//Creadit:Evoc
using FName_Ctor = void(__fastcall*)(SDK::FName*, const char*, int);
using n_time = std::chrono::high_resolution_clock;
class config
{
public:
@ -15,6 +22,7 @@ public:
DWORD64 offset_Tick = 0x2AB1DC0;//APalPlayerCharacter::Tick
DWORD64 offset_senddmg = 0x2A57920; //APalPlayerState::SendDamage_ToServer
//check
bool spec = false;
bool IsESP = false;
bool IsAimbot = false;
bool IsSpeedHack = false;
@ -33,6 +41,9 @@ public:
bool filterPlayer = false;
bool bisRandomName = false;
bool bisTeleporter = false;
bool filterCharacters = true;
bool filterGuilds = false;
bool filterMapParts = false;
float SpeedModiflers = 1.0f;
//def and value
float mDebugESPDistance = 5.0f;
@ -48,16 +59,19 @@ public:
SDK::TArray<SDK::APalPlayerCharacter*> AllPlayers = {};
SDK::UPalCharacterImportanceManager* UCIM = NULL;
SDK::UObject* WorldContextObject = NULL;
std::vector<SDK::FVector> ToReveal = std::vector<SDK::FVector>{};
int AddItemSlot = 0;
int AddItemCount = 2;
enum QuickItemSet
{
basic_items_stackable,
basic_items_single,
pal_unlock_skills,
spheres,
tools
tools,
starter
};
//Filtered Items
@ -79,5 +93,10 @@ public:
static void Init();
static void Update(const char* filterText);
static const std::vector<std::string>& GetFilteredItems();
static auto timeSince(n_time::time_point start) {
n_time::time_point now = n_time::now();
return std::chrono::duration_cast<std::chrono::milliseconds>(now - start).count();
}
};
extern config Config;

View File

@ -1036,6 +1036,31 @@ namespace database
"Axe_Tier_02",
"Axe_Tier_03",
};
static std::string starter[22] =
{
"AssaultRifle_Default5",
"AssaultRifleBullet",
"Launcher_Default_5",
"ExplosiveBullet",
"PalSphere_Debug",
"CornSoup",
"Accessory_HeatResist_3",
"Accessory_CoolResist_3",
"AutoMealPouch_Tier1",
"AutoMealPouch_Tier2",
"AutoMealPouch_Tier3",
"AutoMealPouch_Tier4",
"AutoMealPouch_Tier5",
"Lantern",
"StealArmor_5",
"StealHelmet_5",
"Shield_04",
"Pal_crystal_S",
"Wood",
"Stone",
"SkillUnlock_JetDragon",
"SkillUnlock_Anubis"
};
static std::string pal_unlock_skills[90] =
{
@ -1182,5 +1207,7 @@ namespace database
{"WumpoBotan", { -148826, 364859, -1831.33 }},
{"lyleen noct",{31949.71926269835 ,85551.87052192072,5397.467146487356}},
};
static std::vector<std::string> essential_items = { "Leather", "Wood", "Stone", "Fiber", "CopperOre", "Poppy", "Venom", "Wool", "Cloth", "Cloth2", "FireOrgan", "IceOrgan", "ElectricOrgan", "Pal_crystal_S", "PalCrystal_Ex", "PalFluid", "PalUpgradeStone3", "Horn", "bone", "Charcoal", "CopperIngot", "MachineParts", "GunPowder2", "PalOil", "PalItem_PlantSlime", "Coal", "Sulfur", "Polymer", "Cement", "IronIngot", "CarbonFiber", "Quartz", "MachineParts2", "StealIngot", "" };
static std::vector<std::string> ft_node_names = { "6E03F8464BAD9E458B843AA30BE1CC8F", "DDBBFFAF43D9219AE68DF98744DF0831", "603ED0CD4CFB9AFDC9E11F805594CCE5", "6282FE1E4029EDCDB14135AA4C171E4C", "9FBB93D84811BE424A37C391DBFBB476", "979BF2044C8E8FE559B598A95A83EDE3", "923B781345D2AB7ECED6BABD6E97ECE8", "16C7164C43E2B96BEDCC6696E2E592F7", "D27AFCAD472164F000D33A8D8B61FE8B", "41727100495D21DC905D309C53989914", "6DB6B7B2431CA2EFFFC88EB45805BA6A", "74270C2F45B8DCA66B6A1FAAA911D024", "DF9FB9CB41B43052A9C74FA79A826A50", "8CA5E9774FF1BBC1156ABCA09E616480", "15314BE94E2FB8D018D5749BE9A318F0", "79C561B747335A7A0A8FBF9FAE280E62", "23B9E99C4A454B99220AF7B4A58FD8DE", "A1BC65AA445619EF338E0388BC010648", "BF8B123244ADB794A06EA8A10503FBDD", "F8DF603B4C750B37D943C9AF6A911946", "596996B948716D3FD2283C8B5C6E829C", "28D514E74B51FD9EB078A891DB0787C2", "ACAE5FB04D48DE4197443E9C0993086B", "4D2F204549AB656CA1EA4B8E39C484F3", "1BDEABA240B1699541C17F83E59E61DF", "2BC5E46049E69D3549CFB58948BE3288", "91DAC6F34D2A9FD7F01471B5166C6C02", "41E36D9A4B2BA79A3AD1B7B83B16F77D", "76B000914943BADDC56BCFBAE2BF051E", "DC0ECF9241B4410C59EE619F56D1106A", "71C4B2B2407F2BBBD77572A20C7FF0F5", "EC94023A4CA571FF0FD19E90944F4231", "2A2B744B41AC79964DAE6B89CAC51FC3", "E0819EFB41581AEAC3A029B0EE2FE195", "22095BFA48A46172F8D154B2EBEB7493", "7C5E91514F6E84B0C1DEFFB52C7C4DBA", "AECFED0D41AFEE11F30B4F9687BC3243", "2EC07ACC4505CB726DE38A84246CA999", "F8E5CB8143F4FA2F6213E6B454569F87", "5F426B49469368B0C131D3A6DB8F7831", "A277AE6341EF40D84D711EA52303353F", "6231802D40C81C00445379AE238D9F90", "F6C005A14B38FE0B57F1C7869FD899CB", "7170881D44249E90902F728E240493AF", "3E8E504B4A3975FD3862E1BC85A5D4F6", "B001852C491FF5E70C4747BFF9972924", "2DE1702048A1D4A82126168C49BE51A9", "E88379634CB5B6117DA2E7B8810BFE0A", "3697999C458BF8A3C7973382969FBDF9", "65B10BB14ABDA9C2109167B21901D195", "4669582D4081BF550AFB66A05D043A3D", "FE90632845114C7FBFA4669D071E285F", "5970E8E648D2A83AFDFF7C9151D9BEF5", "B639B7ED4EE18A7AA09BA189EA703032", "099440764403D1508D9BADADF4848697", "B44AA24445864494E7569597ACCAEFC6", "3A0F123947BE045BC415C6B061A5285A", "F382ADAE4259150BF994FF873ECF242B" };
}

View File

@ -202,6 +202,10 @@ void SpawnMultiple_ItemsToInventory(config::QuickItemSet Set)
for (int i = 0; i < IM_ARRAYSIZE(database::tools); i++)
AddItemToInventoryByName(InventoryData, _strdup(database::tools[i].c_str()), 1);
break;
case 5:
for (int i = 0; i < IM_ARRAYSIZE(database::starter); i++)
AddItemToInventoryByName(InventoryData, _strdup(database::starter[i].c_str()), 1);
break;
default:
break;
}

View File

@ -3,6 +3,10 @@
#include "SDK.hpp"
#include "config.h"
#include <algorithm>
auto LastReveal = n_time::now();
static auto fname_ctor = reinterpret_cast<FName_Ctor>(signature("48 89 5C 24 ? 57 48 83 EC ? 41 8B F8 48 8B D9 48 85 D2").GetPointer());
std::string rand_str(const int len)
{
std::string str;
@ -130,7 +134,7 @@ namespace DX11_Base
//creadit
//ImGui::Checkbox("PalIsMonster", &Config.IsMonster);
ImGui::InputInt("EXP:", &Config.EXP);
ImGui::InputText("Item Name", Config.ItemName,sizeof(Config.ItemName));
ImGui::InputText("Item Name", Config.ItemName, sizeof(Config.ItemName));
ImGui::InputInt("Item Num", &Config.Item);
if (ImGui::Button("Give item", ImVec2(ImGui::GetContentRegionAvail().x - 3, 20)))
{
@ -149,10 +153,10 @@ namespace DX11_Base
ImGui::InputInt("Slot to modify (start 0):", &Config.AddItemSlot);
ImGui::InputInt("Multiple of how much:", &Config.AddItemCount);
if (ImGui::Button("Give items from slot", ImVec2(ImGui::GetContentRegionAvail().x - 3, 20)))
IncrementInventoryItemCountByIndex(Config.AddItemCount, Config.AddItemSlot);
// this does not work lol
// std::stringstream AddItemsString;
// AddItemsString << "Give " << Config.AddItemCount << " items from slot" << Config.AddItemSlot;
@ -186,6 +190,123 @@ namespace DX11_Base
}
}
if (ImGui::Button("All Teleporters", ImVec2(ImGui::GetContentRegionAvail().x - 3, 20))) {
SDK::APalPlayerCharacter* pPalCharacter = Config.GetPalPlayerCharacter();
if (!pPalCharacter)
return;
SDK::UKismetStringLibrary* lib = SDK::UKismetStringLibrary::GetDefaultObj();
for (int i = 0; i < database::ft_node_names.size(); i++) {
SDK::FName name{};
fname_ctor(&name, database::ft_node_names[i].data(), 0);
((SDK::APalPlayerState*)pPalCharacter->PlayerState)->RequestUnlockFastTravelPoint_ToServer(name);
}
SDK::UWorld* world = Config.GetUWorld();
if (!world)
return;
SDK::TUObjectArray* objects = world->GObjects;
for (int i = 0; i < objects->NumElements; ++i) {
SDK::UObject* object = objects->GetByIndex(i);
if (!object) {
continue;
}
if (!object->IsA(SDK::APalLevelObjectUnlockableFastTravelPoint::StaticClass())) {
continue;
}
SDK::APalLevelObjectUnlockableFastTravelPoint* tp = (SDK::APalLevelObjectUnlockableFastTravelPoint*)object;
if (!tp) continue;
Config.ToReveal.push_back(tp->K2_GetActorLocation());
}
}
if (ImGui::Button("Tech Books", ImVec2(130, 20))) {
SDK::APalPlayerCharacter* p_appc = Config.GetPalPlayerCharacter();
if (p_appc != NULL)
{
if (Config.GetPalPlayerCharacter()->GetPalPlayerController() != NULL)
{
if (Config.GetPalPlayerCharacter()->GetPalPlayerController()->GetPalPlayerState() != NULL)
{
SDK::UPalPlayerInventoryData* InventoryData = Config.GetPalPlayerCharacter()->GetPalPlayerController()->GetPalPlayerState()->GetInventoryData();
if (InventoryData != NULL)
AddItemToInventoryByName(InventoryData, (char*)"TechnologyBook_G3", 50);
}
}
}
}
ImGui::SameLine();
if (ImGui::Button("Use Books (1st Slot)", ImVec2(ImGui::GetContentRegionAvail().x - 3, 20))) {
SDK::APalPlayerCharacter* p_appc = Config.GetPalPlayerCharacter();
if (p_appc != NULL)
{
if (Config.GetPalPlayerCharacter()->GetPalPlayerController() != NULL)
{
if (Config.GetPalPlayerCharacter()->GetPalPlayerController()->GetPalPlayerState() != NULL)
{
SDK::UPalPlayerInventoryData* InventoryData = Config.GetPalPlayerCharacter()->GetPalPlayerController()->GetPalPlayerState()->GetInventoryData();
if (InventoryData != NULL) {
SDK::UPalItemContainerMultiHelper* InventoryMultiHelper = InventoryData->InventoryMultiHelper;
if (InventoryMultiHelper != NULL) {
SDK::TArray<class SDK::UPalItemContainer*> Containers = InventoryMultiHelper->Containers;
if (Containers.Count() == 0) {
return;
}
SDK::UPalItemSlot* FirstSlot = Containers[0]->Get(0);
if (FirstSlot != NULL)
{
SDK::FPalItemSlotId ID = FirstSlot->GetSlotId();
for (int i = 0; i < FirstSlot->GetStackCount(); i++)
Config.GetPalPlayerCharacter()->GetPalPlayerController()->GetPalPlayerState()->TechnologyData->RequestAddTechnologyPointByItem(ID);
}
}
}
}
}
}
}
if (ImGui::Button("9999 Essentials")) {
SDK::APalPlayerCharacter* p_appc = Config.GetPalPlayerCharacter();
if (p_appc != NULL)
{
if (Config.GetPalPlayerCharacter()->GetPalPlayerController() != NULL)
{
if (Config.GetPalPlayerCharacter()->GetPalPlayerController()->GetPalPlayerState() != NULL)
{
SDK::UPalPlayerInventoryData* InventoryData = Config.GetPalPlayerCharacter()->GetPalPlayerController()->GetPalPlayerState()->GetInventoryData();
if (InventoryData != NULL)
for (int i = 0; i < database::essential_items.size(); i++)
AddItemToInventoryByName(InventoryData, (char*)database::essential_items[i].c_str(), 9999);
}
}
}
}
if (ImGui::Button("Starter Pack", ImVec2(ImGui::GetContentRegionAvail().x - 3, 20))) {
SDK::APalPlayerCharacter* p_appc = Config.GetPalPlayerCharacter();
if (p_appc != NULL)
{
if (Config.GetPalPlayerCharacter()->GetPalPlayerController() != NULL)
{
if (Config.GetPalPlayerCharacter()->GetPalPlayerController()->GetPalPlayerState() != NULL)
{
SDK::UPalPlayerInventoryData* InventoryData = Config.GetPalPlayerCharacter()->GetPalPlayerController()->GetPalPlayerState()->GetInventoryData();
if (InventoryData != NULL) {
SpawnMultiple_ItemsToInventory(config::starter);
}
}
}
}
}
if (ImGui::Button("ToggleFly", ImVec2(ImGui::GetContentRegionAvail().x - 3, 20)))
{
Config.IsToggledFly = !Config.IsToggledFly;
@ -533,142 +654,115 @@ namespace DX11_Base
void Menu::ManagerMenu()
{
if (!ImGui::Begin("Manager", &g_GameVariables->m_ShowMenu, 96))
if (ImGui::Begin("Manager", &g_GameVariables->m_ShowMenu, 96))
{
ImGui::End();
return;
}
if (Config.gWorld)
{
ImGui::Checkbox("filterPlayer", &Config.filterPlayer);
SDK::TArray<SDK::AActor*> T = Config.GetUWorld()->PersistentLevel->Actors;
for (int i = 0; i < T.Count(); i++)
if (Config.GetUWorld() != NULL)
{
if (!T[i])
continue;
ImGui::Checkbox("Filter Characters", &Config.filterCharacters);
ImGui::SameLine();
ImGui::Checkbox("Players", &Config.filterPlayer);
ImGui::SameLine();
ImGui::Checkbox("Guilds", &Config.filterGuilds);
ImGui::SameLine();
ImGui::Checkbox("Map Objects", &Config.filterMapParts);
SDK::TArray<SDK::AActor*> T = Config.GetUWorld()->PersistentLevel->Actors;
if (!T[i]->IsA(SDK::APalCharacter::StaticClass()))
continue;
SDK::APalCharacter* Character = (SDK::APalCharacter*)T[i];
SDK::FString name;
if (Config.filterPlayer)
for (int i = 0; i < T.Count(); i++)
{
if (!T[i]->IsA(SDK::APalPlayerCharacter::StaticClass()))
continue;
}
if (T[i]->IsA(SDK::APalPlayerCharacter::StaticClass()))
{
if (!Character)
continue;
SDK::AActor* Actor = T[i];
Character->CharacterParameterComponent->GetNickname(&name);
}
else
{
SDK::UKismetStringLibrary* lib = SDK::UKismetStringLibrary::GetDefaultObj();
if (!Character)
continue;
if (Actor == nullptr) continue;
std::string s = Character->GetFullName();
size_t firstUnderscorePos = s.find('_');
SDK::APalCharacter* Character = (SDK::APalCharacter*)Actor;
std::string name;
if (firstUnderscorePos != std::string::npos)
bool Skip = Config.filterCharacters || Config.filterPlayer || Config.filterGuilds || Config.filterMapParts;
if (Config.filterCharacters && Actor->IsA(SDK::APalCharacter::StaticClass())) Skip = false;
else if (Config.filterPlayer && Actor->IsA(SDK::APalPlayerCharacter::StaticClass())) Skip = false;
if (Config.filterGuilds && Actor->IsA(SDK::APalGuildInfo::StaticClass())) Skip = false;
if (Config.filterMapParts && Actor->IsA(SDK::APalMapObject::StaticClass())) Skip = false;
if (Actor->IsA(SDK::APalCaptureJudgeObject::StaticClass())) Skip = false;
if (Skip) continue;
if (Actor->IsA(SDK::APalPlayerCharacter::StaticClass()))
{
std::string result = s.substr(firstUnderscorePos + 1);
size_t secondUnderscorePos = result.find('_');
if (secondUnderscorePos != std::string::npos) {
result = result.substr(0, secondUnderscorePos);
}
wchar_t ws[255];
swprintf(ws, 255, L"%hs", result);
name = SDK::FString(ws);
if (!Character) { continue; }
SDK::FString fn;
Character->CharacterParameterComponent->GetNickname(&fn);
if (fn.IsValid())
name = fn.ToString();
else
name = "unknown";
}
}
ImGui::Text(name.ToString().c_str());
ImGui::SameLine();
ImGui::PushID(i);
if (ImGui::Button("Kill"))
{
if (T[i]->IsA(SDK::APalCharacter::StaticClass()))
Damage(Character, 99999999999);
}
ImGui::SameLine();
if (ImGui::Button("TP"))
{
if (Config.GetPalPlayerCharacter() != NULL)
else if (Actor->IsA(SDK::APalGuildInfo::StaticClass()))
name = Character->Name.GetRawString() + "[]" + ((SDK::APalGuildInfo*)Actor)->Guild->GuildName.ToString();
else
name = Character->Name.GetRawString();
ImGui::PushID(i);
if (ImGui::Button("TP"))
{
if (Character)
if (Config.GetPalPlayerCharacter() != NULL)
{
if (!Character) { continue; }
SDK::FVector vector = Character->K2_GetActorLocation();
AnyWhereTP(vector, Config.IsSafe);
}
}
}
/*if (Character->IsA(SDK::APalPlayerCharacter::StaticClass()))
{
ImGui::SameLine();
if (ImGui::Button("Boss"))
if (Actor->IsA(SDK::APalCharacter::StaticClass())) {
ImGui::SameLine();
if (ImGui::Button(GetAsyncKeyState(VK_LSHIFT) ? "-99%" : "Kill"))
Damage(Character, GetAsyncKeyState(VK_LSHIFT) ? (Character->CharacterParameterComponent->GetHP().Value - 1) / 1000 : 99999999999);
}
if (Actor->IsA(SDK::APalPlayerCharacter::StaticClass())) {
ImGui::SameLine();
if (ImGui::Button("Join Guild")) {
SDK::FGuid guid1 = Config.GetPalPlayerCharacter()->GetPalPlayerController()->GetPlayerUId();
SDK::FGuid guid2;
guid2 = SDK::UPalUtility::GetDefaultObj()->GetPlayerUIDByActor(Actor);
g_Console->printdbg("\n\n[+] Player 1 GUID: %x\nPlayer 2 GUID: %x [+]\n\n", g_Console->green, guid1, guid2);
Config.GetPalPlayerCharacter()->GetPalPlayerController()->Transmitter->Group->RequestJoinGuildForPlayer_ToServer(guid1, guid2);
}
}
if (Actor->IsA(SDK::APalMapLevelObject::StaticClass())) {
ImGui::SameLine();
if (ImGui::Button("Destroy")) {
SDK::APalMapLevelObject* Object = (SDK::APalMapLevelObject*)Actor;
Config.GetPalPlayerCharacter()->GetPalPlayerController()->Transmitter->MapObject->RequestDismantleObject_ToServer(Object->LevelObjectInstanceId);
}
}
if (Character->IsA(SDK::APalPlayerCharacter::StaticClass()))
{
if (Config.GetPalPlayerCharacter() != NULL)
ImGui::SameLine();
if (ImGui::Button("Steal Name"))
{
auto controller = Config.GetPalPlayerCharacter()->GetPalPlayerController();
if (controller != NULL)
if (Config.GetPalPlayerCharacter() != NULL)
{
controller->Transmitter->BossBattle->RequestBossBattleEntry_ToServer(SDK::EPalBossType::ElectricBoss, (SDK::APalPlayerCharacter*)Character);
controller->Transmitter->BossBattle->RequestBossBattleStart_ToServer(SDK::EPalBossType::ElectricBoss, (SDK::APalPlayerCharacter*)Character);
auto controller = Config.GetPalPlayerCharacter()->GetPalPlayerController();
if (controller != NULL)
{
auto player = (SDK::APalPlayerCharacter*)Character;
SDK::FString fakename;
player->CharacterParameterComponent->GetNickname(&fakename);
Config.GetPalPlayerCharacter()->GetPalPlayerController()->Transmitter->NetworkIndividualComponent->UpdateCharacterNickName_ToServer(Config.GetPalPlayerCharacter()->CharacterParameterComponent->IndividualHandle->ID, fakename);
}
}
}
}
}*/
if (Character->IsA(SDK::APalPlayerCharacter::StaticClass()))
{
ImGui::SameLine();
if (ImGui::Button("MaskIt"))
{
if (Config.GetPalPlayerCharacter() != NULL)
{
auto controller = Config.GetPalPlayerCharacter()->GetPalPlayerController();
if (controller != NULL)
{
auto player = (SDK::APalPlayerCharacter*)Character;
SDK::FString fakename;
player->CharacterParameterComponent->GetNickname(&fakename);
Config.GetPalPlayerCharacter()->GetPalPlayerController()->Transmitter->NetworkIndividualComponent->UpdateCharacterNickName_ToServer(Config.GetPalPlayerCharacter()->CharacterParameterComponent->IndividualHandle->ID, fakename);
}
}
}
ImGui::Text(name.c_str());
ImGui::PopID();
}
if (Character->IsA(SDK::APalPlayerCharacter::StaticClass()))
{
ImGui::SameLine();
if (ImGui::Button("Boss"))
{
if (Config.GetPalPlayerCharacter() != NULL)
{
auto controller = Config.GetPalPlayerCharacter()->GetPalPlayerController();
if (controller != NULL)
{
controller->Transmitter->BossBattle->RequestBossBattleEntry_ToServer(SDK::EPalBossType::ElectricBoss, (SDK::APalPlayerCharacter*)Character);
controller->Transmitter->BossBattle->RequestBossBattleStart_ToServer(SDK::EPalBossType::ElectricBoss, (SDK::APalPlayerCharacter*)Character);
}
}
}
}
ImGui::PopID();
}
}
if (Config.GetUWorld() != NULL)
{
}
ImGui::End();
}
@ -795,6 +889,31 @@ namespace DX11_Base
void Menu::Loops()
{
if ((GetAsyncKeyState(VK_OEM_3) && GetAsyncKeyState(0x52) & 1))
{
if (Config.GetUWorld() != NULL)
{
SDK::TArray<SDK::AActor*> T = Config.GetUWorld()->PersistentLevel->Actors;
for (int i = 0; i < T.Count(); i++)
{
SDK::AActor* Actor = T[i];
if (Actor == nullptr) continue;
if (!Actor->IsA(SDK::APalCharacter::StaticClass())) continue;
if (Actor->IsA(SDK::APalPlayerCharacter::StaticClass())) continue;
SDK::APalCharacter* Character = (SDK::APalCharacter*)Actor;
if (Character->IsLocallyControlled()) continue;
if (Character->CharacterParameterComponent->GetHP().Value < Character->CharacterParameterComponent->GetMaxHP().Value * 0.015) continue;
Damage(Character, (Character->CharacterParameterComponent->GetHP().Value - 1) / 1000);
}
}
}
// Respawn
if ((GetAsyncKeyState(VK_F5) & 1))
RespawnLocalPlayer(Config.IsSafe);
@ -803,7 +922,18 @@ namespace DX11_Base
if ((GetAsyncKeyState(VK_F6) & 1))
ReviveLocalPlayer();
//
if ((GetAsyncKeyState(VK_F3) & 1))
{
SDK::APalPlayerCharacter* p_appc = Config.GetPalPlayerCharacter();
if (p_appc != NULL)
{
if (Config.GetPalPlayerCharacter()->GetPalPlayerController() != NULL)
{
Config.spec = !Config.spec;
Config.GetPalPlayerCharacter()->SetSpectatorMode(Config.spec);
}
}
}
if (Config.IsSpeedHack)
SpeedHack(Config.SpeedModiflers);
@ -818,7 +948,14 @@ namespace DX11_Base
//
if (Config.IsInfStamina)
ResetStamina();
if (!Config.ToReveal.empty() && Config.timeSince(LastReveal) > 100) {
LastReveal = n_time::now();
SDK::FVector pos = Config.ToReveal.back();
SDK::FHitResult _;
Config.ToReveal.pop_back();
Config.GetPalPlayerCharacter()->K2_SetActorLocation(pos, false, &_, true);
}
//
// SetDemiGodMode(Config.IsMuteki);
}