Ben yazdığını yanlış anladım herhalde 1 kere aldı ya o hafta bir daha alamayacak tabiki.
-- Bu quest MMO Tutkunlari forumundan Whistle tarafindan
-- Yusty icin yazilmistir.
quest bonus begin
state start begin
when 9008.chat."Bonus Ver " begin
say_title(string.format("%s : ", mob_name(9008)))
say("Bana 20 tane ruh taşı verirseniz sana ")
say("bunlardan birisini verebilirim. ")
say("")
say_reward("Bilgi: ")
say("Maksimum SP (+1000)[ENTER]Maksimum HP (+1000)[ENTER]Maksimum EXP (+%25)[ENTER]Maksimum...
Bende yok quest sizin için yazacağım işte.Yapamadım valla onun yerine 2 gün süren şebnem falan düşündüm ama sizin questi merak etmiyor değilim.
Beklemesine gerek yok bitince tekrar alabilsin. Ama o 1 hafta bekletmenin kodunu ayriyeten paylaşabilirseniz mantığını öğrenmek açısından güzel olur.
pc.setqf("sure", get_time() + 60*60*24*7)
if get_time() >= pc.getqf("sure") then
Ben yazdığını yanlış anladım herhalde 1 kere aldı ya o hafta bir daha alamayacak tabiki.
-- Bu quest MMO Tutkunlari forumundan Whistle tarafindan
-- Yusty icin yazilmistir.
quest bonus begin
state start begin
when 9008.chat."Bonus Ver " begin
say_title(string.format("%s : ", mob_name(9008)))
say("Bana 20 tane ruh taşı verirseniz sana ")
say("bunlardan birisini verebilirim. ")
say("")
say_reward("Bilgi: ")
say("Maksimum SP (+1000)[ENTER]Maksimum HP (+1000)[ENTER]Maksimum EXP (+%25)[ENTER]Maksimum DEX(+50) ")
wait()
if pc.count_item(50513) >= 20 then
say_title(string.format("%s : ", mob_name(9008)))
if get_time() > pc.getqf("sure") then
say("Süper! 20 tane ruh taşını getirdin. ")
say("Emeğinin karşılığı olarak bunlardan bir tanesini ")
say("seçenebilirsin. ")
local efsunSec = select("Maks. SP +1000", "Maks. HP +1000", "EXP Bonusu +%25", "Maks. DEX +50")
local efsunData = bonus.efsunData()
if efsunSec == 5 then
return
end
say_title(string.format("%s : ", mob_name(9008)))
say("Seçtiğiniz bonusu kontrol ediniz. ")
say("")
say(string.format("Bonus: %s (%s)", efsunData[efsunSec][3], efsunData[efsunSec][2]))
say("")
say_reward("Devam etmek istiyor musun? ")
if select("Evet ", "Hayır ") == 2 then return end
affect.add_collect(efsunData[efsunSec][1], efsunData[efsunSec][2], 60*60*24*7)
pc.setqf("sure", get_time() + 60*60*24*7)
pc.remove_item(50513, 20)
say_title(string.format("%s : ", mob_name(9008)))
say("Seçtiğiniz bonus karakterinize başarıyla uygulandı. ")
else
say("Zaten daha önce bir bonus almışsın. ")
say("süresi dolmadan yeni bir tane alamazsın! ")
end
else
say_title(string.format("%s : ", mob_name(9008)))
say("Yeterli ruh taşı yok. ")
say("Bana 20 tane ruh taşı getirirsen ")
say("bunlardan birisini alabilirsin. ")
say("")
say_reward("Bilgi: ")
say("Maksimum SP (+1000)[ENTER]Maksimum HP (+1000)[ENTER]Maksimum EXP (+%25)[ENTER]Maksimum DEX(+50) ")
end
end
function efsunData()
return {
-- efsun vnum, value
-- buraya yeni efsun eklemek isterseniz secenek kısmına da eklemeniz gerekmektedir.
[1] = {apply.MAX_SP, 1000, "Maks. SP "},
[2] = {apply.MAX_HP, 1000, "Maks. HP "},
[3] = {apply.MALL_EXPBONUS, 25, "EXP Bonusu "},
[4] = {apply.DEX, 100, "Maks. DEX "},
}
end
end
end
Çok teşekkür ederim. Denedim çalışıyor. Emektar birini bulmak güzel birşey.Tamamdır questi bitirdim.
Bunları bi lua dosyasının içine yapıştır. Kodlama ANSI olsun.
Testini filan yaptım ben. Siz gene de kontrol ederseniz iyi olur.
Lua (Quest):-- Bu quest MMO Tutkunlari forumundan Whistle tarafindan -- Yusty icin yazilmistir. quest bonus begin state start begin when 9008.chat."Bonus Ver " begin say_title(string.format("%s : ", mob_name(9008))) say("Bana 20 tane ruh taşı verirseniz sana ") say("bunlardan birisini verebilirim. ") say("") say_reward("Bilgi: ") say("Maksimum SP (+1000)[ENTER]Maksimum HP (+1000)[ENTER]Maksimum EXP (+%25)[ENTER]Maksimum DEX(+50) ") wait() if pc.count_item(50513) >= 20 then say_title(string.format("%s : ", mob_name(9008))) if get_time() > pc.getqf("sure") then say("Süper! 20 tane ruh taşını getirdin. ") say("Emeğinin karşılığı olarak bunlardan bir tanesini ") say("seçenebilirsin. ") local efsunSec = select("Maks. SP +1000", "Maks. HP +1000", "EXP Bonusu +%25", "Maks. DEX +50") local efsunData = bonus.efsunData() if efsunSec == 5 then return end say_title(string.format("%s : ", mob_name(9008))) say("Seçtiğiniz bonusu kontrol ediniz. ") say("") say(string.format("Bonus: %s (%s)", efsunData[efsunSec][3], efsunData[efsunSec][2])) say("") say_reward("Devam etmek istiyor musun? ") if select("Evet ", "Hayır ") == 2 then return end affect.add_collect(efsunData[efsunSec][1], efsunData[efsunSec][2], 60*60*24*7) pc.setqf("sure", get_time() + 60*60*24*7) pc.remove_item(50513, 20) say_title(string.format("%s : ", mob_name(9008))) say("Seçtiğiniz bonus karakterinize başarıyla uygulandı. ") else say("Zaten daha önce bir bonus almışsın. ") say("süresi dolmadan yeni bir tane alamazsın! ") end else say_title(string.format("%s : ", mob_name(9008))) say("Yeterli ruh taşı yok. ") say("Bana 20 tane ruh taşı getirirsen ") say("bunlardan birisini alabilirsin. ") say("") say_reward("Bilgi: ") say("Maksimum SP (+1000)[ENTER]Maksimum HP (+1000)[ENTER]Maksimum EXP (+%25)[ENTER]Maksimum DEX(+50) ") end end function efsunData() return { -- efsun vnum, value -- buraya yeni efsun eklemek isterseniz secenek kısmına da eklemeniz gerekmektedir. [1] = {apply.MAX_SP, 1000, "Maks. SP "}, [2] = {apply.MAX_HP, 1000, "Maks. HP "}, [3] = {apply.MALL_EXPBONUS, 25, "EXP Bonusu "}, [4] = {apply.DEX, 100, "Maks. DEX "}, } end end end
Lafı bile olmaz. Genelde bu şekilde hazır olarak kod kimseye yazmıyorum ama istediğiniz ufak bir şey olduğu için yapıp veriyim dedim. Hem buna benzer bir şey isteyenler içinde faydası olur.Çok teşekkür ederim. Denedim çalışıyor. Emektar birini bulmak güzel birşey.