Galaxy

Aus Starcraft II Map-Editor Wiki

Wechseln zu: Navigation, Suche

Galaxy ist die Scriptsprache zu Starcraft II. Die Sprache ist nicht objektorientiert und ihre Syntax orientiert sich an der von C. Ein weiteres Merkmal der Sprache ist das Vorhandensein eines automatischen Garbage-Collectors.

Inhaltsverzeichnis

Datentypen

Standard Datentypen

bool
Ein Wahrheitswert
int
Eine ganze Zahl.
fixed
Wahrscheinlich eine Zahl mit einer festen Zahl an Nachkommastellen oder eine Fließkommazahl
string
Zeichenketten
text
Wahrscheinlich lange Zeichenketten

spezielle Datentypen

abilcmd
actor
actorscope
aifilter
animtarget
bank
byte
camerainfo
char
color
doodad
handle
marker
order
Ein Befehl
playergroup
point
Ein Punkt
region
Ein Gebiet
revealer
sound
soundlink
timer
transmissionsource
trigger
Ein Auslöser
unit
Eine Einheit
unitfilter
unitgroup
Eine Einheitengruppe
unitref
wave
waveinfo
wavetarget

Sprachelemente

Kommentare

Kommentare starten mit zwei Schrägstrichen und enden am Ende der Zeile.

Operatoren

arithmetische Operatoren

+
Addition
-
Subtraktion
*
Multiplikation
/
Division. Wenn linkes und rechter Wert vom Typ int sind, wird eine ganzzahlige Division verwendet.
 %
Modulo (der Rest einer ganzzahligen Division)

logische Operatoren

 !
Negation ("nicht")
&&
Konjunktion ("und")
||
Disjunktion ("oder")

Bit Operatoren

&
Bitweises Und
|
Bitweises Oder


Funktionen

Syntax:

<Rückgabewert> <Funktionsname> (<ParameterTyp> <Parametername>, <ParameterTyp> <Parametername>, ...) { <Funktionskörper> }

Beispiel:

fixed AIRangeThor (int player, unit aiUnit) { return AIAbilityFixed(player, c_AB_250mmStrikeCannons, c_fieldRange0) + 1; }

Mit Hilfe von return wird die Funktion verlassen und das Ergebnis der Funktion festgelegt.

lokale Variablen

Syntax:

<Typname> <Variablenname>;

oder:

<Typname> <Variablenname> = <Wert>;

Lokale Variablen können nur am Funktionsanfang deklariert werden.

Beispiele:

unit obs; string msg = "Reached end of script for player " + IntToString(player) + "-" + PlayerRace(player) + " : More AI code coming soon.";

Wertzuweisung

Syntax:

<Variablenname> = <neuer Wert>;

Beispiel:

x = x * 2.0;

Funktionsaufruf

Syntax:

<Funktionsname> ( <Parameterliste> );

Beispiel:

ProtossInit(player);

Globale Variablen

Globale Variablen werden an einer beliebigen Position außerhalb von anderen Funktionen deklariert.

Syntax:

<Typname> <Variablenname>;

Beispiel:

trigger gt_MeleeInitialization;

Konstanten

Syntax:

const <Typname> <Konstantenname> = <Wert>;

Beispiel:

const int c_maxPlayers = 32;

include

Syntax:

include "<Pfad>"

Der Pfad wird ohne Endung angegeben. Der Befehl wird in Gegensatz zu anderen Befehlen nicht durch ein Semikolon beendet.

Beispiel:

include "TriggerLibs/BuildAI"

Kontrollfluss

If

Syntax:

if (<Bedingung>) { <Anweisungen> } else { <Anweisungen> }

Beispiel:

if (mainSubState == e_mainSubState_GndA) { TerranMidGndA(player); } else if (mainSubState == e_mainSubState_GndB) { TerranMidGndB(player); } else if (mainSubState == e_mainSubState_AirA) { TerranMidAirA(player); } else if (mainSubState == e_mainSubState_AirB) { TerranMidAirB(player); } else { ErrorMeleeScript(player, "Invalid Mid mainSubState"); }

while

Syntax:

while (<Bedingung>) { <Aktionen> }

Beispiel:

if (onGround > 0) { cliffLevel = CliffLevel(here); // Only switch if there is a ground target on the same or lower cliff level so that // we are guaranteed to be able to navigate to it. // while (onGround > 0) { there = UnitGetPosition(UnitGroupUnit(scanGroup, onGround)); testCliffLevel = CliffLevel(there); if (cliffLevel >= testCliffLevel) { return there; } onGround = onGround - 1; } }


break

Mit dem Befehl break; kann man aus einer Schleife springen.

continue

Mit dem Befehl continue; kann man den Rest des aktuellen Schleifendurchlaufs überspringen und direkt mit dem nächsten Durchlauf fortfahren.

siehe auch

Autoren: Peq
Persönliche Werkzeuge