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.