[SERVICE] Die Questkontrolle

11/28/2010 20:52 ..:EliteZocker:..#961
Kann mir vill einer die Quest so umschreiben das die 5 Ebene funktionier???

Weil ich zurzeit überhaupt nichts peil:D:D:D

Quote:
quest devildown begin
state start begin
when login begin
if pc.get_map_index() == 456 then
pc.set_warp_location(456, 3917, 12931)
end
end

when 30122.chat."Das Geheimnis Ascarias" begin
say_title("Kriegergeist")
say("")
say("Ich war einst Krieger der Kaiserlichen Armee.")
say("Vor vielen Jahren gab es einen Ort, der von einem")
say("Drache bewacht wurde. Heute kennt man ihn unter dem")
say("Name - Tal von Ascaria. Eigentlich wurde es mir")
say("verboten Informationen über die Lage dieses Ortes zu")
say("geben aber ich könnte dich trotzdem")
say("dort hin teleportieren.")
say("")
say_reward("Soll ich dich ins Tal von Ascaria teleportieren?")

local s = select("Teleportieren", "Hier bleiben")
if s == 1 then
pc.warp(391700, 1293100)
else
return
end
end

when 8024.kill with pc.get_map_index()==456 begin
local jump1 = number(1, 20)
if jump1<=10 then
chat("Das muss der Teil einer Karte sein.")
chat("Bringe ihn dem Surageist.")
game.drop_item(30120, 1)
else
chat("An diesem Metin war anscheinend keine Karte..")
end
end

when 30121.chat."Teil einer Karte" begin

if pc.count_item(30120)>=1 then
say("Du hast eine Karte gefunden?!")
say("Lass mal sehen!")
pc.removeitem("30120", 1)
wait()
say("Okay, ich denke als nächstes..")
say("Ja das ist okay.. Bis später!")
wait()
d.new_jump_all(456, 3182, 12142)
d.setf("devillevel", 1)
else
say("Ich habe gehört, dass man an den Metinsteine,")
say("hier in der Umgebung Teile von Karten finden kann,")
say("wenn man sie zerstört. Wenn du mir ein solches")
say("Teil bringen könntest, köntne ich dich in das")
say("nächste Gebiet teleportieren, da ich dann das")
say("Gebiet genauer untersuchen könnte.")
end
end

when login with pc.in_dungeon() and d.getf("devillevel") == 1 begin

-- Removed Schlüsselsteine aus deinem Inventar falls vorhanden, um Bugusing vorzubeugen. --
local boxto7= pc.count_item(30300)
pc.remove_item(30300,boxto7)
--------------------------------------------------------------------------------------------

local vid = d.spawn_mob(11510, 268, 311)
d.regen_file("data/dungeon/dd_regen2.txt")
d.set_unique("real", vid)
d.setf("devillevel", 1)
d.notice("Zerstört das legendäre Feuer der Macht.");

end

when 11510.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("devillevel", 2)
d.jump_all(3542, 12825)
end
end

when 20083.chat."Geheimnissvolle Gänge" with pc.in_dungeon() and d.getf("devillevel") == 2 begin
say_title("Poeng-Hong")
say("")
say("Diese Gänge.. Sie bringen mich um")
say("meinen Verstand.. Ich laufe nun schon")
say("den ganzen Tag in ihnen herum, aber ich habe")
say("keine Ahnung, wo ich noch lang gehen soll.")
say("Ich suche doch nur meinen Bruder..")
say("")
say("Wenn ich ihn doch nur finden würde..")
wait()
d.setf("devillevel", 3)
timer("devildown_spawnport", 1)
d.jump_all(3347, 12810)
end

when devildown_spawnport.timer begin
d.spawn_mob(20080, 498, 601)
d.regen_file("data/dungeon/dd_warps.txt")
end

when 20080.chat."Sao-Hae"with pc.in_dungeon() and d.getf("devillevel") == 3 begin
say_title("Sao-Hae")
say("")
say("Mein Bruder Poeng-Hong?")
say("Du hast ihn getroffen?")
say("Ja ich bin sein Bruder.. Es wäre")
say("sehr nett von ihm, ihm zu sagen wo ich")
say("bin, wenn du ihn noch einmal sehen solltest.")
say("")
wait()

d.setf("devillevel", 4)
timer("devildown_jump1", 1)
end

when devildown_jump1.timer begin
d.regen_file("data/dungeon/dd_regen3.txt")
local vid = d.spawn_mob(1191, 803, 290)
d.set_unique("real", vid)
d.jump_all(3619, 12075)
d.notice("Sucht die Eishexe und tötet sie, damit der Wächter");
d.notice("des Untergrundes sich nicht länger verstecken muss.");
end

when 1191.kill with pc.in_dungeon() and d.getf("devillevel") == 4 begin
if d.is_unique_dead("real") then
d.spawn_mob(20351 , 740 , 207)
d.setf("devillevel", 5)
end
end

when 20351.chat."Wächter des Untergrundes" with pc.in_dungeon() and d.getf("devillevel") == 5 begin
say_title("Wächter des Untergrundes")
say("Man nennt mich den Wächter des Untergundes.")
say("Ich bin schon eine weile hier und kenne das Gebiet")
say("ein wenig besser wie du, wenn ich das so sagen darf.")
say("")
say("Ich könnte euch alle zu den alten Siegeln teleportieren.")
say("Ich selbst traue mich dort nicht hin.")
say("Mir ist der Ort irgendwie unheimlich.")
say("")
wait()
d.setf("devillevel", 6)
timer("devildown_jump2", 2)
end

