// Timer Function private void timerPort() { if (teleportingPlayers.Count > 0) { for (int i = teleportingPlayers.Count - 1; i >= 0; i--) { LustyTeleportings teleportingPlayer = teleportingPlayers[i]; BasePlayer player = findPlayer(teleportingPlayer.userid); if (checkTeleport(player, teleportingPlayer)) { if (DateTime.UtcNow > teleportingPlayer.starttime.AddSeconds(teleportDuration)) { if (teleportingPlayer.back) { LustyPlayers lustyPlayer = lustyPlayers.Find(r => r.userid == player.userID); lustyPlayers.Remove(lustyPlayer); savePlayers(); } else { if (lustyPlayers.Count > 0) { LustyPlayers lustyPlayerCheck = lustyPlayers.Find(r => r.userid == player.userID); if (lustyPlayerCheck == null) { addPlayer(player); } } else { addPlayer(player); } } Vector3 destination = new Vector3(teleportingPlayer.lustyPort.x, teleportingPlayer.lustyPort.y, teleportingPlayer.lustyPort.z); TeleportPlayerPosition(player, destination); teleportingPlayers.RemoveAt(i); } else { TimeSpan timeSpan = teleportingPlayer.starttime.AddSeconds(teleportDuration).Subtract(DateTime.UtcNow); int time = Convert.ToInt16(Math.Ceiling(timeSpan.TotalSeconds)); if (time > 0 && time < teleportDuration) { playerMsg(player, "Teleporting in " + time.ToString()); } } } else { teleportingPlayers.RemoveAt(i); playerMsg(player, "Movement detected, aborting teleport."); } } } }
private LustyTeleportings findTeleportingPlayer(ulong userid) { LustyTeleportings teleportingPlayer = teleportingPlayers.Find(r => r.userid == userid); if (teleportingPlayer != null) { return teleportingPlayer; } return null; }
private void startPort(BasePlayer player, LustyPorts lustyPort, bool back) { LustyTeleportings tpPlayer = new LustyTeleportings(); tpPlayer.starttime = DateTime.UtcNow; tpPlayer.userid = player.userID; tpPlayer.x = player.transform.position.x; tpPlayer.y = player.transform.position.y; tpPlayer.z = player.transform.position.z; tpPlayer.lustyPort = lustyPort; tpPlayer.back = back; teleportingPlayers.Add(tpPlayer); playerMsg(player, "Teleport initiated, you will be teleported in <color=#00ff00ff>" + teleportDuration + "</color> seconds, remain still!"); }
private bool checkTeleport(BasePlayer player, LustyTeleportings teleportingPlayer) { try { if (Convert.ToSingle(player.transform.position.x) >= (teleportingPlayer.x - 0.2) && Convert.ToSingle(player.transform.position.x) <= (teleportingPlayer.x + 0.2)) { if (Convert.ToSingle(player.transform.position.y) >= (teleportingPlayer.y - 0.2) && Convert.ToSingle(player.transform.position.y) <= (teleportingPlayer.y + 0.2)) { if (Convert.ToSingle(player.transform.position.z) >= (teleportingPlayer.z - 0.2) && Convert.ToSingle(player.transform.position.z) <= (teleportingPlayer.z + 0.2)) { return true; } } } return false; } catch { return false; } }