Wenn ihr schon etwas Ahnung von LevelFuncs und über das Volume Event Menü im TE habt, hier noch ein kleiner Hinweis wie man der LevelFuncs Funktion mehrere Parameter (Argumente) übergeben kann.
Tutorial über Level Funcs und Volume Events -> solltet ihr vorher gelesen haben!
Normal kann man nur einen Parameter übergeben, da die LevelFuncs nur zwei Parameter kennt: "Activator" und euer Paramater in "Argument".
Wollt ihr nun zwei oder mehr Parameter übergeben schreibt ihr eure Werte kommasepariert in das Feld "Argument":
In der level.lua könnt ihr nun die Funktion mit euren Argumenten definieren:
LevelFuncs.InteractWithNpc = function(activator, args)
local tableArgs = LevelFuncs.Engine.Node.SplitString(args,",")
local argument1 = tableArgs[1]
local argument2 = tableArgs[2]
end
Es geht natürlich auch mit mehr Argumenten, einfach weitere mit "," in das Feld Arguments im Volume Fenster im TE schreiben.
Erklärung:
Der erste Parameter "activator" ist in dem Fall eurer Aktivator, also Lara, oder andere Objekte, Flyby usw.
Der zweite Parameter ist EUER Parameter, aber da ihr nun mehrere Werte habt, können wir diesen "splitten" (mit einer Lua Funktion "SplitStrings") und in der Variable "tableArgs" speichern.
SplitStrings() ewartet einen String (in dem Fall "args"- unser Parameter im Feld arguments der "zwei" Argumente erhält) und ein Zeichen mit dem gesplittet werden soll, in dem Fall ein ",".
Außerdem gibt SplitStrings() immer einen sogenannten table (bzw array) zurück, in dem die einzelnen Variablen dann inkludiert sind.
tableArgs enthält dann somit alle Variablen die ihr mit dem Index dahinter aufrufen könnt:
local argument1 = tableArgs[1]
local argument2 = tableArgs[2]
In meinem Beispiel enthält dann die Variable "argument1" den Wert "npc_garden1" und die Variable "argument2" den Wert "my_second_argument".