v1.9.2 BE

This commit is contained in:
Ape committed 2026-08-03 20:02:59 +02:00
1 parent 90f0224d54
commit 9c1d8a2943
24 files changed
+868 -455

No files matched your search

+1 -1
View File
@@ -44,7 +44,7 @@ public partial class Main : BasePlugin
public static bool HasArgumentException;
public static string CredentialsText;
public const string ModVersion = "v1.9.1";
public const string ModVersion = "v1.9.2";
public static float GameTimer;
+25 -9
View File
@@ -170,12 +170,12 @@ public static class BanManager
public static bool IsWordBanned(PlayerControl player, string input)
{
if (input == "" || !AmongUsClient.Instance.AmHost || Utils.CheckAccessLevel(player.Data.FriendCode) > 0) return false;
if (input == "" || !AmongUsClient.Instance.AmHost || Utils.CheckAccessLevel(player.Data.FriendCode) > 0 || !Options.EnableDeniedWords.GetBool()) return false;
int clientId = player.Data.ClientId;
var bannedWords = File.ReadAllLines(BanWordPath).Where(x => !x.StartsWith("#"));
if (bannedWords.Where(code => !string.IsNullOrWhiteSpace(code)).Any(code => input.Contains(code, StringComparison.OrdinalIgnoreCase)))
if ((Options.DeniedWordsStrength.GetBool() && bannedWords.Where(code => !string.IsNullOrWhiteSpace(code)).Any(code => input.Contains(code, StringComparison.OrdinalIgnoreCase))) || (!Options.DeniedWordsStrength.GetBool() && bannedWords.Where(code => !string.IsNullOrWhiteSpace(code)).Any(code => input.Equals(code, StringComparison.OrdinalIgnoreCase))))
{
if (!Main.SayDeniedWordTimes.ContainsKey(clientId))
@@ -187,9 +187,17 @@ public static class BanManager
if (Main.SayDeniedWordTimes[clientId] >= Options.DeniedWordsToKick.GetInt())
{
AmongUsClient.Instance.KickPlayer(clientId, false);
Logger.Info(Translator.Get("banWordKick", player.Data.PlayerName, Options.DeniedWordsToKick.GetInt()), "DeniedWordKick");
Logger.SendInGame(Translator.Get("banWordKick", player.Data.PlayerName, Options.DeniedWordsToKick.GetInt()));
if (Options.DeniedWordsAsBan.GetBool())
{
AmongUsClient.Instance.KickPlayer(clientId, true);
Logger.SendInGame(Translator.Get("banWordBan", player.Data.PlayerName, Options.DeniedWordsToKick.GetInt()));
}
else
{
AmongUsClient.Instance.KickPlayer(clientId, false);
Logger.SendInGame(Translator.Get("banWordKick", player.Data.PlayerName, Options.DeniedWordsToKick.GetInt()));
}
Logger.Info(Translator.Get("banWordKick", player.Data.PlayerName, Options.DeniedWordsToKick.GetInt()), "DeniedWordKick");
}
return true;
}
@@ -198,10 +206,10 @@ public static class BanManager
public static bool IsStartWord(PlayerControl player, string input)
{
if (input == "" || !AmongUsClient.Instance.AmHost || Utils.CheckAccessLevel(player.Data.FriendCode) > 0) return false;
if (input == "" || !AmongUsClient.Instance.AmHost || Utils.CheckAccessLevel(player.Data.FriendCode) > 0 || !Options.AutoKickStart.GetBool()) return false;
int clientId = player.Data.ClientId;
var startWords = File.ReadAllLines(BanWordPath).Where(x => !x.StartsWith("#"));
var startWords = File.ReadAllLines(StartWordsPath).Where(x => !x.StartsWith("#"));
if ((Options.AutoKickStartStrength.GetBool() && startWords.Where(code => !string.IsNullOrWhiteSpace(code)).Any(code => input.Contains(code, StringComparison.OrdinalIgnoreCase))) || (!Options.AutoKickStartStrength.GetBool() && startWords.Where(code => !string.IsNullOrWhiteSpace(code)).Any(code => input.Equals(code, StringComparison.OrdinalIgnoreCase))))
{
@@ -214,9 +222,17 @@ public static class BanManager
if (Main.SayStartTimes[clientId] >= Options.AutoKickStartTimes.GetInt())
{
AmongUsClient.Instance.KickPlayer(clientId, false);
if (Options.AutoKickStartAsBan.GetBool())
{
AmongUsClient.Instance.KickPlayer(clientId, true);
Logger.SendInGame(Translator.Get("startWordKick", player.Data.PlayerName, Options.AutoKickStartTimes.GetInt()));
}
else
{
AmongUsClient.Instance.KickPlayer(clientId, false);
Logger.SendInGame(Translator.Get("startWordBan", player.Data.PlayerName, Options.AutoKickStartTimes.GetInt()));
}
Logger.Info(Translator.Get("startWordKick", player.Data.PlayerName, Options.AutoKickStartTimes.GetInt()), "StartWordKick");
Logger.SendInGame(Translator.Get("startWordKick", player.Data.PlayerName, Options.AutoKickStartTimes.GetInt()));
}
return true;
}
+4 -1
View File
@@ -76,7 +76,10 @@ internal static class CommandHelper
new Cmd { Name = new[] { "/seeker" }, Prompt = "/seeker {name}", Description = Translator.Get("seekerDesc"), HasVariable = true },
new Cmd { Name = new[] { "/seekers" }, Prompt = "/seekers", Description = Translator.Get("seekersDesc"), HasVariable = false },
new Cmd { Name = new[] { "/clearseeker" }, Prompt = "/clearseeker", Description = Translator.Get("clearSeekerDesc"), HasVariable = false }
new Cmd { Name = new[] { "/clearseeker" }, Prompt = "/clearseeker", Description = Translator.Get("clearSeekerDesc"), HasVariable = false },
new Cmd { Name = new[] { "/mapvote" }, Prompt = "/mapvote", Description = Translator.Get("mapVoteDesc"), HasVariable = false },
new Cmd { Name = new[] { "/allmapvote" }, Prompt = "/allmapvote", Description = Translator.Get("allMapVoteDesc"), HasVariable = false }
};
[HarmonyPostfix]
+113 -97
View File
@@ -72,32 +72,43 @@ namespace AmongUsRevamped
public static OptionItem TabGroupMain;
public static OptionItem TabGroupLevelKick;
public static OptionItem EnableKickLowLevelPlayer;
public static OptionItem KickLowLevelPlayer;
public static OptionItem DontKickLevelOnes;
public static OptionItem TempBanLowLevelPlayer;
public static OptionItem TabGroupKickInvalidFriendCodes;
public static OptionItem KickInvalidFriendCodes;
public static OptionItem TempBanInvalidFriendCodes;
public static OptionItem TabGroupDeniedWords;
public static OptionItem EnableDeniedWords;
public static OptionItem DeniedWordsToKick;
public static OptionItem DeniedWordsAsBan;
public static OptionItem DeniedWordsStrength;
public static OptionItem TabGroupAutoKickStart;
public static OptionItem AutoKickStart;
public static OptionItem AutoKickStartAsBan;
public static OptionItem AutoKickStartTimes;
public static OptionItem AutoKickStartStrength;
public static OptionItem TabGroupAutomation;
public static OptionItem AutoSendGameInfo;
public static OptionItem AutoRejoinLobby;
public static OptionItem AutoStartTimer;
public static OptionItem WaitAutoStart;
public static OptionItem PlayerAutoStart;
public static OptionItem EnableJoinMessages;
public static OptionItem MessagePerPlayerNum;
public static OptionItem TabGroupMisc;
public static OptionItem TabGroupAutostart;
public static OptionItem AutoStartTimer;
public static OptionItem WaitAutoStart;
public static OptionItem PlayerAutoStart;
public static OptionItem Rehost;
public static OptionItem Public;
public static OptionItem TabGroupMisc;
public static OptionItem MapVoteDuration;
public static OptionItem StartCountdown;
public static OptionItem ColorCommandLevel;
public static OptionItem AllowFortegreen;
@@ -107,6 +118,7 @@ namespace AmongUsRevamped
public static OptionItem SlashColorCmd;
public static OptionItem SlashRolesAndGamemodeCmd;
public static OptionItem SlashLastGameCmd;
public static OptionItem SlashMapAndSeekerCmd;
public static OptionItem SlashKickCmd;
public static OptionItem SlashBanCmd;
public static OptionItem SlashEndMeetingCmd;
@@ -270,6 +282,7 @@ namespace AmongUsRevamped
public static OptionItem TabGroupSNS;
public static OptionItem SNSSettingsOverride;
public static OptionItem SNSChatInGame;
public static OptionItem SNSChatInGameExtend;
public static OptionItem CrewAutoWinsGameAfter;
public static OptionItem CantKillTime;
public static OptionItem MisfiresToSuicide;
@@ -294,72 +307,96 @@ namespace AmongUsRevamped
if (IsLoaded) return;
_ = PresetOptionItem.Create(0, TabGroup.SystemSettings)
.SetColor(new Color32(204, 204, 0, 255))
.SetColor(Color.yellow)
.SetHeader(true);
Gamemode = StringOptionItem.Create(1, Translator.Get("gamemode"), gameModes, 0, TabGroup.SystemSettings, false)
.SetColor(Color.green)
.SetColor(Color.yellow)
.SetHeader(true);
TabGroupMain = TextOptionItem.Create(60000, Translator.Get("tabGroupMain"), TabGroup.SystemSettings)
.SetColor(Color.blue);
DeniedWordsToKick = IntegerOptionItem.Create(60049, Translator.Get("deniedWordsToKick"), new(1, 5, 1), 1, TabGroup.SystemSettings, false)
TabGroupLevelKick = TextOptionItem.Create(60048, Translator.Get("tabGroupLevelKick"), TabGroup.ModerationSettings)
.SetColor(Color.red);
EnableKickLowLevelPlayer = BooleanOptionItem.Create(60049, Translator.Get("enableKickLowLevelPlayer"), false, TabGroup.ModerationSettings, false);
KickLowLevelPlayer = IntegerOptionItem.Create(60050, Translator.Get("kickLowLevelPlayer"), new(0, 100, 1), 0, TabGroup.ModerationSettings, false)
.SetParent(EnableKickLowLevelPlayer)
.SetValueFormat(OptionFormat.Level);
TempBanLowLevelPlayer = BooleanOptionItem.Create(60051, Translator.Get("tempBanLowLevelPlayer"), false, TabGroup.ModerationSettings, false)
.SetParent(EnableKickLowLevelPlayer);
DontKickLevelOnes = BooleanOptionItem.Create(60052, Translator.Get("dontKickLevelOnes"), false, TabGroup.ModerationSettings, false)
.SetParent(EnableKickLowLevelPlayer);
KickLowLevelPlayer = IntegerOptionItem.Create(60050, Translator.Get("kickLowLevelPlayer"), new(0, 100, 1), 0, TabGroup.SystemSettings, false)
.SetValueFormat(OptionFormat.Level);
TempBanLowLevelPlayer = BooleanOptionItem.Create(60051, Translator.Get("tempBanLowLevelPlayer"), false, TabGroup.SystemSettings, false)
.SetParent(KickLowLevelPlayer);
DontKickLevelOnes = BooleanOptionItem.Create(60052, Translator.Get("dontKickLevelOnes"), false, TabGroup.SystemSettings, false)
.SetParent(KickLowLevelPlayer);
KickInvalidFriendCodes = BooleanOptionItem.Create(60080, Translator.Get("kickInvalidFriendCodes"), true, TabGroup.SystemSettings, false);
TempBanInvalidFriendCodes = BooleanOptionItem.Create(60081, Translator.Get("tempBanInvalidFriendCodes"), false, TabGroup.SystemSettings, false)
TabGroupKickInvalidFriendCodes = TextOptionItem.Create(60079, Translator.Get("tabGroupKickInvalidFriendCodes"), TabGroup.ModerationSettings)
.SetColor(Color.red);
KickInvalidFriendCodes = BooleanOptionItem.Create(60080, Translator.Get("kickInvalidFriendCodes"), true, TabGroup.ModerationSettings, false);
TempBanInvalidFriendCodes = BooleanOptionItem.Create(60081, Translator.Get("tempBanInvalidFriendCodes"), false, TabGroup.ModerationSettings, false)
.SetParent(KickInvalidFriendCodes);
AutoKickStart = BooleanOptionItem.Create(60123, Translator.Get("autoKickStart"), false, TabGroup.SystemSettings, false);
AutoKickStartAsBan = BooleanOptionItem.Create(60124, Translator.Get("autoKickStartAsBan"), false, TabGroup.SystemSettings, false)
TabGroupDeniedWords = TextOptionItem.Create(60082, Translator.Get("tabGroupDeniedWords"), TabGroup.ModerationSettings)
.SetColor(Color.red);
EnableDeniedWords = BooleanOptionItem.Create(60083, Translator.Get("enableDeniedWords"), false, TabGroup.ModerationSettings, false);
DeniedWordsAsBan = BooleanOptionItem.Create(60084, Translator.Get("autoKickStartAsBan"), false, TabGroup.ModerationSettings, false)
.SetParent(EnableDeniedWords);
DeniedWordsToKick = IntegerOptionItem.Create(60085, Translator.Get("deniedWordsToKick"), new(1, 5, 1), 1, TabGroup.ModerationSettings, false)
.SetParent(EnableDeniedWords)
.SetValueFormat(OptionFormat.Level);
DeniedWordsStrength = BooleanOptionItem.Create(60086, Translator.Get("autoKickStartStrength"), false, TabGroup.ModerationSettings, false)
.SetParent(EnableDeniedWords);
TabGroupAutoKickStart = TextOptionItem.Create(600122, Translator.Get("tabGroupAutoKickStart"), TabGroup.ModerationSettings)
.SetColor(Color.red);
AutoKickStart = BooleanOptionItem.Create(60123, Translator.Get("autoKickStart"), false, TabGroup.ModerationSettings, false);
AutoKickStartAsBan = BooleanOptionItem.Create(60124, Translator.Get("autoKickStartAsBan"), false, TabGroup.ModerationSettings, false)
.SetParent(AutoKickStart);
AutoKickStartTimes = IntegerOptionItem.Create(60125, Translator.Get("autoKickStartTimes"), new(1, 10, 1), 1, TabGroup.SystemSettings, false)
AutoKickStartTimes = IntegerOptionItem.Create(60125, Translator.Get("autoKickStartTimes"), new(1, 10, 1), 1, TabGroup.ModerationSettings, false)
.SetParent(AutoKickStart)
.SetValueFormat(OptionFormat.Times);
AutoKickStartStrength = BooleanOptionItem.Create(60126, Translator.Get("autoKickStartStrength"), false, TabGroup.SystemSettings, false)
AutoKickStartStrength = BooleanOptionItem.Create(60126, Translator.Get("autoKickStartStrength"), false, TabGroup.ModerationSettings, false)
.SetParent(AutoKickStart);
TabGroupAccess = TextOptionItem.Create(60127, Translator.Get("tabGroupAccess"), TabGroup.ModerationSettings)
.SetColor(Color.red);
SlashColorCmd = StringOptionItem.Create(60128, Translator.Get("slashColorCmd"), accessLevels, 1, TabGroup.ModerationSettings, false);
SlashRolesAndGamemodeCmd = StringOptionItem.Create(60129, Translator.Get("slashRolesAndGamemodeCmd"), accessLevels, 1, TabGroup.ModerationSettings, false);
SlashLastGameCmd = StringOptionItem.Create(60130, Translator.Get("slashLastGameCmd"), accessLevels, 1, TabGroup.ModerationSettings, false);
SlashMapAndSeekerCmd = StringOptionItem.Create(60131, Translator.Get("slashMapAndSeekerCmd"), accessLevels, 1, TabGroup.ModerationSettings, false);
SlashKickCmd = StringOptionItem.Create(60132, Translator.Get("slashKickCmd"), accessLevels, 2, TabGroup.ModerationSettings, false);
SlashBanCmd = StringOptionItem.Create(60133, Translator.Get("slashBanCmd"), accessLevels, 2, TabGroup.ModerationSettings, false);
SlashEndMeetingCmd = StringOptionItem.Create(60134, Translator.Get("slashEndMeetingCmd"), accessLevels, 3, TabGroup.ModerationSettings, false);
SlashStartAndEndGameCmd = StringOptionItem.Create(60135, Translator.Get("slashStartAndEndGameCmd"), accessLevels, 3, TabGroup.ModerationSettings, false);
TabGroupAutomation = TextOptionItem.Create(60149, Translator.Get("tabGroupAutomation"), TabGroup.SystemSettings)
.SetColor(Color.yellow);
AutoSendGameInfo = BooleanOptionItem.Create(60150, Translator.Get("autoSendGameInfo"), true, TabGroup.SystemSettings, false);
AutoRejoinLobby = BooleanOptionItem.Create(60210, Translator.Get("autoRejoinLobby"), false, TabGroup.SystemSettings, false);
AutoStartTimer = IntegerOptionItem.Create(64420, Translator.Get("autoStartTimer"), new(1, 5, 1), 5, TabGroup.SystemSettings, false)
.SetValueFormat(OptionFormat.Seconds);
WaitAutoStart = IntegerOptionItem.Create(64421, Translator.Get("waitAutoStart"), new(10, 600, 10), 300, TabGroup.SystemSettings, false)
.SetValueFormat(OptionFormat.Seconds);
PlayerAutoStart = IntegerOptionItem.Create(64422, Translator.Get("playerAutoStart"), new(1, 15, 1), 1, TabGroup.SystemSettings, false);
EnableJoinMessages = BooleanOptionItem.Create(64423, Translator.Get("enableJoinMessages"), true, TabGroup.SystemSettings, false);
MessagePerPlayerNum = IntegerOptionItem.Create(64424, Translator.Get("messagePerPlayerNum"), new(1, 15, 1), 5, TabGroup.SystemSettings, false)
AutoRejoinLobby = BooleanOptionItem.Create(60151, Translator.Get("autoRejoinLobby"), false, TabGroup.SystemSettings, false);
EnableJoinMessages = BooleanOptionItem.Create(60152, Translator.Get("enableJoinMessages"), true, TabGroup.SystemSettings, false);
MessagePerPlayerNum = IntegerOptionItem.Create(60153, Translator.Get("messagePerPlayerNum"), new(1, 15, 1), 5, TabGroup.SystemSettings, false)
.SetParent(EnableJoinMessages);
TabGroupMisc = TextOptionItem.Create(60379, Translator.Get("tabGroupMisc"), TabGroup.SystemSettings)
.SetColor(Color.green);
StartCountdown = IntegerOptionItem.Create(60380, Translator.Get("startCountdown"), new(1, 5, 1), 5, TabGroup.SystemSettings, false)
TabGroupAutostart = TextOptionItem.Create(64425, Translator.Get("tabGroupAutostart"), TabGroup.SystemSettings)
.SetColor(Color.yellow);
AutoStartTimer = IntegerOptionItem.Create(64426, Translator.Get("autoStartTimer"), new(1, 5, 1), 5, TabGroup.SystemSettings, false)
.SetValueFormat(OptionFormat.Seconds);
AllowFortegreen = BooleanOptionItem.Create(60382, Translator.Get("allowFortegreen"), false, TabGroup.SystemSettings, false);
WaitAutoStart = IntegerOptionItem.Create(64427, Translator.Get("waitAutoStart"), new(10, 600, 10), 300, TabGroup.SystemSettings, false)
.SetValueFormat(OptionFormat.Seconds);
PlayerAutoStart = IntegerOptionItem.Create(64428, Translator.Get("playerAutoStart"), new(1, 15, 1), 1, TabGroup.SystemSettings, false);
Rehost = BooleanOptionItem.Create(64429, Translator.Get("rehost"), false, TabGroup.SystemSettings, false);
Public = BooleanOptionItem.Create(64430, Translator.Get("public"), false, TabGroup.SystemSettings, false)
.SetParent(Rehost);
TabGroupMisc = TextOptionItem.Create(60378, Translator.Get("tabGroupMisc"), TabGroup.SystemSettings)
.SetColor(Color.yellow);
MapVoteDuration = IntegerOptionItem.Create(60379, Translator.Get("mapVoteDuration"), new(5, 60, 5), 20, TabGroup.SystemSettings, false)
.SetValueFormat(OptionFormat.Seconds)
.SetColor(Color.red);
StartCountdown = IntegerOptionItem.Create(60380, Translator.Get("startCountdown"), new(1, 5, 1), 5, TabGroup.SystemSettings, false)
.SetValueFormat(OptionFormat.Seconds)
.SetColor(Color.red);
AllowFortegreen = BooleanOptionItem.Create(60382, Translator.Get("allowFortegreen"), false, TabGroup.SystemSettings, false)
.SetColor(Color.red);
NoGameEnd = BooleanOptionItem.Create(60383, Translator.Get("noGameEnd"), false, TabGroup.SystemSettings, false)
.SetColor(Color.red);
TabGroupAccess = TextOptionItem.Create(60400, Translator.Get("tabGroupAccess"), TabGroup.SystemSettings)
.SetColor(Color.red);
SlashColorCmd = StringOptionItem.Create(60401, Translator.Get("slashColorCmd"), accessLevels, 1, TabGroup.SystemSettings, false);
SlashRolesAndGamemodeCmd = StringOptionItem.Create(60402, Translator.Get("slashRolesAndGamemodeCmd"), accessLevels, 1, TabGroup.SystemSettings, false);
SlashLastGameCmd = StringOptionItem.Create(60403, Translator.Get("slashLastGameCmd"), accessLevels, 1, TabGroup.SystemSettings, false);
SlashKickCmd = StringOptionItem.Create(60405, Translator.Get("slashKickCmd"), accessLevels, 2, TabGroup.SystemSettings, false);
SlashBanCmd = StringOptionItem.Create(60406, Translator.Get("slashBanCmd"), accessLevels, 2, TabGroup.SystemSettings, false);
SlashEndMeetingCmd = StringOptionItem.Create(60407, Translator.Get("slashEndMeetingCmd"), accessLevels, 3, TabGroup.SystemSettings, false);
SlashStartAndEndGameCmd = StringOptionItem.Create(60408, Translator.Get("slashStartAndEndGameCmd"), accessLevels, 3, TabGroup.SystemSettings, false);
// Gamemode Settings
TabGroupHNS = TextOptionItem.Create(70000, Translator.Get("tabGroupHNS"), TabGroup.GamemodeSettings)
@@ -368,9 +405,11 @@ namespace AmongUsRevamped
.SetValueFormat(OptionFormat.Level);
TabGroupSNS = TextOptionItem.Create(70050, Translator.Get("tabGroupSNS"), TabGroup.GamemodeSettings)
.SetColor(Color.yellow);
.SetColor(Color.green);
SNSSettingsOverride = BooleanOptionItem.Create(70051, Translator.Get("snsSettingsOverride"), true, TabGroup.GamemodeSettings, false);
SNSChatInGame = BooleanOptionItem.Create(70063, Translator.Get("snsChatInGame"), false, TabGroup.GamemodeSettings, false);
SNSChatInGameExtend = BooleanOptionItem.Create(70064, Translator.Get("snsChatInGameExtend"), false, TabGroup.GamemodeSettings, false)
.SetParent(SNSChatInGame);
CantKillTime = IntegerOptionItem.Create(70053, Translator.Get("cantKillTime"), new(0, 60, 5), 20, TabGroup.GamemodeSettings, false)
.SetValueFormat(OptionFormat.Seconds);
MisfiresToSuicide = IntegerOptionItem.Create(70052, Translator.Get("misfiresToSuicide"), new(1, 10, 1), 2, TabGroup.GamemodeSettings, false);
@@ -400,7 +439,7 @@ namespace AmongUsRevamped
.SetColor(Color.red);
TabGroupSpeedrun = TextOptionItem.Create(70075, Translator.Get("tabGroupSpeedrun"), TabGroup.GamemodeSettings)
.SetColor(Color.blue);
.SetColor(Color.green);
SpeedrunSettingsOverride = BooleanOptionItem.Create(70076, Translator.Get("speedrunSettingsOverride"), true, TabGroup.GamemodeSettings, false);
GameAutoEndsAfter = IntegerOptionItem.Create(70077, Translator.Get("gameAutoEndsAfter"), new(0, 600, 10), 300, TabGroup.GamemodeSettings, false)
.SetValueFormat(OptionFormat.Seconds);
@@ -408,7 +447,7 @@ namespace AmongUsRevamped
// Gameplay Settings
TabGroupSabotages = TextOptionItem.Create(60450, Translator.Get("tabGroupSabotages"), TabGroup.ModSettings)
.SetColor(Color.red);
.SetColor(Color.blue);
DeadImpostorsCanSabotage = BooleanOptionItem.Create(60455, Translator.Get("deadImpostorsCanSabotage"), true, TabGroup.ModSettings, false)
.SetColor(Color.red);
DisableSabotage = BooleanOptionItem.Create(60456, Translator.Get("disableSabotage"), false, TabGroup.ModSettings, false)
@@ -436,100 +475,77 @@ namespace AmongUsRevamped
TabGroupGameplayGeneral = TextOptionItem.Create(60564, Translator.Get("tabGroupGameplayGeneral"), TabGroup.ModSettings)
.SetColor(Color.blue);
DisableAnnoyingMeetingCalls = BooleanOptionItem.Create(60565, Translator.Get("disableAnnoyingMeetingCalls"), false, TabGroup.ModSettings, false)
.SetColor(new Color32(19, 188, 233, byte.MaxValue));
DisableAnnoyingMeetingCalls = BooleanOptionItem.Create(60565, Translator.Get("disableAnnoyingMeetingCalls"), false, TabGroup.ModSettings, false);
ChangeDecontaminationTime = BooleanOptionItem.Create(60550, Translator.Get("changeDecontaminationTime"), false, TabGroup.ModSettings, false)
.SetColor(new Color32(19, 188, 233, byte.MaxValue));
ChangeDecontaminationTime = BooleanOptionItem.Create(60550, Translator.Get("changeDecontaminationTime"), false, TabGroup.ModSettings, false);
DecontaminationTimeOnMiraHQ = FloatOptionItem.Create(60551, Translator.Get("decontaminationTimeOnMiraHQ"), new(0.5f, 10f, 0.25f), 3f, TabGroup.ModSettings, false)
.SetParent(ChangeDecontaminationTime)
.SetValueFormat(OptionFormat.Seconds)
.SetColor(new Color32(19, 188, 233, byte.MaxValue));
.SetValueFormat(OptionFormat.Seconds);
DecontaminationDoorOpenTimeOnMiraHQ = FloatOptionItem.Create(60552, Translator.Get("decontaminationDoorOpenTimeOnMiraHQ"), new(0.5f, 10f, 0.25f), 3f, TabGroup.ModSettings, false)
.SetParent(ChangeDecontaminationTime)
.SetValueFormat(OptionFormat.Seconds)
.SetColor(new Color32(19, 188, 233, byte.MaxValue));
.SetValueFormat(OptionFormat.Seconds);
DecontaminationTimeOnPolus = FloatOptionItem.Create(60553, Translator.Get("decontaminationTimeOnPolus"), new(0.5f, 10f, 0.25f), 3f, TabGroup.ModSettings, false)
.SetParent(ChangeDecontaminationTime)
.SetValueFormat(OptionFormat.Seconds)
.SetColor(new Color32(19, 188, 233, byte.MaxValue));
.SetValueFormat(OptionFormat.Seconds);
DecontaminationDoorOpenTimeOnPolus = FloatOptionItem.Create(60554, Translator.Get("decontaminationDoorOpenTimeOnPolus"), new(0.5f, 10f, 0.25f), 3f, TabGroup.ModSettings, false)
.SetParent(ChangeDecontaminationTime)
.SetValueFormat(OptionFormat.Seconds)
.SetColor(new Color32(19, 188, 233, byte.MaxValue));
.SetValueFormat(OptionFormat.Seconds);
DisableSporeTrigger = BooleanOptionItem.Create(60558, Translator.Get("disableSporeTrigger"), false, TabGroup.ModSettings, false)
.SetColor(new Color32(19, 188, 233, byte.MaxValue));
DisableSporeTrigger = BooleanOptionItem.Create(60558, Translator.Get("disableSporeTrigger"), false, TabGroup.ModSettings, false);
DisableDevices = BooleanOptionItem.Create(22900, Translator.Get("disableDevices"), false, TabGroup.ModSettings, false)
.SetColor(Color.red);
DisableDevices = BooleanOptionItem.Create(22900, Translator.Get("disableDevices"), false, TabGroup.ModSettings, false);
DisableSkeldDevices = BooleanOptionItem.Create(22905, Translator.Get("disableSkeldDevices"), false, TabGroup.ModSettings, false)
.SetParent(DisableDevices)
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
DisableSkeldAdmin = BooleanOptionItem.Create(22906, Translator.Get("disableSkeldAdmin"), false, TabGroup.ModSettings, false)
.SetParent(DisableSkeldDevices)
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
.SetParent(DisableSkeldDevices);
DisableSkeldCamera = BooleanOptionItem.Create(22907, Translator.Get("disableSkeldCamera"), false, TabGroup.ModSettings, false)
.SetParent(DisableSkeldDevices)
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
.SetParent(DisableSkeldDevices);
DisableMiraHQDevices = BooleanOptionItem.Create(22908, Translator.Get("disableMiraHQDevices"), false, TabGroup.ModSettings, false)
.SetParent(DisableDevices)
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
DisableMiraHQAdmin = BooleanOptionItem.Create(22909, Translator.Get("disableMiraHQAdmin"), false, TabGroup.ModSettings, false)
.SetParent(DisableMiraHQDevices)
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
.SetParent(DisableMiraHQDevices);
DisableMiraHQDoorLog = BooleanOptionItem.Create(22910, Translator.Get("disableMiraHQDoorLog"), false, TabGroup.ModSettings, false)
.SetParent(DisableMiraHQDevices)
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
.SetParent(DisableMiraHQDevices);
DisablePolusDevices = BooleanOptionItem.Create(22911, Translator.Get("disablePolusDevices"), false, TabGroup.ModSettings, false)
.SetParent(DisableDevices)
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
DisablePolusAdmin = BooleanOptionItem.Create(22912, Translator.Get("disablePolusAdmin"), false, TabGroup.ModSettings, false)
.SetParent(DisablePolusDevices)
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
.SetParent(DisablePolusDevices);
DisablePolusCamera = BooleanOptionItem.Create(22913, Translator.Get("disablePolusCamera"), false, TabGroup.ModSettings, false)
.SetParent(DisablePolusDevices)
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
.SetParent(DisablePolusDevices);
DisablePolusVital = BooleanOptionItem.Create(22914, Translator.Get("disablePolusVital"), false, TabGroup.ModSettings, false)
.SetParent(DisablePolusDevices)
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
.SetParent(DisablePolusDevices);
DisableAirshipDevices = BooleanOptionItem.Create(22915, Translator.Get("disableAirshipDevices"), false, TabGroup.ModSettings, false)
.SetParent(DisableDevices)
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
DisableAirshipCockpitAdmin = BooleanOptionItem.Create(22916, Translator.Get("disableAirshipCockpitAdmin"), false, TabGroup.ModSettings, false)
.SetParent(DisableAirshipDevices)
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
.SetParent(DisableAirshipDevices);
DisableAirshipRecordsAdmin = BooleanOptionItem.Create(22917, Translator.Get("disableAirshipRecordsAdmin"), false, TabGroup.ModSettings, false)
.SetParent(DisableAirshipDevices)
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
.SetParent(DisableAirshipDevices);
DisableAirshipCamera = BooleanOptionItem.Create(22918, Translator.Get("disableAirshipCamera"), false, TabGroup.ModSettings, false)
.SetParent(DisableAirshipDevices)
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
.SetParent(DisableAirshipDevices);
DisableAirshipVital = BooleanOptionItem.Create(22919, Translator.Get("disableAirshipVital"), false, TabGroup.ModSettings, false)
.SetParent(DisableAirshipDevices)
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
.SetParent(DisableAirshipDevices);
DisableFungleDevices = BooleanOptionItem.Create(22925, Translator.Get("disableFungleDevices"), false, TabGroup.ModSettings, false)
.SetParent(DisableDevices)
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
DisableFungleVital = BooleanOptionItem.Create(22927, Translator.Get("disableFungleVital"), false, TabGroup.ModSettings, false)
.SetParent(DisableFungleDevices)
.SetColor(new Color32(255, 153, 153, byte.MaxValue));
.SetParent(DisableFungleDevices);
TabGroupTasks = TextOptionItem.Create(22995, Translator.Get("tabGroupTasks"), TabGroup.ModSettings)
.SetColor(Color.yellow);
.SetColor(Color.blue);
TaskPercentNeededToWin = IntegerOptionItem.Create(22996, Translator.Get("taskPercentNeededToWin"), new(30, 100, 5), 100, TabGroup.ModSettings, false)
.SetColor(new Color32(255, 255, 153, byte.MaxValue))
.SetValueFormat(OptionFormat.Percent);
AllPlayersSameTasks = BooleanOptionItem.Create(22998, Translator.Get("allPlayersSameTasks"), false, TabGroup.ModSettings, false)
.SetColor(new Color32(255, 255, 153, byte.MaxValue));
OverrideTaskSettings = BooleanOptionItem.Create(22999, Translator.Get("overrideTaskSettings"), false, TabGroup.ModSettings, false)
.SetColor(new Color32(255, 255, 153, byte.MaxValue));
AllPlayersSameTasks = BooleanOptionItem.Create(22998, Translator.Get("allPlayersSameTasks"), false, TabGroup.ModSettings, false);
OverrideTaskSettings = BooleanOptionItem.Create(22999, Translator.Get("overrideTaskSettings"), false, TabGroup.ModSettings, false);
DisableMiraTasks = BooleanOptionItem.Create(23000, Translator.Get("disableMiraTasks"), false, TabGroup.ModSettings, false)
.SetColor(new Color32(173, 216, 230, byte.MaxValue))
+21
View File
@@ -201,4 +201,25 @@ internal class EACR
return true;
}
}
public static void VentCheat(PlayerControl player, Vent __instance)
{
AmongUsClient.Instance.KickPlayer(player.Data.ClientId, true);
Logger.SendInGame($"{player.Data.PlayerName} was banned for invalid venting (cheating)");
Logger.Info($" {player.Data.PlayerName} was banned for invalid venting", "EACR");
}
public static void PlayAnimationCheat(PlayerControl player)
{
AmongUsClient.Instance.KickPlayer(player.Data.ClientId, true);
Logger.SendInGame($"{player.Data.PlayerName} was banned for an invalid animation (cheating)");
Logger.Info($" {player.Data.PlayerName} was banned for an invalid animation", "EACR");
}
public static void TaskCheat(PlayerControl player)
{
AmongUsClient.Instance.KickPlayer(player.Data.ClientId, true);
Logger.SendInGame($"{player.Data.PlayerName} was banned for invalidly completing a task (cheating)");
Logger.Info($" {player.Data.PlayerName} was banned for invalidly completing a task", "EACR");
}
}
+1 -1
View File
@@ -110,7 +110,7 @@ class FixedUpdateInGamePatch
Utils.CustomWinnerEndGame(PlayerControl.LocalPlayer, 0);
Logger.Info($" No one won because the game took longer than {Options.GameAutoEndsAfter.GetInt()}s", "SpeedrunManager");
NormalGameEndChecker.CheckWinnerText("NoOneWin");
NormalGameEndChecker.CheckWinnerText("NoOneWinsSpeedrun");
}
}
}
+1
View File
@@ -214,6 +214,7 @@ namespace AmongUsRevamped
public enum TabGroup
{
SystemSettings,
ModerationSettings,
//CustomRoleSettings,
ModSettings,
GamemodeSettings,
+27
View File
@@ -0,0 +1,27 @@
using InnerNet;
using UnityEngine;
using System;
using AmongUs.GameOptions;
namespace AmongUsRevamped
{
[HarmonyPatch(typeof(InnerNetClient), nameof(InnerNetClient.DisconnectInternal))]
public static class DisconnectManager
{
public static bool Rehosting;
public static void Prefix(InnerNetClient __instance, DisconnectReasons reason, string stringReason)
{
Logger.Info($" Disconnected due to {reason}/{stringReason}, ping:{__instance.Ping})", "DisconnectManager");
if (!Options.Rehost.GetBool() || reason == DisconnectReasons.NewConnection || reason == DisconnectReasons.ConnectionLimit || reason == DisconnectReasons.ExitGame) return;
_ = new LateTask(() =>
{
Rehosting = true;
PSManager.Instance.CreateGame(GameModes.Normal);
Logger.Info(Translator.Get("rehostSuccess"), "DisconnectManager");
}, 5f, "RehostManager");
}
}
}
+94 -2
View File
@@ -73,6 +73,8 @@ public static class Utils
{
case TabGroup.SystemSettings:
return Translator.Get("systemSettings");
case TabGroup.ModerationSettings:
return Translator.Get("moderationSettings");
case TabGroup.ModSettings:
return Translator.Get("gameplaySettings");
case TabGroup.GamemodeSettings:
@@ -206,7 +208,7 @@ public static class Utils
MurderPlayerPatch.misfireCount.Clear();
MurderPlayerPatch.killCount.Clear();
LateTask.Tasks.Clear();
LateTask.Tasks.RemoveAll(x => x.name != "RehostManager");
NormalGameEndChecker.ImpCheckComplete = false;
CreateOptionsPickerPatch.SetDleks2 = false;
CanCallMeetings = true;
@@ -224,7 +226,7 @@ public static class Utils
PlayerControlSetRolePatch.FirstAssign = true;
PlayerControlSetRolePatch.manualSeekers.Clear();
CoShowIntroPatch.IntroInitiated = false;
OnGameStartPatch.PastStartScreen = false;
}
public static PlayerControl[] AllAlivePlayerControls
@@ -571,4 +573,94 @@ public static class Utils
}
else return $"<color=#8cffff>{p.Data.RoleType}</color>";
}
public static int skeldVotes;
public static int miraVotes;
public static int polusVotes;
public static int airshipVotes;
public static int fungleVotes;
public static int dleksVotes;
public static bool MapVoteActive;
public static bool DleksEnabled;
public static readonly List<byte> HasVoted = [];
public static void MapVote(bool dleks, bool moderator)
{
if (MapVoteActive) return;
DleksEnabled = dleks;
MapVoteActive = true;
if (dleks && moderator) Utils.ModeratorChatCommand("A map vote is active!\n\nA: Skeld\nB: Mira\nC: Polus\nD: Airship\nE: Fungle\nF: Eht Dleks\n\nType /vote 'letter' to vote.", "", false);
else if (moderator) Utils.ModeratorChatCommand("A map vote is active!\n\nA: The Skeld\nB: Mira HQ\nC: Polus\nD: The Airship\nE: The Fungle\n\nType /vote 'letter' to vote.", "", false);
if (dleks && !moderator) Utils.ChatCommand(DestroyableSingleton<HudManager>.Instance.Chat, "A map vote is active!\n\nA: Skeld\nB: Mira\nC: Polus\nD: Airship\nE: Fungle\nF: Eht Dleks\n\nType /vote 'letter' to vote.", "", false);
else if (!moderator) Utils.ChatCommand(DestroyableSingleton<HudManager>.Instance.Chat, "A map vote is active!\n\nA: The Skeld\nB: Mira HQ\nC: Polus\nD: The Airship\nE: The Fungle\n\nType /vote 'letter' to vote.", "", false);
new LateTask(() =>
{
int highest = skeldVotes;
string winner = "Skeld";
byte mapId = 0;
bool tie = false;
void Check(int votes, string name, byte id)
{
if (votes > highest)
{
highest = votes;
winner = name;
mapId = id;
tie = false;
}
else if (votes == highest)
{
tie = true;
}
}
Check(miraVotes, "Mira HQ", 1);
Check(polusVotes, "Polus", 2);
Check(airshipVotes, "Airship", 4);
Check(fungleVotes, "The Fungle", 5);
if (DleksEnabled) Check(dleksVotes, "Eht Dleks", 3);
string voteResults = $"Skeld: {skeldVotes}\n" + $"Mira: {miraVotes}\n" + $"Polus: {polusVotes}\n" + $"Airship: {airshipVotes}\n" + $"Fungle: {fungleVotes}";
if (DleksEnabled) voteResults += $"\nEht Dleks: {dleksVotes}";
if (highest == 0)
{
ModeratorChatCommand("Lol, no one voted. Hooray for democracy?", "", false);
}
else if (tie)
{
ModeratorChatCommand($"Map vote tied. No new map selected.\n\n{voteResults}", "", false);
}
else
{
ModeratorChatCommand(SendChatPatch.ConvertNum($"Winner: {winner} ({highest})\n\n{voteResults}"), "", false);
if (winner == "Eht Dleks")
{
CreateOptionsPickerPatch.ApplyDleks(Utils.isHideNSeek);
}
else
{
CreateOptionsPickerPatch.ClearDleks();
if (!Utils.isHideNSeek) Main.NormalOptions.MapId = mapId;
else Main.HideNSeekOptions.MapId = mapId;
}
}
skeldVotes = 0;
miraVotes = 0;
polusVotes = 0;
airshipVotes = 0;
fungleVotes = 0;
dleksVotes = 0;
HasVoted.Clear();
MapVoteActive = false;
}, Options.MapVoteDuration.GetInt(), "MapPoll");
}
}
+65 -5
View File
@@ -396,10 +396,44 @@ internal static class SendChatPatch
if (__instance.timeSinceLastMessage < 3f || OnGameJoinedPatch.WaitingForChat) return false;
if (text == "/mapvote")
{
if (Utils.IsLobby)
{
Utils.MapVote(false, false);
__instance.freeChatField.textArea.Clear();
__instance.freeChatField.textArea.SetText(string.Empty);
return false;
}
}
if (text == "/allmapvote")
{
if (Utils.IsLobby)
{
Utils.MapVote(true, false);
__instance.freeChatField.textArea.Clear();
__instance.freeChatField.textArea.SetText(string.Empty);
return false;
}
}
if (text == "/vote a" && Utils.MapVoteActive && !Utils.HasVoted.Contains(PlayerControl.LocalPlayer.Data.PlayerId)) {Utils.skeldVotes++; Utils.HasVoted.Add(PlayerControl.LocalPlayer.Data.PlayerId);}
if (text == "/vote b" && Utils.MapVoteActive && !Utils.HasVoted.Contains(PlayerControl.LocalPlayer.Data.PlayerId)) {Utils.miraVotes++; Utils.HasVoted.Add(PlayerControl.LocalPlayer.Data.PlayerId);}
if (text == "/vote c" && Utils.MapVoteActive && !Utils.HasVoted.Contains(PlayerControl.LocalPlayer.Data.PlayerId)) {Utils.polusVotes++; Utils.HasVoted.Add(PlayerControl.LocalPlayer.Data.PlayerId);}
if (text == "/vote d" && Utils.MapVoteActive && !Utils.HasVoted.Contains(PlayerControl.LocalPlayer.Data.PlayerId)) {Utils.airshipVotes++; Utils.HasVoted.Add(PlayerControl.LocalPlayer.Data.PlayerId);}
if (text == "/vote e" && Utils.MapVoteActive && !Utils.HasVoted.Contains(PlayerControl.LocalPlayer.Data.PlayerId)) {Utils.fungleVotes++; Utils.HasVoted.Add(PlayerControl.LocalPlayer.Data.PlayerId);}
if (text == "/vote f" && Utils.MapVoteActive && !Utils.HasVoted.Contains(PlayerControl.LocalPlayer.Data.PlayerId) && Utils.DleksEnabled) {Utils.dleksVotes++; Utils.HasVoted.Add(PlayerControl.LocalPlayer.Data.PlayerId);}
if (text == "/l" || text == "/lastgame")
{
if (string.IsNullOrEmpty(NormalGameEndChecker.LastWinReason) || Utils.InGame) return false;
Utils.ChatCommand(__instance, $"{NormalGameEndChecker.LastWinReason}", "", false);
__instance.freeChatField.textArea.Clear();
__instance.freeChatField.textArea.SetText(string.Empty);
return false;
}
@@ -588,7 +622,7 @@ public static class RPCHandlerPatch
BanManager.IsStartWord(__instance, text);
BanManager.IsWordBanned(__instance, text);
if (text.StartsWith("/seeker ") && Utils.CheckAccessLevel(__instance.Data.FriendCode) >= Options.SlashEndMeetingCmd.GetValue())
if (text.StartsWith("/seeker ") && Utils.CheckAccessLevel(__instance.Data.FriendCode) >= Options.SlashMapAndSeekerCmd.GetValue())
{
if (!Utils.IsLobby || !Utils.isHideNSeek)
{
@@ -627,8 +661,9 @@ public static class RPCHandlerPatch
}
}
if (text == "/clearseeker" && Utils.CheckAccessLevel(__instance.Data.FriendCode) >= Options.SlashEndMeetingCmd.GetValue())
if (text == "/clearseeker")
{
if (Utils.CheckAccessLevel(__instance.Data.FriendCode) < Options.SlashMapAndSeekerCmd.GetValue()) return;
PlayerControlSetRolePatch.manualSeekers.Clear();
HudManager.Instance.Chat.AddChat(PlayerControl.LocalPlayer, Translator.Get("clearedSeekers"));
}
@@ -697,8 +732,6 @@ public static class RPCHandlerPatch
}
}
if (OnGameJoinedPatch.WaitingForChat || GameStartManagerUpdatePatch.CountingDown) return;
if (text == "/eg" || text == "/endgame")
{
if (Utils.CheckAccessLevel(__instance.Data.FriendCode) < Options.SlashStartAndEndGameCmd.GetValue()) return;
@@ -722,6 +755,33 @@ public static class RPCHandlerPatch
GameStartManager.Instance.BeginGame();
}
if (OnGameJoinedPatch.WaitingForChat || GameStartManagerUpdatePatch.CountingDown) return;
if (text == "/mapvote")
{
if (Utils.IsLobby)
{
if (Utils.CheckAccessLevel(__instance.Data.FriendCode) < Options.SlashMapAndSeekerCmd.GetValue()) return;
Utils.MapVote(false, true);
}
}
if (text == "/allmapvote")
{
if (Utils.IsLobby)
{
if (Utils.CheckAccessLevel(__instance.Data.FriendCode) < Options.SlashMapAndSeekerCmd.GetValue()) return;
Utils.MapVote(true, true);
}
}
if (text == "/vote a" && Utils.MapVoteActive && !Utils.HasVoted.Contains(__instance.Data.PlayerId)) {Utils.skeldVotes++; Utils.HasVoted.Add(__instance.Data.PlayerId);}
if (text == "/vote b" && Utils.MapVoteActive && !Utils.HasVoted.Contains(__instance.Data.PlayerId)) {Utils.miraVotes++; Utils.HasVoted.Add(__instance.Data.PlayerId);}
if (text == "/vote c" && Utils.MapVoteActive && !Utils.HasVoted.Contains(__instance.Data.PlayerId)) {Utils.polusVotes++; Utils.HasVoted.Add(__instance.Data.PlayerId);}
if (text == "/vote d" && Utils.MapVoteActive && !Utils.HasVoted.Contains(__instance.Data.PlayerId)) {Utils.airshipVotes++; Utils.HasVoted.Add(__instance.Data.PlayerId);}
if (text == "/vote e" && Utils.MapVoteActive && !Utils.HasVoted.Contains(__instance.Data.PlayerId)) {Utils.fungleVotes++; Utils.HasVoted.Add(__instance.Data.PlayerId);}
if (text == "/vote f" && Utils.MapVoteActive && !Utils.HasVoted.Contains(__instance.Data.PlayerId) && Utils.DleksEnabled) {Utils.dleksVotes++; Utils.HasVoted.Add(__instance.Data.PlayerId);}
if (text == "/l" || text == "/lastgame")
{
if (Utils.CheckAccessLevel(__instance.Data.FriendCode) < Options.SlashLastGameCmd.GetValue()) return;
@@ -732,7 +792,7 @@ public static class RPCHandlerPatch
if (text == "/aur" || text == "/socials")
{
if (Utils.CheckAccessLevel(__instance.Data.FriendCode) < Options.SlashLastGameCmd.GetValue()) return;
Utils.ModeratorChatCommand("AUR socials:\n\ng i t h u b . c o m /\nApeMV/AmongUsRevamped\n\nd i s c o r d . g g /\n83Zhzhyhya", "", false);
Utils.ModeratorChatCommand("AUR socials:\n\ng i t h u b . c o m /\nApeMV/AmongUsRevamped\n\nd i s c о r d . g g /\n83Zhzhyhya", "", false);
}
if (text == "/0kc" || text == "/0killcooldown")
+1 -2
View File
@@ -28,8 +28,7 @@ namespace AmongUsRevamped
static void GMButtonToggle()
{
if (Main.GM.Value)
HudManager.Instance.ShowPopUp(Translator.Get("gameMasterWarning"));
if (Main.GM.Value && Utils.IsLobby) HudManager.Instance.ShowPopUp(Translator.Get("gameMasterWarning"));
}
}
+16 -1
View File
@@ -25,7 +25,22 @@ class CreateOptionsPickerPatch
isSkeldFlipped = value;
}
}
public static void ApplyDleks(bool hideNSeek)
{
SetDleks = true;
FlippedSkeld = true;
if (!Utils.isHideNSeek) Main.NormalOptions.MapId = 0;
else Main.HideNSeekOptions.MapId = 0;
}
public static void ClearDleks()
{
SetDleks = false;
FlippedSkeld = false;
}
private static MapSelectButton DleksButton;
[HarmonyPatch]
public static class GameOptionsMapPickerPatch
+2 -2
View File
@@ -65,12 +65,12 @@ class NormalGameEndChecker
return;
}
if (Utils.AliveImpostors == 0 || Winner == "Crewmate")
if ((Options.Gamemode.GetValue() != 2 && Utils.AliveImpostors == 0) || Winner == "Crewmate")
{
LastWinReason = "Crewmates Win!\n\nImpostors: " + impostorList;
canUpdateWinnerText = false;
}
else if (Utils.AliveImpostors >= Utils.AliveCrewmates || Winner == "Impostor")
else if ((Options.Gamemode.GetValue() != 2 && Utils.AliveImpostors >= Utils.AliveCrewmates) || Winner == "Impostor")
{
LastWinReason = "Impostors Win!\n\nImpostors: " + impostorList;
canUpdateWinnerText = false;
+3
View File
@@ -115,6 +115,9 @@ namespace AmongUsRevamped
case TabGroup.SystemSettings:
__instance.MenuDescriptionText.text = Translator.Get("systemSettingsDesc");
break;
case TabGroup.ModerationSettings:
__instance.MenuDescriptionText.text = Translator.Get("moderationSettingsDesc");
break;
case TabGroup.ModSettings:
__instance.MenuDescriptionText.text = Translator.Get("gameplaySettingsDesc");
break;
+13 -3
View File
@@ -9,14 +9,11 @@ namespace AmongUsRevamped;
[HarmonyPatch(typeof(HudManager), nameof(HudManager.CoShowIntro))]
internal static class CoShowIntroPatch
{
public static bool IntroInitiated;
public static void Postfix(IntroCutscene __instance)
{
Logger.Info(" Intro initiated", "CoShowIntro");
if (!AmongUsClient.Instance.AmHost) return;
IntroInitiated = true;
foreach (var p in PlayerControl.AllPlayerControls)
{
@@ -38,6 +35,19 @@ internal static class CoShowIntroPatch
Utils.CanCallMeetings = true;
}, 33f, "MeetingEnabled");
}
if (Options.Gamemode.GetValue() == 1 && Options.SNSChatInGameExtend.GetBool())
{
if (Options.MisfiresToSuicide.GetInt() == 1 || Options.CantKillTime.GetInt() == 0)
{
Utils.ModeratorChatCommand("Shift and Seek:\n\nImpostors can only kill someone while shapeshifted as them\nEmergency Meetings = Off", $"Crewmates win by doing tasks or surviving {Options.CrewAutoWinsGameAfter.GetInt()}s\nImpostors win by killing everyone\n{Options.MisfiresToSuicide.GetInt()} wrong kill(s) = suicide", true);
}
else
{
Utils.ModeratorChatCommand("Shift and Seek:\n\nImpostors can only kill someone while shapeshifted as them\nEmergency Meetings = Off", SendChatPatch.ConvertNum($"Crew wins by tasks/surviving {Options.CrewAutoWinsGameAfter.GetInt()}s\nImp wins by killing\nOne wrong kill = Can't kill for {Options.CantKillTime.GetInt()}s\n{Options.MisfiresToSuicide.GetInt()} wrong kills = suicide"), true);
}
}
}
}
+7 -1
View File
@@ -45,6 +45,12 @@ internal static class OnGameJoinedPatch
WaitingForChat = false;
}, 5.2f, "AutoSendGameInfo2");
}
if (Options.Public.GetBool() && DisconnectManager.Rehosting)
{
AmongUsClient.Instance.ChangeGamePublic(true);
DisconnectManager.Rehosting = false;
}
}
}
@@ -134,7 +140,7 @@ public static class SetLevelPatch
public static List<PlayerControl> HandledLevelKicks = [];
public static void Prefix(PlayerControl __instance, uint level)
{
if (AmongUsClient.Instance.AmHost && level < Options.KickLowLevelPlayer.GetInt() - 1 && __instance.Data.ClientId != AmongUsClient.Instance.HostId)
if (AmongUsClient.Instance.AmHost && level < Options.KickLowLevelPlayer.GetInt() - 1 && __instance.Data.ClientId != AmongUsClient.Instance.HostId && Options.EnableKickLowLevelPlayer.GetBool())
{
if (level == 0 && Options.DontKickLevelOnes.GetBool()) return;
if (HandledLevelKicks.Contains(__instance)) return;
+5 -2
View File
@@ -43,7 +43,7 @@ class PlayerControlSetRolePatch
if (!ProcessedPlayers.Add(__instance.PlayerId)) return true;
canOverrideRole = false;
// canOverrideRole = false;
if (Utils.isHideNSeek && Seekers.Count() == 0 && Options.NumSeekers.GetInt() > 0)
{
@@ -110,7 +110,7 @@ class PlayerControlSetRolePatch
Seekers.Clear();
ProcessedPlayers.Clear();
Logger.Info("PCSRP successful", "RoleManaging");
Logger.Info(" PCSRP successful", "RoleManaging");
}
return true;
@@ -120,6 +120,7 @@ class PlayerControlSetRolePatch
[HarmonyPatch(typeof(HudManager), nameof(HudManager.OnGameStart))]
internal static class OnGameStartPatch
{
public static bool PastStartScreen;
public static void Postfix()
{
if (AmongUsClient.Instance.AmHost && Options.Gamemode.GetValue() == 1 && Options.SNSChatInGame.GetBool())
@@ -139,5 +140,7 @@ internal static class OnGameStartPatch
{
Utils.StoredRoleText[p.PlayerId] = Utils.GetRoleText(p);
}
PastStartScreen = true;
}
}
+74 -1
View File
@@ -167,8 +167,21 @@ class PlayerControlCompleteTaskPatch
tasksPerPlayer[p.PlayerId] = p.Data.Tasks.Count;
}
if (__instance.Data.RoleType == RoleTypes.Impostor ||
__instance.Data.RoleType == RoleTypes.Shapeshifter ||
__instance.Data.RoleType == RoleTypes.Phantom ||
__instance.Data.RoleType == RoleTypes.Viper)
{
EACR.TaskCheat(__instance);
}
playerTasksCompleted[__instance.PlayerId]++;
if (playerTasksCompleted[__instance.PlayerId] > __instance.Data.Tasks.Count)
{
EACR.TaskCheat(__instance);
}
Logger.Info($" {__instance.Data.PlayerName} completed {idx}", "TaskPatch");
if (Options.Gamemode.GetValue() != 2) CalculateTaskWin();
@@ -192,7 +205,7 @@ class PlayerControlCompleteTaskPatch
public static void CalculateTaskWin()
{
if (!Utils.GamePastRoleSelection || Utils.isHideNSeek || Options.NoGameEnd.GetBool() || !CoShowIntroPatch.IntroInitiated) return;
if (!Utils.GamePastRoleSelection || Utils.isHideNSeek || Options.NoGameEnd.GetBool() || !OnGameStartPatch.PastStartScreen) return;
//Logger.Info($" Checking if {GameData.Instance.CompletedTasks} - {ignoredCompletedTasks} >= ({GameData.Instance.TotalTasks} - {ignoredTasks}) * 0.01 * {Options.TaskPercentNeededToWin.GetInt()}", "TaskPatch");
@@ -215,3 +228,63 @@ public static class PlayerControlCheckSporeTriggerPatch
else return true;
}
}
[HarmonyPatch(typeof(PlayerControl), nameof(PlayerControl.PlayAnimation))]
public static class PlayAnimationPatch
{
public static void Prefix(PlayerControl __instance, byte animType)
{
if (!AmongUsClient.Instance.AmHost || __instance == PlayerControl.LocalPlayer) return;
var task = (TaskTypes)animType;
switch (task)
{
case TaskTypes.PrimeShields:
case TaskTypes.ClearAsteroids:
case TaskTypes.EmptyGarbage:
if (__instance.Data.RoleType == RoleTypes.Impostor ||
__instance.Data.RoleType == RoleTypes.Shapeshifter ||
__instance.Data.RoleType == RoleTypes.Phantom ||
__instance.Data.RoleType == RoleTypes.Viper)
{
EACR.PlayAnimationCheat(__instance);
return;
}
if (!GameManager.Instance.LogicOptions.GetVisualTasks())
{
{
EACR.PlayAnimationCheat(__instance);
return;
}
}
break;
}
}
}
[HarmonyPatch(typeof(PlayerControl), nameof(PlayerControl.SetScanner))]
public static class SetScannerPatch
{
public static void Prefix(PlayerControl __instance)
{
if (!AmongUsClient.Instance.AmHost || __instance == PlayerControl.LocalPlayer) return;
if (__instance.Data.RoleType == RoleTypes.Impostor ||
__instance.Data.RoleType == RoleTypes.Shapeshifter ||
__instance.Data.RoleType == RoleTypes.Phantom ||
__instance.Data.RoleType == RoleTypes.Viper)
{
EACR.PlayAnimationCheat(__instance);
return;
}
if (!GameManager.Instance.LogicOptions.GetVisualTasks() && __instance != PlayerControl.LocalPlayer)
{
{
EACR.PlayAnimationCheat(__instance);
return;
}
}
}
}
+15 -8
View File
@@ -1,8 +1,7 @@
namespace AmongUsRevamped;
using AmongUs.GameOptions;
//Old Patch for Mayor
namespace AmongUsRevamped;
/*
[HarmonyPatch(typeof(Vent), nameof(Vent.EnterVent))]
class EnterVentPatch
{
@@ -10,11 +9,19 @@ class EnterVentPatch
{
if (!AmongUsClient.Instance.AmHost) return;
if (CustomRoleManagement.PlayerRoles.TryGetValue(pc.PlayerId, out var role) && role == "Mayor")
if (pc.Data.RoleType != RoleTypes.Impostor &&
pc.Data.RoleType != RoleTypes.Shapeshifter &&
pc.Data.RoleType != RoleTypes.Phantom &&
pc.Data.RoleType != RoleTypes.Viper &&
pc.Data.RoleType != RoleTypes.Engineer &&
!pc.Data.IsDead)
{
pc.CmdReportDeadBody(null);
Logger.Info($" The Mayor, {pc.Data.PlayerName}, called a meeting by venting", "EnterVent");
EACR.VentCheat(pc, __instance);
}
if (__instance.Id > 15)
{
EACR.VentCheat(pc, __instance);
}
}
}
*/
}
+15 -7
View File
@@ -29,7 +29,7 @@
<img src="https://github.com/astra1dev/AUnlocker/assets/90265231/14226f03-a003-4efc-b27b-6df53fb394d6" width=410 height=240>****
‎
# 🎮 Features (v1.9.1):
# 🎮 Features (v1.9.2):
## <b>♠️ Client Side settings:</b>
- Game Master (Spectator)
@@ -44,16 +44,15 @@
- Denyword system
- Banlist system
- Denyname system
- Multi layer moderator system
- Advanced Moderator system
- To add Admins, Moderators and VIP's, type the user's Friendcode in the designated files located in AUR-DATA
- Enable No Game End
- Custom starting countdown
## <b>♻️ Automation settings:</b>
- Automatically start game
- Full Autohost and Rehost support
- Automatically rejoin lobby
- Automatically send winner info
- Enable (configurable) Welcome Messages
- The Welcome Template is in Templates.txt
- Enable (configurable) Welcome Messages from Templates.txt
## <b>🔧 Gameplay Settings:</b>
- Dead impostors can sabotage
- Disable critical sabotages (invividual)
@@ -70,8 +69,16 @@
- 0 Kill Cooldown -> Set Kill Cooldown to 0.01
- Shift and Seek
- Speedrun
## <b>👾 Custom Anticheat:</b>
- Detect invalid sabotages
- Detect malformed RPC's
- Detect invalid venting
- Detect Invalid animations
- Detect Invalid task completions
- Detect immortality cheats
- These are all enabled by default
## <b>❓ Other Improvements:</b>
- Among Us Revamped supports other languages
- Lanuage support: English, Italian, Japanese, Russian, Simplified Chinese, Spanish
- Select a language in Language/YourLanguage.txt
- Preset system for mod settings
- Command Helper
@@ -80,7 +87,6 @@
- Ability to cancel starting countdown
- Improved main menu
- Faster startup time
- Custom anticheat system
- Zoom out in lobby or when dead
- See player kill/task count and Role when dead
- Higher and more accurate Option ranges
@@ -123,6 +129,8 @@
| /seeker {name} | Manually adds someone as Seeker in HnS |
| /seekers | Shows manual Seeker list in HnS |
| /clearseekers | Clears manual Seeker list in HnS |
| /mapvote | Starts a vote for the map. Default maps only |
| /allmapvote | Starts a vote for the map. Includes Eht Dleks |
‎
**Credit to these mods and their developers for their code:**
+28 -4
View File
@@ -19,38 +19,53 @@
"language": "Language (Requires Restart)",
"gamemode": "Gamemode",
"tabGroupMain": "Moderation",
"tabGroupLevelKick": "Level Moderation",
"enableKickLowLevelPlayer": "Kick Low Level Players",
"kickLowLevelPlayer": "Kick Players Under Level",
"tempBanLowLevelPlayer": "Ban Instead Of Kick",
"dontKickLevelOnes": "Don't Kick Lv.1 Players For Glitched Lobbies",
"tabGroupKickInvalidFriendCodes": "Invalid Friendcodes",
"kickInvalidFriendCodes": "Kick Invalid (Empty) Friendcodes",
"tempBanInvalidFriendCodes": "Ban Instead Of Kick",
"deniedWordsToKick": "Sent Denied Words To Kick Player",
"moderatorCanUseCommand": "Moderators can use commands",
"tabGroupAutoKickStart": "Start Words",
"autoKickStart": "Kick Players Who Say Start",
"autoKickStartAsBan": "Ban Instead Of Kick",
"autoKickStartTimes": "Start messages needed to kick",
"autoKickStartTimes": "Sent Start Words To Kick Player",
"autoKickStartStrength": "Strict detection mode",
"tabGroupAutomation": "Automation",
"autoSendGameInfo": "Automatically send winner info",
"autoRejoinLobby": "Auto Rejoin Lobby",
"tabGroupAutostart": "Autohost",
"autoStartTimer": "Countdown For Auto Start",
"waitAutoStart": "Auto Start After",
"playerAutoStart": "Players Needed To Auto Start",
"rehost": "Automatically Recreate Lobby On Disconnect",
"public": "Automatically Publicize New Lobby",
"enableJoinMessages": "Enable Welcome Messages",
"messagePerPlayerNum": "Message Per Amount Of Joins",
"tabGroupMisc": "Miscelleneous",
"tabGroupMisc": "Experimental",
"startCountdown": "Default Starting Countdown",
"colorCommandLevel": "Who Can use Color Commands",
"allowFortegreen": "Allow Fortegreen Color",
"noGameEnd": "No Game End",
"mapVoteDuration": "Map Vote Duration",
"tabGroupDeniedWords": "Denied Words",
"enableDeniedWords": "Kick Players Who Say Denied Words",
"tabGroupAccess": "Access Levels",
"slashColorCmd": "Who Can Use /color",
"slashRolesAndGamemodeCmd": "Who Can Use /r & Templates",
"slashLastGameCmd": "Who Can Use /l & /aur",
"slashMapAndSeekerCmd": "Who Can Use /seeker & /mapvote",
"slashKickCmd": "Who Can Use /kick & /ckick",
"slashBanCmd": "Who Can Use /ban & /cban",
"slashEndMeetingCmd": "Who Can Use /endmeeting & /seeker",
"slashEndMeetingCmd": "Who Can Use /endmeeting",
"slashStartAndEndGameCmd": "Who Can Use /startgame & /endgame",
"tabGroupCrewmate": "Crewmate Roles",
@@ -65,6 +80,7 @@
"noKcdSettingsOverride": "Auto Update Settings",
"tabGroupSNS": "Shift and Seek",
"snsChatInGame": "Chat during gameplay (experimental)",
"snsChatInGameExtend": "Send gamemode info after game start",
"snsSettingsOverride": "Auto Update Settings",
"cantKillTime": "After Misfiring, Can't kill for",
"misfiresToSuicide": "Suicide After Amount Of Misfires",
@@ -270,17 +286,23 @@
"seekerDesc": "Adds player as Seeker in HnS.",
"seekersDesc": "Shows all manually selected Seekers.",
"clearSeekerDesc": "Clears the manual Seeker list.",
"mapVoteDesc": "Starts a vote between the 5 core maps.",
"allMapVoteDesc": "Starts a vote between all 6 maps, including Eht Dleks.",
"banWordKick": "{0} was kicked because they sent a word in DeniedWords.txt {1} time(s)",
"startWordKick": "{0} was kicked because they sent a word in StartWords.txt {1} time(s)",
"banWordBan": "{0} was banned because they sent a word in DeniedWords.txt {1} time(s)",
"startWordBan": "{0} was banned because they sent a word in StartWords.txt {1} time(s)",
"pluginWarning": "<color=red><size=5><b>WARNING:</color></b></size>\n<size=3><b>You have 2 or more detected Plugins.</size></b>\nAmong Us Revamped is not compatible with most mods.\nIf you find bugs, they are most likely due to incompatibility.",
"systemSettings": "System Settings",
"moderationSettings": "Moderation Settings",
"gameplaySettings": "Gameplay Settings",
"gamemodeSettings": "Gamemode Settings",
"systemSettingsDesc": "Quality settings to improve comfort and testing.",
"moderationSettingsDesc": "Moderation settings to combat toxicity and misconduct.",
"gameplaySettingsDesc": "Gameplay settings to improve the in-game experience.",
"gamemodeSettingsDesc": "Situational settings to apply for specific gamemodes.",
@@ -291,5 +313,7 @@
"onlyYou": "Only You",
"seekers": "Seekers: ",
"clearedSeekers": "Successfully cleared the manual Seeker list."
"clearedSeekers": "Successfully cleared the manual Seeker list.",
"rehostSuccess": "Successfully rehosted a lobby"
}
+281 -273
View File
@@ -1,287 +1,295 @@
{
"LanguageID": "4",
"gameMaster": "ゲームマスター",
"showFPS": "FPSを表示",
"autoStart": "自動スタート",
"enableDarkTheme": "ダークテーマを有効化",
"enableLobbyMusic": "ロビーBGM",
"disableInfoWhenDead": "死亡時に情報を非表示",
"disableCommandHelper": "コマンドヘルパーを無効化",
"disableCompatibilityWarning": "互換性警告を無効化",
"gameMasterWarning": "ゲームマスターをオフにするまで観戦モードになります。警告: この設定が有効な場合、役職の割り当てが正確に行われない可能性があります。",
"cancelStartCountdown": "カウントダウンがキャンセルされました",
"invalidFriendCodeKick": "{0} は無効なフレンドコードのためキックされました",
"invalidFriendCodeBan": "{0} は無効なフレンドコードのためBANされました",
"language": "言語 (再起動が必要)",
"gamemode": "ゲームモード",
"tabGroupMain": "モデレーション",
"kickLowLevelPlayer": "指定レベル未満のプレイヤーをキック",
"tempBanLowLevelPlayer": "キックの代わりにBAN",
"dontKickLevelOnes": "Lv.1プレイヤーをキックしない (バグロビー対策)",
"kickInvalidFriendCodes": "無効(空欄)なフレンドコードをキック",
"tempBanInvalidFriendCodes": "キックの代わりにBAN",
"deniedWordsToKick": "NGワード送信者をキック",
"moderatorCanUseCommand": "モデレーターのコマンド使用を許可",
"autoKickStart": "「Start/開始」と発言したプレイヤーをキック",
"autoKickStartAsBan": "キックの代わりにBAN",
"autoKickStartTimes": "キックに必要な催促メッセージ回数",
"autoKickStartStrength": "厳格検出モード",
"tabGroupAutomation": "自動化",
"autoSendGameInfo": "勝者情報を自動送信",
"autoRejoinLobby": "ロビーへ自動再参加",
"autoStartTimer": "自動スタートのカウントダウン",
"waitAutoStart": "自動スタートまでの待機時間",
"playerAutoStart": "自動スタートに必要な人数",
"enableJoinMessages": "参加歓迎メッセージを有効化",
"messagePerPlayerNum": "指定参加人数ごとの通知",
"tabGroupMisc": "その他",
"startCountdown": "デフォルトのカウントダウン",
"colorCommandLevel": "カラーコマンドの使用権限",
"allowFortegreen": "フォルテグリーン色を許可",
"noGameEnd": "ゲーム終了なし",
"tabGroupAccess": "アクセス権限",
"slashColorCmd": "/color の使用権限",
"slashRolesAndGamemodeCmd": "/r & テンプレート の使用権限",
"slashLastGameCmd": "/l & /aur の使用権限",
"slashKickCmd": "/kick & /ckick の使用権限",
"slashBanCmd": "/ban & /cban の使用権限",
"slashEndMeetingCmd": "/endmeeting & /seeker の使用権限",
"slashStartAndEndGameCmd": "/startgame & /endgame の使用権限",
"tabGroupCrewmate": "クルー役職",
"tabGroupNeutral": "第三陣営役職",
"tabGroupImpostor": "インポスター役職",
"tabGroupStandard": "ノーマル",
"tabGroupHNS": "かくれんぼ (Hide and Seek)",
"numSeekers": "鬼の人数",
"tabGroup0Kcd": "キルクールダウン0秒",
"noKcdSettingsOverride": "設定を自動更新",
"tabGroupSNS": "シェイプ&シーク (Shift and Seek)",
"snsChatInGame": "ゲーム中のチャットを許可 (ベータ機能)",
"snsSettingsOverride": "設定を自動更新",
"cantKillTime": "お手付き後のキル不可時間",
"misfiresToSuicide": "指定回数のお手付きで自滅",
"crewAutoWinsGameAfter": "クルーの自動勝利カウントダウン",
"snsDisableSabotage": "SnS緊急サボタージュを無効化",
"snsDisableReactor": "リアクターサボタージュを無効化",
"snsDisableOxygen": "O2サボタージュを無効化",
"snsDisableLights": "停電サボタージュを無効化",
"snsDisableComms": "通信妨害サボタージュを無効化",
"snsDisableHeli": "墜落危険サボタージュを無効化",
"snsDisableMushroomMixup": "キノコシャッフルサボタージュを無効化",
"snsDisableCloseDoor": "SnSドア閉鎖を無効化",
"tabGroupSpeedrun": "スピードラン",
"speedrunSettingsOverride": "設定を自動更新",
"gameAutoEndsAfter": "ゲームの自動終了時間",
"engineerMode": "全員エンジニア",
"tabGroupSabotages": "サボタージュ設定",
"deadImpostorsCanSabotage": "幽霊インポスターのサボタージュを許可",
"disableSabotage": "緊急サボタージュを無効化",
"disableReactor": "リアクターサボタージュを無効化",
"disableOxygen": "O2サボタージュを無効化",
"disableLights": "停電サボタージュを無効化",
"disableComms": "通信妨害サボタージュを無効化",
"disableHeli": "墜落危険サボタージュを無効化",
"disableMushroomMixup": "キノコシャッフルサボタージュを無効化",
"disableCloseDoor": "ドア閉鎖を無効化",
"tabGroupGameplayGeneral": "一般ゲーム設定",
"disableAnnoyingMeetingCalls": "開始30秒間の緊急会議召集を禁止",
"disableReport": "通報を無効化",
"changeDecontaminationTime": "除染時間を変更 (ノーマル限定)",
"decontaminationTimeOnMiraHQ": "MIRA HQ 除染所要時間",
"decontaminationDoorOpenTimeOnMiraHQ": "MIRA HQ 除染ドア開放時間",
"decontaminationTimeOnPolus": "Polus 除染所要時間",
"decontaminationDoorOpenTimeOnPolus": "Polus 除染ドア開放時間",
"disableSporeTrigger": "Fungleの胞子発生を無効化",
"disableDevices": "端末・設備を無効化",
"disableSkeldDevices": "The Skeld の設備を無効化",
"disableSkeldAdmin": "The Skeld アドミンを無効化",
"disableSkeldCamera": "The Skeld 防犯カメラを無効化",
"disableMiraHQDevices": "MIRA HQ の設備を無効化",
"disableMiraHQAdmin": "MIRA HQ アドミンを無効化",
"disableMiraHQDoorLog": "MIRA HQ ドアログを無効化",
"disablePolusDevices": "Polus の設備を無効化",
"disablePolusAdmin": "Polus アドミンを無効化",
"disablePolusCamera": "Polus 防犯カメラを無効化",
"disablePolusVital": "Polus バイタルを無効化",
"disableAirshipDevices": "The Airship の設備を無効化",
"disableAirshipCockpitAdmin": "The Airship 操縦室アドミンを無効化",
"disableAirshipRecordsAdmin": "The Airship 記録室アドミンを無効化",
"disableAirshipCamera": "The Airship 防犯カメラを無効化",
"disableAirshipVital": "The Airship バイタルを無効化",
"disableFungleDevices": "The Fungle の設備を無効化",
"disableFungleVital": "The Fungle バイタルを無効化",
"tabGroupTasks": "タスク設定",
"allPlayersSameTasks": "全員同じタスクを割り当て",
"overrideTaskSettings": "すべてのタスクを無効化",
"taskPercentNeededToWin": "クルー勝利に必要なタスク完了率(%)",
"disableMiraTasks": "MIRA HQ タスクを無効化",
"disableBuyBeverage": "「飲料の購入」を無効化",
"disableMeasureWeather": "「天気の測定」を無効化",
"disableProcessData": "「データの処理」を無効化",
"disableRunDiagnostics": "「診断の実行」を無効化",
"disableSortSamples": "「標本の仕分け」を無効化",
"disablePolusTasks": "Polus タスクを無効化",
"disableActivateWeatherNodes": "「気象ノードの有効化」を無効化",
"disableAlignTelescope": "「望遠鏡の整列」を無効化",
"disableFillCanisters": "「キャニスターへの充填」を無効化",
"disableInsertKeys": "「鍵の挿入」を無効化",
"disableOpenWaterways": "「水路を開く」を無効化",
"disableRebootWifi": "「Wi-Fiの再起動」を無効化",
"disableRepairDrill": "「ドリルの修理」を無効化",
"disableScanBoardingPass": "「搭乗券のスキヤン」を無効化",
"disableAirshipTasks": "The Airship タスクを無効化",
"disableCleanToilet": "「トイレの掃除」を無効化",
"disableDecontaminate": "「除染」を無効化",
"disableDevelopPhotos": "「写真の現像」を無効化",
"disableDressMannequin": "「マネキンの着せ替え」を無効化",
"disableFixShower": "「シャワーの修理」を無効化",
"disableMakeBurger": "「バーガーの作成」を無効化",
"disablePickUpTowels": "「タオルを拾う」を無効化",
"disablePolishRuby": "「ルビーを磨く」を無効化",
"disablePutAwayPistols": "「拳銃の片付け」を無効化",
"disablePutAwayRifles": "「ライフルを片付ける」を無効化",
"disableRewindTapes": "「テープの巻き戻し」を無効化",
"disableResetBreakers": "「ブレーカーのリセット」を無効化",
"disableSortRecords": "「記録の整理」を無効化",
"disableStartFans": "「ファンを始動」を無効化",
"disableUnlockSafe": "「金庫の解錠」を無効化",
"disableFungleTasks": "The Fungle タスクを無効化",
"disableBuildSandcastle": "「砂の城を作る」を無効化",
"disableCatchFish": "「魚を捕まえる」を無効化",
"disableCollectSamples": "「標本の採取」を無効化",
"disableCollectShells": "「貝殻の採取」を無効化",
"disableCollectVegetables": "「野菜の収穫」を無効化",
"disableCrankGenerator": "「発電機を回す」を無効化",
"disableExtractFuel": "「燃料の抽出」を無効化",
"disableFixAntenna": "「アンテナの修理」を無効化",
"disableHelpCritter": "「生き物の救出」を無効化",
"disableHoistSupplies": "「物資の引き上げ」を無効化",
"disableLiftWeights": "「ウエイトリフティング」を無効化",
"disableMineOres": "「鉱石の採掘」を無効化",
"disablePlayVideoGame": "「ゲームを遊ぶ」を無効化",
"disablePolishGem": "「宝石を磨く」を無効化",
"disableReplaceParts": "「部品の交換」を無効化",
"disableRoastMarshmallow": "「マシュマロを焼く」を無効化",
"disableThrowFisbee": "「フリスビーを投げる」を無効化",
"disableFindSignal": "「信号を探す」を無効化",
"disableMiscCommonTasks": "共通タスクを無効化",
"disableEnterIdCode": "「IDコードの入力」を無効化",
"disableFixWiring": "「配線の修理」を無効化",
"disableSwipeCard": "「カードを通す」を無効化",
"disableMiscShortTasks": "ショートタスクを無効化",
"disableAssembleArtifact": "「アーティファクトの組み立て」を無効化",
"disableChartCourse": "「航路の確認」を無効化",
"disableCleanO2Filter": "「O2フィルターの清掃」を無効化",
"disableCleanVent": "「ベントの清掃」を無効化",
"disableMonitorMushroom": "「キノコの監視」を無効化",
"disableMonitorTree": "「木の監視」を無効化",
"disablePrimeShields": "「シールドの準備」を無効化",
"disableRecordTemperature": "「温度の記録」を無効化",
"disableStabilizeSteering": "「操舵の安定化」を無効化",
"disableStoreArtifacts": "「アーティファクトの保管」を無効化",
"disableUnlockManifolds": "「マニホールドの開錠」を無効化",
"disableMiscLongTasks": "ロングタスクを無効化",
"disableAlignEngineOutput": "「エンジン出力の調整」を無効化",
"disableClearAsteroids": "「小惑星の破壊」を無効化",
"disableEmptyChute": "「ダストシュートを空にする」を無効化",
"disableInspectSample": "「検体の検査」を無効化",
"disableReplaceWaterJug": "「給水ボトルの交換」を無効化",
"disableStartReactor": "「リアクターの起動」を無効化",
"disableWaterPlants": "「植物の水やり」を無効化",
"disableMiscMixedTasks": "ミックス(多段階)タスクを無効化",
"disableCalibrateDistributor": "「ディストリビューターの調整」を無効化",
"disableDivertPower": "「電力のバイパス」を無効化",
"disableEmptyGarbage": "「ゴミ捨て」を無効化",
"disableFuelEngines": "「エンジンへの給油」を無効化",
"disableSubmitScan": "「スキャンの送信」を無効化",
"disableUploadData": "「データのアップロード」を無効化",
"allCommandsFull": "<b>全コマンド一覧:</b>\n\n<b>/help</b>\nこのヘルプメッセージを表示します。\n<b>/aur, /socials</b>\nAmong Us Revamped のSNSリンクを送信します。\n\n<b>/r, /gm</b>\n現在のゲームモードの説明を送信します。\n<b>/l, /lastgame</b>\n前回の勝者情報を送信します。\n\n<b>/0kc, /0killcooldown</b>\nキルクール0秒モードの説明を送信します。\n<b>/sns, /shiftandseek</b>\nシェイプ&シークモードの説明を送信します。\n<b>/sp, /speedrun</b>\nスピードランモードの説明を送信します。\n\n/<b>kick, /ban</b>\n名前指定でプレイヤーをキック/BANします。\n<b>/ckick, /cban</b>\n色指定でプレイヤーをキック/BANします。\n\n<b>/vip /moderator /admin</b>\nプレイヤーをVIP、モデレーター、管理人に設定します。\n<b>/removevip, /removemoderator, /removeadmin</b>\nプレイヤーの権限を削除します。\n\n<b>/eg, /endgame</b>\n現在のゲームを強制終了します。\n<b>/em, /endmeeting</b>\n現在の会議を強制終了します。\n<b>/s, /start</b>\nゲーム開始のカウントダウンを開始します。\n\n<b>/t {template}</b>\nAUR-DATA/templates.txt から定型文を送信します。\n\n<b>/col, /color, /colour</b>\n自分の色を設定します(制限解除に使用可能)。",
"translationReloaded": "翻訳ファイルが正常にリセットされました。\n変更を適用するにはゲームを再起動してください。",
"templateWelcome": "# このファイルには定型文(テンプレート)を追加できます。\n# テンプレートを作成するには、下の例と同じフォーマットで新しい行を追加してください。\n# 注意: テンプレートは120文字を超えてはいけず、特殊文字も使用できません(送信時にキックされます)。\n\ntest: これはテンプレートの例です。'/t test' と入力して送信します。\n\nwelcome: ようこそ! このロビーは MV 作成の Among Us Revamped {ModVersion} を使用しています。お楽しみください!",
"moderatorWelcome": "# このファイルにはフレンドコードでモデレーターを追加できます。\n# 追加されたプレイヤーはゲーム内で名前が紫色で表示されます。\n# 権限のカスタマイズはゲーム内の「システム設定」で行えます。以下は記述例です。\n\nfriendcode#0000",
"vipWelcome": "# このファイルにはフレンドコードでVIPを追加できます。\n# 追加されたプレイヤーはゲーム内で名前が黄色で表示されます。\n# 権限のカスタマイズはゲーム内の「システム設定」で行えます。以下は記述例です。\n\nfriendcode#0000\n",
"adminWelcome": "# このファイルにはフレンドコードで管理人(Admin)を追加できます。\n# 追加されたプレイヤーはゲーム内で名前が赤色で表示されます。\n# 権限のカスタマイズはゲーム内の「システム設定」で行えます。以下は記述例です。\n\nfriendcode#0000\n",
"banlistWelcome": "# このファイルにフレンドコードを記述することでプレイヤーをBANリストに追加できます。\n# ゲーム内でBANしたプレイヤーも自動的にここへ追加されます。以下は記述例です。\n\nfriendcode#0000\n",
"banwordWelcome": "# このファイルではNGワードを設定できます。リスト内の単語を発言したプレイヤーは自動的にキックされます。\n# 単語ごとに改行して区切ってください。",
"bannameWelcome": "# このファイルではNGネームを設定できます。リスト内の名前を使用しているプレイヤーは自動的にキックされます。\n# 名前ごとに改行して区切ってください。",
"startWordsWelcome": "# このファイルでは「『Start』と発言したプレイヤーをキック」に使用する判定単語を設定できます。\n# 「厳格検出モード」OFF = 完全一致で判定。「厳格検出モード」ON = 部分一致で判定。\n# ロビー内でのみ検知したい無関係な単語を入れることも可能です。\n\nstart\nbegin\ncommence",
"noGameEndWarning": "警告: 「ゲーム終了なし」が有効になっています",
"gameMasterWarningTwo": "警告: 「ゲームマスター」が有効になっています",
"tooLongTemplate": "テンプレートが120文字を超えているため、送信するとキックされます。文字数を減らしてください。",
"vipAdd": "{0} をVIPに追加しました。",
"moderatorAdd": "{0} をモデレーターに追加しました。",
"adminAdd": "{0} を管理人に追加しました。",
"vipRemove": "{0} のVIP権限を削除しました。",
"moderatorRemove": "{0} のモデレーター権限を削除しました。",
"adminRemove": "{0} の管理人権限を削除しました。",
"permFail": "ユーザー '{0}' が見つかりませんでした。綴りが正しいか確認してください。",
"helpDesc": "すべてのコマンドと機能を表示します。",
"snsDesc": "シェイプ&シークモードの説明を送信します。",
"0kcDesc": "キルクール0秒モードの説明を送信します。",
"SrDesc": "スピードランモードの説明を送信します。",
"egDesc": "現在のゲームを強制終了します。",
"emDesc": "現在の会議を強制終了します。",
"aurDesc": "Among Us Revamped のSNSリンクを送信します。",
"sDesc": "ゲーム開始カウントダウンを開始します。",
"rDesc": "現在のゲームモードの説明を送信します。",
"rolesDesc": "すべての能力・モードの概要を送信します。",
"kickDesc": "名前指定でプレイヤーをキックします。",
"ckickDesc": "色指定でプレイヤーをキックします。",
"banDesc": "名前指定でプレイヤーをBANします。",
"cbanDesc": "色指定でプレイヤーをBANします。",
"dumpDesc": "LogOutputを別のファイルにコピーします。",
"colDesc": "自分の色を変更します。",
"reloadDesc": "言語ファイルを再読み込みします。",
"vipDesc": "ユーザーをVIPに追加します。",
"moderatorDesc": "ユーザーをモデレーターに追加します。",
"adminDesc": "ユーザーを管理人に追加します。",
"cremoveVipDesc": "ユーザーからVIP権限を削除します。",
"removeModeratorDesc": "ユーザーからモデレーター権限を削除します。",
"removeAdminDesc": "ユーザーから管理人権限を削除します。",
"lastgameDesc": "前回のゲーム情報を送信します。",
"templateDesc": "AUR-DATA/templates.txt から指定のテンプレートを送信します。",
"seekerDesc": "かくれんぼでプレイヤーを鬼(Seeker)に指定します。",
"seekersDesc": "手動選択された鬼のリストを表示します。",
"clearSeekerDesc": "手動選択された鬼のリストをクリアします。",
"banWordKick": "{0} は DeniedWords.txt に登録されたNGワードを {1} 回送信したためキックされました",
"startWordKick": "{0} は StartWords.txt に登録された単語を {1} 回送信したためキックされました",
"pluginWarning": "<color=red><size=5><b>警告:</color></b></size>\n<size=3><b>複数のプラグイン(Mod)が検出されました。</size></b>\nAmong Us Revamped は他の多くのMODと互換性がありません。\nバグが発生する場合、そのほとんどはMod間の競合によるものです。",
"systemSettings": "システム設定",
"gameplaySettings": "ゲームプレイ設定",
"gamemodeSettings": "モード設定",
"gamemodeSettings": "ゲームモード設定",
"systemSettingsDesc": "快適性の向上やテスト目的の画質・システム設定。",
"gameplaySettingsDesc": "ゲーム内体験を改善するための設定。",
"gamemodeSettingsDesc": "特定のゲームモードに適したシチュエーション設定。",
"systemSettingsDesc": "快適性やテスト作業を向上させる各種設定。",
"gameplaySettingsDesc": "局内の体験を向上させるゲームプレイ設定。",
"gamemodeSettingsDesc": "特定モード用に適用する状況別の設定。",
"everyone": "全員",
"vipAndAbove": "<color=yellow>VIP</color> 以上",
"moderatorAndAbove": "<color=purple>モデレーター</color> 以上",
"admin": "<color=red>管理者</color>",
"onlyYou": "自分のみ",
"admin": "<color=red>管理人</color>",
"onlyYou": "あなたのみ",
"gameMaster": "管理者",
"showFPS": "FPSを表示",
"autoStart": "自動開始",
"enableDarkTheme": "ダークテーマを有効化",
"enableLobbyMusic": "ロビーBGM",
"disableInfoWhenDead": "死亡後に情報を非表示",
"disableCommandHelper": "コマンドヘルパーを無効化",
"gameMasterWarning": "ゲーム管理者をオフにするまで、観戦モードに入ります。警告:この設定を有効にすると、スキルのメッセージが送信されなくなったり、配役の割り当てが不正確になったりする可能性があります。",
"cancelStartCountdown": "開始カウントダウンがキャンセルされました",
"invalidFriendCodeKick": "{0} はフレンドコードが無効なためキックされました",
"invalidFriendCodeBan": "{0} はフレンドコードが無効なためBANされました",
"language": "言語 (再起動が必要)",
"gamemode": "ゲームモード",
"tabGroupMain": "管理設定",
"kickLowLevelPlayer": "このレベル未満のプレイヤーをキック",
"tempBanLowLevelPlayer": "キックではなくBANにする",
"dontKickLevelOnes": "部屋のエラーによるレベル1プレイヤーのキックを防止",
"kickInvalidFriendCodes": "無効(空)のフレンドコードをキック",
"tempBanInvalidFriendCodes": "キックではなくBANにする",
"deniedWordsToKick": "NGワード送信時にプレイヤーをキック",
"moderatorCanUseCommand": "モデレーターはコマンドを使用可能",
"autoKickStart": "「Start」と送信したプレイヤーを自動キック",
"autoKickStartAsBan": "キックではなくBANにする",
"autoKickStartTimes": "キックに必要な「Start」の送信回数",
"autoKickStartStrength": "厳格な検出モード",
"tabGroupAutomation": "自動化",
"autoSendGameInfo": "勝者情報を自動送信",
"autoRejoinLobby": "ロビーに自動で再参加",
"autoStartTimer": "自動開始カウントダウン",
"waitAutoStart": "自動開始の待機時間",
"playerAutoStart": "自動開始に必要な人数",
"enableJoinMessages": "入室歓迎メッセージを有効化",
"messagePerPlayerNum": "指定した入室人数に達するごとにメッセージを送信",
"tabGroupMisc": "その他設定",
"startCountdown": "デフォルトの開始カウントダウン",
"colorCommandLevel": "カラーコマンドを使用できる権限",
"allowFortegreen": "フォートグリーンを許可",
"noGameEnd": "ゲームが絶対に終了しない",
"tabGroupAccess": "権限レベル",
"slashColorCmd": "/color を使用できる権限",
"slashRolesAndGamemodeCmd": "/r とテンプレートを使用できる権限",
"slashLastGameCmd": "/l と /aur を使用できる権限",
"slashKickCmd": "/kick と /ckick を使用できる権限",
"slashBanCmd": "/ban と /cban を使用できる権限",
"slashEndMeetingCmd": "/endmeeting を使用できる権限",
"slashStartAndEndGameCmd": "/startgame と /endgame を使用できる権限",
"tabGroupCrewmate": "クルーメイトの役職",
"tabGroupNeutral": "ニュートラルの役職",
"tabGroupImpostor": "インポスターの役職",
"tabGroupStandard": "スタンダードモード",
"tabGroupHNS": "かくれんぼモード (Hide and Seek)",
"numSeekers": "オニの数",
"tabGroup0Kcd": "キルクールダウン0秒モード (0 Kill Cooldown)",
"noKcdSettingsOverride": "設定の自動更新",
"tabGroupSNS": "シフト&シーク (Shift and Seek)",
"snsChatInGame": "ゲーム進行中のチャットを許可 (実験的)",
"snsSettingsOverride": "設定の自動更新",
"cantKillTime": "ミス/空振り後のキル不能時間",
"misfiresToSuicide": "ミスが指定回数に達した時に自害",
"crewAutoWinsGameAfter": "クルーがこの時間経過後に自動勝利",
"snsDisableSabotage": "SnSの緊急サボタージュを無効化",
"snsDisableReactor": "リアクター妨害を無効化",
"snsDisableOxygen": "酸素妨害を無効化",
"snsDisableLights": "停電妨害を無効化",
"snsDisableComms": "通信妨害を無効化",
"snsDisableHeli": "墜落危機妨害を無効化",
"snsDisableMushroomMixup": "キノコまぜまぜ妨害を無効化",
"snsDisableCloseDoor": "SnSのドア閉め妨害を無効化",
"tabGroupSpeedrun": "タイムアタックモード (Speedrun)",
"speedrunSettingsOverride": "設定の自動更新",
"gameAutoEndsAfter": "ゲームがこの時間経過後に自動終了",
"engineerMode": "全員がエンジニア",
"tabGroupSabotages": "サボタージュ設定",
"deadImpostorsCanSabotage": "死亡したインポスターもサボタージュ可能",
"disableSabotage": "緊急サボタージュを無効化",
"disableReactor": "リアクター妨害を無効化",
"disableOxygen": "酸素妨害を無効化",
"disableLights": "停電妨害を無効化",
"disableComms": "通信妨害を無効化",
"disableHeli": "墜落危機妨害を無効化",
"disableMushroomMixup": "キノコまぜまぜ妨害を無効化",
"disableCloseDoor": "ドア閉め妨害を無効化",
"tabGroupGameplayGeneral": "全般的なゲームプレイ",
"disableAnnoyingMeetingCalls": "ゲーム開始後30秒間は緊急会議の招集を禁止",
"disableReport": "死体通報を無効化",
"changeDecontaminationTime": "除染室の時間を上書き (スタンダードモードのみ)",
"decontaminationTimeOnMiraHQ": "Mira HQの除染持続時間",
"decontaminationDoorOpenTimeOnMiraHQ": "Mira HQのドア開放持続時間",
"decontaminationTimeOnPolus": "Polusの除染持続時間",
"decontaminationDoorOpenTimeOnPolus": "Polusのドア開放持続時間",
"disableSporeTrigger": "The Fungleの胞子トリガーを無効化",
"disableDevices": "端末を無効化",
"disableSkeldDevices": "Skeldの端末を無効化",
"disableSkeldAdmin": "Skeldの管理室マップを無効化",
"disableSkeldCamera": "Skeldの監視カメラを無効化",
"disableMiraHQDevices": "Mira HQの端末を無効化",
"disableMiraHQAdmin": "Mira HQの管理室マップを無効化",
"disableMiraHQDoorLog": "Mira HQのセンサーログを無効化",
"disablePolusDevices": "Polusの端末を無効化",
"disablePolusAdmin": "Polusの管理室マップを無効化",
"disablePolusCamera": "Polusの監視カメラを無効化",
"disablePolusVital": "Polusのバイタルを無効化",
"disableAirshipDevices": "Airshipの端末を無効化",
"disableAirshipCockpitAdmin": "Airshipのコックピット管理室マップを無効化",
"disableAirshipRecordsAdmin": "Airshipの記録室管理室マップを無効化",
"disableAirshipCamera": "Airshipの監視カメラを無効化",
"disableAirshipVital": "Airshipのバイタルを無効化",
"disableFungleDevices": "The Fungleの端末を無効化",
"disableFungleVital": "The Fungleのバイタルを無効化",
"tabGroupTasks": "タスク設定",
"allPlayersSameTasks": "全員が同じタスクを所持",
"overrideTaskSettings": "タスクを無効化",
"taskPercentNeededToWin": "クルーの勝利に必要なタスク達成割合",
"disableMiraTasks": "Mira HQのタスクを無効化",
"disableBuyBeverage": "「飲料を買う」を無効化",
"disableMeasureWeather": "「天気を計測する」を無効化",
"disableProcessData": "「データを処理する」を無効化",
"disableRunDiagnostics": "「診断を実行する」を無効化",
"disableSortSamples": "「サンプルを整理する」を無効化",
"disablePolusTasks": "Polusのタスクを無効化",
"disableActivateWeatherNodes": "「気象ノードを起動する」を無効化",
"disableAlignTelescope": "「望遠鏡を調整する」を無効化",
"disableFillCanisters": "「キャニスターを満たす」を無効化",
"disableInsertKeys": "「鍵を差し込む」を無効化",
"disableOpenWaterways": "「水路を開く」を無効化",
"disableRebootWifi": "「Wi-Fiを再起動する」を無効化",
"disableRepairDrill": "「ドリルを修理する」を無効化",
"disableScanBoardingPass": "「搭乗券をスキャンする」を無効化",
"disableAirshipTasks": "Airshipのタスクを無効化",
"disableCleanToilet": "「トイレを掃除する」を無効化",
"disableDecontaminate": "「除染する」を無効化",
"disableDevelopPhotos": "「写真を現像する」を無効化",
"disableDressMannequin": "「マネキンに着せ替える」を無効化",
"disableFixShower": "「シャワーヘッドを修理する」を無効化",
"disableMakeBurger": "「ハンバーガーを作る」を無効化",
"disablePickUpTowels": "「タオルを拾う」を無効化",
"disablePolishRuby": "「ルビーを磨く」を無効化",
"disablePutAwayPistols": "「ピストルを片付ける」を無効化",
"disablePutAwayRifles": "「ライフルを片付ける」を無効化",
"disableRewindTapes": "「テープを巻き戻す」を無効化",
"disableResetBreaker": "「ブレーカーをリセットする」を無効化",
"disableSortRecords": "「記録を整理する」を無効化",
"disableStartFans": "「ファンを始動する」を無効化",
"disableUnlockSafe": "「金庫を開ける」を無効化",
"disableFungleTasks": "The Fungleのタスクを無効化",
"disableBuildSandcastle": "「砂のお城を作る」を無効化",
"disableCatchFish": "「魚釣りをする」を無効化",
"disableCollectSamples": "「サンプルを採集する」を無効化",
"disableCollectShells": "「貝殻を集める」を無効化",
"disableCollectVegetables": "「野菜を収穫する」を無効化",
"disableCrankGenerator": "「発電機を回す」を無効化",
"disableExtractFuel": "「燃料を抽出する」を無効化",
"disableFixAntenna": "「アンテナを修理する」を無効化",
"disableHelpCritter": "「小動物を助ける」を無効化",
"disableHoistSupplies": "「物資を巻き上げる」を無効化",
"disableLiftWeights": "「ウエイトリフティング」を無効化",
"disableMineOres": "「鉱石を採掘する」を無効化",
"disablePlayVideoGame": "「ゲームを遊ぶ」を無効化",
"disablePolishGem": "「宝石を磨く」を無効化",
"disableReplaceParts": "「部品を交換する」を無効化",
"disableRoastMarshmallow": "「マシュマロを焼く」を無効化",
"disableThrowFisbee": "「フリスビーを投げる」を無効化",
"disableFindSignal": "「電波を探す」を無効化",
"disableMiscCommonTasks": "共通タスクをグローバル無効化",
"disableEnterIdCode": "「IDコードを入力する」を無効化",
"disableFixWiring": "「配線を修理する」を無効化",
"disableSwipeCard": "「カードをスワイプする」を無効化",
"disableMiscShortTasks": "ショートタスクをグローバル無効化",
"disableAssembleArtifact": "「遺物を組み立てる」を無効化",
"disableChartCourse": "「航路を設定する」を無効化",
"disableCleanO2Filter": "「酸素フィルターを清掃する」を無効化",
"disableCleanVent": "「ベントを清掃する」を無効化",
"disableMonitorMushroom": "「キノコを監視する」を無効化",
"disableMonitorTree": "「木を監視する」を無効化",
"disablePrimeShields": "「シールドを充填する」を無効化",
"disableRecordTemperature": "「温度を記録する」を無効化",
"disableStabilizeSteering": "「操縦を安定させる」を無効化",
"disableStoreArtifacts": "「遺物を保管する」を無効化",
"disableUnlockManifolds": "「マニホールドを開ける」を無効化",
"disableMiscLongTasks": "ロングタスクをグローバル無効化",
"disableAlignEngineOutput": "「エンジン出力を調整する」を無効化",
"disableClearAsteroids": "「小惑星をクリアする」を無効化",
"disableEmptyChute": "「ゴミ捨て場のシュートを空にする」を無効化",
"disableInspectSample": "「サンプルを検査する」を無効化",
"disableReplaceWaterJug": "「給水ボトルの交換」を無効化",
"disableStartReactor": "「リアクターを起動する」を無効化",
"disableWaterPlants": "「植物に水をやる」を無効化",
"disableMiscMixedTasks": "複合タスクをグローバル無効化",
"disableCalibrateDistributor": "「配電盤を調整する」を無効化",
"disableDivertPower": "「電力を転送する」を無効化",
"disableEmptyGarbage": "「ゴミを捨てる」を無効化",
"disableFuelEngines": "「エンジンに燃料を補給する」を無効化",
"disableSubmitScan": "「スキャンを送信する」を無効化",
"disableUploadData": "「データをアップロードする」を無効化",
"allCommandsFull": "<b>すべてのコマンド:</b>\n\n<b>/help</b>\nこのヘルプメッセージを表示します。\n<b>/aur, /socials</b>\nAmong Us RevampedのSNSリンクを送信します。\n\n<b>/r, /gm</b>\n現在のモード紹介またはスキルリストを送信します。\n<b>/l, /lastgame</b>\n前回のゲームの勝者情報を送信します。\n\n<b>/0kc, /0killcooldown</b>\nキルクールダウン0秒モードの紹介を送信します。\n<b>/sns, /shiftandseek</b>\nシフト&シークモードの紹介を送信します。\n<b>/sp, /speedrun</b>\nタイムアタックモードの紹介を送信します。\n\n/<b>kick, /ban</b>\n名前を指定してプレイヤーをキックまたはBANします。\n<b>/ckick, /cban</b>\n色を指定してプレイヤーをキックまたはBANします。\n\n<b>/vip /moderator /admin</b>\nプレイヤーをVIP、モデレーター、または管理者に設定します。\n<b>/removevip, /removemoderator, /removeadmin</b>\nプレイヤーのVIP、モデレーター、または管理者権限を剥奪します。\n\n<b>/eg, /endgame</b>\n現在のゲームを終了します。\n<b>/em, /endmeeting</b>\n現在の会議を終了します。\n<b>/s, /start</b>\nゲーム開始のカウントダウンを始めます。\n\n<b>/t {template}</b>\nAUR-DATA/templates.txt内の指定されたテンプレートを送信します。\n\n<b>/col, /color, /colour</b>\nあなたのカラーを設定します(制限のバイパスに使用可能)。",
"translationReloaded": "ファイルが正常にリセットされました。\nすべての変更を適用するには、ゲームを再起動してください。",
"templateWelcome": "# このファイルでは、簡単にコピー&ペーストできるテンプレートを追加できます。\n# 新しいテンプレートを作成するには、改行して下のテスト用テンプレートと同じ形式を使用してください。\n# テンプレートの長さは120文字を超えることはできず、特殊文字も含められません。超えた場合は部屋からキックされます。\n\ntest: これはテンプレートの例です。「/t test」と入力すると表示されます。\n\nwelcome: ようこそ!このロビーはMV制作の Among Us Revamped {ModVersion} を使用しています。お楽しみください!",
"moderatorWelcome": "# このファイルでは、フレンドコードを使ってモデレーターを追加できます。\n# 追加されると、ゲーム内での名前が紫色になります。\n# ゲーム内の「システム設定」からモデレーター権限をカスタマイズしてください。以下はフレンドコードの例です。\n\nfriendcode#0000",
"vipWelcome": "# このファイルでは、フレンドコードを使ってVIPを追加できます。\n# 追加されると、ゲーム内での名前が黄色になります。\n# ゲーム内の「システム設定」からVIP権限をカスタマイズしてください。以下はフレンドコードの例です。\n\nfriendcode#0000\n",
"adminWelcome": "# このファイルでは、フレンドコードを使って管理職(Admin)を追加できます。\n# 追加されると、ゲーム内での名前が赤色になります。\n# ゲーム内の「システム設定」から管理者権限をカスタマイズしてください。以下はフレンドコードの例です。\n\nfriendcode#0000\n",
"banlistWelcome": "# このファイルでは、フレンドコードを使ってロビーからプレイヤーをBANできます。\n# ゲーム内で誰かをBANすると、自動的にここにも同期されます。以下はフレンドコードの例です。\n\nfriendcode#0000\n",
"banwordWelcome": "# このファイルでは、NGワードを設定できます。ここでリストされた単語をゲーム内で送信したプレイヤーは自動的にキックされます。\n# 単語ごとに必ず改行して区切ってください。",
"bannameWelcome": "# このファイルでは、NG名前を設定できます。ここでリストされた名前をゲーム内で使用しているプレイヤーは自動的にキックされます。\n# 名前ごとに必ず改行して区切ってください。",
"noGameEndWarning": "警告:「ゲームが絶対に終了しない」が有効になっています",
"tooLongTemplate": "テンプレートが120文字を超えているため、送信するとキックされます。長さを短くしてください。",
"vipAdd": "{0} を VIP として登録しました。",
"moderatorAdd": "{0} を モデレーター として登録しました。",
"adminAdd": "{0} を 管理者 として登録しました。",
"vipRemove": "{0} の VIP 権限を削除しました。",
"moderatorRemove": "{0} の モデレーター 権限を削除しました。",
"adminRemove": "{0} の 管理者 権限を削除しました。",
"permFail": "ユーザー '{0}' が見つかりません。スペルが正しいか確認してください。",
"helpDesc": "すべてのコマンドとその機能を表示します。",
"snsDesc": "シフト&シーク (Shift and Seek) ゲームモードの紹介を送信します。",
"0kcDesc": "キルクールダウン0秒 (0 Kill Cooldown) ゲームモードの紹介を送信します。",
"SrDesc": "タイムアタック (Speedrun) ゲームモード의 紹介を送信します。",
"egDesc": "現在のゲームを終了します。",
"emDesc": "現在の会議を終了します。",
"aurDesc": "Among Us RevampedのSNSリンクを送信します。",
"sDesc": "ゲーム開始のカウントダウンを始めます。",
"rDesc": "/r はアクティブなスキルまたは現在のモードを送信します。",
"rolesDesc": "すべてのスキル・ゲームモードの概要を送信します。",
"kickDesc": "名前を指定してプレイヤーをキックします。",
"ckickDesc": "色を指定してプレイヤーをキックします。",
"banDesc": "名前を指定してプレイヤーをBANします。",
"cbanDesc": "色を指定してプレイヤーをBANします。",
"dumpDesc": "LogOutput(ログ出力)を独立したファイルにコピーします。",
"colDesc": "あなたのカラーを設定します。",
"reloadDesc": "言語ファイルを再読み込みします。",
"vipDesc": "ユーザーを VIP に追加します。",
"moderatorDesc": "ユーザーを モデレーター に追加します。",
"adminDesc": "ユーザーを 管理者 に追加します。",
"cremoveVipDesc": "ユーザーの VIP 権限を削除します。",
"removeModeratorDesc": "ユーザーの モデレーター 権限を削除します。",
"removeAdminDesc": "ユーザーの 管理者 権限を削除します。",
"lastgameDesc": "前回のゲーム情報を送信します。",
"templateDesc": "AUR-DATA/templates.txtで指定されたテンプレートを送信します。",
"banWordKick": "{0} はNGワードを送信したためキックされました(累計回数:{1} 回)",
"pluginWarning": "<color=red><size=5><b>警告:</color></b></size>\n<size=3><b>2つ以上のプラグインが有効化されていることを検出しました。</size></b>\nAmong Us RevampedはほとんどのModと互換性がありません。\n不具合が発生した場合、競合が原因である可能性が非常に高いです。"
"seekers": "鬼(Seeker): ",
"clearedSeekers": "手動選択された鬼のリストを正常にクリアしました。"
}
+41 -27
View File
@@ -10,9 +10,7 @@
"disableCommandHelper": "Выключить Командного Помощника",
"disableCompatibilityWarning": "Выключить Предупреждение Совместимости",
"gameMasterWarning":"Вы будете наблюдать игры пока включён режим спектатора. ВНИМАНИЕ: Сообщения со способностями не будут отправлены и назначение ролей может быть неправильным если эта настройка включена.",
"cancelStartCountdown": "Отсчет до старта отменён",
"cancelStartCountdown": "Отсчёт до старта отменён",
"invalidFriendCodeKick": "{0} был кикнут из-за неправильного Кода друга",
"invalidFriendCodeBan": "{0} был забанен из-за неправильного Кода друга",
@@ -29,17 +27,17 @@
"autoKickStart": "Кикать Игроков Которые Говорят Start",
"autoKickStartAsBan": "Банить вместо кика",
"autoKickStartTimes": "Start сообщений нужно для кика",
"autoKickStartStrength": "Режим строго обнаружения",
"autoKickStartStrength": "Режим строгого обнаружения",
"tabGroupAutomation": "Автоматизация",
"autoSendGameInfo": "Автоматически отправлять информацию о победителе",
"autoSendGameInfo": "Автоматически отправлять информацию о победителях",
"autoRejoinLobby": "Автоматически перезаходить в лобби",
"autoStartTimer": "Отсчет Для Авто Старта",
"autoStartTimer": "Отсчёт Для Авто Старта",
"waitAutoStart": "Авто Старт После",
"playerAutoStart": "Игроков Нужно Для Авто Старта",
"enableJoinMessages": "Включить Сообщение С Приветствиями",
"messagePerPlayerNum": "Сообщение Каждое Количество Заходов",
"messagePerPlayerNum": "Сообщение Каждые # Заходов",
"tabGroupMisc": "Разное",
"startCountdown": "Отсчет Для Старта По Умолчанию",
"startCountdown": "Отсчёт Для Старта По Умолчанию",
"colorCommandLevel": "Кто Может использовать Команды Цветов",
"allowFortegreen": "Разрешить Фортезелёный Цвет",
"noGameEnd": "Без Конца Игры",
@@ -50,7 +48,6 @@
"slashLastGameCmd": "Кто Может Использовать /l & /aur",
"slashKickCmd": "Кто Может Использовать /kick & /ckick",
"slashBanCmd": "Кто Может Использовать /ban & /cban",
"slashEndMeetingCmd": "Кто Может Использовать /endmeeting",
"slashStartAndEndGameCmd": "Кто Может Использовать /startgame & /endgame",
"tabGroupCrewmate": "Роли Экипажа",
@@ -69,7 +66,7 @@
"cantKillTime": "После Осечки Нельзя Убивать В Течение",
"misfiresToSuicide": "Самоубийство После Количества Осечек",
"crewAutoWinsGameAfter": "Экипаж Автоматически Побеждает После",
"snsDisableSabotage": "Выключить Критические Сабботажи в Режиме Клона",
"snsDisableSabotage": "Выключить Критические Саботажи в Режиме Клона",
"snsDisableReactor": "Выключить Сабботаж Реактора",
"snsDisableOxygen": "Выключить Сабботаж O2",
"snsDisableLights": "Выключить Сабботаж Света",
@@ -82,9 +79,9 @@
"gameAutoEndsAfter": "Игра автоматически заканчивается после",
"engineerMode": "Все Инженеры",
"tabGroupSabotages": "Сабботажи",
"deadImpostorsCanSabotage": "Умершие Предатели Могут Сабботировать",
"disableSabotage": "Выключить Критические Сабботажи",
"tabGroupSabotages": "Саботажи",
"deadImpostorsCanSabotage": "Умершие Предатели Могут Саботировать",
"disableSabotage": "Выключить Критические Саботажи",
"disableReactor": "Выключить Сабботаж Реактора",
"disableOxygen": "Выключить Сабботаж O2",
"disableLights": "Выключить Сабботаж Света",
@@ -216,30 +213,30 @@
"disableSubmitScan": "Выключить Пройти Скан",
"disableUploadData": "Выключить Загрузить Данные",
"allCommandsFull": "<b>ВСЕ КОМАНДЫ:</b>\n\n<b>/help</b>\nПоказать это сообщение.\n<b>/aur, /socials</b>\nОтправляет ссылки Among Us Revamped.\n\n<b>/r, /gm</b>\nОтправляет описание текущего режима или списка способностей.\n<b>/l, /lastgame</b>\nОтправляет информацию о последнем победителе.\n\n<b>/0kc, /0killcooldown</b>\nОтправляет описание режима 0 Перезарядки Убийств.\n<b>/sns, /shiftandseek</b>\nОтправляет описание режима Клона.\n<b>/sp, /speedrun</b>\nОтправляет описание режима Спидрана.\n\n/<b>kick, /ban</b>\nКикает или банит игрока по нику.\n<b>/ckick, /cban</b>\nКикает или банит игрока по цвету.\n\n<b>/vip /moderator /admin</b>\nДобавляет игрока как VIP, Модератора или Админа.\n<b>/removevip, /removemoderator, /removeadmin</b>\nУбирает VIP, Модератора или Админа у игрока.\n\n<b>/eg, /endgame</b>\nЗаканчивает текущую игру.\n<b>/em, /endmeeting</b>\nЗаканчивает текущее собрание.\n<b>/s, /start</b>\nНачинает отсчет для старта.\n\n<b>/t {template}</b>\nОтправляет шаблон из AUR-DATA/templates.txt.\n\n<b>/col, /color, /colour</b>\nМеняет ваш цвет, может быть использована чтобы обойти ограничения по цветам.",
"allCommandsFull": "<b>ВСЕ КОМАНДЫ:</b>\n\n<b>/help</b>\nПоказать это сообщение.\n<b>/aur, /socials</b>\nОтправляет ссылки Among Us Revamped.\n\n<b>/r, /gm</b>\nОтправляет описание текущего режима или списка способностей.\n<b>/l, /lastgame</b>\nОтправляет информацию о последнем победителе.\n\n<b>/0kc, /0killcooldown</b>\nОтправляет описание режима 0 Перезарядки Убийств.\n<b>/sns, /shiftandseek</b>\nОтправляет описание режима Клона.\n<b>/sp, /speedrun</b>\nОтправляет описание режима Спидрана.\n\n/<b>kick, /ban</b>\nКикает или банит игрока по нику.\n<b>/ckick, /cban</b>\nКикает или банит игрока по цвету.\n\n<b>/vip /moderator /admin</b>\nДобавляет игрока как VIP, Модератора или Админа.\n<b>/removevip, /removemoderator, /removeadmin</b>\nУбирает VIP, Модератора или Админа у игрока.\n\n<b>/eg, /endgame</b>\nЗаканчивает текущую игру.\n<b>/em, /endmeeting</b>\nЗаканчивает текущее собрание.\n<b>/s, /start</b>\nНачинает Отсчёт для старта.\n\n<b>/t {template}</b>\nОтправляет шаблон из AUR-DATA/templates.txt.\n\n<b>/col, /color, /colour</b>\nМеняет ваш цвет, может быть использована чтобы обойти ограничения по цветам.",
"translationReloaded": "Ваш языковой файл был успешно сброшен.\nЧтобы применить все изменения, перезапустите вашу игру.",
"templateWelcome": "# В этом файле вы можете создавать шаблоны, которые могут служить как простая альтернатива копировать-вставить.\n# Чтобы создать шаблон, напишите новую линию с таким же форматированием как и у тестового шаблона снизу.\n# Шаблоны не могут быть длиннее чем 120 символов и не могут содержать специальные символы. В противном вас будет кикать.\n\ntest: это пример шаблона. Напишите '/t test' чтобы увидеть его.\n\nwelcome: Добро Пожаловать! Это Лобби Использует Among Us Revamped {ModVersion} от MV. Наслаждайтесь!",
"moderatorWelcome": "# В этом файле вы можете добавлять Модераторов по Коду друга.\n# Если вы добавите кого то, они получат фиолетовый ник в игре.\n# Перейдите в 'Системные Настройки' в игре чтобы изменить полномочия Модераторов. Снизу приведен пример Кода друга.\n\nfriendcode#0000",
"vipWelcome": "# В этом файле вы можете добавлять VIP по Коду друга.\n# Если вы добавите кого то, они получат желтый ник в игре.\n# Перейдите в 'Системные Настройки' в игре чтобы изменить полномочия VIP. Снизу приведен пример Кода друга.\n\nfriendcode#0000\n",
"adminWelcome": "# В этом файле вы можете добавлять Админов по Коду друга.\n# Если вы добавите кого то, они получат красный ник в игре.\n# Перейдите в 'Системные Настройки' в игре чтобы изменить полномочия Админов. Снизу приведен пример Кода друга.\n\nfriendcode#0000\n",
"templateWelcome": "# В этом файле вы можете создавать шаблоны, которые могут служить как простая альтернатива копировать-вставить.\n# Чтобы создать шаблон, напишите новую линию с таким же форматированием как и у тестового шаблона снизу.\n# Шаблоны не могут быть длиннее, чем 120 символов и не могут содержать специальные символы. В противном вас будет кикать.\n\ntest: это пример шаблона. Напишите '/t test', чтобы увидеть его.\n\nwelcome: Добро Пожаловать! Это Лобби Использует Among Us Revamped {ModVersion} от MV. Наслаждайтесь!",
"moderatorWelcome": "# В этом файле вы можете добавлять Модераторов по Коду друга.\n# Если вы добавите кого-то, они получат фиолетовый ник в игре.\n# Перейдите в 'Системные Настройки' в игре чтобы изменить полномочия Модераторов. Снизу приведен пример Кода друга.\n\nfriendcode#0000",
"vipWelcome": "# В этом файле вы можете добавлять VIP по Коду друга.\n# Если вы добавите кого-то, они получат желтый ник в игре.\n# Перейдите в 'Системные Настройки' в игре чтобы изменить полномочия VIP. Снизу приведен пример Кода друга.\n\nfriendcode#0000\n",
"adminWelcome": "# В этом файле вы можете добавлять Админов по Коду друга.\n# Если вы добавите кого-то, они получат красный ник в игре.\n# Перейдите в 'Системные Настройки' в игре чтобы изменить полномочия Админов. Снизу приведен пример Кода друга.\n\nfriendcode#0000\n",
"banlistWelcome": "# В этом файле вы можете банить игроков из ваших лобби по Коду друга.\n# Если вы забаните кого-то в игре они автоматически добавятся в этот файл. Снизу приведен пример Кода друга.\n\nfriendcode#0000\n",
"banwordWelcome": "# В этом файле вы можете создавать запрещенные слова, автоматически кикает тех кто сказали эти слова которые написаны здесь.\n# Обратите внимание чтобы разделять слова надо при помощи новых строк.",
"bannameWelcome": "# В этом файле вы можете создавать запрещенные имена, автоматически кикает тех кто использует имена которые написаны здесь.\n# Обратите внимание чтобы разделять имена надо при помощи новых строк.",
"banwordWelcome": "# В этом файле вы можете создавать запрещенные слова, автоматически кикает тех кто сказали эти слова которые написаны здесь.\n# Обратите внимание, чтобы разделять слова надо при помощи новых строк.",
"bannameWelcome": "# В этом файле вы можете создавать запрещенные имена, автоматически кикает тех кто использует имена которые написаны здесь.\n# Обратите внимание, чтобы разделять имена надо при помощи новых строк.",
"languageWelcome": "# In this file you can set your Among Us Revamped language.\n# To set the language, type one of the supported languages in a new line. The default is English.\n# Supported languages: English, Spanish, SimplifiedChinese, Italian\n\nEnglish",
"noGameEndWarning": "ВНИМАНИЕ: Настройка 'Без Конца Игры' Включена",
"tooLongTemplate": "Ваш шаблон длиннее чем 120 символов и будет вас кик если он будет отправлен. Пожалуйста уменьшите длину.",
"tooLongTemplate": "Ваш шаблон длиннее, чем 120 символов и вас кикнет если он будет отправлен. Пожалуйста, уменьшите длину.",
"vipAdd": "Успешно добавлен {0} как VIP.",
"moderatorAdd": "Успешно добавлен {0} как Модератор.",
"adminAdd": "Успешно добавлен {0} as Админ.",
"adminAdd": "Успешно добавлен {0} как Админ.",
"vipRemove": "Успешно убран VIP у {0}.",
"moderatorRemove": "Успешно убран Модератор у {0}.",
"adminRemove": "Успешно убран Админ у {0}.",
"permFail": "Не удалось найти игрока '{0}'. Убедитесь что вы написали ник корректно",
"permFail": "Не удалось найти игрока '{0}'. Убедитесь, что вы написали ник корректно",
"helpDesc": "Показывает все Команды и что они делают.",
"snsDesc": "Отправляет описание режима Клона.",
@@ -248,7 +245,7 @@
"egDesc": "Заканчивает текущую игру.",
"emDesc": "Заканчивает текущее собрание.",
"aurDesc": "Отправляет Ссылки Us Revamped.",
"sDesc": "Начинает отсчет для старта.",
"sDesc": "Начинает Отсчёт для старта.",
"rDesc": "/r Отправляет включеные способности или текущий режим.",
"rolesDesc": "Отправляет обзор всех способностей/режимов.",
"kickDesc": "Кикает игрока по нику.",
@@ -259,8 +256,8 @@
"colDesc": "Меняет ваш цвет.",
"reloadDesc": "Перезагружает языковой файл.",
"vipDesc": "Добавляет игрока как VIP.",
"moderatorDesc": "Добавляет игрока как Модератор.",
"adminDesc": "Добавляет игрока как Админ.",
"moderatorDesc": "Добавляет игрока как Модератора.",
"adminDesc": "Добавляет игрока как Админа.",
"cremoveVipDesc": "Убирает VIP у игрока.",
"removeModeratorDesc": "Убирает Модератора у игрока.",
"removeAdminDesc": "Убирает Админа у игрока.",
@@ -283,5 +280,22 @@
"vipAndAbove": "<color=yellow>VIP</color> И Выше",
"moderatorAndAbove": "<color=purple>Модератор</color> И Выше",
"admin": "<color=red>Админ</color>",
"onlyYou": "Только Вы"
"onlyYou": "Только Вы",
"seekerDesc": "Добавляет игрока как искателя в прятках",
"seekersDesc": "Показывает всех вручную выбранных искателей.",
"clearSeekerDesc": "Очищает список всех вручную выбранных искателей",
"slashEndMeetingCmd": "Кто Может Использовать /endmeeting & /seeker",
"gameMasterWarning":"Вы будете наблюдать игры пока включён режим наблюдателя. ВНИМАНИЕ: Назначение ролей может быть неправильным, если эта настройка включена.",
"startWordsWelcome": "# В этом файле вы можете создавать слова которые будут 'Кикать Игроков Которые Говорят Старт'.\n# 'Режим строгого обнаружения' ВЫКЛ = Сообщения должны идеально совпадать с определенными словами. 'Режим строгого обнаружения' ВКЛ = Сообщения нуждаются только в определённых словах.\n# Вы также можете добавлять несвязанные слова, которые будут обнаруживаться только в лобби..\n\nstart\nbegin\ncommence\nстарт\nначинайте\n",
"gameMasterWarningTwo": "ВНИМАНИЕ: Режим Наблюдателя Включен",
"startWordKick": "{0} Был кикнут так как они отправили слово которое было в StartWords.txt {1} раз(а)",
"seekers": "Искателей: ",
"clearedSeekers": "Успешно очищен список вручную выбранных искателей."
}
+15 -8
View File
@@ -1,7 +1,7 @@
{
"LanguageID": "2",
"gameMaster": "游戏大师(Game Master)",
"gameMaster": "游戏主管(Game Master)",
"showFPS": "显示帧率 (FPS)",
"autoStart": "自动开始",
"enableDarkTheme": "启用深色主题",
@@ -45,13 +45,13 @@
"noGameEnd": "游戏永不结束",
"tabGroupAccess": "权限等级",
"slashColorCmd": "谁可以使用 /color",
"slashColorCmd": "谁可以使用 /color 指令",
"slashRolesAndGamemodeCmd": "谁可以使用 /r 和模板",
"slashLastGameCmd": "谁可以使用 /l 和 /aur",
"slashKickCmd": "谁可以使用 /kick 和 /ckick",
"slashBanCmd": "谁可以使用 /ban 和 /cban",
"slashEndMeetingCmd": "谁可以使用 /endmeeting",
"slashStartAndEndGameCmd": "谁可以使用 /startgame 和 /endgame",
"slashLastGameCmd": "谁可以使用 /l 和 /aur 指令",
"slashKickCmd": "谁可以使用 /kick 和 /ckick 指令",
"slashBanCmd": "谁可以使用 /ban 和 /cban 指令",
"slashEndMeetingCmd": "谁可以使用 /endmeeting 和 /seeker 指令",
"slashStartAndEndGameCmd": "谁可以使用 /startgame 和 /endgame 指令",
"tabGroupCrewmate": "船员职业",
"tabGroupNeutral": "中立职业",
@@ -282,5 +282,12 @@
"vipAndAbove": "<color=yellow>VIP</color> 及以上",
"moderatorAndAbove": "<color=purple>管理员</color> 及以上",
"admin": "<color=red>管理员</color>",
"onlyYou": "仅自己"
"onlyYou": "仅自己",
"seekersDesc": "显示所有手动选择的搜寻者。",
"clearSeekerDesc": "清除手动搜寻者列表。",
"startWordsWelcome": "# 在此文件中,您可以设置检查发送 “Start” 并踢出该玩家的功能。\n# 严格检测关闭 = 消息必须完全匹配关键词。\n# 严格检测开启 = 消息只需包含关键词即可。\n# 也可以添加无关词语,仅用于大厅检测。\n\nstart\nbegin\ncommence",
"gameMasterWarningTwo": "警告:游戏主管已启用",
"startWordKick": "{0} 因发送 StartWords.txt 中的关键词被踢出,累计次数:{1} 次",
"seekers": "搜寻者:",
"clearedSeekers": "已成功清除手动搜寻者列表。"
}