AI Core
Referencia de la APILib: servidor

Trabajos y servicios

Alertas policiales, prisión, registros del MDT, médicos, revivir y curar, estrés, hambre y sed, definiciones de trabajos y bandas, horas punta.

TypeScript
import { dispatch, prison, mdt, ems, medical, stress, needs, definitions, isPrimeTime } from "@aicore-fivem/lib/server";

Cada objeto de esta página pasa por una de las capas de ai-core: responde el script que usa el servidor para esa tarea (un sistema de alertas, una prisión, un MDT, un script de muerte, un HUD). Tu script sigue funcionando cuando el dueño lo cambia. Mientras no haya un script así en marcha, las llamadas fallan en silencio (false, 0, null).

dispatch

dispatch.alert

Envía una alerta a la policía (o a otro trabajo). El sistema de alertas la muestra a los miembros de servicio de jobs, por defecto los trabajos de policía.

Lado: Servidor · Espera: no

Firma
dispatch.alert(alert: DispatchAlert): boolean
Lua
local ok = aiLib.dispatch.alert(alert)

DispatchAlert

Prop

Type

El tipo es DispatchAlert.

Devuelve

boolean: true cuando se envió. false cuando no hay sistema de alertas en marcha o la alerta no es válida.

Ejemplo

import { dispatch, coordsOf, createLocale } from "@aicore-fivem/lib/server";

const Locale = createLocale();

function storeRobbed(source: number, store: string) {
  dispatch.alert({
    code: "10-90",
    title: Locale("ALERT_STORE_ROBBERY"),
    message: store,
    coords: coordsOf(source),
    source,
    icon: "store",
    priority: "high",
  });
}

prison

Condenas de prisión a través de ai-core, sea cual sea el script de prisión que funcione.

prison.jail

Envía a prisión a un jugador cargado.

Lado: Servidor · Espera: no

Firma
prison.jail(source: number, minutes: number, by?: number): boolean
Lua
local ok = aiLib.prison.jail(source, minutes, by)

Prop

Type

Devuelve true cuando se encarceló, false mientras no haya prisión en marcha.

if (!prison.jail(target, 15, officer)) return fail("NO_PRISON");

prison.release

Deja salir a un jugador encarcelado.

Lado: Servidor · Espera: no

Firma
prison.release(source: number): boolean
Lua
local ok = aiLib.prison.release(source)

Devuelve true cuando se liberó, false cuando no está encarcelado o no hay prisión en marcha.

prison.release(target);

prison.timeLeft

Lado: Servidor · Espera: no

Firma
prison.timeLeft(source: number): number
Lua
local minutes = aiLib.prison.timeLeft(source)

Devuelve los minutos de condena que quedan, 0 cuando está libre.

if (prison.timeLeft(source) > 0) return fail("IN_PRISON");

mdt

Registros policiales del MDT (multas, órdenes de búsqueda, arrestos, cárcel) a través de la capa de MDT de ai-core. No se escribe nada mientras no haya MDT en marcha.

mdt.record

Escribe un registro en el MDT policial.

Lado: Servidor · Espera: no

Firma
mdt.record(record: MdtRecord): boolean
Lua
local ok = aiLib.mdt.record(record)

MdtRecord

Prop

Type

El tipo es MdtRecord.

Devuelve true cuando se escribió, false cuando no hay MDT en marcha o este no acepta ese tipo de registro.

if (prison.jail(target, 20, officer)) mdt.record({ kind: "jail", target, by: officer, title: "Armed robbery", minutes: 20 });

mdt.provider

Lado: Servidor · Espera: no

Firma
mdt.provider(): string | null
Lua
local name = aiLib.mdt.provider()

Devuelve el MDT al que van los registros, o null.

if (!mdt.provider()) console.log("no MDT: records are skipped");

ems

Médicos a través de la capa de EMS de ai-core: el recuento y las llamadas de auxilio propios de un script de EMS, o si no, los recuentos de servicio y las alertas de ai-core.

ems.available

Cuántos médicos están libres para atender una llamada.

Lado: Servidor · Espera: no

Firma
ems.available(jobs: string[]): number
Lua
local count = aiLib.ems.available(jobs)

Prop

Type

Devuelve el número de médicos de servicio en jobs, dejando fuera a los ocupados cuando un script de dispatch los conoce.

// Deja a los jugadores reaparecer en el hospital solo cuando ningún médico puede venir.
const canRespawn = ems.available(["ambulance"]) === 0;

ems.distress

Envía una llamada de auxilio para un jugador a los médicos de call.jobs.

Lado: Servidor · Espera: no

Firma
ems.distress(source: number, call: DistressCall): boolean
Lua
local ok = aiLib.ems.distress(source, call)

Prop

Type

El tipo es DistressCall.

Devuelve true cuando algo aceptó la llamada, false en caso contrario.

if (!ems.distress(source, { jobs: ["ambulance"], message: "Unconscious" })) return fail("NO_MEDICS");

