if-de :: Forum Foren-Übersicht
Autor Nachricht
<  Locked Doors
Rabea
BeitragVerfasst am: Di, 5 März 2013 - 22:41  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 25.02.2013
Beiträge: 36
Wohnort: Bielefeld

... so wieder da!

Diesmal habe ich ein Problem mit meiner Eisentür. Komischerweise funktioniert es manchmal und manchmal auch wieder nicht (in einem Spieldurchlauf).

(Im Folgenden bitte nicht über die Wortwahl lachen)
Mein Anliegen war es, den Spieler nur vom Garten in das Anwesen des Dionys zu lassen, sofern der Dolch in der Scheide steckt (die er bei sich trägt). Der Dolch wird ihm erst abgenommen, sobald er ihn gezogen hat (dann kommt er automatisch in den Waffenschrank des Dionys und die Scheide ist fortan leer).
Genau in diesem Moment schöießt sich die Eisentür und der Spieler kann nicht mehr in den Garten gelangen.

Die Programmierung dazu sieht folgendermaßen aus:

Before going to the Garten:
>>> if the Dolch is in the Scheide:
>>>>>>now the Eisentuer is open;
>>> otherwise:
>>>>>>say "[bold type][red letters]Äh, neee! Moment! [default letters]Möchtest Du jetzt flüchten?[line break]Das ist aber nicht im Sinne des Dichters. Da musst Du jetzt durch. Du hast Dich in diese Situation selber gebracht, niemand hat Dir befohlen, den Tyrannen anzugreifen. Außerdem wollen wir hier eine Heldengeschichte über Freundschaft, Mut und Ehre erleben!! [line break]Also bitte, Du wirst um ein Gespräch mit dem Tyrannen jetzt nicht mehr herumkommen.[line break][green letters]Hau rein Keule - Alles Gute![default letters]" instead.

Ich muss dazu sagen, dass das Anwesen des Dionys IM Garten liegt und der Dolch bei Spielbeginn automatisch in der Scheide ist und der Spieler im Garten steht.

Komischerweise kann ich das Anwesen erst durch die Eisentür betreten, nachdem ich mit "rein" im Anwesen war, dann mit "raus" wieder in den Garten gehe und DANN kann ich erst mit "gehe durch eisentür" in das Anwesen. Habe ich das rein/raus Prozedere nicht gemacht, bleibt die Eisentür verschlossen und ich komm vom Garten nicht ins Anwesen.

Hab ich hier was falsch gemach?

Liebe Grüße
Rabea
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Rabea
BeitragVerfasst am: Di, 5 März 2013 - 23:46  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 25.02.2013
Beiträge: 36
Wohnort: Bielefeld

oh, ok... habe gerade selber gesehen woran es liegt. Die Abfrage mit "Before" ist denk ich mal Schuld.
Ist es so, dass man hier erst "wieder" in den Garten gekommen sein muss, bevor die Schleife überhaupt aktiv wird? Und da der Spieler im Garten startet, ist er ja noch nicht zum Garten zurückgekehrt, weshalb bislang noch nichts greift.

Das würde zumindest erklären, wieso es funktioniert, nachdem man mit rein/raus wieder im Garten ist, dann die Tür benutzen kann.

Das macht es irgendwie nciht einfacher. Gibt es denn dafür eine Lösung?

Entschuldigt das viele Gefrage :-/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Martin
BeitragVerfasst am: Mi, 6 März 2013 - 8:18  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 25.08.2002
Beiträge: 677
Wohnort: München

Alle Dinge, die Du mit "before" und "instead" abfängst, haben mit einer konkreten Aktion zu tun. Wenn der Spieler sagt "nimm Dolch", dann kannst Du mit "Before taking the dagger" und "Instead taking the dagger" eingreifen.

Beim Gehen ist es wohl so, dass zunächst "going inside" ausgeführt wird und dann, wenn das Ziel erreicht ist, "going to (whereever)" ausgeführt wird. "Before going to the garden" wird also nur abgefangen, wenn Du erfolgreich durch Gehen in den Garten gelangt bist. Und das geht in Deinem Beispiel nur, wenn du einmal aus dem Garten raus und dann wieder hineingehst.

