public void OnCommandTyped(string cmd, string[] args) { Human hl = GetLocalHuman(); if (hl == null) { loader.LogLine("[cp] Could not get Human object"); return; } else if (!hl.player.host.isLocal) { loader.LogLine("[cp] Not the server host, may not run cp commands"); return; } switch (cmd) { case "cp-toggle": if (args.Length == 0) { cpTriggers = !cpTriggers; } else if (!bool.TryParse(args[0].ToLower(), out cpTriggers)) { loader.LogLine("[cp-toggle] Invalid boolean"); return; } ToggleCheckpointTriggers(cpTriggers); loader.Log(string.Format("[cp-toggle] {0} checkpoint triggers", cpTriggers ? "Enabled" : "Disabled")); break; case "cp-state": if (args.Length == 0 || !bool.TryParse(args[0], out bool state)) { loader.LogLine("[cp-set] Invalid boolean input"); return; } Human[] toSet = SelectHumans((args.Length < 2) ? "all" : args[1]).ToArray(); if (toSet.Length == 0) { loader.LogLine("[cp-set] Cannot find player given"); return; } foreach (var h in toSet) { var spndata = h.GetComponent <SpawnpointData>(); if (spndata == null) { h.gameObject.AddComponent <SpawnpointData>(); spndata = h.GetComponent <SpawnpointData>(); } spndata.enabled = state; } loader.LogLine(string.Format("[cp-reset] {0} custom checkpoints for target", state? "Enabled" : "Disabled")); break; case "cp-set": toSet = SelectHumans((args.Length == 0) ? "" : args[0]).ToArray(); if (toSet.Length == 0) { loader.LogLine("[cp-set] Cannot find player given"); return; } foreach (var h in toSet) { var spndata = h.GetComponent <SpawnpointData>(); if (spndata == null) { h.gameObject.AddComponent <SpawnpointData>(); spndata = h.GetComponent <SpawnpointData>(); } spndata.customSpawn = true; spndata.spawnpoint = hl.transform.position; } loader.LogLine("[cp-set] Set spawnpoint to " + hl.transform.position.ToString()); break; case "cp-reset": toSet = SelectHumans((args.Length == 0) ? "" : args[0]).ToArray(); if (toSet.Length == 0) { loader.LogLine("[cp-reset] Cannot find player given"); return; } foreach (var h in toSet) { var spndata = h.GetComponent <SpawnpointData>(); if (spndata == null) { h.gameObject.AddComponent <SpawnpointData>(); spndata = h.GetComponent <SpawnpointData>(); } spndata.customSpawn = false; } loader.LogLine("[cp-reset] Removed custom spawn "); break; } }
public void OnCommandTyped(string cmd, string[] args) { Human hl = GetLocalHuman(); if (hl == null) { loader.LogLine("[ht] Could not get local Human object"); return; } else if (!hl.player.host.isLocal) { loader.LogLine("[ht] Not the server host, may not run ht commands"); return; } switch (cmd) { case "ht-grav": Vector3 tgtGrav = new Vector3(0, -9.8f, 0); if (args.Length == 1 && float.TryParse(args[0].ToLower(), out float yVal)) { tgtGrav = new Vector3(0, yVal, 0); } else if (args.Length == 3) { for (int i = 0; i < 3; i++) { if (!float.TryParse(args[i].ToLower(), out float component)) { loader.LogLine("[ht-grav] Invalid input"); return; } tgtGrav[i] = component; } } else if (args.Length != 0) { loader.LogLine("[ht-grav] Invalid input"); return; } Physics.gravity = tgtGrav; loader.LogLine(string.Format("[ht-grav] Set gravity to ({0}, {1}, {2})", tgtGrav.x, tgtGrav.y, tgtGrav.z)); break; case "ht-fly": if (args.Length == 0) { fly = !fly; } else if (!bool.TryParse(args[0].ToLower(), out fly)) { loader.LogLine("[ht-fly] Invalid boolean"); return; } foreach (Rigidbody r in hl.rigidbodies) { r.useGravity = !fly; } loader.LogLine("[ht-fly] Set fly mode to " + fly.ToString()); break; case "ht-flyspd": if (args.Length > 0) { if (!float.TryParse(args[0].ToLower(), out flySpeed)) { loader.LogLine("[ht-flyspd] Invalid float"); return; } } else { flySpeed = 10f; } loader.LogLine("[ht-flyspd] Set fly speed to " + flySpeed.ToString()); break; case "ht-flyacc": if (args.Length > 0) { if (!float.TryParse(args[0].ToLower(), out flyMaxAcc)) { loader.LogLine("[ht-flyacc] Invalid float"); return; } } else { flyMaxAcc = 15f; } loader.LogLine("[ht-flyacc] Set fly acc. to " + flyMaxAcc.ToString()); break; } }