when devildown_jump2.timer begin
d.jump_all(4426, 12370)
d.regen_file("data/dungeon/dd_regen4.txt")
d.spawn_mob(20073, 1241, 250)
d.spawn_mob(20073, 1246, 242)
d.spawn_mob(20073, 1255, 243)
d.spawn_mob(20073, 1259, 250)
d.spawn_mob(20073, 1254, 258)
d.spawn_mob(20073, 1246, 258)
d.setf("devildownstone_count", 6)
timer('devildownstone1', 300)
d.notice("Um das Portal zum Roten Drache zu aktivieren, müssen");
d.notice("die alten Siegel zerstört werden. Ihr habt nur 20 Minuten,");
d.notice("um alle 6 Siegel zu öffnen.");
end

when devildownstone1.timer begin
d.notice("Verbleibende Zeit: 15 Minuten")
timer('devildownstone2', 300)
end

when devildownstone2.timer begin
d.notice("Verbleibende Zeit: 10 Minuten")
timer('devildownstone3', 300)
end

when devildownstone3.timer begin
d.notice("Verbleibende Zeit: 5 Minuten")
timer('devildownstone4', 300)
end

when devildownstone4.timer begin
d.notice("Die Zeit ist abgelaufen")
d.notice("Ihr werdet nun nach draußen teleportiert")
d.exit_all()
end

when 2542.kill with pc.in_dungeon() and d.getf("devillevel") == 6 begin
local KILL_COUNT_FOR_DROP_DEVIL_KEY = 15
local n =d.getf("count") + 1
d.setf("count", n)

if n == KILL_COUNT_FOR_DROP_DEVIL_KEY then
game.drop_item(50084, 1)
d.setf("count", 0)
end
end

when 20073.take with item.vnum == 50084 and d.getf("devillevel") == 6 begin
npc.purge()
item.remove()
d.setf("devildownstone_count", d.getf("devildownstone_count") - 1)
if d.getf("devildownstone_count") <= 0 then
d.setf("devillevel", 7)
-- Setzt die Timer von der Vorletzen EBENE auf 800000 Sec.
-- Um das nachträgliche herausfliegen zu vermeiden.
timer('devildownstone1', 800000)
timer('devildownstone2', 800000)
timer('devildownstone3', 800000)
timer('devildownstone4', 800000)
--------------------------------------------------------
d.jump_all(4374, 12740)
d.notice("Ihr habt alle alten Siegel geöffnet.")
d.notice("Das Portal zum Roten Drache hat sich geöffnet.")
timer("devildown_nexttimer", 3)
else
d.notice("Es verbleibt eine Anzahl von "..d.getf("devildownstone_count").." Siegeln")
end
end

when devildown_nexttimer.timer begin
d.jump_all(4374, 12740)
-- Firstspawn !!!
d.regen_file("data/dungeon/dd_boss1.txt")
------------------
timer("devildown_bosstimer1", 60)
end

when devildown_bosstimer1.timer begin
-- 2. Spawn !!!
d.regen_file("data/dungeon/dd_boss2.txt")
------------------
timer("devildown_bosstimer2", 60)
end

when devildown_bosstimer2.timer begin
-- 3. Spawn !!!
d.regen_file("data/dungeon/dd_boss3.txt")
------------------
timer("devildown_bosstimer3", 60)
end

when devildown_bosstimer3.timer begin
-- 4. Spawn !!!
d.regen_file("data/dungeon/dd_boss4.txt")
------------------
timer("devildown_bosstimer4", 60)
end

when devildown_bosstimer4.timer begin
-- 5. Spawn !!!
d.regen_file("data/dungeon/dd_boss5.txt")
------------------
timer("devildown_bosstimer5", 60)
end

when devildown_bosstimer5.timer begin
-- 6. Spawn !!!
d.regen_file("data/dungeon/dd_boss6.txt")
------------------
timer("devildown_bosstimer_last", 60)
end

when devildown_bosstimer_last.timer begin
-- Endspawn mit Drache !!!
d.regen_file("data/dungeon/dd_boss7.txt")
local vid = d.spawn_mob(2291, 1302, 708)
d.set_unique("real", vid)
------------------
end

when 2291.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("devillevel", 0)
d.notice("Ihr habt den Roten Drache, den Wächter des Tals von Ascaria besiegt.");
d.notice("Ihr werdet in 20 Sekunden zurück zum Anfang teleportiert..");
timer("devildown_escapetimer", 20)
end
end

when devildown_escapetimer.timer begin
d.exit_all()
end

end
end
11/29/2010 10:44 °ѕ¢αη∂ιυм#962
Quote:
Originally Posted by CoreDump View Post
PHP Code:
local c=select("Siriusschwert+0","Doch nicht")
     if 
c==1 with pc.count_item(270) <= 0 then 
"with" darfst du bei einer auswahl nicht verwenden (auch wenn da ein if drin ist)
darfst du nicht.
teil das "with" überall in noch eine funktion auf....
PHP Code:
if c==1 then
   
if pc.count_item(270) <= 0 then
      
----
   else
      ----
