Im Script sind mehrere Fehler drin. Wenn du abfragen willst, ob eine Variable einen bestimmten Wert hat, dann kannst du nicht x = 3 or 4 or 5 schreiben. Ausgewertet wird das ja folgendermaßen:
((x = 3) or (4)) or 5
---> setze die Variable x auf 3 und werte aus:
(3 or 4) or 5
---> 3 ist ein wahrer Wert, also gibt 3 or 4 als Ergebnis 3 aus
3 or 5
---> 3 ist immer noch ein wahrer Wert, also gibt 3 or 5 als Ergebnis 3 aus
3
---> 3 ist ein wahrer Wert, also wird if-Bedingung ausgeführt

Wenn du abfragen willst, ob eine Variable einen bestimmten Wert hat, verwendest du ==. Und or dient nicht dazu mehrere Abfragewerte zu bestimmen, sondern or ist eine Operation die zwei Wahrheitswerte aufnimmt und einen Wahrheitswert zurückgibt. Richtig wäre also
x == 3 or x == 4 or x == 5
oder kürzer
x.between?(3, 5)

Das Problem mit der Fehlermeldung liegt aber daran, dass du auf ein Picture zugreifst, welches nicht existiert.

Mal 'ne andere Frage: Schreibst du das Script, um ein wenig Ruby zu lernen, oder willst du damit wirklich produktiv arbeiten? Denn so wie das Script geschrieben ist, solltest du lieber EventCommands nutzen. Das geht einfacher.
Wenn du von Ruby profitieren willst, musst du auch die Techniken von Ruby nutzen. Pictures und Prozedurales Programmieren mit unzähligen ifs und whiles ist typisch für Event-Code. Rubycode ist meist einfacher aufgebaut und nutzt statt unzähligen if-Sätzen lieber Polymorphismen, statt unzähligen Schleifen lieber Iteratoren, statt Pictures und Makervariablen lieber Sprites und Instanzvariablen, statt vorgefertigte Bilder zeichnet man in Ruby solche Bilder lieber selbst usw.
Wie gesagt: Wenn du nur ein wenig rumprobieren willst, will ich dich nicht aufhalten. Wenn du aber wirklich Scripte für dein Spiel schreiben willst, nutze entweder wie gewohnt EventCommands, oder beschäftige dich noch etwas tiefgründiger mit Ruby, um dessen Stärken wirklich nutzen zu können.