antiblock
Elveron
  • Chatbox

    You don't have permission to chat.
    Load More
  • 0
Sign in to follow this  
zeruffus

Torre Demonios Bug

Question

Tenho a torre bug nao sobe no primeiro nivel da torre ajuda sfv

Share this post


Link to post
Share on other sites

3 answers to this question

  • 0

Tira quest , e bota de novo 

Share this post


Link to post
Share on other sites
antiblock
Cyphriun
  • 0

Aqui esta

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 logout begin
if pc.count_item(30300) >= 1 then
pc.remove_item(30300, pc.count_item(30300))
end
-- not used in the game
-- pc.remove_item(30301, pc.count_item(30301))
if pc.count_item(30302) >= 1 then
pc.remove_item(30302, pc.count_item(30302))
end
end

when deviltower_man.chat.gameforge.deviltower_zone._10_npcChat begin
if pc.get_level() < 40 then
say_title(gameforge.deviltower_zone._20_sayTitle)
say(gameforge.deviltower_zone._30_say)
else
say_title(gameforge.deviltower_zone._20_sayTitle)
say(gameforge.deviltower_zone._40_say)
local s = select(gameforge.locale.monkey_dungeon.enter, gameforge.locale.monkey_dungeon.no_enter)
if s == 1 then
pc.warp(216500,727000)
end
end
end
when devil_stone1.kill begin
timer("devil_stone1_1", 6)
end
when devil_stone1_1.timer begin
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_stone3.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
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()
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;
positions = positions[j];
positions[j] = t;
end
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)
local positions = deviltower_zone.get_4floor_stone_pos()

for i = 1, 6 do
test_chat(positions[1], positions[2])
d.set_unique("fake" .. i , d.spawn_mob(8017, positions[1], positions[2]))
end

test_chat(positions[7][1], positions[7][2])

local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
test_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())

notice_multiline(gameforge.deviltower_zone._50_dNotice,d.notice)

end

when devil_stone4_fail1.server_timer begin
if d.select(get_server_timer_arg()) then
notice_multiline(gameforge.deviltower_zone._60_dNotice,d.notice)
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
notice_multiline(gameforge.deviltower_zone._70_dNotice,d.notice)
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
notice_multiline(gameforge.deviltower_zone._80_dNotice,d.notice)
d.clear_regen()
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)
notice_multiline(gameforge.deviltower_zone._90_dNotice,d.notice)
end
end
end
else
server_timer("devil_stone4_end", 5, get_server_timer_arg())
--d.kill_all()
d.purge()
notice_multiline(gameforge.deviltower_zone._100_dNotice,d.notice)
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
clear_server_timer('devil_stone4_update', get_server_timer_arg())
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())

-- clear regen from memory when exit
d.clear_regen()

d.setf("level", 5)
d.setf("stone_count", 5)
notice_multiline(gameforge.deviltower_zone._110_dNotice,d.notice)
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())

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

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
notice_multiline(gameforge.deviltower_zone._120_dNotice,d.notice)
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
notice_multiline(gameforge.deviltower_zone._60_dNotice,d.notice)
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
notice_multiline(gameforge.deviltower_zone._70_dNotice,d.notice)
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
notice_multiline(gameforge.deviltower_zone._80_dNotice,d.notice)
d.exit_all()
end
end


when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin
local KILL_COUNT_FOR_DROP_KEY = 50
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")

notice_multiline(gameforge.deviltower_zone._130_dNotice,d.notice)
d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
local server_arg = d.get_map_index()
clear_server_timer('devil_stone5_fail1', server_arg)
clear_server_timer('devil_stone5_fail2', server_arg)
clear_server_timer('devil_stone5_fail3', server_arg)
clear_server_timer('devil_stone5_fail', server_arg)
else
d.notice(string.format(gameforge.deviltower_zone._140_dNotice, d.getf("stone_count")))
end
end

when devil_stone6.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("level") == 6 begin
d.kill_all()
notice_multiline(gameforge.deviltower_zone._150_dNotice,d.notice)
d.check_eliminated()
notice_multiline(gameforge.deviltower_zone._160_dNotice,d.notice)
local reward_alchemist = {20074, 20075, 20076}
d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
d.setqf2("deviltower_zone","can_refine", 1)
end


