Çözüldü Biyolog görevi Ruh Taşları düşme oranı

Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

Milan

Üye
Üye
Mesaj
31
Çözümler
2
Beğeni
20
Puan
664
Ticaret Puanı
0
İyi günler. Geliştirmeye çalıştığım serverda Biyolog görevlerini deniyordum fakat görevi teslim ettikten sonra istediği Ruh Taşı düşme oranında sıkıntım var. Ruh taşı çok fazla düşüyor bir grup slottan.Nereden ayarlayabilirim.
 
Çözüm
Bu satırdaki kodları;
Lua (Quest):
                when kill begin
                       if npc.get_race() == 365 or npc.get_race() == 636 or npc.get_race() == 637 then
                                pc.give_item2(30220,1)
                                send_letter("Jinunggy'nin ruh taşını buldun.")
                        end
                end

Şöyle değiştirin;
Lua (Quest):
                when 631.kill or 632.kill or 633.kill or 634.kill or 635.kill or 636.kill or 637.kill  begin
                    local s = number(1, 500)
                    if s == 1 and pc.count_item(30220)==0 then
                        pc.give_item2(30220, 1)
                        send_letter("Jinunggy'nin ruh taşını buldun.")
                    end...
Biyolog questleri içinde ruh taşlarının düşmesi için drop oranları oluyor. Sayı aralığını düşürürseniz fazla atar, arttırırsanız az artar.
 
Quest kodlarınızı ekleyin bakiyim
 
Quest kodlarınızı ekleyin bakiyim
Lua (Quest):
----------------------------------------------------
--COLLECT QUEST_lv30
--METIN2 Collecting Quest
----------------------------------------------------
quest collect_quest_lv30  begin
        state start begin
                when login or levelup with pc.level >= 30 and pc.level <= 105 and not pc.is_gm() begin
                        set_state(information)
                end
        end
        state information begin
                when letter begin
                        local v = find_npc_by_vnum(20084)
                        if v != 0 then
                                target.vid("__TARGET__", v, "Biologist Chaegirab")
                        end
                        send_letter("Biyoloğun Ricası ")
                end
                when button or info begin
                        say_title("Biyoloğun Ricası ")
                        say("")
                        say("Uriel'in öğrencisi Biyolog Chaegirab, ")
                        say("seni arıyor.")
                        say("Git ve ona yardım et.")
                        say("")
                end
                when __TARGET__.target.click or
                        20084.chat."Ork Dişi" begin
                        target.delete("__TARGET__")
                        say_title("Biyolog Chaegirab:")
                        ---                                                   l
                        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("Ejderha vadisinin canavarlarını inceliyorum.")
                        say("Ork'ların azı dişleri demiri bile ")
                        say("çiğneyebiliyor. Bu özellikleri yüzünden")
                        say("onlar benim için çok ilginç.")
                        say("Herhalde orklar ile bir derecede")
                        say("akrabayız..")
                        say("Orkların azı dişleri evrimin ")
                        say("anahtarı olması gerek.")
                        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
                        say_title("Ejderha Vadisi'nden Ork dişi")
                        ---                                                   l
                        say("")
                        say("Biyolog Chaegirab Ejderha Vadisi'ndeki")
                        say("Orkların azı dişini inceliyor. Ejderha")
                        say("vadisinden getirilecek dişler araştırmalar")
                        say("için lazım. Daha iyi inceleyebilmesi için,")
                        say("ona dişleri tek tek getirmelisin..")
                        say("")
                        say("")
                        say_item_vnum(30006)
                        say_reward("Şimdiye kadar ".." "..pc.getqf("collect_count").." tane ork dişi topladın.")
                        say("")
                end
                when 71035.use begin
                        if get_time() < pc.getqf("duration") then
                                say("")
                                say("Henüz büyülü suyu kullanamazsın.")
                                say("")
                                return
                        end
                        if pc.getqf("drink_drug")==1 then
                                say("")
                                say("Yoksa kullandın mı!")
                                say("")
                                return
                        end
                        if pc.count_item(30006)==0 then
                                say_title("Biyolog Chaegirab:")
                                say("")
                                say("Bana azı diş getirirsen,")
                                say("büyülü suyu kullanabilirsin.")
                                say("")
                                return
                        end
                        item.remove()
                        pc.setqf("drink_drug",1)
                end

        when 20084.chat."GM: collect_quest_lv30.skip_delay" with pc.count_item(30006) >0 and pc.is_gm() and get_time() <= pc.getqf("duration") begin
            say(mob_name(20084))
            say("You are GM, OK")
            pc.setqf("duration", get_time()-1)
            return
        end
            when 20084.chat."Ork dişi" with pc.count_item(30006) >0   begin
                        if get_time() > pc.getqf("duration") then
                            if  pc.count_item(30006) >0 then
                                say_title("Biyolog Chaegirab")
                                ---                                                   l
                                say("")
                                say("Ah!! Bana bir azı dişi getirdin.")
                                say("Önce denemem lazım...")
                                say("Bu biraz zaman alabilir. Belki bir kaç gün.")
                                say("Daha sonra yine gel.")
                                say("")
                                pc.remove_item("30006",1)
                                if  is_test_server()  then
                                pc.setqf("duration",get_time()+2)
                                else
                                pc.setqf("duration",get_time()+1) -----------------------------------22½Ã°£
    end
                                wait()
                                local pass_percent
                                if pc.getqf("drink_drug")==0 then
                                        pass_percent=60
                                else
                                        pass_percent=90
                                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("")
                                                say("Müthiş!! Sen bir harikasın...")
                                                say("Şimdi bana bu araştırma için ".." "..10-pc.getqf("collect_count").. "tane ")
                                                say("daha diş lazım.")
                                                say("Tamamlamak için")
                                                say("Bol Şanslar!")
                                                say("")
                                                say("")
                                                pc.setqf("drink_drug",0)
                                                return
                                        end
                                        say_title("Biyolog Chaegirab:")
                                        say("")
                                        say("Bana azı dişlerini topladın !!")
                                        say("Ama şimdi bana özel bir taş ")
                                        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)
                                return
                                end
                else
                    say_title("Biyolog Chaegirab:")
                    say(""..item_name(30006).." 'ne sahip değilsin!")
                    return
                end
            else
                  say_title("Biyolog Chaegirab:")
          ---                                                   l
          say("")
                  say("Çok özür dilerim....")
                  say("Son Analiz daha bitmedi ")
                  say("Kusura bakma..")
                  say("Sonra bir daha ..")
                  say("gelebilir misin?")
          say("")
                  say("")
                  say("")
                  return
                end
        end
