HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   Spezial Bewaffnung bei Fahrzeugen (https://hx3.de/editing-scripting-167/spezial-bewaffnung-fahrzeugen-22237/)

GrenzBataillon 14.02.2013 16:33

Spezial Bewaffnung bei Fahrzeugen
 
Hey ArmA-Freunde,
hab letztens ein paar Fahrzeugen (unter anderen auch Jets) neue Waffen bzw. eher Munition hinzugefügt.
So hat der Harrier II (der USMC) nicht mehr nur 2 Sidewinder, sondern 4 - Grund ist, da es bei uns in der Gemeinschaft, wenn Luft-Einheiten gegen Luft-Einheiten kämpfen eben zu größeren Schlachten kommt und da 2 Sidewinder echt wenig sind und 4 auch nicht ganz unreal sind (abgesehen, wenn man nun die reale Bewaffnung nimmt).

Mein Problem ist nun, dass wenn ich den Jet neu auffüllen will an einen Ammo-LKW der Jet nur seine Standard-Bewaffnung erhält (also 2 Sidewinder) und nicht die aus der Init Zeile (4 Sidewinder).

Weiß jemand was ich falsch mache bzw. wie ich das Problem lösen kann?



freundliche Grüße

Vienna 14.02.2013 17:45

Ein Lösung wäre mit Hilfe eines Auslöser die Bestückung aus der Initzeile zu wiederholen. Das wird dann durchgeführt, wenn du in einem bestimmten Abstand zum Auslöser mit dem Flugzeug bist.

Einen Mehrfach- Auslöser für jedes Flugzeug:
Die Bedingung würde dann so lauten: FlugzeugName distance AuslöserName < 50
Bei Akt: for "_i" from 1 to 4 do {FlugzeugName addMagazinne "MagazinName"};

Nähert sich das Flugzeug unter 50m dem Auslöser, dann wird das Flugzeug mit 4 Magazinen bestückt.

Flugzeug und Auslöser müssen jeweils einen Namen haben.

Buliwyf 14.02.2013 17:45

Naja, was heißt Du machst was falsch?! Oder was sollte das Spiel falsch machen? So wie Du es beschreibst läuft doch alles nach Plan... ArmA füllt das Flugzeug nunmal so wieder auf, wie es in der Config beschrieben ist und Du fügst di zusätzlichen Raketen halt nur bei Missionsstart hinzu... also alles in Butter... ;)

Was Du halt jetzt noch machen musst ist, wenn jemand zum Aufmunitionieren an einen MunLKW steht, dem Flieger halt wieder die zusätzlichen Raketen hinzuscripten.

