- #1
Konu Sahibi
: serkankacan
[REHBER & ANALİZ] vSRO Mob Kodundan Tab_RefHive ve Tab_RefNest Bilgilerini Bulma
Canavarın Doğma Noktalarını (Spawn Koordinatları, HiveID, TacticsID ve Yenilenme Süreleri) Listeleme
Canavarın Doğma Noktalarını (Spawn Koordinatları, HiveID, TacticsID ve Yenilenme Süreleri) Listeleme
Merhaba değerli forum sakinleri,
Silkroad Online veritabanında canavarların spawn yuvalarını düzenlerken en çok başvurulan tablolardan biri **Tab_RefHive** (Kovan/Grup Bilgisi) ve **Tab_RefNest** (Fiziksel Doğma Yuvası)'dır.
Canavarın ham veritabanı ID'sini tek tek aramaya gerek kalmadan, doğrudan canavar kodunu (
CodeName128) yazarak bağlı olduğu tüm **HiveID, TacticsID, NestID, koordinat ve doğma sürelerini (Delay Time)** tek bir ekranda döken optimize sorguyu aşağıda bulabilirsiniz.Teknik Mantık Özeti' Alıntı:Silkroad spawn mimarisi birbirine şu zincirle bağlıdır:
- _RefObjCommon (Mob): Canavarın kimlik kaydıdır.
- Tab_RefTactics: Canavarın yapay zeka (AI) ve taktik davranış şablonudur.
- Tab_RefHive: Canavar sürüsünün/grubunun genel yönetim hücresidir.
- Tab_RefNest: Canavarın harita üzerinde fiziksel olarak doğduğu bölge, koordinat, yarıçap ve adet yuvasıdır.
1. YÖNTEM: Tam Detaylı Hive & Nest Sorgusu (ÖNERİLEN)
Bu sorgu; belirlediğiniz canavarın hem `Tab_RefHive` ayarlarını hem de haritadaki doğduğu koordinatları ve spawn adetlerini eksiksiz listeler:
SQL:
USE [SRO_VT_SHARD]
GO
-- ===================================================================
-- ARANACAK CANAVAR KODU
-- ===================================================================
DECLARE @MobCodeName VARCHAR(128) = 'MOB_CH_TIGERWOMAN' -- Örn: MOB_CH_TIGERWOMAN, MOB_OA_URUCHI vb.
SELECT
ROC.ID AS [Mob RefID],
ROC.CodeName128 AS [Mob Kodu],
H.dwHiveID AS [HiveID],
T.dwTacticsID AS [TacticsID],
N.dwNestID AS [NestID],
N.nRegionDBID AS [Region ID],
N.fLocalPosX AS [Pos X],
N.fLocalPosY AS [Pos Y],
N.fLocalPosZ AS [Pos Z],
N.dwMaxTotalCount AS [Toplam Spawn Sayisi],
N.dwDelayTimeMin AS [Min Yenilenme (sn)],
N.dwDelayTimeMax AS [Max Yenilenme (sn)]
FROM dbo._RefObjCommon ROC WITH (NOLOCK)
INNER JOIN dbo.Tab_RefTactics T WITH (NOLOCK)
ON T.dwObjID = ROC.ID
INNER JOIN dbo.Tab_RefNest N WITH (NOLOCK)
ON N.dwTacticsID = T.dwTacticsID
INNER JOIN dbo.Tab_RefHive H WITH (NOLOCK)
ON H.dwHiveID = N.dwHiveID
WHERE ROC.CodeName128 = @MobCodeName
ORDER BY N.dwNestID ASC
2. YÖNTEM: Yalnızca Tab_RefHive Satırlarını Getiren Sorgu
Eğer yalnızca kovan tablosundaki (
Tab_RefHive) ham sütunları çekmek istiyorsanız:
SQL:
USE [SRO_VT_SHARD]
GO
DECLARE @MobCodeName VARCHAR(128) = 'MOB_CH_TIGERWOMAN'
SELECT DISTINCT H.*
FROM dbo.Tab_RefHive H WITH (NOLOCK)
INNER JOIN dbo.Tab_RefNest N WITH (NOLOCK)
ON H.dwHiveID = N.dwHiveID
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
WHERE ROC.CodeName128 = @MobCodeName
Nasıl Uygulanır?
- SQL Server Management Studio (SSMS) programını açın.
- Üst panelden New Query butonuna tıklayın.
- Yukarıdaki 1. Yöntem kodunu yapıştırın.
- En üstteki
@MobCodeNamealanına aramak istediğiniz canavarın kodunu yazın. - F5 tuşuna basarak sorguyu çalıştırın.
- Alt panelde canavara bağlı olan tüm Hive ve Nest verileri anında listelenecektir.
Sorularınızı ve takıldığınız noktaları konu altından sorabilirsiniz. Herkese keyifli geliştirmeler!

