- #1
Konu Sahibi
: serkankacan
[REHBER & QUERY] vSRO Kervan Malları Stack (Üst Üste Koyma) Artırma
_RefObjItem ve _RefObjCommon Üzerinden Kervan Eşyalarının Maksimum Stack Sayısını Güncelleme
_RefObjItem ve _RefObjCommon Üzerinden Kervan Eşyalarının Maksimum Stack Sayısını Güncelleme
Merhaba değerli forum sakinleri,
Silkroad Online sunucularınızda kervan (Job / Trade) aktivitesini canlandırmak, oyuncuların kervan petlerine (Deve, At vb.) daha fazla mal yükleyebilmesini sağlamak veya kervan döngüsünü hızlandırmak için kervan mallarının çanta/pet yuvalarındaki maksimum üst üste binme sınırını (**MaxStack**) artırabilirsiniz.
Aşağıda hem tek bir kervan malını hem de oyundaki tüm kervan mallarını tek seferde güncelleyebileceğiniz optimize edilmiş SQL sorgularını bulabilirsiniz.
Önemli Uyarı' Alıntı:DİKKAT (Client Senkronizasyonu):
- SQL üzerinden
MaxStackdeğerini değiştirdikten sonra, oyuncuların eşyaları birleştirirken sorun yaşamaması için istemci tarafındaki Media.pk2 (server_dep\itemdata_xxx.txt) dosyalarında da ilgili eşyanınMaxStackdeğerini aynı sayıya güncellemeniz gerekmektedir.- İşlem öncesinde SRO_VT_SHARD yedeğinizi almayı unutmayınız.
- Değişikliklerin sunucuda aktifleşmesi için GameServer modüllerinin yeniden başlatılması gerekir.
1. YÖNTEM: Tek Bir Kervan Malının Stack Sayısını Değiştirme
Belirlediğiniz tek bir malın stack sınırını güncellemek için:
SQL:
USE [SRO_VT_SHARD]
GO
-- ===================================================================
-- DEĞİŞKENLER
-- ===================================================================
DECLARE @ItemCodeName VARCHAR(128) = 'ITEM_ETC_TRADE_SPECIAL_JANGANYE_01' -- Hedef Kervan Malı Kodu
DECLARE @NewMaxStack INT = 250 -- Yeni Stack Sınırı (Örn: 250)
-- Güncelleme İşlemi
UPDATE ROI
SET ROI.MaxStack = @NewMaxStack
FROM dbo._RefObjItem ROI
INNER JOIN dbo._RefObjCommon ROC ON ROC.Link = ROI.ID
WHERE ROC.CodeName128 = @ItemCodeName
PRINT 'Belirtilen kervan malının MaxStack değeri ' + CAST(@NewMaxStack AS VARCHAR(10)) + ' olarak güncellendi.'
2. YÖNTEM: Tüm Kervan Mallarını Topluca Güncelleme (ÖNERİLEN)
Oyundaki standart ve özel (Specialty) tüm kervan mallarını tek tek kod aramadan tek seferde güncellemek için:
SQL:
USE [SRO_VT_SHARD]
GO
-- ===================================================================
-- TÜM KERVAN MALLARI TOPLU STACK GÜNCELLEMESİ
-- ===================================================================
DECLARE @GlobalTradeStack INT = 100 -- Tüm kervan mallarına atanacak yeni stack limiti
UPDATE ROI
SET ROI.MaxStack = @GlobalTradeStack
FROM dbo._RefObjItem ROI
INNER JOIN dbo._RefObjCommon ROC ON ROC.Link = ROI.ID
WHERE ROC.CodeName128 LIKE 'ITEM_ETC_TRADE%'
AND ROC.Service = 1
PRINT 'Tüm kervan mallarının MaxStack değeri başarıyla ' + CAST(@GlobalTradeStack AS VARCHAR(10)) + ' yapıldı.'
Client (Media.pk2) Güncelleme Adımları
- SQL sorgusunu SRO_VT_SHARD üzerinde F5 tuşuna basarak çalıştırın.
- Bir PK2 editörü yardımıyla Media.pk2 dosyanızı açın.
server_dep\dizini altındaki ilgiliitemdata_xxx.txtdosyasını dışarı aktarın (Export).- Değiştirdiğiniz kervan malının kodunu bulun ve satırdaki
MaxStacksütununa SQL'e girdiğiniz yeni değeri yazın. - Dosyayı kaydedip tekrar Media.pk2 içine import edin ve oyuncularınıza patch olarak iletin.
- Sunucunuzdaki GameServer pencerelerini yeniden başlatın.
Sorularınızı ve takıldığınız noktaları konu altından sorabilirsiniz. Herkese bereketli kervanlar ve iyi forumlar!

