freddy 5 Posted July 25, 2014 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
freddy 5 Posted July 25, 2014 Eu tenho fé que vai ter um abençoado que vai me ajudar! Share this post Link to post Share on other sites
Karbust 1,143 Posted July 25, 2014 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
freddy 5 Posted July 25, 2014 O problema e que a minha não passa do 3 andar Share this post Link to post Share on other sites
freddy 5 Posted July 25, 2014 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
freddy 5 Posted July 28, 2014 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
.тιαgσ 624 Posted July 29, 2014 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 1 Shad0w reacted to this Share this post Link to post Share on other sites
Shad0w 347 Posted July 29, 2014 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 Share this post Link to post Share on other sites
freddy 5 Posted August 2, 2014 assim você mata o papai Irei testa +1 Share this post Link to post Share on other sites