mirror of
https://github.com/Gurge44/EndlessHostRoles.git
synced 2026-10-20 11:39:54 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6ced0ff088 | ||
|
|
ce23f0d050 | ||
|
|
27e8d608ad | ||
|
|
1a33b2aee4 | ||
|
|
e9e8fecbb5 | ||
|
|
58ac24be03 | ||
|
|
0bd10b9969 | ||
|
|
7c751425c6 | ||
|
|
bedb16d1a1 | ||
|
|
b66a0ef538 | ||
|
|
ed6ebed013 | ||
|
|
1461403589 | ||
|
|
3495212f1a | ||
|
|
2e44d7a035 |
No files matched your search
@@ -187,13 +187,13 @@ jobs:
|
||||
# IL2CPP
|
||||
# -----------------------------
|
||||
|
||||
- name: Download BepInEx 6 pre-release 735
|
||||
- name: Download BepInEx 6 pre-release 785
|
||||
run: |
|
||||
curl -L https://builds.bepinex.dev/projects/bepinex_be/735/BepInEx-Unity.IL2CPP-win-x64-6.0.0-be.735%2B5fef357.zip -o bepinex-x64.zip
|
||||
curl -L https://builds.bepinex.dev/projects/bepinex_be/785/BepInEx-Unity.IL2CPP-win-x64-6.0.0-be.785%2B6abdba4.zip -o bepinex-x64.zip
|
||||
unzip bepinex-x64.zip -d epic
|
||||
chmod -R u+rwX,go+rX epic
|
||||
|
||||
curl -L https://builds.bepinex.dev/projects/bepinex_be/735/BepInEx-Unity.IL2CPP-win-x86-6.0.0-be.735%2B5fef357.zip -o bepinex-x86.zip
|
||||
curl -L https://builds.bepinex.dev/projects/bepinex_be/785/BepInEx-Unity.IL2CPP-win-x86-6.0.0-be.785%2B6abdba4.zip -o bepinex-x86.zip
|
||||
unzip bepinex-x86.zip -d steam
|
||||
chmod -R u+rwX,go+rX steam
|
||||
|
||||
|
||||
@@ -207,13 +207,13 @@ jobs:
|
||||
# IL2CPP
|
||||
# -----------------------------
|
||||
|
||||
- name: Download BepInEx 6 pre-release 735
|
||||
- name: Download BepInEx 6 pre-release 785
|
||||
run: |
|
||||
curl -L https://builds.bepinex.dev/projects/bepinex_be/735/BepInEx-Unity.IL2CPP-win-x64-6.0.0-be.735%2B5fef357.zip -o bepinex-x64.zip
|
||||
curl -L https://builds.bepinex.dev/projects/bepinex_be/785/BepInEx-Unity.IL2CPP-win-x64-6.0.0-be.785%2B6abdba4.zip -o bepinex-x64.zip
|
||||
unzip bepinex-x64.zip -d epic
|
||||
chmod -R u+rwX,go+rX epic
|
||||
|
||||
curl -L https://builds.bepinex.dev/projects/bepinex_be/735/BepInEx-Unity.IL2CPP-win-x86-6.0.0-be.735%2B5fef357.zip -o bepinex-x86.zip
|
||||
curl -L https://builds.bepinex.dev/projects/bepinex_be/785/BepInEx-Unity.IL2CPP-win-x86-6.0.0-be.785%2B6abdba4.zip -o bepinex-x86.zip
|
||||
unzip bepinex-x86.zip -d steam
|
||||
chmod -R u+rwX,go+rX steam
|
||||
|
||||
@@ -235,7 +235,9 @@ jobs:
|
||||
cp -rf packaging/il2cppinterop/* epic/BepInEx/core/
|
||||
|
||||
- name: Steam App ID
|
||||
run: echo "945360" > steam/steam_appid.txt
|
||||
run: |
|
||||
echo "945360" > steam/steam_appid.txt
|
||||
echo "945360" > epic/steam_appid.txt
|
||||
|
||||
# -----------------------------
|
||||
# Mono
|
||||
@@ -299,7 +301,6 @@ jobs:
|
||||
file_path: release-artifacts/EHR.v${{ github.event.inputs.version }}_Steam_Epic-Games_Microsoft-Store.zip
|
||||
display_name: EHR v${{ github.event.inputs.version }} (x64 - Steam/Epic/MS Store)
|
||||
release_type: release
|
||||
game_versions: "18.0.0"
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# 6) Create GitHub Release
|
||||
|
||||
+15
-21
@@ -1,29 +1,23 @@
|
||||
# Thank you so much for finding and using EHR!
|
||||
|
||||
Updated to Among Us v19.0 (2026. 09. 29.)
|
||||
### Mod-side fixes
|
||||
|
||||
- Free chat input field fixes by Quine
|
||||
- Fixed hot potato survival times being off when natural disasters are integrated
|
||||
- Gave more time in room rush when you need to climb a long ladder
|
||||
- Attempt at fixing no clip staying enabled after the game starts (if this fix doesn't work then no clip is getting removed from the gui)
|
||||
- Fixed sandstorms having no effect when natural disasters are integrated
|
||||
- Death reasons aren't displayed in game modes if chatting during the game is enabled
|
||||
- Revert AMCI registration on mod unload
|
||||
- Improved reveal screen when natural disasters are integrated
|
||||
- Attempt at fixing Deathrace on vanilla regions (Bed Wars is hopeless)
|
||||
- Fixed hidden roles having wrong enabled/disabled state in role list
|
||||
- Fixed sabotage ability triggers not cancelling the sabotage itself
|
||||
- Simplified and shortened hot potato tutorial message
|
||||
- New setting for Helper: `Ability Works After Death`
|
||||
- Fixed Blackmailer per-round limit not resetting
|
||||
- Fixed Sidekick/Jackal promotion not working
|
||||
- Fixed Amnesiac not seeing arrows
|
||||
- `/pi` now shows Starlight instead of 112 as platform
|
||||
- Fixed another reason for kicks in Deathrace on vanilla regions
|
||||
- Fixed not being able to create lobbies with more than 15 players even on modded regions
|
||||
- Fixed Evader always being invisible after meetings
|
||||
- Fixed Hypocrite being able to kill
|
||||
|
||||
### Major fixes
|
||||
|
||||
> [!CAUTION]
|
||||
> Steam moved to the 64-bit version. That means you need to reinstall the mod if you're playing on Steam!
|
||||
> - BepInEx version updated.
|
||||
> - Il2CppInterop updated.
|
||||
> - **A full reinstallation is necessary.** Sorry for the inconvenience. This is the only way to fix the current issues with the game. The reason for the crashes was not in the mod (aka. not in EHR.dll), but in Il2CppInterop. Pietro made a custom build of it that fixes those issues, which requires a newer version of BepInEx to work. So please understand that this is necessary.
|
||||
|
||||
> [!NOTE]
|
||||
> We're launching our own regions! GG-HU located in Hungary (Europe), and GG-US located in the United States of America!
|
||||
> [!IMPORTANT]
|
||||
> - We have also completed the _mono_ version of EHR. It requires a completely separate installation to work. If you download the Mono zip, it has an `INSTRUCTIONS.txt` which explains what to do to set it up.
|
||||
> - Why was this needed, you might ask? As you've already seen, Il2CppInterop causes many, many problems. With the Mono version, the mod talks directly with the game, bypassing/skipping Il2CppInterop entirely. That means far fewer crashes.
|
||||
> - Since it requires a separate installation, if you're using other mods along with EHR, they will not work. In that case, stick to the Il2Cpp version that you were using all along. Those mods would also need to update to support Mono to work alongside your Mono EHR installation.
|
||||
> - Crossplay between Mono and Il2Cpp installations should work without any problems. I recommend using the Mono version if you're only using EHR (no other plugins).
|
||||
|
||||
---
|
||||
+3
-3
@@ -44,8 +44,8 @@
|
||||
|
||||
<ItemGroup Condition="'$(Configuration)' == 'IL2CPP'">
|
||||
<PackageReference Include="AmongUs.GameLibs.Steam" Version="2026.9.29" PrivateAssets="all" />
|
||||
<PackageReference Include="BepInEx.IL2CPP.MSBuild" Version="2.1.0-rc.1"/>
|
||||
<PackageReference Include="BepInEx.Unity.IL2CPP" Version="6.0.0-be.735" Private="false" ExcludeAssets="runtime;native" />
|
||||
<PackageReference Include="NextBepLoader.BepInEx.IL2CPP.MSBuild" Version="2.1.0-dev-6" />
|
||||
<PackageReference Include="BepInEx.Unity.IL2CPP" Version="6.0.0-be.785" Private="false" ExcludeAssets="runtime;native" />
|
||||
<PackageReference Include="Samboy063.Cpp2IL.Core" Version="2022.1.0-pre-release.21" />
|
||||
</ItemGroup>
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
<Target Name="Roles" AfterTargets="Build">
|
||||
<Copy SourceFiles="CustomRoles.cs" DestinationFolder="CTA/CustomTeamAssigner/"/>
|
||||
</Target>
|
||||
<Target Name="Copy" AfterTargets="Build" Condition="'$(AmongUs)' != '' And '$(Configuration)' == 'Debug'">
|
||||
<Target Name="Copy" AfterTargets="Build" Condition="'$(AmongUs)' != '' And Exists('local.props')">
|
||||
<Copy SourceFiles="$(OutputPath)$(AssemblyName).dll" DestinationFolder="$(AmongUs)/BepInEx/plugins/"/>
|
||||
</Target>
|
||||
</Project>
|
||||
@@ -1,7 +0,0 @@
|
||||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
|
||||
<Costura>
|
||||
<IncludeAssemblies>
|
||||
Csv
|
||||
</IncludeAssemblies>
|
||||
</Costura>
|
||||
</Weavers>
|
||||
-188
@@ -1,188 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. -->
|
||||
<xs:element name="Weavers">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="Costura" minOccurs="0" maxOccurs="1">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element minOccurs="0" maxOccurs="1" name="ExcludeAssemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of assembly names to exclude from the default action of
|
||||
"embed all Copy Local references", delimited with line breaks
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element minOccurs="0" maxOccurs="1" name="IncludeAssemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of assembly names to include from the default action of
|
||||
"embed all Copy Local references", delimited with line breaks.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element minOccurs="0" maxOccurs="1" name="ExcludeRuntimeAssemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of runtime assembly names to exclude from the default
|
||||
action of "embed all Copy Local references", delimited with line breaks
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element minOccurs="0" maxOccurs="1" name="IncludeRuntimeAssemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of runtime assembly names to include from the default
|
||||
action of "embed all Copy Local references", delimited with line breaks.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element minOccurs="0" maxOccurs="1" name="Unmanaged32Assemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of unmanaged 32 bit assembly names to include, delimited
|
||||
with line breaks.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element minOccurs="0" maxOccurs="1" name="Unmanaged64Assemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of unmanaged 64 bit assembly names to include, delimited
|
||||
with line breaks.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element minOccurs="0" maxOccurs="1" name="PreloadOrder" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The order of preloaded assemblies, delimited with line breaks.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
<xs:attribute name="CreateTemporaryAssemblies" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>This will copy embedded files to disk before loading them into memory.
|
||||
This is helpful for some scenarios that expected an assembly to be loaded from a
|
||||
physical file.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="IncludeDebugSymbols" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Controls if .pdbs for reference assemblies are also embedded.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="IncludeRuntimeReferences" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Controls if runtime assemblies are also embedded.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="UseRuntimeReferencePaths" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Controls whether the runtime assemblies are embedded with their full
|
||||
path or only with their assembly name.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="DisableCompression" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Embedded assemblies are compressed by default, and uncompressed when
|
||||
they are loaded. You can turn compression off with this option.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="DisableCleanup" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>As part of Costura, embedded assemblies are no longer included as part
|
||||
of the build. This cleanup can be turned off.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="LoadAtModuleInit" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Costura by default will load as part of the module initialization.
|
||||
This flag disables that behavior. Make sure you call CosturaUtility.Initialize()
|
||||
somewhere in your code.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="IgnoreSatelliteAssemblies" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Costura will by default use assemblies with a name like
|
||||
'resources.dll' as a satellite resource and prepend the output path. This flag
|
||||
disables that behavior.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="ExcludeAssemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of assembly names to exclude from the default action of "embed
|
||||
all Copy Local references", delimited with |
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="IncludeAssemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of assembly names to include from the default action of "embed
|
||||
all Copy Local references", delimited with |.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="ExcludeRuntimeAssemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of runtime assembly names to exclude from the default action of
|
||||
"embed all Copy Local references", delimited with |
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="IncludeRuntimeAssemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of runtime assembly names to include from the default action of
|
||||
"embed all Copy Local references", delimited with |.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Unmanaged32Assemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of unmanaged 32 bit assembly names to include, delimited with
|
||||
|.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Unmanaged64Assemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of unmanaged 64 bit assembly names to include, delimited with
|
||||
|.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="PreloadOrder" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The order of preloaded assemblies, delimited with |.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
<xs:attribute name="VerifyAssembly" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all
|
||||
weavers have been executed.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="VerifyIgnoreCodes" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly
|
||||
verification.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="GenerateXsd" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
+10
-1
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.Modules;
|
||||
@@ -510,6 +511,8 @@ public static class Deathrace
|
||||
|
||||
public static class FixedUpdatePatch
|
||||
{
|
||||
private static Stopwatch NotifyTimer = new();
|
||||
|
||||
public static void Postfix()
|
||||
{
|
||||
if (!AmongUsClient.Instance.AmHost || !GameGoing || GameStates.IsEnded) return;
|
||||
@@ -612,6 +615,12 @@ public static class Deathrace
|
||||
}
|
||||
|
||||
Data.Remove(removeId);
|
||||
|
||||
if (NotifyTimer.Elapsed.TotalSeconds >= 1)
|
||||
{
|
||||
NotifyTimer.Reset();
|
||||
Utils.NotifyRoles();
|
||||
}
|
||||
}
|
||||
|
||||
private static void CheckAndNotify(PlayerData data)
|
||||
@@ -620,7 +629,7 @@ public static class Deathrace
|
||||
|
||||
if (data.LastSuffix != suffix)
|
||||
{
|
||||
Utils.NotifyRoles(SpecifySeer: data.Player, SpecifyTarget: data.Player);
|
||||
NotifyTimer.Start();
|
||||
data.LastSuffix = suffix;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,8 +53,8 @@ public class Main : BaseUnityPlugin
|
||||
private const string DebugKeyHash = "c0fd562955ba56af3ae20d7ec9e64c664f0facecef4b3e366e109306adeae29d";
|
||||
private const string DebugKeySalt = "59687b";
|
||||
public const string PluginGuid = "com.gurge44.endlesshostroles";
|
||||
public const string PluginVersion = "8.0.2";
|
||||
public const string PluginDisplayVersion = "8.0.2";
|
||||
public const string PluginVersion = "8.0.3";
|
||||
public const string PluginDisplayVersion = "8.0.3";
|
||||
public const int TestBuildNumber = 0; // 0 = Release
|
||||
|
||||
public const string NeutralColor = "#ffab1b";
|
||||
@@ -980,12 +980,6 @@ public class Main : BaseUnityPlugin
|
||||
handler.Info($"{nameof(ThisAssembly.Git.Sha)}: {ThisAssembly.Git.Sha}");
|
||||
handler.Info($"{nameof(ThisAssembly.Git.Tag)}: {ThisAssembly.Git.Tag}");
|
||||
|
||||
/*
|
||||
NormalGameOptionsV12.RecommendedImpostors = NormalGameOptionsV12.MaxImpostors = Enumerable.Repeat(128, 128).ToArray();
|
||||
NormalGameOptionsV12.MinPlayers = Enumerable.Repeat(4, 128).ToArray();
|
||||
HideNSeekGameOptionsV12.MinPlayers = Enumerable.Repeat(4, 128).ToArray();
|
||||
*/
|
||||
|
||||
PrivateTagManager.LoadTagsFromFile();
|
||||
|
||||
Harmony.PatchAll(Assembly.GetExecutingAssembly());
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
using System;
|
||||
#if !IL2CPP
|
||||
using System.Collections;
|
||||
using EHR.Patches;
|
||||
#endif
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using AmongUs.Data;
|
||||
using EHR.Patches;
|
||||
using EHR.Roles;
|
||||
using HarmonyLib;
|
||||
using Hazel;
|
||||
@@ -15,9 +17,11 @@ namespace EHR;
|
||||
[HarmonyPatch(typeof(ChatController), nameof(ChatController.Awake))]
|
||||
static class ChatControllerAwakePatch
|
||||
{
|
||||
#if !IL2CPP
|
||||
private static SpriteRenderer QuickChatIcon;
|
||||
private static SpriteRenderer OpenBanMenuIcon;
|
||||
private static SpriteRenderer OpenKeyboardIcon;
|
||||
#endif
|
||||
|
||||
public static readonly Color32 DarkBackgroundColor = new(40, 40, 40, byte.MaxValue);
|
||||
|
||||
@@ -36,6 +40,7 @@ static class ChatControllerAwakePatch
|
||||
chatBubble.TextArea.color = Color.white;
|
||||
chatBubble.Background.color = new(0.1f, 0.1f, 0.1f, 1f);
|
||||
|
||||
#if !IL2CPP
|
||||
__instance.freeChatField.background.color = DarkBackgroundColor;
|
||||
|
||||
if (!TextBoxPatch.IsInvalidCommand)
|
||||
@@ -48,17 +53,18 @@ static class ChatControllerAwakePatch
|
||||
__instance.quickChatField.text.color = Color.white;
|
||||
|
||||
Main.Instance.StartCoroutine(Coroutine());
|
||||
#endif
|
||||
}
|
||||
else
|
||||
__instance.freeChatField.textArea.outputText.color = Color.black;
|
||||
|
||||
#if !IL2CPP
|
||||
return;
|
||||
|
||||
IEnumerator Coroutine()
|
||||
{
|
||||
while (__instance)
|
||||
{
|
||||
if (__instance.IsOpenOrOpening)
|
||||
if (__instance.State is ChatControllerState.Open or ChatControllerState.Opening or ChatControllerState.Closing)
|
||||
{
|
||||
__instance.freeChatField.background.color = DarkBackgroundColor;
|
||||
|
||||
@@ -71,10 +77,17 @@ static class ChatControllerAwakePatch
|
||||
if (!OpenKeyboardIcon) OpenKeyboardIcon = GameObject.Find("OpenKeyboardIcon")?.transform.GetComponent<SpriteRenderer>();
|
||||
if (OpenKeyboardIcon) OpenKeyboardIcon.sprite = Utils.LoadSprite("EHR.Resources.Images.DarkKeyboard.png", 100f);
|
||||
}
|
||||
|
||||
if (!Main.DarkTheme.Value)
|
||||
{
|
||||
__instance.freeChatField.textArea.outputText.color = Color.black;
|
||||
yield break;
|
||||
}
|
||||
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -20,6 +20,21 @@ internal static class Crowded
|
||||
private static CreateOptionsPicker Instance;
|
||||
public static readonly int MaxImpostors = GameOptionsManager.Instance.currentHostOptions.MaxPlayers / 2;
|
||||
private static int MaxPlayers => CurrentServerType == ServerType.Vanilla ? 15 : 127;
|
||||
|
||||
[HarmonyPatch(typeof(CreateGameOptions), nameof(CreateGameOptions.Confirm))]
|
||||
public static class CreateGameOptionsConfirm
|
||||
{
|
||||
public static bool Prefix(CreateGameOptions __instance)
|
||||
{
|
||||
if (!DestroyableSingleton<MatchMaker>.Instance.Connecting(__instance)) return false;
|
||||
__instance.logger.Info("Hosting an online game");
|
||||
// - skip player count and impostor count checks -
|
||||
GameOptionsManager.Instance.GameHostOptions.TryGetInt(Int32OptionNames.NumImpostors, out int num);
|
||||
if (num == 0) GameOptionsManager.Instance.GameHostOptions.SetInt(Int32OptionNames.NumImpostors, 1);
|
||||
__instance.CoStartGame();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
[HarmonyPatch(typeof(CreateOptionsPicker), nameof(CreateOptionsPicker.Awake))]
|
||||
public static class CreateOptionsPickerAwake
|
||||
|
||||
+5
-10
@@ -910,7 +910,7 @@ internal static class SabotageMapPatch
|
||||
for (int roomId = 0; roomId < countRooms; roomId++)
|
||||
{
|
||||
MapRoom mr = __instance.rooms[roomId];
|
||||
if (!mr.special || !mr.special.transform) continue;
|
||||
if (!mr || !mr.special || !mr.special.transform) continue;
|
||||
|
||||
SystemTypes room = mr.room;
|
||||
|
||||
@@ -1002,16 +1002,11 @@ internal static class MapRoomDoorsUpdatePatch
|
||||
goto Skip;
|
||||
}
|
||||
|
||||
foreach (OpenableDoor door in shipStatusInstance.AllDoors)
|
||||
if (AutoOpenDoors.TryGetValue(room, out AutoOpenDoor autoOpenDoor) && autoOpenDoor)
|
||||
{
|
||||
if (door.Room != room) continue;
|
||||
|
||||
if (AutoOpenDoors.TryGetValue(room, out AutoOpenDoor autoOpenDoor) && autoOpenDoor)
|
||||
{
|
||||
total = 30f;
|
||||
timer = autoOpenDoor.CooldownTimer;
|
||||
goto Skip;
|
||||
}
|
||||
total = 30f;
|
||||
timer = autoOpenDoor.CooldownTimer;
|
||||
goto Skip;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1384,9 +1384,10 @@ internal static class MeetingHudOnDestroyPatch
|
||||
|
||||
try
|
||||
{
|
||||
foreach (PlayerControl pc in Main.CachedAlivePlayerControls())
|
||||
if (pc.Is(CustomRoles.Evader))
|
||||
pc.RpcMakeInvisible();
|
||||
if (CheckForEndVotingPatch.CommsWasCalled || Utils.IsAnySabotageActive())
|
||||
foreach (PlayerControl pc in Main.CachedAlivePlayerControls())
|
||||
if (pc.Is(CustomRoles.Evader))
|
||||
pc.RpcMakeInvisible();
|
||||
}
|
||||
catch (Exception e) { Utils.ThrowException(e); }
|
||||
|
||||
|
||||
+13
-6
@@ -58,9 +58,7 @@ public static class TextBoxPatch
|
||||
{
|
||||
Destroy();
|
||||
IsInvalidCommand = false;
|
||||
Color textColor = Main.DarkTheme.Value ? Color.white : Color.black;
|
||||
__instance.compoText.Color(textColor);
|
||||
__instance.outputText.color = textColor;
|
||||
ResetTextColor(__instance);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -126,9 +124,7 @@ public static class TextBoxPatch
|
||||
if (IsInvalidCommand)
|
||||
{
|
||||
IsInvalidCommand = false;
|
||||
Color textColor = Main.DarkTheme.Value ? Color.white : Color.black;
|
||||
__instance.compoText.Color(textColor);
|
||||
__instance.outputText.color = textColor;
|
||||
ResetTextColor(__instance);
|
||||
}
|
||||
|
||||
HudManager hud = HudManager.Instance;
|
||||
@@ -300,6 +296,17 @@ public static class TextBoxPatch
|
||||
}
|
||||
}
|
||||
|
||||
private static void ResetTextColor(TextBoxTMP __instance)
|
||||
{
|
||||
#if IL2CPP
|
||||
Color textColor = Color.black;
|
||||
#else
|
||||
Color textColor = Main.DarkTheme.Value ? Color.white : Color.black;
|
||||
#endif
|
||||
__instance.compoText.Color(textColor);
|
||||
__instance.outputText.color = textColor;
|
||||
}
|
||||
|
||||
public static void OnTabPress(ChatController __instance)
|
||||
{
|
||||
if (!PlaceHolderText || PlaceHolderText.text == "") return;
|
||||
|
||||
@@ -273,35 +273,6 @@ Click this badge to view our translation project:
|
||||
|
||||
### Translation progress
|
||||
[](https://crowdin.com/project/ehr)
|
||||
<br>
|
||||
|
||||
## Should I switch from TOHE to EHR?
|
||||
|
||||
- In comparison, both mods are great, but EHR has more roles, features, game modes, and settings.
|
||||
- Moreover, EHR contains almost all the roles from TOHE, so you won't be missing out on anything.
|
||||
- Some roles were deleted or reworked to make them more balanced or to make them fit better with the new roles.
|
||||
- If you switch to EHR, you will have access to all features without paying for anything.
|
||||
- Test builds are available for free in our Discord server, and you can report bugs and suggest features there as well.
|
||||
- /up was reworked to /setrole, allowing you to set anyone's role for the next game, not only yours.
|
||||
- You can fully gain access to /setrole by just hosting EHR lobbies weekly or uploading EHR content to YouTube, but
|
||||
everyone can use /setrole to set their own role without any requirements (essentially /up).
|
||||
- EHR has a Custom Team Assigner application, which is a unique feature that no other mod has.
|
||||
- You can force or ban certain role/add-on combinations directly in the game using /combo.
|
||||
- Not sure how to use commands? Use /help to see a list of all available commands.
|
||||
- EHR helps the host use commands by directly displaying their short descriptions, arguments, descriptions for all
|
||||
arguments, and checking whether an argument is valid or not.
|
||||
- You can also press TAB to autocomplete commands.
|
||||
- Some hints and tips are displayed during the loading screen and ejection animations, which can help you discover new
|
||||
features.
|
||||
- EHR has 16 unique custom game modes, which can be played with any number of players, some even alone.
|
||||
- You can make lobbies with more than 15 players on modded servers, just type /cs players 100 - for example - to set the
|
||||
player limit to 100.
|
||||
- I, the main developer of EHR, care about user feedback and suggestions, and I try to implement them as much as
|
||||
possible.
|
||||
- If this wasn't convincing enough, you can always try EHR and see if you like it better than TOHE.
|
||||
- In the end, it's your choice, and I respect it.
|
||||
|
||||
#### There are more game changing features, which you can find on our website: [EHR Wiki](https://ehr-wiki.gurge44.eu/)
|
||||
|
||||
<br>
|
||||
|
||||
@@ -618,7 +589,7 @@ Click this badge to view our translation project:
|
||||
# License for the Custom Team Assigner application (everything inside the `CTA` folder)
|
||||
|
||||
```
|
||||
Copyright (c) 2025, Gurge44
|
||||
Copyright (c) 2026, Gurge44
|
||||
|
||||
All rights reserved.
|
||||
|
||||
|
||||
@@ -130,6 +130,8 @@ signingwry#3704 | 800955a89 | | slurs in game |
|
||||
stoneredox#2794 | 763ef0db5 | | slurs in game |
|
||||
loanlyric#0220 | f6b3f13ad | | slurs in game |
|
||||
eagertest#0674 | 076364d50 | Wissal | n word in game |
|
||||
sloepocket#8428 | fadd94242 | | slurs in game |
|
||||
|
||||
|
||||
|
||||
## Griefers, Toxic, Harrasing, Racist
|
||||
@@ -199,7 +201,6 @@ foxychart#7070 | 0f6978b9c | Glossyable | Racist | N word in Sarah's lobby
|
||||
silenttram#4839 | 42c719e56 | SUS | Racist |
|
||||
richfamily#6529 | 0d89b13bc | Novelseam | Racist |
|
||||
tubemarked#0995 | d5f2a5a16 | cudo | Racist | Slurs in a livestream
|
||||
remoteweek#6981 | 90ceb14d8 | IkerXD1437 | Racist | n word in Sarha's lobby
|
||||
genuinehod#0318 | 1ccac58bf | | Racist | n word in name
|
||||
setutility#3985 | cebf5051a | Roman | Toxic | Homophobic slurs
|
||||
happyhive#6928 | ac2bf6263 | Ben Dover | Racist | n word
|
||||
@@ -259,6 +260,8 @@ massifpink#4006 | ba0e09419 | ciansom13 | Racist | n word in game
|
||||
brownnest#1548 | 954f82d96 | jimmy o1 | Racist | n word in game
|
||||
tiaragold#0846 | edf2bc4e8 | cyan | Racist | n word in game
|
||||
weberright#3756 | 2779bfdfe | Told you I | Racist | Slurs in a streamer's game
|
||||
rungsame#0840 | dd214aabe | RAJAfkSHA | Racist | Spamming n slurs non stop
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
"Server": "<#00ffa5>Server:</color>: ",
|
||||
"VersionMismatch": "{0} Tiene una versión diferente del mod instalado",
|
||||
"ModMismatch": "{0} has a different mod installed that isn't compatible with EHR",
|
||||
"EHRConsentPopUp": "<size=2.0>Welcome to Endless Host Roles!</size>\\n\\n<size=1.3>By playing online with this mod, you acknowledge that certain technical and gameplay data may be processed in connection with mod services and platform interactions.\\n\\n> <link=\"https://github.com/Gurge44/EndlessHostRoles#privacy-policy\">Privacy Policy</link> - Covers what information is collected, how it is used, and under what circumstances it may be retained or acted upon.\\n\\n> <link=\"https://github.com/Gurge44/EndlessHostRoles/blob/main/.github/CODE_OF_CONDUCT.md\">Code of Conduct</link> - Outlines the standards of behaviour expected of all players and the consequences of violations.\\n\\nPress Accept to confirm you have read and agree to both.</size>",
|
||||
"Reject": "Reject",
|
||||
"EHRConsentPopUp": "<size=2.0>¡Bienvenido a Endless Host Roles!</size>\\n\\n<size=1.3>Al jugar en línea con este mod, reconoces la posibilidad de que se procesen determinados datos técnicos del juego en relación con los servicios del mod e interacciones con la plataforma.\\n\\n> <link=\"https://github.com/Gurge44/EndlessHostRoles#privacy-policy\">Política de Privacidad</link> - Abarca qué información se recopila, cómo se utiliza y bajo qué circunstancias puede conservarse o ser objeto de actuaciones.\\n\\n> <link=\"https://github.com/Gurge44/EndlessHostRoles/blob/main/.github/CODE_OF_CONDUCT.md\">Código de Conducta</link> - Describe las normas de conducta que se esperan de todos los jugadores y las consecuencias de su incumplimiento.\\n\\nPulse Aceptar para confirmar que has leído y acepta ambas condiciones.</size>",
|
||||
"Reject": "",
|
||||
"Accept": "Accept",
|
||||
"Yes": "Si",
|
||||
"No": "No",
|
||||
|
||||
@@ -635,11 +635,11 @@
|
||||
"JudgeEHRInfo": "Silenzio in aula!",
|
||||
"JudgeEHRInfoLong": "(Astronauti) Il Pubblico Ministero è un astronauta con la capacità di giudicare un giocatore nelle riunioni. Se il giocatore giudicato è un impostore, verrà espulso, altrimenti sarà il Pubblico Ministero ad essere espulso. Quando viene giudicato un giocatore non si tiene conto dei voti già effettuati dagli altri (a prescindere che si indovini o meno).",
|
||||
"JudgeTaskRequirementPercentage": "Sblocca Attività",
|
||||
"SpiritGuide": "Influencer",
|
||||
"SpiritGuideEHR": "Influencer",
|
||||
"SpiritGuideEHRInfo": "Send messages to living Crewmates.",
|
||||
"SpiritGuideEHRInfoLong": "(Crewmate Ghost):\\nSend messages to living Crewmates.",
|
||||
"SpiritGuideCooldown": "Message Cooldown",
|
||||
"SpiritGuide": "Spirito Guida",
|
||||
"SpiritGuideEHR": "Spirito Guida",
|
||||
"SpiritGuideEHRInfo": "Invia messaggi ai compagni di squadra viventi.",
|
||||
"SpiritGuideEHRInfoLong": "(Crewmate Ghost):\\nInvia messaggi ai compagni di squadra viventi.",
|
||||
"SpiritGuideCooldown": "Ricarica Messaggio",
|
||||
"Detour": "Deviatore",
|
||||
"DetourInfo": "Passa Uccisioni Al Giocatore Più Vicino",
|
||||
"DetourInfoLong": "(Astronauti):\\nIn qualità di Deviazione, tutte le azioni legate al tasto uccidi su di te verranno bloccate e avverranno invece sul giocatore più vicino a te.",
|
||||
@@ -919,7 +919,7 @@
|
||||
"Helper": "Aiutante",
|
||||
"HelperInfo": "Completa Le Task Per Gli Altri",
|
||||
"HelperInfoLong": "(Astronauti):\\nIn qualità di Assistente, ogni volta che completi una task, verrà completata automaticamente anche una task a un compagno casuale.",
|
||||
"Helper.AbilityWorksAfterDeath": "Ability Works After Death",
|
||||
"Helper.AbilityWorksAfterDeath": "Abilità Funziona Dopo La Morte",
|
||||
"HelperCompletedTaskForYou": "L' {0} ha completato una task per te!",
|
||||
"Ignitor": "Candeliere",
|
||||
"IgnitorInfo": "Accendi le candele per una visione più alta",
|
||||
@@ -1878,7 +1878,7 @@
|
||||
"EvilEraserHideVote": "Nascondi I Voti Del <color=#00a5ff>Revocatore</color>",
|
||||
"EvilGuesser": "Indovino Malvagio",
|
||||
"EvilGuesserInfo": "Indovina ruoli per uccidere nelle riunioni",
|
||||
"EvilGuesserInfoLong": "(Impostori): L'Indovino Malvagio può indovinare il ruolo di un giocatore durante il meeting usando il comando /cmd bt [id giocatore] [ruolo]. Se l'ipotesi è corretta, il bersaglio muore; se è errata, sarà l'Indovino Malvagio a morire. Usa il comando /cmd id per visualizzare l'ID di tutti i giocatori.",
|
||||
"EvilGuesserInfoLong": "(Impostori): L'INDOVINO MALVAGIO",
|
||||
"EvilTracker": "Segugio Malvagio",
|
||||
"EvilTrackerInfo": "Mutati per tenere traccia dei giocatori",
|
||||
"EvilTrackerInfoLong": "(Impostori): Il Segugio Malvagio può tracciare i giocatori; usando il tasto Mutaforma cambia il bersaglio da seguire, ma tornerà alla forma normale immediatamente dopo. La freccia sotto il suo nome indica la direzione del bersaglio. Inoltre, riceve un avviso luminoso (kill flash) ogni volta che un suo compagno di squadra effettua un'uccisione.",
|
||||
@@ -4594,7 +4594,7 @@
|
||||
"HotPotato": "PATATA BOLLENTE",
|
||||
"ModeHotPotato": "Modalità Di Gioco: Patata Bollente",
|
||||
"ModeDescribe.HotPotato": "Nella modalità Patata Bollente, un giocatore ha sempre la patata bollente e può passarla a chiunque avvicinandosi a qualcuno. Ogni X secondi (X è impostato dall'host), il giocatore che possiede la patata bollente muore. L'ultimo giocatore rimasto in vita vince!\\n\\nNota: Non puoi passare la patata bollente al giocatore che te l'ha appena data (il suo nome è colorato in ciano, significa che non può ricevere la patata bollente) a meno che non siano rimasti solo 2 giocatori.",
|
||||
"GameModeTutorial.HotPotato": "<size=90%>The current game mode is <#e8cd46>Hot Potato</color>.</size>\\n<size=80%>Black name = potato holder.\\nCyan name = previous holder. Can't pass it to them unless it's 1v1.\\nTimer expires = current holder dies, potato given to random player.\\nLast one alive wins!",
|
||||
"GameModeTutorial.HotPotato": "<size=90%>La modalità di gioco attuale è <#e8cd46>Hot Potato</color>.</size>\\n<size=80%>Nome nero = detentore di patate.\\nNome Cyan = titolare precedente. Non puoi passarlo a meno che non sia 1v1.\\nIl timer scade = muore il titolare corrente, la patata è data al giocatore casuale.\\nUltima vittoria viva!",
|
||||
"HotPotato_ExtraTimeOnAirship": "Tempo extra su <color=#ed0007>Airship</color>",
|
||||
"HotPotato_ExtraTimeOnFungle": "Tempo extra su <color=#ffa646>Fungle</color>",
|
||||
"HotPotato_HolderCanPassViaKillButton": "I possessori passano la patata tramite il pulsante uccidi invece che per prossimità",
|
||||
|
||||
@@ -635,11 +635,11 @@
|
||||
"JudgeEHRInfo": "법정에서는 정숙하세요!",
|
||||
"JudgeEHRInfoLong": "(크루원):\\n회의 결과를 뒤집어 임포스터를 방출할 수 있습니다.\\n잘못 판결하면 자신이 방출됩니다.",
|
||||
"JudgeTaskRequirementPercentage": "작업 해금 비율",
|
||||
"SpiritGuide": "Influencer",
|
||||
"SpiritGuideEHR": "Influencer",
|
||||
"SpiritGuideEHRInfo": "Send messages to living Crewmates.",
|
||||
"SpiritGuideEHRInfoLong": "(Crewmate Ghost):\\nSend messages to living Crewmates.",
|
||||
"SpiritGuideCooldown": "Message Cooldown",
|
||||
"SpiritGuide": "인플루언서",
|
||||
"SpiritGuideEHR": "인플루언서",
|
||||
"SpiritGuideEHRInfo": "살아 있는 크루원에게 메시지를 보내세요",
|
||||
"SpiritGuideEHRInfoLong": "(크루원 유령):\\n인플루언서는 살아 있는 크루원에게 메시지를 보낼 수 있습니다.",
|
||||
"SpiritGuideCooldown": "메시지 쿨다운",
|
||||
"Detour": "전가자",
|
||||
"DetourInfo": "자신에게 가해진 킬을 가장 가까운 플레이어에게 전가하세요",
|
||||
"DetourInfoLong": "(크루원):\\n전가자에게 사용된 모든 킬 버튼 관련 행동은 차단되며, 대신 전가자와 가장 가까운 플레이어에게 적용됩니다.",
|
||||
@@ -919,7 +919,7 @@
|
||||
"Helper": "도우미",
|
||||
"HelperInfo": "다른 플레이어의 임무도 완료하세요",
|
||||
"HelperInfoLong": "(크루원):\\n도우미가 임무를 하나 완료할 때마다 무작위 크루원 한 명의 임무도 하나 완료됩니다.",
|
||||
"Helper.AbilityWorksAfterDeath": "Ability Works After Death",
|
||||
"Helper.AbilityWorksAfterDeath": "사망 후에도 능력 발동",
|
||||
"HelperCompletedTaskForYou": "{0}이(가) 당신의 임무 하나를 대신 완료했습니다!",
|
||||
"Ignitor": "점화자",
|
||||
"IgnitorInfo": "촛불을 밝혀 높은 시야를 확보하세요",
|
||||
@@ -4594,7 +4594,7 @@
|
||||
"HotPotato": "뜨거운 감자",
|
||||
"ModeHotPotato": "게임 모드: 뜨거운 감자",
|
||||
"ModeDescribe.HotPotato": "뜨거운 감자 모드에서는 항상 한 플레이어가 뜨거운 감자를 가지고 있으며, 다른 플레이어에게 가까이 가면 감자를 넘길 수 있습니다. 호스트가 설정한 X초마다 뜨거운 감자를 가진 플레이어가 사망합니다. 마지막까지 살아남은 플레이어가 승리합니다!\\n\\n참고: 생존자가 2명만 남은 경우가 아니라면 방금 감자를 넘긴 플레이어에게 다시 줄 수 없습니다. 해당 플레이어의 이름은 청록색으로 표시되어 감자를 받을 수 없음을 나타냅니다.",
|
||||
"GameModeTutorial.HotPotato": "<size=90%>The current game mode is <#e8cd46>Hot Potato</color>.</size>\\n<size=80%>Black name = potato holder.\\nCyan name = previous holder. Can't pass it to them unless it's 1v1.\\nTimer expires = current holder dies, potato given to random player.\\nLast one alive wins!",
|
||||
"GameModeTutorial.HotPotato": "<size=90%>현재 게임 모드는 <#e8cd46>뜨거운 감자</color>입니다.</size>\\n<size=80%>이름이 검은색인 플레이어가 감자를 가지고 있습니다.\\n이름이 청록색인 플레이어는 이전 보유자입니다.\\n생존자가 2명뿐인 경우를 제외하면 이전 보유자에게 감자를 넘길 수 없습니다.\\n제한 시간이 끝나면 현재 보유자가 사망하고, 무작위 플레이어에게 감자가 주어집니다.\\n마지막까지 살아남으면 승리합니다!</size>",
|
||||
"HotPotato_ExtraTimeOnAirship": "<color=#ed0007>에어쉽</color> 추가 시간",
|
||||
"HotPotato_ExtraTimeOnFungle": "<color=#ffa646>펀글</color> 추가 시간",
|
||||
"HotPotato_HolderCanPassViaKillButton": "감자 보유자가 근접 대신 킬 버튼으로 감자 전달",
|
||||
|
||||
+110
-110
@@ -12,59 +12,59 @@
|
||||
"GameOver": "Oyun Bitti",
|
||||
"Win": " Kazandı!",
|
||||
"DefaultSystemMessageTitle": "<#00ffa5>∞ <#00a5ff>EHR <#00ffff>SİSTEM MESAJI <#00ffa5>∞",
|
||||
"MessageFromTheHost": "★[ Host message ]★",
|
||||
"MessageFromDev": "★[ Developer ]★",
|
||||
"MessageFromTheHost": "★[ Kurucu mesajı ]★",
|
||||
"MessageFromDev": "★[ Yapımcı ]★",
|
||||
"MessageFromGurge44": "★[ Gurge44 ]★",
|
||||
"MessageFromKPD": "★[ KARPED1EM ]★",
|
||||
"MessageFromSponsor": "★[ Sponsor ]★",
|
||||
"MessageFromEAC": "★[ EAC ]★",
|
||||
"SayTitle": "★[ Moderator message ]★",
|
||||
"announcementUpdate": "<size=3f>Update v{0}</size>\\n{1}",
|
||||
"announcementChangelog": "<size=3f>ChangeLogs v{0}</size>\\n{1}",
|
||||
"SayTitle": "★[ Moderator mesajı ]★",
|
||||
"announcementUpdate": "<size=3f>Güncelleme v{0}</size>\\n{1}",
|
||||
"announcementChangelog": "<size=3f>Yenilikler v{0}</size>\\n{1}",
|
||||
"Server": "<#00ffa5>Server:</color>: ",
|
||||
"VersionMismatch": "{0} has a different version of the mod installed",
|
||||
"VersionMismatch": "{0} modun farklı bir sürümünü yüklemiş",
|
||||
"ModMismatch": "{0} has a different mod installed that isn't compatible with EHR <#ffff00>⚠</color>",
|
||||
"EHRConsentPopUp": "<size=2.0>Welcome to Endless Host Roles!</size>\\n\\n<size=1.3>By playing online with this mod, you acknowledge that certain technical and gameplay data may be processed in connection with mod services and platform interactions.\\n\\n> <link=\"https://github.com/Gurge44/EndlessHostRoles#privacy-policy\">Privacy Policy</link> - Covers what information is collected, how it is used, and under what circumstances it may be retained or acted upon.\\n\\n> <link=\"https://github.com/Gurge44/EndlessHostRoles/blob/main/.github/CODE_OF_CONDUCT.md\">Code of Conduct</link> - Outlines the standards of behaviour expected of all players and the consequences of violations.\\n\\nPress Accept to confirm you have read and agree to both.</size>",
|
||||
"Reject": "Reject",
|
||||
"Accept": "Accept",
|
||||
"Yes": "Yes",
|
||||
"No": "No",
|
||||
"None": "None",
|
||||
"Nothing": "None",
|
||||
"Cancel": "Cancel",
|
||||
"Back": "Back",
|
||||
"NextPage": "Next Page",
|
||||
"PreviousPage": "Previous Page",
|
||||
"On": "Always",
|
||||
"Off": "OFF",
|
||||
"Disabled": "Disabled",
|
||||
"Settings": "Settings",
|
||||
"EHROptions": "EHR Options",
|
||||
"RoleOptions": "Role Options",
|
||||
"ModeOptions": "Mode Options",
|
||||
"Preset": "Preset",
|
||||
"Preset_1": "Preset 1",
|
||||
"Preset_2": "Preset 2",
|
||||
"Preset_3": "Preset 3",
|
||||
"Preset_4": "Preset 4",
|
||||
"Preset_5": "Preset 5",
|
||||
"Preset_6": "Preset 6",
|
||||
"Preset_7": "Preset 7",
|
||||
"Preset_8": "Preset 8",
|
||||
"Preset_9": "Preset 9",
|
||||
"Preset_10": "Preset 10",
|
||||
"Preset_11": "Preset 11",
|
||||
"Preset_12": "Preset 12",
|
||||
"Preset_13": "Preset 13",
|
||||
"Preset_14": "Preset 14",
|
||||
"Preset_15": "Preset 15",
|
||||
"Preset_16": "Preset 16",
|
||||
"Preset_17": "Preset 17",
|
||||
"Preset_18": "Preset 18",
|
||||
"Preset_19": "Preset 19",
|
||||
"Preset_20": "Preset 20",
|
||||
"TabInfoTip": "<b>Tip:</b> Hold SHIFT to adjust number values by 5 or CTRL to adjust by 10! Switch game modes using the arrow button above this message!",
|
||||
"Alignments": "Alignments",
|
||||
"Reject": "Reddet",
|
||||
"Accept": "Kabul Et",
|
||||
"Yes": "Evet",
|
||||
"No": "Hayır",
|
||||
"None": "Hiç",
|
||||
"Nothing": "Hiç",
|
||||
"Cancel": "İptal",
|
||||
"Back": "Geri",
|
||||
"NextPage": "Sonraki Sayfa",
|
||||
"PreviousPage": "Önceki Sayfa",
|
||||
"On": "Her zaman",
|
||||
"Off": "Kapat",
|
||||
"Disabled": "Devre dışı",
|
||||
"Settings": "Ayarlar",
|
||||
"EHROptions": "EHR Ayarları",
|
||||
"RoleOptions": "Rol Ayarları",
|
||||
"ModeOptions": "Mod Ayarları",
|
||||
"Preset": "Kayıtlı Ayar",
|
||||
"Preset_1": "Kayıtlı Ayar 1",
|
||||
"Preset_2": "Kayıtlı Ayar 2",
|
||||
"Preset_3": "Kayıtlı Ayar 3",
|
||||
"Preset_4": "Kayıtlı Ayar 4",
|
||||
"Preset_5": "Kayıtlı Ayar 5",
|
||||
"Preset_6": "Kayıtlı Ayar 6",
|
||||
"Preset_7": "Kayıtlı Ayar 7",
|
||||
"Preset_8": "Kayıtlı Ayar 8",
|
||||
"Preset_9": "Kayıtlı Ayar 9",
|
||||
"Preset_10": "Kayıtlı Ayar 10",
|
||||
"Preset_11": "Kayıtlı Ayar 11",
|
||||
"Preset_12": "Kayıtlı Ayar 12",
|
||||
"Preset_13": "Kayıtlı Ayar 13",
|
||||
"Preset_14": "Kayıtlı Ayar 14",
|
||||
"Preset_15": "Kayıtlı Ayar 15",
|
||||
"Preset_16": "Kayıtlı Ayar 16",
|
||||
"Preset_17": "Kayıtlı Ayar 17",
|
||||
"Preset_18": "Kayıtlı Ayar 18",
|
||||
"Preset_19": "Kayıtlı Ayar 19",
|
||||
"Preset_20": "Kayıtlı Ayar 20",
|
||||
"TabInfoTip": "<b>Önemli:</b>Sayısal değerleri 5'er artırıp azaltmak için SHIFT'e, 10'ar artırıp azaltmak için CTRL'ye basılı tutun! Bu mesajın üzerindeki ok butonunu kullanarak oyun modları arasında geçiş yapın!",
|
||||
"Alignments": "Taraflar",
|
||||
"Neutral": "Nötr",
|
||||
"Coven": "Cadılar",
|
||||
"Madmate": "Çılgın Arkadaş",
|
||||
@@ -83,11 +83,11 @@
|
||||
"YouAreNeutral": "<size=1.7><color=#ffffff>HİZALAMA:</color>Nötr</size>",
|
||||
"YouAreCoven": "<size=1.7><color=#ffffff>TAKIM:</color>Cadılar Meclisi</size>",
|
||||
"YouAreMadmate": "<size=1.7><color=#ffffff>Şu anda</color>İmpostor <color=#ffffff>takımındasın</color></size>",
|
||||
"Alive": "Alive",
|
||||
"Dead": "DEAD",
|
||||
"Kill": "Kill",
|
||||
"Alive": "Yaşıyor",
|
||||
"Dead": "Ölü",
|
||||
"Kill": "Öldür",
|
||||
"Vent": "Vent",
|
||||
"Report": "Report",
|
||||
"Report": "Bildir",
|
||||
"Shapeshift": "Shapeshift",
|
||||
"Vanish": "Vanish",
|
||||
"Cooldown": "Cooldown",
|
||||
@@ -136,57 +136,57 @@
|
||||
"Prefix.Damocles": "Damocles",
|
||||
"Prefix.Deadlined": "Deadlined",
|
||||
"Prefix.DeadlyQuota": "Deadly Quota",
|
||||
"Prefix.Degraded": "Degraded",
|
||||
"Prefix.Disco": "Disco",
|
||||
"Prefix.Diseased": "Diseased",
|
||||
"Prefix.Disregarded": "Disregarded",
|
||||
"Prefix.Dizzy": "Dizzy",
|
||||
"Prefix.DoubleShot": "Double Shot",
|
||||
"Prefix.Dynamo": "Dynamo",
|
||||
"Prefix.Egoist": "Egoist",
|
||||
"Prefix.Energetic": "Energetic",
|
||||
"Prefix.Entombed": "Entombed",
|
||||
"Prefix.EvilSpirit": "Evil Spirit",
|
||||
"Prefix.Examiner": "Examiner",
|
||||
"Prefix.Facilitator": "Facilitator",
|
||||
"Prefix.Finder": "Finder",
|
||||
"Prefix.Flash": "Flash",
|
||||
"Prefix.Focused": "Focused",
|
||||
"Prefix.Fool": "Fool",
|
||||
"Prefix.Fragile": "Fragile",
|
||||
"Prefix.GA": "Guardian Angel",
|
||||
"Prefix.Giant": "Giant",
|
||||
"Prefix.Glow": "Glow",
|
||||
"Prefix.Gravestone": "Gravestone",
|
||||
"Prefix.Guesser": "Guesser",
|
||||
"Prefix.Haste": "Haste",
|
||||
"Prefix.Haunter": "Haunter",
|
||||
"Prefix.Hidden": "Hidden",
|
||||
"Prefix.Insane": "Insane",
|
||||
"Prefix.Introvert": "Introvert",
|
||||
"Prefix.Knighted": "Knighted",
|
||||
"Prefix.Lazy": "Lazy",
|
||||
"Prefix.Listener": "Listener",
|
||||
"Prefix.Looter": "Looter",
|
||||
"Prefix.Loyal": "Loyal",
|
||||
"Prefix.Lucky": "Lucky",
|
||||
"Prefix.Magnet": "Magnet",
|
||||
"Prefix.Mare": "Mare",
|
||||
"Prefix.MeetingAngel": "Meeting Angel",
|
||||
"Prefix.Messenger": "Messenger",
|
||||
"Prefix.Mimic": "Mimic",
|
||||
"Prefix.Minion": "Minion",
|
||||
"Prefix.Mischievous": "Mischievous",
|
||||
"Prefix.Necroview": "Necroview",
|
||||
"Prefix.Nimble": "Nimble",
|
||||
"Prefix.Noisy": "Noisy",
|
||||
"Prefix.Oblivious": "Oblivious",
|
||||
"Prefix.Onbound": "Onbound",
|
||||
"Prefix.Phantasm": "Phantasm",
|
||||
"Prefix.Physicist": "Physicist",
|
||||
"Prefix.Priority": "Priority",
|
||||
"Prefix.Rascal": "Rascal",
|
||||
"Prefix.Reach": "Reach",
|
||||
"Prefix.Degraded": "Sorunlu",
|
||||
"Prefix.Disco": "Disko",
|
||||
"Prefix.Diseased": "Hastalıklı",
|
||||
"Prefix.Disregarded": "Göz Ardı Edilmiş",
|
||||
"Prefix.Dizzy": "Sersem",
|
||||
"Prefix.DoubleShot": "Çift Atış",
|
||||
"Prefix.Dynamo": "Dinamo",
|
||||
"Prefix.Egoist": "Bencil",
|
||||
"Prefix.Energetic": "Enerjik",
|
||||
"Prefix.Entombed": "Gömülmüş",
|
||||
"Prefix.EvilSpirit": "Kötü Ruh",
|
||||
"Prefix.Examiner": "İncelemeci",
|
||||
"Prefix.Facilitator": "Kolaylaştırıcı",
|
||||
"Prefix.Finder": "Bulucu",
|
||||
"Prefix.Flash": "Flaş",
|
||||
"Prefix.Focused": "Odaklanmış",
|
||||
"Prefix.Fool": "Budala",
|
||||
"Prefix.Fragile": "Hassas",
|
||||
"Prefix.GA": "Koruyucu Melek",
|
||||
"Prefix.Giant": "Dev",
|
||||
"Prefix.Glow": "Parlayan",
|
||||
"Prefix.Gravestone": "Mezar Taşı",
|
||||
"Prefix.Guesser": "Tahminci",
|
||||
"Prefix.Haste": "Hızlı",
|
||||
"Prefix.Haunter": "Musallat Olan",
|
||||
"Prefix.Hidden": "Gizli",
|
||||
"Prefix.Insane": "Deli",
|
||||
"Prefix.Introvert": "İçe Dönük",
|
||||
"Prefix.Knighted": "Şövalye",
|
||||
"Prefix.Lazy": "Tembel",
|
||||
"Prefix.Listener": "Dinleyici",
|
||||
"Prefix.Looter": "Yağmacı",
|
||||
"Prefix.Loyal": "Sadık",
|
||||
"Prefix.Lucky": "Şanslı",
|
||||
"Prefix.Magnet": "Mıknatıs",
|
||||
"Prefix.Mare": "Karabasan",
|
||||
"Prefix.MeetingAngel": "Toplantı Meleği",
|
||||
"Prefix.Messenger": "Haberci",
|
||||
"Prefix.Mimic": "Taklitçi",
|
||||
"Prefix.Minion": "Hizmetkar",
|
||||
"Prefix.Mischievous": "Yaramaz",
|
||||
"Prefix.Necroview": "Nekrogörüş",
|
||||
"Prefix.Nimble": "Çevik",
|
||||
"Prefix.Noisy": "Gürültücü",
|
||||
"Prefix.Oblivious": "Dikkatsiz",
|
||||
"Prefix.Onbound": "Tahmin Edilemez",
|
||||
"Prefix.Phantasm": "Tayf",
|
||||
"Prefix.Physicist": "Fizikçi",
|
||||
"Prefix.Priority": "Öncelik",
|
||||
"Prefix.Rascal": "Afacan",
|
||||
"Prefix.Reach": "Menzil",
|
||||
"Prefix.Reroll": "Reroll",
|
||||
"Prefix.Rookie": "Rookie",
|
||||
"Prefix.Schizophrenic": "Schizophrenic",
|
||||
@@ -237,13 +237,13 @@
|
||||
"HWhisperTitle": "<#ff0000>The Host <size=70%>({0})</size> whispers a <#00ffff>help</color> to you:</color>",
|
||||
"InspectorCheckTitle": "[ ★ Message from Inspector ★ ]",
|
||||
"JailTalkTitle": "JAIL",
|
||||
"JailorTitle": "Jailor Message",
|
||||
"JournalistNotesTitle": "<#fcba03>Journalist's Notes</color>",
|
||||
"MediumTitle": "[★ Voice of the Underworld ★]",
|
||||
"MeetingManagerMessageTitle": "★ Meeting Management ★",
|
||||
"MenuTitle.CrewAdvancedGameEndChecking": "Advanced Game End Checking",
|
||||
"MenuTitle.Settings": "★ Settings ★",
|
||||
"MenuTitle.TaskSettings": "★ Task Management ★",
|
||||
"JailorTitle": "Zindancı Mesajı",
|
||||
"JournalistNotesTitle": "<#fcba03>Gazeteci'nin Notları</color>",
|
||||
"MediumTitle": "[★ Yeraltı Dünyasının Sesi ★]",
|
||||
"MeetingManagerMessageTitle": "★ Toplantı Yönetimi ★",
|
||||
"MenuTitle.CrewAdvancedGameEndChecking": "Gelişmiş Oyun Sonu Kontrolü",
|
||||
"MenuTitle.Settings": "★ Ayarlar ★",
|
||||
"MenuTitle.TaskSettings": "★ Görev Yönetimi ★",
|
||||
"MessageTitle.Attention": "<#ff0000><#ffa500>⚠</color> ATTENTION! <#ffa500>⚠</color></color>",
|
||||
"MessengerTitle": "<#ff0000>Message from {0}</color>",
|
||||
"MimicMsgTitle": "★[ Mimic ]★",
|
||||
@@ -251,7 +251,7 @@
|
||||
"MurderKillTitle": "[★ Wicked Court ★]",
|
||||
"Negotiator.Title": "<#ffff00>⚠ Negotiator ⚠</color>",
|
||||
"NemesisRevengeTitle": "★[ NEWS ]★",
|
||||
"NeverComboListTitle": "<u>Roles and Add-ons that Never Spawn Together:</u>",
|
||||
"NeverComboListTitle": "<u>Birlikte Olamayan \nRoller ve Eklentiler:</u>",
|
||||
"OracleCheckMsgTitle": "[ ★ Oracle Vision ★ ]",
|
||||
"PlayersNotReadyTitle": "<#ffff00><#ffab1b>{0}</color> players are not ready!</color> They are:",
|
||||
"ReadyCheckTitle": "<#ffff00>★ Ready Check ★</color>",
|
||||
@@ -279,7 +279,7 @@
|
||||
"AddictSpeedWhileInvulnerble": "Movement speed while <color=#008000>Invulnerble</color>",
|
||||
"AddictVentButtonText": "Get Fix",
|
||||
"AddictWarning": "<#ffff00>You must vent soon or you'll suicide!</color>",
|
||||
"Adrenaline": "Adrenaline",
|
||||
"Adrenaline": "Adrenalin",
|
||||
"AdrenalineInfo": "Be Fast Enough to Avoid Kills",
|
||||
"AdrenalineInfoLong": "(Crewmates):\\nAs the Adrenaline, when you get attacked, the killing attempt gets blocked and you receive a timer. If a meeting gets called before the timer ends, you survive. Otherwise, you die when the timer ends.\\n\\nDepending on the settings, you may or may not know be able to call emergency meetings during the timer.",
|
||||
"Adrenaline.CanCallMeetingDuringTimer": "Can Call Emergency Meetings During the Timer",
|
||||
|
||||
@@ -635,11 +635,11 @@
|
||||
"JudgeEHRInfo": "接着奏乐,接着审~",
|
||||
"JudgeEHRInfoLong": "(船员职业):\\n否决会议结果并驱逐一名内鬼。\\n如果错误,你将被驱逐。",
|
||||
"JudgeTaskRequirementPercentage": "任务解锁",
|
||||
"SpiritGuide": "Influencer",
|
||||
"SpiritGuideEHR": "Influencer",
|
||||
"SpiritGuideEHRInfo": "Send messages to living Crewmates.",
|
||||
"SpiritGuideEHRInfoLong": "(Crewmate Ghost):\\nSend messages to living Crewmates.",
|
||||
"SpiritGuideCooldown": "Message Cooldown",
|
||||
"SpiritGuide": "网红",
|
||||
"SpiritGuideEHR": "网红",
|
||||
"SpiritGuideEHRInfo": "向活着的船员递送讯息。",
|
||||
"SpiritGuideEHRInfoLong": "(船员鬼魂职业):\\n向活着的船员发送消息。",
|
||||
"SpiritGuideCooldown": "消息传递冷却",
|
||||
"Detour": "逃避者",
|
||||
"DetourInfo": "和我一起去逃避~",
|
||||
"DetourInfoLong": "(船员职业):\\n当有人对逃避者使用击杀时,击杀的目标会转移到最近的玩家身上,而不是逃避者。",
|
||||
@@ -919,7 +919,7 @@
|
||||
"Helper": "代理人",
|
||||
"HelperInfo": "帮助他人完成任务",
|
||||
"HelperInfoLong": "(船员职业):\\n代理人每完成一个任务,一名随机的船员也会完成一个任务。",
|
||||
"Helper.AbilityWorksAfterDeath": "Ability Works After Death",
|
||||
"Helper.AbilityWorksAfterDeath": "死亡后能力生效",
|
||||
"HelperCompletedTaskForYou": "{0} 为您完成了一项任务!",
|
||||
"Ignitor": "点火者",
|
||||
"IgnitorInfo": "点燃蜡烛,驱散黑暗",
|
||||
@@ -4594,7 +4594,7 @@
|
||||
"HotPotato": "烫手山芋",
|
||||
"ModeHotPotato": "游戏模式:烫手山芋",
|
||||
"ModeDescribe.HotPotato": "在烫手山芋游戏模式中,一个玩家会有烫手山芋,他可以通过靠近某人将其传递给任何人.每X秒(X由房主设置),拿着烫手山芋的玩家就会死亡.最后一个活着的玩家就赢了!\\n\\n注意:你不能把热土豆传给刚刚给你的玩家(他们的名字是青色的,这意味着他们无法得到热土豆),除非只剩下2个玩家",
|
||||
"GameModeTutorial.HotPotato": "<size=90%>The current game mode is <#e8cd46>Hot Potato</color>.</size>\\n<size=80%>Black name = potato holder.\\nCyan name = previous holder. Can't pass it to them unless it's 1v1.\\nTimer expires = current holder dies, potato given to random player.\\nLast one alive wins!",
|
||||
"GameModeTutorial.HotPotato": "<size=90%>目前的游戏模式是<#e8cd46>烫手山芋</color></size>\\n<size=80%>黑色名字代表你持有烫手山芋。\\n青色名字代表你没有烫手山芋。1v1之前你不能将山芋回传给传给你的人。\\n倒计时归零仍然持有烫手山芋的人死亡,山芋会随机分配给剩余玩家的一个。\\n最后活着的获胜!",
|
||||
"HotPotato_ExtraTimeOnAirship": "<color=#ed0007>高空飞艇</color>额外游戏时间",
|
||||
"HotPotato_ExtraTimeOnFungle": "<color=#ffa646>真菌世界</color>额外游戏时间",
|
||||
"HotPotato_HolderCanPassViaKillButton": "持有土豆者通过击杀按钮传递而代替接近传递",
|
||||
|
||||
+31
-31
@@ -356,7 +356,7 @@
|
||||
"AlchemistVisionOnLightsOut": "關燈時使用夜視藥水的視野",
|
||||
"AlchemistVisionOut": "夜視藥水已失效",
|
||||
"Altruist": "殉道者",
|
||||
"AltruistInfo": "死者復甦!",
|
||||
"AltruistInfo": "復活死去的玩家",
|
||||
"AltruistInfoLong": "(船員陣營):\\n殉道者可以使用報告按鈕來犧牲自己復活死去的玩家。(可以使用跳管/寵物來切換報告模式)",
|
||||
"Altruist.ReviveTargetCanReportTheirOwnBody": "被復活的玩家可以報告自己的屍體",
|
||||
"Altruist.ReviveTargetsKillerGetsAlert": "殺死被復活的玩家的兇手會收到有關復活的警報",
|
||||
@@ -383,7 +383,7 @@
|
||||
"AutocratInfo": "做任務來完成一場大遷移",
|
||||
"AutocratInfoLong": "(船員陣營):\\n遷送者每完成一個任務,就會將隨機玩家傳送至自己的位置",
|
||||
"Bane": "洗腦師",
|
||||
"BaneInfo": "我死了你也別想好過!",
|
||||
"BaneInfo": "抹除殺死你的玩家的職業",
|
||||
"BaneInfoLong": "(船員陣營):\\n擊殺了洗腦師的玩家會被其洗腦而失去自己的職業。\\n\\n也就是:\\n-偽裝者陣營將變為偽裝者\\n-船員陣營將變成船員\\n-巫師陣營將變成巫師陣營成員\\n-中立陣營將變成失憶者",
|
||||
"Battery": "充電者",
|
||||
"BatteryInfo": "阻止燈光破壞",
|
||||
@@ -399,9 +399,9 @@
|
||||
"BenefactorTargetGotShieldNotify": "你獲得了一個暫時護盾\\n因為你完成的任務被慈善家標記了",
|
||||
"BenefactorTaskMarked": "已標記任務",
|
||||
"TaskMarkPerRound": "每輪最大標記任務數",
|
||||
"Bestower": "施法者",
|
||||
"Bestower": "賜予者",
|
||||
"BestowerInfo": "給予技能使用次數",
|
||||
"BestowerInfoLong": "(船員陣營):\\n作為施法者,你可以使用你的擊殺按鈕來給予目標更多技能使用次數。",
|
||||
"BestowerInfoLong": "(船員陣營):\\n作為賜予者,你可以使用你的擊殺按鈕來給予目標更多技能使用次數。",
|
||||
"Bestower.GivenUses": "給予(其他玩家)技能次數",
|
||||
"Bodyguard": "保鑣",
|
||||
"BodyguardInfo": "想殺人必須先過我這關",
|
||||
@@ -609,7 +609,7 @@
|
||||
"Decryptor.Suffix": "<size=70%><#00ffa5>完成</color> <b>{0}</b> <#00ffa5>個任務來獲得下一個字母</color></size>",
|
||||
"Decryptor.TaskNum": "揭示一個字母要完成的任務數",
|
||||
"Demolitionist": "爆破兵",
|
||||
"DemolitionistInfo": "「殺手皇后」已經摸過我的屍體了!",
|
||||
"DemolitionistInfo": "炸死殺死你的玩家",
|
||||
"DemolitionistInfoLong": "(船員陣營):\\n當爆破兵被擊殺時,兇手需要在5秒內進入通風口,否則將會被炸死。",
|
||||
"DemolitionistKillerDiesOnMeetingCall": "未跳入管道的兇手會在會議召開時死亡",
|
||||
"DemolitionistVentTime": "跳管道時限(秒)",
|
||||
@@ -641,7 +641,7 @@
|
||||
"SpiritGuideEHRInfoLong": "(船員陣營 幽靈):\\n向活著的船員們傳送訊息",
|
||||
"SpiritGuideCooldown": "訊息冷卻時間",
|
||||
"Detour": "轉移者",
|
||||
"DetourInfo": "東西都給別人吧~",
|
||||
"DetourInfo": "轉移互動到周圍的玩家",
|
||||
"DetourInfoLong": "(船員陣營):\\n轉移者會將對自己的互動轉移到最近的人身上。",
|
||||
"Dictator": "獨裁者",
|
||||
"DictatorInfo": "讓所有人臣服於你",
|
||||
@@ -653,7 +653,7 @@
|
||||
"DoctorTaskCompletedBatteryCharge": "完成任務增加的心電圖電量",
|
||||
"DoctorVisibleToEveryone": "所有人都知道<color=#80ffdd>法醫</color>是誰",
|
||||
"DonutDelivery": "烘焙師",
|
||||
"DonutDeliveryInfo": "豪赤",
|
||||
"DonutDeliveryInfo": "送出甜甜圈給所有人",
|
||||
"DonutDeliveryInfoLong": "(船員陣營):\\n烘焙師可以使用擊殺鍵來送給玩家甜甜圈,目標知道自己獲得了甜甜圈,雖然甜甜圈很好吃但他並沒有任何作用。",
|
||||
"DonutDeliverCD": "配送冷卻",
|
||||
"DonutDelivered-0": "\\n你做到了!\\n他們狼吞虎嚥的吃下了甜甜圈,就像這是他們的最後一項任務一樣。",
|
||||
@@ -783,7 +783,7 @@
|
||||
"ExaminerInfo": "收集訊息,偵破凶案",
|
||||
"ExaminerInfoLong": "(船員陣營):\\n授予船員職業偵探能力。",
|
||||
"Express": "疾速者",
|
||||
"ExpressInfo": "再快一點!",
|
||||
"ExpressInfo": "完成任務獲得速度增幅",
|
||||
"ExpressInfoLong": "(船員陣營):\\n疾速者每完成一個任務都會獲得短暫的速度提升",
|
||||
"ExpressSpeed": "增加速度",
|
||||
"ExpressSpeedDur": "增加速度的持續時間",
|
||||
@@ -881,7 +881,7 @@
|
||||
"GauloisKillButtonText": "加速",
|
||||
"GauloisSpeedBoost": "增加的速度",
|
||||
"Goose": "鵝",
|
||||
"GooseInfo": "呱",
|
||||
"GooseInfo": "用你的叫聲騷擾其他人",
|
||||
"GooseInfoLong": "(船員陣營):\\n鵝可以對玩家鵝叫來惹惱他們。在鵝叫時你可以拖動玩家一段距離,且這期間他無法使用任何技能。",
|
||||
"Grappler": "格鬥者",
|
||||
"GrapplerInfo": "阻擋擊殺並將玩家拉向自己",
|
||||
@@ -983,7 +983,7 @@
|
||||
"InvestigatorTime": "<color=#BA55D3>預言</color>所需時間",
|
||||
"InvestigatorVision": "<color=#BA55D3>預言家</color>視野",
|
||||
"Jailor": "監禁者",
|
||||
"JailorInfo": "恭喜你喜提一會議的牢飯",
|
||||
"JailorInfo": "把你的目標關進監獄",
|
||||
"JailorInfoLong": "(船員陣營):\\n監禁者可使用擊殺按鈕將一名玩家關進監獄。被關押的玩家無法被猜測或被審判,並且被關押的玩家只能猜測監禁者。 \\n在監獄中,被關押的玩家可以使用<b>/cmd jailtalk [訊息]</b>與監禁者私下交流。",
|
||||
"JailedCanOnlyGuessJailor": "你被監禁了,你只能猜測監禁者。",
|
||||
"JailedNotifyMsg": "你被監禁者關進了監獄。沒有人能賭你或審判你,你只能猜測誰是監禁者。",
|
||||
@@ -1029,7 +1029,7 @@
|
||||
"LeeryNotify": "<#ffff00>最近的玩家不是一個船員!</color>",
|
||||
"LeerySuffix": "<size=80%>質疑中 {0}....</size>",
|
||||
"Lighter": "執燈人",
|
||||
"LighterInfo": "夜空中最亮的星",
|
||||
"LighterInfo": "用你的視野抓住殺手",
|
||||
"LighterInfoLong": "(船員陣營):\\n執燈人可以使用通風口/寵物來暫時增大你的視野,在燈未熄滅或熄滅時,你的視野都會增加!",
|
||||
"LighterSkillCooldown": "<color=#eee5be>點燈</color> 冷卻時間",
|
||||
"LighterSkillDuration": "<color=#eee5be>點燈</color> 持續時間",
|
||||
@@ -1332,7 +1332,7 @@
|
||||
"SecurityGuardSkillStop": "技能已失效",
|
||||
"SecurityGuardVentButtonText": "<size=0>.</size>",
|
||||
"Sensor": "感測器",
|
||||
"SensorInfo": "得到指向呼叫破壞的人",
|
||||
"SensorInfo": "得到指向呼叫破壞的人的箭頭",
|
||||
"SensorInfoLong": "(船員陣營):\\n作為感測器,每當有人進行破壞時,你都會得到一個指向他們的臨時箭頭。",
|
||||
"Sensor.ArrowDuration": "箭頭持續時間",
|
||||
"Sentinel": "哨兵",
|
||||
@@ -1510,7 +1510,7 @@
|
||||
"TimeMasterRewindTimeLength": "回朔持續時間",
|
||||
"TimeMasterVentButtonText": "時間倒流",
|
||||
"ToiletMaster": "廁所大師",
|
||||
"ToiletMasterInfo": "惡臭",
|
||||
"ToiletMasterInfo": "放置廁所",
|
||||
"ToiletMasterInfoLong": "(船員陣營):\\n廁所大師可以在地圖上設置廁所,當玩家使用廁所時會根據他們獲得的大便來獲得隨機的效果",
|
||||
"TM.BluePoopDuration": "藍色大便持續時間",
|
||||
"TM.BrownPoopButtonText": "放置棕色大便",
|
||||
@@ -1582,7 +1582,7 @@
|
||||
"UnshifterSuccess": "目標是變形者!已顯出原型!",
|
||||
"UnshifterTargetNotify": "你被<color=#00b4eb>解形者</color>識破偽裝!",
|
||||
"Vacuum": "吸塵器",
|
||||
"VacuumInfo": "吮吸屍體",
|
||||
"VacuumInfo": "把屍體吸過來",
|
||||
"VacuumInfoLong": "(船員陣營):\\n作為吸塵器,在使用你的能力時,所有被殺的屍體都會傳送到你的位置。",
|
||||
"Ventguard": "阻礙者",
|
||||
"VentguardInfo": "此路不通",
|
||||
@@ -1630,7 +1630,7 @@
|
||||
"WitnessButtonText": "目擊",
|
||||
"WitnessTime": "擊殺後的玩家可被目擊的最長時間",
|
||||
"Wizard": "魔法使",
|
||||
"WizardInfo": "Bling-Bang-Bang-Born?",
|
||||
"WizardInfo": "更改玩家的數據",
|
||||
"WizardInfoLong": "(船員陣營):\\n魔法使可以為每個玩家更改3項統計數據: 速度、視野和擊殺冷卻時間。使用撫摸寵物在這些統計數據之間循環切換。按隱形可增加統計資料的值。要將選定的統計數據及其值提供給玩家,請對目標使用擊殺按鈕。\\n\\n所有的效果都是<b><u>永久性的</u></b>! 你可以透過對同一個目標應用相同的效果來覆蓋先前的效果!",
|
||||
"Wizard.Buff.KCD": "殺人冷卻時間",
|
||||
"Wizard.Buff.Speed": "速度",
|
||||
@@ -1936,7 +1936,7 @@
|
||||
"FrightenerInfoLong": "(偽裝者陣營):\\n作為恐嚇者,你可以變形為玩家,讓他們在一段時間內處於驚恐狀態。處於驚恐狀態的玩家無法舉報屍體(甚至無法召集緊急會議),否則就會死亡。",
|
||||
"Frightener.KillOnEmergencyMeetingCall": "驚恐狀態的玩家在召開緊急會議時死亡",
|
||||
"Gambler": "賭徒",
|
||||
"GamblerInfo": "『領域展開.坐殺博徒』",
|
||||
"GamblerInfo": "每個擊殺都有隨機的效果",
|
||||
"GamblerInfoLong": "(偽裝者陣營):\\n賭徒每次擊殺後都會發生隨機事件。這些效果可以是自我報告或是額外的狙擊手狙擊之間的任何效果。",
|
||||
"GamblerBSRDelay": "自我報告延遲時間",
|
||||
"GamblerFreezeDur": "冰凍持續時間",
|
||||
@@ -1979,7 +1979,7 @@
|
||||
"GatekeeperInfoLong": "(偽裝者陣營):\\n身為看門員,你可以隱身/摸寵物/變形來標記你所在的房間。從現在開始,你將即時看到該房間內存活玩家的數量。死亡的玩家不計入。根據設置,你可以同時標記多個房間。",
|
||||
"Gatekeeper.MaxRoomsMarkedAtOnce": "最多同時監視房間數",
|
||||
"Generator": "發電者",
|
||||
"GeneratorInfo": "別在這裡發電!",
|
||||
"GeneratorInfo": "有能量才能做事",
|
||||
"GeneratorInfoLong": "(偽裝者陣營):\\n發電者每秒都可以產生能量,只有擁有能量時才能進行擊殺/通風口/破壞/變形等操作。變形期間也會損失能量。",
|
||||
"Generator.ChargesGainedEverySecond": "每秒產生的電量",
|
||||
"Generator.ChargesLostWhileShiftedPerSecond": "變形時每秒損失的電量",
|
||||
@@ -2204,7 +2204,7 @@
|
||||
"PuppeteerPuppetCanKillPuppeteer": "<color=#ff1919>傀儡師</color>的傀儡可以殺死自己",
|
||||
"PuppeteerUsesRemaining": "你還有 {0} 個傀儡",
|
||||
"QuickShooter": "快槍手",
|
||||
"QuickShooterInfo": "厚積而薄發",
|
||||
"QuickShooterInfo": "儲存子彈",
|
||||
"QuickShooterInfoLong": "(偽裝者陣營):\\n當快槍手的殺人冷卻結束時,快槍手可以通過變形/寵物儲存一顆子彈(儲存成功時快槍手身上會出現盾牌破碎的效果作為提示),儲存後殺人冷卻將會重置,當快槍手下一次殺人時,子彈將會抵銷掉殺人冷卻,直到子彈耗盡。\\n請注意: 快槍手每次開會時只能保留一定數量的子彈。(數量根據房主設定)",
|
||||
"QuickShooterShapeshiftCooldown": "變形冷卻時間",
|
||||
"QuickShooterShapeshiftText": "儲存",
|
||||
@@ -2500,7 +2500,7 @@
|
||||
"BanditStealMode.Instantly": "立刻",
|
||||
"BanditStealMode.OnMeeting": "會議時",
|
||||
"Bargainer": "購物狂",
|
||||
"BargainerInfo": "瘋狂星期四v我50",
|
||||
"BargainerInfo": "賺錢&花錢",
|
||||
"BargainerInfoLong": "(中立陣營):\\n購物狂可以透過殺人、破壞或在會議中倖存來獲得金錢,之後購物狂可以使用這些錢在商店中購買東西,地圖上的所有設備都是可交易的商店。你可以購買以下物品:<size=80%>\\n- 能量飲料(降低該輪的擊殺冷卻時間)\\n- 真理之鏡(在一段時間內揭示隨機玩家的職業)\\n- 創可貼(讓你獲得一段時間的護盾)</size>\\n當你離開商店時,如果你有足夠的錢,就會購買所選的物品。你可以選擇不買任何東西。在商店中時,點擊破壞可在可買物品之間選擇。",
|
||||
"Bargainer.BandAid": "創可貼",
|
||||
"Bargainer.BandAid.Cost": "創可貼價錢",
|
||||
@@ -2546,7 +2546,7 @@
|
||||
"BloodKnightInfo": "先下手為強也是個不錯的選擇",
|
||||
"BloodKnightInfoLong": "(中立陣營):\\n嗜血騎士每次殺人後都可以獲得一定時間的護盾,護盾可以抵擋掉所有正常殺人的舉動,直到護盾時間結束並失效。當只剩下嗜血騎士陣營與船員陣營且嗜血騎士陣營人數大於船員陣營,則嗜血騎士方獲勝",
|
||||
"Bubble": "氣泡師",
|
||||
"BubbleInfo": "全都是泡沫~~~",
|
||||
"BubbleInfo": "將玩家包裹在泡泡裡",
|
||||
"BubbleInfoLong": "(中立陣營):\\n氣泡師可以對玩家使用擊殺來將其變成氣泡,該玩家將在一段時間後爆炸並炸死特定範圍的玩家。根據設置,其他玩家可能會看到被變成氣泡的玩家顯示為粉紅色名字。",
|
||||
"BubbleCD": "轉變冷卻時間",
|
||||
"BubbleDiesIfInRange": "氣泡師能於爆炸中存活",
|
||||
@@ -2938,7 +2938,7 @@
|
||||
"Nonplus.BlindCooldown": "致盲冷卻時間",
|
||||
"Nonplus.BlindDuration": "致盲持續時間",
|
||||
"NoteKiller": "死亡筆記",
|
||||
"NoteKillerInfo": "我要成為新世界的卡密!",
|
||||
"NoteKillerInfo": "找到玩家的名字來殺死他們",
|
||||
"NoteKillerInfoLong": "(中立陣營):\\n死亡筆記可以透過撫摸寵物/隱身以查看每個人真實名稱的一部分幾秒鐘(此能力有冷卻時間)。如果你找到某人的完整真實名稱,可以使用<b>/cmd dn {realname}</b>,將 {realname} 替換為你找到的姓名。如果該名字正確,遊戲將立即殺死你輸入的真實姓名的玩家。\\n\\n每個人都知道你在遊戲中,每個人都可以看到自己的真實名稱。",
|
||||
"NoteKiller.ClueShowDuration": "揭示持續時間",
|
||||
"NoteKiller.MaxLettersRevealed": "每個名字公開的最大字母數",
|
||||
@@ -3287,7 +3287,7 @@
|
||||
"SunnyboyInfoLong": "(中立陣營):\\n陽光開朗大男孩可以通過心電圖來查看他人的生命徵象。陽光開朗大男孩在場時遊戲不會因人數優勢而結束(例如偽裝者人數大於船員人數或沒有剩餘的存活偽裝者),遊戲結束時如果陽光開朗大男孩死亡,則陽光開朗大男孩隨著勝利陣營一同獲勝。",
|
||||
"SunnyboyChance": "<color=#ff9902>陽光開朗大男孩</color>出現機率機率",
|
||||
"Tank": "坦克",
|
||||
"TankInfo": "為什麼坦克的技能是這個啊??",
|
||||
"TankInfo": "跳進所有管道",
|
||||
"TankInfoLong": "(中立陣營):\\n坦克必須跳入地圖上的每個通風口。如果你在遊戲結束前成功做到這一點,你將與獲勝的陣營一起獲勝。否則你就輸了。你的速度低於別人。",
|
||||
"Tank.CanBeGuessed": "可以被賭",
|
||||
"Tank.CanBeKilled": "可被擊殺",
|
||||
@@ -3438,7 +3438,7 @@
|
||||
"WraithVentNormallyOnCooldown": "<color=#4b0082>幻影</color> 可以在技能冷卻時正常使用通風口",
|
||||
"Augur": "巫婆",
|
||||
"AugurInfo": "猜測身分",
|
||||
"AugurInfoLong": "(巫師陣營):\\n在會議期間,你可以猜測其他玩家的職業。如果猜錯了,你不會死,但直到下次會議之前都不能再次猜測。你無法獲得死靈之書,就像死神一樣。",
|
||||
"AugurInfoLong": "(巫師陣營):\\n在會議期間,你可以猜測其他玩家的職業。如果猜錯了,你不會死,但直到下次會議之前都不能再次猜測。你無法獲得死靈之書,就像收割者一樣。",
|
||||
"Augur.IncorrectGuess": "<#ff0000>錯誤! </color> 這輪會議你不能再進行猜測。",
|
||||
"Augur.MaxGuessesPerGame": "每場遊戲最多猜測次數",
|
||||
"Augur.MaxGuessesPerMeeting": "每個會議最多猜測次數",
|
||||
@@ -3875,7 +3875,7 @@
|
||||
"MischievousInfoLong": "(附加職業):\\n你可以進行破壞。",
|
||||
"Necroview": "死神",
|
||||
"NecroviewInfo": "看見亡靈的陣營",
|
||||
"NecroviewInfoLong": "(附加職業):\\n死神可以在會議上看到死亡玩家的陣營:\\n- <#ff1919>紅色</color>的名字代表偽裝者陣營\\n- <#8cffff>藍色</color>的名字代表船員陣營\\n- <#ffab1b>灰色</color>的名字代表中立陣營",
|
||||
"NecroviewInfoLong": "(附加職業):\\n死神可以在會議上看到死亡玩家的陣營:\\n- <#ff1919>紅色</color>的名字代表偽裝者陣營\\n- <#8cffff>藍色</color>的名字代表船員陣營\\n- <#ffab1b>橘色</color>的名字代表中立陣營",
|
||||
"Nimble": "敏捷",
|
||||
"NimbleInfo": "使用通風口",
|
||||
"NimbleInfoLong": "(附加職業):\\n敏捷可以讓不能使用通風口的船員職業使用通風口",
|
||||
@@ -4007,7 +4007,7 @@
|
||||
"TruantInfo": "欸? 剛剛發生什麼了?",
|
||||
"TruantInfoLong": "(附加職業):\\n每次會議結束後,你都會凍結在原地一定秒數",
|
||||
"TruantWaitingTime": "會議後的等待時間",
|
||||
"Unbound": "未綁定",
|
||||
"Unbound": "容易被猜",
|
||||
"UnboundInfo": "你總是被正確賭中",
|
||||
"UnboundInfoLong": "(附加職業):\\n作為容易被猜,當有人試圖猜測您時,即使他們猜測您是一個錯誤的職業或附加職業,無論如何都會成功猜測。",
|
||||
"Undead": "亡靈",
|
||||
@@ -8263,9 +8263,9 @@
|
||||
"SoloPVP_RecoverPerSecond": "每秒回復血量",
|
||||
"SoloPVP_ResurrectionWaitingTime": "死亡後復活等待時間",
|
||||
"Speedrun": "跑者",
|
||||
"ModeSpeedrun": "遊戲模式: Speedrun",
|
||||
"ModeDescribe.Speedrun": "在Speedrun遊戲模式中,一切都與速度有關。每個人都必須盡快完成所有任務,然後儘快殺死其他人!\\n\\n當玩家完成所有任務後就可以進行擊殺,活到最後的玩家獲勝\\n但讓這變得更困難的是,你完成任務或殺人都有時間限制! 當你完成任務/殺人後,計時器會重設。如果你的時間耗盡,你就會死!\\n\\n此遊戲模式是紅綠燈和個人競技模式的混合體。",
|
||||
"GameModeTutorial.Speedrun": "<size=90%>目前遊戲模式為<#800080>Speedrun</color>。 </size>\\n<size=80%>完成所有任務即可獲得擊殺按鈕,然後殺死所有人即可獲勝。 \\n您必須在規定時間內完成任務或擊殺,否則您就會自殺。 </size>",
|
||||
"ModeSpeedrun": "遊戲模式: 跑者",
|
||||
"ModeDescribe.Speedrun": "在跑者遊戲模式中,一切都與速度有關。每個人都必須盡快完成所有任務,然後儘快殺死其他人!\\n\\n當玩家完成所有任務後就可以進行擊殺,活到最後的玩家獲勝\\n但讓這變得更困難的是,你完成任務或殺人都有時間限制! 當你完成任務/殺人後,計時器會重設。如果你的時間耗盡,你就會死!\\n\\n此遊戲模式是紅綠燈和個人競技模式的混合體。",
|
||||
"GameModeTutorial.Speedrun": "<size=90%>目前遊戲模式為<#800080>跑者</color>。 </size>\\n<size=80%>完成所有任務即可獲得擊殺按鈕,然後殺死所有人即可獲勝。 \\n您必須在規定時間內完成任務或擊殺,否則您就會自殺。 </size>",
|
||||
"Speedrun_CanKillSuffixInfo": "<#00ffa5>剩餘時間:</color> <#ffffff>{3}秒</color>\\n<size=80%><#ffff00>存活的玩家: <#ffab1b>{0}</color>/{1}</color>\\n<#ff1919>殺死所有人來取勝</color>\\n<size=70%><#888888>除了你之外還有 <#ffffff>{2}</color> 個玩家已完成任務並可以進行擊殺</color></size></size>",
|
||||
"Speedrun_CompletedTasks": "<#00ff00>你完成了任務!</color>",
|
||||
"Speedrun_DoTasksSuffixInfo": "<#00ffa5>剩餘時間:</color> <#ffffff>{4}秒</color>\\n<size=70%><#888888>存活的玩家: <#ffffff>{1}</color>/{2}</color>\\n<size=80%><#ffff00>剩餘任務: {0}</color>\\n<#00ffa5>完成你所有的任務</color>\\n<size=70%><#ffab1b><#ffffff>{3}</color> 個玩家可以進行擊殺</color></size></size></size>",
|
||||
@@ -8659,7 +8659,7 @@
|
||||
"Achievement.Two012": "《2012》",
|
||||
"Achievement.Two012.Description": "在天災倖存模式中獲勝",
|
||||
"Achievement.TwoFast4You": "Trance Music for Racing Game.mp3",
|
||||
"Achievement.TwoFast4You.Description": "在Speedrun模式中獲勝",
|
||||
"Achievement.TwoFast4You.Description": "在跑者模式中獲勝",
|
||||
"Achievement.UnderNewManagement": "管理權轉讓",
|
||||
"Achievement.UnderNewManagement.Description": "作為失憶者,回想起魅魔或病原體的職業",
|
||||
"Achievement.Unsuspected": "毫無嫌疑",
|
||||
@@ -10073,7 +10073,7 @@
|
||||
"LoadingHint.30": "想一遍又一遍的殺死船員? 在過去的半個小時沒有好好釋放壓力?\n在我們的\"個人競技模式\"釋放你的嗜血慾望!",
|
||||
"LoadingHint.31": "你知道嗎?\nEHR有一個專屬的捉迷藏模式,並且有12個專屬於捉迷藏的職業!",
|
||||
"LoadingHint.32": "你是炸彈小遊戲的高手嗎?\n在燙手山芋模式中大展身手!",
|
||||
"LoadingHint.33": "你喜歡快速的做任務和殺人嗎?\n那麼我們為這樣的你製作了Speedrun模式! 在這局遊戲結束後去試試吧!",
|
||||
"LoadingHint.33": "你喜歡快速的做任務和殺人嗎?\n那麼我們為這樣的你製作了跑者模式! 在這局遊戲結束後去試試吧!",
|
||||
"LoadingHint.34": "你喜歡惡魔這個職業的機制嗎?\n那你一定要試試看個人競技模式!\n在遊戲結束後試試看吧!",
|
||||
"LoadingHint.35": "你知道嗎?\n使用CTRL + F1可以隨時導出遊戲日誌!",
|
||||
"LoadingHint.36": "你知道嗎?\n你可以透過寵物來使用技能!\n只需在遊戲修改中進行設定!",
|
||||
@@ -10221,7 +10221,7 @@
|
||||
"NumberOfLovers": "<color=#ff9ace>戀人</color>數量 (x2名玩家)",
|
||||
"OddKillCooldown": "單數殺人冷卻時間",
|
||||
"OnlyShowPart": "僅顯示部分",
|
||||
"PetsForceEnabled": "Speedrun遊戲模式需要啟用寵物,所以它們被強制開啟。你可以在遊戲修改器下為以後的遊戲停用它。",
|
||||
"PetsForceEnabled": "跑者遊戲模式需要啟用寵物,所以它們被強制開啟。你可以在遊戲修改器下為以後的遊戲停用它。",
|
||||
"PoisonCooldown": "投毒冷卻時間",
|
||||
"PressF1ShowMainRoleDes": "F1:顯示完整職業/附加職業資訊\\n<size=60%>遊戲手把請使用右搖桿(R3/RSB)</size>",
|
||||
"PromotedSKCanRecruit": "新的<color=#00b4eb>豺狼</color>可以招募新的<color=#00b4eb>跟班</color>",
|
||||
|
||||
@@ -36,6 +36,11 @@ public class Hypocrite : RoleBase
|
||||
HypocritePC = playerId.GetPlayer();
|
||||
}
|
||||
|
||||
public override bool CanUseKillButton(PlayerControl pc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void OnTaskComplete(PlayerControl pc, int completedTaskCount, int totalTaskCount)
|
||||
{
|
||||
if (!pc.IsAlive()) return;
|
||||
@@ -63,7 +68,7 @@ public class Hypocrite : RoleBase
|
||||
|
||||
public override string GetSuffix(PlayerControl seer, PlayerControl target, bool hud = false, bool meeting = false)
|
||||
{
|
||||
if (seer.PlayerId != target.PlayerId || hud || seer.Is(Team.Impostor) || meeting || HypocritePC == null || !HypocritePC.IsAlive() || !seer.IsAlive()) return string.Empty;
|
||||
if (seer.PlayerId != target.PlayerId || hud || seer.Is(Team.Impostor) || meeting || !HypocritePC || !HypocritePC.IsAlive() || !seer.IsAlive()) return string.Empty;
|
||||
|
||||
TaskState ts = HypocritePC.GetTaskState();
|
||||
if (!NonImpGetsNotifyWhenLowTasks.GetBool() || ts.RemainingTasksCount > NotifyAtXTasksLeft.GetInt()) return string.Empty;
|
||||
|
||||
@@ -52,7 +52,9 @@ public class Perplexer : RoleBase
|
||||
|
||||
public override bool OnShapeshift(PlayerControl shapeshifter, PlayerControl target, bool shapeshifting)
|
||||
{
|
||||
if (shapeshifting && MarkedId == byte.MaxValue && target.IsAlive() && shapeshifter.GetAbilityUseLimit() >= 1f)
|
||||
if (!shapeshifting) return true;
|
||||
|
||||
if (MarkedId == byte.MaxValue && target.IsAlive() && shapeshifter.GetAbilityUseLimit() >= 1f)
|
||||
{
|
||||
MarkedId = target.PlayerId;
|
||||
Main.AllPlayerSpeed[MarkedId] *= -1;
|
||||
@@ -66,6 +68,7 @@ public class Perplexer : RoleBase
|
||||
if (target && target.IsAlive()) target.MarkDirtySettings();
|
||||
}, AbilityDuration.GetFloat(), "Perplexer Revert Control Invert");
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>Il2CppInterop.HarmonySupport</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="M:Il2CppInterop.HarmonySupport.Il2CppDetourMethodPatcher.#ctor(System.Reflection.MethodBase)">
|
||||
<summary>
|
||||
Constructs a new instance of <see cref="T:MonoMod.RuntimeDetour.NativeDetour" /> method patcher.
|
||||
</summary>
|
||||
<param name="original"></param>
|
||||
</member>
|
||||
<member name="M:Il2CppInterop.HarmonySupport.Il2CppDetourMethodPatcher.PrepareOriginal">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Il2CppInterop.HarmonySupport.Il2CppDetourMethodPatcher.DetourTo(System.Reflection.MethodBase)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Il2CppInterop.HarmonySupport.Il2CppDetourMethodPatcher.CopyOriginal">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
@@ -1,74 +0,0 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v6.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v6.0": {
|
||||
"Il2CppInterop.Runtime/1.5.3": {
|
||||
"dependencies": {
|
||||
"Iced": "1.17.0",
|
||||
"Il2CppInterop.Common": "1.5.3"
|
||||
},
|
||||
"runtime": {
|
||||
"Il2CppInterop.Runtime.dll": {}
|
||||
}
|
||||
},
|
||||
"Iced/1.17.0": {
|
||||
"runtime": {
|
||||
"lib/netstandard2.1/Iced.dll": {
|
||||
"assemblyVersion": "1.17.0.0",
|
||||
"fileVersion": "1.17.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging.Abstractions/6.0.1": {
|
||||
"runtime": {
|
||||
"lib/net6.0/Microsoft.Extensions.Logging.Abstractions.dll": {
|
||||
"assemblyVersion": "6.0.0.0",
|
||||
"fileVersion": "6.0.322.12309"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Il2CppInterop.Common/1.5.3": {
|
||||
"dependencies": {
|
||||
"Iced": "1.17.0",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "6.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"Il2CppInterop.Common.dll": {
|
||||
"assemblyVersion": "1.5.3.0",
|
||||
"fileVersion": "1.5.3.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"Il2CppInterop.Runtime/1.5.3": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Iced/1.17.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-8x+HCVTl/HHTGpscH3vMBhV8sknN/muZFw9s3TsI8SA6+c43cOTCi2+jE4KsU8pNLbJ++iF2ZFcpcXHXtDglnw==",
|
||||
"path": "iced/1.17.0",
|
||||
"hashPath": "iced.1.17.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Logging.Abstractions/6.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-dzB2Cgg+JmrouhjkcQGzSFjjvpwlq353i8oBQO2GWNjCXSzhbtBRUf28HSauWe7eib3wYOdb3tItdjRwAdwCSg==",
|
||||
"path": "microsoft.extensions.logging.abstractions/6.0.1",
|
||||
"hashPath": "microsoft.extensions.logging.abstractions.6.0.1.nupkg.sha512"
|
||||
},
|
||||
"Il2CppInterop.Common/1.5.3": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,10 @@
|
||||
1. Run "AmongUsDotNetInstaller.exe" (this app is made by Pietro, we can all trust him, run it anyway regardless of what your anti-virus says)
|
||||
2. Follow its instructions but don't click Launch at the end yet
|
||||
3. After the progress bar finishes, remember the folder where you've installed the mono version of the game for step 4
|
||||
4. Take all files in this folder apart from "INSTRUCTIONS.txt" and "AmongUsDotNetInstaller.exe" and put them into that folder
|
||||
4. Take all files in this folder apart from "!INSTRUCTIONS.txt" and "AmongUsDotNetInstaller.exe" and put them into that folder from step 3
|
||||
5. Have Steam running in the background
|
||||
6. Run "Among Us.exe" from this folder, or click Launch in "AmongUsDotNetInstaller.exe" if you still have it open
|
||||
|
||||
For Epic Games, you need to have the newly created folder at the exact same location with the exact same name as the original AmongUs folder, and launch from the Epic Games launcher (delete the old folder or rename it)
|
||||
|
||||
Feel free to delete "INSTRUCTIONS.txt" and "AmongUsDotNetInstaller.exe" after you've successfully completed all steps and got EHR to load properly.
|
||||
Feel free to delete "!INSTRUCTIONS.txt" and "AmongUsDotNetInstaller.exe" after you've successfully completed all steps and got EHR to load properly. Although you might need them when the base game updates.
|
||||
Binary file not shown.
Binary file not shown.
@@ -1 +0,0 @@
|
||||
945360
|
||||
Reference in new issue
Block a user