Saltar al contenido
Toda la documentación

Rental

Alquiler de vehículos: en las estaciones de alquiler, el jugador elige vehículo, color y tiempo de alquiler, paga por minuto y recibe el vehículo directamente en el punto de recogida – coches, barcos o aeronaves. Cuando se acaba el tiempo, desaparece; quien termine antes lo devuelve antes.

Requisitos
  • ESX Legacy (es_extended)
  • OneSync

Funciones

  • Varias estaciones con NPC o marker, punto de recogida propio y, opcionalmente, selección de vehículos propia.
  • Tres tipos de estación: alquiler de coches, alquiler de barcos (punto de recogida en el agua) y alquiler de aeronaves (pista o helipuerto) – cada uno con su propia lista de vehículos, su propio blip y sus propios textos en el menú.
  • Precio por minuto, pago en efectivo o con banco, indicador de tiempo restante con avisos antes de que termine.
  • Devolución anticipada: si el vehículo puede circular y está en el punto de recogida, se reembolsa una parte de los minutos sin usar. Si no, el alquiler termina sin reembolso. Log de Discord de cada devolución.
  • Un alquiler por jugador. Si el spawn falla, se devuelve el dinero.

Instalación

  1. Pon la carpeta off_rental en tu carpeta resources.
  2. En el server.cfg – después de ESX:
cfg
ensure es_extended
ensure off_rental
  1. Opcional: configura el webhook de las devoluciones en config/settings/config.server.lua.

Configuración

config/settings/config.lua

OpciónPredeterminadoDescripción
serverInfo.name'OFF SCRIPTS'Nombre del servidor, se muestra en la interfaz en lugar de «OFF SCRIPTS»
serverInfo.locale'de'Idioma: de, en, pl, fr, es, it o nl
serverInfo.color{ 155, 89, 255 }Color de la UI (RGB)
serverInfo.design3Diseño de la interfaz: 1 = Clásico, 2 = Ticket, 3 = Storefront
blurtrueFondo desenfocado mientras el menú está abierto
payment'both''cash', 'bank' o 'both' (elige el jugador)
rentalMinutes1–120, paso 5, inicio 30min, max, step y default del tiempo de alquiler en minutos
warningMinutes{ 5, 1 }Llega un aviso tantos minutos antes de que termine
refundPercent50Devolución anticipada: se reembolsa este porcentaje de los minutos sin usar, 0 = sin reembolso
platePrefix'RENT'Inicio de la matrícula (máx. 4 caracteres), p. ej. RENT4821
ped / marker / blipMecánico / disco, 2 m / activadoAspecto del NPC, el marker y el blip – marker.size también es la zona para E, blip.sprite va por tipo (car, boat, aircraft)

config/settings/config.stations.lua – Estaciones de alquiler

CampoDescripción
labelNombre en el menú
typeOpcional: 'car' (predeterminado), 'boat' o 'aircraft' – define la lista de vehículos, el blip y los textos
interactionType'ped' (NPC, position = vec4 con orientación) o 'marker' (círculo, position = vec3)
spawnvec4 – punto de recogida y de devolución. Debe estar libre: calle o aparcamiento, en el agua para boat, en una pista o helipuerto para aircraft
vehiclesOpcional: qué model de la lista del tipo hay aquí. Si se omite = todos

config/settings/config.vehicles.lua – Vehículos y colores

  • Config.vehicles tiene una lista por tipo: car, boat y aircraft.
  • Por vehículo: model, label, category (pestaña en el menú), price (precio por minuto) y seats.
  • Si falta una imagen de vehículo (p. ej. vehículos addon), colócala como web/dist/assets/vehicles/<model>.png.
  • Config.colors: label = nombre en el menú, rgb = color de pintura ({ r, g, b }, cada uno 0–255).

config/functions.lua

FunciónPara qué
Notify(message, type)Notify propio (avisos, fin del alquiler …) · Servidor: Notify(source, message, type)
HelpNotify(text)Texto de ayuda en la estación
ClientVehicleRented(vehicle, plate)Después del spawn – p. ej. llaves o combustible

Logs de Discord

El webhook lo pones en config/settings/config.server.lua (solo en el servidor): returns registra cada devolución anticipada con vehículo, estación, minutos sin usar y reembolso. Una url vacía ('') desactiva el log. Además están name (nombre del bot), color (RGB) y también avatar e image (URL de imagen, '' = ninguna).

Idiomas

Todos los textos están en config/locales/<idioma>.json. Para tu propio idioma, copia un archivo, tradúcelo y ajusta serverInfo.locale – deja los marcadores como %d y {price}.

En el juego

En la estación, pulsa E, elige vehículo, color y tiempo de alquiler y paga en efectivo o con banco – te sientas directamente en el vehículo. El alquiler termina cuando se acaba el tiempo, el jugador sale del servidor o el vehículo se elimina. Los alquileres no se guardan: al reiniciar el script, todos los vehículos de alquiler desaparecen sin reembolso.

Devolución anticipada – solo en una estación del mismo tipo:

  • Lleva el vehículo al punto de recogida marcado, detente y pulsa E.
  • O pulsa E en la estación: el menú muestra el alquiler activo, el tiempo restante y el reembolso. Devolver vehículo termina el alquiler.

Reembolso = minutos completos sin usar × precio por minuto × refundPercent, a la misma cuenta que el pago. Si el vehículo no está en el punto de recogida, está destruido o ha desaparecido, el alquiler solo se puede terminar en el menú – tras una confirmación y sin reembolso. Después el vehículo se elimina; con barcos, el jugador vuelve a tierra.

Problemas frecuentes

ProblemaSolución
[ERROR] en la consola del servidorEl script comprueba la instalación al iniciar. Lee el mensaje, corrígelo y reinicia el script.
«El punto de recogida está ocupado ahora mismo»Hay algo en spawn. Despéjalo o mueve spawn – no se cobra nada.
«Este vehículo no está disponible aquí»model incorrecto, no instalado, no está en la lista del tipo o en vehicles de la estación.
El barco o la aeronave aparece malspawn no está en el agua o no está libre en una pista o helipuerto – vuelve a tomar la posición.
No se puede devolverSolo en una estación del mismo type; en el vehículo, detente primero.
No hay llave para el vehículo de alquilerPon tu script de llaves en ClientVehicleRented.
El NPC está dentro de una pared o flotaAjusta position – z es la altura en la que está el jugador.

¿Aún no lo has comprado?

Ver Rental en la tienda