Random Map Script Helpsheet V 1.0
Last Update: --.--.--
Kapitel 1
Allgemeines zum RMS Scripten
RMS Scripting ähnelt nun mehr einer Programmiersprache als
bei AoE2 deshalb ist es praktisch einen geigneten Editor zu haben
der den Syntax in farben darstellt. Da es noch keinen RMS Editor
gibt habe ich mir Editor PROTON(Freeware) von Meybohm.de
runtergeladen. Wenn man dort die RMS farbig darstellen will muss
man die RMS mti PROTON öffnen und dann im Menüpunkt
Syntaxhighlighting C auswählen(Diese Programmiersprache ähnelt
RMS am meisten) Dadurch wird der RMS Code übersichtlicher.
Das Script ist case-sensitive. Dies bedeutet das das Script zwischen
Groß- und Kleinschreibung unterscheidet.
1,1 Kommentare
Kommentare sind helfer um die RMS übersichtlicher zu halten.
AoM überspringt die Kommentare beim generieren der Karte.
Es gibt 2 Verschiedene arten von Kommentarenman man kann //
oder /* */ verwenden.
Bei // wird die nachfolgende Zeile als Kommentar angesehen
Bei /* */ wird der Text der zwischen /* und */
steht als Kommentar angesehen. Aber Achtung!
wenn sie das Kommentar nicht mit */ abschließen
wird AoM alle nachfolgenden Zeilen als Kommentar ansehen!
1,2 Variablen
Alle Variablen müssen zuerst mit int oder float
gesetzt werden bevor sie benutzt oder neu
definiert werden.
int Variablen sind Ganzzählige Nummern (z.B.: 1 2
3 4 5 ... aber auch -1 -2 -3 -4 ... usw.)
float sind Kommazahlen (z.B.: 1,3215 2,4 3,69 30,1 ...
aber auch -1,9 -7,3161941113 ... usw.)
Um Variablen zu setzen muss man folgenden Syntax verwenden:
int/float Variablenname = Zahl;
also z.B.
int pigsPPl = 5;
um später einen anderen wert zu setzen nurnoch:
pigsPPl = 3;
1,3 Script Ordnung
Das Script muss richtig geordnet sein! Du musst z.B. erst land
generieren bevor du Objekte auf das land setzt. Du kannst nur
Variablen benutzten die du schon gesetzt hast. Stellt euch das
wie ein Haus vor. Ohne Grundstück kann man keine Mauern Setzen
ohne Mauern kann man keine Tapeten tapezieren
usw.
1,4 Gitter
Die Karte ist in ein X, Z Netz aufgeteilt, Y
ist die Höhe.
Wenn man Fraktionen benutzt ist:
0, 0 am Grund der Karte
0.5, 0.5 in der Mitte der Karte
1, 1 Kopf der Karte
Das Netz benutzt 2m² große Kacheln(tiles). Eine Karte
für 4 Spieler ist vermutlich 400 m an den Seiten lang. Kleine
Gebäude belegen 2m² und kleine Einheiten belegen 1m²
an platz.
1,5 Einheitennamen
Einheiten haben im Script nicht die gleichen namen wie Im Spiel!
Ein Town Center heisst z. B. "Settlement Level 1."
und der name eines ägyptischen Dorfbewohners ist beispielsweise
"Villager Egyptian". Eine Liste aller Objektnamen
findet ihr ab der Zeile 40 in der "aom ai script help file.rtf"
in dem Docs Verzeichniss eures AoM Ordners.
1,6 XML Datei
Die RMS Datei mit der Endung *.xs braucht eine gleichnamige
Datei mit der Endung *.xml. Diese XML Datei wird dann in
der Liste der Karten angezeigt. XML Daten kann man beispielsweise
mit dem Editor von Windows schreiben. Jedoch empfehle ich hier
auch wieder Proton. Man kann nämlich unter Syntaxhighlighting
XML auswählen wodurch der XML Code übersichtlicher angezeigt
wird.
Syntax der XML Datei:
<?xml version = "1.0" encoding = "UTF-8"?>
<mapinfo details = "Mapname: Beschreibung der Karte"
imagepath = "***" displayNameID="Name
der angezeigt werden soll" cannotReplace=""/>
*** = Pfad zum Bild beispielsweise "ui\ui map goatunheim
256x256" Bild muss sich aber im ui ordner befinden. Praktisch
ist für das bild auch der "Random Map Icon Generator"
den ihr auf AoMFiles.org
runterladen könnt.
Das sieht dann besipielsweise so aus:
<?xml version = "1.0" encoding = "UTF-8"?>
<mapinfo details = "Goatunheim: Fight your way through
evil Goats to reach the enemy player" imagepath = "ui\ui
map goatunheim 256x256" displayNameID="Goatunheim"
cannotReplace=""/>
1,7 Hilfe
Hier bekommt ihr Hilfe:
- Schaut euch die offiziellen RMS Scripts von ES
an!
- Benutzt den XS Debuger. Um Ihn anzuschalten müsst ihr
in der user.cfg in eurem startup Ordnerim AoM Verzeichnis
+debugRandomMaps einfügen. Falls diese Datei noch
nicht existiert müsst ihr diese Datei neu anlegen. Der
XS Debugger wird sich immer beim generieren der RMS melden
wenn fehler auftauchen.
- Benutzt die Suchen
Funktion im Forum
- Eröffnet einen Thread im Mapdesignforum(aber
erst nachdem ihr Punkt 3 erledigt habt)
- Schreibt mir ne Mail
oder Piepst mich in ICQ an(aber erst nachdem ihr alle 4 Punkte
erledigt habt )
Kapitel 2
RMS Befehle
Ich beschreibe hier nur kurz die wichtigsten Befehle! Um mehr
informationen über die Befehle zu erhalten müsst ihr
euch die "aom random map help file.rtf" im Docs Ordner
durchlesen.
1,1 Globale Befehle
rmEchoInfo( string echoString, int level );
Benutzen um Informationen über die RMS beim Debuggen auszusortieren(Der
spieler sieht dies nicht)
Beispiel:
rmEchoInfo("Large map");
______________________________
rmRandFloat(float min, float max);
Zufallszahlengenerator (als Float!)
Beispiel:
rmRandFloat(0, 1);
Gibt eine Zahl zwischen 0 und 1 an.(z.B.: 0,124468 0,56 0,787
0,99)
______________________________
rmRandInt(int min, int max):
Zufallszahlengenerator (als Int!)
Beispiel:
rmRandInt(0, 10)
Gibt eine Zahl zwischen 0 und 10 an.(0 1 2 3 4 5 6 7 8 9 10)
______________________________
rmSetMapSize( int x, int z );
Setzt die Kartengröße
Beispiel:
rmSetMapSize( 60000, 60000);
Setzt die Kartengröße zu 60000 x 60000 tiles(Kacheln)
______________________________
rmSetSeaType(string name);
Setzt den Wassertyp. MUSS vor dem setzen des Wassers auf
der Map definiert werden.
Beispiel:
rmSetSeaType("mediterranean sea");
Setzt den Wassertyp als Mittelmeer
______________________________
rmSetLightingSet(string name);
Setzt die lichtquelle in der RMS. Dieser Befehl muss nach der
Formatierung des Terrains gesetzt werden.
Beispiel:
rmSetLightingSet("alfheim");
Setzt das Lichtschema von Alfheim. Btw. Ihr könnt auch selber
Lichtschemen setzen. Tools dazu findet ihr auf Nocheineaoe
______________________________
rmSetStatusText(status, progress);
Beschreibung von ES:
Sets the friendly cool loading screen text.
Das wichtige is das progress bei 0 anfängt und bei 1 aufhört!
Btw. Das mit dem Text habe ich nicht geschafft würde mich
freuen wenn mir das mal jemand erklären würde 
Beispiel:
rmSetStatusText("", 0.40);
Der Ladebalken geht auf 40%
1,2 Spieler Befehle
rmGetPlayerCiv(int playerID)
Empfängt Spieler Civilisation (Civ = Hauptgott)
______________________________
rmGetPlayerCulture(int playerID)
Empfängt Spieler Culture = Wikinger, Griechen oder Ägypter
______________________________
rmGetNumberPlayersOnTeam(int teamID)
Empfängt die nummer der Spieler im Team
______________________________
rmSetTeamSpacingModifier(float modifier)
Setzt Entfernung zum Teammate beste Ergebnisse mit 0.3-0.5
______________________________
rmPlacePlayersCircular(float minFraction, float maxFraction,
float angleVariation)
Setzt Spieler in einen Kreis
______________________________
rmPlacePlayersSquare(float dist, float distVariation, float spacingVariationfloat)
Setzt Spieler in ein Viereck
______________________________
rmPlacePlayersLine(float x1, float z1, float x2, float z2, float
distVariation, float spacingVariation)
Setzt Spieler auf Linie
______________________________
rmPlacePlayer(int playerID, float xFraction, float zFraction);
Setzt Spieler an eine Stelle.
Dies kann man alles damit anstellen:
Erstes Team in die mitte, den rest drarum:
rmSetPlacementTeam(0);
rmSetPlayerPlacementArea(0.3, 0.3, 0.7, 0.7);
rmPlacePlayersCircular(0.4,0.3,rmDegreesToRadians(5.0));
rmSetPlacementTeam(-1);
rmSetPlayerPlacementArea(0, 0, 1, 1);
rmPlacePlayersCircular(0.4,0.3,rmDegreesToRadians(5.0));
Setze Spieler 1 in die untere Ecke, Spieler 3 in die rechte
ecke und die restlichen Spieler in
eine linie von der linken ecke zur oberen Ecke.
rmPlacePlayer(1, 0.2, 0.2);
rmPlacePlayer(2, 0.8, 0.2);
rmPlacePlayersLine(0.2, 0.8, 0.8, 0.8, 20, 10);
______________________________
rmSetPlayerArea(int playerID, int areaID);
Setzt das "offizielle" Gebiet eines spielers
______________________________
rmPlayerLocXFraction(int playerID);
Empfängt die X Position des Spielers
______________________________
rmPlayerLocZFraction(int playerID);
Empfängt die Z Position des Spielers
1,3 Zonen(Area)
Zonen sind Regionen auf einer Karte. Sie sind öffters ungewöhnlich
geformt, aber sie können auch recheckig geformt sein. Manche
Gebiete werden benutzt um bestimmte Terrainarten drauf zu setzen.
Manche werden aber auch einfach nur als Abgrenzung genutzt. Spezielle
arten sind Spielerzonen, welche einem bestimmten Spieler "gehören",
oder Teamzonen die einem Team "gehören".
rmCreateArea(string name, int parentAreaID);
Erstellt eine Zone.
______________________________
rmSetAreaSize(float minFraction, float maxFraction);
Setzt die größe einer Zone
______________________________
rmSetAreaLocation(int areaID, float xFraction, float zFraction);
Setzt die Position einer Zone. Wird z. B. benötigt um einen
See in die mitte der Karte(Du erinnerst dich 0.5,0.5 ) zu setzen
______________________________
rmBuildArea(int areaID);
Baut die bestimmte Zone auf.
______________________________
rmBuildAllAreas();
Baut alle Zonen die noch nich aufgebaut wurden auf.
______________________________
rmSetAreaTerrainType(int areaID, string terrainTypeName):;
Setzt das Terrain einer Zone.
______________________________
rmSetAreaForestType(int areaID, string forestName);
Setzt den Waldtyp einer Zone
______________________________
rmSetAreaWaterType(int areaID, string waterName);
Setzt den Wassertyp einer Zone
______________________________
rmSetAreaCliffType(int areaID, string cliffName);
Setzt den Klippentyp einer Zone
______________________________
rmSetAreaCliffHeight(int areaID, float val, float variance, float
ramp);
Setzt die Höhe der Klippen einer Zone
______________________________
rmAddAreaTerrainLayer(int areaID, string terrain, float minDist,
float maxDist);
Füght eine Terrain Ebene einer Zone hinzu.
Terrain Ebenen(Layer) erlauben dir einen Ramen von einer oder
mehreren Texturen um eine Zone zu setzen. Zum Besipiel: Du kannst
du grassDirt50 und grassDirt75 um eine Zone mit grass legen. Man
kann mehrere Ebenen für eine Zone bestimmen solange die minDistance
von einem Startet und maxDistance von einem anderen endet. Weil
sich dann verschiedene Ebenen überlappen können. Hier
ist ein Beispiel.
rmSetAreaTerrainType(bonusIslandID, "GrassA");
rmAddAreaTerrainLayer(bonusIslandID, "SnowGrass75",
13, 20);
rmAddAreaTerrainLayer(bonusIslandID, "SnowGrass50",
6, 13);
rmAddAreaTerrainLayer(bonusIslandID, "SnowGrass25",
0, 6);
______________________________
rmAreaID(string name)
Empfängt die ID für einen vergebenen Zonennamen
1,4 Verbindungen(Connections)
Verbindungen sind spezielle arten von Zonen die benutzt werden
um Zonen zu verbinden. Sie werden z.B für Landbrücken
und Bergpassagen benutzt. Verbindungen müssen nach den Zonen
die sie Verbinden gesetzt werden.
rmCreateConnection(string name);
Erstellt eine Verbindung
______________________________
rmSetConnectionType(int connectionID, int connectionType, bool
connectAll, float connectPercentage)
Setzt den Typ der Verbindung
Dieser befehl bestimmt welche Spieler verbunden werden. Gültige
Werte für connectionType sind:
- cConnectAreas: Dies ist der Standardwert der verwendet
wird wenn man nicht rmSetConnectionType aufruft.
- cConnectAllies: Verbindet alle Verbündeten Spieler
- cConnectEnemies: Verbindet den Spiler mit den Gegnern.
Setz den connectAll parameter zu true(wahr) wenn du willst das
alle Zonen verbunden werden. Setze es false(falsch) damit die
Zonen aufeinander folgend Verbunden werden. Die erste Zone wird
mit der zweiten Verbunden, diese wird mit der 3. Verbunden usw.
Du kannst den connectPercentage Parameter verwenden um
die Nummer der Verbindungen zu reduzieren. Besipsielsweise, Wenn
du es zu 0.5 setzt werden die hälfte der Verbindungen Generiert.
Die, die generiert werden, werden zufällig ausgewählt.
______________________________
rmSetConnectionWidth(int connectionID, float width, float variance):
Setzt die Breite einer Verbindung
______________________________
rmAddConnectionTerrainReplacement(int connectionID, string terrainTypeName,
string newTypeName);
Fügt eine Terrain Austausch Regel hinzu.
______________________________
rmSetConnectionTerrainCost(int connectionID, string terrainTypeName,
float cost);
Setzt die Kosten für eine Verbindung.
Wenn du willst das die Verbindung entfernt von einem Terrain verläuft
sollte dieser wert gesetzt werden. Wenn du z.B. willst das eine
Straße nicht durch Wasser geht muss der wert größer
oder gleich 1 sein, du kannst es auch zu 1 setzen das bedeutet
das das Terrain unpassierbar ist.
______________________________
rmSetConnectionBaseTerrainCost(int connectionID, float cost);
Setzt das Terrain für die Verbindung
______________________________
rmBuildConnection(int connectionID)
Baut die Verbindung auf
1,5 Objekte
Objekte sind Gebäude, Einheiten und Resourcen. Objekte können
sogar Sammlungen von mehreren Einheiten sein. Objekte werden immer
als Bündel plaziert.
rmCreateObjectDef(string name);
Definiert eine neue Einheit
______________________________
rmSetObjectDefMinDistance(int defID, float dist);
Setzt die Mindest Distanz
______________________________
rmSetObjectDefMaxDistance(int defID, float dist);
Setzt die Maximale Distanz
______________________________
rmAddObjectDefItem(int defID, string unitName, int count, float
clusterDistance)
Fügt eine Einheit zu der Objekt Definition
Objekte werden im Random Map Script definiert und können
beliebig benannt werden. Einehiten, im gegensatz, benutzen besteimmte
namen vom Spiel, wie Villager Greek, Palm oder Settelment Level
1(Der name für Town Center). Gruppen Distanz ist nur das
Maximum das das Objekt von der Lokalisierung entfernt gesetzt
werden kann, und es wird nach der min und max Distanz angewendet.
(Beispielsweise: Die maxDistance ist 10 und die Gruppendistanz(clusterDistance)
ist 5. In diesen fall kann die Einheit 15 m von der einheit entfernt
sein. Wenn man eine einzige Einheit setzt kann die Gruppendistanz(clusterDistance)
0 sein. Wenn mehrere einheiten an das Objekt hinzugefügt
sind, sollten sie eine Gruppendistanz(clusterDistance) > als
0 benuten oder sie werden alle aufeinander gesetzt *g*. Hier sind
2 Beispiele
Beispiel 1
int farGoatsID=rmCreateObjectDef("far goats");
rmAddObjectDefItem(farGoatsID, "goat", 1, 0.0);
Beispiel 2
int rock2ID=rmCreateObjectDef("rock2");
rmAddObjectDefItem(rock2ID, "rock limestone small",
1, 1.0);
rmAddObjectDefItem(rock2ID, "rock limestone sprite",
3, 3.0);
______________________________
rmPlaceObjectDefAtLoc(int defID, int playerID, float xFraction,
float zFraction, long placeCount);
Platziert Objekt Definition auf einer bestimmten Lokalization
für einen bestimmten Spieler Solch ein platzieren ist sehr
nützlich wenn man nicht will das die Einheit für jeden
Spieler erstellt wird. z.B.: wenn man verschiedene Einheiten für
verschiedene civs. will. Du kannst playerID zu 0 setzen
um sicher zu seien das die Einheit niemanden gehört. Hier
ist eine kleine
Abkürzung:
for(i=0; <cNumberPlayers)
{
if(rmGetPlayerCulture(i) == cCultureGreek)
rmPlaceObjectDefAtLoc(transportGreekID, i, rmPlayerLocXFraction(i),
rmPlayerLocZFraction(i));
else if(rmGetPlayerCulture(i) == cCultureNorse)
rmPlaceObjectDefAtLoc(transportNorseID, i, rmPlayerLocXFraction(i),
rmPlayerLocZFraction(i));
else if(rmGetPlayerCulture(i) == cCultureEgyptian)
rmPlaceObjectDefAtLoc(transportEgyptianID, i, rmPlayerLocXFraction(i),
rmPlayerLocZFraction(i));
}
______________________________
rmPlaceObjectDefPerPlayer(int defID, bool playerOwned, long placeCount);
Plaziert Objekt Definition pro Spieler
Dieser Befehl ist meistens der schnellste weg um Objekte zu plazieren.
Jedoch ist es nicht
geeignet wenn man nicht das Objekt für jeden Spieler erstellen
will. Gib als playerOwned false ein wenn du willst das das objekt
für den Gaia spieler erzeugt wird.
______________________________
rmPlaceObjectDefInArea(int defID, int playerID, int areaID, long
placeCount);
Plaziert Objekt definition für einen Spieler in einer bestimmten
Zone.
______________________________
rmGetNumberUnitsPlaced(int objectDefID)
rmGetUnitPlaced(int objectDefID, int index)
rmGetUnitPlacedOfPlayer(int objectDefID, int playerID)
Diese 3 Befehle können benutzt werden um versagte Prozesse
beim Platzieren der Objekte zu finden. Vielleicht willst du versuchen
das Objekt mit weniger Zwang zu platzieren. Also mit weniger Bedingungen.
Hier ist ein Beispiel von Acropolis:
for(i=1; <cNumberPlayers)
{
int startingTowerID=rmCreateObjectDef("Starting tower"+i);
int towerRampConstraint=rmCreateCliffRampConstraint("onCliffRamp"+i,
rmAreaID("player"+i));
int towerRampEdgeConstraint=rmCreateCliffEdgeMaxDistan
ceConstraint("nearCliffEdge"+i, rmAreaID("player"+i),
2);
rmAddObjectDefItem(startingTowerID, "tower", 1,
0.0);
rmAddObjectDefConstraint(startingTowerID, avoidTower);
rmAddObjectDefConstraint(startingTowerID, towerRampConstraint);
rmAddObjectDefConstraint(startingTowerID, towerRampEdgeConstraint);
rmAddObjectDefToClass(startingTowerID, classTower);
rmPlaceObjectDefInArea(startingTowerID, i, rmAreaID("player"+i),
6);
/* backup to try again */
if(rmGetNumberUnitsPlaced(startingTowerID) < 4)
{
int startingTowerID2=rmCreateObjectDef("Less Optimal
starting tower"+i);
rmAddObjectDefItem(startingTowerID2, "tower", 1,
0.0);
rmAddObjectDefConstraint(startingTowerID2, avoidTower);
rmAddObjectDefConstraint(startingTowerID2, towerRampConstraint);
rmAddObjectDefToClass(startingTowerID2, classTower);
rmPlaceObjectDefInArea(startingTowerID2, i, rmAreaID("player"+i),
1);
}
}
--------------------------------------------------------------------------------
rmSetIgnoreForceToGaia(bool val)
Kann benutzt werden um ein Objekt, sogar eine Resurce einem spieler
zugehören
1,6 Bedingungen
Bedingungen werden für Zonen, Verbindungen und Objekte benutzt.
Sie versichern das Objekte entfernt von anderen Objekten plaziert
werden oder das objekte in bestimmten Zonen gesetzt werden.
int rmCreateBoxConstraint(string name, float startX, float startZ,
float endX, float endZ, float bufferFraction);
Erstellte eine Box Bedingung
Box Bedingungen sind simpele Abschnitte mit 4 linien die die
Karte aufgliedern. Das erstellen einer Box Bedingung can benutzt
werden um Zonen oder Objekte vom Zentrum der Karte ntfernt zu
halten.
______________________________
int rmCreateAreaOverlapConstraint(string name, int areaID);
Erstellt eine Bedingung die Überschneidungen von Zonen verhindert.
______________________________
int rmCreateAreaConstraint(string name, int areaID);
Erstellt eine Bedingung die etwas zwingt in der Zone zu bleiben.
______________________________
int rmCreateTypeDistanceConstraint(string name, int classID,
float distance);
Erstellt eine typ Distanz Bedingung
Typen können bestimmte Einheiten sein, wie z.B. Hühner
______________________________
bool rmAddAreaConstraint(int areaID, int constraintID);
Fügt eine bestimmte Bedingung einer Zone zu.
______________________________
rmConstraintID(string name);
Empfängt die ID einer bestimmten Bedingung
1,7 Faire Objekte
Diese speziellen Befehle gibt es für kritische recurcen,
wie Siedlungen oder manchmal Gold Minen. Deiese Objekte werden
sicher auf der Karte Gesetzt.
bool rmPlaceFairLocs();
Setzt fairLoc Lokalizationen.
______________________________
int rmGetNumberFairLocs(int playerID);
Empfängt die anzahl der fairLocs eines Spielers
______________________________
float rmFairLocXFraction(int playerID, int index);
Empfängt die X Fraktrion einer fairLoc von einem Spieler
______________________________
float rmFairLocZFraction(int playerID, int index);
Empfängt die Z Fraktrion einer fairLoc von einem Spieler
______________________________
Fair Loc Beispiel für Siedlungen:
id=rmAddFairLoc("Settlement", true, false,
70, 120, 60, 40); /* forward outside */
rmAddObjectDefConstraint(id, SettlementAvoidImpassableLand);
rmAddObjectDefConstraint(id, playerConstraint);
if(rmPlaceFairLocs())
{
id=rmCreateObjectDef("far settlement2");
rmAddObjectDefItem(id, "Settlement", 1, 0.0);
for(i=1; <cNumberPlayers)
{
for(j=0; <rmGetNumberFairLocs(i))
rmPlaceObjectDefAtLoc(id, i, rmFairLocXFraction(i, j), rmFairLocZFraction(i,
j), 1);
}
}
1,8 Schalter
Diese Befehle werden benutzt um schalter vom Editor in ein RMS
Script aufzunehmen. Schalter können schnell kompliziert werden
und genausogut eine unfaire Map erstellen, also müssen sie
mit Vorsicht benutzt werden. Eine vollkommene Erklärung von
allen Schaltern kann ich hier nicht einfügen das würde
den Ramen sprengen . Aber du kannst eine RMS im Scenario Editor
generieren lassen und dort nachschauen wie die Schalter erstellt
sind. Du kannst auch in die triggertemp.xs datei in deinem Trigger
Verzeichniss für Hilfe mit debuggen deiner RMS schauen. Für
weitere Hilfe mit Schaltern würde ich hier Nocheineaoe empfehlen.
rmCreateTrigger(string triggerName)
Erstellt einen Schalter
______________________________
rmSwitchToTrigger(int triggerID)
Dieser befehl ist nützlich um schalter für spieler
zu setzen. Du musst davor alle Schalter definieren , aber dann
kannst du zwischen verschiedenen schalten um ihre Bedingungen
und Effekte zu spezifizieren.
______________________________
rmTriggerID(string triggerName)
Empfängt die ID eines Schalters
______________________________
rmSetTriggerPriority(int priority)
Setzt die Priorität des Schalters
______________________________
rmSetTriggerActive(bool active)
Setzt den Schalter aktiv
______________________________
rmSetTriggerRunImmediately(bool runImmediately)
Schalter tritt sofort in kraft
______________________________
rmSetTriggerLoop(bool loop)
Loop wird für den Trigger eingeschaltet
______________________________
rmAddTriggerCondition(string conditionType)
Fügt einem Schalter eine Bedingung hinzu
______________________________
rmAddTriggerEffect(string effectType)
Fügt einem Schalter einen Effekt hinzu
______________________________
rmSetVCFile(string filename)
Du kannst alaternative Gewinn Bedingungen für deine RMS.
Dieses Feature ist recht komplex und sollte nur vone einem fortgeschrittenen
RMS Scripter benutzt werden.
So das wars :) Hoffe ich konnte dir weiterhelfen :) Falls du
noch Fragen hast schau mal im Forum
nach oder schreib mir ne E-Mail.
|