/// <summary> /// Обновить иконку дома на карте /// </summary> public void UpdateBlip(HouseInfo house, string playerName = "") { var blip = _blipsByHouses[house.Id]; var hasOwner = !string.IsNullOrEmpty(playerName); var color = hasOwner ? BUSY_HOUSE_COLOR : FREE_HOUSE_COLOR; var sprite = hasOwner ? 40 : 374; var label = $"{HouseHelper.GetHouseLabel(house.Type, playerName)}"; API.setBlipColor(blip, color); API.setBlipSprite(blip, sprite); API.setBlipName(blip, label); }
/// <summary> /// Игрок подошел ко входу /// </summary> public void OnPlayerWentToEnter(NetHandle entity, long houseId) { var player = API.getPlayerFromHandle(entity); if (!PlayerHelper.PlayerCorrect(player)) { return; } var house = ServerState.Houses[houseId]; var playerId = _playerInfoManager.GetInfo(player).AccountId; var houseState = HouseHelper.GetHouseState(house.OwnerId, playerId); API.triggerClientEvent(player, ServerEvent.SHOW_HOUSE_MENU, (int)houseState, JsonConvert.SerializeObject(house)); }
/// <summary> /// Возвращает дом со свободным гаражем /// </summary> private PlayerHouse GetFreeHouse(Client player, IEnumerable <PlayerHouse> houses) { var vehicles = _playerInfoManager.GetInfo(player).Vehicles.Values; foreach (var house in houses) { var vehiclesInGarage = vehicles.Count(e => e.HouseId == house.Id); if (!HouseHelper.GarageIsFull(house.Type, vehiclesInGarage)) { return(house); } } return(null); }
/// <summary> /// Может ли игрок парковаться в гараже /// </summary> private bool CanParking(Client player, HouseInfo house, Vehicle vehicleInfo) { var vehiclesInGarage = _playerInfoManager.GetInfo(player).Vehicles.Values.Count(e => e.HouseId == house.Id); if (HouseHelper.GarageIsFull(house.Type, vehiclesInGarage)) { API.sendNotificationToPlayer(player, "~r~В гараже больше нет мест", true); return(false); } if (vehicleInfo == null) { API.sendNotificationToPlayer(player, "~r~Нельзя парковать чужой транспорт в гараж", true); return(false); } return(true); }