Armed-Assault.de Twitter
Antwort
 
Themen-Optionen Ansicht
Alt 12.11.2013, 13:01   #1 (permalink)
50 Beiträge
 
Benutzerbild von JeeperCreeper
 
Registriert seit: 18.10.2013
Alter: 35
Beiträge: 64
Standard Trigger Aktion deaktivieren

Hi zusammen,

ich rufe in einem Trigger ein Script auf welches ausgeführt wird sobalt ein Spieler in den Bereich rein läuft.
Was ich jetzt möchte ist einfach das, wenn der Spieler aus dem Bereich raus läuft, oder ebn drin erschossen wird, dass das Script abgebrochen wird.

Ich habe es schon über die Einstellung "Zeitüberschreitung" (10sek.) im Trigger selbst Probiert. Dann unterbricht zwar der Trigger wenn ich raus laufe. Nur dann ist es ja so, dass das Script erst in den eingestellten (10sek.) ausgeführt wird.
Ich möchte aber das Script sofort ausführen lassen sobalt ich den Trigger betrette, aber ebn auch stoppen sobalt ich raus bin.

Was müsste ich bei Deakt. im Trigger reinschreiben? Oder besser noch, wie kann ich ein Trigger aus einem Script heraus deaktivieren?
JeeperCreeper ist offline   Mit Zitat antworten
Alt 12.11.2013, 16:18   #2 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 02.11.2010
Beiträge: 113
Standard

Hi JeeperCreeper,
hast du die Möglichkeit im Script bzw. während dessen das Script läuft eine Variable abzufragen?
Wenn ja, könntest du ja bei Deaktivierung eine Variable definieren, die dann bei Zutreffen dein Script beendet.
Genausogut könntest du ja im Script selbst fragen, ob der Spieler noch im Trigger ist oder noch lebt. Wenn ja läuft es weiter, bei nein exitwith ...

Das Ganze dürfte aber nur im MP schwierig werden, da sich ja theoretisch mehrere Spieler im selben Trigger befinden können.
JanIs ist offline   Mit Zitat antworten
Alt 12.11.2013, 18:27   #3 (permalink)
50 Beiträge
 
Benutzerbild von JeeperCreeper
 
Registriert seit: 18.10.2013
Alter: 35
Beiträge: 64
Standard

Vielleicht erklär ich grob was ich vor habe.
Ich möchte bis auf 5m an ein Objekt (auto, laptop usw... egal was) ran laufen und dann soll es ein paar Sek. (10 z.B.) dauern bis dann etwas passiert (marker färbt sich, oder auto spawnt ect...).

Das alles kann ich mit einem einzigen Trigger und der Einstellung Zeitüberschreitung tun. Auch wenn ich den Trigger verlasse und wieder rein laufe funzt alles super.

Problem ist aber, ich möchte diese 10 Sek. die es ebn dauert bis dann die eigentliche Aktion passiert angezeigt bekommen. Und dafür habe ich halt gedacht baue ich mir nen Script das mir anzeigt, mit ladebalken, Prozentzahlen egal was, wie lange die 10 Sek. noch dauern.

So, das Problem ist ja aber jetzt, wenn ich in den Trigger laufe und das Script (ladebalken) startet, ich aber dann sterbe oder aus dem Trigger wieder raus laufe, läuft das Script (ladebalken) ja immer noch weiter. Und ich möchte das jetzt beides irgendwie mit einander synchronisieren, nur wie?
JeeperCreeper ist offline   Mit Zitat antworten
Alt 12.11.2013, 20:02   #4 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 02.11.2010
Beiträge: 113
Standard

Ja eben, du kannst doch im Script jede Sekunde überprüfen ob die Variable, die der Trigger beim Deaktivieren auf true setzt falsch oder wahr ist.

Wenn du noch drin bist oder tot bist dann ist die Variable false und das Script zählt die nächste Sekunde in der while-Schleife runter.
Bist du rausgelaufen wird die Variable auf true gesetzt und das Script bricht ab und das Herunterzählen des Counters endet ...

LG

Geändert von JanIs (12.11.2013 um 20:04 Uhr).
JanIs ist offline   Mit Zitat antworten
Alt 12.11.2013, 20:45   #5 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 02.11.2010
Beiträge: 113
Standard

Ich weiß nicht ob ich dich jetzt richtig verstanden habe, aber schau dir mal mein Beispiel an ...
Angehängte Dateien
Dateityp: rar Triggertest.Stratis.rar (1,5 KB, 48x aufgerufen)
JanIs ist offline   Mit Zitat antworten
Alt 12.11.2013, 21:06   #6 (permalink)
50 Beiträge
 
Benutzerbild von JeeperCreeper
 
Registriert seit: 18.10.2013
Alter: 35
Beiträge: 64
Standard

JanIs ich danke Dir

Ich hab da schon an mehrere Trigger gedacht und bla bla, keine Ahnung wieso ich immer so kompliziert denke.
Macht jetzt genau das was es soll.