when 20074.chat.gameforge.deviltower_zone._170_npcChat with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.lock() begin
say_title(mob_name(20074))
say(gameforge.deviltower_zone._190_say)
wait()
if pc.level >=75 then
say_title(mob_name(20074))

say(gameforge.deviltower_zone._200_say)
local s= select(gameforge.deviltower_zone._210_select, gameforge.locale.cancel, gameforge.deviltower_zone._220_select)
if s==3 then
pc.warp(590500, 110900)
return
end
if s==2 then
return
end

timer("devil_jump_7", 6)
npc.unlock()
d.purge()
return
end
say_title(mob_name(20074))
say(gameforge.deviltower_zone._230_say)
wait()
pc.warp(590500, 110500)
return
end

when 20075.chat.gameforge.deviltower_zone._170_npcChat with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.lock() begin
say_title(mob_name(20075))
say(gameforge.deviltower_zone._190_say)
wait()
if pc.level >=75 then
say_title(mob_name(20075))

say(gameforge.deviltower_zone._200_say)
local s= select(gameforge.deviltower_zone._210_select, gameforge.deviltower_zone._220_select)
if s==3 then
pc.warp(590500, 110900)
return
end
if s==2 then
return
end

timer("devil_jump_7", 6)
npc.unlock()
d.purge()
return
end
say_title(mob_name(20075))
say(gameforge.deviltower_zone._230_say)
wait()
pc.warp(590500, 110500)
return
end
when 20076.chat.gameforge.deviltower_zone._170_npcChat with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.lock() begin
say_title(mob_name(20076))
say(gameforge.deviltower_zone._190_say)
wait()
if pc.level >=75 then
say_title(mob_name(20076))

say(gameforge.deviltower_zone._200_say)
local s= select(gameforge.deviltower_zone._210_select, gameforge.deviltower_zone._220_select)
if s==3 then
pc.warp(590500, 110900)
return
end
if s==2 then
return
end

timer("devil_jump_7", 6)
npc.unlock()
d.purge()
return
end
say_title(mob_name(20076))
say(gameforge.deviltower_zone._230_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)


notice_multiline(gameforge.deviltower_zone._240_dNotice,d.notice)
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
-- nothing happens cause the items isnt used in the game
-- 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
if d.getf( "level" ) != 7 then
pc.remove_item( "30302", 1)
return
end

say_title(gameforge.blacksmith._40_sayTitle)
say(gameforge.deviltower_zone._250_say)
pc.remove_item("30302", 1)
timer("devil_jump_8", 6)
d.clear_regen()
end

when devil_jump_8.timer begin
d.setf("level", 8)

notice_multiline(gameforge.deviltower_zone._260_dNotice,d.notice)
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
npc.purge()
item.remove()
timer("devil_jump_9", 6)
end

when devil_jump_9.timer begin
d.setf("level", 9)


