ein neues Entity, das eine Lua Funktion mit einpaar Parametern aufruft wäre schon ausreichend
z.B.
1
2
3
4
5
6
7
8
9
10
11
function myFunc(sourceType, source, name, nextEntities, [config])
	-- sourceType: 0 = entity, 1 = player, 2 = lua
	-- source: entweder entityID (sourceType=0), playerID (sourceType=1), oder 0 (sourceType=2)
	-- name: string aus dem "Name" Feld im Editor
	-- nextEntities: array/table aus dem "Trigger" Feld im Editor
	-- [config]: optionaler String, der im Editor angegeben werden kann
	
	return result
	-- result = 0/nil - normal also triggere nextEntities
	-- result = 1 - abort also triggere nicht nextEntities
end
damit könnte man sich z.B. ein Logikglied (also mit 2 Input werten) programmieren, indem man die Entities "portA", "portB" und "ergebnis" erstellt und folgendermaßen verlinkt:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
portA:
	Name = "portA"
	Script = "sys/lua/entities/sample.lua"
	Function = "andGate"
	Instance = 1
	config = "A"
portA:
	Name = "portB"
	Script = "sys/lua/entities/sample.lua"
	Function = "andGate"
	Instance = 1
	config = "B"
ergebnis:
	Name = "ergebnis"
	Script = "sys/lua/entities/sample.lua"
	Function = "andGate"
	Instance = 1
	config = "erg"
die Datei "sys/lua/entities/sample.lua" würde dann so aussehen:
1
2
3
4
5
6
7
8
9
10
11
12
local aValue, bValue = 0
function andGate(sourceType, source, name, nextEntities, config)
	if (config=="A") then aValue = 1
	elseif (config=="!A") then aValue = 0
	
	elseif (config=="B") then bValue = 1
	elseif (config=="!B") then aValue = 0
	
	elseif (config=="erg") then return (aValue and bValue)
	end
end
intern würde es dann folgendermaßen laufen:
1. Der Server lädt die map
2. wenn er die 3 Entities generiert sieht er,
dass der "Instance" wert gleich ist und führt einmal das script aus (er erstellt ein Objekt)
3. wenn jetzt portA, portB oder ergebnis getriggert wird führt er die funktion andGate aus
falls man mehrere Instanzen hätte würden die lokalen Parameter aValue und bValue nur für eine Instanz gelten also könnte man nicht andere trigger mit dem selben script beeinflussen
das ganze müsste natürlich besser eingebunden werden, wie ich es hier beschrieben habe aber ich weiß ja nicht wie Lua und CS2D zusammen hängen
das script müsste aber dann mit der map heruntergeladen werden, da sonst die Map nichtmehr funktioniert