- #1
Konu Sahibi
: serkankacan
[QUERY] vSRO Tek Query ile Otomatik Battle Arena Saati Oluşturma
_Schedule Tablosu Üzerinden Hızlı ve Hatasız Battle Arena (Random) Saat Ayarlayıcı
_Schedule Tablosu Üzerinden Hızlı ve Hatasız Battle Arena (Random) Saat Ayarlayıcı
Merhaba değerli forum sakinleri,
vSRO sunucularında **Battle Arena** saatlerini ayarlamak, `_Schedule` tablosunun karmaşık sütun yapısı ve aralık hesaplamaları nedeniyle çoğu zaman yorucu olabilir. Birbiriyle senkronize çalışması gereken 3 farklı aşama (Eşleşme/Bildirim, Kayıt Açılışı ve Arena Başlangıcı) tek bir tabloda tutulur.
Aşağıda paylaşılan pratik SQL sorgusu sayesinde sadece hedeflediğiniz saat ve dakikayı değişkenlere girerek, gerekli tüm `_Schedule` satırlarını tek tıkla otomatik olarak ekleyebilirsiniz.
Önemli Uyarı' Alıntı:DİKKAT:
- Sorguyu çalıştırmadan önce SRO_VT_SHARD yedeğinizi almanız önerilir.
- Yeni saatlerin sunucuya yansıması için işlem tamamlandıktan sonra ShardManager ve GameServer modüllerinin yeniden başlatılması (Restart) gerekmektedir.
Zamanlama Mantığı Nasıl Çalışır?
Battle Arena'nın sağlıklı başlayabilmesi için sistemde 3 farklı `ScheduleDefineIdx` kaydının sırayla tetiklenmesi gerekir:
- Idx 14 (Bildirim & Ön Hazırlık): Arenanın başlayacağını duyuran ilk aşamadır. Arenanın fiili başlangıcından 15 dakika önceye ayarlanır.
- Idx 16 (Kayıtların Açılması): NPC üzerinden oyuncuların kayıt olmaya başladığı aşamadır. Arenanın fiili başlangıcından 10 dakika önceye ayarlanır.
- Idx 17 (Arenaya Çekilme & Başlangıç): Kayıtların kapandığı ve oyuncuların içeri aktarıldığı aşamadır. Arenanın başlamasından 5 dakika önceye ayarlanır.
Nasıl Kullanılır?
- SQL Server Management Studio (SSMS) programını açın.
- Üst kısımdan New Query penceresi oluşturun.
- Aşağıdaki SQL kodunu yapıştırın.
- En üstteki değişken alanlarına hedeflediğiniz arena saatinin öncesine denk gelen saat/dakika değerlerini yazın.
- F5 tuşuna basarak sorguyu çalıştırın.
- İşlem bitiminde ShardManager modülünü yeniden başlatın.
SQL Query Kodu
İçeriği görüntülemek için Giriş yapın veya Kayıt olun.
Geliştirici İpuçları:
- Eğer gün içerisine birden fazla saat eklemek istiyorsanız, en üstteki saat değişkenlerini değiştirip sorguyu tekrar çalıştırmanız yeterlidir.
- Tabloda daha önceden kalan çakışan saat kayıtları varsa, `SELECT * FROM _Schedule WHERE ScheduleDefineIdx IN (14, 16, 17)` sorgusu ile mevcut kayıtları listeleyip temizleyebilirsiniz.
Sorularınızı ve eklemek istediğiniz arena tiplerini (Party, Guild, Job) konu altından iletebilirsiniz. Herkese iyi forumlar!
Moderatör tarafında düzenlendi:

