SimpleJobs mit for-Schleife starten

» Siedler Map Source Forum » Siedler DEdK Script Forum » SimpleJobs mit for-Schleife starten

Seiten: 1

mundn
#1
25.10.2018 16:00
Beiträge: 83

SimpleJobs mit for-Schleife starten

Hallo,
ich wollte mal fragen wie ich mehrere unterschiedliche SimpleJobs mit einer for-Schleife starten kann. Folgender Code funktioniert leider nicht:

for _i = 1, 2 do 
  local f = function( _i ) Message(_i) end
  StartSimpleJob(f)
end



statt dem gewünschten

>1
>2


wird

>nil
>nil


ausgegeben.

Ziel ist es, das ich unter "f" eine von _i abhängige funktionen erstellen kann.

____________________
Scripten bei Master pewe in DEdK Script-Wiki gelernt ich habe.

mcb
#2
25.10.2018 16:34
Beiträge: 1472

Du erwartest zwar in f einen Parameter, übergibst StartSimpleJob aber keinen, also füllt Lua mit nil auf. Übergib StartSimpleJob den Parameter (du brauchst dafür einen Trigger-Fix, den solltest du aber haben, wenn du StartSimpleJob mit einer Funktion aufrufst).

for _i = 1, 2 do 
  local f = function( _i ) Message(_i) end
  StartSimpleJob(f, _i)
end

mundn
#3
25.10.2018 16:44
Beiträge: 83

danke klappt

____________________
Scripten bei Master pewe in DEdK Script-Wiki gelernt ich habe.

totalwarANGEL
#4
25.10.2018 19:05
Beiträge: 2123

Back to the Roots

Klassisch wäre über Trigger.RequestTrigger - für alle die, die den Fix nicht verwenden wollen oder können.

Trigger.RequestTrigger(
    Events.LOGIC_EVENT_EVERY_SECOND,
    nil,
    "SomeJobFunction",
    1,
    nil,
    {_Argumente,}
)

...

function SomeJobFunction(_Argumente)
...
end


Nachteil:
- Kein Inline
- Keine Tables als Argumente

____________________
Die Welt ist arschlochförmig und wir leben in der Mitte.

Seiten: 1

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

Impressum