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

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

Witam! Czy mógłby mi ktoś pomóc.

A więc przy tworzeniu bloku i recompilacji pojawia mi się taki oto błąd:

 

 

 

== MCP 7.23 (data: 7.23, client: 1.4.5, server: 1.4.5) ==

# found ff, ff patches, srgs, name csvs, doc csvs, param csvs, renumber csv, ast

yle, astyle config

== Recompiling client ==

> Cleaning bin

> Recompiling

'"C:\Program Files\Java\jdk1.7.0\bin\javac" -Xlint:-options -deprecation -g -sou

rce 1.6 -target 1.6 -...' failed : 1

 

== ERRORS FOUND ==

 

src\minecraft\net\minecraft\src\BlokAmelinium.java:3: error: class BlockAmeliniu

m is public, should be declared in a file named BlockAmelinium.java

public class BlockAmelinium extends Block

^

 

src\minecraft\net\minecraft\src\mod_Amelinium.java:5: error: cannot find symbol

public static Block Amelinium = new BlockAmelinium(140, 0).setBlockName("Ame

linium").setHardness(2.5F).setResistance(tntF);

 

^

 

symbol: variable tntF

location: class mod_Amelinium

2 errors

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

 

== Recompiling server ==

> Cleaning bin

> Recompiling

- Done in 11.80 seconds

Aby kontynuować, naciśnij dowolny klawisz . . .

 

 

 

A tu do bloku:

 

 

 

package net.minecraft.src;

 

public class mod_Amelinium extends BaseMod

{

public static Block Amelinium = new BlockAmelinium(140, 0).setBlockName("Amelinium").setHardness(2.5F).setResistance(tntF);

public String getVersion()

{

return "1.0";

}

public void load() {}

public mod_Amelinium()

{

Amelinium.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/C:/mod/amelin.png");

ModLoader.registerBlock(Amelinium);

ModLoader.addName(Amelinium, "Blok Amelinowy");

}

}

 

 

 

 

 

package net.minecraft.src;

import java.util.Random;

public class BlockAmelinium extends Block

{

public BlockAmelinium(int i, int j)

{

super(i, j, Material.cloth);

this.setCreativeTab(CreativeTabs.tabBlock);

}

}

 

 

Opublikowano

@up czy ja pisałem żeby w tym miejscu pisać tntF ?

.setResistance(tntF)

I zmień nazwę pliku bloku z BlokAmelinium na BlockAmelinium

Opublikowano

Dobra, wszystko okay. Dzięki.

Ale gdy wżuciłem mod do minecraft.jar pojawił mi się błąd w czasie włączania gry:

 

 

 

 

 

Minecraft has crashed!

----------------------

 

Minecraft has stopped running because it encountered a problem; ModLoader has failed to initialize.

 

A full error report has been saved to C:\Users\Tomek\AppData\Roaming\.minecraft\crash-reports\crash-2012-12-11_18.47.04-client.txt - Please include a copy of that file (Not this screen!) if you report this crash to anyone; without it, they will not be able to help fix the crash :(

 

 

 

--- BEGIN ERROR REPORT 53ed9e19 --------

Full report at:

C:\Users\Tomek\AppData\Roaming\.minecraft\crash-reports\crash-2012-12-11_18.47.04-client.txt

Please show that file to Mojang, NOT just this screen!

 

Generated 11.12.12 18:47

 

-- System Details --

Details:

Minecraft Version: 1.4.5

Operating System: Windows 7 (x86) version 6.1

Java Version: 1.7.0_05, Oracle Corporation

Java VM Version: Java HotSpot Client VM (mixed mode), Oracle Corporation

Memory: 450903800 bytes (430 MB) / 518979584 bytes (494 MB) up to 1037959168 bytes (989 MB)

JVM Flags: 2 total; -Xms512m -Xmx1024m

AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used

Suspicious classes: ModLoader, EntityRendererProxy, ModTextureStatic, ...]

IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0

ModLoader: Mods loaded: 2

ModLoader 1.4.5

mod_Amelinium 1.0

 

 

java.lang.ArrayIndexOutOfBoundsException: 401

at ModLoader.initStats(ModLoader.java:953)

at ModLoader.init(ModLoader.java:929)

at ModLoader.addAllRenderers(ModLoader.java:215)

at bbj.<init>(RenderManager.java:93)

at bbj.<clinit>(RenderManager.java:14)

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

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

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

--- END ERROR REPORT a768f35f ----------

 

 

Opublikowano

Tak, napisałem 3F.

Wszystko ładnie się recompilowało i (reobfuscatowało).

Ale gdy włączam minecrafta, pojawia się tak błąd, jak w poprzednim poście wpisałem.

 

@Dół:

Myślę, że winą modloadera nie może być, bo każdy korzystający z tego tuta, by miał ten sam błąd.

Modloader najnowszy ściągnięty z linku z tego tematu.

Opublikowano

Siema zrobiłęm swojego moda.

Działa nie do końca poprawnie.

Jest to ruda i z niej miał wypadać inny item niż blok jak np.ruda węgla,lapizu,diaxów.

 

Oto mój kod

 

 

package net.minecraft.src;

import java.util.Random;

public class mod_sulfurore extends BaseMod

{

public static Block Sulfuro = new BlockSulfuro(200, 0).setBlockName("Sulfuro").setHardness(0.5F).setResistance(3F);

public static Item Sulfur = new Item(500).setItemName("Sulfur");

public String getVersion()

{

return "1.0";

}

public void load() {}

public mod_sulfurore()

{

Sulfuro.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/SulfurMod/SulfurOre.png");

Sulfur.iconIndex = ModLoader.addOverride("/gui/items.png", "/SulfurMod/Sulfur.png");

ModLoader.registerBlock(Sulfuro);

ModLoader.addName(Sulfuro, "Sulfur Ore");

ModLoader.addName(Sulfur, "Sulfur");

}

public void generateSurface(World world, Random random, int i, int j)

{

for (int k = 0; k < 3; k++)

{

int x = i + random.nextInt(35);

int y = random.nextInt(70);

int z = j + random.nextInt(35);

(new WorldGenMinable(Sulfuro.blockID, 6)).generate(world, random, x, y, z);

}

}

}

 

 

 

A to druga część tym razem blok

 

package net.minecraft.src;

import java.util.Random;

public class BlockSulfuro extends Block

{

public BlockSulfuro(int i, int j)

{

super(i, j, Material.rock);

}

public int idDropped(int i, Random j, int k)

{

return mod_sulfurore.sulfur.blockID;

}

}

 

Chce aby zamiast bloku item wypadał ale wtedy jest źle w:

return mod_sulfurore.sulfur.blockID;

Opublikowano

@Sslimer

Na końcu twojego kodu (w pliku bloku) jest idDropped w return daj NAZWAITEMU.shiftedIndex (czy jakoś tak). Nie wiem jak zrobić żeby wypadało kilka. Spoileruj kody.

Halo!

Opublikowano

Z moim modem jest tylko jeden problem.

Przy tworzeniu nowego świata jak już sie pojawi niby świat ,to jest postać i widać tylko niebo ,słońce ,a nie widać ziemi.

I jak się poczeka minute czy dwie to pojawia się ląd ,ale on jest cały poszarpany-chunki mają różne biomy i są nie spójne ,są wielkie wyrwy.

Jak to naprawić pomógł by ktoś?

 

O i jeszcze do punktu 1. o bloku i dropie z niego.Tam jest że wypadnie 1 blok a jak zrobić aby wypadała jakaś ilośc np. od 3 do 7?

Opublikowano

@up żeby wypadało kilka przedmiotów trzeba dać

public int quantityDropped(int i)
{
   return ILOŚĆ;
}

A możesz dać screena tego że nie ma lądu i screena tych poszarpanych chunków?

Opublikowano

teraz dobrze?

bo nie wykrywa błędów

screeny zaraz będą mam problem z ich wysłąniem

pomoże ktoś?

 

package net.minecraft.src;

import java.util.Random;

public class BlockSulfuro extends Block

{

public BlockSulfuro(int i, int j)

{

super(i, j, Material.rock);

}

public int Dropped(int i, Random j, int k)

{

return mod_sulfurore.Sulfur.shiftedIndex;

}

public int quantityDropped(int i)

{

return 5;

}

}

Opublikowano

To jest zdjęcie gdy się chunki łądują.

Zawsze u mnie jest to szybkie i nie ma czegoś takiego ,ale z modem bardzo wolno się ładuje.

Tym razem nie miałem błędów z poszarpanymi chunkami.

1355432027-U798906.png

Opublikowano

Witam! Z blokami, rudą wszystko good.

1.A teraz problem pojawia się przy tworzeniu nowego przedmiotu - nie ma żadnego błędu, wszystko pięknie, tak jak w poradniku opisane było zrobione, tylko że ten przedmiot nie pojawia się w grze. Z jakiego to może być powodu??

2.A drugi problem to crafting - jeżeli dodam przepis w danym modzie, to nie mogę użyć do craftingu bloku z moda innego, bo go nie wyszukuje, itp. Mogę jedynie skorzystać z przedmiotów Item.DANYITEM lub Block_DANYBLOCK z minecrafta lub z moda, w którym znajduje się przepis nie dodając mu przedrostka. Czy tak ma być?

Opublikowano

@up 1.Chodzi ci o to że nie ma go w menu Creative? Spróbuj przywołać go komendą /give . 2. Ale co w tym dziwnego że nie możesz użyć przedmiotów z innego moda? Trzeba go zdekompilować razem z minecraftem.

 

@2up zamień to

int x = i + random.nextInt(35);
int y = random.nextInt(70);
int z = j + random.nextInt(35);

na to

int x = i + random.nextInt(16);
int y = random.nextInt(70);
int z = j + random.nextInt(16);

Opublikowano

Co do 2. Dzięki, zapewne w tym problem :D

Ale 1. Nie ma go nawet pod ID gdy wpisuję w grze /give 401 (Bo taki ID przydzieliłem przedmiotowi).

Opublikowano

co w tym zmienic

aby zamiast blkou item wypadał

przed dodaniem

 

public int quantityDropped(int i)

{

return 5;

}

 

wypadał jeden item a jak to dodałem to wypada tylko blok i to jaden na dodatek

 

 

 

 

package net.minecraft.src;

import java.util.Random;

public class BlockSulfuro extends Block

{

public BlockSulfuro(int i, int j)

{

super(i, j, Material.rock);

}

public int Dropped(int i, Random j, int k)

{

return mod_sulfurore.Sulfur.shiftedIndex;

}

public int quantityDropped(int i)

{

return 5;

}

}

Opublikowano

ten co jest zrobiony w tym pliku czyli u mnie ruda a ma wypadać item który zrobiłem w pliku mod

bez tego określenia ilości dropu wypada item a z określeniem ruda

Opublikowano

To jak pomoże ,mi ktoś z tym i z generowaniem się świata?

O i jak zrobić recepturę craftingu jak dla bloków np. żelaza ,lapisu ,złota,diaxów?

Chodzi mi o to że robimy coś przez ułożenie 3 na 3 i jak to włożymy na pole to możemy odwrócić efekt i rozdzielić na 9 rzeczy.

Opublikowano

@up przecież wynik w craftingu jest tylko jeden. Z tą ilością dropu to zamień tą funkcje co ci dałem na

public int quantityDropped(Random random)
{
return 5;
}

A do generowania świata przecież pisałem że zamień

int x = i + random.nextInt(35);
int y = random.nextInt(70);
int z = j + random.nextInt(35);

na to

int x = i + random.nextInt(16);
int y = random.nextInt(70);
int z = j + random.nextInt(16);

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...