Benutzer-Werkzeuge

Webseiten-Werkzeuge


scripting:tutorials:level1:basis_script

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…).

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!

Zum Mitlesen in den folgenden Kapiteln findest du hier das komplette Skript der Beispielkarte.


Im nächsten Kapitel definieren wir die diplomatische Ausgangslage auf der Karte.

Nächstes Kapitel: Diplomatie
Zurück nach oben

scripting/tutorials/level1/basis_script.txt · Zuletzt geändert: 2023/09/18 12:28 von fritz_98