diff --git a/addons/arsenal/functions/fnc_statTextStatement_scopeVisionMode.sqf b/addons/arsenal/functions/fnc_statTextStatement_scopeVisionMode.sqf index dca83cb381..b4de06e772 100644 --- a/addons/arsenal/functions/fnc_statTextStatement_scopeVisionMode.sqf +++ b/addons/arsenal/functions/fnc_statTextStatement_scopeVisionMode.sqf @@ -67,7 +67,9 @@ if (!_primaryNVGSupported && {(_opticsModes select {_x select 1}) isEqualTo _opt _primaryNVGSupported = true; }; -if (_primaryNVGIntegrated) exitWith {LLSTRING(statVisionMode_IntPrim)}; +if (_primaryTiIntegrated && _primaryNVGIntegrated) exitWith {LLSTRING(statVisionMode_intPrimTi)}; +if (_primaryTiIntegrated) exitWith {LLSTRING(statVisionMode_ti)}; +if (_primaryNVGIntegrated) exitWith {LLSTRING(statVisionMode_intPrim)}; if (_primaryNVGSupported) exitWith {LLSTRING(statVisionMode_supPrim)}; if (_secondaryNVGSupported) exitWith {LLSTRING(statVisionMode_supSec)}; diff --git a/addons/arsenal/stringtable.xml b/addons/arsenal/stringtable.xml index 7f6947d913..230795609f 100644 --- a/addons/arsenal/stringtable.xml +++ b/addons/arsenal/stringtable.xml @@ -1223,7 +1223,7 @@ Vedlejší část hledí podporuje 보조무기 지원여부 - + Primary integrated Primaria integrada Primär Integriert @@ -1238,6 +1238,12 @@ Integrováno do hlavní části hledí 주무기 내장여부 + + Thermal integrated + + + Thermal & Primary integrated + Not Supported No soportada diff --git a/addons/common/functions/fnc_claimSafeServer.sqf b/addons/common/functions/fnc_claimSafeServer.sqf index e24a421549..6ebee7cb4f 100644 --- a/addons/common/functions/fnc_claimSafeServer.sqf +++ b/addons/common/functions/fnc_claimSafeServer.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* * Author: commy2, PabstMirror - * Unit claims the ownership over an object. This is used to prevent multiple players from draging the same ammo box or using up the same wheel when repairing etc. + * Unit claims the ownership over an object. This is used to prevent multiple players from dragging the same ammo box or using up the same wheel when repairing etc. * This function only runs on the server and handles the "ace_common_claimSafe" event. It provides a network safe way claiming objects as all claims are run on server. * Return event is passed [_unit, _target, _success] for new claims, no event on claim release * diff --git a/addons/common/functions/fnc_getVehicleUAVCrew.sqf b/addons/common/functions/fnc_getVehicleUAVCrew.sqf index 0ac91e644a..f991e08d57 100644 --- a/addons/common/functions/fnc_getVehicleUAVCrew.sqf +++ b/addons/common/functions/fnc_getVehicleUAVCrew.sqf @@ -17,4 +17,4 @@ params [["_vehicle", objNull, [objNull]]]; -crew _vehicle select {getText (configOf _x >> "simulation") == "UAVPilot"} // return +(crew _vehicle) select {unitIsUAV _x} // return diff --git a/addons/compat_ws/compat_ws_realisticnames/stringtable.xml b/addons/compat_ws/compat_ws_realisticnames/stringtable.xml index b9341cf19f..db4dc2b6d5 100644 --- a/addons/compat_ws/compat_ws_realisticnames/stringtable.xml +++ b/addons/compat_ws/compat_ws_realisticnames/stringtable.xml @@ -55,14 +55,14 @@ GLX-160 (육각) GLX 160 (Hex) GLX-160 (Hex) - GLX 160 (ヘックス) + GLX 160 (六角形迷彩) GLX 160 (Green Hex) GLX-160 (초록육각) GLX 160 (Grün Hex) GLX-160 (Hex Verde) - GLX 160 (緑ヘックス) + GLX 160 (緑六角形迷彩) GLX 160 (Camo) @@ -110,14 +110,14 @@ 벡터 SS-77 (육각) Vektor SS-77 (Hex) Vektor SS-77 (Hex) - ヴェクター SS-77 (ヘックス) + ヴェクター SS-77 (六角形迷彩) Vektor SS-77 (Green Hex) 벡터 SS-77 (초록육각) Vektor SS-77 (Grün Hex) Vektor SS-77 (Hex Verde) - ヴェクター SS-77 (緑ヘックス) + ヴェクター SS-77 (緑六角形迷彩) Vektor SS-77 (Desert) diff --git a/addons/cookoff/functions/fnc_cookOff.sqf b/addons/cookoff/functions/fnc_cookOff.sqf index 1d598cdb96..57cde71682 100644 --- a/addons/cookoff/functions/fnc_cookOff.sqf +++ b/addons/cookoff/functions/fnc_cookOff.sqf @@ -36,7 +36,7 @@ _vehicle setVariable [QGVAR(isCookingOff), true, true]; // limit maximum value of intensity to prevent very long cook-off times _intensity = _intensity min _maxIntensity; -private _config = _vehicle call CBA_fnc_getObjectConfig; +private _config = configOf _vehicle; private _positions = getArray (_config >> QGVAR(cookoffSelections)) select {(_vehicle selectionPosition _x) isNotEqualTo [0,0,0]}; if (_positions isEqualTo []) then { diff --git a/addons/cookoff/functions/fnc_cookOffEffect.sqf b/addons/cookoff/functions/fnc_cookOffEffect.sqf index a907f67606..44282f2f6b 100644 --- a/addons/cookoff/functions/fnc_cookOffEffect.sqf +++ b/addons/cookoff/functions/fnc_cookOffEffect.sqf @@ -40,7 +40,7 @@ if (isServer) then { if (_ring) then { private _intensity = 6; private _radius = 1.5 * ((boundingBoxReal _obj) select 2); - [QEGVAR(fire,addFireSource), [_obj, _radius, _intensity, _obj]] call CBA_fnc_localEvent; + [QEGVAR(fire,addFireSource), [_obj, _radius, _intensity, format [QGVAR(%1), hashValue _obj]]] call CBA_fnc_localEvent; }; }; @@ -52,7 +52,7 @@ if (isServer) then { deleteVehicle _light; deleteVehicle _sound; if (isServer) then { - [QEGVAR(fire,removeFireSource), [_obj]] call CBA_fnc_localEvent; + [QEGVAR(fire,removeFireSource), [format [QGVAR(%1), hashValue _obj]]] call CBA_fnc_localEvent; }; [_pfh] call CBA_fnc_removePerFrameHandler; }; @@ -198,4 +198,3 @@ if (isServer) then { ]; }, 0, [_obj, _jet, _ring, _time, CBA_missionTime, _light, _fireSelection, _sound, _intensity]] call CBA_fnc_addPerFrameHandler; - diff --git a/addons/dragging/XEH_PREP.hpp b/addons/dragging/XEH_PREP.hpp index 37b9722e8e..0861c9533d 100644 --- a/addons/dragging/XEH_PREP.hpp +++ b/addons/dragging/XEH_PREP.hpp @@ -26,6 +26,8 @@ PREP(resumeDrag); PREP(setCarryable); PREP(setDraggable); PREP(startCarry); +PREP(startCarryLocal); PREP(startCarryPFH); PREP(startDrag); +PREP(startDragLocal); PREP(startDragPFH); diff --git a/addons/dragging/XEH_postInit.sqf b/addons/dragging/XEH_postInit.sqf index 84bcffb544..ae277bf4d2 100644 --- a/addons/dragging/XEH_postInit.sqf +++ b/addons/dragging/XEH_postInit.sqf @@ -67,6 +67,9 @@ if (isNil QGVAR(maxWeightCarryRun)) then { }; }] call CBA_fnc_addEventHandler; +[QGVAR(startCarry), LINKFUNC(startCarryLocal)] call CBA_fnc_addEventHandler; +[QGVAR(startDrag), LINKFUNC(startDragLocal)] call CBA_fnc_addEventHandler; + [QGVAR(carryingContainerClosed), { params ["_container", "_owner"]; TRACE_2("carryingContainerClosed EH",_container,_owner); diff --git a/addons/dragging/functions/fnc_canCarry.sqf b/addons/dragging/functions/fnc_canCarry.sqf index caea20fb8a..be3015868b 100644 --- a/addons/dragging/functions/fnc_canCarry.sqf +++ b/addons/dragging/functions/fnc_canCarry.sqf @@ -28,7 +28,7 @@ if ((_unit getHitPointDamage "HitLegs") >= 0.5) exitWith {false}; // Static weapons need to be empty for carrying (ignore UAV AI) if (_target isKindOf "StaticWeapon") exitWith { - (crew _target) findIf {getText (configOf _x >> "simulation") != "UAVPilot"} == -1 + (crew _target) findIf {!unitIsUAV _x} == -1 }; // Units need to be unconscious or limping; Units also need to not be in ragdoll, as that causes desync issues diff --git a/addons/dragging/functions/fnc_canDrag.sqf b/addons/dragging/functions/fnc_canDrag.sqf index 33dcd134b6..586e23feaf 100644 --- a/addons/dragging/functions/fnc_canDrag.sqf +++ b/addons/dragging/functions/fnc_canDrag.sqf @@ -24,7 +24,7 @@ if !([_unit, _target, ["isNotSwimming"]] call EFUNC(common,canInteractWith)) exi // Static weapons need to be empty for dragging (ignore UAV AI) if (_target isKindOf "StaticWeapon") exitWith { - (crew _target) findIf {getText (configOf _x >> "simulation") != "UAVPilot"} == -1 + (crew _target) findIf {!unitIsUAV _x} == -1 }; // Units need to be unconscious or limping; Units also need to not be in ragdoll, as that causes desync issues diff --git a/addons/dragging/functions/fnc_pauseCarry.sqf b/addons/dragging/functions/fnc_pauseCarry.sqf index bfe27420f6..49c91e166f 100644 --- a/addons/dragging/functions/fnc_pauseCarry.sqf +++ b/addons/dragging/functions/fnc_pauseCarry.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* * Author: johnb43 - * Removes user input affecting dragging. + * Removes user input affecting carrying. * * Arguments: * 0: Unit diff --git a/addons/dragging/functions/fnc_setCarryable.sqf b/addons/dragging/functions/fnc_setCarryable.sqf index 174bdbf972..60b9854f41 100644 --- a/addons/dragging/functions/fnc_setCarryable.sqf +++ b/addons/dragging/functions/fnc_setCarryable.sqf @@ -56,8 +56,25 @@ GVAR(initializedClasses_carry) = _initializedClasses; private _icon = [QPATHTOF(UI\icons\box_carry.paa), QPATHTOF(UI\icons\person_carry.paa)] select (_object isKindOf "CAManBase"); -private _carryAction = [QGVAR(carry), LLSTRING(Carry), _icon, {[_player, _target] call FUNC(startCarry)}, {[_player, _target] call FUNC(canCarry)}] call EFUNC(interact_menu,createAction); -private _dropAction = [QGVAR(drop_carry), LLSTRING(Drop), "", {[_player, _target] call FUNC(dropObject_carry)}, {[_player, _target] call FUNC(canDrop_carry)}] call EFUNC(interact_menu,createAction); +private _carryAction = [ + QGVAR(carry), + LLSTRING(Carry), + _icon, + { + [_player, _target] call FUNC(startCarry) + }, { + [_player, _target] call FUNC(canCarry) +}] call EFUNC(interact_menu,createAction); + +private _dropAction = [ + QGVAR(drop_carry), + LLSTRING(Drop), + "", + { + [_player, _target] call FUNC(dropObject_carry) + }, { + [_player, _target] call FUNC(canDrop_carry) +}] call EFUNC(interact_menu,createAction); [_type, 0, ["ACE_MainActions"], _carryAction] call EFUNC(interact_menu,addActionToClass); [_type, 0, [], _dropAction] call EFUNC(interact_menu,addActionToClass); diff --git a/addons/dragging/functions/fnc_setDraggable.sqf b/addons/dragging/functions/fnc_setDraggable.sqf index a00e3005e9..e024ec5be2 100644 --- a/addons/dragging/functions/fnc_setDraggable.sqf +++ b/addons/dragging/functions/fnc_setDraggable.sqf @@ -56,8 +56,25 @@ GVAR(initializedClasses) = _initializedClasses; private _icon = [QPATHTOF(UI\icons\box_drag.paa), QPATHTOF(UI\icons\person_drag.paa)] select (_object isKindOf "CAManBase"); -private _dragAction = [QGVAR(drag), LLSTRING(Drag), _icon, {[_player, _target] call FUNC(startDrag)}, {[_player, _target] call FUNC(canDrag)}] call EFUNC(interact_menu,createAction); -private _dropAction = [QGVAR(drop), LLSTRING(Drop), "", {[_player, _target] call FUNC(dropObject)}, {[_player, _target] call FUNC(canDrop)}] call EFUNC(interact_menu,createAction); +private _dragAction = [ + QGVAR(drag), + LLSTRING(Drag), + _icon, + { + [_player, _target] call FUNC(startDrag) + }, { + [_player, _target] call FUNC(canDrag) +}] call EFUNC(interact_menu,createAction); + +private _dropAction = [ + QGVAR(drop), + LLSTRING(Drop), + "", + { + [_player, _target] call FUNC(dropObject); + }, { + [_player, _target] call FUNC(canDrop) +}] call EFUNC(interact_menu,createAction); [_type, 0, ["ACE_MainActions"], _dragAction] call EFUNC(interact_menu,addActionToClass); [_type, 0, [], _dropAction] call EFUNC(interact_menu,addActionToClass); diff --git a/addons/dragging/functions/fnc_startCarry.sqf b/addons/dragging/functions/fnc_startCarry.sqf index 040b701f71..3e2cc17efd 100644 --- a/addons/dragging/functions/fnc_startCarry.sqf +++ b/addons/dragging/functions/fnc_startCarry.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* - * Author: commy2, PiZZADOX - * Starts the carrying process. + * Author: johnb43 + * Starts the carrying process safely. * * Arguments: * 0: Unit that should do the carrying @@ -11,82 +11,11 @@ * None * * Example: - * [player, cursorTarget] call ace_dragging_fnc_startCarry; + * [player, cursorTarget] call ace_dragging_fnc_startCarry * * Public: No */ - params ["_unit", "_target"]; -TRACE_2("params",_unit,_target); -// Exempt from weight check if object has override variable set -private _weight = 0; - -if !(_target getVariable [QGVAR(ignoreWeightCarry), false]) then { - _weight = _target call FUNC(getWeight); -}; - -// Exit if object weight is over global var value -if (_weight > GETMVAR(ACE_maxWeightCarry,1E11)) exitWith { - [LLSTRING(UnableToDrag)] call EFUNC(common,displayTextStructured); -}; - -private _timer = CBA_missionTime + 5; - -// Handle objects vs. persons -if (_target isKindOf "CAManBase") then { - private _primaryWeapon = primaryWeapon _unit; - - // Add a primary weapon if the unit has none - if (_primaryWeapon == "") then { - _unit addWeapon "ACE_FakePrimaryWeapon"; - _primaryWeapon = "ACE_FakePrimaryWeapon"; - }; - - // Select primary, otherwise the drag animation actions don't work - _unit selectWeapon _primaryWeapon; - - // Move a bit closer and adjust direction when trying to pick up a person - [QEGVAR(common,setDir), [_target, getDir _unit + 180], _target] call CBA_fnc_targetEvent; - _target setPosASL (getPosASL _unit vectorAdd (vectorDir _unit)); - - [_unit, "AcinPknlMstpSnonWnonDnon_AcinPercMrunSnonWnonDnon", 2] call EFUNC(common,doAnimation); - [_target, "AinjPfalMstpSnonWrflDnon_carried_Up", 2] call EFUNC(common,doAnimation); - - _timer = CBA_missionTime + 10; -} else { - // Select no weapon and stop sprinting - private _previousWeaponIndex = [_unit] call EFUNC(common,getFiremodeIndex); - _unit setVariable [QGVAR(previousWeapon), _previousWeaponIndex, true]; - - _unit action ["SwitchWeapon", _unit, _unit, 299]; - - [_unit, "AmovPercMstpSnonWnonDnon", 0] call EFUNC(common,doAnimation); - - private _canRun = _weight call FUNC(canRun_carry); - - // Only force walking if we're overweight - [_unit, "forceWalk", QUOTE(ADDON), !_canRun] call EFUNC(common,statusEffect_set); - [_unit, "blockSprint", QUOTE(ADDON), _canRun] call EFUNC(common,statusEffect_set); -}; - -[_unit, "blockThrow", QUOTE(ADDON), true] call EFUNC(common,statusEffect_set); - -// Prevent multiple players from accessing the same object -[_unit, _target, true] call EFUNC(common,claim); - -// Prevents dragging and carrying at the same time -_unit setVariable [QGVAR(isCarrying), true, true]; - -// Required for aborting animation -_unit setVariable [QGVAR(carriedObject), _target, true]; - -[FUNC(startCarryPFH), 0.2, [_unit, _target, _timer]] call CBA_fnc_addPerFrameHandler; - -// Disable collisions by setting the PhysX mass to almost zero -private _mass = getMass _target; - -if (_mass > 1) then { - _target setVariable [QGVAR(originalMass), _mass, true]; - [QEGVAR(common,setMass), [_target, 1e-12]] call CBA_fnc_globalEvent; // Force global sync -}; +// Try to claim the object +[QEGVAR(common,claimSafe), [_unit, _target, true, QGVAR(startCarry)]] call CBA_fnc_serverEvent; diff --git a/addons/dragging/functions/fnc_startCarryLocal.sqf b/addons/dragging/functions/fnc_startCarryLocal.sqf new file mode 100644 index 0000000000..15101e2950 --- /dev/null +++ b/addons/dragging/functions/fnc_startCarryLocal.sqf @@ -0,0 +1,92 @@ +#include "..\script_component.hpp" +/* + * Author: commy2, PiZZADOX + * Starts the carrying process. + * + * Arguments: + * 0: Unit that should do the carrying + * 1: Object to carry + * 2: If object was successfully claimed + * + * Return Value: + * None + * + * Example: + * [player, cursorTarget, true] call ace_dragging_fnc_startCarryLocal + * + * Public: No + */ + +params ["_unit", "_target", "_claimed"]; +TRACE_3("params",_unit,_target,_claimed); + +if (!_claimed) exitWith { WARNING_1("already claimed %1",_this) }; + +// Exempt from weight check if object has override variable set +private _weight = 0; + +if !(_target getVariable [QGVAR(ignoreWeightCarry), false]) then { + _weight = _target call FUNC(getWeight); +}; + +// Exit if object weight is over global var value +if (_weight > GETMVAR(ACE_maxWeightCarry,1E11)) exitWith { + [LLSTRING(UnableToDrag)] call EFUNC(common,displayTextStructured); +}; + +private _timer = CBA_missionTime + 5; + +// Handle objects vs. persons +if (_target isKindOf "CAManBase") then { + private _primaryWeapon = primaryWeapon _unit; + + // Add a primary weapon if the unit has none + if (_primaryWeapon == "") then { + _unit addWeapon "ACE_FakePrimaryWeapon"; + _primaryWeapon = "ACE_FakePrimaryWeapon"; + }; + + // Select primary, otherwise the drag animation actions don't work + _unit selectWeapon _primaryWeapon; + + // Move a bit closer and adjust direction when trying to pick up a person + [QEGVAR(common,setDir), [_target, getDir _unit + 180], _target] call CBA_fnc_targetEvent; + _target setPosASL (getPosASL _unit vectorAdd (vectorDir _unit)); + + [_unit, "AcinPknlMstpSnonWnonDnon_AcinPercMrunSnonWnonDnon", 2] call EFUNC(common,doAnimation); + [_target, "AinjPfalMstpSnonWrflDnon_carried_Up", 2] call EFUNC(common,doAnimation); + + _timer = CBA_missionTime + 10; +} else { + // Select no weapon and stop sprinting + private _previousWeaponIndex = [_unit] call EFUNC(common,getFiremodeIndex); + _unit setVariable [QGVAR(previousWeapon), _previousWeaponIndex, true]; + + _unit action ["SwitchWeapon", _unit, _unit, 299]; + + [_unit, "AmovPercMstpSnonWnonDnon", 0] call EFUNC(common,doAnimation); + + private _canRun = _weight call FUNC(canRun_carry); + + // Only force walking if we're overweight + [_unit, "forceWalk", QUOTE(ADDON), !_canRun] call EFUNC(common,statusEffect_set); + [_unit, "blockSprint", QUOTE(ADDON), _canRun] call EFUNC(common,statusEffect_set); +}; + +[_unit, "blockThrow", QUOTE(ADDON), true] call EFUNC(common,statusEffect_set); + +// Prevents dragging and carrying at the same time +_unit setVariable [QGVAR(isCarrying), true, true]; + +// Required for aborting animation +_unit setVariable [QGVAR(carriedObject), _target, true]; + +[FUNC(startCarryPFH), 0.2, [_unit, _target, _timer]] call CBA_fnc_addPerFrameHandler; + +// Disable collisions by setting the PhysX mass to almost zero +private _mass = getMass _target; + +if (_mass > 1) then { + _target setVariable [QGVAR(originalMass), _mass, true]; + [QEGVAR(common,setMass), [_target, 1e-12]] call CBA_fnc_globalEvent; // Force global sync +}; diff --git a/addons/dragging/functions/fnc_startDrag.sqf b/addons/dragging/functions/fnc_startDrag.sqf index cd298804e6..8dd6db6dee 100644 --- a/addons/dragging/functions/fnc_startDrag.sqf +++ b/addons/dragging/functions/fnc_startDrag.sqf @@ -1,104 +1,21 @@ #include "..\script_component.hpp" /* - * Author: commy2, PiZZADOX, Malbryn - * Starts the dragging process. + * Author: johnb43 + * Starts the dragging process safely. * * Arguments: - * 0: Unit that should do the dragging + * 0: Unit that should do the carrying * 1: Object to drag * * Return Value: * None * * Example: - * [player, cursorTarget] call ace_dragging_fnc_startDrag; + * [player, cursorTarget] call ace_dragging_fnc_startDrag * * Public: No */ - params ["_unit", "_target"]; -TRACE_2("params",_unit,_target); -// Exempt from weight check if object has override variable set -private _weight = 0; - -if !(_target getVariable [QGVAR(ignoreWeightDrag), false]) then { - _weight = _target call FUNC(getWeight); -}; - -// Exit if object weight is over global var value -if (_weight > GETMVAR(ACE_maxWeightDrag,1E11)) exitWith { - [LLSTRING(UnableToDrag)] call EFUNC(common,displayTextStructured); -}; - -private _primaryWeapon = primaryWeapon _unit; - -// Add a primary weapon if the unit has none -if !(GVAR(dragAndFire)) then { - if (_primaryWeapon == "") then { - _unit addWeapon "ACE_FakePrimaryWeapon"; - _primaryWeapon = "ACE_FakePrimaryWeapon"; - }; - - _unit selectWeapon _primaryWeapon; -} else { // Making sure the unit is holding a primary weapon or handgun - private _handgunWeapon = handgunWeapon _unit; - - if !(currentWeapon _unit in [_primaryWeapon, _handgunWeapon]) then { - if (_primaryWeapon != "") then { - // Use primary if possible - _unit selectWeapon _primaryWeapon; - } else { - if (_handgunWeapon != "") then { - // Use pistol if unit has no primary - _unit selectWeapon _handgunWeapon; - } else { - // Add fake weapon if no weapons besides launcher are available - _unit addWeapon "ACE_FakePrimaryWeapon"; - _unit selectWeapon "ACE_FakePrimaryWeapon"; - }; - }; - }; -}; - -// Save the weapon so we can monitor if it changes -_unit setVariable [QGVAR(currentWeapon), currentWeapon _unit]; - -[_unit, "blockThrow", QUOTE(ADDON), true] call EFUNC(common,statusEffect_set); - -// Prevent multiple players from accessing the same object -[_unit, _target, true] call EFUNC(common,claim); - -// Can't play action that depends on weapon if it was added the same frame -if !(_unit call EFUNC(common,isSwimming)) then { - [{ - private _unitWeapon = _this getVariable [QGVAR(currentWeapon), ""]; - - if (_unitWeapon isKindOf ["Pistol", configFile >> "CfgWeapons"]) then { - [_this, "ACE_dragWithPistol"] call EFUNC(common,doGesture); - } else { - [_this, "ACE_dragWithRifle"] call EFUNC(common,doGesture); - }; - }, _unit] call CBA_fnc_execNextFrame; -}; - -// Move a bit closer and adjust direction when trying to pick up a person -if (_target isKindOf "CAManBase") then { - [QEGVAR(common,setDir), [_target, getDir _unit + 180], _target] call CBA_fnc_targetEvent; - _target setPosASL (getPosASL _unit vectorAdd (vectorDir _unit vectorMultiply 1.5)); - - [_target, "AinjPpneMrunSnonWnonDb_grab", 2] call EFUNC(common,doAnimation); -}; - -// Prevents dragging and carrying at the same time -_unit setVariable [QGVAR(isDragging), true, true]; - -[FUNC(startDragPFH), 0.2, [_unit, _target, CBA_missionTime + 5]] call CBA_fnc_addPerFrameHandler; - -// Disable collisions by setting the physx mass to almost zero -private _mass = getMass _target; - -if (_mass > 1) then { - _target setVariable [QGVAR(originalMass), _mass, true]; - [QEGVAR(common,setMass), [_target, 1e-12]] call CBA_fnc_globalEvent; // Force global sync -}; +// Try to claim the object +[QEGVAR(common,claimSafe), [_unit, _target, true, QGVAR(startDrag)]] call CBA_fnc_serverEvent; diff --git a/addons/dragging/functions/fnc_startDragLocal.sqf b/addons/dragging/functions/fnc_startDragLocal.sqf new file mode 100644 index 0000000000..b656c8ce5a --- /dev/null +++ b/addons/dragging/functions/fnc_startDragLocal.sqf @@ -0,0 +1,104 @@ +#include "..\script_component.hpp" +/* + * Author: commy2, PiZZADOX, Malbryn + * Starts the dragging process. + * + * Arguments: + * 0: Unit that should do the dragging + * 1: Object to drag + * 2: If object was successfully claimed + * + * Return Value: + * None + * + * Example: + * [player, cursorTarget, true] call ace_dragging_fnc_startDragLocal + * + * Public: No + */ + +params ["_unit", "_target", "_claimed"]; +TRACE_3("params",_unit,_target,_claimed); + +if (!_claimed) exitWith { WARNING_1("already claimed %1",_this) }; + +// Exempt from weight check if object has override variable set +private _weight = 0; + +if !(_target getVariable [QGVAR(ignoreWeightDrag), false]) then { + _weight = _target call FUNC(getWeight); +}; + +// Exit if object weight is over global var value +if (_weight > GETMVAR(ACE_maxWeightDrag,1E11)) exitWith { + [LLSTRING(UnableToDrag)] call EFUNC(common,displayTextStructured); +}; + +private _primaryWeapon = primaryWeapon _unit; + +// Add a primary weapon if the unit has none +if !(GVAR(dragAndFire)) then { + if (_primaryWeapon == "") then { + _unit addWeapon "ACE_FakePrimaryWeapon"; + _primaryWeapon = "ACE_FakePrimaryWeapon"; + }; + + _unit selectWeapon _primaryWeapon; +} else { // Making sure the unit is holding a primary weapon or handgun + private _handgunWeapon = handgunWeapon _unit; + + if !(currentWeapon _unit in [_primaryWeapon, _handgunWeapon]) then { + if (_primaryWeapon != "") then { + // Use primary if possible + _unit selectWeapon _primaryWeapon; + } else { + if (_handgunWeapon != "") then { + // Use pistol if unit has no primary + _unit selectWeapon _handgunWeapon; + } else { + // Add fake weapon if no weapons besides launcher are available + _unit addWeapon "ACE_FakePrimaryWeapon"; + _unit selectWeapon "ACE_FakePrimaryWeapon"; + }; + }; + }; +}; + +// Save the weapon so we can monitor if it changes +_unit setVariable [QGVAR(currentWeapon), currentWeapon _unit]; + +[_unit, "blockThrow", QUOTE(ADDON), true] call EFUNC(common,statusEffect_set); + +// Can't play action that depends on weapon if it was added the same frame +if !(_unit call EFUNC(common,isSwimming)) then { + [{ + private _unitWeapon = _this getVariable [QGVAR(currentWeapon), ""]; + + if (_unitWeapon isKindOf ["Pistol", configFile >> "CfgWeapons"]) then { + [_this, "ACE_dragWithPistol"] call EFUNC(common,doGesture); + } else { + [_this, "ACE_dragWithRifle"] call EFUNC(common,doGesture); + }; + }, _unit] call CBA_fnc_execNextFrame; +}; + +// Move a bit closer and adjust direction when trying to pick up a person +if (_target isKindOf "CAManBase") then { + [QEGVAR(common,setDir), [_target, getDir _unit + 180], _target] call CBA_fnc_targetEvent; + _target setPosASL (getPosASL _unit vectorAdd (vectorDir _unit vectorMultiply 1.5)); + + [_target, "AinjPpneMrunSnonWnonDb_grab", 2] call EFUNC(common,doAnimation); +}; + +// Prevents dragging and carrying at the same time +_unit setVariable [QGVAR(isDragging), true, true]; + +[FUNC(startDragPFH), 0.2, [_unit, _target, CBA_missionTime + 5]] call CBA_fnc_addPerFrameHandler; + +// Disable collisions by setting the physx mass to almost zero +private _mass = getMass _target; + +if (_mass > 1) then { + _target setVariable [QGVAR(originalMass), _mass, true]; + [QEGVAR(common,setMass), [_target, 1e-12]] call CBA_fnc_globalEvent; // Force global sync +}; diff --git a/addons/dragging/initKeybinds.inc.sqf b/addons/dragging/initKeybinds.inc.sqf index 8ee36d0283..a8792f3576 100644 --- a/addons/dragging/initKeybinds.inc.sqf +++ b/addons/dragging/initKeybinds.inc.sqf @@ -5,7 +5,7 @@ if (!alive _player) exitWith {false}; if !([_player, objNull, ["isNotDragging", "isNotCarrying", "isNotSwimming"]] call EFUNC(common,canInteractWith)) exitWith {false}; - // If we are drag/carrying something right now then just drop it: + // If we are dragging/carrying something right now then just drop it if (_player getVariable [QGVAR(isDragging), false]) exitWith { [_player, _player getVariable [QGVAR(draggedObject), objNull]] call FUNC(dropObject); @@ -34,7 +34,7 @@ if (!alive _player) exitWith {false}; if !([_player, objNull, ["isNotDragging", "isNotCarrying"]] call EFUNC(common,canInteractWith)) exitWith {false}; - // If we are drag/carrying something right now then just drop it: + // If we are dragging/carrying something right now then just drop it if (_player getVariable [QGVAR(isDragging), false]) exitWith { [_player, _player getVariable [QGVAR(draggedObject), objNull]] call FUNC(dropObject); diff --git a/addons/fcs/stringtable.xml b/addons/fcs/stringtable.xml index dd0c20922f..2f3ae894b1 100644 --- a/addons/fcs/stringtable.xml +++ b/addons/fcs/stringtable.xml @@ -44,7 +44,7 @@ Ajustar distância do FCS (Acima) Aumenta la portata dell'FCS Диапазон СУО (выше) - FCS による距離を調節 (上げ) + FCS 距離を調節 (上げ) 사통장치 거리 조정 (위로) 调整火控系统距离(上调) 調整火控系統距離 (上) @@ -60,7 +60,7 @@ Ajustar distância do FCS (Abaixo) Riduci la portata dell'FCS Диапазон СУО (ниже) - FCS による距離を調節 (下げ) + FCS 距離を調節 (下げ) 사통장치 거리 조정 (아래로) 调整火控系统距离(下调) 調整火控系統距離 (下) diff --git a/addons/gforces/XEH_postInit.sqf b/addons/gforces/XEH_postInit.sqf index a2f69dd608..d0d58488d3 100644 --- a/addons/gforces/XEH_postInit.sqf +++ b/addons/gforces/XEH_postInit.sqf @@ -12,8 +12,7 @@ GVAR(playerIsVirtual) = false; ["unit", { // Add unit changed EH to check if player is either virtual (logic) or a UAV AI params ["_unit"]; - GVAR(playerIsVirtual) = ((getNumber (configOf _unit >> "isPlayableLogic")) == 1) || - {(getText (configOf _unit >> "simulation")) == "UAVPilot"}; + GVAR(playerIsVirtual) = unitIsUAV _unit || {(getNumber (configOf _unit >> "isPlayableLogic")) == 1}; TRACE_3("unit changed",_unit,typeOf _unit,GVAR(playerIsVirtual)); }, true] call CBA_fnc_addPlayerEventHandler; diff --git a/addons/map/stringtable.xml b/addons/map/stringtable.xml index 5f11e3601c..ed5d427424 100644 --- a/addons/map/stringtable.xml +++ b/addons/map/stringtable.xml @@ -60,7 +60,7 @@ Nasvícení mapy pomocí baterky Effetto luminoso sul giocatore Lueur lampe carte - 地図をライトで照らす + 地図用ライトの光放射 지도 조명 발광 增加地图亮度 增加地圖亮度 @@ -75,7 +75,7 @@ Añadir resplandor externo a los jugadores que utilizan la linterna en el mapa? Přidat externí záři hráči který používá baterku v mapě? Aggiungi un effetto di luce sul giocatore che sta usando la torcia in mappa, questo è visibile ad altri giocatori. - プレイヤーが地図をフラッシュライトで照らせられるように設定します。 + マップ上で懐中電灯を使用しているプレイヤーから辺りへの光放射を追加しますか? 지도에 조명을 사용하는 플레이어에 외부 불빛을 추가합니까? 当玩家打开手电筒时,增加地图亮度。 當玩家擁有手電筒時,增加地圖亮度? @@ -91,7 +91,7 @@ Térkép-rázkódás Тряска карты Scuotimento della mappa - 地図を揺らす + 地図の揺れ 지도 흔들림 地图震动 地圖震動 @@ -108,7 +108,7 @@ Rázkódjon-e a térkép mozgáskor? Заставлять карту трястись при ходьбе? Far scuotere la mappa mentre cammini? - 歩いているときは地図を揺らすかかどうかを設定できます。 + 歩いているときに地図を揺らしますか? 걸을 때 지도를 보면 흔들리게 합니까? 走路时打开地图会产生晃动。 走路時讓地圖有震動的感覺? @@ -140,7 +140,7 @@ Korlátozva legyen-e a nagyítás mennyisége a térképnél? Ограничить максимальное приближение, доступное на карте? Limita i livelli di zoom disponibili sulla mappa? - 地図上で利用できる拡大倍率を制限できます。 + 地図上で利用できる拡大倍率を制限しますか? 지도 확대에 제한을 둡니까? 限制地图上可允许缩放的倍率? 限制地圖上可允許縮放的倍率? @@ -156,7 +156,7 @@ Kurzor-koordináták mutatása Показывать координаты курсора Mostra coordinate sul cursore - カーソル先で座標を表示 + カーソル先の座標を表示 커서에 좌표를 보이기 显示光标的座标 顯示游標的座標 @@ -172,7 +172,7 @@ Mutatva legyen-e a kurzornál található rész rácskoordinátája? Показывать координаты около курсора мыши? Mostra il numero della coordinata-griglia sul cursore del mouse in mappa? - カーソルで合わせた先を地図座標で表示するかどうかを設定できます。 + カーソルで合わせた先の地図グリッド座標を表示しますか? 지도에서 커서 옆에 좌표가 뜨게 합니까? 显示鼠标光标所在的网格座标? 顯示滑鼠游標所在的網格座標? @@ -300,7 +300,7 @@ Jelölők elrejtése "csak AI" csoportoknál? Скрыть маркеры групп, которые состоят полностью из ботов? Nascondi marker per gruppi di sole IA? - 'AIのみ'グループのマーカー表示有無を設定できます。 + 'AIのみ'のグループのマーカー表示有無を設定できます。 인공지능만 있는 그룹의 마커를 숨깁니까? 隐藏'AI 小队'的追踪? 隱藏'AI小隊'的蹤跡? @@ -379,7 +379,7 @@ NVG NVG NVG - 夜間暗視装置 + 暗視装置 야간투시경 夜视仪 夜視鏡 @@ -491,7 +491,7 @@ Imposta Canale all'Avvio Setear canal al comenzar Définir un canal par défaut - 開始時のチャンネルを決定 + 開始時のチャンネルを指定 시작시 채널 设定游戏开始时的聊天频道 設定遊戲開始時的聊天頻道 @@ -506,7 +506,7 @@ Cambia il canale marker iniziale all'avvio della missione Cambiar el canal de marcadores inicial al comenzar la misión Change le canal de communication par défaut au début de la mission. - ミッション開始時にあらかじめ設定されているマーカ チャンネルを変更します + ミッション開始時に使用されるマーカーチャンネルの指定を変更します 미션 시작시 마커채널을 변경합니다 更改任务启动时的聊天频道 更改任務啟動時的聊天頻道 diff --git a/addons/map_gestures/stringtable.xml b/addons/map_gestures/stringtable.xml index a17bb842d6..3b7d7e77dd 100644 --- a/addons/map_gestures/stringtable.xml +++ b/addons/map_gestures/stringtable.xml @@ -75,7 +75,7 @@ Maximale Reichweite zwischen Spielern um Kartenzeichen anzuzeigen Máxima distancia a la cual pueden verse el indicador de gestos Définit le rayon au-delà duquel un joueur ne verra plus l'indicateur de pointage des autres joueurs. - プレイヤーによるマップ ジェスチャーの表示範囲を設定します + マップ ジェスチャーのインジケーターを表示可能なプレーヤー間の最大距離 플레이어간에 지도 신호 표시거리를 설정합니다. 设定地图指示显示的最大范围距离 設定地圖指示器顯示的最大範圍距離 @@ -122,7 +122,7 @@ Farbe der Namenstexte. Color de los nombres Couleur du texte du nom - 名前への色 + 名前の文字色 글 색상 명칭 名称文字颜色 名稱文字顏色 @@ -137,7 +137,7 @@ Farbe der Namenstexte neben der Kartenzeichen-Markierung. Color de los nombres dibujados al lado del marcados de gestos. Définit la couleur du texte pour le nom à côté du marqueur de pointage sur carte. - マップ ジェスチャーに表示される、名前の色を決定します。 + マップ ジェスチャーに添えて表示される名前の文字色。 지도 색상에 표시되는 이름의 색상을 결정합니다. 定义名称文字颜色。使其与地图指示颜色有所区别。 定義名稱文字顏色。使其與地圖指示器顏色有所區別 @@ -153,7 +153,7 @@ Gruppenführer-Standardfarbe Color por defecto para el lider Couleur de commandement par défaut - リーダー用標準の色 + 部隊長用の標準色 리더 기본 색상 队长预设颜色 隊長預設顏色 @@ -167,7 +167,7 @@ Ersatz-Farbwert für Gruppenführer wenn keine Gruppeneinstellung vorhanden ist. [Modul: leer lassen um Anwendung bei Clients nicht zu erzwingen] Color por defecto para líderes cuando no está configurado [Módulo: dejar en blanco para no forzar] Définit la couleur par défaut pour les chefs de groupe quand il n'y a pas de réglage de groupe. [Module : laisser vide pour ne pas forcer chez les clients.] - グループ設定が存在しない場合に、グループ リーダーへ設定される色の値を設定します。[モジュール:空の場合はクライアントへ強制しません] + グループ設定がない場合に部隊長へ設定される色の値を設定します。[モジュール:空の場合はクライアントへ強制しません] 그룹 설정이 없는 경우 리더의 예비 색상 값입니다. [모듈: 클라이언트에서 강체하지 않기 위해 공백으로 비워둘 것] 当没有设定小队颜色时,此功能会定义队长的指示颜色。[模块:此栏留空来保持预设颜色] 當沒有設定小隊顏色時,此功能會定義隊長的指示器顏色。[模塊: 此欄留空來保持預設顏色] @@ -198,7 +198,7 @@ Ersatz-Farbwert wenn keine Gruppeneinstellung vorhanden ist. [Modul: leer lassen um Anwendung bei Clients nicht zu erzwingen] Color por defecto cuando no está configurado [Módulo: dejar en blanco para no forzar] Définit la couleur par défaut quand il n'y a pas de réglage pour le groupe. [Module : laisser vide pour ne pas forcer chez les clients.] - グループ設定が存在しない場合に、グループ リーダーへ設定される色の値を設定します。[モジュール:空の場合はクライアントへ強制しません] + グループ設定がない場合に設定される色の値を設定します。[モジュール:空の場合はクライアントへ強制しません] 그룹 설정이 없을 경우의 예비 색상입니다. [모듈: 클라이언트에서 강체하지 않기 위해 공백으로 비워둘 것] 当没有设定小队颜色时,此功能会定义玩家的指示颜色。[模块:此栏留空来保持预设颜色] 當沒有設定小隊顏色時,此功能會定義玩家的指示器顏色。[模塊: 此欄留空來保持預設顏色] @@ -214,7 +214,7 @@ Gruppenführer-Farbe Color para el líder Couleur de commandement - リーダー用の色 + 部隊長用の色 리더 색상 队长颜色 隊長顏色 @@ -228,7 +228,7 @@ Farbwert für Gruppenführer, die mit diesem Modul synchronisiert werden. Color para los líderes de los grupos sincronizados al módulo. Couleur pour les chefs des groupes synchronisés avec ce module. - モジュールで同期されたグループのリーダー用に色の値を決定します。 + モジュールで同期されたグループの隊長に設定される色の値を決定します。 그룹이 이 모듈에 동기화 됐을 때의 리더 색상입니다. 改变与此同步小队队长的指示颜色。 改變與此同步小隊隊長的指示器顏色 @@ -259,7 +259,7 @@ Farbwert für Gruppenmitglieder, die mit diesem Modul synchronisiert werden. Color para los miembros de los grupos sincronizados al módulo. Couleur pour les membres des groupes synchronisés avec ce module. - モジュールで同期されたグループのメンバ用に色の値を決定します。 + モジュールで同期されたグループの隊員に設定される色の値を決定します。 그룹이 이 모듈에 동기화 됐을 때의 멤버 색상입니다. 改变与此同步小队队员的指示颜色 改變與此同步小隊隊員的指示器顏色 @@ -270,7 +270,7 @@ Показывать только союзные жесты Pokazuj jedynie sojusznicze gesty Afficher uniquement le pointage des alliés - 友軍ジェスチャーのみ表示 + 友軍のジェスチャーのみ表示 Mostrar sólo gestos de aliados Nur Gesten befreundeter Einheiten zeigen Mostra solo gesti di alleati @@ -283,7 +283,7 @@ Показывать жесты только от игроков союзной стороны. Affiche uniquement les pointages effectués par des unités qui sont du même camp, ou d'un camp allié. Mostra solo gesti effettuati da unità che sono della stessa fazione o una fazione alleata. - 友軍ユニットのみからジェスチャーを表示します。 + 同じ陣営または味方陣営のユニットからのジェスチャーのみを表示します。 Muestra únicamente gestos de las unidades que son del mismo bando o de un bando aliado Pokazuj tylko Gesty od jednostek z tej samej lub sojuszniczej strony Nur Gesten von Einheiten der selben oder einer verbündeten Seite zeigen. @@ -295,7 +295,7 @@ Max range Camera Макс. дальность действия камеры Portée de la caméra - カメラ最大範囲 + カメラの最大範囲 Máximo alcance de cámara Maksymalny zasięg kamery Maximale Kamerareichweite @@ -308,7 +308,7 @@ Max range between a Camera and players to show the map gesture indicator Устанавливает макс. дальность между игроком и камерой для отображения жестов на карте Définit le rayon au-delà duquel une caméra ne verra plus l'indicateur de pointage des autres joueurs. - プレイヤーが行うマップ ジェスチャーをカメラから確認できる最大範囲を設定します。 + 観戦カメラから確認可能なマップ ジェスチャーのインジケーターを表示するカメラとプレーヤー間の最大距離 Máxima distancia entre una cámara y los jugadores para mostrar el indicador de gestos en mapa Distanza massima da cui videocamere (spettatore/zeus) può vedere i gesti di giocatori. Maksymalny zasięg pomiędzy kamerą a graczami do pokazania gestów na mapie diff --git a/addons/maptools/CfgVehicles.hpp b/addons/maptools/CfgVehicles.hpp index 10302a0c4f..3f59f23c6f 100644 --- a/addons/maptools/CfgVehicles.hpp +++ b/addons/maptools/CfgVehicles.hpp @@ -140,7 +140,7 @@ class CfgVehicles { showDisabled = 0; class ACE_PlottingBoardAlignBoardMaptool { - displayName = CSTRING(Name); + displayName = CSTRING(ToMapToolLabel); condition = QUOTE(GVAR(mapTool_Shown) > 0 && GVAR(plottingBoard_angle) != GVAR(mapTool_angle)); statement = QUOTE(GVAR(plottingBoard_angle) = GVAR(mapTool_angle)); EXCEPTIONS; @@ -162,7 +162,7 @@ class CfgVehicles { showDisabled = 0; class ACE_PlottingBoardAlignAcrylicMaptool { - displayName = CSTRING(Name); + displayName = CSTRING(ToMapToolLabel); condition = QUOTE(GVAR(mapTool_Shown) > 0 && GVAR(plottingBoard_acrylicAngle) != GVAR(mapTool_angle)); statement = QUOTE(GVAR(plottingBoard_acrylicAngle) = GVAR(mapTool_angle)); EXCEPTIONS; @@ -184,7 +184,7 @@ class CfgVehicles { showDisabled = 0; class ACE_PlottingBoardAlignRulerMaptool { - displayName = CSTRING(Name); + displayName = CSTRING(ToMapToolLabel); condition = QUOTE(GVAR(mapTool_Shown) > 0 && GVAR(plottingBoard_rulerAngle) != GVAR(mapTool_angle)); statement = QUOTE(GVAR(plottingBoard_rulerAngle) = GVAR(mapTool_angle)); EXCEPTIONS; diff --git a/addons/maptools/CfgWeapons.hpp b/addons/maptools/CfgWeapons.hpp index 9d2727612b..ca4d4a473e 100644 --- a/addons/maptools/CfgWeapons.hpp +++ b/addons/maptools/CfgWeapons.hpp @@ -18,7 +18,7 @@ class CfgWeapons { class ACE_PlottingBoard: ACE_ItemCore { displayName = CSTRING(PlottingBoard_Name); author = ECSTRING(common,ACETeam); - descriptionShort = CSTRING(Description); + descriptionShort = CSTRING(PlottingBoard_Description); model = QPATHTOF(data\ace_MapTools.p3d); picture = QPATHTOF(UI\plottingboard_item.paa); scope = 2; diff --git a/addons/maptools/stringtable.xml b/addons/maptools/stringtable.xml index c7ac9a423c..fc719473b8 100644 --- a/addons/maptools/stringtable.xml +++ b/addons/maptools/stringtable.xml @@ -12,7 +12,7 @@ Ferramentas de Mapa Térképészeti eszközök Инструменты карты - マップ ツール + マップツール 독도용 도구 地图工具 地圖工具 @@ -29,7 +29,7 @@ As Ferramentas de Mapa permitem que você meça distâncias e ângulos no mapa. A térképészeti eszközökkel távolságokat és szögeket tudsz mérni a térképen. Картографические инструменты позволяют измерять расстояния и углы на карте. - マップ ツールは地図上で距離や角度を測れます。 + マップツールは地図上で距離や角度を測れます。 독도용 도구는 지도상에서 거리나 각도를 잴 수 있게 해줍니다. 地图工具能够让你在地图上测量距离与角度 地圖工具能夠讓你在地圖上測量距離與角度 @@ -37,9 +37,13 @@ Plotting Board + 플로팅 보드 + 標定盤 The Plotting Board is a map tool designed for use in the directing of short range indirect fires. + 플로팅 보드는 단거리 간접 사격을 지시하는 데 사용하도록 설계된 독도용 도구입니다. + 標定盤(プロッティング・ボード)は、短距離の間接射撃の指示に使用するために設計されたマップツールです。 Map Tools @@ -52,7 +56,7 @@ Ferramentas de Mapa Térképészeti eszközök Инструменты карты - マップ ツール + マップツール 독도용 도구 地图工具 地圖工具 @@ -198,7 +202,7 @@ Rotate Map Tools Key Touche de rotation des outils de navigation Клавиша поворота инструментов карты - マップ ツールの回転キー + マップツールの回転キー Klawisz obrotu narzędzi nawigacyjnych Taste zum Drehen des Kartenwerkzeugs 독도용 도구 돌리기 키 @@ -214,7 +218,7 @@ Modifier key to allow rotating map tools Touche modificatrice permettant la rotation des outils de navigation. Клавиша-модификатор, позволяющая поворачивать инструменты карты - マップ ツールを回転させるキーを編集できます。 + マップツールを回転させるキーを編集できます。 Modyfikator pozwalający na obracanie narzędzi nawigacyjnych Steuerungstaste, um Drehung des Kartenwerkzeugs zu ermöglichen. 독도용 도구를 돌리기 위한 키를 변경할 수 있습니다. @@ -228,7 +232,7 @@ Draw straight lines with maptools - マップ ツールを使って直線を書く + マップツールを使って直線を書く Zeichne gerade Linien mit dem Kartenwerkzeug 독도용 도구로 직선 그리기 Rysuj proste linie przy użyciu narzędzi nawigacyjnych @@ -260,45 +264,73 @@ Allow Plotting Board Drawing channels + 標定盤への書き込みを許可するチャンネル + 플로팅 보드 그리기 채널 허용 Channels in which plotting board drawing is enabled. + どのチャンネルで標定盤の書き込みを有効化するか。 + 플로팅 보드 그리기가 활성화된 채널입니다. Allow Direct Comms Only (Polylines Only) + 直接チャンネルのみ許可 (線のみ) + 직접교신만 허용 (선 긋기만) Allow Direct/Group Comms (Polylines and Group Markers) + 直接/グループチャンネルを許可 (線とグループマーカー) + 직접교신/그룹무전망 허용 (선 긋기와 그룹 마커) Plotting Board + 標定盤 + 플로팅 보드 Plotting Board Acrylic + 標定盤の アクリル板 + 플로팅 보드 (아크릴) Plotting Board Ruler + 標定盤の 定規 + 플로팅 보드 (자) To Plotting Board + 標定盤に + 플로팅 보드에 To Plotting Board Acrylic + 標定盤の アクリル板に + 플로팅 보드 (아크릴)에 To Plotting Board Ruler + 標定盤の 定規に + 플로팅 보드 (자)에 Wipe all markers off Plotting Board + 標定盤の 全マーカーを 拭き消す + 플로팅 보드에 있는 모든 마커 지우기 Show Plotting Board + 標定盤を 表示 + 플로팅 보드 보이기 Hide Plotting Board + 標定盤を 隠す + 플로팅 보드 숨기기 Toggle Plotting Board Ruler + 標定盤の 定規を 表示切替 + 플로팅 보드 (자) 토글 Align @@ -311,6 +343,8 @@ Wyrównaj Srovnat Выровнять + 맞춤 기준: + 向きを合わせる To North @@ -323,6 +357,8 @@ Do północy Na sever На север + 북쪽으로 + 北に To Compass @@ -335,12 +371,18 @@ Do kompasu Ke kompasu По компасу + 方位磁石に + 나침반으로 Up + 上に + 위로 To Maptool + マップツールに + 독도용 도구로 diff --git a/addons/marker_flags/CfgWeapons.hpp b/addons/marker_flags/CfgWeapons.hpp index b4c2f88125..13a1632f4f 100644 --- a/addons/marker_flags/CfgWeapons.hpp +++ b/addons/marker_flags/CfgWeapons.hpp @@ -14,7 +14,7 @@ class CfgWeapons { mapSize = 0.2; class ItemInfo: CBA_MiscItem_ItemInfo { - mass = 1; + mass = 0.5; }; }; diff --git a/addons/marker_flags/stringtable.xml b/addons/marker_flags/stringtable.xml index c303664144..31aab77e84 100644 --- a/addons/marker_flags/stringtable.xml +++ b/addons/marker_flags/stringtable.xml @@ -6,7 +6,7 @@ Markierungsfahnen Bandiere segnaletiche Chorągiewki - 旗マーカー + マーカー旗 마킹용 깃발 标记旗 Флажки @@ -48,7 +48,7 @@ 마킹용 깃발 꽂기 Поставить флажок Colocar Bandera de señalizado - マーカーフラッグを置く + マーカー旗 を置く Placer le drapeau de marquage Colocar Bandeira de Marcação @@ -102,7 +102,7 @@ Markierungsfahne (Weiß) Bandiera segnaletica (Bianca) Chorągiewka (Biała) - 旗マーカー (白) + マーカー旗 (白) 마킹용 깃발(하양) 标记旗(白) Флажок (белый) @@ -115,7 +115,7 @@ Markierungsfahne (Schwarz) Bandiera segnaletica (Nera) Chorągiewka (Czarna) - 旗マーカー (黒) + マーカー旗 (黒) 마킹용 깃발(검정) 标记旗(黑) Флажок (чёрный) @@ -128,7 +128,7 @@ Markierungsfahne (Rot) Bandiera segnaletica (Rossa) Chorągiewka (Czerwona) - 旗マーカー (赤) + マーカー旗 (赤) 마킹용 깃발(빨강) 标记旗(红) Флажок (красный) @@ -141,7 +141,7 @@ Markierungsfahne (Grün) Bandiera segnaletica (Verde) Chorągiewka (Zielona) - 旗マーカー (緑) + マーカー旗 (緑) 마킹용 깃발(초록) 标记旗(绿) Флажок (зелёный) @@ -154,7 +154,7 @@ Markierungsfahne (Blau) Bandiera segnaletica (Blu) Chorągiewka (Niebieska) - 旗マーカー (青) + マーカー旗 (青) 마킹용 깃발(파랑) 标记旗(蓝) Флажок (синий) @@ -167,7 +167,7 @@ Markierungsfahne (Gelb) Bandiera segnaletica (Gialla) Chorągiewka (Żółta) - 旗マーカー (黄) + マーカー旗 (黄) 마킹용 깃발(노랑) 标记旗(黄) Флажок (жёлтый) @@ -180,7 +180,7 @@ Markierungsfahne (Orange) Bandiera segnaletica (Arancione) Chorągiewka (Pomarańczowa) - 旗マーカー (橙) + マーカー旗 (橙) 마킹용 깃발(주황) 标记旗(橙) Флажок (оранжевый) @@ -193,7 +193,7 @@ Markierungsfahne (Lila) Bandiera segnaletica (Viola) Chorągiewka (Fioletowa) - 旗マーカー (紫) + マーカー旗 (紫) 마킹용 깃발(보라) 标记旗(紫) Флажок (фиолетовый) diff --git a/addons/markers/stringtable.xml b/addons/markers/stringtable.xml index b4a772e171..285dd007e8 100644 --- a/addons/markers/stringtable.xml +++ b/addons/markers/stringtable.xml @@ -63,7 +63,7 @@ Allow moving markers for Erlaube Marker zu bewegen für - マーカー移動を許可するユーザー + マーカー移動を許可する対象 마커 이동 허가 誰可以移動標誌 谁可以移动标识 @@ -78,7 +78,7 @@ Restricts which players are able to move markers while holding the Alt key. Beschränkt welche Spieler Marker mit gedrückter Alt-Taste bewegen können. - どのプレイヤーが Alt キーを押しながらマーカー移動をできるか制限できます。 + Altキーを押しながらマーカー移動をできるプレイヤーを制限します。 Alt 키를 누른 상태에서 마커를 움직일 수 있는 플레이어를 제한합니다. 設定誰可以透過按住Alt鍵來移動標誌 设定谁可以透过按住 Alt 键来移动标识。 @@ -204,7 +204,7 @@ Whether to allow timestamps to be automatically applied to markers Автоматическое отображение времени, когда поставлена метка Active une interface permettant d'apposer un horodatage sur les marqueurs. - マーカーへ自動的にタイムスタンプを付与するかどうかを設定できます。 + タイムスタンプをマーカーに自動的に適用することを許可するかどうか Permitir que las marcas de tiempo sean automáticamente aplicadas a los marcadores Zezwól na automatyczne stosowanie znaczników czasu do markerów Ob Zeitstempel automatisch auf Maker angewendet werden sollen. @@ -230,7 +230,7 @@ Watch Required Необходимы часы Une montre est requise. - 時計の要求 + 時計が必要 Reloj requerido Wymagany zegarek Uhr benötigt @@ -243,7 +243,7 @@ Time Zone Часовой пояс Fuseau horaire - 時間帯 + タイムゾーン Zona horaria Strefa czasowa Zeitzone @@ -254,7 +254,7 @@ Changes the time zone for the timestamp Измените часовой пояс для метки времени Modifiez le fuseau horaire pour l'horodatage - タイムスタンプの時間帯を変更します + タイムスタンプのタイムゾーンを変更します Cambie la zona horaria para la marca de tiempo Zmień strefę czasową dla znaczników czasu Ändern Sie die Zeitzone für den Zeitstempel @@ -265,7 +265,7 @@ In-game Time Время в игре Heure de jeu - ゲーム内時刻 + ゲーム内時間 Hora del juego Czas gry Ingame-Zeit @@ -276,7 +276,7 @@ System Time Системное время Heure système - システム時刻 + システム時間 Hora del sistema Czas systemowy Systemzeit @@ -287,7 +287,7 @@ UTC Time Время UTC Heure UTC - UTC時刻 + UTC時間 Hora UTC Czas UTC UTC-Zeit @@ -309,7 +309,7 @@ Changes the time offset for the UTC timestamp Измените смещение времени для метки времени UTC Modifier le décalage horaire pour l'horodatage UTC - UTCタイムスタンプの時差を変更する + UTCタイムスタンプの時オフセットを変更します Cambiar el desplazamiento horario para la marca de tiempo UTC Zmień przesunięcie czasu dla sygnatury czasowej UTC Ändere die Zeitverschiebung für den UTC-Zeitstempel @@ -331,7 +331,7 @@ Change the minute offset for the UTC timestamp Изменить минутное смещение для времени UTC Modifier le décalage des minutes pour l'horodatage UTC - UTCタイムスタンプの分差を変更する + UTCタイムスタンプの分オフセットを変更します Cambiar el desplazamiento de minutos para la marca de tiempo UTC Zmień przesunięcie minut dla sygnatury czasowej UTC Ändere den Minutenversatz für den UTC-Zeitstempel @@ -368,7 +368,7 @@ "HH" - Hour "ЧЧ" - Час "HH" - Heures - "HH" - 時間 + "HH" - 時 "HH" - Hora "HH" - Godziny "HH" - Stunden @@ -408,12 +408,16 @@ "MM" - Millisecondes (de 0 à 59) "MS" - Milisekunden (von 0 bis 59) "MS" - Milissegundos (de 0 a 59) + "MS" - 밀리초 (0부터 59까지) + "MM" - ミリ秒 (0から59) "mmm" - Milliseconds (from 0 to 999) "mmm" - Millisecondes (de 0 à 999) "mmm" - Milisekunden (von 0 bis 999) "mmm" - Milissegundos (de 0 a 999) + "mmm" - 밀리초 (0부터 999까지) + "mmm" - ミリ秒 (0から599) Timestamp Hour Format @@ -432,7 +436,7 @@ 24-Hour Clock 24 часовой формат Format 24 heures - 24 時間表記 + 24時間表記 Reloj 24-Horas Zegar 24-godzinny 24-Stunden @@ -445,7 +449,7 @@ 12-Hour Clock 12 часовой формат Format 12 heures - 12 時間表記 + 12時間表記 Reloj 12-Horas Zegar 12-godzinny 12-Stunden @@ -458,7 +462,7 @@ Changes timestamp to use either 24-hour or 12-hour clock format Изменяет формат времени на маркере на 24 часовой, либо 12 часовой Permet de choisir le système d'horodatage souhaité, au format 12 ou 24 heures. - タイムスタンプの時刻を 24 時間か 12 時間表記のどちらかに変更できます。 + タイムスタンプの時刻を24時間表記か12時間表記かのどちらかに変更します Cambia que la marca de tiempo sea en formato de reloj 24-horas o 12-horas Zmienia znacznik czasu tak, aby używał formatu 24-godzinnego lub 12-godzinnego Ändert den Zeitstempel, um entweder das 24-Stunden- oder das 12-Stunden-Format zu verwenden diff --git a/addons/medical_engine/XEH_postInit.sqf b/addons/medical_engine/XEH_postInit.sqf index 6455904f95..81de63775b 100644 --- a/addons/medical_engine/XEH_postInit.sqf +++ b/addons/medical_engine/XEH_postInit.sqf @@ -16,9 +16,8 @@ while {(_allHitPoints param [0, ""]) select [0,1] == "#"} do { WARNING_1("Ignoring Reflector hitpoint %1", _allHitPoints deleteAt 0); }; if (_allHitPoints param [0, ""] != "ACE_HDBracket") then { - private _config = configOf _unit; - if (getText (_config >> "simulation") == "UAVPilot") exitWith {TRACE_1("ignore UAV AI",typeOf _unit);}; - if (getNumber (_config >> "isPlayableLogic") == 1) exitWith {TRACE_1("ignore logic unit",typeOf _unit)}; + if (unitIsUAV _unit) exitWith {TRACE_1("ignore UAV AI",typeOf _unit);}; + if (getNumber ((configOf _unit) >> "isPlayableLogic") == 1) exitWith {TRACE_1("ignore logic unit",typeOf _unit)}; ERROR_1("Bad hitpoints for unit type ""%1""",typeOf _unit); } else { // Calling this function inside curly brackets allows the usage of diff --git a/addons/medical_engine/functions/fnc_handleDamage.sqf b/addons/medical_engine/functions/fnc_handleDamage.sqf index 8db9950a86..755b8ad552 100644 --- a/addons/medical_engine/functions/fnc_handleDamage.sqf +++ b/addons/medical_engine/functions/fnc_handleDamage.sqf @@ -32,6 +32,11 @@ if (_hitPoint isEqualTo "") then { if !(isDamageAllowed _unit && {_unit getVariable [QEGVAR(medical,allowDamage), true]}) exitWith {_oldDamage}; private _newDamage = _damage - _oldDamage; + +// Happens occasionally for vehiclehit events (see line 80 onwards) +// Just exit early to save some frametime +if (_newDamage == 0 && {_hitpoint isNotEqualTo "ace_hdbracket"}) exitWith {_oldDamage}; + // Get scaled armor value of hitpoint and calculate damage before armor // We scale using passThrough to handle explosive-resistant armor properly (#9063) // We need realDamage to determine which limb was hit correctly diff --git a/addons/medical_gui/functions/fnc_collectActions.sqf b/addons/medical_gui/functions/fnc_collectActions.sqf index 818decb017..f9392897f3 100644 --- a/addons/medical_gui/functions/fnc_collectActions.sqf +++ b/addons/medical_gui/functions/fnc_collectActions.sqf @@ -32,7 +32,7 @@ GVAR(actions) = []; if ("ace_dragging" call EFUNC(common,isModLoaded)) then { GVAR(actions) pushBack [ - localize ELSTRING(dragging,Drag), "drag", + LELSTRING(dragging,Drag), "drag", {ACE_player != GVAR(target) && {[ACE_player, GVAR(target)] call EFUNC(dragging,canDrag)}}, { GVAR(pendingReopen) = false; @@ -41,7 +41,7 @@ if ("ace_dragging" call EFUNC(common,isModLoaded)) then { ]; GVAR(actions) pushBack [ - localize ELSTRING(dragging,Carry), "drag", + LELSTRING(dragging,Carry), "drag", {ACE_player != GVAR(target) && {[ACE_player, GVAR(target)] call EFUNC(dragging,canCarry)}}, { GVAR(pendingReopen) = false; diff --git a/addons/medical_status/XEH_preInit.sqf b/addons/medical_status/XEH_preInit.sqf index e3c82d5788..82146d82e1 100644 --- a/addons/medical_status/XEH_preInit.sqf +++ b/addons/medical_status/XEH_preInit.sqf @@ -12,9 +12,8 @@ PREP_RECOMPILE_END; ["CAManBase", "init", { params ["_unit"]; - private _config = configOf _unit; - if (getText (_config >> "simulation") == "UAVPilot") exitWith {TRACE_1("ignore UAV AI",typeOf _unit);}; - if (getNumber (_config >> "isPlayableLogic") == 1) exitWith {TRACE_1("ignore logic unit",typeOf _unit)}; + if (unitIsUAV _unit) exitWith {TRACE_1("ignore UAV AI",typeOf _unit);}; + if (getNumber ((configOf _unit) >> "isPlayableLogic") == 1) exitWith {TRACE_1("ignore logic unit",typeOf _unit)}; // Hopefully this EH gets added first as it can only effect other EH called after it private _ehIndex = _unit addEventHandler ["Killed", {_this call FUNC(handleKilled)}]; diff --git a/addons/nightvision/stringtable.xml b/addons/nightvision/stringtable.xml index f3644f9045..ef57732337 100644 --- a/addons/nightvision/stringtable.xml +++ b/addons/nightvision/stringtable.xml @@ -22,7 +22,7 @@ JVN (Gen1, marron) ПНВ (Gen1, Коричневый) Visore Notturno (Gen1, Marrone) - 暗視装置 (第1世代、ブラウン) + NVゴーグル (第1世代、ブラウン) Gogle noktowizyjne (Gen 1, Brązowe) NS-Brille (1. Gen., braun) 夜视仪(一代,棕色) @@ -34,7 +34,7 @@ JVN (Gen1, noires) ПНВ (Gen1, Чёрный) Visore Notturno (Gen1, Nero) - 暗視装置 (第1世代、ブラック) + NVゴーグル (第1世代、ブラック) Gogle noktowizyjne (Gen 1, Czarne) NS-Brille (1. Gen., schwarz) 夜视仪(一代,黑色) @@ -46,7 +46,7 @@ JVN (Gen1, vertes) ПНВ (Gen1, Зелёный) Visore Notturno (Gen1, Verde) - 暗視装置 (第1世代、グリーン) + NVゴーグル (第1世代、グリーン) Gogle noktowizyjne (Gen 1, Zielone) NS-Brille (1. Gen., grün) 夜视仪(一代,绿色) @@ -58,7 +58,7 @@ JVN (Gen2, marron) ПНВ (Gen2, Коричневый) Visore Notturno (Gen2, Marrone) - 暗視装置 (第2世代、ブラウン) + NVゴーグル (第2世代、ブラウン) Gogle noktowizyjne (Gen 2, Brązowe) NS-Brille (2. Gen., braun) 夜视仪(二代,棕色) @@ -70,7 +70,7 @@ JVN (Gen2, noires) ПНВ (Gen2, Чёрный) Visore Notturno (Gen2, Nero) - 暗視装置 (第2世代、ブラック) + NVゴーグル (第2世代、ブラック) Gogle noktowizyjne (Gen 2, Czarne) NS-Brille (2. Gen., schwarz) 夜视仪(二代,黑色) @@ -82,7 +82,7 @@ NV Goggles (Gen2, vertes) ПНВ (Gen2, Зелёный) Visore Notturno (Gen2, Verde) - 暗視装置 (第2世代、グリーン) + NVゴーグル (第2世代、グリーン) Gogle noktowizyjne (Gen 2, Zielone) NS-Brille (2. Gen., grün) 夜视仪(二代,绿色) @@ -100,7 +100,7 @@ ПНВ (Gen3) Gafas de visión nocturna (Gen3) Éjjellátó szemüveg (3. Gen.) - 暗視装置 (第3世代) + NVゴーグル (第3世代) 야투경 (3세대) 夜视仪(三代) 夜視鏡 (三代) @@ -117,7 +117,7 @@ ПНВ (Gen3, Коричневый) Gafas de visión nocturna (Gen3, Marrón) Éjjellátó szemüveg (3. Gen., barna) - 暗視装置 (第3世代、ブラウン) + NVゴーグル (第3世代、ブラウン) 야투경 (3세대, 갈색) 夜视仪(三代,棕色) 夜視鏡 (三代, 棕色) @@ -125,7 +125,7 @@ NV Goggles (Gen3, Brown, WP) - 暗視装置 (第3世代、ブラウン) + NVゴーグル (第3世代、ブラウン、白色蛍光) Visore Notturno (Gen3, Marrone, FB) Gogle noktowizyjne (Gen3, Brązowe, WP) NS-Brille (3. Generation, Braun, WP) @@ -134,7 +134,7 @@ Night Vision Goggles, White Phosphor - 暗視装置、白色蛍光 + ナイトビジョン・ゴーグル、白色蛍光 Visore Notturno, Fosforo Bianco Gogle noktowizyjne, Biały Fosfor Nachtsichtbrille, weißer Phosphor @@ -152,7 +152,7 @@ ПНВ (Gen3, Зелёный) Gafas de visión nocturna (Gen3, Verde) Éjjellátó szemüveg (3. Gen., zöld) - 暗視装置 (第3世代、グリーン) + NVゴーグル (第3世代、グリーン) 야투경 (3세대, 녹색) 夜视仪(三代,绿色) 夜視鏡 (三代, 綠色) @@ -161,7 +161,7 @@ NV Goggles (Gen3, Green, WP) Visore Notturno (Gen3, Verde, FB) - 暗視装置 (第3世代、グリーン、白色蛍光) + NVゴーグル (第3世代、グリーン、白色蛍光) Gogle noktowizyjne (Gen3, Zielone, WP) NS-Brille (3. Generation, Grün, WP) 야투경 (3세대, 녹색, 백색광) @@ -178,7 +178,7 @@ ПНВ (Gen3, Чёрный) Gafas de visión nocturna (Gen3, Negro) Éjjellátó szemüveg (3. Gen., fekete) - 暗視装置 (第3世代、ブラック) + NVゴーグル (第3世代、ブラック) 야투경 (3세대, 검정색) 夜视仪(三代,黑色) 夜視鏡 (三代, 黑色) @@ -186,7 +186,7 @@ NV Goggles (Gen3, Black, WP) - 暗視装置 (第3世代、ブラック、白色蛍光) + NVゴーグル (第3世代、ブラック、白色蛍光) Visore Notturno (Gen3, Nero, FB) Gogle noktowizyjne (Gen3, Czarne, WP) NS-Brille (3. Generation, Schwarz, WP) @@ -198,7 +198,7 @@ JVN (Gen4, marron) ПНВ (Gen4, Коричневый) Visore Notturno (Gen4, Marrone) - 暗視装置 (第4世代、ブラウン) + NVゴーグル (第4世代、ブラウン) Gogle noktowizyjne (Gen 4, Brązowe) NS-Brille (4. Gen., braun) 夜视仪(四代,棕色) @@ -207,7 +207,7 @@ NV Goggles (Gen4, Brown, WP) - 暗視装置 (第4世代、ブラウン、白色蛍光) + NVゴーグル (第4世代、ブラウン、白色蛍光) Visore Notturno (Gen4, Marrone, FB) Gogle noktowizyjne (Gen 4, Brązowe, WP) NS-Brille (4. Generation, Braun, WP) @@ -219,7 +219,7 @@ JVN (Gen4, noires) ПНВ (Gen4, Чёрный) Visore Notturno (Gen4, Nero) - 暗視装置 (第3世代、ブラック) + NVゴーグル (第4世代、ブラック) Gogle noktowizyjne (Gen 4, Czarne) NS-Brille (4. Gen., schwarz) 夜视仪(四代,黑色) @@ -228,7 +228,7 @@ NV Goggles (Gen4, Black, WP) - 暗視装置 (第3世代、ブラック、白色蛍光) + NVゴーグル (第4世代、ブラック、白色蛍光) Visore Notturno (Gen4, Nero, FB) Gogle noktowizyjne (Gen 4, Czarne, WP) NS-Brille (4. Generation, Schwarz, WP) @@ -240,7 +240,7 @@ JVN (Gen4, vertes) ПНВ (Gen4, Зелёный) Visore Notturno (Gen4, Verde) - 暗視装置 (第3世代、グリーン) + NVゴーグル (第4世代、グリーン) Gogle noktowizyjne (Gen 4, Zielone) NS-Brille (4. Gen., grün) 夜视仪(四代,绿色) @@ -249,7 +249,7 @@ NV Goggles (Gen4, Green, WP) - 暗視装置 (第3世代、グリーン、白色蛍光) + NVゴーグル (第4世代、グリーン、白色蛍光) Visore Notturno (Gen4, Verde, FB) Gogle noktowizyjne (Gen 4, Zielone, WP) NS-Brille (4. Generation, Grün, WP) @@ -261,7 +261,7 @@ JVN (Large, marron) ПНВ (Широкий, Коричневый) Visore Notturno (Grandangolo, Marrone) - 暗視装置 (ワイド、ブラウン) + NVゴーグル (ワイド、ブラウン) Gogle noktowizyjne (Szerokie, Brązowe) NS-Brille (Weit, braun) 夜视仪(宽,棕色) @@ -270,7 +270,7 @@ NV Goggles (Wide, Brown, WP) - 暗視装置 (ワイド、ブラウン、白色蛍光) + NVゴーグル (ワイド、ブラウン、白色蛍光) Visore Notturno (Grandangolo, Marrone, FB) Gogle noktowizyjne (Szerokie, Brązowe, WP) NS-Brille (Weit, Braun, WP) @@ -282,7 +282,7 @@ JVN (Large, noires) ПНВ (Широкий, Чёрный) Visore Notturno (Grandangolo, Nero) - 暗視装置 (ワイド、ブラック) + NVゴーグル (ワイド、ブラック) Gogle noktowizyjne (Szerokie, Czarne) NS-Brille (Weit, schwarz) 夜视仪(宽,黑色) @@ -291,7 +291,7 @@ NV Goggles (Wide, Black, WP) - 暗視装置 (ワイド、ブラック、白色蛍光) + NVゴーグル (ワイド、ブラック、白色蛍光) Visore Notturno (Grandangolo, Nero, FB) Gogle noktowizyjne (Szerokie, Czarne, WP) NS-Brille (Weit, Schwarz, WP) @@ -303,7 +303,7 @@ JVN (Large, vertes) ПНВ (Широкий, Зелёный) Visore Notturno (Grandangolo, Verde) - 暗視装置 (ワイド、グリーン) + NVゴーグル (ワイド、グリーン) Gogle noktowizyjne (Szerokie, Zielone) NS-Brille (Weit, grün) 夜视仪(宽,绿色) @@ -312,7 +312,7 @@ NV Goggles (Wide, Green, WP) - 暗視装置 (ワイド、グリーン、白色蛍光) + NVゴーグル (ワイド、グリーン、白色蛍光) Visore Notturno (Grandangolo, Verde, FB) Gogle noktowizyjne (Szerokie, Zielone, WP) NS-Brille (Weit, Grün, WP) @@ -450,7 +450,7 @@ Fog is used to limit visibility. - フォグは視程制限のために使われます。 + 霧で視程を制限します。 La nebbia viene utilizzata per limitare la visibilità. Nebel wird genutzt, um die Sichtbarkeit einzuschränken. 透過霧氣來縮減夜視鏡的可視距離 @@ -528,7 +528,7 @@ Intensität des Bildrauschens im Nachtsichtgerät 調整配戴夜視鏡時畫面雜訊的多寡。 调整配戴夜视仪时画面噪声的强度。 - 暗視装置を使用時に起きる画像ノイズの強度です + 暗視装置使用時の画像ノイズの強度 Intensité du bruit de l'image lorsque vous portez des JVN. Intensità del disturbo nell'immagine degli NVG Intensywność efektu szumu podczas noszenia gogli noktowizyjnych @@ -556,7 +556,7 @@ Rolling shutter effect from muzzle flashes Rolling-Shutter-Effekt bei Müdungsfeuer - 発射炎が作るローリング シャッター効果 + 発射炎によるローリング シャッター効果 枪械开火时产生瞬间快门效果 槍開火時瞬間產生快門效果 Effet d'obturateur à rideau dû aux flashs du canon. diff --git a/addons/nlaw/stringtable.xml b/addons/nlaw/stringtable.xml index 4d3c0638f2..0d2eaca93a 100644 --- a/addons/nlaw/stringtable.xml +++ b/addons/nlaw/stringtable.xml @@ -25,7 +25,7 @@ 直射模式 直射模式 Bezpośredni atak - 직선 공격 + 직사 타격 Прямая атака Ataque Direto Attaque directe @@ -41,7 +41,7 @@ 飞越攻顶模式 攻頂模式 Atak z góry - 탑어택 + 상부 타격 Атака сверху Ataque por cima Attaque par le haut diff --git a/addons/overheating/stringtable.xml b/addons/overheating/stringtable.xml index 678a9a746a..4160a77ea8 100644 --- a/addons/overheating/stringtable.xml +++ b/addons/overheating/stringtable.xml @@ -877,21 +877,33 @@ Bolt Type + 遊底(ボルト)形式 + 노리쇠 방식 Open Bolt + オープンボルト + 오픈 볼트 Closed Bolt + クローズドボルト + 클로즈드 볼트 Barrel Type + 銃身形式 + 총열 방식 Non-Removeable + 取り外し不可 + 제거 불가 Quick Change + 即時交換可 + 신속 교체 diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 045def6cd7..c67d3f70ad 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -2151,7 +2151,7 @@ F2000 (камуфляжный) F2000 (Camo) F2000 (Mimetica) - F2000 (迷彩) + F2000 (AAF迷彩) F2000 (위장) F2000突擊步槍 (迷彩) F2000(迷彩) @@ -2185,7 +2185,7 @@ F2000 Tactical (камуфляжный) F2000 Tactical (Camo) F2000 Tactical (Mimetica) - F2000 タクティカル (迷彩) + F2000 タクティカル (AAF迷彩) F2000 택티컬 (위장) F2000戰術型突擊步槍 (迷彩) F2000 战术型(迷彩) @@ -2219,7 +2219,7 @@ F2000 EGLM (камуфляжный) F2000 EGLM (Camo) F2000 EGLM (Mimetica) - F2000 EGLM (迷彩) + F2000 EGLM (AAF迷彩) F2000 EGLM (위장) F2000突擊步槍 (榴彈—迷彩) F2000 ELGM(迷彩) @@ -2440,7 +2440,7 @@ GM6 Lynx (камуфляжный) GM6 Lynx (Camo) GM6 Lynx (Mimetica) - GM6 リンクス (迷彩) + GM6 リンクス (六角形迷彩) GM6 링스 (위장) GM6 "天貓"反器材狙擊步槍 (迷彩) GM6 "猞猁"(迷彩) @@ -2542,7 +2542,7 @@ Noreen "Bad News" ULR (Mimetica) Noreen "Bad News"ULR (Terepmintás) Noreen "Bad News" ULR (Camuflagem) - ノレーン "バッド ニュース" ULR (迷彩) + ノレーン "バッド ニュース" ULR (CTRG迷彩) 노린 "배드뉴스" ULR (위장) 諾琳"壞消息"極距狙擊步槍 (迷彩) 诺琳 "坏消息" 极距狙击步枪(迷彩) @@ -2644,7 +2644,7 @@ SIG 556 (Mimetica) SIG 556 (Terepmintás) SIG 556 (Camuflagem) - SIG 556 (迷彩) + SIG 556 (MTP迷彩) 시그 556 (위장) SIG 556精準步槍 (迷彩) SIG 556(迷彩) @@ -2763,7 +2763,7 @@ Cyrus (Hex) Cyrus (Hex) Cyrus (Hex) - サイラス (ヘックス) + サイラス (六角形迷彩) 사이러스 (육각) "居鲁士"狙擊步槍 (數位蜂巢迷彩) "居鲁士"(蜂巢迷彩) @@ -2831,7 +2831,7 @@ M14 (Oliva) M14 (Olíva) M14 (Oliva) - M14 (オリーブド ラブ) + M14 (オリーブ) M14 (올리브) M14精準步槍 (橄欖色) M14(橄榄色) @@ -2865,7 +2865,7 @@ HK121 (Hex) HK121 (Hex) HK121 (Hex) - HK 121 (ヘックス) + HK 121 (六角形迷彩) HK121 (육각) HK121中型機槍 (數位蜂巢迷彩) HK121(蜂巢迷彩) @@ -2916,7 +2916,7 @@ LWMMG (MTP) LWMMG (MTP) LWMMG (MTP) - LWMMG (MTP) + LWMMG (MTP迷彩) LWMMG (MTP) 輕量化中型機槍 (多地形迷彩) LWMMG(多地形迷彩) @@ -3084,7 +3084,7 @@ QBZ-95-1 (Verde Hex) QBZ-95-1 (Zöld Hex) QBZ-95-1 (Hex Verde) - QBZ-95-1 (緑ヘックス) + QBZ-95-1 (緑六角形迷彩) QBZ-95-1 (초록육각) QBZ-95-1式自動步槍 (綠色數位蜂巢迷彩) 95-1式自动步枪(绿色蜂巢迷彩) @@ -3101,7 +3101,7 @@ QBZ-95-1 (Hex) QBZ-95-1 (Hex) QBZ-95-1 (Hex) - QBZ-95-1 (ヘックス) + QBZ-95-1 (六角形迷彩) QBZ-95-1 (육각) QBZ-95-1式自動步槍 (數位蜂巢迷彩) 95-1式自动步枪(蜂巢迷彩) @@ -3135,7 +3135,7 @@ QBZ-95-1 GL (Verde Hex) QBZ-95-1 GL (Zöld Hex) QBZ-95-1 GL (Hex Verde) - QBZ-95-1 GL (緑ヘックス) + QBZ-95-1 GL (緑六角形迷彩) QBZ-95-1 GL (초록육각) QBZ-95-1式自動步槍 (榴彈—綠色數位蜂巢迷彩) 95-1式自动步枪 10A式榴弹(绿色蜂巢迷彩) @@ -3152,7 +3152,7 @@ QBZ-95-1 GL (Hex) QBZ-95-1 GL (Hex) QBZ-95-1 GL (Hex) - QBZ-95-1 GL (ヘックス) + QBZ-95-1 GL (六角形迷彩) QBZ-95-1 GL (육각) QBZ-95-1式自動步槍 (榴彈—數位蜂巢迷彩) 95-1式自动步枪 10A式榴弹(蜂巢迷彩) @@ -3186,7 +3186,7 @@ QBZ-95-1 LSW (Verde Hex) QBZ-95-1 LSW (Zöld Hex) QBZ-95-1 LSW (Hex Verde) - QBZ-95-1 LSW (緑ヘックス) + QBZ-95-1 LSW (緑六角形迷彩) QBZ-95-1 LSW (초록육각) QBZ-95-1式輕機槍 (綠色數位蜂巢迷彩) 95-1式班用机枪(绿色蜂巢迷彩) @@ -3203,7 +3203,7 @@ QBZ-95-1 LSW (Hex) QBZ-95-1 LSW (Hex) QBZ-95-1 LSW (Hex) - QBZ-95-1 LSW (ヘックス) + QBZ-95-1 LSW (六角形迷彩) QBZ-95-1 LSW (육각) QBZ-95-1式輕機槍 (數位蜂巢迷彩) 95-1式班用机枪(蜂巢迷彩) @@ -3237,7 +3237,7 @@ QBU-88 (Verde Hex) QBU-88 (Zöld Hex) QBU-88 (Hex Verde) - QBU-88 (緑ヘックス) + QBU-88 (緑六角形迷彩) QBU-88 (초록육각) QBU-88式狙擊步槍 (綠色數位蜂巢迷彩) 88式狙击步枪(绿色蜂巢迷彩) @@ -3254,7 +3254,7 @@ QBU-88 (Hex) QBU-88 (Hex) QBU-88 (Hex) - QBU-88 (ヘックス) + QBU-88 (六角形迷彩) QBU-88 (육각) QBU-88式狙擊步槍 (數位蜂巢迷彩) 88式狙击步枪(蜂巢迷彩) @@ -3271,7 +3271,7 @@ GM6 Lynx (Verde Hex) GM6 Lynx (Zöld Hex) GM6 Lynx (Hex Verde) - GM6 リンクス (緑ヘックス) + GM6 リンクス (緑六角形迷彩) GM6 링스 (초록육각) GM6 "天貓"反器材狙擊步槍 (綠色數位蜂巢迷彩) GM6 "猞猁"(绿色蜂巢迷彩) @@ -3305,7 +3305,7 @@ M200 Intervention (тропик) M200 Intervention (Trópico) M200 Intervention (Tropico) - M200 インターベンション (熱帯迷彩) + M200 インターベンション (熱帯ジャングル迷彩) M200 인터벤션 (열대) M200干預型狙擊步槍 (熱帶迷彩) M200 "干预"(热带迷彩) @@ -3543,7 +3543,7 @@ RPG-32 (Verde Hex) RPG-32 (Zöld Hex) RPG-32 (Hex Verde) - RPG-32 (緑ヘックス) + RPG-32 (緑六角形迷彩) RPG-32 (초록육각) RPG-32火箭發射器 (綠色數位蜂巢迷彩) RPG-32(绿色蜂巢迷彩) @@ -3940,7 +3940,7 @@ ELCAN SpecterOS (Green Hex) ELCAN SpecterOS (綠色數位蜂巢迷彩) ELCAN SpecterOS(绿色蜂巢迷彩) - ELCAN SpecterOS (緑ヘックス) + ELCAN SpecterOS (緑六角形迷彩) ELCAN SpecterOS (Hex Verde) ELCAN SpecterOS (Zielony Hex) ELCAN SpecterOS (зелёный гекс) @@ -3989,7 +3989,7 @@ ELCAN SpecterOS (Leśny) ELCAN SpecterOS (Forêt) ELCAN SpecterOS (Verdeggiante) - ELCAN SpecterOS (緑地) + ELCAN SpecterOS (緑地迷彩) ELCAN SpecterOS (Grün) ELCAN SpecterOS(繁茂) 엘칸 스펙터OS (초목) @@ -4001,7 +4001,7 @@ ELCAN SpecterOS (Jałowy) ELCAN SpecterOS (Désert) ELCAN SpecterOS (Arido) - ELCAN SpecterOS (乾燥地帯) + ELCAN SpecterOS (乾燥地帯迷彩) ELCAN SpecterOS (Trocken) ELCAN SpecterOS(干旱) 엘칸 스펙터OS (건조) @@ -4025,7 +4025,7 @@ ELCAN SpecterOS 7.62 (Leśny) ELCAN SpecterOS 7.62 (Forêt) ELCAN SpecterOS 7.62 (Verdeggiante) - ELCAN SpecterOS 7.62 (緑地) + ELCAN SpecterOS 7.62 (緑地迷彩) ELCAN SpecterOS 7.62 (Grün) ELCAN SpecterOS 7.62(繁茂) 엘칸 스펙터OS 7.62 (초목) @@ -4037,7 +4037,7 @@ ELCAN SpecterOS 7.62 (Jałowy) ELCAN SpecterOS 7.62 (Désert) ELCAN SpecterOS 7.62 (Arido) - ELCAN SpecterOS 7.62 (乾燥地帯) + ELCAN SpecterOS 7.62 (乾燥地帯迷彩) ELCAN SpecterOS 7.62 (Trocken) ELCAN SpecterOS 7.62(干旱) 엘칸 스펙터OS 7.62 (건조) @@ -4112,7 +4112,7 @@ Nightforce NXS (Green Hex) Nightforce NXS (綠色數位蜂巢迷彩) Nightforce NXS(绿色蜂巢迷彩) - Nightforce NXS (緑ヘックス) + Nightforce NXS (緑六角形迷彩) Nightforce NXS (Hex Verde) Nightforce NXS (Zielony Hex) Nightforce NXS (зелёный гекс) @@ -4129,7 +4129,7 @@ Nightforce NXS (Dschungel) Nightforce NXS (叢林色) Nightforce NXS(丛林色) - Nightforce NXS (ジャングル) + Nightforce NXS (熱帯ジャングル迷彩) Nightforce NXS (Giungla) Nightforce NXS (Dżungla) Nightforce NXS (джунгли) @@ -4240,7 +4240,7 @@ KAHLES Helia (Hex) KAHLES Helia (Hex) KAHLES Helia(蜂巢迷彩) - KAHLES ヘリア (ヘックス) + KAHLES ヘリア (六角形迷彩) KAHLES Helia (Hex) KAHLES Helia (Hex) KAHLES Helia (гекс) @@ -4304,7 +4304,7 @@ Burris XTR II (Green Hex) Burris XTR II (綠色數位蜂巢迷彩) Burris XTR II(绿色蜂巢迷彩) - Burris XTR II (緑ヘックス) + Burris XTR II (緑六角形迷彩) Burris XTR II (Hex Verde) Burris XTR II (Zielony Hex) Burris XTR II (зелёный гекс) @@ -4393,7 +4393,7 @@ EOTech XPS3 (Leśny) EOTech XPS3 (Forêt) EOTech XPS3 (Verdeggiante) - EOTech XPS3 (緑地) + EOTech XPS3 (緑地迷彩) EOTech XPS3 (Grün) EOTech XPS3(繁茂) 이오텍 XPS3 (초목) @@ -4405,7 +4405,7 @@ EOTech XPS3 (Jałowy) EOTech XPS3 (Désert) EOTech XPS3 (Arido) - EOTech XPS3 (乾燥地帯) + EOTech XPS3 (乾燥地帯迷彩) EOTech XPS3 (Trocken) EOTech XPS3(干旱) 이오텍 XPS3 (건조) @@ -4633,7 +4633,7 @@ P90 TR (Mimetica) P90 TR (Terepmintás) P90 TR (Camuflagem) - P90 TR (迷彩) + P90 TR (AAF迷彩) P90 TR (迷彩) P90 TR(迷彩) P90 TR (위장) @@ -4650,7 +4650,7 @@ P90 TR (Hex) P90 TR (Hex) P90 TR (Hex) - P90 TR (ヘックス) + P90 TR (六角形迷彩) P90 TR (數位蜂巢迷彩) P90 TR(蜂巢迷彩) P90 TR (육각) @@ -4701,7 +4701,7 @@ P90 (Mimetica) P90 (Terepmintás) P90 (Camuflagem) - P90 (迷彩) + P90 (AAF迷彩) P90 (迷彩) P90(迷彩) P90 (위장) @@ -4718,7 +4718,7 @@ P90 (Hex) P90 (Hex) P90 (Hex) - P90 (ヘックス) + P90 (六角形迷彩) P90 (數位蜂巢迷彩) P90(蜂巢迷彩) P90 (육각) @@ -4769,7 +4769,7 @@ PS90 TR (Mimetica) PS90 TR (Terepmintás) PS90 TR (Camuflagem) - PS90 TR (迷彩) + PS90 TR (AAF迷彩) PS90 TR (迷彩) PS90 TR(迷彩) PS90 TR (위장) @@ -4786,7 +4786,7 @@ PS90 TR (Hex) PS90 TR (Hex) PS90 TR (Hex) - PS90 TR (ヘックス) + PS90 TR (六角形迷彩) PS90 TR (數位蜂巢迷彩) PS90 TR(蜂巢迷彩) PS90 TR (육각) @@ -4837,7 +4837,7 @@ PS90 (Mimetica) PS90 (Terepmintás) PS90 (Camuflagem) - PS90 (迷彩) + PS90 (AAF迷彩) PS90 (迷彩) PS90(迷彩) PS90 (위장) @@ -4854,7 +4854,7 @@ PS90 (Hex) PS90 (Hex) PS90 (Hex) - PS90 (ヘックス) + PS90 (六角形迷彩) PS90 (數位蜂巢迷彩) PS90(蜂巢迷彩) PS90 (육각) @@ -4958,7 +4958,7 @@ AK-15 (Exuberante) AK-15 (초목) AK-15(繁茂) - AK-15 (緑地) + AK-15 (緑地迷彩) AK-15 (Gür) AK-15 (esőerdő) @@ -4975,7 +4975,7 @@ AK-15 (Árido) AK-15 (건조) AK-15(干旱) - AK-15 (乾燥地帯) + AK-15 (乾燥地帯迷彩) AK-15 (Kurak) AK-15 (sivatag) @@ -5009,7 +5009,7 @@ AK-15 GL (Exuberante) AK-15 GL (초목) AK-15 GP-34(繁茂) - AK-15 GL (緑地) + AK-15 GL (緑地迷彩) AK-15 GL (Gür) AK-15 GL (esőerdő) @@ -5026,7 +5026,7 @@ AK-15 GL (Árido) AK-15 GL (건조) AK-15 GP-34(干旱) - AK-15 GL (乾燥地帯) + AK-15 GL (乾燥地帯迷彩) AK-15AK-15 GL (Kurak) AK-15 GL (sivatag) @@ -5060,7 +5060,7 @@ AK-15K (Exuberante) AK-15K (초목) AK-15K(繁茂) - AK-15K (緑地) + AK-15K (緑地迷彩) AK-15K (Gür) AK-15K (esőerdő) @@ -5077,7 +5077,7 @@ AK-15K (Árido) AK-15K (건조) AK-15K(干旱) - AK-15K (乾燥地帯) + AK-15K (乾燥地帯迷彩) AK-15K (Kurak) AK-15K (sivatag) @@ -5111,7 +5111,7 @@ RPK (Exuberante) RPK (초목) RPK(繁茂) - RPK (緑地) + RPK (緑地迷彩) RPK (Gür) RPK (esőerdő) @@ -5128,7 +5128,7 @@ RPK (Árido) RPK (건조) RPK(干旱) - RPK (乾燥地帯) + RPK (乾燥地帯迷彩) RPK (Kurak) RPK (sivatag) @@ -5213,7 +5213,7 @@ MSBS Grot (Camo) MSBS 그롯 (위장) MSBS Grot(迷彩) - MSBS グロート (迷彩) + MSBS グロート (LDF迷彩) MSBS Grot (Kamuflaj) MSBS Grot (Terepmintás) @@ -5281,7 +5281,7 @@ MSBS Grot GL (Camo) MSBS 그롯 GL (위장) MSBS Grot GPBO-40(迷彩) - MSBS グロート GL (迷彩) + MSBS グロート GL (LDF迷彩) MSBS Grot GL (Kamuflaj) MSBS Grot GL (Terepmintás) @@ -5349,7 +5349,7 @@ MSBS Grot MR (Camo) MSBS 그롯 MR (위장) MSBS Grot MR(迷彩) - MSBS グロート MR (迷彩) + MSBS グロート MR (LDF迷彩) MSBS Grot MR (Kamuflaj) MSBS Grot MR (Terepmintás) @@ -5417,7 +5417,7 @@ MSBS Grot SG (Camo) MSBS 그롯 SG (위장) MSBS Grot SG(迷彩) - MSBS グロート SG (迷彩) + MSBS グロート SG (LDF迷彩) MSBS Grot SG (Kamuflaj) MSBS Grot SG (Terepmintás) diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index 6bf0092a55..48f2ca8a90 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -598,7 +598,7 @@ Hell Světlá Claro - 밝은 + 조명 轻型 照明 Işık diff --git a/addons/tagging/stringtable.xml b/addons/tagging/stringtable.xml index d64fb5ef95..34445fab21 100644 --- a/addons/tagging/stringtable.xml +++ b/addons/tagging/stringtable.xml @@ -274,7 +274,7 @@ Černý sprej Spray de tinta preta Черный спрей - ペイントスプレー缶 (黒色) + スプレーペイント缶 (黒色) 검정 스프레이 黑色喷漆 黑色噴漆 @@ -290,7 +290,7 @@ Červený sprej Spray de tinta vermelha Красный спрей - ペイントスプレー缶 (赤色) + スプレーペイント缶 (赤色) 빨강 스프레이 红色喷漆 紅色噴漆 @@ -306,7 +306,7 @@ Zelený sprej Spray de tinta verde Зелёный спрей - ペイントスプレー缶 (緑色) + スプレーペイント缶 (緑色) 초록 스프레이 绿色喷漆 綠色噴漆 @@ -322,7 +322,7 @@ Modrý sprej Spray de tinta azul Синий спрей - ペイントスプレー缶 (青色) + スプレーペイント缶 (青色) 파랑 스프레이 蓝色喷漆 藍色噴漆 @@ -338,7 +338,7 @@ Žlutý sprej Spray de tinta amarela Желтый спрей - ペイントスプレー缶 (黄色) + スプレーペイント缶 (黄色) 노랑 스프레이 黄色喷漆 黃色噴漆 @@ -354,7 +354,7 @@ Bílý sprej Spray de tinta branca Белый спрей - ペイントスプレー缶 (白色) + スプレーペイント缶 (白色) 하양 스프레이 白色喷漆 白色噴漆 @@ -370,7 +370,7 @@ Plechovka se sprejem k vytváření značek. Uma lata de tinta spray para marcar paredes. Балончик спрея для рисования маркеров на стенах. - 壁にタグを描くためのペイントスプレー缶。 + 壁にタグを描くためのスプレーペイント缶。 벽에 낙서할 수 있는 스프레이캔 입니다. 喷漆可喷涂在墙壁上 噴漆可噴塗在牆壁上 diff --git a/addons/viewrestriction/XEH_clientInit.sqf b/addons/viewrestriction/XEH_clientInit.sqf index 21455af21b..1ed4f008da 100644 --- a/addons/viewrestriction/XEH_clientInit.sqf +++ b/addons/viewrestriction/XEH_clientInit.sqf @@ -19,7 +19,7 @@ if !(hasInterface) exitWith {}; }; // Exit if third person view is not available - if (difficultyOption "thirdPersonView" == 0) exitWith { + if (difficultyOption "thirdPersonView" != 1) exitWith { WARNING("View Restriction is enabled, but 3rd person is disabled with server difficulty."); }; diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index d23a7cf407..d9401789a4 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -207,7 +207,7 @@ Feltárja az aknákat a szövetségeseknek, és jelölőket helyez el a térképen. Показывает мины союзникам и отмечает их маркерами на карте. Rivela mine ad alleati e piazza marcatori in mappa. - 友軍に地雷と地図へ設置マーカーを表示します。 + 地雷の位置を味方に公開し、マップマーカーを配置します。 아군에게 지도 상의 모든 지뢰를 표시합니다. 地图将标记队友放置的地雷 地圖將標記隊友放置的地雷 diff --git a/docs/wiki/framework/medical-treatment-framework.md b/docs/wiki/framework/medical-treatment-framework.md index e42cb21e3b..c84d4382ea 100644 --- a/docs/wiki/framework/medical-treatment-framework.md +++ b/docs/wiki/framework/medical-treatment-framework.md @@ -57,9 +57,60 @@ class ACE_Medical_Treatment_Actions { }; ``` -## 2. Mission Variables +## 2. Medical Vehicles and Facilities -### 2.1 Grave Digging Object Configuration +### 2.1 Medical Vehicles + +To configure a vehicle as a Medical Vehicle by default, set the `attendant` property in the vehicle's config to `1`. +```cpp +class CfgVehicles { + class MyAmbulance { + attendant = 1; + }; +}; +``` +To set a vehicle as a Medical Vehicle mid-mission, set the `ace_medical_isMedicalVehicle` variable globally. +```sqf +// Sets the object behind your cursor to be a medical vehicle +cursorObject setVariable ["ace_medical_isMedicalVehicle", true, true]; + +// Create an interaction to turn a vehicle into a medical vehicle +private _statement = {_target setVariable ["ace_medical_isMedicalVehicle", true, true]}; +private _action = ["TAG_makeMedicalVehicle", "Set as Medical Vehicle", _statement, {!([_target] call ace_medical_treatment_fnc_isMedicalVehicle)}] call ace_interact_menu_fnc_createAction; +[cursorObject, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_createAction; + +// Set all vehicles of type "B_Truck_01_transport_F" as medical vehicles +private _classname = "B_Truck_01_transport_F"; +private _affectChildClasses = false; // Affect variants of this vehicle +["B_Truck_01_transport_F", "InitPost", { + params ["_vehicle"]; + if (!local _vehicle) exitWith {}; + _vehicle setVariable ["ace_medical_isMedicalVehicle", true, true]; +}, _affectChildClasses, [], true] call CBA_fnc_addClassEventHandler; +``` + +### 2.2 Medical Facilities + +To configure an object as a Medical Facility by default, add a new array containing its classname to the `ace_medical_facilities` class in config root. +```cpp +class CfgVehicles { + class ThingX; + class MyMedicalFacility: ThingX {}; + class MyMedicalFacility2_ElectricBoogaloo: MyMedicalFacility {}; +}; + +class ace_medical_facilities { + TAG_allOfMyFacilities[] = {"MyMedicalFacility", "MyMedicalFacility2_ElectricBoogaloo"}; +}; +``` +To set an object as a Medical Facility mid-mission, set the `ace_medical_isMedicalFacility` variable globally. See above. + + +Both Medical Facilities and Medical Vehicles can also be created via the Eden Editor's attributes menu. + +## 3. Mission Variables + +### 3.1 Grave Digging Object Configuration The object created when digging a grave can be modified by setting the `ace_medical_treatment_graveClassname` variable. ```sqf @@ -71,7 +122,7 @@ The object's rotation can also be modified, if necessary. ace_medical_treatment_graveRotation = 0; // rotation angle (will depend on model classname) ``` -### 2.2 Zeus Medical Menu Module +### 3.2 Zeus Medical Menu Module If a mission maker wishes to disable Zeus access to the medical menu, they can set the variable below: ace_medical_gui_enableZeusModule = false; // default is true