- #1
Konu Sahibi
: serkankacan
[REHBER & ANALİZ] vSRO Haritadaki Canavar Spawn Sayılarını Listeleme (/worldstatus Kontrolü)
Seviye ve Türlerine Göre Tab_RefNest Üzerindeki Toplam Canavar ve Unique Sayısını Raporlama
Seviye ve Türlerine Göre Tab_RefNest Üzerindeki Toplam Canavar ve Unique Sayısını Raporlama
Merhaba değerli forum sakinleri,
Sunucunuzda oyun içi /worldstatus GM komutunu kullandığınızda karşınıza çıkan aktif toplam canavar sayısı ile veritabanınızdaki spawn yuvalarının (
Tab_RefNest) birebir örtüşüp örtüşmediğini kontrol etmek, hangi canavardan haritada toplam kaç adet doğduğunu seviye seviye listelemek için bu sorguyu kullanabilirsiniz.Teknik Bilgilendirme (Rarity Değerleri)' Alıntı:Aşağıdaki sorguda bulunand.Rarityfiltresini hedefinize göre düzenleyebilirsiniz:
- Rarity IN (0, 6): Normal ve Giant mobları listeler (Varsayılan kasılma slotları).
- Rarity = 3: Yalnızca Unique canavarları listeler (Tiger Girl, Uruchi, Demon Shaitan vb.).
- Rarity IN (3, 8): Hem Unique hem de Elite canavarları birlikte listeler.
- Rarity = 1: Champion mobları listeler.
Optimize Edilmiş SQL Raporlama Sorgusu
SQL:
USE [SRO_VT_SHARD]
GO
-- ===================================================================
-- CANAVAR SPAWN ANALİZİ VE SAYIM RAPORU
-- ===================================================================
SELECT
d.CodeName128 AS [Canavar Kodu],
e.Lvl AS [Seviye],
CASE d.Rarity
WHEN 0 THEN 'Normal'
WHEN 1 THEN 'Champion'
WHEN 3 THEN 'Unique'
WHEN 6 THEN 'Giant'
WHEN 7 THEN 'Titan'
WHEN 8 THEN 'Elite'
ELSE 'Diger'
END AS [Canavar Turu],
COUNT(a.dwNestID) AS [Toplam Slot/Yuva Sayisi],
SUM(a.dwMaxTotalCount) AS [Maksimum Canli Mob Sayisi]
FROM dbo.Tab_RefNest a WITH (NOLOCK)
INNER JOIN dbo.Tab_RefTactics b WITH (NOLOCK) ON a.dwTacticsID = b.dwTacticsID
INNER JOIN dbo.Tab_RefHive c WITH (NOLOCK) ON a.dwHiveID = c.dwHiveID
INNER JOIN dbo._RefObjCommon d WITH (NOLOCK) ON b.dwObjID = d.ID
INNER JOIN dbo._RefObjChar e WITH (NOLOCK) ON d.Link = e.ID
INNER JOIN dbo._RefRegion f WITH (NOLOCK) ON a.nRegionDBID = f.wRegionID
WHERE
d.Service = 1
AND d.CodeName128 LIKE 'MOB_%'
AND d.CodeName128 NOT LIKE 'MOB_GOD_%' -- Dimension Pillar türevlerini hariç tut
AND f.ContinentName NOT LIKE 'GOD_TOGUI' -- Etkinlik zindanlarını hariç tut
-- FILTRE: (Normal ve Giant moblar için: IN (0, 6) | Sadece Unique için: = 3)
AND d.Rarity IN (0, 6)
GROUP BY
d.CodeName128,
e.Lvl,
d.Rarity
ORDER BY
e.Lvl ASC,
[Maksimum Canli Mob Sayisi] DESC
Farklı Filtreleme Varyasyonları
- Sadece Unique Canavarları Görmek İçin:
SQL:AND d.Rarity = 3 - Unique ve Elite Canavarları Birlikte Görmek İçin:
SQL:AND d.Rarity IN (3, 8) - Haritadaki Tüm Canavarları (Tüm Türler Dahil) Listelemek İçin:
SQL:-- 'AND d.Rarity ...' satırının başına '--' koyarak devre dışı bırakmanız yeterlidir.
Nasıl Uygulanır ve Doğrulanır?
- SQL Server Management Studio (SSMS) programını açın.
- Üst panelden New Query penceresi açıp yukarıdaki SQL kodunu yapıştırın.
- F5 tuşuna basarak çalıştırın.
- Alt panelde gelen sonuç tablosundaki toplam
Maksimum Canli Mob Sayisitoplamı, oyun içinde GM karakterinizle/worldstatusyazdığınızda konsola basılan toplam aktif mob sayısıyla birebir örtüşmelidir.
Sorularınızı ve takıldığınız yerleri bu konu altından paylaşabilirsiniz. Herkese keyifli geliştirmeler!

