Autor |
Nachricht |
< Nummern wählen funktioniert nicht |
|
Verfasst am:
Mo, 12 Jul 2004 - 21:20
|
|
|
|
Hi!
Ich hab das Tutorial durchgearbeitet und bin grad dabei ein eigenes Adventure zu schreiben. Jedoch habe ich im Moment ein Problemchen:
Ich habe in einem Raum das Objekt Telefon stehen und hab nun dazu einen neuen Befehl erzeugt:
Code: |
Bef wählen
Name 'wählen'
Verb 'wähle'
Syntax dasObj auf demObj
Ausf
Bed (aObj2 = Telefon)
'Auf [dem aObj2] kann ich nichts wählen.'
Bed (aObj2 normal)
'Du wählst [Nummer] auf [dem aObj2] jedoch bleibt [es] Stumm.'
Bed (aObj = Zahl)
'Ich kann auf dem Telefon nur Nummern wählen.'
Bed (Nummer > 999)
'Es muss eine vierstellige Nummer sein.'
Bed (Nummer = Nr_X)
'Aus dem Hörer kommen die Worte:[x]Kein Anschluss unter dieser Nummer.'
Text 'WEITERER TEXT'
EndeAusf
|
"Nr_X" ist eine Integer Variable, der in der Anfangs-Aktion eine zufällige vierstellige Zahl zugewiesen wird.
Wenn ich jetzt jedoch im Spiel eingebe:
"wähle 1234 auf dem telefon"
dann erhalte ich die Antwort:
"Du siehst die Nummer 1234 hier nicht."
Habe ich irgendetwas vergessen? Bräuchte dringend Rat :)
THX schonmal |
|
|
|
|
|
Verfasst am:
Mo, 12 Jul 2004 - 21:36
|
|
|
Experte
Anmeldungsdatum: 25.08.2002
Beiträge: 677
Wohnort: München
|
|
Zahlen, d.h. das Objekt Zahl, sind in der Regel nicht sichtbar, damit man nicht "nimm 2" oder so sagen kann. (Dass dann die etwas blöde Antwort "Ich sehe die Nummer 2 hier nicht" kommt, ist allerdings etwas unschön.)
Also musst du in deine Syntax-Angabe eine Bedingung für die Gültigkeit von aObj2 einbauen:
Code: |
Bef wählen
Name 'wählen'
Verb 'wähle'
Syntax dasObj (allg) auf demObj
|
(allg) bedeutet, dass jedes beliebige Objekt gültig ist, es wird bei Gesprächsthemen benutzt, hier passt es auch. Wenn keine Bedingung angegeben wird, muss das Objekt erreichbar sein, was für das Telefon ja auch zutreffen muss.
Du könntest für das zweite Objekt aber noch einen Kniff einbauen: Definiere ein Attribut wählbar, das nur das Telefon besitzt. Dann erweiterst du die Syntax:
Code: |
Syntax dasObj (allg) auf demObj (wählbar)
|
Dann wird das Telefon automatisch vom Parser erraten, wenn es gerade erreichbar ist:
Code: |
> wähle 112
(auf deinem Mobiltelefon)
Lange Sekunden wartest du, bis am anderen Ende der
Diensthabende sich bequemt ...
|
_________________ Every silver lining has a cloud. |
|
|
|
|
|
Verfasst am:
Mo, 12 Jul 2004 - 21:49
|
|
|
|
Na das funktioniert doch mal alles wunderbar, hatte auch schon das mit dem (allg) ausprobiert, jedoch an falscher Stelle ;)
THX nochmal für die schnelle Antwort!! |
|
|
|
|
|