| Geschrieben um 11:50 am 23.02.2003 | Zitat | Editieren | Löschen | |
Mitglied Master Gumby Beiträge: 126 | <td valign="top"><div class="post"><p>Liebe TAG-Leute…,</p> <p>in “HDRaum”-Klasse-Räumen wie der fiktiven “Grotte” unten hängt der Name anscheinend nicht davon ab, ob Licht in <em>diesem</em> Raum ist, sondern ob Licht “beim” Spieler ist (in Form einer getragenen Lampe). Wenn die Lichtquelle abgelegt wird, funktioniert es wie gewünscht.</p> <p>Beispiel:</p> <ul> <li><p>Der Spieler trägt eine Lampe, ist südlich der Grotte und rennt gegen eine Wand, worauf die möglichen Ausgänge aufgelistet werden.</p></li> <li><p>Der Ausgänge-Auflister (zu 99% aus ausgang.adx übernommen) schreibt “Du kannst hier nur nach Norden (“.</p></li> <li><p>Dann belegt er lraum mit dem “Nordraum”, also der Grotte, und gibt ihren Namen aus.</p></li> <li><p>Dieser ist ein Ausführungsblock in der Raumklasse HDRaum, der die Aktion lichtTest aufruft, um in Erfahrung zu bringen, welchen Namen er ausgeben soll.</p></li> <li><p>lichtTest benötigt lraum, um zu wissen, in welchem Raum “Licht getestet” werden soll. Und jetzt kommt das Problem: Im Raum-mit-Spieler-drinne ist Licht, in der Grotte (bzw. dem “Nordraum” bzw. lraum bzw. xxx in der Ausgangliste-Aktion) nicht. Trotzdem wird in der Grotte “Licht gefunden” und dann natürlich der falsche Name ausgegeben.</p></li> </ul> <p>Was hab ich diesmal übersehen? Fällt da jemandem was ein oder auf?</p> <p>“`Aktion *</p> <p>Ausf</p> <p> sei lraum araum</p> <p>EndeAusf</p> <p>RaumKlasse HDRaum ! Klasse für halbdunkle Räume</p> <p>Name Ausf</p> <p> ! hier kommt lraum von “außen” (Aktion * oder Ausgang-Lister),</p> <p> ! daselbst hier sowieso ungültig?! (versteh ich nich)</p> <p> Ausf lichtTest</p> <p> wenn (lFlag) dann</p> <p> text 1 &lraum</p> <p> sonst</p> <p> text 2 &lraum</p> <p> ende</p> <p> EndeAusf</p> <p>Besch Ausf</p> <p> sei lraum daselbst</p> <p> ausf lichtTest</p> <p> wenn (lFlag) dann</p> <p> text 3 &lraum ! Textblock für Besch’s bei Licht…</p> <p> sonst</p> <p> text 4 &lraum ! …und im Halbdunkel</p> <p> ende</p> <p> EndeAusf</p> <p>Attr halbdunkel</p> <p>! …etc…</p> <p>Raum Grotte (HDRaum)</p> <p>! …etc…</p> <p>Aktion lichtTest</p> <p>Ausf</p> <p> lösche lFlag</p> <p> wenn (lraum halbdunkel) dann</p> <p> ! Licht_in hält halbdunkel für “nicht dunkel”, also</p> <p> ! produzieren wir (TAG-)Dunkelheit, um in ihr nach</p> <p> ! Lichtquellen suchen zu können:</p> <p> attrHin lraum dunkel</p> <p> wenn (Licht_in lraum) setze lFlag </p> <p> attrWeg lraum dunkel</p> <p> ende</p> <p>EndeAusf</p> <p>Aktion AusgangListe</p> <p>Ausf</p> <p> lokale ritgVar r</p> <p> lokale raumVar xxx</p> <p> lokal i nn</p> <p> ! ……snipsnap……</p> <p> schleife r minRitg maxRitg</p> <p> seiRaum xxx aRaum r</p> <p> wenn (xxx > 0) dann</p> <p> ! ……snipsnap……</p> <p> sei lraum xxx</p> <p> wenn (r > NW) dann</p> <p> Text ‘nach [r] ([xxx])/’</p> <p> sonst</p> <p> Text ‘nach [R] ([xxx])/’</p> <p> Ende</p> <p> Ende</p> <p> Ende</p> <p> ! ……snipsnap……</p> <p>EndeAusf</p> <p>block 1 | Raumnamen bei Licht</p> <p>1 ‘Erleuchtete Grotte/’</p> <p>! …etc…</p> <p>block 2 | Raumnamen im Halbdunkel</p> <p>1 ‘Finstere Grotte/’</p> <p>! …etc…</p> <p>block 3 | Raumbeschreibungen bei Licht</p> <p>1 ‘Du bist in einer supertollen, erleuchteten Grotte.’</p> <p>! …etc…</p> <p>block 4 | Raumbeschreibungen bei Halbdunkel</p> <p>1 ‘Du steckst in einer finsteren Grotte.’</p> <p>! …etc…“`</p> </div></td> |
| Geschrieben um 12:55 am 25.02.2003 | Zitat | Editieren | Löschen | |
Mitglied Master Gumby Beiträge: 126 | Ally: in “HDRaum”-Klasse-Räumen wie der fiktiven “Grotte” unten hängt der Name anscheinend nicht davon ab, ob Licht in diesem Raum ist, sondern ob Licht “beim” Spieler ist (in Form einer getragenen Lampe). Wenn die Lichtquelle abgelegt wird, funktioniert es wie gewünscht. Ach, ist ja auch egal. Lass ich das Programm halt erst dem Spieler heimlich seine Beleuchtung klauen, dann die Raumnamen ausgeben, dann die Lichtquellen zurückgeben. Blöder Workaround, naja. |
| Geschrieben um 13:34 am 25.02.2003 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 699 | So wie du das beschreibst scheint mir Licht_in nicht richtig zu funktionieren, weil es immer denkt, der Spieler sei im passenden Raum. Das muss ich mal checken. Da zeigt sich wieder der Nachteil, dass viele Dinge einfach so ‘fest verdrahtet’ sind. (Und nicht genügend geprüft.) |
| Geschrieben um 14:01 am 25.02.2003 | Zitat | Editieren | Löschen | |
Mitglied Master Gumby Beiträge: 126 | Martin:
Das muss ich mal checken. Da zeigt sich wieder der Nachteil, dass viele Dinge einfach so ‘fest verdrahtet’ sind. (Und nicht genügend geprüft.) Mach dir nichts draus, sowas passiert immer, wenn ich ein neues Autorensystem ausprobiere… kann natürlich auch sein, daß ich Licht_in nicht kapiert habe. |
| Geschrieben um 14:53 am 25.02.2003 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 699 | Ally:
Du darfst in Zukunft alle neuen Releases testen… Ally:
Ich glaube immer noch, dass Licht_in einfach falsch ist. Im Moment wird es an einer Stelle verwendet, bei der mir der Fehler nie aufgefallen ist: Wenn der Spieler von einem Raum in den anderen geht, muss mindestens einer der beiden Räume hell sein. Das wird mit Licht_in geprüft. Ist der jetzige Raum hell, in dem der Spieler ist, ist es aber egal, ob die Dunkelheit im zweiten Raum richtig oder falsch ausgewertet wird. Ist es im momentanen Aufenthaltraum dunkel, hat der Spieler keine Lampe bei sich und die Auswertung im Zielraum wird korrekt durchgeführt. Licht_in wird auch im “Raum, der in der Mitte ein Gitter hat” (Handbuch, Kap. 14.3) verwendet. Dort müsste man die Fehlfunktion eher sehen können. |
| Geschrieben um 19:32 am 25.02.2003 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 699 | <td valign="top"><div class="post"><p>Genau, <strong>Licht_in</strong> macht Murks, wie du schon vermutet hattest. Ich habe mal den folgenden Test in <em>Karn</em> eingebaut:</p> <p>“`</p> <p>Bef lumen</p> <p>Name ‘Lumen’</p> <p>Verb ‘lumen’</p> <p>Ausf</p> <p> lokale Raumvar xRaum</p> <p> Schleife xRaum</p> <p> Text ‘[xRaum]:’</p> <p> wenn (Licht_in xRaum) dann</p> <p> Text ‘hell[x]’</p> <p> sonst</p> <p> Text ‘dunkel[x]’</p> <p> Ende</p> <p> Ende</p> <p>EndeAusf</p> <p>“`</p> <p>Dann wird deutlich, dass die Besitztümer des Spielers in jedem Raum mitgezählt werden. Ich habe es (hoffentlich) gefixt:</p> <p><a href="http://www.martin-oehm.de/tag/tam20.zip">http://www.martin-oehm.de/tag/tam20.zip</a></p> </div></td> |
| Geschrieben um 20:36 am 25.02.2003 | Zitat | Editieren | Löschen | |
Mitglied Master Gumby Beiträge: 126 | <td valign="top"><div class="post"><p>Hmm… leider bleibt es diesmal <em>dunkel</em>, wenn der Spieler die Lichtquelle trägt. Erst, wenn sie abgelegt wird, wird es hell. Immerhin gilt das jetzt unabhängig davon, ob der Spieler im “lichtgetesteten” Raum ist oder nicht.</p> <p>Ich habe mal einen ganz “normal” dunklen Raum eingebaut, sowie dein lumen-Verb.</p> <p>“`</p> <p>raum testraum2</p> <p>name ‘Testraum2’</p> <p>besch ‘Bist im zweiten Testraum.’</p> <p>std keinweg</p> <p>w testraum</p> <p>attr dunkel</p> <blockquote> <p>nimm lampe</p> </blockquote> <p>Du hast nun die Lampe.</p> <blockquote> <p>lumen</p> </blockquote> <p>…</p> <p>Testraum2: dunkel</p> <blockquote> <p>lege lampe ab</p> </blockquote> <p>Du hast die Lampe hingelegt.</p> <blockquote> <p>lumen</p> </blockquote> <p>…</p> <p>Testraum2: hell</p> <p>“`</p> <p>Trotzdem kann man auch dann, wenn der Raum angeblich dunkel ist, mit L die Besch abfragen und herumspazieren, ohne die “Du stolperst umher”-Nachricht zu kriegen.</p> <p>In halbdunklen Räumen bekommt man die “halbdunkle” Besch, solange man die Lampe nicht ablegt.</p> </div></td> |
| Geschrieben um 00:10 am 26.02.2003 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 699 | O.K., der Quickfix war wohl etwas vorschnell. Das Problem ist erkannt, aber noch nicht gelöst. Da ist wohl noch etwas Überlegung notwendig. So ein Mist! Naja, immerhin wieder was gelernt: Schnelle Lösungen sind meist nicht von Dauer. Ich hab die alte Version wieder hochgeladen. |
| Geschrieben um 07:15 am 26.02.2003 | Zitat | Editieren | Löschen | |
Mitglied Master Gumby Beiträge: 126 | Danke für die Bemühungen jedenfalls. Wenigstens kann ich so davon ausgehen, daß es nicht (nur) an meinem Code liegt… |