Vorlage Dokumentation#message
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

#message

Einfügen von Kommentaren in die Zugvorlage

Syntax

#message [Text]

Beschreibung

Dieser Befehl gibt das Ergebnis der Auswertung des Ausdrucks Text als Kommentar in die Zugvorlage aus. Soll hierbei ein komplexerer Text erzeugt werden, der auch Zahlen enthält, so ist die Typisierung und die Priorität der Operatoren zu beachten.

Wird der Parameter weggelassen, so wird einfach eine Leerzeile ohne Semikolon erzeugt.

Beispiel

Einfache Textausgabe:

#message 'Hello World!'

erzeugt in der Zugvorlage (incl. des Semikolons):

; Hello World!

Text in Kombination mit Zahlen:

#message 'Wir haben '+unit.anzahl+' Leute.'

erzeugt (wenn die Einheit 13 Personen hat):

; Wir haben 13 Leute.

Soll hingegen eine Zahl vorne stehen, muß man anders vorgehen:

#message ''+unit.anzahl+' Leute haben wir.'

Das ''+ ist nötig, weil Typen immer so gewandelt werden, das der rechte Operand zum Typ des linken konvertiert und dann die Operation im Typ des linken Operanden ausgeführt werden. Ohne den Leerstring wäre die Addition nach der Anzahl eine Addition von einem String auf eine Zahl, und das ist nicht definiert. Durch den Leerstring zu Beginn wird zunächst die Zahl zu dem Leerstring addiert und somit in einen String gewandelt und angefügt, und danach der String hinter der Anzahl zu dem bisherigen Ergebnis (das ja ein String ist) hinzu addiert, was ebenfalls erlaubt ist.

Das gleiche Problem ergibt sich bei einer Berechnung:

#message 'Wir haben Holz und Steine mit '+(unit.holz*5+unit.stein*60)+' GE.'

Hier sind die Klammern nötig, weil die Addition in der Mitte sonst ja erst nach der Addition links ausgeführt würde. Das Ergebnis wäre dann das sowohl das umgewandelte Ergebnis von 'unit.holz*5' als auch das von 'unit.stein*60' einzeln zu dem String hinzugefügt würden, satt die Zahlen erst zu addieren und dann dem String hinzuzufügen.

Referenzen

Metabefehls-Ausdrücke

Revision 23 Jan 2004

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