- Katılım
- 15 May 2013
- Konular
- 1,209
- Mesajlar
- 7,330
- Çözüm
- 6
- Online süresi
- 2mo 16d
- Reaksiyon Skoru
- 5,964
- Altın Konu
- 410
- Başarım Puanı
- 349
- MmoLira
- 2,004
- DevLira
- 6
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
Paylaşım için teşekkürler.
- Katılım
- 16 Tem 2019
- Konular
- 715
- Mesajlar
- 3,551
- Çözüm
- 47
- Online süresi
- 6mo 20d
- Reaksiyon Skoru
- 2,109
- Altın Konu
- 34
- Başarım Puanı
- 309
- MmoLira
- 19,556
- DevLira
- 122
eline sağlık paylaşım için teşekkürler.
- Katılım
- 22 Eki 2024
- Konular
- 27
- Mesajlar
- 268
- Online süresi
- 1mo 3d
- Reaksiyon Skoru
- 166
- Altın Konu
- 0
- Başarım Puanı
- 74
- MmoLira
- 2,281
- DevLira
- 42
ne kadar mantıklı bilmiyorum ama eğer aktif gm varsa direk aktif gm e pm yoluyla iletilecek ve sql e yazmiycak aktif gm yoksa 5 dakika boyunca bellekte tutucak eğer gm oyuna girerse pm olarak yine iletilecek gm oyuna girmezse sql e yazacak ?bu tarz bir sistem mantık olarak gelen rapor miktarına göre çalışmalı, herkesin kafasına göre tıklayıp kayıt bırakabileceği bir dbden bir sonuç alınması imkansıza yakın bu şekilde sadece kozmetik olur.
efektif bir hale getirmek isteyen olursa;
- ilk olarak kesinlikle bir zaman kontrolü eklenmeli, 5-10 client script ile saniyede 500 defa kayıt bırakırsa o queryler can sıkar.
- bir kullanıcı rapor edildiğinde normal loglar gibi sadece bir tabloya doldurmak yerine, hedef oyuncunun player tablosundaki bir değerine her gelen rapor için + değer artırılır, bir gm komutuylada en yüksek değerler oyun içi sıralanabilir, gm kontrol ettiğindede oyuncu temizse bir komut ile o sütunu sıfırlayıp gm adıyla beraber bu işlem log tablosuna yazılabilir.
- artırılacak + değer her oyuncu için sabit bir sayı ile başlar (örnek 1 diyelim) daha önce rapor yapan her kullanıcının bu değeri(repulation) önceki attığı raporlar tutarlıysa + değilse - olarak değişir. belirli bir repulation seviyesinin altına inen oyuncuların raporu db işlemine alınmaz ve gelen bildirim tutarlılığı artırılmış olur.
- hedef oyuncu aktifse ve belirli bir rapor skoruna ulaştıysa o an aktif gmlere nick, kanal ve map olarak bildirim gidebilir.
- Katılım
- 22 Eki 2024
- Konular
- 27
- Mesajlar
- 268
- Online süresi
- 1mo 3d
- Reaksiyon Skoru
- 166
- Altın Konu
- 0
- Başarım Puanı
- 74
- MmoLira
- 2,281
- DevLira
- 42
Sorunsuz çalışıyor paylaşım için teşekkürler.
aktif gm varsa sql e yazmaz verileri direk gm e pm olarak iletilir. whisper kullanır aktif gm lerin hangi harita yada hangi corede olduğunun önemi yok aktif gm yoksa sql e yazıyor.
aktif gm varsa sql e yazmaz verileri direk gm e pm olarak iletilir. whisper kullanır aktif gm lerin hangi harita yada hangi corede olduğunun önemi yok aktif gm yoksa sql e yazıyor.
Son düzenleme:
- Katılım
- 17 Eki 2016
- Konular
- 129
- Mesajlar
- 2,410
- Çözüm
- 86
- Online süresi
- 2mo 11d
- Reaksiyon Skoru
- 1,291
- Altın Konu
- 1
- Başarım Puanı
- 258
- MmoLira
- 1,869
- DevLira
- 12
Bence söylediklerin çok mantıklı, benim de bir kaç yorumum olacak;bu tarz bir sistem mantık olarak gelen rapor miktarına göre çalışmalı, herkesin kafasına göre tıklayıp kayıt bırakabileceği bir dbden bir sonuç alınması imkansıza yakın bu şekilde sadece kozmetik olur.
efektif bir hale getirmek isteyen olursa;
- ilk olarak kesinlikle bir zaman kontrolü eklenmeli, 5-10 client script ile saniyede 500 defa kayıt bırakırsa o queryler can sıkar.
- bir kullanıcı rapor edildiğinde normal loglar gibi sadece bir tabloya doldurmak yerine, hedef oyuncunun player tablosundaki bir değerine her gelen rapor için + değer artırılır, bir gm komutuylada en yüksek değerler oyun içi sıralanabilir, gm kontrol ettiğindede oyuncu temizse bir komut ile o sütunu sıfırlayıp gm adıyla beraber bu işlem log tablosuna yazılabilir.
- artırılacak + değer her oyuncu için sabit bir sayı ile başlar (örnek 1 diyelim) daha önce rapor yapan her kullanıcının bu değeri(repulation) önceki attığı raporlar tutarlıysa + değilse - olarak değişir. belirli bir repulation seviyesinin altına inen oyuncuların raporu db işlemine alınmaz ve gelen bildirim tutarlılığı artırılmış olur.
- hedef oyuncu aktifse ve belirli bir rapor skoruna ulaştıysa o an aktif gmlere nick, kanal ve map olarak bildirim gidebilir.
Ayrı ayrı log tutmak bence daha mantıklı, player tablosunda bir kolonu güncellemektense raporlayanın ve raporlananın adı karakter konumu ip’si gibi metadatayı da tutarsak dediğin gibi anlamlı olur.
Benzer mantık farklı oyunlarda da var orada herkes raporlama yapamıyor belli bir seviye gereksinimi var bu ve ip/hwid tabanlı bir cooldown mekanizması da kurulabilir.
Belli rapor sayısına ulaşan kişi temporary ban yiyebilir yada shadow ban (ticaret drop engellemeleri saldırı engellemesi gibi) yiyebilir.
İsterse on binlerce kayıt olsun db de bir yada bir kaç kolonu kapsayacak composite index ile tablo performansını etkileyecek etkilerin önüne geçilir.
Reputation sistemi de uygulanabilir dediğin gibi.
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 14
- Görüntüleme
- 1K
- Cevaplar
- 14
- Görüntüleme
- 1K
- Cevaplar
- 23
- Görüntüleme
- 1K
- Cevaplar
- 14
- Görüntüleme
- 831














