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.
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
dispatch.alert(alert: DispatchAlert): booleanlocal 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
prison.jail(source: number, minutes: number, by?: number): booleanlocal 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
prison.release(source: number): booleanlocal 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
prison.timeLeft(source: number): numberlocal 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
mdt.record(record: MdtRecord): booleanlocal 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
mdt.provider(): string | nulllocal 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
ems.available(jobs: string[]): numberlocal 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
ems.distress(source: number, call: DistressCall): booleanlocal 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
ems.provider(): string | nulllocal 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
medical.revive(source: number): booleanDevuelve 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
medical.heal(source: number): booleanDevuelve 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
medical.isDead(source: number): booleanDevuelve 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
medical.provider(): string | nullDevuelve 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
stress.gain(source: number, amount: number): booleanlocal 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 tiroteostress.relieve
Quita puntos de estrés.
Lado: Servidor · Espera: no
stress.relieve(source: number, amount: number): booleanlocal 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
stress.provider(): string | nulllocal 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
needs.refill(source: number): booleanSin 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
definitions.job(name: string): JobDefinition | nullSin 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
definitions.gang(name: string): GangDefinition | nullSin 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
isPrimeTime(job?: string): booleanSin 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");Dinero y banca
money.transfer entre dos cuentas, el script de banca a través de ai-core y las facturas a través del script de facturación que funcione.
Mundo
Hora y clima a través del script de clima que funcione, routing buckets del asignador de ai-core, cerraduras de puertas y puntos de aparición de personajes guardados.