IF-Forum

» IF-Forum - Autorencafé - Schreiben! - I7 und GerX Fragen
AntwortenNeues ThemaNeue Umfrage
» Mehrere Seiten: 12

I7 und GerX Fragen

Geschrieben um 14:26 am 03.11.2010 | Zitat | Editieren | Löschen
jorl
Mitglied
Master Gumby
Beiträge: 99

Hallo,

ich stricke nun erst seid ein paar Tagen mit Inform 7 und GerX rum. Sehr hilfreich war dabei "Mariel". Also erstmal vielen Dank dafür. So etwas erleichtert ungemein den Einstieg.

Jetzt bin ich natürlich über ein paar Sachen gestolpert:

  1. Scheinbar wird durch das Einbinden der deutschen Erweiterung die Rease-Funktion nicht beeinflußt, oder doch? Ich habe gesehen, dass ich selbst Templates schreiben kann. Das würde ich jetzt tun um am Ende eine deutsche Seite bei "release along with a website" zu erhalten. Meine Frage ist nun: Ist das überhaupt nötig oder werden die Standardseiten bereits durch eine andere Mechanik übersetzt, die ich nur nicht gefunden habe.

  2. Ich hätte gern das ein Objekt abhängig von einer Condition beim Betreten eines Raumes angezeigt wird (so wie scenery).

Bsp.:


The tree-garden is a room. "Du stehst in einem kleinen Teil des Gartens. Direkt neben Dir ragt ein Apfelbaum in die Höhe.".

A thing can be atop.   

A thing is usually not atop.

The apple is a male edible thing in the tree-garden. The printed name of the apple is "Apfel". Understand "apfel" as apple. The apple is atop.

Instead of taking the apple when the apple is atop:

say "Du pflückst den Apfel.";

   now the apple is not atop;

   now the player carries the apple.

"atop" soll hier bedeuten der Apfel hängt noch am Baum. Solange der Spieler den Apfel nicht gepflückt hat, möchte ich nicht, dass er beim Betreten des Raumes aufgeführt wird. Geht das irgendwie elegant.

  1. unter Actions im Index im Inform-Editor sehe ich welche Regeln bei welcher Aktion greifen. Wenn die Regel von mir ist, habe ich da einen schönen Link. Wenn es aber eine bereits vorhandene ist, würde mich interessieren was die macht. Es gibt aber nur diese kleinen blauen Kästchen mit name und unlist, deren Funktion sich mir nicht erschließt.

Ich hoffe Ihr könnt mir helfen.

Geschrieben um 15:25 am 03.11.2010 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

Zu Punkt 2: Wenn man nicht möchte, dass Gegenstände in der Raumbeschreibung auftauchen, muss man sie als scenery definieren. (Als alter I6er dachte ich ja, das ginge auch mit concealed, aber das kann man nur prüfen, nicht selbst belegen.)

Anstatt eine neue Eigenschaft für alle Objekte einzuführen, würde ich hier das bereits existierende scenery nehmen und es dann, genau wie Du es bereits mit atop gemacht hast, es vor dem ersten Nehmen wegnehmen.

Damit der Spieler überhaupt weiß, dass es einen Apfel gibt, muss die Beschreibung des Baums angepasst werden:

003366

Geschrieben um 15:44 am 03.11.2010 | Zitat | Editieren | Löschen
jorl
Mitglied
Master Gumby
Beiträge: 99

Vielen Dank. Irgendwie dachte ich scenery ist eine Art (a kind) und nicht eine Eigenschaft. So geht's natürlich.

Zitat:

Damit der Spieler überhaupt weiß, dass es einen Apfel gibt, muss die Beschreibung des Baums angepasst werden

Die Apfelbeschreibugn habe ich schon im Baum drin. Ich hatte mein Bsp. stark gekürzt damit es etwas übersichtlicher wird. Trotzdem Danke.

Geschrieben um 16:18 am 03.11.2010 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

Hmmm. So ganz klappt das nicht: man kann den Apfel nicht zweimal aufheben, nur wenn er "gepflückt" wird: Man muss den Apfel zusätzlich not fixed in place machen.

Außerdem ist es keine gute Idee, den Apfel direkt ins Inventar des Spielers zu befördern - so umgeht man unter Umständen andere Regeln. Ich habe das Beispiel etwas abgeändert, damit es besser in das Gerüst von Inform passt. Wenn man die Regentonne schleppt, kann man nichts anderes mehr nehmen, also auch den Apfel nicht pflücken. (Aber dann funktioniert das mit dem for he first time nicht mehr. Naja, da soll sich mal das Team GerX drum kümmern.)

