Geschrieben um 14:44 am 20.02.2004 | Zitat | Editieren | Löschen | |
Mitglied Master Gumby Beiträge: 98 | Ich habe ein Problem, ich möchte das Spiel im Schlafzimmer beginnen und ich soll schon bei Beginn des Spiels im Bett liegen (und nicht sinnlos im Raum herumstehen obwohl ein sehr gemütliches Bett vorhanden ist). Ich habe jede Menge ausprobiert, aber ich stehe mir beim Start des Spiels immer noch die Beine in den Bauch. |
Geschrieben um 19:31 am 20.02.2004 | Zitat | Editieren | Löschen | |
Mitglied Pupil Gumby Beiträge: 13 | Hi, bei deinem Problem kann ich dir helfen, denk ich.
So das wars. Damit kann dein Spieler frisch gestärkt den Spieletag beginnen. :-) |
Geschrieben um 20:37 am 20.02.2004 | Zitat | Editieren | Löschen | |
Mitglied Prof Gumby Beiträge: 634 | Das Liegen birgt einige Tücken. Man kann zwar gehezu mit Objekten benutzen, dann bleibt aber die Variable bSitz undefiniert. Da gehezu auch die Raumbeschreibung ausgibt, muss man bSitz vorher setzen:
Torstens Lösung funktioniert auch, allerdings muss der Spieler bereits im richtigen Raum sein und es wird dann "Du liegst nun in dem Bett" ausgegeben. Daher muss man das Liegen still ausführen, und dann die Raumbeschreibung explizit anfordern:
P.S.: Es kann sein, das das in älteren (sprich uralten) T.A:M.s nicht funktioniert. Dann bitte die neueste T.A.M. verwenden. Danke. |
Geschrieben um 12:14 am 23.02.2004 | Zitat | Editieren | Löschen | |
Mitglied Master Gumby Beiträge: 98 | Klasse, hat mir geholfen Danke. Habe aber die 2 Lösungen kombinieren müssen, da bei Martins Lösung die DOS-Tam vor der Raumbeschreibung die Zahlenfolge "1, 1" ausgibt, sowie angibt daß der Spieler auf dem Bett liegt, was nicht vonnöten ist, da sich schon aus der Beschreibung des Raumes ergibt, daß der Spieler liegt. Meine Lösung im folgenden:
Diese Version bringt in der DOS-Tam sowie in der Windows-Tam das gewünschte Ergebnis. |
Geschrieben um 13:17 am 06.06.2004 | Zitat | Editieren | Löschen | |
Mitglied Pupil Gumby Beiträge: 12 | Bisher hat es zwar gereicht, still und heimlich mitzulesen, aber jetzt muss ich doch auch mal ne Frage stellen. Die Lösungen bedeuten ja, den Spieler AUF das Bett zu legen, aber nicht IN das Bett. Lediglich Martin's Lösung legt den Spieler direkt in das Bett, erzeugt aber bekanntermaßen 1, 1 vor der Ausgabe. Lässt sich das umgehen oder gibt es noch eine andere Möglichkeit, den Spieler zu Beginn in ein Objekt zu legen? Und lässt sich "lege auf" und "lege in" trennen? Wenn man mit Martins Code arbeitet, kann ich nichts mehr auf das Bett legen, sondern es wird automatisch in das Bett gelegt. Ist es möglich, etwas in das Bett zu legen und etwas darauf legen zu können? (ist als Ablage und Behälter definiert) |
Geschrieben um 13:21 am 07.06.2004 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 1062 | Nadine:
Ich habe mir ein Bett gebaut, in das man sich hinein- oder draufLEGEN kann; man kann sich aber auch hinein- oder draufSETZEN. Ebenso können Dinge darauf abgelegt und/oder hineingelegt werden (z.B. das Tablett AUF das Bett und die Giftschlange IN das Bett!).
|
Geschrieben um 17:43 am 08.06.2004 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 1062 | Noch mal zum ursprünglichen Thema: Wenn man den Spieler in einem Bett aufwachen lassen will, ohne dass er erkennen kann, in welchem Raum er sich befindet (und ohne dass er irgendwelche Objekte außer denen im Bett manipulieren kann), könnte man das Bett doch auch als Raum deklarieren. Nach dem Aufstehen wird dieser Raum dann nie wieder betreten, denn nach dem Aufstehen würde man sich wie gehabt in (oder auf) das Objekt "Bett legen. Natürlich müssen mit dem Aufstehen eventuell im Raum "Im_Bett zurückgelassene Objekte in (oder auf) das Objekt "Bett" gelegt werden. Das ist vielleicht nicht ganz elegant, aber die Eleganz könnte doch auch mal dem Effekt Platz machen. Beispiel für einen Startraum Im_Bett:
|
Geschrieben um 13:28 am 11.06.2004 | Zitat | Editieren | Löschen | |
Mitglied Prof Gumby Beiträge: 634 | Zitat:
Also, die DOS-T.A.M. vom 06.03.2003, die auch im aktuellen Paket enthalten ist, erzeugt bei mir kein "1, 1". Bitte aktualisieren! Zitat:
Wenn ich das Spiel oben kompiliere, kann ich nur Dinge auf das Bett legen, das Hineinlegen wird mit "Das Bett ist keine Ablage" quittiert. Wenn ich zusätzlich das Attribut Ablage definiere, kann man Dinge ins Bett legen, aber der Ablage- und der Behälterteil des Betts werden getrennt: "Auf dem Bett siehst du eine alte Zeitung und drei Äpfel. In dem Bett siehst du einen Kompass." In diesem Fall will man wohl eher, dass "lege Ball ins Bett" und "lege Ball aufs Bett" dasselbe bedeuten. Ein einfaches Umleiten von hineinlegen in darauflegen funktioniert nicht, aber mit dem folgenden Code haut's hin:
|
Geschrieben um 16:52 am 15.07.2004 | Zitat | Editieren | Löschen | |
Mitglied Master Gumby Beiträge: 103 | Ich habe auch vor, den Spieler ins Bett zu legen, aber nur, wenn er einen Befehl eingibt. Wie mache ich das denn?
|
Geschrieben um 17:08 am 15.07.2004 | Zitat | Editieren | Löschen | |
Mitglied Prof Gumby Beiträge: 634 | Zitat:
Ja, genau. Vermutlich so. Hast du den Code nicht ausprobiert, bevor du uns im Forum fragst? Ruhig deine Idee mal kompilieren uns sehen, ob's klappt - viel passieren kann ja nicht. (Ein hängengebliebenes DOS-Fenster ist bei mir nicht "viel". ;-) Zitat:
Die Antwort hierzu* haben die Forums-Benutzer auf dieser Seite versteckt. Findest du sie? *) sei bSitz %liegen |
Geschrieben um 18:29 am 15.07.2004 | Zitat | Editieren | Löschen | |
Mitglied Master Gumby Beiträge: 103 | Das heißt, es geht folgendermaßen?
|
Geschrieben um 23:43 am 15.07.2004 | Zitat | Editieren | Löschen | |
Mitglied Prof Gumby Beiträge: 634 | Zitat:
Nochmal: Die beste Möglichkeit, zu überprüfen, ob Code funktioniert, ist ihn tatsächlich zu erzeugen und auszuprobieren. Das geht leicht und bringt auch das ein oder andere Erfolgserlebnis, probier's aus! Wenn dann etwas nicht klappt, kann man den Code immer noch hier posten und die Forenbenutzer um Rat fragen. (Es besser zu wissen als andere ist immer schön, den Code für andere zu schreiben, weniger. :-) Dein Code ist fast korrekt, du musst die Variable bsitz vor der Anweisung gehezu definieren, da in dieser die Raumbeschreibung ausgegeben wird, und dann muss bekannt sein, ob der Spieler auf dem Bett liegt, sitzt oder steht.
Dein zweiter Code funktioniert nur, wenn das Bett zum Zeitpunkt des Zauberns sichtbar ist. Vorsicht! Da dies nicht überprüft wird, wenn du Ausf benutzt - die gesamte Überprüfung wird vom Parser vorgenommen - ist dieser Code recht gefährlich und macht eventuell das Spiel kaputt: Der Spieler kann dann auf dem Bett liegen, obwohl er immer noch im Garten ist, wo das Bett nicht steht. Die Meldung heißt dann er liege im Bett, der Spieler kann aber das Bett nicht sehen. Aus dieser Situation kommt man nicht so leicht wieder heraus, also Obacht. Außerdem schreibt die zewite Möglichkeit etwas wie "Du hast dich ins Bett gelegt.", was bei einem Zauberspruch (oder was auch immer) sicher nicht gewünscht ist. |