antiblock
diamwall
  • Chatbox

    Did you check out our Discord? https://discord.gg/FFdvMjk9xA
    You don't have permission to chat.
    Load More
Sign in to follow this  
freddy

Quest Da Torre Do Demônio Origianl

9 posts in this topic

Boa tarde galera!

Venho aqui através desse tópico pedir ajuda na quest da torre do demônio original

ser alguém tiver  essa quest e pode me ajudar, ou até mesmo me passar agradeço.

Share this post


Link to post
Share on other sites
antiblock
Elveron

Eu tenho fé que vai ter um abençoado que vai me ajudar!

Share this post


Link to post
Share on other sites

isso é considerado BUMP, e isso só se faz de 24 em 24h, tu apenas esperas-te 8minutos -.-''

 

todas as files têm a quest original da torre do demónio, só tens que sacar de umas -.-''

Share this post


Link to post
Share on other sites

O problema e que a minha não passa do 3 andar

Share this post


Link to post
Share on other sites
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_title("Guarda da Torre")
say("")
say("Você tem ser lvl 40")
   else
say_title(""..mob_name(20348).."")
say("")
say("Torre do Demonio")
say("É um lugar muito horrivel..")
say("Você tem corragem de entrar?")
say("Você deve ser bem forte")
 
say("Quer entrar?")
local s = select("Sim", "Não")
if s == 1 then
   pc.warp(216500,727000)
end
   end
end
when 8015.kill with pc.get_map_index() == 66 begin
   timer("devil_stone1_1", 6)
notice_in_map("Todos vão para o segundo andar.")
end
when devil_ebene1.timer begin
d.notice("Matem todos os mobs para subir de andar!")
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")
timer("devil_ebene1",2)
end
 
when 1091.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.notice("Encontre a Metin certa para chegar ao próximo andar")
   d.setf("level", 4)
   local positions = deviltower_zone.get_4floor_stone_pos()
   for i = 1, 6 do
chat(positions[1], positions[2])
d.set_unique("fake" .. i , d.spawn_mob(8017, positions[1], positions[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())
 
 
 
end
 
when devil_stone4_fail1.server_timer begin
   if d.select(get_server_timer_arg()) and d.getf("level") == 4 then
d.notice("Tempo restante: 10 Minutos")
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()) and d.getf("level") == 4 then
d.notice("Tempo restante: 5 Minutos")
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("Tempo acabou!")
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()) and d.getf("level") == 4 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("As metins falsas desaparecem..");
   end
end
   end
else
   server_timer("devil_stone4_end", 5, get_server_timer_arg())
d.notice("A Metin Correta foi quebrada,")
d.setf("level", 5)
   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("Você está agora na 4 ª nível")
d.notice("Aberto todo o selo antigo para chegar ao próximo nível.")
d.notice("Você tem 20 Minutos hora de abrir todos os selos.")
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()) and d.getf("level") == 5 then
d.notice("Tempo restante: 15 Minutos")
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()) and d.getf("level") == 5 then
d.notice("Tempo restante: 10 Minutos")
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()) and d.getf("level") == 5 then
d.notice("Tempo restante: 5 Minutos")
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("Tempo acabou!")
d.notice("Todos vão ser teleportado para fora.")
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")
 
d.notice("Você abriu todos o selos. Você estará agora na 5 Nível.")
d.notice("Destrua todos os monstros e o "..mob_name(1092).."")
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("Falta "..d.getf("stone_count").." Totens para Selar.")
   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)
if d.getf("can_refine") == 1 then
d.notice("Parabéns, agora você tem permissão para atualizar um item no ferreiro.")
end
end
 
 
when 20074.chat."Os pisos superiores.." or 20075.chat."Os pisos superiores.."  or 20076.chat."Os pisos superiores.." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
if game.get_event_flag("dtgm") == 1 and not pc.is_gm() then
say_title("Ferreiro da Torre:")
say("")
say("Você está fazendo apenas um Speedrun com um GM")
say("Apenas um GM pode trazer-lhe alta.")
return
end
say_title("Ferreiro da Torre:")
say("")
say("Você quer ir ao 7º andar?")
say("Você está com sorte!")
say("")
say("Mas primeiro tenho de testá-lo ainda..")
say("Vamos ver..")
wait()
if pc.level >=75 then
say("Eu vou permitir que você vá em frente!")
say("Boa sorte e se cuida!")
timer("devil_jump_7", 6)
return
end
say_reward("Não permitido")
say("")
say("Apenas para lvl 75+")
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)
d.notice("Agora você está no 6 andar destruir as Metin")
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
say("O cartão vai trazer-lhe tudo para o próximo nível da torre.")
d.notice("O cartão é ativado, agora você vai estar no próximo nível.")
pc.remove_item("30302", 1)
   timer("devil_jump_8", 6)
d.clear_regen()
end
 
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)
d.notice("Destrua os monstros para dropar o "..item_name(30304).." para selar")
 
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)
d.notice("O item "..item_name(30304).." foi entregue, agora Divirta-se")
end
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()
d.notice("Parabéns!");
d.notice("Todos serão teletransportado na frente da torre em 1 minuto.");
d.kill_all()
timer("devil_end_jump", 60)
end
when devil_end_jump.timer begin
   d.exit_all()
end
end
end

Share this post


Link to post
Share on other sites

ninguém tem essa quest funcionando corretamente por que essa minha ai só vai para o 3 andar!

Share this post


Link to post
Share on other sites
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[i];                    positions[i] = 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[i][1], positions[i][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[i] = 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)	endendend 

Share this post


Link to post
Share on other sites
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[i];                    positions[i] = 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[i][1], positions[i][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[i] = 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)	endendend 

assim você mata o papai  :trollface:

Share this post


Link to post
Share on other sites

assim você mata o papai  :trollface:

Irei testa +1

Share this post


Link to post
Share on other sites
Sign in to follow this