Özelleştirme
Bir görevle ilgili neredeyse her şey — kimin verdiği, ne söylediği, sonra ne olacağı — editörde oluşturulur ve veritabanınızda saklanır. Dosyalar, her görev için aynı olan birkaç şey 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, oyuncuların NPC’lerle nasıl konuştuğu, diyalog rengi, /cancelquest, ekran görüntüleri | Evet |
bridge/bridge_server.lua | Para, eşyalar, oyuncu verisi, callback’ler ve yetki kontrolü | Evet |
bridge/bridge_client.lua | Bildirimler, yardım metni, oyuncu verisi ve bir oyuncunun nasıl canlandırıldığı | Evet |
locales/*.lua | Her metin: editör, diyalog penceresi, bildirimler, webhook logları | Evet |
install.sql | Bir kez içe aktarılan sekiz tablo | Evet |
web/ | Editör, diyalog penceresi, minigame ve ilerleme çubuğu (HTML, CSS, JS) | Okunabilir |
client/, server/ | Görev motoru | Escrow’lu |
client/game_data/*.lua | Editörün seçicilerinin arkasındaki listeler: ped’ler, araçlar, kemikler, animasyonlar, partiküller, sesler, ekran efektleri | Escrow’lu |
config.lua
Section titled “config.lua”| Seçenek | Ne işe yarar | Varsayılan |
|---|---|---|
Config.Framework | Hangi framework ile konuşulacağı: 'esx' veya 'qbcore'. Kendiliğinden algılanmaz. QBox’ta 'qbcore' kullanın — QBox, QBCore kaynaklarını uyumluluk katmanı üzerinden çalıştırır | 'esx' |
Config.Locale | Editörün, diyalog penceresinin ve bildirimlerin dili. Bkz. Diller | 'en' |
Config.Debug | Dosyada bulunur; bu sürüm onunla fazladan hiçbir şey yazdırmaz | true |
Görev verenlerle konuşmak
Section titled “Görev verenlerle konuşmak”| Seçenek | Ne işe yarar | Varsayılan |
|---|---|---|
Config.InteractionType | 'ox_target', 'qb-target' veya 'drawtext' (3D metin ve bir tuş) | 'ox_target' |
Config.InteractionDistance | Bir oyuncunun bir NPC ile konuşabilmesi için ne kadar yakın (metre) olması gerektiği | 2.5 |
Config.InteractionKey | 'drawtext' ile ve Interact in Area node’u tarafından kullanılan kontrol. 38, E tuşudur | 38 |
Config.ThemeColor | Diyalog penceresinin vurgu rengi: blue, pink, yellow, red, green, purple, orange, cyan, white veya black | "purple" |
Bir görevi iptal etmek
Section titled “Bir görevi iptal etmek”| Seçenek | Ne işe yarar | Varsayılan |
|---|---|---|
Config.EnableCancelQuest | Bir oyuncunun aktif görevini bırakmasını sağlayan bir komut kaydeder | true |
Config.CancelQuestCommand | Komutun adı, eğik çizgi olmadan | "cancelquest" |
İptal etmek, oyuncunun o görev için kayıtlı ilerlemesini temizler ve görevin spawn ettiği şeyleri kaldırır.
Ekran görüntüleri
Section titled “Ekran görüntüleri”| Seçenek | Ne işe yarar | Varsayılan |
|---|---|---|
Config.ScreenshotBasic | Send Webhook node’unun, ekran görüntüsü kutusu işaretliyken bir ekran görüntüsü eklemesini sağlar. screenshot-basic çalışıyor olmalıdır | true |
Komutlar ve yetkiler
Section titled “Komutlar ve yetkiler”| Komut | Kimler kullanabilir | Ne işe yarar |
|---|---|---|
/questcreator | ACE mic_questcreator.open yetkisi olan herkes | Quest & Event Creator’ı açar |
/cancelquest | Config.EnableCancelQuest açıkken her oyuncu | Aktif görevi bırakır. Config.CancelQuestCommand ile yeniden adlandırılır |
Aynı yetki, editörün kaydettiği, sildiği, içe ve dışa aktardığı her şeyi korur — kontrol yalnızca menü açılırken değil, sunucuda yapılır. Onu bir identifier’a ya da gruba bir add_ace satırıyla verin; kendi yönetici sisteminize bağlamayı tercih ederseniz kontrolün kendisi bridge/bridge_server.lua içindeki Bridge.Server.IsPlayerAllowed içinde yaşar.
Diller
Section titled “Diller”locales/ içinde on üç dosya gelir: en, es, fr, de, it, pt, ru, ja, ko, zh-CN, ar, nl ve cs. Config.Locale değerini .lua olmadan dosya adına ayarlayın.
Dil eklemek:
locales/en.luadosyasını kopyalayın ve kopyayı dil kodunuzla adlandırın, örneğinlocales/pl.lua.- İçinde tablo adını
'en'yerine kodunuz yapın ve her satırın sağındaki metni çevirin. Soldaki anahtarlara ve%sifadelerine dokunmayın. - Dosyanızı
fxmanifest.luaiçindekishared_scriptslistesine, diğer locale dosyalarıyla birlikte veconfig.luadosyasının üstüne ekleyin. Config.Localedeğerini kodunuz yapın, sonrarefreshedin ve yeniden başlatın.
Dosyanızda eksik olan bir anahtar oyunda Translation [xx][key] does not exist olarak görünür; bu da hangi satırı eklemeniz gerektiğini tam olarak söyler.
NPC’lerin söyledikleri, görev başlıkları ve bildirim mesajları locale dosyalarında değildir — onları editöre, istediğiniz dilde yazarsınız.
Bridge
Section titled “Bridge”Görev motoru ile sunucunuzun geri kalanı arasında iki açık dosya durur.
bridge/bridge_server.lua
| Fonksiyon | Ne için |
|---|---|
Bridge.Server.Initialize | Kaynak başlarken fmLib ile ESX veya QBCore nesnesini alır |
Bridge.Server.RegisterServerCallback | Callback’leri ESX veya QBCore üzerinden kaydeder |
Bridge.Server.GetPlayer, GetPlayerParams | fmLib üzerinden bir oyuncu ve onun identifier’ı, adı ve mesleği |
Bridge.Server.GetMoney, AddMoney, RemoveMoney | Para, fmLib üzerinden |
Bridge.Server.GetItem, AddItem, RemoveItem | Eşyalar, fmLib üzerinden, fmLib hangi envanterle konuşuyorsa onunla |
Bridge.Server.IsPlayerAllowed | Editörü kimin açıp kullanabileceği. ACE mic_questcreator.open yetkisini kontrol eder |
bridge/bridge_client.lua
| Fonksiyon | Ne için |
|---|---|
Bridge.Client.ShowNotification | Her bildirim. Kendi notify kaynağınızı kullanmak için gövdesini değiştirin |
Bridge.Client.ShowHelpNotification | Sol üstteki yardım metni |
Bridge.Client.GetPlayerData, IsPlayerLoaded | Oyuncu verisi; Has Job ve Is Night/Day kontrolleri tarafından kullanılır |
Bridge.Client.TriggerServerCallback | Callback’ler ESX veya QBCore üzerinden |
Bridge.Client.RevivePlayer | Ölüm handler’ı tarafından kullanılır. ESX’te esx_ambulancejob:revive, QBCore’da hospital:client:Revive tetikler, oyuncu hâlâ ölüyse native olarak canlandırır |
Başka bir ambulans scripti mi kullanıyorsunuz? Bridge.Client.RevivePlayer içindeki event’i scriptinizin dinlediği ile değiştirin. Başka bir notify kaynağı mı? Bridge.Client.ShowNotification fonksiyonunu değiştirin. Fonksiyon adlarını koruyun — motor onları adıyla çağırır.
Export’lar
Section titled “Export’lar”İki istemci export’u, başka bir kaynağın quest creator’ın minigame’ini ve ilerleme çubuğunu ödünç almasına izin verir.
| Export | Argümanlar | Ne işe yarar |
|---|---|---|
StartMinigame | zorluk (1–5), hız (1–5), tur sayısı, callback | Lockpick tarzı minigame’i açar. Callback true veya false alır |
StartProgressBar | milisaniye cinsinden süre, etiket | Yerleşik ilerleme çubuğunu gösterir |
Bunları bir istemci scriptinden mic_questcreator üzerinde çağırın.
Topluluk etkinlikleri ve dışa aktarma
Section titled “Topluluk etkinlikleri ve dışa aktarma”Editördeki Community Events, diğer sunucuların paylaştığı etkinlikleri listeler; birini içe aktarın, diğerleri gibi etkinliklerinize eklenir. Liste GitHub’dan indirilir, bu yüzden dolması için sunucunuzun dışarıya internet erişimi olması gerekir.
Export Event bir ad, bir açıklama ve bir yazar ister, sonra etkinliği kaynak klasörünün içindeki exports/ klasörüne bir JSON dosyası olarak yazar. Bu klasör kaynakla birlikte gelmez — önce mic_questcreator içinde boş bir exports klasörü oluşturun, yoksa dosya bunun yerine kaynağın kök dizinine export_<name>.json olarak düşer.