Cómo funcionan las integraciones#
La carrera en sí no sabe nada de tu framework, inventario o teléfono. Todo lo específico del servidor pasa por pequeños archivos de código abierto en custom/, así que se puede leer y cambiar sin tocar el resto.
Capa | Compatible | Archivo | Sin ella |
|---|---|---|---|
Framework | es_extended · qb-core · qbx_core |
| Obligatorio: el recurso no se inicia. |
Notificaciones | ox_lib por defecto, cualquier sistema editando una función |
| — |
Misiones | qs-inventory |
| Sin misiones; las carreras no cambian. |
Teléfono | qs-smartphone | Integrado en el teléfono | Carreras solo desde la tablet. |
Base de datos | oxmysql | — | Obligatorio. |
Las integraciones opcionales se comprueban cuando se usan, así que qs-inventory y qs-smartphone funcionan sea cual sea el orden en que se inicien. Solo el framework tiene que iniciarse antes de Advanced Racing.
Frameworks#
El bridge se elige según el recurso de framework que esté iniciado: es_extended carga custom/esx/, qb-core y qbx_core cargan custom/qb/. Los perfiles de carreras pertenecen al personaje (el identifier de ESX o el citizen id de QBCore), así que cada personaje tiene su propia puntuación, circuitos y resultados.
Cada bridge responde a las mismas preguntas:
Función | Se usa para |
|---|---|
| De quién es este perfil de carreras. El server id 0 representa al organizador Automated. |
| El nombre y el apellido del personaje; el nombre pasa a ser el nombre inicial del piloto. |
| Inscripciones, reembolsos y premios, en |
| Verificar circuitos, eliminar cualquier carrera y organizar competiciones sin la puntuación. |
| El ítem de la tablet. |
| Funciones auxiliares para las anteriores. |
Cuentas de dinero#
Config.MoneyType | ESX | QBCore · Qbox |
|---|---|---|
| Efectivo | Efectivo ( |
| Banco | Banco |
| Dinero negro: carreras callejeras para servidores criminales | Solo si tu QBCore tiene un tipo de dinero con ese nombre |
Notificaciones#
Cada mensaje que se muestra sobre el juego (te uniste, reembolso, eliminado, un piloto terminó) pasa por una función, Notification en custom/client.lua. Usa ox_lib de serie:
-- custom/client.lua
function Notification(msg, type) -- type is 'info', 'error' or 'success'
lib.notify({
title = msg,
type = type
})
endSustituye el cuerpo para usar tu propio sistema. Por ejemplo, okokNotify:
function Notification(msg, type)
exports['okokNotify']:Alert('Racing', msg, 5000, type)
endLos mensajes del servidor llegan a la misma función, así que este único cambio los cubre todos. Las ventanas emergentes dentro de la tablet son de la propia tablet y no se ven afectadas.
Quasar Smartphone#
Con qs-smartphone en ejecución, la app Racing del teléfono lee directamente de Advanced Racing: el mismo perfil, carreras y resultados que la tablet. No hay nada que configurar.

En la app | Qué hace |
|---|---|
Races | Próximas carreras, unirse y salir de ellas, un punto de ruta a la línea de salida y crear una carrera normal. |
Tracks | Todos los circuitos, favoritos y los mejores tiempos de cada circuito. |
Leaderboard y eventos | El top 20, los eventos recientes y las competiciones completadas. |
Profile | Nombre, avatar y colores, y si el piloto está en una carrera ahora mismo. |
La app busca el recurso por su nombre,
qs-advancedracing. Si se cambia el nombre de la carpeta, la app indica que racing no está iniciado.
Misiones de Quasar Inventory#
Con qs-inventory en ejecución, cada jugador recibe dos misiones de carreras cuando carga su personaje:
Misión | Nombre | Se completa cuando | Recompensa · nivel |
|---|---|---|---|
Race Entry |
| El jugador se une a una carrera. | 150 · nivel 1 |
Race Winner |
| El jugador termina en un puesto con premio. | 300 · nivel 2 |
Los títulos, descripciones, recompensas y niveles están en custom/missions.lua.
Añadir un framework#
Un framework que no está en la lista necesita una carpeta y una línea:
Copia el bridge más parecido
Duplica
custom/qb/ocustom/esx/comocustom/myframework/, con suclient.luayserver.lua.Completa las funciones
Reescribe cada función de
server.lua(la tabla de Frameworks) con las llamadas de tu framework. ManténgetIdentifierdevolviendo'automated'para el server id 0, y mantén la líneareturn frameworkal final.Regístralo
En
shared/config.lua, asocia el recurso de tu framework al nombre de la carpeta:lua local frameworks = { ['es_extended'] = 'esx', ['qb-core'] = 'qb', ['qbx_core'] = 'qb', ['my_core'] = 'myframework', -- your resource → custom/myframework/ }
Ejecuta solo un framework: si hay dos de la lista iniciados, se puede elegir cualquiera.
Idiomas#
Se incluyen 28 traducciones en locales/, y el mismo archivo controla la tablet, el texto de la línea de salida, las tarjetas del mapa y las notificaciones:
ar · bg · ca · cs · da · de · el · en · es · fa · fr · hi · hu · it · ja · ko · nl · no · pl · pt · ro · ru · sl · sv · th · tr · zh-CN · zh-TW
Config.Locale = 'es' -- the file name without .jsonPara añadir un idioma, copia locales/en.json con un nombre nuevo como locales/eu.json, traduce los valores (nunca las claves) y pon Config.Locale en 'eu'. Cualquier clave que falte en tu archivo se toma del inglés, y la consola la indica para que puedas añadirla.



