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