Jump to content

fuuton97

Miembro
  • Contador contenido

    177
  • Ingreso

  • Última visita

  • Días ganados

    10

Actividad de reputación

  1. Me Gusta
    fuuton97 got a reaction from Lincoln in [NEW]Dungeon: *TEMPLO PERDIDO*.   
    Hola, les vengo a regalar esta quest tipo dungeon hecha por mi, la tengo en mi servidor como dungeon y va súper bien, espero que les guste, les dejo los regen también.
     
    Quest:
     

    ---------------- -Quest By Fuuton97 -www.metin2skill.com & www.fuuton97.com -Dungeon Templo Perdido ---------------- quest templo_perdido begin state start begin when login begin if pc.get_map_index() == 42 then pc.set_warp_location(42, 216, 3335) end end when 20095.chat."Mapa Templo Perdido" begin if pc.get_level() <= 209 then say_title("*ANCIANO*:") say("") say_reward("Usted debe ser Nivel 210 para Entrar.!") return end say_title("*TEMPLO PERDIDO*") say("") say("Guerrero ".. pc.get_name() .." estás hablando con el anciano") say("que te va a llevar al mundo donde han despertados las bestias.") say("Te encomiendo este reto viajero") say("Estos mob te dropearán 5to bonos.") say("Cyclops, bestias jamas antes vistas en este mundo.") say("Recuerda deberás ser Nivel 210 para Entrar.") say("Suerte Viajeros...!!") say("") say_reward("Quieres entrar?") local templo = select("Si" , "No") if templo == 1 then pc.warp(21600, 336000) else say_title("*ANCIANO*:") say("Vale, vuelve cuando estés listo.") say("By Metin2 Skill - www.metin2skill.com") return end end when 20094.chat."Acceso al Templo Perdido" with pc.get_map_index() == 42 begin timer("entrada_templo", 5) chat("Suerte Viajeros") end ---PLANTA:1--- when entrada_templo.timer begin d.new_jump_all(42, 216, 3367) d.setf("fuuton", 1) d.regen_file("data/dungeon/fuuton/planta_1.txt") d.notice("Viajeros, destruye el Metin para liberar el Mal de esta primera Planta") d.spawn_mob(8027, 240, 166) end when 8027.kill with d.getf("fuuton") == 1 begin d.notice("Han destruido el Metin del Mal, avanzarán a la 2da Planta.") timer("segunda_planta", 5) end ---PLANTA:2--- when segunda_planta.timer begin d.jump_all(190, 3657) d.setf("fuuton", 2) d.regen_file("data/dungeon/fuuton/planta_2.txt") d.notice("Destruye al Guardían de esta Planta") d.spawn_mob(2738, 186, 405) end when 2738.kill with d.getf("fuuton")== 2 begin d.notice("Han destruido al Guardían") timer("tercera_planta", 5) end ---PLANTA:3--- when tercera_planta.timer begin d.jump_all(501, 3471) d.setf("fuuton", 3) d.setf("metines", 5) d.regen_file("data/dungeon/fuuton/planta_3.txt") d.notice("Destruye los Metines, tienen 5 minutos.") d.spawn_mob(8025, 570, 224) d.spawn_mob(8025, 556, 225) d.spawn_mob(8025, 563, 226) d.spawn_mob(8025, 560, 225) d.spawn_mob(8025, 556, 220) end when 8025.kill and d.getf("fuuton") == 3 begin d.setf("metines", d.getf("metines")-1) if d.getf("metines") == 0 then d.notice("Han destruido todos Metines, ascendereis") timer("cuarta_planta", 5) end d.notice("Han destruido 1 Metin, aun les quedan "..d.getf("metines").." por destruir") end ---PLANTA:4--- when cuarta_planta.timer begin d.jump_all(573, 3904) d.setf("fuuton", 4) d.regen_file("data/dungeon/fuuton/planta_4.txt") d.notice("Matar a los mob y dar con el verdadero.") local fuu = math.random(1, 5) if fuu == 1 then local vid = d.spawn_mob(2740, 544, 582) d.set_unique("real", vid) elseif fuu == 2 then local vid = d.spawn_mob(2740, 545, 567) d.set_unique("real", vid) elseif fuu == 3 then local vid = d.spawn_mob(2740, 599, 555) d.set_unique("real", vid) elseif fuu == 4 then local vid = d.spawn_mob(2740, 578, 556) d.set_unique("real", vid) elseif fuu == 5 then local vid = d.spawn_mob(2740, 589, 565) d.set_unique("real", vid) end end when 2740.kill with pc.in_dungeon() and d.getf("fuuton")== 4 begin if d.is_unique_dead("real") then d.notice("Haveis matado el mob verdadero") d.notice("Ascendereis de planta") timer("quinta_planta", 5) else d.notice("Este mob no es el correcto") end end ---PLANTA:5--- when quinta_planta.timer begin d.jump_all(282, 3993) d.setf("fuuton", 5) d.regen_file("data/dungeon/fuuton/planta_5.txt") d.notice("Mata al Gran Jefe *|CYCLOPS BOSS DEVIL|*") d.spawn_mob(2739, 187, 670) end when 2739.kill with d.getf("fuuton") == 5 begin notice_all("El personaje ".. pc.get_name() .." ha derrotado al Gran Jefe *|CYCLOPS BOSS DEVIL|*") chat("Viajeros, haveís completado el desafio, Metin2 Skill Team - By Fuuton97") timer("final_planta", 60) end ---SALIDA--- when final_planta.timer begin warp_to_village() end end end Si la deseas descargar la dungeon en formato .quest acá:

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Descargar regen's:

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Espero que les guste, un saludo Fuuton97.
  2. Me Gusta
    fuuton97 reacted to 【ℛ-𝓝】ℛ𝔂𝓼𝒆 in ¡¡¡He vuelto!!!   
    Bienvenido nuevamente Fuuton, también usaba algunas de tus guias alla por el 2011 creo que era JAJAJA y jugué Metin2Skill Lvl 255 creo que era xD
  3. Sorprendido
    fuuton97 got a reaction from werednnbs in ¡¡¡He vuelto!!!   
    Reciban un cordial saludo de mi parte,
    Como bien dice el título, he vuelto. Quizás muchos me recuerden, otros no. Soy fuuton97, el que a muchos les ha servido las guías y aportes que hice hace 7 años en este foro (aún están), otros, me conocerán por ser el creador de Metin2 Skill, que incluso (creo) sigue publicada la presentación de dicho servidor. En fin, he vuelto y quiero volver hacer un Metin2 mucho mejor que el que tenía hace 7 años. 
    Asimismo, quiero seguir aportando y aprendiendo de este maravilloso mundo de Metin2, que me ha dado mucho.
    Saludos, y que tengan un excelente día. 
  4. Me Gusta
    fuuton97 got a reaction from Jeo in ¡¡¡He vuelto!!!   
    Jajaja, sí, así es.
     
    Como no recordarte colega.
  5. Me Gusta
    fuuton97 got a reaction from harufen in ¡¡¡He vuelto!!!   
    Reciban un cordial saludo de mi parte,
    Como bien dice el título, he vuelto. Quizás muchos me recuerden, otros no. Soy fuuton97, el que a muchos les ha servido las guías y aportes que hice hace 7 años en este foro (aún están), otros, me conocerán por ser el creador de Metin2 Skill, que incluso (creo) sigue publicada la presentación de dicho servidor. En fin, he vuelto y quiero volver hacer un Metin2 mucho mejor que el que tenía hace 7 años. 
    Asimismo, quiero seguir aportando y aprendiendo de este maravilloso mundo de Metin2, que me ha dado mucho.
    Saludos, y que tengan un excelente día. 
  6. Me Gusta
    fuuton97 got a reaction from Magueta in ¡¡¡He vuelto!!!   
    Reciban un cordial saludo de mi parte,
    Como bien dice el título, he vuelto. Quizás muchos me recuerden, otros no. Soy fuuton97, el que a muchos les ha servido las guías y aportes que hice hace 7 años en este foro (aún están), otros, me conocerán por ser el creador de Metin2 Skill, que incluso (creo) sigue publicada la presentación de dicho servidor. En fin, he vuelto y quiero volver hacer un Metin2 mucho mejor que el que tenía hace 7 años. 
    Asimismo, quiero seguir aportando y aprendiendo de este maravilloso mundo de Metin2, que me ha dado mucho.
    Saludos, y que tengan un excelente día. 
  7. Me Gusta
    fuuton97 got a reaction from Metin2Regal in [QUEST + REGEN'S]Catacumbas funcionales.   
    Hola zoneros, hoy les vengo a traer la quest de las catacumbas del diablo, 100% probada por mi, esta es la quest de BlackYuko. Cuenta con los portales como el oficial, en un máximo de 99% del oficial.
     
    Quest:

    --** --** Script Catacumbas del Diablo. --** by BlackYuko Skype: manu___88 --** quest catacombe begin state start begin --** --** Funciones --** function GetScriptData(data) local map_data = {['map_index'] = 15, -- index del mapa de catacumbas ['x'] = 3072, ['y'] = 12032, -- coordenadas X y Y, las del mapa catacumbas ['drop_frequency'] = 1000, -- frecuencia en los mob para que dropeen la llave cristal del alma ['min_lev'] = 100, -- nivel minimo para entrar a catacumbas, ['close_time'] = 60, -- tiempo (minutos) para estar en catacumbas ['testa_ristretta'] = 30320, -- vnum item de entrada que pide ['chiave_anime_cristallo'] = 30311, -- vnum item llave cistal del alma ['totem_smorfia'] = 30312, -- vnum totem ['forziere_azrael'] = 219, -- vnum drop al matar al azrael ['min_drop_lev'] = 100, -- nivel minimo para dropeo de la llave cristal ['max_drop_lev'] = 210} -- nivel maximo para dropeo de la lalve cristal return rawget(map_data, data) end function IsInDungeon(pc_index) local map_index = catacombe.GetScriptData('map_index') return (pc.in_dungeon() and pc_index >= map_index*10000 and pc_index < (map_index+1)*10000) end function CanDrop(pc_level) return (pc_level >= catacombe.GetScriptData('min_drop_lev') and pc_level <= catacombe.GetScriptData('max_drop_lev')) end --** --** NPC - Guardian entrada a catacumbas --** when 20351.chat."GM: Catacumbas Abrir" with pc.is_gm() begin say_title("GM: Catacumbas Abrir") say("¿Quieres abrir las Catacumbas?[ENTER]") local s = select("Si","No") if s == 2 then return end say_title("GM: Abrir Catacumbas") say("Operación Completada.[ENTER]") game.set_event_flag("catacomb_next_open", 1) end when 20351.chat."Entrada a Catacumbas" begin local mob_race = npc.get_race() local min_lev = catacombe.GetScriptData('min_lev') say_title(mob_name(mob_race)) if pc.get_level() < min_lev then say("Debes tener el mínimo Nivel "..min_lev) say("Para entrar.[ENTER]") return end if pc.count_item(catacombe.GetScriptData('testa_ristretta')) == 0 then say("Tienes que tener este Item para") say("Entrar:[ENTER]") say_item_vnum(catacombe.GetScriptData('testa_ristretta')) return end if get_time() < game.get_event_flag("catacomb_next_open") then say("Las Catacumbas están cerradas.[ENTER]") return end say("Hola aventurero. Las catacumbas del diablo") say("son un lugar muy peligroso.[ENTER]") local s = select("Entrar","No Entrar") if s == 2 then return end say_title(mob_name(mob_race)) say("Ok Viajero, ahora será telestrasportado.") say("Preste mucha atención.[ENTER]") wait() pc.warp((catacombe.GetScriptData('x')+80)*100, (catacombe.GetScriptData('y')+60)*100) end --** --** Primer Piso --** when login with pc.get_map_index()== catacombe.GetScriptData('map_index') begin pc.set_warp_location(15, 3152, 12092) end when logout with pc.get_map_index()== catacombe.GetScriptData('map_index') begin pc.delqf("mob_killed") end when 2501.kill or 2502.kill or 2503.kill or 2504.kill with pc.get_map_index()== catacombe.GetScriptData('map_index') begin pc.setqf("mob_killed", pc.getqf("mob_killed")+1) if math.mod(pc.getqf("mob_killed"), catacombe.GetScriptData('drop_frequency')) == 0 then game.drop_item_with_ownership(catacombe.GetScriptData('chiave_anime_cristallo'), 1) end end when 30101.take with item.get_vnum() == catacombe.GetScriptData('chiave_anime_cristallo') and pc.get_map_index() == catacombe.GetScriptData('map_index') begin say_title(mob_name(30101)) if get_time() < game.get_event_flag("catacomb_next_open") then say("Las Catacumbas están cerradas.[ENTER]") return end if party.is_party() and not party.is_leader() then say("Sólo arrastra el objeto sobre") say("El NPC.[ENTER]") return end pc.remove_item(item.get_vnum(), 1) say("Abrieron el seloo hacia.") say("El paso a la segunda planta.[ENTER]") if party.is_party() then say("Serán llevados, suerte viejeros.[ENTER]") end wait() game.set_event_flag("catacomb_next_open", get_time()+60*catacombe.GetScriptData('close_time')) pc.setqf("is_master", 1) timer("enter_floor_2", 2) end --** --** Entrada dungeon y timer --** when login with catacombe.IsInDungeon(pc.get_map_index()) begin pc.set_warp_location(15, 3152, 12092) if pc.getqf("is_master") == 1 then timer("start_timer", 2) end end when logout with catacombe.IsInDungeon(pc.get_map_index()) begin pc.remove_item(catacombe.GetScriptData('totem_smorfia'), pc.count_item(catacombe.GetScriptData('totem_smorfia'))) pc.remove_item(catacombe.GetScriptData('chiave_anime_cristallo'), pc.count_item(catacombe.GetScriptData('chiave_anime_cristallo'))) pc.delqf("is_master") end when start_timer.timer begin d.notice("Les que da "..catacombe.GetScriptData('close_time').." minutos de su tiempo.") d.notice("para complezar Catacumbas!") notice_all("Las Catacumbas se cerrarán en "..catacombe.GetScriptData('close_time').." minutos a partir de ahora.") server_timer("catacomb_open", 60*catacombe.GetScriptData('close_time'), pc.get_map_index()) end when catacomb_open.server_timer begin notice_all("Las Catacumbas están abiertas de nuevo.!") if d.select(get_server_timer_arg()) then clear_server_timer("catacomb_open", get_server_timer_arg()) d.notice("Tiempo Acabado, serán sacados de Catacumbas.") d.exit_all() end end --** --** Segundo piso --** when enter_floor_2.timer begin d.new_jump_all(15, 3617, 12075) d.regen_file("data/dungeon/catacumbas/dc_regen_ebene2.txt") d.setf("catacomb_floor", 2) end when 30103.take with item.get_vnum() == catacombe.GetScriptData('testa_ristretta') and catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 2 begin if pc.getqf("is_master") == 1 then pc.remove_item(item.get_vnum(), 1) d.notice("Serán llevados a la siguente planta") timer("enter_floor_3", 3) else d.notice("Solo el guerrero fuerte podrá poner el item.") end end --** --** Tercer piso --** when enter_floor_3.timer begin d.jump_all(3572, 12760) d.clear_regen() d.kill_all() d.regen_file("data/dungeon/catacumbas/dc_regen_ebene3.txt") d.setf("catacomb_floor", 3) d.notice("Buscar el metin correcto para avanzar!") local coord_metin = {{1340,348},{1243,357},{1334,151},{1252,148},{1149,148},{1139,244},{1148,355}} local right_metin = math.mod(os.time(),table.getn(coord_metin))+1 for i = 1,table.getn(coord_metin) do if i == right_metin then local v = d.spawn_mob(8025, coord_metin[i][1], coord_metin[i][2]) d.set_unique("real", v) --chat(coord_metin[i][1].." "..coord_metin[i][2]) else d.spawn_mob(8025, coord_metin[i][1], coord_metin[i][2]) end end end when 8025.kill with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 3 begin if d.is_unique_dead("real") then d.notice("El metin destruido es el correcto!") d.notice("Serán llevados a la siguiente planta.") timer("enter_floor_4", 3) else d.notice("El metin destruido es falso.") end end --** --** Cuarto Piso --** when enter_floor_4.timer begin d.jump_all(3369, 12354) d.clear_regen() d.kill_all() local map_n = math.mod(os.time(),4)+1 d.regen_file("data/dungeon/catacumbas/piano_4_"..map_n.."_catacombe.txt") d.setf("catacomb_floor", 4) d.notice("Encontrar el camino correcto para avanzar!") end when 20352.chat."Avanzar a la Sig. Planta" with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 4 begin if pc.getqf("is_master") == 1 then say("Muy bien, has conseguido llegar hasta aquí.") say("En la siguiente planta te enfrentarás con el") say("jefe de las catacumbas.[ENTER]") wait() setskin(0) d.notice("Serán llevados a la siguiente planta.") timer("enter_floor_5", 3) else say("Sólo el guerrero del grupo o subida podrá recompensar.[ENTER]") end end --** --** Quinto Piso --** when enter_floor_5.timer begin d.jump_all(3917, 12431) d.clear_regen() d.kill_all() d.regen_file("data/dungeon/catacumbas/dc_regen_ebene5.txt") d.setf("catacomb_floor", 5) d.setf("correct_killed", 0) d.notice("Encontrar y matar al Tártaro correcto para avanzar!") local coord_boss = {{848,570},{678,832},{685,632},{1031,637},{1003,856}} local right_boss = math.mod(os.time(),table.getn(coord_boss))+1 for i = 1,table.getn(coord_boss) do if i == right_boss then local v = d.spawn_mob(2591, coord_boss[i][1], coord_boss[i][2]) d.set_unique("real", v) --chat(coord_boss[i][1].." "..coord_boss[i][2]) else d.spawn_mob(2591, coord_boss[i][1], coord_boss[i][2]) end end end when 2591.kill with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 5 begin if d.is_unique_dead("real") and d.getf("correct_killed") == 0 then d.setf("correct_killed", 1) d.notice("El Tártaro correcto fue destruido!") d.notice("Arrastra el Totém al pilar o NPC!") game.drop_item_with_ownership(catacombe.GetScriptData('totem_smorfia'), 1) else d.notice("El Tártaro es falso, no es el correcto.") end end when 30102.take with item.get_vnum() == catacombe.GetScriptData('totem_smorfia') begin pc.remove_item(item.get_vnum(), 1) d.notice("Serán llevados a la siguiente planta!") timer("enter_floor_6", 3) end --** --** Sexto Piso --** when enter_floor_6.timer begin d.jump_all(4372, 12732) d.clear_regen() d.kill_all() d.regen_file("data/dungeon/catacumbas/dc_regen_ebene6.txt") d.setf("catacomb_floor", 6) d.notice("Mata al Caronte para avanzar!") end when 2597.kill with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 6 begin notice_all(" ".. pc.get_name() .." Ha destruido la Muerte!") notice_all("Felicitaciones Guerrero.") d.notice("El Caronte fue destruido!") d.notice("Serán llevados a la última planta, Suerte!") timer("enter_floor_7", 3) end --** --** Septimo Piso --** when enter_floor_7.timer begin d.jump_all(3146, 13142) d.clear_regen() d.kill_all() d.regen_file("data/dungeon/catacumbas/dc_regen_ebene7.txt") d.setf("catacomb_floor", 7) d.notice("Acaba con Azrael!") end when 2598.kill with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 7 begin if catacombe.CanDrop(pc.get_level()) then game.drop_item_with_ownership(catacombe.GetScriptData('forziere_azrael'), 1) end notice_all("El Personaje o el Grupo de ".. pc.get_name() .." ha destruido al Azrael!") d.clear_regen() d.notice("Han acabado con el Mal del Azrael, FELICITACIONES!") d.notice("Tienen 20 segundos, y serán sacados de la mazmorra.") timer("exit_catacomb", 20) end when exit_catacomb.timer begin d.exit_all() end end end Por general cambian el index del mapa que es 15 (en mi caso), ustedes lo cambian por su número de index, es totalmente editable, cuenta con activación de las catacumbas por un gm.
     
    Poner en quest_functions:

    DragonLair.startRaid GetScriptData(data) IsInDungeon(pc_index) CanDrop(pc_level) catacombe.CanDrop catacombe.GetScriptData game.drop_item_with_ownership os.time rawget Introducir en player-->query-->new query: Estos son los portales.

    INSERT INTO mob_proto VALUES ('10201', '. 70 580', 0x2E20373020353830, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10202', '. 70 668', 0x2E20373020363638, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10203', '. 131 665', 0x2E2031333120363635, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10204', '. 183 566', 0x2E2031383320353636, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10205', '. 292 567', 0x2E203239322020353637, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10206', '. 281 636', 0x2E2032383120363336, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10207', '. 186 667', 0x2E2031383620363637, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10208', '. 345 558', 0x2E2033343520353538, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10209', '. 402 561', 0x2E2034303220353631, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10210', '. 68 811', 0x2E20363820383131, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10211', '. 140 818', 0x2E2031343020383138, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10212', '. 189 716', 0x2E2031383920373136, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10213', '. 274 716', 0x2E2032373420373136, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10214', '. 232 780', 0x2E2032333220373830, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10215', '. 325 779', 0x2E2033323520373739, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10216', '. 274 838', 0x2E2032373420383338, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10217', '. 359 717', 0x2E2033353920373137, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10218', '. 415 711', 0x2E2034313520373131, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10219', '. 368 776', 0x2E2033363820373736, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10220', '. 366 815', 0x2E2033363620383135, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10221', '. 350 840', 0x2E2033353020383430, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10222', '. 424 842', 0x2E2034323420383432, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10223', '. 94 843', 0x2E20393420383433, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10224', '. 59 864', 0x2E20353920383634, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10225', '. 138 864', 0x2E2031333820383634, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10226', '. 54 920', 0x2E20353420393230, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10227', '. 140 919', 0x2E2031343020393139, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10228', '. 90 945', 0x2E20393020393435, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10229', '. 194 865', 0x2E2031393420383635, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10230', '. 243 857', 0x2E2032343320383537, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10231', '. 312 856', 0x2E2033313220383536, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10232', '. 368 894', 0x2E2033363820383934, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10233', '. 406 875', 0x2E2034303620383735, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10235', '. 500 790', 0x2E2035303020373930, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10234', '. 427 934', 0x2E2034323720393334, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); Descargar regen's + la parte del servidor + regen portales (PARTE DEL SERVIDOR OBLIGATORIA PONER, PORQUE ES DIFERENTE SU SERVER_ATTR):
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Solamente deberán cambiar las coordenadas de cada planta, y listo.
     
    Créditos quest: BlackYuko
     
    Saludos.
  8. Me Gusta
    fuuton97 got a reaction from Sefa Kurnaz in [Guia Definitiva] Implementar Armaduras   
    De Maravilla, excelente, muy bueno cuando se me escapan algunas armaduras y no salen.
  9. Me Gusta
    fuuton97 got a reaction from Metin2 Soul in [QUEST + REGEN'S]Catacumbas funcionales.   
    Hola zoneros, hoy les vengo a traer la quest de las catacumbas del diablo, 100% probada por mi, esta es la quest de BlackYuko. Cuenta con los portales como el oficial, en un máximo de 99% del oficial.
     
    Quest:

    --** --** Script Catacumbas del Diablo. --** by BlackYuko Skype: manu___88 --** quest catacombe begin state start begin --** --** Funciones --** function GetScriptData(data) local map_data = {['map_index'] = 15, -- index del mapa de catacumbas ['x'] = 3072, ['y'] = 12032, -- coordenadas X y Y, las del mapa catacumbas ['drop_frequency'] = 1000, -- frecuencia en los mob para que dropeen la llave cristal del alma ['min_lev'] = 100, -- nivel minimo para entrar a catacumbas, ['close_time'] = 60, -- tiempo (minutos) para estar en catacumbas ['testa_ristretta'] = 30320, -- vnum item de entrada que pide ['chiave_anime_cristallo'] = 30311, -- vnum item llave cistal del alma ['totem_smorfia'] = 30312, -- vnum totem ['forziere_azrael'] = 219, -- vnum drop al matar al azrael ['min_drop_lev'] = 100, -- nivel minimo para dropeo de la llave cristal ['max_drop_lev'] = 210} -- nivel maximo para dropeo de la lalve cristal return rawget(map_data, data) end function IsInDungeon(pc_index) local map_index = catacombe.GetScriptData('map_index') return (pc.in_dungeon() and pc_index >= map_index*10000 and pc_index < (map_index+1)*10000) end function CanDrop(pc_level) return (pc_level >= catacombe.GetScriptData('min_drop_lev') and pc_level <= catacombe.GetScriptData('max_drop_lev')) end --** --** NPC - Guardian entrada a catacumbas --** when 20351.chat."GM: Catacumbas Abrir" with pc.is_gm() begin say_title("GM: Catacumbas Abrir") say("¿Quieres abrir las Catacumbas?[ENTER]") local s = select("Si","No") if s == 2 then return end say_title("GM: Abrir Catacumbas") say("Operación Completada.[ENTER]") game.set_event_flag("catacomb_next_open", 1) end when 20351.chat."Entrada a Catacumbas" begin local mob_race = npc.get_race() local min_lev = catacombe.GetScriptData('min_lev') say_title(mob_name(mob_race)) if pc.get_level() < min_lev then say("Debes tener el mínimo Nivel "..min_lev) say("Para entrar.[ENTER]") return end if pc.count_item(catacombe.GetScriptData('testa_ristretta')) == 0 then say("Tienes que tener este Item para") say("Entrar:[ENTER]") say_item_vnum(catacombe.GetScriptData('testa_ristretta')) return end if get_time() < game.get_event_flag("catacomb_next_open") then say("Las Catacumbas están cerradas.[ENTER]") return end say("Hola aventurero. Las catacumbas del diablo") say("son un lugar muy peligroso.[ENTER]") local s = select("Entrar","No Entrar") if s == 2 then return end say_title(mob_name(mob_race)) say("Ok Viajero, ahora será telestrasportado.") say("Preste mucha atención.[ENTER]") wait() pc.warp((catacombe.GetScriptData('x')+80)*100, (catacombe.GetScriptData('y')+60)*100) end --** --** Primer Piso --** when login with pc.get_map_index()== catacombe.GetScriptData('map_index') begin pc.set_warp_location(15, 3152, 12092) end when logout with pc.get_map_index()== catacombe.GetScriptData('map_index') begin pc.delqf("mob_killed") end when 2501.kill or 2502.kill or 2503.kill or 2504.kill with pc.get_map_index()== catacombe.GetScriptData('map_index') begin pc.setqf("mob_killed", pc.getqf("mob_killed")+1) if math.mod(pc.getqf("mob_killed"), catacombe.GetScriptData('drop_frequency')) == 0 then game.drop_item_with_ownership(catacombe.GetScriptData('chiave_anime_cristallo'), 1) end end when 30101.take with item.get_vnum() == catacombe.GetScriptData('chiave_anime_cristallo') and pc.get_map_index() == catacombe.GetScriptData('map_index') begin say_title(mob_name(30101)) if get_time() < game.get_event_flag("catacomb_next_open") then say("Las Catacumbas están cerradas.[ENTER]") return end if party.is_party() and not party.is_leader() then say("Sólo arrastra el objeto sobre") say("El NPC.[ENTER]") return end pc.remove_item(item.get_vnum(), 1) say("Abrieron el seloo hacia.") say("El paso a la segunda planta.[ENTER]") if party.is_party() then say("Serán llevados, suerte viejeros.[ENTER]") end wait() game.set_event_flag("catacomb_next_open", get_time()+60*catacombe.GetScriptData('close_time')) pc.setqf("is_master", 1) timer("enter_floor_2", 2) end --** --** Entrada dungeon y timer --** when login with catacombe.IsInDungeon(pc.get_map_index()) begin pc.set_warp_location(15, 3152, 12092) if pc.getqf("is_master") == 1 then timer("start_timer", 2) end end when logout with catacombe.IsInDungeon(pc.get_map_index()) begin pc.remove_item(catacombe.GetScriptData('totem_smorfia'), pc.count_item(catacombe.GetScriptData('totem_smorfia'))) pc.remove_item(catacombe.GetScriptData('chiave_anime_cristallo'), pc.count_item(catacombe.GetScriptData('chiave_anime_cristallo'))) pc.delqf("is_master") end when start_timer.timer begin d.notice("Les que da "..catacombe.GetScriptData('close_time').." minutos de su tiempo.") d.notice("para complezar Catacumbas!") notice_all("Las Catacumbas se cerrarán en "..catacombe.GetScriptData('close_time').." minutos a partir de ahora.") server_timer("catacomb_open", 60*catacombe.GetScriptData('close_time'), pc.get_map_index()) end when catacomb_open.server_timer begin notice_all("Las Catacumbas están abiertas de nuevo.!") if d.select(get_server_timer_arg()) then clear_server_timer("catacomb_open", get_server_timer_arg()) d.notice("Tiempo Acabado, serán sacados de Catacumbas.") d.exit_all() end end --** --** Segundo piso --** when enter_floor_2.timer begin d.new_jump_all(15, 3617, 12075) d.regen_file("data/dungeon/catacumbas/dc_regen_ebene2.txt") d.setf("catacomb_floor", 2) end when 30103.take with item.get_vnum() == catacombe.GetScriptData('testa_ristretta') and catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 2 begin if pc.getqf("is_master") == 1 then pc.remove_item(item.get_vnum(), 1) d.notice("Serán llevados a la siguente planta") timer("enter_floor_3", 3) else d.notice("Solo el guerrero fuerte podrá poner el item.") end end --** --** Tercer piso --** when enter_floor_3.timer begin d.jump_all(3572, 12760) d.clear_regen() d.kill_all() d.regen_file("data/dungeon/catacumbas/dc_regen_ebene3.txt") d.setf("catacomb_floor", 3) d.notice("Buscar el metin correcto para avanzar!") local coord_metin = {{1340,348},{1243,357},{1334,151},{1252,148},{1149,148},{1139,244},{1148,355}} local right_metin = math.mod(os.time(),table.getn(coord_metin))+1 for i = 1,table.getn(coord_metin) do if i == right_metin then local v = d.spawn_mob(8025, coord_metin[i][1], coord_metin[i][2]) d.set_unique("real", v) --chat(coord_metin[i][1].." "..coord_metin[i][2]) else d.spawn_mob(8025, coord_metin[i][1], coord_metin[i][2]) end end end when 8025.kill with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 3 begin if d.is_unique_dead("real") then d.notice("El metin destruido es el correcto!") d.notice("Serán llevados a la siguiente planta.") timer("enter_floor_4", 3) else d.notice("El metin destruido es falso.") end end --** --** Cuarto Piso --** when enter_floor_4.timer begin d.jump_all(3369, 12354) d.clear_regen() d.kill_all() local map_n = math.mod(os.time(),4)+1 d.regen_file("data/dungeon/catacumbas/piano_4_"..map_n.."_catacombe.txt") d.setf("catacomb_floor", 4) d.notice("Encontrar el camino correcto para avanzar!") end when 20352.chat."Avanzar a la Sig. Planta" with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 4 begin if pc.getqf("is_master") == 1 then say("Muy bien, has conseguido llegar hasta aquí.") say("En la siguiente planta te enfrentarás con el") say("jefe de las catacumbas.[ENTER]") wait() setskin(0) d.notice("Serán llevados a la siguiente planta.") timer("enter_floor_5", 3) else say("Sólo el guerrero del grupo o subida podrá recompensar.[ENTER]") end end --** --** Quinto Piso --** when enter_floor_5.timer begin d.jump_all(3917, 12431) d.clear_regen() d.kill_all() d.regen_file("data/dungeon/catacumbas/dc_regen_ebene5.txt") d.setf("catacomb_floor", 5) d.setf("correct_killed", 0) d.notice("Encontrar y matar al Tártaro correcto para avanzar!") local coord_boss = {{848,570},{678,832},{685,632},{1031,637},{1003,856}} local right_boss = math.mod(os.time(),table.getn(coord_boss))+1 for i = 1,table.getn(coord_boss) do if i == right_boss then local v = d.spawn_mob(2591, coord_boss[i][1], coord_boss[i][2]) d.set_unique("real", v) --chat(coord_boss[i][1].." "..coord_boss[i][2]) else d.spawn_mob(2591, coord_boss[i][1], coord_boss[i][2]) end end end when 2591.kill with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 5 begin if d.is_unique_dead("real") and d.getf("correct_killed") == 0 then d.setf("correct_killed", 1) d.notice("El Tártaro correcto fue destruido!") d.notice("Arrastra el Totém al pilar o NPC!") game.drop_item_with_ownership(catacombe.GetScriptData('totem_smorfia'), 1) else d.notice("El Tártaro es falso, no es el correcto.") end end when 30102.take with item.get_vnum() == catacombe.GetScriptData('totem_smorfia') begin pc.remove_item(item.get_vnum(), 1) d.notice("Serán llevados a la siguiente planta!") timer("enter_floor_6", 3) end --** --** Sexto Piso --** when enter_floor_6.timer begin d.jump_all(4372, 12732) d.clear_regen() d.kill_all() d.regen_file("data/dungeon/catacumbas/dc_regen_ebene6.txt") d.setf("catacomb_floor", 6) d.notice("Mata al Caronte para avanzar!") end when 2597.kill with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 6 begin notice_all(" ".. pc.get_name() .." Ha destruido la Muerte!") notice_all("Felicitaciones Guerrero.") d.notice("El Caronte fue destruido!") d.notice("Serán llevados a la última planta, Suerte!") timer("enter_floor_7", 3) end --** --** Septimo Piso --** when enter_floor_7.timer begin d.jump_all(3146, 13142) d.clear_regen() d.kill_all() d.regen_file("data/dungeon/catacumbas/dc_regen_ebene7.txt") d.setf("catacomb_floor", 7) d.notice("Acaba con Azrael!") end when 2598.kill with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 7 begin if catacombe.CanDrop(pc.get_level()) then game.drop_item_with_ownership(catacombe.GetScriptData('forziere_azrael'), 1) end notice_all("El Personaje o el Grupo de ".. pc.get_name() .." ha destruido al Azrael!") d.clear_regen() d.notice("Han acabado con el Mal del Azrael, FELICITACIONES!") d.notice("Tienen 20 segundos, y serán sacados de la mazmorra.") timer("exit_catacomb", 20) end when exit_catacomb.timer begin d.exit_all() end end end Por general cambian el index del mapa que es 15 (en mi caso), ustedes lo cambian por su número de index, es totalmente editable, cuenta con activación de las catacumbas por un gm.
     
    Poner en quest_functions:

    DragonLair.startRaid GetScriptData(data) IsInDungeon(pc_index) CanDrop(pc_level) catacombe.CanDrop catacombe.GetScriptData game.drop_item_with_ownership os.time rawget Introducir en player-->query-->new query: Estos son los portales.

    INSERT INTO mob_proto VALUES ('10201', '. 70 580', 0x2E20373020353830, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10202', '. 70 668', 0x2E20373020363638, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10203', '. 131 665', 0x2E2031333120363635, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10204', '. 183 566', 0x2E2031383320353636, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10205', '. 292 567', 0x2E203239322020353637, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10206', '. 281 636', 0x2E2032383120363336, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10207', '. 186 667', 0x2E2031383620363637, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10208', '. 345 558', 0x2E2033343520353538, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10209', '. 402 561', 0x2E2034303220353631, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10210', '. 68 811', 0x2E20363820383131, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10211', '. 140 818', 0x2E2031343020383138, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10212', '. 189 716', 0x2E2031383920373136, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10213', '. 274 716', 0x2E2032373420373136, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10214', '. 232 780', 0x2E2032333220373830, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10215', '. 325 779', 0x2E2033323520373739, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10216', '. 274 838', 0x2E2032373420383338, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10217', '. 359 717', 0x2E2033353920373137, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10218', '. 415 711', 0x2E2034313520373131, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10219', '. 368 776', 0x2E2033363820373736, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10220', '. 366 815', 0x2E2033363620383135, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10221', '. 350 840', 0x2E2033353020383430, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10222', '. 424 842', 0x2E2034323420383432, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10223', '. 94 843', 0x2E20393420383433, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10224', '. 59 864', 0x2E20353920383634, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10225', '. 138 864', 0x2E2031333820383634, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10226', '. 54 920', 0x2E20353420393230, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10227', '. 140 919', 0x2E2031343020393139, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10228', '. 90 945', 0x2E20393020393435, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10229', '. 194 865', 0x2E2031393420383635, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10230', '. 243 857', 0x2E2032343320383537, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10231', '. 312 856', 0x2E2033313220383536, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10232', '. 368 894', 0x2E2033363820383934, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10233', '. 406 875', 0x2E2034303620383735, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10235', '. 500 790', 0x2E2035303020373930, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO mob_proto VALUES ('10234', '. 427 934', 0x2E2034323720393334, '1', '9', '0', '1', '', 'NOMOVE', '0', '', '', '0', '', '2', '0', '0', '0', '0', '0', '0', '1', '1', '1', '0', '0', '900', '1', '1', '1', '1', '2000', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); Descargar regen's + la parte del servidor + regen portales (PARTE DEL SERVIDOR OBLIGATORIA PONER, PORQUE ES DIFERENTE SU SERVER_ATTR):
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Solamente deberán cambiar las coordenadas de cada planta, y listo.
     
    Créditos quest: BlackYuko
     
    Saludos.
  10. Me Gusta
    fuuton97 got a reaction from D0n D0vy in [RECOPILACIÓN]Diffs para game r40250.   
    Hola a todos, viendo que esta el nuevo game a la luz, decidí postear los diffs que hasta ahora hay para la versión 40250, es una recopilación hecha por mi del foro epvp.
     
    Para descargar game r40250 & db r40146: 
     
    Game: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.!4M4gGJqJ!I3C7ADURLGzKsK9U-ptSFiBVDs5ZzQV9wtkQx4EUwPI DB: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.!xEQBBAJY!Uf77RitqVqBRqnyfn5qmCQqB-l4EU96kEIB4rL4cjRc  
    Recopilación de diffs para game versión 304083: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
     
    1- Tabla de experiencia (Es necesario meter este diff) :
    004524C0 2- Internal IP fix (Obligatorio introducir este diff), sirve para que no se caiga el login:
    This difference file is created by The Interactive Disassemblergame_r40250000A0C34: 80 90000A0C4D: 80 90000A0CD9: 80 90002169F3: 80 9000216A18: 80 90 3- Fix TimeBomb:
    00215F63: E8 EB00215F64: C8 1100215F65: 69 0000215F66: FA 0000215F67: FF 0000215F68: 3D 0000215F69: AC 0000215F6A: 61 0000215F6B: 11 0000215F6C: 54 0000215F6D: 8D 0000215F6E: 76 0000215F70: 0F 0000215F71: 87 0000215F72: E7 0000215F73: 01 000021615D: C6 000021615E: 05 000021615F: E8 0000216160: D8 0000216161: 7E 0000216162: 08 0000216163: 01 0000216164: E9 0000216165: 0D 0000216166: FE 0000216167: FF 0000216168: FF 00 4- Debe tener este diff: MUST HAVE.
    This difference file has been created by IDA Progame_r40250000F2833: E8 EB000F2834: 38 07000F2835: 2E 00000F2836: 12 00000F2838: 84 00000F2839: C0 00000F283A: 75 00000F283B: 14 00000F2850: 8B 00000F2851: 45 00000F2852: FC 00000F2853: 33 00000F2854: 05 00000F2855: 38 00000F2856: 9F 00000F2857: 6D 00000F2858: 08 00000F2859: C6 00000F285A: 05 00000F285B: E8 00000F285C: D8 00000F285D: 7E 00000F285E: 08 00000F285F: 01 00000F2860: 75 00000F2861: 06 00000F2862: C9 00000F2863: E9 00000F2864: 48 00000F2865: FE 00000F2866: FF 00000F2867: FF 00000F6A9B: E8 EB000F6A9C: D0 0B000F6A9D: EB 00000F6A9E: 11 00000F6AA0: 84 00000F6AA1: C0 00000F6AA2: 0F 00000F6AA3: 85 00000F6AA4: 4E 00000F6AA5: 04 00000F6EF6: E8 00000F6EF7: B5 00000F6EF8: B7 00000F6EF9: FF 00000F6EFA: FF 00000F6EFB: C7 00000F6EFC: 04 00000F6EFD: 24 00000F6EFE: 01 00000F6F02: E8 00000F6F03: 41 00000F6F04: FE 00000F6F05: F0 00000F6F06: FF 00000F712C: E8 EB000F712D: 3F 0B000F712E: E5 00000F712F: 11 00000F7131: 84 00000F7132: C0 00000F7133: 0F 00000F7134: 85 00000F7135: C9 00000F7136: 03 00000F7502: E8 00000F7503: A9 00000F7504: B1 00000F7505: FF 00000F7506: FF 00000F7507: C7 00000F7508: 04 00000F7509: 24 00000F750A: 01 00000F750E: 89 00000F750F: F6 00000F7510: E8 00000F7511: 33 00000F7512: F8 00000F7513: F0 00000F7514: FF 0000215670: 55 C300215671: 89 0000215672: E5 0000215673: 83 0000215674: EC 0000215675: 18 0000215676: A1 0000215677: 38 0000215678: 9F 0000215679: 6D 000021567A: 08 000021567B: 89 000021567C: 45 000021567D: FC 000021567E: 31 000021567F: C0 0000215680: 8B 0000215681: 55 0000215682: FC 0000215683: 33 0000215684: 15 0000215685: 38 0000215686: 9F 0000215687: 6D 0000215688: 08 0000215689: 75 000021568A: 02 000021568B: C9 000021568C: C3 000021568D: E8 000021568E: 76 000021568F: 18 0000215690: DF 0000215691: FF 0000215C20: 55 C300215C21: 89 0000215C22: E5 0000215C23: 83 0000215C24: EC 0000215C25: 18 0000215C26: A1 0000215C27: 38 0000215C28: 9F 0000215C29: 6D 0000215C2A: 08 0000215C2B: 89 0000215C2C: 45 0000215C2D: FC 0000215C2E: 31 0000215C2F: C0 0000215C30: 8B 0000215C31: 45 0000215C32: FC 0000215C33: 33 0000215C34: 05 0000215C35: 38 0000215C36: 9F 0000215C37: 6D 0000215C38: 08 0000215C39: 75 0000215C3A: 06 0000215C3B: C9 0000215C3C: E9 0000215C3D: 1F 0000215C3E: AB 0000215C3F: F0 0000215C40: FF 0000215C41: E8 0000215C42: C2 0000215C43: 12 0000215C44: DF 0000215C45: FF 0000217945: E8 EB00217946: D6 0300217947: E2 0000217948: FF 0000217949: FF 00 5- Máximo Nivel 150:
    This difference file has been created by IDA Progame_r4025000098B3E: 78 96000A5C44: 78 96 Máximo Nivel 255:
    This difference file is created by The Interactive Disassemblergame_r40250_3200098B3E: 78 FF000A5C44: 78 FF 6- Puntos de estatus 95:
    This difference file is created by The Interactive Disassemblergame_r40250_3200030E8E: 5A 5F00035202: 5A 5F00035216: 5A 5F0008B950: 59 5E00096F5F: 5A 5F00096F78: 5A 5F00096FA9: 5A 5F00097111: 5A 5F0009712E: 5A 5F00097155: 5A 5F00097172: 5A 5F000971A3: 5A 5F 7- all_item_can_belt_inventory2:
    This difference file is created by The Interactive Disassembler game_r40250 00052378: 77 72 00052387: 03 50 00052388: 74 7C 000523A5: E8 90 000523A6: A6 90 000523A7: 52 90 000523A8: FD 90 000523A9: FF 90 8- Activar el 6/7 bonus:
    This difference file is created by The Interactive Disassembler game_r40250 0005BD07: 55 65 0005BD08: 4A 49 0005C7A3: B9 C9 0005C7A4: 3F 3E 9- Teletranpostadores fix:
    This difference file is created by The Interactive Disassembler game_r40250 001049F2: E8 90 001049F3: B9 90 001049F4: 29 90 001049F5: F2 90 001049F6: FF 90 001049FA: E8 90 001049FB: 11 90 001049FC: 3E 90 001049FD: F2 90 001049FE: FF 90 10- Cristal de visión:
    This difference file is created by The Interactive Disassembler game_r40250 001060C9: 01 00 001060F1: 02 00 00106108: E8 90 00106109: B3 90 0010610A: 8C 90 0010610B: F4 90 0010610C: FF 90 11- Chat Global:
    This difference file is created by The Interactive Disassembler game_r40250 0010D85D: E8 90 0010D85E: FE 90 0010D85F: 6B 90 0010D860: F1 90 0010D861: FF 90 0010D864: 74 90 0010D865: CA 90 12- Apagar el comando shutdown:
    This difference file is created by The Interactive Disassembler game_r40250 00216163: 01 00 13- Hacer compras a 0 Yang:
    This difference file is created by The Interactive Disassemblergame_40250_32001AAA21: 8F 8D 14- 255 Mapas máximo:
    game_r40250 MAX_MAPS_PER_CORE 255000BF64A: 20 FF 15- Monturas Máximas:
    game_r40250 MAX Mounts00042D19: 0F FA 16- Poder juntar 255 ítems:
    game_r40250 255 Stackable items000506C5: C8 FF00050A6D: C7 FE0005283C: C8 FF00053369: C8 FF0009A340: C8 FF00110384: C8 FF00113E9E: C8 FF00118449: C8 FF 17- Botar ítems y desaparecer en:
    3 segundos:
    game_r40250 3 seconds item disappearing0005212A: 2C 030005212B: 01 00 5 segundos:
    game_r40250 5 seconds item disappearing0005212A: 2C 050005212B: 01 00 18- Bonos cambiado a 0 segundos:
    game_r40250 0 Sec Boni change time0005E4E1: 0A 00 19- No se admiten animales de nivel superior:
    This difference file is created by The Interactive Disassembler game_r40250 00030E97: 0A 00 00030EC1: E8 90 00030EC2: EA 90 00030EC3: F6 90 00030EC4: 01 90 00030EC5: 00 90 20- Skills a 17:
    This difference file is created by The Interactive Disassembler game_r40250 0006FBF9: 14 11 21- Check Client Version fix:
    This difference file has been created by IDA Progame_r4025000100819: 8E 84 22- Hacer bonificación visible en tienda:
    This difference file is created by The Interactive Disassemblergame_r40250_32001B2941: 88 0F001B2942: 11 21001B2CDD: 88 0F001B2CDE: 11 21 23- Fix Bug /war:
    game402500008DF69: 8E 8 Estos son los diffs hasta ahora, cabe decir que estos diffs solo sirven para esta versión (40250), y no para la 40424.
     
    Se actualizará cada ves que lo requiera.
     
     
    Saludos.
     
    Última actualización:
    10/02/14 Change Log:* Agregado Diff: Fix bug /war
  11. Me Gusta
    fuuton97 got a reaction from Teo García in [NEW]Dungeon: *TEMPLO PERDIDO*.   
    Hola, les vengo a regalar esta quest tipo dungeon hecha por mi, la tengo en mi servidor como dungeon y va súper bien, espero que les guste, les dejo los regen también.
     
    Quest:
     

    ---------------- -Quest By Fuuton97 -www.metin2skill.com & www.fuuton97.com -Dungeon Templo Perdido ---------------- quest templo_perdido begin state start begin when login begin if pc.get_map_index() == 42 then pc.set_warp_location(42, 216, 3335) end end when 20095.chat."Mapa Templo Perdido" begin if pc.get_level() <= 209 then say_title("*ANCIANO*:") say("") say_reward("Usted debe ser Nivel 210 para Entrar.!") return end say_title("*TEMPLO PERDIDO*") say("") say("Guerrero ".. pc.get_name() .." estás hablando con el anciano") say("que te va a llevar al mundo donde han despertados las bestias.") say("Te encomiendo este reto viajero") say("Estos mob te dropearán 5to bonos.") say("Cyclops, bestias jamas antes vistas en este mundo.") say("Recuerda deberás ser Nivel 210 para Entrar.") say("Suerte Viajeros...!!") say("") say_reward("Quieres entrar?") local templo = select("Si" , "No") if templo == 1 then pc.warp(21600, 336000) else say_title("*ANCIANO*:") say("Vale, vuelve cuando estés listo.") say("By Metin2 Skill - www.metin2skill.com") return end end when 20094.chat."Acceso al Templo Perdido" with pc.get_map_index() == 42 begin timer("entrada_templo", 5) chat("Suerte Viajeros") end ---PLANTA:1--- when entrada_templo.timer begin d.new_jump_all(42, 216, 3367) d.setf("fuuton", 1) d.regen_file("data/dungeon/fuuton/planta_1.txt") d.notice("Viajeros, destruye el Metin para liberar el Mal de esta primera Planta") d.spawn_mob(8027, 240, 166) end when 8027.kill with d.getf("fuuton") == 1 begin d.notice("Han destruido el Metin del Mal, avanzarán a la 2da Planta.") timer("segunda_planta", 5) end ---PLANTA:2--- when segunda_planta.timer begin d.jump_all(190, 3657) d.setf("fuuton", 2) d.regen_file("data/dungeon/fuuton/planta_2.txt") d.notice("Destruye al Guardían de esta Planta") d.spawn_mob(2738, 186, 405) end when 2738.kill with d.getf("fuuton")== 2 begin d.notice("Han destruido al Guardían") timer("tercera_planta", 5) end ---PLANTA:3--- when tercera_planta.timer begin d.jump_all(501, 3471) d.setf("fuuton", 3) d.setf("metines", 5) d.regen_file("data/dungeon/fuuton/planta_3.txt") d.notice("Destruye los Metines, tienen 5 minutos.") d.spawn_mob(8025, 570, 224) d.spawn_mob(8025, 556, 225) d.spawn_mob(8025, 563, 226) d.spawn_mob(8025, 560, 225) d.spawn_mob(8025, 556, 220) end when 8025.kill and d.getf("fuuton") == 3 begin d.setf("metines", d.getf("metines")-1) if d.getf("metines") == 0 then d.notice("Han destruido todos Metines, ascendereis") timer("cuarta_planta", 5) end d.notice("Han destruido 1 Metin, aun les quedan "..d.getf("metines").." por destruir") end ---PLANTA:4--- when cuarta_planta.timer begin d.jump_all(573, 3904) d.setf("fuuton", 4) d.regen_file("data/dungeon/fuuton/planta_4.txt") d.notice("Matar a los mob y dar con el verdadero.") local fuu = math.random(1, 5) if fuu == 1 then local vid = d.spawn_mob(2740, 544, 582) d.set_unique("real", vid) elseif fuu == 2 then local vid = d.spawn_mob(2740, 545, 567) d.set_unique("real", vid) elseif fuu == 3 then local vid = d.spawn_mob(2740, 599, 555) d.set_unique("real", vid) elseif fuu == 4 then local vid = d.spawn_mob(2740, 578, 556) d.set_unique("real", vid) elseif fuu == 5 then local vid = d.spawn_mob(2740, 589, 565) d.set_unique("real", vid) end end when 2740.kill with pc.in_dungeon() and d.getf("fuuton")== 4 begin if d.is_unique_dead("real") then d.notice("Haveis matado el mob verdadero") d.notice("Ascendereis de planta") timer("quinta_planta", 5) else d.notice("Este mob no es el correcto") end end ---PLANTA:5--- when quinta_planta.timer begin d.jump_all(282, 3993) d.setf("fuuton", 5) d.regen_file("data/dungeon/fuuton/planta_5.txt") d.notice("Mata al Gran Jefe *|CYCLOPS BOSS DEVIL|*") d.spawn_mob(2739, 187, 670) end when 2739.kill with d.getf("fuuton") == 5 begin notice_all("El personaje ".. pc.get_name() .." ha derrotado al Gran Jefe *|CYCLOPS BOSS DEVIL|*") chat("Viajeros, haveís completado el desafio, Metin2 Skill Team - By Fuuton97") timer("final_planta", 60) end ---SALIDA--- when final_planta.timer begin warp_to_village() end end end Si la deseas descargar la dungeon en formato .quest acá:

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Descargar regen's:

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Espero que les guste, un saludo Fuuton97.
  12. Me Gusta
    fuuton97 got a reaction from alvin dos in [NEW]Dungeon: *TEMPLO PERDIDO*.   
    Hola, les vengo a regalar esta quest tipo dungeon hecha por mi, la tengo en mi servidor como dungeon y va súper bien, espero que les guste, les dejo los regen también.
     
    Quest:
     

    ---------------- -Quest By Fuuton97 -www.metin2skill.com & www.fuuton97.com -Dungeon Templo Perdido ---------------- quest templo_perdido begin state start begin when login begin if pc.get_map_index() == 42 then pc.set_warp_location(42, 216, 3335) end end when 20095.chat."Mapa Templo Perdido" begin if pc.get_level() <= 209 then say_title("*ANCIANO*:") say("") say_reward("Usted debe ser Nivel 210 para Entrar.!") return end say_title("*TEMPLO PERDIDO*") say("") say("Guerrero ".. pc.get_name() .." estás hablando con el anciano") say("que te va a llevar al mundo donde han despertados las bestias.") say("Te encomiendo este reto viajero") say("Estos mob te dropearán 5to bonos.") say("Cyclops, bestias jamas antes vistas en este mundo.") say("Recuerda deberás ser Nivel 210 para Entrar.") say("Suerte Viajeros...!!") say("") say_reward("Quieres entrar?") local templo = select("Si" , "No") if templo == 1 then pc.warp(21600, 336000) else say_title("*ANCIANO*:") say("Vale, vuelve cuando estés listo.") say("By Metin2 Skill - www.metin2skill.com") return end end when 20094.chat."Acceso al Templo Perdido" with pc.get_map_index() == 42 begin timer("entrada_templo", 5) chat("Suerte Viajeros") end ---PLANTA:1--- when entrada_templo.timer begin d.new_jump_all(42, 216, 3367) d.setf("fuuton", 1) d.regen_file("data/dungeon/fuuton/planta_1.txt") d.notice("Viajeros, destruye el Metin para liberar el Mal de esta primera Planta") d.spawn_mob(8027, 240, 166) end when 8027.kill with d.getf("fuuton") == 1 begin d.notice("Han destruido el Metin del Mal, avanzarán a la 2da Planta.") timer("segunda_planta", 5) end ---PLANTA:2--- when segunda_planta.timer begin d.jump_all(190, 3657) d.setf("fuuton", 2) d.regen_file("data/dungeon/fuuton/planta_2.txt") d.notice("Destruye al Guardían de esta Planta") d.spawn_mob(2738, 186, 405) end when 2738.kill with d.getf("fuuton")== 2 begin d.notice("Han destruido al Guardían") timer("tercera_planta", 5) end ---PLANTA:3--- when tercera_planta.timer begin d.jump_all(501, 3471) d.setf("fuuton", 3) d.setf("metines", 5) d.regen_file("data/dungeon/fuuton/planta_3.txt") d.notice("Destruye los Metines, tienen 5 minutos.") d.spawn_mob(8025, 570, 224) d.spawn_mob(8025, 556, 225) d.spawn_mob(8025, 563, 226) d.spawn_mob(8025, 560, 225) d.spawn_mob(8025, 556, 220) end when 8025.kill and d.getf("fuuton") == 3 begin d.setf("metines", d.getf("metines")-1) if d.getf("metines") == 0 then d.notice("Han destruido todos Metines, ascendereis") timer("cuarta_planta", 5) end d.notice("Han destruido 1 Metin, aun les quedan "..d.getf("metines").." por destruir") end ---PLANTA:4--- when cuarta_planta.timer begin d.jump_all(573, 3904) d.setf("fuuton", 4) d.regen_file("data/dungeon/fuuton/planta_4.txt") d.notice("Matar a los mob y dar con el verdadero.") local fuu = math.random(1, 5) if fuu == 1 then local vid = d.spawn_mob(2740, 544, 582) d.set_unique("real", vid) elseif fuu == 2 then local vid = d.spawn_mob(2740, 545, 567) d.set_unique("real", vid) elseif fuu == 3 then local vid = d.spawn_mob(2740, 599, 555) d.set_unique("real", vid) elseif fuu == 4 then local vid = d.spawn_mob(2740, 578, 556) d.set_unique("real", vid) elseif fuu == 5 then local vid = d.spawn_mob(2740, 589, 565) d.set_unique("real", vid) end end when 2740.kill with pc.in_dungeon() and d.getf("fuuton")== 4 begin if d.is_unique_dead("real") then d.notice("Haveis matado el mob verdadero") d.notice("Ascendereis de planta") timer("quinta_planta", 5) else d.notice("Este mob no es el correcto") end end ---PLANTA:5--- when quinta_planta.timer begin d.jump_all(282, 3993) d.setf("fuuton", 5) d.regen_file("data/dungeon/fuuton/planta_5.txt") d.notice("Mata al Gran Jefe *|CYCLOPS BOSS DEVIL|*") d.spawn_mob(2739, 187, 670) end when 2739.kill with d.getf("fuuton") == 5 begin notice_all("El personaje ".. pc.get_name() .." ha derrotado al Gran Jefe *|CYCLOPS BOSS DEVIL|*") chat("Viajeros, haveís completado el desafio, Metin2 Skill Team - By Fuuton97") timer("final_planta", 60) end ---SALIDA--- when final_planta.timer begin warp_to_village() end end end Si la deseas descargar la dungeon en formato .quest acá:

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Descargar regen's:

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Espero que les guste, un saludo Fuuton97.
  13. Me Gusta
    fuuton97 got a reaction from caanmasu in [GUIA]Como crear archivos Server_Attr para su Mapa.   
    Buenas gentes de Metin2 Zone, hoy les vengo a hacer esta pequeña guía donde les mostraré como crear su propio server_attr, que es aquel que debe ir en la parte del servidor vía FTP, los que han posteado mapa se han dado cuenta que no viene la cierta parte del mapa que es la de server_attr, esta guía no esta en EPVP, solo el programa que lo postearon, y yo se los vengo a explicar con detalles y lujos. Algunas personas lo que hacen es coger otro server_Attr de otro mapa, pero al meterlo les dará ciertos bug's lo cual es muy molesto, sigan al pie de al letra.
     
    *Programas a Utilizar:
    - SAttr_Tool_v1.
     
    Luego de haber descargado el programa nos dirigimos a descomprimirlo, y seguidamente a abrirlo, verán algo así:

     
    Ahora vamos a la carpeta de ''example_map'', la abren y verán que hay ciertos archivos como estos:

     
     
    Ahora procedemos a borrar todo el contenido de la carpeta dentro, de ''example_map''.
     
    Una vez ya borrado buscamos nuestro mapa, solo la parte del cliente, en este casi sería este: map_limbo, sacado de los de Next.

     
     
    Lo que haremos ahora será copiar los archivos del mapa seleccionado, en este caso el ''map_limbo'', coger sus archivos y pegarlo en la carpeta ''example_map''.
     
    Ya hecho esto procedemos abrir el .xml llamado ''example_map.xml'', verán algo así:

     
    Ahora editamos el ''x="2" y="2", cómo verán el para crear el server_attr solo sirve para mapas hasta 9x9, en este caso mi mapa es de 1x1, cómo mirarlo?, fácil abren el setting.txt y se van en MapSize, y hay se darán cuenta, una ves cambiar el intervalo X y Y, les quedará así:

     
     
    Una ves ya cambiado, procedemos a guardar, OJO: No cambien más nada.
     
    Ahora vamos a la raíz de al carpeta del SAttr_Tool_Release_V1, y cogemos el: ''example_map'' y lo arrastramos al SAttr.exe, les saldrá algo así:

     
     
    Cómo verán les puede que salga este error, que quiere decir este error?, pues que no se encuentra en la ruta que es, entonces lo que tienen que hacer es coger la carpeta, solo la carpeta, ''example_map'' y llevarla al directorio que dice, en este caso sería: C:/ Documents And Senttings/Jaller/example_map/00000/attr.atr' . Cogen su carpeta de example_map y la llevan a esa ruta que les dice, OJO: si no les dice ese error entonces es por que ya pueden hacerlo, y/o omiten este paso.
     
    Ya una vez hecho lo de arriba nos saldrá así, ya arrastrando en example_map.xml al SAttr.exe.

     
     
    Cuando aparezca esto solo dan la tecla enter y listo.
     
    Ahora vamos a la carpeta donde la pusimos para el paso anterior, en mi caso fue este: C:/ Documents And Senttings/Jaller/example_map y vemos si se creo el server_attr, deberá salirle:

     
    Como verán ya se crearon, y se creo el: server_attr.bmp, que es lo que te muestra el mapa, osea todo en cámara hacia arriba:

     
     
    Y listo ya tienen su server_attr creado, solo falta crear la carpeta del mapa para la parte del server, meter elserver_attr y listo ya tendrán todo bien.
     
    Esta guía está hecha por mi 100%, solo sacada de Epvp el programa.
     
    Descarga:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Saludes, y cualquier duda enviarme Mp, o escribir aquí.
  14. Me Gusta
    fuuton97 got a reaction from mebe in [GUIA]Como crear archivos Server_Attr para su Mapa.   
    Buenas gentes de Metin2 Zone, hoy les vengo a hacer esta pequeña guía donde les mostraré como crear su propio server_attr, que es aquel que debe ir en la parte del servidor vía FTP, los que han posteado mapa se han dado cuenta que no viene la cierta parte del mapa que es la de server_attr, esta guía no esta en EPVP, solo el programa que lo postearon, y yo se los vengo a explicar con detalles y lujos. Algunas personas lo que hacen es coger otro server_Attr de otro mapa, pero al meterlo les dará ciertos bug's lo cual es muy molesto, sigan al pie de al letra.
     
    *Programas a Utilizar:
    - SAttr_Tool_v1.
     
    Luego de haber descargado el programa nos dirigimos a descomprimirlo, y seguidamente a abrirlo, verán algo así:

     
    Ahora vamos a la carpeta de ''example_map'', la abren y verán que hay ciertos archivos como estos:

     
     
    Ahora procedemos a borrar todo el contenido de la carpeta dentro, de ''example_map''.
     
    Una vez ya borrado buscamos nuestro mapa, solo la parte del cliente, en este casi sería este: map_limbo, sacado de los de Next.

     
     
    Lo que haremos ahora será copiar los archivos del mapa seleccionado, en este caso el ''map_limbo'', coger sus archivos y pegarlo en la carpeta ''example_map''.
     
    Ya hecho esto procedemos abrir el .xml llamado ''example_map.xml'', verán algo así:

     
    Ahora editamos el ''x="2" y="2", cómo verán el para crear el server_attr solo sirve para mapas hasta 9x9, en este caso mi mapa es de 1x1, cómo mirarlo?, fácil abren el setting.txt y se van en MapSize, y hay se darán cuenta, una ves cambiar el intervalo X y Y, les quedará así:

     
     
    Una ves ya cambiado, procedemos a guardar, OJO: No cambien más nada.
     
    Ahora vamos a la raíz de al carpeta del SAttr_Tool_Release_V1, y cogemos el: ''example_map'' y lo arrastramos al SAttr.exe, les saldrá algo así:

     
     
    Cómo verán les puede que salga este error, que quiere decir este error?, pues que no se encuentra en la ruta que es, entonces lo que tienen que hacer es coger la carpeta, solo la carpeta, ''example_map'' y llevarla al directorio que dice, en este caso sería: C:/ Documents And Senttings/Jaller/example_map/00000/attr.atr' . Cogen su carpeta de example_map y la llevan a esa ruta que les dice, OJO: si no les dice ese error entonces es por que ya pueden hacerlo, y/o omiten este paso.
     
    Ya una vez hecho lo de arriba nos saldrá así, ya arrastrando en example_map.xml al SAttr.exe.

     
     
    Cuando aparezca esto solo dan la tecla enter y listo.
     
    Ahora vamos a la carpeta donde la pusimos para el paso anterior, en mi caso fue este: C:/ Documents And Senttings/Jaller/example_map y vemos si se creo el server_attr, deberá salirle:

     
    Como verán ya se crearon, y se creo el: server_attr.bmp, que es lo que te muestra el mapa, osea todo en cámara hacia arriba:

     
     
    Y listo ya tienen su server_attr creado, solo falta crear la carpeta del mapa para la parte del server, meter elserver_attr y listo ya tendrán todo bien.
     
    Esta guía está hecha por mi 100%, solo sacada de Epvp el programa.
     
    Descarga:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Saludes, y cualquier duda enviarme Mp, o escribir aquí.
  15. Me Gusta
    fuuton97 got a reaction from Marcos Pinheiro in [MiniCurso] - ¿Cómo Empezar a Crear tu Propia Misión?   
    Buenas, y Hola a todos los zoneros y/o visitantes, presentes en el día de hoy, la presente de este Mini-Curso es para enseñarles como crear su propia misión de Metin2, primero que nada comenzaremos con lo principal de una misión de metin2, como es un Mini-Curso no lo alargaré mucho, después de cierto tiempo prudente veré y crearé un CURSO con todo los "juguetes".
     
    Bien, primero que nada necesitaremos la disponibilidad de GANAS y TIEMPO, esos son las partes más fundamentales, y no solo eso, tener mentalidad de creación y difusión. Hay que tener en cuenta que esto conlleva a un proceso de paciencia, puede que les de error si es su primera vez, sino les irá super bien; no obstante con este Mini-Curso que les voy a entregar aprenderán a crear quest de misión de Metin2, espero que aprecien mi tiempo y trabajo, que es 100% para ustedes.
     
    Materiales a Utilizar:
     
    - Un servidor de Metin2, sea hamachi, sin hamachi o Dedicado.
    - Saber compilar las quest o cargar.
     
    Bien, comencemos:
     
    1- Abrimos un archivo .txt en el escritorio, ponemos de nombre: "misión_test", y cambiamos la extensión .txt a .quest, y guardamos.
     
    2- Abrimos el archivo: mision_test.quest con un editor de texto, recomiendo Notepad++. La primera función: Cómo todos saben existe desde se inicia y ejecute la quest, para ellos escribirán esto:

    quest mision_test begin state start begin 3- Toda misión requiere sobre su Nivel para efectuarla, por defecto pondremos nivel 100, y lo colocamos:

    when login or levelup or enter with pc.get_level() == 100 begin La función: "login" dice que al loguearse en el juego saldrá la misión, y "levelup" que al llegar al nivel puesto, en este caso 100 saldrá la misión al instante.
     
    4- Ahora debemos comenzar con un set_state, lo hacemos de esta manera, y lo colocamos:
     

    set_state( mision_test ) Agregamos dos end, para cerrar de el begin de pc.get_level() y el primero de la ejecución:

    end end Hasta ahora les deberá quedar así:

    quest mison_test begin state start begin when login or levelup or enter with pc.get_level() == 100 begin set_state( mision_test ) end end 5- Ahora debemos llamar el state, seguimos y colocamos:

    state mision_test begin 6- Escribimos y ponemos el llamado de when letter:

    when letter begin 7- Ahora ponemos la función de send_letter, osea a mostrar el nombre de la misión que aparecerá, escribimos:

    send_letter("Misión Test By Fuuton97") 8- Cerramos con un "END" por el begin, y escribimos:

    end Hasta el momento la misión debe quedarnos así:

    quest mision_test begin state start begin when login or levelup or enter with pc.get_level() >= 100 begin set_state( mision_test ) end end state mision_test begin when letter begin send_letter("Misión Test By Fuuton97") end 9- Bien, ahora pondremos la función de "button or info", para que al darle click a la misión o el pergamino les salga el escrito o la misión a realizar, y escribimos:

    when button or info begin 10- Seguidamente colocamos la información con las funciones: say, say_title y/o say_reward, y escribimos:

    say_title("Bienvenido a la Misión Test By Fuuton97") say("Hola ".. pc.get_name() .." ,esto es una misión tester") say("en donde tendrás una misión épica.") say("Recuerda que esto es un tester de una misión") say("que está creando Fuuton97 para Metin2 Zone.") say("Destruye un Metin de Nivel 80.")  
    Ese es el texto, ustedes podrán añadirle más texto, con solo seguir los parámetros de "say("")"
     
    11- Agregamos dos "END" y un set_state, y escribimos:

    set_state(test) end end Hasta ahora debería quedarnos así:
     

    quest mision_test begin state start begin when login or levelup or enter with pc.get_level() >= 100 begin set_state( mision_test ) end end state mision_test begin when letter begin send_letter("Misión Test By Fuuton97") end when button or info begin say_title("Bienvenido a la Misión Test By Fuuton97") say("Hola ".. pc.get_name() .." ,esto es una misión tester") say("en donde tendrás una misión épica.") say("Recuerda que esto es un tester de una misión") say("que está creando Fuuton97 para Metin2 Zone.") say("Destruye un Metin de Nivel 80.") set_state(test) end end 12- Ahora agregamos e iniciamos con el state "test" y un letter; y escribimos:

    state test begin when letter begin 13- Escribimos un send_letter y un end al final, y escribimos:

    send_letter("Destruye el Metin - Misión Test By Fuuton97") end 14- Luego escribimos un button or info y su respectivo texto, más 1 end al final, y ponemos:

    when button or info begin say_title("TEST MISIóN:") say_reward( " Vete a las zonas donde esté el Metin de Nivel 80, Mapa Bosque") say("") end Hasta ahora toda la misión debería estar así:
     

    quest mision_test begin state start begin when login or levelup or enter with pc.get_level() >= 100 begin set_state( mision_test ) end end state mision_test begin when letter begin send_letter("Misión Test By Fuuton97") end when button or info begin say_title("Bienvenido a la Misión Test By Fuuton97") say("Hola ".. pc.get_name() .." ,esto es una misión tester") say("en donde tendrás una misión épica.") say("Recuerda que esto es un tester de una misión") say("que está creando Fuuton97 para Metin2 Zone.") say("Destruye un Metin de Nivel 80.") set_state(test) end end state test begin when letter begin send_letter("Destruye el Metin - Misión Test By Fuuton97") end when button or info begin say_title("TEST MISIóN:") say_reward( " Vete a las zonas donde esté el Metin de Nivel 80, Mapa Bosque") say("") end 15- Bien, ahora procederemos a poner la función .kill al metin, para que al destruirlo complete la misión el personaje y di su premio, y escribimos:
     

    when 8025.kill begin 16- Ahora solo nos tocará poner el texto final, y escribimos:

    say_title("Misión TEST ACABADA:!") say("Has acabado con el Metin 80!") say("Misión Test By Fuuton97") say("Recibirás tu recompensa:") say_reward("500.000.000 Exp") say_reward("100.000.000 Yang") 17- Ahora solo nos falta colocar la función de dar yang: pc.change_money(xxxxxxx) y la de experiencia: pc.give_expe2(xxxxxxx), y escribimos:

    pc.change_money(1000000000) pc.give_exp2(5000000000) 18- Añadimos una función de chat(), para texto final, un clear_letter() y cerramos el set de la misión COMPLETADA, y escribimos:

    chat("Has completado la Misión Test.") chat("By Fuuton97.") clear_letter() set_state(__COMPLETE__) 19- Por último añadimos los END'S, más el state de la misión COMPLETADA, y escribimos:

    end end end state __COMPLETE__ begin end end Ahora les deberá que dar la misión TODA COMPLETA y TERMINADA ASí:

    quest mision_test begin state start begin when login or levelup or enter with pc.get_level() >= 100 begin set_state( mision_test ) end end state mision_test begin when letter begin send_letter("Misión Test By Fuuton97") end when button or info begin say_title("Bienvenido a la Misión Test By Fuuton97") say("Hola ".. pc.get_name() .." ,esto es una misión tester") say("en donde tendrás una misión épica.") say("Recuerda que esto es un tester de una misión") say("que está creando Fuuton97 para Metin2 Zone.") say("Destruye un Metin de Nivel 80.") set_state(test) end end state test begin when letter begin send_letter("Destruye el Metin - Misión Test By Fuuton97") end when button or info begin say_title("TEST MISIóN:") say_reward( " Vete a las zonas donde esté el Metin de Nivel 80, Mapa Bosque") say("") end when 8025.kill begin say_title("Misión TEST ACABADA:!") say("Has acabado con el Metin 80!") say("Misión Test By Fuuton97") say("Recibirás tu recompensa:") say_reward("500.000.000 Exp") say_reward("100.000.000 Yang") pc.change_money(1000000000) pc.give_exp2(5000000000) chat("Has completado la Misión Test.") chat("By Fuuton97.") clear_letter() set_state(__COMPLETE__) end end end state __COMPLETE__ begin end end 20- último paso, compilar la quest, solo subimos el archivo cuyo nombre le pusimos que fue: mision_test.quest al directorio vía Winscp a: /home/game/share/locale/germay/quest la suben y dan permisos 777, seguidamente abren le english_list, o hongkong_list y ponen abajo el nombre de la quest: mision_test.quest
     
    Por último compilamos la quest, vamos a nuestro Putty, si es dedicado o en la máquina virtual de Virtual BOX, y ejecutamos este comando:

    ./qc mision_test.quest Y Listo.
     
    Bueno, hemos llegado al final de este MiniCurso sobre cómo crear una misión desde 0, espero que valoren mi tiempo y trabajo, solo exclusivamente para METIN2 ZONE, y si piensan postear en otra parte dejen créditos.
     
    Próximo MiniCurso: Creación de Misión con pc.getqf + asignar un valor de cuantos mob o metines destruir.
     
    Saludos.
  16. Me Gusta
    fuuton97 got a reaction from iMixxx in [DUNGEON]Capítulo II - Cómo hacer una Dungeon (PRINCIPIANTES).   
    Hola, estoy de nuevo aquí trayéndoles el segundo capítulo de DUNGEON, y hoy comenzaremos haciendo paso a paso una dungeon sencilla para principiantes, nos profundizaremos en una dungeon muy eficaz, con funciones generales y de su derivado.
    Si te pasaste el Primer Capítulo te lo dejo aquí:

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Bien, primero que nada, debemos saber que dungeon es lenguaje LUA, y por lo tanto vamos a usar sus funciones ya sean de dungeon o no.
     
    1. Comenzamos haciendo lo inicial, que es lo que toda quest debe llevar:
    quest dungeon_principiante begin state start begin 2. En este paso comenzamos haciendo el cuerpo de la dungeon. Haremos el NPC que nos va a hacer llevar a X mapa para comenzar la dungeon:
    when 20090.chat."Dungeon Principiante" begin say_title("Dungeon:") say("Hola viajero, hoy te llevaré") say("aun magico lugar donde podrás explorar") say("nuevas tierras") say("") say("Quieres ir?") local dungeon = select("Si" , "No") if dungeon == 1 then pc.warp(6521200, 1231200) elseif dungeon == 2 then return end end Bueno, como ven es un simple NPC que te va a llevar a ese X mapa, para comenzar la dungeon.
     
    3. Ahora iremos con el paso dentro del mapa, para darle el comienzo en sí, en este caso pondré que inicie mediante un mob, osea matando a ese mob.
    when 101.kill begin Una vez aniquilado el mob 101, será comenzado la dungeon.
     
    4. Paso seguido ponemos el timer, para que los lleve a comenzar en 5 segundos:
    timer("inicio_dungeon", 5) end   Se preguntarán, ¿Qué es un timer?, pues bien timer quiere decir en su significado literal, tiempo, pero este da inicio en tiempo, ejemplo, si queremos ir a otro lugar ponemos timer, más un nombre para darselo y el tiempo, puede ser en segundos, minutos, etc; también el timer se usa para acabar en un evento o algo.  Esta fue la manera que trate de explicarles, no se si me entiendan bien xD.
     
    5. En este paso ya comenzaremos con el inicio dentro de la dungeon, comenzaremos con el timer que pusimos anteriormente:
    when inicio_dungeon.timer begin 6. Aquí en este paso vamos a usar la primera función "d." de dungeon, y será para que nos lleve a X planta:
    d.new_jump_all(23, 2312, 2122) Explicaré: La función mostrada nos da a ir a todos que se encuentren en ese mapa a esas coordenadas (X y Y), el número 23 que está de primero nos indica el INDEX de ese mapa donde los va a llevar o donde están.
     
    7. El paso séptimo, usaremos nuestra segunda función dungeon, para eso miremos:
    d.setf("fuuton97", 1) Cómo ven pusimos la función "d.setf", donde nos indica un nombre inicial secuencial denominado "fuuton97", cabe decir que se puede colocar cualquier nombre, pero siempre en todos los d.setf se debe colocar el mismo nombre; el número "1", indica que es el primer d.setf, en otras palabras primera planta en la que comenzamos la dungeon.
     
    En este mismo paso colocamos un anunció, para darle ambiente a la dungeon, pero ojo, aquí comenzamos a jugar nuestra imaginación de como haremos divertido esta dungeon. Invocamos al mob con la función "d.spawn_mob".
    Quedaría así:
    d.setf("fuuton97", 1) d.spawn_mob(101, 12312, 123123) d.notice("Están en la Primera Planta!!!!") 8. Seguidamente ponemos a disposición el "juego", llamaremos a un mob que nos permitirá ir a la segunda planta. Le hacemos ambiente de diálogo a la dungeon:
    when 101.kill d.getf("fuuton97") == 1 begin d.notice("Havepis destruido al Perro Salvaje...") d.notice("Avanzarán a la segunda planta.") Cómo ven vemos otra función nueva para ustedes, y es la "d.getf" que es el complemento de "d.setf", en esa hay que colocar el nombre que dimos para todas las plantas, osea fuuton97, en mi caso, pero ustedes pueden colocarle otro nombre; el "1" no hace referencia también como en "d.setf", en otras palabras quiere decir que vamos por la primera planta.
     
    9. Cerramos con un timer que nos va a dirigir a la segunda planta y un end:
    timer("seguda_dungeon", 5) end Hasta ahora toda la dungeon debe ir así:
    quest dungeon_principiante begin state start begin when 20090.chat."Dungeon Principiante" begin say_title("Dungeon:") say("Hola viajero, hoy te llevaré") say("aun magico lugar donde podrás explorar") say("nuevas tierras") say("") say("Quieres ir?") local dungeon = select("Si" , "No") if dungeon == 1 then pc.warp(6521200, 1231200) elseif dungeon == 2 then return end end when 101.kill begin timer("inicio_dungeon", 5) end when inicio_dungeon.timer begin d.new_jump_all(23, 2312, 2122) d.setf("fuuton97", 1) d.spawn_mob(102, 12312, 123123) d.notice("Están en la Primera Planta!!!!") d.notice("Encontrar el Perro Salvaje.") end when 102.kill d.getf("fuuton97") == 1 begin d.notice("Havepis destruido al Perro Salvaje...") d.notice("Avanzarán a la segunda planta.") timer("segunda_dungeon", 5) end 10. Iniciamos llamando al timer, y hacemos lo mismo en los pasos anteriores, ambientando con diálogo, haciendo jugadas de kill mob o metines, etc, que vuele su imaginación:
    when segunda_dungeon.timer begin d.jump_all(312312, 12131) d.setf("fuuton97", 2) d.spawn_mob(8025, 431232, 412421) d.notice("Viajeros estás en la segunda planta") d.notice("Acaba con un metin y avanzarán.") end 11. Ahora llamamos al metin que pusimos y hacemos lo mismo con los pasos anteriores:
    when segunda_dungeon.timer begin d.jump_all(312312, 12131) d.setf("fuuton97", 2) d.spawn_mob(8025, 431232, 412421) d.notice("Viajeros estás en la segunda planta") d.notice("Acaba con un metin y avanzarán.") end when 8025.kill with d.getf("fuuton97") == 2 begin d.notice("Haveís acabado con un Metin") d.notice("Avanzarán a la tercera planta....") timer("tercera_dungeon", 5) end 12. Acá iniciamos con el timer que dejamos, osea lo llamamos, y en esta tercera planta haremos este jueguito: Pondremos un drop en mob, soltará una llave, al coger la llave damos click derecho y nos llevará a la cuarta y última planta de dungeon.
     
    En este paso conoceremos otras funciones que combinaremos con la dungeon, veamos:
    when tercera_dungeon.timer begin d.jump_all(3123, 123123) d.setf("fuuton97", 3) d.setf("drop_dungeon", 0) d.spawn_mob(103, 312312, 123123) d.spawn_mob(104, 123123, 123123) d.spawn_mob(105, 123123, 123123) d.spawn_mob(103, 312312, 123123) d.spawn_mob(104, 123123, 123123) d.spawn_mob(105, 123123, 123123) d.notice("Encontrar la llave!!!!!!!!!!") end when 103.kill or 104.kill or 105.kill with d.getf("fuuton97") == 3 begin d.setf("drop_dungeon", d.getf("drop_dungeon")+1) if d.getf("drop_dungeon") == 2 game.drop_item(43003, 1) d.setf("drop_dungeon", 0) end end when 43003.use begin item.remove() timer("cuarta_dungeon", 5) end Cómo ven es algo fantástico, el código de esta tercera planta es fácil, igual al de todos, solo invocamos más mob para el drop, utilizamos el game.drop_item para que suelte la llave.
     
    13. Llamamos al timer, y haremos la última planta, que en este caso solo se hizo para 4.
     
    Haremos los mismos pasos cómo los demás, solo veremos una función que agregaremos:
     
    when cuarta_dungeon.timer begin d.jump_all(12312, 13212) d.setf("fuuton97", 4) d.spawn_mob(108, 12312, 12312) d.notice("Acaba con el Jefe y ganarás la Dungeon") end when 108.kill with d.getf("fuuton97") == 4 begin game.drop_item(289, 1) notice_all("El Jugador ".. pc.get_name() .." ha derrotado al Jefe...") d.notice("Acabaron con el Jefe, felicitaciones...") d.notice("Tienen 10 segundos para recoger su premio..") timer("salir_dungeon", 10) end  
    Bueno como ven pusimos el Jefe, al matarlo suelta un item, que es la recompensa, ponemos un anuncio General para que lo vean todos de quien fue el que mató al Jefe, cerramos con un timer de 10 segundos para recoger el premio, y nos llevará para afuera de la dungeon.
     
    14. Último paso, solo añadiremos el timer que nos llevará fuera de la dungeon, o si quieres llevar a todos a sus citys:
    when salir_dungeon.timer begin d.exit_all() end end end También podemos usar la otra función: warp_to_all_village():
    when salir_dungeon.timer begin warp_to_all_village() end end end Por último cerramos con end del when, otro end del begin de inicio y el segundo begin de inicio, con total de 3 end's.
     
     
    Y para ver como quedó toda la dungeon, pequeña pero atendible para este curso:
    quest dungeon_principiante begin state start begin when 20090.chat."Dungeon Principiante" begin say_title("Dungeon:") say("Hola viajero, hoy te llevaré") say("aun magico lugar donde podrás explorar") say("nuevas tierras") say("") say("Quieres ir?") local dungeon = select("Si" , "No") if dungeon == 1 then pc.warp(6521200, 1231200) elseif dungeon == 2 then return end end when 101.kill begin timer("inicio_dungeon", 5) end when inicio_dungeon.timer begin d.new_jump_all(23, 2312, 2122) d.setf("fuuton97", 1) d.spawn_mob(102, 12312, 123123) d.notice("Están en la Primera Planta!!!!") d.notice("Encontrar el Perro Salvaje.") end when 102.kill d.getf("fuuton97") == 1 begin d.notice("Havepis destruido al Perro Salvaje...") d.notice("Avanzarán a la segunda planta.") timer("segunda_dungeon", 5) end when segunda_dungeon.timer begin d.jump_all(312312, 12131) d.setf("fuuton97", 2) d.spawn_mob(8025, 431232, 412421) d.notice("Viajeros estás en la segunda planta") d.notice("Acaba con un metin y avanzarán.") end when 8025.kill with d.getf("fuuton97") == 2 begin d.notice("Haveís acabado con un Metin") d.notice("Avanzarán a la tercera planta....") timer("tercera_dungeon", 5) end when tercera_dungeon.timer begin d.jump_all(3123, 123123) d.setf("fuuton97", 3) d.setf("drop_dungeon", 0) d.spawn_mob(103, 312312, 123123) d.spawn_mob(104, 123123, 123123) d.spawn_mob(105, 123123, 123123) d.spawn_mob(103, 312312, 123123) d.spawn_mob(104, 123123, 123123) d.spawn_mob(105, 123123, 123123) d.notice("Encontrar la llave!!!!!!!!!!") end when 103.kill or 104.kill or 105.kill with d.getf("fuuton97") == 3 begin d.setf("drop_dungeon", d.getf("drop_dungeon")+1) if d.getf("drop_dungeon") == 2 game.drop_item(43003, 1) d.setf("drop_dungeon", 0) end end when 43003.use begin item.remove() timer("cuarta_dungeon", 5) end when cuarta_dungeon.timer begin d.jump_all(12312, 13212) d.setf("fuuton97", 4) d.spawn_mob(108, 12312, 12312) d.notice("Acaba con el Jefe y ganarás la Dungeon") end when 108.kill with d.getf("fuuton97") == 4 begin game.drop_item(289, 1) notice_all("El Jugador ".. pc.get_name() .." ha derrotado al Jefe...") d.notice("Acabaron con el Jefe, felicitaciones...") d.notice("Tienen 10 segundos para recoger su premio..") timer("salir_dungeon", 10) end when salir_dungeon.timer begin warp_to_all_village() end end end Espero que valoren mi tiempo, esto solo es una dungeon explicativa para principiantes, solo digo y hago lo básico, luego iremos añadiendo más funciones, condiciones, etc. 
     
    Aprovecho para decir que se hacen Dungeon's profesionales, con las plantas que quieran, y como quieren que sea, claro no se vallan de la imaginación xD, a tan solo 15 Euros; pueden contáctarme por skype: fuuton97 o enviarme un mensaje por mp al foro.
     
     
    Próximo capítulo: [DUNGEON] Capítulo III - Condiciones y Funciones en Dungeon.
     
    Espero que valoren este POST, me tome mi tiempo para ustedes, no desaprovechen esta oportunidad.
     
    Saludos.
  17. Me Gusta
    fuuton97 got a reaction from noob in [SCRIPT]Auto-levantamiento.   
    Hola, hoy les vengo a dar este regalo de auto levantamiento, hay 1 post pero este scrip es diferente, este script las tengo con mi servidor y funcionan.
     
    - Poner en: /auth/ = login

    #!/bin/sh # Default flags to pass to the MUD server (see admin.txt for a description # of all flags). ############################################################################# # mv profiles/profile.2 profiles/profile.1 # mv profiles/profile.3 profiles/profile.2 # gprof $SERVER_NAME.current $SERVER_NAME.gmon > profiles/profile.3 fi if [ -r .killscript ]: then DATE=`date`; echo "autoscript killed $DATE" >> syslog rm .killscript exit fi while [ -r pause ]; do sleep 60 done done  
    - Poner en /db/ = Base de Datos

    #!/bin/sh # Default flags to pass to the MUD server (see admin.txt for a description # of all flags). ############################################################################# SERVER_NAME=./db while ( : ) do else rm .fastboot sleep 3 fi if [ -r .killscript ]: then DATE=`date`; echo "autoscript killed $DATE" >> syslog rm .killscript exit fi while [ -r pause ]; do sleep 60 done done  
    - Poner en los channel = Canales

    #!/bin/sh # Default flags to pass to the MUD server (see admin.txt for a description # of all flags). ############################################################################# SERVER_NAME=./game while ( : ) do DATE=`date` echo "autoauth starting auth $DATE" >> syslog echo "running" $SERVER_NAME >> syslog # cp -f $SERVER_NAME $SERVER_NAME.current if [ -r .killscript ]: then DATE=`date`; echo "autoscript killed $DATE" >> syslog rm .killscript exit fi while [ -r pause ]; do sleep 60 done done  
    Explicación: Guardan esos tres archivos en las rutas mencionadas, con el nombre de auto.sh, una vez metido en cada ruta le dan permisos 777, seguidamente abren su start.sh y agregan esta línea:

    ./auto.sh &Un Ejemplo de como quedaría sería así, tener en cuenta que se coloca en todo, el inicio de db, auth y los canales:
    1*) echo -e "033[31m Iniciando DB ..033[0m" cd ./data/db ./db & ./clear_logs.sh & ./auto.sh & sleep 2 clear echo -e "033[31m n Iniciando Auth ..033[0m" cd ../../canales/auth ./auth & ./clear_logs.sh & ./auto.sh & sleep 2 clear Espero que les guste este aporte. Disfruten.
     
    Saludos.
  18. Me Gusta
    fuuton97 got a reaction from elbloqueconcreto23 in [RECOPILACIÓN]Diffs para game r40250.   
    Hola a todos, viendo que esta el nuevo game a la luz, decidí postear los diffs que hasta ahora hay para la versión 40250, es una recopilación hecha por mi del foro epvp.
     
    Para descargar game r40250 & db r40146: 
     
    Game: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.!4M4gGJqJ!I3C7ADURLGzKsK9U-ptSFiBVDs5ZzQV9wtkQx4EUwPI DB: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.!xEQBBAJY!Uf77RitqVqBRqnyfn5qmCQqB-l4EU96kEIB4rL4cjRc  
    Recopilación de diffs para game versión 304083: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
     
    1- Tabla de experiencia (Es necesario meter este diff) :
    004524C0 2- Internal IP fix (Obligatorio introducir este diff), sirve para que no se caiga el login:
    This difference file is created by The Interactive Disassemblergame_r40250000A0C34: 80 90000A0C4D: 80 90000A0CD9: 80 90002169F3: 80 9000216A18: 80 90 3- Fix TimeBomb:
    00215F63: E8 EB00215F64: C8 1100215F65: 69 0000215F66: FA 0000215F67: FF 0000215F68: 3D 0000215F69: AC 0000215F6A: 61 0000215F6B: 11 0000215F6C: 54 0000215F6D: 8D 0000215F6E: 76 0000215F70: 0F 0000215F71: 87 0000215F72: E7 0000215F73: 01 000021615D: C6 000021615E: 05 000021615F: E8 0000216160: D8 0000216161: 7E 0000216162: 08 0000216163: 01 0000216164: E9 0000216165: 0D 0000216166: FE 0000216167: FF 0000216168: FF 00 4- Debe tener este diff: MUST HAVE.
    This difference file has been created by IDA Progame_r40250000F2833: E8 EB000F2834: 38 07000F2835: 2E 00000F2836: 12 00000F2838: 84 00000F2839: C0 00000F283A: 75 00000F283B: 14 00000F2850: 8B 00000F2851: 45 00000F2852: FC 00000F2853: 33 00000F2854: 05 00000F2855: 38 00000F2856: 9F 00000F2857: 6D 00000F2858: 08 00000F2859: C6 00000F285A: 05 00000F285B: E8 00000F285C: D8 00000F285D: 7E 00000F285E: 08 00000F285F: 01 00000F2860: 75 00000F2861: 06 00000F2862: C9 00000F2863: E9 00000F2864: 48 00000F2865: FE 00000F2866: FF 00000F2867: FF 00000F6A9B: E8 EB000F6A9C: D0 0B000F6A9D: EB 00000F6A9E: 11 00000F6AA0: 84 00000F6AA1: C0 00000F6AA2: 0F 00000F6AA3: 85 00000F6AA4: 4E 00000F6AA5: 04 00000F6EF6: E8 00000F6EF7: B5 00000F6EF8: B7 00000F6EF9: FF 00000F6EFA: FF 00000F6EFB: C7 00000F6EFC: 04 00000F6EFD: 24 00000F6EFE: 01 00000F6F02: E8 00000F6F03: 41 00000F6F04: FE 00000F6F05: F0 00000F6F06: FF 00000F712C: E8 EB000F712D: 3F 0B000F712E: E5 00000F712F: 11 00000F7131: 84 00000F7132: C0 00000F7133: 0F 00000F7134: 85 00000F7135: C9 00000F7136: 03 00000F7502: E8 00000F7503: A9 00000F7504: B1 00000F7505: FF 00000F7506: FF 00000F7507: C7 00000F7508: 04 00000F7509: 24 00000F750A: 01 00000F750E: 89 00000F750F: F6 00000F7510: E8 00000F7511: 33 00000F7512: F8 00000F7513: F0 00000F7514: FF 0000215670: 55 C300215671: 89 0000215672: E5 0000215673: 83 0000215674: EC 0000215675: 18 0000215676: A1 0000215677: 38 0000215678: 9F 0000215679: 6D 000021567A: 08 000021567B: 89 000021567C: 45 000021567D: FC 000021567E: 31 000021567F: C0 0000215680: 8B 0000215681: 55 0000215682: FC 0000215683: 33 0000215684: 15 0000215685: 38 0000215686: 9F 0000215687: 6D 0000215688: 08 0000215689: 75 000021568A: 02 000021568B: C9 000021568C: C3 000021568D: E8 000021568E: 76 000021568F: 18 0000215690: DF 0000215691: FF 0000215C20: 55 C300215C21: 89 0000215C22: E5 0000215C23: 83 0000215C24: EC 0000215C25: 18 0000215C26: A1 0000215C27: 38 0000215C28: 9F 0000215C29: 6D 0000215C2A: 08 0000215C2B: 89 0000215C2C: 45 0000215C2D: FC 0000215C2E: 31 0000215C2F: C0 0000215C30: 8B 0000215C31: 45 0000215C32: FC 0000215C33: 33 0000215C34: 05 0000215C35: 38 0000215C36: 9F 0000215C37: 6D 0000215C38: 08 0000215C39: 75 0000215C3A: 06 0000215C3B: C9 0000215C3C: E9 0000215C3D: 1F 0000215C3E: AB 0000215C3F: F0 0000215C40: FF 0000215C41: E8 0000215C42: C2 0000215C43: 12 0000215C44: DF 0000215C45: FF 0000217945: E8 EB00217946: D6 0300217947: E2 0000217948: FF 0000217949: FF 00 5- Máximo Nivel 150:
    This difference file has been created by IDA Progame_r4025000098B3E: 78 96000A5C44: 78 96 Máximo Nivel 255:
    This difference file is created by The Interactive Disassemblergame_r40250_3200098B3E: 78 FF000A5C44: 78 FF 6- Puntos de estatus 95:
    This difference file is created by The Interactive Disassemblergame_r40250_3200030E8E: 5A 5F00035202: 5A 5F00035216: 5A 5F0008B950: 59 5E00096F5F: 5A 5F00096F78: 5A 5F00096FA9: 5A 5F00097111: 5A 5F0009712E: 5A 5F00097155: 5A 5F00097172: 5A 5F000971A3: 5A 5F 7- all_item_can_belt_inventory2:
    This difference file is created by The Interactive Disassembler game_r40250 00052378: 77 72 00052387: 03 50 00052388: 74 7C 000523A5: E8 90 000523A6: A6 90 000523A7: 52 90 000523A8: FD 90 000523A9: FF 90 8- Activar el 6/7 bonus:
    This difference file is created by The Interactive Disassembler game_r40250 0005BD07: 55 65 0005BD08: 4A 49 0005C7A3: B9 C9 0005C7A4: 3F 3E 9- Teletranpostadores fix:
    This difference file is created by The Interactive Disassembler game_r40250 001049F2: E8 90 001049F3: B9 90 001049F4: 29 90 001049F5: F2 90 001049F6: FF 90 001049FA: E8 90 001049FB: 11 90 001049FC: 3E 90 001049FD: F2 90 001049FE: FF 90 10- Cristal de visión:
    This difference file is created by The Interactive Disassembler game_r40250 001060C9: 01 00 001060F1: 02 00 00106108: E8 90 00106109: B3 90 0010610A: 8C 90 0010610B: F4 90 0010610C: FF 90 11- Chat Global:
    This difference file is created by The Interactive Disassembler game_r40250 0010D85D: E8 90 0010D85E: FE 90 0010D85F: 6B 90 0010D860: F1 90 0010D861: FF 90 0010D864: 74 90 0010D865: CA 90 12- Apagar el comando shutdown:
    This difference file is created by The Interactive Disassembler game_r40250 00216163: 01 00 13- Hacer compras a 0 Yang:
    This difference file is created by The Interactive Disassemblergame_40250_32001AAA21: 8F 8D 14- 255 Mapas máximo:
    game_r40250 MAX_MAPS_PER_CORE 255000BF64A: 20 FF 15- Monturas Máximas:
    game_r40250 MAX Mounts00042D19: 0F FA 16- Poder juntar 255 ítems:
    game_r40250 255 Stackable items000506C5: C8 FF00050A6D: C7 FE0005283C: C8 FF00053369: C8 FF0009A340: C8 FF00110384: C8 FF00113E9E: C8 FF00118449: C8 FF 17- Botar ítems y desaparecer en:
    3 segundos:
    game_r40250 3 seconds item disappearing0005212A: 2C 030005212B: 01 00 5 segundos:
    game_r40250 5 seconds item disappearing0005212A: 2C 050005212B: 01 00 18- Bonos cambiado a 0 segundos:
    game_r40250 0 Sec Boni change time0005E4E1: 0A 00 19- No se admiten animales de nivel superior:
    This difference file is created by The Interactive Disassembler game_r40250 00030E97: 0A 00 00030EC1: E8 90 00030EC2: EA 90 00030EC3: F6 90 00030EC4: 01 90 00030EC5: 00 90 20- Skills a 17:
    This difference file is created by The Interactive Disassembler game_r40250 0006FBF9: 14 11 21- Check Client Version fix:
    This difference file has been created by IDA Progame_r4025000100819: 8E 84 22- Hacer bonificación visible en tienda:
    This difference file is created by The Interactive Disassemblergame_r40250_32001B2941: 88 0F001B2942: 11 21001B2CDD: 88 0F001B2CDE: 11 21 23- Fix Bug /war:
    game402500008DF69: 8E 8 Estos son los diffs hasta ahora, cabe decir que estos diffs solo sirven para esta versión (40250), y no para la 40424.
     
    Se actualizará cada ves que lo requiera.
     
     
    Saludos.
     
    Última actualización:
    10/02/14 Change Log:* Agregado Diff: Fix bug /war
  19. Me Gusta
    fuuton97 reacted to  Pantsu  in Onibaki - comunidad de anime hispana!   
    Buenas chicos, hace apenas unas horas inauguramos nuestro foro de anime, como sé que a muchos de vosotros os encanta pues me he decidido publicarlo por aquí y animaros a que os registréis
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
     
    Espero veros por ahí :3
  20. Me Gusta
    fuuton97 reacted in [Drumstep] Tristam & Braken - Flight   
    Estaba buscando la canción de un video y de repente me encontré con esta y me encantó , a ver que os parece :
     

     
    Un saludo
  21. Me Gusta
    fuuton97 reacted to Lixy in Mi primer mapa (en proceso)   
    Bueno como mi mapa no esta terminado os digo lo que tengo en mente:
    Crear dos reinos en mismo mapa de diferente temática, digamos reino bueno y malo.
    Estoy por terminar la citi de reino malo ( me costo por que me gusta mas la otra temática ).
    Quiero opiniones y consejos pliss
     


    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
     
     
    vista area del citi malo:
     

     
    centro citi
     

     
    camino para tio de teleport
     

     
    pasillo1

     
    pasillo2
     

     
    anciana ( es donde me keda modificar sobre todo la escalera que va subiendo muchas cosas se me kedan flotando!!)
     

     
     
    Camino hacia el establo
     
  22. Me Gusta
    fuuton97 reacted in Akren, Un sueño a cumplir.   
    Muy buenas las dos , por cierto , Akren sigue así , si alguien persigue su sueño , al final lo acaba consiguiendo +1
     
    Un saludo.
  23. Me Gusta
    fuuton97 reacted to SeMa™ in Zone-Archiver   
    Buenas, hace un par de días me dije... por que no hacer un Gui para mz?, dado que varios foros tienen el suyo propio(Gui) por que no hacer uno?
     
     

    El estilo es muy parecido al archiver de www.metin2dev.org
     
    La publicidad estará desactivada hasta que un admin del foro se quiera hacer cargo de ella.
     
    Las funciones que tiene son las siguientes:
     
    Compila y descompila en type 2(Compilado Normal).
    Compila y descompila en type 3 (Panama/Iv).
    Crea el XML automáticamente.
    Compila y descompila los Protos(40k y anteriores).
    Incluye varios idiomas en esta versión solo está el español (Se pondrán mas).
    Incluye un sistema de actualizaciones automáticas.
     
     
    Special Thanks: Tim Niederhausen
     
    Si se realiza alguna actualización será publicada aquí.
    Si se encuentra algún fallo, pueden mandarme mp o dejarlo aquí escrito.
    Si alguien quiere contribuir con el proyecto, que me mande un mensaje privado.
    Un saludo.
     
    Nueva Versión1.1

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  24. Me Gusta
    fuuton97 reacted to Shogun in World Editor (edición mejorada)   
    Hoy os traigo una versión actualizada del editor de mapas de Ymir creada por Xunil (lolor2 en metin2dev)
     

     
    Las características nuevas son:
     
    Rendimiento mejorado
    Idioma inglés
    Granny 2.9
    DirectX 9
    Rotación de la cámara con el botón derecho del ratón
    Posibilidad de cambiar campo de visión (FOV) en el fichero CONFIG
    Límite de 8 texturas por área eliminado
    Filtrado anisotrópico 16x habilitado
     
    Descarga aqui:
     
    World_Editor_Enhanced.zip 4.0 MB Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Si alguien tiene ideas para nuevas funcionalidades que las ponga aquí e intentaré que el autor las añada en una versión futura.
  25. Me Gusta
    fuuton97 reacted to Jfirewall in Seguridad Cliente   
    Pues, ya que todos están aportando pues sera dar un granito de arena ala causa con algo que les servirá a muchos.
     
    1- primero que nada debes sacar copia del cliente para poder luego dejar editarlo y compilar y solo seria reemplazar los archivos editados.
     
    acá en el foro ya existe un programa como este, la versión que publicare es una mas avanzada la publica es 2.3 y la que les publicare 2.5, la diferencia que ay es que en el anterior al esconder los ficheros no muchos quedaban en 100% bueno con esta versión puedes estar tranquilo de que estará todo bien guardado, y la antigua daba algunos errores y no siempre los guardaba bien.
     
    viene con el crack para poder usarlo sin ningún problema.
     
    y también una protección para que no te lo saquen quitando que pongan en la raíz de tu cliente archivos .py .pyc...... ETC.
     
    Bueno ahora como lo vamos a utilizar? pues muy sencillo instalamos todo utilizamos el crack y iniciamos nuestro molebox y nos saldrá de la siguiente manera.
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    En la primera linea debemos buscar nuestro ejecutador del cliente osea nuestro .exe y lo agregamos ay.
     
    luego en el segundo nos pondrá nuestro ejecutable con 2 .exe, y pues nosotros lo editamos como queremos que se llame cuando se guarden los archivos.
     
    el crea por defecto el nuevo ejecutador (.exe).
     
    lo debemos tener así.
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    luego de haber hecho esto nos vamos donde dice
    Add File y nos saldrá así:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    esta es la parte importante, aca nos dirigimos ala carpeta pack (donde se encuentra los archivos importantes) entonces elijaremos los archivos que queremos  guardar en nuestro .exe en mi caso agregare algunos .eix (¿porque elijo estos?) sencillamente si guardas todo al ejecutador estara muy pesado para leerlo entonces demorara mucho entonces yo les recomiendo guardar todos los .eix bueno los seleccionamos y nos deberan de aparecer asi:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    como vemos yo seleccone pocos para la guia pero tu puedes elejir todos los .eix que tengas.
     
    bueno ahora vamos a guardarlos y vamos a donde dice.
    Pack To Box y el ejecutara el guardado de los archivos 
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    y el ejecutador se creara por defecto en la raiz de nuestro cliente:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    bueno y que hacemos luego, borramos los .eix que elejimos para guardarlo en nuestro ejecutador, y ejecutamos y efectivamente servira sin los .eix que borramos.
     
    2- la proteccion aca les dejo el .py, lo debemos guardar como engelle.py y hacemos un import en prototype.py.
    import engelle  
    if Datei.find('.mix') != -1:  
    donde esta el .mix lo cambiamos por .py o por .pyc como usted quieran.
     
    espero les sirva.
     
    saludos 
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
×
×
  • Crear nuevo...