Biológus questbe időkorlát (K)

Indította yamaka, 2013-02-14, 15:28:05

2013-02-14, 15:28:05 Utolsó szerkesztés: 2013-02-15, 18:45:51 Szerző: [MOD]Aegist
Sziasztok.

Van egy biológus küldetésem amit egyből le lehet adni, nem egyben hanem egymás után egyből.

Azt kérdezem mivel kell kiegészíteni a questet, hogy pl óránként lehessen leadni?


Üdv Yamaka

egy példa , ez ork fog ID 30006  1 darabszám amennyit elvesz ,a +60*60 az idő ha igaz akkor 1 óra , de a profik jobban tudják ,egy próbát addig is megér  8)

               pc.remove_item("30006", 1)
                pc.setqf("duration",get_time() + 60*60)


Hmm megpróbáltam, de nekem nem működik.

Belinkelem questet és ha kiegészítenéd megköszönném

quest:
Idéz----------------------------------------------------
--COLLECT QUEST LV30
--METIN2 Collecting Quest
--Magyarosítva by P3NG3R
----------------------------------------------------
quest collect_quest_lv30  begin
   state start begin
      when login or levelup with pc.get_level() >= 30 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, "Biológus")
         end
         send_letter("A Biológus első kutatása")
      end

      when button or info begin
         say_title("A Biológus első kutatása")
         say("A Biológus keres téged!")
         say("Feladata van számodra, keresd fel.")
         say("")
         say_reward("Menj el a Biológushoz.")
         say("")
      end

      when __TARGET__.target.click or 20084.chat."Orkfogak" begin
         target.delete("__TARGET__")
         say_title(mob_name(20084)..":")
         say("Oh, jöttél segíteni?")
         say("Nos...")
         say("Én vagyok a Biológus")
         say("és ebben a világban számos felfedezésre váró ")
         say("rejtély van, amit meg szeretnék vizsgálni.")
         say("Remélem tudsz nekem segíteni.")
         say("")
         wait()
         say_title(mob_name(20084)..":")
         say("Nem régiben egy legendának voltam fültanuja,")
         say("amit meg szeretnék valósítani...")
         say("De hogy megvalósíthassam a segítségedre lesz")
         say("szükségem!")
         say("")
         wait()
         say_title(mob_name(20084)..":")
         say("A legenda kiinduló pontja a Seungryong völgy.")
         say("Rengeteg ocsmány teremtés lakóhelye az a völgy.")
         say("De nekem csak a fogukra lenne szükségem.")
         say("Nem minden vizsgálat jár sikerrel, ezért")
         say("előre is elnézést kell kérjek.")
         say("")
         say_reward("Hozz nekem 10 darab Orkfogat.")
         say("")
         pc.setqf("duration",0)
         pc.setqf("collect_count",0)
         pc.setqf("drink_drug",0)
         wait()
         set_skin(NOWINDOW)
         set_state(go_to_disciple)
      end
   end

   state go_to_disciple begin
      when letter begin
         send_letter("A seungryong völgyi orkok fogai")

      end
      when button or info begin
         say_title("A seungryong völgyi orkok fogai")
         ---                                                   l
         say("Chaegirab biológusnak, Uriel tanítványának")
         say("szüksége van 10 Orkfogra a Seungryong-völgyből a")
         say("kutatáshoz. Egyszerre csak egy fogat vigyél neki")
         say("hogy jól megvizsgálhassa őket. Az ilyen fogakat")
         say("Orkoktól, Fekete Orkoktól és Bátor Fekete")
         say("Orkoktól szerezhetsz.")
         say("")
         say_item_vnum(30006)
         say_reward(string.format("Eddig leszállítottál %d Orkfogat.", pc.getqf("collect_count")))
         say("")
      end

      when 71035.use begin
         if get_time() < pc.getqf("duration") then
            say_title("Kutatók elixírje:")
            say("A Biológus még vizsgálja az előző tárgyat,")
            say("amit vittél neki.")
            say("")
            return
         end
         if pc.getqf("drink_drug")==1 then
            say_title("Kutatók elixírje:")
            say("Már használatban van.")
            say("")
            return
         end
         if pc.count_item(30006)==0 then
            say_title("Kutatók elixírje:")
            say("Nincs nálad a szükséges tárgy, amit")
            say("a biológusnak kell adnod.")
            say("")
            return
         end
         pc.remove_item(71035,1)
         pc.setqf("drink_drug",1)
      end

       when 20084.chat."Orkfogak" with pc.count_item(30006)>0 begin
         if get_time() > pc.getqf("duration") then
            say_title(mob_name(20084)..":")
            say("Hoztál nekem egyet?")
            say("Nagyon jó, hadd nézzem meg,")
            say("hogy ezzel tudok e dolgozni...")
            say("")
            pc.remove_item(30006, 1)
            pc.setqf("duration",get_time()+1*1*1)
            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(mob_name(20084)..":")
                  say("Ez az Orkfog nagyon jó minőségű!")
                  say("Köszönöm szépen, el is kezdem rajta a vizsgálatot.")
                  say("")
                  say(string.format("Hozz még: %d darabot.", 10-pc.getqf("collect_count")))
                  say("")
                  pc.setqf("drink_drug",0)
                  return
               end
               say_title(mob_name(20084)..":")
               say("Gratulálok!")
               say("Elhoztad nekem mind a 10 darab orkfogat.")
               say("Már csak egy dolog választ el, hogy lezárhassam")
               say("a kutatást. Az Orkoknak van egy szent tárgyuk,")
               say("amire szükségem van a kutatás befejezéséhez.")
               say("Kérlek téged hozd el nekem azt a szent")
               say("tárgyát!")
               say("")
               say_item_vnum(30220)
               say_reward("Szerezd meg a Jinunggyi Lélekkövét.")
               say("")
               pc.setqf("collect_count",0)
               pc.setqf("drink_drug",0)
               pc.setqf("duration",0)
               wait()
               set_skin(NOWINDOW)
               set_state(key_item)
               return
            else
               say_title(mob_name(20084)..":")
               say("Sajnálom, de ez az Orkfog túl rohadt...")
               say("Ezen nem tudok mit vizsgálni.")
               say("Gyere vissza később, és hozz egy")
               say("jobb minőségűt.")
               pc.setqf("drink_drug",0)
               return
            end
         else
            say_title(mob_name(20084)..":")
            say("Sajnálom, de a vizsgálat még tart,")
            say("gyere vissza egy kicsit később.")
            say("")
            return
         end
      end
   end

   state key_item begin
      when letter begin
         send_letter("Jinunggyi Lélekköve")
         if pc.count_item(30220)>0 then
            local v = find_npc_by_vnum(20084)
            if v != 0 then
               target.vid("__TARGET__", v, "Biológus")
            end
         end

      end
      when button or info begin
         if pc.count_item(30220) >0 then
            say_title("Jinunggyi Lélekköve")
            ---                                                   l
            say("Megtaláltad a lélekkövet!")
            say("Vidd el gyorsan a Biológushoz.")
            say("")
            return
         end
         say_title("Jinunggyi Lélekköve")
         say("")
         say("A Biológus már a kutatás végénél jár.")
         say("Arra kért téged, hogy szerezd meg neki a")
         say("Jinunggyis Lélekkövet.")
         say("")
         say_item_vnum(30220)
         say_reward("Menj Seungryong völgybe, és szerezd meg neki.")
         say("")
      end

      when 635.kill or
          636.kill or
          637.kill  begin
         local s = number(1, 100)
         if s <= 1 and pc.count_item(30220)==0 then
            pc.give_item2(30220, 1)
            send_letter("Megszerezted a Jinunggyi lélekkövet.")
         end
      end

      when __TARGET__.target.click or 20084.chat."Jinunggyi Lélekköve" with pc.count_item(30220) > 0 begin
          target.delete("__TARGET__")
         say_title(mob_name(20084)..":")
         say("Szuper!")
         say("Köszönöm szépen, hogy elhoztad nekem a lélekkövet!")
         say("Hála neked kedves "..pc.get_name().." lezárhatom")
         say("a kutatást!")
         say("")
         say("Most pedig fogd ezt a receptet, és menj el")
         say("Baek-Go barátomhoz, tudni fogja mit kell tennie.")
         say("")
         pc.remove_item(30220,1)
         set_state(__reward__)
      end

   end

   state __reward__ begin
      when letter begin
         send_letter("Recept a biológustó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("Recept a biológustól")
         ---                                                   l
         say("A Biológustól kaptál egy receptet,")
         say("amit csak Baek-Go tud elkészíteni.")
         say("Siess és vedd át jutalmad.")
         say("")
      end

      when __TARGET__.target.click or 20018.chat."Recept a biológustól" begin
          target.delete("__TARGET__")
         say_title("Baek-Go:")
         say("Isten hozott.")
         say("A Biológus küldött egy recepttel?")
         say("Hmmm[DELAY value;300]...[/DELAY] ")
         say("Rendben elkészítem ezt a főzetet neked.")
         say("")
         wait()
         say_title("Baek-Go:")
         say("Tessék idd meg ezt.")
         say("")
         say_reward("Kaptál:")
         say_reward("Mozgási sebesség +10% (Végleges)")
         say_reward("Védelem +50 (Végleges)")
         say_reward("Vörös ébenláda")

         affect.add_collect(apply.DEF_GRADE_BONUS, 50, 60*60*24*365*60)
         affect.add_collect(apply.MOV_SPEED, 10, 60*60*24*365*60)
         pc.give_item2(50109, 1)

         clear_letter()
         wait()
         set_skin(NOWINDOW)
         set_quest_state("collect_quest_lv40", "run")
         set_state(__complete__)
      end
   end

   state __complete__ begin
   end
end

Benne van már az időzítő...

pc.setqf("duration",get_time()+1*1*1) megjegyzés: ez egy értelmes számítás...

átírod pc.getqf("duration", get_time()+60*60)
mented, qc-zod, reload q-zol, örülsz.

questekhez nem értek.

de beírkáltam amit írtál és nemjó...vagyis nekem nem mükszik.

qc-ztem, reoadol-tam de semmi.

Hali!

Próbáld meg így, nem biztos hogy jó, de 1 próbát megér.

----------------------------------------------------
--COLLECT QUEST LV30
--METIN2 Collecting Quest
--Magyarosítva by P3NG3R
----------------------------------------------------
quest collect_quest_lv30  begin
   state start begin
      when login or levelup with pc.get_level() >= 30 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, "Biológus")
         end
         send_letter("A Biológus első kutatása")
      end

      when button or info begin
         say_title("A Biológus első kutatása")
         say("A Biológus keres téged!")
         say("Feladata van számodra, keresd fel.")
         say("")
         say_reward("Menj el a Biológushoz.")
         say("")
      end

      when __TARGET__.target.click or 20084.chat."Orkfogak" begin
         target.delete("__TARGET__")
         say_title(mob_name(20084)..":")
         say("Oh, jöttél segíteni?")
         say("Nos...")
         say("Én vagyok a Biológus")
         say("és ebben a világban számos felfedezésre váró ")
         say("rejtély van, amit meg szeretnék vizsgálni.")
         say("Remélem tudsz nekem segíteni.")
         say("")
         wait()
         say_title(mob_name(20084)..":")
         say("Nem régiben egy legendának voltam fültanuja,")
         say("amit meg szeretnék valósítani...")
         say("De hogy megvalósíthassam a segítségedre lesz")
         say("szükségem!")
         say("")
         wait()
         say_title(mob_name(20084)..":")
         say("A legenda kiinduló pontja a Seungryong völgy.")
         say("Rengeteg ocsmány teremtés lakóhelye az a völgy.")
         say("De nekem csak a fogukra lenne szükségem.")
         say("Nem minden vizsgálat jár sikerrel, ezért")
         say("előre is elnézést kell kérjek.")
         say("")
         say_reward("Hozz nekem 10 darab Orkfogat.")
         say("")
         pc.setqf("duration",0)
         pc.setqf("collect_count",0)
         pc.setqf("drink_drug",0)
         wait()
         set_skin(NOWINDOW)
         set_state(go_to_disciple)
      end
   end

   state go_to_disciple begin
      when letter begin
         send_letter("A seungryong völgyi orkok fogai")

      end
      when button or info begin
         say_title("A seungryong völgyi orkok fogai")
         ---                                                   l
         say("Chaegirab biológusnak, Uriel tanítványának")
         say("szüksége van 10 Orkfogra a Seungryong-völgyből a")
         say("kutatáshoz. Egyszerre csak egy fogat vigyél neki")
         say("hogy jól megvizsgálhassa őket. Az ilyen fogakat")
         say("Orkoktól, Fekete Orkoktól és Bátor Fekete")
         say("Orkoktól szerezhetsz.")
         say("")
         say_item_vnum(30006)
         say_reward(string.format("Eddig leszállítottál %d Orkfogat.", pc.getqf("collect_count")))
         say("")
      end

      when 71035.use begin
         if get_time() < pc.getqf("duration") then
            say_title("Kutatók elixírje:")
            say("A Biológus még vizsgálja az előző tárgyat,")
            say("amit vittél neki.")
            say("")
            return
         end
         if pc.getqf("drink_drug")==1 then
            say_title("Kutatók elixírje:")
            say("Már használatban van.")
            say("")
            return
         end
         if pc.count_item(30006)==0 then
            say_title("Kutatók elixírje:")
            say("Nincs nálad a szükséges tárgy, amit")
            say("a biológusnak kell adnod.")
            say("")
            return
         end
         pc.remove_item(71035,1)
         pc.setqf("drink_drug",1)
      end

       when 20084.chat."Orkfogak" with pc.count_item(30006)>0 begin
         if get_time() > pc.getqf("duration") then
            say_title(mob_name(20084)..":")
            say("Hoztál nekem egyet?")
            say("Nagyon jó, hadd nézzem meg,")
            say("hogy ezzel tudok e dolgozni...")
            say("")
            pc.remove_item(30006, 1)
            pc.setqf("duration",get_time()+60*60)
            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(mob_name(20084)..":")
                  say("Ez az Orkfog nagyon jó minőségű!")
                  say("Köszönöm szépen, el is kezdem rajta a vizsgálatot.")
                  say("")
                  say(string.format("Hozz még: %d darabot.", 10-pc.getqf("collect_count")))
                  say("")
                  pc.setqf("drink_drug",0)
                  return
               end
               say_title(mob_name(20084)..":")
               say("Gratulálok!")
               say("Elhoztad nekem mind a 10 darab orkfogat.")
               say("Már csak egy dolog választ el, hogy lezárhassam")
               say("a kutatást. Az Orkoknak van egy szent tárgyuk,")
               say("amire szükségem van a kutatás befejezéséhez.")
               say("Kérlek téged hozd el nekem azt a szent")
               say("tárgyát!")
               say("")
               say_item_vnum(30220)
               say_reward("Szerezd meg a Jinunggyi Lélekkövét.")
               say("")
               pc.setqf("collect_count",0)
               pc.setqf("drink_drug",0)
               pc.setqf("duration",0)
               wait()
               set_skin(NOWINDOW)
               set_state(key_item)
               return
            else
               say_title(mob_name(20084)..":")
               say("Sajnálom, de ez az Orkfog túl rohadt...")
               say("Ezen nem tudok mit vizsgálni.")
               say("Gyere vissza később, és hozz egy")
               say("jobb minőségűt.")
               pc.setqf("drink_drug",0)
               return
            end
         else
            say_title(mob_name(20084)..":")
            say("Sajnálom, de a vizsgálat még tart,")
            say("gyere vissza egy kicsit később.")
            say("")
            return
         end
      end
   end

   state key_item begin
      when letter begin
         send_letter("Jinunggyi Lélekköve")
         if pc.count_item(30220)>0 then
            local v = find_npc_by_vnum(20084)
            if v != 0 then
               target.vid("__TARGET__", v, "Biológus")
            end
         end

      end
      when button or info begin
         if pc.count_item(30220) >0 then
            say_title("Jinunggyi Lélekköve")
            ---                                                   l
            say("Megtaláltad a lélekkövet!")
            say("Vidd el gyorsan a Biológushoz.")
            say("")
            return
         end
         say_title("Jinunggyi Lélekköve")
         say("")
         say("A Biológus már a kutatás végénél jár.")
         say("Arra kért téged, hogy szerezd meg neki a")
         say("Jinunggyis Lélekkövet.")
         say("")
         say_item_vnum(30220)
         say_reward("Menj Seungryong völgybe, és szerezd meg neki.")
         say("")
      end

      when 635.kill or
          636.kill or
          637.kill  begin
         local s = number(1, 100)
         if s <= 1 and pc.count_item(30220)==0 then
            pc.give_item2(30220, 1)
            send_letter("Megszerezted a Jinunggyi lélekkövet.")
         end
      end

      when __TARGET__.target.click or 20084.chat."Jinunggyi Lélekköve" with pc.count_item(30220) > 0 begin
          target.delete("__TARGET__")
         say_title(mob_name(20084)..":")
         say("Szuper!")
         say("Köszönöm szépen, hogy elhoztad nekem a lélekkövet!")
         say("Hála neked kedves "..pc.get_name().." lezárhatom")
         say("a kutatást!")
         say("")
         say("Most pedig fogd ezt a receptet, és menj el")
         say("Baek-Go barátomhoz, tudni fogja mit kell tennie.")
         say("")
         pc.remove_item(30220,1)
         set_state(__reward__)
      end

   end

   state __reward__ begin
      when letter begin
         send_letter("Recept a biológustó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("Recept a biológustól")
         ---                                                   l
         say("A Biológustól kaptál egy receptet,")
         say("amit csak Baek-Go tud elkészíteni.")
         say("Siess és vedd át jutalmad.")
         say("")
      end

      when __TARGET__.target.click or 20018.chat."Recept a biológustól" begin
          target.delete("__TARGET__")
         say_title("Baek-Go:")
         say("Isten hozott.")
         say("A Biológus küldött egy recepttel?")
         say("Hmmm[DELAY value;300]...[/DELAY] ")
         say("Rendben elkészítem ezt a főzetet neked.")
         say("")
         wait()
         say_title("Baek-Go:")
         say("Tessék idd meg ezt.")
         say("")
         say_reward("Kaptál:")
         say_reward("Mozgási sebesség +10% (Végleges)")
         say_reward("Védelem +50 (Végleges)")
         say_reward("Vörös ébenláda")

         affect.add_collect(apply.DEF_GRADE_BONUS, 50, 60*60*24*365*60)
         affect.add_collect(apply.MOV_SPEED, 10, 60*60*24*365*60)
         pc.give_item2(50109, 1)

         clear_letter()
         wait()
         set_skin(NOWINDOW)
         set_quest_state("collect_quest_lv40", "run")
         set_state(__complete__)
      end
   end

   state __complete__ begin
   end
end

Siker, mükszik.

Akkor a többit is megírom eszerint.

Köszi a segítséget.

Témát zárom!