Register for your free account! | Forgot your password?

Go Back   elitepvpers > Other Online Games > Minecraft > Minecraft Guides & Strategies
You last visited: Today at 19:28

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Tutorial]Minecraft modden mit MCP

Discussion on [Tutorial]Minecraft modden mit MCP within the Minecraft Guides & Strategies forum part of the Minecraft category.

Reply
 
Old   #1
 
metin2lieber's Avatar
 
elite*gold: 0
Join Date: Apr 2009
Posts: 217
Received Thanks: 101
[Tutorial]Minecraft modden mit MCP

Grundlegendes:
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)
    {
    }
}
Wenn es zu dem Code fragen gibt , fragt ruhig ^^.

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");
.func_20010_a(7, 6)
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
});
Ein Bsp:
Code:
addRecipe(new ItemStack(Item.beispiel, 2) new Object[] {
" #  ", " # ", " # ", Character.valueOf('#'), Item.stick
});
In die " " kommt immer ein Symbol hinein (Max. 3)
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;
    }
}
So nun muss der Block in Block.java definiert werden.
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
Das war aber noch nicht alles in Block.java

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);
Das erste setzt wieder die Id und dann des Texturenbild fest.
.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;
}
EnumToolMaterial.java = Hier wird die Stärke von der waffe festgelegt durch
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
        });
Ändern ^^, sonst ist der Spielspaß weg.

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");
Und dann bei mir zeile 276 :
Code:
public static Item klinge;
X, X= waagrechte , senkrechte Position
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;
}
Definitionen:
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");
Das bedeuted das Item suppe dir 3 Leben heilt (wegen der 6/ 1= 0,5Leben ig) . Und das es aussieht wie die 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
metin2lieber is offline  
Old 01/30/2011, 11:35   #2
 
Nixodas's Avatar
 
elite*gold: 0
Join Date: Jun 2009
Posts: 550
Received Thanks: 410
C&P

und zwar von

Ehrlich schreib nen Link aber verkauf nicht Sachen von anderen als deine!
Nixodas is offline  
Thanks
14 Users
Old 01/30/2011, 13:03   #3
 
metin2lieber's Avatar
 
elite*gold: 0
Join Date: Apr 2009
Posts: 217
Received Thanks: 101
Glaube das hat sich geklärt das es von mir ist. Wers nicht glaubt kann ja in de Forum gerbon anschreiben bzw. mein YouTube Kanal xXKerig .
metin2lieber is offline  
Old 01/30/2011, 20:54   #4
 
elite*gold: 0
Join Date: Jan 2009
Posts: 3
Received Thanks: 0
func :D

HI,

kannst du mir sagen wofür die Übergabewerte in der methode .func_20010_a(7, 6) die 7 und 6 genau stehn mit 7=w und 6=s kann man schlecht was anfangen .

THX im vorraus();

NACH 2 Stunden hab ich es heraus gefunden position auf dem item.PGN
Quaqi is offline  
Old 01/30/2011, 21:34   #5
 
metin2lieber's Avatar
 
elite*gold: 0
Join Date: Apr 2009
Posts: 217
Received Thanks: 101
Hey, also bei mir steht da
7 = waagrechte Position in der item.png (fängt bei 0 an dann 1,2,3,4,5,6,7...)
und 6 = senkrechte Position in der Item.png(Gleiche wie oben)
Dadurch bekommst du einen Bildpunkt das dein Bild ist

Bsp: Lederhelm = 0,0 ; Lederrüssi = 0,1 ...
Hoffe konnte dir damit helfen, wenn du willst kann ich dir auch ein Video Tut machen
metin2lieber is offline  
Old 01/31/2011, 14:29   #6
 
metin2lieber's Avatar
 
elite*gold: 0
Join Date: Apr 2009
Posts: 217
Received Thanks: 101
Da ist des was ich oben geschrieben hab (mit dem Item) nochmal als Video.
metin2lieber is offline  
Old 01/31/2011, 15:11   #7
 
elite*gold: 270
Join Date: Feb 2010
Posts: 2,545
Received Thanks: 569
Quote:
Originally Posted by metin2lieber View Post

Da ist des was ich oben geschrieben hab (mit dem Item) nochmal als Video.

Doppelpost

#reported
ʍǝʎɹo is offline  
Old 01/31/2011, 15:33   #8
 
Hiesan's Avatar
 
elite*gold: 0
Join Date: Jan 2011
Posts: 5,789
Received Thanks: 1,860
Sein letter beitrag war vor fast 24h... ich meine des geht in ordnung (bestätigt das einer? )
Hiesan is offline  
Old 01/31/2011, 15:43   #9
 