Aber wofür setzt man jetzt die Variable noch in der init.sqf auf false? Das geschieht doch alles im Trigger.
JeeperCreeper ist offline   Mit Zitat antworten
Alt 12.11.2013, 21:22   #7 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 02.11.2010
Beiträge: 113
Standard

Stimmt, ist in diesem Falle für die Katz weil sie vor Ausführen des Scriptes keine Rolle spielt und direkt im Trigger noch vor dem Start des Scriptes auf true gesetzt wird.

Allerdings habe ich mir das bei "wichtigen" Variablen, grade im MP so angewöhnt, da sonst oftmals eine Fehlermeldung kommt weil die Variable sozusagen unbekannt ist wenn deren Status zuvor nicht definiert wurde.
JanIs ist offline   Mit Zitat antworten
Alt 12.11.2013, 21:46   #8 (permalink)
50 Beiträge
 
Benutzerbild von JeeperCreeper
 
Registriert seit: 18.10.2013
Alter: 35
Beiträge: 64
Standard

Ja da hast du Recht, das sollte ich mir auch mal lieber angewöhnen

Dank Dir nochmal für Denkanstoß durch das Beispiel, da hätte ich sonst wieder mehrere Tage dran gesessen und mir alles mögliche ausgedacht nur nicht dass es so einfach sein kann.
JeeperCreeper ist offline   Mit Zitat antworten
Alt 12.11.2013, 21:55   #9 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 02.11.2010
Beiträge: 113
Standard

Freut mich wenn ich helfen konnte.

Greetz
Jan
JanIs ist offline   Mit Zitat antworten
Alt 18.11.2013, 01:53   #10 (permalink)
50 Beiträge
 
Benutzerbild von JeeperCreeper
 
Registriert seit: 18.10.2013
Alter: 35
Beiträge: 64
Standard

Habe wieder das selbe Problem und verstehe es einfach nicht. Mit deinem Beispiel klappt es, aber sobalt ich es ohne diesen Counter verwenden will klappt es einfach nicht.

bei Akt. "im_Trigger = true"
bei Deak. "im_Trigger = false"

der Code
Code:
while {im_Trigger} do {hint "123"; sleep 3; hint "456"; sleep 3; hint "789"; sleep 1; hint ""};
if (!im_Trigger) then {hint ""; exit};
Wenn ich jetzt aus dem Trigger rauslaufe und die Variable auf false gesetzt wird, wird mir trotzdem noch der hint bis zum Ende angezeigt. Habe es schon mit nur if, while und waitUntil usw... versucht, aber es ist immer das selbe, sobalt ich einmal reinlaufe und wieder raus, wird der Code bis zum Ende ausgeführt.

Wie muss der Code aussehen damit der hint mir nur angezeigt wird bis zum schluss, solange ich im Trigger-Bereich bin? Das Script soll abbrechen sobalt ich den Bereich verlasse. Ist das so überhaupt möglich?
JeeperCreeper ist offline   Mit Zitat antworten
Alt 18.11.2013, 09:09   #11 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 02.11.2010
Beiträge: 113
Standard

Hi du,

das ist aber schon nachvollziehbar, weil, sobald du reinläufst ja die ganze Codezeile auf true gesetzt und dementsprechend abgearbeitet wird.
Und abarbeiten heisst in diesem Fall, dass das Script die ganzen 7 Sekunden durchläuft und dementsprechend ja auch die vier Hint-Meldungen ausgibt.
Unabhängig davon ob du zwischenzeitlich den Trigger verlässt oder nicht.

Im Falle meines Beispieles wird das Zutreffen ja jede Sekunde abgefragt und dementsprechend entweder abgebrochen oder das Zutreffen durch herunterzählen um eine Sekunde "bestätigt".

Wenn du es so wie oben angeführt haben möchtest, dann müsstest du wohl mit einer zusätzlichen if-Schleife innerhalb der while-Anweisung arbeiten.

Solltest du überhaupt nicht zurecht kommen, dann melde dich nochmal und ich werde versuchen, dir das Script entsprechend anzupassen. Habe gerade kein ArmA zur Verfügung.

BTW, warum willst du überhaupt im 3-Sekundentakt die Meldung ausgeben?
In dem Falle bleibt immer das Problem, dass die Schleife für ganze 3 Sekunden durchläuft in der du zwischenzeitlich den Trigger ja schon zweimal verlassen hättest können?

Greetz
Jan
JanIs ist offline   Mit Zitat antworten
Alt 18.11.2013, 09:28   #12 (permalink)
50 Beiträge
 
Benutzerbild von JeeperCreeper
 
Registriert seit: 18.10.2013
Alter: 35
Beiträge: 64
Standard

