Jump to content

alezzz

Miembro
  • Contador contenido

    0
  • Ingreso

  • Última visita

Actividad de reputación

  1. Me Gusta
    alezzz reacted to Shang in Nueva login interface by yekta   
    Anduve buscando interfaces para el login, y esta en concreto me llamó la atención, y como no la vi por el foro ps la posteo.
     
    Aquí unas imágenes de la susodicha:

     

     
    Créditos:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Un saludo.

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  2. Me Gusta
    alezzz reacted to Miguelito in Nuevo Interfaz de Login - RatedR203   
    Hola Metin2Zone eh estado un poco ausente (estaba de viaje) pero les traigo este nuevo login (esta Guapo)
     
     
    Video: 
     
    Descarga: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Contiene: 
    -lib
    -Passwoerter
    -locale(pack)
    -root(pack)
    -uiscript(pack)
     
    Creditos: DEMONKING
    Fuente: Pro Area
     
    Saludos! 
  3. Me Gusta
    alezzz reacted to Croqueta in mini-[R]nueva funcion sayf   
    function sayf(...) say(string.format(unpack(arg)))end  ya q muchos an buscado una forma como aser tabuladores pues muestro esta mini funcion.
     
    con esta funcion se puede creer y leer tabulaciónes en las quests.
     
    por ejemplo.
    sayf("Informacion:%15s no save creen quests","Noa") en el juego se ve asi similar 
    informacion:                                                       Noa no save creer Quests _____________
     
    el numero detras de % es el espacio y el "s" es el pattern de la formacion
     
    el pattern %s,%d,%f ... estan aqi escritos
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  4. Me Gusta
    alezzz reacted to ChuchoGamer in serverfiles Daroo Link Resubidos   
    Hola muy buenas tardes hoy les Traigo estos files Daroo 1678  son files virgenes Tambien les dejare un cliente para que puedan usarlo
    el cliente es total mente virgen les pueden implementar lo que quieras ha sus gustos Claro Repito si estos files Ya estan postiado con link resubido Porfavor Borren este post Claros simpre y cuando si el otro Post original los tenga activo los links bueno en fin aqui se los dejo
    Link del Files 

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. La contraseña para Descomprimir los files es germany
    Link Files 2089 (daroo 8.2) .tar y Cliente omega (2011) instalable por @Dilong:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Link del cliente 

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Datos para Encender la maquina virtual  y Navicat 
    root
    daroo
    Para prender los files solo configuren la maquina cuando ya esta listo ponen
    m2 start 
    les pedira que canal quieres encender  les pones 1 y enter y listo
     
     
    Cliente omega Español full esta por partes el cliente

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Espero que os guste 
    Credito para el Creador del los files daroo 8.2 Saludos
  5. Me Gusta
    alezzz reacted to ALEXANDER2020 in FILES 1-105 COMPLETOS   
    9.2 + FreeBsd funciona sin problemas. (40k SF Sourcer ) 
    del cliente y la línea principal mas  Fuente
    Hola el vendedor quiso poner en venta sus FILES pero todo la decisión en compartirlo al publico tiene todo solucionado para poder disfrutar del mismo tiene todo completo ( no tiene errores ) 
    Descarga :Debes iniciar sesión para ver el contenido del enlace en esta publicación. 
    Antivirus :Debes iniciar sesión para ver el contenido del enlace en esta publicación.

    ▪ Sistema de evolución de armas ▪ Sistema de 
    secuencia de jefes 
    ▪ Sistema de lectura rápida de biólogos 
    ▪ Sistemas de apuestas (Correo electrónico - Traducir) 
    ▪ Sistema informático seguro 
    ▪ Sistema de ingreso rápido 
    ▪ Sistema avanzado de mascotas 
    ▪ Clasificación de clanes en el 
    juego ▪ Clasificación de jugadores en el juego 
    ▪ Lectura rápida de BK Sistema 
    ▪ Sistema de lectura de piedra de espíritu rápido 
    ▪ Sistema de comercio remoto ▪ Sistema de 
    carcasa ▪ Sistema de 
    pulido de disfraces ▪ Sistema de 
    mercado fuera de línea 
    ▪ Vidrio de comercio sin problemas 
    ▪ Sistema de bloqueo de objetos 
    ▪ Sistema de bloqueo de habilidades 
    ▪ Sistema NPC de compras remotas 
    ▪ Visión de las criaturas caídas 
    ▪ Sistema automatizado avanzado de eventos
    ▪ Inventario Sistema Avanzado 
    ▪ CH1 y CH2 CH3 sistema de torre de cifrado y CH4 son normales 
    ▪ El líder del clan y el Gremio Sistema General 
    ▪ avanzada Gremio Sistemas de Combate 
    CUENTA GM: Prueba (. Yo podría estar equivocado me olvidó) 
    Contraseña GM: 12345 
    MySQL Contraseña: Luna 
     
     

     

     

     

     

     


     
  6. Me Gusta
    alezzz reacted to [D]ELARO ✓ in FILES 1-105 COMPLETOS   
    tendras el link del post original?
     
  7. Me Gusta
    alezzz reacted to TTV_RANDARON in Files+Cliente+Source+Hypno2   
    Descargar: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  8. Me Gusta
    alezzz reacted to TTV_RANDARON in Files+Cliente+Source+Nova2   
    Descargar: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  9. Me Gusta
    alezzz reacted to TTV_RANDARON in Zentaris2 + SRC ( version editada)   
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  10. Me Gusta
    alezzz reacted to Wolf in [Tutorial+FilesMetin2Rain, Son 100% Virgenes] 27/03/2015 para empezar...   
    Hola,
    Bueno me pidio un usario que hiciera 1 video sobre como crear 1 servidor metin2 y aqui
    esta todo lo necesario con el video nos entendemos.
     
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
     
    Link's de MEGA:
    Datos Principales de todo "GUIA":
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.

    Cliente Omega ESP con windows.dds: Debes iniciar sesión para ver el contenido del enlace en esta publicación.
     
    Cliente Omega Virgen: Debes iniciar sesión para ver el contenido del enlace en esta publicación.

    SF Rain 2007+ Cliente (Nuevo link @Dilong): Debes iniciar sesión para ver el contenido del enlace en esta publicación.

    No-IP(DUC): Debes iniciar sesión para ver el contenido del enlace en esta publicación.

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

    Navicat Premium Full: Debes iniciar sesión para ver el contenido del enlace en esta publicación.

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

    Traduccion Omega para el cliente sin traducir: Debes iniciar sesión para ver el contenido del enlace en esta publicación.

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

    Windows.dds para el Cliente Omega Virgen sin traducir en Español[ESP]: Debes iniciar sesión para ver el contenido del enlace en esta publicación.
     
    VIA HAMACHI: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. VIA HAMACHI Lauling.V3:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. 1 LINK DE MEGA TODO LO NECESARIO.

    Para criticas mejor ni comenteis las ignorare solo lo e posteado para los que no saben,
    que comienzen aprender...
     
    Saludos, Wolf solo hice la guia de YouTube.
     
    Alguna foto

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Fecha del Video: 27/03/2015
  11. Me Gusta
    alezzz reacted to EzekielitohMercury in [SERVERFILES]Metin2Rage VDI!   
    Bueno amigos como vi que mucho no pudieron montar los .tar.gz asi que los monte & los subi espero que les sirva & no olviden dejar El "Me Gusta" & Decir Gracias :33 XD
    DESCARGA
    SERVERFILES

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. CLIENTE
    MEGA: Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    MEDIAFIRE: Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    PARCHE DE TORRE NEMERE CLIENTE

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. CREDITOS
    asusta99
    EzekielitohMercury (Ezekielitoh) por subirlos & montarlos en VDI
    DATOS DE LA MAQUINA
    Usuario:root
    Contraseña:dar enter no poner nada
    COMANDOS PARA ENCENDER EL SERVIDOR
    DATOS DE NAVICAT
    ID: ragemt2 pass: susta CUENTA DEL JUEGO
    ID:ragemt2 CONTRASEÑA:123
  12. Me Gusta
    alezzz reacted to 【ℛ-𝓝】ℛ𝔂𝓼𝒆 in ➫ ➬ ➩ [SERVERFILES] Compilado 2017-2018-2019   
    ◄ ServerFiles ► Premiumlike
     
    ◄ ServerFiles ► Kuratox3
     
    ◄ ServerFiles ► Battle2
     
    ◄ ServerFiles ► BestProduction 1.8
     
    ◄ ServerFiles ► Melosia2
     
    ◄ ServerFiles ► Rubinum2
     
    ◄ ServerFiles ► Taviona2
     
    ◄ ServerFiles ► Maro2 / Oldline / Nalunia
     
    ◄ ServerFiles ► Mukari2 - Multilenguaje
     
    ◄ ServerFiles ► Drakonia2
     
    ◄ ServerFiles ► Elitarius2
     
    ◄ ServerFiles ► DINOS
     
    ◄ ServerFiles ► 40K pagas - Gratis
     
    ◄ ServerFiles ► con WON listas para montar
     
    ◄ ServerFiles ► Rivality2
     
    ◄ ServerFiles ► con 6ta Raza
     
    ◄ ServerFiles ► Oficial TR by Frozen
     
    ◄ ServerFiles ► Abizu2
     
    ◄ ServerFiles ► Sanii V1.2
     
    [REUPLOAD] ◄ ServerFiles ► Nirvana V2
     
    ◄ ServerFiles ► Athraworld
     
    ◄ ServerFiles ► Play PVP Farm
     
    ◄ ServerFiles ► Metin2Family
     
    ◄ ServerFiles ► Terios.pl
     
    ◄ ServerFiles ► Metin2Gravity
     
    ◄ ServerFiles ► Titania2
     
    ◄ ServerFiles ► Limpios by Undyne
     
    ◄ ServerFiles ► Heroes última versión
     
    ◄ ServerFiles ► Avalter.pl
     
    ◄ ServerFiles ► Lucian (ingles)
     
    ◄ ServerFiles ► Ocelot2606
  13. Me Gusta
    alezzz reacted to Dilong in [Viejo]Cliente metin2dream   
    Por si a alguno le gusta las tonterias que contenia dicho cliente, bajarlo solo para quitar lo que tiene, no hagan la tonteria de querer actualizarlo
    Link cliente 2013 (Es el cliente original de entonces por lo que esta encriptado, pero alguien que sepa cambiar keys no le deberia ser problema):
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  14. Me Gusta
    alezzz reacted to Dilong in [Nuevo link]SF Akron2   
    Descripcion:
    Link:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. El cliente no está encriptado, pero si compilan el source del cliente, tendrán que cambiar las Keys para dejarlo sin encriptar
  15. Me Gusta
    alezzz 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
    alezzz reacted to KeKo in Nuevo subforo: Creacion de quests   
    Hola a todos, como os habreis fijado hay un nuevo subforo dentro de la seccion quests.
     
    Este nuevo subforo es una iniciativa de ElRaulxX y mia (KeKo) en el que haremos un curso de creacion de quests para que todos podais aprender sobre el lenguaje lua, que (modificado para metin2) es el que se usa en la quests, y que podais editar, entender y crear quests.
     
    El curso se compondrá de una serie de capítulos en los que raul y yo os iremos desentrañando los interesantes misterios del mundo de las quest de metin2 :acepted:
     
    Dentro de poco publicaremos el primer capítulo del curso, y esperamos que a todos os guste el nuevo subforo y os sea útil.
     
    Un saludo, raul y keko.
  17. Me Gusta
    alezzz reacted to KeKo in Capitulo IV - Profundicemos en las condiciones   
    Buenas zone!
    De nuevo tras otro emocionante capítulo del curso brindado por el gran raul es mi turno de seguir con el curso. El capítulo de hoy tratará sobre las condiciones en las quests, lo que popularmente conoceis todos como usar if en una quest.
     
    Esta vez también nos vamos a centrar en el cuerpo de una quest, y como mi colega raul empezare con la estructura básica de un if. Recordad esto primero:
     
    De nuevo la idea es la misma que con los whens:
     
     
     
    Por lo tanto la estructura es asi:
     

    if [X] then accion end Como veis cada if le corresponde un end y para que nos os de error al cargar tiene que ir un then al final del if, si no os saltara este error:
     

     
    Bien si ya tenemos claro la estructura vamos a profundizar un poco en el uso de las condiciones. Lo primero de todo me gustaría hacer una pequeña distinción entre varios tipos de condiciones:
     
    - Condiciones simples: Son aquellas que solo tienen un unico if (con sus posibles elseifs).
     
    - Condiciones compuestas: Son aquellas que se dan en las quests en las que si superamos la primera condicion se nos pone otra condición. Ojo! Son 2 condiciones diferentes, que llevan dos if y dos ends.
     
    - Condiciones opuestas: Que son las que usan habitualmente un else, o si no un return+end (ya os explicare como funcionan en el capi), y que son aquellas en las que ponemos una condicion y lo que pasara si se cumple lo contrario a esa condicion.
     
    Bueno vamos aver un pequeño ejemplo de una quest que usa una condicion:
     

    quest capicuatro begin state start begin when login with pc.get_map_index() == 41 begin if pc.get_empire() == 1 then say("No estas en el mapa de tu reino") end end end end Hasta aquí todo bien no? Como veis es una quest que se activa si te logeas en el mapa de city1 de jinno, pero te pone la condicion de que si eres del reino 1 (shinsoo) te aparece un mensaje diciendo que no estas en el mapa de tu reino.
     
    Respecto a los ends, como hay un if lleva un end y los otros tres son del when y de la apertura.
     
    Por lo tanto hagamos un resumen: cuando quieres poner una condicion en una quest primero pones el when [X] begin al que queremos ponerle la condicion, luego escribimos la condicion en si, la accion que se realiza una vez cumplida la condicion y el end.
     

    if [X] then accion end  
    Ahora pongamos otro ejemplo con esta misma mision pero ya con algunos elseif:
     

    quest capicuatro begin state start begin when login with pc.get_map_index() == 41 begin if pc.get_empire() == 1 then say("No estas en el mapa de tu reino") elseif pc.get_empire() == 2 then say("No estas en el mapa de tu reino") elseif pc.get_empire() == 3 then say("Estas en el mapa de tu reino!") end end end end Ahora ya tenemos 3 condiciones, pero como os fijais solo 1 lleva if, ya que son continuacion de la primera y por lo tanto solo llevan un end por las tres.
     
    Y también otro ejemplo del uso de un elseif, con un local select que es cuando mas vais a ver un elseif:
     

    quest capicuatro begin state start begin when 70042.use begin say_title("Tienda portatil") say("Con este objeto podras comprar") say("Potas donde quiera que estes.") say_reward("Quieres algunas?") local tienda = select ("Potas rojas" , "Potas azules" , "Superpotas" , "Cerrar") if tienda == 1 then say("Toma 200 potas rojas") pc.give_item2("27003", 200) pc.change_money(-30000) elseif tienda == 2 then say("Toma 200 potas azules") pc.give_item2("27006", 200) pc.change_money(-45000) elseif tienda == 3 then say(" Usted ha sido trolleado") say("no hay superpotas") elseif tienda == 4 then return end end end end  
     
    A estas alturas ya os habreis dado cuenta de como funciona el uso de un elseif:
     

    if [X] then accion elseif [X] then accion elseif [X] then accion end Al igual que cuando usabamos un solo if, ponemos el when [X] begin, luego la condicion if [X] then y esta vez las otras posibilidades que queremos que haya unidas al primer if [X] then (podemos poner las que queramos) con la estructura elseif [X] then. Por último cerramos el if con un end.
     
    Vayamos ahora a un caso de condicion compuesta, por ejemplo un teletransportador para un mapa:
     

    quest capicuatro begin state start begin when 20095.chat."Teleporter" begin if pc.get_level() < 50 then say("Lo siento eres muy bajo") say("vuelve cuando seas mas lvl") return end if pc.count_item("50084") == 0 then say("Valla, no tienes sello") say("Asi que no puedes entrar") return end if pc.get_map_index() == 190 then say("No puedes ir al mapa nuevo") say("Si ya estas en el") return end say("Pues lo siento ahora no quiero") say(" llevarte al mapa nuevo.") end end end Ahora en vez de usar condiciones unidas a la primera (el if [X] then) ponemos diferentes condiciones, cada una de estilo if [X] then y con su respectivo end.
     
    Usando las condiciones compuestas conseguimos que para llegar a la accion propia del when [X] begin haya que ir cumpliendo cada una de las condiciones. Es decir, si cumplimos la primera condicion el juego mirará aver si cumplimos la segunda.
     
    Si no cumplimos la segunda no se ejecutará, y si la cumplimos mirará aver si cumplimos la tercera. Si cumplimos todas las condiciones, la accion principal se ejecutará.
     
    Otra cosa a tener en cuenta es que podemos meter condiciones dentro de otras condiciones, y para eso os pondré un ejemplo en el que mezclaré condiciones simples con condiciones opuestas (hare mas compleja la quest de antes de las potas):
     

    quest capicuatro begin state start begin when 70042.use begin say_title("Tienda portatil") say("Con este objeto podras comprar") say("Potas donde quiera que estes.") say_reward("Quieres algunas?") local tienda = select ("Potas rojas" , "Potas azules" , "Superpotas" , "Cerrar") if tienda == 1 then if pc.gold < 30000 then say("Vaya no tienes suficiente dinero") return end say("Toma 200 potas rojas") pc.give_item2("27003", 200) pc.change_money(-30000) elseif tienda == 2 then if pc.gold < 45000 then say("Vaya no tienes suficiente dinero") return end say("Toma 200 potas azules") pc.give_item2("27006", 200) pc.change_money(-45000) elseif tienda == 3 then say(" Usted ha sido trolleado") say("no hay superpotas") elseif tienda == 4 then return end end end end end Ahora hemos metido una condición dentro de otra: primero metemos la condicion de elegir la opcion 1 (la de potas rojas) y luego dentro de esa hacemos que el juego mire si tenemos 30k para comprar las potas.
     
    Os habreis fijado que ahi usamos una condición opuesta:
     

    if pc.gold < 45000 then say("Vaya no tienes suficiente dinero") return end say("Toma 200 potas azules") pc.give_item2("27006", 200) pc.change_money(-45000) Ponemos la condicion:
     

    if pc.gold < 45000 then Luego lo que pasa si la cumplimos:
     

    say("Vaya no tienes suficiente dinero") Y para cerrar la condicion ponemos:
     

    return end De esta manera, lo siguiente que pongamos se cumplirá EN CUALQUIER CASO EN EL QUE NO CUMPLAMOS LA CONDICION ANTERIOR. Y como veis si tenemos mas de 45k de yang (es decir, no cumplimos la condicion) pues nos da las potas:
     

    say("Toma 200 potas azules") pc.give_item2("27006", 200) pc.change_money(-45000) Para acabar me gustaría hablarlos de la palabra else. Esta palabra se utiliza para hacer una condicion opuesta, ya que implica que si la cumplimos estará pasando cualquier cosa contraria a la de la condicion anterior. Veamos un ejemplillo, y os recalco que UN ELSE NO TIENE QUE LLEVAR SU CORRESPONDIENTE END.
     

    quest capicuatro begin state start begin when 70044.use begin if pc.count_item("70042") == 0 then pc.give_item2("70024", 1) chat("Toma un 5o bonus") pc.remove_item("70024" , 1) else say("Lo siento pero ya tienes") say("el 5o bonus") end end end end En este caso la condicion primera es que no tengamos ningun 5o bonus en el inventario, y si no la cumplimos (es decir, si que tenemos 5o bonus) pues nos dice que ya lo tenemos. Como usamos un else no especificamos una cantidad de bonus que tenemos que tener, si no que en cualquier caso contrario a que no tengamos ninguno nos dirá que sí lo tenemos.
     
    Y bueno eso es todo en el capítulo de hoy, espero que lo hayais disfrutado y que os ayude a la hora de hacer nuevas quests .
×
×
  • Crear nuevo...