- #1
Konu Sahibi
: serkankacan
[REHBER & QUERY] vSRO Seviye Bazlı Mob Spawn & Respawn Hızı Artırma (Mob Rate)
Tab_RefNest Üzerinden Belirli Level Aralığındaki Slotları Sıklaştırma ve Hızlı Doğma Ayarı
Tab_RefNest Üzerinden Belirli Level Aralığındaki Slotları Sıklaştırma ve Hızlı Doğma Ayarı
Merhaba değerli forum sakinleri,
Kasmayı kolaylaştırmak, slotları canlandırmak ve oyuncuların mob beklemesini engellemek için belirli bir seviye aralığındaki (örneğin 99-100 Cap slotları veya 80-90 arası) slotların **aynı anda çıkan mob sayısını (Spawn Count)** artırabilir ve **yeniden doğma süresini (Respawn Delay)** minimuma indirebilirsiniz.
Aşağıdaki optimize edilmiş sorgu; sadece normal (
Rarity = 0) yaratıkları hedefler, Unique ve Elite mobları bozmaz ve sunucunun kilitlenmesini engelleyen stabil gecikme süreleriyle çalışır.Teknik Güvenlik Uyarısı' Alıntı:DİKKAT (GameServer CPU Koruması):
- Doğma gecikmelerini (
dwDelayTimeMin / Max) kesinlikle0yapmayınız. Değerin0olması mob öldüğü salise yenisinin çıkmasına sebep olur; botlu kalabalık slotlarda GameServer'ın kilitlenmesine (100% CPU Crash) yol açar. Önerilen en agresif taban değer 1 veya 2 saniyedir.- Her nest için
dwMaxTotalCountdeğerini 6'dan fazla yükseltmek harita sınırlarında lag oluşturabilir (Önerilen: 4 - 6 arasıdır).- Değişikliklerin oyuna yansıması için işlem tamamlandıktan sonra GameServer modüllerinin yeniden başlatılması gerekmektedir.
Hatasız & Optimize Edilmiş SQL Query Kodu
SQL:
USE [SRO_VT_SHARD]
GO
-- ===================================================================
-- AYARLAR (Kendi Sunucunuza Göre Düzenleyin)
-- ===================================================================
DECLARE @minLv INT = 99 -- Hedef mob minimum seviyesi
DECLARE @maxLv INT = 100 -- Hedef mob maksimum seviyesi
DECLARE @maxSpawn INT = 5 -- Bir slotta aynı anda bulunacak maksimum mob sayısı (Önerilen: 4-6)
DECLARE @respawnTimeMin INT = 1 -- Minimum yeniden doğma süresi (Saniye - En az 1 olmalıdır)
DECLARE @respawnTimeMax INT = 2 -- Maksimum yeniden doğma süresi (Saniye)
DECLARE @generateRadius INT = 30 -- Mobun merkezden doğabileceği yarıçap (GenerateRadius)
DECLARE @roamRadius INT = 100 -- Mobun doğduktan sonra dolaşabileceği yarıçap (nRadius)
-- ===================================================================
-- GÜNCELLEME İŞLEMİ (Sadece Normal Standart Canavarları Kapsar)
-- ===================================================================
UPDATE D
SET
D.dwDelayTimeMin = @respawnTimeMin,
D.dwDelayTimeMax = @respawnTimeMax,
D.dwMaxTotalCount = @maxSpawn,
D.nGenerateRadius = @generateRadius,
D.nRadius = @roamRadius
FROM dbo._RefObjCommon AS A
INNER JOIN dbo._RefObjChar AS B
ON A.Link = B.ID
AND A.CodeName128 LIKE 'MOB%'
AND A.Rarity = 0 -- Yalnızca normal moblar (Unique/Champion hariç tutulur)
AND B.Lvl BETWEEN @minLv AND @maxLv
INNER JOIN dbo.Tab_RefTactics AS C
ON C.dwObjID = A.ID
INNER JOIN dbo.Tab_RefNest AS D
ON D.dwTacticsID = C.dwTacticsID
AND D.dwMaxTotalCount > 0
PRINT '====================================================='
PRINT 'BAŞARILI: ' + CAST(@minLv AS VARCHAR(3)) + ' - ' + CAST(@maxLv AS VARCHAR(3)) + ' Level aralığındaki slotlar güncellendi!'
PRINT 'Slottaki Mob Sayısı: ' + CAST(@maxSpawn AS VARCHAR(3)) + ' | Doğma Süresi: ' + CAST(@respawnTimeMin AS VARCHAR(3)) + '-' + CAST(@respawnTimeMax AS VARCHAR(3)) + ' sn'
PRINT '====================================================='
Parametrelerin Görevleri Nelerdir?
- Rarity = 0: Sorgunun Unique, Titan veya Elite canavarların doğma mekaniğini yanlışlıkla bozmasını engeller.
- dwMaxTotalCount: Belirtilen koordinatta aynı anda hayatta kalabilecek mob adedidir.
- dwDelayTimeMin / Max: Slottaki mob kesildikten sonra yenisinin gelmesi için gereken saniye cinsinden geri sayım aralığıdır.
- nGenerateRadius & nRadius: Generate radius canavarın spawn olacağı daireyi, nRadius ise doğduktan sonra oyuncuyu kovalarken veya gezinirken merkezden uzaklaşabileceği azami sınırı belirler.
Nasıl Uygulanır?
- SQL Server Management Studio (SSMS) programını açın.
- Üst panelden New Query penceresi açın.
- Yukarıdaki SQL kodunu yapıştırın ve dilediğiniz level aralığı ile mob sayısını belirleyin.
- F5 tuşuna basarak çalıştırın.
- Sunucunuzdaki GameServer pencerelerini yeniden başlatın.
Sorularınızı ve performans geri bildirimlerinizi konu altından paylaşabilirsiniz. Herkese iyi forumlar!

