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

vSro Paylaşım vSRO Güvenli FGW Bekleme Süresi Sıfırlama ve Toplu Eşya Silme

Cevaplar0
Görüntüleme3
Ticaret Puanı
0
Katılım
8 Eyl 2026
Mesajlar
88
Tepkime puanı
1
Puanları
0
Mevcut Bakiye
2960 ₺
[REHBER & QUERY] vSRO Güvenli FGW Bekleme Süresi Sıfırlama ve Toplu Eşya Silme
Premium/Devil'i Bozmadan FGW Süresi Temizleme & Tüm Sunucudan Belirli Bir Eşyayı Yetim Kayıt Bırakmadan Silme



Merhaba değerli forum sakinleri,

Silkroad Online sunucu yönetiminde sıkça başvurulan iki kritik işlem vardır:
  1. FGW (Forgotten World) Süresi Sıfırlama: Boyut kapısına giren oyuncunun tekrar girebilmesi için beklemesi gereken süreyi kaldırmak.
  2. Toplu Eşya Silme (Item Wipe): Bugla basılmış, yanlışlıkla dağıtılmış veya sunucudan kaldırılmasına karar verilmiş bir eşyayı (Örn: +20 bir silah veya aşırı basılmış bir kalkan) tüm karakterlerden, petlerden ve depolardan tek seferde silmek.

İnternetteki eski paylaşımlarda _TimedJob tablosu filtresiz silindiği için karakterin Premium, Devil ve Godbless gibi tüm süreli eşyaları da yok olmaktadır! Aşağıdaki optimize kodlarla bu işlemleri %100 güvenle yapabilirsiniz.

Kritik Güvenlik Uyarısı' Alıntı:
DİKKAT:
  • FGW süresi silinecek karakterin kesinlikle oyunda olmaması (Offline) gerekir. Karakter oyundayken DB silinse bile GameServer belleği çıkışta eski süreyi geri yazar.
  • FGW bekleme süresinin _TimedJob tablosundaki standart kategori karşılığı Category = 18'dir.
  • Toplu eşya silme işlemi geri alınamaz. İşlem öncesinde mutlaka SRO_VT_SHARD yedeğinizi alınız ve GameServer'ı kapatınız.



1. BÖLÜM: Karakterin FGW Süresini Sıfırlama (Premium/Devil'e Dokunmaz)

Bu sorgu sadece FGW giriş cezasını siler; karakterin Premium, Devil veya Godbless buff'larına asla zarar vermez:

SQL:
USE [SRO_VT_SHARD]
GO

-- ===================================================================
-- KARAKTER ADI
-- ===================================================================
DECLARE @CharName VARCHAR(16) = 'Gloryx' -- Süresi sıfırlanacak karakter

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

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

-- Category = 18: Forgotten World (FGW / Boyut Kapısı) Giriş Bekleme Süresi
DELETE FROM dbo._TimedJob
WHERE CharID = @CharID 
  AND Category = 18

PRINT '====================================================='
PRINT 'BAŞARILI: ' + @CharName + ' adlı karakterin FGW bekleme süresi sıfırlandı!'
PRINT 'Premium, Devil ve diğer bufflara dokunulmadı.'
PRINT '====================================================='



2. BÖLÜM: Tüm Sunucudan Belirli Bir Eşyayı Eksiksiz Silme (Full Wipe)

Bu sorgu; belirlediğiniz eşyayı oyuncu çantalarından (_Inventory), avatar bölümlerinden (_InventoryForAvatar), bankalardan (_AccountChest), pet çantalarından (_InvCOS) ve klan kasasından (_GuildChest) kaldırır ve _Items tablosundaki karşılıklarını da temizleyerek veritabanında yetim kayıt bırakmaz:

SQL:
USE [SRO_VT_SHARD]
GO

-- ===================================================================
-- SİLİNECEK EŞYANIN KOD ADI
-- ===================================================================
DECLARE @ItemCodeName VARCHAR(128) = 'ITEM_CH_SHIELD_10_as4_RAINBOW'

-- 1. ADIM: Silinecek Eşyaların ItemID64 Listesini Geçici Havuzda Topla
DECLARE @TargetItems TABLE (ItemID64 BIGINT)

INSERT INTO @TargetItems (ItemID64)
SELECT I.ID64 
FROM dbo._Items I WITH (NOLOCK)
INNER JOIN dbo._RefObjCommon ROC WITH (NOLOCK) ON I.RefItemID = ROC.ID
WHERE ROC.CodeName128 = @ItemCodeName

DECLARE @TotalCount INT = (SELECT COUNT(1) FROM @TargetItems)

IF (@TotalCount = 0)
BEGIN
    PRINT 'Bilgi: Veritabanında silinecek bu eşyaya rastlanmadı.'
    RETURN
END

BEGIN TRANSACTION
BEGIN TRY

    -- 2. ADIM: Çanta ve Yuvalardaki Slot Bağlantılarını Sıfırla (0 yap)
    UPDATE dbo._Inventory 
    SET ItemID = 0 
    WHERE ItemID IN (SELECT ItemID64 FROM @TargetItems)

    UPDATE dbo._InventoryForAvatar 
    SET ItemID = 0 
    WHERE ItemID IN (SELECT ItemID64 FROM @TargetItems)

    UPDATE dbo._AccountChest 
    SET ItemID = 0 
    WHERE ItemID IN (SELECT ItemID64 FROM @TargetItems)

    UPDATE dbo._InvCOS 
    SET ItemID = 0 
    WHERE ItemID IN (SELECT ItemID64 FROM @TargetItems)

    UPDATE dbo._GuildChest 
    SET ItemID = 0 
    WHERE ItemID IN (SELECT ItemID64 FROM @TargetItems)

    -- 3. ADIM: _Items Tablosundan Fiziksel Olarak Tamamen Sil (Yetim Kayıt Bırakmaz)
    DELETE FROM dbo._Items 
    WHERE ID64 IN (SELECT ItemID64 FROM @TargetItems)

    COMMIT TRANSACTION
    PRINT '====================================================='
    PRINT 'BAŞARILI: Toplam ' + CAST(@TotalCount AS VARCHAR(10)) + ' adet ' + @ItemCodeName + ' tüm sunucudan eksiksiz silindi!'
    PRINT '====================================================='

END TRY
BEGIN CATCH
    ROLLBACK TRANSACTION
    PRINT 'HATA OLUŞTU: Eşya silme işlemi geri alındı! Hata: ' + ERROR_MESSAGE()
END CATCH



Nasıl Uygulanır?

  1. FGW Sıfırlama İçin:
    • Oyuncunun oyundan çıkmasını sağlayın.
    • 1. Bölümdeki SQL kodunu SSMS'e yapıştırıp @CharName alanını doldurun ve F5 yapın.
    • Oyuncu tekrar oyuna girdiğinde boyut kapısına hemen girebilecektir.
  2. Toplu Eşya Silme İçin:
    • Sunucudaki GameServer modüllerini kapatın (Ghost item oluşmaması için zorunludur).
    • 2. Bölümdeki SQL kodunu açıp silmek istediğiniz eşyanın kodunu @ItemCodeName alanına yazın.
    • F5 tuşuna basarak çalıştırın.
    • GameServer'ı tekrar açtığınızda sunucudaki hiçbir karakterde veya kasada o eşyadan eser kalmayacaktır.

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