public void InsideInterior(int interior, int hash, Vector3 pos) { PlayerGenerics.DisableInteriorControlsThisFrame(); Function.Call(Hash.SET_RADAR_AS_INTERIOR_THIS_FRAME, hash, pos.X, pos.Y, pos.Z, 0); Function.Call(Hash._SET_PLAYER_BLIP_POSITION_THIS_FRAME, pos.X, pos.Y); Player me = Game.Player; foreach (Player player in Players) { if (me == player) { continue; } PlayerGenerics.SetFlag(player, PlayerFlag.HeadDisplayHidden | PlayerFlag.BlipHidden, true); // Player is in interior if (PlayerInterior.IsIn(player, interior)) { // Player is guest in current player's interior if (PlayerInterior.GetInteriorOwner(player) == Game.Player.Handle) { PlayerGenerics.Show(player); } else { PlayerGenerics.Hide(player); } } } }
/// <summary> /// Returns list of players who are inside given interior and are owners of this interior /// </summary> /// <param name="interiorId"></param> /// <returns></returns> protected List <Player> GetOwnersInsideInterior(int interiorId) { var list = new List <Player>(); foreach (Player player in Players) { if (PlayerInterior.IsIn(player, interiorId) && PlayerInterior.IsOwner(player)) { list.Add(player); } } return(list); }
public void OutsideInterior() { Function.Call(Hash.SET_RADAR_AS_EXTERIOR_THIS_FRAME); Function.Call(Hash.UNLOCK_MINIMAP_POSITION); foreach (Player player in Players) { if (Game.Player == player) { continue; } if (!PlayerInterior.IsInAny(player)) { PlayerGenerics.SetFlag(player, PlayerFlag.HeadDisplayHidden | PlayerFlag.BlipHidden, false); PlayerGenerics.Show(player); } } }
protected void BeginTransitionInside(Player owner = null) { State = PlayerApartmentState.TransitionInside; Game.Player.CanControlCharacter = false; Game.PlayerPed.IsInvincible = true; Game.PlayerPed.Weapons.Select(PlayerGenerics.Unarmed); PlayerGenerics.SetFlag(Game.Player, PlayerFlag.Hidden, true); PlayerGenerics.SetFlag(Game.Player, PlayerFlag.BlipHidden, true); PlayerInterior.SetInteriorId(Game.Player, CurrentApartment.InteriorId); if (owner == null) { PlayerInterior.SetInterOwnerToMyself(Game.Player); } else { PlayerInterior.SetInteriorOwner(Game.Player, owner); } }
protected async Task TransitionInside() { Screen.Fading.FadeOut(200); while (!Screen.Fading.IsFadedOut) { await Delay(1); } await TeleportPlayerTo(CurrentApartment.EntranceInside, 1f); await PlayerInterior.Load(CurrentApartment.InteriorId); Screen.Fading.FadeIn(200); while (!Screen.Fading.IsFadedIn) { await Delay(1); } Game.Player.CanControlCharacter = true; State = PlayerApartmentState.Inside; }