🧩 Özel Bir Çerçeve Köprüsü Oluşturma
Dream Bridge, ESX, QBCore ve QBX'i kutudan çıkar çıkmaz destekler. Farklı veya değiştirilmiş bir çerçeve kullanıyorsanız, uyumluluğu sağlamak için kendi özel köprünüzü uygulayabilirsiniz.
Bu kılavuz, sağlanan yerleşik custom
şablonunu kullanarak yeni bir köprü oluşturmayı adım adım anlatır.
💡 Not: QBX (Qbox), QBCore köprüsü ile tam uyumludur. Ayrı bir uygulama gerekmez.
📁 Köprü Yapısı
Tüm köprüler bridge/
klasöründe bulunur.
Her çerçeve (örneğin, esx
, qbcore
, custom
) kendi alt klasörüne sahiptir:
client.lua
server.lua

Köprü, etkin çerçevenizi otomatik olarak GetResourceState
aracılığıyla algılar.
Önemli: Çerçeve kaynağınız yeniden adlandırılırsa (örneğin,
es_extended
→roleplay_framework
), otomatik algılama başarısız olabilir.
🚀 Özel Köprüyü Nasıl Kullanılır
custom
köprüsünü kullanın:
- Bağımsız veya resmi olmayan/desteklenmeyen bir çerçeve kullanıyorsunuz
➡️custom
şablonuna dayalı yeni bir köprü oluşturun. - Mevcut bir köprüde bir şeyi düzenlemeye/işlemeye ihtiyacınız var
➡️ Önce mevcut köprüyü düzenlemeyi deneyin. Örneğin, sahip olduğunuz_araçlar tablosu varsayılanından farklı ise, sadece mevcut köprüde araçlarla ilgili işlevleri düzenlemeniz yeterlidir. Yeni bir tane oluşturmanıza veya tümünü düzenlemenize gerek yok. - Desteklenen bir çerçeve varsayılan olarak algılanmaz.
➡️ Çerçeve kaynağınızı yeniden adlandırdıysanız, otomatik olarak algılanmayabilir (örneğin,es_extended
->roleplay_framework
). Bu durumda, yeniden adlandırılmış kaynağınızı doğru köprü dosyasında algılamak içinGetResourceState
kullanmanız gerekir.
🛠️ Başlarken
bridge/custom
klasörünü kopyalayın
Adınızıza uyan özel çerçeve adınızla yeniden adlandırın (örneğin,bridge/myframework
).- Hem
client.lua
hem deserver.lua
dosyalarını düzenleyin
Sağlanan işlev boşluklarına mantığınızı uygulayın. - Çerçeve algılama mantığını ayarlayın
Özel çerçevenizi algılamak içinGetResourceState
kontrollerini değiştirin veya genişletin.
✅ Örnek: client.lua
if GetResourceState('my_framework') ~= 'started' then return end
DreamFramework.ServerFramework = 'myframework'
DreamFramework.ServerFrameworkLoaded = true
function DreamFramework.showHelpNotification(text)
-- Özel yardım bildirimi kodunuzu buraya ekleyin
end
function DreamFramework.getPlayerJobName()
return exports['my_framework']:GetJobName()
end
✅ Örnek: server.lua
if GetResourceState('my_framework') ~= 'started' then return end
DreamFramework.ServerFramework = 'myframework'
DreamFramework.ServerFrameworkLoaded = true
function DreamFramework.getPlayerFromId(source)
return exports['my_framework']:GetPlayer(source)
end
function DreamFramework.getPlayerMoney(source, account)
local player = DreamFramework.getPlayerFromId(source)
return player.money or 0
end
🧠 Hangi İşlevleri Uygulamalısınız?
Köprünüz, özel şablon ve diğer tüm köprülerde bulunan tüm işlevleri uygulamalıdır. Bu şunları içerir:
- Oyuncu işlevleri (örneğin,
getPlayerFromId
,getPlayerName
) - İş yönetimi
- Envanter ve para
- Araç sahipliği
- Olaylar gibi
OnPlayerLoaded
,OnPlayerJobChange
- Köprüde bulunan diğer işlevler...
Gerekli tüm işlevlerin tam listesi için
bridge/custom/client.lua
vebridge/custom/server.lua
dosyalarını kontrol edin.
Köprü şablonundaki her işlev özel köprünüzde uygulanmalıdır.
Eğer bir işlev eksikse, çerçeveniz muhtemelen çoklu hata fırlatacak, bu işlevlere dayanan betikleri bozacak ve beklenmeyen davranışlara neden olacaktır.
➡️ bridge/myframework/client.lua
ve bridge/myframework/server.lua
dosyalarını kontrol ederek tüm işlevlerin kapsamını sağladığınızdan emin olun.
Eksik işlevler = bozuk deneyim.
⏰ Olay İşleme
Uyumluluk için bazı olaylar manuel olarak tetiklenmelidir:
RegisterNetEvent('myfw:playerLoaded', function(playerId)
OnPlayerLoaded(playerId)
end)
RegisterNetEvent('myfw:jobChanged', function(playerId, newJob)
OnPlayerJobChange(playerId, newJob.name)
end)
💬 İpuçları
- Hata ayıklamayı kolaylaştırmak için
print("[Köprü] Özel köprü yüklendi")
gibi günlükleri kullanın. - Her işlevi kontrol edin ve denetimli bir ortamda bireysel olarak test edin.
- Tüm gerekli boşluklarla önceden doldurulmuş olan
custom
klasörünü bir temel olarak kullanın.
🙌 Köprünüzü Paylaşın
Kendi çerçeveniz için çalışan bir köprü mü oluşturdunuz?
Çalışmanızı bizimle paylaşmaktan çekinmeyin — diğerlerinin entegrasyonunuzdan faydalanmasına yardımcı olun!
🧠 Katkınız resmi projenin bir parçası haline gelebilir ve çalışmanız için tam kredi alırsınız.
💡 Herhangi bir sorunuz varsa veya yardıma ihtiyacınız varsa, Discord sunucumuzda bize ulaşmaktan çekinmeyin.
Kodlamaya devam edin! 🚀