internal static void LeaveHotel(IPlayer player) { try { if (player == null || !player.Exists) { return; } int charId = User.GetPlayerOnline(player); if (charId <= 0) { return; } if (player.Dimension <= 0 || player.Dimension - 5000 < 0) { return; } int apartmentId = player.Dimension - 5000; int hotelId = ServerHotels.GetHotelIdByApartmentId(apartmentId); if (hotelId <= 0 || apartmentId <= 0) { return; } if (!ServerHotels.ExistHotelApartment(hotelId, apartmentId)) { HUDHandler.SendNotification(player, 3, 5000, "Ein unerwarteter Fehler ist aufgetreten [HOTEL-001]."); return; } player.Position = ServerHotels.GetHotelPosition(hotelId, apartmentId); player.Dimension = 0; } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task EnterHotel(IPlayer player, int hotelId, int apartmentId) { try { if (player == null || !player.Exists || hotelId <= 0 || apartmentId <= 0) { return; } int charId = User.GetPlayerOnline(player); if (charId <= 0) { return; } if (!ServerHotels.ExistHotelApartment(hotelId, apartmentId)) { HUDHandler.SendNotification(player, 3, 5000, "Ein unerwarteter Fehler ist aufgetreten [HOTEL-001]."); return; } if (ServerHotels.GetApartmentOwner(hotelId, apartmentId) <= 0) { HUDHandler.SendNotification(player, 3, 5000, "Fehler: Dieses Zimmer ist nicht vermietet."); return; } var hotel = ServerHotels.ServerHotelsApartments_.FirstOrDefault(x => x.hotelId == hotelId && x.id == apartmentId); if (hotel == null) { return; } if (!player.Position.IsInRange(ServerHotels.GetHotelPosition(hotelId, apartmentId), 3f)) { return; } if (hotel.isLocked) { HUDHandler.SendNotification(player, 3, 5000, "Fehler: Das Zimmer ist abgeschlossen."); return; } if (!ServerHouses.ExistInteriorId(hotel.interiorId)) { return; } player.Position = ServerHouses.GetInteriorExitPosition(hotel.interiorId); player.Dimension = 5000 + apartmentId; } catch (Exception e) { Alt.Log($"{e}"); } }