static void Postfix(PlayerControl __instance, GameData.PlayerInfo CAKODNGLPDF) { System.Console.WriteLine("Report Body!"); var matches = killedPlayers.Where(x => x.PlayerId == CAKODNGLPDF.PlayerId).ToArray(); DeadPlayer killer = null; if (matches.Length > 0) { killer = matches[0]; } if (killer == null) { return; } var isMedicAlive = __instance.isPlayerRole("Medic"); var areReportsEnabled = Main.Config.showReport; if (!isMedicAlive || !areReportsEnabled) { return; } var isUserMedic = PlayerControl.LocalPlayer.isPlayerRole("Medic"); if (!isUserMedic) { return; } var br = new BodyReport { Killer = PlayerTools.getPlayerById(killer.KillerId), Reporter = __instance, KillAge = (float)(DateTime.UtcNow - killer.KillTime).TotalMilliseconds, DeathReason = killer.DeathReason }; var reportMsg = BodyReport.ParseBodyReport(br); if (string.IsNullOrWhiteSpace(reportMsg)) { return; } if (AmongUsClient.Instance.AmClient && DestroyableSingleton <HudManager> .Instance) { // Send the message through chat only visible to the medic DestroyableSingleton <HudManager> .Instance.Chat.AddChat(PlayerControl.LocalPlayer, reportMsg); } if (reportMsg.IndexOf("who", StringComparison.OrdinalIgnoreCase) >= 0) { // Really did not understand this DestroyableSingleton <Telemetry> .Instance.SendWho(); } }
public override void Handle(PlayerControl innerNetObject, OfficerKillData data) { var attacker = PlayerTools.getPlayerById(data.Attacker); var target = PlayerTools.getPlayerById(data.Target); attacker.MurderPlayer(target); if (target.isPlayerImmortal()) { BreakShield(false); } }
static void Postfix(PlayerControl __instance, GameData.PlayerInfo CAKODNGLPDF) { System.Console.WriteLine("Report Body!"); DeadPlayer[] matches = killedPlayers.Where(x => x.PlayerId == CAKODNGLPDF.PlayerId).ToArray(); DeadPlayer killer = null; if (matches.Length > 0) { killer = matches[0]; } if (killer != null) { // If there is a Medic alive and Medic reported and reports are enabled if (__instance.isPlayerRole("Medic") && Main.Config.showReport) { // If the user is the medic if (PlayerControl.LocalPlayer.isPlayerRole("Medic")) { // Create Body Report BodyReport br = new BodyReport(); br.Killer = PlayerTools.getPlayerById(killer.KillerId); br.Reporter = __instance; br.KillAge = (float)(DateTime.UtcNow - killer.KillTime).TotalMilliseconds; br.DeathReason = killer.DeathReason; // Generate message var reportMsg = BodyReport.ParseBodyReport(br); // If message is not empty if (!string.IsNullOrWhiteSpace(reportMsg)) { if (AmongUsClient.Instance.AmClient && DestroyableSingleton <HudManager> .Instance) { // Send the message through chat only visible to the medic DestroyableSingleton <HudManager> .Instance.Chat.AddChat(PlayerControl.LocalPlayer, reportMsg); } if (reportMsg.IndexOf("who", StringComparison.OrdinalIgnoreCase) >= 0) { // Really did not understand this DestroyableSingleton <Telemetry> .Instance.SendWho(); } } } } } }
static void Postfix(PlayerControl __instance, GameData.PlayerInfo __0) { System.Console.WriteLine("Report Body!"); byte reporterId = __instance.PlayerId; DeadPlayer killer = killedPlayers.Where(x => x.PlayerId == __0.PlayerId).FirstOrDefault(); if (killer != null) { // If there is a Medic alive and Medic reported and reports are enabled if (PlayerControl.LocalPlayer.isPlayerRole(Role.Medic) && Main.Config.showReport) { // If the user is the medic if (PlayerControl.LocalPlayer.isPlayerRole(Role.Medic)) { // Create Body Report BodyReport br = new BodyReport(); br.Killer = PlayerTools.getPlayerById(killer.KillerId); br.Reporter = br.Killer = PlayerTools.getPlayerById(killer.KillerId); br.KillAge = (float)(DateTime.UtcNow - killer.KillTime).TotalMilliseconds; br.DeathReason = killer.DeathReason; // Generate message var reportMsg = BodyReport.ParseBodyReport(br); // If message is not empty if (!string.IsNullOrWhiteSpace(reportMsg)) { if (AmongUsClient.Instance.AmClient && DestroyableSingleton <HudManager> .Instance) { // Send the message through chat only visible to the medic DestroyableSingleton <HudManager> .Instance.Chat.AddChat(PlayerControl.LocalPlayer, reportMsg); } } } } } }
public override void Handle(PlayerControl innerNetObject, SetRoleData role) { PlayerTools.getPlayerById(role.Player).getModdedControl().Role = role.Role; }