Antes de empezar#
Antes de instalar Taxi Job, asegúrate de que tu servidor cumple los requisitos mínimos. Tres cosas son obligatorias; todo lo demás es opcional, y se detecta solo o se activa en la config.
Requisito | Estado | Notas |
|---|---|---|
| Obligatorio | Acceso a la base de datos. Las tablas se instalan solas. |
| Obligatorio | Callbacks, y el programador que hay detrás de los reinicios de la clasificación. |
Framework | Obligatorio | ESX, QBCore o Qbox — detectado automáticamente. |
Target | Opcional |
|
Llaves de vehículos | Opcional | Once sistemas de llaves, detectados automáticamente. Entrega al conductor las llaves del taxi. |
Combustible | Opcional | Llena el depósito del taxi al generarlo mediante el export |
| Opcional | Misiones de taxi, y bloquear el inventario mientras se pone el uniforme. |
| Opcional | Dibuja los avisos flotantes cuando el texto 3D está activado. |
Dispatch | Opcional | Avisa a la policía cuando se denuncia una parada ilegal. |
| Opcional | Notificaciones de solicitudes de viaje para la app de teléfono de Taxi Job. |
Todo lo específico del framework o de terceros está detrás de un pequeño archivo puente. Algunas capas se eligen según lo que ya está en ejecución, y el resto con un interruptor en la config:
Capa | Cómo se elige |
|---|---|
Framework |
|
Llaves de vehículos | El primero de los once sistemas de llaves compatibles que se encuentre en ejecución (automático) |
Target |
|
Avisos 3D |
|
Notificaciones | Integradas, o las tuyas mediante |
Combustible · dispatch · uniforme |
|
Toda integración opcional se degrada en silencio. Si falta el script de llaves, el taxi se conduce sin que se entreguen llaves; si falta el target, el aviso es una pulsación de tecla. Integraciones tiene los detalles.
github.comReleases · overextended/oxmysqlMySQL resource for FXServer.github.comReleases · overextended/ox_libA FiveM resource and script library for Lua and JS.Descargar Taxi Job#
Después de comprar Taxi Job, el recurso se vincula automáticamente a tu cuenta del CFX Portal.
Inicia sesión en el CFX Portal con la misma cuenta que usaste al finalizar la compra, abre Granted Assets y descarga Taxi Job.
Después de extraer la descarga, deberías tener lo siguiente:
[taxijob]/
├── qs-taxijob/
│ ├── config/ -- config.lua and translations.lua: what you edit
│ ├── client/ -- framework, target, outfit and key bridges (editable)
│ ├── server/ -- framework bridges and quests (editable)
│ ├── web/ -- the interface, ready to use
│ ├── driver_ratings.json -- every driver's reputation
│ └── fxmanifest.lua
└── [sql]/
└── qs-taxi.sql -- optional: the resource creates its own tablesLa carpeta debe llamarse
qs-taxijob. El recurso comprueba su propio nombre al arrancar — una copia renombrada imprime You have renamed the script! y congela la consola del servidor — y todos los exports que llaman otros scripts van dirigidos a ese nombre.
Instalar el recurso#
Mueve la carpeta qs-taxijob al directorio resources de tu servidor. Puede estar en cualquier lugar dentro de él, incluida una carpeta de categoría:
resources/
└── [qs]/
└── qs-taxijob/Una vez copiada, abre tu server.cfg y asegúrate de que todas las dependencias — y todo aquello con lo que deba integrarse — arranquen antes que él:
ensure oxmysql
ensure ox_lib
# Framework
ensure es_extended
# ensure qb-core
# ensure qbx_core
# Target, vehicle keys, fuel, inventory, text UI, phone
ensure ox_target
ensure qs-vehiclekeys
ensure LegacyFuel
ensure qs-inventory
ensure qs-textui
ensure qs-smartphone
ensure qs-taxijobEl orden de carga importa. La detección solo ve los recursos que están ya iniciados, así que un framework que arranca después de Taxi Job deja el trabajo sin cargar, y un script de llaves que arranca después hace que los taxis aparezcan sin llaves.
La base de datos#
No hay archivo SQL que importar. Taxi Job crea sus propias tablas en el primer arranque, añade cualquier columna que le falte a una instalación anterior y, en cada arranque posterior, simplemente comprueba que nada haya cambiado.
Tabla | Contiene |
|---|---|
| El nivel y la experiencia de cada conductor, además de la experiencia y las ganancias históricas, de temporada y diarias para las clasificaciones. |
| Cuándo se reiniciaron por última vez las clasificaciones diaria y de temporada, para que un reinicio a medianoche nunca pague dos veces. |
| Premios ganados por conductores que estaban desconectados en el reinicio, pagados en su siguiente conexión. |
| El último top tres de cada clasificación, mostrado en la vista de estadísticas. |
En ESX también se registra el trabajo: cada trabajo de Config.TaxiJob que aún no existe se añade a jobs (etiqueta Taxi Driver) con un grado 0 Driver en job_grades. En QBCore y Qbox los trabajos están en el archivo de trabajos compartidos del core y no en la base de datos, así que no se escribe nada — el trabajo taxi de serie ya está ahí.
Las reputaciones de los conductores — la media de estrellas, el número de valoraciones y los viajes realizados — se guardan en driver_ratings.json dentro de la carpeta del recurso, no en la base de datos. Se escribe cada minuto y al apagar. Consérvalo al actualizar.
Las columnas
identifierse ajustan automáticamente a la collation propia de tu framework. MariaDB 11.4 cambió la collation por defecto, y una discrepancia rompería la clasificación con Illegal mix of collations — el recurso corrige la columna en su lugar, e imprime la sentencia exacta para ejecutarla a mano si no puede. El archivo[sql]/qs-taxi.sqlsolo sirve para preparar la base de datos fuera del servidor; importarlo es opcional.
Dar el trabajo a los jugadores#
Con Config.RequireJob activado — el valor por defecto — solo los jugadores cuyo trabajo esté listado en Config.TaxiJob pueden empezar un turno. El panel del despachador se sigue abriendo para cualquiera, así que pueden leer la guía y las clasificaciones.
Config.RequireJob = true -- false lets anyone drive, no job needed
Config.TaxiJob = {
['taxi'] = true,
-- ['cabco'] = true, -- add as many jobs as you like
}Entrega el trabajo como lo haga normalmente tu servidor — un centro de empleo, un menú de jefe o el comando de administración del framework:
# ESX, QBCore and Qbox all ship the same admin command
/setjob <id> taxi 0El blip Taxi Services solo se dibuja para los jugadores que tienen uno de estos trabajos. Perder el trabajo a mitad de un turno termina el turno en el acto, y el servidor se niega a pagar un viaje a quien ya no lo tenga.
Configurar el recurso#
Todo se configura en unos pocos archivos, todos abiertos para editar:
Archivo | Contenido |
|---|---|
| Todo el comportamiento: quién puede conducir, cómo interactúan los jugadores, el despachador y la parada, los taxis, los puntos de recogida y destino, el pago y los niveles, las valoraciones, las solicitudes de pasajeros, las rachas, las clasificaciones, el marcador, los webhooks y el debug. |
| El idioma, y cada línea de texto en los once idiomas. |
| El uniforme del conductor, masculino y femenino, que se usa cuando |
| Las misiones de taxi de qs-inventory: títulos, descripciones y recompensas. |
Los valores que conviene revisar primero:
Config.Language = 'en' -- translations.lua: en · es · it · fr · pt · de · ru · tr · nl · cn · zh-tw
Config.RequireJob = true -- only players with a job in Config.TaxiJob can drive
Config.Target = false -- true = a target option on the dispatcher
Config.TargetScript = "ox" -- "ox" or "qb"
Config.DistanceUnit = "miles" -- the taximeter: "km" or "miles"
Config.CurrencyPosition = "prefix" -- $500, or "suffix" for 500 zł
Config.PlayerNameSource = 'character' -- 'character', 'cfx' or 'both'
Config.Fuel = false -- true fills the cab through Config.FuelExport
Config.Clothing = false -- true dresses the driver from client/clothing.luaLos cambios de config se aplican en el siguiente reinicio del recurso. Uso → Referencia de configuración lista todas las opciones con su valor por defecto.
Verificar la instalación#
Después de completar la instalación, reinicia tu servidor y observa la consola. En un primer arranque con ESX se registra el trabajo:
[qs-taxijob] Registered the ESX job "taxi"No se imprime nada en QBCore, Qbox ni en arranques posteriores — el silencio significa que el esquema ya estaba al día. Una actualización desde una versión anterior imprime una línea Added missing column por cada columna de la clasificación, una sola vez.
Después entra en tu servidor y completa el primer ciclo:
Obtén el trabajo
Asígnate el trabajo de taxi con
/setjob <your id> taxi 0. El blip Taxi Services aparece en el mapa, en la parada de Downtown Cab Co.Habla con el despachador
Acércate a Manuel Ortega, bajo el marcador azul flotante, y pulsa
E. La cámara pasa a él y el panel del trabajo se abre a su lado: tu nivel, la tarjeta del turno y el selector de taxis.Empieza un turno
Elige el Taxi y pulsa Start shift. Te colocan al volante en una plaza libre, y en 5 a 20 segundos llega un viaje y la recogida aparece en tu GPS.
Termina un viaje
Detente junto al pasajero y pulsa
E, llévalo al destino, detente y pulsaEde nuevo. Se te paga, la tarjeta de estrellas muestra la valoración y la propina, y la radio llama al siguiente viaje. A partir de aquí, Uso cubre todo lo demás que puede ocurrir en un turno.
¿Estás configurándolo? Activa
Config.Debugenconfig/config.lua: así el script explica lo que hace en la consola del servidor y en F8. Déjalo desactivado en un servidor en producción — imprime mucho.



