Selbstausführende Scripts: Unterschied zwischen den Versionen

Aus X-Lexikon
Zur Navigation springenZur Suche springen
KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
{{TutorialBar2|[[Globale und lokale Variablen]]| "[[X3:Terran Conflict Scripting-Tutorial]]"|[[Arrays]]}}
{{TutorialBar2|[[Globale und lokale Variablen]]| "[[X3:Terran Conflict Scripting-Tutorial|X³: Terran Conflict Scripting-Tutorial]]"|[[Arrays]]}}


Es ist eigentlich bei fast jedem Scriptpaket notwendig, ein Script zu haben, dass sich selbst bei Spielbeginn ausführt. Sonst würde keines der Scripte in diesem Scriptpaket wahrscheinlich je ausgeführt werden. Zudem ist es sehr schlecht, dem Benutzer des Scripts später erst einmal erklären zu müssen, wie man ein Script überhaupt aufruft.
Es ist eigentlich bei fast jedem Scriptpaket notwendig, ein Script zu haben, das sich selbst bei Spielbeginn ausführt. Sonst würde wahrscheinlich keines der Scripte in diesem Scriptpaket je ausgeführt werden. Zudem ist es sehr schlecht, dem Benutzer des Scripts später erst einmal erklären zu müssen, wie man ein Script überhaupt aufruft.


Ob Scripte sich selbst ausführen, hängt von ihrem Namen, bzw. von dessen Präfix ab. Folgende Präfixe führen zu einem selbstausführenden Script:
Ob Scripte sich selbst ausführen, hängt von ihrem Namen, bzw. von dessen Präfix ab. Folgende Präfixe führen zu einem selbstausführenden Script:
Zeile 13: Zeile 13:
==Wichtige Hinweise==
==Wichtige Hinweise==
===Nur einmal ausführen===
===Nur einmal ausführen===
Manchmal müssen selbstausführende Scripts zwar jedes Mal starten, aber bestimmte Aktionen nur einmal vornehmen, zum Beispiel das Definieren eines Hotkeys. <br>
Manchmal müssen selbstausführende Scripts zwar jedes Mal starten, aber bestimmte Aktionen nur einmal vornehmen, zum Beispiel das Definieren eines Hotkeys.<br>
Dafür nutzt man normalerweise globale Variablen. Das selbstausführende Script fragt zunächst eine bestimmte globale Variable ab, und prüft deren Wert. Ist er nicht '''"[TRUE]"''', so wird die Aktion ausgeführt und der Wert anschließend auf '''"[TRUE]"''' gesetzt.
Dafür nutzt man normalerweise globale Variablen. Das selbstausführende Script fragt zunächst eine bestimmte globale Variable ab, und prüft deren Wert. Ist er nicht '''"[TRUE]"''', so wird die Aktion ausgeführt und der Wert anschließend auf '''"[TRUE]"''' gesetzt.


====Wie klappt das?====
====Wie klappt das?====


Beim ersten Mal ergibt die Abfrage nicht '''"[TRUE]"''', sondern '''"null"''', da es die Globale Variable am Anfang noch gar nicht gibt. Anschließend wird die Globale Variable auf '''"[TRUE]"''' gesetzt.<br>
Beim ersten Mal ergibt die Abfrage nicht '''"[TRUE]"''', sondern '''"null"''', da es die globale Variable am Anfang noch gar nicht gibt. Anschließend wird die globale Variable auf '''"[TRUE]"''' gesetzt.<br>
Beim nächsten Mal ergibt die Abfrage '''"[TRUE]"''', da die globale Variable ja eben auf '''"[TRUE]"''' gesetzt wurde. Somit wird das ganze nur einmal ausgeführt, es sei denn, ein anderes Script verändert den Wert der globalen Variable wieder.
Beim nächsten Mal ergibt die Abfrage '''"[TRUE]"''', da die globale Variable ja eben auf '''"[TRUE]"''' gesetzt wurde. Somit wird das ganze nur einmal ausgeführt, es sei denn, ein anderes Script verändert den Wert der globalen Variable wieder.


Zeile 30: Zeile 30:


===Nicht zu lange dauern===
===Nicht zu lange dauern===
Wichtig ist auch, dass alle selbstausführenden Scripts nacheinander laufen. Um nicht andere Scripts aufzuhalten, sollte euer Setup script nicht lange von der Ausführung her dauern. Sobald es länger als 2 Sekunden läuft, empfiehlt sich eher, ein anderes Script aufzurufen, und den Code, der viel Zeit beansprucht, dorthin zu verlagern.
Wichtig ist auch, dass alle selbstausführenden Scripts nacheinander laufen. Um nicht andere Scripts aufzuhalten sollte die Ausführung Eures Setup-Scripts nicht lange dauern. Sobald es länger als 2 Sekunden läuft, empfiehlt sich eher, ein anderes Script aufzurufen, und den Code, der viel Zeit beansprucht, dorthin zu verlagern.

Aktuelle Version vom 25. August 2011, 21:26 Uhr


Es ist eigentlich bei fast jedem Scriptpaket notwendig, ein Script zu haben, das sich selbst bei Spielbeginn ausführt. Sonst würde wahrscheinlich keines der Scripte in diesem Scriptpaket je ausgeführt werden. Zudem ist es sehr schlecht, dem Benutzer des Scripts später erst einmal erklären zu müssen, wie man ein Script überhaupt aufruft.

Ob Scripte sich selbst ausführen, hängt von ihrem Namen, bzw. von dessen Präfix ab. Folgende Präfixe führen zu einem selbstausführenden Script:

  • setup.
  • init.
  • !setup.
  • !init.

So würde zum Beispiel ein Script namens "init.rassenkonflikte" von selbst ausgeführt werden. So einfach ist das. Es gibt aber noch einige...

Wichtige Hinweise

Nur einmal ausführen

Manchmal müssen selbstausführende Scripts zwar jedes Mal starten, aber bestimmte Aktionen nur einmal vornehmen, zum Beispiel das Definieren eines Hotkeys.
Dafür nutzt man normalerweise globale Variablen. Das selbstausführende Script fragt zunächst eine bestimmte globale Variable ab, und prüft deren Wert. Ist er nicht "[TRUE]", so wird die Aktion ausgeführt und der Wert anschließend auf "[TRUE]" gesetzt.

Wie klappt das?

Beim ersten Mal ergibt die Abfrage nicht "[TRUE]", sondern "null", da es die globale Variable am Anfang noch gar nicht gibt. Anschließend wird die globale Variable auf "[TRUE]" gesetzt.
Beim nächsten Mal ergibt die Abfrage "[TRUE]", da die globale Variable ja eben auf "[TRUE]" gesetzt wurde. Somit wird das ganze nur einmal ausgeführt, es sei denn, ein anderes Script verändert den Wert der globalen Variable wieder.

Beispielcode:


Nicht zu lange dauern

Wichtig ist auch, dass alle selbstausführenden Scripts nacheinander laufen. Um nicht andere Scripts aufzuhalten sollte die Ausführung Eures Setup-Scripts nicht lange dauern. Sobald es länger als 2 Sekunden läuft, empfiehlt sich eher, ein anderes Script aufzurufen, und den Code, der viel Zeit beansprucht, dorthin zu verlagern.