elseif 
c==2 then
............................. 
Ok, Danke, werde es heut Mittag mal testen...
12/02/2010 12:25 xMichiix#963
suche einen der mit mir eine quest schreibt ... weitere deteils gibts per PN
12/02/2010 14:05 wuaschtsalod#964
Quote:
Originally Posted by Michi1994 View Post
suche einen der mit mir eine quest schreibt ... weitere deteils gibts per PN
Wie der Name schon sagt, "[SERVICE]Die Questkontrolle" werden hier keine Quests geschrieben, sondern nur verbessert...
12/02/2010 21:40 .Jack#965
PHP Code:
-- Copyright by Je0x & Jack
-- 02.12.2010
quest Pferdering begin
    state start begin
        when 40001.
use begin
            say_title
("Pferde-Ring:")
            
say("Dieser Ring wurde von Berethar dem")
            
say("weisen geschmiedet. Man sagt das durch")
            
say("die Macht des Rings ein jedes Pferd")
            
say("einem aufs Wort gehorcht.")
            
say("dies hat allerdings seinen Preis!")
            
say("")
            
say("")
            
say("Mit diesem Ring erhälst du ein Kampfgaul")
            
say("allerdings kostet dich das 20 Milionen Yang")
            
wait()
            
            if 
pc.get_money() < 20000000 then
                say_title
("Pferde-Ring:")
                
say("Du hast zu wenig geld.")
                
say("Für den Kampfgaul brauchst")
                
say("du 20.000.000 Yang!")
                return
            
end    
            
            say_title
("Möchtest du einen Kampfgaul rufen?")
            
local a = select ("Ahjo Klar" , "Nee")
                if 
a == 2 then
                    
return
                
end           
            
                
if a == 1 then
                    horse
.set_level(11)
                    
pc.change_money(-20000000)
                    
pc.removeitem("40001", 1)
                    
say_title("Du erhielst ein Kampfgaul!")
                    
wait()    
                
end -- ende vom geben der items und so
            end 
-- ende des gelaber
        end 
-- ende des item use
    
end -- ende des state
end     
-- ende der quest 
dein tool zeigt folgendes an:

PHP Code:
Quest     = 1
State      
= 1
When     
= 1
Funktion     
= 0
For     = 0
If            = 3
End         
= 2
"            = 38
(            = 23
)            = 23
[            = 0
]            = 0

Check 1    = ok
Check 2    = ok
Check 3    = ok
Check 4    = Quest/State/When End Fehler 
:/ hab alle ends gecheckt entweder ich bin doof und habs einfach übersehen oder es liegt woanders dran


achja toller service thx


Mfg JackTheOne
12/02/2010 23:08 CoreDump#966
Da steht ja schon der Fehler drin????
End-Fehler
habs ausgebessert. müsste so stimmen
PHP Code:
quest Pferdering begin
    state start begin
        when 40001.
use begin
            say_title
("Pferde-Ring:")
            
say("Dieser Ring wurde von Berethar dem")
            
say("weisen geschmiedet. Man sagt das durch")
            
say("die Macht des Rings ein jedes Pferd")
            
say("einem aufs Wort gehorcht.")
            
say("dies hat allerdings seinen Preis!")
            
say("")
            
say("")
            
say("Mit diesem Ring erhälst du ein Kampfgaul")
            
say("allerdings kostet dich das 20 Milionen Yang")
            
wait()
            
            if 
pc.get_money() < 20000000 then
                say_title
("Pferde-Ring:")
                
say("Du hast zu wenig geld.")
                
say("Für den Kampfgaul brauchst")
                
say("du 20.000.000 Yang!")
                return
            
end
                
             
if pc.get_money() > 20000000 then
                say_title
("Möchtest du einen Kampfgaul rufen?")
                
local a = select ("Ahjo Klar" , "Nee")
                if 
a == 2 then
                    
return           
            
                elseif 
a == 1 then
                    horse
.set_level(11)
                    
pc.change_money(-20000000)
                    
pc.removeitem("40001", 1)
                    
say_title("Du erhielst ein Kampfgaul!")
                    
wait()    
                
end
            end
        end
    end
end 
12/02/2010 23:36 .Jack#967
Quote:
Originally Posted by CoreDump View Post
Da steht ja schon der Fehler drin????
End-Fehler
habs ausgebessert. müsste so stimmen
PHP Code:
quest Pferdering begin
    state start begin
        when 40001.
use begin
            say_title
("Pferde-Ring:")
            
say("Dieser Ring wurde von Berethar dem")
            
say("weisen geschmiedet. Man sagt das durch")
            
say("die Macht des Rings ein jedes Pferd")
            
say("einem aufs Wort gehorcht.")
            
say("dies hat allerdings seinen Preis!")
            
say("")
            
say("")
            
say("Mit diesem Ring erhälst du ein Kampfgaul")
            
say("allerdings kostet dich das 20 Milionen Yang")
            
wait()
            
            if 
pc.get_money() < 20000000 then
                say_title
("Pferde-Ring:")
                
say("Du hast zu wenig geld.")
                
say("Für den Kampfgaul brauchst")
                
say("du 20.000.000 Yang!")
                return
            
end
                
             
if pc.get_money() > 20000000 then
                say_title
("Möchtest du einen Kampfgaul rufen?")
                
local a = select ("Ahjo Klar" , "Nee")
                if 
a == 2 then
                    
return           
            
                elseif 
a == 1 then
                    horse
.set_level(11)
                    
pc.change_money(-20000000)
                    
pc.removeitem("40001", 1)
                    
say_title("Du erhielst ein Kampfgaul!")
                    
