Problem Daroo Files 1678 Mega-Edition

02/07/2012 17:06 WHATTHAFAIL#1
Hey,

ich hab ein Problem mit den Files.
Bei mir kann ich einfach nicht h鐬er als bis Etage 2 in den DT.
Dann werd ich nicht mehr geportet...

Hoffe ihr k霵nt mir helfen.

MfG,
WHATTHAFAIL
02/07/2012 17:26 .sL1x##2
Also komischerweise hatte ich den Fehler nicht.
Vielleicht liegt es an dem Client oder an den Serverfiles.
Was passiert wenn er versucht dich zu Porten ?
Bleibst du auf der Etage oder was geschieht ?
02/07/2012 17:34 WHATTHAFAIL#3
Ja, ich bleib einfach auf der Etage, ohne dass ich geportet werde...
Was f�r einen Client benutzt du?
02/07/2012 17:51 darkfr3ak#4
ersetz mal bitte die devil_tower.quest mit dieser hier.
Hatte das Problem auch, aber hiermit klappts ohne Probleme.

PHP Code:
quest deviltower_zone begin
    state start begin
    when login begin
        
if pc.get_map_index() == 66 then
            
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)*100, 65)
            
end
            pc
.set_warp_location(65, 5376+532, 512+596+4)
        elseif 
pc.get_map_index() >= 660000 and pc.get_map_index() <= 670000 then
            pc
.set_warp_location(65, 5376+532, 512+596+4)
        
end
    end
    when deviltower_man
.chat.locale.deviltower_man_chat begin
        
if pc.get_level() < 40 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 
s == 1 then
            
-- warp into!
            
pc.warp(216500,727000)
        
end
        end
    end
    when deviltower_man
.chat."Reichsteleport" begin
        local map
=pc.get_map_index()
        
local warp=0
        local s
=0
        local check
=0
        say
("Wohin m鐼htest du?")
        if 
map!=1 and map!=21 and map!=41 then
            check
=1
            s
=select("Rotes Reich", "Gelbes Reich", "Blaues Reich", "Abbrechen")
            
warp=s
            
if s==4 then
                
return
            
end
        end
        
if map==1 then
            s
=select("Gelbes Reich", "Blaues Reich", "Abbrechen")
            if 
s==1 then
                warp
=2
            
elseif s==2 then
                warp
=3
            end
        
elseif map==21 then
            s
=select("Rotes Reich", "Blaues Reich", "Abbrechen")
            if 
s==1 then    
                warp
=1
            
elseif s==2 then
                warp
=3 
            end
        
elseif map==41 then
            s
=select("Rotes Reich", "Gelbes Reich", "Abbrechen")
            
warp=s
        end
        
if s==3 and check==0 then
            
return
        
end
        
if warp==1 then
            pc
.warp(474200, 954400)
        elseif 
warp==2 then
            pc
.warp(63200, 166100)
        elseif 
warp==3 then
            pc
.warp(960100, 268700)
        
end
    end
    when devil_stone1
.kill begin
        timer
("devil_stone1_1", 5)
    
end
    when 30121.take with item
.vnum == 30185 begin
        item
.remove()
        
d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
        
d.regen_file("data/dungeon/deviltower2_2_regen.txt")
        
d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_2_regen.txt")
    
end
    when 30121.chat
."Wer bist du?" begin
        say
("Sei gegr�腷 Fremder!")
        
say("Ich bin der W踄hter der zweiten, geheimem Ebne")
        
say("Um sie zu betreten, musst du mir")
        
say("ein spezeilles Item bringen")
        
say("Dies kriegst du nur vom Blauen Tod!")
        
say_item("Schwarzes Eis", 30185, "")
        
wait()
        
say("Zieh es einfach auf mich,")
        
say("und ich werde dir und deinen Gef鄣rten")
        
say("den Weg in die geheime Ebne zeigen...")
    
end
    when devil_stone1_1
.timer begin
        local mapto7
