26.05.2012, 15:37 | #1 (permalink) |
Registriert seit: 05.11.2011
Beiträge: 235
|
Co-Pilot übernimmt Steuerung?
Heyho und guten Samstag Nachmittag,
weiß jemand von Euch ob es möglich ist, dass der Co-Pilot die Steuerung eines Helis übernehmen kann? Es ist halt schade, wenn eine MH-60S mit 16 Passagieren abstürzt, nur weil ein teamkiller dem piloten nen headshot gegeben hat. Falls keiner eine Lösung hat, womit könnte ich es denn möglicherweise zusammenbasteln? Bin ja schließlich nicht faul, studieren geht über probieren ;-) Grüße Sol.LrMartyn |
26.05.2012, 16:08 | #3 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Du erstellst eine Schleife die den Driver (http://community.bistudio.com/wiki/driver) abfragt und ersetzt diesen beim Tod durch einen aus der Crew (http://community.bistudio.com/wiki/crew) mit http://community.bistudio.com/wiki/moveInDriver
|
26.05.2012, 16:35 | #4 (permalink) |
Registriert seit: 05.11.2011
Beiträge: 235
|
Danke
Danke Vienna, auf die Idee bin ich vor 2 minuten auch gekommen, xD...
AyzOn, es geht. Glaub es mir, ich hab letzlich mit 2 weiteren Leuten gezockt und es kam ein gegnerischer Helikopter angeflogen, und was hatten wir? DMRs!!!! Zack gefeuert, Pilot tod, Kampf-Hubschrauber abgestürzt. Klingt bescheuert ist aber so. Poste später hier mal das ganze Skript, sobald ich es fertig habe. Grüße @Vienna, was vorgefertigtes gibt es noch nicht, oder? Denn ich wollte ja quasi gerne, das der moveinCargo platz 1 sitzen bleibt und trotzdem lenken kann... Sodass man wie in real life, falls der pilot mal einschläft, abgelenkt ist oder so, der co-pilot von seinem Sitz aus eingreifen kann... |
26.05.2012, 16:46 | #5 (permalink) |
Registriert seit: 05.11.2011
Beiträge: 235
|
Hm, ganz einfach problem was ich nun habe. Wie mache ich es bei Arma 2 dass er mir den Namen der Einheit z.B. "Tölel 1", "Treper 2" etc etc ausgibt bzw. den namen derjenigen Einheit ausliest die im Fahrzeug oder Helikopter sitzt und diese dann für den Driver ersetzt?
Denn: Bedingung: isNull driver Fhz1 and player in (crew Fhz1) Aktivierung: player moveInDriver Fhz1; ist ja schön und gut. Aber welchen player nimmt er denn nun? Wirklich einen der in der Crew ist, oder einen x-beliebigen der grade auf dem server ist? |
26.05.2012, 22:57 | #6 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Im Folgenden die Routine welche einen toten Piloten austauscht. Genommen wird eine Einheit aus der Crew-Liste.
Keine Ahnung wie man den Copiloten aus der Liste raus finden kann. Den Code in die Initialisierungszeile des Helis kopieren. Code:
temp = this spawn { if (!isServer) exitWith {}; while {damage _this < 0.9} do { waitUntil {(position _this)select 2 > 10 or damage _this > 0.9}; if (! alive driver _this) then { { if ((!alive driver _this )and driver _this != _x) then { driver _this setPos (getPos _this); _x setPos [0,0,50]; _x moveInDriver _this; sleep 0.1 } } forEach crew _this }; sleep 1 } } |
27.05.2012, 17:28 | #8 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Wenn auch ein abgesprungener Pilot ersetzt werden soll, dann muss das so ausshen:
Code:
temp = this spawn { private "_d"; if (!isServer) exitWith {}; while {damage _this < 0.9} do { waitUntil {(position _this)select 2 > 10 or damage _this > 0.9}; if ((! alive driver _this) and damage _this < 0.9 and count crew _this > 0) then { if (isNull driver _this) then { _d = (crew _this)select 0; _d setPos [0,0,50]; _d moveInDriver _this; sleep 0.1 } else { { if ((!alive driver _this )and driver _this != _x) then { driver _this setPos (getPos _this); _x setPos [0,0,50]; _x moveInDriver _this; sleep 0.1 } } forEach crew _this } }; sleep 1 } } driver Heli dagegen muss mit isNull abgefragt werden um festzustellen ob überhaupt wer auf diesem Platz sitzt. |
28.05.2012, 10:56 | #10 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Das erste Skript geht davon aus, dass der tote Pilot im Heli am Platz verbleibt (was normal üblich ist). Der Tote ist noch in der Crew-Liste vorhanden. Ist der Pilotenplatz leer, dann führt das zu einem Programmfehler.
Darum im zweiten Skript zuvor die Abfrage ob der Driver-Platz überhaupt belegt ist. Wie aus den Skripten ersichtlich, muss der neue Pilot zuerst aus dem Heli entfernt werden, bevor er auf den Driverplatz gesetzt werden kann. Um etwaige Probleme zu vermeiden, wird auch ein toter Pilot zuvor aus dem Heli entfernt. Leider ist aus der Crew-Liste nicht ersichtlich, wer an welchem Platz sitzt. Die Reihung in der Liste ist abhängig wann wer einsteigt, nicht auf welchem Platz wer sitzt. Im zweiten Skript ist es egal ob der Pilot tot oder abgesprungen ist. Er wird durch den nächstmöglichen der Crew-Liste ersetzt. |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Fun Thread - alles was lustig ist hier rein! | Kompost | Offtopic | 5593 | 02.12.2021 13:27 |
Dediziertes Heeresfliegergeschwader für die ArmA2OA Community (Umfrage) | MemphisBelle | Die Litfaßsäule | 64 | 25.05.2011 10:14 |
Einstellungen Steuerung | Lestat de Lioncourt | Technische Fragen & Probleme | 10 | 06.08.2010 17:40 |