Skip to content

Exports y eventos

API pública de Cuxial Gas Stations: exports para conectar un script de combustible, leer precios y reputación y pedir un lavado.

Conecta tu script de combustible con los depósitos de las gasolineras, lee precios, promociones y reputación, o envía los avisos del dueño a otro recurso. Cuxial Fuel ya usa estos exports; solo los necesitas para tus propias integraciones.

Los ids de gasolinera son las claves de data/stations.lua, como gas_station_1.

Exports de servidor ​

FindStation ​

Devuelve la gasolinera a la que pertenece una posición. Una posición pertenece a una gasolinera cuando está dentro de su esfera pumps.

lua
local stationId = exports.cuxial_gasstations:FindStation(coords)
ParámetroTipoDescripción
coordsvector3 | tablePosición con x, y y z, normalmente el surtidor.

Devuelve: string, o nil cuando la posición está fuera de todas las gasolineras.

lua
local stationId = exports.cuxial_gasstations:FindStation(GetEntityCoords(pump))

GetFuelPrices ​

Precios y stock de todos los combustibles de una gasolinera, con los límites del administrador y el happy hour en curso ya aplicados.

lua
local data = exports.cuxial_gasstations:GetFuelPrices(stationId, countVisit)
ParámetroTipoDescripción
stationIdstringId de la gasolinera.
countVisitbooleanSuma una visita a las estadísticas de la gasolinera. Por defecto true; pasa false cuando solo releas los precios.

Devuelve: nil cuando la gasolinera no existe o no tiene dueño. Si no, una tabla:

CampoTipoDescripción
pricestablePrecio por litro o kWh, por id de combustible. 0 significa que el dueño no ha fijado precio.
stocktableLitros en el depósito para los combustibles; true o false para los cargadores eléctricos (desbloqueado o no).
lua
local data = exports.cuxial_gasstations:GetFuelPrices('gas_station_1', false)
if data then
    print(data.prices.regular, data.stock.regular)
end

GetFuel ​

Forma corta solo para regular.

lua
local stock, price = exports.cuxial_gasstations:GetFuel(stationId, countVisit)
ParámetroTipoDescripción
stationIdstringId de la gasolinera.
countVisitbooleantrue suma una visita. Por defecto no cuenta.

Devuelve: stock (litros) y price (por litro), o nil cuando la gasolinera no existe o no tiene dueño.

SellFuel ​

Comunica una venta. Resta los litros del depósito y suma el dinero a la caja.

lua
local sold = exports.cuxial_gasstations:SellFuel(stationId, fuel, paid, liters, kind, src)
ParámetroTipoDescripción
stationIdstringId de la gasolinera.
fuelstringId de combustible de fuels en el config.
paidnumberLo que pagó el cliente.
litersnumberLitros vendidos, o kWh en una carga.
kindstring'pump', 'can' (bidón) o 'charge' (eléctrico).
srcnumberId de servidor del comprador. Opcional. Con él, el comprador puede ganar un bono de lavado y se le pide una valoración.

Devuelve: boolean. false cuando la gasolinera tiene dueño y le falta stock o el cargador, o el id de combustible no vale: devuelve el dinero al cliente. true en cualquier otro caso, incluidas las gasolineras sin dueño.

lua
local stationId = exports.cuxial_gasstations:FindStation(pumpCoords)
if stationId and not exports.cuxial_gasstations:SellFuel(stationId, 'regular', 120, 40, 'pump', source) then
    -- sin stock: devuelve el dinero
end

RefundFuel ​

Devuelve al depósito los litros no usados y saca el reembolso de la caja.

lua
local refunded = exports.cuxial_gasstations:RefundFuel(stationId, fuel, refund, liters, src)
ParámetroTipoDescripción
stationIdstringId de la gasolinera.
fuelstringId de combustible.
refundnumberImporte a devolver al cliente.
litersnumberLitros pagados y no servidos.
srcnumberId de servidor del comprador. Opcional. Anula un bono de lavado que ya no llega a los litros mínimos.

Devuelve: number, el importe que de verdad sale de la caja. Puede ser menor que refund cuando la caja no llega, o 0. En una gasolinera sin dueño devuelve refund tal cual.

GetPromos ​

Promociones de una gasolinera, para pantallas públicas como un cartel de precios.

lua
local promos = exports.cuxial_gasstations:GetPromos(stationId)

