Maximale Ausführungszeit – Mappedia

Maximale Ausführungszeit

Aus Mappedia
Wechseln zu: Navigation, Suche

Alle Warcraft-Scripts haben eine Beschränkung: die maximale Ausführungszeit. Dies bedeutet, dass ein Trigger automatisch abgebrochen wird, wenn er zu lange ununterbrochen läuft. Dies kann bei komplizierten, langen Berechnungen zu Problemen führen, da ohne einen Fehler oder eine Warnung ab einem gewissen Punkt einfach keine Aktionen mehr ausgeführt werden. Jeder Trigger ist dabei unabhängig von den anderen.

Das Tool Grimoire gibt eine Meldung aus, wenn eine Funktion die maximale Ausführungszeit erreicht. Es eignet sich also dafür, den Fehler zu finden.

Inhaltsverzeichnis

Mögliche Gründe

Warum die Begrenzung existiert ist nicht genau bekannt. Mögliche Gründe sind:

Alternativen

Man kann die maximale Ausführungszeit nur umgehen, indem man eine Berechnung in mehrere Teile aufteilt. Es gibt 3 Funktionen, die benutzt werden können um dies innerhalb eines Triggers zu tun:

Wait

call TriggerSleepAction(0.0)

Man kann davon ausgehen, dass diese Funktion in etwa das gleiche macht, wie die beiden unteren Funktionen zusammen und noch eine Pause hinzufügt. Diese Funktion braucht relativ lange, bevor die nächste Aktion ausgeführt wird (ca. 0,2 Sekunden).

TriggerSyncStart

call TriggerSyncStart()

Diese Funktion braucht relativ lange, bevor die nächste Aktion ausgeführt wird (ca. 0,2 Sekunden).

TriggerSyncReady

call TriggerSyncReady()

Diese Funktion ist die schnellste der 3 Funktionen und ist deshalb am besten geeignet.

Aufteilung in mehrere Trigger

Da sich die maximale Ausführungszeit nur auf Trigger beschränkt, kann man sie quasi zurücksetzen, indem man einen neuen Trigger aufruft. Das Problem dabei ist, dass keine Parameter direkt übergeben werden können. Auch periodische Timer mit der Periode 0.0 Sekunden funktionieren, haben aber den gleichen Nachteil.

Mit vJass hat man das Problem nicht mehr, dort kann man .evaluate oder .execute benutzen um eine Funktion in einem neuen Trigger aufzurufen.

siehe auch

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Warcraft-Mapping
Werkzeuge