AI Core
Métiers et servicesai-banking

ai-banking pour les développeurs

Les exports d’argent de société des métiers d’ai-banking (aussi sous les noms qb-banking et Renewed-Banking), et les appels de la lib à utiliser à la place dans le nouveau code.

ai-banking ne garde aucun argent qui lui soit propre. Dans le nouveau code, déplacez l’argent des métiers et des gangs avec les exports d’argent partagé d’ai-core (GetSharedMoney, AddSharedMoney, RemoveSharedMoney) ou le money.transfer de la lib, et ouvrez l’écran bancaire avec le banking.open(source) de la lib. Ils fonctionnent avec chaque script bancaire. Les exports ci-dessous existent pour que les scripts QBCore écrits pour qb-banking ou Renewed-Banking continuent de fonctionner.

Fonctions de la lib (recommandé)

banking.open

Ouvre l’écran du script bancaire actif pour un joueur.

Côté : serveur · Attend : non

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

Retour

true quand l’écran s’est ouvert. false quand le script bancaire ne peut pas être ouvert de l’extérieur, ou qu’aucun ne tourne.

Tous les scripts bancaires ne peuvent pas être ouverts depuis une autre ressource. Vérifiez ce que répond banking.open avant de dire quoi que ce soit au joueur.

money.transfer

Déplace de l’argent entre deux comptes dans une seule transaction de base de données, en écrivant les deux lignes du registre. Utilisé par ai-banking pour chaque dépôt, retrait et virement.

Côté : serveur · Attend : non

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

Paramètres

Prop

Type

MoneyRef

Prop

Type

Retour

true quand l’argent a été déplacé. false quand un compte manque, que les deux sont identiques, ou que from ne peut pas payer.

Exemple

Un patron verse une prime depuis le compte du métier sur la banque d’un membre :

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");
}

Exports serveur

Les trois agissent sur le compte bank d’un métier dans ai-core (le nom du compte est le nom du métier). Ils répondent aussi en tant que exports['qb-banking']:<même nom>, et en tant que getAccountMoney, addAccountMoney et removeAccountMoney de Renewed-Banking. Ils ne sont pas typés dans @aicore-fivem/shared : en TypeScript, utilisez callExport("ai-banking", name, ...args). Chaque export répond aussi sous son jumeau en minuscules (getAccountBalance).

GetAccountBalance

Le solde de société d’un métier.

Côté : serveur · Attend : non

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

Paramètres

Prop

Type

Retour

Le solde en $. 0 quand le métier n’a pas de compte ou que job n’est pas un texte.

AddMoney

Ajoute de l’argent au compte de société d’un métier. Chaque patron qui a l’écran bancaire ouvert voit le nouveau solde.

Côté : serveur · Attend : non

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

Paramètres

Prop

Type

Retour

true quand l’argent a été ajouté. false quand job n’est pas un texte, que amount n’est pas supérieur à 0, ou qu’ai-core a refusé (pas de compte pour ce métier).

RemoveMoney

Retire de l’argent du compte de société d’un métier.

Côté : serveur · Attend : non

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

Paramètres

Prop

Type

Retour

true quand l’argent a été retiré. false quand le compte ne peut pas payer, n’existe pas, ou que les arguments sont incorrects.

Exemple

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

// Un script de mécanicien achète des pièces avec le compte du métier.
function buyParts(cost: number): boolean {
  return callExport("ai-banking", "RemoveMoney", "mechanic", cost, "parts") === true;
}

Ces exports n’atteignent que les comptes de métier. Pour un compte de gang, utilisez AddSharedMoney('gang', name, 'bank', amount, reason) d’ai-core et ses semblables. L’argent modifié directement via les exports d’ai-core est le même argent, mais les écrans bancaires ouverts ne se mettent à jour immédiatement que pour les changements faits via ai-banking.

Callbacks privés

Les appels de l’écran bancaire (resource/common/bank.ts) : ouverture, pages d’historique, dépôt, retrait, virement et fermeture. Le serveur vérifie la position de l’agence ou du distributeur à chaque appel. Ils peuvent changer d’une version à l’autre : ne les appelez pas depuis d’autres ressources.

Sur cette page