Mal ein paar Codefragmente zur Parameterübergabe:
IF [PARAM] INLIST [spielliste]
PARAMausgeben und irgendwastun
Spielliste enthält "StreetSoccer Tichu Tongiaki"
Eingabe im Hauptchat, der obigen Code aufruft:
@spiel Tichu blablupp
(man beachte die Leerzeichen)
Variable wird gesetzt und ausgegeben, obwohl der übergebene String so nicht in der Liste enthalten ist:
Puppet: PARAM = # Tichu blablupp#
(hier benutze ich die ## um mir auch die Leerzeichen genau anzeigen zu lassen
-------------------------------
1. INLIST scheint die Liste nur auf ein beliebiges im String übergebenes Wort zu überprüfen (und das muss nicht das erste Wort sein, wie weitere Versuche gezeigt haben)
Falls das so gewollt ist, dann ist die Dokumentation hoffnungslos falsch:
<string> INLIST <liste>
Liefert TRUE, falls <string> ein Element von <liste> ist, ansonsten FALSE.
richtiger wäre vermutlich:
<liste1> INLIST <liste2>
Liefert TRUE, falls irgendein Element aus <liste1> Element von <liste2> ist, ansonsten FALSE.
2. Der bei @spiel übergebene Parameter enthält alle Leerzeichen zu Beginn und in der Mitte des Strings, aber nicht die am Ende des Strings - komischkomisch
Das führt dazu, dass FIRSTOF [PARAM] leer ist, falls der Parameter mit einigen Leerzeichen beginnt. Er ist sogar tatsächlich leer, enthält also kein Leerzeichen!
Allerdings ist LASTOF [PARAM] auch dann nicht leer (mit oder ohne Leerzeichen), wenn der Paramter (ursprünglich mal) mit Leerzeichen geendet hat.
Kann man das irgendwie verstehen, oder muss man die Magie der Puppetsprache immer erst in allen Einzelheiten ausprobieren?

seq
War das jetzt halbwegs verständlich? Interessiert das überhaupt wen?