Forum moved to if-forum.org
Autor Nachricht
<  Fehler bei moveto() in daemon()
Dienes
BeitragVerfasst am: Fr, 6 Jan 2012 - 19:08  Antworten mit Zitat
Neuling
Neuling


Anmeldungsdatum: 03.01.2012
Beiträge: 9

Bin eben auf ein seltsames Verhalten der daemon()-Methode gestoßen und habe es mal auf das Wichtigste reduziert.

Gegeben sei folgender Code:
Code:
class RaumA: stdroom {
    setShort("+Raum A");
}

class RaumB: stdroom {
    setShort("+Raum B");
}

class Etwas: stditem {
    setShort("Etwas");
   
    moveto(RaumA);
   
    void onAction(int action) {
        return super.onAction(action);
    }
   
    void daemon() {
        moveto(RaumB);
    }
}

void main() {
    Etwas.startDaemon();
    write(Etwas.room().getShort(C_NOM, 0));
}


Führt man es so aus, bekommt man die Fehlermeldung:
Code:
test.floyd(28:9)moveto() muss ein Objekt übergeben werden


Wirft man die onAction()-Methode aus der Klasse raus, kommt zwar kein Fehler, die Ausgabe ist aber "Raum A", das Objekt wird also nicht in den anderen Raum befördert.

Was läuft hier schief? Wie kann ich ein Objekt in seinem Daemon von Raum zu Raum bewegen?


Danke schonmal!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Lukas
BeitragVerfasst am: Sa, 7 Jan 2012 - 17:39  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 21.05.2006
Beiträge: 42

In der Doku wird, wenn ich mich richtig erinnere, doch genau so ein Demon beschrieben. Hast du schon gecheckt, ob du gleich vorgehst?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dienes
BeitragVerfasst am: Sa, 7 Jan 2012 - 17:56  Antworten mit Zitat
Neuling
Neuling


Anmeldungsdatum: 03.01.2012
Beiträge: 9

Ja, habe es damit abgeglichen und kann keinen Unterschied feststellen. Aber testen kann ich das Beispiel aus der Doku auch nicht, da hier der Interpreter ebenfalls etwas zu meckern hat:

Code:
expecting: string, complexstring, number


in der Zeile:

Code:
object pfad[3] = (raumA, raumB, raumC);


Er kann also das Array nicht anlegen, obwohl auch hier alle Klassen vorher bekannt sind... mh.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
rairon
BeitragVerfasst am: Sa, 7 Jan 2012 - 23:20  Antworten mit Zitat
Neuling
Neuling


Anmeldungsdatum: 13.08.2007
Beiträge: 6
Wohnort: Bayern

Danke für den Hinweis für den Fehler, in dem RaumB nicht richtig erkannt wird.
Grund dafür ist eine Typabgleich mit object, intern ist aber an dieser Stelle ein late binding für die Variable vorhanden, so dass der Typ noch nicht bekannt ist.
Ist gefixt und im Repository und wird von Oliver mit der nächsten Release verfügbar gemacht.

Die zweite Geschichte mit dem Array habe ich noch nicht getestet, ist vermutlich aber der selbe Hintergrund.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dienes
BeitragVerfasst am: So, 8 Jan 2012 - 16:16  Antworten mit Zitat
Neuling
Neuling


Anmeldungsdatum: 03.01.2012
Beiträge: 9

Freut mich, helfen zu können und danke für die schnelle Bearbeitung der genannten Probleme :)

Auch wenn die Syntax hier und da ein paar kleine Macken hat, die man sich noch wegwünschen würde, ist Floyd speziell für Autoren mit Java/C-Hintergrund wohl das beste System, das mir bisher untergekommen ist. Großes Lob! :)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dienes
BeitragVerfasst am: Mi, 18 Jan 2012 - 19:55  Antworten mit Zitat
Neuling
Neuling


Anmeldungsdatum: 03.01.2012
Beiträge: 9

Gibt es denn Pläne, wann das nächste Release erscheinen wird?

Diese Sache hier und das vergessene (!) Feature in setTime() sind meiner Meinung nach schon gravierende Bugs, für die man sich als Autor Hotfixes wünschen würde.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Oliver Berse
BeitragVerfasst am: Do, 19 Jan 2012 - 1:27  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 29.08.2002
Beiträge: 50

Dienes hat folgendes geschrieben:
Gibt es denn Pläne, wann das nächste Release erscheinen wird?

Diese Sache hier und das vergessene (!) Feature in setTime() sind meiner Meinung nach schon gravierende Bugs, für die man sich als Autor Hotfixes wünschen würde.


Eine neue Version 3.2 mit Fixes und Detailverbesserungen folgt am Wochenende, bitte noch etwas Geduld.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Alle Zeiten sind GMT + 1 Stunde (MEZ)

Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Seite 1 von 1
if-de :: Forum Foren-Übersicht  >  Floyd

Neues Thema eröffnen   Neue Antwort erstellen


 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.



Kontakt: Administrator

Powered by phpBB and NoseBleed v1.05