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

SiteEngine v1.5.0 by nevermind, ©2005-2007
Design by SpiderFive (www.siedler-games.de) - English translation by juja

Impressum