JavaScript devre dışı. Daha iyi bir deneyim için, önce lütfen tarayıcınızda JavaScript'i etkinleştirin.
Çok eski bir web tarayıcısı kullanıyorsunuz. Bu veya diğer siteleri görüntülemekte sorunlar yaşayabilirsiniz..
Tarayıcınızı güncellemeli veya
alternatif bir tarayıcı kullanmalısınız.
Cevaplandı player.item
Konuyu başlatan
Konuyu başlatan
zalo25252
Başlangıç tarihi
Başlangıç tarihi
29 Nis 2025
Cevaplar
Cevaplar
5
Görüntüleme
Görüntüleme
153
Oyun içerisinde envantere gelen veya giden itemler kaç dk sonra veritabanına yazılıyor?
Bu sürenin uzeltilmasi veya kısaltılması ne gibi sorunlara yol açar
1. Süreyi Kısaltırsan (Örneğin: 5 dakikadan 30 saniyeye)
Avantajlar:
Veri kaybı riski azalır. Sunucu çökse bile son işlemler büyük ihtimalle kayıtlı olur.
Hilecilerin hızlı item çekip çıkma taktiklerini engellemeye yardımcı olabilir.
Özellikle PVP sunucularda oyuncuların yaptığı ticaret/loglar daha güvenli olur.
Dezavantajlar:
MySQL'e aşırı yük biner. Her karakter için 30 saniyede bir veritabanına yazmak, oyuncu sayısı fazlaysa performansı düşürür.
Disk I/O artar → SSD kullanmıyorsan sunucu yavaşlar.
Sunucunun gecikme sürelerinde artış olabilir (özellikle yüksek oyunculu ortamlarda)...
Bu sürenin uzeltilmasi veya kısaltılması ne gibi sorunlara yol açar
1. Süreyi Kısaltırsan (Örneğin: 5 dakikadan 30 saniyeye)
Avantajlar:
Veri kaybı riski azalır. Sunucu çökse bile son işlemler büyük ihtimalle kayıtlı olur.
Hilecilerin hızlı item çekip çıkma taktiklerini engellemeye yardımcı olabilir.
Özellikle PVP sunucularda oyuncuların yaptığı ticaret/loglar daha güvenli olur.
Dezavantajlar:
MySQL'e aşırı yük biner. Her karakter için 30 saniyede bir veritabanına yazmak, oyuncu sayısı fazlaysa performansı düşürür.
Disk I/O artar → SSD kullanmıyorsan sunucu yavaşlar.
Sunucunun gecikme sürelerinde artış olabilir (özellikle yüksek oyunculu ortamlarda).
2. Süreyi Uzatırsan (Örneğin: 5 dakikadan 15 dakikaya)
Avantajlar:
Daha az MySQL yükü → sunucu daha akıcı çalışır.
Büyük sunucularda CPU/RAM kaynakları daha verimli kullanılır.
Disk erişimi azalır → SSD ömrü uzayabilir.
Dezavantajlar:
Veri kaybı riski artar. Sunucu çökmeden önce yapılan her şey (item alımı, yang, vs.) veritabanına geçmemiş olabilir.
Oyuncular "item kayboldu" şikayetiyle gelir.
Rollback (geri alma) ihtimali artar.
Önerilen En İyi Uygulama:
Ortalama: 3–5 dakika arası idealdir.
Sunucu PVP ise 1–2 dakikaya kadar düşürülebilir.
PvM ya da düşük oyunculu ise 10 dakikaya kadar çıkılabilir.
Alternatif: Yüksek değerli işlemleri (örneğin +9 item alma, sandık açma, yang kazanımı) anında veritabanına yazdırabilirsin → “kritik veri anlık, diğerleri toplu” modeli.
Teknik olarak bu süreyi nereden ayarlayabilirim?
Source tarafında CHARACTER::Update() veya CHARACTER::Save() fonksiyonlarının bağlı olduğu
event zamanlamalarını değiştirerek.
Örneğin:
cpp
event_create(save_event, this, PASSES_PER_SEC(300)); // 5 dakika
→ Buradaki 300 değeri 180 yapılırsa → 3 dakikaya iner.