Trigger und delayed functions
» Settlers Map Source Forums » Siedler DEdK Script Forum » Trigger und delayed functions
Pages: 1
Play4FuN
|
#1 30-12-2017 23:28 Posts: 704 |
Trigger und delayed functions
Abend Gemeinde,
hat jemand Rat?
Ziel: Mittels Trigger möchte ich Funktionen samt Parametern nach X Sekunden (hier z.B. 5) verzögert aufrufen (StartCountdown nimmt ja leider keine Parameter).
Meine Idee war sowas:
DelayFunction("functionname", 5, {paramA, paramB}) -- ... function DelayFunction(_name, _delay, _actionTable) Trigger.RequestTrigger(Events.LOGIC_EVENT_EVERY_SECOND, "DelayFunctionTimer", _name, 1, {_delay}, {unpack(_actionTable)}) end function DelayFunctionTimer(_delay) if Counter.Tick2("DelayFunctionTimer", _delay) then return true end end
Funktioniert recht gut, nur wie beende ich das nachdem die 5 Sekunden abgelaufen sind und die Funktion 1x aufgerufen wurde? Denn aktuell wird weiterhin alle 5s die Action Funktion vom Trigger gestartet. Vermutlich übersehe ich was total einfaches...
____________________
LG Play4FuN
Siedler DEdK Mapping + Scripting Tutorials
Zedeg
|
#2 31-12-2017 00:51 Posts: 428 |
Ein müder Zedeg empfiehlt ein return true in functionname.
____________________
Journalisten erkundigen sich bei Wissenschaftlern meist nicht nach Grundlagen, sondern eher nach Ergebnissen und Folgerungen. Das erklärt womöglich auch, warum sich Forschungsberichte in den Medien so häufig als feststehende Erkenntnisse lesen, nicht aber als Ideen, Entdeckungen oder Indizien, um die es sich genau genommen in den meisten Fällen handelt. -Axel Bojowski
mcb
|
#3 31-12-2017 01:19 Posts: 1472 |
Oder du machst sowas wie hier:
function DelayFunction(func, delay, ...) StartSimpleJob(function(t, func, arg) t.t = t.t - 1 if t.t < 0 then func(unpack(arg)) return true end end, {t=delay}, arg) end
Hat den Vorteil, das du mehrere auf einmal laufen haben kannst.
(Ungetestet, braucht Trigger-Fix)
PS: Statt {unpack(foo)} reicht auch einfach foo, kommt das selbe bei raus
Play4FuN
|
#4 31-12-2017 11:05 Posts: 704 |
Okay, deinen Trigger-Fix schau ich mir mal an.
@Zedeg: jou habe ich auch schon gemacht, nur manche Funktionen haben selbst schon Rückgabewerte anderen Typs...
____________________
LG Play4FuN
Siedler DEdK Mapping + Scripting Tutorials
Pages: 1