- #1
Konu Sahibi
: serkankacan
[SİSTEM & ETKİNLİK] vSRO İlk Belirli Levele Ulaşanlara Silk ve Özel Title Ödülü (MaxiGuard)
_AddLogChar Üzerinden Hedef Levele (Örn: 80, 90, 100, 110 Cap) Ulaşan İlk X Kişiye Otomatik Silk, Rütbe (Title) ve Sunucu Bildirimi
_AddLogChar Üzerinden Hedef Levele (Örn: 80, 90, 100, 110 Cap) Ulaşan İlk X Kişiye Otomatik Silk, Rütbe (Title) ve Sunucu Bildirimi
Merhaba değerli forum sakinleri,
Yeni açılan Silkroad Online sunucularında en büyük rekabet ilk günlerdeki seviye kasma (Level Race) yarışında yaşanır. Bu tatlı rekabeti ödüllendirmek amacıyla **son seviyeye (Cap) ulaşan ilk 3, 5 veya 10 oyuncuya anında Silk yüklemek, özel bir Title vermek ve tüm oyuna notice ile duyurmak** harika bir açılış etkinliğidir.
Sistemin Çalışma Mantığı:
- Karakter Seviye Atlar: GameServer otomatik olarak
SRO_VT_SHARDLOG.dbo._AddLogChartablosuna@EventID = 22(Level Up) kaydı düşer. - Limit & Sıralama Kontrolü: Oyuncu hedef levele ulaştıysa ve daha önce ödül almadıysa, sistem sıradaki sıra numarasını belirler (1., 2., 3.).
- Ödüller Dağıtılır: MaxiGuard köprü komutları (
_BridgeCommands) ile oyuncunun hesabına anında Silk aktarılır, Title tanımlanır, takılır ve ekranına tebrik mesajı gönderilir.
İnternette paylaşılan ham kodlardaki eksik
BEGIN...END ve veritabanı boşluk hataları giderilmiş, eşzamanlılık korumalı optimize hali aşağıdadır.Teknik Gereksinimler & Uyarılar' Alıntı:
- MaxiGuard Filtre Altyapısı: Bu sistem MaxiGuard'ın dahili komutları ile entegre çalışır.
-CommandID 56:Anlık Silk Yükleme
-CommandID 52:Karakter Rütbesi (Title) Tanımlama
-CommandID 57:Rütbeyi Karakterin Başına Aktif Etme
-CommandID 500:Notice / Özel Bildirim- İşlem öncesinde SRO_VT_SHARDLOG ve MaxiGuard_User yedeğinizi almayı unutmayınız.
1. ADIM: Takip Tablosunu Oluşturma (SRO_VT_SHARDLOG)
Ödül alan oyuncuların kaydedileceği ve mükerrer ödül verilmesini engelleyen tabloyu oluşturun:
İçeriği görüntülemek için Giriş yapın veya Kayıt olun.
2. ADIM: _AddLogChar Prosedürüne Ödül Kodunu Ekleme
SRO_VT_SHARDLOG veritabanını açın, **[dbo].[_AddLogChar]** prosedürüne sağ tıklayıp Modify deyin ve en altındaki
END satırının hemen öncesine aşağıdaki optimize bloğu ekleyin:
İçeriği görüntülemek için Giriş yapın veya Kayıt olun.
3. ADIM: Özel Title Tanımlama (Database & Media.pk2)
Verilen Title'ın (Örn: Rütbe ID:
7) oyunda hatasız görünmesi için aşağıdaki satırları ekleyin:1. SRO_VT_SHARD -> dbo._RefHWANLevel Tablosu:
İçeriği görüntülemek için Giriş yapın veya Kayıt olun.
(Not: Bu satırı ekledikten sonra
db2media kullanarak Media.pk2 içerisindeki refhwanlevel.txt dosyasına aktarın.)2. Media.pk2 -> textdata\textuisystem.txt Dosyası:
İçeriği görüntülemek için Giriş yapın veya Kayıt olun.
(Not: "PLVL Expert" yerine dilediğiniz rütbe adını yazabilirsiniz, örn: "80 Cap Pioneer", "Speed Leveller" vb.)
Neden Bu Optimize Versiyon Kullanılmalı?
- Sözdizimi Hataları Giderildi: Eksik
BEGIN...ENDblokları düzeltilerek derleme hatası almanız engellendi. - Çift Ödül (Race Condition) Koruması:
UPDLOCKvePRIMARY KEYsayesinde aynı anda seviye atlayan oyuncuların sırayı aşarak fazladan ödül alması imkansız hale getirildi. - Otomatik Derece ve Global Duyuru: Sistem oyuncunun kaçıncı olduğunu (1., 2. veya 3.) dinamik hesaplar; hem oyuncuya özel tebrik kutusu hem de tüm sunucuya sarı notice duyurusu geçer.
- Performans: GameServer'ı yoran boş
SELECTçıktıları tamamen temizlendi.
Nasıl Test Edilir?
- SRO_VT_SHARDLOG üzerinde 1. Adımdaki tabloyu oluşturun.
_AddLogCharprosedürünü güncelleyip F5 ile derleyin.- Oyunda bir test karakterini hedef seviyeden bir alt seviyeye getirin (Örn: 79 Level %99.99).
- Bir canavar keserek veya EXP Scroll basarak 80 level olun.
- Karakterinizin hesabına anında 500 Silk eklendiğini, başının üstünde PLVL Expert rütbesinin yandığını ve tüm sunucuya sarı notice geçtiğini doğrulayın.
SRO_VT_SHARDLOG.dbo._TopLevellersRewardtablosunu kontrol ederek kaydın düzgün yazıldığını teyit edin.
Sorularınızı ve farklı ödül kombinasyonu taleplerinizi bu konu altından iletebilirsiniz. Herkese keyifli geliştirmeler!

