- #1
Konu Sahibi
: serkankacan
[SİSTEM & REHBER] vSRO Logger ile Unique Kesince Anlık Honor Puanı Verme
__Log_UniqueKills Prosedürü Üzerinden Tiger Girl, Uruchi, Isyutaru, Lord Yarkan ve Özel Uniquelerden Anlık Akademi Puanı Kazanma
__Log_UniqueKills Prosedürü Üzerinden Tiger Girl, Uruchi, Isyutaru, Lord Yarkan ve Özel Uniquelerden Anlık Akademi Puanı Kazanma
Merhaba değerli forum sakinleri,
Silkroad Online sunucularında oyuncuların yalnızca akademi kasarak (çırak mezun ederek) değil, haritadaki ve etkinliklerdeki **Unique canavarları keserek de Honor Puanı** kazanabilmesi sunucudaki rekabeti ve Unique avcılığını ciddi ölçüde canlandırır.
Birçok harici Logger programında (PureLogger, Filter Logger vb.) Unique kesildiği an
__Log_UniqueKills prosedürü tetiklenir. Eski paylaşımlarda her canavar için tek tek değişken (
@CampID2, @CampID3...) tanımlandığı için kod spagettiye dönmekte, üstelik akademisi olmayan bir karakter Unique kestiğinde veritabanında gereksiz boş sorgular dönmektedir. Aşağıda paylaşılan optimize sistem tek bir temiz blokla çalışır; canavara göre verilecek puanı belirler, akademisi olan oyuncunun puanını hem
_TrainingCamp hem de _TrainingCampMember tablolarına anında işler.Teknik Bilgilendirme' Alıntı:
- _TrainingCamp (EvaluationPoint): Akademinin genel puanını ve sıralamadaki yerini belirler.
- _TrainingCampMember (HonorPoint): Karakterin şahsi Honor puanıdır.
- Akademi Zorunluluğu: Karakterin puan alabilmesi için oyunda önceden bir akademi açmış olması gerekmektedir (
CampID > 0).- İşlem öncesinde PureLogger (veya kullandığınız Logger DB) ve SRO_VT_SHARD yedeklerinizi almayı unutmayınız.
Hatasız & Optimize Edilmiş __Log_UniqueKills Prosedürü
Logger veritabanınızı seçip aşağıdaki optimize prosedürü derleyin:
İçeriği görüntülemek için Giriş yapın veya Kayıt olun.
Neden Bu Optimize Versiyon Kullanılmalı?
- CASE WHEN ile Tek Satırda Puanlama: Onlarca
IF...ELSEbloğu yerineCASEyapısı kullanılmıştır. Yeni bir Unique eklemek istediğinizde tek yapmanız gereken listeyeWHEN @MobID = MobID THEN Puansatırını eklemektir. - Akademisi Olmayanlar Korundu:
@CampID > 0kontrolü sayesinde akademisi bulunmayan oyuncular Unique kestiğinde veritabanı boş güncellemelerle yorulmaz, Logger kilitlenmesi yaşanmaz. - Performans & Deadlock Koruması: Sorgular
WITH (NOLOCK)ile çekildiğinden Unique öldüğü an sunucuda anlık lag veya gecikme (spike) oluşmaz.
Nasıl Uygulanır & Test Edilir?
- SQL Server Management Studio (SSMS) programını açın.
- Logger sisteminizin bulunduğu veritabanını (Örn:
PureLogger) seçin. - Yukarıdaki prosedür kodunu yapıştırın ve
CASEbloğundaki Unique ID'leri kendi veritabanınıza göre kontrol edip F5 tuşuna basın. - Oyunda test edeceğiniz karakter ile öncelikle bir **Akademi** kurun.
- Test için karakterin yanına Tiger Girl spawn edin ve kesin.
- SQL üzerinden
SRO_VT_SHARD.._TrainingCampMembertablosunu kontrol ettiğinizde karakterinizin Honor puanının 2 arttığını göreceksiniz.
Sorularınızı ve özel puan listesi ekleme taleplerinizi konu altından paylaşabilirsiniz. Herkese keyifli geliştirmeler!
Moderatör tarafında düzenlendi:

