Diese optionale parameterlose Prozedur ist für die allgemeine Automatisierung von Einheiten gedacht, also ohne dass man Metabefehle für die
Einheit in den Zug schreiben muss. Das Objekt unit ist dabei schon gültig.
OnUnit wird grundsätzlich für eigene Einheiten und nicht für fremde Einheiten ausgeführt.
Eressea-Ausnahme: OnUnit wird bei Vorlage Versionen vor 1.6.2 auch für Verräter ausgeführt!
Will man in OnUnit Ausgaben oder Befehle für Einheiten erzeugen, so sollte man, damit die die sonst keine Metabefehle haben nicht ihre normalen Befehle verlieren folgende Passage verwenden:
#proc OnUnit
{
#var $HatBefehle
$HatBefehle=0
; Hier werden Ausgaben und Befehle erzeugt, aber immer wenn eine
; Einheit hier einen langen Befehl bekommen hat, wird $HatBefehle
; auf einen Wert ungleich 0 gesetzt:
; ...
; Hier nun für die, die noch keinen langen Befehl haben die
; Originalbefehle übernehmen:
#if !$HatBefehle&&!unit.hasmetas
{
#default
}
}
#proc, EndUnit, Rückruf-Prozeduren allgemein Revision 26 Jun 2006
|