Einzelnen Beitrag anzeigen
Alt 13.07.2008, 11:07   #1 (permalink)
Vienna
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 Ändern der Fahrzeugbewaffnung

Ein Beispiel für Flugzeuge mit zwei Skripten und im Anhang die Mission dazu.

Beim Einsteigen ins Fahrzeug sind im Aktionsmenü einmalig 3 Auswahlmöglichkeiten zur Umrüstung der Fahrzeugbewaffnung vorhanden.


AktionenWaffenliste.sqf
Code:
// Ändern der Bewaffnung von Fahrzeugen über das Aktionsmenü, wenn der Spieler das Fahrzeug besteigt.
//
// Skriptaufruf in die Initialisierungszeile des Fahrzeuges wie folgt eintragen:
//  temp = this execVM "AktionenWaffenliste.sqf"
//
// Verwendet Skript "NeuBewaffnen.sqf"

private ["_a1","_a2","_w1","_w2","_w3","_w4","_w5","_w6"];

//Waffenliste für Luftkampfeinheiten.
_w1 = ["57mmLauncher","96Rnd_57mm",1];
_w2 = ["HellfireLauncher","8Rnd_Hellfire",1];
_w3 = ["M197","750Rnd_M197_AH1",1];
_w4 = ["MaverickLauncher","5Rnd_Maverick_A10",1];
_w5 = ["S8Launcher","40Rnd_S8T",1];
_w6 = ["GAU8","1350Rnd_30mmAP_A10",1];

VehicleBewaffnungEnde = false; // globale Variable zum Beenden des Skripts

waitUntil {vehicle player == _this}; // warten bis Spieler ins Fahrzeug einsteigt

// Aktionen hinzufügen
_a1 = _this addAction ["Bewaffnen wie AH1W und  A10", "NeuBewaffnen.sqf", [_w1,_w2,_w3,_w4,_w5,_w6],100,true,true,""];
_a2 = _this addAction ["Bewaffnen wie Standard AH1W", "NeuBewaffnen.sqf", [_w1,_w2,_w3],100,true,true,""];
_a3 = _this addAction ["Bewaffnen wie Standard  A10", "NeuBewaffnen.sqf", [_w4,_w5,_w6],100,true,true,""];

waitUntil {VehicleBewaffnungEnde}; // warten bis Bewaffnung gewählt wurde

// Aktionen entfernen
_this removeAction _a1;
_this removeAction _a2;
_this removeAction _a3;
NeuBewaffnen.sqf
Code:
// Neubewaffnung eines Fahrzeuges in dem sich der Spieler befindet.
// 
// Parameter: Array mit beliebig vielen dreidimensionalen Unterarrays.
//   Beispiel für ein Unterarray: [ ["Waffennamebezeichnung","Magazinbezeichnung",Magazinanzahl],... ]

private ["_unit","_i","_w","_m","_a","_j","_l"];

_l = _this select 3; //Array mit der Bewaffnungsliste laden

_unit = vehicle player;

//vorhandene Waffen und Magazine entfernen
{_unit RemoveWeapon _x;} foreach (weapons _unit); 
{_unit removeMagazine _x;} forEach (magazines _unit); 

for [{_i=0},{_i<count _l},{_i=_i+1}] do
   {
      _w = (_l select _i) select 0; //Waffenbezeichnung als String
      _m = (_l select _i) select 1; //Magazinbezeichnung als String
      _a = (_l select _i) select 2; //Anzahl derMagazie als Zahl
      for [{_j=1},{_j<=_a},{_j=_j+1}] do {_unit addMagazine _m};
      _unit addWeapon _w;
      _unit SelectWeapon _w
   };

//entfernt die Aktionsmenüpunkte des aufrufenden Skripts	
VehicleBewaffnungEnde = true;

//Bewaffnung anzeigen
_w = weapons vehicle _unit;
_m = magazines vehicle _unit;
_l = format["Waffen:\n"]; {_l = format["%1\n%2",_l,_x]} forEach _w;
_l = format["%1\n\n\nMagazine:\n",_l]; {_l = format["%1\n%2",_l,_x]} forEach _m;
hint _l
Angehängte Dateien
Dateityp: zip Fahrzeugbewaffnung_aendern.zip (2,5 KB, 97x aufgerufen)
Vienna ist offline   Mit Zitat antworten