Jump to content

ahynoa

Miembro
  • Contador contenido

    14
  • Ingreso

  • Última visita

  • Días ganados

    2

Actividad de reputación

  1. Me Gusta
    ahynoa reacted to Phoenix in [Opinión] Logo AQUA2.   
    Muy buenas a todos, quería saber que opinaban sobre este logo que estoy haciendo. No puedo terminar de resolver el texto y por eso me gustaría que me digan si está correcto para su gusto o debo cambiarlo entero. Hace mucho que no toco PS así que me estoy acomodando con las herramientas que recuerdo. Aquí dejo unas imágenes:

     

     
     
    El texto no me convence mucho pero puede que esté bien, muchas gracias por ver mi post. Acepto críticas siempre y cuando sean constructivas .
  2. Me Gusta
    ahynoa reacted to MesterLum in CURSOS DE PROGRAMACION.   
    Hola, buenas tardes a todos. primero que nada, quiero aclarar que este curso es para todo aquel que tenga interés de aprender a programar, o bien, mínimo que quiera tener conocimientos básicos de programación para incorporación de sistemas, crear sus propias funciones, crear quest (aun que ya haya guías de esto), y, pues bueno, quiero aclarar que esta tendrá un "mini taller", donde pediré practicas, no con el fin de probar que saben, si no que se comprueben a ustedes mismos que saben, mínimo la idea es que lo comprendan, me he dado cuenta que últimamente la gente esta comprando muchos sistemas por "falta de conocimiento", y lo enfatizo así por que esto ya es un negocio, pero bueno. recuerden que aquí solo daré bases para que ustedes puedan hacer sus propias cosas.
     
    El curso lo haré a diario, sinceramente no sé cuantos capítulos tendrá de cada uno... y pues bueno, mañana subiré el primer capitulo de c++, pasado de python, después de lua, y por ultimo de php.
     
     
     
    Tomar en cuenta lo siguiente (No dire de donde sacarlo, eso os corresponde a vosotros mismos):
     
    En caso de c++ tener un entorno de desarrollo (visual studio o dev c++, borland, entre otros).
     
    En caso de python tener la IDE de python, o cualquier interprete donde podamos correr nuestros progrmas.
     
    En caso de lua tener su correspondiente IDE (personalmente pueden probar con metin, eso da igual.).
     
    En caso de php tener WAMP, XAMPP o cualquier motor con apache o tambien con hosting, hay muchas partes donde se puede trabajar para ver los resultados.
     
     
    Insisto, no lo daré orientado especialmente a metin2, pero les aseguro que comprenderan muchas cosas, como por ejemplo, los [TAB] de python porque a muchos les tira problemas al momento de instalar algo.
     
    Bueno, nos vemos, buena suerte.
     
     
    PD:Si alguien quiere cooperar con las guias, adelante.
     
     
     
     
    ++PLUS++ Enseñaré a hacer consultas a base de datos, SQL, MYSQL, MARIA, entre otros, sí es que todo sale bien y se ve interes, así como el manejo de archivos txt, por ejemplo, para darle lectura desde lua para sistemas y crear sistemas como OFLINE mensaje, etc, aunque hay muchisimas ideas. Bueno, hasta luego.
     
  3. Me Gusta
  4. Me Gusta
    ahynoa reacted to Sëths in [Guía] Como hacer querys correctamente en PHP con mysqli   
    [Guía] Como hacer querys correctamente en PHP con mysqli
     
    Hoy os vengo a enseñar como hacer query en php correctamente para sacar información de vuestro servidor de Metin2. (Esta guía la actualizaré dependiendo de las dudas que tengáis y lo que queras hacer). Lo siento por cualquier errata que pueda cometer en mi ortografía pero este es mi primer post en el Foro.
     
    Indice
    Archivo de configuración Numerar filas Mostrar filas Filtros Sumar valores de una columna Archivo de configuración
     
    Lo primero que vamos a hacer, es crear un archivo de configuración donde vamos a tener los datos de acceso a nuestro servidor (config.inc.php). En el, vamos a introducir el siguiente código y editaremos los valores de acceso.
     
    config.inc.php >
     
    <?php $_CONNECTION = array ( 'dbhost' => 'x.x.x.x', //Host del servidor (Ej. 192.168.1.100) 'dbuser' => 'user', //Usuario de la base de datos 'dbpass' => 'pass' //Contraseña de la base de datos ); //Ahora la conexión de a la base de datos: $conect = new mysqli($_CONNECTION['dbhost'],$_CONNECTION['dbuser'],$_CONNECTION['dbpass']); ?>  
    Ahora que ya tenemos nuestro archivo de configuración, vamos a crear una query.
     
     
    Numerar filas
     
    Vamos a crear una query para contar el numero de cuentas creadas en nuestro servidor. Como sabemos, las cuentas están ubicadas en account.account en nuestra base de datos. Para ello, vamos a introducirnos en el archivo php donde queramos que aparezca dicha información. Como ejemplo, en mi caso, vamos a ir a index.php, y vamos a introducir en siguiente código.
     
    index.php >
     
    <?php //incluimos nuestro archivo de configuración (excepto si ya lo hemos incluido) require 'config.inc.php'; //Ahora vamos a crear la query y la vamos a almacenar en una variable. $cuentas = $conect->query("SELECT id FROM account.account") $num = $cuentas->num_rows; //Ahora nuestra variable '$num' contiene el número de cuentas que hay en nuestro servidor echo 'Hay un total de '.$num.' cuentas creadas'; $cuentas->close(); ?>  Esta sería la forma de contar el numero de filas, si por ejemplo queremos contar el número de items que hay en circulación en el juego, seria así: "SELECT id FROM player.item".


    Mostrar filas
     
    Ahora digamos que queremos mostrar todos los nombres de los jugadores en una tabla junto a su nivel. Para ello vamos a ubicarnos en el archivo php donde queramos mostrar dicha tabla.
     
    index.php >
    <?php //incluimos nuestro archivo de configuración (excepto si ya lo hemos incluido) require 'config.inc.php'; //Ahora vamos a crear la query y la vamos a almacenar en una variable. echo '<table>'; $personajes = $conect->query("SELECT name,level FROM player.player"); if($personajes->num_rows){   while($row = $personajes->fetch_array(MYSQLI_ASSOC)){     echo '<tr>';       echo '<td>'.$row["name"].'</th>';       echo '<td>'.$row["level"].'</th>';     echo '</tr>';   } }else{   echo 'No hay ningún valor'; } echo '</table>'; $personajes->close(); ?> Filtros
     
    Ahora que ya sabemos contar y numerar los datos, vamos a aplicar filtros a las querys para hacerlas más interesantes. Por ejemplo vamos a coger la query de mostrar filas y vamos a poner un filtro que diga que los muestre en orden según el nivel. Para ello lo editaremos añadiendo 'ORDER BY level'. Debe quedar algo así.
    $personajes = $conect->query("SELECT name,level FROM player.player ORDER BY level"); Si ejecutamos esta query, nos daremos cuenta que los ordena, pero de menor a mayor. Si queremos que los ordene de mayor a menor, añadiremos 'DESC' al final.
    $personajes = $conect->query("SELECT name,level FROM player.player ORDER BY level DESC"); Si tenemos muchos usuarios puede demorarse mucho la query, entonces digamos que solo queremos que muestre los 10 primeros según el nivel. Para ello añadiremos lo siguiente al final 'LIMIT 10'
    $personajes = $conect->query("SELECT name,level FROM player.player ORDER BY level DESC LIMIT 10"); En la siguiente tesitura nos ocurre que solo queremos mostrar los personajes mayores del nivel 50, dejando los filtros anteriores. Para eso, solo necesitamos añadir lo siguiente 'WHERE level > 50' y nos debería quedar algo así
    $personajes = $conect->query("SELECT name,level FROM player.player WHERE level > 50 ORDER BY level DESC LIMIT 10"); Ahora queremos añadir otro filtro que solo muestre los personajes que no lleven más de 1 semana sin loguearse al juego. Para ello utilizaremos la función de DATE_SUB(). Vamos a añadir el siguiente código a la query 'DATE_SUB(NOW(), INTERVAL 1 WEEK) < last_play' (Podemos modificar el intervalo sustituyendo 'WEEK' por lo que queramos. Ej: SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, YEAR) Nos tiene que quedar de esta forma
    $personajes = $conect->query("SELECT name,level FROM player.player WHERE level > 50 AND DATE_SUB(NOW(), INTERVAL 1 WEEK) < last_play ORDER BY level DESC LIMIT 10"); Sumar valores de una columna
     
    Para poder sumar valores de una columna en concreto, como por ejemplo: Queremos saber el yang en total que hay en nuestro servidor. Para ello, necesitaremos usar la función SUM().
    <?php //incluimos nuestro archivo de configuración (excepto si ya lo hemos incluido) require 'config.inc.php'; //Ahora vamos a crear la query y la vamos a almacenar en una variable. $yang=$conect->query("SELECT SUM(gold) AS gold FROM player.player"); $yang=$yang->fetch_array(MYSQLI_ASSOC); $yang=$yang["gold"]; //Ahora nuestra variable '$yang' contiene el número de yang global que hay en nuestro servidor echo 'Hay un total de '.$yang.' de yang'; ?> Esto nos sirve también para sumar, por ejemplo, el número total de minutos jugados en nuestro servidor.
     
     
    Y este sería el final de la guía. Ya sabéis que este es mi primer post y estoy abierto a sugerencias y dudas que pongáis en los comentarios.
     
    Un saludo y hasta la próxima!
  5. Me Gusta
    ahynoa reacted to Tyrael in Logo de GM normal   
    pereza esto ni se tomo en buscarlo .-.
  6. Me Gusta
    ahynoa got a reaction from Tremoulinas in Una duda sobre los timers   
    usa      
     
    pc.setqf("funcion", get_time()+60*60*24) -- 12Horas
     
     
    if pc.getqf("funcion") <= get_time() then      say("lo que quieras") end   creo que necesitarías algo así   if pc.getqf("wait") <= get_time() then say("Aún no puedes entregar ningún diente.") else say("Felicidades blablabla.") pc.setqf("wait", get_time()+10) --10 segundo mas end    
  7. Me Gusta
    ahynoa got a reaction from iancu dumitrache in peinados tipo cascos   
    acá les dejo estos peinados no esta muy wapos pero a algunos les servira
     
     


    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  8. Me Gusta
    ahynoa reacted to WorldArd in [Release]One Design 2D   
    Pues quizás alguien lo utilice ya sea en parte de loading ,login ,select etc...
     
    Faltaría el texto que ya es a su gusto 
     
    Estaba aburrido y no supe que mas hacer xd 
     
     
     
     
    link :
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. tamaño: 1920x1080
     
    Saludos!
  9. Me Gusta
    ahynoa reacted to Jex in Textura Pet Azry'Dark   
    buenos ps habia hecho esta textura "modificado"para el azry y pss se las vengo a compartir a alguien le servira de seguro
     
     
    textura:

     
    fotos in game:
     

     

     

  10. Me Gusta
    ahynoa reacted to Shogun in Introducción a Speedtree   
    ¿Que es SpeedTree?
     
    SpeedTree es el motor que usa Metin2 para generar los árboles. Se trata de un software especializado para esta tarea que fue creado por la compañía IDV alrededor del año 2000 y con los años se fue popularizando, siendo utilizado hoy en día por títulos de primer nivel como Battlefield.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. podéis encontrar una lista de juegos que incorporan Speedtree a su motor.  

     
    Siendo utilizado generalmente por estudios, tiene un precio fuera del alcance de la mayoría de los mortales, pero a nosotros no nos interesan las flamantes versiones actuales.
     
    ¿Es posible hacer algo así en Metin2 actualizando Speedtree?
     
    Es una tarea verdaderamente compleja. El Speedtree que usa el Metin2 no sólo es muy primitivo -por lo que se ve en el código fuente, es la primera versión, con lo que estaríamos hablando de comienzos de la década pasada-, sino que además no está implementado de una forma demasiado correcta por Ymir. Per no debemos desanimarnos; eso no significa que tengamos que quedarnos con la austera vegetación de Ymir.
     
    SpeedTree CAD
     
    Es posible utilizar modelos de vegetación (.spt) de juegos que utilicen hasta la versión 3 de SpeedTree (lanzada aproximadamente hacia el año 2005) e incluso de la 4 si hacemos un sencillo proceso de conversión -consistente en cargar y guardar el fichero más que nada- en el programa SpeedTree CAD 3. Estas versiones corresponden aproximadamente a los años 2005-2008 por tanto si queremos encontrar nuevos árboles y arbustos debemos buscar juegos de estos años.
     
    Descarga: Speedtree CAD Lite 3 y Full 4 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Con esto se pueden extraer objetos en formato .spt de otros juegos. Las imágenes de hojas y troncos suelen estar en formato dds. Vemos aquí algunos árboles convertidos del juego The Elder Scrolls: Oblivion:
     

     
    El programa en sí es demasiado complejo como para explicar, pero quizás os interese saber que podéis cambiar el tamaño del árbol o arbusto alterando el parámetro Size en Global (Speedtree CAD 3 Lite)
     

     
    Dejo para los curiosos, porque no tuve tiempo para más, explorar otras posibilidades de este programa y de la cuarta versión (que está completa con todas sus funciones)
     
    Si queréis descargar la vegetación del Oblivion, ya lista para usar en Metin2:
     

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

     
    Las características nuevas son:
     
    Rendimiento mejorado
    Idioma inglés
    Granny 2.9
    DirectX 9
    Rotación de la cámara con el botón derecho del ratón
    Posibilidad de cambiar campo de visión (FOV) en el fichero CONFIG
    Límite de 8 texturas por área eliminado
    Filtrado anisotrópico 16x habilitado
     
    Descarga aqui:
     
    World_Editor_Enhanced.zip 4.0 MB Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Si alguien tiene ideas para nuevas funcionalidades que las ponga aquí e intentaré que el autor las añada en una versión futura.
  12. Me Gusta
    ahynoa reacted to LovePlay in [KillGui] New Design + (Hide-Show)   
    Hola, antes que nada queria pedir a todos por si ofendi a alguien.. 
     
    Tambien pedir perdon a Shakelum.., supongo que me deje llevar un poco ..
     
    Espero que me perdonen por estos ultimos momentos mios.
     
     
    Hoy os draigo un KillGui, diseñado por mi, python por DeuS, y mejorado por Felipe Ard.
     
     

     

     
    - Como implementarlo -
     
     
    Vamos a game.py y debajo de :
     
    class GameWindow(ui.ScriptWindow): def __init__(self, stream): ui.ScriptWindow.__init__(self, "GAME") self.SetWindowName("game") net.SetPhaseWindow(net.PHASE_WINDOW_GAME, self) player.SetGameWindow(self) self.quickSlotPageIndex = 0 self.lastPKModeSendedTime = 0 self.pressNumber = None self.guildWarQuestionDialog = None self.interface = None self.targetBoard = None self.console = None self.mapNameShower = None self.affectShower = None self.playerGauge = None self.petInventoryWnd = None self.petButtonWnd = None self.stream=stream self.interface = interfaceModule.Interface() self.interface.MakeInterface() self.interface.ShowDefaultWindows() self.curtain = uiPhaseCurtain.PhaseCurtain() self.curtain.speed = 0.03 self.curtain.Hide() self.targetBoard = uiTarget.TargetBoard() self.targetBoard.SetWhisperEvent(ui.__mem_func__(self.interface.OpenWhisperDialog)) self.targetBoard.Hide() self.console = consoleModule.ConsoleWindow() self.console.BindGameClass(self) self.console.SetConsoleSize(wndMgr.GetScreenWidth(), 200) self.console.Hide() Ponemos esto:
    ##START_KILLGUI KillGuiBg = ui.ImageBox() KillGuiBg.LoadImage("d:/ymir work/ui/v1.dds") self.KillGuiBg = KillGuiBg self.KillGuiBg.SetPosition(-166,465) self.KillGuiBg.Show() self.KillGuiBg_open = ui.Button() self.KillGuiBg_open.SetPosition(+11,570) self.KillGuiBg_open.SetUpVisual('d:/ymir work/ui/abrir_kg.tga') self.KillGuiBg_open.SetOverVisual('d:/ymir work/ui/abrir_raton_kg.tga') self.KillGuiBg_open.SetDownVisual('d:/ymir work/ui/abrir_pulsado_kg.tga') self.KillGuiBg_open.SetEvent(self.__OpenKillGui) self.KillGuiBg_open.Show() self.KillGuiBg_close = ui.Button() self.KillGuiBg_close.SetPosition(+178,570) self.KillGuiBg_close.SetUpVisual('d:/ymir work/ui/cerrar_kg.tga') self.KillGuiBg_close.SetOverVisual('d:/ymir work/ui/cerrar_raton_kg.tga') self.KillGuiBg_close.SetDownVisual('d:/ymir work/ui/cerrar_pulsado_kg.tga') self.KillGuiBg_close.SetEvent(self.__CloseKillGui) self.KillGuiBg_close.Hide() self.KillBlauReich = ui.TextLine() self.KillBlauReich.SetDefaultFontName() self.KillBlauReich.SetPosition(40,535) self.KillBlauReich.SetText("Jinno: ") self.KillBlauReich.SetFontColor(253,250,5) self.KillBlauReich.SetOutline() #self.KillBlauReich.SetEvent(self.__KillBlauReich) self.KillBlauReich.Hide() self.KillGelbReich = ui.TextLine() self.KillGelbReich.SetDefaultFontName() self.KillGelbReich.SetPosition(40, 565) self.KillGelbReich.SetText("Chunjo: ") self.KillGelbReich.SetFontColor(17,5,253) self.KillGelbReich.SetOutline() #self.KillGelbReich.SetEvent(self.__KillGelbReich) self.KillGelbReich.Hide() self.KillRotReich = ui.TextLine() self.KillRotReich.SetDefaultFontName() self.KillRotReich.SetPosition(40, 595) self.KillRotReich.SetText("Shinsoo: ") self.KillRotReich.SetFontColor(50,0,0) self.KillRotReich.SetOutline() #self.KillRotReich.SetEvent(self.__KillRotReich) self.KillRotReich.Hide() self.KillMob = ui.TextLine() self.KillMob.SetDefaultFontName() self.KillMob.SetPosition(40, 625) self.KillMob.SetText("Mounstruos: ") self.KillMob.SetOutline() #self.KillMob.SetEvent(self.__KillMob) self.KillMob.Hide() Debajo de :
    app.HideCursor() Ponemos: 
    self.KillGuiBg.Hide() self.KillBlauReich.Hide() self.KillGelbReich.Hide() self.KillRotReich.Hide() self.KillMob.Hide() self.KillGuiBg_close.Hide() Debajo de:
    self.interface.BUILD_OnUpdate() Ponemos :
    def __hidekillgui(self): self.KillGuiBg.Hide() self.KillBlauReich.Hide() self.KillGelbReich.Hide() self.KillRotReich.Hide() self.KillMob.Hide() def __showkillgui(self): self.KillGuiBg.Show() self.KillBlauReich.Show() self.KillGelbReich.Show() self.KillRotReich.Show() self.KillMob.Show() def __KillBlauReich(self, KillBlauReich): self.KillBlauReich.SetText("Jinno: " + KillBlauReich) def __KillGelbReich(self, KillGelbReich): self.KillGelbReich.SetText("Chunjo: " + KillGelbReich) def __KillRotReich(self, KillRotReich): self.KillRotReich.SetText("Shinsoo: " + KillRotReich) def __KillMob(self, KillMob): self.KillMob.SetText("Monster: " + KillMob) def __OpenKillGui(self): self.KillGuiBg_open.Hide() self.KillBlauReich.Show() self.KillGelbReich.Show() self.KillRotReich.Show() self.KillMob.Show() self.KillGuiBg.SetPosition(+1,465) self.KillGuiBg_close.Show() def __CloseKillGui(self): self.KillGuiBg_close.Hide() self.KillBlauReich.Hide() self.KillGelbReich.Hide() self.KillRotReich.Hide() self.KillMob.Hide() self.KillGuiBg.SetPosition(-166,465) self.KillGuiBg_open.Show() Debajo de:
    # ITEM_MALL "CloseMall" : self.CommandCloseMall, "ShowMeMallPassword" : self.AskMallPassword, "item_mall" : self.__ItemMall_Open, # END_OF_ITEM_MALL Ponemos:
    ##KILLGUI "ShowKillGui" : self.__showkillgui, "HideKillGui" : self.__hidekillgui, "KillBlauReich" : self.__KillBlauReich, "KillGelbReich" : self.__KillGelbReich, "KillRotReich" : self.__KillRotReich, "KillMob" : self.__KillMob, ##END_KILLGUI Y aqui os dejo los .tga, si quereis tambien os dejo el psd, me lo pediis y os lo adjunto.
     
    Se coloca en ETC/ ymir work / ui/
     

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

    (Tambien la hizo DeuS)
    quest killgui begin state start begin when kill begin if npc.is_pc() then local new_point = pc.getqf("empire"..npc.get_empire())+1 pc.setqf("empire"..npc.get_empire(), new_point) cmdchat("KillRotReich "..pc.getqf("empire1")) cmdchat("KillGelbReich "..pc.getqf("empire2")) cmdchat("KillBlauReich "..pc.getqf("empire3")) else local new_point = pc.getqf("mob")+1 pc.setqf("mob", new_point) cmdchat("KillMob "..pc.getqf("mob")) end end when login begin cmdchat("KillRotReich "..pc.getqf("empire1")) cmdchat("KillGelbReich "..pc.getqf("empire2")) cmdchat("KillBlauReich "..pc.getqf("empire3")) cmdchat("KillMob "..pc.getqf("mob")) end end end Y vuelvo a pedir perdona a todos
  13. Me Gusta
    ahynoa reacted to Serex in Game r40424 & db 40146 + Recopilacion Diffs   
    Hola chicos, pues lo vi por epvp, y es algo que se merece postear, por aqui os dejo la ultima version del game de metin2.
     
    Game r40424 & db 40146 -> 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Aprovecho también el tema, por aquí os iré dejando todos los diffs que vayan saliendo para este game.
     
    Recopilación de Diffs:
  14. Me Gusta
    ahynoa reacted to blackhorse in Set de 5 escudos   
    Gente, les comparto 5 escudos para implementar de mi autoria, este es mi primer aporte, espero que les gusten
     

     
     
    En el link van a poder bajar todo lo necesario para una correcta implementación
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Saludos
     
    Black
  15. Me Gusta
    ahynoa reacted to F30 in programitas para tu server mt2   
    hola
     
    pues nada aqui algunos programitas y archivos para los que son nuevos en esto
    ire suviendo poco  a poco cosas para los que no saven hacerlas
     
    bueno
    aqui os dejo :
    1-navicate (serial para activarlo :  NAVN-ZI4B-IW4S-A77N)
    el navicate supongo qu todos lo saven para qu es..

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. 2-descompilador-compilador item_proto y mob_proto
    esto te descompila el item_proto y mob_proto por si quieres traducirlo o implementar mas cosas

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. 3-portmap
    abre los puertos para que los demas usuarios de  hamachi puedan entrar a tu servidor

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. 4-descompilador-compilador archivos .eix y .epk
    este es el descompilador de los archivos .eix y .epk de la carpeta pak pero esto no hace los .xml asi que sera mas facil de implementar

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. 5-hamachi
    esto creo que todos  lo saven lo que es...

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. 6-item_proto converter
    esto lo que hace es " cuando descompilas el itemrpoto del cliente con el descompilador de ariba te crea un archivo (item_proto_descompilado.xml)
    con ese archivo y este programa creas el archivo item_proto.sql que son las queris de armas,armaduras,items...etc para el server

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. 7-hex workshop
    este es para cambiarle el pong al game o .bin
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    8-extensiones.bat 
    (para cambiar extensiones .epk y .eix a las que quieran)

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. 9-sacar pong sin buscar
    este programa te busca solo el pong del .bin de tu cliente (abres el metin despues abres este programa y buscas el metin2 o como se llame tu launcher y le das acceptar y te pone el pong)

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. 10-image.exe
    (es para ver las imagenes .dds .tga y mas)

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. 11-filezilla
    esto creo que todos lo saven....

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. 12-interfaz by yori (en formato .eix y .epk)
    esto tambien lo saven...

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. 13-queri para cambiar contraseña de las cuentas de navicate
    esto es por si no te saves la contraseña de la cuenta de admin o cualquier otra cuenta de tu server...abres la tabla acount apretas ctrl+q  y pegas eso y editas lo que pone que ai que editar y le das run (con eso ya cambiaria la contraseña de tu cuenta)

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. 14-comandos para accelerar el navicate y filezilla
    a muchos le anda lento filezilla o navicate,pues esto lo que hace es que ande mucho mas rapido(no tendran que esperar 20 o 30 segundos para que le cargue las tablas de navicate)

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. 15-queri mob (una queri de mob para los que no saven crear)
    es una queri de un moob tu solo editas lo que pone que ai que editar y listo

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. 16-game 2089 (pong 1234abcd5678efgh )
    un game lvl 99 (maximo 250 cambiando de los config de cada chanel) max stats 125

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. 17- sistema de logros (etc/root/uiscript en formato .eix .epk-- del cliente omega )
    con estos archivos tendras el sistema de logros en el cliente (solo faltaria meter la quest y ya

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    18-locale_es (en español para cliente omega) "algunos fallos en item_proto"coger lo que necesiteis pa traducirlo
    (el fallo es en algunas armas que no aparece el daño de ataque y esas cosas..)

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
     
    al pedido de
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  pues las funcciones de cada programita 
    creditos: ya no me acuerdo exactamante cada cosa de quien era
    si alguien save pls dejar comentario y pongo creditos
     
     
    todo lo que yo aporte lo are en este tema
     
     
    si necesitais ayuda en algo avisarme por skype : tudoran29
     
    agradecer no cuesta nada
  16. Me Gusta
    ahynoa reacted to rarrav26 in Script slider de imágenes   
    Hola

    Les traigo un script que va a darle mucho estilo a su web, espero que sea de su agrado. ¿Qué es lo que hace éste script? El título lo describe, es un slider de imágenes.

    Imagen de muestra del slider versión Dark
     
     
    Imagen de muestra del slider versión Default (donde se ve blanco en realidad es transparente)
     
    - La imagen cambia cada 3 segundos automáticamente.
    - Si el usuario ubica el cursor sobre la imagen ésta no se cambiará a menos que el usuario haga clic en una de las flechas o quite el cursor.
    - Los efectos de transición de la imagen están configurados en random aunque pueden ser fijos (son muy buenos los efectos).
    ¿Cómo instalo el script slider de imágenes?
     
    Primero descargamos los archivos adjuntos, descomprimimos, abrimos la carpeta Archivos slider, y esas 3 carpetas y 3 archivos que encontrarán dentro, las arrastran dentro de su web (donde esté su index.php o el archivo que llevará el slider).

    Sólo falta configurar el index.php o el archivo que tendrá el slider.

    Abrimos el index.php y pegan éste código en la primer línea del documento (es importante que el código esté fuera de cualquier otro código como <?PHP o <html>)
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"> Ahora pegamos éste otro código dentro de la sección <head> o <header>
    <link rel="stylesheet" href="default/default.css" type="text/css" media="screen" /><link rel="stylesheet" href="dark/dark.css" type="text/css" media="screen" /><link rel="stylesheet" href="nivo-slider.css" type="text/css" media="screen" /> Y ahora pegamos éste otro código dentro de la sección <body>
    <div class="slider-wrapper theme-default"><div id="slider" class="nivoSlider"><img src="slider/1.jpg" data-thumb="slider/1.jpg" alt="" title="<center>Titulo 1er imagen</center>" /><img src="slider/2.jpg" data-thumb="slider/2.jpg" alt="" title="<center>Titulo 2da imagen</center>" /><img src="slider/3.jpg" data-thumb="slider/3.jpg" alt="" title="<center>Titulo 3er imagen</center>" /><img src="slider/4.jpg" data-thumb="slider/4.jpg" alt="" title="<center>Titulo 4ta imagen</center>" /></div></div><script type="text/javascript" src="jquery-1.9.0.min.js"></script><script type="text/javascript" src="jquery.nivo.slider.js"></script><script type="text/javascript">$(window).load(function() {$('#slider').nivoSlider();});</script> Ya cumplidos estos pasos tendrán el slider Default corriendo en el inicio de su web.
    Si quieren que en vez de correr la versión slider Default, corra la versión slider Dark, cambian la línea
    <div class="slider-wrapper theme-default"> por
    <div class="slider-wrapper theme-dark"> Si quieren agregar o quitar imágenes, editar o quitar el título de las mismas, entonces éstas son las líneas que tienen que cambiar
    <img src="slider/1.jpg" data-thumb="slider/1.jpg" alt="" title="<center>Titulo 1er imagen</center>" /><img src="slider/2.jpg" data-thumb="slider/2.jpg" alt="" title="<center>Titulo 2da imagen</center>" /><img src="slider/3.jpg" data-thumb="slider/3.jpg" alt="" title="<center>Titulo 3er imagen</center>" /><img src="slider/4.jpg" data-thumb="slider/4.jpg" alt="" title="<center>Titulo 4ta imagen</center>" /> Si quieren cambiar el tamaño del slider deben abrir el archivo default.css (si usan la versión Default) o dark.css (si usan la versión Dark), editar
    .theme-dark.slider-wrapper { background: #222; padding: 10px; width: 550px; /* esta linea */} y ponerle la anchura que más les guste (no se preocupen por la imagen ya que automáticamente se ajusta al slider).
     
    IMPORTANTE: si les quedó alguna duda porque no lo expliqué bien, respondan a este post o agreguenme a Skype.

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  17. Me Gusta
    ahynoa got a reaction from xReeDx DBL in Reset level y mysql   
    Bueno chicos, acá les traigo una pequeña misión para hacer reset level a los pj, es muy fácil de configurar por ahora solo le pose 3 reset   Primero necesitamos meter esta dif al game, la dif es BlackYuko esta posteada en inforge con esta activamos la función set_level()  
      Luego en el archivo quest_functions de nuestro server agregamos la función set_level (esto para que no nos salte error al compilar la quest)     Acá la quest   --** --** Funsion reset level  --** www.Mt2mysterio.com --**    quest reseteo begin state start begin when 9003.chat."Reset Level" with pc.level >= 140 begin local ret = 3 -- Aca configuran la cantidad de reset local actuales = pc.getqf("reset") if pc.get_level() < 140 then say_title(""..mob_name(9003).."")  say("Detente! No Has alcansado el level")  say("necesario para realizar tu reset.")  say("Ademas tienes que traerme:")  say("")  say_reward("Debes ser almenos lv 140 y portar")  say_item("Perla Sangre",27994,"")  return elseif pc.count_item(27994) < 2 then  say("") say_title(""..mob_name(9003).."")  say("No traes los items necesarios")  say("recurda que yo tambien tengo que comer.") say("")  say_reward("Debes ser almenos lv 140 y portar")  say_item("Perla Sangre",27994,"")  return elseif pc.getqf("reset") >= ret then say_title(""..mob_name(9003).."")  say("Ya has alcanzado el numero maximo")  say("de reset para tu personaje.")  say("")  return elseif pc.get_level() >= 140 then say_title(""..mob_name(9003).."")  say("Oh! Ya estas grandesito, veo que")  say("quieres realizar tu reset.")  say("")  say("¿Estas seguro de querer hacerlo?")  local r = select("Si", "No") if r == 1 then pc.set_lev(1) pc.remove_item(27994,2) pc.setqf("reset", pc.getqf("reset") +1) local mt2 = pc.get_name(kill) local b5 = mysql_query("UPDATE player.player SET prestige = prestige + 1 WHERE name='"..mt2.."'") -- Cuenta en la Tabla player agregando el campo prestige notice_all(""..pc.get_name().." ha ascendido de prestigio") if pc.getqf("reset") == 1 then -- Reset 1 affect.add_collect(apply.MAX_HP, 5000, 60*60*24*365) elseif pc.getqf("reset") == 2 then -- Reset 2 affect.add_collect(apply.ATTBONUS_HUMAN, 50, 60*60*24*365) elseif pc.getqf("reset") == 3 then -- Reset 3 affect.add_collect(apply.ATTBONUS_WARRIOR, 50, 60*60*24*365) affect.add_collect(apply.ATTBONUS_ASSASSIN, 50, 60*60*24*365) affect.add_collect(apply.ATTBONUS_SURA, 50, 60*60*24*365) affect.add_collect(apply.ATTBONUS_SHAMAN, 50, 60*60*24*365) end end end end end end   Tambien tienen que agregar a en la tabla player el campo prestige (con esto podran poner que el ranking ponga en primer lugar los que tengan mas reset)   PD: un moderador que me haga el favor de acomodar el post que me da muchos error al intentar postear
  18. Me Gusta
    ahynoa reacted to jhumany in Nueva barra de interfaz   
    Bueno pues aquí os lo dejo, el circulo blanco es para la imagen de la cara del pj y los negros para la exp espero que os guste.
     

  19. Me Gusta
    ahynoa reacted to SeMa™ in Nuevas Web's.   
    Hola, hoy vengo a traeros unas cuantas web's de nuestro amigo HaveGone, que se despide del mundo de metin.
     
    Aqui unas fotos.
     

     
     

     
     
     

     
     
    Todos los códigos están en HTML!!!!
     
    Descarga:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. VirusTotal:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
     
    Créditos:
     
    Luis Bizarro
    Joel Almeida
     
     
     

    [21:07:55] ℓυιѕ "HaveGone" вιzαяяσ - Team eVo: Debes iniciar sesión para ver el contenido del enlace en esta publicación. SeMa va postar en Metin2Zone [21:08:35] ѕeмa™: quieres que lo ponga? [21:08:40] ℓυιѕ "HaveGone" вιzαяяσ - Team eVo: Si
  20. Me Gusta
    ahynoa reacted to SeMa™ in Nuevo Login   
    Buenas a todos hoy vengo a traeros un login que he realizado gracias a HaveGone, un gran diseñador.
     
    Aqui una preview.
     
     

     
    Y aqui os dejo los archivos y os explico como editarlo.
     
    Una vez descargados los adjuntos...
     
    Vamos a root, abrimos constinfo.py, y agregamos lo siguiente:
     

    abierto = 0  
    ahora, vamos a intrologin.py
     
    y buscamos:
     

    self.sema.SetPosition(300, 160) Aqui cada uno lo pondrá en la pantalla cambiando esas coordenadas.
     
    luego
     

    self.sema.AddFlag("movable") Esto sirve para que podais mover el login por toda la pantalla arrastrandolo, si no lo quereis, simplemente borrais esa linea.
     
    y luego lo mas importante.
     
     
    buscamos:
     

    def __ch1(self): y dentro veremos lo siguiente:
     

    self.stream.SetConnectInfo("192.168.2.90", 13001, "192.168.2.90", 11002) 1 net.SetServerInfo("Nombre - Ch 1") 2 net.SetMarkServer("192.168.2.90", 13001) 3 self.serverInfo.SetText("Nombre - Ch 1") 4 app.SetGuildMarkPath("10.tga") 5 app.SetGuildSymbolPath("10") 6 Aqui lo editamos
     
     
    1- Ponemos nuestra ip , puerto de channel, la ip de nuevo y puerto de login
     
    2- Ponemos el nombre del ch
     
    3- Ponemos nuestra ip y el puerto de channel
     
    4- Ponemos el nombre del servidor ( esto es para que se vea debajo del minimapa )
     
    5- No lo tocamos
     
    6- No lo tocamos.
     
    Y bueno , esto es todo si teneis algun tipo de error me comentais.
     
    Gracias a HaveGone por las imágenes.
     
    Link Mega:
     
    Nuevo Link: Con un pequeño bug fix...
     
    Login.rar (98 KB)

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    tambien lo podeis bajar aqui:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  21. Me Gusta
    ahynoa reacted to Zaymax in [BSD] Permisos Simbolicos   
    Los permisos simbolicos, son conocidos como expresiones simbolicas, utilizan caracteres en lugar de valores, para poner permisos a ficheros o directorios. Las expresiones simbolicas utilizan la sintaxis de (quien) (accion) (permisos) con los siguientes valores:
     
    Opcion Letra Representa
     
    (quien) u Usuario
    (quien) g Grupo propietario
    (quien) o Otro
    (quien) a Todos («todo el mundo») (accion) + Añadir permisos
    (accion) - Quitar permisos
    (accion) = Activar permisos (permisos) r Lectura
    (permisos) w Escritura
    (permisos) x Ejecucion
    (permisos) t Bit Sticky
    (permisos) s Activar UID o GID
     
    Estos valores se aplican con (chmod). Por ejemplo, puedes usar la siguiente orden para bloquear a otros usuarios el acceso a x fichero:
     

    % chmod go= fichero Puedes usar una lista separada por comas cuando quieras aplicar mas de un conjunto de cambios a un fichero. Por ejemplo la siguiente orden eliminara los permisos de escritura de grupo:
     

    % chmod go-w,a+x file Tras este pequeño aprendizaje, sabremos que permisos podemos hacer.
  22. Me Gusta
    ahynoa reacted to SeMa™ in [Master Set] Armas By Plechito.   
    Buenas a todos , tras sacar todo de la web de plechito , os vengo a traer un set de armas.
     
     

     
     
    master_set.rar (2.0 MB)

    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.  
    Un saludo, SeMa
  23. Me Gusta
    ahynoa got a reaction from Ruby in peinados tipo cascos   
    acá les dejo estos peinados no esta muy wapos pero a algunos les servira
     
     


    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  24. Me Gusta
    ahynoa got a reaction from Metin2Arceus in peinados tipo cascos   
    acá les dejo estos peinados no esta muy wapos pero a algunos les servira
     
     


    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  25. Me Gusta
    ahynoa reacted to ElRaulxX in [Minicurso] MySQL en quest   
    He visto que muchos preguntáis como utilizar querys de sql en quest. Le dije a keko que haría este mini tutorial, y aquí lo tenéis.

    Primero de todo decir que esta función no viene por defecto en el metin y es por eso que algunos usuarios la han hecho ellos mismos, pues la utilidad de esta función es muy grande.
    Tengo contado tres personas que han publicado esta función: Hanashi, mijago y yuko. Quizá han sido publicadas más, pero solamente recuerdo estas.
    A mi parecer, la más practica que he visto hasta ahora es la última versión de mijago y es la que utilizaremos en este Minicurso.


    Primero de todo, debemos declarar estas dos funciones en nuestro questlib.lua



    ATENCION! Si en nuestro servidor tenemos instalado la versión 5.5 de MySQL debemos borrar esto:
    os.execute('mysql '..pre..' --e='..string.format('%q',query)..' > '..fi) -- für MySQL51 y quitar las -- de aquí:
    --os.execute('mysql '..pre..' -e'..string.format('%q',query)..' > '..fi) -- für MySQL55 La razón es simple, la sintaxis de esta versión de MySQL es distinta.

    Ahora tenemos que añadir en quest_functions la función:
    mysql_query La función split no hace falta añadirla en este archivo ya que se utiliza internamente en mysql_query.

    Bien, ahora ya tenemos instalada la función de mysql.
    Ahora lo más importante: ¿cómo se usa?

    Tenemos esta tabla:

    Como vemos, la tabla se llama 'tablatest' y se encuentra en la db 'test'. Esta tabla posee tres campos, que son 'campo1', 'campo2' y 'campo3'.
    Con la función mysql_query llamaremos, añadiremos o modificaremos valores de esta tabla. La sintaxis de mysql_query es la misma que cualquier otra query de mysql que utilicemos (de navicat, php...). Sino sabéis la sintaxis os aconsejo que miréis cursos para aprender. La sintaxis es muy sencilla y no tiene complicación, solo se necesita mirar un poco y lo dominaréis perfectamente. Existen miles de cursos y tutoriales por internet de mysql, tan solo debéis buscarlos.

    ATENCION: Para utilizar sentencias que retornen algún tipo de valor (select) debemos asignar la función a una variable. Las demás (update, insert into...) tan solo tenemos que utilizarla como cualquier otra función.

    Bien, empecemos. Comenzaremos llamando toda la tabla.
    local read = mysql_query("SELECT * FROM test.tablatest") Esto almacenará en la variable la siguiente tabla:
    local read = {[campo1] = {"texto1","texto2","texto3"},[campo2] = {"texto4","texto5","texto6"},[campo3] = {"texto7","texto8","texto9"}} Teniendo esto en cuenta, y sabiendo un poco de tablas y arrays en lua está todo solucionado.
    Queremos mostrar en pantalla 'texto5' que está almacenado en nuestra tabla. Lo llamaremos de esta manera.
    local read = mysql_query("SELECT * FROM test.tablatest")say(read.campo2[2])--esto muestra texto5 Ahora queremos llamar 'texto9':
    local read = mysql_query("SELECT * FROM test.tablatest")say(read.campo3[3])--esto muestra texto9 Ahora queremos llamar 'texto1':
    local read = mysql_query("SELECT * FROM test.tablatest")say(read.campo1[1])--esto muestra texto1 Aquí no voy a ponerme a explicar arrays porqué no trata de eso el curso, pero creo que mirando los ejemplos y pensando un poco lo entenderéis.

    Ahora también podemos añadir una condición:
    local read = mysql_query("SELECT * FROM test.tablatest WHERE campo2 = 'texto5'") Esto almacenará en la variable la siguiente tabla:
    local read = {[campo2] = {"texto4","texto5","texto6"}} Y ahora podemos llamarlo de la misma manera que en el ejemplo anterior.
    Esto nos mostrará 'texto6' en pantalla.
    local read = mysql_query("SELECT * FROM test.tablatest WHERE campo2 = 'texto5'")say(read.campo2[3])--esto muestra texto6 Y para hacerla verdaderamente útil podemos llamar a variables o funciones.
    local var = "texto5"local read = mysql_query("SELECT * FROM test.tablatest WHERE campo2 = '"..var.."'")say(read.campo2[3])--esto muestra texto6 Algo importante que hay que decir es que esta función siempre crea tablas y por lo tanto siempre deberemos llamarlo de la misma manera, aunque haya seleccionado un solo valor.
    local read = mysql_query("SELECT campo1 FROM test.tablatest WHERE campo1 = 'texto1'")say(read.campo1[1])--esto muestra texto1 Creo que con estos ejemplos ya podéis ver como funciona un select (la verdad es que es bastante difícil explicarlo teniendo en cuenta que no tenéis conocimientos de tablas, pero al menos lo he intentado xd). La mejor manera que veáis su uso es que vayáis haciendo pruebas en navicat y luego trasladarlo a una quest.

    Y ahora la segunda parte.
    Si queremos añadir nuevos valores lo hacemos de esta manera:
    mysql_query("INSERT INTO test.tablatest VALUES ('texto10','texto11','texto12')") o como hemos hecho antes:
    local v1 = "texto10"local v2 = "texto11"local v3 = "texto12"mysql_query("INSERT INTO test.tablatest VALUES ('"..v1.."','"..v2.."','"..v3.."')") Y nos quedará la tabla así:


    Y si queremos modificar valores:
    mysql_query("UPDATE test.tablatest SET campo1='prueba' WHERE campo1='texto10'") local x = "prueba"local y = "texto10"mysql_query("UPDATE test.tablatest SET campo1='"..x.."' WHERE campo1='"..y.."'") Y nos quedaría esto:


    Sabiendo de mysql no debería ser ninguna complicación, el problema es que no sepáis
    Cuando publiquemos el capítulo de arrays y tablas lo entenderéis todo mejor, no os preocupéis.

    Y creo que eso es todo. Saludos!
×
×
  • Crear nuevo...