003399

Geschrieben um 16:38 am 03.11.2010 | Zitat | Editieren | Löschen
jorl
Mitglied
Master Gumby
Beiträge: 99

Nein das ist auch nicht ganz was ich will. Da ich verhindern will, dass der Spieler den Apfel von unten pflückt, greift das "report [...] for the first time" wahrscheinlich nicht.

Ich glaube das sollte gehen:


Before taking the apple when the apple is atop:

   if the player is atop:

      now the apple is not a scenery;

      now the apple is not fixed in place.

Instead of taking the apple when the apple is atop and the player is not atop:

   say "Du hüpfst ein wenig, aber Du kommst dennoch nicht an den Apfel heran.".

   

After taking the apple when the apple is atop:

   now the apple is not atop;

   say "Von hier oben kommst Du leicht an den Apfel. Er gehört Dir.".

Edit: Ich sehe gerade an Deinem Bsp. das ich das wohl lieber mit "check" testen sollte. Ich habe bis jetzt alles über instead-if-konstrukte abgefangen. Offenbar nicht der beste Weg.

Also eher so: Check taking something when the player is not atop.

Geschrieben um 16:47 am 03.11.2010 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

jorl:

  1. Scheinbar wird durch das Einbinden der deutschen Erweiterung die Rease-Funktion nicht beeinflußt, oder doch?

Nein, GerX hat auf die Release-Funktionen (bislang) keinen Einfluss. (Ich habe es bis heute nicht hinbekommen, ein Spiel mit Webseite ins Release zu bringen. Vielleicht könnte mich da mal jemand schlauer machen, wie das richtig funktioniert ...)

Edit: Ich meinte, für Glulx habe ich noch Schwierigkeiten, eine Webseite zu erzeugen. Für Z habe sogar ich es hinbekommen.

Edit 2: Sorry, jetzt geht's auch mit Glulx. Hier war wohl etwas durcheinander geraten.

Michael hat Mariel mit deutscher Seite hinbekommen, aber ich vermute, dass er da einiges von Hand geändert hat. Falls es eine Möglichkeit gibt, eine deutsche Webseiten-Vorlage mit einzubinden, würde mich das sehr interessieren.

Grüße,

Christian

Geschrieben um 16:58 am 03.11.2010 | Zitat | Editieren | Löschen
jorl
Mitglied
Master Gumby
Beiträge: 99

Die einfachste (und nicht sehr schöne) Möglichkeit wäre doch die Standardseiten einmal zu übersetzen und als Download anzubieten. Dann kann man die ja einfach per Release along with a "Templatename" website. einbinden.

Da fällt mir doch auch glatt noch Frage 4 ein:

Wenn ich so eine iFiction.xml erzeugen lasse, steht automatisch <language>en</language> drin. Kann man das durch einen Parameter im Quellcode anpassen? (Ich weiß allerdings nicht inwieweit diese library cards überhaupt Verwendung finden. Ist mir nur aufgefallen.)

Geschrieben um 17:09 am 03.11.2010 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

jorl:

Die einfachste (und nicht sehr schöne) Möglichkeit wäre doch die Standardseiten einmal zu übersetzen und als Download anzubieten.

Hmm. Anders geht's wohl nicht.

jorl:

Kann man das durch einen Parameter im Quellcode anpassen?

Ist mir nicht bekannt.

blue

oder Ähnliches scheint nicht zu funktionieren.

Da muss wohl wieder der Texteditor angeworfen werden und von Hand nachgebastelt werden. Die Library cards sind wohl interessant für Betreiber von Spielesammlungen, schätze ich. Aber ob das schon irgendwo zum Einsatz kommt, weiß ich nicht.

Geschrieben um 18:15 am 03.11.2010 | Zitat | Editieren | Löschen
jorl
Mitglied
Master Gumby
Beiträge: 99

ChristianB:

jorl:

Die einfachste (und nicht sehr schöne) Möglichkeit wäre doch die Standardseiten einmal zu übersetzen und als Download anzubieten.

Hmm. Anders geht's wohl nicht.

und es geht nicht mal so, da viele Texte gar nicht plain in den den Dateien stehen, sondern ersetzt werden (was wohl anhand der verschiedenen Releaseoptionen gar nicht anders möglich ist). Schade, aber man kann auch ohne leben.

Geschrieben um 16:21 am 09.11.2010 | Zitat | Editieren | Löschen
jorl
Mitglied
Master Gumby
Beiträge: 99

