Autor |
Nachricht |
< I7 Automatisch aufstehen |
|
Verfasst am:
Mo, 16 März 2015 - 1:13
|
|
|
Neuling

Anmeldungsdatum: 01.07.2013
Beiträge: 17
Wohnort: Göttingen
|
|
Wie bring ich I7 am Leichtesten dazu, den Spieler nicht während er sitzt die Tür gegenüber öffnen zu lassen und dergleichen?
Es wäre wohl am besten, wenn vor jeder Aktion, zu der er vernünftigerweise aufstehen muss, er automatisch (mit Erwähnung der Vorleistung) aufsteht.
Nach allem, was ich mit I7 kann, führen Versuche mit "before doing something other than . . ." und ähnlichem zu Kompilierfehlern und Running errors.
Mein Stuhl ist ein enterable supporter. _________________ Dichter der Baukis. |
|
|
|
 |
|
Verfasst am:
Mo, 16 März 2015 - 1:45
|
|
|
Experte

Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg
|
|
Versuch mal bitte sowas:
Code: |
Before doing something when the player is on the table:
say "(Dazu stehst du erst auf.)[command clarification break]";
move player to location; ['try exiting;' führt zu einer Endlosschleife]
continue the action; |
Damit erschlägst du jede Aktion, was sicher nicht ganz das ist, was du suchst. Aber du kannst auch einzelne Aktionen oder auch Klassen von Aktionen benutzen:
Code: |
Before opening the door when the player is on the table:
say "(Dazu stehst du erst auf.)[command clarification break]";
try exiting;
continue the action; |
Im zweiten Beispiel kannst du ganz normal "try exiting" benutzen. |
|
|
|
 |
|
Verfasst am:
Mo, 16 März 2015 - 22:54
|
|
|
Neuling

Anmeldungsdatum: 01.07.2013
Beiträge: 17
Wohnort: Göttingen
|
|
Vielen Dank, Christian.
Ich will es einmal mit der letzteren Methode versuchen. Das gibt zwar einen ellenlangen Text, aber er könnte kürzer ausfallen, wenn ich etwas derartiges machen könnte:
Code: |
Before doing something with a part of the door when the player is on the chair:
say "(Dazu stehe ich erst einmal auf.)[command clarification break]";
try exiting;
continue the action.
|
Das versteht und erlaubt Inform leider nicht. Gibt es dazu eine passende syntaktische Ersetzung, oder könnte man das anderweitig möglichst leicht bewerkstelligen? _________________ Dichter der Baukis. |
|
|
|
 |
|
Verfasst am:
Di, 17 März 2015 - 1:44
|
|
|
Experte

Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg
|
|
Du könntest für die Teile der Tür eine Klasse definieren, z.B.
Code: | A door-part is a kind of thing. |
Dann kannst du Teile der Tür als door-part definieren, z.B.
Code: | The door knob is a door-part. |
Jetzt funktioniert auch Deine Before-Regel:
Code: | Before doing something with a door-part when the player is on the chair:
... |
|
|
|
|
 |
|
Verfasst am:
Fr, 20 März 2015 - 22:09
|
|
|
Neuling

Anmeldungsdatum: 01.07.2013
Beiträge: 17
Wohnort: Göttingen
|
|
Dankeschön! Ich kann das dergestalt machen, bei meinem erforderlichen Umfang ergibt das eine ganz überschaubare Code-Menge.
Code: | Before doing something to the door when the player is on the Stuhl:
say "(Dazu stehe ich erst einmal auf.)[command clarification break]";
move player to location;
continue the action; |
usw . . .
Aber ich habe noch zwei Probleme damit, die ich nicht wirklich in den Griff bekomme.
Erstens ein kosmetisches, nämlich würde ich mir wünschen, dass nach dem jedesmaligen Aufstehen nicht erneut die lange Raumbeschreibung angezeigt wird, am besten sogar gar keine. Das müsste sich doch temporär machen lassen? Aber ich erkenne nicht, wie.
Zweitens ist bei obigem Code folgendes der Fall. Der Befehl "Steh auf" (also exiting) verursacht, dass erst versucht wird aufzustehen, was auch immer eintritt. Dann aber tritt das "continue the action" in Kraft und es wird abermals exiting durchgeführt. Weißt du, weiß jemand, wie sich das gut abfangen ließe? _________________ Dichter der Baukis. |
|
|
|
 |
|
Verfasst am:
Mi, 25 März 2015 - 10:09
|
|
|
Experte

Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg
|
|
Midas hat folgendes geschrieben: | Weißt du, weiß jemand, wie sich das gut abfangen ließe? |
Stimmt, es müsste an der Stelle "stop the action" heißen.
Für das Unterdrücken der Raumbeschreibung weiß ich jetzt auch keine einfache Lösung. |
|
|
|
 |
|
Verfasst am:
Mi, 25 März 2015 - 11:56
|
|
|
Abenteurer

Anmeldungsdatum: 03.09.2009
Beiträge: 453
Wohnort: Cham
|
|
Für das kosmetische Problem ließe sich die folgende Regel ausklammern:
Code: | The describe room stood up into rule is not listed in any rulebook. |
Dann kommt keine Raumbeschreibung mehr nach dem Verlassen des Stuhls ..... |
|
|
|
 |
|
Verfasst am:
Mi, 25 März 2015 - 13:08
|
|
|
Abenteurer

Anmeldungsdatum: 03.09.2009
Beiträge: 453
Wohnort: Cham
|
|
Etwas ausführlicher:
1. Wenn Aktionen auf Dinge angewendet werden, die sich außerhalb des Stuhls befinden, greift die "never reach things when on supporters rule", ausgenommen es handelt sich um eine Person (d.h. der Spieler bleibt z.B. bei Gesprächen bequem auf dem Stuhl sitzen)
2. Nach dem Aufstehen kommt keine Raumbeschreibung mehr.
Code: | Include German by Team Gerx.
The Handy is a thing held by player.
Wohnzimmer is a Room. "Eine rote Tür führt nach Norden ins Esszimmer."
Esszimmer is a Room. "Eine rote Tür führt nach Süden ins Wohnzimmer."
The red door is north from the Wohnzimmer and south from the Esszimmer. The red door is a female scenery door. The printed name is "rot[^] Tür". understand "rot" and "tuer" as the red door.
The Kamin is a male thing in the Wohnzimmer. It is fixed in place.
The stool is a male enterable supporter in the Wohnzimmer. The printed name is "Stuhl[-s]". understand "stuhl" as the stool.
The describe room stood up into rule is not listed in any rulebook.
before doing something to something (called the objekt) when the player is on a supporter (called the sitzgelegenheit) (this is the never reach things when on supporters rule):
if the sitzgelegenheit does not enclose the objekt and the objekt is not a person:
say "(Dazu steigst du erst von dem Stuhl.)";
try silently exiting.
Test me with "setz dich auf stuhl/x handy/berühr kamin/setz dich auf stuhl/n" |
Was evtl. noch verbessert werden kann, ist die Meldung an sich "Du steigst erst von..." die nicht sehr elegant klingt, aber der Standardmeldung entspricht ....
Hoffe, das hilft Dir weiter. |
|
|
|
 |
|