Ich habe ein Problem mit der Bioquest von Bitte melden Sie sich an, um diesen Link zu sehen., undzwar bekomme ich zwar
die 1. Quest lv80 wenn ich diese allerdings erledige und die Belohnung abhole
müsste er danach ja auf die 2. Quest springen also die 2. Aufgabe, dass passiert
allerdings nicht. Wenn ich die Belohnung annehme schickt er mir wieder die 1. Quest
also wieder die selbe.
Die Quest:
- quest bio begin
- state start begin
- when login or levelup or enter with pc.get_level() >= bio_get_next_level() begin
- send_letter(bio_get_current_table()["letter"])
- end
- when button or info with pc.get_level() >= bio_get_next_level() begin
- say("Der Biologe sucht dich!")
- end
- when 11002.chat."Die Biologenquest" with pc.get_level() >= bio_get_next_level() begin
- say("Habe dich schon lange gesucht!")
- pc.setqf("items_left", bio_get_current_table()["count"])
- clear_letter()
- set_state(bio_do)
- end
- end
- state bio_do begin
- when kill with in_list(npc.get_race(), bio_get_current_table()["mob"]) begin
- if number(1, 100) <= bio_get_current_table()["chance_drop"] then
- game.drop_item_with_ownership(bio_get_current_table()["item"])
- end
- end
- when login or enter begin
- send_letter(bio_get_current_table()["letter"])
- end
- when button or info begin
- say("Du musst noch "..pc.getqf("items_left").."x "..item_name(bio_get_current_table()["item"]).." abgeben.")
- say("Du droppst sie von folgenden Monstern:")
- for _,v in pairs(bio_get_current_table()["mob"]) do
- say(mob_name(v))
- end
- end
- when 11002.chat."Die Biologenquest" or 11002.take with (item.get_vnum() == bio_get_current_table()["item"] or item.get_vnum() < 1) begin
- say("Du hast "..pc.count_item(bio_get_current_table()["item"]).."x "..item_name(bio_get_current_table()["item"])..".")
- local s = select("Alle abgeben", "Bestimmte Anzahl abgeben", "Abbrechen")
- if s == 1 then
- count = pc.count_item(bio_get_current_table()["item"])
- elseif s == 2 then
- repeat
- say("Wie viele?")
- count = tonumber(input())
- if count then
- if pc.count_item(bio_get_current_table()["item"]) >= count then
- break
- else
- say("Du hast das Item nur "..pc.count_item(bio_get_current_table()["item"]).."x")
- if select("andere Zahl eingeben", "Abbrechen") == 2 then return end
- end
- else
- say("Du kannst nur Zahlen eingeben!")
- if select("andere Zahl eingeben", "Abbrechen") == 2 then return end
- end
- until false
- else
- return
- end
- local i = 0
- local succeeded = 0
- while pc.count_item(bio_get_current_table()["item"]) >= 1 and pc.getqf("items_left") > succeeded and i < count do
- if number(1, 100) <= bio_get_current_table()["chance_submit"] then
- succeeded = succeeded+1
- end
- pc.remove_item(bio_get_current_table()["item"])
- i = i+1
- end
- pc.setqf("items_left", pc.getqf("items_left")-succeeded)
- if pc.getqf("items_left") < 1 then
- say("Du hast "..i.." abgegeben.")
- say("Es waren "..succeeded.." Stück erfolgreich. Damit")
- say("Hast du die Quest abgeschlossen!")
- say("Gehe zu Beak-Go.")
- pc.delqf("items_left")
- clear_letter()
- set_state(collect_reward)
- return
- end
- say("Du hast "..i.." abgegeben.")
- say("Es waren "..succeeded.." erfolgreich.")
- say("Dir fehlen noch "..pc.getqf("items_left").." Stück.")
- end
- end
- state collect_reward begin
- when login or enter begin
- send_letter("Belohnung abholen")
- end
- when button or info begin
- say("Gehe zu Beak-Go!")
- end
- when 11002.chat."Belohnung abholen" begin
- say("Hier deine Belohnung!")
- for _, v in pairs(bio_get_current_table()["reward"]) do
- if v[1] == 0 then
- pc.give_item2(v[2], v[3])
- say("Du erhälst folgendes Item: "..v[3].."x "..item_name(v[2]))
- else
- affect.add_collect(v[2], v[3], 60*60*24*365*10)
- say("Du erhälst folgenden permanenten Bonus: "..v[3].." "..affect_names[v[2]])
- end
- end
- pc.setqf("succeeded_quests", pc.getqf("succeeded_quests")+1)
- clear_letter()
- if pc.getqf("succeeded_quests") < table.getn(bio_quests()[1]) then
- set_state(start)
- else
- set_state(_COMPLETE_)
- end
- end
- end
- state _COMPLETE_ begin
- end
- end
Alles anzeigen
Ich denke das das Problem hier liegt, dass er nicht zur nächsten Aufgabe "weiter springt"
- pc.setqf("succeeded_quests", pc.getqf("succeeded_quests")+1)
- clear_letter()
- if pc.getqf("succeeded_quests") < table.getn(bio_quests()[1]) then
- set_state(start)
- else
- set_state(_COMPLETE_)
- end
Hier einmal die Table und die function zur table
- function bio_quests()
- return {
- {80, 100, 110, 120, 130, 140},
- [80] = {
- ["letter"] = "Die Forschung des Biologen 1",
- ["mob"] = {101, 102},
- ["chance_drop"] = 1,
- ["item"] = 50160,
- ["count"] = 10,
- ["chance_submit"] = 50,
- ["reward"] = {--type (0=item, 1=affect), id, amount
- {0, 180, 1},
- {1, 1, 10}
- }
- },
- [100] = {
- ["letter"] = "Die Forschung des Biologen 2",
- ["mob"] = {103},
- ["chance_drop"] = 1,
- ["item"] = 50161,
- ["count"] = 15,
- ["chance_submit"] = 50,
- ["reward"] = {--type (0=item, 1=affect), id, amount
- {0, 181, 1},
- {1, 1, 20}
- }
- },
- [110] = {
- ["letter"] = "Die Forschung des Biologen 3",
- ["mob"] = {104},
- ["chance_drop"] = 1,
- ["item"] = 50162,
- ["count"] = 20,
- ["chance_submit"] = 45,
- ["reward"] = {--type (0=item, 1=affect), id, amount
- {0, 182, 1},
- {1, 1, 30}
- }
- },
- [120] = {
- ["letter"] = "Die Forschung des Biologen 4",
- ["mob"] = {105},
- ["chance_drop"] = 1,
- ["item"] = 50163,
- ["count"] = 25,
- ["chance_submit"] = 45,
- ["reward"] = {--type (0=item, 1=affect), id, amount
- {0, 183, 1},
- {1, 1, 40}
- }
- },
- [130] = {
- ["letter"] = "Die Forschung des Biologen 5",
- ["mob"] = {106},
- ["chance_drop"] = 1,
- ["item"] = 50164,
- ["count"] = 25,
- ["chance_submit"] = 45,
- ["reward"] = {--type (0=item, 1=affect), id, amount
- {0, 184, 1},
- {1, 1, 50}
- }
- },
- [140] = {
- ["letter"] = "Die Forschung des Biologen 6",
- ["mob"] = {107},
- ["chance_drop"] = 1,
- ["item"] = 50165,
- ["count"] = 30,
- ["chance_submit"] = 40,
- ["reward"] = {--type (0=item, 1=affect), id, amount
- {0, 185, 1},
- {1, 1, 60}
- }
- },
- }
- end
- function bio_get_current_table()
- return bio_quests()[bio_get_next_level()] or false
- end
- function bio_get_next_level()
- return bio_quests()[1][pc.getf("biologe", "succeeded_quests")+1] or false
- end
Alles anzeigen
Hoffe jmd von euch kann weiter helfen