- #1
Konu Sahibi
: serkankacan
[QUERY] vSRO Belirli Bir Eşyayı Tüm Sunucudan Silme
Envanter, Banka (Kasa), Guild Kasası ve Pet/COS Depolarından Toplu İtem Temizleme
Envanter, Banka (Kasa), Guild Kasası ve Pet/COS Depolarından Toplu İtem Temizleme
Merhaba değerli forum sakinleri,
Sunucunuzda hatalı basılan, piyasayı bozan, bug ile çoğaltılan veya kaldırılmasına karar verilen herhangi bir eşyayı tüm oyunculardan tek seferde silmeniz gerekebilir.
Aşağıda paylaşılan SQL prosedürü; belirlediğiniz
CodeName128 değerine ait eşyayı oyuncuların **çantasından (_Inventory)**, **kişisel kasasından (_Chest)**, **birlik deposundan (_GuildChest)** ve **toplayıcı pet / binek çantalarından (_InvCOS)** bularak slot referansını sıfırlar (ItemID = 0).Önemli Uyarı' Alıntı:DİKKAT:
- Bu sorguyu çalıştırmadan önce mutlaka SRO_VT_SHARD yedeğinizi (Backup) alınız.
- İşlemi uygulamadan önce oyuncuların oyunda olmaması (GameServer'ların kapalı olması) tavsiye edilir. Oyuncu oyundayken envanterde değişiklik yapılması durumunda sunucu senkronizasyonu bozulabilir veya oyuncu relog attığında eşya geri gelebilir.
Kullanım Adımları
- Microsoft SQL Server Management Studio (SSMS) programını açın.
- Üst menüden New Query butonuna tıklayın.
- Aşağıdaki kod bloğunu yapıştırın.
SET @codename128 = 'ITEM KODUNU BURAYA YAZINIZ'satırındaki tırnak arasına silmek istediğiniz eşyanın tam kodunu yazın (Örnek:'ITEM_ETC_SD_TOKEN_01').- F5 tuşuna basarak veya Execute butonuna tıklayarak sorguyu çalıştırın.
SQL Query Kodu
SQL:
USE [SRO_VT_SHARD]
GO
-- Silinmek istenen eşyanın _RefObjCommon tablosundaki CodeName128 değeri
DECLARE @codename128 VARCHAR(128)
SET @codename128 = 'ITEM KODUNU BURAYA YAZINIZ'
-- 1. Oyuncu Çantalarından (Inventory) Silme
UPDATE _Inventory
SET ItemID = 0
FROM _Inventory
JOIN _Items ON _Items.ID64 = _Inventory.ItemID
JOIN _RefObjCommon ON _Items.RefItemID = _RefObjCommon.ID
WHERE _RefObjCommon.CodeName128 = @codename128
-- 2. Kişisel Depolardan (Storage / Chest) Silme
UPDATE _Chest
SET ItemID = 0
FROM _Chest
JOIN _Items ON _Items.ID64 = _Chest.ItemID
JOIN _RefObjCommon ON _Items.RefItemID = _RefObjCommon.ID
WHERE _RefObjCommon.CodeName128 = @codename128
-- 3. Guild Kasalarından (Guild Storage) Silme
UPDATE _GuildChest
SET ItemID = 0
FROM _GuildChest
JOIN _Items ON _Items.ID64 = _GuildChest.ItemID
JOIN _RefObjCommon ON _Items.RefItemID = _RefObjCommon.ID
WHERE _RefObjCommon.CodeName128 = @codename128
-- 4. Toplayıcı Pet ve Binek (COS) Çantalarından Silme
UPDATE _InvCOS
SET ItemID = 0
FROM _InvCOS
JOIN _Items ON _Items.ID64 = _InvCOS.ItemID
JOIN _RefObjCommon ON _Items.RefItemID = _RefObjCommon.ID
WHERE _RefObjCommon.CodeName128 = @codename128
Geliştirici / DB Notu:
Bu sorgu sadece ilgili depolardaki slot bağlantısını keser (
ItemID = 0 yapar). Eğer tablolardaki artık/yetim kalan satırları temizlemek isterseniz, işlem sonrasında _Items tablosundaki sahipsiz kayıtları temizleyen bakım sorgularını da çalıştırabilirsiniz.Takıldığınız veya eklemek istediğiniz alanları konu altından belirtebilirsiniz. Herkese iyi çalışmalar!

