İçeriğe geç
Türkiye'nin SRO tanıtım & topluluk platformu

vSro Paylaşım vSRO 12 Degree Stone (Alchemy) Stack Değerlerini Değiştirme

Cevaplar0
Görüntüleme7
Ticaret Puanı
0
Katılım
8 Eyl 2026
Mesajlar
88
Tepkime puanı
1
Puanları
0
Mevcut Bakiye
2960 ₺
[QUERY] vSRO 12 Degree Stone (Alchemy) Stack Değerlerini Değiştirme
Tüm 12D Magic ve Attribute Taşlarının Üst Üste Koyulma (MaxStack) Sayısını Toplu Güncelleme



Merhaba değerli forum sakinleri,

Silkroad Online sunucularında oyuncuların en çok tükettiği ve çantalarında yer kaplayan unsurların başında Alchemy taşları (Magic & Attribute Stone) gelir. Standart dosyalarda bu taşların üst üste binme limiti (MaxStack) genellikle 1 veya düşüktür.

Bu rehberde paylaşılan sorgu ile **12 Degree** seviyesindeki tüm Magic ve Attribute taşlarının stack limitini tek seferde dilediğiniz sayıya (Örn: 50, 250, 1000) çekebilirsiniz.

Önemli Uyarı' Alıntı:
DİKKAT (Client - Server Senkronizasyonu):
  • Stack değerlerini sadece veritabanından değiştirmek yetersizdir. Oyuncuların envanterlerinde visual bug (görsel senkron hatası) veya DC problemi yaşamaması için aynı değişikliklerin istemci tarafındaki Media.pk2 (server_dep\itemdata_xxx.txt) dosyalarına da işlenmesi zorunludur.
  • Sorguyu çalıştırmadan önce SRO_VT_SHARD yedeğinizi almayı unutmayınız.



1. Adım: Veritabanında Stack Sayısını Güncelleme (SQL)

Aşağıdaki sorgu, 12 Degree'ye ait tüm Magic ve Attribute taşlarını tek bir liste halinde ele alır ve hepsinin `MaxStack` değerini belirlediğiniz rakama günceller:

SQL:
USE [SRO_VT_SHARD]
GO

-- ===================================================================
-- AYARLANACAK YENİ STACK LİMİTİ
-- ===================================================================
DECLARE @NewStack INT = 50 -- Taşların üst üste kaçar adet bineceğini buraya yazın

-- ===================================================================
-- 12 DEGREE TÜM TAŞLARIN MAXSTACK GÜNCELLEMESİ
-- ===================================================================
UPDATE ROI
SET ROI.MaxStack = @NewStack
FROM dbo._RefObjItem ROI
JOIN dbo._RefObjCommon ROC ON ROC.Link = ROI.ID
WHERE ROC.CodeName128 IN (
    -- 12D Magic Stones
    'ITEM_ETC_ARCHEMY_MAGICSTONE_STR_12',
    'ITEM_ETC_ARCHEMY_MAGICSTONE_INT_12',
    'ITEM_ETC_ARCHEMY_MAGICSTONE_DUR_12',
    'ITEM_ETC_ARCHEMY_MAGICSTONE_HR_12',
    'ITEM_ETC_ARCHEMY_MAGICSTONE_EVADE_BLOCK_12',
    'ITEM_ETC_ARCHEMY_MAGICSTONE_EVADE_CRITICAL_12',
    'ITEM_ETC_ARCHEMY_MAGICSTONE_ER_12',
    'ITEM_ETC_ARCHEMY_MAGICSTONE_HP_12',
    'ITEM_ETC_ARCHEMY_MAGICSTONE_MP_12',
    'ITEM_ETC_ARCHEMY_MAGICSTONE_FROSTBITE_12',
    'ITEM_ETC_ARCHEMY_MAGICSTONE_ESHOCK_12',
    'ITEM_ETC_ARCHEMY_MAGICSTONE_BURN_12',
    'ITEM_ETC_ARCHEMY_MAGICSTONE_POISON_12',
    'ITEM_ETC_ARCHEMY_MAGICSTONE_ZOMBIE_12',
    'ITEM_ETC_ARCHEMY_MAGICSTONE_SOLID_12',
    'ITEM_ETC_ARCHEMY_MAGICSTONE_LUCK_12',
    'ITEM_ETC_ARCHEMY_MAGICSTONE_ASTRAL_12',
    'ITEM_ETC_ARCHEMY_MAGICSTONE_ATHANASIA_12',
    'ITEM_ETC_ARCHEMY_MAGICSTONE_APE_12',

    -- 12D Attribute Stones
    'ITEM_ETC_ARCHEMY_ATTRSTONE_PA_12',
    'ITEM_ETC_ARCHEMY_ATTRSTONE_PASTR_12',
    'ITEM_ETC_ARCHEMY_ATTRSTONE_MA_12',
    'ITEM_ETC_ARCHEMY_ATTRSTONE_MAINT_12',
    'ITEM_ETC_ARCHEMY_ATTRSTONE_CRITICAL_12',
    'ITEM_ETC_ARCHEMY_ATTRSTONE_HR_12',
    'ITEM_ETC_ARCHEMY_ATTRSTONE_PD_12',
    'ITEM_ETC_ARCHEMY_ATTRSTONE_PDSTR_12',
    'ITEM_ETC_ARCHEMY_ATTRSTONE_MD_12',
    'ITEM_ETC_ARCHEMY_ATTRSTONE_MDINT_12',
    'ITEM_ETC_ARCHEMY_ATTRSTONE_ER_12',
    'ITEM_ETC_ARCHEMY_ATTRSTONE_BR_12',
    'ITEM_ETC_ARCHEMY_ATTRSTONE_PAR_12',
    'ITEM_ETC_ARCHEMY_ATTRSTONE_MAR_12'
)



