Thavo 4 Posted April 20, 2015 Share Posted April 20, 2015 I'm searching for the quest/regens of Blazing purgatory that work on vanilla core 2.4.1. Price : Negociable Best regards, Thavo. Link to comment Share on other sites More sharing options...
morion 59 Posted April 20, 2015 Share Posted April 20, 2015 ----------------------- --- Script in web --- -- Trad. by Lollozzo -- ----------------------- quest purgatorio begin state start begin function CheckMembers() local pids = {party.get_member_pids()} local riding_horse = false local anello_exp = false local anello_exp_equip = false for i = 1, table.getn(pids), 1 do q.begin_other_pc_block(pids[i]) if pc.count_item(70005) > 0 then anello_exp = true end local oggetto = item.select_cell(188) local vnum = item.get_vnum() if vnum == 70005 then anello_exp_equip = true end q.end_other_pc_block() end if anello_exp == true then say("Non è possibile entrare in questo dungeon") say("con anello exp in inventario.") return false end if anello_exp_equip == true then say("Non è possibile entrare in questo dungeon") say("con anello exp indossato.") return false end end function Unmount() local pids = {party.get_member_pids()} local riding_horse = false for i = 1, table.getn(pids), 1 do q.begin_other_pc_block(pids[i]) command("unmount") q.end_other_pc_block() end end when 20351.chat."Le Porte dell'Inferno" with pc.get_map_index() == 62 begin if purgatorio.CheckMembers() == false then return end 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 170") say("ed avere con voi la Pergamena del passaggio ") say("Sei pronto ad affrontare la sfida?") say("") say("") wait() say_title("Guardiano dell'Inferno") if get_time() < game.get_event_flag("purgatorio_next_open") and !pc.is_gm() then say("Il Purgatorio è chiuso.[ENTER]") return end if pc.count_item(70005) > 0 then say("Non è possibile entrare in questo dungeon") say("con anello exp in inventario.") return end local oggetto = item.select_cell(188) local vnum = item.get_vnum() if vnum == 70005 then say("Non è possibile entrare in questo dungeon") say("con anello exp indossato.") return end if pc.get_level() >= 170 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(71095) > 0 or pc.is_gm() then say_reward("Vuoi iniziare la sfida con il tuo gruppo?") if select("Si","No, grazie.") == 1 then pc.remove_item(71095,1) command("unmount") purgatorio.Unmount() game.set_event_flag("purgatorio_next_open", get_time()+60*60) notice_all("Il purgatorio sarà chiuso per 60 minuti a partire da adesso") d.join(351) end else say_reward("Non puoi passare!") say_item_vnum(71095) 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 170 per poter entrare!") end end when login with pc.get_map_index() >= 3510000 and pc.get_map_index() <= 3515000 begin say("Vai, il dungeon è cominciato!") say("Combattete!") say("") if party.is_party() then if party.is_leader() then --blazingpurgatory.start() d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_flamenpc.txt") d.setf("purgatory_gate_sequence",number(1,7)) local sequence = {{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3}} 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() local secondsLeft = (d.getf("time") - get_time()) local minutesLeft = math.ceil(secondsLeft / 60) d.notice("Tempo rimanente: "..minutesLeft.." minuti!") end else if pc.is_gm() then --blazingpurgatory.start() d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_flamenpc.txt") d.setf("purgatory_gate_sequence",number(1,7)) local sequence = {{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3}} 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() local secondsLeft = (d.getf("time") - get_time()) local minutesLeft = math.ceil(secondsLeft / 60) d.notice("Tempo rimanente: "..minutesLeft.." minuti!") end end end when purgatorytimenotice.server_timer begin if d.select(get_server_timer_arg()) then --blazingpurgatory.NoticeTime() local secondsLeft = (d.getf("time") - get_time()) local minutesLeft = math.ceil(secondsLeft / 60) d.notice("Tempo rimanente: "..minutesLeft.." minuti!") 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() >= 3510000 and pc.get_map_index() <= 3515000 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() d.setf("block_altar",0) d.clear_regen() d.kill_all() --blazingpurgatory.LoadGates() local sequence = {{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3}} 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")]) d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_flamenpc.txt") if d.getf("purgatory_level") == 6 then d.setf("purgatory_level",7) end --blazingpurgatory.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(8058,507,489) -- 8034 end d.setf("block_altar",1) --blazingpurgatory.NoticeTime() local secondsLeft = (d.getf("time") - get_time()) local minutesLeft = math.ceil(secondsLeft / 60) d.notice("Tempo rimanente: "..minutesLeft.." minuti!") 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() local secondsLeft = (d.getf("time") - get_time()) local minutesLeft = math.ceil(secondsLeft / 60) d.notice("Tempo rimanente: "..minutesLeft.." minuti!") end when kill with pc.get_map_index() >= 3510000 and pc.get_map_index() <= 3515000 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 alle Fauci del purgatorio") --blazingpurgatory.purge() d.setf("block_altar",0) d.clear_regen() d.kill_all() --blazingpurgatory.LoadGates() local sequence = {{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3}} 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")]) d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_flamenpc.txt") if d.getf("purgatory_level") == 6 then d.setf("purgatory_level",7) end end elseif 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") == 2 then d.setf("kill_count_bp",d.getf("kill_count_bp") +1) if d.getf("kill_count_bp") == 50 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 alle Fauci del purgatorio") -- blazingpurgatory.purge() d.setf("block_altar",0) d.clear_regen() d.kill_all() --blazingpurgatory.LoadGates() local sequence = {{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3}} 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")]) d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_flamenpc.txt") if d.getf("purgatory_level") == 6 then d.setf("purgatory_level",7) end end --8034 elseif d.getf("actual_round") == 6 and npc.get_race() == 8058 then d.notice("Ritorna alle Fauci del purgatorio") -- blazingpurgatory.purge() d.setf("block_altar",0) d.clear_regen() d.kill_all() ---blazingpurgatory.LoadGates() local sequence = {{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3}} 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")]) d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_flamenpc.txt") if d.getf("purgatory_level") == 6 then d.setf("purgatory_level",7) end elseif d.getf("actual_round") == 7 and npc.get_race() == 6091 then d.notice("Razador è morto!") game.drop_item_with_ownership(53552, 1) d.clear_regen() d.kill_all() timer("exit_flame", 20) end end when exit_flame.timer begin d.exit_all() end when 20081.take with pc.get_map_index() >= 3510000 and pc.get_map_index() <= 3515000 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 alle Fauci del purgatorio") -- blazingpurgatory.purge() d.setf("block_altar",0) d.clear_regen() d.kill_all() ---blazingpurgatory.LoadGates() local sequence = {{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3}} 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")]) d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_flamenpc.txt") if d.getf("purgatory_level") == 6 then d.setf("purgatory_level",7) end else say("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}} local blazing 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 blazing = 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 blazing = 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 blazing = 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 blazing = 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 blazing = 5 else blazing = 6 end if blazing == 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 alle Fauci del purgatorio") -- blazingpurgatory.purge() d.setf("block_altar",0) d.clear_regen() d.kill_all() ---blazingpurgatory.LoadGates() local sequence = {{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3},{6,1,5,2,4,3}} 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")]) d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_flamenpc.txt") if d.getf("purgatory_level") == 6 then d.setf("purgatory_level",7) end else d.notice("Mancano ancora "..6-d.getf("pillarcount").." Steli!") end elseif blazing == 6 then syschat("Avvicinati alla stele") elseif blazing != sequence[d.getf("sequence")][d.getf("pillarcount")] then pc.remove_item(item.get_vnum(),1) syschat("Questa Pietra non è quella giusta") end end end end end end Link to comment Share on other sites More sharing options...
Thavo 4 Posted April 20, 2015 Author Share Posted April 20, 2015 Thanks for sharing, however d.join(351) function doesn't work. Link to comment Share on other sites More sharing options...
Grudge 5 Posted April 20, 2015 Share Posted April 20, 2015 Thanks for sharing, however d.join(351) function doesn't work. Replace 351 with your map index Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now