Vorlage DokumentationOnUnit
Allgemeines
   Aufruf
   Einleitung
   Installation
   Konfiguration
   Syntax
Einführung
   MetabefehlsAusdruecke
   MetabefehlsSyntax
   RegulaereAusdruecke
   VordefinierteVariablen
Funktionen
   abs()
   after()
   and()
   antoi()
   before()
   ceil()
   change()
   close()
   crop()
   equals()
   exp()
   flatten()
   float()
   floor()
   int()
   isnothing()
   itoan()
   length()
   log()
   log10()
   match()
   not()
   open()
   or()
   random()
   read()
   readline()
   sign()
   status()
   statustext()
   substr()
   system()
   time()
   tolower()
   toupper()
   typeof()
   write()
   writeline()
   xname()
   xor()
Metabefehle
   #after
   #array
   #break
   #call
   #config
   #const
   #debug
   #default
   #dict
   #else
   #every
   #forever
   #func
   #if
   #ifregion
   #ifunit
   #include
   #input
   #message
   #next
   #notrace
   #proc
   #return
   #sort
   #table
   #tag
   #trace
   #var
   #while
Rückruf-Prozeduren
   CalcUnitCapacities
   CreateRegionHeader
   CreateUnitHeader
   EndRegion
   EndUnit
   OnBuilding
   OnExit
   OnInit
   OnRegion
   OnShip
   OnUnit
   OutputLineFilter
Report-Objekte
   building
   grenze
   partei
   preise
   races
   region
   report
   ship
   things
   unit
Anhang
   Danksagungen
   SkriptDebugger
   VorlageFAQ

OnUnit

Beschreibung

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.
ALERT! Eressea-Ausnahme: OnUnit wird bei Vorlage Versionen vor 1.6.2 auch für Verräter ausgeführt!

Beispiel

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
    }
}

Referenzen

#proc, EndUnit, Rückruf-Prozeduren allgemein

Revision 26 Jun 2006

Page design, graphics and contents (c) copyright 1999-2004
by S.Schümann and contributing authors