[QUEST] Végtelen hiba

Indította RealKorf, 2018-06-27, 23:18:09

Sziasztok. Írtam egy questet amit valamiért végtelenszer le lehet adni. Valaki látja a hibát?

state lv10_to_oregasszony begin
when letter begin
local v=find_npc_by_vnum(9006)
if v!=0 then target.vid("__TARGET__", v, "Öregasszony ")
end
send_letter("Vidd el az ágakat! ")
end

when button or info begin
say_title("Vidd el az ágakat az öregasszonynak! ")
say("")
end

when __TARGET__.target.click or 9006.chat."Első Küldetésed " begin
target.delete("__TARGET__")

if pc.countitem(1201) >= 10 then
say_title(mob_name(9006)..":")
say("Téged küldött Ah-yu az ágakkal?")
say("")
pc.removeitem(1201, 10)
say("Köszönöm, hogy elhoztad őket!")
say("Miben kéred jutalmadat?")
local val = select("Yang", "Optolók");

if val == 1 then
pc.changegold("3500000")
say_reward("3 500 000 Yangot kaptál")
end
if val == 2 then
pc.give_item2(71085, 100)
pc.give_item2(71084, 100)
say_item(71085)
say_item(71084)
say_reward (" -t kaptál")
end

setskin(NOWINDOW)
set_state(__FINNISH__)
else
say_title(mob_name(9006)..":")
say("Téged küldött Ah-yu az ágakkal?")
say("")
say("És hol hagytad őket?")
say("Ha elveszítetted menj vissza értük Nakajimához!")
set_state(lv10_to_nakajima)
end
end
end

Most így hirtelen nem. Nincs véletlen vmi ami ráirányítja a questet erre a statere?

Szerintem rakj bele egy ilyet:


state __FINNISH__ begin
   end

A teljes questet kellene látni a probléma kiderítéséhez.

Az egész logikai része:

quest main10 begin
state start begin
when login or levelup with pc.level >= 10 begin
set_state(lv10_information)
end
end

state lv10_information begin
when letter begin
if pc.get_empire() == 1 then
local v=find_npc_by_vnum(11000)
if v!=0 then target.vid("__TARGET__", v, "Gondnok")
end
send_letter("Első küldetésed! ")
end
if pc.get_empire() == 2 then
local v=find_npc_by_vnum(11002)
if v!=0 then target.vid("__TARGET__", v, "Gondnok")
end
send_letter("Első küldetésed! ")
end
if pc.get_empire() == 3 then
local v=find_npc_by_vnum(11004)
if v!=0 then target.vid("__TARGET__", v, "Gondnok")
end
send_letter("Első küldetésed! ")
end

end
when button or info begin

end
when __TARGET__.target.click or 11004.chat."Első Küldetésed" or 11000.chat."Első Küldetésed" or 11002.chat."Első Küldetésed" begin
target.delete("__TARGET__")
say_title(mob_name(11004)..":")
wait()
setskin(NOWINDOW)
set_state(lv10_to_ahyu)

end
end

state lv10_to_ahyu begin
when letter begin
local v=find_npc_by_vnum(20003)
if v!=0 then target.vid("__TARGET__", v, "Ah-yu")
end
send_letter("Menj Ah-yu hoz")
end

when button or info begin

end

when __TARGET__.target.click or 20003.chat."Első Küldetésed " begin
target.delete("__TARGET__")
say_title(mob_name(20003)..":")

setskin(NOWINDOW)
set_state(lv10_to_nakajima)
end
end
state lv10_to_nakajima begin
when letter begin
local v=find_npc_by_vnum(20364)
if v!=0 then target.vid("__TARGET__", v, "Nakajima")
end
send_letter("Keresd meg Nakajimát! ")
end

when button or info begin

end

when __TARGET__.target.click or 20364.chat."Első Küldetésed " begin
target.delete("__TARGET__")
say_title(mob_name(20364)..":")

local fiz = select("Fizetni ", "Mégse ")
if fiz == 2 then
return
end
if fiz == 1 then
if pc.getgold() < 500000 then
end
if pc.getgold() >= 500000 then
pc.changegold("-500000")
pc.give_item2("1201", 10)

wait()
setskin(NOWINDOW)
set_state(lv10_to_oregasszony)
end
end
end
end

state lv10_to_oregasszony begin
when letter begin
local v=find_npc_by_vnum(9006)
if v!=0 then target.vid("__TARGET__", v, "Öregasszony ")
end
send_letter("Vidd el az ágakat! ")
end

when button or info begin

end

when __TARGET__.target.click or 9006.chat."Első Küldetésed " begin
target.delete("__TARGET__")

if pc.countitem(1201) >= 10 then
say_title(mob_name(9006)..":")
pc.removeitem(1201, 10)
local val = select("Yang", "Optolók");
if val == 1 then
pc.changegold("3500000")
say_reward("3 500 000 Yangot kaptál")
end
if val == 2 then
pc.give_item2(71085, 100)
pc.give_item2(71084, 100)
say_item(71085)
say_item(71084)
say_reward (" -t kaptál")
end

setskin(NOWINDOW)
set_state(__FINNISH__)
else
set_state(lv10_to_nakajima)
end
end
end

state __FINNISH__ begin end
end

Ennél a résznél:


if fiz == 1 then
if pc.getgold() < 500000 then
end
if pc.getgold() >= 500000 then
pc.changegold("-500000")
pc.give_item2("1201", 10)

wait()
setskin(NOWINDOW)
set_state(lv10_to_oregasszony)
end
end


Az a wait() megfogja az if ágat, nem fut le a set_state. Rakj elé szöveget, vagy vedd ki.

Szia, mint a leírásban is írtam, a probléma a végén lehet.

Amit írtál nem hiba, csak kitöröltem a kódból a say eket, hogy rövidebb legyen nektek a kód.