Minecraft Mods erstellen [ModLoader]

07/05/2012 16:41 the_cake#421
Ja ich habe es angeschaut wird auch noch mit rein fliesen nur habe ich gerade leider keine zeit.
07/07/2012 13:41 Domekilla12#422
Hi.
Ich habe versucht mir ein eigenes Haus zu erstellen welches dann auch in der welt spawnen soll aber wenn ich eine neue welt generiere bekomme ich folgende errormeldung

Mods loaded: 2
ModLoader 1.2.5
mod_modname 1.2.5

Minecraft has crashed!
----------------------

Minecraft has stopped running because it encountered a problem.




--- BEGIN ERROR REPORT 28c5fd55 --------
Generated 07.07.12 13:39

Minecraft: Minecraft 1.2.5
OS: Windows 7 (amd64) version 6.1
Java: 1.7.0_05, Oracle Corporation
VM: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
LWJGL: 2.4.2
OpenGL: AMD Radeon HD 6700 Series version 4.2.11733 Compatibility Profile Context, ATI Technologies Inc.

java.lang.NullPointerException
at net.minecraft.src.Chunk.setBlockIDWithMetadata(Chu nk.java:617)
at net.minecraft.src.Chunk.setBlockID(Chunk.java:532)
at net.minecraft.src.World.setBlock(World.java:709)
at net.minecraft.src.WorldGenStructure.generate(World GenStructure.java:73)
at net.minecraft.src.mod_modname.generateSurface(mod_ modname.java:31)
at net.minecraft.src.ModLoader.populateChunk(ModLoade r.java:1217)
at net.minecraft.src.ChunkProvider.populate(ChunkProv ider.java:196)
at net.minecraft.src.Chunk.populateChunk(Chunk.java:1 150)
at net.minecraft.src.ChunkProvider.loadChunk(ChunkPro vider.java:106)
at net.minecraft.src.ChunkProvider.provideChunk(Chunk Provider.java:119)
at net.minecraft.src.World.getChunkFromChunkCoords(Wo rld.java:654)
at net.minecraft.src.World.getBlockId(World.java:547)
at net.minecraft.src.SpawnerAnimals.canCreatureTypeSp awnAtLocation(SpawnerAnimals.java:204)
at net.minecraft.src.SpawnerAnimals.performSpawning(S pawnerAnimals.java:118)
at net.minecraft.src.World.tick(World.java:2850)
at net.minecraft.client.Minecraft.runTick(Minecraft.j ava:1903)
at net.minecraft.client.Minecraft.runGameLoop(Minecra ft.java:870)
at net.minecraft.client.Minecraft.run(Minecraft.java: 801)
at java.lang.Thread.run(Thread.java:722)
--- END ERROR REPORT 7438a122 ----------
07/07/2012 16:20 the_cake#423
Hmm zeig uns doch mal am besten bitte die 2 datein. An Hand der Fehler Meldung ist das nicht immer auf schlüssig
07/07/2012 16:54 Domekilla12#424
Ok

mod_TestHaus :

Quote:
package net.minecraft.src;
import java.util.Random;

public class mod_TestHaus extends BaseMod{

public void load()
{

}

public void generateSurface(World world, Random rand, int y, int z)
{
for(int k = 0; k < 100; k++)
{
int RandPosX = y + rand.nextInt(16);
int RandPosY = rand.nextInt(128);
int RandPosZ = z + rand.nextInt(16);
(new WorldGenStructure()).generate(world, rand, RandPosX, RandPosY, RandPosZ);
}
}
public String getVersion()
{
return "1.2.5";
}
}
unverändert bis auf den Namen

WorldGenStructure :

