Geschrieben um 19:13 am 27.12.2006 | Zitat | Editieren | Löschen | |
Mitglied Baby Gumby Beiträge: 3 | Hey! Bin ganz neu dabei und hab mal ne Frage: Ich hab einen Raum Zimmer mit einem Sessel drin. Es soll zwei Raumbeschreibungen geben, jenachdem ob man in dem Sessel sitzt oder nicht. Das ist ja kein Problem:
(Ich hab die Flagge duimSessel eingebaut, weil ich's anders nicht hingekriegt hab. Geht wahrscheinlich viel einfacher aber das ist ja gar nicht das Problem.) Was mich eigentlich stört, ist der Text, so wie er dann im Spiel auftaucht:
Den letzten Satz würde ich gern unterdrücken, weil's ja schon in der Raumbeschreibung steht, dass man im Sessel sitzt. Hat vielleicht jemand ne Idee? Danke schonmal im Voraus. |
Geschrieben um 00:01 am 28.12.2006 | Zitat | Editieren | Löschen | |
Mitglied Dr Gumby Beiträge: 199 | Ich würde es so versuchen:
oder
Das Erst und das Text machen es glaube ich aus. Alternativ einfach die Objekte zu Dekos machen - also statt Obj Deko schreiben - das hätte natürlich folgen, denn dann müsste man zum beispiel das "Nehmen" der Deko umprogrammieren... Ansonsten wird Dir Martin bestimmt weiterhelfen können, aber dies im Voraus von mir. |
Geschrieben um 02:07 am 28.12.2006 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 1062 | Hallo, das Objekt, auf dem der Spieler sitzt, steht oder liegt wird in der Variablen aSitz hinterlegt. Wenn du also wissen willst, ob der Spieler im Sessel, im Bett oder im Bus sitzt, kannst du das z.B. mit
abfragen. Ob der Spieler liegt, steht oder sitzt wird durch die Variable bSitz repräsentiert -- %sitzen (1), %stellen (2), %legen (3). Der Satz nach der Raumbeschreibung, den du ändern bzw. unterdrücken willst, ist die InBesch. Wenn du die so definierst
(nicht getestet), sollte keine Meldung kommen. In Kapitel 10.3. des T.A.G.-Handbuches ist dazu alles genau beschrieben. Grüße, CB |
Geschrieben um 17:56 am 31.12.2006 | Zitat | Editieren | Löschen | |
Mitglied Baby Gumby Beiträge: 3 | Tja, danke für die Tipps, aber die funktionieren leider beide nicht Erst unterdrückt zwar 'Du siehst hier einen Sessel', aber nicht 'Du sitzt in dem Sessel'. Und die inBesch-Funktionion geht bei mir gar nicht, nicht mal bei dem Beispiel im Handbuch. Trotzdem Danke. Hab das Problem jetzt jedenfalls gelöst, indem ich mich einfach damit abgefunden hab. So leicht kann's gehn XD! Cheer ~Antonia~ |
Geschrieben um 20:55 am 01.01.2007 | Zitat | Editieren | Löschen | |
Mitglied Prof Gumby Beiträge: 634 | <td valign="top"><div class="post"><p>Hmmm. Die <strong>InBesch</strong> für den Käfig im Handbuch wird nur ausgegeben, wenn der Käfig zu ist. Ob das so sinnvoll ist, und ob mir da kein Denkfehler bei der Implementierung unterlaufen ist, weiß ich nicht.</p> <p>Für dein Problem gibt es aber eine Lösung. Wenn der Sessel das einzige Objekt ist, auf das man sich setzen kann, genügt es den Standardtext Nummer 119 zu ändern. Dazu kopierst du <em>tag.std</em> mit einem neuen Namen, z.B. <em>mein.std</em>, und platzierst zu Beginn deines Quelltexts die Direktive:</p> <pre><code class="language-#STD"></code></pre> <p>Dann änderst du den Text in <em>mein.std</em> ab:</p> <pre><code> ... 118&nbsp; &nbsp; &nbsp;'Außerdem siehst du hier &#91;liste 1&#93;.' 119&nbsp; &nbsp; &nbsp;'' &nbsp; &nbsp; &nbsp; &nbsp; ! war vorher 'Du &#91;sitz&#93;st &#91;in&#93; &#91;dem aSitz&#93;.' ... </code></pre> <p>Der Absatz "Du sitzt in dem Sessel" wird dann immer unterdückt. Wenn es weitere Objekte gibt, auf die sich der Spieler setzen kann, und bei denen dieser Absatz erscheinen soll, könntest du auch eine eigene Aktion definieren:</p> <pre><code class="language-Aktion"> Ausf &nbsp; &nbsp; wenn /&#40;aSitz = Sessel&#41; dann &nbsp; &nbsp; &nbsp; &nbsp; Text 'Du &#91;sitz&#93;st &#91;in&#93; &#91;dem aSitz&#93;.' &nbsp; &nbsp; sonst &nbsp; &nbsp; &nbsp; &nbsp; Text '' &nbsp; &nbsp; Ende EndeAusf ```und diese aus dem Standardtext heraus aufrufen mit: </code></pre> <p>...</p> <p>118 'Außerdem siehst du hier [liste 1].'</p> <p>119 '[mein_InBesch]'</p> <p> ! war vorher 'Du [sitz]st [in] [dem aSitz].'</p> <p>...</p> <pre><code> Auf diese Weise könntest du auch den "Du sitzt"-Text für verschiedene Sitzmöbel anpassen. Der Haken ist hier jedoch, dass bei einer leeren Ausgabe - auch wenn man '/' benutzt um angehängte Leerzeichen zu unterdrücken - ein unschöner leerer Absatz ausgegeben wird, der Text also zerrissen wird. Eine weitere Lösung ist, den "Du sitzt"-Text in *mein.std* immer zu unterdrücken, also einfach für den Text 119 zwei Hochkommas ohne Inhalt anzugeben. Dann kann man den Befehl **Lage** so erweitern, dass für alle Sitzmöbel außer dem Sessel die passende Antwort ausgegeben wird: </code></pre> <p>Bef Lage</p> <p>NachAusf</p> <p> wenn /(aSitz = 0) und /(aSitz = Sessel) dann</p> <p> Text 'Du [sitz]st [in] [dem aSitz].'</p> <p> Ende</p> <p>EndeAusf</p> <pre><code> (T.A.G. erlaubt das Erweitern von fest verdrahteten Befehlen mit **VorAusf** und **NachAusf**. Auch weitere **Verb**en können definiert werden.)</code></pre></div></td> |