wait()    
                
end
            end
        end
    end
end 


Oh hoppla glatt übersehen :p
aber thx klappt jetzt alles =)
12/03/2010 10:39 RivathaX#968
Undzwar er portet nicht wenn man auf Dämonenturm klickt hoffe kannst da irgendwie helfen
PHP Code:
-- Teleporter 
quest map_warp begin 
    state start begin 
        when 9012.chat
."Möchtest du reisen?"  begin 
            say_title
("Teleporter:") 
            
say("Dies ist eine faszinierende Gegend. Aber") 
            
say("passiert hier denn auch mal etwas") 
            
say("Außergewöhnliches? Eher wohl nicht. In anderen") 
            
say("Teilen des Landes sieht es mitunter ganz anders.") 
            
say("aus! Es gibt daher sicher einen intressanten") 
            
say("Ort, an den ich dich teleportieren könnte. Da") 
            
say("jedoch die Kräfte des Bösen wieder stärker") 
            
say("geworden sind, wurden Raum und Zeit ins Chaos") 
            
say("gestürzt. Dadurch kann es passieren, dass deine") 
            
say("Rückkehr nicht immer augenblicklich funktioniert.") 
            
say("Möchtest du dennoch teleportiert werden?") 

            
local main_set = select("Ja","Nein") 
            if 
main_set == 2 then 
                
return 
            
end 
             
            
if pc.get_level() <= 10 then 
                say_title
("Teleporter:") 
                
say("Hm… Mit deinem derzeitigen Level bist du noch") 
                
say("zu schwach für die Reise durch Zeit und Raum.") 
                
say("Komm wieder, wenn du höher als Level 10 bist.") 
                return 
            
end 

            local map 
= pc.get_map_index() 
            
local empire = pc.get_empire() 
            
local level = pc.get_level() 
            
local cost = math.floor(level / 5) * 1000 

            
-- ?? ???? 
            if 
cost < 1000 then 
                cost 
= 1000 
            end 

            say_title
("Teleporter:") 
            
say("Wohin möchtest du teleportiert werden?") 
            
say_reward(string.format("Das kostet dich %d Yang.", cost)) 

            -- ?? ?? ???? ?? ?? (? ?? 
1,2 ??) 
            if 
map == 1 or map == 3 or map == 21 or map == 23 or map == 41 or map == 43 then 

                local guild_map_names 
= { 
                    
"Gildenzone", 
                    
"Gildenzone", 
                    
"Gildenzone", 
                } 

                
guild_map_name = guild_map_names[empire] 
                
local empire_castle={ 
                    
"Burgschlacht", 
                    
"Burgschlacht", 
                    
"Burgschlacht", 
                } 
                
empire_castle =empire_castle[empire] 
                
local sub_set = 0 
                
if level < 60 then -- 60?? : ?????, ???, ????, ??? 
                    
sub_set = select("Tal von Seungryong", "Yongbi-Wüste", "Berg Sohan","Andere Gebiete") 
                    if 
sub_set == 4 then -- ?? 
                        return 
                    
end 

                
else -- 61?? : ????, ???, ????, ???? 
                    
sub_set = select("Tal von Seungryong", "Yongbi-Wüste", "Berg Sohan", "Andere Gebiete") 
                    if 
sub_set == 4 then -- ?? 
                        
say_title("Teleporter:") 
                        
say("Wohin möchtest du teleportiert werden?") 
                        
say_reward(string.format("Das kostet dich %d Yang.", cost)) 
                        
sub_set = select("Dämonenturm", "Zurück", "Abbrechen") + 4 
                        
if sub_set == 6 then -- ?? 
                            return 
                        
end 
                        
if sub_set == 5 then -- ?? 
                            
say_title("Teleporter:") 
                            
say("Wohin möchtest du teleportiert werden?") 
                                                 ---                                                   
l 
                            say_reward
(string.format("Das kostet dich %d Yang.", cost)) 
                            
sub_set = select("Tal von Seungryong", "Yongbi-Wüste", "Berg Sohan", "Andere Gebiete") 
                            if 
sub_set == 4 then -- ?? 
                                
say_title("Teleporter:") 
                                
say("Wohin möchtest du teleportiert werden?") 
                                
say_reward(string.format("Das kostet dich %d Yang.", cost)) 
                                
sub_set = select("Dämonenturm", "Abbrechen") + 4 
                                
if sub_set == 5 then -- ?? 
                                    return 
                                
end 
                            end 
                        end 
                    end 
                end 

                
if pc.gold < cost then 
                    say
("Du hast nicht genug Geld,") 
                    
say_title("Teleporter:") 
                    
say("Ich würde dich auch kostenlos teleportieren,") 
                    
say("aber ich habe eine große Familie. Um sie zu") 
                    
say("ernähren, muss ich Geld verdienen.") 
                    
say_reward(string.format("Es kostet %d Yang.", cost)) 
                    return 
                
end 

                pc
.changegold(-cost) 

                
local warp = { 
                    -- 
64 map_n_threeway 
                    
{ 
                        { 
402100, 673900 }, 
                        { 
270400, 739900 }, 
                        { 
321300, 808000 }, 
                    }, 
                    -- 
63 metin2_map_n_desert_01 
                    
{ 
                        { 
217800, 627200 }, 
                        { 
221900, 502700 }, 
                        { 
344000, 502500 }, 
                    }, 
                    -- 
61 map_n_snowm_01 
                    
{ 
                        { 
434200, 290600 }, 
                        { 
375200, 174900 }, 
                        { 
491800, 173600 }, 
                    }, 
                    -- 
devil_tower 
                    
{ 
                        { 
590500, 110500 }, 
                        { 
590500, 110500 }, 
                        { 
590500, 110500 }, 
                    }, 
                } 
                
