mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-14 04:02:37 +03:00
Update fn_selfActions.sqf
- Remove plot admin checks for most actions, plot admins should not have access to other actions as the plot management, this will minimize the admin abuse a bit. - Players who built an object within the plot pole are no longer able to remove that building if they got removed from the plot pole. - Only the building owner can upgrade a building without a plot pole. - Static guns are properly handled now.
This commit is contained in:
@@ -13,15 +13,13 @@ local _currentWeapon = currentWeapon player;
|
|||||||
local _magazinesPlayer = magazines player;
|
local _magazinesPlayer = magazines player;
|
||||||
local _onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
|
local _onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
|
||||||
local _canDo = (!r_drag_sqf && !r_player_unconscious && !_onLadder);
|
local _canDo = (!r_drag_sqf && !r_player_unconscious && !_onLadder);
|
||||||
local _uid = getPlayerUID player;
|
local _playerUID = getPlayerUID player;
|
||||||
local _nearLight = nearestObject [player,"LitObject"];
|
local _nearLight = nearestObject [player,"LitObject"];
|
||||||
local _canPickLight = false;
|
local _canPickLight = false;
|
||||||
local _myCharID = player getVariable ["CharacterID","0"];
|
local _myCharID = player getVariable ["CharacterID","0"];
|
||||||
local _vehicleOwnerID = _vehicle getVariable ["CharacterID","0"];
|
local _vehicleOwnerID = _vehicle getVariable ["CharacterID","0"];
|
||||||
local _hasHotwireKit = "ItemHotwireKit" in _magazinesPlayer;
|
local _hasHotwireKit = "ItemHotwireKit" in _magazinesPlayer;
|
||||||
local _isMan = _cursorTarget isKindOf "Man"; //includes animals and zombies
|
local _isMan = _cursorTarget isKindOf "Man"; //includes animals and zombies
|
||||||
local _isZombie = _cursorTarget isKindOf "zZombie_base";
|
|
||||||
local _isBloodsucker = _cursorTarget isKindOf "z_bloodsucker";
|
|
||||||
local _isPZombie = player isKindOf "PZombie_VB";
|
local _isPZombie = player isKindOf "PZombie_VB";
|
||||||
local _isClose = (player distance _cursorTarget < 3);
|
local _isClose = (player distance _cursorTarget < 3);
|
||||||
local _dogHandle = player getVariable ["dogID",0];
|
local _dogHandle = player getVariable ["dogID",0];
|
||||||
@@ -48,13 +46,13 @@ if (_canPickLight && !dayz_hasLight && !_isPZombie) then {
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (s_player_equip_carry < 0) then {
|
if (s_player_equip_carry < 0) then {
|
||||||
if (dayz_onBack != "" && !_inVehicle && !_onLadder && !r_player_unconscious) then {
|
if (dayz_onBack != "" && !_inVehicle && _canDo) then {
|
||||||
dz_plr_carryActionItem = dayz_onBack;
|
dz_plr_carryActionItem = dayz_onBack;
|
||||||
_text = getText (configFile >> "CfgWeapons" >> dz_plr_carryActionItem >> "displayName");
|
_text = getText (configFile >> "CfgWeapons" >> dz_plr_carryActionItem >> "displayName");
|
||||||
s_player_equip_carry = player addAction [format [localize "STR_ACTIONS_WEAPON", _text],"\z\addons\dayz_code\actions\player_switchWeapon_action.sqf",nil, 0.5, false, true];
|
s_player_equip_carry = player addAction [format [localize "STR_ACTIONS_WEAPON", _text],"\z\addons\dayz_code\actions\player_switchWeapon_action.sqf",nil, 0.5, false, true];
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
if (dayz_onBack != dz_plr_carryActionItem || _inVehicle || _onLadder || r_player_unconscious) then {
|
if (dayz_onBack != dz_plr_carryActionItem || _inVehicle || !_canDo) then {
|
||||||
player removeAction s_player_equip_carry;
|
player removeAction s_player_equip_carry;
|
||||||
s_player_equip_carry = -1;
|
s_player_equip_carry = -1;
|
||||||
};
|
};
|
||||||
@@ -99,7 +97,7 @@ if (_inVehicle) then {
|
|||||||
local _temp_keys = _totalKeys select 0;
|
local _temp_keys = _totalKeys select 0;
|
||||||
local _temp_keys_names = _totalKeys select 1;
|
local _temp_keys_names = _totalKeys select 1;
|
||||||
local _hasKey = _vehicleOwnerID in _temp_keys;
|
local _hasKey = _vehicleOwnerID in _temp_keys;
|
||||||
local _oldOwner = (_vehicleOwnerID == _uid);
|
local _oldOwner = (_vehicleOwnerID == _playerUID);
|
||||||
local _unlock = [];
|
local _unlock = [];
|
||||||
|
|
||||||
_text = getText (configFile >> "CfgVehicles" >> (typeOf DZE_myVehicle) >> "displayName");
|
_text = getText (configFile >> "CfgVehicles" >> (typeOf DZE_myVehicle) >> "displayName");
|
||||||
@@ -136,7 +134,7 @@ if (_inVehicle) then {
|
|||||||
|
|
||||||
if (count _doors > 0 && {driver DZE_myVehicle == player}) then {
|
if (count _doors > 0 && {driver DZE_myVehicle == player}) then {
|
||||||
local _hasAccess = [player,_doors select 0] call FNC_check_access;
|
local _hasAccess = [player,_doors select 0] call FNC_check_access;
|
||||||
if (s_player_gdoor_opener_ctrl < 0 && ((_hasAccess select 0) || (_hasAccess select 2) || (_hasAccess select 3) || (_hasAccess select 4))) then {
|
if (s_player_gdoor_opener_ctrl < 0 && ((_hasAccess select 2) || (_hasAccess select 3))) then {
|
||||||
local _door = DZE_myVehicle addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_GDO_GARAGE"],"\z\addons\dayz_code\actions\garageDoorOpener.sqf",_doors select 0, 1, false, true];
|
local _door = DZE_myVehicle addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_GDO_GARAGE"],"\z\addons\dayz_code\actions\garageDoorOpener.sqf",_doors select 0, 1, false, true];
|
||||||
s_player_gdoor_opener set [count s_player_gdoor_opener,_door];
|
s_player_gdoor_opener set [count s_player_gdoor_opener,_door];
|
||||||
s_player_gdoor_opener_ctrl = 1;
|
s_player_gdoor_opener_ctrl = 1;
|
||||||
@@ -225,8 +223,8 @@ if (_isVehicle) then {_distance = floor(player distance _cursorTarget)}; // trun
|
|||||||
local _noChange = ((_cursorTarget == DZE_prevTarget) && (_distance == DZE_prevDistance));
|
local _noChange = ((_cursorTarget == DZE_prevTarget) && (_distance == DZE_prevDistance));
|
||||||
|
|
||||||
if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo && (_distance <= _allowedDistance)) then {
|
if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo && (_distance <= _allowedDistance)) then {
|
||||||
|
local _isPlayer = isPlayer _cursorTarget;
|
||||||
local _isBicycle = _cursorTarget isKindOf "Bicycle";
|
local _isBicycle = _cursorTarget isKindOf "Bicycle";
|
||||||
local _isDestructable = _cursorTarget isKindOf "BuiltItems";
|
|
||||||
local _isGenerator = _typeOfCursorTarget == "Generator_DZ";
|
local _isGenerator = _typeOfCursorTarget == "Generator_DZ";
|
||||||
local _isLocked = locked _cursorTarget;
|
local _isLocked = locked _cursorTarget;
|
||||||
local _isFuel = false;
|
local _isFuel = false;
|
||||||
@@ -242,16 +240,24 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
local _isAlive = alive _cursorTarget;
|
local _isAlive = alive _cursorTarget;
|
||||||
local _text = getText (configFile >> "CfgVehicles" >> _typeOfCursorTarget >> "displayName");
|
local _text = getText (configFile >> "CfgVehicles" >> _typeOfCursorTarget >> "displayName");
|
||||||
local _isPlant = _typeOfCursorTarget in Dayz_plants;
|
local _isPlant = _typeOfCursorTarget in Dayz_plants;
|
||||||
local _istypeTent = (_cursorTarget isKindOf "TentStorage_base") or (_cursorTarget isKindOf "IC_Tent");
|
local _isTent = _typeOfCursorTarget in DZE_Tents;
|
||||||
|
local _istypeTent = _isTent || (_cursorTarget isKindOf "IC_Tent");
|
||||||
local _characterID = _cursorTarget getVariable ["CharacterID","0"];
|
local _characterID = _cursorTarget getVariable ["CharacterID","0"];
|
||||||
local _id = _uid;
|
|
||||||
local _ownerID = _cursorTarget getVariable ["ownerPUID","0"];
|
local _ownerID = _cursorTarget getVariable ["ownerPUID","0"];
|
||||||
|
local _isOwner = _ownerID == _playerUID;
|
||||||
local _hasAccess = [];
|
local _hasAccess = [];
|
||||||
|
local _isAnimal = _cursorTarget isKindOf "Animal";
|
||||||
|
local _isZombie = _cursorTarget isKindOf "zZombie_base";
|
||||||
|
local _isBloodsucker = _cursorTarget isKindOf "z_bloodsucker";
|
||||||
local _isDog = (_cursorTarget isKindOf "Pastor" || _cursorTarget isKindOf "Fin");
|
local _isDog = (_cursorTarget isKindOf "Pastor" || _cursorTarget isKindOf "Fin");
|
||||||
local _isModular = (_cursorTarget isKindOf "ModularItems" || {_typeOfCursorTarget in DZE_modularDoors});
|
local _isModular = (_cursorTarget isKindOf "ModularItems" || {_typeOfCursorTarget in DZE_modularDoors});
|
||||||
local _hasDeconstructAccess = false;
|
local _hasDeconstructAccess = false;
|
||||||
local _player_deleteBuild = false;
|
local _player_deleteBuild = false;
|
||||||
local _player_lockUnlock_crtl = false;
|
local _player_lockUnlock_crtl = false;
|
||||||
|
local _isStash = _typeOfCursorTarget in DZE_Stashes;
|
||||||
|
local _isLockedDoor = _typeOfCursorTarget in DZE_DoorsLocked;
|
||||||
|
local _isStatic = _typeOfCursorTarget in DZE_StaticWeapons;
|
||||||
|
local _isLockedStorage = _typeOfCursorTarget in DZE_LockedStorage;
|
||||||
|
|
||||||
//fuel tanks
|
//fuel tanks
|
||||||
if (_hasEmptyFuelCan) then {
|
if (_hasEmptyFuelCan) then {
|
||||||
@@ -286,8 +292,7 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (_isVehicle && {!_isMan && damage _cursorTarget < 1}) then {
|
if (_isVehicle && {!_isMan && damage _cursorTarget < 1}) then {
|
||||||
|
local _isDisallowRefuel = _isBicycle || _isStatic;
|
||||||
local _isDisallowRefuel = _typeOfCursorTarget in ["M240Nest_DZ","MMT_Civ","MMT_USMC","Old_bike_TK_CIV_EP1","Old_bike_TK_INS_EP1"];
|
|
||||||
//Allow player to fill vehicle 210L
|
//Allow player to fill vehicle 210L
|
||||||
if (_hasBarrel && {fuel _cursorTarget < 1 && !_isDisallowRefuel}) then {
|
if (_hasBarrel && {fuel _cursorTarget < 1 && !_isDisallowRefuel}) then {
|
||||||
if (s_player_fillfuel210 < 0) then {
|
if (s_player_fillfuel210 < 0) then {
|
||||||
@@ -379,19 +384,19 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
|
|
||||||
// Remove Object
|
// Remove Object
|
||||||
if (_isAlive) then {
|
if (_isAlive) then {
|
||||||
local _restrict = _typeOfCursorTarget in DZE_restrictRemoval;
|
local _restrict = _typeOfCursorTarget in DZE_restrictRemoval;
|
||||||
|
|
||||||
// Allow player to remove objects with no ownership or access required
|
// Allow player to remove objects with no ownership or access required
|
||||||
if (!_restrict && (_isDestructable || {_typeOfCursorTarget in DZE_isWreck || {_typeOfCursorTarget in DZE_isWreckBuilding || {_typeOfCursorTarget in DZE_isRemovable}}})) then {
|
if (!_restrict && (_typeOfCursorTarget in DZE_isWreck || {_typeOfCursorTarget in DZE_isWreckBuilding || {_typeOfCursorTarget in DZE_isRemovable}})) then {
|
||||||
if (_hasToolbox && _hasCrowbar) then {
|
if (_hasToolbox && _hasCrowbar) then {
|
||||||
_player_deleteBuild = true;
|
_player_deleteBuild = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
// Allow player to remove objects only if they have proper ownership or access
|
// Allow player to remove objects only if they have proper ownership or access
|
||||||
if (_restrict || _isModular || _isGenerator || {_typeOfCursorTarget in DZE_isDestroyableStorage}) then {
|
if (_restrict || _isModular || _isStatic || {_typeOfCursorTarget in DZE_isDestroyableStorage}) then {
|
||||||
if (_hasToolbox && _hasCrowbar) then {
|
if (_hasToolbox && _hasCrowbar) then {
|
||||||
_hasAccess = [player, _cursorTarget] call FNC_check_access;
|
_hasAccess = [player, _cursorTarget] call FNC_check_access;
|
||||||
if ((_hasAccess select 0) || (_hasAccess select 2) || (_hasAccess select 3)) then {
|
if ((_hasAccess select 2) || (_hasAccess select 3) || (_isStash && (_hasAccess select 0))) then {
|
||||||
_hasDeconstructAccess = true;
|
_hasDeconstructAccess = true;
|
||||||
_player_deleteBuild = true;
|
_player_deleteBuild = true;
|
||||||
};
|
};
|
||||||
@@ -405,7 +410,6 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
};
|
};
|
||||||
if (_player_deleteBuild) then {
|
if (_player_deleteBuild) then {
|
||||||
if (s_player_deleteBuild < 0) then {
|
if (s_player_deleteBuild < 0) then {
|
||||||
|
|
||||||
s_player_deleteBuild = player addAction [format[localize "STR_EPOCH_REMOVE", _text], "\z\addons\dayz_code\actions\remove.sqf",[_cursorTarget, 2, _isModular], -3, false, true];
|
s_player_deleteBuild = player addAction [format[localize "STR_EPOCH_REMOVE", _text], "\z\addons\dayz_code\actions\remove.sqf",[_cursorTarget, 2, _isModular], -3, false, true];
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
@@ -427,7 +431,7 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
};
|
};
|
||||||
|
|
||||||
//remove Own objects
|
//remove Own objects
|
||||||
if (_ownerID == _id) then {
|
if (_isOwner) then {
|
||||||
if (_istypeTent) then {
|
if (_istypeTent) then {
|
||||||
//Packing my tent
|
//Packing my tent
|
||||||
if (s_player_packtent < 0) then {
|
if (s_player_packtent < 0) then {
|
||||||
@@ -492,7 +496,7 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
};
|
};
|
||||||
*/
|
*/
|
||||||
//Repairing Vehicles
|
//Repairing Vehicles
|
||||||
if (_isVehicle && {!_isMan && _hasToolbox && {dayz_myCursorTarget != _cursorTarget} && {damage _cursorTarget < 1} && {_typeOfCursorTarget != "M240Nest_DZ"}}) then {
|
if (_isVehicle && {!_isMan && _hasToolbox && !_isStatic && {dayz_myCursorTarget != _cursorTarget} && {damage _cursorTarget < 1}}) then {
|
||||||
if (s_player_repair_crtl < 0) then {
|
if (s_player_repair_crtl < 0) then {
|
||||||
dayz_myCursorTarget = _cursorTarget;
|
dayz_myCursorTarget = _cursorTarget;
|
||||||
local _menu = dayz_myCursorTarget addAction [localize "str_actions_repairveh", "\z\addons\dayz_code\actions\repair_vehicle.sqf",_cursorTarget, 0, true, false];
|
local _menu = dayz_myCursorTarget addAction [localize "str_actions_repairveh", "\z\addons\dayz_code\actions\repair_vehicle.sqf",_cursorTarget, 0, true, false];
|
||||||
@@ -587,7 +591,7 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
local _hasKey = _characterID in _temp_keys;
|
local _hasKey = _characterID in _temp_keys;
|
||||||
|
|
||||||
if (s_player_lockUnlock_crtl < 0) then {
|
if (s_player_lockUnlock_crtl < 0) then {
|
||||||
local _oldOwner = (_characterID == _uid);
|
local _oldOwner = (_characterID == _playerUID);
|
||||||
local _unlock = [];
|
local _unlock = [];
|
||||||
|
|
||||||
if (_isLocked) then {
|
if (_isLocked) then {
|
||||||
@@ -636,7 +640,7 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
};
|
};
|
||||||
|
|
||||||
// gear access on surrendered player
|
// gear access on surrendered player
|
||||||
if (isPlayer _cursorTarget && _isAlive && {_cursorTarget getVariable ["DZE_Surrendered",false]}) then {
|
if (_isPlayer && _isAlive && {_cursorTarget getVariable ["DZE_Surrendered",false]}) then {
|
||||||
if (s_player_SurrenderedGear < 0) then {
|
if (s_player_SurrenderedGear < 0) then {
|
||||||
s_player_SurrenderedGear = player addAction [localize "STR_UI_GEAR", "\z\addons\dayz_code\actions\surrender_gear.sqf",_cursorTarget, 1, true, true];
|
s_player_SurrenderedGear = player addAction [localize "STR_UI_GEAR", "\z\addons\dayz_code\actions\surrender_gear.sqf",_cursorTarget, 1, true, true];
|
||||||
};
|
};
|
||||||
@@ -646,10 +650,10 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Allow manage door
|
// Allow manage door
|
||||||
if (DZE_doorManagement && {_typeOfCursorTarget in DZE_DoorsLocked}) then {
|
if (DZE_doorManagement && _isLockedDoor) then {
|
||||||
// Check player access
|
// Check player access
|
||||||
_hasAccess = [player, _cursorTarget] call FNC_check_access;
|
_hasAccess = [player, _cursorTarget] call FNC_check_access;
|
||||||
if (s_player_manageDoor < 0 && {(_hasAccess select 0) || {_hasAccess select 2} || {_hasAccess select 3} || {_hasAccess select 4} || {_hasAccess select 5} || {_hasAccess select 6}}) then {
|
if (s_player_manageDoor < 0 && {(_hasAccess select 2) || {_hasAccess select 3} || {_hasAccess select 5} || {_hasAccess select 6}}) then {
|
||||||
s_player_manageDoor = player addAction [format["<t color='#b3e6ff'>%1</t>", localize "STR_EPOCH_ACTIONS_MANAGEDOOR"], "\z\addons\dayz_code\actions\doorManagement\initDoorManagement.sqf", _cursorTarget, 5, false];
|
s_player_manageDoor = player addAction [format["<t color='#b3e6ff'>%1</t>", localize "STR_EPOCH_ACTIONS_MANAGEDOOR"], "\z\addons\dayz_code\actions\doorManagement\initDoorManagement.sqf", _cursorTarget, 5, false];
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
@@ -661,8 +665,8 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
if (_isClose && !keypadCancel && {(_typeOfCursorTarget in (DZE_LockedStorage + DZE_UnLockedStorage)) && {_characterID != "0"}}) then {
|
if (_isClose && !keypadCancel && {(_typeOfCursorTarget in (DZE_LockedStorage + DZE_UnLockedStorage)) && {_characterID != "0"}}) then {
|
||||||
if (s_player_unlockvault < 0) then {
|
if (s_player_unlockvault < 0) then {
|
||||||
local _combi = [];
|
local _combi = [];
|
||||||
if (_typeOfCursorTarget in DZE_LockedStorage) then {
|
if (_isLockedStorage) then {
|
||||||
if ((_characterID == dayz_combination) || {_ownerID == _uid}) then {
|
if ((_characterID == dayz_combination) || _isOwner) then {
|
||||||
_combi = player addAction [format[localize "STR_EPOCH_ACTIONS_OPEN",_text], "\z\addons\dayz_code\actions\vault_unlock.sqf",_cursorTarget, 0, false, true];
|
_combi = player addAction [format[localize "STR_EPOCH_ACTIONS_OPEN",_text], "\z\addons\dayz_code\actions\vault_unlock.sqf",_cursorTarget, 0, false, true];
|
||||||
s_player_combi set [count s_player_combi,_combi];
|
s_player_combi set [count s_player_combi,_combi];
|
||||||
} else {
|
} else {
|
||||||
@@ -671,7 +675,7 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
};
|
};
|
||||||
s_player_unlockvault = 1;
|
s_player_unlockvault = 1;
|
||||||
} else {
|
} else {
|
||||||
if ((_characterID != dayz_combination) && {_ownerID != _uid}) then {
|
if ((_characterID != dayz_combination) && !_isOwner) then {
|
||||||
_combi = player addAction [localize "STR_EPOCH_ACTIONS_RECOMBO", "\z\addons\dayz_code\actions\vault_combination_1.sqf",_cursorTarget, 0, false, true];
|
_combi = player addAction [localize "STR_EPOCH_ACTIONS_RECOMBO", "\z\addons\dayz_code\actions\vault_combination_1.sqf",_cursorTarget, 0, false, true];
|
||||||
s_player_combi set [count s_player_combi,_combi];
|
s_player_combi set [count s_player_combi,_combi];
|
||||||
s_player_unlockvault = 1;
|
s_player_unlockvault = 1;
|
||||||
@@ -684,14 +688,14 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
};
|
};
|
||||||
|
|
||||||
//Allow owner to pack vault
|
//Allow owner to pack vault
|
||||||
if (_isClose && !keypadCancel && {(_typeOfCursorTarget in DZE_UnLockedStorage) && {_characterID != "0"} && {(_characterID == dayz_combination || _ownerID == _uid)}}) then {
|
if (_isClose && !keypadCancel && {(_typeOfCursorTarget in DZE_UnLockedStorage) && {_characterID != "0"} && {(_characterID == dayz_combination || _isOwner)}}) then {
|
||||||
if (s_player_lockvault < 0) then {
|
if (s_player_lockvault < 0) then {
|
||||||
s_player_lockvault = player addAction [format[localize "STR_EPOCH_ACTIONS_LOCK",_text], "\z\addons\dayz_code\actions\vault_lock.sqf",_cursorTarget, 0, false, true];
|
s_player_lockvault = player addAction [format[localize "STR_EPOCH_ACTIONS_LOCK",_text], "\z\addons\dayz_code\actions\vault_lock.sqf",_cursorTarget, 0, false, true];
|
||||||
};
|
};
|
||||||
if (s_player_packvault < 0) then {
|
if (s_player_packvault < 0) then {
|
||||||
s_player_packvault = player addAction [format["<t color='#ff0000'>%1</t>",format[localize "STR_EPOCH_ACTIONS_PACK",_text]], "\z\addons\dayz_code\actions\vault_pack.sqf",_cursorTarget, 0, false, true];
|
s_player_packvault = player addAction [format["<t color='#ff0000'>%1</t>",format[localize "STR_EPOCH_ACTIONS_PACK",_text]], "\z\addons\dayz_code\actions\vault_pack.sqf",_cursorTarget, 0, false, true];
|
||||||
};
|
};
|
||||||
if (s_player_changeVaultCode < 0 && (_characterID == dayz_combination || _ownerID == _uid)) then {
|
if (s_player_changeVaultCode < 0 && (_characterID == dayz_combination || _isOwner)) then {
|
||||||
s_player_changeVaultCode = player addAction [format[localize "STR_CL_CC_CODE_CHANGE",_text], "\z\addons\dayz_code\actions\changeCode.sqf",_cursorTarget, 0, false, true];
|
s_player_changeVaultCode = player addAction [format[localize "STR_CL_CC_CODE_CHANGE",_text], "\z\addons\dayz_code\actions\changeCode.sqf",_cursorTarget, 0, false, true];
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
@@ -753,7 +757,7 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
local _upgrade = getArray (configFile >> "CfgVehicles" >> (typeOf _cursorTarget) >> "upgradeBuilding");
|
local _upgrade = getArray (configFile >> "CfgVehicles" >> (typeOf _cursorTarget) >> "upgradeBuilding");
|
||||||
if ((s_player_upgrade_build < 0) && {(count _upgrade) > 0}) then {
|
if ((s_player_upgrade_build < 0) && {(count _upgrade) > 0}) then {
|
||||||
_hasAccess = [player, _cursorTarget] call FNC_check_access;
|
_hasAccess = [player, _cursorTarget] call FNC_check_access;
|
||||||
if ((_hasAccess select 0) || (_hasAccess select 2) || (_hasAccess select 3) || (_typeOfCursorTarget in DZE_UpgradableStorage) || (_typeOfCursorTarget isKindOf "DZ_storage_base")) then {
|
if ((_hasAccess select 2) || (_hasAccess select 3) || ((_hasAccess select 0) && (_typeOfCursorTarget isKindOf "DZ_storage_base" || _isLockedStorage))) then {
|
||||||
s_player_lastTarget set [0,_cursorTarget];
|
s_player_lastTarget set [0,_cursorTarget];
|
||||||
s_player_upgrade_build = player addAction [format[localize "STR_EPOCH_UPGRADE",_text], "\z\addons\dayz_code\actions\player_upgrade.sqf",_cursorTarget, -1, false, true];
|
s_player_upgrade_build = player addAction [format[localize "STR_EPOCH_UPGRADE",_text], "\z\addons\dayz_code\actions\player_upgrade.sqf",_cursorTarget, -1, false, true];
|
||||||
};
|
};
|
||||||
@@ -765,7 +769,7 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
|
|
||||||
// downgrade system
|
// downgrade system
|
||||||
if (DZE_Lock_Door == _characterID && !keypadCancel) then {
|
if (DZE_Lock_Door == _characterID && !keypadCancel) then {
|
||||||
if (_cursorTarget isKindOf "Land_DZE_WoodDoorLocked_Base" || _cursorTarget isKindOf "CinderWallDoorLocked_DZ_Base") then {
|
if (_isLockedDoor && {!(_typeOfCursorTarget in DZE_LockedGates)}) then {
|
||||||
if ((s_player_lastTarget select 1) != _cursorTarget) then {
|
if ((s_player_lastTarget select 1) != _cursorTarget) then {
|
||||||
if (s_player_downgrade_build > 0) then {
|
if (s_player_downgrade_build > 0) then {
|
||||||
player removeAction s_player_downgrade_build;
|
player removeAction s_player_downgrade_build;
|
||||||
@@ -774,13 +778,13 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
};
|
};
|
||||||
if (s_player_downgrade_build < 0) then {
|
if (s_player_downgrade_build < 0) then {
|
||||||
_hasAccess = [player, _cursorTarget] call FNC_check_access;
|
_hasAccess = [player, _cursorTarget] call FNC_check_access;
|
||||||
if ((_hasAccess select 0) || {_hasAccess select 2} || {_hasAccess select 3}) then {
|
if ((_hasAccess select 2) || {_hasAccess select 3}) then {
|
||||||
s_player_lastTarget set [1,_cursorTarget];
|
s_player_lastTarget set [1,_cursorTarget];
|
||||||
s_player_downgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_REMLOCK",_text], "\z\addons\dayz_code\actions\player_buildingDowngrade.sqf",_cursorTarget, -2, false, true];
|
s_player_downgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_REMLOCK",_text], "\z\addons\dayz_code\actions\player_buildingDowngrade.sqf",_cursorTarget, -2, false, true];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
if (s_player_changeDoorCode < 0 && {_typeOfCursorTarget in DZE_DoorsLocked}) then {
|
if (s_player_changeDoorCode < 0 && _isLockedDoor) then {
|
||||||
s_player_changeDoorCode = player addAction [format[localize "STR_CL_CC_CODE_CHANGE",_text], "\z\addons\dayz_code\actions\changeCode.sqf",_cursorTarget, 0, false, true];
|
s_player_changeDoorCode = player addAction [format[localize "STR_CL_CC_CODE_CHANGE",_text], "\z\addons\dayz_code\actions\changeCode.sqf",_cursorTarget, 0, false, true];
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
@@ -800,7 +804,7 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
};
|
};
|
||||||
if (s_player_maint_build < 0) then {
|
if (s_player_maint_build < 0) then {
|
||||||
_hasAccess = [player, _cursorTarget] call FNC_check_access;
|
_hasAccess = [player, _cursorTarget] call FNC_check_access;
|
||||||
if ((_hasAccess select 0) || {_hasAccess select 2} || {_hasAccess select 3}) then {
|
if ((_hasAccess select 2) || {_hasAccess select 3}) then {
|
||||||
local _text2 = _text + " (" + str(round ((damage _cursorTarget) * 100)) + "% damaged)";
|
local _text2 = _text + " (" + str(round ((damage _cursorTarget) * 100)) + "% damaged)";
|
||||||
s_player_lastTarget set [2,_cursorTarget];
|
s_player_lastTarget set [2,_cursorTarget];
|
||||||
s_player_maint_build = player addAction [format["%1 %2",localize "STR_EPOCH_ACTIONS_MAINTAIN",_text2], "\z\addons\dayz_code\actions\player_buildingMaint.sqf",_cursorTarget, -2, false, true];
|
s_player_maint_build = player addAction [format["%1 %2",localize "STR_EPOCH_ACTIONS_MAINTAIN",_text2], "\z\addons\dayz_code\actions\player_buildingMaint.sqf",_cursorTarget, -2, false, true];
|
||||||
@@ -847,7 +851,7 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!_isAlive && _isMan && !_isZombie && !_isBloodsucker && {!(_cursorTarget isKindOf "Animal")}) then {
|
if (!_isAlive && _isMan && !_isZombie && !_isBloodsucker && !_isAnimal) then {
|
||||||
if (DZE_Take_Clothes) then {
|
if (DZE_Take_Clothes) then {
|
||||||
if (!(_cursorTarget getVariable["clothesTaken",false]) && {_typeOfCursorTarget in AllPlayers} && {!(_typeOfCursorTarget in DZE_Disable_Take_Clothes)}) then {
|
if (!(_cursorTarget getVariable["clothesTaken",false]) && {_typeOfCursorTarget in AllPlayers} && {!(_typeOfCursorTarget in DZE_Disable_Take_Clothes)}) then {
|
||||||
if (s_player_clothes < 0) then {
|
if (s_player_clothes < 0) then {
|
||||||
@@ -890,7 +894,7 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
local _plotCheck = [player, false] call FNC_find_plots;
|
local _plotCheck = [player, false] call FNC_find_plots;
|
||||||
local _isNearPlot = ((_plotCheck select 1) > 0);
|
local _isNearPlot = ((_plotCheck select 1) > 0);
|
||||||
|
|
||||||
if ((_isNearPlot && ((_hasAccess select 0) || (_hasAccess select 2) || (_hasAccess select 3) || (_hasAccess select 4))) || !_isNearPlot) then {
|
if ((_isNearPlot && ((_hasAccess select 2) || (_hasAccess select 3))) || !_isNearPlot) then {
|
||||||
s_garage_dialog = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_VG_VIRTUAL_GARAGE"],"\z\addons\dayz_code\actions\virtualGarage\virtualGarage.sqf",_cursorTarget,3,false,true];
|
s_garage_dialog = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_VG_VIRTUAL_GARAGE"],"\z\addons\dayz_code\actions\virtualGarage\virtualGarage.sqf",_cursorTarget,3,false,true];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -902,7 +906,7 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
|
|
||||||
// ZSC
|
// ZSC
|
||||||
if (Z_singleCurrency) then {
|
if (Z_singleCurrency) then {
|
||||||
if (_isMan && !_isAlive && {(!(_cursorTarget isKindOf "Animal") && !_isZombie && !_isBloodsucker) || (_isZombie && ZSC_ZombieCoins select 0)}) then {
|
if (_isMan && !_isAlive && {(!_isAnimal && !_isZombie && !_isBloodsucker) || (_isZombie && ZSC_ZombieCoins select 0)}) then {
|
||||||
if (s_player_checkWallet < 0) then {
|
if (s_player_checkWallet < 0) then {
|
||||||
s_player_checkWallet = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_ZSC_CHECK_WALLET"],"\z\addons\dayz_code\actions\zsc\checkWallet.sqf",_cursorTarget,0,false,true];
|
s_player_checkWallet = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_ZSC_CHECK_WALLET"],"\z\addons\dayz_code\actions\zsc\checkWallet.sqf",_cursorTarget,0,false,true];
|
||||||
};
|
};
|
||||||
@@ -911,7 +915,7 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
s_player_checkWallet = -1;
|
s_player_checkWallet = -1;
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!_isLocked && {_typeOfCursorTarget in DZE_MoneyStorageClasses} && {!(_typeOfCursorTarget in DZE_LockedStorage)}) then {
|
if (!_isLocked && !_isLockedStorage && {_typeOfCursorTarget in DZE_MoneyStorageClasses}) then {
|
||||||
if (s_bank_dialog < 0) then {
|
if (s_bank_dialog < 0) then {
|
||||||
s_bank_dialog = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_ZSC_ACCESS_BANK"],"\z\addons\dayz_code\actions\zsc\bankDialog.sqf",_cursorTarget,1,true,true];
|
s_bank_dialog = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_ZSC_ACCESS_BANK"],"\z\addons\dayz_code\actions\zsc\bankDialog.sqf",_cursorTarget,1,true,true];
|
||||||
};
|
};
|
||||||
@@ -920,7 +924,7 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
s_bank_dialog = -1;
|
s_bank_dialog = -1;
|
||||||
};
|
};
|
||||||
if (ZSC_VehicleMoneyStorage) then {
|
if (ZSC_VehicleMoneyStorage) then {
|
||||||
if (_isVehicle && !_isMan && !_isLocked && _isAlive && !_isBicycle) then {
|
if (_isVehicle && !_isMan && !_isLocked && _isAlive && !_isBicycle && !_isStatic) then {
|
||||||
if (s_bank_dialog3 < 0) then {
|
if (s_bank_dialog3 < 0) then {
|
||||||
s_bank_dialog3 = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_ZSC_ACCESS_BANK"],"\z\addons\dayz_code\actions\zsc\vehDialog.sqf",_cursorTarget,1,true,true];
|
s_bank_dialog3 = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_ZSC_ACCESS_BANK"],"\z\addons\dayz_code\actions\zsc\vehDialog.sqf",_cursorTarget,1,true,true];
|
||||||
};
|
};
|
||||||
@@ -929,7 +933,7 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
s_bank_dialog3 = -1;
|
s_bank_dialog3 = -1;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
if (_isAlive && {_typeOfCursorTarget in AllPlayers} && {isPlayer _cursorTarget}) then {
|
if (_isAlive && _isPlayer && {_typeOfCursorTarget in AllPlayers}) then {
|
||||||
if (s_givemoney_dialog < 0) then {
|
if (s_givemoney_dialog < 0) then {
|
||||||
s_givemoney_dialog = player addAction [format["<t color='#0059FF'>%1</t>",format [localize "STR_CL_ZSC_TRADE_COINS",CurrencyName,name _cursorTarget]],"\z\addons\dayz_code\actions\zsc\givePlayer.sqf",_cursorTarget,3,true,true];
|
s_givemoney_dialog = player addAction [format["<t color='#0059FF'>%1</t>",format [localize "STR_CL_ZSC_TRADE_COINS",CurrencyName,name _cursorTarget]],"\z\addons\dayz_code\actions\zsc\givePlayer.sqf",_cursorTarget,3,true,true];
|
||||||
};
|
};
|
||||||
@@ -938,7 +942,7 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
s_givemoney_dialog = -1;
|
s_givemoney_dialog = -1;
|
||||||
};
|
};
|
||||||
if (Z_globalBanking) then {
|
if (Z_globalBanking) then {
|
||||||
if (_isMan && {!(isPlayer _cursorTarget)} && {_typeOfCursorTarget in ZSC_bankTraders}) then {
|
if (_isMan && !_isPlayer && {_typeOfCursorTarget in ZSC_bankTraders}) then {
|
||||||
if (s_bank_dialog1 < 0) then {
|
if (s_bank_dialog1 < 0) then {
|
||||||
s_bank_dialog1 = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_ZSC_BANK_TELLER"],"\z\addons\dayz_code\actions\zsc\atmDialog.sqf",_cursorTarget,3,true,true];
|
s_bank_dialog1 = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_ZSC_BANK_TELLER"],"\z\addons\dayz_code\actions\zsc\atmDialog.sqf",_cursorTarget,3,true,true];
|
||||||
};
|
};
|
||||||
@@ -958,7 +962,7 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
};
|
};
|
||||||
|
|
||||||
// All Traders
|
// All Traders
|
||||||
if (_isMan && {!(isPlayer _cursorTarget)} && {_typeOfCursorTarget in serverTraders}) then {
|
if (_isMan && !_isPlayer && {_typeOfCursorTarget in serverTraders}) then {
|
||||||
if (s_player_parts_crtl < 0) then {
|
if (s_player_parts_crtl < 0) then {
|
||||||
local _humanity = player getVariable ["humanity",0];
|
local _humanity = player getVariable ["humanity",0];
|
||||||
local _traderMenu = call compile format["menu_%1;",_typeOfCursorTarget];
|
local _traderMenu = call compile format["menu_%1;",_typeOfCursorTarget];
|
||||||
@@ -1011,7 +1015,7 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
player removeAction s_player_tamedog;
|
player removeAction s_player_tamedog;
|
||||||
s_player_tamedog = -1;
|
s_player_tamedog = -1;
|
||||||
};
|
};
|
||||||
if (_isDog && _isAlive && {_ownerID == _id}) then {
|
if (_isDog && _isAlive && _isOwner) then {
|
||||||
local _hasbottleitem = ({_x in ["ItemWaterBottle","ItemWaterBottleInfected","ItemWaterBottleSafe","ItemWaterBottleBoiled","ItemPlasticWaterBottle","ItemPlasticWaterBottleInfected","ItemPlasticWaterBottleSafe","ItemPlasticWaterBottleBoiled"]} count _magazinesPlayer) > 0;
|
local _hasbottleitem = ({_x in ["ItemWaterBottle","ItemWaterBottleInfected","ItemWaterBottleSafe","ItemWaterBottleBoiled","ItemPlasticWaterBottle","ItemPlasticWaterBottleInfected","ItemPlasticWaterBottleSafe","ItemPlasticWaterBottleBoiled"]} count _magazinesPlayer) > 0;
|
||||||
|
|
||||||
if (s_player_feeddog < 0 && _hasRawMeat) then {
|
if (s_player_feeddog < 0 && _hasRawMeat) then {
|
||||||
@@ -1193,8 +1197,7 @@ if (!isNull _cursorTarget && _noChange && !_inVehicle && !_isPZombie && _canDo &
|
|||||||
if (_dogHandle > 0) then {
|
if (_dogHandle > 0) then {
|
||||||
local _dog = _dogHandle getFSMVariable "_dog";
|
local _dog = _dogHandle getFSMVariable "_dog";
|
||||||
if (isNil "_dog") exitWith {};
|
if (isNil "_dog") exitWith {};
|
||||||
if (isNil "_ownerID") then {_ownerID = "0"};
|
if (_canDo && !_inVehicle && {alive _dog} && {!(_ownerID in [_myCharID,_playerUID])}) then {
|
||||||
if (_canDo && !_inVehicle && {alive _dog} && {!(_ownerID in [_myCharID,_uid])}) then {
|
|
||||||
if (s_player_movedog < 0) then {
|
if (s_player_movedog < 0) then {
|
||||||
s_player_movedog = player addAction [localize "str_actions_movedog", "\z\addons\dayz_code\actions\dog\move.sqf", player getVariable ["dogID",0], 1, false, true];
|
s_player_movedog = player addAction [localize "str_actions_movedog", "\z\addons\dayz_code\actions\dog\move.sqf", player getVariable ["dogID",0], 1, false, true];
|
||||||
};
|
};
|
||||||
@@ -1219,4 +1222,4 @@ if (_dogHandle > 0) then {
|
|||||||
|
|
||||||
DZE_prevTarget = _cursorTarget;
|
DZE_prevTarget = _cursorTarget;
|
||||||
//Monitor
|
//Monitor
|
||||||
player setVariable ["selfActions", diag_ticktime, false];
|
player setVariable ["selfActions", diag_ticktime, false];
|
||||||
Reference in New Issue
Block a user