Merhaba, Hoşgeldin!

VSRO.org, Silkroad Online, Knight Online, Metin2 ve diğer çevrimiçi oyunlar için öncü bir yardım ve geliştirme platformudur. Misyonumuz, bilgi ve deneyim sahibi bireyleri, bilgiye ihtiyaç duyanlarla bir araya getirerek, zengin bir etkileşim ortamı yaratmak ve farklı bakış açılarını birleştirmektir. Topluluğumuzda güçlü bir işbirliği ve öğrenme kültürü oluşturarak, herkesin değerli katkılarda bulunmasını sağlıyoruz.

vSRO Çözüldü Maxiguard _BridgeCommands (Komut 58 ile her gün teleport açma hk.)

Katılım
13 May 2019
Mesajlar
3,609
Çözümler
72
Tepkime puanı
6,492
Puanları
213
Konum
Lutsk
Türk Lirası
0.00₺
Merhaba,

Hemen konuya giriyorum.

MaxiGuard _BridCommands ile hazırladığım farklı bir haritadaki Jobcave teleportumu belli zamanlarda açıp kapatmak istiyorum.
Teleport ID'sini maxiguard panelinde Özel/Event kısmında ekledim.

Prosedürümü aşağıdaki gibi düzenledim..
Kod:
İçeriği görebilmek için Giriş yap ya da üye ol.

Fakat burada soru şu;
Bu teleportu ben her gün öğlen 12:00'de açıp 14:00'de kapatmak istiyorum.
Ayrıca yine akşam 20:00'da açıp 22:00'da kapatmak istiyorum.
Zamanlamayı yapacağım yeri bulamadım..

Prosedürü değiştirip _BridgeCommands_Planned tablosuna da yolladım fakat tarih ve zamanlamayı nereden ayarlayacağımı bulamıyorum.
 
JobCave teleportunuzu belli zamanlarda açıp kapatmak için, _BridgeCommands tablosuna eklediğiniz INSERT işlemi yerine _BridgeCommands_Planned tablosunu kullanmanız gerekiyor. _BridgeCommands_Planned tablosu, gelecekteki bir tarih ve saat için belirli bir komutun planlanmasına olanak tanır.

Öncelikle, _BridgeCommands_Planned tablosuna bir kayıt eklemelisiniz. Bu kayıt, yapmak istediğiniz zamanlamayı tanımlar. Aşağıdaki SQL sorgusu, JobCave teleportunuzu her gün öğlen 12:00'de açıp 14:00'de kapatmanızı sağlar:
Kod:
İçeriği görebilmek için Giriş yap ya da üye ol.

Bu sorgu, _BridgeCommands_Planned tablosuna bir kayıt ekler. Kaydın CommandID'si 58, yani JobCave teleportu. Executor kısmı 'SMC', Data1 kısmı '254' ve Data2 kısmı '1' olarak ayarlanmıştır. PlannedDate kısmı, her günün tarihini alır ve öğlen 12:00 ile 14:00 saatleri arasında JobCave teleportunu açacak ve ardından kapatmak için kullanılır.

Aynı şekilde, teleportu akşam 20:00'de açıp 22:00'da kapatmak isterseniz, aşağıdaki SQL sorgusunu kullanabilirsiniz:

Kod:
İçeriği görebilmek için Giriş yap ya da üye ol.

Bu sorgu, yine _BridgeCommands_Planned tablosuna bir kayıt ekler. Kaydın CommandID'si, Executor'ı, Data1 ve Data2 kısımları JobCave teleportu için aynı kalır. PlannedDate kısmı, her günün tarihini alır ve akşam 20:00 ile 22:00 saatleri arasında JobCave teleportunu açacak ve ardından kapatmak için kullanılır.
 
JobCave teleportunuzu belli zamanlarda açıp kapatmak için, _BridgeCommands tablosuna eklediğiniz INSERT işlemi yerine _BridgeCommands_Planned tablosunu kullanmanız gerekiyor. _BridgeCommands_Planned tablosu, gelecekteki bir tarih ve saat için belirli bir komutun planlanmasına olanak tanır.

Öncelikle, _BridgeCommands_Planned tablosuna bir kayıt eklemelisiniz. Bu kayıt, yapmak istediğiniz zamanlamayı tanımlar. Aşağıdaki SQL sorgusu, JobCave teleportunuzu her gün öğlen 12:00'de açıp 14:00'de kapatmanızı sağlar:
Kod:
İçeriği görebilmek için Giriş yap ya da üye ol.

Bu sorgu, _BridgeCommands_Planned tablosuna bir kayıt ekler. Kaydın CommandID'si 58, yani JobCave teleportu. Executor kısmı 'SMC', Data1 kısmı '254' ve Data2 kısmı '1' olarak ayarlanmıştır. PlannedDate kısmı, her günün tarihini alır ve öğlen 12:00 ile 14:00 saatleri arasında JobCave teleportunu açacak ve ardından kapatmak için kullanılır.

