NazoX Posted September 15, 2023 Report Share Posted September 15, 2023 Buenas, viendo que la guía de nuestro querido Debes iniciar sesión para ver el contenido del enlace en esta publicación. está un poco vieja (aunque sigue siendo la mejor y sirve), las fotos y tal no funcionan y eso, pues traigo una bastante más resumida, de todas formas, dejaré el enlace de su guía por si presentáis algunos de los errores que el menciona, y si no, podéis preguntar por aquí. 1.Descargamos nuestro mob o npc 2.Ahora, descompilamos nuestros archivos: -root.eix y root.epk -monster.eix y monster.epk -Si es un NPC cambiamos monster.eix monster.epk por: -NPC.eix NPC.epk 3.Ahora, entramos en Monster o NPC y vamos a la siguiente ruta: Quote Monster->ymir work->monster -Y aquí añadimos la carpeta de nuestro nuevo mob. Quote NPC->ymir work->npc -Y aquí si es un NPC. 4.Ahora podemos compilar, y nos vamos a nuestro root y editamos el archivo: Quote npclist.txt -Aquí tenemos que ir al final del archivo y añadir un ID que no exista en el juego, y el nombre del archivo .msm que podemos ver dentro de la carpeta del mob o npc, aquí un ejemplo Quote 20418 steap_monster87 4.1.Ahora podemos compilar el root, y nos vamos al servidor. Nota: Siempre usar el tabulador 5.Vamos a /share/data/monster y aquí pegamos la misma carpeta del mob, si es un NPC, nos podemos saltar este proceso. 5.1.Ahora continuamos y editamos nuestro archivo "mob_names.txt" y "mob_proto.txt" -En mob_names.txt, iremos al final del archivo, y añadimos el mismo ID que usamos en npclist y ponemos un nombre por ejemplo: Quote 20418 Hades Nota: Usar tabs. -Ahora en mob_proto, simplemente copiamos la linea de otro mob, por ejemplo azrael, y la pegamos al final y cambiamos el id, por ejemplo: Quote 20418 ?????? ??? KING MONSTER MELEE 91 AGGR,BERSERK,DEATHBLOW,REVIVE 0 UNDEAD,ATT_DARK STUN,SLOW,CURSE,TERROR 0 zombie_bigboss2 0 150 120 150 90 209 388 924600 20 10 30520 45780 333600 105 110 150 100 2000 450 0 0 50 10 0 0 25 20 40 35 40 40 40 40 0 0 60 0 10 3 2596 30 0 0 10 257 20 259 0 0 0 0 0 0 15 15 15 15 0 Nota: No copies mi ejemplo, pues la estructura puede ser diferente a la vuestra. **Información extra ampliada por Debes iniciar sesión para ver el contenido del enlace en esta publicación. y Debes iniciar sesión para ver el contenido del enlace en esta publicación.:*** -Os voy a explicar un poco que contiene la carpeta de mobs, quitando los npcs, podremos ver en el 99% de mobs, archivos como: Quote -attack.msa -attack.gr2 -death.msa -death.gr2 -run.msa -run.gr2 -special.msa -special.gr2 -wait.msa -wait.gr2 -motlist.txt -xx.msm Los nombres pueden variar, pero básicamente se compone en esos, bien. -Como su nombre indica, attack, death, run y wait.gr2 es la animación que permite al mob moverse, morir, atacar y correr y lo podemos ver si usamos granny viewer. -Los mismos archivos pero ".msa" son como los ".msm" de las animaciones e indican area de daño, ruta donde ejecuta el archivo .gr2, etc no soy muy experto en este campo así que no puedo ampliar más. por otro lado, a veces veremos mobs, más concretamente "jefes" que tienen como en este caso "special" que es una habilidad que usan ellos, a diferencia de los mobs, como sabéis solo los jefes tienen animaciones de daño de area o "skills" propias, pero como véis también se compone de un archivo ".gr2" y ".msa" Keko explica un poco más sobre dichos archivos en su post. **New** 1. Los nombres de los archivos no pueden tener mayúsculas, ni siquiera las extensiones. Quote Bien: bear.gr2 Mal: bear.GR2 Bien: bear.gr2 Mal: Bear.gr2 -Adentro de los .msm y .msa no importa las mayúsculas en las rutas. 2.Siempre hay que dejar un salto de línea al final del archivo npclist.txt en root 3.Se pueden manejar varios vnums en una sola carpeta, esta es la respuesta de porqué vemos varios "0" en npclist. Quote 0 nombre_msm_1 nombre_carpeta 0 nombre_msm_2 nombre_carpeta 20418 hades 4. No se puede utilizar cualquier vnum para los mobs. Hay unos rangos. -Los rangos se pueden definir en el binario en GameLib/RaceManager.cpp -Como dice Debes iniciar sesión para ver el contenido del enlace en esta publicación. lo recomendable es: Quote Si el mob pertenece a monster, usar un id entre 210 a delante Si el mob pertenece a monster2, usar un id entre 3000 a delante Si el mob pertenece a NPC/npc2 usar un id entre 18000 adelante También, como decíamos, hay un rango de vnums, que pueden verse en RaceManager.cpp, más concretamente esta función: Quote bool __IsGuildRace(unsigned race) { if (race >= 14000 && race < 15000) return true; if (20043 == race) return true; return false; } bool __IsNPCRace(unsigned race) { if (race > 9000) return true; return false; } void __GetRaceResourcePathes(unsigned race, std::vector <std::string>& vec_stPathes) { if (__IsGuildRace(race)) { vec_stPathes.push_back ("d:/ymir work/guild/"); vec_stPathes.push_back ("d:/ymir work/npc/"); vec_stPathes.push_back ("d:/ymir work/npc2/"); vec_stPathes.push_back ("d:/ymir work/monster/"); vec_stPathes.push_back ("d:/ymir work/monster2/"); } else if (__IsNPCRace(race)) { if (race >= 30000) { vec_stPathes.push_back ("d:/ymir work/npc2/"); vec_stPathes.push_back ("d:/ymir work/npc/"); vec_stPathes.push_back ("d:/ymir work/monster/"); vec_stPathes.push_back ("d:/ymir work/monster2/"); vec_stPathes.push_back ("d:/ymir work/guild/"); } else { vec_stPathes.push_back ("d:/ymir work/npc/"); vec_stPathes.push_back ("d:/ymir work/npc2/"); vec_stPathes.push_back ("d:/ymir work/monster/"); vec_stPathes.push_back ("d:/ymir work/monster2/"); vec_stPathes.push_back ("d:/ymir work/guild/"); } } // ¸¸¿ìÀý À̺¥Æ®¿ë ¿¹¿Ü ¸ó½ºÅÍ else if (8507 == race || 8510 == race) { vec_stPathes.push_back ("d:/ymir work/monster2/"); vec_stPathes.push_back ("d:/ymir work/monster/"); vec_stPathes.push_back ("d:/ymir work/npc/"); vec_stPathes.push_back ("d:/ymir work/npc2/"); vec_stPathes.push_back ("d:/ymir work/guild/"); } else if (race > 8000) { vec_stPathes.push_back ("d:/ymir work/monster/"); vec_stPathes.push_back ("d:/ymir work/monster2/"); vec_stPathes.push_back ("d:/ymir work/npc/"); vec_stPathes.push_back ("d:/ymir work/npc2/"); vec_stPathes.push_back ("d:/ymir work/guild/"); } else if (race > 2000) { vec_stPathes.push_back ("d:/ymir work/monster2/"); vec_stPathes.push_back ("d:/ymir work/monster/"); vec_stPathes.push_back ("d:/ymir work/npc/"); vec_stPathes.push_back ("d:/ymir work/npc2/"); vec_stPathes.push_back ("d:/ymir work/guild/"); } else if (race>=1400 && race<=1700) { vec_stPathes.push_back ("d:/ymir work/monster2/"); vec_stPathes.push_back ("d:/ymir work/monster/"); vec_stPathes.push_back ("d:/ymir work/npc/"); vec_stPathes.push_back ("d:/ymir work/npc2/"); vec_stPathes.push_back ("d:/ymir work/guild/"); } else { vec_stPathes.push_back ("d:/ymir work/monster/"); vec_stPathes.push_back ("d:/ymir work/monster2/"); vec_stPathes.push_back ("d:/ymir work/npc/"); vec_stPathes.push_back ("d:/ymir work/npc2/"); vec_stPathes.push_back ("d:/ymir work/guild/"); } return; } -Aquí que alguien me corrija pues puede que me equivoque, pero puedes ampliar algunos valores, aunque es mejor dejarlo por defecto, pero es para que podáis tener una idea de los limites en cuanto al ID se refiere. 5. Evita este error: Cuando pongas los archivos en data/monster y pruebes el monstruo en el juego, asegúrate de que no hayas afectado algunos monstruos. Hay un bug muy extraño que cuando pones archivos en monster, hay algunos monstruos que algunos te atacan y otros no. Para comprobar si tienes el bug, prueba con /ma 2104 5. Si todos los bichos te pegan, entonces no hubo bug. Si algunos se quedan quietos intentando pegarte pero no hacen nada, tienes el bug. Nunca he podido saber el origen de ese bug. 6. Si tienes monturas que al ir rápido no se cargan a tiempo los monstruos, es porque no agregaste su folder en el mob_proto. **Fin Update** **New Update -Si usamos los ".TXT" en vez de "SQL" lo recomendables es editar el archivo mob_proto.txt con Excel o similar, y buscar la casilla "Folder" una vez aquí, tenemos que añadir el nombre de la carpeta que hemos añadido en la ruta : /share/data/monster : -Como podemos observar en este ejemplo, mi mob_proto.txt al editarlo con excel, la casilla "Folder" queda en la "M" y pondriamos el mismo nombre que se puede ver en la izquierda de la imagen. -Por último, pero no menos importante, si implementas un mob o una pet y no viene con la parte del servidor, se puede usar la carpeta del cliente, pero se tendrá que quitar los archivos .gr2, para evitar posibles problemas futuros: **Fin Update** -Ahora el archivo motlist, sirve para definir que va hacer ese mob, ejemplo: Quote GENERAL WAIT wait01.msa 100 GENERAL RUN run01.msa 100 GENERAL DEAD death01.msa 100 GENERAL NORMAL_ATTACK atk01.msa 100 GENERAL SPECIAL special02.msa 100 GENERAL SPECIAL1 special03.msa 100 GENERAL FRONT_DAMAGE wait01.msa 100 GENERAL BACK_DAMAGE wait01.msa 100 GENERAL WALK run01.msa 100 Siempre se utiliza GENERAL, y se le indica con el archivo ".msa" su función, como podéis ver ataque, muerte, special (skill), etc. Si por ejemplo, vuestro mob no tiene la función de caminar, podéis buscar un mob parecido, y copiar el archivo "walk.msa" y "walk.gr2" lo pegáis en la carpeta, y luego aquí en motlist, pondriáis Quote GENERAL WALK walk.msa 100 y entonces el jefe ya caminaría. Bueno, eso es todo, el ejemplo lo dejo a continuación, si falta algo, queréis comentar algo más o tenéis algún problema comunicarlo. Post de keko: Quote Link to comment Share on other sites More sharing options...
ReuS Posted September 15, 2023 Report Share Posted September 15, 2023 Se agradece el aporte para los nuevos. NazoX 1 Quote Link to comment Share on other sites More sharing options...
NazoX Posted September 15, 2023 Author Report Share Posted September 15, 2023 hace 9 minutos, ReuS dijo: Se agradece el aporte para los nuevos. Gracias, pues sí, la verdad que últimamente no estoy muy por el foro, pero si que he vuelto con ganas a metin2, haber si lo revivimos un poco ya iré aportando cosas, gracias por tu tiempo, un saludo. ReuS 1 Quote Link to comment Share on other sites More sharing options...
caanmasu Posted September 16, 2023 Report Share Posted September 16, 2023 Las has roto tío! Muy buen aporte. Hay que revivir estas guías que han quedado muy atrás y siempre llega gente nueva a aprender esto de los servers. Algunos detalles que ignoran los nuevos (ha pasado muchas veces, incluso a mí): 1. Los nombres de los archivos no pueden tener mayúsculas, ni siquiera las extensiones. Bien: bear.gr2 Mal: bear.GR2 Bien: bear.gr2 Mal: Bear.gr2 Adentro de los .msm y .msa no importa las mayúsculas en las rutas. 2. Debe haber un salto de línea al final de npclist.txt 3. Si van a manejar varios vnum en un solo folder: 0 nombre_msm_1 nombre_carpeta 0 nombre_msm_2 nombre_carpeta vnum1 nombre_msm_1 vnum2 nombre_msm_2 Es la respuesta a la pregunta: por qué hay varios ceros en npclist? 4. No se puede utilizar cualquier vnum para los mobs. Hay unos rangos. Los rangos se pueden definir en el binario en GameLib/RaceManager.cpp Al principio cuesta entender un poco el código pero al final es sencillo. 5. Evita este error: Cuando pongas los archivos en data/monster y pruebes el monstruo en el juego, asegúrate de que no hayas afectado algunos monstruos. Hay un bug muy extraño que cuando pones archivos en monster, hay algunos monstruos que algunos te atacan y otros no. Para comprobar si tienes el bug, prueba con /ma 2104 5. Si todos los bichos te pegan, entonces no hubo bug. Si algunos se quedan quietos intentando pegarte pero no hacen nada, tienes el bug. Nunca he podido saber el origen de ese bug. 6. Si tienes monturas que al ir rápido no se cargan a tiempo los monstruos, es porque no agregaste su folder en el mob_proto. NazoX and Marcos Pinheiro 2 Quote Link to comment Share on other sites More sharing options...
NazoX Posted September 16, 2023 Author Report Share Posted September 16, 2023 hace 4 horas, caanmasu dijo: Las has roto tío! Muy buen aporte. Hay que revivir estas guías que han quedado muy atrás y siempre llega gente nueva a aprender esto de los servers. Algunos detalles que ignoran los nuevos (ha pasado muchas veces, incluso a mí): 1. Los nombres de los archivos no pueden tener mayúsculas, ni siquiera las extensiones. Bien: bear.gr2 Mal: bear.GR2 Bien: bear.gr2 Mal: Bear.gr2 Adentro de los .msm y .msa no importa las mayúsculas en las rutas. 2. Debe haber un salto de línea al final de npclist.txt 3. Si van a manejar varios vnum en un solo folder: 0 nombre_msm_1 nombre_carpeta 0 nombre_msm_2 nombre_carpeta vnum1 nombre_msm_1 vnum2 nombre_msm_2 Es la respuesta a la pregunta: por qué hay varios ceros en npclist? 4. No se puede utilizar cualquier vnum para los mobs. Hay unos rangos. Los rangos se pueden definir en el binario en GameLib/RaceManager.cpp Al principio cuesta entender un poco el código pero al final es sencillo. 5. Evita este error: Cuando pongas los archivos en data/monster y pruebes el monstruo en el juego, asegúrate de que no hayas afectado algunos monstruos. Hay un bug muy extraño que cuando pones archivos en monster, hay algunos monstruos que algunos te atacan y otros no. Para comprobar si tienes el bug, prueba con /ma 2104 5. Si todos los bichos te pegan, entonces no hubo bug. Si algunos se quedan quietos intentando pegarte pero no hacen nada, tienes el bug. Nunca he podido saber el origen de ese bug. 6. Si tienes monturas que al ir rápido no se cargan a tiempo los monstruos, es porque no agregaste su folder en el mob_proto. Increíble aportación !!! Muchas gracias por el aporte cuando tenga un rato lo añado al post!! Estas hecho una máquina espero que podamos actualizar guías para los nuevos, un saludo y gracias por el aporte y tu tiempo caanmasu 1 Quote Link to comment Share on other sites More sharing options...
𝗔𝗿𝗲𝘀 Posted September 17, 2023 Report Share Posted September 17, 2023 En 15/9/2023 a las 20:39, NazoX dijo: Buenas, viendo que la guía de nuestro querido Debes iniciar sesión para ver el contenido del enlace en esta publicación. está un poco vieja (aunque sigue siendo la mejor y sirve), las fotos y tal no funcionan y eso, pues traigo una bastante más resumida, de todas formas, dejaré el enlace de su guía por si presentáis algunos de los errores que el menciona, y si no, podéis preguntar por aquí. 1.Descargamos nuestro mob o npc 2.Ahora, descompilamos nuestros archivos: -root.eix y root.epk -monster.eix y monster.epk -Si es un NPC cambiamos monster.eix monster.epk por: -NPC.eix NPC.epk 3.Ahora, entramos en Monster o NPC y vamos a la siguiente ruta: -Y aquí añadimos la carpeta de nuestro nuevo mob. -Y aquí si es un NPC. Debes iniciar sesión para ver el contenido del enlace en esta publicación. 4.Ahora podemos compilar, y nos vamos a nuestro root y editamos el archivo: -Aquí tenemos que ir al final del archivo y añadir un ID que no exista en el juego, y el nombre del archivo .msm que podemos ver dentro de la carpeta del mob o npc, aquí un ejemplo 4.1.Ahora podemos compilar el root, y nos vamos al servidor. Nota: Siempre usar el tabulador Debes iniciar sesión para ver el contenido del enlace en esta publicación. 5.Vamos a /share/data/monster y aquí pegamos la misma carpeta del mob, si es un NPC, nos podemos saltar este proceso. Debes iniciar sesión para ver el contenido del enlace en esta publicación. 5.1.Ahora continuamos y editamos nuestro archivo "mob_names.txt" y "mob_proto.txt" -En mob_names.txt, iremos al final del archivo, y añadimos el mismo ID que usamos en npclist y ponemos un nombre por ejemplo: Nota: Usar tabs. -Ahora en mob_proto, simplemente copiamos la linea de otro mob, por ejemplo azrael, y la pegamos al final y cambiamos el id, por ejemplo: Nota: No copies mi ejemplo, pues la estructura puede ser diferente a la vuestra. Debes iniciar sesión para ver el contenido del enlace en esta publicación. **Información extra ampliada por Debes iniciar sesión para ver el contenido del enlace en esta publicación.:*** -Os voy a explicar un poco que contiene la carpeta de mobs, quitando los npcs, podremos ver en el 99% de mobs, archivos como: Los nombres pueden variar, pero básicamente se compone en esos, bien. -Como su nombre indica, attack, death, run y wait.gr2 es la animación que permite al mob moverse, morir, atacar y correr y lo podemos ver si usamos granny viewer. -Los mismos archivos pero ".msa" son como los ".msm" de las animaciones e indican area de daño, ruta donde ejecuta el archivo .gr2, etc no soy muy experto en este campo así que no puedo ampliar más. por otro lado, a veces veremos mobs, más concretamente "jefes" que tienen como en este caso "special" que es una habilidad que usan ellos, a diferencia de los mobs, como sabéis solo los jefes tienen animaciones de daño de area o "skills" propias, pero como véis también se compone de un archivo ".gr2" y ".msa" Keko explica un poco más sobre dichos archivos en su post. **New** 1. Los nombres de los archivos no pueden tener mayúsculas, ni siquiera las extensiones. -Adentro de los .msm y .msa no importa las mayúsculas en las rutas. 2.Siempre hay que dejar un salto de línea al final del archivo npclist.txt en root 3.Se pueden manejar varios vnums en una sola carpeta, esta es la respuesta de porqué vemos varios "0" en npclist. 4. No se puede utilizar cualquier vnum para los mobs. Hay unos rangos. -Los rangos se pueden definir en el binario en GameLib/RaceManager.cpp -Como dice Debes iniciar sesión para ver el contenido del enlace en esta publicación. lo recomendable es: También, como decíamos, hay un rango de vnums, que pueden verse en RaceManager.cpp, más concretamente esta función: -Aquí que alguien me corrija pues puede que me equivoque, pero puedes ampliar algunos valores, aunque es mejor dejarlo por defecto, pero es para que podáis tener una idea de los limites en cuanto al ID se refiere. 5. Evita este error: Cuando pongas los archivos en data/monster y pruebes el monstruo en el juego, asegúrate de que no hayas afectado algunos monstruos. Hay un bug muy extraño que cuando pones archivos en monster, hay algunos monstruos que algunos te atacan y otros no. Para comprobar si tienes el bug, prueba con /ma 2104 5. Si todos los bichos te pegan, entonces no hubo bug. Si algunos se quedan quietos intentando pegarte pero no hacen nada, tienes el bug. Nunca he podido saber el origen de ese bug. 6. Si tienes monturas que al ir rápido no se cargan a tiempo los monstruos, es porque no agregaste su folder en el mob_proto. **Fin Update** -Ahora el archivo motlist, sirve para definir que va hacer ese mob, ejemplo: Siempre se utiliza GENERAL, y se le indica con el archivo ".msa" su función, como podéis ver ataque, muerte, special (skill), etc. Si por ejemplo, vuestro mob no tiene la función de caminar, podéis buscar un mob parecido, y copiar el archivo "walk.msa" y "walk.gr2" lo pegáis en la carpeta, y luego aquí en motlist, pondriáis y entonces el jefe ya caminaría. Bueno, eso es todo, el ejemplo lo dejo a continuación, si falta algo, queréis comentar algo más o tenéis algún problema comunicarlo. Debes iniciar sesión para ver el contenido del enlace en esta publicación. Post de keko: La verdad bro que te la sacastes, aunque te falto solo una cosilla. Para el mob proto si usan txt deberan de buscar la celda Folder y hay deberan de declarar el nombre de la carpeta que se ubica en share/data/monster. Para asi evitar problemas de acummulation motlist o cualquier otro tipo de problemas. Y aca un pequeño consejo: Cuando saquen un mob o pet que no viene con la parte del servidor pueden usar el del cliente siempre y cuando quiten el msm, la textura y el gr2. "NUNCA METAN LA CARPETA DEL SERVIDOR CON ESOS ARCHIVOS YA QUE LE PUEDEN OCASIONAR ERRORES" Por tu parte Nazox maravillosa guia, mis mas sinceras felicitaciones. NazoX and Marcos Pinheiro 2 Quote Link to comment Share on other sites More sharing options...
NazoX Posted September 17, 2023 Author Report Share Posted September 17, 2023 hace 24 minutos, Pegasus dijo: La verdad bro que te la sacastes, aunque te falto solo una cosilla. Para el mob proto si usan txt deberan de buscar la celda Folder y hay deberan de declarar el nombre de la carpeta que se ubica en share/data/monster. Para asi evitar problemas de acummulation motlist o cualquier otro tipo de problemas. Y aca un pequeño consejo: Cuando saquen un mob o pet que no viene con la parte del servidor pueden usar el del cliente siempre y cuando quiten el msm, la textura y el gr2. "NUNCA METAN LA CARPETA DEL SERVIDOR CON ESOS ARCHIVOS YA QUE LE PUEDEN OCASIONAR ERRORES" Por tu parte Nazox maravillosa guia, mis mas sinceras felicitaciones. Gracias a ti por tu tiempo y por ampliar la información, se agradece que te hayas tomado la molestia de leerla y a portar tu granito de arena, enseguida actualizo el post, y espero que sigamos mejorando, un saludo Pegasus ^^. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.