Önerilen script’ler
Ücretsiz bir script admin panelindeki Recommended scripts bölümüne nasıl girer.
Admin panelinin gösterge panelinde bir Recommended scripts bölümü var: bir AI Core sunucusuna kurmaya değer ücretsiz script’ler. Her biri yalnızca sunucuya uyduğu sürece görünür (hiç telefon script’i çalışmıyorsa bir telefon önerilir; script zaten çalışıyorsa kartı kaybolur) ve görünenler açılıştan 15 saniye sonra sunucu konsoluna da bir kez yazılır. Sunucu sahibi bir kartı X ile gizler ve General sekmesindeki Recommendations kartından geri getirir.
Şartlar
- Ücretsizdir. Kartta Free etiketi görünür.
- Tek bir framework ya da tek bir script üzerinden değil, AI Core üzerinden çalışır. Script’in diğer script’lerle paylaştığı her şey AI Core’un katmanlarından ve export’larından geçer; böylece her
ai-*script’i, ESX / QB / Qbox köprüsü ve sunucu sahibinin diğer script’leri onunla çalışır. Örneğin:- araç anahtarı vermek ve almak araç anahtarı katmanından geçer (lib
vehicleKeys.give/vehicleKeys.remove, export’larGiveVehicleKeys/RemoveVehicleKeys), asla bir anahtar script’inin export’larından değil; - görünüm uygulamak ve skin’i yeniden yüklemek görünüm katmanından geçer (
appearance.apply,appearance.reloadSkin); - eşyalar envanter katmanından geçer (
inventory.addItemya da Lua’danexports['ai-core']:AddItem(source, 'bread', 2)); - yakıt, kapılar, garajlar, telefon ve polis ihbarları (
dispatch.alert) da aynı şekilde kendi katmanlarından geçer.
- araç anahtarı vermek ve almak araç anahtarı katmanından geçer (lib
- Kategorisinin bir katmanı varsa orada bir adaptörü vardır. Envanter, araç anahtarı, kıyafet, yakıt, kapı kilidi, garaj, telefon, ihbar, banka, fatura ya da sağlık script’inin o katmanda bir adaptöre ihtiyacı vardır; diğer script’ler ona böyle ulaşır. Katmanın zaten okuduğu bir API’yi cevaplayan script’e daha azı yeter: LegacyFuel tarzı client export’ları
GetFuel(vehicle)/SetFuel(vehicle, level)olan bir yakıt script’i, yakıt katmanının listesinde tek bir satırdır.
Katmanlar ve destekledikleri script’ler: Katmanlar ve köprü, Uyumluluk ve sunucu deposunun docs/compat/ klasöründe her katman için bir not.
Listeye girmek
Kaydı ekle
aifivem/ai-core deposunu fork’la ve resource/server/recommendations/index.ts dosyasındaki RECOMMENDATIONS listesine bir kayıt ekle:
{
id: "my-garbagejob",
title: "ADMIN_REC_MY_GARBAGEJOB",
desc: "ADMIN_REC_MY_GARBAGEJOB_DESC",
url: "https://example.com/my-garbagejob",
free: true,
// script çalışmadığı sürece görünür
shows: (runs) => !runs("my-garbagejob"),
},| Alan | Ne tutar |
|---|---|
id | Script’in resource adı. Gizlenen kart bunu saklar; bu yüzden 2 ile 64 arası küçük harf, rakam, _ ya da - olur. |
title, desc | ai-core dil anahtarları: script’in adı ve sunucunun onu neden istediğini anlatan tek satır. |
url | Sunucu sahibinin script’i aldığı sayfa. |
free | true. |
shows | Kartın ne zaman göründüğü. runs(resource), o resource başlamış ve durmuyorken true döner. Koşul bir katmana da sorabilir, telefon kaydı gibi: shows: () => phones.active === null (hiç telefon çalışmıyor). |
AI Core koşulları bir resource başlayınca ya da durunca, telefon katmanı değişince ve ayarlar değişince yeniden kontrol eder. Başka bir katmana bakan koşul, o katmanın değişimini de recommendations.refresh()’e bağlar; dosyanın sonu bunu telefon için yapar (phones.onSwitch).
İki metni ekle
locales/en.json içinde, diğer ADMIN_REC_* anahtarlarının yanına:
"ADMIN_REC_MY_GARBAGEJOB": "My Garbage Job",
"ADMIN_REC_MY_GARBAGEJOB_DESC": "Garbage routes with pay per stop; items and vehicle keys go through ai-core's layers."Sadece İngilizce: diğer diller en.json’un üstüne eklenir.
Kategorinin bir katmanı varsa adaptörü ekle
Aynı pull request’te:
- katmanın
adapters/klasöründeki adaptör dosyası:resource/server/<layer>/adapters/<resource>.ts, script’in sadece client API’si varsa ayrıcaresource/client/<layer>/adapters/<resource>.ts. Benzer bir script’in adaptörünü kopyala; - katmanın adaptör listesindeki satırı:
resource/server/<layer>/registry.ts, ya daregistry.ts’si olmayan katmanlarda (phone, medical, prison, world) katmanınindex.tsdosyası.
Sonra aifivem/aicore-server deposuna, script’i katmanın notu docs/compat/<layer>.md dosyasına (örneğin vehicle-keys.md, phone.md) ekleyen ikinci bir pull request aç: test edilen sürüm, durum ve bilinen sınırlar.
Pull request’i aç
ai-core içinde bun install, sonra bun run typecheck, bun run lint ve bun run build çalıştır; üçü de geçmeli. Pull request’e İngilizce bir Conventional Commit başlığı ver, örneğin feat(recommendations): recommend my-garbagejob. Bakımcılar inceler: script’in ücretsiz olduğunu ve katmanlar üzerinden çalıştığını kontrol eder, sonra birleştirirler; kart bir sonraki ai-core sürümüyle gelir.