Einzelnen Beitrag anzeigen
Alt 17.06.2012, 18:37   #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 Zwei primäre Waffen

Zitat von SOAR_ONE

Hi,
in ACE2 kann man eine zweite primaryweapon in einen "Umhänge-Slot" packen. Gibt´s dafür auch einen Script-Befehl, um einem Spieler vom Missionsstart an zu geben?

Folgend ein Skript mit dem ohne ACE zwei primäre Waffen möglich sind:

change_weapon.sqf
Code:
/*[Vienna  17.06.2012]
  Das Skript "change_weapon.sqf" ermöglicht eine zweite primäre Waffe aufzunehmen.
  
  Waffenwechsel über das Aktionsmenü.

  Aufruf des Skripts über Auslöser:

  Aktivierung: Keine  Mehrfach
  Bedingung  : alive player
  Bei Akt.   : temp = [] execVM "change_weapon.sqf"

  Es ist darauf zu achten, dass für beide Waffen Magazine vorhanden sind!!!
*/

if (isNil "ViennaChangeWeapon") then //Skript Initialisierung beim ersten Aufruf
  {
    TitleText ["Tragen von zwei primaeren Waffen initialisiert! Auswahl im Aktionsmenue!\nBeim Aufnehmen der 2. Waffe muessen Magazine\nfuer die 1. Waffe vorhanden bleiben!","plain down",2];
    ViennaChangeWeapon = 1;

    private ["_Waffe1","_Waffe2""_unit","_AktionID"];
  
    _Waffe1 = "";
    _Waffe2 = "";
    
    //Aktion für Spieler hinzufügen
    _unit = player;
    sleep 1;
    _AktionID = _unit addAction ["Waffenwechsel","change_weapon.sqf",[],1,false,true];
    while {alive _unit} do 
      {
        _WaffeNr = ViennaChangeWeapon;
        waitUntil {! alive player or _WaffeNr != ViennaChangeWeapon}; //Warten auf Waffenwechsel
        if (ViennaChangeWeapon == 2) then
          {
            _Waffe1 = primaryWeapon _unit;          
            _unit removeWeapon _Waffe1;
            sleep 3;
            if (_Waffe2 != "") then
              {
                _unit addWeapon _Waffe2;
                player groupChat "Waffe: 2"
              }
            else
              {
                player groupChat "Keine 2. Waffe vorhanden! Waffe aufnehmen!"
              }
          }      
        else
          {
            _Waffe2 = primaryWeapon _unit;          
            _unit removeWeapon _Waffe2;
            sleep 3;
            if (_Waffe1 != "") then
              {
                _unit addWeapon _Waffe1;
                player groupChat "Waffe: 1"
              }
            else
              {
                player groupChat "Keine 1. Waffe vorhanden! Waffe aufnehmen!"
              }
          };
        sleep 0.1;  
        _unit selectWeapon (primaryWeapon _unit);
        _muzzles = getArray(configFile>>"cfgWeapons" >> primaryWeapon _unit >> "muzzles"); // Fix for weapons with grenade launcher
        _unit selectWeapon (_muzzles select 0);
      };
    _unit removeAction _AktionID;
    ViennaChangeWeapon = NIL
  }
else //bei weiteren Skriptaufrufen
  {
    if (ViennaChangeWeapon == 1) then
      {
        ViennaChangeWeapon = 2
      }
    else
      {
        ViennaChangeWeapon = 1
      }
  }
Das Skript wird über einen Auslöser gestartet. Siehe Info am Beginn des Codes.

Beim Aufnehmen der 2. Waffe ist darauf zu achten, dass für beide Waffen Magazine vorhanden sind.

Für den Waffenwechsel wird automatisch ein Aktionsmenüpunkt erstellt.

Im Anhang eine Beispielmission.
Angehängte Dateien
Dateityp: zip Primaerwaffen_zwei.utes.zip (2,9 KB, 80x aufgerufen)
Vienna ist offline