Biyolog quest görev şeklinde

damador

Üye
Üye
Mesaj
140
Çözümler
7
Beğeni
39
Puan
489
Ticaret Puanı
0
1-99 sunucular için biyolog questi görev şeklinde npc ile uğraşmaya gerek yok quest içinde süre sıfırlama ve %100 geçmesi için beranın kalbi ve araştırmacının özütü ekli lv30 un gorevi var diğerlerinide buna gore yapabılırsınız
bio.png


Lua (Quest):
-------------------
-- yeni biyolog questi
-------------------

quest biyolog1  begin
    state start begin

------------------- Fonksiyonlar
        function secondsToTime(seconds, begin_phrase, end_phrase) -- Yeni görev eklendiğinde işlev değiştirilicek
            local real_seconds = seconds - get_time()
            local hours = string.format("%02.f", math.floor(real_seconds/3600));
            local mins = string.format("%02.f", math.floor(real_seconds/60 - (hours*60)));
            local secs = string.format("%02.f", math.floor(real_seconds - hours*3600 - mins *60));
            return(""..begin_phrase.." "..hours.." Saat. "..mins.." Dakika. "..secs.." Saniye."..end_phrase)
        end
------------------- Fonksiyonlar

------------------- Bölüm 1 başlangıç
        when login or levelup with pc.get_level() >= 30 begin
            set_state("biyolog1_1")
        end
    end

    state biyolog1_1 begin
        when letter begin
        send_letter("Biyoloğun Ricası ")
    end

        when button or info begin
            say_title("Ork dişleri")
            say("")
            say("Bana ork azı dişi getirebilir misin ?")
            say("Ama bana özel azı diş lazım! Bana")
            say("bir özel diş getir, ama hep tek tek")
            say("Onu muayene edebilmek için.")
            say("Görevi kabul ediyormusun?")
            set_state("biyolog1_2")
            clear_letter()
            pc.setqf("duration",0)
            pc.setqf("collect_count",0)
            pc.setqf("drink_drug",0)
        end
    end
------------------- Bölüm 1 son

------------------- Bölüm 2 başlangıç
    state biyolog1_2 begin
        when letter begin
            send_letter("Ork dişleri")
        end

        when button or info begin
            if get_time() > pc.getqf("duration") then
                if  pc.count_item(30006) >0 then
                say_title("Ork dişleri")
                say("")
                say("Ah!! Bana bir azı dişi getirdin.")
                say("Önce denemem lazım...")
                say("Bu biraz zaman alabilir. ")
                say("Daha sonra yine gel.")
                say("")
                say_reward(string.format("Kalan: "..item_name(30006).." "..10-pc.getqf("collect_count")..""))
                pc.setqf("duration",get_time()+10*60*1) -----------------------------------22??
                wait()
                local pass_percent
                if pc.getqf("drink_drug")==0 then
                        pass_percent=50
                else
                        pass_percent=100
                end
                local s= number(1,100)
                if s<= pass_percent  then
                   if pc.getqf("collect_count")< 9 then
                        local index =pc.getqf("collect_count")+1
                        pc.setqf("collect_count",index)
                        say_title("Ork dişleri")
                        say("")
                        say("Müthiş!! Sen bir harikasın...")
                        say("Şimdi araştırma için")
                        say("")
                        say_reward(string.format("Bana "..10-pc.getqf("collect_count").. " "..item_name(30006).." daha getir. "))
                        pc.setqf("drink_drug",0)
                        pc.remove_item("30006", 1)
                        return
                        end
                        say_title("Ork dişleri")
                        say("")
                        say("Mükemmel tüm dişleri getirdin")
                        say("")
                        say_reward("Şimdi bana "..item_name(30220).." Lazım")
                        pc.setqf("collect_count",0)
                        pc.setqf("drink_drug",0)
                        pc.setqf("duration",0)
                        clear_letter()
                        set_state("biyolog1_3")
                        return
                        else
                        say_title("Ork dişleri")
                        say("")
                        say("Bu diş çürümüş")
                        say("10 dakika sonra tekrar getir.")
                        say("")
                        pc.setqf("drink_drug",0)
                        pc.remove_item(30006, 1)
                        say_reward(string.format("Kalan: "..item_name(30006).." "..10-pc.getqf("collect_count")..""))
                        return
                        end
                        else
                        say_title("Ork dişleri")
                        say("")
                        say_reward(""..item_name(30006).." 'ne sahip değilsin!")
                        return
                        end
                        else
                        say_title("Ork dişleri")
                        say("")
                        say("Son Analiz daha bitmedi ")
                        say("15 dakika beklemeniz gerekiyor.")
                        say("")
                        say_reward(string.format(biyolog1.secondsToTime(pc.getqf("duration"), "Kalan süre: ", "")))
                        say_reward("Şimdiye kadar ".." "..pc.getqf("collect_count").." tane ork dişi topladın.")
                        say("")
                    return
                end
            end
