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
banking.open(source: number): booleanlocal 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
money.transfer(from: MoneyRef, to: MoneyRef, amount: number, reason?: string, fee?: number): booleanlocal 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
GetAccountBalance(job: string): numberlocal 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
AddMoney(job: string, amount: number, reason?: string): booleanlocal 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
RemoveMoney(job: string, amount: number, reason?: string): booleanlocal 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.