11.12.2017 14:38:42
Hallo Gast
 Auslöser via Script erstellen



0 Mitglieder und 1 Gast betrachten dieses Thema.

10.01.2010 15:40:06
Gelesen 4348 mal

Offline Imutep

  • AMS Admin
  • *

  • ArmAdeus

  • 1781
    Beiträge

  • It's always something!

    • ArmA Mission Center
Auslöser via Script erstellen
« am: 10.01.2010 15:40:06 »
Man kann auch Auslöser ganz bequem via Script comands erstellen. Das Thema wurde hier schon in vielen Threads angefragt und ist auch etwas kompliziert zu Beginn, darum hier nun eine ausführliche Erklärung. Für alle die sich mit Sinn und Nutzen von Auslösern noch nicht so gut auskennen, für die lohnt sich ein Blick in unser Auslöser Tutorial.

Hier eine Auflistung der comands die wir für einen Auslöser brauchen und nutzen können:

createTrigger = Befehl zum erstellen eines Auslösers.
Hiermit wird jetzt z.B. ein leerer Auslöser auf der Position des Markers mit dem Namen marker1 erstellt.
Zitat
_trg=createTrigger["EmptyDetector",getMarkerPos "marker1"];


setTriggerActivation = Bestimmt durch was der Auslöser aktiviert wird. (Seite, Fahrzeug, Funk, Entdeckt von, nicht vorhanden, usw)

Der erste Wert in dem Array bestimmt wer den Auslöser aktiviert. Mögliche sind:
"NONE", "EAST", "WEST", "GUER", "CIV", "LOGIC", "ANY", "ALPHA", "BRAVO", "CHARLIE", "DELTA", "ECHO", "FOXTROT", "GOLF", "HOTEL", "INDIA", "JULIET", "STATIC", "VEHICLE", "GROUP", "LEADER", "MEMBER", "WEST SEIZED", "EAST SEIZED" oder "GUER SEIZED".

Der zweite Wert bestimmt ob eine Seite vorhanden, nicht vorhanden sein soll. Ebenso ob eine bestimmte Seiote von einer anderen entdeckt werden soll/muss. Möglich sind:
"PRESENT", "NOT PRESENT", "WEST D", "EAST D", "GUER D" oder "CIV D".

Der dritte Wert bestimmt, ob der Auslöser nur einmal oder mehrfach ausgelöst werden soll. true steht für eine Mehrfache Auslösung und false steht für einmal auslösen.
Zitat
_trg setTriggerActivation["WEST","PRESENT",false];


setTriggerTimeout = Bestimmt das TimeOut oder den Countdown eines Auslösers. Der erste Wert in dem Array bestimmt die Zeit in Sekunden (min, mid, max) für ein TimeOut oder Countdown.
Der zweite Wert bestimmt ob ein TimeOut oder ein Countdown vorgegeben wird. true steht für TimeOut und false für Countdown.

Zitat
_trg setTriggerTimeout [5, 10, 7, false];


setTriggerArea = Bestimmt die Grösse und Form des Auslöserbereichs.
Der erste Wert bestimmt die Grösse AchseA. Der zweite Wert bestimmt die Grösse AchseB und der dritte Wert bestimmt den Winkel des Auslösers.
Der vierte Wert in dem Array bestimmt ob die Form des Auslösers ein Rechteck oder ein Ellipse sein soll. true steht für Rechteck und false steht für Ellips als Form des Auslösers.
Zitat
_trg setTriggerArea[5 ,5, 0, false];


setTriggerText = Bestimmt Name/Text des Auslösers. Mehr muss denk ich hier nicht erklärt werden.
Zitat
_trg setTriggerText "Air support";


setTriggerType = Bestimmt den Typ des Auslösers (Bewacht von, Ende1-Ende6, Schalter, usw). Möglich sind:
#  "NONE"
# "EAST G" - Bewacht von OPFOR
# "WEST G" - Bewacht von BLUFOR
# "GUER G" - Bewacht von Independent
# "SWITCH" - Schalter
# "END1" - Ende #1
# "END2" - Ende #2
# "END3" - Ende #3
# "END4" - Ende #4
# "END5" - Ende #5
# "END6" - Ende #6
# "LOOSE" - Verlieren

Zitat
_trg setTriggerType "END1";


synchronizeTrigger = Lässt einen Auslöser mit einem Wegpunkt synchronisieren. Macht Sinn, wenn z.B. ein Wegpunkt erst aktiviert werden soll, wenn der Auzlöser ausgelöst ist.

Beispiel wie man einen Auslöser mit einem Wegpunkt synchronisiert:
Hier wird der Wegpunkt1 einer Einheit/Gruppe mit dem Auslöser synchronisiert.
Zitat
_trg synchronizeTrigger [wegpunkt1];
Möchte man mehrere Wegpunkte durch einen Auslöser aktivieren lassen:
Hier wird der Wegpunkt1 einer Einheit/Gruppe, der der Wegpunkt7 der Gruppe5 und der Wegpunkt3 einer Einheit/gruppe mit dem Auslöser synchronisiert.
Zitat
_trg synchronizeTrigger [wegpunkt1, [gruppe5, 7], wegpunkt3];


