Beispiel #1
0
        private async void OnLoginAuthenticateAsync(ServerPlayer player, string password)
        {
            if (string.IsNullOrWhiteSpace(password))
            {
                player.Notify("Du musst ein gültiges Passwort eingeben!", NotificationType.Error);
                return;
            }

            var playerCharacters = new List <Dictionary <string, string> >();

            var account = await _accountService.Authenticate(
                player.SocialClubId,
                player.HardwareIdHash,
                player.HardwareIdExHash,
                password);

            if (account != null)
            {
                player.Account = account;

                foreach (var character in await _characterService.GetCharacters(account))
                {
                    var jsonObjSerialized = new Dictionary <string, string>();
                    jsonObjSerialized.Add("charId", character.Id.ToString());
                    jsonObjSerialized.Add("charName", character.Name);

                    playerCharacters.Add(jsonObjSerialized);
                }
            }

            // spawn player for char creator

            /*await player.SetDimensionAsync(100 + player.Id);
             * await player.SetModelAsync(Alt.Hash("mp_m_freemode_01"));
             * await player.SpawnAsync(new AltV.Net.Data.Position(402.93603515625f, -996.7662963867188f, -99.00023651123047f));*/

            await AltAsync.Do(() =>
            {
                player.Dimension = 100 + player.Id;
                player.Model     = Alt.Hash("mp_m_freemode_01");
                player.Spawn(CharCreatorPedPosition, 0);
            });

            player.Emit("Login:Callback", player.IsLoggedIn, playerCharacters);
        }
Beispiel #2
0
        private async Task SpawnCharacter(ServerPlayer player)
        {
            if (player.Character == null)
            {
                return;
            }

            await AltAsync.Do(() =>
            {
                player.Dimension = 0;
                player.Model     = Alt.Hash(player.Character.Model);
                player.Position  = SpawnPoint;
            });

            var appearanceData = new List <string> {
                player.Character.AppearanceParents,
                player.Character.AppearanceFaceFeatures,
                player.Character.AppearanceDetails,
                player.Character.AppearanceHair,
                player.Character.AppearanceClothes
            };

            player.Emit("Session:PlayerSpawning", appearanceData);
        }
Beispiel #3
0
        public void OnTeleportToPlayerCommand(ServerPlayer player, string target = null)
        {
            if (target == null)
            {
                player.Notify("Du musst ein Ziel angeben!", NotificationType.Error);
                return;
            }

            var targetPlayer = Alt.GetAllPlayers().SingleOrDefault(player => ((ServerPlayer)player).RoleplayName.Contains(target));

            if (targetPlayer != null && targetPlayer != this && targetPlayer.Exists)
            {
                player.Position = targetPlayer.Position + new Position(1, 1, 0.5f);

                if (targetPlayer.IsInVehicle)
                {
                    player.Emit("VehicleHandler:TeleportInto", targetPlayer.Vehicle);
                }
            }
            else
            {
                player.Notify("Spieler nicht gefunden oder nicht eindeutig", NotificationType.Error);
            }
        }
Beispiel #4
0
        private async void OnCreateNewCharacterAsync(ServerPlayer player, string charCreationJson)
        {
            dynamic charCreationObj = JsonConvert.DeserializeObject <dynamic>(charCreationJson);

            string firstName              = charCreationObj.firstName;
            string lastName               = charCreationObj.lastName;
            string birthdayStr            = charCreationObj.birthday;
            string genderIndex            = charCreationObj.genderIndex;
            string appearanceParents      = JsonConvert.SerializeObject(charCreationObj.appearanceParents);
            string appearanceFaceFeatures = JsonConvert.SerializeObject(charCreationObj.appearanceFaceFeatures);
            string appearanceDetails      = JsonConvert.SerializeObject(charCreationObj.appearanceDetails);
            string appearanceHair         = JsonConvert.SerializeObject(charCreationObj.appearanceHair);
            string appearanceClothes      = JsonConvert.SerializeObject(charCreationObj.appearanceClothes);

            if (!string.IsNullOrEmpty(firstName) &&
                !string.IsNullOrEmpty(lastName) &&
                !string.IsNullOrEmpty(birthdayStr) &&
                !string.IsNullOrEmpty(genderIndex) &&
                !string.IsNullOrEmpty(appearanceParents) &&
                !string.IsNullOrEmpty(appearanceFaceFeatures) &&
                !string.IsNullOrEmpty(appearanceDetails) &&
                !string.IsNullOrEmpty(appearanceHair) &&
                !string.IsNullOrEmpty(appearanceClothes))
            {
                if (!DateTime.TryParseExact(birthdayStr, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out DateTime birthday))
                {
                    return;
                }

                var character = new Character
                {
                    AccountId              = player.Account.SocialClubId,
                    FirstName              = firstName,
                    LastName               = lastName,
                    Birthday               = birthday,
                    Model                  = genderIndex == "0" ? "mp_m_freemode_01" : "mp_f_freemode_01",
                    Armor                  = 0,
                    Health                 = 200,
                    Cash                   = 500,
                    Hunger                 = 100,
                    Thirst                 = 100,
                    AppearanceParents      = appearanceParents,
                    AppearanceFaceFeatures = appearanceFaceFeatures,
                    AppearanceDetails      = appearanceDetails,
                    AppearanceHair         = appearanceHair,
                    AppearanceClothes      = appearanceClothes
                };

                await _characterService.Create(character);

                player.Character = character;

                // necessary for intro
                await AltAsync.Do(() =>
                {
                    player.Model = Alt.Hash(player.Character.Model);
                });

                await Task.Delay(500);

                var appearanceData = new List <string> {
                    player.Character.AppearanceParents,
                    player.Character.AppearanceFaceFeatures,
                    player.Character.AppearanceDetails,
                    player.Character.AppearanceHair,
                    player.Character.AppearanceClothes
                };

                player.Emit("Session:PlayIntro", character.Id, appearanceData);

                return;
            }

            await player.KickAsync("Error on character creation!");
        }
Beispiel #5
0
 public void OnPositionCommand(ServerPlayer player)
 {
     player.Notify($"Aktuelle Position: {player.Position}");
     player.Emit("UiManager:CopyToClipboard", player.Position.ToString());
 }
Beispiel #6
0
 public void OnTeleportToWaypointCommand(ServerPlayer player)
 {
     player.Emit("ConsoleHandler:TeleportToWaypoint");
 }