IF-Forum

» IF-Forum - Autorencafé - Schreiben! - Runtime Error: nil object reference
AntwortenNeues ThemaNeue Umfrage

Runtime Error: nil object reference

Geschrieben um 02:34 am 15.05.2014 | Zitat | Editieren | Löschen
Chupup
Mitglied
Pupil Gumby
Beiträge: 16

Hi,

bei folgendem source code:



#include <adv3.h>

#include <de_de.h>

gameMain: GameMainDef

initialPlayerChar = me

;

versionInfo: GameID

   name = 'Das Hexenhaus'

   byline = 'by Tony Tiger'

   authorEmail = 'test@test.com>'

   desc = 'This is a template to start a new game project. '

   version = '1'

   IFID = 'b8563851-6257-77c3-04ee-278ceaeb48ac'

;

garten: Room

   roomName = "Garten"

   desc = "Du stehst in einem verwilderten Garten, der von einer

   halb verfallenen Steinmauer umgeben wird. An der Nordseite

   schließt ein kleines Holzhaus an den Garten, um das sich        genau wie um den Garten seit Jahren niemand mehr gekümmert       hat."

   north = flur

;

+me: Actor

;

flur: Room

   roomName = "Flur"

   desc = "Wenn man das Haus vom Garten her betritt, landet man

   in einem kurzen Flur, vom dem aus drei Türen abgehen, sowie

   eine Treppe, die nach oben führt. Der Flur ist mit graugelben

   Tapeten behangen, deren Muster kaum noch zu erkennen sind."

   south = garten

;```

bekomme ich einen RTE, wenn man versucht nach Norden zu gehen.

[Runtime error: nil object reference

->/usr/share/frobtads/tads3/lib/adv3/de_de/de_de.t, line 1184

/usr/share/frobtads/tads3/lib/adv3/de_de/de_de.t, line 1949

/usr/share/frobtads/tads3/lib/adv3/de_de/de_de.t, line 1824

/usr/share/frobtads/tads3/lib/adv3/de_de/de_de.t, line 6236

/usr/share/frobtads/tads3/lib/adv3/de_de/msg_neu.t, line 691

/usr/share/frobtads/tads3/lib/adv3/action.t, line 1680

/usr/share/frobtads/tads3/lib/adv3/action.t, line 3449

/usr/share/frobtads/tads3/lib/adv3/action.t, line 1150

/usr/share/frobtads/tads3/lib/adv3/exec.t, line 1168

/usr/share/frobtads/tads3/lib/adv3/pov.t, line 156

/usr/share/frobtads/tads3/lib/adv3/pov.t, line 58

/usr/share/frobtads/tads3/lib/adv3/exec.t, line 1171

/usr/share/frobtads/tads3/lib/adv3/exec.t, line 1146

/usr/share/frobtads/tads3/lib/adv3/exec.t, line 1047

/usr/share/frobtads/tads3/lib/adv3/actions.t, line 2705

/usr/share/frobtads/tads3/lib/adv3/action.t, line 1477

...

Liegt das an einem Fehler in meinem Code oder an G-TADS?

Verwende die neuste G-TADS von Github.

Gruß

[/code]
Geschrieben um 03:03 am 15.05.2014 | Zitat | Editieren | Löschen
Chupup
Mitglied
Pupil Gumby
Beiträge: 16

habe bei roomName einfache Anführungszeichen genommen und jetzt funktioniert es. Also roomName = 'Garten', statt "Garten".

Geschrieben um 08:29 am 15.05.2014 | Zitat | Editieren | Löschen
Mikawa
Avatar
Mitglied
Prof Gumby
Beiträge: 324

Yep, das ist am Anfang etwas verwirrend.

Die einfachen Anführungszeichen kennzeichnen einen String, das wird bei den Messages, dem Vokabular, den Verbschablonen usw. verwendet.

Die doppelten Anführungszeichen stehen kurz für

tadsSay('string') und stellen somit eine Ausgabefunktion dar.

Das wird beispielsweise bei allen Beschreibungen (Räume und Objekte) mit desc als Funktion verwendet.

Geschrieben um 15:30 am 15.05.2014 | Zitat | Editieren | Löschen
Chupup
Mitglied
Pupil Gumby
Beiträge: 16

Ja, das wird später dann auch im 'Getting Started' von Eric Eve erklärt. Da war ich etwas zu vorschnell. :)

Komisch nur, dass nicht gleich der Compiler ne Fehlermeldung ausspuckt, sondern der Fehler erst zur Laufzeit auftritt. Der erste Raum wurde sogar korrekt angezeigt, erst beim Wechsel in den nächsten Raum stürzte es ab.

Geschrieben um 15:33 am 15.05.2014 | Zitat | Editieren | Löschen
Mikawa
Avatar
Mitglied
Prof Gumby
Beiträge: 324

Vermutlich ist das Problem, dass Tads sich den alten Raumnamen merkt für die Exits-Meldung im Neuen "...zurück zu dem Garten" und der Fehler passiert dann bei Übergabe des Strings, der keiner ist.

AntwortenNeues ThemaNeue Umfrage
Powered by Spam Board SVN © 2007 - 2021
Impressum / Datenschutz