Vorlage DokumentationOnRegion
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

OnRegion

Beschreibung

Diese parameterlose Prozedur wird immer zu Beginn einer Regionsauswertung aufgerufen. Das Objekt region ist dabei schon gültig.

Sie eignet sich besonders dazu, regionslokale Informationen auszugeben (z. B. bewachende Parteien, anwesende Fremde etc.), oder die Verteilung von Gütern innerhalb einer Region zu realisieren.

Beispiel

Es soll in jeder Region ausgegeben werden, ob und wer dort bewacht. Dazu dient z. B. folgende kleine Prozedur.

#proc ShowGuardingParties
{
  #dict $Guards
  #var $i

  $i=0
  #while $i<region.einheiten
  {
    #if region.unit[$i].bewacht
    {
      $Guards[region.unit[$i].parteiname]=region.unit[$i].parteiname+' ('+region.unit[$i].partei+')'
    }
    $i=$i+1
  }

  #if $Guards.size
  {
    #message '--------------------'
    #message 'Bewachende Parteien:'
    $i=0
    #while $i<$Guards.size
    {
      #message '- '+$Guards[$Guards($i)]
      $i=$i+1
    }
    #message '--------------------'
  }
  #else
  {
    #if region.terrain!='Ozean'
    {
      #message '------------------------'
      #message 'Die Region is unbewacht.'
      #message '------------------------'
    }
  }
}

Um dies nun aus jeder Region zu nutzen ohne etwas in den Befehlen der Einheiten zu schreiben verwendet man OnRegion:

#proc OnRegion
{
    #call ShowGuardingParties
}

Für eine von drei imaginären Parteien bewachte Region erhält man dann vielleicht folgendes:

; --------------------
; Bewachende Parteien:
; Die Schlümpfe (1a2)
; Tross der Treulosen Tomatenzüchter (ttt)
; Die Steinbutte (240)
; --------------------

Die Zeilen stehen dann im Regions-Teil der Zugvorlage nach den normalen Regionsinformationen.

Referenzen

#proc, EndRegion, Rückruf-Prozeduren allgemein

Revision 04 Jul 2006

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