AI Core
API-ReferenzLib: Server

Handy und Aussehen

Das Handy des Spielers über ai-core (Nummern, Mails, SMS, Benachrichtigungen) und das gespeicherte Aussehen von Charakteren über das jeweils laufende Kleidungs-Skript.

TypeScript
import { phone, appearance } from "@aicore-fivem/lib/server";

phone

Das Handy des Spielers über ai-core: Das erste laufende Handy-Skript (tgiann-phone, lb-phone...) antwortet. Ohne Handy-Skript antwortet jeder Aufruf mit null oder false. Die Lua-Zwillinge auf aiLib.phone haben dieselben Namen und dieselbe Argumentreihenfolge.

phone.number

Seite: Server · Wartet: nein

Signatur
phone.number(source: number): string | null
Lua
local number = aiLib.phone.number(source)

Rückgabewert: die Telefonnummer des Spielers, oder null (Lua nil), wenn er keine hat oder kein Handy-Skript läuft.

const number = phone.number(source);
if (!number) return fail("NO_PHONE_NUMBER");

phone.sourceOf

Der Online-Spieler, dem eine Telefonnummer gehört.

Seite: Server · Wartet: nein

Signatur
phone.sourceOf(number: string): number | null
Lua
local source = aiLib.phone.sourceOf(number)

Rückgabewert: die Server-ID, oder null (Lua nil), wenn niemand online diese Nummer hat.

const owner = phone.sourceOf("555-0101");
if (owner !== null) notify(owner, "Your phone is ringing");

phone.hasPhone

Ob der Spieler ein Handy dabeihat.

Seite: Server · Wartet: nein

Signatur
phone.hasPhone(source: number): boolean
Lua
local has = aiLib.phone.hasPhone(source)

Rückgabewert: true, wenn er eins hat; false ohne eins oder ohne Handy-Skript.

if (!phone.hasPhone(source)) return fail("NEED_PHONE");

phone.mail

Sendet eine Mail an das Handy eines Spielers.

Seite: Server · Wartet: nein

Signatur
phone.mail(to: number | string, mail: PhoneMail): boolean
Lua
local ok = aiLib.phone.mail(to, mail)

Prop

Type

Der Typ ist PhoneMail.

Rückgabewert: true, wenn gesendet, sonst false.

phone.mail(source, {
  sender: "Downtown Cab Co.",
  subject: "Your shift",
  message: "Pick up the taxi at the depot.",
});

phone.message

Sendet eine Textnachricht.

Seite: Server · Wartet: nein

Signatur
phone.message(from: string, to: number | string, text: string): boolean
Lua
local ok = aiLib.phone.message(from, to, text)

Prop

Type

Rückgabewert: true, wenn gesendet, sonst false.

phone.message("Dealer", source, "Meet me behind the gas station.");

phone.notify

Zeigt eine Benachrichtigung im Handy an.

Seite: Server · Wartet: nein

Signatur
phone.notify(source: number, notification: PhoneNotification): boolean
Lua
local ok = aiLib.phone.notify(source, notification)

Prop

Type

Der Typ ist PhoneNotification.

Rückgabewert: true, wenn angezeigt, sonst false.

phone.notify(source, { title: "Bank", message: "Salary paid: $250", app: "bank" });

appearance

Das gespeicherte Aussehen von Charakteren über die Aussehens-Ebene von ai-core, egal welches Kleidungs-Skript läuft (ai-appearance, tgiann-clothing).

appearance.get

Das gespeicherte Aussehen eines Charakters, geladen oder nicht. Nutze es, um einen Ped einzukleiden, der für einen Charakter steht (ein schlafender Körper, eine Schaufensterpuppe): Gib das Ergebnis unverändert an appearance.apply des Clients weiter (Lib: Client).

Seite: Server · Wartet: ja (Promise in TypeScript, hält in Lua den Thread an)

Signatur
appearance.get(charId: number): Promise<CharacterAppearance | null>
Lua
local look = aiLib.appearance.get(charId) -- { model, data } oder nil, innerhalb eines Threads aufrufen

Prop

Type

Rückgabewert

Promise<CharacterAppearance | null>: CharacterAppearance ist { model, data } (der Hash des Ped-Modells und die eigenen Aussehensdaten des Kleidungs-Skripts). null, wenn der Charakter keins hat, kein Kleidungs-Skript läuft oder ai-core gestoppt ist.

Beispiel

import { appearance, online, playersNear } from "@aicore-fivem/lib/server";

async function sendLook(source: number) {
  const charId = online.charId(source);
  if (charId === undefined) return;
  const look = await appearance.get(charId);
  if (!look) return;
  // Nur die Spieler in der Nähe dieses Charakters brauchen das Aussehen.
  for (const other of playersNear(source, 100)) emitNet("my-sleepers:look", other, source, look);
}

appearance.provider

Seite: Server · Wartet: nein

Signatur
appearance.provider(): string | null
Lua
local name = aiLib.appearance.provider()

Rückgabewert: das Kleidungs-Skript, das antwortet, oder null (Lua nil), wenn keins läuft.

console.log(`looks through ${appearance.provider() ?? "nothing"}`);

Auf dieser Seite