Aynı şekilde, teleportu akşam 20:00'de açıp 22:00'da kapatmak isterseniz, aşağıdaki SQL sorgusunu kullanabilirsiniz:

Kod:
İçeriği görebilmek için Giriş yap ya da üye ol.

Bu sorgu, yine _BridgeCommands_Planned tablosuna bir kayıt ekler. Kaydın CommandID'si, Executor'ı, Data1 ve Data2 kısımları JobCave teleportu için aynı kalır. PlannedDate kısmı, her günün tarihini alır ve akşam 20:00 ile 22:00 saatleri arasında JobCave teleportunu açacak ve ardından kapatmak için kullanılır.
Cevap için teşekkürler..
Tabloda PlannedDate olmadığı için prosedür bu kısmı almıyor..
Ayrıca mevcuttaki hücre DateToExecute 'in ismini yazdığımda da kabul etmiyor.
Data1 ve Data2 belli fakat Data3'ün ne olduğunu bilmiyorum.
Prosedür execute edilemediğinden devam edemedim.
Yarın bakıcam artık.. Afiyet olsun.
 
_BridgeCommands_Planned tablosu dinamik, daha anlık işlemler için bir tablo.
Mesela karakter ölünce "5 saniye sonra şehire çek" gibi.
Çünkü DateToExecute komutun tam çalıştırılacağı saati belirtiliyor. Ayrıca her filter restart atıldığında temizleniyor bu tablo.

Bahsettiğiniz tarzdaki ihtiyaçlar için Scheduler tablosu işinizi görecektir.
Örnek:
1679854227655.png

Query kısmına direkt
INSERT INTO _BridgeCommands(CommandID, Executor, Data1, Data2, Date) VALUES(58, 'SMC', '254', '1', GETDATE())
Yapıştırılabilir.
 
_BridgeCommands_Planned tablosu dinamik, daha anlık işlemler için bir tablo.
Mesela karakter ölünce "5 saniye sonra şehire çek" gibi.
Çünkü DateToExecute komutun tam çalıştırılacağı saati belirtiliyor. Ayrıca her filter restart atıldığında temizleniyor bu tablo.

Bahsettiğiniz tarzdaki ihtiyaçlar için Scheduler tablosu işinizi görecektir.
Örnek:
Ekli dosyayı görüntüle 15367

Query kısmına direkt

Yapıştırılabilir.
Teşekkür ederim...
Prosedüre bir ekleme yapmam gerekmiyor gördüğüm kadarıyla.. Tablo üzerinden tetikliyor..
Teşekkür ederim deniycem :)
Üst üste post gönderildiği için tek mesajda birleştirildi:

Teşekkür ederim...
Prosedüre bir ekleme yapmam gerekmiyor gördüğüm kadarıyla.. Tablo üzerinden tetikliyor..
Teşekkür ederim deniycem :)
Teleport saatinde açıldı.. Bir de buna Data2 = 0 ekleyerek kapatmayı ekledim saatinde kapattı.
Notice attırma kısmı için herhalde uğraşmama gerek yok notice atabileceğini sanmıyorum. Media'ya ya da belli bir prosedüre eklemek gerekecek.
CommandID: 500 Notice pm vs.
CommandID: 68 Etkinlik sona erdiğinde karakterleri teleport.

Mantığı çözdüm hocam tekrar teşekkür ederim. Yukarıdaki iki maddeyi de yaparım sanırım akşam bakıcam.. çok sağ ol ;) @sarkolata

Bakıcaz neler çıkacak..
Tekrar teşekkürler.
 
Notice de attırabilirsin elbette, ama schedulere birkaç girdi yapıp okunabilirliği zorlaştırmaktansa yukardaki örneğim gibi bir prosedür oluşturup, o prosedürü çağırman en güzeli olur. Mesela _JobCaveStart.
Scheduler'den direkt exec _JobCaveStart yaparsın.

Bu prosedürün içinde de 58 ile teleportu aktif edersin, 500 ile notice atarsın, vs.vs...
 
Notice de attırabilirsin elbette, ama schedulere birkaç girdi yapıp okunabilirliği zorlaştırmaktansa yukardaki örneğim gibi bir prosedür oluşturup, o prosedürü çağırman en güzeli olur. Mesela _JobCaveStart.
Scheduler'den direkt exec _JobCaveStart yaparsın.

Bu prosedürün içinde de 58 ile teleportu aktif edersin, 500 ile notice atarsın, vs.vs...
INSERT INTO _BridgeCommands(CommandID, Executor, Data1, Data2, Data3, Date) VALUES(500, 'SMC', '17', 'Job Garden doors opened !', 'JobGarden', GETDATE())

Evet o şekilde yapıcam artık :)

Data3'ü boş yollasam da olur zannımca.
 
Geri
Üst Alt