=====Das Basisskript=====
Um für dieses Tutorial einen einheitlichen Ausgangspunkt zu haben, reduzieren wir zuerst das Standardskript auf das minimal Notwendige. Alle Veränderungen am Skript nehmen wir mit Visual Studio Code vor. Im Mapeditor ist zwar ein Texteditor enthalten, der eignet sich aber nur für das Sichten des Skripts, nicht zum Bearbeiten.
Dazu wird im ersten Schritt das automatisch generierte Skript aus dem Editor exportiert (Datei -> Skript bearbeiten, dann Skript -> Exportiere Skript...). Wir exportieren das Skript in das Verzeichnis ''C:\Scripts\'', das wir im [[ scripting:tutorials:visual_studio |Artikel zu Visual Studio Code]] angelegt haben.
Im exportierten Skript können nun abhängig davon, was du im Skriptassistent ausgewählt hast, einige Funktionen bereits mit Inhalt befüllt sein. Diesen werden wir dennoch zunächst rausnehmen und dann Schritt für Schritt wieder aufbauen. Konkret bedeutet das, dass folgende Funktionen leer sein müssen:
InitDiplomacy
InitResources
InitTechnologies
InitWeatherGfxSets
InitWeather
InitPlayerColorMapping
FirstMapAction
Auch die "Quest Information" ganz unten im Skript nehmen wir raus.
Warum tun wir das? Einige dieser automatischen Funktionen werden schlicht nicht benötigt oder können einfacher ausgedrückt werden. Andere, wie zum Beispiel die //Quest Information// ist nur sehr eingeschränkt benutzbar, da man mit ihr nur eine einzige Quest anzeigen kann. Zu guter Letzt kann beispielsweise die automatische Niederlagebedingung sogar für Fehler sorgen, da sie den von uns im Editor gesetzten Namen für die Burg des Spielers überschreibt.
Dabei ist es sehr einfach, alle diese Funktionalitäten selbst zu definieren, weshalb wir das in den nächsten Kapiteln auch tun werden. Wie beim Kochen "weiß man dann, was drin ist". Nachdem du das komplette Skript aufgeräumt hast, sollte es so aussehen:
--------------------------------------------------------------------------------
-- MapName: XXX
--
-- Author: XXX
--
--------------------------------------------------------------------------------
-- Include main function
Script.Load( Folders.MapTools.."Main.lua" )
IncludeGlobals("MapEditorTools")
--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- This function is called from main script to initialize the diplomacy states
function InitDiplomacy()
end
--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- This function is called from main script to init all resources for player(s)
function InitResources()
end
--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- This function is called to setup Technology states on mission start
function InitTechnologies()
end
--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- This function is called on game start and after save game is loaded, setup your weather gfx
-- sets here
function InitWeatherGfxSets()
end
--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- This function is called on game start you should setup your weather periods here
function InitWeather()
end
--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- This function is called on game start and after save game to initialize player colors
function InitPlayerColorMapping()
end
--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- This function is called on game start after all initialization is done
function FirstMapAction()
end
Du kannst oben dann den Namen deiner Karte und deinen eigenen eintragen.
Die beiden Zeilen
Script.Load( Folders.MapTools.."Main.lua" )
IncludeGlobals("MapEditorTools")
werden in jedem Skript benötigt und müssen deshalb immer erhalten bleiben!
**Wichtig**: Der Editor schreibt beim Exportieren des Skripts immer das Sonderzeichen ''NUL'' ganz unten in die Datei. Das musst du in jedem Fall entfernen!
Zum Mitlesen in den folgenden Kapiteln findest du {{ scripting:tutorials:level1:basis_script:mapscript.zip |hier}} das komplette Skript der Beispielkarte.
----
Im nächsten Kapitel definieren wir die diplomatische Ausgangslage auf der Karte.
[[ scripting:tutorials:level1:diplomacy | Nächstes Kapitel: Diplomatie ]]\\
[[ scripting:tutorials:level1:basis_script | Zurück nach oben ]]