EMS
Quantos médicos estão livres para atender um chamado e os chamados de socorro de jogadores caídos, pelo script de EMS que estiver rodando ou pelo próprio ai-core.
A camada de EMS responde a duas perguntas para qualquer script: "quantos médicos podem atender um chamado?" e "envie um chamado de socorro aos médicos". O ai-core pergunta à fonte de EMS que a configuração EMS source do painel escolhe, ou ao primeiro script de EMS que estiver rodando. O que esse script não consegue responder, o ai-core responde ele mesmo: médicos livres a partir das próprias contagens de quem está em serviço, e um chamado de socorro como alerta de alta prioridade aos empregos pela camada de dispatch.
GetEmsSystem
A fonte de EMS em uso.
Lado: Servidor · Espera: não · Lib: ems.provider()
GetEmsSystem(): string | nulllocal system = exports['ai-core']:GetEmsSystem() -- 'ai-core' ou o nome de um scriptParâmetros
Nenhum.
Retorno
string | null: o nome do recurso do script de EMS, ou "ai-core" quando a parte própria do ai-core responde (nenhum script de EMS rodando). A parte própria do ai-core está sempre lá, então na prática isto nunca é null.
Exemplo
import { addCommand, resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
addCommand("emssystem", { help: "Shows the EMS source", restricted: true }, () => {
console.log(core.GetEmsSystem());
});GetAvailableMedics
Quantos médicos nos empregos informados podem atender um chamado agora. Um script de EMS com dispatch próprio deixa de fora os médicos ocupados; a resposta própria do ai-core é todo mundo em serviço.
Lado: Servidor · Espera: não · Lib: ems.available
GetAvailableMedics(jobs: string[]): numberlocal medics = exports['ai-core']:GetAvailableMedics({ 'ambulance' })Parâmetros
Prop
Type
Retorno
number: médicos livres. 0 para nenhum, uma lista vazia ou um valor que não é lista. Quando o script de EMS falha, a contagem própria do ai-core de quem está em serviço responde.
Exemplo
import { onClientCallback, resourceExport } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";
const core = resourceExport("ai-core");
const EMS_JOBS = ["ambulance"];
// O botão "renascer no hospital" só funciona enquanto nenhum médico pode vir.
onClientCallback("myscript:respawn", (source) => {
if (!core.IsPlayerDead(source)) return fail("NOT_DOWN");
if (core.GetAvailableMedics(EMS_JOBS) > 0) return fail("MEDICS_AVAILABLE");
// ... leve o jogador ao hospital e reviva
return { ok: true };
});SendDistress
Envia o chamado de socorro de um jogador caído aos médicos. Com um script de EMS que aceita chamados, o chamado vai para ele; senão o ai-core envia um alerta de alta prioridade (código 10-52, um ícone de kit médico, a posição do jogador) aos membros em serviço de jobs pelo sistema de alertas ativo.
Lado: Servidor · Espera: não · Lib: ems.distress
SendDistress(source: number, call: DistressCall): booleanlocal sent = exports['ai-core']:SendDistress(source, { jobs = { 'ambulance' }, message = 'Unconscious' })Parâmetros
Prop
Type
DistressCall
Prop
Type
Veja DistressCall.
Retorno
boolean: true quando algo aceitou o chamado. false quando o jogador não está online, jobs está vazio, o script de EMS o recusou ou o alerta próprio do ai-core não encontrou nenhum sistema de alertas rodando.
Exemplo
import { onClientCallback, Cooldowns, resourceExport } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";
import { Locale } from "common";
const core = resourceExport("ai-core");
const cooldowns = new Cooldowns();
// O botão "chamar um médico" na tela de morte, uma vez por minuto.
onClientCallback("myscript:distress", (source) => {
if (!core.IsPlayerDead(source)) return fail("NOT_DOWN");
if (!cooldowns.take(source, 60_000)) return fail("WAIT");
const sent = core.SendDistress(source, { jobs: ["ambulance"], message: Locale("DISTRESS_UNCONSCIOUS") });
return sent ? { ok: true } : fail("NO_MEDICS");
});