DT Quest Fehler

06/25/2012 12:35 XxKeynanxX#1
Hallo liebe Com. :)

Ich habe folgendes Problem:

In meiner DT Quest kann man nur 1 mal ein Item auf den schmied ziehen danach akzeptiert er nicth mehr kann mir jemand diesen Fehler beheben?
Hier ist die Quest mal:

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)*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 deviltower_man
.chat.locale.deviltower_man_chat begin
            say_title
("Wächter des Dämonturmes")
            if 
pc get_level ( ) < 40 then 
                say
("Du hast noch nicht genügend Erfahrung gesammelt.")
                
say("Komme wieder, wenn du Level 40 bist!"
                return
            
end
            say
("Möchtest du den Dämonenturm betreten?"
            
local s select ("Betreten""Abbrechen"
            if 
== 1 then 
                pc
.warp (216500727000)                 
            
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)  -- Die Karte der Zin Grotte wurde aus deinem Inventar entfernt
        pc
.remove_item(30302,mapto7)

        
local boxto7pc.count_item(30300)  -- Die Unbekannte Alte Kiste wurde aus deinem Inventar entfernt
        pc
.remove_item(30300,boxto7)

        
d.new_jump_all(66special.devil_tower[1][1], special.devil_tower[1][2])
        
d.regen_file("data/dungeon/deviltower2_regen.txt")
        
d.set_warp_at_eliminate(4d.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(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/deviltower4_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)
        -- 
¦A²{¤j¶q©Çª«¤Î»s³y¯u¥ÛÀY©M°²¥ÛÀY
        
--d.regen_file("data/dungeon/deviltower4_regen.txt")
        
local positions deviltower_zone.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("Findet den richtigen Metinstein und zerstört ihn.");
        
d.notice("Die falschen Metinsteine werden verschwinden!");
        
d.notice("Ihr habt 15 Minuten zeit!");
    
end

    when devil_stone4_fail1
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Verbleibende Zeit: 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("Verbleibende Zeit: 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.notice("Ihr werdet nun nach draußen teleportiert")
        
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("Der falsche Metinstein ist verschwunden..");
                
end
            end
            end
        
else
            --
d.clear_regen()
            --
d.regen_file("data/dungeon/deviltower5_regen.txt")
            
server_timer("devil_stone4_end"5get_server_timer_arg())
            
d.notice("Ihr habt den richtigen Metinstein zerstört.");
            
d.notice("Ihr werdet nun in die nächste Etage 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'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("Du bist nun in der 5. Ebene")
        
d.notice("Öffne alle Alten Siegel um in die nächste Ebene zu gelangen.")
        
d.notice("Du hast 20 Minuten Zeit um alle Siegel zu öffnen.")
        
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())

        -- 
bla bla
        d
.set_regen_file("data/dungeon/deviltower5_regen.txt")

        -- 
bla bla 2
        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("Verbleibende Zeit: 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("Verbleibende Zeit: 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("Verbleibende Zeit: 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.notice("Ihr werdet nun nach draußen teleportiert")
        
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 
== KILL_COUNT_FOR_DROP_KEY then
        
-- bla bla 3
        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/deviltower6_regen.txt")

        
d.notice("Ihr habt alle alten Siegel geöffnet. Ihr werdet nun")
        
d.notice("in die 6. Ebene teleportiert.")
        
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("Es verbleibt eine Anzahl von "..d.getf("stone_count").." Siegeln")
        
end
    end

    when devil_stone6
.kill begin
        
-- bla bla 4
        
-- bla bla 5
        
--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

    
--------------------------------------
    -- 
bla bla 6
    
--------------------------------------

    
when 20074.chat."Die höheren Etagen.." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        say
(""..mob_name(20074).."")
        
say("Ihr möchtet in die 7.Etage?")
        
say("Ihr haben Glück! Heute erlaube ich es ihnen vielleicht!")
        
say("Aber voher muss ich euch noch prüfen..")
        
say("Mal sehen..")
        
wait()
        if 
pc.level >=75 then
            say
("Ich erlaube euch weiterzugehen!")
            
say("Viel Glück und passt auf euch auf da oben!")
            
timer("devil_jump_7"6)
            return
        
end
        say
("Betreten der 7.Etage nicht erlaubt!")
        
say("Ihr seid nicht qualifiziert genug!")
        
say("Erreicht Level 75 oder höher,")
        
say("damit ihr eure Fertigkeiten steigern könnt")
        
say("und kommt dann wieder!")
        
wait()
        
pc.warp(590500110500)
        return
    
end
    when 20075.chat
."Die höheren Etagen.." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        say
(""..mob_name(20075).."")
        
say("Ihr möchtet in die 7.Etage?")
        
say("Ihr haben Glück! Heute erlaube ich es ihnen vielleicht!")
        
say("Aber voher muss ich euch noch prüfen..")
        
say("Mal sehen..")
        
wait()
        if 
pc.level >=75 then
            say
("Ich erlaube euch weiterzugehen!")
            
say("Viel Glück und passt auf euch auf da oben!")
            
timer("devil_jump_7"6)
            return
        
end
        say
("Betreten der 7.Etage nicht erlaubt!")
        
say("Ihr seid nicht qualifiziert genug!")
        
say("Erreicht Level 75 oder höher,")
        
say("damit ihr eure Fertigkeiten steigern könnt")
        
say("und kommt dann wieder!")
        
wait()
        
pc.warp(590500110500)
        return
    
end
    when 20076.chat
."Die höheren Etagen.." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        say
(""..mob_name(20076).."")
        
say("Ihr möchtet in die 7.Etage?")
        
say("Ihr haben Glück! Heute erlaube ich es ihnen vielleicht!")
        
say("Aber voher muss ich euch noch prüfen..")
        
say("Mal sehen..")
        
wait()
        if 
pc.level >=75 then
            say
("Ich erlaube euch weiterzugehen!")
            
say("Viel Glück und passt auf euch auf da oben!")
            
timer("devil_jump_7"6)
            return
        
end
        say
("Betreten der 7.Etage nicht erlaubt!")
        
say("Ihr seid nicht qualifiziert genug!")
        
say("Erreicht LvL 75 oder höher,")
        
say("damit ihr eure Fertigkeiten steigern könnt")
        
say("und kommt dann wieder!")
        
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/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(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
            
-- bla bla 7
            game
.drop_item(303021)
            
d.clear_regen()
        else
            -- 
bla bla 8
            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
        
-- bla bla 9
        say
("Die Karte wird euch alle in die nächste Ebene")
        
say("des Dämonenturms bringen.")
        
pc.remove_item("30302"1)
        
timer("devil_jump_8"6)
        
d.clear_regen()
    
end
                        
    
--------------------------------------------
    -- 
bla bla 10
    
--------------------------------------------
    
when devil_jump_8.timer begin
        d
.setf("level"8)
        
d.jump_all(2048+5906656+403)
        
d.set_regen_file("data/dungeon/deviltower8_regen.txt")
        
d.spawn_mob(20366640460)
        
local _countpc.count_item(30302)-- bla bla 11
        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
                
-- bla bla 12
                game
.drop_item(303041)
            else
                -- 
bla bla 13
                game
.drop_item(303031)
            
end
        
else
            return
        
end
    end

    when 20366.take with item
.vnum == 30304 begin
        
-- bla bla 14
        npc
.purge()
        
item.remove()
        
timer("devil_jump_9"6)
    
end

    
---------------------------------------------
    -- 
bla bla 15
    
---------------------------------------------
    
when devil_jump_9.timer begin
        d
.setf("level"9)
        
d.jump_all(2048+5906656+155)
        
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
.kill_all()
        
timer("devil_end_jump"60)
    
end

    when devil_end_jump
.timer begin
        d
.exit_all()
    
end
end
end 
MfG XxKeynanxX
06/25/2012 12:37 MetinLegende#2
die Funktion des dt schmieds hat aber nix mit der quest zu tun, die quest spawnt ihn nur. die Funktion wird in der game definiert
06/25/2012 13:26 XxKeynanxX#3
Ok und wie stelle ich eind as man mehr als nur 1mal Uppen kann ?
06/25/2012 13:27 DasKuchen#4
d.setqf("can_refine", 1)

Kannst du hochdrehen glaube ich.

d.setqf("can_refine", 1)

Kannst du hochdrehen glaube ich.
06/25/2012 13:40 MetinLegende#5
Ich glaube nicht, ich denke eher dass man den Schmied nur benutzen kann wenn die questflag"can_refine" auf 1
06/25/2012 14:08 XxKeynanxX#6
Ja aber wenn ich ein Item drauf ziehe steht da "das ich i-wie nur einmal während edder Deviltower_quest (ist ja dt quest) kann) deshalb