triggerAttachVehicle = Hiermit kann man einen Auslöser mit einer Einheit/Gruppe oder Fahrzeug gruppieren.

Das rot geschriebene _trg ist z.B. der Name des Auslöser den man im Script vergeben hat. Möchte man jetzt zum Beispiel dass der Spieler den Auslöser aktiviert, so würde der befehl dann so aussehen:
Zitat
_trg triggerAttachVehicle [player];
Der Befehl triggerAttachVehicle arbeitet auch mit dem Befehl setTriggerActivation zusammen.
Ihr möchtet jetzt z.B. einen Auslöser mit einer Gruppe gruppieren und als Aktivirung beispielsweise Beliebiges Gruppenmitglied haben, so würde der Befehl insgesamt so aussehen:
Zitat
_trg triggerAttachVehicle [NameLeader];
_trg setTriggerActivation["MEMBER","PRESENT",false];
Bei Anführer der Gruppe:
Zitat
_trg triggerAttachVehicle [NameLeader];
_trg setTriggerActivation["LEADER","PRESENT",false];
Bei Gesamte Gruppe:
Zitat
_trg triggerAttachVehicle [NameLeader];
_trg setTriggerActivation["GROUP","PRESENT",false];
Bei Fahrzeug:
Zitat
_trg triggerAttachVehicle [NameLeader];
_trg setTriggerActivation["VEHICLE","PRESENT",false];
Wollt ihr einen Gruppierungsbefehl wieder rückgängig machen, dann sollte das in etwa so aussehen:
Zitat
_trg triggerAttachVehicle [];
Bedenkt jedoch auch, dass wenn ihr in setTriggerActivation z.B. GROUP, LEADER, MEMBER oder VEHICLE angegeben habt, dass der Auslöserl dann mit KEINE Aktivierung agiert.

setTriggerStatements = Bestimmt die Bedingung und die Aktivierungszeile eines Auslösers.
Der erste Wert in dem Array bestimmt die Bedingung zur Aktivierung. this ist standardmässig vorgegeben. Möglich wäre hier auch z.B. this && wasweissich
Der zweite Wert bestimmt die Aktivierungszeile zur Aktivierung. Der dritte Wert bestimmt die Deaktivierungszeile des Auslösers.
Zitat
_trg setTriggerStatements["this", "execVM '10cas.sqf'",  "hint 'Na alles verstanden!'"];


Mehrere Aktivierungen in dem Auslöser würden dann so aussehen:
Zitat
_trg setTriggerStatements["this", "hint 'Auslöser aktiviert';HeliComes=true", "hint 'Auslöser deaktiviert'"];


Mehrere Aktivierungen ohne Deaktivierung:
Zitat
_trg setTriggerStatements["this", "hint 'Auslöser aktiviert';HeliComes=true",""];



setSoundEffect = Lässt Sound Effekte abspielen.
Natürlich lassen sich auch die Sounds unter Effekte via Script abrufen. Der erste Wert aus dem Array bestimmt einen Sound aus dem Bereich Anonym. Der zweite Wert bestimmt einen Sound aus Stimme, der dritte Wert bestimmt einen Sound aus Umgebung und der vierte Wert bestimmt einen Sound aus dem bereich Auslöser.

Zitat
_trg setSoundEffect ["Alarm", "", "", ""];
oder
Zitat
_trg setSoundEffect ["", "", "Alarm", ""];
[/hr]

setMusicEffect = Lässt Musik abspielen.
Auch möglich ist das abspielen von Musik eines Auslösers unter Effekte.

Zitat
_trigger setMusicEffect "NameMusikTrack";


Abschliessen mal ein fertiges Script wie es in etwa funktioniert:
Zitat
_trg=createTrigger["EmptyDetector",getMarkerPos "marker1"];
_trg setTriggerArea[5,5,0,false];
_trg setTriggerActivation["ANY","PRESENT",false];
_trg setTriggerTimeout [5,10,7,false];
_trg setTriggerStatements["this", "hint 'Trigger aktiviert'", "hint 'Trigger deaktiviert'"];


Und hier noch ein Beispiel eines Funkauslösers:
Zitat
_trg=createTrigger["emptydetector",position player];
_trg setTriggerArea [0, 0, 0, true];
_trg setTriggerActivation ["BRAVO", "PRESENT", true];
_trg setTriggerText "Call for support";
_trg setTriggerStatements["this", "hint 'Air support is on the way';HeliComes=true",""];


Hab noch was gefunden, der Übersicht halber. Ganz hilfreich bei mehreren Auslösern nicht den Überblick zu verlieren.
Script: [Auswählen]
trigger1 setTriggerText "Luftunterstützung anfordern";
Das sind jetzt so die mir bekannten Möglichkeiten, wie man Auslöser via Script erstellen kann. Hoffe wieder einmal geholfen zu haben. Danke an Clayman für den Hinweis zur Synchronisation von Auslösern!

