Skip to content

Carburante e consumo

Carburante e consumo

Tipi di carburante

Quattro forniti di default. La chiave è ciò a cui fa riferimento il prezzo di ogni veicolo, erogatore e stazione.

config.lua
Config.FuelTypes = {
    gasoline = { label = 'Gasoline', colour = '#e0973f', wholesale = 0.90, price = 2.00, electric = false },
    diesel   = { label = 'Diesel',   colour = '#3fd07f', wholesale = 0.70, price = 1.50, electric = false },
    premium  = { label = 'Premium',  colour = '#5b6cf0', wholesale = 1.40, price = 3.00, electric = false },
    electric = { label = 'Electric', colour = '#41b8c9', wholesale = 2.10, price = 4.50, electric = true  },
}
Campo Significato
wholesale Quanto paga il proprietario al litro quando ordina la merce
price Il prezzo al litro con cui apre una nuova stazione. I proprietari possono modificarlo autonomamente nella pagina dei tipi di carburante
electric Fattura in kWh a una colonnina invece che al litro a un erogatore

Config.FuelOrder imposta l'ordine in cui compaiono nel selettore in-game.

Cosa beve un veicolo

Risolto in questo ordine: il modello è in Config.VehicleFuel.Electric → corrispondenza esatta in Config.VehicleFuel.Model → la sua classe di veicoli in Config.VehicleFuel.Class → benzina.

config.lua
Config.VehicleFuel = {
    Class = {
        [0] = 'gasoline', [1] = 'gasoline', [2] = 'diesel',   [3] = 'gasoline',
        [4] = 'premium',  [5] = 'gasoline', [6] = 'premium',  [7] = 'premium',
        [8] = 'gasoline', [9] = 'diesel',   [10] = 'diesel',  [11] = 'diesel',
        [12] = 'diesel',  [17] = 'diesel',  [18] = 'diesel',  [19] = 'diesel',
        [20] = 'diesel',
    },
    Model = {
        -- ['sultanrs'] = 'premium',
    },
    Electric = {
        'voltic', 'voltic2', 'surge', 'neon', 'omnisegt', 'cyclone', 'tezeract',
        'imorgon', 'dilettante', 'dilettante2', 'khamelion', 'raiden', 'iwagen',
        'rcbandito', 'caddy', 'airtug',
    },
}

Qualsiasi elemento nella lista Electric funziona solo presso una colonnina: un erogatore lo rifiuterà.

Capienza dei serbatoi

I litri che un serbatoio pieno può contenere, per classe. 0 significa che quella classe non ha mai bisogno di carburante; le biciclette (13) e i treni (21) sono impostati così di default.

config.lua
Config.Consumption.Tank = {
    [0] = 45, [1] = 60, [2] = 75, [3] = 55, [4] = 70, [5] = 55, [6] = 65,
    [7] = 80, [8] = 15, [9] = 80, [10] = 300, [11] = 90, [12] = 90,
    [13] = 0, [14] = 200, [15] = 400, [16] = 500, [17] = 90, [18] = 90,
    [19] = 150, [20] = 120, [21] = 0,
}
Config.Consumption.Default = 65

Il carburante viene tracciato come percentuale sul veicolo, quindi la capienza del serbatoio determina quanta strada si percorre con un percento. Un camion industriale da 300 litri perde percentuale molto più lentamente per litro consumato rispetto a una moto da 15 litri.

Tasso di consumo

Due fattori si moltiplicano tra loro: un tasso specifico per classe e la fascia di RPM in cui si trova attualmente il motore.

config.lua
Config.Consumption.Rate = {
    [0] = 0.6, [2] = 1.2, [4] = 1.6, [6] = 1.4, [7] = 2.0, [8] = 0.4,
    [10] = 3.0, [15] = 3.5, [16] = 4.0,
}
Config.Consumption.RateDefault = 1.0

Config.Consumption.Rpm = {
    [1.0] = 0.13, [0.9] = 0.10, [0.8] = 0.08, [0.7] = 0.065, [0.6] = 0.05,
    [0.5] = 0.04, [0.4] = 0.03, [0.3] = 0.022, [0.2] = 0.015, [0.1] = 0.008,
    [0.0] = 0.0,
}
Config.Consumption.Tick = 1000

La tabella dei giri (RPM) svolge la maggior parte del lavoro. A ogni tick, gli RPM attuali del motore vengono abbinati alla fascia più alta pari o inferiore ad essi, e viene consumata quella quantità di litri, scalata in base al tasso della classe e alla capienza del serbatoio. Schiacciare a tavoletta su una Super consuma circa sedici volte rispetto a tenere un'utilitaria al minimo. Il consumo si attiva solo per il conducente di un veicolo con il motore acceso, quindi le auto parcheggiate e i passeggeri non costano nulla.

A zero carburante il motore si spegne.

Per rendere il carburante più leggero in generale, riduci l'intera tabella Rpm: dimezza ogni valore e tutto sul server durerà il doppio, mantenendo intatte le differenze relative tra i veicoli.

Avviso di carburante in esaurimento

config.lua
Config.Consumption.LowWarning = 15
Config.Consumption.LowWarningSound = true
Config.Consumption.WarnTick = 2000
Config.Consumption.IdleTick = 3000

Sotto la percentuale di LowWarning, il conducente riceve una notifica e, facoltativamente, un segnale acustico. Viene attivato una sola volta per veicolo, non a ogni tick, quindi non risulta mai fastidioso.

Carburante allo spawn

config.lua
Config.Consumption.SpawnFuel = { min = 40, max = 80 }

Questo è il parametro più importante per l'economia del carburante. Qualsiasi veicolo che lo script non ha mai visto prima — ogni auto NPC parcheggiata, ogni veicolo spawnato da un garage, ogni veicolo spawnato da un admin — genera un livello casuale in questo intervallo la prima volta che qualcuno lo guarda.

Lasciandolo tra 40 e 80, la maggior parte delle auto trovate dai giocatori è già semipiena, quindi il rifornimento è occasionale. Riducendolo a { min = 5, max = 25 }, le pompe si riempiono di clienti immediatamente. Impostandoli entrambi a 100, nessuno avrà mai bisogno di fare il pieno a un'auto nuova.

Una volta che un veicolo è stato visto, il suo livello viene memorizzato nell'entity state bag e condiviso tra i client da quel momento in poi, evitando quindi nuovi ricalcoli casuali.

Car