[1.4.6][Forge][Tutorial][WINDOWS]Creare un blocco!
  • Poll choices
    Statistics
    Votes
  • Ottimo
    60.00%
    3
  • Come ti è sembrato il tutorial?
    20.00%
    1
  • Fatto Bene
    20.00%
    1
  • Abbastanza fatto bene
    0.00%
    0
  • Pessimo
    0.00%
    0
  • Fatto Male
    0.00%
    0
  • Abbastanza fatto male
    0.00%
    0
Guests cannot vote (Voters: 5)

[1.4.6][Forge][Tutorial][WINDOWS]Creare un blocco!

« Older   Newer »
 
  Share  
.
  1.     +1   Like  
     
    .
    Avatar

    Hacker Esperto

    Group
    Member
    Posts
    2,898
    Likes
    +139

    Status
    Offline
    Ciao a tutti cari amici di ohr e oggi vedremo assieme come creare un blocco nel metodo GahBry!
    Preoccupati che vi crasho Minecraft vero?
    Mannò! Questo non succederà, posso assicurarvelo, basta che seguiate attentamente alla L E T T E R A quello che scrivo!
    Cooooooominciamo!

    Fase 1 (Denominata anche "Scaricarsi 230 Mega di occorrente"):
    Come potrete capire dal titolo dovremo scaricarci l'occorrente!
    Ecco qui sotto riportata la lista:
    1. JAVA JDK 7 64/32 Bit (Link cliccando qui)
    2. Eclipse Classic 64/32 Bit (Link cliccando qui)
    3. Minecraft Coder Pack 7.25 (Link cliccando qui)
    4. Minecraft 1.4.6
    5. Minecraft Server 1.4.6 (Link cliccando qui)
    6. Minecraft Forge Source (Link cliccando qui)
    6. Voglia, tempo e concentrazione.

    Fase 2 (Denominata anche "Installazzione dei 230 Mega di occorrente"):
    1. Installiamo JAVA JDK 7 e non dite "Ma io gioco tranquillamente a Minecraft non lo reinstallo". E dico NO perchè il JAVA che usa Minecraft si chiama JAVA JRE e non JAVA JDK, quindi sù a installarlo!
    2. Riavviare pc
    3. Estraiamo Eclipse su una cartella sul desktop! Sara il programma con cui scriveremo la mod!
    4. Installiamo MCP! ATTENZIONE, WARNING! Per installare l'MCP Creiamo una cartella in C: chiamata mcp. Una volta creata metteremo lo zip scaricato li dentro e cliccheremo tasto destro su di esso e ci appariranno varie opzioni, noi cliccheremo su Estrai qui. Una volta finito il processo di estrazione passiamo al passo 5.
    5. Una volta fatto correttamente il passo 4 ci dirigiamo su C:mcpjars . Qui dentro dovremo mettere il Minecraft Server 1.4.6 scaricato. Poi andiamo nella nostra .minecraft e copiamo le cartelle Resource e Bin e le incolliamo dentro C:mcpjars

    Fase 3 (Denominata anche "2 Ore con 512Mb di ram"):
    1. Andiamo su C:mcp e facciamo doppio click sul file decompile.bat e attendiamo che abbia finito... Sono circa 480 Secondi con una Cpu a due core da 2.4Ghrz a core e 3GB Di ram, con tutti i programmi chiusi. Come lo sò? Quello che vi ho descritto è il mio pc
    2. Una volta finito quello siamo pronti ad installare il Minecraft Forge Source (Che è stato gentilmente ricaricato da me e.e)... Estraiamo l'archivio forge.rar, ci ritroveremo una cartella chiamata forge... Questa deve essere messa in C:mcp ,ok?
    3. Una volta messa la cartella entriamo dentro e clicchiamo su install.cmd.. Ok bravi avete indovinato! Altri 350 secondi di attesa Comunque aspettiamo che finisca e...
    4. Siamo pronti ad avviare Eclipse! Lasciamolo un pò avviare e a un certo punto ci chiederà un percorso. Noi ci scriviamo C:mcpeclipse ,ok?

    Fase 4 (Denominata "lo spavento iniziale"):
    1. Ora vedrete tante di quelle cose anormali per un nabbo nella programmazione u.u Ok nel menù a destra ci saranno due voci, Minecraft e Minecraft Server, se non c'è minecraft server va bene lo stesso. DoppioClicchiamo su Minecraft.
    2. Facile sin qui vero? Beh ora dovrete mettere alla prova tutte le vostre capacità DoppioCliccando su src... Ok ora facciamo tasto destro sempre su src, poi sposteremo il cursore su new e cliccheremo package! Ok ora ci chiedera come vogliamo chiamarlo... Io lo ho chiamato mod.ohr ,ma possiamo chiamarlo come piu ci piace, penso si era capito!
    3. Ok ora facciamo tasto destro su mod.ohr o sul nome del nostro pacchetto e creaiamo una nuova Class. TastoDestro->New->Class

    Fase 5 (Denominata "Minghia ci skrivo kua dentro xD?")
    1. Una volta creata la nuova classe vedremo una serie di righe gia fatte.. Le cancelliamo tutte e cominciamo a scrivere...
    2. Ho cambiato idea non scriviamo, salvate tutto su Eclipse e ora dovrete farvi la mappa con tutti gli sprite che volete usare per il blocco
    3. Come? Come questa! http://postimage.org/image/3x9q0c8jv/ Ovverp i blocchi in 16x16 devono andare in una singola immagine e tutti affiancati. Una volta creata mettiamo l'immagine nella cartella C:mcptempbinminecraft
    3b. Io la ho chiamata Spritemap.png
    4. Riaprite Eclipse
    5. Riandate a quella classe e scrivete il seguente codice!
    CODICE
    package (NOMEDELVOSTROPACCHETTO);

    import cpw.*;
    import cpw.mods.*;
    import cpw.mods.fml.*;
    import cpw.mods.fml.client.*;
    import cpw.mods.fml.client.modloader.*;
    import cpw.mods.fml.client.registry.*;
    import cpw.mods.fml.common.*;
    import cpw.mods.fml.common.asm.*;
    import cpw.mods.fml.common.asm.transformers.*;
    import cpw.mods.fml.common.discovery.*;
    import cpw.mods.fml.common.discovery.asm.*;
    import cpw.mods.fml.common.event.*;
    import cpw.mods.fml.common.functions.*;
    import cpw.mods.fml.common.modloader.*;
    import cpw.mods.fml.common.network.*;
    import cpw.mods.fml.common.registry.*;
    import cpw.mods.fml.common.toposort.*;
    import cpw.mods.fml.common.versioning.*;
    import cpw.mods.fml.relauncher.*;
    import cpw.mods.fml.server.*;
    import ibxm.*;
    import net.*;
    import net.minecraft.*;
    import net.minecraft.block.*;
    import net.minecraft.block.material.*;
    import net.minecraft.client.*;
    import net.minecraft.client.audio.*;
    import net.minecraft.client.entity.*;
    import net.minecraft.client.gui.*;
    import net.minecraft.client.gui.achievement.*;
    import net.minecraft.client.gui.inventory.*;
    import net.minecraft.client.model.*;
    import net.minecraft.client.multiplayer.*;
    import net.minecraft.client.particle.*;
    import net.minecraft.client.renderer.*;
    import net.minecraft.client.renderer.culling.*;
    import net.minecraft.client.renderer.entity.*;
    import net.minecraft.client.renderer.texturefx.*;
    import net.minecraft.client.renderer.tileentity.*;
    import net.minecraft.client.settings.*;
    import net.minecraft.client.texturepacks.*;
    import net.minecraft.command.*;
    import net.minecraft.crash.*;
    import net.minecraft.creativetab.*;
    import net.minecraft.dispenser.*;
    import net.minecraft.enchantment.*;
    import net.minecraft.entity.*;
    import net.minecraft.entity.ai.*;
    import net.minecraft.entity.boss.*;
    import net.minecraft.entity.effect.*;
    import net.minecraft.entity.item.*;
    import net.minecraft.entity.monster.*;
    import net.minecraft.entity.passive.*;
    import net.minecraft.entity.player.*;
    import net.minecraft.entity.projectile.*;
    import net.minecraft.inventory.*;
    import net.minecraft.item.*;
    import net.minecraft.item.crafting.*;
    import net.minecraft.nbt.*;
    import net.minecraft.network.*;
    import net.minecraft.network.packet.*;
    import net.minecraft.network.rcon.*;
    import net.minecraft.pathfinding.*;
    import net.minecraft.potion.*;
    import net.minecraft.profiler.*;
    import net.minecraft.server.*;
    import net.minecraft.server.dedicated.*;
    import net.minecraft.server.gui.*;
    import net.minecraft.server.integrated.*;
    import net.minecraft.server.management.*;
    import net.minecraft.src.*;
    import net.minecraft.stats.*;
    import net.minecraft.tileentity.*;
    import net.minecraft.util.*;
    import net.minecraft.village.*;
    import net.minecraft.world.*;
    import net.minecraft.world.biome.*;
    import net.minecraft.world.chunk.*;
    import net.minecraft.world.chunk.storage.*;
    import net.minecraft.world.demo.*;
    import net.minecraft.world.gen.*;
    import net.minecraft.world.gen.feature.*;
    import net.minecraft.world.gen.layer.*;
    import net.minecraft.world.gen.structure.*;
    import net.minecraft.world.storage.*;
    import net.minecraftforge.*;
    import net.minecraftforge.classloading.*;
    import net.minecraftforge.client.*;
    import net.minecraftforge.client.event.*;
    import net.minecraftforge.client.event.sound.*;
    import net.minecraftforge.common.*;
    import net.minecraftforge.event.*;
    import net.minecraftforge.event.entity.*;
    import net.minecraftforge.event.entity.item.*;
    import net.minecraftforge.event.entity.living.*;
    import net.minecraftforge.event.entity.minecart.*;
    import net.minecraftforge.event.entity.player.*;
    import net.minecraftforge.event.terraingen.*;
    import net.minecraftforge.event.world.*;
    import net.minecraftforge.liquids.*;
    import net.minecraftforge.oredict.*;
    import net.minecraftforge.transformers.*;
    import paulscode.*;
    import paulscode.sound.*;
    import paulscode.sound.codecs.*;

    import java.util.Random;

    public class NomeDellaClasse extends BaseMod{

    public NomeDellaClasse(){}

    public static Block(NomeDiRegistroDelBlocco (Io Scrivero XXX)) block;

    public void load(){

    ModLoader.registerBlock(block);
    ModLoader.addRecipe(new ItemStack(block, 1), new Object[]{
           "X1X", "345", "X7X", Character.valueOf('1'), new ItemStack(Block.stone, 1), Character.valueOf('3'), new ItemStack(Block.stone, 1), Character.valueOf('4'), new ItemStack(Block.stone, 1), Character.valueOf('5'), new ItemStack(Block.stone, 1), Character.valueOf('7'), new ItemStack(Block.stone, 1),
    });
    ModLoader.addName(block, "NomeDelBlocco");

    }
    public String getVersion(){
    return "VersioneDellaMod";
    }


    static{

    block = (BlockXXX)(new BlockXXX(155, 1).setHardness(4.0F)
    .setResistance(7.5F)
    .setLightValue(0.0F)
    .setBlockName("NomeDelBlocco")
    .setLightOpacity(0)
    .setStepSound(Block.soundStoneFootstep)
    .setCreativeTab(CreativeTabs.tabBlock) //Tabella Creativa del Materiale, .tabBlock=Blocchi .tabMisc=SecchioDiLava .tabCombat .tabTools .tabFood
    .setRequiresSelfNotify()
    );block.blockIndexInTexture=block.a1;
    block.setBlockBounds(0.0F,0.0F,0.0F,1.0F,1.0F,1.0F);

    }

    static class BlockXXX extends Block
    {

    int a1 = 0,a2 = 0,a3 = 0,a4 = 0,a5 = 0,a6 = 0;

    boolean red = false;





    protected BlockXXX(int i, int j)
    {
           super(i, j, Material.rock);
    a1 = 0;
    a2 = 0;
    a3 = 0;
    a4 = 0;
    a5 = 0;
    a6 = 0;

    }
    public boolean isPoweringTo(IBlockAccess blockAccess, int i, int j, int k, int l){
    return red;
    }
    public int getBlockTextureFromSide(int i){

    if (i == 0)
    return a1;

    else if (i == 1)
    return a2;

    else if (i == 2)
    return a3;

    else if (i == 3)
    return a4;

    else if (i == 4)
    return a5;

    else if (i == 5)
    return a6;

    else
    return a1;

    }

    public String getTextureFile(){return "/Spitemap.png";}
    public int getRenderType(){
    return 0;
    }
    public int tickRate()
    {
       return 10;
    }

    public int quantityDropped(Random par1Random){
    return 1;
    }

    public int idDropped(int par1, Random par2Random, int par3){
    return Block.stone.blockID;
    }
    }
    }


    Tadà! Avete creato il vostro blocco!
    Ecco il mio vero blocco!
    CODICE
    package net.minecraft.src;

    import cpw.*;
    import cpw.mods.*;
    import cpw.mods.fml.*;
    import cpw.mods.fml.client.*;
    import cpw.mods.fml.client.modloader.*;
    import cpw.mods.fml.client.registry.*;
    import cpw.mods.fml.common.*;
    import cpw.mods.fml.common.asm.*;
    import cpw.mods.fml.common.asm.transformers.*;
    import cpw.mods.fml.common.discovery.*;
    import cpw.mods.fml.common.discovery.asm.*;
    import cpw.mods.fml.common.event.*;
    import cpw.mods.fml.common.functions.*;
    import cpw.mods.fml.common.modloader.*;
    import cpw.mods.fml.common.network.*;
    import cpw.mods.fml.common.registry.*;
    import cpw.mods.fml.common.toposort.*;
    import cpw.mods.fml.common.versioning.*;
    import cpw.mods.fml.relauncher.*;
    import cpw.mods.fml.server.*;
    import ibxm.*;
    import net.*;
    import net.minecraft.*;
    import net.minecraft.block.*;
    import net.minecraft.block.material.*;
    import net.minecraft.client.*;
    import net.minecraft.client.audio.*;
    import net.minecraft.client.entity.*;
    import net.minecraft.client.gui.*;
    import net.minecraft.client.gui.achievement.*;
    import net.minecraft.client.gui.inventory.*;
    import net.minecraft.client.model.*;
    import net.minecraft.client.multiplayer.*;
    import net.minecraft.client.particle.*;
    import net.minecraft.client.renderer.*;
    import net.minecraft.client.renderer.culling.*;
    import net.minecraft.client.renderer.entity.*;
    import net.minecraft.client.renderer.texturefx.*;
    import net.minecraft.client.renderer.tileentity.*;
    import net.minecraft.client.settings.*;
    import net.minecraft.client.texturepacks.*;
    import net.minecraft.command.*;
    import net.minecraft.crash.*;
    import net.minecraft.creativetab.*;
    import net.minecraft.dispenser.*;
    import net.minecraft.enchantment.*;
    import net.minecraft.entity.*;
    import net.minecraft.entity.ai.*;
    import net.minecraft.entity.boss.*;
    import net.minecraft.entity.effect.*;
    import net.minecraft.entity.item.*;
    import net.minecraft.entity.monster.*;
    import net.minecraft.entity.passive.*;
    import net.minecraft.entity.player.*;
    import net.minecraft.entity.projectile.*;
    import net.minecraft.inventory.*;
    import net.minecraft.item.*;
    import net.minecraft.item.crafting.*;
    import net.minecraft.nbt.*;
    import net.minecraft.network.*;
    import net.minecraft.network.packet.*;
    import net.minecraft.network.rcon.*;
    import net.minecraft.pathfinding.*;
    import net.minecraft.potion.*;
    import net.minecraft.profiler.*;
    import net.minecraft.server.*;
    import net.minecraft.server.dedicated.*;
    import net.minecraft.server.gui.*;
    import net.minecraft.server.integrated.*;
    import net.minecraft.server.management.*;
    import net.minecraft.src.*;
    import net.minecraft.stats.*;
    import net.minecraft.tileentity.*;
    import net.minecraft.util.*;
    import net.minecraft.village.*;
    import net.minecraft.world.*;
    import net.minecraft.world.biome.*;
    import net.minecraft.world.chunk.*;
    import net.minecraft.world.chunk.storage.*;
    import net.minecraft.world.demo.*;
    import net.minecraft.world.gen.*;
    import net.minecraft.world.gen.feature.*;
    import net.minecraft.world.gen.layer.*;
    import net.minecraft.world.gen.structure.*;
    import net.minecraft.world.storage.*;
    import net.minecraftforge.*;
    import net.minecraftforge.classloading.*;
    import net.minecraftforge.client.*;
    import net.minecraftforge.client.event.*;
    import net.minecraftforge.client.event.sound.*;
    import net.minecraftforge.common.*;
    import net.minecraftforge.event.*;
    import net.minecraftforge.event.entity.*;
    import net.minecraftforge.event.entity.item.*;
    import net.minecraftforge.event.entity.living.*;
    import net.minecraftforge.event.entity.minecart.*;
    import net.minecraftforge.event.entity.player.*;
    import net.minecraftforge.event.terraingen.*;
    import net.minecraftforge.event.world.*;
    import net.minecraftforge.liquids.*;
    import net.minecraftforge.oredict.*;
    import net.minecraftforge.transformers.*;
    import paulscode.*;
    import paulscode.sound.*;
    import paulscode.sound.codecs.*;

    import java.util.Random;

    public class mod_oSBlock extends BaseMod{

    public mod_oSBlock(){}

    public static BlockOSBlock block;

    public void load(){

    ModLoader.registerBlock(block);
    ModLoader.addRecipe(new ItemStack(block, 1), new Object[]{
           "X1X", "345", "X7X", Character.valueOf('1'), new ItemStack(Block.stone, 1), Character.valueOf('3'), new ItemStack(Block.stone, 1), Character.valueOf('4'), new ItemStack(Block.stone, 1), Character.valueOf('5'), new ItemStack(Block.stone, 1), Character.valueOf('7'), new ItemStack(Block.stone, 1),
    });
    ModLoader.addName(block, "OHRBlock");

    }
    public String getVersion(){
    return "1.0";
    }


    static{

    block = (BlockOSBlock)(new BlockOSBlock(155, 1).setHardness(4.0F)
    .setResistance(7.5F)
    .setLightValue(0.0F)
    .setBlockName("OHRBlock")
    .setLightOpacity(0)
    .setStepSound(Block.soundStoneFootstep)
    .setCreativeTab(CreativeTabs.tabBlock)
    .setRequiresSelfNotify()
    );block.blockIndexInTexture=block.a1;
    block.setBlockBounds(0.0F,0.0F,0.0F,1.0F,1.0F,1.0F);

    }

    static class BlockOSBlock extends Block
    {

    int a1 = 0,a2 = 0,a3 = 0,a4 = 0,a5 = 0,a6 = 0;

    boolean red = false;





    protected BlockOSBlock(int i, int j)
    {
           super(i, j, Material.rock);
    a1 = 0;
    a2 = 0;
    a3 = 0;
    a4 = 0;
    a5 = 0;
    a6 = 0;

    }
    public boolean isPoweringTo(IBlockAccess blockAccess, int i, int j, int k, int l){
    return red;
    }
    public int getBlockTextureFromSide(int i){

    if (i == 0)
    return a1;

    else if (i == 1)
    return a2;

    else if (i == 2)
    return a3;

    else if (i == 3)
    return a4;

    else if (i == 4)
    return a5;

    else if (i == 5)
    return a6;

    else
    return a1;

    }

    public String getTextureFile(){return "/Spitemap.png";}
    public int getRenderType(){
    return 0;
    }
    public int tickRate()
    {
       return 10;
    }

    public int quantityDropped(Random par1Random){
    return 1;
    }

    public int idDropped(int par1, Random par2Random, int par3){
    return Block.stone.blockID;
    }
    }
    }


    Ora salvate e uscite da Eclipse!

    Prossimo Tutorial:
    Come cambiare il crafting del blocco creato! e.e
     
    .
  2.     Like  
     
    .
    Avatar

    Hacker Esperto

    Group
    Member
    Posts
    2,783
    Likes
    +117
    Location
    Italia

    Status
    Anonymous
    Grande!
     
    .
  3.     Like  
     
    .
    Avatar

    Hacker Esperto

    Group
    Member
    Posts
    2,898
    Likes
    +139

    Status
    Offline
    Grazie... Grazie... :xo:
     
    .
  4. Lo Charmone™
        Like  
     
    .

    User deleted


    Dove posso scaricare voglia, tempo e concentrazione? Quanti MB pesano?
     
    .
  5. Sasuke2012
        Like  
     
    .

    User deleted


    Grazie Gah :)
     
    .
  6.     Like  
     
    .
    Avatar

    Hacker Esperto

    Group
    Member
    Posts
    2,898
    Likes
    +139

    Status
    Offline
    Prego!
    Ora in arrivo il tutorial su come creare un item senza nessun uso, come una gemma per esempio!
     
    .
5 replies since 29/12/2012, 10:37   56 views
  Share  
.