AI Core
Meslekler ve hizmetlerai-banking

Geliştiriciler için ai-banking

ai-banking’in meslek şirket parası export’ları (qb-banking ve Renewed-Banking adlarıyla da) ve yeni kodda onların yerine kullanılacak lib çağrıları.

ai-banking kendine ait para tutmaz. Yeni kodda meslek ve çete parasını ai-core’un ortak para export’larıyla (GetSharedMoney, AddSharedMoney, RemoveSharedMoney) ya da lib’in money.transfer fonksiyonuyla taşı, banka ekranını da lib’in banking.open(source) fonksiyonuyla aç. Bunlar her banka script’iyle çalışır. Aşağıdaki export’lar, qb-banking ya da Renewed-Banking için yazılmış QBCore script’leri çalışmaya devam etsin diye vardır.

Lib fonksiyonları (önerilen)

banking.open

Etkin banka script’inin ekranını bir oyuncu için açar.

Taraf: Server · Bekler: hayır

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

Dönüş değeri

Ekran açıldıysa true. Banka script’i dışarıdan açılamıyorsa ya da hiçbiri çalışmıyorsa false.

Her banka script’i başka bir resource’tan açılamaz. Oyuncuya bir şey söylemeden önce banking.open fonksiyonunun ne cevap verdiğine bak.

money.transfer

Parayı iki hesap arasında tek bir veritabanı transaction’ında taşır ve iki hesap defteri satırını da yazar. ai-banking her para yatırma, çekme ve havale için bunu kullanır.

Taraf: Server · Bekler: hayır

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)

Parametreler

Prop

Type

MoneyRef

Prop

Type

Dönüş değeri

Para taşındıysa true. Bir hesap yoksa, iki hesap aynıysa ya da from ödeyemiyorsa false.

Örnek

Bir patron meslek hesabından bir üyenin bankasına prim öder:

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 export’ları

Üçü de bir mesleğin ai-core’daki bank hesabı üzerinde çalışır (hesap adı meslek adıdır). Ayrıca exports['qb-banking']:<aynı ad> olarak ve Renewed-Banking’in getAccountMoney, addAccountMoney ve removeAccountMoney adlarıyla da cevap verirler. @aicore-fivem/shared içinde tipleri yoktur: TypeScript’te callExport("ai-banking", name, ...args) kullan. Her export küçük harfli ikiziyle de cevap verir (getAccountBalance).

GetAccountBalance

Bir mesleğin şirket bakiyesi.

Taraf: Server · Bekler: hayır

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

Parametreler

Prop

Type

Dönüş değeri

$ cinsinden bakiye. Mesleğin hesabı yoksa ya da job bir metin değilse 0.

AddMoney

Bir mesleğin şirket hesabına para ekler. Banka ekranı açık her patron yeni bakiyeyi görür.

Taraf: Server · Bekler: hayır

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

Parametreler

Prop

Type

Dönüş değeri

Para eklendiyse true. job bir metin değilse, amount 0’dan büyük değilse ya da ai-core reddettiyse (böyle bir meslek hesabı yoksa) false.

RemoveMoney

Bir mesleğin şirket hesabından para alır.

Taraf: Server · Bekler: hayır

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

Parametreler

Prop

Type

Dönüş değeri

Para alındıysa true. Hesap ödeyemiyorsa, yoksa ya da argümanlar yanlışsa false.

Örnek

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

// Bir mekanik script’i meslek hesabından parça satın alır.
function buyParts(cost: number): boolean {
  return callExport("ai-banking", "RemoveMoney", "mechanic", cost, "parts") === true;
}

Bu export’lar sadece meslek hesaplarına ulaşır. Bir çete hesabı için ai-core’un AddSharedMoney('gang', name, 'bank', amount, reason) ve benzeri export’larını kullan. Doğrudan ai-core’un export’larıyla değiştirilen para da aynı paradır, ama açık banka ekranları sadece ai-banking üzerinden yapılan değişikliklerde anında güncellenir.

Özel callback’ler

Banka ekranının çağrıları (resource/common/bank.ts): açma, geçmiş sayfaları, para yatırma, çekme, havale ve kapatma. Server her çağrıda şube ya da ATM konumunu kontrol eder. Sürümler arasında değişebilirler: başka resource’lardan çağırma.

Bu sayfada