DETAYLI ANLATIM Quest Eklemek Ve Kaldırmak (Detaylı Anlatım)

Admin

Kurucu Admin
Katılım
22 Ara 2020
Mesajlar
492
Çözümler
1
Tepkime puanı
13,906
Puanları
160
Konum
Kütahya
Web
ko-yardim.com
Quest Nedir?
Oyunun çalışmasında yardımcı olan lua kodları diyebiliriz. Çekirdek tarafından kendisine sunulan fonksiyonları kullanmakla yükümlüdür. Görevler, npc komutları, dungeondaki timerlar, spawnlanacak şeyleri kontrol eder.
Quest dosyaları .lua veya .quest uzantısını kullanırlar.
Aslında baktığımızda baya bir işe yaradığını anlayabiliriz.

Quest Nasıl Eklenir?
Quest dosyamız oto_event.lua olsun diyelim.
Quest içeriğimiz;
PHP:
Quest Nedir?
Oyunun çalışmasında yardımcı olan lua kodları diyebiliriz. Çekirdek tarafından kendisine sunulan fonksiyonları kullanmakla yükümlüdür. Görevler, npc komutları, dungeondaki timerlar, spawnlanacak şeyleri kontrol eder.
Quest dosyaları .lua veya .quest uzantısını kullanırlar.
Aslında baktığımızda baya bir işe yaradığını anlayabiliriz.

Quest Nasıl Eklenir?
Quest dosyamız oto_event.lua olsun diyelim.
Quest içeriğimiz;

Oyuna quest atmak için
PHP:
usr/game/share/locale/turkey/quest

dizine girmeniz gerekiyor. Sizlerde farklı olabilir. Genel itibari ile Türkiye'deki fileslerde bu dizindir.

Eğer ileride questleri sıfırdan hepsini derlemek isterseniz listelere eklemeniz gerekiyor. Aynı dizinde quest_list
diye bir dosya olur. O dosyayı açıp en altına oto_event.lua adını yazıyoruz.
Not: Fileslere göre quest_list dosyasının adı farklı olabilir!

Questimizi attıktan sonra Putty (ssh) ile sunucumuza bağlanıp şu işlemleri yapıyoruz.

PHP:
cd /usr/game/share/locale/turkey/quest
PHP:
./qc oto_event.lua

bu işlemler bittikten sonra isterseniz sunucuya reboot atın isterseniz oyuna gm karakteriyle girip;
PHP:
/reload q

şu komutu yazın. Quest başarıyla yüklenmiştir. :)

Quest Nasıl Silinir?
Questimiz gene oto_event.lua olsun bunun üzerinden anlatim
1. Yöntem
Bu yöntem daha kolay olduğu için uzun sürecek bir işlemdir.

PHP:
usr/game/share/locale/turkey/quest

dizinine girip oto_event.lua dosyasını siliyoruz. Sonra quest_listten "oto_event.lua" yazısını siliyoruz.
ondan sonra Puttu (ssh) ile sunucuya bağlanıp.
Uyarı: Bu işlemi yapmadan önce oyunu kapatınız ve yedek alınız. Sunucu kendini direk kapatacaktır!
Uyarımı okuduysanız devam edelim ssh ekranına şu komutları sırayla yazıyoruz;

PHP:
cd usr/game/share/locale/turkey/quest
PHP:
sh make.sh
bu işlemi yaptığınız zaman object klasörü tamamen boşaltılıp quest_list içindeki questleri okutacaktır. Sık sık kullanmayınız!

2. Yöntem
Not:
Bu yöntemi uygulayabilmek için questleri okumayı bilmeniz gerekli!
Benim sevdiğim yöntemdir en azndan 1. yöntemdeki gibi uğraşmak zorunda kalmıyoruz. :)
Notumuda okumuşsunuzdur umarım. Ben size ufak bir anlatım sunacağım.
Eğer örnek quest kodlarımızı incelerseniz içinde when ile başlayan komutları görebilirsiniz. Bu her açılan when komutu questte belirlenmiş isimle objectlere veri ekler.

Quest Okuma?
Burada detaylı bir anlatım yapmayacağım. Sonuçta burada size quest yazmayı anlatmıyorum. Sadece silmek için gerekli bilgileri vereceğim.

1. Komut;
PHP:
quest event begin
bu komut quest dosyalarımızı başlatan komuttur. Kodda gördüğünüz gibi event adı verilmiştir. Bu questin adıdır. Questi derlediğiniz zaman objectlere event.start adıyla dosyalar ekler.
PHP:
state start begin
Quest içeriğimizi belirten korttur. Gördüğünüz gibi start dosyaları oluşturur. Her questlerde bu 2 komutu yazmalısınız.
Diğer komutlar quest içerik parçaları;
PHP:
when letter begin
            send_letter("Etkinlik Takvimi ")
        end
bu komut ile oyuna görev eklettirebilirsiniz. Görevin ismi Etkinlik Takvimi olarak çıkacaktır. Bizim burada gözümüze çarpan "when letter begin" deyimidir. Çünkü questleri silerken bu başlatıcılardan faydalanacağız.
Bu komut
PHP:
object/notarget/letter/
dizine içine questin adıyla event.start dosyası oluşturur. Bu dosyayı silmemiz gerekiyor.
PHP:
when info or button begin
   say_title("Etkinlik Takvimi :")
   say("")
   say("Pazartesi: Ay Işığı 21.00 - 23.00 ")
end
Bu komutta tıklandığı zaman gerçekleşecek işlemdir. Burada gene "when info or button begin" bu deyime bakmamız gerekiyor. Bu satır 2 klasöre event.start adında dosyalar ekleyecektir.
PHP:
object/notarget/info/
object/notarget/button/
bu dizine girip onları event.start dosyasını silmeniz gerekli.

ve bu questimizdeki son parça olan;
PHP:
when login begin
başlatıcısıdır. Bu oyuna girdiğiniz anda gerçekleşecek işlemleri belirler. Bizim örnek questimizde girdiği zaman aktif bir event varsa oyuncuya duyuru geçecektir.
Ne işe yaradığını anlattıktan sonra silmeyide anlatim. :)
Bu komut ayı şekilde event.start adında dosyalar ekleyecektir.
PHP:
object/notarget/login/
bu dizine girip onları event.start dosyasını silmeniz gerekli.

Bu quest içeriğinde olmayan birşeyide anlatim. Npc ve itemler içinde komut vardır bunlar başka bir komut ile farklı klasörlere eklenir. Örneğin;
Işınlanma yüzüğü
PHP:
when 40002.use begin
için kullanılan kod. Bu kod ile 40002 vnum'a ait iteme sağ tıklandığında gerçekleşecek işlemleri içinde barındıran başlatıcıdır.
Bu kod object klasörüne 40002 ismiyle klasör oluşturup onun içine use adında bir klasör oluşturarak quest adıyla .start dosyası ekleyecektir.
Dizin şu şekilde olacaktır;
PHP:
object/40002/use/
Eğer silmek isterseniz 40002 içinde başka bir klasör yoksa direk 40002 klasörünü silin eğer başka dosyalar görüyorsanız sadece use klasörünü silebilirsiniz.

Npclerde de benzerdir fakat onda click, chat isimli uzantılar olabilir. Target eklenebilir.

Bazı questler player.quest tablosuna verileri kaydetmektedir. Sildiğiniz quest eğer kayıt yapıyorsa tablodan temizlemeyi unutmayınız.
 
Reklam