IF-Forum

» IF-Forum - Autorencafé - Schreiben! - Fehlermeldung: Simple Lösung?
AntwortenNeues ThemaNeue Umfrage

Fehlermeldung: Simple Lösung?

Geschrieben um 18:44 am 12.06.2012 | Zitat | Editieren | Löschen
Gurumeditation
Mitglied
Baby Gumby
Beiträge: 1

Hi eine Freundin von mir bastelt gerade an ein kleines Textadventure das als Konzept dienen soll. Jedoch kommt bei einer bestimmen Funktion immer ein Fehler und wir finden keine richtige Lösung dafür. Danke bereits für eventuelle Lösungsvorschläge =)

Hier erstmal die Codezeilen:



Include German by Team GerX.

Tuer is a door. It is south from Zimmer and north from Raum.

It is lockable and Locked. The matching key of Tuer is Key. Tuer is scenery.

Key is in Raum.

Zimmer is a room. "Zimmer halt."

Raum is a room. "Raum halt."

Schalter is a device in Zimmer. Schalter can be switched on.

if the player schaltet Schalter:

   now Tuer is unlocked;

   say "Ein klicken öffnete die Tür."```

Die Fehlermeldung lautet hierbei:

```Problem. You wrote 'if the player schaltet Schalter'  : but the punctuation here ':' makes me think this should be a definition of a phrase and it doesn't begin as it should, with either 'To' (e.g. 'To flood the riverplain:'), 'Definition:', a name for a rule (e.g. 'This is the devilishly cunning rule:'), 'At' plus a time (e.g. 'At 11:12 PM:' or 'At the time when the clock chimes') or the name of a rulebook, possibly followed by some description of the action or value to apply to (e.g. 'Instead of taking something:' or 'Every turn:').```
Geschrieben um 20:22 am 12.06.2012 | Zitat | Editieren | Löschen
Herr Rau
Avatar
Mitglied
Bachelor Gumby
Beiträge: 60

So eine Bedingung wie das mit dem if kann nicht für sich stehen, sondern muss immer innerhalb einer Methodendefinition oder, wohl häufiger, innerhalb einer Regel stehen.


   now...

Oder eher noch:


   now...
Geschrieben um 20:30 am 12.06.2012 | Zitat | Editieren | Löschen
FrankS
Mitglied
Bachelor Gumby
Beiträge: 66

Willkommen im Forum (und Grüße aus Leipzig nach Leipzig)!

Die Konstruktion mit "if" funktioniert so nicht.

Es muss heißen:


Carry out switching on Schalter:

   now Tuer is unlocked;

   say "Ein klicken öffnete die Tür."

Ihr werdet merken, dass das hier noch nicht ganz ideal ist, denn jetzt kommt nach dem Einschalten:

schalte schalter

Ein klicken öffnete die Tür.

Du schaltest Schalter an.

Mit After switching on Schalter:

anstatt "carry out" wird die Standardausgabe überschrieben.

Ein Tipp, falls ihr es noch nicht kennt:

http://www.michaelbaltes.com/IF%20Mariel/IFSMI7.pdf

Hier wird man Stück für Stück in die Spieleprogrammierung mit Inform 7 eingeführt.

Viel Spaß beim Programmieren des Spiels!

Geschrieben um 23:15 am 12.06.2012 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Willkommen im Forum!

Noch mal so als Überblick:

Für jede Aktion gibt es sechs Regelbücher (rulebooks) die in einer vorgeschriebenen Reihenfolge abgearbeitet werden. Und zwar:

1). BEFORE

2.) INSTEAD

3.) CHECK

4.) CARRY OUT

5.) AFTER

6.) REPORT

2, 3 und 5 stoppen die Ausführung der Aktion, deshalb wird z.B. die Standardmeldung, die in 6 ausgegeben wird, nicht mehr gezeigt, wenn man eine After-Regel (5) definiert (wie in Franks Beispiel).

3, 4 und 6 steuern normalerweise das Standardverhalten einer Aktion, wohingegen die anderen für bestimmte Ereignisse im Spiel gedacht sind.

Jetzt kannst Du dir überlegen, wo du bei einer Aktion ansetzen willst, und das entsprechende Regelbuch um Deine neuen Regeln erweitern.

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