Timer

 

Timer sind wichtig für Shellmaps und Missionen. Wenn ihr beispielsweise wollt, dass ein Script erst eine gewisse Zeit nachdem die Map gestartet hat, angreift, müsst ihr zunächst einen Timer definieren. Es gibt zwei Möglichkeiten einen Timer zu setzen. Entweder ganz normal, dass die Einheit beispielsweise 5 Minuten, nachdem die Map geladen hat, angreifen soll. Man kann einen Timer aber auch so scripten, dass eine bestimmte Einheit z.B. 5 Minuten nachdem ein Gebäude zerstört wurde, angreift.

 

Normaler Timer

 

Hierfür erstellen wir einfach ein neues Script im Ordner "neutral" und nennen es ganz kreativ "Timer". Dann wählen wir als Script "Scripting->Seconds countdown timer -- set". Unten wird dann der Name des Timers eingestellt, zum Beispiel "angriff". Dann noch die Zeit, in der der Timer abgelaufen sein soll, also beispielsweise 300 Sekunden (=5 Minuten).

Jetzt kann man den Timer als Bedingung bei einem anderen Script einsetzen. Wenn also eine Einheit 5 Minuten nach Laden der Map angreifen soll, einfach das Angriffsscript aufrufen und bei "Script Conditions" "Timer expired" wählen, unten den Namen des TImers einstellen, bei uns also "angriff", und fertig.

 

Besonderer Timer

 

Soll ein Timer erst nach einem gewissen Ereignis beginnen zu zählen, gibt zwei Möglichkeiten, ihn zu starten. Einmal kann man einfach in dem Script, das den Timer definiert, bei den Script Conditions eine Bedingung einstellen, beispielsweise dass die Einheit XXX zerstört wurde. Dann beginnt der Timer erst zu zählen, wenn die Einheit zerstört wurde.

 

Eine andere Möglichkeit ist, einen Timer zusammen mit einem anderen Script zu definieren. Hat man beispielsweise eine Kamerafahrt als Zwischensequenz gescriptet, die durch eine andere Bedingung als einen Timer hervorgerufen wurde, und möchte 5 Minuten nachdem die Fahrt zu Ende ist eine Einheit angreifen lassen, ist diese Methode nötig.

 

Dazu wählen wir das Script der Zwischensequenz und gehen in "Actions if true". Dann erstellen wir unter allen aufgeführten Einträgen einen neuen Eintrag "Scripting->Seconds countdown timer -- set". Unten geben wir jetzt einen Namen (z.B. "sequenz") und die Dauer des Timers ein, also bei uns 300 Sekunden.

 

Jetzt einfach nur noch bei dem Script, das das Angreifen der Einheit definiert, als Bedingung "Timer expired" und als Namen "sequenz" einstellen, und schon wird die Einheit 5 Minuten nachdem die Zwischensequenz begonnen hat angreifen.