Ob irgendwelche Sachen ausgeführt werden, kannst Du prüfen, indem Du mit "say" etwas ausgeben lässt.

Allgemeine Bedingungen kann man nach dem eigentlichen Zug mit "Every turn" überprüfen:

Every turn when the player is in the garden and the dagger is not in the sheath and the iron door is open: now the iron door is closed; now the iron door is locked; say "Mit einem Krachen schließt sich die Eisentür."

Every turn wird unabhängig von der Art des Befehls und seiner erfolgreichen Ausführung durchgeführt. Diese allgemeine Abfrage hat den Vorteil, dass sie immer betrachtet wird, egal, wieso der Dolch nicht mehr in der Scheide ist. Sie funktioniert auch, wenn man zum Beispiel definiert, dass der Dolch aus der Scheide fällt, wenn man sie schüttelt oder dass er aus der Scheide springt, wenn man mit den Fingern schnippt.

In Deinem Fall kann man aber nur durch das Nehmen oder ziehen das Dolchs die Tür schließen. Du könntest also auch "After taking the dagger" oder so nutzen, um die Tür zu schließen, denn das ist die Aktion, die zum Versperren der Tür führt, nicht das Gehen.
_________________
Every silver lining has a cloud.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ChristianB
BeitragVerfasst am: Mi, 6 März 2013 - 9:16  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

Mit den Debug-Befehlen ACTIONS und RULES lässt sich gut nachverfolgen, was hinter den Kulissen bei einem Zug so läuft.
_________________
Worichtung willst du ingehen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Rabea
BeitragVerfasst am: Mi, 6 März 2013 - 11:36  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 25.02.2013
Beiträge: 36
Wohnort: Bielefeld

So hat es wieder funktioniert :) danke.

Sage mal, gibt es eigentlich irgendwo eine Liste mit Befehlen oder mit Ausdrücken, die Inform versteht?
Bei mir haperts vor allem daran, dass ich genau das nicht weiß.

Zitat:
Mit den Debug-Befehlen ACTIONS und RULES lässt sich gut nachverfolgen, was hinter den Kulissen bei einem Zug so läuft.


Wie setze ich denn Debug Befehle ein?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Martin
BeitragVerfasst am: Mi, 6 März 2013 - 12:00  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 25.08.2002
Beiträge: 677
Wohnort: München

Rabea hat folgendes geschrieben:
Wie setze ich denn Debug Befehle ein?
Immer, wenn Du in der grafischen Umgebung von Inform arbeitest, also quasi Quelltext links, Interpreter und Fehermeldungen rechts, wird das Spiel im Debug-Modus erzeugt. Diese Befehle stehen Dir also schon zur Verfügung, Du wusstest es nur nicht. (Ich auch nicht - danke, Christian!)

Wenn man das Spiel dann veröffentlicht (siehe Kapitel "Releasing"), werden diese Verben, die ja nur fürs Entwickeln benötigt werden, deaktiviert.

Rabea hat folgendes geschrieben:
Sage mal, gibt es eigentlich irgendwo eine Liste mit Befehlen oder mit Ausdrücken, die Inform versteht?
Nicht, dass ich wüsste.

Mir fällt es auch oft schwer, mich in Inform 7 zurechtzufinden. Inform 6 oder andere Programmiersprachen zu kennen, hilft da auch nicht, I7 nennt die Dinge fast nie so, wie man meint, dass sie heißen müssten.

Man kommt vermutlich nicht darum, sich zumindest die ersten acht oder so Kapitel einmal durch- oder querzulesen. Dann hat man einen groben Überblick und kann bestimte Themen über das Hauptverzeichnis (wenn man nur eine Idee hat, wonach man sucht) oder die Suchfunktion (wenn man schon einen bestimmten Begriff kennt) finden.
_________________
Every silver lining has a cloud.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ChristianB
BeitragVerfasst am: Mi, 6 März 2013 - 12:01  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

So zum Beispiel (im Nicht-Release-Modus):
Mein Testspiel hat folgendes geschrieben:
>actions
Actions listing on.

