- #1
Konu Sahibi
: serkankacan
[REHBER & SİSTEM] vSRO Scroll ile Title (Rütbe / Hwan) Verme Sistemi
_AddLogItem Tetikleyicisi Üzerinden Eşya Kullanıldığında Karakterin HwanLevel Seviyesini Değiştirme
_AddLogItem Tetikleyicisi Üzerinden Eşya Kullanıldığında Karakterin HwanLevel Seviyesini Değiştirme
Merhaba değerli forum sakinleri,
Silkroad Online sunucularında oyuncuların oyun içi mağazadan (Item Mall), etkinliklerden veya görevlerden elde ettikleri özel bir Scroll'a (parşömene) sağ tıkladıklarında karakterlerinin rütbesini (**Title / HwanLevel - Örn: Captain, General, Baronet, Baron, Count vb.**) otomatik olarak değiştirmesini sağlayabilirsiniz.
Bu sistem **SRO_VT_LOG** veritabanındaki **_AddLogItem** prosedürü üzerinden eşya tüketimini (
@Operation = 41) yakalayarak çalışır.Önemli Hatırlatma' Alıntı:DİKKAT (Görsel Güncelleme):
- Karakter oyundayken `_Char` tablosundaki `HwanLevel` değeri güncellendiğinde, rütbenin oyuncunun kafasında ve çevredeki oyuncularda anında belirmesi için karakterin ışınlanması (teleport) veya oyundan çıkıp tekrar girmesi (Relog) gerekir.
- İşlem öncesinde SRO_VT_LOG ve SRO_VT_SHARD yedeklerinizi almayı unutmayınız.
1. ADIM: Standart Title (HwanLevel) Seviye Tablosu
Karaktere vermek istediğiniz rütbeye göre kullanmanız gereken standart `HwanLevel` değerleri şunlardır:
| HwanLevel Değeri | CH (Çin) Unvanı | EU (Avrupa) Unvanı | |||
|---|---|---|---|---|---|
| 1 | Knight / Captain | Knight / Baronet | 2 | General | Baron |
| 3 | Champion | Count | |||
| 4 | Hero | Marquis | |||
| 5 | General Sonhyeon / vb. | Duke |
[TR]
2. ADIM: _AddLogItem Prosedürüne Eklenecek Kod
SRO_VT_LOG veritabanını açın, **Programmability -> Stored Procedures -> _AddLogItem** prosedürüne sağ tıklayıp **Modify** deyin.
AS bloğunun hemen altına aşağıdaki kodu entegre edin:
SQL:
-- ===================================================================
-- TITLE (HWAN LEVEL) DEĞİŞTİRME SCROLL TETİKLEYİCİSİ
-- @Operation = 41 (Eşya Sağ Tıklanarak Tüketildiğinde Tetiklenir)
-- ===================================================================
IF (@ItemRefID = 78646 AND @Operation = 41)
BEGIN
-- 1. Karakterin rütbe seviyesini güncelle (Örnek: HwanLevel = 2 -> General / Baron)
UPDATE SRO_VT_SHARD.dbo._Char
SET HwanLevel = 2
WHERE CharID = @CharID
-- 2. İsteğe Bağlı: Karakterin oyundan anında DC alarak yeni unvanla girmesini sağlamak için:
-- (Böylece rütbe anında aktifleşir ve bug oluşmaz)
/*
UPDATE SRO_VT_SHARD.dbo._User
SET Sec_Primary = 1
WHERE CharID = @CharID
*/
END
Çoklu Title Scroll'ları Tanımlamak İsterseniz (Örnek Yapı)
Farklı seviyedeki title scroll'larını tek bir `CASE` veya `IF - ELSE` bloğuyla yönetmek performansı korur:
SQL:
IF (@Operation = 41)
BEGIN
-- Title 1 (Örn: Baronet / Captain)
IF (@ItemRefID = 78646)
BEGIN
UPDATE SRO_VT_SHARD.dbo._Char SET HwanLevel = 1 WHERE CharID = @CharID
END
-- Title 2 (Örn: Baron / General)
ELSE IF (@ItemRefID = 78647)
BEGIN
UPDATE SRO_VT_SHARD.dbo._Char SET HwanLevel = 2 WHERE CharID = @CharID
END
-- Title 3 (Örn: Count)
ELSE IF (@ItemRefID = 78648)
BEGIN
UPDATE SRO_VT_SHARD.dbo._Char SET HwanLevel = 3 WHERE CharID = @CharID
END
END
Nasıl Test Edilir?
- SQL kodunu `_AddLogItem` prosedürüne kaydedin (Execute / F5).
78646numaralı eşyayı bir karaktere aktarın.- Oyunda eşyaya sağ tıklayarak kullanın.
- Karakterinizle ışınlanın (Teleport) veya oyundan çıkıp tekrar girin; yeni unvanın karakter adınızın üzerinde sorunsuzca parladığını göreceksiniz.
Sorularınızı ve özel title/rütbe isteklerinizi konu altından iletebilirsiniz. Herkese keyifli geliştirmeler!

