Creatures 3 > Tutorials > Agent Nahrung
Home

Creatures 1
Creatures 2

Creatures 3
*
Agenten
* Breed List
* Breeds
* Docking Station
* Ettins
* Forschung
* Grafiken
* Grendels
* Hilfe
* Namen
*
Norns
* Specials
* Sprites

* Tipps & Cheats
* Tutorials
* Utilities
*
Welten

Community
Website

Das zweite Agenten-Tutorial beschäftigt sich mit einem Nahrungsmittel, das im Norn-Terrarium erscheint und mehrfach eingefügt wird. Dafür habe ich einen neuen Agenten, die Kokosnüsse, erstellt. Einige Passagen im Text sind die gleichen wie beim Spielzeug-Tutorial. Sie sind trotzdem noch einmal enthalten, damit dieser Agent unabhängig von der ersten Anleitung nachvollzogen werden kann.

1. Grundlagen
2. Das Skript (COS)
3. Die Sprite-Datei (c16)
4. Die Hilfe-Datei (catalogue)
5. Kompilieren des Agenten

1. Grundlagen

Alle Skripte für Creatures 3 sind in der Programmiersprache CAOS geschrieben, vielen sicherlich schon ein Begriff durch die Cheats, die über die CAOS-Befehlszeile eingegeben werden können. CAOS-Befehle bestehen immer aus vier Buchstaben oder Zeichen, z. B. attr, endm, kill, perm, wait usw., bei Bedarf kann dahinter eine Zahl stehen. Das Skript selbst wird als COS-Datei abgespeichert, wobei COS "Creatures Object Script" bedeutet.

Jedes Skript hat eine Nummer; C3 kann Skriptnummern von 1 - 65.000 verwalten, wobei die ersten 10.000 für Creatures Labs und die Originalskripte reserviert sind. Es ist sinnvoll, sich zu informieren, welche der restlichen Nummern bereits vergeben sind, denn es sollte vermieden werden, Nummern doppelt zu verwenden, da sonst ein Skript das andere überschreibt. Listen der reservierten Skriptnummern können bei Bibble World und beim CDN eingesehen werden, dort kann man sich auch eintragen lassen.

Außer dem Skript benötigen die meisten Agenten eine Bilddatei, die im Format "c16" stehen muss. Solche Dateien nennt man Sprites. Möchte man dem Agenten auch ein Geräusch oder eine Melodie zuordnen, braucht man eine Sound-Datei im Format "wav". Wenn auch ein Hilfetext integriert werden soll, ist eine Catalogue-Datei erforderlich.

2. Das Skript (COS)

Das Skript für die Kokosnüsse ist ziemlich einfach, deshalb ist es auch für Anfänger gut geeignet. Es besteht aus vier Teilen, dem Install-Skript, dem Eat-Skript, dem Drop-Skript und dem Entfern-Skript. Man öffnet bei Agent Works eine neue Datei und gibt dort den Text ein. Das gesamte COS sieht so aus:


inst
reps 7   
new: simp 2 8 25502 "coconut" 1 0 4000
attr 195
bhvr 48
elas 40
fric 50
accg 3
aero 5
mvto rand 1100 980 900
cmrt 0
repe

scrp 2 8 25502 12
lock
sndc "eat1"
stim writ from 79 1
wait 10
kill ownr
endm

scrp 2 8 25502 6
doif wall = down
snde "rok2"
endi
endm

