Skocz do zawartości
Minecraft.pl Server Banner
  • 0
HARDKAMIL

[Solved]Pomocy! Znowu problemy z javą.

Pytanie

HARDKAMIL    16
Nie dawno założyłem temat o modzie z marzeń użytkowników.
Zrobiłem pliki moba - model, główną klasę i klasę renderowania.
Otworzyłem RenderManager i dodałem linijkę:
this.entityRenderMap.put(EntityPeople.class, new RenderPeople(new ModelPeople(), 0.7F));
Lecz debuger wywałił mi jakiś błąd.
Wogóle ten mój cały mcp jest jakiś dziwny, ale jak ktoś wie to będę wdzięczny.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

17 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
Chormon    136
Nie jesteśmy wróżkami. Jaki błąd ci wyskakuje?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • 0
maties7    13
[quote name='HARDKAMIL' timestamp='1352382857' post='99054']
Lecz debuger wywałił mi jakiś błąd.
[/quote]
Oczywiście my mamy zgadywać jaki to błąd? Zresztą sama treść mówi gdzie są problemy.

Swoją drogą po co nadpisujesz RenderManager? Piszesz bez żadnego wspomagacza typu ModLoader/Forge? Bo one pozwalają na rejestrowanie różnych rzeczy bez potrzeby nadpisywania bazowych plików.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • 0
HARDKAMIL    16
[quote name='maties7' timestamp='1352509187' post='99253']
Oczywiście my mamy zgadywać jaki to błąd? Zresztą sama treść mówi gdzie są problemy.

[/quote]

JA PYTAM O TO, CZY ZROBIŁEM JAKIŚ BŁĄD W DEKLARACJI, A NIE O TO JAK TO NAPRAWIAĆ.
A skoro chcecie wiedzieć, to w błędzie chodziło chyba o konstruktor model people, ale jak już wspomniałem mój mcp jest jakiś walnięty.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • 0
maties7    13
[quote name='HARDKAMIL' timestamp='1352728235' post='99466']
JA PYTAM O TO, CZY ZROBIŁEM JAKIŚ BŁĄD W DEKLARACJI, A NIE O TO JAK TO NAPRAWIAĆ.
[/quote]
Ja pier**le...

Dobra inaczej. Postaram ci coś wytłumaczyć.

Jedna linijka, która tu podałeś jest niewystarczająca do określenia, gdzie występuje błąd i czy w ogóle on występuje. Skąd mam wiedzieć, nie odwołujesz się do nieistniejącej klasy/metody/konstruktora itd. ?

Jeżeli się pytasz czy masz błąd w kodzie to odpowiedź jest prosta. Tak, masz błąd w kodzie, ponieważ się nie kompiluje. To jest taka oczywistość, że właściwie nie musiałeś pisać tego tematu, ponieważ wystarczy spróbować skompilować kod, żeby to wiedzieć.

A jeżeli się dodatkowo zastanawiasz się czy błąd występuje w podanej przez ciebie linijce to prawda jest taka, że nie mogę udzielić żadnej sensownej informacji. Mam za mało informacji. I jak już podajesz błąd to podajesz go na całego w niezmienionej formie, a nie jakieś tam "chodziło chyba".

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • 0
HARDKAMIL    16
To kod klasy entity:
[spoiler]package net.minecraft.src;

public class EntityPeople extends EntityAnimal
{
public EntityPeople(World par1World)
{
super(par1World);
this.texture = "/mob/steve.png";
this.setSize(0.9F, 1.3F);
this.getNavigator().setAvoidsWater(true);
this.tasks.addTask(0, new EntityAISwimming(this));
this.tasks.addTask(1, new EntityAIPanic(this, 0.38F));
this.tasks.addTask(2, new EntityAIMate(this, 0.2F));
this.tasks.addTask(3, new EntityAITempt(this, 0.25F, Item.wheat.shiftedIndex, false));
this.tasks.addTask(4, new EntityAIFollowParent(this, 0.25F));
this.tasks.addTask(5, new EntityAIWander(this, 0.2F));
this.tasks.addTask(6, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F));
this.tasks.addTask(7, new EntityAIRestrictOpenDoor(this));
this.tasks.addTask(8, new EntityAILookIdle(this));
}


