Armed-Assault.de Twitter
Antwort
 
Themen-Optionen Ansicht
Alt 07.09.2013, 11:14   #1 (permalink)
Newbie
 
Registriert seit: 07.09.2013
Beiträge: 9
Standard Auslöser per kommando aktivieren

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 11:30 Uhr).
McDonalds ist offline   Mit Zitat antworten
Alt 07.09.2013, 13:11   #2 (permalink)
50 Beiträge
 
Benutzerbild von [GNC]JamesRyan
 
Registriert seit: 04.11.2009
Ort: Ober-Ramstadt
Beiträge: 79
[GNC]JamesRyan eine Nachricht über ICQ schicken [GNC]JamesRyan eine Nachricht über MSN schicken [GNC]JamesRyan eine Nachricht über Skype™ schicken
Standard

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.JgKp]James~
Kompaniechef | Autor SQF-Handbuch | 3.Jägerkompanie
[GNC]JamesRyan ist offline   Mit Zitat antworten
Alt 07.09.2013, 13:30   #3 (permalink)
Newbie
 
Registriert seit: 07.09.2013
Beiträge: 9
Standard

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", ......?
McDonalds ist offline   Mit Zitat antworten
Alt 07.09.2013, 15:04   #4 (permalink)
50 Beiträge
 
Benutzerbild von [GNC]JamesRyan
 
Registriert seit: 04.11.2009
Ort: Ober-Ramstadt
Beiträge: 79
[GNC]JamesRyan eine Nachricht über ICQ schicken [GNC]JamesRyan eine Nachricht über MSN schicken [GNC]JamesRyan eine Nachricht über Skype™ schicken
Standard

Zitat von McDonalds Beitrag anzeigen

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", ......?

Entschuldige Heute sehr im Zeitdruck.

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"];
};
Damit hast du dem Fahrzeug ein Aktionmenüeintrag zugewiesen. Problem ist nur, dass du das so mit dem if-Befehl nur in einem Skript nutzen kannst. Daher musst du erstmal uns sagen, wie du den Aktionmenüeintrag anbringen willst. Du kannst z.B: nur die Zeile

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)
(also komplett ohne this, einfach das this des Auslösers löschen und ersetzen)

In die Aktivierungszeile

Code:
ID1 = Fahrzeug1 addAction ["Auslöser aktivieren!", "meinSkript.sqf"];
In die Deaktivierungszeile

Code:
Fahrzeug1 removeAction ID1;
Damit hättest du schonmal den Eintrag und der verschwindet, sobald der Spieler wieder aussteigt.

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.
__________________
~[3.JgKp]James~
Kompaniechef | Autor SQF-Handbuch | 3.Jägerkompanie
[GNC]JamesRyan ist offline   Mit Zitat antworten
Alt 07.09.2013, 15:24   #5 (permalink)
Newbie
 
Registriert seit: 07.09.2013
Beiträge: 9
Standard

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 ich muss ihn nurnoch irgendwie über das flugzeugmenü aktivieren können...
McDonalds ist offline   Mit Zitat antworten
Alt 07.09.2013, 16:16   #6 (permalink)
50 Beiträge
 
Benutzerbild von [GNC]JamesRyan
 
Registriert seit: 04.11.2009
Ort: Ober-Ramstadt
Beiträge: 79
[GNC]JamesRyan eine Nachricht über ICQ schicken [GNC]JamesRyan eine Nachricht über MSN schicken [GNC]JamesRyan eine Nachricht über Skype™ schicken
Standard

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.
__________________
~[3.JgKp]James~
Kompaniechef | Autor SQF-Handbuch | 3.Jägerkompanie
[GNC]JamesRyan ist offline   Mit Zitat antworten
Antwort

Stichworte
auslöser, editor


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Deaktivierte Trigger wieder aktivieren? TheR0cK Editing & Scripting 3 15.08.2013 17:07
Modul per auslöser aktivieren Floulr Editing & Scripting 0 12.05.2013 10:38
Module durch Auslöser aktivieren sandmanGER Editing & Scripting 8 22.10.2012 16:54
Auslöser aktiv. durch West und/oder Civilian killshot Editing & Scripting 4 26.09.2012 21:08
2 Auslöser arbeiten zusammen Sol.LrMartyn Editing & Scripting 11 05.11.2011 18:29


Kontakt - HX3.de - Archiv - Nach oben

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias



SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116