| Geschrieben um 18:37 am 22.08.2006 | Zitat | Editieren | Löschen | |
Mitglied Student Gumby Beiträge: 28 | Als Ortsbedingungen fuer Objekte gibt es zB ‘beimir’, ‘hier’ und ‘angezogen’. ‘beimir’ scheint aber Objekte in einem Behaelter, den ich bei mir trage, nicht zu erfassen. Muss ich alle Behaelter per Schleife auslesen oder gibt es eine weitere Bedingung, die ich nicht kenne? |
| Geschrieben um 22:50 am 23.08.2006 | Zitat | Editieren | Löschen | |
Mitglied Prof Gumby Beiträge: 569 | <td valign="top"><div class="post"><p>Mit der Anweisung StammObj (<a href="http://www.martin-oehm.de/tagman/kap_05.html#5.2">T.A.G.-Handbuch Kapitel 5.2.4.</a>) kannst du leicht feststellen, ob sich ein Objekt indirekt beim Spieler befindet. Wenn das Stammobjekt eines Objekts beiMir ist, dann muss das Objekt auch irgendwo in den Tiefen des Inventars zu finden sein. Ähh… ein kleines Beispiel:</p> <p>“`Obj Vase</p> <p>Name ‘Blumenvase’ f</p> <p>Vor ‘blumen’</p> <p>Subst ‘vase’ f</p> <p>Attr Behälter transparent</p> <p>Vol 10</p> <p>Ort beiMir</p> <p>Obj Bernstein</p> <p>Name ‘Bernstein’ m</p> <p>Vor ‘bern’</p> <p>Subst ‘stein’ m</p> <p>Attr Behälter transparent</p> <p>Vol 2</p> <p>Ort in Vase</p> <p>ObjVar xObj ! in der normal.adv schon vordefiniert</p> <p>Obj Fliege</p> <p>Name ‘Fliege im Bernstein’ f</p> <p>Adj ‘tot’</p> <p>Subst ‘fliege’ f ‘insekt’ n</p> <p>Ort in Bernstein</p> <p>VorAusf</p> <p> (untersuchen)</p> <p> StammObj xObj selbst</p> <p> ! Der Objekt-Variablen xObj wird das</p> <p> ! Stammobjekt der Fliege (selbst) zugewiesen.</p> <p> ! (Hier: die Vase)</p> <p> </p> <p> Wenn (xObj beiMir) dann</p> <p> Stop ‘Die Fliege ist indirekt bei dir.’</p> <p> Ende</p> <p> (nehmen herausnehmen)</p> <p> Stop ‘Die Fliege ist schon vor Jahrmillionen im</p> <p> Harz gefangen worden.’</p> <p>EndeAusf“`</p> </div></td> |
| Geschrieben um 19:37 am 25.08.2006 | Zitat | Editieren | Löschen | |
Mitglied Student Gumby Beiträge: 28 | Mir scheint der Befehl InhListe geeignet, das Spiel auf Gegenstaende in einem Behaelter reagieren zu lassen. ZB eine Waffe in einem Koffer. InhListe OVar Flg Schreibt den Inhalt des Objekts OVar heraus. Je nach Flg wird eine Meldung herausgegeben, wenn OVar leer ist, und es werden darunterliegende mitbetrachtet (Rekursion). Um Sachen darin zu zeigen, muß das Objekt ein Behälter sein, um Sachen darauf zu zeigen, eine Ablage. Dieser Befehl schreibt aber nur den Inhalt eines Behaelters, wenn der Behaelter geoeffnet oder transparent ist. Solange der Behaelter geschlossen ist, gibt das Spiel als Inhalt ‘nichts’ aus. Das Spiel soll in meinem Fall aber auch Gegenstaende in geschlossenen Behaeltern als sich beim Spieler befindlich erkennen. |
| Geschrieben um 19:52 am 25.08.2006 | Zitat | Editieren | Löschen | |
Mitglied Student Gumby Beiträge: 28 | <td valign="top"><div class="post"><p>Ich hab’s! Der Code unten macht was ich brauche. Danke fuer den Tipp, ChristianB!</p> <p>N bisschen laestig ist nur, dass ich BeiMir und Angezogen (fuer Rucksaecke etc) abpruefen muss.</p> <p>“`ObjVar iteststamm</p> <p>ObjVar itestobj</p> <p>Bef Itest</p> <p>Name ‘Itest’</p> <p>Verb ‘itest’</p> <p>Ausf </p> <p> Schleife itestobj</p> <p> StammObj iteststamm itestobj</p> <p> Wenn (iteststamm beimir)</p> <p> Text ‘[itestobj] ist bei dir.’</p> <p> Wenn (iteststamm angezogen)</p> <p> Text ‘[itestobj] ist bei dir.’</p> <p> Ende</p> <p>EndeAusf “`</p> </div></td> |
| Geschrieben um 22:51 am 25.08.2006 | Zitat | Editieren | Löschen | |
Mitglied Prof Gumby Beiträge: 569 | <td valign="top"><div class="post"><p>beiMir und angezogen kannst du in einer Bedingung benutzen (entspricht “oder”):</p> <p>“`Wenn (iteststamm beimir angezogen) ! beimir ODER angezogen</p> <p> Text ‘[itestobj] ist bei dir.’“`</p> <p>So lästig ist’s doch nicht.</p> </div></td> |
| Geschrieben um 06:45 am 26.08.2006 | Zitat | Editieren | Löschen | |
Mitglied Student Gumby Beiträge: 28 | Ach, das heisst ODER? Ich dachte, die Aufzaehlung bedeutet UND. Danke. Ich habe noch eine Bedingung, die ich mit UND verbinde. Ergebnis soll sein, dass die Pistole bei mir entdeckt wird, egal, ob ich sie in einem Rucksack, einer Jackentasche oder einem Koffer verstecke.
und
haben beide nicht so funktioniert wie erwartet. Mit dem eingangs gezeigten Code geht’s aber. Egal, hauptsache es laeuft. |