rscr
enum 2 8 25502
kill targ
next
scrx 2 8 25502 12
scrx 2 8 25502 6
Install-Skript
inst - installiert das Objekt, sämtliche Folgebefehle werden sofort ausgeführt
reps 7 - Anzahl der Wiederholungen (hier 7), das Objekt soll sieben Mal eingefügt werden (dieser Befehl macht den Befehl "repe" am Schluss des Skripts erforderlich)
new: simp 2 8 25502 "coconut" 1 0 4000
* new: simp - ein neues einfaches Objekt (simple object) soll hergestellt werden
* 2 8 - 2 = family (gilt für die meisten Objekte), 8 = Genus Obst
* 25502 - eigene (reservierte) Skriptnummer (bitte nicht die gleiche verwenden, siehe Grundlagen!)
* "coconut" - Name der benötigten Sprite-Datei
* 1 0 - ein Bild der Sprite-Datei wird benötigt, es hat die Nummer 0
* 4000 - bestimmt die Tiefe des Objekts, wie weit der Agent im Vordergrund stehen soll (4000 = weit vorn)
attr 195
* attr - attributes (Eigenschaften) des Objekts
* 195 - die Werte für die verschiedenen Eigenschaften werden addiert (1 = tragbar für die Creatures, 2 = tragbar für die Hand, 128 = Schwerkraft, 64 = erkennt Wände als Grenze)
bhvr 48
* bhvr
- behaviour (Verhalten) des Objekts
* 48
- die Werte für die verschiedenen Verhaltensweisen werden addiert (Norns können das Objekt aufheben (32) und essen (16))
elas 40 - elasticity (Elastizität) beim Aufprall in Prozent (0 = bleibt sofort liegen, 100 = springt hoch)
fric 50 - friction (Reibung), je höher der Wert, desto weniger gleitet das Objekt einen Abhang hinunter
accg 3 - acceleration (Beschleunigung), der Schwerkraft angemessen, Wert meistens 3
aero 5 - definiert den Lufwiderstand (Wert in Prozent in Relation zur Geschwindigkeit), der Agent verliert 5 Prozent seiner Geschwindigkeit und fällt etwas langsamer auf den Boden
mvto rand 1100 980 900
* mvto - move to (füge an dieser Stelle ein)
* rand - random (zufällig, willkürlich), wähle einen zufälligen Wert in diesem Bereich
*
1100 980 - die ersten beiden Zahlen geben die Koordinaten an, dieser Agent soll im Norn-Terrarium unten in der Nähe der Eierlege-Maschine eingefügt werden (mit Strg + Shift + X können die Koordinaten aufgerufen werden)
* 900 - diese Zahl bewirkt, dass der Agent wirklich ganz unten landet, ein geringerer Wert fügt den Agenten in einer oberen Etage ein
cmrt 0 - centre current camera on target (richte die Kamera auf das Objekt), der Wert 0 bewirkt die direkte Bewegung des Bildes zu der Stelle, an der der Agent eingefügt wird
repe - repeat (wiederhole) schließt die Wiederholungsschleife ab, die mit "reps" begonnen wurde
Eat-Skript
scrp 2 8 25502 12
* scrp
- script, hier beginnt ein neues Skript, in diesem Fall ein Eat-Skript (definiert das Ergeignis "Essen")
* 2 8 25502 - "family" und "genus" und die spezielle Nummer für diesen Agenten (siehe Install-Skript)
* 12 - dieses Skript ist ein "eat event"
lock - lock (schließe), verhindert, dass das Skript durch andere unterbrochen werden kann
sndc "eat1"
* sndc
- sound file (spiele ein Geräusch ab), ordnet dem Objekt während des Essens ein Geräusch zu
* "eat1" - Name der Sound-Datei, in diesem Fall ein Essgeräusch aus dem Verzeichnis "Sounds"
stim writ from 79 1
* stim writ from
- stimulus (Reiz), sendet einen Stimulus an das Wesen, etwas zu lernen oder zu erfahren
* 79 1 - diese Nummer sagt dem Wesen, dass es sich um Nahrung handelt, dabei werden meistens Fett und Protein produziert
wait 10 - warte eine kleine Weile bis zum nächsten Befehl (etwa eine halbe Sekunde)
kill ownr - kill the owning object (zerstöre das Objekt), die betreffende Kokosnuss verschwindet
endm - Ende des Eat-Event-Skripts
Drop-Skript (nicht unbedingt erforderlich)
scrp 2 8 25502 6
* scrp
- script, hier beginnt ein neues Skript, in diesem Fall ein Drop-Skript (definiert das Ereignis "Herunterfallen")
* 2 8 25502 - "family" und "genus" und die spezielle Nummer für diesen Agenten (siehe Install-Skript)
* 6 - dieses Skript ist ein "drop event"
doif wall = down
* doif
- do if (führe aus, wenn...), führt einen Befehl aus, wenn die Bedingung erfüllt ist (dieser Befehl hat zwingend weitere Befehle zur Folge: "else", "elif" oder "endi")
* wall - wall (Wand), wenn das Objekt mit der Wand kollidiert wird es in eine bestimmte Richtung gelenkt
* down
- down (herab, hinunter) bestimmt die Richtung, in diesem Fall fällt das Objekt nach unten
* wall = down - wenn die Bedingung erfüllt ist, folgt die Ausführung des nächsten Befehls, in diesem Fall ertönt das Geräusch
snde "rok2"
* snde
- sound file (spiele ein Geräusch ab), ordnet dem Ort, an dem sich das Objekt befindet, ein Geräusch zu
* "rok2" - Name der Sound-Datei, in diesem Fall ein Geräusch aus dem Verzeichnis "Sounds"
endi - schließt den doif-Befehl ab
endm - Ende des Drop-Event-Skripts
Entfern-Skript (Removal) *
rscr - kennzeichnet das kommende Skript als Entfern-Skript
enum 2 8 25502 - enumerate (aufzählen), alle Objekte mit dieser Skriptnummer sollen entfernt werden
kill targ - kill (zerstöre) target (Zielgruppe), entfernt das Objekt
next - wählt das nächste Spielzeug mit dieser Nummer aus
scrx 2 8 25502 12 - entfernt das Event-Skript (eat) mit dieser Skriptnummer
scrx 2 8 25502 6 - entfernt das Event-Skript (drop) mit dieser Skriptnummer
* Das Entfernskript ist nicht unbedingt nötig, wenn man Agent Works verwendet, da dieser Befehl beim Kompilieren eingegeben werden kann. Der Vollständigkeit halber habe ich es jedoch mit in die COS-Datei aufgenommen.
3. Die Sprite-Datei (c16)

