IF-Forum

» IF-Forum - Autorencafé - Schreiben! - Nachträgliches ändern des Special indefinite article
AntwortenNeues ThemaNeue Umfrage

Nachträgliches ändern des Special indefinite article

Geschrieben um 01:55 am 19.02.2010 | Zitat | Editieren | Löschen
Strainer
Mitglied
Bachelor Gumby
Beiträge: 48

Hallo!

Bin heute auf ein Neues Problem gestoßen das ich kurz schildern möchte:

Ich möchte Objekte in meinem Spiel haben, welche, nachdem sie betrachtet wurden, mit dem direkten Artikel angesprochen werden. (dies macht z.B. bei bereits durchschrittenen Türen sinn)

Folgendes Beispiel:



The description of the Laptop is "Irgendein Laptop steht in der Ecke.".

After examining the Laptop for the first time:

say "Das ist ja mein Laptop! Wer hat den denn umlackiert?";

now the special indefinite article of the Laptop is DEFINITE ARTICLE;

now the description of the Laptop is "Mein Laptop, schändlich umlackiert, steht in der Ecke.".```

Dieser Code sollte an sich genau das oben beschriebene durchführen, leider kommt dabei folgender Run-time error heraus:

*** Run-time problem P11: Although der Laptop is allowed to have the property "special indefinite article", no value was ever given, so it can't now be used.

Folgendes wird zusätzlich noch angezeigt:

```P12 - Never-set property

Most problems are detected when Inform translates the source text, but this is one of the exceptions, a "run-time problem" which emerges only during play.

It sometimes happens that - although something could in principle have a given property - in fact it doesn't. That makes it impossible to use.

For instance, although every thing is allowed to have a description property, it will only be given one if the source text says so explicitly. That makes writing the description of the noun (say) a little chancy, because it assumes the noun will be a thing which has a description - which might not always be true. If you would like to make sure everything does have a description property, you can always write a sentence like The description of a thing is usually 'Dull.'.```

Das ergibt auch Sinn, das Problem hierbei ist aber, dass es kein "nothing" setting für special indefinite article gibt, womit ein Satz wie ```The special indefinite article of a thing is usually "nothing".``` nicht funktioniert.

Ich bin für jeden Tipp dankbar.

MfG

Strainer
Geschrieben um 13:14 am 19.02.2010 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Zitat:

now the special indefinite article of the Laptop is DEFINITE ARTICLE;

Die Eigenschaft special indefinite article kann in Deinem Beispiel nicht verändert werden, weil sie noch gar nicht vergeben wurde. Und, wie Du richtig beschrieben hat, kann sie nur die Werte des Typs special article annehmen, also DEFINITE ARTICLE, YOURS und NO ARTICLE. Man kann also nicht so einfach eine "leere" Eigenschaft bei der Definition des Objekts vergeben, die dann nachträglich verändert wird. Mit einem I6-Hack ist das aber möglich:

blue

Ein indefinite article kann dann aber nicht mehr verwendet werden, weil dieser von der Eigenschaft special indefinite article überschrieben wird (auch wenn diese NULL ist). Ansonsten müsste alles so laufen, wie Du es möchtest.

Edit: Ich bin mir jetzt gar nicht sicher: Ist das ein Fall, der öfter auftritt? Dann würde es vielleicht Sinn machen, wenn man einen zusätzlichen Wert für den special indefinite article zulassen würde, z.B. PENDING. Der Wert wäre nur Platzhalter und ließe dann (nach entsprechender Änderung der Routine IndefArt() auch einen indefinite article zu -- so lange, bis man dann einen der drei anderen Werte YOURS, DEFINITE ARTICLE oder NO ARTICLE zuweist. Mir mangelt's gerade an Übersicht, deshalb frage ich die Autoren, die derzeit I7/GerX benutzen: Wäre das nützlich?

Geschrieben um 18:15 am 19.02.2010 | Zitat | Editieren | Löschen
Strainer
Mitglied
Bachelor Gumby
Beiträge: 48

Ich glaube schon das es durchaus nützlich wäre, da es bestimmt Sinn Macht, viele mehrfach benutzte Dinge wie Türen nach einer Weile mit bestimmten Artikeln anzusprechen. ("eine Glastür" macht beim dritten durchschreiten als Bezeichnung einfach wenig Sinn)

Verstehe ich es richtig, dass durch das Attribut "PENDING" wieder der indirekte Artikel zugewiesen würde? Oder wäre PENDING dann nur als Standardattribut und Platzhalter zu verstehen bis schließlich einer der 3 special indefinite article vergeben wird?

Also ich persönlich fände es schon praktisch, habe aber auch kein Problem damit es mit deiner vorher beschriebenen i6 Variante zu machen, hauptsache es klappt.

MfG

Geschrieben um 18:24 am 19.02.2010 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Strainer:

Verstehe ich es richtig, dass durch das Attribut "PENDING" wieder der indirekte Artikel zugewiesen würde?

PENDING macht gar nichts, außer den special indefinite article für die spätere Änderung bei einem Objekt vorzumerken. Es würde also bei der Ausgabe mit unbestimmten Artikel auch dieser herangezogen werden. Beispiel:

blue

Mein Testspiel:

Labor

Du siehst hier einen Laptop und ein Buch.

u buch

Du siehst nichts Besonderes an dem Buch.

Erst jetzt erkennst du, dass dies dein Tagebuch ist.

l

Labor

Du siehst hier einen Laptop und dein Buch.

Geschrieben um 19:26 am 19.02.2010 | Zitat | Editieren | Löschen
Strainer
Mitglied
Bachelor Gumby
Beiträge: 48

Um dein Beispiel weiter zu führen:

Würde folgendes funktionieren(auch wenn man es nicht oft brauchen wird):

blue

Und die Ausgabe wäre wieder im indirekten Artikel?

Geschrieben um 19:38 am 19.02.2010 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Ja, ganz genau. Mit PENDING kann man den special indefinite article auch wieder wirkungslos machen.

Edit: Für alle Interessierten gibt es HIER eine Version zum Ausprobieren des PENDING-Werts (der, wie alle anderen Werte auch, je nach Geschmack auch klein geschrieben werden kann; ich bevorzuge jedoch die Schreibweise in Versalien, damit man die Werte besser im Quelltext von anderen Eigenschaften unterscheiden kann).

Edit 2:Ich habe jetzt eine neue Version mit angepasster Kurzdoku hochgeladen, mit der es jetzt möglich ist, den special indefinite article flexibler einzusetzen. Danke an Strainer für den Hinweis.

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