mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-13 19:52:38 +03:00
71 lines
2.1 KiB
Plaintext
71 lines
2.1 KiB
Plaintext
if (player isKindOf "PZombie_VB") exitWith {};
|
|
/*
|
|
Created exclusively for ArmA2:OA - DayZMod.
|
|
Please request permission to use/alter from R4Z0R49.
|
|
*/
|
|
//private["_holder","_type","_classname","_name"];
|
|
_holder = _this select 0;
|
|
_type = _this select 1;
|
|
_classname = _this select 2;
|
|
|
|
_name = getText (configFile >> _type >> _classname >> "displayName");
|
|
|
|
pickupInit = true;
|
|
|
|
actionMonitor = {
|
|
private["_action","_run","_timeout"];
|
|
_holder = _this select 0;
|
|
_type = _this select 1;
|
|
_classname = _this select 2;
|
|
_name = _this select 3;
|
|
|
|
_action = -1;
|
|
_distance = player distance _holder;
|
|
_run = true;
|
|
_timeout = 2;
|
|
|
|
//diag_log format["Holder: %1, Type: %2 Classname: %3, Name: %4",_holder, _type, _classname, _name];
|
|
|
|
while { _run } do {
|
|
if (alive _holder) then {
|
|
_distance = player distance _holder;
|
|
// Add action to player
|
|
if ((_distance < 1.75) && (_action == -1)) then {
|
|
_action = player addAction [format[(localize "str_init_take"),_name], "\z\addons\dayz_code\actions\object_pickup.sqf",[_type,_classname,_holder], 20, true, true];
|
|
player reveal _holder;
|
|
_timeout = 0.3;
|
|
};
|
|
// Remove action from player
|
|
if ((_distance >= 1.75) && (_action != -1)) then {
|
|
player removeAction _action;
|
|
pickupInit = true;
|
|
_action = -1;
|
|
_timeout = 2;
|
|
};
|
|
// Stop the loop and fall back to old code
|
|
if (_distance > 100) then {
|
|
null = _holder addAction [format[(localize "str_init_take"),_name], "\z\addons\dayz_code\actions\object_pickup.sqf",[_type,_classname,_holder], 20, true, true];
|
|
player reveal _holder;
|
|
_run = false;
|
|
_timeout = 0;
|
|
};
|
|
} else {
|
|
if (_action != -1) then {
|
|
player removeAction _action;
|
|
_action = -1;
|
|
pickupInit = true;
|
|
};
|
|
_timeout = 0;
|
|
_run = false;
|
|
};
|
|
uiSleep _timeout;
|
|
};
|
|
};
|
|
|
|
if (_classname == "1Rnd_Arrow_Wood") then {
|
|
[_holder,_type,_classname,_name] spawn actionMonitor;
|
|
} else {
|
|
s_player_holderPickup = _holder addAction [format[(localize "str_init_take"),_name], "\z\addons\dayz_code\actions\object_pickup.sqf",[_type,_classname,_holder], 20, true, true];
|
|
player reveal _holder;
|
|
pickupInit = true;
|
|
}; |