Bei Entfernung des Spielers ab 2 Meter zu einer beliegigen Mine bekommt er eine Anzeige zum Sprengen der Mine.
Erforderlich sind diese beiden Skripte:
MinenSprengen_1.sqf
Code:
//Minen sprengen. Local nur für Spieler [Vienna 06.04.2011]
//
//Einmaliger Aufruf: temp = execVM "MinenSprengen_1.sqf"
//
//Benötigt Skript MinenSprengen_2.sqf
if (! local player) exitWith {};
private ["_mine","_playerID","_aktionID"];
while {true} do
{
//Abfrage ob Player unter 2 Meter von einer Mine entfernt ist
_mine = position player nearObjects ["Mine",2];
if (count _mine > 0) then
{
_playerID = player;
_mine = _mine select 0;
//Aktionsmenüpunkt zum Entfernen der Mine setzen
_aktionID = player addAction ["Mine sprengen","MinenSprengen_2.sqf",[_mine],10,true,false];
waitUntil {!alive player or player distance _mine > 2};
//Aktion entfernen
_playerID removeAction _aktionID
};
sleep 0.5
}
MinenSprengen_2.sqf
Code:
//Zum Skript MinenSprengen_1.sqf [Vienna 06.04.2011]
//
//Sprengung der Mine in _sekunden
private ["_mine","_sekunden","_takt","_bombe"];
//eigene Übergabeparameter auslesen
_mine = (_this select 3)select 0;
//Zeit bis zur Explosion
_sekunden = 10;
//Takt des Warnhinweises
_takt = 2;
//Aktion entfernen
(_this select 1) removeAction (_this select 2);
//Warteschleife bis Explosion
for [{_sekunden},{_sekunden > 0},{_sekunden = _sekunden-_takt}] do
{
player groupChat format["---> In %1 Sekunden wird die Mine gesprengt! <---",_sekunden];
sleep _takt
};
player groupChat "---> Sprengung! <---";
//Bombe an Minenposition auslösen. Stärkere Bombe: "R_SMAW_HEDP"
_bombe = "Sh_120_HE" createVehicle position _mine;
//Mine entfernen
deleteVehicle _mine
Im Anhang eine Beispielmission.