Combustível e postos
Consumo de combustível, abastecimento com mangueira, carregadores para elétricos, galão e sifão. Os jogadores podem comprar os postos e tocar o negócio pelo tablet: preço, estoque, equipe, caixa e manutenção.
Precisa de: oxmysql, krs, PolyZone
As opções do mundo usam o resource target, o conserto das bombas usa o hud e o app usa o phone.
Instalação
ensure fuelColoque depois do oxmysql, do krs e do PolyZone. As tabelas são criadas sozinhas. Veja a ordem completa.
O sifão usa o item syphoningkit, e o galão usa WEAPON_PETROLCAN.
Abastecer
- Desligue o motor e pare com a tampa do tanque virada para a bomba.
- Use Pegar Mangueira na bomba, ou Pegar Carregador no carregador.
- Mire no veículo e use Abastecer ou Carregar.
- Informe os litros e escolha Dinheiro ou Banco.
- Quando terminar, use Retirar Mangueira ou Retirar Carregador, e depois Devolver Mangueira ou Devolver Carregador.
Com a mangueira engatada, o motor não liga. O preço é por litro, com Tax por cima. O jogador paga pelo que entrou no tanque, mesmo se cancelar antes do fim.
Quem se afasta mais que NozzleDistance da bomba com a mangueira na mão paga HoseDamageFee.
Veículo elétrico só carrega no carregador, e veículo a combustão não usa carregador.
Galão e sifão
Opção no target | Onde | O que faz |
|---|---|---|
| Comprar Galão | Bomba | Compra um galão com Jerrycan.Fuel litros |
| Encher Galão | Bomba | Enche o galão que está no inventário |
| Abastecer com Galão | Veículo | Passa combustível do galão para o tanque |
| Puxar Combustível | Veículo | Tira combustível do tanque para o galão. Exige syphoningkit e galão, e pode avisar a polícia |
Aeronaves e embarcações
Special.Locations tem pontos com bomba própria para helicópteros, aviões e barcos. Dentro da área e fora de um veículo, aperte G. A mangueira alcança Special.NozzleLength. Alguns pontos são só para os grupos em Permissions, em serviço.
Comprar um posto
Fale com o atendente do posto e compre pelo painel. O valor sai do banco. Depois, abra o app Postos no tablet.
| Tela | O que o dono faz |
|---|---|
| Início | Acompanha vendas, estoque e desgaste |
| Preço | Define o preço do litro entre MinPrice e MaxPrice |
| Estoque | Faz pedidos de combustível |
| Caixa | Saca, deposita e vê o histórico |
| Equipe | Contrata e demite. Cargos: motorista, frentista e gerente |
| Meu posto | Renomeia, liga e desliga as bombas e vende o posto |
Como o posto ganha e perde
- O dono recebe
SalePercentagedo valor de cada venda no caixa do posto. O imposto fica de fora. - Cada litro aumenta o desgaste das bombas. Em
WarnAt% o dono recebe um aviso. Em 100% o posto para de vender. - Consertar Bomba ou Revisar Bomba aparece para dono, gerente e frentista. As peças saem do caixa e, se faltar, do banco de quem conserta.
- O salário é pago a cada
PayIntervalminutos, do caixa, para funcionários online. - Sem venda por
AbandonDaysdias, o posto volta a ficar à venda e o caixa vai para o banco do dono.Abandonment.Graceprotege os primeiros dias depois da compra.
Reposição de estoque
O preço do atacado muda uma vez por dia, entre Market.Min e Market.Max.
| Entrega | Como funciona |
|---|---|
| Carga na refinaria | Dono, gerente ou motorista busca o caminhão e descarrega perto do atendente |
| Terceirizada | Custa Courier.Multiplier vezes mais e chega em Courier.Minutes minutos |
Assaltos
Vêm desligados. Com Robbery.Register.Enabled, aparece Assaltar Caixa no atendente. O assaltante precisa estar armado e com policiais em serviço na cidade. Com Robbery.Cargo.Enabled, roubar o caminhão de uma carga avisa a polícia e permite vender a carga ao receptador.
Permissão
Quem tem o grupo de App.AdminPermission, por padrão Admin, vê o painel da administração no app. Ele troca o dono, o estoque, o caixa, o preço e o nome de qualquer posto, conserta, quebra e desliga bombas e muda os ajustes.
O comando /fuel, do resource admin, enche o tanque do veículo em que o Admin está.
Configuração
Tudo fica em shared-side/config.lua.
Abastecimento
| Opção | Padrão | O que muda |
|---|---|---|
Debug | false | Desenha as zonas no mapa |
Tax | 15.0 | Imposto sobre o preço, em % |
RefuelTime | 600 | Tempo por litro, em ms. Mínimo equivalente a 10 litros |
NozzleDistance | 7.5 | Alcance da mangueira, em metros |
HoseDamageFee | 20000 | Taxa por sair com a mangueira. Editável no painel |
PlugLeaveDistance | 30.0 | Distância do veículo que solta a mangueira, em metros |
NozzleExplosion | false | Explosão ao romper a mangueira |
VehicleBlowUp | false | Chance de explodir ao abastecer com o motor ligado |
BlowUpChance | 5 | Chance dessa explosão, em % |
FaceTowardsVehicle | true | Vira o jogador para o veículo ao abastecer |
PumpHose | true | Desenha a mangueira |
Plug | valores por tipo | Encaixe do bico e do carregador |
RopeType | 1 nos dois | Tipo de corda da mangueira |
ShutoffLevel | 0.55 | Nível em que o motor apaga |
ShutoffSound | ligado | Som ao apagar por falta de combustível |
Pumps | 8 modelos | Modelos de bomba reconhecidos |
NoFuelUsage | { "bmx" } | Modelos que não gastam combustível |
Classes | 1.0, classe 13 em 0.0 | Multiplicador de consumo por classe |
FuelUsage | de 0.0 a 1.3 | Consumo conforme a rotação |
Desconto, galão e sifão
| Opção | Padrão | O que muda |
|---|---|---|
Discount.Enabled | true | Liga o desconto |
Discount.Percentage | 25 | Desconto, em % |
Discount.EmergencyOnly | true | Só em veículo de emergência (classe 18) |
Discount.Permissions | Policia, Paramedico | Grupos com desconto, em serviço |
Jerrycan.Enabled | true | Liga o galão |
Jerrycan.Capacity | 50 | Capacidade, em litros |
Jerrycan.Price | 200 | Preço do galão |
Jerrycan.Fuel | 25 | Litros que vêm no galão comprado |
Jerrycan.Item | "WEAPON_PETROLCAN" | Item do galão |
Jerrycan.Ammo | "WEAPON_PETROLCAN_AMMO" | Item que guarda o combustível |
Jerrycan.AmmoPerLiter | 100 | Unidades por litro |
Syphon.Enabled | true | Liga o sifão |
Syphon.Item | "syphoningkit" | Item exigido |
Syphon.PoliceChance | 25 | Chance de avisar a polícia, em % |
Syphon.Permission | "Policia" | Grupo avisado |
Postos
| Opção | Padrão | O que muda |
|---|---|---|
Owned.Enabled | true | Liga a compra de postos, os atendentes e o app |
Owned.DefaultPrice | 5 | Preço do litro sem dono |
Owned.SalePercentage | 0.65 | Parte da venda que vai para o caixa |
Owned.EmergencyShutoff | false | true deixa qualquer pessoa desligar as bombas no atendente |
Owned.UnlimitedFuel | false | Tira o estoque |
Owned.MaxReserves | 100000 | Estoque máximo, em litros |
Owned.SellPercentage | 50 | Quanto o dono recebe ao vender o posto, em % |
Owned.MinPrice | 3 | Menor preço do litro |
Owned.MaxPrice | 10 | Maior preço do litro |
Owned.ControlPrices | true | Dono define o preço |
Owned.NameChanges | true | Dono renomeia o posto |
Owned.NameMin | 10 | Menor nome |
Owned.NameMax | 25 | Maior nome |
Owned.OnePerPerson | true | Um posto por pessoa |
App.Identifier | "postos" | Identificador do app |
App.Name | "Postos" | Nome do app |
App.AdminPermission | "Admin" | Grupo do painel de administração |
App.HistoryPage | 40 | Linhas por página do histórico |
Abandonment.Enabled | true | Liga o abandono |
Abandonment.Days | 10 | Dias sem venda. Editável no painel |
Abandonment.Grace | 3 | Dias de proteção após a compra |
Stations | 27 postos | Label, Zone, MinZ, MaxZ, Cost, Ped e Charger opcional |
Profanity | lista de palavras | Palavras barradas no nome do posto (shared-side/profanity.lua) |
Estoque e equipe
| Opção | Padrão | O que muda |
|---|---|---|
Market.Base | 2.0 | Preço médio do atacado. Editável no painel |
Market.Min | 1.2 | Menor preço. Editável no painel |
Market.Max | 3.2 | Maior preço. Editável no painel |
Market.Variation | 12 | Variação diária máxima, em % |
Market.History | 14 | Dias no gráfico |
Delivery.MinOrder | 500 | Pedido mínimo, em litros |
Delivery.MaxOrders | 3 | Pedidos abertos por posto |
Delivery.Trucks | hauler, phantom, packer | Caminhões |
Delivery.Trailer | "tanker" | Reboque |
Delivery.Refinery | coordenadas | Onde buscar a carga |
Delivery.UnloadTime | 12 | Tempo de descarga por litro, em ms |
Delivery.UnloadDistance | 25.0 | Distância do atendente para descarregar |
Delivery.Courier.Multiplier | 1.8 | Custo da terceirizada. Editável no painel |
Delivery.Courier.Minutes | 45 | Tempo da terceirizada. Editável no painel |
Employees.Max | 6 | Funcionários por posto |
Employees.Roles | motorista, frentista, gerente | Nomes dos cargos |
Employees.MinSalary | 0 | Menor salário |
Employees.MaxSalary | 5000 | Maior salário |
Employees.PayInterval | 60 | Intervalo do salário, em minutos |
Maintenance.WearPerLiter | 0.004 | Desgaste por litro |
Maintenance.WarnAt | 80 | Desgaste que gera aviso, em % |
Maintenance.RepairCost | 7500 | Custo do conserto. Editável no painel |
Maintenance.Minigame | 3 rodadas, velocidade 12 | Minigame do conserto |
Assaltos
| Opção | Padrão | O que muda |
|---|---|---|
Robbery.Permission | "Policia" | Grupo avisado e contado |
Robbery.Register.Enabled | false | Liga o assalto ao caixa |
Robbery.Register.MinPolice | 2 | Policiais em serviço exigidos |
Robbery.Register.Percentage | 40 | % das vendas do dia. Editável no painel |
Robbery.Register.MaxTake | 25000 | Teto do assalto. Editável no painel |
Robbery.Register.Cooldown | 60 | Espera por posto, em minutos |
Robbery.Register.Duration | 20000 | Duração, em ms |
Robbery.Cargo.Enabled | false | Liga o roubo de carga |
Robbery.Cargo.MinPolice | 2 | Policiais em serviço exigidos |
Robbery.Cargo.FencePrice | 0.6 | Valor por litro no receptador. Editável no painel |
Robbery.Cargo.Fence | coordenadas | Local do receptador |
Robbery.Cargo.AlertDelay | 8000 | Tempo até contar como roubo, em ms |
Elétricos e pontos especiais
| Opção | Padrão | O que muda |
|---|---|---|
Electric.Enabled | true | Liga os carregadores |
Electric.Price | 4 | Preço por kWh |
Electric.SpawnChargers | true | Cria os carregadores de Stations |
Electric.Vehicles | 17 modelos | Modelos elétricos |
Special.Enabled | true | Liga os pontos especiais |
Special.Key | 47 | Controle que pega a mangueira (G) |
Special.NozzleLength | 20.0 | Alcance da mangueira, em metros |
Special.AirPrice | 10 | Preço do litro para aeronaves |
Special.WaterPrice | 4 | Preço do litro para embarcações |
Special.Locations | 18 pontos | Zone, MinZ, MaxZ, Text, Pump e Permissions opcional |
Para programadores
-- cliente: muda o combustível de um veículo, de 0 a 100
exports.fuel:SetFuel(veiculo, combustivel)
-- servidor: muda o combustível de um veículo, de 0 a 100
exports.fuel:SetFuel(veiculo, combustivel)
-- servidor: true se o passaporte é dono de um posto ou admin
exports.fuel:CanUseApp(charId)O nível fica na statebag Fuel do veículo. A statebag FuelPlug marca a mangueira engatada.
Evento de cliente: engine:FuelAdmin enche o tanque do veículo em que o jogador está.
