PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ändern der Fahrzeugbewaffnung


Vienna
13.07.2008, 10:07
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

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

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

Mr-Murray
13.07.2008, 10:14
Der Vienna geht ja ab wie ein Zäpfchen ;) Schön, dass du wieder da und aktiv bist!!!
Man kann sich ja vor lauter Comments und Solutions kaum noch retten ;)

Bitte weiter so!!!



Grüße

Mr-Murray

Vienna
13.07.2008, 13:50
Die Motivation ist stark vom Interesse der Mitspieler und davon abhängig, ob die Bugs des Spieles Bemühungen nicht wider zunichte machen.

Aber durch die Patches dürft das Spiel jetzt einen Zustand erreicht haben, der recht brauchbar ist.


Wegen der großen Nachfrage wurde eine weitere Beispiel-Variante erstellt, bei der die Waffen einzeln hinzugefügt werden können.

Die Auswahl ist abgeschlossen, wenn alle möglichen Waffen geladen wurden, oder das Fahrzeug sich in Bewegung setzt.