Skip to content

Combustível e consumo

Combustível e consumo

Tipos de combustível

Quatro vêm por padrão. A chave é a que se refere o preço de cada veículo, bomba e posto.

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 Significado
wholesale O que o proprietário paga por litro ao encomendar estoque
price O preço por litro com que um novo posto é aberto. Os proprietários alteram o seu próprio na página de Tipos de combustível
electric Cobra por kWh em um carregador em vez de por litro em uma bomba

Config.FuelOrder define a ordem em que aparecem no seletor no mundo do jogo.

O que um veículo consome

Resolvido nesta ordem: o modelo está em Config.VehicleFuel.Electric → uma correspondência exata em Config.VehicleFuel.Model → sua classe de veículo em Config.VehicleFuel.Class → gasolina.

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

Qualquer item na lista Electric só funciona em um carregador — uma bomba o recusará.

Tamanhos de tanque

Litros que um tanque cheio comporta, por classe. 0 significa que essa classe nunca precisa de combustível — bicicletas (13) e trens (21) vêm configurados assim.

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

O combustível é rastreado como uma porcentagem no veículo, então o tamanho do tanque decide até onde vai um por cento. Um caminhão industrial de 300 litros perde porcentagem de forma muito mais lenta por litro consumido do que uma motocicleta de 15 litros.

Taxa de consumo

Duas coisas se multiplicam: uma taxa por classe e a faixa de RPM em que o motor está no momento.

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

A tabela de RPM faz a maior parte do trabalho. A cada tick, o RPM atual do motor é comparado com a faixa mais alta igual ou abaixo dele, e essa quantidade de litros é consumida, dimensionada pela taxa da classe e pelo tamanho do tanque. Afundar o pé em um Super consome aproximadamente dezesseis vezes mais do que deixar um compacto na marcha lenta. O consumo só ocorre para o motorista de um veículo com o motor ligado, portanto carros estacionados e passageiros não custam nada.

Com combustível zero, o motor apaga.

Para tornar o combustível mais leve em geral, reduza toda a tabela Rpm — divida cada valor pela metade e tudo no servidor durará o dobro do tempo, mantendo intactas as diferenças relativas entre os veículos.

Aviso de combustível baixo

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

Abaixo de LowWarning por cento, o motorista recebe uma notificação e, opcionalmente, um aviso sonoro. Ele é disparado uma vez por veículo, e não uma vez por tick, para nunca ser incômodo.

Combustível ao spawnar

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

Este é o principal ajuste da economia de combustível. Cada veículo que o script nunca viu antes — cada carro de NPC estacionado, cada veículo gerado em garagem, cada veículo gerado por admin — sorteia um nível aleatório dentro desta faixa na primeira vez que alguém olha para ele.

Deixe entre 40–80 e a maioria dos carros que o jogador encontra já estará com meio tanque, tornando o abastecimento ocasional. Reduza para { min = 5, max = 25 } e as bombas ficarão lotadas imediatamente. Defina ambos como 100 e nunca mais ninguém precisará abastecer um carro novo.

Assim que um veículo é visto, seu nível fica armazenado no state bag da entidade e é compartilhado entre os clientes a partir daí, portanto ele não é sorteado novamente.

Combustível incorreto

Colocar diesel em um carro a gasolina, ou um galão em um elétrico, tem consequências. O modo é global para o servidor, e um admin pode substituí-lo por posto através de /fueladmin.

Config.WrongFuel = {
    Mode = 'damage',
    SlowPower = 0.45,
    SlowSeconds = 45,
    Damage