= pc.count_item(30302)  -- 消滅不知是否存在的真�`靈塔
        pc.remove_item(30302,mapto7)

        local boxto7= pc.count_item(30300)  -- 消滅不知是否存在的不知名的箱子
        pc.remove_item(30300,boxto7)
        d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
        d.regen_file("data/dungeon/deviltower2_regen.txt")
        d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_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(6, d.get_map_index(), 100, 100)
        --d.set_warp_at_eliminate(4, 65, 5376+532, 512+596+4)
        d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
        d.check_eliminated()
        --d.exit_all()
    end
    function get_4floor_stone_pos()
        local positions = {
        {368, 629},
        {419, 630},
        {428, 653},
        {422, 679},
        {395, 689},
        {369, 679},
        {361, 658},
        }
        for i = 1, 6 do
        local j = number(i, 7)
        if i != j then
            local t = positions[i];
            positions[i] = positions[j];
            positions[j] = t;
        end
        end
        --for i = 1, 7 do
    --    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)
        -- 再現大量怪物及製造真石頭和假石頭
        --d.regen_file("data/dungeon/deviltower4_regen.txt")
        local positions = deviltower_zone.get_4floor_stone_pos()
        for i = 1, 6 do
        chat(positions[i][1], positions[i][2])
        d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
        end
        chat(positions[7][1], positions[7][2])
        local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
        chat(vid)
        d.set_unique("real", vid)
        server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
        server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())

        d.notice("Du hast den Metin des Teufels");
        d.notice("Zerst顤t!");
        d.notice("Du hast nun 15Min Zeit, den Richtigen");
        d.notice("Metin des Sturzes zu zerst顤en!");
d.notice("Nur duch Zerst顤ung ddes Richtigen kommtst du weiter!");
    end

    when devil_stone4_fail1.server_timer begin
        if d.select(get_server_timer_arg()) then
        d.notice("Es verbleiben noch 10min!")
        server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
        end
    end

    when devil_stone4_fail2.server_timer begin
        if d.select(get_server_timer_arg()) then
        d.notice("Es verbleiben noch 5min!")
        server_timer('devil_stone4_fail', 5*60, get_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 i = 1, 6 do
            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" .. i, 1)
                d.notice("Die falschen Metinsteine Verschwinden...");
                end
            end
            end
        else
            --d.clear_regen()
            --d.regen_file("data/dungeon/deviltower5_regen.txt")
            server_timer("devil_stone4_end", 5, get_server_timer_arg())
            d.notice("Du hast den Richtigen Metin des Sturzes zerst顤t!");
            d.notice("Du wirst in den 5ten Stock Teleportiert..")
            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', 1, get_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("Du bist nun im 5ten Stock")
        d.notice("Auf dieser Ebene ist viel K霵nen gefragt!")
        d.notice("Einige Monster droppen einen 'Schl�sselsein'")
        d.notice("Ziehe diesen Stein auf die S酳len,")
d.notice("und komme auf Ebene6!")

        d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
        server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
        clear_server_timer('devil_stone4_update', get_server_timer_arg())

        -- 5樓繼續再現
        d.set_regen_file("data/dungeon/deviltower5_regen.txt")

        -- 5樓封印石再現
        d.spawn_mob(20073, 421, 452)
        d.spawn_mob(20073, 380, 460)
        d.spawn_mob(20073, 428, 414)
        d.spawn_mob(20073, 398, 392)
        d.spawn_mob(20073, 359, 426)
        end
    end
    when devil_stone5_fail1.server_timer begin
        if d.select(get_server_timer_arg()) then
        d.notice("蛀s verbleiben noch 15min!")
        server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())
        end
    end

    when devil_stone5_fail2.server_timer begin
        if d.select(get_server_timer_arg()) then
        d.notice("Es verbleiben noch 10min!")
        server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())
        end
    end

    when devil_stone5_fail3.server_timer begin
        if d.select(get_server_timer_arg()) then
        d.notice("蛀s verbleiben noch 5min!")
        server_timer('devil_stone5_fail', 5*60, get_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/deviltower5_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 n == KILL_COUNT_FOR_DROP_KEY then
        -- 掉下鎖匙
        game.drop_item(50084, 1)
        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/deviltower6_regen.txt")

        d.notice("Du hast das Siegel ge鐪fnet!")
        d.notice("Du wirst nun auf die 6te Ebene zu dem D鄝onenk霵ig geportet!")
        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("Du hast ein Siegel ge鐪fnet! "..d.getf("stone_count").." verbleiben noch!")
        end
    end

    when devil_stone6.kill begin
    
        -- Geschickt, um eine Karte, wo 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*60, 65, 5376+532, 512+596+4)
        
        d.notice("Der D鄝onenk霵ig wurde get飆et. In wenigen Sekunden")
        d.notice("wird dich ein Schmied belohnen.")
        
        timer("schmied_spawn",10)
        
        --d.check_eliminated()
        --local reward_alchemist = {20074, 20075, 20076}
        --d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
        --d.setqf("can_refine", 1)
    end
    
    when schmied_spawn.timer begin
        d.check_eliminated()
        local reward_alchemist = {20074, 20075, 20076}
        d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
        d.setqf("can_refine", 1)
    end
    --------------------------------------
    -- 由進入7樓至到達8樓之前
    --------------------------------------

    when 20074.chat."Zu den H鐬eren Stockwerken.." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000begin
        npc.lock()
        say(""..mob_name(20074).."")
        say("In den H鐬eren Ebenen des Turms")
        say("wartet der Sensenmann auf dich!")
        say("Du musst mindestens Lvl 75 sein!")
        say("Bist du sicher das du voranschreiten willst?")
        wait()
        if pc.level >=75 then
        say("Du bist mutig..")
        say("Ich werde dich Teleportieren...")
        say("")
        npc.purge()
            timer("devil_jump_7", 6)
            return
        end
            say("Du bist unter Level 75!")
            say("Du wirst weiter oben nur Grausame Qualen zusp�ren bekommen...")
            say("Ich Teleportiere dich jetzt runter...zu deiner Sicherheit...")
        say("")
        wait()
        pc.warp(590500, 110500)
        return
    end
    when 20075.chat."Zu den H鐬eren Stockwerken.." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        npc.lock()
        say(""..mob_name(20075).."")
        say("In den H鐬eren Ebenen des Turms")
        say("wartet der Sensenmann auf dich!")
        say("Du musst mindestens LV75 sein!")
        say("Bist du sicher das du voranschreiten willst?")
        wait()
        if pc.level >=75 then
        say("Du bist mutig..")
        say("Ich werde dich Teleportieren...")
        say("")
        npc.purge()
            timer("devil_jump_7", 6)
            return
        end
            say("Du bistt unter Level75!")
            say("Du wirst weiter oben nur Grausame Qualen zusp�ren bekommen...")
            say("Ich Teleportiere dich jetzt runter...zu deiner Sicherheit...")
        say("")
        wait()
        pc.warp(590500, 110500)
        return
    end
    when 20076.chat."Zu den H鐬eren Stockwerken.." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        npc.lock()
        say(""..mob_name(20076).."")
        say("In den H鐬eren Ebenen des Turms")
        say("wartet der Sensenmann auf dich!")
        say("Du musst mindestens LV75 sein!")
        say("Bist du sicher das du voranschreiten willst?")
        wait()
        if pc.level >=75 then
        say("Du bist mutig..")
        say("Ich werde dich Teleportieren...")
        say("")
        npc.purge()
            timer("devil_jump_7", 6)
            return
        end
            say("Du bist unter Level 75!")
            say("Du wirst weiter oben nur Grausame Qualen zusp�ren bekommen...")
            say("Ich Teleportiere dich jetzt runter...zu deiner Sicherheit...")
        say("")
        wait()
        pc.warp(590500, 110500)
        return
    end

   when devil_jump_7.timer begin
        d.clear_regen()

        d.spawn_mob(8018, 639, 658)
        d.spawn_mob(8018, 611, 637)
        d.spawn_mob(8018, 596, 674)
        d.spawn_mob(8018, 629, 670)

        d.setf("level", 7)

        d.jump_all(2048+590, 6656+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/deviltower7_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(30300, 1)
    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
            -- 掉下真地圖
            game.drop_item(30302, 1)
            d.clear_regen()
        else
            -- 掉下假地圖
            game.drop_item(30301, 1)
            
        end
    end

    when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        -- 傳送到8樓
        say("Du wirst in den 7ten Stock Teleportiert..")
        pc.remove_item("30302", 1)
        timer("devil_jump_8", 6)
        d.clear_regen()
    end
                        
    --------------------------------------------
    -- 由進入8樓至到達9樓之前
    --------------------------------------------
    when devil_jump_8.timer begin
        d.setf("level", 8)
        d.jump_all(2048+590, 6656+403)
        d.set_regen_file("data/dungeon/deviltower8_regen.txt")
        d.spawn_mob(20366, 640, 460)

        local _count= pc.count_item(30302)-- 消滅真�
`靈塔
        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(1, 5)
        if 
