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

vSro Paylaşım vSRO Slotlardaki Canavar Doğma Oranını (Mob Spawn Rate) Arttırma

Cevaplar0
Görüntüleme5
Ticaret Puanı
0
Katılım
8 Eyl 2026
Mesajlar
88
Tepkime puanı
1
Puanları
0
Mevcut Bakiye
2960 ₺
[REHBER & SİSTEM] vSRO Slotlardaki Canavar Doğma Oranını (Mob Spawn Rate) Arttırma
Tab_RefNest Üzerinden Seviye Aralıklarına Göre Mob Sayısını ve Yenilenme Sürelerini Optimize Etme



Merhaba değerli forum sakinleri,

Silkroad Online sunucularında oyuncuların daha seri ve kalabalık slotlarda kasılabilmesi (Grinding/Leveling) için haritadaki canavar doğma adetlerini (**dwMaxTotalCount**) ve canavarlar kesildikten sonra yeniden çıkma sürelerini (**dwDelayTime**) seviye aralıklarına göre düzenleyebilirsiniz.

Aşağıda hem mob sayısını güvenli bir çarpanla katlayan hem de aşırı yığılmayı önleyen optimize edilmiş SQL sorgularını bulabilirsiniz.

Kritik Performans Uyarısı' Alıntı:
DİKKAT (GameServer Yükü & Slot Dengesi):
  • Yuvalardaki mob adetlerini kontrolsüz şekilde (örneğin 20-30 gibi) artırmak GameServer RAM ve CPU kullanımını aşırı yükselterek gecikmeye (lag) ve çökmelere neden olabilir. Önerilen maksimum yuva başı sınır 5 ile 10 arasıdır.
  • Sorgu yalnızca standart canavarları (Rarity = 0) hedefler; Unique, Champion ve Titan mobların dengesini bozmaz.
  • Değişikliklerin oyuna yansıması için işlem sonrası GameServer modüllerinin yeniden başlatılması (Restart) gerekmektedir.
  • İşlem öncesinde SRO_VT_SHARD yedeğinizi almayı unutmayınız.



1. YÖNTEM: Katlama / Çarpan Yöntemi (ÖNERİLEN)

Her slotun kendi orijinal büyüklüğünü koruyarak mob sayısını belirlediğiniz bir katsayı ile çarpar (Örn: 2 katına çıkarır ve maksimum 8 ile sınırlar):

SQL:
USE [SRO_VT_SHARD]
GO

-- ===================================================================
-- AYARLAR
-- ===================================================================
DECLARE @MinLevel INT = 1          -- Düzenlenecek Taban Seviye
DECLARE @MaxLevel INT = 90         -- Düzenlenecek Tavan Seviye
DECLARE @Multiplier INT = 2        -- Mevcut sayıyı kaç ile çarpmak istiyorsunuz? (Örn: 2 katı)
DECLARE @MaxAllowedCap INT = 8     -- Tek bir yuvada çıkabilecek MAKSİMUM mob sınırı (Aşırı lagı önler)

-- ===================================================================
-- SPAWN GÜNCELLEME SORGUSU
-- ===================================================================
UPDATE A
SET 
    -- Sayıyı katla, belirlenen üst sınırı aşarsa sınıra sabitle
    A.dwMaxTotalCount = CASE 
                            WHEN (A.dwMaxTotalCount * @Multiplier) > @MaxAllowedCap THEN @MaxAllowedCap 
                            ELSE (A.dwMaxTotalCount * @Multiplier) 
                        END,
    -- Canavarlar kesildikten sonra yeniden doğma süresini kısalt (Örn: Min 2 sn, Max 5 sn)
    A.dwDelayTimeMin = 2,
    A.dwDelayTimeMax = 5
FROM dbo.Tab_RefNest A
INNER JOIN dbo.Tab_RefTactics B ON A.dwTacticsID = B.dwTacticsID
INNER JOIN dbo._RefObjCommon C ON B.dwObjID = C.ID
INNER JOIN dbo._RefObjChar D ON C.Link = D.ID
INNER JOIN dbo._RefRegion R ON A.nRegionDBID = R.wRegionID
WHERE D.Lvl BETWEEN @MinLevel AND @MaxLevel
  AND C.CodeName128 LIKE 'MOB_%'
  AND C.CodeName128 NOT LIKE 'MOB_GOD_%'   -- Özel etkinlik/zindan moblarını hariç tut
  AND R.ContinentName NOT LIKE 'GOD_TOGUI' -- Togui zindanını hariç tut
  AND C.Rarity = 0                        -- Yalnızca normal kasılma mobları (Unique/Elite hariç)
  AND A.dwMaxTotalCount > 0

PRINT '====================================================='
PRINT 'BAŞARILI: ' + CAST(@MinLevel AS VARCHAR(3)) + ' - ' + CAST(@MaxLevel AS VARCHAR(3)) + ' seviye arası mob rate başarıyla arttırıldı!'
PRINT 'Değişikliğin aktif olması için GameServer yeniden başlatılmalıdır.'
PRINT '====================================================='



2. YÖNTEM: Sabit Sayı Atama Yöntemi

Belirlediğiniz seviye aralığındaki tüm yuvalara istisnasız sabit bir adet (Örn: Her yuvada tam **6 adet** mob) atamak isterseniz:

SQL:
USE [SRO_VT_SHARD]
GO

DECLARE @MinLevel INT = 80
DECLARE @MaxLevel INT = 90
DECLARE @FixedSpawnCount INT = 6 -- Her yuvaya atanacak sabit canavar adedi

UPDATE A
SET 
    A.dwMaxTotalCount = @FixedSpawnCount,
    A.dwDelayTimeMin = 3,
    A.dwDelayTimeMax = 6
FROM dbo.Tab_RefNest A
INNER JOIN dbo.Tab_RefTactics B ON A.dwTacticsID = B.dwTacticsID
INNER JOIN dbo._RefObjCommon C ON B.dwObjID = C.ID
INNER JOIN dbo._RefObjChar D ON C.Link = D.ID
WHERE D.Lvl BETWEEN @MinLevel AND @MaxLevel
  AND C.CodeName128 LIKE 'MOB_%'
  AND C.Rarity = 0
  AND A.dwMaxTotalCount > 0

PRINT 'Belirtilen seviyedeki mobların yuva adedi ' + CAST(@FixedSpawnCount AS VARCHAR(3)) + ' olarak sabitlendi.'



Nasıl Uygulanır?

  1. SQL Server Management Studio (SSMS) programını açın.
  2. Üst panelden New Query penceresi açıp yukarıdaki 1. Yöntem kodunu yapıştırın.
  3. En üstteki @MinLevel, @MaxLevel ve @Multiplier değerlerini sunucunuzun ihtiyacına göre belirleyin.
  4. F5 tuşuna basarak çalıştırın.
  5. Sunucunuzdaki GameServer pencerelerini yeniden başlatın.
  6. Oyuna girerek ilgili haritadaki slot yoğunluğunu ve yeniden doğma hızını test edin.

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

Konuyu görüntüleyenler

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