Einstieg: new_game

Die new_game() Funktion ist der Haupteinstiegspunkt jedes Mapscripts. Neben register_functions() ist dies die einzige Methode, welche vom S4 Spiel selbst direkt aufgerufen wird. (Hier wird der globale Bereich mal abgesehen, da der immer ausgeführt wird) Beispiel: Was wird ausgeführt?

function new_game()
    dbg.stm("Ja, new_game wird vom Spiel aufgerufen")
end
function register_functions()
    dbg.stm("Ja, register_functions wird vom Spiel aufgerufen")
end

function eineAndereFunktion()
    dbg.stm("Nein, andere Funktionen werden vom Spiel nicht aufgerufen")
end

function noch_eine_andere_funktion()
    dbg.stm("Nein, andere Funktionen werden vom Spiel nicht aufgerufen")
end

dbg.stm("Ja, der globale Bereich wird vom Spiel aufgerufen!") -- nicht schön!!!

Funktionskriterien

In Lua ist es relativ egal, wie man eine Funktion nennt, das Hauptkriterium ist, dass der Name nicht mit einer Zahl anfängt und keine ä,ö,ü,ß Umlaute enthält.

function 2Fähler() 
   -- Das ganze Skript wird nicht Funktionieren und Siedler IV gibt keine Fehlermeldung aus!
end

Aber bei Einstiegspunkten muss der Name übereinstimmen, da das Spiel nur diese Funktionen aufruft.

Fazit

Wie ihr seht ist der globale Bereich nicht sehr gut zum Skripte schreiben, weshalb das Modularisieren mit Funktionen immer die bessere Alternative ist.

Last updated