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

vSro Paylaşım vSRO Mob / Slot Değiştirme (Spawn Dönüştürme)

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 Mob / Slot Değiştirme (Spawn Dönüştürme)
Tab_RefTactics Üzerinden Haritadaki Herhangi Bir Canavar Slotunu Başka Bir Yaratığa Çevirme



Merhaba değerli forum sakinleri,

Sunucunuzda mevcut bir slotta çıkan canavarları (örneğin Jangan Mangyang slotlarını Wing Tribe yapmak veya Samarkand slotlarına özel event mobları yerleştirmek) haritayı baştan çizmeden, hazır nest ve hive düzenini bozmadan tek bir sorguyla farklı bir canavara dönüştürebilirsiniz.

İnternette dolaşan `REPLACE` ve `LIKE` kullanılan eski sorgular, sayı benzerliğinden dolayı (örn: ID `12` değişirken `120`, `212` gibi alakasız mobların da bozulması) sunucunun çökmesine sebep olabilir. Aşağıda hem güvenli ID kontrolü yapan hem de doğrudan mob kod adıyla (CodeName128) çalışan hatasız optimize sorguyu paylaşıyoruz.

Önemli Uyarı' Alıntı:
DİKKAT:
  • Bu işlem haritadaki mevcut koordinatları (Tab_RefNest) ve doğma gruplarını (Tab_RefHive) korur; sadece çıkan canavarın model/kimlik referansını değiştirir.
  • Değişikliklerin oyuna yansıması için işlem bittikten sonra GameServer modüllerinin yeniden başlatılması (Restart) gerekmektedir.
  • İşlem öncesinde mutlaka SRO_VT_SHARD yedeğinizi alınız.



1. YÖNTEM: Mob Kod Adı (CodeName128) ile Değiştirme (ÖNERİLEN)

ID aramakla uğraşmadan, doğrudan `_RefObjCommon` tablosundaki yaratık kodlarını girerek tüm slotları dönüştürebilirsiniz:

SQL:
USE [SRO_VT_SHARD]
GO

-- ===================================================================
-- DEĞİŞKENLER
-- ===================================================================
DECLARE @EskiMobCode VARCHAR(128) = 'MOB_CH_MANGYANG'  -- Slottan kaldırılacak mobun kodu
DECLARE @YeniMobCode VARCHAR(128) = 'MOB_CH_ARCHER'    -- Slota yerleştirilecek yeni mobun kodu

-- ID Değerlerini Otomatik Çekiyoruz
DECLARE @EskiMobID INT = (SELECT ID FROM dbo._RefObjCommon WHERE CodeName128 = @EskiMobCode)
DECLARE @YeniMobID INT = (SELECT ID FROM dbo._RefObjCommon WHERE CodeName128 = @YeniMobCode)

-- Kontrol
IF (@EskiMobID IS NULL OR @YeniMobID IS NULL)
BEGIN
    RAISERROR('HATA: Belirtilen canavar kodlarından biri veya ikisi veritabanında bulunamadı!', 16, 1)
    RETURN
END

-- ===================================================================
-- GÜNCELLEME İŞLEMİ (Doğrudan Sayısal Eşitleme - Güvenli)
-- ===================================================================
UPDATE dbo.Tab_RefTactics 
SET dwObjID = @YeniMobID
WHERE dwObjID = @EskiMobID

PRINT '====================================================='
PRINT 'BAŞARILI: ' + @EskiMobCode + ' slotları ' + @YeniMobCode + ' olarak güncellendi!'
PRINT 'Eski Mob ID: ' + CAST(@EskiMobID AS VARCHAR(10)) + ' -> Yeni Mob ID: ' + CAST(@YeniMobID AS VARCHAR(10))
PRINT '====================================================='



2. YÖNTEM: Doğrudan Sayısal ID ile Değiştirme

Eğer elinizde canavarların `_RefObjCommon.ID` değerleri zaten hazırsa, tek satırda en güvenli güncelleme biçimi:

SQL:
USE [SRO_VT_SHARD]
GO

DECLARE @EskiID INT = 1934  -- Eski Mobun ID numarası (Sayısal)
DECLARE @YeniID INT = 1935  -- Yeni Mobun ID numarası (Sayısal)

UPDATE dbo.Tab_RefTactics 
SET dwObjID = @YeniID 
WHERE dwObjID = @EskiID



Nasıl Uygulanır?

  1. SQL Server Management Studio (SSMS) programını açın.
  2. Üst kısımdan New Query penceresi açın.
  3. Yukarıdaki 1. Yöntemdeki SQL sorgusunu yapıştırın.
  4. @EskiMobCode ve @YeniMobCode alanlarını kendi hedefinize göre doldurun.
  5. F5 tuşuna basarak çalıştırın.
  6. Sunucunuzdaki GameServer modüllerini yeniden başlatın.
  7. Oyuna girip ilgili bölgeye giderek yeni mobların sorunsuzca doğduğunu doğrulayın.

Sorularınızı ve takıldığınız yerleri bu konu altından paylaşabilirsiniz. Herkese iyi forumlar ve kolay gelsin!
 

Konuyu görüntüleyenler

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