Skip to content

Fuel & consumption

Paliwo i zużycie

Typy paliw

Domyślnie dostarczane są cztery. Kluczem jest to, do czego odnosi się każdy pojazd, dystrybutor i cena na stacji.

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  },
}
Pole Znaczenie
wholesale Ile właściciel płaci za litr przy zamawianiu zapasów
price Cena za litr, z jaką startuje nowa stacja. Właściciele zmieniają własne ceny na stronie Typy paliw
electric Nalicza opłaty za kWh przy ładowarce zamiast za litry przy dystrybutorze

Config.FuelOrder ustala kolejność, w jakiej pojawiają się na selektorze w świecie gry.

Co piją pojazdy

Rozstrzygane w tej kolejności: model jest w Config.VehicleFuel.Electric → dokładne dopasowanie w Config.VehicleFuel.Model → klasa pojazdu w Config.VehicleFuel.Class → benzyna.

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',
    },
}

Wszystko z listy Electric działa tylko przy ładowarce — dystrybutor odmówi obsługi.

Pojemność zbiorników

Litrów w pełnym zbiorniku, na klasę. 0 oznacza, że dana klasa nigdy nie potrzebuje paliwa — rowery (13) i pociągi (21) są tak skonfigurowane.

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

Paliwo jest śledzone jako procent w pojeździe, więc pojemność zbiornika decyduje o tym, jak daleko zajdzie jeden procent. 300-litrowa ciężarówka przemysłowa traci procenty znacznie wolniej na wlany litr niż 15-litrowy motocykl.

Szybkość spalania

Dwie rzeczy mnożą się przez siebie: współczynnik dla danej klasy oraz zakres obrotów (RPM), na którym aktualnie pracuje silnik.

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

Tabela obrotów wykonuje większość pracy. W każdym ticku aktualne obroty silnika są dopasowywane do najwyższego pasma na lub poniżej nich, a odpowiednia liczba litrów jest pobierana, skalowana przez współczynnik klasy i wielkość zbiornika. Dociskanie gazu do dechy w aucie typu Super spala mniej więcej szesnastokrotnie więcej niż praca na biegu jałowym w kompakcie. Zużycie działa tylko dla kierowcy pojazdu z włączonym silnikiem, więc zaparkowane auta i pasażerowie nic nie kosztują.

Przy zerowym poziomie paliwa silnik gaśnie.

Aby ogólnie zmniejszyć zużycie paliwa, zmniejsz całą tabelę Rpm — przepołów każdą wartość, a wszystko na serwerze wystarczy na dwa razy dłużej, zachowując względne różnice między pojazdami.

Ostrzeżenie o niskim poziomie paliwa

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

Poniżej procenta LowWarning kierowca otrzymuje powiadomienie oraz, opcjonalnie, dźwięk powiadomienia. Uruchamia się ono raz na pojazd, a nie raz na tick, więc nigdy nie jest irytujące.

Paliwo przy spawnie

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

To najważniejszy suwak ekonomii paliwowej. Każdy pojazd, którego skrypt jeszcze nie widział — każde zaparkowane auto NPC, każdy pojazd z garażu, każdy pojazd zespawnowany przez admina — losuje losowy poziom z tego zakresu przy pierwszym spojrzeniu przez kogokolwiek.

Zostaw to na 40–80, a większość aut znajdowanych przez graczy będzie już w połowie pełna, więc tankowanie będzie sporadyczne. Zmniejsz to do { min = 5, max = 25 }, a dystrybutory natychmiast będą oblegane. Ustaw oba na 100, a n