public void EMP() { if (EmpCooldown.AddMilliseconds(TimeManager.EMP_COOLDOWN) < DateTime.Now || Player.Storage.GodMode) { Player.SendCooldown(ServerCommands.EMP_COOLDOWN, TimeManager.EMP_COOLDOWN); EmpCooldown = DateTime.Now; Player.DeactiveDCR_250(); Player.DeactiveSLM_01(); string empPacket = "0|n|EMP|" + Player.Id; Player.SendPacket(empPacket); Player.SendPacketToInRangePlayers(empPacket); foreach (var otherPlayers in Player.Spacemap.Characters.Values) { if (otherPlayers is Player otherPlayer && otherPlayer.Selected == Player) { string empMessagePacket = "0|A|STM|msg_own_targeting_harmed"; otherPlayer.SendPacket(empMessagePacket); otherPlayer.Selected = null; otherPlayer.DisableAttack(otherPlayer.SettingsManager.SelectedLaser); otherPlayer.SendCommand(ShipDeselectionCommand.write()); otherPlayer.SendPacket("0|UI|MM|NOISE"); } } foreach (var otherPlayers in Player.InRangeCharacters.Values) { if (otherPlayers is Player otherPlayer) { if (otherPlayer.Position.DistanceTo(Player.Position) > 700) { return; } if (Player.RankId == 21) { otherPlayer.AddVisualModifier(new VisualModifierCommand(otherPlayer.Id, VisualModifierCommand.MIRRORED_CONTROLS, 0, true)); } if (otherPlayer.Invisible) { otherPlayer.CpuManager.DisableCloak(); } } } } }
public void Deselection(bool emp = false) { Selected = null; if (this is Player player) { player.SendCommand(ShipDeselectionCommand.write()); player.DisableAttack(player.Settings.InGameSettings.selectedLaser); player.Group?.UpdateTarget(player, new List <command_i3O> { new GroupPlayerTargetModule(new GroupPlayerShipModule(GroupPlayerShipModule.NONE), "", new GroupPlayerInformationsModule(0, 0, 0, 0, 0, 0)) }); if (emp) { player.SendPacket("0|A|STM|msg_own_targeting_harmed"); player.SendPacket("0|UI|MM|NOISE|1"); } } else if (this is Npc npc) { npc.Attacking = false; npc.NpcAI.AIOption = NpcAIOption.SEARCH_FOR_ENEMIES; } }