notice_multiline(gameforge.deviltower_zone._270_dNotice,d.notice)
d.jump_all(2048+590, 6656+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()
d.setqf2("deviltower_zone","9_done", 1)
notice_multiline(gameforge.deviltower_zone._280_dNotice,d.notice)
notice_multiline(gameforge.deviltower_zone._290_dNotice,d.notice)
server_timer("devil_end_jump", 60, d.get_map_index())
end

when devil_end_jump.server_timer begin
if d.select (get_server_timer_arg()) then
d.clear_regen()
d.exit_all()
end
end
end
end

Share this post


Link to post
Share on other sites
  • 0

Usa esta

 

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(590500, 110500)
                end
                pc.set_warp_location(65, 5905, 1105)
            elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
                pc.set_warp_location(65, 5905, 1105)
                deviltower_zone.register_player(pc.get_vid())
            end
        end
 
when logout begin
if pc.count_item(30300) >= 1 then
pc.remove_item(30300, pc.count_item(30300))
end
if pc.count_item(30302) >= 1 then
pc.remove_item(30302, pc.count_item(30302))
end
if pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
deviltower_zone.unregister_player(pc.get_vid())
end
end
when deviltower_man.chat.locale.deviltower_man_chat begin
                if pc.get_level() < 40 then
                        say_title("Guard of the Demon Tower:")
                        say("")
                        ---                                                   l
                        say("This tower is abounds with demons.")
                        say("Only the strongest can reach the top.")
                        say("It is said, that nobody who enters")
                        say("the tower has left it alive.")
                        say("You cannot enter it, because you have not")
                        say("reached level 40 yet.")
                else
                        say_title("Guard of the Demon Tower:")
                        say("")
                        ---                                                   l
                        say("This tower is abounds with demons.")
                        say("Only the strongest can reach the top.")
                        say("It is said, that nobody who enters")
                        say("the tower has left it alive.")
                        say("Do you still want to enter the Demon Tower?")
                        say("")
                        local s = select("Enter.", "Leave.")
                        if s == 1 then
                                -- warp into!
                                pc.warp(216500,727000)
                        end
            end
        end
        when devil_stone1.kill begin
            timer("devil_stone1_1", 8)
        end
        when devil_stone1_1.timer begin
            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_stone3.kill begin
            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()
        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;
                    positions = positions[j];
                    positions[j] = t;
                end
            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)
            local positions = deviltower_zone.get_4floor_stone_pos()
            for i = 1, 6 do
                d.set_unique("fake" .. i , d.spawn_mob(8017, positions[1], positions[2]))
            end
            local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
            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("You arrived at the Gate of Choice on the 4th floor.");
            d.notice("Many false Metin stones will irritate your eyes and ears.");
            d.notice("Find the right Metin stone and destroy it within 15 Minutes");
            d.notice("It is the only way to pass this gate.");
        end
 
        when devil_stone4_fail1.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice("Minutes left: 10")
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("Minutes left: 5")
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()) and d.getf("level") == 4 then
                d.notice("The time is over.")
                d.exit_all()
            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("The fake Metin stone disappears...");
                            end
                        end
                    end
                else
                    server_timer("devil_stone4_end", 5, get_server_timer_arg())
                 
                    d.notice("You proved yourself and showed good instinct.");
                    d.notice("You have destroyed the correct Metin stone.")
                    d.purge()
                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
clear_server_timer('devil_stone4_update', get_server_timer_arg())
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())
 
                d.setf("level", 5)
                d.setf("stone_count", 5)
             
                d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
                d.notice("You arrived at the Sealed Gate on the 5th floor.")
                d.notice("A few monsters have an Unlock Stone that can be")
                d.notice("used to open the Ancient Seals.")
                d.notice("Open the 5 seals within 20 Minutes to advance")
                d.notice("to the next floor!")
 
             
server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
clear_server_timer('devil_stone4_update', get_server_timer_arg())
 
                d.set_regen_file("data/dungeon/deviltower5_regen.txt")
 
                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("Minutes left: 15")
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("Minutes left: 10")
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("Minutes left: 5")
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()) and d.getf("level") == 5 then
d.notice("The time is over.")
d.exit_all()
            end
        end
 
        when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin
            local KILL_COUNT_FOR_DROP_KEY = 50
            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.clear_regen()
            d.kill_all()
                d.notice("You have opened the last Seal. You will")
                d.notice("now arrive on the 6th floor!")
 
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())
 
                d.setf("level", 6)
                d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
d.regen_file("data/dungeon/deviltower6_regen.txt")
 
                d.notice("Defeat all the demons on the 6th floor")
                d.notice("before attacking the King!")
 
            else
                d.notice("You opened the Seal! There are "..d.getf("stone_count").." left.")
            end
        end
 
        when devil_stone6.kill begin
            d.kill_all()
            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 20074.chat."Top floors of Demon Tower" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.lock() begin
          say_title(""..mob_name(20074)..":")
          say("")
          say("They found the way to reach 7th floor.")
          say("It requires a lot of ability and skills to go there.")
          say("Hmmmm...")
          say("After I examined your status to go up stairs.....")
          wait()
          if pc.level >=75 then
          say_title(""..mob_name(20074)..":")
          say("")
              say("You are good to go up.")
              say("I will let you know the way..")
              timer("devil_jump_7", 6)
              npc.unlock()
              d.purge()
              return
          end
          say_title(""..mob_name(20074)..":")
          say("")
          say("You need more training to go up there.")
          say("Come back when you have more experience.")
 