2. Adım: Media.pk2 İçin İlgili Dosyaları Bulma ve Eşitleme

Veritabanını güncelledikten sonra, bu eşyaların client tarafında hangi `itemdata_xxx.txt` dosyasında yer aldığını ve yeni değerleri görmek için aşağıdaki kontrol sorgusunu çalıştırın:

SQL:
USE [SRO_VT_SHARD]
GO

SELECT 
    ROC.ID AS [CommonID],
    ROC.CodeName128,
    ROI.MaxStack,
    CASE 
        WHEN ROC.ID < 5000  THEN 'itemdata_5000.txt'
        WHEN ROC.ID < 10000 THEN 'itemdata_10000.txt'
        WHEN ROC.ID < 15000 THEN 'itemdata_15000.txt'
        WHEN ROC.ID < 20000 THEN 'itemdata_20000.txt'
        WHEN ROC.ID < 25000 THEN 'itemdata_25000.txt'
        WHEN ROC.ID < 30000 THEN 'itemdata_30000.txt'
        WHEN ROC.ID < 35000 THEN 'itemdata_35000.txt'
        WHEN ROC.ID < 40000 THEN 'itemdata_40000.txt'
        ELSE 'itemdata_45000.txt'
    END AS [Dosya_Adi]
FROM dbo._RefObjCommon ROC
JOIN dbo._RefObjItem ROI ON ROI.ID = ROC.Link
WHERE ROC.CodeName128 LIKE 'ITEM_ETC_ARCHEMY_%STONE%_12'
ORDER BY ROC.ID ASC



İşlemi Tamamlama Prosedürü

  1. İlk sorguyu SQL Server Management Studio üzerinde okutun.
  2. İkinci sorguyu okutarak taşların hangi `itemdata` dosyasına ait olduğunu tespit edin.
  3. Bir PK2 editörü yardımıyla (örn: Pk2Editor / Joymax PK2 Tools) `Media.pk2 -> server_dep` klasörüne girin ve ilgili `itemdata_xxx.txt` dosyasını dışarı aktarın.
  4. Notepad++ ile dosyayı açıp ilgili taşların `MaxStack` sütunundaki değerini SQL'de girdiğiniz değerle (50) birebir aynı yapıp kaydedin.
  5. Düzenlediğiniz txt dosyasını tekrar Media.pk2 içerisine import edin.
  6. Son olarak sunucu tarafında GameServer'ı yeniden başlatın.

Sorularınızı ve takıldığınız yerleri bu konu altından iletebilirsiniz. Herkese keyifli geliştirmeler!
 

Konuyu görüntüleyenler

Yükleniyor...
Yükleniyor...
Etiketler
Etiketler Etiketler
alchemy database patch query vsro
Şu anda sitemizde 40,447 Aktif Kullanıcı
Çevrimiçi üyeler
Konular 1,311
Mesajlar 4,191
Kullanıcılar 1,624
Son üye mrt
Geri
Üst