- Katılım
- 27 Ara 2025
- Mesajlar
- 117
- Tepkime puanı
- 2
- Puanları
- 0
- Mevcut Bakiye
- 2535 ₺
- #1
Konu Sahibi
: JoyContent
Tek Query ile Battle Arena Saati Oluşturma
Battle Arena saatini ayarlamak için SMC ile uğraşmaya gerek yok. Aşağıdaki sorguyu SQL Server'da çalıştırarak istediğin saati birkaç saniyede tanımlayabilirsin.
Sorgu Random Battle Arena için hazırlanmıştır, ama alttaki kimlik tablosundan değerleri değiştirerek Party, Guild ve Job etkinlikleri için de kullanabilirsin.
Nasıl çalışır
Battle Arena üç ayrı zamanlama kaydından oluşur ve bunların hepsi etkinlik saatinden önce başlar. Sorguya gireceğin üç saat şudur:
Örnek: Etkinliğin 19:30'da olmasını istiyorsan değerleri şöyle girersin:
Sorgu her gün tekrar edecek şekilde ayarlıdır. Girdiğin saatte her gün otomatik olarak çalışır.
Etkinlik türü kimlikleri
Sorgunun içindeki üç değeri değiştirerek etkinlik türünü belirlersin.
Puanlama türü (
Kayıt ve etkinlik kimlikleri
Sorgu
Kullanım adımları
Son adımı atlama. Sunucu zamanlama tablosunu başlangıçta okur, yeniden başlatmadan yeni saat devreye girmez.
Önemli notlar
Eklediğin saatleri görme ve silme
Tanımlı Battle Arena zamanlamalarını listelemek için:
Yanlış eklediğin bir kaydı silmek için önce yukarıdaki sorguyla kimliğini bul, sonra:
Sık karşılaşılan sorunlar
Sorgu çalıştı ama etkinlik açılmıyor
GameServer.exe yeniden başlatılmamıştır. En sık yapılan hata budur.
Etkinlik açılıyor ama kimse katılamıyor
Kayıt kaydının saati yanlıştır. Kayıt, etkinlik başlangıcından önce olmalı ve süresi bitmeden etkinlik başlamalıdır.
"Invalid object name '_Schedule'" hatası
Veritabanı adı farklıdır. Sorgudaki
Etkinlik yanlış saatte açılıyor
Sunucu makinesinin saat dilimi ile beklediğin saat farklıdır. Windows saat ayarını kontrol et.
Sorularını ve kendi kullandığın zamanlama değerlerini konuya yazabilirsin.
Battle Arena saatini ayarlamak için SMC ile uğraşmaya gerek yok. Aşağıdaki sorguyu SQL Server'da çalıştırarak istediğin saati birkaç saniyede tanımlayabilirsin.
Sorgu Random Battle Arena için hazırlanmıştır, ama alttaki kimlik tablosundan değerleri değiştirerek Party, Guild ve Job etkinlikleri için de kullanabilirsin.
Nasıl çalışır
Battle Arena üç ayrı zamanlama kaydından oluşur ve bunların hepsi etkinlik saatinden önce başlar. Sorguya gireceğin üç saat şudur:
| Kayıt | Ne zaman | Süre | Görevi |
|---|---|---|---|
| Match | Etkinlikten 15 dk önce | 30 dakika | Eşleşme ve puanlama tanımı |
| Kayıt | Etkinlikten 10 dk önce | 10 dakika | Oyuncuların katılım kaydı açılır |
| Başlangıç | Etkinlikten 5 dk önce | 15 dakika | Etkinlik başlar |
Örnek: Etkinliğin 19:30'da olmasını istiyorsan değerleri şöyle girersin:
| Değişken | Saat | Dakika |
|---|---|---|
| Match | 19 | 15 |
| Kayıt | 19 | 20 |
| Başlangıç | 19 | 25 |
Sorgu her gün tekrar edecek şekilde ayarlıdır. Girdiğin saatte her gün otomatik olarak çalışır.
Etkinlik türü kimlikleri
Sorgunun içindeki üç değeri değiştirerek etkinlik türünü belirlersin.
Puanlama türü (
@Point)| Tür | Değer |
|---|---|
| Score (puan) | 14 |
| Flag (bayrak) | 15 |
Kayıt ve etkinlik kimlikleri
| Etkinlik türü | @Kayit | @Event |
|---|---|---|
| Random | 16 | 17 |
| Party | 18 | 19 |
| Guild | 20 | 21 |
| Job | 22 | 23 |
Sorgu
Rich (BB code):
USE SRO_VT_SHARD
GO
-- ============================================================
-- Battle Arena zamanlama olusturucu | JoymaxHub
-- Sadece asagidaki saat ve dakika degerlerini duzenle.
-- ============================================================
-- Etkinlikten 15 dakika onceki saat ve dakika
DECLARE @MatchSaat int = 19
DECLARE @MatchDakika int = 15
-- Etkinlikten 10 dakika onceki saat ve dakika
DECLARE @KayitSaat int = 19
DECLARE @KayitDakika int = 20
-- Etkinlikten 5 dakika onceki saat ve dakika
DECLARE @StartSaat int = 19
DECLARE @StartDakika int = 25
-- Etkinlik turu kimlikleri
DECLARE @Point int = 14 -- 14 Score / 15 Flag
DECLARE @Kayit int = 16 -- 16 Random / 18 Party / 20 Guild / 22 Job
DECLARE @Event int = 17 -- 17 Random / 19 Party / 21 Guild / 23 Job
-- ==================== BU KISMA DOKUNMA ====================
INSERT SRO_VT_SHARD.._Schedule
(ScheduleDefineIdx, DateStart, DateEnd, MainInterval_Type, MainInterval_TypeDate,
SubInterval_DayOfWeek, SubInterval_Days, SubInterval_Weeks, SubInterval_Months,
SubInterval_StartTimeHour, SubInterval_StartTimeMinute, SubInterval_StartTimeSecond,
SubInterval_DurationSecond, SubInterval_RepititionTerm, SubInterval_MaintainTime,
Param, Description)
VALUES
(@Point, '2023-08-17 00:00:00.000', '2030-08-17 00:00:00.000', 1, 1, 0, 0, 0, 0,
@MatchSaat, @MatchDakika, 0, 1800, 0, 0, '', '')
INSERT SRO_VT_SHARD.._Schedule
(ScheduleDefineIdx, DateStart, DateEnd, MainInterval_Type, MainInterval_TypeDate,
SubInterval_DayOfWeek, SubInterval_Days, SubInterval_Weeks, SubInterval_Months,
SubInterval_StartTimeHour, SubInterval_StartTimeMinute, SubInterval_StartTimeSecond,
SubInterval_DurationSecond, SubInterval_RepititionTerm, SubInterval_MaintainTime,
Param, Description)
VALUES
(@Kayit, '2023-08-17 00:00:00.000', '2030-08-17 00:00:00.000', 1, 1, 0, 0, 0, 0,
@KayitSaat, @KayitDakika, 0, 600, 0, 0, '', '')
INSERT SRO_VT_SHARD.._Schedule
(ScheduleDefineIdx, DateStart, DateEnd, MainInterval_Type, MainInterval_TypeDate,
SubInterval_DayOfWeek, SubInterval_Days, SubInterval_Weeks, SubInterval_Months,
SubInterval_StartTimeHour, SubInterval_StartTimeMinute, SubInterval_StartTimeSecond,
SubInterval_DurationSecond, SubInterval_RepititionTerm, SubInterval_MaintainTime,
Param, Description)
VALUES
(@Event, '2023-08-17 00:00:00.000', '2030-08-17 00:00:00.000', 1, 1, 0, 0, 0, 0,
@StartSaat, @StartDakika, 0, 900, 0, 0, '', '')
-- ==================== BU KISMA DOKUNMA ====================
Kullanım adımları
- SQL Server Management Studio'yu aç
- New Query penceresi aç
- Sorguyu yapıştır, üstteki üç saat değerini kendi etkinlik saatine göre düzenle
- Çalıştır
- GameServer.exe'yi yeniden başlat
Son adımı atlama. Sunucu zamanlama tablosunu başlangıçta okur, yeniden başlatmadan yeni saat devreye girmez.
Önemli notlar
- Sorgu mevcut Battle Arena saatlerini etkilemez, üzerine yeni bir saat ekler.
- Birden fazla saat istiyorsan sorguyu farklı değerlerle tekrar çalıştır.
- Veritabanı adın
SRO_VT_SHARDdeğilse sorgudaki her iki yerde de kendi adınla değiştir. - Çalıştırmadan önce veritabanı yedeği al. Zamanlama tablosuna yanlış kayıt girmek etkinliklerin hiç açılmamasına yol açabilir.
Eklediğin saatleri görme ve silme
Tanımlı Battle Arena zamanlamalarını listelemek için:
Rich (BB code):
SELECT * FROM SRO_VT_SHARD.._Schedule
WHERE ScheduleDefineIdx IN (14,15,16,17,18,19,20,21,22,23)
ORDER BY SubInterval_StartTimeHour, SubInterval_StartTimeMinute
Yanlış eklediğin bir kaydı silmek için önce yukarıdaki sorguyla kimliğini bul, sonra:
Rich (BB code):
DELETE FROM SRO_VT_SHARD.._Schedule WHERE ScheduleID = BURAYA_ID_YAZ
Sık karşılaşılan sorunlar
Sorgu çalıştı ama etkinlik açılmıyor
GameServer.exe yeniden başlatılmamıştır. En sık yapılan hata budur.
Etkinlik açılıyor ama kimse katılamıyor
Kayıt kaydının saati yanlıştır. Kayıt, etkinlik başlangıcından önce olmalı ve süresi bitmeden etkinlik başlamalıdır.
"Invalid object name '_Schedule'" hatası
Veritabanı adı farklıdır. Sorgudaki
SRO_VT_SHARD ifadesini kendi shard veritabanının adıyla değiştir.Etkinlik yanlış saatte açılıyor
Sunucu makinesinin saat dilimi ile beklediğin saat farklıdır. Windows saat ayarını kontrol et.
Sorularını ve kendi kullandığın zamanlama değerlerini konuya yazabilirsin.



