Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

[Criação de Mods] Guia Para Iniciantes


juniorlink62
 Compartilhar

Posts Recomendados

criamodtop.png

Introdução

Este tutorial ensinará a você, como criar MODs para minecraft, usando como base o ModLoader

Antes de mais nada, vamos a explicação do ModLoader. O ModLoader é um mod que suporta/ajuda outros mods. Sem ele, a criação de mods fica limitada e mais complicada, além de impedir a instalação de outros mods. Por isso ele é tão importante, ele permite uma maior liberdade e dinamismo na hora de criar mods.

Programas Necessários

-

É necessário se cadastrar para acessar o conteúdo.
(Programa responsável pela descompilação e compilação dos arquivos)

- ModLoader(Mod suporte)

- Minecraft(Obvio)

-

É necessário se cadastrar para acessar o conteúdo.
(Suporte ao MCP)

Instalando o MCP

O MCP é a ferramenta que usaremos para descompilar nosso minecraft.

Para instala-lo você deve entrar no site citado acima(Veja "Programas Necessários") e procurar a parte de "Releases", procure a versão mais recente e baixe-a(Ela deve estar com um nome no estilo "mcp50.zip"). Após baixar, crie uma pasta com o nome de MCP em algum lugar de seu PC e extraia os arquivos dentro dela(Use um programa descompactador como o WinRar ou 7Zip).

 

Pronto, está instalado. Mas ainda não acabou. Primeiro devemos configurar nosso JDK.

Baixe o JDK e instale-o(Link acima).

Depois de instalado vamos a parte complicada. Essa parte é diferente para cada sistema operacional, vou ensinar aqui usando o Windows 7 como exemplo.

Nessa parte, iremos definir a variável PATH ao nosso computador. Mesmo eu, não entendo bem o porque disso, só saiba que é importante. Primeiro de tudo, saiba onde está instalado seu JDK. Ao saber disso, você deverá clicar com o botão direito do mouse sobre o "Computador/Meu Computador", escolher "Propriedades", uma janela se abri-rá. No canto superior esquerdo haverá um menu, clique em "Configurações avançadas do sistema". Nessa nova janela, clique na aba "Avançado" e então na parte inferior dela, clique em "Variáveis de Ambiente..." uma nova janela se abre. Nessa nova janela você verá dois campos, a "Variáveis de usuário para (nome do usuário)" e a "Variáveis do sistema". Em "Variáveis do Sistema" procure a variável de nome "Path", caso não exista, clique em "Novo...", caso exista, de um duplo clique nela. Nessa caixa que se abri-rá, certifique-se que o nome da variável seja "Path" e o valor da variável, seja a pasta bin do JDK. Normalmente o endereço da pasta é algo semelhante a "C:\Program Files\Java\jdk1.6.0_24\bin" ou "C:\Program Files\Java\jre6\bin".

 

Pronto, salve tudo e concluímos a parte mais difícil do guia.

Descompilação

A descompilação é parte importante do processo de modificação. Ela é quem permitirá que a gente veja os arquivos de uma forma compreensível. Compilar um programa é traduzi-lo para a linguagem do computador, ou seja, programas de compilação são como tradutores entre as linguagens. Não vou me meter a explicar melhor isso, só saiba que é necessário.

 

Para descompilar siga esses passos:

- Instale o MCP em uma pasta do seu PC

- Localize sua pasta .minecraft

- Caso você tenha instalado mods em seu minecraft, remova toda a pasta e de force update(Certifique-se que ele não esteja alterado)

- Depois de certificar-se que seu minecraft está limpo, instale o ModLoader

- Copie as pastas "bin" e "resources" e as cole na pasta "jars" dentro do diretório onde você instalou o MCP

- No diretório do MCP, haverá um arquivo de nome "decompile.bat" execute-o e aguarde a conclusão

Entendendo os Códigos

A linguagem utilizada pelo minecraft é o java. Java é uma das linguagens mais simples e se assemelha muito a C. Não vou ensinar Java por completo. Vou apenas ensinar como alterar algumas coisas e criar outras. Para encontrar os arquivos descompilados do minecraft, após descompila-los, vá em "MCP\src\minecraft\net\minecraft\src".

 