Ich mache hier mal weiter mit

Frage Nummer 5:

In der Doku steht unter 2.12 use option

Zitat:

[...]change the normal way room descriptions are shown: normally they are given in full when the room is first entered, but are subsequently shortened unless the player actually asks to "look".

Ich habe bei meinen bisherigen Versuchen nicht gesehen, dass irgendwann der Raumbeschreibungstext gekürzt wurde. Es steht immer die komplette Beschreibung da, wenn ich nicht selber mit [if]-Konstrukten eingreife. Und etwas wie eine "short description" scheint es auch nicht zu geben. Für mich sieht default wie full-length room descriptions aus. Übersehe ich da etwas?

Frage 6:

Ich möchte das der Spieler erst vom Bett aufsteht bevor er verschiedene Aktionen macht (und ihn aber nicht mit einem Text wie "Du musst erst aufstehen" quälen), aber



   try getting off the bed.```

liefert immer ```*** Run-time problem P7: Too many rulebooks in simultaneous use.```
Geschrieben um 21:17 am 09.11.2010 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Zu Frage 5:

Die Option "full-length room descriptions" (VERBOSE) ist seit der neuen I7-Version der Standard. Es werden immer die langen Raumbeschreibungen ausgegeben, d.h. Es wird zunächst die description des Raumes angezeigt, dann die initial appeances der sichtbaren Objekte und dann die Namen der restlichen sichtbaren Objekte.

Mit der Option

blue

kann der "alte" Standard wiederhergestellt werden, bei dem nur beim ersten Betreten des Raumes die vollen Beschreibungen angegeben werden (oder nach dem Befehl LAGE (LOOK)). Dies kann aber bei sehr dynamischen Raumbeschreibungen dazu führen, dass der Spieler Teile der Geschichte verpasst, deshalb wurde es geändert.

Zu Frage 6:

Dein Code führt zu einer Endlosschleife, weil die Aktion die versucht wird (getting off) immer wieder ausgeführt wird. Ich dachte ja, das löst man so:

blue

Aber das führt zu einem fatalen Fehler. (Dem mysteriösen Error 10) Schade.

Edit: So geht's: looking (für die erste Raumbeschreibung) und getting off müssen auch abgefangen werden.

blue

Geschrieben um 09:34 am 10.11.2010 | Zitat | Editieren | Löschen
jorl
Mitglied
Master Gumby
Beiträge: 99

Frage 5:

Mit der Option

blue

werden die Raumbeschreibungen niemals angezeigt.

blue funktioniert aber.

Aus der Doku geht für mich aber immer noch nicht hervor, warum es zwei verschiedene Arten gibt um einen Parameter zu setzen (also in wie weit sich das unterscheidet, aber vermutlich gar nicht).

Geschrieben um 10:51 am 10.11.2010 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

VERBOSE, BRIEF und SUPERBRIEF sind die klassischen, noch aus Infocom-Zeiten stammenden Bezeichnungen.

WI 2.12:

Alternatively, we can set the traditional Infocom-style of room description to any of VERBOSE, BRIEF and SUPERBRIEF: ...

Wie das neue Pendant zu BRIEF jetzt heißt, steht da allerdings nicht. Aber ein Blick in die Standard Rules zeigt, dass die Optionen wohl mal

sometimes abbreviated room descriptions

heißen sollte. Vielleicht wurde die einfach vergessen.

Wenn Du die statt BRIEF benutzen möchtest, kannst Du in deinem Quelltext schreiben:

blue

Dann kann die Option mit

blue

aktiviert werden. Aber die abgekürzten Raumbeschreibungen sind für moderne Spiele wahrscheinlich sowieso nicht zu empfehlen.

Geschrieben um 12:49 am 10.11.2010 | Zitat | Editieren | Löschen
jorl
Mitglied
Master Gumby
Beiträge: 99

Ich habe jetzt die (wahrscheinlich einfachste) Lösung für Frage 2, falls das auch andere interessiert. Der Apfel muss nur blue sein und fertig.

The apple is a male edible undescribed thing in the tree-garden.

Geschrieben um 13:08 am 10.11.2010 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Das Attribut blue wird als fehleranfällig gehandelt. Was genau das Problem damit ist, erinnere ich nicht mehr, aber das wurde immer wieder diskutiert. Wenn es also bei Dir zu seltsamen Phänomenen kommt (unvollständige Sätze oder so), dann liegt es wahrscheinlich daran.

Andrew Plotkin:

The "undescribed" property is confusing. It does several different things at once, and I'd have to look through the library source code to name them all. That's why it's not documented: it's not a good idea to use it. It's a holdover from the I6 library code.

Als sicherer gilt (glaube ich), den Apfel als scenery zu deklarieren und ihm dieses Attribut dann bei Bedarf zu nehmen. Mit dem Attribut blue könnte man vielleicht auch arbeiten. Wenn ein Objekt "mentioned" ist, bedeutet das, es wurde schon (in der Raumbeschreibung) erwähnt.

Geschrieben um 13:42 am 10.11.2010 | Zitat | Editieren | Löschen
jorl
Mitglied
Master Gumby
Beiträge: 99

OK, Danke für den Tipp. Bis jetzt haben meine Tests damit funktioniert. (Chaper 3.24. schränkt die Nutzung auch ziemlich auf tragbare/bewegbare Dinge ein, aber das passt ja bei meinem Beispiel)

Mit scenery ist das aber auch ein ganz schönes Gewurschtel und selbst die Doku sagt Zitat:

Being immobile, scenery should not be used for portable objects that are meant to be left out of the room description. Damit hatte es zwar funktioniert, aber wer weiß welche Nebeneffekte ich dabei übersehe.

Ich könnte auch den Apfel als Teil des Baumes machen und dann eine blue schreiben, aber den "Rules"-Abschnitt der Doku habe ich noch nicht gelesen ;-) Ich arbeite mich langsam durch.

Geschrieben um 13:53 am 10.11.2010 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

jorl:

Mit scenery ist das aber auch ein ganz schönes Gewurschtel und selbst die Doku sagt ...

Och, eigentlich kann man da ganz einfach eingreifen:

blue

Damit deckt man auch gleich removing ab.

Edit: "described"/"undescribed" ist aber seit dem letzten I7-Release dokumentiert, habe ich gerade gesehen. Gut möglich, dass Probleme im Zusammenhang mit dieser Eigenschaft behoben wurden.

Geschrieben um 11:58 am 24.11.2010 | Zitat | Editieren | Löschen
jorl
Mitglied
Master Gumby
Beiträge: 99

Mit ist noch etwas aufgefallen: blue liefert bei Teilen von Personen beispielsweise:

eine Zipfelmütze des Gartenzwergs

Der Zwerg ist ein blue und die Mütze ein Teil des Zwerges. Ich würde hier eher erwarten "die(!) Zipfelmütze des Zwerges" so wie "die(!) Nase des Mannes".

Könnte man hier den Standard anpassen oder übersehe ich etwas und sollte lieber die Liste selber bauen?

Außerdem wäre es schön, wenn Dinge die Teil eines anderen Dinges sind, direkt dahinter aufgezählt würden und nicht (scheinbar zufällig) gemischt mit allen anderen.

Geschrieben um 12:52 am 24.11.2010 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

jorl:

Mit ist noch etwas aufgefallen: [a list of visible other things with nominative] liefert bei Teilen von Personen beispielsweise:

eine Zipfelmütze des Gartenzwergs

Das ist völlig korrekt so. blue schreibt eine Liste mit unbestimmtem Artikel, daher das "eine Zipfelmütze". Um eine Liste mit bestimmtem Artikel zu erzeugen, muss blue verwendet werden; das müsste dann "die Zipfelmütze" schreiben (falls nicht, ist das ein Bug!).

Analog dazu gibt es noch die Listen mit großem Anfangsbuchstaben:

blue

Siehe hierzu auch:

http://ifiction.pageturner.de/inform7/gerxdoku.html#docsec32d

Geschrieben um 14:14 am 24.11.2010 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

jorl:

Der Zwerg ist ein man und die Mütze ein Teil des Zwerges. Ich würde hier eher erwarten "die(!) Zipfelmütze des Zwerges" so wie "die(!) Nase des Mannes".

Beides ist ja denkbar: sowohl eine Zipfelmütze des Zwergs (der Zwerg hat 27 Zipfelmützen) als auch die Zipfelmütze des Zwergs (er hat nur eine, und der Gnom hat eine eigene).

Was genau gemeint ist, kann GerX nicht wissen. Wenn Du statt des unbestimmten Artikels immer einen bestimmten verwenden willst, kannst Du das so machen:

003399

» Mehrere Seiten: 12
AntwortenNeues ThemaNeue Umfrage
Powered by Spam Board SVN © 2007 - 2021
Impressum / Datenschutz