public boolean isAIEnabled()
{
return true;
}

public int getMaxHealth()
{
return 16;
}


protected String getLivingSound()
{
return "mob.steve2";
}


protected String getHurtSound()
{
return "mob.steve3";
}


protected String getDeathSound()
{
return "mob.steve1";
}


protected float getSoundVolume()
{
return 0.4F;
}


protected int getDropItemId()
{
return Item.ingotGold.shiftedIndex;
}


protected void dropFewItems(boolean par1, int par2)
{
int var3 = this.rand.nextInt(3) + this.rand.nextInt(1 + par2);
int var4;

for (var4 = 0; var4 < var3; ++var4)
{
this.dropItem(Item.ingotGold.shiftedIndex, 1);
}

var3 = this.rand.nextInt(3) + 1 + this.rand.nextInt(1 + par2);

for (var4 = 0; var4 < var3; ++var4)
{
if (this.isBurning())
{
this.dropItem(Item.coal.shiftedIndex, 1);
}
else
{
this.dropItem(Item.bread.shiftedIndex, 1);
}
}
}


public boolean interact(EntityPlayer par1EntityPlayer)
{
ItemStack var2 = par1EntityPlayer.inventory.getCurrentItem();

if (var2 != null && var2.itemID == Item.bucketEmpty.shiftedIndex)
{
if (--var2.stackSize <= 0)
{
par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, new ItemStack(Item.bucketMilk));
}
else if (!par1EntityPlayer.inventory.addItemStackToInventory(new ItemStack(Item.bucketWater)))
{
par1EntityPlayer.dropPlayerItem(new ItemStack(Item.bucketWater.shiftedIndex, 1, 0));
}

return true;
}
else
{
return super.interact(par1EntityPlayer);
}
}


public EntityAnimal spawnBabyAnimal(EntityAnimal par1EntityAnimal)
{
return new EntityCow(this.worldObj);
}
}[/spoiler]

To kod klasy renderowania:
[spoiler]package net.minecraft.src;

public class RenderPeople extends RenderLiving
{
public RenderPeople(ModelBase par1ModelBase, float par2)
{
super(par1ModelBase, par2);
}

public void renderPeople(EntityPeople par1EntityPeople, double par2, double par4, double par6, float par8, float par9)
{
super.doRenderLiving(par1EntityPeople, par2, par4, par6, par8, par9);
}

public void doRenderLiving(EntityLiving par1EntityLiving, double par2, double par4, double par6, float par8, float par9)
{
this.renderPeople((EntityPeople)par1EntityLiving, par2, par4, par6, par8, par9);
}


public void doRender(Entity par1Entity, double par2, double par4, double par6, float par8, float par9)
{
this.renderPeople((EntityPeople)par1Entity, par2, par4, par6, par8, par9);
}
}[/spoiler]

A to deklaracja RenderManager:

this.entityRenderMap.put(EntityPeople.class, new RenderPeople(new ModelVillager(), 0.7F));

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • 0
HARDKAMIL    16
Robi się. A więc:

src\minecraft\net/minecraft\src\RenderManager.java 56:cannot find symbol
symbol: constructor ModelVillager()

this.entityRenderMap.put(EntityPeople.class, new RenderPeople(new ModelVillager(), 0.7F)); Edytowane przez HARDKAMIL

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • 0
Chormon    136
Jak wygląda twoja klasa ModelVillager?

I wrzucaj kod w znaczniki 'spoiler'.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • 0
HARDKAMIL    16
Dobra.

A klasa model villager wygląda tak:

