Einzelnen Beitrag anzeigen
Alt 14.09.2014, 14:54   #5 (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

Wenn es keine Fahne sein darf, dann versuche einmal das folgende Skript. Es sollte dafür ein im Editor erstellter Laptop reichen. Er kann ja mehrmals verwendet werden. Erforderlichen Falls den Laptop auf unzerstörbar setzen: https://community.bistudio.com/wiki/allowDamage

Es bedarf keiner publiken Variablen. Das Verhindern des Aufnehmens durch mehrere Spieler erfolgt durch den Befehl: https://community.bistudio.com/wiki/attachedTo

Anleitung zur Anwendung siehe im Kopf des Skripts.

Laptop1Attach.sqf
Code:
// Skript: "Laptop1Attach.sqf", zum Aufnehmen und Ablegen eines Objekts. [Vienna 14.08.2014]
// MP-tauglich. Läuft auf Arma3 ab V1.14, wegen Befehl attachedTo! 
//
// Laptop im Editor erstellen und folgende Aktion die Initzeile des Laptops kopieren:
//
// this addAction["---> Laptop aufnehmen","Laptop1Attach.sqf",[this,true], 1,true,false];

private ["_laptop","_aufnehmen","_aktionID"];

_laptop    = (_this select 3)select 0;
_aufnehmen = (_this select 3)select 1;

//Globale Variable erstellen. Status: Laptop aufgenommen = true, sonst false
if (isNil "Laptop1attached") then {Laptop1attached = false};

if (_aufnehmen) then //Aktionswahl aufnehmen
 {
  //Skript beenden wenn Laptop bereits aufgenommen!
  if (!isNull attachedTo _laptop) exitwith
   {
    if (Laptop1attached)
    then {player groupChat "---> Ich trage den Laptop bereits!"}
    else {player groupChat "---> Der Soldat gibt den Laptop nicht her!"}
   };
  //Laptop aufnehmen
  _laptop attachTo [player, [-0.25, -0.04, 0], "pelvis"];
  _laptop setVectorDirAndUp [[0.1,1,0],[-1,0,0.2]];
  player groupChat "---> Der Laptop wurde aufgenommen!";
  Laptop1attached = true;
  //Aktion zum Ablegen des Laptop dem Spieler hinzufügen
  _aktionID = player addAction["---> Laptop ablegen",  "Laptop1Attach.sqf",[_laptop,false],1,false,true];
  //Skript wartent bis Spieler tot oder er Ablegen befiehlt
  waitUntil {sleep 0.5; !alive player or !Laptop1attached};
  //Laptop ablegen
  detach _laptop;
  Laptop1attached = false;
  player removeAction _aktionID;
  player groupChat "---> Der Laptop wurde abgelegt!"
 }
else  //Aktionswahl ablegen
 {
  if (Laptop1attached)
  then {Laptop1attached = false}
  else {player groupChat "---> Ich habe keinen Laptop zum Ablegen!"}
 }
//Skript Ende
Ich konnte das Skript mangels Arma3 nicht mit dem hier verwendeten attachedTo testen. Es sollte aber damit laufen.
Vienna ist offline