Warum ich das so mache? Ich hab mir halt eine HUD einblendung erstellt, heißt mehrere Bilder die nacheinander angezeigt werden sollen. Ist wie der Counter nur als Grafik halt und das soll natürlich dann unterbrochen werden sobalt man rausläuft, stirbt. Das kann man bestimmt auch eleganter lösen, aber das Thema " Dialoge erstellen" ist nochmal ein komplexeres Thema als das Scripting selber.
Als simples Beispiel vielleicht nochmal
Code:
while {im_Trigger} do {cutRsc ["JCBackground","PLAIN"];
titleRsc ["JC0","PLAIN"]; sleep 5;
titleRsc ["JC5","PLAIN"]; sleep 5;
titleRsc ["JC10","PLAIN"]; sleep 5;
titleRsc ["JC15","PLAIN"]; sleep 5;
titleRsc ["JC20","PLAIN"]; sleep 5;};
if (!im_Trigger) then {exit};
So ungefähr stell ich mir das vor. Das es von der Logik her durchläuft ist klar, nur dachte ich es gibt irgendwie ne möglichkeit es halt zu unterbrechen. Mir fehlt da einfach noch die Erfahrung für sowas.

Edit: Das es in dem Beispiel ständig von vorne anfangen würde ist mir bewußt, soll nur nen Beispiel sein.

Geändert von JeeperCreeper (18.11.2013 um 09:30 Uhr).
JeeperCreeper ist offline   Mit Zitat antworten
Alt 18.11.2013, 09:59   #13 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 02.11.2010
Beiträge: 113
Standard

Schick mir doch wenn möglich einfach eine Beispielmap mit diesen Einblendungen und ich versuche dir das so hinzuflicken wie du es gerne hättest.
So würden wir nicht aneinander vorbei "arbeiten" ...

Greetz
Jan

janis.11@gmx.net
JanIs ist offline   Mit Zitat antworten
Alt 18.11.2013, 11:38   #14 (permalink)
50 Beiträge
 
Benutzerbild von JeeperCreeper
 
Registriert seit: 18.10.2013
Alter: 35
Beiträge: 64
Standard

Hab Dir nen kleines Beispiel zugeschickt.
Dieses HUD habe ich mir deshalb gebastelt, weil ich finde das es zu dem Original Arma3 UI am besten passt.
Ich mag diese bunten öden einfachen Progressbars einfach nicht.
JeeperCreeper ist offline   Mit Zitat antworten
Alt 18.11.2013, 14:57   #15 (permalink)
50 Beiträge
 
Benutzerbild von JeeperCreeper
 
Registriert seit: 18.10.2013
Alter: 35
Beiträge: 64
Standard

Sag mal, wie kriegst du das eigentlich immer so schnell hin? Bist du Programmierer oder so? Ich hab allein für den HUD jetzt fast ne Woche gebraucht.

Ich habs mir schon gedacht, dass Du es mit dem Counter umsetzen würdest. Geniale Idee!

Vielen Dank für die ganze Mühe die du hier aufbringst um mir zu helfen
JeeperCreeper ist offline   Mit Zitat antworten
Alt 18.11.2013, 15:05   #16 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 02.11.2010
Beiträge: 113
Standard

Schaut echt gut aus mit der RSC-Einblendung!

Hab jetzt leider deine Mail irrtümlich gelöscht, deshalb das Script als Anhang.
Habs getestet und funktioniert IMHO tadellos.

LG
Angehängte Dateien
Dateityp: rar captureblue.rar (524 Bytes, 24x aufgerufen)
JanIs ist offline   Mit Zitat antworten
Alt 18.11.2013, 16:13   #17 (permalink)
50 Beiträge
 
Benutzerbild von JeeperCreeper
 
Registriert seit: 18.10.2013
Alter: 35
Beiträge: 64
Standard

Post #15, hab ich mir da etwa selbst geantwortet?? Oder ist hier irgendwie was durcheinander gekommen hehe.
JeeperCreeper ist offline   Mit Zitat antworten
Alt 18.11.2013, 16:34   #18 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 02.11.2010
Beiträge: 113
Standard

LOL,
nun, bin weder Programmierer noch sonst in der Richtung tätig.
Ich versuche einfach irgendwie logisch an die Sache ranzugehen.
Wenn es nicht zu sehr ins Detail geht, komme ich meist irgendwie zurecht.

Ich habe wieder den Counter gewählt weil das Script ja im Prinzip jede Sekunde den Status braucht, andernfalls das Ganze ja ziemlich durcheinander kommen könnte da in einem Zeitfenster von 5 Sekunden ja einiges passieren kann.
Bestimmt gibts für deinen Zweck auch andere Scriptmöglichkeiten, vielleicht sogar vie raffiniertere.
Ich kann aber nicht mehr als in obigem Beispiel.
Wie auch immer funktionieren tut es.

Wenn du noch was brauchst, weisst ja wie du mich an die Strippe kriegst
JanIs ist offline   Mit Zitat antworten
Antwort


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
Trigger aktivieren mo0504 Technische Fragen & Probleme 6 21.09.2013 21:56
Trigger aktivieren mo0504 Editing 1 21.09.2013 21:08
Deaktivierte Trigger wieder aktivieren? TheR0cK Editing & Scripting 3 15.08.2013 18:07
Aktion - Waffe & Munition geben MagicStyle Editing & Scripting 3 13.08.2013 18:11
Soldaten in einem Trigger von einer anderen Gruppe eliminieren M4X1 Editing & Scripting 2 15.06.2011 16:35


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