Пример #1
0
        // 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.");
                    }
                }
            }
        }
Пример #2
0
 private LustyTeleportings findTeleportingPlayer(ulong userid)
 {
     LustyTeleportings teleportingPlayer = teleportingPlayers.Find(r => r.userid == userid);
     if (teleportingPlayer != null)
     {
         return teleportingPlayer;
     }
     return null;
 }
Пример #3
0
 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!");
 }
Пример #4
0
 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;
     }
 }