Quote:
/*
===== MADE BY HAXMAN2'S .SCHEMATIC TO JAVA CONVERTING TOOLv0.2 ====
There is a tutorial on the forum thread on how to use this tool.
NOTE: The Block limit is 19,500 at the moment, meaning if your file is bigger then 20,000 lines, it MIGHT crash...
*/
package net.minecraft.src;
import java.util.Random;
public class WorldGenStructure extends WorldGenerator
{
public WorldGenStructure()
{
}
public boolean generate(World world, Random rand, int i, int j, int k)
{
int bID = 2; /*2 is the block id for grass, so the structure going to spawn on grass*/
if(world.getBlockId(i, j, k) != bID || world.getBlockId(i, j + 1, k) != 0 || world.getBlockId(i + 7, j, k) != bID || world.getBlockId(i + 7, j, k + 7) != bID || world.getBlockId(i, j, k + 7) != bID || world.getBlockId(i + 7, j + 1, k) != 0 || world.getBlockId(i + 7, j + 1, k + 7) != 0 || world.getBlockId(i, j + 1, k + 7) != 0)
{
return false;
}
world.setBlock(i + 0, j + 0, k + 5, 85);
world.setBlock(i + 0, j + 0, k + 3, 85);
world.setBlock(i + 1, j + 0, k + 7, 5);
world.setBlock(i + 1, j + 0, k + 6, 5);
world.setBlock(i + 1, j + 0, k + 5, 4);
world.setBlock(i + 1, j + 0, k + 4, 64);
world.setBlock(i + 1, j + 0, k + 3, 4);
world.setBlock(i + 1, j + 0, k + 2, 5);
world.setBlock(i + 1, j + 0, k + 1, 5);
world.setBlock(i + 2, j + 0, k + 7, 5);
world.setBlock(i + 2, j + 0, k + 6, 54);
world.setBlock(i + 2, j + 0, k + 2, 58);
world.setBlock(i + 2, j + 0, k + 1, 5);
world.setBlock(i + 3, j + 0, k + 7, 5);
world.setBlock(i + 3, j + 0, k + 6, 54);
world.setBlock(i + 3, j + 0, k + 2, 61);
world.setBlock(i + 3, j + 0, k + 1, 5);
world.setBlock(i + 4, j + 0, k + 7, 4);
world.setBlock(i + 4, j + 0, k + 6, 4);
world.setBlock(i + 4, j + 0, k + 5, 5);
world.setBlock(i + 4, j + 0, k + 4, 5);
world.setBlock(i + 4, j + 0, k + 3, 5);
world.setBlock(i + 4, j + 0, k + 2, 4);
world.setBlock(i + 4, j + 0, k + 1, 4);
world.setBlock(i + 0, j + 1, k + 5, 85);
world.setBlock(i + 0, j + 1, k + 3, 85);
world.setBlock(i + 1, j + 1, k + 7, 4);
world.setBlock(i + 1, j + 1, k + 6, 20);
world.setBlock(i + 1, j + 1, k + 5, 4);
world.setBlock(i + 1, j + 1, k + 4, 64);
world.setBlock(i + 1, j + 1, k + 3, 4);
world.setBlock(i + 1, j + 1, k + 2, 20);
world.setBlock(i + 1, j + 1, k + 1, 4);
world.setBlock(i + 2, j + 1, k + 7, 5);
world.setBlock(i + 2, j + 1, k + 6, 50);
world.setBlock(i + 2, j + 1, k + 5, 50);
world.setBlock(i + 2, j + 1, k + 3, 50);
world.setBlock(i + 2, j + 1, k + 2, 50);
world.setBlock(i + 2, j + 1, k + 1, 5);
world.setBlock(i + 3, j + 1, k + 7, 5);
world.setBlock(i + 3, j + 1, k + 6, 50);
world.setBlock(i + 3, j + 1, k + 5, 50);
world.setBlock(i + 3, j + 1, k + 3, 50);
world.setBlock(i + 3, j + 1, k + 2, 50);
world.setBlock(i + 3, j + 1, k + 1, 5);
world.setBlock(i + 4, j + 1, k + 7, 4);
world.setBlock(i + 4, j + 1, k + 6, 20);
world.setBlock(i + 4, j + 1, k + 5, 5);
world.setBlock(i + 4, j + 1, k + 4, 20);
world.setBlock(i + 4, j + 1, k + 3, 5);
world.setBlock(i + 4, j + 1, k + 2, 20);
world.setBlock(i + 4, j + 1, k + 1, 4);
world.setBlock(i + 0, j + 2, k + 7, 126);
world.setBlock(i + 0, j + 2, k + 6, 126);
world.setBlock(i + 0, j + 2, k + 5, 5);
world.setBlock(i + 0, j + 2, k + 4, 126);
world.setBlock(i + 0, j + 2, k + 3, 5);
world.setBlock(i + 0, j + 2, k + 2, 126);
world.setBlock(i + 0, j + 2, k + 1, 126);
world.setBlock(i + 1, j + 2, k + 8, 126);
world.setBlock(i + 1, j + 2, k + 7, 4);
world.setBlock(i + 1, j + 2, k + 6, 4);
world.setBlock(i + 1, j + 2, k + 5, 4);
world.setBlock(i + 1, j + 2, k + 4, 4);
world.setBlock(i + 1, j + 2, k + 3, 4);
world.setBlock(i + 1, j + 2, k + 2, 4);
world.setBlock(i + 1, j + 2, k + 1, 4);
world.setBlock(i + 1, j + 2, k + 0, 126);
world.setBlock(i + 2, j + 2, k + 8, 126);
world.setBlock(i + 2, j + 2, k + 7, 4);
world.setBlock(i + 2, j + 2, k + 1, 4);
world.setBlock(i + 2, j + 2, k + 0, 126);
world.setBlock(i + 3, j + 2, k + 8, 126);
world.setBlock(i + 3, j + 2, k + 7, 4);
world.setBlock(i + 3, j + 2, k + 1, 4);
world.setBlock(i + 3, j + 2, k + 0, 126);
world.setBlock(i + 4, j + 2, k + 8, 126);
world.setBlock(i + 4, j + 2, k + 7, 4);
world.setBlock(i + 4, j + 2, k + 6, 4);
world.setBlock(i + 4, j + 2, k + 5, 4);
world.setBlock(i + 4, j + 2, k + 4, 4);
world.setBlock(i + 4, j + 2, k + 3, 4);
world.setBlock(i + 4, j + 2, k + 2, 4);
world.setBlock(i + 4, j + 2, k + 1, 4);
world.setBlock(i + 4, j + 2, k + 0, 126);
world.setBlock(i + 5, j + 2, k + 7, 126);
world.setBlock(i + 5, j + 2, k + 6, 126);
world.setBlock(i + 5, j + 2, k + 5, 126);
world.setBlock(i + 5, j + 2, k + 4, 126);
world.setBlock(i + 5, j + 2, k + 3, 126);
world.setBlock(i + 5, j + 2, k + 2, 126);
world.setBlock(i + 5, j + 2, k + 1, 126);
world.setBlock(i + 1, j + 3, k + 7, 126);
world.setBlock(i + 1, j + 3, k + 6, 126);
world.setBlock(i + 1, j + 3, k + 5, 126);
world.setBlock(i + 1, j + 3, k + 4, 126);
world.setBlock(i + 1, j + 3, k + 3, 126);
world.setBlock(i + 1, j + 3, k + 2, 126);
world.setBlock(i + 1, j + 3, k + 1, 126);
world.setBlock(i + 2, j + 3, k + 7, 126);
world.setBlock(i + 2, j + 3, k + 6, 125);
world.setBlock(i + 2, j + 3, k + 5, 125);
world.setBlock(i + 2, j + 3, k + 4, 125);
world.setBlock(i + 2, j + 3, k + 3, 125);
world.setBlock(i + 2, j + 3, k + 2, 125);
world.setBlock(i + 2, j + 3, k + 1, 126);
world.setBlock(i + 3, j + 3, k + 7, 126);
world.setBlock(i + 3, j + 3, k + 6, 125);
world.setBlock(i + 3, j + 3, k + 5, 125);
world.setBlock(i + 3, j + 3, k + 4, 125);
world.setBlock(i + 3, j + 3, k + 3, 125);
world.setBlock(i + 3, j + 3, k + 2, 125);
world.setBlock(i + 3, j + 3, k + 1, 126);
world.setBlock(i + 4, j + 3, k + 7, 126);
world.setBlock(i + 4, j + 3, k + 6, 126);
world.setBlock(i + 4, j + 3, k + 5, 126);
world.setBlock(i + 4, j + 3, k + 4, 126);
world.setBlock(i + 4, j + 3, k + 3, 126);
world.setBlock(i + 4, j + 3, k + 2, 126);
world.setBlock(i + 4, j + 3, k + 1, 126);

return true;
}
} /*=====End of Code=====*/
Hat sich erledigt ;)