test_chat(warp[sub_set][empire][1]..warp[sub_set][empire][2]) 
                
say_title("Teleporter:") 
                
say("Achtung, ich teleportiere dich jetzt. Du wirst") 
                
say("an einem gefährlichen Ort landen, also pass auf") 
                
say("dich auf. Viel Glück!") 
                
wait() 
                
pc.warp(warp[sub_set][empire][1], warp[sub_set][empire][2]) 
             

            else -- ? ?? 
1,2 ? ??? ?????? ? ?? 1,2 ? ??? ?? ??     
                
local sub_set2 = 3 

                
--sub_set2 = select(locale.vileage1_name[empire], locale.vileage2_name[empire], locale.cancel) 
                if 
empire==1 then     
                    sub_set2 
= select("Yongan","Jayang" , locale.cancel) 
                elseif  
empire ==2 then   
                    sub_set2 
= select("Joan","Bokjung" , locale.cancel) 
                elseif  
empire ==3 then  
                    sub_set2 
= select("Pyungmoo","Bakra" , locale.cancel) 
                
end     
                
if sub_set2 != 3 then 
                    
if pc.gold < cost then 
                        say_title
("Teleporter:") 
                        
say("Ich würde dich auch umsonst teleportieren,") 
                        
say("aber ich habe eine große Familie. Um sie zu") 
                        
say("ernähren, muss ich Geld verdienen.") 
                        
say_reward(string.format("Es kostet %d Yang.", cost)) 
                    else 
                        if 
sub_set2 == 1 then 
                            say_title
("Teleporter:") 
                            
say("Ich teleportiere dich dorthin.") 
                            
wait() 

                            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     
                        
elseif sub_set2 == 2 then 
                            say_title
("Teleporter:") 
                            
say("Ich teleportiere dich dorthin.") 

                            
wait() 
                            if 
empire == 1 then 
                                pc
.warp(353100,882900) 
                            elseif 
empire == 2 then 
                                pc
.warp(145500,240000) 
                            elseif 
empire == 3 then 
                                pc
.warp(863900,246000) 
                            
end     
                        end 

                        pc
.changegold(-cost) 
                    
end 
                end 
            end 
        end 
-- end_of_chat 
     end 
-- end_of_state 
end 
-- end_of_quest 
12/03/2010 14:18 ..:EliteZocker:..#969
Hab ein Problem mit der Quest -.-
Das Problem is das ich nach den 6 Schlüsseln nicht teleportiert werde.
kann mir mal einer pls helfen werde dan auch nciht weiter nerven!!

Quote:
quest devildown begin
state start begin
when login begin
if pc.get_map_index() == 456 then
pc.set_warp_location(456, 3917, 12931)
end
end

when 30122.chat."Das Geheimnis Ascarias" begin
say_title("Kriegergeist")
say("")
say("Ich war einst Krieger der Kaiserlichen Armee.")
say("Vor vielen Jahren gab es einen Ort, der von einem")
say("Drache bewacht wurde. Heute kennt man ihn unter dem")
say("Name - Tal von Ascaria. Eigentlich wurde es mir")
say("verboten Informationen über die Lage dieses Ortes zu")
say("geben aber ich könnte dich trotzdem")
say("dort hin teleportieren.")
say("")
say_reward("Soll ich dich ins Tal von Ascaria teleportieren?")

local s = select("Teleportieren", "Hier bleiben")
if s == 1 then
pc.warp(391700, 1293100)
else
return
end
end

when 8024.kill with pc.get_map_index()==456 begin
local jump1 = number(1, 20)
if jump1<=10 then
chat("Das muss der Teil einer Karte sein.")
chat("Bringe ihn dem Surageist.")
game.drop_item(30120, 1)
else
chat("An diesem Metin war anscheinend keine Karte..")
end
end

when 30121.chat."Teil einer Karte" begin

if pc.count_item(30120)>=1 then
say("Du hast eine Karte gefunden?!")
say("Lass mal sehen!")
pc.removeitem("30120", 1)
wait()
say("Okay, ich denke als nächstes..")
say("Ja das ist okay.. Bis später!")
wait()
d.new_jump_all(456, 3182, 12142)
d.setf("devillevel", 1)
else
say("Ich habe gehört, dass man an den Metinsteine,")
say("hier in der Umgebung Teile von Karten finden kann,")
say("wenn man sie zerstört. Wenn du mir ein solches")
say("Teil bringen könntest, köntne ich dich in das")
say("nächste Gebiet teleportieren, da ich dann das")
say("Gebiet genauer untersuchen könnte.")
end
end

when login with pc.in_dungeon() and d.getf("devillevel") == 1 begin

-- Removed Schlüsselsteine aus deinem Inventar falls vorhanden, um Bugusing vorzubeugen. --
local boxto7= pc.count_item(30300)
pc.remove_item(30300,boxto7)
--------------------------------------------------------------------------------------------

local vid = d.spawn_mob(11510, 268, 311)
d.regen_file("data/dungeon/dd_regen2.txt")
d.set_unique("real", vid)
d.setf("devillevel", 1)
d.notice("Zerstört das legendäre Feuer der Macht.");

