diff --git a/SQF/dayz_code/BIS_scripts/handleGear.sqf b/SQF/dayz_code/BIS_scripts/handleGear.sqf new file mode 100644 index 000000000..36fe2d9c3 --- /dev/null +++ b/SQF/dayz_code/BIS_scripts/handleGear.sqf @@ -0,0 +1,528 @@ +disableSerialization; +private ["_control","_display","_temp","_event","_data","_x","_stopTheKey","_keyLeft","_i","_index","_size","_indices","_lbcontrol"]; +private ["_key","_keyRight","_keyTop","_keyBottom","_secondColumn","_activateControl","_output","_doFilter"]; +private ["_event","_data","_display","_control","_primaryWeaponControl","_IDCsArray","_lbIDC","_lbColumn","_sum"]; +/* + IGUI_GEAR_filterPrimaryWeapon = (_activeFilter select 0); + IGUI_GEAR_filterSecondaryWeapon = (_activeFilter select 1); + IGUI_GEAR_filterAmmo = (_activeFilter select 2); + IGUI_GEAR_filterBinocular = (_activeFilter select 3); + IGUI_GEAR_filterInventory = (_activeFilter select 4); + IGUI_GEAR_filterPistols = (_activeFilter select 5); + IGUI_GEAR_filterPistolAmmo = (_activeFilter select 6); */ + +_filterSets = [ + //Primary Weapon, Secondary weapon, Ammo, Binocular, Inventory, Pistols, Pistols Ammo + [false,false,false,false,false,false,false], + [false,true,false,true,true,true,true], + [true,false,false,true,true,true,true], + [true,true,true,false,false,true,true], // all but pistol, pistols ammo + [true,true,true,true,true,true,true] +]; + +_icons = [ + "\ca\ui\data\igui_buyUnit_filter_1_ca.paa", + "\ca\ui\data\igui_buyUnit_filter_2_ca.paa", + "\ca\ui\data\igui_buyUnit_filter_3_ca.paa", + "\ca\ui\data\igui_buyUnit_filter_4_ca.paa", + "\ca\ui\data\igui_buyUnit_filter_5_ca.paa" +]; + +_event = _this select 1; +_data = _this select 0; + +_dofilter = false; + +/*-------------------------------------------*/ +if(typeName(_data select 0) == "DISPLAY")then +{ + _display = (_data select 0); +}; + +if(typeName(_data select 0) == "CONTROL")then +{ + _control = (_data select 0); + _display = ctrlParent _control; +}; + + +/*-------------------------------------------*/ +_lbSelectedItem = { + private ["_index","_selectedItem","_n"]; + _lbcontrol = _display displayctrl _lbIDC; + _index = lbCurSel _lbcontrol; + _selectedItem = ""; + _n = 0; + + while {(_selectedItem == "")&&(_n<6)} do { + _selectedItem = _lbcontrol lnbData [_index,1]; + uisleep 0.001; + _n = _n + 1; + }; + + _selectedItem; +}; + +_arrowsEnable = { + private ["_index","_selectedItem"]; + + _lbcontrol = _display displayctrl _lbIDC; + + _controlLeftArrow = _display displayctrl 147; + _controlRightArrow = _display displayctrl 146; + _index = lbCurSel _lbcontrol; + _selectedItemCountLeft = _lbcontrol lnbText [_index,0]; + _selectedItemCountRight = _lbcontrol lnbText [_index,2]; +}; + + +_isWeapon = { + private ["_item","_return"]; + _item = _this select 0; + _return = (str(configfile >> "cfgWeapons" >> _item) != ""); + _return; +}; + +_isMagazine = { + private ["_item","_return"]; + _item = _this select 0; + _return = (str(configfile >> "cfgMagazines" >> _item) != ""); + _return; +}; + + +_IDCsArray = [ + [107], + [121], + [108], + [107], + [122,123,124,125,126,127,128,129], + [107], + [107], + [107], + [109,110,111,112,113,114,115,116,117,118,119,120], + [109,110,111,112,113,114,115,116,117,118,119,120], + [108], + [107], + [130,131], + [107], + [107], + [107], + [107], + [134,135,136,137,138,139,140,141,142,143,144,145], + [107], + [107], + [107], + [107] +]; + + +_showAllIDCs = { +private ["_slotArray","_j","_i"]; +for [{_i=0},{_i-1 ) then { + _itemSlot = _display displayctrl (_slotArray select _j); + _itemSlot ctrlSetFade 0.0; + _itemSlot ctrlCommit 0.3; + + } else { + _itemSlot = _display displayctrl (_slotArray select _j); + _itemSlot ctrlSetFade 0.5; + _itemSlot ctrlCommit 0.3; + }; + }; +}; + + +/* for [{_i=0},{_i> "cfgWeapons" >> _item >> "type"); + }; + if ([_item] call _isMagazine) then { + _return = getNumber(configfile >> "cfgMagazines" >> _item >> "type"); + }; +_return; +}; + +_highlightIDCs = { + _hlIDCs = _this select 0; + for [{_i=0},{_i=0}, {_i = _i - 1} ] do +{ + + _valResult = _val mod _n; + if (_valResult != _val) then { + _bitArray set [_i, 1]; + }; + _n = _n / 2; + _val = _valResult; + }; + _bitArray +}; + +_highlightGearSlots ={ +// [] call _showAllIDCs; + _selectedItem = [] call _lbSelectedItem; + _selectedItemSlot = [_selectedItem] call _itemSlot; + _selectedItemSlotFlags = [_selectedItemSlot] call _returnBitArray; + _selectedItemSlotIDCs = [_selectedItemSlotFlags] call _returnSlotIDCs; + [_selectedItemSlotIDCs] call _higlightIDCs; +}; +_weaponsLBSetFocus = { + _lbcontrol = _display displayctrl _lbIDC; + /** Temporary disabled to prevent bug news:hov5k4$f6f$1@new-server.localdomain **/ + //ctrlSetFocus _lbcontrol; +}; +_setFilterIcon = { + _ctrlIcon = _display displayctrl 148; + _ctrlIcon ctrlSetText (_icons select IGUI_GEAR_activeFilter); +}; + + +_keyActions = { + _keyLeft = [203,327700,327686]; + _keyRight = [205,327696,327687]; + _keyTop = [200,327697,327684]; + _keyBottom = [208,327701,327685]; + _key = _data select 1; + if((_keyLeft find _key)>=0)then { + _control = _display displayctrl 146; + ctrlActivate _control; + _output = true; + }; + if((_keyRight find _key)>=0)then { + _control = _display displayctrl 147; + ctrlActivate _control; + _output = true; + }; + if((_keyTop find _key)>=0)then { + + }; + if((_keyBottom find _key)>=0)then { + + }; +}; +//_bitArray = [0,0,0,0,0 ,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]; +/* +#define WeaponNoSlot 0 // dummy weapons +#define WeaponSlotPrimary 1 // primary weapons +#define WeaponSlotSecondary 4 // secondary weapons +#define WeaponSlotHandGun 2 // HandGun +#define WeaponSlotHandGunItem 16 // HandGun magazines +#define WeaponSlotItem 256 // items +#define WeaponSlotBinocular 4096 // binocular +#define WeaponHardMounted 65536 +#define WeaponSlotInventory 131072 // inventory items +*/ + +_setFilterGlobals = { + _activeFilter = _this; + IGUI_GEAR_filterPrimaryWeapon = (_activeFilter select 0); + IGUI_GEAR_filterSecondaryWeapon = (_activeFilter select 1); + IGUI_GEAR_filterAmmo = (_activeFilter select 2); + IGUI_GEAR_filterBinocular = (_activeFilter select 3); + IGUI_GEAR_filterInventory = (_activeFilter select 4); + IGUI_GEAR_filterPistols = (_activeFilter select 5); + IGUI_GEAR_filterPistolAmmo = (_activeFilter select 6); +}; + +//1201 +_highlightFilterIcons = { + for [{_i=0},{_i<6}, {_i = _i + 1} ] do + { + _control = _display displayctrl (1200 + _i); + _control ctrlSetTextColor [0.6000,0.8392,0.4706,1.0]; + }; + _control = _display displayctrl (1200 + _this); + _control ctrlSetTextColor [1,1,1,1]; +}; + +_matchesFilter = { + private ["_itemValue","_itemBitArray"]; + _output = false; + + _itemValue = _this select 0; + _itemBitArray = [_itemValue] call _returnBitArray; + + + if (_itemValue == 1 && IGUI_GEAR_filterPrimaryWeapon) then { + _output = true; + }; + + if (_itemValue == 5 && IGUI_GEAR_filterPrimaryWeapon) then { + _output = true; + + }; + + if (_itemValue == 4 && IGUI_GEAR_filterSecondaryWeapon) then { + _output = true; + }; + + if (_itemValue == 2 && IGUI_GEAR_filterPistols) then { + _output = true; + }; + if (_itemValue == 16 && IGUI_GEAR_filterPistolAmmo) then { + _output = true; + }; + + if (_itemValue == 131072 && IGUI_GEAR_filterInventory) then { + _output = true; + }; + + if (_itemValue == 512 && IGUI_GEAR_filterAmmo) then { + _output = true; + }; + if (_itemValue == 256 && IGUI_GEAR_filterAmmo) then { + _output = true; + }; + + if (_itemValue == 4096 && IGUI_GEAR_filterBinocular) then { + _output = true; + }; + _output; +}; + +_filterItems = { + private ["_n","_itemType"]; + _deleteIndexes = []; + _lbcontrol = _display displayctrl _lbIDC; + _n = (lnbSize _lbcontrol) select 0; + _j = 0; + for [{_i=_n},{_i>=0}, {_i = _i - 1} ] do + { + _item = _lbcontrol lnbData [_i,1]; + _itemType = [_item] call _itemSlot; + + if ([_itemType] call _matchesFilter) then { + _j = _j + 1; + _deleteIndexes set [(_j-1), _i]; + }; + }; + LB_CTRL = _lbcontrol; + { + _lbcontrol lnbDeleteRow _x; + } forEach _deleteIndexes; +}; + +_itemPicture = { + private ["_item"]; + _item = _this select 0; + + _return = ""; + + if ([_item] call _isWeapon) then { + _return = getText(configfile >> "cfgWeapons" >> _item >> "picture"); + }; + if ([_item] call _isMagazine) then { + _return = getText(configfile >> "cfgMagazines" >> _item >> "picture"); + }; + _return; +}; + +_itemDescription = { + private ["_inputItem","_return"]; + _inputItem = _this select 0; + _return = ""; + if ([_inputItem] call _isWeapon) then { + _name = getText(configfile >> "cfgWeapons" >> _inputItem >> "descriptionShort"); + _return = (_name); + }; + + if ([_inputItem] call _isMagazine) then { + _name = getText(configfile >> "cfgMagazines" >> _inputItem >> "descriptionShort"); + _return = (_name); + }; + _return; +}; + +_itemName = { + private ["_item"]; + _item = _this select 0; + + _return = ""; + + if ([_item] call _isWeapon) then { + _name = getText(configfile >> "cfgWeapons" >> _item >> "displayName"); + _return = ( _name); + }; + + if ([_item] call _isMagazine) then { + _name = getText(configfile >> "cfgMagazines" >> _item >> "displayName"); + _return = ( _name); + }; + + _return; +}; +_displayItemIcon = { + private ["_selectedItem","_itemPicturePath"]; + _selectedItem = [] call _lbSelectedItem; + _itemPicturePath = [_selectedItem] call _itemPicture; + _pictureControl = _display displayctrl 1104; + _pictureControl ctrlSetText _itemPicturePath; +}; + +_displayItemDescription = { + private ["_descriptionControl","_selectedItemDescription","_selectedItemN"]; + _selectedItemN = [] call _lbSelectedItem; + _selectedItemDescription = [_selectedItemN] call _itemDescription; + _descriptionControl = _display displayctrl 1106; + + _descriptionControl ctrlSetStructuredText parseText(_selectedItemDescription); +}; + +_displayItemName = { + private ["_nameControl","_itemDescription"]; + _selectedItem = [] call _lbSelectedItem; + _itemName = [_selectedItem] call _itemName; + _nameControl = _display displayctrl 1101; + _nameControl ctrlSetText _itemName; +}; + + +_output = true; +_lbIDC = 105; + + +switch _event do { + case "initDialog": { + [] call _showAllIDCs; + }; + case "onLoad": { + [] call _weaponsLBSetFocus; + [] call _arrowsEnable; + [] call _displayItemIcon; + [] call _displayItemName; + [] call _displayItemDescription; + [] call _showAllIDCs; + //[] call _arrowsEnable; + //[] call _highlightGearSlots; + }; + + //used for buyUnits + case "filter": { + IGUI_GEAR_activeFilter = IGUI_GEAR_activeFilter + 1; + if (IGUI_GEAR_activeFilter > ((count _filterSets)-1 )) then { + IGUI_GEAR_activeFilter = 0; + }; + _doFilter = true; + }; + + //changing IGUI_GEAR_activeFilter, but not filter picture (used for buyGear) + case "filterNotSet": { + IGUI_GEAR_activeFilter = IGUI_GEAR_activeFilter + 1; + if (IGUI_GEAR_activeFilter > ((count _filterSets)-1 )) then { + IGUI_GEAR_activeFilter = 0; + }; + //_doFilter = true; + }; + + case "filter_left": { + IGUI_GEAR_activeFilter = IGUI_GEAR_activeFilter - 1; + if (IGUI_GEAR_activeFilter < 0) then { + IGUI_GEAR_activeFilter = ((count _filterSets)-1 ); + }; + _doFilter = true; + }; + + + case "onFocus": { + [] call _weaponsLBSetFocus; + //[] call _arrowsEnable; + }; + + case "onKeyDown": { + [] call _keyActions; + }; + case "onLBSelChanged": { + [] call _displayItemIcon; + [] call _displayItemName; + [] call _displayItemDescription; + //[] call _arrowsEnable; + [] call _highlightGearSlots; + }; + case "onKillFocus": { + [] call _weaponsLBSetFocus; + }; + default { + + }; +}; + +/* Filter removed, moving to engine */ +if _doFilter then { + (_filterSets select IGUI_GEAR_activeFilter) call _setFilterGlobals; + // [] call _filterItems; + // [] call _setFilterIcon; +}; + + +_output; +false; \ No newline at end of file diff --git a/SQF/dayz_code/Configs/rscTitles.hpp b/SQF/dayz_code/Configs/rscTitles.hpp index 55536901b..05e71d5cd 100644 --- a/SQF/dayz_code/Configs/rscTitles.hpp +++ b/SQF/dayz_code/Configs/rscTitles.hpp @@ -893,7 +893,7 @@ class RscDisplayGear idd = 106; enableDisplay = 1; // 177 based - //onLoad = "_this call fn_gearMenuChecks;[] spawn object_monitorGear; {player removeMagazines _x} forEach MeleeMagazines; call gear_ui_init; if (isNil('IGUI_GEAR_activeFilter')) then { IGUI_GEAR_activeFilter = 0;}; private ['_dummy']; _dummy = [_this,'initDialog'] call compile preprocessFile '\ca\ui\scripts\handleGear.sqf'; _dummy = [_this,'onLoad'] execVM '\ca\ui\scripts\handleGear.sqf'; _dummy;"; + //onLoad = "_this call fn_gearMenuChecks;[] spawn object_monitorGear; {player removeMagazines _x} forEach MeleeMagazines; call gear_ui_init; if (isNil('IGUI_GEAR_activeFilter')) then { IGUI_GEAR_activeFilter = 0;}; private ['_dummy']; _dummy = [_this,'initDialog'] call compile preprocessFile '\z\addons\dayz_code\BIS_scripts\handleGear.sqf'; _dummy = [_this,'onLoad'] execVM '\z\addons\dayz_code\BIS_scripts\handleGear.sqf'; _dummy;"; onUnload = "call player_gearSync; call dayz_forceSave;"; class controls @@ -1053,8 +1053,8 @@ class RscDisplayGear idc = 146; x = -2; style = 2048; - onSetFocus = "private [""_dummy""]; _dummy = [_this,""onFocus""] execVM ""\ca\ui\scripts\handleGear.sqf""; _dummy;"; - onButtonClick = "private [""_dummy""]; _dummy = [_this,""onLBListSelChanged""] execVM ""\ca\ui\scripts\handleGear.sqf""; _dummy;"; + onSetFocus = "private [""_dummy""]; _dummy = [_this,""onFocus""] execVM ""\z\addons\dayz_code\BIS_scripts\handleGear.sqf""; _dummy;"; + onButtonClick = "private [""_dummy""]; _dummy = [_this,""onLBListSelChanged""] execVM ""\z\addons\dayz_code\BIS_scripts\handleGear.sqf""; _dummy;"; text = "<"; }; class Available_items: RscIGUIListNBox @@ -1065,10 +1065,10 @@ class RscDisplayGear idcRight = 147; idcLeft = 146; colorPlayerItem[] = {0.8784,0.8471,0.651,1}; - onKeyDown = "private [""_dummy""]; _dummy = [_this,""onKeyDown"",0,107,0,107] execVM ""\ca\ui\scripts\handleGear.sqf""; _dummy;"; - onLBSelChanged = "private [""_dummy""]; _dummy = [_this,""onLBSelChanged""] execVM ""\ca\ui\scripts\handleGear.sqf""; _dummy;"; - onLBListSelChanged = "private [""_dummy""]; _dummy = [_this,""onLBListSelChanged""] execVM ""\ca\ui\scripts\handleGear.sqf""; _dummy;"; - onKillFocus = "private [""_dummy""]; _dummy = [_this,""onKillFocus""] execVM ""\ca\ui\scripts\handleGear.sqf""; _dummy;"; + onKeyDown = "private [""_dummy""]; _dummy = [_this,""onKeyDown"",0,107,0,107] execVM ""\z\addons\dayz_code\BIS_scripts\handleGear.sqf""; _dummy;"; + onLBSelChanged = "private [""_dummy""]; _dummy = [_this,""onLBSelChanged""] execVM ""\z\addons\dayz_code\BIS_scripts\handleGear.sqf""; _dummy;"; + onLBListSelChanged = "private [""_dummy""]; _dummy = [_this,""onLBListSelChanged""] execVM ""\z\addons\dayz_code\BIS_scripts\handleGear.sqf""; _dummy;"; + onKillFocus = "private [""_dummy""]; _dummy = [_this,""onKillFocus""] execVM ""\z\addons\dayz_code\BIS_scripts\handleGear.sqf""; _dummy;"; x = 0; y = 0; w = 0.46; @@ -1079,8 +1079,8 @@ class RscDisplayGear { idc = 147; x = -2; - onSetFocus = "private [""_dummy""]; _dummy = [_this,""onFocus""] execVM ""\ca\ui\scripts\handleGear.sqf""; _dummy;"; - onButtonClick = "private [""_dummy""]; _dummy = [_this,""onLBListSelChanged""] execVM ""\ca\ui\scripts\handleGear.sqf""; _dummy;"; + onSetFocus = "private [""_dummy""]; _dummy = [_this,""onFocus""] execVM ""\z\addons\dayz_code\BIS_scripts\handleGear.sqf""; _dummy;"; + onButtonClick = "private [""_dummy""]; _dummy = [_this,""onLBListSelChanged""] execVM ""\z\addons\dayz_code\BIS_scripts\handleGear.sqf""; _dummy;"; text = ">"; }; }; @@ -1619,7 +1619,7 @@ class RscDisplayGear emptyMag2 = "\ca\ui\data\ui_gear_mag2_gs.paa"; emptyHGun = "\ca\ui\data\ui_gear_hgun_gs.paa"; emptyHGunMag = "\ca\ui\data\ui_gear_hgunmag_gs.paa"; - onLoad = "_this call fn_gearMenuChecks;[] spawn object_monitorGear; call gear_ui_init; call ui_gear_sound;if (isNil('IGUI_GEAR_activeFilter')) then { IGUI_GEAR_activeFilter = 0;}; private ['_dummy']; _dummy = [_this,'initDialog'] call compile preprocessFile '\ca\ui\scripts\handleGear.sqf'; _dummy = [_this,'onLoad'] execVM '\ca\ui\scripts\handleGear.sqf'; _dummy;"; + onLoad = "_this call fn_gearMenuChecks;[] spawn object_monitorGear; call gear_ui_init; call ui_gear_sound;if (isNil('IGUI_GEAR_activeFilter')) then { IGUI_GEAR_activeFilter = 0;}; private ['_dummy']; _dummy = [_this,'initDialog'] call compile preprocessFile '\z\addons\dayz_code\BIS_scripts\handleGear.sqf'; _dummy = [_this,'onLoad'] execVM '\z\addons\dayz_code\BIS_scripts\handleGear.sqf'; _dummy;"; class ControlsBackground { class Mainback: RscPicture diff --git a/SQF/dayz_code/Configs/safegui.hpp b/SQF/dayz_code/Configs/safegui.hpp index 05051ffc5..0efabd307 100644 --- a/SQF/dayz_code/Configs/safegui.hpp +++ b/SQF/dayz_code/Configs/safegui.hpp @@ -648,7 +648,7 @@ class KeypadUI y = 0.121749; w = 0.126596; h = 0.153191; - onButtonClick = "[player,""keypad_tick"",0,false] call dayz_zombieSpeak;((ctrlParent (_this select 0)) closeDisplay 3000); if(!isNull dayz_selectedVault and (typeOf dayz_selectedVault) in DZE_LockedStorage) then {dayz_selectedVault spawn player_unlockVault;};"; + onButtonClick = "[player,""keypad_tick"",0,false] call dayz_zombieSpeak;((ctrlParent (_this select 0)) closeDisplay 3000); if(!isNull dayz_selectedVault) then {dayz_selectedVault spawn player_unlockVault;};"; }; }; }; diff --git a/SQF/dayz_code/actions/player_buildingDowngrade.sqf b/SQF/dayz_code/actions/player_buildingDowngrade.sqf index 2a55adf8c..a31221ef6 100644 --- a/SQF/dayz_code/actions/player_buildingDowngrade.sqf +++ b/SQF/dayz_code/actions/player_buildingDowngrade.sqf @@ -123,7 +123,8 @@ if ((count _upgrade) > 0) then { // Reset the character ID on locked doors before they inherit the newclassname if (_classname in DZE_DoorsLocked) then { - _object setVariable ["CharacterID",dayz_characterID,true]; + _object setVariable ["CharacterID",dayz_characterID,true]; + _objectCharacterID = dayz_characterID; }; _classname = _newclassname; @@ -140,7 +141,7 @@ if ((count _upgrade) > 0) then { cutText [format[(localize "str_epoch_player_142"),_text], "PLAIN DOWN", 5]; - PVDZE_obj_Swap = [_objectCharacterID,_object,[_dir,_location],_classname,_obj,_objectID,_objectUID,(getPlayerUID player)]; + PVDZE_obj_Swap = [_objectCharacterID,_object,[_dir,_location],_classname,_obj,_objectID,_objectUID,player]; publicVariableServer "PVDZE_obj_Swap"; player reveal _object; diff --git a/SQF/dayz_code/actions/vault_combination_1.sqf b/SQF/dayz_code/actions/vault_combination_1.sqf index 57e3c636c..035a6fe99 100644 --- a/SQF/dayz_code/actions/vault_combination_1.sqf +++ b/SQF/dayz_code/actions/vault_combination_1.sqf @@ -1,9 +1,10 @@ private ["_ok"]; + +if(DZE_ActionInProgress) exitWith { cutText [(localize "STR_EPOCH_PLAYER_21") , "PLAIN DOWN"]; }; +DZE_ActionInProgress = true; + dayz_selectedVault = _this select 3; dayz_combination = ""; - -{player removeAction _x} forEach s_player_combi;s_player_combi = []; -s_player_unlockvault = 1; if(!isNull dayz_selectedVault) then { @@ -14,4 +15,4 @@ if(!isNull dayz_selectedVault) then { }; }; -s_player_unlockvault = -1; \ No newline at end of file +DZE_ActionInProgress = false; \ No newline at end of file diff --git a/SQF/dayz_code/compile/fn_selfActions.sqf b/SQF/dayz_code/compile/fn_selfActions.sqf index b68bcae18..670ebd71f 100644 --- a/SQF/dayz_code/compile/fn_selfActions.sqf +++ b/SQF/dayz_code/compile/fn_selfActions.sqf @@ -466,10 +466,11 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu if(_typeOfCursorTarget in DZE_LockedStorage) then { if(_ownerID == dayz_combination or _ownerID == dayz_playerUID) then { _combi = player addAction [format["Open %1",_text], "\z\addons\dayz_code\actions\vault_unlock.sqf",_cursorTarget, 0, false, true, "",""]; + s_player_combi set [count s_player_combi,_combi]; } else { _combi = player addAction [format["Unlock %1",_text], "\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; } else { if(_ownerID != dayz_combination and _ownerID != dayz_playerUID) then { diff --git a/SQF/dayz_code/compile/player_unlockVault.sqf b/SQF/dayz_code/compile/player_unlockVault.sqf index 30cdd8583..428d6dcc3 100644 --- a/SQF/dayz_code/compile/player_unlockVault.sqf +++ b/SQF/dayz_code/compile/player_unlockVault.sqf @@ -14,6 +14,11 @@ s_player_unlockvault = 1; _obj = _this; _objType = typeOf _obj; +if (!(_objType in DZE_LockedStorage)) exitWith { + s_player_unlockvault = -1; + DZE_ActionInProgress = false; +}; + _playerNear = _obj call dze_isnearest_player; if(_playerNear) exitWith { DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_20") , "PLAIN DOWN"]; }; diff --git a/SQF/dayz_code/compile/player_upgradeVehicle.sqf b/SQF/dayz_code/compile/player_upgradeVehicle.sqf index 99eff9c34..b87c62184 100644 --- a/SQF/dayz_code/compile/player_upgradeVehicle.sqf +++ b/SQF/dayz_code/compile/player_upgradeVehicle.sqf @@ -7,11 +7,13 @@ private ["_proceed","_itemIn","_countIn","_missing","_missingQty","_qty","_remov if(DZE_ActionInProgress) exitWith { cutText [(localize "STR_EPOCH_PLAYER_52") , "PLAIN DOWN"]; }; DZE_ActionInProgress = true; -// look for nearest vehicle +if (vehicle player != player) exitWith {DZE_ActionInProgress = false; cutText ["\n\nYou cannot perform an upgrade while still inside a vehicle.", "PLAIN DOWN"]}; + +// look for nearest empty vehicle _findNearestVehicles = nearestObjects [player, ["LandVehicle"], 10]; _findNearestVehicle = []; { - if (alive _x) exitWith { + if (alive _x and (count (crew _x)) == 0) exitWith { _findNearestVehicle set [(count _findNearestVehicle),_x]; }; } foreach _findNearestVehicles; diff --git a/SQF/dayz_code/compile/player_zombieAttack.sqf b/SQF/dayz_code/compile/player_zombieAttack.sqf index 06af043a1..29ae079fd 100644 --- a/SQF/dayz_code/compile/player_zombieAttack.sqf +++ b/SQF/dayz_code/compile/player_zombieAttack.sqf @@ -25,7 +25,11 @@ if (r_player_unconscious && _vehicle == player && _type == "zombie") then { _move = "Dog_Attack"; }; }; -_dir = [_unit,player] call BIS_Fnc_dirTo; + +_tPos = visiblePositionASL _vehicle; +_zPos = visiblePositionASL _unit; + +_dir = [_zpos,_tPos] call BIS_Fnc_dirTo; _unit setDir _dir; // _unit playMove _move; @@ -64,7 +68,6 @@ if (_vehicle != player) then { //diag_log ("Hitpoints " +str(_wound) +str(_total)); - //["PVDZE_plr_HitV",[_vehicle, _wound,_total, _unit,"zombie"]] call broadcastRpcCallAll; if (_dam >= 1) then { if (r_player_blood < (r_player_bloodTotal * 0.8)) then { _cnt = count (DAYZ_woundHit select 1); @@ -80,22 +83,14 @@ if (_vehicle != player) then { _damage = 0.1 + random (1.2); //diag_log ("START DAM: Player Hit on " + _wound + " for " + str(_damage)); [player, _wound, _damage, _unit,"zombie"] call fnc_usec_damageHandler; - //PVDZE_plr_Hit = [player,_wound, _damage, _unit,"zombie"]; - //publicVariable "PVDZE_plr_Hit"; [_unit,"hit",2,false] call dayz_zombieSpeak; }; }; } else { - //Did he hit? - //_currentAnim = animationState _unit; //diag_log ("Animation state: " +(_currentAnim)); - //"amovpercmstpsnonwnondnon", _attackanimations = ["zombiestandingattack1","zombiestandingattack2","zombiestandingattack3","zombiestandingattack4","zombiestandingattack5","zombiestandingattack6","zombiestandingattack7","zombiestandingattack8","zombiestandingattack9","zombiestandingattack10","zombiefeed1","zombiefeed2","zombiefeed3","zombiefeed4","zombiefeed5"]; if (((_unit distance player) <= dayz_areaAffect) and ((animationState _unit) in _attackanimations)) then { //check LOS - private[]; - _tPos = (getPosASL _vehicle); - _zPos = (getPosASL _unit); _inAngle = [_zPos,(getdir _unit),50,_tPos] call fnc_inAngleSector; if (_inAngle) then { //LOS check @@ -116,22 +111,7 @@ if (_vehicle != player) then { //diag_log ("START DAM: Player Hit on " + _wound + " for " + str(_damage)); [player, _wound, _damage, _unit,"zombie"] call fnc_usec_damageHandler; - //PVDZE_plr_Hit = [player,_wound, _damage, _unit,"zombie"]; - //publicVariable "PVDZE_plr_Hit"; [_unit,"hit",2,false] call dayz_zombieSpeak; - } else { - //diag_log ("NO LOS: Player Hit on " + str(_unit) + " for " + str(_vehicle)); - /* - _isZombieInside = [_unit,_building] call fnc_isInsideBuilding; - if (_isPlayerInside) then { - _damage = 0.1 + random (1.2); - diag_log ("START DAM: Player Hit on " + _wound + " for " + str(_damage)); - [player, _wound, _damage, _unit,"zombie"] call fnc_usec_damageHandler; - //PVDZE_plr_Hit = [player,_wound, _damage, _unit,"zombie"]; - //publicVariable "PVDZE_plr_Hit"; - [_unit,"hit",2,false] call dayz_zombieSpeak; - }; - */ }; }; }; diff --git a/SQF/dayz_code/init/variables.sqf b/SQF/dayz_code/init/variables.sqf index 718ff5c88..69d7a9869 100644 --- a/SQF/dayz_code/init/variables.sqf +++ b/SQF/dayz_code/init/variables.sqf @@ -494,7 +494,7 @@ DZE_isNewStorage = ["VaultStorage","OutHouse_DZ","Wooden_shed_DZ","WoodShack_DZ" // These work with just a running generator dayz_fuelpumparray = ["FuelPump_DZ","Land_A_FuelStation_Feed","Land_Ind_FuelStation_Feed_EP1","Land_FuelStation_Feed_PMC","FuelStation","Land_ibr_FuelStation_Feed","Land_fuelstation_army","Land_fuelstation","land_fuelstation_w","Land_benzina_schnell"]; -DZE_fueltruckarray = ["KamazRefuel_DZ","UralRefuel_TK_EP1_DZ","MtvrRefuel_DES_EP1_DZ","V3S_Refuel_TK_GUE_EP1_DZ"]; +DZE_fueltruckarray = ["KamazRefuel_DZ","UralRefuel_TK_EP1_DZ","MtvrRefuel_DES_EP1_DZ","V3S_Refuel_TK_GUE_EP1_DZ","MtvrRefuel_DZ"]; // Standard Fuel sources dayz_fuelsources = ["Land_Ind_TankSmall","Land_fuel_tank_big","Land_fuel_tank_stairs","Land_fuel_tank_stairs_ep1","Land_wagon_tanker","Land_fuelstation","Land_fuelstation_army","land_fuelstation_w","Land_benzina_schnell"]; diff --git a/SQF/dayz_code/medical/bandage.sqf b/SQF/dayz_code/medical/bandage.sqf index bc4a811fd..277b39df7 100644 --- a/SQF/dayz_code/medical/bandage.sqf +++ b/SQF/dayz_code/medical/bandage.sqf @@ -7,13 +7,14 @@ player removeMagazine "ItemBandage"; call fnc_usec_medic_removeActions; r_action = false; -[1,1] call dayz_HungerThirst; if (vehicle player == player) then { //not in a vehicle player playActionNow "Medic"; }; +[1,1] call dayz_HungerThirst; + r_interrupt = false; _animState = animationState player; r_doLoop = true; @@ -38,26 +39,36 @@ while {r_doLoop} do { r_doLoop = false; if (_finished) then { - //["usecBandage",[_unit,player]] call broadcastRpcCallAll; - usecBandage = [_unit,player]; - publicVariable "usecBandage"; - - if (_unit == player) then { - //Self Healing - _id = [player,player] execVM "\z\addons\dayz_code\medical\publicEH\medBandaged.sqf"; - dayz_sourceBleeding = objNull; - } else { - //PVDZE_plr_HumanityChange = [player,20]; - [player,20] call player_humanityChange; - }; - {_unit setVariable[_x,false,true];} forEach USEC_woundHit; - _unit setVariable ["USEC_injured",false,true]; + _num_removed = ([player,"ItemBandage"] call BIS_fnc_invRemove); + if(_num_removed == 1) then { + + if (vehicle player != player) then { + _display = findDisplay 106; + _display closeDisplay 0; + }; + + //["usecBandage",[_unit,player]] call broadcastRpcCallAll; + usecBandage = [_unit,player]; + publicVariable "usecBandage"; + + if (_unit == player) then { + //Self Healing + _id = [player,player] execVM "\z\addons\dayz_code\medical\publicEH\medBandaged.sqf"; + dayz_sourceBleeding = objNull; + } else { + //PVDZE_plr_HumanityChange = [player,20]; + [player,20] call player_humanityChange; + }; + + {_unit setVariable[_x,false,true];} forEach USEC_woundHit; + _unit setVariable ["USEC_injured",false,true]; + + }; } else { r_interrupt = false; if (vehicle player == player) then { [objNull, player, rSwitchMove,""] call RE; player playActionNow "stop"; }; - player addMagazine "ItemBandage"; }; \ No newline at end of file diff --git a/SQF/dayz_code/medical/morphine.sqf b/SQF/dayz_code/medical/morphine.sqf index 914558348..a63848a13 100644 --- a/SQF/dayz_code/medical/morphine.sqf +++ b/SQF/dayz_code/medical/morphine.sqf @@ -38,6 +38,12 @@ r_doLoop = false; if (_finished) then { _num_removed = ([player,"ItemMorphine"] call BIS_fnc_invRemove); if(_num_removed == 1) then { + + if (vehicle player != player) then { + _display = findDisplay 106; + _display closeDisplay 0; + }; + if (_unit == player) then { //Self Healing _id = [player,player] execVM "\z\addons\dayz_code\medical\publicEH\medMorphine.sqf"; diff --git a/SQF/dayz_code/medical/painkiller.sqf b/SQF/dayz_code/medical/painkiller.sqf index aa9cb33be..45cdae866 100644 --- a/SQF/dayz_code/medical/painkiller.sqf +++ b/SQF/dayz_code/medical/painkiller.sqf @@ -11,6 +11,11 @@ r_action = false; _num_removed = ([player,"ItemPainkiller"] call BIS_fnc_invRemove); if(_num_removed == 1) then { + if (vehicle player != player) then { + _display = findDisplay 106; + _display closeDisplay 0; + }; + _unit setVariable ["USEC_inPain", false, true]; if (vehicle player == player) then { diff --git a/SQF/dayz_code/medical/transfusion.sqf b/SQF/dayz_code/medical/transfusion.sqf index 66f82dc71..1be704fe5 100644 --- a/SQF/dayz_code/medical/transfusion.sqf +++ b/SQF/dayz_code/medical/transfusion.sqf @@ -10,11 +10,13 @@ _lastused = _unit getVariable ["LastTransfusion", time]; call fnc_usec_medic_removeActions; r_action = false; + +// not possible to transfuse while in a vehicle +if (vehicle player != player) exitWith { }; + +player playActionNow "Medic"; + [1,1] call dayz_HungerThirst; -if (vehicle player == player) then { - //not in a vehicle - player playActionNow "Medic"; -}; r_interrupt = false; _animState = animationState player; diff --git a/SQF/dayz_epoch_b/stringtable.xml b/SQF/dayz_epoch_b/stringtable.xml index a365c0093..19b1456ea 100644 --- a/SQF/dayz_epoch_b/stringtable.xml +++ b/SQF/dayz_epoch_b/stringtable.xml @@ -2586,8 +2586,8 @@ Keymakers kit - Schlüsselmacher kit - Keymakers kit + Keymakers kit + Schlüsselmacher kit Набор для создания ключей Keymakers kit Sleutelmakers set @@ -2681,420 +2681,420 @@ Magazine %1 / %2 - Weapons %3 / %4 - Backpacks %5 / %6 Magazine %1 / %2 - Waffen %3 / %4 - Rucksäcke %5 / %6 Припасы %1 / %2 - Оружие %3 / %4 - Рюкзаки %5 / %6 - + Magazijnen %1 / %2 - Wapens %3 / %4 - Rugzakken %5 / %6 Munitions et objets %1 / %2 - Armes et outils %3 / %4 - Sac à dos %5 / %6 - + Another player wants to tag you as friendly. To accept, tag player as friendly. Another player wants to tag you as friendly. To accept, tag player as friendly. Ein anderer Spieler möchte Sie als Freund markieren. Um dies zu akzeptieren markiere den Spieler ebenfalls als Freund. Игрок хочет отметить вас как друга. Чтобы принять, отметьте его как друга. - + Another player wil jou als bevriend markeren. Om te accepteren, markeer player als bevriend. Another player veut vous marquer comme amical(e). Pour accepter, marquez player comme amical(e). - + Pulse is extremely weak Pulse is extremely weak Puls ist extrem schwach Пульс крайне слаб - + Polsslag is erg zwak Le pouls est extrêmement faible - + Pulse is weak Pulse is weak Puls ist schwach Пульс слаб - + Polsslag is zwak Le pouls est faible - + Pulse is strong Pulse is strong Puls ist stark Пульс сильный - + Polsslag is sterk Le pouls est fort - + Trading canceled. Trading canceled. Handel abgebrochen. Торговля отменена. - + Handel is afgebroken Échange annulé. - + Cannot access gear in a locked vehicle. Cannot access gear in a locked vehicle. Es kann nicht auf das Inventar bei verschlossenen Fahrzeugen zugegriffen werden. Нельзя открывать инвентарь запертого транспорта. - + Je kunt niet bij de intentaris van een afgesloten voertuig. Impossible d'accéder au contenu d'un véhicule verrouillé - + No camo nets found nearby. No camo nets found nearby. Keine Tarn-Netze in der Nähe gefunden. Камуфляжные сети не найдены. - + Geen camouflagenet in de buurt gevonden. Aucun de filet de camouflage n'a été trouvé aux alentours - + You have been crushed between two objects. You have been crushed between two objects. Sie wurden zwischen zwei Objekten zerquetscht. - - + + Je bent geplet tussen twee objecten. Vous avez été écrasé entre deux objets. - + Lock already in progress. Lock already in progress. Abschließen bereits im Gange. Уже закрывается. - + Wordt al op slot gezet. Le verrouillage est déjà en cours. - + Cannot lock while another player is nearby. Cannot lock while another player is nearby. Abschließen nicht möglich, während ein anderer Spieler in der Nähe ist. Нельзя закрывать, когда другой игрок находится поблизости. - + Kan niet op slot zetten met een andere speler in de buurt. Impossible de verrouiller lorsque d'autres joueurs sont proches. - + Cannot Abort while in a trader city! Cannot Abort while in a trader city! Die Verbindung kann nicht getrennt werden, während man sich in einer Händler-Stadt aufhällt! Нельзя выходить, находясь в торговом городе! - + Kan niet uitloggen in een handel stad. Impossible d'interrompre dans un marché! - + Pack tent already in progress. Pack tent already in progress. Packen des Zeltes bereits im Gange. Палатка уже упаковывается. - + Tent wordt al reeds ingepakt Le pliage de la tente est déjà en cours. - + Tent not setup yet. Tent not setup yet. Zeltaufbau noch nicht möglich. Палатка ещё не установлена. - + Tent is nog niet opgezet. La tente n'est pas encore installée. - + That is already being packed. That is already being packed. Das ist schon gepackt. Это уже упаковано. - + Dit wordt al reeds ingepakt. C'est déjà en cours d'empaquetage. - + Cannot pack while another player is nearby. Cannot pack while another player is nearby. Packen nicht möglich, während ein anderer Spieler in der Nähe ist. Нельзя упаковывать, когда другой игрок рядом. - + Kan niet inpakken met een andere speler in de buurt Impossible d'empaqueter lorsque d'autres joueurs sont proches. - + can't count magazines! can't count magazines! Magazine können nicht gezählt werden! - - + + kan de magazijnen niet tellen Ne peut pas compter les munitions! - + You must have RawMeat You must have RawMeat Sie müssen rohes Fleisch besitzen У вас должно быть сырое мясо - + Je moet in het bezit zijn van rauw vlees Vous devez avoir de la viande crue - + Wrong code entered to many times wait 10 seconds Wrong code entered to many times wait 10 seconds Es wurde zu oft der falsche eingetippt, Sie müssen nun 10 Sekunden warten Неправильный код введён слишком много раз, подождите 10 секунд - + Je hebt te vaak een foute code ingevoerd. 10 seconden geduld svp. Trop d'erreurs avec le code, patientez 10 secondes - + Cannot unlock while another player is nearby. Cannot unlock while another player is nearby. Aufschließen nicht möglich, während ein anderer Spieler in der Nähe ist. Нельзя открывать, когда другой игрок рядом. - + Kan niet van slot afhalen met een andere speler in de buurt. Impossible de déverrouiller lorsque d'autres joueurs sont proches. - + Unlock already in progress. Unlock already in progress. Entsperren bereits im Gange. Уже открывается. - + Wordt al reeds van slot gehaald. Le déverrouillage est déjà en cours. - + Boil already in progress. Boil already in progress. Aufkochen bereits im Gange. Уже кипятится. - + Je bent al aan ket koken. L'ébullition est déjà en cours. - + Cooking already in progress. Cooking already in progress. Kochen bereits im Gange. Уже готовится. - + Je bent al aan het koken. La cuisson est déjà en cours. - + Refuel already in progress. Refuel already in progress. Betanken bereits im Gange. Уже заправляется. - + Je bent al aan het tanken. Le ravitaillement en carburant est déjà en cours. - + Preparing to fuel and start generator, move to cancel. Preparing to fuel and start generator, move to cancel. Betanken und Starten des Generators, bewegen Sie sich um den Vorgang abzubrechen. Подготовка к заправке и запуску генератора, двигайтесь для отмены. - + De generator wordt zo volgetankt en gestart, beweeg om te annuleren. Remplissage du réservoir et démarrage du générateur, bougez pour annuler. - + Canceled. Canceled. Abgebrochen. Отмена. - + Ge-annuleerd. Annulé - + No Vehicles Nearby. No Vehicles Nearby. Keine Fahrzeuge in der Nähe. Нет транспорта поблизости. - + Geen voertuigen in de buurt. Aucun véhicule aux alentours. - + Generator has been started. Generator has been started. Generator wurde gestartet. Генератор был запущен. - + De generator is gestart. Le générateur a été démarré. - + Gutting animal already in progress. Gutting animal already in progress. Ausweiden des Tieres bereits im Gange. Животное уже разделывается. - + Je bent dit dier al aan het opensnijden. Le dépeçage de l'animal est déjà en cours. - + Canceled gutting. Canceled gutting. Ausweiden abgerochen. Разделывание отменено. - + Gestopt met opensnijden. Dépeçage interrompu. - + Gutting zombie already in progress. Gutting zombie already in progress. Ausweiden des Zombies bereits im Gange. Зомби уже разделывается. - + Je bent deze zombie al aan het opensnijden. Le dépeçage du zombie est déjà en cours. - + Hotwire vehicle already in progress. Hotwire vehicle already in progress. Aufbrechen des Fahrzeuges bereits im Gange. Вы уже угоняете транспорт. - + Auto wordt al opengebroken. Le crochetage du véhicule est déjà en cours. - + Failed to unlock car hotwire kit broken. Failed to unlock car hotwire kit broken. Aufbrechen des Fahrzeuges fehlgeschlagen, Aufbrech-Werkzeug wurde dabei zerstört. Не удалось открыть транспорт, угонный комплект сломан. - + Openbreken voertuig mislukt, je hotwire kit is kapot gegaan. Échec du crochetage du véhicule, le kit est détruit. - + Fill Jerry already in progress. Fill Jerry already in progress. Befüllen des Kanisters bereits im Gange. Канистра уже наполняется. - + Je bent al een jerrycan aan het vullen. Le remplissage du jerrycan est déjà en cours. - + Canceled siphon. Canceled siphon. Umfüllen abgebrochen. Слив отменён. - + Brandstofverplaatsing stopgezet Siphonage annulé. - + \n\nNo recent Deaths. \n\nNo recent Deaths. \n\nKeine aktuellen Todesfälle. \n\nНет последних смертей. - + \n\nNiet recent doodgegaan. \n\nPas de décès récents. - + Lock vehicle already in progress. Lock vehicle already in progress. Abschließen des Fahrzeuges bereits im Gange. Транспорт уже закрывается. - + Voertuig wordt al reeds op slot gezet. Le verrouillage du véhicule est déjà en cours. - + Take item already in progress. Take item already in progress. Aufnehmen des Gegenstandes bereits im Gange. Предмет уже поднимается. - + Bezig met het oppakken L'objet est déjà pris. - + Add to toolbelt already in progress. Add to toolbelt already in progress. Hinzufügen zum Werkzeuggürtel bereits im Gange. Уже добавляется на пояс. - + Reeds bezig met toevoegen aan gereedschapsriem L'ajout à la ceinture est déjà en cours. - + \n\nBuilding already in progress. \n\nBuilding already in progress. \n\nBau bereits im Gange. \n\nУже строится. - + \n\nJe bent al aan het bouwen. \n\nLa construction est déjà en cours. - + \n\nCannot build, too many objects within 30m. \n\nCannot build, too many objects within 30m. \n\nBau nicht möglich, zu viele Objekte innerhalb von 30m. \n\nНельзя построить, слишком много объектов в пределах 30 м. - + \n\nKan niet bouwen, teveel objecten binnen 30m. \n\nImpossible de construire, il y a trop d'objets à moins de 30m. - + Cannot build while in a vehicle. Cannot build while in a vehicle. Bau innerhalb eine Fahrzeuges nicht möglich. Нельзя строить, находясь в транспорте. - + Je kunt niet bouwen als je je in een voertuig bevindt. Impossible de construire à bord d'un véhicule. - + Cannot build while in combat. @@ -3111,930 +3111,930 @@ Cannot build plot pole within 45m of an existing plot. Grundstück-Markierung kann nicht innerhalb 45m von einem bestehenden Grundstück erbaut werden. Нельзя построить столб в пределах 45м. от существующего столба. - + Kan bouw-paal niet bouwen op minder als 45m afstand van een bestaand bouwterrein. Impossible de construire un panneau de propriété privée à moins de 45m d'un autre panneau du genre. - + PgUp to raise or PgDn to lower (Hold ALT to raise faster or CTRL slower), Q or E to flip 180. Space-Bar to build. PgUp to raise or PgDn to lower (Hold ALT to raise faster or CTRL slower), Q or E to flip 180. Space-Bar to build. PgUp zum Erhöhen oder PgDn zum Absenken (halte ALT zum schnelleren Eröhen oder STRG zum Absenken), Q oder E zum Drehen. Drücke Leertaste um das Objekt zu plazieren. - - + + PgUp voor omhoog or PgDn voor omlaag (Houd ALT ingedrukt voor snel en CTRL voor langzaam), \nQ of E draait het object 180graden. Spatiebalk start het bouwen. PgUp pour élever ou PgDn pour abaisser (Maintenez ALT pour élever plus rapidement ou CTRL plus lentement), A ou E pour une rotation à 180. Espace pour construire. - + Canceled building. Canceled building. Bau abgebrochen. Строительство отменено. - + Het bouwen is gestopt Construction annulée - + Canceled construction of %1 %2. Canceled construction of %1 %2. Bau von %1 %2 abgebrochen. - - + + Gestopt met het bouwen van %1 %2. La construction de %1 %2 est annulée. - + Downgrade already in progress. Downgrade already in progress. Downgrade bereits im Gange. Уже понижается. - + Je bent al bezig met downgraden. La dégradation est déjà en cours. - + Unable to downgrade you do not know the combination. Unable to downgrade you do not know the combination. Downgraden nicht möglich, da Sie nicht die Kombination kennen. Не удаётся понизить, вы не знаете комбинации. - + Kan niet downgraden, je weet de combinatie niet. La dégradation est impossible, vous ne connaissez pas la combinaison! - + Not setup yet. Not setup yet. Ausbau noch nicht möglich. - - + + Nog niet ingesteld. Pas encore installé. - + No downgrades available No downgrades available Kein Downgrade vorhanden Нет доступных понижений. - + Geen downgrades beschikbaar Pas de dégradation possible. - + Upgrade already in progress. Upgrade already in progress. Upgrade bereits im Gange. Уже улучшается. - + Je bent al aan het upgraden. L'amélioration est déjà en cours. - + \n\nHarvest wood already in progress. \n\nHarvest wood already in progress. \n\nHolzhacken bereits im Gange. \n\nДерево уже рубится. - + \n\nJe bent al hout aan het hakken \n\nLa coupe du bois est déjà en cours. - + \n\nHatchet needs to be in your hand to harvest wood. \n\nHatchet needs to be in your hand to harvest wood. \n\nSie müssen die Axt in Ihren Händen halten um Holz zu hacken. \n\nТопор должен быть в ваших руках, чтобы срубить дерево. - + \n\nJe moet een bijl in je handen hebben om hout te hakken. \n\nVous devez avoir la hache en main pour couper du bois. - + \n\nCanceled Harvesting Wood. \n\nCanceled Harvesting Wood. \n\nHolzhacken abgerochen. \n\nРубка дерева отменена. - + \n\nGestopt met houthakken \n\nCoupe du bois annulée. - + \n\nCopy key already in progress. \n\nCopy key already in progress. \n\nKopieren des Schlüssels bereits im Gange. \n\nКлюч уже копируется. - + \n\nJe bent al een sleutel aan het kopieren \n\nLa duplication de la clé est déjà en cours. - + \n\nNeed Keymakers kit to make a copy of a key. \n\nNeed Keymakers kit to make a copy of a key. \n\nSie benötigen ein Schlüsselmacher Kit um Kopien eines Schlüssels anfertigen zu können. \n\nНужен комплект для создания ключей, чтобы сделать копию ключа. - + \n\nJe hebt een sleutelmakers-set nodig om een sleutel te kopieren. \n\nLe kit Keymakers est requis pour faire un double d'une clé. - + \n\nKey crafting needs a fire within 3 meters. \n\nKey crafting needs a fire within 3 meters. \n\nKopieren eines Schlüssels ist nur innerhalb 3 Meter eines Feuers möglich. \n\nДля создания ключа нужен огонь в пределах 3-х метров. - + \n\nJe moet binnen 3 meter van het vuur staan om de sleutel te maken. - - + + \n\nKey crafting requires a 1 Tin Bar. \n\nKey crafting requires a 1 Tin Bar. \n\nSie benötigen eine Konservendose um einen Schlüssel zu kopieren. \n\nДля создания ключа требуется 1 оловянный слиток. - + \n\nJe hebt 1 Tin bar nodig om een sleutel te maken. \n\nConstruire une clé requiert une barre de fer - + \n\nCopied key has been added to your backpack. \n\nCopied key has been added to your backpack. \n\nDer kopierte Schlüssel wurde Ihrem Rücksack hinzugefügt. \n\nСкопированный ключ был добавлен в ваш рюкзак. - + \n\nDe gekopieerde sleutel is in je rugzak gestopt. \n\nLe double de la clé a été ajouté dans votre sac à dos. - + \n\nCanceled Key Crafting. \n\nCanceled Key Crafting. \n\nKopieren des Schlüssels abgerochen. \n\nСоздание ключа отменено. - + \n\nGestopt met het maken van de sleutel. \n\nConstruction de la clé annulée. - + \n\nCrafting started \n\nCrafting started \n\nHerstellung gestartet \n\nСоздание начато - + \n\nBezig met creëren \n\nConstruction démarré - + \n\nCrafting already in progress. \n\nCrafting already in progress. \n\nHerstellung bereits im Gange. \n\nУже создаётся. - + \n\nJe bent al bezig met creëren \n\nLa construction est déjà en cours. - + \n\nCanceled crafting. \n\nCanceled crafting. \n\nHerstellung abgebrochen. \n\nСоздание отменено. - + \n\nCreatie gestopt. \n\nConstruction annulée. - + \n\nFishing already in progress. \n\nFishing already in progress. \n\nFischen bereits im Gange. \n\nВы уже ловите рыбу. - + \n\nAfmaken van creatie is al bezig. \n\nLa pêche est déjà en cours. - + \n\nMust be near a shore or on a boat to fish. \n\nMust be near a shore or on a boat to fish. \n\nSie müssen in der Nähe eines Ufers oder auf einem Boot sein um Angeln zu können. \n\nНужно находиться вблизи берега или на лодке, чтобы ловить рыбу. - + \n\nJe moet aan de kust of op een boot zijn om te vissen. \n\nVous devez être sur la côte ou sur un bateau pour pêcher. - + \n\nFishing pole needs to be in your hand to fish. \n\nFishing pole needs to be in your hand to fish. \n\nSie müssen die Angelrute in den Händen haben um angeln zu können. \n\nУдочка должна быть в ваших руках, чтобы ловить рыбу. - + \n\nJe moet een vishengel in je hand hebben om te vissen. \n\nVous devez avoir la canne à pêche en main pour pêcher. - + \n\nCanceled Fishing. \n\nCanceled Fishing. \n\nAngeln abgebrochen. \n\nЛовля рыбы отменена. - + \n\nGestopt met vissen. \n\nPêche annulée. - + \n\nYou caught a fish. \n\nYou caught a fish. \n\nSie haben einen Fisch gefangen. \n\nВы поймали рыбу. - + \n\nJe hebt een vis gevangen. \n\nVous avez pêché un poisson! - + \n\nNibble... Nibble... \n\nNibble... Nibble... \n\nKnabber... Knabber... \n\nКлюй... Клюй... - + \n\nDobber.. Dobber.. \n\nÇa grignote... ça grignote... - + \n\nYou didn't catch anything. \n\nYou didn't catch anything. \n\nSie haben nichts gefangen. \n\nВы ничего не поймали. - + \n\nJe hebt niets gevangen. \n\nVous n'avez rien attrapé. - + \n\nHarvest already in progress. \n\nHarvest already in progress. \n\nHolzhacken bereits im Gange. \n\nУже собирается. - + \n\nJe bent al aan het oogsten. \n\nLa récolte est déjà en cours. - + \n\nCanceled Harvesting. \n\nCanceled Harvesting. \n\nHolzhacken abgebrochen. \n\nСбор отменён. - + \n\nGestopt met oogsten. \n\nRécolte annulée. - + \n\nYou must be close to a plant to harvest. \n\nYou must be close to a plant to harvest. \n\nSie müssen in der Nähe eines Baumes sein um Holz hacken zu können. \n\nВы должны быть близко к растению, чтобы взять его. - + \n\nJe moet in de buurt van een plant zijn om te oogsten. \n\nVous devez être près d'une plante pour la récolter. - + \n\nOpen Crate already in progress. \n\nOpen Crate already in progress. \n\nÖffnen der Holzkiste bereits im Gange. \n\nЯщик уже открывается. - + \n\nJe bent de kist al aan het openmaken. \n\nL'ouverture de la caisse est déjà en cours. - + \n\nYou need a crowbar to open this. \n\nYou need a crowbar to open this. \n\nSie benötigen eine Brechstange um dies öffnen zu können. \n\nВам нужен лом, чтобы открыть это. - + \n\nJe hebt een breekijzer nodig om dit open te maken. \n\nVous avez besoin d'un pied-de-biche pour l'ouvrir. - + \n\nMissing supply crate. \n\nMissing supply crate. \n\nKeine Holzkiste gefunden. - - + + \n\nSupply kist ontbreekt \n\nCaisse de fournitures manquante. - + \n\nOpened supply crate. \n\nOpened supply crate. \n\nHolzkoste geöffnet. - - + + \n\nSupply kist geopend. \n\nCaisse de fournitures ouverte. - + \n\nOre Mining already in progress. \n\nOre Mining already in progress. \n\nErzgewinnung bereits im Gange. \n\nРуда уже добывается. - + \n\nJe bent al erts aan het ontginnen. \n\nL'extraction du minerai est déjà en cours. - + \n\nCancelled Mining Ore. \n\nCancelled Mining Ore. \n\nErgewinnung abgerochen. \n\nДобыча руды отменена. - + \n\nGestopt met erts ontginnen. \n\nExtraction du minerai annulée. - + \n\nCombine ammo failed you need at least 85% capacity to fill a mag \n\nCombine ammo failed you need at least 85% capacity to fill a mag \n\nKombinieren der Munition fehgeschlagen, Sie benötigen mindestens 85% der Kapazität des Magazines um aufmunitionieren zu können. - - + + \n\nHet omzetten van kogels is mislukt je dient minstens 85% capaciteit in het magazijn te hebben \n\nLa combinaison des munitions a échoué, vous devez remplir au moins 85% du chargeur - + \n\nNo upgrades available \n\nNo upgrades available \n\nKeine Upgrades vorhanden \n\nНет доступных улучшений. - + \n\nGeen upgrades beschikbaar \n\nAucune amélioration disponible - + \n\nChanging clothes already in progress. \n\nChanging clothes already in progress. \n\nWechseln der Kleidung bereits im Gange. \n\nВы уже переодеваетесь. - + \n\nJe bent je al aan het omkleden. \n\nLe changement de vêtements est déjà en cours. - + \n\nCannot change clothes when another player is nearby. \n\nCannot change clothes when another player is nearby. \n\nSie können Ihre Kleidung nicht wechseln wenn ein anderer Spieler in der Nähe ist. \n\nНельзя переодеваться, когда другой игрок рядом. - + \n\nJe kunt je niet omkleden als er een andere speler in de buurt is. \n\nImpossible de changer de vêtements près d'un autre joueur. - + \n\nYou may not change clothes while in a vehicle \n\nYou may not change clothes while in a vehicle \n\nSie können Ihre Kleidung nicht innerhalb eines Fahrzeuges wechseln \n\nВы не можете переодеваться, находясь в транспорте - + \n\nJe kunt je niet omkleden in een voertuig \n\nVous ne devriez pas changer de vêtements à bord d'un véhicule - + \n\nYou cannot wear a skin of the opposite sex. \n\nYou cannot wear a skin of the opposite sex. \n\nSie können nicht die Kleidung vom anderen Geschlecht tragen. \n\nВы не можете одеть одежду противоположного пола. - + \n\nJe kunt je niet omkleden naar kleding van het andere geslacht. \n\nVous ne pouvez pas porter les vêtements du sexe opposé. - + Canceled refuel. Canceled refuel. Befüllen abgebrochen. Заправка отменена. - + Bijtanken gestopt. Remplissage du réservoir annulé. - + Remove already in progress. Remove already in progress. Entfernen bereits im Gange. - - + + Al bezig met verwijderen. Le démontage est déjà en cours. - + Cannot remove running generator. Cannot remove running generator. Ein laufender Generator kann nicht entfernt werden. Нельзя убрать работающий генератор. - + Kan niet verwijderen als de generator nog aanstaat. Impossible de démonter un générateur en route. - + No parts found. No parts found. Keine Teile gefunde. Запчасти не найдены. - + Geen onderdelen gevonden. Aucune pièce trouvée. - + Failed object not longer exists. Failed object not longer exists. Fehlgeschlagen. Objekt existiert nicht mehr. - - + + Mislukt! Het object bestaat niet meer. Échec, l'objet n'existe plus. - + Repair already in progress. Repair already in progress. Reperatur bereits im Gange. Уже чинится. - + Wordt al reeds gerepareerd. La réparation est déjà en cours. - + Canceled Repair. Canceled Repair. Reperatur abgebrochen. Починка отменена. - + Reparatie afgebroken. Réparation annulée. - + Salvage already in progress. Salvage already in progress. Bergen bereits im Gange. Уже снимается. - + Reeds bezig met bergen. La récupération est déjà en cours. - + Canceled Salvage. Canceled Salvage. Bergen abgebrochen. Снятие отменено. - + Berging afgebroken. Récupération annulée. - + already in progress. already in progress. bereits im Gange. - - + + reeds bezig. déjà en cours. - + Trading already in progress. Trading already in progress. Handel bereits im Gange. Вы уже торгуете. - + Reeds bezig met handellen. La transaction est déjà en cours. - + Siphon already in progress. Siphon already in progress. Umfüllen bereits im Gange. Уже сливается. - + Reeds bezig met brandstofverplaatsing. Le siphonage est déjà en cours. - + Stop already in progress. Stop already in progress. Stoppen des Generators bereits im Gange. - - + + Bezig met stoppen. L'arrêt est déjà en cours. - + Preparing stop generator, move to cancel. Preparing stop generator, move to cancel. Generator wird abgeschaltet, bewegen Sie sich um den Vorgang abzubrechen. Подготовка к остановке генератора, двигайтесь для отмены. - + Het uitschakellen van de generator word voorbereid, beweeg om te annuleren. Préparation de l'arrêt du générateur, déplacez vous pour annuler. - + Generator has been stopped. Generator has been stopped. Generator wurde abgeschaltet. Генератор остановлен. - + De generator is uitgeschakeld. Le générateur a été arrêté. - + No Vehicles In Tow. No Vehicles In Tow. Kein Fahrzeug am Abschleppseil. Нет транспорта на буксире. - + Geen voertuigen op sleep. Aucun véhicule remorqué. - + Trade already in progress. Trade already in progress. Handel bereits im Gange. Вы уже заключаете сделку. - + Je bent al aan het handellen. La transaction est déjà en cours. - + Cannot trade while another player is nearby. Cannot trade while another player is nearby. Kein Handeln möglich, während ein anderer Spieler in der Nähe ist. Нельзя заключать сделку, когда другой игрок находится поблизости. - + Je kunt niet handellen met een andere speler in de buurt. Impossible d'effectuer la transaction lorsque d'autres joueurs sont proches. - + Starting trade, stand still to complete trade. Starting trade, stand still to complete trade. Handel gestartet, bewegen Sie sich nicht um den Handel abzuschließen. Торговля началась, стойте на месте, чтобы завершить сделку. - + Bezig met handellen, blijf stilstaan om af te ronden. Transaction démarré, restez immobile pour achever la transaction. - + Canceled Trade. Canceled Trade. Handel abgebrochen. Сделка отменена. - + Handel geannuleerd. Transaction annulée. - + You do not have enough room on your toolbelt. You do not have enough room on your toolbelt. Sie haben nicht genug Platz in Ihrem Werkzeuggürtel. У вас не достаточно места на вашем поясе. - + Je gereedschapsriem zit vol. Vous n'avez pas assez de place dans votre ceinture. - + Vault pitching already in progress. Vault pitching already in progress. Platzieren des Tresors bereits im Gange. - - + + Kluis installatie is al bezig. L'installation du coffre fort est déjà en cours. - + Planning construction stand still 5 seconds to build. Planning construction stand still 5 seconds to build. Platzieren des Tresors gestartet, warte 5 Sekunden um den Aufbau zu starten. Планирование строительства стойте на месте 5 секунд, чтобы построить. - + Het bouwen wordt voorbereid, sta 5 seconden stil om te bouwen. Planification de la construction, restez immobile 5 secondes pour construire. - + You cannot place a Safe here. The area must be flat, and free of other objects You cannot place a Safe here. The area must be flat, and free of other objects Sie können hier kein Tresor aufbauen. Der Untergrund muss flach und frei von Hindernissen sein Вы не можете разместить сейф здесь. Область должна быть плоской, и свободной от других объектов - - + + Vous ne pouvez pas placer le coffre fort ici. L'endroit doit être plat et dégagé. - + Canceled construction of Safe. Canceled construction of Safe. Platzieren des Tresors abgebrochen. Строительство сейфа отменено. - + Het bouwen van de kluis is stopgezet. Mise en place du coffre fort annulée. - + This server is running an incorrect version of the server side application. You cannot play on this server. If you are the server admin please contact DayZ Epoch staff. This server is running an incorrect version of the server side application. You cannot play on this server. If you are the server admin please contact DayZ Epoch staff. Dieser Server läuft mit einer falschen Version der serverseitigen Anwenung. Sie können auf diesem Server nicht spielen. Wenn Sie der Admin des Server sind, dann kontaktieren Sie bitte den DayZ Epoch Staff. Этот сервер работает на неправильной версии серверного приложения. Вы не можете играть на этом сервере. Если вы являетесь администратором сервера, пожалуйста, свяжитесь с персоналом DayZ Epoch. - + Deze server draait een verkeerde versie van de serversided software. Je kunt niet op deze server spelen. Als het jouw server is, neem dan contact op met de DayZ Epoch Staff. Ce serveur exécute une version différente du jeu. Vous ne pouvez pas jouer sur ce serveur. Si vous êtes l'administrateur de ce serveur, contactez l'équipe de DayZ Epoch s'il vous plaît - + You have an outdated version of epoch please download the correct version You have an outdated version of epoch please download the correct version Sie haben eine falsche Version von Epoch. Downloaden Sie bitte die aktuelle Version. У вас устаревшая версия DayZ Epoch, загрузите правильную версию - + Je hebt een verouderde versie van epoch. Vous avez une version de DayZ Epoch périmée, une mise à jour est nécessaire. - + Could not retrieve date and time from server disconnect and retry. Could not retrieve date and time from server disconnect and retry. Es konnte nicht Datum und Uhrzeit vom Server abgerufen werden. Trennen Sie die Verbindung vom Server und versuchen Sie es erneut. Не удалось получить дату и время с сервера отключитесь и повторите попытку. - + Het is niet gelukt om de datum en tijd van de server op te halen \nVerbreek de verbinding en probeer het opnieuw. Récupération de la date et de l'heure impossible à partir du serveur. Déconnectez et réessayez. - + You cannot lock this %1, you do not know the combination. You cannot lock this %1, you do not know the combination. Sie können nicht diese(n) %1 abschließen, da Sie nicht die Kombination kennen. Вы не можете закрыть 1%, вы не знаете комбинации. - + Je kunt deze %1 niet op slot zetten, je weet de combinatie niet. Vous ne pouvez pas verrouiller %1, vous n'en connaissez pas la combinaison. - + That %1 is already being locked. That %1 is already being locked. Diese(r) %1 wird bereits abgeschlossen. %1 уже закрыт. - + Deze %1 wordt al op slot gezet. %1 est déjà verrouillé. - + Your %1 has been locked Your %1 has been locked Ihr %1 wurde abgeschlossen. Ваш %1 закрыт - + Je %1 staat nu op slot Votre %1 a été verrouillé - + %1 not setup yet. %1 not setup yet. %1 noch nicht bereit. %1 ещё не установлен. - + %1 is nog niet ingesteld. %1 n'est pas encore installé. - + You cannot pack this %1, you do not know the combination. You cannot pack this %1, you do not know the combination. Sie können nicht diese(n) %1 packen, da Sie nicht die Kombination kennen. Вы не можете упаковать 1%, вы не знаете комбинации. - + Je kunt deze %1 niet inpakken, je weet de combinatie niet. Vous ne pouvez pas emballer %1, vous n'en connaissez pas la combinaison. - + That %1 is already being packed. That %1 is already being packed. Diese(r) %1 wird bereits gepackt. %1 уже запакован. - + Deze %1 wordt al reeds ingepakt. %1 est déjà en cours d'emballage. - + Packing %1 move from this position to cancel within 5 seconds. Packing %1 move from this position to cancel within 5 seconds. %1 wird gepackt. Bewege dich in den nächsten 5 Sekunden um den Vorgang abzubrechen. Упаковывание 1% сдвиньтесь с этой позиции, чтобы отменить (В течение 5 секунд). - + Bezig met inpakken van %1, beweeg binnen 5 seconden om te annuleren. Emballage de %1, déplacez vous pour annuler dans moins de 5 secondes. - + Packing %1 canceled. Packing %1 canceled. Packen des %1 wurde abgebrochen. Упаковывание %1 отменено. - + Het inpakken van %1 is gestopt. Emballage annulé. - + Your %1 has been packed Your %1 has been packed Ihr %1 wurde gepackt. Ваш %1 упакован - + Je %1 is ingepakt. Votre %1 a été emballé(e). - + That %1 is already being unlocked. That %1 is already being unlocked. %1 wird bereits aufgeschlossen. %1 уже открыт. - + Deze %1 wordt alreeds van slot gehaald. %1 est déjà en cours de déverrouillage. - + %1 has been unlocked. %1 has been unlocked. %1 wurde aufgeschlossen. %1 открыт. - + %1 staat niet meer op slot %1 a été déverrouillé. - + Combination incorrect, %1 is still locked. Combination incorrect, %1 ist immer noch verschlossen. Kombination inkorrekt, %1 Комбинация неправильна, %1 по-прежнему закрыт. - + Verkeerde code, %1 zit nog op slot. Combinaison incorrecte, %1 reste verrouillé. - + You have successfully loaded %1 ammunition. You have successfully loaded %1 ammunition. Sie haben erfolgreich %1 Munition geladen. Вы успешно загрузили %1 боеприпасы. - + Je hebt met succes %1 munitie bijgeladen. Vous avez rechargé les munitions de %1 avec succés. - + You need %1 type of ammo to do this. You need %1 type of ammo to do this. Sie benötigen folgene Muntion um dies zu tun: %1 Вам нужен %1 тип патронов, чтобы сделать это. - + Je hebt minstens %1 munitie nodig om dit te doen. Vous avez besoin de munitions %1 pour faire ça. - + Started cooking %1 Started cooking %1 Beginne das Kochen von %1 Начали готовить %1 - + Begonnen met het koken van %1 Début de la cuisson de %1 - + Canceled cooking %1 Canceled cooking %1 Kochen von %1 abgebrochen Приготовление %1 отменено - + Gestopt met het koken van %1 Cuisson de %1 annulée - + Filling up %1, move to cancel. Filling up %1, move to cancel. Betanken von %1, bewegen Sie sich um den Vorgang abzubrechen. %1 заполняется, двигайтесь для отмены. - + Bezig met het vullen van %1, beweeg om te annuleren. Remplissage de %1, déplacez vous pour annuler. - + %1 filled to %2 percent capacity. %1 filled to %2 percent capacity. %1 wurde zu %2 Prozent betankt. - - + + %1 is voor %2 procent gevuld. %1 est rempli(e) à %2 pourcents de sa capacité. - + Preparing to siphon, stand still to fill %1. Preparing to siphon, stand still to fill %1. Starte das Umfüllen, bewegen Sie sich nicht um %1 zu befüllen. Подготовка к сливу, стойте на месте, чтобы заполнить %1. - + Bezig met brandstofverplaatsing, sta stil om %1 te vullen. Préparation du siphonage, restez immobile pour remplir %1. - + You have filled %1 with fuel. You have filled %1 with fuel. Sie haben %1 mit Kraftstoff befüllt. Вы заполнили %1 топливом. - + Je hebt %1 met brandsfof gevuld. Vous avez rempli %1 avec du carburant. - + \n\nThis building needs a %1 within %2 meters \n\nThis building needs a %1 within %2 meters \n\nDieses Gebäude benötitgt ein(e) %1 innerhalb von %2 Metern. \n\nЭтому строению требуется %1 в пределах %2 метров - + \n\nDit gebouw heeft een %1 binnen %2 meter nodig. \n\nCe bâtiment nécessite un %1 à moins de %2 mètres - + Unable to build %1 nearby. Unable to build %1 nearby. Es ist nicht möglich %1 hier aufzubauen. - - + + Bouwen niet mogelijk %1 in de buurt. Impossible de construire, %1 est trop proche. - + \n\nMissing tool %1 @@ -4051,920 +4051,920 @@ Placing %1, move to cancel. Platzieren von %1, bewegen Sie sich um den Vorgang abzubrechen. Размещение %1, двигайтесь для отмены. - + Bezig met het plaatsen van %1, beweeg om te annuleren Placement de %1, déplacez vous pour annuler. - + Constructing %1 stage %2 of %3, move to cancel. Constructing %1 stage %2 of %3, move to cancel. Konstruieren von %1, Stufe %2 von %3. Bewegen Sie sich um den Vorgang abzubrechen. - - + + Bezig met de bouw van %1 (stap %2 van %3), beweeg om te annuleren Construction de %1 (étape %2 sur %3), déplacez vous pour annuler. - + You have setup your %2. Combination is %1 You have setup your %2. Combination is %1 Sie haben erfolgreich ein(e) %2 aufgebaut. Ihre Kombination lautet: %1 Вы установили свой %2. Комбинация %1 - + Je hebt je %2 geplaatst. De combinatie is %1 Vous avez installé votre %2. La combinaison est %1 - + Unable to downgrade %1 nearby. Unable to downgrade %1 nearby. Downgraden von %1 ist nicht möglich. - - + + Kan niet downgraden %1 in de buurt. Impossible de dégrader, %1 est trop proche. - + You have downgraded %1. You have downgraded %1. Sie haben %1 gedowngradet. Вы понизили %1. - + Je hebt %1 gedowngrade. Vous avez dégradé %1. - + \n\n%1 of %2 could not be added to your inventory. (not enough room?) \n\n%1 of %2 could not be added to your inventory. (not enough room?) \n\n%1 von %2 konnte dem Inventar nicht hinzugefügt werden. (Inventar voll?) - - + + \n\n%1 van %2 kon niet worden toegevoegd aan je inventaris (vol?) \n\n%1 sur %2 ne peuvent être ajoutés à votre inventaire. (pas assez de place ?) - + You have repaired %1. You have repaired %1. Sie haben %1 repariert. Вы починили %1. - + Je hebt %1 gerepareerd. Vous avez réparé %1. - + Missing Parts after first check Item: %1 / %2 Missing Parts after first check Item: %1 / %2 Fehlende Teile nach der ersten Überprüfung: %1 / %2 - - + + Missende onderdelen na eerste check Onderdeel: %1 / %2 - - + + Missing %1 more of %2 Missing %1 more of %2 Ihnen fehlt/fehlen %1 %2 - - + + Je hebt nog %1 extra %2 nodig. - - + + \n\nChopping down tree, walk away at any time to cancel. (%1/%2) \n\nChopping down tree, walk away at any time to cancel. (%1/%2) \n\nBaum wird gefällt, bewegen Sie sich um den Vorgang abzubrechen. (%1/%2) \n\nРубите дерево, уходите в любое время для отмены. (%1/%2) - + \n\nBoom wordt neergehakt, loop weg om te annuleren. (%1/%2) - - + + \n\n%1 piles of wood has been successfully added in front of you. \n\n%1 piles of wood has been successfully added in front of you. \n\n%1 Holzstöße wurde erfolgreich vor Ihnen hinzugefügt. \n\n%1 дрова были успешно размещены перед вами. - + \n\n%1 stapels hout liggen nu recht voor je. - - + + \n\nCrafting needs a %1 within %2 meters \n\nCrafting needs a %1 within %2 meters \n\nZur Herstellung wird ein(e) %1 innerhalb von %2 benötigt. \n\nДля создания требуется %1 вблизи %2 метров - + \n\nHiervoor heb je een %1 nodig binnen %2 meter - - + + \n\nCrafted Item: %1 x %2 \n\nCrafted Item: %1 x %2 Gegenstand hergestellt: %1 x %2 - - + + \n\nItem gecreëerd: %1 x %2 - - + + \n\nMissing Parts after first check Item: %1 / %2 \n\nMissing Parts after first check Item: %1 / %2 \n\nFehlende Teile nach der ersten Überprüfung: %1 / %2 - - + + \n\nMissende onderdelen na eerste check Onderdeel: %1 / %2 - - + + \n\n%3 complete, missing %1 more of %2 \n\n%3 complete, missing %1 more of %2 \n\n%3 abgeschlossen, Ihnen fehlt/fehlen noch %1 %2 - - + + \n\n%3 compleet, nog %1 %2 nodig voor de volgende - - + + \n\n%3 complete, missing %1 more of %2 \n\n%3 complete, missing %1 more of %2 \n\n%3 abgeschlossen, Ihnen fehlt/fehlen noch %1 %2 - - + + \n\n%3 compleet, nog %1 %2 nodig voor de volgende - - + + \n\n%1 of %2 has been successfully added to your inventory. \n\n%1 of %2 has been successfully added to your inventory. \n\n%1 %2 wurden erflogreich zu Ihrem Inventar hinzugefügt. - - + + \n\n%1 %2 is aan je inventaris toegevoegd. - - + + \n\nMining Ore, walk away at any time to cancel. (%1/%2) \n\nMining Ore, walk away at any time to cancel. (%1/%2) \n\nGewinnung von Erz, bewegen Sie sich um den Vorgang abzubrechen. (%1/%2) \n\nРуда добывается, уходите в любое время для отмены. (%1/%2) - + \n\nBezig met het delven van Erts, loop weg om te annuleren. (%1/%2) - - + + \n\n%1 piles of ore has been successfully added in front of you. \n\n%1 piles of ore has been successfully added in front of you. \n\n%1 Stappel Erz wurden erfolgreich vor Ihnen hinzugefügt. \n\n%1 руда была успешно размещена перед вами. - + \n\n%1 hoopjes erts liggen nu voor je neus. - - + + Unable to upgrade %1 nearby. Unable to upgrade %1 nearby. Upgrade von %1 ist nicht möglich. - - + + Kan niet upgraden %1 in de buurt. - - + + You have upgraded %2. Combination is %1 You have upgraded %2. Combination is %1 Sie haben %2 geupgradet. Ihre Kombination lautet: %1 Вы улучшили %2. Комбинация %1 - + Je hebt een %2 geupgrade. De combinatie is %1 - - + + You have upgraded %1. You have upgraded %1. Sie haben %1 geupgradet. Вы улучшили %1. - + Je hebt %1 geupgrade. - - + + Preparing to refuel, stand still to drain %1. Preparing to refuel, stand still to drain %1. Betanken von %1 wird vorbereitet, bewegen Sie sich um den Vorgang abzubrechen. Подготовка к заправке, стойте на месте, чтобы опустошить 1%. - + Bijtanken aan het voorbereiden. Sta stil om de %1 leeg te gieten. - - + + %1 cannot hold that much fuel. %1 cannot hold that much fuel. %1 kann nicht so viel Kraftstoff halten. %1 не может хранить столько топлива. - + Geen ruimte meer voor brandstof in deze %1. - - + + Starting de-construction of %1. Starting de-construction of %1. Starte Dekonstruktion von %1. - - + + Bezig met het slopen van %1. - - + + De-constructing %1 stage %2 of %3 walk away at anytime to cancel. De-constructing %1 stage %2 of %3 walk away at anytime to cancel. Dekonstruktion von %1, Stufe %2 von %3. Bewegen Sie sich um den Vorgang abzubrechen. - - + + Sloop van %1 bezig (%2 van %3) loop weg om te annuleren. - - + + %1 broke cannot remove %2. %1 broke cannot remove %2. %1 wurde zerstört. %2 kann nicht mehr entfernt werden. - - + + %1 is kapot gegaan. kan %2 niet verwijderen. - - + + De-constructing %1. De-constructing %1. Dekonstruktion von %1. - - + + %1 aan het slopen. - - + + You have successfully attached %1 to the %2 You have successfully attached %1 to the %2 Sie haben erfolgreich %1 zum/zur %2 hinzugefügt. Вы успешно установили %1 на %2 - + Je hebt succesvol %1 aan de %2 gemonteerd. - - + + You need %1 to repair this You need %1 to repair this Sie benötigen %1 um dies zu reparieren. Вам нужно %1, чтобы отремонитровать это - + Om dit te repareren heb je %1 nodig. - - + + You have destroyed %1 while attempting to remove from %2 You have destroyed %1 while attempting to remove from %2 Beim Abmontieren von dem/der %2 wurde %1 zerstört. Вы сломали %1, при попытке снятия с %2 - + Je hebt %1 gesloopt tijdens het demonteren van de %2 - - + + You have successfully removed %1 from the %2 You have successfully removed %1 from the %2 Sie haben erfolgreich ein(e) %1 von dem/der %2 demontiert. Вы успешно сняли %1 с %2 - + Je hebt met succes de %1 van de %2 verwijderd. - - + + You need %1 to remove this part. You need %1 to remove this part. Sie benötigen eine %1 um dieses Teil zu demontieren. Вам нужно %1, чтобы снять эту запчасть. - + Je hebt %1 nodig om dit deel te verwijderen. - - + + %1 has been drained for %2 litres of Fuel %1 has been drained for %2 litres of Fuel Sie haben %2 Gallonen Kraftstoff von dem/der %1 entfernt. - - + + Je hebt %2 liter brandstof uit de %1 gehaald. - - + + %1 does not have enough fuel to siphon. %1 does not have enough fuel to siphon. Diese(r) %1 hat nicht genug Kraftstoff. %1 не имеет достаточно топлива для слития. - + Deze %1 heeft niet voldoende brandstof. - - + + Dog consumed %1, and is now tamed. Dog consumed %1, and is now tamed. Der Hund hat %1 konsumiert und ist nun gezähmt. Собака употребила %1, и теперь приручена. - + Hond heeft %1 gegeten, en is nu tam. - - + + Dog consumed %1, yet remains untamed. Dog consumed %1, yet remains untamed. Der Hund hat %1 konsumiert und scheint ungezähmt. Собака употребила %1, но всё ещё остаётся дикой. - + Hond heeft %1 gegeten, maar is nog niet tam. - - + + %1 has been attached to Tow Truck. %1 has been attached to Tow Truck. %1 ist mit dem Abschleppwagen befestigt. %1 был взят на буксир. - + %1 is bevestigd aan de sleepwagen - - + + Failed to attach %1 to Tow Truck. Failed to attach %1 to Tow Truck. Es war nicht möglich den/die %1 am Abschleppwagen zu befestigen. Не удалось взять на буксир %1. - + Het is niet gelukt om %1 aan de sleepwagen te bevestigen. - - + + %1 too large and cannot be towed. %1 too large and cannot be towed. %1 ist zu groß und kann nicht abgeschleppt werden. %1 слишком большой и не может буксироваться. - + %1 is te groot om te slepen. - - + + %1 has been detached from Tow Truck. %1 has been detached from Tow Truck. %1 wird vom Abschleppwagen getrennt. %1 был снят с буксира. - + %1 is losgemaakt van de sleepwagen. - - + + You have setup your Safe. Combination is %1 You have setup your Safe. Combination is %1 Ihr Tresor wurde aufgestellt. Ihre Kombination lautut: %1 Вы установили свой сейф. Комбинация %1 - + Je hebt je kluis geinstalleerd. De code is %1 - - + + Bought %3 for %1 %2. Bought %3 for %1 %2. Sie haben für %1 %2 ein %3 gekauft. Куплено %3 за %1 %2. - + Je hebt %3 gekocht voor %1 %2. - - + + Sold %1 %2 for %3 %4 Sold %1 %2 for %3 %4 Sie haben für %3 %4 %1 %2 verkauft Продано %1 %2 за %3 %4 - + Je hebt %1 %2 verkocht voor %3 %4. - - + + Cannot sell %1, tires are too damaged. Cannot sell %1, tires are too damaged. Kann nicht %1 verkaufen, da die Reifen zu sehr beschädigt sind. Нельзя продать %1, шины слишком повреждены. - + Kan %1 niet verkopen, banden hebben teveel schade. - - + + Insufficient Stock %1 Insufficient Stock %1 1% nicht ausreichend auf Lager. - - + + Onvoldoende %1 voorraad. - - + + Need %1 More %2 Need %1 More %2 Sie benötigen noch %1 %2 - - + + Nog %1 %2 nodig - - + + No %1 found within 20 meters. No %1 found within 20 meters. Kein %1 innerhalb von 20 Metern gefunden. - - + + Geen %1 binnen 20 meter gevonden. - - + + Traded %1 %2 for %3 %4 Traded %1 %2 for %3 %4 Sie haben für %3 %4 %1 %2 gehandelt Продано %1 %2 за %3 %4 - + Je hebt %1 %2 verhandeld voor %3 %4 - - + + Starting trade, stand still to complete trade %1 of %2. Starting trade, stand still to complete trade %1 of %2. Handel gestartet, bewegen Sie sich um den Vorgang abzubrechen. (%1 von %2) Торговля началась, стойте на месте, чтобы завершить сделку %1 из %2. - + Handel gestart, sta stil om te voltooien. (%1 van %2) - - + + Examine Examine - - - + + + Onderzoek - - + + Craft Ramp Craft Ramp Rampe herstelln Создать: Наклонная плоскость - + Maak schans - - + + Craft Tent Craft Tent Zelt herstellen Создать: Палатка - + Maak tent - - + + Craft Desert Tent Craft Desert Tent Wüstenzelt herstellen Создать: Пустынная палатка - + Maak Woestijntent - - + + Craft Green Tent Craft Green Tent Grünes Zelt herstellen Создать: Зелёная палатка - + Maak Groene tent - - + + Craft Sun Shade Craft Sun Shade Sonnenschutz herstellen Создать: Солнцезащитный козырёк - + Maak zonwering - - + + Craft Burlap Craft Burlap Sackleinen herstellen Создать: Брезент - + Maak Jutte - - + + Craft Sandbag Craft Sandbag Sandsack herstellen Создать: Мешки с песком - + Maak Zandzak - - + + Craft Light Pole Craft Light Pole Lichtmast herstellen Создать: Фонарный столб - + Maak Lichtmast - - + + Add 1 10oz Gold Add 1 10oz Gold 1 10oz Gold hinzufügen - - + + Voeg 1 10oz Goud toe - - + + Add 10 10oz Gold Add 10 10oz Gold 10 10oz Gold hinzufügen - - + + Voeg 10 10oz Goud toe - - + + Add 9 10oz Gold Add 9 10oz Gold 9 10oz Gold hinzufügen - - + + Voeg 9 10oz Goud toe - - + + Remove 1 10oz Gold Remove 1 10oz Gold 1 10oz Gold entfernen - - + + Verwijder 1 10oz Goud - - + + Empty Case Empty Case Leerer Koffer Пустой чемоданчик - + Maak kist leeg - - + + Add 8 10oz Gold Add 8 10oz Gold 8 10oz Gold hinzufügen - - + + Voeg 8 10oz Goud toe - - + + Add 7 10oz Gold Add 7 10oz Gold 7 10oz Gold hinzufügen - - + + Voeg 7 10oz Goud toe - - + + Add 6 10oz Gold Add 6 10oz Gold 6 10oz Gold hinzufügen - - + + Voeg 6 10oz Goud toe - - + + Add 5 10oz Gold Add 5 10oz Gold 5 10oz Gold hinzufügen - - + + Voeg 5 10oz Goud toe - - + + Add 4 10oz Gold Add 4 10oz Gold 4 10oz Gold hinzufügen - - + + Voeg 4 10oz Goud toe - - + + Add 3 10oz Gold Add 3 10oz Gold 3 10oz Gold hinzufügen - - + + Voeg 3 10oz Goud toe - - + + Add 2 10oz Gold Add 2 10oz Gold 2 10oz Gold hinzufügen - - + + Voeg 2 10oz Goud toe - - + + Open %1 Open %1 1% öffnen Открыть %1 - + Open %1 - - + + Smelt 10oz bar Smelt 10oz bar 10oz bar schmelzen Выплавить 10oz слиток - + Smelt 10oz balk - - + + Smelt 1oz bar Smelt 1oz bar 1oz bar schmelzen Выплавить 1oz слиток - + Smelt 1oz balk - - + + Salvage Scrap Salvage Scrap Material sammeln - - + + Verzamel materiaal - - + + Craft Pole Craft Pole Stange herstellen Создать: Столб - + Creëer paal - - + + Build Corrugated Fence Build Corrugated Fence Wellblech Zaun aufbauen Установить: Гофрированный забор - + Bouw Ribbelplaten hek - - + + Craft Wooden Shed Craft Wooden Shed Holschuppen herstellen Создать: Деревянный сарай - + Bouw houten schuur - - + + Craft Storage Shed Craft Storage Shed Lagerschuppen herstellen Создать: Лабаз - + Bouw opslag schuur - - + + Craft Outhouse Craft Outhouse Toilettenhäuschen herstellen Создать: Сортир - + Bouw buitenhuisje - - + + Craft Corrugated Fence Craft Corrugated Fence Wellblech Zaun herstellen Создать: Гофрированный забор - + Bouw ribbelplaten hek - - + + Craft Rusty Gate Craft Rusty Gate Rostiges Tor herstellen Создать: Ржавые ворота - + Bouw roestige poort - - + + Craft Metal Panel Craft Metal Panel Metallplatte herstellen Создать: Металлическая панель - + Ceëer metalen paneel - - + + Pack 6 Coke Pack 6 Coke 6 Coke packen Запаковать: Кока-кола(6) - + Verpak 6 cola - - + + Pack 6 Pepsi Pack 6 Pepsi 6 Pepsi packen Запаковать: Пепси(6) - + Verpak 6 pepsi - - + + Pack Scrap Metal Pack Scrap Metal Schrott packen Запаковать: Металлолом - + Verpak scrap metal - - + + Pack Tank Traps Pack Tank Traps Panzerfallen packen Запаковать: Танковые ловушки - + Verpak tank traps - - + + Pack Wire Kits Pack Wire Kits S-Draht-Rollen packen - - + + Verpak prikkeldraad rollen - - + + Pack Bacon Pack Bacon Speck packen Запаковать: Бекон - + Verpak speklappen - - + + Pack 6 Bacon Pack 6 Bacon 6 Speck packen Запаковать: Бекон(6) - + Verpack 6 speklappen - - + + Craft Metal Floor Craft Metal Floor Metallboden herstellen Создать: Металлический пол - + Creëer metalen vloer - - + + Craft Lg Camo Net Craft Lg Camo Net Großes Tarnnetz herstellen Создать: Lg Camo Net - + Creëer groot camouflagenet - - + + Place Safe @@ -4981,160 +4981,160 @@ Place Lockbox Schließkassette platzieren Поставить закрытый ящик - + Plaats afsluitbare kist - - + + Craft Wood Floor Craft Wood Floor Holboden herstellen Создать: Деревянный пол - + Creëer houten vloer - - + + Craft Wood Floor 1/2 Craft Wood Floor 1/2 1/2 Holzboden herstellen Создать: Деревянный пол 1/2 - + Creëer houten vloer 1/2 - - + + Craft Stair Supports Craft Stair Supports Treppenstützen herstellen - - + + Creëer trapsteunen - - + + Craft Doorway Craft Doorway Türrahmen herstellen Создать: Дверной проём - + Creëer Deuropening - - + + Craft Window Craft Window Fenster herstellen Создать: Окно - + Creëer raam - - + + Craft Large Wall Craft Large Wall Große Mauer herstellen Создать: Большая стена - + Creëer grote muur - - + + Craft Wood Wall Craft Wood Wall Holzmauer herstellen Создать: Деревянная стена - + Creëer houten muur - - + + Craft Door Craft Door Tür herstellen Создать: Дверь - + Creëer deur - - + + Craft Locked Door Craft Locked Door Geschlossene Tür herstellen Создать: Закрытая дверь - + Creëer afsluitbare deur - - + + Craft Garage Door Craft Garage Door Garagentor herstellen Создать: Дверь гаража - + Creëer garagedeur - - + + Build Fire Build Fire Lagerfeuer erstellen - - + + Bouw kampvuur - - + + Craft Lumber Craft Lumber Bauholz herstellen Создать: Пиломатериалы - + Creëer planken - - + + Craft Arrows Craft Arrows Pfeile herstellen Создать: Стрелы - + Creëer pijlen - - + + Craft Stick Fence Craft Stick Fence Stick-Zaun herstellen Создать: Колючая ограда - + Creëer takken hek - - + + Failed, you must get into drivers seat first. Failed, you must get into drivers seat first. Fehlgeschlagen, Sie müssen zuerst auf den Fahrersitz. Не удалось, вы должны попасть на сиденье водителя хотя бы раз. - + Mislukt, stap eerst in de bestuurders stoel. - - + + Plot Pole @@ -5201,370 +5201,370 @@ Craft Half Wall Halbe Wand herstellen Создать: Половина стены - - - - + + + + Craft Garage Doorway Craft Garage Doorway Garagentor-Rahmen herstellen Создать: Гаражный дверной проём - - - - + + + + Craft Plywood Craft Plywood Sperrholz herstellen Создать: Фанера - - - - + + + + Craft Supply Crate Craft Supply Crate Versorgungskiste herstellen Создать: Ящик с припасами - - - - + + + + Craft Deer Stand Craft Deer Stand Jagdstand herstellen Создать: Вышка - - - - + + + + Craft Wood Stairs Craft Wood Stairs Holztreppen herstellen Создать: Деревянные ступеньки - - - - + + + + Craft Wood Ladder Craft Wood Ladder Holzleiter herstellen Создать: Деревянная лестница - - - - + + + + Craft Lumber Pack Craft Lumber Pack Bauholz-Paket herstellen Создать: Lumber Pack - - - - + + + + Craft Workbench Craft Workbench Werkbank herstellen Создать: Верстак - - - - + + + + Craft Shack Craft Shack Schuppen herstellen Создать: Будка - - - - + + + + Craft Floor 1/4 Craft Floor 1/4 1/4 Fußboden herstellen Создать: Пол 1/4 - - - - + + + + Craft Wall 1/3 Craft Wall 1/3 1/3 Mauer herstellen Создать: Стена 1/3 - - - - + + + + Craft Plywood Pack Craft Plywood Pack Sperrholz-Paket herstellen Создать: Plywood Pack - - - - + + + + Craft Scrap Metal Craft Scrap Metal Schrott herstellen Создать: Металлолом - - - - + + + + Smelt Silver Bar Smelt Silver Bar Silberbarren schmelzen Выплавить серебряный слиток - - - - + + + + Smelt Gold Bar Smelt Gold Bar Goldbarren schmelzen Выплавить золотой слиток - - - - + + + + Wear %1 Wear %1 %1 tragen Одеть %1 - - - - + + + + Craft Bandages Craft Bandages Bandagen herstellen Создать: Бинты - - - - + + + + Craft Desert Net Craft Desert Net Wüstennetz herstellen Создать: Пустынная сеть - - - - + + + + Craft Forest Net Craft Forest Net Waldnetz herstellen Создать: Лесная сеть - - - - + + + + Build Sandbag Build Sandbag Sandsack aufstellen Установить: Мешки с песком - - - - + + + + Craft Large Sandbag Craft Large Sandbag Großen Sandsack herstellen Создать: Большие мешки с песком - - - - + + + + Craft Sandbag Nest Craft Sandbag Nest Sandsack-Nest herstellen Создать: Sandbag Nest - - - - + + + + Craft Sledge Craft Sledge Hammerstiel herstellen Создать: Кувалда - - - - + + + + Craft Fire Barrel Craft Fire Barrel Feuerfass herstellen Создать: Огненная бочка - - - - + + + + Craft Gun Rack Craft Gun Rack Schusswaffen-Gestell herstellen Создать: Полка для оружия - - - - + + + + Gear Gear - + Инвентарь - - - - + + + + Filter Filter - + Фильтр - - - - + + + + Rearm Rearm Aufrüsten - - - - - + + + + + Open bag Open bag Rucksack öffnen Открыть рюкзак - - - - + + + + Close bag Close bag Rucksack schließen Закрыть рюкзак - - - - + + + + Close Close Schließen Закрыть - - - - + + + + All All Alle - - - - - + + + + + Primary Primary Primär - - - - - + + + + + Secondary Secondary Sekundär - - - - - + + + + + HandGun HandGun Handfeuerwaffe - - - - - + + + + + Items Items - + Предметы - - - - + + + + Trader Menu @@ -5581,50 +5581,50 @@ Categories Kategorieren Категории - - - - + + + + Buy Buy Kaufen Купить - - - - + + + + Sell Sell Verkaufen Продать - - - - + + + + Buy For Buy For Kaufen für Куплю за - - - - + + + + Sell For Sell For Verkaufen für Продам за - - - - + + + + Remove from Toolbelt. @@ -5661,30 +5661,30 @@ Craft Round Fence Abgerundeten Zaun herstellen Создать: Круглая ограда из мешков с песком - - - - + + + + Build Round Fence Build Round Fence Abgerundeten Zaun aufstellen Круглая ограда из мешков с песком - - - - + + + + Craft Sandbag Craft Sandbag Sandsack herstellen Создать: Мешки с песком - - - - + + + + Trade Metals @@ -5701,150 +5701,150 @@ Repair Vehicle Fahrzeug reparieren Починить транспорт - + Repareer voertuig Réparer le véhicule - + Repair Repair Reparieren Починить - + Repareer Réparer - + Remove Remove Entfernen Демонтировать - + Demonteer Retirer - + Salvage Vehicle Salvage Vehicle Fahrzeug demontieren Демонтировать запчасти - + Demonteer voertuig Récupérer des pièces - + Cargo Check Cargo Check Gepäckkontrolle Проверить груз - + Controleer Bagage Vérifier la cargaison - + Cancel Cancel Abbrechen Отмена - + Annuleren Annuler - + Upgrade Vehicle Upgrade Vehicle Fahrzeug upgraden Улучшить транспорт - + Voertuig Verbeteren Améliorer Véhicule - + Offroad Performance Offroad Performance Offroad Performance Внедорожная эффективность - - Handleiding: Offroad Prestaties - Manuel: Performances tout-terrain - + + Offroad Prestaties + Performances tout-terrain + Offroad performace manual. Offroad performace manual. Offroad Performance Handbuch Руководство по улучшению внедорожной эффективности. - + Handleiding over offroad prestaties. Manuel sur les performances tout-terrain. - + Vehicle Maintenance Vehicle Maintenance Fahrzeug-Wartung Обслуживание транспорта - - Handleiding: Voertuigonderhoud - Manuel: Maintenance du véhicule - + + Voertuigonderhoud + Maintenance du véhicule + Vehicle maintenance and engineering manual. Vehicle maintenance and engineering manual. Fahrzeug-Wartungshandbuch Руководство по тех. обслуживанию транспортных средств и техники. - + Werkplaatshandboek voor voertuigonderhoud en verbetering. Manuel de mécanique et d'entretien du véhicule. - + Luggage Rack Luggage Rack Gepäckablage Багажник на крыше - - Handleiding: Bagagerek - Manuel: Galerie - + + Bagagerek + Galerie + Luggage Rack install guide. Luggage Rack install guide. Installationsanleitung der Gepäckablage Руководство по установке багажника на крышу. - + Installatiehandleiding voor het bagagerek. Guide d'installation d'une galerie pour augmenter le stockage du véhicule. - + Fuel Tank Fuel Tank Benzintank Топливный бак - - Handleiding: Benzinetank - Manuel: Réservoir - + + Benzinetank + Réservoir + Fuel Tank install guide. Fuel Tank install guide. Installationsanleitung für den Benzintank Руководство по установке топливного бака. - + Installatiehandleiding voor de benzinetank. Guide d'installation du réservoir. - + 1.04 diff --git a/SQF/dayz_server/init/server_functions.sqf b/SQF/dayz_server/init/server_functions.sqf index e2bbd8c2c..304e7b46e 100644 --- a/SQF/dayz_server/init/server_functions.sqf +++ b/SQF/dayz_server/init/server_functions.sqf @@ -212,38 +212,33 @@ BuildingList = []; } forEach (MarkerPosition nearObjects ["building",DynamicVehicleArea]); spawn_vehicles = { - private ["_weights","_isOverLimit","_isAbort","_counter","_index","_vehicle","_velimit","_qty","_isAir","_isShip","_position","_dir","_istoomany","_veh","_objPosition","_marker","_iClass","_itemTypes","_cntWeights","_itemType","_num","_allCfgLoots"]; + private ["_random","_lastIndex","_weights","_index","_vehicle","_velimit","_qty","_isAir","_isShip","_position","_dir","_istoomany","_veh","_objPosition","_marker","_iClass","_itemTypes","_cntWeights","_itemType","_num","_allCfgLoots"]; if (isDedicated) then { - - _isOverLimit = true; - _isAbort = false; - _counter = 0; - while {_isOverLimit} do { - waitUntil{!isNil "BIS_fnc_selectRandom"}; - _index = AllowedVehiclesList call BIS_fnc_selectRandom; + while {count AllowedVehiclesList > 0} do { + // BIS_fnc_selectRandom replaced because the index may be needed to remove the element + _index = floor random count AllowedVehiclesList; + _random = AllowedVehiclesList select _index; - _vehicle = _index select 0; - _velimit = _index select 1; + _vehicle = _random select 0; + _velimit = _random select 1; _qty = {_x == _vehicle} count serverVehicleCounter; // If under limit allow to proceed - if(_qty <= _velimit) then { - _isOverLimit = false; - }; + if (_qty <= _velimit) exitWith {}; - // counter to stop after 5 attempts - _counter = _counter + 1; - - if(_counter >= 5) then { - _isOverLimit = false; - _isAbort = true; + // vehicle limit reached, remove vehicle from list + // since elements cannot be removed from an array, overwrite it with the last element and cut the last element of (as long as order is not important) + _lastIndex = (count AllowedVehiclesList) - 1; + if (_lastIndex != _index) then { + AllowedVehiclesList set [_index, AllowedVehiclesList select _lastIndex]; }; + AllowedVehiclesList resize _lastIndex; }; - if (_isAbort) then { + if (count AllowedVehiclesList == 0) then { diag_log("DEBUG: unable to find suitable vehicle to spawn"); } else { diff --git a/Server Files/MPMissions/DayZ_Epoch_18.Sara/mission.sqm b/Server Files/MPMissions/DayZ_Epoch_18.Sara/mission.sqm index bca940f3f..4cfbb57fb 100644 --- a/Server Files/MPMissions/DayZ_Epoch_18.Sara/mission.sqm +++ b/Server Files/MPMissions/DayZ_Epoch_18.Sara/mission.sqm @@ -12,7 +12,6 @@ class Mission "cacharacters_pmc", "ca_modules_functions", "glt_m300t", - "csj_gyroac", "map_eu", "jetskiyanahuiaddon" @@ -1278,7 +1277,7 @@ class Mission }; class Item15 { - position[]={14062.486,68.227501,12673.197}; + position[]={14271.439,39.959999,12410.709}; name="TradercityBag"; text="Trader City Bag"; type="mil_circle";