------------------- Bölüm 2 son

------------------- Av 1
        when 636.kill or 637.kill    begin
            local j = number(1, 80)
                if j == 1 then
                    pc.give_item2(30006, 1)
                    syschat("Biyolog Görevleri için bir nesne elde ettiniz.")
            end
        end

------------------- Av 1

------------------- Araştırmacının özütü beranın kalbi
        when 70022.use begin
            if pc.count_item(70022) < 1 then
                say_title("Süre sıfırlama")
                say("İtem kaybolmuş.")
            elseif pc.getqf("duration") > 0 then
                pc.setqf("duration", get_global_time() * 0)
                pc.remove_item(70022, 1)
                chat("Görevin bekleme süresi sıfırlandı.")
            elseif pc.getqf("duration") <= 0 then
                chat("Bekleme süresi zaten sıfırlandı.")
            end
        end
        when 71035.use begin
                if pc.getqf("drink_drug")==1 then
                    chat("Zaten kullanmışsın!")
            else
                    chat("Biyolog malzemesi geçirme şansın arttı!")
                pc.remove_item(71035,1)
                pc.setqf("drink_drug",1)
        end
    end
end
------------------- Araştırmacının özütü beranın kalbi

------------------- Bölüm 3 başlangıç

    state biyolog1_3 begin
        when letter begin
            send_letter("Jinunggy'nin ruh taşı")
        end
------------------- Av 2
        when 636.kill or 637.kill    begin
            local j = number(1, 80)
                if j == 1 then
                    pc.give_item2(30220, 1)
                    syschat("Biyolog Görevleri için bir nesne elde ettiniz.")
            end
        end
------------------- Av 2

        when button or info begin
            say_title("Ork dişleri")
            say("")
            say("Araştırma için ")
            say("10 ork azı dişi bulduktan sonra,")
            say(""..item_name(30220).." lazım.")
            say_reward("Ruh Taşını "..mob_name(636).." ve ")
            say_reward(""..mob_name(637).."'in den alabilirsin")
            say("")
            wait()
            if pc.count_item(30220) < 1 then
                    say_title("Ork dişleri")
                    say("")
                    say_reward(""..item_name(30220).." 'na sahip değilsin!")
                return
            end
            say("Mükemmel Ruh taşını bulmuşsun")
            say("")
            pc.remove_item(30220,1)
            clear_letter()
            set_state(biyolog1_4)
        end
    end

------------------- Bölüm 3 son

------------------- Bölüm 4 başlangıç

    state biyolog1_4 begin
        when letter begin
            send_letter("Biyoloğun ödülü ")
        end

        when button or info begin
            say_title("Baek-Go:")
            say("Ah bu Biyolog Chaegirab'ın reçetesi mi? Hm bu")
            say("senin hareket hızını 10 puan artıracak. İşte")
            say("iksirin! Aynı zamanda sana bu yüzüğü vermeliyim.")
            say("Değerli görünüyor, kaybetme.")
            say("Oh, işte ödülün!")
            say_reward("Chaegirab'ın ricasını tamamladığın için ödül")
            say_reward("olarak hareket hızın kalıcı olarak 10 puan")
            say_reward("artırıldı.")
            affect.add_collect(apply.MOV_SPEED, 10, 60*60*24*365*60) -- 60Years
            pc.give_item2(71015)
            pc.give_item2(50109)
            clear_letter()
            set_quest_state("biyolog2", "run")
            set_state(__complete)
        end
    end

