AI Core
Referência da APIAI Core: exports de servidor

Médico

Reviva e cure jogadores e verifique se um jogador está caído, pelo script de morte que o servidor roda.

Mortes e revives passam pelo ai-core, nunca pelos exports ou state bags próprios de um script de morte (ai-death incluído). O ai-core encaminha cada chamada ao primeiro script de morte que estiver rodando: ai-death, qbx_medical, ars_ambulancejob, qb-ambulancejob, esx_ambulancejob e os outros da lista de compatibilidade. Sem nenhum rodando, ninguém conta como caído e nada pode ser revivido.

"Caído" significa morto ou em last stand, como o script de morte vê. Scripts de morte mantêm vivo um ped caído, então nunca use o IsEntityDead do jogo para perguntar se um jogador está caído.

Para reagir quando um jogador morre, escute o evento de servidor do ai-core ai-core:playerDied (src, killer, weaponHash) em vez de verificar a vida. Veja Eventos e estado.

GetMedicalSystem

O nome do recurso do script de morte para o qual o ai-core encaminha.

Lado: Servidor · Espera: não · Lib: medical.provider()

Assinatura
GetMedicalSystem(): string | null
Lua
local system = exports['ai-core']:GetMedicalSystem() -- string ou nil

Parâmetros

Nenhum.

Retorno

string | null: o nome do recurso do script de morte. null quando nenhum está rodando.

Exemplo

import { addCommand, resourceExport } from "@aicore-fivem/lib/server";

const core = resourceExport("ai-core");

addCommand("deathsystem", { help: "Shows the death script in use", restricted: true }, () => {
  console.log(core.GetMedicalSystem() ?? "none: revive and heal do nothing");
});

RevivePlayer

Levanta um jogador caído onde ele está.

Lado: Servidor · Espera: não · Lib: medical.revive

Assinatura
RevivePlayer(source: number): boolean
Lua
local revived = exports['ai-core']:RevivePlayer(source)

Parâmetros

Prop

Type

Retorno

boolean: true quando o jogador estava caído e o script de morte o reviveu. false quando o jogador não estava caído, não está online, nenhum script de morte está rodando ou ele falhou.

Exemplo

import { onClientCallback, coordsOf, isNear, progressFor, resourceExport } from "@aicore-fivem/lib/server";
import { fail, oneArg, readId } from "@aicore-fivem/lib/shared";
import { Locale } from "common";

const core = resourceExport("ai-core");

// Um médico revive um jogador caído ao lado com um kit médico.
onClientCallback("myscript:revive", { args: oneArg(readId), lock: true }, async (source, target) => {
  if (core.GetDutyJob(source) !== "ambulance") return fail("NOT_EMS");
  if (target === source || !isNear(target, coordsOf(source), 2)) return fail("TOO_FAR");
  if (!core.IsPlayerDead(target)) return fail("NOT_DOWN");
  if (!(await progressFor(source, { label: Locale("REVIVING"), duration: 10000 }))) return fail("CANCELLED");
  if (!core.RemoveItem(source, "medkit")) return fail("NO_MEDKIT");
  core.RevivePlayer(target);
  core.RefillNeeds(target);
  return { ok: true };
});

HealPlayer

Dá vida cheia a um jogador que não está caído.

Lado: Servidor · Espera: não · Lib: medical.heal

Assinatura
HealPlayer(source: number): boolean
Lua
local ok = exports['ai-core']:HealPlayer(source)

Parâmetros

Prop

Type

Retorno

boolean: true quando a cura foi entregue ao script de morte. false quando o jogador não está online, nenhum script de morte está rodando ou ele falhou. Um jogador caído precisa de RevivePlayer; o que um script de morte faz com uma cura num jogador caído é decisão dele.

Exemplo

import { onClientCallback, resourceExport, near } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";

const core = resourceExport("ai-core");
const CHECK_IN = { x: 308.4, y: -595.3, z: 43.3 };

// Check-in no hospital: pague e seja tratado.
onClientCallback("myscript:checkIn", { guards: [near(CHECK_IN, 2)], lock: true }, (source) => {
  if (core.IsPlayerDead(source)) return fail("IS_DOWN");
  if (!core.RemoveMoney(source, "bank", 250, "hospital")) return fail("NOT_ENOUGH_MONEY");
  core.HealPlayer(source);
  return { ok: true };
});

IsPlayerDead

Se um jogador está caído (morto ou em last stand) no script de morte que estiver rodando.

Lado: Servidor · Espera: não · Lib: medical.isDead (servidor); no cliente, o medical.isDead() da lib lê o estado do jogador local sem uma chamada

Assinatura
IsPlayerDead(source: number): boolean
Lua
local down = exports['ai-core']:IsPlayerDead(source)

Parâmetros

Prop

Type

Retorno

boolean: true quando o jogador está caído. false quando está de pé, não está online ou nenhum script de morte está rodando.

Exemplo

import { onClientCallback, resourceExport } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";

const core = resourceExport("ai-core");

// Um jogador caído não pode abrir o menu da loja de celulares.
onClientCallback("myscript:openShop", (source) =>
  core.IsPlayerDead(source) ? fail("IS_DOWN") : { ok: true },
);

Nesta página