Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

ModLoader Od zera do Moddera!


Gaw3l

Rekomendowane odpowiedzi

Opublikowano

package net.minecraft.src;

 

public class mod_rubin extends BaseMod

{

public static final Block rubin = new BlockRubin(3100, 0).setBlockName("rubin").setHardness(5F).setResistance(100F).setLightValue(1F);

 

public String Version()

{

return "1.2.5";

}

 

public mod_rubin ()

{

rubin.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/mod_rubin/Kuba.png");

ModLoader.RegisterBlock(rubin);

ModLoader.AddName(rubin, "Rubin");

}

}

 

co robię źle?

  • Odpowiedzi 419
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

@XAniolX tak to powinno wyglądać:

package net.minecraft.src;
public class mod_rubin extends BaseMod
{
public static final Block rubin = new BlockRubin(3100, 0).setBlockName("rubin").setHardness(5F).setResistance(100F).setLightValue(1F);
public String getVersion()
{
return "1.2.5";
}
public void load(){}
public mod_rubin ()
{
rubin.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/mod_rubin/Kuba.png");
ModLoader.registerBlock(rubin);
ModLoader.addName(rubin, "Rubin");
}
}

Opublikowano

Mam Tylko Jeden POPIEP****Y BŁĄD

 

package net.minecraft.src;

public class mod_rubin extends BaseMod

{

public static final Block rubin = new BlockRubin(3100, 0).setBlockName("rubin").setHardness(5F).setResistance(100F).setLightValue(1F);

public String getVersion()

{

return "1.2.5";

}

public void load(){}

public mod_rubin ()

{

rubin.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/mod_rubin/Kuba.png");

ModLoader.registerBlock(rubin);

ModLoader.addName(rubin, "Rubin");

}

}

 

CZEGOŚ BRAKUJE?

 

I jak już mówiłem naprawisz błąd i okazaże się,że masz inne 4 errorki!!!!!

 

Help mi

Opublikowano

zatrzymuje się na applying retroguard ;/, kiedyś po 25 minutach zdekompilowal, a ostatnio probowalem to po godzinie nic

 

EDIT: Przepraszam, zrobił :D

Opublikowano

Też tak mam... u mnie jest błąd przy public class(na początku bez kropki) ModLoader.registerBlock i ModLoader.addName

 

EDIT: zmieniłem trochę kod i ładnie zrekompilował, teraz zawiesił się na reobfuscatingu(czy jakoś tak)

Opublikowano

Jest tu ktoś kto jest bardziej zaawansowany w tworzeniu modów?

Mam problem, robie własne GUI które wyświetla się po kliknięciu w blok

Wszystko działało dopóki nie dodałem slotu addSlot, po kliknięciu w blok jest crash:

java.lang.NullPointerException, wie ktoś jak to naprawić?

 

GuiBeefMachine:

package net.minecraft.src;
import net.minecraft.client.Minecraft;
import org.lwjgl.opengl.GL11;
public class GuiBeefMachine extends GuiContainer
{
private TileEntityBeefMachine beefmachineInventory;

public GuiBeefMachine(InventoryPlayer par1InventoryPlayer, TileEntityBeefMachine par2TileEntityBeefMachine)
{
 super(new ContainerBeefMachine(par1InventoryPlayer, par2TileEntityBeefMachine));
	beefmachineInventory = par2TileEntityBeefMachine;
}
protected void drawGuiContainerForegroundLayer()
{
	fontRenderer.drawString(StatCollector.translateToLocal(beefmachineInventory.getInvName()), 60, 6, 0x404040);
	fontRenderer.drawString(StatCollector.translateToLocal("container.inventory"), 8, (ySize - 96) + 2, 0x404040);
}
protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3)
{
	int i = mc.renderEngine.getTexture("/MoreFood/guiBeefMachine.png");
	GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
	mc.renderEngine.bindTexture(i);
	int j = (width - xSize) / 2;
	int k = (height - ySize) / 2;
	drawTexturedModalRect(j, k, 0, 0, xSize, ySize);
}
}

 

 

 

 

TileEntityBeefMachine:

package net.minecraft.src;
public class TileEntityBeefMachine extends TileEntity implements IInventory
{
private ItemStack beefmachineItemStacks[];
public TileEntityBeefMachine()
{
 beefmachineItemStacks = new ItemStack[1];
}
public boolean isUseableByPlayer(EntityPlayer par1EntityPlayer)
{
 if (worldObj.getBlockTileEntity(xCoord, yCoord, zCoord) != this)
	{
		return false;
	}
	return par1EntityPlayer.getDistanceSq((double)xCoord + 0.5D, (double)yCoord + 0.5D, (double)zCoord + 0.5D) <= 64D;
}
public int getInventoryStackLimit()
{
	return 64;
}
public String getInvName()
{
	return "Maszynka do mięsa";
}
public void setInventorySlotContents(int par1, ItemStack par2ItemStack)
{
	beefmachineItemStacks[par1] = par2ItemStack;
	if (par2ItemStack != null && par2ItemStack.stackSize > getInventoryStackLimit())
	{
		par2ItemStack.stackSize = getInventoryStackLimit();
	}
}
public ItemStack getStackInSlotOnClosing(int par1)
{
	if (beefmachineItemStacks[par1] != null)
	{
		ItemStack itemstack = beefmachineItemStacks[par1];
		beefmachineItemStacks[par1] = null;
		return itemstack;
	}
	else
	{
		return null;
	}
}
public ItemStack decrStackSize(int par1, int par2)
{
	if (beefmachineItemStacks[par1] != null)
	{
		if (beefmachineItemStacks[par1].stackSize <= par2)
		{
			ItemStack itemstack = beefmachineItemStacks[par1];
			beefmachineItemStacks[par1] = null;
			return itemstack;
		}
		ItemStack itemstack1 = beefmachineItemStacks[par1].splitStack(par2);
		if (beefmachineItemStacks[par1].stackSize == 0)
		{
			beefmachineItemStacks[par1] = null;
		}
		return itemstack1;
	}
	else
	{
		return null;
	}
}
public int getSizeInventory()
{
	return beefmachineItemStacks.length;
}
public ItemStack getStackInSlot(int par1)
{
	return beefmachineItemStacks[par1];
}
public void openChest()
{
}
public void closeChest()
{
}
}

 

 

 

 

ContainerBeefMachine:

package net.minecraft.src;
import java.util.List;
public class ContainerBeefMachine extends Container
{
TileEntityBeefMachine beefmachine;

public ContainerBeefMachine(InventoryPlayer par1InventoryPlayer, TileEntityBeefMachine par2TileEntityBeefMachine)
{
	addSlot(new Slot(par2TileEntityBeefMachine, 0, 58, 33));
	for (int i = 0; i < 3; i++)
	{
		for (int k = 0; k < 9; k++)
		{
			addSlot(new Slot(par1InventoryPlayer, k + i * 9 + 9, 8 + k * 18, 84 + i * 18));
		}
	}
	for (int j = 0; j < 9; j++)
	{
		addSlot(new Slot(par1InventoryPlayer, j, 8 + j * 18, 142));
	}
}
public boolean canInteractWith(EntityPlayer par1EntityPlayer)
{
	return beefmachine.isUseableByPlayer(par1EntityPlayer);
}
public ItemStack transferStackInSlot(int par1)
{
	ItemStack itemstack = null;
	Slot slot = (Slot)inventorySlots.get(par1);
	if (slot != null && slot.getHasStack())
	{
		ItemStack itemstack1 = slot.getStack();
		itemstack = itemstack1.copy();
		if (par1 == 2)
		{
			if (!mergeItemStack(itemstack1, 3, 39, true))
			{
				return null;
			}
			slot.func_48433_a(itemstack1, itemstack);
		}
		else if (par1 == 1 || par1 == 0)
		{
			if (!mergeItemStack(itemstack1, 3, 39, false))
			{
				return null;
			}
		}
		else if (par1 >= 3 && par1 < 30)
		{
			if (!mergeItemStack(itemstack1, 30, 39, false))
			{
				return null;
			}
		}
		else if (par1 >= 30 && par1 < 39 && !mergeItemStack(itemstack1, 3, 30, false))
		{
			return null;
		}
		if (itemstack1.stackSize == 0)
		{
			slot.putStack(null);
		}
		else
		{
			slot.onSlotChanged();
		}
		if (itemstack1.stackSize != itemstack.stackSize)
		{
			slot.onPickupFromSlot(itemstack1);
		}
		else
		{
			return null;
		}
	}
	return itemstack;
}
}

 

 

 

 

BlockBeefMachine:

package net.minecraft.src;
import java.util.Random;
public class BlockBeefMachine extends Block
{
protected BlockBeefMachine(int i, int j){
 super(i, j , Material.iron);
}
public void onBlockAdded(World world, int i, int j, int k)
{
	super.onBlockAdded(world, i, j, k);
	setDefaultDirection(world, i, j, k);
}
private void setDefaultDirection(World world, int i, int j, int k)
{
	if (world.isRemote)
	{
		return;
	}
	int l = world.getBlockId(i, j, k - 1);
	int i1 = world.getBlockId(i, j, k + 1);
	int j1 = world.getBlockId(i - 1, j, k);
	int k1 = world.getBlockId(i + 1, j, k);
	byte byte0 = 3;
	if (Block.opaqueCubeLookup[l] && !Block.opaqueCubeLookup[i1])
	{
		byte0 = 3;
	}
	if (Block.opaqueCubeLookup[i1] && !Block.opaqueCubeLookup[l])
	{
		byte0 = 2;
	}
	if (Block.opaqueCubeLookup[j1] && !Block.opaqueCubeLookup[k1])
	{
		byte0 = 5;
	}
	if (Block.opaqueCubeLookup[k1] && !Block.opaqueCubeLookup[j1])
	{
		byte0 = 4;
	}
	world.setBlockMetadataWithNotify(i, j, k, byte0);
}
public boolean blockActivated(World world, int i, int j, int k, EntityPlayer entityplayer)
{
	if (world.isRemote)
	{
		return true;
	}
	else
	{
		TileEntityBeefMachine tileentitybeefmachine = (TileEntityBeefMachine)world.getBlockTileEntity(i, j, k);
		ModLoader.openGUI(entityplayer, new GuiBeefMachine(entityplayer.inventory, tileentitybeefmachine));
		return true;
	}
}
public int idDropped(int i, Random random, int j)
{
 return 240;
}

public TileEntity getBlockEntity()
{
	return new TileEntityBeefMachine();
}
}

 

 

 

Ten kod robiłem na podstawie tego z pieca.

Gdy usunę linijkę addSlot niema błędu!

Myśle że coś jest nie tak z TileEntity, mam rację?

Opublikowano

@up chyba nie trzeba dodawać SlotCOŚTAM.java to się daje jak jest inny rodzaj slotu, a ja chcę zwykły

i dzięki za podanie kogoś kto robi takie tutoriale

Opublikowano

Mam takie same błędy jak Grzesiowu z kropkami i literą c w class

skopiowałem kod od karol202(na początku 10 strony) i pozmieniałem na to co ja chce mieć i działa.

 

zrobił, po wrzuceniu do minecraft.jar wyskakuje czarny ekran, log z modloader.txt:

 

 

2012-05-20 18:39:44 ModLoader init

FINE: ModLoader 1.2.5 Initializing...

2012-05-20 18:39:44 ModLoader readFromClassPath

FINER: Adding mods from C:\Users\Grzesio\AppData\Roaming\.minecraft\bin\minecraft.jar

2012-05-20 18:39:44 ModLoader readFromClassPath

FINER: Zip found.

2012-05-20 18:39:45 ModLoader getUniqueItemSpriteIndex

FINER: THROW

java.lang.Exception: No registry for this texture: /stal.png

at ModLoader.getUniqueSpriteIndex(ModLoader.java:722)

at ModLoader.addOverride(ModLoader.java:357)

at mod_Grzesiowu.<init>(mod_Grzesiowu.java:14)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

at java.lang.reflect.Constructor.newInstance(Unknown Source)

at java.lang.Class.newInstance0(Unknown Source)

at java.lang.Class.newInstance(Unknown Source)

at ModLoader.addMod(ModLoader.java:294)

at ModLoader.readFromClassPath(ModLoader.java:1210)

at ModLoader.init(ModLoader.java:886)

at ModLoader.addAllRenderers(ModLoader.java:189)

at ahu.<init>(ahu.java:77)

at ahu.<clinit>(ahu.java:8)

at net.minecraft.client.Minecraft.a(SourceFile:273)

at net.minecraft.client.Minecraft.run(SourceFile:657)

at java.lang.Thread.run(Unknown Source)

2012-05-20 18:39:55 ModLoader addMod

FINE: Mod Initialized: "mod_Grzesiowu 1.2c" from mod_Grzesiowu.class

2012-05-20 18:39:55 ModLoader init

FINE: Mod Loaded: "mod_Grzesiowu 1.2c"

2012-05-20 18:39:55 ModLoader init

FINER: THROW

java.lang.ArrayIndexOutOfBoundsException: 400

at ModLoader.initStats(ModLoader.java:926)

at ModLoader.init(ModLoader.java:910)

at ModLoader.addAllRenderers(ModLoader.java:189)

at ahu.<init>(ahu.java:77)

at ahu.<clinit>(ahu.java:8)

at net.minecraft.client.Minecraft.a(SourceFile:273)

at net.minecraft.client.Minecraft.run(SourceFile:657)

at java.lang.Thread.run(Unknown Source)

Opublikowano

@Grzesiowu a czy plik stal.png jest bezpośrednio w minecraft.jar czy w jakimś folderze?

I najlepiej daj kod

ok zapomniałem i nie wrzuciłem do minecraft.jar pliku stal.png, tera działa

Opublikowano

Minie to wpieńa niewiem 3-4h siedze na tym i szie tak wkurzyłem,że se wszystko wyinstalowałem i papa z modowaniem[PROSZĘ O ZAKTUALIZOWANIE PORADNIKA]

Opublikowano

Ale ja skończyłem z modowaniem i nie mam mcp itp.. jeżeli zaktualizują poradnik spróbuję stworzyć moda na rubinowe itemy i na pilot,który będzie wszysko niszczył za 1 uderzeniem,ale to dopiero kiedy uda mi się stworzyć moda [blok]

Opublikowano

Mam problem podczas rekompilacji wyskakują mi takie errory:

errorcc.png

 

plik mod:

package net.minecraft.src;
public class mod_ZylyIRudy extends BaseMod
{
public static final Block rudaKrysztalu = new BlockRudaKrysztalu(97, 0).setBlockName("rudaKrysztalu").setHardness(2F).setResistance(0F).setLightValue(2,5F);
public String Version()
	{
			return "0.1";
	}
public mod_ZylyIRudy ()
	{
	   rudaKrysztalu.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/RudyIZyly/ruda_krysztalu.png");
	   ModLoader.RegisterBlock(rudaKrysztalu);
	   ModLoader.AddName(rudaKrysztalu, "Ruda Krysztalu");
	}
}

 

plik block:

package net.minecraft.src;
public class BlockRudaKrysztalu extends Block
{
	protected BlockRudaKrysztalu(int i, int j)
	{
			super(i, j, Material.iron);
	}
}

 

proszę o pomoc nie mogę się niczego doczytać.

fbtlo.jpg

 

Jeśli chcesz sygnaturkę, napisz na PW.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...