pct1 == 1 then
            local pct2 
= number(1, 10)
            if 
pct2 == 1 then
                
-- 掉下真鎖匙
                game
.drop_item(30304, 1)
            else
                -- 
掉下假鎖匙
                game
.drop_item(30303, 1)
            
end
        
else
            return
        
end
    end

    when 20366.take with item
.vnum == 30304 begin
        
-- 9樓封印解除
        npc
.purge()
        
item.remove()
d.kill_all()
        
timer("devil_jump_9", 6)
    
end

    
---------------------------------------------
    -- 
由進入9樓至結束
    
---------------------------------------------
    
when devil_jump_9.timer begin
        d
.setf("level", 9)
        
d.jump_all(2048+590, 6656+155)
d.clear_regen()
        
d.regen_file("data/dungeon/deviltower9_regen.txt")
    
end

    when 1093.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d
.notice("Du hast das Oberhaupt der D鄝onen get飆et...")
d.notice("Du bist wahrhaft ein m踄htiger k鄝pfer...")    
d.kill_all()
        
timer("devil_jump_10", 6)
    
end
    
---------------------------------------------
    -- 
由進入9樓至結束
    
---------------------------------------------
    
when devil_jump_10.timer begin
        d
.setf("level", 10)
d.clear_regen()
        