>u dich
[examining du]
Gutaussehend wie immer.

[examining du - succeeded]

>rules
Rules tracing now switched on. Type "rules off" to switch it off again, or "rules all" to include even rules which do not apply.

>nimm pizza
[taking das Stück Pizza]
[Rule "can't take yourself rule" applies.]
[Rule "can't take other people rule" applies.]
[Rule "can't take component parts rule" applies.]
[Rule "can't take people's possessions rule" applies.]
[Rule "can't take items out of play rule" applies.]
[Rule "can't take what you're inside rule" applies.]
[Rule "can't take what's already taken rule" applies.]
[Rule "can't take scenery rule" applies.]
[Rule "can only take things rule" applies.]
[Rule "can't take what's fixed in place rule" applies.]
[Rule "use player's holdall to avoid exceeding carrying capacity rule" applies.]
[Rule "can't exceed carrying capacity rule" applies.]
[Rule "standard taking rule" applies.]
[Rule "standard report taking rule" applies.]
In Ordnung.
[taking das Stück Pizza - succeeded]

>rules off
Rules tracing now switched off. Type "rules" to switch it on again.

>actions off
Actions listing off.


Rabea hat folgendes geschrieben:
Sage mal, gibt es eigentlich irgendwo eine Liste mit Befehlen oder mit Ausdrücken, die Inform versteht?

Die komplette Syntax gibt's hier (nicht mehr ganz aktuell, und GerX-Spezialitäten sind auch nicht mit drin).

http://inform7.com/learn/documents/I7_syntax.txt

Eine Liste der Kommandos lässt sich aus dem Actions-Index eines jeden Spiels ablesen (direkt in der Entwicklungsumgebung).
_________________
Worichtung willst du ingehen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Rabea
BeitragVerfasst am: Fr, 8 März 2013 - 13:18  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 25.02.2013
Beiträge: 36
Wohnort: Bielefeld

Hallo ihr beiden,

zwar etwas spät, aber dennoch - vielen Dank für Eure Hilfe.
Alles in allem haben mich die Tipps und Erklärungen sehr weitergebracht!

Diese Debut Befehle sind in der Tat sehr nützlich, vor allem für mich als Anfänger, genauso wie der actions-Index (den hatte ich vorher gar nicht gefunden, bzw. ihm gar keine Beachtung geschenkt).

Mittlerweile komme ich sehr gut hier voran und siehe da, mehr und mehr nimmt die "Bürgschaft" Form an :)

Zwei Dinge beschäftigen mich aber noch:

Ich habe nun auch ein paar Quelltexte von anderen gesehen und gelesen. Verglichen mit meinem eigenen (der noch eher aussieht wie Linsensuppe) sind die anderen so schön ordentlich und strukturiert und es ist beinahme möglich, das Spiel durch reines Lesen des Quellcodes zu verstehen. Gibt es da eigentlich so etwas wie "guten Stiel"? Mit sicherheit doch, oder? Ich habe gesehen, jeder macht es irgendwie etwas anders. Meine Befürchtung ist nur, dass wenn ich meinen Text auseinanderpflücke, dass er dann nicht mehr funktioniert. Aber wenn ich schön alle Sätze mit Punkt beende und darauf achte, dass kein Befehl in den anderen rutscht, dann dürfte die Umsortierung doch eigentlich kein Problem sein, oder?

Die andere Sache ist, ich habe nun auch ein paar weitere Extensions installiert. U.a. auch die Basic Sceen Effects von Emily Short. Jedoch habe ich nach der Installation eine Fehlermeldung bekommen, die sich auf die Extension bezog. Ich habe nun kurzerhand die Extension an zwei Stellen umgeschrieben, sodass sie funktioniert. Aber habe ich damit nicht irgendwie Urheberrechte verletzt? Irgendwie kommt mir das so vor :)

Liebe Grüße
Rabea
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
proc
BeitragVerfasst am: Fr, 8 März 2013 - 14:28  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 08.12.2009
Beiträge: 889
Wohnort: Berlin

Rabea hat folgendes geschrieben:
Gibt es da eigentlich so etwas wie "guten Stiel"?

Selbstverständlich, neben der programmierüblichen Trennung von Form und Inhalt kann der gerade in I7 schnell ins Unübersichtliche wandernde Quelltext in bis zu 5 Hierarchieebenen Volume, Book, Part, Chapter und Section strukturiert werden, ich empfehle eindringlich, das Chapter 2 der Doku zumindest zu überfliegen.

Rabea hat folgendes geschrieben:
Ich habe nun kurzerhand die Extension an zwei Stellen umgeschrieben, sodass sie funktioniert. Aber habe ich damit nicht irgendwie Urheberrechte verletzt?

Letzteres nein (ist im Storyfile eh nicht nachvollziehbar), aber damit kommst du irgendwann mit anderen Projekten in Teufels Küche und kannst dein .ni-file z.B. bei Inform-Neuinstallation nicht mehr fehlerfrei nutzen. Dass externe Extensions überschreibbar sind, liegt nur an der laxen Rechteverwaltung in Windows, im Linux-Inform ist das erst gar nicht möglich (zumindest nicht ohne Root-Rechte). Extensions sollten besser Sektionsweise kopiert und dann im eigenen Quelltext angepasst werden, dafür ist die Anweisung "in place of" in den Strukturierungs-Headings vorgesehen (steht alles und noch viel mehr in Chapter 2):

Code:
Section - Eigenes Spacing (in place of Section 1 - Spacing and Pausing in Basic Screen Effects by Emily Short)
...

_________________
interactive fiction database
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Rabea
BeitragVerfasst am: Fr, 8 März 2013 - 14:59  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 25.02.2013
Beiträge: 36
Wohnort: Bielefeld

Oha, jetzt musste ich gerade selber etwas lachen! Ich hatte das Chapter 2 gelesen, aber stellenweise völlig anders vestanden.
Nun gut, da muss ich wohl nochmal dran.

An die Extensions trau ich mich noch nicht wirklich ran. Zur Zeit hab ich eher noch das Potential alles kaputt zu machen. Ich war froh, dass wenigstens das klappte, was ich da gemacht hab :)

Trotzdem erst mal danke! :)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
proc
BeitragVerfasst am: Fr, 8 März 2013 - 15:37  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 08.12.2009
Beiträge: 889
Wohnort: Berlin

Falls noch nicht bekannt: Da gibt's noch ein dickes Tutorial von Jim Aikin, das sich an Einsteiger richtet und in etwa nach der Doku strukturiert ist, alles nur eben anhand kleiner Beispiel-Snippets erklärt. Sehr empfehlenswert als Nachschlagewerk ist das "Programmer's Manual", das besser in die Funktionsweise von I7 einführt und ansatzweise auf "Blicke hinter die Kulissen" angelegt ist. Ich würde es deshalb auch Einsteigern empfehlen, man muss ja nicht gleich alles nachvollziehen, wächst aber mit der praktischen Arbeit rein. Hier stehen die einschlägigen Links.
_________________
interactive fiction database
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ChristianB
BeitragVerfasst am: Fr, 8 März 2013 - 16:46  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

Rabea hat folgendes geschrieben:
Die andere Sache ist, ich habe nun auch ein paar weitere Extensions installiert. U.a. auch die Basic Sceen Effects von Emily Short. Jedoch habe ich nach der Installation eine Fehlermeldung bekommen, die sich auf die Extension bezog.

Was war denn das für eine Fehlermeldung?

Die "Basic Screen Effects" sollten mit GerX problemlos zusammen funktionieren, da die deutsche Erweiterung die Übersetzung der Ausgabetexte automatisch übernimmt. Dazu muss die "Basic Screen Effects"- Erweiterung allerdings VOR German eingebunden werden (siehe auch den Hinweis in der GerX-Kurzdoku (die Du auch direkt in der Entwicklungsumgebung lesen kannst):

http://ifiction.pageturner.de/inform7/German.html#docsec78

Für alle Fälle: Benutzt Du die aktuellste Version der German-Extension? Die gibt es hier:

http://ifiction.pageturner.de/inform7/

Falls Du eine ältere Version verwendest (z.B. die von der Inform-Homepage) würde ich empfehlen, das Update zu installieren, was uns die Suche nach möglichen Fehlern in GerX erleichtert. Es kann nämlich auch gut sein, dass ich zwischendurch etwas bei der automatischen Übersetzung der Basic Screen Effects was kaputtgemacht habe, ohne es zu merken. Wenn also irgendwelcher Murks auftaucht, kann es grundsätzlich gut möglich sein, dass die deutsche Erweiterung Schuld ist, also nicht zögern und das Problem einfach melden (gern auch hier im Forum); das Team GerX freut sich über jeden Fehler, der ausgemerzt werden kann.

Viel Spaß weiterhin mit I7 und GerX

Christian
_________________
Worichtung willst du ingehen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Rabea
BeitragVerfasst am: Fr, 8 März 2013 - 17:20  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 25.02.2013
Beiträge: 36
Wohnort: Bielefeld

Hallo Christian,

ich werde gerade mal versuchen das ganze in den Fehlerzustand wieder zu versetzen und schaue nach welche Versionen ich installiert habe.
Melde mich gleich zurück und schicke Dir dann den Fehlerbericht :)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Rabea
BeitragVerfasst am: Fr, 8 März 2013 - 17:46  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 25.02.2013
Beiträge: 36
Wohnort: Bielefeld

...so, da bin ich wieder.

Also, zu den Extensions:
Ich benutze die Version 5 von Emily Short und die Version 3/120621 vom 06.09.11 der deutschen Erweiterung, steht dort geschrieben.

Die Fehlermeldung ist folgende:
Zitat:

This is the report produced by Inform 7 (build 6G60) on its most recent run through:

In Section 1 - Spacing and Pausing in the extension Basic Screen Effects by Emily Short:

Problem. In 'To center (quote - text-routine)' , the text 'text-routine' after the hyphen should tell me what kind of value goes here (like 'a number', or 'a vehicle'), but it's not something I recognise.

See the manual: 11.3 > Pattern matching

Problem. In 'To center (quote - text-routine) at the/-- row (depth - a number)' , the text 'text-routine' after the hyphen should tell me what kind of value goes here (like 'a number', or 'a vehicle'), but it's not something I recognise.


Ich habe daraufhin in der Extension an diesen Stellen nachgeschaut und in der ersten, wie auch in der fünften Zeile das "-routine" einfach rausgelöscht:
Code:

To center (quote - text-routine):
   (- CenterPrintComplex({quote}); -);

To center (quote - text):
   (- CenterPrintComplex({quote}); -);
 
To center (quote - text-routine) at the/-- row (depth - a number):
   (- CenterPrint({quote}, {depth}); -);


Jetzt bin ich etwas unsicher, ob das so statthaft war. Denn ich habe die Erweiterung von Emily Short nicht vor der deutschen Erweiterung installiert. Ich wusste das zu dem Zeitpunkt noch nicht :(
Hilft es an der Stelle, wenn ich einfach die "veränderte" Erweiterung von Emily Short einfach noch mal überschreibe mit der ursprünglichen und danach dann erneut die deutsche installiere, damit die Reihenfolge wiederhergestellt ist?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ChristianB
BeitragVerfasst am: Fr, 8 März 2013 - 18:08  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

Installiere doch bitte einmal die neueste GerX-Version, damit alte Fehler ausgeschlossen werden können.

http://ifiction.pageturner.de/inform7/

Dann prüfe, ob die Basic Screen Effects in Deinem Quelltext *VOR* German eingebunden werden, d.h. die Include-Zeile für German muss nach BSE (also die Erweiterung) kommen.

Wenn der Fehler dann immer noch auftaucht, geht das große Suchen los. ;-) Der Fehler könnte sich auch in Deinem Quelltext verbergen, im Zusammenhang mit Erweiterungen sind die Fehlermeldungen teilweise sehr irreführend.
_________________
Worichtung willst du ingehen?
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 4
Gehe zu Seite 1, 2, 3, 4  Weiter
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