Vamos a um código básico do bloco mais simples do jogo. A Dirt(BlockDirt.java):

É necessário se cadastrar para acessar o conteúdo.

Aqui temos o código. Pode parecer meio complicado mas não é. Vamos separar os códigos pelas suas funções:

É necessário se cadastrar para acessar o conteúdo.

Esta linha define a biblioteca de onde será tirada a informação dos códigos. Basicamente pense assim. Seu computador fala Polonês, o programa fala Francês e você fala Japonês. Essa biblioteca é o que permitirá ao programa, compreender o que você escreve, e a compilação permitirá o computador entender o que o programa fala. No caso do minecraft, utiliza-se apenas a "net.minecraft.src"(Mods mais avançados podem usar outras packages, mas não vamos falar sobre isso).

É necessário se cadastrar para acessar o conteúdo.

Essa parte é importante. Ela é a geradora da classe. No caso aqui, estamos dizendo ao programa que a classe é "Publica", se chama "BlockDirt" e é uma Extensão/Filha da classe "Block".

Vou explicar melhor.

É necessário se cadastrar para acessar o conteúdo.

Essa parte indica ao programa que o arquivo pode ser acessado por qualquer um. É graças a isso que Endermans podem alterar a Dirt de lugar. Vamos falar mais sobre isso na próxima parte.

É necessário se cadastrar para acessar o conteúdo.

Essa parte deve ser colocada em cada arquivo que você fizer. Ele indica que o arquivo é uma class. As classes são conjuntos de códigos que são lidos e executados pelo programa. O programa gera copias dessa class sempre que ela é utilizada, ou seja, cada bloco do jogo é uma cópia dessa class. Caso você altere essa class, suas cópias também são alteradas. Essas cópias em linguagem de programação são chamadas de instâncias.

É necessário se cadastrar para acessar o conteúdo.

Essa parte define o nome da class. Esse nome é o que permitirá ao programa, encontrar a classe especificada.

É necessário se cadastrar para acessar o conteúdo.

Essa parte é importante. Como o nome sugere, ele faz com que essa classe seja um extensão de outra classe. Em outras palavras, a classe "BlockDirt" irá copiar a classe "Block" e irá inserir seu próprio código nela.

É necessário se cadastrar para acessar o conteúdo.

Como citado a cima, este é o nome da classe que será estendida. Em mods feitos usando modloader, agente altera essa parte para "Basemod". Explicarei melhor mais a frente.

É necessário se cadastrar para acessar o conteúdo.

Pode parecer pouco importante, mas esta chave é a alma de todo script. Ela indica quando um código começa e quando termina. Ele é quem define a função do bloco Dirt. Chaves podem existir dentro de outras chaves, mas sempre é necessário haver pelo menos um par. As chaves irão definir as funções e até as funções de funções.

É necessário se cadastrar para acessar o conteúdo.

Está é a função do bloco Dirt, mas para explica-la melhor, vamos separa-la:

É necessário se cadastrar para acessar o conteúdo.

Essa parte, assim como na definição da classe, define quem poderá acessar essa função. Ela é chamada de Permissão. Vamos ver os tipos de permissões:

É necessário se cadastrar para acessar o conteúdo.

Qualquer um pode acessar esta função. Independente de onde esteja ou quem seja, pode acessar livremente essa parte. É muito importante para a geração de coisas principais do jogo. Blocos gerados automaticamente pelo mundo, utilizam essa permissão, já que devem ser acessíveis tanto ao player, quanto a monstros e a própria geração do mundo.

É necessário se cadastrar para acessar o conteúdo.

Uma função mais fechada. Somente algumas coisas podem acessa-la. Essas coisas são, a própria classe, a package a qual pertence e suas sub-classes. Sub-classes ou classes filhas, são classes estendidas a partir dessa classe. Exemplo: A classe BlockDirt é uma sub-classe da classe Block.

É necessário se cadastrar para acessar o conteúdo.

Essa permissão é bem fechada. Essa função não pode ser chamada por qualquer um, somente se estiver dentro da própria classe. É uma função bem especifica pois caso estivesse sendo usada na "BlockDirt", essa função somente poderia ser chamada pela "BlockDirt", o que poderia causar um transtorno(Ou não).