end

when 11510.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("devillevel", 2)
d.jump_all(3542, 12825)
end
end

when 20083.chat."Geheimnissvolle Gänge" with pc.in_dungeon() and d.getf("devillevel") == 2 begin
say_title("Poeng-Hong")
say("")
say("Diese Gänge.. Sie bringen mich um")
say("meinen Verstand.. Ich laufe nun schon")
say("den ganzen Tag in ihnen herum, aber ich habe")
say("keine Ahnung, wo ich noch lang gehen soll.")
say("Ich suche doch nur meinen Bruder..")
say("")
say("Wenn ich ihn doch nur finden würde..")
wait()
d.setf("devillevel", 3)
timer("devildown_spawnport", 1)
d.jump_all(3347, 12810)
end

when devildown_spawnport.timer begin
d.spawn_mob(20080, 498, 601)
d.regen_file("data/dungeon/dd_warps.txt")
end

when 20080.chat."Sao-Hae"with pc.in_dungeon() and d.getf("devillevel") == 3 begin
say_title("Sao-Hae")
say("")
say("Mein Bruder Poeng-Hong?")
say("Du hast ihn getroffen?")
say("Ja ich bin sein Bruder.. Es wäre")
say("sehr nett von ihm, ihm zu sagen wo ich")
say("bin, wenn du ihn noch einmal sehen solltest.")
say("")
wait()

d.setf("devillevel", 4)
timer("devildown_jump1", 1)
end

when devildown_jump1.timer begin
d.regen_file("data/dungeon/dd_regen3.txt")
local vid = d.spawn_mob(1191, 803, 290)
d.set_unique("real", vid)
d.jump_all(3619, 12075)
d.notice("Sucht die Eishexe und tötet sie, damit der Wächter");
d.notice("des Untergrundes sich nicht länger verstecken muss.");
end

when 1191.kill with pc.in_dungeon() and d.getf("devillevel") == 4 begin
if d.is_unique_dead("real") then
d.spawn_mob(20351 , 740 , 207)
d.setf("devillevel", 5)
end
end

when 20351.chat."Wächter des Untergrundes" with pc.in_dungeon() and d.getf("devillevel") == 5 begin
say_title("Wächter des Untergrundes")
say("Man nennt mich den Wächter des Untergundes.")
say("Ich bin schon eine weile hier und kenne das Gebiet")
say("ein wenig besser wie du, wenn ich das so sagen darf.")
say("")
say("Ich könnte euch alle zu den alten Siegeln teleportieren.")
say("Ich selbst traue mich dort nicht hin.")
say("Mir ist der Ort irgendwie unheimlich.")
say("")
wait()
d.setf("devillevel", 6)
timer("devildown_jump2", 2)
end

when devildown_jump2.timer begin
d.jump_all(4426, 12370)
d.regen_file("data/dungeon/dd_regen4.txt")
d.spawn_mob(20073, 1241, 250)
d.spawn_mob(20073, 1246, 242)
d.spawn_mob(20073, 1255, 243)
d.spawn_mob(20073, 1259, 250)
d.spawn_mob(20073, 1254, 258)
d.spawn_mob(20073, 1246, 258)
d.setf("devildownstone_count", 6)
timer('devildownstone1', 300)
d.notice("Um das Portal zum Roten Drache zu aktivieren, müssen");
d.notice("die alten Siegel zerstört werden. Ihr habt nur 20 Minuten,");
d.notice("um alle 6 Siegel zu öffnen.");
end

when devildownstone1.timer begin
d.notice("Verbleibende Zeit: 15 Minuten")
timer('devildownstone2', 300)
end

when devildownstone2.timer begin
d.notice("Verbleibende Zeit: 10 Minuten")
timer('devildownstone3', 300)
end

when devildownstone3.timer begin
d.notice("Verbleibende Zeit: 5 Minuten")
timer('devildownstone4', 300)
end

when devildownstone4.timer begin
d.notice("Die Zeit ist abgelaufen")
d.notice("Ihr werdet nun nach draußen teleportiert")
d.exit_all()
end

when 2542.kill with pc.in_dungeon() and d.getf("devillevel") == 6 begin
local KILL_COUNT_FOR_DROP_DEVIL_KEY = 15
local n =d.getf("count") + 1
d.setf("count", n)

if n == KILL_COUNT_FOR_DROP_DEVIL_KEY then
game.drop_item(50084, 1)
d.setf("count", 0)
end
end

when 20073.take with item.vnum == 50084 and d.getf("devillevel") == 6 begin
npc.purge()
item.remove()
d.setf("devildownstone_count", d.getf("devildownstone_count") - 1)
if d.getf("devildownstone_count") <= 0 then
d.setf("devillevel", 7)
-- Setzt die Timer von der Vorletzen EBENE auf 800000 Sec.
-- Um das nachträgliche herausfliegen zu vermeiden.
timer('devildownstone1', 800000)
timer('devildownstone2', 800000)
timer('devildownstone3', 800000)
timer('devildownstone4', 800000)
--------------------------------------------------------
d.jump_all(4374, 12740)
d.notice("Ihr habt alle alten Siegel geöffnet.")
d.notice("Das Portal zum Roten Drache hat sich geöffnet.")
timer("devildown_nexttimer", 3)
else
d.notice("Es verbleibt eine Anzahl von "..d.getf("devildownstone_count").." Siegeln")
end
end

