AI Core
API-ReferenzAI Core: Server-Exports

Handy

Telefonnummern, Mails, Textnachrichten und Handy-Benachrichtigungen über das Handy-Skript, das der Server nutzt.

Handy-Aufrufe laufen über ai-core, nie über die eigenen Exports eines Handy-Skripts. ai-core leitet jeden Aufruf an das erste laufende Handy-Skript weiter (tgiann-phone, lb-phone, gksphone und die anderen aus der Kompatibilitätsliste). Solange kein Handy läuft, antwortet jeder Aufruf mit null oder false.

GetPhoneNumber

Die Telefonnummer eines Spielers.

Seite: Server · Wartet: nein · Lib: phone.number

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

Parameter

Prop

Type

Rückgabe

string | null: die Nummer, so wie das Handy-Skript sie schreibt. null, wenn der Spieler keine hat, kein Handy läuft oder source keine Zahl ist.

Beispiel

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

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

// Ein Visitenkarten-Item zeigt die Nummer des Besitzers.
onClientCallback("myscript:myNumber", (source) => {
  const number = core.GetPhoneNumber(source);
  return number ? { ok: true, number } : fail("NO_PHONE_NUMBER");
});

GetSourceByPhone

Der Online-Spieler, der eine Telefonnummer hat.

Seite: Server · Wartet: nein · Lib: phone.sourceOf

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

Parameter

Prop

Type

Rückgabe

number | null: die Server-ID. null, wenn der Besitzer dieser Nummer nicht online ist, die Nummer unbekannt ist, kein Handy läuft oder number kein Text ist.

Beispiel

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

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

/** Ein Taxi-Job teilt dem Anrufer mit, dass sein Taxi unterwegs ist, wenn er online ist. */
export function cabOnTheWay(callerNumber: string): void {
  const caller = core.GetSourceByPhone(callerNumber);
  if (caller !== null) notify(caller, Locale("NOTIFY_CAB_COMING"), "info");
}

HasPhone

Ob ein Spieler ein Handy hat (bei Handy-Skripten, die ein Handy-Item brauchen: ob er eines trägt).

Seite: Server · Wartet: nein · Lib: phone.hasPhone

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

Parameter

Prop

Type

Rückgabe

boolean: true, wenn das Handy-Skript sagt, dass der Spieler ein Handy hat. false, wenn nicht, wenn kein Handy läuft oder source keine Zahl ist.

Beispiel

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

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

// Ein Job, der Aufträge per Textnachricht verteilt, braucht ein Handy.
onClientCallback("myscript:startDeliveries", (source) =>
  core.HasPhone(source) ? { ok: true } : fail("NEED_PHONE"),
);

SendPhoneMail

Sendet eine Mail an das Handy eines Spielers.

Seite: Server · Wartet: nein · 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 = '...' })

Parameter

Prop

Type

PhoneMail

Prop

Type

Texte werden so angezeigt, wie sie übergeben werden: Übergib übersetzte Texte. Siehe PhoneMail.

Rückgabe

boolean: true, wenn das Handy-Skript die Mail angenommen hat. false, wenn der Spieler keine Nummer hat, subject oder message fehlt, kein Handy läuft oder es abgelehnt hat.

Beispiel

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

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

/** Der Überfall-Kontakt mailt den Ort, nachdem der Auftrag angenommen wurde. */
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

Sendet eine Textnachricht von einer Nummer an einen Spieler oder eine Nummer.

Seite: Server · Wartet: nein · 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.')

Parameter

Prop

Type

Rückgabe

boolean: true, wenn das Handy-Skript die Nachricht angenommen hat. false, wenn der Empfänger keine Nummer hat, from oder text kein Text ist, kein Handy läuft oder es abgelehnt hat.

Beispiel

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

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

/** Die nächste Lieferadresse kommt per Textnachricht. */
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

Zeigt eine Benachrichtigung auf dem Handy eines Spielers.

Seite: Server · Wartet: nein · 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' })

Parameter

Prop

Type

PhoneNotification

Prop

Type

Siehe PhoneNotification.

Rückgabe

boolean: true, wenn das Handy-Skript sie angezeigt hat. false, wenn title fehlt, kein Handy läuft, source keine Zahl ist oder es abgelehnt hat.

Beispiel

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

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

/** Teilt dem Besitzer mit, dass sein Auto abgeschleppt wurde. */
export function towedNotice(source: number, plate: string): void {
  core.PhoneNotify(source, { title: Locale("PHONE_TOW_TITLE"), message: Locale("PHONE_TOW_TEXT", plate) });
}

Auf dieser Seite