Unk3n0w7 1,321 Posted March 29, 2014 -------------------------- Script in web ----- Trad. by Lollozzo -------------------------quest purgatorio begin state start begin when 20351.chat."Le Porte dell'Inferno" with pc.get_map_index() == 205 begin say_title("Guardiano dell'Inferno") say("Il Dio di tutti i demoni, Sung Mahi, si è risvegliato,") say("la fine dell'umanità è vicina!") say("Combatti, valoroso guerriero, con") say("il tuo gruppo affinchè liberiate") say("il mondo dalla distruzione del nuovo Male!") say("") say("") say("") wait() say_title("Guardiano dell'Inferno") say("Per poter accedere alla mappa") say("dove essere minimo livello 100") say("ed avere con voi "NOME ITEM".") say("Sei pronto ad affrontare la sfida?") say("") say("") wait() say_title("Guardiano dell'Inferno") if pc.get_level() >= 100 or pc.is_gm() then if party.is_party() or pc.is_gm() then if party.is_leader() or pc.is_gm() then if pc.count_item(30189) > 0 or pc.is_gm() then say_reward("Vuoi iniziare la sfida con il tuo gruppo?") if select("Sì","No, grazie.") == 1 then pc.remove_item(30189,1) d.join(235) end else say_reward("Non puoi passare!") say_item_vnum(30189) end else say_reward("Per poter accedere devi essere il leader del gruppo!") end else say_reward("Devi appartenere ad un gruppo!") end else say_reward("Devi essere livello superiore a 100 per poter entrare!") end end when login with pc.get_map_index() >= 2350000 and pc.get_map_index() <= 2355000 begin say("Vai, il dungeon è cominciato!") say("Combattete!") say("") if party.is_party() then if party.is_leader() then blazingpurgatory.start() end else if pc.is_gm() then blazingpurgatory.start() end end end function start() d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_flamenpc.txt") d.setf("purgatory_gate_sequence",number(1,7)) local sequence = {{1,2,3,4,5,6},{4,1,3,2,5,6},{2,5,3,1,4,6},{3,1,6,2,4,5},{5,3,2,4,6,1},{6,1,5,2,4,3},{6,3,5,3,1,4}} for i = 1, 6 do d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_gate_"..sequence[d.getf("purgatory_gate_sequence")][i]..".txt") end d.setf("acutal_round",0) d.setf("time", get_time()+60*60*1) server_timer("purgatorytime",3600,pc.get_map_index()) server_loop_timer("purgatorytimenotice",300,pc.get_map_index()) blazingpurgatory.NoticeTime() end when purgatorytimenotice.server_timer begin if d.select(get_server_timer_arg()) then blazingpurgatory.NoticeTime() end end when purgatorytime.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Il tempo è scaduto!") d.exit_all() end end when 20385.click with pc.get_map_index() >= 2350000 and pc.get_map_index() <= 2355000 and d.getf("block_altar") == 0 begin if d.getf("purgatory_level") == 7 then d.setf("block_altar",1) d.setf("actual_round",7) d.notice("Pensavate di aver finito? No!") d.notice("Ora vi aspetta Razador!") timer("warp_to_boss",5) else d.setf("purgatory_level",d.getf("purgatory_level")+1) blazingpurgatory.purge() blazingpurgatory.LoadStage() d.setf("block_altar",1) blazingpurgatory.NoticeTime() d.notice("Si è aperta una stanza!") end end when warp_to_boss.timer begin d.jump_all(8111,6864) d.notice("Razador:") d.notice("La resistenza è inutile! Sung Mahi resusciterà!") d.set_regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_7.txt") blazingpurgatory.NoticeTime() end when kill with pc.get_map_inde1x() >= 2350000 and pc.get_map_index() <= 2355000 begin if d.getf("actual_round") == 1 or d.getf("actual_round") == 3 then d.setf("kill_count_bp1",d.getf("kill_count_bp1") +1) if d.getf("kill_count_bp1") == d.getf("bp_kill_to_next") then d.notice("Ritorna al "NOME NPC CENTRO MAPPA"!") blazingpurgatory.purge() end elseif d.getf("actual_round") == 2 or d.getf("actual_round") == 5 then d.setf("kill_count_bp",d.getf("kill_count_bp") +1) if d.getf("kill_count_bp") == d.getf("kill_to_drop_key") then game.drop_item_with_ownership(50084,1) d.setf("kill_count_bp",0) end elseif d.getf("actual_round") == 4 and npc.get_race() == 6009 then if number(1,5) == 1 then d.notice("Ritorna al "NOME NPC CENTRO MAPPA"!") blazingpurgatory.purge() end elseif d.getf("actual_round") == 6 and npc.get_race() == 8034 then d.notice("Ritorna al "NOME NPC CENTRO MAPPA"!") blazingpurgatory.purge() elseif d.getf("actual_round") == 7 and npc.get_race() == 6091 then d.notice("Razador è morto!") d.clear_regen() d.kill_all() end end when 20081.take with pc.get_map_index() >= 2350000 and pc.get_map_index() <= 2355000 begin if item.get_vnum() == 50084 then if d.getf("actual_round") == 2 then pc.remove_item(item.get_vnum(),1) if number(1,8) == 1 then npc.purge() d.notice("Ritorna al "NOME NPC CENTRO MAPPA"!") blazingpurgatory.purge() else syschat("Questa Pietra Maat è sbagliata!") end elseif d.getf("actual_round") == 5 then local sequence = {{1,2,3,4,5,5},{4,3,2,1,5,5},{4,5,3,1,2,2},{5,3,4,2,1,1},{5,1,3,4,2,2}} if blazingpurgatory.GetPillarID() == sequence[d.getf("sequence")][d.getf("pillarcount")] then pc.remove_item(item.get_vnum(),1) npc.purge() d.setf("pillarcount", d.getf("pillarcount")+1) if d.getf("pillarcount") == 6 then d.notice("Ritorna al "NOME NPC CENTRO MAPPA"!") blazingpurgatory.purge() else d.notice("Usted debe continuar "..6-d.getf("pillarcount").." sellos abiertos!") end elseif blazingpurgatory.GetPillarID() == false then syschat("Embárcate que un zoom más cerca del sello!") elseif blazingpurgatory.GetPillarID() != sequence[d.getf("sequence")][d.getf("pillarcount")] then pc.remove_item(item.get_vnum(),1) syschat("Questo Ingranaggio non è quello giusto giusto!") end end end end function LoadStage() if d.getf("actual_round") == 1 then -- Alle Monster tötenw d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_1.txt") d.setf("bp_kill_to_next",241) d.setf("kill_count_bp1",0) elseif d.getf("actual_round") == 2 then d.set_regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_2.txt") d.setf("kill_to_drop_key",50) d.spawn_mob(20081,195,352) elseif d.getf("actual_round") == 3 then d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_3.txt") d.setf("bp_kill_to_next",240) d.setf("kill_count_bp1",0) elseif d.getf("actual_round") == 4 then d.set_regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_4.txt") elseif d.getf("actual_round") == 5 then d.set_regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_5.txt") local sequence = {{1,2,3,4,5},{4,3,2,1,5},{4,5,3,1,2},{5,3,4,2,1},{5,1,3,4,2}} local n = number(1,5) local coords = {{502,354},{517,354},{487,354},{502,339},{502,369}} for i = 1, 5 do d.spawn_mob(20081, coords[i][1],coords[i][2]) end d.setf("pillarcount", 1) d.setf("sequence",n) d.setf("kill_to_drop_key",100) elseif d.getf("actual_round") == 6 then d.set_regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_6.txt") d.spawn_mob(8034,507,489) end end function purge() d.setf("block_altar",0) d.clear_regen() d.kill_all() blazingpurgatory.LoadGates() d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_flamenpc.txt") if d.getf("purgatory_level") == 6 then d.setf("purgatory_level",7) end end function LoadGates() local sequence = {{1,2,3,4,5,6},{4,1,3,2,5,6},{2,5,3,1,4,6},{3,1,6,2,4,5},{5,3,2,4,6,1},{6,1,5,2,4,3},{6,3,5,3,1,4}} for i = 1, 6-d.getf("purgatory_level") do d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_gate_"..sequence[d.getf("purgatory_gate_sequence")][i]..".txt") end d.setf("actual_round",sequence[d.getf("purgatory_gate_sequence")][7-d.getf("purgatory_level")]) end function NoticeTime() local secondsLeft = (d.getf("time") - get_time()) local minutesLeft = math.ceil(secondsLeft / 60) d.notice("Tempo rimanente: "..minutesLeft.." minuti!") end function GetPillarID() if pc.get_local_x() >= 502 - 5 and pc.get_local_x() <= 502 + 5 and pc.get_local_y() >= 354 - 5 and pc.get_local_y() <= 354 + 5 then return 1 elseif pc.get_local_x() >= 517 - 5 and pc.get_local_x() <= 517 + 5 and pc.get_local_y() >= 354 - 5 and pc.get_local_y() <= 354 + 5 then return 2 elseif pc.get_local_x() >= 487 - 5 and pc.get_local_x() <= 487 + 5 and pc.get_local_y() >= 354 - 5 and pc.get_local_y() <= 354 + 5 then return 3 elseif pc.get_local_x() >= 502 - 5 and pc.get_local_x() <= 502 + 5 and pc.get_local_y() >= 339 - 5 and pc.get_local_y() <= 339 + 5 then return 4 elseif pc.get_local_x() >= 502 - 5 and pc.get_local_x() <= 502 + 5 and pc.get_local_y() >= 369 - 5 and pc.get_local_y() <= 369 + 5 then return 5 else return false end end end end Créditos : Lollo 1 źĩмßáßŵúĕ reacted to this Share this post Link to post Share on other sites
Estivador 2 Posted March 31, 2014 cara tu testou essa quest?, consegui fazer ela funcionar, eu achei ela a algum tempo na forum da ElitePvp e até hoje não consegui fazer rodar essa quest, se consegui me diz como fise-se por favor. Share this post Link to post Share on other sites
YonN 28 Posted April 10, 2014 Precisa do arquivo do data/dugeon/purgatory algo do genero... Onde posso encontrar ? Share this post Link to post Share on other sites