public static string GetGarageParkInString(IPlayer player, IReadOnlyCollection <Server_Garage_Slots> garageSlots, int charId, int garageId, bool isFaction, string factionShort, int factionId) { if (player == null || !player.Exists || !garageSlots.Any() || garageId == 0 || charId == 0) { return("undefined"); } List <IVehicle> vehicles = null; if (isFaction == false) { vehicles = Alt.Server.GetVehicles().Where(x => x != null && x.Exists && x.HasVehicleId() && x.GetVehicleId() > 0 && x.Position.IsInRange(player.Position, 50f)).ToList(); } else if (isFaction == true) { vehicles = Alt.Server.GetVehicles().Where(x => x != null && x.Exists && x.HasVehicleId() && x.GetVehicleId() > 0 && x.Position.IsInRange(player.Position, 50f) && ServerVehicles.GetVehicleFactionId(x) == factionId && x.NumberplateText.Contains(factionShort)).ToList(); } int garageType = ServerGarages.GetGarageType(garageId); if (garageType == -1) { return("undefined"); } dynamic array = new JArray() as dynamic; dynamic entry = new JObject(); foreach (var veh in vehicles) { bool hasKey = false, isOwner = ServerVehicles.GetVehicleOwner(veh) == charId; if (isFaction) { hasKey = CharactersInventory.ExistCharacterItem(charId, $"Fahrzeugschluessel {factionShort}", "inventory"); } else if (!isFaction) { hasKey = CharactersInventory.ExistCharacterItem(charId, $"Fahrzeugschluessel {veh.NumberplateText}", "inventory"); } if (!isOwner && !hasKey) { continue; } entry = new JObject(); entry.vehid = veh.GetVehicleId(); entry.plate = veh.NumberplateText; entry.hash = veh.Model; entry.name = ServerVehicles.GetVehicleNameOnHash(veh.Model); array.Add(entry); } //foreach (var slot in garageSlots.Where(x => x.garageId == garageId)) //{ // var pos = new Position(slot.posX, slot.posY, slot.posZ); // var entity = vehicles.OrderBy(x => x.Position.Distance(pos)).ToList().FirstOrDefault(); // if(entity == null) { continue; } // var distance = entity.Position.Distance(pos); // if (distance >= 1.5f) { continue; } // var vehicle = ServerVehicles.ServerVehicles_.Where(x => x.isInGarage == false).ToList().FirstOrDefault(x => string.Equals(x.plate, entity.NumberplateText, StringComparison.CurrentCultureIgnoreCase)); // if(vehicle == null) { continue; } // var vehicleData = ServerAllVehicles.ServerAllVehicles_.FirstOrDefault(x => x.hash == entity.Model); // if (vehicleData == null) { continue; } // if(vehicleData.vehClass != garageType) { continue; } // bool hasKey = false; // if (isFaction == false) { hasKey = CharactersInventory.ExistCharacterItem(charId, "Fahrzeugschluessel " + entity.NumberplateText, "inventory"); } // else if(isFaction == true) { hasKey = CharactersInventory.ExistCharacterItem(charId, "Fahrzeugschluessel " + factionShort, "inventory"); } // bool isOwner = vehicle.charid == charId; // if(!hasKey && !isOwner) { continue; } // entry = new JObject(); // entry.vehid = vehicle.id; // entry.plate = entity.NumberplateText; // entry.hash = entity.Model; // entry.name = vehicleData.name; // array.Add(entry); //} return(array.ToString()); }