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

vSro Paylaşım vSRO Karakter Envanter Boyutunu (3 Sayfa Çanta) Açma Query'si

Cevaplar0
Görüntüleme4
Ticaret Puanı
0
Katılım
8 Eyl 2026
Mesajlar
88
Tepkime puanı
1
Puanları
0
Mevcut Bakiye
2960 ₺
[REHBER & QUERY] vSRO Karakter Envanter Boyutunu (3 Sayfa Çanta) Açma Query'si
_Char Tablosu ve _Inventory Satırlarını Eksiksiz 108 Slota (Full Sayfa) Senkronize Etme



Merhaba değerli forum sakinleri,

Silkroad Online sunucularında oyuncuların veya test karakterlerinin 32'lik envanter genişletme görevleriyle (Inventory Expansion Quest) uğraşmadan, çantalarındaki **3 sayfanın tamamını (Maksimum Kapasite)** doğrudan açabilmesi için bu SQL sorgusunu kullanabilirsiniz.

Kritik Mimari Uyarısı' Alıntı:
DİKKAT (108 Slot Sınırı & Satır Bütünlüğü):
  • Eski paylaşımlardaki InventorySize = 109 değeri yanlıştır. Silkroad mimarisinde slotlar 0'dan 108'e kadar uzanır. Stabil ve hatasız çalışan tam kapasite değeri 108'dir.
  • Sadece `_Char.InventorySize` sütununu güncellemek yetmez; eğer `_Inventory` tablosunda 46-108 arası slot kayıtları fiziksel olarak açılmamışsa, oyuncu arka sayfalara eşya koyduğunda eşyalar kaybolabilir.
  • Aşağıdaki sorgu hem karakter boyutunu 108 yapar hem de eksik olan tüm slotları `_Inventory` tablosuna otomatik tanımlar.
  • İşlem öncesinde karakterin kesinlikle oyunda olmaması (Offline) gerekir.



Hatasız & Güvenli SQL Query Kodu

SQL:
USE [SRO_VT_SHARD]
GO

-- ===================================================================
-- 1. ADIM: KARAKTER BİLGİSİ
-- ===================================================================
DECLARE @CharName VARCHAR(16) = 'Player' -- Çantası açılacak karakter adı

DECLARE @CharID INT = (SELECT CharID FROM dbo._Char WITH (NOLOCK) WHERE CharName16 = @CharName)

IF (@CharID IS NULL)
BEGIN
    RAISERROR('HATA: Belirtilen karakter veritabanında bulunamadı!', 16, 1)
    RETURN
END

-- ===================================================================
-- 2. ADIM: _Char TABLOSUNDA ENVANTER BOYUTUNU GÜNCELLE (108 = 3 Sayfa Full)
-- ===================================================================
UPDATE dbo._Char
SET InventorySize = 108
WHERE CharID = @CharID

-- ===================================================================
-- 3. ADIM: _Inventory TABLOSUNDAKİ EKSİK SLOTLARI OLUŞTURMA
-- (Slot 13 ile 108 arasındaki boş yuvaları fiziksel olarak ekler)
-- ===================================================================
DECLARE @CurrentSlot INT = 13

WHILE (@CurrentSlot <= 108)
BEGIN
    -- Eğer bu slot tabloda mevcut değilse boş yuva olarak ekle
    IF NOT EXISTS (SELECT 1 FROM dbo._Inventory WHERE CharID = @CharID AND Slot = @CurrentSlot)
    BEGIN
        INSERT INTO dbo._Inventory (CharID, Slot, ItemID)
        VALUES (@CharID, @CurrentSlot, 0)
    END

    SET @CurrentSlot = @CurrentSlot + 1
END

PRINT '====================================================='
PRINT 'BAŞARILI: ' + @CharName + ' adlı karakterin çantası başarıyla 3 sayfa (108 Slot) olarak açıldı!'
PRINT '====================================================='



Neden Bu Prosedür Kullanılmalı?

  1. Sözdizimi Düzeltildi: Hatalı olan `Update(dbo._Char)` ve eksik `SET` sözdizimi temiz standart T-SQL formatına çevrildi.
  2. Kusursuz Slot Eşitlemesi: WHILE döngüsü ile 13 ile 108 arasındaki tüm slotların `_Inventory` tablosunda `ItemID = 0` (Boş) olarak fiziksel karşılığı açılır; bu sayede 2. ve 3. sayfalara konulan eşyaların kaybolma riski sıfırlanır.
  3. Hızlı ve Güvenli: Karakter ID kontrolü yapılarak işlem doğrudan hedef oyuncuya uygulanır.



Nasıl Uygulanır?

  1. Hedef karakterin oyundan çıktığından (Offline) emin olun.
  2. SQL Server Management Studio (SSMS) programını açıp New Query butonuna tıklayın.
  3. Yukarıdaki kodu yapıştırın ve @CharName = 'Player' kısmına karakterinizin nickini yazın.
  4. F5 tuşuna basarak çalıştırın.
  5. Karakterle oyuna girdiğinizde envanter penceresindeki tüm sayfaların (1, 2 ve 3. sayfa) kilitsiz ve kullanıma hazır olduğunu göreceksiniz.

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
database inventory query sql vsro
Şu anda sitemizde 40,482 Aktif Kullanıcı
Çevrimiçi üyeler
Konular 1,311
Mesajlar 4,191
Kullanıcılar 1,624
Son üye mrt
Geri
Üst