public static void FriendHome(ClientInfo _cInfo)
        {
            DateTime _dt;

            Invite.TryGetValue(_cInfo.entityId, out _dt);
            {
                TimeSpan varTime           = DateTime.Now - _dt;
                double   fractionalMinutes = varTime.TotalMinutes;
                int      _timepassed       = (int)fractionalMinutes;
                if (_timepassed <= 2)
                {
                    string _pos;
                    FriendPosition.TryGetValue(_cInfo.entityId, out _pos);
                    {
                        int      x, y, z;
                        string[] _cords = _pos.Split(',');
                        int.TryParse(_cords[0], out x);
                        int.TryParse(_cords[1], out y);
                        int.TryParse(_cords[2], out z);
                        Players.NoFlight.Add(_cInfo.entityId);
                        TeleportDelay.TeleportQue(_cInfo, x, y, z);
                        Invite.Remove(_cInfo.entityId);
                        FriendPosition.Remove(_cInfo.entityId);
                        _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1} sending you to your friend.[-]", Config.Chat_Response_Color, _cInfo.playerName), Config.Server_Response_Name, false, "ServerTools", false));
                    }
                }
                else
                {
                    Invite.Remove(_cInfo.entityId);
                    FriendPosition.Remove(_cInfo.entityId);
                    _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1} you have run out of time to accept your friends invitation.[-]", Config.Chat_Response_Color, _cInfo.playerName), Config.Server_Response_Name, false, "ServerTools", false));
                }
            }
        }
예제 #2
0
 public static void Exec(ClientInfo _cInfo, string _playerName)
 {
     if (SetLobby.Lobby_Position != "0,0,0")
     {
         int x, y, z;
         if (Return)
         {
             EntityPlayer _player   = GameManager.Instance.World.Players.dict[_cInfo.entityId];
             Vector3      _position = _player.GetPosition();
             x = (int)_position.x;
             y = (int)_position.y;
             z = (int)_position.z;
             string _pposition = x + "," + y + "," + z;
             LobbyPlayers.Add(_cInfo.entityId);
             PersistentContainer.Instance.Players[_cInfo.playerId, true].LobbyReturn = _pposition;
             PersistentContainer.Instance.Save();
             string _phrase552;
             if (!Phrases.Dict.TryGetValue(552, out _phrase552))
             {
                 _phrase552 = "{PlayerName} you can go back by typing /return when you are ready to leave the lobby.";
             }
             _phrase552 = _phrase552.Replace("{PlayerName}", _playerName);
             _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1}[-]", Config.Chat_Response_Color, _phrase552), Config.Server_Response_Name, false, "ServerTools", false));
         }
         string[] _cords = SetLobby.Lobby_Position.Split(',');
         int.TryParse(_cords[0], out x);
         int.TryParse(_cords[1], out y);
         int.TryParse(_cords[2], out z);
         Players.NoFlight.Add(_cInfo.entityId);
         TeleportDelay.TeleportQue(_cInfo, x, y, z);
         string _phrase553;
         if (!Phrases.Dict.TryGetValue(553, out _phrase553))
         {
             _phrase553 = "{PlayerName} sending you to the lobby.";
         }
         _phrase553 = _phrase553.Replace("{PlayerName}", _playerName);
         _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1}[-]", Config.Chat_Response_Color, _phrase553), Config.Server_Response_Name, false, "ServerTools", false));
         int _oldCoins = PersistentContainer.Instance.Players[_cInfo.playerId, false].PlayerSpentCoins;
         PersistentContainer.Instance.Players[_cInfo.playerId, true].PlayerSpentCoins = _oldCoins - Command_Cost;
         PersistentContainer.Instance.Players[_cInfo.playerId, true].LastLobby        = DateTime.Now;
         PersistentContainer.Instance.Save();
     }
     else
     {
         string _phrase554;
         if (!Phrases.Dict.TryGetValue(554, out _phrase554))
         {
             _phrase554 = "{PlayerName} the lobby position is not set.";
         }
         _phrase554 = _phrase554.Replace("{PlayerName}", _playerName);
         _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1}[-]", Config.Chat_Response_Color, _phrase554), Config.Server_Response_Name, false, "ServerTools", false));
     }
 }
        private static void Home2(ClientInfo _cInfo, string _home2, bool _announce)
        {
            int x, y, z;

            string[] _cords = _home2.Split(',');
            int.TryParse(_cords[0], out x);
            int.TryParse(_cords[1], out y);
            int.TryParse(_cords[2], out z);
            Players.NoFlight.Add(_cInfo.entityId);
            TeleportDelay.TeleportQue(_cInfo, x, y, z);
            int _oldCoins = PersistentContainer.Instance.Players[_cInfo.playerId, false].PlayerSpentCoins;

            PersistentContainer.Instance.Players[_cInfo.playerId, true].PlayerSpentCoins = _oldCoins - Command_Cost;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].LastSetHome      = DateTime.Now;
            PersistentContainer.Instance.Save();
        }