d.jump_all(2048+590, 6656+403)
d.regen_file("data/dungeon/deviltower10_regen.txt")
d.spawn_mob(1094, 602, 442)
    
end

    when 1094.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d
.check_eliminated()
        
timer("devil_jump_11", 6)
    
end
    
---------------------------------------------
    -- 
由進入9樓至結束
    
---------------------------------------------
    
when devil_jump_11.timer begin
        d
.setf("level", 11)
d.clear_regen()
        
d.jump_all(2048+590, 6656+155)
d.regen_file("data/dungeon/deviltower11_regen.txt")
d.spawn_mob(1095, 610, 194)
    
end


    when 1095.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
    d
.kill_all()
    
d.kill_all()
d.notice("Du hast das geschafft, was keiner gedacht hat...")
d.notice("Du hast den Blauten Tod get飆et...")
d.notice("Nun erscheinen 3 Schmiede...")
d.notice("In 2min wirst du herraus telepotiert!")
        
d.check_eliminated()
--
d.spawn_mob(20366, 690, 158);
d.spawn_mob(20074,600,168,0,0,1);
d.spawn_mob(20075,605,178,0,0,1);
d.spawn_mob(20076,610,188,0,0,1);
d.setqf("can_refine", 3)
timer("lolbai", 60)

end
when lolbai
.timer begin
    d
.exit_all()
end
end
end 
02/07/2012 18:44 WHATTHAFAIL#5
Der Anfang der Quest funzt bei den Daroo Files nicht (mit in den DT porten), aber wenn man es erg鄚zt klappt alles *Thx given* :)
02/07/2012 19:10 SkyLiine�#6
entwerder in fillezilla map verbuggt oder Quest fail
04/10/2012 21:53 sagir4711#7
Kann mir jemand die Komplette devil_tower.quest mit der angepassten warp funktion hochladen :D W酺e Nett ;)
04/17/2012 20:41 napcap#8
brauche entbugte devil_tower.quest f�r DAROO files 2011