EaW / FoC Events
Diese Tutorial soll die Grundkenntnisse für das Erstellen und zu ordnen von Events in der Galaktischen Eroberung vermitteln. Empfohlene Vorraussetzung zum Verstehen des Tutorial ist das Basic Modding Tutorial und dort ins besondere der Absatz Erstellen von GC Maps (Galaktische Eroberungskarten).
Was sind Events in EaW?
Events sind zeit oder situationsgesteuerte Ereignisse, die dem Galaktischen Eroberungsmodus oder in der Kampagne ausgelöst werden. Ich werde hier nur auf den Galaktischen Eroberungsmodus eingehen.
Wo werden die Events zugeordnet und definiert?
Ereignisse für die jeweilige GC Map werden für jede Fraktion in der Campaigns_singleplayer.xml (EaW) und Campaigns_underworld_gc.xml (FoC) definiert. Für den Multiplayermodus sind die Einträge in der Campaigns_multiplayer.xml zu finden.
Eine GC Map wird jeweils für alle spielbaren Fraktionen erstellt, also für den Spieler <Starting_Active_Player> , wird dabei immer ein separates Eventfile zugewiesen, entsprechend welche Fraktion er spielt. z.Bsp.
<Rebel_Story_Name>Story_Plots_Sandbox_xxx_Rebel.xm l</Rebel_Story_Name>
oder
<Empire_Story_Name>Story_Plots_Sanbox_xxx_Empire.x ml</Empire_Story_Name>
Bei FoC noch das Konsortium
<Underworld_Story_Name>Story_Plots_Sandbox_xxx_Und erworld.xml</Underworld_Story_Name>
Der Computerspieler erhält ebenso ein eignes Eventfile je Faktion.
<Rebel_Story_Name> Story_Plots_Rebel_AI_Heroes.xml </Rebel_Story_Name>
<Empire_Story_Name>Story_Plots_Empire_AI_Heroes.xm l</Empire_Story_Name>
Bei FoC wurde die Namen der xmls noch um den Zusatz _EXP erweitert.
<Rebel_Story_Name>Story_Plots_Rebel_AI_Heroes_EXP. xml</Rebel_Story_Name>
<Empire_Story_Name>Story_Plots_Empire_AI_Heroes_EX P.xml</Empire_Story_Name>
<Underworld_Story_Name>Story_Plots_Underworld_AI_H eroes.xml</Underworld_Story_Name>
Im org. EaW und FoC hat der Spieler für jede der Galaktischen Eroberungen eine darauf angepasste Eventdatei. Der Computerspieler hingegen nur eine Eventdatei für alle GC’s. Man kann aber auch für den Computerspieler für die jeweiligen verschiedenen GC’s einige eigens angepasste Eventdateien schreiben, falls man es wünscht.
Die in den Story_Name tag’s angegebenen Dateien wird nur auf die tatsächlichen xml Files verwiesen.
Dies dient dazu um zu ermöglichen mehre Eventfiles für eine GC Map zu verwenden, z.Bsp. Standardevents und je GC spezifische Events). Im Regelfall wird nur ein File darin aufgelistet sein.
Story_sandbox_xxxxxxxxxx.xml für den Spieler
Story_xxxxxx_ai_heroes_exp.xml für die Computerspieler
Wie definiert man Events?
Nach der Installation des Map Editors, siehe Basic Modding Tutorial Abschnitt Mapeditor, erhält man auch auf den Desktop eine Verknüpfung zu einen Worddokument names „Story Mode and Tutorial Scripting System“. In diesen Dokument sind alle möglichen Events augelistet, dazu Erkläuterung und Beispiele.
In den eigentlichen Eventfiles (Story_Sandbox_xxx.xml) beginnt man mit <Story> und endet man mit den </Story> Tag, dazwischen definiert man die einzelnen Events.
<Story>
<Event Name="Universal_Story_Start">
<Event_Type>STORY_ELAPSED</Event_Type>
<Event_Param1>0</Event_Param1>
<Story_Dialog>Dialog_E_Sandbox_Intro</Story_Dialog>
<Story_Chapter>4</Story_Chapter>
<Story_Tag>Intro_Tag</Story_Tag>
</Event>
<!— weitere folgende Events -->
</Story>
Mit diesen 1. Event beginnt man meist eine GC Event Datei, denn das Erste was am Anfang einer Galaktischen Eroberung passieren soll ist das man eine Beschreibung der GC Map bekommt. Der Event Name ist im Prinzip frei wählbar, aber man sollte in bei diesen Event beibehalten weil sich spätere oder teilweise vorhandene Events auf diese „AnfangsEvent“ beziehen.
<Event_Type>STORY_ELAPSED</Event_Type>
Dieser xml Tag gibt den Start einer Kampange/Gefechtskarte an. Der Parameter
<Event_Param1>0</Event_Param1>
Weil es der erste Start der Kampange/Gefechtskarte ist. (fängt an bei 0 zu zählen).
<Story_Dialog>Dialog_E_Sandbox_Intro</Story_Dialog>
Im Story Dialog Tag wird eine Datei definiert (ohne Dateiendung), die man im Ordner „MeinModxxxx\Data\Scripts\Story“ erstellen muss. Um eine vorhandene Datei zu finden muss man Config.meg entpacken, siehe Basic Modding Tutorial Abschnitt Meg Extractor. Dort findet man dann auch z.Bsp. die Dialog_e_sandbox_intro.txt, wie man sieht eine einfache Text Datei, der einzelne Abschnitte mittels [CHAPTER x] definiert werden. Ich werde mal den Syntax anhand unseres Beispiel, in dem Abschnitt
<Story_Chapter>4</Story_Chapter> erläutern. Folgender Text aus Dialog_e_sandbox_intro.txt
[CHAPTER 4] Abschnitt 4
TITLE TEXT_STORY_TRANSMISSION_18
WAIT 500 Wartezeit halbe Sekunde dann weiter mit nächster Aktion
SFX Button_Press Ton für den Button drücken
TEXTCOLOR 255 255 255 176 Textfarbe
TEXT TEXT_CAMPAIGN_SINGLE_25 Textbaustein für „Missionsname“ im Mastertextfile
TEXT TEXT_SPEECH_CAMPAIGN_SINGLE_25_INTRO_E Textbaustein für „Missionsbeschreibung“ im Mastertextfile
# DIALOG CAMPAIGN_SINGLE_25_INTRO_E auskommentiert
NEWLINE 1 neue Zeile bzw Freizeile
TEXTCOLOR 255 024 039 255 neue Textfarbe
TEXT TEXT_CAMPAIGN_SINGLE_VICTORY_EMPIRE_00 Siegesbedingungen 1
TEXT TEXT_CAMPAIGN_SINGLE_VICTORY_EMPIRE_01 Siegesbedingungen 2
TEXT TEXT_CAMPAIGN_SINGLE_VICTORY_EMPIRE_02 Siegesbedingungen 3
TEXT TEXT_CAMPAIGN_SINGLE_VICTORY_EMPIRE_03 Siegesbedingungen 4
WAIT 1000 Wartezeit 1 Sekunde dann weiter mit nächster Aktion
SFX Button_Press Ton für den Button drücken
NEWLINE 2 neue Zeile bzw Freizeile
TEXTCOLOR 255 255 255 176 neue Textfarbe
EXTRA_TEXT Textbaustein für „Extratext“ im Mastertextfile
WAIT SPEECH Warten bis Audio/Sprache fertig ist
Als letzter xml Tag in diesem „AnfangEvent“ steht einfach nur
<Story_Tag>Intro_Tag</Story_Tag>
Dies zeigt einfach nur die derzeitige Tagzählung an.
Das war also der Event am Start einer GC, das Popup erscheint mit Text. Diese Text Popups kann man aber weiter im laufenden Spiel als Info und Benachrichtigungsquelle benutzen um den Spieler mit Informationen oder mit Hinweisen zu versorgen. Der Aufbau ist gleich nur muss es an den jeweiligen auslösenden Event gebunden werden.
Weitere Events die gleich nach dem Start einer GC ausgeführt werden ist der Heldenspawn, also das erscheinen einiger Helden die bei Start einer GC verfügbar sein sollen.
<Event Name="Empire_AI_Heroes_01">
<Event_Type>STORY_TRIGGER</Event_Type>
<Reward_Type>SPAWN_HERO</Reward_Type>
<Reward_Param1>Grand_Moff_Tarkin_Team</Reward_Param1>
<Reward_Param2>Naboo</Reward_Param2>
<Prereq>Universal_Story_Start</Prereq>
</Event>
Event Name ist wieder freiwählbar, allerdings werden diese Namen auch für nachfolgende Events als Auslöser benutzt.
<Event_Type>STORY_TRIGGER</Event_Type>
Dieser Event Type ist eine Art Auslöser, der immer eine Vorgängeraktion benötigt die mit:
<Prereq>Universal_Story_Start</Prereq>
am Ende des Events angegeben wird, in dem Fall der GC Start. Der Reward Typ und die Parameter sind die Aktionen die ausgeführt werden wenn der Auslöser erreicht wird, in dem Fall: Heldenerscheinen --> Welcher Held und den Planeten auf dem er erscheint. Hier gibt es noch zu beachten: immer das „HeroTeam“ angeben und wenn man keinen Planeten angibt bzw. dieser sich in feindlicher Hand befindet, dann wird der Helden auf den Heimatplaneten oder auf einen Planeten in der Nähe, der sich in eigenen Besitz befindet, Erscheinen.
Mit den Einsatz Story Triggern werden die meisten Events in originalen EaW/FoC ausgelöst. Als auslösender Event in der laufenden Kampagne/GC wird hier meist ein STORY_TECH_LEVEL benutzt.
<Event Name="Empire_AI_Heroes_05">
<Event_Type>STORY_TECH_LEVEL</Event_Type>
<Event_Param1>2</Event_Param1>
</Event>
Den Aufbau eines Techlevels werde ich in späteren fortgeschrittenen Event Tutorial beschreiben. Die schon vorhandenen Story Tech Levels kann man aber für seine eigenen Zwecke als auslösenden Event benutzen. Zum Heldenspawn oder zum Freischalten von Gebäude/Einheiten, u.v.m
<Event Name="Unlock_Star_Destroyer">
<Event_Type>STORY_TRIGGER</Event_Type>
<Reward_Type>BUILDABLE_UNIT</Reward_Type>
<Reward_Param1> Star_Destroyer </Reward_Param1>
<Prereq> Empire_AI_Heroes_05 </Prereq>
</Event>
Neben den Story Triggern gibt es aber auch einige Event Typen die man auch gut für Event Auslöser benutzen kann. z.Bsp. eine Planeteneroberung(STORY_CONQUER)
<Event Name="Einnahme_Geonosis_Empire">
<Event_Type>STORY_CONQUER</Event_Type>
<Event_Param1>Geonosis</Event_Param1>
<Event_Param2>Empire</Event_Param2>
<Reward_Type>UNIQUE_UNIT</Reward_Type>
<Reward_Param1>Star_Destroyer</Reward_Param1>
<Prereq>Universal_Story_Start</Prereq>
</Event>
Hier bekommt man einen Sternenzerstörer wenn man Geonosis erobert. Nun könnte man auch gleich ein Video zeigen wie man den Sternenzerstörer bekommt, dazu ist wieder ein Trigger nötig.
<Event Name="Geonosis_Video_Stardestroyer">
<Event_Type> STORY_TRIGGER</Event_Type>
<Reward_Type>START_MOVIE</Reward_Type>
<Reward_Param1>StardestroyerVideo</Reward_Param1>
<Prereq> Einnahme_Geonosis_Empire </Prereq>
</Event>
Der Reward Parameter ist der „Movie Name“. Dieser muss in der Movies.xml definiert werden,
<Movie Name="StardestroyerVideo">
<Movie_File>Data\Art\Movies\Binked\StardestroyerVi deo.bik</Movie_File>
</Movie>
Ebenso benötigt man natürlich das Video im *.bik format das man im definierten Pfad ablegen muss.
Zurück zu den Events!
Natürlich muss man dann dem Spiel auch sagen das es weitergeht, mit einem weiteren Event!
<Event Name=" Geonosis_Video_Stardestroyer_End">
<Event_Type>STORY_MOVIE_DONE</Event_Type>
<Reward_Type>UNPAUSE_GALACTIC</Reward_Type>
<Prereq> Geonosis_Video_Stardestroyer</Prereq>
</Event>
Wenn man eine gewisse Eigendynamik in der GC Kampagne benötigt, kann man auch das Auslösen von Events an bestimmte Handlungen, Aktionen und Ereignisse des Gegners knüpfen. kleines Bsp.:
<Event Name="Rebel_Construct_MC80">
<Event_Type>STORY_CONSTRUCT</Event_Type>
<Event_Param1> Calamari_Cruiser </Event_Param1>
<Event_Param2>10</Event_Param2>
<Prereq> Universal_Story_Start </Prereq>
</Event>
<Event Name="Unlock_Star_Destroyer2">
<Event_Type>STORY_TRIGGER</Event_Type>
<Reward_Type>BUILDABLE_UNIT</Reward_Type>
<Reward_Param1> Star_Destroyer2 </Reward_Param1>
<Prereq> Rebel_Construct_MC80</Prereq>
</Event>
Ergebnis wäre, erst wenn die Rebellen den 10. MC80 bauen, wird beim Empire möglich den SD2 zu bauen.
Es gibt eine Vielzahl von Möglichkeiten wie man die verschiedenen Events für eigene Zwecke nutzen kann. Man kann das Spiel dadurch multimedialer (Video, Audio, Text), abwechselungsreicher (verschiedene Events) und auch dynamischer machen (Interaktion mit dem Gegner). Durch Events kann man eine (eigene) Story erzählen und dadurch dem Spiel seine persönliche Note verpassen.
Das soll es erstmal als Einführung in die Events gewesen sein. Ich hoffe euch hat es gefallen. Weitere mögliche Events und ein fortgeschritteneres Tutorial dazu, dann später. Wer gute Ideen für Events hat kann die gerne in diesen Thread posten.
mfg. Jedi Lu