if-de :: Forum Foren-Übersicht
Autor Nachricht
<  I7 Automatisch aufstehen
Midas
BeitragVerfasst am: Mo, 16 März 2015 - 1:13  Antworten mit Zitat
Neuling
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.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ChristianB
BeitragVerfasst am: Mo, 16 März 2015 - 1:45  Antworten mit Zitat
Experte
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.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Midas
BeitragVerfasst am: Mo, 16 März 2015 - 22:54  Antworten mit Zitat
Neuling
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.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ChristianB
BeitragVerfasst am: Di, 17 März 2015 - 1:44  Antworten mit Zitat
Experte
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:
...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Midas
BeitragVerfasst am: Fr, 20 März 2015 - 22:09  Antworten mit Zitat
Neuling
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.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ChristianB
BeitragVerfasst am: Mi, 25 März 2015 - 10:09  Antworten mit Zitat
Experte
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.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mikawa
BeitragVerfasst am: Mi, 25 März 2015 - 11:56  Antworten mit Zitat
Abenteurer
Abenteurer


Anmeldungsdatum: 03.09.2009
Beiträge: 438
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 .....
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mikawa
BeitragVerfasst am: Mi, 25 März 2015 - 13:08  Antworten mit Zitat
Abenteurer
Abenteurer


Anmeldungsdatum: 03.09.2009
Beiträge: 438
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.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Alle Zeiten sind GMT + 1 Stunde (MEZ)

Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Seite 1 von 1
if-de :: Forum Foren-Übersicht  >  Inform & Glulx

Neues Thema eröffnen   Neue Antwort erstellen


 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.



Kontakt: Administrator

Powered by phpBB and NoseBleed v1.05