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); }
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); }
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); } }
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!"); }
public void OnPositionCommand(ServerPlayer player) { player.Notify($"Aktuelle Position: {player.Position}"); player.Emit("UiManager:CopyToClipboard", player.Position.ToString()); }
public void OnTeleportToWaypointCommand(ServerPlayer player) { player.Emit("ConsoleHandler:TeleportToWaypoint"); }