Comandos#
Bus Driver Job no registra comandos de chat ni de consola propios: todo lo que hace un jugador empieza en el despachador, y todo lo que configura un administrador está en config/config.lua. Los comandos que realmente usarás mientras lo ejecutas son estos:
Comando | Dónde | Descripción |
|---|---|---|
| En el juego | El comando de tu framework. Contrata a un jugador como conductor de autobús para que pueda iniciar rutas. |
| Consola | Aplica los cambios de configuración. Termina todas las rutas en curso y elimina su autobús, pasajeros y despachador antes de que vuelvan a aparecer. |
| server.cfg | Inicia el trabajo. Va debajo de sus dependencias y de todo lo que deba detectar. |
<id> es el server id del jugador — el número junto a su nombre en la lista de jugadores. Para ver qué hace el trabajo mientras pruebas, establece Config.Debug = true: registra cada paso en la consola del servidor y en F8.
Exports de cliente#
Para abrir el panel del trabajo desde tus propios scripts — un menú radial, una app del teléfono, un segundo NPC en otra cochera.
Abrir el panel del trabajo
-- client side
exports['qs-busjob']:openBusDriverMenu()
-- or from the server, for one player
TriggerClientEvent('qs-busdriverjob:openBusDriverMenu', source)Abre el mismo panel que el despachador: rutas, el selector de autobús, estadísticas y la guía. La cámara solo pasa al despachador cuando el jugador está a 6 m o menos de él; en cualquier otro lugar el panel se abre solo. Iniciar una ruta sigue requiriendo el trabajo.
A propósito, no hay ningún export que abra la clasificación por sí sola — las estadísticas son una vista dentro de este panel, así que abre el panel en su lugar.
Mostrar una notificación
-- server side: show a notification in the bus job's own style
TriggerClientEvent('qs-busdriverjob:sendNotification', source, 'notify', 'success', 'Shift bonus paid')
-- type: 'success' · 'error' · 'info' · 'warning'Sigue el mismo camino que los mensajes propios del trabajo, así que respeta Config.DefaultNotifications y tu SendTextMessage.
Exports de servidor#
Cómo otro recurso consulta sobre los conductores de autobús — un marcador que cuenta quién está de servicio, un script de cárcel u hospital que comprueba si un jugador tiene un autobús en la carretera.
IsPlayerOnMission
local driving = exports['qs-busjob']:IsPlayerOnMission(source) -- true / falseVerdadero mientras el servidor mantiene una ruta abierta para ese jugador. Lee el mismo registro a partir del cual se deciden las comprobaciones de parada y el pago, así que nunca puede contradecir lo que el servidor realmente permitirá hacer al jugador. Es el que debes usar cuando la respuesta importa.
getOnDutyCount
local drivers = exports['qs-busjob']:getOnDutyCount() -- numberCuántos jugadores están de servicio como conductores de autobús ahora mismo — desde que empieza una ruta hasta que se completa o se abandona. Es lo que lee qs-scoreboard.
isPlayerOnDuty
local onDuty = exports['qs-busjob']:isPlayerOnDuty(source) -- true / falseSe mantiene para los scripts que ya lo llaman. Refleja el indicador de servicio que informa el cliente del jugador, así que puede ir un momento por detrás; usa preferentemente IsPlayerOnMission para todo lo que tenga que ser exacto.
Eventos internos#
Como referencia al leer registros o escribir reglas anti-cheat. Son los que envía el propio cliente del trabajo; el servidor comprueba cada uno con su propio registro antes de cambiar nada, así que no hay motivo para dispararlos desde otro recurso.
Evento | Se envía cuando | El servidor comprueba |
|---|---|---|
| Se pulsa Start route. | El trabajo, que no haya una ruta abierta, el nivel guardado frente a la ruta y el autobús. |
| Se pulsa E en una parada. | Siguiente parada en orden, distancia, asiento del conductor, modelo de autobús aprobado. |
| El autobús ha aparecido. | Una ruta abierta; el número de asientos se limita a 1–40. |
| El autobús recibe un golpe. | Una ruta abierta, uno cada 3 segundos, el límite por ruta. |
| Un jugador se sienta en el autobús. | Ruta abierta, mismo vehículo, conductor al volante, modelo aprobado, tiempo de espera, efectivo del pasajero. |
| Se pulsa E en el punto de devolución. | Todas las paradas atendidas, distancia, que no se haya pagado ya, el trabajo. |
| Se abandona una ruta, o su autobús nunca apareció. | Descarta la ruta. No se paga nada. |
| Se pone o se quita el uniforme. | Se guarda tal como se informa — solo alimenta los dos exports de servicio. |
Sobre los rechazos#
Cuando el servidor se niega a iniciar una ruta, responde con una clave de traducción, no con una frase — NOTIFY_NOT_BUS_DRIVER, NOTIFY_ALREADY_ON_MISSION, NOT_ENOUGH_LEVEL o NOTIFY_VEHICLE_LOCKED — y el jugador la lee en su propio idioma. Una parada o devolución que no supera una comprobación simplemente no se cuenta: el aviso permanece hasta que el conductor está donde el servidor lo necesita. Errores comunes explica qué significa cada clave.