예제 #4
0
        public static void Exec(ClientInfo _cInfo, EntityPlayer _player)
        {
            Players.NoFlight.Add(_cInfo.entityId);
            TeleportDelay.TeleportQue(_cInfo, (int)_player.position.x, -1, (int)_player.position.z);
            string _phrase922;

            if (!Phrases.Dict.TryGetValue(922, out _phrase922))
            {
                _phrase922 = "{PlayerName} sending you to the world surface. If you are still stuck, contact an administrator.";
            }
            _phrase922 = _phrase922.Replace("{PlayerName}", _cInfo.playerName);
            {
                _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1}[-]", Config.Chat_Response_Color, _phrase922), Config.Server_Response_Name, false, "ServerTools", false));
            }
            PersistentContainer.Instance.Players[_cInfo.playerId, true].LastStuck = DateTime.Now;
            PersistentContainer.Instance.Save();
        }
예제 #5
0
        public static void SendBack(ClientInfo _cInfo, string _playerName)
        {
            Player p = PersistentContainer.Instance.Players[_cInfo.playerId, false];

            if (p != null)
            {
                if (p.LobbyReturn != null)
                {
                    EntityPlayer _player = GameManager.Instance.World.Players.dict[_cInfo.entityId];
                    int          x, y, z;
                    string[]     _cords = SetLobby.Lobby_Position.Split(',');
                    int.TryParse(_cords[0], out x);
                    int.TryParse(_cords[1], out y);
                    int.TryParse(_cords[2], out z);
                    if ((x - _player.position.x) * (x - _player.position.x) + (z - _player.position.z) * (z - _player.position.z) <= Lobby_Size * Lobby_Size)
                    {
                        string[] _returnCoords = p.LobbyReturn.Split(',');
                        int.TryParse(_returnCoords[0], out x);
                        int.TryParse(_returnCoords[1], out y);
                        int.TryParse(_returnCoords[2], out z);
                        Players.NoFlight.Add(_cInfo.entityId);
                        TeleportDelay.TeleportQue(_cInfo, x, y, z);
                        LobbyPlayers.Remove(_cInfo.entityId);
                        string _phrase555;
                        if (!Phrases.Dict.TryGetValue(555, out _phrase555))
                        {
                            _phrase555 = "{PlayerName} sending you back to your saved location.";
                        }
                        _phrase555 = _phrase555.Replace("{PlayerName}", _playerName);
                        _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1}[-]", Config.Chat_Response_Color, _phrase555), Config.Server_Response_Name, false, "ServerTools", false));
                    }
                    else
                    {
                        string _phrase556;
                        if (!Phrases.Dict.TryGetValue(556, out _phrase556))
                        {
                            _phrase556 = "{PlayerName} you are outside the lobby. Get inside it and try again.";
                        }
                        _phrase556 = _phrase556.Replace("{PlayerName}", _playerName);
                        _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1}[-]", Config.Chat_Response_Color, _phrase556), Config.Server_Response_Name, false, "ServerTools", false));
                    }
                }
            }
        }
        public static void TeleFriend(ClientInfo _cInfo, int _friendToTele)
        {
            ClientInfo _cInfo2 = ConnectionManager.Instance.GetClientInfoForEntityId(_friendToTele);

            if (_cInfo2 != null)
            {
                Players.NoFlight.Add(_cInfo2.entityId);
                EntityPlayer _player = GameManager.Instance.World.Players.dict[_cInfo.entityId];
                TeleportDelay.TeleportQue(_cInfo2, (int)_player.position.x, (int)_player.position.y, (int)_player.position.z);
                int _oldCoins = PersistentContainer.Instance.Players[_cInfo2.playerId, false].PlayerSpentCoins;
                PersistentContainer.Instance.Players[_cInfo2.playerId, true].PlayerSpentCoins = _oldCoins - Command_Cost;
                PersistentContainer.Instance.Players[_cInfo2.playerId, true].LastFriendTele   = DateTime.Now;
                PersistentContainer.Instance.Save();
                string _phrase631;
                if (!Phrases.Dict.TryGetValue(631, out _phrase631))
                {
                    _phrase631 = "Your request was accepted. Teleporting you to your friend.";
                }
                _cInfo2.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1}[-]", Config.Chat_Response_Color, _phrase631), Config.Server_Response_Name, false, "ServerTools", false));
            }
        }
