new solution for the 1.0 release with il2cpp
This commit is contained in:
parent
5db9484b21
commit
2663963bc1
300 changed files with 60138 additions and 21901 deletions
51
EFTCheatPVE1.0.sln
Normal file
51
EFTCheatPVE1.0.sln
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 18
|
||||
VisualStudioVersion = 18.0.11222.15 d18.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "battleyent", "battleyent\battleyent.vcxproj", "{E27A8A44-4579-488B-9D79-C5634C6A9650}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "operator", "operator\operator.vcxproj", "{74BBBA60-A5FB-4621-8389-40DCEF552CC0}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "service", "service\service.vcxproj", "{7CD1F94C-601C-4C92-BAEA-56FA5A8F09F6}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{E27A8A44-4579-488B-9D79-C5634C6A9650}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{E27A8A44-4579-488B-9D79-C5634C6A9650}.Debug|x64.Build.0 = Debug|x64
|
||||
{E27A8A44-4579-488B-9D79-C5634C6A9650}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{E27A8A44-4579-488B-9D79-C5634C6A9650}.Debug|x86.Build.0 = Debug|Win32
|
||||
{E27A8A44-4579-488B-9D79-C5634C6A9650}.Release|x64.ActiveCfg = Release|x64
|
||||
{E27A8A44-4579-488B-9D79-C5634C6A9650}.Release|x64.Build.0 = Release|x64
|
||||
{E27A8A44-4579-488B-9D79-C5634C6A9650}.Release|x86.ActiveCfg = Release|Win32
|
||||
{E27A8A44-4579-488B-9D79-C5634C6A9650}.Release|x86.Build.0 = Release|Win32
|
||||
{74BBBA60-A5FB-4621-8389-40DCEF552CC0}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{74BBBA60-A5FB-4621-8389-40DCEF552CC0}.Debug|x64.Build.0 = Debug|x64
|
||||
{74BBBA60-A5FB-4621-8389-40DCEF552CC0}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{74BBBA60-A5FB-4621-8389-40DCEF552CC0}.Debug|x86.Build.0 = Debug|Win32
|
||||
{74BBBA60-A5FB-4621-8389-40DCEF552CC0}.Release|x64.ActiveCfg = Release|x64
|
||||
{74BBBA60-A5FB-4621-8389-40DCEF552CC0}.Release|x64.Build.0 = Release|x64
|
||||
{74BBBA60-A5FB-4621-8389-40DCEF552CC0}.Release|x86.ActiveCfg = Release|Win32
|
||||
{74BBBA60-A5FB-4621-8389-40DCEF552CC0}.Release|x86.Build.0 = Release|Win32
|
||||
{7CD1F94C-601C-4C92-BAEA-56FA5A8F09F6}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{7CD1F94C-601C-4C92-BAEA-56FA5A8F09F6}.Debug|x64.Build.0 = Debug|x64
|
||||
{7CD1F94C-601C-4C92-BAEA-56FA5A8F09F6}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{7CD1F94C-601C-4C92-BAEA-56FA5A8F09F6}.Debug|x86.Build.0 = Debug|Win32
|
||||
{7CD1F94C-601C-4C92-BAEA-56FA5A8F09F6}.Release|x64.ActiveCfg = Release|x64
|
||||
{7CD1F94C-601C-4C92-BAEA-56FA5A8F09F6}.Release|x64.Build.0 = Release|x64
|
||||
{7CD1F94C-601C-4C92-BAEA-56FA5A8F09F6}.Release|x86.ActiveCfg = Release|Win32
|
||||
{7CD1F94C-601C-4C92-BAEA-56FA5A8F09F6}.Release|x86.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {B53B6BAC-C3F0-4B2C-95E7-81BAA77B2D2E}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.14.36414.22 d17.14
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EscapeFromTarkovCheat", "EscapeFromTarkovCheat\EscapeFromTarkovCheat.csproj", "{C1C426A1-EFC3-4C83-972C-ECA557571328}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "stupid.solutions", "stoopid.raw\stupid.solutions.csproj", "{110FDB00-FE8A-FE52-3071-717628A366E4}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|x64 = Debug|x64
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{C1C426A1-EFC3-4C83-972C-ECA557571328}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||
{C1C426A1-EFC3-4C83-972C-ECA557571328}.Debug|Any CPU.Build.0 = Debug|x64
|
||||
{C1C426A1-EFC3-4C83-972C-ECA557571328}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{C1C426A1-EFC3-4C83-972C-ECA557571328}.Debug|x64.Build.0 = Debug|x64
|
||||
{C1C426A1-EFC3-4C83-972C-ECA557571328}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C1C426A1-EFC3-4C83-972C-ECA557571328}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{C1C426A1-EFC3-4C83-972C-ECA557571328}.Release|x64.ActiveCfg = Release|x64
|
||||
{C1C426A1-EFC3-4C83-972C-ECA557571328}.Release|x64.Build.0 = Release|x64
|
||||
{110FDB00-FE8A-FE52-3071-717628A366E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{110FDB00-FE8A-FE52-3071-717628A366E4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{110FDB00-FE8A-FE52-3071-717628A366E4}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{110FDB00-FE8A-FE52-3071-717628A366E4}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{110FDB00-FE8A-FE52-3071-717628A366E4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{110FDB00-FE8A-FE52-3071-717628A366E4}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{110FDB00-FE8A-FE52-3071-717628A366E4}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{110FDB00-FE8A-FE52-3071-717628A366E4}.Release|x64.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {CAD679E5-CE6D-4BA5-87D6-7B9A31569F44}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
@ -1,155 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using EFT.Interactive;
|
||||
using EscapeFromTarkovCheat.Utils;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EscapeFromTarkovCheat.Data
|
||||
{
|
||||
class GameExfiltrationPoint
|
||||
{
|
||||
public ExfiltrationPoint ExfiltrationPoint { get; }
|
||||
|
||||
public Vector3 ScreenPosition => screenPosition;
|
||||
|
||||
public bool IsOnScreen { get; private set; }
|
||||
|
||||
public float Distance { get; private set; }
|
||||
public string Name { get; set; }
|
||||
public bool Eligible { get; private set; }
|
||||
|
||||
public string FormattedDistance => $"{Math.Round(Distance)}m";
|
||||
|
||||
private Vector3 screenPosition;
|
||||
|
||||
public GameExfiltrationPoint(ExfiltrationPoint exfiltrationPoint, bool eligible)
|
||||
{
|
||||
if (exfiltrationPoint == null)
|
||||
throw new ArgumentNullException(nameof(exfiltrationPoint));
|
||||
|
||||
ExfiltrationPoint = exfiltrationPoint;
|
||||
screenPosition = default;
|
||||
Distance = 0f;
|
||||
Name = exfiltrationPoint.Settings.Name.Localized();
|
||||
Eligible = eligible;
|
||||
}
|
||||
|
||||
public void RecalculateDynamics()
|
||||
{
|
||||
if (!GameUtils.IsExfiltrationPointValid(ExfiltrationPoint))
|
||||
return;
|
||||
|
||||
screenPosition = GameUtils.WorldPointToScreenPoint(ExfiltrationPoint.transform.position);
|
||||
IsOnScreen = GameUtils.IsScreenPointVisible(screenPosition);
|
||||
Distance = Vector3.Distance(Main.MainCamera.transform.position, ExfiltrationPoint.transform.position);
|
||||
}
|
||||
|
||||
private string ExtractionNameToSimpleName(string extractionName)
|
||||
{
|
||||
// Factory
|
||||
if (extractionName.Contains("exit (3)"))
|
||||
return "Cellars";
|
||||
if (extractionName.Contains("exit (1)"))
|
||||
return "Gate 3";
|
||||
if (extractionName.Contains("exit (2)"))
|
||||
return "Gate 0";
|
||||
if (extractionName.Contains("exit_scav_gate3"))
|
||||
return "Gate 3";
|
||||
if (extractionName.Contains("exit_scav_camer"))
|
||||
return "Blinking Light";
|
||||
if (extractionName.Contains("exit_scav_office"))
|
||||
return "Office";
|
||||
|
||||
// Woods
|
||||
if (extractionName.Contains("eastg"))
|
||||
return "East Gate";
|
||||
if (extractionName.Contains("scavh"))
|
||||
return "House";
|
||||
if (extractionName.Contains("deads"))
|
||||
return "Dead Mans Place";
|
||||
if (extractionName.Contains("var1_1_constant"))
|
||||
return "Outskirts";
|
||||
if (extractionName.Contains("scav_outskirts"))
|
||||
return "Outskirts";
|
||||
if (extractionName.Contains("water"))
|
||||
return "Outskirts Water";
|
||||
if (extractionName.Contains("boat"))
|
||||
return "The Boat";
|
||||
if (extractionName.Contains("mountain"))
|
||||
return "Mountain Stash";
|
||||
if (extractionName.Contains("oldstation"))
|
||||
return "Old Station";
|
||||
if (extractionName.Contains("UNroad"))
|
||||
return "UN Road Block";
|
||||
if (extractionName.Contains("var2_1_const"))
|
||||
return "UN Road Block";
|
||||
if (extractionName.Contains("gatetofactory"))
|
||||
return "Gate to Factory";
|
||||
if (extractionName.Contains("RUAF"))
|
||||
return "RUAF Gate";
|
||||
|
||||
// Shoreline
|
||||
if (extractionName.Contains("roadtoc"))
|
||||
return "Road to Customs";
|
||||
if (extractionName.Contains("lighthouse"))
|
||||
return "Lighthouse";
|
||||
if (extractionName.Contains("tunnel"))
|
||||
return "Tunnel";
|
||||
if (extractionName.Contains("wreckedr"))
|
||||
return "Wrecked Road";
|
||||
if (extractionName.Contains("deadend"))
|
||||
return "Dead End";
|
||||
if (extractionName.Contains("housefence"))
|
||||
return "Ruined House Fence";
|
||||
if (extractionName.Contains("gyment"))
|
||||
return "Gym Entrance";
|
||||
if (extractionName.Contains("southfence"))
|
||||
return "South Fence Passage";
|
||||
if (extractionName.Contains("adm_base"))
|
||||
return "Admin Basement";
|
||||
|
||||
// Customs
|
||||
if (extractionName.Contains("administrationg"))
|
||||
return "Administration Gate";
|
||||
if (extractionName.Contains("factoryfar"))
|
||||
return "Factory Far Corner";
|
||||
if (extractionName.Contains("oldazs"))
|
||||
return "Old Gate";
|
||||
if (extractionName.Contains("milkp_sh"))
|
||||
return "Shack";
|
||||
if (extractionName.Contains("beyondfuel"))
|
||||
return "Beyond Fuel Tank";
|
||||
if (extractionName.Contains("railroadtom"))
|
||||
return "Railroad to Mil Base";
|
||||
if (extractionName.Contains("_pay_car"))
|
||||
return "V-Exit";
|
||||
if (extractionName.Contains("oldroadgate"))
|
||||
return "Old Road Gate";
|
||||
if (extractionName.Contains("sniperroad"))
|
||||
return "Sniper Road Block";
|
||||
if (extractionName.Contains("warehouse17"))
|
||||
return "Warehouse 17";
|
||||
if (extractionName.Contains("factoryshacks"))
|
||||
return "Factory Shacks";
|
||||
if (extractionName.Contains("railroadtotarkov"))
|
||||
return "Railroad to Tarkov";
|
||||
if (extractionName.Contains("trailerpark"))
|
||||
return "Trailer Park";
|
||||
if (extractionName.Contains("crossroads"))
|
||||
return "Crossroads";
|
||||
if (extractionName.Contains("railroadtoport"))
|
||||
return "Railroad to Port";
|
||||
|
||||
// Interchange
|
||||
if (extractionName.Contains("NW_Exfil"))
|
||||
return "North West Extract";
|
||||
if (extractionName.Contains("SE_Exfil"))
|
||||
return "Emmercom";
|
||||
return extractionName;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using EFT.Interactive;
|
||||
using EscapeFromTarkovCheat.Utils;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EscapeFromTarkovCheat.Data
|
||||
{
|
||||
class GameLootContainer
|
||||
{
|
||||
public LootableContainer LootableContainer { get;}
|
||||
public Vector3 ScreenPosition => screenPosition;
|
||||
|
||||
public bool IsOnScreen { get; private set; }
|
||||
|
||||
public float Distance { get; private set; }
|
||||
|
||||
public string FormattedDistance => $"{Math.Round(Distance)}m";
|
||||
|
||||
private Vector3 screenPosition;
|
||||
|
||||
public GameLootContainer(LootableContainer lootableContainer)
|
||||
{
|
||||
if (lootableContainer == null)
|
||||
throw new ArgumentNullException(nameof(lootableContainer));
|
||||
|
||||
LootableContainer = lootableContainer;
|
||||
screenPosition = default;
|
||||
Distance = 0f;
|
||||
}
|
||||
|
||||
public void RecalculateDynamics()
|
||||
{
|
||||
if (!GameUtils.IsLootableContainerValid(LootableContainer))
|
||||
return;
|
||||
|
||||
screenPosition = GameUtils.WorldPointToScreenPoint(LootableContainer.transform.position);
|
||||
IsOnScreen = GameUtils.IsScreenPointVisible(screenPosition);
|
||||
Distance = Vector3.Distance(Main.MainCamera.transform.position, LootableContainer.transform.position);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
using System;
|
||||
using EFT.Interactive;
|
||||
using EscapeFromTarkovCheat.Utils;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EscapeFromTarkovCheat.Data
|
||||
{
|
||||
|
||||
public class GameLootItem
|
||||
{
|
||||
public LootItem LootItem { get; }
|
||||
|
||||
public Vector3 ScreenPosition => screenPosition;
|
||||
|
||||
public bool IsOnScreen { get; private set; }
|
||||
|
||||
public float Distance { get; private set; }
|
||||
|
||||
public string FormattedDistance => $"{Math.Round(Distance)}m";
|
||||
|
||||
private Vector3 screenPosition;
|
||||
|
||||
public GameLootItem(LootItem lootItem)
|
||||
{
|
||||
if (lootItem == null)
|
||||
throw new ArgumentNullException(nameof(lootItem));
|
||||
|
||||
LootItem = lootItem;
|
||||
screenPosition = default;
|
||||
Distance = 0f;
|
||||
}
|
||||
|
||||
public void RecalculateDynamics()
|
||||
{
|
||||
if (!GameUtils.IsLootItemValid(LootItem))
|
||||
return;
|
||||
|
||||
screenPosition = GameUtils.WorldPointToScreenPoint(LootItem.transform.position);
|
||||
IsOnScreen = GameUtils.IsScreenPointVisible(screenPosition);
|
||||
Distance = Vector3.Distance(Main.MainCamera.transform.position, LootItem.transform.position);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,75 +0,0 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using EFT;
|
||||
using EscapeFromTarkovCheat.Utils;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EscapeFromTarkovCheat.Data
|
||||
{
|
||||
|
||||
public class GamePlayer
|
||||
{
|
||||
|
||||
public Player Player { get; }
|
||||
|
||||
public Vector3 ScreenPosition => screenPosition;
|
||||
|
||||
public Vector3 HeadScreenPosition => headScreenPosition;
|
||||
|
||||
public bool IsOnScreen { get; private set; }
|
||||
|
||||
public bool IsVisible { get; private set; }
|
||||
|
||||
public float Distance { get; private set; }
|
||||
|
||||
public bool IsAI { get; private set; }
|
||||
|
||||
public string FormattedDistance => $"{(int)Math.Round(Distance)}m";
|
||||
|
||||
private Vector3 screenPosition;
|
||||
private Vector3 headScreenPosition;
|
||||
|
||||
public GamePlayer(Player player)
|
||||
{
|
||||
if (player == null)
|
||||
throw new ArgumentNullException(nameof(player));
|
||||
|
||||
this.Player = player;
|
||||
screenPosition = default;
|
||||
headScreenPosition = default;
|
||||
IsOnScreen = false;
|
||||
Distance = 0f;
|
||||
IsAI = true;
|
||||
}
|
||||
public Vector3 GetBonePosition(BoneType boneType)
|
||||
{
|
||||
if (Player.PlayerBody?.SkeletonRootJoint?.Bones == null)
|
||||
return Vector3.zero;
|
||||
|
||||
Transform boneTransform = Player.PlayerBody.SkeletonRootJoint.Bones.ElementAtOrDefault((int)boneType).Value;
|
||||
|
||||
if (boneTransform == null)
|
||||
return Vector3.zero;
|
||||
|
||||
return GameUtils.WorldPointToScreenPoint(boneTransform.position);
|
||||
}
|
||||
|
||||
public void RecalculateDynamics()
|
||||
{
|
||||
if (!GameUtils.IsPlayerValid(Player))
|
||||
return;
|
||||
|
||||
screenPosition = GameUtils.WorldPointToScreenPoint(Player.Transform.position);
|
||||
|
||||
if (Player.PlayerBones != null)
|
||||
headScreenPosition = GameUtils.WorldPointToScreenPoint(Player.PlayerBones.Head.position);
|
||||
|
||||
IsOnScreen = GameUtils.IsScreenPointVisible(screenPosition);
|
||||
Distance = Vector3.Distance(Main.MainCamera.transform.position, Player.Transform.position);
|
||||
|
||||
if ((Player.Profile != null) && (Player.Profile.Info != null))
|
||||
IsAI = (Player.Profile.Info.RegistrationDate <= 0);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
namespace EscapeFromTarkovCheat.Data
|
||||
{
|
||||
public enum Locale
|
||||
{
|
||||
ENGLISH,
|
||||
CHINESE
|
||||
}
|
||||
}
|
||||
|
|
@ -1,266 +0,0 @@
|
|||
using EscapeFromTarkovCheat.Utils;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace EscapeFromTarkovCheat.Data
|
||||
{
|
||||
internal class LocalisationData
|
||||
{
|
||||
public Locale locale;
|
||||
public Dictionary<StringKey, string> data = new Dictionary<StringKey, string>();
|
||||
|
||||
private void zh_CN() {
|
||||
data.Add(StringKey.MAIN_TITLE, "Stoopid Cheat V1");
|
||||
data.Add(StringKey.MENU_PLAYER_VISUAL_TITLE, "玩家视觉菜单");
|
||||
data.Add(StringKey.MENU_MISC_VISUAL_TITLE, "杂项视觉菜单");
|
||||
data.Add(StringKey.MENU_AIMBOT_TITLE, "自瞄视觉菜单");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_TITLE, "杂项菜单");
|
||||
data.Add(StringKey.MENU_SKILLS_TITLE, "技能编辑器");
|
||||
data.Add(StringKey.MENU_ITEMS_TITLE, "物品菜单");
|
||||
data.Add(StringKey.MENU_MAIN_DESC_TOGGLE, "按 Insert 键开关菜单");
|
||||
data.Add(StringKey.MENU_MAIN_HINT_UNLOCK, "按 数字键盘 4 解锁所有门");
|
||||
data.Add(StringKey.MENU_MAIN_HINT_HEAL, "按 数字键盘 1 治疗");
|
||||
data.Add(StringKey.MENU_MAIN_BUTTON_PLAYER_VISUAL, GetByKey(StringKey.MENU_PLAYER_VISUAL_TITLE));
|
||||
data.Add(StringKey.MENU_MAIN_BUTTON_MISC_VISUAL, GetByKey(StringKey.MENU_MISC_VISUAL_TITLE));
|
||||
data.Add(StringKey.MENU_MAIN_BUTTON_AIMBOT, GetByKey(StringKey.MENU_AIMBOT_TITLE));
|
||||
data.Add(StringKey.MENU_MAIN_BUTTON_MISCELLANEOUS, GetByKey(StringKey.MENU_MISCELLANEOUS_TITLE));
|
||||
data.Add(StringKey.MENU_MAIN_BUTTON_SKILLS, GetByKey(StringKey.MENU_SKILLS_TITLE));
|
||||
data.Add(StringKey.MENU_MAIN_BUTTON_ITEMS, GetByKey(StringKey.MENU_ITEMS_TITLE));
|
||||
data.Add(StringKey.MENU_PLAYER_VISUAL_DRAWPLAYERS, "绘制玩家");
|
||||
data.Add(StringKey.MENU_PLAYER_VISUAL_DRAWPLAYER_BOX, "绘制玩家方框");
|
||||
data.Add(StringKey.MENU_PLAYER_VISUAL_DRAWPLAYER_NAME, "绘制玩家名");
|
||||
data.Add(StringKey.MENU_PLAYER_VISUAL_DRAWPLAYER_LINE, "绘制玩家射线");
|
||||
data.Add(StringKey.MENU_PLAYER_VISUAL_DRAWPLAYER_HEALTH, "绘制玩家血量");
|
||||
data.Add(StringKey.MENU_PLAYER_VISUAL_DRAWPLAYER_SKELETON, "绘制玩家骨骼");
|
||||
data.Add(StringKey.MENU_PLAYER_VISUAL_DRAWPLAYER_RANGE, "玩家距离范围");
|
||||
data.Add(StringKey.MENU_MISC_VISUAL_DRAWLOOTITEMS, "绘制杂散物资");
|
||||
data.Add(StringKey.MENU_MISC_VISUAL_LOOTITEMRANGE, "杂散物资距离范围");
|
||||
data.Add(StringKey.MENU_MISC_VISUAL_DRAWCONTAINERS, "绘制容器");
|
||||
data.Add(StringKey.MENU_MISC_VISUAL_CONTAINERRANGE, "容器距离范围");
|
||||
data.Add(StringKey.MENU_MISC_VISUAL_DRAWEP, "绘制撤离点");
|
||||
data.Add(StringKey.MENU_AIMBOT_TOGGLE, "自瞄");
|
||||
data.Add(StringKey.MENU_AIMBOT_SMOOTH, "自瞄平滑");
|
||||
data.Add(StringKey.MENU_AIMBOT_DRAWFOV, "绘制自瞄范围");
|
||||
data.Add(StringKey.MENU_AIMBOT_FOVRANGE, "自瞄视野范围");
|
||||
data.Add(StringKey.MENU_AIMBOT_AIMINGRANGE, "瞄准上限距离");
|
||||
data.Add(StringKey.MENU_AIMBOT_VISIBLEONLY, "仅瞄准可见目标");
|
||||
data.Add(StringKey.MENU_AIMBOT_SILENT, "静默瞄准");
|
||||
data.Add(StringKey.MENU_AIMBOT_NORECOIL, "无后座");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_GODMODE, "锁血");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_STAMINA, "无限耐");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_SPEEDHACK, "角色加速");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_SPEEDHACK_ADDITION, "速度加成量");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_BUTTON_HEAL, $"回满血 [{Settings.InstaHeal}]");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_BUTTON_UNLOCK, $"解锁 20米 内所有门 [{Settings.UnlockDoors}]");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_BUTTON_KILL, $"全场活光光 [{Settings.KillSwitch}]");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_BUTTON_TPENEMIES, $"吸星大法 [{Settings.TpEnemies}]");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_BUTTON_TRADERSTANDING, $"全部商人好感增加 0.1 [{Settings.IncreaseTraderStandingKey}]");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_BUTTON_ADDXP, "添加经验");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_XPINRAID, "本局经验:");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_XPADDITION, "经验添加量:");
|
||||
data.Add(StringKey.MENU_SKILLS_BUTTON_MAXALL, "技能全满");
|
||||
data.Add(StringKey.MENU_SKILLS_HINT_INRAID, "请在战局中使用!");
|
||||
data.Add(StringKey.MENU_SKILLS_STRENGTH, "力量");
|
||||
data.Add(StringKey.MENU_SKILLS_STRESSRESIST, "抗压");
|
||||
data.Add(StringKey.MENU_SKILLS_MAGDRILLS, "弹匣训练");
|
||||
data.Add(StringKey.MENU_SKILLS_MELEE, "近战");
|
||||
data.Add(StringKey.MENU_SKILLS_HIDEOUT, "藏身处管理");
|
||||
data.Add(StringKey.MENU_SKILLS_CRAFTING, "工艺");
|
||||
data.Add(StringKey.MENU_SKILLS_HEAVYVESTS, "重型护甲");
|
||||
data.Add(StringKey.MENU_SKILLS_LIGHTVESTS, "轻型护甲");
|
||||
data.Add(StringKey.MENU_SKILLS_LMG, "轻机枪");
|
||||
data.Add(StringKey.MENU_SKILLS_ASSAULT, "突击步枪");
|
||||
data.Add(StringKey.MENU_SKILLS_PISTOL, "手枪");
|
||||
data.Add(StringKey.MENU_SKILLS_PERCEPTION, "感知");
|
||||
data.Add(StringKey.MENU_SKILLS_SNIPER, "狙击步枪");
|
||||
data.Add(StringKey.MENU_SKILLS_SNIPING, "狙击");
|
||||
data.Add(StringKey.MENU_SKILLS_ENDURANCE, "耐力");
|
||||
data.Add(StringKey.MENU_SKILLS_THROWING, "投掷物");
|
||||
data.Add(StringKey.MENU_SKILLS_CHARISMA, "魅力");
|
||||
data.Add(StringKey.MENU_SKILLS_HEALTH, "健康");
|
||||
data.Add(StringKey.MENU_SKILLS_VITALITY, "活力");
|
||||
data.Add(StringKey.MENU_SKILLS_METABOLISM, "代谢");
|
||||
data.Add(StringKey.MENU_SKILLS_IMMUNITY, "免疫");
|
||||
data.Add(StringKey.MENU_SKILLS_SURGERY, "手术");
|
||||
data.Add(StringKey.MENU_SKILLS_INTELLECT, "智力");
|
||||
data.Add(StringKey.MENU_SKILLS_ATTENTION, "专注");
|
||||
data.Add(StringKey.MENU_SKILLS_REVOLVER, "左轮手枪");
|
||||
data.Add(StringKey.MENU_SKILLS_SHOTGUN, "霰弹枪");
|
||||
data.Add(StringKey.MENU_SKILLS_HMG, "重机枪");
|
||||
data.Add(StringKey.MENU_SKILLS_DMR, "精确射手步枪");
|
||||
data.Add(StringKey.MENU_SKILLS_AIMDRILLS, "瞄准训练");
|
||||
data.Add(StringKey.MENU_SKILLS_SEARCH, "搜索");
|
||||
data.Add(StringKey.MENU_SKILLS_WEAPONTREATMENT, "武器维护");
|
||||
data.Add(StringKey.MENU_SKILLS_TROUBLESHOOTING, "故障排除");
|
||||
data.Add(StringKey.MENU_SKILLS_COVERTMOVEMENT, "隐蔽行动");
|
||||
data.Add(StringKey.MENU_SKILLS_SMG, "冲锋枪");
|
||||
data.Add(StringKey.MENU_ITEMS_BUTTON_TPLOOTS, $"吸物资 [{Settings.TpLoots}]");
|
||||
data.Add(StringKey.MENU_ITEMS_BUTTON_AIRDROP, $"摇空投 [{Settings.CallAirdrop}]");
|
||||
data.Add(StringKey.MENU_ITEMS_INVEDITOR_TITLE, "物品栏编辑器");
|
||||
data.Add(StringKey.MENU_ITEMS_INVEDITOR_SEARCH, "搜索物品 ID");
|
||||
data.Add(StringKey.MENU_ITEMS_INVEDITOR_GET, "从背包中寻找");
|
||||
data.Add(StringKey.MENU_ITEMS_INVEDITOR_STRINGS, "搜索结果");
|
||||
data.Add(StringKey.MENU_ITEMS_INVEDITOR_CHANGES, "要提交的更改(按物品ID、宽和高的顺序)");
|
||||
data.Add(StringKey.MENU_ITEMS_INVEDITOR_BUTTON_COMMIT, "提交更改");
|
||||
data.Add(StringKey.MENU_ITEMS_INVEDITOR_BUTTON_SETFIR, "全部带勾");
|
||||
data.Add(StringKey.MENU_ITEMS_INVEDITOR_DUPE_TITLE, "物品复制器");
|
||||
data.Add(StringKey.MENU_ITEMS_INVEDITOR_DUPE_BUTTON_SETSTACK, "更改堆叠为 x");
|
||||
data.Add(StringKey.MENU_ITEMS_INVEDITOR_DUPE_BUTTON_RESETSTACK, "重置堆叠为 1");
|
||||
data.Add(StringKey.MENU_ITEMS_INVEDITOR_DUPE_BUTTON_SETSTACK_FASTRUBLE, "快速设置堆叠40万(卢布)");
|
||||
data.Add(StringKey.MENU_ITEMS_INVEDITOR_DUPE_BUTTON_SETSTACK_FASTEUROUSD, "快速设置堆叠5万(欧美元)");
|
||||
|
||||
// 撤离点
|
||||
data.Add(StringKey.DATA_EP_ACTIVE, "激活");
|
||||
data.Add(StringKey.DATA_EP_TIMER, "倒计时");
|
||||
data.Add(StringKey.DATA_EP_CLOSED, "已关闭");
|
||||
data.Add(StringKey.DATA_EP_PENDING, "等待中");
|
||||
data.Add(StringKey.DATA_EP_OPEN, "开放");
|
||||
data.Add(StringKey.DATA_EP_REQUIREMENT, "需要前置");
|
||||
|
||||
// 人机类型
|
||||
data.Add(StringKey.DATA_PLAYERTYPE_BOT, "普通人机");
|
||||
data.Add(StringKey.DATA_PLAYERTYPE_GUARD, "保镖");
|
||||
data.Add(StringKey.DATA_PLAYERTYPE_BEAR, "玩家 俄军");
|
||||
data.Add(StringKey.DATA_PLAYERTYPE_USEC, "玩家 美军");
|
||||
data.Add(StringKey.DATA_PLAYERTYPE_PMC, "玩家");
|
||||
data.Add(StringKey.DATA_PLAYERTYPE_BOSS, "BOSS");
|
||||
}
|
||||
private void en_US()
|
||||
{
|
||||
data.Add(StringKey.MAIN_TITLE, "Stoopid Cheat V1");
|
||||
data.Add(StringKey.MENU_PLAYER_VISUAL_TITLE, "Player Visual");
|
||||
data.Add(StringKey.MENU_MISC_VISUAL_TITLE, "Misc Visual");
|
||||
data.Add(StringKey.MENU_AIMBOT_TITLE, "Aimbot");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_TITLE, "Miscellaneous");
|
||||
data.Add(StringKey.MENU_SKILLS_TITLE, "Skill Editor");
|
||||
data.Add(StringKey.MENU_ITEMS_TITLE, "Items");
|
||||
data.Add(StringKey.MENU_MAIN_DESC_TOGGLE, "Insert For Menu");
|
||||
data.Add(StringKey.MENU_MAIN_HINT_UNLOCK, "Num 4 to Open Doors");
|
||||
data.Add(StringKey.MENU_MAIN_HINT_HEAL, "Num 1 to Heal");
|
||||
data.Add(StringKey.MENU_MAIN_BUTTON_PLAYER_VISUAL, GetByKey(StringKey.MENU_PLAYER_VISUAL_TITLE));
|
||||
data.Add(StringKey.MENU_MAIN_BUTTON_MISC_VISUAL, GetByKey(StringKey.MENU_MISC_VISUAL_TITLE));
|
||||
data.Add(StringKey.MENU_MAIN_BUTTON_AIMBOT, GetByKey(StringKey.MENU_AIMBOT_TITLE));
|
||||
data.Add(StringKey.MENU_MAIN_BUTTON_MISCELLANEOUS, GetByKey(StringKey.MENU_MISCELLANEOUS_TITLE));
|
||||
data.Add(StringKey.MENU_MAIN_BUTTON_SKILLS, GetByKey(StringKey.MENU_SKILLS_TITLE));
|
||||
data.Add(StringKey.MENU_MAIN_BUTTON_ITEMS, GetByKey(StringKey.MENU_ITEMS_TITLE));
|
||||
data.Add(StringKey.MENU_PLAYER_VISUAL_DRAWPLAYERS, "Draw Players");
|
||||
data.Add(StringKey.MENU_PLAYER_VISUAL_DRAWPLAYER_BOX, "Draw Player Box");
|
||||
data.Add(StringKey.MENU_PLAYER_VISUAL_DRAWPLAYER_NAME, "Draw Player Name");
|
||||
data.Add(StringKey.MENU_PLAYER_VISUAL_DRAWPLAYER_LINE, "Draw Player Line");
|
||||
data.Add(StringKey.MENU_PLAYER_VISUAL_DRAWPLAYER_HEALTH, "Draw Player Health");
|
||||
data.Add(StringKey.MENU_PLAYER_VISUAL_DRAWPLAYER_SKELETON, "Draw Player Skeleton");
|
||||
data.Add(StringKey.MENU_PLAYER_VISUAL_DRAWPLAYER_RANGE, "Player Distance");
|
||||
data.Add(StringKey.MENU_MISC_VISUAL_DRAWLOOTITEMS, "Draw Loot Items");
|
||||
data.Add(StringKey.MENU_MISC_VISUAL_LOOTITEMRANGE, "Loot Item Distance");
|
||||
data.Add(StringKey.MENU_MISC_VISUAL_DRAWCONTAINERS, "Draw Containers");
|
||||
data.Add(StringKey.MENU_MISC_VISUAL_CONTAINERRANGE, "Container Distance");
|
||||
data.Add(StringKey.MENU_MISC_VISUAL_DRAWEP, "Draw Extraction");
|
||||
data.Add(StringKey.MENU_AIMBOT_TOGGLE, "Aimbot");
|
||||
data.Add(StringKey.MENU_AIMBOT_SMOOTH, "Aimbot Smooth");
|
||||
data.Add(StringKey.MENU_AIMBOT_DRAWFOV, "Draw FOV");
|
||||
data.Add(StringKey.MENU_AIMBOT_FOVRANGE, "Aimbot FOV");
|
||||
data.Add(StringKey.MENU_AIMBOT_AIMINGRANGE, "Aim Targets In: ");
|
||||
data.Add(StringKey.MENU_AIMBOT_VISIBLEONLY, "Aim Visible Targets Only");
|
||||
data.Add(StringKey.MENU_AIMBOT_SILENT, "Silent Aim");
|
||||
data.Add(StringKey.MENU_AIMBOT_NORECOIL, "No Recoil");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_GODMODE, "God Mode");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_STAMINA, "Infinite Stamina");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_SPEEDHACK, "Speed Hack");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_SPEEDHACK_ADDITION, "Speed Boost");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_BUTTON_HEAL, $"Heal Yourself [{Settings.InstaHeal}]");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_BUTTON_UNLOCK, $"Unlock All Doors In 20m [{Settings.UnlockDoors}]");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_BUTTON_KILL, $"Kill Every Living Thing [{Settings.KillSwitch}]");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_BUTTON_TPENEMIES, $"Teleport All Enemies To You [{Settings.TpEnemies}]");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_BUTTON_TRADERSTANDING, $"Increase Standings For All Traders By 0.1 [{Settings.IncreaseTraderStandingKey}]");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_BUTTON_ADDXP, "Add Exp To Player");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_XPINRAID, "Current Exp In Raid: ");
|
||||
data.Add(StringKey.MENU_MISCELLANEOUS_XPADDITION, "Exp Addition: ");
|
||||
data.Add(StringKey.MENU_SKILLS_BUTTON_MAXALL, "Max All Skills");
|
||||
data.Add(StringKey.MENU_SKILLS_HINT_INRAID, "Use it only in raids!");
|
||||
data.Add(StringKey.MENU_SKILLS_STRENGTH, "Strength");
|
||||
data.Add(StringKey.MENU_SKILLS_STRESSRESIST, "Stress Resistance");
|
||||
data.Add(StringKey.MENU_SKILLS_MAGDRILLS, "Mag Drills");
|
||||
data.Add(StringKey.MENU_SKILLS_MELEE, "Melee");
|
||||
data.Add(StringKey.MENU_SKILLS_HIDEOUT, "Hideout Management");
|
||||
data.Add(StringKey.MENU_SKILLS_CRAFTING, "Crafting");
|
||||
data.Add(StringKey.MENU_SKILLS_HEAVYVESTS, "Heavy Vests");
|
||||
data.Add(StringKey.MENU_SKILLS_LIGHTVESTS, "Light Vests");
|
||||
data.Add(StringKey.MENU_SKILLS_LMG, "Light Machine Guns");
|
||||
data.Add(StringKey.MENU_SKILLS_ASSAULT, "Assult Rifles");
|
||||
data.Add(StringKey.MENU_SKILLS_PISTOL, "Pistols");
|
||||
data.Add(StringKey.MENU_SKILLS_PERCEPTION, "Perception");
|
||||
data.Add(StringKey.MENU_SKILLS_SNIPER, "Bolt-action Rifles");
|
||||
data.Add(StringKey.MENU_SKILLS_SNIPING, "Sniping");
|
||||
data.Add(StringKey.MENU_SKILLS_ENDURANCE, "Endurance");
|
||||
data.Add(StringKey.MENU_SKILLS_THROWING, "Throwables");
|
||||
data.Add(StringKey.MENU_SKILLS_CHARISMA, "Charisma");
|
||||
data.Add(StringKey.MENU_SKILLS_HEALTH, "Health");
|
||||
data.Add(StringKey.MENU_SKILLS_VITALITY, "Vitality");
|
||||
data.Add(StringKey.MENU_SKILLS_METABOLISM, "Metabolism");
|
||||
data.Add(StringKey.MENU_SKILLS_IMMUNITY, "Immunity");
|
||||
data.Add(StringKey.MENU_SKILLS_SURGERY, "Surgery");
|
||||
data.Add(StringKey.MENU_SKILLS_INTELLECT, "Intellect");
|
||||
data.Add(StringKey.MENU_SKILLS_ATTENTION, "Attention");
|
||||
data.Add(StringKey.MENU_SKILLS_REVOLVER, "Revolvers");
|
||||
data.Add(StringKey.MENU_SKILLS_SHOTGUN, "Shotguns");
|
||||
data.Add(StringKey.MENU_SKILLS_HMG, "Heavy Machine Guns");
|
||||
data.Add(StringKey.MENU_SKILLS_DMR, "DMRs");
|
||||
data.Add(StringKey.MENU_SKILLS_AIMDRILLS, "Aim Drills");
|
||||
data.Add(StringKey.MENU_SKILLS_SEARCH, "Search");
|
||||
data.Add(StringKey.MENU_SKILLS_WEAPONTREATMENT, "Weapon Maintenance");
|
||||
data.Add(StringKey.MENU_SKILLS_TROUBLESHOOTING, "Troubleshooting");
|
||||
data.Add(StringKey.MENU_SKILLS_COVERTMOVEMENT, "Covert Movement");
|
||||
data.Add(StringKey.MENU_SKILLS_SMG, "Submachine Guns");
|
||||
data.Add(StringKey.MENU_ITEMS_BUTTON_TPLOOTS, $"Teleport All Loots To You [{Settings.TpLoots}]");
|
||||
data.Add(StringKey.MENU_ITEMS_BUTTON_AIRDROP, $"Call Air Drop [{Settings.CallAirdrop}]");
|
||||
data.Add(StringKey.MENU_ITEMS_INVEDITOR_TITLE, "Inventory Editor");
|
||||
data.Add(StringKey.MENU_ITEMS_INVEDITOR_SEARCH, "Search ID");
|
||||
data.Add(StringKey.MENU_ITEMS_INVEDITOR_GET, "Get Items From Backpack");
|
||||
data.Add(StringKey.MENU_ITEMS_INVEDITOR_STRINGS, "Item Strings");
|
||||
data.Add(StringKey.MENU_ITEMS_INVEDITOR_CHANGES, "Changes To Be Made (In Order Of ID, Width And Height)");
|
||||
data.Add(StringKey.MENU_ITEMS_INVEDITOR_BUTTON_COMMIT, "Commit Changes");
|
||||
data.Add(StringKey.MENU_ITEMS_INVEDITOR_BUTTON_SETFIR, "Set Whole Inventory Found In Raid");
|
||||
data.Add(StringKey.MENU_ITEMS_INVEDITOR_DUPE_TITLE, "Item Dupe");
|
||||
data.Add(StringKey.MENU_ITEMS_INVEDITOR_DUPE_BUTTON_SETSTACK, "Dupe Stack x");
|
||||
data.Add(StringKey.MENU_ITEMS_INVEDITOR_DUPE_BUTTON_RESETSTACK, "Reset Stack To 1");
|
||||
data.Add(StringKey.MENU_ITEMS_INVEDITOR_DUPE_BUTTON_SETSTACK_FASTRUBLE, "Fast Stack 400k(RUB)");
|
||||
data.Add(StringKey.MENU_ITEMS_INVEDITOR_DUPE_BUTTON_SETSTACK_FASTEUROUSD, "Fast Stack 50k(EUR,USD)");
|
||||
|
||||
// Exfiltration Points
|
||||
data.Add(StringKey.DATA_EP_ACTIVE, "Active");
|
||||
data.Add(StringKey.DATA_EP_TIMER, "Timer");
|
||||
data.Add(StringKey.DATA_EP_CLOSED, "Closed");
|
||||
data.Add(StringKey.DATA_EP_PENDING, "Pending");
|
||||
data.Add(StringKey.DATA_EP_OPEN, "Open");
|
||||
data.Add(StringKey.DATA_EP_REQUIREMENT, "Requirement");
|
||||
|
||||
// Bot Types
|
||||
data.Add(StringKey.DATA_PLAYERTYPE_BOT, "BOT");
|
||||
data.Add(StringKey.DATA_PLAYERTYPE_GUARD, "GUARD");
|
||||
data.Add(StringKey.DATA_PLAYERTYPE_BEAR, "PMC BEAR");
|
||||
data.Add(StringKey.DATA_PLAYERTYPE_USEC, "PMC USEC");
|
||||
data.Add(StringKey.DATA_PLAYERTYPE_PMC, "PMC");
|
||||
data.Add(StringKey.DATA_PLAYERTYPE_BOSS, "BOSS");
|
||||
}
|
||||
|
||||
public LocalisationData(Locale locale) {
|
||||
this.locale = locale;
|
||||
switch (locale) {
|
||||
case Locale.CHINESE:
|
||||
zh_CN();
|
||||
break;
|
||||
case Locale.ENGLISH:
|
||||
en_US();
|
||||
break;
|
||||
default:
|
||||
en_US();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public string GetByKey(StringKey key) {
|
||||
string o;
|
||||
if (data.TryGetValue(key, out o)) return o;
|
||||
return $"{key}";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,125 +0,0 @@
|
|||
using EFT;
|
||||
using EscapeFromTarkovCheat;
|
||||
using EscapeFromTarkovCheat.Feauters.ESP;
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EscapeFromTarkovCheat.Data
|
||||
{
|
||||
public enum StringKey
|
||||
{
|
||||
MAIN_TITLE,
|
||||
MENU_PLAYER_VISUAL_TITLE,
|
||||
MENU_MISC_VISUAL_TITLE,
|
||||
MENU_AIMBOT_TITLE,
|
||||
MENU_MISCELLANEOUS_TITLE,
|
||||
MENU_SKILLS_TITLE,
|
||||
MENU_ITEMS_TITLE,
|
||||
MENU_MAIN_DESC_TOGGLE,
|
||||
MENU_MAIN_HINT_UNLOCK,
|
||||
MENU_MAIN_HINT_HEAL,
|
||||
MENU_MAIN_BUTTON_PLAYER_VISUAL,
|
||||
MENU_MAIN_BUTTON_MISC_VISUAL,
|
||||
MENU_MAIN_BUTTON_AIMBOT,
|
||||
MENU_MAIN_BUTTON_MISCELLANEOUS,
|
||||
MENU_MAIN_BUTTON_SKILLS,
|
||||
MENU_MAIN_BUTTON_ITEMS,
|
||||
MENU_PLAYER_VISUAL_DRAWPLAYERS,
|
||||
MENU_PLAYER_VISUAL_DRAWPLAYER_BOX,
|
||||
MENU_PLAYER_VISUAL_DRAWPLAYER_NAME,
|
||||
MENU_PLAYER_VISUAL_DRAWPLAYER_LINE,
|
||||
MENU_PLAYER_VISUAL_DRAWPLAYER_HEALTH,
|
||||
MENU_PLAYER_VISUAL_DRAWPLAYER_SKELETON,
|
||||
MENU_PLAYER_VISUAL_DRAWPLAYER_RANGE,
|
||||
MENU_MISC_VISUAL_DRAWLOOTITEMS,
|
||||
MENU_MISC_VISUAL_LOOTITEMRANGE,
|
||||
MENU_MISC_VISUAL_DRAWCONTAINERS,
|
||||
MENU_MISC_VISUAL_CONTAINERRANGE,
|
||||
MENU_MISC_VISUAL_DRAWEP,
|
||||
MENU_AIMBOT_TOGGLE,
|
||||
MENU_AIMBOT_SMOOTH,
|
||||
MENU_AIMBOT_DRAWFOV,
|
||||
MENU_AIMBOT_FOVRANGE,
|
||||
MENU_AIMBOT_AIMINGRANGE,
|
||||
MENU_AIMBOT_VISIBLEONLY,
|
||||
MENU_AIMBOT_SILENT,
|
||||
MENU_AIMBOT_NORECOIL,
|
||||
MENU_MISCELLANEOUS_GODMODE,
|
||||
MENU_MISCELLANEOUS_STAMINA,
|
||||
MENU_MISCELLANEOUS_SPEEDHACK,
|
||||
MENU_MISCELLANEOUS_SPEEDHACK_ADDITION,
|
||||
MENU_MISCELLANEOUS_BUTTON_HEAL,
|
||||
MENU_MISCELLANEOUS_BUTTON_UNLOCK,
|
||||
MENU_MISCELLANEOUS_BUTTON_KILL,
|
||||
MENU_MISCELLANEOUS_BUTTON_TRADERSTANDING,
|
||||
MENU_MISCELLANEOUS_BUTTON_TPENEMIES,
|
||||
MENU_MISCELLANEOUS_BUTTON_ADDXP,
|
||||
MENU_MISCELLANEOUS_XPINRAID,
|
||||
MENU_MISCELLANEOUS_XPADDITION,
|
||||
MENU_ITEMS_BUTTON_TPLOOTS,
|
||||
MENU_ITEMS_BUTTON_AIRDROP,
|
||||
MENU_ITEMS_INVEDITOR_TITLE,
|
||||
MENU_ITEMS_INVEDITOR_SEARCH,
|
||||
MENU_ITEMS_INVEDITOR_GET,
|
||||
MENU_ITEMS_INVEDITOR_STRINGS,
|
||||
MENU_ITEMS_INVEDITOR_CHANGES,
|
||||
MENU_ITEMS_INVEDITOR_BUTTON_COMMIT,
|
||||
MENU_ITEMS_INVEDITOR_BUTTON_SETFIR,
|
||||
MENU_ITEMS_INVEDITOR_DUPE_TITLE,
|
||||
MENU_ITEMS_INVEDITOR_DUPE_BUTTON_SETSTACK,
|
||||
MENU_ITEMS_INVEDITOR_DUPE_BUTTON_RESETSTACK,
|
||||
MENU_ITEMS_INVEDITOR_DUPE_BUTTON_SETSTACK_FASTRUBLE,
|
||||
MENU_ITEMS_INVEDITOR_DUPE_BUTTON_SETSTACK_FASTEUROUSD,
|
||||
|
||||
// Skills Menu
|
||||
MENU_SKILLS_BUTTON_MAXALL,
|
||||
MENU_SKILLS_HINT_INRAID,
|
||||
MENU_SKILLS_STRENGTH,
|
||||
MENU_SKILLS_STRESSRESIST,
|
||||
MENU_SKILLS_MAGDRILLS,
|
||||
MENU_SKILLS_MELEE,
|
||||
MENU_SKILLS_HIDEOUT,
|
||||
MENU_SKILLS_CRAFTING,
|
||||
MENU_SKILLS_HEAVYVESTS,
|
||||
MENU_SKILLS_LIGHTVESTS,
|
||||
MENU_SKILLS_LMG,
|
||||
MENU_SKILLS_ASSAULT,
|
||||
MENU_SKILLS_PISTOL,
|
||||
MENU_SKILLS_PERCEPTION,
|
||||
MENU_SKILLS_SNIPER,
|
||||
MENU_SKILLS_SNIPING,
|
||||
MENU_SKILLS_ENDURANCE,
|
||||
MENU_SKILLS_THROWING,
|
||||
MENU_SKILLS_CHARISMA,
|
||||
MENU_SKILLS_HEALTH,
|
||||
MENU_SKILLS_VITALITY,
|
||||
MENU_SKILLS_METABOLISM,
|
||||
MENU_SKILLS_IMMUNITY,
|
||||
MENU_SKILLS_SURGERY,
|
||||
MENU_SKILLS_INTELLECT,
|
||||
MENU_SKILLS_ATTENTION,
|
||||
MENU_SKILLS_REVOLVER,
|
||||
MENU_SKILLS_SHOTGUN,
|
||||
MENU_SKILLS_HMG,
|
||||
MENU_SKILLS_DMR,
|
||||
MENU_SKILLS_AIMDRILLS,
|
||||
MENU_SKILLS_SEARCH,
|
||||
MENU_SKILLS_WEAPONTREATMENT,
|
||||
MENU_SKILLS_TROUBLESHOOTING,
|
||||
MENU_SKILLS_COVERTMOVEMENT,
|
||||
MENU_SKILLS_SMG,
|
||||
|
||||
DATA_EP_ACTIVE,
|
||||
DATA_EP_TIMER,
|
||||
DATA_EP_CLOSED,
|
||||
DATA_EP_PENDING,
|
||||
DATA_EP_OPEN,
|
||||
DATA_EP_REQUIREMENT,
|
||||
DATA_PLAYERTYPE_BOT,
|
||||
DATA_PLAYERTYPE_GUARD,
|
||||
DATA_PLAYERTYPE_BEAR,
|
||||
DATA_PLAYERTYPE_USEC,
|
||||
DATA_PLAYERTYPE_PMC,
|
||||
DATA_PLAYERTYPE_BOSS
|
||||
}
|
||||
}
|
||||
|
|
@ -1,138 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{C1C426A1-EFC3-4C83-972C-ECA557571328}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>EscapeFromTarkovCheat</RootNamespace>
|
||||
<AssemblyName>EscapeFromTarkovCheat</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<LangVersion>8.0</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>bin\x64\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<LangVersion>8.0</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Assembly-CSharp">
|
||||
<HintPath>..\Managed\Assembly-CSharp.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Assembly-CSharp-firstpass">
|
||||
<HintPath>..\Managed\Assembly-CSharp-firstpass.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cinemachine">
|
||||
<HintPath>..\Managed\Cinemachine.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Comfort, Version=1.0.0.4, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\Managed\Comfort.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Comfort.Unity">
|
||||
<HintPath>..\Managed\Comfort.Unity.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="UnityEngine">
|
||||
<HintPath>..\Managed\UnityEngine.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="UnityEngine.CoreModule">
|
||||
<HintPath>..\Managed\UnityEngine.CoreModule.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="UnityEngine.DirectorModule">
|
||||
<HintPath>..\Managed\UnityEngine.DirectorModule.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="UnityEngine.IMGUIModule">
|
||||
<HintPath>..\Managed\UnityEngine.IMGUIModule.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="UnityEngine.InputLegacyModule">
|
||||
<HintPath>..\Managed\UnityEngine.InputLegacyModule.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="UnityEngine.InputModule">
|
||||
<HintPath>..\Managed\UnityEngine.InputModule.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="UnityEngine.PhysicsModule, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\Managed\UnityEngine.PhysicsModule.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="UnityEngine.UI">
|
||||
<HintPath>..\Managed\UnityEngine.UI.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="UnityEngine.UIModule">
|
||||
<HintPath>..\Managed\UnityEngine.UIModule.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Data\GameExfiltrationPoint.cs" />
|
||||
<Compile Include="Data\GameLootContainer.cs" />
|
||||
<Compile Include="Data\GameLootItem.cs" />
|
||||
<Compile Include="Data\GamePlayer.cs" />
|
||||
<Compile Include="Data\Locale.cs" />
|
||||
<Compile Include="Data\LocalisationData.cs" />
|
||||
<Compile Include="Data\StringKey.cs" />
|
||||
<Compile Include="Features\ExperienceManager.cs" />
|
||||
<Compile Include="Features\ItemFeatures.cs" />
|
||||
<Compile Include="Features\Skills.cs" />
|
||||
<Compile Include="Features\SpeedHack.cs" />
|
||||
<Compile Include="LocalisationManager.cs" />
|
||||
<Compile Include="Features\Aimbot.cs" />
|
||||
<Compile Include="Features\ESP\PlayerSkeletons.cs" />
|
||||
<Compile Include="Main.cs" />
|
||||
<Compile Include="Features\ESP\ExfiltrationPointsESP.cs" />
|
||||
<Compile Include="Features\ESP\ItemESP.cs" />
|
||||
<Compile Include="Loader.cs" />
|
||||
<Compile Include="Features\ESP\LootableContainerESP.cs" />
|
||||
<Compile Include="Features\ESP\PlayerESP.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="UI\Menu.cs" />
|
||||
<Compile Include="Utils\AllocConsoleHandler.cs" />
|
||||
<Compile Include="Utils\BoneType.cs" />
|
||||
<Compile Include="Utils\GameUtils.cs" />
|
||||
<Compile Include="Utils\Render.cs" />
|
||||
<Compile Include="Utils\Settings.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
|
|
@ -1,121 +0,0 @@
|
|||
using System;
|
||||
using EFT;
|
||||
using EFT.InventoryLogic;
|
||||
using EscapeFromTarkovCheat.Data;
|
||||
using EscapeFromTarkovCheat.Utils;
|
||||
using UnityEngine;
|
||||
using static Systems.Effects.Effects;
|
||||
|
||||
namespace EscapeFromTarkovCheat.Feauters
|
||||
{
|
||||
class Aimbot : MonoBehaviour
|
||||
{
|
||||
public void Update()
|
||||
{
|
||||
if (Settings.NoRecoil)
|
||||
NoRecoil();
|
||||
if (Main.GameWorld != null && Settings.Aimbot && Input.GetKey(Settings.AimbotKey))
|
||||
this.Aim();
|
||||
}
|
||||
|
||||
private void Aim()
|
||||
{
|
||||
Vector3 target = Vector3.zero;
|
||||
float distanceOfTarget = 9999f;
|
||||
foreach (GamePlayer gamePlayer in Main.GamePlayers)
|
||||
{
|
||||
if (gamePlayer == null)
|
||||
// 未开局 : Not loaded
|
||||
continue;
|
||||
if (Main.LocalPlayer.HandsController == null)
|
||||
// 卡手 : Invalid hand
|
||||
continue;
|
||||
Weapon weapon = Main.LocalPlayer.HandsController.Item as Weapon;
|
||||
if (weapon == null)
|
||||
// 无武器 : No weapon
|
||||
continue;
|
||||
AmmoTemplate currentAmmoTemplate = weapon.CurrentAmmoTemplate;
|
||||
if (currentAmmoTemplate == null)
|
||||
// 无弹药 : Out of ammo
|
||||
continue;
|
||||
Vector3 destination = GameUtils.GetBonePosByEID(gamePlayer.Player, BoneType.HumanHead);
|
||||
float distance = Vector3.Distance(Main.MainCamera.transform.position, gamePlayer.Player.Transform.position);
|
||||
if (distance > Settings.AimbotRange)
|
||||
// 大于瞄准范围 : Too far
|
||||
continue;
|
||||
if (destination == Vector3.zero)
|
||||
// 无法找到头部 : Head not found
|
||||
continue;
|
||||
if (Aimbot.CalculateInFov(destination) > Settings.AimbotFOV)
|
||||
// 不在瞄准圈内 : Not in fov
|
||||
continue;
|
||||
if (Settings.VisibleOnly && !GameUtils.IsPlayerVisible(gamePlayer.Player))
|
||||
// 开启仅瞄准可见时不可见 : Not visible while Visible Only is toggled on
|
||||
continue;
|
||||
|
||||
if (distanceOfTarget > distance) // 寻找最近 : Aim at the nearest
|
||||
{
|
||||
distanceOfTarget = distance;
|
||||
float timeToHit = distance / currentAmmoTemplate.InitialSpeed; // 子弹飞行时间 : Time to hit the target
|
||||
destination.x += gamePlayer.Player.Velocity.x * timeToHit; // 速度时间预判,下同 : Add some drifts to the target for hitting moving targets
|
||||
destination.y += gamePlayer.Player.Velocity.y * timeToHit;
|
||||
target = destination; // 建立瞄准点 : Construct the final aiming point
|
||||
}
|
||||
}
|
||||
if (target != Vector3.zero)
|
||||
{
|
||||
Aimbot.AimAtPos(target);
|
||||
}
|
||||
}
|
||||
private void NoRecoil()
|
||||
{
|
||||
if (Main.LocalPlayer == null)
|
||||
return;
|
||||
if (Main.LocalPlayer.ProceduralWeaponAnimation == null)
|
||||
return;
|
||||
var effect = Main.LocalPlayer.ProceduralWeaponAnimation.Shootingg?.CurrentRecoilEffect;
|
||||
if (effect == null)
|
||||
return;
|
||||
effect.CameraRotationRecoilEffect.Intensity = 0f;
|
||||
effect.HandPositionRecoilEffect.Intensity = 0f;
|
||||
effect.HandRotationRecoilEffect.Intensity = 0f;
|
||||
}
|
||||
|
||||
public void OnGUI()
|
||||
{
|
||||
if (Settings.AimbotDrawFOV)
|
||||
{
|
||||
Render.DrawCircle(new Vector2((float)Screen.width / 2f, (float)Screen.height / 2f), Screen.width * Settings.AimbotFOV / 75, 64, Color.red, true, 1);
|
||||
}
|
||||
}
|
||||
|
||||
public static float CalculateInFov(Vector3 position1)
|
||||
{
|
||||
Vector3 position2 = Main.MainCamera.transform.position;
|
||||
Vector3 forward = Main.MainCamera.transform.forward;
|
||||
Vector3 normalized = (position1 - position2).normalized;
|
||||
return Mathf.Acos(Mathf.Clamp(Vector3.Dot(forward, normalized), -1f, 1f)) * 57.29578f;
|
||||
}
|
||||
|
||||
public static void AimAtPos(Vector3 position)
|
||||
{
|
||||
if (Settings.SilentAim)
|
||||
{
|
||||
Main.LocalPlayer.ProceduralWeaponAnimation.ShotNeedsFovAdjustments = false;
|
||||
Vector3 normalizedPosition = (position - Main.LocalPlayer.Fireport.position).normalized;
|
||||
Vector3 shotDirection = Main.LocalPlayer.Fireport.InverseTransformVector(normalizedPosition);
|
||||
Main.LocalPlayer.ProceduralWeaponAnimation._shotDirection = shotDirection;
|
||||
}
|
||||
else
|
||||
{
|
||||
Vector3 b = Main.LocalPlayer.Fireport.position - Main.LocalPlayer.Fireport.up * 1f;
|
||||
Vector3 eulerAngles = Quaternion.LookRotation((position - b).normalized).eulerAngles;
|
||||
if (eulerAngles.x > 180f)
|
||||
{
|
||||
eulerAngles.x -= 360f;
|
||||
}
|
||||
Main.LocalPlayer.MovementContext.Rotation = new Vector2(eulerAngles.y, eulerAngles.x);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,100 +0,0 @@
|
|||
using System.Collections.Generic;
|
||||
using Comfort.Common;
|
||||
using EFT;
|
||||
using EFT.Interactive;
|
||||
using EscapeFromTarkovCheat.Data;
|
||||
using EscapeFromTarkovCheat.Utils;
|
||||
using JsonType;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EscapeFromTarkovCheat.Feauters.ESP
|
||||
{
|
||||
public class ExfiltrationPointsESP : MonoBehaviour
|
||||
{
|
||||
private List<GameExfiltrationPoint> _gameExfiltrationPoints= new List<GameExfiltrationPoint>();
|
||||
private static readonly float CacheExfiltrationPointInterval = 5f;
|
||||
private float _nextLootItemCacheTime;
|
||||
|
||||
private static readonly Color ExfiltrationPointColour = Color.green;
|
||||
private static readonly Color ClosedExfiltrationPointColour = Color.yellow;
|
||||
|
||||
public void Update()
|
||||
{
|
||||
if (!Settings.DrawExfiltrationPoints)
|
||||
return;
|
||||
|
||||
if (Time.time >= _nextLootItemCacheTime)
|
||||
{
|
||||
if ((Main.GameWorld != null) && (Main.GameWorld.ExfiltrationController.ExfiltrationPoints != null))
|
||||
{
|
||||
_gameExfiltrationPoints.Clear();
|
||||
foreach (var exfiltrationPoint in Main.GameWorld.ExfiltrationController.EligiblePoints(Main.LocalPlayer.Profile))
|
||||
{
|
||||
if (!GameUtils.IsExfiltrationPointValid(exfiltrationPoint))
|
||||
continue;
|
||||
|
||||
_gameExfiltrationPoints.Add(new GameExfiltrationPoint(exfiltrationPoint, true));
|
||||
}
|
||||
|
||||
foreach (var exfiltrationPoint in Main.GameWorld.ExfiltrationController.ExfiltrationPoints)
|
||||
{
|
||||
bool trig = false;
|
||||
if (!GameUtils.IsExfiltrationPointValid(exfiltrationPoint))
|
||||
continue;
|
||||
foreach (var ep in _gameExfiltrationPoints)
|
||||
{
|
||||
if (ep.Name == exfiltrationPoint.Settings.Name.Localized())
|
||||
trig = !trig;
|
||||
continue;
|
||||
}
|
||||
if (trig)
|
||||
continue;
|
||||
_gameExfiltrationPoints.Add(new GameExfiltrationPoint(exfiltrationPoint, false));
|
||||
}
|
||||
|
||||
_nextLootItemCacheTime = (Time.time + CacheExfiltrationPointInterval);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (GameExfiltrationPoint gameExfiltrationPoint in _gameExfiltrationPoints)
|
||||
gameExfiltrationPoint.RecalculateDynamics();
|
||||
|
||||
}
|
||||
private static string GetName(ExfiltrationPoint point, bool isEligible)
|
||||
{
|
||||
var localizedName = point.Settings.Name.Localized();
|
||||
return !isEligible ? localizedName : $"{localizedName} ({GetStatus(point.Status)})";
|
||||
}
|
||||
|
||||
public static string GetStatus(EExfiltrationStatus status)
|
||||
{
|
||||
return status switch
|
||||
{
|
||||
EExfiltrationStatus.AwaitsManualActivation => LocalisationManager.GetString(Settings.Language, StringKey.DATA_EP_ACTIVE),
|
||||
EExfiltrationStatus.Countdown => LocalisationManager.GetString(Settings.Language, StringKey.DATA_EP_TIMER),
|
||||
EExfiltrationStatus.NotPresent => LocalisationManager.GetString(Settings.Language, StringKey.DATA_EP_CLOSED),
|
||||
EExfiltrationStatus.Pending => LocalisationManager.GetString(Settings.Language, StringKey.DATA_EP_PENDING),
|
||||
EExfiltrationStatus.RegularMode => LocalisationManager.GetString(Settings.Language, StringKey.DATA_EP_OPEN),
|
||||
EExfiltrationStatus.UncompleteRequirements => LocalisationManager.GetString(Settings.Language, StringKey.DATA_EP_REQUIREMENT),
|
||||
_ => string.Empty
|
||||
};
|
||||
}
|
||||
|
||||
private void OnGUI()
|
||||
{
|
||||
if (Settings.DrawExfiltrationPoints)
|
||||
{
|
||||
foreach (var exfiltrationPoint in _gameExfiltrationPoints)
|
||||
{
|
||||
if (!GameUtils.IsExfiltrationPointValid(exfiltrationPoint.ExfiltrationPoint) || !exfiltrationPoint.IsOnScreen)
|
||||
continue;
|
||||
|
||||
string exfiltrationPointText = $"{GetName(exfiltrationPoint.ExfiltrationPoint, exfiltrationPoint.Eligible)} [{exfiltrationPoint.FormattedDistance}]";
|
||||
|
||||
Render.DrawString(new Vector2(exfiltrationPoint.ScreenPosition.x - 50f, exfiltrationPoint.ScreenPosition.y), exfiltrationPointText, exfiltrationPoint.Eligible ? ExfiltrationPointColour : ClosedExfiltrationPointColour);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -1,81 +0,0 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using Comfort.Common;
|
||||
using EFT;
|
||||
using EFT.Interactive;
|
||||
using EscapeFromTarkovCheat.Data;
|
||||
using EscapeFromTarkovCheat.Utils;
|
||||
using JsonType;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EscapeFromTarkovCheat.Feauters.ESP
|
||||
{
|
||||
public class ItemESP : MonoBehaviour
|
||||
{
|
||||
private static readonly float CacheLootItemsInterval = 4f;
|
||||
private float _nextLootItemCacheTime;
|
||||
|
||||
//private static readonly Color SpecialColor = new Color(1f, 0.2f, 0.09f);
|
||||
private static readonly Color QuestColor = Color.yellow;
|
||||
private static readonly Color CommonColor = Color.white;
|
||||
private static readonly Color RareColor = new Color(0.38f, 0.43f, 1f);
|
||||
private static readonly Color SuperRareColor = new Color(1f, 0.29f, 0.36f);
|
||||
|
||||
private List<GameLootItem> _gameLootItems = new List<GameLootItem>();
|
||||
private Stopwatch _stopwatch = new Stopwatch();
|
||||
public void Update()
|
||||
{
|
||||
if (!Settings.DrawLootItems)
|
||||
return;
|
||||
|
||||
if (Time.time >= _nextLootItemCacheTime)
|
||||
{
|
||||
if ((Main.GameWorld != null) && (Main.GameWorld.LootItems != null))
|
||||
{
|
||||
_gameLootItems.Clear();
|
||||
|
||||
for (int i = 0; i < Main.GameWorld.LootItems.Count; i++)
|
||||
{
|
||||
LootItem lootItem = Main.GameWorld.LootItems.GetByIndex(i);
|
||||
|
||||
if (!GameUtils.IsLootItemValid(lootItem) || (Vector3.Distance(Main.MainCamera.transform.position, lootItem.transform.position) > Settings.DrawLootItemsDistance))
|
||||
continue;
|
||||
|
||||
_gameLootItems.Add(new GameLootItem(lootItem));
|
||||
}
|
||||
|
||||
_nextLootItemCacheTime = (Time.time + CacheLootItemsInterval);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (GameLootItem gameLootItem in _gameLootItems)
|
||||
gameLootItem.RecalculateDynamics();
|
||||
|
||||
}
|
||||
|
||||
private void OnGUI()
|
||||
{
|
||||
if (Settings.DrawLootItems)
|
||||
{
|
||||
foreach (var gameLootItem in _gameLootItems)
|
||||
{
|
||||
if (!GameUtils.IsLootItemValid(gameLootItem.LootItem) || !gameLootItem.IsOnScreen || gameLootItem.Distance > Settings.DrawLootItemsDistance)
|
||||
continue;
|
||||
|
||||
string lootItemName = $"{gameLootItem.LootItem.Item.ShortName.Localized()} [{gameLootItem.FormattedDistance}]";
|
||||
|
||||
if (gameLootItem.LootItem.Item.Template.Rarity == ELootRarity.Common)
|
||||
Render.DrawString(new Vector2(gameLootItem.ScreenPosition.x - 50f, gameLootItem.ScreenPosition.y), lootItemName, CommonColor);
|
||||
if (gameLootItem.LootItem.Item.Template.Rarity == ELootRarity.Rare)
|
||||
Render.DrawString(new Vector2(gameLootItem.ScreenPosition.x - 50f, gameLootItem.ScreenPosition.y), lootItemName, RareColor);
|
||||
if (gameLootItem.LootItem.Item.Template.Rarity == ELootRarity.Superrare)
|
||||
Render.DrawString(new Vector2(gameLootItem.ScreenPosition.x - 50f, gameLootItem.ScreenPosition.y), lootItemName, SuperRareColor);
|
||||
if (gameLootItem.LootItem.Item.Template.QuestItem)
|
||||
Render.DrawString(new Vector2(gameLootItem.ScreenPosition.x - 50f, gameLootItem.ScreenPosition.y), lootItemName, QuestColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection;
|
||||
using Comfort.Common;
|
||||
using EFT;
|
||||
using EFT.Interactive;
|
||||
using EscapeFromTarkovCheat.Data;
|
||||
using EscapeFromTarkovCheat.Utils;
|
||||
using JsonType;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EscapeFromTarkovCheat.Feauters.ESP
|
||||
{
|
||||
public class LootableContainerESP : MonoBehaviour
|
||||
{
|
||||
private static readonly float CacheLootItemsInterval = 100;
|
||||
private float _nextLootContainerCacheTime;
|
||||
private List<GameLootContainer> _gameLootContainers;
|
||||
private static readonly Color LootableContainerColor = new Color(1f, 0.2f, 0.09f);
|
||||
|
||||
public void Start()
|
||||
{
|
||||
_gameLootContainers = new List<GameLootContainer>();
|
||||
}
|
||||
|
||||
public void Update()
|
||||
{
|
||||
if (!Settings.DrawLootableContainers)
|
||||
return;
|
||||
|
||||
if (Time.time >= _nextLootContainerCacheTime)
|
||||
{
|
||||
if ((Main.GameWorld != null) && (Main.GameWorld.LootItems != null))
|
||||
{
|
||||
_gameLootContainers.Clear();
|
||||
|
||||
foreach (LootableContainer lootableContainer in FindObjectsOfType<LootableContainer>())
|
||||
{
|
||||
if (!GameUtils.IsLootableContainerValid(lootableContainer) || (Vector3.Distance(Main.MainCamera.transform.position, lootableContainer.transform.position) > Settings.DrawLootableContainersDistance))
|
||||
continue;
|
||||
|
||||
_gameLootContainers.Add(new GameLootContainer(lootableContainer));
|
||||
}
|
||||
_nextLootContainerCacheTime = (Time.time + CacheLootItemsInterval);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (GameLootContainer gameLootContainer in _gameLootContainers)
|
||||
gameLootContainer.RecalculateDynamics();
|
||||
}
|
||||
|
||||
public void OnGUI()
|
||||
{
|
||||
if (!Settings.DrawLootableContainers)
|
||||
return;
|
||||
|
||||
foreach (var gameLootContainer in _gameLootContainers)
|
||||
{
|
||||
if (!GameUtils.IsLootableContainerValid(gameLootContainer.LootableContainer) || !gameLootContainer.IsOnScreen || gameLootContainer.Distance > Settings.DrawLootableContainersDistance)
|
||||
continue;
|
||||
|
||||
//EFT.InventoryLogic.Item rootItem = gameLootContainer.LootableContainer.ItemOwner.RootItem;
|
||||
//rootItem.Template.Name.Localized();
|
||||
|
||||
string lootItemName = $"{gameLootContainer.LootableContainer.name} [{gameLootContainer.FormattedDistance}]";
|
||||
Render.DrawString(new Vector2(gameLootContainer.ScreenPosition.x - 50f, gameLootContainer.ScreenPosition.y), lootItemName, LootableContainerColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,191 +0,0 @@
|
|||
using EFT;
|
||||
using EscapeFromTarkovCheat.Data;
|
||||
using EscapeFromTarkovCheat.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EscapeFromTarkovCheat.Feauters.ESP
|
||||
{
|
||||
public class PlayerESP : MonoBehaviour
|
||||
{
|
||||
private static readonly Color _playerColor = Color.cyan;
|
||||
private static readonly Color _botColor = Color.yellow;
|
||||
private static readonly Color _healthColor = Color.green;
|
||||
private static readonly Color _bossColor = Color.red;
|
||||
private static readonly Color _cultistLeader = Color.red;
|
||||
private static readonly Color _cultistGuard = Color.red;
|
||||
private static readonly Color _guardColor = Color.red;
|
||||
private static readonly Color _skeletonColor = Color.cyan;
|
||||
|
||||
private static readonly HashSet<string> BossNames = new HashSet<string>
|
||||
{
|
||||
"Killa",
|
||||
"Reshala",
|
||||
"Sanitar",
|
||||
"Glukhar",
|
||||
"Shturman",
|
||||
"Tagilla",
|
||||
"Knight",
|
||||
"BirdEye",
|
||||
"Zryachiy",
|
||||
"Big Pipe",
|
||||
"Kaban"
|
||||
};
|
||||
|
||||
// Token: 0x0200001D RID: 29
|
||||
public enum PlayerType
|
||||
{
|
||||
SCAV,
|
||||
PLAYERSCAV,
|
||||
PLAYER,
|
||||
TEAMMATE,
|
||||
FOLLOWER,
|
||||
BOSS
|
||||
}
|
||||
public static bool IsBossByName(string playerName)
|
||||
{
|
||||
return PlayerESP.BossNames.Contains(playerName);
|
||||
}
|
||||
public static string PlayerName(Player player, ref PlayerESP.PlayerType playerType)
|
||||
{
|
||||
if (player.Profile.Info.RegistrationDate > 0)
|
||||
{
|
||||
if (player.Profile.Info.Side == EPlayerSide.Savage)
|
||||
{
|
||||
playerType = PlayerESP.PlayerType.PLAYERSCAV;
|
||||
return "player";
|
||||
}
|
||||
playerType = PlayerESP.PlayerType.PLAYER;
|
||||
return player.Profile.Info.Side.ToString() + " [" + player.Profile.Info.Level.ToString() + "]";
|
||||
}
|
||||
|
||||
if (player.Profile.Info.Settings.Role.ToString().IndexOf("boss") != -1)
|
||||
{
|
||||
playerType = PlayerESP.PlayerType.BOSS;
|
||||
return "BOSS";
|
||||
}
|
||||
|
||||
if (player.Profile.Info.Settings.Role.ToString().IndexOf("follower") != -1)
|
||||
{
|
||||
playerType = PlayerESP.PlayerType.FOLLOWER;
|
||||
return "Follower";
|
||||
}
|
||||
|
||||
if (player.Profile.Info.Settings.Role.ToString().ToLower().IndexOf("pmcbot") != -1)
|
||||
{
|
||||
playerType = PlayerESP.PlayerType.SCAV;
|
||||
return "Raider";
|
||||
}
|
||||
|
||||
playerType = PlayerESP.PlayerType.SCAV;
|
||||
return "";
|
||||
}
|
||||
|
||||
private void DrawPlayerName(GamePlayer gamePlayer, ref Color color)
|
||||
{
|
||||
string text = "";
|
||||
WildSpawnType role = gamePlayer.Player.Profile.Info.Settings.Role;
|
||||
|
||||
if (gamePlayer.IsAI)
|
||||
{
|
||||
text = $"{LocalisationManager.GetString(Settings.Language, StringKey.DATA_PLAYERTYPE_BOT)} [{gamePlayer.FormattedDistance}]";
|
||||
color = PlayerESP._botColor;
|
||||
}
|
||||
else
|
||||
{
|
||||
text = $"{gamePlayer.Player.Profile.Info.Nickname} [{gamePlayer.FormattedDistance}]";
|
||||
color = PlayerESP._playerColor;
|
||||
}
|
||||
|
||||
if (gamePlayer.Player.Profile.Info.Settings.IsFollower())
|
||||
{
|
||||
text = $"{LocalisationManager.GetString(Settings.Language, StringKey.DATA_PLAYERTYPE_GUARD)}-{gamePlayer.Player.Profile.Info.Nickname} [{gamePlayer.FormattedDistance}]";
|
||||
color = PlayerESP._guardColor;
|
||||
}
|
||||
|
||||
if (gamePlayer.Player.Profile.Info.Settings.IsBoss())
|
||||
{
|
||||
switch (role)
|
||||
{
|
||||
case WildSpawnType.sectantPriest:
|
||||
text = $"{gamePlayer.Player.Profile.Info.Nickname} [{gamePlayer.FormattedDistance}]";
|
||||
color = PlayerESP._cultistLeader;
|
||||
break;
|
||||
case WildSpawnType.sectantWarrior:
|
||||
text = $"{gamePlayer.Player.Profile.Info.Nickname} [{gamePlayer.FormattedDistance}]";
|
||||
color = PlayerESP._cultistGuard;
|
||||
break;
|
||||
case WildSpawnType.pmcBEAR:
|
||||
text = $"{LocalisationManager.GetString(Settings.Language, StringKey.DATA_PLAYERTYPE_BEAR)} [{gamePlayer.FormattedDistance}]";
|
||||
color = PlayerESP._playerColor;
|
||||
break;
|
||||
case WildSpawnType.pmcUSEC:
|
||||
text = $"{LocalisationManager.GetString(Settings.Language, StringKey.DATA_PLAYERTYPE_USEC)} [{gamePlayer.FormattedDistance}]";
|
||||
color = PlayerESP._playerColor;
|
||||
break;
|
||||
case WildSpawnType.pmcBot:
|
||||
text = $"{LocalisationManager.GetString(Settings.Language, StringKey.DATA_PLAYERTYPE_PMC)} [{gamePlayer.FormattedDistance}]";
|
||||
color = PlayerESP._playerColor;
|
||||
break;
|
||||
default:
|
||||
text = $"{LocalisationManager.GetString(Settings.Language, StringKey.DATA_PLAYERTYPE_BOSS)}-{gamePlayer.Player.Profile.Info.Nickname} [{gamePlayer.FormattedDistance}]";
|
||||
color = PlayerESP._bossColor;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Vector2 vector = GUI.skin.GetStyle(text).CalcSize(new GUIContent(text));
|
||||
Render.DrawString(new Vector2(gamePlayer.ScreenPosition.x - vector.x / 2f, gamePlayer.HeadScreenPosition.y - 20f), text, color, true);
|
||||
}
|
||||
private void DrawPlayerHealth(GamePlayer gamePlayer, float boxPositionY, float boxHeight, float boxWidth)
|
||||
{
|
||||
if (!gamePlayer.Player.HealthController.IsAlive)
|
||||
return;
|
||||
|
||||
float current = gamePlayer.Player.HealthController.GetBodyPartHealth(EBodyPart.Common, false).Current;
|
||||
float maximum = gamePlayer.Player.HealthController.GetBodyPartHealth(EBodyPart.Common, false).Maximum;
|
||||
float healthBarHeight = GameUtils.Map(current, 0f, maximum, 0f, boxHeight);
|
||||
Render.DrawLine(new Vector2(gamePlayer.ScreenPosition.x - boxWidth / 2f - 3f, boxPositionY + boxHeight - healthBarHeight),
|
||||
new Vector2(gamePlayer.ScreenPosition.x - boxWidth / 2f - 3f, boxPositionY + boxHeight), 3f, PlayerESP._healthColor);
|
||||
}
|
||||
public void OnGUI()
|
||||
{
|
||||
if (!Settings.DrawPlayers)
|
||||
return;
|
||||
if (Main.notReady())
|
||||
return;
|
||||
foreach (GamePlayer gamePlayer in Main.GamePlayers)
|
||||
{
|
||||
if (!gamePlayer.IsOnScreen)
|
||||
continue;
|
||||
if (gamePlayer.Distance > Settings.DrawPlayersDistance)
|
||||
continue;
|
||||
if (gamePlayer.Player == Main.LocalPlayer)
|
||||
continue;
|
||||
|
||||
Color color = gamePlayer.IsAI ? PlayerESP._botColor : PlayerESP._playerColor;
|
||||
float boxPositionY = (gamePlayer.HeadScreenPosition.y - 10f);
|
||||
float boxHeight = (Math.Abs(gamePlayer.HeadScreenPosition.y - gamePlayer.ScreenPosition.y) + 10f);
|
||||
float boxWidth = (boxHeight * 0.65f);
|
||||
|
||||
if (Settings.DrawPlayerBox)
|
||||
Render.DrawBox(gamePlayer.ScreenPosition.x - boxWidth / 2f, boxPositionY, boxWidth, boxHeight, color);
|
||||
|
||||
if (Settings.DrawPlayerSkeletons)
|
||||
PlayerSkeletons.DrawSkeleton(new GamePlayer(gamePlayer.Player), _skeletonColor);
|
||||
|
||||
if (Settings.DrawPlayerHealth)
|
||||
DrawPlayerHealth(gamePlayer, boxPositionY, boxHeight, boxWidth);
|
||||
|
||||
if (Settings.DrawPlayerName)
|
||||
DrawPlayerName(gamePlayer, ref color);
|
||||
|
||||
if (Settings.DrawPlayerLine)
|
||||
Render.DrawLine(new Vector2((float)(Screen.width / 2), (float)Screen.height),
|
||||
new Vector2(gamePlayer.ScreenPosition.x, gamePlayer.ScreenPosition.y),
|
||||
1.5f, Color.red);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,82 +0,0 @@
|
|||
using UnityEngine;
|
||||
using EscapeFromTarkovCheat.Data;
|
||||
using EscapeFromTarkovCheat.Utils;
|
||||
|
||||
namespace EscapeFromTarkovCheat.Feauters.ESP
|
||||
{
|
||||
public static class PlayerSkeletons
|
||||
{
|
||||
public static void DrawSkeleton(GamePlayer gamePlayer, Color skeletonColor)
|
||||
{
|
||||
if (GameUtils.IsPlayerValid(gamePlayer.Player))
|
||||
{
|
||||
// 可视检查 : Visible
|
||||
// Color skeletonColor = GameUtils.IsPlayerVisible(gamePlayer.Player) ? Color.green : Color.red;
|
||||
|
||||
// 头胸腹 : head, neck, chest, stomach
|
||||
Vector3 headPos = gamePlayer.GetBonePosition(BoneType.HumanHead);
|
||||
Vector3 neckPos = gamePlayer.GetBonePosition(BoneType.HumanNeck);
|
||||
Vector3 spinePos = gamePlayer.GetBonePosition(BoneType.HumanSpine3);
|
||||
Vector3 pelvisPos = gamePlayer.GetBonePosition(BoneType.HumanPelvis);
|
||||
|
||||
// 左右手臂 : left arm, right arm
|
||||
Vector3 leftShoulderPos = gamePlayer.GetBonePosition(BoneType.HumanLCollarbone);
|
||||
Vector3 leftUpperArmPos = gamePlayer.GetBonePosition(BoneType.HumanLUpperarm);
|
||||
Vector3 leftElbowPos = gamePlayer.GetBonePosition(BoneType.HumanLForearm1);
|
||||
Vector3 leftForearmPos = gamePlayer.GetBonePosition(BoneType.HumanLForearm2);
|
||||
Vector3 leftHandPos = gamePlayer.GetBonePosition(BoneType.HumanLPalm);
|
||||
|
||||
Vector3 rightShoulderPos = gamePlayer.GetBonePosition(BoneType.HumanRCollarbone);
|
||||
Vector3 rightUpperArmPos = gamePlayer.GetBonePosition(BoneType.HumanRUpperarm);
|
||||
Vector3 rightElbowPos = gamePlayer.GetBonePosition(BoneType.HumanRForearm1);
|
||||
Vector3 rightForearmPos = gamePlayer.GetBonePosition(BoneType.HumanRForearm2);
|
||||
Vector3 rightHandPos = gamePlayer.GetBonePosition(BoneType.HumanRPalm);
|
||||
|
||||
// 左右腿足 : left leg, right leg
|
||||
Vector3 leftHipPos = gamePlayer.GetBonePosition(BoneType.HumanLThigh1);
|
||||
Vector3 leftThigh2Pos = gamePlayer.GetBonePosition(BoneType.HumanLThigh2);
|
||||
Vector3 leftKneePos = gamePlayer.GetBonePosition(BoneType.HumanLCalf);
|
||||
Vector3 leftCalfPos = gamePlayer.GetBonePosition(BoneType.HumanLCalf);
|
||||
Vector3 leftFootPos = gamePlayer.GetBonePosition(BoneType.HumanLFoot);
|
||||
|
||||
Vector3 rightHipPos = gamePlayer.GetBonePosition(BoneType.HumanRThigh1);
|
||||
Vector3 rightThigh2Pos = gamePlayer.GetBonePosition(BoneType.HumanRThigh2);
|
||||
Vector3 rightKneePos = gamePlayer.GetBonePosition(BoneType.HumanRCalf);
|
||||
Vector3 rightCalfPos = gamePlayer.GetBonePosition(BoneType.HumanRCalf);
|
||||
Vector3 rightFootPos = gamePlayer.GetBonePosition(BoneType.HumanRFoot);
|
||||
|
||||
// 绘制 : rendering
|
||||
// 头脖胸 : head, neck, chest
|
||||
Render.DrawBoneLine(headPos, neckPos, 1.5f, skeletonColor);
|
||||
Render.DrawBoneLine(neckPos, spinePos, 1.5f, skeletonColor);
|
||||
Render.DrawBoneLine(spinePos, pelvisPos, 1.5f, skeletonColor);
|
||||
|
||||
// 左右手臂 : left arm, right arm
|
||||
Render.DrawBoneLine(neckPos, leftShoulderPos, 1.5f, skeletonColor);
|
||||
Render.DrawBoneLine(leftShoulderPos, leftUpperArmPos, 1.5f, skeletonColor);
|
||||
Render.DrawBoneLine(leftUpperArmPos, leftElbowPos, 1.5f, skeletonColor);
|
||||
Render.DrawBoneLine(leftElbowPos, leftForearmPos, 1.5f, skeletonColor);
|
||||
Render.DrawBoneLine(leftForearmPos, leftHandPos, 1.5f, skeletonColor);
|
||||
|
||||
Render.DrawBoneLine(neckPos, rightShoulderPos, 1.5f, skeletonColor);
|
||||
Render.DrawBoneLine(rightShoulderPos, rightUpperArmPos, 1.5f, skeletonColor);
|
||||
Render.DrawBoneLine(rightUpperArmPos, rightElbowPos, 1.5f, skeletonColor);
|
||||
Render.DrawBoneLine(rightElbowPos, rightForearmPos, 1.5f, skeletonColor);
|
||||
Render.DrawBoneLine(rightForearmPos, rightHandPos, 1.5f, skeletonColor);
|
||||
|
||||
// 左右腿足 : left leg, right leg
|
||||
Render.DrawBoneLine(pelvisPos, leftHipPos, 1.5f, skeletonColor);
|
||||
Render.DrawBoneLine(leftHipPos, leftThigh2Pos, 1.5f, skeletonColor);
|
||||
Render.DrawBoneLine(leftThigh2Pos, leftKneePos, 1.5f, skeletonColor);
|
||||
Render.DrawBoneLine(leftKneePos, leftCalfPos, 1.5f, skeletonColor);
|
||||
Render.DrawBoneLine(leftCalfPos, leftFootPos, 1.5f, skeletonColor);
|
||||
|
||||
Render.DrawBoneLine(pelvisPos, rightHipPos, 1.5f, skeletonColor);
|
||||
Render.DrawBoneLine(rightHipPos, rightThigh2Pos, 1.5f, skeletonColor);
|
||||
Render.DrawBoneLine(rightThigh2Pos, rightKneePos, 1.5f, skeletonColor);
|
||||
Render.DrawBoneLine(rightKneePos, rightCalfPos, 1.5f, skeletonColor);
|
||||
Render.DrawBoneLine(rightCalfPos, rightFootPos, 1.5f, skeletonColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using EFT;
|
||||
using EFT.Counters;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EscapeFromTarkovCheat.Features
|
||||
{
|
||||
public static class ExperienceManager
|
||||
{
|
||||
public static long current = 0;
|
||||
public static void SetExperience(Player player, float experience)
|
||||
{
|
||||
if (player != null && player.Profile != null)
|
||||
{
|
||||
current = Get(player);
|
||||
player.Profile.EftStats.SessionCounters.SetLong((long)experience, CounterTag.Exp);
|
||||
current = (long)experience;
|
||||
Debug.Log(string.Format("Experience set to {0}", experience));
|
||||
}
|
||||
}
|
||||
public static void AddExperience(Player player, float experience)
|
||||
{
|
||||
if (player != null && player.Profile != null)
|
||||
{
|
||||
current = Get(player);
|
||||
SetExperience(player, current + experience);
|
||||
}
|
||||
}
|
||||
public static int Get(Player player)
|
||||
{
|
||||
if (player != null && player.Profile != null)
|
||||
{
|
||||
return player.Profile.EftStats.SessionCounters.GetInt(CounterTag.Exp);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,226 +0,0 @@
|
|||
using EFT;
|
||||
using EFT.InventoryLogic;
|
||||
using EscapeFromTarkovCheat.Utils;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EscapeFromTarkovCheat
|
||||
{
|
||||
// Token: 0x02000006 RID: 6
|
||||
public static class ItemFeatures
|
||||
{
|
||||
public static List<Item> collectedItems = new List<Item>();
|
||||
public static string _searchQuery = "";
|
||||
public static string _itemStringText = "";
|
||||
public static string _id = "";
|
||||
private static int id = 0;
|
||||
public static string _width = "";
|
||||
private static int width = 0;
|
||||
public static string _height = "";
|
||||
private static int height = 0;
|
||||
private static float _logTime = Time.time;
|
||||
|
||||
public static string ItemStringText
|
||||
{
|
||||
get
|
||||
{
|
||||
return _itemStringText;
|
||||
}
|
||||
}
|
||||
|
||||
public static string Id
|
||||
{
|
||||
get
|
||||
{
|
||||
return _id;
|
||||
}
|
||||
}
|
||||
|
||||
public static string Width
|
||||
{
|
||||
get
|
||||
{
|
||||
return _width;
|
||||
}
|
||||
}
|
||||
|
||||
public static string Height
|
||||
{
|
||||
get
|
||||
{
|
||||
return _height;
|
||||
}
|
||||
}
|
||||
|
||||
public static string GetSearchQuery() => _searchQuery;
|
||||
|
||||
public static void GetItemsInInventory()
|
||||
{
|
||||
GameUtils.AddConsoleLog("GetItemsInInventory called");
|
||||
collectedItems.Clear();
|
||||
List<string> itemStrings = new List<string>();
|
||||
EquipmentSlot[] slots = { EquipmentSlot.Backpack };
|
||||
if (Main.notReady())
|
||||
{
|
||||
GameUtils.AddConsoleLog("You are not in raid.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (Main.LocalPlayer.Profile == null)
|
||||
{
|
||||
GameUtils.AddConsoleLog("The current raid is in the state of loading.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (Main.LocalPlayer.Profile.Inventory == null)
|
||||
{
|
||||
GameUtils.AddConsoleLog("Your Inventory class currently has no instance.");
|
||||
return;
|
||||
}
|
||||
|
||||
IEnumerable<Item> items = Main.LocalPlayer.Profile.Inventory.GetItemsInSlots(slots);
|
||||
|
||||
if (items == null || items.Count() == 0)
|
||||
{
|
||||
GameUtils.AddConsoleLog("Your inventory is either empty or not loaded.");
|
||||
return;
|
||||
}
|
||||
|
||||
GameUtils.AddConsoleLog($"Found {items.Count()} items in backpack");
|
||||
foreach (Item item in items)
|
||||
{
|
||||
if (!GameUtils.IsInventoryItemValid(item))
|
||||
continue;
|
||||
if (!item.Name.Localized().ToLower().Contains(_searchQuery.ToLower()))
|
||||
continue;
|
||||
|
||||
itemStrings.Add(item.Name.Localized());
|
||||
collectedItems.Add(item);
|
||||
GameUtils.AddConsoleLog($"Added item: {item.Name.Localized()}");
|
||||
}
|
||||
_itemStringText = string.Join("\n", itemStrings);
|
||||
}
|
||||
|
||||
public static void Commit()
|
||||
{
|
||||
GameUtils.AddConsoleLog("SetItemsInInventory called");
|
||||
if (collectedItems.Count <= 0)
|
||||
{
|
||||
GameUtils.AddConsoleLog("No items in collectedItems");
|
||||
return;
|
||||
}
|
||||
foreach (Item item in collectedItems)
|
||||
{
|
||||
if (!item.Name.ToLower().Contains(_searchQuery.ToLower()))
|
||||
continue;
|
||||
|
||||
item.Template._id = _id;
|
||||
GameUtils.AddConsoleLog($"Set {item.Name} _id to {_id}");
|
||||
if (int.TryParse(_width, out width)) // 字符串转整数 : Casting string to int
|
||||
{
|
||||
item.Template.Width = width;
|
||||
GameUtils.AddConsoleLog($"Set {item.Name.Localized()} Width to {width}");
|
||||
}
|
||||
|
||||
if (int.TryParse(_height, out height))
|
||||
{
|
||||
item.Template.Height = height;
|
||||
GameUtils.AddConsoleLog($"Set {item.Name.Localized()} Height to {height}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void ResetItemsInInventory()
|
||||
{
|
||||
GameUtils.AddConsoleLog("ResetItemsInInventory called");
|
||||
DupeItemsInInventory(1);
|
||||
}
|
||||
|
||||
public static void DupeItemsInInventory(int count)
|
||||
{
|
||||
GameUtils.AddConsoleLog($"DupeItemsInInventory with argument {count} called");
|
||||
if (collectedItems.Count <= 0)
|
||||
{
|
||||
GameUtils.AddConsoleLog("No items in collectedItems");
|
||||
return;
|
||||
}
|
||||
|
||||
foreach (Item item in collectedItems)
|
||||
{
|
||||
item.StackObjectsCount = count;
|
||||
GameUtils.AddConsoleLog($"Duped {item.Name.Localized()} stack to {count}");
|
||||
}
|
||||
}
|
||||
|
||||
public static void DupeDollarsEuros()
|
||||
{
|
||||
DupeItemsInInventory(50000);
|
||||
}
|
||||
|
||||
public static void DupeRubles()
|
||||
{
|
||||
DupeItemsInInventory(400000);
|
||||
}
|
||||
|
||||
public static void SetInventoryFoundInRaid()
|
||||
{
|
||||
GameUtils.AddConsoleLog("FoundInRaidInventory called");
|
||||
if (Main.notReady())
|
||||
{
|
||||
GameUtils.AddConsoleLog("You are not in raid.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (Main.LocalPlayer.Profile == null)
|
||||
{
|
||||
GameUtils.AddConsoleLog("The current raid is in the state of loading.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (Main.LocalPlayer.Profile.Inventory == null)
|
||||
{
|
||||
GameUtils.AddConsoleLog("Your Inventory class currently has no instance.");
|
||||
return;
|
||||
}
|
||||
IEnumerable<Item> items = Main.LocalPlayer.Profile.Inventory.GetPlayerItems(EPlayerItems.All);
|
||||
if (items == null || items.Count() == 0)
|
||||
{
|
||||
GameUtils.AddConsoleLog("Your inventory is either empty or not loaded.");
|
||||
return;
|
||||
}
|
||||
|
||||
GameUtils.AddConsoleLog($"Found {items.Count()} items in inventory");
|
||||
|
||||
foreach (Item item in items)
|
||||
{
|
||||
if (!GameUtils.IsInventoryItemValid(item))
|
||||
continue;
|
||||
item.SpawnedInSession = true;
|
||||
GameUtils.AddConsoleLog($"Set {item.Name.Localized()} to SpawnedInSession");
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetSearchQuery(string searchQuery)
|
||||
{
|
||||
_searchQuery = searchQuery;
|
||||
if (Time.time > _logTime && Settings.debug)
|
||||
{
|
||||
GameUtils.AddConsoleLog($"Search query set to: {searchQuery}");
|
||||
_logTime = Time.time + 1f;
|
||||
}
|
||||
}
|
||||
|
||||
public static void UpdateValues(string id, string width, string height)
|
||||
{
|
||||
_id = id;
|
||||
_width = width;
|
||||
_height = height;
|
||||
if (Time.time > _logTime && Settings.debug)
|
||||
{
|
||||
GameUtils.AddConsoleLog($"New values set: {id}, {width}, {height}");
|
||||
_logTime = Time.time + 1f;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,239 +0,0 @@
|
|||
using EFT.Interactive;
|
||||
using UnityEngine.UI;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EscapeFromTarkovCheat.Features
|
||||
{
|
||||
public enum Skill {
|
||||
STRENGTH,
|
||||
STRESSRESISTANCE,
|
||||
MAGDRILLS,
|
||||
MELEE,
|
||||
HIDEOUTMANAGEMENT,
|
||||
CRAFTING,
|
||||
HEAVYVESTS,
|
||||
LIGHTVESTS,
|
||||
LMG,
|
||||
ASSAULT,
|
||||
PISTOL,
|
||||
PERCEPTION,
|
||||
SNIPER,
|
||||
SNIPING,
|
||||
ENDURANCE,
|
||||
THROWING,
|
||||
CHARISMA,
|
||||
HEALTH,
|
||||
VITALITY,
|
||||
METABOLISM,
|
||||
IMMUNITY,
|
||||
SURGERY,
|
||||
INTELLECT,
|
||||
ATTENTION,
|
||||
REVOLVER,
|
||||
SHOTGUN,
|
||||
HMG,
|
||||
DMR,
|
||||
AIMDRILLS,
|
||||
SEARCH,
|
||||
WEAPONTREATMENT,
|
||||
TROUBLESHOOTING,
|
||||
COVERTMOVEMENT,
|
||||
SMG
|
||||
}
|
||||
public class Skills
|
||||
{
|
||||
public void MaxAll()
|
||||
{
|
||||
if (Main.notReady())
|
||||
return;
|
||||
Main.LocalPlayer.Skills.Strength.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.StressResistance.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.MagDrills.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.Melee.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.HideoutManagement.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.Crafting.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.HeavyVests.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.LightVests.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.LMG.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.Assault.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.Pistol.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.Perception.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.Sniper.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.Sniping.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.Endurance.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.Throwing.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.Charisma.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.Health.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.Vitality.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.Metabolism.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.Immunity.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.Intellect.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.Attention.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.Revolver.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.Shotgun.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.HMG.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.DMR.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.AimDrills.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.Search.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.WeaponTreatment.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.TroubleShooting.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.CovertMovement.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.SMG.SetLevel(51);
|
||||
Main.LocalPlayer.Skills.Surgery.SetLevel(51);
|
||||
}
|
||||
|
||||
public int Get(Skill skill) {
|
||||
if (Main.GameWorld == null) return 0;
|
||||
switch (skill)
|
||||
{
|
||||
case Skill.STRENGTH:
|
||||
return Main.LocalPlayer.Skills.Strength.Level;
|
||||
case Skill.STRESSRESISTANCE:
|
||||
return Main.LocalPlayer.Skills.StressResistance.Level;
|
||||
case Skill.MAGDRILLS:
|
||||
return Main.LocalPlayer.Skills.MagDrills.Level;
|
||||
case Skill.MELEE:
|
||||
return Main.LocalPlayer.Skills.Melee.Level;
|
||||
case Skill.HIDEOUTMANAGEMENT:
|
||||
return Main.LocalPlayer.Skills.HideoutManagement.Level;
|
||||
case Skill.CRAFTING:
|
||||
return Main.LocalPlayer.Skills.Crafting.Level;
|
||||
case Skill.HEAVYVESTS:
|
||||
return Main.LocalPlayer.Skills.HeavyVests.Level;
|
||||
case Skill.LIGHTVESTS:
|
||||
return Main.LocalPlayer.Skills.LightVests.Level;
|
||||
case Skill.LMG:
|
||||
return Main.LocalPlayer.Skills.LMG.Level;
|
||||
case Skill.ASSAULT:
|
||||
return Main.LocalPlayer.Skills.Assault.Level;
|
||||
case Skill.PISTOL:
|
||||
return Main.LocalPlayer.Skills.Pistol.Level;
|
||||
case Skill.PERCEPTION:
|
||||
return Main.LocalPlayer.Skills.Perception.Level;
|
||||
case Skill.SNIPER:
|
||||
return Main.LocalPlayer.Skills.Sniper.Level;
|
||||
case Skill.SNIPING:
|
||||
return Main.LocalPlayer.Skills.Sniping.Level;
|
||||
case Skill.ENDURANCE:
|
||||
return Main.LocalPlayer.Skills.Endurance.Level;
|
||||
case Skill.THROWING:
|
||||
return Main.LocalPlayer.Skills.Throwing.Level;
|
||||
case Skill.CHARISMA:
|
||||
return Main.LocalPlayer.Skills.Charisma.Level;
|
||||
case Skill.HEALTH:
|
||||
return Main.LocalPlayer.Skills.Health.Level;
|
||||
case Skill.VITALITY:
|
||||
return Main.LocalPlayer.Skills.Vitality.Level;
|
||||
case Skill.METABOLISM:
|
||||
return Main.LocalPlayer.Skills.Metabolism.Level;
|
||||
case Skill.IMMUNITY:
|
||||
return Main.LocalPlayer.Skills.Immunity.Level;
|
||||
case Skill.COVERTMOVEMENT:
|
||||
return Main.LocalPlayer.Skills.CovertMovement.Level;
|
||||
case Skill.INTELLECT:
|
||||
return Main.LocalPlayer.Skills.Intellect.Level;
|
||||
case Skill.ATTENTION:
|
||||
return Main.LocalPlayer.Skills.Attention.Level;
|
||||
case Skill.REVOLVER:
|
||||
return Main.LocalPlayer.Skills.Revolver.Level;
|
||||
case Skill.SHOTGUN:
|
||||
return Main.LocalPlayer.Skills.Shotgun.Level;
|
||||
case Skill.HMG:
|
||||
return Main.LocalPlayer.Skills.HMG.Level;
|
||||
case Skill.DMR:
|
||||
return Main.LocalPlayer.Skills.DMR.Level;
|
||||
case Skill.AIMDRILLS:
|
||||
return Main.LocalPlayer.Skills.AimDrills.Level;
|
||||
case Skill.SEARCH:
|
||||
return Main.LocalPlayer.Skills.Search.Level;
|
||||
case Skill.WEAPONTREATMENT:
|
||||
return Main.LocalPlayer.Skills.WeaponTreatment.Level;
|
||||
case Skill.TROUBLESHOOTING:
|
||||
return Main.LocalPlayer.Skills.TroubleShooting.Level;
|
||||
case Skill.SURGERY:
|
||||
return Main.LocalPlayer.Skills.Surgery.Level;
|
||||
case Skill.SMG:
|
||||
return Main.LocalPlayer.Skills.SMG.Level;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public void Commit(Skill skill, int level) {
|
||||
if (Main.notReady()) return;
|
||||
switch (skill)
|
||||
{
|
||||
case Skill.STRENGTH:
|
||||
if (Main.LocalPlayer.Skills.Strength.Level != level) Main.LocalPlayer.Skills.Strength.SetLevel(level); break;
|
||||
case Skill.STRESSRESISTANCE:
|
||||
if (Main.LocalPlayer.Skills.StressResistance.Level != level) Main.LocalPlayer.Skills.StressResistance.SetLevel(level); break;
|
||||
case Skill.MAGDRILLS:
|
||||
if (Main.LocalPlayer.Skills.MagDrills.Level != level) Main.LocalPlayer.Skills.MagDrills.SetLevel(level); break;
|
||||
case Skill.MELEE:
|
||||
if (Main.LocalPlayer.Skills.Melee.Level != level) Main.LocalPlayer.Skills.Melee.SetLevel(level); break;
|
||||
case Skill.HIDEOUTMANAGEMENT:
|
||||
if (Main.LocalPlayer.Skills.HideoutManagement.Level != level) Main.LocalPlayer.Skills.HideoutManagement.SetLevel(level); break;
|
||||
case Skill.CRAFTING:
|
||||
if (Main.LocalPlayer.Skills.Crafting.Level != level) Main.LocalPlayer.Skills.Crafting.SetLevel(level); break;
|
||||
case Skill.HEAVYVESTS:
|
||||
if (Main.LocalPlayer.Skills.HeavyVests.Level != level) Main.LocalPlayer.Skills.HeavyVests.SetLevel(level); break;
|
||||
case Skill.LIGHTVESTS:
|
||||
if (Main.LocalPlayer.Skills.LightVests.Level != level) Main.LocalPlayer.Skills.LightVests.SetLevel(level); break;
|
||||
case Skill.LMG:
|
||||
if (Main.LocalPlayer.Skills.LMG.Level != level) Main.LocalPlayer.Skills.LMG.SetLevel(level); break;
|
||||
case Skill.ASSAULT:
|
||||
if (Main.LocalPlayer.Skills.Assault.Level != level) Main.LocalPlayer.Skills.Assault.SetLevel(level); break;
|
||||
case Skill.PISTOL:
|
||||
if (Main.LocalPlayer.Skills.Pistol.Level != level) Main.LocalPlayer.Skills.Pistol.SetLevel(level); break;
|
||||
case Skill.PERCEPTION:
|
||||
if (Main.LocalPlayer.Skills.Perception.Level != level) Main.LocalPlayer.Skills.Perception.SetLevel(level); break;
|
||||
case Skill.SNIPER:
|
||||
if (Main.LocalPlayer.Skills.Sniper.Level != level) Main.LocalPlayer.Skills.Sniper.SetLevel(level); break;
|
||||
case Skill.SNIPING:
|
||||
if (Main.LocalPlayer.Skills.Sniping.Level != level) Main.LocalPlayer.Skills.Sniping.SetLevel(level); break;
|
||||
case Skill.ENDURANCE:
|
||||
if (Main.LocalPlayer.Skills.Endurance.Level != level) Main.LocalPlayer.Skills.Endurance.SetLevel(level); break;
|
||||
case Skill.THROWING:
|
||||
if (Main.LocalPlayer.Skills.Throwing.Level != level) Main.LocalPlayer.Skills.Throwing.SetLevel(level); break;
|
||||
case Skill.CHARISMA:
|
||||
if (Main.LocalPlayer.Skills.Charisma.Level != level) Main.LocalPlayer.Skills.Charisma.SetLevel(level); break;
|
||||
case Skill.HEALTH:
|
||||
if (Main.LocalPlayer.Skills.Health.Level != level) Main.LocalPlayer.Skills.Health.SetLevel(level); break;
|
||||
case Skill.VITALITY:
|
||||
if (Main.LocalPlayer.Skills.Vitality.Level != level) Main.LocalPlayer.Skills.Vitality.SetLevel(level); break;
|
||||
case Skill.METABOLISM:
|
||||
if (Main.LocalPlayer.Skills.Metabolism.Level != level) Main.LocalPlayer.Skills.Metabolism.SetLevel(level); break;
|
||||
case Skill.IMMUNITY:
|
||||
if (Main.LocalPlayer.Skills.Immunity.Level != level) Main.LocalPlayer.Skills.Immunity.SetLevel(level); break;
|
||||
case Skill.COVERTMOVEMENT:
|
||||
if (Main.LocalPlayer.Skills.CovertMovement.Level != level) Main.LocalPlayer.Skills.CovertMovement.SetLevel(level); break;
|
||||
case Skill.INTELLECT:
|
||||
if (Main.LocalPlayer.Skills.Intellect.Level != level) Main.LocalPlayer.Skills.Intellect.SetLevel(level); break;
|
||||
case Skill.ATTENTION:
|
||||
if (Main.LocalPlayer.Skills.Attention.Level != level) Main.LocalPlayer.Skills.Attention.SetLevel(level); break;
|
||||
case Skill.REVOLVER:
|
||||
if (Main.LocalPlayer.Skills.Revolver.Level != level) Main.LocalPlayer.Skills.Revolver.SetLevel(level); break;
|
||||
case Skill.SHOTGUN:
|
||||
if (Main.LocalPlayer.Skills.Shotgun.Level != level) Main.LocalPlayer.Skills.Shotgun.SetLevel(level); break;
|
||||
case Skill.HMG:
|
||||
if (Main.LocalPlayer.Skills.HMG.Level != level) Main.LocalPlayer.Skills.HMG.SetLevel(level); break;
|
||||
case Skill.DMR:
|
||||
if (Main.LocalPlayer.Skills.DMR.Level != level) Main.LocalPlayer.Skills.DMR.SetLevel(level); break;
|
||||
case Skill.AIMDRILLS:
|
||||
if (Main.LocalPlayer.Skills.AimDrills.Level != level) Main.LocalPlayer.Skills.AimDrills.SetLevel(level); break;
|
||||
case Skill.SEARCH:
|
||||
if (Main.LocalPlayer.Skills.Search.Level != level) Main.LocalPlayer.Skills.Search.SetLevel(level); break;
|
||||
case Skill.WEAPONTREATMENT:
|
||||
if (Main.LocalPlayer.Skills.WeaponTreatment.Level != level) Main.LocalPlayer.Skills.WeaponTreatment.SetLevel(level); break;
|
||||
case Skill.TROUBLESHOOTING:
|
||||
if (Main.LocalPlayer.Skills.TroubleShooting.Level != level) Main.LocalPlayer.Skills.TroubleShooting.SetLevel(level); break;
|
||||
case Skill.SURGERY:
|
||||
if (Main.LocalPlayer.Skills.Surgery.Level != level) Main.LocalPlayer.Skills.Surgery.SetLevel(level); break;
|
||||
case Skill.SMG:
|
||||
if (Main.LocalPlayer.Skills.SMG.Level != level) Main.LocalPlayer.Skills.SMG.SetLevel(level); break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
using System;
|
||||
using EscapeFromTarkovCheat.Utils;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EscapeFromTarkovCheat.Features.Misc
|
||||
{
|
||||
public class SpeedHack : MonoBehaviour
|
||||
{
|
||||
public void Update()
|
||||
{
|
||||
if (Main.GameWorld != null && Settings.SpeedHack)
|
||||
{
|
||||
this.Enable();
|
||||
}
|
||||
}
|
||||
|
||||
private void Enable()
|
||||
{
|
||||
if (Main.LocalPlayer == null && Main.MainCamera == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (Input.GetKey(KeyCode.LeftShift))
|
||||
{
|
||||
Main.LocalPlayer.Transform.position += Settings.SpeedAddition * Time.deltaTime * Main.MainCamera.transform.forward;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
|
||||
using EFT.InventoryLogic;
|
||||
using EscapeFromTarkovCheat.Feauters.ESP;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EscapeFromTarkovCheat
|
||||
{
|
||||
public class Loader
|
||||
{
|
||||
public static GameObject HookObject;
|
||||
|
||||
public static void Load()
|
||||
{
|
||||
HookObject = new GameObject();
|
||||
HookObject.AddComponent<Main>();
|
||||
Object.DontDestroyOnLoad(HookObject);
|
||||
}
|
||||
|
||||
public static void Unload()
|
||||
{
|
||||
Object.Destroy(HookObject);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
using EscapeFromTarkovCheat.Data;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace EscapeFromTarkovCheat
|
||||
{
|
||||
public static class LocalisationManager
|
||||
{
|
||||
static List<LocalisationData> data = new List<LocalisationData>();
|
||||
|
||||
public static void Initialize() {
|
||||
data.Add(new LocalisationData(Locale.ENGLISH));
|
||||
data.Add(new LocalisationData(Locale.CHINESE));
|
||||
}
|
||||
|
||||
public static string GetString(Locale locale, StringKey key) {
|
||||
foreach (LocalisationData data in data) {
|
||||
if (data.locale == locale)
|
||||
return data.GetByKey(key);
|
||||
}
|
||||
return $"INVALID_LANGUAGE_{locale}";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,416 +0,0 @@
|
|||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("EscapeFromTarkovCheat")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("EscapeFromTarkovCheat")]
|
||||
[assembly: AssemblyCopyright("Copyright © UnknownCheats 2024")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("c1c426a1-efc3-4c83-972c-eca557571328")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.2.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.2.0.0")]
|
||||
|
|
@ -1,305 +0,0 @@
|
|||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using EscapeFromTarkovCheat;
|
||||
using EscapeFromTarkovCheat.Utils;
|
||||
using UnityEngine;
|
||||
using EscapeFromTarkovCheat.Data;
|
||||
using EscapeFromTarkovCheat.Features;
|
||||
|
||||
internal enum MENUS {
|
||||
MAIN,
|
||||
PLAYER,
|
||||
ITEM,
|
||||
AIMBOT,
|
||||
MISC,
|
||||
SKILLS,
|
||||
ITEMS
|
||||
}
|
||||
|
||||
namespace Menu.UI
|
||||
{
|
||||
public class Menu : MonoBehaviour
|
||||
{
|
||||
private Rect _mainWindow;
|
||||
private Rect _playerVisualWindow;
|
||||
private Rect _miscVisualWindow;
|
||||
private Rect _aimbotVisualWindow;
|
||||
private Rect _miscWindow;
|
||||
private Rect _skillsWindow;
|
||||
private Rect _itemsWindow;
|
||||
Vector2 skillsScrollPosition = Vector2.zero;
|
||||
private bool _visible = true;
|
||||
private bool _playerEspVisualVisible;
|
||||
private bool _miscVisualVisible;
|
||||
private bool _aimbotVisualVisible;
|
||||
private bool _miscVisible;
|
||||
private bool _skillsVisible;
|
||||
private bool _itemsVisible;
|
||||
private string[] languageNames = { "English", "中文" };
|
||||
private int selectedIndex = 0;
|
||||
Vector2 basePoint = new Vector2(20, 60);
|
||||
private void Start()
|
||||
{
|
||||
AllocConsoleHandler.Open();
|
||||
_mainWindow = new Rect(basePoint.x, basePoint.y, 250f, 300f);
|
||||
_playerVisualWindow = new Rect(basePoint.x, basePoint.y + _mainWindow.height, 250f, 200f);
|
||||
_miscVisualWindow = new Rect(basePoint.x, _playerVisualWindow.yMin + _playerVisualWindow.height, 250f, 180f);
|
||||
_aimbotVisualWindow = new Rect(basePoint.x, _miscVisualWindow.yMin + _miscVisualWindow.height, 250f, 150f);
|
||||
_miscWindow = new Rect(basePoint.x + _mainWindow.width, basePoint.y, 350f, 360f);
|
||||
_skillsWindow = new Rect(basePoint.x + _mainWindow.width, basePoint.y + _miscWindow.height, 250f, 550f);
|
||||
_itemsWindow = new Rect(basePoint.x + _mainWindow.width + _miscWindow.width, basePoint.y, 250f, 150f);
|
||||
GameUtils.AddConsoleLog("Initialized.");
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (Input.GetKeyDown(KeyCode.Insert))
|
||||
_visible = !_visible;
|
||||
|
||||
if (Input.GetKeyDown(KeyCode.Delete))
|
||||
Loader.Unload();
|
||||
}
|
||||
|
||||
private void OnGUI()
|
||||
{
|
||||
if (!_visible)
|
||||
return;
|
||||
|
||||
_mainWindow = GUILayout.Window((int)MENUS.MAIN, _mainWindow, RenderUi, LocalisationManager.GetString(Settings.Language, StringKey.MAIN_TITLE));
|
||||
|
||||
if (_playerEspVisualVisible)
|
||||
_playerVisualWindow = GUILayout.Window(((int)MENUS.PLAYER), _playerVisualWindow, RenderUi, LocalisationManager.GetString(Settings.Language, StringKey.MENU_PLAYER_VISUAL_TITLE));
|
||||
if (_miscVisualVisible)
|
||||
_miscVisualWindow = GUILayout.Window((int)MENUS.ITEM, _miscVisualWindow, RenderUi, LocalisationManager.GetString(Settings.Language, StringKey.MENU_MISC_VISUAL_TITLE));
|
||||
if (_aimbotVisualVisible)
|
||||
_aimbotVisualWindow = GUILayout.Window((int)MENUS.AIMBOT, _aimbotVisualWindow, RenderUi, LocalisationManager.GetString(Settings.Language, StringKey.MENU_AIMBOT_TITLE));
|
||||
if (_miscVisible)
|
||||
_miscWindow = GUILayout.Window((int)MENUS.MISC, _miscWindow, RenderUi, LocalisationManager.GetString(Settings.Language, StringKey.MENU_MISCELLANEOUS_TITLE));
|
||||
if (_skillsVisible)
|
||||
_skillsWindow = GUILayout.Window((int)MENUS.SKILLS, _skillsWindow, RenderUi, LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_TITLE));
|
||||
if (_itemsVisible)
|
||||
_itemsWindow = GUILayout.Window((int)MENUS.ITEMS, _itemsWindow, RenderUi, LocalisationManager.GetString(Settings.Language, StringKey.MENU_ITEMS_TITLE));
|
||||
}
|
||||
private Locale FromGUI(int selection) {
|
||||
switch (selection) {
|
||||
case 0: return Locale.ENGLISH;
|
||||
case 1: return Locale.CHINESE;
|
||||
default: return Locale.ENGLISH;
|
||||
}
|
||||
}
|
||||
|
||||
private void RenderUi(int id)
|
||||
{
|
||||
switch (id)
|
||||
{
|
||||
case (int)MENUS.MAIN:
|
||||
selectedIndex = GUILayout.Toolbar(selectedIndex, languageNames);
|
||||
Settings.Language = FromGUI(selectedIndex);
|
||||
GUILayout.Label(LocalisationManager.GetString(Settings.Language, StringKey.MENU_MAIN_DESC_TOGGLE));
|
||||
if (GUILayout.Button(LocalisationManager.GetString(Settings.Language, StringKey.MENU_MAIN_BUTTON_PLAYER_VISUAL)))
|
||||
_playerEspVisualVisible = !_playerEspVisualVisible;
|
||||
if (GUILayout.Button(LocalisationManager.GetString(Settings.Language, StringKey.MENU_MAIN_BUTTON_MISC_VISUAL)))
|
||||
_miscVisualVisible = !_miscVisualVisible;
|
||||
if (GUILayout.Button(LocalisationManager.GetString(Settings.Language, StringKey.MENU_MAIN_BUTTON_AIMBOT)))
|
||||
_aimbotVisualVisible = !_aimbotVisualVisible;
|
||||
if (GUILayout.Button(LocalisationManager.GetString(Settings.Language, StringKey.MENU_MAIN_BUTTON_MISCELLANEOUS)))
|
||||
_miscVisible = !_miscVisible;
|
||||
if (GUILayout.Button(LocalisationManager.GetString(Settings.Language, StringKey.MENU_MAIN_BUTTON_SKILLS)))
|
||||
_skillsVisible = !_skillsVisible;
|
||||
if (GUILayout.Button(LocalisationManager.GetString(Settings.Language, StringKey.MENU_MAIN_BUTTON_ITEMS)))
|
||||
_itemsVisible = !_itemsVisible;
|
||||
if (GUILayout.Button("BAN"))
|
||||
{
|
||||
EFT.UI.PreloaderUI.Instance.ShowPveLoadingScreen();
|
||||
EFT.UI.PreloaderUI.Instance.ShowErrorScreen("ERROR", "229\n\n\n", Application.Quit);
|
||||
EFT.UI.PreloaderUI.Instance.ShowCriticalErrorScreen("验证错误", "授权发生错误", EFT.UI.ErrorScreen.EButtonType.QuitButton, 30f, Application.Quit, Application.Quit);
|
||||
}
|
||||
break;
|
||||
|
||||
case (int)MENUS.PLAYER:
|
||||
Settings.DrawPlayers = GUILayout.Toggle(Settings.DrawPlayers, LocalisationManager.GetString(Settings.Language, StringKey.MENU_PLAYER_VISUAL_DRAWPLAYERS));
|
||||
Settings.DrawPlayerBox = GUILayout.Toggle(Settings.DrawPlayerBox, LocalisationManager.GetString(Settings.Language, StringKey.MENU_PLAYER_VISUAL_DRAWPLAYER_BOX));
|
||||
Settings.DrawPlayerName = GUILayout.Toggle(Settings.DrawPlayerName, LocalisationManager.GetString(Settings.Language, StringKey.MENU_PLAYER_VISUAL_DRAWPLAYER_NAME));
|
||||
Settings.DrawPlayerLine = GUILayout.Toggle(Settings.DrawPlayerLine, LocalisationManager.GetString(Settings.Language, StringKey.MENU_PLAYER_VISUAL_DRAWPLAYER_LINE));
|
||||
Settings.DrawPlayerHealth = GUILayout.Toggle(Settings.DrawPlayerHealth, LocalisationManager.GetString(Settings.Language, StringKey.MENU_PLAYER_VISUAL_DRAWPLAYER_HEALTH));
|
||||
Settings.DrawPlayerSkeletons = GUILayout.Toggle(Settings.DrawPlayerSkeletons, LocalisationManager.GetString(Settings.Language, StringKey.MENU_PLAYER_VISUAL_DRAWPLAYER_SKELETON));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_PLAYER_VISUAL_DRAWPLAYER_RANGE)} {(int)Settings.DrawPlayersDistance} m");
|
||||
Settings.DrawPlayersDistance = GUILayout.HorizontalSlider(Settings.DrawPlayersDistance, 0f, 2000f);
|
||||
break;
|
||||
|
||||
case (int)MENUS.ITEM:
|
||||
Settings.DrawLootItems = GUILayout.Toggle(Settings.DrawLootItems, LocalisationManager.GetString(Settings.Language, StringKey.MENU_MISC_VISUAL_DRAWLOOTITEMS));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_MISC_VISUAL_LOOTITEMRANGE)} {(int)Settings.DrawLootItemsDistance} m");
|
||||
Settings.DrawLootItemsDistance = GUILayout.HorizontalSlider(Settings.DrawLootItemsDistance, 0f, 1000f);
|
||||
|
||||
Settings.DrawLootableContainers = GUILayout.Toggle(Settings.DrawLootableContainers, LocalisationManager.GetString(Settings.Language, StringKey.MENU_MISC_VISUAL_DRAWCONTAINERS));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_MISC_VISUAL_CONTAINERRANGE)} {(int)Settings.DrawLootableContainersDistance} m");
|
||||
Settings.DrawLootableContainersDistance = GUILayout.HorizontalSlider(Settings.DrawLootableContainersDistance, 0f, 1000f);
|
||||
|
||||
Settings.DrawExfiltrationPoints = GUILayout.Toggle(Settings.DrawExfiltrationPoints, LocalisationManager.GetString(Settings.Language, StringKey.MENU_MISC_VISUAL_DRAWEP));
|
||||
break;
|
||||
|
||||
case (int)MENUS.AIMBOT:
|
||||
Settings.Aimbot = GUILayout.Toggle(Settings.Aimbot, LocalisationManager.GetString(Settings.Language, StringKey.MENU_AIMBOT_TOGGLE));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_AIMBOT_SMOOTH)} {(int)Settings.AimbotSmooth} m");
|
||||
Settings.AimbotSmooth = GUILayout.HorizontalSlider(Settings.AimbotSmooth, 0f, 100);
|
||||
Settings.AimbotDrawFOV = GUILayout.Toggle(Settings.AimbotDrawFOV, LocalisationManager.GetString(Settings.Language, StringKey.MENU_AIMBOT_DRAWFOV));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_AIMBOT_FOVRANGE)} {(int)Settings.AimbotFOV} m");
|
||||
Settings.AimbotFOV = GUILayout.HorizontalSlider(Settings.AimbotFOV, 0f, 180);
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_AIMBOT_AIMINGRANGE)} {(int)Settings.AimbotRange} m");
|
||||
Settings.AimbotRange = GUILayout.HorizontalSlider(Settings.AimbotRange, 0f, 1000f);
|
||||
Settings.VisibleOnly = GUILayout.Toggle(Settings.VisibleOnly, LocalisationManager.GetString(Settings.Language, StringKey.MENU_AIMBOT_VISIBLEONLY));
|
||||
Settings.SilentAim = GUILayout.Toggle(Settings.SilentAim, LocalisationManager.GetString(Settings.Language, StringKey.MENU_AIMBOT_SILENT));
|
||||
Settings.NoRecoil = GUILayout.Toggle(Settings.NoRecoil, LocalisationManager.GetString(Settings.Language, StringKey.MENU_AIMBOT_NORECOIL));
|
||||
break;
|
||||
case (int)MENUS.MISC:
|
||||
Settings.GodMode = GUILayout.Toggle(Settings.GodMode, LocalisationManager.GetString(Settings.Language, StringKey.MENU_MISCELLANEOUS_GODMODE));
|
||||
|
||||
Settings.Stamina = GUILayout.Toggle(Settings.Stamina, LocalisationManager.GetString(Settings.Language, StringKey.MENU_MISCELLANEOUS_STAMINA));
|
||||
|
||||
Settings.SpeedHack = GUILayout.Toggle(Settings.SpeedHack, LocalisationManager.GetString(Settings.Language, StringKey.MENU_MISCELLANEOUS_SPEEDHACK));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_MISCELLANEOUS_SPEEDHACK_ADDITION)} {(int)Settings.SpeedAddition} m/s");
|
||||
Settings.SpeedAddition = GUILayout.HorizontalSlider(Settings.SpeedAddition, 2.5f, 10f);
|
||||
|
||||
if (GUILayout.Button(LocalisationManager.GetString(Settings.Language, StringKey.MENU_MISCELLANEOUS_BUTTON_ADDXP)))
|
||||
ExperienceManager.AddExperience(Main.LocalPlayer, Settings.ExperienceAmount);
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_MISCELLANEOUS_XPINRAID)} {((Main.GameWorld != null) ? ExperienceManager.Get(Main.LocalPlayer) : 0)}");
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_MISCELLANEOUS_XPADDITION)} {Settings.ExperienceAmount}");
|
||||
Settings.ExperienceAmount = GUILayout.HorizontalSlider(Settings.ExperienceAmount, 5000f, 100000f);
|
||||
|
||||
if (GUILayout.Button(LocalisationManager.GetString(Settings.Language, StringKey.MENU_MISCELLANEOUS_BUTTON_KILL)))
|
||||
Main.KillEverything();
|
||||
if (GUILayout.Button(LocalisationManager.GetString(Settings.Language, StringKey.MENU_MISCELLANEOUS_BUTTON_TPENEMIES)))
|
||||
Main.TeleportAllEnemies();
|
||||
if (GUILayout.Button(LocalisationManager.GetString(Settings.Language, StringKey.MENU_MISCELLANEOUS_BUTTON_TRADERSTANDING)))
|
||||
Main.IncreaseTraderStanding();
|
||||
if (GUILayout.Button(LocalisationManager.GetString(Settings.Language, StringKey.MENU_MISCELLANEOUS_BUTTON_HEAL)))
|
||||
Main.Heal();
|
||||
if (GUILayout.Button(LocalisationManager.GetString(Settings.Language, StringKey.MENU_MISCELLANEOUS_BUTTON_UNLOCK)))
|
||||
Main.UnlockAllDoors();
|
||||
break;
|
||||
case (int)MENUS.SKILLS:
|
||||
GUIStyle redlabel = new GUIStyle(GUI.skin.label);
|
||||
redlabel.normal.textColor = Color.red;
|
||||
if (GUILayout.Button(LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_BUTTON_MAXALL)))
|
||||
Main.skills.MaxAll();
|
||||
if (Main.notReady())
|
||||
GUILayout.Label(LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_HINT_INRAID), redlabel);
|
||||
skillsScrollPosition = GUILayout.BeginScrollView(skillsScrollPosition, GUILayout.Width(250), GUILayout.Height(500));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_STRENGTH)} Lv. {Main.skills.Get(Skill.STRENGTH)}");
|
||||
Main.skills.Commit(Skill.STRENGTH, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.STRENGTH), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_STRESSRESIST)} Lv. {Main.skills.Get(Skill.STRESSRESISTANCE)}");
|
||||
Main.skills.Commit(Skill.STRESSRESISTANCE, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.STRESSRESISTANCE), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_MAGDRILLS)} Lv. {Main.skills.Get(Skill.MAGDRILLS)}");
|
||||
Main.skills.Commit(Skill.MAGDRILLS, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.MAGDRILLS), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_MELEE)} Lv. {Main.skills.Get(Skill.MELEE)}");
|
||||
Main.skills.Commit(Skill.MELEE, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.MELEE), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_HIDEOUT)} Lv. {Main.skills.Get(Skill.HIDEOUTMANAGEMENT)}");
|
||||
Main.skills.Commit(Skill.HIDEOUTMANAGEMENT, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.HIDEOUTMANAGEMENT), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_CRAFTING)} Lv. {Main.skills.Get(Skill.CRAFTING)}");
|
||||
Main.skills.Commit(Skill.CRAFTING, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.CRAFTING), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_HEAVYVESTS)} Lv. {Main.skills.Get(Skill.HEAVYVESTS)}");
|
||||
Main.skills.Commit(Skill.HEAVYVESTS, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.HEAVYVESTS), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_LIGHTVESTS)} Lv. {Main.skills.Get(Skill.LIGHTVESTS)}");
|
||||
Main.skills.Commit(Skill.LIGHTVESTS, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.LIGHTVESTS), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_LMG)} Lv. {Main.skills.Get(Skill.LMG)}");
|
||||
Main.skills.Commit(Skill.LMG, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.LMG), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_ASSAULT)} Lv. {Main.skills.Get(Skill.ASSAULT)}");
|
||||
Main.skills.Commit(Skill.ASSAULT, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.ASSAULT), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_PISTOL)} Lv. {Main.skills.Get(Skill.PISTOL)}");
|
||||
Main.skills.Commit(Skill.PISTOL, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.PISTOL), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_PERCEPTION)} Lv. {Main.skills.Get(Skill.PERCEPTION)}");
|
||||
Main.skills.Commit(Skill.PERCEPTION, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.PERCEPTION), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_SNIPER)} Lv. {Main.skills.Get(Skill.SNIPER)}");
|
||||
Main.skills.Commit(Skill.SNIPER, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.SNIPER), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_SNIPING)} Lv. {Main.skills.Get(Skill.SNIPING)}");
|
||||
Main.skills.Commit(Skill.SNIPING, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.SNIPING), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_ENDURANCE)} Lv. {Main.skills.Get(Skill.ENDURANCE)}");
|
||||
Main.skills.Commit(Skill.ENDURANCE, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.ENDURANCE), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_THROWING)} Lv. {Main.skills.Get(Skill.THROWING)}");
|
||||
Main.skills.Commit(Skill.THROWING, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.THROWING), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_CHARISMA)} Lv. {Main.skills.Get(Skill.CHARISMA)}");
|
||||
Main.skills.Commit(Skill.CHARISMA, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.CHARISMA), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_HEALTH)} Lv. {Main.skills.Get(Skill.HEALTH)}");
|
||||
Main.skills.Commit(Skill.HEALTH, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.HEALTH), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_VITALITY)} Lv. {Main.skills.Get(Skill.VITALITY)}");
|
||||
Main.skills.Commit(Skill.VITALITY, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.VITALITY), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_METABOLISM)} Lv. {Main.skills.Get(Skill.METABOLISM)}");
|
||||
Main.skills.Commit(Skill.METABOLISM, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.METABOLISM), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_IMMUNITY)} Lv. {Main.skills.Get(Skill.IMMUNITY)}");
|
||||
Main.skills.Commit(Skill.IMMUNITY, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.IMMUNITY), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_SURGERY)} Lv. {Main.skills.Get(Skill.SURGERY)}");
|
||||
Main.skills.Commit(Skill.SURGERY, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.SURGERY), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_INTELLECT)} Lv. {Main.skills.Get(Skill.INTELLECT)}");
|
||||
Main.skills.Commit(Skill.INTELLECT, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.INTELLECT), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_ATTENTION)} Lv. {Main.skills.Get(Skill.ATTENTION)}");
|
||||
Main.skills.Commit(Skill.ATTENTION, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.ATTENTION), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_REVOLVER)} Lv. {Main.skills.Get(Skill.REVOLVER)}");
|
||||
Main.skills.Commit(Skill.REVOLVER, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.REVOLVER), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_SHOTGUN)} Lv. {Main.skills.Get(Skill.SHOTGUN)}");
|
||||
Main.skills.Commit(Skill.SHOTGUN, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.SHOTGUN), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_HMG)} Lv. {Main.skills.Get(Skill.HMG)}");
|
||||
Main.skills.Commit(Skill.HMG, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.HMG), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_DMR)} Lv. {Main.skills.Get(Skill.DMR)}");
|
||||
Main.skills.Commit(Skill.DMR, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.DMR), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_AIMDRILLS)} Lv. {Main.skills.Get(Skill.AIMDRILLS)}");
|
||||
Main.skills.Commit(Skill.AIMDRILLS, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.AIMDRILLS), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_SEARCH)} Lv. {Main.skills.Get(Skill.SEARCH)}");
|
||||
Main.skills.Commit(Skill.SEARCH, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.SEARCH), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_WEAPONTREATMENT)} Lv. {Main.skills.Get(Skill.WEAPONTREATMENT)}");
|
||||
Main.skills.Commit(Skill.WEAPONTREATMENT, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.WEAPONTREATMENT), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_TROUBLESHOOTING)} Lv. {Main.skills.Get(Skill.TROUBLESHOOTING)}");
|
||||
Main.skills.Commit(Skill.TROUBLESHOOTING, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.TROUBLESHOOTING), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_COVERTMOVEMENT)} Lv. {Main.skills.Get(Skill.COVERTMOVEMENT)}");
|
||||
Main.skills.Commit(Skill.COVERTMOVEMENT, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.COVERTMOVEMENT), 0f, 51f));
|
||||
GUILayout.Label($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_SKILLS_SMG)} Lv. {Main.skills.Get(Skill.SMG)}");
|
||||
Main.skills.Commit(Skill.SMG, (int)GUILayout.HorizontalSlider(Main.skills.Get(Skill.SMG), 0f, 51f));
|
||||
GUILayout.EndScrollView();
|
||||
break;
|
||||
case (int)MENUS.ITEMS:
|
||||
if (GUILayout.Button(LocalisationManager.GetString(Settings.Language, StringKey.MENU_ITEMS_BUTTON_TPLOOTS)))
|
||||
Main.TeleportLoot();
|
||||
if (GUILayout.Button(LocalisationManager.GetString(Settings.Language, StringKey.MENU_ITEMS_BUTTON_AIRDROP)))
|
||||
Main.CallAirdrop(false, default(Vector3));
|
||||
|
||||
GUILayout.Label($"--- {LocalisationManager.GetString(Settings.Language, StringKey.MENU_ITEMS_INVEDITOR_TITLE)} ---");
|
||||
GUILayout.Label(LocalisationManager.GetString(Settings.Language, StringKey.MENU_ITEMS_INVEDITOR_SEARCH));
|
||||
|
||||
ItemFeatures.SetSearchQuery(GUILayout.TextField(ItemFeatures.GetSearchQuery()));
|
||||
if (GUILayout.Button(LocalisationManager.GetString(Settings.Language, StringKey.MENU_ITEMS_INVEDITOR_GET)))
|
||||
ItemFeatures.GetItemsInInventory();
|
||||
|
||||
GUILayout.Label(LocalisationManager.GetString(Settings.Language, StringKey.MENU_ITEMS_INVEDITOR_STRINGS));
|
||||
GUILayout.TextArea(ItemFeatures.ItemStringText, new GUILayoutOption[]{GUILayout.Height(100f)});
|
||||
GUILayout.Label(LocalisationManager.GetString(Settings.Language, StringKey.MENU_ITEMS_INVEDITOR_CHANGES));
|
||||
ItemFeatures.UpdateValues(
|
||||
GUILayout.TextField(ItemFeatures.Id),
|
||||
GUILayout.TextField(ItemFeatures.Width),
|
||||
GUILayout.TextField(ItemFeatures.Height)
|
||||
);
|
||||
|
||||
if (GUILayout.Button(LocalisationManager.GetString(Settings.Language, StringKey.MENU_ITEMS_INVEDITOR_BUTTON_COMMIT)))
|
||||
ItemFeatures.Commit();
|
||||
|
||||
if (GUILayout.Button(LocalisationManager.GetString(Settings.Language, StringKey.MENU_ITEMS_INVEDITOR_BUTTON_SETFIR)))
|
||||
ItemFeatures.SetInventoryFoundInRaid();
|
||||
|
||||
GUILayout.Label($"--- {LocalisationManager.GetString(Settings.Language, StringKey.MENU_ITEMS_INVEDITOR_DUPE_TITLE)} ---");
|
||||
if (GUILayout.Button($"{LocalisationManager.GetString(Settings.Language, StringKey.MENU_ITEMS_INVEDITOR_DUPE_BUTTON_SETSTACK)}{(int)Settings.dupeStackCount}"))
|
||||
ItemFeatures.DupeItemsInInventory((int)Settings.dupeStackCount);
|
||||
Settings.dupeStackCount = GUILayout.HorizontalSlider(Settings.dupeStackCount, 1f, 100f);
|
||||
|
||||
if (GUILayout.Button(LocalisationManager.GetString(Settings.Language, StringKey.MENU_ITEMS_INVEDITOR_DUPE_BUTTON_RESETSTACK)))
|
||||
ItemFeatures.ResetItemsInInventory();
|
||||
|
||||
if (GUILayout.Button(LocalisationManager.GetString(Settings.Language, StringKey.MENU_ITEMS_INVEDITOR_DUPE_BUTTON_SETSTACK_FASTRUBLE)))
|
||||
ItemFeatures.DupeRubles();
|
||||
|
||||
if (GUILayout.Button(LocalisationManager.GetString(Settings.Language, StringKey.MENU_ITEMS_INVEDITOR_DUPE_BUTTON_SETSTACK_FASTEUROUSD)))
|
||||
ItemFeatures.DupeDollarsEuros();
|
||||
break;
|
||||
}
|
||||
GUI.DragWindow();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using UnityEngine;
|
||||
|
||||
|
||||
//Credits myshmeh
|
||||
namespace EscapeFromTarkovCheat.Utils
|
||||
{
|
||||
public static class AllocConsoleHandler
|
||||
{
|
||||
[DllImport("Kernel32.dll")]
|
||||
private static extern bool AllocConsole();
|
||||
|
||||
[DllImport("msvcrt.dll")]
|
||||
public static extern int system(string cmd);
|
||||
|
||||
public static void Open()
|
||||
{
|
||||
AllocConsole();
|
||||
Console.SetOut(new StreamWriter(Console.OpenStandardOutput()) { AutoFlush = true });
|
||||
Application.logMessageReceivedThreaded += (condition, stackTrace, type) => Console.WriteLine(condition + " " + stackTrace);
|
||||
}
|
||||
|
||||
public static void ClearAllocConsole()
|
||||
{
|
||||
system("CLS");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,165 +0,0 @@
|
|||
using EscapeFromTarkovCheat.Utils;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EscapeFromTarkovCheat.Utils
|
||||
{
|
||||
public enum BoneType
|
||||
{
|
||||
Empty = 0,
|
||||
IKController,
|
||||
Mesh,
|
||||
Vest_0,
|
||||
Vest_1,
|
||||
backpack,
|
||||
backpack_0,
|
||||
backpack_1,
|
||||
backpack_2,
|
||||
razgruz,
|
||||
razgruz_0,
|
||||
razgruz_1,
|
||||
razgruz_2,
|
||||
Root_Joint,
|
||||
HumanPelvis,
|
||||
HumanLThigh1,
|
||||
HumanLThigh2,
|
||||
HumanLCalf,
|
||||
HumanLFoot,
|
||||
HumanLToe,
|
||||
HumanRThigh1,
|
||||
HumanRThigh2,
|
||||
HumanRCalf,
|
||||
HumanRFoot,
|
||||
HumanRToe,
|
||||
Bear_Feet,
|
||||
USEC_Feet,
|
||||
BEAR_feet_1,
|
||||
weapon_holster_pistol,
|
||||
HumanSpine1,
|
||||
HumanGear1,
|
||||
HumanGear2,
|
||||
HumanGear3,
|
||||
HumanGear4,
|
||||
HumanGear4_1,
|
||||
HumanGear5,
|
||||
HumanSpine2,
|
||||
HumanSpine3,
|
||||
IK_S_LForearm1,
|
||||
IK_S_LForearm2,
|
||||
IK_S_LForearm3,
|
||||
IK_S_LPalm,
|
||||
IK_S_LDigit11,
|
||||
IK_S_LDigit12,
|
||||
IK_S_LDigit13,
|
||||
IK_S_LDigit21,
|
||||
IK_S_LDigit22,
|
||||
IK_S_LDigit23,
|
||||
IK_S_LDigit31,
|
||||
IK_S_LDigit32,
|
||||
IK_S_LDigit33,
|
||||
IK_S_LDigit41,
|
||||
IK_S_LDigit42,
|
||||
IK_S_LDigit43,
|
||||
IK_S_LDigit51,
|
||||
IK_S_LDigit52,
|
||||
IK_S_LDigit53,
|
||||
XYZ,
|
||||
LCollarbone_anim,
|
||||
RCollarbone_anim,
|
||||
RCollarbone_anim_XYZ,
|
||||
Weapon_root_3rd_anim,
|
||||
Weapon_root_3rd_anim_XYZ_1,
|
||||
Bend_Goal_Left,
|
||||
Bend_Goal_Right,
|
||||
Bend_Goal_Right_XYZ_1,
|
||||
HumanRibcage,
|
||||
IK_LForearm1,
|
||||
IK_LForearm2,
|
||||
IK_LForearm3,
|
||||
IK_LPalm,
|
||||
IK_LDigit11,
|
||||
IK_LDigit12,
|
||||
IK_LDigit13,
|
||||
IK_LDigit21,
|
||||
IK_LDigit22,
|
||||
IK_LDigit23,
|
||||
IK_LDigit31,
|
||||
IK_LDigit32,
|
||||
IK_LDigit33,
|
||||
IK_LDigit41,
|
||||
IK_LDigit42,
|
||||
IK_LDigit43,
|
||||
IK_LDigit51,
|
||||
IK_LDigit52,
|
||||
IK_LDigit53,
|
||||
Camera_animated,
|
||||
CameraContainer,
|
||||
Cam,
|
||||
HumanLCollarbone,
|
||||
HumanLUpperarm,
|
||||
HumanLForearm1,
|
||||
HumanLForearm2,
|
||||
HumanLForearm3,
|
||||
HumanLPalm,
|
||||
HumanLDigit11,
|
||||
HumanLDigit12,
|
||||
HumanLDigit13,
|
||||
HumanLDigit21,
|
||||
HumanLDigit22,
|
||||
HumanLDigit23,
|
||||
HumanLDigit31,
|
||||
HumanLDigit32,
|
||||
HumanLDigit33,
|
||||
HumanLDigit41,
|
||||
HumanLDigit42,
|
||||
HumanLDigit43,
|
||||
HumanLDigit51,
|
||||
HumanLDigit52,
|
||||
HumanLDigit53,
|
||||
HumanRCollarbone,
|
||||
HumanRUpperarm,
|
||||
HumanRForearm1,
|
||||
HumanRForearm2,
|
||||
HumanRForearm3,
|
||||
HumanRPalm,
|
||||
HumanRDigit11,
|
||||
HumanRDigit12,
|
||||
HumanRDigit13,
|
||||
HumanRDigit21,
|
||||
HumanRDigit22,
|
||||
HumanRDigit23,
|
||||
HumanRDigit31,
|
||||
HumanRDigit32,
|
||||
HumanRDigit33,
|
||||
HumanRDigit41,
|
||||
HumanRDigit42,
|
||||
HumanRDigit43,
|
||||
HumanRDigit51,
|
||||
HumanRDigit52,
|
||||
HumanRDigit53,
|
||||
Weapon_root,
|
||||
HumanNeck,
|
||||
HumanHead,
|
||||
HumanBackpack,
|
||||
weapon_holster,
|
||||
weapon_holster1,
|
||||
Camera_animated_3rd
|
||||
}
|
||||
|
||||
public static class BonesType
|
||||
{
|
||||
public static Vector3 GetBonePosition(BoneType boneType)
|
||||
{
|
||||
var player = Main.LocalPlayer;
|
||||
if (player == null || player.PlayerBody == null || player.PlayerBody.SkeletonRootJoint == null)
|
||||
return Vector3.zero;
|
||||
|
||||
var bone = player.PlayerBody.SkeletonRootJoint.Bones.ElementAtOrDefault((int)boneType).Value;
|
||||
if (bone == null)
|
||||
return Vector3.zero;
|
||||
|
||||
return GameUtils.WorldPointToScreenPoint(bone.position);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,161 +0,0 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using Diz.Skinning;
|
||||
using EFT;
|
||||
using EFT.Interactive;
|
||||
using EFT.InventoryLogic;
|
||||
using EFT.UI;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EscapeFromTarkovCheat.Utils
|
||||
{
|
||||
|
||||
public static class GameUtils
|
||||
{
|
||||
public static float Map(float value, float sourceFrom, float sourceTo, float destinationFrom, float destinationTo)
|
||||
{
|
||||
return (value - sourceFrom) / (sourceTo - sourceFrom) * (destinationTo - destinationFrom) + destinationFrom;
|
||||
}
|
||||
public static bool IsPlayerValid(Player player)
|
||||
{
|
||||
return player != null && player.Transform != null && player.PlayerBones != null && player.PlayerBones.transform != null;
|
||||
}
|
||||
public static bool IsExfiltrationPointValid(ExfiltrationPoint lootItem)
|
||||
{
|
||||
return lootItem != null;
|
||||
}
|
||||
public static bool IsLootItemValid(LootItem lootItem)
|
||||
{
|
||||
return lootItem != null && lootItem.Item != null && lootItem.Item.Template != null;
|
||||
}
|
||||
|
||||
public static bool IsLootableContainerValid(LootableContainer lootableContainer)
|
||||
{
|
||||
return lootableContainer != null && lootableContainer.Template != null;
|
||||
}
|
||||
|
||||
public static bool IsPlayerAlive(Player player)
|
||||
{
|
||||
if (!IsPlayerValid(player))
|
||||
return false;
|
||||
|
||||
if (player.HealthController == null)
|
||||
return false;
|
||||
|
||||
return player.HealthController.IsAlive;
|
||||
}
|
||||
public static bool IsPlayerVisible(Player player)
|
||||
{
|
||||
if (player == null || Camera.main == null)
|
||||
return false;
|
||||
|
||||
// 可视检查部位
|
||||
BifacialTransform[] pointsToCheck = {
|
||||
player.PlayerBones.Head,
|
||||
player.PlayerBones.Spine3,
|
||||
player.PlayerBones.Pelvis
|
||||
};
|
||||
|
||||
foreach (BifacialTransform point in pointsToCheck)
|
||||
{
|
||||
if (point == null)
|
||||
continue;
|
||||
|
||||
// 射线方向
|
||||
Vector3 direction = point.position - Camera.main.transform.position;
|
||||
|
||||
// 射线检测
|
||||
if (!Physics.Raycast(Camera.main.transform.position, direction, out RaycastHit hit, direction.magnitude))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// 射线命中
|
||||
if (hit.collider.gameObject == player.gameObject)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
public static Vector3 WorldPointToScreenPoint(Vector3 worldPoint)
|
||||
{
|
||||
Vector3 screenPoint = Main.MainCamera.WorldToScreenPoint(worldPoint);
|
||||
|
||||
screenPoint.y = Screen.height - screenPoint.y;
|
||||
|
||||
return screenPoint;
|
||||
}
|
||||
|
||||
public static bool IsScreenPointVisible(Vector3 screenPoint)
|
||||
{
|
||||
return screenPoint.z > 0.01f && screenPoint.x > -5f && screenPoint.y > -5f && screenPoint.x < Screen.width && screenPoint.y < Screen.height;
|
||||
}
|
||||
|
||||
public static Vector3 GetBonePosByID(Player player, int id)
|
||||
{
|
||||
Vector3 result;
|
||||
try
|
||||
{
|
||||
result = SkeletonBonePos(player.PlayerBones.AnimatedTransform.Original.gameObject.GetComponent<PlayerBody>().SkeletonRootJoint, id);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
result = Vector3.zero;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static Vector3 GetBonePosByEID(Player player, BoneType eid)
|
||||
{
|
||||
Vector3 result;
|
||||
try
|
||||
{
|
||||
result = SkeletonBonePos(player.PlayerBones.AnimatedTransform.Original.gameObject.GetComponent<PlayerBody>().SkeletonRootJoint, (int)eid);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
result = Vector3.zero;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static Vector3 SkeletonBonePos(Skeleton skeleton, int id)
|
||||
{
|
||||
return skeleton.Bones.ElementAt(id).Value.position;
|
||||
}
|
||||
public static void AddConsoleLog(string log)
|
||||
{
|
||||
if (PreloaderUI.Instantiated)
|
||||
ConsoleScreen.Log(log);
|
||||
}
|
||||
public static Vector3 GetTargetPosition()
|
||||
{
|
||||
var centerPosition = Main.LocalPlayer.Transform.position;
|
||||
|
||||
if (Main.LocalPlayer.HandsController is Player.FirearmController firearmController)
|
||||
{
|
||||
if (Physics.Raycast(new Ray(firearmController.Fireport.position, firearmController.WeaponDirection), out RaycastHit hit, float.MaxValue))
|
||||
{
|
||||
centerPosition = hit.point;
|
||||
}
|
||||
}
|
||||
|
||||
return centerPosition;
|
||||
}
|
||||
public static bool IsGroundLoot(LootItem lootItem)
|
||||
{
|
||||
return lootItem.GetComponent<Corpse>() == null;
|
||||
}
|
||||
public static bool IsInteractableLoot(LootItem lootItem)
|
||||
{
|
||||
var collider = lootItem.GetComponent<Collider>();
|
||||
return collider != null && collider.enabled;
|
||||
}
|
||||
public static bool IsInventoryItemValid(Item item)
|
||||
{
|
||||
return item != null && item.Template != null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,158 +0,0 @@
|
|||
/**
|
||||
* Render class Credit to ZAT from Unknowncheats
|
||||
* https://www.unknowncheats.me/forum/members/562321.html
|
||||
*/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EscapeFromTarkovCheat.Utils
|
||||
{
|
||||
public static class Render
|
||||
{
|
||||
public static Material DrawMaterial = new Material(Shader.Find("Hidden/Internal-Colored"));
|
||||
|
||||
public static GUIStyle StringStyle { get; set; } = new GUIStyle(GUI.skin.label);
|
||||
private class RingArray
|
||||
{
|
||||
public Vector2[] Positions { get; private set; }
|
||||
|
||||
public RingArray(int numSegments)
|
||||
{
|
||||
Positions = new Vector2[numSegments];
|
||||
var stepSize = 360f / numSegments;
|
||||
for (int i = 0; i < numSegments; i++)
|
||||
{
|
||||
var rad = Mathf.Deg2Rad * stepSize * i;
|
||||
Positions[i] = new Vector2(Mathf.Sin(rad), Mathf.Cos(rad));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static Dictionary<int, RingArray> ringDict = new Dictionary<int, RingArray>();
|
||||
|
||||
public static Color Color
|
||||
{
|
||||
get { return GUI.color; }
|
||||
set { GUI.color = value; }
|
||||
}
|
||||
|
||||
public static void DrawLine(Vector2 from, Vector2 to, float thickness, Color color)
|
||||
{
|
||||
Color = color;
|
||||
DrawLine(from, to, thickness);
|
||||
}
|
||||
public static void DrawLine(Vector2 from, Vector2 to, float thickness)
|
||||
{
|
||||
var delta = (to - from).normalized;
|
||||
var angle = Mathf.Atan2(delta.y, delta.x) * Mathf.Rad2Deg;
|
||||
GUIUtility.RotateAroundPivot(angle, from);
|
||||
DrawBox(from, Vector2.right * (from - to).magnitude, thickness, false);
|
||||
GUIUtility.RotateAroundPivot(-angle, from);
|
||||
}
|
||||
|
||||
public static void DrawBox(float x, float y, float w, float h, Color color)
|
||||
{
|
||||
DrawLine(new Vector2(x, y), new Vector2(x + w, y), 1f, color);
|
||||
DrawLine(new Vector2(x, y), new Vector2(x, y + h), 1f,color);
|
||||
DrawLine(new Vector2(x + w, y), new Vector2(x + w, y + h), 1f, color);
|
||||
DrawLine(new Vector2(x, y + h), new Vector2(x + w, y + h), 1f, color);
|
||||
}
|
||||
|
||||
public static void DrawBox(Vector2 position, Vector2 size, float thickness, Color color, bool centered = true)
|
||||
{
|
||||
Color = color;
|
||||
DrawBox(position, size, thickness, centered);
|
||||
}
|
||||
public static void DrawBox(Vector2 position, Vector2 size, float thickness, bool centered = true)
|
||||
{
|
||||
var upperLeft = centered ? position - size / 2f : position;
|
||||
GUI.DrawTexture(new Rect(position.x, position.y, size.x, thickness), Texture2D.whiteTexture);
|
||||
GUI.DrawTexture(new Rect(position.x, position.y, thickness, size.y), Texture2D.whiteTexture);
|
||||
GUI.DrawTexture(new Rect(position.x + size.x, position.y, thickness, size.y), Texture2D.whiteTexture);
|
||||
GUI.DrawTexture(new Rect(position.x, position.y + size.y, size.x + thickness, thickness), Texture2D.whiteTexture);
|
||||
}
|
||||
|
||||
public static void DrawCross(Vector2 position, Vector2 size, float thickness, Color color)
|
||||
{
|
||||
Color = color;
|
||||
DrawCross(position, size, thickness);
|
||||
}
|
||||
public static void DrawCross(Vector2 position, Vector2 size, float thickness)
|
||||
{
|
||||
GUI.DrawTexture(new Rect(position.x - size.x / 2f, position.y, size.x, thickness), Texture2D.whiteTexture);
|
||||
GUI.DrawTexture(new Rect(position.x, position.y - size.y / 2f, thickness, size.y), Texture2D.whiteTexture);
|
||||
}
|
||||
|
||||
public static void DrawDot(Vector2 position, Color color)
|
||||
{
|
||||
Color = color;
|
||||
DrawDot(position);
|
||||
}
|
||||
public static void DrawDot(Vector2 position)
|
||||
{
|
||||
DrawBox(position - Vector2.one, Vector2.one * 2f, 1f);
|
||||
}
|
||||
|
||||
public static void DrawString(Vector2 position, string label, Color color, bool centered = true)
|
||||
{
|
||||
Color = color;
|
||||
DrawString(position, label, centered);
|
||||
}
|
||||
public static void DrawString(Vector2 position, string label, bool centered = true)
|
||||
{
|
||||
var content = new GUIContent(label);
|
||||
var size = StringStyle.CalcSize(content);
|
||||
var upperLeft = centered ? position - size / 2f : position;
|
||||
GUI.Label(new Rect(upperLeft, size), content);
|
||||
}
|
||||
|
||||
public static void DrawCircle(Vector2 position, float radius, int numSides, bool centered = true, float thickness = 1f)
|
||||
{
|
||||
DrawCircle(position, radius, numSides, Color.white, centered, thickness);
|
||||
}
|
||||
public static void DrawCircle(Vector2 position, float radius, int numSides, Color color, bool centered = true, float thickness = 1f)
|
||||
{
|
||||
RingArray arr;
|
||||
if (ringDict.ContainsKey(numSides))
|
||||
arr = ringDict[numSides];
|
||||
else
|
||||
arr = ringDict[numSides] = new RingArray(numSides);
|
||||
|
||||
|
||||
var center = centered ? position : position + Vector2.one * radius;
|
||||
|
||||
for (int i = 0; i < numSides - 1; i++)
|
||||
DrawLine(center + arr.Positions[i] * radius, center + arr.Positions[i + 1] * radius, thickness, color);
|
||||
|
||||
DrawLine(center + arr.Positions[0] * radius, center + arr.Positions[arr.Positions.Length - 1] * radius, thickness, color);
|
||||
}
|
||||
|
||||
public static void DrawSnapline(Vector3 worldpos, Color color)
|
||||
{
|
||||
Vector3 pos = Main.MainCamera.WorldToScreenPoint(worldpos);
|
||||
pos.y = Screen.height - pos.y;
|
||||
GL.PushMatrix();
|
||||
GL.Begin(1);
|
||||
DrawMaterial.SetPass(0);
|
||||
GL.Color(color);
|
||||
GL.Vertex3(Screen.width / 2, Screen.height, 0f);
|
||||
GL.Vertex3(pos.x, pos.y, 0f);
|
||||
GL.End();
|
||||
GL.PopMatrix();
|
||||
}
|
||||
public static void DrawBoneLine(Vector2 from, Vector2 to, float thickness, Color color)
|
||||
{
|
||||
Color = color;
|
||||
DrawBoneLine(from, to, thickness);
|
||||
}
|
||||
public static void DrawBoneLine(Vector2 from, Vector2 to, float thickness)
|
||||
{
|
||||
var delta = (to - from).normalized;
|
||||
var angle = Mathf.Atan2(delta.y, delta.x) * Mathf.Rad2Deg;
|
||||
GUIUtility.RotateAroundPivot(angle, from);
|
||||
DrawBox(from, Vector2.right * (from - to).magnitude, thickness, false);
|
||||
GUIUtility.RotateAroundPivot(-angle, from);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using EFT.Visual;
|
||||
using EscapeFromTarkovCheat.Data;
|
||||
using EscapeFromTarkovCheat.Feauters;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EscapeFromTarkovCheat.Utils
|
||||
{
|
||||
class Settings
|
||||
{
|
||||
// Locales
|
||||
internal static Locale Language = Locale.ENGLISH;
|
||||
|
||||
// ESP
|
||||
// Players
|
||||
internal static bool DrawPlayers = true;
|
||||
internal static bool DrawPlayerName = true;
|
||||
internal static bool DrawPlayerHealth = false;
|
||||
internal static bool DrawPlayerBox = true;
|
||||
internal static bool DrawPlayerLine = true;
|
||||
internal static bool DrawPlayerSkeletons = true;
|
||||
internal static float DrawPlayersDistance = 200f;
|
||||
|
||||
// Loot
|
||||
internal static bool DrawLootItems = false;
|
||||
internal static float DrawLootItemsDistance = 300f;
|
||||
internal static bool DrawLootableContainers = false;
|
||||
internal static float DrawLootableContainersDistance = 10f;
|
||||
internal static bool DrawExfiltrationPoints = true;
|
||||
|
||||
// Aimbot
|
||||
internal static bool Aimbot = true;
|
||||
internal static bool VisibleOnly = false;
|
||||
internal static bool SilentAim = false;
|
||||
internal static float AimbotSmooth = 50f;
|
||||
internal static bool AimbotDrawFOV = true;
|
||||
internal static float AimbotFOV = 10f;
|
||||
internal static float AimbotRange = 200f;
|
||||
internal static bool NoRecoil = true;
|
||||
|
||||
// Miscellaneous
|
||||
internal static bool GodMode = true;
|
||||
internal static bool Stamina = true;
|
||||
internal static bool SpeedHack = false;
|
||||
internal static float SpeedAddition = 2.5f;
|
||||
internal static float ExperienceAmount = 10000f;
|
||||
|
||||
// Items
|
||||
internal static float dupeStackCount = 2;
|
||||
|
||||
// Key Bindings
|
||||
internal static KeyCode InstaHeal = KeyCode.Keypad1;
|
||||
internal static KeyCode KillSwitch = KeyCode.Keypad2;
|
||||
internal static KeyCode TpLoots = KeyCode.Keypad3;
|
||||
internal static KeyCode UnlockDoors = KeyCode.Keypad4;
|
||||
internal static KeyCode IncreaseTraderStandingKey = KeyCode.Keypad5;
|
||||
internal static KeyCode CallAirdrop = KeyCode.Keypad6;
|
||||
internal static KeyCode TpEnemies = KeyCode.Keypad7;
|
||||
internal static KeyCode AimbotKey = KeyCode.Mouse1;
|
||||
|
||||
// Switches
|
||||
internal static bool debug = true;
|
||||
}
|
||||
}
|
||||
10
LICENSE
10
LICENSE
|
|
@ -1,10 +0,0 @@
|
|||
This is free and unencumbered software released into the public domain.
|
||||
|
||||
Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.
|
||||
|
||||
In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and
|
||||
successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
For more information, please refer to <http://unlicense.org/>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Managed/NLog.dll
BIN
Managed/NLog.dll
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue