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

Zaawansowane Tworzenie Modów


karol202

Rekomendowane odpowiedzi

Opublikowano

Mam takie pytanko.Ja nie mogę wpisać tej ścieżki.Mógłby mi ktoś wytłumaczyć jak to zrobić?Mam Win 7.

Oczywiście chodzi o ścieżkę Javy do Path.Wpisywałem i jak uruchamiałem konsolę "cmd" i wpisywałem "javac" (bez "").

  • Odpowiedzi 1,2 tys.
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

Ja chciałbym przypomnieć o swoim problemie...

 

Mam taki problem, iż przy rekopilacji pliku mod_****.java wyspępuje taki oto błąd:

 

 

== ERRORS FOUND ==
src\minecraft\net\minecraft\src\mod_Modzik.java:52: error: incompatible types
			polblok = (new Block(254, Material.wood)).setStepSound(Block.sou
ndWoodFootstep).setHardness(0.7F).setResistance(10F).setBlockName("polblok").set
LightValue(0.9F).setBlockBounds(0F, 0F, 0F, 1F, 1F, 1F);

						   ^
 required: Block
 found:	void
1 error
=================

 

 

 

plik mod_****.java:

 

 

package net.minecraft.src;
public class mod_Modzik extends BaseMod
{
public static final Block blok;
public static final Block bloczek;
public static final Item dziwnamaz = new Item(261).setItemName("dziwnamaz");
public static final Block polblok;
public mod_Modzik()
{
	ModLoader.registerBlock(bloczek);
	ModLoader.registerBlock(blok);
	ModLoader.registerBlock(polblok);
	ModLoader.addName(bloczek, "Mieszany");
	ModLoader.addName(blok, "Blok");
	ModLoader.addName(dziwnamaz, "Dziwna maź");
	ModLoader.addName(polblok, "Pół-blok");
	dziwnamaz.iconIndex = ModLoader.addOverride("/gui/items.png", "/textury/dziwnamaz.png");
	bloczek.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/textury/bloczek.png");
	blok.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/textury/blok.png");
	polblok.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "textury/polblok.png");
	ModLoader.addRecipe(new ItemStack(blok, 1), new Object[]
			{
				"RGR", "GRG", "RGR", 'R', Item.redstone, 'G', Block.glowStone
			});
	ModLoader.addRecipe(new ItemStack(blok, 1), new Object[]
			{
				" M ", " M ", 'M', dziwnamaz
			});
	ModLoader.addRecipe(new ItemStack(polblok, 1), new Object[]
	  {
	" D ", " Z ", 'Z', Block.dirt, 'D', dziwnamaz
});
	ModLoader.addSmelting(250, new ItemStack(bloczek, 2));
	ModLoader.addSmelting(252, new ItemStack(dziwnamaz, 1));
}
public String getVersion()
{
	return "v1.0";
}
public void load()
{}
static
{
	blok = (new Block(250, Material.ice)).setStepSound(Block.soundGlassFootstep).setHardness(0.7F).setResistance(10F).setBlockName("blok").setLightValue(1F);
	bloczek = (new Block(252, Material.rock)).setStepSound(Block.soundStoneFootstep).setHardness(0.4F).setResistance(5F).setBlockName("bloczek").setLightValue(0.6F);
	polblok = (new Block(254, Material.wood)).setStepSound(Block.soundWoodFootstep).setHardness(0.7F).setResistance(10F).setBlockName("polblok").setLightValue(0.9F).setBlockBounds(0F, 0F, 0F, 1F, 1F, 1F);
}
}

 

 

 

problem pojawia się w ostatniej linijce deklarowanego kodu:

polblok = (new Block(254, Material.wood)).setStepSound(Block.soundWoodFootstep).setHardness(0.7F).setResistance(10F).setBlockName("polblok").setLightValue(0.9F).setBlockBounds(0F, 0F, 0F, 1F, 1F, 1F);

 

a dokładniej w tej części:

.setBlockBounds(0F, 0F, 0F, 1F, 1F, 1F);

 

wywnioskowałem to na podstawie metody pób i błędów wycinania prawdopodobnych problemów, i tylko ta jedna częśc wywołuje ten błąd.

 

Oczywiście to tylko mój wniosek, który może byc błędny :D

 

Prosze o pomoc

Opublikowano

@2xup ale w tucie jest inaczej nie trzeba inicjalizować bloków w static{} i setBlockBounds ma być w innym pliku.

 

@up zapomniałem,

REDDIAMOND( 3,  UZY, 15F, 300, 14)

zamień na

REDDIAMOND( 3,  UZY, 15F, 300, 14);

I oczywiście UZY na maksymalną ilość użyć

Opublikowano

Chciałbym przypomnieć o swoim problemie.

 

Mam taką sytuację, iż przy rekopilacji pliku mod_****.java wyspępuje taki oto błąd:

 

 

== ERRORS FOUND ==
src\minecraft\net\minecraft\src\mod_Modzik.java:52: error: incompatible types
			polblok = (new Block(254, Material.wood)).setStepSound(Block.sou
ndWoodFootstep).setHardness(0.7F).setResistance(10F).setBlockName("polblok").set
LightValue(0.9F).setBlockBounds(0F, 0F, 0F, 1F, 1F, 1F);

						   ^
 required: Block
 found:	void
1 error
=================

 

 

 

plik mod_****.java:

 

 

package net.minecraft.src;
public class mod_Modzik extends BaseMod
{
public static final Block blok;
public static final Block bloczek;
public static final Item dziwnamaz = new Item(261).setItemName("dziwnamaz");
public static final Block polblok;
public mod_Modzik()
{
	ModLoader.registerBlock(bloczek);
	ModLoader.registerBlock(blok);
	ModLoader.registerBlock(polblok);
	ModLoader.addName(bloczek, "Mieszany");
	ModLoader.addName(blok, "Blok");
	ModLoader.addName(dziwnamaz, "Dziwna maź");
	ModLoader.addName(polblok, "Pół-blok");
	dziwnamaz.iconIndex = ModLoader.addOverride("/gui/items.png", "/textury/dziwnamaz.png");
	bloczek.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/textury/bloczek.png");
	blok.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/textury/blok.png");
	polblok.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "textury/polblok.png");
	ModLoader.addRecipe(new ItemStack(blok, 1), new Object[]
			{
				"RGR", "GRG", "RGR", 'R', Item.redstone, 'G', Block.glowStone
			});
	ModLoader.addRecipe(new ItemStack(blok, 1), new Object[]
			{
				" M ", " M ", 'M', dziwnamaz
			});
	ModLoader.addRecipe(new ItemStack(polblok, 1), new Object[]
	  {
	" D ", " Z ", 'Z', Block.dirt, 'D', dziwnamaz
});
	ModLoader.addSmelting(250, new ItemStack(bloczek, 2));
	ModLoader.addSmelting(252, new ItemStack(dziwnamaz, 1));
}
public String getVersion()
{
	return "v1.0";
}
public void load()
{}
static
{
	blok = (new Block(250, Material.ice)).setStepSound(Block.soundGlassFootstep).setHardness(0.7F).setResistance(10F).setBlockName("blok").setLightValue(1F);
	bloczek = (new Block(252, Material.rock)).setStepSound(Block.soundStoneFootstep).setHardness(0.4F).setResistance(5F).setBlockName("bloczek").setLightValue(0.6F);
	polblok = (new Block(254, Material.wood)).setStepSound(Block.soundWoodFootstep).setHardness(0.7F).setResistance(10F).setBlockName("polblok").setLightValue(0.9F).setBlockBounds(0F, 0F, 0F, 1F, 1F, 1F);
}
}

 

 

 

problem pojawia się w ostatniej linijce deklarowanego kodu:

polblok = (new Block(254, Material.wood)).setStepSound(Block.soundWoodFootstep).setHardness(0.7F).setResistance(10F).setBlockName("polblok").setLightValue(0.9F).setBlockBounds(0F, 0F, 0F, 1F, 1F, 1F);

 

a dokładniej w tej części:

.setBlockBounds(0F, 0F, 0F, 1F, 1F, 1F);

 

wywnioskowałem to na podstawie metody pób i błędów wycinania prawdopodobnych problemów, i tylko ta jedna częśc wywołuje ten błąd.

 

Oczywiście to tylko mój wniosek, który może byc błędny :D

 

Prosze o pomoc...

Opublikowano

teraz wywala takie bledy

 

== ERRORS FOUND ==

 

src\minecraft\net\minecraft\src\ItemRedDiamondPickaxe.java:3: error: cannot find

symbol

public class ItemRedDiamondPickaxe extends ItemRedDiamondTool

^

 

symbol: class ItemRedDiamondTool

src\minecraft\net\minecraft\src\ItemRedDiamondPickaxe.java:19: error: cannot fin

d symbol

return toolMaterial.getHarvestLevel() == 3;

^

 

symbol: variable toolMaterial

location: class ItemRedDiamondPickaxe

src\minecraft\net\minecraft\src\ItemRedDiamondPickaxe.java:24: error: cannot fin

d symbol

return toolMaterial.getHarvestLevel() >= 2;

^

 

symbol: variable toolMaterial

location: class ItemRedDiamondPickaxe

src\minecraft\net\minecraft\src\ItemRedDiamondPickaxe.java:29: error: cannot fin

d symbol

return toolMaterial.getHarvestLevel() >= 2;

^

 

symbol: variable toolMaterial

location: class ItemRedDiamondPickaxe

src\minecraft\net\minecraft\src\ItemRedDiamondPickaxe.java:34: error: cannot fin

d symbol

return toolMaterial.getHarvestLevel() >= 1;

^

 

symbol: variable toolMaterial

location: class ItemRedDiamondPickaxe

src\minecraft\net\minecraft\src\ItemRedDiamondPickaxe.java:39: error: cannot fin

d symbol

return toolMaterial.getHarvestLevel() >= 1;

^

 

symbol: variable toolMaterial

location: class ItemRedDiamondPickaxe

src\minecraft\net\minecraft\src\ItemRedDiamondPickaxe.java:44: error: cannot fin

d symbol

return toolMaterial.getHarvestLevel() >= 2;

^

 

symbol: variable toolMaterial

location: class ItemRedDiamondPickaxe

src\minecraft\net\minecraft\src\ItemRedDiamondPickaxe.java:65: error: cannot fin

d symbol

return efficiencyOnProperMaterial;

^

 

symbol: variable efficiencyOnProperMaterial

location: class ItemRedDiamondPickaxe

src\minecraft\net\minecraft\src\ItemRedDiamondPickaxe.java:69: error: cannot fin

d symbol

return super.getStrVsBlock(itemstack, block);

^

 

symbol: variable super

location: class ItemRedDiamondPickaxe

src\minecraft\net\minecraft\src\ItemRedDiamondPickaxe.java:77: error: cannot fin

d symbol

Block.cobblestone, Block.stairDouble, Bl

ock.stairSingle, Block.stone, Block.sandStone, Block.cobblestoneMossy, Block.ore

Iron, Block.blockSteel, Block.oreCoal, Block.blockGold,

^

 

symbol: variable stairDouble

location: class Block

src\minecraft\net\minecraft\src\ItemRedDiamondPickaxe.java:77: error: cannot fin

d symbol

Block.cobblestone, Block.stairDouble, Bl

ock.stairSingle, Block.stone, Block.sandStone, Block.cobblestoneMossy, Block.ore

Iron, Block.blockSteel, Block.oreCoal, Block.blockGold,

 

^

 

symbol: variable stairSingle

location: class Block

src\minecraft\net\minecraft\src\mod_morediamonds.java:8: error: cannot find symb

ol

public static Item reddiamondpickaxe = new ItemRedDiamondPickaxe(123, EnumRedDia

mondToolMaterial.REDDIAMOND).setItemName("RedDiamond Pickaxe");

 

^

 

symbol: method setItemName(String)

location: class ItemRedDiamondPickaxe

src\minecraft\net\minecraft\src\mod_morediamonds.java:25: error: cannot find sym

bol

ModLoader.addRecipe(new ItemStack(mod_morediamonds.reddiamondpickaxe,

1), new Object[] {"XXX", " Y ", " Y ", Character.valueOf('X'), new ItemStack(It

em.reddiamond), Character.valueOf('Y'), Item.stick});

 

 

^

 

symbol: variable reddiamond

location: class Item

13 errors

==================

ale ja nie mam zadnego setblockbounds i to w jakim ma byc pliku

Opublikowano

@up

ModLoader.addRecipe(new ItemStack(mod_morediamonds.reddiamondpickaxe,
1), new Object[] {"XXX", " Y ", " Y ", Character.valueOf('X'), new ItemStack(It
em.reddiamond), Character.valueOf('Y'), Item.stick});

skąd ty to wziąłeś?!

 

Wszystko nie wg. tuta

Opublikowano

@up

ModLoader.addRecipe(new ItemStack(mod_morediamonds.reddiamondpickaxe,
1), new Object[] {"XXX", " Y ", " Y ", Character.valueOf('X'), new ItemStack(It
em.reddiamond), Character.valueOf('Y'), Item.stick});

skąd ty to wziąłeś?!

 

Wszystko nie wg. tuta

poprostu mialem juz kod inny i chce dorobic a nie zmieniac wszystko

a zreszta ten kod jest zly :

 

if (block == Block.obsidian)

{

return toolMaterial.getHarvestLevel() == 3;

}

 

if (block == Block.blockDiamond || block == Block.oreDiamond)

{

return toolMaterial.getHarvestLevel() >= 2;

}

 

if (block == Block.blockGold || block == Block.oreGold)

{

return toolMaterial.getHarvestLevel() >= 2;

}

 

if (block == Block.blockSteel || block == Block.oreIron)

{

return toolMaterial.getHarvestLevel() >= 1;

}

 

if (block == Block.blockLapis || block == Block.oreLapis)

{

return toolMaterial.getHarvestLevel() >= 1;

}

 

if (block == Block.oreRedstone || block == Block.oreRedstoneGlowing)

{

return toolMaterial.getHarvestLevel() >= 2;

}

 

if (block.blockMaterial == Material.rock)

{

return true;

}

else

{

return block.blockMaterial == Material.iron;

}

Opublikowano

Cześć. Mam pytanie czy tworzenie moba który mógłby latac jak np.Enderdragon byłoby podobne do tworzenia zwykłego moba. Czyli czy wystarczyłoby np zmienić EnumCreatureType i dodać umiejętność latania tak jak jest ta od pływania czy jednak to jest zupełnie co innego?

 

Aha i jeszcze mam taki problem, po zrobieniu moba agresywnego łazi on po prostu dookoła i nie atakuje mnie. Czy trzeba dodać jakąś umiejętność albo coś pominełem może?

Opublikowano

Mam problem z modem

 

 


== MCP 7.0 (data: 7.0a, client: 1.3.1, server: 1.3.1) ==
# found jad, ff, jad patches, ff patches, osx patches, srgs, name csvs, doc csvs
, param csvs, renumber csv, astyle, astyle config
== Recompiling client ==
> Cleaning bin
> Recompiling
'"C:\Program Files\Java\jdk1.7.0_05\bin\javac" -Xlint:-options -deprecation -g -
source 1.6 -target 1....' failed : 1

== ERRORS FOUND ==

src\minecraft\net\minecraft\src\mod_EnergyObsidian.java:19: error: illegal start
of expression
       public String getVersion()
       ^

src\minecraft\net\minecraft\src\mod_EnergyObsidian.java:19: error: ';' expected
       public String getVersion()
                               ^

src\minecraft\net\minecraft\src\mod_EnergyObsidian.java:23: error: illegal start
of expression
       public void load() {}
       ^

src\minecraft\net\minecraft\src\mod_EnergyObsidian.java:23: error: illegal start
of expression
       public void load() {}
              ^

src\minecraft\net\minecraft\src\mod_EnergyObsidian.java:23: error: ';' expected
       public void load() {}
                       ^

src\minecraft\net\minecraft\src\mod_EnergyObsidian.java:24: error: illegal start
of expression
       public mod_EnergyObsidian();
       ^

src\minecraft\net\minecraft\src\mod_EnergyObsidian.java:58: error: reached end o
f file while parsing
}
^

7 errors
==================

!! Can not find server sources, try decompiling !!
Aby kontynuować, naciśnij dowolny klawisz . . .


package net.minecraft.src;

public class mod_EnergyObsidian extends BaseMod
{
//Bloki
       public static Block Obsidian = new BlockObsidian(255, 0).setBlockName("Obsidian").setHardness(40F).setResistance(30F);
       public static Block ObsidianDisable = new BlockObsidianDisable(254, 0).setBlockName("ObsidianDisable").setHardness(40F).setResistance(30F);
       public static Block EnergyBlock = new BlockEnergyBlock(253, 0).setBlockName("EnergyBlock").setHardness(5F).setResistance(5F);
       public static Block CobbleObsidian = new BlockCobbleObsidian(252, 0).setBlockName("CobbleObsidian").setHardness(35F).setResistance(25F);
       public static Block GlowObsidian = new BlockGlowObsidian(251, 0).setBlockName("GlowObsidian").setHardness(5F).setResistance(5F).setLightValue(1F);
       public static Block DullObsidian = new BlockDullObsidian(250, 0).setBlockName("DullObsidian").setHardness(5F).setResistance(5F);
//Itemy
       public static Item ObsidianIngot = new Item(200).setItemName("ObsidianIngot");
       public static Item EvilBone = new Item(201).setItemName("EvilBone");
       public static Item Rock = new Item(202).setItemName("Rock");
       public static Item PowderedObsidian = new Item(203).setItemName("PowderedObsidian");
       public static Item EnergyDust = new Item(204).setItemName("EnergyDust");
{
       public String getVersion()
       {
               return "1.1";
       }
       public void load() {}
       public mod_EnergyObsidian();
       {
//Textury
               Obsidian.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/advicons/obsidian.png");
               ObsidianDisable.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/advicons/obsidiandisable.png");
               EnergyBlock.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/advicons/energyblock.png");
               CobbleObsidian.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/advicons/cobbleobsidian.png");
               GlowObsidian.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/advicons/glow.png");
               DullObsidian.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/advicons/dull.png");
               EnergyDust.iconIndex = ModLoader.addOverride("/gui/items.png", "/advicons/energydust.png");
               PowderedObsidian.iconIndex = ModLoader.addOverride("/gui/items.png", "/advicons/mixobsidian.png");
               Rock.iconIndex = ModLoader.addOverride("/gui/items.png", "/advicons/rock.png");
               EvilBone.iconIndex = ModLoader.addOverride("/gui/items.png", "/advicons/evilstick");
               ObsidianIngot.iconIndex = ModLoader.addOverride("/gui/items.png", "/advicons/obsidianingot.png");
//Register
               ModLoader.registerBlock(Obsidian);
               ModLoader.registerBlock(ObsidianDisable);
               ModLoader.registerBlock(EnergyBlock);
               ModLoader.registerBlock(CobbleObsidian);
               ModLoader.registerBlock(GlowObsidian);
               ModLoader.registerBlock(DullObsidian);
//Name
               ModLoader.addName(Obsidian, "Obsidian");
               ModLoader.addName(ObsidianDisable, "Obsidian");
               ModLoader.addName(EnergyBlock, "Energy Block");
               ModLoader.addName(CobbleObsidian, "CobbleObsidian");
               ModLoader.addName(GlowObsidian, "GlowObsidian");
               ModLoader.addName(DullObsidian, "DullObsidian");
               ModLoader.addName(ObsidianIngot, "Obsidian Ingot");
               ModLoader.addName(EvilBone, "Evil Bone");
               ModLoader.addName(Rock, "Rock");
               ModLoader.addName(PowderedObsidian, "Powdered Obsidian");
               ModLoader.addName(EnergyDust, "Enegy Dust");
       }
}

 

 

Opublikowano

Oto kod tego moba który nie atakuje:)

 

 

package net.minecraft.src;

import java.util.Random;
public class Entitykosmita extends EntityMob
{
						 public Entitykosmita(World world)
{
														 super(world);
				  texture = "/byja/kosmita.png";
		   moveSpeed = 1F;
		 attackStrength = 1;
	 getNavigator().func_48664_a(true);
	 tasks.addTask(0, new EntityAIWander(this, 0.25F));
	 tasks.addTask(1, new EntityAISwimming(this));
	 tasks.addTask(2, new EntityAIOpenDoor(this, true));
	 tasks.addTask(3, new EntityAIOpenDoor(this, true));
	 tasks.addTask(4, new EntityAIAvoidEntity(this, net.minecraft.src.EntityZombie.class, 8F, 0.3F, 0.35F));

}
	 public int getMaxHealth()
 {
		 return 10;
 }

public boolean isAIEnabled()
  {
	   return true;
  }

    protected String getLivingSound()
{
	   return "mob.Creeper.default";
}
 protected String getHurtSound()
 {
	  return "mob.Skeleton.defaulthurt";
 }
          protected String getDeathSound()
  {
			  return "mob.Zombie.defaultdeath";
 }
	   protected int getDropItemId()
						 {
														 return Item.stick.shiftedIndex;
						 }

						 protected boolean canDespawn()
						 {
														 return false;
						 }
}

 

 

a tak jest dodany w mod_

ModLoader.registerEntityID(Entitykosmita.class, "kosmita", ModLoader.getUniqueEntityId());
 ModLoader.addSpawn(Entitykosmita.class, 7, 3, 12, EnumCreatureType.monster);
}
public void addRenderer(Map map)
						 {
						 map.put(Entitykosmita.class, new RenderBiped(new ModelBiped(), 0.5F));
						 }

Opublikowano

Sorki za post pod postem ale mi się coś edytuj nie chce włączyć(dziwne)

@AAeyAlan spróbuj usunąć { nad public String getVersion()

 

{
               public String getVersion()
               {
                               return "1.1";
               }
               public void load() {}
               public mod_EnergyObsidian();
               {

Opublikowano

Cześć. Mam taką sprawe czy wiesz może jak dodać aby poszczególne bloki można było włączać lub wyłączać w configu lub innym pliku. Np że stwożyłem 6 bloków i żeby każdy z nich można było włączyć lub wyłączyć np 1=true 2=false itp.?

Byłbym wdzięczny za pomoc :)

Opublikowano

Da się, ale było by z tym trochę roboty i łatwiej by było dodać forge, ale o tym kiedyś napiszę w jakiejś części.

Opublikowano

Karol zrób na wersje 1.3.2 BO JUŻ JEST

 

@Edit:

 

mam error przy decomplice:

 


15:02:10 - RetroGuard error: COM.rl.obf.classfile.ClassFileException: ClassNotFound wh
15:02:10 - '"C:\Program Files\Java\jdk1.7.0_04\bin\java" -cp "runtime\bin\retroguard.jar;lib;lib\*;jars\bin\mine...' failed : 1
15:02:10 - 
15:02:10 - == ERRORS FOUND ==
15:02:10 - 
15:02:10 - Unrecoverable error during obfuscation, see log file for details.
15:02:10 - RetroGuard error: COM.rl.obf.classfile.ClassFileException: ClassNotFound wh
15:02:10 - ==================
15:02:10 - 
15:02:10 - Decompile failed

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...