예제 #7
0
        public static void Tele(ClientInfo _cInfo, bool _announce)
        {
            EntityPlayer _player = GameManager.Instance.World.Players.dict[_cInfo.entityId];

            Flag.Clear();
            int _playerX = (int)_player.position.x;
            int _playerY = (int)_player.position.y;
            int _playerZ = (int)_player.position.z;

            if (Box.Count > 0)
            {
                foreach (KeyValuePair <string, string[]> kvpCorners in Box)
                {
                    int      xMin, yMin, zMin;
                    string[] _xyzCorner1 = kvpCorners.Value[0].Split(',');
                    int.TryParse(_xyzCorner1[0], out xMin);
                    int.TryParse(_xyzCorner1[1], out yMin);
                    int.TryParse(_xyzCorner1[2], out zMin);
                    int      xMax, yMax, zMax;
                    string[] _xyzCorner2 = kvpCorners.Value[1].Split(',');
                    int.TryParse(_xyzCorner2[0], out xMax);
                    int.TryParse(_xyzCorner2[1], out yMax);
                    int.TryParse(_xyzCorner2[2], out zMax);
                    int      xDest, yDest, zDest;
                    string[] _xyzDestCords = kvpCorners.Value[2].Split(',');
                    int.TryParse(_xyzDestCords[0], out xDest);
                    int.TryParse(_xyzDestCords[1], out yDest);
                    int.TryParse(_xyzDestCords[2], out zDest);

                    if (xMin >= 0 & xMax >= 0)
                    {
                        if (xMin < xMax)
                        {
                            if (_playerX >= xMin)
                            {
                                _xMinCheck = 1;
                            }
                            else
                            {
                                _xMinCheck = 0;
                            }
                            if (_playerX <= xMax)
                            {
                                _xMaxCheck = 1;
                            }
                            else
                            {
                                _xMaxCheck = 0;
                            }
                        }
                        else
                        {
                            if (_playerX <= xMin)
                            {
                                _xMinCheck = 1;
                            }
                            else
                            {
                                _xMinCheck = 0;
                            }
                            if (_playerX >= xMax)
                            {
                                _xMaxCheck = 1;
                            }
                            else
                            {
                                _xMaxCheck = 0;
                            }
                        }
                    }
                    else if (xMin <= 0 & xMax <= 0)
                    {
                        if (xMin < xMax)
                        {
                            if (_playerX >= xMin)
                            {
                                _xMinCheck = 1;
                            }
                            else
                            {
                                _xMinCheck = 0;
                            }
                            if (_playerX <= xMax)
                            {
                                _xMaxCheck = 1;
                            }
                            else
                            {
                                _xMaxCheck = 0;
                            }
                        }
                        else
                        {
                            if (_playerX <= xMin)
                            {
                                _xMinCheck = 1;
                            }
                            else
                            {
                                _xMinCheck = 0;
                            }
                            if (_playerX >= xMax)
                            {
                                _xMaxCheck = 1;
                            }
                            else
                            {
                                _xMaxCheck = 0;
                            }
                        }
                    }
                    else if (xMin <= 0 & xMax >= 0)
                    {
                        if (_playerX >= xMin)
                        {
                            _xMinCheck = 1;
                        }
                        else
                        {
                            _xMinCheck = 0;
                        }
                        if (_playerX <= xMax)
                        {
                            _xMaxCheck = 1;
                        }
                        else
                        {
                            _xMaxCheck = 0;
                        }
                    }
                    else if (xMin >= 0 & xMax <= 0)
                    {
                        if (_playerX <= xMin)
                        {
                            _xMinCheck = 1;
                        }
                        else
                        {
                            _xMinCheck = 0;
                        }
                        if (_playerX >= xMax)
                        {
                            _xMaxCheck = 1;
                        }
                        else
                        {
                            _xMaxCheck = 0;
                        }
                    }

                    if (yMin >= 0 & yMax >= 0)
                    {
                        if (yMin < yMax)
                        {
                            if (_playerY >= yMin)
                            {
                                _yMinCheck = 1;
                            }
                            else
                            {
                                _yMinCheck = 0;
                            }
                            if (_playerY <= yMax)
                            {
                                _yMaxCheck = 1;
                            }
                            else
                            {
                                _yMaxCheck = 0;
                            }
                        }
                        else
                        {
                            if (_playerY <= yMin)
                            {
                                _yMinCheck = 1;
                            }
                            else
                            {
                                _yMinCheck = 0;
                            }
                            if (_playerY >= yMax)
                            {
                                _yMaxCheck = 1;
                            }
                            else
                            {
                                _yMaxCheck = 0;
                            }
                        }
                    }
                    else if (yMin <= 0 & yMax <= 0)
                    {
                        if (yMin < yMax)
                        {
                            if (_playerY >= yMin)
                            {
                                _yMinCheck = 1;
                            }
                            else
                            {
                                _yMinCheck = 0;
                            }
                            if (_playerY <= yMax)
                            {
                                _yMaxCheck = 1;
                            }
                            else
                            {
                                _yMaxCheck = 0;
                            }
                        }
                        else
                        {
                            if (_playerY <= yMin)
                            {
                                _yMinCheck = 1;
                            }
                            else
                            {
                                _yMinCheck = 0;
                            }
                            if (_playerY >= yMax)
                            {
                                _yMaxCheck = 1;
                            }
                            else
                            {
                                _yMaxCheck = 0;
                            }
                        }
                    }
                    else if (yMin <= 0 & yMax >= 0)
                    {
                        if (_playerY >= yMin)
                        {
                            _yMinCheck = 1;
                        }
                        else
                        {
                            _yMinCheck = 0;
                        }
                        if (_playerY <= yMax)
                        {
                            _yMaxCheck = 1;
                        }
                        else
                        {
                            _yMaxCheck = 0;
                        }
                    }
                    else if (yMin >= 0 & yMax <= 0)
                    {
                        if (_playerY <= yMin)
                        {
                            _yMinCheck = 1;
                        }
                        else
                        {
                            _yMinCheck = 0;
                        }
                        if (_playerY >= yMax)
                        {
                            _yMaxCheck = 1;
                        }
                        else
                        {
                            _yMaxCheck = 0;
                        }
                    }

                    if (zMin >= 0 & zMax >= 0)
                    {
                        if (zMin < zMax)
                        {
                            if (_playerZ >= zMin)
                            {
                                _zMinCheck = 1;
                            }
                            else
                            {
                                _zMinCheck = 0;
                            }
                            if (_playerZ <= zMax)
                            {
                                _zMaxCheck = 1;
                            }
                            else
                            {
                                _zMaxCheck = 0;
                            }
                        }
                        else
                        {
                            if (_playerZ <= zMin)
                            {
                                _zMinCheck = 1;
                            }
                            else
                            {
                                _zMinCheck = 0;
                            }
                            if (_playerZ >= zMax)
                            {
                                _zMaxCheck = 1;
                            }
                            else
                            {
                                _zMaxCheck = 0;
                            }
                        }
                    }
                    else if (zMin <= 0 & zMax <= 0)
                    {
                        if (zMin < zMax)
                        {
                            if (_playerZ >= zMin)
                            {
                                _zMinCheck = 1;
                            }
                            else
                            {
                                _zMinCheck = 0;
                            }
                            if (_playerZ <= zMax)
                            {
                                _zMaxCheck = 1;
                            }
                            else
                            {
                                _zMaxCheck = 0;
                            }
                        }
                        else
                        {
                            if (_playerZ <= zMin)
                            {
                                _zMinCheck = 1;
                            }
                            else
                            {
                                _zMinCheck = 0;
                            }
                            if (_playerZ >= zMax)
                            {
                                _zMaxCheck = 1;
                            }
                            else
                            {
                                _zMaxCheck = 0;
                            }
                        }
                    }
                    else if (zMin <= 0 & zMax >= 0)
                    {
                        if (_playerZ >= zMin)
                        {
                            _zMinCheck = 1;
                        }
                        else
                        {
                            _zMinCheck = 0;
                        }
                        if (_playerZ <= zMax)
                        {
                            _zMaxCheck = 1;
                        }
                        else
                        {
                            _zMaxCheck = 0;
                        }
                    }
                    else if (zMin >= 0 & zMax <= 0)
                    {
                        if (_playerY <= zMin)
                        {
                            _zMinCheck = 1;
                        }
                        else
                        {
                            _zMinCheck = 0;
                        }
                        if (_playerY >= zMax)
                        {
                            _zMaxCheck = 1;
                        }
                        else
                        {
                            _zMaxCheck = 0;
                        }
                    }
                    if (_xMinCheck == 1 & _yMinCheck == 1 & _zMinCheck == 1 & _xMaxCheck == 1 & _yMaxCheck == 1 & _zMaxCheck == 1)
                    {
                        Players.NoFlight.Add(_cInfo.entityId);
                        TeleportDelay.TeleportQue(_cInfo, xDest, yDest, zDest);
                        int _oldCoins = PersistentContainer.Instance.Players[_cInfo.playerId, false].PlayerSpentCoins;
                        PersistentContainer.Instance.Players[_cInfo.playerId, true].PlayerSpentCoins = _oldCoins - Command_Cost;
                        PersistentContainer.Instance.Players[_cInfo.playerId, true].LastTravel       = DateTime.Now;
                        PersistentContainer.Instance.Save();
                        string _phrase603;
                        if (!Phrases.Dict.TryGetValue(603, out _phrase603))
                        {
                            _phrase603 = "You have traveled to {Destination}.";
                        }
                        _phrase603 = _phrase603.Replace("{Destination}", kvpCorners.Key);
                        _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1}[-]", Config.Chat_Response_Color, _phrase603), Config.Server_Response_Name, false, "ServerTools", false));
                    }
                    else
                    {
                        Flag.Add(_cInfo.entityId + 1);
                        if (Flag.Count == Box.Count)
                        {
                            string _phrase604;
                            if (!Phrases.Dict.TryGetValue(604, out _phrase604))
                            {
                                _phrase604 = "You are not in a travel location.";
                            }
                            _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1}[-]", Config.Chat_Response_Color, _phrase604), Config.Server_Response_Name, false, "ServerTools", false));
                        }
                    }
                }
            }
        }
