Registrarse

Bienvenido a Foro Minecraft.

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed.

Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 10 de 20
Like Tree2Likes

Tema: Tutorial básico de creación de mods

  1. #1
    Senior Member
    Fecha de ingreso
    April-2011
    Ubicación
    Madrid
    Mensajes
    2,946
    Entradas de blog
    17

    Tutorial básico de creación de mods

    Voy a hacer un manual básico para que todo el mundo sepa como crear sus mods para el Minecraft.

    Pero antes de nada, advertiros que si quereis aprender a hacer un mod, tendreis que saber programar. Y no, no puedo explicar como programar aquí xD. Hay libros y páginas en internet dedicadas a ello.

    Dicho esto, vamos a necesitar algo de material de internet. Concretamente, vamos a necesitar:

    • 1. Java SDK, para poder compilar programas Java (incluido el minecraft). Asumo que ya tienes instalado Java en su última versión. Si no es así, evidentemente, instalalo.

      Para descargar el SDK (o JDK como lo llaman ellos), haz click en el botón "Download JDK"




    Aunque parece obvio, alguno podría liarse con tanto botón de descarga. Ahora explicaré como instalarlo.

    • 2. La última versión del Minecraft Coder Pack (MCP). Es la 3.x, donde x debe ser el número más alto de la lísta (Actualmente la 3.1, pero esto podría ser diferente en futuras versiones. Busca la más alta (3.2, 3.3...)).


    • 3. Un editor de texto con funciones de resaltado de código (o un entorno de desarrollo para Java, pero es un poco más lioso). Recomiendo el Notepad++, que es algo así como gedit de linux, pero para Windows


    Bien, como todos bien sabemos, el código de Minecraft no es libre y por ello, no lo vamos a encontrar en ningún sitio. Entonces, para conseguirlo, lo primero que deberemos hacer es descompilarlo.

    Instalar los componentes necesarios.

    Primero instalamos el Java SDK. No tenemos que hacer nada especial, dale a siguiente hasta que se instale (no cambies absolutamente nada). Cuando acabes, hay que editar la variable de entorno "Path" para que contenga la carpeta "bin" que hay dentro de la carpeta donde has instalado el SDK. Esto es porque a la hora de compilar, necesitaremos saber donde se encuentra el compilador.

    En windows XP: haz click derecho en Mi PC, ve a Propiedades. De ahí, le das a la pestaña Opciones avanzadas y haces click sobre el botón "Variables de entorno".



    En "Variables del Sistema", busca y selecciona la variable "Path", y haz click en el botón "Modificar".



    En la ventana que aparece, en el campo "Valor de la variable", ve al final del texto sin modificar nada, y escribe lo siguiente (NO COPIES Y PEGUES, lee primero lo que pone debajo):

    ;C:\Archivos de programa\Java\jdk1.6.0_25\bin

    Primero se pone el punto y coma al final del campo. Esto es para determinar donde acaba cada dirección y es necesario. Despues se escribe la dirección de la carpeta "bin" del Java SDK. Suponiendo que tu unidad principal donde lo has instalado sea la C, empezará con C. Si tiene otra letra, cambiala por la letra de la unidad correspondiente. Por último, acuerdate de que el número de versión podría variar. La versión que tengo instalada es la "1.6.0_25", la tuya podría ser distinta. Compruebalo.

    Una vez finalices, acepta todo para aplicar los cambios.

    En Windows 7: Es exáctamente igual, solo que en vez de hacer click derecho en Mi PC, lo hacemos en Equipo.

    Una vez terminado, ya debería estar todo en orden y podemos proceder a instalar el MCP. Para ello, símplemente lo descomprimimos en cualquier parte donde no estorbe.

    Por último, instalamos el Notepad++ como cualquier otro programa.

    Decompilar y Deobfuscar el código

    De ésta parte se encarga el MCP, y con ello obtendremos el código fuente del Minecraft.

    Recomiendo seguir estos pasos con una versión de minecraft "limpia". Es decir, sin mods instalados.

    Para hacer ésto, primero vamos a Inicio > Ejecutar, y escribimos %appdata%, y le damos a Aceptar.



    En la carpeta que se nos abre, abrimos la carpeta .minecraft. Seleccionamos las carpetas "bin" y "resources", y las copiamos pulsando Ctrl + C.

    Ahora vamos a la carpeta donde hemos descomprimido el MCP, abrimos la carpeta "jars" y pegamos las carpetas que hemos copiado antes pulsando Ctrl+V.

    Volvemos atras, a la carpeta del MCP, y ejecutamos el archivo "decompile.bat". Aparecerá una pantalla del símbolo del sistema. Solo debemos esperar hasta que finalize el programa, hasta que muestre el siguiente mensaje (parecido):



    (NOTA: El programa busca si está disponible el programa del servidor. De no ser así, se lo salta. Esto es por si quieres modificar tambien el programa del servidor, contenido en minecraft_server.jar).

    Tras hacer ésto, nos aparecerá una carpeta llamada "src" en la carpeta del MCP. La carpeta con el código fuente que nos interesa está en "src/minecraft/net/minecraft/src". Dentro encontraremos todas las clases a nuestra disposición para modificarlas. Para ello, símplemente abriremos cada una con el Notepad++.



    El código fuente

    El nombre de cada clase es bastante explicatorio, y nos dice que es lo que contiene. Las clases que empiezan por "Biome" pertenecen al generador de Biomes, que hacen que exístan desiertos, bosques y lugares fríos. "Block" son las clases de cada bloque. "Canvas" es para la pantalla. "Clipping" es para el movimiento del jugador y los mobs por el mapa. "Container" para los contenedores (inventario, cofres, furnaces...). "Chunk" son clases relacionadas con el contról de Chunks, que son los pedazos de tierra en los que se divide el mapa, y son parte también del generador de terreno. "Effect" son clases de efectos gráficos. "Entity" es una clase que controla todas las entidades del juego. Items, mobs, instrumentos, helpers...

    "Gui" se corresponde con la interfaz de usuario (Graphical User Interface). "Item" contiene las propiedades para cada objeto del juego (un pico, una espada, un arco,una barra de pan...). "J_" Contiene clases relacionadas con el engine, pero no sé muy bien con que. "Model" contiene los modelos para cada cosa del juego. Como todo está creado mediante cubos, es muy fácil crear los modelos mediante código. "NBT" deben ser clases relacionadas con el formato de los archivos del mundo, probablemente para su manipulación. "NoiseGenerator" son clases relacionadas con el generador de mapas. "Packet" son clases para la comunicación en el multijugador, creo. "Render" son clases relacionadas con la apariencia de cada cosa del juego. Aquí se pueden modificar los tamaños y aspectos de los mobs, entre otras cosas.

    Esas son las clases más llamativas del código. Como ya digo, el nombre de cada uno es explicativo en sí mismo, e indica lo que vas a encontrar dentro del archivo.

    Recompilar y probar el código

    Para recompilar el código, vamos a la carpeta del MCP y hacemos doble click en "recompile.bat". Una vez más nos aparecerá una ventana de comandos, y tendremos que esperar a que termine de compilarse. Si lo hace satisfactoriamente, y no la hemos liado en alguno de los pasos anteriores, mostrará un mensaje parecido a éste:



    Si por un casual hubiera algún error en el código, nos lo diría:



    El compilador tiene la cortesía de decirnos el archivo, la línea y una descripción breve del error. Los errores más comunes son:

    -Cannot find symbol: Indica que estamos intentando usar una variable, matríz o función que no ha sido previamente declarada o no exíste en el contexto (clase-función) actual, o bien hemos escrito de manera incorrecta el nombre de la variable/matriz/función que queriamos usar.

    -index out of bounds exception: Indica que en una matríz, hemos superado los límites de la mísma. Por ejemplo, si definimos una matríz de 128 casillas, e intentamos acceder a la casilla 129, nos saldrá este error. Suele deberse a que hemos especificado un valor más elevado de lo esperado a una variable, o que hay un error en el código que hace que el programa se salga de los límites de la matríz.

    -';' expected: Más claro, agua. Nos hemos dejado un punto y coma sin poner. Te indica la linea e incluso lo que has puesto, así que no deberías tener problemas.

    Haz una copia de seguridad de todo el código antes de modificar nada. Si algo falla estrepitosamente y no sabes que hacer, recuperalo y vuelve a empezar.

    Para probar el código, haz doble click sobre el archivo "startclient.bat", y disfruta de tu minecraft modeado


    (¿No queriais ovejas? ¡Pues tomad un puñado de ellas!)

    Reobfuscar el código

    Para poder distribuir el código, necesitaras reobfuscar las clases que has modificado. Para ello, bastra con ejecutar el archivo "reobfuscate.bat", en la carpeta del MCP.

    El programa buscará las clases modificadas, comparando el MD5 de las clases que has modificado con los del minecraft.jar, y reobfuscará las modificadas. Las clases reobfuscadas aparecerán en la carpeta "reobf" del MCP, lístas para ser comprimidas en un RAR y distribuidas.

    Para su instalación, sigue los pasos del apartado "Descarga de ejemplos".

    Ejemplos

    A continuación, os propongo algunos ejemplos para practicar.

    - Ovejas explosivas

    Si estais hartos de que siempre os quiten la lana cuando la vais a coger vosotros, con este mod podreis hacer que las ovejas os den una desagradable sorpresa en vez de lana cuando las intenteis esquilar.

    Para ello, abrid el archivo "EntitySheep.jar" del código fuente con el Notepad++. Buscamos en el código la función "attackEntityFrom(Entity entity, int i)". Lo vamos a modificar, y vamos a añadir las líneas que voy a marcar en negrita:

    NOTA: Algunas partes del código las ocultare poniendo muchas x, ya que en teoría no se debe publicar partes del código, aunque es una tontería porque cualquiera puede acceder a ellas, pero bueno. Solo pongo una parte para que podais averiguar donde va el código.

    attackEntityFrom(Entity entity, int i){
    if(!worldObj.mulxxxx)
    {
    setxxxrex(xxx);
    int j = 1 + raxxxxxx(x);
    for(intxxxxxx)
    {
    Enxxxxem entixxxx = entityxxxxxxxxxxxxxxxxx;
    enxxxxem.mxxxx += rand.nexxxxxxxxxxxx;
    enxxxxem.mxxxx += (rand.nexxxxxxxxxxxxxxxx;
    enxxxxem.mxxxx += (rand.nexxxxxxxxxxxxx;
    }
    worldObj.createExplosion(this, posX, posY, posZ, 3F);
    setEntityDead();

    }
    return sxxxxxxxx;
    }
    La función "createExplosion" de la clase "worldObj" hace que se cree una explosión en un lugar determinado. Se puede modificar el tamaño de la explosión, que se corresponde con el último parametro (en este caso, 3F). Se pone una F al final porque es un valor de tipo flotante (floating point). No recomiendo poner más de 20F, ya que el juego se ralentiza mucho.

    setEntityDead mata a la entidad, borrandola del mapa.

    Ahora guardadlo, compiladlo y probad a golpear una oveja.

    - Gigacreepers e Hypercreepers

    ¿Crees que los creepers dan miedo? Pues si ya de por sí dan miedo, con éste mods van a ser de infarto.

    Vamos a abrir el archivo "RenderCreeper.java" con el Notepad++. Ahora buscaremos dentro la función "updateCreeperScale" (está a la vista nada mas abrir el archivo). Modificad las variables f3 y f4, con valores (de punto flotante) muy superiores, aunque no mucho (no más de 10F). Guardamos el archivo, y abrimos el archivo "EntityCreeper.java". En la función "writeEntityToNBT", borramos la sentencia "if" entera, y dejamos solo una de las funciones "setBoolean" que hay dentro, la que establece como "True" la propiedad "charged".

    public void writeEntityToNBT(xxxxxxxx)
    {
    super.wrixxxxxxxxxxxxx;
    if(dataWaxxxxxxxxxxxxxxxxxxxx) == 1)
    nbtxxxxxxxd.setBoolean("powered", true);
    }
    Luego modifica la función "attackEntity", en las líneas que crean explosiones (worldObj.createExplosion) coloca un valor superior de tamaño de la explosión (18F y 12F, concretamente, tal y como yo lo puse).

    Compilamos y ejecutamos el juego. Espera a que anochezca, y preparate para lo que se avecina...



    - Gambling de bloques

    Con este mod, al romper un bloque, vamos a tener opciones de conseguir más bloques, o ninguno. Con esto, podremos duplicar bloques, pero ojo porque tambien lo podemos perder.

    Abrimos el archivo "Block.java". Primero de todo, tenemos que añadir un import en la cabecera, debajo del resto de imports:

    import java.util.*;
    Ahora, buscamos la función "quantityDropped", y la cambiamos ENTERA por lo que voy a poner yo aquí (como ésta función la he reescrito yo integramente, puedo postearla sin censura):

    public int quantityDropped(Random random)
    {
    Random rand = new Random();
    int randval = rand.nextInt(99);
    if(randval < 49){
    return 1;
    }
    if(randval > 49 && randval < 58){
    return 2;
    }
    if(randval > 58 && randval < 62){
    return 3;
    }
    if(randval == 75){
    return 10;
    }
    if(randval > 89){
    return 0;
    }
    return 1;
    }
    Con ésto, al romper cualquier bloque, tendremos:

    76% de probabilidad de obtener 1 bloque
    9% de probabilidad de obtener 2 bloques
    4% de probabilidad de obtener 3 bloques
    1% de probabilidad de obtener 10 bloques
    10% de probabilidad de romperse el bloque y no obtener nada.

    Descarga de ejemplos

    Os podeis descargar las clases de los ejemplos ya reobfuscadas (reobfuscadas y subidas por Archreg) desde mediafire. Funciona con la versión 1.5_01. Podeis añadirlas a vuestro Minecraft de la siguiente forma:

    • 1. Ir a Inicio > Ejecutar, escribid %appdata% y pulsad aceptar.

    • 2. Abrir la carpeta .minecraft. Dentro de ésta carpeta, abrid la carpeta bin.

    • 3. Abrir el archivo "minecraft.jar" con Winrar (click derecho sobre Minecraft.jar -> Abrir con -> Winrar. Si no aparece Winrar, selecciona "Elegir programa" y busca "Winrar" en la lísta de programas. Si no aparece, descarga e instala Winrar).

    • 4. Arrastra los archivos .class de los mods que quieras instalar al archivo minecraft.jar, y borra la carpeta META-INF del mísmo.

    • 5. Cierra todo y ejecuta Minecraft.


    NOTA: Podría haber algunos conflictos con otros mods que pudieras tener instalados, ya que como es evidente, estos mods no están diseñados para ser compatibles con otros mods.

    Y ésto es todo lo que necesitas saber para empezar a crear tus propios mods para Minecraft. Espero que ésta guía te sirva de ayuda para disfrutar de Minecraft al maximo.
    Link likes this.

  2. #2
    Senior Member
    Fecha de ingreso
    January-2011
    Ubicación
    Creeperland
    Mensajes
    2,288

    Re: Tutorial básico de creación de mods

    Bastante bien, pero te falta la parte de Reobfuscar para que otros puedan usar el mod y no lo tengas que solo "probar" desde el MCP :l

    (Lo sé hacer pero en la nueva versión del MCP es muy raro y no sale la carpeta final_out ni la carpetas de herramientas, por lo que hay que sacar el nombre de las clases ; y los class (TODOS) se convierten en x.class (Siendo x el nombre de la clase por lo que no servirá si lo metes en minecraft.jar)
    ¡Minecraft!

  3. #3
    Senior Member
    Fecha de ingreso
    November-2010
    Ubicación
    Donde viva tu hermana.
    Mensajes
    1,366

    Re: Tutorial básico de creación de mods

    Ahora todos saben de mods menos chocolate¬¬ GRR
    Druk likes this.

  4. #4
    Senior Member
    Fecha de ingreso
    January-2011
    Ubicación
    mi hogar, jugando algun juego, o en el baño
    Mensajes
    593

    Re: Tutorial básico de creación de mods

    no te preocupes chocolate...
    ya somos 2 ._.
    VOLEMOS TODOS JUNTOS POR EL ARCOIRIS!!... los odio a todos

  5. #5
    Senior Member
    Fecha de ingreso
    February-2011
    Mensajes
    835

    Re: Tutorial básico de creación de mods

    3 querras decir


  6. #6
    Senior Member
    Fecha de ingreso
    January-2011
    Ubicación
    Mi Fortaleza en minecraft
    Mensajes
    1,164
    Entradas de blog
    4

    Re: Tutorial básico de creación de mods

    hagamos un grupito de aquellos que no saben hacer mods
    Los vídeos en vertical son malos. Niños, no grabéis vídeos en vertical: acabarán viéndose como la mierda
    Visita el servidor oficial de la comunidad: Server.comunidadminecraft.com
    Nuestro canal de youtube: http://www.youtube.com/user/ComunidadMinecraft
    Wiki de la comunidad: http://minecraftwiki.es/Portada

  7. #7
    Senior Member
    Fecha de ingreso
    January-2011
    Ubicación
    Creeperland
    Mensajes
    2,288

    Re: Tutorial básico de creación de mods

    Una cosa...

    Si no sabeis ¿Por qué no leeis el * tutorial? xD
    ¡Minecraft!

  8. #8
    Senior Member
    Fecha de ingreso
    January-2011
    Ubicación
    Sodomizando a 3 mujeres con mis tentaculos mientras me desangro...
    Mensajes
    1,174

    Re: Tutorial básico de creación de mods

    Por que no sabemos leer

  9. #9
    Senior Member
    Fecha de ingreso
    April-2011
    Ubicación
    Madrid
    Mensajes
    2,946
    Entradas de blog
    17

    Re: Tutorial básico de creación de mods

    Cita Iniciado por BiudreuN
    Por que no sabemos leer
    Touché. xD

    Es fácil, joer. Si sabes algo de programación, claro. Si no, pues... como si te hablaran en chino xD.

    Lo de reobfuscar, lo voy a investigar un poco cuando tenga algo de ganas, y lo añadiré al tutorial, ya que es importante saberlo. En teoría debería ser ejecutando el archivo "reobfuscate.bat". De ahí te aparece una nueva carpeta llamada "reobf" con los archivos "class" ya reobfuscados. Pero no he probado si funcionan o no al meterlos en el jar. Ya investigaré.

  10. #10
    Senior Member
    Fecha de ingreso
    January-2011
    Ubicación
    Creeperland
    Mensajes
    2,288

    Re: Tutorial básico de creación de mods

    Al reobfuscar primero no está lo de configuración para elegir qué class reobfuscar, y segundo no sale nada en la carpeta (Sale vacía D
    ¡Minecraft!

 

 
Página 1 de 2 12 ÚltimoÚltimo

Temas similares

  1. Video de lo basico para novatos
    Por laplatam10 en el foro Creaciones
    Respuestas: 0
    Último mensaje: 28-Feb-2012, 16:19
  2. Creacion de mod
    Por Ultignomo en el foro Utilidades y Mods
    Respuestas: 9
    Último mensaje: 16-Sep-2011, 22:29
  3. Creacion de mapas
    Por luisvk en el foro Utilidades y Mods
    Respuestas: 2
    Último mensaje: 17-Jun-2011, 23:57

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
Back to Top