|
You last visited: Today at 01:51
Advertisement
Minecraft Mods erstellen [ModLoader]
Discussion on Minecraft Mods erstellen [ModLoader] within the Minecraft Guides & Strategies forum part of the Minecraft category.
|
View Poll Results: Ist diese Thema Hilfreich ?
|
|
Ja
|
  
|
247 |
89.17% |
|
Nein
|
  
|
30 |
10.83% |
07/17/2012, 20:27
|
#466
|
elite*gold: 0
Join Date: Feb 2011
Posts: 454
Received Thanks: 345
|
Quote:
Originally Posted by Mrlptoturial
habe das importiert ...
aber der block wird nciht in tmi und im creative angezeigt
und bis jetz hab ich ihn auch nicht gefunden...
Mfg
|
Kann ich hellsehen Code Bitte.
|
|
|
07/18/2012, 12:14
|
#467
|
elite*gold: 0
Join Date: Jul 2012
Posts: 12
Received Thanks: 0
|
Oke sorry ...
hier der das was ich bis jetz hab :
package net.minecraft.src;
import java.util.Random;
public class mod_mrlptoturial extends BaseMod{
public static final Block rubin_erz;
static{
//Block
rubin_erz = new Block(220, 0, Material.rock).setHardness(0.5F).setBlockName("rub in_erz");
//Register
ModLoader.registerBlock(rubin_erz);
//Name
ModLoader.addName(rubin_erz, "Rubin Erz");
//Textur
rubin_erz.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/rubin_erz.png");
}
public void generateSurface(World world, Random rand, int chunkX, int chunkZ)
{
for(int i = 0; i < (13); i++)
{
int randPosX = chunkX + rand.nextInt(16);
int randPosY = rand.nextInt(world.getHeight());
int randPosZ = chunkZ + rand.nextInt(16);
(new WorldGenMinable(rubin_erz.blockID, 5)).generate(world, rand, randPosX, randPosY, randPosZ);
}
}
public String getVersion() {return "Minecraft Tutorial Mod";}
public void load() {}
}
sry das ich das nciht farbig hab oder so..bin neu hier und hab keine ahnung wie das geht...
|
|
|
07/18/2012, 12:31
|
#468
|
elite*gold: 0
Join Date: Apr 2012
Posts: 17
Received Thanks: 2
|
Quote:
Originally Posted by Mrlptoturial
Oke sorry ...
hier der das was ich bis jetz hab :
package net.minecraft.src;
import java.util.Random;
public class mod_mrlptoturial extends BaseMod{
public static final Block rubin_erz;
static{
//Block
rubin_erz = new Block(220, 0, Material.rock).setHardness(0.5F).setBlockName("rub in_erz");
//Register
ModLoader.registerBlock(rubin_erz);
//Name
ModLoader.addName(rubin_erz, "Rubin Erz");
//Textur
rubin_erz.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/rubin_erz.png");
}
public void generateSurface(World world, Random rand, int chunkX, int chunkZ)
{
for(int i = 0; i < (13); i++)
{
int randPosX = chunkX + rand.nextInt(16);
int randPosY = rand.nextInt(world.getHeight());
int randPosZ = chunkZ + rand.nextInt(16);
(new WorldGenMinable(rubin_erz.blockID, 5)).generate(world, rand, randPosX, randPosY, randPosZ);
}
}
public String getVersion() {return "Minecraft Tutorial Mod";}
public void load() {}
}
sry das ich das nciht farbig hab oder so..bin neu hier und hab keine ahnung wie das geht...
|
Hiermit modden:
Dann einfach unten in die Datei:
PHP Code:
CreativeAPI.addBlock(rubin_erz);
PS: Um den Code farbig zu machen muss davor: [*PHP*] und danach [*/PHP*] (Alles ohne die *!!)
|
|
|
07/18/2012, 12:37
|
#469
|
elite*gold: 0
Join Date: Jul 2012
Posts: 12
Received Thanks: 0
|
Dankejj wo sollen die beiden Datein jetzt rein?
Den Code bei eclispe dan reintuen oder?
Oke dankej
|
|
|
07/18/2012, 16:21
|
#470
|
elite*gold: 0
Join Date: Feb 2011
Posts: 454
Received Thanks: 345
|
Hab Leider Die Text grenze erreicht.
Eigene Flüssigkeit erstellen
Wir erstellen eine neue Flüssigkeit die man mit einem Eimer aufnehmen kann und auch wieder platzieren kann.
Wir müssen folgende Datein Kopieren
BlockFlowing
BlockStationary
ich habe sie
BLockWaterFluid
BlockStill
Genannt.
Wir müssen jetzt ein bischen tricksen und das Bereits bestehende Wasser einfärben dazu fügen wir folgenden Text hinzu bei
BlockFlowing und BlockStationary
Code:
public int colorMultiplier(IBlockAccess iblockaccess, int i, int j, int k)
{
return 0xFF0000;
}
Der FF0000 Code ist ein hex Color Code den ihr  ablesen könnt. Wichtig ist das das Wasser nicht eure gewünschte Farbe annimmt sonder eure eingestellte Farbe wird multipliziert mit der Wasser Farbe
So sieht Dan der code aus für das Wasser wichtig ist das es ein Block sein muss.
Code:
WaterNewFlow = new BLockWaterFluid(225, Material.water).setHardness(100F).setLightOpacity(3).setBlockName("fluidflow").disableStats().setRequiresSelfNotify();
WaterStill = new BlockStill(226, Material.water).setHardness(100F).setLightOpacity(3).setBlockName("fluidflow").disableStats().setRequiresSelfNotify();
Um jetzt einen Eimer zu erstellen der das Wasser aufnimmt bzw. Wieder abgibt erstellt ihr 2 neue items bei denen Der Code So ausschaut.
Code:
DirtBucket = new DirtBucket(227, 0).setIconCoord(10, 4).setItemName("bucket");
DirtBucketFull = new DirtBucket(228, WaterNewFlow.blockID).setIconCoord(11, 4).setItemName("bucketWater").setContainerItem(DirtBucket);
Nun müsst ihr nur noch die Datei DirtBucket erstellen ihn der folgendes steht.
Code:
package net.minecraft.src;
import java.util.Random;
public class DirtBucket extends Item {
/** field for checking if the bucket has been filled. */
private int isFull;
public DirtBucket(int par1, int par2)
{
super(par1);
maxStackSize = 1;
isFull = par2;
}
/**
* Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer
*/
public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
{
float f = 1.0F;
double d = par3EntityPlayer.prevPosX + (par3EntityPlayer.posX - par3EntityPlayer.prevPosX) * (double)f;
double d1 = (par3EntityPlayer.prevPosY + (par3EntityPlayer.posY - par3EntityPlayer.prevPosY) * (double)f + 1.6200000000000001D) - (double)par3EntityPlayer.yOffset;
double d2 = par3EntityPlayer.prevPosZ + (par3EntityPlayer.posZ - par3EntityPlayer.prevPosZ) * (double)f;
boolean flag = isFull == 0;
MovingObjectPosition movingobjectposition = getMovingObjectPositionFromPlayer(par2World, par3EntityPlayer, flag);
if (movingobjectposition == null)
{
return par1ItemStack;
}
if (movingobjectposition.typeOfHit == EnumMovingObjectType.TILE)
{
int i = movingobjectposition.blockX;
int j = movingobjectposition.blockY;
int k = movingobjectposition.blockZ;
if (!par2World.canMineBlock(par3EntityPlayer, i, j, k))
{
return par1ItemStack;
}
if (isFull == 0)
{
if (!par3EntityPlayer.canPlayerEdit(i, j, k))
{
return par1ItemStack;
}
if (par2World.getBlockMaterial(i, j, k) == Material.water && par2World.getBlockMetadata(i, j, k) == 0)
{
par2World.setBlockWithNotify(i, j, k, 0);
if (par3EntityPlayer.capabilities.isCreativeMode)
{
return par1ItemStack;
}
else
{
return new ItemStack(mod_name.DirtBucketFull);
}
}
if (par2World.getBlockMaterial(i, j, k) == Material.water && par2World.getBlockMetadata(i, j, k) == 0)
{
par2World.setBlockWithNotify(i, j, k, 0);
if (par3EntityPlayer.capabilities.isCreativeMode)
{
return par1ItemStack;
}
else
{
return new ItemStack(Item.bucketLava);
}
}
}
else
{
if (isFull < 0)
{
return new ItemStack(mod_name.DirtBucket);
}
if (movingobjectposition.sideHit == 0)
{
j--;
}
if (movingobjectposition.sideHit == 1)
{
j++;
}
if (movingobjectposition.sideHit == 2)
{
k--;
}
if (movingobjectposition.sideHit == 3)
{
k++;
}
if (movingobjectposition.sideHit == 4)
{
i--;
}
if (movingobjectposition.sideHit == 5)
{
i++;
}
if (!par3EntityPlayer.canPlayerEdit(i, j, k))
{
return par1ItemStack;
}
if (par2World.isAirBlock(i, j, k) || !par2World.getBlockMaterial(i, j, k).isSolid())
{
if (par2World.worldProvider.isHellWorld && isFull == mod_name.WaterNewFlow.blockID)
{
par2World.playSoundEffect(d + 0.5D, d1 + 0.5D, d2 + 0.5D, "random.fizz", 0.5F, 2.6F + (par2World.rand.nextFloat() - par2World.rand.nextFloat()) * 0.8F);
for (int l = 0; l < 8; l++)
{
par2World.spawnParticle("largesmoke", (double)i + Math.random(), (double)j + Math.random(), (double)k + Math.random(), 0.0D, 0.0D, 0.0D);
}
}
else
{
par2World.setBlockAndMetadataWithNotify(i, j, k, isFull, 0);
}
if (par3EntityPlayer.capabilities.isCreativeMode)
{
return par1ItemStack;
}
else
{
return new ItemStack(mod_name.DirtBucket);
}
}
}
}
else if (isFull == 0 && (movingobjectposition.entityHit instanceof EntityCow))
{
return new ItemStack(Item.bucketMilk);
}
return par1ItemStack;
}
}
Folgende Codes müssen angepasst werden:
Zeile
61 = return new ItemStack(mod_name.DirtBucketFull);
Hier muss euer volle Eimer Rein
83 = return new ItemStack(mod_name.DirtBucket);
Hier muss euer leerer Eimer Rein
123 = if (par2World.worldProvider.isHellWorld && isFull == mod_name.WaterNewFlow.blockID)
Hier muss euer neuer Fließender Block rein
143 = return new ItemStack(mod_name.DirtBucket);
Hier muss euer leerer Eimer Rein
Ergebnis
Wir bauen nun die RedstoneLampe nach
Wir erstellen 2 Blöcke die unsere lampen werden die eine muss leuchten die andere nicht das wäre dan der code
Code:
package net.minecraft.src;
import java.util.Random;
public class mod_name extends BaseMod{
//Public Block
public static final Block LampeOFF;
public static final Block LampeON;
//Dimension
static{
//Block
LampeOFF = new Blocklampe(237, 0, Material.cloth).setBlockName("Lampe Aus").setHardness(0.4F).setRequiresSelfNotify();
LampeON = new Blocklampe(238, 6, Material.cloth).setBlockName("Lampe An").setHardness(0.4F).setRequiresSelfNotify().setLightValue(1.5F);
//Register Block
ModLoader.registerBlock(LampeON);
ModLoader.registerBlock(LampeOFF);
}
public String getVersion() {return null;}
public void load() {
}
}
Nun erstellen wir eine neue Datei mit dem namen
Blocklampe dieser muss folgendes enthalten
Code:
package net.minecraft.src;
public class BlockLampe extends Block{
protected BlockLampe(int par1, int par2, Material par3Material) {
super(par1, par2, par3Material);
}
onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5)
{
if (par1World.isBlockIndirectlyGettingPowered(par2, par3, par4))
{
par1World.setBlockWithNotify(par2, par3, par4, mod_name.LampeOFF.blockID);
}
else
{
par1World.setBlockWithNotify(par2, par3, par4, mod_name.LampeON.blockID);
}
}
}
Und schon fertig
|
|
|
07/18/2012, 19:17
|
#471
|
elite*gold: 0
Join Date: Jul 2012
Posts: 12
Received Thanks: 0
|
Quote:
Dankejj wo sollen die beiden Datein jetzt rein?
Den Code bei eclispe dan reintuen oder?
Oke dankej
|
Darauf hatt mir immernoch keiner von euch beiden geantwortet
|
|
|
07/18/2012, 19:34
|
#472
|
elite*gold: 0
Join Date: Feb 2011
Posts: 454
Received Thanks: 345
|
Schritt 1:  Herunter
Schritt 2: Öffne die .zip datei mit 7zip, winRAR etc
Schritt 3: Geh ihn deinen ModOrdner drück einmal auf cleanup davor solltest du allerdings noch deine Mod Daten kopieren 
Schritt 4: Geh ihn deinen ModOrdner/Jars/bin/minecraft.jar die öffnest du auch
Schritt 5: Zieh die Dateien aus dem Creative API Ordner ihn die Minecraft.jar
Schritt 6: Anschließend drückst du ihn deinem ModOrdner Decompile und schon kannst du deine Blöcke erstellen mit ModLoader und dan mit
Code:
CreativeAPI.addBlock(DeinBlock);
Einbinden das Würde Dan so ausschauen
Code:
package net.minecraft.src;
public class mod_name extends BaseMod{
public static final Block TestErz;
static{
//Block
TestErz = new Block(220, 0, Material.rock).setHardness(0.5F).setLightValue(0.5F).setBlockName("Block Tutorial");
//Register
ModLoader.registerBlock(TestErz);
//Name
ModLoader.addName(TestErz, "Rubin Erz");
//Textur
TestErz.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/tutorial/block/rubin_erz.png");
}
public String getVersion() {return "Minecraft Tutorial Mod";}
public void load() {
CreativeAPI.addBlock(TestErz);
}
}
|
|
|
07/18/2012, 20:18
|
#473
|
elite*gold: 0
Join Date: Jul 2012
Posts: 12
Received Thanks: 0
|
Dankej
|
|
|
07/18/2012, 22:21
|
#474
|
elite*gold: 0
Join Date: Jun 2011
Posts: 379
Received Thanks: 56
|
Generation auf Biome beschränken:
Code:
package net.minecraft.src;
public class mod_name extends BaseMod{
public static final Block TestErz;
static{
//Block
TestErz = new Block(220, 0, Material.rock).setHardness(0.5F).setLightValue(0.5F).setBlockName("Block Tutorial");
//Register
ModLoader.registerBlock(TestErz);
//Name
ModLoader.addName(TestErz, "Rubin Erz");
//Textur
TestErz.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/block/rubin_erz.png");
}
public void generateSurface(World world, Random rand, int chunkX, int chunkZ){
BiomeGenBase biomegenbase = world.getWorldChunkManager().getBiomeGenAt(chunkX, chunkZ);
if(biomegenbase instanceof BiomeGen***)
{
for(int i = 0; i < (13); i++)
{
int randPosX = chunkX + rand.nextInt(16);
int randPosY = rand.nextInt(world.getHeight());
int randPosZ = chunkZ + rand.nextInt(16);
(new WorldGenMinable(TestErz.blockID, 16)).generate(world, rand, randPosX, randPosY, randPosZ);
}
}
}
public String getVersion() {return "Minecraft Tutorial Mod";}
public void load() {}
}
Der Code sollte eig bekannt sein, bis auf
Code:
BiomeGenBase biomegenbase = world.getWorldChunkManager().getBiomeGenAt(chunkX, chunkZ);
if(biomegenbase instanceof BiomeGen***)
{
Das bedeutet das wenn es nicht im Biome *** ist wird es nicht Generiert
|
|
|
07/19/2012, 11:22
|
#475
|
elite*gold: 0
Join Date: Jul 2012
Posts: 12
Received Thanks: 0
|
Jetz müsste man nur noch wissen wie man ein biom erstellt
Wie mache ich das mehere Blöcke in der selben welt generieren?
Also ich möchte so das mehere blöcke (zB. xyz, zyx, yzx) in der ganz Normalen Welt generieren
|
|
|
07/19/2012, 15:51
|
#476
|
elite*gold: 0
Join Date: Jun 2011
Posts: 379
Received Thanks: 56
|
Biome erstellen und neue Monster spawnen lassen.
BiomeTutorial
Code:
package net.minecraft.src;
import java.util.List;
import java.util.Random;
public class BiomeGenTutorial extends BiomeGenBase
{
public BiomeGenTutorial(int par1)
{
super(par1);
spawnableCreatureList.add(new SpawnListEntry(net.minecraft.src.EntityBlaze.class, 5, 4, 4));
biomeDecorator.treesPerChunk = 10;
biomeDecorator.grassPerChunk = 5;
biomeDecorator.deadBushPerChunk = 0;
biomeDecorator.reedsPerChunk = 0;
biomeDecorator.cactiPerChunk = 0;
}
/**
* Gets a WorldGen appropriate for this biome.
*/
public WorldGenerator getRandomWorldGenForTrees(Random par1Random)
{
if (par1Random.nextInt(5) == 0)
{
return worldGenForest;
}
if (par1Random.nextInt(10) == 0)
{
return worldGenBigTree;
}
else
{
return worldGenTrees;
}
}
public int func_48415_j()
{
double d = func_48411_i();
double d1 = func_48414_h();
return ((ColorizerGrass.getGrassColor(d, d1) & 0xC2C2C2) + 0xC2C2C2) / 2;
}
public int func_48412_k()
{
double d = func_48411_i();
double d1 = func_48414_h();
return ((ColorizerFoliage.getFoliageColor(d, d1) & 0xC2C2C2) + 0xC2C2C2) / 2;
}
}
Durch getGrassColor wird die Farbe des Grases gesetzt, bei mir ist es der Hex wert 0xC2C2C2
mod Datei:
Code:
package net.minecraft.src;
public class mod_Tutorial extends BaseMod {
public static final BiomeGenBase tutorial = (new BiomeGenTutorial(24)).setColor(0xf13a01).setBiomeName("Tutorial");
public String getVersion()
{
return "";
}
public void load()
{
ModLoader.addBiome(tutorial);
}
}
Durch setColor wird die Farbe des Biomes geändert.
Tutorial Wünsche gerne posten
|
|
|
07/19/2012, 17:27
|
#477
|
elite*gold: 0
Join Date: Feb 2011
Posts: 454
Received Thanks: 345
|
Quote:
Originally Posted by Mrlptoturial
Jetz müsste man nur noch wissen wie man ein biom erstellt
Wie mache ich das mehere Blöcke in der selben welt generieren?
Also ich möchte so das mehere blöcke (zB. xyz, zyx, yzx) in der ganz Normalen Welt generieren
|
Ich schaff es leider nicht heute ein tutorial zu schreiben dafür versuch ich morgen rauszubekommen wie man eigene bäume spawnen lassen kann.
|
|
|
07/19/2012, 18:23
|
#478
|
elite*gold: 0
Join Date: Jul 2012
Posts: 12
Received Thanks: 0
|
Quote:
|
Tutorial Wünsche gerne posten
|
Oke dann fange ich gleich mal an 
Also ich wollte ein neues Monster erstellen ...also ein Geist der rumfliegt ..und schaden macht wenn er den Spieler sieht [wenn möglich sogar auch erschreckt]...
wollte dann so machen das die dann auch so eine eigene Geisterstadt haben
Quote:
|
Ich schaff es leider nicht heute ein tutorial zu schreiben dafür versuch ich morgen rauszubekommen wie man eigene bäume spawnen lassen kann.
|
das is auch gut
|
|
|
07/19/2012, 19:57
|
#479
|
elite*gold: 0
Join Date: Jun 2011
Posts: 379
Received Thanks: 56
|
Modde die Funktion einfach einbisschen:
Code:
protected Entity findPlayerToAttack()
{
float f = getBrightness(1.0F);
if (f < 0.5F)
{
double d = 16D;
return worldObj.getClosestVulnerablePlayerToEntity(this, d);
}
else
{
return null;
}
}
die 16 steht dabei für den Block Radius
|
|
|
07/19/2012, 19:59
|
#480
|
elite*gold: 0
Join Date: Jul 2012
Posts: 12
Received Thanks: 0
|
Quote:
Modde die Funktion einfach einbisschen:
Code:
protected Entity findPlayerToAttack()
{
float f = getBrightness(1.0F);
if (f < 0.5F)
{
double d = 16D;
return worldObj.getClosestVulnerablePlayerToEntity(this, d);
}
else
{
return null;
}
}die 16 steht dabei für den Block Radius
__________________
|
Dankej erstmal aber wo soll das ganze rein und wie mache ich die Textur des Mobs?..Sry bin etwas neu in den gebiet
|
|
|
Similar Threads
|
Minecraft Mods selber erstellen
10/26/2011 - Minecraft - 6 Replies
Vorab: Ich weiß folgende Frage wurde schon oft gestellt:
Wie mache ich eigene Mods? Hab keine Java Kentnisse.
Bei mir ist der Fall ähnlich ich habe im Internet gesucht und folgendes gefunden:
Minecraft Mod Maker - Minecraft Forum
Jedoch funktioniert der bei mir nicht :(
Meine Frage an euch gibt e einei alternative oder gibt es eine andere Möglichkeit? Es muss nichts großes sein. Ich möchte jedoch nur zb. einen
Block erstellen der kwinw besonderen Funktionen hat wie der Grassblock
|
All times are GMT +1. The time now is 01:52.
|
|