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

Celular

Números de celular, e-mails, mensagens de texto e notificações do celular pelo script de celular que o servidor roda.

As chamadas de celular passam pelo ai-core, nunca pelos exports próprios de um script de celular. O ai-core encaminha cada chamada ao primeiro script de celular que estiver rodando (tgiann-phone, lb-phone, gksphone e os outros da lista de compatibilidade). Enquanto nenhum celular está rodando, cada chamada responde null ou false.

GetPhoneNumber

O número de celular de um jogador.

Lado: Servidor · Espera: não · Lib: phone.number

Assinatura
GetPhoneNumber(source: number): string | null
Lua
local number = exports['ai-core']:GetPhoneNumber(source) -- string ou nil

Parâmetros

Prop

Type

Retorno

string | null: o número como o script de celular o escreve. null quando o jogador não tem um, nenhum celular está rodando ou source não é um número.

Exemplo

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

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

// Um item de cartão de visita mostra o número do dono.
onClientCallback("myscript:myNumber", (source) => {
  const number = core.GetPhoneNumber(source);
  return number ? { ok: true, number } : fail("NO_PHONE_NUMBER");
});

GetSourceByPhone

O jogador online que tem um número de celular.

Lado: Servidor · Espera: não · Lib: phone.sourceOf

Assinatura
GetSourceByPhone(number: string): number | null
Lua
local src = exports['ai-core']:GetSourceByPhone('5551234') -- number ou nil

Parâmetros

Prop

Type

Retorno

number | null: o id de servidor. null quando o dono desse número não está online, o número é desconhecido, nenhum celular está rodando ou number não é texto.

Exemplo

import { notify, resourceExport } from "@aicore-fivem/lib/server";
import { Locale } from "common";

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

/** A taxi job tells the caller their cab is on the way, if they are online. */
export function cabOnTheWay(callerNumber: string): void {
  const caller = core.GetSourceByPhone(callerNumber);
  if (caller !== null) notify(caller, Locale("NOTIFY_CAB_COMING"), "info");
}

HasPhone

Se um jogador tem celular (para scripts de celular que precisam de um item de celular, se ele carrega um).

Lado: Servidor · Espera: não · Lib: phone.hasPhone

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

Parâmetros

Prop

Type

Retorno

boolean: true quando o script de celular diz que o jogador tem celular. false quando não tem, quando nenhum celular está rodando ou source não é um número.

Exemplo

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

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

// Um emprego que distribui tarefas por mensagem de texto precisa de um celular.
onClientCallback("myscript:startDeliveries", (source) =>
  core.HasPhone(source) ? { ok: true } : fail("NEED_PHONE"),
);

SendPhoneMail

Envia um e-mail para o celular de um jogador.

Lado: Servidor · Espera: não · Lib: phone.mail

Assinatura
SendPhoneMail(to: number | string, mail: PhoneMail): boolean
Lua
local sent = exports['ai-core']:SendPhoneMail(source, { sender = 'LS Customs', subject = 'Invoice', message = '...' })

Parâmetros

Prop

Type

PhoneMail

Prop

Type

Os textos são mostrados como foram enviados: passe textos traduzidos. Veja PhoneMail.

Retorno

boolean: true quando o script de celular aceitou o e-mail. false quando o jogador não tem número, subject ou message falta, nenhum celular está rodando ou ele recusou.

Exemplo

import { resourceExport } from "@aicore-fivem/lib/server";
import { Locale } from "common";

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

/** The heist contact mails the location after the job was accepted. */
export function mailHeistLocation(source: number, street: string): void {
  core.SendPhoneMail(source, {
    sender: Locale("MAIL_CONTACT"),
    subject: Locale("MAIL_HEIST_SUBJECT"),
    message: Locale("MAIL_HEIST_BODY", street),
  });
}

SendPhoneMessage

Envia uma mensagem de texto de um número para um jogador ou número.

Lado: Servidor · Espera: não · Lib: phone.message

Assinatura
SendPhoneMessage(from: string, to: number | string, text: string): boolean
Lua
local sent = exports['ai-core']:SendPhoneMessage('Dispatch', source, 'Your cab is here.')

Parâmetros

Prop

Type

Retorno

boolean: true quando o script de celular aceitou a mensagem. false quando o destinatário não tem número, from ou text não é texto, nenhum celular está rodando ou ele recusou.

Exemplo

import { resourceExport } from "@aicore-fivem/lib/server";
import { Locale } from "common";

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

/** The next delivery address arrives by text. */
export function textNextStop(source: number, street: string): void {
  if (!core.SendPhoneMessage(Locale("SENDER_DISPATCH"), source, Locale("TEXT_NEXT_STOP", street)))
    console.log(`player ${source} could not get the text`);
}

PhoneNotify

Mostra uma notificação no celular de um jogador.

Lado: Servidor · Espera: não · Lib: phone.notify

Assinatura
PhoneNotify(source: number, notification: PhoneNotification): boolean
Lua
local shown = exports['ai-core']:PhoneNotify(source, { title = 'Bank', message = 'Salary paid', app = 'bank' })

Parâmetros

Prop

Type

PhoneNotification

Prop

Type

Veja PhoneNotification.

Retorno

boolean: true quando o script de celular a mostrou. false quando title falta, nenhum celular está rodando, source não é um número ou ele recusou.

Exemplo

import { resourceExport } from "@aicore-fivem/lib/server";
import { Locale } from "common";

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

/** Tells the owner their car was towed. */
export function towedNotice(source: number, plate: string): void {
  core.PhoneNotify(source, { title: Locale("PHONE_TOW_TITLE"), message: Locale("PHONE_TOW_TEXT", plate) });
}

Nesta página