예제 #8
0
 private static void TeleportPlayer(ClientInfo _cInfo, bool _announce)
 {
     if (Players.DeathTime.ContainsKey(_cInfo.entityId))
     {
         DateTime _time;
         if (Players.DeathTime.TryGetValue(_cInfo.entityId, out _time))
         {
             TimeSpan varTime           = DateTime.Now - _time;
             double   fractionalMinutes = varTime.TotalMinutes;
             int      _timepassed       = (int)fractionalMinutes;
             if (ReservedSlots.IsEnabled && ReservedSlots.Reduced_Delay)
             {
                 if (ReservedSlots.Dict.ContainsKey(_cInfo.playerId))
                 {
                     DateTime _dt;
                     ReservedSlots.Dict.TryGetValue(_cInfo.playerId, out _dt);
                     if (DateTime.Now > _dt)
                     {
                         int _newTime = _timepassed / 2;
                         _timepassed = _newTime;
                     }
                 }
             }
             if (_timepassed < 2)
             {
                 string _value;
                 if (Players.LastDeathPos.TryGetValue(_cInfo.entityId, out _value))
                 {
                     Players.NoFlight.Add(_cInfo.entityId);
                     int      x, y, z;
                     string[] _cords = _value.Split(',');
                     int.TryParse(_cords[0], out x);
                     int.TryParse(_cords[1], out y);
                     int.TryParse(_cords[2], out z);
                     TeleportDelay.TeleportQue(_cInfo, x, y, z);
                     Players.LastDeathPos.Remove(_cInfo.entityId);
                     int _oldCoins = PersistentContainer.Instance.Players[_cInfo.playerId, false].PlayerSpentCoins;
                     PersistentContainer.Instance.Players[_cInfo.playerId, true].PlayerSpentCoins = _oldCoins - Command_Cost;
                     PersistentContainer.Instance.Players[_cInfo.playerId, true].LastDied         = DateTime.Now;
                     PersistentContainer.Instance.Save();
                     string _phrase736;
                     if (!Phrases.Dict.TryGetValue(736, out _phrase736))
                     {
                         _phrase736 = "{PlayerName} teleporting you to your last death position. You can use this again in {DelayBetweenUses} minutes.";
                     }
                     _phrase736 = _phrase736.Replace("{PlayerName}", _cInfo.playerName);
                     _phrase736 = _phrase736.Replace("{DelayBetweenUses}", Delay_Between_Uses.ToString());
                     if (_announce)
                     {
                         GameManager.Instance.GameMessageServer((ClientInfo)null, EnumGameMessages.Chat, string.Format("{0}{1}[-]", Config.Chat_Response_Color, _phrase736), Config.Server_Response_Name, false, "", false);
                     }
                     else
                     {
                         _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1}[-]", Config.Chat_Response_Color, _phrase736), Config.Server_Response_Name, false, "ServerTools", false));
                     }
                 }
             }
             else
             {
                 _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1} your last death occurred too long ago. Command unavailable.[-]", Config.Chat_Response_Color, _cInfo.playerName), Config.Server_Response_Name, false, "ServerTools", false));
             }
         }
     }
     else
     {
         _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1} you have no death position. Die first.[-]", Config.Chat_Response_Color, _cInfo.playerName), Config.Server_Response_Name, false, "ServerTools", false));
     }
 }