Compare commits

...
3 Commits
Author SHA1 Message Date
Gurge44 8ff22da67f Again 2023-10-13 14:30:20 +02:00
Gurge44 25d8f47621 Fix bug 2023-10-13 14:28:55 +02:00
Gurge44 4306ca8ec3 hotfix 2023-10-11 21:07:47 +02:00
3 changed files with 20 additions and 13 deletions

No files matched your search

+8 -3
View File
@@ -142,7 +142,7 @@ public enum Sounds
[HarmonyPatch(typeof(PlayerControl), nameof(PlayerControl.HandleRpc))]
internal class RPCHandlerPatch
{
public static int ReportDeadBodyRPCs = 0;
public static Dictionary<byte, int> ReportDeadBodyRPCs = new();
public static bool TrustedRpc(byte id)
=> (CustomRPC)id is CustomRPC.VersionCheck or CustomRPC.RequestRetryVersionCheck or CustomRPC.AntiBlackout or CustomRPC.Judge or CustomRPC.SetNiceSwapperVotes or CustomRPC.MeetingKill or CustomRPC.Guess or CustomRPC.MafiaRevenge or CustomRPC.RetributionistRevenge;
public static bool Prefix(PlayerControl __instance, [HarmonyArgument(0)] byte callId, [HarmonyArgument(1)] MessageReader reader)
@@ -151,7 +151,12 @@ internal class RPCHandlerPatch
MessageReader subReader = MessageReader.Get(reader);
if (EAC.ReceiveRpc(__instance, callId, reader)) return false;
Logger.Info($"{__instance?.Data?.PlayerId}({(__instance?.Data?.PlayerId == 0 ? "Host" : __instance?.Data?.PlayerName)}):{callId}({RPC.GetRpcName(callId)})", "ReceiveRPC");
if (callId == 11) ReportDeadBodyRPCs++;
if (callId == 11)
{
if (!ReportDeadBodyRPCs.ContainsKey(__instance.PlayerId)) ReportDeadBodyRPCs.TryAdd(__instance.PlayerId, 0);
ReportDeadBodyRPCs[__instance.PlayerId]++;
}
switch (rpcType)
{
case RpcCalls.SetName: //SetNameRPC
@@ -191,7 +196,7 @@ internal class RPCHandlerPatch
}
return false;
}
if (ReportDeadBodyRPCs > 4)
if (ReportDeadBodyRPCs[__instance.PlayerId] > 4)
{
AmongUsClient.Instance.KickPlayer(__instance.GetClientId(), true);
Logger.SendInGame(string.Format(GetString("Warning.ReportDeadBodyHack"), __instance?.Data?.PlayerName));
+10 -10
View File
@@ -502,23 +502,23 @@ internal class ChatCommands
{
Main.GuessNumber[PlayerControl.LocalPlayer.PlayerId][0] = -1;
Main.GuessNumber[PlayerControl.LocalPlayer.PlayerId][1] = 7;
targetNumber = Main.GuessNumber[PlayerControl.LocalPlayer.PlayerId][0];
Utils.SendMessage(String.Format(GetString("GNoLost"), targetNumber), PlayerControl.LocalPlayer.PlayerId);
//targetNumber = Main.GuessNumber[PlayerControl.LocalPlayer.PlayerId][0];
Utils.SendMessage(string.Format(GetString("GNoLost"), targetNumber), PlayerControl.LocalPlayer.PlayerId);
break;
}
else if (guessedNo < targetNumber)
{
Utils.SendMessage(String.Format(GetString("GNoLow"), Main.GuessNumber[PlayerControl.LocalPlayer.PlayerId][1]), PlayerControl.LocalPlayer.PlayerId);
Utils.SendMessage(string.Format(GetString("GNoLow"), Main.GuessNumber[PlayerControl.LocalPlayer.PlayerId][1]), PlayerControl.LocalPlayer.PlayerId);
break;
}
else if (guessedNo > targetNumber)
{
Utils.SendMessage(String.Format(GetString("GNoHigh"), Main.GuessNumber[PlayerControl.LocalPlayer.PlayerId][1]), PlayerControl.LocalPlayer.PlayerId);
Utils.SendMessage(string.Format(GetString("GNoHigh"), Main.GuessNumber[PlayerControl.LocalPlayer.PlayerId][1]), PlayerControl.LocalPlayer.PlayerId);
break;
}
else
{
Utils.SendMessage(String.Format(GetString("GNoWon"), Main.GuessNumber[PlayerControl.LocalPlayer.PlayerId][1]), PlayerControl.LocalPlayer.PlayerId);
Utils.SendMessage(string.Format(GetString("GNoWon"), Main.GuessNumber[PlayerControl.LocalPlayer.PlayerId][1]), PlayerControl.LocalPlayer.PlayerId);
break;
}
@@ -1037,23 +1037,23 @@ internal class ChatCommands
{
Main.GuessNumber[player.PlayerId][0] = -1;
Main.GuessNumber[player.PlayerId][1] = 7;
targetNumber = Main.GuessNumber[player.PlayerId][0];
Utils.SendMessage(String.Format(GetString("GNoLost"), targetNumber), player.PlayerId);
//targetNumber = Main.GuessNumber[player.PlayerId][0];
Utils.SendMessage(string.Format(GetString("GNoLost"), targetNumber), player.PlayerId);
break;
}
else if (guessedNo < targetNumber)
{
Utils.SendMessage(String.Format(GetString("GNoLow"), Main.GuessNumber[player.PlayerId][1]), player.PlayerId);
Utils.SendMessage(string.Format(GetString("GNoLow"), Main.GuessNumber[player.PlayerId][1]), player.PlayerId);
break;
}
else if (guessedNo > targetNumber)
{
Utils.SendMessage(String.Format(GetString("GNoHigh"), Main.GuessNumber[player.PlayerId][1]), player.PlayerId);
Utils.SendMessage(string.Format(GetString("GNoHigh"), Main.GuessNumber[player.PlayerId][1]), player.PlayerId);
break;
}
else
{
Utils.SendMessage(String.Format(GetString("GNoWon"), 7 - Main.GuessNumber[player.PlayerId][1]), player.PlayerId);
Utils.SendMessage(string.Format(GetString("GNoWon"), 7 - Main.GuessNumber[player.PlayerId][1]), player.PlayerId);
break;
}
}
+2
View File
@@ -1900,6 +1900,8 @@ class FixedUpdatePatch
LocateArrow.OnFixedUpdate(player);
}
if (!lowLoad && RPCHandlerPatch.ReportDeadBodyRPCs.ContainsKey(player.PlayerId)) RPCHandlerPatch.ReportDeadBodyRPCs.Remove(player.PlayerId);
if (AmongUsClient.Instance.AmHost)
{//実行クライアントがホストの場合のみ実行
if (GameStates.IsLobby && ((ModUpdater.hasUpdate && ModUpdater.forceUpdate) || ModUpdater.isBroken || !Main.AllowPublicRoom) && AmongUsClient.Instance.IsGamePublic)