mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-14 20:13:13 +03:00
It makes no sense to rename the identical DayZ PVs to have an E in their name. I don't see any good reason it was done in the first place. All it accomplishes is breaking script compatibility between the two mods and requiring different publicvariable.txt filters. The only time it makes sense is for custom Epoch variables that aren't used in vanilla. All admins have to do to update custom scripts is swap the names according to the change log. Note I've submitted a pull request to replace PVDZ_veh_Save with PVDZ_obj_Save in official too because they are duplicates.
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 == "WoodenArrow") 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;
|
|
}; |