IncludeLocals Frage
» Siedler Map Source Forum » Siedler DEdK Script Forum » IncludeLocals Frage
Seiten: 1
Shirhix
|
#1 09.08.2020 14:26 Beiträge: 9 |
IncludeLocals Frage
Hallo Zusammen!
Ich hab mal wieder ein Problem. Mein Script ist so groß schon geworden, dass ich die einzelnen Funktionen in ihrer eigenen Lua Datei gespeichert habe. Nun möchte ich diese beforehand aber laden.
Bei den Maps von den Entwicklern sind in der MapScript immer IncludeLocals("" zu sehen. Ich dachte mir, ich könne das auch. Scheint aber nicht so einfach zu sein?
Script das ich in den MapEditor importiere
- Include main function Script.Load(Folders.MapTools.."Main.lua") -- Include Locals -- IncludeLocals("VerinoGameControl") -- players IncludeLocals("VerinoPlayer2") -- IncludeLocals("VerinoPlayer3") -- IncludeLocals("VerinoPlayer4") -- IncludeLocals("VerinoPlayer5") -- IncludeLocals("VerinoPlayer6") -- briefing -- IncludeLocals("VerinoBriefing") -- armies IncludeLocals("VerinoPlayer2Army") IncludeLocals("VerinoPlayer2ArmyDefense") IncludeLocals("VerinoDefendKeyArmy") -- IncludeLocals("VerinoRobberArmy") -- IncludeLocals("VerinoPlayer3Army") -- IncludeLocals("VerinoPlayer3ArmyDefense") -- IncludeLocals("VerinoPlayer4Army") -- IncludeLocals("VerinoPlayer4ArmyDefense") -- quests -- IncludeLocals("VerinoGateQuest") -- IncludeLocals("VerinoVictory") --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dazwischen so standard sachen, und am Schluss noch
--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- This function is called on game start after all initialization is done function Mission_FirstMapAction() -- resources Tools.GiveResouces(1, 400, 800, 1000, 400, 100, 100) -- music LocalMusic.UseSet = HIGHLANDMUSIC -- chests AI CreateChestOpener("Dario") CreateChestOpener("Erec") CreateChestOpener("Pilgrim") CreateChestOpener("Salim") CreateChestOpener("Ari") CreateRandomGoldChests() StartChestQuest() -- create AI ------------- createPlayer2() -- createPlayer3() -- createPlayer4() -- createPlayer5() -- createPlayer6() -- START GAME ----------------- -- create1stQuest() end
Der Debugger meint, createPlayer2() gibt nil zurück, als ob die Lua Datei namens "VerinoPlayer2.lua" nie geladen hätte. Alle Dateien (s5x und lua) sind momentan in dem User Ordner unter Maps (wo alle anderen Maps sind).
Ich habe es auch schon mit Script.Load() versucht, gleiche Fehlermeldung leider.
Bin ich blöd oder geht das wirklich nicht?
____________________
skripting noob! Bitte nicht weh tun.
Play4FuN
|
#2 09.08.2020 15:05 Beiträge: 704 |
Script.Load( "maps\\user\\SCRIPTNAME.lua" )
Im Allgemeinen sollte Script.Load alles sein, was du brauchst.
(Bin mir im Moment nicht mal mehr sicher, ob es IncludeLocals so gibt, erinnere mich nur an eine IncludeGlobals Funktion)
____________________
LG Play4FuN
Siedler DEdK Mapping + Scripting Tutorials
Shirhix
|
#3 09.08.2020 17:03 Beiträge: 9 |
Zitat von Play4FuN:
Script.Load( "maps\\user\\SCRIPTNAME.lua" )
Im Allgemeinen sollte Script.Load alles sein, was du brauchst.
(Bin mir im Moment nicht mal mehr sicher, ob es IncludeLocals so gibt, erinnere mich nur an eine IncludeGlobals Funktion)
Das funktioniert, Dankeschön.
Die Includelocals() ist bei den MapTools unter Ai, Support.lua
IncludeLocals = function(_scriptNames) if type(_scriptNames) == "table" then table.foreach(_scriptNames,function(_,_value)Script.Load(Folders.Map.._value..".lua")end) else Script.Load(Folders.Map.._scriptNames..".lua") end end
____________________
skripting noob! Bitte nicht weh tun.
mcb
|
#4 09.08.2020 17:17 Beiträge: 1472 |
Üblicherweise nimmt man Script.Load dafür. Da kannst du nen normalen Pfad für nehmen und die lua Datei von irgendwo von deinem Dateisystem laden. Wenn du die Map veröffentichen willst, kannst du die lua dateien auch mit dem bbatool in die s5x packen und dann von da laden.
Seiten: 1