[CODE]
package net.minecraft.src;
public class ModelVillager extends ModelBase
{
public ModelRenderer field_78191_a;
public ModelRenderer field_78189_b;
public ModelRenderer field_78190_c;
public ModelRenderer field_78187_d;
public ModelRenderer field_78188_e;
public ModelVillager(float par1)
{
this(par1, 0.0F);
}
public ModelVillager(float par1, float par2)
{
byte var3 = 64;
byte var4 = 64;
this.field_78191_a = (new ModelRenderer(this)).setTextureSize(var3, var4);
this.field_78191_a.setRotationPoint(0.0F, 0.0F + par2, 0.0F);
this.field_78191_a.setTextureOffset(0, 0).addBox(-4.0F, -10.0F, -4.0F, 8, 10, 8, par1);
this.field_78191_a.setTextureOffset(24, 0).addBox(-1.0F, -3.0F, -6.0F, 2, 4, 2, par1);
this.field_78189_b = (new ModelRenderer(this)).setTextureSize(var3, var4);
this.field_78189_b.setRotationPoint(0.0F, 0.0F + par2, 0.0F);
this.field_78189_b.setTextureOffset(16, 20).addBox(-4.0F, 0.0F, -3.0F, 8, 12, 6, par1);
this.field_78189_b.setTextureOffset(0, 38).addBox(-4.0F, 0.0F, -3.0F, 8, 18, 6, par1 + 0.5F);
this.field_78190_c = (new ModelRenderer(this)).setTextureSize(var3, var4);
this.field_78190_c.setRotationPoint(0.0F, 0.0F + par2 + 2.0F, 0.0F);
this.field_78190_c.setTextureOffset(44, 22).addBox(-8.0F, -2.0F, -2.0F, 4, 8, 4, par1);
this.field_78190_c.setTextureOffset(44, 22).addBox(4.0F, -2.0F, -2.0F, 4, 8, 4, par1);
this.field_78190_c.setTextureOffset(40, 38).addBox(-4.0F, 2.0F, -2.0F, 8, 4, 4, par1);
this.field_78187_d = (new ModelRenderer(this, 0, 22)).setTextureSize(var3, var4);
this.field_78187_d.setRotationPoint(-2.0F, 12.0F + par2, 0.0F);
this.field_78187_d.addBox(-2.0F, 0.0F, -2.0F, 4, 12, 4, par1);
this.field_78188_e = (new ModelRenderer(this, 0, 22)).setTextureSize(var3, var4);
this.field_78188_e.mirror = true;
this.field_78188_e.setRotationPoint(2.0F, 12.0F + par2, 0.0F);
this.field_78188_e.addBox(-2.0F, 0.0F, -2.0F, 4, 12, 4, par1);
}
/**
* Sets the models various rotation angles then renders the model.
*/
public void render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7)
{
this.setRotationAngles(par2, par3, par4, par5, par6, par7);
this.field_78191_a.render(par7);
this.field_78189_b.render(par7);
this.field_78187_d.render(par7);
this.field_78188_e.render(par7);
this.field_78190_c.render(par7);
}
/**
* Sets the models various rotation angles.
*/
public void setRotationAngles(float par1, float par2, float par3, float par4, float par5, float par6)
{
this.field_78191_a.rotateAngleY = par4 / (180F / (float)Math.PI);
this.field_78191_a.rotateAngleX = par5 / (180F / (float)Math.PI);
this.field_78190_c.rotationPointY = 3.0F;
this.field_78190_c.rotationPointZ = -1.0F;
this.field_78190_c.rotateAngleX = -0.75F;
this.field_78187_d.rotateAngleX = MathHelper.cos(par1 * 0.6662F) * 1.4F * par2 * 0.5F;
this.field_78188_e.rotateAngleX = MathHelper.cos(par1 * 0.6662F + (float)Math.PI) * 1.4F * par2 * 0.5F;
this.field_78187_d.rotateAngleY = 0.0F;
this.field_78188_e.rotateAngleY = 0.0F;
}
}
[/CODE]

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • 0
Chormon    136
A więc tak. Przy wywołaniu [CODE]
this.entityRenderMap.put(EntityPeople.class, new RenderPeople(new ModelVillager(), 0.7F));
[/CODE] wywołujesz konstruktor klasy ModelVillager, którego nie ma. Są dwa rozwiązania:
1. do klasy ModelVillager dodaj[CODE]
public ModelVillager() {
this(0.0F);
}[/CODE]
2. [CODE]this.entityRenderMap.put(EntityPeople.class, new RenderPeople(new ModelVillager(0.0F), 0.7F));
[/CODE]

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • 0
maties7    13
Dopisujesz do ModelVillager konstruktor:

[code]
public ModelVillager()
{
this(0.0F);
}
[/code]

lub po prostu wywołujesz konstruktor, który istnieje

