Jump to content

Innocent

Miembro
  • Contador contenido

    9
  • Ingreso

  • Última visita

Actividad de reputación

  1. Me Gusta
    Innocent got a reaction from yankee360 in [Aporte]Files eternia2, Pandora   
    Moví los root del cliente igualmente... No sé si hice bien o mal en eso. Antes de hacerlo se crasheaba el cliente al seleccionar ch.

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  2. Me Gusta
    Innocent got a reaction from Lovely in [Aporte]Files eternia2, Pandora   
    Moví los root del cliente igualmente... No sé si hice bien o mal en eso. Antes de hacerlo se crasheaba el cliente al seleccionar ch.

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  3. Me Gusta
    Innocent got a reaction from [email protected] in [Aporte]Files eternia2, Pandora   
    Moví los root del cliente igualmente... No sé si hice bien o mal en eso. Antes de hacerlo se crasheaba el cliente al seleccionar ch.

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  4. Me Gusta
    Innocent got a reaction from ChuchoGamer in [Aporte]Files eternia2, Pandora   
    Moví los root del cliente igualmente... No sé si hice bien o mal en eso. Antes de hacerlo se crasheaba el cliente al seleccionar ch.

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  5. Me Gusta
    Innocent got a reaction from guba in [Aporte]Files eternia2, Pandora   
    Moví los root del cliente igualmente... No sé si hice bien o mal en eso. Antes de hacerlo se crasheaba el cliente al seleccionar ch.

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  6. Me Gusta
    Innocent reacted to Akil in [TIP]Reparar tablas corruptas   
    No me funciona,
     
    tengo este error, cuando le doy a desing table 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    me pasa en cualquier tabla
  7. Gracias
    Innocent reacted to EzekielitohMercury in [GUIA]Cambiar contraseña MySQL desde FreeBSD   
    Buenas, se que hay una guia ya pero algunos no la entienden... les traigo esta un poco mas acomodada y explicada
     
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
     
    Paso Nº1: loguearnos en nuestro FreeBSD.
     
    Paso Nº2: una vez logueados en nuestro FreeBSD escribimos el siguiente comando...
    /usr/local/etc/rc.d/mysql-server stop Con este comando lo que hemos hecho fue detener nuestra MySQL.
     
    Paso Nº3: Lo que haremos ahora será poner el siguiente comando...
    mysqld_safe --skip-grant-tables & Ahora lo que hemos hecho fue corromper las tablas, pero para poder cambiar la contraseña tendremos que acceder como usuario MySQL.
     
    Paso Nº4: Para acceder como usuario MySQL tendremos que ingresar el siguiente comando...
    mysql -u root Con ese comando lo que hemos hecho fue ingresar como usuario MySQL & notaran que ahora dice mysql# .
     
    Paso Nº5: Ahora ingresaremos el siguiente comando...
    use mysql Con este comando ya estaremos usando la MySQL en nuestro FreeBSD.
     
    Paso Nº6: Ingresaremos el siguiente comando para cambiar nuestra contraseña del usario "root" de MySQL...
    update user set password=PASSWORD("nuevapass") where user='root'; Recuerden ingresar la clave que quieren poner en su MySQL donde dice "nuevapass", con ese comando ya actualizaremos la contraseña MySQL.
     
    Paso Nº7: Ahora ingresaremos el siguiente comando...
    flush privileges; Con ese comando ya tendriamos cambiada nuestra contraseña de MySQL.
     
    Paso Nº8: Ahora ingresaremos el siguiente comando para salir del MySQL...
    quit Con ese comando ya saldriamos del MySQL y volveriamos a ser el usuario de FreeBSD.
     
    Paso Nº9: Ahora iniciaremos la MySQL con el siguiente comando...
    /usr/local/etc/rc.d/mysql-server start Con ese comando ya tendriamos nuevamente iniciada la MySQL.
     
    Paso Nº10: Reiniciaremos la MySQL para que los cambios hagan efecto, para ello ingresamos el siguiente comando...
    /usr/local/etc/rc.d/mysql-server restart Con ese comando ya tendriamos actualizada la MySQL con la nueva contraseña.
     
    Paso Nº11: El ultimo paso seria hacer un reboot del servidor para ya tener la clave cambiada sin errores, para ello ingresamos el siguiente comando...
    reboot Luego nos logueamos y iniciamos el servidor y eso seria todo, ya tendrian su contraseña de la MySQL cambiada...
     
    Espero les haya servido la guia No olvides dejar tu "Me gusta" como agradecimiento .
  8. Me Gusta
    Innocent reacted to SeMa™ in Nuevo creador de autopatch Oficial.   
    Buenos dias a todos, hace un rato que estaba haciendo 1 autopatch como el oficial y pues cogí el mismo e hice un sistema como el de epvp pero el autopach lo he rebajado de peso mucho y consegui hacerlo funcionar con un pequeño gui creado en vbasic.
    El peso final del autopach quedó en 6 mb, y en el de epvp quedaba en 12 o 16mb.
     
    Aqui una imagen 
     

     
    Bueno, aqui os dejo la descarga.
     
    Autopatcher Creator.rar (3.5 MB) Debes iniciar sesión para ver el contenido del enlace en esta publicación.!8sxVBYYB!emAmfFrDrRuHNdC_eIdolUu31oUD-lVAkLyS4mza1d4   Parte del Servidor para el que no lo tenga :   serverside.rar (531 KB) Debes iniciar sesión para ver el contenido del enlace en esta publicación.!M94UFCTT!Jfx_7gj7fZ7m-X-WoO-EfV0aH_Y7jCEMgN7Xm_2n4bs     Debes iniciar sesión para ver el contenido del enlace en esta publicación.    
    PD: al darle a editar autopatch te abre los archivos esenciales para editarlo, lenguaje, posiciones de las imagenes, botones, etc...
     
    Un saludo
  9. Me Gusta
    Innocent reacted to autodesk_metin2 in Launcher V1   
    Hola Zoneros,
     
    Quería darles un launcher que hice asi por aburrimiento y para no perder la costumbre, cogí las imágenes de un juego mmorpg. 
    No es mucha cosa pero bueno algo es algo.
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    IMAGEN
     
     
     
  10. Me Gusta
    Innocent reacted to IonutPopescu in Metin2CMS v2.12   
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Author: Ionuț ( me )
    Size: 3.67 MB
    Version: v2.12
    Type: Open-Source

    Features: Modern design with elements in bootstrap (v4 alpha 3), admin panel (currently in beta), member panel (currently basic systems), update system, registration, general settings in the admin panel, offline system (if the server is offline, notifications will be displayed, also the last copy of the top site), database of news is sqlite, settings files are in json.
    Language: English & Romanian
    Preview:
      Download:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Documentation:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Install:
    Just edit config.php with your datas.
    CMS is not completely. It will be updated.
    I expect criticism / opinions / advice constructive. To report an error:
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Sorry, I speak only english
  11. Me Gusta
    Innocent reacted to Nolberto in Armas del Dragón Dorado   
    Fotitos :3



    El link de descarga: Debes iniciar sesión para ver el contenido del enlace en esta publicación.

    Créditos: EPVP
  12. Gracias
    Innocent reacted to Break in Solución para -->CArea::LoadObject Property() Load ERROR   
    Buenas zoneros, pues tenia un error en el cliente en concreto era este: 
    Leyendo por otros foros etc, empece a probar cosas y me di cuenta que el error viene del property como era lógico.
    Pero en concreto es que cuando se implemento el mapa en el cliente, su property se introdujo pero, no en la carpeta property si no en otra carpeta por lo cual el cliente no lo abre  ''Load ERROR''.
    Entonces la solución de este problema es, ir al locale atlasinfo e ir quitando los últimos mapas y detectar cual es el mapa que tira error.
    Cuando lo detectéis lo único que tenéis que hacer es buscar el mapa por google, meter la carpeta del property del mapa, en la carpeta correcta que es en property.eix / epk y error solucionado. Cualquier duda comentar o escribirme.
    ¡Saludos y espero que sea de ayuda!
  13. Me Gusta
    Innocent reacted to EzekielitohMercury in [MAPA]Valle de la paz   
    DESCARGA

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    CREDITOS
    PhantomAssasin
  14. Me Gusta
    Innocent reacted to TuMAMAmEToca in [MAP] Crystal Dungeon   
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  15. Me Gusta
    Innocent 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.
  16. Gracias
    Innocent reacted to NazoX in [Implementación de mapas] Pantalla en Negro BUG   
    Buenas eso es porque no lee bien las rutas de las texturas, prueba de añadir el mapa en outdoora1 
    y la textura en el sitio correspondiente,
    en index pones luego
    outdoora1/
    crystal_dungeon o como se llame el mapa.
  17. Me Gusta
    Innocent reacted to 【ℛ-𝓝】ℛ𝔂𝓼𝒆 in [DUNGEON] Crystal dungeon   
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  18. Me Gusta
    Innocent got a reaction from underfall underfall in [Aporte]Files eternia2, Pandora   
    Moví los root del cliente igualmente... No sé si hice bien o mal en eso. Antes de hacerlo se crasheaba el cliente al seleccionar ch.

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  19. Me Gusta
    Innocent reacted to Break in [Instalador automático] -> Metin2 ¡RELEASE!   
    Hola comunidad,
    He tenido algo de tiempo libre y he empezado a desarrollar un script que realiza la instalación automática de un servidor de Metin2.
     
    Es algo básico, ya que la instalación de un servidor de Metin2 es muy sencilla, pero si te realiza la instalación un script, pues mejor que mejor. A continuación les dejare un vídeo realizando una instalación con el script.
    VIDEO UTILIZANDO EL SCRIPT [YA TERMINADO]
    En el vídeo se instala la base de eternia2.
     
    ¿Como utilizar el script?
    Descargarse el script y ejecutarlo.
    Ejecutamos el siguiente comando:
    fetch http://break.pid2k.es/instalador.sh && sh instalador.sh (He dejado que se obtenga el código por fetch, porque así si actualizo el código, todo el mundo cuando lo vaya a utilizar tendrá las nuevas actualizaciones)
    Si queréis descargaros el script por el navegador y las librerías que se han usado:

    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. Una vez ya descargado y ejecutado el script seleccionemos la opción deseada.
     
     
    El script controla lo siguiente:
    -> En caso de equivocarse al escribir mal el nombre de los files o de la db, antes de descomprimirlo, comprueba si se encuentra en el directorio raíz. Si no se encuentra, solicita de nuevo introducir el nombre del archivo. (En caso de que no se haya terminado de subir, esperar a que este subido por completo, si no entrareis en un bucle hasta que encuentre el archivo)
     
    -> Si el sistema operativo cuenta con una arquitectura de 64 bits, el script lo reconocerá, y preguntara la versión del sistema operativo para poder así descargarse las librerías de 32 bits del repositorio de freebsd, en caso que el script detecte que es una arquitectura de 32 bits, no preguntara el sistema operativo debido a que no es necesario descargarse las librerías.
     
    -> El script da la opción de subir un archivo ".zip" con las librerías, he de destacar que, si nuestro sistema es de 64 bits, las librerías del metin2 tienen que ir en /usr/lib32/ por lo cual, nuestro archivo .zip a la hora de descomprimirse tiene que hacerlo en esa ruta. Para ello descomprimirlo en vuestro pc, y fijarse si se crea una carpeta llamada usr, dentro otra llamada lib32 y dentro de lib32 que estén las librerías. En caso de que estemos en arquitectura 32 bits, la ruta tendría que ser /usr/lib/. 
     
    -> Si nos equivocamos  al escribir el  nombre .zip de las librerías, el script no se detendrá, simplemente se saltará el paso.
     
    -> Solo da privilegios a los directorios /usr/game y a /var/db/mysql/, en caso de que nuestros files se encuentren en otro directorio hay introducir el comando.
     
    PD: El script no controla las librerías que os hace falta a vuestros files especificos para hacerlos correr, el script mete unas librerías standar.
    Tenéis que añadir las librerías que os falten a sus respectivas rutas.
     
    Comentar que os parece, ya se que la mayoría de aquí sabe preparar la maquina para su servidor de Metin2.  (Solo es un detalle para las personas perezosas, o personas que no saben preparar una maquina) 
     
     
    POR ULTIMO
     
    Si cuento con mucho apoyo sobre este aporte, lo próximo que desarrollaré sera un script que realice copias automáticas a una determinada hora de una maquina a otra, así podemos tener guardadas nuestras copias de seguridad en un vps externo y que elimine cada ''x'' tiempo numero de copias, y solicitar que nos muestre el numero de copias. Con esto siempre tendríamos copias de seguridad de nuestro servidor en todo momento, sin tener que hacer nada.
     
    UPDATE VERSION 2
    Mucha gente le gusta instalar los files Arrival2, he creado el script que instala automaticamente la base de Arrival2 con su mysql, y crea usuarios de mysql.
    No hace falta subir ni los files ni la db, solamente ejecutar el script para ello:
    fetch http://break.pid2k.es/instalador_v2.sh && sh instalador_v2.sh  
    Seleccionamos la opción 3 e instala los files con la db, automáticamente. (También instala las librerías)
     
    Un saludo!
  20. Me Gusta
    Innocent reacted to Shogun in Como preparar FreeBSD para Metin2   
    Dado que el turorial de Serex no funciona en las versiones recientes del S.O., he decidido hacer uno nuevo. Los comandos que tenéis que escribir, están en rojo; el resto son notas. Este tutorial asume que se trata de un FreeBSD recién instalado. Es posible que no funcione correctamente en FreeBSD que ya hayan tenido un uso.
     
    En primer lugar actualizamos el S.O. para que tenga los parches de seguridad más recientes (esto no es estrictamente necesario, pero es buena idea, al igual que debéis mantener vuestro Windows actualizado)
    freebsd-update fetch install    ( ya no creo que nadie usa eso )
    (si aparece una lista de ficheros simplemente pulsad ' y después $, o bien la tecla Avanzar Página hasta que lleguemos al final y ponga "Installing updates")
    Descargaremos los ports (colección de software de FreeBSD):
    portsnap fetch extract
    Ahora instalamos MySQL y Python:
    pkg install mysql56-server
    pkg install python
    Si os pregunta algo le decis que si (y)
    Una vez haya terminado, si nuestro SO es de 64 bits, vamos a instalar las librerías de 32, en este ejemplo se trata de FreeBSD 9.3, simplemente editad el link cambiando ese número por vuestra versión si es diferente:
    cd /tmp fetch Debes iniciar sesión para ver el contenido del enlace en esta publicación. tar jxpvf lib32.txz -C   (si os aparece una serie de errores "cannot unlink..." al hacer esto no os preocupéis, significa que ya están instaladas)   Ahora, para poder usar files antiguos si lo deseamos, instalaremos el paquete de compatibilidad con FreeBSD 7:   cd /usr/ports/misc/compat7x make install clean   ( Actualizado ) Finalmente configuramos mysql para que se inicie con el arranque:   echo mysql_enable="YES" >> /etc/rc.conf   Ahora vamos a iniciar MySQL:   service mysql-server start   Y luego el cliente para comprobar que está funcionando:   mysql   Debería aparecer el prompt mysql>, podemos poner quit para volver al shell de FreeBSD.   Ahora ya podéis subir vuestros files y bases de datos, eso si, recordad hacer esto después de copiar la bd a /var/db/mysql:   mysql_upgrade   (actualiza las bases de datos procedentes de versiones antiguas de MySQL, a la actual)   y   chown -R mysql /var/db/mysql   (damos los permisos correctos)   Si tenéis alguna duda escribidla port aquí y contestare cuando pueda.   Nota: Si alguien le tira errores de libs al encender el server pueden ver esta guia    
  21. Me Gusta
    Innocent reacted to autodesk_metin2 in [APORTE] +8500 Iconos variados!!   
    Tenía esto y no le estoy dando uso, a si que, doy este aporte para los que lo necesiten.

    Deben de saber que un icono para metin es 32x32, si van a coger iconos deben de reducirlo y darle canal alpha a los bordes.

    Saludos!!
     
     
     
     

     
     

     
     
     
     
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
     
     
    Contraseña:
     
     
    www.betefilase.jimdo.com
  22. Me Gusta
    Innocent reacted to JosanG in [APORTE] Iconos para todos   
    Buenas, he visto que tenía este archivo por aquí la verdad no recuerdo ni de dónde lo saque, pero no está como lo descargué, tiene algunas cosillas añadidas y demás. Están todos en PNG.
     
    Son todos los iconos de las cosas implementadas en metin2. Sé que hay una database en liquiron, posteada por Serex, pero bueno, así ya los tienes descargados para entrenar tu mente cuando no tengas internet. Son 1510 iconos.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Saludos!
     
    EDIT: Link de mediafire, subido por BigWolf 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  23. Me Gusta
    Innocent reacted to KeKo in [Guia Definitiva] Implementar Armaduras   
    Buenas zoneros y zoneras sé que esto es mucho textos para algunos pero si teneis dudas implementando armors os recomiendo que hagais un esfuerzo y la leais entera, y si copias esta guia a otros foros por favor respetad los créditos.
     
    Después de un tiempo el foro off se me ocurrio hacer una guía útil como regalo de perdón por el tiempo que estuvo el foro indispuesto y como sé que mucha gente tiene problemas a la hora de implementar armaduras y las guías actuales no explican todo lo relativo a la implementacion de armaduras en un único post pues me voi a poner a explicaros como implementar armaduras sin morir en el intento:
     
    1 - Antes de nada: Qué es una armadura de metin2?
     
    Creo que la respuesta es muy obvia: una armadura es eso que se pone por encima del cuerpo el pj. Hasta aquí bien, pero a lo que me refiero es a que archivos forman una armadura?
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    A la hora de implementar un armor nos vamos a encontrar con dos tipos de archivos:
     
    1.1 - Los archivos gr2:
     
    Un modelo de una armadura será siempre un archivo gr2, que es el que contiene la armadura en sí
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    1.2 - Las texturas:
     
    Cada armadura tiene su propia textura, que es el archivo que permite que veamos los colores de la armadura tal y como tienen que ser. Las texturas que se utilizan en los clientes de metin2 suelen ser de estos tres formatos: .jpg .tga o .dds
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
     
    2 - Vale, ya sé que archivos necesito. Qué hago con ellos?
     
    Las armaduras se implementan por defecto en la ruta d:/ymir work/pc, que corresponde en el cliente al pc.eix y pc.epk, si son de:
     
    + Guerrero hombre
    + Sura hombre
    + Ninja mujer
    + Chamán mujer
     
    Las armaduras se implementan por defecto en la ruta d:/ymir work/pc2, que corresponde en el cliente al pc.eix y pc.epk, si son de:
     
    + Guerrera mujer
    + Sura mujer
    + Ninja hombre
    + Chamán hombre
     
    Segun la raza hay cuatro carpetas estandar:
     
    + Warrior - guerrero
    + Assasssin - ninja
    + Sura - sura
    + Shaman - chamán
     
    Por lo tanto deberemos meter nuestro modelo gr2 en la carpeta pc/pc - warrior/sura/assasin/shaman dependiendo de la raza y el sexo para el que sea.
     
    Sin embargo, las texturas de las armors que implementamos pueden no ir en la misma ruta que el modelo en sí. Para ello debemos abrir el gr2 con el granny model viewer
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Una vez hecho pincharemos donde pone texture inspection y ahi nos fijaremos en la ruta que pone donde dice texture:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    En esta imagen que os acabo de poner, al ser un armor de guerrero masculino la textura va en la carpeta d:/ymir work/pc/warrior.
     
    Sin embargo, esa ruta no es siempre la misma, ya que la gente a veces pone otras rutas:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Como veis la ruta está cambiada Pero no os preocupeis esto tiene muy fácil solucion, debemos crear en la carpeta de nuestro descompilador una carpeta con ese nombre del siguiente modo:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Una vez hecha metemos dentro la textura del armor problematica quedando la ruta en nuestro ordena de este modo:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
     
     
     
    Y cuando hagais el xml del armor tendreis que poner esa ruta:
     

    <File archivedPath="d:/ymir work/textures/minoarmorset/nombretextu.dds" type="0"><![CDATA[nombreepk_descompilado\ymir work\textures\minoarmorset\nombretextu.dds]]></File> Haciendo xmls:
     
    Doi por sentado en esta guía que ya sabeis hacer los xmls para un armor:
     

    <File archivedPath="d:/ymir work/pc/warrior/warrior_4-1.gr2" type="0"><![CDATA[PC_descompilado\ymir work\pc\warrior\warrior_4-1.gr2]]></File> Pero, si no sabeis, un xml se compone de dos partes:
     

    File archivedPath="d:/ymir work/pc/warrior/warrior_4-1.gr2" Esta es la ruta en la que el juego meterá el modelo o la textura (o cualquier otro archivo) que estemos implementando. Si ahi pone d:/ymir work/pc/warrior esa será la ruta a la que vaya el archivo llamado warrior_4-1.gr2.
     

    [CDATA[PC_descompilado\ymir work\pc\warrior\warrior_4-1.gr2]] Esta segunda parte contiene la ruta en nuestro ordenador en la que se encuentra el modelo. Lo más habitual es que la pongamos de estas maneras, dependiendo de la raza y sexo del armor:
     

    nombreepk_descompilado\ymir work\pc nombreepk_descompilado\ymir work\pc2 nombreepk_descompilado\ymir work\pc\warrior nombreepk_descompilado\ymir work\pc2\warrior Sin embargo, tanto la primera parte como la segunda pueden editarse:
     

    File archivedPath="d:/ymir work/item/kekomola/armorkeko.gr2
    [CDATA[Desktop\guia_armors\armorkeko.gr2 Como veis, la ruta en la que yo quiero meter el armor puede no ser pc o pc2 (algunas armors van en otras) y no tengo xq tener el archivo dentro de la carpeta del descompilador en una carpeta con el nombre ymir work y luego otra con el nombre pc y tal.
     
    Sin embargo, os recomiendo que lo hagais de esta manera, pa evitaros lios de: Dónde estaba el armor?
     

    [CDATA[PC_descompilado\ymir work\pc\warrior\warrior_4-1.gr2]] Y además si usais una ruta que no sea ymir work/pc o pc2 como en este caso:
     

    File archivedPath="d:/ymir work/item/kekomola/armorkeko.gr2 Luego tendreis que añadir la linea de abajo en el msm del armor, aunque eso lo explicare cuando lleguemos a los msms:
     

    SpecialPath Una vez hayais metido vuestros modelos y texturas en sus rutas correspondientes y hayas compilado los epks necesarios podemos pasar al siguiente paso:
     
    3 - La gente habla mucho de los ms... um... msalgo.... como eran?
     
    Bueno, una vez tenemos nuestra armor ya implementada llega la hora de hacerle su msm correspondiente, así que descompilemos el root.epk y busquemos estos archivos:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Hay dos para cada raza, diferenciando aquellos que llevan:
     

    _m.msm -- Para hombre _w.msm -- Para mujer Bien, como sabeis hay un armor para cada raza y sexo así que tendremos que hacerle un msm para cada uno. Para ellos abrimos cada uno de los msms y buscamos esto:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Y ahi ponemos un número alto, como 99 o más, que será el máximo de armaduras que vamos poder meter en este msm.
     
    Una vez hecho vamos a añadir nuestra armor al msm, para ello vamos hasta el final del archivo y miramos que numero tiene el ultimo armor antes de que ponga:
     

    Group AttachingData Al lado de:
     

    Group ShapeData
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Para añadir nuestra nueva armor podemos copiar una ya anterior, como por ejemplo:
     

    Group ShapeData33 { SpecialPath "d:/ymir Work/pc/warrior/" ShapeIndex 42 Model "warriorm1002.gr2" } Y como os dije antes que miraramos el número que tenia en el ShapeData, a nuestra nueva armor le pondremos un número mas alto que ese y que no se repita a lo largo del msm:
     

    Group ShapeData34 { SpecialPath "d:/ymir Work/pc/warrior/" ShapeIndex 42 Model "warriorm1002.gr2" } Así por ejemplo serviria
     
    Una vez ya tenemos nuestras lineas, con el shapedata cambiado vamos a editarlas de la siguiente manera:
     

    Group ShapeData34 { SpecialPath "d:/ymir Work/pc/warrior/" -- esto solo se pone si la ruta no es esa, asi que podeis quitarlo si quereis ShapeIndex 43 Model "armorkeko.gr2" } Bien, vayamos paso a paso:
     

    ShapeIndex 43 *El ShapeIndex es el tan famoso numero que siempre da tantos problemas implementando armors. Pues bien, lo que hay que poner es un número que sea menor que el número que os he dicho antes que pongais:
     
    Y que no se puede repetir en ningun ShapeIndex que haya en el msm. La funcion de este numerito es enlazar el msm con el item_proto del cliente, de modo que el cliente sepa que armor estás metiendo.
     
    Y como se relacionan os estareis preguntando? Pues el numero que habeis puesto en el ShapeIndex será el que pondreis en el item_proto del cliente donde dice valu3 = numero.
     
    *Model, aqui tendreis que poner el nombre del gr2 de la armadura (con el .gr2 incluido).
     
    Y en estos momentos algun espabilado se estará preguntando: vaya pero yo suelo ver msm que tenen algo que pone SourceSkin y TargetSkin
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Bien, esa es buen ejemplo para explicaros: como explique mas arriba en esta guia cada armor tiene sus texturas, que vemos dentro del modelo y esas son las que usara el juego si simplemente ponemos el msm asi:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Sin embargo, hay muchísimos casos de armaduras a las que queremos ponerles texturas que no son las que vemos en el gr2, si no que son texturas modificadas como en el caso de las negras o empes de colores. En esos casos tenemos a nuestra disposicion estos dos elementos:
     
    * El SourceSkin siempre es la textura original del armor, es decir la que vemos en el gr2.
    * El TargetSkin siempre es la textura modificada, la que añadimos nosotros en vez de la que usaria el armor si solo leyera el gr2.
     
    Por lo tanto si tengo mi textura negra_verde.dds y quiero que las negras usen esa textura, tendre que buscar el msm de las negras:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Y deberemos añadirle el Source y Target, para ello miraremos cual es la textura de las negras (warrior_4-1.dds) y se la pondremos en el SourceSkin y luego la nuestra en el TargetSkin.
     
    Por supuesto deberemos cambiar el shapeindex porque ahora es un armor nueva, pero dejaremos el mismo model porque solo hemos cambiado la textura:
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Y claro, este proceso lo repetimos con los 8 msms, por cada raza y sexo. Una vez hecho ya podemos hacerle el item_proto del cliente a nuestra armor.
     
    4 - Buf, ya hice los msm, queda mucho?
     
    4.1: Item_proto del cliente
     
    Tranquilos que ya casi se acaba. Como os he comentado antes hablando del shapeindex:
     
    Por lo tanto, si nuestra armor NO tiene item_proto del cliente NO se verá así que vamos a ver donde ponemos el shapeindex:
     

    <Item vnum="11690" name="È渶°©+0" gb2312name="Arm. Placas Mágica +0" type="2" subtype="0" weight="0" size="2" antiflag="44" flag="1" wearflag="1" immuneflag="0" gold="120000" buy_price="120000" limittype0="1" limitvalue0="66" limittype1="0" limitvalue1="0" applytype0="8" applyvalue0="4294967281" applytype1="37" applyvalue1="2" applytype2="0" applyvalue2="0" value0="0" value1="90" value2="0" value3="12" value4="0" value5="0" socket0="0" socket1="0" socket2="0" socket3="0" socket4="0" socket5="0" refine_vnum="11691" refine_set="181" magic_pct="15" specular="0" socket_pct="3" /> <Item vnum="11691" name="È渶°©+1" gb2312name="Arm. Placas Mágica +1" type="2" subtype="0" weight="0" size="2" antiflag="44" flag="1" wearflag="1" immuneflag="0" gold="120000" buy_price="130000" limittype0="1" limitvalue0="66" limittype1="0" limitvalue1="0" applytype0="8" applyvalue0="4294967282" applytype1="37" applyvalue1="3" applytype2="0" applyvalue2="0" value0="0" value1="90" value2="0" value3="12" value4="0" value5="3" socket0="0" socket1="0" socket2="0" socket3="0" socket4="0" socket5="0" refine_vnum="11692" refine_set="182" magic_pct="15" specular="0" socket_pct="3" /> <Item vnum="11692" name="È渶°©+2" gb2312name="Arm. Placas Mágica +2" type="2" subtype="0" weight="0" size="2" antiflag="44" flag="1" wearflag="1" immuneflag="0" gold="120000" buy_price="145000" limittype0="1" limitvalue0="66" limittype1="0" limitvalue1="0" applytype0="8" applyvalue0="4294967283" applytype1="37" applyvalue1="4" applytype2="0" applyvalue2="0" value0="0" value1="90" value2="0" value3="12" value4="0" value5="6" socket0="0" socket1="0" socket2="0" socket3="0" socket4="0" socket5="0" refine_vnum="11693" refine_set="183" magic_pct="15" specular="0" socket_pct="3" /> <Item vnum="11693" name="È渶°©+3" gb2312name="Arm. Placas Mágica +3" type="2" subtype="0" weight="0" size="2" antiflag="44" flag="1" wearflag="1" immuneflag="0" gold="120000" buy_price="165000" limittype0="1" limitvalue0="67" limittype1="0" limitvalue1="0" applytype0="8" applyvalue0="4294967284" applytype1="37" applyvalue1="5" applytype2="0" applyvalue2="0" value0="0" value1="90" value2="0" value3="12" value4="0" value5="9" socket0="0" socket1="0" socket2="0" socket3="0" socket4="0" socket5="0" refine_vnum="11694" refine_set="184" magic_pct="15" specular="0" socket_pct="3" /> <Item vnum="11694" name="È渶°©+4" gb2312name="Arm. Placas Mágica +4" type="2" subtype="0" weight="0" size="2" antiflag="300" flag="1" wearflag="1" immuneflag="0" gold="120000" buy_price="190000" limittype0="1" limitvalue0="67" limittype1="0" limitvalue1="0" applytype0="8" applyvalue0="4294967285" applytype1="37" applyvalue1="6" applytype2="0" applyvalue2="0" value0="0" value1="90" value2="0" value3="12" value4="0" value5="12" socket0="0" socket1="0" socket2="0" socket3="0" socket4="0" socket5="0" refine_vnum="11695" refine_set="185" magic_pct="15" specular="30" socket_pct="3" /> <Item vnum="11695" name="È渶°©+5" gb2312name="Arm. Placas Mágica +5" type="2" subtype="0" weight="0" size="2" antiflag="300" flag="1" wearflag="1" immuneflag="0" gold="120000" buy_price="220000" limittype0="1" limitvalue0="68" limittype1="0" limitvalue1="0" applytype0="8" applyvalue0="4294967286" applytype1="37" applyvalue1="7" applytype2="0" applyvalue2="0" value0="0" value1="90" value2="0" value3="12" value4="0" value5="15" socket0="0" socket1="0" socket2="0" socket3="0" socket4="0" socket5="0" refine_vnum="11696" refine_set="186" magic_pct="15" specular="40" socket_pct="3" /> <Item vnum="11696" name="È渶°©+6" gb2312name="Arm. Placas Mágica +6" type="2" subtype="0" weight="0" size="2" antiflag="300" flag="1" wearflag="1" immuneflag="0" gold="120000" buy_price="265000" limittype0="1" limitvalue0="68" limittype1="0" limitvalue1="0" applytype0="8" applyvalue0="4294967287" applytype1="37" applyvalue1="9" applytype2="0" applyvalue2="0" value0="0" value1="90" value2="0" value3="12" value4="0" value5="18" socket0="0" socket1="0" socket2="0" socket3="0" socket4="0" socket5="0" refine_vnum="11697" refine_set="187" magic_pct="15" specular="50" socket_pct="3" /> <Item vnum="11697" name="È渶°©+7" gb2312name="Arm. Placas Mágica +7" type="2" subtype="0" weight="0" size="2" antiflag="300" flag="1" wearflag="1" immuneflag="0" gold="120000" buy_price="325000" limittype0="1" limitvalue0="69" limittype1="0" limitvalue1="0" applytype0="8" applyvalue0="4294967288" applytype1="37" applyvalue1="12" applytype2="0" applyvalue2="0" value0="0" value1="90" value2="0" value3="12" value4="0" value5="21" socket0="0" socket1="0" socket2="0" socket3="0" socket4="0" socket5="0" refine_vnum="11698" refine_set="188" magic_pct="15" specular="65" socket_pct="3" /> <Item vnum="11698" name="È渶°©+8" gb2312name="Arm. Placas Mágica +8" type="2" subtype="0" weight="0" size="2" antiflag="300" flag="1" wearflag="1" immuneflag="0" gold="120000" buy_price="405000" limittype0="1" limitvalue0="69" limittype1="0" limitvalue1="0" applytype0="8" applyvalue0="4294967289" applytype1="37" applyvalue1="15" applytype2="0" applyvalue2="0" value0="0" value1="90" value2="0" value3="12" value4="0" value5="24" socket0="0" socket1="0" socket2="0" socket3="0" socket4="0" socket5="0" refine_vnum="11699" refine_set="189" magic_pct="15" specular="80" socket_pct="3" /> <Item vnum="11699" name="È渶°©+9" gb2312name="Arm. Placas Mágica +9" type="2" subtype="0" weight="0" size="2" antiflag="300" flag="1" wearflag="1" immuneflag="0" gold="120000" buy_price="515000" limittype0="1" limitvalue0="70" limittype1="0" limitvalue1="0" applytype0="8" applyvalue0="4294967290" applytype1="37" applyvalue1="20" applytype2="0" applyvalue2="0" value0="0" value1="90" value2="0" value3="12" value4="0" value5="27" socket0="0" socket1="0" socket2="0" socket3="0" socket4="0" socket5="0" refine_vnum="12030" refine_set="530" magic_pct="15" specular="100" socket_pct="3" /> El item_proto de nuestra armor suele tener de +0 a +9 (aunque no tiene por que ser así), y en el queria remarcar los siguientes datos:
     

    Item vnum="11690" Ahi pondremos la id que vamos a ponerle al item.
     

    gb2312name="Arm. Placas Mágica +0" Ahi se pone el nombre que el armor tendrá en el juego.
     

    value3="12" Y ahi esta el famoso value3!! Le pondremos en cada una de las ids del armor (es decir de +0 a +9) el numero que pusimos en el shapeindex.
     
    Y ya estaría esta parte, por supuesto cada uno deberá hacer el item_proto con los valores que veas convenientes, para eso hay bastantes herramientas como creadores de querys e item_proto que os ayudaran a hacerlo.
     
    4.2: Icono del armor:
     
    Como a la gente le suele gustar que las armors tenga su iconito os diré como meterlo (partiendo de que ya teneis uno hecho, hay guias para hacerlos si no lo teneis):
     
    4.2.1: El icono:
     
    Descompilamos nuestro icon.epk, metemos el icono en icon/item y luego lo añadimos al xml y compilamos. Por supuesto para los que haceis esto en epks aparte recordad que la linea del xml debe llevar icon/item/idicono.tga en la primera parte del xml (lo que explique antes)
     
    4.2.2: Item_list:
     
    Descompilamos nuestro locale y vamos al archivo item_list. De ahi cojemos las lineas de +0 a +9 de otra armor cualquier y las editamos de la siguiente manera:
     

    idarmor ARMOR icon/item/idicono.tga Ojo! Las separaciones entre el texto deben ser con la tecla de tabulador (esa que esta encima del bloq mayusculas xd)
     
    4.3: La query del armor
     
    Una vez hecho todo esto, simplemente nos quedará hacer una query para nuestra armor con la misma id que le pusimos en el item_proto del cliente, para ello teneis muchos programas que os ayudarán a hacerla con los valores que prefirais
     
    Recordad que en la query el value3 da igual, por si alguno lo duda xd
     
    Y bueno, eso es todo por hoy espero que os sea útil esta guía
  24. Me Gusta
    Innocent got a reaction from serloard in [Aporte]Files eternia2, Pandora   
    Moví los root del cliente igualmente... No sé si hice bien o mal en eso. Antes de hacerlo se crasheaba el cliente al seleccionar ch.

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  25. Me Gusta
    Innocent reacted to NazoX in [C++/PY/SCRIPT/CLIENTE MUCHOS FIXS]   
    Bueno pues como dice el título aquí pondré muchos fix que he ido viendo, probando y visto, y encontrado, no cabe decir que siempre haz copia de tus archivos antes de realizar ningún paso de a continuación.

     
    8-Añadido también aquí el fix del herrero que no destruía items.
    buscas bool CHARACTER::DoRefine(LPITEM item, bool bMoneyOnly en Char_item.cpp del servidor y remplazamos la función por esta:
    9-Buff en party
    Se que hay muchos tutoriales de como añadir buff en un grupo con los chamanes, pero siempre hay algún bug, de que no funciona, o con el tiempo deja de funcionar, etc. Este funciona ya que lo tengo implementado, si estás en grupo, solo puedes dar auras a los miembros del grupo, esto quiere decir, que si viene alguien que no este en el grupo. no podrás darles auras (aunque hará el efecto), si dejas el grupo, todo volverá a la normalidad, podrás darles auras a todo los jugadores.
    #Funciona Implementado : 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
     
    12.Las bolas Polimorfas no funcionan  -  Gracias  Debes iniciar sesión para ver el contenido del enlace en esta publicación. + Fix que algunos no hacen daño, ya que debería darnos un bonus extra de ataque o solo funciona para alguna raza.
    1-Para el fix vamos a nuestro source game y editamos el archivo char.cpp y buscamos:
    Ahora remplazamos toda la función  hasta if (IsPC()) por la siguiente:
    2.Ahora para que funcione el drop de las bolas_polimorfas y funcione al dar click, hacemos lo siguiente:
    1.1-Vamos a nuestro navicat / mob_proto.txt  y buscamos la columna : polymorph_item
    En esta columna, a veces vienen completa, o vacía, bueno, aquí pondremos el id de la bola que va a dropear, puede ser :  
    2.1-Ahora elegimos la que vamos a querer,  que tire el mob.
    NOTA: Con eso hacemos que se asigne ese mob a ese id, lo que significa que cuando el mob tire esa bola se transformará en ese mob que lo dropea.
    Nota2: Podemos ir poniendo el id que queramos de esos en todos los mobs, o usar el mismo id en todos.
    3.Una vez echo eso, vamos a nuestro Winscp/FTP hasta encontrar el archivo:
    Como sabéis aquí va el drop de los mobs, ahora,  si habéis puesto el mismo id en polymorph_item le ponéis ese id a todos los mobs, si habéis puesto otro distinto a cada mob,
    buscáis el grupo de cada mob y le ponéis el id correspondiente.
    #Funciona implementado:

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. 13.Fix bug de que aveces usa .txt o usa sql, <-también sirve para dejar tus files por sql o por txt.
    1.Primer paso, vamos a nuestro src db y editamos el archivo -> ClientManagerBoot.cpp:
    buscamos la siguiente línea:
    Bien, esa es la función que hace que usemos .txt o sql. Si queremos que sel servidor sea por sql, los comentamos así:
    Bien, si queremos que sea por .txt puede pasar 2 cosas, que tengas un #ifdef, por ejemplo #ifdef NOT_ENABLE_TXT que lo que hace es que ejecute sql siempre.
    entonces la solución es bloquear todo los #ifdef #else y #endif que tenga el #idfed NOT_ENABLE_TXT o tu función.
    O el segundo caso que lo tengas ya comentado con /* y */ entonces los quitamos para que se active la función.
    2.Ahora buscamos un poco más abajo las funciones : bool CClientManager::MirrorItemTableIntoDB y bool CClientManager::MirrorMobTableIntoDB()
    Bien, una vez localizadas las funciones, si queremos que sea mediante .sql las comentamos con // o /* y */ .
    Si queremos que sea por .txt, si tienen // o /* y */ lo quitamos, y si usamos un #ifdef algo, normalmente tienen:
    pues quitamos el ifdef, else y endif y su función o la comentamos, (ahora dejaré un ejemplo.) y a compilar!
    Este sería un ejemplo, para los files MartySama v4 que se que hay mucha gente que lo usa. está función, es la original, leyendo sql o con el bug mencionado anteriormente. (solo pondré las funciones si no se hará muy largo:
    Y esta la función corregida y que utilize .txt:
    #Funciona instalado, testado.
    14.Fix título de todas las offlines shops, cuando hay tiendas al entrar al juego, o x cosa, nos sale arriba a la izquierda, muy famosa en la shop de Ken y great  (funciona para todas)
    1.Vamos a nuestra carpeta root y editamos el archivo uiofflineshopbuilder.py (ken, kory, tc, etc) o uiprivateshopbuilder.py (great, una propia, etc)
    buscamos:
    y remplazamos por:
    Ese es el método 1, lo que hace, es que corrige la posición de la flecha de los ajustes, es decir, ya no te hace falta moverla, una vez inicias sesión, ya a parece las tiendas de forma normal, en caso que quieras quitar el título por x motivo, vas a ajustes y realizas la operación.
    2.Dejamos el paso anterior de forma original sin modificar, y buscamos:
    y remplazamos por:
    Con este 2 método, lo que logramos, es que podemos quitar el botón o la función, como queráis llamarlo, de mostrar o ocultar títulos de tienda, con eso, siempre estará activada.
    #Funciona instalado, testado.
    15.Quitar la tasa de 3%  al vender un objeto + que al vender item nos lo venda a 0 yang.
    1.Para la tasa vamos a los archivos shop.cpp & shop_manager.cpp y buscamos en ambos archivos:
    y remplazamos por:
    2.Vender todo a 0 yang, vamos a shop.cpp y buscamos:
    reemplazamos por:
    #Funciona, testado.
    16.Si tenéis tiempo a la hora de cambiar un bonus, (tienes que esperar x minutos/horas/dias/etc) y en los configs, no disponéis de la función TIME_CHANGE_BONUS o algo así esta es una solución alternativa, vamos a char_item.cpp y buscamos:
    y remplazamos por esto:
    17.Hemos creado un nuevo refine_vnum con sus items para mejorar, pero solo me pide yang.
    Izquierda bug, derecha corregido :

    -Esto se debe a que si utilizamos vnum4 y count4, el refinamiento ya no funcionará porque utiliza material_count = 0 y no detecta ninguna columna "vnum" que sea 0.
    -Para solucionarlo nos vamos a nuestro src db archivo ClientManagerBoot.cpp y buscamos:
    if (prt->materials[i].vnum == 0) { prt->material_count = i; break; } y remplazamos por :
    if (!prt->materials[i].vnum || !prt->materials[i].count) break; prt->material_count++; -Tiene que quedar algo así:
    for (int i = 0; i < REFINE_MATERIAL_MAX_NUM; i++) { str_to_number(prt->materials[i].vnum, data[col++]); str_to_number(prt->materials[i].count, data[col++]); if (!prt->materials[i].vnum || !prt->materials[i].count) break; prt->material_count++; } 18.Arreglar ITEM_QUEST, CONFIRM_WHEN_USE , etc en los items.
    -Este problema surge cuando queremos usar ciertas funciones en los items, como por ejemplo STACKABLE para apilar (no ITEM_STACKABLE), CONFIRM_WHEN_USE (te pregunta si quieres usar el objeto, como anillo de exp, guante, etc) o ITEM_QUEST para como indica usar el objeto para una quest, resulta que por alguna razón, los valores no coinciden y en algunos casos no existe ni ciertas definiciones así que seré muy breve, vamos al grano.
    1.Vamos a source game -> Item_lenght.h buscamos la función y la remplazamos por lo siguiente:
    2.Vamos source DB -> ProtoReader.cpp buscamos la función y remplazamos:
    3.Compilamos DB y Game, y de mientras vamos al source cliente -> GameLib -> itemData.h buscamos la función y remplazamos:
    3.1.Ahora vamos a UserInterface -> PythonItemModule.cpp y comentamos esta linea:
    4.Para finalizar vamos a nuestro source de dum_proto ->ItemCSVReader.cpp y buscamos y remplazamos:
    Y listo, ya tendremos todo funcionando, ejemplo de lo que puedes hacer: Gracias a Debes iniciar sesión para ver el contenido del enlace en esta publicación. por orientarme para el fix 😛

    Debes iniciar sesión para ver el contenido del enlace en esta publicación. Iré actualizando todos los días que me sea posible con nuevas cosas.
    Actualizado 31/03/2020
    Actualizado 02/04/2020
    Actualizado 03/04/2020
    Actualizado 16/04/2020
    Actualizado 26/04/2020
    Actualizado 18/05/2020
    Actualizado 21/05/2020
    Actualizado 28/05/2020
    Actualizado 05/ 06/2020
    Actualizado 20/03/2021
    Actualizado 16/09/2023
×
×
  • Crear nuevo...