Özelleştirme
Her mağaza panelde yapılandırılır ve veritabanınızda saklanır — bkz. 🏪 Mağaza oluşturma. Dosyalar, tüm mağazaların ortak olarak sahip olduğu şeyler içindir.
Hangi dosya neye karar verir
Section titled “Hangi dosya neye karar verir”| Dosya | Neye karar verir | Açık mı? |
|---|---|---|
config.lua | Framework, dil, etkileşim, varsayılan ped, komut, görseller, kategoriler, soygun kuralları, tanımlayıcılar | Evet |
bridge/server.lua | Para, hesaplar, eşyalar, envanter, meslekler, bildirimler, callback’ler ve özel polis uyarısı | Evet |
bridge/client.lua | İstemcide bildirimler, yardım istemleri, oyuncu verisi ve callback’ler | Evet |
bridge/target.lua | Satıcıların ve mağaza noktalarının ox_target veya qb-target’a nasıl eklendiği | Evet |
bridge/utils.lua | Bir oyuncunun tanımlayıcılarını (Steam, lisans, Discord, FiveM, Xbox) okur | Evet |
locales/*.lua | Oyun içi metin: bildirimler, istemler, soygun mesajları | Evet |
html/locales.js | Panellerin ve mağaza penceresinin içindeki metin, on iki dilin tamamı için | Okunabilir |
html/index.html, style.css, script.js | Paneller ve mağaza penceresi | Okunabilir |
list/peds.lua | Panelde sunulan ped modelleri | Şifreli (escrow) |
mic_shopcreator.sql | Bir kez içe aktarılan dokuz tablo | Evet |
client.lua, server.lua | Mağaza mantığı | Şifreli (escrow) |
config.lua
Section titled “config.lua”| Seçenek | Ne yapar | Varsayılan |
|---|---|---|
Config.Locale | Oyunda ve panellerdeki dil. Bkz. Diller | 'en' |
Config.Framework | 'esx' veya 'qbcore'. Kendiliğinden algılanmaz. QBox üzerinde 'qbcore' kullanın — QBox, QBCore kaynaklarını uyumluluk katmanı üzerinden çalıştırır | 'esx' |
Config.Command | Shop Creator panelini açan komut | 'shopcreator' |
Config.IdentifierType | Sahiplerin ve çalışanların nasıl tanındığı: 'discord', 'license', 'esx' veya 'citizenid'. Bkz. Kurulum | 'discord' |
Satıcılar ve etkileşim
Section titled “Satıcılar ve etkileşim”| Seçenek | Ne yapar | Varsayılan |
|---|---|---|
Config.Interaction | 'ox_target', 'qb-target' veya 'default' (yardım istemi ve E) | 'ox_target' |
Config.RadiusInteract | 'default' ile, bir oyuncunun metre cinsinden ne kadar yakın olması gerektiği | 2.0 |
Config.SpawnNPC | false hiçbir satıcı yerleştirmez: noktayı bunun yerine bir işaretçi ('default' ile) veya bir target küresi belirtir. Satıcı olmaması soyulacak kimsenin olmaması demektir | true |
Config.DefaultPed | Bir konumun hiç modeli olmadığında veya geçersiz bir modeli olduğunda kullanılan model | 'a_f_m_bevhills_01' |
Config.PedSpawnDistance | Satıcılar yalnızca bir oyuncu bu kadar metre içindeyken var olur | 20.0 |
Ürünler
Section titled “Ürünler”| Seçenek | Ne yapar | Varsayılan |
|---|---|---|
Config.Categories | Bir ürün eklerken sunulan kategoriler; mağaza penceresi ürünleri bunlara göre gruplar | items, weapons, misc |
Config.InventoryImagePath | Görsel klasörlerinin bir listesi. Her ürün için pencere, her klasörde sırayla <item name>.png dosyasını dener ve yüklenen ilkini kullanır | nui://ox_inventory/web/images/ |
Config.AllowEmployeesAddProducts | Sahipli mağazalarda çalışanların yeni ürün ekleyip ekleyemeyeceği. Sahipler her zaman ekleyebilir; çalışanlar mevcut olanları her zaman yönetebilir | false |
ox_inventory kullanmıyor musunuz? Config.InventoryImagePath değerini envanterinizin görsel klasörüne yönlendirin, örneğin nui://qb-inventory/html/images/. Görselleriniz klasörlere bölünmüşse ikinci bir giriş ekleyin.
Soygunlar
Section titled “Soygunlar”| Seçenek | Ne yapar | Varsayılan |
|---|---|---|
Config.BlacklistWeapons | Soygun başlatamayacak silahlar olması amaçlanmıştır. Bu sürüm bunu okumaz: her silah bir soygun başlatır ve yalnızca çıplak eller asla başlatmaz | weapon_unarmed, weapon_nightstick, weapon_stungun |
Config.RobberyNotifyJobs | Bir soygun başladığında uyarılan meslekler | police |
Config.PoliceAlert | "default" yukarıdaki mesleklere bir bildirim ve bir dakikalığına bir blip ile uyarı verir. "custom" bunun yerine bridge/server.lua içindeki TriggerPoliceAlert fonksiyonunu çağırır | "default" |
Config.RobberyCooldown | Kayıtlı bir bekleme süresi olmayan mağaza için yedek bekleme süresi. Kod bunu mağaza başına alan gibi dakika olarak sayar (config.lua içindeki yorum saniye der) | 300 |
Config.TakeRobberyMoneyFromVault | Sahipli mağazalarda para ödülleri mağazanın kasasından çıkar — ve kasa boşaldığında durur | true |
Loglar
Section titled “Loglar”| Seçenek | Ne yapar | Varsayılan |
|---|---|---|
Config.Screenshot | Discord loglarına oyuncunun ekranının bir görüntüsünü ekler. screenshot-basic çalışıyor olmalı | true |
Webhook URL’si burada değil, panelde mağaza başına ayarlanır.
Komutlar ve yetkiler
Section titled “Komutlar ve yetkiler”| Komut | Kimler kullanabilir | Ne yapar |
|---|---|---|
/shopcreator | ACE mic_shop.open | Shop Creator panelini açar. Config.Command ile yeniden adlandırılır ve her komut gibi FiveM’in tuş ayarlarında bir tuşa atanabilir |
Mağaza sahiplerinin ve çalışanlarının yetkiye ihtiyacı yoktur: mağaza penceresi, sahibi oldukları veya çalıştıkları bir mağazayı açtıklarında onlara Shop Settings için bir dişli düğmesi gösterir.
Diller
Section titled “Diller”On iki dil hazır gelir: en, es, fr, de, it, pt, ru, ja, ko, zh-CN, ar ve nl. Metin iki yerde bulunur ve ikisi de Config.Locale değerini izler:
locales/<code>.lua— oyunun gösterdikleri: bildirimler, yardım istemleri, soygun mesajları.html/locales.js— panellerin ve mağaza penceresinin gösterdikleri, her dil için bir blok.
Dil ekleme:
locales/en.luadosyasınılocales/<code>.luaolarak kopyalayın ve her satırın sağındaki metni çevirin. Anahtarları ve varsa%sifadelerini koruyun.- Oyuncuların indirmesi için
locales/<code>.luadosyasınıfxmanifest.luaiçindekishared_scriptslistesine, diğerlerinin yanına ekleyin. html/locales.jsiçinde'en'bloğunu kopyalayın, kodunuzla yeniden adlandırın ve çevirin.Config.Localedeğerini kodunuza ayarlayın,refreshyapın ve yeniden başlatın.
Lua dosyanızda eksik olan bir anahtar oyunda Translation not found: <key> olarak görünür.
Bridge
Section titled “Bridge”bridge/ içinde dört açık dosya vardır. Fonksiyon adlarını koruyun — mağaza kodu onları adıyla çağırır.
bridge/server.lua — biri ESX, biri QBCore için olmak üzere iki blok; Config.Framework ile seçilir.
| Fonksiyon | Ne için |
|---|---|
GetPlayer, GetPlayerJob | Oyuncu nesnesi ve mesleği |
GetMoney, AddMoney, RemoveMoney | Nakit |
GetAccount, AddAccountMoney, RemoveAccountMoney | Adlandırılmış hesaplar: bank, black_money |
GetInventoryItem, AddInventoryItem, RemoveInventoryItem | Eşyalar. ox_inventory çalışıyorsa onun üzerinden okur |
GetPlayerInventory | Sahibin mağazasını doldururken listelenen envanteri |
ShowNotification | Sunucu tarafı bildirimler |
RegisterServerCallback | ESX veya QBCore üzerinden callback’ler |
TriggerPoliceAlert(x, y, z, shopLabel) | Config.PoliceAlert = "custom" iken her soygunda çağrılır. Varsayılan olarak boştur — dispatch çağrınızı buraya koyun |
bridge/client.lua — ShowNotification, ShowHelpNotification, GetPlayerData ve TriggerServerCallback. QBCore’da ShowHelpNotification boştur; Config.Interaction = 'default' kullanıyorsanız veya çalışan davet istemini görmek istiyorsanız onu kendi yardım metni veya draw-text çağrınızla doldurun.
bridge/target.lua — ox_target veya qb-target için her satıcıya (veya Config.SpawnNPC kapalıyken küçük bir küreye) “mağazayı aç” seçeneğini ekler ve mağazalar değiştiğinde onları tekrar kaldırır.
Özel polis dispatch’i: Config.PoliceAlert = "custom" yapın ve dispatch kaynağınızın uyarısını bridge/server.lua içindeki TriggerPoliceAlert fonksiyonunun içine yazın. Fonksiyon, satıcının koordinatlarını ve mağazanın adını alır.
Export’lar
Section titled “Export’lar”Başka bir kaynaktan mağaza açmak için istemci export’ları:
| Export | Argümanlar | Ne yapar |
|---|---|---|
OpenShop | mağaza ID, konum ID | O mağazanın penceresini, bekleme süresine ve meslek kısıtlamasına uyarak açar |
OpenShopAsEmployee | mağaza ID, konum ID | OpenShop ile aynıdır; oyuncu orada sahip veya çalışansa Shop Settings dişlisi görünür |
OpenShopAsOwner | — | Oyuncuda mic_shop.open varsa Shop Creator panelini açar |
Target kaynakları ayrıca, verisinde shopId ve locationId ile mic_shopcreator:client:openShop istemci olayını da çağırabilir; yerleşik target seçeneklerinin yaptığı budur. Mağaza ve konum ID’leri panelde gösterilenlerdir.