Zerix Development

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

KeyVerplichtBetekenis
nameneeLabel in /npcdensity en het density-event. Default intern: zone
coordsjavec3(x, y, z) — midden van de zone
radiusneeMeters, default 50.0
priorityneeGetal, default 0. Hoger wint
enabledneefalse slaat de zone over. Ontbreekt = aan
peds / scenarioPeds / vehicles / randomVehicles / parkedVehiclesneeZelfde 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.