Dies ist eine einfache Anleitung zum Einrichten und Verwenden des Tick Timers-Skripts.
Über das Skript
Tick Timers ist ein Skript, das darauf abzielt, die Anzahl der in einem Grid verwendeten Timer zu reduzieren. Es ermöglicht Spielern auch, ihre Timer-Definitionen mit anderen Spielern zu teilen, die das gleiche oder ein ähnliches Setup haben. Das Skript bietet auch benutzerdefinierte Funktionalitäten, auf die ein normaler Timer sonst nicht zugreifen kann. Diese Funktionalitäten ermöglichen eine bessere Kontrolle über Blöcke wie Rotoren und Kolben.
Skript-Setup
Um das Skript einzurichten, platzieren Sie einen programmierbaren Block in Ihrem Raster. Laden und kompilieren Sie das Tick Timers-Skript und Sie sind fertig! Das Skript benötigt keinen Timer, da es sich bereits selbst triggert. An diesem Punkt können Sie virtuelle Timer (vtimer)-Definitionen hinzufügen.
Virtuelle Timer definieren
Ein virtueller Timer oder vtimer ist die Darstellung eines Timers im Tick Timers-Skript. Er wird erstellt, indem eine vtimer-Definition in den benutzerdefinierten Daten des programmierbaren Blocks Tick Timers definiert wird. Hier ist, was eine vtimer-Definition ausmacht:
@<timer name>:<number of ticks>:<optional, on load action>
- – Der Name des vtimers. Dies wird verwendet, um den Timer auszulösen.
- – Die Verzögerung des vtimers in Ticks. Beachten Sie, dass 60 Ticks = 1 Sekunde sind.
- : - Optional. Diese Aktionen setzen den Anfangszustand des Timers entweder auf Aus oder Ein.
Hier sind einige Beispiele für eine vtimer-Definition:
@MyTimer:60 @MyOnTimer:30:OnOff_On @MyOffTimer:20:OnOff_Off
- MyTimer hat eine Verzögerung von 60 Ticks (1 Sek.) und ist standardmäßig eingeschaltet.
- MyOnTimer hat eine Verzögerung von 30 Ticks und ist standardmäßig eingeschaltet.
- MyOffTimer hat eine Verzögerung von 20 Ticks und ist standardmäßig AUS.
Ein kleiner Vorgeschmack darauf, wie komplex man mit einem Vtimer werden kann, dieser ist für eine Mech-Transformationssequenz.
Aktionen definieren
Aktionen definieren, was ein vtimer tut, wenn er ausgelöst wird. Es ähnelt dem Ziehen eines Blocks auf eine Timer-Symbolleiste und dem Auswählen einer auszuführenden Aktion. Es können mehrere Aktionen definiert werden (versuchen Sie, dies auf 10 zu begrenzen, aber Sie können darüber hinausgehen, werden Sie nur nicht verrückt). Hier ist, was eine Aktionsdefinition ausmacht:
<block or group name>,<action name>,<optional setting value>
- – Der Name des Blocks oder der Gruppe, die die Aktion ausführen wird.
- – Der Name der auszuführenden Aktion
- , - Optional. Dies gilt für benutzerdefinierte Aktionen, die eine Einstellung akzeptieren.
Hier sind einige Beispiele für Timer mit den hinzugefügten Aktionen:
@SetVelocity:0 Piston,SetVelocity,1 @SetRPMNeg:0 Rotor,SetRPM,-1 @SetAngleN60:0 Rotor,SetRPM,0 Rotor,RotateToAngle,90
- SetVelocity vtimer mit 1 Aktion SetVelocity. Dadurch wird die Geschwindigkeit des Kolbens auf 1 gesetzt.
- SetRPMNeg vtimer mit 1 Aktion SetRPM. Dadurch wird die Drehzahl des Rotors auf -1 gesetzt.
- SetAngleN60 vtimer mit 2 Aktionen SetRPM und RotateToAngle. Dadurch wird zuerst die Drehzahl des Rotors auf 0 gesetzt und dann der Rotor um 90 Grad gedreht.
Beachten Sie, dass Aktionen nacheinander von oben nach unten ausgeführt werden.
Aktionen für einen Block finden
Malware hat uns großzügigerweise eine Liste der Eigenschaften und Aktionen für jeden Block zur Verfügung gestellt. Sie können den folgenden Link für die Liste überprüfen:
Es gibt auch Aktionen, die als benutzerdefinierte Aktionen bezeichnet werden und nur innerhalb des Tick Timers-Skripts zugänglich sind. Weitere Informationen finden Sie in den Abschnitten zu benutzerdefinierten Aktionen.
Hier ist eine wirklich praktische Funktion des Skripts. Solange der Block den Aktionsnamen definiert hat, wird er die Aktion trotzdem ausführen. Das bedeutet, dass Sie beispielsweise Rotoren und Kolben zusammengruppieren und den ShareInertiaTensor darauf anwenden können (es gibt auch eine nicht umschaltbare Version in benutzerdefinierten Aktionen).
So verwenden Sie einen Vtimer (Start, Stopp, Trigger, Ein/Aus)
Endlich sind wir also da. Sie haben Ihren vtimer definiert, Sie haben ihm Aktionen hinzugefügt, jetzt müssen Sie ihn nur noch verwenden. Vtimer werden verwendet, indem der programmierbare Tick-Timer-Block wie folgt ausgeführt wird:
<vtimer name>,<vtimer action>
- – Der Name des zu verwendenden vtimer
- – Die Aktion, die der vtimer ausführt
Um die Verwendung zu vereinfachen, haben vtimer genau die gleichen Aktionen, die tatsächlichen Timern zur Verfügung stehen:
- OnOff_On – Schaltet den Vtimer ein.
- OnOff_Off – Schaltet den Vtimer aus.
- Start – Starten Sie den vtimer.
- Stop – Stoppt den vtimer.
- TriggerNow – Löst den vtimer aus.
Hier ist ein Beispiel dafür, wie ich einen vtimer namens SetAngle30 mit einer TriggerNow-Aktion ausführe, die dazu führt, dass der Timer sofort ausgelöst wird, wenn ich ihn über meine Symbolleiste ausführe.
VTimer-Verkettung
VTimer Chaining ruft einfach einen Vtimer von einem anderen Vtimer auf. Betrachten Sie dieses Beispiel für eine Sequenz, die ich erstellt habe, um Waffenkernwaffen abzufeuern:
@FireAA:30 Fire_0,TriggerNow @Fire_0:0 Fire_1,Start Fire_2,Start FireAA,Start @Fire_1:0 WeaponCore BoforsGun 1,ShootOnce @Fire_2:10 WeaponCore BoforsGun 2,ShootOnce
Hier ist der Haupt-Vtimer FireAA. Um diese Sequenz auszuführen, führe ich FireAA,TriggerNow aus. Um das Kettenfeuer zu stoppen, führe ich FireAA,Stop aus. Folgendes passiert also:
- FireAA wird aufgrund von TriggerNow richtig ausgelöst, was wiederum Fire_0 auslöst
- Fire_0 startet sowohl Fire_1, Fire_2 als auch FireAA. Fire_2 wird nach 10 Ticks und FireAA nach 30 Ticks ausgelöst.
- Fire_1 feuert eine WeaponCore-Waffe namens Bofors Gun 1 ab
- Fire_2 feuert eine WeaponCore-Waffe namens Bofors Gun 2 ab
- Wenn FireAA nach 30 Ticks auslöst, wird der Vorgang wiederholt, es sei denn, FireAA, Stop wird ausgeführt.
Custom Actions
Hier sind benutzerdefinierte Aktionen, die nur über das TickTimers-Skript verfügbar sind:
Rotoren und Scharniere
- ShareInertiaTensorOnOff_On – Schaltet Share Inertia Tensor für den Block ein
- ShareInertiaTensorOnOff_Off – Schaltet Share Inertia Tensor für den Block aus
Rotoren, Scharniere
- RotorLockOnOff_On – Sperrt den Rotor
- RotorLockOnOff_Off – Entsperrt den Rotor
- RotatePositive – Macht die RPM zu einem positiven Wert
- RotateNegative – Macht die RPM zu einem negativen Wert
- ResetRPM – Setzt die Drehzahl auf Null (0)
- IncreaseRPM – Erhöht die Drehzahl um 1
- DecreaseRPM – Verringert die Drehzahl um 1
- RPM einstellen, – Stellt die Geschwindigkeit eines Rotors auf die gewünschte Drehzahl ein
- SetLowerLimitAngle, – Legt den unteren Grenzwinkel des Rotors fest
- SetUpperLimitAngle, – Legt den oberen Grenzwinkel des Rotors fest
- InWinkel drehen, – Dreht einen Rotor in den gewünschten Winkel
Pistons
- SetGeschwindigkeit, – Stellt die Geschwindigkeit eines Kolbens auf die gewünschten m/s ein
- SetMinDistance, – Legt die Mindestlänge des Kolbens fest
- SetMaxDistance, – Legt die maximale Länge des Kolbens fest
- AnLänge anpassen, – Stellen Sie die Länge des Kolbens auf die gewünschte Länge ein
Das ist alles, was wir heute dafür teilen Space Engineers führen. Dieses Handbuch wurde ursprünglich erstellt und geschrieben von Khjin. Falls wir dieses Handbuch nicht aktualisieren, finden Sie das neueste Update, indem Sie diesen folgen Link.