Exemplo n.º 1
0
        /// <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));
        }
Exemplo n.º 3
0
        /// <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);
        }