Der-Eddy's Avatar
 
elite*gold: 400
Join Date: Nov 2008
Posts: 67,909
Received Thanks: 19,503
Quote:
Originally Posted by ~Sven~ View Post
Sein letter beitrag war vor fast 24h... ich meine des geht in ordnung (bestätigt das einer? )
Nein
Der-Eddy is offline  
Old 01/31/2011, 15:53   #10
 
metin2lieber's Avatar
 
elite*gold: 0
Join Date: Apr 2009
Posts: 217
Received Thanks: 101
Ja wenns keine Löschfunktion gibt...
Ma ehrlich , da es hier eh keinen Interesiert bzw. ich ja eh nur ein Noob der C&P kann . Überleg ich mir ob ich hier nicht closen lasse.
metin2lieber is offline  
Thanks
2 Users
Old 02/01/2011, 18:37   #11
 
metin2lieber's Avatar
 
elite*gold: 0
Join Date: Apr 2009
Posts: 217
Received Thanks: 101
TUTORIAL 12. EnumToolMaterial ein neues Material dazu adden
So Voraussetzung: MCP 1.2_02 mit der entsprechenden Version

Ihr geht nun unter EnumToolMaterial.java und added dann gleich als aller erstes
unter GOLD(0, 32, 12F, 0), das:


BEISPIEL(1, 150, 3.5F, 1);


Das fügt schonmal das neue Material zum Craften her
WARNUNG: BEISPIEL MUSS ES NICHT ALS ITEM GEBEN!
Erklärungen:
1 = die Stufe ; 0 = Wood /Gold ; 1 = Stone ; ... bis 3 = Diamond , 4 wäre dann eine Stufe die besser ist als
Diamond!

150 = Wahrscheinlich das Leben // Werde das überprüfen noch!
3.5F = Die Stärke bzw. der Schaden // Werde dies auch noch überprüfen!
1 = Wieder eine Art Stufe des Materials.
WICHTIG:
Alles ist frei umänderbar , d.h 1 kann auch 5000 "Leben" haben!

Wenn ihr jetzt wieder sagt das es C&P ist , dann stimmt das nur das ich es in minecraft.de geschrieben habe
metin2lieber is offline  
Old 02/05/2011, 23:22   #12
 
metin2lieber's Avatar
 
elite*gold: 0
Join Date: Apr 2009
Posts: 217
Received Thanks: 101
Push da es wichtig ist
metin2lieber is offline  
Old 02/17/2011, 20:56   #13
 
elite*gold: 0
Join Date: Dec 2010
Posts: 10
Received Thanks: 1
du hast das aus einem kopiert steht genau so auf der Homepage lol
MassakaBoy31 is offline  
Old 02/17/2011, 21:57   #14
 
Nixodas's Avatar
 
elite*gold: 0
Join Date: Jun 2009
Posts: 550
Received Thanks: 410
Quote:
Originally Posted by metin2lieber View Post
Push da es wichtig ist

ganz ehrlich ja okay du hast vllt net C&P gemacht aber mach dich nicht wichtiger als du bist
Nixodas is offline  
Old 02/17/2011, 23:36   #15
 
gustav1324's Avatar
 
elite*gold: 2
Join Date: Jun 2009
Posts: 831
Received Thanks: 166
hört doch ma auf hier immer wieder das selbe zu sagen ja es wurde einfach nur kopiert aba müsst ihr deswegen hier alles vollspammen?
gustav1324 is offline  
Reply


Similar Threads Similar Threads
[Tutorial] Minecraft mit PSC kaufen
09/13/2011 - Minecraft Guides & Strategies - 11 Replies
Moin Leute Die meisten kennen sicher schon die Seite www.yunacard.com Dort kann man sich eine virtuele MasterCard erstellen die man mit PaySafeCards aufladen kann und 2 Jahre hält. So könnt ihr euch auch Minecraft mit PSC kaufen. Wichtig Ihr müsst 18 sein damit ihr das machen könnt. Nein man kann nicht einfach angeben das man 18 ist sondern ihr müsst beweisen das ihr 18 seit also lasst es am besten euren Vater machen. Die Daten eurer MasterCard bekommt ihr nacht der Aufladung und die...
Minecraft Tutorial - Versteckte Tür
01/26/2011 - Minecraft Guides & Strategies - 19 Replies
Hier mal wieder was kleines von mir :) Würde mich freuen wenn ein paar mehr meine Diary's ansehen würde :) YouTube - Minecraft Tutorial - Versteckte Tür



All times are GMT +2. The time now is 19:28.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.