when devildown_nexttimer.timer begin
d.jump_all(4374, 12740)
-- Firstspawn !!!
d.regen_file("data/dungeon/dd_boss1.txt")
------------------
timer("devildown_bosstimer1", 60)
end

when devildown_bosstimer1.timer begin
-- 2. Spawn !!!
d.regen_file("data/dungeon/dd_boss2.txt")
------------------
timer("devildown_bosstimer2", 60)
end

when devildown_bosstimer2.timer begin
-- 3. Spawn !!!
d.regen_file("data/dungeon/dd_boss3.txt")
------------------
timer("devildown_bosstimer3", 60)
end

when devildown_bosstimer3.timer begin
-- 4. Spawn !!!
d.regen_file("data/dungeon/dd_boss4.txt")
------------------
timer("devildown_bosstimer4", 60)
end

when devildown_bosstimer4.timer begin
-- 5. Spawn !!!
d.regen_file("data/dungeon/dd_boss5.txt")
------------------
timer("devildown_bosstimer5", 60)
end

when devildown_bosstimer5.timer begin
-- 6. Spawn !!!
d.regen_file("data/dungeon/dd_boss6.txt")
------------------
timer("devildown_bosstimer_last", 60)
end

when devildown_bosstimer_last.timer begin
-- Endspawn mit Drache !!!
d.regen_file("data/dungeon/dd_boss7.txt")
local vid = d.spawn_mob(2291, 1302, 708)
d.set_unique("real", vid)
------------------
end

when 2291.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("devillevel", 0)
d.notice("Ihr habt den Roten Drache, den Wächter des Tals von Ascaria besiegt.");
d.notice("Ihr werdet in 20 Sekunden zurück zum Anfang teleportiert..");
timer("devildown_escapetimer", 20)
end
end

when devildown_escapetimer.timer begin
d.exit_all()
end

end
end
12/03/2010 18:02 CoreDump#970
@ .RiisK#
ich befasse mich nicht gerne mit portquests aber ich würde sagen ich hab den fehler gefunden.
(passt ins fehlermuster)

mit dem sub_set muss man weiterzählen.
also ein Beispiel
PHP Code:
.....
sub_set=select("Ort 1","Weiter")
if 
sub_set==2 then
   say
("......")
   
sub_set=select("Ort 2","Ende")
   if 
sub_set==3 then
   
..... 
man muss die selects weiterzählen und nicht wieder bei eins anfangen.
du hast wieder bei 1 begonnen ist mir aufgefallen
12/03/2010 21:02 ..:EliteZocker:..#971
hab jetzt versucht mit einer anderen Methode das problem zu lösen.
und zwar möchte ich das nach dem abgeben des 6ten schlüssel ein Wächter gespawmt wird der dihc dan in die nächste ebene teleportiert

Quote:
if d.getf("devildownstone_count") <= 0 then
d.setf("devillevel", 7)
-- Setzt die Timer von der Vorletzen EBENE auf 800000 Sec.
-- Um das nachträgliche herausfliegen zu vermeiden.
timer('devildownstone1', 800000)
timer('devildownstone2', 800000)
timer('devildownstone3', 800000)
timer('devildownstone4', 800000)
--------------------------------------------------------
d.spawn_mob(20351, 1248, 248)
d.notice("Ihr habt alle alten Siegel geöffnet.")
d.notice("Das Portal zum Roten Drache hat sich geöffnet.")
timer("devildown_nexttimer", 3)
else
d.notice("Es verbleibt eine Anzahl von "..d.getf("devildownstone_count").." Siegeln")
end
end

when 20351.chat."Wächter des Drachen" begin
say_title("Wächter des Drachen")
say("Herzlichen Glückwunsch du hast alle Schlüssel")
say("abgegeben!")
say("Auf dich wartet eine grausamme Greatur")
say("soll ich dich dort hin teleportieren.")
say("")
say_reward("Soll ich dich zu der Greatur teleportieren?")

local s = select("Teleportieren", "Hier bleiben")
if s == 1 then
pc.warp(4374, 12740)
else
return
end
end

when devildown_nexttimer.timer begin
d.jump_all(4374, 12740)
-- Firstspawn !!!
d.regen_file("data/dungeon/dd_boss1.txt")
------------------
timer("devildown_bosstimer1", 60)
end

when devildown_bosstimer1.timer begin
-- 2. Spawn !!!
d.regen_file("data/dungeon/dd_boss2.txt")
------------------
timer("devildown_bosstimer2", 60)
end

when devildown_bosstimer2.timer begin
-- 3. Spawn !!!
d.regen_file("data/dungeon/dd_boss3.txt")
------------------
was ist daran falsch?
12/03/2010 21:30 CoreDump#972
kannst du kein Deutsch?
grausamme Greatur
Ja und ich bin grammadikalischer richtiga wie du xDDDDDD
12/03/2010 21:32 ..:EliteZocker:..#973
Quote:
Originally Posted by CoreDump View Post
kannst du kein Deutsch?
grausamme Greatur
Ja und ich bin grammadikalischer richtiga wie du xDDDDDD
weißt du wie egal mir das ist ich will blos die Quest ( Map ) zum laufen bringen
12/04/2010 01:00 .Jack#974
Soo hab für ein Tanaka event jetzt ne quest geschrieben die einem das abgeben der ohren ermöglichen soll



