X kaynağı Y kaynağı için bağımlılık bulamadı: nasıl düzeltilir

FiveM Y kaynağı için ox_lib bağımlılığını bulamadı dedi mi? fxmanifest.lua'da bağımlılık anlamı, eksik kaynağı nasıl kuracak, klasör adlandırması ve başlama sırası.

Bir betik başlatırsınız ve konsol şunları söyler:

text
Could not find dependency ox_lib for resource my_script.
Couldn't start resource my_script.

Betik ihtiyacı olan bir şey orada olmadığı için başlamayı reddediyor. Bu makale satırın anlamını ve üç sıradan nedeni nasıl düzeltileceğini açıklar: kaynak yüklenmedi, klasörün adı yanlış veya yanlış yerde.

Bağımlılık nedir

fxmanifest.lua içinde, bir betik diğer kaynaklara ihtiyacı olduğunu bildirerek:

lua
fx_version 'cerulean'
game 'gta5'

dependency 'ox_lib'

-- or several at once
dependencies {
    'ox_lib',
    'oxmysql',
}

my_script başladığında, FiveM her adın bir kaynak olarak var olduğunu kontrol eder. Biri eksikse, başlama iptal edilir, bu da yarı bozuk çalışmaktan ve daha sonra nil hatalar atmaktan daha iyidir.

FiveM'in aradığı ad, kaynak adı, yani klasör adı. [standalone] gibi ana klasörlerdeki köşeli parantezler sadece kategorilerdir ve adın parçası değildir.

Adım 1: eksik kaynağı bulun

dependency ile for resource arasındaki metin eksik kaynağın adıdır. Örnekte ox_libdir. Tam o adla bir klasör arayın:

bash
# from your server's resources folder
find . -maxdepth 3 -type d -name "ox_lib"

Windows'ta, Dosya Gezgini'ndeki resources klasöründe arama kutusunu veya PowerShell'de Get-ChildItem -Recurse -Directory -Filter ox_lib kullanın. Hiçbir şey döndürülmezse, kaynak yüklenmedi.

Adım 2: kurun

Kaynağı resmi kaynağından indirin, klasörü resources altına koyun ve server.cfg'ye ihtiyacı olan betiğin önüne ekleyin:

cfg
ensure oxmysql
ensure ox_lib
ensure my_script

Yaygın bağımlılıklar ox_lib ve oxmysql, artı çerçeveniz (es_extended, qb-core veya qbx_core). Özellikle ox_lib için, indirmede bir yakalanacak şey vardır: bkz. @ox_lib/init.lua bulunamadı.

Çalışan sunucuya klasör ekledikten sonra konsolda refresh çalıştırın, sonra ensure my_script.

Adım 3: klasör adını düzeltin

Bağımlılık var ancak hata yine gösterilir. Tam adı kontrol edin. Bunlar insanların yanlışlıkla başına gelen adlardır:

Diskteki klasör Olması gerekir
ox_lib-main ox_lib
ox_lib-master ox_lib
oxmysql-main oxmysql
qb-core-main qb-core
ox_lib (1) ox_lib

GitHub kaynak zip'leri klasör adına -main veya -master ekler ve tarayıcılar tekrarlanan indirmelere (1) ekler. Klasörü ve server.cfg'yi eşleşecek şekilde yeniden adlandırın. Linux'ta büyük harf yazı da önemlidir: Ox_Lib, ox_lib değildir.

Ayrıca, açılan klasör aynı adla bir klasör daha içeren iç içe geçmiş klasör hatasını kontrol edin:

text
resources/ox_lib/ox_lib/fxmanifest.lua   (wrong)
resources/ox_lib/fxmanifest.lua          (right)

Adım 4: bağımlılığın başlayabildiğinden emin olun

Klasör doğru ancak hata devam ederse, bağımlılık var olabilir ve yine de kendi hatasını verebilir. Konsolda bağımlılığın kendi hatasını arayın; yukarıda yapıştırdığınız satırda görünecektir. Tipik nedenler oxmysql için veritabanı hatası veya ox_lib için inşa edilmeyen web klasörüdür. Önce bunu düzeltin, sonra bağımlı betiği başlatın. Daha geniş teşhis Kaynağı başlatılamadı içindedir.

server.cfg'de başlama sırası

Kaynaklar ensure satırlarının sırasına göre başlar. Temel katmanları önce koyun:

cfg
ensure oxmysql
ensure ox_lib
ensure es_extended        # or qb-core / qbx_core
ensure my_script

my_script bağımlılıklarını bildirdiği için, FiveM onları unutursanız sizin için başlatır. Yine de, sırayı yazın. Tabandan üstüne okuyan liste hata ayıklanması daha kolaydır ve bağımlılık bildirmeyen betikler (çoğu bilmez) yalnızca sipariş doğru olduğunda çalışır. Tam desen server.cfg'de doğru ensure sırası içindedir.

Kendi betiğinize bağımlılık ekleyin

Betik yazıyorsanız, ne kullandığınızı bildirin. my_script exports.ox_lib veya lib. işlevlerini çağırıyorsa, ekleyin:

lua
dependency 'ox_lib'

Ayrıca sunucu yapısını veya OneSync'i aynı listede gerekli kılabilirsiniz:

lua
dependencies {
    '/onesync',
    'ox_lib',
}

Bildiride bağımlılıklar bildirmek okumayı zor nil hataya dönüştürür açık bir başlama mesajı.

İpucu: betiğin artık kullanmadığı manifestte listelenen bağımlılık, bu kaynaksız bir sunucuda başlamaktan bloke edecek. Bir betiği yeniden çalışırken eski girişleri kaldırın.

Kontrol Listesi

Semptom Çözüm
Could not find dependency ox_lib ox_lib'i resources altında kurun
Klasör ox_lib-main veya ox_lib (1) Tam kaynak adına yeniden adlandırın
Klasör iki kez iç içe İç klasörü yukarı taşıyın, böylece fxmanifest.lua doğrudan içinde
Klasör eklendi, sunucu hala farkında değil Konsolda refresh çalıştırın
Bağımlılık var ancak başarısız Satır üzerinde kendi hatasını okuyun ve önce düzeltin
Sipariş belirsiz oxmysql, ox_lib, çerçeve, sonra betikler

Kısa yanıtlar

Bağımlılık bulamadı ne demek?

Kaynağın fxmanifest.lua, dependency veya dependencies altında başka bir kaynağı listeler ve FiveM sunucunuzda tam o adla bir kaynak bulamaz.

Bağımlılığın klasör adı önemli mi?

Evet. FiveM proje adını değil klasör adını eşleştirir. ox_lib-main olarak adlandırılmış klasör ox_lib değildir, bu nedenle yeniden adlandırılmalıdır.

Bağımlılığı betiğin öncesinde ensure yapmak zorunda mıyım?

İyi bir uygulamadır ve işleri öngörülebilir tutar. FiveM ayrıca bağımlı kaynak başladığında, klasör var olduğu sürece listelenen bir bağımlılığı sizin için başlatır.

Bu sorunu yaşatmayan scriptler

Mic PhoneTablete dönüşen katlanabilir bir telefon; oyuncunun gerçek telefonuna da taşınır.Scripti gör →CCTV Security CamerasYerleştirilebilir kameralar, canlı çoklu görüntü tableti ve basılı delil fotoğrafları.Scripti gör →Item Creator V2Animasyonlar, proplar, efektler ve daha fazlasıyla kullanılabilir eşyalar oluşturun — kod yazmadan.Scripti gör →

Okumaya devam edin