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

vSro Paylaşım vSRO Bölgeye (Region) Göre Canavar (Mob) Bulma ve Doğma Noktaları

Cevaplar0
Görüntüleme2
Ticaret Puanı
0
Katılım
8 Eyl 2026
Mesajlar
88
Tepkime puanı
1
Puanları
0
Mevcut Bakiye
2960 ₺
[REHBER & ANALİZ] vSRO Bölgeye (Region) Göre Canavar (Mob) Bulma ve Doğma Noktaları
_RefRegion ve Tab_RefNest Üzerinden Belirli Harita/Bölgelerdeki Mobları veya Mobun Doğduğu Bölgeleri Listeleme



Merhaba değerli forum sakinleri,

Sunucu düzenleme (edit) aşamalarında belirli bir haritada (örneğin Jangan, Donwhang, Taklamakan veya özel bir zindan/oda) **hangi canavarların çıktığını, slot yoğunluklarını ve koordinatlarını** incelemek isteyebilirsiniz.

Aşağıda paylaşılan rehberde;
  • 1. Yöntem: Bölge Adı veya Region ID vererek o bölgedeki tüm mobları listeleme (Gerçek Bölge Araması),
  • 2. Yöntem: Canavar Kodu vererek o canavarın hangi bölge ve koordinatlarda doğduğunu listeleme,
seçeneklerini optimize edilmiş ve açıklamalı SQL sorgularıyla bulabilirsiniz.

Teknik Bilgilendirme (Bölge & Spawn Zinciri)' Alıntı:
Silkroad mimarisinde harita spawn bağlantısı şu şekilde kurulur:
  • _RefRegion: Haritanın fiziksel bölge adı (ContinentName / AreaName) ve benzersiz wRegionID bilgisini tutar.
  • Tab_RefNest: Mobun bu bölgedeki doğma yuvası (nRegionDBID), koordinatları (fLocalPosX/Z) ve doğma adetleridir.
  • Tab_RefTactics & _RefObjCommon: Yuvanın hangi canavara ait olduğunu eşleştirir.



1. YÖNTEM: Bölgeye Göre Canavarları Listeleme (Bölge Bazlı Arama)

Belirlediğiniz bir bölgede (örneğin Jangan kırsalı veya Donwhang) hangi canavarların çıktığını, seviyelerini ve yuva sayılarını görmek için:

SQL:
USE [SRO_VT_SHARD]
GO

-- ===================================================================
-- BÖLGE PARAMETRESİ
-- ===================================================================
DECLARE @RegionName VARCHAR(64) = 'JANG_AN' -- Arama kelimesi: JANG_AN, DONWHANG, HOTAN, TAKLAMAKAN vb.
DECLARE @SpecificRegionID INT = 0          -- Belirli bir RegionID arıyorsanız yazın, yoksa 0 bırakın

SELECT 
    R.wRegionID             AS [Region ID],
    R.ContinentName         AS [Kıta / Harita],
    R.AreaName              AS [Bölge Adı],
    ROC.CodeName128         AS [Canavar Kodu],
    ROCH.Lvl                AS [Mob Seviyesi],
    COUNT(N.dwNestID)       AS [Toplam Yuva/Slot Sayisi],
    SUM(N.dwMaxTotalCount)  AS [Bölgedeki Toplam Canlı Mob],
    MIN(N.dwDelayTimeMin)   AS [Min Doğma Süresi (sn)]
FROM dbo.Tab_RefNest N WITH (NOLOCK)
INNER JOIN dbo.Tab_RefTactics T WITH (NOLOCK) ON N.dwTacticsID = T.dwTacticsID
INNER JOIN dbo._RefObjCommon ROC WITH (NOLOCK) ON T.dwObjID = ROC.ID
INNER JOIN dbo._RefObjChar ROCH WITH (NOLOCK) ON ROC.Link = ROCH.ID
INNER JOIN dbo._RefRegion R WITH (NOLOCK) ON N.nRegionDBID = R.wRegionID
WHERE ROC.Service = 1
  AND N.dwMaxTotalCount > 0
  AND (
      (@SpecificRegionID > 0 AND R.wRegionID = @SpecificRegionID)
      OR 
      (@SpecificRegionID = 0 AND (R.ContinentName LIKE '%' + @RegionName + '%' OR R.AreaName LIKE '%' + @RegionName + '%'))
  )
GROUP BY 
    R.wRegionID, 
    R.ContinentName, 
    R.AreaName, 
    ROC.CodeName128, 
    ROCH.Lvl
ORDER BY 
    R.wRegionID ASC, 
    ROCH.Lvl ASC



2. YÖNTEM: Canavar Koduna Göre Bölge ve Koordinatları Bulma

Belirli bir canavarın (örneğin Yeoha, Mangyang, Tiger Girl vb.) haritanın hangi bölgelerinde ve koordinatlarında çıktığını görmek için:

SQL:
USE [SRO_VT_SHARD]
GO

-- ===================================================================
-- ARANACAK CANAVAR KODU
-- ===================================================================
DECLARE @MobCode VARCHAR(128) = 'MOB_CH_YEOHA%' -- Örn: MOB_CH_YEOHA%, MOB_OA_URUCHI vb.

SELECT 
    ROC.CodeName128         AS [Canavar Kodu],
    ROCH.Lvl                AS [Seviye],
    R.ContinentName         AS [Harita],
    R.AreaName              AS [Bölge],
    N.nRegionDBID           AS [Region ID],
    N.dwNestID              AS [Nest ID],
    N.fLocalPosX            AS [X],
    N.fLocalPosY            AS [Y],
    N.fLocalPosZ            AS [Z],
    N.nRadius               AS [Doğma Yarıçapı],
    N.dwMaxTotalCount       AS [Slot Başı Canavar Sayısı],
    N.dwDelayTimeMin        AS [Yenilenme Süresi (sn)]
FROM dbo.Tab_RefNest N WITH (NOLOCK)
INNER JOIN dbo.Tab_RefTactics T WITH (NOLOCK) ON N.dwTacticsID = T.dwTacticsID
INNER JOIN dbo._RefObjCommon ROC WITH (NOLOCK) ON T.dwObjID = ROC.ID
INNER JOIN dbo._RefObjChar ROCH WITH (NOLOCK) ON ROC.Link = ROCH.ID
LEFT JOIN dbo._RefRegion R WITH (NOLOCK) ON N.nRegionDBID = R.wRegionID
WHERE ROC.CodeName128 LIKE @MobCode
  AND N.dwMaxTotalCount > 0
ORDER BY N.nRegionDBID ASC, N.dwNestID ASC



Nasıl Uygulanır?

  1. SQL Server Management Studio (SSMS) programını açın.
  2. Üst panelden New Query penceresi açın.
  3. İhtiyacınıza göre 1. Yöntem veya 2. Yöntem sorgusunu yapıştırın.
  4. Aramak istediğiniz bölge adını (@RegionName) veya canavar kodunu (@MobCode) ilgili alana yazın.
  5. F5 tuşuna basarak çalıştırın.
  6. Alt panelde bölge ve slot koordinat detayları anında derli toplu listelenecektir.

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

Konuyu görüntüleyenler

Yükleniyor...
Yükleniyor...
Etiketler
Etiketler Etiketler
bölge canavar spawn sql vsro
Şu anda sitemizde 40,460 Aktif Kullanıcı
Çevrimiçi üyeler
Konular 1,311
Mesajlar 4,191
Kullanıcılar 1,624
Son üye mrt
Geri
Üst