É necessário se cadastrar para acessar o conteúdo.

A semelhança entre os nomes não é atoa. O nome repetido aqui, indica que a função é a função principal da classe, ou seja, será executada sempre que o bloco for gerado(Uma nova instância for gerada).

É necessário se cadastrar para acessar o conteúdo.

Esta é a parte mais complicada de se entender, então preste atenção. O que temos aqui é um Input ou Entrada. Os inputs são utilizados para inserir dados em uma função. Nesse casso, temos dois Inputs que estão separados por uma virgula. Cada input consiste de um identificador, no caso aqui, é o "int", que pode ser lido como "inteiro". Logo sendo, apenas numero inteiros são aceitos. Identificadores são importantes pois dizem ao programa quais dados são aceitos. Como estamos usando "int", apenas podemos entrar com números inteiros, ou seja, sem casas decimais. Isso também quer dizer que letras não são aceitas. Após o identificador, temos uma letra(i ou j), essa letra é a variavel. Ela é como uma gaveta, onde você pode guardar um valor. Ela é chamada de variável, pois pode variar conforme a vontade do usuário ou programa. Elas são importantes para armazenar informações e/ou utiliza-las em funções posteriores. Por exemplo, se eu definir a variável "i" com o inteiro "32", fazendo "i=i+8" em uma função posterior, eu definiria essa variável como "40".

É necessário se cadastrar para acessar o conteúdo.

Uma nova linha, novos códigos. Essa não precisa ser separada para se entender. Essa é a linha de código que será executada quando a função anterior for chamada. Esse código aqui serve para chamar nossa super-classe. Lembra das sub-classes? Super-classes são o oposto, em vez de estenderem algo, elas são estendidas. O que nós fazemos aqui é chamar a função principal da super-classe "Block" que é estendida pela classe "BlockDirt" e damos a ela 3 variáveis. As variáveis i e j vistas antes e uma nova, a variável "Material.ground". Pelo o que se nota, a variável se refere a um material e a algo sobre solo. Mas note que existe um ponto entre elas. Isso server para indicar ao computador onde procurar a informação. No caso, dizemos para ele procurar por "ground" em "Material". Da mesma forma, é possível pedir que ela procure por algo em "BlockDirt". Para saber ao que essa variável se refere, você pode ir no arquivo "Material.java" dentro na pasta "src" e procurar por "ground".

 

Por fim, devemos notar duas coisas importantes nesse script. A presença de ";" e "{}", ou, Ponto e Virgula e Chaves. A função da chave já foi previamente explicada, porém vou tentar explicar melhor.

As chaves indicam onde uma função começa e onde ela termina. Ao o computador notar uma chave de abertura, ele procura a chave de fechamento e lé todo o código dentro delas, em conjunto. Ao chegar na chave de fechamento, o script é finalizado, ou seja, o código para de ser executado. Certas funções podem gerar múltiplas opções, loopings ou até enviar para outras funções. Mas isso veremos somente mais a frente.

Por fim, devemos notar os "ponto e virgulas". Eles são tão importante quando as chaves, pois indicam ao computador, quando uma linha de código se encerra. Basicamente, o ponto e virgula indicam para o computador, que ele deve ler toda aquela linha e então ir para a próxima. Funcionam como as chaves, porém são usadas em códigos. Isso é necessário porque o computador não lé linha por linha. Para ele, tudo o que está escrito é uma linha só. Tanto é, que se você escrever todo seu script em uma linha só, ele compreenderá normalmente. Porém, ponto e virgula só deve ser usado em linhas de código. Funções não utilizam ponto e virgula, pois elas são abertas e fechadas por chaves. Preste atenção a isso.

Este guia ainda está em construção.

Proxima expansão do Guia para criação de mods mais elaborados.

Eu peço a todos que ajudei com esse topico que agradeçam pois perdi 3 horas para faze-lo.

Creditos:STulio,juniorlink62

7yGTbiS.jpg

Link para o comentário
Compartilhar em outros sites

Lembrando que isso ai é o básico do básico '-' Se quiser fazer um mod avançado, além de ter que estudar o minecraft, terá que estudar bastante a linguagem de Java, então, calma ai antes de achar que vai começar fazendo um Mo'Creatures com esse tutorial ai.

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.