AI Core
Prace i służbyai-banking

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

Sygnatura
banking.open(source: number): boolean
Lua
local 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

Sygnatura
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)

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

Sygnatura
GetAccountBalance(job: string): number
Lua
local 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

Sygnatura
AddMoney(job: string, amount: number, reason?: string): boolean
Lua
local 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

Sygnatura
RemoveMoney(job: string, amount: number, reason?: string): boolean
Lua
local 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.

Na tej stronie