- #1
Konu Sahibi
: serkankacan
[PAKET REHBER] vSRO Job Sistemi Yönetimi
Giriş Seviyesi Ayarlama, 7 Level Job Otomatik Ödül Sistemi ve Kervan Rate Düzenleme
Giriş Seviyesi Ayarlama, 7 Level Job Otomatik Ödül Sistemi ve Kervan Rate Düzenleme
Merhaba değerli forum sakinleri,
Silkroad Online sunucularının kalbini oluşturan Job (Meslek / Kervan) sistemini optimize etmek için en çok ihtiyaç duyulan 3 temel düzenlemeyi tek bir konuda topladık:
- Job Suit Giriş Seviyesini Değiştirme
- Job Level 7 Olduğunda Otomatik Ödül Verme (SRO_VT_LOG)
- Kervan Alış/Satış Ratelerini Sıfırlama ve Katlama
Önemli Uyarı' Alıntı:Veritabanı üzerinde işlem yapmadan önce mutlaka SRO_VT_SHARD ve SRO_VT_LOG yedeklerinizi alınız. Yapılan değişikliklerin sunucuya yansıması için GameServer modüllerinin yeniden başlatılması (Restart) gerekmektedir.
1. BÖLÜM: Job Suit Giriş Seviyesini Değiştirme
Oyuncuların meslek kıyafetini (Suit) kaçıncı seviyeden itibaren giyebileceğini belirlemek için aşağıdaki sorguyu kullanabilirsiniz.
SQL:
USE SRO_VT_SHARD
GO
-- Hedeflenen minimum Job giriş seviyesini '80' yerine yazın
UPDATE _RefGame_World_Config
SET Value = 80
WHERE ID = 155
2. BÖLÜM: 7 Level Job Olan Oyuncuya Otomatik Ödül Verdirme
Oyuncu Job seviyesini 7 yaptığında seviyesini ve tecrübe puanını sıfırlayarak çantasına otomatik ödül (Silk Scroll, Coin, Box vb.) tanımlayabilirsiniz.
Kurulum Adımları:
- SQL Server üzerinde SRO_VT_LOG veritabanını genişletin.
- Programmability -> Stored Procedures yolundan _AddLogChar prosedürüne sağ tıklayıp Modify deyin.
- Prosedür içerisindeki
ASsatırının hemen altına aşağıdaki bloğu yapıştırıp F5 ile kaydedin.
SQL:
-- ===================================================================
-- JOB LEVEL 7 OTOMATİK ÖDÜL PROSEDÜRÜ (_AddLogChar altına eklenir)
-- ===================================================================
IF (@EventID = 6 AND (SELECT Level FROM SRO_VT_SHARD.._CharTrijob WHERE CharID = @CharID) = 7)
BEGIN
DECLARE @Charname16 VARCHAR(16) = (SELECT Charname16 FROM SRO_VT_SHARD.._Char WHERE CharID = @CharID)
-- Oyuncunun Job seviyesini ve katkısını sıfırla
UPDATE SRO_VT_SHARD.._CharTrijob
SET Level = 1, Exp = 0, Contribution = 0
WHERE CharID = @CharID
-- Çantasına ödül eşyasını gönder (Parametreler: CharName, ItemCode, Adet, Artı Değeri)
EXEC SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @Charname16, 'ITEM_ETC_SD_TOKEN_01', 1, 0
END
3. BÖLÜM: Kervan Fiyatlarını Sıfırlama ve Yeni Rate Ayarlama
Kervan mallarının alış, satış ve NPC maliyetlerini kontrol etmek, orijinal değerine döndürmek veya çarpan uygulayarak katlamak için aşağıdaki 3 adımı izleyin:
Adım 3.1: Mevcut Kervan Malı Fiyatlarını Görüntüleme
SQL:
USE SRO_VT_SHARD
GO
-- 1. Eşya tablosundaki alış ve satış fiyatları
SELECT Service, ID, CodeName128, Price, SellPrice
FROM dbo._RefObjCommon
WHERE CodeName128 LIKE 'ITEM_ETC_TRADE_%'
-- 2. NPC paket satış maliyetleri
SELECT Service, Cost, RefPackageItemCodeName
FROM dbo._RefPricePolicyOfItem
WHERE RefPackageItemCodeName LIKE '%_TRADE_%'
Adım 3.2: Fiyatları Orijinal (Default) Değerlere Döndürme
Sunucu varsayılan taban fiyatları `Price: 383`, `SellPrice: 191`, `Cost: 383` şeklindedir:
SQL:
USE SRO_VT_SHARD
GO
-- _RefObjCommon Alış & Satış Fiyatını Sıfırla
UPDATE dbo._RefObjCommon
SET Price = 383, SellPrice = 191
WHERE CodeName128 LIKE 'ITEM_ETC_TRADE_%'
-- _RefPricePolicyOfItem Paket Maliyetini Sıfırla
UPDATE dbo._RefPricePolicyOfItem
SET Cost = 383
WHERE RefPackageItemCodeName LIKE '%_TRADE_%'
Adım 3.3: Kervan Fiyatlarına Kat Çarpanı (Rate) Uygulama
Aşağıdaki sorguda bulunan
* 15 çarpanını sunucunuzun istediğiniz kazanç oranına göre (örn: `* 5`, `* 20`, `* 50`) değiştirebilirsiniz:
SQL:
USE SRO_VT_SHARD
GO
DECLARE @Carpan INT = 15 -- Kervan rate çarpanınız
-- _RefObjCommon Tablosunu Çarpan ile Güncelle
UPDATE dbo._RefObjCommon
SET Price = 383 * @Carpan,
SellPrice = 191 * @Carpan
WHERE CodeName128 LIKE 'ITEM_ETC_TRADE_%'
-- _RefPricePolicyOfItem Tablosunu Çarpan ile Güncelle
UPDATE dbo._RefPricePolicyOfItem
SET Cost = 383 * @Carpan
WHERE RefPackageItemCodeName LIKE '%_TRADE_%'
Son Hatırlatma:
Kervan fiyatlandırmasını güncelledikten sonra oyuncuların client ekranında (NPC dükkanında) fiyatların doğru gözükmesi için Media.pk2 içerisindeki ilgili `itemdata` ve `pricepolicy` dosyalarını da güncelleyip patch atmanız önerilir.
İşlemler bittikten sonra GameServer'ı yeniden başlatmayı unutmayınız. Takıldığınız yerleri yorum olarak iletebilirsiniz!

