1. Quest aus diesem Tutorial ->
[Only registered and activated users can see links. Click Here To Register...]
2. Die Probleme: Er nimmt erfolgreich das Passwort und nimmt die Gewundenen Schlüssel. Man wird aber nicht geportet
2.1 Wenn man den NPC dann nochmal anklickt kann man das Passwort eingeben, dann sagt er zwar, dass es korrekt ist, aber im nächsten Schritt will er wieder die 3 Gew. Schlüssel. danach wird man auch nicht geportet.
Das kann man in Dauerschleife machen, bis sich irgendwann der Zugang schließt
Habe den Mapindex angepasst und eigentlich alles gemacht wie in dem vorran geposteten Tutorial, habe allerdings nicht die Clientdateien eingefügt, weil die schon in meinem Client drin sind (also sowieso die normalen grottendateien patch2)
Ich denke der Fehler liegt jetzt in der Quest, könnte mir die einer so anpassen, dass man die Schlüssel nicht immer wieder abgeben muss und man geportet wird, wenn man den Code korrekt eingegeben hat? VBox spuckt keine Fehler aus, habe die Questfunktionen bereits der quest_functions hinzugefügt.
HTML Code:
----------------------------------------------------
--Tempel des Drachen
----------------------------------------------------
quest drachenraum begin
state start begin
when logout with pc.get_map_index() >= (82*10000) begin
pc.setqf("punishment", 1)
end
when login with pc.get_map_index() >= (82*10000) and pc.getqf("punishment") == 1 begin
pc.setqf("punishment", 0)
warp_to_village()
end
when 30121.chat."Ich will den Drachen töten" with pc.get_map_index() == 73 begin
pc.setqf("punishment", 0)
if game.get_event_flag("dragontemple_used") == 1 then
if game.get_event_flag("dragontemple_block") == 1 then
say_title(mob_name(30121))
say("")
say("Der Raum ist gesperrt, versuch es später noch ein mal.")
return;
end
say_title(mob_name(30121))
say("")
say("Tut mir Leid, der Raum ist reseviert.")
say("Wenn du ein Passwort hast für den Zugang")
say("gebe es jetzt bitte ein.")
local password = input()
if game.get_event_flag("dragontemple_password") == tonumber(password) then
say_title(mob_name(30121))
say("")
say("Das Passwort stimmt überein.")
say("Ich bringe dich in die Kammer")
wait()
say_title(mob_name(30121))
say("")
say("Wenn du willst kann ich dich sofort,")
say("in den Drachnraum bringen.")
say("Gib mir einfach 3 "..item_name(30179))
say("")
say_item_vnum(30179)
local s = select("Hier, nimm sie und bring mich rein", "Abbrechen")
if s == 1 then
if pc.count_item(30179) >= 3 then
pc.remove_item(30179, 3)
pc.warp(843600, 1066900, (82*10000))
else
say("Du hast nur "..pc.count_item(30179).." von 3 benötigten")
sammeln = 3 - pc.count_item(30179)
say("Sammle bitte noch "..sammeln.." "..item_name(30179))
say("")
say_item_vnum(30179)
end
else
return
end
else
say_title(mob_name(30121))
say("")
say("Das Passwort stimmt nicht überein.")
return
end
elseif pc.has_guild() and game.get_event_flag("dragontemple_used") == 0 then
say_title(mob_name(30121))
say("")
say("Du willst also den Drachen bekämpfen?")
say("Dann gib bitte erst ein Passwort(nur Zahlen) ein")
say("um den Raum zu schützen. Geb das Passwort")
say("einfach deinen Gruppenmitgliedern und sie")
say("können mit in den Raum")
say("Gib es bitte jetzt ein.")
local password = tonumber(input())
say_title(mob_name(30121))
say("")
say("Um jetzt in den Drachenraum zu kommen")
say("brauche ich 3 "..item_name(30179))
say("")
say_item_vnum(30179)
say("")
local s = select("Hier, nimm sie und bring mich rein", "Abbrechen")
if s == 1 then
if pc.count_item(30179) >= 3 then
pc.remove_item(30179, 3)
if game.get_event_flag("dragontemple_notfinished") == 0 then
local ret = DragonLair.startRaid(82)
else
pc.warp(843600, 1066900, (82*10000))
end
game.set_event_flag("dragontemple_used", 1)
game.set_event_flag("dragontemple_notfinished", 1)
game.set_event_flag("dragontemple_password", password)
timer("blockentry", 5*60)
timer("not_finished", 1800)
else
say("Du hast nur "..pc.count_item(30179).." von 3 benötigten")
sammeln = 3 - pc.count_item(30179)
say("Sammle bitte noch "..sammeln.." "..item_name(30179))
say("")
say_item_vnum(30179)
say("")
return
end
elseif s == 2 then
return
end
elseif not pc.has_guild() then
say_title(mob_name(30121))
say("")
say("Du benötigst eine starke Gilde")
say("um gegen den Drachen zu kämpfen.")
end
end
when 2493.kill with pc.get_map_index() >= (82*10000) begin
timer("set_unused", 30)
end
when not_finished.timer begin
game.set_event_flag("dragontemple_used", 0)
game.set_event_flag("dragontemple_block", 0)
warp_to_village()
end
when set_unused.timer begin
game.set_event_flag("dragontemple_used", 0)
game.set_event_flag("dragontemple_block", 0)
game.set_event_flag("dragontemple_notfinished", 0)
notice_all("Der Drache wurde von "..pc.get_name().." getötet!")
notice_all("Herzlichen Glückwunsch!")
DragonLair.endRaid(82*10000)
end
when blockentry.timer begin
game.set_event_flag("dragontemple_block", 1)
end
end
end