So, wie ich das bisher mitbekommen habe würde es so nicht klappen. Weil wenn ein timer ein Mal expired ist, dann gilt er immer als "has expired" (das Script überprüft immer, ob jemals in dem gesamten spiel der timer schon expired ist) => nach dem ersten Mal würde ständig gespawnt werden. Damit geht das neue set timer so einfach nicht. zudem würde der erste timer auch IMMER als has expired angerechnet werden. => es würde auch hier schon immer heißen, dass immer ein und dieselbe unit gespawnt wird.
Es gibt da einige Möglichkeiten, da hast du Recht, ich würde aber folgende bevorzugen (auch wenn ich weiß, ass andere wahrscheinlich eine einfachere Variante haben... ich benutze die hier)
Script 1:
If True
Set Flag 'firstunit' to FALSE
Script 2:
If True
Then Set timer "reviveunit" to expire in 12 seconds.
Script 3:
If timer 'reviveunit' is equal or lower than 2 seconds
THEN set flag 'firstunit' to TRUE
Ab hier den Haken vor "deactive upon success" immer weg machen.
Script 4:
If timer 'reviveunit' is equal or lower than 2 seconds
AND NOT Unit xyz exists and is alive
Then Spawn Unit xyz
Else set timer to expire in 9999 seconds.
Script 5:
If Unit 'abc' is dying (cinematic)
set timer 'reviveunit' to expire in 202 seconds.
In Worten:
Am Anfang wird ein ganz normaler timer gestartet.
Wenn der Counter die 2 Sekunden erreicht hat, dann überprüft er, ob die Einheit existiert (was sie nicht tut, da man sie noch nicht gespawnt hat) und spawnt sie dann und setzt den timer auf eine beliebige sehr hohe Zahl. Jetzt läuft der timer wieder runter. Aber das ist in dem Fall relativ egal, da der timer sofort zurückgesetzt wird, falls die Einheit noch nicht tot ist und man kann da so hohe zahlen einstellen, dass es auch nie geschieht... (wenn man z.B. 60000 einstellt, dann hat man 1000 Minuten => über 12 Stunden und das würde niemals ablaufen
Man kann auch noch das Script "stop timer" reinsetzen, dann ist man 100% sicher.
Falls aber die Einheit stirbt wird der timer auf 202 sekunden gesetzt => nach 200 sekunden wird wieder überprüft.
Es gibt den Fall, dass die Einheit in dem gleichen frame stirbt, wie das script überprüft, ob die Truppen leben... aber das würde entweder erst nach 12 Stunden geschehen (und da ist die Wahrscheinlichkeit quasi 0...^^) oder man benutzt eben dann "Stop timer", sodass er nicht von der hohen zahl runterläuft und somit wäre der potentielle Bug auch abgeschaltet.
So würde zumindest ich es machen.