------------------- Bölüm 4 son

------------------- Bölüm 5 başlangıç

    state __giveup__ begin
        when button or info."Bir deneme daha." begin
            say_title("Biyolog Chaegirab:")
            say("")
            say("Bir daha denemek istiyor musun?")
            say("Hmm..çok iyi")
            say("Çok beğendim ama, ")
            say("Lütfen bir daha dene.")
            say("Görüşmek üzere.")
            set_state(start)
        end
    end
        state __complete begin
    end
end

------------------- Bölüm 5 son
 
En son bir moderatör tarafından düzenlenmiş:
Paylaşım için teşekkürler.

rica ederim iyi kullanımlar


Konuyu güncelleyemediğim için buradan ekliyorum
1. göreve 1 item verdikten sonra araştırmacının özütü basınca süresi dolmadı diyordu düzeltildi
2. ruh taşını verirken questte bir hata oluyordu ve ruhtaşını vermıyordu düzeltildi
3. araştırmacının özütü ve beranın kalbinin çalışması için item protodan bu itemleri ITEM_QUEST olarak değiştirmelisiniz
Güncelleme:
quest collect_quest_lv30  begin
        state start begin
            when login or levelup with pc.level >= 30 and pc.level <= 100 and not pc.is_gm() begin
                set_state(information)
            end
        end
       
        state information begin
            when letter begin
            send_letter("Biyoloğun Ricası ")
        end
            when button or info begin
                    say_title("Biyolog Chaegirab:")
                    say("")
                    say("Aman!!! Bana , lütfen yardım et...")
                    say("Burada yaşayan canavarlar hakkında")
                    say("bilgi topluyorum..")
                    say("Bunu yanlız yapamam..")
                    say("Aslında bilgileri kendim ")
                    say("toplamam lazım..")
                    say("Tahmin edebileceğin gibi,")
                    say("Biyolog olarak büyük sorunlarım var.")
                    say("Bana lütfen yardım et, lütfen...")
                    say("Çalışmaların için tabi ki")
                    say("ödüllendirileceksin.")
                    say("")
                        wait()
                    say_title("Biyolog Chaegirab:")
                    say("")
                    say("Bana ork azı dişi getirebilir misin ?")
                    say("Ama bana özel azı diş lazım! Bana")
                    say("bir özel diş getir, ama hep tek tek")
                    say("Onu muayene edebilmek için.")
                    say("Bol Şanslar!")
                    say("")
                    say("")
                    set_state(go_to_disciple)
                    pc.setqf("duration",0)
                    pc.setqf("collect_count",0)
                    pc.setqf("drink_drug",0)
                end
            end

        state go_to_disciple begin
            when letter begin
                send_letter("Biyoloğun araştırması ")
            end
            when button or info begin
                if get_time() > pc.getqf("duration") then
                    if  pc.count_item(30006) >0 then
                    say_title("Biyolog Chaegirab:")
                    say("Ah!! Bana bir azı dişi getirdin.")
                    say("Önce denemem lazım...")
                    say("Bu biraz zaman alabilir. ")
                    say("Daha sonra yine gel.")
                    say_item_vnum(30006)
                    say_reward("Şimdiye kadar ".." "..pc.getqf("collect_count").." tane ork dişi topladın.")
                    pc.setqf("duration",get_time()+10*60*1) -----------------------------------22??
                    wait()
                    local pass_percent
                    if pc.getqf("drink_drug")==0 then
                            pass_percent=60
                    else
                            pass_percent=100
                    end
                    local s= number(1,100)
                    if s<= pass_percent  then
                       if pc.getqf("collect_count")< 9 then
                            local index =pc.getqf("collect_count")+1
                            pc.setqf("collect_count",index)
                            say_title("Biyolog Chaegirab:")
                            say("Müthiş!! Sen bir harikasın...")
                            say("Şimdi bana bu araştırma için")
                            say_item_vnum(30006)
                            say_reward(" "..10-pc.getqf("collect_count").. " tane daha ork dişi lazım. ")
                            say("")
                            say("")
                            say("")
                            pc.setqf("drink_drug",0)
                            pc.remove_item("30006", 1)
                        return
                    end
                            say_title("Biyolog Chaegirab:")
                            say("")
                            say("Bana azı dişlerini topladın !!")
                            say("Ama şimdi bana özel bir taş ")
                            say_item_vnum(30220)
                            say("lazım.  Jinunggy'nin ruh taşı, onu")
                            say("bana getirebilir misin?")
                            say("Onu Orklarda bulabilirsin. ")
                            say("")
                            pc.setqf("collect_count",0)
                            pc.setqf("drink_drug",0)
                            pc.setqf("duration",0)
                            set_state(key_item)
                        return
                    else
                            say_title("Biyolog Chaegirab:")
                            say("Hmm.... Ne yazık ki bu kırık...")
                            say("Bunu kullanamam..")
                            say("Bana bir tane daha getir.")
                            say("")
                            pc.setqf("drink_drug",0)
                            pc.remove_item("30006", 1)
                        return
                    end
                else
                            say_title("Biyolog Chaegirab:")
                            say_item_vnum(30006)
                            say(""..item_name(30006).." 'ne sahip değilsin!")
                        return
                    end
                else
                            say_title("Biyolog Chaegirab:")
                            say("")
                            say("Çok özür dilerim....")
                            say("Son Analiz daha bitmedi ")
                            say("Kusura bakma..")
                            say("Sonra bir daha ..")
                            say("gelebilir misin?")
                            say_reward("Şimdiye kadar ".." "..pc.getqf("collect_count").." tane ork dişi topladın.")
                            SureHesapla(pc.getqf("duration") - get_time())
                            say("")
                            say("")
                        return
                    end
                end
            when 70022.use begin
                    pc.setqf("duration", get_time()-1)
                        chat("Biyolog süresi sıfırlandı!")
                    pc.remove_item(70022,1)
            end
           
            when 71035.use begin
                    if pc.getqf("drink_drug")==1 then
                        chat("Zaten kullanmışsın!")
                else
                        chat("Biyolog malzemesi geçirme şansın arttı!")
                    pc.remove_item(71035,1)
                    pc.setqf("drink_drug",1)
            end
        end
    end

        state key_item begin
            when letter begin
                send_letter("Biyoloğun Araştırması ")
            end
            when button or info begin
                say_title("Biyolog Chaegirab:")
                say("")
                say("Araştırması için ona ")
                say("10 ork azı dişi bulduktan sonra,")
                say("Jinunggy'nin ruh taşı lazım.")
                say_item_vnum(30220)
                say("Taşı Biyolog Chaegirab'a götür.")
                say("Ruh Taşını "..mob_name(635).." , ")
                say(""..mob_name(636).." ve "..mob_name(637).."")
                say("den alabilirsin.")
                say("")
                wait()
                if pc.count_item(30220) < 1 then
                        say(""..item_name(30220).." 'na sahip değilsin!")
                    return
                end
                pc.remove_item(30220,1)
                set_state(__reward)
            end
        end


        state __reward begin
            when letter begin
                send_letter("Biyoloğun ödülü ")
            end
                when button or info begin
                    say_title("Baek-Go:")
                    say("Ah bu Biyolog Chaegirab'ın reçetesi mi? Hm bu")
                    say("senin hareket hızını 10 puan artıracak. İşte")
                    say("iksirin! Aynı zamanda sana bu yüzüğü vermeliyim.")
                    say("Değerli görünüyor, kaybetme.")
                    say("Oh, işte ödülün!")
                    say_reward("Chaegirab'ın ricasını tamamladığın için ödül")
                    say_reward("olarak hareket hızın kalıcı olarak 10 puan")
                    say_reward("artırıldı.")
                    affect.add_collect(apply.MOV_SPEED, 10, 60*60*24*365*60) -- 60Years
                    pc.give_item2(71015)
                    pc.give_item2(50109)
                    clear_letter()
                    set_quest_state("collect_quest_lv40", "run")
                    set_state(__complete)
                end
            end

        state __giveup__ begin
            when button or info."Bir deneme daha." begin
                say_title("Biyolog Chaegirab:")
                say("")
                say("Bir daha denemek istiyor musun?")
                say("Hmm..çok iyi")
                say("Çok beğendim ama, ")
                say("Lütfen bir daha dene.")
                say("Görüşmek üzere.")
                set_state(start)
             end
         end
        state __complete begin
    end
