Othello 549 Posted July 31, 2017 Share Posted July 31, 2017 Eine Frage in die Runde, gibt es in FlyWithLua die Möglichkeit, eine Funktion nach einem Delay genau nur einmal aufzurufen? Also so etwas wie: call_once_after(functionname, 3) -- delay in Sekunden als Argument Gruß Othello EDIT: oder so etwas wie unlist() Meine Idee: local handle = -1 function myfunction() ... unlist(handle) end handle = do_sometimes(myfunction) Link to comment Share on other sites More sharing options...
Othello 549 Posted July 31, 2017 Author Share Posted July 31, 2017 Edit geht leider nicht mehr. Das handle könnte auch weggelassen werden: do_sometimes(myfunction) unregister(myfunction) Link to comment Share on other sites More sharing options...
X-Friese 34 Posted August 12, 2017 Share Posted August 12, 2017 Hinter do_sometimes() versteckt sich eine Zeichenkette (ein String). Es ist keine Liste oder Verkettung, wo man einzelne Elemente wieder herausnehmen könnte. Wenn du ein Debug File erzeugen lässt kannst du den Inhalt der Zeichenketten nachsehen. Eine Lösung wäre mit einer Boolean Variable zu arbeiten. my_function_is_active = true function my_function() -- do something useful end do_sometimes("if my_function_is_active then my_function() end") ... my_function_is_active = false -- unregister Link to comment Share on other sites More sharing options...
Othello 549 Posted August 15, 2017 Author Share Posted August 15, 2017 Diese Variable müsste ich dann in meinem Script abfragen, richtig? Wenn ja, dann ist es das übliche Vorgehen. Ich kenne viele Scripte, welche Funktionen aufrufen lassen, nur damit die Funktion dann feststellt, dass sie nichts mehr tun muss/möchte. Ziemlich viel (in der Summe der Funktionen) Aufwand für eigentlich nichts. Da wäre eine Verbesserung, die Funktion erst gar nicht zu rufen, also ein echtes "unregister". Liese sich das nicht realisieren (verkettete Liste etc.) ? Gruß Othello Edit: Ich glaube, ich habe eben erst verstanden, was du mit der Stringrepräsentation meinst. Ich habe noch nicht nachgesachaut, wie das im Debugfile aussieht, das werde ich gleich nachholen. Vermutlich ist der Overhead noch größer, als ich dachte :-) Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.