Added Auto follow seelie. Don't work with electro seelies atm

This commit is contained in:
m0nkrel 2022-06-26 14:16:55 +03:00
parent 90fca5d656
commit da0079a9ad
6 changed files with 128 additions and 0 deletions

View File

@ -16,6 +16,7 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="src\user\cheat\visuals\TextureChanger.h" />
<ClInclude Include="src\user\cheat\world\AutoSeelie.h" />
<ClInclude Include="src\user\cheat\world\FakeTime.h" />
<ClInclude Include="src\user\cheat\debugger.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WS|x64'">false</ExcludedFromBuild>
@ -118,6 +119,7 @@
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\user\cheat\visuals\TextureChanger.cpp" />
<ClCompile Include="src\user\cheat\world\AutoSeelie.cpp" />
<ClCompile Include="src\user\cheat\world\FakeTime.cpp" />
<ClCompile Include="src\user\cheat\debugger.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>

View File

@ -237,6 +237,9 @@
<ClInclude Include="src\user\cheat\visuals\TextureChanger.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\user\cheat\world\AutoSeelie.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Font Include="res\Ruda-Bold.ttf" />
@ -432,6 +435,9 @@
<ClCompile Include="src\user\cheat\visuals\TextureChanger.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\user\cheat\world\AutoSeelie.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="res\res.rc">

View File

@ -27,6 +27,7 @@
#include <cheat/world/AutoTreeFarm.h>
#include <cheat/world/AutoDestroy.h>
#include <cheat/world/FakeTime.h>
#include <cheat/world/AutoSeelie.h>
#include <cheat/teleport/ChestTeleport.h>
#include <cheat/teleport/MapTeleport.h>
@ -83,6 +84,7 @@ namespace cheat
FEAT_INST(AutoLoot),
FEAT_INST(AutoTreeFarm),
FEAT_INST(AutoDestroy),
FEAT_INST(AutoSeelie),
FEAT_INST(DialogSkip),
FEAT_INST(DumbEnemies),
FEAT_INST(ElementalSight),
@ -90,6 +92,7 @@ namespace cheat
FEAT_INST(MobVacuum),
FEAT_INST(FakeTime),
FEAT_INST(ChestTeleport),
FEAT_INST(OculiTeleport),
FEAT_INST(MapTeleport),

View File

@ -0,0 +1,83 @@
#include "pch-il2cpp.h"
#include "AutoSeelie.h"
#include <helpers.h>
#include <cheat/events.h>
#include <cheat/game/EntityManager.h>
#include <cheat/game/util.h>
namespace cheat::feature
{
AutoSeelie::AutoSeelie() : Feature(),
NF(f_Enabled, "Auto follow seelie", "AutoSeelie", false)
{
events::GameUpdateEvent += MY_METHOD_HANDLER(AutoSeelie::OnGameUpdate);
}
const FeatureGUIInfo& AutoSeelie::GetGUIInfo() const
{
static const FeatureGUIInfo info{ "", "World", true };
return info;
}
void AutoSeelie::DrawMain()
{
ConfigWidget("Auto seelie", f_Enabled, "Auto follow seelie to it home");
ImGui::SameLine();
ImGui::TextColored(ImColor(255, 165, 0, 255), "Don't work with Electro Seelies");
}
bool AutoSeelie::NeedStatusDraw() const
{
return f_Enabled;
}
void AutoSeelie::DrawStatus()
{
ImGui::Text ("AutoSeelie");
}
AutoSeelie& AutoSeelie::GetInstance()
{
static AutoSeelie instance;
return instance;
}
bool AutoSeelie::IsEntityForVac(game::Entity* entity)
{
auto& manager = game::EntityManager::instance();
auto distance = manager.avatar()->distance(entity);
float radius = 100.0f;
if (entity->name().find("Gear_Seelie") != std::string::npos || entity->name().find("_FireSeelie") != std::string::npos ||
entity->name().find("_LitSeelie") != std::string::npos)
{
return distance <= radius;
}
return false;
}
void AutoSeelie::OnGameUpdate()
{
if (!f_Enabled)
return;
auto currentTime = util::GetCurrentTimeMillisec();
if (currentTime < nextTime)
return;
auto& manager = game::EntityManager::instance();
auto avatarEntity = manager.avatar();
for (const auto& entity : manager.entities())
{
if (!IsEntityForVac(entity))
continue;
entity->setRelativePosition(avatarEntity->relativePosition());
}
nextTime = currentTime + 1000;
}
}

View File

@ -0,0 +1,33 @@
#pragma once
#include <cheat-base/cheat/Feature.h>
#include <cheat-base/config/config.h>
#include <cheat/game/Entity.h>
#include <cheat/game/filters.h>
#include <il2cpp-appdata.h>
namespace cheat::feature
{
class AutoSeelie : public Feature
{
public:
config::Field<config::Toggle<Hotkey>> f_Enabled;
static AutoSeelie& GetInstance();
const FeatureGUIInfo& GetGUIInfo() const override;
void DrawMain() override;
virtual bool NeedStatusDraw() const override;
void DrawStatus() override;
void OnGameUpdate();
private:
std::vector<game::IEntityFilter*> m_Filters;
AutoSeelie();
int nextTime{};
bool IsEntityForVac(cheat::game::Entity* entity);
};
}

1
cheat-library/vendor/protobuf vendored Submodule

@ -0,0 +1 @@
Subproject commit 6f99f12a6b3e2a38f444d9d052eb29822f885913