[Hilfe]Deviltower2 Quest

12/19/2010 18:08 .Colossus.#1
Hi,
ich hab brauche schon wieder Hilfe.
Allso folgendes ich arbeite gerade an einem 2.Dt bloß ich habe irgendein Fehler in der Quest wenn man den 50er metin killt portet es einen nicht hoch.
Folgende Daten zur Map:
Map_index:200
BasePosition:28129200 28129200
Die regen.txt stimmen schon, daran liegt es nicht


PHP Code:
quest deviltower2 begin
    state start begin
    when login begin
        
if pc.get_map_index() == 66 then
        
-- Nicht in einer Etage, die wieder nach drau¡¼n .
        -- 
Layer Range 
        
-- 1F   88  577  236 737
        
-- 2F   91  343  238 504
        
-- 3F  104  107  248 269
        
if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
            pc
.warp((5376+532)*100, (512+596+4)*10065)
        
end
        pc
.set_warp_location(655376+532512+596+4)
        elseif 
pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
        pc
.set_warp_location(655376+532512+596+4)
        
end
    end
    when 30122.chat
.locale.deviltower_man_chat begin
        
if pc.get_level() < 65 then
        say
(locale.deviltower_man_say_you_cant)
        else
        
say(locale.deviltower_man_say)
        
local s select(locale.deviltower_enter,locale.deviltower_no_enter)
        if 
== 1 then
            
-- warp into!
            
pc.warp(28129200,28129200)
        
end
        end
    end
    when devil_stone1
.kill begin
        timer
("devil_stone1_1"6)
    
end
    when devil_stone1_1
.timer begin
        local mapto7
pc.count_item(30302)  -- Ich weiß nichtdas wahre Tilgung der die Existenz der Seele des Turms 
        pc
.remove_item(30302,mapto7)

        
local boxto7pc.count_item(30300)  -- Beseitigung des unbekannten weiß nichtob es sich um ein Feld 
        pc
.remove_item(30300,boxto7)

        
d.new_jump_all(66special.devil_tower[1][1], special.devil_tower[1][2])
        
d.regen_file("data/dungeon/dt22_regen.txt")
        
d.set_warp_at_eliminate(4d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/dt23_regen.txt")
    
end
    
--when devil_stone2.kill begin
    
--d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])
    --
end
    when devil_stone3
.kill begin
        
--d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])
        --
d.set_exit_all_at_eliminate(6)
        --
d.set_warp_at_eliminate(6d.get_map_index(), 100100)
        --
d.set_warp_at_eliminate(4655376+532512+596+4)
        
