MCP = Minecraft Coder Pack
Information : Es ist nicht von mir ! Daher werden ein paar Tutorials übernommen sein, die Tutorials stammen alle von minecraft.de aus meinen Thread dort (Könnt den gründer des Threads auch anschreibn , dann werd ich es euch nochmals sagen).
INDEX:
1.Voraussetzungen
2.Compilen
3.Obfuscaten
4.Item erstellen Beta 1.2_02 // Jetziger MC stand
5.Crafting Rezept Beta 1.2_02
6.Block erstellen Beta 1.2_02
7.Waffen erstellen Beta 1.2_02
8.Essen erstellen Beta 1.1_02 // Tutorial Udated !
9.Video Tutorials 1.1_02 - 1.2_02
1.Voraussetzungen:
Ihr braucht:
Minecraft Coder Pack (MCP) , zum downloaden
Vllt Java Kentnisse
1Gb Ram
Zeit zum lernen
ALPHA 1.2.6 oder BETA ! BEIDES MÖGLICH
2. Compilen
Wenn ihr alles gedownloadet habt. Dann entpackt es in C:/MCP(z.b.)
Dannach kopiert ihr euren MC bin und resources ordner in C:/MCP/jars
Dann klickt ihr auf decompilen .
Schaut dananch in sources/net/minecraft/net/src.
Wenn ihr all die java datein sieht , habt ihr es richtig gemacht.
Wenn ihr fertig gemoddet habt macht ihr das:
recompilen
in logs nach minecraft-compile schauen und öffnen.
Nach ^ suchen , wenn ihr eins findet habt ihr falsch gemoddet.
Dann startet ihr test_game.bat und spielt euren Mod ^^.
3. Obfuscaten
So hab nun auch zeit , das Obfuscaten zu erklären.
1. Warum brauch ich das?
A: Da du damit die class datein erstellst (unter final_out)
2. Wie mach ich das ?
A: Ganz leicht:
Ihr geht unter C:/MCP oder da wo es ist
Dann unter Tools
wählt nun obfuscathonCharmer aus.
Dann seht ihr rechts ein paar namen stehen . Ändert diese , in die , der java datein wo ihr was geändert habt um . (Bei uns also so:
Code:
Item ItemBeispiel CraftingManager
Wenn es klappt habt ihr die class datein und addet sie nun in eure jar.
4. Item erstellen
So nun zeige ich euch wie ihr ein neues Item erstellt.
Ihr geht unter : sources/net/minecraft/net/src
Und macht eine neue Java Datei Namens : ItemBeispiel
So sieht der Grund Code aus :
Code:
package net.minecraft.src; public class ItemBeispiel extends Item { public ItemBeispiel(int i) { super(i); maxStackSize = 64; } public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer) { } }
Dannach geht ihr unter Item.java
Und added unten , unter den anderen befehlen die gleich anfangen:
Code:
public static Item beispiel = (new ItemExample(95)).func_20010_a(7, 6).func_20011_a("Beispiel1");
Ist : 7 = Waagrechte Position ; 6 = senkrechte Position
FÄNGT BEI 0 AN!
Video:
Beispiel Machete:
[video]http://www.youtube.com/watch?v=eC5ctFrQuTw[/video]
Mehr Folgen
5. Crafting Rezepte
Ihr geht nun unter CraftingManager.java und addet nun dort , wo wieder viele befehle gleich Anfangen:
Code:
addRecipe(new ItemStack(Item.beispiel, "anzahl") new Object[] { "obernes 3 Felder crafting z.b. # ", "mittleres 3 Felder Crafting", "unteres 3 Felder Crafting", Character.valueOf('#'), Item.stick });
Code:
addRecipe(new ItemStack(Item.beispiel, 2) new Object[] { " # ", " # ", " # ", Character.valueOf('#'), Item.stick });
In Character.valueOf(' ') //welches symbol , was sein soll
, Item.stick //das Item was das Symbol davor ist.
6. Block erstellen
Also als erstes eine Datei erstellen Namens: Block.Beispiel
Das Block defeniert nun das es sich um ein Block handelt.
Der Normale Code:
Code:
package net.minecraft.src; import java.util.Random; public class BlockBeispiel extends Block { public BlockBeispiel(int i, int j) { super(i, j, Material.rock); } public int idDropped(int i, Random random) { return 0; } }
Bei mir ist ab Zeile 516 der erste "fast" gleich auszusehende source code.
Ihr addet nun bei der List ganz unten :
Code:
public static final Block Beispiel
Geht weiter runter ( bei mir 635)
und addet ganz unten an der Liste :
Code:
beispiel =(new BlockBeispiel(92, 1)).setHardness(1.5F).setResistance(10F).setStepSound(soundStoneFootstep);
.setHardness(1.5F) ist wie hart der Block ist ( 10F ist ungefähr obsidian stärke)
.setResistance(10F) wie stark gegen Explosionen (10 F ist SEHR SEHR SCHWACH)
Das letzte kann glaub ich jeder selbst erschliesen ^^.
Extras:
.setLightValue(1.0F) Wie stark der gegenstand leuchtet. (1F ist wie der Kürbis)
Das war nun für den Block das Grundprinzip-
Anfragen sind gerne Erwünscht^^
7.Waffen erstellen
Da ich ma Zeit hab , mach ich das auch ma:
So der Grundcode(bei mir) sieht so aus:
Code:
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 ItemKlinge extends Item { public ItemKlinge(int i, EnumToolMaterial enumtoolmaterial) { super(i); maxStackSize = 1; maxDamage = enumtoolmaterial.func_21207_a(); weaponDamage = 4 + enumtoolmaterial.func_21205_c() * 2; } public float getStrVsBlock(ItemStack itemstack, Block block) { return 1.5F; } public void hitEntity(ItemStack itemstack, EntityLiving entityliving) { itemstack.damageItem(1); } public void hitBlock(ItemStack itemstack, int i, int j, int k, int l) { itemstack.damageItem(2); } public int getDamageVsEntity(Entity entity) { return weaponDamage; } public boolean isFull3D() { return true; } private int weaponDamage; }
Verschiedene Ziffern.
So Nun geht unter RecipesWeapons: Bei mir ab Zeile 35.
Und addet:
Code:
craftingmanager.addRecipe(new ItemStack(Item.klinge, 1), new Object[] { "X", " X", "X", Character.valueOf('X'), Item.stick });
Als letztes geht ihr unter:
Item.java und addet bei static
Code:
swordKlinge = (new ItemKlinge(99, EnumToolMaterial.WOOD)).func_20010_a(1, 5).func_20011_a("swordKlinge");
Code:
public static Item klinge;
Wenn ihr eigene Icons wollt , macht eins auf einen leeren Feld (in Items , bei Items und Terrain bei Blocks)
Und nimmt dann diese Stelle (wo das Icon ist) und setzt sie da ein.
Die Icons beginnen bei 0,1,2,3...
8.Essen erstellen
Wie versprochen kommt es nun^^
Also als erstes erstellt ihr eine neue Datei :
ItemSuppe , die sieht so aus :
Code:
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 ItemSuppe extends ItemFood { public ItemSuppe(int i, int j) { super(i, j); } public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer) { itemstack.stackSize--; entityplayer.heal(healAmount); return itemstack; } private int healAmount; }
int j ist bei item.java wie viel es heilen soll
public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer)
{
itemstack.stackSize--;
entityplayer.heal(healAmount);
return itemstack;
} Das es bei rechtsklick heilt
Dannach macht ihr in CraftingManager ein Rezept ! (Das poste ich nun nicht mehr)
Als letztes geht ihr unter Item.java
Und addet unten:
Code:
public static Item suppe = (new ItemFood(26, 6)).func_20010_a(X, X).func_20011_a("Suppe");
Warum ItemFood? Da es sonst nicht heilt.
VIDEO TUTS:
Bitte dies hier nicht verschieben , da hier auch fragen rein kommen soll .
Und es kommen auch nóch mehr Tutorials .
HINWEIS: Das MCP ist nicht von mir.Sondern von