AI Core
Référence de l’APIAI Core : exports serveur

Téléphone

Numéros de téléphone, mails, SMS et notifications du téléphone via le script de téléphone qu’utilise le serveur.

Les appels de téléphone passent par ai-core, jamais par les exports propres à un script de téléphone. ai-core transmet chaque appel au premier script de téléphone qui tourne (tgiann-phone, lb-phone, gksphone et les autres de la liste de compatibilité). Tant qu’aucun téléphone ne tourne, chaque appel répond null ou false.

GetPhoneNumber

Le numéro de téléphone d’un joueur.

Côté : Serveur · Attend : non · Lib : phone.number

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

Paramètres

Prop

Type

Retour

string | null : le numéro tel que l’écrit le script de téléphone. null quand le joueur n’en a pas, qu’aucun téléphone ne tourne ou que source n’est pas un nombre.

Exemple

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

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

// Un objet carte de visite affiche le numéro du propriétaire.
onClientCallback("myscript:myNumber", (source) => {
  const number = core.GetPhoneNumber(source);
  return number ? { ok: true, number } : fail("NO_PHONE_NUMBER");
});

GetSourceByPhone

Le joueur en ligne qui possède un numéro de téléphone.

Côté : Serveur · Attend : non · Lib : phone.sourceOf

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

Paramètres

Prop

Type

Retour

number | null : l’id serveur. null quand le propriétaire de ce numéro n’est pas en ligne, que le numéro est inconnu, qu’aucun téléphone ne tourne ou que number n’est pas un texte.

Exemple

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

Indique si un joueur a un téléphone (pour les scripts de téléphone qui exigent un objet téléphone, s’il en porte un).

Côté : Serveur · Attend : non · Lib : phone.hasPhone

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

Paramètres

Prop

Type

Retour

boolean : true quand le script de téléphone dit que le joueur a un téléphone. false sinon, quand aucun téléphone ne tourne ou que source n’est pas un nombre.

Exemple

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

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

// Un métier qui distribue des tâches par SMS a besoin d’un téléphone.
onClientCallback("myscript:startDeliveries", (source) =>
  core.HasPhone(source) ? { ok: true } : fail("NEED_PHONE"),
);

SendPhoneMail

Envoie un mail sur le téléphone d’un joueur.

Côté : Serveur · Attend : non · Lib : phone.mail

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

Paramètres

Prop

Type

PhoneMail

Prop

Type

Les textes sont affichés tels quels : passez des textes traduits. Voir PhoneMail.

Retour

boolean : true quand le script de téléphone a accepté le mail. false quand le joueur n’a pas de numéro, que subject ou message manque, qu’aucun téléphone ne tourne ou qu’il a refusé.

Exemple

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

Envoie un SMS d’un numéro à un joueur ou à un numéro.

Côté : Serveur · Attend : non · Lib : phone.message

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

Paramètres

Prop

Type

Retour

boolean : true quand le script de téléphone a accepté le message. false quand le destinataire n’a pas de numéro, que from ou text n’est pas un texte, qu’aucun téléphone ne tourne ou qu’il a refusé.

Exemple

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

Affiche une notification sur le téléphone d’un joueur.

Côté : Serveur · Attend : non · Lib : phone.notify

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

Paramètres

Prop

Type

PhoneNotification

Prop

Type

Voir PhoneNotification.

Retour

boolean : true quand le script de téléphone l’a affichée. false quand title manque, qu’aucun téléphone ne tourne, que source n’est pas un nombre ou qu’il a refusé.

Exemple

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) });
}

Sur cette page