d.set_warp_at_eliminate(4d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/dt24_regen.txt")
        
d.check_eliminated()
        --
d.exit_all()
    
end
    
function get_4floor_stone_pos()
        
local positions = {
        {
368629},
        {
419630},
        {
428653},
        {
422679},
        {
395689},
        {
369679},
        {
361658},
        }
        for 
1do
        
local j number(i7)
        if 
!= j then
            local t 
positions[i];
            
positions[i] = positions[j];
            
positions[j] = t;
        
end
        end
        
--for 1do
    --    
positions[i][1] = positions[i][1] * 100
    
--    positions[i][2] = positions[i][2] * 100
     
--   end
        
return positions
    end
    when 8016.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        d
.setf("level"4)
        -- 
Reproduzieren eine gro¡¼ Anzahl von Monstern und Herstellung von wahr und falsch Steine Steine 
        
--d.regen_file("data/dungeon/dt24_regen.txt")
        
local positions deviltower2.get_4floor_stone_pos()
        for 
1do
        
chat(positions[i][1], positions[i][2])
        
d.set_unique("fake" .. d.spawn_mob(8017positions[i][1], positions[i][2]))
        
end
        chat
(positions[7][1], positions[7][2])
        
local vid d.spawn_mob(8017positions[7][1], positions[7][2])
        
chat(vid)
        
d.set_unique("real"vid)
        
server_loop_timer('devil_stone4_update'10pc.get_map_index())
        
server_timer('devil_stone4_fail1'5*60pc.get_map_index())

        
d.notice("Hier ist der 4. Etage,");
        
d.notice("findet den Echten Metinstein");
        
d.notice("innerhalb von 15 Minuten,");
        
d.notice("Sonst werdet ihr vor die Tür gesetzt.");
    
end

    when devil_stone4_fail1
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Noch 10 Minuten!")
        
server_timer('devil_stone4_fail2'5*60get_server_timer_arg())
        
end
    end

    when devil_stone4_fail2
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Noch 5 Minuten!")
        
server_timer('devil_stone4_fail'5*60get_server_timer_arg())
        
end
    end

    when devil_stone4_fail
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Die Zeit ist abgelaufen")
        
d.exit_all()
        
clear_server_timer('devil_stone4_update'get_server_timer_arg())
        
end
    end

    when devil_stone4_update
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        
if not d.is_unique_dead("real"then
            
for 1do
            if 
d.getf("fakedead" .. i) == 0 then
                
if d.unique_get_hp_perc("fake" .. i) < 50 then
                d
.purge_unique("fake" .. i)
                
d.setf("fakedead" .. i1)
                
d.notice("Ein Falscher Metinstein verschwindet.");
                
end
            end
            end
        
else
            --
d.clear_regen()
            --
d.regen_file("data/dungeon/dt25_regen.txt")
            
server_timer("devil_stone4_end"5get_server_timer_arg())
            
d.notice("Glückwunsch Euch ist es geglückt den Echten Metinstein");
            
d.notice("zu finden... Auf in die nächste Etage.")
            
clear_server_timer('devil_stone4_fail1'get_server_timer_arg())
            
clear_server_timer('devil_stone4_fail2'get_server_timer_arg())
            
clear_server_timer('devil_stone4_fail'get_server_timer_arg())
        
end
        
else
        
server_timer('devil_stone4_stop_timer'1get_server_timer_arg())
        
end
    end

    when devil_stone4_stop_timer
.server_timer begin
        clear_server_timer
('devil_stone4_update'get_server_timer_arg())
    
end

    when devil_stone4_end
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.setf("level"5)
        
d.setf("stone_count"5)
        
d.notice("Willkommen auf der 5.ten Etage")
        
d.notice("Tötet alle Monster denn manche Tragen den Schlüssel")
        
d.notice("für die nächste Etage mit sich")
        
d.notice("Öffnet alle Säulen mit hilfe der Schlüsselsteine (Ihr habt 20 Minuten)")
        
d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
        
server_timer('devil_stone5_fail1'5*60get_server_timer_arg())
        
clear_server_timer('devil_stone4_update'get_server_timer_arg())

        -- 
5. Stockweiter zu reproduzieren 
        d
.set_regen_file("data/dungeon/dt25_regen.txt")

        -- 
5. StockSeal Stone Reproduktion 
        d
.spawn_mob(20073421452)
        
d.spawn_mob(20073380460)
        
d.spawn_mob(20073428414)
        
d.spawn_mob(20073398392)
        
d.spawn_mob(20073359426)
        
end
    end
    when devil_stone5_fail1
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Noch 15 Minuten.")
        
server_timer('devil_stone5_fail2'5*60get_server_timer_arg())
        
end
    end

    when devil_stone5_fail2
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Noch 10 Minuten.")
        
server_timer('devil_stone5_fail3'5*60get_server_timer_arg())
        
end
    end

    when devil_stone5_fail3
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Noch 5 Minuten.")
        
server_timer('devil_stone5_fail'5*60get_server_timer_arg())
        
end
    end

    when devil_stone5_fail
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Die Zeit ist abgelaufen.")
        
d.exit_all()
        
end
    end

    
--when devil_stone4.kill begin
        
--d.setf("level"5)
        --
d.setf("stone_count"4)
        --
d.clear_regen()
        --
d.regen_file("data/dungeon/dt25_regen.txt")
        --
d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2])
    --
end

    when 1062.kill with pc
.in_dungeon() and d.getf("level") == 5 begin
        local KILL_COUNT_FOR_DROP_KEY 
50
        
--if is_test_server() then
        