end
 
rica ederim iyi kullanımlar


Konuyu güncelleyemediğim için buradan ekliyorum
1. göreve 1 item verdikten sonra araştırmacının özütü basınca süresi dolmadı diyordu düzeltildi
2. ruh taşını verirken questte bir hata oluyordu ve ruhtaşını vermıyordu düzeltildi
3. araştırmacının özütü ve beranın kalbinin çalışması için item protodan bu itemleri ITEM_QUEST olarak değiştirmelisiniz
Güncelleme:
quest collect_quest_lv30  begin
        state start begin
            when login or levelup with pc.level >= 30 and pc.level <= 100 and not pc.is_gm() begin
                set_state(information)
            end
        end
      
        state information begin
            when letter begin
            send_letter("Biyoloğun Ricası ")
        end
            when button or info begin
                    say_title("Biyolog Chaegirab:")
                    say("")
                    say("Aman!!! Bana , lütfen yardım et...")
                    say("Burada yaşayan canavarlar hakkında")
                    say("bilgi topluyorum..")
                    say("Bunu yanlız yapamam..")
                    say("Aslında bilgileri kendim ")
                    say("toplamam lazım..")
                    say("Tahmin edebileceğin gibi,")
                    say("Biyolog olarak büyük sorunlarım var.")
                    say("Bana lütfen yardım et, lütfen...")
                    say("Çalışmaların için tabi ki")
                    say("ödüllendirileceksin.")
                    say("")
                        wait()
                    say_title("Biyolog Chaegirab:")
                    say("")
                    say("Bana ork azı dişi getirebilir misin ?")
                    say("Ama bana özel azı diş lazım! Bana")
                    say("bir özel diş getir, ama hep tek tek")
                    say("Onu muayene edebilmek için.")
                    say("Bol Şanslar!")
                    say("")
                    say("")
                    set_state(go_to_disciple)
                    pc.setqf("duration",0)
                    pc.setqf("collect_count",0)
                    pc.setqf("drink_drug",0)
                end
            end

        state go_to_disciple begin
            when letter begin
                send_letter("Biyoloğun araştırması ")
            end
            when button or info begin
                if get_time() > pc.getqf("duration") then
                    if  pc.count_item(30006) >0 then
                    say_title("Biyolog Chaegirab:")
                    say("Ah!! Bana bir azı dişi getirdin.")
                    say("Önce denemem lazım...")
                    say("Bu biraz zaman alabilir. ")
                    say("Daha sonra yine gel.")
                    say_item_vnum(30006)
                    say_reward("Şimdiye kadar ".." "..pc.getqf("collect_count").." tane ork dişi topladın.")
                    pc.setqf("duration",get_time()+10*60*1) -----------------------------------22??
                    wait()
                    local pass_percent
                    if pc.getqf("drink_drug")==0 then
                            pass_percent=60
                    else
                            pass_percent=100
                    end
                    local s= number(1,100)
                    if s<= pass_percent  then
                       if pc.getqf("collect_count")< 9 then
                            local index =pc.getqf("collect_count")+1
                            pc.setqf("collect_count",index)
                            say_title("Biyolog Chaegirab:")
                            say("Müthiş!! Sen bir harikasın...")
                            say("Şimdi bana bu araştırma için")
                            say_item_vnum(30006)
                            say_reward(" "..10-pc.getqf("collect_count").. " tane daha ork dişi lazım. ")
                            say("")
                            say("")
                            say("")
                            pc.setqf("drink_drug",0)
                            pc.remove_item("30006", 1)
                        return
                    end
                            say_title("Biyolog Chaegirab:")
                            say("")
                            say("Bana azı dişlerini topladın !!")
                            say("Ama şimdi bana özel bir taş ")
                            say_item_vnum(30220)
                            say("lazım.  Jinunggy'nin ruh taşı, onu")
                            say("bana getirebilir misin?")
                            say("Onu Orklarda bulabilirsin. ")
                            say("")
                            pc.setqf("collect_count",0)
                            pc.setqf("drink_drug",0)
                            pc.setqf("duration",0)
                            set_state(key_item)
                        return
                    else
                            say_title("Biyolog Chaegirab:")
                            say("Hmm.... Ne yazık ki bu kırık...")
                            say("Bunu kullanamam..")
                            say("Bana bir tane daha getir.")
                            say("")
                            pc.setqf("drink_drug",0)
                            pc.remove_item("30006", 1)
                        return
                    end
                else
                            say_title("Biyolog Chaegirab:")
                            say_item_vnum(30006)
                            say(""..item_name(30006).." 'ne sahip değilsin!")
                        return
                    end
                else
                            say_title("Biyolog Chaegirab:")
                            say("")
                            say("Çok özür dilerim....")
                            say("Son Analiz daha bitmedi ")
                            say("Kusura bakma..")
                            say("Sonra bir daha ..")
                            say("gelebilir misin?")
                            say_reward("Şimdiye kadar ".." "..pc.getqf("collect_count").." tane ork dişi topladın.")
                            SureHesapla(pc.getqf("duration") - get_time())
                            say("")
                            say("")
                        return
                    end
                end
            when 70022.use begin
                    pc.setqf("duration", get_time()-1)
                        chat("Biyolog süresi sıfırlandı!")
                    pc.remove_item(70022,1)
            end
          
            when 71035.use begin
                    if pc.getqf("drink_drug")==1 then
                        chat("Zaten kullanmışsın!")
                else
                        chat("Biyolog malzemesi geçirme şansın arttı!")
                    pc.remove_item(71035,1)
                    pc.setqf("drink_drug",1)
            end
        end
    end

        state key_item begin
            when letter begin
                send_letter("Biyoloğun Araştırması ")
            end
            when button or info begin
                say_title("Biyolog Chaegirab:")
                say("")
                say("Araştırması için ona ")
                say("10 ork azı dişi bulduktan sonra,")
                say("Jinunggy'nin ruh taşı lazım.")
                say_item_vnum(30220)
                say("Taşı Biyolog Chaegirab'a götür.")
                say("Ruh Taşını "..mob_name(635).." , ")
                say(""..mob_name(636).." ve "..mob_name(637).."")
                say("den alabilirsin.")
                say("")
                wait()
                if pc.count_item(30220) < 1 then
                        say(""..item_name(30220).." 'na sahip değilsin!")
                    return
                end
                pc.remove_item(30220,1)
                set_state(__reward)
            end
        end


        state __reward begin
            when letter begin
                send_letter("Biyoloğun ödülü ")
            end
                when button or info begin
                    say_title("Baek-Go:")
                    say("Ah bu Biyolog Chaegirab'ın reçetesi mi? Hm bu")
                    say("senin hareket hızını 10 puan artıracak. İşte")
                    say("iksirin! Aynı zamanda sana bu yüzüğü vermeliyim.")
                    say("Değerli görünüyor, kaybetme.")
                    say("Oh, işte ödülün!")
                    say_reward("Chaegirab'ın ricasını tamamladığın için ödül")
                    say_reward("olarak hareket hızın kalıcı olarak 10 puan")
                    say_reward("artırıldı.")
                    affect.add_collect(apply.MOV_SPEED, 10, 60*60*24*365*60) -- 60Years
                    pc.give_item2(71015)
                    pc.give_item2(50109)
                    clear_letter()
                    set_quest_state("collect_quest_lv40", "run")
                    set_state(__complete)
                end
            end

        state __giveup__ begin
            when button or info."Bir deneme daha." begin
                say_title("Biyolog Chaegirab:")
                say("")
                say("Bir daha denemek istiyor musun?")
                say("Hmm..çok iyi")
                say("Çok beğendim ama, ")
                say("Lütfen bir daha dene.")
                say("Görüşmek üzere.")
                set_state(start)
             end
         end
        state __complete begin
    end
end
Merhaba,

Bu tarz durumlarda konuyu rapor ederek bizlere bildirebilirsiniz. Bu bildirimler sonucunda ilgili içerikler konuya dahil edilmektedir.
 
Geri
Üst