Alle in Creatures 3 verwendeten Bilder haben das Format "c16", sie sind im Ordner "Images" zu finden. Mit dem SpriteBuilder kann man Bitmaps (bmp) in dieses Format umwandeln.

Die Kokosnuss stammt aus Creatures 2, deshalb muss kein eigenes Bild erstellt werden. Man öffnet mit dem SpriteBuilder die s16-Datei "bery.s16" aus dem C2-Images-Ordner, markiert die Kokosnuss und exportiert sie als Bitmap. Dann öffnet man mit dem SpriteBuilder eine neue, leere Datei und importiert das Bild der Kokosnuss mit File/Import All... Nun kann man die Datei unter dem gewünschten Namen im c16-Format abspeichern: File/Save As... "coconut.c16".

Bilder für Agenten kann man natürlich auch selbst erstellen, dazu benötigt man ein Bildbearbeitungsprogramm. Wie dabei vorzugehen ist, könnt ihr beim Tutorial für ein Spielzeug nachlesen.

4. Die Hilfe-Datei (catalogue)

Für die meisten Objekte in Creatures 3 gibt es einen Hilfetext, der nach Drücken der F1-Taste mit der rechten Maustaste aufgerufen werden kann. Diese Dateien sind im Format "cataologue" abgelegt und können auch mit Agent Works erstellt werden, sind aber nicht unbedingt nötig. Wer seinem Agenten keine Hilfe-Datei mitgeben möchte, kann dieses Kapitel überspringen.

Man öffnet das Fenster für den Agent Help Editor, gibt dort den Namen, die Klassifizierung und den Text ein. Dann speichert man unter dem gewünschten Dateinamen ab - fertig!

5. Kompilieren des Agenten

Der letzte Schritt ist die Zusammenstellung des Agenten, alle bisher erstellen Files müssen zu einer einzigen agent-Datei kompiliert werden. Agent Works bietet auch diese Funktion an. Man öffnet das entsprechende Fenster und trägt die notwendigen Daten ein.

Der Name des Agenten muss der Name des Verzeichnisses sein, in dem sich alle Dateien für diesen Agenten befinden. Die Dateien, die für den Agenten (cos, c16 und catologue) erstellt wurden, müssen eingetragen werden, auf korrekte Schreibweise ist unbedingt zu achten. Die Sound-Datei muss in diesem Fall nicht angegeben werden, da sie sich schon im Sound-Verzeichnis befindet. Weiter unten, unter Creator Info, muss noch einmal der Name der Sprite-Datei eingetippt werden, denn das erste Bild davon wird im Erzeuger angezeigt. In die letzte Zeile gehört das Entfern-Skript mit der bekannten Skript-Klassifizierungsnummer.

Jetzt muss nur noch "Compile Agent" gedrückt werden, und wenn alles korrekt eingegeben wurde, erscheint eine Erfolgsmeldung. Der neue Agent ist fertig, kann ins Verzeichnis "Meine Agenten" kopiert und mit dem Erzeuger ins Spiel eingefügt werden. Sollte sich ein Fehler eingeschlichen haben, kann man anhand der Fehlermeldung und dem creatures_engine_logfile herausfinden, was zu ändern ist.

Copyright © 1999+ Mummy - all rights reserved