ActMap
In der ActMap werden die möglichen Aktivitäten eines Objekts beschrieben (z.B. Aktivitäten wie Laufen oder Klettern für Clonks; Öffnen/Schließen von Türen). Die Animationsphasen einer jeden Aktivität werden dabei in der Graphics.png (und/oder Overlay.png) als nebeneinanderliegende Bilder abgelegt und in der ActMap über Bildkoordinaten referenziert. Aktivitäten können im Spiel von der Engine oder per Script gestartet oder beendet werden (siehe SetAction). Einige Aktivitäten, speziell solche von Lebewesen, nutzen dabei Engine-interne Prozeduren, die das Bewegungsverhalten des Objekts während der Ausführung dieser Aktivität steuert.
| Eigenschaft | Datentyp | Beschreibung |
|---|---|---|
| Name | Zeichenkette | Name der Aktivität. Siehe SetAction(). |
| Procedure | Zeichenkette | Interne Standardprozedur. Siehe Prozeduren. |
| Speed | Integer | Die maximale Geschwindigkeit in 1/100 Pixel/Frame die eine interne Standardprozedur das Objekt bewegen kann. Siehe Prozeduren. |
| Accel | Integer | Die Beschleunigung in 1/100 Pixel/Frame² die eine interne Standardprozedur auf das Objekt anwenden kann. Siehe Prozeduren. |
| Decel | Integer | Die Geschwindigkeitsabnahme in 1/100 Pixel/Frame² die die interne Prozedur WALK auf das Objekt anwenden kann. Siehe Prozeduren. |
| Directions | Integer | Anzahl der Animationsrichtungen. Animationreihen vertikal in Graphics.png. |
| FlipDir | Integer | Wenn ungleich 0, gibt dieser Wert die erste Animationsrichtung an, die durch Spiegelung einer davor liegenden Animationsrichtung gezeichnet wird. So wird bei Wert 1 für die Richtung 1 (rechts) die gespiegelte Grafik der Richtung 0 (links) verwendet (siehe Clonks). Bei Wert 7 wird für Richtungen >= 7 die gespiegelte Grafik der Richtung 6 - n verwendet, d.h. bei höheren Richtungsnummern wird wieder rückwärts nach oben gezählt (siehe Banner im Ritterpack). |
| Length | Integer | Anzahl der Animationsphasen dieser Aktivität (horizontal in Graphics.png). |
| Reverse | Integer | 0 oder 1. Bei Wert 1 werden die Animationsphasen rückwärts angezeigt. |
| Delay | Integer | Wartezeit in Frames (Ticks) zwischen zwei Animationsphasen. |
| Attach | Integer | Festhalten an Oberflächen: CNAT-Wert, also z.B. Wert 8 für Boden. Wird nur ausgewertet, wenn Procedure NONE ist. |
| Facet | 6 Integer | Animationsgrafik: Zielrechteck aus Graphics.png auf Objektposition. |
| FacetBase | Integer | 0 oder 1. Bei Wert 1 wird Facet mit der Standardobjektgrafik unterlegt. |
| FacetTopFace | Integer | 0 oder 1. Bei 1 wird das TopFace (siehe DefCore.txt) aus der animierten Facet verwendet. |
| FacetTargetStretch | Boolean | 0 oder 1. Bei 1 wird die Grafik vertikal bis zur oberen Kante des ActionTarget gestretcht. |
| NextAction | Zeichenkette | Nächste Aktivität nach Ablauf der Animationsphasen. |
| NoOtherAction | Integer | 0 oder 1. Bei 1 ist keine Aktivität nach dieser möglich (z.B. Tod, Zerstörung). |
| StartCall | Zeichenfolge (max. 30) | Objektscriptfunktion, die beim Start der Aktivität aufgerufen wird. |
| EndCall | Zeichenfolge (max. 30) | Wird am Ende der Aktivität aufgerufen. |
| PhaseCall | Zeichenfolge (max. 30) | Wird bei jedem Phasenschritt aufgerufen. |
| AbortCall | Zeichenfolge (max. 30) | Wird aufgerufen, wenn die Aktivität vor ihrem Ende durch eine andere ersetzt wird. Parameter sind letzte Animationsphase, letztes ActionTarget und ActionTarget2. |
| InLiquidAction | Zeichenkette | Auszuführende Aktion, wenn das Objekt in Flüssigkeiten eintaucht. |
| Sound | Zeichenfolge (max. 30) | Dauerhaftes Geräusch dieser Aktivität. |
| ObjectDisabled | Integer | 0 oder 1. Eingeschränkte Fähigkeit des Objekts während dieser Aktion. |
| DigFree | Integer | Freigraben während dieser Aktion. Objektrechteck 1, sonst Kreisradius. |
| Animation | Zeichenkette | Bestimmt die auszuführende Animation im Mesh des Objekts. Funktioniert nur wenn ein solches vorhanden ist. Wenn gegeben werden Facet, FacetBase, FacetTopFace und FacetTargetStretch ignoriert. Die Length mal Delay verschiedenen Animationsphasen werden linear auf die Länge der Animation abgebildet. Wenn Delay 0 ist wird nur Length verwendet und die Animation spielt nicht automatisch. Siehe Animationen für weitergehende Dokumentation zu Animationen. |
Beispiel
Die ActMap wird im Script definiert, eine Beispiel-Definition sieht so aus:
local ActMap = {
Fly = {
Prototype = Action,
Name = "Fly",
Procedure = DFA_FLOAT,
Directions = 2,
FlipDir = 1,
Length = 1,
Delay = 10,
X = 0,
Y = 0,
Wdt = 24,
Hgt = 24,
NextAction = "Fly",
StartCall = "FlyingStart",
},
Flutter = {
Prototype = Action,
Name = "Flutter",
Procedure = DFA_FLOAT,
Directions = 2,
FlipDir = 1,
Length = 11,
Delay = 1,
X = 0,
Y = 0,
Wdt = 24,
Hgt = 24,
NextAction = "Flutter",
StartCall = "Fluttering",
},
};


