Ejemplo n.º 1
0
        public async void SelectCharacter(Client client, object[] args)
        {
            uint          characterId   = (uint)(int)args[0];
            CharacterData characterData = await CharacterDatabase.GetCharacterData(characterId);

            Vector3 position = characterData.GetPosition();
            float   heading  = characterData.Heading.HasValue ? characterData.Heading.Value : 0;

            if (position == null)
            {
                GamePosition spawnPoint = ServerUtilities.GetRandomSpawnPoint();
                position = spawnPoint.GetPosition();
                heading  = spawnPoint.GetHeading();
            }


            client.SetData(CharacterData.CHARACTER_DATA_KEY, characterData);

            PlayerData playerData         = client.GetData(PlayerData.PLAYER_DATA_KEY);
            GroupData  highestRankedGroup = await GroupDatabase.GetPlayerHighestRankingGroup(playerData.Id);

            if (highestRankedGroup == null)
            {
                return;
            }
            if (characterData == null)
            {
                return;
            }

            ServerUtilities.SetPlayerNametag(client);
            ServerUtilities.SwitchPlayerPosition(client, position, heading);
        }
        private void SpawnVehicles()
        {
            List <GamePosition> vehicleStartPositions = GetMapData().VehicleStartPositions.ToList();

            for (int i = 0; i < Data.CurrentPlayers.Count; i++)
            {
                int          randomIndex       = Main.Random.Next(0, vehicleStartPositions.Count);
                GamePosition vehicleSpawnPoint = vehicleStartPositions[i];
                vehicleStartPositions.RemoveAt(randomIndex);
                Vehicle vehicle = NAPI.Vehicle.CreateVehicle(Data.VehicleChosen, vehicleSpawnPoint.GetPosition(), vehicleSpawnPoint.Heading, Main.Random.Next(0, 112), Main.Random.Next(0, 112), dimension: GameModeData.Id * 10);
                Data.CurrentVehicles.Add(vehicle);
            }
        }