![]() |
#1 (permalink) |
![]() Registriert seit: 07.09.2013
Beiträge: 9
|
![]()
Hey ^^
also meine frage ist eigentlich ganz simpel.. ich hab lange rumprobiert aber ohne erfolg ich will einen auslöser, also wen ich zumbeispiel in ein fahrzeug sitze eine aktion zur auswahl haben die einen auslöser aktiviert... das soll nur in den fahrzeug möglich sein diesen auslöser zu aktivieren kann mir vorstellen das das möglich ist, hat jemand ne ahnung? ^^ (sorry fals ich zu ungenau erklärt habe oder sowas ist mein erster beitrag im forum ![]() //edit: ich hätte noch eine nebensächliche frage.. wen ich ein auslöser habe der zb. eine nachricht erscheinen lässt wen ich durch sein auslösegebiet laufe wer kann die dan sehen? nur derjenige der durchläuft oder das ganze team? Geändert von McDonalds (07.09.2013 um 12:30 Uhr). |
![]() |
![]() |
#2 (permalink) |
![]() |
![]()
Zum Fahrzeug:
Aktionmenüeintrag kannst du mit addAction hinzufügen, im einfachsten Fall: player addAction ["Das ist der Eintrag im Menü", "meinscript.sqf",[optionale Parameter]] Willst du das nur innerhalb des Fahrzeuges, kannst du das ganze mit einer if-Bedingung umschließen oder den addAction-Befehl um eine condition erweitern, steht alles im BI Wiki zum Nachlesen. Für den Fahrer am einfachsten: if (driver auto == player) then {}; Soll es auch möglich sein, wenn der Spieler nur drinsitzt, gibt es noch andere Befehle wie Gunner, Commander und crew (kannst du mit player in crew nutzen). Dann zum Auslöser: Prinzipiell kannst du jeden Auslöser über die Befehle setTriggerActivation genau steuern. Noch wichtiger für dich ist aber setTriggerStatements. Probier einfach mal deinen Trigger so wie du ihn brauchst im Editor vorzubereiten, aber in der Bedingungszeile, wo standardmäßig this steht false zu schreiben. Damit wird er jetzt niemals aktiviert. Dann sollte man mittels setTriggerStatements quasi wieder auf true schalten können oder eben die Bedingung die du brauchst. Achte nur dabei darauf, bei der Aktivierung das reinzuschreiben was schon in deinem Trigger steht, weiß sonst nichjt ob er das nicht durch nichts ersetzt. Also Beispiel wäre ja wie im BI Wiki _trg setTriggerStatements ["this", "hint 'trigger on'", "hint 'trigger off'"] d.h. du gibst deinem Trigger einen Namen, z.B: trg1. Dann nutzt du den addAction Befehl um dem Spieler im Fahrzeug einen Aktionmenüeintrag auf ein Skript zu geben. Im Skript führst du dann trg1 setTriggerStatements []; aus. 1. Parameter ist die Bedingung. Mit "this" oder noch besser "true" wird er sofort ausgelöst, bzw. bei "this" löst er aus, wenn seine Bedingungen erfüllt sind. 2. Parameter ist die Aktivierungszeile, also was passiert, wenn der Trigger ausgerlöst wird. Das solltest du dann aus deinem Trigger einfach kopieren, einfache "" müssen durch doppelte """" ersetzt werden. |
![]() |
![]() |
#3 (permalink) |
![]() Registriert seit: 07.09.2013
Beiträge: 9
|
![]()
momment xD also wir nehmen jetz mal an mein fahrzeugname ist "Fahrzeug1" und der name vom auslöser ist "Auslöser1", was muss ich jetzt schreiben um im Fahrzeug1 die aktion im menü "Aktiviere Auslöser" haben will?
this addAktion ["aktiviere Auslöser", ......? |
![]() |
![]() |
#4 (permalink) |
![]() |
![]() Entschuldige ![]() Also addAction (mit c!) fügt immer dem Onjekt ,das an 1. Stelle steht, einen Aktioneintrag hinzu. Da du willst, dass der Fahrer das im Fahrzeug kann, sollte man hier sicherheitshalber das Fahrzeug als Ziel wählen, das geht genausogut wie der Spieler selbst, also zunächst: Code:
if (player in (crew Fahrzeug1)) then { Fahrzeug1 addAction ["Auslöser aktivieren!", "meinSkript.sqf"]; }; Fahrzeug1 addAction ["Auslöser aktivieren!", "meinSkript.sqf"]; in die Init-Zeile schreiben, dann hat das Fahrzeug aber von Anfang an diesen Befehl. Möchtest du, dass es nur geht, wenn der Spieler einsteigt, musst du das entweder über ein Skript lösen, das z.B. zu Missionsbeginn gestartet wird oder über einen Auslöser: Auslöser auf 0,0 und alles egal, in die Bedingungszeile: Code:
player in (crew Fahrzeug1) In die Aktivierungszeile Code:
ID1 = Fahrzeug1 addAction ["Auslöser aktivieren!", "meinSkript.sqf"]; Code:
Fahrzeug1 removeAction ID1; Ab jetzt spielt sich der Rest im Skript ab, dass durch das Aktionmenü aufgerufen wird, in meinem obigen Beispiel also meinSkript.sqf Den Rest können dir dann andere machen. Hoffe jetzt keinen Fehler mit crew gemacht zu haben. |
![]() |
![]() |
#5 (permalink) |
![]() Registriert seit: 07.09.2013
Beiträge: 9
|
![]()
geht das nicht einfacher? D: ich mein danke das du dir so viel mühe machst und mir das hier so gut erklärst aber geht das nicht einfacher? D: ich will doch nur ein Auslöser der ein objekt an mein flugzeug befestigt im menü des flugzeugs aktivieren xD den auslöser hab ich ja so weit schon konfiguriert
![]() |
![]() |
![]() |
#6 (permalink) |
![]() |
![]()
Leider nein, denn addAction, also der Befehl für einen Eintrag im Aktionsmenü ist zwingend an ein Skript gekoppelt, du kannst damit also nur Skripte starten.
Du kannst dann nur Auslöser benutzen und bist damit nicht ganz so flexibel. Du kannst ja einen Auslöser basteln, der prüft, wann eine Einheit einsteigt und dann deinen anderen Auslöser aktivieren. Du kannst generell in die Bedingungszeile jede beliebige Variable schreiben. Z.B. anstatt "this", "meineBedingung", also einfach einen Variablennamen. Das ist gleichbedeutend mit "meineBedingung = true". Mit anderen Worten: Der Auslöser löst aus, sobald du meineBedingung auf true setzt. Also könntest du einen Auslöser machen, der prüft, ob der Spieler im Fahrzeug1 ist und in der Aktivierungszeile die Variable meineBedingung auf true setzen mit meineBedingung = true;. Damit würde dann dein zweiter Auslöser, der in der Bedingungszeile nur meineBedingung stehen hat, auslösen, das ganze kann man dann noch mit Zeitverzögerung/Countdown zeitlich timen. Aber wenn du willst, dass der Spieler das selbst auslösen kann... es gibt noch eine einfache Variante: Mach nen Funkauslöser! Den kann jeder über 0-0-Kanal auswählen. Schreibe dann in den Funkauslöser bei Aktivierung: meineVariable = true. Und in deinen anderen Auslöser, den du soweit fertig hast, wie gesagt, in die Bedingungszeile meineVariable. Das wars. |
![]() |
Stichworte |
auslöser, editor |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
![]() |
||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Deaktivierte Trigger wieder aktivieren? | TheR0cK | Editing & Scripting | 3 | 15.08.2013 18:07 |
Modul per auslöser aktivieren | Floulr | Editing & Scripting | 0 | 12.05.2013 11:38 |
Module durch Auslöser aktivieren | sandmanGER | Editing & Scripting | 8 | 22.10.2012 17:54 |
Auslöser aktiv. durch West und/oder Civilian | killshot | Editing & Scripting | 4 | 26.09.2012 22:08 |
2 Auslöser arbeiten zusammen | Sol.LrMartyn | Editing & Scripting | 11 | 05.11.2011 19:29 |