public override void Execute(InRoomChat irc, string[] args) { if (args.Length < 1 || !int.TryParse(args[0], out int id)) { return; } PhotonPlayer player = PhotonPlayer.Find(id); if (player == null) { return; } if (player.IsTitan) { TITAN titan = player.GetTitan(); if (titan == null || titan.hasDie) { return; } titan.photonView.RPC("titanGetHit", player, titan.photonView.viewID, RCSettings.MinimumDamage > 0 ? RCSettings.MinimumDamage : 10); } else { HERO hero = player.GetHero(); if (hero == null || hero.HasDied()) { return; } hero.photonView.RPC("netDie", PhotonTargets.All, hero.transform.position, false, -1, "[FF0000]Server", true); } }
public override void Execute(InRoomChat irc, string[] args) { if (FengGameManagerMKII.Level.Mode == GameMode.Racing) { irc.AddLine("Teleport can NOT be used while in Racing.".AsColor("FF0000")); return; } if (args.Length > 3) // Player(s) -> Coordinate { if (!float.TryParse(args[1], out float x) || !float.TryParse(args[2], out float y) || !float.TryParse(args[3], out float z)) { return; } if (args[0].Equals("all", StringComparison.OrdinalIgnoreCase)) { foreach (PhotonPlayer player in PhotonNetwork.playerList) { Photon.MonoBehaviour mb = player.IsTitan ? (Photon.MonoBehaviour)player.GetTitan() : (Photon.MonoBehaviour)player.GetHero(); if (mb == null) { continue; } mb.photonView.RPC("moveToRPC", player, x, y, z); } GameHelper.Broadcast($"Teleported everyone to {x:F3} / {y:F3} / {z:F3}"); } else if (int.TryParse(args[0], out int id)) { PhotonPlayer player = PhotonPlayer.Find(id); if (player == null) { return; } Photon.MonoBehaviour mb = player.IsTitan ? (Photon.MonoBehaviour)player.GetTitan() : (Photon.MonoBehaviour)player.GetHero(); if (mb == null) { return; } mb.photonView.RPC("moveToRPC", player, x, y, z); FengGameManagerMKII.Instance.photonView.RPC("Chat", player, $"Teleported you to {x:F3} {y:F3} {z:F3}", string.Empty); } } else if (args.Length > 2) // You -> Coordinate { if (!float.TryParse(args[0], out float x) || !float.TryParse(args[1], out float y) || !float.TryParse(args[2], out float z)) { return; } Photon.MonoBehaviour mb = PhotonNetwork.player.IsTitan ? (Photon.MonoBehaviour)PhotonNetwork.player.GetTitan() : (Photon.MonoBehaviour)PhotonNetwork.player.GetHero(); if (mb == null) { return; } mb.transform.position = new UnityEngine.Vector3(x, y, z); irc.AddLine($"Teleported you to {x:F3} {y:F3} {z:F3}"); } else if (args.Length > 1) // Player(s) -> Target { if (!int.TryParse(args[1], out int targetId)) { return; } PhotonPlayer target = PhotonPlayer.Find(targetId); if (target == null) { return; } Photon.MonoBehaviour targetMb = target.IsTitan ? (Photon.MonoBehaviour)target.GetTitan() : (Photon.MonoBehaviour)target.GetHero(); if (targetMb == null) { return; } if (args[0].Equals("all", StringComparison.OrdinalIgnoreCase)) { foreach (PhotonPlayer player in PhotonNetwork.playerList) { Photon.MonoBehaviour mb = player.IsTitan ? (Photon.MonoBehaviour)player.GetTitan() : (Photon.MonoBehaviour)player.GetHero(); if (mb == null) { continue; } mb.photonView.RPC("moveToRPC", player, targetMb.transform.position.x, targetMb.transform.position.y, targetMb.transform.position.z); } GameHelper.Broadcast($"Teleported everyone to #{targetId}"); } else if (int.TryParse(args[0], out int id)) { PhotonPlayer player = PhotonPlayer.Find(id); if (player == null) { return; } Photon.MonoBehaviour mb = player.IsTitan ? (Photon.MonoBehaviour)player.GetTitan() : (Photon.MonoBehaviour)player.GetHero(); if (mb == null) { return; } mb.photonView.RPC("moveToRPC", player, targetMb.transform.position.x, targetMb.transform.position.y, targetMb.transform.position.z); FengGameManagerMKII.Instance.photonView.RPC("Chat", player, $"Teleported you to #{targetId}", string.Empty); } } else if (args.Length > 0)// All -> You or You -> Target { Photon.MonoBehaviour myMb = PhotonNetwork.player.IsTitan ? (Photon.MonoBehaviour)PhotonNetwork.player.GetTitan() : (Photon.MonoBehaviour)PhotonNetwork.player.GetHero(); if (myMb == null) { return; } if (args[0].Equals("all", StringComparison.OrdinalIgnoreCase)) { foreach (PhotonPlayer player in PhotonNetwork.playerList) { Photon.MonoBehaviour mb = player.IsTitan ? (Photon.MonoBehaviour)player.GetTitan() : (Photon.MonoBehaviour)player.GetHero(); if (mb == null) { continue; } mb.photonView.RPC("moveToRPC", player, myMb.transform.position.x, myMb.transform.position.y, myMb.transform.position.z); } GameHelper.Broadcast("Teleported everyone to MasterClient!"); } else if (int.TryParse(args[0], out int id)) { PhotonPlayer player = PhotonPlayer.Find(id); if (player == null) { return; } Photon.MonoBehaviour mb = player.IsTitan ? (Photon.MonoBehaviour)player.GetTitan() : (Photon.MonoBehaviour)player.GetHero(); if (mb == null) { return; } myMb.transform.position = mb.transform.position; irc.AddLine($"Teleported you to #{id}"); } } }
public override void Execute(InRoomChat irc, string[] args) { if (args.Length > 0) { if (!int.TryParse(args[0], out int id)) { return; } PhotonPlayer player = PhotonPlayer.Find(id); if (player == null || player.IsDead) { return; } if (player.IsTitan) { Camera.main.GetComponent <IN_GAME_MAIN_CAMERA>().SetMainObjectTitan(player.GetTitan().gameObject); } else { Camera.main.GetComponent <IN_GAME_MAIN_CAMERA>().SetMainObject(player.GetHero().gameObject); } Camera.main.GetComponent <IN_GAME_MAIN_CAMERA>().SetSpectorMode(false); irc.AddLine($"Now spectating #{id}.".AsColor("FFCC00")); } else { if (((int)FengGameManagerMKII.Settings[0xf5]) == 0) { FengGameManagerMKII.Settings[0xf5] = 1; FengGameManagerMKII.Instance.EnterSpecMode(true); irc.AddLine("You entered spectator mode.".AsColor("FFCC00")); } else { FengGameManagerMKII.Settings[0xf5] = 0; FengGameManagerMKII.Instance.EnterSpecMode(false); irc.AddLine("You left spectator mode.".AsColor("FFCC00")); } } }