mirror of
https://github.com/ApeMV/AmongUsRevamped.git
synced 2026-10-20 01:46:28 +00:00
Settings and settings + settings, settings
This commit is contained in:
1 parent
f4c157153a
commit
95106ddeeb
9 files changed
+565
-15
No files matched your search
+3
-1
@@ -38,9 +38,11 @@ public partial class Main : BasePlugin
|
|||||||
|
|
||||||
public static NormalGameOptionsV10 NormalOptions => GameOptionsManager.Instance != null ? GameOptionsManager.Instance.currentNormalGameOptions : null;
|
public static NormalGameOptionsV10 NormalOptions => GameOptionsManager.Instance != null ? GameOptionsManager.Instance.currentNormalGameOptions : null;
|
||||||
public static HideNSeekGameOptionsV10 HideNSeekOptions => GameOptionsManager.Instance != null ? GameOptionsManager.Instance.currentHideNSeekGameOptions : null;
|
public static HideNSeekGameOptionsV10 HideNSeekOptions => GameOptionsManager.Instance != null ? GameOptionsManager.Instance.currentHideNSeekGameOptions : null;
|
||||||
|
public static MapNames CurrentMap => (MapNames)NormalOptions.MapId;
|
||||||
|
|
||||||
public static bool HasArgumentException;
|
public static bool HasArgumentException;
|
||||||
public static string CredentialsText;
|
public static string CredentialsText;
|
||||||
public const string ModVersion = "v1.5.1";
|
public const string ModVersion = "v1.5.2";
|
||||||
|
|
||||||
public static float GameTimer;
|
public static float GameTimer;
|
||||||
|
|
||||||
|
|||||||
@@ -99,12 +99,46 @@ namespace AmongUsRevamped
|
|||||||
public static OptionItem NoGameEnd;
|
public static OptionItem NoGameEnd;
|
||||||
|
|
||||||
//Gameplay
|
//Gameplay
|
||||||
public static OptionItem TabGroupGameplayGeneral;
|
public static OptionItem TabGroupSabotages;
|
||||||
public static OptionItem DisableSabotage;
|
public static OptionItem DisableSabotage;
|
||||||
|
public static OptionItem DisableReactor;
|
||||||
|
public static OptionItem DisableOxygen;
|
||||||
|
public static OptionItem DisableLights;
|
||||||
|
public static OptionItem DisableComms;
|
||||||
|
public static OptionItem DisableHeli;
|
||||||
|
public static OptionItem DisableMushroomMixup;
|
||||||
public static OptionItem DisableCloseDoor;
|
public static OptionItem DisableCloseDoor;
|
||||||
|
|
||||||
|
public static OptionItem TabGroupGameplayGeneral;
|
||||||
public static OptionItem DisableReport;
|
public static OptionItem DisableReport;
|
||||||
|
|
||||||
|
public static OptionItem ChangeDecontaminationTime;
|
||||||
|
public static OptionItem DecontaminationTimeOnMiraHQ;
|
||||||
|
public static OptionItem DecontaminationDoorOpenTimeOnMiraHQ;
|
||||||
|
public static OptionItem DecontaminationTimeOnPolus;
|
||||||
|
public static OptionItem DecontaminationDoorOpenTimeOnPolus;
|
||||||
|
|
||||||
|
public static OptionItem DisableDevices;
|
||||||
|
private static OptionItem DisableSkeldDevices;
|
||||||
|
public static OptionItem DisableSkeldAdmin;
|
||||||
|
public static OptionItem DisableSkeldCamera;
|
||||||
|
private static OptionItem DisableMiraHQDevices;
|
||||||
|
public static OptionItem DisableMiraHQAdmin;
|
||||||
|
public static OptionItem DisableMiraHQDoorLog;
|
||||||
|
private static OptionItem DisablePolusDevices;
|
||||||
|
public static OptionItem DisablePolusAdmin;
|
||||||
|
public static OptionItem DisablePolusCamera;
|
||||||
|
public static OptionItem DisablePolusVital;
|
||||||
|
private static OptionItem DisableAirshipDevices;
|
||||||
|
public static OptionItem DisableAirshipCockpitAdmin;
|
||||||
|
public static OptionItem DisableAirshipRecordsAdmin;
|
||||||
|
public static OptionItem DisableAirshipCamera;
|
||||||
|
public static OptionItem DisableAirshipVital;
|
||||||
|
private static OptionItem DisableFungleDevices;
|
||||||
|
public static OptionItem DisableFungleCamera;
|
||||||
|
public static OptionItem DisableFungleVital;
|
||||||
|
|
||||||
|
|
||||||
public static OptionItem TabGroupTasks;
|
public static OptionItem TabGroupTasks;
|
||||||
public static OptionItem OverrideTaskSettings;
|
public static OptionItem OverrideTaskSettings;
|
||||||
|
|
||||||
@@ -226,6 +260,14 @@ namespace AmongUsRevamped
|
|||||||
public static OptionItem CrewAutoWinsGameAfter;
|
public static OptionItem CrewAutoWinsGameAfter;
|
||||||
public static OptionItem CantKillTime;
|
public static OptionItem CantKillTime;
|
||||||
public static OptionItem MisfiresToSuicide;
|
public static OptionItem MisfiresToSuicide;
|
||||||
|
public static OptionItem SNSDisableSabotage;
|
||||||
|
public static OptionItem SNSDisableReactor;
|
||||||
|
public static OptionItem SNSDisableOxygen;
|
||||||
|
public static OptionItem SNSDisableLights;
|
||||||
|
public static OptionItem SNSDisableComms;
|
||||||
|
public static OptionItem SNSDisableHeli;
|
||||||
|
public static OptionItem SNSDisableMushroomMixup;
|
||||||
|
public static OptionItem SNSDisableCloseDoor;
|
||||||
|
|
||||||
public static OptionItem TabGroupSpeedrun;
|
public static OptionItem TabGroupSpeedrun;
|
||||||
public static OptionItem SpeedrunSettingsOverride;
|
public static OptionItem SpeedrunSettingsOverride;
|
||||||
@@ -341,6 +383,28 @@ namespace AmongUsRevamped
|
|||||||
MisfiresToSuicide = IntegerOptionItem.Create(70052, "Suicide After Amount Of Misfires", new(1, 10, 1), 2, TabGroup.GamemodeSettings, false);
|
MisfiresToSuicide = IntegerOptionItem.Create(70052, "Suicide After Amount Of Misfires", new(1, 10, 1), 2, TabGroup.GamemodeSettings, false);
|
||||||
CrewAutoWinsGameAfter = IntegerOptionItem.Create(70054, "Crewmates Automatically Win After", new(0, 600, 10), 300, TabGroup.GamemodeSettings, false)
|
CrewAutoWinsGameAfter = IntegerOptionItem.Create(70054, "Crewmates Automatically Win After", new(0, 600, 10), 300, TabGroup.GamemodeSettings, false)
|
||||||
.SetValueFormat(OptionFormat.Seconds);
|
.SetValueFormat(OptionFormat.Seconds);
|
||||||
|
SNSDisableSabotage = BooleanOptionItem.Create(70055, "Disable SnS Critical Sabotages", true, TabGroup.GamemodeSettings, false)
|
||||||
|
.SetColor(Color.red);
|
||||||
|
SNSDisableReactor = BooleanOptionItem.Create(70056, "Disable Reactor Sabotage", true, TabGroup.GamemodeSettings, false)
|
||||||
|
.SetParent(SNSDisableSabotage)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
SNSDisableOxygen = BooleanOptionItem.Create(70057, "Disable O2 Sabotage", true, TabGroup.GamemodeSettings, false)
|
||||||
|
.SetParent(SNSDisableSabotage)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
SNSDisableLights = BooleanOptionItem.Create(70058, "Disable Lights Sabotage", true, TabGroup.GamemodeSettings, false)
|
||||||
|
.SetParent(SNSDisableSabotage)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
SNSDisableComms = BooleanOptionItem.Create(70059, "Disable Communications Sabotage", true, TabGroup.GamemodeSettings, false)
|
||||||
|
.SetParent(SNSDisableSabotage)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
SNSDisableHeli = BooleanOptionItem.Create(70060, "Disable Crash Course Sabotage", true, TabGroup.GamemodeSettings, false)
|
||||||
|
.SetParent(SNSDisableSabotage)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
SNSDisableMushroomMixup = BooleanOptionItem.Create(70061, "Disable Mushroom Mixup Sabotage", true, TabGroup.GamemodeSettings, false)
|
||||||
|
.SetParent(SNSDisableSabotage)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
SNSDisableCloseDoor = BooleanOptionItem.Create(70062, "Disable SnS Door Sabotages", true, TabGroup.GamemodeSettings, false)
|
||||||
|
.SetColor(Color.red);
|
||||||
|
|
||||||
TabGroupSpeedrun = TextOptionItem.Create(70075, "Speedrun", TabGroup.GamemodeSettings)
|
TabGroupSpeedrun = TextOptionItem.Create(70075, "Speedrun", TabGroup.GamemodeSettings)
|
||||||
.SetColor(Color.blue);
|
.SetColor(Color.blue);
|
||||||
@@ -348,15 +412,129 @@ namespace AmongUsRevamped
|
|||||||
GameAutoEndsAfter = IntegerOptionItem.Create(70077, "Game automatically ends after", new(0, 600, 10), 300, TabGroup.GamemodeSettings, false)
|
GameAutoEndsAfter = IntegerOptionItem.Create(70077, "Game automatically ends after", new(0, 600, 10), 300, TabGroup.GamemodeSettings, false)
|
||||||
.SetValueFormat(OptionFormat.Seconds);
|
.SetValueFormat(OptionFormat.Seconds);
|
||||||
|
|
||||||
|
|
||||||
// Gameplay Settings
|
// Gameplay Settings
|
||||||
TabGroupGameplayGeneral = TextOptionItem.Create(60564, "General", TabGroup.ModSettings)
|
TabGroupSabotages = TextOptionItem.Create(60455, "Sabotages", TabGroup.ModSettings)
|
||||||
.SetColor(Color.blue);
|
.SetColor(Color.red);
|
||||||
DisableSabotage = BooleanOptionItem.Create(60565, "Disable Critical Sabotages", false, TabGroup.ModSettings, false)
|
DisableSabotage = BooleanOptionItem.Create(60456, "Disable Critical Sabotages", false, TabGroup.ModSettings, false)
|
||||||
|
.SetColor(Color.red);
|
||||||
|
DisableReactor = BooleanOptionItem.Create(60457, "Disable Reactor Sabotage", false, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(DisableSabotage)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
DisableOxygen = BooleanOptionItem.Create(60458, "Disable O2 Sabotage", false, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(DisableSabotage)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
DisableLights = BooleanOptionItem.Create(60459, "Disable Lights Sabotage", false, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(DisableSabotage)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
DisableComms = BooleanOptionItem.Create(60460, "Disable Communications Sabotage", false, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(DisableSabotage)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
DisableHeli = BooleanOptionItem.Create(60461, "Disable Crash Course Sabotage", false, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(DisableSabotage)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
DisableMushroomMixup = BooleanOptionItem.Create(60462, "Disable Mushroom Mixup Sabotage", false, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(DisableSabotage)
|
||||||
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
DisableCloseDoor = BooleanOptionItem.Create(60566, "Disable Door Sabotages", false, TabGroup.ModSettings, false)
|
DisableCloseDoor = BooleanOptionItem.Create(60566, "Disable Door Sabotages", false, TabGroup.ModSettings, false)
|
||||||
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
.SetColor(Color.red);
|
||||||
|
|
||||||
|
TabGroupGameplayGeneral = TextOptionItem.Create(60564, "General", TabGroup.ModSettings)
|
||||||
|
.SetColor(Color.blue);
|
||||||
DisableReport = BooleanOptionItem.Create(60520, "Disable Body Reports", false, TabGroup.ModSettings, false)
|
DisableReport = BooleanOptionItem.Create(60520, "Disable Body Reports", false, TabGroup.ModSettings, false)
|
||||||
|
.SetColor(Color.blue);
|
||||||
|
|
||||||
|
ChangeDecontaminationTime = BooleanOptionItem.Create(60550, "Override Decontamination Time", false, TabGroup.ModSettings, false)
|
||||||
|
.SetColor(new Color32(19, 188, 233, byte.MaxValue));
|
||||||
|
DecontaminationTimeOnMiraHQ = FloatOptionItem.Create(60551, "Mira HQ Decon Duration", new(0.5f, 10f, 0.25f), 3f, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(ChangeDecontaminationTime)
|
||||||
|
.SetValueFormat(OptionFormat.Seconds)
|
||||||
|
.SetColor(new Color32(19, 188, 233, byte.MaxValue));
|
||||||
|
DecontaminationDoorOpenTimeOnMiraHQ = FloatOptionItem.Create(60552, "Mira HQ Door Open Duration", new(0.5f, 10f, 0.25f), 3f, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(ChangeDecontaminationTime)
|
||||||
|
.SetValueFormat(OptionFormat.Seconds)
|
||||||
|
.SetColor(new Color32(19, 188, 233, byte.MaxValue));
|
||||||
|
DecontaminationTimeOnPolus = FloatOptionItem.Create(60553, "Polus Decon Duration", new(0.5f, 10f, 0.25f), 3f, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(ChangeDecontaminationTime)
|
||||||
|
.SetValueFormat(OptionFormat.Seconds)
|
||||||
|
.SetColor(new Color32(19, 188, 233, byte.MaxValue));
|
||||||
|
DecontaminationDoorOpenTimeOnPolus = FloatOptionItem.Create(60554, "Polus Door Open Duration", new(0.5f, 10f, 0.25f), 3f, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(ChangeDecontaminationTime)
|
||||||
|
.SetValueFormat(OptionFormat.Seconds)
|
||||||
|
.SetColor(new Color32(19, 188, 233, byte.MaxValue));
|
||||||
|
|
||||||
|
DisableDevices = BooleanOptionItem.Create(22900, "Disable Devices", false, TabGroup.ModSettings, false)
|
||||||
|
.SetColor(Color.red);
|
||||||
|
|
||||||
|
DisableSkeldDevices = BooleanOptionItem.Create(22905, "Disable Skeld Devices", false, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(DisableDevices)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
|
||||||
|
DisableSkeldAdmin = BooleanOptionItem.Create(22906, "Disable Skeld Admin", false, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(DisableSkeldDevices)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
|
||||||
|
DisableSkeldCamera = BooleanOptionItem.Create(22907, "Disable Skeld Camera", false, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(DisableSkeldDevices)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
|
||||||
|
DisableMiraHQDevices = BooleanOptionItem.Create(22908, "Disable Mira HQ Devices", false, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(DisableDevices)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
|
||||||
|
DisableMiraHQAdmin = BooleanOptionItem.Create(22909, "Disable Mira HQ Admin", false, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(DisableMiraHQDevices)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
|
||||||
|
DisableMiraHQDoorLog = BooleanOptionItem.Create(22910, "Disable Mira HQ DoorLogs", false, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(DisableMiraHQDevices)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
|
||||||
|
DisablePolusDevices = BooleanOptionItem.Create(22911, "Disable Polus Devices", false, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(DisableDevices)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
|
||||||
|
DisablePolusAdmin = BooleanOptionItem.Create(22912, "Disable Polus Admin", false, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(DisablePolusDevices)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
|
||||||
|
DisablePolusCamera = BooleanOptionItem.Create(22913, "Disable Polus Camera", false, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(DisablePolusDevices)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
|
||||||
|
DisablePolusVital = BooleanOptionItem.Create(22914, "Disable Polus Vitals", false, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(DisablePolusDevices)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
|
||||||
|
DisableAirshipDevices = BooleanOptionItem.Create(22915, "Disable Airship Devices", false, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(DisableDevices)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
|
||||||
|
DisableAirshipCockpitAdmin = BooleanOptionItem.Create(22916, "Disable Airship Cockpit Admin", false, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(DisableAirshipDevices)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
|
||||||
|
DisableAirshipRecordsAdmin = BooleanOptionItem.Create(22917, "Disable Airship Records Admin", false, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(DisableAirshipDevices)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
|
||||||
|
DisableAirshipCamera = BooleanOptionItem.Create(22918, "Disable Airship Camera", false, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(DisableAirshipDevices)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
|
||||||
|
DisableAirshipVital = BooleanOptionItem.Create(22919, "Disable Airship Vitals", false, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(DisableAirshipDevices)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
|
||||||
|
DisableFungleDevices = BooleanOptionItem.Create(22925, "Disable Fungle Devices", false, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(DisableDevices)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
|
||||||
|
DisableFungleCamera = BooleanOptionItem.Create(22926, "Disable Fungle Camera", false, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(DisableFungleDevices)
|
||||||
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
|
||||||
|
DisableFungleVital = BooleanOptionItem.Create(22927, "Disable Fungle Vitals", false, TabGroup.ModSettings, false)
|
||||||
|
.SetParent(DisableFungleDevices)
|
||||||
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,9 @@ public static class FixedUpdate
|
|||||||
{
|
{
|
||||||
nr.SetActive(false);
|
nr.SetActive(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!AmongUsClient.Instance.AmHost) return;
|
||||||
|
DisableDevice.FixedUpdate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
using System;
|
||||||
|
using System.Linq.Expressions;
|
||||||
|
using System.Reflection;
|
||||||
|
using Il2CppInterop.Runtime;
|
||||||
|
using Il2CppInterop.Runtime.InteropTypes;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace AmongUsRevamped;
|
||||||
|
|
||||||
|
|
||||||
|
// Credit: TommyXL
|
||||||
|
public static class Il2CppCastHelper
|
||||||
|
{
|
||||||
|
public static T CastFast<T>(this Il2CppObjectBase obj) where T : Il2CppObjectBase
|
||||||
|
{
|
||||||
|
if (obj is T casted) return casted;
|
||||||
|
#if ANDROID
|
||||||
|
return obj.Cast<T>();
|
||||||
|
#else
|
||||||
|
return obj.Pointer.CastFast<T>();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
private static T CastFast<T>(this IntPtr ptr) where T : Il2CppObjectBase
|
||||||
|
{
|
||||||
|
return CastHelper<T>.Cast(ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class CastHelper<T> where T : Il2CppObjectBase
|
||||||
|
{
|
||||||
|
public static readonly Func<IntPtr, T> Cast;
|
||||||
|
|
||||||
|
static CastHelper()
|
||||||
|
{
|
||||||
|
ConstructorInfo constructor = typeof(T).GetConstructor([typeof(IntPtr)]);
|
||||||
|
ParameterExpression ptr = Expression.Parameter(typeof(IntPtr));
|
||||||
|
NewExpression create = Expression.New(constructor!, ptr);
|
||||||
|
Expression<Func<IntPtr, T>> lambda = Expression.Lambda<Func<IntPtr, T>>(create, ptr);
|
||||||
|
Cast = lambda.Compile();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -221,6 +221,87 @@ public static class Utils
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool IsActive(SystemTypes type)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (Utils.IsLobby || !ShipStatus.Instance || !ShipStatus.Instance.Systems.TryGetValue(type, out ISystemType systemType)) return false;
|
||||||
|
|
||||||
|
int mapId = Main.NormalOptions.MapId;
|
||||||
|
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
|
case SystemTypes.Electrical:
|
||||||
|
{
|
||||||
|
if (mapId == 5) return false;
|
||||||
|
|
||||||
|
var switchSystem = systemType.CastFast<SwitchSystem>();
|
||||||
|
return switchSystem is { IsActive: true };
|
||||||
|
}
|
||||||
|
case SystemTypes.Reactor:
|
||||||
|
{
|
||||||
|
switch (mapId)
|
||||||
|
{
|
||||||
|
case 2:
|
||||||
|
return false;
|
||||||
|
case 4:
|
||||||
|
var heliSabotageSystem = systemType.CastFast<HeliSabotageSystem>();
|
||||||
|
return heliSabotageSystem != null && heliSabotageSystem.IsActive;
|
||||||
|
default:
|
||||||
|
var reactorSystemType = systemType.CastFast<ReactorSystemType>();
|
||||||
|
return reactorSystemType is { IsActive: true };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case SystemTypes.Laboratory:
|
||||||
|
{
|
||||||
|
if (mapId != 2) return false;
|
||||||
|
|
||||||
|
var reactorSystemType = systemType.CastFast<ReactorSystemType>();
|
||||||
|
return reactorSystemType is { IsActive: true };
|
||||||
|
}
|
||||||
|
case SystemTypes.LifeSupp:
|
||||||
|
{
|
||||||
|
if (mapId is 2 or 4 or 5) return false;
|
||||||
|
|
||||||
|
var lifeSuppSystemType = systemType.CastFast<LifeSuppSystemType>();
|
||||||
|
return lifeSuppSystemType is { IsActive: true };
|
||||||
|
}
|
||||||
|
case SystemTypes.Comms:
|
||||||
|
{
|
||||||
|
if (mapId is 1 or 5)
|
||||||
|
{
|
||||||
|
var hqHudSystemType = systemType.TryCast<HqHudSystemType>();
|
||||||
|
return hqHudSystemType != null && hqHudSystemType.IsActive;
|
||||||
|
}
|
||||||
|
|
||||||
|
var hudOverrideSystemType = systemType.CastFast<HudOverrideSystemType>();
|
||||||
|
return hudOverrideSystemType is { IsActive: true };
|
||||||
|
}
|
||||||
|
case SystemTypes.HeliSabotage:
|
||||||
|
{
|
||||||
|
if (mapId != 4) return false;
|
||||||
|
|
||||||
|
var heliSabotageSystem = systemType.CastFast<HeliSabotageSystem>();
|
||||||
|
return heliSabotageSystem != null && heliSabotageSystem.IsActive;
|
||||||
|
}
|
||||||
|
case SystemTypes.MushroomMixupSabotage:
|
||||||
|
{
|
||||||
|
if (mapId != 5) return false;
|
||||||
|
|
||||||
|
var mushroomMixupSabotageSystem = systemType.CastFast<MushroomMixupSabotageSystem>();
|
||||||
|
return mushroomMixupSabotageSystem != null && mushroomMixupSabotageSystem.IsActive;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Logger.Exception(e, "IsActive");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void ShowLastResult(byte playerId = byte.MaxValue)
|
public static void ShowLastResult(byte playerId = byte.MaxValue)
|
||||||
{
|
{
|
||||||
if (InGame)
|
if (InGame)
|
||||||
|
|||||||
@@ -238,7 +238,7 @@ internal static class SendChatPatch
|
|||||||
[HarmonyPatch(typeof(PlayerControl), nameof(PlayerControl.HandleRpc))]
|
[HarmonyPatch(typeof(PlayerControl), nameof(PlayerControl.HandleRpc))]
|
||||||
public static class RPCHandlerPatch
|
public static class RPCHandlerPatch
|
||||||
{
|
{
|
||||||
public static void Prefix(PlayerControl __instance, byte callId, MessageReader reader)
|
public static void Prefix(PlayerControl __instance, [HarmonyArgument(0)] byte callId, [HarmonyArgument(1)] MessageReader reader)
|
||||||
{
|
{
|
||||||
if (!AmongUsClient.Instance.AmHost) return;
|
if (!AmongUsClient.Instance.AmHost) return;
|
||||||
|
|
||||||
@@ -266,7 +266,8 @@ public static class RPCHandlerPatch
|
|||||||
{
|
{
|
||||||
c = keywords.Any(k => text == k);
|
c = keywords.Any(k => text == k);
|
||||||
}
|
}
|
||||||
if (c && !Utils.IsPlayerModerator(__instance.Data.FriendCode) && Options.AutoKickStart.GetBool())
|
|
||||||
|
if (c && !Utils.IsPlayerModerator(__instance.Data.FriendCode) && Options.AutoKickStart.GetBool() && !Utils.InGame)
|
||||||
{
|
{
|
||||||
int clientId = __instance.Data.ClientId;
|
int clientId = __instance.Data.ClientId;
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
namespace AmongUsRevamped;
|
||||||
|
|
||||||
|
[HarmonyPatch(typeof(DeconSystem), nameof(DeconSystem.UpdateSystem))]
|
||||||
|
public static class DeconSystemUpdateSystemPatch
|
||||||
|
{
|
||||||
|
public static void Prefix(DeconSystem __instance)
|
||||||
|
{
|
||||||
|
if (!AmongUsClient.Instance.AmHost) return;
|
||||||
|
|
||||||
|
if (Options.ChangeDecontaminationTime.GetBool())
|
||||||
|
{
|
||||||
|
__instance.DoorOpenTime = Main.CurrentMap switch
|
||||||
|
{
|
||||||
|
MapNames.MiraHQ => Options.DecontaminationDoorOpenTimeOnMiraHQ.GetFloat(),
|
||||||
|
MapNames.Polus => Options.DecontaminationDoorOpenTimeOnPolus.GetFloat(),
|
||||||
|
_ => 3f
|
||||||
|
};
|
||||||
|
|
||||||
|
__instance.DeconTime = Main.CurrentMap switch
|
||||||
|
{
|
||||||
|
MapNames.MiraHQ => Options.DecontaminationTimeOnMiraHQ.GetFloat(),
|
||||||
|
MapNames.Polus => Options.DecontaminationTimeOnPolus.GetFloat(),
|
||||||
|
_ => 3f
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
__instance.DoorOpenTime = 3f;
|
||||||
|
__instance.DeconTime = 3f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,196 @@
|
|||||||
|
using System;
|
||||||
|
using Hazel;
|
||||||
|
using Il2CppInterop.Runtime.InteropTypes.Arrays;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace AmongUsRevamped;
|
||||||
|
|
||||||
|
// https://github.com/ykundesu/SuperNewRoles/blob/master/SuperNewRoles/Mode/SuperHostRoles/BlockTool.cs
|
||||||
|
internal static class DisableDevice
|
||||||
|
{
|
||||||
|
public static readonly List<byte> DesyncComms = [];
|
||||||
|
private static int frame;
|
||||||
|
|
||||||
|
public static readonly Dictionary<string, Vector2> DevicePos = new()
|
||||||
|
{
|
||||||
|
["SkeldAdmin"] = new(3.48f, -8.62f),
|
||||||
|
["SkeldCamera"] = new(-13.06f, -2.45f),
|
||||||
|
["MiraHQAdmin"] = new(21.02f, 19.09f),
|
||||||
|
["MiraHQDoorLog"] = new(16.22f, 5.82f),
|
||||||
|
["PolusLeftAdmin"] = new(22.80f, -21.52f),
|
||||||
|
["PolusRightAdmin"] = new(24.66f, -21.52f),
|
||||||
|
["PolusCamera"] = new(2.96f, -12.74f),
|
||||||
|
["PolusVital"] = new(26.70f, -15.94f),
|
||||||
|
["DleksAdmin"] = new(-3.48f, -8.62f),
|
||||||
|
["DleksCamera"] = new(13.06f, -2.45f),
|
||||||
|
["AirshipCockpitAdmin"] = new(-22.32f, 0.91f),
|
||||||
|
["AirshipRecordsAdmin"] = new(19.89f, 12.60f),
|
||||||
|
["AirshipCamera"] = new(8.10f, -9.63f),
|
||||||
|
["AirshipVital"] = new(25.24f, -7.94f),
|
||||||
|
["FungleCamera"] = new(6.20f, 0.10f),
|
||||||
|
["FungleVital"] = new(-2.50f, -9.80f),
|
||||||
|
["SubmergedVital"] = new(5f, 32.54f),
|
||||||
|
["SubmergedLeftAdmin"] = new(-9.45f, 10.16f),
|
||||||
|
["SubmergedRightAdmin"] = new(-7.07f, 10.16f),
|
||||||
|
["SubmergedCamera"] = new(-3.41f, -34.56f)
|
||||||
|
};
|
||||||
|
|
||||||
|
public static bool DoDisable => Options.DisableDevices.GetBool();
|
||||||
|
|
||||||
|
public static float UsableDistance => Main.CurrentMap switch
|
||||||
|
{
|
||||||
|
MapNames.Skeld => 1.5f,
|
||||||
|
MapNames.MiraHQ => 2.2f,
|
||||||
|
MapNames.Polus => 1.4f,
|
||||||
|
MapNames.Dleks => 1.5f,
|
||||||
|
MapNames.Airship => 1.6f,
|
||||||
|
MapNames.Fungle => 1.7f,
|
||||||
|
_ => 2f
|
||||||
|
};
|
||||||
|
|
||||||
|
public static void FixedUpdate()
|
||||||
|
{
|
||||||
|
if (!AmongUsClient.Instance.AmHost || ShipStatus.Instance == null || !Utils.GamePastRoleSelection) return;
|
||||||
|
frame = frame == 5 ? 0 : ++frame;
|
||||||
|
if (frame != 0) return;
|
||||||
|
|
||||||
|
if (!DoDisable) return;
|
||||||
|
|
||||||
|
foreach (PlayerControl pc in Main.AllPlayerControls)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var doComms = false;
|
||||||
|
Vector2 PlayerPos = pc.GetTruePosition();
|
||||||
|
|
||||||
|
if (!Utils.IsActive(SystemTypes.Comms))
|
||||||
|
{
|
||||||
|
switch (Main.NormalOptions.MapId)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
if (Options.DisableSkeldAdmin.GetBool()) doComms |= Vector2.Distance(PlayerPos, DevicePos["SkeldAdmin"]) <= UsableDistance;
|
||||||
|
if (Options.DisableSkeldCamera.GetBool()) doComms |= Vector2.Distance(PlayerPos, DevicePos["SkeldCamera"]) <= UsableDistance;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
if (Options.DisableMiraHQAdmin.GetBool()) doComms |= Vector2.Distance(PlayerPos, DevicePos["MiraHQAdmin"]) <= UsableDistance;
|
||||||
|
if (Options.DisableMiraHQDoorLog.GetBool()) doComms |= Vector2.Distance(PlayerPos, DevicePos["MiraHQDoorLog"]) <= UsableDistance;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
if (Options.DisablePolusAdmin.GetBool())
|
||||||
|
{
|
||||||
|
doComms |= Vector2.Distance(PlayerPos, DevicePos["PolusLeftAdmin"]) <= UsableDistance;
|
||||||
|
doComms |= Vector2.Distance(PlayerPos, DevicePos["PolusRightAdmin"]) <= UsableDistance;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Options.DisablePolusCamera.GetBool()) doComms |= Vector2.Distance(PlayerPos, DevicePos["PolusCamera"]) <= UsableDistance;
|
||||||
|
if (Options.DisablePolusVital.GetBool()) doComms |= Vector2.Distance(PlayerPos, DevicePos["PolusVital"]) <= UsableDistance;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
if (Options.DisableSkeldAdmin.GetBool()) doComms |= Vector2.Distance(PlayerPos, DevicePos["DleksAdmin"]) <= UsableDistance;
|
||||||
|
if (Options.DisableSkeldCamera.GetBool()) doComms |= Vector2.Distance(PlayerPos, DevicePos["DleksCamera"]) <= UsableDistance;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
if (Options.DisableAirshipCockpitAdmin.GetBool()) doComms |= Vector2.Distance(PlayerPos, DevicePos["AirshipCockpitAdmin"]) <= UsableDistance;
|
||||||
|
if (Options.DisableAirshipRecordsAdmin.GetBool()) doComms |= Vector2.Distance(PlayerPos, DevicePos["AirshipRecordsAdmin"]) <= UsableDistance;
|
||||||
|
if (Options.DisableAirshipCamera.GetBool()) doComms |= Vector2.Distance(PlayerPos, DevicePos["AirshipCamera"]) <= UsableDistance;
|
||||||
|
if (Options.DisableAirshipVital.GetBool()) doComms |= Vector2.Distance(PlayerPos, DevicePos["AirshipVital"]) <= UsableDistance;
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
if (Options.DisableFungleCamera.GetBool()) doComms |= Vector2.Distance(PlayerPos, DevicePos["FungleCamera"]) <= UsableDistance;
|
||||||
|
if (Options.DisableFungleVital.GetBool()) doComms |= Vector2.Distance(PlayerPos, DevicePos["FungleVital"]) <= UsableDistance;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (doComms && !pc.inVent)
|
||||||
|
{
|
||||||
|
if (!DesyncComms.Contains(pc.PlayerId))
|
||||||
|
{
|
||||||
|
DesyncComms.Add(pc.PlayerId);
|
||||||
|
SendDesyncRepair(pc, SystemTypes.Comms, 128);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (!doComms && DesyncComms.Contains(pc.PlayerId))
|
||||||
|
{
|
||||||
|
DesyncComms.Remove(pc.PlayerId);
|
||||||
|
SendDesyncRepair(pc, SystemTypes.Comms, 16);
|
||||||
|
|
||||||
|
if (Main.NormalOptions.MapId is 1 or 5) SendDesyncRepair(pc, SystemTypes.Comms, 17);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex) { Logger.Exception(ex, "DisableDevice"); }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static void SendDesyncRepair(PlayerControl target, SystemTypes systemType, byte amount)
|
||||||
|
{
|
||||||
|
if (!AmongUsClient.Instance.AmHost) return;
|
||||||
|
if (target == null || target.Data == null || target.Data.ClientId == AmongUsClient.Instance.HostId) return;
|
||||||
|
|
||||||
|
MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(
|
||||||
|
ShipStatus.Instance.NetId,
|
||||||
|
(byte)RpcCalls.UpdateSystem,
|
||||||
|
SendOption.Reliable,
|
||||||
|
target.Data.ClientId
|
||||||
|
);
|
||||||
|
|
||||||
|
writer.Write((byte)systemType);
|
||||||
|
writer.WritePacked(target.NetId);
|
||||||
|
writer.Write(amount);
|
||||||
|
|
||||||
|
AmongUsClient.Instance.FinishRpcImmediately(writer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HarmonyPatch(typeof(ShipStatus), nameof(ShipStatus.Start))]
|
||||||
|
public class RemoveDisableDevicesPatch
|
||||||
|
{
|
||||||
|
public static void Postfix()
|
||||||
|
{
|
||||||
|
if (!Options.DisableDevices.GetBool()) return;
|
||||||
|
|
||||||
|
UpdateDisableDevices();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void UpdateDisableDevices()
|
||||||
|
{
|
||||||
|
PlayerControl player = PlayerControl.LocalPlayer;
|
||||||
|
|
||||||
|
Il2CppArrayBase<MapConsole> admins = Object.FindObjectsOfType<MapConsole>(true);
|
||||||
|
Il2CppArrayBase<SystemConsole> consoles = Object.FindObjectsOfType<SystemConsole>(true);
|
||||||
|
if (admins == null || consoles == null) return;
|
||||||
|
|
||||||
|
switch (Main.NormalOptions.MapId)
|
||||||
|
{
|
||||||
|
case 3:
|
||||||
|
case 0:
|
||||||
|
if (Options.DisableSkeldAdmin.GetBool()) admins[0].gameObject.GetComponent<CircleCollider2D>().enabled = false;
|
||||||
|
if (Options.DisableSkeldCamera.GetBool()) consoles.DoIf(x => x.name == "SurvConsole", x => x.gameObject.GetComponent<PolygonCollider2D>().enabled = false);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
if (Options.DisableMiraHQAdmin.GetBool()) admins[0].gameObject.GetComponent<CircleCollider2D>().enabled = false;
|
||||||
|
if (Options.DisableMiraHQDoorLog.GetBool()) consoles.DoIf(x => x.name == "SurvLogConsole", x => x.gameObject.GetComponent<BoxCollider2D>().enabled = false);
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
if (Options.DisablePolusAdmin.GetBool()) admins.Do(x => x.gameObject.GetComponent<BoxCollider2D>().enabled = false);
|
||||||
|
if (Options.DisablePolusCamera.GetBool()) consoles.DoIf(x => x.name == "Surv_Panel", x => x.gameObject.GetComponent<BoxCollider2D>().enabled = false);
|
||||||
|
if (Options.DisablePolusVital.GetBool()) consoles.DoIf(x => x.name == "panel_vitals", x => x.gameObject.GetComponent<BoxCollider2D>().enabled = false);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
admins.Do(x =>
|
||||||
|
{
|
||||||
|
if ((Options.DisableAirshipCockpitAdmin.GetBool() && x.name == "panel_cockpit_map") ||
|
||||||
|
(Options.DisableAirshipRecordsAdmin.GetBool() && x.name == "records_admin_map"))
|
||||||
|
x.gameObject.GetComponent<BoxCollider2D>().enabled = false;
|
||||||
|
});
|
||||||
|
|
||||||
|
if (Options.DisableAirshipCamera.GetBool()) consoles.DoIf(x => x.name == "task_cams", x => x.gameObject.GetComponent<BoxCollider2D>().enabled = false);
|
||||||
|
if (Options.DisableAirshipVital.GetBool()) consoles.DoIf(x => x.name == "panel_vitals", x => x.gameObject.GetComponent<CircleCollider2D>().enabled = false);
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
if (Options.DisableFungleCamera.GetBool()) consoles.DoIf(x => x.name == "BinocularsSecurityConsole", x => x.gameObject.GetComponent<PolygonCollider2D>().enabled = false);
|
||||||
|
if (Options.DisableFungleVital.GetBool()) consoles.DoIf(x => x.name == "VitalsConsole", x => x.gameObject.GetComponent<BoxCollider2D>().enabled = false);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -9,8 +9,6 @@ public static class SabotageSystemTypeRepairDamagePatch
|
|||||||
{
|
{
|
||||||
private static bool Prefix([HarmonyArgument(0)] PlayerControl player, [HarmonyArgument(1)] MessageReader msgReader)
|
private static bool Prefix([HarmonyArgument(0)] PlayerControl player, [HarmonyArgument(1)] MessageReader msgReader)
|
||||||
{
|
{
|
||||||
if (!AmongUsClient.Instance.AmHost) return true;
|
|
||||||
|
|
||||||
byte amount;
|
byte amount;
|
||||||
{
|
{
|
||||||
var newReader = MessageReader.Get(msgReader);
|
var newReader = MessageReader.Get(msgReader);
|
||||||
@@ -18,12 +16,27 @@ public static class SabotageSystemTypeRepairDamagePatch
|
|||||||
newReader.Recycle();
|
newReader.Recycle();
|
||||||
}
|
}
|
||||||
var Sabo = (SystemTypes)amount;
|
var Sabo = (SystemTypes)amount;
|
||||||
|
|
||||||
Logger.Info($" {player.Data.PlayerName} is trying to sabotage: {Sabo}", "SabotageCheck");
|
Logger.Info($" {player.Data.PlayerName} is trying to sabotage: {Sabo}", "SabotageCheck");
|
||||||
if (Options.DisableSabotage.GetBool() || Options.Gamemode.GetValue() == 2)
|
|
||||||
|
if (player.Data.ClientId == AmongUsClient.Instance.HostId) return true;
|
||||||
|
|
||||||
|
if (Options.Gamemode.GetValue() == 0 || Options.Gamemode.GetValue() == 1)
|
||||||
{
|
{
|
||||||
Logger.Info($" Sabotage {Sabo} by: {player.Data.PlayerName} was blocked", "SabotageCheck");
|
if (Sabo == SystemTypes.LifeSupp && Options.DisableOxygen.GetBool() || Sabo == SystemTypes.Reactor && Options.DisableReactor.GetBool() || Sabo == SystemTypes.Electrical && Options.DisableLights.GetBool() || Sabo == SystemTypes.Comms && Options.DisableComms.GetBool() || Sabo == SystemTypes.HeliSabotage && Options.DisableHeli.GetBool() || Sabo == SystemTypes.MushroomMixupSabotage && Options.DisableMushroomMixup.GetBool())
|
||||||
return false;
|
{
|
||||||
|
Logger.Info($" Sabotage {Sabo} by: {player.Data.PlayerName} was blocked", "SabotageCheck");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (Options.Gamemode.GetValue() == 2)
|
||||||
|
{
|
||||||
|
if (Sabo == SystemTypes.LifeSupp && Options.SNSDisableOxygen.GetBool() || Sabo == SystemTypes.Reactor && Options.SNSDisableReactor.GetBool() || Sabo == SystemTypes.Electrical && Options.SNSDisableLights.GetBool() || Sabo == SystemTypes.Comms && Options.SNSDisableComms.GetBool() || Sabo == SystemTypes.HeliSabotage && Options.SNSDisableHeli.GetBool() || Sabo == SystemTypes.MushroomMixupSabotage && Options.SNSDisableMushroomMixup.GetBool())
|
||||||
|
{
|
||||||
|
Logger.Info($" Sabotage {Sabo} by: {player.Data.PlayerName} was blocked", "SnSSabotageCheck");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
else return true;
|
else return true;
|
||||||
}
|
}
|
||||||
@@ -60,6 +73,8 @@ public static class MessageReaderUpdateSystemPatch
|
|||||||
or SystemTypes.Decontamination3
|
or SystemTypes.Decontamination3
|
||||||
or SystemTypes.MedBay) return true;
|
or SystemTypes.MedBay) return true;
|
||||||
|
|
||||||
|
if (player.Data.ClientId == AmongUsClient.Instance.HostId) return true;
|
||||||
|
|
||||||
var amount = MessageReader.Get(reader).ReadByte();
|
var amount = MessageReader.Get(reader).ReadByte();
|
||||||
if (EACR.RpcUpdateSystemCheck(player, systemType, amount))
|
if (EACR.RpcUpdateSystemCheck(player, systemType, amount))
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in new issue
Block a user