say("")
wait()
pc.warp(590500, 110500)
return
   end
   when 20075.chat."Top floors of Demon Tower" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.lock() begin
say_title(""..mob_name(20075)..":")
        say("")
        say("They found the way to reach 7th floor.")
        say("It requires a lot of ability and skills to go there.")
        say("Hmmmm...")
        say("After I examined your status to go up stairs.....")
        wait()
        if pc.level >=75 then
        say_title(""..mob_name(20075)..":") 
        say("")
        say("You are good to go up.")
        say("I will let you know the way..")
        timer("devil_jump_7", 6)
        npc.unlock()
        d.purge()
        return
        end
say_title(""..mob_name(20075)..":") 
say("")
        say("You need more training to go up there.")
        say("Come back when you have more experience.")
say("")
wait()
pc.warp(590500, 110500)
return
    end
   when 20076.chat."Top floors of Demon Tower" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.lock() begin
say_title(""..mob_name(20076)..":")
          say("")
          say("It requires a lot of ability and skills to go there.")
          say("Hmmmm...")
          say("After I examined your status to go up stairs.....")
          wait()
          if pc.level >=75 then
                say_title(""..mob_name(20076)..":") 
                say("")
                say("You are good to go up.")
              say("I will let you know the way..")
              timer("devil_jump_7", 6)
              npc.unlock()
              d.purge()
              return
          end
  say_title(""..mob_name(20076)..":") 
  say("")
          say("You need more training to go up there.")
      say("Come back when you have more experience.")
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,8)
 
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ÃþÀ¸·Î ¿öÇÁ
 
if d.getf( "level" ) != 7 then
pc.remove_item( "30302", 1)
return
end
 
say("With this map, I can warp to next floor!")
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
if d.getf("level") < 9 then
local pct1 = number(1, 10)
if pct1 == 1 then
local pct2 = number(1, 4)
if pct2 == 1 then
-- ÁøÂ¥ ¿­¼è µå·Ó
game.drop_item(30304, 1)
else
-- °¡Â¥ ¿­¼è µå·Ó
game.drop_item(30303, 1)
end
else
return
end
end
end
 
when 20366.take with item.vnum == 30304 begin
-- ºÀÀÎ ÇØü 9Ãþ ¤¡¤¡
npc.purge()
item.remove()
timer("devil_jump_9", 8)
end
 
---------------------------------------------
-- 9Ãþ ÁøÀÔºÎÅÍ ¿Ï·á±îÁö
---------------------------------------------
when devil_jump_9.timer begin
d.setf("level", 9)
d.jump_all(2048+590, 6656+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", 30)
end
 
when devil_end_jump.timer begin
   d.exit_all()
end
function register_player(vid)
local player_count = d.getf("player_count")
player_count = player_count + 1
d.setf("player_count", tonumber(player_count))
d.setf(string.format("player%d", player_count), tonumber(vid))
end
function unregister_player(vid)
local player_count = d.getf("player_count")
local found = false
for i = 1, player_count, 1 do
if found == true then
d.setf(string.format("player%d", tonumber(i)), d.getf(string.format("player%d", i+1)))
end
p = d.getf("player"..tostring(i))
if p == vid then
i = i -1
found = true
end
end
if found == true then
d.setf("player_count", tonumber(player_count - 1))
end
end
function get_players()
local players = {}
local player_count = d.getf("player_count")
for i = 1, player_count, 1 do
players = d.getf("player"..tostring(i))
end
return players
end
function give_dc_access(pindex)
local self_checked = false
local self = pc.select(d.getf("player"..tostring(pindex)))
--pc.setqf("dcenter", 1)
pc.setf("deviltower_zone", "dcenter", 1)
pc.select(self)
end
end
end

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this