ai-banking dla deweloperów
Eksporty pieniędzy organizacji prac w ai-banking (także pod nazwami qb-banking i Renewed-Banking) oraz wywołania biblioteki, których należy używać zamiast nich w nowym kodzie.
ai-banking nie przechowuje własnych pieniędzy. W nowym kodzie przenoś pieniądze prac i gangów wspólnymi eksportami pieniędzy ai-core (GetSharedMoney, AddSharedMoney, RemoveSharedMoney) lub money.transfer z biblioteki, a ekran banku otwieraj przez banking.open(source) z biblioteki. Działają z każdym skryptem bankowym. Poniższe eksporty istnieją po to, aby skrypty QBCore napisane dla qb-banking lub Renewed-Banking działały dalej.
Funkcje biblioteki (zalecane)
banking.open
Otwiera graczowi ekran aktywnego skryptu bankowego.
Strona: serwer · Czeka: nie
banking.open(source: number): booleanlocal ok = aiLib.banking.open(source)Zwraca
true, gdy ekran się otworzył. false, gdy skryptu bankowego nie da się otworzyć z zewnątrz albo żaden nie działa.
Nie każdy skrypt bankowy da się otworzyć z innego zasobu. Sprawdź, co odpowiada banking.open, zanim cokolwiek powiesz graczowi.
money.transfer
Przenosi pieniądze między dwoma kontami w jednej transakcji bazy danych, zapisując oba wiersze księgi. Używane przez ai-banking przy każdej wpłacie, wypłacie i przelewie.
Strona: serwer · Czeka: nie
money.transfer(from: MoneyRef, to: MoneyRef, amount: number, reason?: string, fee?: number): booleanlocal ok = exports['ai-core']:TransferMoney(from, to, amount, reason, fee)Parametry
Prop
Type
MoneyRef
Prop
Type
Zwraca
true, gdy pieniądze zostały przeniesione. false, gdy brakuje konta, oba są tym samym kontem albo from nie może zapłacić.
Przykład
Szef wypłaca premię z konta pracy na konto bankowe członka:
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");
}Eksporty serwera
Wszystkie trzy działają na koncie bank ai-core należącym do pracy (nazwa konta to nazwa pracy). Odpowiadają też jako exports['qb-banking']:<ta sama nazwa> oraz jako getAccountMoney, addAccountMoney i removeAccountMoney z Renewed-Banking. Nie są typowane w @aicore-fivem/shared: w TypeScript używaj callExport("ai-banking", name, ...args). Każdy eksport odpowiada też pod swoim odpowiednikiem pisanym małą literą (getAccountBalance).
GetAccountBalance
Saldo organizacji pracy.
Strona: serwer · Czeka: nie
GetAccountBalance(job: string): numberlocal balance = exports['ai-banking']:GetAccountBalance('police')
-- to samo: exports['qb-banking']:GetAccountBalance('police')
-- to samo: exports['Renewed-Banking']:getAccountMoney('police')Parametry
Prop
Type
Zwraca
Saldo w $. 0, gdy praca nie ma konta albo job nie jest tekstem.
AddMoney
Dodaje pieniądze na konto organizacji pracy. Każdy szef z otwartym ekranem banku widzi nowe saldo.
Strona: serwer · Czeka: nie
AddMoney(job: string, amount: number, reason?: string): booleanlocal ok = exports['ai-banking']:AddMoney('police', 500, 'fine')
-- to samo: exports['Renewed-Banking']:addAccountMoney('police', 500, 'fine')Parametry
Prop
Type
Zwraca
true, gdy pieniądze zostały dodane. false, gdy job nie jest tekstem, amount nie jest większe od 0 albo ai-core odmówił (brak takiego konta pracy).
RemoveMoney
Zabiera pieniądze z konta organizacji pracy.
Strona: serwer · Czeka: nie
RemoveMoney(job: string, amount: number, reason?: string): booleanlocal ok = exports['ai-banking']:RemoveMoney('mechanic', 1200, 'parts')Parametry
Prop
Type
Zwraca
true, gdy pieniądze zostały zabrane. false, gdy konto nie może zapłacić, nie istnieje albo argumenty są nieprawidłowe.
Przykład
import { callExport } from "@aicore-fivem/lib/server";
// Skrypt mechanika kupuje części z konta pracy.
function buyParts(cost: number): boolean {
return callExport("ai-banking", "RemoveMoney", "mechanic", cost, "parts") === true;
}Te eksporty docierają tylko do kont prac. Dla konta gangu używaj AddSharedMoney('gang', name, 'bank', amount, reason) i pokrewnych z ai-core. Pieniądze zmienione bezpośrednio przez eksporty ai-core to te same pieniądze, ale otwarte ekrany banku aktualizują się od razu tylko przy zmianach wprowadzonych przez ai-banking.
Prywatne callbacki
Wywołania ekranu banku (resource/common/bank.ts): otwarcie, strony historii, wpłata, wypłata, przelew i zamknięcie. Serwer sprawdza pozycję oddziału lub bankomatu przy każdym wywołaniu. Mogą się zmieniać między wersjami: nie wywołuj ich z innych zasobów.