fixed? the patch breaking when changing scopes.

This commit is contained in:
notGreg 2022-06-20 20:06:49 +02:00
parent 666f4fd5f2
commit 1aca3df01c
3 changed files with 35 additions and 14 deletions

View File

@ -31,6 +31,10 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="0Harmony, Version=2.9.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\MyFirstPlugin\MyFirstPlugin\lib\0Harmony.dll</HintPath>
</Reference>
<Reference Include="Aki.Reflection">
<HintPath>E:\SPT-AKI\SPT-AKI 2.3.1 UniformAimTest\EscapeFromTarkov_Data\Managed\Aki.Reflection.dll</HintPath>
</Reference>

View File

@ -1,8 +1,7 @@
using System.Reflection;
using Aki.Reflection.Patching;
using EFT;
using UniformAim;
using HarmonyLib;
namespace UniformAim
{
@ -19,4 +18,19 @@ namespace UniformAim
____aimingSens = Plugin.mySens;
}
}
}
public class get_AimingSensitivityPatch : ModulePatch
{
protected override MethodBase GetTargetMethod()
{
return typeof(Player.FirearmController).GetMethod("get_AimingSensitivity");
}
[PatchPostfix]
public static void PatchPostfix(ref float ____aimingSens)
{
____aimingSens = Plugin.mySens;
}
}
}

View File

@ -1,19 +1,18 @@
using BepInEx;
using BepInEx.Configuration;
using UniformAim;
using System;
using UnityEngine;
namespace UniformAim
{
[BepInPlugin("com.greg.tarkovuniformaim", "Uniform Aim for Tarkov", "0.1.1")]
[BepInPlugin("com.greg.tarkovuniformaim", "Uniform Aim for Tarkov", "1.0.0-rc")]
[BepInProcess("EscapeFromTarkov.exe")]
public class Plugin : BaseUnityPlugin
{
//Bepinex.Configurator fields
public static ConfigEntry<int> configFOV;
public static ConfigEntry<float> configCoeff;
public static ConfigEntry<int> configCoeff;
public static ConfigEntry<int> configSens;
public static float mySens = 2f;
@ -22,7 +21,7 @@ namespace UniformAim
float lastFOV = -1f;
float lastFOV2 = -1f;
//human-friendly names
//human-friendly names for variables used later
float FPSCameraFOV = -1f;
float ScopeFOV = -1f;
float currentFOV = -1f;
@ -38,7 +37,6 @@ namespace UniformAim
//Logger.LogInfo("GetAspectRatio(): resX: " + resX + " resY: " + resY);
return (resX / resY);
}
//convert degrees to radians
//calculate horizontal FOV based on vertical FOV
float CalculateHFOV(float FOV)
{
@ -57,25 +55,31 @@ namespace UniformAim
aimedFOV = aimedFOV / 2 * Mathf.Deg2Rad;
hipFOV = hipFOV / 2 * Mathf.Deg2Rad;
//ratio of tangents as sensitivity
float sensitivity = (float)((Math.Tan(aimedFOV) / Math.Tan(hipFOV)) * (mySens / 100));
float exponent = (float)(100f / configCoeff.Value);
return sensitivity;
float tanRatio = (float)(Math.Tan(aimedFOV) / Math.Tan(hipFOV));
float sensitivity = (float)(configSens.Value/100f);
float result = (float)Math.Pow(tanRatio, exponent) * sensitivity;
return result;
}
void Awake()
{
//Enable uniform aim patch
new UpdateSensitivityPatch().Enable();
new get_AimingSensitivityPatch().Enable();
//add configuration slider for field of view
configFOV = Config.Bind("General", "FOV", 75, new ConfigDescription("In-game Field of View value", new AcceptableValueRange<int>(50, 75)));
//add coefficient slider
configCoeff = Config.Bind("General", "Coefficient", 1.33f, new ConfigDescription("Coefficient - increases sensitivity at higher zoom levels, default 4/3", new AcceptableValueRange<float>(0.001f, 5.0f)));
configCoeff = Config.Bind("General", "Coefficient", 133, new ConfigDescription("Coefficient - increases sensitivity at higher zoom levels", new AcceptableValueRange<int>(1, 300)));
//add secondary sensitivity slider for greater control
configSens = Config.Bind("General", "Sensitivity", 25, new ConfigDescription("Secondary sensitivity multiplier in case Tarkov's default isn't enough", new AcceptableValueRange<int>(1, 200)));
configSens = Config.Bind("General", "Sensitivity", 25, new ConfigDescription("Sensitivity while aiming", new AcceptableValueRange<int>(1, 200)));
}
@ -109,7 +113,6 @@ namespace UniformAim
}
mySens = CalculateSensitivity(currentFOV, configFOV.Value, configSens.Value);
}
}
}