[code]
this.entityRenderMap.put(EntityPeople.class, new RenderPeople(new ModelVillager(0.0F), 0.7F));
[/code] Edytowane przez maties7

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • 0
Chormon    136
Jakiego programu używasz do pisania tego modu?
Porządny program do budowy aplikacja Java nie powinien pozwolić nawet na kompilację takiego czegoś.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • 0
HARDKAMIL    16
Grę tworzę w eclipse, a mody w notepad2.
Przecież pisałem, że się nie kompiluje, ale takie coś było w plikach gry, przecież to nie ja pisałem model villager.
Dzięki za pomoc.
Ale mam jeszcze pytanie, pamiętasz jak miałem problem z render blocks?
To wszystko było już w plikach, więc czy to możlwe, żeby mj mcp był zepsuty?

Aha i już będę używał eclipse ;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • 0
Chormon    136
[quote name='HARDKAMIL' timestamp='1353071905' post='99809']
Przecież pisałem, że się nie kompiluje[/quote]
Może źle napisałem, nie powinien pozwolić na uruchomienie kompilacji.
[quote name='HARDKAMIL' timestamp='1353071905' post='99809']
Przecież pisałem, że się nie kompiluje, ale takie coś było w plikach gry, przecież to nie ja pisałem model villager.[/quote]
Ale ty dopisałeś linijkę z wywołaniem nieistniejącej funkcji ;p
[quote name='HARDKAMIL' timestamp='1353071905' post='99809']
Ale mam jeszcze pytanie, pamiętasz jak miałem problem z render blocks?
To wszystko było już w plikach, więc czy to możlwe, żeby mj mcp był zepsuty?
[/quote]
Szczerze, to nie wiem. W tym przypadku mogło się zdarzyć, że nie było uwzględnione wywołanie pustego konstruktora, a twórcy założyli, że parametr jest wymagany. Co do problemu z RenderBlocks, to może przez przypadek coś usunąłeś, kod się źle zdekompilował, lub, tak jak w tym przypadku, kod był niepoprawny.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • 0
HARDKAMIL    16
Dzięki za pomoc. Jakoś nie zaglądałem do tej klasy.
Proszę o zamknięcie tematu.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

  • Podobna zawartość

    • Przez Kai_Canibal
      Witam. 
      Mam problem z grą. Gra działała cały czas normalnie, jednak ostatnio wyskoczył błąd i nie potrafię go naprawić. 

      The game crashed whilst initializing game
      The game crashed whilst initializing game
      Error: java.lang.OutOfMemoryError: Java heap space

      W pliku nativelog mam taką informację:

      Set run directory to C:\Program Files (x86)\Minecraft
      Native Launcher Version: 1393
      Operating System: Windows 7 Professional
      Application Hash: 649b3a6a58c5b8fc06c7aa04766425322e140bc2
      Application Data directory: C:\Users\Katarzyna\AppData\Roaming/.minecraft
      Executable Path: MinecraftLauncher.exe
      App Directory dir: C:\Program Files (x86)\Minecraft
      Start dir: C:/Users/Katarzyna/AppData/Roaming/.minecraft
      Launcher dir: C:/Program Files (x86)/Minecraft/game
      TmpDir dir: C:/Program Files (x86)/Minecraft/tmp
      (Optional) Java Launcher hash: 
      Java Version: 1.8.0_25
      x64: 1
      LauncherConfiguration from:
      Zaloguj lub zarejestruj się aby zobaczyć ten link.

      Downloaded config
      Native launcher is current
      Native launcher is current
      Detected previous run with new launcher, format of C:/Users/Katarzyna/AppData/Roaming/.minecraft/launcher_profiles.json is 2
      Using new launcher as self upgrade has been detected.
      Launcher library is up to date with hash 03abb62af1424a56975bc664a6389b32b21a793f
      Check to see if we can run the launcher
      Native launcher is current
      Starting launcher.dll with C:\Program Files (x86)\Minecraft\runtime\jre-x64\1.8.0_25\bin\javaw.exe
      Found SetDllDirectoryW in kernel32.dll!
      Added C:\Program Files (x86)\Minecraft\game to DLL search path
      Running launcher!


      Przeinstalowałem grę, wyczyściłem wszystkie niepotrzebne pliki, zrobiłem defragmentację dysku, przeinstalowałem sterowniki karty graficznej, oraz Javę. 
      Proszę o pomoc. 
    • Przez kawka
      Witajcie  Ostatnio zakupiłem nowego iMaca i zainstalowałem TLauncher, tylko nie potrafię go uruchomić  A wersję Javy mam aktualną.
    • Przez kawka
      Witajcie  Ostatnio zakupiłem nowego iMaca i zainstalowałem TLauncher, tylko nie potrafię go uruchomić  A wersję Javy mam aktualną.
    • Przez Qtvs
      Witam
      Mam problem z minecraftem.
      Mianowicie chodzi o to, że wchodzę na serwer, trochę sobie pogram i nagle mnie wywala z taką treścią przed oczyma:
      Internal Exception: java.ioIOException: Istniejące połączenie zostało gwałtownie zamknięte przez zdalnego hosta
      Co mam zrobić? Nie mogę przez to grać w spokoju bo mnie wywala co chwile!
      Launcher: Crystal Launcher
      Java: Najnowsza 8 161 update
      Argumenty javy w launcherze: -Xmx1G -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -Xmn128M -noverify
       
    • Przez Gyutund123
      Witam, ostatnio zainstalowałem minecraft i wyszkoczył mi bład. o co chodzi? i co muszę zrobić by działał?  
      ---- Minecraft Crash Report ----
      // You're mean.
      Time: 1/6/18 3:45 PM
      Description: Initializing game
      org.lwjgl.LWJGLException: Pixel format not accelerated
          at org.lwjgl.opengl.WindowsPeerInfo.nChoosePixelFormat(Native Method)
          at org.lwjgl.opengl.WindowsPeerInfo.choosePixelFormat(WindowsPeerInfo.java:52)
          at org.lwjgl.opengl.WindowsDisplay.createWindow(WindowsDisplay.java:247)
          at org.lwjgl.opengl.Display.createWindow(Display.java:306)
          at org.lwjgl.opengl.Display.create(Display.java:848)
          at org.lwjgl.opengl.Display.create(Display.java:757)
          at org.lwjgl.opengl.Display.create(Display.java:739)
          at bib.at(SourceFile:635)
          at bib.aq(SourceFile:458)
          at bib.a(SourceFile:404)
          at net.minecraft.client.main.Main.main(SourceFile:123)

      A detailed walkthrough of the error, its code path and all known details is as follows:
      ---------------------------------------------------------------------------------------
      -- Head --
      Thread: Client thread
      Stacktrace:
          at org.lwjgl.opengl.WindowsPeerInfo.nChoosePixelFormat(Native Method)
          at org.lwjgl.opengl.WindowsPeerInfo.choosePixelFormat(WindowsPeerInfo.java:52)
          at org.lwjgl.opengl.WindowsDisplay.createWindow(WindowsDisplay.java:247)
          at org.lwjgl.opengl.Display.createWindow(Display.java:306)
          at org.lwjgl.opengl.Display.create(Display.java:848)
          at org.lwjgl.opengl.Display.create(Display.java:757)
          at org.lwjgl.opengl.Display.create(Display.java:739)
          at bib.at(SourceFile:635)
          at bib.aq(SourceFile:458)
      -- Initialization --
      Details:
      Stacktrace:
          at bib.a(SourceFile:404)
          at net.minecraft.client.main.Main.main(SourceFile:123)
      -- System Details --
      Details:
          Minecraft Version: 1.12.2
          Operating System: Windows 10 (x86) version 10.0
          Java Version: 1.8.0_151, Oracle Corporation
          Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation
          Memory: 47389176 bytes (45 MB) / 150876160 bytes (143 MB) up to 523501568 bytes (499 MB)
          JVM Flags: 6 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx512M -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -Xmn128M
          IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
          Launched Version: 1.12.2
          LWJGL: 2.9.4
          OpenGL: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread.
          GL Caps: 
          Using VBOs: Yes
          Is Modded: Probably not. Jar signature remains and client brand is untouched.
          Type: Client (map_client.txt)
          Resource Packs: 
          Current Language: ~~ERROR~~ NullPointerException: null
          Profiler Position: N/A (disabled)
          CPU: <unknown>
×
×
  • Dodaj nową pozycję...