PHP Code:
--quested by Je0x & Jack
--3.12.2010
quest Tanakas_Pakt begin
    state start begin
    when 40004.
use begin
        say_title
("Tanakas-Ring:")
        
say("Mit diesem Ring kannst du in kontakt")
        
say("mit Tanaka treten, um einen Pakt mit ihm")
        
say("zu schließen!")
        
say("Möchtest du das?")
        
        
local a = select ("Ahjo Klar" , "Nein hab Schiss")
        if 
a == 2then
            
return
        
        elseif 
a == 1 then
            say_title
("Tanaka:")
            
say("Aha. Du bist es also")
            
say("Erst schneidest du mir das Ohr ab und dann")
            
say("Willst du auchnoch das ich sie dir")
            
say("Abkaufe?? Na du bist ja einer!")
            
say("Abgebrüht wie ein Pirat! Das Gefällt mir!")
            
say("Vielleicht werden wir uns ja doch noch einig?!")
            
say("Auf meinen Feldzügen auf dem Meer hab ich eine")
            
say("Menge Perlen jeder art erbeutet! Zusätlich")
            
say("habe ich einen Weg gefunden dich weiser und")
            
say("stärker zu machen! Wie wärs: du gibst mir")
            
say("meine ohren wieder und ich Behlone dich")
            
say("dementsprechend!")
            
            
local b = select ("Aye" , "Nay")
            if 
b == 2 then
                
return
            
            elseif 
a == 1 then
                say_title
("Tanaka:")
                
say:("Ich wusste das du wie ein Pirat denkst!")
                
say:("Hier mein Angebot:")
                
say:("Für 10 meiner Ohren bekommst du eine Perle")
                
say:("deiner Wahl, für 20 meiner Ohren bekommst")
                
say:("du ein levelup von mir!")
                
say:("Für was enscheidest du dich?")
            
                
local b = select ("Die Perlen , Das Level")
            
                if 
b == 1 then
                    say_title
("Tanaka:")
                    
say("Aha Reichtum geht dir also über Weisheit he?")
                    
say("Ein richtiger Pirat also!")
                    
                    if 
pc.count_item() 30202 < 10 then                    
                        say
("")
                        
say("")
                        
say("Du alter Schummler! du hast garkeine 10 meiner Ohren!")
                        return
                
                    elseif 
pc.count_item() 30202 >= 10 then
                        say
("Na gut welche Perle möchtest du?")
                        
                        
local p = ("Weiße Perle" , "Blaue Perle" , "Rote Perle" , "Abbrechen")
                        
                        if 
p == 1 then
                        pc
.removeitem("30202", 10)
                        
pc_giveitem2(27992)
                        
say_title("Tanaka:")
                        
say("So da haste die Perle")
                        
say("")
                        
say("")
                        
say("")
                        
say_title("Weiße Perle erhalten")
                        
wait()
                         
                        elseif 
p == 2 then
                        pc
.removeitem("30202", 10)
                        
pc_giveitem2(27993)
                        
say_title("Tanaka:")
                        
say("So da haste die Perle")
                        
say("")
                        
say("")
                        
say("")
                        
say_title("Blaue Perle erhalten")
                        
wait()
                        
                        elseif 
p == 3 then
                        pc
.removeitem("30202", 10)
                        
pc_giveitem2(27994)
                        
say_title("Tanaka:")
                        
say("So da haste die Perle")
                        
say("")
                        
say("")
                        
say("")
                        
say_title("Rote Perle erhalten")
                        
wait()
                        
                        elseif 
p == 4 then
                            
return
                        
                    
end                    
                
elseif b == 2 then
                    say_title
("Tanaka:")
                    
say("Aha Weisheit geht dir vor Reichtum he?")
                    
say("Ein Richtiger Ritter bist du ja!")
                    
                    if 
pc.count_item() 30202 < 20 then
                        say
("Du alter Schummler!")
                        
say("Du hast garkeine 20 meiner Ohren!")
                        return
                    
                    elseif 
pc.count_item() 30202 >= 20 then
                        say
("So also 1 level gegen 20 ohren richtig?")
                        
                        
local t = select ("Ahjo mach schon" , "habs mir anders überlegt")
                        
                        if 
t == 2 then
                            say_title
("Tanaka:)
                            say("
Kielholen lassen sollt ich dich!")
                            say("
Und jetzt verschwinde!")
                            return
                            
                            
                    
                    pc.removeitem("
30202" , 20)
                    pc.give_exp_perc(100)
                        say_title("
Tanaka:")
                        say("
So bitte schön dein level wie Versprochen")
                        say("")
                        say("")
                        say("")
                        say_title("
Du wurdest level-up!)
                        
wait()
                    
end
                end    
            end            
        end        
    end            
end 
Tool zeigt folgendes an:
Wie immer ein End Fehler -.-
aber ich find das fehlende end immer nicht :(
berichtiger kriegt ein thx (ist ja wohl das mindeste :D )

PHP Code:
Quest     = 1
State      
= 1
When     
= 1
Funktion     
= 0
For     = 0
If            = 7
End         
= 8
"            = 158
(            = 86
)            = 86
[            = 0
]            = 0

Check 1    = ok
Check 2    = ok
Check 3    = ok
Check 4    = Quest/State/When End Fehler 
12/04/2010 12:21 CoreDump#975
achte auf die zeilenumbrüche!
und du hast mehrmals die "local b select"
Die End-Fehler ausgebessert