Nun habe ich aber folgenden Fehler :

Das Haus habe ich so gebaut und mit MCE als schemativ gespeichert :

[IMG][Only registered and activated users can see links. Click Here To Register...][/IMG]

Und so sieht es generiert aus :

[IMG][Only registered and activated users can see links. Click Here To Register...][/IMG]

Ist alles Fixxed ;)

Nun aber habe ich eine frage und zwar habe ich einen Tempel gebaut der geht auch etwas unter die Erde aber wenn ich ihn generieren lasse spawnt er vom tiefsten punkt sprich der Tempel schwebt in der luft. Wie kann ich dies Fixxen ?
07/08/2012 17:47 cakeflavor#425
Wann kommt der Part "Items erstellen"? Bin totaler Fan deines Tutorials. :O
07/08/2012 18:26 the_cake#426
Ich mach das gleich wenn ich fertig bin mit dem sch**ß group Manager -.-
07/08/2012 19:06 Domekilla12#427
Hab noch ein Problem :/
Habe einen neuen Block erstellt (ohne Modloader) und wenn ich jetzt recompile kommt folgende Errormeldung :

constructor Block.Block(int,int,Material) is not applicable
(actual and formal argument lists differ in length)
constructor Block.Block(int,Material) is not applicable
(actual argument int cannot be converted to Material by method invocation
conversion)
1 error

