AI Core

Scripts recomendados

Cómo entra un script gratuito en la sección Recommended scripts del panel de administración.

El dashboard del panel de administración tiene una sección Recommended scripts: scripts gratuitos que vale la pena instalar en un servidor AI Core. Cada uno aparece solo mientras encaja con el servidor (si no corre ningún script de teléfono, se recomienda un teléfono; si el script ya corre, su tarjeta desaparece), y los que aparecen también se escriben una vez en la consola del servidor 15 segundos después del arranque. El propietario oculta una tarjeta con su X y la recupera en la pestaña General, tarjeta Recommendations.

Requisitos

  • Es gratuito. La tarjeta muestra una etiqueta Free.
  • Funciona a través de AI Core, no de un solo framework o un solo script. Todo lo que el script comparte con otros scripts pasa por las capas y los exports de AI Core, para que cada script ai-*, el puente ESX / QB / Qbox y los demás scripts del propietario funcionen con él. Por ejemplo:
    • dar y quitar llaves de vehículos pasa por la capa de llaves (lib vehicleKeys.give / vehicleKeys.remove, exports GiveVehicleKeys / RemoveVehicleKeys), nunca por los exports de un script de llaves;
    • aplicar una apariencia y recargar el skin pasan por la capa de apariencia (appearance.apply, appearance.reloadSkin);
    • los objetos pasan por la capa de inventario (inventory.addItem, o exports['ai-core']:AddItem(source, 'bread', 2) desde Lua);
    • el combustible, las puertas, los garajes, el teléfono y las alertas policiales (dispatch.alert) pasan igual por sus capas.
  • Si su categoría tiene una capa, tiene un adaptador en ella. Un script de inventario, llaves de vehículos, ropa, combustible, cerraduras de puertas, garaje, teléfono, dispatch, banco, facturas o médico necesita un adaptador en esa capa, para que los demás scripts lleguen a él. Un script que responde a una API que la capa ya lee necesita menos: un script de combustible con exports de cliente al estilo LegacyFuel GetFuel(vehicle) / SetFuel(vehicle, level) es una línea en la lista de la capa de combustible.

Las capas y los scripts que soportan: Capas y el puente, Compatibilidad, y una nota por capa en docs/compat/ del repositorio del servidor.

Entrar en la lista

Añade la entrada

Haz un fork de aifivem/ai-core y añade una entrada a la lista RECOMMENDATIONS en resource/server/recommendations/index.ts:

{
  id: "my-garbagejob",
  title: "ADMIN_REC_MY_GARBAGEJOB",
  desc: "ADMIN_REC_MY_GARBAGEJOB_DESC",
  url: "https://example.com/my-garbagejob",
  free: true,
  // aparece mientras el script no corre
  shows: (runs) => !runs("my-garbagejob"),
},
CampoQué contiene
idEl nombre de recurso del script. Una tarjeta ocultada lo guarda, así que tiene de 2 a 64 letras minúsculas, dígitos, _ o -.
title, descClaves de idioma de ai-core: el nombre del script y una línea de por qué el servidor lo quiere.
urlLa página donde el propietario consigue el script.
freetrue.
showsCuándo aparece la tarjeta. runs(resource) es true mientras ese recurso está iniciado y no se está deteniendo. Una condición también puede preguntar a una capa, como la entrada del teléfono: shows: () => phones.active === null (no corre ningún teléfono).

AI Core vuelve a comprobar las condiciones cuando un recurso arranca o se detiene, cuando cambia la capa de teléfono y cuando cambian los ajustes. Una condición sobre otra capa también conecta el cambio de esa capa a recommendations.refresh(), como hace el final del archivo para el teléfono (phones.onSwitch).

Añade los dos textos

En locales/en.json, junto a las demás claves ADMIN_REC_*:

"ADMIN_REC_MY_GARBAGEJOB": "My Garbage Job",
"ADMIN_REC_MY_GARBAGEJOB_DESC": "Garbage routes with pay per stop; items and vehicle keys go through ai-core's layers."

Solo en inglés: los demás idiomas se añaden sobre en.json.

Añade el adaptador, si tu categoría tiene una capa

En el mismo pull request:

  • el archivo del adaptador en la carpeta adapters/ de la capa: resource/server/<layer>/adapters/<resource>.ts, más resource/client/<layer>/adapters/<resource>.ts cuando el script solo tiene una API de cliente. Copia el adaptador de un script parecido;
  • su línea en la lista de adaptadores de la capa: resource/server/<layer>/registry.ts, o el index.ts de la capa cuando no tiene registry.ts (phone, medical, prison, world).

Después abre un segundo pull request en aifivem/aicore-server que añada el script a la nota de la capa docs/compat/<layer>.md (por ejemplo vehicle-keys.md, phone.md): versión probada, estado y límites conocidos.

Abre el pull request

En ai-core ejecuta bun install, luego bun run typecheck, bun run lint y bun run build; los tres deben pasar. Pon al pull request un título Conventional Commit en inglés, por ejemplo feat(recommendations): recommend my-garbagejob. Los mantenedores lo revisan: comprueban que el script es gratuito y funciona a través de las capas, y luego lo fusionan; la tarjeta llega con la siguiente versión de ai-core.

En esta página