Bitte auch den Teil, wo die die Questflag setztQuote:
Da die Originalquest riesig ist, poste ich hier nur die relevanten Stellen...
Also mein Problem ist, dass if pc.getqf("test") == 1 then nicht wirkt, er erkennt anscheinend die Variable nicht, die vorher gesetzt wurde und deshalb wird kein Text ausgegeben, nachdem er gewarpt wurde. Andere Lösungen, oder veränderte Formen dieses kleinen Teils wären echt nice :D Danke im Vorraus!
Code:when 30121.chat."Der erste Teil" with pc.get_map_index()==205 begin if pc.count_item(40001) >= 1 then say_title("Geist eines Suras") say("Du hast also den Ring gefunden?") say("Lass mich ihn erst einmal inspizieren...") say("Tatsächlich, das ist der Ring des Zorns!!!") wait() say_title("Geist eines Suras") say("Ich werde dich nun teleportieren,") say("Abenteuer! Bitte bringe mir die") say("restlichen Items auch noch!") pc.getqf("test",1) npc.purge() wait() d.new_jump_all(205,18401,35949) local boxto7= pc.count_item(40001) pc.remove_item(40001, boxto7) local vid = d.spawn_mob(11506, 147, 146) d.set_unique("real", vid) else say_title("Geist eines Suras") say("") say("Ich habe gehört, da ist ein Metinstein in der Nähe") say("Wenn du ihn zerstörst, werde ich dich in die nächsteEbene teleportieren...!") say("") end end when login with pc.get_map_index()==205 begin if pc.getqf("test") == 1 then chat("Abenteurer! Zerstöre den Feuer der") chat("Macht auf der Spitze des Vulkans!") chat("Suchen und Zerstören lautet die Devise!") end end
when 30121.chat."Der erste Teil" with pc.get_map_index()==205 begin
if pc.count_item(40001) >= 1 then
say_title("Geist eines Suras")
say("Du hast also den Ring gefunden?")
say("Lass mich ihn erst einmal inspizieren...")
say("Tatsächlich, das ist der Ring des Zorns!!!")
wait()
say_title("Geist eines Suras")
say("Ich werde dich nun teleportieren,")
say("Abenteuer! Bitte bringe mir die")
say("restlichen Items auch noch!")
pc.setqf("test",1)
npc.purge()
wait()
d.new_jump_all(205,18401,35949)
local boxto7= pc.count_item(40001)
pc.remove_item(40001, boxto7)
local vid = d.spawn_mob(11506, 147, 146)
d.set_unique("real", vid)
else
say_title("Geist eines Suras")
say("")
say("Ich habe gehört, da ist ein Metinstein in der Nähe")
say("Wenn du ihn zerstörst, werde ich dich in die nächsteEbene teleportieren...!")
say("")
end
end
when login with pc.get_map_index()==205 begin
if pc.getqf("test") == 1 then
chat("Abenteurer! Zerstöre den Feuer der")
chat("Macht auf der Spitze des Vulkans!")
chat("Suchen und Zerstören lautet die Devise!")
end
end
Erstmal danke für die beiden Antworten...Quote:
@ Sensenmann: der Flag wird ziemlich mittig gesetzt, aber leider falsch.
@ Cyber: Du machst pc.getqf("test", 1), so fragst du aber nur ab, du musst um den Flag zu setzen pc.setqf("test", 1) machen.
Code:when 30121.chat."Der erste Teil" with pc.get_map_index()==205 begin if pc.count_item(40001) >= 1 then say_title("Geist eines Suras") say("Du hast also den Ring gefunden?") say("Lass mich ihn erst einmal inspizieren...") say("Tatsächlich, das ist der Ring des Zorns!!!") wait() say_title("Geist eines Suras") say("Ich werde dich nun teleportieren,") say("Abenteuer! Bitte bringe mir die") say("restlichen Items auch noch!") pc.setqf("test",1) npc.purge() wait() d.new_jump_all(205,18401,35949) local boxto7= pc.count_item(40001) pc.remove_item(40001, boxto7) local vid = d.spawn_mob(11506, 147, 146) d.set_unique("real", vid) else say_title("Geist eines Suras") say("") say("Ich habe gehört, da ist ein Metinstein in der Nähe") say("Wenn du ihn zerstörst, werde ich dich in die nächsteEbene teleportieren...!") say("") end end when login with pc.get_map_index()==205 begin if pc.getqf("test") == 1 then chat("Abenteurer! Zerstöre den Feuer der") chat("Macht auf der Spitze des Vulkans!") chat("Suchen und Zerstören lautet die Devise!") end end
Hier hast du die ganze Quest einfach ^^Quote:
Bitte auch den Teil, wo die die Questflag setzt
quest devildown begin
state start begin
when 20350.chat."Vulkan des Hermes" begin
if pc.get_level() < 170 then
say("Du musst mindestens 170 sein,")
say("um diesen Dungeon zu betreten!")
else
say_title("Dungeonwächter")
say("Aufgepasst, Abenteurer!")
say("Dieser Run ist voller gefahren!!")
say("Nur die stärksten können die Spitze")
say("des Vulkanes erreichen!")
say("Willst du den Run dennoch betreten?")
local s = select("Ja", "Nein")
if s == 1 then
pc.warp(1886400, 3606800)
else
return
end
end
end
when 8041.kill with pc.get_map_index()==205 begin
local jump1 = number(1, 20)
if jump1 <= 10 then
chat("Herzlichen Glückwunsch!")
chat("Du hast den Ring des Zornes gefunden!");
chat("Bring es zum Surageist...");
chat("Hinter dir du Bauer!");
game.drop_item(40001, 1)
else
chat("Dieser Metin hatte keinen Ring.")
end
end
when 30121.chat."Der erste Teil" with pc.get_map_index()==205 begin
if pc.count_item(40001) >= 1 then
say_title("Geist eines Suras")
say("Du hast also den Ring gefunden?")
say("Lass mich ihn erst einmal inspizieren...")
say("Tatsächlich, das ist der Ring des Zorns!!!")
wait()
say_title("Geist eines Suras")
say("Ich werde dich nun teleportieren,")
say("Abenteuer! Bitte bringe mir die")
say("restlichen Items auch noch!")
pc.getqf("test",1)
npc.purge()
wait()
d.new_jump_all(205,18401,35949)
local boxto7= pc.count_item(40001)
pc.remove_item(40001, boxto7)
local vid = d.spawn_mob(11506, 147, 146)
d.set_unique("real", vid)
else
say_title("Geist eines Suras")
say("")
say("Ich habe gehört, da ist ein Metinstein in der Nähe")
say("Wenn du ihn zerstörst, werde ich dich in die nächsteEbene teleportieren...!")
say("")
end
end
when login with pc.get_map_index()==205 begin
if pc.getqf("test") == 1 then
chat("Abenteurer! Zerstöre den Feuer der")
chat("Macht auf der Spitze des Vulkans!")
chat("Suchen und Zerstören lautet die Devise!")
end
end
when login with pc.get_map_index() == 205 begin
send_letter("Vulkan verlassen")
end
when button or info begin
say_title("Wächter des Vulkans:")
say("Ihr wollt den Vulkan verlassen?")
say("")
local s = select("Ja bitte!", "Nein.")
if s == 1 then
local empire = pc.get_empire()
if empire == 1 then
pc.warp(474300,954800)
elseif empire == 2 then
pc.warp(63800,166400)
elseif empire == 3 then
pc.warp(959900,269200)
end
else
return
end
clear_letter()
end
when 11506.kill with pc.get_map_index()==205 begin
npc.purge()
chat("Du hast den Feuer der Macht zerstört, Abenteurer!")
chat("Ich teleportiere dich nun auf die letzte Ebene!")
end
when 25016.kill begin
npc.purge()
chat("Mich hast du vielleicht vernichtet, aber meine")
chat("Freunde im Vertania-Wald werdens dir zeigen!!!")
end
when 8022.kill with pc.get_map_index()==205 begin
d.setqf("devillevel", 3)
d.spawn_mob(8023, 658, 609)
end
when 8023.kill with pc.get_map_index()==205 begin
d.setqf("devillevel", 4)
d.spawn_mob(8024, 621, 586)
end
when 8024.kill with pc.get_map_index()==205 begin
d.setqf("devillevel", 5)
d.spawn_mob(8025, 588, 609)
end
when 8025.kill with pc.get_map_index()==205 begin
d.setqf("devillevel", 6)
d.spawn_mob(8030, 569, 636)
end
when 8030.kill with pc.get_map_index()==205 begin
d.setqf("devillevel", 7)
d.spawn_mob(8031, 588, 665)
end
when 8031.kill with pc.get_map_index()==205 begin
d.setqf("devillevel", 8)
d.spawn_mob(8032, 622, 686)
end
when 8032.kill with pc.get_map_index()==205 begin
d.setqf("devillevel", 9)
d.spawn_mob(8033, 659, 668)
end
when 8033.kill with pc.get_map_index()==205 begin
if d.is_unique_dead("real") then
d.notice("The last Metin is killed,go to Guard.");
d.spawn_mob(20355, 619, 635)
d.setqf("devillevel", 10)
end
end
when 20355.chat."Last floor" begin
npc.purge()
say_reward("Guard:")
say("Go to last floor,good luck!!")
wait()
d.jump_all(17201, 35623)
d.regen_file("data/dungeon/sky_run/end.txt")
d.set_unique("real", vid)
end
when 2493.kill with pc.get_map_index()==205 begin
local level = pc.get_level()
chat("You defeated the Sky King and you saved the Sky Run.")
chat("You will be teleported out in 2 minutes!")
d.kill_all()
d.kill_all()
notice_all("The group of "..pc.get_name().." has defeated Sky King!")
timer("goout_from_dc", 120)
end
when dc6.timer begin
chat("Time has Expired!")
warp_all_to_village( pc.get_map_index() , 5 )
end
when goout_from_dc.timer begin
warp_all_to_village( pc.get_map_index() , 3 )
end
end
end
Quote:
Habs geändert, leider wird dennoch der Text nicht ausgegeben, obwohl jetzt test=1 sein müsste und ein pc.warp eig. so wie ein login zählt...
when login with pc.get_map_index()>=205*10000 and pc.get_map_index()<(205+1)*10000 begin
Problem gelöst und ich hab auch nun verstanden, wo die Fehler waren! Vielen dank :)Quote:
Wenn man sich einloggt, müsste man laut deiner Quest doch schon in einer Dungeon Instanz sein, das heißt der MapIndex ist dann nicht mehr 205 sondern liegt zwischen 2050000 und 2059999.
Versuchs also mal mit:
Code:when login with pc.get_map_index()>=205*10000 and pc.get_map_index()<(205+1)*10000 begin
quest Eurospeicher begin
state start begin
when login begin
send_letter("Eurospeicher")
end
when button or info begin
say_title("Eurospeicher To-Go")
say("Da wir noch an der Eurolimit arbeiten")
say("haben wir provisorisch eine Quest erstellt,")
say("soll heißen dass die QUEST nicht für immer ist")
say("1,5kkk 1kkk 500kk 250kk 100kk Eurospeicher")
say("MFG:...")
say("Dieser Eurospeicher soll euch dabei helfen,")
say("nicht über 2kkk zu kommen also immer gut drauf achten!")
if select("1,5kkk","1kkk","500kk","250kk","100kk","Abrechen") == 2 then return end
if pc.get_gold()<1500000000 then return end
if pc.get_gold()<1000000000 then return end
if pc.get_gold()<500000000 then return end
if pc.get_gold()<250000000 then return end
if pc.get_gold()<100000000 then return end
pc.changemoney(-1500000000)
pc.changemoney(-1000000000)
pc.changemoney(-500000000)
pc.changemoney(-250000000)
pc.changemoney(-100000000)
pc.give_item2(910121, 1)
pc.give_item2(910131, 1)
pc.give_item2(30253, 1)
pc.give_item2(91013, 1)
pc.give_item2(30251, 1)
send_letter("Eurospeicher")
end
end
end
quest Eurospeicher begin
state start begin
when login begin
send_letter("Eurospeicher")
end
when button or info begin
local t,c = {"1,5kkk","1kkk","500kk","250kk","100kk","Abrechen"},{1500000000,1000000000,500000000,250000000,100000000}
local i = {910121,910131,30253,91013,30251}
say_title("Eurospeicher To-Go")
say("Da wir noch an der Eurolimit arbeiten")
say("haben wir provisorisch eine Quest erstellt,")
say("soll heißen dass die QUEST nicht für immer ist")
say("1,5kkk 1kkk 500kk 250kk 100kk Eurospeicher")
say("MFG:...")
say("Dieser Eurospeicher soll euch dabei helfen,")
say("nicht über 2kkk zu kommen also immer gut drauf achten!")
local q = select_table(t)
if q == table.getn(t) then return end
if pc.get_money() < c[q] then return end
pc.changemoney(-c[q])
pc.give_item2(i[q], 1)
send_letter("Eurospeicher")
end
end
end