01.09.2013, 15:43 | #1 (permalink) |
Registriert seit: 26.09.2012
Beiträge: 120
|
SetDamage Problem
Hi, ich bräuchte bitte Hilfe bei meinem kleinem Vorhaben.
Ziel : Sani-Feldlazarett soll alle Einheiten vom Typ OPFOR heilen die sich in seiner Nähe befinden. Um das zu erreichen habe ich einen Auslöser erstellt und über das Feldlazarett platziert und ihn wie folgt eingestellt. Auslöseart: Mehrfach, OPFOR Auslösebedinung: Code:
this && (ceil time %2 != 0) Code:
for [{_i=1}, {_i<1000}, {_i=_i+1}] do { {_x setDammage (getDammage _x)-0.000025} forEach thislist; }; Jeder vom Typ OPFOR der diesen Auslöser betritt, soll alle paar Sekunden ein paar Damage Punkte abgezogen bekommen. So, wie es dort steht müsste es meiner Meinung nach von der Logik her funktionieren. Leider tut es das nicht, weshalb? Danke im Vorraus für jede Hilfe!
__________________
o L_ OL This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat Geändert von MagicStyle (01.09.2013 um 20:02 Uhr). |
01.09.2013, 17:52 | #2 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Du musst dem Auslöser einen Namen geben und statt thislist list AuslöserName verwenden.
Auslöseart: OPFOR | EINMAL Bedingung: true Bei Akt: Code:
temp = 0 spawn { while {true} do { {if (getDammage _x > 0) then {_x setDammage((getDammage _x)-0.033)}} forEach list AuslöserName; sleep 1 } } |
01.09.2013, 19:38 | #3 (permalink) |
Registriert seit: 26.11.2006
Ort: Kiel, S-H
Alter: 58
Beiträge: 3.013
|
Ich meine mich erinnern zu können (in ArmA1 war es zumindest so) das sehr kleine Werteänderungen (zumindest im MP) nicht funktionierten.
z.B. würde da Treibstoff nicht draufaddiert. Ich hab mich da dann beholfen und die Variable erst auf einen entfernten Wert und danach auf den richtigen gesetzt. Möglicherweise liegt hierein ähnliches Problem vor.
__________________
Nur ein Beispiel das zeigt wie BI "support" definiert: https://feedback.bistudio.com/T75547 |
01.09.2013, 19:52 | #4 (permalink) |
Registriert seit: 26.09.2012
Beiträge: 120
|
Ok, danke euch beiden ich werde es gleich mal probieren. PS: Weiss jemand zufällig wie man in rama 2 einem Auslöser per Script einen Namen vergeben kann?
__________________
o L_ OL This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat Geändert von MagicStyle (01.09.2013 um 20:10 Uhr). |
01.09.2013, 23:10 | #6 (permalink) |
Registriert seit: 26.09.2012
Beiträge: 120
|
thx !
Edit: Habe alles eben getestet, deine Lösung funktioniert leider auch nicht. ich schau mal nach ob ich nicht vielleicht einen Fehler gemacht habe Edit II: War mein Fehler, Ich habe festgestellt dass das Script nicht funktioniert wenn der Name des Auslösers lokal ist. Edit III: Erstelle ich den Auslöser im Editor funktioniert es, erstelle ich ihn hingegen per Script, funktioniert es nicht ?! Woran könnte das liegen, ich verwende für beide den selben Code? Eine Fehlermeldung wird nicht ausgegeben. Meine einzige Vermutung die jedoch vermutlich eher unwahrscheinlich ist, ist das man eben nicht den Namen vergibt indem man ihn vor createVehicle schreibt sondern auf eine andere weise. Ich such mich mal durch
__________________
o L_ OL This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat Geändert von MagicStyle (02.09.2013 um 00:05 Uhr). |
02.09.2013, 11:47 | #8 (permalink) |
Registriert seit: 26.09.2012
Beiträge: 120
|
Wie kann ich mir ausgeben lassen was list AuslöserName mir zurückgibt ? Etwa ganz normal mit hint oder gibt es da einen einfacheren Weg ?
__________________
o L_ OL This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat |
02.09.2013, 12:18 | #9 (permalink) |
Registriert seit: 26.11.2006
Ort: Kiel, S-H
Alter: 58
Beiträge: 3.013
|
Der "einfachste" Weg wäre wohl ein Funkauslöser der dann einen
hint str (list <auslösername>); ausführt. hint str([count list <auslösername>,list <auslösername>]); hätte sogar den Vorteil das man vorneweg die Anzahl der betroffenen Einheiten sieht. Etwas umständlicher wäre es wenn man in der init.sqf eine kleine while- do Schleife aufbaut die dann alle n-Sekunden das automatisch erledigt. Generell hat die Methode oben aber ohnehin das Problem das sie besetzte Fahrzeuge der entsprechenden Seite auch heilt ! Sauberer wäre es wenn man das heilen für jede Crew von jedem entsprechenden Objekt im Auslöser ausführt !
__________________
Nur ein Beispiel das zeigt wie BI "support" definiert: https://feedback.bistudio.com/T75547 Geändert von Lester (02.09.2013 um 12:23 Uhr). |
03.09.2013, 19:46 | #10 (permalink) |
Registriert seit: 26.09.2012
Beiträge: 120
|
Thx
Ok, vielen danke für die Info & Tipps Mein Problem ist jetzt gelöst, es war mein Fehler. Herzlichen dank an euch beiden !!!
__________________
o L_ OL This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat |
Stichworte |
damage, dammage, for-schleife, foreach, setdammage |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Installations Problem Arma X | Verus | Technische Fragen & Probleme | 20 | 29.07.2012 22:47 |
Connection Problem ArmA | -=Spine=- | Technische Fragen & Probleme | 0 | 11.03.2011 11:47 |
Fenstermodus und Taskleisten Problem | MaSch0815 | Technische Fragen & Probleme | 9 | 28.12.2010 10:44 |
Problem bei der bedingung anwesenheit | Moerderhoschi | Editing & Scripting | 49 | 03.09.2010 12:52 |
ArmA2 OA Problem | Thunderbird | Technische Fragen & Probleme | 17 | 10.07.2010 19:15 |