Jump to content

Metin2Brasil

Miembro
  • Contador contenido

    5
  • Ingreso

  • Última visita

Actividad de reputación

  1. Me Gusta
    Metin2Brasil reacted to MiGueLiT0 in Armaduras M2M   
    GUERRERO
     

     
    NINJA
     

     
    SURA
     

     
    Chamana "RAISER" :v
     

     
     
    DESCARGA:  
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. PASS: roberts
     
    CREDITOS: Robert
  2. Me Gusta
    Metin2Brasil reacted to Only4Fun in [SET]NUEVAS ARMAS   
    DESCARGA: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  3. Me Gusta
    Metin2Brasil reacted to Dilong in Texturas de armaduras empes   
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Natsu@just4metin
    https://mega.nz/file/YhwzELxb#TeO-HXfpE4f09LNgHHhtK0j7R-jaxXxSzxGV5JG6WFU
  4. Me Gusta
    Metin2Brasil reacted to ChuchoGamer in Nuevas Textura de Armaduras   
    hola amigo les traigo este pack de texturas de armaduras 
    aviso nose se estas armaduras esten en el foro metin2zone si estan porfavor cierren el post mio pero si no estan dejar el post no se olviden dar las Gracias 😄
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    link de las fotos 

    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.
    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.
  5. Me Gusta
    Metin2Brasil reacted to EzekielitohMercury in [SET]Armas animadas   
    Descarga: Debes iniciar sesión para ver el contenido del enlace en esta publicación.
     
    El archivo contiene: Parte source, parte del cliente, el SQL y el tutorial de implementación.
     
    Creditos: .Khan
  6. Me Gusta
    Metin2Brasil reacted to  Pantsu  in [GUIA] Adaptación de armas a Metin2.   
    Hola queridos usuarios de Metin2Zone. Hoy os traigo una guia de como adaptar un arma del World Of Warcraft por ejemplo y usarla en vuestro Metin2. Bueno lo primero que tenéis que saber son los programas necesarios para hacer dicha adaptación.
     
    ·Recursos:
    - 3Ds Max 2007.
    - World Of Warcraft Cliente.
    - World Of Warcraft Model Viewer.
    - Plugin Export GR2 Para 3Ds Max 2007.
    - GR2 to Mesh.
     
    ·Descarga de recursos:
    -
    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. -
    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. -
    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.  
    Teniendo todo esto solo tendríamos que instalar el World Of Warcraft. La instalación puede demorar varias horas. Instalamos el World Of Warcraft Model Viewer y se guardara predeterminadamente en 'C:\Program Files\World Of Warcraft Model Viewer' Al dirigirnos a la ruta del model viewer podemos abrir el .exe llamado 'WowModelViewer32' al abrirlo le damos todo a 'Si' en lo que nos aparezca y se cargara automáticamente la base de datos del World Of Warcraft (Para esta parte hace falta tener el World Of Warcraft instalado y actualizado). Ahora el 3Ds max lo instalan. Descomprimimos el archivo Plugins y la carpeta la pasamos a la raíz del 3Ds MAX 2007. Después de todo esto podremos comenzar con la guía.
     

    1º Paso: Exportar cosas del World Of Warcraft Model Viewer.
    Lo primero de todo esto es abrir el Model Viewer del World Of Warcraft. Al abrir el Model Viewer y si ya tenemos el World Of Warcraft instalado nos aparecerá el programa y primero una ventana y le damos a 'Si' luego a 'Aceptar' y tendremos la Base de datos cargada. Para las armas nos vamos a 'Item' luego a 'Objectcomponents' y finalmente a 'Weapons' y escogemos un arma para nuestro metin. Asi como muestro en la imagen. Para exportar le dais a File -> Export Model -> Wavefront OBJ.

    [El arma que se muestra en la imagen en la base de datos se llama 'sword_1h_raid_d_03']

    2º Paso: Sacar modelo de arma Metin2 para adaptar el arma del World Of Warcraft.
    Descargamos el GR2 to Mesh y arrastramos ahi un GR2 de un arma del Metin2. Por ejemplo el de un arma del nivel 1 (00010.gr2) lo ponemos en la carpeta del GR2 to Mesh. Y arrastramos el GR2 a 'grnreader' y aparecerán 3 ventanas es cuestion de darle 'Si' a las tres ventanas.Despues de este paso ya tendremos el 00010.GR2.ms y ese archivo lo arrastramos hasta el 3Ds Max. Asi ya tendremos un modelo fijo para adaptar el arma con la medida correcta. Asi se vera en el 3Ds Max 2007, aqui la imagen de muestra.

    [El arma que se muestra en la imagen no es la espada del nivel 1 (00010.gr2.ms) si no otra que ya tiene guardada]

    3º Paso: Adaptacion del modelo del World Of Warcraft al Modelo de Metin2.
    Lo primero de todo al tener el arma del World Of Warcraft que extrajimos antes la arrastramos al 3Ds Max 2007 saldrá girada mal. Lo primero es poner el arma recta. Para eso cogéis la herramienta que esta en el menú de arriba. Luego de ponerla recta lo siguiente es aumentarle el tamaño al tamaño del Modelo del Metin, pues muy fácil. Cogéis la herramienta que también esta en el menú de arriba y es ir aumentando hasta que del mismo tamaño que el arma del Metin. Bueno ahora es eliminar el modelo del Metin el verde de arriba para eso escogemos la herramienta que también esta en el menú de arriba y seleccionáis la capa de 'Object01' y le dais a 'Select' y luego a la tecla 'Delete/Suprimir' ahora ya quedara el arma solamente. Solamente queda centrar el arma para eso vamos al cuadro de arriba a la izquierda (Como os habréis dado cuenta ahí 4 Cuadros distintos cada uno una perspectiva diferente para ver el arma) en el de arriba a la izquierda ponéis el arma en esta posicion. Que las lineas queden en linea con las negras. Se puede mover el arma con esta herramienta que esta ubicada en el menú de arriba. Aquí una imagen de como tiene que quedar el arma.

     
    NOTA: Para añadirle la textura a un arma solo es necesario arrastrar la textura (TGA/DDS o cualquier archivo de imagen). Para que a los usuarios se les vea con textura dentro de el juego el arma tiene que tener de ruta 'D:\Ymir Work\Item\Weapon'.
     
     
     
     

    Bueno eso es todo, espero que le haya gustado la guía y que pronto puedan tener armas únicas en su servidor, gracias y
    buena suerte.

    Guia oficial Metin2Zone
    Att. Strach
  7. Me Gusta
    Metin2Brasil reacted to Randaron in Rubinum [SRC,CLIENT,PANEL]   
    Hola hoy os vendo a traer los files Rubinum con todo COMPLETO !
    Admin Panel: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Ischop: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Extern: Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Rb-website: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Rubinum-Juego: Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Compartir: Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Sql: Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Juego Define: Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    cliente Define: Debes iniciar sesión para ver el contenido del enlace en esta publicación.
     
    Datos del que publico los archivos  
    Nombre: Debes iniciar sesión para ver el contenido del enlace en esta publicación.
     
    SI ALGUIEN ES TAN AMABLE Y LO SUBE A MEGA POR SEPARADO COMO VIENEN EN ESAS DESCARGAS LO AGRADECERIA MUCHO
    ( GRACIAS )
     
    Video:
     
  8. Me Gusta
    Metin2Brasil reacted to SeMa™ in Age Of Metin Decrypt.   
    Buenas , hoy os vengo a traer el desencriptador del age of metin un cliente que lleva un par de cosillas que quizas os interesen.
     
    Trailer:
     
     

     
     
    Web:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
     
     
    AoM_m2.rar (86 KB)

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Un saludo.
  9. Me Gusta
    Metin2Brasil reacted to Shang in [R]Interfaz GUI Loong (La de Zeler)   
    Hola,
     
    1 imagen vale más que mil palabras, ahí va la foto:
     

     
     
    Saludos.

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  10. Me Gusta
    Metin2Brasil reacted to KeKo in [TIP] Meter nuevas Quests.   
    Hola a todos, para los que querais meter nuevas quests en vuestros servidores, hoy os dejare esta guia de como hacerlo.
     
    *Si durante alguno de estos dos metodos os da un error de librerías, aquí os dejo las librerias para files de 32 bits, y para files de 64 bits.
     
    Link resubido de las de 32bits:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Link resubido de las de 64 bits:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    *Lo siento no me fijé que no iban los links
     
     
    Hay 2 metodos:
     
    1- Mediante el make.sh que viene por defecto en los files de metin2 y que para usarlo para cargar una nueva quest tendreis que hacer lo siguiente:
     
    - Encendeis vuestro servidor hasta despues de logearos.
    - Poneis el siguiente comando (o el mismo pero con la ruta en la que este la carpeta quest en vuestros files)
     

    cd /home/game/quest - Meteis vuestra nueva quest (por ejemplo logeo.quest)
    - Ahora abris el archivo locale_list , que puede tener un nombre diferente dependiendo de los files, pero sera algo acabado en (_list).
    - Al final del archivo, poneis el nombre de vuestra nueva quest, con el .quest incluido (logeo.quest por ejemplo), LE DAIS UN ENTER AL FINAL DEL ARCHIVO, guardais y cerrais.
    - Ahora solo teneis que volver al bsd, y poner:
     

    chmod 777 make.sh && sh make.sh - Una vez hecho eso ya estara cargada vuestra nueva quest.
     
    - Inconvenientes de este metodo: Cargais la lista entera de quests.
     
    *Si haceis esto con el servidor encendido, poned reload q con vuestro gm y ya estara funcionando la nueva quest.
     
     
    2- Podéis hacer el método que a mi más me gusta, que es simplemente ir a la carpeta quest (cd /home/game/quest) y una vez allí poner el siguiente comando:
     

    ./qc nombredetuquest.quest Y una vez hecho eso ya os cargará la nueva quest.
     
    - Ventajas de este metodo: Solo recargas la quest que quieras y no todas como en el make.sh
  11. Me Gusta
    Metin2Brasil reacted to Elite™ in Quest Bienvenido al Metin2   
    Información:
    Ve al Guardián de la Ciudad y luego ve al Guardián que está en e l centro de la plaza, él le Pide que Valla a la Tienda General Para comprarle unas Debes iniciar sesión para ver el contenido del enlace en esta publicación.. Luego de regresar al Guardián para entregar las Pociones Rojas(P).

    quest find_squareguard begin state start begin end state run begin when login with pc.level<=5 begin set_state(find) end end state find begin when letter begin local find_npc_vnum = 0 if pc.get_empire()==1 then find_npc_vnum = 11000 elseif pc.get_empire()==2 then find_npc_vnum = 11002 elseif pc.get_empire()==3 then find_npc_vnum = 11004 end local v=find_npc_by_vnum(find_npc_vnum) if 0==v then else target.vid("__TARGET__1", v, "El Guardián") end end when letter begin send_letter("El guardián") end when button or info begin say_title("Información:") say("Ve a la aldea y habla con el Guardián. él te") say("asignará tu primera misión. él se encuentra en el") say("centro de la aldea.") end when __TARGET__1.target.click begin target.delete("__TARGET__1") say_title("Guardián:") say("¡Bievenido a nuestra aldea aventurero! Espero") say("que pueda llevar a cabo una tarea para mí. Si te") say("doy 200 yang. ¿Puedes ir al almacén general y") say("comprar una pocion roja para mí?") say("Desafortunadamente, debo permanecer aquí, Usa tu") say("mini mapa para localizar el almacén general,") say("usando el punto rojo que parpadea.") local b=select("Bien") if 1==b then say_title("Información:") say_reward("Has recibido 200 yang del guardián. Ve al almacén") say_reward("general y compra una pocion roja. Puedes usar el") say_reward("yang para comprar objetos y servicios de varios") say_reward("aldeanos.") pc.changemoney(200) set_state(buy) elseif 2==b then else say("UNBEKANNTE TASTE ["..b.."]") end end end state buy begin when letter begin send_letter("Compra una poción roja") local v=find_npc_by_vnum(9003) if 0==v then else target.vid("__TARGET__", v, "") end end when button or info begin say_title("Información:") say("Compra una poción roja en el almacén general y") say("vuelve con el guardián.") end when 11000.chat."¿Dónde puedo comprar una poción roja?" or 11002.chat."¿Dónde puedo comprar una poción roja?" or 11004.chat."¿Dónde puedo comprar una poción roja?" begin say_title("El guardián:") say("Puedes adquirir la Poción Roja de la Vendedora de") say("la Tienda General. Ella está allí. Si no la") say("puedes ver, dirígete hacia el círculo") say("intermitente en el mapa grande o hacia el punto") say("rojo intermitente en el mini mapa.") end when __TARGET__.target.click begin target.delete("__TARGET__") say_title("Vendedora del almacén general:") say("¡Bievenido, aventurero!") say("Oh, ¿así que te envía el guardián? ¿Necesita una") say("Poción Roja? Te daré cinco.") say("Toma, aquí la tienes. Sirven para regenerar la") say("vitalidad y además saben bien.") wait() say_title("Vendedora del almacén general:") say("Puede que seas nuevo, pero estoy segura que") say("pronto serás un cliente habitual. Por eso te doy") say("gratis estas pociones. Por favor, vuelve otra") say("vez.") wait() say_title("Información:") say_reward("Has recibido 5 pociones rojas del almacén") say_reward("general.") say_reward("Las pociones rojas sirven para regenerar los") say_reward("puntos de salud (HP).") pc.give_item2(27001,5) setstate(deliver) end end state deliver begin when letter begin local find_npc_vnum = 0 if pc.get_empire()==1 then find_npc_vnum = 11000 elseif pc.get_empire()==2 then find_npc_vnum = 11002 elseif pc.get_empire()==3 then find_npc_vnum = 11004 end local v=find_npc_by_vnum(find_npc_vnum) if 0==v then else target.vid("__TARGET__", v, "") end end when letter begin send_letter("Vuelve con el guardián") end when button or info begin say_title("Información:") say("Vuelve con el guardián y dale su poción.") end when __TARGET__.target.click with pc.countitem("27001")<1 begin target.delete("__TARGET__") say_title("Guardián:") ----"12345678901234567890123456789012345678901234567890"| say("¡Gracias por traer la poción! Bien, ahora estoy") say("mejor preparado para realizar mi función en la") say("aldea.") say("¿Quieres saber cuál es mi función? No soy solo el") say("guardián de la aldea, también una valiosa fuente") say("de información. Anuncio información útil que todo") say("el mundo tiene que leer. También ofrezco mi ayuda") say("y protección a aquellos que la necesitan. Y soy") say("el responsable de los asuntos del gremio. Si,") say("algún día, estás interesado en fundar tu propio") say("gremio, ven conmigo.") clear_letter() set_state(__COMPLETE__) end when __TARGET__.target.click with pc.countitem("27001")>=1 begin target.delete("__TARGET__") say_title("Guardian:") say("Por cierto, los intructores han preguntado por!") say("tí. Les gustaría conocerte.") say("Oh, ¡casi lo olvido! Como muestra de mi aprecio,") say("puedes quedarte el cambio de la poción. Nos vemos.") if pc.countitem("27001")>=1 then pc.removeitem("27001", 1) local r=number(1, 3) if r==1 then pc.give_item2("14000", 1) elseif r==2 then pc.give_item2("16000", 1) elseif r==3 then pc.give_item2("17000", 1) end end clear_letter() set_state(__COMPLETE__) end end state __COMPLETE__ begin end end
  12. Me Gusta
    Metin2Brasil reacted to PACI in Imagen en Quest   
    Lo siento se me fue la internet.
     
    Bueno:
     
     
    Hola, he visto un post aqui que no se que de una imagen en quest o yo que se, y decidi postar, como se hace.
    Por ejemplo, con la quest: give_basic_weapon:
     

    quest give_basic_weapon begin state start begin when login begin if pc.getqf("basic_weapon") == 0 then pc.setqf("basic_weapon", 1) if pc.job == 0 then pc.give_item2(27002,200 ) pc.give_item2(27002,200 ) pc.give_item2(27005,200 ) pc.give_item2(16) pc.give_item2(11206) pc.give_item2(12206) pc.give_item2(13006) pc.give_item2(14006) pc.give_item2(15006) pc.give_item2(16006) pc.give_item2(17006) pc.give_item2(72702) pc.give_item2(71044, 20) pc.give_item2(71045, 20) pc.give_item2(70021) pc.give_item2(10001) horse . set_level ( 21 ) horse . ride ( ) pc . give_item2 ( 50053 ) pc . set_skill_level ( 131 , 59 ) pc . set_skill_level ( 137 , 59 ) pc . set_skill_level ( 138 , 59 ) pc . set_skill_level ( 139 , 59 ) pc . set_skill_level ( 140 , 59 ) nation = { "Shinsoo" , "Chunjo" , "Jinno" } notice_all ( "O player " .. pc . name .. " do reino " .. nation [ pc . getempire ( ) ] .. " acaba de logar pela primeira vez, seja bem vindo !!!" ) addimage(60, 12, "800.tga") say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "Bem vindo ao server" ) say ( "Diverte-te!" ) Bueno, donde dice:

    addimage(60, 12, "800.tga") 60 - X -> Posición12 - Y -> Posición
    "800.tga" - Nombre de imagen.
     
    Solo hay que adicionar eso: addimage(x, y, "XXX.tga")
     
    Que adicionar al cliente?
     
    Descopilar el ETC y ir a:

    /ymir work/ui/game/questboard y adicionar ahi la imagen que quieren que aparezca. Tiene que estar en formato .TGA 
     
    Fácil no? xDD
     
    Saludos!
     
    PD: Si no me equivoco, creo que fue Izaviona quien pregunto esto....
    Creditos que se me olvidavan:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    ATENCIóN!!! LA QUEST DE ARRIBA ES APENAS UN EJEMPLO DE COMO SE HACE!!!!!!!!
     
    Imagen:
     

  13. Me Gusta
    Metin2Brasil reacted to Akroma in Nation War 100% metin2.sg   
    Buenas feos esta tarde e estado jugando al sg, y ha dado la casualidad de que hoy tocaba la Nation War, y e decidido copiarla, es una copia exacta de ella, lo unico que falta, eso lo e dejado a decision de cada uno es si el reino que gana recibe o no exp extra y demas.
     
    aqui os la dejo:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  14. Me Gusta
    Metin2Brasil reacted to KeKo in [Evento] Coliseo PvM   
    Bueenas zoneros y zoneras,
     
    Hoy os traigo otro evento cosecha propia. Hace tiempo que habia escrito esta quest, que iba ser para un evento publico para mz, pero al final me dio pereza acabarla y quedo mi baul de las quests no acabdas.
     
    Bueno os comento: activas el evento mediante un npc, que le da 20min a todos los posibles jugadores para entrar al mapa hablando con el npc del evento. Una vez los 20min se cierra la entrada y si los jugadores hablan con el npc que debereis poner en el centro del mapa (o donde querais pero en el mapa) empezara el evento.
     
    La cosa es sencilla: acaba con todos los mobs de cada ronda. Si lo haces empezará la siguiente ronda (asi hasta la ronda que pongais de limite), perooo si moris os ireis para city. En este evento puede no haber ganadores asi que aconsejo a los usuarios que se preparen bien para el evento xd.
     
    Si los jugadores llegan a la ronda final aparecera un jefe especial que deberan matar entre todos, y si lo consiguen se les dara un premio (eso lo poneis ya de drop del jefe)
     
    El evento esta pensando para este mapa, pero podeis usar el que querais
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Tambien esta pensado para usar este mob como jefe final (es un metin gigante hecho por Chaoss) pero de nuevo usad el que querais.
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Y bueno aqui teneis la quest:
    quest evento_coliseo begin state start begin when 20012.chat."GM: Evento Coliseo" with pc.is_gm() begin say_title("Evento Coliseo") say("") say("Buenas tardes caballero") say("que quiere hacer con el evento") say("") local pregunta = select ("Activar Coliseo" , "Desactivar Coliseo" , "Ir alli" , "Cerrar") if pregunta == 1 then notice_all("*El Evento Coliseo ha comenzado, hablad con el npc para ir alli*") notice_all("*teneis 20minutos para entrar todos los que querais*") server_timer("coliseo", 20) game.set_event_flag("evencoliseo", 1) elseif pregunta == 2 then notice_all("*El Evento Coliseo se ha acabado, esperamos que lo hayais disfrutado*") warp_all_to_village(250,2) game.set_event_flag("evencoliseo", 0) game.set_event_flag("empezar_coli",0) elseif pregunta == 3 then pc.warp(3107100, 3196900) end end when 20012.chat."Evento Coliseo" begin if game.get_event_flag("evencoliseo") == 0 then say_title("Evento Coliseo") say("") say("Hola "..pc.get_name().." soi el encargado del Coliseo") say("y lamento decirte que en estos momentos") say("el evento no se encuentra activo") say("") say("Estate atento que se avisara") say("cuando puedas entrar al Coliseo") say("") return end say_title("Evento Coliseo") say("") say("Buenas "..pc.get_name().." el evento Coliseo") say("en su evento en el que tendras que superar") say("montones de hordas de enemigos") say("") say("Si mueres seras enviado a city") say("pero si consigues llegar a la ultima ronda") say("te espera una gran recompensa") say("") say("Que haras, te atreves?") say("") local coli = select ("Quiero ir" , "Paso") if coli == 1 then pc.warp(3107000, 3208300) end end when coliseo.server_timer begin notice_all("*El Evento Coliseo se ha puesto en marcha*") game.set_event_flag("empezar_coli",1) end when 20012.chat."Comenzar el coliseo" with game.get_event_flag("empezar_coli") == 1 begin npc.purge() d.new_jump_all(238,31080,32065) d.setf("coliseo",1)d.regen_file("data/dungeon/coliseo.txt") end when login with d.getf("coliseo") == 1 begin loop_timer("salvar", 2) end when kill with not npc.is_pc() and d.getf("coliseofinal") != 1 begin local rondas = { [1] = {5}, [2] = {30}, [3] = {15}, [4] = {20}, [5] = {50}, [6] = {30}, [7] = {35} } d.setf("mobsronda", d.getf("mobsronda") + 1) if rondas[d.getf("coliseo")][1] == d.getf("mobsronda") then d.setf("coliseo", d.getf("coliseo") + 1) d.notice("*El Coliseo se encuentra en la ronda "..d.getf("coliseo").."*") d.regen_file("data/dungeon/coliseo"..d.getf("coliseo").."txt") d.setf("mobsronda",0) end if d.getf("coliseo") == 7 then -- ultima ronda notice_all("*Habeis llegado a la ultima ronda, mucha suerte con el metin final*") d.regen_file("data/dungeon/colifinal.txt") d.setf("coliseofinal", 1) end end when idjefe.kill with d.getf("coliseofinal") == 1 begin -- poneis la id del jefe notice_all("*Habeis superado el Coliseo, recoged vuestras recompensas") timer("pafuera", 10) end when salvar.timer begin if pc.get_hp() <= 0 then warp_to_village() end end when pafuera.timer begin d.exit_all() end endend Os explico como funciona:
    d.new_jump_all(238,31080,32065)d.setf("coliseo",1)d.regen_file("data/dungeon/coliseo.txt") Al hablar con el npc una vez comenzado el evento se hace un salto para comenzar una dungeon y se carga la primera ronda. Como no siempre usareis el mismo numero de mobs en cada rondas, he puesto un array en el que tendreis que configurar las rondas:
    local rondas = { [1] = {5}, -- [] numero ronda {} cantidad de mobs[2] = {30},[3] = {15},[4] = {20},[5] = {50},[6] = {30},[7] = {35} } Debereis añadir una linea al array por cada ronda que querais hacer. En el [ ] va el numero de ronda y en el { } la cantidad de mobs que tiene esa ronda de mobs.
     
    Al matarlos a todos saldra un mensaje diciendo en que ronda vais y se cargara la siguiente:
    d.setf("coliseo", d.getf("coliseo") + 1)d.notice("*El Coliseo se encuentra en la ronda "..d.getf("coliseo").."*")d.regen_file("data/dungeon/coliseo"..d.getf("coliseo").."txt") Como veis debereis meter vuestros regens en data/dungeon y se deberan llamar: el primero coliseo y de ahi en adelante seran coliseo2.txt,coliseo3.txt,coliseo4.txt,etc,etc (ojo, no hay coliseo1)
     
    Para limitar cual es la ronda del jefe lo pondreis aqui
    if d.getf("coliseo") == 7 then La ronda que pongais ahi sera la del jefe, que debereis cargar del regen
    d.regen_file("data/dungeon/colifinal.txt") Y bueno, espero que os guste el evento saludos
  15. Me Gusta
    Metin2Brasil reacted to KeKo in [Quest+cliente] El sistema de logros   
    Buenasss zoneros y zoneras, hoy os voi a explicar como implementar en vuestro servidores el sistema de logros que meti en Metin2Extasis, hasta con mi querida quest de canjes xd (aunque en elite hay una mas completa la mia es mas sencillita).
     
    ESTA GUIA ES EXCLUSIVA DE METIN2ZONE, QUE NADIE LA COPY PASTEE A OTROS FOROS
     
    1 - Qué es el sistema de logros?
     
    Este sistema consiste en una quest y una edicion del cliente que hace que cada vez que un jugador alcance un objetivo concreto, que tu fijas en la quest, le da los puntos correspondientes al logro que haya alcanzando. Si un jugador acumula puntos luego los puede canjear por premios.
     
    Aqui teneis algunas fotos del resultado final (son antiguas del extasis xd):
     

     

     
     
     
    2 - Como meto yo esto?
     
    El sistema de logros consiste en una quest y en editar unos archivos en el cliente, así que vamos a ir paso por paso:
     
     
    2.1: Parte del cliente:
     
    *Todos los archivos que tengais que meter estan en esta descarga:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    2.1.1 - Que archivos vamos a editar? En el cliente editaremos los siguientes archivos:
     
    -Root: dentro de el los archivos game.py y uiachievement.py (este lo meteremos nosotros).
    -Etc: donde meteremos los archivos achievement_small.sub y achievement_small.dds
    -Uiscript: aqui meteremos el archivo achievementboard.py y warteschleife.py
     
    2.1.2 - Manos a la obra, a implementar!
     
     
    2.1.2.1: Primero empezaremos con el root. Decompilad vuestro root, abrid el archivo game.py y buscad esto:
     

    def __ServerCommand_Build(self): Una vez esteis ahi, vais hasta donde pone "CloseSafeBox" y cuando esteis en esa linea le dais a a enter y pegais esto:
     

    # Achievement System START "achievement" : self.__AchievementTest, "achievementpoints" : self.__ShowAchievementPoints, # Achievement System END Quedandoos asi:
     

     
    (Las -------------------- las pongo solo para que distingais la parte que acabamos de añadir, no hay que ponerlas)
     
    Ahora vais al final del archivo, le dais a enter para dejar algo de espacio y pegais esto:
     

    # Achievement System START def __ShowAchievementPoints(self, points): import uiAchievement import uiTaskbar self.uiAchievement = uiAchievement.AchievementDialog() uiAchievement.AchievementPoints = int(points) def __AchievementTest(self, archivement): import uiAchievement self.uiAchievement = uiAchievement.AchievementDialog() self.uiAchievement.Show(1, str(archivement)) self.uiAchievement.SetTop() # Achievement System END Quedará asi:
     

     
     
    *Siguiente paso: metemos en la carpeta root el archivo uiachievement.py y lo añadimos al xml
     

    <File archivedPath="uiachievement.py" type="2"><![CDATA[Sourceuiachievement.py]]></File> Listo el root! Sigamos con el etc.
     
    2.1.2.2: Decompilamos nuestro etc, vamos a la carpeta ymir work/ui y metemos el achievement_small.dds. Despues vamos a la carpeta ymir work/ui/public y metemos el achievement_small.sub. Por ultimo agregamos ambos al xml:
     

    <File archivedPath="d:/ymir work/ui/public/achievement_small.sub" type="0"><![CDATA[Sourceymir workuipublicachievement_small.sub]]></File> <File archivedPath="d:/ymir work/ui/achievement_small.dds" type="0"><![CDATA[Sourceymir workuiachievement_small.dds]]></File> 2.1.2.3: El ultimo paso en el cliente es decompilar nuestro uiscript y meter el archivo achievementboard.py y el warteschleife.py: en la carpeta. Los añadimos al xml y compilamos:
     

    <File archivedPath="uiscript/achievementboard.py" type="2"><![CDATA[Sourceuiscriptachievementboard.py]]></File> <File archivedPath="uiscript/warteschleife.py" type="2"><![CDATA[Sourceuiscriptwarteschleife.py]]></File> Y listo ya tenemos todo lo del cliente
     
     
    2.1: Parte del server:
     
    Bueno ahora ya solo nos queda meter nuestra quest del sistema de logros en la carpeta /home/game/quest (o la ruta en la que tengais la carpeta quest). Aqui os dejo la mia, con los nombres en español, algunos logros añadidos, canje, un item que te da logros (pa quien lo quiera xd), una opcion que te dice tus logros, etc
     

    quest logros_keko begin state start begin --LOGIN when login begin local actual_achievement_points = pc.getqf("achievement_points") if pc.getqf("firstlogin") != 1 then local Reward = 1 pc.setqf("firstlogin", 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement Primer_login%".. actual_achievement_points + Reward .."") else cmdchat("achievementpoints ".. pc.getqf("achievement_points")) end end --BOSSE when 691.kill begin local Reward = 2 local Achievement = "Jefe_Orco" local killcount = pc.getqf("691") local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("691", killcount + 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_derrotado#".. killcount + 1 .."%".. actual_achievement_points + Reward .."") end when 791.kill begin local Reward = 3 local Achievement = "Lider_esoterico" local killcount = pc.getqf("791") local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("791", killcount + 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_derrotado#".. killcount + 1 .."%".. actual_achievement_points + Reward .."") end when 2493.kill begin local Reward = 100 local Achievement = "Dragon_azul" local killcount = pc.getqf("2493") local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("2493", killcount + 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_derrotado#".. killcount + 1 .."%".. actual_achievement_points + Reward .."") end when 2492.kill begin local Reward = 20 local Achievement = "Comandante_Setaou" local killcount = pc.getqf("2492") local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("2492", killcount + 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_derrotado#".. killcount + 1 .."%".. actual_achievement_points + Reward .."") end when 1091.kill begin local Reward = 5 local Achievement = "Rey_demonio" local killcount = pc.getqf("1091") local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("1091", killcount + 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_derrotado#".. killcount + 1 .."%".. actual_achievement_points + Reward .."") end when 2597.kill begin local Reward = 20 local Achievement = "Muerte" local killcount = pc.getqf("2597") local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("2597", killcount + 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_derrotado#".. killcount + 1 .."%".. actual_achievement_points + Reward .."") end when 1192.kill begin local Reward = 12 local Achievement = "Bruja_de_hielo" local killcount = pc.getqf("1192") local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("1192", killcount + 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_derrotado#".. killcount + 1 .."%".. actual_achievement_points + Reward .."") end when 1304.kill begin local Reward = 5 local Achievement = "Tigre_fantasma" local killcount = pc.getqf("1304") local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("1304", killcount + 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_derrotado#".. killcount + 1 .."%".. actual_achievement_points + Reward .."") end when 1901.kill begin local Reward = 4 local Achievement = "9_colas" local killcount = pc.getqf("1901") local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("1901", killcount + 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_derrotado#".. killcount + 1 .."%".. actual_achievement_points + Reward .."") end when 2091.kill begin local Reward = 3 local Achievement = "Reina_araña" local killcount = pc.getqf("2091") local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("2091", killcount + 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_derrotado#".. killcount + 1 .."%".. actual_achievement_points + Reward .."") end when 2206.kill begin local Reward = 4 local Achievement = "Jefe_logros" local killcount = pc.getqf("2206") local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("2206", killcount + 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_derrotado#".. killcount + 1 .."%".. actual_achievement_points + Reward .."") end when 2191.kill begin local Reward = 5 local Achievement = "Tortuga_del_desierto" local killcount = pc.getqf("2191") local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("2191", killcount + 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_derrotado#".. killcount + 1 .."%".. actual_achievement_points + Reward .."") end when 692.kill begin local Reward = 3 local Achievement = "Orco_elite" local killcount = pc.getqf("692") local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("692", killcount + 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_derrotado#".. killcount + 1 .."%".. actual_achievement_points + Reward .."") end when 693.kill begin local Reward = 5 local Achievement = "Orco_renacido" local killcount = pc.getqf("693") local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("693", killcount + 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_derrotado#".. killcount + 1 .."%".. actual_achievement_points + Reward .."") end --Item shop--- when 50129.use begin say_title ( "Obten puntos logro") local actual_achievement_points = pc . getqf ( "achievement_points" ) local p = select ( "Obten 200 puntos logro" ) if p == 1 then local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points + 200 ) say ( "Enorabuena tienes 200 logros mas" ) say ( "Disfrutalos!" ) item.remove ( "50129", 1 ) end end when 50130.use begin say_title ( "Obten puntos logro") local actual_achievement_points = pc . getqf ( "achievement_points" ) local p = select ( "Obten 100 puntos logro" ) if p == 1 then local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points + 100 ) say ( "Enorabuena tienes 100 logros mas" ) say ( "Disfrutalos!" ) item.remove ( "50130", 1 ) end end when 50131.use begin say_title ( "Obten puntos logro") local actual_achievement_points = pc . getqf ( "achievement_points" ) local p = select ( "Obten 50 puntos logro" ) if p == 1 then local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points + 50 ) say ( "Enorabuena tienes 50 logros mas" ) say ( "Disfrutalos!" ) item.remove ( "50131", 1 ) end end when 50132.use begin say_title ( "Obten puntos logro") local actual_achievement_points = pc . getqf ( "achievement_points" ) local p = select ( "Obten 25 puntos logro" ) if p == 1 then local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points + 25 ) say ( "Enorabuena tienes 25 logros mas" ) say ( "Disfrutalos!" ) item.remove ( "50132", 1 ) end end --CANJES-- when 50115.use begin say_title ( "Canjea tus puntos logro" ) local actual_achievement_points = pc . getqf ( "achievement_points" ) local p = select ( "Caballo armado - 5 puntos" , "Caballo militar - 30 puntos" , "Bonus mediohumanos +20% por 30min - 50 puntos" , "Bonus HP +5000 por 30min - 60 puntos" , "Armadura divina - 400 logros" , "Mascota de ataque - 30 puntos" , "Mas" ) if p == 1 then if pc . getqf ( "achievement_points" ) <= 4 then say ( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 5 ) say ( "Has recibido un caballo armado" ) horse . set_level ( "11" ) horse . unsummon ( ) horse . summon ( ) pc . give_item2 ( "50052" , 1 ) return elseif p == 2 then if pc . getqf ( "achievement_points" ) <= 29 then say ( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 30 ) say ( "Has recibido un caballo militar" ) horse . set_level ( "21" ) horse . unsummon ( ) horse . summon ( ) pc . give_item2 ( "50053" , 1 ) return elseif p == 3 then if pc . getqf ( "achievement_points" ) <= 49 then say ( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 50 ) say ( "Has recibido 20% fuerza contra mediohumanos por 30min" ) affect . add_collect ( apply . ATTBONUS_HUMAN , 20 , 60 * 30 ) return elseif p == 4 then if pc . getqf ( "achievement_points" ) <= 59 then say ( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 60 ) say ( "Has recibido 5000hp por 30min" ) affect . add_collect ( apply . MAX_HP , 5000 , 60 * 30 ) return elseif p == 5 then if pc. getqf ( "achievement_points" ) <= 399 then say ( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 399 ) local armor = select ( "Armd. divina (G)" , "Armd. divina (N)" , "Armd. divina (S)" , "Armd. divina (C)" ) if armor == 1 then say ( "Has recibido la Armadura divina" ) pc . give_item2 ( "42080" , 1 ) return elseif armor == 2 then say ( "Has recibido la Armadura divina" ) pc . give_item2 ( "44080" , 1 ) return elseif armor == 3 then say ( "Has recibido la Armadura divina" ) pc . give_item2 ( "46080" , 1 ) return elseif armor == 4 then say ( "Has recibido la Armadura divina" ) pc . give_item2 ( "48080" , 1 ) return end elseif p == 6 then if pc . getqf ( "achievement_points" ) <= 29 then say ( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 29 ) say ( "Has recibido la mascota de ataque" ) pc . give_item2 ( "30312" , 1 ) return elseif p == 7 then local p2 = select ( "Leon Blanco - 40 puntos" , "Anillo experiencia - 5 puntos" , "Fuerza monstruo +20% 30min - 15 puntos" , "Velocidad movimiento +25% 30min - 10 puntos" , "Mascota de defensa - 25 puntos" , "Cuantos logros tengo?" , "Cerrar" ) if p2 == 1 then if pc . getqf ( "achievement_points" ) <= 39 then say ( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 40 ) say ( "Has recibido un leon blanco disfrtualo, no se acaba" ) pc . give_item2 ( "50110" , 1 ) return elseif p2 == 2 then if pc . getqf ( "achievement_points" ) <= 4 then say ( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 5 ) say ( "Disfruta de un anillo de experiencia" ) pc . give_item2 ( "71015" , 1 ) return elseif p2 == 3 then if pc . getqf ( "achievement_points" ) <= 14 then say ( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 15 ) say ( "Has recibido 20% fuerza monstruo por 30min" ) affect . add_collect ( apply . ATTBONUS_MONSTER , 20 , 60 * 30 ) return elseif p2 == 4 then if pc . getqf ( "achievement_points" ) <= 9 then say ( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 10 ) say ( "Has recibido 25% velo.movimiento por 30min" ) affect . add_collect ( apply . MOV_SPEED , 25 , 60 * 30 ) return elseif p2 == 5 then if pc . getqf ( "achievement_points" ) <= 24 then say ( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 25 ) say ( "Has recibido la mascota de defensa" ) pc . give_item2 ( "71124" , 1 ) return elseif p2 == 6 then local Reward = 0 local Achievement = "Ver_tus_logros" local killcount = pc.getqf("logros") local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_derrotado#".. killcount + 1 .."%".. actual_achievement_points + Reward .."") elseif p2 == 7 then return end end end --METINS when 8013.kill begin local Reward = 8 local Achievement = "Metin_muerte" local killcount = pc.getqf("8013") local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("8013", killcount + 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_destruido#".. killcount + 1 .."%".. actual_achievement_points + Reward .."") end when 8016.kill begin local Reward = 5 local Achievement = "Metin_demonio" local killcount = pc.getqf("8016") local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("8016", killcount + 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_destruido#".. killcount + 1 .."%".. actual_achievement_points + Reward .."") end when 8012.kill begin local Reward = 6 local Achievement = "Metin_caida" local killcount = pc.getqf("8012") local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("8012", killcount + 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_destruido#".. killcount + 1 .."%".. actual_achievement_points + Reward .."") end when 8015.kill begin local Reward = 5 local Achievement = "Metin_dureza" local killcount = pc.getqf("8015") local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("8015", killcount + 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_destruido#".. killcount + 1 .."%".. actual_achievement_points + Reward .."") end when 8026.kill begin local Reward = 2 local Achievement = "Metin_85" local killcount = pc.getqf("8026") local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("8026", killcount + 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_destruido#".. killcount + 1 .."%".. actual_achievement_points + Reward .."") end when 8027.kill begin local Reward = 3 local Achievement = "Metin_90" local killcount = pc.getqf("8027") local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("8027", killcount + 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_destruido#".. killcount + 1 .."%".. actual_achievement_points + Reward .."") end --LEVELS when login or levelup with pc.get_level() >= 15 and pc.getqf("Level15") != 1 begin local Reward = 2 local Achievement = "Level_15" local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("Level15", 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_alcanzado%".. actual_achievement_points + Reward .."") end when login or levelup with pc.get_level() >= 30 and pc.getqf("Level30") != 1 begin local Reward = 2 local Achievement = "Level_30" local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("Level30", 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_alcanzado%".. actual_achievement_points + Reward .."") end when login or levelup with pc.get_level() >= 40 and pc.getqf("Level40") != 1 begin local Reward = 3 local Achievement = "Level_40" local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("Level40", 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_alcanzado%".. actual_achievement_points + Reward .."") end when login or levelup with pc.get_level() >= 50 and pc.getqf("Level50") != 1 begin local Reward = 4 local Achievement = "Level_50" local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("Level50", 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_alcanzado%".. actual_achievement_points + Reward .."") end when login or levelup with pc.get_level() >= 75 and pc.getqf("Level75") != 1 begin local Reward = 5 local Achievement = "Level_75" local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("Level75", 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_alcanzado%".. actual_achievement_points + Reward .."") end when login or levelup with pc.get_level() >= 85 and pc.getqf("Level85") != 1 begin local Reward = 10 local Achievement = "Level_85" local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("Level85", 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_alcanzado%".. actual_achievement_points + Reward .."") end when login or levelup with pc.get_level() >= 90 and pc.getqf("Level90") != 1 begin local Reward = 25 local Achievement = "Level_90" local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("Level90", 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_alcanzado%".. actual_achievement_points + Reward .."") end when login or levelup with pc.get_level() >= 95 and pc.getqf("Level95") != 1 begin local Reward = 50 local Achievement = "Level_95" local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("Level95", 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_alcanzado%".. actual_achievement_points + Reward .."") end when login or levelup with pc.get_level() >= 99 and pc.getqf("Level99") != 1 begin local Reward = 100 local Achievement = "Level_99" local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("Level99", 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_alcanzado%".. actual_achievement_points + Reward .."") end --CHECK EQUIP when login begin loop_timer("check_eq", 10) end when check_eq.timer begin local russi = pc.get_armor() local waffe = pc.get_weapon() local actual_achievement_points = pc.getqf("achievement_points") local Reward = 5 if russi==11299 and pc.getqf("achievement_ssp") != 1 then pc.setqf("achievement_ssp", 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement Armadura negra+9%".. actual_achievement_points + Reward .."") elseif russi==11499 and pc.getqf("achievement_swa") != 1 then pc.setqf("achievement_swa", 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement Armadura negra+9%".. actual_achievement_points + Reward .."") elseif russi==11699 and pc.getqf("achievement_mpp") != 1 then pc.setqf("achievement_mpp", 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement Armadura negra+9%".. actual_achievement_points + Reward .."") elseif russi==11899 and pc.getqf("achievement_sk") != 1 then pc.setqf("achievement_sk", 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement Armadura negra+9%".. actual_achievement_points + Reward .."") elseif waffe==189 and pc.getqf("achievement_gifti") != 1 then pc.setqf("achievement_gifti", 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement Giftschwert+9%".. actual_achievement_points + Reward .."") elseif waffe==199 and pc.getqf("achievement_lowenschw.") != 1 then pc.setqf("achievement_lowenschw.", 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement Löwenschwert+9%".. actual_achievement_points + Reward .."") elseif waffe==5129 and pc.getqf("achievement_orchiglocke") != 1 then pc.setqf("achievement_orchiglocke", 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement Orchideenglocke+9%".. actual_achievement_points + Reward .."") elseif waffe==2179 and pc.getqf("achievement_krahenstahl") != 1 then pc.setqf("achievement_krahenstahl", 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement Krähenstahlbogen+9%".. actual_achievement_points + Reward .."") elseif waffe==1139 and pc.getqf("achievement_teufelsflugenchak") != 1 then pc.setqf("achievement_teufelsflugenchak", 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement Teufelsflügel-Chakram+9%".. actual_achievement_points + Reward .."") elseif waffe==3169 and pc.getqf("achievement_Grolli") != 1 then pc.setqf("achievement_Grolli", 1) pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement Grollschwert+9%".. actual_achievement_points + Reward .."") end end end end Y para que no os quedeis simplemente metiendo la quest y ya ta os voi a explicar como funciona:
     
    1 - Lo mas importante de los logros es que cuando alcanzas uno (por ejemplo matar al jefe orco) te suma puntos mediante un pc.setqf:
     

    when 691.kill begin local Reward = 2 pc.setqf("achievement_points", actual_achievement_points + Reward) Como veis ahí al jefe orco (mob de id 691) le asigna los puntos que vale con local Reward = 2 y luego te suma 2 puntos con el pc.setqf("achievement_points", actual_achievement_points + Reward (el reward en este caso seria un +2).
     
    Por lo tanto si quereis añadir otro mob a la lista de logros solo tendreis que hacer lo siguiente:
     

    when idmob.kill begin local Reward = puntos -- Poneis cuantos puntos quereis que os de local Achievement = "Nombre del mob que saldra en el cliente" local killcount = pc.getqf("idmob") -- Se usa para que el juego lleve la cuenta de cuantas veces lo mataste local actual_achievement_points = pc.getqf("achievement_points") -- Calcula cuantos puntos tenes pc.setqf("693", killcount + 1) -- Aqui os suma 1 al numero de ese mob que llevais pc.setqf("achievement_points", actual_achievement_points + Reward) -- aqui te suma tus puntos por matarlo cmdchat("achievement ".. Achievement .."_derrotado#".. killcount + 1 .."%".. actual_achievement_points + Reward .."") -- Con esto te saldra la ventana en el cliente diciendo que lo mataste y cuantos puntos tenes end Ahora os enseñare como hacer los canjes. En mi caso los canjes se hacen mediante un item, pero vosotros podeis hacerlo como querais simplement cambiando el when iditem.use por un when npc.chat."Canje de Logros" o como os apetezca.
     
    Veamos como tengo yo los canjes:
     

    when 50115.use begin say_title ( "Canjea tus puntos logro" ) local actual_achievement_points = pc . getqf ( "achievement_points" ) local p = select ( "Caballo armado - 5 puntos" , "Caballo militar - 30 puntos" , "Bonus mediohumanos +20% por 30min - 50 puntos" , "Bonus HP +5000 por 30min - 60 puntos" , "Armadura divina - 400 logros" , "Mascota de ataque - 30 puntos" , "Mas" ) if p == 1 then if pc . getqf ( "achievement_points" ) <= 4 then say ( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 5 ) say ( "Has recibido un caballo armado" ) horse . set_level ( "11" ) horse . unsummon ( ) horse . summon ( ) pc . give_item2 ( "50052" , 1 ) return elseif p == 2 then if pc . getqf ( "achievement_points" ) <= 29 then say ( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 30 ) say ( "Has recibido un caballo militar" ) horse . set_level ( "21" ) horse . unsummon ( ) horse . summon ( ) pc . give_item2 ( "50053" , 1 ) return elseif p == 3 then if pc . getqf ( "achievement_points" ) <= 49 then say ( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 50 ) say ( "Has recibido 20% fuerza contra mediohumanos por 30min" ) affect . add_collect ( apply . ATTBONUS_HUMAN , 20 , 60 * 30 ) return elseif p == 4 then if pc . getqf ( "achievement_points" ) <= 59 then say ( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 60 ) say ( "Has recibido 5000hp por 30min" ) affect . add_collect ( apply . MAX_HP , 5000 , 60 * 30 ) return elseif p == 5 then if pc. getqf ( "achievement_points" ) <= 399 then say ( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 399 ) local armor = select ( "Armd. divina (G)" , "Armd. divina (N)" , "Armd. divina (S)" , "Armd. divina (C)" ) if armor == 1 then say ( "Has recibido la Armadura divina" ) pc . give_item2 ( "42080" , 1 ) return elseif armor == 2 then say ( "Has recibido la Armadura divina" ) pc . give_item2 ( "44080" , 1 ) return elseif armor == 3 then say ( "Has recibido la Armadura divina" ) pc . give_item2 ( "46080" , 1 ) return elseif armor == 4 then say ( "Has recibido la Armadura divina" ) pc . give_item2 ( "48080" , 1 ) return end elseif p == 6 then if pc . getqf ( "achievement_points" ) <= 29 then say ( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 29 ) say ( "Has recibido la mascota de ataque" ) pc . give_item2 ( "30312" , 1 ) return elseif p == 7 then local p2 = select ( "Leon Blanco - 40 puntos" , "Anillo experiencia - 5 puntos" , "Fuerza monstruo +20% 30min - 15 puntos" , "Velocidad movimiento +25% 30min - 10 puntos" , "Mascota de defensa - 25 puntos" , "Cuantos logros tengo?" , "Cerrar" ) if p2 == 1 then if pc . getqf ( "achievement_points" ) <= 39 then say ( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 40 ) say ( "Has recibido un leon blanco disfrtualo, no se acaba" ) pc . give_item2 ( "50110" , 1 ) return elseif p2 == 2 then if pc . getqf ( "achievement_points" ) <= 4 then say ( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 5 ) say ( "Disfruta de un anillo de experiencia" ) pc . give_item2 ( "71015" , 1 ) return elseif p2 == 3 then if pc . getqf ( "achievement_points" ) <= 14 then say ( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 15 ) say ( "Has recibido 20% fuerza monstruo por 30min" ) affect . add_collect ( apply . ATTBONUS_MONSTER , 20 , 60 * 30 ) return elseif p2 == 4 then if pc . getqf ( "achievement_points" ) <= 9 then say ( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 10 ) say ( "Has recibido 25% velo.movimiento por 30min" ) affect . add_collect ( apply . MOV_SPEED , 25 , 60 * 30 ) return elseif p2 == 5 then if pc . getqf ( "achievement_points" ) <= 24 then say ( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 25 ) say ( "Has recibido la mascota de defensa" ) pc . give_item2 ( "71124" , 1 ) return elseif p2 == 6 then local Reward = 0 local Achievement = "Ver_tus_logros" local killcount = pc.getqf("logros") local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_derrotado#".. killcount + 1 .."%".. actual_achievement_points + Reward .."") elseif p2 == 7 then return end end end *Si os fijais la ultima opcion de la tienda de canjes te permite ver tus logros, para ello le hice un logro que te sume 0 puntos pero que te enseña cuantos tienes:
     

    elseif p2 == 6 then local Reward = 0 local Achievement = "Ver_tus_logros" local killcount = pc.getqf("logros") local actual_achievement_points = pc.getqf("achievement_points") pc.setqf("achievement_points", actual_achievement_points + Reward) cmdchat("achievement ".. Achievement .."_derrotado#".. killcount + 1 .."%".. actual_achievement_points + Reward .."") Asi que si necesitais hacer vuestra opcion de ver logros ahi teneis
     
    Tal como eso son todos los canjes, si quereis hacer vuestros propios canjes os hago aqui un pequeño script de canje para explicaros como seria:
     
     

    when 20095.chat."Canjear mis logros" begin say_title("Canjear mis logros") say("") say("Hola jugador, si tienes logros") say("yo te los puedo cambiar por cositas.") say("") say("Si no tienes intenta conseguir alguno") say("porque merece la pena") say("") say_reward("Quieres canjear tus punots?") local canje = select ("Si" , "No") if canje == 1 then say_title("Canjes de logros") say("") say("Elige lo que quieras") local elegir = select ("Quinto bonus - 3 logros" , "Añadir 6-7 bonus - 4 logros" , "Cambiar 6-7 bonus - 5 logros" , "Caballo armado - 6 logros" , "Caballo militar - 8 logros" , "Cerrar") if elegir == 1 then if pc . getqf ( "achievement_points" ) <= 2 then chat( "Lo siento necesitas mas puntos" ) return end pc.give_item2("70024", 1) local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 3 ) return elseif elegir == 2 then if pc . getqf ( "achievement_points" ) <= 3 then chat( "Lo siento necesitas mas puntos" ) return end pc.give_item2("71051", 1) local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 4 ) return elseif elegir == 3 then if pc . getqf ( "achievement_points" ) <= 4 then say ( "Lo siento necesitas mas puntos" ) return end pc.give_item2("71052", 1) local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 5 ) return elseif elegir == 4 then if pc . getqf ( "achievement_points" ) <= 5 then chat( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 6 ) chat ( "Has recibido un caballo armado" ) horse . set_level ( "11" ) horse . unsummon ( ) horse . summon ( ) pc . give_item2 ( "50052" , 1 ) return elseif elegir == 5 then elseif p == 2 then if pc . getqf ( "achievement_points" ) <= 7 then say ( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 8 ) chat( "Has recibido un caballo militar" ) horse . set_level ( "21" ) horse . unsummon ( ) horse . summon ( ) pc . give_item2 ( "50053" , 1 ) return elseif elegir == 6 then return end elseif canje == 2 then return end end Este script es un pequeño regalo para vosotros, lo hice ahora para que podais usar otro si no quereis el que tenia en el extasis.
     
    *Para meterla en vuestra quest podeis quitar mi tienda de canjes y pegar esta si quereis, o hacerla como quest separada.
     
    Por ultimo os explicare como funcionan los canjes con un ejemplo:
     

    local p = select ( "Caballo armado - 5 logros") if p == 1 then if pc . getqf ( "achievement_points" ) <= 4 then say ( "Lo siento necesitas mas puntos" ) return end local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 5 ) say ( "Has recibido un caballo armado" ) horse . set_level ( "11" ) horse . unsummon ( ) horse . summon ( ) pc . give_item2 ( "50052" , 1 ) return Empieza con un local = select para que escojais vuestro premio y os aconsejo que pongais ahi cuantos logros cuesta como hice yo.
     
    Luego puse una restriccion para que si teneis menos puntos que los que pide el item no os deje comprarlo:
     

    if pc . getqf ( "achievement_points" ) <= 2 then chat( "Lo siento necesitas mas puntos" ) return end Funciona de la siguiente manera: donde pone <= 2 teneis que poner un punto menos que los que pide, ya que eso dice que si tienes esos puntos o menos no te deje comprar.
     
    Despues del return end ya solo teneis que poner el comando para que os quite los puntos que es este:
     

    local actual_achievement_points = pc . getqf ( "achievement_points" ) pc . setqf ( "achievement_points" , actual_achievement_points - 5 ) --Poneis ahi los que quereis que quite Y lo que quereis que os dea justo debajo de esas dos lineas:
     

    pc.give_item2("71052", 1) --- Ahi poned lo que quereis que dea Y eso es todo zoneros, que disfruteis del sistema de logros !!!
     
    Creditos: al creador del sistema (que no es mio xd) y a mi por la parte de la quest mia y la traduccion de la original.
  16. Me Gusta
    Metin2Brasil reacted to anderson626 in NUEVO SISTEMA EMOTICON   
    Como es que se ultiliza, lo tengo pero no eh entendido como usarlo :V
  17. Me Gusta
    Metin2Brasil reacted to ALEXANDER2020 in NUEVO SISTEMA EMOTICON   
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  

     
     
  18. Me Gusta
    Metin2Brasil reacted to LovePlay in [BITCHES] Interface ingame (Grafica)   
    Van dos negros en una moto y se cae sema
     
    Hola a todos, como no tengo nah que hacer que me da pereza terminar un server que ando haciendo aqui os dejo una interfaz ingame o grafica creo que se le llama..
     
    Ami no me gusta, pero como uno me lo pidio por skype la dejo por aqui, tampoco espero que os guste a vosotros pero por postear algo, y ver que alguien me critica le respondo y asi no me aburro :D
     

     
    Esa imagen es vieja, ahora esta mucho mas mejorado, pero me daba pereza buscar otra imagen.
     
    Aqui os dejo el link: Debes iniciar sesión para ver el contenido del enlace en esta publicación.
     
    #PaciForPresidentOfTheBitches
  19. Me Gusta
    Metin2Brasil reacted to Lixy in Imagenes de DRAGONES y ORIENTALES   
    Estos últimos dias estube metida en paginas rusas bajando imagenes... por ahora solo clasifique por dos tematicas, dragones y oriente, aunque aun me quedan un monton mas.. de angeles, demonios, monstruos, hombres lobo, paisajes, luchadores, batallas, etc... ffss mucho trabajo conque de momento solo os dejo estas dos tematicas que son las que mas pegan con metin. Los baje de muchas paginas distintas uno por uno.Me esforze mucho espero que os guste.
     

     
    Este fichero contiene lo siguiente:
    -317 imágenes limpias (listas para usar sin tener que ser editadas)
    -90 imágenes sucias (tienen alguna firma por lo que o hay que editarla o recortarla)
    -11 imágenes png. (son unos dragones en perfecta calidad sin fondo para agregarlos por ahí)
    -17 imágenes símbolos (son símbolos de dragones.... )

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Agrego otro archivo que consta de lo siguiente:
    -189 dragones limpios
    -70 dragones sucios
    -11 imágenes símbolos

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

     
    Este archivo contiene lo siguiente:
    - 65 imágenes limpias ( sin necesidad de editarlos)
    -10 imágenes sucias (están firmadas con que hay que editarlas o recortarlas)

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Agrego otro archivo que consta de lo siguiente:
    -30 imágenes limpias
    -8 imágenes sucias

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Agrego un archivo más que contiene lo siguiente:
    -89 imágenes limpias
    -14 imágenes de tamaño raro
    -10 imágenes sucias

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  20. Me Gusta
    Metin2Brasil reacted to Guty in Renders [NPC]   
    Buenas Aca Les Traigo Unos Npc Que me incontre en google pero los edite para que quedaran renders xD estan con fondo y todo eso y lo edite y estan creo que en 3d xD Bueno no hablando tanto aca les dejo el psd para que los saquen 
     
     
    aca una foto xD

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Descarga
     
     
     
    Agradecer No Cuesta Nda 
    Si necesitas Ayuda No dudes En Pedirme
  21. Me Gusta
    Metin2Brasil reacted to Jfirewall in Inaguremos La Seccion ;) Taskbar   
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Ya La Habian Visto Pues Ay La Posteo Para Ustedes
     
    Adaptada Por Mi
     
     
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  22. Me Gusta
    Metin2Brasil reacted to ZeVoVo in [Opinion]Banners   
    Hola bueno os traigo una imagen que acabo de hacer es sencilla pero queria saber vuestra opinion
    Quien quiera imagenes asi hago tambien para banners de Youtube, foto de perfil o banner para los foros Firmas

     
    Os dejo mi canal --- 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Mi pagina de facebook- 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Por si quereis alguna imagen
  23. Me Gusta
    Metin2Brasil reacted to -LovePlay- in [FONDO] Imagen por LovePlay   
    Aquí os dejo una imagen que se puede usar de fondo, de imagen de carga o cualquier otra cosa. Pedid el PSD en por privado por si queréis editarlo, si no más tarde dejare el enlace del mismo abajo.
     
    Haré más cuando tenga tiempo libre.
     

     
    Creditos:
     
    Barras arriba y abajo por : Metin2 / ymir work
    Fondo1 : 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Fondo2 : 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Render del guerrero : 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  24. Me Gusta
    Metin2Brasil reacted to -YC- in [RELEASE]Interface login Age of Dragons   
    Hola shavos, como estan :v bueno, quiero aportar mi pequeño granito de arena, a este maravishoso foro, en fin, les vengo a aportar mi interface que he realizado, ACLARO NO ES MI DISEÑO :V , pero si mi codigo :v, bueno me tarde unas 5 horas :v siendo mi primer interface que realizo, el diseño es de Iesabel, el script es mio :v, tambien me tome la libertad de traducirlo :v ya que estaba en otro idioma gggg....
     
    EL NOMBRE SE LO HE PUESTO YO :V YA QUE SE ME OCURRIO POR EL DISEÑO
     
    Imagen del PSD:

     
    Imagenes de interface ya en juego:



     
    Descarga:


    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Contraseña:
     
    interface_by_yc
  25. Me Gusta
    Metin2Brasil reacted to Kratos in Diseño Parecido a el Metin2 zaunt By: Darkthegame [Free] + Opinión de como me quedo   
    Buenas gente de esta comunidad de foro, Hoy les traigo otro diseño mucho mejor que el anterior bueno les dejo el link 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. PD: descargarlo el que quiera descargarlo bien.  
    Contacto: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Para mas Diseños. 
    Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.
×
×
  • Crear nuevo...