Slabon Posted February 22, 2013 Report Share Posted February 22, 2013 Alguien tiene estas 2 quest, que sea tan amable de pasármelas, las que tengo están en chino Link to comment Share on other sites More sharing options...
DryUz Posted February 22, 2013 Report Share Posted February 22, 2013 Aca te las dejo la 2 la tenes que traducir^^ quest deviltower_zone begin state start begin when login begin if pc.get_map_index() == 66 then -- No puede acceder cuando este fuera de los retornos. -- Ambito de aplicacion de la capa -- 1 edificio 88 577 236 737 -- 2 edificio 91 343 238 504 -- 3 edificio 104 107 248 269 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(locale.deviltower_man_say_you_cant) else say(locale.deviltower_man_say) local s = select(locale.deviltower_enter,locale.deviltower_no_enter) if s == 1 then -- warp into! pc.warp(216500,727000) end end end when devil_stone1.kill begin timer("devil_stone1_1", 6) end when devil_stone1_1.timer begin local mapto7= pc.count_item(30302) -- La eliminación parece que no existe pc.remove_item(30302,mapto7) local boxto7= pc.count_item(30300) -- La eliminación no se sabe si existe 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") end --when devil_stone2.kill begin --d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2]) --end when devil_stone3.kill begin --d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2]) --d.set_exit_all_at_eliminate(6) --d.set_warp_at_eliminate(6, d.get_map_index(), 100, 100) --d.set_warp_at_eliminate(4, 65, 5376+532, 512+596+4) 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() --d.exit_all() 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 --for i = 1, 7 do -- positions[1] = positions[1] * 100 -- positions[2] = positions[2] * 100 -- 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) --Los metines falsos desaparecen --d.regen_file("data/dungeon/deviltower4_regen.txt") 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()) d.notice("Has llegado al 4 piso"); d.notice("Que no te confundas con tantos metins"); d.notice("Sólo hay un metin que te llevará al 5 piso"); d.notice("Tienes 15 minutos para destruirlo.. muevete!!!"); end when devil_stone4_fail1.server_timer begin if d.select(get_server_timer_arg()) then d.notice("te acaba el tiempo: te quedan solamente 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()) then d.notice("te acaba el tiempo: te quedan solamente 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()) then d.notice("Se te acabó el tiempo... vuelve a intentarlo") d.exit_all() clear_server_timer('devil_stone4_update', get_server_timer_arg()) end end when devil_stone4_update.server_timer begin if d.select(get_server_timer_arg()) then if not d.is_unique_dead("real") then for i = 1, 6 do if d.getf("fakedead" .. i) == 0 then if d.unique_get_hp_perc("fake" .. i) < 50 then d.purge_unique("fake" .. i) d.setf("fakedead" .. i, 1) d.notice("Metin falso....Destruido"); end end end else --d.clear_regen() --d.regen_file("data/dungeon/deviltower5_regen.txt") server_timer("devil_stone4_end", 5, get_server_timer_arg()) d.notice("Excelente... has destruido el metin"); d.notice("Ahora serás transportado al 5 piso") 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("Bienvenido al 5 piso") d.notice("Tienes que acabar con todos los demonios") d.notice("Y usar sus llaves para desbloquear los pilares") d.notice("Tienes 20 minutos para parar lograrlo") 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()) -- 5 columnas siguen sin sellar{ d.set_regen_file("data/dungeon/deviltower5_regen.txt") -- 5 columnas por sellar{ 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("Se te acaba el tiempo: te quedan solamente 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()) then d.notice("Se te acaba el tiempo: te quedan solamente 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()) then d.notice("Se te acaba el tiempo: te quedan solamente 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()) then d.notice("Se te acabó el tiempo... Vuelve a intentarlo") d.exit_all() end end --when devil_stone4.kill begin --d.setf("level", 5) --d.setf("stone_count", 4) --d.clear_regen() --d.regen_file("data/dungeon/deviltower5_regen.txt") --d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2]) --end when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin local KILL_COUNT_FOR_DROP_KEY = 50 --if is_test_server() then --KILL_COUNT_FOR_DROP_KEY = 1 --end local n =d.getf("count") + 1 d.setf("count", n) if n == KILL_COUNT_FOR_DROP_KEY then -- La llave ha caido 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("Ha conseguido entrar al 6 piso") d.notice("Debe eliminar a todos los monstruos, El rey elimanarlo una vez que hayan matado todos los monstruos") 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("Ha desbloqueado la columna"..d.getf("stone_count").."") end end when devil_stone6.kill begin -- Marca el metinstone en el mapa -- En caso contrario elime todos --d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2]) d.kill_all() -- d.set_warp_at_eliminate(3*60, 65, 5376+532, 512+596+4) 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 -------------------------------------- -- Planta 7 -------------------------------------- when 20074.chat."Acerca de la planta superior." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin say(""..mob_name(20074).."") say("Has encontrado el método para ir al 7 piso") say("Prepárate para éste desafío") say("Demuéstrale al Reino lo fuerte") say("y valiente que eres.") wait() if pc.level >=75 then say("Destruye los 4 metins que aparecerán") say("Y acaba con todos los animales de la montaña") say("y prepárate para ir al 8 piso.") timer("devil_jump_7", 6) return end say("Pero será en otra") say("ocasión ya que") say("no cumples con el") say("nivel mínimo que es 75") say("") wait() pc.warp(590500, 110500) return end when 20075.chat."Acerca de la planta superior de la torre." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin say(""..mob_name(20075).."") say("Has encontrado el método para ir al 7 piso") say("Prepárate para éste desafío") say("Demuéstrale al Reino lo fuerte") say("y valiente que eres") say("Me permite darle un objetivo aun mayor.") wait() if pc.level >=75 then say("Destruye los 4 metins que aparecerán") say("Y acaba con todos los animales de la montaña") say("y prepárate para ir al 8 piso.") timer("devil_jump_7", 6) return end say("Pero será en otra") say("ocasión ya que") say("no cumples con el") say("nivel mínimo que es 75") say("") wait() pc.warp(590500, 110500) return end when 20076.chat."Acerca de la planta superior." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin say(""..mob_name(20076).."") say("Has encontrado el método para ir al 7 piso") say("Prepárate para éste desafío") say("Demuéstrale al Reino lo fuerte") say("y valiente que eres") say("Me permite darle un objetivo aun mayor.") wait() if pc.level >=75 then say("Destruye los 4 metins que aparecerán") say("Y acaba con todos los animales de la montaña") say("y prepárate para ir al 8 piso.") timer("devil_jump_7", 6) return end say("Pero será en otra") say("ocasión ya que") say("no cumples con el") say("nivel mínimo que es 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) 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 -- Mapa real game.drop_item(30302, 1) d.clear_regen() else -- Mapa falso 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 -- Planta 8 say("Tenía el mapa, puede pasar de planta") pc.remove_item("30302", 1) timer("devil_jump_8", 6) d.clear_regen() end -------------------------------------------- -- Planta 8 -------------------------------------------- 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)-- La eliminación parece estar al maximo pc.remove_item(30302,_count) end when 1040.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin local pct1 = number(1, 5) if pct1 == 1 then local pct2 = number(1, 10) if pct2 == 1 then -- Llave verdadera game.drop_item(30304, 1) else -- Llave falsa game.drop_item(30303, 1) end else return end end when 20366.take with item.vnum == 30304 begin -- Planta 9 npc.purge() item.remove() timer("devil_jump_9", 6) end --------------------------------------------- -- Planta 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", 60) end when devil_end_jump.timer begin d.exit_all() end end end quest deviltower2_zone begin state start begin when login begin if pc.get_map_index() == 214 then if pc.get_x() < 55555+88 or pc.get_y() < 55555+577 or pc.get_x() > 55555+236 or pc.get_y() > 55555+737 then pc.warp((5376+501)*100, (512+498+4)*100, 65) end pc.set_warp_location(65, 5376+501, 512+498+4) elseif pc.get_map_index() >= 2140000 and pc.get_map_index() <= 2150000 then pc.set_warp_location(65, 5376+501, 512+498+4) end end when 22034.chat."In den Zombieturm" begin if pc.get_level() < 95 then say_title("Der Zombieturm Turm") say("Dein Level ist zu niedrig.") say("Du musst min. Level95 sein,") say("um den Turm zubetreten!") return else say_title("Der Zombieturm") say("Du kennst sicherlich den Dämonenturm..") say("Dieser Turm ähnelt diesen Turm zwar von außen...") say("Jedoch von innen...") say("Im inneren sind viel stärkere Monster..") wait() say_title("Der Zombieturm") say("Sie Trachten dir noch deinem Leben,") say("nur starke Krieger können sich gegen") say("diese Monster behaupten.") say("") say_reward("Bist du bereit den Turm zubetreten?") local s = select("Hinnein!","Nein, ich habe Angst.") if s == 1 then pc.warp(5555500,5555500) end end end when 8112.kill begin d.setf("dt2kill",1) timer("dt2metin", 5) end when dt2metin.timer begin d.clear_regen() d.new_jump_all(214, 5555500+126,5555500+384) d.new_jump_all(214, 55555+126,55555+384) d.clear_regen() d.regen_file("data/dungeon/deviltower2_2_regen.txt") d.set_warp_at_eliminate(4, d.get_map_index(), 55555+134,55555+147, "data/dungeon/deviltower3_2_regen.txt") end when 8023.kill with pc.in_dungeon() begin timer("spinne",10) end when spinne.timer begin d.kill_all() d.clear_regen() d.jump_all(55555+369,55555+629) d.regen_file("data/dungeon/deviltower4_2_regen.txt") end when 8028.kill with pc.in_dungeon() begin d.notice("Du hast den Metin zerstört!") d.notice("Du hast nun 15min Zeit,") d.notice("die 7 Sensenmänner zu töten!") timer("sensicount", 60*15) d.kill_all() d.kill_all() d.spawn_mob(8030,368,629) d.spawn_mob(8030,419,630) d.spawn_mob(8030,428,653) d.spawn_mob(8030,422,679) d.spawn_mob(8030,395,689) d.spawn_mob(8030,369,679) d.spawn_mob(8030,361,658) d.spawn_mob(20360,371,658) d.setf("steinebene4",7) end when 8030.kill with pc.in_dungeon() begin game.drop_item(90007,1) end when 20360.take with item.vnum == 90007 begin item.remove() d.setf("steinebene4", d.getf("steinebene4") - 1) d.notice("Du hast ein Siegel abgegeben!") local steine123 = d.getf("steinebene4"); d.notice("Es fehlen noch "..steine123.." Steine!") if d.getf("steinebene4") <= 0 then npc.purge() d.notice("Du hast diese Ebene geschafft!") timer("ebene5",10) d.kill_all() end end when ebene5.timer begin d.kill_all() d.clear_regen() d.jump_all(55555+369,55555+401) d.regen_file("data/dungeon/deviltower5_2_regen.txt") d.spawn_mob(2307,395,416) end when 2307.kill with pc.in_dungeon() begin timer("baum123",10) end when baum123.timer begin d.kill_all() d.clear_regen() d.jump_all(55555+374,55555+167) d.regen_file("data/dungeon/deviltower6_2_regen.txt") d.spawn_mob(8029,391,217) end when 8029.kill with pc.in_dungeon() begin d.spawn_mob(2493,381,207) end when 2493.kill with pc.in_dungeon() begin timer("drache123",10) end when drache123.timer begin d.kill_all() d.clear_regen() d.jump_all(55555+642,55555+639) d.regen_file("data/dungeon/deviltower7_2_regen.txt") d.notice("Hier musst so solange Mobbs töten,") d.notice("bis du eine Nachricht bekommst.") end when 2603.kill with pc.in_dungeon() begin local n = number(1,300) if n == 250 then d.notice("Du hast das richtige Monster getötet!") d.notice("Du wird geportet!") d.kill_all() d.clear_regen() d.jump_all(55555+602,55555+404) d.regen_file("data/dungeon/deviltower8_2_regen.txt") d.spawn_mob(2545,607,434) end end when 2545.kill with pc.in_dungeon() begin timer("goout",300) d.kill_all() d.kill_all() d.notice("Du hast den König getötet.") d.notice("Du hast nun 5min Zeit, deine Gegenstände") d.notice("Zu verbessern!") local reward_alchemist = {20074, 20075, 20076} d.spawn_mob(reward_alchemist[number(1,3)], 633, 435); d.setqf("can_refine", 1) end when goout.timer begin d.kill_all() pc.warp((5376+501)*100, (512+498+4)*100, 65) end end end tikiwiki, Manuel Camacho, andresmnuh1 and 1 other 4 Link to comment Share on other sites More sharing options...
KleLuX Posted April 24, 2014 Report Share Posted April 24, 2014 me lo parece ami o la 2 esta en aleman Link to comment Share on other sites More sharing options...
Shogun Posted April 25, 2014 Report Share Posted April 25, 2014 La oficial de las catacumbas, en inglés: quest devilcatacomb_zone begin state start begin function setting() return { ["base"]={["x"] = 3072 , ["y"]= 12032 ,}, ["floor1_s"] = { ["x"] = 20, ["y"] = 20, }, ["floor1_e"] = { ["x"] = 500, ["y"] = 470,}, ["floor2_s"] = { ["x"] = 510, ["y"] = 18, }, ["floor2_e"] = { ["x"] = 978, ["y"] = 470,}, ["floor1_entry"] = {["x"] = 73, ["y"] = 63,}, ["floor2_entry"] = {["x"] = 550, ["y"] = 45,}, ["floor3_entry"] = {["x"] = 1378, ["y"] = 249,}, ["floor4_entry"] = {["x"] = 70, ["y"] = 592,}, ["floor5_entry"] = {["x"] = 846, ["y"] = 898}, ["floor6_entry"] = {["x"] = 1362, ["y"] = 666}, ["floor7_entry"] = {["x"] = 73, ["y"] = 1156}, ["map_idx"] = 206, ["rag"] = 30311, ["devil_king"] = 2591, ["reapers_credit1"] = 30319, ["reapers_credit2"] = 30320, ["reapers_credit3"] = 76002, ["reapers_credit4"] = 79001, ["floor3_stone"] = 8038, ["floor3_stone_pos"] = { {1366, 150}, {1366, 351}, {1234, 365}, {1234, 140}, {1150, 135}, {1130, 365}, {1135, 253} }, ["mob_regen_file_path"] = "data/dungeon/devilcatacomb/", ["floor4_regen_file"] = {"devilcatacomb_floor4_regen1.txt", "devilcatacomb_floor4_regen2.txt", "devilcatacomb_floor4_regen3.txt", "devilcatacomb_floor4_regen4.txt", "devilcatacomb_floor4_regen5.txt"} , ["credit_stone"] = 30101, ["credit_stone_pos"] = {307,323}, ["floor2_stone"] = 30103, ["floor2_stone_pos"] = {741,217}, ["floor2_merchant_npc"] = 20368, ["floor2_merchant_npc_pos"] = {734,214}, ["floor4_npc"] = 30104, ["floor4_npc_pos"] = {500, 717}, ["devil_king_pos"] = {{673,829},{691,638},{848,568},{1026,642},{1008,862}}, ["unlock_stone"] = 30312, ["floor5_stone"] = 30102, ["floor5_stone_pos"] = {848, 735}, ["devil_great_king"] = 2597 , ["devil_great_king_pos"] = {1303,704}, ["devil_emperor"] = 2598, ["devil_emperor_pos"] = {74,1103}, ["dc2_door_set_size"] = {4,2,3,2}, ["dc2_door_set1"] = { {{30111, 566, 117, 5},{30112, 562, 311, 5,},{30118, 663, 434, 7},{30119, 881, 434, 7}}, {{30116, 743, 390, 3},{30119, 612, 251, 1,}}, {{30113, 654, 211, 5},{30111, 707, 338, 7,},{30112, 775, 336, 7}}, {{30117, 733, 294, 3},{30113, 694, 271, 1,}} }, ["dc2_door_set2"] = { {{30115, 942, 141, 5},{30116, 942, 245, 5},{30117, 942, 321, 5},{30115, 763, 64, 7}}, {{30118, 643, 116, 3},{30114, 900, 167, 1}}, {{30114, 850, 293, 5},{30113, 715, 164, 7},{30114, 817, 162, 7}}, {{30111, 802, 277, 1},{30112, 800, 241, 1}} }, } end when login begin local setting = devilcatacomb_zone.setting() local idx = pc.get_map_index() if idx >= (setting.map_idx * 10000) and idx < ((setting.map_idx + 1) * 10000) then-- pc.set_warp_location(65, 5914, 992) -----------¾Æ±Íµ¿±¼ ÁÂÇ¥·Î local level = d.getf("level") -- warp locationÀÌ 0,0 ÀÌ¸é ½Ã½ºÅÛ »óÀ¸·Î, Á¾·á ½Ã, Á¾·á À§Ä¡¸¦ ½ÃÀÛ À§Ä¡·Î ÀúÀåÇÑ´Ù. d.set_warp_location (0, 0, 0) if level == 2 then say_title("The Devil´s Catacomb: Level 2") say("") say("Destroy the seal of this door to reach Level 3.") say("You have 60 minutes left.") say("") elseif level == pc.getqf ("level") then-- say ("³«¿ÀµÇÁö ¾Ê±â À§ÇØ µ¿·áµé°ú ÇÕ·ùÇϽʽÿÀ.") --say (locale.devilcatacomb_follow_peer) else-- say (locale.devilcatacomb_dropout)-- say ("´ç½ÅÀº ³«¿ÀµÇ¾ú½À´Ï´Ù. ¿ë½ÅÀÇ ÈûÀ» ºô¾î Àá½Ã µÚ µ¿±¼ ¹ÛÀ¸·Î À̵¿ÇÕ´Ï´Ù.")-- timer ("devilcatacomb_ban_timer", 5) end end if idx == setting.map_idx then pc.setf("devilcatacomb_zone","last_exit_time", get_global_time()) -- 2ÃþÀÌ»óÀ̸é, ÂѰܳª if pc.get_x() < setting.floor1_s.x + setting.base.x or pc.get_y() < setting.floor1_s.y + setting.base.y or pc.get_x() > setting.floor1_e.x + setting.base.x or pc.get_y() > setting.floor1_e.y + setting.base.y then -- ¾Æ±Íµ¿±¼ ÀÔ±¸·Î-- if not is_test_server() then --say (locale.devilcatacomb_dropout) timer ("devilcatacomb_ban_timer", 5)-- end else -- ¾Æ±Íµ¿±¼ ÀÔ±¸·Î-- pc.set_warp_location(65, 5914, 992) addimage(20, 12, "catacombs.tga") say("") say("") say("") say("") say_title("The Devil´s Catacomb: Level 1") say("") say("Hunt monsters in this area to obtain the Soul") say("Crystal Key and unlock the next level.") say("") say_item("Soul Crystal Key", 30311, "") pc.remove_item(30311, pc.count_item(30311)) pc.remove_item(30312, pc.count_item(30312)) end end end when logout begin local idx = pc.get_map_index() local setting = devilcatacomb_zone.setting() if idx == setting.map_idx or idx >= (setting.map_idx * 10000) and idx < ((setting.map_idx + 1) * 10000) then pc.setf("devilcatacomb_zone","last_exit_time", get_global_time()) end end when devilcatacomb_ban_timer.timer begin pc.warp((5914)*100, (992)*100, 65) end when warp_timer.timer begin local level = d.getf("level") local level_switch = { [3] = "Find the correct metin stone and destroy it!", [4] = "Find the right way.", [5] = "Kill the Demon-Guards to obtain the Totem Faces. They serve as the key to Level 6!", [6] = "Slay Grim Reaper and his minions!", } local t = 3600 -(get_global_time() - d.getf("enter_time")) local t_r = math.mod (t, 60) local t_m = (t - t_r) / 60 d.notice ( level_switch[level] ) d.notice ( "You have " ..t_m.." minutes left.") d.set_warp_location (0, 0, 0) end when 20367.chat."Enter the Devil's Catacomb" with pc.get_map_index() == 65 begin local setting = devilcatacomb_zone.setting() if pc.get_level() < 75 then say_title("Guardian of the Catacombs:") say("") say("I will not give access to the Devil's Catacomb") say("to an unexperienced knight such as you.") say("") say("It is for your own safety.") say("") say_reward("Level 75 is required to enter.") say("") --elseif pc.getf("deviltower_zone","9_done") == 0 then -- say(locale.devilcatacomb_man_say_deviltop_clear) --elseif ((get_global_time() - pc.getf("devilcatacomb_zone","last_exit_time")) < 1800) then -- say(locale.devilcatacomb_man_say_see_you_later) else say_title("Guardian of the Catacombs:") say("") say("Do you wish to enter Devil's Catacomb now?") say("") local s = select("Yes, I want to enter.", "No, I want to leave.") if s == 1 then pc.warp ((setting.floor1_entry.x + setting.base.x )* 100, (setting.floor1_entry.y + setting.base.y) * 100) end end end when 20367.chat."Back to the Dark Temple" with pc.get_map_index() == 206 begin say_title("Guardian of the Catacombs:") say("") say("Are you sure you want to give up and") say("return to the Dark Temple?") say("") local s = select("Yes, I am too weak.", "No, I will fight on!") if s == 1 then pc.warp(591400, 99900) end end -- ¸ó½ºÅÍ°¡ Á×À¸¸é ¹ß»ýÇÏ´Â À̺¥Æ®. when kill begin local setting = devilcatacomb_zone.setting() -- ¾Æ±Íµ¿±¼ 1ÃþÀ̸é 1% È®·ü·Î ±Ý½Ã°ÇÀ» µå¶øÇÑ´Ù. if pc.get_x() > setting.floor1_s.x + setting.base.x and pc.get_y() > setting.floor1_s.y + setting.base.y and pc.get_x() < setting.floor1_e.x + setting.base.x and pc.get_y() < setting.floor1_e.y + setting.base.y then local j = number(1, 100) if j == 1 then game.drop_item (setting.rag, 1) end end end function spawn_doors () local setting = devilcatacomb_zone.setting() for i = 1, 4 do local mob_set = setting.dc2_door_set1[i] local set_size = setting.dc2_door_set_size[i] for j = 1, set_size do d.set_unique (i.."_1_"..j, d.spawn_mob_dir (mob_set[j][1], mob_set[j][2], mob_set[j][3], mob_set[j][4])) end mob_set = setting.dc2_door_set2[i] for j = 1, set_size do d.set_unique (i.."_2_"..j, d.spawn_mob_dir (mob_set[j][1], mob_set[j][2], mob_set[j][3], mob_set[j][4])) end end end -- ±Ý½Ã°ÇÀ» ³ªÂûÀÎÁõ¼®¿¡ µå·¡±×Çϸé 2ÃþÀ¸·Î º¸³½´Ù. 2ÃþºÎÅÍ´Â ´øÀüÀÌ´Ù. when devilcatacomb_credit_stone. take begin local setting = devilcatacomb_zone.setting() if item.vnum == setting.rag then if not party.is_party() then say_title("Statue of Kud:") say("") say("You need a strong party to adventure into the") say("Devil´s Catacomb.") say("") return elseif party.is_in_dungeon() then say_title("Statue of Kud:") say("") say("Your Party is already in a dungeon.") say("") return end item.remove() say_title("Statue of Kud:") say("") say("The entrance has been unlocked.") say("Pass it quickly!!") say("") wait() say_title("Statue of Kud:") say("") say("Here is where the real adventure starts.") say("") say("From now on you will only have one hour") say("to explore the Devil's Catacomb.") say("") wait() d.new_jump_party (setting.map_idx, setting.floor2_entry.x + setting.base.x , setting.floor2_entry.y + setting.base.y ) d.setqf2("devilcatacomb_zone","level", 2) d.setf ("level",2) --d.regen_file (setting.mob_regen_file_path.."dc_2f_regen.txt") d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base2_regen.txt") --d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base2_npc.txt") -- d.spawn_mob (setting.floor2_merchant_npc, setting.floor2_merchant_npc_pos[1], setting.floor2_merchant_npc_pos[2]) d.spawn_mob (setting.floor2_stone, setting.floor2_stone_pos[1], setting.floor2_stone_pos[2]) devilcatacomb_zone.spawn_doors () server_timer('devilcatacomb_45m_left_timer',60 * 15, d.get_map_index()) d.setf("enter_time", get_global_time()) end end when devilcatacomb_45m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then d.notice ("You have 45 minutes left.") server_timer('devilcatacomb_30m_left_timer', 60 * 15, get_server_timer_arg()) end end when devilcatacomb_30m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then d.notice ("You have 30 minutes left.") server_timer('devilcatacomb_15m_left_timer', 60 * 15, get_server_timer_arg()) end end when devilcatacomb_15m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then d.notice ("You have 15 minutes left.") server_timer('devilcatacomb_5m_left_timer', 60 * 10, get_server_timer_arg()) end end when devilcatacomb_5m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then d.notice ("You have 5 minutes left.") server_timer('devilcatacomb_1m_left_timer', 60 * 4, get_server_timer_arg()) end end when devilcatacomb_1m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then d.notice ("You have 1 minute left.") server_timer ("devilcatacomb_0m_left_timer", 60 * 1, get_server_timer_arg()) end end when devilcatacomb_0m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Your time is up. You failed to release the Catacombs") d.notice("from the claws of evil.") d.set_warp_location (65, 5914, 992) server_timer('devilcatacomb_exit_timer', 7, get_server_timer_arg()) end end function is_dc2_doors_clear () local setting = devilcatacomb_zone.setting() local clear = true for i = 1, 4 do local set_clear = true local mob_set = setting.dc2_door_set1[i] local set_size = setting.dc2_door_set_size[i] for j = 1, set_size do set_clear = set_clear and d.is_unique_dead (i.."_1_"..j) end if not set_clear then set_clear = true mob_set = setting.dc2_door_set2[i] for j = 1, set_size do set_clear = set_clear and d.is_unique_dead (i.."_2_"..j) end end clear = clear and set_clear end return clear end -- ÇöȲ¼®À» Ŭ¸¯Çϸé 3Ãþ ÁøÀÔ ¿©ºÎ¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ°í -- ÁøÀԽà »ç½ÅÀÇÁõÇ¥¸¦ °Ë»çÇÑ´Ù. -- »ç½ÅÀÇ ÁõÇ¥°¡ ¾ø´Ù¸é ¹ÛÀ¸·Î ¿öÇÁµÈ´Ù. when devilcatacomb_floor2_stone.click begin local setting = devilcatacomb_zone.setting() if d.getf("devilcatacomb_floor2_stone_clicked") == 0 then if not devilcatacomb_zone.is_dc2_doors_clear () and not is_test_server() then say_title ("The Devil´s Catacomb:") say ("You first have to kill each door.") say ("") wait () return end say_title("Tortoise Rock:") say("") say("As you observe the stone closely, you") say("encounter an inscription.") say("") wait() say_title("The Devil´s Catacomb:") say("") say("Only the one who possesses the shrunken head") say("may enter once the seal of three doors has") say("been broken.") say("") say_reward("If you do not possess this relic, you will") say_reward("be warped out from the Devil's Catacomb.") say("") wait() local s = select("Yes, let me enter.", "I don't have a Relic.") if s == 1 then if d.getf("devilcatacomb_floor2_stone_clicked") == 0 then d.setf("devilcatacomb_floor2_stone_clicked", 1) d.setqf2("devilcatacomb_zone","last_exit_time", get_global_time()) d.set_item_group ("reapers_credit", 4, setting.reapers_credit4, 1, setting.reapers_credit3, 1, setting.reapers_credit2, 1, setting.reapers_credit1, 1) d.say_diff_by_item_group ("reapers_credit", "The Devil´s Catacomb:[ENTER][ENTER]You possess the shrunken head and you will now[ENTER]enter Level 3.[ENTER][ENTER]", "The Devil´s Catacomb:[ENTER][ENTER]You do not possess the shrunken head.[ENTER]You will now be warped out from[ENTER]the Devil's Catacomb..[ENTER][ENTER]") timer ("devilcatacomb_floor3_enter_timer", 7) end end else say_title("The Devil´s Catacomb:") say ("") say ("Please wait.") say ("") end end when devilcatacomb_floor3_enter_timer.timer begin local setting = devilcatacomb_zone.setting() d.set_warp_location (65, 5914, 992) d.exit_all_by_item_group ("reapers_credit") d.delete_item_in_item_group_from_all ("reapers_credit") d.purge () d.jump_all (setting.floor3_entry.x + setting.base.x , setting.floor3_entry.y + setting.base.y) d.setf("level",3) d.setqf2("devilcatacomb_zone","level", 3) --d.regen_file (setting.mob_regen_file_path.."dc_3f_regen.txt") d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base3_regen.txt") timer("warp_timer",3) local position = setting.floor3_stone_pos local n = number(1,7) for i = 1, 7 do if (i != n) then d.set_unique("fake"..i, d.spawn_mob( setting.floor3_stone, position[i][1], position[i][2])) end end local vid = d.spawn_mob( setting.floor3_stone, position[n][1], position[n][2]) d.set_unique ("real",vid) if (is_test_server()) then -- real stone pos chat (position[n][1],position[n][2]) end end when devilcatacomb3_stone.kill begin local setting = devilcatacomb_zone.setting() -- µ¹ÀÌ Æı«µÇ¸é ÁøÂ¥°¡ Á×¾ú´ÂÁö È®ÀÎÇغ»´Ù. -- ÁøÂ¥°¡ Á×¾úÀ¸¸é 4ÃþÀ¸·Î À̵¿ÇÑ´Ù. if d.is_unique_dead("real") then d.notice ("You have destroyed the correct metin stone. You will now enter Level 4.") d.setf ("level",4) d.setqf2("devilcatacomb_zone","level", 4) timer ("devilcatacomb_floor4_enter_timer", 3) else d.notice ("This was a false metin stone. Find the correct one, quick!") end end when devilcatacomb_floor4_enter_timer.timer begin local setting = devilcatacomb_zone.setting() local i = number (1, 5) timer("warp_timer",3) d.purge () d.jump_all (setting.floor4_entry.x + setting.base.x , setting.floor4_entry.y + setting.base.y) --d.regen_file (setting.mob_regen_file_path.."dc_4f_regen.txt") --d.regen_file (setting.mob_regen_file_path..setting.floor4_regen_file[i]) d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base4_regen.txt") d.spawn_goto_mob(70, 673, 94, 847) d.spawn_goto_mob(91, 948, 347, 564) d.spawn_goto_mob(401, 558, 272, 829) d.spawn_goto_mob(274, 713, 141, 807) d.spawn_goto_mob(68, 815, 313, 868) d.spawn_goto_mob(431, 935, 355, 840) d.spawn_goto_mob(430, 842, 499, 787) if (is_test_server()) then d.notice (setting.floor4_regen_file[i]) end d.spawn_mob (setting.floor4_npc, setting.floor4_npc_pos[1], setting.floor4_npc_pos[2]) end -- devilcatacomb_floor4_stone´Â Ŭ¸¯ ½Ã 4Ãþ¿¡¼ 5ÃþÀ¸·Î À̵¿½ÃÅ°´Â npcÀÌ´Ù. when devilcatacomb_floor4_stone.click begin local setting = devilcatacomb_zone.setting() local n = number (1,5) say_title("The Devil´s Catacomb:") say("") say("YES, found the way out! Let´s go down to the 5th") say("level!") wait() if (is_test_server()) then -- devil_king pos chat (setting.devil_king_pos[n][1], setting.devil_king_pos[n][2]) end d.purge () d.jump_all (setting.floor5_entry.x + setting.base.x, setting.floor5_entry.y + setting.base.y ) d.setf ("level",5) d.setqf2("devilcatacomb_zone","level", 5) timer("warp_timer",3) --d.regen_file (setting.mob_regen_file_path.."dc_5f_regen.txt") d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base5_regen.txt") d.spawn_mob (setting.devil_king, setting.devil_king_pos[n][1], setting.devil_king_pos[n][2]) d.spawn_mob (setting.floor5_stone, setting.floor5_stone_pos[1], setting.floor5_stone_pos[2]) end -- ¾Æ±Í¿Õ(2591)ÀÌ Á×À¸¸é ºÀÀÎÇØü¼® µå¶ø when devilcatacomb_devil_king.kill begin local setting = devilcatacomb_zone.setting() game.drop_item (setting.unlock_stone, 1) end -- »ç½Å±ÝÁ¦ºñ(30102)¿¡ ±ÝÁ¦ÇØü¼®ºÀÀ» µå·¡±×ÇÏ¸é ¸ðµç ¸ó½ºÅ͸¦ Á×ÀÌ°í -- 6ÃþÀ¸·Î À̵¿Çϴ ŸÀ̸Ӹ¦ µ¿ÀÛ½ÃŲ´Ù. when devilcatacomb_floor5_stone.take begin local setting = devilcatacomb_zone.setting() if item.vnum == setting.unlock_stone then item.remove () d.notice("From the dephts of the Devil's Catacomb comes a furious brawl.") d.notice("The Grim Reaper has awakened!") -- 6ÃþÀ¸·Î À̵¿ d.clear_regen() d.purge() timer("devilcatacomb_floor6_timer",2) end end when devilcatacomb_floor6_timer.timer begin local setting = devilcatacomb_zone.setting() d.setf("level",6) d.setqf2("devilcatacomb_zone","level", 6) d.jump_all (setting.floor6_entry.x + setting.base.x, setting.floor6_entry.y + setting.base.y ) --d.regen_file (setting.mob_regen_file_path.."dc_6f_regen.txt") d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base6_regen.txt") d.spawn_mob (setting.devil_great_king, setting.devil_great_king_pos[1], setting.devil_great_king_pos[2]) timer("warp_timer",3) end -- ¾Æ°É(2597)ÀÌ Á×À¸¸é, 6ÃþÀÇ Å¸À̸Ó1ÀÌ µ¿ÀÛÇÑ´Ù. when devilcatacomb_devil_great_king.kill begin server_timer ("floor6_eli_check_timer_1", 5,d.get_map_index()) end -- 6ÃþÀÇ Å¸À̸Ó1Àº ´øÀüÀÇ ¸ðµç ¸ó½ºÅÍ ¼ýÀÚ¸¦ º¸°í, -- 0À̸é 7ÃþÀ¸·Î ¿öÇÁÇϴ ŸÀ̸Ӹ¦ µ¿ÀÛÇÑ´Ù. -- ¹Ù·Î 7ÃþÀ¸·Î °¡Áö ¾Ê´Â ÀÌÀ¯´Â, À¯Àú¿¡°Ô ÁغñÇÒ ½Ã°£À» ÁÖ±â À§ÇؼÀÌ´Ù. -- 1À̸é ŸÀ̸Ó2¸¦ µ¿ÀÛ½ÃŲ´Ù. -- ŸÀ̸Ó1À» recursiveÇÏ°Ô µ¿ÀÛ½ÃÅ°Áö ¾ÊÀº °ÍÀº, -- ±×·² °æ¿ì resetÇÑ Å¸À̸Ó1ÀÌ µ¿ÀÛÇÏÁö ¾Ê¾Ò±â ¶§¹®ÀÌ´Ù. when floor6_eli_check_timer_1.server_timer begin if d.select(get_server_timer_arg()) then if d.count_monster() == 0 then say_in_map(get_server_timer_arg(), color256(255, 230, 186).."The Devil´s Catacomb:[ENTER]"..color256(196, 196, 196).."You have gained victory over Charon![ENTER]You will now enter the last Level[ENTER]of the Devil's Catacomb![ENTER]") server_timer ("devilcatacomb_floor7_timer", 3, get_server_timer_arg()) else server_timer ("floor6_eli_check_timer_2", 5, get_server_timer_arg()) end end end when floor6_eli_check_timer_2.server_timer begin if d.select(get_server_timer_arg()) then if d.count_monster() == 0 then say_in_map(get_server_timer_arg(), color256(255, 230, 186).."The Devil´s Catacomb:[ENTER]"..color256(196, 196, 196).."You have gained victory over Charon![ENTER]You will now enter the last Level[ENTER]of the Devil's Catacomb![ENTER]") server_timer("devilcatacomb_floor7_timer", 3, get_server_timer_arg()) else server_timer ("floor6_eli_check_timer_1", 5, get_server_timer_arg()) end end end when devilcatacomb_floor7_timer.server_timer begin if d.select(get_server_timer_arg()) then local setting = devilcatacomb_zone.setting() d.setf("level",7) d.setqf2("devilcatacomb_zone","level", 7) d.jump_all (setting.floor7_entry.x + setting.base.x, setting.floor7_entry.y + setting.base.y ) --d.regen_file (setting.mob_regen_file_path.."dc_7f_regen.txt") d.regen_file(get_locale_base_path().."/map/metin2_map_dd/base7_regen.txt") d.spawn_mob (setting.devil_emperor, setting.devil_emperor_pos[1], setting.devil_emperor_pos[2]) server_timer ("devilcatacomb_floor7_say_timer", 2, get_server_timer_arg()) end end when devilcatacomb_floor7_say_timer.server_timer begin if d.select(get_server_timer_arg()) then local t = 3600 -(get_global_time() - d.getf("enter_time")) local t_r = math.mod (t, 60) local t_m = (t - t_r) / 60 d.notice("Kill Lord Gahnasel!") d.notice ("You have ".. t_m.." minutes left.") d.set_warp_location (0, 0, 0) end end -- 6Ãþ°ú ¸¶Âù°¡Áö·Î »ç¸¶ÈÖ(2598)ÀÌ Á×À¸¸é -- 7ÃþÀÇ Å¸À̸Ӱ¡ ÀÛµ¿ÇÑ´Ù. when 2598.kill begin notice_all(pc.get_name().."'s party has defeated Lord Gahnasel!") server_timer ("floor7_eli_check_timer_1", 5, d.get_map_index()) end -- 7ÃþÀÇ Å¸À̸Ӵ 6Ãþ ŸÀÌ¸Ó¿Í ºñ½ÁÇϸç, -- ¸ó½ºÅÍ ¼ýÀÚ°¡ 0À̸é exit ŸÀ̸Ӹ¦ ¹ß»ý½ÃŲ´Ù. -- ¹Ù·Î exitÇÏÁö ¾Ê´Â ÀÌÀ¯´Â, À¯Àúµé¿¡°Ô ÁغñÇÒ ½Ã°£À» ÁÖ±â À§ÇؼÀÌ´Ù. when floor7_eli_check_timer_1.server_timer begin if d.select(get_server_timer_arg()) then if d.count_monster() == 0 then d.set_warp_location (65, 5914, 992) d.setqf2("devilcatacomb_zone","done", 1) say_in_map(get_server_timer_arg(), color256(255, 230, 186).."The Devil´s Catacomb:[ENTER]"..color256(196, 196, 196).."Lord Gahnasel has been killed. Finally[ENTER]peace can return to the Catacombs.[ENTER]You will now be warped back out.[ENTER]") clear_server_timer ("devilcatacomb_0m_left_timer", get_server_timer_arg()) server_timer("devilcatacomb_exit_timer", 60, get_server_timer_arg()) else server_timer ("floor7_eli_check_timer_2", 5, get_server_timer_arg()) end end end when floor7_eli_check_timer_2.server_timer begin if d.select(get_server_timer_arg()) then if d.count_monster() == 0 then d.set_warp_location (65, 5914, 992) d.setqf2("devilcatacomb_zone","done", 1) say_in_map(get_server_timer_arg(), color256(255, 230, 186).."The Devil´s Catacomb:[ENTER]"..color256(196, 196, 196).."Lord Gahnasel has been killed. Finally[ENTER]peace can return to the Catacombs.[ENTER]You will now be warped back out.[ENTER]") clear_server_timer ("devilcatacomb_0m_left_timer", get_server_timer_arg()) server_timer("devilcatacomb_exit_timer", 30, get_server_timer_arg()) else server_timer ("floor7_eli_check_timer_1", 5, get_server_timer_arg()) end end end when devilcatacomb_exit_timer.server_timer begin if d.select(get_server_timer_arg()) then d.setqf2("devilcatacomb_zone","level", 0) d.setqf2("devilcatacomb_zone","last_exit_time", get_global_time()) clear_server_timer("devilcatacomb_5m_left_timer", get_server_timer_arg()) clear_server_timer("devilcatacomb_1m_left_timer", get_server_timer_arg()) clear_server_timer("devilcatacomb_0m_left_timer", get_server_timer_arg()) clear_server_timer("floor6_eli_check_timer_1", get_server_timer_arg()) clear_server_timer("floor6_eli_check_timer_2", get_server_timer_arg()) clear_server_timer("floor7_eli_check_timer_1", get_server_timer_arg()) clear_server_timer("floor7_eli_check_timer_2", get_server_timer_arg()) clear_server_timer("devilcatacomb_floor7_say_timer", get_server_timer_arg()) clear_server_timer("devilcatacomb_floor7_timer", 3, get_server_timer_arg()) d.clear_regen() d.exit_all() end end end --stateend --quest LovePlay 1 Link to comment Share on other sites More sharing options...
Recommended Posts