Auf die schnelle nachgedacht würde ich wohl eine Abfrage starten, ob ein Flieger in der Nähe eines MunLKW`s steht, wieviel er von den Raketen dabei hat und ihm dann bei Bedarf wieder 2 per Script hinzufügen...

:)

GrenzBataillon 14.02.2013 20:12

Ich danke euch beiden und werd das von Vienna mal versuchen. :)

Drunken Officer 15.02.2013 04:09

Wenn ich mich jetzt nicht total verhaue, kannst du auch mit nearestObject arbeiten

muni_Punkt ist der Name deines LKW. Auslöser auf blau / mehrfach, radius 50, über den lkw schieben
Bei aktivierung script starten

Code:

if (!isNull _fliescher) exitWith {player sideChat "spot is blocked"};
_fliescher = nearestObject [muni_punkt,"plane"];
clearMagazineCargo _fliescher;
_fliescher addMaginzeCargo ["blabla",4]; // z.B. dein Raketen
addMagazine für die anderen Waffen dazu
 
waitUnti {isNull _fliescher};
player sideChat "der nächste herr, die selber Dame";
exitWith {};


Vienna 15.02.2013 10:31

Zitat:

Zitat von Drunken Officer (Beitrag 441816)
Wenn ich mich jetzt nicht total verhaue, ...

Hast du aber leider.

Vom Gedanken her wäre das durchführbar, wenn auch meiner Meinung für diese Anwendung nicht ausreichend "treffsicher".

Der Code selbst ist in mehreren Punkten fehlerhaft und teilweise für diese Anwendung nicht tauglich. Wenn man Code postet, dann sollte der schon einigermaßen getestet sein.


Mein Beispiel mit dem Auslöser ist einfach, aber nicht perfekt. So kann man unmittelbar mehrmals "Nachladen", und solches auch wenn man den Auslöser unter 50m überfliegt. Das zu verhindern bedarf natürlich weiterer Programmzeilen, wie das Entfernen noch vorhandener Magazine welche nachgeladen werden, weiters abzufragen ob das Flugzeug am Boden ist.

GrenzBataillon 15.02.2013 20:32

Ok hab mich mal hingesetzt und rumprobiert bin dann auf n recht gute Lösung gekommen und wollte sie verfeinern, die verfeinerte Version jedoch funktioniert nur in der Theorie. Die Trigger scheinen irgendwo n Fehler zu haben, sitze jetzt schon ein oder zwei Stunden nur an der Fehlersuche und finde ihn einfach nicht. :(

Spieler: Bravo_1
leerer Jet: JET

1. Trigger - (verbunden mit Spieler oder Jet hat nichts geändert)
Vehicle
Present
con: this
act: JET1=true

2. Trigger - (gibt dann die Munition und liegt im Bereich des 1. Triggers und einen Fuel-LKW)
Radio Alpha
Present
con: this && JET1
act: JET setFuel 0; JET removeMagazines "2Rnd_Sidewinder_AH1Z"; JET addMagazine "2Rnd_Sidewinder_AH1Z"; JET addMagazine "2Rnd_Sidewinder_AH1Z"

Ob ich nun beim 2. Trigger in Act. JET oder Bravo_2 hinschreibe ändert nichts, es will weiterhin nicht funktionieren.
Außerdem ob ich beim 2. Trigger Con.: "this; JET1" oder "JET1 && this" einfüge ändert nichts, habs getestet weil ich das immer verwechsel ;)

Es hat aber bereits funktioniert als ich einen groben Test gemacht habe, aber wie gesagt will ich das ganze verfeinern.

Ziel ist es, dass der Radio Trigger sich nur aktivieren lässt wenn der Jet in dem Trigger ist und wenn man dann im Radio "Radio Alpha" aktiviert, wird einen eben der Treibstoff entzogen (um einfach überfliegen zu verhindern, wobei bei 7 Meter Triggern das eh ziemlich knapp wird und bei uns in der Gemeinschaft das wohl auch keiner machen würde :D) aber auch sofort durch den Fuel-LKW wieder hinzugefügt!

Könnt ihr mir da nochmal helfen?? :S

Vienna 15.02.2013 21:43

Gib bei Trigger 2 bei act vorerst nur eine Textausgabe ein. z.B: player groupChat "Trigger2 OK."
So kannst du testen wo der Fehler liegt.

Du darfst dann nicht vergessen JET1 auch wieder auf false zu setzen und den Tank aufzufüllen.

GrenzBataillon 15.02.2013 21:47

Hab ich, er funktioniert auch - also er wird aktiviert setzt eben nur seine Eingaben nicht um :/

Das Problem mit dem Treibstoff ist ja nicht so groß es steht ja in unmittelbarer nähe ein funktionierender Fuel-LKW.
Problem ist eher, dass der Treibstoff erst gar nicht entzogen wird und die Waffen auch nicht erneuert werden.

Außerdem (glaub ich noch nicht erwähnt) es funktioniert, wenn ich keine anderen Trigger in die Abfolge einfüge, sondern einfach nur via "Radio Alpha" das ganze mache. Dann hat man eben nicht mehr den Zwang der nähe und Nachteile kommen auf wenn man mehrere Jets hat dann sind fast alle "Radio ..." belegt und kann kaum noch was darüber laufen lassen...

Vienna 15.02.2013 22:06

Mach es nur mit dem 2. Auslöser. Anstelle von this && Jet1 gib ein:

this && position JET select 2 < 5

Da spricht der Auslöser nur an wenn der Jet unter 5m Höhe ist. So kannst du auch die Treibstoff Entleerung weglassen.

Vienna 16.02.2013 10:49

Ich habe folgendes mit einer F-35B getestet:

Das Flugzeug hat den Namen F1 im Editor zugewiesen bekommen.

Es reicht ein Mehrfach-Auslöser, der mit dem Flugzeug verbunden ist (über F2 im Editor, blaue Linie):

Code:

Auslöser:
Achse A und B: 20
Aktivierung  : Fahrzeug(wird automatisch eingetragen) | Mehrfach
Bedingung    : local F1 and this and position F1 select 2 < 5
Bei Akt.    : F1 removeMagazines "2Rnd_Sidewinder_F35"; for "_i" from 1 to 2 do {F1 addMagazine "2Rnd_Sidewinder_F35"}

Die Aufmagazinierung funktioniert, es dauert nur seine Zeit bis die Raketen "scharf" werden.

Durch die Bedingung wird verhindert, dass der Auslöser auf Überflug reagiert. Eine unmittelbare mehrfache Magazinierung wird durch das vorherige Löschen dieser Magazine verhindert. Mit local F1 soll erreicht werden, dass der Auslöser nur auf dem PC des Piloten reagiert.


Die Bedingung könnte man noch auf die Anwesenheit eines Munitionsfahrzeuges erweitern.

z.B Munifahrzeug mit Namen: Muni1

Code:

Bedingung: local F1 and this and position F1 select 2 < 5 and F1 distance Muni1 < 20
Damit wird der Auslöser nur aktiviert, wenn auch der Muni-Lkw unter 20 Meter Abstand zum Flugzeug hat.

Der Magazinname ist noch an das jeweilige Flugzeug anzupassen.

GrenzBataillon 16.02.2013 15:58

Ah, das ist perfekt, vielen Dank für die Hilfe! Danke! :daumen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:04 Uhr.

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 117 118 119