Ich hoffe du kannst mir Helfen !!
07/08/2012 20:27 the_cake#428
Hast du es mit Eclipse gemacht ja oder nein ????
07/08/2012 21:11 Domekilla12#429
Nee. Ich kann Eclipse nicht installieren ich bekomm da immer ne errormeldung
07/08/2012 21:14 cakeflavor#430
Hab mal eine (vermutlich) ganz simple Frage - ich bin ein kompletter Neueinsteiger in Java - ich habe nun mal versucht, einen Block zu machen (habe einfach schnell Copy & Paste gemacht). Habe danach in eclipse bei File auf Save all gedrückt und habe mittlerweile die .java Datei sowie die .class Datei meines Blocks gefunden (mod_ersterblock.java, mod_ersterblock.class) - Doch wie bringe ich die nun ins Spiel? :)

/e: Hab mal versucht, die mod_ersterblock.class einfach in die minecraft.jar zu legen. Folgender Error:

edit numbero 2: Habs nun recompiled - der Mod ist anscheinend drin, aber wo genau muss ich die *.png Datei hintun, die in die terrain.png injected werden soll? Heißt bei mir rainbow_erz.png und dieses Bild findet Minecraft nicht, gibt mir wieder einen Error aus.
07/08/2012 21:58 -i[Gyxx]*#431
Entweder muss ide .png direkt in die Minecraft.jar, oder wenn du da z.b.
Code:
/block/rainbow_erz.png
steht muss du in der Minecraft.jar ein Ordner erstellen de block heißt.
07/08/2012 22:10 cakeflavor#432
Nächstes Problem. Habe nun versucht aus meinem Ordner mcp/jars alles rauszukopieren in mienen normalen Minecraft ordner (in Roaming). Jetzt erhalte ich beim Starten allerdings folgenden Fehler:

07/08/2012 23:07 xXfreakyXx#433
Hilfe, ich finde Path nicht :/
07/09/2012 09:33 morice1999#434
Wann kommt nun endlich das neue? Du hast geschrieben "morgen", doch das war vor einer Woche.
07/09/2012 14:41 Domekilla12#435
Quote:
Originally Posted by k0thaufen! View Post
Nächstes Problem. Habe nun versucht aus meinem Ordner mcp/jars alles rauszukopieren in mienen normalen Minecraft ordner (in Roaming). Jetzt erhalte ich beim Starten allerdings folgenden Fehler:

Du darfst auch nicht alles aus den jars rausnehmen ^^ du musst erst auf recompile dann auf reobfuscation und dann sind die sachen die du modifiziert hast im reobf ordner. Die musst du in deine minecraft.jar ziehen