diff --git a/SQF/dayz_code/compile/dze_snap_building.sqf b/SQF/dayz_code/compile/dze_snap_building.sqf index 0b04a1dea..e55b62b21 100644 --- a/SQF/dayz_code/compile/dze_snap_building.sqf +++ b/SQF/dayz_code/compile/dze_snap_building.sqf @@ -34,8 +34,19 @@ local _strPitch = localize "STR_EPOCH_TUT_PITCH"; local _strBank = localize "STR_EPOCH_TUT_BANK"; local _strRotate = localize "STR_EPOCH_TUT_ROTATE"; local _tab = localize "STR_EPOCH_TUT_KEY_TAB"; -local _PgUp = localize "STR_EPOCH_TUT_KEY_PGUP"; -local _PgDn = localize "STR_EPOCH_TUT_KEY_PGDN"; +local _ctrl = localize "STR_ENG_EPOCH_TUT_KEY_CTRL"; +local _PgUp = localize "STR_ENG_EPOCH_TUT_KEY_PGUP"; +local _PgDn = localize "STR_ENG_EPOCH_TUT_KEY_PGDN"; +local _degKeys = toArray (localize "STR_ENG_EPOCH_TUT_ADJ_DEGREES_KEYS"); + +if (DZE_KEYBOARD == DZE_GERMAN) then { + _ctrl = localize "STR_GER_EPOCH_TUT_KEY_CTRL"; + _PgUp = localize "STR_GER_EPOCH_TUT_KEY_PGUP"; + _PgDn = localize "STR_GER_EPOCH_TUT_KEY_PGDN"; + _degKeys = toArray (localize "STR_GER_EPOCH_TUT_ADJ_DEGREES_KEYS"); +}; +local _decrease = toString [_degKeys select 0]; +local _increase = toString [_degKeys select 1]; local _hyphen = _WHT + "-" + _ORA; local _slash = _WHT + "/" + _ORA; local _colon = _WHT + ": "; @@ -46,14 +57,11 @@ local _WBR = _WHT + "]"; local _DBR = "] ["; local _BRW = "] " + _WHT; local _hpsp = _hyphen + _PgUp + _slash + _PgDn + _BRW; -local _degKeys = toArray (localize "STR_EPOCH_TUT_ADJ_DEGREES_KEYS"); -local _decrease = toString [_degKeys select 0]; -local _increase = toString [_degKeys select 1]; local _handedness = ["STR_EPOCH_TUT_KEY_ARROWS","STR_EPOCH_TUT_KEY_NUMPAD_ARROWS"] select DZE_LEFT_HANDED; local _HK = _OBR + _tab + _DBR + localize "STR_EPOCH_TUT_KEY_SHIFT" + _hyphen + _tab + _BRW + localize "STR_EPOCH_TUT_SNAP_NEXT_PREV" + _NL; _HK = _HK + _OBR + _PgUp + _DBR + _PgDn + _BRW + localize "STR_EPOCH_TUT_HEIGHT10" + _NL; -_HK = _HK + _OBR + localize "STR_EPOCH_TUT_KEY_CTRL" + _hpsp + localize "STR_EPOCH_TUT_HEIGHT1" + _NL; +_HK = _HK + _OBR + _ctrl + _hpsp + localize "STR_EPOCH_TUT_HEIGHT1" + _NL; _HK = _HK + _OBR + localize "STR_EPOCH_TUT_KEY_ALT" + _hpsp + localize "STR_EPOCH_TUT_HEIGHT100" + _NL; _HK = _HK + _OBR + localize _handedness + _BRW + _strPitch + " / " + _strBank + _NL; _HK = _HK + _ORA + "[Q] [E] " + _WHT + _strRotate + _NL; diff --git a/SQF/dayz_code/compile/keyboard.sqf b/SQF/dayz_code/compile/keyboard.sqf index 2c408d746..b0aed371b 100644 --- a/SQF/dayz_code/compile/keyboard.sqf +++ b/SQF/dayz_code/compile/keyboard.sqf @@ -168,9 +168,8 @@ if (isNil "keyboard_keys") then { _handled = true; }; local _statusUI = { - DZE_UI = DZE_UI + 1; - if (DZE_UI == 6) then {DZE_UI = 0; [format[localize "STR_UI_STATUS_ICONS" + " %1",localize "STR_DISABLED"],1] call dayz_rollingMessages;}; - if (DZE_UI == 1) then {[format[localize "STR_UI_STATUS_ICONS" + " %1",localize "STR_ENABLED"],1] call dayz_rollingMessages;}; + DZE_UI = (DZE_UI + 1) % 6; + if (DZE_UI < 2) then {[format[localize "STR_UI_STATUS_ICONS" + " %1",localize (["STR_DISABLED","STR_ENABLED"] select DZE_UI)],1] call dayz_rollingMessages;}; profileNamespace setVariable ["statusUI",DZE_UI]; saveProfileNamespace; call ui_changeDisplay; @@ -179,13 +178,22 @@ if (isNil "keyboard_keys") then { local _handedness = { if (isNil "DZE_buildItem") then { // only allow switching outside of base building DZE_LEFT_HANDED = !DZE_LEFT_HANDED; - local _handed = ""; - if (DZE_LEFT_HANDED) then { - _handed = "STR_EPOCH_LEFT_HANDED"; - } else { - _handed = "STR_EPOCH_RIGHT_HANDED"; - }; - systemChat format [localize "STR_EPOCH_KEYBOARD_HANDEDNESS", localize _handed]; + local _handed = ["STR_EPOCH_RIGHT_HANDED","STR_EPOCH_LEFT_HANDED"] select DZE_LEFT_HANDED; + [format [localize "STR_EPOCH_KEYBOARD_HANDEDNESS", localize _handed], 1] call dayz_rollingMessages; + profileNamespace setVariable ["leftHanded", DZE_LEFT_HANDED]; + saveProfileNamespace; + }; + _handled = true; + }; + local _keyboard = { + if (isNil "DZE_buildItem") then { // only allow switching outside of base building + DZE_KEYBOARD = (DZE_KEYBOARD + 1) % 2; // English and German keyboard layout for hotkeys + { + if (DZE_KEYBOARD == _x select 0) exitWith {DZE_LANGUAGE = _x select 1}; + } count DZE_HOTKEYS; + [format [localize "STR_EPOCH_KEYBOARD_LAYOUT", localize DZE_LANGUAGE], 1] call dayz_rollingMessages; + profileNamespace setVariable ["keyboardLayout", DZE_KEYBOARD]; + saveProfileNamespace; }; _handled = true; }; @@ -369,8 +377,9 @@ if (isNil "keyboard_keys") then { [actionKeys "SelectAll", _block] call _addArray; [[DIK_F1], _muteSound] call _addArray; [[DIK_F3], _statusUI] call _addArray; - [[DIK_F6], _handedness] call _addArray; [[DIK_F5], {if (diag_tickTime - dayz_lastSave > 10) then {call player_forceSave;};_handled = true;}] call _addArray; + [[DIK_F6], _handedness] call _addArray; + [[DIK_F7], _keyboard] call _addArray; [[DIK_TAB], _dze_tab] call _addArray; [actionKeys "LeanLeft", {DZE_4 = true; dayz_dodge = true;}] call _addArray; [actionKeys "LeanRight", {DZE_6 = true; dayz_dodge = true;}] call _addArray; @@ -378,7 +387,7 @@ if (isNil "keyboard_keys") then { [[DIK_E], _dze_e] call _addArray; [actionKeys "GetOver", _bunnyhop] call _addArray; // V [actionKeys "ForceCommandingMode", {DZE_5 = true; _handled = true;}] call _addArray; - [[DIK_F2, DIK_F4, DIK_F7, DIK_F8, DIK_F9, DIK_F10, DIK_F11, DIK_F12, DIK_4, DIK_5, DIK_6, DIK_7, DIK_8, DIK_9], _block] call _addArray; + [[DIK_F2, DIK_F4, DIK_F8, DIK_F9, DIK_F10, DIK_F11, DIK_F12, DIK_4, DIK_5, DIK_6, DIK_7, DIK_8, DIK_9], _block] call _addArray; if (dayz_groupSystem) then { [[DIK_F5], _openGroups] call _addArray; diff --git a/SQF/dayz_code/init/variables.sqf b/SQF/dayz_code/init/variables.sqf index a775cea79..f273112c4 100644 --- a/SQF/dayz_code/init/variables.sqf +++ b/SQF/dayz_code/init/variables.sqf @@ -434,7 +434,11 @@ if (!isDedicated) then { DZE_myHaloVehicle = objNull; dayz_myLiftVehicle = objNull; DZE_Friends = []; - DZE_LEFT_HANDED = false; + DZE_ENGLISH = 0; + DZE_GERMAN = 1; + DZE_HOTKEYS = [[DZE_ENGLISH,"STR_EPOCH_ENGLISH"], [DZE_GERMAN,"STR_EPOCH_GERMAN"]]; + DZE_KEYBOARD = profileNamespace getVariable ["keyboardLayout", 0]; + DZE_LEFT_HANDED = profileNamespace getVariable ["leftHanded", false]; DZE_Q = false; DZE_Z = false; DZE_Q_alt = false; diff --git a/SQF/dayz_code/stringtable.xml b/SQF/dayz_code/stringtable.xml index f156595e8..a43881dc6 100644 --- a/SQF/dayz_code/stringtable.xml +++ b/SQF/dayz_code/stringtable.xml @@ -33809,18 +33809,6 @@ Shift - - PgUp - Bild Auf - - - PgDn - Bild Ab - - - Ctrl - Strg - Alt @@ -33834,10 +33822,54 @@ Nummernpad-Pfeiltasten Стрелки на цифровой клавиатуре + + English + Englisch + + + German + Deutsch + + + Keyboard Layout: %1 + Tastaturbelegung: %1 + + + Bild Auf + Bild Auf + + + Bild Ab + Bild Ab + + + Strg + Strg + + + ß´ + ß´ + + + PgUp + PgUp + + + PgDn + PgDn + + + Ctrl + Ctrl + + + -= + -= + - ** Keyboard is now configured: %1 ** - ** Tastatur is eingestellt auf: %1 ** - ** Теперь клавиатура сконфигурирована для %1 ** + Keyboard is now configured: %1 + Tastatur is eingestellt auf: %1 + Теперь клавиатура сконфигурирована для %1 Left-handed @@ -33936,10 +33968,6 @@ Bauen Построить - - -= - ß´ - Snap Привязка diff --git a/Server Files/DZE_Server_Config/BattlEye/scripts.txt b/Server Files/DZE_Server_Config/BattlEye/scripts.txt index 1f2264efc..325a8a6ec 100644 --- a/Server Files/DZE_Server_Config/BattlEye/scripts.txt +++ b/Server Files/DZE_Server_Config/BattlEye/scripts.txt @@ -83,7 +83,7 @@ 5 switchCamera !"\"switchCamera\", " !"rswitchCamera" !"player switchCamera _currentCamera;\nif (_currentWpn !=" !"< 150) && random 1 > 0.5) then {\n_killer switchcamera" 5 systemChat !="systemChat format[localize \"str_missing_to_do_this\", _x];" !"systemChat (localize " !"systemChat format[localize \"STR_EPOCH_" !"systemChat localize \"STR_EPOCH_" !"case \"system\": {systemChat _message;};" !"systemchat localize \"STR_CRAFTING_NEEDED_ITEMS\";" !"systemChat format[localize \"STR_CL_" !"systemChat localize \"STR_CL_" !=") then {\nif (player getVariable[\"radiostate\",true]) then {\nsystemChat (\"[RADIO] \" + _message);\nplaySound \"Radio_Message_Sound\";\n" !"systemChat localize \"str_cursorTargetNotFound\"" !="T_HANDED\";\n} else {\n_handed = \"STR_EPOCH_RIGHT_HANDED\";\n};\nsystemChat format [localize \"STR_EPOCH_KEYBOARD_HANDEDNESS\", localize" 5 title !"titleCut [\"\", \"BLACK " !"\"titleCut\", " !"\"titleText\"" !="rtitleCut = 'titleCut'" !"rtitleCutc" !="rtitleText = 'titleText'" !"rtitleTextc" !"(_missionTextListPath >> \"titles\")" !"(_display displayCtrl _titleIDC) ctrlShow false;" !"titleText [format[localize \"str_return_lobby\", _x" !",\"_titleText\"" !"localize 'STR_UI_GENDER_TITLE';\n_timeNem" !="scriptName \"MP\\data\\scriptCommands\\titleText.sqf\";" !_fillTradeTitle !_bldTxtStringTitle !"localize \"str_halo_altitude_speed" !"play displayCtrl 8801 ctrlSetText(format[localize \"STR_CL_RV_TITLE\",_keyDisplay]);\n\n_control = ((findDisplay 8800) displayCtrl 8" !="f\"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nprivate [\"_folder\",\"_actionTitleFormat\",\"_actionCostsFormat\",\"_message\",\"_messageShown\",\"_last" !="\"ns_evrWave2\",\"ns_evrWave3\"];\n\n\nif (DZE_EVRWhiteFlash) then {titleText[\"\",\"WHITE OUT\",1]; titleText[\"\",\"WHITE IN\",1]; uiSleep 0." -5 toString !"_animCheck = toString ([(_animStateArray select 0),(_animStateArray select 1)" !="_skinToModel = toString (_finalArray);" !="{_textArrayTemp = _textArrayTemp + [tostring [_x]]} foreach _line;" !="_cmpt = toString _cmpt;" !="_objName = toLower(toString(_objName));" !"if (toString _hayArr != _needle) then {" !="_type = toString _typeA;" !="_anim4 = toString _anim4;" !"{(count _stance>17)}) then {toString [_stance select 17]}" !"BIS_fnc_timeToString" !"02, if (typeName _name == \"ARRAY\") then {toString _name} else {_name}];" !="s = true;\n\n_array = toArray (animationState player);\n_str = toString [_array select 5,_array select 6,_array select 7];\n_anim = " !=" _input - [_x];\n} forEach _badChars;\n\n_input = parseNumber (toString (_input));\n_input\n};\n\nBankDialogUpdateAmounts = {\nprivate [" !=";\n\n{\n_input = _input - [_x];\n} forEach _badChars;\n\n_input = toString (_input);\n\nif (_type == 0) then {_input = parseNumber _inpu" !="};\nif (!_roofAbove) then {_miss = \"0000\";}; \n\nif !([_miss, toString _hit] call fnc_inString) then { \n_inside = true;\n};\n};\ndayz" !="array2 resize ((count _array2) - 7); \n};\n\n_model = toLower (toString _array2);\n};\n_model" !="set [count _array2, _array select _i];\n};\n_model = toLower (toString _array2);\n};\n_model" !="alize \"STR_EPOCH_TUT_ADJ_DEGREES_KEYS\");\nlocal _decrease = toString [_degKeys select 0];\nlocal _increase = toString [_degKeys " +5 toString !"_animCheck = toString ([(_animStateArray select 0),(_animStateArray select 1)" !="_skinToModel = toString (_finalArray);" !="{_textArrayTemp = _textArrayTemp + [tostring [_x]]} foreach _line;" !="_cmpt = toString _cmpt;" !="_objName = toLower(toString(_objName));" !"if (toString _hayArr != _needle) then {" !="_type = toString _typeA;" !="_anim4 = toString _anim4;" !"{(count _stance>17)}) then {toString [_stance select 17]}" !"BIS_fnc_timeToString" !"02, if (typeName _name == \"ARRAY\") then {toString _name} else {_name}];" !="s = true;\n\n_array = toArray (animationState player);\n_str = toString [_array select 5,_array select 6,_array select 7];\n_anim = " !=" _input - [_x];\n} forEach _badChars;\n\n_input = parseNumber (toString (_input));\n_input\n};\n\nBankDialogUpdateAmounts = {\nprivate [" !=";\n\n{\n_input = _input - [_x];\n} forEach _badChars;\n\n_input = toString (_input);\n\nif (_type == 0) then {_input = parseNumber _inpu" !="};\nif (!_roofAbove) then {_miss = \"0000\";}; \n\nif !([_miss, toString _hit] call fnc_inString) then { \n_inside = true;\n};\n};\ndayz" !="array2 resize ((count _array2) - 7); \n};\n\n_model = toLower (toString _array2);\n};\n_model" !="set [count _array2, _array select _i];\n};\n_model = toLower (toString _array2);\n};\n_model" !="STR_GER_EPOCH_TUT_ADJ_DEGREES_KEYS\");\n};\nlocal _decrease = toString [_degKeys select 0];\nlocal _increase = toString [_degKeys " 5 worldTo !="_relPos = _building worldToModel _point;" !"_w2m = _x worldToModel (getPosATL player);\n_bb = (boundingbox _x) select 1;" !="_h = _offset + ((_o worldToModel (getPosATL _o)) select 2);" !"_pos set [2,(_pos select 2) + 1.5];\n_screen = worldToScreen _pos;\n_text = composeText [image" !="\n_pos = _this select 1; \n_offset = 1; \n\n_relPos = _building worldToModel _pos;\n_boundingBox = boundingBox _building;\n\n_min = _bo" !="ype in DZE_insideExceptions}}) then {\n\nlocal _pos = _object worldToModel (ASLToATL _posASL);\nlocal _max = (boundingBox _object) " !="napText = {\nif (!DZE_uiSnapText) exitWith {};\n\nlocal _pos = worldToScreen (_closestNearCurr modelToWorld [0,0,0]);\n\nif (count _p" !=" (_building != _item) then { \nlocal _relPos = _building worldToModel _pos;\n\nlocal _max = (boundingBox _building) select 1;\nl"