ems.provider

Lado: Servidor · Espera: no

Firma
ems.provider(): string | null
Lua
local name = aiLib.ems.provider()

Devuelve la fuente de EMS que usa la capa, "ai-core" para sus propios recuentos de servicio.

console.log(`medics through ${ems.provider()}`);

medical

Revivir, curar y el estado de derribado a través de la capa médica de ai-core, sea cual sea el script de muerte o de ambulancia que funcione. Sin equivalente en Lua: llama a los exports de ai-core RevivePlayer, HealPlayer, IsPlayerDead.

medical.revive

Levanta a un jugador derribado donde está tendido.

Lado: Servidor · Espera: no

Firma
medical.revive(source: number): boolean

Devuelve true cuando se revivió, false cuando no está derribado o no hay script de muerte en marcha.

if (!medical.revive(target)) return fail("NOT_DOWN");

medical.heal

Da la salud completa a un jugador que no está derribado.

Lado: Servidor · Espera: no

Firma
medical.heal(source: number): boolean

Devuelve true cuando se curó, false cuando no hay script de muerte en marcha.

medical.heal(source);

medical.isDead

Si el jugador está derribado.

Lado: Servidor · Espera: no

Firma
medical.isDead(source: number): boolean

Devuelve true cuando está derribado; false sin script de muerte. Úsalo en lugar de leer la salud del ped.

if (medical.isDead(source)) return fail("YOU_ARE_DOWN");

medical.provider

Lado: Servidor · Espera: no

Firma
medical.provider(): string | null

Devuelve el script de muerte que responde (ai-death...), o null cuando no hay ninguno en marcha.

console.log(`deaths through ${medical.provider() ?? "nothing"}`);

stress

El estrés de los jugadores (de 0 a 100) a través de la capa de estrés de ai-core, sea cual sea el HUD que lo lleve.

stress.gain

Añade puntos de estrés.

Lado: Servidor · Espera: no

Firma
stress.gain(source: number, amount: number): boolean
Lua
local ok = aiLib.stress.gain(source, amount)

Prop

Type

Devuelve true cuando se añadieron, false cuando no hay un HUD con estrés en marcha.

stress.gain(source, 5); // después de un tiroteo

stress.relieve

Quita puntos de estrés.

Lado: Servidor · Espera: no

Firma
stress.relieve(source: number, amount: number): boolean
Lua
local ok = aiLib.stress.relieve(source, amount)

Devuelve true cuando se quitaron, false cuando no hay un HUD con estrés en marcha o amount es 0 o menos.

inventory.registerUsableItem("cigarette", (source) => {
  stress.relieve(source, 10);
});

stress.provider

Lado: Servidor · Espera: no

Firma
stress.provider(): string | null
Lua
local name = aiLib.stress.provider()

Devuelve el HUD que lleva el estrés, o null.

if (!stress.provider()) console.log("no HUD keeps stress");

needs

needs.refill

Llena por completo el hambre y la sed (revivir de admin, hospital), a través del HUD que las lleva, o de los metadatos del personaje de ai-core si no hay ninguno.

Lado: Servidor · Espera: no

Firma
needs.refill(source: number): boolean

Sin equivalente en Lua: llama al export de ai-core RefillNeeds(source).

Devuelve true cuando se rellenaron, false cuando el jugador no tiene personaje.

if (medical.revive(target)) needs.refill(target);

Definiciones de trabajos y bandas

definitions.job

La definición de un trabajo tal como está en el panel de ai-core. Cada una se lee una vez de ai-core y se guarda hasta que el panel la cambia, así que una lectura es una consulta en memoria.

Lado: Servidor · Espera: no

Firma
definitions.job(name: string): JobDefinition | null

Sin equivalente en Lua: llama al export de ai-core GetJobDefinition(name).

Devuelve JobDefinition (label, type, defaultDuty, listed?, grades), o null cuando no existe ese trabajo.

const label = definitions.job("police")?.label ?? "police";

definitions.gang

Lado: Servidor · Espera: no

Firma
definitions.gang(name: string): GangDefinition | null

Sin equivalente en Lua: llama al export de ai-core GetGangDefinition(name).

Devuelve GangDefinition (label, grades), o null.

const gang = definitions.gang("ballas");
if (!gang) return fail("UNKNOWN_GANG");

Horas punta

isPrimeTime

Si es hora punta para un trabajo, según el ajuste de horas punta de ai-core. Las horas vienen de tgiann-policealert mientras está en marcha, o si no, de las horas fijadas en el panel de ai-core.

Lado: Servidor · Espera: no

Firma
isPrimeTime(job?: string): boolean

Sin equivalente en Lua: llama al export de ai-core IsPrimeTime(job).

Prop

Type

Devuelve true durante las horas punta.

if (!isPrimeTime("police")) return fail("BANK_CLOSED_FOR_HEISTS");

En esta página