EFTCheatPVE/EscapeFromTarkovCheat/Main.cs

416 lines
17 KiB
C#

using System;
using System.Collections.Generic;
using Comfort.Common;
using EFT;
using EFT.Interactive;
using EFT.InputSystem;
using EscapeFromTarkovCheat.Data;
using EscapeFromTarkovCheat.Feauters;
using EscapeFromTarkovCheat.Feauters.ESP;
using EscapeFromTarkovCheat.Utils;
using UnityEngine;
using System.Security.Cryptography;
using EscapeFromTarkovCheat.Features.Misc;
using System.Diagnostics;
using EscapeFromTarkovCheat.Features;
using System.Linq;
using System.ComponentModel.Design;
namespace EscapeFromTarkovCheat
{
public class Main : MonoBehaviour
{
public static List<GamePlayer> GamePlayers = new List<GamePlayer>();
public static Player LocalPlayer;
public static GameWorld GameWorld;
public static Camera MainCamera;
public static Skills skills = new Skills();
private float _nextPlayerCacheTime;
private static readonly float _cachePlayersInterval = 4f;
// Stamina BEGIN
private float _aimDrainRate;
private float _aimRangeFinderDrainRate;
private float _sprintDrainRate;
private float _jumpConsumption;
private float _proneConsumption;
private Vector3 _aimConsumptionByPose;
private Vector3 _overweightConsumptionByPose;
private Vector2 _crouchConsumption;
private Vector2 _standupConsumption;
private Vector2 _walkConsumption;
private float _oxygenRestoration;
private float _exhaustedMeleeSpeed;
private float _baseRestorationRate;
private bool _staminaExhaustionCausesJiggle;
private bool _staminaExhaustionRocksCamera;
private bool _staminaExhaustionStartsBreathSound;
private bool _isConfigured = false;
// Stamina END
public void Awake()
{
GameObject hookObject = new GameObject();
// MAIN
hookObject.AddComponent<Menu.UI.Menu>();
// ESP
hookObject.AddComponent<PlayerESP>();
hookObject.AddComponent<ItemESP>();
hookObject.AddComponent<LootableContainerESP>();
hookObject.AddComponent<ExfiltrationPointsESP>();
// AIMBOT
hookObject.AddComponent<Aimbot>();
// MISC
hookObject.AddComponent<SpeedHack>();
DontDestroyOnLoad(hookObject);
LocalisationManager.Initialize();
}
public static bool notReady() {
return Singleton<GameWorld>.Instance == null || // Not in raid
Singleton<GameWorld>.Instance.RegisteredPlayers == null || // Not yet loaded
Camera.main == null; // Counting down
}
public static void KillEverything()
{
var gameWorld = Singleton<GameWorld>.Instance;
if (gameWorld == null) return;
foreach (var player in gameWorld.AllAlivePlayersList.Where(players => !players.IsYourPlayer))
{
player.ActiveHealthController.Kill(EDamageType.Bullet);
}
}
public static void TeleportLoot()
{
var targetPosition = GameUtils.GetTargetPosition();
var lootItems = FindObjectsOfType<LootItem>()
.Where(GameUtils.IsGroundLoot)
.Where(GameUtils.IsInteractableLoot)
.Select(lootItem => new GameLootItem(lootItem))
.ToList();
int itemCount = lootItems.Count;
float radius = 2.0f;
float additionalSpacing = 1f;
for (int i = 0; i < itemCount; i++)
{
var angle = i * Mathf.PI * 2 / itemCount;
var x = Mathf.Cos(angle) * (radius + (i * additionalSpacing / itemCount));
var z = Mathf.Sin(angle) * (radius + (i * additionalSpacing / itemCount));
lootItems[i].LootItem.transform.position = new Vector3(targetPosition.x + x, targetPosition.y, targetPosition.z + z);
}
}
public static void TeleportAllEnemies()
{
if (notReady())
return;
var targetPosition = GameUtils.GetTargetPosition();
foreach (var player in GameWorld.AllAlivePlayersList.Where(x => !x.IsYourPlayer))
{
player.Teleport(targetPosition);
}
}
private void RefreshData()
{
if (Time.time < _nextPlayerCacheTime)
return;
if (notReady())
return;
GameWorld = Singleton<GameWorld>.Instance;
MainCamera = Camera.main;
_nextPlayerCacheTime = (Time.time + _cachePlayersInterval);
}
private void RefreshPlayers()
{
if (notReady())
return;
GamePlayers.Clear();
foreach (Player player in GameWorld.RegisteredPlayers)
{
if (player.IsYourPlayer)
{
LocalPlayer = player;
continue;
}
if (!GameUtils.IsPlayerAlive(player) || (Vector3.Distance(MainCamera.transform.position, player.Transform.position) > Settings.DrawPlayersDistance))
continue;
GamePlayers.Add(new GamePlayer(player));
}
foreach (GamePlayer gamePlayer in GamePlayers)
gamePlayer.RecalculateDynamics();
}
public static void UnlockAllDoors() {
if (notReady())
return;
foreach (var door in FindObjectsOfType<Door>())
{
if (door.DoorState == EDoorState.Open)
continue;
if (Vector3.Distance(door.transform.position, LocalPlayer.Position) > 20f)
continue;
door.DoorState = EDoorState.Shut;
}
}
public static void Heal() {
if (notReady())
return;
if (LocalPlayer.PlayerHealthController == null)
return;
if (LocalPlayer.PlayerHealthController.IsBodyPartBroken(EBodyPart.Head))
LocalPlayer.PlayerHealthController.RestoreBodyPart(EBodyPart.Head, 1);
if (LocalPlayer.PlayerHealthController.IsBodyPartBroken(EBodyPart.LeftArm))
LocalPlayer.PlayerHealthController.RestoreBodyPart(EBodyPart.LeftArm, 1);
if (LocalPlayer.PlayerHealthController.IsBodyPartBroken(EBodyPart.RightArm))
LocalPlayer.PlayerHealthController.RestoreBodyPart(EBodyPart.RightArm, 1);
if (LocalPlayer.PlayerHealthController.IsBodyPartBroken(EBodyPart.LeftLeg))
LocalPlayer.PlayerHealthController.RestoreBodyPart(EBodyPart.LeftLeg, 1);
if (LocalPlayer.PlayerHealthController.IsBodyPartBroken(EBodyPart.RightLeg))
LocalPlayer.PlayerHealthController.RestoreBodyPart(EBodyPart.RightLeg, 1);
if (LocalPlayer.PlayerHealthController.IsBodyPartBroken(EBodyPart.Chest))
LocalPlayer.PlayerHealthController.RestoreBodyPart(EBodyPart.Chest, 1);
if (LocalPlayer.PlayerHealthController.IsBodyPartBroken(EBodyPart.Stomach))
LocalPlayer.PlayerHealthController.RestoreBodyPart(EBodyPart.Stomach, 1);
LocalPlayer.PlayerHealthController.RestoreFullHealth();
LocalPlayer.PlayerHealthController.ChangeHealth(EBodyPart.Head, LocalPlayer.PlayerHealthController.GetBodyPartHealth(EBodyPart.Head).Maximum, default);
LocalPlayer.PlayerHealthController.ChangeHealth(EBodyPart.Stomach, LocalPlayer.PlayerHealthController.GetBodyPartHealth(EBodyPart.Stomach).Maximum, default);
LocalPlayer.PlayerHealthController.ChangeHealth(EBodyPart.Chest, LocalPlayer.PlayerHealthController.GetBodyPartHealth(EBodyPart.Chest).Maximum, default);
LocalPlayer.PlayerHealthController.ChangeHealth(EBodyPart.LeftLeg, LocalPlayer.PlayerHealthController.GetBodyPartHealth(EBodyPart.LeftLeg).Maximum, default);
LocalPlayer.PlayerHealthController.ChangeHealth(EBodyPart.RightLeg, LocalPlayer.PlayerHealthController.GetBodyPartHealth(EBodyPart.RightLeg).Maximum, default);
LocalPlayer.PlayerHealthController.ChangeHealth(EBodyPart.LeftArm, LocalPlayer.PlayerHealthController.GetBodyPartHealth(EBodyPart.LeftArm).Maximum, default);
LocalPlayer.PlayerHealthController.ChangeHealth(EBodyPart.RightArm, LocalPlayer.PlayerHealthController.GetBodyPartHealth(EBodyPart.RightArm).Maximum, default);
LocalPlayer.PlayerHealthController.ChangeHealth(EBodyPart.Head, 9999, default);
LocalPlayer.PlayerHealthController.ChangeHealth(EBodyPart.Stomach, 9999, default);
LocalPlayer.PlayerHealthController.ChangeHealth(EBodyPart.Chest, 9999, default);
LocalPlayer.PlayerHealthController.ChangeHealth(EBodyPart.LeftLeg, 9999, default);
LocalPlayer.PlayerHealthController.ChangeHealth(EBodyPart.RightLeg, 9999, default);
LocalPlayer.PlayerHealthController.ChangeHealth(EBodyPart.LeftArm, 9999, default);
LocalPlayer.PlayerHealthController.ChangeHealth(EBodyPart.RightArm, 9999, default);
}
private void GodMode() {
if (notReady())
return;
if (LocalPlayer.ActiveHealthController == null)
return;
if (LocalPlayer.ActiveHealthController.DamageCoeff != -1f)
{
LocalPlayer.ActiveHealthController.SetDamageCoeff(-1f);
LocalPlayer.ActiveHealthController.RemoveNegativeEffects(EBodyPart.Common);
LocalPlayer.ActiveHealthController.RestoreFullHealth();
LocalPlayer.ActiveHealthController.ChangeEnergy(999f);
LocalPlayer.ActiveHealthController.ChangeHydration(999f);
LocalPlayer.ActiveHealthController.DoPermanentHealthBoost(25f);
LocalPlayer.ActiveHealthController.RemoveMedEffect();
}
if (LocalPlayer.ActiveHealthController.FallSafeHeight != 9999999f)
{
LocalPlayer.ActiveHealthController.FallSafeHeight = 9999999f;
}
}
private void GodMode_OnDisable()
{
if (notReady())
return;
if (LocalPlayer.ActiveHealthController == null)
return;
LocalPlayer.ActiveHealthController.SetDamageCoeff(1f);
LocalPlayer.ActiveHealthController.FallSafeHeight = 1f;
LocalPlayer.ActiveHealthController.ChangeEnergy(100f);
LocalPlayer.ActiveHealthController.ChangeHydration(100f);
LocalPlayer.ActiveHealthController.RemoveMedEffect();
LocalPlayer.ActiveHealthController.DoPermanentHealthBoost(0f);
}
private void Stamina_Configure() {
if (notReady())
return;
if (LocalPlayer.Physical == null)
return;
if (LocalPlayer.Physical.StaminaParameters == null)
return;
var parameters = LocalPlayer.Physical.StaminaParameters;
_aimDrainRate = parameters.AimDrainRate;
_aimRangeFinderDrainRate = parameters.AimRangeFinderDrainRate;
_sprintDrainRate = parameters.SprintDrainRate;
_jumpConsumption = parameters.JumpConsumption;
_proneConsumption = parameters.ProneConsumption;
_aimConsumptionByPose = parameters.AimConsumptionByPose;
_overweightConsumptionByPose = parameters.OverweightConsumptionByPose;
_crouchConsumption = parameters.CrouchConsumption;
_standupConsumption = parameters.StandupConsumption;
_walkConsumption = parameters.WalkConsumption;
_oxygenRestoration = parameters.OxygenRestoration;
_exhaustedMeleeSpeed = parameters.ExhaustedMeleeSpeed;
_baseRestorationRate = parameters.BaseRestorationRate;
_staminaExhaustionCausesJiggle = parameters.StaminaExhaustionCausesJiggle;
_staminaExhaustionRocksCamera = parameters.StaminaExhaustionRocksCamera;
_staminaExhaustionStartsBreathSound = parameters.StaminaExhaustionStartsBreathSound;
_isConfigured = true;
}
private void Stamina() {
if (notReady())
return;
if (LocalPlayer.Physical == null)
return;
if (LocalPlayer.Physical.StaminaParameters == null)
return;
var parameters = LocalPlayer.Physical.StaminaParameters;
if (!_isConfigured)
Stamina_Configure();
LocalPlayer.PlayerHealthController.SetStaminaCoeff(3000000);
parameters.AimDrainRate = 0f;
parameters.AimRangeFinderDrainRate = 0f;
parameters.SprintDrainRate = 0f;
parameters.JumpConsumption = 0f;
parameters.ProneConsumption = 0f;
parameters.AimConsumptionByPose = Vector3.zero;
parameters.OverweightConsumptionByPose = Vector3.zero;
parameters.CrouchConsumption = Vector2.zero;
parameters.StandupConsumption = Vector2.zero;
parameters.WalkConsumption = Vector2.zero;
parameters.OxygenRestoration = 10000f;
parameters.ExhaustedMeleeSpeed = 10000f;
parameters.BaseRestorationRate = parameters.Capacity;
parameters.StaminaExhaustionCausesJiggle = false;
parameters.StaminaExhaustionRocksCamera = false;
parameters.StaminaExhaustionStartsBreathSound = false;
}
private void Stamina_OnDisable() {
if (notReady())
return;
if (LocalPlayer.Physical == null)
return;
if (LocalPlayer.Physical.StaminaParameters == null)
return;
var parameters = LocalPlayer.Physical.StaminaParameters;
parameters.AimDrainRate = _aimDrainRate;
parameters.AimRangeFinderDrainRate = _aimRangeFinderDrainRate;
parameters.SprintDrainRate = _sprintDrainRate;
parameters.JumpConsumption = _jumpConsumption;
parameters.ProneConsumption = _proneConsumption;
parameters.AimConsumptionByPose = _aimConsumptionByPose;
parameters.OverweightConsumptionByPose = _overweightConsumptionByPose;
parameters.CrouchConsumption = _crouchConsumption;
parameters.StandupConsumption = _standupConsumption;
parameters.WalkConsumption = _walkConsumption;
parameters.OxygenRestoration = _oxygenRestoration;
parameters.ExhaustedMeleeSpeed = _exhaustedMeleeSpeed;
parameters.BaseRestorationRate = _baseRestorationRate;
parameters.StaminaExhaustionCausesJiggle = _staminaExhaustionCausesJiggle;
parameters.StaminaExhaustionRocksCamera = _staminaExhaustionRocksCamera;
parameters.StaminaExhaustionStartsBreathSound = _staminaExhaustionStartsBreathSound;
}
public static void IncreaseTraderStanding()
{
if (notReady())
return;
foreach (KeyValuePair<string, Profile.TraderInfo> info in LocalPlayer.Profile.TradersInfo)
{
string traderId = info.Key;
Profile.TraderInfo traderInfo = info.Value;
traderInfo.Init(traderId, LocalPlayer.Profile.Info);
traderInfo.SetStanding(traderInfo.Standing + 0.10000000149011612);
}
}
public static void CallAirdrop(bool takeNearbyPoint = false, Vector3 position = default(Vector3))
{
if (notReady())
return;
GameWorld.InitAirdrop(takeNearbyPoint, position);
}
public void Update()
{
RefreshData();
if (Settings.DrawPlayers)
RefreshPlayers();
if (Input.GetKeyDown(Settings.UnlockDoors))
UnlockAllDoors();
if (Input.GetKeyDown(Settings.InstaHeal))
Heal();
if (Settings.GodMode)
{
Heal();
GodMode();
}
else
GodMode_OnDisable();
if (Settings.Stamina)
Stamina();
else
Stamina_OnDisable();
if (Input.GetKeyDown(Settings.KillSwitch))
KillEverything();
if (Input.GetKeyDown(Settings.TpLoots))
TeleportLoot();
if (Input.GetKeyDown(Settings.IncreaseTraderStandingKey))
IncreaseTraderStanding();
if (Input.GetKeyDown(Settings.CallAirdrop))
CallAirdrop(false, default(Vector3));
if (Input.GetKeyDown(Settings.TpEnemies))
TeleportAllEnemies();
}
}
}