+ Antworten
Seite 2 von 3 ErsteErste 1 2 3 LetzteLetzte
Ergebnis 11 bis 20 von 22
  1. #11
    Architekt
    Registriert seit
    27.03.2012
    Beiträge
    1.000
    @JuMa2906

    Code:
    //Tu das mal in die run-Methode unter das while und über den try-catch Block:
    oldXp = newXp;
    newXp = entityPlayer.experienceLevel;
    if (oldXp != newXp) {
        XPUp.getGood(...);
    }
    //try-Teil mit dem Thread.sleep

  2. #12
    Creeper-Jäger Avatar von JuMa2906
    Registriert seit
    29.07.2011
    Beiträge
    347
    Minecraft
    JuMa2906
    @Johannes_C25

    Code:
    package net.minecraft.src;
    
    public class XPUpdater implements Runnable {
    	
    	private int oldxp = -1;
    	private int newxp = -1;
    	
    	private EntityPlayer entityplayer;
    	
    	public void run() {
    		while(true) {
    			oldxp = newxp;
    			newxp = entityplayer.experienceLevel;
    			if (oldxp != newxp) {
    				XPUp.getGood(entityplayer, entityplayer.worldObj, -1);
    			}
                try {
                    Thread.sleep(100);
                } catch (InterruptedException e) {
                    ;
                }
    		}
    	}
    	
    	public XPUpdater() {
    		new Thread(this).start();
    	}
    
    }
    Funzt immer noch net ...

  3. #13
    Architekt
    Registriert seit
    27.03.2012
    Beiträge
    1.000
    @JuMa2906

    Lass dir mal ausgeben, wenn run das erste Mal aufgerufen wird und, wenn die If-Schleife true ergibt. (per System.out.println("blabla")

  4. #14
    Architekt Avatar von longor1996
    Registriert seit
    27.11.2010
    Beiträge
    1.784
    Minecraft
    CTM5010
    Sag mal...erstellst du überhaupt irgendwo ein Objekt der Klasse?
    Und sollte das EntityPlayer Objekt nicht auch erstmal Initialisiert werden?
    Wo wird die Klasse den überhaupt Aufgerufen?

    mfg Longor1996
    AdventureCraft2 Entwickler! Ich gebe gerne (Modding/Tech-)Support über PN.
    Me on Youtube

  5. #15
    Creeper-Jäger Avatar von JuMa2906
    Registriert seit
    29.07.2011
    Beiträge
    347
    Minecraft
    JuMa2906
    @Johannes_C25 Habe ich schon versucht. Wird nichts.

    @longor1996 Das ist ja das Problem. Ich darf keine Basisklasse umändern. Im Grunde muss die Klasse "von selbst" starten.

    Komischerweise muss hier das EntityPlayer Objekt nicht initialisiert werden ... ka warum.

  6. #16
    Architekt Avatar von longor1996
    Registriert seit
    27.11.2010
    Beiträge
    1.784
    Minecraft
    CTM5010
    Zitat Zitat von JuMa2906 Beitrag anzeigen
    @Johannes_C25 Habe ich schon versucht. Wird nichts.

    @longor1996 Das ist ja das Problem. Ich darf keine Basisklasse umändern. Im Grunde muss die Klasse "von selbst" starten.

    Komischerweise muss hier das EntityPlayer Objekt nicht initialisiert werden ... ka warum.
    Du kannst keine Klasse von selbst starten!
    Ein Computer arbeitet Sequentiell vom Anfang zum Ende.
    Heisst: Du MUSST einen Eingangs/Startpunkt erstellen/einfügen.
    Am besten in einer der Klassen die am wenigsten verändert werden.

    mfg Longor1996

    PS: Warum zum Nether machst du überhaupt eine Mod ohne ModLoader/Forge?
    AdventureCraft2 Entwickler! Ich gebe gerne (Modding/Tech-)Support über PN.
    Me on Youtube

  7. #17
    Architekt Avatar von Valance
    Registriert seit
    28.11.2010
    Beiträge
    1.664
    Minecraft
    Valance
    Ist nicht ganz richtig so, statische Klassen brauchen nicht programmiertechnisch irgendwo instanziert werden. Seine ist allerdings noch nicht statisch

    Bin allerdings auch der Meinung das entityplayer ständig NULL sein müsste o.O



  8. Mag ich longor1996 mag diesen Beitrag
  9. #18
    Creeper-Jäger Avatar von JuMa2906
    Registriert seit
    29.07.2011
    Beiträge
    347
    Minecraft
    JuMa2906
    @longor1996 Weil es einfach kein ModLoader-Mod ist. Ich könnte jetzt sagen, installiere ModLoader für einen Mod, welcher ModLoader nicht benötigt. Ist doch iwie hirnrissig, oder?

    @Valance Also mal auf static probieren.

  10. #19
    Architekt Avatar von Valance
    Registriert seit
    28.11.2010
    Beiträge
    1.664
    Minecraft
    Valance
    Deine Klasse also statisch und im Konstruktor (erschlag mich nicht wenns totaler Müll ist, ich brauch solch Kram nicht, entsinne mich nur mal was darüber aufgeschnappt zu haben)

    Code:
    static {
    ...
    }
    startest du deinen Thread.

    Ganz so einfach wie es sich anhört wird es aber bestimmt nicht. Threading ist für mich ein Buch mit mehr als nur sieben Siegeln Wundere mich z.B. warum du entityplayer aus einem Thread heraus einfach so nutzen kannst, ohne vorher zu sperren und danach wieder freizugeben o.O Was wenn der Hauptthread gerade an einer Stelle steckt, wo entityplayer NICHT geändert werden darf?



  11. #20
    Creeper-Jäger
    Registriert seit
    01.05.2012
    Beiträge
    247
    Minecraft
    firefligher
    Wie oben schon steht, du kannst eine Klasse nicht selbst initialisieren und ausführen... Das kann nur die main-Funktion und die wird vom MinecraftLauncher aufgerufen (zu mindest in Minecraft). Wir raten dir hier alle zu ModLoader, weil du dann dir eine Mod-Datei machen kannst und im load-Teil (der von ModLoader aufgerufen wird...) deine Klasse initialisieren und ausführen kannst.
    Bevor du das nicht gemacht hast oder irgendeine andere Klasse so verändert hast, dass deine aufgerufen wird, können wir dir hier nicht mehr helfen.

+ Antworten