Devuelve: nil cuando la gasolinera no existe. Si no, una tabla:

CampoTipoDescripción
labelstringNombre por defecto de la gasolinera.
fuelPctnumberDescuento actual en combustible, en porcentaje.
washPctnumberDescuento actual en lavados, en porcentaje.
livetable[]Promociones activas ahora. Un happy hour tiene kind = 'happy_hour', pct, applies y endsIn (segundos). Un bono tiene kind = 'fuel_voucher', minLiters, service y validMinutes.
nexttablePróximo happy hour, con pct, applies y startsIn (segundos). No viene cuando no hay ninguno hoy ni mañana.

GetReputation ​

lua
local rep = exports.cuxial_gasstations:GetReputation(stationId)

Devuelve: nil cuando la gasolinera no existe o el módulo de reputación está apagado. Si no, una tabla:

CampoTipoDescripción
avgnumberNota de 1 a 5.
countnumberValoraciones recientes que cuentan.
factornumberMultiplicador que se aplica al tráfico de clientes NPC.
bonusPctnumberDescuento extra de proveedor, en porcentaje.

RequestMobileWash ​

Abre una solicitud de detailing a domicilio en nombre de un jugador, como hace /detailing cuando el jugador confirma.

lua
local result = exports.cuxial_gasstations:RequestMobileWash(src, service, netId)
ParámetroTipoDescripción
srcnumberId de servidor del cliente.
servicestring'rinse', 'foam' o 'wax'.
netIdnumberId de red del vehículo del cliente.

Devuelve: una tabla con ok (boolean), id y quote si sale bien, o error (un código como module_disabled) si falla.

lua
local result = exports.cuxial_gasstations:RequestMobileWash(source, 'foam', netId)
if not result.ok then print(result.error) end

RegisterNoticeProvider ​

Recibe en tu recurso cada aviso al dueño, por ejemplo para reenviarlo a otro sistema de mensajería.

lua
local ok = exports.cuxial_gasstations:RegisterNoticeProvider(name, fn)
ParámetroTipoDescripción
namestringNombre único, de hasta 40 caracteres.
fnfunctionSe llama con una tabla notice por cada aviso enviado.

Campos de notice:

CampoTipoDescripción
citizenidstringIdentificador del dueño de la gasolinera.
stationstringId de la gasolinera.
stationLabelstringNombre de la gasolinera.
kindstringlow_stock, mobile_wait, mobile_missed, npc_cap, rental, daily, reputation, abandon_risk o spill.
titlestringTítulo, ya traducido.
textstringTexto, ya traducido.
atnumberHora en milisegundos.

Devuelve: boolean. El proveedor se quita solo cuando tu recurso se detiene.

lua
exports.cuxial_gasstations:RegisterNoticeProvider('my_mail', function(notice)
    print(notice.stationLabel, notice.kind, notice.text)
end)

UnregisterNoticeProvider ​

lua
exports.cuxial_gasstations:UnregisterNoticeProvider(name)

Spill ​

Para scripts de combustible. Crea un charco de combustible cuando un vehículo arranca con la boquilla puesta. La gasolinera decide si hay derrame y cuántos litros pierde.

lua
local spilled = exports.cuxial_gasstations:Spill(stationId, coords, src, liters, fuel, netId)
ParámetroTipoDescripción
stationIdstringId de la gasolinera.
coordsvector3Posición del suelo bajo la boquilla.
srcnumberId de servidor del jugador que repostaba.
litersnumberLitros pagados y no servidos.
fuelstringId de combustible.
netIdnumberId de red del vehículo.

Devuelve: number, los litros que no vuelven al depósito. 0 significa que no se creó ningún charco.

Exports de cliente ​

FindStation ​

Igual que el export de servidor.

lua
local stationId = exports.cuxial_gasstations:FindStation(GetEntityCoords(cache.ped))

IsWaxed ​

Dice si un vehículo tiene una capa de cera activa.

lua
local waxed = exports.cuxial_gasstations:IsWaxed(vehicle)
ParámetroTipoDescripción
vehiclenumberHandle de la entidad del vehículo.

Devuelve: boolean.

Eventos ​

Cuxial Gas Stations no expone eventos para otros recursos. Sus eventos internos se validan en el servidor y no están pensados para dispararse desde fuera.

© Cuxial