Criando um mod para Minecraft [Java]

Discussão em 'JAVA' iniciado por bragaman, 19 Nov, 2011.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. bragaman

    bragaman Membro

    Registro:
    19 Ago, 2009
    Posts:
    69
    Curtidas:
    0
    O meu computador está em inglês, ou seja, algumas coisas podem estar diferentes.

    O que você vai aprender hoje:

    >>> Configurar o MCP
    >>> Criar o seu primeiro bloco (SuperBlock)
    >>> Faze-lo compativel com o ModLoader


    Configurando o MCP
    Esta parte é só para windows, mas de qualquer jeito, o resto do tutorial é para qualquer sistema operacional.

    >> Clique em "Iniciar", Clique com o botão direito no "Meu Computador" e clique em "Propiedades". Clique em configurações avançadas.

    >> Clique em "Environmental variables" (Não sei traduzir isso)

    >> Tem uma variável "PATH" no topo? O valor dela é "C:\Program Files\Java\jdk1.6.0_24\bin"? Se SIM pode pular a parte do tutorial que tem as folhas.

    Se você ainda está lendo esta parte é porque a resposta das perguntas acima é NÃO.

    Baixe o JAVA JDK SE: [Você precisa LOGAR ou REGISTRAR-SE para ver os links]

    Instale o arquivo baixado!

    Abra novamente o "Environmental variables", Clique em "novo" e digite "Path", o valor é "C:\Program Files\Java\jdk1.6.0_24\bin"

    Pronto você acabou de configurar o JDK :angel:

    Se você teve algum problema com esse tutorial, assista esse [Você precisa LOGAR ou REGISTRAR-SE para ver os links] (Inglês)


    Agora você ja tem o JDK, que é importante para qualquer programação em JAVA, mas ainda não tem o MCP, essa parte é rapida.

    Vá até este link: [Você precisa LOGAR ou REGISTRAR-SE para ver os links] (Em inglês)
    E baixe a versão mais nova do MCP

    Quando você ja tiver o arquivo ZIP, extraia ele para uma pasta chamada MCP na Desktop. Dentro, devem haver varias pastas e arquivos .bat

    Você deve colocar os arquivos do minecraft dentro da pasta do MCP, para isso siga esses passos:

    >> Abra o "Meu Computador"

    >> Na barra de endereços digite "%appdata%"

    >> Abra ".minecraft"

    É importante que você tenha uma versão do minecraft sem mods, caso tenha, delete a pasta ".minecraft" e abra o Minecraft.exe.

    >> Copie a pasta "bin" e a pasta "resources" para dentro da pasta "jars" que está dendro da pasta "MCP" na sua Desktop

    >> Baixe um "Minecraft_server" também sem mods e cole na pasta "jar"

    >> Abra o "Decompile.bat" dentro da pasta "Jars"


    Se você fez tudo certo você não deve ter nenhum erro ao rodar o "Decompile.bat"

    Abra os bats nesta ordem:

    1. Decompile
    2. Recompile
    3. StartClient
    4. Reobfuscate

    Se na pasta reobf tiver algum arquivo é porque funcionou!

    Por ultimo, baixe este programa: [Você precisa LOGAR ou REGISTRAR-SE para ver os links]

    Agora vamos para a programação:

    Crindo o seu primeiro bloco:

    Agora nós vamos criar o... Super Bloco!!! (SuperBlock)
    É basicamente, um bloco que brilha, é semi-transparente e tem uma propriedade estranha, ele te acelera a uma velocidade extrema!!!!

    Vamos fazer todas estas coisas:
    -Criar um bloco
    -Mudar suas propiedades
    -Alterar sua textura
    -Fazer um nome para ele dentro do jogo
    -Fazer uma receita

    Vamos começar com... fazer o bloco:

    >>> Abra seu editor de textos
    >>> Clique em "Abrir arquivo"
    >>> Vá até "MCP\src\minecraft\net\minecraft\src"
    >>> Abra "BlocDirt.java"


    Vamos dar uma olhada nos códigos:

    Código:
    package net.minecraft.src;  \\Apenas diz onde ele está
    
    public class BlockDirt extends Block  \\Aqui ele diz o que o programa faz
    {                                                   
                                                        
                                                       
        protected BlockDirt(int i, int j)     \\int i, é a id do item, e int j, é o lugar da textura
        {
            super(i, j, Material.ground);      
        }
    }
    
    Isto nem está tão ruim, poucas linhas. Você provavelmente não está intendendo nada, TUDO BEM!!! Eu vou explicar:

    Agora o que você tem que fazer é criar sua própria class

    Então no seu editor de texto clique em "Novo"

    E cole isto:

    Código:
    package net.minecraft.src;
    // Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
    // Jad home page: http://www.kpdus.com/jad.html
    // Decompiler options: packimports(3) braces deadcode 
    
    
    public class BlockSuperBlock extends Block
    {
    
        protected BlockSuperBlock(int i, int j)
        {
            super(i, j, Material.ground);
        }
    }
    
    Eu só mudei onde tinha "Dirt" Para "SuperBlock"

    Salve como "BlockSuperBlock.java"

    Nem foi tão difícil :p

    Mas, e agora, como mudamos as propriedades?
    Abra o "Block.java" que esta na mesma pasta do "BlockDirt.java"

    Um pouco maior não? XD

    Vá abaixando até chegar em algo parecido com isso:
    Código:
    public static final Block dirt;
    Cole logo abaixo isso:
    Código:
    public static final Block SuperBlock;
    Isso só diz ao computador "Ei eu existo e estou aqui!!!!!"
    E você ainda não sabe como mudar as propriedades... * desça mais um pouco *, desça até achar algo semelhante a isso:

    Código:
    dirt = (new BlockDirt(3, 2)).setHardness(0.5F).setStepSound(soundGravelFootstep).setBlockName("dirt");
    Bom, vamos adicionar nosso bloco ao final da lista:
    Código:
    SuperBlock = (new BlockSuperBlock(131, 2)).setHardness(0.5F).setStepSound(soundGravelFootstep).setBlockName("dirt");
    Mas o que são esses dois números, (3, 2)?
    São duas variáveis
    3= O id do bloco, não podem existir dois blocos com o mesmo id
    2= A textura do bloco

    Se você abrir o "terrain.jpg" você vai ver:
    [​IMG]

    O primeiro quadrado da esquerda é o numero 0 o proximo é o 2 e assim vai...

    Você vai precisar editar esta imagem para fazer sua textura

    Não use a imagem acima, é velha e está desatualizada, usei apenas como exemplo

    Mas e agora, o que são todos aqueles ".setAlgumacoisa()"?
    Bom sinta-se livra para edita-los
    Depois de olhar o código das tochas achei um ".setLightValue()", adicione no seu código e coloque o valor como (1.0F), quanto maior, mais luz.
    O seu código deve se parecer com esse:
    Código:
    SuperBlock = (new BlockSuperBlock(100, 39)).setHardness(1.5F).setLightValue(1.0F).setLightOpacity(3).setStepSound(soundGravelFootstep).setBlockName("SuperBlock");
    Mas, depois de analisar o código do gelo, vemos isto "slipperiness = 0.98F;" isto é o que importa, coloque para (5.0F) e você irá praticamente voar.

    Agora vamos testar... mas como vamos conseguir nosso novo bloco?

    Precisamos adicionar uma receita, abra o "craftingmanager.java"
    Procure algo semelhante a isto:
    Código:
    addRecipe(new ItemStack(Item.paper, 3), new Object[] {
            "###", Character.valueOf('#'), Item.reed
    });
    E logo abaixo coloque isto:

    Código:
    addRecipe(new ItemStack(Block.SuperBlock, 16), new Object[] {
            "x", Character.valueOf('x'), Block.dirt
    });
    A sua receita é, um bloco de terra em qualquer lugar da grid vai gerar 16 SuperBlocks

    Salve tudo

    Agora vamos testar:

    Abra o "reobfuscate.bat" na pasta MCP
    Abra o "startclient.bat"

    Mas o seu bloco ainda está sem nome! Que medo!

    Não tem problema, nós resolvemos!

    Abra: C:\Documents and Settings\Owner\Desktop\MCP\temp\minecraft\lang
    E edite: en_US.lang usando o notepad++

    Ache algo semelhante a isto:
    Código:
    tile.dirt.name=Dirt
    tile.dirt.desc=
    E cole logo em baixo isto:

    Código:
    tile.dirt.name=SuperBlock
    tile.dirt.desc=
    [Você precisa LOGAR ou REGISTRAR-SE para ver os links]

    Fazendo ele compatível com ModLoader:

    O nosso bloco é incrivel... mas não é compativel com modloader, é pior que quando ele ainda estava sem nome!

    Bem, vamos começar.

    -Baixe o ModLoader - [Você precisa LOGAR ou REGISTRAR-SE para ver os links]

    -Abra "MCP\jars\bin" e abra o "Minecraft.jar" com o winrar.

    -Cole os arquivos os modloader lá dentro

    -Isso é tudo que você tem que fazer

    Abra o "BlockSuperBlock"
    O código atual é este:
    Código:
        package net.minecraft.src;
        // Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
        // Jad home page: http://www.kpdus.com/jad.html
        // Decompiler options: packimports(3) braces deadcode
    
    
        public class BlockSuperBlock extends Block
        {
    
            protected BlockSuperBlock(int i, int j)
            {
                super(i, j, Material.ground);
                slipperiness = 0.1F;
            }
        }
    Nós vamos adicionar isso tudo aqui:

    Código:
      package net.minecraft.src;
    
        public class mod_OurMods extends BaseMod  //Isto estende o BaseMod, parte do modloader
        {
           public static final Block SuperBlock;  
           
           static
           {
              SuperBlock = (new Block(100, ModLoader.addOverride("/terrain.png", "/yournewfolder/SuperBlock.png"), Material.rock)).setHardness(1.5F).setLightValue(1.0F).setStepSound(Block.soundGravelFootstep).setBlockName("SuperBlock");
           }                     //Estas são as propriedades, não parecem familiares?
           
           public mod_OurMods()
           {
              ModLoader.AddName(SuperBlock, "Super Block");  //Este é o nome dentro do jogo
              
              ModLoader.RegisterBlock(SuperBlock);  //Não pergunte, apenas faça
              
              ModLoader.AddRecipe(new ItemStack(SuperBlock, 1), new Object[] {
              "x", Character.valueOf('x'), Block.dirt
           });                                                            //A receita
           }
           
           
           public String Version()
           {
              return "1.5_01";
           }
        }
    Bem, está tudo resumido aqui então voc~e tera de tirar o que você colocou nos outros arquivos. Você terá que renomear o arquivo para "mod_SuperBlock.java"
    E... olhem para esse código:
    Código:
    SuperBlock = (new BlockSuperBlock(100, ModLoader.addOverride("/terrain.png", "/pasta_com_o_nome_que_você_quiser/SuperBlock.png")
    Você não terá mais que editar o "terain.jpg", agora, dentro do minecraft.jar você terá que criar uma pasta com o nome que você quiser e colocar o arquivo da textura, ele deve ter 16x16 pixels e ser .PNG.

    Agora clique em "recompile.bat" e em "reobfuscate.bat" e depois em "startclient.bat"
    e teste seu mod.

    Para poder passar para galera, comprima os arquivos da pasta "reobf" e mande pra todo mundo.

    Lembrando, caso faça algo legal, envie para min, eu quero ver XD



    Ajudei? Clique em reputação XD!!!
     
  2. [w]00t*

    [w]00t* Pardim/Gamer Membro

    Registro:
    21 Abr, 2011
    Posts:
    55
    Curtidas:
    0
    Bom tópico, gostei muito, só queria saber se tem como vc colocar um tutorial pra fazer um jogo simples em java, tipo tetris, só pra eu ver como é usar a biblioteca de interface,
    se´ra que tem como vc fazer um?
    Abraçooss
     
  3. CarlosPessoa

    CarlosPessoa Membro

    Registro:
    30 Ago, 2011
    Posts:
    2
    Curtidas:
    0
    Copiado -Rep.
     
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página

Share
Stylium Setting
Choose Your Layout Style
Choose Title Font
Choose Your Color Skin
Patterns for Boxed Version
Images for Boxed Version