Compare commits

...
4 Commits
Author SHA1 Message Date
Crowdin Bot 2980e7d8ce chore: update translations for release 8.0.1 2026-08-26 08:49:24 +00:00
Gurge44 7b2cae1c21 fix AOU-EU auto select 2026-08-26 10:45:58 +02:00
Gurge44 622e677629 Merge remote-tracking branch 'origin/main' 2026-08-26 10:33:27 +02:00
Gurge44 a61555fcdb quick fixes 2026-08-26 10:33:18 +02:00
13 changed files with 171 additions and 96 deletions

No files matched your search

+52 -1
View File
@@ -223,7 +223,58 @@ jobs:
path: ./EHR*.zip
# ---------------------------------------------------------
# 5) Create GitHub Release
# 5) Upload releases to CurseForge
# ---------------------------------------------------------
publish-curseforge:
runs-on: ubuntu-latest
needs: [package]
steps:
- uses: actions/checkout@v4
- name: Download packaged ZIPs
uses: actions/download-artifact@v4
with:
name: final-zips
path: release-artifacts
- name: Read changelog
id: changelog
run: |
{
echo 'content<<EOF'
cat CHANGELOG.md
echo 'EOF'
} >> "$GITHUB_OUTPUT"
- name: Upload Epic / Microsoft Store build to CurseForge
uses: itsmeow/curseforge-upload@v3
with:
token: ${{ secrets.CURSEFORGE_API_TOKEN }}
project_id: ${{ secrets.CURSEFORGE_PROJECT_ID }}
game_endpoint: among-us
file_path: release-artifacts/EHR.v${{ github.event.inputs.version }}_Epic-Games_Microsoft-Store.zip
display_name: EHR v${{ github.event.inputs.version }} (x64 - Epic/MS Store)
release_type: release
changelog_type: markdown
changelog: ${{ steps.changelog.outputs.content }}
game_versions: "18.0.0"
- name: Upload Steam build to CurseForge
uses: itsmeow/curseforge-upload@v3
with:
token: ${{ secrets.CURSEFORGE_API_TOKEN }}
project_id: ${{ secrets.CURSEFORGE_PROJECT_ID }}
game_endpoint: among-us
file_path: release-artifacts/EHR.v${{ github.event.inputs.version }}_Steam.zip
display_name: EHR v${{ github.event.inputs.version }} (x86 - Steam)
release_type: release
changelog_type: markdown
changelog: ${{ steps.changelog.outputs.content }}
game_versions: "18.0.0"
# ---------------------------------------------------------
# 6) Create GitHub Release
# ---------------------------------------------------------
release:
runs-on: ubuntu-latest
+6 -32
View File
@@ -1,38 +1,12 @@
# Thank you so much for finding and using EHR!
Support for Among Us v18.0 (2026. 08. 18.)
- **Fixed host not being able to use judging as ability trigger**
- **Fixed comms preventing judging to trigger abilities**
- Fixed camouflage sometimes not reverting after fixing comms
- Fixed /spectate on others not being reverted properly
- Fixed AOU-EU region being auto-selected at all times on launch
## Bug Fixes
- **Fixed kill cooldowns being resetted to half of the value after meetings**
- SNS fixes
- Fixed Quiz FFA suffix
- Fixed Solo PVP error spam
- Fixed Imitator being able to imitate Trickster
- Double Agent counts towards Impostors on /gamestate
- Fixed chat input field text color sometimes not resetting to white with dark theme
- Fixed Revenant unnecessary teleporting after meetings
- Multiple Time Master rewinds now can't happen simultaneously
- Fixed Duality being semi-revived after death on task completion
## Changes
- EHR Judge => Prosecutor
- Roles with a voting ability can now use the vanilla judging mechanic to trigger their ability! (Game Modifiers > `Use Judge Ability in Meetings to Select Targets Instead of Commands/Votes`)
- More compatibility with LevelImposter - by Zypherus & Newholiday
- EHR users can now see public EHR lobbies in the Find Game menu
## Additions
- New role: Transposer (Impostor Concealing)
- New role: Tyrant (Impostor Support) - by Newholiday
- New role: Evader (Crewmate Miscellaneous)
- New add-on: Bluetooth (Impostor-Only Helpful) - by Newholiday
- New add-on: Priority (Coven-Only Helpful) - by Newholiday
- New add-on: Transfer (Global Mixed)
- New setting: `Hide 'EHR-Host' Text` (System Settings)
- AOU EU region support
Thanks to TommyXL for fixing the build errors after the update!
I know this release is very, very late, but I wanted to actually support the new update, not just a Band-Aid fire extinguish. Hope you enjoy still!
[Check the changes from v7.9.0](https://github.com/Gurge44/EndlessHostRoles/releases/tag/v8.0.0)
> [!TIP]
> **Play on modded regions** (MEU/MAS/MNA/Niko-EU/Niko-AS/Niko-NA/AOU-EU) for an overall better experience. Mobile and PC users can install them [from my website](https://ehr.gurge44.eu/regions).
+2 -2
View File
@@ -41,8 +41,8 @@ public class Main : BasePlugin
private const string DebugKeyHash = "c0fd562955ba56af3ae20d7ec9e64c664f0facecef4b3e366e109306adeae29d";
private const string DebugKeySalt = "59687b";
public const string PluginGuid = "com.gurge44.endlesshostroles";
public const string PluginVersion = "8.0.0";
public const string PluginDisplayVersion = "8.0.0";
public const string PluginVersion = "8.0.1";
public const string PluginDisplayVersion = "8.0.1";
public const int TestBuildNumber = 0; // 0 = Release
public const string NeutralColor = "#ffab1b";
+1 -1
View File
@@ -209,7 +209,7 @@ public static class Camouflage
}
// if the current Outfit is the same, return
if (newOutfit.Compare(target.Data.DefaultOutfit))
if (IsCamouflage && newOutfit.Compare(target.Data.DefaultOutfit))
{
Logger.Info("Outfit is the same, returning", "Camouflage.RpcSetSkin");
return;
+32 -32
View File
@@ -280,46 +280,46 @@ public static class Utils
switch (type)
{
case SystemTypes.Electrical:
{
if (mapId == 5) return false;
return ShipStatusSystem.SwitchSystem != null && ShipStatusSystem.SwitchSystem.IsActive;
}
{
if (mapId == 5) return false;
return ShipStatusSystem.SwitchSystem != null && ShipStatusSystem.SwitchSystem.IsActive;
}
case SystemTypes.Reactor:
{
return mapId switch
{
return mapId switch
{
2 => false,
4 => ShipStatusSystem.HeliSabotageSystem && ShipStatusSystem.HeliSabotageSystem.IsActive,
_ => ShipStatusSystem.ReactorSystemType != null && ShipStatusSystem.ReactorSystemType.IsActive
};
}
2 => false,
4 => ShipStatusSystem.HeliSabotageSystem && ShipStatusSystem.HeliSabotageSystem.IsActive,
_ => ShipStatusSystem.ReactorSystemType != null && ShipStatusSystem.ReactorSystemType.IsActive
};
}
case SystemTypes.Laboratory:
{
if (mapId != 2) return false;
return ShipStatusSystem.ReactorSystemType != null && ShipStatusSystem.ReactorSystemType.IsActive;
}
{
if (mapId != 2) return false;
return ShipStatusSystem.ReactorSystemType != null && ShipStatusSystem.ReactorSystemType.IsActive;
}
case SystemTypes.LifeSupp:
{
if (mapId is 2 or 4 or 5) return false;
return ShipStatusSystem.LifeSuppSystemType != null && ShipStatusSystem.LifeSuppSystemType.IsActive;
}
{
if (mapId is 2 or 4 or 5) return false;
return ShipStatusSystem.LifeSuppSystemType != null && ShipStatusSystem.LifeSuppSystemType.IsActive;
}
case SystemTypes.Comms:
{
if (mapId is 1 or 5)
return ShipStatusSystem.HqHudSystemType != null && ShipStatusSystem.HqHudSystemType.IsActive;
{
if (mapId is 1 or 5)
return ShipStatusSystem.HqHudSystemType != null && ShipStatusSystem.HqHudSystemType.IsActive;
return ShipStatusSystem.HudOverrideSystemType != null && ShipStatusSystem.HudOverrideSystemType.IsActive;
}
return ShipStatusSystem.HudOverrideSystemType != null && ShipStatusSystem.HudOverrideSystemType.IsActive;
}
case SystemTypes.HeliSabotage:
{
if (mapId != 4) return false;
return ShipStatusSystem.HeliSabotageSystem && ShipStatusSystem.HeliSabotageSystem.IsActive;
}
{
if (mapId != 4) return false;
return ShipStatusSystem.HeliSabotageSystem && ShipStatusSystem.HeliSabotageSystem.IsActive;
}
case SystemTypes.MushroomMixupSabotage:
{
if (mapId != 5) return false;
return ShipStatusSystem.MushroomMixupSabotageSystem && ShipStatusSystem.MushroomMixupSabotageSystem.IsActive;
}
{
if (mapId != 5) return false;
return ShipStatusSystem.MushroomMixupSabotageSystem && ShipStatusSystem.MushroomMixupSabotageSystem.IsActive;
}
default:
return false;
}
+4
View File
@@ -1321,10 +1321,14 @@ internal static class ChatCommands
if (pc == null) return;
if (ForcedSpectators.Remove(targetId))
{
Utils.SendMessage("\n", player.PlayerId, string.Format(GetString("SpectateCommand.RemovedForcedSpectator"), targetId.ColoredPlayerName()));
return;
}
if (ForcedSpectators.Add(targetId))
Utils.SendMessage("\n", player.PlayerId, string.Format(GetString("SpectateCommand.ForcedSpectator"), targetId.ColoredPlayerName()));
return;
}
+46
View File
@@ -22,6 +22,7 @@ internal static class CheckForEndVotingPatch
public static string EjectionText = string.Empty;
public static NetworkedPlayerInfo TempExiledPlayer;
public static bool ShouldSkip;
public static bool CommsWasCalled;
private static readonly List<MeetingHud.VoterState> StatesList = [];
private static MeetingHud.VoterState[] States = [];
@@ -1074,6 +1075,13 @@ internal static class MeetingHudStartPatch
{
if (!MeetingHud.Instance || MeetingHud.Instance.state is MeetingHud.MeetingStates.Results or MeetingHud.MeetingStates.Proceeding) return;
if (Utils.IsActive(SystemTypes.Comms))
{
CheckForEndVotingPatch.CommsWasCalled = true;
if (Main.NormalOptions.MapId is 1 or 5) ShipStatus.Instance.UpdateSystem(SystemTypes.Comms, PlayerControl.LocalPlayer, 17);
ShipStatus.Instance.UpdateSystem(SystemTypes.Comms, PlayerControl.LocalPlayer, 16);
}
Main.EnumerateAlivePlayerControls().DoIf(x => x.UsesJudgeAbilityAsTrigger(), x => x.RpcSetRoleDesync(RoleTypes.Judge, x.OwnerId));
}, 1f, "Set Shapeshifter Role For Meeting Use");
}
@@ -1381,6 +1389,16 @@ internal static class MeetingHudOnDestroyPatch
pc.RpcMakeInvisible();
}
catch (Exception e) { Utils.ThrowException(e); }
try
{
if (CheckForEndVotingPatch.CommsWasCalled)
{
CheckForEndVotingPatch.CommsWasCalled = false;
ShipStatus.Instance.UpdateSystem(SystemTypes.Comms, PlayerControl.LocalPlayer, 128);
}
}
catch (Exception e) { Utils.ThrowException(e); }
bool meetingSS = Options.UseMeetingShapeshift.GetBool();
bool meetingSSForGuessing = Options.UseMeetingShapeshiftForGuessing.GetBool();
@@ -1593,6 +1611,34 @@ static class MeetingHud_Start
}
}
[HarmonyPatch(typeof(MeetingHud), nameof(MeetingHud.CmdQueueOverruleVotes))]
static class MeetingHudCmdQueueOverruleVotesPatch
{
public static bool Prefix(MeetingHud __instance, [HarmonyArgument(1)] PlayerId targetPlayerId)
{
if (!AmongUsClient.Instance.AmHost) return true;
PlayerControl target = targetPlayerId.Value.GetPlayer();
if (target && PlayerControl.LocalPlayer.UsesJudgeAbilityAsTrigger() && Main.PlayerStates.TryGetValue(PlayerControl.LocalPlayer.PlayerId, out PlayerState state))
{
state.Role.OnJudge(PlayerControl.LocalPlayer, target);
if (__instance.playerStates.FindFirst(x => x.PlayerId == PlayerControl.LocalPlayer.PlayerId, out PlayerVoteArea pva))
{
pva.UnsetVote();
__instance.RpcClearVote(pva.PlayerId);
__instance.UpdateForeground();
pva.VotedForId = byte.MaxValue;
}
return false;
}
return true;
}
}
// All below are from: https://github.com/EnhancedNetwork/TownofHost-Enhanced (with some modifications)
[HarmonyPatch(typeof(MeetingHud), nameof(MeetingHud.RpcClose))]
+5 -5
View File
@@ -10802,11 +10802,11 @@
"RoleSubCategoryLimitOptions.MadMates.Max": "Maximale Anticrewmitglieds Rollen",
"RoleSubCategoryLimitOptions.MadMates.Min": "Minimale Anticrewmitglieds Rollen",
"RoleSubCategoryLimitOptions.Neutral_Benign.EnableLimit": "<#ffffff>Ändere die Anzahl von</color> Gutartigen Neutral <#ffffff>Rollen im Spiel</color>",
"RoleSubCategoryLimitOptions.Neutral_Benign.Max": "Maximale Neutral Gutartigen Rollen",
"RoleSubCategoryLimitOptions.Neutral_Benign.Min": "Minimale Neutral Gutartigen Rollen",
"RoleSubCategoryLimitOptions.Neutral_Evil.EnableLimit": "<#ffffff>Ändere die Anzahl von</color> Bösen Neutral <#ffffff>Rollen im Spiel</color>",
"RoleSubCategoryLimitOptions.Neutral_Evil.Max": "Maximale Neutral Bösen Rollen",
"RoleSubCategoryLimitOptions.Neutral_Evil.Min": "Minimale Neutral Bösen Rollen",
"RoleSubCategoryLimitOptions.Neutral_Benign.Max": "Maximale Neutral gutartige Rollen",
"RoleSubCategoryLimitOptions.Neutral_Benign.Min": "Minimale Neutral gutartige Rollen",
"RoleSubCategoryLimitOptions.Neutral_Evil.EnableLimit": "<#ffffff>Ändere die Anzahl von</color> neutral-bösen <#ffffff>Rollen im Spiel</color>",
"RoleSubCategoryLimitOptions.Neutral_Evil.Max": "Maximale neutrale böse Rollen",
"RoleSubCategoryLimitOptions.Neutral_Evil.Min": "Minimale neutrale böse Rollen",
"RoleSubCategoryLimitOptions.Neutral_Killing.EnableLimit": "<#ffffff>Ändere die Anzahl von</color> Tötenden Neutral <#ffffff>Rollen im Spiel</color>",
"RoleSubCategoryLimitOptions.Neutral_Killing.Max": "Maximale Neutral Tötenden Rollen",
"RoleSubCategoryLimitOptions.Neutral_Killing.Min": "Minimale Neutral Tötenden Rollen",
+14 -14
View File
@@ -1041,9 +1041,9 @@
"LuckeyInfo": "공격을 피하세요",
"LuckeyInfoLong": "(크루원):\\n행운아는 호스트가 정한 확률로 다른 플레이어의 킬 시도를 피합니다. 킬러에게는 보호막 애니메이션이 보이지만, 행운아 자신은 이를 알 수 없습니다.",
"LuckeyProbability": "킬에서 살아남을 확률",
"Markseeker": "표식추적자",
"Markseeker": "표식 추적자",
"MarkseekerInfo": "누군가의 직업을 예측하세요",
"MarkseekerInfoLong": "(크루원):\\n표식추적자는 <b>/cmd mark {id}</b> 명령어로 대상을 표시할 수 있습니다. 표식추적자가 죽으면 대상의 직업이 모두에게 공개됩니다.",
"MarkseekerInfoLong": "(크루원):\\n표식 추적자는 <b>/cmd mark {id}</b> 명령어로 대상을 표시할 수 있습니다. 표식 추적자가 죽으면 대상의 직업이 모두에게 공개됩니다.",
"Marshall": "마셜",
"MarshallInfo": "임무를 완료해 결백을 증명하세요",
"MarshallInfoLong": "(크루원):\\n마셜은 모든 임무를 완료하면 나머지 크루원에게 자신의 정체를 공개합니다. 어느 진영이 마셜을 볼 수 있는지는 설정에 따라 달라집니다.",
@@ -1640,9 +1640,9 @@
"Wizard.SpeedStep": "이동 속도 증가 단위",
"Wizard.Vision": "시야",
"Wizard.VisionStep": "시야 증가 단위",
"Abyssbringer": "심연소환사",
"Abyssbringer": "심연 소환사",
"AbyssbringerInfo": "블랙홀을 설치하세요",
"AbyssbringerInfoLong": "(임포스터):\\n심연소환사는 블랙홀을 설치할 수 있습니다. 블랙홀은 플레이어를 빨아들이며, 충돌한 플레이어를 킬합니다.",
"AbyssbringerInfoLong": "(임포스터):\\n심연 소환사는 블랙홀을 설치할 수 있습니다. 블랙홀은 플레이어를 빨아들이며, 충돌한 플레이어를 킬합니다.",
"Abyssbringer.Suffix": "<size=80%><#00ffa5>활성화된 블랙홀</color> {0}<#00ffa5>개가 삼킨 플레이어 수:</color></size><size=70%>\\n{1}",
"Abyssbringer.Suffix.BlackHole": "<#00ffa5>{0}:</color> {1}",
"Ambusher": "매복자",
@@ -1737,9 +1737,9 @@
"CentralizerInfo": "플레이어의 위치를 한곳으로 모으세요",
"CentralizerInfoLong": "(임포스터):\\n집결자는 위치 하나를 표시한 뒤 능력을 다시 사용하여 일정 수의 플레이어를 그곳으로 순간이동시킬 수 있습니다. 자신이 포함될 수도 있습니다.",
"Centralizer.NumPlayersTeleported": "순간이동시키는 플레이어 수",
"Chainbinder": "사슬결속자",
"Chainbinder": "사슬 결속자",
"ChainbinderInfo": "근처 플레이어들을 사슬로 묶으세요",
"ChainbinderInfoLong": "(임포스터):\\n사슬결속자는 능력을 사용해 근처의 플레이어 두 명을 잠시 사슬로 연결할 수 있습니다. 두 플레이어가 너무 멀리 떨어지면 서로를 향해 끌려옵니다. 변신 기반에서는 선택한 플레이어가 사슬에 포함되며, 펫을 사용하는 경우 자신 주변에서 가장 가까운 유효 대상 두 명이 연결됩니다. 정상적인 킬도 가능합니다.",
"ChainbinderInfoLong": "(임포스터):\\n사슬 결속자는 능력을 사용해 근처의 플레이어 두 명을 잠시 사슬로 연결할 수 있습니다. 두 플레이어가 너무 멀리 떨어지면 서로를 향해 끌려옵니다. 변신 기반에서는 선택한 플레이어가 사슬에 포함되며, 펫을 사용하는 경우 자신 주변에서 가장 가까운 유효 대상 두 명이 연결됩니다. 정상적인 킬도 가능합니다.",
"Chainbinder.NotEnoughTargets": "사슬을 만들 수 있는 유효한 플레이어가 주변에 충분하지 않습니다",
"Chainbinder.PairBound": "사슬 연결: {0} 및 {1}",
"Chainbinder.PairEnded": "사슬 연결이 종료되었습니다",
@@ -2902,7 +2902,7 @@
"Magistrate.JuryName": "배심원",
"Maverick": "매버릭",
"MaverickInfo": "킬하고 끝까지 살아남아 승리하세요",
"MaverickInfoLong": "(중립):\\n매버릭은 연쇄살인마처럼 플레이어를 킬할 수 있습니다. 단독 승리가 아니라 게임의 승리 진영과 함께 승리합니다. 사망하면 패배합니다.",
"MaverickInfoLong": "(중립):\\n매버릭은 연쇄 살인마처럼 플레이어를 킬할 수 있습니다. 단독 승리가 아니라 게임의 승리 진영과 함께 승리합니다. 사망하면 패배합니다.",
"Medusa": "메두사",
"MedusaInfo": "시체를 신고해 돌로 만드세요",
"MedusaInfoLong": "(중립):\\n메두사는 킬 쿨다운이 끝난 상태에서 시체를 신고해 청소하듯 돌로 만들 수 있습니다. 돌이 된 시체는 신고할 수 없습니다.\\n\\n모두를 킬하면 승리합니다.",
@@ -3175,9 +3175,9 @@
"Seamstress": "재봉사",
"SeamstressInfo": "플레이어 둘을 서로 꿰매세요",
"SeamstressInfoLong": "(중립):\\n재봉사는 변신 메뉴로 플레이어 2명을 서로 꿰맬 수 있습니다. 둘 중 한 명에게 상호작용이 발생하면 다른 한 명에게도 동일하게 적용됩니다. 한 명이 사망하거나 연결이 끊기거나 회의가 소집되면 연결이 끊어집니다. 꿰매진 플레이어는 누군가와 연결되었다는 사실은 알지만 상대가 누구인지는 모릅니다.\\n\\n크루원이 패배하면 승리합니다.",
"SerialKiller": "연쇄살인마",
"SerialKiller": "연쇄 살인마",
"SerialKillerInfo": "모두를 킬해 승리하세요!",
"SerialKillerInfoLong": "(중립):\\n연쇄살인마는 모든 플레이어를 킬하면 승리합니다.",
"SerialKillerInfoLong": "(중립):\\n연쇄 살인마는 모든 플레이어를 킬하면 승리합니다.",
"SerialKillerTimeLeft": "<#ffff00><#ffa500>{0}</color>초 안에 킬해야 합니다</color>",
"Sharpshooter": "명사수",
"SharpshooterInfo": "보이지 않는 상태에서도 정확히 킬하세요",
@@ -3317,7 +3317,7 @@
"Thanos.TimeStoneReducesSpeedBy": "시간의 스톤 이동 속도 감소량",
"Thief": "도둑",
"ThiefInfo": "킬형 직업을 훔치세요",
"ThiefInfoLong": "(중립):\\n도둑은 누군가를 킬해 그 직업을 빼앗아야 합니다.\\n<size=80%>- 임포스터/중립 킬형 직업 => 같은 직업이 됨\\n- 트릭스터 => 이중 첩자가 됨\\n- 매버릭 => 연쇄살인마가 됨\\n- 임포스터 협력형 직업 => 변절자가 됨\\n- 마녀회 직업(활성화된 경우) => 마녀회 일원이 됨</size>\\n그 밖의 직업을 킬하면 자살합니다.",
"ThiefInfoLong": "(중립):\\n도둑은 누군가를 킬해 그 직업을 빼앗아야 합니다.\\n<size=80%>- 임포스터/중립 킬형 직업 => 같은 직업이 됨\\n- 트릭스터 => 이중 첩자가 됨\\n- 매버릭 => 연쇄 살인마가 됨\\n- 임포스터 협력형 직업 => 변절자가 됨\\n- 마녀회 직업(활성화된 경우) => 마녀회 일원이 됨</size>\\n그 밖의 직업을 킬하면 자살합니다.",
"Thief.CanKillRound1": "첫 라운드에 킬 가능",
"Thief.CanStealCovenRoles": "<#7b3fbb>마녀회</color> 직업 강탈 가능",
"Tiger": "호랑이",
@@ -4224,7 +4224,7 @@
"WinnerRoleText.Ritualist": "의식술사 승리!",
"WinnerRoleText.RuthlessRomantic": "무자비한 로맨티스트 승리!",
"WinnerRoleText.Seeker": "술래 승리!",
"WinnerRoleText.SerialKiller": "연쇄살인마 승리!",
"WinnerRoleText.SerialKiller": "연쇄 살인마 승리!",
"WinnerRoleText.SoulHunter": "영혼 사냥꾼 승리!",
"WinnerRoleText.Specter": "스펙터 승리!",
"WinnerRoleText.Spiritcaller": "영혼 소환사 승리!",
@@ -8613,7 +8613,7 @@
"Achievement.Prankster.Description": "디스코 상태에서 변신하세요",
"Achievement.SeekAndHide": "찾고 숨기",
"Achievement.SeekAndHide.Description": "숨바꼭질 게임 모드에서 승리하세요",
"Achievement.SerialKiller": "연쇄살인마",
"Achievement.SerialKiller": "연쇄 살인마",
"Achievement.SerialKiller.Description": "FFA 게임 모드에서 모두를 죽이세요",
"Achievement.SimonSays": "사이먼 가라사대",
"Achievement.SimonSays.Description": "사이먼의 지시를 완료하세요",
@@ -9519,7 +9519,7 @@
"CommandDescription.Level": "자신의 레벨을 변경합니다",
"CommandDescription.MTHY": "회의를 소집하거나 현재 회의를 종료합니다",
"CommandDescription.MapPoll": "다음 맵을 정하는 투표를 시작합니다.",
"CommandDescription.Mark": "표식추적자로서 플레이어를 대상으로 지정합니다.",
"CommandDescription.Mark": "표식 추적자로서 플레이어를 대상으로 지정합니다.",
"CommandDescription.Medium": "영혼술사의 질문에 답합니다",
"CommandDescription.MessageWait": "시스템 메시지 사이의 대기 시간을 설정합니다",
"CommandDescription.Mute": "플레이어의 채팅을 차단합니다. 차단된 플레이어는 채팅할 수 없으며 게임 시작 시 모두 해제됩니다.",
@@ -9982,7 +9982,7 @@
"GuessKill": "<b>{0}</b>이(가) 추측당했습니다(또는 잘못 추측했습니다)",
"GuessKnighted": "죄송하지만 군주는 기사 작위를 받은 플레이어를 추측할 수 없습니다.",
"GuessLovers": "죄송하지만 호스트 설정에 따라 <color=#ff9ace>커플</color>을 추측할 수 없습니다.",
"GuessMarkseekerTarget": "표식추적자의 대상을 추측할 수 없습니다",
"GuessMarkseekerTarget": "표식 추적자의 대상을 추측할 수 없습니다",
"GuessMarshallTask": "임무를 모두 완료한 마셜을 추측할 수 없습니다.",
"GuessMayor": "공개된 시장을 추측하는 것은 불공평하므로 추측할 수 없습니다.",
"GuessMonarch": "기사 작위를 받았으므로 군주를 추측할 수 없습니다.",
+3 -3
View File
@@ -8219,8 +8219,8 @@
"DoomTag.PunishmentMode": "Наказание за убийство не цели",
"DoomTag.PunishSuicide": "Суицид",
"DoomTag.PunishLowerVision": "Уменьшение зрения",
"DoomTag.PunishFreeze": "Freeze",
"DoomTag.FreezeDuration": "Freeze Duration",
"DoomTag.PunishFreeze": "Заморозка",
"DoomTag.FreezeDuration": "Длительность заморозки",
"DoomTag.LowerVisionMultiplier": "Уменьшенное зрение",
"DoomTag.FrenzyPlayerCount": "Игроки ускоряются и получают уменьшенный откат когда игроков осталось",
"DoomTag.FrenzyKillCooldown": "Уменьшенный откат убийства",
@@ -8231,7 +8231,7 @@
"DoomTag.FrenzyModeHUD": "БЕЗУМИЕ",
"DoomTag.WrongKillSuicide": "<color=#ff0000>Неверная цель! Наказание - суицид.</color>",
"DoomTag.WrongKillLowerVision": "<color=#ff0000>Неверная цель! Наказание - зрение уменьшено.</color>",
"DoomTag.WrongKillFreeze": "<color=#ff0000>Wrong target! You are frozen.</color>",
"DoomTag.WrongKillFreeze": "<color=#ff0000>Неверная цель! Вы заморожены.</color>",
"SoloPVP": "Соло PVP",
"ModeSoloPVP": "Режим: Соло PVP",
"ModeDescribe.SoloPVP": "В режиме Соло PVP у всех есть определённое количество здоровья и каждый имеет кнопку убийства, чтобы атаковать. Убитый игрок временно становится призраком, затем возрождается. Выигрывает игрок с наибольшим количеством убийств. За убийство даётся бонус к здоровью/урону/регенерации.",
+4 -4
View File
@@ -248,7 +248,7 @@
"MessengerTitle": "<#ff0000>来自{0}的消息</color>",
"MimicMsgTitle": "★[ 宝箱怪 ]★",
"MorticianCheckTitle": "[★ 尸体检查 ★]",
"MurderKillTitle": "[★ 邪恶法官 ★]",
"MurderKillTitle": "[★ 邪恶检察官 ★]",
"Negotiator.Title": "<#ffff00>⚠ 谈判专家 ⚠</color>",
"NemesisRevengeTitle": "★[ 新闻 ]★",
"NeverComboListTitle": "<u>职业和附加职业永远不能被一起分配:</u>",
@@ -1799,13 +1799,13 @@
"Convict": "罪犯",
"ConvictInfo": "你的目标已不在人世,弃明投暗吧!",
"ConvictInfoLong": "(叛徒职业):\\n你现在为内鬼阵营工作.",
"Councillor": "邪恶法官",
"Councillor": "邪恶检察官",
"CouncillorInfo": "和你一起参与这场会议的..是活人..还是死人?",
"CouncillorInfoLong": "(内鬼职业):\\n作为邪恶法官,你可以在会议期间像检察官一样审判玩家。\\n\\n在会议期间杀人后,这些杀戮行为会显示为邪恶法官的审判。\\n\\n审判命令是<b>/cmd tl [玩家ID]</b>\\n你可以在玩家名称前看到玩家ID,或者使用<b>/cmd id</b>命令查看所有玩家的ID。",
"CouncillorInfoLong": "(内鬼职业):\\n作为邪恶检察官,你可以在会议期间像检察官一样审判玩家。\\n\\n在会议期间杀人后,这些杀戮行为会显示为邪恶法官的审判。\\n\\n审判命令是<b>/cmd tl [玩家ID]</b>\\n你可以在玩家名称前看到玩家ID,或者使用<b>/cmd id</b>命令查看所有玩家的ID。",
"CouncillorCanMurderImpostor": "可以谋杀<color=#ff1919>内鬼</color>",
"CouncillorCanMurderMadmate": "可以谋杀<color=#ff1919>叛徒</color>",
"CouncillorDead": " 你不能在死亡后谋杀。",
"CouncillorMakeEvilJudgeClear": "显示审判为邪恶法官击杀",
"CouncillorMakeEvilJudgeClear": "显示审判为邪恶检察官击杀",
"CouncillorMurderMax": "抱歉,你已经达到了最大的谋杀数量。",
"CouncillorMurderMaxMeeting": "你不能在这次会议上谋杀更多的玩家。 您已达到房主设定的限制。",
"Crewpostor": "船鬼",
@@ -6,7 +6,7 @@
## Create an array of regions you want to add/update. To create this array, go to https://impostor.github.io/Impostor/ and put the Regions array from the server file in here
# Setting type: String
# Default value: {\"CurrentRegionIdx\":0,\"Regions\":[]}
Regions = { \"CurrentRegionIdx\": 2, \"Regions\": [ { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"AOU-EU\", \"PingServer\": \"https://eu.allofus.dev\", \"Servers\": [ { \"Name\": \"http-1\", \"Ip\": \"https://eu.allofus.dev\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Niko-NA\", \"PingServer\": \"https://au-us.niko233.top\", \"Servers\": [ { \"Name\": \"http-1\", \"Ip\": \"https://au-us.niko233.top\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Niko-AS\", \"PingServer\": \"https://au-as.niko233.top\", \"Servers\": [ { \"Name\": \"http-1\", \"Ip\": \"https://au-as.niko233.top\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Niko-EU\", \"PingServer\": \"https://au-eu.niko233.top\", \"Servers\": [ { \"Name\": \"http-1\", \"Ip\": \"https://au-eu.niko233.top\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Modded EU (MEU)\", \"PingServer\": \"https://au-eu.duikbo.at\", \"Servers\": [ { \"Name\": \"Http-1\", \"Ip\": \"https://au-eu.duikbo.at\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Modded NA (MNA)\", \"PingServer\": \"https://aumods.org\", \"Servers\": [ { \"Name\": \"Http-1\", \"Ip\": \"https://aumods.org\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Modded Asia (MAS)\", \"PingServer\": \"https://au-as.duikbo.at\", \"Servers\": [ { \"Name\": \"Http-1\", \"Ip\": \"https://au-as.duikbo.at\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 } ] }
Regions = { \"CurrentRegionIdx\": 0, \"Regions\": [ { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Niko-NA\", \"PingServer\": \"https://au-us.niko233.top\", \"Servers\": [ { \"Name\": \"http-1\", \"Ip\": \"https://au-us.niko233.top\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Niko-AS\", \"PingServer\": \"https://au-as.niko233.top\", \"Servers\": [ { \"Name\": \"http-1\", \"Ip\": \"https://au-as.niko233.top\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Niko-EU\", \"PingServer\": \"https://au-eu.niko233.top\", \"Servers\": [ { \"Name\": \"http-1\", \"Ip\": \"https://au-eu.niko233.top\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"AOU-EU\", \"PingServer\": \"https://eu.allofus.dev\", \"Servers\": [ { \"Name\": \"http-1\", \"Ip\": \"https://eu.allofus.dev\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Modded EU (MEU)\", \"PingServer\": \"https://au-eu.duikbo.at\", \"Servers\": [ { \"Name\": \"Http-1\", \"Ip\": \"https://au-eu.duikbo.at\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Modded NA (MNA)\", \"PingServer\": \"https://aumods.org\", \"Servers\": [ { \"Name\": \"Http-1\", \"Ip\": \"https://aumods.org\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Modded Asia (MAS)\", \"PingServer\": \"https://au-as.duikbo.at\", \"Servers\": [ { \"Name\": \"Http-1\", \"Ip\": \"https://au-as.duikbo.at\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 } ] }
## Comma-seperated list of region names that should be removed.
# Setting type: String
@@ -6,7 +6,7 @@
## Create an array of regions you want to add/update. To create this array, go to https://impostor.github.io/Impostor/ and put the Regions array from the server file in here
# Setting type: String
# Default value: {\"CurrentRegionIdx\":0,\"Regions\":[]}
Regions = { \"CurrentRegionIdx\": 2, \"Regions\": [ { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Niko-NA\", \"PingServer\": \"https://au-us.niko233.top\", \"Servers\": [ { \"Name\": \"http-1\", \"Ip\": \"https://au-us.niko233.top\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Niko-AS\", \"PingServer\": \"https://au-as.niko233.top\", \"Servers\": [ { \"Name\": \"http-1\", \"Ip\": \"https://au-as.niko233.top\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Niko-EU\", \"PingServer\": \"https://au-eu.niko233.top\", \"Servers\": [ { \"Name\": \"http-1\", \"Ip\": \"https://au-eu.niko233.top\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Modded EU (MEU)\", \"PingServer\": \"https://au-eu.duikbo.at\", \"Servers\": [ { \"Name\": \"Http-1\", \"Ip\": \"https://au-eu.duikbo.at\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Modded NA (MNA)\", \"PingServer\": \"https://aumods.org\", \"Servers\": [ { \"Name\": \"Http-1\", \"Ip\": \"https://aumods.org\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Modded Asia (MAS)\", \"PingServer\": \"https://au-as.duikbo.at\", \"Servers\": [ { \"Name\": \"Http-1\", \"Ip\": \"https://au-as.duikbo.at\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 } ] }
Regions = { \"CurrentRegionIdx\": 0, \"Regions\": [ { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Niko-NA\", \"PingServer\": \"https://au-us.niko233.top\", \"Servers\": [ { \"Name\": \"http-1\", \"Ip\": \"https://au-us.niko233.top\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Niko-AS\", \"PingServer\": \"https://au-as.niko233.top\", \"Servers\": [ { \"Name\": \"http-1\", \"Ip\": \"https://au-as.niko233.top\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Niko-EU\", \"PingServer\": \"https://au-eu.niko233.top\", \"Servers\": [ { \"Name\": \"http-1\", \"Ip\": \"https://au-eu.niko233.top\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"AOU-EU\", \"PingServer\": \"https://eu.allofus.dev\", \"Servers\": [ { \"Name\": \"http-1\", \"Ip\": \"https://eu.allofus.dev\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Modded EU (MEU)\", \"PingServer\": \"https://au-eu.duikbo.at\", \"Servers\": [ { \"Name\": \"Http-1\", \"Ip\": \"https://au-eu.duikbo.at\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Modded NA (MNA)\", \"PingServer\": \"https://aumods.org\", \"Servers\": [ { \"Name\": \"Http-1\", \"Ip\": \"https://aumods.org\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Modded Asia (MAS)\", \"PingServer\": \"https://au-as.duikbo.at\", \"Servers\": [ { \"Name\": \"Http-1\", \"Ip\": \"https://au-as.duikbo.at\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 } ] }
## Comma-seperated list of region names that should be removed.
# Setting type: String