Unbekannte Fehlermeldungsursache

Das Board für Schwierigkeiten beim Adventure-Machen und zum Melden von Bugs
Post Reply
Schiman
PaC-DK God
Posts: 1177
Joined: 20 Dec 2006, 21:48
Contact:

Unbekannte Fehlermeldungsursache

Post: # 73257Post Schiman
22 Mar 2009, 15:44

Ok... komischer Fehler:

Ich öffne über ein Objekt mir on(look) einen subroom, also

Objekt BuecherSchrank:

Code: Select all

on(look)
  subroom(BuecherGross)
Jetzt habe ich im Subroom "BuecherGross" ein Objekt, das folgendes Skript enthält:

Objekt BuecherNahSchauen:

Code: Select all

on(click)
  subroom(BuecherNah)
Wenn ich nun im Spiel auf das Objekt "BuecherNahSchauen" innerhalb des subrooms "BuecherGross" freezt das Spiel mit folgender Fehlermeldung:

Access violation at address 004DD67A in module "Gatio.exe". Read of address 00000000.

Komisch ist, dass wenn ich im Dev-Mode über die Konsole zuerst subroom(BuecherGross) eintippe (dann öffnet sich der Subroom) und dann subroom(BuecherNah) eintippe, dann öffnet sich der zweite Subroom problemlos.

1. Woher kommt der Fehler und
2. Wie kann ich ihn umgehen/beheben.

DaGus
An Adventure Creator
Posts: 271
Joined: 04 Aug 2006, 11:13

Post: # 73260Post DaGus
22 Mar 2009, 18:37

He Schiman, ich glaube, das hatten wir schon mal.
Subroom aus Subroom aufrufen ging nicht.
Siehe hier:
http://board.adventure-creator.com/view ... hp?t=10080

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Post: # 73263Post Zimond
22 Mar 2009, 18:53

simple umgehung :

Code: Select all

on(click)
 {
 realreturn()
 timer(0,05)
  subroom(BuecherNah)
 }
Anmerkung : Realreturn ist ein interner Befehl der das abblenden ignoriert und den subroom sofort beendet.

Schiman
PaC-DK God
Posts: 1177
Joined: 20 Dec 2006, 21:48
Contact:

Post: # 73264Post Schiman
22 Mar 2009, 18:58

Danke schonmal für die Hints. In der Tat das Problem hatten wir schon (Schande auf mein Haupt :doh: ).

Aber mir zwingt sich die Frage auf... Warum geht das dann in der Konsole? Schließlich ist der Subroom ja schon offen und ich gebe ja denselben Befehl in die Konsole ein, der auch im on(click)-Ereignis steht.
Und dann wird der andere Subroom geöffnet.

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Post: # 73268Post Zimond
22 Mar 2009, 19:23

hab ich mich auch gefragt, weis ich aber gerade selber nicht ;)

Schiman
PaC-DK God
Posts: 1177
Joined: 20 Dec 2006, 21:48
Contact:

Post: # 73269Post Schiman
22 Mar 2009, 19:25

Ok.. das hat nicht funktioniert.
Bei timer 0,05 kommt dieselbe Fehlermeldung.
Bei timer 0,5 wird zwar der neue Subroom geöffnet, aber mit konkretem Grafikfehler -.-. Die untere Hälfte des Screens ist einfach nur lila^^.

Gibt es vielleicht noch einen anderen Workaround?
Soll ich den Subroom-Aufruf vielleicht in eine Cutscene oder function auslagern?

Edit: Habe gerade den Subroom-Aufruf in eine Function ausgelagert und mit function(test) auch im on(click) gestartet.
Jetzt wird der Subroom witzigerweise erstmal mit oben genanntem Grafikfehler geöffnet und dann wird die Fehlermeldung ausgespuckt.

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Post: # 73270Post Zimond
22 Mar 2009, 20:04

ich glaub da liegt noch was anderes hinter:-/

du könntest einfach im ersten Subroom den zweiten als Objekte mit einbauen und dann als Gruppe umschalten, also ohne einen zweiten zu gebrauchen.

Schiman
PaC-DK God
Posts: 1177
Joined: 20 Dec 2006, 21:48
Contact:

Post: # 73272Post Schiman
22 Mar 2009, 20:36

Hm, das wäre übel. Ich kann mit der Lösung nix anfangen, weil ich in den Subrooms schon hunderte Zeilen Script implementiert habe, die ich dann in andere Objekte transferieren müsste, das gäbe einen Kauderwelsch, den ich später selbst nicht mehr verstehen würde^^. (Gehört zu einem ziemlich komplexen Rätsel).

Deshalb werde ich das einfach mit setfocus(none) und loadroom() lösen (solange das funktioniert^^).
Für den Spieler sollte es keinen Unterschied machen.

Edit:
Ok, habs mit loadroom() realisiert. Dann hats natürlich funktioniert. Alles läuft ordnungsgemäß.

Nochmal thx für die versuchte Hilfestellung.

Post Reply