diff --git a/CHANGE LOG 1.0.6.txt b/CHANGE LOG 1.0.6.txt index 09d800201..e1d495def 100644 --- a/CHANGE LOG 1.0.6.txt +++ b/CHANGE LOG 1.0.6.txt @@ -1,4 +1,4 @@ -[NEW] Rebased everything on DayZ Mod 1.8.7 code @icomrade @ebaydayz +[NEW] Fully updated to DayZ 1.8.7 code base @icomrade @ebaydayz - Blood types system is disabled by default. Set DZE_UseBloodTypes = true; in init.sqf to enable - New loot table format is incompatible with old loot tables. See CfgLoot\README - ItemFish, Shotgun ammo and several other item classnames changed. See SQL\1.0.6_Updates diff --git a/SQF/dayz_code/compile/fn_gearMenuChecks.sqf b/SQF/dayz_code/compile/fn_gearMenuChecks.sqf index ab36609ba..afc0975e7 100644 --- a/SQF/dayz_code/compile/fn_gearMenuChecks.sqf +++ b/SQF/dayz_code/compile/fn_gearMenuChecks.sqf @@ -15,7 +15,7 @@ if ((vehicle player) == player) then { if (DZE_BackpackAntiTheft) then { _friendlies = player getVariable ["friendlies",[]]; _rcharID = _cTarget getVariable ["CharacterID","0"]; - if ((!canbuild) && {_cTarget isKindOf "Man"} && {alive _cTarget} && {!((typeOf _cTarget) in serverTraders)} && {!(_rcharID in _friendlies)} && {(player distance _cTarget) < 12}) then { + if (!canbuild && {_cTarget isKindOf "Man"} && {alive _cTarget} && {!((typeOf _cTarget) in serverTraders)} && {!(_rcharID in _friendlies)} && {(player distance _cTarget) < 12}) then { cutText [(localize "STR_EPOCH_PLAYER_316"),"PLAIN DOWN"]; _display closeDisplay 1; }; diff --git a/SQF/dayz_code/compile/fn_selfActions.sqf b/SQF/dayz_code/compile/fn_selfActions.sqf index 35165a0a5..602d61914 100644 --- a/SQF/dayz_code/compile/fn_selfActions.sqf +++ b/SQF/dayz_code/compile/fn_selfActions.sqf @@ -4,20 +4,26 @@ scriptName "Functions\misc\fn_selfActions.sqf"; - Function - [] call fnc_usec_selfActions; ************************************************************/ -private ["_isWreckBuilding","_temp_keys","_magazinesPlayer","_isPZombie","_vehicle","_inVehicle","_hasFuelE","_hasRawMeat","_hasKnife","_hasToolbox","_onLadder","_nearLight","_canPickLight","_canDo","_text","_isHarvested","_isVehicle","_isVehicletype","_isMan","_traderType","_ownerID","_isAnimal","_isDog","_isZombie","_isDestructable","_isTent","_isFuel","_isAlive","_Unlock","_lock","_buy","_dogHandle","_lieDown","_warn","_hastinitem","_allowedDistance","_menu","_menu1","_humanity_logic","_low_high","_cancel","_metals_trader","_traderMenu","_isWreck","_isRemovable","_isDisallowRepair","_rawmeat","_humanity","_speed","_dog","_hasbottleitem","_isAir","_isShip","_playersNear","_findNearestGens","_findNearestGen","_IsNearRunningGen","_cursorTarget","_isnewstorage","_itemsPlayer","_typeOfCursorTarget","_hasKey","_oldOwner","_combi","_player_deleteBuild","_player_flipveh","_player_lockUnlock_crtl","_player_butcher","_player_studybody","_player_cook","_player_boil","_hasFuelBarrelE","_hasHotwireKit","_player_SurrenderedGear","_isSurrendered","_isModular","_isModularDoor","_temp_keys_names","_hasAttached","_allowTow","_liftHeli","_found","_posL","_posC","_height","_liftHelis","_attached","_vehicleOwnerID","_totalKeys"]; - -if (DZE_ActionInProgress) exitWith {}; // Do not allow if any script is running. +if (DZE_ActionInProgress) exitWith {}; +private ["_temp_keys","_magazinesPlayer","_isPZombie","_vehicle","_inVehicle","_hasRawMeat","_hasToolbox","_onLadder","_nearLight","_canPickLight","_canDo","_text","_isHarvested","_isVehicle","_isVehicletype","_isMan","_ownerID","_isAnimal","_isDog","_isZombie","_isDestructable","_isFuel","_isAlive","_unlock","_lock","_buy","_dogHandle","_warn","_hastinitem","_allowedDistance","_menu","_menu1","_humanity_logic","_low_high","_cancel","_traderMenu","_humanity","_speed","_dog","_hasbottleitem","_findNearestGen","_cursorTarget","_itemsPlayer","_typeOfCursorTarget","_hasKey","_oldOwner","_combi","_player_deleteBuild","_player_lockUnlock_crtl","_hasHotwireKit","_isModular","_isModularDoor","_temp_keys_names","_hasAttached","_allowTow","_liftHeli","_found","_posL","_posC","_height","_attached","_vehicleOwnerID","_totalKeys","_hasBarrel","_isDisallowRefuel"]; _vehicle = vehicle player; -_vehicleOwnerID = _vehicle getVariable ["CharacterID","0"]; -_isPZombie = player isKindOf "PZombie_VB"; _inVehicle = (_vehicle != player); - -_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1; +_cursorTarget = cursorTarget; +_primaryWeapon = primaryWeapon player; +_currentWeapon = currentWeapon player; +_magazinesPlayer = magazines player; +_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1; _canDo = (!r_drag_sqf && !r_player_unconscious && !_onLadder); +//_canDrink = count nearestObjects [getPosATL player, ["Land_pumpa","Land_water_tank"], 2] > 0; -_nearLight = nearestObject [player,"LitObject"]; +_nearLight = nearestObject [player,"LitObject"]; _canPickLight = false; +_vehicleOwnerID = _vehicle getVariable ["CharacterID","0"]; +_hasHotwireKit = "ItemHotwireKit" in _magazinesPlayer; +_isPZombie = player isKindOf "PZombie_VB"; +_dogHandle = player getVariable ["dogID",0]; + if (!isNull _nearLight) then { if (_nearLight distance player < 4) then { _canPickLight = isNull (_nearLight getVariable ["owner",objNull]); @@ -38,10 +44,8 @@ if (_canPickLight && !dayz_hasLight && !_isPZombie) then { s_player_removeflare = -1; }; -if (s_player_equip_carry < 0) then -{ - if (dayz_onBack != "" && { !_inVehicle && { !_onLadder && { !r_player_unconscious } } }) then - { +if (s_player_equip_carry < 0) then { + if (dayz_onBack != "" && { !_inVehicle && { !_onLadder && { !r_player_unconscious } } }) then { dz_plr_carryActionItem = dayz_onBack; _text = getText (configFile >> "CfgWeapons" >> dz_plr_carryActionItem >> "displayName"); s_player_equip_carry = player addAction [ @@ -49,16 +53,66 @@ if (s_player_equip_carry < 0) then "\z\addons\dayz_code\actions\player_switchWeapon_action.sqf", nil, 0.5, false, true]; }; -} -else -{ - if (dayz_onBack != dz_plr_carryActionItem || { _inVehicle || { _onLadder || { r_player_unconscious } } } ) then - { +} else { + if (dayz_onBack != dz_plr_carryActionItem || { _inVehicle || { _onLadder || { r_player_unconscious } } } ) then { player removeAction s_player_equip_carry; s_player_equip_carry = -1; }; }; +/*if (dayz_onBack != "" /*&& !dayz_onBackActive && !_inVehicle && !_onLadder && !r_player_unconscious) then { + if (s_player_equip_carry < 0) then { + _text = getText (configFile >> "CfgWeapons" >> dayz_onBack >> "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]; + }; +} else { + player removeAction s_player_equip_carry; + s_player_equip_carry = -1; +};*/ + +//fishing +if ((_currentWeapon in Dayz_fishingItems) && {!dayz_fishingInprogress} && {!_inVehicle} && {!dayz_isSwimming}) then { + if (s_player_fishing < 0) then { + s_player_fishing = player addAction [localize "STR_ACTION_CAST", "\z\addons\dayz_code\actions\player_goFishing.sqf",player, 0.5, false, true]; + }; +} else { + player removeAction s_player_fishing; + s_player_fishing = -1; +}; +if ((_primaryWeapon in Dayz_fishingItems) && {!dayz_fishingInprogress} && {_inVehicle && (driver _vehicle != player)}) then { + if (s_player_fishing_veh < 0) then { + s_player_fishing_veh = _vehicle addAction [localize "STR_ACTION_CAST", "\z\addons\dayz_code\actions\player_goFishing.sqf",_vehicle, 0.5, false, true]; + }; +} else { + _vehicle removeAction s_player_fishing_veh; + s_player_fishing_veh = -1; +}; + +_canDoThis=false; +if (_canDo && !_inVehicle && !dayz_isSwimming) then { + { + _waterHoles = if (typeOf _x == "waterHoleProxy") then {nearestObjects [_x, [], 1];} else {[_x];}; + { + _w2m = _x worldToModel (getPosATL player); + _bb = (boundingbox _x) select 1; + _dir = [player, _x] call BIS_fnc_relativeDirTo; if (_dir > 180) then {_dir = _dir - 360}; + if (((abs _dir < 45) && {(_x distance player < 2.22)}) // wells, kasna, pumpa + or {((("" == typeOf _x) && ((_w2m select 2) < 0.05)) && {((abs(_w2m select 0) < (_bb select 0)) && (abs(_w2m select 1) < (_bb select 1)))})}) exitWith { // ponds + _canDoThis = true; + }; + } count _waterHoles; + if (_canDoThis) exitWith { + if (s_player_Drinkfromhands < 0) then { + s_player_Drinkfromhands = player addAction [localize "str_player_31_drink", "\z\addons\dayz_code\actions\player_drinkWater.sqf",player, 0.5, false, true]; + }; + }; + } foreach nearestObjects [player, ["waterHoleProxy", "Land_pumpa"], 50]; +}; +if (!_canDoThis && s_player_Drinkfromhands >= 0) then { + player removeAction s_player_Drinkfromhands; + s_player_Drinkfromhands = -1; +}; + if (_inVehicle && {_vehicleOwnerID != "0"} && {!(_vehicle isKindOf "Bicycle")}) then { if (s_player_lockUnlockInside_ctrl < 0) then { DZE_myVehicle = _vehicle; @@ -70,16 +124,16 @@ if (_inVehicle && {_vehicleOwnerID != "0"} && {!(_vehicle isKindOf "Bicycle")}) _text = getText (configFile >> "CfgVehicles" >> (typeOf DZE_myVehicle) >> "displayName"); if (locked DZE_myVehicle) then { if (_hasKey || _oldOwner) then { - _Unlock = DZE_myVehicle addAction [format[localize "STR_EPOCH_ACTIONS_UNLOCK",_text], "\z\addons\dayz_code\actions\unlock_veh.sqf",[DZE_myVehicle,(_temp_keys_names select (parseNumber _vehicleOwnerID))], 2, true, true]; - s_player_lockUnlockInside set [count s_player_lockUnlockInside,_Unlock]; + _unlock = DZE_myVehicle addAction [format[localize "STR_EPOCH_ACTIONS_UNLOCK",_text], "\z\addons\dayz_code\actions\unlock_veh.sqf",[DZE_myVehicle,(_temp_keys_names select (parseNumber _vehicleOwnerID))], 2, true, true]; + s_player_lockUnlockInside set [count s_player_lockUnlockInside,_unlock]; s_player_lockUnlockInside_ctrl = 1; } else { if (_hasHotwireKit) then { - _Unlock = DZE_myVehicle addAction [format[localize "STR_EPOCH_ACTIONS_HOTWIRE",_text], "\z\addons\dayz_code\actions\hotwire_veh.sqf",DZE_myVehicle, 2, true, true]; + _unlock = DZE_myVehicle addAction [format[localize "STR_EPOCH_ACTIONS_HOTWIRE",_text], "\z\addons\dayz_code\actions\hotwire_veh.sqf",DZE_myVehicle, 2, true, true]; } else { - _Unlock = DZE_myVehicle addAction [format["%1",localize "STR_EPOCH_ACTIONS_VEHLOCKED"], "",DZE_myVehicle, 2, true, true]; + _unlock = DZE_myVehicle addAction [format["%1",localize "STR_EPOCH_ACTIONS_VEHLOCKED"], "",DZE_myVehicle, 2, true, true]; }; - s_player_lockUnlockInside set [count s_player_lockUnlockInside,_Unlock]; + s_player_lockUnlockInside set [count s_player_lockUnlockInside,_unlock]; s_player_lockUnlockInside_ctrl = 1; }; } else { @@ -99,7 +153,7 @@ if (_inVehicle && {_vehicleOwnerID != "0"} && {!(_vehicle isKindOf "Bicycle")}) if (DZE_HeliLift) then { _hasAttached = _vehicle getVariable["hasAttached",false]; - if(_inVehicle && (_vehicle isKindOf "Air") && ((([_vehicle] call FNC_getPos) select 2) < 30) && (speed _vehicle < 5) && (typeName _hasAttached == "OBJECT")) then { + if (_inVehicle && {_vehicle isKindOf "Air"} && {(([_vehicle] call FNC_getPos) select 2) < 30} && {speed _vehicle < 5} && {typeName _hasAttached == "OBJECT"}) then { if (s_player_heli_detach < 0) then { dayz_myLiftVehicle = _vehicle; s_player_heli_detach = dayz_myLiftVehicle addAction ["Detach Vehicle","\z\addons\dayz_code\actions\player_heliDetach.sqf",[dayz_myLiftVehicle,_hasAttached],2,false,true]; @@ -110,8 +164,8 @@ if (DZE_HeliLift) then { }; }; -if(DZE_HaloJump) then { - if(_inVehicle && (_vehicle isKindOf "Air") && ((([_vehicle] call FNC_getPos) select 2) > 400)) then { +if (DZE_HaloJump) then { + if (_inVehicle && {_vehicle isKindOf "Air"} && {(([_vehicle] call FNC_getPos) select 2) > 400}) then { if (s_halo_action < 0) then { DZE_myHaloVehicle = _vehicle; s_halo_action = DZE_myHaloVehicle addAction [localize "STR_EPOCH_ACTIONS_HALO","\z\addons\dayz_code\actions\halo_jump.sqf",[],2,false,true]; @@ -134,7 +188,7 @@ if (!DZE_ForceNameTagsOff) then { }; }; -if(_isPZombie) then { +if (_isPZombie) then { if (s_player_callzombies < 0) then { s_player_callzombies = player addAction [localize "STR_EPOCH_ACTIONS_RAISEHORDE", "\z\addons\dayz_code\actions\call_zombies.sqf",player, 5, true, false]; }; @@ -145,13 +199,13 @@ if(_isPZombie) then { if (s_player_pzombiesvision < 0) then { s_player_pzombiesvision = player addAction [localize "STR_EPOCH_ACTIONS_NIGHTVIS", "\z\addons\dayz_code\actions\pzombie\pz_vision.sqf", [], 4, false, true, "nightVision", "_this == _target"]; }; - if (!isNull cursorTarget && (player distance cursorTarget < 3)) then { //Has some kind of target - _isAnimal = cursorTarget isKindOf "Animal"; - _isZombie = cursorTarget isKindOf "zZombie_base"; - _isHarvested = cursorTarget getVariable["meatHarvested",false]; - _isMan = cursorTarget isKindOf "Man"; - // Pzombie Gut human corpse || animal - if (!alive cursorTarget && (_isAnimal || _isMan) && !_isZombie && !_isHarvested) then { + if (!isNull _cursorTarget && (player distance _cursorTarget < 3)) then { + _isAnimal = _cursorTarget isKindOf "Animal"; + _isZombie = _cursorTarget isKindOf "zZombie_base"; + _isHarvested = _cursorTarget getVariable["meatHarvested",false]; + _isMan = _cursorTarget isKindOf "Man"; + // Pzombie Gut human corpse or animal + if (!alive _cursorTarget && (_isAnimal || _isMan) && !_isZombie && !_isHarvested) then { if (s_player_pzombiesfeed < 0) then { s_player_pzombiesfeed = player addAction [localize "STR_EPOCH_ACTIONS_FEED", "\z\addons\dayz_code\actions\pzombie\pz_feed.sqf",cursorTarget, 3, true, false]; }; @@ -165,145 +219,208 @@ if(_isPZombie) then { }; }; -// Increase distance only if AIR || SHIP -_allowedDistance = 4; -_isAir = cursorTarget isKindOf "Air"; -_isShip = cursorTarget isKindOf "Ship"; -if(_isAir || _isShip) then { - _allowedDistance = 8; -}; +// Increase distance only if AIR or SHIP +_allowedDistance = if ((_cursorTarget isKindOf "Air") or (_cursorTarget isKindOf "Ship")) then {8} else {4}; -if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance cursorTarget < _allowedDistance) && _canDo) then { //Has some kind of target - - // set cursortarget to variable - _cursorTarget = cursorTarget; - - // get typeof cursortarget once +if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cursorTarget < _allowedDistance) && _canDo) then { +//Has some kind of target _typeOfCursorTarget = typeOf _cursorTarget; - - // hintsilent _typeOfCursorTarget; - _isVehicle = _cursorTarget isKindOf "AllVehicles"; - _isVehicletype = _typeOfCursorTarget in ["ATV_US_EP1","ATV_CZ_EP1"]; - _isnewstorage = _typeOfCursorTarget in DZE_isNewStorage; - - // get items && magazines only once - _magazinesPlayer = magazines player; - - //boiled Water - _hasbottleitem = "ItemWaterbottle" in _magazinesPlayer; - _hastinitem = false; - { - if (_x in _magazinesPlayer) then { - _hastinitem = true; - }; - } count boil_tin_cans; - _hasFuelE = "ItemJerrycanEmpty" in _magazinesPlayer; - _hasFuelBarrelE = "ItemFuelBarrelEmpty" in _magazinesPlayer; - _hasHotwireKit = "ItemHotwireKit" in _magazinesPlayer; - - _itemsPlayer = items player; - _hasKnife = "ItemKnife" in _itemsPlayer; - _hasToolbox = "ItemToolbox" in _itemsPlayer; - + _isBicycle = _cursorTarget isKindOf "Bicycle"; _isMan = _cursorTarget isKindOf "Man"; - _traderType = _typeOfCursorTarget; - _ownerID = _cursorTarget getVariable ["CharacterID","0"]; _isAnimal = _cursorTarget isKindOf "Animal"; - _isDog = (_cursorTarget isKindOf "DZ_Pastor" || _cursorTarget isKindOf "DZ_Fin"); _isZombie = _cursorTarget isKindOf "zZombie_base"; _isDestructable = _cursorTarget isKindOf "BuiltItems"; - _isWreck = _typeOfCursorTarget in DZE_isWreck; - _isWreckBuilding = _typeOfCursorTarget in DZE_isWreckBuilding; + _isHarvested = _cursorTarget getVariable["meatHarvested",false]; + _isGenerator = _cursorTarget isKindOf "Generator_DZ"; + _ownerID = _cursorTarget getVariable ["characterID","0"]; + _isVehicletype = _typeOfCursorTarget in ["ATV_US_EP1","ATV_CZ_EP1"]; + _isFuel = false; + _hasBarrel = "ItemFuelBarrel" in _magazinesPlayer; + _hasFuel20 = "ItemJerrycan" in _magazinesPlayer; + _hasFuel5 = "ItemFuelcan" in _magazinesPlayer; + _hasEmptyFuelCan = (("ItemJerrycanEmpty" in _magazinesPlayer) || ("ItemFuelcanEmpty" in _magazinesPlayer) || ("ItemFuelBarrelEmpty" in _magazinesPlayer)); + _itemsPlayer = items player; + _hasToolbox = "ItemToolbox" in _itemsPlayer; + _hasbottleitem = (("ItemWaterBottle" in _magazinesPlayer) || ("ItemWaterBottleInfected" in _magazinesPlayer) || ("ItemWaterBottleSafe" in _magazinesPlayer)); + _isAlive = alive _cursorTarget; + _text = getText (configFile >> "CfgVehicles" >> _typeOfCursorTarget >> "displayName"); + _isPlant = _typeOfCursorTarget in Dayz_plants; + _istypeTent = (_cursorTarget isKindOf "TentStorage_base") or (_cursorTarget isKindOf "IC_Tent"); + _upgradeItems = ["TentStorage","TentStorage0","TentStorage1","TentStorage2","TentStorage3","StashSmall","StashSmall1","StashSmall2","StashSmall3","StashSmall4","StashMedium","StashMedium1","StashMedium2","StashMedium3","DomeTentStorage","DomeTentStorage0","DomeTentStorage1","DomeTentStorage2","DomeTentStorage3","DomeTentStorage4"]; + _isCampSite = _cursorTarget isKindOf "IC_Fireplace1"; + + _isDisallowRefuel = _typeOfCursorTarget in ["M240Nest_DZ","MMT_Civ","MMT_USMC","Old_bike_TK_CIV_EP1","Old_bike_TK_INS_EP1"]; + _isDog = (_cursorTarget isKindOf "DZ_Pastor" || _cursorTarget isKindOf "DZ_Fin"); _isModular = _cursorTarget isKindOf "ModularItems"; _isModularDoor = _typeOfCursorTarget in ["Land_DZE_WoodDoor","Land_DZE_LargeWoodDoor","Land_DZE_GarageWoodDoor","CinderWallDoor_DZ","CinderWallDoorSmall_DZ"]; - - _isRemovable = _typeOfCursorTarget in DZE_isRemovable; - _isDisallowRepair = _typeOfCursorTarget in ["M240Nest_DZ"]; - - _isTent = _cursorTarget isKindOf "TentStorage"; + _player_deleteBuild = false; + _player_lockUnlock_crtl = false; - _isAlive = alive _cursorTarget; - - _text = getText (configFile >> "CfgVehicles" >> _typeOfCursorTarget >> "displayName"); - - _rawmeat = meatraw; - _hasRawMeat = false; - { - if (_x in _magazinesPlayer) then { - _hasRawMeat = true; - }; - } count _rawmeat; - - _isFuel = false; - if (_hasFuelE || _hasFuelBarrelE) then { + //fuel tanks + if (_hasEmptyFuelCan) then { { - if(_cursorTarget isKindOf _x) exitWith {_isFuel = true;}; + if (_cursorTarget isKindOf _x) exitWith {_isFuel = true;}; } count dayz_fuelsources; }; - // diag_log ("OWNERID = " + _ownerID + " CHARID = " + dayz_characterID + " " + str(_ownerID == dayz_characterID)); + //remove gathered plant if empty + if (_isPlant) then { + _cursorTarget call player_gather; + }; + + //flip vehicle + if (_isVehicletype && {!(canMove _cursorTarget)} && {_isAlive} && {player distance _cursorTarget >= 2} && {(count (crew _cursorTarget))== 0} && {((vectorUp _cursorTarget) select 2) < 0.5}) then { + if (s_player_flipveh < 0) then { + s_player_flipveh = player addAction [format[localize "str_actions_flipveh",_text], "\z\addons\dayz_code\actions\player_flipvehicle.sqf",_cursorTarget, 1, true, true]; + }; + } else { + player removeAction s_player_flipveh; + s_player_flipveh = -1; + }; - // logic vars - _player_flipveh = false; - _player_deleteBuild = false; - _player_lockUnlock_crtl = false; + //Allow player to fill Fuel can + if (_hasEmptyFuelCan && {_isFuel} && {!a_player_jerryfilling}) then { + if (s_player_fillfuel < 0) then { + s_player_fillfuel = player addAction [localize "str_actions_self_10", "\z\addons\dayz_code\actions\jerry_fill.sqf",[], 1, false, true]; + }; + } else { + player removeAction s_player_fillfuel; + s_player_fillfuel = -1; + }; + + if (damage _cursorTarget < 1) then { + //Allow player to fill vehicle 20L + if ((_hasFuel20 or _hasBarrel) && {!_isZombie} && {!_isAnimal} && {!_isMan} && {_isVehicle or _isGenerator} && {fuel _cursorTarget < 1} && {!a_player_jerryfilling} && {!_isDisallowRefuel}) then { + if (s_player_fillfuel20 < 0) then { + s_player_fillfuel20 = player addAction [format[localize "str_actions_medical_10",_text,"20"], "\z\addons\dayz_code\actions\refuel.sqf",["ItemJerrycan"], 0, true, true, "", "(('ItemJerrycan' in magazines player) or ('ItemFuelBarrel' in magazines player))"]; + }; + } else { + player removeAction s_player_fillfuel20; + s_player_fillfuel20 = -1; + }; - if (_canDo && (speed player <= 1) && (_cursorTarget isKindOf "Plastic_Pole_EP1_DZ")) then { - if (s_player_maintain_area < 0) then { - s_player_maintain_area = player addAction [format["%1",localize "STR_EPOCH_ACTIONS_MAINTAREA"], "\z\addons\dayz_code\actions\maintain_area.sqf", "maintain", 5, false]; - s_player_maintain_area_preview = player addAction [format["%1",localize "STR_EPOCH_ACTIONS_MAINTPREV"], "\z\addons\dayz_code\actions\maintain_area.sqf", "preview", 5, false]; - }; - } else { - player removeAction s_player_maintain_area; - s_player_maintain_area = -1; - player removeAction s_player_maintain_area_preview; - s_player_maintain_area_preview = -1; - }; - - // CURSOR TARGET ALIVE - if(_isAlive) then { + //Allow player to fill vehicle 5L + if (_hasFuel5 && {!_isZombie} && {!_isAnimal} && {!_isMan} && {_isVehicle or _isGenerator} && {fuel _cursorTarget < 1} && {!a_player_jerryfilling}) then { + if (s_player_fillfuel5 < 0) then { + s_player_fillfuel5 = player addAction [format[localize "str_actions_medical_10",_text,"5"], "\z\addons\dayz_code\actions\refuel.sqf",["ItemFuelcan"], 0, true, true, "", "'ItemFuelcan' in magazines player"]; + }; + } else { + player removeAction s_player_fillfuel5; + s_player_fillfuel5 = -1; + }; + /* + //power on Gen + if (_isGenerator && (fuel _cursorTarget > 0)) then { + player action["EngineOn", _cursorTarget]; + }; + */ + // + //Allow player to siphon vehicles + if (_hasEmptyFuelCan && {!_isZombie} && {!_isAnimal} && {!_isMan} && {_isVehicle} && {!_isBicycle} && {!a_player_jerryfilling} && {fuel _cursorTarget > 0}) then { + if (s_player_siphonfuel < 0) then { + s_player_siphonfuel = player addAction [format[localize "str_siphon_start"], "\z\addons\dayz_code\actions\siphonFuel.sqf",_cursorTarget, 0, true, true]; + }; + } else { + player removeAction s_player_siphonfuel; + s_player_siphonfuel = -1; + }; + } else { + player removeAction s_player_fillfuel20; + s_player_fillfuel20 = -1; + player removeAction s_player_fillfuel5; + s_player_fillfuel5 = -1; + player removeAction s_player_siphonfuel; + s_player_siphonfuel = -1; + }; + + //Harvested + if (!_isAlive && (_isAnimal or _isZombie) && !_isHarvested) then { + //_hasknife = {_x in ["ItemKnife","ItemKnife5","ItemKnife4","ItemKnife3","ItemKnife2","ItemKnifeBlunt"]} count _itemsPlayer > 0; + //make sure the player has a knife + //if (_hasknife) then { + if (s_player_butcher < 0) then { + if (_isZombie) then { + s_player_butcher = player addAction [localize "STR_EPOCH_ACTIONS_GUTZOM", "\z\addons\dayz_code\actions\gather_zparts.sqf",_cursorTarget, 0, true, true]; + } else { + s_player_butcher = player addAction [localize "str_actions_self_04", "\z\addons\dayz_code\actions\gather_meat.sqf",_cursorTarget, 3, true, true]; + }; + }; + //} else { + // player removeAction s_player_butcher; + // s_player_butcher = -1; + //}; + } else { + player removeAction s_player_butcher; + s_player_butcher = -1; + }; + + //Fireplace Actions check + if ((_cursorTarget call isInflamed) or (inflamed _cursorTarget)) then { + _hasRawMeat = {_x in Dayz_meatraw} count _magazinesPlayer > 0; + _hastinitem = {_x in boil_tin_cans} count _magazinesPlayer > 0; + //Cook Meat + if (_hasRawMeat && !a_player_cooking) then { + if (s_player_cook < 0) then { + s_player_cook = player addAction [localize "str_actions_self_05", "\z\addons\dayz_code\actions\cook.sqf",_cursorTarget, 3, true, true]; + }; + }; + //Boil Water + if (_hastinitem && _hasbottleitem && !a_player_boil) then { + if (s_player_boil < 0) then { + s_player_boil = player addAction [localize "str_actions_boilwater", "\z\addons\dayz_code\actions\boil.sqf",_cursorTarget, 3, true, true]; + }; + }; + } else { + if (a_player_cooking) then { + player removeAction s_player_cook; + s_player_cook = -1; + }; + if (a_player_boil) then { + player removeAction s_player_boil; + s_player_boil = -1; + }; + }; + +// Not needed. +/* + if(_cursorTarget == dayz_hasFire) then { + if ((s_player_fireout < 0) && !(_cursorTarget call isInflamed) && (player distance _cursorTarget < 3)) then { + s_player_fireout = player addAction [localize "str_actions_self_06", "\z\addons\dayz_code\actions\fire_pack.sqf",_cursorTarget, 0, false, true]; + }; + } else { + player removeAction s_player_fireout; + s_player_fireout = -1; + }; +*/ + if (_isAlive) then { //Allow player to delete objects - if(_isDestructable || _isWreck || _isRemovable || _isWreckBuilding) then { - if(_hasToolbox && "ItemCrowbar" in _itemsPlayer) then { + if (_isDestructable || ((_typeOfCursorTarget in DZE_isWreck) or (_typeOfCursorTarget in DZE_isWreckBuilding)) || (_typeOfCursorTarget in DZE_isRemovable)) then { + if (_hasToolbox && "ItemCrowbar" in _itemsPlayer) then { + _player_deleteBuild = true; + }; + }; + //Allow owners to delete modulars + if (_isModular && (dayz_characterID == _ownerID)) then { + if (_hasToolbox && "ItemCrowbar" in _itemsPlayer) then { _player_deleteBuild = true; }; }; - - //Allow owners to delete modulars - if(_isModular && (dayz_characterID == _ownerID)) then { - if(_hasToolbox && "ItemCrowbar" in _itemsPlayer) then { - _player_deleteBuild = true; - }; - }; //Allow owners to delete modular doors without locks - if(_isModularDoor && (dayz_characterID == _ownerID)) then { - if(_hasToolbox && "ItemCrowbar" in _itemsPlayer) then { - _player_deleteBuild = true; - }; - }; - // CURSOR TARGET VEHICLE - if(_isVehicle) then { - - //flip vehicle small vehicles by your self && all other vehicles with help nearby - if (!(canmove _cursorTarget) && (player distance _cursorTarget >= 2) && (count (crew _cursorTarget))== 0 && ((vectorUp _cursorTarget) select 2) < 0.5) then { - _playersNear = {isPlayer _x} count (player nearEntities ["CAManBase", 6]); - if(_isVehicletype || (_playersNear >= 2)) then { - _player_flipveh = true; - }; - }; - - - if(!_isMan && _ownerID != "0" && !(_cursorTarget isKindOf "Bicycle")) then { + if (_isModularDoor && (dayz_characterID == _ownerID)) then { + if (_hasToolbox && "ItemCrowbar" in _itemsPlayer) then { + _player_deleteBuild = true; + }; + }; + if (_isVehicle) then { + if ((_ownerID != "0") && {!_isMan} && {!_isBicycle}) then { _player_lockUnlock_crtl = true; }; - }; - }; - - if(_player_deleteBuild) then { + + if (_player_deleteBuild) then { if (s_player_deleteBuild < 0) then { s_player_deleteBuild = player addAction [format[localize "str_actions_delete",_text], "\z\addons\dayz_code\actions\remove.sqf",_cursorTarget, 1, true, true]; }; @@ -311,44 +428,241 @@ if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance curso player removeAction s_player_deleteBuild; s_player_deleteBuild = -1; }; + + //remove Own objects + if (_ownerID == dayz_characterID) then { + //upgrade items + if (_typeOfCursorTarget in _upgradeItems) then { + if (s_player_upgradestroage < 0) then { + if (isText (configFile >> "CfgVehicles" >> _typeOfCursorTarget >> "Upgrade" >> "create")) then { + _displayName = getText (configFile >> "CfgVehicles" >> _typeOfCursorTarget >> "displayName"); + s_player_upgradestroage = player addAction [format[localize "str_upgrade",_displayName], "\z\addons\dayz_code\actions\object_upgradeStorage.sqf",_cursorTarget, 0, false, true]; + }; + }; + } else { + player removeAction s_player_upgradestroage; + s_player_upgradestroage = -1 + }; + if (_istypeTent) then { + //Packing my tent + if (s_player_packtent < 0) then { + s_player_packtent = player addAction [localize "str_actions_self_07", "\z\addons\dayz_code\actions\tent_pack.sqf",_cursorTarget, 0, false, true]; + }; + //sleep + if (s_player_sleep < 0) then { + s_player_sleep = player addAction [localize "str_actions_self_sleep", "\z\addons\dayz_code\actions\player_sleep.sqf",_cursorTarget, 0, false, true]; + }; + } else { + player removeAction s_player_packtent; + s_player_packtent = -1; + player removeAction s_player_sleep; + s_player_sleep = -1; + }; + } else { + player removeAction s_player_deleteBuild; + s_player_deleteBuild = -1; + player removeAction s_player_upgradestroage; + s_player_upgradestroage = -1; + player removeAction s_player_packtent; + s_player_packtent = -1; + player removeAction s_player_sleep; + s_player_sleep = -1; + }; + //other tents + if (_istypeTent) then { + //destroy tents + //Located in variables Dayz_Ignators = ["ItemMatchbox","Item5Matchbox","Item4Matchbox","Item3Matchbox","Item2Matchbox","Item1Matchbox"]; + _hasIgnators = {_x in Dayz_Ignators} count _itemsPlayer > 0; + if ((_hasFuel20 or _hasFuel5) && _hasIgnators) then { + if (s_player_destorytent < 0) then { + s_player_destorytent = player addAction [localize "str_actions_self_destorytent", "\z\addons\dayz_code\actions\player_destroyTent.sqf",_cursorTarget, 0, false, true]; + }; + } else { + player removeAction s_player_destorytent; + s_player_destorytent = -1; + }; + + if (_typeOfCursorTarget in ["IC_DomeTent","IC_Tent"]) then { + if (s_player_packtentinfected < 0) then { + s_player_packtentinfected = player addAction [localize "str_actions_self_07", "\z\addons\dayz_code\actions\tent_pack.sqf",_cursorTarget, 0, false, true]; + }; + } else { + player removeAction s_player_packtentinfected; + s_player_packtentinfected = -1; + }; + }; + + //Study Body + if (_isMan && {!_isAlive} && {!_isZombie} && {!_isAnimal}) then { + if (s_player_studybody < 0) then { + s_player_studybody = player addAction [localize "str_action_studybody", "\z\addons\dayz_code\actions\study_body.sqf",_cursorTarget, 0, false, true]; + }; + } else { + player removeAction s_player_studybody; + s_player_studybody = -1; + }; +/* + //Carbomb + _hasCarBomb = "ItemCarBomb" in _magazinesPlayer; + if (((cursorTarget isKindOf "Car") || (cursorTarget isKindOf "Air") || (cursorTarget isKindOf "Motorcycle")) && _hasCarBomb) then { + if (s_player_attach_bomb < 0) then { + s_player_attach_bomb = player addAction [localize "str_bombAttach", "\z\addons\dayz_code\actions\player_attach_bomb.sqf",cursorTarget, 3, true, true]; + }; + } else { + player removeAction s_player_attach_bomb; + s_player_attach_bomb = -1; + }; +*/ + //Repairing Vehicles + if (_isVehicle && {!_isMan} && {dayz_myCursorTarget != _cursorTarget} && {_hasToolbox} && {damage _cursorTarget < 1} && {_typeOfCursorTarget != "M240Nest_DZ"}) then { + if (s_player_repair_crtl < 0) then { + dayz_myCursorTarget = _cursorTarget; + _menu = dayz_myCursorTarget addAction [localize "str_actions_rapairveh", "\z\addons\dayz_code\actions\repair_vehicle.sqf",_cursorTarget, 0, true, false]; + _menu1 = dayz_myCursorTarget addAction [localize "str_actions_salvageveh", "\z\addons\dayz_code\actions\salvage_vehicle.sqf",_cursorTarget, 0, true, false]; + s_player_repairActions set [count s_player_repairActions,_menu]; + s_player_repairActions set [count s_player_repairActions,_menu1]; + s_player_repair_crtl = 1; + } else { + {dayz_myCursorTarget removeAction _x} forEach s_player_repairActions; + s_player_repairActions = []; + s_player_repair_crtl = -1; + }; + }; + + // House locking and unlocking + _isHouse = (typeOf cursorTarget) in ["SurvivorWorkshopAStage5", "SurvivorWorkshopBStage5", "SurvivorWorkshopCStage5"]; + _isGate = (typeOf cursorTarget) in ["WoodenGate_1","WoodenGate_2","WoodenGate_3","WoodenGate_4","MetalGate_1","MetalGate_2","MetalGate_3","MetalGate_4"]; + _isFence = (typeOf cursorTarget) in ["WoodenFence_1","WoodenFence_2","WoodenFence_3","WoodenFence_4","WoodenFence_5","WoodenFence_6","MetalFence_1","MetalFence_2","MetalFence_3","MetalFence_4","MetalFence_5","MetalFence_6","MetalFence_7"]; + + //Only the owners can lock the gates + _isLockableGate = (typeOf cursorTarget) in ["WoodenGate_2","WoodenGate_3","WoodenGate_4","MetalGate_2","MetalGate_3","MetalGate_4"]; + _isUnlocked = cursorTarget getVariable ["isOpen","0"] == "1"; + + //Allow the gates to be opened when not locked by anyone + _isOpen = ((cursorTarget animationPhase "DoorL") == 1) || ((cursorTarget animationPhase "DoorR") == 1); + _isClosed = ((cursorTarget animationPhase "DoorL") == 0) || ((cursorTarget animationPhase "DoorR") == 0); + + //[["ownerArray",["PID"]]] + _ownerArray = _cursorTarget getVariable ["ownerArray",["0"]]; + _ownerBuildLock = _cursorTarget getVariable ["BuildLock",false]; + _ownerPID = (_ownerArray select 0); + + // open Gate + if (_isGate && _isClosed && _isUnlocked && _canDo) then { + if (s_player_openGate < 0) then { + s_player_openGate = player addAction ["Open Gate", "\z\addons\dayz_code\actions\player_operate.sqf",[cursorTarget,"Open"], 1, true, true]; + }; + } else { + player removeAction s_player_openGate; + s_player_openGate = -1; + }; + // Close Gate + if (_isGate && _isOpen && _isUnlocked && _canDo) then { + if (s_player_CloseGate < 0) then { + s_player_CloseGate = player addAction ["Close Gate", "\z\addons\dayz_code\actions\player_operate.sqf",[cursorTarget,"Close"], 1, true, true]; + }; + } else { + player removeAction s_player_CloseGate; + s_player_CloseGate = -1; + }; + // Set + if ((_isHouse or _isLockableGate) && (_ownerPID == (getPlayerUID player)) && !_isUnlocked && _isClosed && _canDo) then { + if (s_player_setCode < 0) then { + s_player_setCode = player addAction ["Set Lock Code", "\z\addons\dayz_code\actions\player_operate.sqf",[cursorTarget,"Set"], 1, true, true]; + }; + } else { + player removeAction s_player_setCode; + s_player_setCode = -1; + }; + //Lock Build point + if ((_isFence or _isGate) && (_ownerPID == (getPlayerUID player)) && !_ownerBuildLock && _canDo) then { + if (s_player_BuildLock < 0) then { + s_player_BuildLock = player addAction ["Lock Build", "\z\addons\dayz_code\actions\player_operate.sqf",[cursorTarget,"BuildLock"], 1, true, true]; + }; + } else { + player removeAction s_player_BuildLock; + s_player_BuildLock = -1; + }; + //UnLock Build point + if ((_isFence or _isGate) && (_ownerPID == (getPlayerUID player)) && _ownerBuildLock && _canDo) then { + if (s_player_BuildUnLock < 0) then { + s_player_BuildUnLock = player addAction ["UnLock Build", "\z\addons\dayz_code\actions\player_operate.sqf",[cursorTarget,"BuildUnLock"], 1, true, true]; + }; + } else { + player removeAction s_player_BuildUnLock; + s_player_BuildUnLock = -1; + }; + // Unlock Gate/House + if ((_isHouse or _isLockableGate) && !_isUnlocked && _isClosed && _canDo) then { + if (s_player_unlockhouse < 0) then { + s_player_unlockhouse = player addAction ["Unlock Gate", "\z\addons\dayz_code\actions\player_operate.sqf",[cursorTarget,"Unlock"], 1, true, true]; + }; + } else { + player removeAction s_player_unlockhouse; + s_player_unlockhouse = -1; + }; + // Lock Gate/House + if ((_isHouse or _isLockableGate) && _isUnlocked && _isClosed && _canDo) then { + if (s_player_lockhouse < 0) then { + s_player_lockhouse = player addAction ["Lock Gate", "\z\addons\dayz_code\actions\player_operate.sqf",[cursorTarget,"Lock"], 1, true, true]; + }; + } else { + player removeAction s_player_lockhouse; + s_player_lockhouse = -1; + }; + //Break In + if ((_isHouse or _isLockableGate) && (_ownerPID != (getPlayerUID player)) && !_isUnlocked && _canDo) then { + if (s_player_breakinhouse < 0) then { + s_player_breakinhouse = player addAction ["Break In", "\z\addons\dayz_code\actions\player_breakin.sqf",cursorTarget, 1, true, true]; + }; + } else { + player removeAction s_player_breakinhouse; + s_player_breakinhouse = -1; + }; + + if ((_cursorTarget isKindOf "Plastic_Pole_EP1_DZ") && {_canDo} && {speed player <= 1}) then { + if (s_player_maintain_area < 0) then { + s_player_maintain_area = player addAction [format["%1",localize "STR_EPOCH_ACTIONS_MAINTAREA"], "\z\addons\dayz_code\actions\maintain_area.sqf", "maintain", 5, false]; + s_player_maintain_area_preview = player addAction [format["%1",localize "STR_EPOCH_ACTIONS_MAINTPREV"], "\z\addons\dayz_code\actions\maintain_area.sqf", "preview", 5, false]; + }; + } else { + player removeAction s_player_maintain_area; + s_player_maintain_area = -1; + player removeAction s_player_maintain_area_preview; + s_player_maintain_area_preview = -1; + }; if (DZE_HeliLift) then { _liftHeli = objNull; - _found = false; - + _found = false; _allowTow = false; if ((count (crew _cursorTarget)) == 0) then { { - if(!_allowTow) then { + if (!_allowTow) then { _allowTow = _cursorTarget isKindOf _x; }; } count DZE_HeliAllowToTow; }; - //diag_log format["CREW: %1 ALLOW: %2",(count (crew _cursorTarget)),_allowTow]; - if (_allowTow) then { - _liftHelis = player nearEntities [DZE_HeliAllowTowFrom,15]; { - if(!_found) then { + if (!_found) then { _posL = [_x] call FNC_getPos; _posC = [_cursorTarget] call FNC_getPos; _height = (_posL select 2) - (_posC select 2); _hasAttached = _x getVariable["hasAttached",false]; - if(_height < 15 && _height > 5 && (typeName _hasAttached != "OBJECT")) then { - if(((abs((_posL select 0) - (_posC select 0))) < 10) && ((abs((_posL select 1) - (_posC select 1))) < 10)) then { + if ((_height < 15) && {_height > 5} && {typeName _hasAttached != "OBJECT"}) then { + if (((abs((_posL select 0) - (_posC select 0))) < 10) && {(abs((_posL select 1) - (_posC select 1))) < 10}) then { _liftHeli = _x; _found = true; }; }; }; - } count _liftHelis; + } count (player nearEntities [DZE_HeliAllowTowFrom,15]); }; - //diag_log format["HELI: %1 TARGET: %2",_found,_cursorTarget]; - _attached = _cursorTarget getVariable["attached",false]; - if(_found && _allowTow && _canDo && !locked _cursorTarget && !_isPZombie && (typeName _attached != "OBJECT")) then { + if (_found && {_allowTow} && {_canDo} && {!(locked _cursorTarget)} && {!_isPZombie} && {typeName _attached != "OBJECT"}) then { if (s_player_heli_lift < 0) then { s_player_heli_lift = player addAction ["Attach to Heli", "\z\addons\dayz_code\actions\player_heliLift.sqf",[_liftHeli,_cursorTarget], -10, false, true]; }; @@ -358,45 +672,44 @@ if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance curso }; }; - // Allow Owner to lock && unlock vehicle - if(_player_lockUnlock_crtl) then { + // Allow Owner to lock and unlock vehicle + if (_player_lockUnlock_crtl) then { if (s_player_lockUnlock_crtl < 0) then { _totalKeys = call epoch_tempKeys; _temp_keys = _totalKeys select 0; _temp_keys_names = _totalKeys select 1; _hasKey = _ownerID in _temp_keys; _oldOwner = (_ownerID == dayz_playerUID); - if(locked _cursorTarget) then { - if(_hasKey || _oldOwner) then { - _Unlock = player addAction [format[localize "STR_EPOCH_ACTIONS_UNLOCK",_text], "\z\addons\dayz_code\actions\unlock_veh.sqf",[_cursorTarget,(_temp_keys_names select (parseNumber _ownerID))], 2, true, true]; - s_player_lockunlock set [count s_player_lockunlock,_Unlock]; + if (locked _cursorTarget) then { + if (_hasKey || _oldOwner) then { + _unlock = player addAction [format[localize "STR_EPOCH_ACTIONS_UNLOCK",_text], "\z\addons\dayz_code\actions\unlock_veh.sqf",[_cursorTarget,(_temp_keys_names select (parseNumber _ownerID))], 2, true, true]; + s_player_lockunlock set [count s_player_lockunlock,_unlock]; s_player_lockUnlock_crtl = 1; } else { - if(_hasHotwireKit) then { - _Unlock = player addAction [format[localize "STR_EPOCH_ACTIONS_HOTWIRE",_text], "\z\addons\dayz_code\actions\hotwire_veh.sqf",_cursorTarget, 2, true, true]; + if (_hasHotwireKit) then { + _unlock = player addAction [format[localize "STR_EPOCH_ACTIONS_HOTWIRE",_text], "\z\addons\dayz_code\actions\hotwire_veh.sqf",_cursorTarget, 2, true, true]; } else { - _Unlock = player addAction [format["%1",localize "STR_EPOCH_ACTIONS_VEHLOCKED"], "",_cursorTarget, 2, true, true]; + _unlock = player addAction [format["%1",localize "STR_EPOCH_ACTIONS_VEHLOCKED"], "",_cursorTarget, 2, true, true]; }; - s_player_lockunlock set [count s_player_lockunlock,_Unlock]; + s_player_lockunlock set [count s_player_lockunlock,_unlock]; s_player_lockUnlock_crtl = 1; }; } else { - if(_hasKey || _oldOwner) then { + if (_hasKey || _oldOwner) then { _lock = player addAction [format[localize "STR_EPOCH_ACTIONS_LOCK",_text], "\z\addons\dayz_code\actions\lock_veh.sqf",_cursorTarget, 1, true, true]; s_player_lockunlock set [count s_player_lockunlock,_lock]; s_player_lockUnlock_crtl = 1; }; }; - }; - + }; } else { {player removeAction _x} count s_player_lockunlock;s_player_lockunlock = []; s_player_lockUnlock_crtl = -1; }; - if(DZE_AllowForceSave) then { + if (DZE_AllowForceSave) then { //Allow player to force save - if((_isVehicle || _isTent) && !_isMan) then { + if ((_isVehicle || _istypeTent) && !_isMan) then { if (s_player_forceSave < 0) then { s_player_forceSave = player addAction [format[localize "str_actions_save",_text], "\z\addons\dayz_code\actions\forcesave.sqf",_cursorTarget, 1, true, true]; }; @@ -406,10 +719,8 @@ if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance curso }; }; - - - If(DZE_AllowCargoCheck) then { - if((_isVehicle || _isTent || _isnewstorage) && _isAlive && !_isMan && !locked _cursorTarget) then { + if (DZE_AllowCargoCheck) then { + if ((_isVehicle || _istypeTent || (_typeOfCursorTarget in DZE_isNewStorage)) && _isAlive && !_isMan && !locked _cursorTarget) then { if (s_player_checkGear < 0) then { s_player_checkGear = player addAction [localize "STR_EPOCH_PLAYER_CARGO", "\z\addons\dayz_code\actions\cargocheck.sqf",_cursorTarget, 1, true, true]; }; @@ -419,103 +730,8 @@ if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance curso }; }; - - //flip vehicle small vehicles by your self && all other vehicles with help nearby - if(_player_flipveh) then { - if (s_player_flipveh < 0) then { - s_player_flipveh = player addAction [format[localize "str_actions_flipveh",_text], "\z\addons\dayz_code\actions\player_flipvehicle.sqf",_cursorTarget, 1, true, true]; - }; - } else { - player removeAction s_player_flipveh; - s_player_flipveh = -1; - }; - - //Allow player to fill jerrycan - if((_hasFuelE || _hasFuelBarrelE) && _isFuel) then { - if (s_player_fillfuel < 0) then { - s_player_fillfuel = player addAction [localize "str_actions_self_10", "\z\addons\dayz_code\actions\jerry_fill.sqf",[], 1, false, true]; - }; - } else { - player removeAction s_player_fillfuel; - s_player_fillfuel = -1; - }; - - // logic vars for addactions - _player_butcher = false; - _player_studybody = false; - _player_SurrenderedGear = false; - - // CURSOR TARGET NOT ALIVE - if (!_isAlive) then { - - // Gut animal/zed - if((_isAnimal || _isZombie) && _hasKnife) then { - _isHarvested = _cursorTarget getVariable["meatHarvested",false]; - if (!_isHarvested) then { - _player_butcher = true; - }; - }; - - // Study body - if (_isMan && !_isZombie && !_isAnimal) then { - _player_studybody = true; - } - } else { - // unit alive - - // gear access on surrendered player - if(_isMan && !_isZombie && !_isAnimal) then { - _isSurrendered = _cursorTarget getVariable ["DZE_Surrendered",false]; - if (_isSurrendered) then { - _player_SurrenderedGear = true; - }; - }; - }; - - - // Human Gut animal || zombie - if (_player_butcher) then { - if (s_player_butcher < 0) then { - if(_isZombie) then { - s_player_butcher = player addAction [localize "STR_EPOCH_ACTIONS_GUTZOM", "\z\addons\dayz_code\actions\gather_zparts.sqf",_cursorTarget, 0, true, true]; - } else { - s_player_butcher = player addAction [localize "str_actions_self_04", "\z\addons\dayz_code\actions\gather_meat.sqf",_cursorTarget, 3, true, true]; - }; - }; - } else { - player removeAction s_player_butcher; - s_player_butcher = -1; - }; - - // Study Body - if (_player_studybody) then { - if (s_player_studybody < 0) then { - s_player_studybody = player addAction [localize "str_action_studybody", "\z\addons\dayz_code\actions\study_body.sqf",_cursorTarget, 0, false, true]; - }; - } else { - player removeAction s_player_studybody; - s_player_studybody = -1; - }; - - // logic vars - _player_cook = false; - _player_boil = false; - - // CURSOR TARGET IS FIRE - if (inflamed _cursorTarget) then { - - //Fireplace Actions check - if (_hasRawMeat) then { - _player_cook = true; - }; - - // Boil water - if (_hasbottleitem && _hastinitem) then { - _player_boil = true; - }; - }; - - if (_player_SurrenderedGear) then { + // gear access on surrendered player + if (_isMan && {_isAlive} && {!_isZombie} && {!_isAnimal} && {_cursorTarget getVariable ["DZE_Surrendered",false]}) then { if (s_player_SurrenderedGear < 0) then { s_player_SurrenderedGear = player addAction [localize "STR_EPOCH_ACTIONS_GEAR", "\z\addons\dayz_code\actions\surrender_gear.sqf",_cursorTarget, 1, true, true]; }; @@ -524,58 +740,11 @@ if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance curso s_player_SurrenderedGear = -1; }; - //Fireplace Actions check - if (_player_cook) then { - if (s_player_cook < 0) then { - s_player_cook = player addAction [localize "str_actions_self_05", "\z\addons\dayz_code\actions\cook.sqf",_cursorTarget, 3, true, true]; - }; - } else { - player removeAction s_player_cook; - s_player_cook = -1; - }; - - // Boil water - if (_player_boil) then { - if (s_player_boil < 0) then { - s_player_boil = player addAction [localize "str_actions_boilwater", "\z\addons\dayz_code\actions\boil.sqf",_cursorTarget, 3, true, true]; - }; - } else { - player removeAction s_player_boil; - s_player_boil = -1; - }; - - if(_cursorTarget == dayz_hasFire) then { - if ((s_player_fireout < 0) && !(inflamed _cursorTarget) && (player distance _cursorTarget < 3)) then { - s_player_fireout = player addAction [localize "str_actions_self_06", "\z\addons\dayz_code\actions\fire_pack.sqf",_cursorTarget, 0, false, true]; - }; - } else { - player removeAction s_player_fireout; - s_player_fireout = -1; - }; - - //Packing my tent - if(_isTent && (player distance _cursorTarget < 3)) then { - if (_ownerID == dayz_characterID) then { - if (s_player_packtent < 0) then { - s_player_packtent = player addAction [localize "str_actions_self_07", "\z\addons\dayz_code\actions\tent_pack.sqf",_cursorTarget, 0, false, true]; - }; - } else { - if(("ItemJerrycan" in _magazinesPlayer) && ("ItemMatchbox_DZE" in weapons player)) then { - if (s_player_packtent < 0) then { - s_player_packtent = player addAction [localize "STR_EPOCH_ACTIONS_DESTROYTENT", "\z\addons\dayz_code\actions\remove.sqf",_cursorTarget, 1, true, true]; - }; - }; - }; - } else { - player removeAction s_player_packtent; - s_player_packtent = -1; - }; - //Allow owner to unlock vault - if((_typeOfCursorTarget in DZE_LockableStorage) && _ownerID != "0" && (player distance _cursorTarget < 3)) then { + if ((_typeOfCursorTarget in DZE_LockableStorage) && {_ownerID != "0"} && {player distance _cursorTarget < 3}) then { if (s_player_unlockvault < 0) then { - if(_typeOfCursorTarget in DZE_LockedStorage) then { - if(_ownerID == dayz_combination || _ownerID == dayz_playerUID) then { + if (_typeOfCursorTarget in DZE_LockedStorage) then { + if (_ownerID == dayz_combination || _ownerID == dayz_playerUID) then { _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]; } else { @@ -584,7 +753,7 @@ if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance curso }; s_player_unlockvault = 1; } else { - if(_ownerID != dayz_combination && _ownerID != dayz_playerUID) then { + if (_ownerID != dayz_combination && _ownerID != dayz_playerUID) then { _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_unlockvault = 1; @@ -597,10 +766,9 @@ if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance curso }; //Allow owner to pack vault - if(_typeOfCursorTarget in DZE_UnLockedStorage && _ownerID != "0" && (player distance _cursorTarget < 3)) then { - + if ((_typeOfCursorTarget in DZE_UnLockedStorage) && {_ownerID != "0"} && {player distance _cursorTarget < 3}) then { if (s_player_lockvault < 0) then { - if(_ownerID == dayz_combination || _ownerID == dayz_playerUID) then { + if (_ownerID == dayz_combination || _ownerID == dayz_playerUID) 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]; }; }; @@ -614,10 +782,8 @@ if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance curso s_player_lockvault = -1; }; - - //Player Deaths - if(_typeOfCursorTarget == "Info_Board_EP1") then { + if (_typeOfCursorTarget == "Info_Board_EP1") then { if (s_player_information < 0) then { s_player_information = player addAction [localize "STR_EPOCH_ACTIONS_MURDERS", "\z\addons\dayz_code\actions\list_playerDeaths.sqf",[], 7, false, true]; }; @@ -627,21 +793,18 @@ if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance curso }; //Fuel Pump - if(_typeOfCursorTarget in dayz_fuelpumparray) then { - if (s_player_fuelauto < 0) then { - + if (_typeOfCursorTarget in dayz_fuelpumparray) then { + if (s_player_fuelauto < 0) then { // check if Generator_DZ is running within 30 meters - _findNearestGens = nearestObjects [player, ["Generator_DZ"], 30]; _findNearestGen = []; { if (alive _x && (_x getVariable ["GeneratorRunning", false])) then { - _findNearestGen set [(count _findNearestGen),_x]; + _findNearestGen set [count _findNearestGen,_x]; }; - } count _findNearestGens; - _IsNearRunningGen = count (_findNearestGen); + } count (nearestObjects [player,["Generator_DZ"],30]); // show that pump needs power if no generator nearby. - if(_IsNearRunningGen > 0) then { + if ((count _findNearestGen) > 0) then { s_player_fuelauto = player addAction [localize "STR_EPOCH_ACTIONS_FILLVEH", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",objNull, 0, false, true]; } else { s_player_fuelauto = player addAction [format["%1",localize "STR_EPOCH_ACTIONS_NEEDPOWER"], "",[], 0, false, true]; @@ -653,10 +816,10 @@ if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance curso }; //Fuel Pump on truck - if(_typeOfCursorTarget in DZE_fueltruckarray && alive _cursorTarget) then { + if (_typeOfCursorTarget in DZE_fueltruckarray && _isAlive) then { if (s_player_fuelauto2 < 0) then { // show that fuel truck pump needs power. - if(isEngineOn _cursorTarget) then { + if (isEngineOn _cursorTarget) then { s_player_fuelauto2 = player addAction [localize "STR_EPOCH_ACTIONS_FILLVEH", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",_cursorTarget, 0, false, true]; } else { s_player_fuelauto2 = player addAction [format["%1",localize "STR_EPOCH_ACTIONS_NEEDPOWER"], "",[], 0, false, true]; @@ -676,9 +839,8 @@ if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance curso }; }; if (s_player_upgrade_build < 0) then { - // s_player_lastTarget = _cursorTarget; s_player_lastTarget set [0,_cursorTarget]; - s_player_upgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_UPGRADE",_text], "\z\addons\dayz_code\actions\player_upgrade.sqf",_cursorTarget, -1, false, true]; + s_player_upgrade_build = player addAction [format[localize "str_upgrade",_text], "\z\addons\dayz_code\actions\player_upgrade.sqf",_cursorTarget, -1, false, true]; }; } else { player removeAction s_player_upgrade_build; @@ -686,14 +848,13 @@ if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance curso }; // downgrade system - if((_isDestructable || _cursorTarget isKindOf "Land_DZE_WoodDoorLocked_Base" || _cursorTarget isKindOf "CinderWallDoorLocked_DZ_Base") && (DZE_Lock_Door == _ownerID)) then { + if ((DZE_Lock_Door == _ownerID) && {_isDestructable || _cursorTarget isKindOf "Land_DZE_WoodDoorLocked_Base" || _cursorTarget isKindOf "CinderWallDoorLocked_DZ_Base"}) then { if ((s_player_lastTarget select 1) != _cursorTarget) then { if (s_player_downgrade_build > 0) then { player removeAction s_player_downgrade_build; s_player_downgrade_build = -1; }; }; - if (s_player_downgrade_build < 0) then { 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]; @@ -704,14 +865,13 @@ if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance curso }; // inplace maintenance tool - if((_cursorTarget isKindOf "ModularItems" || _cursorTarget isKindOf "DZE_Housebase" || _typeOfCursorTarget == "LightPole_DZ") && (damage _cursorTarget >= DZE_DamageBeforeMaint)) then { + if ((damage _cursorTarget >= DZE_DamageBeforeMaint) && {_cursorTarget isKindOf "ModularItems" || _cursorTarget isKindOf "DZE_Housebase" || _typeOfCursorTarget == "LightPole_DZ"}) then { if ((s_player_lastTarget select 2) != _cursorTarget) then { if (s_player_maint_build > 0) then { player removeAction s_player_maint_build; s_player_maint_build = -1; }; }; - if (s_player_maint_build < 0) then { s_player_lastTarget set [2,_cursorTarget]; s_player_maint_build = player addAction [format[localize "STR_EPOCH_ACTIONS_MAINTAIN",_text], "\z\addons\dayz_code\actions\player_buildingMaint.sqf",_cursorTarget, -2, false, true]; @@ -721,20 +881,18 @@ if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance curso s_player_maint_build = -1; }; - //Start Generator - if(_cursorTarget isKindOf "Generator_DZ") then { - if (s_player_fillgen < 0) then { - + if (_isGenerator) then { + if (s_player_fillgen < 0) then { // check if not running - if((_cursorTarget getVariable ["GeneratorRunning", false])) then { + if (_cursorTarget getVariable ["GeneratorRunning", false]) then { s_player_fillgen = player addAction [localize "STR_EPOCH_ACTIONS_GENERATOR1", "\z\addons\dayz_code\actions\stopGenerator.sqf",_cursorTarget, 0, false, true]; } else { - // check if not filled && player has jerry. - if((_cursorTarget getVariable ["GeneratorFilled", false])) then { + // check if not filled and player has jerry. + if (_cursorTarget getVariable ["GeneratorFilled", false]) then { s_player_fillgen = player addAction [localize "STR_EPOCH_ACTIONS_GENERATOR2", "\z\addons\dayz_code\actions\fill_startGenerator.sqf",_cursorTarget, 0, false, true]; } else { - if("ItemJerrycan" in _magazinesPlayer) then { + if (_hasFuel20) then { s_player_fillgen = player addAction [localize "STR_EPOCH_ACTIONS_GENERATOR3", "\z\addons\dayz_code\actions\fill_startGenerator.sqf",_cursorTarget, 0, false, true]; }; }; @@ -761,85 +919,47 @@ if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance curso }; */ - - //Sleep - if(_isTent && _ownerID == dayz_characterID) then { - if ((s_player_sleep < 0) && (player distance _cursorTarget < 3)) then { - s_player_sleep = player addAction [localize "str_actions_self_sleep", "\z\addons\dayz_code\actions\player_sleep.sqf",_cursorTarget, 0, false, true]; - }; - } else { - player removeAction s_player_sleep; - s_player_sleep = -1; - }; - - //Repairing Vehicles - if ((dayz_myCursorTarget != _cursorTarget) && _isVehicle && !_isMan && _hasToolbox && (damage _cursorTarget < 1) && !_isDisallowRepair) then { - if (s_player_repair_crtl < 0) then { - dayz_myCursorTarget = _cursorTarget; - _menu = dayz_myCursorTarget addAction [localize "STR_EPOCH_PLAYER_REPAIRV", "\z\addons\dayz_code\actions\repair_vehicle.sqf",_cursorTarget, 0, true, false]; - _menu1 = dayz_myCursorTarget addAction [localize "STR_EPOCH_PLAYER_SALVAGEV", "\z\addons\dayz_code\actions\salvage_vehicle.sqf",_cursorTarget, 0, true, false]; - s_player_repairActions set [count s_player_repairActions,_menu]; - s_player_repairActions set [count s_player_repairActions,_menu1]; - s_player_repair_crtl = 1; - } else { - {dayz_myCursorTarget removeAction _x} count s_player_repairActions;s_player_repairActions = []; - s_player_repair_crtl = -1; - }; - }; - // All Traders - if (_isMan && !_isPZombie && _traderType in serverTraders) then { - + if (_isMan && {_typeOfCursorTarget in serverTraders} && {!_isPZombie}) then { if (s_player_parts_crtl < 0) then { - - // get humanity _humanity = player getVariable ["humanity",0]; - _traderMenu = call compile format["menu_%1;",_traderType]; - - // diag_log ("TRADER = " + str(_traderMenu)); - + _traderMenu = call compile format["menu_%1;",_typeOfCursorTarget]; _low_high = "low"; _humanity_logic = false; - if((_traderMenu select 2) == "friendly") then { + if ((_traderMenu select 2) == "friendly") then { _humanity_logic = (_humanity < -5000); }; - if((_traderMenu select 2) == "hostile") then { + if ((_traderMenu select 2) == "hostile") then { _low_high = "high"; _humanity_logic = (_humanity > -5000); }; - if((_traderMenu select 2) == "hero") then { + if ((_traderMenu select 2) == "hero") then { _humanity_logic = (_humanity < 5000); }; - if(_humanity_logic) then { + if (_humanity_logic) then { _cancel = player addAction [format[localize "STR_EPOCH_ACTIONS_HUMANITY",_low_high], "\z\addons\dayz_code\actions\trade_cancel.sqf",["na"], 0, true, false]; s_player_parts set [count s_player_parts,_cancel]; - } else { - + } else { // Static Menu { //diag_log format["DEBUG TRADER: %1", _x]; _buy = player addAction [format["Trade %1 %2 for %3 %4",(_x select 3),(_x select 5),(_x select 2),(_x select 6)], "\z\addons\dayz_code\actions\trade_items_wo_db.sqf",[(_x select 0),(_x select 1),(_x select 2),(_x select 3),(_x select 4),(_x select 5),(_x select 6)], (_x select 7), true, true]; - s_player_parts set [count s_player_parts,_buy]; - + s_player_parts set [count s_player_parts,_buy]; } count (_traderMenu select 1); // Database menu _buy = player addAction [localize "STR_EPOCH_PLAYER_289", "\z\addons\dayz_code\actions\show_dialog.sqf",(_traderMenu select 0), 999, true, false]; s_player_parts set [count s_player_parts,_buy]; - }; - s_player_parts_crtl = 1; - + s_player_parts_crtl = 1; }; } else { {player removeAction _x} count s_player_parts;s_player_parts = []; s_player_parts_crtl = -1; }; - - if(dayz_tameDogs) then { - + if (dayz_tameDogs) then { //Dog - if (_isDog && _isAlive && (_hasRawMeat) && _ownerID == "0" && player getVariable ["dogID", 0] == 0) then { + if (_isDog && {_hasRawMeat} && {_isAlive} && {_ownerID == "0"} && {player getVariable ["dogID",0] == 0}) then { if (s_player_tamedog < 0) then { s_player_tamedog = player addAction [localize "str_actions_tamedog", "\z\addons\dayz_code\actions\tame_dog.sqf", _cursorTarget, 1, false, true]; }; @@ -847,17 +967,15 @@ if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance curso player removeAction s_player_tamedog; s_player_tamedog = -1; }; - if (_isDog && _ownerID == dayz_characterID && _isAlive) then { - _dogHandle = player getVariable ["dogID", 0]; + if (_isDog && {_ownerID == dayz_characterID} && {_isAlive}) then { if (s_player_feeddog < 0 && _hasRawMeat) then { s_player_feeddog = player addAction [localize "str_actions_feeddog","\z\addons\dayz_code\actions\dog\feed.sqf",[_dogHandle,0], 0, false, true]; }; - if (s_player_waterdog < 0 && "ItemWaterbottle" in _magazinesPlayer) then { + if (s_player_waterdog < 0 && _hasbottleitem) then { s_player_waterdog = player addAction [localize "str_actions_waterdog","\z\addons\dayz_code\actions\dog\feed.sqf",[_dogHandle,1], 0, false, true]; }; if (s_player_staydog < 0) then { - _lieDown = _dogHandle getFSMVariable "_actionLieDown"; - if (_lieDown) then { _text = "str_actions_liedog"; } else { _text = "str_actions_sitdog"; }; + if (_dogHandle getFSMVariable "_actionLieDown") then { _text = "str_actions_liedog"; } else { _text = "str_actions_sitdog"; }; s_player_staydog = player addAction [localize _text,"\z\addons\dayz_code\actions\dog\stay.sqf", _dogHandle, 5, false, true]; }; if (s_player_trackdog < 0) then { @@ -868,7 +986,7 @@ if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance curso }; if (s_player_warndog < 0) then { _warn = _dogHandle getFSMVariable "_watchDog"; - if (_warn) then { _text = (localize "str_epoch_player_247"); _warn = false; } else { _text = (localize "str_epoch_player_248"); _warn = true; }; + if (_warn) then { _text = localize "str_epoch_player_247"; _warn = false; } else { _text = localize "str_epoch_player_248"; _warn = true; }; s_player_warndog = player addAction [format[localize "str_actions_warndog",_text],"\z\addons\dayz_code\actions\dog\warn.sqf",[_dogHandle, _warn], 2, false, true]; }; if (s_player_followdog < 0) then { @@ -891,36 +1009,14 @@ if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance curso s_player_followdog = -1; }; }; - } else { //Engineering {dayz_myCursorTarget removeAction _x} count s_player_repairActions;s_player_repairActions = []; + player removeAction s_player_repair_crtl; s_player_repair_crtl = -1; - - {player removeAction _x} count s_player_combi;s_player_combi = []; - dayz_myCursorTarget = objNull; - s_player_lastTarget = [objNull,objNull,objNull,objNull,objNull]; - - {player removeAction _x} count s_player_parts;s_player_parts = []; - s_player_parts_crtl = -1; - - {player removeAction _x} count s_player_lockunlock;s_player_lockunlock = []; - s_player_lockUnlock_crtl = -1; - - player removeAction s_player_checkGear; - s_player_checkGear = -1; - - player removeAction s_player_SurrenderedGear; - s_player_SurrenderedGear = -1; - - //Others - player removeAction s_player_maintain_area; - s_player_maintain_area = -1; - player removeAction s_player_maintain_area_preview; - s_player_maintain_area_preview = -1; - player removeAction s_player_forceSave; - s_player_forceSave = -1; + //player removeAction s_player_forceSave; + //s_player_forceSave = -1; player removeAction s_player_flipveh; s_player_flipveh = -1; player removeAction s_player_sleep; @@ -937,11 +1033,66 @@ if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance curso s_player_fireout = -1; player removeAction s_player_packtent; s_player_packtent = -1; + player removeAction s_player_packtentinfected; + s_player_packtentinfected = -1; player removeAction s_player_fillfuel; s_player_fillfuel = -1; player removeAction s_player_studybody; s_player_studybody = -1; - //Dog + //fuel + player removeAction s_player_fillfuel20; + s_player_fillfuel20 = -1; + player removeAction s_player_fillfuel5; + s_player_fillfuel5 = -1; + //Allow player to siphon vehicle fuel + player removeAction s_player_siphonfuel; + s_player_siphonfuel = -1; + //Allow player to gather + player removeAction s_player_gather; + s_player_gather = -1; + player removeAction s_player_destorytent; + s_player_destorytent = -1; + // player removeAction s_player_attach_bomb; + // s_player_attach_bomb = -1; + //debug + //player removeAction s_player_debugCheck; + //s_player_debugCheck = -1; + player removeAction s_player_upgradestroage; + s_player_upgradestroage = -1; + //Unlock,Lock + player removeAction s_player_setCode; + s_player_setCode = -1; + player removeAction s_player_lockhouse; + s_player_lockhouse = -1; + player removeAction s_player_unlockhouse; + s_player_unlockhouse = -1; + player removeAction s_player_openGate; + s_player_openGate = -1; + player removeAction s_player_CloseGate; + s_player_CloseGate = -1; + player removeAction s_player_breakinhouse; + s_player_breakinhouse = -1; + player removeAction s_player_BuildUnLock; + s_player_BuildUnLock = -1; + player removeAction s_player_BuildLock; + s_player_BuildLock = -1; + + {player removeAction _x} count s_player_combi;s_player_combi = []; + s_player_lastTarget = [objNull,objNull,objNull,objNull,objNull]; + {player removeAction _x} count s_player_parts;s_player_parts = []; + s_player_parts_crtl = -1; + {player removeAction _x} count s_player_lockunlock;s_player_lockunlock = []; + s_player_lockUnlock_crtl = -1; + player removeAction s_player_checkGear; + s_player_checkGear = -1; + player removeAction s_player_SurrenderedGear; + s_player_SurrenderedGear = -1; + player removeAction s_player_maintain_area; + s_player_maintain_area = -1; + player removeAction s_player_maintain_area_preview; + s_player_maintain_area_preview = -1; + player removeAction s_player_forceSave; + s_player_forceSave = -1; player removeAction s_player_tamedog; s_player_tamedog = -1; player removeAction s_player_feeddog; @@ -958,15 +1109,12 @@ if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance curso s_player_warndog = -1; player removeAction s_player_followdog; s_player_followdog = -1; - - // vault player removeAction s_player_unlockvault; s_player_unlockvault = -1; player removeAction s_player_packvault; s_player_packvault = -1; player removeAction s_player_lockvault; s_player_lockvault = -1; - player removeAction s_player_information; s_player_information = -1; player removeAction s_player_fillgen; @@ -985,33 +1133,31 @@ if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance curso s_player_fuelauto2 = -1; }; - - //Dog actions on player self -_dogHandle = player getVariable ["dogID", 0]; if (_dogHandle > 0) then { _dog = _dogHandle getFSMVariable "_dog"; - _ownerID = "0"; - if (!isNull cursorTarget) then { _ownerID = cursorTarget getVariable ["CharacterID","0"]; }; if (_canDo && !_inVehicle && alive _dog && _ownerID != dayz_characterID) 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]; }; if (s_player_speeddog < 0) then { - _text = (localize "str_epoch_player_249"); + _text = localize "str_epoch_player_249"; _speed = 0; - if (_dog getVariable ["currentSpeed",1] == 0) then { _speed = 1; _text = (localize "str_epoch_player_250"); }; - s_player_speeddog = player addAction [format[localize "str_actions_speeddog", _text], "\z\addons\dayz_code\actions\dog\speed.sqf",[player getVariable ["dogID", 0],_speed], 0, false, true]; + if (_dog getVariable ["currentSpeed",1] == 0) then { _speed = 1; _text = localize "str_epoch_player_250"; }; + s_player_speeddog = player addAction [format[localize "str_actions_speeddog", _text], "\z\addons\dayz_code\actions\dog\speed.sqf",[player getVariable ["dogID",0],_speed], 0, false, true]; }; if (s_player_calldog < 0) then { - s_player_calldog = player addAction [localize "str_actions_calldog", "\z\addons\dayz_code\actions\dog\follow.sqf", [player getVariable ["dogID", 0], true], 2, false, true]; + s_player_calldog = player addAction [localize "str_actions_calldog", "\z\addons\dayz_code\actions\dog\follow.sqf", [player getVariable ["dogID",0], true], 2, false, true]; }; }; } else { player removeAction s_player_movedog; - s_player_movedog = -1; + s_player_movedog = -1; player removeAction s_player_speeddog; - s_player_speeddog = -1; + s_player_speeddog = -1; player removeAction s_player_calldog; - s_player_calldog = -1; + s_player_calldog = -1; }; + +//Monitor +player setVariable ["selfActions", diag_ticktime, false]; \ No newline at end of file diff --git a/SQF/dayz_code/stringtable.xml b/SQF/dayz_code/stringtable.xml index 5663b9c48..331805eac 100644 --- a/SQF/dayz_code/stringtable.xml +++ b/SQF/dayz_code/stringtable.xml @@ -631,6 +631,7 @@ Réparer le véhicule Opravit vozidlo Fahrzeug reparieren + Repareer voertuig Salvage Vehicle @@ -639,6 +640,7 @@ Récupérer le véhicule Rozebrat vozidlo Fahrzeug ausschlachten + Demonteer voertuig To pilot's seat @@ -888,6 +890,7 @@ Zničit stan Détruisez Tente Zelt zerstören + Vernietig Tent Rest @@ -1664,7 +1667,7 @@ Upgrade %1 - Улучшить %1 + Улучшить %1 Améliorer la %1 Vylepšit %1 %1 erweitern @@ -4248,7 +4251,7 @@ Combine to 8 rounds - Собрать в 8п. + Собрать в 8п. Combinar a 8 rondas Assembler en 8 balles Zkombinovat do 8 nábojů @@ -4352,7 +4355,7 @@ Caliber: 12 gauge <br/>Rounds: 2 <br/>Used in: M1014 - Патрон: 12-й калибр <br/>Количество: 2 <br/>Используется в: M1014, Двустволках + Патрон: 12-й калибр <br/>Количество: 2 <br/>Используется в: M1014, Двустволках Calibre: 12 gauge <br/>Rondas: 2 <br/>Usada en: M1014 Calibre: 12<br/>Munitions: 2<br/>Pour: M1014 Ráže: 12 <br/>Munice: 2 <br/>Pro: M1014 @@ -8037,7 +8040,7 @@ At least I haven't got any broken bones Wenigstens sind meine Knochen noch heil - По крайней мере нет переломов + По крайней мере нет переломов Al menos no tengo ningún hueso roto Au moins je n'ai rien de cassé Aspoň, že jsem si nic nezlomil @@ -8045,7 +8048,7 @@ The situation looks dire. I've got multiple broken bones Die Lage ist ernst, mehrere meiner Knochen scheinen gebrochen - Ситуация хреновая. У меня несколько переломов + Ситуация хреновая. У меня несколько переломов La situación parece grave. Tengo multiples huesos rotos La situation est terrible. J'ai plusieurs fractures Situace vypadá bledě. Mám několik zlomenin @@ -8053,7 +8056,7 @@ Things could be better. My leg is broken Die Situation könnte besser sein. Mein Bein ist gebrochen - Все могло быть и лучше. Моя нога сломана + Все могло быть и лучше. Моя нога сломана La cosas no podrían estar mejor... Tengo una pierna rota J'ai connu mieux. Ma jambe est cassée Mohlo by být lépe. Má noha je zlomená @@ -8061,7 +8064,7 @@ Things aren't so good. My arm is broken Das sieht nicht gut aus. Mein Arm ist gebrochen - Дела обстоят не так уж и хорошо. Моя рука сломана + Дела обстоят не так уж и хорошо. Моя рука сломана Las cosas no estan bien. Mi brazo está roto Ça ne va pas bien. Mon bras est cassé Má ruka je zlomená a že by mi bylo do zpěvu, to se říct nedá @@ -8069,7 +8072,7 @@ , although I do feel really sick , aber ich fühle mich überhaupt nicht wohl - , хотя я чувствую себя действительно больным + , хотя я чувствую себя действительно больным , encima me siento realmente mal , bien que je me sens malade , i přesto, že se cítím nemocný @@ -8077,7 +8080,7 @@ , I feel really feverish , aber ich scheine Fieber zu haben - , чувствую, как меня лихорадит + , чувствую, как меня лихорадит , me siento muy febril , je me sens très fébril , i když mám horečku @@ -9022,7 +9025,7 @@ Steel Beam - Стальная балка + Стальная балка Poutrelle Traverza Stahlträger @@ -10478,5 +10481,4 @@ A Rail Integration System kit designed for the SA-58 assault rifle. - - + \ No newline at end of file diff --git a/SQF/dayz_epoch_b/stringtable.xml b/SQF/dayz_epoch_b/stringtable.xml index 16863764b..183258730 100644 --- a/SQF/dayz_epoch_b/stringtable.xml +++ b/SQF/dayz_epoch_b/stringtable.xml @@ -3002,15 +3002,6 @@ \n\nVous ne pouvez accéder à des engins de vos amis dans ce domaine. \n\nMůžete mít přístup pouze zařízení uživatele do této oblasti. - - Repair Vehicle - Fahrzeug reparieren - Починить транспорт - - Repareer voertuig - Réparer le véhicule - Opravit vozidlo - Repair Reparieren @@ -3029,15 +3020,6 @@ Retirer Demontovat - - Salvage Vehicle - Fahrzeug demontieren - Демонтировать запчасти - - Demonteer voertuig - Récupérer des pièces - Demontovat vozidlo - Cargo Check Gepäck prüfen @@ -3398,15 +3380,6 @@ Équipement Vybavení - - Destroy Tent - Zelt zerstören - Сломать палатку - - Vernietig Tent - Détruire la tente - Zničit Stan - Open %1 %1 öffnen @@ -3461,15 +3434,6 @@ Énergie Nécessaire Potřebuje Energii - - Upgrade %1 - %1 aufrüsten - Улучшить %1 - - - Améliorer %1 - Upgradovat - Remove Lock from %1