Metin ve sayılar
formatText, round, groupDigits, formatWeight, stripGameText, randomInt, pickRandom ve rollChance, artı ServerClock’un nerede belgelendiği.
Oyuncuların okudukları (para, ağırlıklar, çevrilmiş metinler), rastgele zarlar ve server’ın saatiyle uyumlu geri sayımlar için küçük yardımcılar.
import { formatText, round, groupDigits, formatWeight, stripGameText, randomInt, pickRandom, rollChance, ServerClock } from "@aicore-fivem/lib/shared";Metin
formatText
Bir metindeki {0}, {1}... yer tutucularını konuma göre değerlerle doldurur. Bir çeviri bir yer tutucuyu taşıyabilir ya da tekrarlayabilir ("{1} paid {0}"); değerlerin sıraya göre değil numaraya göre gitmesinin sebebi budur.
Taraf: Client, server ve NUI · Bekler: hayır
formatText(template: string, args: ReadonlyArray<string | number>): stringlocal text = aiLib.formatText(template, ...) -- değerler ayrı argümanlar olarakParametreler
Prop
Type
Dönüş değeri
string: değeri olan her yer tutucusu doldurulmuş metin. Değeri olmayan bir yer tutucu olduğu gibi kalır ({2}).
Örnek
import { formatText } from "@aicore-fivem/lib/shared";
formatText("You paid ${0} for {1} items", [250, 3]); // "You paid $250 for 3 items"Onu nadiren kendin çağırırsın: dil yardımcıları (createLocale, aiLib.locale, LangTexts) yer tutucuları zaten doldurur. Bkz. Dil.
stripGameText
Başka bir script’ten gelen metni düz hale getirir: HTML etiketlerini, GTA renk ve girdi kodlarını (~r~, ~INPUT_PICKUP~) ve ’yi kaldırır, art arda boşlukları birleştirir ve kırpar. Başka bir script’in metnini kendi arayüzünde göstermeden önce kullan.
Taraf: Client, server ve NUI · Bekler: hayır
stripGameText(text: unknown): stringlocal plain = aiLib.stripGameText(text)Parametreler
Prop
Type
Dönüş değeri
string: düz metin. null / undefined için "" (Lua: nil).
Örnek
import { stripGameText } from "@aicore-fivem/lib/shared";
stripGameText("Press ~INPUT_CONTEXT~ to <b>open</b> the ~g~shop~s~"); // "Press to open the shop"Sayılar
round
Bir sayıyı belirli sayıda ondalık basamağa yuvarlar.
Taraf: Client, server ve NUI · Bekler: hayır
round(value: number, decimals?: number): numberlocal rounded = aiLib.numbers.round(value, decimals)Parametreler
Prop
Type
Dönüş değeri
number: yuvarlanmış değer.
Örnek
import { round } from "@aicore-fivem/lib/shared";
round(12.345, 1); // 12.3
round(12.5); // 13groupDigits
Bir sayıyı her üç basamakta bir ayırıcıyla yazar: 1234567, 1,234,567 olur. İşareti ve ondalıkları korur. Oyuncuların gördüğü her para miktarı için kullan.
Taraf: Client, server ve NUI · Bekler: hayır
groupDigits(value: number | string, separator?: string): stringlocal text = aiLib.numbers.groupDigits(value, separator)Parametreler
Prop
Type
Dönüş değeri
string: gruplanmış sayı.
Örnek
import { groupDigits } from "@aicore-fivem/lib/shared";
groupDigits(1234567); // "1,234,567"
groupDigits(-9876.5); // "-9,876.5"
groupDigits(1500000, "."); // "1.500.000"formatWeight
Gram cinsinden bir ağırlığı oyuncuların okuduğu şekilde yazar: 1 kg’ın altında gram, 1 kg’dan itibaren tek ondalıklı kilogram (100 kg’dan itibaren tam kilogram), basamaklar gruplanmış.
Taraf: Client, server ve NUI · Bekler: hayır
formatWeight(grams: number): stringLua: karşılığı yok.
Parametreler
Prop
Type
Dönüş değeri
string: "750 g", "1.5 kg", "1,250 kg".
Örnek
import { formatWeight } from "@aicore-fivem/lib/shared";
formatWeight(750); // "750 g"
formatWeight(1500); // "1.5 kg"
formatWeight(1250000); // "1,250 kg"Rastgele
randomInt
min ile max arasında (ikisi de dahil) rastgele bir tam sayı.
Taraf: Client, server ve NUI · Bekler: hayır
randomInt(min: number, max: number): numberLua: karşılığı yok; math.random(min, max) kullan.
Parametreler
Prop
Type
Dönüş değeri
number: min ile max arasında bir tam sayı.
Örnek
import { randomInt } from "@aicore-fivem/lib/shared";
const payout = randomInt(150, 300); // 150, 151, ... ya da 300pickRandom
Bir listeden rastgele bir öğe.
Taraf: Client, server ve NUI · Bekler: hayır
pickRandom<T>(list: readonly T[]): T | undefinedLua: karşılığı yok; list[math.random(#list)] kullan.
Parametreler
Prop
Type
Dönüş değeri
Bir öğe ya da liste boşsa undefined.
Örnek
import { pickRandom } from "@aicore-fivem/lib/shared";
const loot = pickRandom(["goldbar", "rolex", "diamond"]) ?? "goldbar";rollChance
100’de percent ihtimalle true.
Taraf: Client, server ve NUI · Bekler: hayır
rollChance(percent: number): booleanLua: karşılığı yok; math.random() * 100 < percent kullan.
Parametreler
Prop
Type
Dönüş değeri
100’de yaklaşık percent kez true.
Örnek
import { inventory } from "@aicore-fivem/lib/server";
import { rollChance } from "@aicore-fivem/lib/shared";
function useLockpick(source: number, slot: number): void {
if (rollChance(25)) inventory.removeItem(source, "lockpick", 1, undefined, slot); // 4’te 1 kırılır
}Eşya ya da para veren her şey için zarı server’da at. Client’taki bir zar bir hileci tarafından zorlanabilir.
Zaman
ServerClock
Client’ın kendi saatine bağlı olmayan geri sayımlar için, server’ın saati client’ta. @aicore-fivem/lib/shared’dan export edilir ve Lua karşılığı yoktur. Tam başvurusu (sync, now, toLocal, geri sayım örneği) Kamera ve zamanlama: ServerClock sayfasındadır.