AI Core
Jobs und Diensteai-banking

ai-banking für Entwickler

Firmengeld-Exports von ai-banking für Jobs (auch unter den Namen von qb-banking und Renewed-Banking) und die Lib-Aufrufe, die du stattdessen in neuem Code nutzt.

ai-banking hält kein eigenes Geld. Bewege in neuem Code Job- und Gang-Geld mit den gemeinsamen Geld-Exports von ai-core (GetSharedMoney, AddSharedMoney, RemoveSharedMoney) oder money.transfer der Lib, und öffne den Bankbildschirm mit banking.open(source) der Lib. Diese funktionieren mit jedem Bankskript. Die Exports unten existieren, damit QBCore-Skripte, die für qb-banking oder Renewed-Banking geschrieben wurden, weiter funktionieren.

Lib-Funktionen (empfohlen)

banking.open

Öffnet den Bildschirm des aktiven Bankskripts für einen Spieler.

Seite: Server · Wartet: nein

Signatur
banking.open(source: number): boolean
Lua
local ok = aiLib.banking.open(source)

Rückgabewert

true, wenn sich der Bildschirm geöffnet hat. false, wenn das Bankskript nicht von außen geöffnet werden kann oder keines läuft.

Nicht jedes Bankskript kann aus einer anderen Ressource geöffnet werden. Prüfe, was banking.open antwortet, bevor du dem Spieler etwas sagst.

money.transfer

Bewegt Geld zwischen zwei Konten in einer Datenbanktransaktion und schreibt beide Buchungszeilen. Wird von ai-banking für jede Einzahlung, Abhebung und Überweisung genutzt.

Seite: Server · Wartet: nein

Signatur
money.transfer(from: MoneyRef, to: MoneyRef, amount: number, reason?: string, fee?: number): boolean
Lua
local ok = exports['ai-core']:TransferMoney(from, to, amount, reason, fee)

Parameter

Prop

Type

MoneyRef

Prop

Type

Rückgabewert

true, wenn das Geld bewegt wurde. false, wenn ein Konto fehlt, beide gleich sind oder from nicht bezahlen kann.

Beispiel

Ein Chef zahlt einen Bonus vom Job-Konto auf die Bank eines Mitglieds:

import { money, notify } from "@aicore-fivem/lib/server";

function payBonus(boss: number, member: number, amount: number): void {
  const ok = money.transfer(
    { owner: "job", id: "police", account: "bank" },
    { source: member, account: "bank" },
    amount,
    "bonus",
  );
  notify(boss, ok ? "Bonus paid" : "The job account cannot pay", ok ? "success" : "error");
}

Server-Exports

Alle drei wirken auf das Konto bank eines Jobs in ai-core (der Kontoname ist der Job-Name). Sie antworten auch als exports['qb-banking']:<gleicher Name> und als getAccountMoney, addAccountMoney und removeAccountMoney von Renewed-Banking. Sie sind nicht in @aicore-fivem/shared typisiert: In TypeScript nutzt du callExport("ai-banking", name, ...args). Jeder Export antwortet auch unter seinem kleingeschriebenen Gegenstück (getAccountBalance).

GetAccountBalance

Das Firmenguthaben eines Jobs.

Seite: Server · Wartet: nein

Signatur
GetAccountBalance(job: string): number
Lua
local balance = exports['ai-banking']:GetAccountBalance('police')
-- dasselbe: exports['qb-banking']:GetAccountBalance('police')
-- dasselbe: exports['Renewed-Banking']:getAccountMoney('police')

Parameter

Prop

Type

Rückgabewert

Das Guthaben in $. 0, wenn der Job kein Konto hat oder job kein Text ist.

AddMoney

Fügt dem Firmenkonto eines Jobs Geld hinzu. Jeder Chef mit offenem Bankbildschirm sieht das neue Guthaben.

Seite: Server · Wartet: nein

Signatur
AddMoney(job: string, amount: number, reason?: string): boolean
Lua
local ok = exports['ai-banking']:AddMoney('police', 500, 'fine')
-- dasselbe: exports['Renewed-Banking']:addAccountMoney('police', 500, 'fine')

Parameter

Prop

Type

Rückgabewert

true, wenn das Geld hinzugefügt wurde. false, wenn job kein Text ist, amount nicht über 0 liegt oder ai-core abgelehnt hat (kein solches Job-Konto).

RemoveMoney

Nimmt Geld vom Firmenkonto eines Jobs.

Seite: Server · Wartet: nein

Signatur
RemoveMoney(job: string, amount: number, reason?: string): boolean
Lua
local ok = exports['ai-banking']:RemoveMoney('mechanic', 1200, 'parts')

Parameter

Prop

Type

Rückgabewert

true, wenn das Geld genommen wurde. false, wenn das Konto nicht bezahlen kann, nicht existiert oder die Argumente falsch sind.

Beispiel

import { callExport } from "@aicore-fivem/lib/server";

// Ein Mechanikerskript kauft Teile vom Job-Konto.
function buyParts(cost: number): boolean {
  return callExport("ai-banking", "RemoveMoney", "mechanic", cost, "parts") === true;
}

Diese Exports erreichen nur Job-Konten. Für ein Gang-Konto nutze AddSharedMoney('gang', name, 'bank', amount, reason) von ai-core und die verwandten Exports. Geld, das direkt über die Exports von ai-core geändert wird, ist dasselbe Geld, aber offene Bankbildschirme aktualisieren sich nur bei Änderungen über ai-banking sofort.

Private Callbacks

Die Aufrufe des Bankbildschirms (resource/common/bank.ts): öffnen, Verlaufsseiten, einzahlen, abheben, überweisen und schließen. Der Server prüft bei jedem Aufruf die Position der Filiale oder des Geldautomaten. Sie können sich zwischen Versionen ändern: Rufe sie nicht aus anderen Ressourcen auf.

Auf dieser Seite