Befehl – Mappedia

Befehl

Aus Mappedia
Wechseln zu: Navigation, Suche

Ein Befehl gibt in Warcraft III an, was eine Einheit gerade tut. Über Auslöser kann man von jeder Einheit herausfinden, welchen Befehl sie hat oder Einheiten neue Befehle erteilen. Das Zaubern von Fähigkeiten, das Ausbilden von Einheiten oder das schlichte Bewegen, Angreifen, Patroullieren etc. sind Beispiele für Befehle.

Befehle haben keinen eigenen Datentyp. Sie haben 2 Darstellungsformen, die mit Funktionen ineinander umgewandelt werden können, nämlich als Integer (OrderId), und als String (OrderString).

Inhaltsverzeichnis

Befehlsarten

Warcraft III unterscheidet zwischen einem generic order ("allgemeiner Befehl") und einem unit order ("Einheitenbefehl"). Einheitenbefehle stehen für alle Tätigkeiten, bei denen eine Einheit gebaut wird. Solche Befehle haben sowohl Gebäude, die eine Einheit ausbilden, als auch Einheiten, die ein Gebäude bauen. Die OrderId ist in beiden Fällen die Id der gebauten Einheit (siehe Einheiten-Typ).

Beispiele

Befehle finden nur bei Auslösern eine Verwendung.

Befehl erteilen

Die Aktionen dafür findet man in der Aktionen-Kategorie Einheiten. Es wird dort zwischen mehreren Arten unterschieden:

Es gibt noch eine Reihe weiterer Befehle, die vor allem den Umgang mit Gegenständen betreffen. Sie tauchen in der Aktionen-Kategorie Held auf:

Im folgenden Beispiel lassen wir einen Akolyten drei Gebäude errichten und dann in die Mitte der Karte laufen:

Akolyt Action
Ereignisse
Zeit - Elapsed game time is 2.00 seconds
Bedingungen
Aktionen
Einheit - Order Akolyt 0000 <gen> to build a Ziggurat at (Center of Gebiet 000 <gen>)
Wait until ((Current order of Akolyt 0000 <gen>) Gleich (Order(<Leerer String>))), checking every 1.00 seconds
Einheit - Order Akolyt 0000 <gen> to build a Gruft at (Center of Gebiet 001 <gen>)
Wait until ((Current order of Akolyt 0000 <gen>) Gleich (Order(<Leerer String>))), checking every 1.00 seconds
Einheit - Order Akolyt 0000 <gen> to build a Altar der Dunkelheit at (Center of Gebiet 002 <gen>)
Wait until ((Current order of Akolyt 0000 <gen>) Gleich (Order(<Leerer String>))), checking every 1.00 seconds
Einheit - Order Akolyt 0000 <gen> to Bewegen nach (Center of (Playable map area))

Auch bei Befehlen per Trigger müssen alle Voraussetzungen gegeben sein, in unserem Beispiel muss deshalb genug Gold, Holz und eine Verseuchung vorhanden sein.

Hat der Akolyt seine Arbeit verrichtet, so hat er keine Order mehr, was das Wait abfragt.

Befehl abfragen

Dies ist eben schon im Beispiel zu Befehl erteilen geschehen.

Es gibt zwei verschiedene Arten, um Befehle abzufragen. Entweder man fragt den derzeitigen Befehl einer bestimmten Einheit ab oder als Ereignis-Reaktion die "Issued Order", der Befehl, der beim Ereignis "A Unit Erhält einen auf ... zielenden Befehl" gegeben wird. Dazu dient die Order-Comparison.


Strings

In der Order-Comparison muss man oft die Namen der Befehle angeben, folgende gibt es:

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Warcraft-Mapping
Werkzeuge

Notice: Memcache::get() [memcache.get]: Server 85.13.160.44 (tcp 11212) failed with: Connection refused (111) in /www/htdocs/global/live/codecraft/classes/cache/cache.class.php on line 56