Zones
Lokale dichtheid per plek. Wint van de globale settings.
Zones overschrijven Config.Density zolang de speler binnen de radius staat. Kleinste radius / hoogste priority wint bij overlap.
Config.Zones = {
{
name = 'Legion Square',
coords = vec3(195.17, -933.77, 30.69),
radius = 180.0,
priority = 1,
peds = 0.15,
scenarioPeds = 0.1,
vehicles = 0.25,
randomVehicles = 0.2,
parkedVehicles = 0.2,
},
{
name = 'MRPD',
coords = vec3(428.23, -984.28, 30.71),
radius = 80.0,
priority = 2,
peds = 0.0,
vehicles = 0.1,
parkedVehicles = 0.0,
},
}
De geleverde config heeft deze voorbeelden uitgecommentarieerd. Haal de --[[ / ]] weg of plak eigen zones.
Velden
| Key | Verplicht | Betekenis |
|---|---|---|
name | nee | Label in /npcdensity en het density-event. Default intern: zone |
coords | ja | vec3(x, y, z) — midden van de zone |
radius | nee | Meters, default 50.0 |
priority | nee | Getal, default 0. Hoger wint |
enabled | nee | false slaat de zone over. Ontbreekt = aan |
peds / scenarioPeds / vehicles / randomVehicles / parkedVehicles | nee | Zelfde schaal 0.0–1.0 als globaal |
Ontbrekende density-keys vallen terug op globaal, niet op 0. MRPD hierboven zonder scenarioPeds gebruikt dus Config.Density.scenarioPeds.
Overlap
Score = priority * 100000 - radius.
- Hogere priority wint altijd van lagere.
- Bij dezelfde priority wint de kleinere radius (specifieker).
Voorbeeld: Legion 180 m / priority 1 en MRPD 80 m / priority 2 → op het politiebureau geldt MRPD.
Live check
/npcdensity toont zone: Legion Square of zone: globaal.
Als de zone-naam wisselt (binnenkomen / verlaten), vuurt:
AddEventHandler('Z-npc:client:densityUpdated', function(values)
-- values.peds, values.vehicles, values.zone, ...
end)
Zie Editable hooks.