hi
me again
having problems using a tracker script in mp ..
it works fine however there is a problem ..
if another player gets close to the player unit with the tracker the other player also gets an option to activate it
LCD/lojack tracker.sqf
private ["_exit","_tracker","_dir","_degree","_difference","_adjusteddiff","_beepfreq","_dis","_sound"];
_exit = false;
_dead = false;
if ("init" in _this) then
{
LCD_trackswitch = false;
LCD_lojack_tar = _this select 0;
LCD_lojack_act = (_this select 1) addaction ["Turn tracker on","LCD_lojack.sqf"];
_exit = true;
};
if (_exit) exitwith {};
if (count _this == 4) then
{
if (LCD_trackswitch) exitwith
{
LCD_trackswitch = false;
(_this select 0) removeaction LCD_lojack_act;
LCD_lojack_act = (_this select 0) addaction ["Turn tracker on","LCD_lojack.sqf"];
};
if (! LCD_trackswitch) then
{
LCD_trackswitch = true;
_tracker = _this select 0;
_tracker removeaction LCD_lojack_act;
LCD_lojack_act = (_this select 0) addaction ["Turn tracker off","LCD_lojack.sqf"];
while {LCD_trackswitch} do
{
_dir = getdir (vehicle _tracker);
_degree = ((getpos LCD_lojack_tar select 0) - (getpos _tracker select 0)) atan2 ((getpos LCD_lojack_tar select 1) - (getpos _tracker select 1));
if (_degree < 0) then {_degree = _degree + 360};
_difference = _degree - _dir;
if (_difference > 180) then {_difference = _difference - 360};
if (_difference < -180) then {_difference = _difference + 360};
_adjusteddiff = (abs _difference);
_beepfreq = ((_adjusteddiff / 50) + 0.1);
_dis = _tracker distance LCD_lojack_tar;
_sound = "beep";
if (_dis < 4000) then {_sound = "beep2"};
if (_dis < 3000) then {_sound = "beep3"};
if (_dis < 2000) then {_sound = "beep4"};
if (_dis < 1250) then {_sound = "beep5"};
if (_dis < 750) then {_sound = "beep6"};
if (_dis < 500) then {_sound = "beep7"};
if (_dis < 250) then {_sound = "beep8"};
playsound _sound;
sleep _beepfreq;
//modified by norrin
if (!alive player) exitWith {LCD_trackswitch = false; _dead = true};
};
};
};
if ("off" in _this) then
{
(_this select 0) removeaction LCD_lojack_act;
LCD_trackswitch = false;
};
//modified by norrin
if (_dead) then
{
(_this select 0) removeaction LCD_lojack_act;
waitUntil {alive player};
[] exec"online.sqs";
};
if (true) exitwith{};
executed by
bla = [tracked,tracker,"init"] execVM "LCD_lojack.sqf"
many thanks ...