Gruss :-)
« Letzte Änderung: 02.08.2017 20:50:01 von Imutep »
Missiondesigner halten das Addon und das Spiel am Leben!

10.01.2010 16:35:17
Antwort #1

Offline Clayman

  • AMS Admin
  • *

  • Multiple KreativFigur™

  • 1056
    Beiträge

Auslöser via Script erstellen
« Antwort #1 am: 10.01.2010 16:35:17 »
Zitat
Imutep schrieb:
Fraglich ist jedoch noch wie man erstellte Auslöser synchronisieren kann.

http://community.bistudio.com/wiki/synchronizeTrigger ;-)
Hab's selber allerdings noch nicht ausprobiert.
Ansonsten sehr schöne Erklärung. Gute Arbeit. :top:
>>Carpe Noctem<<

10.01.2010 17:07:16
Antwort #2

Offline Imutep

  • AMS Admin
  • *

  • ArmAdeus

  • 1781
    Beiträge

  • It's always something!

    • ArmA Mission Center
Auslöser via Script erstellen
« Antwort #2 am: 10.01.2010 17:07:16 »
Danke Clayman, manchmal sieht man vor lauter Bäume den Wald nicht :-)
Hab den ersten Post überarbeitet und nun auch das Synchronisieren erklärt.

Gruss
Missiondesigner halten das Addon und das Spiel am Leben!

17.01.2010 00:16:12
Antwort #3

Offline Imutep

  • AMS Admin
  • *

  • ArmAdeus

  • 1781
    Beiträge

  • It's always something!

    • ArmA Mission Center
Auslöser via Script erstellen
« Antwort #3 am: 17.01.2010 00:16:12 »
Hab den ersten Post überarbeitet und noch erklärt wie man die Sounds unter Effekte via Script aufrufen kann.
Missiondesigner halten das Addon und das Spiel am Leben!

17.01.2010 17:24:29
Antwort #4

Offline Clayman

  • AMS Admin
  • *

  • Multiple KreativFigur™

  • 1056
    Beiträge

Auslöser via Script erstellen
« Antwort #4 am: 17.01.2010 17:24:29 »
Der Vollständig halber könntest du das Einbinden von Musik noch mit rein nehmen:
setMusicEffect
>>Carpe Noctem<<

17.01.2010 17:49:59
Antwort #5

Offline Imutep

  • AMS Admin
  • *

  • ArmAdeus

  • 1781
    Beiträge

  • It's always something!

    • ArmA Mission Center
Auslöser via Script erstellen
« Antwort #5 am: 17.01.2010 17:49:59 »
Ich glaub ich steh im Wald! ^^
Danke Clay für den Hinweis.
Missiondesigner halten das Addon und das Spiel am Leben!

27.01.2010 00:19:12
Antwort #6

Offline Clayman

  • AMS Admin
  • *

  • Multiple KreativFigur™

  • 1056
    Beiträge

Auslöser via Script erstellen
« Antwort #6 am: 27.01.2010 00:19:12 »
Einen hab ich noch.^^
triggerAttachVehicle um eine Einheit / ein Fahrzeug etc. mit dem Auslöser zu gruppieren. Mögliche Aktivierungen (triggerSetActivation) sind dann "VEHICLE", "GROUP", "LEADER" oder "MEMBER".

Desweiteren gibt's noch triggerAttachObject, um den Auslöser mit einem Gebaude o.ä. zu gruppieren. Welchen Sinn dies macht, erschließt sich mir hingegen nicht. :hmm:


Achja, setTriggerTimeout hast du doppelt erwähnt. ;-)
>>Carpe Noctem<<

28.01.2010 17:45:25
Antwort #7

Offline Imutep

  • AMS Admin
  • *

  • ArmAdeus

  • 1781
    Beiträge

  • It's always something!

    • ArmA Mission Center
Auslöser via Script erstellen
« Antwort #7 am: 28.01.2010 17:45:25 »
Danke Clay, hab es noch dazu geschrieben. Hoffentlich hab ichs auch einigermasen verständlich erklärt. :Malajn:
Der Befehl triggerAttachObject sagt mir auch nicht wirklich was. Und den Nutzen weiss ich auch net wirklich. Werd mich aber mal schlau machen.
Missiondesigner halten das Addon und das Spiel am Leben!

02.08.2017 20:48:26
Antwort #8

Offline Imutep

  • AMS Admin
  • *

  • ArmAdeus

  • 1781
    Beiträge

  • It's always something!

    • ArmA Mission Center
Re: Auslöser via Script erstellen
« Antwort #8 am: 02.08.2017 20:48:26 »

Hab noch was gefunden, der Übersicht halber. Ganz hilfreich bei mehreren Auslösern nicht den Überblick zu verlieren.
Script: [Auswählen]
trigger1 setTriggerText "Luftunterstützung anfordern";
Missiondesigner halten das Addon und das Spiel am Leben!

 

Wegpunkte via Script erstellen

Begonnen von Imutep

Antworten: 27
Aufrufe: 11192
Letzter Beitrag 06.11.2017 22:17:56
von Imutep