end
        state key_item begin
                when letter begin
                        send_letter("Biyoloğun Araştırması ")
                        if pc.count_item(30220)>0 then
                                local v = find_npc_by_vnum(20084)
                                if v != 0 then
                                        target.vid("__TARGET__", v, "")
                                end
                        end
                end
                when button or info begin
                        if pc.count_item(30220) >0 then
                                say_title("Özel Taş ")
                                say("")
                                ---                                                   l
                                say_reward("Nihayet ruh taşını buldun.")
                                say_reward("Bu taşı Biyolog Chargirab'a götür.")
                                say_reward("Seni bekliyor.")
                                say("")
                                return
                        end
                        say_title("Özel Taş ")
                        say("")
                        ---                                                   l
                        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("")
                end
                when kill begin
                       if npc.get_race() == 365 or npc.get_race() == 636 or npc.get_race() == 637 then
                                pc.give_item2(30220,1)
                                send_letter("Jinunggy'nin ruh taşını buldun.")
                        end
                end
                when __TARGET__.target.click  or
                        20084.chat."Jinunggy'nin Ruh Taşı'nı buldum" with pc.count_item(30220) > 0  begin
                        target.delete("__TARGET__")
                        if pc.count_item(30220) > 0 then
                        say_title("Biyolog Chaegirab")
            ---                                                   l
                        say("")
                        say("Ohh!!! Çok teşekür ederim..")
                        say("Ödül olarak gücün yükseliyor..")
                        say("Bu bir gizli reçete , içinde güç ")
                        say("artırımı var...")
                        say("Baek-Go sana bir güç iksiri yapacak, ona git.")
                        say("Iyi eğlenceler!")
                        say("Senin sayende orkların hayatı hakkında çok şeyi")
                        say("öğrendim.")
                        say("")
                        say("")
                        pc.remove_item(30220,1)
                        set_state(__reward)
            else
                say_title("Biyolog Chaegirab")
                say(""..item_name(30220).." 'na sahip değilsin!")
                say("")
                return
                end
        end

        end
        state __reward begin
                when letter begin
                        send_letter("Biyoloğun ödülü ")
                        local v = find_npc_by_vnum(20018)
                        if v != 0 then
                                target.vid("__TARGET__", v, "Baek-Go")
                        end
                end
                when button or info begin
                        say_title("Biyoloğun ödülü ")
                        ---                                                   l
                        say("")
                        say("Jinunggy'nin ruh taşı ve azı dişlerinin")
                        say("ödülü olarak sana,")
                        say("Baek-Go'dan harika ilacı alman için")
                        say("Biyolog Chaegirab gizli bir reçete verdi.")
                        say("")
                end
                when __TARGET__.target.click  or
                        20018.chat."Gizli Reçete"  begin
                        target.delete("__TARGET__")
                        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 20084.chat."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
 
Bu satırdaki kodları;
Lua (Quest):
                when kill begin
                       if npc.get_race() == 365 or npc.get_race() == 636 or npc.get_race() == 637 then
                                pc.give_item2(30220,1)
                                send_letter("Jinunggy'nin ruh taşını buldun.")
                        end
                end

Şöyle değiştirin;
Lua (Quest):
                when 631.kill or 632.kill or 633.kill or 634.kill or 635.kill or 636.kill or 637.kill  begin
                    local s = number(1, 500)
                    if s == 1 and pc.count_item(30220)==0 then
                        pc.give_item2(30220, 1)
                        send_letter("Jinunggy'nin ruh taşını buldun.")
                    end
                end

Yukarıdaki kod çalışmazsa aşağıdakini kullanabilirsiniz // @Milan tarafından geri dönüş ile eklenmiştir.
Lua (Quest):
                when kill begin
                    if npc.get_race() == 635 or npc.get_race() == 636 or npc.get_race() == 637 then
                            local s = number(1,100)
                            if s==1 then
                                    pc.give_item2(30220,1)
                                    send_letter("Jinunggy'nin ruh taşını buldun.")
                            end
                    end
                end
 
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst