- Mesaj
- 11.941
- Çözümler
- 567
- Beğeni
- 13.659
- Puan
- 5.915
- Ticaret Puanı
- 2
Merhaba arkadaşlar,
Çoğu web sitesinde quest eklemeyi zaten anlatıyorlar lakin ben kaldırmayıda anlatacağım. Videolu anlatımı da yaptım. Şuan up olurken yazılı bir anlatim da yapayım diyorum.
Videolu anlatım;
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
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.
bu işlemler bittikten sonra isterseniz sunucuya reboot atın isterseniz oyuna gm karakteriyle girip;
ş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.
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;
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;
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.
2. Komut;
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ı;
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
dizine içine questin adıyla event.start dosyası oluşturur. Bu dosyayı silmemiz gerekiyor.
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.
bu dizine girip onları event.start dosyasını silmeniz gerekli.
ve bu questimizdeki son parça olan;
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.
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üğü
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;
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.
Dediğim gibi burada quest yazmayı öğretmek yerine when komutlarını okuyup questleri silmeyi anlattım. Umarım yardımcı olabilmişimdir.
Genelde millet olarak uzun yazı okumaya üşeniriz lakin baştan sona okuyan arkadaşlara sonsuz teşekkür ederim.
Yazması uzun sürdü arkadaşlar. Eğer başka bir sitede paylaşacak olursanız burayı kaynakça olarak göstermeyi unutmayın.
Anlamadığınız birşey olursa konu altından sorabilirsiniz.
Çoğu web sitesinde quest eklemeyi zaten anlatıyorlar lakin ben kaldırmayıda anlatacağım. Videolu anlatımı da yaptım. Şuan up olurken yazılı bir anlatim da yapayım diyorum.
Videolu anlatım;
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;
Lua (Quest):
------ MMO Tutkunları | www.mmotutkunlari.com ------
-----------------------------------------------
quest event begin
state start begin
when letter begin
send_letter("Etkinlik Takvimi ")
end
when info or button begin
say_title("Etkinlik Takvimi :")
say("")
say("Pazartesi: Ay Işığı 21.00 - 23.00 ")
say("Salı: Futbol Topu 21.00 - 23.00 ")
say("Çarşamba: Pet Sandık 21.00 - 23.00 ")
say("Perşembe: Kostüm Sandık 21.00 - 23.00 ")
say("Cuma: Bulmaca Kutusu 21.00 - 23.00 ")
say_reward("Özel Eventler;")
say("Cumartesi : VS-Turnuvası 21.00 KRAL Tag ")
say("Pazar : OX-Event - 21.00(10RuhTaşı,1Pençe,1Pul) ")
say("")
wait()
send_letter("Etkinlik Takvimi ")
end
when login begin
local saat = tonumber(os.date("%H"))
local gun = tostring(os.date("%A"))
if gun == "Monday" then
if saat == 21 then
if game.get_event_flag("ay_ac") == 0 then
game.set_event_flag("ay_ac",1)
game.set_event_flag("ay_kapa",0)
game.set_event_flag("ayisigi",1)
notice_all("Ayışığı eventi 2 saat süreyle başlamıştır.")
end
elseif saat == 23 then
if game.get_event_flag("ay_kapa") == 0 then
game.set_event_flag("ay_ac",0)
game.set_event_flag("ay_kapa",1)
game.set_event_flag("ayisigi",0)
notice_all("Ayışığı eventi sona ermiştir.")
end
end
elseif gun == "Tuesday" then
if saat == 21 then
if game.get_event_flag("top_ac") == 0 then
game.set_event_flag("top_ac",1)
game.set_event_flag("top_kapa",0)
game.set_event_flag("futboltopu",1)
notice_all("Futbol Topu eventi 2 saat süreyle başlamıştır.")
end
elseif saat == 23 then
if game.get_event_flag("top_kapa") == 0 then
game.set_event_flag("top_ac",0)
game.set_event_flag("top_kapa",1)
game.set_event_flag("futboltopu",0)
notice_all("Futbol Topu eventi bitmiştir.")
end
end
elseif gun == "Wednesday" then
if saat == 21 then
if game.get_event_flag("pet_ac") == 0 then
game.set_event_flag("pet_ac",1)
game.set_event_flag("pet_kapa",0)
game.set_event_flag("pet_event",1)
notice_all("Pet Sandığı eventi 2 saat süreyle başlamıştır.")
end
elseif saat == 23 then
if game.get_event_flag("pet_kapa") == 0 then
game.set_event_flag("pet_ac",0)
game.set_event_flag("pet_kapa",1)
game.set_event_flag("pet_event",0)
notice_all("Pet Sandığı eventi bitmiştir.")
end
end
elseif gun == "Thursday" then
if saat == 21 then
if game.get_event_flag("kostum_ac") == 0 then
game.set_event_flag("kostum_ac",1)
game.set_event_flag("kostum_kapa",0)
game.set_event_flag("dressup",1)
notice_all("Kostüm Eventi 2 saat süreyle başlamıştır.")
end
elseif saat == 23 then
if game.get_event_flag("kostum_kapa") == 0 then
game.set_event_flag("kostum_ac",0)
game.set_event_flag("kostum_kapa",1)
game.set_event_flag("dressup",0)
notice_all("Kostüm Eventi bitmiştir.")
end
end
elseif gun == "Friday" then
if saat == 21 then
if game.get_event_flag("bilgi_ac") == 0 then
game.set_event_flag("bilgi_ac",1)
game.set_event_flag("bilgi_kapa",0)
game.set_event_flag("kids_day_quiz",1)
notice_all("Bulmaca Kutusu Eventi 2 saat süreyle başlamıştır.")
end
elseif saat == 23 then
if game.get_event_flag("bilgi_kapa") == 0 then
game.set_event_flag("bilgi_ac",0)
game.set_event_flag("bilgi_kapa",1)
game.set_event_flag("kids_day_quiz",0)
notice_all("Bulmaca Kutusu Eventi bitmiştir.")
end
end
end
end
end
end
Oyuna quest atmak için
Kod:
usr/game/share/locale/turkey/quest
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.
Kod:
cd /usr/game/share/locale/turkey/quest
Kod:
./qc oto_event.lua
bu işlemler bittikten sonra isterseniz sunucuya reboot atın isterseniz oyuna gm karakteriyle girip;
Kod:
/reload q
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.
Kod:
usr/game/share/locale/turkey/quest
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;
Kod:
cd usr/game/share/locale/turkey/quest
Kod:
sh make.sh
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;
Lua (Quest):
quest event begin
2. Komut;
Lua (Quest):
state start begin
Diğer komutlar quest içerik parçaları;
Lua (Quest):
when letter begin
send_letter("Etkinlik Takvimi ")
end
Bu komut
Kod:
object/notarget/letter/
Lua (Quest):
when info or button begin
say_title("Etkinlik Takvimi :")
say("")
say("Pazartesi: Ay Işığı 21.00 - 23.00 ")
end
Kod:
object/notarget/info/
object/notarget/button/
ve bu questimizdeki son parça olan;
Lua (Quest):
when login begin
Ne işe yaradığını anlattıktan sonra silmeyide anlatim.
Bu komut ayı şekilde event.start adında dosyalar ekleyecektir.
Kod:
object/notarget/login/
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üğü
Lua (Quest):
when 40002.use begin
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;
Kod:
object/40002/use/
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.
Dediğim gibi burada quest yazmayı öğretmek yerine when komutlarını okuyup questleri silmeyi anlattım. Umarım yardımcı olabilmişimdir.
Genelde millet olarak uzun yazı okumaya üşeniriz lakin baştan sona okuyan arkadaşlara sonsuz teşekkür ederim.
Yazması uzun sürdü arkadaşlar. Eğer başka bir sitede paylaşacak olursanız burayı kaynakça olarak göstermeyi unutmayın.
Anlamadığınız birşey olursa konu altından sorabilirsiniz.
Son düzenleme: