Entfernskripts
Wer Cobs schreibt, der sollte dem Benutzer immer die Möglichkeit geben,
diese wieder aus seiner Welt zu entfernen, falls sie ihm aus dem einen oder
anderen Grund nicht gefallen. Nichts ist ärgerlicher als ein Objekt, das
man nicht mehr los wird, weil es entweder nicht den Erwartungen entspricht
oder gar Skriptfehler verursacht. Man hat zwar die Möglichkeit, es über
eine Kommandozeile oder im Cheat-Modus zu löschen, aber nicht jeder weiß
wie das geht.
Die oberste Regel bei Entfernskripts heißt: Niemals nur das physische
Objekt löschen, sondern immer auch die dazugehörigen Skripts.
Klingt logisch? Leider gibt es zu viele Cobautoren, die sich nicht die Mühe
machen, im Skriptorium aufzuräumen und immer nur die Objekte selbst
löschen. Man bedenke dabei, dass die Größe des Skriptoriums endlich ist,
und wer noch nie die Meldung bekommen hat, dass keine neuen Objekte mehr
hinzugefügt werden können, weil das Skriptorium voll ist, der soll sich
eben glücklich schätzen. Ich sage das deshalb so deutlich, weil ich
diesbezüglich schon extrem schlechte Erfahrungen gemacht habe. Man glaubt
gar nicht, wie viele "Skriptleichen" sich bei länger laufenden
Welten ansammeln. Und je mehr Skripts im Skriptorium, desto langsamer wird
auch das Programm.
Bei Creatures 2 und Creatures 3 ist das Entfernskript in der Cob- bzw.
Agentdatei selbst enthalten, bei Creatures 1 ist es leider noch nicht so
komfortabel. Dort wird das Entfernskript in einer externen Datei kompiliert,
die auf .rcb endet und vom Objekteinfüger als solche erkannt wird. Damit
die Entfernskripts nicht als separate Dateien in der Objektliste auftauchen,
sollte man ihnen immer denselben Namen geben wie dem Objekt selbst. Dadurch
wird im Objekteinfüger der Knopf "Objekt entfernen" aktiviert.
Cobs, für die keine .rcb-Datei gefunden wird, sind in der Objektliste mit
einem * markiert.
Entfernskripts sind sehr einfach, weil sie nur wenige Befehle enthalten,
die man sich merken muss. Und das beste daran: sie sind für Creatures 1, 2
und 3 identisch. Um die Kaffeekanne aus unserem Cobtutorial loszuwerden,
müssen wir eine rcb-Datei mit folgendem Inhalt erstellen:
inst
enum 2
7 1
kill targ
next
scrx 2
7 1
0
scrx 2
7 1
1
scrx 2
7 1
4
scrx 2
7 1
5
scrx 2
7 1
17
endm
inst
Auch das Entfernskript beginnt mit "inst" wie das
Installationsskript.
enum 2 7 1
Dieser Befehl sucht in der Welt nach Objekten mit dem Klassifizierer 2 7
1, nämlich unsere Kaffeekanne.
kill targ
Löscht ein Objekt, das den definierten Kriterien entspricht.
next
Sucht nach dem nächsten Objekt und löscht auch dieses.
scrx 2
7 1
0
scrx 2
7 1
1
scrx 2
7 1
4
scrx 2
7 1
5
scrx 2
7 1
17
Der Befehl "scrx" löscht ein Skript aus dem Skriptorium. Für
jedes Skript, das zu einem Objekt gehört, wird eine separate Befehlszeile
benötigt.
endm
Auch das Entfernskript wird mit dem "end macro"-Befehl
abgeschlossen.
zuletzt geändert: 28.03.2005
|