--KILL_COUNT_FOR_DROP_KEY 1
        
--end
        local n 
=d.getf("count") + 1
        d
.setf("count"n
        if 
== KILL_COUNT_FOR_DROP_KEY then
        
-- Falling Tasten 
        game
.drop_item(500841)
        
d.setf("count"0)
        
end
    end
    when devil_stone5
.take with item.vnum == 50084 begin
        npc
.purge()
        
item.remove()
        
d.setf("stone_count"d.getf("stone_count") - 1)
        if 
d.getf("stone_count") <= 0 then
        d
.setf("level"6)
        
d.clear_regen()
        
d.regen_file("data/dungeon/dt26_regen.txt")

        
d.notice("Glückwunsch ihr habt alle Säulen Geöffnet")
        
d.notice("Ihr werdet in die nächste Etage aufsteigen.")
        
d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
        
clear_server_timer('devil_stone5_fail1'get_server_timer_arg())
        
clear_server_timer('devil_stone5_fail2'get_server_timer_arg())
        
clear_server_timer('devil_stone5_fail3'get_server_timer_arg())
        
clear_server_timer('devil_stone5_fail'get_server_timer_arg())
        else
        
d.notice("Säule entfernt... Noch "..d.getf("stone_count").."Viel Glück")
        
end
    end

    when devil_stone6
.kill begin
        
-- Geschicktum eine Kartewo die Verfeinerung St
        -- 
Ansonsten ¡¼fnen Sie ein neues Lian Sheng 
        
--d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
        
d.kill_all()
       -- 
d.set_warp_at_eliminate(3*60655376+532512+596+4)
        
d.check_eliminated()
        
local reward_alchemist = {200742007520076}
        
d.spawn_mob(reward_alchemist[number(1,3)], 425216);
        
d.setqf("can_refine"1)
    
end

    
--------------------------------------
    -- 
7 D kommt man aus dem Zugriff vor dem 8. Stock 
    
--------------------------------------

    
when 20074.chat."Die Oberen Stockwerke" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        say
(""..mob_name(20074).."")
        
say("Möchtet ihr Weiter herrauf")
        
say("und euer können weiterhin unter Beweiss stellen?")
        
say("Ich jedenfalls bleibe hier")
        
say("")
        
wait()
        if 
pc.level >=75 then
            say
("Ihr seid zumindest gross genug.")
            
say("Doch seid ihr auch Tapfer genug?")
            
say("Es gibt nur eine möglichkeit das festzustellen.")
            
timer("devil_jump_7"6)
            return
        
end
        say
("Ihr seid leider noch nicht ")
        
say("gross genug um weiter aufzusteigen")
        
say("Übt noch ein wenig und kommt dann wieder.")
        
say("Viel Glück auf eurer Reise.")
        
say("")
        
wait()
        
pc.warp(590500110500)
        return
    
end
    when 20075.chat
."Mit Bezug auf den oberen Turm .." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        say
(""..mob_name(20075).."")
        
say("Möchtet ihr Weiter herrauf")
        
say("und euer können weiterhin unter Beweiss stellen?")
        
say("Ich jedenfalls bleibe hier")
        
say("")
        
wait()
        if 
pc.level >=75 then
            say
("Ihr seid zumindest gross genug.")
            
say("Doch seid ihr auch Tapfer genug?")
            
say("Es gibt nur eine möglichkeit das festzustellen.")
            
timer("devil_jump_7"6)
            return
        
end
        say
("Ihr seid leider noch nicht ")
        
say("gross genug um weiter aufzusteigen")
        
say("Übt noch ein wenig und kommt dann wieder.")
        
say("Viel Glück auf eurer Reise.")
        
say("")
        
wait()
        
pc.warp(590500110500)
        return
    
end
    when 20076.chat
."Mit Bezug auf den oberen Turm .." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        say
(""..mob_name(20076).."")
        
say("Möchtet ihr Weiter herrauf")
        
say("und euer können weiterhin unter Beweiss stellen?")
        
say("Ich jedenfalls bleibe hier")
        
say("")
        
wait()
        if 
pc.level >=75 then
            say
("Ihr seid zumindest gross genug.")
            
say("Doch seid ihr auch Tapfer genug?")
            
say("Es gibt nur eine möglichkeit das festzustellen.")
            
timer("devil_jump_7"6)
            return
        
end
        say
("Ihr seid leider noch nicht ")
        
say("gross genug um weiter aufzusteigen")
        
say("Übt noch ein wenig und kommt dann wieder.")
        
say("Viel Glück auf eurer Reise.")
        
say("")
        
wait()
        
pc.warp(590500110500)
        return
    
end

   when devil_jump_7
.timer begin
        d
.clear_regen()

        
d.spawn_mob(8018639658)
        
d.spawn_mob(8018611637)
        
d.spawn_mob(8018596674)
        
d.spawn_mob(8018629670)

        
d.setf("level"7)

        
d.jump_all(2048+5906656+638)
    
end
    
    when 8018.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        local cont 
d.getf("7_stone_kill") + 1
        d
.setf("7_stone_kill"cont)

        if 
cont >= 4 then
            d
.setf("7_stone_kill"0)
            
d.set_regen_file("data/dungeon/dt27_regen.txt")
        
end    
    end

    when 8019.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        game
.drop_item(303001)
    
end

    when 30300.
use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        pc
.remove_item("30300"1)

        
local pct number(1,10)

        if 
pct == 1 then
            
-- Fall wahr Karte
            game
.drop_item(303021)
            
d.clear_regen()
        else
            -- 
Fall wahr Karte
            game
.drop_item(303011)
            
        
end
    end

    when 30302.
use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        
-- An der 8th Floor 
        say
("Sucht die Karte der Zin Grotte. Viel Glück.")
        
pc.remove_item("30302"1)
        
timer("devil_jump_8"6)
        
d.clear_regen()
    
end
                        
    
--------------------------------------------
    -- 
Von 8 F vor der Ankunft geben Sie die 9 F 
    
--------------------------------------------
    
when devil_jump_8.timer begin
        d
.setf("level"8)
        
d.jump_all(2048+5906656+403)
        
d.set_regen_file("data/dungeon/dt28_regen.txt")
        
d.spawn_mob(20366640460)
        
local _countpc.count_item(30302)-- True Tilgung Dead Turm 
        pc
.remove_item(30302,_count)
        
    
end

    when 1040.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        local pct1 
number(15)
        if 
pct1 == 1 then
            local pct2 
number(110)
            if 
pct2 == 1 then
                
-- Fall wahre Schl¡¼sel 
                game
.drop_item(303041)
            else
                -- 
Keys fiel 
                game
.drop_item(303031)
            
end
        
else
            return
        
end
    end

    when 20366.take with item
.vnum == 30304 begin
        
-- 9 F-Zeichen aufgehoben 
        npc
.purge()
        
item.remove()
        
timer("devil_jump_9"6)
    
end

    
---------------------------------------------
    -- 
9 F ein Endeindem Sie 
    
---------------------------------------------
    
when devil_jump_9.timer begin
        d
.setf("level"9)
        
d.jump_all(2048+5906656+155)
        
d.regen_file("data/dungeon/dt29_regen.txt")
    
end

    when 1093.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        d
.kill_all()
        
timer("devil_end_jump"60)
    
end

    when devil_end_jump
.timer begin
        d
.exit_all()
    
end
end
end 
Ich hoffe auf gute Lösungsvorschläge
12/19/2010 19:15 jon992#2
hmm gabs da nicht mal ein public deviltower2 mit quest ?

kann sein das ich mich irre :D
12/19/2010 19:24 .Colossus.#3
ne die is ne ganz normale dt quest allso die standard
12/19/2010 22:27 .SeVeN.#4
Hast ne PN.
HIlft dir hoffentlich ;)

MfG
12/22/2010 17:03 .Colossus.#5
nach nem Tipp von .Seven sollte ich folgendes machen
Quote:
d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
die 66 in 200 ändern(der map_index)

klappt aber leider auch nicht....
12/25/2010 15:39 .Colossus.#6
PUSH