Armed-Assault.de Twitter
 
 
Themen-Optionen Ansicht
Alt 26.05.2012, 15:37   #1 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 05.11.2011
Beiträge: 235
Icon5 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
Sol.LrMartyn ist offline  
Alt 26.05.2012, 15:53   #2 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Benutzerbild von AyzOn
 
Registriert seit: 14.10.2010
Ort: NRW
Alter: 29
Beiträge: 347
Standard

Wie kann man denn einem Piloten der in einem Heli unterwegs ist, mal eben in den Kopf schiessen?^^
AyzOn ist offline  
Alt 26.05.2012, 16:08   #3 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

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
Vienna ist offline  
Alt 26.05.2012, 16:35   #4 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 05.11.2011
Beiträge: 235
Icon3 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...
Sol.LrMartyn ist offline  
Alt 26.05.2012, 16:46   #5 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 05.11.2011
Beiträge: 235
Icon5

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?
Sol.LrMartyn ist offline  
Alt 26.05.2012, 22:57   #6 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

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 
   }
 }
Vienna ist offline  
Alt 27.05.2012, 15:36   #7 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 05.11.2011
Beiträge: 235
Icon14 Nicht schlecht

Das funktioniert soweit, einzige Fehler:

Wenn der Pilot (Spieler) abspringt und KI sitzt im Flugzeug reagiert niemand und alle sterben!?

Ansonsten gutes Skript!
Sol.LrMartyn ist offline  
Alt 27.05.2012, 17:28   #8 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

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 
  }
 }
alive driver Heli gibt auch false zurück, wenn gar kein Pilot vorhanden ist.

driver Heli dagegen muss mit isNull abgefragt werden um festzustellen ob überhaupt wer auf diesem Platz sitzt.
Vienna ist offline  
Alt 27.05.2012, 21:31   #9 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 05.11.2011
Beiträge: 235
Standard

Also ist das folgende Skript nur so geschrieben, damit ein Pilot (Spieler) abspringen und ersetzt werden kann?

Denn ein KI-Pilot wird mit deinem 1. Skript schon ersetzt, wenn er abspringt.
Sol.LrMartyn ist offline  
Alt 28.05.2012, 10:56   #10 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

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.
Vienna ist offline  
Alt 28.05.2012, 17:35   #11 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 05.11.2011
Beiträge: 235
Icon14 Sauber

Alles klar, Vienna. Besten Dank! Ich teste es in naher Zukunft aus.
Sol.LrMartyn ist offline  
 


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
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


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