Sunucunda özel geliştirilmiş veya Panel’in otomatik algılamadığı bir paket varsa Özel entegrasyon oluşturarak paketi Panel’e bağlayabilirsin.
Başlamadan önce gerekli bilgiler
| Bilgi | Örnek |
|---|
| Resource adı | custom-housing |
| Kategori | Housing |
| Kullanılacak Panel işlemleri | Listele, düzenle, sil |
| Paket erişim yöntemi | Export, event veya veritabanı |
| Beklenen parametreler | Oyuncu ID, kayıt ID, payload |
| Dönen veri biçimi | Liste veya obje |
Uyarlama yöntemi
Panel kategorisini seç
Paketin hangi Panel sayfasını besleyeceğini belirle.
Doğru capability'yi seç
Capability’yi elle uydurmak yerine kategori için önerilen listeden seç.
Önce okuma action'ını ekle
Listeleme veya detay görüntüleme işlemini bağla ve test et.
Yazma desteğini ayrı ekle
Oluşturma, düzenleme ve silme işlemlerini ayrı capability olarak tanımla.
Oyun içinde doğrula
Panel cevabıyla yetinme; değişikliğin paket ve oyun içinde uygulandığını kontrol et.
Kategoriye göre doğru capability seçimi
| İhtiyaç | Doğru örnek | Yanlış örnek |
|---|
| Evleri listele | housing.list | houses.list |
| Marketleri listele | shops.list | shop.list |
| Kapıları listele | doorlock.list | doors.list |
| Araç anahtarlarını listele | vehiclekeys.list | keys.list |
| Karakter mesleğini değiştir | character.job.set | job.set |
Tam CRUD desteği
CRUD; oluşturma, okuma, düzenleme ve silme işlemlerinin tamamını ifade eder. Bir resource’un algılanması veya listeleme yapabilmesi tam CRUD desteği olduğu anlamına gelmez.
| Seviye | Hazır işlemler | Panel davranışı |
|---|
| Salt okunur | Yalnızca list/get | Kayıtlar görünür, değiştirilemez |
| Kısmi yazma | List ve update | Kayıtlar düzenlenir, oluşturulamaz veya silinemez |
| Tam CRUD | List/get/create/update/delete | Panel’den tam yönetim yapılabilir |
Örnek tam housing mapping’i
{
"housing.list": {
"type": "export",
"side": "server",
"resource": "custom-housing",
"name": "GetPanelHouses"
},
"housing.create": {
"type": "export",
"side": "server",
"resource": "custom-housing",
"name": "CreatePanelHouse",
"args": ["payload"]
},
"housing.update": {
"type": "export",
"side": "server",
"resource": "custom-housing",
"name": "UpdatePanelHouse",
"args": ["payload.id", "payload"]
},
"housing.delete": {
"type": "export",
"side": "server",
"resource": "custom-housing",
"name": "DeletePanelHouse",
"args": ["payload.id"]
}
}
Paket güncellemesi sonrası
Paket geliştiricisi export, event, tablo veya alan adını değiştirebilir. Her paket güncellemesinden sonra:
- Resource’un algılandığını kontrol et.
- Okuma action’larını yeniden test et.
- Test sunucusunda bir yazma işlemi uygula.
- Oyun içi durumla veritabanının aynı kaldığını doğrula.
- Hata varsa entegrasyonu geçici olarak salt okunur kullan.
Sorun giderme
| Hata | Anlamı | Çözüm |
|---|
| Resource tespit edilemedi | Ad yanlış veya resource çalışmıyor | ensure adını ve resource durumunu kontrol et |
capability_not_synced | Plugin capability’yi henüz bildirmedi | Health check çalıştır ve plugin bağlantısını kontrol et |
| Export bulunamadı | Export adı veya tarafı yanlış | Paket dokümanını ve server/client seçimini kontrol et |
| Test başarılı, sayfa boş | Sonuç yolu veya veri biçimi yanlış | Dönen liste alanını kontrol et |
| Panel değişti, oyun değişmedi | Yalnızca veritabanı güncellendi | Paketin export veya event yöntemini kullan |
Özel uyarlamada önce tek bir okuma capability’sini kusursuz çalıştır. Sonra yazma işlemlerini birer birer ekle.