Autor |
Nachricht |
< Fehler bei moveto() in daemon() |
|
Verfasst am:
Fr, 6 Jan 2012 - 19:08
|
|
|
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! |
|
|
|
 |
|
Verfasst am:
Sa, 7 Jan 2012 - 17:39
|
|
|
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? |
|
|
|
 |
|
Verfasst am:
Sa, 7 Jan 2012 - 17:56
|
|
|
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. |
|
|
|
 |
|
Verfasst am:
Sa, 7 Jan 2012 - 23:20
|
|
|
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. |
|
|
|
 |
|
Verfasst am:
So, 8 Jan 2012 - 16:16
|
|
|
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! :) |
|
|
|
 |
|
Verfasst am:
Mi, 18 Jan 2012 - 19:55
|
|
|
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. |
|
|
|
 |
|
Verfasst am:
Do, 19 Jan 2012 - 1:27
|
|
|
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. |
|
|
|
 |
|