From 17f7c7fc502d3974374daf34d2591d73215ec503 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 5 May 2017 22:51:46 +0100 Subject: [PATCH 001/198] Add player initilization safety to setSpectator Public function which should wait for player unit to exist before running. With this change an additional variable is now set on the player unit which can be used to check whether players are spectators or not (part of grander plans). --- .../spectator/functions/fnc_setSpectator.sqf | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/addons/spectator/functions/fnc_setSpectator.sqf b/addons/spectator/functions/fnc_setSpectator.sqf index 45bb15df425..7dec0ba5e1c 100644 --- a/addons/spectator/functions/fnc_setSpectator.sqf +++ b/addons/spectator/functions/fnc_setSpectator.sqf @@ -1,10 +1,8 @@ /* * Author: SilentSpike - * Sets local client to the given spectator state (virtually) - * To physically handle a spectator see ace_spectator_fnc_stageSpectator + * Enter/exit spectator mode for the local player * * Client will be able to communicate in ACRE/TFAR as appropriate - * The spectator interface will be opened/closed * * Arguments: * 0: Spectator state of local client (default: true) @@ -29,6 +27,15 @@ if !(hasInterface) exitWith {}; // Exit if no change if (_set isEqualTo GVAR(isSet)) exitWith {}; +// Delay if local player is not fully initalized +if (isNil { player } || { isNull player }) exitWith { + [ + { !isNil { player } && { !isNull player } }, + FUNC(setSpectator), + _this + ] call CBA_fnc_waitUntilAndExecute; +}; + // Handle common addon audio if (["ace_hearing"] call EFUNC(common,isModLoaded)) then { EGVAR(hearing,disableVolumeUpdate) = _set; @@ -54,7 +61,7 @@ if (_set) then { [] call FUNC(updateUnits); // Initalize the camera objects - GVAR(freeCamera) = "Camera" camCreate (ASLtoATL GVAR(camPos)); + GVAR(freeCamera) = "CamCurator" camCreate (ASLtoATL GVAR(camPos)); GVAR(unitCamera) = "Camera" camCreate [0,0,0]; GVAR(targetCamera) = "Camera" camCreate [0,0,0]; @@ -75,9 +82,6 @@ if (_set) then { clearRadio; enableRadio false; - // Disable BI damage effects - BIS_fnc_feedback_allowPP = false; - // Close any open dialogs while {dialog} do { closeDialog 0; @@ -134,9 +138,6 @@ if (_set) then { // Return to player view player switchCamera "internal"; - // Enable BI damage effects - BIS_fnc_feedback_allowPP = true; - // Cleanup camera variables GVAR(camBoom) = nil; GVAR(camDolly) = nil; @@ -169,5 +170,6 @@ GVAR(interrupts) = []; // Mark spectator state for reference GVAR(isSet) = _set; +player setVariable [QGVAR(isSet), true, true]; ["ace_spectatorSet", [_set]] call CBA_fnc_localEvent; From 5adbf2c0aaa3ca1511ab4ddc3efa1b1d694083ab Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 5 May 2017 23:26:41 +0100 Subject: [PATCH 002/198] Add UI initalization safety to setSpectator Should make it so that calling the public function before the main display has initalized will correctly wait until it has before starting spectator --- addons/spectator/functions/fnc_handleInterface.sqf | 4 ++-- addons/spectator/functions/fnc_setSpectator.sqf | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/addons/spectator/functions/fnc_handleInterface.sqf b/addons/spectator/functions/fnc_handleInterface.sqf index 9ba64ec0f0d..0fd57578ab7 100644 --- a/addons/spectator/functions/fnc_handleInterface.sqf +++ b/addons/spectator/functions/fnc_handleInterface.sqf @@ -17,7 +17,7 @@ #include "script_component.hpp" -params ["_mode",["_args",[]]]; +params ["_mode", "_args"]; switch (toLower _mode) do { case "onload": { @@ -320,7 +320,7 @@ switch (toLower _mode) do { // Ensure a unit was selected if (count _sel == 3) then { private ["_netID","_newUnit","_newMode"]; - _netID = (_args select 0) tvData _sel; + _netID = _tree tvData _sel; _newUnit = objectFromNetId _netID; // When unit is reselected, toggle camera mode diff --git a/addons/spectator/functions/fnc_setSpectator.sqf b/addons/spectator/functions/fnc_setSpectator.sqf index 7dec0ba5e1c..a26ce28e3dd 100644 --- a/addons/spectator/functions/fnc_setSpectator.sqf +++ b/addons/spectator/functions/fnc_setSpectator.sqf @@ -87,13 +87,14 @@ if (_set) then { closeDialog 0; }; - [{ + [{!isNull ([] call BIS_fnc_displayMission)},{ disableSerialization; + // Create the display - _display = (findDisplay 46) createDisplay QGVAR(interface); + _display = ([] call BIS_fnc_displayMission) createDisplay QGVAR(interface); // If not forced, make esc end spectator - if (_this) then { + if !(_this) then { _display displayAddEventHandler ["KeyDown", { if (_this select 1 == 1) then { [false] call FUNC(setSpectator); @@ -101,7 +102,7 @@ if (_set) then { }; }]; }; - }, !_force] call CBA_fnc_execNextFrame; + }, _force] call CBA_fnc_waitUntilAndExecute; // Cache and disable nametag settings if (["ace_nametags"] call EFUNC(common,isModLoaded)) then { From 9e78afa1e2269eb0b10f710a0582a78cb3d3ee54 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Mon, 15 May 2017 14:04:15 +0100 Subject: [PATCH 003/198] Overhaul spectator Initial WIP overhaul of spectator component. Based on BI's End Game Spectator and AACO's work on POTATO spectate. The essential functionality is in place, but some things are broken and some are still to be transferred. --- addons/common/XEH_PREP.hpp | 1 + addons/common/functions/fnc_getName.sqf | 11 +- .../common/functions/fnc_getVehicleIcon.sqf | 50 ++ addons/spectator/CfgVehicles.hpp | 12 + addons/spectator/UI/interface.hpp | 616 ++++++++++++------ addons/spectator/XEH_PREP.hpp | 48 +- addons/spectator/XEH_postInit.sqf | 16 +- addons/spectator/XEH_preInit.sqf | 34 +- .../spectator/functions/fnc_cacheUnitInfo.sqf | 38 -- addons/spectator/functions/fnc_cam.sqf | 118 ++++ addons/spectator/functions/fnc_cam_draw3D.sqf | 187 ++++++ .../functions/fnc_cam_prepareTarget.sqf | 41 ++ .../functions/fnc_cam_resetTarget.sqf | 15 + .../functions/fnc_cam_setCameraMode.sqf | 97 +++ .../spectator/functions/fnc_cam_setTarget.sqf | 17 + .../functions/fnc_cam_setVisionMode.sqf | 38 ++ .../functions/fnc_cam_toggleVeryFast.sqf | 27 + .../functions/fnc_cam_updateThingsToDraw.sqf | 128 ++++ .../spectator/functions/fnc_cycleCamera.sqf | 58 -- .../functions/fnc_getTargetEntities.sqf | 24 + .../functions/fnc_getTargetGroups.sqf | 24 + .../spectator/functions/fnc_handleCamera.sqf | 75 --- .../spectator/functions/fnc_handleCompass.sqf | 60 -- .../spectator/functions/fnc_handleIcons.sqf | 46 -- .../functions/fnc_handleInterface.sqf | 494 -------------- addons/spectator/functions/fnc_handleMap.sqf | 67 -- .../spectator/functions/fnc_handleMouse.sqf | 46 -- .../spectator/functions/fnc_handleToolbar.sqf | 59 -- .../spectator/functions/fnc_handleUnits.sqf | 40 -- addons/spectator/functions/fnc_interrupt.sqf | 6 +- .../functions/fnc_respawnTemplate.sqf | 24 +- .../functions/fnc_setCameraAttributes.sqf | 29 +- .../spectator/functions/fnc_setSpectator.sqf | 103 +-- .../functions/fnc_stageSpectator.sqf | 7 +- .../functions/fnc_toggleInterface.sqf | 82 --- .../functions/fnc_transitionCamera.sqf | 115 ---- addons/spectator/functions/fnc_ui.sqf | 92 +++ .../spectator/functions/fnc_ui_fadeList.sqf | 40 ++ .../functions/fnc_ui_getTreeDataIndex.sqf | 33 + .../functions/fnc_ui_handleChildDestroyed.sqf | 16 + .../functions/fnc_ui_handleKeyDown.sqf | 185 ++++++ .../functions/fnc_ui_handleKeyUp.sqf | 18 + .../functions/fnc_ui_handleListClick.sqf | 39 ++ .../functions/fnc_ui_handleMapClick.sqf | 30 + .../functions/fnc_ui_handleMapDraw.sqf | 91 +++ .../fnc_ui_handleMouseButtonDblClick.sqf | 16 + .../fnc_ui_handleMouseButtonDown.sqf | 32 + .../functions/fnc_ui_handleMouseMoving.sqf | 20 + .../functions/fnc_ui_handleMouseZChanged.sqf | 18 + .../functions/fnc_ui_handleTabSelected.sqf | 28 + .../spectator/functions/fnc_ui_toggleMap.sqf | 37 ++ .../functions/fnc_ui_updateListEntities.sqf | 175 +++++ .../functions/fnc_ui_updateListFocus.sqf | 12 + .../functions/fnc_ui_updateListLocations.sqf | 60 ++ .../functions/fnc_ui_updateWidget.sqf | 61 ++ .../functions/fnc_updateCameraModes.sqf | 6 +- .../functions/fnc_updateVisionModes.sqf | 2 +- addons/spectator/script_component.hpp | 152 ++++- 58 files changed, 2403 insertions(+), 1613 deletions(-) create mode 100644 addons/common/functions/fnc_getVehicleIcon.sqf delete mode 100644 addons/spectator/functions/fnc_cacheUnitInfo.sqf create mode 100644 addons/spectator/functions/fnc_cam.sqf create mode 100644 addons/spectator/functions/fnc_cam_draw3D.sqf create mode 100644 addons/spectator/functions/fnc_cam_prepareTarget.sqf create mode 100644 addons/spectator/functions/fnc_cam_resetTarget.sqf create mode 100644 addons/spectator/functions/fnc_cam_setCameraMode.sqf create mode 100644 addons/spectator/functions/fnc_cam_setTarget.sqf create mode 100644 addons/spectator/functions/fnc_cam_setVisionMode.sqf create mode 100644 addons/spectator/functions/fnc_cam_toggleVeryFast.sqf create mode 100644 addons/spectator/functions/fnc_cam_updateThingsToDraw.sqf delete mode 100644 addons/spectator/functions/fnc_cycleCamera.sqf create mode 100644 addons/spectator/functions/fnc_getTargetEntities.sqf create mode 100644 addons/spectator/functions/fnc_getTargetGroups.sqf delete mode 100644 addons/spectator/functions/fnc_handleCamera.sqf delete mode 100644 addons/spectator/functions/fnc_handleCompass.sqf delete mode 100644 addons/spectator/functions/fnc_handleIcons.sqf delete mode 100644 addons/spectator/functions/fnc_handleInterface.sqf delete mode 100644 addons/spectator/functions/fnc_handleMap.sqf delete mode 100644 addons/spectator/functions/fnc_handleMouse.sqf delete mode 100644 addons/spectator/functions/fnc_handleToolbar.sqf delete mode 100644 addons/spectator/functions/fnc_handleUnits.sqf delete mode 100644 addons/spectator/functions/fnc_toggleInterface.sqf delete mode 100644 addons/spectator/functions/fnc_transitionCamera.sqf create mode 100644 addons/spectator/functions/fnc_ui.sqf create mode 100644 addons/spectator/functions/fnc_ui_fadeList.sqf create mode 100644 addons/spectator/functions/fnc_ui_getTreeDataIndex.sqf create mode 100644 addons/spectator/functions/fnc_ui_handleChildDestroyed.sqf create mode 100644 addons/spectator/functions/fnc_ui_handleKeyDown.sqf create mode 100644 addons/spectator/functions/fnc_ui_handleKeyUp.sqf create mode 100644 addons/spectator/functions/fnc_ui_handleListClick.sqf create mode 100644 addons/spectator/functions/fnc_ui_handleMapClick.sqf create mode 100644 addons/spectator/functions/fnc_ui_handleMapDraw.sqf create mode 100644 addons/spectator/functions/fnc_ui_handleMouseButtonDblClick.sqf create mode 100644 addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf create mode 100644 addons/spectator/functions/fnc_ui_handleMouseMoving.sqf create mode 100644 addons/spectator/functions/fnc_ui_handleMouseZChanged.sqf create mode 100644 addons/spectator/functions/fnc_ui_handleTabSelected.sqf create mode 100644 addons/spectator/functions/fnc_ui_toggleMap.sqf create mode 100644 addons/spectator/functions/fnc_ui_updateListEntities.sqf create mode 100644 addons/spectator/functions/fnc_ui_updateListFocus.sqf create mode 100644 addons/spectator/functions/fnc_ui_updateListLocations.sqf create mode 100644 addons/spectator/functions/fnc_ui_updateWidget.sqf diff --git a/addons/common/XEH_PREP.hpp b/addons/common/XEH_PREP.hpp index b4e5f269862..632409de3fa 100644 --- a/addons/common/XEH_PREP.hpp +++ b/addons/common/XEH_PREP.hpp @@ -76,6 +76,7 @@ PREP(getTurretDirection); PREP(getUavControlPosition); PREP(getVehicleCargo); PREP(getVehicleCodriver); +PREP(getVehicleIcon); PREP(getVersion); PREP(getWeaponAzimuthAndInclination); PREP(getWeaponIndex); diff --git a/addons/common/functions/fnc_getName.sqf b/addons/common/functions/fnc_getName.sqf index 4c49e8dc117..e1d08e09832 100644 --- a/addons/common/functions/fnc_getName.sqf +++ b/addons/common/functions/fnc_getName.sqf @@ -1,11 +1,12 @@ /* - * Author: commy2 + * Author: commy2, SilentSpike * Returns the name of the object. Used to prevent issues with the name command. * * Arguments: * 0: Object * 1: Use effective commander name when used on vehicles (default: false) * 2: Get Raw Name (Don't sanatize HTML tags ``) (default: false) + * 3: Maximum number of characters to return (default: -1) * * Return Value: * Object Name @@ -17,7 +18,7 @@ */ #include "script_component.hpp" -params ["_unit", ["_showEffective", false], ["_useRaw", false]]; +params ["_unit", ["_showEffective", false], ["_useRaw", false], ["_maxChars", -1]]; private _name = ""; @@ -31,4 +32,8 @@ if (_unit isKindOf "CAManBase") then { }; }; -_name +if (_maxChars >= 0) then { + _name select [0, _maxChars] +} else { + _name +}; diff --git a/addons/common/functions/fnc_getVehicleIcon.sqf b/addons/common/functions/fnc_getVehicleIcon.sqf new file mode 100644 index 00000000000..927c0572623 --- /dev/null +++ b/addons/common/functions/fnc_getVehicleIcon.sqf @@ -0,0 +1,50 @@ +/* + * Author: AACO + * Function used to get the vehicle icon for provided object (cached) + * + * Arguments: + * 0: Object to get icon of + * + * Return Value: + * Icon of vehicle + * + * Examples: + * ["B_Soldier_F"] call ace_common_fnc_getVehicleIcon; + * + * Public: Yes + */ + +#include "script_component.hpp" +#define DEFAULT_TEXTURE "\A3\ui_f\data\map\vehicleicons\iconMan_ca.paa" + +params [["_object", objNull, [objNull, ""]]]; + +if ((_object isEqualType objNull && {isNull _object}) || {_object isEqualType "" && {_object == ""}}) exitWith { DEFAULT_TEXTURE }; + +ISNILS(GVAR(vehicleIconCache),call CBA_fnc_createNamespace); + +private _objectType = if (_object isEqualType objNull) then { + typeOf _object +} else { + _object +}; +private _cachedValue = GVAR(vehicleIconCache) getVariable _objectType; + +if (isNil "_cachedValue") then { + private _vehicleValue = getText (configfile >> "CfgVehicles" >> _objectType >> "icon"); + private _vehicleIconValue = getText (configfile >> "CfgVehicleIcons" >> _vehicleValue); + + if (_vehicleIconValue == "") then { + if (_vehicleValue != "" && {((toLower _vehicleValue) find ".paa") > -1}) then { + _cachedValue = _vehicleValue; + } else { + _cachedValue = DEFAULT_TEXTURE; + }; + } else { + _cachedValue = _vehicleIconValue; + }; + + GVAR(vehicleIconCache) setVariable [_objectType, _cachedValue]; +}; + +_cachedValue diff --git a/addons/spectator/CfgVehicles.hpp b/addons/spectator/CfgVehicles.hpp index 268aabbef5e..120222a3da3 100644 --- a/addons/spectator/CfgVehicles.hpp +++ b/addons/spectator/CfgVehicles.hpp @@ -114,4 +114,16 @@ class CfgVehicles { description = CSTRING(Settings_Description); }; }; + class VirtualMan_F; + class GVAR(vitrual): VirtualMan_F { + author = ECSTRING(common,ACETeam); + scope = 1; + scopeArsenal = 0; + scopeCurator = 0; + + weapons[] = {}; + + delete ACE_Actions; + delete ACE_SelfActions; + }; }; diff --git a/addons/spectator/UI/interface.hpp b/addons/spectator/UI/interface.hpp index 8c566844eee..7ecc469df1a 100644 --- a/addons/spectator/UI/interface.hpp +++ b/addons/spectator/UI/interface.hpp @@ -1,255 +1,455 @@ -// Temporary fix until BI take care of it -class RscFrame { - x = 0; - y = 0; - w = 0; - h = 0; -}; - - +// TODO: Move this to root, move icon to /data +class RscActiveText; +class RscButton; class RscButtonMenu; +class RscCombo; +class RscControlsGroup; class RscControlsGroupNoScrollbars; -//class RscFrame; class RscListBox; +class RscListNBox { + class ScrollBar; +}; class RscMapControl; class RscPicture; +class RscPictureKeepAspect; +class RscStructuredText; class RscText; +class RscToolbox; class RscTree; -class GVAR(interface) { - idd = 12249; +// Based on RscDisplayEGSpectator (sadly Arma doesn't like display inheritance) +class GVAR(display) { + idd = IDD_SPEC_DISPLAY; enableSimulation = 1; movingEnable = 0; - onLoad = QUOTE([ARR_2('onLoad',_this)] call FUNC(handleInterface)); - onUnload = QUOTE([ARR_2('onUnload',_this)] call FUNC(handleInterface)); - onKeyDown = QUOTE([ARR_2('onKeyDown',_this)] call FUNC(handleInterface)); - onKeyUp = QUOTE([ARR_2('onKeyUp',_this)] call FUNC(handleInterface)); - class controlsBackground { - class mouseHandler: RscControlsGroupNoScrollbars { - x = safeZoneXAbs; - y = safeZoneY; - w = safeZoneWAbs; - h = safeZoneH; - onMouseButtonDown = QUOTE([ARR_2('onMouseButtonDown',_this)] call FUNC(handleInterface)); - onMouseButtonUp = QUOTE([ARR_2('onMouseButtonUp',_this)] call FUNC(handleInterface)); - onMouseZChanged = QUOTE([ARR_2('onMouseZChanged',_this)] call FUNC(handleInterface)); - onMouseMoving = QUOTE([ARR_2('onMouseMoving',_this)] call FUNC(handleInterface)); - onMouseHolding = QUOTE([ARR_2('onMouseMoving',_this)] call FUNC(handleInterface)); + closeOnMissionEnd = 1; + + onKeyDown = QUOTE(_this call FUNC(ui_handleKeyDown)); + onKeyUp = QUOTE(_this call FUNC(ui_handleKeyUp)); // TODO: Check whether key up is necessary + onMouseMoving = QUOTE(_this call FUNC(ui_handleMouseMoving)); + onChildDestroyed = QUOTE(_this call FUNC(ui_handleChildDestroyed)); + + class ControlsBackground { + class MouseHandler: RscText { + idc = IDC_MOUSE; + + onMouseButtonDown = QUOTE(_this call FUNC(ui_handleMouseButtonDown)); + onMouseButtonUp = QUOTE(if ((_this select 1) == 1) then { GVAR(holdingRMB) = false; };); + onMouseButtonDblClick = QUOTE(_this call FUNC(ui_handleMouseButtonDblClick)); + onMouseZChanged = QUOTE(_this call FUNC(ui_handleMouseZChanged)); + + text = ""; + x = "safeZoneXAbs"; + y = "safeZoneY"; + w = "safeZoneWAbs"; + h = "safeZoneH"; + colorBackground[] = {1,1,1,0}; + style = 16; }; }; - class controls { - class compass: RscControlsGroupNoScrollbars { - idc = IDC_COMP; - x = COMPASS_X; - y = safeZoneY; - w = COMPASS_W; - h = TOOL_H; + class Controls { + class List: RscTree { + idc = IDC_LIST; + + onMouseEnter = QUOTE([false] call FUNC(ui_fadeList)); + onMouseExit = QUOTE([true] call FUNC(ui_fadeList)); + onTreeSelChanged = QUOTE([false,_this] call FUNC(ui_handleListClick)); + onTreeDblClick = QUOTE([true,_this] call FUNC(ui_handleListClick)); + + x = "safeZoneX"; + y = "safezoneY + 0.06"; + w = W_PART(13.5); + h = "safezoneH"; + + multiselectEnabled = 0; + colorBorder[] = {0,0,0,0}; + colorBackground[] = {0,0,0,0.75}; + expandOnDoubleclick = 1; + fade = 0.8; + shadow = 1; + colorLines[] = {0,0,0,0}; + class ScrollBar { + width = 0; + height = 0; + scrollSpeed = 0.1; + color[] = {1,1,1,0}; + }; + }; + class Tabs: RscToolbox { + idc = IDC_TABS; + + onToolBoxSelChanged = QUOTE(_this call FUNC(ui_handleTabSelected)); + onMouseEnter = QUOTE([false] call FUNC(ui_fadeList)); + onMouseExit = QUOTE([true] call FUNC(ui_fadeList)); + + x = "safeZoneX"; + y = "safezoneY"; + w = W_PART(13.5); + h = H_PART(1.5); + + fade = 0.8; + rows = 1; + columns = 2; + strings[] = {"$STR_A3_Spectator_Entities","$STR_A3_Spectator_Locations"}; + values[] = {0,1}; + sizeEx = H_PART(1.0); + colorBackground[] = {0,0,0,0.75}; + colorSelectedBg[] = {0,0,0,0.65}; + }; + class CameraTypesGroup: RscControlsGroupNoScrollbars { + idc = IDC_CAM_TYPES; + x = X_PART(15.5); + y = safezoneY + safezoneH - H_PART(2.38); + w = W_PART(8.6); + h = 2.6; class controls { - class compassBack: RscText { - x = 0; - y = 0; - w = COMPASS_W; - h = TOOL_H; - colorBackground[] = {COL_BACK}; + class CameraTypesBackground: RscText { + x = W_PART(0.6); + y = H_PART(0.4); + w = W_PART(7.5); + h = H_PART(2); + colorBackground[] = {0,0,0,0.75}; }; - class compass0_90: RscPicture { - idc = IDC_COMP_0; - x = COMPASS_W * 0.5; - y = 0; - w = COMPASS_W * 0.5; - h = TOOL_H; - text = "A3\UI_F_Curator\Data\CfgIngameUI\compass\texture180_ca.paa"; + class Free: RscButton { + style = 48; + idc = IDC_FREE; + + onButtonClick = QUOTE([MODE_FREE] call FUNC(cam_setCameraMode)); + + x = W_PART(1.3); + y = H_PART(0.8); + w = W_PART(1.63); + h = H_PART(1.37); + + colorBackground[] = {0,0,0,0}; + colorBackgroundDisabled[] = {0,0,0,0}; + colorBackgroundActive[] = {0,0,0,0}; + colorFocused[] = {0,0,0,0}; + text = CAM_ICON_FREE; + tooltip = "$STR_A3_Spectator_free_camera_tooltip"; }; - class compass90_180: compass0_90 { - idc = IDC_COMP_90; - x = COMPASS_W; - text = "A3\UI_F_Curator\Data\CfgIngameUI\compass\texture270_ca.paa"; + class Follow: RscButton { + style = 48; + idc = IDC_FOLLOW; + + onButtonClick = QUOTE([MODE_FOLLOW] call FUNC(cam_setCameraMode)); + + x = W_PART(3.6); + y = H_PART(0.8); + w = W_PART(1.63); + h = H_PART(1.37); + + colorBackground[] = {0,0,0,0}; + colorBackgroundDisabled[] = {0,0,0,0}; + colorBackgroundActive[] = {0,0,0,0}; + colorFocused[] = {0,0,0,0}; + text = CAM_ICON_FOLLOW; + tooltip = "$STR_A3_Spectator_3pp_camera_tooltip"; + }; + class Fps: RscButton { + style = 48; + idc = IDC_FPS; + + onButtonClick = QUOTE([MODE_FPS] call FUNC(cam_setCameraMode)); + + x = W_PART(5.8); + y = H_PART(0.8); + w = W_PART(1.63); + h = H_PART(1.37); + + colorBackground[] = {0,0,0,0}; + colorBackgroundDisabled[] = {0,0,0,0}; + colorBackgroundActive[] = {0,0,0,0}; + colorFocused[] = {0,0,0,0}; + text = CAM_ICON_FPS; + tooltip = "$STR_A3_Spectator_1pp_camera_tooltip"; + }; - class compass180_270: compass0_90 { - idc = IDC_COMP_180; + }; + }; + class MapGroup: RscControlsGroupNoScrollbars { + idc = IDC_MAP_GROUP; + x = 0; + y = 0.1; + w = 1; + h = 0.8; + class controls { + class MapHeader: RscText { x = 0; - text = "A3\UI_F_Curator\Data\CfgIngameUI\compass\texture0_ca.paa"; + y = 0; + w = 1; + h = 0.05; + colorBackground[] = {0,0,0,0.75}; }; - class compass270_0: compass0_90 { - idc = IDC_COMP_270; - x = COMPASS_W * -0.5; - text = "A3\UI_F_Curator\Data\CfgIngameUI\compass\texture90_ca.paa"; + class MapFooter: RscText { + idc = IDC_MAP_FOOTER; + x = 0; + y = 0.75; + w = 1; + h = 0.05; + text = ""; + style = 2; + colorBackground[] = {0,0,0,0.75}; + sizeEx = H_PART(1.0); }; - class compassCaret: RscFrame { - x = COMPASS_W * 0.5; - y = 0; - w = 0; - h = TOOL_H; - colorText[] = {COL_FORE}; + class GameTimeText: RscText { + idc = IDC_TIME; + x = 0.01; + y = 0.76; + w = 0.29; + h = 0.03; + text = "00:00:00"; + sizeEx = H_PART(1.0); }; - class compassFrame: compassBack { - style = 64; - shadow=2; - colorText[] = {COL_FORE}; + class MapTitle: RscText { + idc = IDC_MAP_TITLE; + x = 0.01; + y = 0.01; + w = 0.69; + h = 0.03; + text = ""; + colorText[] = {1,1,1,1}; + sizeEx = H_PART(1); + }; + class SpectatorsCount: RscText { + idc = IDC_MAP_SPEC_NUM; + x = 0.97; + y = 0.01; + w = 0.03; + h = 0.03; + text = ""; + colorText[] = {1,1,1,1}; + sizeEx = H_PART(1); + }; + class SpectatorsIcon: RscPictureKeepAspect { + x = 0.94; + y = 0.01; + w = 0.03; + h = 0.03; + text = CAM_ICON_FPS_SELECTED; }; }; }; - class toolbar: RscControlsGroupNoScrollbars { - idc = IDC_TOOL; - x = safeZoneX; - y = safeZoneY + safeZoneH - TOOL_H; - w = safeZoneW; - h = TOOL_H; + class Map: RscMapControl { + idc = IDC_MAP; + + onDraw = QUOTE(_this call FUNC(ui_handleMapDraw)); + onMouseButtonClick = QUOTE(_this call FUNC(ui_handleMapClick)); + + x = 0; + y = 0.15; + w = 1; + h = 0.7; + + maxSatelliteAlpha = 0.75; + colorBackground[] = {1,1,1,1}; + }; + class HelpBackground: RscText { + idc = IDC_HELP_BACK; + x = X_PART(37); + y = Y_PART(23); + w = W_PART(12); + h = H_PART(8); + colorBackground[] = {0,0,0,0.75}; + }; + class Help: RscListNBox { + class ListScrollBar: ScrollBar {}; + disableOverflow = 0; + rowHeight = H_PART(1); + idc = IDC_HELP; + x = X_PART(37.0); + y = Y_PART(23.0); + w = W_PART(12.0); + h = H_PART(12.0); + }; + class FocusInfo: RscControlsGroupNoScrollbars { + idc = IDC_WIDGET; + x = X_PART(12.1); + y = Y_PART(24); + w = W_PART(16); + h = H_PART(3.5); class controls { - class nameTool: RscText { - idc = IDC_TOOL_NAME; - style = 2; - x = 0; + class UpperBackground: RscText { + x = W_PART(3.5); y = 0; - w = TOOL_W * 2; - h = TOOL_H; - shadow = 2; - colorText[]={COL_FORE}; - colorBackground[] = {COL_BACK}; - sizeEx = H_PART(1); + w = W_PART(12.4); + h = H_PART(1.4); + colorBackground[] = {0,0,0,0.75}; }; - class nameFrame: nameTool { - idc = -1; - style = 64; + class LowerLeftBackground: RscText { + idc = CTRL_WIDGET_WEAPON_BACK; + x = W_PART(9.8); + y = H_PART(1.5); + w = W_PART(6.1); + h = H_PART(2); + colorBackground[] = {1,1,1,0.4}; }; - class viewTool: nameTool { - idc = IDC_TOOL_VIEW; - x = TOOL_W * 2 + MARGIN; - w = TOOL_W; + class LowerRightBackground: RscText { + x = W_PART(3.5); + y = H_PART(1.5); + w = W_PART(6.2); + h = H_PART(2); + colorBackground[] = {0,0,0,0.75}; }; - class viewFrame: viewTool { - idc = -1; - style = 64; + class AvatarBackground: RscText { + x = W_PART(-0.2); + y = 0; + w = W_PART(3.6); + h = H_PART(3.5); + colorBackground[] = {0,0,0,0.75}; }; - class visionTool: viewTool { - idc = IDC_TOOL_VISION; - x = TOOL_W * 3 + MARGIN * 2; + class VehicleType: RscPicture { + idc = IDC_WIDGET_VEHICLE; + text = "\A3\ui_f\data\map\vehicleicons\iconMan_ca.paa"; + x = W_PART(13.5); + y = H_PART(0.3); + w = W_PART(2.1); + h = H_PART(1); }; - class visionFrame: visionTool { - idc = -1; - style = 64; + class UnitType: RscPictureKeepAspect { + idc = IDC_WIDGET_UNIT; + text = "\A3\ui_f\data\map\vehicleicons\iconMan_ca.paa"; + x = W_PART(14.6); + y = H_PART(0.3); + w = W_PART(1); + h = H_PART(1); }; - class clockTool: viewTool { - idc = IDC_TOOL_CLOCK; - x = safeZoneW - TOOL_W * 3 - MARGIN * 2; + class Name: RscText { + shadow = 0; + idc = IDC_WIDGET_NAME; + text = ""; + x = W_PART(3.6); + y = 0; + w = W_PART(9.9); + h = H_PART(1.4); + sizeEx = H_PART(1); }; - class clockFrame: clockTool { - idc = -1; - style = 64; + class Avatar: RscPictureKeepAspect { + idc = IDC_WIDGET_AVATAR; + text = "a3\Ui_f\data\GUI\Cfg\UnitInsignia\bi_ca.paa"; + x = 0; + y = H_PART(0.3); + w = W_PART(3.2); + h = H_PART(2.9); }; - class zoomTool: viewTool { - idc = IDC_TOOL_FOV; - x = safeZoneW - TOOL_W * 2 - MARGIN; + class Kills: RscPictureKeepAspect { + text = "a3\Ui_f\data\IGUI\Cfg\MPTable\infantry_ca.paa"; + x = W_PART(3.6); + y = H_PART(1.6); + w = W_PART(0.8); + h = H_PART(0.8); }; - class zoomFrame: zoomTool { - idc = -1; - style = 64; + class LandKills: RscPictureKeepAspect { + text = "a3\Ui_f\data\IGUI\Cfg\MPTable\soft_ca.paa"; + x = W_PART(4.64); + y = H_PART(1.6); + w = W_PART(0.8); + h = H_PART(0.8); }; - class speedTool: viewTool { - idc = IDC_TOOL_SPEED; - x = safeZoneW - TOOL_W; + class ArmoredKills: RscPictureKeepAspect { + text = "a3\Ui_f\data\IGUI\Cfg\MPTable\armored_ca.paa"; + x = W_PART(5.76); + y = H_PART(1.6); + w = W_PART(0.8); + h = H_PART(0.8); }; - class speedFrame: speedTool { - idc = -1; - style = 64; + class AirKills: RscPictureKeepAspect { + text = "a3\Ui_f\data\IGUI\Cfg\MPTable\air_ca.paa"; + x = W_PART(6.9); + y = H_PART(1.6); + w = W_PART(0.8); + h = H_PART(0.8); }; - }; - }; - class unitWindow: RscControlsGroupNoScrollbars { - idc = IDC_UNIT; - x = safeZoneX; - y = safeZoneY + TOOL_H * 6; - w = TOOL_W * 2; - h = safeZoneH - TOOL_H * 13; - class controls { - class unitTitle: RscText { - x = 0; - y = 0; - w = TOOL_W * 2; - h = H_PART(1); + class Deaths: RscPictureKeepAspect { + text = "a3\Ui_f\data\IGUI\Cfg\MPTable\killed_ca.paa"; + x = W_PART(7.92); + y = H_PART(1.6); + w = W_PART(0.8); + h = H_PART(0.8); + }; + class Total: RscPictureKeepAspect { + text = "a3\Ui_f\data\IGUI\Cfg\MPTable\total_ca.paa"; + x = W_PART(8.86); + y = H_PART(1.6); + w = W_PART(0.8); + h = H_PART(0.8); + }; + class Kills_Count: RscText { style = 2; - colorText[] = {COL_FORE}; - colorBackground[] = {COL_FORE_D}; - sizeEx = H_PART(1); - text = CSTRING(UnitTitle); + shadow = 0; + idc = IDC_WIDGET_KILLS; + text = ""; + x = W_PART(3.6); + y = H_PART(2.5); + w = W_PART(0.9); + h = H_PART(0.9); + sizeEx = H_PART(0.7); }; - class unitTree: RscTree { - idc = IDC_UNIT_TREE; - x = 0; - y = H_PART(1); - w = TOOL_W * 2; - h = safeZoneH - TOOL_H * 14; - sizeEx = H_PART(0.8); - colorText[] = {COL_FORE}; - colorBorder[] = {0,0,0,0}; - colorBackground[] = {COL_BACK}; - colorSelect[] = { - "profilenamespace getVariable ['GUI_BCG_RGB_R',0.77]", - "profilenamespace getVariable ['GUI_BCG_RGB_G',0.51]", - "profilenamespace getVariable ['GUI_BCG_RGB_B',0.08]", - 1 - }; - multiselectEnabled = 0; - disableKeyboardSearch = 1; - onTreeDblClick = QUOTE([ARR_2('onTreeDblClick',_this)] call FUNC(handleInterface)); - }; - class unitFrame: RscFrame { - x = 0; - y = 0; - w = TOOL_W * 2; - h = safeZoneH - TOOL_H * 13; - shadow = 2; - colorText[] = {COL_FORE}; + class LandKills_Count: RscText { + style = 2; + shadow = 0; + idc = IDC_WIDGET_LAND; + text = ""; + x = W_PART(4.6); + y = H_PART(2.5); + w = W_PART(0.8); + h = H_PART(0.9); + sizeEx = H_PART(0.7); }; - }; - }; - class helpWindow: RscControlsGroupNoScrollbars { - idc = IDC_HELP; - x = safeZoneX + safeZoneW - TOOL_W * 2; - y = safeZoneY + TOOL_H * 6; - w = TOOL_W * 2; - h = safeZoneH - TOOL_H * 13; - class controls { - class helpTitle: RscText { - x = 0; - y = 0; - w = TOOL_W * 2; - h = H_PART(1); + class ArmoredKills_Count: RscText { style = 2; - colorText[] = {COL_FORE}; - colorBackground[] = {COL_FORE_D}; - sizeEx = H_PART(1); - text = CSTRING(HelpTitle); + shadow = 0; + idc = IDC_WIDGET_ARMORED; + text = ""; + x = W_PART(5.7); + y = H_PART(2.5); + w = W_PART(0.8); + h = H_PART(0.9); + sizeEx = H_PART(0.7); }; - class helpContent: RscListBox { - idc = IDC_HELP_LIST; - x = 0; - y = H_PART(1); - w = TOOL_W * 2; - h = safeZoneH - TOOL_H * 14; - colorBackground[] = {COL_BACK}; - sizeEx = H_PART(0.8); - default = 1; - }; - class helpFrame: RscFrame { - x = 0; - y = 0; - w = TOOL_W * 2; - h = safeZoneH - TOOL_H * 13; - shadow = 2; - colorText[] = {COL_FORE}; + class AirKills_Count: RscText { + style = 2; + shadow = 0; + idc = IDC_WIDGET_AIR; + text = ""; + x = W_PART(6.8); + y = H_PART(2.5); + w = W_PART(0.8); + h = H_PART(0.9); + sizeEx = H_PART(0.7); + }; + class Deaths_Count: RscText { + style = 2; + shadow = 0; + idc = IDC_WIDGET_DEATHS; + text = ""; + x = W_PART(7.9); + y = H_PART(2.5); + w = W_PART(0.8); + h = H_PART(0.9); + sizeEx = H_PART(0.7); + }; + class Total_Count: RscText { + style = 2; + shadow = 0; + idc = IDC_WIDGET_TOTAL; + text = ""; + x = W_PART(8.8); + y = H_PART(2.5); + w = W_PART(0.8); + h = H_PART(0.9); + sizeEx = H_PART(0.7); + }; + class WeaponPicture: RscPictureKeepAspect { + idc = IDC_WIDGET_WEAPON; + text = "A3\weapons_F\Rifles\MX\data\UI\gear_mx_rifle_X_CA.paa"; + x = W_PART(9.9); + y = H_PART(1.6); + w = W_PART(5.9); + h = H_PART(1.8); }; }; }; - class mapOverlay: RscMapControl { - idc = IDC_MAP; - type = 100; - x = safeZoneX; - y = safeZoneY; - w = safeZoneW; - h = safeZoneH; - onMouseButtonDown = QUOTE([ARR_2('onMapClick',_this)] call FUNC(handleInterface)); - onDraw = QUOTE(_this call FUNC(handleMap)); - }; }; }; + diff --git a/addons/spectator/XEH_PREP.hpp b/addons/spectator/XEH_PREP.hpp index cc29fde6110..6362102c455 100644 --- a/addons/spectator/XEH_PREP.hpp +++ b/addons/spectator/XEH_PREP.hpp @@ -1,23 +1,43 @@ +// Camera functions +PREP(cam); +PREP(cam_draw3D); +PREP(cam_prepareTarget); +PREP(cam_resetTarget); +PREP(cam_setCameraMode); +PREP(cam_setTarget); +PREP(cam_setVisionMode); +PREP(cam_toggleVeryFast); +PREP(cam_updateThingsToDraw); -PREP(cacheUnitInfo); -PREP(cycleCamera); -PREP(handleCamera); -PREP(handleCompass); -PREP(handleIcons); -PREP(handleInterface); -PREP(handleMap); -PREP(handleMouse); -PREP(handleToolbar); -PREP(handleUnits); +// UI functions +PREP(ui); +PREP(ui_fadeList); +PREP(ui_getTreeDataIndex); +PREP(ui_handleChildDestroyed); +PREP(ui_handleKeyDown); +PREP(ui_handleKeyUp); +PREP(ui_handleListClick); +PREP(ui_handleMapClick); +PREP(ui_handleMapDraw); +PREP(ui_handleMouseButtonDblClick); +PREP(ui_handleMouseButtonDown); +PREP(ui_handleMouseMoving); +PREP(ui_handleMouseZChanged); +PREP(ui_handleTabSelected); +PREP(ui_toggleMap); +PREP(ui_updateListEntities); +PREP(ui_updateListFocus); +PREP(ui_updateListLocations); +PREP(ui_updateWidget); + +// Misc/Public functions +PREP(getTargetEntities); +PREP(getTargetGroups); PREP(interrupt); PREP(moduleSpectatorSettings); PREP(respawnTemplate); -PREP(setCameraAttributes); PREP(setSpectator); PREP(stageSpectator); -PREP(transitionCamera); -PREP(toggleInterface); PREP(updateCameraModes); PREP(updateSpectatableSides); -PREP(updateUnits); PREP(updateVisionModes); diff --git a/addons/spectator/XEH_postInit.sqf b/addons/spectator/XEH_postInit.sqf index 72c53a2af03..aeb49579cfb 100644 --- a/addons/spectator/XEH_postInit.sqf +++ b/addons/spectator/XEH_postInit.sqf @@ -1,8 +1,7 @@ #include "script_component.hpp" -//#include "initKeybinds.sqf"; // Add interaction menu exception -["isNotSpectating", {!(GETVAR((_this select 0),GVAR(isStaged),false))}] call EFUNC(common,addCanInteractWithCondition); +["isNotSpectating", {!(GVAR(isSet))}] call EFUNC(common,addCanInteractWithCondition); ["ace_settingsInitialized", { GVAR(availableModes) = [[0,1,2], [1,2], [0], [1], [2]] select GVAR(restrictModes); @@ -15,17 +14,4 @@ if (isServer) then { publicVariable QGVAR(channel); }; -// Should prevent unending spectator on mission end -if (isServer) then { - addMissionEventHandler ["Ended", { - [QGVAR(endMission), []] call CBA_fnc_globalEvent; - }]; -}; - -[QGVAR(endMission), { - if (GVAR(isSet)) then { - [false] call FUNC(setSpectator); - }; -}] call CBA_fnc_addEventHandler; - [QGVAR(stageSpectator), FUNC(stageSpectator)] call CBA_fnc_addEventHandler; diff --git a/addons/spectator/XEH_preInit.sqf b/addons/spectator/XEH_preInit.sqf index 4bdf07b3a12..c2ff32b7a14 100644 --- a/addons/spectator/XEH_preInit.sqf +++ b/addons/spectator/XEH_preInit.sqf @@ -6,39 +6,15 @@ PREP_RECOMPILE_START; #include "XEH_PREP.hpp" PREP_RECOMPILE_END; -// Reset the stored display -SETUVAR(GVAR(interface),displayNull); - -// Permanent variables -GVAR(availableModes) = [0,1,2]; +// Used by public functions +GVAR(availableModes) = [MODE_FREE, MODE_FPS, MODE_FOLLOW]; GVAR(availableSides) = [west,east,resistance,civilian]; GVAR(availableVisions) = [-2,-1,0,1]; - -GVAR(camAgent) = objNull; -GVAR(camDistance) = 10; -GVAR(camMode) = 0; -GVAR(camPan) = 0; -GVAR(camPos) = ATLtoASL [worldSize * 0.5, worldSize * 0.5, 20]; -GVAR(camSpeed) = 1.5; -GVAR(camTilt) = -10; -GVAR(camUnit) = objNull; -GVAR(camVision) = -2; -GVAR(camZoom) = 1.25; - GVAR(interrupts) = []; -GVAR(isSet) = false; - -GVAR(showComp) = true; -GVAR(showHelp) = true; -GVAR(showIcons) = true; -GVAR(showInterface) = true; -GVAR(showMap) = false; -GVAR(showTool) = true; -GVAR(showUnit) = true; - -GVAR(unitList) = []; GVAR(unitBlacklist) = []; GVAR(unitWhitelist) = []; -GVAR(groupList) = []; + +// Tracks whether spectator is active +GVAR(isSet) = false; ADDON = true; diff --git a/addons/spectator/functions/fnc_cacheUnitInfo.sqf b/addons/spectator/functions/fnc_cacheUnitInfo.sqf deleted file mode 100644 index 9f406517481..00000000000 --- a/addons/spectator/functions/fnc_cacheUnitInfo.sqf +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Author: SilentSpike - * Caches the units information for quick retrevial in spectator interface PFHs - * - * Arguments: - * 0: Unit to have info cached for - * - * Return Value: - * None - * - * Example: - * [vehicle player] call ace_spectator_fnc_cacheUnitInfo - * - * Public: No - */ - -#include "script_component.hpp" - -params ["_unit"]; -private ["_color","_icon","_name"]; - -// Group info only needs to be cached once (groups can't change) -if (isNil { GETVAR((group _unit),GVAR(gColor),nil) }) then { - _color = [side group _unit] call BIS_fnc_sideColor; - SETVAR((group _unit),GVAR(gColor),_color); -}; - -// Unit info should be updated each time -_icon = getText (configFile >> "CfgVehicles" >> typeOf _unit >> "Icon"); -_name = [_unit,false] call EFUNC(common,getName); - -// Handle CfgVehicleIcons -if (isText (configFile >> "CfgVehicleIcons" >> _icon)) then { - _icon = getText (configFile >> "CfgVehicleIcons" >> _icon); -}; - -SETVAR(_unit,GVAR(uIcon),_icon); -SETVAR(_unit,GVAR(uName),_name); diff --git a/addons/spectator/functions/fnc_cam.sqf b/addons/spectator/functions/fnc_cam.sqf new file mode 100644 index 00000000000..e281c9c1a3f --- /dev/null +++ b/addons/spectator/functions/fnc_cam.sqf @@ -0,0 +1,118 @@ +/* + * Author: Nelson Duarte, SilentSpike + * Handles camera initialisation and destruction + * + * Public: No + */ + +#include "script_component.hpp" + +params ["_init"]; + +// Note that init and destroy intentionally happen in reverse order +// Init: Vars > Camera > Camera Stuff +// Destroy: Camera Stuff > Camera > Vars +if (_init) then { + // Start tracking camera attributes if not pre-set by public function + ISNILS(GVAR(camMode),MODE_FREE); + ISNILS(GVAR(camVision),VISION_NORM); + ISNILS(GVAR(camTarget),objNull); + + // Ticking related + GVAR(camDeltaTime) = 0; + GVAR(camLastTickTime) = 0; + GVAR(camHasTarget) = false; + GVAR(camTargetInVehicle) = false; + + // Drawing related + GVAR(drawProjectiles) = false; + GVAR(drawUnits) = true; + GVAR(grenades) = []; + GVAR(projectiles) = []; + GVAR(thingsToDraw) = []; + + // Follow camera related + GVAR(camDistance) = 0; + GVAR(camYaw) = 0; + GVAR(camPitch) = 0; + + // Toggles + GVAR(camFast) = false; + GVAR(camLights) = []; + GVAR(camLight) = false; + + // Create the camera + private _camera = "CamCurator" camCreate eyePos player; + + if (isNull _camera) exitWith { ERROR("Camera wasn't created successfully"); }; + + // Switch to the camera and set its attributes + _camera cameraEffect ["internal", "back"]; + _camera setPosASL eyePos player; + _camera setDir getDirVisual player; + _camera camCommand "maxPitch 89"; + _camera camCommand "minPitch -89"; + _camera camCommand format ["speedDefault %1", SPEED_DEFAULT]; + _camera camCommand format ["speedMax %1", SPEED_FAST]; + _camera camCommand "ceilingHeight 5000"; + cameraEffectEnableHUD true; + + // If camera followed terrain it would be annoying to track units, etc. + _camera camCommand "atl off"; + + // If camera didn't move slower closer to the ground it would be jarring + _camera camCommand "surfaceSpeed on"; + + // Store camera + GVAR(camera) = _camera; + + // Create dummy target used for follow camera + // TODO: Check if a camera object works here + GVAR(camDummy) = "Land_HelipadEmpty_F" createVehicleLocal getPosASLVisual GVAR(camTarget); + + // Start ticking + GVAR(camPFH) = [LINKFUNC(cam_updateThingsToDraw), 0.2] call CBA_fnc_addPerFrameHandler; + GVAR(draw3D) = addMissionEventHandler ["Draw3D", {call FUNC(cam_draw3D)}]; +} else { + // Stop ticking + removeMissionEventHandler ["Draw3D", GVAR(draw3D)]; + GVAR(draw3D) = nil; + + // Stop updating things to draw + [GVAR(camPFH)] call CBA_fnc_removePerFrameHandler; + GVAR(camPFH) = nil; + + // Return to player view + if !(isNull GVAR(camera)) then { + GVAR(camera) cameraEffect ["terminate", "back"]; + deleteVehicle GVAR(camera); + }; + player switchCamera "internal"; + + // Remove camera variable + GVAR(camera) = nil; + + // Destroy dummy target + deleteVehicle (GVAR(camDummy)); + GVAR(camDummy) = nil; + + // Stop tracking everything + GVAR(camMode) = nil; + GVAR(camVision) = nil; + GVAR(camTarget) = nil; + GVAR(camDeltaTime) = nil; + GVAR(camLastTickTime) = nil; + GVAR(camHasTarget) = nil; + GVAR(camTargetInVehicle) = nil; + GVAR(drawProjectiles) = nil; + GVAR(drawUnits) = nil; + GVAR(grenades) = nil; + GVAR(projectiles) = nil; + GVAR(thingsToDraw) = nil; + GVAR(camDistance) = nil; + GVAR(camYaw) = nil; + GVAR(camPitch) = nil; + GVAR(camFast) = nil; + GVAR(camLights) = nil; + GVAR(camLight) = nil; +}; diff --git a/addons/spectator/functions/fnc_cam_draw3D.sqf b/addons/spectator/functions/fnc_cam_draw3D.sqf new file mode 100644 index 00000000000..8d6abd3f3fc --- /dev/null +++ b/addons/spectator/functions/fnc_cam_draw3D.sqf @@ -0,0 +1,187 @@ +/* + * Author: Nelson Duarte, AACO, SilentSpike + * Function used to draw the 3D icons/do per-frame calculations + * + * Public: No + */ + +#include "script_component.hpp" +#define HEIGHT_OFFSET 1.5 +#define GRENADE_ICON "A3\Ui_f\data\IGUI\Cfg\HoldActions\holdAction_connect_ca.paa" +#define ICON_BACKGROUND_UNIT "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\UnitName_ca.paa" + +private _camera = GVAR(camera); +private _camTarget = GVAR(camTarget); + +BEGIN_COUNTER(updateCursor); +private _cursorObject = objNull; + +private _intersections = [getMousePosition select 0, getMousePosition select 1, _camTarget, vehicle _camTarget] call BIS_fnc_getIntersectionsUnderCursor; + +if !(_intersections isEqualTo []) then { + _cursorObject = (_intersections select 0) select 3; +}; + +if !(_cursorObject isKindOf "Man") then { + if ((crew _cursorObject) isEqualTo []) then { + _cursorObject = objNull; + }; +}; + +GVAR(cursorObject) = _cursorObject; +END_COUNTER(updateCursor); + +BEGIN_COUNTER(camTick); +if !(isNull _camera) then { + private _cameraMode = GVAR(camMode); + private _focus = _camTarget; + + // UI mouse handler makes use of delta time between camera ticks + private _currentTime = diag_tickTime; + GVAR(camDeltaTime) = _currentTime - GVAR(camLastTickTime); + GVAR(camLastTickTime) = _currentTime; + + // Unit camera modes + if (_cameraMode in [MODE_FPS, MODE_FOLLOW]) then { + // If no focus in these modes find a new one + if (isNull _focus) then { + _focus = ["FindFocus"] call FUNC(display); + }; + + // If new focus was found then switch to it + if !(isNull _focus && {_focus != _camTarget}) then { + ["SetFocus", [_focus]] call FUNC(display); + }; + + if (!isNull _focus && {_cameraMode == MODE_FOLLOW}) then { + [_focus] call FUNC(cam_prepareTarget); + }; + }; + + // Focus get in / out of vehicle state + if !(isNull _focus) then { + private _targetInVeh = GVAR(camTargetInVehicle); + + if (GVAR(camHasTarget)) then { + if (!_targetInVeh && { vehicle _focus != _focus }) then { + [_focus] call FUNC(cam_setTarget); + GVAR(camTargetInVehicle) = true; + }; + + if (_targetInVeh && { vehicle _focus == _focus }) then { + [_focus] call FUNC(cam_setTarget); + GVAR(camTargetInVehicle) = false; + }; + }; + } else { + GVAR(camTargetInVehicle) = false; + }; + + // Camera lights + if (count GVAR(camLights) > 1) then { + (GVAR(camLights) select 1) setPosASL (AGLToASL (screenToWorld getMousePosition)); + }; +}; +END_COUNTER(camTick); + +if !(GVAR(uiMapVisible)) then { + if (GVAR(drawUnits)) then { + BEGIN_COUNTER(drawTags); + // Groups and Units + { + _x params ["_unit", "_type", "_icon"]; + private _position = (_unit modelToWorldVisual (_unit selectionPosition "Head")) vectorAdd [0,0,HEIGHT_OFFSET]; + + if (_type == 2 && { _unit distance _camera < DISTANCE_NAMES } && {_unit in _camTarget || _unit in _cursorObject}) then { + drawIcon3D [ + ICON_BACKGROUND_UNIT, + [0, 0, 0, if (_unit in _camTarget) then { 0.8 } else { 0.4 }], + _position, + 5.0, + 4, + 0.0, + "", + 0, + 0.035, + "PuristaMedium", + "center" + ]; + }; + + // Apply modifiers + if (_type == 1 && { time <= GETVAR(_unit,GVAR(highlightTime),0) }) then { + _icon set [1, [1,1,1, ((_icon select 1) select 3)]]; + }; + _icon set [2, _position]; + + // Draw icon + drawIcon3D _icon; + + nil // Speed loop + } count GVAR(thingsToDraw); + END_COUNTER(drawTags); + }; + + // Draw projectiles and grenades paths + if (GVAR(drawProjectiles)) then { + BEGIN_COUNTER(drawTracers); + private _projectilesNew = []; + private _grenadesNew = []; + + // Draw projectiles if there are any + { + _x params [ + ["_projectile", objNull, [objNull]], + ["_segments", [], [[]]] + ]; + + if !(isNull _projectile) then { + private _newestIndex = _segments pushBack [ + getPosVisual _projectile, + (vectorMagnitude velocity _projectile) call { + if (_this < 250) exitWith { [0,0,1,1] }; + if (_this < 250) exitWith { [0,1,0,1] }; + [1,0,0,1] + } + ]; + + if (_newestIndex > MAX_TRACKED_PROJECTILE_SEGMENTS) then { + _segments deleteAt 0; + DEC(_newestIndex); + }; + + private _oldLoc = []; + { + _x params ["_locNew", "_colorNew"]; + if !(_oldLoc isEqualTo []) then { + drawLine3D [_oldLoc, _locNew, _colorNew]; + }; + _oldLoc = _locNew; + + nil // Speed loop + } count _segments; + + _projectilesNew pushBack [_projectile, _segments]; + }; + + nil // Speed loop + } count GVAR(projectiles); + GVAR(projectiles) = _projectilesNew; + + { + if !(isNull _x) then { + private _grenadeVelocityMagnitude = vectorMagnitude velocity _x; + + // Draw grenade + drawIcon3D [GRENADE_ICON, [1,0,0,1], getPosVisual _x, 0.6, 0.6, if (_grenadeVelocityMagnitude > 0) then { time * 100 * _grenadeVelocityMagnitude } else { 0 }, "", 0, 0.05, "TahomaB"]; + + // Store grenade for next frame + _grenadesNew pushBack _x; + }; + + nil // Speed loop + } count GVAR(grenades); + GVAR(grenades) = _grenadesNew; + }; + END_COUNTER(drawTracers); +}; diff --git a/addons/spectator/functions/fnc_cam_prepareTarget.sqf b/addons/spectator/functions/fnc_cam_prepareTarget.sqf new file mode 100644 index 00000000000..fe7d03d6706 --- /dev/null +++ b/addons/spectator/functions/fnc_cam_prepareTarget.sqf @@ -0,0 +1,41 @@ + +#include "script_component.hpp" +TRACE_1("Params",_this); + +private _focus = vehicle (param [0, objNull, [objNull]]); + +if !(isNull _focus) then { + private _deltaTime = GVAR(deltaTime); + private _camera = GVAR(camera); + private _cameraMode = GVAR(camMode); + private _dummy = GVAR(camDummy); + private _zoom = if (_cameraMode == MODE_FOLLOW) then { GVAR(camDistance) } else { 0 }; + private _zoomTemp = GETMVAR(GVAR(camDistanceTemp),0); + private _isMan = _focus isKindOf "Man"; + private _bbd = [_focus] call BIS_fnc_getObjectBBD; + private _height = if !(_isMan) then { (_bbd select 2) / 3.0 } else { switch (stance _focus) do { case "STAND": {1.4}; case "CROUCH": {0.8}; default {0.4}; }; }; + + // Interpolate zoom + if (_zoomTemp != _zoom) then { + _zoomTemp = [_zoomTemp, _zoom, 10.0, _deltaTime] call BIS_fnc_lerp; + GVAR(camDistanceTemp) = _zoomTemp; + }; + + // The distance at which to place camera from the focus pivot + private _distance = (_bbd select 1) + _zoomTemp; + + // The pivot on the target vehicle + private _center = if (_isMan) then { AGLToASL (_focus modelToWorldVisual (_focus selectionPosition "Spine3")) } else { AGLToASL (_focus modelToWorldVisual [0,0,_height]) }; + + // The camera pitch and yaw + private _cameraYaw = GVAR(camYaw); + private _cameraPitch = GVAR(camPitch); + + // Set dummy location and rotation + _dummy setPosASL _center; + [_dummy, [_cameraYaw, _cameraPitch, 0]] call BIS_fnc_setObjectRotation; + + // Apply location and rotation to camera + _camera setPosASL (AGLToASL (_dummy modelToWorldVisual [0, -_distance, 0])); + _camera setVectorDirAndUp [vectorDirVisual _dummy, vectorUpVisual _dummy]; +}; diff --git a/addons/spectator/functions/fnc_cam_resetTarget.sqf b/addons/spectator/functions/fnc_cam_resetTarget.sqf new file mode 100644 index 00000000000..92e2a82c9ed --- /dev/null +++ b/addons/spectator/functions/fnc_cam_resetTarget.sqf @@ -0,0 +1,15 @@ + +#include "script_component.hpp" +TRACE_1("Params",_this); + +private _camera = GVAR(camera); +private _dummy = GVAR(camDummy); + +if !(isNull _camera || isNull _dummy) then { + _camera camPrepareTarget objNull; + _camera camCommitPrepared 0; + + detach _dummy; + + GVAR(camHasTarget) = false; +}; diff --git a/addons/spectator/functions/fnc_cam_setCameraMode.sqf b/addons/spectator/functions/fnc_cam_setCameraMode.sqf new file mode 100644 index 00000000000..ba86e6bbd7f --- /dev/null +++ b/addons/spectator/functions/fnc_cam_setCameraMode.sqf @@ -0,0 +1,97 @@ +/* + * Author: Nelson Duarte, AACO, SilentSpike + * Function used to select the camera mode + * + * Public: No + */ + +#include "script_component.hpp" +TRACE_1("Params",_this); +disableSerialization; + +params ["_newMode"]; + +private _oldMode = GVAR(camMode); +private _modes = GVAR(availableModes); + +// If new mode isn't available then keep current (unless current also isn't) +if !(_newMode in _modes) then { + _newMode = _modes select ((_modes find _oldMode) max 0); +}; + +// Nothing to do here +if (_newMode == _oldMode) exitWith {}; + +private _focus = GVAR(camTarget); +if (!isNull _focus || _newMode == MODE_FREE) then { + if (_newMode == MODE_FPS) exitWith { + GVAR(camera) cameraEffect ["Terminate", "BACK"]; + _focus switchCamera "INTERNAL"; + + // Reset vision mode + // [VISION_NORM] call FUNC(cam_setVisionMode); + + [] call FUNC(cam_resetTarget); + + // Disable camera input + GVAR(camera) camCommand "manual off"; + + // Update UI + CTRL_FPS ctrlSetText CAM_ICON_FIRST_SELECTED; + CTRL_FOLLOW ctrlSetText CAM_ICON_THIRD; + CTRL_FREE ctrlSetText CAM_ICON_FREE; + + // Update HUD + showHUD [true, false, false, false, false, false, false, true]; + cameraEffectEnableHUD true; + GVAR(camMode) = _newMode; + }; + + if (_newMode == MODE_FOLLOW) exitWith { + GVAR(camera) cameraEffect ["Internal", "BACK"]; + _focus switchCamera "EXTERNAL"; + + [] call FUNC(cam_resetTarget); + + // Disable camera input + GVAR(camera) camCommand "manual off"; + + // Update UI + CTRL_FPS ctrlSetText CAM_ICON_FIRST; + CTRL_FOLLOW ctrlSetText CAM_ICON_THIRD_SELECTED; + CTRL_FREE ctrlSetText CAM_ICON_FREE; + + // Update HUD + showHUD [true, true, true, true, true, true, true, true]; + cameraEffectEnableHUD true; + GVAR(camMode) = _newMode; + }; + + if (_newMode == MODE_FREE) exitWith { + GVAR(camera) cameraEffect ["Internal", "BACK"]; + player switchCamera "INTERNAL"; + GVAR(camera) setDir getDirVisual GVAR(camera); + + if (!isNull _focus) then { + if (_oldMode == MODE_FPS) then { + [_focus] call FUNC(cam_prepareTarget); + }; + [_focus] call FUNC(cam_setTarget); + }; + + // Enable camera input + if !(GVAR(uiMapVisible)) then { + GVAR(camera) camCommand "manual on"; + }; + + // Update UI + CTRL_FPS ctrlSetText CAM_ICON_FIRST; + CTRL_FOLLOW ctrlSetText CAM_ICON_THIRD; + CTRL_FREE ctrlSetText CAM_ICON_FREE_SELECTED; + + // Update HUD + showHUD [true, true, true, true, true, true, true, true]; + cameraEffectEnableHUD true; + GVAR(camMode) = _newMode; + }; +}; diff --git a/addons/spectator/functions/fnc_cam_setTarget.sqf b/addons/spectator/functions/fnc_cam_setTarget.sqf new file mode 100644 index 00000000000..e7ead918afe --- /dev/null +++ b/addons/spectator/functions/fnc_cam_setTarget.sqf @@ -0,0 +1,17 @@ + +#include "script_component.hpp" +#define CAMERA_TARGET_CHANGE_TIME 0.5 + +params ["_object"]; + +private _camera = GVAR(camera); +private _dummy = GVAR(camDummy); +private _location = _object worldToModel (_object modelToWorldVisual (_object selectionPosition "Head")); + +if (!isNull _camera && !isNull _dummy) then { + _dummy attachTo [vehicle _object, _location]; + _camera camPrepareTarget _dummy; + _camera camCommitPrepared CAMERA_TARGET_CHANGE_TIME; + + GVAR(camhasTarget) = true; +}; diff --git a/addons/spectator/functions/fnc_cam_setVisionMode.sqf b/addons/spectator/functions/fnc_cam_setVisionMode.sqf new file mode 100644 index 00000000000..bd74544361e --- /dev/null +++ b/addons/spectator/functions/fnc_cam_setVisionMode.sqf @@ -0,0 +1,38 @@ +/* + * Author: SilentSpike + * Function used to select the vision mode + * + * Public: No + */ + +#include "script_component.hpp" +TRACE_1("Params",_this); + +params ["_newVision"]; + +private _oldVision = GVAR(camVision); +private _visions = GVAR(availableVisions); + +// If new vision isn't available then keep current (unless current also isn't) +if !(_newVision in _visions) then { + _newVision = _visions select ((_visions find _oldVision) max 0); +}; + +// Nothing to do here +if (_newVision == _oldVision) exitWith {}; + +// Vision mode does not apply to fps view +if (GVAR(camMode) != MODE_FPS) then { + // 0+ are all thermal vision types + if (_newVision < 0) then { + false setCamUseTi 0; + camUseNVG (_newVision >= VISION_NVG); + } else { + true setCamUseTi _newVision; + }; + + // Give user feedback that vision mode changed + playSound "RscDisplayCurator_visionMode"; +}; + +GVAR(camVision) = _newVision; diff --git a/addons/spectator/functions/fnc_cam_toggleVeryFast.sqf b/addons/spectator/functions/fnc_cam_toggleVeryFast.sqf new file mode 100644 index 00000000000..d4a00aeedf7 --- /dev/null +++ b/addons/spectator/functions/fnc_cam_toggleVeryFast.sqf @@ -0,0 +1,27 @@ +/* + * Author: Nelson Duarte, SilentSpike + * Function used to toggle camera very fast speed mode + * + * Public: No + */ + +#include "script_component.hpp" + +params ["_fastSpeed"]; + +if !(GVAR(camFast) isEqualTo _fastSpeed) then { + private _camera = GVAR(camera); + + if (GVAR(camMode) == MODE_FREE) then { + GVAR(camFast) = _fastSpeed; + + if (_fastSpeed) then { + _camera camCommand format ["speedDefault %1", SPEED_VERYFAST]; + } else { + _camera camCommand format ["speedDefault %1", SPEED_DEFAULT]; + }; + } else { + _camera camCommand format ["speedDefault %1", SPEED_DEFAULT]; + GVAR(camFast) = false; + }; +}; diff --git a/addons/spectator/functions/fnc_cam_updateThingsToDraw.sqf b/addons/spectator/functions/fnc_cam_updateThingsToDraw.sqf new file mode 100644 index 00000000000..d69d4313784 --- /dev/null +++ b/addons/spectator/functions/fnc_cam_updateThingsToDraw.sqf @@ -0,0 +1,128 @@ +/* + * Author: Nelson Duarte, AACO, SilentSpike + * Function used update the things to 3D draw + * + * Public: No + */ + +#include "script_component.hpp" + +#define ICON_UNIT "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\UnitIcon_ca.paa" + +private _thingsToDraw = []; + +{ + private _vehicle = vehicle _x; + private _notInVehicle = (_vehicle == _x); + private _distanceToCamera = GVAR(camera) distance _x; + + if (_distanceToCamera <= 3000.0 && { _notInVehicle || { _x == effectiveCommander _vehicle } }) then { + private _group = group _x; + private _groupSide = side _group; + private _groupName = groupId _group; + private _groupLeader = leader _group; + private _groupColor = [_groupSide] call BIS_fnc_sideColor; + + // Calculate distance fade + (_distanceToCamera call { + if (_this <= 500) exitWith { + [1.0, 4.0, -2.5, 0.04] + }; + if (_this <= 1000) exitWith { + [0.75, 3.5, -2.2, 0.035] + }; + if (_this <= 1500) exitWith { + [0.5, 3.0, -1.9, 0.03] + }; + if (_this <= 2000) exitWith { + [0.3, 2.5, -1.6, 0.025] + }; + if (_this <= 2500) exitWith { + [0.2, 2.0, -1.3, 0.02] + }; + [0.15, 1.5, -1.0, 0.015] + }) params ["_fadeByDistance", "_sizeByDistance", "_heightByDistance", "_fontSizeByDistance"]; + + // Apply color fade + _groupColor set [3, _fadeByDistance]; + + private _name = [_x, false, false, NAME_MAX_CHARACTERS] call EFUNC(common,getName); + if !(_notInVehicle) then { + private _crewCount = (({alive _x} count (crew _vehicle)) - 1); + if (_crewCount > 0) then { + _name = format ["%1 (+%2)", _name, _crewCount]; + }; + }; + + // Show unit name only if camera is near enough + if (_distanceToCamera < DISTANCE_NAMES) then { + // Unit name + _thingsToDraw pushBack [_x, 2, [ + "", + [1,1,1,1], + [0,0,0], + 0.0, + _heightByDistance, + 0.0, + _name, + 2, + _fontSizeByDistance, + "PuristaMedium", + "center" + ]]; + } else { + if (_x == _groupLeader) then { + // Group name + _thingsToDraw pushBack [_x, 0, [ + "", + [1,1,1,_fadeByDistance], + [0,0,0], + 0.0, + _heightByDistance, + 0.0, + _groupName, + 2, + _fontSizeByDistance, + "PuristaMedium", + "center" + ]]; + }; + }; + + if (_x == _groupLeader || { !_notInVehicle && { _x == effectiveCommander _vehicle } }) then { + // Group icon + _thingsToDraw pushBack [_x, 0, [ + ICON_GROUP, + _groupColor, + [0,0,0], + _sizeByDistance, + _sizeByDistance, + 0.0, + "", + 0, + 0.035, + "PuristaMedium", + "center" + ]]; + }; + + // Draw unit icon + _thingsToDraw pushBack [_x, 1, [ + [ICON_UNIT, ICON_REVIVE] select (NEEDS_REVIVE(_x)), + _groupColor, + [0,0,0], + _sizeByDistance, + _sizeByDistance, + 0.0, + "", + 0.0, + 0.035, + "PuristaMedium", + "center" + ]]; + }; + + nil // Speed loop +} count ([] call FUNC(getTargetEntities)); + +GVAR(thingsToDraw) = _thingsToDraw; diff --git a/addons/spectator/functions/fnc_cycleCamera.sqf b/addons/spectator/functions/fnc_cycleCamera.sqf deleted file mode 100644 index 474d25cd0cb..00000000000 --- a/addons/spectator/functions/fnc_cycleCamera.sqf +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Author: SilentSpike - * Cycle through the spectator camera vision/view/units in steps - * - * Arguments: - * 0: Camera mode steps - * 1: Camera unit steps - * 2: Vision mode steps - * - * Return Value: - * None - * - * Example: - * [0, -1] call ace_spectator_fnc_cycleCamera - * - * Public: No - */ - -#include "script_component.hpp" - -params [["_stepMode",0], ["_stepUnit",0], ["_stepVision",0]]; -private ["_modes","_visions","_iMode","_iVision","_countModes","_countVisions","_newMode","_newVision","_newUnit"]; - -_modes = GVAR(availableModes); -_units = GVAR(unitList); -_visions = GVAR(availableVisions); - -// Get current index -_iMode = (_modes find GVAR(camMode)) max 0; -_iUnit = (_units find GVAR(camUnit)) max 0; -_iVision = (_visions find GVAR(camVision)) max 0; - -_countModes = count _modes; -_countUnits = count _units; -_countVisions = count _visions; - -// Step index by step number (loop at ends) -if (_countModes != 0) then { - _iMode = (_iMode + _stepMode) % _countModes; - if (_iMode < 0) then { _iMode = _countModes + _iMode; }; -}; - -if (_countUnits != 0) then { - _iUnit = (_iUnit + _stepUnit) % _countUnits; - if (_iUnit < 0) then { _iUnit = _countUnits + _iUnit; }; -}; - -if (_countVisions != 0) then { - _iVision = (_iVision + _stepVision) % _countVisions; - if (_iVision < 0) then { _iVision = _countVisions + _iVision; }; -}; - -// Get value at new index -_newMode = _modes select _iMode; -_newUnit = _units select _iUnit; -_newVision = _visions select _iVision; - -[_newMode, _newUnit, _newVision] call FUNC(transitionCamera); diff --git a/addons/spectator/functions/fnc_getTargetEntities.sqf b/addons/spectator/functions/fnc_getTargetEntities.sqf new file mode 100644 index 00000000000..3f97cdd6750 --- /dev/null +++ b/addons/spectator/functions/fnc_getTargetEntities.sqf @@ -0,0 +1,24 @@ +/* + * Author: SilentSpike + * Gets the possible entities to spectate based on settings + * + * Public: No + */ + +#include "script_component.hpp" + +private _entities = []; + +// AI filter +if (GVAR(filterUnits) == 3) then { + _entities = allUnits; +} else { + _entities = [] call CBA_fnc_players; +}; + +// Side and number of units filter +_entities select { + ((side group _x) in GVAR(availableSides)) && + {simulationEnabled _x && {simulationEnabled vehicle _x}} && + { !isObjectHidden _x && {!isObjectHidden vehicle _x} } +} diff --git a/addons/spectator/functions/fnc_getTargetGroups.sqf b/addons/spectator/functions/fnc_getTargetGroups.sqf new file mode 100644 index 00000000000..f1f0576897d --- /dev/null +++ b/addons/spectator/functions/fnc_getTargetGroups.sqf @@ -0,0 +1,24 @@ +/* + * Author: SilentSpike + * Gets the possible groups to spectate based on settings + * + * Public: No + */ + +#include "script_component.hpp" + +private _groups = []; + +// AI filter +if (GVAR(filterUnits) == 3) then { + _groups = allGroups; +} else { + private _players = [] call CBA_fnc_players; + { _groups pushBackUnique (group _x); } forEach _players; +}; + +// Side and number of units filter +_groups select { + ((side _x) in GVAR(availableSides)) && + {!((units _x) isEqualTo [])} +} diff --git a/addons/spectator/functions/fnc_handleCamera.sqf b/addons/spectator/functions/fnc_handleCamera.sqf deleted file mode 100644 index ce384c496c4..00000000000 --- a/addons/spectator/functions/fnc_handleCamera.sqf +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Author: F3 Project, Head, SilentSpike - * Handles free camera manipulation according to input - * - * Arguments: - * 0: Parameters - * 1: PFH handle - * - * Return Value: - * None - * - * Example: - * [ace_spectator_fnc_handleCamera, 0] call CBA_fnc_addPerFrameHandler; - * - * Public: No - */ - -#include "script_component.hpp" - -// Kill PFH when not in free cam (or display is closed) -if (isNil QGVAR(camHandler)) exitWith { [_this select 1] call CBA_fnc_removePerFrameHandler; }; - -private ["_camera","_pan","_tilt"]; - -_pan = (GVAR(camPan) + 360) % 360; -_tilt = GVAR(camTilt); - -if (GVAR(camMode) == 0) then { - private ["_oldPos","_altMod","_zoomMod","_mX","_mY","_mZ","_x","_y","_z"]; - _camera = GVAR(freeCamera); - _oldPos = GVAR(camPos); - - // Dolly/Boom amount should be influnced by zoom level (it should really be exponential) - // Dollying should also slow as the camera gets close to the ground - _zoomMod = (GVAR(camZoom) * 0.8) max 1; - _altMod = ((((getPos _camera) select 2) * 0.05) max 0.1) min 1; - - _mX = (GVAR(camDolly) select 0) * _altMod / _zoomMod; - _mY = (GVAR(camDolly) select 1) * _altMod / _zoomMod; - _mZ = GVAR(camBoom) / _zoomMod; - - _x = (_oldPos select 0) + (_mX * cos(_pan)) + (_mY * sin(_pan)); - _y = (_oldPos select 1) - (_mX * sin(_pan)) + (_mY * cos(_pan)); - _z = (_oldPos select 2) + _mZ; - - // Prevent camera going under terrain - GVAR(camPos) = [_x,_y,_z max (getTerrainHeightASL [_x,_y])]; - - // Update camera position and rotation - _camera setPosASL GVAR(camPos); - _camera setDir _pan; - [_camera, _tilt, 0] call BIS_fnc_setPitchBank; -} else { - private ["_unit","_target","_distance","_vector"]; - _camera = GVAR(unitCamera); - - _unit = GVAR(camUnit); - _target = GVAR(targetCamera); - _distance = GVAR(camDistance); - - // Generate a position vector relative to the unit - _vector = [0,-_distance*cos(_tilt),0]; - _vector = [_vector,[-_pan] call CBA_fnc_simplifyAngle180] call BIS_fnc_rotateVector2D; - _vector = _vector vectorAdd [0,0,_distance*sin(-_tilt)]; - - // Update the position of the target camera (used for smooth unit tracking) - _target camSetPos ((_unit modelToWorldVisual [0,0,0]) vectorAdd [0,0,1.5]); - _target camCommit 0; - - // Update the relative position of the unit camera - _camera camSetRelPos _vector; - _camera camCommit 0; - - GVAR(camPos) = getPosASL _camera; -}; diff --git a/addons/spectator/functions/fnc_handleCompass.sqf b/addons/spectator/functions/fnc_handleCompass.sqf deleted file mode 100644 index 6f0f94b0eea..00000000000 --- a/addons/spectator/functions/fnc_handleCompass.sqf +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Author: SilentSpike, voiper - * Handles the spectator UI compass - * - * Arguments: - * 0: Parameters - * 1: PFH handle - * - * Return Value: - * None - * - * Example: - * [ace_spectator_fnc_handleCompass, 0, _display] call CBA_fnc_addPerFrameHandler; - * - * Public: No - */ - -#include "script_component.hpp" - -params ["_display"]; - -// Kill PFH when compass hidden (or display is closed) -if (isNil QGVAR(compHandler)) exitWith { [_this select 1] call CBA_fnc_removePerFrameHandler; }; - -private ["_compass","_NE","_ES","_SW","_WN","_compassW","_degree","_heading","_offset","_positions","_sequence"]; - -_compass = _display displayCtrl IDC_COMP; - -_NE = _compass controlsGroupCtrl IDC_COMP_0; -_ES = _compass controlsGroupCtrl IDC_COMP_90; -_SW = _compass controlsGroupCtrl IDC_COMP_180; -_WN = _compass controlsGroupCtrl IDC_COMP_270; - -_compassW = (ctrlPosition _compass) select 2; -_degree = _compassW / 180; - -// Get direction of screen rather than object (accounts for unit freelook) -_heading = (positionCameraToWorld [0,0,1]) vectorDiff (positionCameraToWorld [0,0,0]); -_heading = (((_heading select 0) atan2 (_heading select 1)) + 360) % 360; -_offset = -(_heading % 90) * _degree; - -_positions = [ - [_compassW * -0.5 + _offset, 0], - [_offset, 0], - [_compassW * 0.5 + _offset, 0], - [_compassW + _offset, 0] -]; - -_sequence = [ - [_SW, _WN, _NE, _ES], - [_WN, _NE, _ES, _SW], - [_NE, _ES, _SW, _WN], - [_ES, _SW, _WN, _NE] -] select floor(_heading/90); - - -{ - _x ctrlSetPosition (_positions select _forEachIndex); - _x ctrlCommit 0; -} forEach _sequence; diff --git a/addons/spectator/functions/fnc_handleIcons.sqf b/addons/spectator/functions/fnc_handleIcons.sqf deleted file mode 100644 index d1f83690ff0..00000000000 --- a/addons/spectator/functions/fnc_handleIcons.sqf +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Author: Head, SilentSpike - * Handles rendering the spectator 3D unit icons - * - * Arguments: - * 0: Parameters - * 1: PFH handle - * - * Return Value: - * None - * - * Example: - * [ace_spectator_fnc_handleIcons, 0] call CBA_fnc_addPerFrameHandler; - * - * Public: No - */ - -#include "script_component.hpp" - -if !(GVAR(showIcons)) exitWith {}; -private ["_refPoint","_drawVehicles","_leader","_color","_txt","_unit"]; - -// Draw groups unless leader is within distance -_refPoint = [GVAR(freeCamera),GVAR(camUnit)] select (GVAR(camMode) > 0); -_drawVehicles = []; -{ - _leader = leader _x; - if ((_leader distanceSqr _refPoint) > 40000) then { - _color = GETVAR(_x,GVAR(gColor),[ARR_4(0,0,0,0)]); - _txt = groupID _x; - - drawIcon3D ["\A3\ui_f\data\map\markers\nato\b_inf.paa", _color, _leader modelToWorldVisual [0,0,30], 1, 1, 0, _txt, 2, 0.02]; - } else { - _drawVehicles append (units _x); - }; - false -} count GVAR(groupList); - -// Draw units for groups within distance -{ - _color = GETVAR((group _x),GVAR(gColor),[ARR_4(0,0,0,0)]); - _txt = ["", GETVAR(_x,GVAR(uName),"")] select (isPlayer _x); - - drawIcon3D ["\A3\ui_f\data\map\markers\military\dot_CA.paa", _color, _x modelToWorldVisual [0,0,3], 0.7, 0.7, 0, _txt, 1, 0.02]; - false -} count (_drawVehicles arrayIntersect GVAR(unitList)); diff --git a/addons/spectator/functions/fnc_handleInterface.sqf b/addons/spectator/functions/fnc_handleInterface.sqf deleted file mode 100644 index 0fd57578ab7..00000000000 --- a/addons/spectator/functions/fnc_handleInterface.sqf +++ /dev/null @@ -1,494 +0,0 @@ -/* - * Author: SilentSpike - * Handles spectator interface events - * - * Arguments: - * 0: Event name - * 1: Event arguments - * - * Return Value: - * None - * - * Example: - * ["onLoad",_this] call ace_spectator_fnc_handleInterface - * - * Public: No - */ - -#include "script_component.hpp" - -params ["_mode", "_args"]; - -switch (toLower _mode) do { - case "onload": { - _args params ["_display"]; - SETUVAR(GVAR(interface),_display); - - // Always show interface and hide map upon opening - [_display,nil,nil,!GVAR(showInterface),GVAR(showMap)] call FUNC(toggleInterface); - - // Initalize the unit tree - ["onUnitsUpdate",[(_display displayCtrl IDC_UNIT) controlsGroupCtrl IDC_UNIT_TREE]] call FUNC(handleInterface); - - // Keep unit list and tree up to date - [FUNC(handleUnits), 9, _display] call CBA_fnc_addPerFrameHandler; - - // Handle 3D unit icons - GVAR(iconHandler) = addMissionEventHandler ["Draw3D", {call FUNC(handleIcons)}]; - - // Populate the help window - private _help = (_display displayCtrl IDC_HELP) controlsGroupCtrl IDC_HELP_LIST; - { - _i = _help lbAdd (_x select 0); - if ((_x select 1) == "") then { - _help lbSetPicture [_i,"\A3\ui_f\data\map\markers\military\dot_CA.paa"]; - _help lbSetPictureColor [_i,[COL_FORE]]; - } else { - _help lbSetTooltip [_i,_x select 1]; - }; - } forEach [ - [localize LSTRING(uiControls),""], - [localize LSTRING(uiToggleUnits),keyName 2], - [localize LSTRING(uiToggleHelp),keyName 3], - [localize LSTRING(uiToggleTools),keyName 4], - [localize LSTRING(uiToggleCompass),keyName 5], - [localize LSTRING(uiToggleIcons),keyName 6], - [localize LSTRING(uiToggleMap),keyName 50], - [localize LSTRING(uiToggleInterface),keyName 14], - [localize LSTRING(freeCamControls),""], - [localize LSTRING(freeCamForward),keyName 17], - [localize LSTRING(freeCamBackward),keyName 31], - [localize LSTRING(freeCamLeft),keyName 30], - [localize LSTRING(freeCamRight),keyName 32], - [localize LSTRING(freeCamUp),keyName 16], - [localize LSTRING(freeCamDown),keyName 44], - [localize LSTRING(freeCamPan),"RMB (Hold)"], - [localize LSTRING(freeCamDolly),"LMB (Hold)"], - [localize LSTRING(freeCamBoost),"Shift (Hold)"], - [localize LSTRING(attributeControls),""], - [localize LSTRING(nextCam),keyName 200], - [localize LSTRING(prevCam),keyName 208], - [localize LSTRING(nextUnit),keyName 205], - [localize LSTRING(prevUnit),keyName 203], - [localize LSTRING(nextVis),keyName 49], - [localize LSTRING(prevVis),format["%1 + %2",keyName 29,keyname 49]], - [localize LSTRING(adjZoom),"Scrollwheel"], - [localize LSTRING(adjSpeed),format["%1 + Scrollwheel",keyName 29]], - [localize LSTRING(incZoom),format["%1/%2",keyName 74,keyName 78]], - [localize LSTRING(incSpeed),format["%1 + %2/%3",keyName 29,keyName 74,keyName 78]], - [localize LSTRING(reZoom),format["%1 + %2",keyName 56,keyName 74]], - [localize LSTRING(reSpeed),format["%1 + %2",keyName 56,keyName 78]] - ]; - - // Handle support for BI's respawn counter - [{ - if !(isNull (GETUVAR(RscRespawnCounter,displayNull))) then { - disableSerialization; - private ["_counter","_title","_back","_timer","_frame","_x","_y"]; - _counter = GETUVAR(RscRespawnCounter,displayNull); - _title = _counter displayCtrl 1001; - _back = _counter displayCtrl 1002; - _timer = _counter displayCtrl 1003; - _frame = _counter ctrlCreate ["RscFrame",1008]; - - _x = safeZoneX + safeZoneW - TOOL_W * 4 - MARGIN * 3; - _y = safeZoneY + safeZoneH - TOOL_H; - - // Timer - _title ctrlSetPosition [_x,_y,TOOL_W,TOOL_H]; - _back ctrlSetPosition [_x,_y,TOOL_W,TOOL_H]; - _timer ctrlSetPosition [_x,_y,TOOL_W,TOOL_H]; - _frame ctrlSetPosition [_x,_y,TOOL_W,TOOL_H]; - - _title ctrlSetBackgroundColor [0,0,0,0]; - _back ctrlSetBackgroundColor [COL_BACK]; - _timer ctrlSetFontHeight TOOL_H; - _frame ctrlSetTextColor [COL_FORE]; - - _title ctrlCommit 0; - _back ctrlCommit 0; - _timer ctrlCommit 0; - _frame ctrlCommit 0; - }; - },[],0.5] call CBA_fnc_waitAndExecute; - }; - case "onunload": { - // Kill GUI PFHs - removeMissionEventHandler ["Draw3D",GVAR(iconHandler)]; - GVAR(camHandler) = nil; - GVAR(compHandler) = nil; - GVAR(iconHandler) = nil; - GVAR(toolHandler) = nil; - - // Reset variables - GVAR(camBoom) = 0; - GVAR(camDolly) = [0,0]; - GVAR(ctrlKey) = false; - GVAR(heldKeys) = []; - GVAR(heldKeys) resize 255; - GVAR(mouse) = [false,false]; - GVAR(mousePos) = [0.5,0.5]; - }; - // Mouse events - case "onmousebuttondown": { - _args params ["_ctrl","_button"]; - GVAR(mouse) set [_button,true]; - - // Detect right click - if ((_button == 1) && (GVAR(camMode) == 1)) then { - // In first person toggle sights mode - GVAR(camGun) = !GVAR(camGun); - [] call FUNC(transitionCamera); - }; - }; - case "onmousebuttonup": { - _args params ["_ctrl","_button"]; - - GVAR(mouse) set [_button,false]; - if (_button == 0) then { GVAR(camDolly) = [0,0]; }; - }; - case "onmousezchanged": { - _args params ["_ctrl","_zChange"]; - - // Scroll to modify distance value in third person - if (GVAR(camMode) == 0) then { - // Scroll to change speed, modifier for zoom - if (GVAR(ctrlKey)) then { - [nil,nil,nil,nil,nil,nil,nil, GVAR(camSpeed) + _zChange * 0.2] call FUNC(setCameraAttributes); - } else { - [nil,nil,nil,nil,nil,nil, GVAR(camZoom) + _zChange * 0.1] call FUNC(setCameraAttributes); - }; - } else { - GVAR(camDistance) = ((GVAR(camDistance) - _zChange * 2) max 5) min 50; - }; - }; - case "onmousemoving": { - _args params ["_ctrl","_x","_y"]; - - [_x,_y] call FUNC(handleMouse); - }; - // Keyboard events - case "onkeydown": { - _args params ["_display","_dik","_shift","_ctrl","_alt"]; - - if ((alive player) && {_dik in (actionKeys "curatorInterface")} && {!isNull (getAssignedCuratorLogic player)}) exitWith { - [QGVAR(zeus)] call FUNC(interrupt); - ["zeus"] call FUNC(handleInterface); - }; - if (_dik in (actionKeys "Chat")) exitWith { - false - }; - if (_dik in (actionKeys "PrevChannel" + actionKeys "NextChannel")) exitWith { - !(isServer || serverCommandAvailable "#kick") - }; - - // Handle held keys (prevent repeat calling) - if (GVAR(heldKeys) param [_dik,false]) exitWith {}; - // Exclude movement/adjustment keys so that speed can be adjusted on fly - if !(_dik in [16,17,30,31,32,44,74,78]) then { - GVAR(heldKeys) set [_dik,true]; - }; - - switch (_dik) do { - case 1: { // Esc - [QGVAR(escape)] call FUNC(interrupt); - ["escape"] call FUNC(handleInterface); - }; - case 2: { // 1 - [_display,nil,nil,nil,nil,nil,true] call FUNC(toggleInterface); - }; - case 3: { // 2 - [_display,nil,true] call FUNC(toggleInterface); - }; - case 4: { // 3 - [_display,nil,nil,nil,nil,true] call FUNC(toggleInterface); - }; - case 5: { // 4 - [_display,true] call FUNC(toggleInterface); - }; - case 6: { // 5 - GVAR(showIcons) = !GVAR(showIcons); - }; - case 14: { // Backspace - [_display,nil,nil,true] call FUNC(toggleInterface); - }; - case 16: { // Q - GVAR(camBoom) = 0.5 * GVAR(camSpeed) * ([1, 2] select _shift); - }; - case 17: { // W - GVAR(camDolly) set [1, GVAR(camSpeed) * ([1, 2] select _shift)]; - }; - case 29: { // Ctrl - GVAR(ctrlKey) = true; - }; - case 30: { // A - GVAR(camDolly) set [0, -GVAR(camSpeed) * ([1, 2] select _shift)]; - }; - case 31: { // S - GVAR(camDolly) set [1, -GVAR(camSpeed) * ([1, 2] select _shift)]; - }; - case 32: { // D - GVAR(camDolly) set [0, GVAR(camSpeed) * ([1, 2] select _shift)]; - }; - case 44: { // Z - GVAR(camBoom) = -0.5 * GVAR(camSpeed) * ([1, 2] select _shift); - }; - case 49: { // N - if (GVAR(camMode) != 1) then { - if (_ctrl) then { - [nil,nil,-1] call FUNC(cycleCamera); - } else { - [nil,nil,1] call FUNC(cycleCamera); - }; - }; - }; - case 50: { // M - [_display,nil,nil,nil,true] call FUNC(toggleInterface); - }; - case 57: { // Spacebar - // Switch between unit and freecam here - }; - case 74: { // Num - - if (_alt) exitWith { [nil,nil,nil,nil,nil,nil, 1.25] call FUNC(setCameraAttributes); }; - if (_ctrl) then { - [nil,nil,nil,nil,nil,nil,nil, GVAR(camSpeed) - 0.05] call FUNC(setCameraAttributes); - } else { - [nil,nil,nil,nil,nil,nil, GVAR(camZoom) - 0.01] call FUNC(setCameraAttributes); - }; - }; - case 78: { // Num + - if (_alt) exitWith { [nil,nil,nil,nil,nil,nil,nil, 1.5] call FUNC(setCameraAttributes); }; - if (_ctrl) then { - [nil,nil,nil,nil,nil,nil,nil, GVAR(camSpeed) + 0.05] call FUNC(setCameraAttributes); - } else { - [nil,nil,nil,nil,nil,nil, GVAR(camZoom) + 0.01] call FUNC(setCameraAttributes); - }; - }; - case 200: { // Up arrow - [-1] call FUNC(cycleCamera); - }; - case 203: { // Left arrow - [nil,1] call FUNC(cycleCamera); - }; - case 205: { // Right arrow - [nil,-1] call FUNC(cycleCamera); - }; - case 208: { // Down arrow - [1] call FUNC(cycleCamera); - }; - }; - - true - }; - case "onkeyup": { - _args params ["_display","_dik","_shift","_ctrl","_alt"]; - - // No longer being held - GVAR(heldKeys) set [_dik,nil]; - - switch (_dik) do { - case 16: { // Q - GVAR(camBoom) = 0; - }; - case 17: { // W - GVAR(camDolly) set [1, 0]; - }; - case 29: { // Ctrl - GVAR(ctrlKey) = false; - }; - case 30: { // A - GVAR(camDolly) set [0, 0]; - }; - case 31: { // S - GVAR(camDolly) set [1, 0]; - }; - case 32: { // D - GVAR(camDolly) set [0, 0]; - }; - case 44: { // Z - GVAR(camBoom) = 0; - }; - }; - - true - }; - // Tree events - case "ontreedblclick": { - // Update camera view when listbox unit is double clicked on - _args params ["_tree","_sel"]; - - // Ensure a unit was selected - if (count _sel == 3) then { - private ["_netID","_newUnit","_newMode"]; - _netID = _tree tvData _sel; - _newUnit = objectFromNetId _netID; - - // When unit is reselected, toggle camera mode - if (_newUnit == GVAR(camUnit) || GVAR(camMode) == 0) then { - _newMode = [2,2,1] select GVAR(camMode); - }; - - [_newMode,_newUnit] call FUNC(transitionCamera); - }; - }; - case "onunitsupdate": { - _args params ["_tree"]; - private ["_cachedUnits","_cachedGrps","_cachedSides","_sT","_gT","_uT","_s","_g","_u","_grp","_unit","_side"]; - - // Cache existing group and side nodes and cull removed data - _cachedUnits = []; - _cachedGrps = []; - _cachedSides = []; - // Track deleted nodes to account for decrease in index - _sT = _tree tvCount []; - for [{_s = 0;}, {_s < _sT}, {_s = _s + 1}] do { - _gT = _tree tvCount [_s]; - - for [{_g = 0;}, {_g < _gT}, {_g = _g + 1}] do { - _grp = groupFromNetID (_tree tvData [_s,_g]); - - if (_grp in GVAR(groupList)) then { - _cachedGrps pushBack _grp; - _cachedGrps pushBack _g; - - _uT = _tree tvCount [_s,_g]; - for [{_u = 0;}, {_u < _uT}, {_u = _u + 1}] do { - _unit = objectFromNetId (_tree tvData [_s,_g,_u]); - - if (_unit in GVAR(unitList)) then { - _cachedUnits pushBack _unit; - } else { - _tree tvDelete [_s,_g,_u]; - _u = _u - 1; - _uT = _uT - 1; - }; - }; - } else { - _tree tvDelete [_s,_g]; - _g = _g - 1; - _gT = _gT - 1; - }; - }; - - if ((_tree tvCount [_s]) > 0) then { - _cachedSides pushBack (_tree tvText [_s]); - _cachedSides pushBack _s; - } else { - _tree tvDelete [_s]; - _s = _s - 1; - _sT = _sT - 1; - }; - }; - - // Update the tree from the unit list - { - _grp = group _x; - _side = [side _grp] call BIS_fnc_sideName; - - // Use correct side node - if !(_side in _cachedSides) then { - // Add side node - _s = _tree tvAdd [[], _side]; - _tree tvExpand [_s]; - - _cachedSides pushBack _side; - _cachedSides pushBack _s; - } else { - // If side already processed, use existing node - _s = _cachedSides select ((_cachedSides find _side) + 1); - }; - - // Use correct group node - if !(_grp in _cachedGrps) then { - // Add group node - _g = _tree tvAdd [[_s], groupID _grp]; - _tree tvSetData [[_s,_g], netID _grp]; - - _cachedGrps pushBack _grp; - _cachedGrps pushBack _g; - } else { - // If group already processed, use existing node - _g = _cachedGrps select ((_cachedGrps find _grp) + 1); - }; - - _u = _tree tvAdd [[_s,_g], GETVAR(_x,GVAR(uName),"")]; - _tree tvSetData [[_s,_g,_u], netID _x]; - _tree tvSetPicture [[_s,_g,_u], GETVAR(_x,GVAR(uIcon),"")]; - _tree tvSetPictureColor [[_s,_g,_u], GETVAR(_grp,GVAR(gColor),[ARR_4(1,1,1,1)])]; - - _tree tvSort [[_s,_g],false]; - } forEach (GVAR(unitList) - _cachedUnits); - - _tree tvSort [[],false]; - - if ((_tree tvCount []) <= 0) then { - _tree tvAdd [[], localize LSTRING(units_none)]; - }; - }; - // Map events - case "onmapclick": { - _args params ["_map","_button","_x","_y","_shift","_ctrl","_alt"]; - private ["_newPos","_oldZ"]; - - if ((GVAR(camMode) == 0) && (_button == 0)) then { - _newPos = _map ctrlMapScreenToWorld [_x,_y]; - _oldZ = (ASLtoATL GVAR(camPos)) select 2; - _newPos set [2, _oldZ]; - [nil,nil,nil, _newPos] call FUNC(setCameraAttributes); - }; - }; - // Interrupt events - case "escape": { - createDialog (["RscDisplayInterrupt", "RscDisplayMPInterrupt"] select isMultiplayer); - - disableSerialization; - private _dlg = finddisplay 49; - _dlg displayAddEventHandler ["KeyDown", { - _key = _this select 1; - !(_key == 1) - }]; - - // Disable save, respawn, options & manual buttons - (_dlg displayCtrl 103) ctrlEnable false; - if !(alive player) then { - (_dlg displayCtrl 1010) ctrlEnable false; - }; - (_dlg displayCtrl 101) ctrlEnable false; - (_dlg displayCtrl 122) ctrlEnable false; - - // Initalize abort button (the "spawn" is a necessary evil) - (_dlg displayCtrl 104) ctrlAddEventHandler ["ButtonClick",{_this spawn { - disableSerialization; - _display = ctrlparent (_this select 0); - _abort = [localize "str_msg_confirm_return_lobby",nil,localize "str_disp_xbox_hint_yes",localize "str_disp_xbox_hint_no",_display,nil,true] call BIS_fnc_guiMessage; - if (_abort) then {_display closeDisplay 2; failMission "loser"}; - }}]; - - // PFH to re-open display when menu closes - [{ - if !(isNull (_this select 0)) exitWith {}; - - // If still a spectator then re-enter the interface - [QGVAR(escape),false] call FUNC(interrupt); - - [_this select 1] call CBA_fnc_removePerFrameHandler; - },0,_dlg] call CBA_fnc_addPerFrameHandler; - }; - case "zeus": { - openCuratorInterface; - - [{ - // PFH to re-open display when menu closes - [{ - if !((isNull curatorCamera) && {isNull (GETMVAR(bis_fnc_moduleRemoteControl_unit,objNull))}) exitWith {}; - - // If still a spectator then re-enter the interface - [QGVAR(zeus),false] call FUNC(interrupt); - - [_this select 1] call CBA_fnc_removePerFrameHandler; - },0] call CBA_fnc_addPerFrameHandler; - },[],5] call CBA_fnc_waitAndExecute; - - true - }; -}; diff --git a/addons/spectator/functions/fnc_handleMap.sqf b/addons/spectator/functions/fnc_handleMap.sqf deleted file mode 100644 index b83ccdcd7de..00000000000 --- a/addons/spectator/functions/fnc_handleMap.sqf +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Author: Head, SilentSpike - * Handles rendering the spectator map icons - * - * Arguments: - * 0: Parameters - * 1: PFH handle - * - * Return Value: - * None - * - * Example: - * [ace_spectator_fnc_handleIcons, 0] call CBA_fnc_addPerFrameHandler; - * - * Public: No - */ - -#include "script_component.hpp" - -params ["_map"]; -private ["_center","_radius","_scaled","_drawVehicles","_leader","_color","_cachedVehicles","_unit","_icon","_txt"]; - -if (GVAR(camMode) == 0) then { - _map drawIcon ["\A3\UI_F\Data\GUI\Rsc\RscDisplayMissionEditor\iconcamera_ca.paa",[0,0,0,1],GVAR(freeCamera),20,20,GVAR(camPan)]; -}; - -_center = _map ctrlMapScreenToWorld [0.5,0.5]; -_radius = (_map ctrlMapScreenToWorld [safeZoneX,safeZoneY]) distance2D _center; -_scaled = (ctrlMapScale _map) > 0.2; - -// Draw only group icons when scaled out -_drawVehicles = []; -{ - _leader = leader _x; - if (_scaled) then { - _color = GETVAR(_x,GVAR(gColor),[ARR_4(0,0,0,0)]); - _map drawIcon ["\A3\ui_f\data\map\markers\nato\b_inf.paa", _color, _leader, 20, 20, 0, "", 0, 0]; - } else { - if ((_leader distance2D _center) < _radius) then { - _drawVehicles append (units _x); - }; - }; - nil -} count GVAR(groupList); - -// Draw units when group leader is within screen bounds -_cachedVehicles = []; -{ - _unit = vehicle _x; - - if !(_unit in _cachedVehicles) then { - _cachedVehicles pushBack _unit; - - // Use previously cached info where possible - if (GETVAR(_unit,GVAR(uIcon),"") == "") then { - [_unit] call FUNC(cacheUnitInfo); - }; - - // Function has caching built in - _color = [side effectiveCommander _unit] call BIS_fnc_sideColor; - _icon = GETVAR(_unit,GVAR(uIcon),""); - _txt = ["", GETVAR(_x,GVAR(uName),"")] select (isPlayer _x); - - _map drawIcon [_icon, _color, _unit, 19, 19, getDir _unit, _txt, 1, 0.04]; - }; - nil -} count (_drawVehicles arrayIntersect GVAR(unitList)); diff --git a/addons/spectator/functions/fnc_handleMouse.sqf b/addons/spectator/functions/fnc_handleMouse.sqf deleted file mode 100644 index 1c2b62798cc..00000000000 --- a/addons/spectator/functions/fnc_handleMouse.sqf +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Author: F3 Project, Head, SilentSpike - * Processes the change in mouse position for the spectator camera - * - * Arguments: - * 0: Mouse x coord - * 1: Mouse y coord - * - * Return Value: - * None - * - * Example: - * [0.5, 0.5] call ace_spectator_fnc_handleMouse; - * - * Public: No - */ - -#include "script_component.hpp" - -params ["_x","_y"]; -private ["_leftButton","_rightButton","_oldX","_oldY","_deltaX","_deltaY","_zoomMod"]; - -_leftButton = GVAR(mouse) select 0; -_rightButton = GVAR(mouse) select 1; - -_oldX = GVAR(mousePos) select 0; -_oldY = GVAR(mousePos) select 1; - -// Get change in pos -_deltaX = _oldX - _x; -_deltaY = _oldY - _y; - -if (_leftButton) then { - GVAR(camDolly) set [0, _deltaX * -100 * GVAR(camSpeed)]; - GVAR(camDolly) set [1, _deltaY * 100 * GVAR(camSpeed)]; -} else { - if (_rightButton) then { - // Pan/Tilt amount should be influnced by zoom level (it should really be exponential) - _zoomMod = (GVAR(camZoom) * 0.8) max 1; - - GVAR(camPan) = GVAR(camPan) - ((_deltaX * 360) / _zoomMod); - GVAR(camTilt) = ((GVAR(camTilt) + ((_deltaY * 180) / _zoomMod)) min 89) max -89; - }; -}; - -GVAR(mousePos) = [_x,_y]; diff --git a/addons/spectator/functions/fnc_handleToolbar.sqf b/addons/spectator/functions/fnc_handleToolbar.sqf deleted file mode 100644 index 4e79c172bd9..00000000000 --- a/addons/spectator/functions/fnc_handleToolbar.sqf +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Author: Karel Moricky, SilentSpike - * Handles the spectator UI toolbar values - * - * Arguments: - * 0: Parameters - * 1: PFH handle - * - * Return Value: - * None - * - * Example: - * [ace_spectator_fnc_handleToolbar, 0, _display] call CBA_fnc_addPerFrameHandler; - * - * Public: No - */ - -#include "script_component.hpp" - -params ["_display"]; - -// Kill PFH when toolbar hidden (or display is closed) -if (isNil QGVAR(toolHandler)) exitWith { [_this select 1] call CBA_fnc_removePerFrameHandler; }; - -private ["_name","_vision","_fov","_speed","_mode","_time","_toolbar"]; -_toolbar = _display displayCtrl IDC_TOOL; - -// Find all tool values -if (GVAR(camVision) >= 0) then { - _vision = localize LSTRING(VisionThermal); -} else { - _vision = [localize LSTRING(VisionNight), localize LSTRING(VisionNormal)] select (GVAR(camVision) < -1); -}; - -if (GVAR(camMode) == 0) then { - _fov = format ["%1x", floor(GVAR(camZoom) * 100) * 0.01]; - _speed = format ["%1 m/s", floor(GVAR(camSpeed) * 100) * 0.01]; -} else { - _vision = [side group GVAR(camUnit)] call BIS_fnc_sideName; - _fov = format ["%1 m", floor(getPosASL GVAR(camUnit) select 2)]; - _speed = format ["%1 km/h", floor(speed GVAR(camUnit)) max 0]; -}; - -if (alive GVAR(camUnit)) then { - _name = GETVAR(GVAR(camUnit),GVAR(uName),""); -} else { - _name = localize "STR_Special_None"; -}; - -_mode = [localize LSTRING(ViewFree),localize LSTRING(ViewInternal),localize LSTRING(ViewExternal)] select GVAR(camMode); -_time = [daytime,"HH:MM"] call BIS_fnc_timeToString; - -// Update the UI tools -(_toolbar controlsGroupCtrl IDC_TOOL_CLOCK) ctrlSetText _time; -(_toolbar controlsGroupCtrl IDC_TOOL_VISION) ctrlSetText _vision; -(_toolbar controlsGroupCtrl IDC_TOOL_FOV) ctrlSetText _fov; -(_toolbar controlsGroupCtrl IDC_TOOL_NAME) ctrlSetText _name; -(_toolbar controlsGroupCtrl IDC_TOOL_SPEED) ctrlSetText _speed; -(_toolbar controlsGroupCtrl IDC_TOOL_VIEW) ctrlSetText _mode; diff --git a/addons/spectator/functions/fnc_handleUnits.sqf b/addons/spectator/functions/fnc_handleUnits.sqf deleted file mode 100644 index f51c922b8e9..00000000000 --- a/addons/spectator/functions/fnc_handleUnits.sqf +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Author: SilentSpike - * Maintains the spectatable unit list and updates the unit tree accordingly - * Also updates current camera unit when status changes - * - * Arguments: - * 0: Parameters - * 1: PFH handle - * - * Return Value: - * None - * - * Example: - * [ace_spectator_fnc_handleUnits, 10, _display] call CBA_fnc_addPerFrameHandler; - * - * Public: No - */ - -#include "script_component.hpp" - -params ["_display"]; - -// Kill PFH when display is closed -if (isNull _display) exitWith { [_this select 1] call CBA_fnc_removePerFrameHandler; }; - -// Remove all dead and null units from the list -[] call FUNC(updateUnits); - -// Camera shouldn't stay on unit that isn't in the list (unless dead) -if !(GVAR(camUnit) in GVAR(unitList)) then { - if (alive GVAR(camUnit) || isNull GVAR(camUnit)) then { - [nil,1] call FUNC(cycleCamera); - }; -}; - -// Reduce overhead when unit tree is hidden -if (ctrlShown (_display displayCtrl IDC_UNIT)) then { - // Reduce overhead by spreading across frames - [FUNC(handleInterface),["onUnitsUpdate",[(_display displayCtrl IDC_UNIT) controlsGroupCtrl IDC_UNIT_TREE]],1] call CBA_fnc_waitAndExecute; -}; diff --git a/addons/spectator/functions/fnc_interrupt.sqf b/addons/spectator/functions/fnc_interrupt.sqf index 0826949b302..3c34e24fa47 100644 --- a/addons/spectator/functions/fnc_interrupt.sqf +++ b/addons/spectator/functions/fnc_interrupt.sqf @@ -29,16 +29,16 @@ if (_interrupt) then { }; if (GVAR(interrupts) isEqualTo []) then { - if (isNull (GETUVAR(GVAR(interface),displayNull))) then { + if (isNull GVAR(interface)) then { (findDisplay 46) createDisplay QGVAR(interface); [] call FUNC(transitionCamera); }; } else { - if !(isNull (GETUVAR(GVAR(interface),displayNull))) then { + if !(isNull GVAR(interface)) then { while {dialog} do { closeDialog 0; }; - (GETUVAR(GVAR(interface),displayNull)) closeDisplay 0; + GVAR(interface) closeDisplay 0; }; }; diff --git a/addons/spectator/functions/fnc_respawnTemplate.sqf b/addons/spectator/functions/fnc_respawnTemplate.sqf index 1a36170202f..7afcb0893f0 100644 --- a/addons/spectator/functions/fnc_respawnTemplate.sqf +++ b/addons/spectator/functions/fnc_respawnTemplate.sqf @@ -18,18 +18,27 @@ #include "script_component.hpp" -params [["_unit",objNull,[objNull]], ["_killer",objNull,[objNull]], ["_respawn",0,[0]], ["_respawnDelay",0,[0]]]; +params [["_newCorpse",objNull,[objNull]], ["_oldKiller",objNull,[objNull]], ["_respawn",0,[0]], ["_respawnDelay",0,[0]]]; // Some environment information can be used for the initial camera attributes -if (isNull _killer) then {_killer = _unit}; -private _vision = [-2,-1] select (sunOrMoon < 1); -private _pos = (getPosATL _unit) vectorAdd [0,0,5]; +if (isNull _oldKiller) then {_oldKiller = _newCorpse}; +private _nvg = [-2,-1] select (sunOrMoon < 1); + +// Prepare camera attributes before entering spectator +[2, _oldKiller, _nvg, eyePos _newCorpse, getDirVisual _newCorpse] call FUNC(setCameraAttributes); // Enter/exit spectator based on the respawn type and whether killed/respawned -if (alive _unit) then { +if (alive _newCorpse) then { + // Handle seagull respawn if (_respawn == 1) then { - [_unit] call FUNC(stageSpectator); - [2,_killer,_vision,_pos,getDir _unit] call FUNC(setCameraAttributes); + private _grp = createGroup [sideLogic, true]; + private _virtual = _grp createUnit [QGVAR(virtual), [0,0,0], [], 0, "NONE"]; + + selectPlayer _virtual; + + // Delete the seagull + deleteVehicle _newCorpse; + [true] call FUNC(setSpectator); } else { [false] call FUNC(setSpectator); @@ -38,6 +47,5 @@ if (alive _unit) then { // Negligible respawn delay can result in entering spectator after respawn if (playerRespawnTime <= 1) exitWith {}; - [2,_killer,_vision,_pos,getDir _unit] call FUNC(setCameraAttributes); [true] call FUNC(setSpectator); }; diff --git a/addons/spectator/functions/fnc_setCameraAttributes.sqf b/addons/spectator/functions/fnc_setCameraAttributes.sqf index fac9c94059b..63b48b9eecb 100644 --- a/addons/spectator/functions/fnc_setCameraAttributes.sqf +++ b/addons/spectator/functions/fnc_setCameraAttributes.sqf @@ -6,8 +6,8 @@ * Arguments: * 0: Camera mode * - 0: Free - * - 1: Internal - * - 2: External + * - 1: First Person + * - 2: Follow * 1: Camera unit (objNull for random) * 2: Camera vision * - -2: Normal @@ -32,14 +32,9 @@ #include "script_component.hpp" params [ - ["_mode",GVAR(camMode),[0]], - ["_unit",GVAR(camUnit),[objNull]], - ["_vision",GVAR(camVision),[0]], - ["_position",ASLtoATL GVAR(camPos),[[]],3], - ["_heading",GVAR(camPan),[0]], - ["_tilt",GVAR(camTilt),[0]], - ["_zoom",GVAR(camZoom),[0]], - ["_speed",GVAR(camSpeed),[0]] + ["_mode",GETMVAR(GVAR(camMode),MODE_FREE),[0]], + ["_focus",GETMVAR(GVAR(camTarget),objNull),[objNull]], + ["_vision",GETMVAR(GVAR(camVision),VISION_NORM),[0]] ]; // Normalize input @@ -51,18 +46,12 @@ if !(_vision in GVAR(availableVisions)) then { _vision = GVAR(availableVisions) select ((GVAR(availableVisions) find GVAR(camVision)) max 0); }; -GVAR(camPan) = _heading % 360; -GVAR(camSpeed) = (_speed max 0.05) min 10; -GVAR(camTilt) = (_tilt max -89) min 89; -GVAR(camUnit) = _unit; -GVAR(camVision) = _vision; -GVAR(camZoom) = (_zoom min 2) max 0.01; - // Apply if camera exists if (GVAR(isSet)) then { - GVAR(camPos) = (ATLtoASL _position); // Camera position will be updated in FUNC(handleCamera) - [_mode,_unit,_vision] call FUNC(transitionCamera); + ["SetCameraMode",[_mode]] call FUNC(camera); + ["SetVisionMode",[_vision]] call FUNC(camera); } else { GVAR(camMode) = _mode; - GVAR(camPos) = (ATLtoASL _position); + GVAR(camTarget) = _focus; + GVAR(camVision) = _vision; }; diff --git a/addons/spectator/functions/fnc_setSpectator.sqf b/addons/spectator/functions/fnc_setSpectator.sqf index a26ce28e3dd..74248bc2c8f 100644 --- a/addons/spectator/functions/fnc_setSpectator.sqf +++ b/addons/spectator/functions/fnc_setSpectator.sqf @@ -1,6 +1,7 @@ /* * Author: SilentSpike * Enter/exit spectator mode for the local player + * Handles the UI and camera, acts independent of player entity * * Client will be able to communicate in ACRE/TFAR as appropriate * @@ -24,6 +25,10 @@ params [["_set",true,[true]], ["_force",true,[true]]]; // Only clients can be spectators if !(hasInterface) exitWith {}; +// Let the display know if it is or isn't forced +// Could be switched after spectator has already started +GVAR(uiForced) = _force; + // Exit if no change if (_set isEqualTo GVAR(isSet)) exitWith {}; @@ -45,30 +50,11 @@ if (["acre_sys_radio"] call EFUNC(common,isModLoaded)) then {[_set] call acre_ap if (["task_force_radio"] call EFUNC(common,isModLoaded)) then {[player, _set] call TFAR_fnc_forceSpectator}; if (_set) then { - // Initalize camera variables - GVAR(camBoom) = 0; - GVAR(camDolly) = [0,0]; - GVAR(camGun) = false; - - // Initalize display variables - GVAR(ctrlKey) = false; - GVAR(heldKeys) = []; - GVAR(heldKeys) resize 255; - GVAR(mouse) = [false,false]; - GVAR(mousePos) = [0.5,0.5]; - - // Update units before opening to support pre-set camera unit - [] call FUNC(updateUnits); - - // Initalize the camera objects - GVAR(freeCamera) = "CamCurator" camCreate (ASLtoATL GVAR(camPos)); - GVAR(unitCamera) = "Camera" camCreate [0,0,0]; - GVAR(targetCamera) = "Camera" camCreate [0,0,0]; - - // Initalize view - GVAR(unitCamera) camSetTarget GVAR(targetCamera); - GVAR(unitCamera) camCommit 0; - [] call FUNC(transitionCamera); + // Initalize the camera + [true] call FUNC(cam); + + // Create the display when main display is ready + [{ !isNull MAIN_DISPLAY },{ [true] call FUNC(ui) }] call CBA_fnc_waitUntilAndExecute; // Cache current channel to switch back to on exit GVAR(channelCache) = currentChannel; @@ -77,33 +63,6 @@ if (_set) then { GVAR(channel) radioChannelAdd [player]; setCurrentChannel (5 + GVAR(channel)); - // Close map and clear the chat - openMap [false,false]; - clearRadio; - enableRadio false; - - // Close any open dialogs - while {dialog} do { - closeDialog 0; - }; - - [{!isNull ([] call BIS_fnc_displayMission)},{ - disableSerialization; - - // Create the display - _display = ([] call BIS_fnc_displayMission) createDisplay QGVAR(interface); - - // If not forced, make esc end spectator - if !(_this) then { - _display displayAddEventHandler ["KeyDown", { - if (_this select 1 == 1) then { - [false] call FUNC(setSpectator); - true - }; - }]; - }; - }, _force] call CBA_fnc_waitUntilAndExecute; - // Cache and disable nametag settings if (["ace_nametags"] call EFUNC(common,isModLoaded)) then { GVAR(nametagSettingCache) = [EGVAR(nametags,showPlayerNames), EGVAR(nametags,showNamesForAI)]; @@ -111,19 +70,11 @@ if (_set) then { EGVAR(nametags,showNamesForAI) = false; }; } else { - // Close any open dialogs (could be interrupts) - while {dialog} do { - closeDialog 0; - }; - - // Kill the display - (GETUVAR(GVAR(interface),displayNull)) closeDisplay 0; + // Kill the display (ensure main display exists, handles edge case where spectator turned off before display exists) + [{ !isNull MAIN_DISPLAY },{ [false] call FUNC(ui) }] call CBA_fnc_waitUntilAndExecute; // Terminate camera - GVAR(freeCamera) cameraEffect ["terminate", "back"]; - camDestroy GVAR(freeCamera); - camDestroy GVAR(unitCamera); - camDestroy GVAR(targetCamera); + [false] call FUNC(cam); // Remove from spectator chat GVAR(channel) radioChannelRemove [player]; @@ -132,32 +83,6 @@ if (_set) then { setCurrentChannel GVAR(channelCache); GVAR(channelCache) = nil; - // Clear any residual spectator chat - clearRadio; - enableRadio true; - - // Return to player view - player switchCamera "internal"; - - // Cleanup camera variables - GVAR(camBoom) = nil; - GVAR(camDolly) = nil; - GVAR(camGun) = nil; - GVAR(freeCamera) = nil; - GVAR(unitCamera) = nil; - GVAR(targetCamera) = nil; - - //Kill these PFEH handlers now because the PFEH can run before the `onunload` event is handled - GVAR(camHandler) = nil; - GVAR(compHandler) = nil; - GVAR(toolHandler) = nil; - - // Cleanup display variables - GVAR(ctrlKey) = nil; - GVAR(heldKeys) = nil; - GVAR(mouse) = nil; - GVAR(mousePos) = nil; - // Reset nametag settings if (["ace_nametags"] call EFUNC(common,isModLoaded)) then { EGVAR(nametags,showPlayerNames) = GVAR(nametagSettingCache) select 0; @@ -173,4 +98,4 @@ GVAR(interrupts) = []; GVAR(isSet) = _set; player setVariable [QGVAR(isSet), true, true]; -["ace_spectatorSet", [_set]] call CBA_fnc_localEvent; +["ace_spectatorSet", [_set, player]] call CBA_fnc_globalEvent; diff --git a/addons/spectator/functions/fnc_stageSpectator.sqf b/addons/spectator/functions/fnc_stageSpectator.sqf index a7cc926d332..12cce459a73 100644 --- a/addons/spectator/functions/fnc_stageSpectator.sqf +++ b/addons/spectator/functions/fnc_stageSpectator.sqf @@ -1,10 +1,9 @@ /* * Author: SilentSpike - * Sets target unit to the given spectator state (physically) - * To virtually handle a spectator see ace_spectator_fnc_setSpectator + * Stores and hdies an entity safely out of the way (intended for use on spectator players) * * Units will be gathered at marker ace_spectator_respawn (or [0,0,0] by default) - * Upon unstage, units will be moved to the position they were in upon staging + * Upon unstage, units will be moved to the position they were in before staging * * Arguments: * 0: Unit to put into spectator stage (default: player) @@ -64,7 +63,7 @@ if !(_set isEqualTo (GETVAR(_unit,GVAR(isStaged),false))) then { // Mark spectator state for reference _unit setVariable [QGVAR(isStaged), _set, true]; - ["ace_spectatorStaged", [_set]] call CBA_fnc_localEvent; + ["ace_spectatorStaged", [_set, _unit]] call CBA_fnc_globalEvent; }; //BandAid for #2677 - if player in unitList weird before being staged, weird things can happen diff --git a/addons/spectator/functions/fnc_toggleInterface.sqf b/addons/spectator/functions/fnc_toggleInterface.sqf deleted file mode 100644 index 31472702fca..00000000000 --- a/addons/spectator/functions/fnc_toggleInterface.sqf +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Author: SilentSpike - * Correctly handles toggling of spectator interface elements for clean UX - * - * Arguments: - * 0: Display - * 1: Toogle compass - * 2: Toogle help - * 3: Toogle interface - * 4: Toogle map - * 5: Toogle toolbar - * 6: Toogle unit list - * - * Return Value: - * None - * - * Example: - * [_dsiplay, nil, true] call ace_spectator_fnc_toggleInterface - * - * Public: No - */ - -#include "script_component.hpp" - -params ["_display", ["_toggleComp",false], ["_toggleHelp",false], ["_toggleInterface",false], ["_toggleMap",false], ["_toggleTool",false], ["_toggleUnit",false]]; - -private ["_comp","_help","_map","_tool","_unit"]; -_comp = _display displayCtrl IDC_COMP; -_help = _display displayCtrl IDC_HELP; -_map = _display displayCtrl IDC_MAP; -_tool = _display displayCtrl IDC_TOOL; -_unit = _display displayCtrl IDC_UNIT; - -// Map operates outside of interface -GVAR(showMap) = [GVAR(showMap), !GVAR(showMap)] select _toggleMap; -_map ctrlShow GVAR(showMap); - -if (GVAR(showMap)) then { - // When map is shown, temporarily hide interface to stop overlapping - { - _x ctrlShow false; - } forEach [_comp,_help,_tool,_unit]; - - // Centre map on camera/unit upon opening - if (_toggleMap) then { - _map ctrlMapAnimAdd [0, 0.5, [GVAR(camUnit),GVAR(freeCamera)] select (GVAR(camMode) == 0)]; - ctrlMapAnimCommit _map; - }; -} else { - // Can only toggle interface with map minimised - GVAR(showInterface) = [GVAR(showInterface), !GVAR(showInterface)] select _toggleInterface; - - if (GVAR(showInterface)) then { - // Can only toggle interface elements with interface shown - GVAR(showComp) = [GVAR(showComp), !GVAR(showComp)] select _toggleComp; - GVAR(showHelp) = [GVAR(showHelp), !GVAR(showHelp)] select _toggleHelp; - GVAR(showTool) = [GVAR(showTool), !GVAR(showTool)] select _toggleTool; - GVAR(showUnit) = [GVAR(showUnit), !GVAR(showUnit)] select _toggleUnit; - - _comp ctrlShow GVAR(showComp); - _help ctrlShow GVAR(showHelp); - _tool ctrlShow GVAR(showTool); - _unit ctrlShow GVAR(showUnit); - } else { - { - _x ctrlShow false; - } forEach [_comp,_help,_tool,_unit]; - }; -}; - -// Only run PFHs when respective control is shown, otherwise kill -if (ctrlShown _comp) then { - if (isNil QGVAR(compHandler)) then { GVAR(compHandler) = [FUNC(handleCompass), 0, _display] call CBA_fnc_addPerFrameHandler; }; -} else { - GVAR(compHandler) = nil; -}; - -if (ctrlShown _tool) then { - if (isNil QGVAR(toolHandler)) then { GVAR(toolHandler) = [FUNC(handleToolbar), 0, _display] call CBA_fnc_addPerFrameHandler; }; -} else { - GVAR(toolHandler) = nil; -}; diff --git a/addons/spectator/functions/fnc_transitionCamera.sqf b/addons/spectator/functions/fnc_transitionCamera.sqf deleted file mode 100644 index 254dfef131c..00000000000 --- a/addons/spectator/functions/fnc_transitionCamera.sqf +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Author: SilentSpike - * Transitions the spectator camera vision/view/unit - * - * Arguments: - * 0: Camera mode - * - 0: Free - * - 1: Internal - * - 2: External - * 1: Camera unit - * 2: Vision mode - * - -2: Normal - * - -1: NV - * - 0: White hot - * - 1: Black hot - * - * Return Value: - * None - * - * Example: - * [0,objNull] call ace_spectator_fnc_transitionCamera - * - * Public: No - */ - -#include "script_component.hpp" - -params [["_newMode",GVAR(camMode)], ["_newUnit",GVAR(camUnit)], ["_newVision",GVAR(camVision)]]; - -// If new mode isn't available then keep current (unless current also isn't) -if !(_newMode in GVAR(availableModes)) then { - _newMode = GVAR(availableModes) select ((GVAR(availableModes) find GVAR(camMode)) max 0); -}; - -// When no units available to spectate, exit to freecam -if ((GVAR(unitList) isEqualTo []) && (alive _newUnit || isNull _newUnit)) then { - _newMode = 0; - _newUnit = objNull; -}; - -// Reset gun cam if not internal -if (_newMode != 1) then { - GVAR(camGun) = false; -}; - -private ["_camera"]; -if (_newMode == 0) then { // Free - _camera = GVAR(freeCamera); - - // Preserve camUnit value for consistency when manually changing view - _camera cameraEffect ["internal", "back"]; - - // Apply the camera zoom - _camera camSetFov -(linearConversion [0.01,2,GVAR(camZoom),-2,-0.01,true]); - _camera camCommit 0; - - // Agent is switched to in free cam to hide death table and prevent AI chat while allowing icons to draw (also prevents systemChat and unit HUD) - // (Why is so much stuff tied into the current camera unit BI?!) - if (isNull GVAR(camAgent)) then { - GVAR(camAgent) = createAgent ["VirtualMan_F",markerPos QGVAR(respawn),[],0,""]; - }; - - GVAR(camAgent) switchCamera "internal"; -} else { - _camera = GVAR(unitCamera); - - // When null unit is given choose random - if (isNull _newUnit) then { - _newUnit = selectRandom GVAR(unitList); - }; - - // Switch camera view to internal unit view (external uses the camera) - if (GVAR(camGun)) then { - _newUnit switchCamera "gunner"; - } else { - _newUnit switchCamera "internal"; - }; - - // Handle camera differently for internal/external view - if (_newMode == 1) then { - // Terminate camera view - _camera cameraEffect ["terminate", "back"]; - GVAR(camHandler) = nil; - } else { - // Switch to the camera - _camera cameraEffect ["internal", "back"]; - }; - - GVAR(camUnit) = _newUnit; -}; - -if (_newMode in [0,2]) then { - // Set up camera UI - showCinemaBorder false; - cameraEffectEnableHUD true; - - // Handle camera movement - if (isNil QGVAR(camHandler)) then { GVAR(camHandler) = [FUNC(handleCamera), 0] call CBA_fnc_addPerFrameHandler; }; - - // If new vision isn't available then keep current (unless current also isn't) - if !(_newVision in GVAR(availableVisions)) then { - _newVision = GVAR(availableVisions) select ((GVAR(availableVisions) find GVAR(camVision)) max 0); - }; - - // Vision mode applies to free and external cam - if (_newVision < 0) then { - false setCamUseTi 0; - camUseNVG (_newVision >= -1); - } else { - true setCamUseTi _newVision; - }; - GVAR(camVision) = _newVision; -}; - -GVAR(camMode) = _newMode; diff --git a/addons/spectator/functions/fnc_ui.sqf b/addons/spectator/functions/fnc_ui.sqf new file mode 100644 index 00000000000..345dac153d9 --- /dev/null +++ b/addons/spectator/functions/fnc_ui.sqf @@ -0,0 +1,92 @@ +/* + * Author: SilentSpike + * Handles UI initialisation and destruction + * + * Public: No + */ + +#include "script_component.hpp" + +params ["_init"]; + +// Close map +openMap [false,false]; + +// Close any open dialogs +// TODO: Could this be unnecessary? Might have adverse side effects in certain situations +while {dialog} do { + closeDialog 0; +}; + +// Note that init and destroy intentionally happen in reverse order +// Init: Vars > Display > UI Stuff +// Destroy: UI Stuff > Display > Vars +if (_init) then { + // UI visibility tracking + GVAR(uiVisible) = true; + GVAR(uiHelpVisible) = true; + GVAR(uiMapVisible) = true; + GVAR(uiWidgetVisible) = true; + + // RMB tracking is used for follow camera mode + GVAR(holdingRMB) = false; + + // List type is used for list updates and itneraction + GVAR(uiListType) = LIST_ENTITIES; + + // Highlighted map object is used for click and drawing events + GVAR(uiMapHighlighted) = objNull; + + // Cache view distance and set spectator default + GVAR(oldViewDistance) = viewDistance; + setViewDistance DEFAULT_VIEW_DISTANCE; + + // Create the display + MAIN_DISPLAY createDisplay QGVAR(display); + + // Initially hide map + [] call FUNC(ui_toggleMap); + + // Initially fade the list + [true] call FUNC(ui_fadeList); + + // Select the right camera button initially + // TODO + + // Update the focus info widget initially + [] call FUNC(ui_updateWidget); + + // Periodically update list and focus widget + GVAR(uiPFH) = [{ + if (GVAR(uiListType) == LIST_ENTITIES) then { + [] call FUNC(ui_updateListEntities); + } else { + [] call FUNC(ui_updateListLocations); + }; + + [] call FUNC(ui_updateWidget); + }, 5] call CBA_fnc_addPerFrameHandler; +} else { + // Stop updating the list and focus widget + [GVAR(uiPFH)] call CBA_fnc_removePerFrameHandler; + + // Destroy the display + SPEC_DISPLAY closeDisplay 1; + + // Stop tracking everything + GVAR(uiForced) = nil; + GVAR(uiVisible) = nil; + GVAR(uiHelpVisible) = nil; + GVAR(uiMapVisible) = nil; + GVAR(uiWidgetVisible) = nil; + GVAR(holdingRMB) = nil; + GVAR(uiListType) = nil; + GVAR(uiMapHighlighted) = nil; + + // Reset view distance + setViewDistance GVAR(oldViewDistance); + GVAR(oldViewDistance) = nil; + + // Ensure chat is shown again + showChat true; +}; diff --git a/addons/spectator/functions/fnc_ui_fadeList.sqf b/addons/spectator/functions/fnc_ui_fadeList.sqf new file mode 100644 index 00000000000..d4ac459572c --- /dev/null +++ b/addons/spectator/functions/fnc_ui_fadeList.sqf @@ -0,0 +1,40 @@ +/* + * Author: Nelson Duarte, AACO + * Function used to fade/unfade the entitiy/location list + * + * Public: No + */ + +#include "script_component.hpp" +TRACE_1("Params",_this); +disableSerialization; + +params ["_fadeList"]; + +if (GVAR(uiVisible)) then { + private _list = CTRL_LIST; + + if (_fadeList) then { + _list ctrlSetBackgroundColor [0,0,0,0]; + _list ctrlSetFade 0.8; + ctrlSetFocus CTRL_MOUSE; + + // if (GVAR(camMode) == MODE_FREE) then { + // GVAR(camera) camCommand "manual on"; + // }; + + showChat true; + } else { + _list ctrlSetBackgroundColor [0,0,0,0.75]; + _list ctrlSetFade 0.0; + ctrlSetFocus _list; + + // Disable camera input while using the list + // GVAR(camera) camCommand "manual off"; + + // List overlaps with chat + showChat false; + }; + + _list ctrlCommit 0.2; +}; diff --git a/addons/spectator/functions/fnc_ui_getTreeDataIndex.sqf b/addons/spectator/functions/fnc_ui_getTreeDataIndex.sqf new file mode 100644 index 00000000000..2233d1fc77b --- /dev/null +++ b/addons/spectator/functions/fnc_ui_getTreeDataIndex.sqf @@ -0,0 +1,33 @@ +/* + * Author: Nelson Duarte, AACO + * Function used to find a tree path of a unit + * + * Public: No + */ + +#include "script_component.hpp" + +params [["_data", "", [""]], "_treeIDC"]; + +scopeName QGVAR(getTreeDataIndex); + +// Make sure data is not empty +if (_data != "") then { + for "_sideIndex" from 0 to ((tvCount [_treeIDC, []]) - 1) do { + if (tvData [_treeIDC, [_sideIndex]] == _data) then { + [_sideIndex] breakOut QGVAR(getTreeDataIndex); + }; + for "_groupIndex" from 0 to ((tvCount [_treeIDC, [_sideIndex]]) - 1) do { + if (tvData [_treeIDC, [_sideIndex, _groupIndex]] == _data) then { + [_sideIndex, _groupIndex] breakOut QGVAR(getTreeDataIndex); + }; + for "_unitIndex" from 0 to ((tvCount [_treeIDC, [_sideIndex, _groupIndex]]) - 1) do { + if (tvData [_treeIDC, [_sideIndex, _groupIndex, _unitIndex]] == _data) then { + [_sideIndex, _groupIndex, _unitIndex] breakOut QGVAR(getTreeDataIndex); + }; + }; + }; + }; +}; + +[-1] // return empty path if not found (worst case) diff --git a/addons/spectator/functions/fnc_ui_handleChildDestroyed.sqf b/addons/spectator/functions/fnc_ui_handleChildDestroyed.sqf new file mode 100644 index 00000000000..5ced3b65265 --- /dev/null +++ b/addons/spectator/functions/fnc_ui_handleChildDestroyed.sqf @@ -0,0 +1,16 @@ +/* + * Author: Nelson Duarte + * Function used to handle child destroyed + * This only matters when abort button is pressed in child escape menu + * + * Public: No + */ + +#include "script_component.hpp" + +params ["_display","_child","_exitCode"]; + +if (_exitCode == 104) then { + _display closeDisplay 2; + MAIN_DISPLAY closeDisplay 2; +}; diff --git a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf new file mode 100644 index 00000000000..36acc209642 --- /dev/null +++ b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf @@ -0,0 +1,185 @@ +/* + * Author: Nelson Duarte, AACO, SilentSpike + * Function used to handle key press + * + * Public: No + */ + +#include "script_component.hpp" +#include "\A3\ui_f\hpp\defineDIKCodes.inc" + +params ["","_key","_shift","_ctrl","_alt"]; + +// Handle map toggle +if (inputAction "ShowMap" > 0 || inputAction "HideMap" > 0) exitWith { + [] call FUNC(ui_toggleMap); + true +}; + +// Handle escape menu +if (inputAction "ingamePause" > 0) exitWith { + if (GVAR(uiMapVisible)) then { + [] call FUNC(ui_toggleMap); + } else { + if (GVAR(uiForced)) then { + private _displayType = ["RscDisplayInterrupt","RscDisplayMPInterrupt"] select isMultiplayer; + SPEC_DISPLAY createDisplay _displayType; + } else { + [false] call FUNC(setSpectator); + }; + }; + true +}; + +// Handle postive change in draw +if (inputAction "zeroingUp" > 0) exitWith { + setViewDistance ((viewDistance + 250.0) min MAX_VIEW_DISTANCE); + true +}; + +// Handle negative change in draw +if (inputAction "zeroingDown" > 0) exitWith { + setViewDistance ((viewDistance - 250.0) max MIN_VIEW_DISTANCE); + true +}; + +// Handle vision mode cycling +if (inputAction "nightVision" > 0) exitWith { + private _stepVision = [1,-1] select _shift; + + private _oldVision = GVAR(camVision); + private _visions = GVAR(availableVisions); + + // Get current index and index count + private _iVision = (_visions find _oldVision) max 0; + private _countVisions = count _visions; + + if (_countVisions != 0) then { + _iVision = (_iVision + _stepVision) % _countVisions; + if (_iVision < 0) then { _iVision = _countVisions + _iVision; }; + }; + + private _newVision = _visions select _iVision; + + [_newVision] call FUNC(cam_setVisionMode); + true +}; + +// If the zeus key is pressed and unit is curator, open zeus interface +if ((inputAction "CuratorInterface") > 0 && {!isNull (getAssignedCuratorLogic player)}) exitWith { + // Disable drawing while in zeus + GVAR(drawUnits) = false; + GVAR(drawProjectiles) = false; + + SPEC_DISPLAY closeDisplay 1; + GVAR(camera) camCommand "manual off"; + + openCuratorInterface; + true +}; + +// Handle spectate lights +if (inputAction "headlights" > 0) exitWith { + if (GVAR(camLight)) then { + { deleteVehicle _x; } forEach GVAR(camLights); + GVAR(camLights) = []; + } else { + private _cameraLight = "#lightpoint" createvehicleLocal getPosASL GVAR(camera); + _cameraLight setLightBrightness 2; + _cameraLight setLightAmbient [1,1,1]; + _cameraLight setLightColor [0,0,0]; + _cameraLight lightAttachObject [GVAR(camera), [0,0,0]]; + + private _pointerLight = "#lightpoint" createvehicleLocal getPosASL GVAR(camera); + _pointerLight setLightBrightness 1; + _pointerLight setLightAmbient [1,1,1]; + _pointerLight setLightColor [0,0,0]; + + GVAR(camLights) = [_cameraLight, _pointerLight]; + }; + + GVAR(camLight) = !GVAR(camLight); + + true +}; + +// Handle toggle projectiles +if (inputAction "lockTarget" > 0) exitWith { + GVAR(drawProjectiles) = !GVAR(drawProjectiles); + true +}; + +// Handle toggle focus info widget +if (inputAction "networkStats" > 0) exitWith { + GVAR(uiWidgetVisible) = !GVAR(uiWidgetVisible); + [] call FUNC(ui_updateWidget); + true +}; + +// Handle very fast speed +if (_key == DIK_LALT) exitWith { + [true] call FUNC(cam_toggleVeryFastSpeed); + true +}; + +// Handle perspective cycling +if (_key in [DIK_SPACE, DIK_NUMPADENTER]) exitWith { + private _oldMode = GVAR(camMode); + private _modes = GVAR(availableModes); + + // Get current index and index count + private _iMode = (_modes find _oldMode) max 0; + private _countModes = count _modes; + + if (_countModes != 0) then { + _iMode = (_iMode + 1) % _countModes; + if (_iMode < 0) then { _iMode = _countModes + _iMode; }; + }; + + private _newMode = _modes select _iMode; + + [_newMode] call FUNC(cam_setCameraMode); + + true +}; + +// Handle getting next focus target +if (_key == DIK_RIGHT) exitWith { + [true] call FUNC(switchFocus); + true +}; + +// Handle getting previous focus target +if (_key == DIK_LEFT) exitWith { + [false] call FUNC(switchFocus); + true +}; + +// Handle toggling the UI +if (_key == DIK_BACKSPACE) exitWith { + [] call FUNC(toggleUI); + true +}; + +// Handle toggling the Tags +if (_key == DIK_BACKSLASH) exitWith { + GVAR(drawUnits) = !GVAR(drawUnits); + true +}; + +// Handle displaying help +if (_key == DIK_F1) exitWith { + CTRL_HELP ctrlShow !(ctrlShown HELP); + true +}; + +// Handle acre spectate headset down (if present) +if ( + ["acre_sys_radio"] call EFUNC(common,isModLoaded) && + { [_key, [_shift, _ctrl, _alt]] isEqualTo ((["ACRE2", "HeadSet"] call CBA_fnc_getKeybind) select 5) } +) exitWith { + [] call acre_sys_core_fnc_toggleHeadset; + true +}; + +false // default to unhandled diff --git a/addons/spectator/functions/fnc_ui_handleKeyUp.sqf b/addons/spectator/functions/fnc_ui_handleKeyUp.sqf new file mode 100644 index 00000000000..0fb30bb3076 --- /dev/null +++ b/addons/spectator/functions/fnc_ui_handleKeyUp.sqf @@ -0,0 +1,18 @@ +/* + * Author: Nelson Duarte, SilentSpike + * Function used to handle key release + * + * Public: No + */ + +#include "script_component.hpp" +#include "\A3\ui_f\hpp\defineDIKCodes.inc" + +params ["","_key","_shift","_ctrl","_alt"]; + +if (_key == DIK_LALT) exitWith { + [false] call FUNC(cam_toggleVeryFastSpeed); + true +}; + +false diff --git a/addons/spectator/functions/fnc_ui_handleListClick.sqf b/addons/spectator/functions/fnc_ui_handleListClick.sqf new file mode 100644 index 00000000000..f8397353d3a --- /dev/null +++ b/addons/spectator/functions/fnc_ui_handleListClick.sqf @@ -0,0 +1,39 @@ +/* + * Author: Nelson Duarte, AACO, SilentSpike + * Function used to handle list single/double clicks + * + * Public: No + */ +#include "script_component.hpp" +TRACE_1("Params",_this); +disableSerialization; + +params ["_dblClick","_params"]; +_params params ["_list","_index"]; + +private _handled = false; +private _object = GETMVAR(_list tvData _index,objNull); // List contains unique object variables + +if !(isNull _object) then { + if (_dblClick) then { + private _pos = getPosASLVisual _object; + { + _pos set [_forEachIndex, _x + 1 + random 10]; + } forEach _pos; + GVAR(camera) setPosASL _pos; + + [_object] call FUNC(setFocus); + playsound "ReadoutClick"; + + _handled = true; + } else { + if (_object != GVAR(camTarget)) then { + [_object] call FUNC(setFocus); + playsound "ReadoutClick"; + + _handled = true; + }; + }; +}; + +_handled diff --git a/addons/spectator/functions/fnc_ui_handleMapClick.sqf b/addons/spectator/functions/fnc_ui_handleMapClick.sqf new file mode 100644 index 00000000000..a165e54c61d --- /dev/null +++ b/addons/spectator/functions/fnc_ui_handleMapClick.sqf @@ -0,0 +1,30 @@ +/* + * Author: Nelson Duarte, AACO + * Function used to handle map mouse clicks + * + * Public: No + */ + +#include "script_component.hpp" +TRACE_1("Params",_this); +disableSerialization; + +params ["", "", "_x", "_y"]; + +if (isNull GVAR(uiMapHighlighted)) then { + // Give user feedback that camera is no longer focused + if !(isNull GVAR(camTarget)) then { + playsound "ReadoutHideClick1"; + }; + + // Preserve camera height on teleport + private _pos = CTRL_MAP ctrlMapScreenToWorld [_x, _y]; + _pos set [2, (getPosASLVisual GVAR(camera)) select 2]; + + GVAR(camera) setPosASL _pos; +} else { + // Give user feedback that camera is focused on highlighted unit + playsound "ReadoutClick"; +}; + +[GVAR(uiMapHighlighted)] call FUNC(setFocus); diff --git a/addons/spectator/functions/fnc_ui_handleMapDraw.sqf b/addons/spectator/functions/fnc_ui_handleMapDraw.sqf new file mode 100644 index 00000000000..229b6f6abd1 --- /dev/null +++ b/addons/spectator/functions/fnc_ui_handleMapDraw.sqf @@ -0,0 +1,91 @@ +/* + * Author: Nelson Duarte, AACO + * Function used to handle map draw + * + * Public: No + */ + +#include "script_component.hpp" +#define MAP_MIN_ENTITY_DISTANCE 30 +#define ICON_CAMERA "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\cameraTexture_ca.paa" + +// Moved timer into map controls group, update here +BEGIN_COUNTER(updateTimer); + +// Need to check relevance of this variable, is it a general module or EG specific +private _timeLeft = -(time - (GETMVAR(BIS_hvt_timeoutTarget,0)))/3600; + +if (_timeLeft < 0) then { + CTRL_TIME ctrlSetText (["+", [time / 3600] call BIS_fnc_timeToString] joinString ""); +} else { + CTRL_TIME ctrlSetText (["-", [_timeLeft] call BIS_fnc_timeToString] joinString ""); +}; + +END_COUNTER(updateTimer); + +BEGIN_COUNTER(drawMap); + +params ["_map"]; + +// Track nearest unit +private _loc = _map ctrlMapScreenToWorld getMousePosition; +private _nearestEntity = objNull; +private _minDist = 999999; + +// Draw unit icons +private _handledVehicles = []; +{ + private _dist = _x distance2D _loc; + + if (_dist < _minDist && { alive _x } && { _dist < MAP_MIN_ENTITY_DISTANCE } && { simulationEnabled _x } && { !(isObjectHidden _x) }) then { + _minDist = _dist; + _nearestEntity = _x; + }; + + private _vehicle = vehicle _x; + if (!(_vehicle in _handledVehicles) && { alive _vehicle } && { simulationEnabled _vehicle } && { !isObjectHidden _vehicle }) then { + _handledVehicles pushBack _vehicle; + + private _vehicleTexture = [_vehicle] call EFUNC(common,getVehicleIcon); + private _sideColor = [side group _vehicle] call BIS_fnc_sideColor; + private _text = ""; + + if (GVAR(uiMapHighlighted) == _vehicle || {GVAR(uiMapHighlighted) in _vehicle}) then { + private _name = [GVAR(uiMapHighlighted), false, false, NAME_MAX_CHARACTERS] call EFUNC(common,getName); + _sideColor = [0.8, 0.8, 0.5, 1]; + _text = if (isPlayer GVAR(uiMapHighlighted)) then { _name } else { format ["%1: %2", "AI", _name]; }; + }; + + if (NEEDS_REVIVE(_vehicle)) then { + _vehicleTexture = ICON_REVIVE; + _sideColor = [0.5, 0, 0, 1]; + }; + + if (time <= _vehicle getVariable [QGVAR(highlightTime), 0]) then { + _sideColor = [1, 1, 1, 1]; + }; + + _map drawIcon [_vehicleTexture, _sideColor, getPosASLVisual _vehicle, 24.0, 24.0, getDirVisual _vehicle, _text, 1, 0.04, "TahomaB", "right"]; + }; + nil // Speed loop +} count ([] call FUNC(getTargetEntities)); + +// Set highlighted unit +private _text = if (isNull _nearestEntity) then { + "" +} else { + format ["%1 [%2 m]", [_nearestEntity] call EFUNC(common,getName), round (_nearestEntity distance GVAR(camera))] +}; + +GVAR(uiMapHighlighted) = _nearestEntity; +CTRL_MAP_FOOTER ctrlSetText _text; + +// Draw camera icon +if !(isNil QGVAR(camera)) then { + private _cameraPos = getPosASLVisual GVAR(camera); + private _cameraDir = getDirVisual GVAR(camera); + _map drawIcon [ICON_CAMERA, [0.5, 1.0, 0.5, 1.0], _cameraPos, 32.0, 48.0, _cameraDir, "", 1, 0.05, "TahomaB", "right"]; + _map drawArrow [_cameraPos, (_cameraPos getPos [300, _cameraDir]), [0.5, 1.0, 0.5, 1.0]]; +}; + +END_COUNTER(drawMap); diff --git a/addons/spectator/functions/fnc_ui_handleMouseButtonDblClick.sqf b/addons/spectator/functions/fnc_ui_handleMouseButtonDblClick.sqf new file mode 100644 index 00000000000..150761cd79f --- /dev/null +++ b/addons/spectator/functions/fnc_ui_handleMouseButtonDblClick.sqf @@ -0,0 +1,16 @@ +/* + * Author: Nelson Duarte, AACO + * Function used to handle mouse button double clicks + * + * Public: No + */ + +#include "script_component.hpp" +TRACE_1("Params",_this); + +params ["", "_button"]; + +// Left click +if (_button == 0 && {!isNull GVAR(cursorObject)}) then { + [GVAR(cursorObject)] call FUNC(cam_prepareTarget); +}; diff --git a/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf b/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf new file mode 100644 index 00000000000..44088683b65 --- /dev/null +++ b/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf @@ -0,0 +1,32 @@ +/* + * Author: Nelson Duarte, AACO + * Function used to handle mouse down event + * + * Public: No + */ + +#include "script_component.hpp" +TRACE_1("Params",_this); + +params ["", "_button"]; + +// Left click +if (_button == 0) exitWith { + if (isNull GVAR(cursorObject)) then { + if (!isNull GVAR(camTarget)) then { + playsound "ReadoutHideClick1"; + }; + } else { + playsound "ReadoutClick"; + setMousePosition [0.5, 0.5]; + }; + [GVAR(cursorObject)] call FUNC(setFocus); +}; + +// Right click +if (_button == 1) then { + if (GVAR(camMode) == MODE_FREE && { !isNull GVAR(camTarget) } && { !isNull (attachedTo GVAR(camDummy)) }) then { + [] call FUNC(cam_resetTarget); + }; + GVAR(holdingRMB) = true; +}; diff --git a/addons/spectator/functions/fnc_ui_handleMouseMoving.sqf b/addons/spectator/functions/fnc_ui_handleMouseMoving.sqf new file mode 100644 index 00000000000..f09849e08e9 --- /dev/null +++ b/addons/spectator/functions/fnc_ui_handleMouseMoving.sqf @@ -0,0 +1,20 @@ +/* + * Author: Nelson Duarte, AACO + * Function used to handle mouse moving event + * + * Public: No + */ + +#include "script_component.hpp" + +if (GVAR(holdingRMB) && { GVAR(camMode) == MODE_FOLLOW }) then { + params ["", "_deltaX", "_deltaY"]; + + if (_deltaX != 0) then { + GVAR(camYaw) = ((GVAR(camYaw) + (_deltaX * 100 * GVAR(camDeltaTime)) + 180.0) % 360.0) - 180; + }; + + if (_deltaY != 0) then { + GVAR(camPitch) = (((GVAR(camYaw) - (_deltaY * 100 * GVAR(camDeltaTime))) max -90.0) min 90.0); + }; +}; diff --git a/addons/spectator/functions/fnc_ui_handleMouseZChanged.sqf b/addons/spectator/functions/fnc_ui_handleMouseZChanged.sqf new file mode 100644 index 00000000000..91bb7de894e --- /dev/null +++ b/addons/spectator/functions/fnc_ui_handleMouseZChanged.sqf @@ -0,0 +1,18 @@ +/* + * Author: Nelson Duarte, AACO + * Function used to handle mouse scroll event + * + * Public: No + */ + +#include "script_component.hpp" +#define FOLLOW_CAMERA_MAX_DISTANCE 5.0 +TRACE_1("Params",_this); + +if (GVAR(camMode) == MODE_FOLLOW) then { + if ((_this select 1) > 0) then { + GVAR(camDistance) = (GVAR(camDistance) - 1.0) max 0.0; + } else { + GVAR(camDistance) = (GVAR(camDistance) + 1.0) min FOLLOW_CAMERA_MAX_DISTANCE; + }; +}; diff --git a/addons/spectator/functions/fnc_ui_handleTabSelected.sqf b/addons/spectator/functions/fnc_ui_handleTabSelected.sqf new file mode 100644 index 00000000000..05ece695ce1 --- /dev/null +++ b/addons/spectator/functions/fnc_ui_handleTabSelected.sqf @@ -0,0 +1,28 @@ +/* + * Author: Nelson Duarte, SilentSpike + * Function used to handle list tab change + * + * Public: No + */ + +#include "script_component.hpp" +TRACE_1("Params",_this); +disableSerialization; + +params ["_ctrl", "_index"]; + +// Track current list type +GVAR(uiListType) = [LIST_ENTITIES, LIST_LOCATIONS] select _index; + +// Reset the current list +GVAR(curList) = nil; + +// Clear list +tvClear CTRL_LIST; + +// Force initial update +if (_index == 0) then { + [] call FUNC(ui_updateListEntities); +} else { + [] call FUNC(ui_updateListLocations); +}; diff --git a/addons/spectator/functions/fnc_ui_toggleMap.sqf b/addons/spectator/functions/fnc_ui_toggleMap.sqf new file mode 100644 index 00000000000..e7fb2122213 --- /dev/null +++ b/addons/spectator/functions/fnc_ui_toggleMap.sqf @@ -0,0 +1,37 @@ +/* + * Author: Nelson Duarte, AACO + * Function used to toggle the map + * + * Public: No + */ + +#include "script_component.hpp" + +if (GVAR(uiMapVisible)) then { + CTRL_MAP ctrlShow false; + CTRL_MAP_GROUP ctrlShow false; + + ctrlSetFocus CTRL_MOUSE; + + // if (GVAR(camMode) == MODE_FREE) then { + // GVAR(camera) camCommand "manual on"; + // }; +} else { + CTRL_MAP ctrlShow true; + CTRL_MAP_GROUP ctrlShow true; + + CTRL_MAP_TITLE ctrlSetText (getMissionConfigValue ["onLoadName", getMissionConfigValue ["briefingName", "???"]]); + CTRL_MAP_SPEC_NUM ctrlSetText str ({GETVAR(_x,GVAR(isSet),false)} count allPlayers); + + CTRL_MAP ctrlMapAnimAdd [0, 0.05, getPosASLVisual GVAR(camera)]; + ctrlMapAnimCommit CTRL_MAP; + + // Disable camera input while map is open + // GVAR(camera) camCommand "manual off"; +}; + +// Toggle the tracking variable +GVAR(uiMapVisible) = !GVAR(uiMapVisible); + +// Reset highlighted object +GVAR(uiMapHighlighted) = objNull; diff --git a/addons/spectator/functions/fnc_ui_updateListEntities.sqf b/addons/spectator/functions/fnc_ui_updateListEntities.sqf new file mode 100644 index 00000000000..b2c2f134556 --- /dev/null +++ b/addons/spectator/functions/fnc_ui_updateListEntities.sqf @@ -0,0 +1,175 @@ +/* + * Author: Nelson Duarte, AACO, SilentSpike + * Updates spectator UI list of units/groups + * + * Public: No + */ + +#include "script_component.hpp" + +private _newUnits = []; +private _newGroups = []; +private _newList = [ + [west, "west", localize "str_west", []], + [east, "east", localize "str_east", []], + [independent, "indy", localize "str_guerrila", []], + [civilian, "civ", localize "str_civilian", []] +]; + +// Go through groups and get the valid ones only, also cache group units information +{ + private _group = _x; + private _groupSide = side _group; + private _groupTexture = ["GetGroupTexture", [_group]] call BIS_fnc_dynamicGroups; + private _groupInfo = [_group, side _group, _groupTexture, groupId _group]; + private _unitsInfo = []; + + // Validate units + { + if ( + simulationEnabled _x && + {!isObjectHidden _x} && + {simulationEnabled vehicle _x} && + {!isObjectHidden vehicle _x} + ) then { + _unitsInfo pushBack [ + _x, + alive _x, + alive _x && { NEEDS_REVIVE(_x) }, + [_x, false, false, NAME_MAX_CHARACTERS] call EFUNC(common,getName) + ]; + }; + nil // Speed loop + } count (units _x); + + // If we have valid units in the group, group is deemed valid + if !(_unitsInfo isEqualTo []) then { + _newGroups pushBack (str _group); + { + if (_groupSide == (_newList select _forEachIndex) select 0) exitWith { + ((_newList select _forEachIndex) select 3) pushBack [_groupInfo, _unitsInfo]; + }; + } forEach _newList; + }; + nil // Speed loop +} count ([] call FUNC(getTargetGroups)); + +// Whether an update to the list is required (really only if something changed) +if !(GVAR(curList) isEqualTo _newList) then { + private _allElements = ["TreeGetAllElements"] call FUNC(display); + private _groupElements = _allElements select 1; + private _unitElements = _allElements select 2; + + // Remove groups/units that are no longer there + private _ctrl = CTRL_LIST; + for "_sideIndex" from (_ctrl tvCount []) to 1 do { + for "_groupIndex" from (_ctrl tvCount [_sideIndex - 1]) to 1 do { + for "_unitIndex" from (_ctrl tvCount [_sideIndex - 1, _groupIndex - 1]) to 1 do { + private _lookup = _newUnits find (_ctrl tvData [_sideIndex - 1, _groupIndex - 1, _unitIndex - 1]); + if (_lookup < 0) then { + _ctrl tvDelete [_sideIndex - 1, _groupIndex - 1, _unitIndex - 1]; + } else { + _newUnits deleteAt _lookup; + }; + }; + private _lookup = _newGroups find (_ctrl tvData [_sideIndex - 1, _groupIndex - 1]); + if (_lookup < 0) then { + _ctrl tvDelete [_sideIndex - 1, _groupIndex - 1]; + } else { + _newGroups deleteAt _lookup; + }; + }; + }; + + + // Hash location lookups, note hashing assumes unique group/unit data + private _groupDataToPathHash = [[], []]; + private _unitDataToPathHash = [[], []]; + + for "_sideIndex" from 0 to ((_ctrl tvCount []) - 1) do { + for "_groupIndex" from 0 to ((_ctrl tvCount [_sideIndex]) - 1) do { + (_groupDataToPathHash select 0) pushBack (_ctrl tvData [_sideIndex, _groupIndex]); + (_groupDataToPathHash select 1) pushBack [_sideIndex, _groupIndex]; + for "_unitIndex" from 0 to ((_ctrl tvCount [_sideIndex, _groupIndex]) - 1) do { + (_unitDataToPathHash select 0) pushBack (_ctrl tvData [_sideIndex, _groupIndex, _unitIndex]); + (_unitDataToPathHash select 1) pushBack [_sideIndex, _groupIndex, _unitIndex]; + }; + }; + }; + + // Update/add the values + { + _x params ["_side", "_sideStr", "_sideTitle", "_nestedGroupData"]; + private _sideIndex = _forEachIndex; + private _sideColor = [_side] call BIS_fnc_sideColor; + + if (_ctrl tvCount [] == _sideIndex) then { + _ctrl tvAdd [[], _sideTitle]; + _ctrl tvSetData [[_sideIndex], _sideStr]; + }; + + _ctrl tvExpand [_sideIndex]; + + { + _x params ["_groupInfo", "_nestedUnitData"]; + _groupInfo params ["_group", "_groupStr", "_groupTexture", "_groupId"]; + + private _groupIndex = -1; + private _lookup = (_groupDataToPathHash select 0) find _groupStr; + if (_lookup < 0) then { + _groupIndex = _ctrl tvAdd [[_sideIndex], _groupId]; + _ctrl tvSetData [[_sideIndex, _groupIndex], _groupStr]; + _ctrl tvSetPicture [[_sideIndex, _groupIndex], _groupTexture]; + _ctrl tvSetPictureColor [[_sideIndex, _groupIndex], [1,1,1,0.5]]; + _ctrl tvSetTooltip [[_sideIndex, _groupIndex], _groupId]; + _ctrl tvExpand [_sideIndex, _groupIndex]; + } else { + // pop data out of hash to improve later lookups + (_groupDataToPathHash select 0) deleteAt _lookup; + private _path = (_groupDataToPathHash select 1) deleteAt _lookup; + _groupIndex = _path select 1; + + _ctrl tvSetText [_path, _groupId]; + _ctrl tvSetPicture [[_sideIndex, _groupIndex], _groupTexture]; + _ctrl tvSetPictureColor [[_sideIndex, _groupIndex], [1,1,1,0.5]]; + _ctrl tvSetTooltip [_path, _groupId]; + }; + + { + _x params ["_unit", "_isAlive", "_isIncapacitated", "_name"]; + + private _tooltip = format ["%1 - %2", _name, _groupId]; + private _texture = [_isAlive, _isIncapacitated, _unit] call { + if !(_this select 0) exitWith { ICON_DEAD }; + if (_this select 1) exitWith { ICON_REVIVE }; + [_this select 2] call EFUNC(common,getVehicleIcon) + }; + + private _lookup = (_unitDataToPathHash select 0) find ([_unit] call BIS_fnc_objectVar); + if (_lookup < 0) then { + private _unitIndex = _ctrl tvAdd [[_sideIndex, _groupIndex], _name]; + _ctrl tvSetData [[_sideIndex, _groupIndex, _unitIndex], [_unit] call BIS_fnc_objectVar]; + _ctrl tvSetPicture [[_sideIndex, _groupIndex, _unitIndex], _texture]; + _ctrl tvSetPictureColor [[_sideIndex, _groupIndex, _unitIndex], _sideColor]; + _ctrl tvSetTooltip [[_sideIndex, _groupIndex, _unitIndex], _tooltip]; + } else { + // pop data out of hash to improve later lookups + (_unitDataToPathHash select 0) deleteAt _lookup; + private _path = (_unitDataToPathHash select 1) deleteAt _lookup; + _ctrl tvSetText [_path, _name]; + _ctrl tvSetPicture [_path, _texture]; + _ctrl tvSetPictureColor [_path, _sideColor]; + _ctrl tvSetTooltip [_path, _tooltip]; + }; + nil // Speed loop + } count _nestedUnitData; + nil // Speed loop + } count _nestedGroupData; + } forEach _newList; + + // Store the new list as the current list + GVAR(curList) = _newList; +}; + +// Update focus if required +[] call FUNC(ui_updateListFocus); diff --git a/addons/spectator/functions/fnc_ui_updateListFocus.sqf b/addons/spectator/functions/fnc_ui_updateListFocus.sqf new file mode 100644 index 00000000000..ffd69cdbe56 --- /dev/null +++ b/addons/spectator/functions/fnc_ui_updateListFocus.sqf @@ -0,0 +1,12 @@ +/* + * Author: Nelson Duarte, AACO + * Function used to update the list focus + * + * Public: No + */ + +#include "script_component.hpp" + +if (GVAR(uiVisible)) then { + CTRL_LIST tvSetCurSel ([[GVAR(camTarget)] call BIS_fnc_objectVar, IDC_LIST] call FUNC(ui_getTreeDataIndex)); +}; diff --git a/addons/spectator/functions/fnc_ui_updateListLocations.sqf b/addons/spectator/functions/fnc_ui_updateListLocations.sqf new file mode 100644 index 00000000000..6affc1f9c67 --- /dev/null +++ b/addons/spectator/functions/fnc_ui_updateListLocations.sqf @@ -0,0 +1,60 @@ +/* + * Author: Nelson Duarte, SilentSpike + * Updates spectator UI list of locations + * + * Public: No + */ + +#include "script_component.hpp" + +// Temporarily do nothing +if true exitWith {}; + +private _newList = []; + +// + +// Whether an update to the list is required (really only if something changed) +if !(GVAR(curList) isEqualTo _newList) then { + private _allLocations = []; + + private _ctrl = CTRL_LIST; + for "_i" from 0 to ((_ctrl tvCount []) - 1) do + { + _allLocations pushBack (_ctrl tvData [_i]); + }; + + { + private ["_id", "_object", "_name", "_description", "_texture", "_cameraOffset"]; + _id = _x select 0; + _name = _x select 1; + _description = _x select 2; + _texture = _x select 3; + _cameraOffset = _x select 4; + + _allLocations = _allLocations - [_id]; + + private _i = ["TreeGetDataIndex", [_id]] call FUNC(display); + + if (_i isEqualTo []) then + { + _ctrl tvAdd [[], _name]; + _ctrl tvSetData [[_forEachIndex], _id]; + _ctrl tvSetPicture [[_forEachIndex], _texture]; + _ctrl tvSetPictureColor [[_forEachIndex], [1,1,1,1]]; + _ctrl tvSetTooltip [[_forEachIndex], _name]; + } + else + { + _ctrl tvSetText [_i, _name]; + _ctrl tvSetPicture [_i, _texture]; + _ctrl tvSetPictureColor [_i, [1,1,1,1]]; + _ctrl tvSetTooltip [_i, _name]; + }; + } forEach _newList; + + // Delete all elements that are now gone + { ["TreeDeleteItem", [_x]] call FUNC(display); } forEach _allLocations; + + GVAR(curList) = _newList; +}; diff --git a/addons/spectator/functions/fnc_ui_updateWidget.sqf b/addons/spectator/functions/fnc_ui_updateWidget.sqf new file mode 100644 index 00000000000..cb4df0044b4 --- /dev/null +++ b/addons/spectator/functions/fnc_ui_updateWidget.sqf @@ -0,0 +1,61 @@ +/* + * Author: Nelson Duarte, SilentSpike + * Updates spectator UI unit info widget + * + * Public: No + */ + +#include "script_component.hpp" +#define IMG_COMMANDER "a3\Ui_f\data\IGUI\Cfg\CommandBar\imageCommander_ca.paa" +#define IMG_DRIVER "a3\Ui_f\data\IGUI\Cfg\CommandBar\imageDriver_ca.paa" +#define IMG_GUNNER "a3\Ui_f\data\IGUI\Cfg\CommandBar\imageGunner_ca.paa" +#define IMG_CARGO "a3\Ui_f\data\IGUI\Cfg\CommandBar\imageCommander_ca.paa" + +if (!GVAR(uiWidgetVisible) || {isNull GVAR(camTarget)}) exitWith {CTRL_WIDGET ctrlShow false}; + +private _focus = GVAR(camTarget); + +private _name = if (isPlayer _focus) then { + [_focus, false, false, NAME_MAX_CHARACTERS] call EFUNC(common,getName); +} else { + format ["%1: %2", localize "str_player_ai", [_focus, false, false, NAME_MAX_CHARACTERS] call EFUNC(common,getName)]; +}; + +private _unitTypePicture = [_focus] call EFUNC(common,getVehicleIcon); +private _vehicleTypePicture = getText (configFile >> "CfgVehicles" >> typeOf vehicle _focus >> "Picture"); +private _insigniaTexture = ["GetGroupTexture", [group _focus]] call BIS_fnc_dynamicGroups; + +private _weapon = currentWeapon _focus; +private _weaponPicture = if (_weapon != "") then { + getText (configFile >> "CfgWeapons" >> _weapon >> "Picture"); +} else { + if (commander vehicle _focus == _focus) exitWith {IMG_COMMANDER}; + if (driver vehicle _focus == _focus) exitWith {IMG_DRIVER}; + if (gunner vehicle _focus == _focus) exitWith {IMG_GUNNER}; + IMG_CARGO +}; + +(getPlayerScores _focus) params [["_kills",0,[0]], ["_softKills",0,[0]], ["_armoredKills",0,[0]], ["_airKills",0,[0]], ["_deaths",0,[0]], ["_total",0,[0]]]; + +CTRL_WIDGET_NAME ctrlSetText _name; +CTRL_WIDGET_AVATAR ctrlSetText _insigniaTexture; +CTRL_WIDGET_KILLS ctrlSetText str _kills; +CTRL_WIDGET_LAND ctrlSetText str _softKills; +CTRL_WIDGET_ARMORED ctrlSetText str _armoredKills; +CTRL_WIDGET_AIR ctrlSetText str _airKills; +CTRL_WIDGET_DEATHS ctrlSetText str _deaths; +CTRL_WIDGET_TOTAL ctrlSetText str _total; +CTRL_WIDGET_WEAPON ctrlSetText _weaponPicture; + +CTRL_WIDGET_UNIT ctrlSetText (["",_unitTypePicture] select (vehicle _focus == _focus)); +CTRL_WIDGET_UNIT ctrlShow (vehicle _focus == _focus); +CTRL_WIDGET_VEHICLE ctrlSetText (["",_vehicleTypePicture] select (vehicle _focus != _focus)); +CTRL_WIDGET_VEHICLE ctrlShow (vehicle _focus != _focus); + +CTRL_WIDGET_WEAPON ctrlShow (_weaponPicture != ""); +CTRL_WIDGET_WEAPON_BACK ctrlShow (_weaponPicture != ""); + +// Handle widget toggling +if !(ctrlShown CTRL_WIDGET) then { + CTRL_WIDGET ctrlShow true; +}; diff --git a/addons/spectator/functions/fnc_updateCameraModes.sqf b/addons/spectator/functions/fnc_updateCameraModes.sqf index 819636ee228..cf9887794a1 100644 --- a/addons/spectator/functions/fnc_updateCameraModes.sqf +++ b/addons/spectator/functions/fnc_updateCameraModes.sqf @@ -3,8 +3,8 @@ * Adds or removes spectator camera modes from the selection available to the local player. * Possible camera modes are: * - 0: Free - * - 1: Internal - * - 2: External + * - 1: First person + * - 2: Follow * * Arguments: * 0: Camera modes to add @@ -39,7 +39,7 @@ _newModes sort true; // Can't become an empty array if (_newModes isEqualTo []) then { - ["Cannot remove all camera modes (%1)", QFUNC(updateCameraModes)] call BIS_fnc_error; + WARNING("Cannot remove all spectator camera modes"); } else { GVAR(availableModes) = _newModes; }; diff --git a/addons/spectator/functions/fnc_updateVisionModes.sqf b/addons/spectator/functions/fnc_updateVisionModes.sqf index 6db965af3ed..9b9b88c10dd 100644 --- a/addons/spectator/functions/fnc_updateVisionModes.sqf +++ b/addons/spectator/functions/fnc_updateVisionModes.sqf @@ -47,7 +47,7 @@ _newModes sort true; // Can't become an empty array if (_newModes isEqualTo []) then { - ["Cannot remove all vision modes (%1)", QFUNC(updateVisionModes)] call BIS_fnc_error; + WARNING("Cannot remove all spectator vision modes"); } else { GVAR(availableVisions) = _newModes; }; diff --git a/addons/spectator/script_component.hpp b/addons/spectator/script_component.hpp index 38561f3cddd..c3009b72e06 100644 --- a/addons/spectator/script_component.hpp +++ b/addons/spectator/script_component.hpp @@ -24,39 +24,119 @@ #define X_PART(num) (W_PART(num) + (safezoneX + (safezoneW - SIZEX)/2)) #define Y_PART(num) (H_PART(num) + (safezoneY + (safezoneH - SIZEY)/2)) -// UI tools -#define TOOL_H H_PART(1) -#define TOOL_W W_PART(5) -#define MARGIN TOOL_W * 0.05 - -// UI compass -#define COMPASS_W (TOOL_W * 4) -#define COMPASS_X (safeZoneX + safeZoneW * 0.5 - COMPASS_W * 0.5) - -// UI IDCs -#define IDC_COMP 4490 -#define IDC_COMP_0 5000 -#define IDC_COMP_90 5090 -#define IDC_COMP_180 5180 -#define IDC_COMP_270 5270 - -#define IDC_HELP 7631 -#define IDC_HELP_LIST 7622 - -#define IDC_MAP 6791 - -#define IDC_TOOL 3000 -#define IDC_TOOL_CLOCK 3003 -#define IDC_TOOL_FOV 3005 -#define IDC_TOOL_NAME 3001 -#define IDC_TOOL_SPEED 3006 -#define IDC_TOOL_VIEW 3002 -#define IDC_TOOL_VISION 3004 - -#define IDC_UNIT 6002 -#define IDC_UNIT_TREE 6005 - -// UI colours -#define COL_BACK 0.1,0.1,0.1,0.7 -#define COL_FORE 1,1,1,1 -#define COL_FORE_D 0.1,0.1,0.1,0.8 +// UI/Camera related values +#define SPEED_DEFAULT 0.1 +#define SPEED_FAST 2.0 +#define SPEED_VERYFAST 3.0 + +#define MODE_FREE 0 +#define MODE_FPS 1 +#define MODE_FOLLOW 2 + +#define VISION_NORM -2 +#define VISION_NVG -1 + +#define MAX_VIEW_DISTANCE 2500 +#define MIN_VIEW_DISTANCE 500 +#define DEFAULT_VIEW_DISTANCE 1200 + +#define MAX_TRACKED_GRENADES 15 +#define MAX_TRACKED_PROJECTILES 50 +#define MAX_TRACKED_PROJECTILE_SEGMENTS 50 + +#define DISTANCE_NAMES 175 +#define NAME_MAX_CHARACTERS 17 +#define MAX_CONTROLS_HELP_ENTRIES 12 + +#define LIST_ENTITIES localize "STR_A3_Spectator_Entities" +#define LIST_LOCATIONS localize "STR_A3_Spectator_Locations" +#define LIST_UPDATE_RATE 1 + +// Revive variables +#define BIS_REVIVE "BIS_revive_incapacitated" +#define ACE_REVIVE "ACE_isUnconscious" +#define NEEDS_REVIVE(unit) (unit getVariable [ACE_REVIVE,false]) || {unit getVariable [BIS_REVIVE,false]} + +// Icons used in the UI +#define ICON_BACKGROUND "A3\Ui_f\data\IGUI\Cfg\simpleTasks\background1_ca.paa" +#define ICON_DEAD "a3\Ui_F_Curator\Data\CfgMarkers\kia_ca.paa" +#define ICON_GROUP "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\GroupIcon_ca.paa" +#define ICON_UNIT "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\UnitIcon_ca.paa" +#define ICON_REVIVE "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\ReviveIcon_ca.paa" +#define ICON_BACKGROUND_UNIT "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\UnitName_ca.paa" +#define CAM_ICON_FREE "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\FreeSelected.paa" +#define CAM_ICON_FREE_SELECTED "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\Free.paa" +#define CAM_ICON_FOLLOW "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\FollowSelected.paa" +#define CAM_ICON_FOLLOW_SELECTED "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\Follow.paa" +#define CAM_ICON_FPS "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\FpsSelected.paa" +#define CAM_ICON_FPS_SELECTED "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\Fps.paa" + +// IDCs +#define MAIN_DISPLAY ([] call BIS_fnc_displayMission) + +#define IDD_SPEC_DISPLAY 60000 +#define SPEC_DISPLAY (findDisplay IDD_SPEC_DISPLAY) + +#define IDC_MOUSE 60001 +#define CTRL_MOUSE (SPEC_DISPLAY displayCtrl IDC_MOUSE) + +#define IDC_TIME 60002 +#define CTRL_TIME (SPEC_DISPLAY displayCtrl IDC_TIME) + +#define IDC_LIST 60003 +#define CTRL_LIST (SPEC_DISPLAY displayCtrl IDC_LIST) + +#define IDC_TABS 60004 +#define CTRL_TABS (SPEC_DISPLAY displayCtrl IDC_TABS) + +#define IDC_CAM_TYPES 60005 +#define CTRL_CAM_TYPES (SPEC_DISPLAY displayCtrl IDC_CAM_TYPES) +#define IDC_FREE 60006 +#define CTRL_FREE (SPEC_DISPLAY displayCtrl IDC_FREE) +#define IDC_FOLLOW 60007 +#define CTRL_FOLLOW (SPEC_DISPLAY displayCtrl IDC_FOLLOW) +#define IDC_FPS 60008 +#define CTRL_FPS (SPEC_DISPLAY displayCtrl IDC_FPS) + +#define IDC_MAP_GROUP 60010 +#define CTRL_MAP_GROUP (SPEC_DISPLAY displayCtrl IDC_MAP_GROUP) +#define IDC_MAP_TITLE 60011 +#define CTRL_MAP_TITLE (SPEC_DISPLAY displayCtrl IDC_MAP_TITLE) +#define IDC_MAP_FOOTER 60012 +#define CTRL_MAP_FOOTER (SPEC_DISPLAY displayCtrl IDC_MAP_FOOTER) +#define IDC_MAP_SPEC_NUM 60013 +#define CTRL_MAP_SPEC_NUM (SPEC_DISPLAY displayCtrl IDC_MAP_SPEC_NUM) +#define IDC_MAP 60014 +#define CTRL_MAP (SPEC_DISPLAY displayCtrl IDC_MAP) + +#define IDC_HELP_BACK 60020 +#define CTRL_HELP_BACK (SPEC_DISPLAY displayCtrl IDC_HELP_BACK) +#define IDC_HELP 60021 +#define CTRL_HELP (SPEC_DISPLAY displayCtrl IDC_HELP) + +#define IDC_WIDGET 60030 +#define CTRL_WIDGET (SPEC_DISPLAY displayCtrl IDC_WIDGET) +#define IDC_WIDGET_VEHICLE 60031 +#define CTRL_WIDGET_VEHICLE (SPEC_DISPLAY displayCtrl IDC_WIDGET_VEHICLE) +#define IDC_WIDGET_UNIT 60032 +#define CTRL_WIDGET_UNIT (SPEC_DISPLAY displayCtrl IDC_WIDGET_UNIT) +#define IDC_WIDGET_NAME 60033 +#define CTRL_WIDGET_NAME (SPEC_DISPLAY displayCtrl IDC_WIDGET_NAME) +#define IDC_WIDGET_AVATAR 60034 +#define CTRL_WIDGET_AVATAR (SPEC_DISPLAY displayCtrl IDC_WIDGET_AVATAR) +#define IDC_WIDGET_KILLS 60035 +#define CTRL_WIDGET_KILLS (SPEC_DISPLAY displayCtrl IDC_WIDGET_KILLS) +#define IDC_WIDGET_LAND 60036 +#define CTRL_WIDGET_LAND (SPEC_DISPLAY displayCtrl IDC_WIDGET_LAND) +#define IDC_WIDGET_ARMORED 60037 +#define CTRL_WIDGET_ARMORED (SPEC_DISPLAY displayCtrl IDC_WIDGET_ARMORED) +#define IDC_WIDGET_AIR 60038 +#define CTRL_WIDGET_AIR (SPEC_DISPLAY displayCtrl IDC_WIDGET_AIR) +#define IDC_WIDGET_DEATHS 60039 +#define CTRL_WIDGET_DEATHS (SPEC_DISPLAY displayCtrl IDC_WIDGET_DEATHS) +#define IDC_WIDGET_TOTAL 60040 +#define CTRL_WIDGET_TOTAL (SPEC_DISPLAY displayCtrl IDC_WIDGET_TOTAL) +#define IDC_WIDGET_WEAPON 60041 +#define CTRL_WIDGET_WEAPON (SPEC_DISPLAY displayCtrl IDC_WIDGET_WEAPON) +#define IDC_WIDGET_WEAPON_BACK 60042 +#define CTRL_WIDGET_WEAPON_BACK (SPEC_DISPLAY displayCtrl IDC_WIDGET_WEAPON_BACK) From 4dd6fda270138cb5004a0d6db08c4367dda2c25b Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Wed, 17 May 2017 11:22:06 +0100 Subject: [PATCH 004/198] Remove redundant canInteract condition Spectator UI will be open anyway so this is pointless. --- addons/spectator/XEH_postInit.sqf | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/addons/spectator/XEH_postInit.sqf b/addons/spectator/XEH_postInit.sqf index aeb49579cfb..b87e1fd39ff 100644 --- a/addons/spectator/XEH_postInit.sqf +++ b/addons/spectator/XEH_postInit.sqf @@ -1,8 +1,5 @@ #include "script_component.hpp" -// Add interaction menu exception -["isNotSpectating", {!(GVAR(isSet))}] call EFUNC(common,addCanInteractWithCondition); - ["ace_settingsInitialized", { GVAR(availableModes) = [[0,1,2], [1,2], [0], [1], [2]] select GVAR(restrictModes); GVAR(availableVisions) = [[-2,-1,0,1], [-2,-1], [-2,0,1], [-2]] select GVAR(restrictVisions); @@ -15,3 +12,7 @@ if (isServer) then { }; [QGVAR(stageSpectator), FUNC(stageSpectator)] call CBA_fnc_addEventHandler; + +// TODO: Unit switch EH, if virtual spectator, start spectating + +// TODO: Override BI setting, hook into display init From cbc441ad11d0fcd7da9bbd63f6810170d9a40bbc Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Wed, 17 May 2017 13:42:44 +0100 Subject: [PATCH 005/198] Fix follow camera controls Also ensure unit camera modes have a target more consistently --- addons/spectator/XEH_PREP.hpp | 1 + addons/spectator/functions/fnc_cam.sqf | 5 ++ addons/spectator/functions/fnc_cam_draw3D.sqf | 86 ++++++++++--------- .../functions/fnc_cam_prepareTarget.sqf | 31 +++---- .../functions/fnc_cam_setCameraMode.sqf | 16 ++-- addons/spectator/functions/fnc_setFocus.sqf | 27 ++++++ .../functions/fnc_ui_handleMouseMoving.sqf | 2 +- addons/spectator/script_component.hpp | 2 + 8 files changed, 104 insertions(+), 66 deletions(-) create mode 100644 addons/spectator/functions/fnc_setFocus.sqf diff --git a/addons/spectator/XEH_PREP.hpp b/addons/spectator/XEH_PREP.hpp index 6362102c455..928dea6c4f7 100644 --- a/addons/spectator/XEH_PREP.hpp +++ b/addons/spectator/XEH_PREP.hpp @@ -36,6 +36,7 @@ PREP(getTargetGroups); PREP(interrupt); PREP(moduleSpectatorSettings); PREP(respawnTemplate); +PREP(setFocus); PREP(setSpectator); PREP(stageSpectator); PREP(updateCameraModes); diff --git a/addons/spectator/functions/fnc_cam.sqf b/addons/spectator/functions/fnc_cam.sqf index e281c9c1a3f..840f4c2fab2 100644 --- a/addons/spectator/functions/fnc_cam.sqf +++ b/addons/spectator/functions/fnc_cam.sqf @@ -33,6 +33,7 @@ if (_init) then { // Follow camera related GVAR(camDistance) = 0; + GVAR(camDistanceTemp) = 0; GVAR(camYaw) = 0; GVAR(camPitch) = 0; @@ -73,6 +74,9 @@ if (_init) then { // Start ticking GVAR(camPFH) = [LINKFUNC(cam_updateThingsToDraw), 0.2] call CBA_fnc_addPerFrameHandler; GVAR(draw3D) = addMissionEventHandler ["Draw3D", {call FUNC(cam_draw3D)}]; + + // Set the initial camera mode (could be pre-set) + [GVAR(camMode)] call FUNC(cam_setCameraMode); } else { // Stop ticking removeMissionEventHandler ["Draw3D", GVAR(draw3D)]; @@ -110,6 +114,7 @@ if (_init) then { GVAR(projectiles) = nil; GVAR(thingsToDraw) = nil; GVAR(camDistance) = nil; + GVAR(camDistanceTemp) = nil; GVAR(camYaw) = nil; GVAR(camPitch) = nil; GVAR(camFast) = nil; diff --git a/addons/spectator/functions/fnc_cam_draw3D.sqf b/addons/spectator/functions/fnc_cam_draw3D.sqf index 8d6abd3f3fc..51ae287d91f 100644 --- a/addons/spectator/functions/fnc_cam_draw3D.sqf +++ b/addons/spectator/functions/fnc_cam_draw3D.sqf @@ -32,55 +32,61 @@ GVAR(cursorObject) = _cursorObject; END_COUNTER(updateCursor); BEGIN_COUNTER(camTick); -if !(isNull _camera) then { - private _cameraMode = GVAR(camMode); - private _focus = _camTarget; - - // UI mouse handler makes use of delta time between camera ticks - private _currentTime = diag_tickTime; - GVAR(camDeltaTime) = _currentTime - GVAR(camLastTickTime); - GVAR(camLastTickTime) = _currentTime; - - // Unit camera modes - if (_cameraMode in [MODE_FPS, MODE_FOLLOW]) then { - // If no focus in these modes find a new one - if (isNull _focus) then { - _focus = ["FindFocus"] call FUNC(display); - }; +private _cameraMode = GVAR(camMode); + +// UI mouse handler makes use of delta time between camera ticks +private _currentTime = diag_tickTime; +GVAR(camDeltaTime) = _currentTime - GVAR(camLastTickTime); +GVAR(camLastTickTime) = _currentTime; + +// If no focus in unit camera modes try to find a new one +if (_cameraMode in MODES_UNIT) then { + private _focus = if (isNull _camTarget) then { + private _testFocus = ([] call FUNC(getTargetEntities)) select 0; + if (isNil "_testFocus") then { + objNull + } else { + _testFocus + } + } else { + _camTarget + }; - // If new focus was found then switch to it - if !(isNull _focus && {_focus != _camTarget}) then { - ["SetFocus", [_focus]] call FUNC(display); - }; + // If new focus was found then switch to it + if !(isNull _focus && {_focus != _camTarget}) then { + [_focus] call FUNC(setFocus); + }; - if (!isNull _focus && {_cameraMode == MODE_FOLLOW}) then { - [_focus] call FUNC(cam_prepareTarget); - }; + if (!isNull _focus && {_cameraMode == MODE_FOLLOW}) then { + [_focus] call FUNC(cam_prepareTarget); }; +}; - // Focus get in / out of vehicle state - if !(isNull _focus) then { - private _targetInVeh = GVAR(camTargetInVehicle); +// Refresh the local variable +_camTarget = GVAR(camTarget); - if (GVAR(camHasTarget)) then { - if (!_targetInVeh && { vehicle _focus != _focus }) then { - [_focus] call FUNC(cam_setTarget); - GVAR(camTargetInVehicle) = true; - }; +// Focus get in / out of vehicle state +if !(isNull _camTarget) then { + private _targetInVeh = GVAR(camTargetInVehicle); - if (_targetInVeh && { vehicle _focus == _focus }) then { - [_focus] call FUNC(cam_setTarget); - GVAR(camTargetInVehicle) = false; - }; + if (GVAR(camHasTarget)) then { + if (!_targetInVeh && { vehicle _camTarget != _camTarget }) then { + [_camTarget] call FUNC(cam_setTarget); + GVAR(camTargetInVehicle) = true; }; - } else { - GVAR(camTargetInVehicle) = false; - }; - // Camera lights - if (count GVAR(camLights) > 1) then { - (GVAR(camLights) select 1) setPosASL (AGLToASL (screenToWorld getMousePosition)); + if (_targetInVeh && { vehicle _camTarget == _camTarget }) then { + [_camTarget] call FUNC(cam_setTarget); + GVAR(camTargetInVehicle) = false; + }; }; +} else { + GVAR(camTargetInVehicle) = false; +}; + +// Camera lights +if (count GVAR(camLights) > 1) then { + (GVAR(camLights) select 1) setPosASL (AGLToASL (screenToWorld getMousePosition)); }; END_COUNTER(camTick); diff --git a/addons/spectator/functions/fnc_cam_prepareTarget.sqf b/addons/spectator/functions/fnc_cam_prepareTarget.sqf index fe7d03d6706..6f8bf497371 100644 --- a/addons/spectator/functions/fnc_cam_prepareTarget.sqf +++ b/addons/spectator/functions/fnc_cam_prepareTarget.sqf @@ -5,37 +5,32 @@ TRACE_1("Params",_this); private _focus = vehicle (param [0, objNull, [objNull]]); if !(isNull _focus) then { - private _deltaTime = GVAR(deltaTime); - private _camera = GVAR(camera); - private _cameraMode = GVAR(camMode); - private _dummy = GVAR(camDummy); - private _zoom = if (_cameraMode == MODE_FOLLOW) then { GVAR(camDistance) } else { 0 }; - private _zoomTemp = GETMVAR(GVAR(camDistanceTemp),0); - private _isMan = _focus isKindOf "Man"; - private _bbd = [_focus] call BIS_fnc_getObjectBBD; - private _height = if !(_isMan) then { (_bbd select 2) / 3.0 } else { switch (stance _focus) do { case "STAND": {1.4}; case "CROUCH": {0.8}; default {0.4}; }; }; - // Interpolate zoom + private _zoom = [0, GVAR(camDistance)] select (GVAR(camMode) == MODE_FOLLOW); + private _zoomTemp = GVAR(camDistanceTemp); + if (_zoomTemp != _zoom) then { - _zoomTemp = [_zoomTemp, _zoom, 10.0, _deltaTime] call BIS_fnc_lerp; + _zoomTemp = [_zoomTemp, _zoom, 10.0, GVAR(deltaTime)] call BIS_fnc_lerp; GVAR(camDistanceTemp) = _zoomTemp; }; // The distance at which to place camera from the focus pivot + private _bbd = [_focus] call BIS_fnc_getObjectBBD; private _distance = (_bbd select 1) + _zoomTemp; // The pivot on the target vehicle - private _center = if (_isMan) then { AGLToASL (_focus modelToWorldVisual (_focus selectionPosition "Spine3")) } else { AGLToASL (_focus modelToWorldVisual [0,0,_height]) }; + private _isMan = _focus isKindOf "Man"; + private _height = if !(_isMan) then { (_bbd select 2) / 3.0 } else { switch (stance _focus) do { case "STAND": {1.4}; case "CROUCH": {0.8}; default {0.4}; }; }; - // The camera pitch and yaw - private _cameraYaw = GVAR(camYaw); - private _cameraPitch = GVAR(camPitch); + private _center = if (_isMan) then { AGLToASL (_focus modelToWorldVisual (_focus selectionPosition "Spine3")) } else { AGLToASL (_focus modelToWorldVisual [0,0,_height]) }; // Set dummy location and rotation + private _dummy = GVAR(camDummy); + _dummy setPosASL _center; - [_dummy, [_cameraYaw, _cameraPitch, 0]] call BIS_fnc_setObjectRotation; + [_dummy, [GVAR(camYaw), GVAR(camPitch), 0]] call BIS_fnc_setObjectRotation; // Apply location and rotation to camera - _camera setPosASL (AGLToASL (_dummy modelToWorldVisual [0, -_distance, 0])); - _camera setVectorDirAndUp [vectorDirVisual _dummy, vectorUpVisual _dummy]; + GVAR(camera) setPosASL (AGLToASL (_dummy modelToWorldVisual [0, -_distance, 0])); + GVAR(camera) setVectorDirAndUp [vectorDirVisual _dummy, vectorUpVisual _dummy]; }; diff --git a/addons/spectator/functions/fnc_cam_setCameraMode.sqf b/addons/spectator/functions/fnc_cam_setCameraMode.sqf index ba86e6bbd7f..e88ac5cfad0 100644 --- a/addons/spectator/functions/fnc_cam_setCameraMode.sqf +++ b/addons/spectator/functions/fnc_cam_setCameraMode.sqf @@ -24,8 +24,10 @@ if (_newMode == _oldMode) exitWith {}; private _focus = GVAR(camTarget); if (!isNull _focus || _newMode == MODE_FREE) then { + private _camera = GVAR(camera); + if (_newMode == MODE_FPS) exitWith { - GVAR(camera) cameraEffect ["Terminate", "BACK"]; + _camera cameraEffect ["Terminate", "BACK"]; _focus switchCamera "INTERNAL"; // Reset vision mode @@ -34,7 +36,7 @@ if (!isNull _focus || _newMode == MODE_FREE) then { [] call FUNC(cam_resetTarget); // Disable camera input - GVAR(camera) camCommand "manual off"; + _camera camCommand "manual off"; // Update UI CTRL_FPS ctrlSetText CAM_ICON_FIRST_SELECTED; @@ -48,13 +50,13 @@ if (!isNull _focus || _newMode == MODE_FREE) then { }; if (_newMode == MODE_FOLLOW) exitWith { - GVAR(camera) cameraEffect ["Internal", "BACK"]; + _camera cameraEffect ["Internal", "BACK"]; _focus switchCamera "EXTERNAL"; [] call FUNC(cam_resetTarget); // Disable camera input - GVAR(camera) camCommand "manual off"; + _camera camCommand "manual off"; // Update UI CTRL_FPS ctrlSetText CAM_ICON_FIRST; @@ -68,9 +70,9 @@ if (!isNull _focus || _newMode == MODE_FREE) then { }; if (_newMode == MODE_FREE) exitWith { - GVAR(camera) cameraEffect ["Internal", "BACK"]; + _camera cameraEffect ["Internal", "BACK"]; player switchCamera "INTERNAL"; - GVAR(camera) setDir getDirVisual GVAR(camera); + _camera setDir getDirVisual _camera; if (!isNull _focus) then { if (_oldMode == MODE_FPS) then { @@ -81,7 +83,7 @@ if (!isNull _focus || _newMode == MODE_FREE) then { // Enable camera input if !(GVAR(uiMapVisible)) then { - GVAR(camera) camCommand "manual on"; + _camera camCommand "manual on"; }; // Update UI diff --git a/addons/spectator/functions/fnc_setFocus.sqf b/addons/spectator/functions/fnc_setFocus.sqf new file mode 100644 index 00000000000..37cec7d94f8 --- /dev/null +++ b/addons/spectator/functions/fnc_setFocus.sqf @@ -0,0 +1,27 @@ +/* + * Author: AACO, SilentSpike + * Function used to set the camera focus + * + * Public: No + */ + +#include "script_component.hpp" + +params [["_newFocus", objNull, [objNull]]]; + +if (_newFocus != GVAR(camTarget) && { !(isNull _newFocus && { isNull GVAR(camTarget) }) }) then { + GVAR(camTarget) = _newFocus; + + if (isNull GVAR(camTarget)) then { + if (GVAR(camMode) == MODE_FREE) then { + [] call FUNC(resetTarget); + } else { + [MODE_FREE] call FUNC(cam_setCameraMode); + }; + } else { + [GVAR(camMode)] call FUNC(cam_setCameraMode); + }; + + [] call FUNC(ui_updateListFocus); + [] call FUNC(ui_updateWidget); +}; diff --git a/addons/spectator/functions/fnc_ui_handleMouseMoving.sqf b/addons/spectator/functions/fnc_ui_handleMouseMoving.sqf index f09849e08e9..0079912011c 100644 --- a/addons/spectator/functions/fnc_ui_handleMouseMoving.sqf +++ b/addons/spectator/functions/fnc_ui_handleMouseMoving.sqf @@ -15,6 +15,6 @@ if (GVAR(holdingRMB) && { GVAR(camMode) == MODE_FOLLOW }) then { }; if (_deltaY != 0) then { - GVAR(camPitch) = (((GVAR(camYaw) - (_deltaY * 100 * GVAR(camDeltaTime))) max -90.0) min 90.0); + GVAR(camPitch) = (((GVAR(camPitch) - (_deltaY * 100 * GVAR(camDeltaTime))) max -90.0) min 90.0); }; }; diff --git a/addons/spectator/script_component.hpp b/addons/spectator/script_component.hpp index c3009b72e06..938d444e9e6 100644 --- a/addons/spectator/script_component.hpp +++ b/addons/spectator/script_component.hpp @@ -33,6 +33,8 @@ #define MODE_FPS 1 #define MODE_FOLLOW 2 +#define MODES_UNIT [MODE_FPS, MODE_FOLLOW] + #define VISION_NORM -2 #define VISION_NVG -1 From 52021feb75dac5283c0b1d12f513e5e386e444e0 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Wed, 17 May 2017 13:45:00 +0100 Subject: [PATCH 006/198] Fix widget weapon icon for unarmed --- addons/spectator/functions/fnc_ui_updateWidget.sqf | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/addons/spectator/functions/fnc_ui_updateWidget.sqf b/addons/spectator/functions/fnc_ui_updateWidget.sqf index cb4df0044b4..21058efb095 100644 --- a/addons/spectator/functions/fnc_ui_updateWidget.sqf +++ b/addons/spectator/functions/fnc_ui_updateWidget.sqf @@ -29,10 +29,12 @@ private _weapon = currentWeapon _focus; private _weaponPicture = if (_weapon != "") then { getText (configFile >> "CfgWeapons" >> _weapon >> "Picture"); } else { - if (commander vehicle _focus == _focus) exitWith {IMG_COMMANDER}; - if (driver vehicle _focus == _focus) exitWith {IMG_DRIVER}; - if (gunner vehicle _focus == _focus) exitWith {IMG_GUNNER}; - IMG_CARGO + if (_focus != vehicle _focus) then { + if (commander vehicle _focus == _focus) exitWith {IMG_COMMANDER}; + if (driver vehicle _focus == _focus) exitWith {IMG_DRIVER}; + if (gunner vehicle _focus == _focus) exitWith {IMG_GUNNER}; + IMG_CARGO + } else {""}; }; (getPlayerScores _focus) params [["_kills",0,[0]], ["_softKills",0,[0]], ["_armoredKills",0,[0]], ["_airKills",0,[0]], ["_deaths",0,[0]], ["_total",0,[0]]]; From 1690f0c1aaf35ec464385502be2f107043e6b574 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Wed, 17 May 2017 14:47:40 +0100 Subject: [PATCH 007/198] Fix follow camera zooming --- addons/spectator/functions/fnc_cam_prepareTarget.sqf | 2 +- addons/spectator/functions/fnc_ui_handleMouseZChanged.sqf | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/addons/spectator/functions/fnc_cam_prepareTarget.sqf b/addons/spectator/functions/fnc_cam_prepareTarget.sqf index 6f8bf497371..321cb3e46c2 100644 --- a/addons/spectator/functions/fnc_cam_prepareTarget.sqf +++ b/addons/spectator/functions/fnc_cam_prepareTarget.sqf @@ -10,7 +10,7 @@ if !(isNull _focus) then { private _zoomTemp = GVAR(camDistanceTemp); if (_zoomTemp != _zoom) then { - _zoomTemp = [_zoomTemp, _zoom, 10.0, GVAR(deltaTime)] call BIS_fnc_lerp; + _zoomTemp = [_zoomTemp, _zoom, 10.0, GVAR(camDeltaTime)] call BIS_fnc_lerp; GVAR(camDistanceTemp) = _zoomTemp; }; diff --git a/addons/spectator/functions/fnc_ui_handleMouseZChanged.sqf b/addons/spectator/functions/fnc_ui_handleMouseZChanged.sqf index 91bb7de894e..ce6e49b963d 100644 --- a/addons/spectator/functions/fnc_ui_handleMouseZChanged.sqf +++ b/addons/spectator/functions/fnc_ui_handleMouseZChanged.sqf @@ -6,13 +6,12 @@ */ #include "script_component.hpp" -#define FOLLOW_CAMERA_MAX_DISTANCE 5.0 -TRACE_1("Params",_this); +#define FOLLOW_CAMERA_MAX_DISTANCE 5 if (GVAR(camMode) == MODE_FOLLOW) then { if ((_this select 1) > 0) then { - GVAR(camDistance) = (GVAR(camDistance) - 1.0) max 0.0; + GVAR(camDistance) = (GVAR(camDistance) - 1) max 0; } else { - GVAR(camDistance) = (GVAR(camDistance) + 1.0) min FOLLOW_CAMERA_MAX_DISTANCE; + GVAR(camDistance) = (GVAR(camDistance) + 1) min FOLLOW_CAMERA_MAX_DISTANCE; }; }; From 13dbbd95dba31ad0bffa12fc15262dbed67669c6 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Wed, 17 May 2017 13:46:03 +0100 Subject: [PATCH 008/198] Fix entity list not updating correctly --- addons/spectator/functions/fnc_ui.sqf | 6 +++++- .../functions/fnc_ui_handleTabSelected.sqf | 2 +- .../functions/fnc_ui_updateListEntities.sqf | 13 +++++-------- .../functions/fnc_ui_updateListLocations.sqf | 4 ++-- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/addons/spectator/functions/fnc_ui.sqf b/addons/spectator/functions/fnc_ui.sqf index 345dac153d9..8c8869603d4 100644 --- a/addons/spectator/functions/fnc_ui.sqf +++ b/addons/spectator/functions/fnc_ui.sqf @@ -31,12 +31,15 @@ if (_init) then { // RMB tracking is used for follow camera mode GVAR(holdingRMB) = false; - // List type is used for list updates and itneraction + // List type is used for list updates and interaction GVAR(uiListType) = LIST_ENTITIES; // Highlighted map object is used for click and drawing events GVAR(uiMapHighlighted) = objNull; + // Holds the current list data + GVAR(curList) = []; + // Cache view distance and set spectator default GVAR(oldViewDistance) = viewDistance; setViewDistance DEFAULT_VIEW_DISTANCE; @@ -82,6 +85,7 @@ if (_init) then { GVAR(holdingRMB) = nil; GVAR(uiListType) = nil; GVAR(uiMapHighlighted) = nil; + GVAR(curList) = nil; // Reset view distance setViewDistance GVAR(oldViewDistance); diff --git a/addons/spectator/functions/fnc_ui_handleTabSelected.sqf b/addons/spectator/functions/fnc_ui_handleTabSelected.sqf index 05ece695ce1..9d7a21be123 100644 --- a/addons/spectator/functions/fnc_ui_handleTabSelected.sqf +++ b/addons/spectator/functions/fnc_ui_handleTabSelected.sqf @@ -15,7 +15,7 @@ params ["_ctrl", "_index"]; GVAR(uiListType) = [LIST_ENTITIES, LIST_LOCATIONS] select _index; // Reset the current list -GVAR(curList) = nil; +GVAR(curList) = []; // Clear list tvClear CTRL_LIST; diff --git a/addons/spectator/functions/fnc_ui_updateListEntities.sqf b/addons/spectator/functions/fnc_ui_updateListEntities.sqf index b2c2f134556..0d091102de6 100644 --- a/addons/spectator/functions/fnc_ui_updateListEntities.sqf +++ b/addons/spectator/functions/fnc_ui_updateListEntities.sqf @@ -19,9 +19,8 @@ private _newList = [ // Go through groups and get the valid ones only, also cache group units information { private _group = _x; - private _groupSide = side _group; private _groupTexture = ["GetGroupTexture", [_group]] call BIS_fnc_dynamicGroups; - private _groupInfo = [_group, side _group, _groupTexture, groupId _group]; + private _groupInfo = [_group, str _group, _groupTexture, groupID _group]; private _unitsInfo = []; // Validate units @@ -31,7 +30,9 @@ private _newList = [ {!isObjectHidden _x} && {simulationEnabled vehicle _x} && {!isObjectHidden vehicle _x} + // TODO: whitelist & blacklist ) then { + _newUnits pushBack ([_x] call BIS_fnc_objectVar); _unitsInfo pushBack [ _x, alive _x, @@ -46,8 +47,8 @@ private _newList = [ if !(_unitsInfo isEqualTo []) then { _newGroups pushBack (str _group); { - if (_groupSide == (_newList select _forEachIndex) select 0) exitWith { - ((_newList select _forEachIndex) select 3) pushBack [_groupInfo, _unitsInfo]; + if ((side _group) == (_x select 0)) exitWith { + (_x select 3) pushBack [_groupInfo, _unitsInfo]; }; } forEach _newList; }; @@ -56,10 +57,6 @@ private _newList = [ // Whether an update to the list is required (really only if something changed) if !(GVAR(curList) isEqualTo _newList) then { - private _allElements = ["TreeGetAllElements"] call FUNC(display); - private _groupElements = _allElements select 1; - private _unitElements = _allElements select 2; - // Remove groups/units that are no longer there private _ctrl = CTRL_LIST; for "_sideIndex" from (_ctrl tvCount []) to 1 do { diff --git a/addons/spectator/functions/fnc_ui_updateListLocations.sqf b/addons/spectator/functions/fnc_ui_updateListLocations.sqf index 6affc1f9c67..797883418bf 100644 --- a/addons/spectator/functions/fnc_ui_updateListLocations.sqf +++ b/addons/spectator/functions/fnc_ui_updateListLocations.sqf @@ -7,12 +7,12 @@ #include "script_component.hpp" -// Temporarily do nothing +// TODO make this function work if true exitWith {}; private _newList = []; -// +// TODO: // Whether an update to the list is required (really only if something changed) if !(GVAR(curList) isEqualTo _newList) then { From 2325b803658dbbf407b0382454c692da3500056d Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Wed, 17 May 2017 15:57:51 +0100 Subject: [PATCH 009/198] Remove redundant conditions --- addons/spectator/functions/fnc_ui_handleMapClick.sqf | 4 ++-- addons/spectator/functions/fnc_ui_handleMapDraw.sqf | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/spectator/functions/fnc_ui_handleMapClick.sqf b/addons/spectator/functions/fnc_ui_handleMapClick.sqf index a165e54c61d..dab034d27ed 100644 --- a/addons/spectator/functions/fnc_ui_handleMapClick.sqf +++ b/addons/spectator/functions/fnc_ui_handleMapClick.sqf @@ -14,7 +14,7 @@ params ["", "", "_x", "_y"]; if (isNull GVAR(uiMapHighlighted)) then { // Give user feedback that camera is no longer focused if !(isNull GVAR(camTarget)) then { - playsound "ReadoutHideClick1"; + playSound "ReadoutHideClick1"; }; // Preserve camera height on teleport @@ -24,7 +24,7 @@ if (isNull GVAR(uiMapHighlighted)) then { GVAR(camera) setPosASL _pos; } else { // Give user feedback that camera is focused on highlighted unit - playsound "ReadoutClick"; + playSound "ReadoutClick"; }; [GVAR(uiMapHighlighted)] call FUNC(setFocus); diff --git a/addons/spectator/functions/fnc_ui_handleMapDraw.sqf b/addons/spectator/functions/fnc_ui_handleMapDraw.sqf index 229b6f6abd1..ed854a1cc57 100644 --- a/addons/spectator/functions/fnc_ui_handleMapDraw.sqf +++ b/addons/spectator/functions/fnc_ui_handleMapDraw.sqf @@ -12,7 +12,7 @@ // Moved timer into map controls group, update here BEGIN_COUNTER(updateTimer); -// Need to check relevance of this variable, is it a general module or EG specific +// TODO: Check relevance of this variable, is it a general module or EG specific private _timeLeft = -(time - (GETMVAR(BIS_hvt_timeoutTarget,0)))/3600; if (_timeLeft < 0) then { @@ -37,13 +37,13 @@ private _handledVehicles = []; { private _dist = _x distance2D _loc; - if (_dist < _minDist && { alive _x } && { _dist < MAP_MIN_ENTITY_DISTANCE } && { simulationEnabled _x } && { !(isObjectHidden _x) }) then { + if (_dist < _minDist && { _dist < MAP_MIN_ENTITY_DISTANCE }) then { _minDist = _dist; _nearestEntity = _x; }; private _vehicle = vehicle _x; - if (!(_vehicle in _handledVehicles) && { alive _vehicle } && { simulationEnabled _vehicle } && { !isObjectHidden _vehicle }) then { + if !(_vehicle in _handledVehicles) then { _handledVehicles pushBack _vehicle; private _vehicleTexture = [_vehicle] call EFUNC(common,getVehicleIcon); @@ -53,7 +53,7 @@ private _handledVehicles = []; if (GVAR(uiMapHighlighted) == _vehicle || {GVAR(uiMapHighlighted) in _vehicle}) then { private _name = [GVAR(uiMapHighlighted), false, false, NAME_MAX_CHARACTERS] call EFUNC(common,getName); _sideColor = [0.8, 0.8, 0.5, 1]; - _text = if (isPlayer GVAR(uiMapHighlighted)) then { _name } else { format ["%1: %2", "AI", _name]; }; + _text = if (isPlayer GVAR(uiMapHighlighted)) then { _name } else { format ["%1: %2", localize "str_player_ai", _name]; }; }; if (NEEDS_REVIVE(_vehicle)) then { From fef49b41b845bc5910860ba3a8f51aa6847622d6 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Wed, 17 May 2017 16:05:16 +0100 Subject: [PATCH 010/198] Fix list click behaviour --- addons/spectator/UI/interface.hpp | 4 ++-- addons/spectator/functions/fnc_ui_handleListClick.sqf | 8 +++----- .../functions/fnc_ui_handleMouseButtonDblClick.sqf | 1 - 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/addons/spectator/UI/interface.hpp b/addons/spectator/UI/interface.hpp index 7ecc469df1a..ac840431cb6 100644 --- a/addons/spectator/UI/interface.hpp +++ b/addons/spectator/UI/interface.hpp @@ -53,8 +53,8 @@ class GVAR(display) { onMouseEnter = QUOTE([false] call FUNC(ui_fadeList)); onMouseExit = QUOTE([true] call FUNC(ui_fadeList)); - onTreeSelChanged = QUOTE([false,_this] call FUNC(ui_handleListClick)); - onTreeDblClick = QUOTE([true,_this] call FUNC(ui_handleListClick)); + onTreeSelChanged = QUOTE([ARR_2(false,_this)] call FUNC(ui_handleListClick)); + onTreeDblClick = QUOTE([ARR_2(true,_this)] call FUNC(ui_handleListClick)); x = "safeZoneX"; y = "safezoneY + 0.06"; diff --git a/addons/spectator/functions/fnc_ui_handleListClick.sqf b/addons/spectator/functions/fnc_ui_handleListClick.sqf index f8397353d3a..fb9afafd6ba 100644 --- a/addons/spectator/functions/fnc_ui_handleListClick.sqf +++ b/addons/spectator/functions/fnc_ui_handleListClick.sqf @@ -5,14 +5,12 @@ * Public: No */ #include "script_component.hpp" -TRACE_1("Params",_this); -disableSerialization; params ["_dblClick","_params"]; _params params ["_list","_index"]; private _handled = false; -private _object = GETMVAR(_list tvData _index,objNull); // List contains unique object variables +private _object = missionNamespace getVariable [_list tvData _index, objNull]; // List contains unique object variables if !(isNull _object) then { if (_dblClick) then { @@ -23,13 +21,13 @@ if !(isNull _object) then { GVAR(camera) setPosASL _pos; [_object] call FUNC(setFocus); - playsound "ReadoutClick"; + playSound "ReadoutClick"; _handled = true; } else { if (_object != GVAR(camTarget)) then { [_object] call FUNC(setFocus); - playsound "ReadoutClick"; + playSound "ReadoutClick"; _handled = true; }; diff --git a/addons/spectator/functions/fnc_ui_handleMouseButtonDblClick.sqf b/addons/spectator/functions/fnc_ui_handleMouseButtonDblClick.sqf index 150761cd79f..d9a6b27eaad 100644 --- a/addons/spectator/functions/fnc_ui_handleMouseButtonDblClick.sqf +++ b/addons/spectator/functions/fnc_ui_handleMouseButtonDblClick.sqf @@ -6,7 +6,6 @@ */ #include "script_component.hpp" -TRACE_1("Params",_this); params ["", "_button"]; From f0e6a9f50882d0322116a64c86e255416d5d7394 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Wed, 17 May 2017 16:30:27 +0100 Subject: [PATCH 011/198] Remove a bunch of old debug --- addons/spectator/functions/fnc_cam_prepareTarget.sqf | 1 - addons/spectator/functions/fnc_cam_resetTarget.sqf | 1 - addons/spectator/functions/fnc_cam_setCameraMode.sqf | 2 -- addons/spectator/functions/fnc_cam_setVisionMode.sqf | 1 - addons/spectator/functions/fnc_ui_fadeList.sqf | 2 -- addons/spectator/functions/fnc_ui_handleMapClick.sqf | 2 -- addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf | 1 - addons/spectator/functions/fnc_ui_handleTabSelected.sqf | 2 -- 8 files changed, 12 deletions(-) diff --git a/addons/spectator/functions/fnc_cam_prepareTarget.sqf b/addons/spectator/functions/fnc_cam_prepareTarget.sqf index 321cb3e46c2..fe201292545 100644 --- a/addons/spectator/functions/fnc_cam_prepareTarget.sqf +++ b/addons/spectator/functions/fnc_cam_prepareTarget.sqf @@ -1,6 +1,5 @@ #include "script_component.hpp" -TRACE_1("Params",_this); private _focus = vehicle (param [0, objNull, [objNull]]); diff --git a/addons/spectator/functions/fnc_cam_resetTarget.sqf b/addons/spectator/functions/fnc_cam_resetTarget.sqf index 92e2a82c9ed..00c193720de 100644 --- a/addons/spectator/functions/fnc_cam_resetTarget.sqf +++ b/addons/spectator/functions/fnc_cam_resetTarget.sqf @@ -1,6 +1,5 @@ #include "script_component.hpp" -TRACE_1("Params",_this); private _camera = GVAR(camera); private _dummy = GVAR(camDummy); diff --git a/addons/spectator/functions/fnc_cam_setCameraMode.sqf b/addons/spectator/functions/fnc_cam_setCameraMode.sqf index e88ac5cfad0..edaeb0662ff 100644 --- a/addons/spectator/functions/fnc_cam_setCameraMode.sqf +++ b/addons/spectator/functions/fnc_cam_setCameraMode.sqf @@ -6,8 +6,6 @@ */ #include "script_component.hpp" -TRACE_1("Params",_this); -disableSerialization; params ["_newMode"]; diff --git a/addons/spectator/functions/fnc_cam_setVisionMode.sqf b/addons/spectator/functions/fnc_cam_setVisionMode.sqf index bd74544361e..eae8b3e081b 100644 --- a/addons/spectator/functions/fnc_cam_setVisionMode.sqf +++ b/addons/spectator/functions/fnc_cam_setVisionMode.sqf @@ -6,7 +6,6 @@ */ #include "script_component.hpp" -TRACE_1("Params",_this); params ["_newVision"]; diff --git a/addons/spectator/functions/fnc_ui_fadeList.sqf b/addons/spectator/functions/fnc_ui_fadeList.sqf index d4ac459572c..e2286030182 100644 --- a/addons/spectator/functions/fnc_ui_fadeList.sqf +++ b/addons/spectator/functions/fnc_ui_fadeList.sqf @@ -6,8 +6,6 @@ */ #include "script_component.hpp" -TRACE_1("Params",_this); -disableSerialization; params ["_fadeList"]; diff --git a/addons/spectator/functions/fnc_ui_handleMapClick.sqf b/addons/spectator/functions/fnc_ui_handleMapClick.sqf index dab034d27ed..d30507b884d 100644 --- a/addons/spectator/functions/fnc_ui_handleMapClick.sqf +++ b/addons/spectator/functions/fnc_ui_handleMapClick.sqf @@ -6,8 +6,6 @@ */ #include "script_component.hpp" -TRACE_1("Params",_this); -disableSerialization; params ["", "", "_x", "_y"]; diff --git a/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf b/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf index 44088683b65..68be66fa66d 100644 --- a/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf +++ b/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf @@ -6,7 +6,6 @@ */ #include "script_component.hpp" -TRACE_1("Params",_this); params ["", "_button"]; diff --git a/addons/spectator/functions/fnc_ui_handleTabSelected.sqf b/addons/spectator/functions/fnc_ui_handleTabSelected.sqf index 9d7a21be123..713a2b04302 100644 --- a/addons/spectator/functions/fnc_ui_handleTabSelected.sqf +++ b/addons/spectator/functions/fnc_ui_handleTabSelected.sqf @@ -6,8 +6,6 @@ */ #include "script_component.hpp" -TRACE_1("Params",_this); -disableSerialization; params ["_ctrl", "_index"]; From 50d1dd750fd1c411a708541823a49196ab5a4441 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Wed, 17 May 2017 16:34:34 +0100 Subject: [PATCH 012/198] Alter behaviour of camera speed --- addons/spectator/functions/fnc_cam.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/spectator/functions/fnc_cam.sqf b/addons/spectator/functions/fnc_cam.sqf index 840f4c2fab2..5e5c4e3b1f3 100644 --- a/addons/spectator/functions/fnc_cam.sqf +++ b/addons/spectator/functions/fnc_cam.sqf @@ -61,8 +61,8 @@ if (_init) then { // If camera followed terrain it would be annoying to track units, etc. _camera camCommand "atl off"; - // If camera didn't move slower closer to the ground it would be jarring - _camera camCommand "surfaceSpeed on"; + // Camera speed should be consistent irrespective of height (painfully slow otherwise) + _camera camCommand "surfaceSpeed off"; // Store camera GVAR(camera) = _camera; From fca1666c8b96326375787f3a0b17b3e145ca84e7 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Wed, 17 May 2017 16:36:36 +0100 Subject: [PATCH 013/198] Restructure the spectator addon --- addons/spectator/CfgVehicles.hpp | 2 +- addons/spectator/config.cpp | 2 +- .../{UI => data}/Icon_Module_Spectator_ca.paa | Bin addons/spectator/{UI/interface.hpp => ui.hpp} | 1 - 4 files changed, 2 insertions(+), 3 deletions(-) rename addons/spectator/{UI => data}/Icon_Module_Spectator_ca.paa (100%) rename addons/spectator/{UI/interface.hpp => ui.hpp} (99%) diff --git a/addons/spectator/CfgVehicles.hpp b/addons/spectator/CfgVehicles.hpp index 120222a3da3..39676d4c43b 100644 --- a/addons/spectator/CfgVehicles.hpp +++ b/addons/spectator/CfgVehicles.hpp @@ -3,7 +3,7 @@ class CfgVehicles { class GVAR(moduleSettings): ACE_Module { scope = 2; displayName = CSTRING(Settings_DisplayName); - icon = QPATHTOF(UI\Icon_Module_Spectator_ca.paa); + icon = QPATHTOF(data\Icon_Module_Spectator_ca.paa); category = "ACE"; function = QFUNC(moduleSpectatorSettings); isGlobal = 1; diff --git a/addons/spectator/config.cpp b/addons/spectator/config.cpp index aee0eaaa76e..a21dfe88ad6 100644 --- a/addons/spectator/config.cpp +++ b/addons/spectator/config.cpp @@ -17,7 +17,7 @@ class CfgPatches { #include "ACE_Settings.hpp" #include "CfgEventHandlers.hpp" #include "CfgVehicles.hpp" -#include "ui\interface.hpp" +#include "ui.hpp" class CfgRespawnTemplates { class ADDON { diff --git a/addons/spectator/UI/Icon_Module_Spectator_ca.paa b/addons/spectator/data/Icon_Module_Spectator_ca.paa similarity index 100% rename from addons/spectator/UI/Icon_Module_Spectator_ca.paa rename to addons/spectator/data/Icon_Module_Spectator_ca.paa diff --git a/addons/spectator/UI/interface.hpp b/addons/spectator/ui.hpp similarity index 99% rename from addons/spectator/UI/interface.hpp rename to addons/spectator/ui.hpp index ac840431cb6..b23e4877720 100644 --- a/addons/spectator/UI/interface.hpp +++ b/addons/spectator/ui.hpp @@ -1,4 +1,3 @@ -// TODO: Move this to root, move icon to /data class RscActiveText; class RscButton; class RscButtonMenu; From 048904c64c0f9fd0704126164084b5414e353309 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Wed, 17 May 2017 16:57:45 +0100 Subject: [PATCH 014/198] Fix camera tracking behaviour --- addons/spectator/functions/fnc_cam_setCameraMode.sqf | 8 +++----- .../spectator/functions/fnc_ui_handleMouseButtonDown.sqf | 2 ++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/spectator/functions/fnc_cam_setCameraMode.sqf b/addons/spectator/functions/fnc_cam_setCameraMode.sqf index edaeb0662ff..ad414deface 100644 --- a/addons/spectator/functions/fnc_cam_setCameraMode.sqf +++ b/addons/spectator/functions/fnc_cam_setCameraMode.sqf @@ -17,8 +17,8 @@ if !(_newMode in _modes) then { _newMode = _modes select ((_modes find _oldMode) max 0); }; -// Nothing to do here -if (_newMode == _oldMode) exitWith {}; +// Should run even if the mode is the same, as it handles focus +// if (_newMode == _oldMode) exitWith {}; private _focus = GVAR(camTarget); if (!isNull _focus || _newMode == MODE_FREE) then { @@ -80,9 +80,7 @@ if (!isNull _focus || _newMode == MODE_FREE) then { }; // Enable camera input - if !(GVAR(uiMapVisible)) then { - _camera camCommand "manual on"; - }; + _camera camCommand "manual on"; // Update UI CTRL_FPS ctrlSetText CAM_ICON_FIRST; diff --git a/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf b/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf index 68be66fa66d..4564a2ed2fd 100644 --- a/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf +++ b/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf @@ -17,6 +17,8 @@ if (_button == 0) exitWith { }; } else { playsound "ReadoutClick"; + + // Focus will be at screen center setMousePosition [0.5, 0.5]; }; [GVAR(cursorObject)] call FUNC(setFocus); From a18f5ab177d0250432f27a8520812f7bc5021cad Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Wed, 17 May 2017 17:02:55 +0100 Subject: [PATCH 015/198] Fix very fast camera toggle --- addons/spectator/functions/fnc_ui_handleKeyDown.sqf | 2 +- addons/spectator/functions/fnc_ui_handleKeyUp.sqf | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf index 36acc209642..f26392fc187 100644 --- a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf +++ b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf @@ -118,7 +118,7 @@ if (inputAction "networkStats" > 0) exitWith { // Handle very fast speed if (_key == DIK_LALT) exitWith { - [true] call FUNC(cam_toggleVeryFastSpeed); + [true] call FUNC(cam_toggleVeryFast); true }; diff --git a/addons/spectator/functions/fnc_ui_handleKeyUp.sqf b/addons/spectator/functions/fnc_ui_handleKeyUp.sqf index 0fb30bb3076..e97cb803dc4 100644 --- a/addons/spectator/functions/fnc_ui_handleKeyUp.sqf +++ b/addons/spectator/functions/fnc_ui_handleKeyUp.sqf @@ -10,8 +10,9 @@ params ["","_key","_shift","_ctrl","_alt"]; +// TODO: Check whether this is necessary, could just toggle on key down if (_key == DIK_LALT) exitWith { - [false] call FUNC(cam_toggleVeryFastSpeed); + [false] call FUNC(cam_toggleVeryFast); true }; From aac6868e286f94b1ca4c1a0a0ecc582e62056e83 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Wed, 17 May 2017 17:10:54 +0100 Subject: [PATCH 016/198] Fix initial camera mode --- addons/spectator/functions/fnc_cam.sqf | 3 --- addons/spectator/functions/fnc_ui.sqf | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/spectator/functions/fnc_cam.sqf b/addons/spectator/functions/fnc_cam.sqf index 5e5c4e3b1f3..02b87422f41 100644 --- a/addons/spectator/functions/fnc_cam.sqf +++ b/addons/spectator/functions/fnc_cam.sqf @@ -74,9 +74,6 @@ if (_init) then { // Start ticking GVAR(camPFH) = [LINKFUNC(cam_updateThingsToDraw), 0.2] call CBA_fnc_addPerFrameHandler; GVAR(draw3D) = addMissionEventHandler ["Draw3D", {call FUNC(cam_draw3D)}]; - - // Set the initial camera mode (could be pre-set) - [GVAR(camMode)] call FUNC(cam_setCameraMode); } else { // Stop ticking removeMissionEventHandler ["Draw3D", GVAR(draw3D)]; diff --git a/addons/spectator/functions/fnc_ui.sqf b/addons/spectator/functions/fnc_ui.sqf index 8c8869603d4..92b3a9ef114 100644 --- a/addons/spectator/functions/fnc_ui.sqf +++ b/addons/spectator/functions/fnc_ui.sqf @@ -47,6 +47,9 @@ if (_init) then { // Create the display MAIN_DISPLAY createDisplay QGVAR(display); + // Set the initial camera mode (could be pre-set) + [GVAR(camMode)] call FUNC(cam_setCameraMode); + // Initially hide map [] call FUNC(ui_toggleMap); From b691575385453e16c102846fc4fe7950de98eb70 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Wed, 17 May 2017 20:35:04 +0100 Subject: [PATCH 017/198] Fix double click behaviour --- addons/spectator/functions/fnc_setFocus.sqf | 4 ++-- .../functions/fnc_ui_handleMouseButtonDblClick.sqf | 6 ++++-- addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf | 6 ++++++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/addons/spectator/functions/fnc_setFocus.sqf b/addons/spectator/functions/fnc_setFocus.sqf index 37cec7d94f8..7d527ccf71a 100644 --- a/addons/spectator/functions/fnc_setFocus.sqf +++ b/addons/spectator/functions/fnc_setFocus.sqf @@ -12,9 +12,9 @@ params [["_newFocus", objNull, [objNull]]]; if (_newFocus != GVAR(camTarget) && { !(isNull _newFocus && { isNull GVAR(camTarget) }) }) then { GVAR(camTarget) = _newFocus; - if (isNull GVAR(camTarget)) then { + if (isNull _newFocus) then { if (GVAR(camMode) == MODE_FREE) then { - [] call FUNC(resetTarget); + [] call FUNC(cam_resetTarget); } else { [MODE_FREE] call FUNC(cam_setCameraMode); }; diff --git a/addons/spectator/functions/fnc_ui_handleMouseButtonDblClick.sqf b/addons/spectator/functions/fnc_ui_handleMouseButtonDblClick.sqf index d9a6b27eaad..6a6a0de6b15 100644 --- a/addons/spectator/functions/fnc_ui_handleMouseButtonDblClick.sqf +++ b/addons/spectator/functions/fnc_ui_handleMouseButtonDblClick.sqf @@ -1,7 +1,10 @@ /* - * Author: Nelson Duarte, AACO + * Author: Nelson Duarte, AACO, SilentSpike * Function used to handle mouse button double clicks * + * Expected behaviour: + * Double left click teleports free camera toward the unit, but does not focus + * * Public: No */ @@ -9,7 +12,6 @@ params ["", "_button"]; -// Left click if (_button == 0 && {!isNull GVAR(cursorObject)}) then { [GVAR(cursorObject)] call FUNC(cam_prepareTarget); }; diff --git a/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf b/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf index 4564a2ed2fd..ea9a7bf90a7 100644 --- a/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf +++ b/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf @@ -2,6 +2,12 @@ * Author: Nelson Duarte, AACO * Function used to handle mouse down event * + * Expected behaviour: + * Left clicking a unit focuses the camera on that unit (in any camera mode) + * Left clicking empty space removes the current camera focus in free camera + * Right clicking removes the current camera focus in free camera + * Right clicking and dragging orbits around the unit in follow camera + * * Public: No */ From d1fe6254441fcfa8f7473503b12c044fa3c50264 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Wed, 17 May 2017 23:02:47 +0100 Subject: [PATCH 018/198] Make AI name display consistent --- addons/spectator/functions/fnc_cam.sqf | 2 +- addons/spectator/functions/fnc_cam_draw3D.sqf | 2 +- .../spectator/functions/fnc_cam_updateThingsToDraw.sqf | 10 ++++++---- addons/spectator/functions/fnc_ui_handleListClick.sqf | 4 ++++ addons/spectator/functions/fnc_ui_handleMapDraw.sqf | 4 ++-- .../spectator/functions/fnc_ui_updateListEntities.sqf | 6 +++++- addons/spectator/functions/fnc_ui_updateWidget.sqf | 7 ++----- 7 files changed, 21 insertions(+), 14 deletions(-) diff --git a/addons/spectator/functions/fnc_cam.sqf b/addons/spectator/functions/fnc_cam.sqf index 02b87422f41..5ebdc8aa67e 100644 --- a/addons/spectator/functions/fnc_cam.sqf +++ b/addons/spectator/functions/fnc_cam.sqf @@ -68,7 +68,7 @@ if (_init) then { GVAR(camera) = _camera; // Create dummy target used for follow camera - // TODO: Check if a camera object works here + // TODO: Check if a camera object works here (see: https://feedback.bistudio.com/T123956) GVAR(camDummy) = "Land_HelipadEmpty_F" createVehicleLocal getPosASLVisual GVAR(camTarget); // Start ticking diff --git a/addons/spectator/functions/fnc_cam_draw3D.sqf b/addons/spectator/functions/fnc_cam_draw3D.sqf index 51ae287d91f..cf955e11d29 100644 --- a/addons/spectator/functions/fnc_cam_draw3D.sqf +++ b/addons/spectator/functions/fnc_cam_draw3D.sqf @@ -101,7 +101,7 @@ if !(GVAR(uiMapVisible)) then { if (_type == 2 && { _unit distance _camera < DISTANCE_NAMES } && {_unit in _camTarget || _unit in _cursorObject}) then { drawIcon3D [ ICON_BACKGROUND_UNIT, - [0, 0, 0, if (_unit in _camTarget) then { 0.8 } else { 0.4 }], + [0, 0, 0, [0.4, 0.8] select (_unit in _camTarget)], _position, 5.0, 4, diff --git a/addons/spectator/functions/fnc_cam_updateThingsToDraw.sqf b/addons/spectator/functions/fnc_cam_updateThingsToDraw.sqf index d69d4313784..0a9c725002f 100644 --- a/addons/spectator/functions/fnc_cam_updateThingsToDraw.sqf +++ b/addons/spectator/functions/fnc_cam_updateThingsToDraw.sqf @@ -13,10 +13,10 @@ private _thingsToDraw = []; { private _vehicle = vehicle _x; - private _notInVehicle = (_vehicle == _x); + private _inVehicle = (_vehicle != _x); private _distanceToCamera = GVAR(camera) distance _x; - if (_distanceToCamera <= 3000.0 && { _notInVehicle || { _x == effectiveCommander _vehicle } }) then { + if (_distanceToCamera <= 3000.0 && { !_inVehicle || { _x == effectiveCommander _vehicle } }) then { private _group = group _x; private _groupSide = side _group; private _groupName = groupId _group; @@ -47,7 +47,9 @@ private _thingsToDraw = []; _groupColor set [3, _fadeByDistance]; private _name = [_x, false, false, NAME_MAX_CHARACTERS] call EFUNC(common,getName); - if !(_notInVehicle) then { + if !(isPlayer _x) then { _name = format ["%1: %2", localize "str_player_ai", _name]; }; + + if (_inVehicle) then { private _crewCount = (({alive _x} count (crew _vehicle)) - 1); if (_crewCount > 0) then { _name = format ["%1 (+%2)", _name, _crewCount]; @@ -89,7 +91,7 @@ private _thingsToDraw = []; }; }; - if (_x == _groupLeader || { !_notInVehicle && { _x == effectiveCommander _vehicle } }) then { + if (_x == _groupLeader || { _inVehicle && { _x == effectiveCommander _vehicle } }) then { // Group icon _thingsToDraw pushBack [_x, 0, [ ICON_GROUP, diff --git a/addons/spectator/functions/fnc_ui_handleListClick.sqf b/addons/spectator/functions/fnc_ui_handleListClick.sqf index fb9afafd6ba..83956133ff5 100644 --- a/addons/spectator/functions/fnc_ui_handleListClick.sqf +++ b/addons/spectator/functions/fnc_ui_handleListClick.sqf @@ -2,6 +2,10 @@ * Author: Nelson Duarte, AACO, SilentSpike * Function used to handle list single/double clicks * + * Expected behaviour: + * Clicking an entry focuses the camera on it (any camera mode) + * Double clicking an entry teleports the free camera nearby and focuses on it + * * Public: No */ #include "script_component.hpp" diff --git a/addons/spectator/functions/fnc_ui_handleMapDraw.sqf b/addons/spectator/functions/fnc_ui_handleMapDraw.sqf index ed854a1cc57..ca631ef43dd 100644 --- a/addons/spectator/functions/fnc_ui_handleMapDraw.sqf +++ b/addons/spectator/functions/fnc_ui_handleMapDraw.sqf @@ -51,9 +51,9 @@ private _handledVehicles = []; private _text = ""; if (GVAR(uiMapHighlighted) == _vehicle || {GVAR(uiMapHighlighted) in _vehicle}) then { - private _name = [GVAR(uiMapHighlighted), false, false, NAME_MAX_CHARACTERS] call EFUNC(common,getName); + _text = [GVAR(uiMapHighlighted), false, false, NAME_MAX_CHARACTERS] call EFUNC(common,getName); + if !(isPlayer GVAR(uiMapHighlighted)) then { _text = format ["%1: %2", localize "str_player_ai", _text]; }; _sideColor = [0.8, 0.8, 0.5, 1]; - _text = if (isPlayer GVAR(uiMapHighlighted)) then { _name } else { format ["%1: %2", localize "str_player_ai", _name]; }; }; if (NEEDS_REVIVE(_vehicle)) then { diff --git a/addons/spectator/functions/fnc_ui_updateListEntities.sqf b/addons/spectator/functions/fnc_ui_updateListEntities.sqf index 0d091102de6..db96996f838 100644 --- a/addons/spectator/functions/fnc_ui_updateListEntities.sqf +++ b/addons/spectator/functions/fnc_ui_updateListEntities.sqf @@ -33,11 +33,15 @@ private _newList = [ // TODO: whitelist & blacklist ) then { _newUnits pushBack ([_x] call BIS_fnc_objectVar); + + private _name = [_x, false, false, NAME_MAX_CHARACTERS] call EFUNC(common,getName); + if !(isPlayer _x) then { _name = format ["%1: %2", localize "str_player_ai", _name]; }; + _unitsInfo pushBack [ _x, alive _x, alive _x && { NEEDS_REVIVE(_x) }, - [_x, false, false, NAME_MAX_CHARACTERS] call EFUNC(common,getName) + _name ]; }; nil // Speed loop diff --git a/addons/spectator/functions/fnc_ui_updateWidget.sqf b/addons/spectator/functions/fnc_ui_updateWidget.sqf index 21058efb095..0a0b3cf6987 100644 --- a/addons/spectator/functions/fnc_ui_updateWidget.sqf +++ b/addons/spectator/functions/fnc_ui_updateWidget.sqf @@ -15,11 +15,8 @@ if (!GVAR(uiWidgetVisible) || {isNull GVAR(camTarget)}) exitWith {CTRL_WIDGET ct private _focus = GVAR(camTarget); -private _name = if (isPlayer _focus) then { - [_focus, false, false, NAME_MAX_CHARACTERS] call EFUNC(common,getName); -} else { - format ["%1: %2", localize "str_player_ai", [_focus, false, false, NAME_MAX_CHARACTERS] call EFUNC(common,getName)]; -}; +private _name = [_focus, false, false, NAME_MAX_CHARACTERS] call EFUNC(common,getName); +if !(isPlayer _focus) then { _name = format ["%1: %2", localize "str_player_ai", _name]; }; private _unitTypePicture = [_focus] call EFUNC(common,getVehicleIcon); private _vehicleTypePicture = getText (configFile >> "CfgVehicles" >> typeOf vehicle _focus >> "Picture"); From bdcbfe4a2723f4c9e07c36ee7cbb53ba7a034199 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Thu, 18 May 2017 09:00:00 +0100 Subject: [PATCH 019/198] Add UI toggle --- addons/spectator/XEH_PREP.hpp | 1 + .../functions/fnc_ui_handleKeyDown.sqf | 2 +- .../spectator/functions/fnc_ui_toggleUI.sqf | 27 +++++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 addons/spectator/functions/fnc_ui_toggleUI.sqf diff --git a/addons/spectator/XEH_PREP.hpp b/addons/spectator/XEH_PREP.hpp index 928dea6c4f7..5088a1101e5 100644 --- a/addons/spectator/XEH_PREP.hpp +++ b/addons/spectator/XEH_PREP.hpp @@ -25,6 +25,7 @@ PREP(ui_handleMouseMoving); PREP(ui_handleMouseZChanged); PREP(ui_handleTabSelected); PREP(ui_toggleMap); +PREP(ui_toggleUI); PREP(ui_updateListEntities); PREP(ui_updateListFocus); PREP(ui_updateListLocations); diff --git a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf index f26392fc187..cbb0e46c8b4 100644 --- a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf +++ b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf @@ -157,7 +157,7 @@ if (_key == DIK_LEFT) exitWith { // Handle toggling the UI if (_key == DIK_BACKSPACE) exitWith { - [] call FUNC(toggleUI); + [] call FUNC(ui_toggleUI); true }; diff --git a/addons/spectator/functions/fnc_ui_toggleUI.sqf b/addons/spectator/functions/fnc_ui_toggleUI.sqf new file mode 100644 index 00000000000..baa7d83e6d8 --- /dev/null +++ b/addons/spectator/functions/fnc_ui_toggleUI.sqf @@ -0,0 +1,27 @@ +/* + * Author: Nelson Duarte, AACO, SilentSpike + * Function used to toggle the whole user interface + * + * Public: No + */ + +#include "script_component.hpp" + +private _visible = !GVAR(uiVisible); + +{ + private _fade = 1; + if (_visible) then { + _fade = getNumber (configFile >> QGVAR(display) >> "Controls" >> ctrlClassName _x >> "fade"); + }; + + _x ctrlSetFade _fade; + _x ctrlCommit 0.25; +} forEach [CTRL_LIST, CTRL_TABS, CTRL_CAM_TYPES, CTRL_WIDGET]; + +showChat !_visible; +playSound (["HintExpand","HintCollapse"] select _visible); + +GVAR(uiVisible) = _visible; + +// TODO: Update help here From 1526162a4c33b2b58f11c2b00c0f99a6493d5cee Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Thu, 18 May 2017 09:42:23 +0100 Subject: [PATCH 020/198] Fix current camera mode button highlighting --- .../functions/fnc_cam_setCameraMode.sqf | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/addons/spectator/functions/fnc_cam_setCameraMode.sqf b/addons/spectator/functions/fnc_cam_setCameraMode.sqf index ad414deface..88257f70968 100644 --- a/addons/spectator/functions/fnc_cam_setCameraMode.sqf +++ b/addons/spectator/functions/fnc_cam_setCameraMode.sqf @@ -24,7 +24,7 @@ private _focus = GVAR(camTarget); if (!isNull _focus || _newMode == MODE_FREE) then { private _camera = GVAR(camera); - if (_newMode == MODE_FPS) exitWith { + if (_newMode == MODE_FPS) then { _camera cameraEffect ["Terminate", "BACK"]; _focus switchCamera "INTERNAL"; @@ -37,17 +37,16 @@ if (!isNull _focus || _newMode == MODE_FREE) then { _camera camCommand "manual off"; // Update UI - CTRL_FPS ctrlSetText CAM_ICON_FIRST_SELECTED; - CTRL_FOLLOW ctrlSetText CAM_ICON_THIRD; + CTRL_FPS ctrlSetText CAM_ICON_FPS_SELECTED; + CTRL_FOLLOW ctrlSetText CAM_ICON_FOLLOW; CTRL_FREE ctrlSetText CAM_ICON_FREE; // Update HUD showHUD [true, false, false, false, false, false, false, true]; cameraEffectEnableHUD true; - GVAR(camMode) = _newMode; }; - if (_newMode == MODE_FOLLOW) exitWith { + if (_newMode == MODE_FOLLOW) then { _camera cameraEffect ["Internal", "BACK"]; _focus switchCamera "EXTERNAL"; @@ -57,8 +56,8 @@ if (!isNull _focus || _newMode == MODE_FREE) then { _camera camCommand "manual off"; // Update UI - CTRL_FPS ctrlSetText CAM_ICON_FIRST; - CTRL_FOLLOW ctrlSetText CAM_ICON_THIRD_SELECTED; + CTRL_FPS ctrlSetText CAM_ICON_FPS; + CTRL_FOLLOW ctrlSetText CAM_ICON_FOLLOW_SELECTED; CTRL_FREE ctrlSetText CAM_ICON_FREE; // Update HUD @@ -67,7 +66,7 @@ if (!isNull _focus || _newMode == MODE_FREE) then { GVAR(camMode) = _newMode; }; - if (_newMode == MODE_FREE) exitWith { + if (_newMode == MODE_FREE) then { _camera cameraEffect ["Internal", "BACK"]; player switchCamera "INTERNAL"; _camera setDir getDirVisual _camera; @@ -83,8 +82,8 @@ if (!isNull _focus || _newMode == MODE_FREE) then { _camera camCommand "manual on"; // Update UI - CTRL_FPS ctrlSetText CAM_ICON_FIRST; - CTRL_FOLLOW ctrlSetText CAM_ICON_THIRD; + CTRL_FPS ctrlSetText CAM_ICON_FPS; + CTRL_FOLLOW ctrlSetText CAM_ICON_FOLLOW; CTRL_FREE ctrlSetText CAM_ICON_FREE_SELECTED; // Update HUD @@ -92,4 +91,8 @@ if (!isNull _focus || _newMode == MODE_FREE) then { cameraEffectEnableHUD true; GVAR(camMode) = _newMode; }; + + GVAR(camMode) = _newMode; + + // TODO: Update help here }; From 1fde631d6fba2947648a5d06dce8c243502daf48 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Thu, 18 May 2017 09:56:54 +0100 Subject: [PATCH 021/198] Fix focus info widget when clicked on in 3D world --- addons/spectator/functions/fnc_cam_draw3D.sqf | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/addons/spectator/functions/fnc_cam_draw3D.sqf b/addons/spectator/functions/fnc_cam_draw3D.sqf index cf955e11d29..4e284a23c50 100644 --- a/addons/spectator/functions/fnc_cam_draw3D.sqf +++ b/addons/spectator/functions/fnc_cam_draw3D.sqf @@ -23,9 +23,7 @@ if !(_intersections isEqualTo []) then { }; if !(_cursorObject isKindOf "Man") then { - if ((crew _cursorObject) isEqualTo []) then { - _cursorObject = objNull; - }; + _cursorObject = effectiveCommander _cursorObject; }; GVAR(cursorObject) = _cursorObject; From be28589773486dfd3a382757d8f4f41af3766146 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Thu, 18 May 2017 11:24:53 +0100 Subject: [PATCH 022/198] Improve key handling Use of `inputAction` could result in weirdness when multiple keys pressed at the same time. Hardcoded for now. --- addons/spectator/functions/fnc_cam_draw3D.sqf | 1 + .../functions/fnc_ui_handleKeyDown.sqf | 119 +++++++++--------- 2 files changed, 61 insertions(+), 59 deletions(-) diff --git a/addons/spectator/functions/fnc_cam_draw3D.sqf b/addons/spectator/functions/fnc_cam_draw3D.sqf index 4e284a23c50..8813f62578d 100644 --- a/addons/spectator/functions/fnc_cam_draw3D.sqf +++ b/addons/spectator/functions/fnc_cam_draw3D.sqf @@ -16,6 +16,7 @@ private _camTarget = GVAR(camTarget); BEGIN_COUNTER(updateCursor); private _cursorObject = objNull; +// TODO: This function doesn't work for units underwater, perhaps a solution can be found private _intersections = [getMousePosition select 0, getMousePosition select 1, _camTarget, vehicle _camTarget] call BIS_fnc_getIntersectionsUnderCursor; if !(_intersections isEqualTo []) then { diff --git a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf index cbb0e46c8b4..943380f74a1 100644 --- a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf +++ b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf @@ -11,13 +11,19 @@ params ["","_key","_shift","_ctrl","_alt"]; // Handle map toggle -if (inputAction "ShowMap" > 0 || inputAction "HideMap" > 0) exitWith { +if (_key == DIK_M) exitWith { [] call FUNC(ui_toggleMap); true }; +// Handle very fast speed +if (_key == DIK_LALT) exitWith { + [true] call FUNC(cam_toggleVeryFast); + true +}; + // Handle escape menu -if (inputAction "ingamePause" > 0) exitWith { +if (_key == DIK_ESCAPE) exitWith { if (GVAR(uiMapVisible)) then { [] call FUNC(ui_toggleMap); } else { @@ -31,20 +37,29 @@ if (inputAction "ingamePause" > 0) exitWith { true }; -// Handle postive change in draw -if (inputAction "zeroingUp" > 0) exitWith { - setViewDistance ((viewDistance + 250.0) min MAX_VIEW_DISTANCE); - true -}; +// Handle perspective cycling +if (_key in [DIK_SPACE, DIK_NUMPADENTER]) exitWith { + private _oldMode = GVAR(camMode); + private _modes = GVAR(availableModes); + + // Get current index and index count + private _iMode = (_modes find _oldMode) max 0; + private _countModes = count _modes; + + if (_countModes != 0) then { + _iMode = (_iMode + 1) % _countModes; + if (_iMode < 0) then { _iMode = _countModes + _iMode; }; + }; + + private _newMode = _modes select _iMode; + + [_newMode] call FUNC(cam_setCameraMode); -// Handle negative change in draw -if (inputAction "zeroingDown" > 0) exitWith { - setViewDistance ((viewDistance - 250.0) max MIN_VIEW_DISTANCE); true }; // Handle vision mode cycling -if (inputAction "nightVision" > 0) exitWith { +if (_key == DIK_N) exitWith { private _stepVision = [1,-1] select _shift; private _oldVision = GVAR(camVision); @@ -65,21 +80,20 @@ if (inputAction "nightVision" > 0) exitWith { true }; -// If the zeus key is pressed and unit is curator, open zeus interface -if ((inputAction "CuratorInterface") > 0 && {!isNull (getAssignedCuratorLogic player)}) exitWith { - // Disable drawing while in zeus - GVAR(drawUnits) = false; - GVAR(drawProjectiles) = false; - - SPEC_DISPLAY closeDisplay 1; - GVAR(camera) camCommand "manual off"; +// Handle postive change in draw +if (_key == DIK_PGUP) exitWith { + setViewDistance ((viewDistance + 250.0) min MAX_VIEW_DISTANCE); + true +}; - openCuratorInterface; +// Handle negative change in draw +if (_key == DIK_PGUP) exitWith { + setViewDistance ((viewDistance - 250.0) max MIN_VIEW_DISTANCE); true }; // Handle spectate lights -if (inputAction "headlights" > 0) exitWith { +if (_key == DIK_L) exitWith { if (GVAR(camLight)) then { { deleteVehicle _x; } forEach GVAR(camLights); GVAR(camLights) = []; @@ -103,43 +117,34 @@ if (inputAction "headlights" > 0) exitWith { true }; -// Handle toggle projectiles -if (inputAction "lockTarget" > 0) exitWith { - GVAR(drawProjectiles) = !GVAR(drawProjectiles); +// Handle toggling the UI +if (_key == DIK_BACKSPACE) exitWith { + [] call FUNC(ui_toggleUI); + true +}; + +// Handle toggling help +if (_key == DIK_F1) exitWith { + CTRL_HELP ctrlShow !(ctrlShown HELP); true }; // Handle toggle focus info widget -if (inputAction "networkStats" > 0) exitWith { +if (_key == DIK_P) exitWith { GVAR(uiWidgetVisible) = !GVAR(uiWidgetVisible); [] call FUNC(ui_updateWidget); true }; -// Handle very fast speed -if (_key == DIK_LALT) exitWith { - [true] call FUNC(cam_toggleVeryFast); +// Handle toggling projectile drawing +if (_key == DIK_O) exitWith { + GVAR(drawProjectiles) = !GVAR(drawProjectiles); true }; -// Handle perspective cycling -if (_key in [DIK_SPACE, DIK_NUMPADENTER]) exitWith { - private _oldMode = GVAR(camMode); - private _modes = GVAR(availableModes); - - // Get current index and index count - private _iMode = (_modes find _oldMode) max 0; - private _countModes = count _modes; - - if (_countModes != 0) then { - _iMode = (_iMode + 1) % _countModes; - if (_iMode < 0) then { _iMode = _countModes + _iMode; }; - }; - - private _newMode = _modes select _iMode; - - [_newMode] call FUNC(cam_setCameraMode); - +// Handle toggling unit drawing +if (_key == DIK_BACKSLASH) exitWith { + GVAR(drawUnits) = !GVAR(drawUnits); true }; @@ -155,21 +160,17 @@ if (_key == DIK_LEFT) exitWith { true }; -// Handle toggling the UI -if (_key == DIK_BACKSPACE) exitWith { - [] call FUNC(ui_toggleUI); - true -}; +// If the zeus key is pressed and unit is curator, open zeus interface +if ((_key in (actionKeys "CuratorInterface")) && {!isNull (getAssignedCuratorLogic player)}) exitWith { + // Disable drawing while in zeus + GVAR(drawUnits) = false; + GVAR(drawProjectiles) = false; -// Handle toggling the Tags -if (_key == DIK_BACKSLASH) exitWith { - GVAR(drawUnits) = !GVAR(drawUnits); - true -}; + // TODO: make this truly compatible + SPEC_DISPLAY closeDisplay 1; + GVAR(camera) camCommand "manual off"; -// Handle displaying help -if (_key == DIK_F1) exitWith { - CTRL_HELP ctrlShow !(ctrlShown HELP); + openCuratorInterface; true }; From 17c53a45f66aca33abeaf522413c35beacae5a61 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Thu, 18 May 2017 14:33:47 +0100 Subject: [PATCH 023/198] Implement dynamic help UI element --- addons/spectator/XEH_PREP.hpp | 1 + addons/spectator/functions/fnc_cam.sqf | 7 +- .../functions/fnc_cam_setCameraMode.sqf | 2 +- addons/spectator/functions/fnc_setFocus.sqf | 1 + addons/spectator/functions/fnc_ui.sqf | 16 +++- .../functions/fnc_ui_handleKeyDown.sqf | 8 +- .../fnc_ui_handleMouseButtonDown.sqf | 13 +-- .../spectator/functions/fnc_ui_toggleUI.sqf | 2 - .../spectator/functions/fnc_ui_updateHelp.sqf | 81 +++++++++++++++++++ addons/spectator/script_component.hpp | 1 - addons/spectator/ui.hpp | 18 ++--- 11 files changed, 121 insertions(+), 29 deletions(-) create mode 100644 addons/spectator/functions/fnc_ui_updateHelp.sqf diff --git a/addons/spectator/XEH_PREP.hpp b/addons/spectator/XEH_PREP.hpp index 5088a1101e5..5c97576449e 100644 --- a/addons/spectator/XEH_PREP.hpp +++ b/addons/spectator/XEH_PREP.hpp @@ -26,6 +26,7 @@ PREP(ui_handleMouseZChanged); PREP(ui_handleTabSelected); PREP(ui_toggleMap); PREP(ui_toggleUI); +PREP(ui_updateHelp); PREP(ui_updateListEntities); PREP(ui_updateListFocus); PREP(ui_updateListLocations); diff --git a/addons/spectator/functions/fnc_cam.sqf b/addons/spectator/functions/fnc_cam.sqf index 5ebdc8aa67e..9b9ee7ba9d6 100644 --- a/addons/spectator/functions/fnc_cam.sqf +++ b/addons/spectator/functions/fnc_cam.sqf @@ -71,14 +71,9 @@ if (_init) then { // TODO: Check if a camera object works here (see: https://feedback.bistudio.com/T123956) GVAR(camDummy) = "Land_HelipadEmpty_F" createVehicleLocal getPosASLVisual GVAR(camTarget); - // Start ticking + // Start updating things to draw GVAR(camPFH) = [LINKFUNC(cam_updateThingsToDraw), 0.2] call CBA_fnc_addPerFrameHandler; - GVAR(draw3D) = addMissionEventHandler ["Draw3D", {call FUNC(cam_draw3D)}]; } else { - // Stop ticking - removeMissionEventHandler ["Draw3D", GVAR(draw3D)]; - GVAR(draw3D) = nil; - // Stop updating things to draw [GVAR(camPFH)] call CBA_fnc_removePerFrameHandler; GVAR(camPFH) = nil; diff --git a/addons/spectator/functions/fnc_cam_setCameraMode.sqf b/addons/spectator/functions/fnc_cam_setCameraMode.sqf index 88257f70968..9fd555b85cf 100644 --- a/addons/spectator/functions/fnc_cam_setCameraMode.sqf +++ b/addons/spectator/functions/fnc_cam_setCameraMode.sqf @@ -94,5 +94,5 @@ if (!isNull _focus || _newMode == MODE_FREE) then { GVAR(camMode) = _newMode; - // TODO: Update help here + [] call FUNC(ui_updateHelp); }; diff --git a/addons/spectator/functions/fnc_setFocus.sqf b/addons/spectator/functions/fnc_setFocus.sqf index 7d527ccf71a..f917484e765 100644 --- a/addons/spectator/functions/fnc_setFocus.sqf +++ b/addons/spectator/functions/fnc_setFocus.sqf @@ -24,4 +24,5 @@ if (_newFocus != GVAR(camTarget) && { !(isNull _newFocus && { isNull GVAR(camTar [] call FUNC(ui_updateListFocus); [] call FUNC(ui_updateWidget); + [] call FUNC(ui_updateHelp); }; diff --git a/addons/spectator/functions/fnc_ui.sqf b/addons/spectator/functions/fnc_ui.sqf index 92b3a9ef114..36d685abd12 100644 --- a/addons/spectator/functions/fnc_ui.sqf +++ b/addons/spectator/functions/fnc_ui.sqf @@ -47,7 +47,11 @@ if (_init) then { // Create the display MAIN_DISPLAY createDisplay QGVAR(display); + // Store default H value for scaling purposes + GVAR(uiHelpH) = (ctrlPosition CTRL_HELP) select 3; + // Set the initial camera mode (could be pre-set) + // This also updates the help element [GVAR(camMode)] call FUNC(cam_setCameraMode); // Initially hide map @@ -56,12 +60,13 @@ if (_init) then { // Initially fade the list [true] call FUNC(ui_fadeList); - // Select the right camera button initially - // TODO - // Update the focus info widget initially [] call FUNC(ui_updateWidget); + // Draw unit icons, locations, projectiles, etc. + // Also tracks current focus information + GVAR(draw3D) = addMissionEventHandler ["Draw3D", {call FUNC(cam_draw3D)}]; + // Periodically update list and focus widget GVAR(uiPFH) = [{ if (GVAR(uiListType) == LIST_ENTITIES) then { @@ -76,6 +81,10 @@ if (_init) then { // Stop updating the list and focus widget [GVAR(uiPFH)] call CBA_fnc_removePerFrameHandler; + // Stop ticking + removeMissionEventHandler ["Draw3D", GVAR(draw3D)]; + GVAR(draw3D) = nil; + // Destroy the display SPEC_DISPLAY closeDisplay 1; @@ -89,6 +98,7 @@ if (_init) then { GVAR(uiListType) = nil; GVAR(uiMapHighlighted) = nil; GVAR(curList) = nil; + GVAR(uiHelpH) = nil; // Reset view distance setViewDistance GVAR(oldViewDistance); diff --git a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf index 943380f74a1..263adf45238 100644 --- a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf +++ b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf @@ -125,7 +125,13 @@ if (_key == DIK_BACKSPACE) exitWith { // Handle toggling help if (_key == DIK_F1) exitWith { - CTRL_HELP ctrlShow !(ctrlShown HELP); + GVAR(uiHelpVisible) = !GVAR(uiHelpVisible); + + [] call FUNC(ui_updateHelp); + + CTRL_HELP ctrlShow GVAR(uiHelpVisible); + CTRL_HELP_BACK ctrlShow GVAR(uiHelpVisible); + true }; diff --git a/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf b/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf index ea9a7bf90a7..de25a9f14bc 100644 --- a/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf +++ b/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf @@ -1,11 +1,11 @@ /* - * Author: Nelson Duarte, AACO + * Author: Nelson Duarte, AACO, SilentSpike * Function used to handle mouse down event * * Expected behaviour: * Left clicking a unit focuses the camera on that unit (in any camera mode) * Left clicking empty space removes the current camera focus in free camera - * Right clicking removes the current camera focus in free camera + * Right clicking removes the camera lock, but retains the focus in free camera * Right clicking and dragging orbits around the unit in follow camera * * Public: No @@ -18,16 +18,17 @@ params ["", "_button"]; // Left click if (_button == 0) exitWith { if (isNull GVAR(cursorObject)) then { - if (!isNull GVAR(camTarget)) then { - playsound "ReadoutHideClick1"; + if (GVAR(camMode) == MODE_FREE && { !isNull GVAR(camTarget) }) then { + playSound "ReadoutHideClick1"; + [objNull] call FUNC(SetFocus); }; } else { - playsound "ReadoutClick"; + playSound "ReadoutClick"; // Focus will be at screen center + [GVAR(cursorObject)] call FUNC(setFocus); setMousePosition [0.5, 0.5]; }; - [GVAR(cursorObject)] call FUNC(setFocus); }; // Right click diff --git a/addons/spectator/functions/fnc_ui_toggleUI.sqf b/addons/spectator/functions/fnc_ui_toggleUI.sqf index baa7d83e6d8..1a25c5212d4 100644 --- a/addons/spectator/functions/fnc_ui_toggleUI.sqf +++ b/addons/spectator/functions/fnc_ui_toggleUI.sqf @@ -23,5 +23,3 @@ showChat !_visible; playSound (["HintExpand","HintCollapse"] select _visible); GVAR(uiVisible) = _visible; - -// TODO: Update help here diff --git a/addons/spectator/functions/fnc_ui_updateHelp.sqf b/addons/spectator/functions/fnc_ui_updateHelp.sqf new file mode 100644 index 00000000000..ab3fdf134ac --- /dev/null +++ b/addons/spectator/functions/fnc_ui_updateHelp.sqf @@ -0,0 +1,81 @@ +/* + * Author: Nelson Duarte, SilentSpike + * Updates spectator UI help element + * + * Note that there are some redundant conditions in this file + * This is intentional, since controls appear via priority que + * The overhead is minimal + * + * Public: No + */ + +#include "script_component.hpp" +#define MAX_CONTROLS_HELP_ENTRIES 12 + +if !(GVAR(uiHelpVisible)) exitWith {}; + +private _cameraMode = GVAR(camMode); +private _availableModes = GVAR(availableModes); +private _hasTarget = !isNull GVAR(camTarget); + +private _controls = []; + +// When not in first person, camera rotation applies +if (_cameraMode != MODE_FPS) then { + _controls pushback ["[RMB]", localize "STR_A3_Spectator_Helper_CameraRotation"]; +}; + +// When in free camera, focus/un-focus with LMB +if (_cameraMode == MODE_FREE) then { + if (_hasTarget) then { + _controls pushBack ["[LMB]", localize "STR_A3_Spectator_Helper_Unfocus"]; + } else { + _controls pushBack ["[LMB]", localize "STR_A3_Spectator_Helper_Focus"]; + }; +}; + +// When the camera has a focus, switch mode applies (if other modes are available) +if (_hasTarget && {count _availableModes > 1}) then { + _controls pushBack ["[SPACE]", localize "STR_A3_Spectator_Helper_CameraMode"]; +}; + +if (_cameraMode == MODE_FREE) then { + _controls pushback ["[W/S]", localize "STR_A3_Spectator_Helper_Movement"]; + _controls pushback ["[A/D]", localize "STR_A3_Spectator_Helper_Strafing"]; + _controls pushback ["[Q/Z]", localize "STR_A3_Spectator_Helper_Height"]; +}; + +_controls pushback ["[BACK]", localize "STR_A3_Spectator_Helper_Interface"]; +_controls pushback ["[F1]", localize "STR_A3_Spectator_Helper_Controls"]; + +if (_cameraMode == MODE_FREE) then { + _controls pushback ["[LSHIFT]", localize "STR_A3_Spectator_Helper_Shift"]; + _controls pushback ["[LALT]", localize "STR_A3_Spectator_Helper_Alt"]; + _controls pushback ["[LALT + LSHIFT]", localize "STR_A3_Spectator_Helper_ShiftAlt"]; +}; + +if (count _controls > MAX_CONTROLS_HELP_ENTRIES) then { + _controls resize MAX_CONTROLS_HELP_ENTRIES; +}; + +private _help = CTRL_HELP; + +_help ctrlEnable false; +_help lnbSetColumnsPos [0, 0.45]; +lnbClear _help; + +{ + _help lnbAddRow _x; + _help lnbSetColor [[_forEachIndex, 0], [0.75,0.6,0,1]]; +} forEach _controls; + +// Set height based on number of rows +private _newH = (GVAR(uiHelpH) / MAX_CONTROLS_HELP_ENTRIES) * count _controls; +private _newY = safezoneY + safezoneH - _newH; + +(ctrlPosition _help) params ["_newX","","_newW"]; + +{ + _x ctrlSetPosition [_newX, _newY, _newW, _newH]; + _x ctrlCommit 0.15; +} forEach [CTRL_HELP_BACK, _help]; diff --git a/addons/spectator/script_component.hpp b/addons/spectator/script_component.hpp index 938d444e9e6..b045d736dc3 100644 --- a/addons/spectator/script_component.hpp +++ b/addons/spectator/script_component.hpp @@ -48,7 +48,6 @@ #define DISTANCE_NAMES 175 #define NAME_MAX_CHARACTERS 17 -#define MAX_CONTROLS_HELP_ENTRIES 12 #define LIST_ENTITIES localize "STR_A3_Spectator_Entities" #define LIST_LOCATIONS localize "STR_A3_Spectator_Locations" diff --git a/addons/spectator/ui.hpp b/addons/spectator/ui.hpp index b23e4877720..c70a842375d 100644 --- a/addons/spectator/ui.hpp +++ b/addons/spectator/ui.hpp @@ -91,7 +91,7 @@ class GVAR(display) { columns = 2; strings[] = {"$STR_A3_Spectator_Entities","$STR_A3_Spectator_Locations"}; values[] = {0,1}; - sizeEx = H_PART(1.0); + sizeEx = H_PART(1); colorBackground[] = {0,0,0,0.75}; colorSelectedBg[] = {0,0,0,0.65}; }; @@ -189,7 +189,7 @@ class GVAR(display) { text = ""; style = 2; colorBackground[] = {0,0,0,0.75}; - sizeEx = H_PART(1.0); + sizeEx = H_PART(1); }; class GameTimeText: RscText { idc = IDC_TIME; @@ -198,7 +198,7 @@ class GVAR(display) { w = 0.29; h = 0.03; text = "00:00:00"; - sizeEx = H_PART(1.0); + sizeEx = H_PART(1); }; class MapTitle: RscText { idc = IDC_MAP_TITLE; @@ -245,8 +245,8 @@ class GVAR(display) { }; class HelpBackground: RscText { idc = IDC_HELP_BACK; - x = X_PART(37); - y = Y_PART(23); + x = safezoneX + safezoneW - W_PART(12); + y = safezoneY + safezoneH - H_PART(8); w = W_PART(12); h = H_PART(8); colorBackground[] = {0,0,0,0.75}; @@ -256,10 +256,10 @@ class GVAR(display) { disableOverflow = 0; rowHeight = H_PART(1); idc = IDC_HELP; - x = X_PART(37.0); - y = Y_PART(23.0); - w = W_PART(12.0); - h = H_PART(12.0); + x = safezoneX + safezoneW - W_PART(12); + y = safezoneY + safezoneH - H_PART(12); + w = W_PART(12); + h = H_PART(12); }; class FocusInfo: RscControlsGroupNoScrollbars { idc = IDC_WIDGET; From 6ee7aefb9b5587537fa4486b124c58815b0ad5d8 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Thu, 18 May 2017 14:45:20 +0100 Subject: [PATCH 024/198] Remove some redundant code --- .../functions/fnc_cam_setCameraMode.sqf | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/addons/spectator/functions/fnc_cam_setCameraMode.sqf b/addons/spectator/functions/fnc_cam_setCameraMode.sqf index 9fd555b85cf..e60333466b4 100644 --- a/addons/spectator/functions/fnc_cam_setCameraMode.sqf +++ b/addons/spectator/functions/fnc_cam_setCameraMode.sqf @@ -23,6 +23,7 @@ if !(_newMode in _modes) then { private _focus = GVAR(camTarget); if (!isNull _focus || _newMode == MODE_FREE) then { private _camera = GVAR(camera); + private _showHUD = [true,true,true,true,true,true,true,true]; if (_newMode == MODE_FPS) then { _camera cameraEffect ["Terminate", "BACK"]; @@ -41,9 +42,8 @@ if (!isNull _focus || _newMode == MODE_FREE) then { CTRL_FOLLOW ctrlSetText CAM_ICON_FOLLOW; CTRL_FREE ctrlSetText CAM_ICON_FREE; - // Update HUD - showHUD [true, false, false, false, false, false, false, true]; - cameraEffectEnableHUD true; + // Hide all unit/group information in first person view + _showHUD = [true,false,false,false,false,false,false,true]; }; if (_newMode == MODE_FOLLOW) then { @@ -59,11 +59,6 @@ if (!isNull _focus || _newMode == MODE_FREE) then { CTRL_FPS ctrlSetText CAM_ICON_FPS; CTRL_FOLLOW ctrlSetText CAM_ICON_FOLLOW_SELECTED; CTRL_FREE ctrlSetText CAM_ICON_FREE; - - // Update HUD - showHUD [true, true, true, true, true, true, true, true]; - cameraEffectEnableHUD true; - GVAR(camMode) = _newMode; }; if (_newMode == MODE_FREE) then { @@ -85,13 +80,11 @@ if (!isNull _focus || _newMode == MODE_FREE) then { CTRL_FPS ctrlSetText CAM_ICON_FPS; CTRL_FOLLOW ctrlSetText CAM_ICON_FOLLOW; CTRL_FREE ctrlSetText CAM_ICON_FREE_SELECTED; - - // Update HUD - showHUD [true, true, true, true, true, true, true, true]; - cameraEffectEnableHUD true; - GVAR(camMode) = _newMode; }; + // Update the HUD + cameraEffectEnableHUD true; + showHUD _showHUD; GVAR(camMode) = _newMode; [] call FUNC(ui_updateHelp); From 559959abd21e41c1dd977d3bfaa3d740a4a7fbf3 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Thu, 18 May 2017 15:30:52 +0100 Subject: [PATCH 025/198] Fix follow camera jitter --- addons/spectator/XEH_PREP.hpp | 3 +- addons/spectator/functions/fnc_cam.sqf | 7 ++ addons/spectator/functions/fnc_cam_tick.sqf | 74 +++++++++++++++++++ addons/spectator/functions/fnc_ui.sqf | 11 ++- .../{fnc_cam_draw3D.sqf => fnc_ui_draw3D.sqf} | 70 ++---------------- 5 files changed, 93 insertions(+), 72 deletions(-) create mode 100644 addons/spectator/functions/fnc_cam_tick.sqf rename addons/spectator/functions/{fnc_cam_draw3D.sqf => fnc_ui_draw3D.sqf} (68%) diff --git a/addons/spectator/XEH_PREP.hpp b/addons/spectator/XEH_PREP.hpp index 5c97576449e..040de51778a 100644 --- a/addons/spectator/XEH_PREP.hpp +++ b/addons/spectator/XEH_PREP.hpp @@ -1,16 +1,17 @@ // Camera functions PREP(cam); -PREP(cam_draw3D); PREP(cam_prepareTarget); PREP(cam_resetTarget); PREP(cam_setCameraMode); PREP(cam_setTarget); PREP(cam_setVisionMode); +PREP(cam_tick); PREP(cam_toggleVeryFast); PREP(cam_updateThingsToDraw); // UI functions PREP(ui); +PREP(ui_draw3D); PREP(ui_fadeList); PREP(ui_getTreeDataIndex); PREP(ui_handleChildDestroyed); diff --git a/addons/spectator/functions/fnc_cam.sqf b/addons/spectator/functions/fnc_cam.sqf index 9b9ee7ba9d6..ef3a9a9b7d0 100644 --- a/addons/spectator/functions/fnc_cam.sqf +++ b/addons/spectator/functions/fnc_cam.sqf @@ -71,6 +71,9 @@ if (_init) then { // TODO: Check if a camera object works here (see: https://feedback.bistudio.com/T123956) GVAR(camDummy) = "Land_HelipadEmpty_F" createVehicleLocal getPosASLVisual GVAR(camTarget); + // Start ticking (follow camera requires EachFrame to avoid jitter) + GVAR(camTick) = addMissionEventHandler ["EachFrame", {call FUNC(cam_tick)}]; + // Start updating things to draw GVAR(camPFH) = [LINKFUNC(cam_updateThingsToDraw), 0.2] call CBA_fnc_addPerFrameHandler; } else { @@ -78,6 +81,10 @@ if (_init) then { [GVAR(camPFH)] call CBA_fnc_removePerFrameHandler; GVAR(camPFH) = nil; + // Stop ticking + removeMissionEventHandler ["EachFrame", GVAR(camTick)]; + GVAR(camTick) = nil; + // Return to player view if !(isNull GVAR(camera)) then { GVAR(camera) cameraEffect ["terminate", "back"]; diff --git a/addons/spectator/functions/fnc_cam_tick.sqf b/addons/spectator/functions/fnc_cam_tick.sqf new file mode 100644 index 00000000000..c602bb7a27b --- /dev/null +++ b/addons/spectator/functions/fnc_cam_tick.sqf @@ -0,0 +1,74 @@ +/* + * Author: Nelson Duarte, AACO, SilentSpike + * Function used to perform camera ticks + * + * Updates camera position in follow mode + * Updates camera focus if current focus becomes null (in unit modes) + * Updates camera when focus enters/exits a vehicle + * Updates camera lights position + * + * Public: No + */ + +#include "script_component.hpp" + +BEGIN_COUNTER(camTick); +private _cameraMode = GVAR(camMode); +private _camTarget = GVAR(camTarget); + +// UI mouse handler makes use of delta time between camera ticks +private _currentTime = diag_tickTime; +GVAR(camDeltaTime) = _currentTime - GVAR(camLastTickTime); +GVAR(camLastTickTime) = _currentTime; + + +// If no focus in unit camera modes try to find a new one +if (_cameraMode in MODES_UNIT) then { + private _focus = if (isNull _camTarget) then { + private _testFocus = ([] call FUNC(getTargetEntities)) select 0; + if (isNil "_testFocus") then { + objNull + } else { + _testFocus + } + } else { + _camTarget + }; + + // If new focus was found then switch to it + if (!isNull _focus && {_focus != _camTarget}) then { + [_focus] call FUNC(setFocus); + }; + + if (!isNull _focus && {_cameraMode == MODE_FOLLOW}) then { + [_focus] call FUNC(cam_prepareTarget); + }; +}; + +// Refresh the local variable +_camTarget = GVAR(camTarget); + +// Focus get in / out of vehicle state +if !(isNull _camTarget) then { + private _targetInVeh = GVAR(camTargetInVehicle); + + if (GVAR(camHasTarget)) then { + if (!_targetInVeh && { vehicle _camTarget != _camTarget }) then { + [_camTarget] call FUNC(cam_setTarget); + GVAR(camTargetInVehicle) = true; + }; + + if (_targetInVeh && { vehicle _camTarget == _camTarget }) then { + [_camTarget] call FUNC(cam_setTarget); + GVAR(camTargetInVehicle) = false; + }; + }; +} else { + GVAR(camTargetInVehicle) = false; +}; + +// Camera lights +if (count GVAR(camLights) > 1) then { + (GVAR(camLights) select 1) setPosASL (AGLToASL (screenToWorld getMousePosition)); +}; +END_COUNTER(camTick); diff --git a/addons/spectator/functions/fnc_ui.sqf b/addons/spectator/functions/fnc_ui.sqf index 36d685abd12..8fde9cf05b2 100644 --- a/addons/spectator/functions/fnc_ui.sqf +++ b/addons/spectator/functions/fnc_ui.sqf @@ -63,9 +63,8 @@ if (_init) then { // Update the focus info widget initially [] call FUNC(ui_updateWidget); - // Draw unit icons, locations, projectiles, etc. - // Also tracks current focus information - GVAR(draw3D) = addMissionEventHandler ["Draw3D", {call FUNC(cam_draw3D)}]; + // Draw icons and update the cursor object + GVAR(uiDraw3D) = addMissionEventHandler ["Draw3D", {call FUNC(ui_draw3D)}]; // Periodically update list and focus widget GVAR(uiPFH) = [{ @@ -81,9 +80,9 @@ if (_init) then { // Stop updating the list and focus widget [GVAR(uiPFH)] call CBA_fnc_removePerFrameHandler; - // Stop ticking - removeMissionEventHandler ["Draw3D", GVAR(draw3D)]; - GVAR(draw3D) = nil; + // Stop drawing icons and tracking cursor object + removeMissionEventHandler ["Draw3D", GVAR(uiDraw3D)]; + GVAR(uiDraw3D) = nil; // Destroy the display SPEC_DISPLAY closeDisplay 1; diff --git a/addons/spectator/functions/fnc_cam_draw3D.sqf b/addons/spectator/functions/fnc_ui_draw3D.sqf similarity index 68% rename from addons/spectator/functions/fnc_cam_draw3D.sqf rename to addons/spectator/functions/fnc_ui_draw3D.sqf index 8813f62578d..c4aa3a48082 100644 --- a/addons/spectator/functions/fnc_cam_draw3D.sqf +++ b/addons/spectator/functions/fnc_ui_draw3D.sqf @@ -1,6 +1,6 @@ /* * Author: Nelson Duarte, AACO, SilentSpike - * Function used to draw the 3D icons/do per-frame calculations + * Function used to draw the 3D icons and track the cursor object * * Public: No */ @@ -10,10 +10,8 @@ #define GRENADE_ICON "A3\Ui_f\data\IGUI\Cfg\HoldActions\holdAction_connect_ca.paa" #define ICON_BACKGROUND_UNIT "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\UnitName_ca.paa" -private _camera = GVAR(camera); -private _camTarget = GVAR(camTarget); - BEGIN_COUNTER(updateCursor); +private _camTarget = GVAR(camTarget); private _cursorObject = objNull; // TODO: This function doesn't work for units underwater, perhaps a solution can be found @@ -30,65 +28,6 @@ if !(_cursorObject isKindOf "Man") then { GVAR(cursorObject) = _cursorObject; END_COUNTER(updateCursor); -BEGIN_COUNTER(camTick); -private _cameraMode = GVAR(camMode); - -// UI mouse handler makes use of delta time between camera ticks -private _currentTime = diag_tickTime; -GVAR(camDeltaTime) = _currentTime - GVAR(camLastTickTime); -GVAR(camLastTickTime) = _currentTime; - -// If no focus in unit camera modes try to find a new one -if (_cameraMode in MODES_UNIT) then { - private _focus = if (isNull _camTarget) then { - private _testFocus = ([] call FUNC(getTargetEntities)) select 0; - if (isNil "_testFocus") then { - objNull - } else { - _testFocus - } - } else { - _camTarget - }; - - // If new focus was found then switch to it - if !(isNull _focus && {_focus != _camTarget}) then { - [_focus] call FUNC(setFocus); - }; - - if (!isNull _focus && {_cameraMode == MODE_FOLLOW}) then { - [_focus] call FUNC(cam_prepareTarget); - }; -}; - -// Refresh the local variable -_camTarget = GVAR(camTarget); - -// Focus get in / out of vehicle state -if !(isNull _camTarget) then { - private _targetInVeh = GVAR(camTargetInVehicle); - - if (GVAR(camHasTarget)) then { - if (!_targetInVeh && { vehicle _camTarget != _camTarget }) then { - [_camTarget] call FUNC(cam_setTarget); - GVAR(camTargetInVehicle) = true; - }; - - if (_targetInVeh && { vehicle _camTarget == _camTarget }) then { - [_camTarget] call FUNC(cam_setTarget); - GVAR(camTargetInVehicle) = false; - }; - }; -} else { - GVAR(camTargetInVehicle) = false; -}; - -// Camera lights -if (count GVAR(camLights) > 1) then { - (GVAR(camLights) select 1) setPosASL (AGLToASL (screenToWorld getMousePosition)); -}; -END_COUNTER(camTick); - if !(GVAR(uiMapVisible)) then { if (GVAR(drawUnits)) then { BEGIN_COUNTER(drawTags); @@ -97,7 +36,7 @@ if !(GVAR(uiMapVisible)) then { _x params ["_unit", "_type", "_icon"]; private _position = (_unit modelToWorldVisual (_unit selectionPosition "Head")) vectorAdd [0,0,HEIGHT_OFFSET]; - if (_type == 2 && { _unit distance _camera < DISTANCE_NAMES } && {_unit in _camTarget || _unit in _cursorObject}) then { + if (_type == 2 && { _unit distance GVAR(camera) < DISTANCE_NAMES } && {_unit in _camTarget || _unit in _cursorObject}) then { drawIcon3D [ ICON_BACKGROUND_UNIT, [0, 0, 0, [0.4, 0.8] select (_unit in _camTarget)], @@ -186,7 +125,8 @@ if !(GVAR(uiMapVisible)) then { nil // Speed loop } count GVAR(grenades); + GVAR(grenades) = _grenadesNew; + END_COUNTER(drawTracers); }; - END_COUNTER(drawTracers); }; From 4cb91c07c8e33018d4a362e190a9baceafff7b30 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Thu, 18 May 2017 18:35:34 +0100 Subject: [PATCH 026/198] Add projectile drawing Technically the capability to draw projectiles has been in since the start. However it took me a bit of time to figure out how best to add/remove the required event handlers. I decided to add them during the process of finding things to draw, since I'm iterating over the list of spectatable entities here anyway. With an additional GVAR containing up to date entities, the fired EHs can remove themselves when applicable. This avoids any granularity issues with adding EHs en masse. --- addons/spectator/XEH_PREP.hpp | 9 +++-- addons/spectator/functions/fnc_cam.sqf | 19 ---------- addons/spectator/functions/fnc_cam_tick.sqf | 1 + .../spectator/functions/fnc_handleFired.sqf | 38 +++++++++++++++++++ addons/spectator/functions/fnc_ui.sqf | 23 +++++++++++ addons/spectator/functions/fnc_ui_draw3D.sqf | 10 +++-- .../functions/fnc_ui_handleTabSelected.sqf | 3 -- ...sToDraw.sqf => fnc_updateThingsToDraw.sqf} | 10 +++++ addons/spectator/script_component.hpp | 17 +++++---- 9 files changed, 94 insertions(+), 36 deletions(-) create mode 100644 addons/spectator/functions/fnc_handleFired.sqf rename addons/spectator/functions/{fnc_cam_updateThingsToDraw.sqf => fnc_updateThingsToDraw.sqf} (91%) diff --git a/addons/spectator/XEH_PREP.hpp b/addons/spectator/XEH_PREP.hpp index 040de51778a..d0d4bd364f0 100644 --- a/addons/spectator/XEH_PREP.hpp +++ b/addons/spectator/XEH_PREP.hpp @@ -7,7 +7,6 @@ PREP(cam_setTarget); PREP(cam_setVisionMode); PREP(cam_tick); PREP(cam_toggleVeryFast); -PREP(cam_updateThingsToDraw); // UI functions PREP(ui); @@ -33,13 +32,17 @@ PREP(ui_updateListFocus); PREP(ui_updateListLocations); PREP(ui_updateWidget); -// Misc/Public functions +// Utility functions PREP(getTargetEntities); PREP(getTargetGroups); -PREP(interrupt); +PREP(handleFired); PREP(moduleSpectatorSettings); PREP(respawnTemplate); PREP(setFocus); +PREP(updateThingsToDraw); + +// Public functions +PREP(interrupt); PREP(setSpectator); PREP(stageSpectator); PREP(updateCameraModes); diff --git a/addons/spectator/functions/fnc_cam.sqf b/addons/spectator/functions/fnc_cam.sqf index ef3a9a9b7d0..c05b7d51b40 100644 --- a/addons/spectator/functions/fnc_cam.sqf +++ b/addons/spectator/functions/fnc_cam.sqf @@ -24,13 +24,6 @@ if (_init) then { GVAR(camHasTarget) = false; GVAR(camTargetInVehicle) = false; - // Drawing related - GVAR(drawProjectiles) = false; - GVAR(drawUnits) = true; - GVAR(grenades) = []; - GVAR(projectiles) = []; - GVAR(thingsToDraw) = []; - // Follow camera related GVAR(camDistance) = 0; GVAR(camDistanceTemp) = 0; @@ -73,14 +66,7 @@ if (_init) then { // Start ticking (follow camera requires EachFrame to avoid jitter) GVAR(camTick) = addMissionEventHandler ["EachFrame", {call FUNC(cam_tick)}]; - - // Start updating things to draw - GVAR(camPFH) = [LINKFUNC(cam_updateThingsToDraw), 0.2] call CBA_fnc_addPerFrameHandler; } else { - // Stop updating things to draw - [GVAR(camPFH)] call CBA_fnc_removePerFrameHandler; - GVAR(camPFH) = nil; - // Stop ticking removeMissionEventHandler ["EachFrame", GVAR(camTick)]; GVAR(camTick) = nil; @@ -107,11 +93,6 @@ if (_init) then { GVAR(camLastTickTime) = nil; GVAR(camHasTarget) = nil; GVAR(camTargetInVehicle) = nil; - GVAR(drawProjectiles) = nil; - GVAR(drawUnits) = nil; - GVAR(grenades) = nil; - GVAR(projectiles) = nil; - GVAR(thingsToDraw) = nil; GVAR(camDistance) = nil; GVAR(camDistanceTemp) = nil; GVAR(camYaw) = nil; diff --git a/addons/spectator/functions/fnc_cam_tick.sqf b/addons/spectator/functions/fnc_cam_tick.sqf index c602bb7a27b..a1925cc4ab4 100644 --- a/addons/spectator/functions/fnc_cam_tick.sqf +++ b/addons/spectator/functions/fnc_cam_tick.sqf @@ -40,6 +40,7 @@ if (_cameraMode in MODES_UNIT) then { [_focus] call FUNC(setFocus); }; + // Update the follow camera position if (!isNull _focus && {_cameraMode == MODE_FOLLOW}) then { [_focus] call FUNC(cam_prepareTarget); }; diff --git a/addons/spectator/functions/fnc_handleFired.sqf b/addons/spectator/functions/fnc_handleFired.sqf new file mode 100644 index 00000000000..01a8ce1da65 --- /dev/null +++ b/addons/spectator/functions/fnc_handleFired.sqf @@ -0,0 +1,38 @@ +/* + * Author: Nelson Duarte, AACO, SilentSpike + * Function used to add projectiles to be drawn when a unit fires + * + * Public: No + */ + +#include "script_component.hpp" + +params [ + "_unit", + ["_weapon", "", [""]], + "", // Muzzle + "", // Mode + "", // Ammo + "", // Magazine + ["_projectile", objNull, [objNull]] +]; + +// Remove the EH when spectator is no longer active or unit is removed +if (isNil QGVAR(entitiesToDraw) || {!(_unit in GVAR(entitiesToDraw))}) exitWith { + _unit removeEventHandler ["Fired", _thisEventHandler]; + SETVAR(_unit,GVAR(firedEH),nil); +}; + +// Fire time used for unit icon highlighting +_unit setVariable [QGVAR(highlightTime), time + FIRE_HIGHLIGHT_TIME]; + +// Store projectiles / grenades for drawing +if (GVAR(drawProjectiles) && {!isNull _projectile}) then { + if (_weapon == "Throw") then { + if (count GVAR(grenades) > MAX_GRENADES) then { GVAR(grenades) deleteAt 0; }; + GVAR(grenades) pushBack _projectile; + } else { + if (count GVAR(projectiles) > MAX_PROJECTILES) then { GVAR(projectiles) deleteAt 0; }; + GVAR(projectiles) pushBack [_projectile, [[getPosVisual _projectile, [1,0,0,0]]]]; + }; +}; diff --git a/addons/spectator/functions/fnc_ui.sqf b/addons/spectator/functions/fnc_ui.sqf index 8fde9cf05b2..e62b25e04d3 100644 --- a/addons/spectator/functions/fnc_ui.sqf +++ b/addons/spectator/functions/fnc_ui.sqf @@ -28,6 +28,13 @@ if (_init) then { GVAR(uiMapVisible) = true; GVAR(uiWidgetVisible) = true; + // Drawing related + GVAR(drawProjectiles) = false; + GVAR(drawUnits) = true; + GVAR(grenades) = []; + GVAR(projectiles) = []; + GVAR(thingsToDraw) = []; + // RMB tracking is used for follow camera mode GVAR(holdingRMB) = false; @@ -39,6 +46,7 @@ if (_init) then { // Holds the current list data GVAR(curList) = []; + GVAR(curLocationList) = []; // Cache view distance and set spectator default GVAR(oldViewDistance) = viewDistance; @@ -63,6 +71,9 @@ if (_init) then { // Update the focus info widget initially [] call FUNC(ui_updateWidget); + // Start updating things to draw + GVAR(collectPFH) = [LINKFUNC(updateThingsToDraw), 0.2] call CBA_fnc_addPerFrameHandler; + // Draw icons and update the cursor object GVAR(uiDraw3D) = addMissionEventHandler ["Draw3D", {call FUNC(ui_draw3D)}]; @@ -84,6 +95,10 @@ if (_init) then { removeMissionEventHandler ["Draw3D", GVAR(uiDraw3D)]; GVAR(uiDraw3D) = nil; + // Stop updating things to draw + [GVAR(collectPFH)] call CBA_fnc_removePerFrameHandler; + GVAR(collectPFH) = nil; + // Destroy the display SPEC_DISPLAY closeDisplay 1; @@ -97,8 +112,16 @@ if (_init) then { GVAR(uiListType) = nil; GVAR(uiMapHighlighted) = nil; GVAR(curList) = nil; + GVAR(curLocationList) = nil; GVAR(uiHelpH) = nil; + // Stop drawing + GVAR(drawProjectiles) = nil; + GVAR(drawUnits) = nil; + GVAR(grenades) = nil; + GVAR(projectiles) = nil; + GVAR(thingsToDraw) = nil; + // Reset view distance setViewDistance GVAR(oldViewDistance); GVAR(oldViewDistance) = nil; diff --git a/addons/spectator/functions/fnc_ui_draw3D.sqf b/addons/spectator/functions/fnc_ui_draw3D.sqf index c4aa3a48082..105ed5dc3d8 100644 --- a/addons/spectator/functions/fnc_ui_draw3D.sqf +++ b/addons/spectator/functions/fnc_ui_draw3D.sqf @@ -80,20 +80,23 @@ if !(GVAR(uiMapVisible)) then { ]; if !(isNull _projectile) then { + // Store new segment private _newestIndex = _segments pushBack [ getPosVisual _projectile, (vectorMagnitude velocity _projectile) call { if (_this < 250) exitWith { [0,0,1,1] }; - if (_this < 250) exitWith { [0,1,0,1] }; + if (_this < 500) exitWith { [0,1,0,1] }; [1,0,0,1] } ]; - if (_newestIndex > MAX_TRACKED_PROJECTILE_SEGMENTS) then { + // Clamp number of segments to be drawn + if (_newestIndex > MAX_PROJECTILE_SEGMENTS) then { _segments deleteAt 0; DEC(_newestIndex); }; + // Draw all projectile segments private _oldLoc = []; { _x params ["_locNew", "_colorNew"]; @@ -105,6 +108,7 @@ if !(GVAR(uiMapVisible)) then { nil // Speed loop } count _segments; + // Store projectiles for next frame _projectilesNew pushBack [_projectile, _segments]; }; @@ -116,7 +120,7 @@ if !(GVAR(uiMapVisible)) then { if !(isNull _x) then { private _grenadeVelocityMagnitude = vectorMagnitude velocity _x; - // Draw grenade + // Draw grenade (rotate icon to represent spinning) drawIcon3D [GRENADE_ICON, [1,0,0,1], getPosVisual _x, 0.6, 0.6, if (_grenadeVelocityMagnitude > 0) then { time * 100 * _grenadeVelocityMagnitude } else { 0 }, "", 0, 0.05, "TahomaB"]; // Store grenade for next frame diff --git a/addons/spectator/functions/fnc_ui_handleTabSelected.sqf b/addons/spectator/functions/fnc_ui_handleTabSelected.sqf index 713a2b04302..d1790a9391e 100644 --- a/addons/spectator/functions/fnc_ui_handleTabSelected.sqf +++ b/addons/spectator/functions/fnc_ui_handleTabSelected.sqf @@ -12,9 +12,6 @@ params ["_ctrl", "_index"]; // Track current list type GVAR(uiListType) = [LIST_ENTITIES, LIST_LOCATIONS] select _index; -// Reset the current list -GVAR(curList) = []; - // Clear list tvClear CTRL_LIST; diff --git a/addons/spectator/functions/fnc_cam_updateThingsToDraw.sqf b/addons/spectator/functions/fnc_updateThingsToDraw.sqf similarity index 91% rename from addons/spectator/functions/fnc_cam_updateThingsToDraw.sqf rename to addons/spectator/functions/fnc_updateThingsToDraw.sqf index 0a9c725002f..55982d39720 100644 --- a/addons/spectator/functions/fnc_cam_updateThingsToDraw.sqf +++ b/addons/spectator/functions/fnc_updateThingsToDraw.sqf @@ -10,6 +10,7 @@ #define ICON_UNIT "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\UnitIcon_ca.paa" private _thingsToDraw = []; +private _entitiesToDraw = []; { private _vehicle = vehicle _x; @@ -124,7 +125,16 @@ private _thingsToDraw = []; ]]; }; + // Track entities themselves for use with fired EH + _entitiesToDraw pushBack _x; + + // Add fired EH for drawing and icon highlighting + if (GETVAR(_x,GVAR(firedEH),-1) == -1) then { + SETVAR(_x,GVAR(firedEH),_x addEventHandler [ARR_2("Fired",{_this call FUNC(handleFired)})]); + }; + nil // Speed loop } count ([] call FUNC(getTargetEntities)); GVAR(thingsToDraw) = _thingsToDraw; +GVAR(entitiesToDraw) = _entitiesToDraw; diff --git a/addons/spectator/script_component.hpp b/addons/spectator/script_component.hpp index b045d736dc3..cb11cc7e6cb 100644 --- a/addons/spectator/script_component.hpp +++ b/addons/spectator/script_component.hpp @@ -42,20 +42,21 @@ #define MIN_VIEW_DISTANCE 500 #define DEFAULT_VIEW_DISTANCE 1200 -#define MAX_TRACKED_GRENADES 15 -#define MAX_TRACKED_PROJECTILES 50 -#define MAX_TRACKED_PROJECTILE_SEGMENTS 50 +#define FIRE_HIGHLIGHT_TIME 0.05 +#define MAX_GRENADES 15 +#define MAX_PROJECTILES 50 +#define MAX_PROJECTILE_SEGMENTS 50 #define DISTANCE_NAMES 175 -#define NAME_MAX_CHARACTERS 17 +#define NAME_MAX_CHARACTERS 17 -#define LIST_ENTITIES localize "STR_A3_Spectator_Entities" -#define LIST_LOCATIONS localize "STR_A3_Spectator_Locations" +#define LIST_ENTITIES localize "STR_A3_Spectator_Entities" +#define LIST_LOCATIONS localize "STR_A3_Spectator_Locations" #define LIST_UPDATE_RATE 1 // Revive variables -#define BIS_REVIVE "BIS_revive_incapacitated" -#define ACE_REVIVE "ACE_isUnconscious" +#define BIS_REVIVE "BIS_revive_incapacitated" +#define ACE_REVIVE "ACE_isUnconscious" #define NEEDS_REVIVE(unit) (unit getVariable [ACE_REVIVE,false]) || {unit getVariable [BIS_REVIVE,false]} // Icons used in the UI From 05e7c12480b40cc437ec4b1f816e114779761efa Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Thu, 18 May 2017 19:55:50 +0100 Subject: [PATCH 027/198] Improve naming convention related to drawing --- addons/spectator/XEH_PREP.hpp | 2 +- addons/spectator/functions/fnc_handleFired.sqf | 8 ++++---- addons/spectator/functions/fnc_ui.sqf | 16 +++++++++------- addons/spectator/functions/fnc_ui_draw3D.sqf | 10 +++++----- ...gsToDraw.sqf => fnc_ui_updateIconsToDraw.sqf} | 12 ++++++------ 5 files changed, 25 insertions(+), 23 deletions(-) rename addons/spectator/functions/{fnc_updateThingsToDraw.sqf => fnc_ui_updateIconsToDraw.sqf} (94%) diff --git a/addons/spectator/XEH_PREP.hpp b/addons/spectator/XEH_PREP.hpp index d0d4bd364f0..07311b082ca 100644 --- a/addons/spectator/XEH_PREP.hpp +++ b/addons/spectator/XEH_PREP.hpp @@ -27,6 +27,7 @@ PREP(ui_handleTabSelected); PREP(ui_toggleMap); PREP(ui_toggleUI); PREP(ui_updateHelp); +PREP(ui_updateIconsToDraw); PREP(ui_updateListEntities); PREP(ui_updateListFocus); PREP(ui_updateListLocations); @@ -39,7 +40,6 @@ PREP(handleFired); PREP(moduleSpectatorSettings); PREP(respawnTemplate); PREP(setFocus); -PREP(updateThingsToDraw); // Public functions PREP(interrupt); diff --git a/addons/spectator/functions/fnc_handleFired.sqf b/addons/spectator/functions/fnc_handleFired.sqf index 01a8ce1da65..ea5b2eaa816 100644 --- a/addons/spectator/functions/fnc_handleFired.sqf +++ b/addons/spectator/functions/fnc_handleFired.sqf @@ -29,10 +29,10 @@ _unit setVariable [QGVAR(highlightTime), time + FIRE_HIGHLIGHT_TIME]; // Store projectiles / grenades for drawing if (GVAR(drawProjectiles) && {!isNull _projectile}) then { if (_weapon == "Throw") then { - if (count GVAR(grenades) > MAX_GRENADES) then { GVAR(grenades) deleteAt 0; }; - GVAR(grenades) pushBack _projectile; + if (count GVAR(grenadesToDraw) > MAX_GRENADES) then { GVAR(grenadesToDraw) deleteAt 0; }; + GVAR(grenadesToDraw) pushBack _projectile; } else { - if (count GVAR(projectiles) > MAX_PROJECTILES) then { GVAR(projectiles) deleteAt 0; }; - GVAR(projectiles) pushBack [_projectile, [[getPosVisual _projectile, [1,0,0,0]]]]; + if (count GVAR(projectilesToDraw) > MAX_PROJECTILES) then { GVAR(projectilesToDraw) deleteAt 0; }; + GVAR(projectilesToDraw) pushBack [_projectile, [[getPosVisual _projectile, [1,0,0,0]]]]; }; }; diff --git a/addons/spectator/functions/fnc_ui.sqf b/addons/spectator/functions/fnc_ui.sqf index e62b25e04d3..430e3bf7b64 100644 --- a/addons/spectator/functions/fnc_ui.sqf +++ b/addons/spectator/functions/fnc_ui.sqf @@ -31,9 +31,10 @@ if (_init) then { // Drawing related GVAR(drawProjectiles) = false; GVAR(drawUnits) = true; - GVAR(grenades) = []; - GVAR(projectiles) = []; - GVAR(thingsToDraw) = []; + GVAR(entitiesToDraw) = []; + GVAR(grenadesToDraw) = []; + GVAR(iconsToDraw) = []; + GVAR(projectilesToDraw) = []; // RMB tracking is used for follow camera mode GVAR(holdingRMB) = false; @@ -72,7 +73,7 @@ if (_init) then { [] call FUNC(ui_updateWidget); // Start updating things to draw - GVAR(collectPFH) = [LINKFUNC(updateThingsToDraw), 0.2] call CBA_fnc_addPerFrameHandler; + GVAR(collectPFH) = [LINKFUNC(ui_updateIconsToDraw), 0.2] call CBA_fnc_addPerFrameHandler; // Draw icons and update the cursor object GVAR(uiDraw3D) = addMissionEventHandler ["Draw3D", {call FUNC(ui_draw3D)}]; @@ -118,9 +119,10 @@ if (_init) then { // Stop drawing GVAR(drawProjectiles) = nil; GVAR(drawUnits) = nil; - GVAR(grenades) = nil; - GVAR(projectiles) = nil; - GVAR(thingsToDraw) = nil; + GVAR(entitiesToDraw) = nil; + GVAR(grenadesToDraw) = nil; + GVAR(iconsToDraw) = nil; + GVAR(projectilesToDraw) = nil; // Reset view distance setViewDistance GVAR(oldViewDistance); diff --git a/addons/spectator/functions/fnc_ui_draw3D.sqf b/addons/spectator/functions/fnc_ui_draw3D.sqf index 105ed5dc3d8..59679ececd3 100644 --- a/addons/spectator/functions/fnc_ui_draw3D.sqf +++ b/addons/spectator/functions/fnc_ui_draw3D.sqf @@ -62,7 +62,7 @@ if !(GVAR(uiMapVisible)) then { drawIcon3D _icon; nil // Speed loop - } count GVAR(thingsToDraw); + } count GVAR(iconsToDraw); END_COUNTER(drawTags); }; @@ -113,8 +113,8 @@ if !(GVAR(uiMapVisible)) then { }; nil // Speed loop - } count GVAR(projectiles); - GVAR(projectiles) = _projectilesNew; + } count GVAR(projectilesToDraw); + GVAR(projectilesToDraw) = _projectilesNew; { if !(isNull _x) then { @@ -128,9 +128,9 @@ if !(GVAR(uiMapVisible)) then { }; nil // Speed loop - } count GVAR(grenades); + } count GVAR(grenadesToDraw); - GVAR(grenades) = _grenadesNew; + GVAR(grenadesToDraw) = _grenadesNew; END_COUNTER(drawTracers); }; }; diff --git a/addons/spectator/functions/fnc_updateThingsToDraw.sqf b/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf similarity index 94% rename from addons/spectator/functions/fnc_updateThingsToDraw.sqf rename to addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf index 55982d39720..901ef033fb9 100644 --- a/addons/spectator/functions/fnc_updateThingsToDraw.sqf +++ b/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf @@ -9,7 +9,7 @@ #define ICON_UNIT "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\UnitIcon_ca.paa" -private _thingsToDraw = []; +private _iconsToDraw = []; private _entitiesToDraw = []; { @@ -60,7 +60,7 @@ private _entitiesToDraw = []; // Show unit name only if camera is near enough if (_distanceToCamera < DISTANCE_NAMES) then { // Unit name - _thingsToDraw pushBack [_x, 2, [ + _iconsToDraw pushBack [_x, 2, [ "", [1,1,1,1], [0,0,0], @@ -76,7 +76,7 @@ private _entitiesToDraw = []; } else { if (_x == _groupLeader) then { // Group name - _thingsToDraw pushBack [_x, 0, [ + _iconsToDraw pushBack [_x, 0, [ "", [1,1,1,_fadeByDistance], [0,0,0], @@ -94,7 +94,7 @@ private _entitiesToDraw = []; if (_x == _groupLeader || { _inVehicle && { _x == effectiveCommander _vehicle } }) then { // Group icon - _thingsToDraw pushBack [_x, 0, [ + _iconsToDraw pushBack [_x, 0, [ ICON_GROUP, _groupColor, [0,0,0], @@ -110,7 +110,7 @@ private _entitiesToDraw = []; }; // Draw unit icon - _thingsToDraw pushBack [_x, 1, [ + _iconsToDraw pushBack [_x, 1, [ [ICON_UNIT, ICON_REVIVE] select (NEEDS_REVIVE(_x)), _groupColor, [0,0,0], @@ -136,5 +136,5 @@ private _entitiesToDraw = []; nil // Speed loop } count ([] call FUNC(getTargetEntities)); -GVAR(thingsToDraw) = _thingsToDraw; +GVAR(iconsToDraw) = _iconsToDraw; GVAR(entitiesToDraw) = _entitiesToDraw; From 3002767a7db67f7f25e4ab0eaa5d8a3be0e53e83 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 19 May 2017 12:39:17 +0100 Subject: [PATCH 028/198] Remove outdated unit and side settings Also re-add unit whitelisting/blacklisting support --- addons/spectator/ACE_Settings.hpp | 16 +- addons/spectator/CfgVehicles.hpp | 52 +----- addons/spectator/XEH_PREP.hpp | 3 +- .../functions/fnc_getTargetEntities.sqf | 5 +- .../functions/fnc_getTargetGroups.sqf | 2 +- .../functions/fnc_moduleSpectatorSettings.sqf | 3 +- .../functions/fnc_ui_updateListEntities.sqf | 4 +- .../spectator/functions/fnc_updateUnits.sqf | 44 +---- addons/spectator/stringtable.xml | 160 +----------------- 9 files changed, 28 insertions(+), 261 deletions(-) diff --git a/addons/spectator/ACE_Settings.hpp b/addons/spectator/ACE_Settings.hpp index 31e4ea3fd0e..39c8f08819d 100644 --- a/addons/spectator/ACE_Settings.hpp +++ b/addons/spectator/ACE_Settings.hpp @@ -1,17 +1,9 @@ class ACE_Settings { - class GVAR(filterUnits) { - displayName = CSTRING(units_DisplayName); - description = CSTRING(units_Description); - typeName = "SCALAR"; - value = 2; - values[] = {CSTRING(units_none), CSTRING(units_players), CSTRING(units_playable), CSTRING(units_all)}; - }; - class GVAR(filterSides) { - displayName = CSTRING(sides_DisplayName); - description = CSTRING(sides_Description); - typeName = "SCALAR"; + class GVAR(enableAI) { + displayName = CSTRING(ai_DisplayName); + description = CSTRING(ai_Description); + typeName = "BOOL"; value = 0; - values[] = {CSTRING(sides_player), CSTRING(sides_friendly), CSTRING(sides_hostile), CSTRING(sides_all)}; }; class GVAR(restrictModes) { displayName = CSTRING(modes_DisplayName); diff --git a/addons/spectator/CfgVehicles.hpp b/addons/spectator/CfgVehicles.hpp index 39676d4c43b..e0ba09e47e4 100644 --- a/addons/spectator/CfgVehicles.hpp +++ b/addons/spectator/CfgVehicles.hpp @@ -9,53 +9,11 @@ class CfgVehicles { isGlobal = 1; author = ECSTRING(common,ACETeam); class Arguments { - class unitsFilter { - displayName = CSTRING(units_DisplayName); - description = CSTRING(units_Description); - typeName = "NUMBER"; - class values { - class none { - name = CSTRING(units_none); - value = 0; - }; - class players { - name = CSTRING(units_players); - value = 1; - }; - class playable { - name = CSTRING(units_playable); - value = 2; - default = 1; - }; - class all { - name = CSTRING(units_all); - value = 3; - }; - }; - }; - class sidesFilter { - displayName = CSTRING(sides_DisplayName); - description = CSTRING(sides_Description); - typeName = "NUMBER"; - class values { - class player { - name = CSTRING(sides_player); - value = 0; - default = 1; - }; - class friendly { - name = CSTRING(sides_friendly); - value = 1; - }; - class hostile { - name = CSTRING(sides_hostile); - value = 2; - }; - class all { - name = CSTRING(sides_all); - value = 3; - }; - }; + class enableAI { + displayName = CSTRING(ai_DisplayName); + description = CSTRING(ai_Description); + typeName = "BOOL"; + defaultValue = 0; }; class cameraModes { displayName = CSTRING(modes_DisplayName); diff --git a/addons/spectator/XEH_PREP.hpp b/addons/spectator/XEH_PREP.hpp index 07311b082ca..8d7c9fef7f3 100644 --- a/addons/spectator/XEH_PREP.hpp +++ b/addons/spectator/XEH_PREP.hpp @@ -46,5 +46,6 @@ PREP(interrupt); PREP(setSpectator); PREP(stageSpectator); PREP(updateCameraModes); -PREP(updateSpectatableSides); +PREP(updateSpectatableSides); // TODO: Rename to updateSides +PREP(updateUnits); PREP(updateVisionModes); diff --git a/addons/spectator/functions/fnc_getTargetEntities.sqf b/addons/spectator/functions/fnc_getTargetEntities.sqf index 3f97cdd6750..6ad5c785dea 100644 --- a/addons/spectator/functions/fnc_getTargetEntities.sqf +++ b/addons/spectator/functions/fnc_getTargetEntities.sqf @@ -10,7 +10,7 @@ private _entities = []; // AI filter -if (GVAR(filterUnits) == 3) then { +if (GVAR(enableAI)) then { _entities = allUnits; } else { _entities = [] call CBA_fnc_players; @@ -20,5 +20,6 @@ if (GVAR(filterUnits) == 3) then { _entities select { ((side group _x) in GVAR(availableSides)) && {simulationEnabled _x && {simulationEnabled vehicle _x}} && - { !isObjectHidden _x && {!isObjectHidden vehicle _x} } + { !isObjectHidden _x && {!isObjectHidden vehicle _x} } && + { _x in GVAR(unitWhitelist) || {!(_x in GVAR(unitBlacklist))} } } diff --git a/addons/spectator/functions/fnc_getTargetGroups.sqf b/addons/spectator/functions/fnc_getTargetGroups.sqf index f1f0576897d..0ca80a6dcf5 100644 --- a/addons/spectator/functions/fnc_getTargetGroups.sqf +++ b/addons/spectator/functions/fnc_getTargetGroups.sqf @@ -10,7 +10,7 @@ private _groups = []; // AI filter -if (GVAR(filterUnits) == 3) then { +if (GVAR(enableAI)) then { _groups = allGroups; } else { private _players = [] call CBA_fnc_players; diff --git a/addons/spectator/functions/fnc_moduleSpectatorSettings.sqf b/addons/spectator/functions/fnc_moduleSpectatorSettings.sqf index 52b6e5d8fa5..d68b3ab1127 100644 --- a/addons/spectator/functions/fnc_moduleSpectatorSettings.sqf +++ b/addons/spectator/functions/fnc_moduleSpectatorSettings.sqf @@ -19,7 +19,6 @@ params ["_logic", "_units", "_activated"]; if !(_activated) exitWith {}; -[_logic, QGVAR(filterUnits), "unitsFilter"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(filterSides), "sidesFilter"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(enableAI), "enableAI"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(restrictModes), "cameraModes"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(restrictVisions), "visionModes"] call EFUNC(common,readSettingFromModule); diff --git a/addons/spectator/functions/fnc_ui_updateListEntities.sqf b/addons/spectator/functions/fnc_ui_updateListEntities.sqf index db96996f838..5872238ec42 100644 --- a/addons/spectator/functions/fnc_ui_updateListEntities.sqf +++ b/addons/spectator/functions/fnc_ui_updateListEntities.sqf @@ -29,8 +29,8 @@ private _newList = [ simulationEnabled _x && {!isObjectHidden _x} && {simulationEnabled vehicle _x} && - {!isObjectHidden vehicle _x} - // TODO: whitelist & blacklist + {!isObjectHidden vehicle _x} && + { _x in GVAR(unitWhitelist) || {!(_x in GVAR(unitBlacklist))} } ) then { _newUnits pushBack ([_x] call BIS_fnc_objectVar); diff --git a/addons/spectator/functions/fnc_updateUnits.sqf b/addons/spectator/functions/fnc_updateUnits.sqf index 418643be383..d1a5507bca0 100644 --- a/addons/spectator/functions/fnc_updateUnits.sqf +++ b/addons/spectator/functions/fnc_updateUnits.sqf @@ -1,6 +1,6 @@ /* * Author: SilentSpike - * Adds units to spectator whitelist/blacklist and refreshes the filter units + * Adds units to spectator whitelist/blacklist * * Arguments: * 0: Units to add to the whitelist @@ -10,7 +10,7 @@ * None * * Example: - * [allUnits,true] call ace_spectator_fnc_updateUnits + * [allPlayers,true] call ace_spectator_fnc_updateUnits * * Public: Yes */ @@ -22,8 +22,9 @@ params [["_newUnits",[],[[]]],["_blacklist",false,[false]]]; // Function only matters on player clients if (!hasInterface) exitWith {}; -// If adding to a list we can exit here, since it won't show up until the UI refreshes anyway -if !(_newUnits isEqualTo []) exitWith { +// If input is empty do nothing +if !(_newUnits isEqualTo []) then { + // Blacklist and whitelist should contain no overlap if (_blacklist) then { GVAR(unitWhitelist) = GVAR(unitWhitelist) - _newUnits; GVAR(unitBlacklist) append _newUnits; @@ -32,38 +33,3 @@ if !(_newUnits isEqualTo []) exitWith { GVAR(unitWhitelist) append _newUnits; }; }; - -// Unit setting filter -private _newUnits = [[],allPlayers,playableUnits,allUnits] select GVAR(filterUnits); - -// Side setting filter -private _sideFilter = [ - {_x == (side group player)}, - {(_x getFriend (side group player)) >= 0.6}, - {(_x getFriend (side group player)) < 0.6}, - {true} -] select GVAR(filterSides); - -private _filteredSides = GVAR(availableSides) select _sideFilter; - -// Filter units and append to list -private _filteredUnits = (_newUnits - GVAR(unitBlacklist)) select { - (alive _x) && - {(_x isKindOf "CAManBase")} && - {(side group _x) in _filteredSides} && // Side filter - {simulationEnabled _x} && - {!(_x getVariable [QGVAR(isStaged), false])} // Who watches the watchmen? -}; -_filteredUnits append GVAR(unitWhitelist); - -// Cache icons and colour for drawing -private _filteredGroups = []; -{ - // Intentionally re-applied to units in case their status changes - [_x] call FUNC(cacheUnitInfo); - _filteredGroups pushBackUnique (group _x); -} forEach _filteredUnits; - -// Replace previous lists entirely (removes any no longer valid) -GVAR(groupList) = _filteredGroups; -GVAR(unitList) = _filteredUnits arrayIntersect _filteredUnits; diff --git a/addons/spectator/stringtable.xml b/addons/spectator/stringtable.xml index b2570dd08f7..dffb68f52fc 100644 --- a/addons/spectator/stringtable.xml +++ b/addons/spectator/stringtable.xml @@ -31,161 +31,11 @@ スペクテイター システムが標準でどのように動作するか設定できます。 어떻게 관전자 시스템이 기본적으로 작동되는지 설정합니다 - - Unit filter - Einheitenfilter - Filtr jednostek - Filtro de unidades - Фильтр юнитов - Filtr jednotek - Filtro de unidad - Filtro Unità - Filtre d'unités - ユニット フィルタ - 인원 필터 - - - Method of filtering spectatable units. - Einheiten denen zugeschaut werden kann. - Wybierz jednostki, jakie będzie można obserwować po uruchomeniu obserwatora. - Método para filtrar unidades espectáveis - Метод фильтрации наблюдаемых юнитов. - Método de filtrado de unidades de espectador - Metoda filtrování pozorovaných jednotek. - Metodo di filtraggio delle unità osservabili. - Méthode de filtration des unités regardables. - 観察できるユニットへのフィルタ設定ができます。 - 관전할 수 있는 인원을 고릅니다 - - - No units - Keine Einheiten - Brak jednostek - Sem unidades - Никто - Žádné jednotky - Ninguna - Nessuna unità - Pas d'unités - ユニットなし - 인원 없음 - - - Only players - Nur Spieler - Tylko gracze - Somente jogadores - Только игроки - Pouze hráči - Solo jugadores - Solo giocatori - Joueurs seulements - プレイヤのみ - 플레이어만 - - - Playable Units - Nur spielbare Einheiten - Grywalne jednostki - Unidades jogáveis - Играбельные юниты - Hratelné jednotky - Unidades jugables - Unità giocabili - Unités jouables - プレイ可能なユニットのみ - 플레이 가능한 인원 - - - All units - Alle Einheiten - Wszystkie jednostki - Todas unidades - Все юниты - Všechny jednotky - Todas las unidades - Tutte le unità - Toutes les unités - 全てのユニット - 모든 인원 - - - Side filter - Fraktionenfilter - Filtr stron - Filtro de lados - Фильтр стороны - Filtr stran - Filtro de bando - Filtro Lato - Filtre de faction - 勢力フィルタ - 진영 필터 - - - Method of filtering spectatable sides. - Fraktionen denen zugeschaut werden kann. - Wybierz strony, jakie będzie można obserwować po uruchomeniu obserwatora. - Método para filtrar lados espectáveis. - Метод фильтрации наблюдаемых сторон. - Método de filtrado de bandos de espectador - Metoda filtrování pozorovaných stran. - Metodo per filtrare i lati osservabili. - Méthode de filtration des factions regardables - 観察できる勢力へのフィルタ設定ができます。 - 관전할 수 있는 진영을 고릅니다 - - - Player side - Spielerseite - Strona gracza - Lado do jogador - Сторона игрока - Strana hráče - Bando del jugador - Lato giocatore - Faction du joueur - プレイヤーと同じ勢力 - 플레이어 진영 - - - Friendly sides - Verbündete - Strony sojusznicze - Lados aliados - Дружественные стороны - Strana spojenců - Bandos amigos - Lati alleati - Factions amies - 友軍勢力 - 아군 진영 - - - Hostile sides - Feinde - Strony wrogie - Lados hostis - Враждебные стороны - Strana nepřítele - Bandos enemigos - Lati nemici - Factions hostiles - 敵対勢力 - 적군 진영 - - - All sides - Alle Fraktionen - Wszystkie strony - Todos os lados - Все стороны - Všechny strany - Todos los bandos - Tutti i lati - Toutes les factions - 全ての勢力 - 모든 진영 + + AI Enabled + + + Whether AI can be viewed in spectator Camera modes From beda410f572621467b33f16403940254ff0a1d3e Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 19 May 2017 12:45:43 +0100 Subject: [PATCH 029/198] Rename public function for consistency Adds a deprecated warning to the old function name. --- addons/spectator/XEH_PREP.hpp | 8 +++++++- ...fnc_updateSpectatableSides.sqf => fnc_updateSides.sqf} | 0 2 files changed, 7 insertions(+), 1 deletion(-) rename addons/spectator/functions/{fnc_updateSpectatableSides.sqf => fnc_updateSides.sqf} (100%) diff --git a/addons/spectator/XEH_PREP.hpp b/addons/spectator/XEH_PREP.hpp index 8d7c9fef7f3..680501ab607 100644 --- a/addons/spectator/XEH_PREP.hpp +++ b/addons/spectator/XEH_PREP.hpp @@ -46,6 +46,12 @@ PREP(interrupt); PREP(setSpectator); PREP(stageSpectator); PREP(updateCameraModes); -PREP(updateSpectatableSides); // TODO: Rename to updateSides +PREP(updateSides); PREP(updateUnits); PREP(updateVisionModes); + +// Deprecated (temp) +DFUNC(updateSpectatableSides) = { + ACE_DEPRECATED(QFUNC(updateSpectatableSides),"3.12.0",QFUNC(updateSides)); + _this call FUNC(updateSides); +}; diff --git a/addons/spectator/functions/fnc_updateSpectatableSides.sqf b/addons/spectator/functions/fnc_updateSides.sqf similarity index 100% rename from addons/spectator/functions/fnc_updateSpectatableSides.sqf rename to addons/spectator/functions/fnc_updateSides.sqf From 0bdd61b220740effea5d88abb4e1f1f431a2daca Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 19 May 2017 13:17:14 +0100 Subject: [PATCH 030/198] Update stringtable Some entries are replaced with BI translations, others are no longer needed. I pieced together one of the camera mode settings by combining the BI translations of the individual versions. --- addons/spectator/ACE_Settings.hpp | 2 +- addons/spectator/CfgVehicles.hpp | 6 +- .../functions/fnc_ui_handleKeyDown.sqf | 4 +- addons/spectator/stringtable.xml | 415 +----------------- 4 files changed, 16 insertions(+), 411 deletions(-) diff --git a/addons/spectator/ACE_Settings.hpp b/addons/spectator/ACE_Settings.hpp index 39c8f08819d..6030414908f 100644 --- a/addons/spectator/ACE_Settings.hpp +++ b/addons/spectator/ACE_Settings.hpp @@ -10,7 +10,7 @@ class ACE_Settings { description = CSTRING(modes_Description); typeName = "SCALAR"; value = 0; - values[] = {CSTRING(modes_all), CSTRING(modes_unit), CSTRING(modes_free), CSTRING(modes_internal), CSTRING(modes_external)}; + values[] = {CSTRING(modes_all), CSTRING(modes_unit), "$STR_A3_Spectator_free_camera_tooltip", "$STR_A3_Spectator_1pp_camera_tooltip", "$STR_A3_Spectator_3pp_camera_tooltip"}; }; class GVAR(restrictVisions) { displayName = CSTRING(visions_DisplayName); diff --git a/addons/spectator/CfgVehicles.hpp b/addons/spectator/CfgVehicles.hpp index e0ba09e47e4..9cc115aa739 100644 --- a/addons/spectator/CfgVehicles.hpp +++ b/addons/spectator/CfgVehicles.hpp @@ -30,15 +30,15 @@ class CfgVehicles { value = 1; }; class free { - name = CSTRING(modes_free); + name = "$STR_A3_Spectator_free_camera_tooltip"; value = 2; }; class internal { - name = CSTRING(modes_internal); + name = "$STR_A3_Spectator_1pp_camera_tooltip"; value = 3; }; class external { - name = CSTRING(modes_external); + name = "$STR_A3_Spectator_3pp_camera_tooltip"; value = 4; }; }; diff --git a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf index 263adf45238..b93bc91c7cd 100644 --- a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf +++ b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf @@ -60,8 +60,6 @@ if (_key in [DIK_SPACE, DIK_NUMPADENTER]) exitWith { // Handle vision mode cycling if (_key == DIK_N) exitWith { - private _stepVision = [1,-1] select _shift; - private _oldVision = GVAR(camVision); private _visions = GVAR(availableVisions); @@ -70,7 +68,7 @@ if (_key == DIK_N) exitWith { private _countVisions = count _visions; if (_countVisions != 0) then { - _iVision = (_iVision + _stepVision) % _countVisions; + _iVision = (_iVision + 1) % _countVisions; if (_iVision < 0) then { _iVision = _countVisions + _iVision; }; }; diff --git a/addons/spectator/stringtable.xml b/addons/spectator/stringtable.xml index dffb68f52fc..5226d5fd7cb 100644 --- a/addons/spectator/stringtable.xml +++ b/addons/spectator/stringtable.xml @@ -76,39 +76,18 @@ 全て 모두 - - Free only - Nur freie Kamera - Tylko wolna - Somente livre - Только свободная - Pouze volná - Solo libre - Solo libera - Libre seulement - 自由視点のみ - 오직 자유만 - - - Internal only - Erste Person //Bitte überprüfen! - Tylko wewnętrznaSomente internaТолько внутренняяPouze pohled z první osobySolo internaSolo internaInterne seulement一人称視点のみ오직 내부만 - - External only - Dritte Person //Bitte überpfüfen! - Tylko zewnętrznaSomente externaТолько внешняяPouze pohled z třetí osobySolo externaSolo esternaExterne seulement三人称視点のみ오직 외부만 - Internal and external - Erste und dritte Person - Wewnętrzna i zewnętrzna - Interna e externa - Внутренняя и внешняя - Pohled z první a třetí osoby - Interna y externa - Interna ed Esterna - Interne et externe - 一人称と三人称視点 - 외부 및 내부 + 1PP and 3PP + 1ère et 3e personne + 1.ª y 3.ª persona + 1° e 3° pers + 1 i 3 os. + первого а также третьего + 1PP und 3PP + 1. a 3. osoby + 1ª e 3ª pessoa + 1PP 과 3PP 카메라 + 1PP そして 3PP カメラ Vision modes @@ -163,32 +142,6 @@ 열화상 - - Spectator Units - Zuschauereinheiten - Jednostki obserwatora - Unidades espectadoras - Юниты - Unidades espectador - Jednotky pozorovatele - Unità Osservabili - Unités spectatrices - スペクテイター ユニット - 관전 인원 - - - Spectator Controls - Zuschauersteuerung - Sterowanie obserwatorem - Controle do espectador - Управление спектатором - Controles de espectador - Ovládání pozorovatele - Controlli Osservatore - Contrôles de spectateur - スペクテイター操作 - 관전 조작 - Free Frei @@ -202,14 +155,6 @@ 自由視点 자유 - - Internal - Erste Person //Bitte überprüfen! - WewnętrznaInternaВнутренняяPohled z první osobyInternaInternaInterne一人称視点내부 - - External - Dritte Person //Bitte überprüfen! - ZewnętrznaExternaВнешняяPohled z třetí osobyExternaEsternaExterne三人称視点외부 Normal Normal @@ -250,175 +195,6 @@ 열상 - - Free Camera - Freie Kamera - Kamera swobodna - Câmera livre - Свободная камера - Volná Kamera - Cámara libre - Camera Libera - Caméra libre - 自由視点 - 자유 카메라 - - - Camera Forward - Kamera vor - Kamera naprzód - Câmera para frente - Камера вперед - Vpřed (Kamera) - Cámara delantera - Camera Avanti - Caméra en avant - カメラを前に - 카메라 앞으로 - - - Camera Backward - Kamera zurück - Kamera w tył - Câmera para trás - Камера назад - Zpět (Kamera) - Cámara trasera - Camera Indietro - Caméra en arrière - カメラを後ろに - 카메라 뒤로 - - - Camera Left - Kamera links - Kamera w lewo - Câmera para esquerda - Камера влево - Doleva (Kamera) - Cámara izquierda - Camera Sinistra - Caméra à gauche - カメラを左に - 카메라 왼쪽으로 - - - Camera Right - Kamera rechts - Kamera w prawo - Câmera para direita - Камера вправо - Doprava (Kamera) - Cámara derecha - Camera Destra - Caméra à droite - カメラを右に - 카메라 오른쪽으로 - - - Camera Up - Kamera hoch - Kamera w górę - Câmera para cima - Камера вверх - Nahoru (Kamera) - Cámara arriba - Camera Su - Caméra en haut - カメラを上に - 카메라 위로 - - - Camera Down - Kamera runter - Kamera w dół - Câmera para baixo - Камера вниз - Dolů (Kamera) - Cámara abajo - Camera Giù - Caméra en bas - カメラを下に - 카메라 아래로 - - - Pan Camera - Kamera mitschwenken - Panoramowanie - Câmera panorâmica - Панорамирование - Cámara panorámica - Otáčet kameru - Camera Panoramica - Tourner la caméra - カメラを振る - 카메라 돌리기 - - - Dolly Camera - Kamerafahrt - Płynna kamera - Câmera dolly - Рельсовая камера - Cámara dolly - Posouvat kameru - Camera dolly - Bouger la caméra - カメラを動かす - 카메라 추적 - - - Lock Camera to Target - Kamera Ziel verfolgen - Zablokuj kamerę na celu - Travar câmera em alvo - Зафиксировать камеру на цели - Zamknout kameru na Cíl - Fijar cámara al objetivo - Blocca la camera su obbiettivo - Verrouiller la caméra sur la cible - カメラを目標に固定 - 목표에 카메라 고정 - - - Speed Boost - Geschwindigkeitserhöhung - Przyśpieszenie kamery - Aumento de velocidade - Ускорение камеры - Aumento de velocidad - Zrychlení kamery - Aumento Velocità - Boost de vitesse - 速度の増加 - 속도 증가 - - - Interface - Nuteroberfläche - Interfejs - Interface - Интерфейс - Rozhraní - Interfaz - Interfaccia - Interface - インターフェイス - 인터페이스 - - - Toggle Interface - Nutzeroberfläche umschalten - Przełącz interfejs - Alternar interface - Переключить интерфейс - Zobrazit/skrýt rozhraní - Conmutar - Apri Interfaccia - Bascule de l'interface - インターフェイスをトグル - 인터페이스 토글 - Toggle Unit Icons Einheitensymbole umschalten @@ -432,45 +208,6 @@ ユニット アイコンをトグル 인원 아이콘 토글 - - Toggle Unit List - Einheitenliste umschalten - Przełącz listę jednostek - Alternar lista de unidades - Вкл./выкл. список юнитов - Zobrazit/skrýt seznam jednotek - Conmutar lista de unidades - Apri Lista Unità - Bascule de la liste des unités - ユニット一覧をトグル - 인원 목록 토글 - - - Toggle Toolbar - Werkzeuge umschalten - Przełącz pasek narzędzi - Alternar barra de ferramentas - Вкл./выкл. тулбар - Conmutar barra de herramientas - Zobrazit/skrýt spodní panel - Apri Barra degli Strumenti - Bascule de la barre d'outils - ツールバーをトグル - 툴바 토글 - - - Toggle Compass - Kompass umschalten - Przełącz kompas - Alternar bússola - Вкл./выкл. компас - Zobrazit/skrýt kompas - Conmutar brújula - Apri Bussola - Basculer le compas - 方位磁石をトグル - 나침반 토글 - Toggle Map Karte umschalten @@ -484,58 +221,6 @@ 地図をトグル 지도 토글 - - Toggle Help - Hilfe umschalten - Przełącz pomoc - Alternar ajuda - Вкл./выкл. помощь - Zobrazit/skrýt ovládání - Conmutar ayuda - Apri Aiuti - Basculer l'aide - ヘルプをトグル - 도움 토글 - - - Camera Attributes - Kameraeigenschaften - Atrybuty kamery - Atributos de câmera - Атрибуты камеры - Atributos de cámara - Atributy kamery - Attributi Camera - Propriétés de la caméra - カメラ高度 - 카메라 속성 - - - Next Camera - Nächste Kamera - Następna kamera - Próxima câmera - Следующая камера - Následující kamera - Siguiente cámara - Prossima Camera - Caméra suivante - 次のカメラ - 다음 카메라 - - - Previous Camera - Vorherige Kamera - Poprzednia kamera - Câmera anterior - Предыдущая камера - Předchozí kamera - Anterior cámara - Precedente Camera - Caméra précédente - 前のカメラ - 이전 카메라 - Next Unit Nächste Einheit @@ -588,83 +273,5 @@ 前のビジョン モード 이전 시야 모드 - - Adjust Zoom - Vergrößerung einstellen - Reguluj zoom - Ajustar zoom - Настроить зум - Regulovat přiblížení - Ajustar aumento - Aggiusta Zoom - Ajuster le zoom - 拡大倍率を調節 - 줌 조절 - - - Adjust Speed - Geschwindigkeit einstellen - Reguluj prędkość - Ajuster velocidade - Настроить скорость - Regulovat rychlost - Ajustar velocidad - Aggiusta Velocità - Ajuster la vitesse - 速度を調節 - 속도 조절 - - - Increment Zoom - Vergrößern - Reguluj zoom (krok) - Incrementar zoom - Увеличить зум - Incrementar aumento - Regulovat přiblížení (pomalu) - Aumenta Zoom - Augmenter le zoom - 拡大倍率を増やす - 줌 증가 - - - Increment Speed - Geschwindkeit erhöhen - Reguluj prędkość (krok) - Incrementar velocidade - Увеличить скорость - Incrementar velocidad - Regulovat rychlost (pomalu) - Aumenta Velocità - Augmenter la vitesse - 速度を増やす - 속도 증가 - - - Reset Zoom - Vergrößerung zurücksetzen - Resetuj zoom - Redefinir zoom - Сбросить зум - Obnovit přiblížení - Reiniciar aumento - Resetta Zoom - RAZ zoom - 拡大倍率を初期化 - 줌 초기화 - - - Reset Speed - Geschwindigkeit zurücksetzen - Resetuj prędkość - Redefinir velocidade - Сбросить скорость - Obnovit rychlost - Reiniciar velocidad - Resetta Velocità - RAZ vitesse - 速度を初期化 - 속도 초기화 - From 803d9505c271b4d0ddcac4dd46ae192833c797e1 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 19 May 2017 15:58:00 +0100 Subject: [PATCH 031/198] Add location public functions and list population Just need to take care of drawing and then camera interaction now --- addons/spectator/XEH_PREP.hpp | 2 + addons/spectator/XEH_preInit.sqf | 4 +- .../spectator/functions/fnc_addLocation.sqf | 61 +++++++++++++++ .../functions/fnc_removeLocation.sqf | 32 ++++++++ .../functions/fnc_ui_getTreeDataIndex.sqf | 1 + .../functions/fnc_ui_updateListEntities.sqf | 4 +- .../functions/fnc_ui_updateListLocations.sqf | 78 +++++++++---------- .../functions/fnc_updateCameraModes.sqf | 2 + .../spectator/functions/fnc_updateSides.sqf | 2 +- .../functions/fnc_updateVisionModes.sqf | 4 +- 10 files changed, 146 insertions(+), 44 deletions(-) create mode 100644 addons/spectator/functions/fnc_addLocation.sqf create mode 100644 addons/spectator/functions/fnc_removeLocation.sqf diff --git a/addons/spectator/XEH_PREP.hpp b/addons/spectator/XEH_PREP.hpp index 680501ab607..6d899293e54 100644 --- a/addons/spectator/XEH_PREP.hpp +++ b/addons/spectator/XEH_PREP.hpp @@ -42,7 +42,9 @@ PREP(respawnTemplate); PREP(setFocus); // Public functions +PREP(addLocation); PREP(interrupt); +PREP(removeLocation); PREP(setSpectator); PREP(stageSpectator); PREP(updateCameraModes); diff --git a/addons/spectator/XEH_preInit.sqf b/addons/spectator/XEH_preInit.sqf index c2ff32b7a14..82e8100a103 100644 --- a/addons/spectator/XEH_preInit.sqf +++ b/addons/spectator/XEH_preInit.sqf @@ -9,8 +9,10 @@ PREP_RECOMPILE_END; // Used by public functions GVAR(availableModes) = [MODE_FREE, MODE_FPS, MODE_FOLLOW]; GVAR(availableSides) = [west,east,resistance,civilian]; -GVAR(availableVisions) = [-2,-1,0,1]; +GVAR(availableVisions) = [VISION_NORM,VISION_NVG,0,1]; GVAR(interrupts) = []; +GVAR(locationCount) = 0; +GVAR(locationsList) = []; GVAR(unitBlacklist) = []; GVAR(unitWhitelist) = []; diff --git a/addons/spectator/functions/fnc_addLocation.sqf b/addons/spectator/functions/fnc_addLocation.sqf new file mode 100644 index 00000000000..14c2f8d7b5e --- /dev/null +++ b/addons/spectator/functions/fnc_addLocation.sqf @@ -0,0 +1,61 @@ +/* + * Author: Nelson Duarte, SilentSpike + * Add a location that can be seen in spectator view + * + * Notes: + * - If an empty name is supplied, a descriptive name will be used + * - Locations that are objects will be removed upon objNull + * - Texture can be procedural (e.g. "#(rgb,8,8,3)color(1,1,1,1)") + * https://community.bistudio.com/wiki/Procedural_Textures + * + * Arguments: + * 0: Position + * 1: Radius (Default: 50) + * 2: Display Name (Default: "") + * 3: Description (Default: "") + * 4: Texture (Default: "") + * + * Return Value: + * Unique ID (used to remove a location) + * + * Example: + * [[2000, 3202, 0], "Objective Alpha"] call ace_spectator_fnc_addLocation + * + * Public: Yes + */ + +#include "script_component.hpp" + +params [ + ["_pos",[],[[],objNull],[2,3]], + ["_radius",50,[0]], + ["_name","",[""]], + ["_description","",[""]], + ["_texture","",[""]] +]; + +private _id = ""; + +if (_pos isEqualTo []) then { + WARNING("Invalid position supplied"); +} else { + // Get a unique ID + INC(GVAR(locationCount)); + _id = [QGVAR(id),GVAR(locationCount)] joinString ""; + + // Must have a name to display in the list + if (_name == "") then { + if (_pos isEqualType objNull) then { + _name = [_pos,false,false] call EFUNC(common,getName); + } else { + _name = [_pos] call BIS_fnc_locationDescription; + }; + }; + + // Must have a texture to draw + if (_texture == "") then { _texture = "#(rgb,8,8,3)color(0,0,0,0)"; }; + + GVAR(locationsList) pushBack [_id, _name, _description, _texture, _pos, _radius]; +}; + +_id diff --git a/addons/spectator/functions/fnc_removeLocation.sqf b/addons/spectator/functions/fnc_removeLocation.sqf new file mode 100644 index 00000000000..06a60170575 --- /dev/null +++ b/addons/spectator/functions/fnc_removeLocation.sqf @@ -0,0 +1,32 @@ +/* + * Author: Nelson Duarte, SilentSpike + * Remove a location that can be seen in spectator view + * + * Arguments: + * 0: Unique ID + * + * Return Value: + * Success + * + * Example: + * [_id] call ace_spectator_fnc_removeLocation + * + * Public: Yes + */ + +#include "script_component.hpp" + +params ["_id","",[""]]; + +private _index = -1; + +{ + if ((_this select 0) == _id) exitWith { + _index = _forEachIndex; + }; +} forEach GVAR(locationsList); + +GVAR(locationsList) deleteAt _index; + +// Return +_index != -1 diff --git a/addons/spectator/functions/fnc_ui_getTreeDataIndex.sqf b/addons/spectator/functions/fnc_ui_getTreeDataIndex.sqf index 2233d1fc77b..59ec19ae0b5 100644 --- a/addons/spectator/functions/fnc_ui_getTreeDataIndex.sqf +++ b/addons/spectator/functions/fnc_ui_getTreeDataIndex.sqf @@ -13,6 +13,7 @@ scopeName QGVAR(getTreeDataIndex); // Make sure data is not empty if (_data != "") then { + // This also handles the locations list (_sideIndex = _locationIndex) for "_sideIndex" from 0 to ((tvCount [_treeIDC, []]) - 1) do { if (tvData [_treeIDC, [_sideIndex]] == _data) then { [_sideIndex] breakOut QGVAR(getTreeDataIndex); diff --git a/addons/spectator/functions/fnc_ui_updateListEntities.sqf b/addons/spectator/functions/fnc_ui_updateListEntities.sqf index 5872238ec42..682152fa3dc 100644 --- a/addons/spectator/functions/fnc_ui_updateListEntities.sqf +++ b/addons/spectator/functions/fnc_ui_updateListEntities.sqf @@ -131,8 +131,8 @@ if !(GVAR(curList) isEqualTo _newList) then { _groupIndex = _path select 1; _ctrl tvSetText [_path, _groupId]; - _ctrl tvSetPicture [[_sideIndex, _groupIndex], _groupTexture]; - _ctrl tvSetPictureColor [[_sideIndex, _groupIndex], [1,1,1,0.5]]; + _ctrl tvSetPicture [_path, _groupTexture]; + _ctrl tvSetPictureColor [_path, [1,1,1,0.5]]; _ctrl tvSetTooltip [_path, _groupId]; }; diff --git a/addons/spectator/functions/fnc_ui_updateListLocations.sqf b/addons/spectator/functions/fnc_ui_updateListLocations.sqf index 797883418bf..b2de92f67a4 100644 --- a/addons/spectator/functions/fnc_ui_updateListLocations.sqf +++ b/addons/spectator/functions/fnc_ui_updateListLocations.sqf @@ -1,5 +1,5 @@ /* - * Author: Nelson Duarte, SilentSpike + * Author: Nelson Duarte, AACO, SilentSpike * Updates spectator UI list of locations * * Public: No @@ -7,54 +7,54 @@ #include "script_component.hpp" -// TODO make this function work -if true exitWith {}; - -private _newList = []; - -// TODO: +private _newLocations = []; +private _newList = GVAR(locationsList); // Whether an update to the list is required (really only if something changed) if !(GVAR(curList) isEqualTo _newList) then { - private _allLocations = []; + // Remove locations that are no longer there private _ctrl = CTRL_LIST; - for "_i" from 0 to ((_ctrl tvCount []) - 1) do - { - _allLocations pushBack (_ctrl tvData [_i]); + for "_locationIndex" from (_ctrl tvCount []) to 1 do { + private _lookup = _newLocations find (_ctrl tvData [_locationIndex - 1]); + if (_lookup < 0) then { + _ctrl tvDelete [_locationIndex - 1]; + } else { + _newLocations deleteAt _lookup; + }; + }; + + // Hash location lookups, note hashing assumes unique location data + private _locationDataToPathHash = [[], []]; + + for "_locationIndex" from 0 to ((_ctrl tvCount []) - 1) do { + (_locationDataToPathHash select 0) pushBack (_ctrl tvData [_locationIndex]); + (_locationDataToPathHash select 1) pushBack [_locationIndex]; }; { - private ["_id", "_object", "_name", "_description", "_texture", "_cameraOffset"]; - _id = _x select 0; - _name = _x select 1; - _description = _x select 2; - _texture = _x select 3; - _cameraOffset = _x select 4; - - _allLocations = _allLocations - [_id]; - - private _i = ["TreeGetDataIndex", [_id]] call FUNC(display); - - if (_i isEqualTo []) then - { - _ctrl tvAdd [[], _name]; - _ctrl tvSetData [[_forEachIndex], _id]; - _ctrl tvSetPicture [[_forEachIndex], _texture]; - _ctrl tvSetPictureColor [[_forEachIndex], [1,1,1,1]]; - _ctrl tvSetTooltip [[_forEachIndex], _name]; - } - else - { - _ctrl tvSetText [_i, _name]; - _ctrl tvSetPicture [_i, _texture]; - _ctrl tvSetPictureColor [_i, [1,1,1,1]]; - _ctrl tvSetTooltip [_i, _name]; + _x params ["_id", "_name", "_description", "_texture"]; + + private _lookup = (_locationDataToPathHash select 0) find _id; + if (_lookup < 0) then { + _locationIndex = _ctrl tvAdd [[], _name]; + _ctrl tvSetData [[_locationIndex], _id]; + _ctrl tvSetPicture [[_locationIndex], _texture]; + _ctrl tvSetPictureColor [[_locationIndex], [1,1,1,1]]; + _ctrl tvSetTooltip [[_locationIndex], _description]; + } else { + // pop data out of hash to improve later lookups + (_groupDataToPathHash select 0) deleteAt _lookup; + private _path = (_groupDataToPathHash select 1) deleteAt _lookup; + + _ctrl tvSetText [_path, _name]; + _ctrl tvSetPicture [_path, _texture]; + _ctrl tvSetPictureColor [_path, [1,1,1,1]]; + _ctrl tvSetTooltip [_path, _description]; }; - } forEach _newList; - // Delete all elements that are now gone - { ["TreeDeleteItem", [_x]] call FUNC(display); } forEach _allLocations; + nil // Speed loop + } count _newList; GVAR(curList) = _newList; }; diff --git a/addons/spectator/functions/fnc_updateCameraModes.sqf b/addons/spectator/functions/fnc_updateCameraModes.sqf index cf9887794a1..9af026ab959 100644 --- a/addons/spectator/functions/fnc_updateCameraModes.sqf +++ b/addons/spectator/functions/fnc_updateCameraModes.sqf @@ -6,6 +6,8 @@ * - 1: First person * - 2: Follow * + * Default selection is [0,1,2] + * * Arguments: * 0: Camera modes to add * 1: Camera modes to remove diff --git a/addons/spectator/functions/fnc_updateSides.sqf b/addons/spectator/functions/fnc_updateSides.sqf index 57f7756d549..05da7c16c9f 100644 --- a/addons/spectator/functions/fnc_updateSides.sqf +++ b/addons/spectator/functions/fnc_updateSides.sqf @@ -13,7 +13,7 @@ * Spectatable sides * * Example: - * [[west], [east,civilian]] call ace_spectator_fnc_updateSpectatableSides + * [[west], [east,civilian]] call ace_spectator_fnc_updateSides * * Public: Yes */ diff --git a/addons/spectator/functions/fnc_updateVisionModes.sqf b/addons/spectator/functions/fnc_updateVisionModes.sqf index 9b9b88c10dd..906887499eb 100644 --- a/addons/spectator/functions/fnc_updateVisionModes.sqf +++ b/addons/spectator/functions/fnc_updateVisionModes.sqf @@ -1,7 +1,7 @@ /* * Author: SilentSpike * Adds or removes spectator vision modes from the selection available to the local player. - * The default selection is [-2,-1,0,1]. + * * Possible vision modes are: * - -2: Normal * - -1: Night vision @@ -14,6 +14,8 @@ * - 6: White Hot / Darker Red Cold * - 7: Thermal (Shade of Red and Green, Bodies are white) * + * Default selection is [-2,-1,0,1] + * * Arguments: * 0: Vision modes to add * 1: Vision modes to remove From 0475ce58312528e8e7c525563d61342e99ea0d72 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 19 May 2017 17:57:03 +0100 Subject: [PATCH 032/198] Add location 2D and 3D drawing --- addons/spectator/functions/fnc_addLocation.sqf | 3 ++- addons/spectator/functions/fnc_ui.sqf | 12 ++++++------ addons/spectator/functions/fnc_ui_draw3D.sqf | 12 ++++++++++++ addons/spectator/functions/fnc_ui_handleMapDraw.sqf | 8 ++++++++ .../functions/fnc_ui_updateIconsToDraw.sqf | 13 +++++++++++++ 5 files changed, 41 insertions(+), 7 deletions(-) diff --git a/addons/spectator/functions/fnc_addLocation.sqf b/addons/spectator/functions/fnc_addLocation.sqf index 14c2f8d7b5e..ec1cc1730f0 100644 --- a/addons/spectator/functions/fnc_addLocation.sqf +++ b/addons/spectator/functions/fnc_addLocation.sqf @@ -27,7 +27,7 @@ #include "script_component.hpp" params [ - ["_pos",[],[[],objNull],[2,3]], + ["_pos",[],[[],objNull],3], ["_radius",50,[0]], ["_name","",[""]], ["_description","",[""]], @@ -48,6 +48,7 @@ if (_pos isEqualTo []) then { if (_pos isEqualType objNull) then { _name = [_pos,false,false] call EFUNC(common,getName); } else { + // TODO: This function complains? _name = [_pos] call BIS_fnc_locationDescription; }; }; diff --git a/addons/spectator/functions/fnc_ui.sqf b/addons/spectator/functions/fnc_ui.sqf index 430e3bf7b64..4f480affa92 100644 --- a/addons/spectator/functions/fnc_ui.sqf +++ b/addons/spectator/functions/fnc_ui.sqf @@ -117,12 +117,12 @@ if (_init) then { GVAR(uiHelpH) = nil; // Stop drawing - GVAR(drawProjectiles) = nil; - GVAR(drawUnits) = nil; - GVAR(entitiesToDraw) = nil; - GVAR(grenadesToDraw) = nil; - GVAR(iconsToDraw) = nil; - GVAR(projectilesToDraw) = nil; + GVAR(drawProjectiles) = nil; + GVAR(drawUnits) = nil; + GVAR(entitiesToDraw) = nil; + GVAR(grenadesToDraw) = nil; + GVAR(iconsToDraw) = nil; + GVAR(projectilesToDraw) = nil; // Reset view distance setViewDistance GVAR(oldViewDistance); diff --git a/addons/spectator/functions/fnc_ui_draw3D.sqf b/addons/spectator/functions/fnc_ui_draw3D.sqf index 59679ececd3..cc11a781499 100644 --- a/addons/spectator/functions/fnc_ui_draw3D.sqf +++ b/addons/spectator/functions/fnc_ui_draw3D.sqf @@ -63,6 +63,18 @@ if !(GVAR(uiMapVisible)) then { nil // Speed loop } count GVAR(iconsToDraw); + + // Draw locations + { + _x params ["", "_name", "", "_texture", "_pos"]; + if (_pos isEqualType objNull) then { + _pos = (_pos modelToWorldVisual (_pos selectionPosition "Head")) vectorAdd [0,0,2*HEIGHT_OFFSET]; + }; + + drawIcon3D [_texture, [1,1,1,0.4], _pos, 0.8, 0.8, 0, _name]; + + nil // Speed loop + } count (GVAR(locationsList)); END_COUNTER(drawTags); }; diff --git a/addons/spectator/functions/fnc_ui_handleMapDraw.sqf b/addons/spectator/functions/fnc_ui_handleMapDraw.sqf index ca631ef43dd..daa7724097f 100644 --- a/addons/spectator/functions/fnc_ui_handleMapDraw.sqf +++ b/addons/spectator/functions/fnc_ui_handleMapDraw.sqf @@ -88,4 +88,12 @@ if !(isNil QGVAR(camera)) then { _map drawArrow [_cameraPos, (_cameraPos getPos [300, _cameraDir]), [0.5, 1.0, 0.5, 1.0]]; }; +// Draw locations +{ + _x params ["", "_name", "", "_texture", "_pos"]; + _map drawIcon [_texture, [1,1,1,0.5], _pos, 36.0, 36.0, 0, _name, true, 0.04, "TahomaB", "right"]; + + nil // Speed loop +} count (GVAR(locationsList)); + END_COUNTER(drawMap); diff --git a/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf b/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf index 901ef033fb9..b7931cb7759 100644 --- a/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf +++ b/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf @@ -136,5 +136,18 @@ private _entitiesToDraw = []; nil // Speed loop } count ([] call FUNC(getTargetEntities)); +// Remove object locations that are now null +{ + _x params ["_id", "", "", "", "_pos"]; + + if (_pos isEqualType objNull) then { + if (isNull _pos) then { + [_id] call FUNC(removeLocation); + }; + }; + + nil // Speed loop +} count (GVAR(locationsList)); + GVAR(iconsToDraw) = _iconsToDraw; GVAR(entitiesToDraw) = _entitiesToDraw; From 47fb8488f22ef7b7fd30c68163740238349cda55 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 19 May 2017 18:26:51 +0100 Subject: [PATCH 033/198] Respect whitelist and blacklist correctly --- .../spectator/functions/fnc_getTargetEntities.sqf | 15 ++++++++++++--- .../spectator/functions/fnc_getTargetGroups.sqf | 8 ++++++-- .../functions/fnc_ui_updateListEntities.sqf | 3 ++- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/addons/spectator/functions/fnc_getTargetEntities.sqf b/addons/spectator/functions/fnc_getTargetEntities.sqf index 6ad5c785dea..f0f7bad8706 100644 --- a/addons/spectator/functions/fnc_getTargetEntities.sqf +++ b/addons/spectator/functions/fnc_getTargetEntities.sqf @@ -7,6 +7,11 @@ #include "script_component.hpp" +// Quicker to use local vars that are accessed often in iteration +private _whitelist = GVAR(unitWhitelist); +private _blacklist = GVAR(unitBlacklist); +private _sides = GVAR(availableSides); + private _entities = []; // AI filter @@ -16,10 +21,14 @@ if (GVAR(enableAI)) then { _entities = [] call CBA_fnc_players; }; -// Side and number of units filter +// Whitelist overrides AI setting +_entities append _whitelist; +_entities = _entities arrayIntersect _entities; // No duplicates + +// Whitelist overrides side settings, but not simulation/hidden filtering _entities select { - ((side group _x) in GVAR(availableSides)) && + ((side group _x) in _sides || {_x in _whitelist}) && {simulationEnabled _x && {simulationEnabled vehicle _x}} && { !isObjectHidden _x && {!isObjectHidden vehicle _x} } && - { _x in GVAR(unitWhitelist) || {!(_x in GVAR(unitBlacklist))} } + {!(_x in _blacklist)} } diff --git a/addons/spectator/functions/fnc_getTargetGroups.sqf b/addons/spectator/functions/fnc_getTargetGroups.sqf index 0ca80a6dcf5..65eed22b1a7 100644 --- a/addons/spectator/functions/fnc_getTargetGroups.sqf +++ b/addons/spectator/functions/fnc_getTargetGroups.sqf @@ -18,7 +18,11 @@ if (GVAR(enableAI)) then { }; // Side and number of units filter -_groups select { +_groups = _groups select { ((side _x) in GVAR(availableSides)) && {!((units _x) isEqualTo [])} -} +}; + +// Whitelist overrides AI setting and side settings +_groups append (GVAR(unitWhitelist) apply {group _x}); +_groups arrayIntersect _groups diff --git a/addons/spectator/functions/fnc_ui_updateListEntities.sqf b/addons/spectator/functions/fnc_ui_updateListEntities.sqf index 682152fa3dc..f869f772cd3 100644 --- a/addons/spectator/functions/fnc_ui_updateListEntities.sqf +++ b/addons/spectator/functions/fnc_ui_updateListEntities.sqf @@ -17,6 +17,7 @@ private _newList = [ ]; // Go through groups and get the valid ones only, also cache group units information +private _blacklist = GVAR(unitBlacklist); { private _group = _x; private _groupTexture = ["GetGroupTexture", [_group]] call BIS_fnc_dynamicGroups; @@ -30,7 +31,7 @@ private _newList = [ {!isObjectHidden _x} && {simulationEnabled vehicle _x} && {!isObjectHidden vehicle _x} && - { _x in GVAR(unitWhitelist) || {!(_x in GVAR(unitBlacklist))} } + {!(_x in _blacklist)} ) then { _newUnits pushBack ([_x] call BIS_fnc_objectVar); From 0e61ce407d8b67a337794d5778f50a81361238c7 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 19 May 2017 19:56:13 +0100 Subject: [PATCH 034/198] Add location camera focus capability --- .../spectator/functions/fnc_addLocation.sqf | 25 +++---- addons/spectator/functions/fnc_cam.sqf | 2 + .../functions/fnc_cam_setCameraMode.sqf | 10 +-- addons/spectator/functions/fnc_cam_tick.sqf | 2 +- .../functions/fnc_removeLocation.sqf | 2 +- addons/spectator/functions/fnc_setFocus.sqf | 12 ++- addons/spectator/functions/fnc_ui.sqf | 2 - addons/spectator/functions/fnc_ui_draw3D.sqf | 2 + .../functions/fnc_ui_handleListClick.sqf | 74 +++++++++++++++---- .../fnc_ui_handleMouseButtonDown.sqf | 2 +- .../spectator/functions/fnc_ui_updateHelp.sqf | 2 +- .../functions/fnc_ui_updateListFocus.sqf | 5 +- .../functions/fnc_ui_updateWidget.sqf | 3 +- addons/spectator/script_component.hpp | 2 - 14 files changed, 100 insertions(+), 45 deletions(-) diff --git a/addons/spectator/functions/fnc_addLocation.sqf b/addons/spectator/functions/fnc_addLocation.sqf index ec1cc1730f0..019358ce39b 100644 --- a/addons/spectator/functions/fnc_addLocation.sqf +++ b/addons/spectator/functions/fnc_addLocation.sqf @@ -3,17 +3,17 @@ * Add a location that can be seen in spectator view * * Notes: + * - Position array is of form ASL + * - Position objects will remove location upon objNull * - If an empty name is supplied, a descriptive name will be used - * - Locations that are objects will be removed upon objNull - * - Texture can be procedural (e.g. "#(rgb,8,8,3)color(1,1,1,1)") - * https://community.bistudio.com/wiki/Procedural_Textures + * - Camera offset is used when teleporting to location, default is treated as random * * Arguments: * 0: Position - * 1: Radius (Default: 50) - * 2: Display Name (Default: "") - * 3: Description (Default: "") - * 4: Texture (Default: "") + * 1: Display Name (Default: "") + * 2: Description (Default: "") + * 3: Texture (Default: "") + * 4: Camera Offset Vector (Default: [0,0,0]) * * Return Value: * Unique ID (used to remove a location) @@ -28,10 +28,10 @@ params [ ["_pos",[],[[],objNull],3], - ["_radius",50,[0]], ["_name","",[""]], ["_description","",[""]], - ["_texture","",[""]] + ["_texture","",[""]], + ["_offset",[0,0,0],[[]],3] ]; private _id = ""; @@ -48,15 +48,14 @@ if (_pos isEqualTo []) then { if (_pos isEqualType objNull) then { _name = [_pos,false,false] call EFUNC(common,getName); } else { - // TODO: This function complains? - _name = [_pos] call BIS_fnc_locationDescription; + _name = _pos call BIS_fnc_locationDescription; }; }; - // Must have a texture to draw + // When no texture, just use a transparent procedural if (_texture == "") then { _texture = "#(rgb,8,8,3)color(0,0,0,0)"; }; - GVAR(locationsList) pushBack [_id, _name, _description, _texture, _pos, _radius]; + GVAR(locationsList) pushBack [_id, _name, _description, _texture, _pos, _offset]; }; _id diff --git a/addons/spectator/functions/fnc_cam.sqf b/addons/spectator/functions/fnc_cam.sqf index c05b7d51b40..96c09b3f32f 100644 --- a/addons/spectator/functions/fnc_cam.sqf +++ b/addons/spectator/functions/fnc_cam.sqf @@ -17,6 +17,7 @@ if (_init) then { ISNILS(GVAR(camMode),MODE_FREE); ISNILS(GVAR(camVision),VISION_NORM); ISNILS(GVAR(camTarget),objNull); + ISNILS(GVAR(camOnLocation),false); // Ticking related GVAR(camDeltaTime) = 0; @@ -89,6 +90,7 @@ if (_init) then { GVAR(camMode) = nil; GVAR(camVision) = nil; GVAR(camTarget) = nil; + GVAR(camOnLocation) = nil; GVAR(camDeltaTime) = nil; GVAR(camLastTickTime) = nil; GVAR(camHasTarget) = nil; diff --git a/addons/spectator/functions/fnc_cam_setCameraMode.sqf b/addons/spectator/functions/fnc_cam_setCameraMode.sqf index e60333466b4..4d94e919b56 100644 --- a/addons/spectator/functions/fnc_cam_setCameraMode.sqf +++ b/addons/spectator/functions/fnc_cam_setCameraMode.sqf @@ -2,6 +2,8 @@ * Author: Nelson Duarte, AACO, SilentSpike * Function used to select the camera mode * + * Intended to run even if new mode == old mode, as it handles focus + * * Public: No */ @@ -11,17 +13,15 @@ params ["_newMode"]; private _oldMode = GVAR(camMode); private _modes = GVAR(availableModes); +private _focus = GVAR(camTarget); // If new mode isn't available then keep current (unless current also isn't) if !(_newMode in _modes) then { _newMode = _modes select ((_modes find _oldMode) max 0); }; -// Should run even if the mode is the same, as it handles focus -// if (_newMode == _oldMode) exitWith {}; - -private _focus = GVAR(camTarget); -if (!isNull _focus || _newMode == MODE_FREE) then { +// Can't switch camera from free mode when focus is a location +if (!(isNull _focus || GVAR(camOnLocation)) || _newMode == MODE_FREE) then { private _camera = GVAR(camera); private _showHUD = [true,true,true,true,true,true,true,true]; diff --git a/addons/spectator/functions/fnc_cam_tick.sqf b/addons/spectator/functions/fnc_cam_tick.sqf index a1925cc4ab4..35409d64734 100644 --- a/addons/spectator/functions/fnc_cam_tick.sqf +++ b/addons/spectator/functions/fnc_cam_tick.sqf @@ -23,7 +23,7 @@ GVAR(camLastTickTime) = _currentTime; // If no focus in unit camera modes try to find a new one -if (_cameraMode in MODES_UNIT) then { +if (_cameraMode != MODE_FREE) then { private _focus = if (isNull _camTarget) then { private _testFocus = ([] call FUNC(getTargetEntities)) select 0; if (isNil "_testFocus") then { diff --git a/addons/spectator/functions/fnc_removeLocation.sqf b/addons/spectator/functions/fnc_removeLocation.sqf index 06a60170575..34f23e9b35c 100644 --- a/addons/spectator/functions/fnc_removeLocation.sqf +++ b/addons/spectator/functions/fnc_removeLocation.sqf @@ -21,7 +21,7 @@ params ["_id","",[""]]; private _index = -1; { - if ((_this select 0) == _id) exitWith { + if ((_x select 0) == _id) exitWith { _index = _forEachIndex; }; } forEach GVAR(locationsList); diff --git a/addons/spectator/functions/fnc_setFocus.sqf b/addons/spectator/functions/fnc_setFocus.sqf index f917484e765..4e83f71316d 100644 --- a/addons/spectator/functions/fnc_setFocus.sqf +++ b/addons/spectator/functions/fnc_setFocus.sqf @@ -7,7 +7,7 @@ #include "script_component.hpp" -params [["_newFocus", objNull, [objNull]]]; +params [["_newFocus", objNull, [objNull]], ["_focusIsLocation",false]]; if (_newFocus != GVAR(camTarget) && { !(isNull _newFocus && { isNull GVAR(camTarget) }) }) then { GVAR(camTarget) = _newFocus; @@ -19,9 +19,17 @@ if (_newFocus != GVAR(camTarget) && { !(isNull _newFocus && { isNull GVAR(camTar [MODE_FREE] call FUNC(cam_setCameraMode); }; } else { - [GVAR(camMode)] call FUNC(cam_setCameraMode); + // Locations can only be focused on in free camera + if (_focusIsLocation) then { + [MODE_FREE] call FUNC(cam_setCameraMode); + } else { + [GVAR(camMode)] call FUNC(cam_setCameraMode); + }; }; + // GVAR used to prevent camera switching and UI info on locations + GVAR(camOnLocation) = _focusIsLocation; + [] call FUNC(ui_updateListFocus); [] call FUNC(ui_updateWidget); [] call FUNC(ui_updateHelp); diff --git a/addons/spectator/functions/fnc_ui.sqf b/addons/spectator/functions/fnc_ui.sqf index 4f480affa92..0675075b1a7 100644 --- a/addons/spectator/functions/fnc_ui.sqf +++ b/addons/spectator/functions/fnc_ui.sqf @@ -47,7 +47,6 @@ if (_init) then { // Holds the current list data GVAR(curList) = []; - GVAR(curLocationList) = []; // Cache view distance and set spectator default GVAR(oldViewDistance) = viewDistance; @@ -113,7 +112,6 @@ if (_init) then { GVAR(uiListType) = nil; GVAR(uiMapHighlighted) = nil; GVAR(curList) = nil; - GVAR(curLocationList) = nil; GVAR(uiHelpH) = nil; // Stop drawing diff --git a/addons/spectator/functions/fnc_ui_draw3D.sqf b/addons/spectator/functions/fnc_ui_draw3D.sqf index cc11a781499..4488658f363 100644 --- a/addons/spectator/functions/fnc_ui_draw3D.sqf +++ b/addons/spectator/functions/fnc_ui_draw3D.sqf @@ -69,6 +69,8 @@ if !(GVAR(uiMapVisible)) then { _x params ["", "_name", "", "_texture", "_pos"]; if (_pos isEqualType objNull) then { _pos = (_pos modelToWorldVisual (_pos selectionPosition "Head")) vectorAdd [0,0,2*HEIGHT_OFFSET]; + } else { + _pos = ASLtoAGL _pos; }; drawIcon3D [_texture, [1,1,1,0.4], _pos, 0.8, 0.8, 0, _name]; diff --git a/addons/spectator/functions/fnc_ui_handleListClick.sqf b/addons/spectator/functions/fnc_ui_handleListClick.sqf index 83956133ff5..6ab1357cc95 100644 --- a/addons/spectator/functions/fnc_ui_handleListClick.sqf +++ b/addons/spectator/functions/fnc_ui_handleListClick.sqf @@ -14,28 +14,74 @@ params ["_dblClick","_params"]; _params params ["_list","_index"]; private _handled = false; -private _object = missionNamespace getVariable [_list tvData _index, objNull]; // List contains unique object variables +private _entityList = GVAR(uiListType) == LIST_ENTITIES; +private _data = _list tvData _index; -if !(isNull _object) then { - if (_dblClick) then { - private _pos = getPosASLVisual _object; - { - _pos set [_forEachIndex, _x + 1 + random 10]; - } forEach _pos; - GVAR(camera) setPosASL _pos; +if (_entityList) then { + // List contains unique object variables + private _object = missionNamespace getVariable [_data, objNull]; - [_object] call FUNC(setFocus); - playSound "ReadoutClick"; + if !(isNull _object) then { + if (_dblClick) then { + private _pos = getPosASLVisual _object; + GVAR(camera) setPosASL (_pos apply { _x + 1 + random 10 }); - _handled = true; - } else { - if (_object != GVAR(camTarget)) then { [_object] call FUNC(setFocus); - playSound "ReadoutClick"; _handled = true; + } else { + if (_object != GVAR(camTarget)) then { + [_object] call FUNC(setFocus); + + _handled = true; + }; }; }; +} else { + private _location = []; + + // Try to find the location + { + if ((_x select 0) == _data) exitWith { + // Don't want to accidentally modify the GVAR + _location = +_x; + }; + } forEach GVAR(locationsList); + + if !(_location isEqualTo []) then { + _location params ["", "_name", "_description", "", "_pos", "_offset"]; + + // Use dummy object if location is a position array + private _dummy = GVAR(camDummy); + if (_pos isEqualType objNull) then { + _dummy = _pos; + } else { + // Use dummy to have camera target the location position + detach _dummy; + _dummy setPosASL _pos; + }; + + // If in a unit camera mode then only focus when double click + if (GVAR(camMode) == MODE_FREE || {_dblClick}) then { + [_dummy, true] call FUNC(setFocus); + }; + + // If double clicked, teleport the camera + if (_dblClick) then { + if (_pos isEqualType objNull) then { _pos = getPosASL _pos; }; + if (_offset isEqualTo [0,0,0]) then { _offset = _offset apply { _x + 1 + random 30 }; }; + GVAR(camera) setPosASL (_pos vectorAdd _offset); + + // Location info text + [parseText format [ """%1""
%2
", _name, _description], true, nil, 7, 0.7, 0] spawn BIS_fnc_textTiles; + }; + + _handled = true; + }; +}; + +if (_handled) then { + playSound "ReadoutClick"; }; _handled diff --git a/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf b/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf index de25a9f14bc..11748e60a09 100644 --- a/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf +++ b/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf @@ -20,7 +20,7 @@ if (_button == 0) exitWith { if (isNull GVAR(cursorObject)) then { if (GVAR(camMode) == MODE_FREE && { !isNull GVAR(camTarget) }) then { playSound "ReadoutHideClick1"; - [objNull] call FUNC(SetFocus); + [objNull] call FUNC(setFocus); }; } else { playSound "ReadoutClick"; diff --git a/addons/spectator/functions/fnc_ui_updateHelp.sqf b/addons/spectator/functions/fnc_ui_updateHelp.sqf index ab3fdf134ac..25a59065951 100644 --- a/addons/spectator/functions/fnc_ui_updateHelp.sqf +++ b/addons/spectator/functions/fnc_ui_updateHelp.sqf @@ -35,7 +35,7 @@ if (_cameraMode == MODE_FREE) then { }; // When the camera has a focus, switch mode applies (if other modes are available) -if (_hasTarget && {count _availableModes > 1}) then { +if (_hasTarget && {!GVAR(camOnLocation)} && {count _availableModes > 1}) then { _controls pushBack ["[SPACE]", localize "STR_A3_Spectator_Helper_CameraMode"]; }; diff --git a/addons/spectator/functions/fnc_ui_updateListFocus.sqf b/addons/spectator/functions/fnc_ui_updateListFocus.sqf index ffd69cdbe56..96b25f93cfa 100644 --- a/addons/spectator/functions/fnc_ui_updateListFocus.sqf +++ b/addons/spectator/functions/fnc_ui_updateListFocus.sqf @@ -1,5 +1,5 @@ /* - * Author: Nelson Duarte, AACO + * Author: Nelson Duarte, AACO, SilentSpike * Function used to update the list focus * * Public: No @@ -7,6 +7,7 @@ #include "script_component.hpp" -if (GVAR(uiVisible)) then { +// Don't update list when in location mode or focus is a location +if (GVAR(uiVisible) && {!GVAR(camOnLocation)} && {GVAR(uiListType) != LIST_LOCATIONS}) then { CTRL_LIST tvSetCurSel ([[GVAR(camTarget)] call BIS_fnc_objectVar, IDC_LIST] call FUNC(ui_getTreeDataIndex)); }; diff --git a/addons/spectator/functions/fnc_ui_updateWidget.sqf b/addons/spectator/functions/fnc_ui_updateWidget.sqf index 0a0b3cf6987..ef6495cf5c9 100644 --- a/addons/spectator/functions/fnc_ui_updateWidget.sqf +++ b/addons/spectator/functions/fnc_ui_updateWidget.sqf @@ -11,7 +11,8 @@ #define IMG_GUNNER "a3\Ui_f\data\IGUI\Cfg\CommandBar\imageGunner_ca.paa" #define IMG_CARGO "a3\Ui_f\data\IGUI\Cfg\CommandBar\imageCommander_ca.paa" -if (!GVAR(uiWidgetVisible) || {isNull GVAR(camTarget)}) exitWith {CTRL_WIDGET ctrlShow false}; +// Hide if no target, or target is a location or widget is toggled off +if (!GVAR(uiWidgetVisible) || {GVAR(camOnLocation)} || {isNull GVAR(camTarget)}) exitWith {CTRL_WIDGET ctrlShow false}; private _focus = GVAR(camTarget); diff --git a/addons/spectator/script_component.hpp b/addons/spectator/script_component.hpp index cb11cc7e6cb..40d8a2b59ba 100644 --- a/addons/spectator/script_component.hpp +++ b/addons/spectator/script_component.hpp @@ -33,8 +33,6 @@ #define MODE_FPS 1 #define MODE_FOLLOW 2 -#define MODES_UNIT [MODE_FPS, MODE_FOLLOW] - #define VISION_NORM -2 #define VISION_NVG -1 From cf88a973d44b64eedc9373a40f0d1641ccd8afd4 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 19 May 2017 23:19:08 +0100 Subject: [PATCH 035/198] Fix local helicopters follow mode bug --- addons/spectator/functions/fnc_cam.sqf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/spectator/functions/fnc_cam.sqf b/addons/spectator/functions/fnc_cam.sqf index 96c09b3f32f..d2ad0525ec1 100644 --- a/addons/spectator/functions/fnc_cam.sqf +++ b/addons/spectator/functions/fnc_cam.sqf @@ -62,8 +62,7 @@ if (_init) then { GVAR(camera) = _camera; // Create dummy target used for follow camera - // TODO: Check if a camera object works here (see: https://feedback.bistudio.com/T123956) - GVAR(camDummy) = "Land_HelipadEmpty_F" createVehicleLocal getPosASLVisual GVAR(camTarget); + GVAR(camDummy) = "Logic" createVehicleLocal getPosASLVisual GVAR(camTarget); // Start ticking (follow camera requires EachFrame to avoid jitter) GVAR(camTick) = addMissionEventHandler ["EachFrame", {call FUNC(cam_tick)}]; From d8fbc086b54a3a87f379ebe12647d7dbe419082a Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Tue, 23 May 2017 15:25:45 +0100 Subject: [PATCH 036/198] Add compatibility with `counter` template Simply repositions the counter UI to the top of the screen out of the way --- addons/spectator/CfgEventHandlers.hpp | 6 +++++ addons/spectator/XEH_PREP.hpp | 1 + addons/spectator/XEH_postInit.sqf | 2 -- .../functions/fnc_counterCompatibility.sqf | 27 +++++++++++++++++++ .../functions/fnc_respawnTemplate.sqf | 3 ++- addons/spectator/functions/fnc_ui.sqf | 3 +++ .../functions/fnc_ui_handleKeyDown.sqf | 4 +-- .../functions/fnc_ui_handleKeyUp.sqf | 1 - addons/spectator/ui.hpp | 2 +- 9 files changed, 42 insertions(+), 7 deletions(-) create mode 100644 addons/spectator/functions/fnc_counterCompatibility.sqf diff --git a/addons/spectator/CfgEventHandlers.hpp b/addons/spectator/CfgEventHandlers.hpp index becf3950523..cd42168f76c 100644 --- a/addons/spectator/CfgEventHandlers.hpp +++ b/addons/spectator/CfgEventHandlers.hpp @@ -16,3 +16,9 @@ class Extended_PostInit_EventHandlers { init = QUOTE(call COMPILE_FILE(XEH_postInit)); }; }; + +class Extended_DisplayLoad_EventHandlers { + class RscRespawnCounter { + ADDON = QUOTE(_this call FUNC(counterCompatibility)); + }; +}; diff --git a/addons/spectator/XEH_PREP.hpp b/addons/spectator/XEH_PREP.hpp index 6d899293e54..6f93347d06f 100644 --- a/addons/spectator/XEH_PREP.hpp +++ b/addons/spectator/XEH_PREP.hpp @@ -34,6 +34,7 @@ PREP(ui_updateListLocations); PREP(ui_updateWidget); // Utility functions +PREP(counterCompatibility); PREP(getTargetEntities); PREP(getTargetGroups); PREP(handleFired); diff --git a/addons/spectator/XEH_postInit.sqf b/addons/spectator/XEH_postInit.sqf index b87e1fd39ff..ff83d07ba59 100644 --- a/addons/spectator/XEH_postInit.sqf +++ b/addons/spectator/XEH_postInit.sqf @@ -13,6 +13,4 @@ if (isServer) then { [QGVAR(stageSpectator), FUNC(stageSpectator)] call CBA_fnc_addEventHandler; -// TODO: Unit switch EH, if virtual spectator, start spectating - // TODO: Override BI setting, hook into display init diff --git a/addons/spectator/functions/fnc_counterCompatibility.sqf b/addons/spectator/functions/fnc_counterCompatibility.sqf new file mode 100644 index 00000000000..ab2bad14fd9 --- /dev/null +++ b/addons/spectator/functions/fnc_counterCompatibility.sqf @@ -0,0 +1,27 @@ +/* + * Author: SilentSpike + * Handles integrating the counter respawn template into the spectator UI + * + * Should be called from both counter display XEH and spectator init to account for arbitrary order + * + * Public: No + */ + +#include "script_component.hpp" +#define IDC_COUNTER_TITLE 1001 +#define IDC_COUNTER_BACK 1002 +#define IDC_COUNTER_TEXT 1003 + +params ["_display"]; + +if (isNull _display) exitWith {}; + +{ + private _ctrl = _display displayCtrl _x; + + (ctrlPosition _ctrl) params ["_xOld","","_w","_h"]; + + // Center controls at top middle of screen + _ctrl ctrlSetPosition [_xOld, safeZoneY, _w, _h]; + _ctrl ctrlCommit 0; +} forEach [IDC_COUNTER_TITLE, IDC_COUNTER_BACK, IDC_COUNTER_TEXT]; diff --git a/addons/spectator/functions/fnc_respawnTemplate.sqf b/addons/spectator/functions/fnc_respawnTemplate.sqf index 7afcb0893f0..b403223a5b3 100644 --- a/addons/spectator/functions/fnc_respawnTemplate.sqf +++ b/addons/spectator/functions/fnc_respawnTemplate.sqf @@ -25,7 +25,7 @@ if (isNull _oldKiller) then {_oldKiller = _newCorpse}; private _nvg = [-2,-1] select (sunOrMoon < 1); // Prepare camera attributes before entering spectator -[2, _oldKiller, _nvg, eyePos _newCorpse, getDirVisual _newCorpse] call FUNC(setCameraAttributes); +//[2, _oldKiller, _nvg, eyePos _newCorpse, getDirVisual _newCorpse] call FUNC(setCameraAttributes); // Enter/exit spectator based on the respawn type and whether killed/respawned if (alive _newCorpse) then { @@ -34,6 +34,7 @@ if (alive _newCorpse) then { private _grp = createGroup [sideLogic, true]; private _virtual = _grp createUnit [QGVAR(virtual), [0,0,0], [], 0, "NONE"]; + // Switch to virtual spectator unit selectPlayer _virtual; // Delete the seagull diff --git a/addons/spectator/functions/fnc_ui.sqf b/addons/spectator/functions/fnc_ui.sqf index 0675075b1a7..f27904fede3 100644 --- a/addons/spectator/functions/fnc_ui.sqf +++ b/addons/spectator/functions/fnc_ui.sqf @@ -52,6 +52,9 @@ if (_init) then { GVAR(oldViewDistance) = viewDistance; setViewDistance DEFAULT_VIEW_DISTANCE; + // If counter already exists handle it, otherwise display XEH will handle it + [GETUVAR(RscRespawnCounter,displayNull)] call FUNC(counterCompatibility); + // Create the display MAIN_DISPLAY createDisplay QGVAR(display); diff --git a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf index b93bc91c7cd..9d23d14c1df 100644 --- a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf +++ b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf @@ -85,7 +85,7 @@ if (_key == DIK_PGUP) exitWith { }; // Handle negative change in draw -if (_key == DIK_PGUP) exitWith { +if (_key == DIK_PGDN) exitWith { setViewDistance ((viewDistance - 250.0) max MIN_VIEW_DISTANCE); true }; @@ -147,7 +147,7 @@ if (_key == DIK_O) exitWith { }; // Handle toggling unit drawing -if (_key == DIK_BACKSLASH) exitWith { +if (_key == DIK_I) exitWith { GVAR(drawUnits) = !GVAR(drawUnits); true }; diff --git a/addons/spectator/functions/fnc_ui_handleKeyUp.sqf b/addons/spectator/functions/fnc_ui_handleKeyUp.sqf index e97cb803dc4..a5244366dfe 100644 --- a/addons/spectator/functions/fnc_ui_handleKeyUp.sqf +++ b/addons/spectator/functions/fnc_ui_handleKeyUp.sqf @@ -10,7 +10,6 @@ params ["","_key","_shift","_ctrl","_alt"]; -// TODO: Check whether this is necessary, could just toggle on key down if (_key == DIK_LALT) exitWith { [false] call FUNC(cam_toggleVeryFast); true diff --git a/addons/spectator/ui.hpp b/addons/spectator/ui.hpp index c70a842375d..2186475cc32 100644 --- a/addons/spectator/ui.hpp +++ b/addons/spectator/ui.hpp @@ -24,7 +24,7 @@ class GVAR(display) { closeOnMissionEnd = 1; onKeyDown = QUOTE(_this call FUNC(ui_handleKeyDown)); - onKeyUp = QUOTE(_this call FUNC(ui_handleKeyUp)); // TODO: Check whether key up is necessary + onKeyUp = QUOTE(_this call FUNC(ui_handleKeyUp)); onMouseMoving = QUOTE(_this call FUNC(ui_handleMouseMoving)); onChildDestroyed = QUOTE(_this call FUNC(ui_handleChildDestroyed)); From fb53cfa0514fe61735f9e61610aca69c37cbfd1c Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Tue, 23 May 2017 17:28:05 +0100 Subject: [PATCH 037/198] Update respawn template This template is only compatible with respawn types 2 & 3 --- .../functions/fnc_respawnTemplate.sqf | 40 +++++++------------ addons/spectator/script_component.hpp | 4 +- 2 files changed, 16 insertions(+), 28 deletions(-) diff --git a/addons/spectator/functions/fnc_respawnTemplate.sqf b/addons/spectator/functions/fnc_respawnTemplate.sqf index b403223a5b3..0a21541c7a9 100644 --- a/addons/spectator/functions/fnc_respawnTemplate.sqf +++ b/addons/spectator/functions/fnc_respawnTemplate.sqf @@ -1,7 +1,8 @@ /* * Author: SilentSpike - * The ace_spectator respawn template, handles killed + respawn - * Can be used via BI's respawn framework, see: + * The ace_spectator respawn template, compatible with types 2 & 3 + * + * Handles killed and respawned events as per BI's respawn framework: * https://community.bistudio.com/wiki/Arma_3_Respawn * * Arguments: @@ -20,33 +21,20 @@ params [["_newCorpse",objNull,[objNull]], ["_oldKiller",objNull,[objNull]], ["_respawn",0,[0]], ["_respawnDelay",0,[0]]]; +// These respawn types use engine driven magic we don't want to mess with +if (_respawn in [0,1,4,5]) exitWith { + WARNING(FORMAT_2("Cannot use %1 template with respawn type %2",QUOTE(ADDON),_respawn)); +}; + +// Negligible respawn delay can result in entering spectator after respawn +if (playerRespawnTime <= 1) exitWith {}; + // Some environment information can be used for the initial camera attributes if (isNull _oldKiller) then {_oldKiller = _newCorpse}; private _nvg = [-2,-1] select (sunOrMoon < 1); // Prepare camera attributes before entering spectator -//[2, _oldKiller, _nvg, eyePos _newCorpse, getDirVisual _newCorpse] call FUNC(setCameraAttributes); - -// Enter/exit spectator based on the respawn type and whether killed/respawned -if (alive _newCorpse) then { - // Handle seagull respawn - if (_respawn == 1) then { - private _grp = createGroup [sideLogic, true]; - private _virtual = _grp createUnit [QGVAR(virtual), [0,0,0], [], 0, "NONE"]; +[2, _oldKiller, _nvg, eyePos _newCorpse, getDirVisual _newCorpse] call FUNC(setCameraAttributes); - // Switch to virtual spectator unit - selectPlayer _virtual; - - // Delete the seagull - deleteVehicle _newCorpse; - - [true] call FUNC(setSpectator); - } else { - [false] call FUNC(setSpectator); - }; -} else { - // Negligible respawn delay can result in entering spectator after respawn - if (playerRespawnTime <= 1) exitWith {}; - - [true] call FUNC(setSpectator); -}; +// Enter/exit spectator based on whether killed/respawned +[!alive _newCorpse] call FUNC(setSpectator); diff --git a/addons/spectator/script_component.hpp b/addons/spectator/script_component.hpp index 40d8a2b59ba..40a9ffa29e9 100644 --- a/addons/spectator/script_component.hpp +++ b/addons/spectator/script_component.hpp @@ -26,8 +26,8 @@ // UI/Camera related values #define SPEED_DEFAULT 0.1 -#define SPEED_FAST 2.0 -#define SPEED_VERYFAST 3.0 +#define SPEED_FAST 2 +#define SPEED_VERYFAST 3 #define MODE_FREE 0 #define MODE_FPS 1 From a0dc1556cf62682f85faa4d1687ea9c4f1079d99 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Tue, 23 May 2017 17:32:51 +0100 Subject: [PATCH 038/198] Rename compatibility function --- addons/spectator/XEH_PREP.hpp | 2 +- .../{fnc_counterCompatibility.sqf => fnc_compat_counter.sqf} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename addons/spectator/functions/{fnc_counterCompatibility.sqf => fnc_compat_counter.sqf} (100%) diff --git a/addons/spectator/XEH_PREP.hpp b/addons/spectator/XEH_PREP.hpp index 6f93347d06f..aac2bbbd961 100644 --- a/addons/spectator/XEH_PREP.hpp +++ b/addons/spectator/XEH_PREP.hpp @@ -34,7 +34,7 @@ PREP(ui_updateListLocations); PREP(ui_updateWidget); // Utility functions -PREP(counterCompatibility); +PREP(compat_counter); PREP(getTargetEntities); PREP(getTargetGroups); PREP(handleFired); diff --git a/addons/spectator/functions/fnc_counterCompatibility.sqf b/addons/spectator/functions/fnc_compat_counter.sqf similarity index 100% rename from addons/spectator/functions/fnc_counterCompatibility.sqf rename to addons/spectator/functions/fnc_compat_counter.sqf From cbf3e3895d0b0dbc45acb1ba08b466915705edbe Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Tue, 23 May 2017 18:29:38 +0100 Subject: [PATCH 039/198] Add compatibility for respawn types 1,4 and 5 --- addons/spectator/CfgEventHandlers.hpp | 5 ++- addons/spectator/XEH_PREP.hpp | 1 + addons/spectator/XEH_postInit.sqf | 2 -- addons/spectator/config.cpp | 2 +- .../functions/fnc_compat_spectatorBI.sqf | 33 +++++++++++++++++++ .../functions/fnc_respawnTemplate.sqf | 7 ++-- .../functions/fnc_updateCameraModes.sqf | 2 +- .../spectator/functions/fnc_updateSides.sqf | 3 +- .../functions/fnc_updateVisionModes.sqf | 2 +- 9 files changed, 45 insertions(+), 12 deletions(-) create mode 100644 addons/spectator/functions/fnc_compat_spectatorBI.sqf diff --git a/addons/spectator/CfgEventHandlers.hpp b/addons/spectator/CfgEventHandlers.hpp index cd42168f76c..273e7d5849a 100644 --- a/addons/spectator/CfgEventHandlers.hpp +++ b/addons/spectator/CfgEventHandlers.hpp @@ -19,6 +19,9 @@ class Extended_PostInit_EventHandlers { class Extended_DisplayLoad_EventHandlers { class RscRespawnCounter { - ADDON = QUOTE(_this call FUNC(counterCompatibility)); + ADDON = QUOTE(_this call FUNC(compat_counter)); + }; + class RscDisplayEGSpectator { + ADDON = QUOTE(_this call FUNC(compat_spectatorBI)); }; }; diff --git a/addons/spectator/XEH_PREP.hpp b/addons/spectator/XEH_PREP.hpp index aac2bbbd961..9a0701e646d 100644 --- a/addons/spectator/XEH_PREP.hpp +++ b/addons/spectator/XEH_PREP.hpp @@ -35,6 +35,7 @@ PREP(ui_updateWidget); // Utility functions PREP(compat_counter); +PREP(compat_spectatorBI); PREP(getTargetEntities); PREP(getTargetGroups); PREP(handleFired); diff --git a/addons/spectator/XEH_postInit.sqf b/addons/spectator/XEH_postInit.sqf index ff83d07ba59..66dd36ed7b1 100644 --- a/addons/spectator/XEH_postInit.sqf +++ b/addons/spectator/XEH_postInit.sqf @@ -12,5 +12,3 @@ if (isServer) then { }; [QGVAR(stageSpectator), FUNC(stageSpectator)] call CBA_fnc_addEventHandler; - -// TODO: Override BI setting, hook into display init diff --git a/addons/spectator/config.cpp b/addons/spectator/config.cpp index a21dfe88ad6..3ff6000fdc3 100644 --- a/addons/spectator/config.cpp +++ b/addons/spectator/config.cpp @@ -24,6 +24,6 @@ class CfgRespawnTemplates { displayName = CSTRING(DisplayName); onPlayerKilled = QFUNC(respawnTemplate); onPlayerRespawn = QFUNC(respawnTemplate); - respawnTypes[] = {2,3}; + respawnTypes[] = {1,2,3,4,5}; }; }; diff --git a/addons/spectator/functions/fnc_compat_spectatorBI.sqf b/addons/spectator/functions/fnc_compat_spectatorBI.sqf new file mode 100644 index 00000000000..9e5f3f5b535 --- /dev/null +++ b/addons/spectator/functions/fnc_compat_spectatorBI.sqf @@ -0,0 +1,33 @@ +/* + * Author: SilentSpike + * Handles "compatibility" (i.e. override) for BI spectator respawn types 1, 4 & 5 + * + * Called from the EG spectator display XEH + * + * Public: No + */ + +#include "script_component.hpp" + +private _respawn = getMissionConfigValue ["respawn",0]; +if (_respawn isEqualType "") then { _respawn = ["","bird","","","group","side"] find (toLower _respawn); } +if !(_respawn in [1,4,5]) exitWith {}; + +private _templates = getMissionConfigValue ["respawnTemplates",[]]; +if !(QUOTE(ADDON) in _templates) exitWith {}; + +// Kill BI spectator +["Terminate"] call BIS_fnc_EGSpectator; + +// Don't be a seagull +private _seagull = player; +if (typeOf _seagull == "seagull") then { + private _grp = createGroup [sideLogic, true]; + private _virtual = _grp createUnit [QGVAR(virtual),[0,0,0],[],0,""]; + + selectPlayer _virtual; + deleteVehicle _seagull; +}; + +// Start our spectator +[true] call FUNC(setSpectator); diff --git a/addons/spectator/functions/fnc_respawnTemplate.sqf b/addons/spectator/functions/fnc_respawnTemplate.sqf index 0a21541c7a9..7e73c7c26d7 100644 --- a/addons/spectator/functions/fnc_respawnTemplate.sqf +++ b/addons/spectator/functions/fnc_respawnTemplate.sqf @@ -21,10 +21,9 @@ params [["_newCorpse",objNull,[objNull]], ["_oldKiller",objNull,[objNull]], ["_respawn",0,[0]], ["_respawnDelay",0,[0]]]; -// These respawn types use engine driven magic we don't want to mess with -if (_respawn in [0,1,4,5]) exitWith { - WARNING(FORMAT_2("Cannot use %1 template with respawn type %2",QUOTE(ADDON),_respawn)); -}; +// These respawn types use engine driven magic we don't want to mess with here +// Compatibility handled via spectator display XEH +if (_respawn in [0,1,4,5]) exitWith {}; // Negligible respawn delay can result in entering spectator after respawn if (playerRespawnTime <= 1) exitWith {}; diff --git a/addons/spectator/functions/fnc_updateCameraModes.sqf b/addons/spectator/functions/fnc_updateCameraModes.sqf index 9af026ab959..2cb88ca6bfe 100644 --- a/addons/spectator/functions/fnc_updateCameraModes.sqf +++ b/addons/spectator/functions/fnc_updateCameraModes.sqf @@ -48,7 +48,7 @@ if (_newModes isEqualTo []) then { // Update camera in case of change if (GVAR(isSet)) then { - [] call FUNC(transitionCamera); + [GVAR(camMode)] call FUNC(cam_setCameraMode); }; _newModes diff --git a/addons/spectator/functions/fnc_updateSides.sqf b/addons/spectator/functions/fnc_updateSides.sqf index 05da7c16c9f..ef4949a763e 100644 --- a/addons/spectator/functions/fnc_updateSides.sqf +++ b/addons/spectator/functions/fnc_updateSides.sqf @@ -1,7 +1,6 @@ /* * Author: SilentSpike * Adds or removes sides from the selection available to spectate by the local player. - * Note that the side filter setting is applied to the available sides dynamically. * * Default selection is [west,east,resistance,civilian] * @@ -10,7 +9,7 @@ * 1: Sides to remove * * Return Value: - * Spectatable sides + * Sides available * * Example: * [[west], [east,civilian]] call ace_spectator_fnc_updateSides diff --git a/addons/spectator/functions/fnc_updateVisionModes.sqf b/addons/spectator/functions/fnc_updateVisionModes.sqf index 906887499eb..fdc366a540a 100644 --- a/addons/spectator/functions/fnc_updateVisionModes.sqf +++ b/addons/spectator/functions/fnc_updateVisionModes.sqf @@ -56,7 +56,7 @@ if (_newModes isEqualTo []) then { // Update camera in case of change if (GVAR(isSet)) then { - [] call FUNC(transitionCamera); + [GVAR(camMode)] call FUNC(cam_setCameraMode); }; _newModes From 1983a37e0ce29c3c442a1a87673d09a622468f7b Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Tue, 23 May 2017 20:14:04 +0100 Subject: [PATCH 040/198] Update setCameraAttributes function --- addons/spectator/CfgVehicles.hpp | 5 +- addons/spectator/XEH_PREP.hpp | 1 + .../spectator/functions/fnc_addLocation.sqf | 2 +- addons/spectator/functions/fnc_cam.sqf | 14 +++- .../functions/fnc_compat_spectatorBI.sqf | 3 +- .../functions/fnc_removeLocation.sqf | 2 +- .../functions/fnc_respawnTemplate.sqf | 4 +- .../functions/fnc_setCameraAttributes.sqf | 74 +++++++++++++------ .../spectator/functions/fnc_updateSides.sqf | 2 +- .../spectator/functions/fnc_updateUnits.sqf | 2 +- 10 files changed, 75 insertions(+), 34 deletions(-) diff --git a/addons/spectator/CfgVehicles.hpp b/addons/spectator/CfgVehicles.hpp index 9cc115aa739..861a6198331 100644 --- a/addons/spectator/CfgVehicles.hpp +++ b/addons/spectator/CfgVehicles.hpp @@ -73,9 +73,10 @@ class CfgVehicles { }; }; class VirtualMan_F; - class GVAR(vitrual): VirtualMan_F { + class GVAR(virtual): VirtualMan_F { author = ECSTRING(common,ACETeam); - scope = 1; + displayName = CSTRING(DisplayName); + scope = 2; scopeArsenal = 0; scopeCurator = 0; diff --git a/addons/spectator/XEH_PREP.hpp b/addons/spectator/XEH_PREP.hpp index 9a0701e646d..621df7f0238 100644 --- a/addons/spectator/XEH_PREP.hpp +++ b/addons/spectator/XEH_PREP.hpp @@ -47,6 +47,7 @@ PREP(setFocus); PREP(addLocation); PREP(interrupt); PREP(removeLocation); +PREP(setCameraAttributes); PREP(setSpectator); PREP(stageSpectator); PREP(updateCameraModes); diff --git a/addons/spectator/functions/fnc_addLocation.sqf b/addons/spectator/functions/fnc_addLocation.sqf index 019358ce39b..3974753fe17 100644 --- a/addons/spectator/functions/fnc_addLocation.sqf +++ b/addons/spectator/functions/fnc_addLocation.sqf @@ -1,6 +1,6 @@ /* * Author: Nelson Duarte, SilentSpike - * Add a location that can be seen in spectator view + * Add a location that can be seen in spectator view. Local effect. * * Notes: * - Position array is of form ASL diff --git a/addons/spectator/functions/fnc_cam.sqf b/addons/spectator/functions/fnc_cam.sqf index d2ad0525ec1..b16b0764d8e 100644 --- a/addons/spectator/functions/fnc_cam.sqf +++ b/addons/spectator/functions/fnc_cam.sqf @@ -36,15 +36,21 @@ if (_init) then { GVAR(camLights) = []; GVAR(camLight) = false; - // Create the camera - private _camera = "CamCurator" camCreate eyePos player; + // Handle pre-set pos and dir (delete GVARs when done) + private _pos = if (isNil QGVAR(camPos)) then {eyePos player} else {GVAR(camPos)}; + private _dir = if (isNil QGVAR(camDir)) then {getDirVisual player} else {GVAR(camDir)}; + GVAR(camPos) = nil; + GVAR(camDir) = nil; + + // Create the camera (CamCurator required for engine driven controls) + private _camera = "CamCurator" camCreate _pos; if (isNull _camera) exitWith { ERROR("Camera wasn't created successfully"); }; // Switch to the camera and set its attributes _camera cameraEffect ["internal", "back"]; - _camera setPosASL eyePos player; - _camera setDir getDirVisual player; + _camera setPosASL _pos; + _camera setDir _dir; _camera camCommand "maxPitch 89"; _camera camCommand "minPitch -89"; _camera camCommand format ["speedDefault %1", SPEED_DEFAULT]; diff --git a/addons/spectator/functions/fnc_compat_spectatorBI.sqf b/addons/spectator/functions/fnc_compat_spectatorBI.sqf index 9e5f3f5b535..80c0b975223 100644 --- a/addons/spectator/functions/fnc_compat_spectatorBI.sqf +++ b/addons/spectator/functions/fnc_compat_spectatorBI.sqf @@ -10,7 +10,7 @@ #include "script_component.hpp" private _respawn = getMissionConfigValue ["respawn",0]; -if (_respawn isEqualType "") then { _respawn = ["","bird","","","group","side"] find (toLower _respawn); } +if (_respawn isEqualType "") then { _respawn = ["","bird","","","group","side"] find (toLower _respawn); }; if !(_respawn in [1,4,5]) exitWith {}; private _templates = getMissionConfigValue ["respawnTemplates",[]]; @@ -20,6 +20,7 @@ if !(QUOTE(ADDON) in _templates) exitWith {}; ["Terminate"] call BIS_fnc_EGSpectator; // Don't be a seagull +// TODO: Make this work private _seagull = player; if (typeOf _seagull == "seagull") then { private _grp = createGroup [sideLogic, true]; diff --git a/addons/spectator/functions/fnc_removeLocation.sqf b/addons/spectator/functions/fnc_removeLocation.sqf index 34f23e9b35c..087163d4b92 100644 --- a/addons/spectator/functions/fnc_removeLocation.sqf +++ b/addons/spectator/functions/fnc_removeLocation.sqf @@ -1,6 +1,6 @@ /* * Author: Nelson Duarte, SilentSpike - * Remove a location that can be seen in spectator view + * Remove a location that can be seen in spectator view. Local effect. * * Arguments: * 0: Unique ID diff --git a/addons/spectator/functions/fnc_respawnTemplate.sqf b/addons/spectator/functions/fnc_respawnTemplate.sqf index 7e73c7c26d7..41379882c94 100644 --- a/addons/spectator/functions/fnc_respawnTemplate.sqf +++ b/addons/spectator/functions/fnc_respawnTemplate.sqf @@ -30,10 +30,10 @@ if (playerRespawnTime <= 1) exitWith {}; // Some environment information can be used for the initial camera attributes if (isNull _oldKiller) then {_oldKiller = _newCorpse}; -private _nvg = [-2,-1] select (sunOrMoon < 1); +private _nvg = [VISION_NORM, VISION_NVG] select (sunOrMoon < 1); // Prepare camera attributes before entering spectator -[2, _oldKiller, _nvg, eyePos _newCorpse, getDirVisual _newCorpse] call FUNC(setCameraAttributes); +[MODE_FREE, _oldKiller, _nvg, ASLtoATL eyePos _newCorpse, getDirVisual _newCorpse] call FUNC(setCameraAttributes); // Enter/exit spectator based on whether killed/respawned [!alive _newCorpse] call FUNC(setSpectator); diff --git a/addons/spectator/functions/fnc_setCameraAttributes.sqf b/addons/spectator/functions/fnc_setCameraAttributes.sqf index 63b48b9eecb..92aecd11c14 100644 --- a/addons/spectator/functions/fnc_setCameraAttributes.sqf +++ b/addons/spectator/functions/fnc_setCameraAttributes.sqf @@ -1,24 +1,21 @@ /* * Author: SilentSpike * Sets the spectator camera attributes as desired - * All values are optional and default to whatever the current value is + * All values are optional and default to no change * * Arguments: * 0: Camera mode * - 0: Free * - 1: First Person * - 2: Follow - * 1: Camera unit (objNull for random) + * 1: Camera focus (objNull for random) * 2: Camera vision * - -2: Normal * - -1: Night vision * - 0: Thermal white hot * - 1: Thermal black hot * 3: Camera position (ATL) - * 4: Camera pan (0 - 360) - * 5: Camera tilt (-90 - 90) - * 6: Camera zoom (0.01 - 2) - * 7: Camera speed in m/s (0.05 - 10) + * 4: Camera direction (0 - 360) * * Return Value: * None @@ -32,26 +29,61 @@ #include "script_component.hpp" params [ - ["_mode",GETMVAR(GVAR(camMode),MODE_FREE),[0]], - ["_focus",GETMVAR(GVAR(camTarget),objNull),[objNull]], - ["_vision",GETMVAR(GVAR(camVision),VISION_NORM),[0]] + ["_mode",nil,[0]], + ["_focus",nil,[objNull]], + ["_vision",nil,[0]], + ["_position",nil,[[]],3], + ["_direction",nil,[0]] ]; -// Normalize input -if !(_mode in GVAR(availableModes)) then { - _mode = GVAR(availableModes) select ((GVAR(availableModes) find GVAR(camMode)) max 0); -}; - -if !(_vision in GVAR(availableVisions)) then { - _vision = GVAR(availableVisions) select ((GVAR(availableVisions) find GVAR(camVision)) max 0); +// For null focus or unit camera mode with no focus, select randomly +if (!isNil "_mode" || (!isNil "_focus" && {isNull _focus})) then { + if ((isNil "_mode" || {_mode != MODE_FREE}) && (isNil "_focus" || {isNull _focus})) then { + _focus = selectRandom ([] call FUNC(getTargetEntities); + }; }; // Apply if camera exists if (GVAR(isSet)) then { - ["SetCameraMode",[_mode]] call FUNC(camera); - ["SetVisionMode",[_vision]] call FUNC(camera); + // These functions are smart and handle unavailable inputs + if !(isNil "_focus") then { + [_focus] call FUNC(setFocus); + }; + + if !(isNil "_mode") then { + [_mode] call FUNC(cam_setCameraMode); + }; + + if !(isNil "_vision") then { + [_vision] call FUNC(cam_setVisionMode); + }; + + if !(isNil "_position") then { + GVAR(camera) setPosATL _position; + }; + + if !(isNil "_direction") then { + GVAR(camera) setDir _direction; + }; } else { - GVAR(camMode) = _mode; - GVAR(camTarget) = _focus; - GVAR(camVision) = _vision; + if !(isNil "_focus") then { + GVAR(camTarget) = _focus; + }; + + if !(isNil "_mode") then { + GVAR(camMode) = _mode; + }; + + if !(isNil "_vision") then { + GVAR(camVision) = _vision; + }; + + // GVARs exits purely for pre-setting of these attributes + if !(isNil "_position") then { + GVAR(camPos) = ATLtoASL _position; + }; + + if !(isNil "_direction") then { + GVAR(camDir) = _direction; + }; }; diff --git a/addons/spectator/functions/fnc_updateSides.sqf b/addons/spectator/functions/fnc_updateSides.sqf index ef4949a763e..ec4606b9515 100644 --- a/addons/spectator/functions/fnc_updateSides.sqf +++ b/addons/spectator/functions/fnc_updateSides.sqf @@ -1,6 +1,6 @@ /* * Author: SilentSpike - * Adds or removes sides from the selection available to spectate by the local player. + * Adds or removes sides from the selection available to spectate. Local effect. * * Default selection is [west,east,resistance,civilian] * diff --git a/addons/spectator/functions/fnc_updateUnits.sqf b/addons/spectator/functions/fnc_updateUnits.sqf index d1a5507bca0..d89d261a801 100644 --- a/addons/spectator/functions/fnc_updateUnits.sqf +++ b/addons/spectator/functions/fnc_updateUnits.sqf @@ -1,6 +1,6 @@ /* * Author: SilentSpike - * Adds units to spectator whitelist/blacklist + * Adds units to spectator whitelist/blacklist. Local effect. * * Arguments: * 0: Units to add to the whitelist From 68bfa2a6d525177ed0d6cc23d649e0e66cbae750 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Tue, 23 May 2017 20:32:47 +0100 Subject: [PATCH 041/198] Fix draw3D for respawn types 1,4 and 5 --- .../functions/fnc_compat_spectatorBI.sqf | 17 ++++++----------- .../spectator/functions/fnc_respawnTemplate.sqf | 3 +-- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/addons/spectator/functions/fnc_compat_spectatorBI.sqf b/addons/spectator/functions/fnc_compat_spectatorBI.sqf index 80c0b975223..ba668a019b7 100644 --- a/addons/spectator/functions/fnc_compat_spectatorBI.sqf +++ b/addons/spectator/functions/fnc_compat_spectatorBI.sqf @@ -19,16 +19,11 @@ if !(QUOTE(ADDON) in _templates) exitWith {}; // Kill BI spectator ["Terminate"] call BIS_fnc_EGSpectator; -// Don't be a seagull -// TODO: Make this work -private _seagull = player; -if (typeOf _seagull == "seagull") then { - private _grp = createGroup [sideLogic, true]; - private _virtual = _grp createUnit [QGVAR(virtual),[0,0,0],[],0,""]; - - selectPlayer _virtual; - deleteVehicle _seagull; -}; - // Start our spectator [true] call FUNC(setSpectator); + +// Switch to a virtual unit so draw3D continues to work +private _grp = createGroup [sideLogic, true]; +private _virtual = _grp createUnit [QGVAR(virtual),[0,0,0],[],0,""]; + +selectPlayer _virtual; diff --git a/addons/spectator/functions/fnc_respawnTemplate.sqf b/addons/spectator/functions/fnc_respawnTemplate.sqf index 41379882c94..ae2cc1ef574 100644 --- a/addons/spectator/functions/fnc_respawnTemplate.sqf +++ b/addons/spectator/functions/fnc_respawnTemplate.sqf @@ -29,11 +29,10 @@ if (_respawn in [0,1,4,5]) exitWith {}; if (playerRespawnTime <= 1) exitWith {}; // Some environment information can be used for the initial camera attributes -if (isNull _oldKiller) then {_oldKiller = _newCorpse}; private _nvg = [VISION_NORM, VISION_NVG] select (sunOrMoon < 1); // Prepare camera attributes before entering spectator -[MODE_FREE, _oldKiller, _nvg, ASLtoATL eyePos _newCorpse, getDirVisual _newCorpse] call FUNC(setCameraAttributes); +[nil, nil, _nvg, nil, nil] call FUNC(setCameraAttributes); // Enter/exit spectator based on whether killed/respawned [!alive _newCorpse] call FUNC(setSpectator); From ecb6f4c6dadb5597b2d10c6fd8120be8a02c9871 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Tue, 23 May 2017 20:42:36 +0100 Subject: [PATCH 042/198] Fix screeching seagulls #4265 --- addons/spectator/functions/fnc_compat_spectatorBI.sqf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/addons/spectator/functions/fnc_compat_spectatorBI.sqf b/addons/spectator/functions/fnc_compat_spectatorBI.sqf index ba668a019b7..55f8ebe2bfc 100644 --- a/addons/spectator/functions/fnc_compat_spectatorBI.sqf +++ b/addons/spectator/functions/fnc_compat_spectatorBI.sqf @@ -22,6 +22,10 @@ if !(QUOTE(ADDON) in _templates) exitWith {}; // Start our spectator [true] call FUNC(setSpectator); +// Delete the seagull that spawns (not actually the player, a CfgNonAIVehicles object) +// This could delete seagulls created by a wildlife module (TODO: Find a more accurate method of getting the exact seagull) +{ if (_x isKindOf "seagull") then {deleteVehicle _x;}; } forEach (nearObjects [player, [], 250]); + // Switch to a virtual unit so draw3D continues to work private _grp = createGroup [sideLogic, true]; private _virtual = _grp createUnit [QGVAR(virtual),[0,0,0],[],0,""]; From 41358f5c0c3ec0a2cc5781c1f6abd16226256d3b Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Tue, 23 May 2017 20:57:08 +0100 Subject: [PATCH 043/198] Fix script command typo --- addons/spectator/functions/fnc_compat_spectatorBI.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/spectator/functions/fnc_compat_spectatorBI.sqf b/addons/spectator/functions/fnc_compat_spectatorBI.sqf index 55f8ebe2bfc..3bdb5f2215c 100644 --- a/addons/spectator/functions/fnc_compat_spectatorBI.sqf +++ b/addons/spectator/functions/fnc_compat_spectatorBI.sqf @@ -24,7 +24,7 @@ if !(QUOTE(ADDON) in _templates) exitWith {}; // Delete the seagull that spawns (not actually the player, a CfgNonAIVehicles object) // This could delete seagulls created by a wildlife module (TODO: Find a more accurate method of getting the exact seagull) -{ if (_x isKindOf "seagull") then {deleteVehicle _x;}; } forEach (nearObjects [player, [], 250]); +{ if (_x isKindOf "seagull") then {deleteVehicle _x;}; } forEach (nearestObjects [player, [], 250]); // Switch to a virtual unit so draw3D continues to work private _grp = createGroup [sideLogic, true]; From 305d0f294f87d642125f36e783f136fbeafe50e6 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Tue, 23 May 2017 21:00:27 +0100 Subject: [PATCH 044/198] SQF Linter Pass --- addons/spectator/functions/fnc_removeLocation.sqf | 2 +- addons/spectator/functions/fnc_setCameraAttributes.sqf | 2 +- addons/spectator/functions/fnc_ui_updateListLocations.sqf | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/spectator/functions/fnc_removeLocation.sqf b/addons/spectator/functions/fnc_removeLocation.sqf index 087163d4b92..0cc625c2e34 100644 --- a/addons/spectator/functions/fnc_removeLocation.sqf +++ b/addons/spectator/functions/fnc_removeLocation.sqf @@ -16,7 +16,7 @@ #include "script_component.hpp" -params ["_id","",[""]]; +params [["_id","",[""]]]; private _index = -1; diff --git a/addons/spectator/functions/fnc_setCameraAttributes.sqf b/addons/spectator/functions/fnc_setCameraAttributes.sqf index 92aecd11c14..4919b341c56 100644 --- a/addons/spectator/functions/fnc_setCameraAttributes.sqf +++ b/addons/spectator/functions/fnc_setCameraAttributes.sqf @@ -39,7 +39,7 @@ params [ // For null focus or unit camera mode with no focus, select randomly if (!isNil "_mode" || (!isNil "_focus" && {isNull _focus})) then { if ((isNil "_mode" || {_mode != MODE_FREE}) && (isNil "_focus" || {isNull _focus})) then { - _focus = selectRandom ([] call FUNC(getTargetEntities); + _focus = selectRandom ([] call FUNC(getTargetEntities)); }; }; diff --git a/addons/spectator/functions/fnc_ui_updateListLocations.sqf b/addons/spectator/functions/fnc_ui_updateListLocations.sqf index b2de92f67a4..0c468e18ea5 100644 --- a/addons/spectator/functions/fnc_ui_updateListLocations.sqf +++ b/addons/spectator/functions/fnc_ui_updateListLocations.sqf @@ -37,15 +37,15 @@ if !(GVAR(curList) isEqualTo _newList) then { private _lookup = (_locationDataToPathHash select 0) find _id; if (_lookup < 0) then { - _locationIndex = _ctrl tvAdd [[], _name]; + private _locationIndex = _ctrl tvAdd [[], _name]; _ctrl tvSetData [[_locationIndex], _id]; _ctrl tvSetPicture [[_locationIndex], _texture]; _ctrl tvSetPictureColor [[_locationIndex], [1,1,1,1]]; _ctrl tvSetTooltip [[_locationIndex], _description]; } else { // pop data out of hash to improve later lookups - (_groupDataToPathHash select 0) deleteAt _lookup; - private _path = (_groupDataToPathHash select 1) deleteAt _lookup; + (_locationDataToPathHash select 0) deleteAt _lookup; + private _path = (_locationDataToPathHash select 1) deleteAt _lookup; _ctrl tvSetText [_path, _name]; _ctrl tvSetPicture [_path, _texture]; From 9aebb4e716f16f812b9f813a590faa93d1fbc631 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Tue, 23 May 2017 21:18:29 +0100 Subject: [PATCH 045/198] Add obsolete warning for public func params --- addons/spectator/functions/fnc_setCameraAttributes.sqf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/addons/spectator/functions/fnc_setCameraAttributes.sqf b/addons/spectator/functions/fnc_setCameraAttributes.sqf index 4919b341c56..763a776e7c9 100644 --- a/addons/spectator/functions/fnc_setCameraAttributes.sqf +++ b/addons/spectator/functions/fnc_setCameraAttributes.sqf @@ -36,6 +36,11 @@ params [ ["_direction",nil,[0]] ]; +// ACE_DEPRECATED (< Tag so that this is found via a search, can remove the warning in future) +if (count _this > 5) then { + WARNING("Use of ""tilt"", ""zoom"" and ""speed"" camera attributes is no longer supported"); +}; + // For null focus or unit camera mode with no focus, select randomly if (!isNil "_mode" || (!isNil "_focus" && {isNull _focus})) then { if ((isNil "_mode" || {_mode != MODE_FREE}) && (isNil "_focus" || {isNull _focus})) then { From dccf0d44b3dcab87affab3af2b7b646b165b7bec Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Tue, 23 May 2017 21:30:10 +0100 Subject: [PATCH 046/198] Deprecate interrupt function --- addons/spectator/functions/fnc_interrupt.sqf | 31 +++++-------------- .../functions/fnc_stageSpectator.sqf | 10 ------ 2 files changed, 8 insertions(+), 33 deletions(-) diff --git a/addons/spectator/functions/fnc_interrupt.sqf b/addons/spectator/functions/fnc_interrupt.sqf index 3c34e24fa47..77b0c5a2e1c 100644 --- a/addons/spectator/functions/fnc_interrupt.sqf +++ b/addons/spectator/functions/fnc_interrupt.sqf @@ -1,27 +1,17 @@ /* * Author: SilentSpike - * Interrupts the spectator interface for external systems - * - * Arguments: - * 0: Reason - * 1: Interrupting (default: true) - * - * Return Value: - * None - * - * Example: - * ["mySystem"] call ace_spectator_fnc_interrupt - * - * Public: Yes + * Deperecated. Technically never publically documented, but just in case. */ #include "script_component.hpp" params [["_reason", "", [""]], ["_interrupt", true, [true]]]; +ACE_DEPRECATED(QFUNC(interrupt),"3.12.0","just close and reopen spectator"); + // Nothing to do when spectator is closed if !(GVAR(isSet)) exitWith {}; -if (_reason == "") exitWith { ERROR("Invalid Reason"); }; +if (_reason == "") exitWith { WARNING("Invalid Reason"); }; if (_interrupt) then { GVAR(interrupts) pushBack _reason; } else { @@ -29,16 +19,11 @@ if (_interrupt) then { }; if (GVAR(interrupts) isEqualTo []) then { - if (isNull GVAR(interface)) then { - (findDisplay 46) createDisplay QGVAR(interface); - [] call FUNC(transitionCamera); + if (isNull SPEC_DISPLAY) then { + [true] call FUNC(ui); }; } else { - if !(isNull GVAR(interface)) then { - while {dialog} do { - closeDialog 0; - }; - - GVAR(interface) closeDisplay 0; + if !(isNull SPEC_DISPLAY) then { + [false] call FUNC(ui); }; }; diff --git a/addons/spectator/functions/fnc_stageSpectator.sqf b/addons/spectator/functions/fnc_stageSpectator.sqf index 12cce459a73..d61fa84992d 100644 --- a/addons/spectator/functions/fnc_stageSpectator.sqf +++ b/addons/spectator/functions/fnc_stageSpectator.sqf @@ -65,13 +65,3 @@ if !(_set isEqualTo (GETVAR(_unit,GVAR(isStaged),false))) then { ["ace_spectatorStaged", [_set, _unit]] call CBA_fnc_globalEvent; }; - -//BandAid for #2677 - if player in unitList weird before being staged, weird things can happen -if ((player in GVAR(unitList)) || {ACE_player in GVAR(unitList)}) then { - [] call FUNC(updateUnits); //update list now - if (!(isNull (findDisplay 12249))) then {//If display is open now, close it and restart - WARNING("Player in unitList, call ace_spectator_fnc_stageSpectator before ace_spectator_fnc_setSpectator"); - ["fixWeirdList", true] call FUNC(interrupt); - [{["fixWeirdList", false] call FUNC(interrupt);}, []] call CBA_fnc_execNextFrame; - }; -}; From ba076e80b25f34f7b643c3a617cbd6105e7f5434 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Tue, 23 May 2017 21:31:18 +0100 Subject: [PATCH 047/198] Fix incorrect function call --- addons/spectator/functions/fnc_ui.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/spectator/functions/fnc_ui.sqf b/addons/spectator/functions/fnc_ui.sqf index f27904fede3..79af1dfed94 100644 --- a/addons/spectator/functions/fnc_ui.sqf +++ b/addons/spectator/functions/fnc_ui.sqf @@ -53,7 +53,7 @@ if (_init) then { setViewDistance DEFAULT_VIEW_DISTANCE; // If counter already exists handle it, otherwise display XEH will handle it - [GETUVAR(RscRespawnCounter,displayNull)] call FUNC(counterCompatibility); + [GETUVAR(RscRespawnCounter,displayNull)] call FUNC(compat_counter); // Create the display MAIN_DISPLAY createDisplay QGVAR(display); From c20618c94dd1f9590cf3528cbd4dc39d91b47299 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Tue, 23 May 2017 21:45:12 +0100 Subject: [PATCH 048/198] Make playable virtual spectator work --- addons/spectator/XEH_postInit.sqf | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/addons/spectator/XEH_postInit.sqf b/addons/spectator/XEH_postInit.sqf index 66dd36ed7b1..a76b621c2da 100644 --- a/addons/spectator/XEH_postInit.sqf +++ b/addons/spectator/XEH_postInit.sqf @@ -12,3 +12,15 @@ if (isServer) then { }; [QGVAR(stageSpectator), FUNC(stageSpectator)] call CBA_fnc_addEventHandler; + +// Initalise virtual spectators +[QGVAR(virtual),"initpost",{ + if !(GVAR(isSet)) then { + // Delay until local player is fully initalized + [ + { !isNil { player } && { !isNull player } }, + { if (player == _this) then {[true] call FUNC(setSpectator)}; }, + _this select 0 + ] call CBA_fnc_waitUntilAndExecute; + }; +},false,[],true] call CBA_fnc_addClassEventHandler; From 9312c63769087d500a84bf7502c016075f429e6e Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Wed, 24 May 2017 09:16:48 +0100 Subject: [PATCH 049/198] Improve focus handling in public function - User might want to reset focus for free cam, in which case objNull cannot be reserved for random - Focus is still required for unit camera - Update some function headers --- .../spectator/functions/fnc_addLocation.sqf | 12 +++++----- addons/spectator/functions/fnc_interrupt.sqf | 2 +- .../functions/fnc_setCameraAttributes.sqf | 22 +++++++++++++------ 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/addons/spectator/functions/fnc_addLocation.sqf b/addons/spectator/functions/fnc_addLocation.sqf index 3974753fe17..7a937495447 100644 --- a/addons/spectator/functions/fnc_addLocation.sqf +++ b/addons/spectator/functions/fnc_addLocation.sqf @@ -2,12 +2,6 @@ * Author: Nelson Duarte, SilentSpike * Add a location that can be seen in spectator view. Local effect. * - * Notes: - * - Position array is of form ASL - * - Position objects will remove location upon objNull - * - If an empty name is supplied, a descriptive name will be used - * - Camera offset is used when teleporting to location, default is treated as random - * * Arguments: * 0: Position * 1: Display Name (Default: "") @@ -15,6 +9,12 @@ * 3: Texture (Default: "") * 4: Camera Offset Vector (Default: [0,0,0]) * + * Notes: + * - Position array is of form ASL + * - Position objects will remove location upon objNull + * - If an empty name is supplied, a descriptive name will be used + * - Camera offset is used when teleporting to location, default is treated as random + * * Return Value: * Unique ID (used to remove a location) * diff --git a/addons/spectator/functions/fnc_interrupt.sqf b/addons/spectator/functions/fnc_interrupt.sqf index 77b0c5a2e1c..60c733db380 100644 --- a/addons/spectator/functions/fnc_interrupt.sqf +++ b/addons/spectator/functions/fnc_interrupt.sqf @@ -1,6 +1,6 @@ /* * Author: SilentSpike - * Deperecated. Technically never publically documented, but just in case. + * Deprecated. Technically never publically documented, but just in case. */ #include "script_component.hpp" diff --git a/addons/spectator/functions/fnc_setCameraAttributes.sqf b/addons/spectator/functions/fnc_setCameraAttributes.sqf index 763a776e7c9..15b3b042b02 100644 --- a/addons/spectator/functions/fnc_setCameraAttributes.sqf +++ b/addons/spectator/functions/fnc_setCameraAttributes.sqf @@ -1,22 +1,27 @@ /* * Author: SilentSpike - * Sets the spectator camera attributes as desired - * All values are optional and default to no change + * Sets the spectator camera attributes as desired. Local effect. + * All values are optional and default to no change. * * Arguments: * 0: Camera mode * - 0: Free * - 1: First Person * - 2: Follow - * 1: Camera focus (objNull for random) + * 1: Camera focus * 2: Camera vision * - -2: Normal * - -1: Night vision * - 0: Thermal white hot * - 1: Thermal black hot + * - ... * 3: Camera position (ATL) * 4: Camera direction (0 - 360) * + * Notes: + * - If camera mode is not free and camera has no focus, random will be used + * - To remove any current camera focus in free cam, use objNull + * * Return Value: * None * @@ -41,10 +46,13 @@ if (count _this > 5) then { WARNING("Use of ""tilt"", ""zoom"" and ""speed"" camera attributes is no longer supported"); }; -// For null focus or unit camera mode with no focus, select randomly -if (!isNil "_mode" || (!isNil "_focus" && {isNull _focus})) then { - if ((isNil "_mode" || {_mode != MODE_FREE}) && (isNil "_focus" || {isNull _focus})) then { - _focus = selectRandom ([] call FUNC(getTargetEntities)); +// For unit camera mode with no focus, select randomly +if !(isNil "_mode" || {_mode == MODE_FREE}) then { + if (isNil "_focus" || {isNull _focus}) then { + _focus = ([] call FUNC(getTargetEntities)) select 0; + + // Handle case where no available entities + if (isNil "_focus") then { _focus = objNull; }; }; }; From 2bf504a7caf4de8497c5b9b3823a2a747bb5d239 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Wed, 24 May 2017 09:23:19 +0100 Subject: [PATCH 050/198] Note explicitly the use of `player` --- addons/spectator/XEH_postInit.sqf | 23 ++++++++++--------- .../spectator/functions/fnc_setSpectator.sqf | 2 +- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/addons/spectator/XEH_postInit.sqf b/addons/spectator/XEH_postInit.sqf index a76b621c2da..81f8e753732 100644 --- a/addons/spectator/XEH_postInit.sqf +++ b/addons/spectator/XEH_postInit.sqf @@ -13,14 +13,15 @@ if (isServer) then { [QGVAR(stageSpectator), FUNC(stageSpectator)] call CBA_fnc_addEventHandler; -// Initalise virtual spectators -[QGVAR(virtual),"initpost",{ - if !(GVAR(isSet)) then { - // Delay until local player is fully initalized - [ - { !isNil { player } && { !isNull player } }, - { if (player == _this) then {[true] call FUNC(setSpectator)}; }, - _this select 0 - ] call CBA_fnc_waitUntilAndExecute; - }; -},false,[],true] call CBA_fnc_addClassEventHandler; +// Delay until local player (must not be ACE_Player) is fully initalized +[ + { !isNil { player } && { !isNull player } }, + { + // Initalise virtual spectator players (must not be ACE_Player) + [QGVAR(virtual),"initpost",{ + if !(GVAR(isSet)) then { + if (player == (_this select 0)) then { [true] call FUNC(setSpectator) }; + }; + },false,[],true] call CBA_fnc_addClassEventHandler; + },[] +] call CBA_fnc_waitUntilAndExecute; diff --git a/addons/spectator/functions/fnc_setSpectator.sqf b/addons/spectator/functions/fnc_setSpectator.sqf index 74248bc2c8f..ef321fdef76 100644 --- a/addons/spectator/functions/fnc_setSpectator.sqf +++ b/addons/spectator/functions/fnc_setSpectator.sqf @@ -32,7 +32,7 @@ GVAR(uiForced) = _force; // Exit if no change if (_set isEqualTo GVAR(isSet)) exitWith {}; -// Delay if local player is not fully initalized +// Delay if local player (must not be ACE_Player) is not fully initalized if (isNil { player } || { isNull player }) exitWith { [ { !isNil { player } && { !isNull player } }, From 5912b1cb32fb7c9b0c78ab9f38559df2943f9c3b Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Wed, 24 May 2017 09:38:18 +0100 Subject: [PATCH 051/198] Remove unused base classes --- addons/spectator/ui.hpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/addons/spectator/ui.hpp b/addons/spectator/ui.hpp index 2186475cc32..dd3fccbaed6 100644 --- a/addons/spectator/ui.hpp +++ b/addons/spectator/ui.hpp @@ -1,17 +1,12 @@ -class RscActiveText; class RscButton; -class RscButtonMenu; -class RscCombo; class RscControlsGroup; class RscControlsGroupNoScrollbars; -class RscListBox; class RscListNBox { class ScrollBar; }; class RscMapControl; class RscPicture; class RscPictureKeepAspect; -class RscStructuredText; class RscText; class RscToolbox; class RscTree; From 209549b493046562f130714f9f7eab47b527dd64 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Wed, 24 May 2017 10:41:36 +0100 Subject: [PATCH 052/198] Improve seagull culling --- .../spectator/functions/fnc_compat_spectatorBI.sqf | 11 ++++++++--- addons/spectator/functions/fnc_respawnTemplate.sqf | 14 ++++++-------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/addons/spectator/functions/fnc_compat_spectatorBI.sqf b/addons/spectator/functions/fnc_compat_spectatorBI.sqf index 3bdb5f2215c..dd88c936a30 100644 --- a/addons/spectator/functions/fnc_compat_spectatorBI.sqf +++ b/addons/spectator/functions/fnc_compat_spectatorBI.sqf @@ -13,7 +13,8 @@ private _respawn = getMissionConfigValue ["respawn",0]; if (_respawn isEqualType "") then { _respawn = ["","bird","","","group","side"] find (toLower _respawn); }; if !(_respawn in [1,4,5]) exitWith {}; -private _templates = getMissionConfigValue ["respawnTemplates",[]]; +// Remember to check for side specific templates +private _templates = getMissionConfigValue [["respawnTemplates",side group player] joinString "",getMissionConfigValue ["respawnTemplates",[]]]; if !(QUOTE(ADDON) in _templates) exitWith {}; // Kill BI spectator @@ -23,8 +24,12 @@ if !(QUOTE(ADDON) in _templates) exitWith {}; [true] call FUNC(setSpectator); // Delete the seagull that spawns (not actually the player, a CfgNonAIVehicles object) -// This could delete seagulls created by a wildlife module (TODO: Find a more accurate method of getting the exact seagull) -{ if (_x isKindOf "seagull") then {deleteVehicle _x;}; } forEach (nearestObjects [player, [], 250]); +// Respawn type 1 is handled in the template where seagull is passed as paremeter +if (_respawn in [4,5]) then { + // This could delete seagulls created by a wildlife module (a necessary evil) + // TODO: Try to find seagull position and delete more accurately with reduced radius + { if (_x isKindOf "seagull") then {deleteVehicle _x;}; } forEach (nearestObjects [player, [], 250]); +}; // Switch to a virtual unit so draw3D continues to work private _grp = createGroup [sideLogic, true]; diff --git a/addons/spectator/functions/fnc_respawnTemplate.sqf b/addons/spectator/functions/fnc_respawnTemplate.sqf index ae2cc1ef574..7fd2b3f4328 100644 --- a/addons/spectator/functions/fnc_respawnTemplate.sqf +++ b/addons/spectator/functions/fnc_respawnTemplate.sqf @@ -21,18 +21,16 @@ params [["_newCorpse",objNull,[objNull]], ["_oldKiller",objNull,[objNull]], ["_respawn",0,[0]], ["_respawnDelay",0,[0]]]; -// These respawn types use engine driven magic we don't want to mess with here // Compatibility handled via spectator display XEH -if (_respawn in [0,1,4,5]) exitWith {}; +if (_respawn in [0,1,4,5]) exitWith { + + // This only applies to respawn type 1 (BIRD/SPECTATOR) + // Remove the seagull (not actually the player, a CfgNonAIVehicles object) + if (typeOf _newCorpse == "seagull") then { deleteVehicle _newCorpse; }; +}; // Negligible respawn delay can result in entering spectator after respawn if (playerRespawnTime <= 1) exitWith {}; -// Some environment information can be used for the initial camera attributes -private _nvg = [VISION_NORM, VISION_NVG] select (sunOrMoon < 1); - -// Prepare camera attributes before entering spectator -[nil, nil, _nvg, nil, nil] call FUNC(setCameraAttributes); - // Enter/exit spectator based on whether killed/respawned [!alive _newCorpse] call FUNC(setSpectator); From 8a8503deb36c53d3996527c6772e8e6bde1f270d Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Thu, 25 May 2017 15:23:18 +0100 Subject: [PATCH 053/198] Add projectile drawing to vehicles --- addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf b/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf index b7931cb7759..de7572dc988 100644 --- a/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf +++ b/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf @@ -126,11 +126,11 @@ private _entitiesToDraw = []; }; // Track entities themselves for use with fired EH - _entitiesToDraw pushBack _x; + _entitiesToDraw pushBack _vehicle; // Add fired EH for drawing and icon highlighting - if (GETVAR(_x,GVAR(firedEH),-1) == -1) then { - SETVAR(_x,GVAR(firedEH),_x addEventHandler [ARR_2("Fired",{_this call FUNC(handleFired)})]); + if (GETVAR(_vehicle,GVAR(firedEH),-1) == -1) then { + SETVAR(_vehicle,GVAR(firedEH),_vehicle addEventHandler [ARR_2("Fired",{_this call FUNC(handleFired)})]); }; nil // Speed loop From fe2d5922cf1caa96aaf50a528895faa772f436ae Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Thu, 25 May 2017 15:25:28 +0100 Subject: [PATCH 054/198] Fix same tab selection clearing list --- addons/spectator/functions/fnc_ui_handleTabSelected.sqf | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/addons/spectator/functions/fnc_ui_handleTabSelected.sqf b/addons/spectator/functions/fnc_ui_handleTabSelected.sqf index d1790a9391e..21bf103dcf1 100644 --- a/addons/spectator/functions/fnc_ui_handleTabSelected.sqf +++ b/addons/spectator/functions/fnc_ui_handleTabSelected.sqf @@ -9,8 +9,9 @@ params ["_ctrl", "_index"]; -// Track current list type -GVAR(uiListType) = [LIST_ENTITIES, LIST_LOCATIONS] select _index; +// Nothing to do if it's the same tab +private _newType = [LIST_ENTITIES, LIST_LOCATIONS] select _index; +if (GVAR(uiListType) == _newType) exitWith {}; // Clear list tvClear CTRL_LIST; @@ -21,3 +22,6 @@ if (_index == 0) then { } else { [] call FUNC(ui_updateListLocations); }; + +// Track current list type +GVAR(uiListType) = _newType; From dba15419d176f933095ef72698ee515d917467e9 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Thu, 25 May 2017 15:27:35 +0100 Subject: [PATCH 055/198] Make projectile lines last 1 frame longer --- addons/spectator/functions/fnc_ui_draw3D.sqf | 24 ++++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/addons/spectator/functions/fnc_ui_draw3D.sqf b/addons/spectator/functions/fnc_ui_draw3D.sqf index 4488658f363..3a6ea3ca828 100644 --- a/addons/spectator/functions/fnc_ui_draw3D.sqf +++ b/addons/spectator/functions/fnc_ui_draw3D.sqf @@ -110,22 +110,22 @@ if !(GVAR(uiMapVisible)) then { DEC(_newestIndex); }; - // Draw all projectile segments - private _oldLoc = []; - { - _x params ["_locNew", "_colorNew"]; - if !(_oldLoc isEqualTo []) then { - drawLine3D [_oldLoc, _locNew, _colorNew]; - }; - _oldLoc = _locNew; - - nil // Speed loop - } count _segments; - // Store projectiles for next frame _projectilesNew pushBack [_projectile, _segments]; }; + // Draw all projectile segments + private _oldLoc = []; + { + _x params ["_locNew", "_colorNew"]; + if !(_oldLoc isEqualTo []) then { + drawLine3D [_oldLoc, _locNew, _colorNew]; + }; + _oldLoc = _locNew; + + nil // Speed loop + } count _segments; + nil // Speed loop } count GVAR(projectilesToDraw); GVAR(projectilesToDraw) = _projectilesNew; From e533f85a4875ca9b3e56d84956f7f237760dadb0 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Thu, 25 May 2017 17:41:36 +0100 Subject: [PATCH 056/198] Add true zeus compatibility - Re-opens spectator when zeus closes - Transfers the curator module over in the respawn template - Only handle uiForced in setSpectator to avoid issues with esc key - Add safety to setFocus so that it only updates the UI when applicable --- addons/spectator/CfgEventHandlers.hpp | 3 +++ addons/spectator/XEH_PREP.hpp | 1 + addons/spectator/XEH_postInit.sqf | 6 ++++++ .../functions/fnc_compat_counter.sqf | 2 +- .../functions/fnc_compat_spectatorBI.sqf | 8 +++++++- .../spectator/functions/fnc_compat_zeus.sqf | 20 +++++++++++++++++++ .../functions/fnc_respawnTemplate.sqf | 2 +- .../functions/fnc_setCameraAttributes.sqf | 2 ++ addons/spectator/functions/fnc_setFocus.sqf | 9 ++++++--- .../spectator/functions/fnc_setSpectator.sqf | 3 +++ addons/spectator/functions/fnc_ui.sqf | 1 - .../functions/fnc_ui_handleKeyDown.sqf | 10 ++++------ 12 files changed, 54 insertions(+), 13 deletions(-) create mode 100644 addons/spectator/functions/fnc_compat_zeus.sqf diff --git a/addons/spectator/CfgEventHandlers.hpp b/addons/spectator/CfgEventHandlers.hpp index 273e7d5849a..7abe7ca4e3c 100644 --- a/addons/spectator/CfgEventHandlers.hpp +++ b/addons/spectator/CfgEventHandlers.hpp @@ -24,4 +24,7 @@ class Extended_DisplayLoad_EventHandlers { class RscDisplayEGSpectator { ADDON = QUOTE(_this call FUNC(compat_spectatorBI)); }; + class RscDisplayCurator { + ADDON = QUOTE(_this call FUNC(compat_zeus)); + }; }; diff --git a/addons/spectator/XEH_PREP.hpp b/addons/spectator/XEH_PREP.hpp index 621df7f0238..95e5b219bb1 100644 --- a/addons/spectator/XEH_PREP.hpp +++ b/addons/spectator/XEH_PREP.hpp @@ -36,6 +36,7 @@ PREP(ui_updateWidget); // Utility functions PREP(compat_counter); PREP(compat_spectatorBI); +PREP(compat_zeus); PREP(getTargetEntities); PREP(getTargetGroups); PREP(handleFired); diff --git a/addons/spectator/XEH_postInit.sqf b/addons/spectator/XEH_postInit.sqf index 81f8e753732..3327a93cdaa 100644 --- a/addons/spectator/XEH_postInit.sqf +++ b/addons/spectator/XEH_postInit.sqf @@ -9,6 +9,12 @@ if (isServer) then { GVAR(channel) = radioChannelCreate [[0.729,0.149,0.098,1],"Spectator","Spectator (%UNIT_NAME)",[]]; publicVariable QGVAR(channel); + + // Used by the template to transfer zeus to virtual unit + [QGVAR(transferZeus),{ + unassignCurator (_this select 1); + (_this select 0) assignCurator (_this select 1); + }] call CBA_fnc_addEventHandler; }; [QGVAR(stageSpectator), FUNC(stageSpectator)] call CBA_fnc_addEventHandler; diff --git a/addons/spectator/functions/fnc_compat_counter.sqf b/addons/spectator/functions/fnc_compat_counter.sqf index ab2bad14fd9..0bf9e32944d 100644 --- a/addons/spectator/functions/fnc_compat_counter.sqf +++ b/addons/spectator/functions/fnc_compat_counter.sqf @@ -2,7 +2,7 @@ * Author: SilentSpike * Handles integrating the counter respawn template into the spectator UI * - * Should be called from both counter display XEH and spectator init to account for arbitrary order + * Should be called from both RscRespawnCounter XEH and spectator init to account for arbitrary order * * Public: No */ diff --git a/addons/spectator/functions/fnc_compat_spectatorBI.sqf b/addons/spectator/functions/fnc_compat_spectatorBI.sqf index dd88c936a30..b6718e461dc 100644 --- a/addons/spectator/functions/fnc_compat_spectatorBI.sqf +++ b/addons/spectator/functions/fnc_compat_spectatorBI.sqf @@ -2,7 +2,7 @@ * Author: SilentSpike * Handles "compatibility" (i.e. override) for BI spectator respawn types 1, 4 & 5 * - * Called from the EG spectator display XEH + * Called from the RscDisplayEGSpectator XEH * * Public: No */ @@ -35,4 +35,10 @@ if (_respawn in [4,5]) then { private _grp = createGroup [sideLogic, true]; private _virtual = _grp createUnit [QGVAR(virtual),[0,0,0],[],0,""]; +// Transfer assigned zeus if applicable +private _zeus = getAssignedCuratorLogic player; +if !(isNull _zeus) then { + [QGVAR(transferZeus), [_virtual,_zeus]] call CBA_fnc_serverEvent; +}; + selectPlayer _virtual; diff --git a/addons/spectator/functions/fnc_compat_zeus.sqf b/addons/spectator/functions/fnc_compat_zeus.sqf new file mode 100644 index 00000000000..c111d81eb27 --- /dev/null +++ b/addons/spectator/functions/fnc_compat_zeus.sqf @@ -0,0 +1,20 @@ +/* + * Author: SilentSpike + * Handles compatibility with curator interface (i.e. re-opens spectator if applicable) + * + * Called from the RscDisplayCurator XEH + * + * Public: No + */ + +#include "script_component.hpp" + +params ["_display"]; + +_display displayAddEventHandler ["Unload",{ + // Only re-open if still a spectator + if (GVAR(isSet)) then { + // Display must be opened next frame to prevent game crash + [{ [true] call FUNC(ui) }] call CBA_fnc_execNextFrame; + }; +}]; diff --git a/addons/spectator/functions/fnc_respawnTemplate.sqf b/addons/spectator/functions/fnc_respawnTemplate.sqf index 7fd2b3f4328..9e60f9f9e25 100644 --- a/addons/spectator/functions/fnc_respawnTemplate.sqf +++ b/addons/spectator/functions/fnc_respawnTemplate.sqf @@ -1,6 +1,6 @@ /* * Author: SilentSpike - * The ace_spectator respawn template, compatible with types 2 & 3 + * The ace_spectator respawn template, compatible with types 1,2,3,4 & 5 * * Handles killed and respawned events as per BI's respawn framework: * https://community.bistudio.com/wiki/Arma_3_Respawn diff --git a/addons/spectator/functions/fnc_setCameraAttributes.sqf b/addons/spectator/functions/fnc_setCameraAttributes.sqf index 15b3b042b02..fccd0320114 100644 --- a/addons/spectator/functions/fnc_setCameraAttributes.sqf +++ b/addons/spectator/functions/fnc_setCameraAttributes.sqf @@ -49,6 +49,8 @@ if (count _this > 5) then { // For unit camera mode with no focus, select randomly if !(isNil "_mode" || {_mode == MODE_FREE}) then { if (isNil "_focus" || {isNull _focus}) then { + + //TODO: Check for camTarget _focus = ([] call FUNC(getTargetEntities)) select 0; // Handle case where no available entities diff --git a/addons/spectator/functions/fnc_setFocus.sqf b/addons/spectator/functions/fnc_setFocus.sqf index 4e83f71316d..7d365849078 100644 --- a/addons/spectator/functions/fnc_setFocus.sqf +++ b/addons/spectator/functions/fnc_setFocus.sqf @@ -30,7 +30,10 @@ if (_newFocus != GVAR(camTarget) && { !(isNull _newFocus && { isNull GVAR(camTar // GVAR used to prevent camera switching and UI info on locations GVAR(camOnLocation) = _focusIsLocation; - [] call FUNC(ui_updateListFocus); - [] call FUNC(ui_updateWidget); - [] call FUNC(ui_updateHelp); + // Only update display if it exists, this function is called from some other places + if !(isNull SPEC_DISPLAY) then { + [] call FUNC(ui_updateListFocus); + [] call FUNC(ui_updateWidget); + [] call FUNC(ui_updateHelp); + }; }; diff --git a/addons/spectator/functions/fnc_setSpectator.sqf b/addons/spectator/functions/fnc_setSpectator.sqf index ef321fdef76..8eaa0ba4010 100644 --- a/addons/spectator/functions/fnc_setSpectator.sqf +++ b/addons/spectator/functions/fnc_setSpectator.sqf @@ -73,6 +73,9 @@ if (_set) then { // Kill the display (ensure main display exists, handles edge case where spectator turned off before display exists) [{ !isNull MAIN_DISPLAY },{ [false] call FUNC(ui) }] call CBA_fnc_waitUntilAndExecute; + // This variable doesn't matter anymore + GVAR(uiForced) = nil; + // Terminate camera [false] call FUNC(cam); diff --git a/addons/spectator/functions/fnc_ui.sqf b/addons/spectator/functions/fnc_ui.sqf index 79af1dfed94..f8da0d6f41d 100644 --- a/addons/spectator/functions/fnc_ui.sqf +++ b/addons/spectator/functions/fnc_ui.sqf @@ -106,7 +106,6 @@ if (_init) then { SPEC_DISPLAY closeDisplay 1; // Stop tracking everything - GVAR(uiForced) = nil; GVAR(uiVisible) = nil; GVAR(uiHelpVisible) = nil; GVAR(uiMapVisible) = nil; diff --git a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf index 9d23d14c1df..ad5b61c4010 100644 --- a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf +++ b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf @@ -153,6 +153,7 @@ if (_key == DIK_I) exitWith { }; // Handle getting next focus target +// TODO: These keys if (_key == DIK_RIGHT) exitWith { [true] call FUNC(switchFocus); true @@ -166,14 +167,11 @@ if (_key == DIK_LEFT) exitWith { // If the zeus key is pressed and unit is curator, open zeus interface if ((_key in (actionKeys "CuratorInterface")) && {!isNull (getAssignedCuratorLogic player)}) exitWith { - // Disable drawing while in zeus - GVAR(drawUnits) = false; - GVAR(drawProjectiles) = false; - - // TODO: make this truly compatible - SPEC_DISPLAY closeDisplay 1; + // Close the UI and disable camera input + [false] call FUNC(ui); GVAR(camera) camCommand "manual off"; + // Display XEH handles re-opening openCuratorInterface; true }; From 967292ae48cd70ec865b4ef2519860244d669252 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 26 May 2017 09:23:34 +0100 Subject: [PATCH 057/198] Fix player moving in FPP --- .../spectator/functions/fnc_setSpectator.sqf | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/addons/spectator/functions/fnc_setSpectator.sqf b/addons/spectator/functions/fnc_setSpectator.sqf index 8eaa0ba4010..8696f999819 100644 --- a/addons/spectator/functions/fnc_setSpectator.sqf +++ b/addons/spectator/functions/fnc_setSpectator.sqf @@ -1,7 +1,6 @@ /* * Author: SilentSpike * Enter/exit spectator mode for the local player - * Handles the UI and camera, acts independent of player entity * * Client will be able to communicate in ACRE/TFAR as appropriate * @@ -25,13 +24,6 @@ params [["_set",true,[true]], ["_force",true,[true]]]; // Only clients can be spectators if !(hasInterface) exitWith {}; -// Let the display know if it is or isn't forced -// Could be switched after spectator has already started -GVAR(uiForced) = _force; - -// Exit if no change -if (_set isEqualTo GVAR(isSet)) exitWith {}; - // Delay if local player (must not be ACE_Player) is not fully initalized if (isNil { player } || { isNull player }) exitWith { [ @@ -41,11 +33,25 @@ if (isNil { player } || { isNull player }) exitWith { ] call CBA_fnc_waitUntilAndExecute; }; -// Handle common addon audio +// Let the display know if it is or isn't forced +// Could be switched after spectator has already started +GVAR(uiForced) = _force; + +// Prevent player object from moving while in FPP +if (alive player) then { + player enableSimulation !_set; +}; + +// Exit if no change (everything above this may need to be ran again) +if (_set isEqualTo GVAR(isSet)) exitWith {}; + +// Remove any current deafness and disable volume updates while spectating if (["ace_hearing"] call EFUNC(common,isModLoaded)) then { EGVAR(hearing,disableVolumeUpdate) = _set; EGVAR(hearing,deafnessDV) = 0; }; + +// Toggle spectator mode in 3rd party radio addons if (["acre_sys_radio"] call EFUNC(common,isModLoaded)) then {[_set] call acre_api_fnc_setSpectator}; if (["task_force_radio"] call EFUNC(common,isModLoaded)) then {[player, _set] call TFAR_fnc_forceSpectator}; From e9dba0cd034bdace48cf68a6fd1f27f5751aca5c Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 26 May 2017 09:40:54 +0100 Subject: [PATCH 058/198] Fix zeus transfer and re-opening --- addons/spectator/XEH_postInit.sqf | 11 +++++++++-- addons/spectator/functions/fnc_compat_zeus.sqf | 4 ++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/addons/spectator/XEH_postInit.sqf b/addons/spectator/XEH_postInit.sqf index 3327a93cdaa..d077c622ed6 100644 --- a/addons/spectator/XEH_postInit.sqf +++ b/addons/spectator/XEH_postInit.sqf @@ -5,15 +5,22 @@ GVAR(availableVisions) = [[-2,-1,0,1], [-2,-1], [-2,0,1], [-2]] select GVAR(restrictVisions); }] call CBA_fnc_addEventHandler; -// Create a radio channel for any spectators to text chat in if (isServer) then { + // Create a radio channel for any spectators to text chat in GVAR(channel) = radioChannelCreate [[0.729,0.149,0.098,1],"Spectator","Spectator (%UNIT_NAME)",[]]; publicVariable QGVAR(channel); // Used by the template to transfer zeus to virtual unit + // Commands must be ran on server [QGVAR(transferZeus),{ unassignCurator (_this select 1); - (_this select 0) assignCurator (_this select 1); + + // Can only re-assign when ready + [ + {isNull getAssignedCuratorUnit (_this select 0)}, + {(_this select 0) assignCurator (_this select 1)}, + _this + ] call CBA_fnc_waitUntilAndExecute; }] call CBA_fnc_addEventHandler; }; diff --git a/addons/spectator/functions/fnc_compat_zeus.sqf b/addons/spectator/functions/fnc_compat_zeus.sqf index c111d81eb27..a26e5d88d2c 100644 --- a/addons/spectator/functions/fnc_compat_zeus.sqf +++ b/addons/spectator/functions/fnc_compat_zeus.sqf @@ -12,8 +12,8 @@ params ["_display"]; _display displayAddEventHandler ["Unload",{ - // Only re-open if still a spectator - if (GVAR(isSet)) then { + // Only re-open if still a spectator (and not remote-controlling) + if (GVAR(isSet) && {isNull (GETMVAR(bis_fnc_moduleRemoteControl_unit,objNull))}) then { // Display must be opened next frame to prevent game crash [{ [true] call FUNC(ui) }] call CBA_fnc_execNextFrame; }; From 0b71edfc70f7a5ab1f1035be755908a31212a544 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 26 May 2017 09:51:43 +0100 Subject: [PATCH 059/198] Consolidate icon definitions --- addons/spectator/functions/fnc_ui_draw3D.sqf | 28 +++++++++---------- .../functions/fnc_ui_handleMapDraw.sqf | 1 - .../functions/fnc_ui_updateIconsToDraw.sqf | 2 -- addons/spectator/script_component.hpp | 5 ++-- 4 files changed, 16 insertions(+), 20 deletions(-) diff --git a/addons/spectator/functions/fnc_ui_draw3D.sqf b/addons/spectator/functions/fnc_ui_draw3D.sqf index 3a6ea3ca828..11dd5e5f311 100644 --- a/addons/spectator/functions/fnc_ui_draw3D.sqf +++ b/addons/spectator/functions/fnc_ui_draw3D.sqf @@ -7,8 +7,6 @@ #include "script_component.hpp" #define HEIGHT_OFFSET 1.5 -#define GRENADE_ICON "A3\Ui_f\data\IGUI\Cfg\HoldActions\holdAction_connect_ca.paa" -#define ICON_BACKGROUND_UNIT "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\UnitName_ca.paa" BEGIN_COUNTER(updateCursor); private _camTarget = GVAR(camTarget); @@ -112,19 +110,19 @@ if !(GVAR(uiMapVisible)) then { // Store projectiles for next frame _projectilesNew pushBack [_projectile, _segments]; - }; - - // Draw all projectile segments - private _oldLoc = []; - { - _x params ["_locNew", "_colorNew"]; - if !(_oldLoc isEqualTo []) then { - drawLine3D [_oldLoc, _locNew, _colorNew]; - }; - _oldLoc = _locNew; - nil // Speed loop - } count _segments; + // Draw all projectile segments + private _oldLoc = []; + { + _x params ["_locNew", "_colorNew"]; + if !(_oldLoc isEqualTo []) then { + drawLine3D [_oldLoc, _locNew, _colorNew]; + }; + _oldLoc = _locNew; + + nil // Speed loop + } count _segments; + }; nil // Speed loop } count GVAR(projectilesToDraw); @@ -135,7 +133,7 @@ if !(GVAR(uiMapVisible)) then { private _grenadeVelocityMagnitude = vectorMagnitude velocity _x; // Draw grenade (rotate icon to represent spinning) - drawIcon3D [GRENADE_ICON, [1,0,0,1], getPosVisual _x, 0.6, 0.6, if (_grenadeVelocityMagnitude > 0) then { time * 100 * _grenadeVelocityMagnitude } else { 0 }, "", 0, 0.05, "TahomaB"]; + drawIcon3D [ICON_GRENADE, [1,0,0,1], getPosVisual _x, 0.6, 0.6, if (_grenadeVelocityMagnitude > 0) then { time * 100 * _grenadeVelocityMagnitude } else { 0 }, "", 0, 0.05, "TahomaB"]; // Store grenade for next frame _grenadesNew pushBack _x; diff --git a/addons/spectator/functions/fnc_ui_handleMapDraw.sqf b/addons/spectator/functions/fnc_ui_handleMapDraw.sqf index daa7724097f..d6c1ec4f28c 100644 --- a/addons/spectator/functions/fnc_ui_handleMapDraw.sqf +++ b/addons/spectator/functions/fnc_ui_handleMapDraw.sqf @@ -7,7 +7,6 @@ #include "script_component.hpp" #define MAP_MIN_ENTITY_DISTANCE 30 -#define ICON_CAMERA "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\cameraTexture_ca.paa" // Moved timer into map controls group, update here BEGIN_COUNTER(updateTimer); diff --git a/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf b/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf index de7572dc988..37ee1c0cf5c 100644 --- a/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf +++ b/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf @@ -7,8 +7,6 @@ #include "script_component.hpp" -#define ICON_UNIT "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\UnitIcon_ca.paa" - private _iconsToDraw = []; private _entitiesToDraw = []; diff --git a/addons/spectator/script_component.hpp b/addons/spectator/script_component.hpp index 40a9ffa29e9..03c78773771 100644 --- a/addons/spectator/script_component.hpp +++ b/addons/spectator/script_component.hpp @@ -57,13 +57,14 @@ #define ACE_REVIVE "ACE_isUnconscious" #define NEEDS_REVIVE(unit) (unit getVariable [ACE_REVIVE,false]) || {unit getVariable [BIS_REVIVE,false]} -// Icons used in the UI -#define ICON_BACKGROUND "A3\Ui_f\data\IGUI\Cfg\simpleTasks\background1_ca.paa" +// Icons used in the UI/drawing #define ICON_DEAD "a3\Ui_F_Curator\Data\CfgMarkers\kia_ca.paa" #define ICON_GROUP "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\GroupIcon_ca.paa" +#define ICON_GRENADE "A3\Ui_f\data\IGUI\Cfg\HoldActions\holdAction_connect_ca.paa" #define ICON_UNIT "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\UnitIcon_ca.paa" #define ICON_REVIVE "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\ReviveIcon_ca.paa" #define ICON_BACKGROUND_UNIT "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\UnitName_ca.paa" +#define ICON_CAMERA "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\cameraTexture_ca.paa" #define CAM_ICON_FREE "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\FreeSelected.paa" #define CAM_ICON_FREE_SELECTED "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\Free.paa" #define CAM_ICON_FOLLOW "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\FollowSelected.paa" From 466a05afb90236ed7d9b6cc553f271fed794eaaa Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 26 May 2017 10:03:53 +0100 Subject: [PATCH 060/198] Fix AI setting for player groups --- addons/spectator/functions/fnc_getTargetGroups.sqf | 3 +-- addons/spectator/functions/fnc_ui_updateListEntities.sqf | 7 +++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/addons/spectator/functions/fnc_getTargetGroups.sqf b/addons/spectator/functions/fnc_getTargetGroups.sqf index 65eed22b1a7..c73ad9d2ad9 100644 --- a/addons/spectator/functions/fnc_getTargetGroups.sqf +++ b/addons/spectator/functions/fnc_getTargetGroups.sqf @@ -13,8 +13,7 @@ private _groups = []; if (GVAR(enableAI)) then { _groups = allGroups; } else { - private _players = [] call CBA_fnc_players; - { _groups pushBackUnique (group _x); } forEach _players; + _groups = ([] call CBA_fnc_players) apply {group _x}; }; // Side and number of units filter diff --git a/addons/spectator/functions/fnc_ui_updateListEntities.sqf b/addons/spectator/functions/fnc_ui_updateListEntities.sqf index f869f772cd3..6ec9712e083 100644 --- a/addons/spectator/functions/fnc_ui_updateListEntities.sqf +++ b/addons/spectator/functions/fnc_ui_updateListEntities.sqf @@ -27,10 +27,9 @@ private _blacklist = GVAR(unitBlacklist); // Validate units { if ( - simulationEnabled _x && - {!isObjectHidden _x} && - {simulationEnabled vehicle _x} && - {!isObjectHidden vehicle _x} && + (GVAR(enableAI) || {isPlayer _x}) && + {simulationEnabled _x && {simulationEnabled vehicle _x}} && + { !isObjectHidden _x && {!isObjectHidden vehicle _x} } && {!(_x in _blacklist)} ) then { _newUnits pushBack ([_x] call BIS_fnc_objectVar); From dd168b3397b35bf7a07a570ed417d67501863889 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 26 May 2017 10:46:08 +0100 Subject: [PATCH 061/198] Improve handling of alive spectators Instead of disabling simulation, just stage them automatically if alive. --- .../spectator/functions/fnc_setSpectator.sqf | 24 +++++++++---------- .../functions/fnc_stageSpectator.sqf | 19 +++++++++++++-- 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/addons/spectator/functions/fnc_setSpectator.sqf b/addons/spectator/functions/fnc_setSpectator.sqf index 8696f999819..2a9a7c504bf 100644 --- a/addons/spectator/functions/fnc_setSpectator.sqf +++ b/addons/spectator/functions/fnc_setSpectator.sqf @@ -24,6 +24,13 @@ params [["_set",true,[true]], ["_force",true,[true]]]; // Only clients can be spectators if !(hasInterface) exitWith {}; +// Let the display know if it is or isn't forced +// Could be switched after spectator has already started +GVAR(uiForced) = _force; + +// Exit if no change (everything above this may need to be ran again) +if (_set isEqualTo GVAR(isSet)) exitWith {}; + // Delay if local player (must not be ACE_Player) is not fully initalized if (isNil { player } || { isNull player }) exitWith { [ @@ -33,18 +40,6 @@ if (isNil { player } || { isNull player }) exitWith { ] call CBA_fnc_waitUntilAndExecute; }; -// Let the display know if it is or isn't forced -// Could be switched after spectator has already started -GVAR(uiForced) = _force; - -// Prevent player object from moving while in FPP -if (alive player) then { - player enableSimulation !_set; -}; - -// Exit if no change (everything above this may need to be ran again) -if (_set isEqualTo GVAR(isSet)) exitWith {}; - // Remove any current deafness and disable volume updates while spectating if (["ace_hearing"] call EFUNC(common,isModLoaded)) then { EGVAR(hearing,disableVolumeUpdate) = _set; @@ -100,6 +95,11 @@ if (_set) then { }; }; +// Stage player if alive to prevent movement and death +if (alive player) then { + [player, _set] call FUNC(stageSpectator); +}; + // Reset interruptions GVAR(interrupts) = []; diff --git a/addons/spectator/functions/fnc_stageSpectator.sqf b/addons/spectator/functions/fnc_stageSpectator.sqf index d61fa84992d..f56a70c37e7 100644 --- a/addons/spectator/functions/fnc_stageSpectator.sqf +++ b/addons/spectator/functions/fnc_stageSpectator.sqf @@ -38,20 +38,35 @@ _unit enableSimulation !_set; if (_set) then { // Position should only be saved on first entry if !(GETVAR(_unit,GVAR(isStaged),false)) then { - GVAR(oldPos) = getPosATL _unit; + SETVAR(_unit,GVAR(preStagePos),getPosATL _unit); + + // Handle players respawning via pause menu (or script) + private _id = _unit addEventHandler ["Respawn",{ + params ["_unit"]; + [_unit] call FUNC(stageSpectator); + }]; + + SETVAR(_unit,GVAR(respawnEH),_id); }; // Ghosts can't talk [_unit, QGVAR(isStaged)] call EFUNC(common,hideUnit); [_unit, QGVAR(isStaged)] call EFUNC(common,muteUnit); + // Position defaults to [0,0,0] if marker doesn't exist _unit setPos (markerPos QGVAR(respawn)); } else { // Physical beings can talk [_unit, QGVAR(isStaged)] call EFUNC(common,unhideUnit); [_unit, QGVAR(isStaged)] call EFUNC(common,unmuteUnit); - _unit setPosATL GVAR(oldPos); + // Restore original position and delete stored value + _unit setPosATL (GETVAR(_unit,GVAR(preStagePos),getPosATL _unit)); + SETVAR(_unit,GVAR(preStagePos),nil); + + // Remove the respawn handling + _unit removeEventHandler ["Respawn",GETVAR(_unit,GVAR(respawnEH),-1)]; + SETVAR(_unit,GVAR(respawnEH),nil); }; // Spectators ignore damage (vanilla and ace_medical) From e8f801771b470f6e71706b2ff3688ca56ef106c5 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 26 May 2017 11:07:42 +0100 Subject: [PATCH 062/198] Fix respawn template for types 2 & 3 --- addons/spectator/functions/fnc_respawnTemplate.sqf | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/spectator/functions/fnc_respawnTemplate.sqf b/addons/spectator/functions/fnc_respawnTemplate.sqf index 9e60f9f9e25..f0f8dba0207 100644 --- a/addons/spectator/functions/fnc_respawnTemplate.sqf +++ b/addons/spectator/functions/fnc_respawnTemplate.sqf @@ -23,14 +23,14 @@ params [["_newCorpse",objNull,[objNull]], ["_oldKiller",objNull,[objNull]], ["_r // Compatibility handled via spectator display XEH if (_respawn in [0,1,4,5]) exitWith { - // This only applies to respawn type 1 (BIRD/SPECTATOR) // Remove the seagull (not actually the player, a CfgNonAIVehicles object) if (typeOf _newCorpse == "seagull") then { deleteVehicle _newCorpse; }; }; -// Negligible respawn delay can result in entering spectator after respawn -if (playerRespawnTime <= 1) exitWith {}; - -// Enter/exit spectator based on whether killed/respawned -[!alive _newCorpse] call FUNC(setSpectator); +// If unit was staged then they entered spectator before dying, ignore +if !(GETVAR(_newCorpse,GVAR(isStaged),false)) then { + // Negligible respawn delay can result in entering spectator after respawn + // So we just use this value rather than living state of the unit + [playerRespawnTime > 1] call FUNC(setSpectator); +}; From 496f4f61841d08b04480836f7c30add776cc2557 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sat, 27 May 2017 11:03:38 +0100 Subject: [PATCH 063/198] Fix pre-set camera mode with no focus - Improve handling of UI updates in camera related functions - More explicit UI initalisation - Find a focus if one wasn't pre-set for a camera mode which requires a focus --- addons/spectator/functions/fnc_cam.sqf | 13 +++++++++++++ .../spectator/functions/fnc_cam_setCameraMode.sqf | 7 ++++++- .../spectator/functions/fnc_setCameraAttributes.sqf | 12 ------------ addons/spectator/functions/fnc_setFocus.sqf | 2 +- addons/spectator/functions/fnc_ui.sqf | 9 ++++----- 5 files changed, 24 insertions(+), 19 deletions(-) diff --git a/addons/spectator/functions/fnc_cam.sqf b/addons/spectator/functions/fnc_cam.sqf index b16b0764d8e..546def77974 100644 --- a/addons/spectator/functions/fnc_cam.sqf +++ b/addons/spectator/functions/fnc_cam.sqf @@ -70,6 +70,19 @@ if (_init) then { // Create dummy target used for follow camera GVAR(camDummy) = "Logic" createVehicleLocal getPosASLVisual GVAR(camTarget); + // If camera mode is preset (not free cam) and focus is not, find initial focus + if (GVAR(camMode) != MODE_FREE && isNull GVAR(camTarget)) then { + private _testFocus = ([] call FUNC(getTargetEntities)) select 0; + if (isNil "_testFocus") then { + WARNING("Camera mode was preset, but no available entities to focus on. Switching to free cam."); + } else { + GVAR(camtarget) = _testFocus; + } + }; + + // Set the initial camera mode (could be pre-set) + [GVAR(camMode)] call FUNC(cam_setCameraMode); + // Start ticking (follow camera requires EachFrame to avoid jitter) GVAR(camTick) = addMissionEventHandler ["EachFrame", {call FUNC(cam_tick)}]; } else { diff --git a/addons/spectator/functions/fnc_cam_setCameraMode.sqf b/addons/spectator/functions/fnc_cam_setCameraMode.sqf index 4d94e919b56..8dfcde9d601 100644 --- a/addons/spectator/functions/fnc_cam_setCameraMode.sqf +++ b/addons/spectator/functions/fnc_cam_setCameraMode.sqf @@ -16,6 +16,7 @@ private _modes = GVAR(availableModes); private _focus = GVAR(camTarget); // If new mode isn't available then keep current (unless current also isn't) +// TODO: If free cam isn't available and there are no available camera targets (show black overlay?) if !(_newMode in _modes) then { _newMode = _modes select ((_modes find _oldMode) max 0); }; @@ -87,5 +88,9 @@ if (!(isNull _focus || GVAR(camOnLocation)) || _newMode == MODE_FREE) then { showHUD _showHUD; GVAR(camMode) = _newMode; - [] call FUNC(ui_updateHelp); + + // Only update display if it exists, this function is independent of it + if !(isNull SPEC_DISPLAY) then { + [] call FUNC(ui_updateHelp); + }; }; diff --git a/addons/spectator/functions/fnc_setCameraAttributes.sqf b/addons/spectator/functions/fnc_setCameraAttributes.sqf index fccd0320114..778c636c92a 100644 --- a/addons/spectator/functions/fnc_setCameraAttributes.sqf +++ b/addons/spectator/functions/fnc_setCameraAttributes.sqf @@ -46,18 +46,6 @@ if (count _this > 5) then { WARNING("Use of ""tilt"", ""zoom"" and ""speed"" camera attributes is no longer supported"); }; -// For unit camera mode with no focus, select randomly -if !(isNil "_mode" || {_mode == MODE_FREE}) then { - if (isNil "_focus" || {isNull _focus}) then { - - //TODO: Check for camTarget - _focus = ([] call FUNC(getTargetEntities)) select 0; - - // Handle case where no available entities - if (isNil "_focus") then { _focus = objNull; }; - }; -}; - // Apply if camera exists if (GVAR(isSet)) then { // These functions are smart and handle unavailable inputs diff --git a/addons/spectator/functions/fnc_setFocus.sqf b/addons/spectator/functions/fnc_setFocus.sqf index 7d365849078..c89a5f627db 100644 --- a/addons/spectator/functions/fnc_setFocus.sqf +++ b/addons/spectator/functions/fnc_setFocus.sqf @@ -30,7 +30,7 @@ if (_newFocus != GVAR(camTarget) && { !(isNull _newFocus && { isNull GVAR(camTar // GVAR used to prevent camera switching and UI info on locations GVAR(camOnLocation) = _focusIsLocation; - // Only update display if it exists, this function is called from some other places + // Only update display if it exists, this function is independent of it if !(isNull SPEC_DISPLAY) then { [] call FUNC(ui_updateListFocus); [] call FUNC(ui_updateWidget); diff --git a/addons/spectator/functions/fnc_ui.sqf b/addons/spectator/functions/fnc_ui.sqf index f8da0d6f41d..7b38d0dcfed 100644 --- a/addons/spectator/functions/fnc_ui.sqf +++ b/addons/spectator/functions/fnc_ui.sqf @@ -61,18 +61,17 @@ if (_init) then { // Store default H value for scaling purposes GVAR(uiHelpH) = (ctrlPosition CTRL_HELP) select 3; - // Set the initial camera mode (could be pre-set) - // This also updates the help element - [GVAR(camMode)] call FUNC(cam_setCameraMode); - // Initially hide map [] call FUNC(ui_toggleMap); // Initially fade the list [true] call FUNC(ui_fadeList); - // Update the focus info widget initially + // Initalise the help, widget and list information + [] call FUNC(ui_updateListEntities); + [] call FUNC(ui_updateListFocus); [] call FUNC(ui_updateWidget); + [] call FUNC(ui_updateHelp); // Start updating things to draw GVAR(collectPFH) = [LINKFUNC(ui_updateIconsToDraw), 0.2] call CBA_fnc_addPerFrameHandler; From 12b67565a3b974392c50def89347cc58cfd093f7 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sat, 27 May 2017 19:49:34 +0100 Subject: [PATCH 064/198] Localise key names --- addons/spectator/functions/fnc_cam.sqf | 4 +- .../spectator/functions/fnc_ui_updateHelp.sqf | 37 ++++++++++++++----- 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/addons/spectator/functions/fnc_cam.sqf b/addons/spectator/functions/fnc_cam.sqf index 546def77974..2a2524f1a1d 100644 --- a/addons/spectator/functions/fnc_cam.sqf +++ b/addons/spectator/functions/fnc_cam.sqf @@ -76,8 +76,8 @@ if (_init) then { if (isNil "_testFocus") then { WARNING("Camera mode was preset, but no available entities to focus on. Switching to free cam."); } else { - GVAR(camtarget) = _testFocus; - } + GVAR(camTarget) = _testFocus; + }; }; // Set the initial camera mode (could be pre-set) diff --git a/addons/spectator/functions/fnc_ui_updateHelp.sqf b/addons/spectator/functions/fnc_ui_updateHelp.sqf index 25a59065951..6c7fe7b848f 100644 --- a/addons/spectator/functions/fnc_ui_updateHelp.sqf +++ b/addons/spectator/functions/fnc_ui_updateHelp.sqf @@ -10,6 +10,7 @@ */ #include "script_component.hpp" +#include "\A3\ui_f\hpp\defineDIKCodes.inc" #define MAX_CONTROLS_HELP_ENTRIES 12 if !(GVAR(uiHelpVisible)) exitWith {}; @@ -36,22 +37,40 @@ if (_cameraMode == MODE_FREE) then { // When the camera has a focus, switch mode applies (if other modes are available) if (_hasTarget && {!GVAR(camOnLocation)} && {count _availableModes > 1}) then { - _controls pushBack ["[SPACE]", localize "STR_A3_Spectator_Helper_CameraMode"]; + _controls pushBack [ + format ["[%1]", toUpper [DIK_SPACE] call CBA_fnc_localizeKey], + localize "STR_A3_Spectator_Helper_CameraMode" + ]; }; if (_cameraMode == MODE_FREE) then { - _controls pushback ["[W/S]", localize "STR_A3_Spectator_Helper_Movement"]; - _controls pushback ["[A/D]", localize "STR_A3_Spectator_Helper_Strafing"]; - _controls pushback ["[Q/Z]", localize "STR_A3_Spectator_Helper_Height"]; + _controls pushback [ + format ["[%1/%2]", [DIK_W] call CBA_fnc_localizeKey, [DIK_S] call CBA_fnc_localizeKey], + localize "STR_A3_Spectator_Helper_Movement" + ]; + _controls pushback [ + format ["[%1/%2]", [DIK_A] call CBA_fnc_localizeKey, [DIK_D] call CBA_fnc_localizeKey], + localize "STR_A3_Spectator_Helper_Strafing" + ]; + _controls pushback [ + format ["[%1/%2]", [DIK_Q] call CBA_fnc_localizeKey, [DIK_Z] call CBA_fnc_localizeKey], + localize "STR_A3_Spectator_Helper_Height" + ]; }; -_controls pushback ["[BACK]", localize "STR_A3_Spectator_Helper_Interface"]; -_controls pushback ["[F1]", localize "STR_A3_Spectator_Helper_Controls"]; +_controls pushBack [ + format ["[%1]", toUpper [DIK_BACK] call CBA_fnc_localizeKey], + localize "STR_A3_Spectator_Helper_Interface" +]; +_controls pushBack [ + format ["[%1]", [DIK_F1] call CBA_fnc_localizeKey], + localize "STR_A3_Spectator_Helper_Controls" +]; if (_cameraMode == MODE_FREE) then { - _controls pushback ["[LSHIFT]", localize "STR_A3_Spectator_Helper_Shift"]; - _controls pushback ["[LALT]", localize "STR_A3_Spectator_Helper_Alt"]; - _controls pushback ["[LALT + LSHIFT]", localize "STR_A3_Spectator_Helper_ShiftAlt"]; + _controls pushBack ["[LSHIFT]", localize "STR_A3_Spectator_Helper_Shift"]; + _controls pushBack ["[LSHIFT]", localize "STR_A3_Spectator_Helper_Alt"]; + _controls pushBack ["[LALT + LSHIFT]", localize "STR_A3_Spectator_Helper_ShiftAlt"]; }; if (count _controls > MAX_CONTROLS_HELP_ENTRIES) then { From cc85e0b3a91ec44cbfbece8f09789e3310f9f12b Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sat, 27 May 2017 20:57:01 +0100 Subject: [PATCH 065/198] Fix camera mode and vision settings on init When spectator starts the available camera modes and vision modes should be consulted to ensure they are respected upon opening. --- addons/spectator/functions/fnc_cam.sqf | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/addons/spectator/functions/fnc_cam.sqf b/addons/spectator/functions/fnc_cam.sqf index 2a2524f1a1d..9a880bdd311 100644 --- a/addons/spectator/functions/fnc_cam.sqf +++ b/addons/spectator/functions/fnc_cam.sqf @@ -70,7 +70,12 @@ if (_init) then { // Create dummy target used for follow camera GVAR(camDummy) = "Logic" createVehicleLocal getPosASLVisual GVAR(camTarget); - // If camera mode is preset (not free cam) and focus is not, find initial focus + // Handle initial camera mode limitation + if !(GVAR(camMode) in GVAR(availableModes)) then { + GVAR(camMode) = GVAR(availableModes) select 0; + }; + + // If inital camera mode is not free cam and no focus, find initial focus if (GVAR(camMode) != MODE_FREE && isNull GVAR(camTarget)) then { private _testFocus = ([] call FUNC(getTargetEntities)) select 0; if (isNil "_testFocus") then { @@ -80,9 +85,17 @@ if (_init) then { }; }; - // Set the initial camera mode (could be pre-set) + // Set the initial camera mode (could be pre-set or limited) [GVAR(camMode)] call FUNC(cam_setCameraMode); + // Handle initial vision mode limitation + if !(GVAR(camVision) in GVAR(availableVisions)) then { + GVAR(camVision) = GVAR(availableVisions) select 0; + }; + + // Set the initial vision mode (could be pre-set or limited) + [GVAR(camVision)] call FUNC(cam_setVisionMode); + // Start ticking (follow camera requires EachFrame to avoid jitter) GVAR(camTick) = addMissionEventHandler ["EachFrame", {call FUNC(cam_tick)}]; } else { From 3c3bf26f5665051c816753b1136cc1b554e84dc7 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sat, 27 May 2017 21:03:47 +0100 Subject: [PATCH 066/198] Fix key localisation --- addons/spectator/functions/fnc_ui_updateHelp.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/spectator/functions/fnc_ui_updateHelp.sqf b/addons/spectator/functions/fnc_ui_updateHelp.sqf index 6c7fe7b848f..3b7318a0fe7 100644 --- a/addons/spectator/functions/fnc_ui_updateHelp.sqf +++ b/addons/spectator/functions/fnc_ui_updateHelp.sqf @@ -38,7 +38,7 @@ if (_cameraMode == MODE_FREE) then { // When the camera has a focus, switch mode applies (if other modes are available) if (_hasTarget && {!GVAR(camOnLocation)} && {count _availableModes > 1}) then { _controls pushBack [ - format ["[%1]", toUpper [DIK_SPACE] call CBA_fnc_localizeKey], + format ["[%1]", toUpper ([DIK_SPACE] call CBA_fnc_localizeKey)], localize "STR_A3_Spectator_Helper_CameraMode" ]; }; @@ -59,7 +59,7 @@ if (_cameraMode == MODE_FREE) then { }; _controls pushBack [ - format ["[%1]", toUpper [DIK_BACK] call CBA_fnc_localizeKey], + format ["[%1]", toUpper ([DIK_BACK] call CBA_fnc_localizeKey)], localize "STR_A3_Spectator_Helper_Interface" ]; _controls pushBack [ @@ -69,7 +69,7 @@ _controls pushBack [ if (_cameraMode == MODE_FREE) then { _controls pushBack ["[LSHIFT]", localize "STR_A3_Spectator_Helper_Shift"]; - _controls pushBack ["[LSHIFT]", localize "STR_A3_Spectator_Helper_Alt"]; + _controls pushBack ["[LALT]", localize "STR_A3_Spectator_Helper_Alt"]; _controls pushBack ["[LALT + LSHIFT]", localize "STR_A3_Spectator_Helper_ShiftAlt"]; }; From 6a596d16d457cfca14e92878ee1c9785d8f186eb Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Mon, 29 May 2017 20:34:54 +0100 Subject: [PATCH 067/198] Add next/prev entity keys --- addons/spectator/XEH_PREP.hpp | 1 + addons/spectator/functions/fnc_cam.sqf | 1 + .../spectator/functions/fnc_switchFocus.sqf | 22 +++++++++++++++++++ .../functions/fnc_ui_handleKeyDown.sqf | 1 - .../spectator/functions/fnc_ui_updateHelp.sqf | 9 ++++++++ 5 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 addons/spectator/functions/fnc_switchFocus.sqf diff --git a/addons/spectator/XEH_PREP.hpp b/addons/spectator/XEH_PREP.hpp index 95e5b219bb1..008438c0c83 100644 --- a/addons/spectator/XEH_PREP.hpp +++ b/addons/spectator/XEH_PREP.hpp @@ -43,6 +43,7 @@ PREP(handleFired); PREP(moduleSpectatorSettings); PREP(respawnTemplate); PREP(setFocus); +PREP(switchFocus); // Public functions PREP(addLocation); diff --git a/addons/spectator/functions/fnc_cam.sqf b/addons/spectator/functions/fnc_cam.sqf index 9a880bdd311..3ba6670bcc2 100644 --- a/addons/spectator/functions/fnc_cam.sqf +++ b/addons/spectator/functions/fnc_cam.sqf @@ -79,6 +79,7 @@ if (_init) then { if (GVAR(camMode) != MODE_FREE && isNull GVAR(camTarget)) then { private _testFocus = ([] call FUNC(getTargetEntities)) select 0; if (isNil "_testFocus") then { + GVAR(camMode) = MODE_FREE; WARNING("Camera mode was preset, but no available entities to focus on. Switching to free cam."); } else { GVAR(camTarget) = _testFocus; diff --git a/addons/spectator/functions/fnc_switchFocus.sqf b/addons/spectator/functions/fnc_switchFocus.sqf new file mode 100644 index 00000000000..0ec1fc5693f --- /dev/null +++ b/addons/spectator/functions/fnc_switchFocus.sqf @@ -0,0 +1,22 @@ +/* + * Author: Nelson Duarte, SilentSpike + * Function used to switch to next or previous camera focus + * + * Public: No + */ + +#include "script_component.hpp" + +private _next = param [0, true]; +private _entities = [] call FUNC(getTargetEntities); +private _focus = GVAR(camTarget); + +// No entities to switch to +if ((_entities isEqualTo []) || (_entities isEqualTo [_focus])) exitWith {}; + +private _index = (_entities find _focus) max 0; + +_index = (_index + ([-1, 1] select _next)) % (count _entities); +if (_index < 0) then { _index = count _entities + _index; }; + +[_entities select _index] call FUNC(setFocus); diff --git a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf index ad5b61c4010..3518e3d7498 100644 --- a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf +++ b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf @@ -153,7 +153,6 @@ if (_key == DIK_I) exitWith { }; // Handle getting next focus target -// TODO: These keys if (_key == DIK_RIGHT) exitWith { [true] call FUNC(switchFocus); true diff --git a/addons/spectator/functions/fnc_ui_updateHelp.sqf b/addons/spectator/functions/fnc_ui_updateHelp.sqf index 3b7318a0fe7..7bd33c3cbeb 100644 --- a/addons/spectator/functions/fnc_ui_updateHelp.sqf +++ b/addons/spectator/functions/fnc_ui_updateHelp.sqf @@ -43,6 +43,15 @@ if (_hasTarget && {!GVAR(camOnLocation)} && {count _availableModes > 1}) then { ]; }; +_controls pushback [ + format ["[%1]", toUpper ([DIK_RIGHT] call CBA_fnc_localizeKey)], + localize LSTRING(nextUnit) +]; +_controls pushback [ + format ["[%1]", toUpper ([DIK_LEFT] call CBA_fnc_localizeKey)], + localize LSTRING(prevUnit) +]; + if (_cameraMode == MODE_FREE) then { _controls pushback [ format ["[%1/%2]", [DIK_W] call CBA_fnc_localizeKey, [DIK_S] call CBA_fnc_localizeKey], From 6cbe456d007af2676fa8a2e15bef7d71306ee5c1 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Tue, 30 May 2017 10:05:50 +0100 Subject: [PATCH 068/198] Fix vision modes update while camera active - Updates the camera vision mode in case the current was removed --- addons/spectator/functions/fnc_setCameraAttributes.sqf | 6 +++--- addons/spectator/functions/fnc_updateCameraModes.sqf | 4 ++-- addons/spectator/functions/fnc_updateVisionModes.sqf | 4 ++-- addons/spectator/script_component.hpp | 1 + 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/addons/spectator/functions/fnc_setCameraAttributes.sqf b/addons/spectator/functions/fnc_setCameraAttributes.sqf index 778c636c92a..cafc817d755 100644 --- a/addons/spectator/functions/fnc_setCameraAttributes.sqf +++ b/addons/spectator/functions/fnc_setCameraAttributes.sqf @@ -23,7 +23,7 @@ * - To remove any current camera focus in free cam, use objNull * * Return Value: - * None + * None * * Example: * [1, objNull] call ace_spectator_fnc_setCameraAttributes @@ -41,13 +41,13 @@ params [ ["_direction",nil,[0]] ]; -// ACE_DEPRECATED (< Tag so that this is found via a search, can remove the warning in future) +// ACE_DEPRECATED (< Tag so that this is found via a search, can remove the warning in 3.12.0) if (count _this > 5) then { WARNING("Use of ""tilt"", ""zoom"" and ""speed"" camera attributes is no longer supported"); }; // Apply if camera exists -if (GVAR(isSet)) then { +if !(isNil QGVAR(camera)) then { // These functions are smart and handle unavailable inputs if !(isNil "_focus") then { [_focus] call FUNC(setFocus); diff --git a/addons/spectator/functions/fnc_updateCameraModes.sqf b/addons/spectator/functions/fnc_updateCameraModes.sqf index 2cb88ca6bfe..23e43013e18 100644 --- a/addons/spectator/functions/fnc_updateCameraModes.sqf +++ b/addons/spectator/functions/fnc_updateCameraModes.sqf @@ -33,7 +33,7 @@ private ["_newModes","_currentModes"]; _currentModes = GVAR(availableModes); // Restrict additions to only possible values -_newModes = _addModes arrayIntersect [0,1,2]; +_newModes = _addModes arrayIntersect ALL_MODES; _newModes append (_currentModes - _removeModes); _newModes = _newModes arrayIntersect _newModes; @@ -47,7 +47,7 @@ if (_newModes isEqualTo []) then { }; // Update camera in case of change -if (GVAR(isSet)) then { +if !(isNil QGVAR(camera)) then { [GVAR(camMode)] call FUNC(cam_setCameraMode); }; diff --git a/addons/spectator/functions/fnc_updateVisionModes.sqf b/addons/spectator/functions/fnc_updateVisionModes.sqf index fdc366a540a..d1f3af5bae6 100644 --- a/addons/spectator/functions/fnc_updateVisionModes.sqf +++ b/addons/spectator/functions/fnc_updateVisionModes.sqf @@ -55,8 +55,8 @@ if (_newModes isEqualTo []) then { }; // Update camera in case of change -if (GVAR(isSet)) then { - [GVAR(camMode)] call FUNC(cam_setCameraMode); +if !(isNil QGVAR(camera)) then { + [GVAR(camVision)] call FUNC(cam_setVisionMode); }; _newModes diff --git a/addons/spectator/script_component.hpp b/addons/spectator/script_component.hpp index 03c78773771..ce680ac23f5 100644 --- a/addons/spectator/script_component.hpp +++ b/addons/spectator/script_component.hpp @@ -32,6 +32,7 @@ #define MODE_FREE 0 #define MODE_FPS 1 #define MODE_FOLLOW 2 +#define ALL_MODES [MODE_FREE,MODE_FPS,MODE_FOLLOW] #define VISION_NORM -2 #define VISION_NVG -1 From fdbd247a74c31d39119d15e0da49e987cde7d8b4 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Tue, 30 May 2017 10:08:59 +0100 Subject: [PATCH 069/198] Add public getCameraAttributes function --- addons/spectator/XEH_PREP.hpp | 1 + .../functions/fnc_getCameraAttributes.sqf | 30 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 addons/spectator/functions/fnc_getCameraAttributes.sqf diff --git a/addons/spectator/XEH_PREP.hpp b/addons/spectator/XEH_PREP.hpp index 008438c0c83..05682e1d7c1 100644 --- a/addons/spectator/XEH_PREP.hpp +++ b/addons/spectator/XEH_PREP.hpp @@ -47,6 +47,7 @@ PREP(switchFocus); // Public functions PREP(addLocation); +PREP(getCameraAttributes); PREP(interrupt); PREP(removeLocation); PREP(setCameraAttributes); diff --git a/addons/spectator/functions/fnc_getCameraAttributes.sqf b/addons/spectator/functions/fnc_getCameraAttributes.sqf new file mode 100644 index 00000000000..adaa8b57c84 --- /dev/null +++ b/addons/spectator/functions/fnc_getCameraAttributes.sqf @@ -0,0 +1,30 @@ +/* + * Author: SilentSpike + * Returns the current spectator camera attributes (see setCameraAttributes for details). + * + * Arguments: + * None + * + * Return Value: + * [Mode, Focus, Vision, Position, Direction] + * + * Example: + * [] call ace_spectator_fnc_getCameraAttributes + * + * Public: Yes + */ + +#include "script_component.hpp" + +if !(isNil QGVAR(camera)) then { + [GVAR(camMode), GVAR(camTarget), GVAR(camVision), getPosATL GVAR(camera), getDirVisual GVAR(camera)] +} else { + // These values could be pre-set by function + [ + GETMVAR(GVAR(camMode),0), + GETMVAR(GVAR(camTarget),objNull), + GETMVAR(GVAR(camVision),-2), + GETMVAR(GVAR(camPos),[ARR_3(0,0,0)]), + GETMVAR(GVAR(camDir),0) + ] +}; From 6a8f2f5c9badb5e1fe63c455c0f370cea9d3cff1 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Wed, 31 May 2017 14:07:21 +0100 Subject: [PATCH 070/198] Fix spectator zeus compatibility - Camera control wasn't returned on exit due to change in fnc_ui --- addons/spectator/functions/fnc_cam.sqf | 3 +++ addons/spectator/functions/fnc_cam_setCameraMode.sqf | 1 - addons/spectator/functions/fnc_compat_zeus.sqf | 5 ++++- addons/spectator/functions/fnc_ui.sqf | 3 +++ addons/spectator/functions/fnc_ui_handleKeyDown.sqf | 4 ++++ 5 files changed, 14 insertions(+), 2 deletions(-) diff --git a/addons/spectator/functions/fnc_cam.sqf b/addons/spectator/functions/fnc_cam.sqf index 3ba6670bcc2..79fc5cec53e 100644 --- a/addons/spectator/functions/fnc_cam.sqf +++ b/addons/spectator/functions/fnc_cam.sqf @@ -9,6 +9,9 @@ params ["_init"]; +// No change +if (_init isEqualTo !isNil QGVAR(camera)) exitWith {}; + // Note that init and destroy intentionally happen in reverse order // Init: Vars > Camera > Camera Stuff // Destroy: Camera Stuff > Camera > Vars diff --git a/addons/spectator/functions/fnc_cam_setCameraMode.sqf b/addons/spectator/functions/fnc_cam_setCameraMode.sqf index 8dfcde9d601..f3b1443c9ba 100644 --- a/addons/spectator/functions/fnc_cam_setCameraMode.sqf +++ b/addons/spectator/functions/fnc_cam_setCameraMode.sqf @@ -88,7 +88,6 @@ if (!(isNull _focus || GVAR(camOnLocation)) || _newMode == MODE_FREE) then { showHUD _showHUD; GVAR(camMode) = _newMode; - // Only update display if it exists, this function is independent of it if !(isNull SPEC_DISPLAY) then { [] call FUNC(ui_updateHelp); diff --git a/addons/spectator/functions/fnc_compat_zeus.sqf b/addons/spectator/functions/fnc_compat_zeus.sqf index a26e5d88d2c..9221ca69027 100644 --- a/addons/spectator/functions/fnc_compat_zeus.sqf +++ b/addons/spectator/functions/fnc_compat_zeus.sqf @@ -15,6 +15,9 @@ _display displayAddEventHandler ["Unload",{ // Only re-open if still a spectator (and not remote-controlling) if (GVAR(isSet) && {isNull (GETMVAR(bis_fnc_moduleRemoteControl_unit,objNull))}) then { // Display must be opened next frame to prevent game crash - [{ [true] call FUNC(ui) }] call CBA_fnc_execNextFrame; + [{ + [GVAR(camMode)] call FUNC(cam_setCameraMode); + [true] call FUNC(ui); + }] call CBA_fnc_execNextFrame; }; }]; diff --git a/addons/spectator/functions/fnc_ui.sqf b/addons/spectator/functions/fnc_ui.sqf index 7b38d0dcfed..9c157cba64e 100644 --- a/addons/spectator/functions/fnc_ui.sqf +++ b/addons/spectator/functions/fnc_ui.sqf @@ -9,6 +9,9 @@ params ["_init"]; +// No change +if (_init isEqualTo !isNull SPEC_DISPLAY) exitWith {}; + // Close map openMap [false,false]; diff --git a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf index 3518e3d7498..ef8f0c6c3c6 100644 --- a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf +++ b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf @@ -172,6 +172,10 @@ if ((_key in (actionKeys "CuratorInterface")) && {!isNull (getAssignedCuratorLog // Display XEH handles re-opening openCuratorInterface; + + // Set the curator camera to the spectator camera location + curatorCamera setPosASL (getPosASL GVAR(camera)); + curatorCamera setDir (getDirVisual GVAR(camera)); true }; From b7015b5221c13d5212ea04a08addd7006a5fe02c Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Thu, 1 Jun 2017 15:44:42 +0100 Subject: [PATCH 071/198] Improve vision mode handling - Curator now resets vision mode on entry - First person also reset vision mode so that it is consistent between camera changes --- addons/spectator/functions/fnc_cam_setCameraMode.sqf | 2 +- addons/spectator/functions/fnc_cam_setVisionMode.sqf | 11 +++++------ addons/spectator/functions/fnc_compat_zeus.sqf | 2 ++ addons/spectator/functions/fnc_ui_handleKeyDown.sqf | 9 +++++++-- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/addons/spectator/functions/fnc_cam_setCameraMode.sqf b/addons/spectator/functions/fnc_cam_setCameraMode.sqf index f3b1443c9ba..b51aaae7a35 100644 --- a/addons/spectator/functions/fnc_cam_setCameraMode.sqf +++ b/addons/spectator/functions/fnc_cam_setCameraMode.sqf @@ -31,7 +31,7 @@ if (!(isNull _focus || GVAR(camOnLocation)) || _newMode == MODE_FREE) then { _focus switchCamera "INTERNAL"; // Reset vision mode - // [VISION_NORM] call FUNC(cam_setVisionMode); + [VISION_NORM] call FUNC(cam_setVisionMode); [] call FUNC(cam_resetTarget); diff --git a/addons/spectator/functions/fnc_cam_setVisionMode.sqf b/addons/spectator/functions/fnc_cam_setVisionMode.sqf index eae8b3e081b..2700b113b58 100644 --- a/addons/spectator/functions/fnc_cam_setVisionMode.sqf +++ b/addons/spectator/functions/fnc_cam_setVisionMode.sqf @@ -17,9 +17,6 @@ if !(_newVision in _visions) then { _newVision = _visions select ((_visions find _oldVision) max 0); }; -// Nothing to do here -if (_newVision == _oldVision) exitWith {}; - // Vision mode does not apply to fps view if (GVAR(camMode) != MODE_FPS) then { // 0+ are all thermal vision types @@ -31,7 +28,9 @@ if (GVAR(camMode) != MODE_FPS) then { }; // Give user feedback that vision mode changed - playSound "RscDisplayCurator_visionMode"; -}; + if (_newVision != _oldVision) then { + playSound "RscDisplayCurator_visionMode"; -GVAR(camVision) = _newVision; + GVAR(camVision) = _newVision; + }; +}; diff --git a/addons/spectator/functions/fnc_compat_zeus.sqf b/addons/spectator/functions/fnc_compat_zeus.sqf index 9221ca69027..132942d4c3c 100644 --- a/addons/spectator/functions/fnc_compat_zeus.sqf +++ b/addons/spectator/functions/fnc_compat_zeus.sqf @@ -16,7 +16,9 @@ _display displayAddEventHandler ["Unload",{ if (GVAR(isSet) && {isNull (GETMVAR(bis_fnc_moduleRemoteControl_unit,objNull))}) then { // Display must be opened next frame to prevent game crash [{ + // Reset the camera and vision modes [GVAR(camMode)] call FUNC(cam_setCameraMode); + [GVAR(camVision)] call FUNC(cam_setVisionMode); [true] call FUNC(ui); }] call CBA_fnc_execNextFrame; }; diff --git a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf index ef8f0c6c3c6..9e5b17bf30e 100644 --- a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf +++ b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf @@ -174,8 +174,13 @@ if ((_key in (actionKeys "CuratorInterface")) && {!isNull (getAssignedCuratorLog openCuratorInterface; // Set the curator camera to the spectator camera location - curatorCamera setPosASL (getPosASL GVAR(camera)); - curatorCamera setDir (getDirVisual GVAR(camera)); + [{!isNull curatorCamera},{ + curatorCamera setPosASL (getPosASL GVAR(camera)); + curatorCamera setDir (getDirVisual GVAR(camera)); + + // Curator tracks its own vision mode + [getAssignedCuratorLogic player, 0] call bis_fnc_toggleCuratorVisionMode; + }] call CBA_fnc_waitUntilAndExecute; true }; From eadd9a3f70cdcb712903c4ddf69f11b248bdd7aa Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Thu, 1 Jun 2017 16:36:38 +0100 Subject: [PATCH 072/198] Improve location handling - It makes more sense to specifiy the position ATL since the text is going to be rendered there and a z of 0 is then ground height. - Updates the ui immediately if the list is already on locations --- addons/spectator/functions/fnc_addLocation.sqf | 14 +++++++++++++- addons/spectator/functions/fnc_removeLocation.sqf | 7 +++++++ addons/spectator/functions/fnc_ui_draw3D.sqf | 2 -- .../spectator/functions/fnc_ui_handleListClick.sqf | 2 +- 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/addons/spectator/functions/fnc_addLocation.sqf b/addons/spectator/functions/fnc_addLocation.sqf index 7a937495447..c7b9c7210a6 100644 --- a/addons/spectator/functions/fnc_addLocation.sqf +++ b/addons/spectator/functions/fnc_addLocation.sqf @@ -10,7 +10,7 @@ * 4: Camera Offset Vector (Default: [0,0,0]) * * Notes: - * - Position array is of form ASL + * - Position array is of form ATL * - Position objects will remove location upon objNull * - If an empty name is supplied, a descriptive name will be used * - Camera offset is used when teleporting to location, default is treated as random @@ -52,10 +52,22 @@ if (_pos isEqualTo []) then { }; }; + // AGL is used for rendering purposes, but it makes sense for public function to take ATL + if (_pos isEqualType []) then { + _pos = ASLtoAGL ATLtoASL _pos; + }; + // When no texture, just use a transparent procedural if (_texture == "") then { _texture = "#(rgb,8,8,3)color(0,0,0,0)"; }; GVAR(locationsList) pushBack [_id, _name, _description, _texture, _pos, _offset]; + + // Update the list if appropriate + if !(isNull SPEC_DISPLAY) then { + if (GVAR(uiListType) == LIST_LOCATIONS) then { + [] call FUNC(ui_updateListLocations); + }; + }; }; _id diff --git a/addons/spectator/functions/fnc_removeLocation.sqf b/addons/spectator/functions/fnc_removeLocation.sqf index 0cc625c2e34..9c9d531f5e5 100644 --- a/addons/spectator/functions/fnc_removeLocation.sqf +++ b/addons/spectator/functions/fnc_removeLocation.sqf @@ -28,5 +28,12 @@ private _index = -1; GVAR(locationsList) deleteAt _index; +// Update the list if appropriate +if !(isNull SPEC_DISPLAY) then { + if (GVAR(uiListType) == LIST_LOCATIONS) then { + [] call FUNC(ui_updateListLocations); + }; +}; + // Return _index != -1 diff --git a/addons/spectator/functions/fnc_ui_draw3D.sqf b/addons/spectator/functions/fnc_ui_draw3D.sqf index 11dd5e5f311..63cb6c0ea3a 100644 --- a/addons/spectator/functions/fnc_ui_draw3D.sqf +++ b/addons/spectator/functions/fnc_ui_draw3D.sqf @@ -67,8 +67,6 @@ if !(GVAR(uiMapVisible)) then { _x params ["", "_name", "", "_texture", "_pos"]; if (_pos isEqualType objNull) then { _pos = (_pos modelToWorldVisual (_pos selectionPosition "Head")) vectorAdd [0,0,2*HEIGHT_OFFSET]; - } else { - _pos = ASLtoAGL _pos; }; drawIcon3D [_texture, [1,1,1,0.4], _pos, 0.8, 0.8, 0, _name]; diff --git a/addons/spectator/functions/fnc_ui_handleListClick.sqf b/addons/spectator/functions/fnc_ui_handleListClick.sqf index 6ab1357cc95..07cd0b4ba44 100644 --- a/addons/spectator/functions/fnc_ui_handleListClick.sqf +++ b/addons/spectator/functions/fnc_ui_handleListClick.sqf @@ -68,7 +68,7 @@ if (_entityList) then { // If double clicked, teleport the camera if (_dblClick) then { - if (_pos isEqualType objNull) then { _pos = getPosASL _pos; }; + if (_pos isEqualType objNull) then { _pos = getPosASL _pos; } else { _pos = AGLtoASL _pos; }; if (_offset isEqualTo [0,0,0]) then { _offset = _offset apply { _x + 1 + random 30 }; }; GVAR(camera) setPosASL (_pos vectorAdd _offset); From 64835568ea787611ecbb00a8b9ba4cffa26105ab Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Thu, 1 Jun 2017 17:55:12 +0100 Subject: [PATCH 073/198] Disable list keyboard search --- addons/spectator/ui.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/spectator/ui.hpp b/addons/spectator/ui.hpp index dd3fccbaed6..b5edeeb6f5d 100644 --- a/addons/spectator/ui.hpp +++ b/addons/spectator/ui.hpp @@ -55,6 +55,7 @@ class GVAR(display) { w = W_PART(13.5); h = "safezoneH"; + disableKeyboardSearch = 1; multiselectEnabled = 0; colorBorder[] = {0,0,0,0}; colorBackground[] = {0,0,0,0.75}; From 260e90056790f6745c5bd292e8beb752862d4186 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Thu, 1 Jun 2017 18:17:24 +0100 Subject: [PATCH 074/198] Fix handling of forced camera mode with no focus --- addons/spectator/functions/fnc_cam.sqf | 8 +------- .../functions/fnc_setCameraAttributes.sqf | 13 ++++++++++++- addons/spectator/functions/fnc_setFocus.sqf | 15 ++++++++++++++- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/addons/spectator/functions/fnc_cam.sqf b/addons/spectator/functions/fnc_cam.sqf index 79fc5cec53e..6153c9d707f 100644 --- a/addons/spectator/functions/fnc_cam.sqf +++ b/addons/spectator/functions/fnc_cam.sqf @@ -80,13 +80,7 @@ if (_init) then { // If inital camera mode is not free cam and no focus, find initial focus if (GVAR(camMode) != MODE_FREE && isNull GVAR(camTarget)) then { - private _testFocus = ([] call FUNC(getTargetEntities)) select 0; - if (isNil "_testFocus") then { - GVAR(camMode) = MODE_FREE; - WARNING("Camera mode was preset, but no available entities to focus on. Switching to free cam."); - } else { - GVAR(camTarget) = _testFocus; - }; + [true] call FUNC(setFocus); }; // Set the initial camera mode (could be pre-set or limited) diff --git a/addons/spectator/functions/fnc_setCameraAttributes.sqf b/addons/spectator/functions/fnc_setCameraAttributes.sqf index cafc817d755..3b78bf5a737 100644 --- a/addons/spectator/functions/fnc_setCameraAttributes.sqf +++ b/addons/spectator/functions/fnc_setCameraAttributes.sqf @@ -21,6 +21,7 @@ * Notes: * - If camera mode is not free and camera has no focus, random will be used * - To remove any current camera focus in free cam, use objNull + * - To select a random camera focus, use a boolean * * Return Value: * None @@ -35,7 +36,7 @@ params [ ["_mode",nil,[0]], - ["_focus",nil,[objNull]], + ["_focus",nil,[objNull,true]], ["_vision",nil,[0]], ["_position",nil,[[]],3], ["_direction",nil,[0]] @@ -54,6 +55,11 @@ if !(isNil QGVAR(camera)) then { }; if !(isNil "_mode") then { + // If mode not free and no focus, find focus + if ((_mode != MODE_FREE) && {isNull GVAR(camTarget)}) then { + [true] call FUNC(setFocus); + }; + [_mode] call FUNC(cam_setCameraMode); }; @@ -70,6 +76,11 @@ if !(isNil QGVAR(camera)) then { }; } else { if !(isNil "_focus") then { + // If there are no entities this becomes nil, handled on camera startup + if (_focus isEqualType true) then { + _focus = ([] call FUNC(getTargetEntities)) select 0; + }; + GVAR(camTarget) = _focus; }; diff --git a/addons/spectator/functions/fnc_setFocus.sqf b/addons/spectator/functions/fnc_setFocus.sqf index c89a5f627db..2a1583d3bf6 100644 --- a/addons/spectator/functions/fnc_setFocus.sqf +++ b/addons/spectator/functions/fnc_setFocus.sqf @@ -7,7 +7,20 @@ #include "script_component.hpp" -params [["_newFocus", objNull, [objNull]], ["_focusIsLocation",false]]; +params [["_newFocus", objNull, [objNull,true]], ["_focusIsLocation",false]]; + +// If boolean provided then first find a focus +if (_newFocus isEqualType true) then { + private _testFocus = ([] call FUNC(getTargetEntities)) select 0; + + if (isNil "_testFocus") then { + WARNING("No available entities to focus on. Switching to free cam."); + [MODE_FREE] call FUNC(cam_setCameraMode); + _newFocus = objNull; + } else { + _newFocus = _testFocus; + }; +}; if (_newFocus != GVAR(camTarget) && { !(isNull _newFocus && { isNull GVAR(camTarget) }) }) then { GVAR(camTarget) = _newFocus; From 8759edc0142ff266b36c65e7e4331dace66472b0 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Thu, 1 Jun 2017 18:37:44 +0100 Subject: [PATCH 075/198] Fix handling of free mode removal while no target --- addons/spectator/functions/fnc_setCameraAttributes.sqf | 2 +- addons/spectator/functions/fnc_updateCameraModes.sqf | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/addons/spectator/functions/fnc_setCameraAttributes.sqf b/addons/spectator/functions/fnc_setCameraAttributes.sqf index 3b78bf5a737..a320e7588a9 100644 --- a/addons/spectator/functions/fnc_setCameraAttributes.sqf +++ b/addons/spectator/functions/fnc_setCameraAttributes.sqf @@ -56,7 +56,7 @@ if !(isNil QGVAR(camera)) then { if !(isNil "_mode") then { // If mode not free and no focus, find focus - if ((_mode != MODE_FREE) && {isNull GVAR(camTarget)}) then { + if ((_mode != MODE_FREE) && {isNull GVAR(camTarget) || GVAR(camOnLocation)}) then { [true] call FUNC(setFocus); }; diff --git a/addons/spectator/functions/fnc_updateCameraModes.sqf b/addons/spectator/functions/fnc_updateCameraModes.sqf index 23e43013e18..c6287c9239f 100644 --- a/addons/spectator/functions/fnc_updateCameraModes.sqf +++ b/addons/spectator/functions/fnc_updateCameraModes.sqf @@ -48,6 +48,11 @@ if (_newModes isEqualTo []) then { // Update camera in case of change if !(isNil QGVAR(camera)) then { + // If mode was free and no longer available, find a focus + if (!(MODE_FREE in _newModes) && {GVAR(camMode) == MODE_FREE} && {isNull GVAR(camTarget) || GVAR(camOnLocation)}) then { + [true] call FUNC(setFocus); + }; + [GVAR(camMode)] call FUNC(cam_setCameraMode); }; From 863a685190e9272498def6ec708c5c837c14fafd Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Thu, 1 Jun 2017 18:44:45 +0100 Subject: [PATCH 076/198] Fix locations respecting available modes --- addons/spectator/functions/fnc_ui_handleListClick.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/spectator/functions/fnc_ui_handleListClick.sqf b/addons/spectator/functions/fnc_ui_handleListClick.sqf index 07cd0b4ba44..b0f915fd146 100644 --- a/addons/spectator/functions/fnc_ui_handleListClick.sqf +++ b/addons/spectator/functions/fnc_ui_handleListClick.sqf @@ -62,7 +62,7 @@ if (_entityList) then { }; // If in a unit camera mode then only focus when double click - if (GVAR(camMode) == MODE_FREE || {_dblClick}) then { + if (GVAR(camMode) == MODE_FREE || {_dblClick && {FREE_MODE in GVAR(availableModes)}}) then { [_dummy, true] call FUNC(setFocus); }; From 1d860b5d69a10e8287fb604e235e79a508b89c3a Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Thu, 1 Jun 2017 23:04:04 +0100 Subject: [PATCH 077/198] Fix list entry removal code - Replace getTargetGroups with getTargetEntities for consolidated filtering. - Fix the step of the removal loops and make them go to index 0 instead of 1 --- addons/spectator/XEH_PREP.hpp | 1 - .../functions/fnc_getTargetGroups.sqf | 27 ---------- .../functions/fnc_ui_updateListEntities.sqf | 53 +++++++++---------- .../functions/fnc_ui_updateListLocations.sqf | 2 +- .../spectator/functions/fnc_updateUnits.sqf | 2 +- 5 files changed, 26 insertions(+), 59 deletions(-) delete mode 100644 addons/spectator/functions/fnc_getTargetGroups.sqf diff --git a/addons/spectator/XEH_PREP.hpp b/addons/spectator/XEH_PREP.hpp index 05682e1d7c1..ecf58510238 100644 --- a/addons/spectator/XEH_PREP.hpp +++ b/addons/spectator/XEH_PREP.hpp @@ -38,7 +38,6 @@ PREP(compat_counter); PREP(compat_spectatorBI); PREP(compat_zeus); PREP(getTargetEntities); -PREP(getTargetGroups); PREP(handleFired); PREP(moduleSpectatorSettings); PREP(respawnTemplate); diff --git a/addons/spectator/functions/fnc_getTargetGroups.sqf b/addons/spectator/functions/fnc_getTargetGroups.sqf deleted file mode 100644 index c73ad9d2ad9..00000000000 --- a/addons/spectator/functions/fnc_getTargetGroups.sqf +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Author: SilentSpike - * Gets the possible groups to spectate based on settings - * - * Public: No - */ - -#include "script_component.hpp" - -private _groups = []; - -// AI filter -if (GVAR(enableAI)) then { - _groups = allGroups; -} else { - _groups = ([] call CBA_fnc_players) apply {group _x}; -}; - -// Side and number of units filter -_groups = _groups select { - ((side _x) in GVAR(availableSides)) && - {!((units _x) isEqualTo [])} -}; - -// Whitelist overrides AI setting and side settings -_groups append (GVAR(unitWhitelist) apply {group _x}); -_groups arrayIntersect _groups diff --git a/addons/spectator/functions/fnc_ui_updateListEntities.sqf b/addons/spectator/functions/fnc_ui_updateListEntities.sqf index 6ec9712e083..159cb0515bd 100644 --- a/addons/spectator/functions/fnc_ui_updateListEntities.sqf +++ b/addons/spectator/functions/fnc_ui_updateListEntities.sqf @@ -13,25 +13,21 @@ private _newList = [ [west, "west", localize "str_west", []], [east, "east", localize "str_east", []], [independent, "indy", localize "str_guerrila", []], - [civilian, "civ", localize "str_civilian", []] + [civilian, "civ", localize "str_civilian", []], + [sideUnknown, "other", localize "str_dn_unknown", []] ]; -// Go through groups and get the valid ones only, also cache group units information -private _blacklist = GVAR(unitBlacklist); +// Go through entity groups and cache information +private _entities = call FUNC(getTargetEntities); { - private _group = _x; - private _groupTexture = ["GetGroupTexture", [_group]] call BIS_fnc_dynamicGroups; - private _groupInfo = [_group, str _group, _groupTexture, groupID _group]; - private _unitsInfo = []; + private _group = group _x; + if !(str _group in _newGroups) then { + private _groupTexture = ["GetGroupTexture", [_group]] call BIS_fnc_dynamicGroups; + private _groupInfo = [_group, str _group, _groupTexture, groupID _group]; - // Validate units - { - if ( - (GVAR(enableAI) || {isPlayer _x}) && - {simulationEnabled _x && {simulationEnabled vehicle _x}} && - { !isObjectHidden _x && {!isObjectHidden vehicle _x} } && - {!(_x in _blacklist)} - ) then { + // Cache the info of valid units in the group + private _unitsInfo = []; + { _newUnits pushBack ([_x] call BIS_fnc_objectVar); private _name = [_x, false, false, NAME_MAX_CHARACTERS] call EFUNC(common,getName); @@ -43,29 +39,28 @@ private _blacklist = GVAR(unitBlacklist); alive _x && { NEEDS_REVIVE(_x) }, _name ]; - }; - nil // Speed loop - } count (units _x); + nil // Speed loop + } count (units _group arrayIntersect _entities); + + // Add it to the right index + // TODO: Make this more flexible (see BIS_fnc_sideName and old code) + private _sideIndex = ([west,east,independent,civilian]) find (side _group); + _sideIndex = [_sideIndex, 4] select (_sideIndex < 0); + ((_newList select _sideIndex) select 3) pushBack [_groupInfo, _unitsInfo]; - // If we have valid units in the group, group is deemed valid - if !(_unitsInfo isEqualTo []) then { _newGroups pushBack (str _group); - { - if ((side _group) == (_x select 0)) exitWith { - (_x select 3) pushBack [_groupInfo, _unitsInfo]; - }; - } forEach _newList; }; nil // Speed loop -} count ([] call FUNC(getTargetGroups)); +} count _entities; +//TODO: Test speed of this loop compared to original // Whether an update to the list is required (really only if something changed) if !(GVAR(curList) isEqualTo _newList) then { // Remove groups/units that are no longer there private _ctrl = CTRL_LIST; - for "_sideIndex" from (_ctrl tvCount []) to 1 do { - for "_groupIndex" from (_ctrl tvCount [_sideIndex - 1]) to 1 do { - for "_unitIndex" from (_ctrl tvCount [_sideIndex - 1, _groupIndex - 1]) to 1 do { + for "_sideIndex" from (_ctrl tvCount []) to 0 step -1 do { + for "_groupIndex" from (_ctrl tvCount [_sideIndex - 1]) to 0 step -1 do { + for "_unitIndex" from (_ctrl tvCount [_sideIndex - 1, _groupIndex - 1]) to 0 step -1 do { private _lookup = _newUnits find (_ctrl tvData [_sideIndex - 1, _groupIndex - 1, _unitIndex - 1]); if (_lookup < 0) then { _ctrl tvDelete [_sideIndex - 1, _groupIndex - 1, _unitIndex - 1]; diff --git a/addons/spectator/functions/fnc_ui_updateListLocations.sqf b/addons/spectator/functions/fnc_ui_updateListLocations.sqf index 0c468e18ea5..8809dbee105 100644 --- a/addons/spectator/functions/fnc_ui_updateListLocations.sqf +++ b/addons/spectator/functions/fnc_ui_updateListLocations.sqf @@ -15,7 +15,7 @@ if !(GVAR(curList) isEqualTo _newList) then { // Remove locations that are no longer there private _ctrl = CTRL_LIST; - for "_locationIndex" from (_ctrl tvCount []) to 1 do { + for "_locationIndex" from (_ctrl tvCount []) to 0 step -1 do { private _lookup = _newLocations find (_ctrl tvData [_locationIndex - 1]); if (_lookup < 0) then { _ctrl tvDelete [_locationIndex - 1]; diff --git a/addons/spectator/functions/fnc_updateUnits.sqf b/addons/spectator/functions/fnc_updateUnits.sqf index d89d261a801..b22828e924d 100644 --- a/addons/spectator/functions/fnc_updateUnits.sqf +++ b/addons/spectator/functions/fnc_updateUnits.sqf @@ -17,7 +17,7 @@ #include "script_component.hpp" -params [["_newUnits",[],[[]]],["_blacklist",false,[false]]]; +params [["_newUnits",[],[[]]], ["_blacklist",false,[false]]]; // Function only matters on player clients if (!hasInterface) exitWith {}; From 21406b6e7852252d3a99816675841664bcff1b1c Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 2 Jun 2017 00:03:38 +0100 Subject: [PATCH 078/198] Improve side handling of unit list - Accounts for possibly of whitelisted random objects that belong to other sides - Move the index decrement to loop, not within every loop --- .../functions/fnc_ui_updateListEntities.sqf | 89 ++++++++++++------- .../functions/fnc_ui_updateListLocations.sqf | 8 +- 2 files changed, 62 insertions(+), 35 deletions(-) diff --git a/addons/spectator/functions/fnc_ui_updateListEntities.sqf b/addons/spectator/functions/fnc_ui_updateListEntities.sqf index 159cb0515bd..6b784e155cb 100644 --- a/addons/spectator/functions/fnc_ui_updateListEntities.sqf +++ b/addons/spectator/functions/fnc_ui_updateListEntities.sqf @@ -9,22 +9,15 @@ private _newUnits = []; private _newGroups = []; -private _newList = [ - [west, "west", localize "str_west", []], - [east, "east", localize "str_east", []], - [independent, "indy", localize "str_guerrila", []], - [civilian, "civ", localize "str_civilian", []], - [sideUnknown, "other", localize "str_dn_unknown", []] -]; +private _newSides = []; +private _newList = []; // Go through entity groups and cache information private _entities = call FUNC(getTargetEntities); { + // Add the group if new private _group = group _x; if !(str _group in _newGroups) then { - private _groupTexture = ["GetGroupTexture", [_group]] call BIS_fnc_dynamicGroups; - private _groupInfo = [_group, str _group, _groupTexture, groupID _group]; - // Cache the info of valid units in the group private _unitsInfo = []; { @@ -42,10 +35,28 @@ private _entities = call FUNC(getTargetEntities); nil // Speed loop } count (units _group arrayIntersect _entities); + // Cache the info of the group itself + private _groupTexture = ["GetGroupTexture", [_group]] call BIS_fnc_dynamicGroups; + private _groupInfo = [_group, str _group, _groupTexture, groupID _group]; + + // Add the group to the correct side + private _side = side _group; + private _sideIndex = _newSides find (str _side); + + // Add the side if new + if (_sideIndex < 0) then { + _sideIndex = _newList pushBack [ + _side, + str _side, + [_side] call BIS_fnc_sideName, + [_side] call BIS_fnc_sideColor, + [] + ]; + + _newSides pushBack (str _side); + }; + // Add it to the right index - // TODO: Make this more flexible (see BIS_fnc_sideName and old code) - private _sideIndex = ([west,east,independent,civilian]) find (side _group); - _sideIndex = [_sideIndex, 4] select (_sideIndex < 0); ((_newList select _sideIndex) select 3) pushBack [_groupInfo, _unitsInfo]; _newGroups pushBack (str _group); @@ -56,33 +67,42 @@ private _entities = call FUNC(getTargetEntities); // Whether an update to the list is required (really only if something changed) if !(GVAR(curList) isEqualTo _newList) then { - // Remove groups/units that are no longer there private _ctrl = CTRL_LIST; - for "_sideIndex" from (_ctrl tvCount []) to 0 step -1 do { - for "_groupIndex" from (_ctrl tvCount [_sideIndex - 1]) to 0 step -1 do { - for "_unitIndex" from (_ctrl tvCount [_sideIndex - 1, _groupIndex - 1]) to 0 step -1 do { - private _lookup = _newUnits find (_ctrl tvData [_sideIndex - 1, _groupIndex - 1, _unitIndex - 1]); + + // Remove groups/units that are no longer there + for "_sideIndex" from (_ctrl tvCount [] - 1) to 0 step -1 do { + for "_groupIndex" from (_ctrl tvCount [_sideIndex] - 1) to 0 step -1 do { + for "_unitIndex" from (_ctrl tvCount [_sideIndex, _groupIndex] - 1) to 0 step -1 do { + private _lookup = _newUnits find (_ctrl tvData [_sideIndex, _groupIndex, _unitIndex]); if (_lookup < 0) then { - _ctrl tvDelete [_sideIndex - 1, _groupIndex - 1, _unitIndex - 1]; + _ctrl tvDelete [_sideIndex, _groupIndex, _unitIndex]; } else { _newUnits deleteAt _lookup; }; }; - private _lookup = _newGroups find (_ctrl tvData [_sideIndex - 1, _groupIndex - 1]); + private _lookup = _newGroups find (_ctrl tvData [_sideIndex, _groupIndex]); if (_lookup < 0) then { - _ctrl tvDelete [_sideIndex - 1, _groupIndex - 1]; + _ctrl tvDelete [_sideIndex, _groupIndex]; } else { _newGroups deleteAt _lookup; }; }; + private _lookup = _newSides find (_ctrl tvData [_sideIndex]); + if (_lookup < 0) then { + _ctrl tvDelete [_sideIndex]; + } else { + _newSides deleteAt _lookup; + }; }; - - // Hash location lookups, note hashing assumes unique group/unit data + // Hash location lookups, note hashing assumes unique side/group/unit data + private _sideDataToPathHash = [[], []]; private _groupDataToPathHash = [[], []]; private _unitDataToPathHash = [[], []]; for "_sideIndex" from 0 to ((_ctrl tvCount []) - 1) do { + (_sideDataToPathHash select 0) pushBack (_ctrl tvData [_sideIndex]); + (_sideDataToPathHash select 1) pushBack [_sideIndex]; for "_groupIndex" from 0 to ((_ctrl tvCount [_sideIndex]) - 1) do { (_groupDataToPathHash select 0) pushBack (_ctrl tvData [_sideIndex, _groupIndex]); (_groupDataToPathHash select 1) pushBack [_sideIndex, _groupIndex]; @@ -95,17 +115,23 @@ if !(GVAR(curList) isEqualTo _newList) then { // Update/add the values { - _x params ["_side", "_sideStr", "_sideTitle", "_nestedGroupData"]; - private _sideIndex = _forEachIndex; - private _sideColor = [_side] call BIS_fnc_sideColor; + _x params ["_side", "_sideStr", "_sideTitle", "_sideColor", "_nestedGroupData"]; - if (_ctrl tvCount [] == _sideIndex) then { - _ctrl tvAdd [[], _sideTitle]; + private _sideIndex = -1; + private _lookup = (_sideDataToPathHash select 0) find _sideStr; + if (_lookup < 0) then { + _sideIndex = _ctrl tvAdd [[], _sideTitle]; _ctrl tvSetData [[_sideIndex], _sideStr]; + _ctrl tvExpand [_sideIndex]; + } else { + // pop data out of hash to improve later lookups + (_sideDataToPathHash select 0) deleteAt _lookup; + private _path = (_sideDataToPathHash select 1) deleteAt _lookup; + _sideIndex = _path select 0; + + _ctrl tvSetText [_path, _sideTitle]; }; - _ctrl tvExpand [_sideIndex]; - { _x params ["_groupInfo", "_nestedUnitData"]; _groupInfo params ["_group", "_groupStr", "_groupTexture", "_groupId"]; @@ -161,7 +187,8 @@ if !(GVAR(curList) isEqualTo _newList) then { } count _nestedUnitData; nil // Speed loop } count _nestedGroupData; - } forEach _newList; + nil // Speed loop + } count _newList; // Store the new list as the current list GVAR(curList) = _newList; diff --git a/addons/spectator/functions/fnc_ui_updateListLocations.sqf b/addons/spectator/functions/fnc_ui_updateListLocations.sqf index 8809dbee105..67a026e8ccc 100644 --- a/addons/spectator/functions/fnc_ui_updateListLocations.sqf +++ b/addons/spectator/functions/fnc_ui_updateListLocations.sqf @@ -12,13 +12,13 @@ private _newList = GVAR(locationsList); // Whether an update to the list is required (really only if something changed) if !(GVAR(curList) isEqualTo _newList) then { + private _ctrl = CTRL_LIST; // Remove locations that are no longer there - private _ctrl = CTRL_LIST; - for "_locationIndex" from (_ctrl tvCount []) to 0 step -1 do { - private _lookup = _newLocations find (_ctrl tvData [_locationIndex - 1]); + for "_locationIndex" from (_ctrl tvCount [] - 1) to 0 step -1 do { + private _lookup = _newLocations find (_ctrl tvData [_locationIndex]); if (_lookup < 0) then { - _ctrl tvDelete [_locationIndex - 1]; + _ctrl tvDelete [_locationIndex]; } else { _newLocations deleteAt _lookup; }; From 920f39315de278f88656e34fa383af27e2975075 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 2 Jun 2017 00:09:00 +0100 Subject: [PATCH 079/198] Add linter ignore directive --- addons/spectator/functions/fnc_handleFired.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/spectator/functions/fnc_handleFired.sqf b/addons/spectator/functions/fnc_handleFired.sqf index ea5b2eaa816..ee78afa43df 100644 --- a/addons/spectator/functions/fnc_handleFired.sqf +++ b/addons/spectator/functions/fnc_handleFired.sqf @@ -19,6 +19,7 @@ params [ // Remove the EH when spectator is no longer active or unit is removed if (isNil QGVAR(entitiesToDraw) || {!(_unit in GVAR(entitiesToDraw))}) exitWith { + //USES_VARIABLES ["_thisEventHandler"] _unit removeEventHandler ["Fired", _thisEventHandler]; SETVAR(_unit,GVAR(firedEH),nil); }; From e2cd7a0515b0b62a198ae419c5a5cdc3e2478620 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 2 Jun 2017 10:55:09 +0100 Subject: [PATCH 080/198] Fix list code --- .../functions/fnc_ui_updateListEntities.sqf | 13 ++++++------- .../functions/fnc_ui_updateListLocations.sqf | 2 +- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/addons/spectator/functions/fnc_ui_updateListEntities.sqf b/addons/spectator/functions/fnc_ui_updateListEntities.sqf index 6b784e155cb..a0a3aa69b16 100644 --- a/addons/spectator/functions/fnc_ui_updateListEntities.sqf +++ b/addons/spectator/functions/fnc_ui_updateListEntities.sqf @@ -45,7 +45,7 @@ private _entities = call FUNC(getTargetEntities); // Add the side if new if (_sideIndex < 0) then { - _sideIndex = _newList pushBack [ + _newList pushBack [ _side, str _side, [_side] call BIS_fnc_sideName, @@ -53,26 +53,25 @@ private _entities = call FUNC(getTargetEntities); [] ]; - _newSides pushBack (str _side); + _sideIndex = _newSides pushBack (str _side); }; // Add it to the right index - ((_newList select _sideIndex) select 3) pushBack [_groupInfo, _unitsInfo]; + ((_newList select _sideIndex) select 4) pushBack [_groupInfo, _unitsInfo]; _newGroups pushBack (str _group); }; nil // Speed loop } count _entities; -//TODO: Test speed of this loop compared to original // Whether an update to the list is required (really only if something changed) if !(GVAR(curList) isEqualTo _newList) then { private _ctrl = CTRL_LIST; // Remove groups/units that are no longer there - for "_sideIndex" from (_ctrl tvCount [] - 1) to 0 step -1 do { - for "_groupIndex" from (_ctrl tvCount [_sideIndex] - 1) to 0 step -1 do { - for "_unitIndex" from (_ctrl tvCount [_sideIndex, _groupIndex] - 1) to 0 step -1 do { + for "_sideIndex" from ((_ctrl tvCount []) - 1) to 0 step -1 do { + for "_groupIndex" from ((_ctrl tvCount [_sideIndex]) - 1) to 0 step -1 do { + for "_unitIndex" from ((_ctrl tvCount [_sideIndex, _groupIndex]) - 1) to 0 step -1 do { private _lookup = _newUnits find (_ctrl tvData [_sideIndex, _groupIndex, _unitIndex]); if (_lookup < 0) then { _ctrl tvDelete [_sideIndex, _groupIndex, _unitIndex]; diff --git a/addons/spectator/functions/fnc_ui_updateListLocations.sqf b/addons/spectator/functions/fnc_ui_updateListLocations.sqf index 67a026e8ccc..7295cfb9b1d 100644 --- a/addons/spectator/functions/fnc_ui_updateListLocations.sqf +++ b/addons/spectator/functions/fnc_ui_updateListLocations.sqf @@ -15,7 +15,7 @@ if !(GVAR(curList) isEqualTo _newList) then { private _ctrl = CTRL_LIST; // Remove locations that are no longer there - for "_locationIndex" from (_ctrl tvCount [] - 1) to 0 step -1 do { + for "_locationIndex" from ((_ctrl tvCount []) - 1) to 0 step -1 do { private _lookup = _newLocations find (_ctrl tvData [_locationIndex]); if (_lookup < 0) then { _ctrl tvDelete [_locationIndex]; From f67bd9c12085f548cabf3d5dcd49b875147ff830 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 2 Jun 2017 11:14:47 +0100 Subject: [PATCH 081/198] Improve entity fetching - Change whitelist/blacklist application to optimize the code --- .../functions/fnc_getTargetEntities.sqf | 33 ++++++++----------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/addons/spectator/functions/fnc_getTargetEntities.sqf b/addons/spectator/functions/fnc_getTargetEntities.sqf index f0f7bad8706..f4bb3dca49f 100644 --- a/addons/spectator/functions/fnc_getTargetEntities.sqf +++ b/addons/spectator/functions/fnc_getTargetEntities.sqf @@ -8,27 +8,22 @@ #include "script_component.hpp" // Quicker to use local vars that are accessed often in iteration -private _whitelist = GVAR(unitWhitelist); -private _blacklist = GVAR(unitBlacklist); private _sides = GVAR(availableSides); -private _entities = []; - -// AI filter -if (GVAR(enableAI)) then { - _entities = allUnits; -} else { - _entities = [] call CBA_fnc_players; +// Apply entity filtering +private _entities = allUnits; +_entities = _entities select { + (GVAR(enableAI) || {isPlayer _x}) && // AI setting + {(side group _x) in _sides} && // Available sides + {simulationEnabled _x && {simulationEnabled vehicle _x}} && // Hide disabled things + { !isObjectHidden _x && {!isObjectHidden vehicle _x} } // Hide hidden things }; -// Whitelist overrides AI setting -_entities append _whitelist; -_entities = _entities arrayIntersect _entities; // No duplicates +// Respect the blacklist +_entities = _entities - GVAR(unitBlacklist); + +// Whitelist overrides filtering +_entities append GVAR(unitWhitelist); -// Whitelist overrides side settings, but not simulation/hidden filtering -_entities select { - ((side group _x) in _sides || {_x in _whitelist}) && - {simulationEnabled _x && {simulationEnabled vehicle _x}} && - { !isObjectHidden _x && {!isObjectHidden vehicle _x} } && - {!(_x in _blacklist)} -} +// Return no duplicates +_entities arrayIntersect _entities From 6f1f9e30d3d8c87ea5ab14ced054b742ea3e4742 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 2 Jun 2017 12:52:15 +0100 Subject: [PATCH 082/198] Include dead units in the list - Allow getTargetEntities to return dead units too - Iterate over allGroups in list updates to reduce overhead --- .../functions/fnc_getTargetEntities.sqf | 5 +- .../functions/fnc_ui_updateListEntities.sqf | 88 ++++++++++--------- 2 files changed, 50 insertions(+), 43 deletions(-) diff --git a/addons/spectator/functions/fnc_getTargetEntities.sqf b/addons/spectator/functions/fnc_getTargetEntities.sqf index f4bb3dca49f..72772294f86 100644 --- a/addons/spectator/functions/fnc_getTargetEntities.sqf +++ b/addons/spectator/functions/fnc_getTargetEntities.sqf @@ -7,11 +7,14 @@ #include "script_component.hpp" +// Include dead units if specified (used by entity list) +private _entities = allUnits; +if (param [0,false]) then { _entities append allDeadMen; }; + // Quicker to use local vars that are accessed often in iteration private _sides = GVAR(availableSides); // Apply entity filtering -private _entities = allUnits; _entities = _entities select { (GVAR(enableAI) || {isPlayer _x}) && // AI setting {(side group _x) in _sides} && // Available sides diff --git a/addons/spectator/functions/fnc_ui_updateListEntities.sqf b/addons/spectator/functions/fnc_ui_updateListEntities.sqf index a0a3aa69b16..00e50abd102 100644 --- a/addons/spectator/functions/fnc_ui_updateListEntities.sqf +++ b/addons/spectator/functions/fnc_ui_updateListEntities.sqf @@ -12,57 +12,61 @@ private _newGroups = []; private _newSides = []; private _newList = []; -// Go through entity groups and cache information -private _entities = call FUNC(getTargetEntities); +// Go through entity groups and cache information (include dead entities) +private _entities = [true] call FUNC(getTargetEntities); { // Add the group if new - private _group = group _x; + private _group = _x; if !(str _group in _newGroups) then { - // Cache the info of valid units in the group - private _unitsInfo = []; - { - _newUnits pushBack ([_x] call BIS_fnc_objectVar); + // Include the group if it contains valid entities + private _entitiesGroup = units _group arrayIntersect _entities; - private _name = [_x, false, false, NAME_MAX_CHARACTERS] call EFUNC(common,getName); - if !(isPlayer _x) then { _name = format ["%1: %2", localize "str_player_ai", _name]; }; + if !(_entitiesGroup isEqualTo []) then { + // Cache the info of valid units in the group + private _unitsInfo = []; + { + _newUnits pushBack ([_x] call BIS_fnc_objectVar); - _unitsInfo pushBack [ - _x, - alive _x, - alive _x && { NEEDS_REVIVE(_x) }, - _name - ]; - nil // Speed loop - } count (units _group arrayIntersect _entities); - - // Cache the info of the group itself - private _groupTexture = ["GetGroupTexture", [_group]] call BIS_fnc_dynamicGroups; - private _groupInfo = [_group, str _group, _groupTexture, groupID _group]; - - // Add the group to the correct side - private _side = side _group; - private _sideIndex = _newSides find (str _side); - - // Add the side if new - if (_sideIndex < 0) then { - _newList pushBack [ - _side, - str _side, - [_side] call BIS_fnc_sideName, - [_side] call BIS_fnc_sideColor, - [] - ]; - - _sideIndex = _newSides pushBack (str _side); - }; + private _name = [_x, false, false, NAME_MAX_CHARACTERS] call EFUNC(common,getName); + if !(isPlayer _x) then { _name = format ["%1: %2", localize "str_player_ai", _name]; }; - // Add it to the right index - ((_newList select _sideIndex) select 4) pushBack [_groupInfo, _unitsInfo]; + _unitsInfo pushBack [ + _x, + alive _x, + alive _x && { NEEDS_REVIVE(_x) }, + _name + ]; + nil // Speed loop + } count _entitiesGroup; + + // Cache the info of the group itself + private _groupTexture = ["GetGroupTexture", [_group]] call BIS_fnc_dynamicGroups; + private _groupInfo = [_group, str _group, _groupTexture, groupID _group]; + + // Add the group to the correct side + private _side = side _group; + private _sideIndex = _newSides find (str _side); + + // Add the side if new + if (_sideIndex < 0) then { + _newList pushBack [ + _side, + str _side, + [_side] call BIS_fnc_sideName, + [_side] call BIS_fnc_sideColor, + [] + ]; + + _sideIndex = _newSides pushBack (str _side); + }; - _newGroups pushBack (str _group); + // Add it to the right index + _newGroups pushBack (str _group); + ((_newList select _sideIndex) select 4) pushBack [_groupInfo, _unitsInfo]; + }; }; nil // Speed loop -} count _entities; +} count allGroups; // Whether an update to the list is required (really only if something changed) if !(GVAR(curList) isEqualTo _newList) then { From 90ab08e0591db8bd8b174751a3f7051c2e2eefbc Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 2 Jun 2017 13:39:18 +0100 Subject: [PATCH 083/198] Take care of TODOs --- .../spectator/functions/fnc_cam_setCameraMode.sqf | 1 - addons/spectator/functions/fnc_setFocus.sqf | 12 +++++++++--- addons/spectator/functions/fnc_ui.sqf | 1 - addons/spectator/functions/fnc_ui_draw3D.sqf | 2 +- addons/spectator/functions/fnc_ui_handleMapDraw.sqf | 13 +------------ 5 files changed, 11 insertions(+), 18 deletions(-) diff --git a/addons/spectator/functions/fnc_cam_setCameraMode.sqf b/addons/spectator/functions/fnc_cam_setCameraMode.sqf index b51aaae7a35..9e1b9dd8b65 100644 --- a/addons/spectator/functions/fnc_cam_setCameraMode.sqf +++ b/addons/spectator/functions/fnc_cam_setCameraMode.sqf @@ -16,7 +16,6 @@ private _modes = GVAR(availableModes); private _focus = GVAR(camTarget); // If new mode isn't available then keep current (unless current also isn't) -// TODO: If free cam isn't available and there are no available camera targets (show black overlay?) if !(_newMode in _modes) then { _newMode = _modes select ((_modes find _oldMode) max 0); }; diff --git a/addons/spectator/functions/fnc_setFocus.sqf b/addons/spectator/functions/fnc_setFocus.sqf index 2a1583d3bf6..9c4c20cbb71 100644 --- a/addons/spectator/functions/fnc_setFocus.sqf +++ b/addons/spectator/functions/fnc_setFocus.sqf @@ -14,9 +14,15 @@ if (_newFocus isEqualType true) then { private _testFocus = ([] call FUNC(getTargetEntities)) select 0; if (isNil "_testFocus") then { - WARNING("No available entities to focus on. Switching to free cam."); - [MODE_FREE] call FUNC(cam_setCameraMode); - _newFocus = objNull; + if (MODE_FREE in GVAR(availableModes)) then { + WARNING("No available entities to focus on. Switching to free cam."); + [MODE_FREE] call FUNC(cam_setCameraMode); + _newFocus = objNull; + } else { + // Default to player if necessary + WARNING("No available entities to focus on. Using player."); + _newFocus = player; + }; } else { _newFocus = _testFocus; }; diff --git a/addons/spectator/functions/fnc_ui.sqf b/addons/spectator/functions/fnc_ui.sqf index 9c157cba64e..564e3cfc3fe 100644 --- a/addons/spectator/functions/fnc_ui.sqf +++ b/addons/spectator/functions/fnc_ui.sqf @@ -16,7 +16,6 @@ if (_init isEqualTo !isNull SPEC_DISPLAY) exitWith {}; openMap [false,false]; // Close any open dialogs -// TODO: Could this be unnecessary? Might have adverse side effects in certain situations while {dialog} do { closeDialog 0; }; diff --git a/addons/spectator/functions/fnc_ui_draw3D.sqf b/addons/spectator/functions/fnc_ui_draw3D.sqf index 63cb6c0ea3a..b460b676555 100644 --- a/addons/spectator/functions/fnc_ui_draw3D.sqf +++ b/addons/spectator/functions/fnc_ui_draw3D.sqf @@ -12,7 +12,7 @@ BEGIN_COUNTER(updateCursor); private _camTarget = GVAR(camTarget); private _cursorObject = objNull; -// TODO: This function doesn't work for units underwater, perhaps a solution can be found +// This function doesn't work for units underwater, due to use of screenToWorld. Would be complicated to work around this. private _intersections = [getMousePosition select 0, getMousePosition select 1, _camTarget, vehicle _camTarget] call BIS_fnc_getIntersectionsUnderCursor; if !(_intersections isEqualTo []) then { diff --git a/addons/spectator/functions/fnc_ui_handleMapDraw.sqf b/addons/spectator/functions/fnc_ui_handleMapDraw.sqf index d6c1ec4f28c..7fec8d75df1 100644 --- a/addons/spectator/functions/fnc_ui_handleMapDraw.sqf +++ b/addons/spectator/functions/fnc_ui_handleMapDraw.sqf @@ -9,18 +9,7 @@ #define MAP_MIN_ENTITY_DISTANCE 30 // Moved timer into map controls group, update here -BEGIN_COUNTER(updateTimer); - -// TODO: Check relevance of this variable, is it a general module or EG specific -private _timeLeft = -(time - (GETMVAR(BIS_hvt_timeoutTarget,0)))/3600; - -if (_timeLeft < 0) then { - CTRL_TIME ctrlSetText (["+", [time / 3600] call BIS_fnc_timeToString] joinString ""); -} else { - CTRL_TIME ctrlSetText (["-", [_timeLeft] call BIS_fnc_timeToString] joinString ""); -}; - -END_COUNTER(updateTimer); +CTRL_TIME ctrlSetText (["+", [time / 3600] call BIS_fnc_timeToString] joinString ""); BEGIN_COUNTER(drawMap); From f6b65fde51e2b49e4251aa8a93717efdd4337246 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 2 Jun 2017 13:46:48 +0100 Subject: [PATCH 084/198] Mark stageSpectator as non-public --- addons/spectator/functions/fnc_setSpectator.sqf | 2 ++ addons/spectator/functions/fnc_stageSpectator.sqf | 14 ++------------ 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/addons/spectator/functions/fnc_setSpectator.sqf b/addons/spectator/functions/fnc_setSpectator.sqf index 2a9a7c504bf..2466cc9826b 100644 --- a/addons/spectator/functions/fnc_setSpectator.sqf +++ b/addons/spectator/functions/fnc_setSpectator.sqf @@ -3,6 +3,8 @@ * Enter/exit spectator mode for the local player * * Client will be able to communicate in ACRE/TFAR as appropriate + * If player is alive, will be moved to marker ace_spectator_respawn (or [0,0,0] by default) + * If player is alive upon exit, will be moved back to original position * * Arguments: * 0: Spectator state of local client (default: true) diff --git a/addons/spectator/functions/fnc_stageSpectator.sqf b/addons/spectator/functions/fnc_stageSpectator.sqf index f56a70c37e7..6151b5d5dfc 100644 --- a/addons/spectator/functions/fnc_stageSpectator.sqf +++ b/addons/spectator/functions/fnc_stageSpectator.sqf @@ -1,21 +1,11 @@ /* * Author: SilentSpike - * Stores and hdies an entity safely out of the way (intended for use on spectator players) + * Stores and hides a player safely out of the way (used on spectator players) * * Units will be gathered at marker ace_spectator_respawn (or [0,0,0] by default) * Upon unstage, units will be moved to the position they were in before staging * - * Arguments: - * 0: Unit to put into spectator stage (default: player) - * 1: Unit should be staged (default: true) - * - * Return Value: - * None - * - * Example: - * [player, false] call ace_spectator_fnc_stageSpectator - * - * Public: Yes + * Public: No */ #include "script_component.hpp" From ae3044e01e84bef5eb4f0f0da2db352ef2f9415a Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 2 Jun 2017 13:57:05 +0100 Subject: [PATCH 085/198] Fix updating list focus --- .../functions/fnc_ui_getTreeDataIndex.sqf | 16 +++++++++------- .../functions/fnc_ui_updateListFocus.sqf | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/addons/spectator/functions/fnc_ui_getTreeDataIndex.sqf b/addons/spectator/functions/fnc_ui_getTreeDataIndex.sqf index 59ec19ae0b5..1621acfa888 100644 --- a/addons/spectator/functions/fnc_ui_getTreeDataIndex.sqf +++ b/addons/spectator/functions/fnc_ui_getTreeDataIndex.sqf @@ -7,23 +7,25 @@ #include "script_component.hpp" -params [["_data", "", [""]], "_treeIDC"]; +params [["_data", "", [""]]]; scopeName QGVAR(getTreeDataIndex); // Make sure data is not empty if (_data != "") then { + private _ctrl = CTRL_LIST; + // This also handles the locations list (_sideIndex = _locationIndex) - for "_sideIndex" from 0 to ((tvCount [_treeIDC, []]) - 1) do { - if (tvData [_treeIDC, [_sideIndex]] == _data) then { + for "_sideIndex" from 0 to ((_ctrl tvCount []) - 1) do { + if (_ctrl tvData [_sideIndex] == _data) then { [_sideIndex] breakOut QGVAR(getTreeDataIndex); }; - for "_groupIndex" from 0 to ((tvCount [_treeIDC, [_sideIndex]]) - 1) do { - if (tvData [_treeIDC, [_sideIndex, _groupIndex]] == _data) then { + for "_groupIndex" from 0 to ((_ctrl tvCount [_sideIndex]) - 1) do { + if (_ctrl tvData [_sideIndex, _groupIndex] == _data) then { [_sideIndex, _groupIndex] breakOut QGVAR(getTreeDataIndex); }; - for "_unitIndex" from 0 to ((tvCount [_treeIDC, [_sideIndex, _groupIndex]]) - 1) do { - if (tvData [_treeIDC, [_sideIndex, _groupIndex, _unitIndex]] == _data) then { + for "_unitIndex" from 0 to ((_ctrl tvCount [_sideIndex, _groupIndex]) - 1) do { + if (_ctrl tvData [_sideIndex, _groupIndex, _unitIndex] == _data) then { [_sideIndex, _groupIndex, _unitIndex] breakOut QGVAR(getTreeDataIndex); }; }; diff --git a/addons/spectator/functions/fnc_ui_updateListFocus.sqf b/addons/spectator/functions/fnc_ui_updateListFocus.sqf index 96b25f93cfa..0409d0a90b3 100644 --- a/addons/spectator/functions/fnc_ui_updateListFocus.sqf +++ b/addons/spectator/functions/fnc_ui_updateListFocus.sqf @@ -9,5 +9,5 @@ // Don't update list when in location mode or focus is a location if (GVAR(uiVisible) && {!GVAR(camOnLocation)} && {GVAR(uiListType) != LIST_LOCATIONS}) then { - CTRL_LIST tvSetCurSel ([[GVAR(camTarget)] call BIS_fnc_objectVar, IDC_LIST] call FUNC(ui_getTreeDataIndex)); + CTRL_LIST tvSetCurSel ([[GVAR(camTarget)] call BIS_fnc_objectVar] call FUNC(ui_getTreeDataIndex)); }; From a83d69077ca3cf33a2edae9b06a2266806924d3b Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 2 Jun 2017 14:40:37 +0100 Subject: [PATCH 086/198] Adjust default camera speed --- addons/spectator/XEH_PREP.hpp | 3 +-- addons/spectator/functions/fnc_cam.sqf | 4 +-- .../functions/fnc_cam_toggleVeryFast.sqf | 27 ------------------- .../functions/fnc_ui_handleKeyDown.sqf | 2 +- .../functions/fnc_ui_handleKeyUp.sqf | 18 ------------- .../spectator/functions/fnc_ui_updateHelp.sqf | 21 +++++++-------- addons/spectator/script_component.hpp | 6 ++--- addons/spectator/stringtable.xml | 14 ++-------- addons/spectator/ui.hpp | 1 - 9 files changed, 19 insertions(+), 77 deletions(-) delete mode 100644 addons/spectator/functions/fnc_cam_toggleVeryFast.sqf delete mode 100644 addons/spectator/functions/fnc_ui_handleKeyUp.sqf diff --git a/addons/spectator/XEH_PREP.hpp b/addons/spectator/XEH_PREP.hpp index ecf58510238..7adbccb9fc2 100644 --- a/addons/spectator/XEH_PREP.hpp +++ b/addons/spectator/XEH_PREP.hpp @@ -6,7 +6,7 @@ PREP(cam_setCameraMode); PREP(cam_setTarget); PREP(cam_setVisionMode); PREP(cam_tick); -PREP(cam_toggleVeryFast); +PREP(cam_toggleSlow); // UI functions PREP(ui); @@ -15,7 +15,6 @@ PREP(ui_fadeList); PREP(ui_getTreeDataIndex); PREP(ui_handleChildDestroyed); PREP(ui_handleKeyDown); -PREP(ui_handleKeyUp); PREP(ui_handleListClick); PREP(ui_handleMapClick); PREP(ui_handleMapDraw); diff --git a/addons/spectator/functions/fnc_cam.sqf b/addons/spectator/functions/fnc_cam.sqf index 6153c9d707f..8016bb57ef4 100644 --- a/addons/spectator/functions/fnc_cam.sqf +++ b/addons/spectator/functions/fnc_cam.sqf @@ -35,7 +35,7 @@ if (_init) then { GVAR(camPitch) = 0; // Toggles - GVAR(camFast) = false; + GVAR(camSlow) = false; GVAR(camLights) = []; GVAR(camLight) = false; @@ -128,7 +128,7 @@ if (_init) then { GVAR(camDistanceTemp) = nil; GVAR(camYaw) = nil; GVAR(camPitch) = nil; - GVAR(camFast) = nil; + GVAR(camSlow) = nil; GVAR(camLights) = nil; GVAR(camLight) = nil; }; diff --git a/addons/spectator/functions/fnc_cam_toggleVeryFast.sqf b/addons/spectator/functions/fnc_cam_toggleVeryFast.sqf deleted file mode 100644 index d4a00aeedf7..00000000000 --- a/addons/spectator/functions/fnc_cam_toggleVeryFast.sqf +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Author: Nelson Duarte, SilentSpike - * Function used to toggle camera very fast speed mode - * - * Public: No - */ - -#include "script_component.hpp" - -params ["_fastSpeed"]; - -if !(GVAR(camFast) isEqualTo _fastSpeed) then { - private _camera = GVAR(camera); - - if (GVAR(camMode) == MODE_FREE) then { - GVAR(camFast) = _fastSpeed; - - if (_fastSpeed) then { - _camera camCommand format ["speedDefault %1", SPEED_VERYFAST]; - } else { - _camera camCommand format ["speedDefault %1", SPEED_DEFAULT]; - }; - } else { - _camera camCommand format ["speedDefault %1", SPEED_DEFAULT]; - GVAR(camFast) = false; - }; -}; diff --git a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf index 9e5b17bf30e..392fae203f2 100644 --- a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf +++ b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf @@ -18,7 +18,7 @@ if (_key == DIK_M) exitWith { // Handle very fast speed if (_key == DIK_LALT) exitWith { - [true] call FUNC(cam_toggleVeryFast); + [] call FUNC(cam_toggleSlow); true }; diff --git a/addons/spectator/functions/fnc_ui_handleKeyUp.sqf b/addons/spectator/functions/fnc_ui_handleKeyUp.sqf deleted file mode 100644 index a5244366dfe..00000000000 --- a/addons/spectator/functions/fnc_ui_handleKeyUp.sqf +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Author: Nelson Duarte, SilentSpike - * Function used to handle key release - * - * Public: No - */ - -#include "script_component.hpp" -#include "\A3\ui_f\hpp\defineDIKCodes.inc" - -params ["","_key","_shift","_ctrl","_alt"]; - -if (_key == DIK_LALT) exitWith { - [false] call FUNC(cam_toggleVeryFast); - true -}; - -false diff --git a/addons/spectator/functions/fnc_ui_updateHelp.sqf b/addons/spectator/functions/fnc_ui_updateHelp.sqf index 7bd33c3cbeb..381df5e021d 100644 --- a/addons/spectator/functions/fnc_ui_updateHelp.sqf +++ b/addons/spectator/functions/fnc_ui_updateHelp.sqf @@ -43,15 +43,6 @@ if (_hasTarget && {!GVAR(camOnLocation)} && {count _availableModes > 1}) then { ]; }; -_controls pushback [ - format ["[%1]", toUpper ([DIK_RIGHT] call CBA_fnc_localizeKey)], - localize LSTRING(nextUnit) -]; -_controls pushback [ - format ["[%1]", toUpper ([DIK_LEFT] call CBA_fnc_localizeKey)], - localize LSTRING(prevUnit) -]; - if (_cameraMode == MODE_FREE) then { _controls pushback [ format ["[%1/%2]", [DIK_W] call CBA_fnc_localizeKey, [DIK_S] call CBA_fnc_localizeKey], @@ -65,6 +56,15 @@ if (_cameraMode == MODE_FREE) then { format ["[%1/%2]", [DIK_Q] call CBA_fnc_localizeKey, [DIK_Z] call CBA_fnc_localizeKey], localize "STR_A3_Spectator_Helper_Height" ]; +} else { + _controls pushback [ + format ["[%1]", toUpper ([DIK_RIGHT] call CBA_fnc_localizeKey)], + localize LSTRING(nextUnit) + ]; + _controls pushback [ + format ["[%1]", toUpper ([DIK_LEFT] call CBA_fnc_localizeKey)], + localize LSTRING(prevUnit) + ]; }; _controls pushBack [ @@ -78,8 +78,7 @@ _controls pushBack [ if (_cameraMode == MODE_FREE) then { _controls pushBack ["[LSHIFT]", localize "STR_A3_Spectator_Helper_Shift"]; - _controls pushBack ["[LALT]", localize "STR_A3_Spectator_Helper_Alt"]; - _controls pushBack ["[LALT + LSHIFT]", localize "STR_A3_Spectator_Helper_ShiftAlt"]; + _controls pushBack ["[LALT]", localize LSTRING(camSlow)]; }; if (count _controls > MAX_CONTROLS_HELP_ENTRIES) then { diff --git a/addons/spectator/script_component.hpp b/addons/spectator/script_component.hpp index ce680ac23f5..eda99c09c5b 100644 --- a/addons/spectator/script_component.hpp +++ b/addons/spectator/script_component.hpp @@ -25,9 +25,9 @@ #define Y_PART(num) (H_PART(num) + (safezoneY + (safezoneH - SIZEY)/2)) // UI/Camera related values -#define SPEED_DEFAULT 0.1 -#define SPEED_FAST 2 -#define SPEED_VERYFAST 3 +#define SPEED_SLOW 0.1 +#define SPEED_DEFAULT 1 +#define SPEED_FAST 2 // Seems to be some form of multiplier (but using 1 stil makes it faster...?) #define MODE_FREE 0 #define MODE_FPS 1 diff --git a/addons/spectator/stringtable.xml b/addons/spectator/stringtable.xml index 5226d5fd7cb..d21947b8c02 100644 --- a/addons/spectator/stringtable.xml +++ b/addons/spectator/stringtable.xml @@ -260,18 +260,8 @@ 次のビジョン モード 다음 시야 모드 - - Previous Vision Mode - Vorheriger Sichtmodus - Poprzedni tryb wizji - Modo de visão anterior - Предыдущий режим видения - Anterior modo de visión - Předchozí mód zobrazení - Precedente Modalità Visiva - Mode de vision précédent - 前のビジョン モード - 이전 시야 모드 + + Toggle Slow Speed diff --git a/addons/spectator/ui.hpp b/addons/spectator/ui.hpp index b5edeeb6f5d..880c229e6cb 100644 --- a/addons/spectator/ui.hpp +++ b/addons/spectator/ui.hpp @@ -19,7 +19,6 @@ class GVAR(display) { closeOnMissionEnd = 1; onKeyDown = QUOTE(_this call FUNC(ui_handleKeyDown)); - onKeyUp = QUOTE(_this call FUNC(ui_handleKeyUp)); onMouseMoving = QUOTE(_this call FUNC(ui_handleMouseMoving)); onChildDestroyed = QUOTE(_this call FUNC(ui_handleChildDestroyed)); From b4cecf77659bee3804370c85b8e781313246a2b5 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 2 Jun 2017 15:14:59 +0100 Subject: [PATCH 087/198] Include the function file --- .../functions/fnc_cam_toggleSlow.sqf | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 addons/spectator/functions/fnc_cam_toggleSlow.sqf diff --git a/addons/spectator/functions/fnc_cam_toggleSlow.sqf b/addons/spectator/functions/fnc_cam_toggleSlow.sqf new file mode 100644 index 00000000000..a1f270b9fda --- /dev/null +++ b/addons/spectator/functions/fnc_cam_toggleSlow.sqf @@ -0,0 +1,22 @@ +/* + * Author: Nelson Duarte, SilentSpike + * Function used to toggle camera slow speed mode + * + * Public: No + */ + +#include "script_component.hpp" + +if (GVAR(camMode) != MODE_FREE) exitWith { + _camera camCommand format ["speedDefault %1", SPEED_DEFAULT]; + GVAR(camSlow) = false; +}; + +private _camera = GVAR(camera); +GVAR(camSlow) = !GVAR(camSlow); + +if (GVAR(camSlow)) then { + _camera camCommand format ["speedDefault %1", SPEED_SLOW]; +} else { + _camera camCommand format ["speedDefault %1", SPEED_DEFAULT]; +}; From 9fdf5c03d4cdc6932cb7f5b443b6c783604ae32e Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 2 Jun 2017 16:11:57 +0100 Subject: [PATCH 088/198] Generalise camera button UI - Makes it easier to extend with future camera mode buttons - Removes potential error when display doesn't exist --- addons/spectator/XEH_PREP.hpp | 1 + .../functions/fnc_cam_setCameraMode.sqf | 16 +--------- .../functions/fnc_cam_toggleSlow.sqf | 4 +-- addons/spectator/functions/fnc_ui.sqf | 1 + .../functions/fnc_ui_updateCamButtons.sqf | 29 +++++++++++++++++++ .../functions/fnc_ui_updateListFocus.sqf | 2 +- addons/spectator/script_component.hpp | 3 -- addons/spectator/stringtable.xml | 2 +- 8 files changed, 36 insertions(+), 22 deletions(-) create mode 100644 addons/spectator/functions/fnc_ui_updateCamButtons.sqf diff --git a/addons/spectator/XEH_PREP.hpp b/addons/spectator/XEH_PREP.hpp index 7adbccb9fc2..0855442a86e 100644 --- a/addons/spectator/XEH_PREP.hpp +++ b/addons/spectator/XEH_PREP.hpp @@ -25,6 +25,7 @@ PREP(ui_handleMouseZChanged); PREP(ui_handleTabSelected); PREP(ui_toggleMap); PREP(ui_toggleUI); +PREP(ui_updateCamButtons); PREP(ui_updateHelp); PREP(ui_updateIconsToDraw); PREP(ui_updateListEntities); diff --git a/addons/spectator/functions/fnc_cam_setCameraMode.sqf b/addons/spectator/functions/fnc_cam_setCameraMode.sqf index 9e1b9dd8b65..838d501d944 100644 --- a/addons/spectator/functions/fnc_cam_setCameraMode.sqf +++ b/addons/spectator/functions/fnc_cam_setCameraMode.sqf @@ -37,11 +37,6 @@ if (!(isNull _focus || GVAR(camOnLocation)) || _newMode == MODE_FREE) then { // Disable camera input _camera camCommand "manual off"; - // Update UI - CTRL_FPS ctrlSetText CAM_ICON_FPS_SELECTED; - CTRL_FOLLOW ctrlSetText CAM_ICON_FOLLOW; - CTRL_FREE ctrlSetText CAM_ICON_FREE; - // Hide all unit/group information in first person view _showHUD = [true,false,false,false,false,false,false,true]; }; @@ -54,11 +49,6 @@ if (!(isNull _focus || GVAR(camOnLocation)) || _newMode == MODE_FREE) then { // Disable camera input _camera camCommand "manual off"; - - // Update UI - CTRL_FPS ctrlSetText CAM_ICON_FPS; - CTRL_FOLLOW ctrlSetText CAM_ICON_FOLLOW_SELECTED; - CTRL_FREE ctrlSetText CAM_ICON_FREE; }; if (_newMode == MODE_FREE) then { @@ -75,11 +65,6 @@ if (!(isNull _focus || GVAR(camOnLocation)) || _newMode == MODE_FREE) then { // Enable camera input _camera camCommand "manual on"; - - // Update UI - CTRL_FPS ctrlSetText CAM_ICON_FPS; - CTRL_FOLLOW ctrlSetText CAM_ICON_FOLLOW; - CTRL_FREE ctrlSetText CAM_ICON_FREE_SELECTED; }; // Update the HUD @@ -89,6 +74,7 @@ if (!(isNull _focus || GVAR(camOnLocation)) || _newMode == MODE_FREE) then { // Only update display if it exists, this function is independent of it if !(isNull SPEC_DISPLAY) then { + [] call FUNC(ui_updateCamButtons); [] call FUNC(ui_updateHelp); }; }; diff --git a/addons/spectator/functions/fnc_cam_toggleSlow.sqf b/addons/spectator/functions/fnc_cam_toggleSlow.sqf index a1f270b9fda..91e4f28ed7f 100644 --- a/addons/spectator/functions/fnc_cam_toggleSlow.sqf +++ b/addons/spectator/functions/fnc_cam_toggleSlow.sqf @@ -7,14 +7,14 @@ #include "script_component.hpp" +private _camera = GVAR(camera); + if (GVAR(camMode) != MODE_FREE) exitWith { _camera camCommand format ["speedDefault %1", SPEED_DEFAULT]; GVAR(camSlow) = false; }; -private _camera = GVAR(camera); GVAR(camSlow) = !GVAR(camSlow); - if (GVAR(camSlow)) then { _camera camCommand format ["speedDefault %1", SPEED_SLOW]; } else { diff --git a/addons/spectator/functions/fnc_ui.sqf b/addons/spectator/functions/fnc_ui.sqf index 564e3cfc3fe..fb3a7672f11 100644 --- a/addons/spectator/functions/fnc_ui.sqf +++ b/addons/spectator/functions/fnc_ui.sqf @@ -70,6 +70,7 @@ if (_init) then { [true] call FUNC(ui_fadeList); // Initalise the help, widget and list information + [] call FUNC(ui_updateCamButtons); [] call FUNC(ui_updateListEntities); [] call FUNC(ui_updateListFocus); [] call FUNC(ui_updateWidget); diff --git a/addons/spectator/functions/fnc_ui_updateCamButtons.sqf b/addons/spectator/functions/fnc_ui_updateCamButtons.sqf new file mode 100644 index 00000000000..21d3fe8dd5b --- /dev/null +++ b/addons/spectator/functions/fnc_ui_updateCamButtons.sqf @@ -0,0 +1,29 @@ +/* + * Author: SilentSpike + * Used to update the docked camera buttons + * Disables unavailable, highlights current + * + * Public: No + */ + +#include "script_component.hpp" + +// These correspond to the camera mode indices +#define ENUM_IDCs [IDC_FREE, IDC_FPS, IDC_FOLLOW] +#define ENUM_ACTIVE [CAM_ICON_FREE_SELECTED, CAM_ICON_FPS_SELECTED, CAM_ICON_FOLLOW_SELECTED] +#define ENUM_INACTIVE [CAM_ICON_FREE, CAM_ICON_FPS, CAM_ICON_FOLLOW] + +private _current = ENUM_IDCs select GVAR(camMode); + +{ + if (_forEachIndex in GVAR(availableModes)) then { + // Highlight the current camera mode button + private _icon = ([ENUM_INACTIVE, ENUM_ACTIVE] select (_x == _current)) select _forEachIndex; + + (CTRL_CAM_TYPES controlsGroupCtrl _x) ctrlSetText _icon; + (CTRL_CAM_TYPES controlsGroupCtrl _x) ctrlShow true; + } else { + // Disable any inactive camera modes + (CTRL_CAM_TYPES controlsGroupCtrl _x) ctrlShow false; + }; +} forEach ENUM_IDCs; diff --git a/addons/spectator/functions/fnc_ui_updateListFocus.sqf b/addons/spectator/functions/fnc_ui_updateListFocus.sqf index 0409d0a90b3..e50bc8b7bea 100644 --- a/addons/spectator/functions/fnc_ui_updateListFocus.sqf +++ b/addons/spectator/functions/fnc_ui_updateListFocus.sqf @@ -8,6 +8,6 @@ #include "script_component.hpp" // Don't update list when in location mode or focus is a location -if (GVAR(uiVisible) && {!GVAR(camOnLocation)} && {GVAR(uiListType) != LIST_LOCATIONS}) then { +if (!GVAR(camOnLocation) && {GVAR(uiListType) != LIST_LOCATIONS}) then { CTRL_LIST tvSetCurSel ([[GVAR(camTarget)] call BIS_fnc_objectVar] call FUNC(ui_getTreeDataIndex)); }; diff --git a/addons/spectator/script_component.hpp b/addons/spectator/script_component.hpp index eda99c09c5b..ec913521f7f 100644 --- a/addons/spectator/script_component.hpp +++ b/addons/spectator/script_component.hpp @@ -94,11 +94,8 @@ #define IDC_CAM_TYPES 60005 #define CTRL_CAM_TYPES (SPEC_DISPLAY displayCtrl IDC_CAM_TYPES) #define IDC_FREE 60006 -#define CTRL_FREE (SPEC_DISPLAY displayCtrl IDC_FREE) #define IDC_FOLLOW 60007 -#define CTRL_FOLLOW (SPEC_DISPLAY displayCtrl IDC_FOLLOW) #define IDC_FPS 60008 -#define CTRL_FPS (SPEC_DISPLAY displayCtrl IDC_FPS) #define IDC_MAP_GROUP 60010 #define CTRL_MAP_GROUP (SPEC_DISPLAY displayCtrl IDC_MAP_GROUP) diff --git a/addons/spectator/stringtable.xml b/addons/spectator/stringtable.xml index d21947b8c02..155a4135dea 100644 --- a/addons/spectator/stringtable.xml +++ b/addons/spectator/stringtable.xml @@ -261,7 +261,7 @@ 다음 시야 모드 - Toggle Slow Speed + Toggle Speed From 0efcd995f8a21517dc5489caddb12f2b01485ede Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 2 Jun 2017 22:45:42 +0100 Subject: [PATCH 089/198] Remove obsolete staged event - Add vision toggle to help - Restructure some function PREP --- addons/spectator/XEH_PREP.hpp | 4 ++-- addons/spectator/functions/fnc_stageSpectator.sqf | 2 -- addons/spectator/functions/fnc_ui_updateHelp.sqf | 7 +++++++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/addons/spectator/XEH_PREP.hpp b/addons/spectator/XEH_PREP.hpp index 0855442a86e..f33f46a51df 100644 --- a/addons/spectator/XEH_PREP.hpp +++ b/addons/spectator/XEH_PREP.hpp @@ -42,22 +42,22 @@ PREP(handleFired); PREP(moduleSpectatorSettings); PREP(respawnTemplate); PREP(setFocus); +PREP(stageSpectator); PREP(switchFocus); // Public functions PREP(addLocation); PREP(getCameraAttributes); -PREP(interrupt); PREP(removeLocation); PREP(setCameraAttributes); PREP(setSpectator); -PREP(stageSpectator); PREP(updateCameraModes); PREP(updateSides); PREP(updateUnits); PREP(updateVisionModes); // Deprecated (temp) +PREP(interrupt); DFUNC(updateSpectatableSides) = { ACE_DEPRECATED(QFUNC(updateSpectatableSides),"3.12.0",QFUNC(updateSides)); _this call FUNC(updateSides); diff --git a/addons/spectator/functions/fnc_stageSpectator.sqf b/addons/spectator/functions/fnc_stageSpectator.sqf index 6151b5d5dfc..5275ccd1fcf 100644 --- a/addons/spectator/functions/fnc_stageSpectator.sqf +++ b/addons/spectator/functions/fnc_stageSpectator.sqf @@ -67,6 +67,4 @@ _unit setVariable [QEGVAR(medical,allowDamage), !_set]; if !(_set isEqualTo (GETVAR(_unit,GVAR(isStaged),false))) then { // Mark spectator state for reference _unit setVariable [QGVAR(isStaged), _set, true]; - - ["ace_spectatorStaged", [_set, _unit]] call CBA_fnc_globalEvent; }; diff --git a/addons/spectator/functions/fnc_ui_updateHelp.sqf b/addons/spectator/functions/fnc_ui_updateHelp.sqf index 381df5e021d..95b01288245 100644 --- a/addons/spectator/functions/fnc_ui_updateHelp.sqf +++ b/addons/spectator/functions/fnc_ui_updateHelp.sqf @@ -67,6 +67,13 @@ if (_cameraMode == MODE_FREE) then { ]; }; +if (_cameraMode != MODE_FPS) then { + _controls pushback [ + format ["[%1]", ([DIK_N] call CBA_fnc_localizeKey)], + localize LSTRING(nextVis) + ]; +}; + _controls pushBack [ format ["[%1]", toUpper ([DIK_BACK] call CBA_fnc_localizeKey)], localize "STR_A3_Spectator_Helper_Interface" From 1d3b5bf2c230d0e32afea3b3a8b454372a0cd68a Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 2 Jun 2017 22:53:49 +0100 Subject: [PATCH 090/198] Add public function to return all spectators --- addons/spectator/XEH_PREP.hpp | 1 + addons/spectator/functions/fnc_players.sqf | 19 +++++++++++++++++++ .../spectator/functions/fnc_setSpectator.sqf | 2 +- 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 addons/spectator/functions/fnc_players.sqf diff --git a/addons/spectator/XEH_PREP.hpp b/addons/spectator/XEH_PREP.hpp index f33f46a51df..7be1c950bb5 100644 --- a/addons/spectator/XEH_PREP.hpp +++ b/addons/spectator/XEH_PREP.hpp @@ -48,6 +48,7 @@ PREP(switchFocus); // Public functions PREP(addLocation); PREP(getCameraAttributes); +PREP(players); PREP(removeLocation); PREP(setCameraAttributes); PREP(setSpectator); diff --git a/addons/spectator/functions/fnc_players.sqf b/addons/spectator/functions/fnc_players.sqf new file mode 100644 index 00000000000..8b77f229c3d --- /dev/null +++ b/addons/spectator/functions/fnc_players.sqf @@ -0,0 +1,19 @@ +/* + * Author: SilentSpike + * Return all of the player entities who are currently in ace spectator + * + * Arguments: + * NONE + * + * Return Value: + * Spectator Players + * + * Example: + * [] call ace_spectator_fnc_players + * + * Public: Yes + */ + +#include "script_component.hpp" + +allPlayers select { GETVAR(_x,GVAR(isSet),false) } diff --git a/addons/spectator/functions/fnc_setSpectator.sqf b/addons/spectator/functions/fnc_setSpectator.sqf index 2466cc9826b..491aee112e3 100644 --- a/addons/spectator/functions/fnc_setSpectator.sqf +++ b/addons/spectator/functions/fnc_setSpectator.sqf @@ -11,7 +11,7 @@ * 1: Force interface (default: true) * * Return Value: - * None + * None * * Example: * [true] call ace_spectator_fnc_setSpectator From 26ef08f86cac05c03dc69ab2e49cddb908bb3ca0 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Fri, 2 Jun 2017 22:54:33 +0100 Subject: [PATCH 091/198] Change default briefing name used on map display --- addons/spectator/functions/fnc_ui_toggleMap.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/spectator/functions/fnc_ui_toggleMap.sqf b/addons/spectator/functions/fnc_ui_toggleMap.sqf index e7fb2122213..f11cbe09195 100644 --- a/addons/spectator/functions/fnc_ui_toggleMap.sqf +++ b/addons/spectator/functions/fnc_ui_toggleMap.sqf @@ -20,7 +20,7 @@ if (GVAR(uiMapVisible)) then { CTRL_MAP ctrlShow true; CTRL_MAP_GROUP ctrlShow true; - CTRL_MAP_TITLE ctrlSetText (getMissionConfigValue ["onLoadName", getMissionConfigValue ["briefingName", "???"]]); + CTRL_MAP_TITLE ctrlSetText (getMissionConfigValue ["onLoadName", getMissionConfigValue ["briefingName", localize ELSTRING(common,unknown)]]); CTRL_MAP_SPEC_NUM ctrlSetText str ({GETVAR(_x,GVAR(isSet),false)} count allPlayers); CTRL_MAP ctrlMapAnimAdd [0, 0.05, getPosASLVisual GVAR(camera)]; From e14031d395a97caf90dac65b8056077b036b3143 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sat, 3 Jun 2017 08:56:45 +0100 Subject: [PATCH 092/198] Fix the order of 4 main sides in list --- .../spectator/functions/fnc_ui_updateListEntities.sqf | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/addons/spectator/functions/fnc_ui_updateListEntities.sqf b/addons/spectator/functions/fnc_ui_updateListEntities.sqf index 00e50abd102..49dee4e84f9 100644 --- a/addons/spectator/functions/fnc_ui_updateListEntities.sqf +++ b/addons/spectator/functions/fnc_ui_updateListEntities.sqf @@ -9,8 +9,14 @@ private _newUnits = []; private _newGroups = []; -private _newSides = []; -private _newList = []; +// Always show the 4 main sides in this intuative order +private _newSides = [str west, str east, str resistance, str civilian]; +private _newList = [ + [west, str west, [west] call BIS_fnc_sideName, [west] call BIS_fnc_sideColor, []], + [east, str east, [east] call BIS_fnc_sideName, [east] call BIS_fnc_sideColor, []], + [resistance, str resistance, [resistance] call BIS_fnc_sideName, [resistance] call BIS_fnc_sideColor, []], + [civilian, str civilian, [civilian] call BIS_fnc_sideName, [civilian] call BIS_fnc_sideColor, []] +]; // Go through entity groups and cache information (include dead entities) private _entities = [true] call FUNC(getTargetEntities); From ff6f1fb969ebd44b829ff114915ed275ec18fa25 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sat, 3 Jun 2017 09:07:21 +0100 Subject: [PATCH 093/198] Restore non-toggle behaviour of camera speed --- addons/spectator/XEH_PREP.hpp | 1 + .../functions/fnc_cam_toggleSlow.sqf | 25 +++++++++++-------- .../functions/fnc_ui_handleKeyDown.sqf | 2 +- .../functions/fnc_ui_handleKeyUp.sqf | 18 +++++++++++++ addons/spectator/stringtable.xml | 2 +- addons/spectator/ui.hpp | 1 + 6 files changed, 37 insertions(+), 12 deletions(-) create mode 100644 addons/spectator/functions/fnc_ui_handleKeyUp.sqf diff --git a/addons/spectator/XEH_PREP.hpp b/addons/spectator/XEH_PREP.hpp index 7be1c950bb5..6b019fcb1ff 100644 --- a/addons/spectator/XEH_PREP.hpp +++ b/addons/spectator/XEH_PREP.hpp @@ -15,6 +15,7 @@ PREP(ui_fadeList); PREP(ui_getTreeDataIndex); PREP(ui_handleChildDestroyed); PREP(ui_handleKeyDown); +PREP(ui_handleKeyUp); PREP(ui_handleListClick); PREP(ui_handleMapClick); PREP(ui_handleMapDraw); diff --git a/addons/spectator/functions/fnc_cam_toggleSlow.sqf b/addons/spectator/functions/fnc_cam_toggleSlow.sqf index 91e4f28ed7f..d3df1d32ebd 100644 --- a/addons/spectator/functions/fnc_cam_toggleSlow.sqf +++ b/addons/spectator/functions/fnc_cam_toggleSlow.sqf @@ -7,16 +7,21 @@ #include "script_component.hpp" -private _camera = GVAR(camera); +params ["_slowSpeed"]; -if (GVAR(camMode) != MODE_FREE) exitWith { - _camera camCommand format ["speedDefault %1", SPEED_DEFAULT]; - GVAR(camSlow) = false; -}; +if !(GVAR(camSlow) isEqualTo _slowSpeed) then { + private _camera = GVAR(camera); + + if (GVAR(camMode) == MODE_FREE) then { + GVAR(camSlow) = _slowSpeed; -GVAR(camSlow) = !GVAR(camSlow); -if (GVAR(camSlow)) then { - _camera camCommand format ["speedDefault %1", SPEED_SLOW]; -} else { - _camera camCommand format ["speedDefault %1", SPEED_DEFAULT]; + if (_slowSpeed) then { + _camera camCommand format ["speedDefault %1", SPEED_SLOW]; + } else { + _camera camCommand format ["speedDefault %1", SPEED_DEFAULT]; + }; + } else { + _camera camCommand format ["speedDefault %1", SPEED_DEFAULT]; + GVAR(camSlow) = false; + }; }; diff --git a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf index 392fae203f2..51bf1f0526d 100644 --- a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf +++ b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf @@ -18,7 +18,7 @@ if (_key == DIK_M) exitWith { // Handle very fast speed if (_key == DIK_LALT) exitWith { - [] call FUNC(cam_toggleSlow); + [true] call FUNC(cam_toggleSlow); true }; diff --git a/addons/spectator/functions/fnc_ui_handleKeyUp.sqf b/addons/spectator/functions/fnc_ui_handleKeyUp.sqf new file mode 100644 index 00000000000..d63f05d2818 --- /dev/null +++ b/addons/spectator/functions/fnc_ui_handleKeyUp.sqf @@ -0,0 +1,18 @@ +/* + * Author: Nelson Duarte, SilentSpike + * Function used to handle key release + * + * Public: No + */ + +#include "script_component.hpp" +#include "\A3\ui_f\hpp\defineDIKCodes.inc" + +params ["","_key","_shift","_ctrl","_alt"]; + +if (_key == DIK_LALT) exitWith { + [false] call FUNC(cam_toggleSlow); + true +}; + +false diff --git a/addons/spectator/stringtable.xml b/addons/spectator/stringtable.xml index 155a4135dea..c2f5ccedc8f 100644 --- a/addons/spectator/stringtable.xml +++ b/addons/spectator/stringtable.xml @@ -261,7 +261,7 @@ 다음 시야 모드 - Toggle Speed + Slow Speed diff --git a/addons/spectator/ui.hpp b/addons/spectator/ui.hpp index 880c229e6cb..b5edeeb6f5d 100644 --- a/addons/spectator/ui.hpp +++ b/addons/spectator/ui.hpp @@ -19,6 +19,7 @@ class GVAR(display) { closeOnMissionEnd = 1; onKeyDown = QUOTE(_this call FUNC(ui_handleKeyDown)); + onKeyUp = QUOTE(_this call FUNC(ui_handleKeyUp)); onMouseMoving = QUOTE(_this call FUNC(ui_handleMouseMoving)); onChildDestroyed = QUOTE(_this call FUNC(ui_handleChildDestroyed)); From fd3e87b347701af2b93f709541447fefc5584b0f Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sat, 3 Jun 2017 09:10:34 +0100 Subject: [PATCH 094/198] Fix UI gap between list and tabs --- addons/spectator/ui.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/spectator/ui.hpp b/addons/spectator/ui.hpp index b5edeeb6f5d..56b404619e7 100644 --- a/addons/spectator/ui.hpp +++ b/addons/spectator/ui.hpp @@ -51,9 +51,9 @@ class GVAR(display) { onTreeDblClick = QUOTE([ARR_2(true,_this)] call FUNC(ui_handleListClick)); x = "safeZoneX"; - y = "safezoneY + 0.06"; + y = safeZoneY + H_PART(1.5); w = W_PART(13.5); - h = "safezoneH"; + h = safeZoneH - H_PART(1.5); disableKeyboardSearch = 1; multiselectEnabled = 0; From 1e119e3af66edaf9eb65223e984a39f1fd880c06 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sat, 3 Jun 2017 09:47:17 +0100 Subject: [PATCH 095/198] Force update UI list when player is staged Hopefully this fixes any issues related to the player appearing in the list --- addons/spectator/functions/fnc_stageSpectator.sqf | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/addons/spectator/functions/fnc_stageSpectator.sqf b/addons/spectator/functions/fnc_stageSpectator.sqf index 5275ccd1fcf..b1bdcdea073 100644 --- a/addons/spectator/functions/fnc_stageSpectator.sqf +++ b/addons/spectator/functions/fnc_stageSpectator.sqf @@ -68,3 +68,10 @@ if !(_set isEqualTo (GETVAR(_unit,GVAR(isStaged),false))) then { // Mark spectator state for reference _unit setVariable [QGVAR(isStaged), _set, true]; }; + +// If display exists already update the entity list to hide player +if !(isNull SPEC_DISPLAY) then { + if (GVAR(uiListType) == LIST_ENTITIES) then { + [] call FUNC(ui_updateListEntities); + }; +}; From 47301073f227f9a397622e5667a0cb0cf09ebe22 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sat, 3 Jun 2017 10:28:54 +0100 Subject: [PATCH 096/198] Update controls strings --- .../spectator/functions/fnc_ui_updateHelp.sqf | 14 +++++++ addons/spectator/stringtable.xml | 40 +++---------------- 2 files changed, 19 insertions(+), 35 deletions(-) diff --git a/addons/spectator/functions/fnc_ui_updateHelp.sqf b/addons/spectator/functions/fnc_ui_updateHelp.sqf index 95b01288245..9c1f538a417 100644 --- a/addons/spectator/functions/fnc_ui_updateHelp.sqf +++ b/addons/spectator/functions/fnc_ui_updateHelp.sqf @@ -83,6 +83,20 @@ _controls pushBack [ localize "STR_A3_Spectator_Helper_Controls" ]; +// Too many controls in the UI, leave these out? +// _controls pushBack [ +// format ["[%1]", [DIK_M] call CBA_fnc_localizeKey], +// localize "str_usract_map" +// ]; +// _controls pushBack [ +// format ["[%1]", [DIK_I] call CBA_fnc_localizeKey], +// localize LSTRING(uiIcons) +// ]; +// _controls pushBack [ +// format ["[%1]", [DIK_O] call CBA_fnc_localizeKey], +// localize LSTRING(uiProjectiles) +// ]; + if (_cameraMode == MODE_FREE) then { _controls pushBack ["[LSHIFT]", localize "STR_A3_Spectator_Helper_Shift"]; _controls pushBack ["[LALT]", localize LSTRING(camSlow)]; diff --git a/addons/spectator/stringtable.xml b/addons/spectator/stringtable.xml index c2f5ccedc8f..45cac39f4be 100644 --- a/addons/spectator/stringtable.xml +++ b/addons/spectator/stringtable.xml @@ -195,31 +195,11 @@ 열상 - - Toggle Unit Icons - Einheitensymbole umschalten - Przełącz ikony jednostek - Alternar ícone de unidades - Вкл./выкл. иконки юнитов - Zobrazit/skrýt ikony jednotek - Conmutar iconos de unidad - Apri Icone Unità - Bascule des icônes des unités - ユニット アイコンをトグル - 인원 아이콘 토글 + + Icons - - Toggle Map - Karte umschalten - Przełącz mapę - Alternar mapa - Вкл./выкл. карту - Zobrazit/skrýt mapu - Conmutar map - Apri Mappa - Basculer la carte - 地図をトグル - 지도 토글 + + Projectiles Next Unit @@ -248,17 +228,7 @@ 이전 인원 - Next Vision Mode - Nächster Sichtmodus - Następny tryb wizji - Próximo modo de visão - Следующий режим видения - Siguiente modo de visión - Následující mód zobrazení - Prossima Modalità Visiva - Mode de vision suivant - 次のビジョン モード - 다음 시야 모드 + Vision Mode Slow Speed From 909b365903c26e50d586ed1a6161c3fcad1cb3fd Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sat, 3 Jun 2017 10:48:00 +0100 Subject: [PATCH 097/198] Fix entity tooltips showing short name - Also revert changes to common function and just handle in this component --- addons/common/functions/fnc_getName.sqf | 11 +++-------- addons/spectator/functions/fnc_addLocation.sqf | 2 +- addons/spectator/functions/fnc_ui_handleMapDraw.sqf | 4 ++-- .../spectator/functions/fnc_ui_updateIconsToDraw.sqf | 2 +- .../spectator/functions/fnc_ui_updateListEntities.sqf | 4 ++-- addons/spectator/functions/fnc_ui_updateWidget.sqf | 2 +- 6 files changed, 10 insertions(+), 15 deletions(-) diff --git a/addons/common/functions/fnc_getName.sqf b/addons/common/functions/fnc_getName.sqf index e1d08e09832..4c49e8dc117 100644 --- a/addons/common/functions/fnc_getName.sqf +++ b/addons/common/functions/fnc_getName.sqf @@ -1,12 +1,11 @@ /* - * Author: commy2, SilentSpike + * Author: commy2 * Returns the name of the object. Used to prevent issues with the name command. * * Arguments: * 0: Object * 1: Use effective commander name when used on vehicles (default: false) * 2: Get Raw Name (Don't sanatize HTML tags ``) (default: false) - * 3: Maximum number of characters to return (default: -1) * * Return Value: * Object Name @@ -18,7 +17,7 @@ */ #include "script_component.hpp" -params ["_unit", ["_showEffective", false], ["_useRaw", false], ["_maxChars", -1]]; +params ["_unit", ["_showEffective", false], ["_useRaw", false]]; private _name = ""; @@ -32,8 +31,4 @@ if (_unit isKindOf "CAManBase") then { }; }; -if (_maxChars >= 0) then { - _name select [0, _maxChars] -} else { - _name -}; +_name diff --git a/addons/spectator/functions/fnc_addLocation.sqf b/addons/spectator/functions/fnc_addLocation.sqf index c7b9c7210a6..414c7c3d628 100644 --- a/addons/spectator/functions/fnc_addLocation.sqf +++ b/addons/spectator/functions/fnc_addLocation.sqf @@ -46,7 +46,7 @@ if (_pos isEqualTo []) then { // Must have a name to display in the list if (_name == "") then { if (_pos isEqualType objNull) then { - _name = [_pos,false,false] call EFUNC(common,getName); + _name = [_pos] call EFUNC(common,getName); } else { _name = _pos call BIS_fnc_locationDescription; }; diff --git a/addons/spectator/functions/fnc_ui_handleMapDraw.sqf b/addons/spectator/functions/fnc_ui_handleMapDraw.sqf index 7fec8d75df1..d74411997d1 100644 --- a/addons/spectator/functions/fnc_ui_handleMapDraw.sqf +++ b/addons/spectator/functions/fnc_ui_handleMapDraw.sqf @@ -39,7 +39,7 @@ private _handledVehicles = []; private _text = ""; if (GVAR(uiMapHighlighted) == _vehicle || {GVAR(uiMapHighlighted) in _vehicle}) then { - _text = [GVAR(uiMapHighlighted), false, false, NAME_MAX_CHARACTERS] call EFUNC(common,getName); + _text = ([GVAR(uiMapHighlighted)] call EFUNC(common,getName)) select [0, NAME_MAX_CHARACTERS]; if !(isPlayer GVAR(uiMapHighlighted)) then { _text = format ["%1: %2", localize "str_player_ai", _text]; }; _sideColor = [0.8, 0.8, 0.5, 1]; }; @@ -62,7 +62,7 @@ private _handledVehicles = []; private _text = if (isNull _nearestEntity) then { "" } else { - format ["%1 [%2 m]", [_nearestEntity] call EFUNC(common,getName), round (_nearestEntity distance GVAR(camera))] + format ["%1 [%2 m]", [_nearestEntity] call EFUNC(common,getName), round (_nearestEntity distance2D GVAR(camera))] }; GVAR(uiMapHighlighted) = _nearestEntity; diff --git a/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf b/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf index 37ee1c0cf5c..d078e06d260 100644 --- a/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf +++ b/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf @@ -45,7 +45,7 @@ private _entitiesToDraw = []; // Apply color fade _groupColor set [3, _fadeByDistance]; - private _name = [_x, false, false, NAME_MAX_CHARACTERS] call EFUNC(common,getName); + private _name = ([_x] call EFUNC(common,getName)) select [0, NAME_MAX_CHARACTERS]; if !(isPlayer _x) then { _name = format ["%1: %2", localize "str_player_ai", _name]; }; if (_inVehicle) then { diff --git a/addons/spectator/functions/fnc_ui_updateListEntities.sqf b/addons/spectator/functions/fnc_ui_updateListEntities.sqf index 49dee4e84f9..b6206400dc6 100644 --- a/addons/spectator/functions/fnc_ui_updateListEntities.sqf +++ b/addons/spectator/functions/fnc_ui_updateListEntities.sqf @@ -33,7 +33,7 @@ private _entities = [true] call FUNC(getTargetEntities); { _newUnits pushBack ([_x] call BIS_fnc_objectVar); - private _name = [_x, false, false, NAME_MAX_CHARACTERS] call EFUNC(common,getName); + private _name = ([_x] call EFUNC(common,getName)) select [0, NAME_MAX_CHARACTERS]; if !(isPlayer _x) then { _name = format ["%1: %2", localize "str_player_ai", _name]; }; _unitsInfo pushBack [ @@ -169,7 +169,7 @@ if !(GVAR(curList) isEqualTo _newList) then { { _x params ["_unit", "_isAlive", "_isIncapacitated", "_name"]; - private _tooltip = format ["%1 - %2", _name, _groupId]; + private _tooltip = format ["%1 - %2", [_unit] call EFUNC(common,getName), _groupId]; private _texture = [_isAlive, _isIncapacitated, _unit] call { if !(_this select 0) exitWith { ICON_DEAD }; if (_this select 1) exitWith { ICON_REVIVE }; diff --git a/addons/spectator/functions/fnc_ui_updateWidget.sqf b/addons/spectator/functions/fnc_ui_updateWidget.sqf index ef6495cf5c9..d37a7b89aac 100644 --- a/addons/spectator/functions/fnc_ui_updateWidget.sqf +++ b/addons/spectator/functions/fnc_ui_updateWidget.sqf @@ -16,7 +16,7 @@ if (!GVAR(uiWidgetVisible) || {GVAR(camOnLocation)} || {isNull GVAR(camTarget)}) private _focus = GVAR(camTarget); -private _name = [_focus, false, false, NAME_MAX_CHARACTERS] call EFUNC(common,getName); +private _name = ([_focus] call EFUNC(common,getName)) select [0, NAME_MAX_CHARACTERS]; if !(isPlayer _focus) then { _name = format ["%1: %2", localize "str_player_ai", _name]; }; private _unitTypePicture = [_focus] call EFUNC(common,getVehicleIcon); From b03e0997a9cdcfd605899c07cf5fa6cd50155520 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sat, 3 Jun 2017 11:19:23 +0100 Subject: [PATCH 098/198] Include dead in unit switching --- addons/spectator/functions/fnc_switchFocus.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/spectator/functions/fnc_switchFocus.sqf b/addons/spectator/functions/fnc_switchFocus.sqf index 0ec1fc5693f..30941245115 100644 --- a/addons/spectator/functions/fnc_switchFocus.sqf +++ b/addons/spectator/functions/fnc_switchFocus.sqf @@ -8,7 +8,7 @@ #include "script_component.hpp" private _next = param [0, true]; -private _entities = [] call FUNC(getTargetEntities); +private _entities = [true] call FUNC(getTargetEntities); private _focus = GVAR(camTarget); // No entities to switch to From 1605356d6f08a9c0f4fb60913a0b32e4ed73c335 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sat, 3 Jun 2017 11:29:07 +0100 Subject: [PATCH 099/198] Show rank and vehicle icon in list - Rank is shown in tooltip - Vehicle icon is used to see which units in the list are mounted --- addons/spectator/functions/fnc_ui_updateListEntities.sqf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/addons/spectator/functions/fnc_ui_updateListEntities.sqf b/addons/spectator/functions/fnc_ui_updateListEntities.sqf index b6206400dc6..22d40c7f79f 100644 --- a/addons/spectator/functions/fnc_ui_updateListEntities.sqf +++ b/addons/spectator/functions/fnc_ui_updateListEntities.sqf @@ -169,11 +169,12 @@ if !(GVAR(curList) isEqualTo _newList) then { { _x params ["_unit", "_isAlive", "_isIncapacitated", "_name"]; - private _tooltip = format ["%1 - %2", [_unit] call EFUNC(common,getName), _groupId]; + private _tooltip = format ["%1 - %2", [_unit] call EFUNC(common,getName), [rank _unit] call CBA_fnc_capitalize]; private _texture = [_isAlive, _isIncapacitated, _unit] call { + params ["","","_unit"]; if !(_this select 0) exitWith { ICON_DEAD }; if (_this select 1) exitWith { ICON_REVIVE }; - [_this select 2] call EFUNC(common,getVehicleIcon) + [vehicle _unit] call EFUNC(common,getVehicleIcon) }; private _lookup = (_unitDataToPathHash select 0) find ([_unit] call BIS_fnc_objectVar); From 8706e81cded5ca4bfd72fc7c101d39f8aca1604b Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sat, 3 Jun 2017 11:40:16 +0100 Subject: [PATCH 100/198] Change default vehicle icon --- addons/common/functions/fnc_getVehicleIcon.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/common/functions/fnc_getVehicleIcon.sqf b/addons/common/functions/fnc_getVehicleIcon.sqf index 927c0572623..1974c57b719 100644 --- a/addons/common/functions/fnc_getVehicleIcon.sqf +++ b/addons/common/functions/fnc_getVehicleIcon.sqf @@ -1,6 +1,6 @@ /* * Author: AACO - * Function used to get the vehicle icon for provided object (cached) + * Function used to get the vehicle icon for provided object (cached for repeat use) * * Arguments: * 0: Object to get icon of @@ -15,7 +15,7 @@ */ #include "script_component.hpp" -#define DEFAULT_TEXTURE "\A3\ui_f\data\map\vehicleicons\iconMan_ca.paa" +#define DEFAULT_TEXTURE "\A3\ui_f\data\Map\VehicleIcons\iconVehicle_ca.paa" params [["_object", objNull, [objNull, ""]]]; From ce6aeb9c11face265bb3c126eed152243a9f109f Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sat, 3 Jun 2017 12:40:31 +0100 Subject: [PATCH 101/198] Show whether medic/engineer in tooltip --- addons/common/XEH_PREP.hpp | 1 + addons/common/functions/fnc_isMedic.sqf | 23 +++++++++++++++++++ .../functions/fnc_ui_updateListEntities.sqf | 7 +++++- addons/spectator/stringtable.xml | 13 +++++++++++ 4 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 addons/common/functions/fnc_isMedic.sqf diff --git a/addons/common/XEH_PREP.hpp b/addons/common/XEH_PREP.hpp index 632409de3fa..09fb2f6c051 100644 --- a/addons/common/XEH_PREP.hpp +++ b/addons/common/XEH_PREP.hpp @@ -99,6 +99,7 @@ PREP(isEngineer); PREP(isEOD); PREP(isFeatureCameraActive); PREP(isInBuilding); +PREP(isMedic); PREP(isModLoaded); PREP(isPlayer); PREP(isUnderwater); diff --git a/addons/common/functions/fnc_isMedic.sqf b/addons/common/functions/fnc_isMedic.sqf new file mode 100644 index 00000000000..2a0d0dc520c --- /dev/null +++ b/addons/common/functions/fnc_isMedic.sqf @@ -0,0 +1,23 @@ +/* + * Author: SilentSpike + * Check if a unit is a medic + * + * Arguments: + * 0: The Unit + * + * ReturnValue: + * Unit is medic + * + * Example: + * [player] call ace_common_fnc_isMedic + * + * Public: Yes + */ + +#include "script_component.hpp" + +params ["_unit"]; + +private _isMedic = _unit getVariable [QEGVAR(medical,medicClass), getNumber (configFile >> "CfgVehicles" >> typeOf _unit >> "attendant")]; + +_isMedic > 0 diff --git a/addons/spectator/functions/fnc_ui_updateListEntities.sqf b/addons/spectator/functions/fnc_ui_updateListEntities.sqf index 22d40c7f79f..626a9763a05 100644 --- a/addons/spectator/functions/fnc_ui_updateListEntities.sqf +++ b/addons/spectator/functions/fnc_ui_updateListEntities.sqf @@ -169,7 +169,12 @@ if !(GVAR(curList) isEqualTo _newList) then { { _x params ["_unit", "_isAlive", "_isIncapacitated", "_name"]; - private _tooltip = format ["%1 - %2", [_unit] call EFUNC(common,getName), [rank _unit] call CBA_fnc_capitalize]; + // Show full name in tooltip + whether medic + whether engineer + private _tooltip = [[_unit] call EFUNC(common,getName)]; + if ([_unit] call EFUNC(common,isMedic)) then { _tooltip pushBack (localize "str_support_medic"); }; + if ([_unit] call EFUNC(common,isEngineer)) then { _tooltip pushBack (localize LSTRING(TooltipEngineer)); }; + _tooltip = _tooltip joinString " - "; + private _texture = [_isAlive, _isIncapacitated, _unit] call { params ["","","_unit"]; if !(_this select 0) exitWith { ICON_DEAD }; diff --git a/addons/spectator/stringtable.xml b/addons/spectator/stringtable.xml index 45cac39f4be..28994d21dd3 100644 --- a/addons/spectator/stringtable.xml +++ b/addons/spectator/stringtable.xml @@ -142,6 +142,19 @@ 열화상 + + Engineer + Pionier + Mechanik + Engenheiro + Инженер + Inženýr + Ingeniero + Geniere + Ingénieur + 専門兵 + 정비공 + Free Frei From 93e469b41977e4b1ee9e192f7a80089730ad90a5 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sat, 3 Jun 2017 14:05:19 +0100 Subject: [PATCH 102/198] Improve list double click behaviour --- .../functions/fnc_ui_handleListClick.sqf | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/addons/spectator/functions/fnc_ui_handleListClick.sqf b/addons/spectator/functions/fnc_ui_handleListClick.sqf index b0f915fd146..aa9d1ebbc76 100644 --- a/addons/spectator/functions/fnc_ui_handleListClick.sqf +++ b/addons/spectator/functions/fnc_ui_handleListClick.sqf @@ -23,9 +23,12 @@ if (_entityList) then { if !(isNull _object) then { if (_dblClick) then { + // Place camera within ~10m of the object and above ground level private _pos = getPosASLVisual _object; - GVAR(camera) setPosASL (_pos apply { _x + 1 + random 10 }); + GVAR(camera) setPosASL (AGLtoASL (_pos getPos [1 + random 10, random 360]) vectorAdd [0,0,2 + random 10]); + // Reset the focus + [objNull] call FUNC(setFocus); [_object] call FUNC(setFocus); _handled = true; @@ -63,14 +66,24 @@ if (_entityList) then { // If in a unit camera mode then only focus when double click if (GVAR(camMode) == MODE_FREE || {_dblClick && {FREE_MODE in GVAR(availableModes)}}) then { + // Reset the focus + [objNull] call FUNC(setFocus); [_dummy, true] call FUNC(setFocus); }; - // If double clicked, teleport the camera - if (_dblClick) then { - if (_pos isEqualType objNull) then { _pos = getPosASL _pos; } else { _pos = AGLtoASL _pos; }; - if (_offset isEqualTo [0,0,0]) then { _offset = _offset apply { _x + 1 + random 30 }; }; - GVAR(camera) setPosASL (_pos vectorAdd _offset); + // If double clicked ande mode is now free camera, teleport the camera + if (_dblClick && {GVAR(camMode) == MODE_FREE}) then { + // If location has unspecified offset place randomly within ~30m above ground level + if (_offset isEqualTo [0,0,0]) then { + _pos = AGLtoASL (_pos getPos [5 + random 30, random 360]) vectorAdd [0,0,2 + random 28]; + } else { + if (_pos isEqualType objNull) then { + _pos = (getPosASL _pos) vectorAdd _offset; + } else { + _pos = (AGLtoASL _pos) vectorAdd _offset; + }; + }; + GVAR(camera) setPosASL _pos; // Location info text [parseText format [ """%1""
%2
", _name, _description], true, nil, 7, 0.7, 0] spawn BIS_fnc_textTiles; From 53736666c67ca891f13ff397acde37daebadffd9 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sat, 3 Jun 2017 18:34:25 +0100 Subject: [PATCH 103/198] Improve group icon handling --- addons/common/XEH_PREP.hpp | 1 + addons/common/functions/fnc_getGroupIcon.sqf | 166 ++++++++++++++++++ .../functions/fnc_ui_updateListEntities.sqf | 6 +- addons/spectator/script_component.hpp | 2 +- 4 files changed, 171 insertions(+), 4 deletions(-) create mode 100644 addons/common/functions/fnc_getGroupIcon.sqf diff --git a/addons/common/XEH_PREP.hpp b/addons/common/XEH_PREP.hpp index 09fb2f6c051..3df0e4f8941 100644 --- a/addons/common/XEH_PREP.hpp +++ b/addons/common/XEH_PREP.hpp @@ -55,6 +55,7 @@ PREP(getDefinedVariableDefault); PREP(getDefinedVariableInfo); PREP(getFirstObjectIntersection); PREP(getFirstTerrainIntersection); +PREP(getGroupIcon); PREP(getGunner); PREP(getInPosition); PREP(getMapData); diff --git a/addons/common/functions/fnc_getGroupIcon.sqf b/addons/common/functions/fnc_getGroupIcon.sqf new file mode 100644 index 00000000000..df2f5be85d0 --- /dev/null +++ b/addons/common/functions/fnc_getGroupIcon.sqf @@ -0,0 +1,166 @@ +/* + * Author: SilentSpike + * Function used to get an appropriate icon for provided group. Approximate. + * + * Arguments: + * 0: Group to get the icon of + * 1: Allow leader's squad.xml logo (Default: false) + * + * Return Value: + * Icon of group + * + * Examples: + * [group player] call ace_common_fnc_getGroupIcon; + * + * Public: Yes + */ + +#include "script_component.hpp" + +// Military icons +#define ICON_UNKNOWN "a3\ui_f\data\Map\Markers\NATO\data\b_unknown.paa" +#define ICON_UAV "a3\ui_f\data\Map\Markers\NATO\data\b_uav.paa" +#define ICON_SUPPORT "a3\ui_f\data\Map\Markers\NATO\data\b_support.paa" +#define ICON_SERVICE "a3\ui_f\data\Map\Markers\NATO\data\b_service.paa" +#define ICON_RECON "a3\ui_f\data\Map\Markers\NATO\data\b_recon.paa" +#define ICON_PLANE "a3\ui_f\data\Map\Markers\NATO\data\b_plane.paa" +#define ICON_NAVAL "a3\ui_f\data\Map\Markers\NATO\data\b_naval.paa" +#define ICON_MOTOR_INF "a3\ui_f\data\Map\Markers\NATO\data\b_motor_inf.paa" +#define ICON_MORTAR "a3\ui_f\data\Map\Markers\NATO\data\b_mortar.paa" +#define ICON_MED "a3\ui_f\data\Map\Markers\NATO\data\b_med.paa" +#define ICON_MECH_INF "a3\ui_f\data\Map\Markers\NATO\data\b_mech_inf.paa" +#define ICON_MAINT "a3\ui_f\data\Map\Markers\NATO\data\b_maint.paa" +#define ICON_INSTALLATION "a3\ui_f\data\Map\Markers\NATO\data\b_installation.paa" +#define ICON_INF "a3\ui_f\data\Map\Markers\NATO\data\b_inf.paa" +#define ICON_ART "a3\ui_f\data\Map\Markers\NATO\data\b_art.paa" +#define ICON_ARMOR "a3\ui_f\data\Map\Markers\NATO\data\b_armor.paa" +#define ICON_AIR "a3\ui_f\data\Map\Markers\NATO\data\b_air.paa" + +// Civilian icons +#define CIV_ICON_UNKNOWN "a3\ui_f\data\Map\Markers\NATO\data\c_unknown.paa" +#define CIV_ICON_AIR "a3\ui_f\data\Map\Markers\NATO\data\c_air.paa" +#define CIV_ICON_CAR "a3\ui_f\data\Map\Markers\NATO\data\c_car.paa" +#define CIV_ICON_PLANE "a3\ui_f\data\Map\Markers\NATO\data\c_plane.paa" +#define CIV_ICON_SHIP "a3\ui_f\data\Map\Markers\NATO\data\c_ship.paa" + +params [["_group", grpNull, [grpNull]], ["_useXML", false, [true]]]; + +// Handle empty or null group +private _leader = leader _group; +if (isNull _leader) exitWith { [ICON_UNKNOWN, CIV_ICON_UNKNOWN] select (side _group == civilian) }; + +// Handle cases where player has a valid squad.xml logo +if (_useXML && {(((squadParams _leader) param [0,[]]) param [4,""]) != ""}) exitWith { + ((squadParams _leader) select 0) select 4 +}; + +// Civilians are easy, just check leader's vehicle (unlikely group is large) +if (side _group == civilian) exitWith { + if (_leader != vehicle _leader) then { + // More common cases should be checked first + (vehicle _leader) call { + if (_this isKindOf "Car") exitWith { + CIV_ICON_CAR + }; + + // Plane inherits Air, check first + if (_this isKindOf "Plane") exitWith { + CIV_ICON_PLANE + }; + + if (_this isKindOf "Air") exitWith { + CIV_ICON_AIR + }; + + if (_this isKindOf "Ship") exitWith { + CIV_ICON_SHIP + }; + + CIV_ICON_UNKNOWN + }; + } else { + CIV_ICON_UNKNOWN + }; +}; + +// Handle military groups +private _units = units _group; +private _vehicles = (_units apply { vehicle _x }) - _units; + +// If more than 33% of the group is mounted, use most common vehicle +if (count _vehicles >= 0.33 * count _units) exitWith { + // Check the most likely cases first + _vehicles call { + private _threshold = 0.5 * count _this; + + if ("Car" countType _this >= _threshold) exitWith { + ICON_MOTOR_INF + }; + + // APC inherits Tank, check first + if ("APC" countType _this >= _threshold) exitWith { + ICON_MECH_INF + }; + + // MBT_01_arty_base_F inherits Tank, check first + // Unfortunately no common arty class to check + if ("MBT_01_arty_base_F" countType _this >= _threshold) exitWith { + ICON_ART + }; + if ("MBT_02_arty_base_F" countType _this >= _threshold) exitWith { + ICON_ART + }; + + if ("Tank" countType _this >= _threshold) exitWith { + ICON_ARMOR + }; + + // UAV inherits Plane, check first + if ("UAV" countType _this >= _threshold) exitWith { + ICON_UAV + }; + + // Plane inherits Air, check first + if ("Plane" countType _this >= _threshold) exitWith { + ICON_PLANE + }; + + if ("Air" countType _this >= _threshold) exitWith { + ICON_AIR + }; + + if ("Ship" countType _this >= _threshold) exitWith { + ICON_NAVAL + }; + + // StaticMortar inherits StaticWeapon, check first + if ("StaticMortar" countType _this >= _threshold) exitWith { + ICON_MORTAR + }; + + if ("StaticWeapon" countType _this >= _threshold) exitWith { + ICON_INSTALLATION + }; + + // If it reaches here then it's a mixed group of vehicles + ICON_UNKNOWN + }; +}; + +// Check leader for medic/engineer/etc, otherwise just default to infantry +private _medic = [_leader] call FUNC(isMedic); +private _engineer = [_leader] call FUNC(isMedic); + +if (_medic && _engineer) exitWith { + ICON_SUPPORT +}; + +if (_medic) exitWith { + ICON_MED +}; + +if (_engineer) exitWith { + ICON_MAINT +}; + +ICON_INF diff --git a/addons/spectator/functions/fnc_ui_updateListEntities.sqf b/addons/spectator/functions/fnc_ui_updateListEntities.sqf index 626a9763a05..696ec1bc3db 100644 --- a/addons/spectator/functions/fnc_ui_updateListEntities.sqf +++ b/addons/spectator/functions/fnc_ui_updateListEntities.sqf @@ -46,7 +46,7 @@ private _entities = [true] call FUNC(getTargetEntities); } count _entitiesGroup; // Cache the info of the group itself - private _groupTexture = ["GetGroupTexture", [_group]] call BIS_fnc_dynamicGroups; + private _groupTexture = [_group, true] call EFUNC(common,getGroupIcon); private _groupInfo = [_group, str _group, _groupTexture, groupID _group]; // Add the group to the correct side @@ -151,7 +151,7 @@ if !(GVAR(curList) isEqualTo _newList) then { _groupIndex = _ctrl tvAdd [[_sideIndex], _groupId]; _ctrl tvSetData [[_sideIndex, _groupIndex], _groupStr]; _ctrl tvSetPicture [[_sideIndex, _groupIndex], _groupTexture]; - _ctrl tvSetPictureColor [[_sideIndex, _groupIndex], [1,1,1,0.5]]; + _ctrl tvSetPictureColor [[_sideIndex, _groupIndex], _sideColor]; _ctrl tvSetTooltip [[_sideIndex, _groupIndex], _groupId]; _ctrl tvExpand [_sideIndex, _groupIndex]; } else { @@ -162,7 +162,7 @@ if !(GVAR(curList) isEqualTo _newList) then { _ctrl tvSetText [_path, _groupId]; _ctrl tvSetPicture [_path, _groupTexture]; - _ctrl tvSetPictureColor [_path, [1,1,1,0.5]]; + _ctrl tvSetPictureColor [_path, _sideColor]; _ctrl tvSetTooltip [_path, _groupId]; }; diff --git a/addons/spectator/script_component.hpp b/addons/spectator/script_component.hpp index ec913521f7f..d54616dc672 100644 --- a/addons/spectator/script_component.hpp +++ b/addons/spectator/script_component.hpp @@ -60,8 +60,8 @@ // Icons used in the UI/drawing #define ICON_DEAD "a3\Ui_F_Curator\Data\CfgMarkers\kia_ca.paa" -#define ICON_GROUP "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\GroupIcon_ca.paa" #define ICON_GRENADE "A3\Ui_f\data\IGUI\Cfg\HoldActions\holdAction_connect_ca.paa" +#define ICON_GROUP "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\GroupIcon_ca.paa" #define ICON_UNIT "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\UnitIcon_ca.paa" #define ICON_REVIVE "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\ReviveIcon_ca.paa" #define ICON_BACKGROUND_UNIT "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\UnitName_ca.paa" From ab12d4531510cbb46d40cd3e1a7254e49240aafb Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sun, 4 Jun 2017 00:08:17 +0100 Subject: [PATCH 104/198] Use dynamic group icons for drawing --- addons/common/XEH_PREP.hpp | 1 - addons/spectator/XEH_PREP.hpp | 1 + addons/spectator/data/b_air.paa | Bin 0 -> 22981 bytes addons/spectator/data/b_armor.paa | Bin 0 -> 22978 bytes addons/spectator/data/b_art.paa | Bin 0 -> 22637 bytes addons/spectator/data/b_inf.paa | Bin 0 -> 23199 bytes addons/spectator/data/b_installation.paa | Bin 0 -> 22554 bytes addons/spectator/data/b_maint.paa | Bin 0 -> 22889 bytes addons/spectator/data/b_mech_inf.paa | Bin 0 -> 23414 bytes addons/spectator/data/b_med.paa | Bin 0 -> 22633 bytes addons/spectator/data/b_mortar.paa | Bin 0 -> 22811 bytes addons/spectator/data/b_motor_inf.paa | Bin 0 -> 23260 bytes addons/spectator/data/b_naval.paa | Bin 0 -> 22929 bytes addons/spectator/data/b_plane.paa | Bin 0 -> 22925 bytes addons/spectator/data/b_recon.paa | Bin 0 -> 22872 bytes addons/spectator/data/b_service.paa | Bin 0 -> 22872 bytes addons/spectator/data/b_support.paa | Bin 0 -> 22489 bytes addons/spectator/data/b_uav.paa | Bin 0 -> 22660 bytes addons/spectator/data/b_unknown.paa | Bin 0 -> 22488 bytes addons/spectator/data/c_air.paa | Bin 0 -> 23402 bytes addons/spectator/data/c_car.paa | Bin 0 -> 22828 bytes addons/spectator/data/c_plane.paa | Bin 0 -> 22757 bytes addons/spectator/data/c_ship.paa | Bin 0 -> 22967 bytes addons/spectator/data/c_unknown.paa | Bin 0 -> 22848 bytes .../functions/fnc_getGroupIcon.sqf | 55 ++++++++---------- .../functions/fnc_ui_updateIconsToDraw.sqf | 2 +- .../functions/fnc_ui_updateListEntities.sqf | 2 +- addons/spectator/script_component.hpp | 1 - 28 files changed, 28 insertions(+), 34 deletions(-) create mode 100644 addons/spectator/data/b_air.paa create mode 100644 addons/spectator/data/b_armor.paa create mode 100644 addons/spectator/data/b_art.paa create mode 100644 addons/spectator/data/b_inf.paa create mode 100644 addons/spectator/data/b_installation.paa create mode 100644 addons/spectator/data/b_maint.paa create mode 100644 addons/spectator/data/b_mech_inf.paa create mode 100644 addons/spectator/data/b_med.paa create mode 100644 addons/spectator/data/b_mortar.paa create mode 100644 addons/spectator/data/b_motor_inf.paa create mode 100644 addons/spectator/data/b_naval.paa create mode 100644 addons/spectator/data/b_plane.paa create mode 100644 addons/spectator/data/b_recon.paa create mode 100644 addons/spectator/data/b_service.paa create mode 100644 addons/spectator/data/b_support.paa create mode 100644 addons/spectator/data/b_uav.paa create mode 100644 addons/spectator/data/b_unknown.paa create mode 100644 addons/spectator/data/c_air.paa create mode 100644 addons/spectator/data/c_car.paa create mode 100644 addons/spectator/data/c_plane.paa create mode 100644 addons/spectator/data/c_ship.paa create mode 100644 addons/spectator/data/c_unknown.paa rename addons/{common => spectator}/functions/fnc_getGroupIcon.sqf (56%) diff --git a/addons/common/XEH_PREP.hpp b/addons/common/XEH_PREP.hpp index 3df0e4f8941..09fb2f6c051 100644 --- a/addons/common/XEH_PREP.hpp +++ b/addons/common/XEH_PREP.hpp @@ -55,7 +55,6 @@ PREP(getDefinedVariableDefault); PREP(getDefinedVariableInfo); PREP(getFirstObjectIntersection); PREP(getFirstTerrainIntersection); -PREP(getGroupIcon); PREP(getGunner); PREP(getInPosition); PREP(getMapData); diff --git a/addons/spectator/XEH_PREP.hpp b/addons/spectator/XEH_PREP.hpp index 6b019fcb1ff..96802dcf4b2 100644 --- a/addons/spectator/XEH_PREP.hpp +++ b/addons/spectator/XEH_PREP.hpp @@ -38,6 +38,7 @@ PREP(ui_updateWidget); PREP(compat_counter); PREP(compat_spectatorBI); PREP(compat_zeus); +PREP(getGroupIcon); PREP(getTargetEntities); PREP(handleFired); PREP(moduleSpectatorSettings); diff --git a/addons/spectator/data/b_air.paa b/addons/spectator/data/b_air.paa new file mode 100644 index 0000000000000000000000000000000000000000..eeb69e354ad8ebff9f5293b22cba8484c767a301 GIT binary patch literal 22981 zcmeHP4Qx|Y6h8O8c5CUn*AXTd&FIGFGBd_%T!Kl*-lo7B7>vOi6$UFTQ3(*MKmcLs zWl91OT(j^aQkWrPbO{g=SR$6~K~T|%AObP+vtkf1C^RrwhV7pB_JG0OZ~-F=c^uY@HevjQkBS_z`7CD*mVu#XT~ zrk7`e7&dhfA+IP1_EDv- znZlD_)zlf~UktPt!o=4-&1lFrfpw#Dar=^{{8j>Bw%ejo@9VImFPJKNYU%g#H!iWv z1fm_h(-p;T3ktknj)-KWo62sAWnrA?sW2i?q!7=t-_q`Aosm$hcA*DAsjXAGZHs+l1trZQ`nriB zZ1IU3&0>Mm@sdDD+6a4AJoSpGbY-eR-5qH+dTP^Czm&_#`-_*7>gmeqItziqH(CP5 z6s5!r^!z2s9$0ov9g;B z7$BeJM9c1`3Z2L0!1A16k*HDk&0JSUqgAkH1ScCbD*7$1_qL}_ce4nma!MV|ED8@% z!*Trr(nBD?!Fg)Ek*4RLTR}FO84hKA_4MZvPRBOM6UZRiq2Y3nkj%%5Ic4Cfh!mNh z5d2e%j(@$}C)OmRX69|kCZ9LI;f^HJlTgFfQ%i10z} zy7Ow;ojJofd#g|Q{Z!RjbJ?iCeWi`fDKX#1>KXHe#Py^P_vibQ?FZ2=?bx}H^#YHV znKf)!QZuL@j)-m#4G&cno$TOu_cK$ei#-qc4Vrc>)EFLC9^%0 zwFA*VC>~uHiS>^YZou;Guj_v#p?^xR+|Z^!&Yy1pW|deVNGsVt7%jP)*0O;;?y?Eu zkNuWCD#6ompvq1&G!n~z{Ufve+!#0Q2!jU0mFwbRgA>)0XR|3PE^-TE@57; zHs!(lYS+}ugen35-9#9WD0;mVngU$w=A5agd2h@X(0O|qtptAwz z2h;=V0rj9GfOS18$LFRh^*zVP(zsf>;*qW(H*D5q^HQO$vJB@~z@5*7zw5sN_h1o&~*qS_$ zTM|CR{n78lLGsN_CfHy3^>_RbkfC07@czBU>@M{jZu@%d+l@C?nal?cAJFL9+rPf@ zqhotdwkhN^7lr7WH%GIB_rHNzf9KcV@o7)drHV=O*|NEv1?$#z0}bsd2G?BXf9S9Z z8uL{l?pMwCg2L(_8vPEu%a&=f{?GL#(;GO;4igzYs(efWiun(WVHoQXM*#VVd`xPA zeSvT5h;N!g){m0s? zYM#!pY1)ky;Opy62E5;R|F->@PaD=OWWOX_=viGbA`0OBV1fx^yR#HFT;;pJB&@&g zkMZLOAifVqhW|C6Z2YG{zAaYVl4bn_TwBx3o7t~1w*n`;)!^PuxBak{Z-UgaAyrCE zHviu|t((~9zA`}R()NZYVx!5kJ7wmV`}SJT#(ZTL(NX%_ZX4K$%J3XnJZ?eqYeVi~ F^*iAe|FQr8 literal 0 HcmV?d00001 diff --git a/addons/spectator/data/b_armor.paa b/addons/spectator/data/b_armor.paa new file mode 100644 index 0000000000000000000000000000000000000000..8e3922f0b1ad238bd261163a4e1e07129cca86e7 GIT binary patch literal 22978 zcmeHPZA?>F7=F*aZJ|oJb(6`mL@ulaaWGt_%YN{2VG4Aa$|eO|Ksqp)M$K3RIz zx>4iTl)p>(4cA(Lib{a$8h|aE0Z#Mx1E&2zzL4P&7z9=fkPV>DWc)FoU)B@?qaPBr znYan01c=`;N^`Rv zi>ZUUIvp;_8j%AeqdYesvZ8Rfm$W%X6Ud5pNFcnKkisZoisCo9F1Bj1QsLRCa&fe@YtF9@(pHb`sG6Aqj zD+4eVHZ9I61VYp$`RS0%=raG}_l~S(EIqNR#-lO1uPt*(ex9-7M61o|j1?PIF4(Rd zPrlN<)iSaAbkBA*Z(vnH0rc0kY)wk5Z+ZU}4H9Y-#LtIkV#O+mUPA($*(^;c(j3(Z~b>OHjGb7!YHBT|&1 z6%p3%k}|!kR9SF%8}4pSc-LnQCCZjzI?1NW&a2=hW_MSv)J@Af2ab^Db6g6%0(WF% z(Y^Z1mP^Ea&QuGegW8VQPMO=Nv6qC_WB ze77kNoqD7IAWAeZ5qC&L5nm$3gou}a<>BRgSR%#%3ZUuy@J}&h%mT#7#{$tqaQyBY zMR#9I6Y8xP^80C!opi+X%SV{AT;>mn1L42PKhC}z3E9R(eJRURQ{$dN|IE|)5e&-t z{3UAl^F*m05ynIW!NaI4rD5GEXD>&dkxUyM)b%kIkM9f?`D1#yr3?mw$+S0|p6DF& zQ2G@wg)|YpcQRj0Ts}0yUjnD{q}PVy=e+6vzW8@imw&CR$H7?3_k1M?bSkS!%D$k8 zcv-EsOhX?+0q`fRN0@#I77s|1Vr51t_0VtACdo28pASTSB4hk@#m`&3XAC!6|9$Z{ z;;YA#(e&<0{`*0o5f9hHpz9951Ti|CbsJdR7no6pWetBm5LRK#3DCh8t$cCK^Vd!A z#XX--(ElO?v-}Id)4bvFpd5+S4=_~0FM@h}27rAwZgUkj8s>YZ zHvB9xc95SHGMy9xzNZefPR7>n;2UpYe~90ANqifbj`jQHhjkKLJ@E$4Rr}_;{1A}G z{rn~RXEGfyg{XyQmA7RvmeW{eCDssy?gOsg0|E~RX^;*DwWL8UN%Y^-(AY57?VIcJ zY53`ov|$I|Hg_;PDQOzoLN7|-YT$VNj;dJvU5j+g`_FL*Zk8X0JkZ`1?o0rg-ofPO$f7;3=r5&iIReo)1cjHX#7 zJt&R4`}z+#Dx`IRa84t9()W!2v;NWDHsC*7f7l1D6FGOqsjqST)r?DK& zJ{1LcweRZ{))>xd{DzPb+{@yGu+tMf!i6n~2ryxHIQL~Jy9^hA*3l0AL48!^1} fv^eQEp5ip!k4=0;<$UJkmG0EDb$_}v{tWy9)p7CA literal 0 HcmV?d00001 diff --git a/addons/spectator/data/b_art.paa b/addons/spectator/data/b_art.paa new file mode 100644 index 0000000000000000000000000000000000000000..0aac8b828e3a592eea246fa9c0a03c0565db6b2e GIT binary patch literal 22637 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 E1zjU$T>t<8 literal 0 HcmV?d00001 diff --git a/addons/spectator/data/b_installation.paa b/addons/spectator/data/b_installation.paa new file mode 100644 index 0000000000000000000000000000000000000000..3ce55f2d3669ba890c00dd369aebad56425b7083 GIT binary patch literal 22554 zcmeI4PiPcZ9LIlecUBTix-sqImV%wig2aUMR(crYY=k6R8r@naEg}*X+JFtM(0Gtw zMrCg?9RevLX>AV$(L-%5duq#g30{Pp8}05va!>?mOLEzC`uk0seMxF*4q4;k_c1d& z-}&?Az3=;d-rE_NNd&#U*+ct!2eJkc6$*tdq5d%2FFN2Px;Oi7k7&iS==Xbi4%ocz z@_ac)^ldlM)q_Oe4-geUAX?&io#`B@mt)jQwl^x6U@ujI!Nlrf+QK@cn-44Fs7hM#%8EfZ= zvTfNPrujV{iDQM?T)g#W1IMv83!#CFiIWr*g4*i==t1uJGYKi?&H@ zxkPrjSr!tCRZ*9k3!TsBqdJ7OaU93x05>?mBh3NNKuLXh!TZ;0cI7c8A6NIU&2N=X zrBYhgyMOgre!sNv>E4B7uS@Ckv!3Vr!Ica*ifHE=hxtb9QgG*Px%qd=KeZ#BM*A;2 zuxb5=@5e2kq&+-NuDiNC8?OD^7w_^U*GqFk`>*!y5`-4|Qea+c;?U!yZm5Rf2a=jhZe}8g4*`gCP{Ls;W_y7;!0X%32 zzyo;D(SY#*Jb(xApdA1Y;6X9Zk06c&P9Ss;Czyo*y5846n03LKSV0-`% z-~l{n2fzb((9wYL0X%>Q@Sq(458y#Z1I7pN03N`Db^ttp2OSL(9YX8HSKymd@rO7VOd{oK(I4pXAU&0>@TBm1++jF9) zSeNCy6x25%diT`WU{t_bm9N(Mmr1?q@e~C8Ck;;j_geBdZsVlMlhl8ZQ?1Ka>-^ot z&T?%3Nq%jv(AL!S7q@RFH%VSb{NNY$pQ7*gP0%IYFZCabiig+i7=Wr7yi%_`M0G&< z(VkH($S>jn@ql>H4uA*nprZl(BX|H0;6XdEQ9PLPtwf`m?|QTS%r9OjdPaELe)xJk zeuIW$_S{eX5~SZfh;DLg*KKvV{pX9}*H{W|@g<_e-tf)lPM+Kil8z`DFRD^vo;KG4v0( Cygf1i literal 0 HcmV?d00001 diff --git a/addons/spectator/data/b_maint.paa b/addons/spectator/data/b_maint.paa new file mode 100644 index 0000000000000000000000000000000000000000..53b969a7317a2a667304785843cbd743a83680bc GIT binary patch literal 22889 zcmeI4acC1)9LIm}?qUsTa;>f?o72;!ld@Vjr&C$2S7mK8TAQJ1t8_K9`(vz@ouZCm zYM!-%g()$%l6BGU9}yg5Q)t*9ou05iWH2bhB2;5D7~0K0ma4OJB;MY;G`(3jaA4<@ z-y_%FH}CG0TWu%6G$rA0*<&-XO78URUG}^>p#Lpl}c8Fxr zps%j6Rk-Qi-Ch{8Ih@MNDOrqzH2Pg{7m=veRBvt*Z8>)?>d;lL%4de!1~O5}9K^9Cb|B{hF5! z8Dp}nMGum}LZ@93QoNU-rsT!voFor;S2w62(jJmDj6PAA4`of;1c>hkMOY2A=fc-H zZn~EUXP5Z*e-5C8=5|e)r2%o~-U5Qhk#~jgH+ehnFz3>^@&TZ){CUCf(E? z?!U{TmB+qNwxltW;jD+%XS ze!POYvu9_SL4F?7^+VUiQug6T53xeegG(8Yze?G4jlRF6xTvR^*V~szw083+K)c&8 z&W^Fo2xZ&wl8v81Jw3Ta&n~*kYN-}kN=H_D1+!iOn}g@mg@aevhqpJI6?5mm?2kI* zK-SMG_hWMW>HWv2NsyE3zBV2&zh8?`-E)(z0+0SFACG57^LkS!OGjr`?QJ{G>R&8e z8kw9Q82|hI%_xhX|6EUw|9KD+>?C+Rsmhj-w!>sxFSj#InP4TGpAYCCR2Mbt*$;HK zLPrWi?1qMIuYkkGH1f~fu>3Q{ zKk{Szl(PAqJwwzyVpc&v&<`sckYD5hc|aa42apHk!O8|4ACL#+0eP?-Kpv0>D;scp zKpv0>2W(Z0c<7?P{W2%)52cVhQHTUhcZD5`ltH*rn-Haa9smeg1tsq)AFq( zNeQZLcN5J$Y~0vnmo`YF)D!8N5$!UJ>nrs{Z{kOK;K+*3BP)3SoBjSLzyD(;*MxN~ z?6tZ5MIYzh2AW_~PO|Ech%n9jAIyel;f<1h-aZ8+_RI{_Xb1VCKbE_9TJdR=$u1*c7Tc<1}Yy zDQ+HNvpZ$WR2?7N&p3eoJ{_0+JpL$MP+Pkmbd5=A-ImxDmHGKn PNyXO8Zn3^+CcOF+Z*tD* literal 0 HcmV?d00001 diff --git a/addons/spectator/data/b_mech_inf.paa b/addons/spectator/data/b_mech_inf.paa new file mode 100644 index 0000000000000000000000000000000000000000..967cbe7ee1fbbb026a57553a9db967ff3030fded GIT binary patch literal 23414 zcmeI4e{2)y8ONXZ?)>A5jYCQ_&{Sd*8^a)wb&WJ6hn#_uc!S~&J29;xA<%XM0#-0X{ssJWE2ax|fz-qcZVA%y|s|xbrBoI5m8~|hH#;Z1Z z=&`{(7i$(@eo-X4fZ!IvLhv>rY`%oRxUCFM4IoTD528FUxdoG_>-(}`{-aIGEFb8t4Tm@lTIT^@iU~iC*e(MeARt;c#OPcH5R2z za&?1X?v24%OWRyQi)9idt0#qav}Az5#+%MEC&T92DxESCN7*VaR?S@bd+@#4D% ze1029LuwIeUC3lxASio>lBB3?flt2N=G6!ih~a9Btz6jNbQr}qYi5ou5|#+0$zkm_ zz(O1NRo&=BBl>9od9wasZf2_7BdY80uuuXte*T~!h?c%qYqztZsLRQk z&ZkY2ju)CQ1^fI-J3ZksuAj4SM|GY(0EQizH}fRPq`hBviPb?`x7j_*mDQxReBaz2{T!8;C`lI=OUE!^DIzh}+gHkJ&Kby~n4>m97Y z?q^s&0C3d{fKNI`=pnHDe#A}nk+J(THo+3SO!G%i!mh0v0!ZSOp;_(GsZ0-o-0s5{ zuI=f+){*7EFoPriy+8$#^#$8MEPW7=!;sGRZ2kv`rKZG5XZ=MsUmv6Kh1ht!S?^f9 zzp5QO4I|_AW$wS7yupIb>MNiR60+rCjhDAK?g8%a{|#?ke_Vge1Drq3Up5zTJ#Zd) zKH&L)=YyOFI1ikMoErH2z+06mO?3Yzx_&nP<9FB7*YW^#Z{38@;0gg8br%N+ z9e+ChR1DN6WM10FgQt$?pI(=~zHUoRwtM`w6AHjRXV8O3m51yYc>j4kvsz$#t_Q9M zu7{ilI1ikMoEmt3Y>2H@`gF z+5LiEkqO!I3e*gLmaXtX>-(zLE5F|qs!y->0&sK;pyqAI964hj31(~KX>+3dpY<@W z|Lc*K^Vp+6y3}%}WW#z29KXtwe?b?~n)G~lFb*}{_=%6AY>}mBU)SjA;?MV8|ESwq z(6Yy(_8pz;znRV^kyf^r+_I(<`imJG<-GJC|FlXpqf&n^cyih1@!Kv$r)FIP{|3wG B#?Sx& literal 0 HcmV?d00001 diff --git a/addons/spectator/data/b_med.paa b/addons/spectator/data/b_med.paa new file mode 100644 index 0000000000000000000000000000000000000000..82bccdef5e53e80f731002740612ef25864e59c6 GIT binary patch literal 22633 zcmeI4Z)h839LIl8{wxbixhg9wh;6KaQ5=?v+d4?wYlXJa)yBGvDplg9C{_^*tx((L zao88W*f^(%!Zu%7ABe+$Ni=QAm0nHHVm+S5WqbGupjq-nLYq^$N>++_aJ%zS^@m!g1I0bj&y8syr6Wvu(rmZCEy>c%m1g=jraJ-yFvHxstZZdnbNB~f zf;IF4=ewq{csC?@i2WLhy&E6ab#U-YvAhSfICo=-w(pqOd5!^0*V#>Zub?sE{kVR> zYTQ^+OM!R+{H`0Lv6l7jROn@F*9?P}V5h$+2=3I9u`GnvI>Yowf?X_?i{(R_$G^g2TeNwoZ~dqKTMp3u zmqe*Vevlt38tD51@jyHf56S`Jfp}2SK;r}PKs*o+$^qhmcu>(m;{)+PJP;4c0pfvp zP|-l+1MxsS5D&@$;(>Tj(Lmz^@jyHf56S`Jfp}2SK;r}PKs*o+$^qhmcu>(m;{)+P zJP;4c0pfvpP|-l+1MxsS5D&_MyM+fGbb$IwyKB{KzJ_zAp8d@s#4IjpvEt)d)FFp1 z#NZfC#O9VB8pdf`bL{{{XI9SPgn{EFsA5sOfwgL1t?TE1KAv@0{hw?1`40GUJal>q zj3qfumGcN+<Rh|i8FBv3Kl-EtPISorN2B*Z|JP*y$8g%+Y^%?=0z3;Y zJ#+~5;28EFwL1($Qp^4qAqz_b$KiAI!|K0%doVueFTj(Lm#a&4XXAmFTKCWB+acv6-IyHgPOqe2A}UyAH!mR^+L~!{e^) z<3jxLKFs_$bEoqE^?Vl}JesgpW0`Hmw?=p|{!@q7((&ORM!@+h)@6k literal 0 HcmV?d00001 diff --git a/addons/spectator/data/b_mortar.paa b/addons/spectator/data/b_mortar.paa new file mode 100644 index 0000000000000000000000000000000000000000..331bdcbcb0a3881da46b3e90c62a976704b9561f GIT binary patch literal 22811 zcmeI4ZA?>F7{{M;Z#(ELUR-Q~ag&(Wgj$~nOR0QCag6v!(<ui6a&Kq)nbw98%~G~-3+Jp0SJLKFTHx;Qs? zwaWJ?e|;nav@8c`D+V}K0`Qp&V2r=+v(y8bEyH7Q4wxMv1;9Ff;xAcz*R>27{g7C< z5hnr5S>jC^Bw#&~4TeFY&LFCkln*t;sEV^j#uUk#58H_41wN3}YOp3|fuV;w8j>6h z?#=B*uM?H_lz?eCrc+jI)i4DL&2U&lP=h0)vzLEiP?upUF^sJduW9$1vq>{vF+I2Uhs{FjxRU_MM zXPk7f$RK&$@=%7In8XP!L1o13C(W&nL#3ODJ(g;vn+#NjT_7*5lu1dSZ9!?A|ZuhsG~S8tc7yqGR+3X%o3zLL_dr0Iht z#wJ3jR^=>}B`H47R(ZGQ2;gU4}TXd zP6*WK$A2UrH22)q9X@6?{k2_*eT$@t&+P{?jY|eoY?bJreih%Y}SLbKK;+A>Ho$=e6d)5cGF$ zydthQ&%)auFVltx>`%x6jEBfjy`UfHhn@}idmni~9*_s!0ptOB(6a&O2jl^HKpu1l zkO$;J&jy?ykO$-edC(m|9*_q;8*qL=9*_s*L3aRoKpymL!1)1rKpv0>-2vnQdC;=~ z=Lh5gc|aa?2apHkLC*%9ACL#+0eR3JKpv0>JsWU-Kpv0>pYPTMyr3(Za)BI zj+bv@yarxqKS+Dvkz~eF%hZ78`HNOO`&89;3mEH7Fe&oP3XTo;sksFUkd6~=XpEb`%6{yy;W$1=tE>muFbkM&KR z#*qqm9Q}#pg80OIzcV?kOw^*@cxKAAP>lc?f~-e|K!0cmbf%bLB*-g zy-8lFjj{G3XsfTM-*m3qLe{8^eY+j%&hlLfNjF)I#AKMQ*fc`!lw~cu5S0G=2b-YBv`r_dwZ#{SG9sY04fjyUx55w9P z`ovF7Vi6=~hfy&`sy{Tpwqqey{4JWfp|fmm=x(yDL*qK<-P3VbLfY9O>n`1M*am(_ T<$gYsmb)Q*+7I2cC%pO_EGoWW literal 0 HcmV?d00001 diff --git a/addons/spectator/data/b_motor_inf.paa b/addons/spectator/data/b_motor_inf.paa new file mode 100644 index 0000000000000000000000000000000000000000..d78ddfc9d6d6f99cc01ad9027c43272e55e29153 GIT binary patch literal 23260 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 A!T!#h;yCK=ZKi_w}@ZJ z$yufFZOY$fo{_i$VBQ*l1zv#k7Xixo`yZxiAayc4499^vd0_zCWWj+dMt2ii z1@RC_`j&+3mkHP!vp{#5C~-uQ?0HZ{^ol4Iz8x>w@}PnwEeA>$2Eew{!ArXca~%sR zkzFE(er!B`x8+Q|-2lZK8`_G9Lcs*Fbs5k7{3T;fL!YnE^VP6>l(EH%r_E_FUDThT zJ^G;p_VKP*STNk<)~SI)+W*>>)ucQ?ym2w@ zy9Z7WIoQGes<>41Y_BOf4wk^&&@9Gk5f5NN{lT!6 z4Os((G-RY^EOyNADYCdE`Zn33#)N54LG`bD8|AZwx-emfT*O%e75wt*e6n=Iq#rUh z^E%2|^w8X1;|B%Cps}Ay7HbTxGW%n#Djk-RX9o>jvy3M@C2{(t^VMZ%UiIfGtUS1AXKdnzGb ze#zo*jw1j;HBh^LtKUM8Z5=a>$jlmA={nI|VT@}pETmWIf&s=HTg?7qUz~2#am_Gy z3G5A~nq^Uqf-#45lD_|u{Ze({9YTlQv%2IIgQul7uf9t@RYYu7hhx|;j~jh0BwgQ0 zh||zMWtGgaRh`5aOv%jly_%NAE!4n2#)%Rj;?QI)UVMoZ@f2?URfpA?@Q}cn0w@#u z@J~ViRDdz+@gMPn+B^KZV|YWdaBqHhC`47Z*B+bAO!`=JGG)4D6caMB*|2y@Xh-UEqu~(JHcqK%C+?~%iRM&OB z8Hrmx4?b3VPmcF?Y`!SYH$RCVe=<$^5#xvgsE2TfmQWAWLvzCn_Lq~DKtG}%(T|z} z$OH1AxdHoU1C9^K1M+}8XbK zO#$QqdC=UTjSq@g10Z24XS!@cNBEqnm4gyvwR{?F*whDn4jw4=jJeDBL~XctoVR15 z(SrVH1*fZi(|vr}XXyjWRX#1vU8d8$ryHcMrN4c+?*Lp_l)yl*a*zLYohpBdfD4ELFwoFO%th^~d}P1yCRC7KIZM z#G^p5EY?Jd+QNJIDgWY*SNPMJ#Qojn-QfM2K6>FZu?Uid5k?*6}d8esr~cr3c? tt&Y-pk=~@EUEy(7;2ZPBNZi;?G?ngq**e~%ay=hkl(Q*XEOAP!KLObE^soQ` literal 0 HcmV?d00001 diff --git a/addons/spectator/data/b_recon.paa b/addons/spectator/data/b_recon.paa new file mode 100644 index 0000000000000000000000000000000000000000..5c5dc8bb3d1551693578a59633bb0bc86388c92e GIT binary patch literal 22872 zcmeI4ZERCj7{{N}+pZm>Yk8RtKe#(7F3J{X92jGPThVPLj2Bs1A%k_ie84d&2_xz{ zdqxI<1mxO;i3-Cgd~lJ31;Z!YuEr0b$(Z621A{I)AYh0Kn=Fm(j_0(yyO}Q;M&<%} zPTKW8>AmOW|2)6*oHaSe!b(a!<%>&Jd&~gP*w|=E+I~-&uo*AHF7Yfa7B=B;VXrDK zUas(K%HKaq0MW$&*H;1Dt^gSH1H8C~e{pZ65y(mjro)%OJOEDt$Rp2Pck@gCLSXcL zBG(Zgfvk3-x~>qA_bh;~qlB{C4a7-`;B8V~o?%f;u2N`_EQ+XMaM)pzOQDWry#$oz zhd|!u26!Y+y%CqUnlP4Y0|>6B11m1D@Jn$6cYh$L%V2Rf6a;D3c zxKs3?D&ctVZ2kIebtl&lB^*26R=7@rH)0ka{r(nX;c1z_dTeWA8JX;0VY}61^T*`b zaalaLJnjh96W6}q$mhfwSWgF_BhF$|LNR|#Dxf#Q&E$xM035Q*FUJeT1BD4k*G@2B zOOuGLoTLS5KkU7hU=>fCEhAc`?@*;R!(6m9;<`En;F~AG@jUlJQgniQq&%J!%Q5Vr z?C9pEE8*@?jQDdPFgvu+7F_M4opIK2PzKR9G10zRJyw!yO9y#-C?Hy%5zm=h4pm$3 zTy(_v@m1^vmD;d9h25RMD{$K4|YN%aeDsIUFt;_ zW3JrZo;fDko=Pa9{&Ze7)y^I0;V)rl^Md{#tM~t|$2k7)OZqpG&6sxy?^_^7y)Di? z`=1p4rom?W?^HUS$Jcy}RokBD3)S)B1^qwC{vHW1op0?TpZxDuFB;*$>o)gy)3b76 zl=~B?KabJ8y$hBJ|0>W^V1j+LlrQjw?Y_a6w&VMojvX)hf2M2mYjGgiyT zuO05B`?lWq&C8wA=r z2f(|5+hsNOr2qM*Oi=mw^?2wjeFqM6oA22Tg!S&>u?!r5Q8D<%gUW+G2JAojQ;!Al ziSdB(fbn1`fIJ`%Ml|63h&&(<$b+H4{o+9e8NfVR@4Z$VJay)POEniT*7_=ZN*ZbB znX)|}7b!{mt#7{4E4J{$muV0698+~+SB&r=`8shHF4U@NSUbivHp|- zsPDruEjz_ef#O)Kv2I;*VE(4(=GX9FYu?@8^-&j8HPfS)J`{&6)z(<2Wa_s+H2=NX zz$ShceGR;7Q*w5hc|zm1duN;da&mSV`hplL{o}CBd`9JZK3!0}Rex;es8)Xfmt@~% literal 0 HcmV?d00001 diff --git a/addons/spectator/data/b_service.paa b/addons/spectator/data/b_service.paa new file mode 100644 index 0000000000000000000000000000000000000000..3c74ca018cd50881121d2a34bcdeb57735763792 GIT binary patch literal 22872 zcmeI4acmP+9LIm}?mF6y(Xm+uqFHA;=Zw<@1tb<|MHw{=2DG#!jq8R+l11nrj7Zke zw-G>12qYj5BRB}= z_i}CT*WUZxz3=b$dGC73dnQ(1?)I)J-|AKXps}&hl(Ylx3Sl!|gkA1lzgF0Uzl6PI z?b?klzEAn<2N@u?24Hv#z;!>scmUvqZTyFsl|~?&WXOf{z}x^O0QRYR!%n^%SOtu} zPwaKXN5FQDsE!{A*blCR3o%03^#+ndo`ZeF>&-H`B*!{vkWDV(Vf>a=vaf?WVtWxN zeJTR>T~2@njCz_Kp4SOu)nw=9@Qui@Aw_jC; zqA3r%xrg?N=7rn?gy?lpMta%t$X+uI`}-MH;M9)M)_TQ%EL$3&;aGjO*i%{ZUQE?#O{IxQp;JlIq35R>EMwvkVedr22vzTrS``nWui(nQ9y?2JMVSh ztYi^c8DpO%!0L*Uet+1UC69qhqWxZzQfP+kWB#w&4@t%I3Lm31 zChmfM0;7zbU8L=k$IiDcb{Fp1>gu4)_meG4?XQwa@}%v?sqt{m#Ld zqcA>LDp4&ppa}mK?wV>B4-fK9*b8~V`2SPyd#=YF#=nWjTjBS3dVbub^0Q@~>WAWn zZ+UTm(m#0%WHnR7A3!RdmOmK(WQcYB?s>eYPMALb9maoJJZZ|I?vD;$%X)%;#hBYX z7zg-^ZfttIrS+j0x53g9qTgOSJany1=f5CT8}FZV{qDIQF-=Y+;|0)H$#*o*DDRqi z`~W(9cW-OG{J%!mo0o*YU%9^o3$lcp#buLJQ&%4;{)=5JRlE-0>}gMU}OW156A=ZfIJuqAP>lckqtOLAP>j`@?a={ zJRlE7HsJVxJRlFqgP{QOfIJx4fa3%5fIJ`%h62a~@?c~Gjt|HK@_;-T3Lp>2gOLq5 zJ|GXs1M*-ffIQ5M2bWj_ASbQcY{^C^_?)Q?zwvc64)AHV<8$M{=V0=g)r?it@`=@O zyG^g~<9j-DQ;n$FsbAo1UEgf`j{{kx@=df?;iWM-?O07uL%n*aCx1yecL`%xSHztb zC;gO=93VNO{WYObXtu9!w*AwIr{mIwT0V{LK*`*><2>FDPcw-2r{YiJG!r~E{P&95 z5YGpC<;yduEuhpM4ki)ovwY-GPOF(si^J^yUp3sUso9Y|3A9r9PucS=uu7o z8+(N=du{nL@$|;~QDs>lRDD1n9XKf#MOwc-BXi!ge&({F|9LIle-7O_Wix!N)_OMV&T|N0{)?oisnptZWLK_Ai%!l1&Er7e1(Qz9QSkX z%A6RCYionUN88z*2mG-qv~eLDiJ#g^|MJCl6;;aXaITH^%hb?`w7e+%DKn{Pz=j?b zk`HEP{buL-)gv-{dlwBuH?60BJAa9yvz+ETZD*`^%d2&tiL;Ty#Aj5horyZkr2}%Y4Z38o40;zv{i~dLaI`K@@2wdv1xcq$K7 zJmxr9D*sB||0;9V`NbyD%37G0=Zy>fIn8 z1qvsM#WXo(v|fANI>b+JlGBU6UK%j;m5(!W6Qozud#gQLu6KS=scBG6)$*}uU^qQ= r*q%*pPwQ+4M_<-06>OJMsVLL$x9#Q`mGx{n5xkynwlROuxrTlKFs3v! literal 0 HcmV?d00001 diff --git a/addons/spectator/data/b_uav.paa b/addons/spectator/data/b_uav.paa new file mode 100644 index 0000000000000000000000000000000000000000..e900cc2509d7d90c3707f65e678e9ebc0cebd967 GIT binary patch literal 22660 zcmeI4e`s4(6vxlakF_Of6N|+bWs4Y;VCoQm;2-^wSZy1zHCo@Ajc%>0qOcWPT>Yo5 zxt*=BKQ4K}CrFxa}$au_0>z>HgT-C6iT9Ck`nsLb~g@@8$KvrmTZz zt#S@8$vb)X-FM#ioX@=^@UB}lHAP=-Xxb8W0l>(}h}-lN(H7|oH0d`*Uu={lYBmmyT*9vVI*pLIt;cF04fDoRaKk?@p+)dPh;D=eD zpJ@y#&M-YV%OG&D7F@F|;$aa-uo;G!J0j1Tzu|KPnxUUnJPVwM2O;obJ)Rw7B6d0% zF`GcclJA!`IH8~Yl2vP;c{3~(jP2dgGx18)!2tv~`zYiAm z6?Jy9eOuXhi5no>u4(*QgC}{A9WBwOOUr~$zu|P3%HI2Pn>N?@hN+6+#{=)14Jx+@Ld-DvO_-U@gJ!NBeU>!{laUTWc9|Ube$XGXwa-* z0Br)xe6{_I_tm^-^t$W* zo#vlg5!&(JHs3e5r~I1&+WJ{)u3`Q&hBJpjNS>$SxMRfr#9h;$&{p3!GUt{u>7GmS zdK)XS|GcdmJt!Vi0m_H0P-UbC>7lA&4ae(z5LAy;k5rFJ0pfvpP}M-=Gx0z?5D!WL z;(>Tj)j;zD@jyHf4@v>zfp}2WK=T9fKs*o+N&(`5cu>_q^8@ifJP;2`0pfvpP}M;5 z1MxsS5D!WL;(>Tj)j;zD@jyHf4@v>zfp}2WK=T9fKs*o+N&(_weew{IYXIPruz4#~ zn)o6@v zysv!c`NKgWK6t!%#sGeWfBRgOoHoDPcI;3I9OEUa0B-XByU+?9U!nWwi;ra;t-J8C zxzUi6Wp-L$IP~=EPb|EJ|K2=#B0f0U6kr2bQGUyecJ vqR;G3ci(T0CX1&d=-2G|y!2AuXG*1iy=@ncsHkTs+_>91?Y=YjE^GBSeAaX9 literal 0 HcmV?d00001 diff --git a/addons/spectator/data/b_unknown.paa b/addons/spectator/data/b_unknown.paa new file mode 100644 index 0000000000000000000000000000000000000000..f92ffbe9cb76e6a57a0c2efafa1369b301fd0e70 GIT binary patch literal 22488 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 Y|D9c;Xhx-aCMGT3KJu{%BhtWs093lAOaK4? literal 0 HcmV?d00001 diff --git a/addons/spectator/data/c_car.paa b/addons/spectator/data/c_car.paa new file mode 100644 index 0000000000000000000000000000000000000000..832e17cbd6164c0f58b1cc8b915e7e22a41e74ec GIT binary patch literal 22828 zcmeHPeP|PB7=PYNu1U0QvTS7qDNQuB)2%XOib7W}Eo&RJE~sY}t(Ml6(hr^6>?T(G z#wk@NEOwnJ)H)_*!zqf(f{dm__raL^qf=LObz9iV#{Q6sIJ)7jx981A4>|@;C^YiC zz4Y$ad+)vX`S|^wYv4Uuuc+{@DXUoPH3L8(5Rl_|owrJ09h<-v-WBBnGyDj=y1e{F z1&=v?&X@o`E(7>>EoM>GA@1w)v^YHjEK3%hFKBklrlCvu*S&ey-PV5FYAI;; zSwYK|hKjtiLY1&XmJ`EvY4!zs@-H^bFbzwy+gEPcgQIyqTi^3Vbwfz&kn2x{x7~-{ zu$C=fb6R!=1KptxS(a6oqunKLREIMv8Vcmy2;}9C?}CvwX|NLwa+hwhLCx#F%wKv; zH4KU*C>+?lKioPpE*~1%!}4xua!F!_dy{YIY8Xbc@RP zl~7*G!F#OVl<`Lv?+u>_H_t4HY}GS!%|8vSxY?QaeW6Rr__~hmQ>6aWt9mRMIeaMl zJUk8%>9C9Wy{0Xb`T!3HUVS;bk+GW>?l0?QZmV@vvcf2@tkJvXlswC%g&IiOVGYc^ zmgE{qya@CEO&eQTt?>NA;7QxIKtZquCFE zM<6>EAFoMKI0&uS>k*h?OZhBa{q?BLU*}$@2R9KP)JK`~goUa2oDu@<>x$~S$Bk$F z30yZv^v9Mnxj$+QDt6E;&MVj`{&7D|TYZ=u|H<(_Uw3mfvPT=@kzM# z%?;munZ$lLsVomQ9SVv5m=6UM|MZUkIn-~|d#neJeF~cL0lzHtAF zTEzS#Q5Hl#xve&_C;dr^cuJs>?GJs>?G zJuo~#d>}p;*+BJy_&|IhJ{TS#J`f*_Y@qr;d>}p$9}Eu=ABYb|Hc)*aJ`f*>4~7Sb z55xx}8>l`IABYdc2g3uz2jYW~4OAb955x!JgW&<<1M$Jg2C5Il2jW9I@Ievp0B}sq zbgI%e1_y%&4jwxol48)|aKt!>WqBjIUe&DPs=FjEOyU_a;AKm@%a)4%`MJ5dsR>Ti z{HA(*9&M|&;3n)r^BvCK)@$Jtx84)W43)+;x1J1CU7ee;YN0r9oA>TfB|5WTYyzYC zX>UKq{}{&KnzVl~#{YW9~T#3tLK@33>9gx|jJ)%Xt@EnAdZ6e(`SrO-kwV)PN5<-v902d2wzm6mA_BZ}&NT56$>| z%eNVEjBoR4N{vQkZ>s#C@-U76Xvl~|d=Kcs6~Sivg37A UoL^Mlg0BijZ;eHsNVx|70UeyE-2eap literal 0 HcmV?d00001 diff --git a/addons/spectator/data/c_plane.paa b/addons/spectator/data/c_plane.paa new file mode 100644 index 0000000000000000000000000000000000000000..d12fa68fbeb69d7b0b50bab4049a81503ff054e7 GIT binary patch literal 22757 zcmeHPZ)jUp6hAkAmWHi;aqdIurb{thSGF}GrL3$=Usi1!w655tR@}zcGHJV&RmbYk zZoTcCbl^0^e%P?3L#WJ+i5n6pbn+Y%{NRTfKRBsM5b>iFC+P64*K=O>@))I92Zd&y z!%Ol`?tAy$^E>DFyDx!vy{fS>x}(0aE$RUPDW%u)+oR3oD>U*Oqt7&uFYrZvYeU0! z9rq=^_PGHL)B_x91$gawfT4DPukf`%8v^l@3s%AxprQa3072-g1))F$y5O+bu?>{$ zcO^ncMI5gl?B5FTqi9(!nubG7a8w8#Pmoi7e4Evz+&BQigLQa{Unu|8!4_)GTK}we zJiP)$NMCWiU!27O?i8LxDAl>;;qexC>9xw^(med6Yv*A)Vc68XAa75&YZ7kL-41yD zSTa<;Mr^7DZ+BWdFrDh1E{_1jHVlA(^lfd!8rRl{P&fdMI@n=qt%EfQwcga8I}~$O zm_-{S(4B4_Ox-amOl`M2>A|K~Afc*F2-jMp+-qvVz*b0?&V2=c z;i^eN-JUSRkqEqWvGmjM)0f?!2))3QesSu{iyLoF4K9nvd(#+BYHxY%<73{Pe;;$Z zTtz;4vDGE|;B%j_dU)5|?p7nGZWj2J@7#&6OU>}^*Kdu5rjAAGK%Vdk<(tx8c-2K0 zBm2NS7{rhFXEh~5GrLCJrLr>kas>QvN3;wGYAeNI;|JNV*+6(Vhr?5~@DR~N0_X&b zWyC6bpFZ=|m&RZ3ly8=9iY7kk^-4ocgsgbbKaXMGhyM!{Wvu>sbX@|Gd^kkDK(jH+ zSG*py@hcf!8N!Y7<3*D)8=;+_3lc>$may6Z3|(HpcK;r%cREg+bG(wVgaot z_u`rLmX2P`$-f~2)0ZBBTVpr@qLs+l-s#l%svr)WYNA9obmGKWW&08U=T(5)x$`P>G>UBm0TTxH~=T*R~b zK>A)aiD%;76Z4-CTq^m^W^?}W{9FE|aj7|J#RJebi}wQ`rp9yk2Ur7!Y`RAG)k=Lk zCh%7T=Rb>hzT{sTc=LB;*it92cQP&w9DnS0%Lh1rKYmdrHfx=)>pgMS|NN?l>}coL z3vTCp5(4?6Z(OfjuUxOpSJtbg`TLXgnf00Vnf00Vnf2M83s?_W4_FUa4_FTz1eg!Z z2d5f%eqcT@AD9mg0?Y^IgHsJWKQJGd56lM#0p zJ!VUf*){Kv<5PE;KA2Hz0xxg*A_KC%X0*PBj$d0`Tx<_;vBtO9{Y#^Nj}JGB2g47% z9lHG3mgKr2^4r?v**AUN@1?wb_!tT7#(yId zPvK+Ng&1%1{yq#j6OZ-Uei`|I$scuZrsFaFYZp5|+vY~ z9!@ndKbQ~92j+u=0P}(QK-CbW1+P50x>#sgJaOgOpOe33k_6(pf+Hi>gDbaHe%4V* ze$SqL9d?Hc?eD)H-~aJPnGh~}sZ`*NxBkE|u6KU3%<=&`dhFhK+FLCAZG^f12SY{z z^jBbRP0QS`skSrK9re{6NVDWoWkUo10M8kY&Hw-a literal 0 HcmV?d00001 diff --git a/addons/spectator/data/c_ship.paa b/addons/spectator/data/c_ship.paa new file mode 100644 index 0000000000000000000000000000000000000000..f53701175a50cda2c5d2b66fd20ecfbdd8a882a8 GIT binary patch literal 22967 zcmeI4e@s(X6vxl&4@-s8f_CdPj)zuJFu082a1?k2fp(Elp^pJWR3r|JC^JeX7QL`( zU~!QUaAt$}W8)79HE5*SA84wmS+XsGKTM3Bvy02(Kik|`a6c+<_dX~uF{CvARC%?q50f5HFMy+g@+6$O1(Z=k2`=&f*bM(pV;=H^< zfgTh3e4U=i+z62C2G~>zP+SJ^34K0gYX)vm4Y6<)Bs;(w03K>=z)8TFYTy9p&IXAz zsM@VfoJjvW-;e=tmvcpOjuxu}nmA6N7m#5+eVH^8vepCq-Yj~Fo|E*KkGR-bfTEC5 ze}*_atj-RNB=r}SbHZ2;r>a!PM{MCl-k1qwtmn_DTZ>Xz@0O5JHQ*_HsBwTwlI~lC zY)GjEqdIV5S>V2nI>1Bc4zP35=xr$;*SGVYU#oX( zcX|W9I;RRQX+b55-lV{w0bJ>l#DgG+Vp2)5G*}nVs`WJv={)jV=5XbW2&6f|U z*a+@W7I&UF+e3Tn|JJ_z@lez4w!4MaP}739+$pKPx`1z4LM4|1R?k*mmkF=E*`zZh zJdD$j@tZ-2t?#B&(Hb~5&_1bfjBL2q93N59!$Cp@i2U*lIG!*Z$9+}K$?M-A+RA!f zn>-;AYkhL3Ivz6lcQZi`k2#lzW9Q;SM)rrbAL$C@13aA8A=d^m415A0Oe-^$CuR(K z!1Bg?w2A+Z6A5WV&1Nt5YPG~KowmyBp>{uA_A}T&Ky*+ZZwx%509dutxJ$ zujg(460yfx>4W)4OIs%`8lOAcY0)^~1tJK25Lf_@f1&5?5zsG+vQ0yT^=G!d&-zlw z>b4G620*3POEjrzMVM%>}7W=+tWWRqV+-)&8xZ`rzdLf zO|YI$dp7bft2KA;51!2b)qN|5Zv-yZG5@*h3G{*UHwgx1TckGxPuld2q+Vyh$NHO7 z7t+rmnE#o}=W4#64#%1K5kH0hy%suMR{wiN;-@{R%bCpz{4?0mLFc4=y&&uoG5<3i z=TAIL%@*f7U-(6TO(}r>n#$N14;T+j0ptOB22gAxr`ACL#+0eMgqKpv0>B^t0kAP>j`@}MYy zJRlEBG+=!|9*_s*K~VsCKpvE6!1{nZAP>lcq5$&n|L`ENJpfEIewZyc1fi|Hwe3_Z zTjZ$8WFkSjH3reppJk3%Bsf!A6LcM@+AOG-%kLy~nDDD~|x^Z*ryPpf6qz?N(-YQ9B6K`JL)CdHohk+-&;? z$DdMQzVe0sL;o=aFn(FaR2u4mdMMF=d>{|V1M;9KfIJ`%EE;&WNup*ZE}k|lzMy-2 zddFhv$MkEaf!3ND{(2q%Lgn@s({2K66YK@y0iSlf|Jr}^;LkxT-LOfLOdkyV4sacM zlfS3CgfgdA?Fx^EWpB3h4=ar0KObqt#J&og+0%07)6}{X6II5EDvH^7_vq*-@W;;@ z?wn=VE$-Fnbm1tN=^uV$zJ^5vM6j<#)5?51mde@X3 U7Y)s*R8MO{-tO>ai^I~uKW(JcivR!s literal 0 HcmV?d00001 diff --git a/addons/spectator/data/c_unknown.paa b/addons/spectator/data/c_unknown.paa new file mode 100644 index 0000000000000000000000000000000000000000..f67a3b5444316c60c554bf2f694f0be5343e8253 GIT binary patch literal 22848 zcmeI4e`u3O7{{M`-@Iu;+vII0G&rT{8m$GlTC~nWoNw%Go3YMdjdrZgST~ebu^kvU zmY8c?nU0O6YM~Cb|E&8_l>MMM*{Z}jHp^frST<-oGbY9Tp>!(igx1^L8`BppV^t_L z<2l|m@6-3*yL-OR^SOHy$SJI<%Co+rYJ^~Oy65bbHaVEpgbbGGHrl=$BOSW*YMjIAk#W{3M4^-3#q4)Ofpwz3%L zEl^**H1{{g_Br6lA6|a_;0|l3P`^GJn~U+E-SK`f|E9!$co8vcQh>3Zb<5`Y=uPU) zU3&g^9{;EcD~cp~E63rUrux{n18! zgaVi!;uC{WP!H6@$OhyCc|abJ2SWkm0eLX80oMoQ0eL_k3QGJFRY(bV7A6X6<-BT?rAysX=+2~@`l3Y z4IH!fcVnN&An;Mg{9if*c8?u1+s&z{PS#KTW45~aU*ofYMSLyl4xZZjxIUXWzSp>| hMZd@%yk{FbfByUIV&XF@*YnBJ${nfO=A^oYe*o*yrL6z} literal 0 HcmV?d00001 diff --git a/addons/common/functions/fnc_getGroupIcon.sqf b/addons/spectator/functions/fnc_getGroupIcon.sqf similarity index 56% rename from addons/common/functions/fnc_getGroupIcon.sqf rename to addons/spectator/functions/fnc_getGroupIcon.sqf index df2f5be85d0..c66a66e783c 100644 --- a/addons/common/functions/fnc_getGroupIcon.sqf +++ b/addons/spectator/functions/fnc_getGroupIcon.sqf @@ -4,7 +4,7 @@ * * Arguments: * 0: Group to get the icon of - * 1: Allow leader's squad.xml logo (Default: false) + * 1: Return icons for draw3D use (Default: false) * * Return Value: * Icon of group @@ -12,48 +12,43 @@ * Examples: * [group player] call ace_common_fnc_getGroupIcon; * - * Public: Yes + * Public: No */ #include "script_component.hpp" // Military icons -#define ICON_UNKNOWN "a3\ui_f\data\Map\Markers\NATO\data\b_unknown.paa" -#define ICON_UAV "a3\ui_f\data\Map\Markers\NATO\data\b_uav.paa" -#define ICON_SUPPORT "a3\ui_f\data\Map\Markers\NATO\data\b_support.paa" -#define ICON_SERVICE "a3\ui_f\data\Map\Markers\NATO\data\b_service.paa" -#define ICON_RECON "a3\ui_f\data\Map\Markers\NATO\data\b_recon.paa" -#define ICON_PLANE "a3\ui_f\data\Map\Markers\NATO\data\b_plane.paa" -#define ICON_NAVAL "a3\ui_f\data\Map\Markers\NATO\data\b_naval.paa" -#define ICON_MOTOR_INF "a3\ui_f\data\Map\Markers\NATO\data\b_motor_inf.paa" -#define ICON_MORTAR "a3\ui_f\data\Map\Markers\NATO\data\b_mortar.paa" -#define ICON_MED "a3\ui_f\data\Map\Markers\NATO\data\b_med.paa" -#define ICON_MECH_INF "a3\ui_f\data\Map\Markers\NATO\data\b_mech_inf.paa" -#define ICON_MAINT "a3\ui_f\data\Map\Markers\NATO\data\b_maint.paa" -#define ICON_INSTALLATION "a3\ui_f\data\Map\Markers\NATO\data\b_installation.paa" -#define ICON_INF "a3\ui_f\data\Map\Markers\NATO\data\b_inf.paa" -#define ICON_ART "a3\ui_f\data\Map\Markers\NATO\data\b_art.paa" -#define ICON_ARMOR "a3\ui_f\data\Map\Markers\NATO\data\b_armor.paa" -#define ICON_AIR "a3\ui_f\data\Map\Markers\NATO\data\b_air.paa" +#define ICON_UNKNOWN ["a3\ui_f\data\Map\Markers\NATO\data\b_unknown.paa", QPATHTOF(data\b_unknown.paa)] select _forDraw +#define ICON_UAV ["a3\ui_f\data\Map\Markers\NATO\data\b_uav.paa", QPATHTOF(data\b_uav.paa)] select _forDraw +#define ICON_SUPPORT ["a3\ui_f\data\Map\Markers\NATO\data\b_support.paa", QPATHTOF(data\b_support.paa)] select _forDraw +#define ICON_SERVICE ["a3\ui_f\data\Map\Markers\NATO\data\b_service.paa", QPATHTOF(data\b_service.paa)] select _forDraw +#define ICON_RECON ["a3\ui_f\data\Map\Markers\NATO\data\b_recon.paa", QPATHTOF(data\b_recon.paa)] select _forDraw +#define ICON_PLANE ["a3\ui_f\data\Map\Markers\NATO\data\b_plane.paa", QPATHTOF(data\b_plane.paa)] select _forDraw +#define ICON_NAVAL ["a3\ui_f\data\Map\Markers\NATO\data\b_naval.paa", QPATHTOF(data\b_naval.paa)] select _forDraw +#define ICON_MOTOR_INF ["a3\ui_f\data\Map\Markers\NATO\data\b_motor_inf.paa", QPATHTOF(data\b_motor_inf.paa)] select _forDraw +#define ICON_MORTAR ["a3\ui_f\data\Map\Markers\NATO\data\b_mortar.paa", QPATHTOF(data\b_mortar.paa)] select _forDraw +#define ICON_MED ["a3\ui_f\data\Map\Markers\NATO\data\b_med.paa", QPATHTOF(data\b_med.paa)] select _forDraw +#define ICON_MECH_INF ["a3\ui_f\data\Map\Markers\NATO\data\b_mech_inf.paa", QPATHTOF(data\b_mech_inf.paa)] select _forDraw +#define ICON_MAINT ["a3\ui_f\data\Map\Markers\NATO\data\b_maint.paa", QPATHTOF(data\b_maint.paa)] select _forDraw +#define ICON_INSTALLATION ["a3\ui_f\data\Map\Markers\NATO\data\b_installation.paa", QPATHTOF(data\b_installation.paa)] select _forDraw +#define ICON_INF ["a3\ui_f\data\Map\Markers\NATO\data\b_inf.paa", QPATHTOF(data\b_inf.paa)] select _forDraw +#define ICON_ART ["a3\ui_f\data\Map\Markers\NATO\data\b_art.paa", QPATHTOF(data\b_art.paa)] select _forDraw +#define ICON_ARMOR ["a3\ui_f\data\Map\Markers\NATO\data\b_armor.paa", QPATHTOF(data\b_armor.paa)] select _forDraw +#define ICON_AIR ["a3\ui_f\data\Map\Markers\NATO\data\b_air.paa", QPATHTOF(data\b_air.paa)] select _forDraw // Civilian icons -#define CIV_ICON_UNKNOWN "a3\ui_f\data\Map\Markers\NATO\data\c_unknown.paa" -#define CIV_ICON_AIR "a3\ui_f\data\Map\Markers\NATO\data\c_air.paa" -#define CIV_ICON_CAR "a3\ui_f\data\Map\Markers\NATO\data\c_car.paa" -#define CIV_ICON_PLANE "a3\ui_f\data\Map\Markers\NATO\data\c_plane.paa" -#define CIV_ICON_SHIP "a3\ui_f\data\Map\Markers\NATO\data\c_ship.paa" +#define CIV_ICON_UNKNOWN ["a3\ui_f\data\Map\Markers\NATO\data\c_unknown.paa", QPATHTOF(data\c_unknown.paa)] select _forDraw +#define CIV_ICON_AIR ["a3\ui_f\data\Map\Markers\NATO\data\c_air.paa", QPATHTOF(data\c_air.paa)] select _forDraw +#define CIV_ICON_CAR ["a3\ui_f\data\Map\Markers\NATO\data\c_car.paa", QPATHTOF(data\c_car.paa)] select _forDraw +#define CIV_ICON_PLANE ["a3\ui_f\data\Map\Markers\NATO\data\c_plane.paa", QPATHTOF(data\c_plane.paa)] select _forDraw +#define CIV_ICON_SHIP ["a3\ui_f\data\Map\Markers\NATO\data\c_ship.paa", QPATHTOF(data\c_ship.paa)] select _forDraw -params [["_group", grpNull, [grpNull]], ["_useXML", false, [true]]]; +params [["_group", grpNull, [grpNull]], ["_forDraw", false, [true]]]; // Handle empty or null group private _leader = leader _group; if (isNull _leader) exitWith { [ICON_UNKNOWN, CIV_ICON_UNKNOWN] select (side _group == civilian) }; -// Handle cases where player has a valid squad.xml logo -if (_useXML && {(((squadParams _leader) param [0,[]]) param [4,""]) != ""}) exitWith { - ((squadParams _leader) select 0) select 4 -}; - // Civilians are easy, just check leader's vehicle (unlikely group is large) if (side _group == civilian) exitWith { if (_leader != vehicle _leader) then { diff --git a/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf b/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf index d078e06d260..e1854bab1c8 100644 --- a/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf +++ b/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf @@ -93,7 +93,7 @@ private _entitiesToDraw = []; if (_x == _groupLeader || { _inVehicle && { _x == effectiveCommander _vehicle } }) then { // Group icon _iconsToDraw pushBack [_x, 0, [ - ICON_GROUP, + [_group, true] call FUNC(getGroupIcon), _groupColor, [0,0,0], _sizeByDistance, diff --git a/addons/spectator/functions/fnc_ui_updateListEntities.sqf b/addons/spectator/functions/fnc_ui_updateListEntities.sqf index 696ec1bc3db..49fcdfbe3fc 100644 --- a/addons/spectator/functions/fnc_ui_updateListEntities.sqf +++ b/addons/spectator/functions/fnc_ui_updateListEntities.sqf @@ -46,7 +46,7 @@ private _entities = [true] call FUNC(getTargetEntities); } count _entitiesGroup; // Cache the info of the group itself - private _groupTexture = [_group, true] call EFUNC(common,getGroupIcon); + private _groupTexture = [_group] call FUNC(getGroupIcon); private _groupInfo = [_group, str _group, _groupTexture, groupID _group]; // Add the group to the correct side diff --git a/addons/spectator/script_component.hpp b/addons/spectator/script_component.hpp index d54616dc672..f9d406e3880 100644 --- a/addons/spectator/script_component.hpp +++ b/addons/spectator/script_component.hpp @@ -61,7 +61,6 @@ // Icons used in the UI/drawing #define ICON_DEAD "a3\Ui_F_Curator\Data\CfgMarkers\kia_ca.paa" #define ICON_GRENADE "A3\Ui_f\data\IGUI\Cfg\HoldActions\holdAction_connect_ca.paa" -#define ICON_GROUP "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\GroupIcon_ca.paa" #define ICON_UNIT "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\UnitIcon_ca.paa" #define ICON_REVIVE "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\ReviveIcon_ca.paa" #define ICON_BACKGROUND_UNIT "a3\Ui_f\data\GUI\Rsc\RscDisplayEGSpectator\UnitName_ca.paa" From de40fe7e66ab024c7a8e74308418d16c053292a9 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sun, 4 Jun 2017 00:10:37 +0100 Subject: [PATCH 105/198] Fix EFUNC call --- addons/spectator/functions/fnc_getGroupIcon.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/spectator/functions/fnc_getGroupIcon.sqf b/addons/spectator/functions/fnc_getGroupIcon.sqf index c66a66e783c..103030bad6e 100644 --- a/addons/spectator/functions/fnc_getGroupIcon.sqf +++ b/addons/spectator/functions/fnc_getGroupIcon.sqf @@ -143,8 +143,8 @@ if (count _vehicles >= 0.33 * count _units) exitWith { }; // Check leader for medic/engineer/etc, otherwise just default to infantry -private _medic = [_leader] call FUNC(isMedic); -private _engineer = [_leader] call FUNC(isMedic); +private _medic = [_leader] call EFUNC(common,isMedic); +private _engineer = [_leader] call EFUNC(common,isMedic); if (_medic && _engineer) exitWith { ICON_SUPPORT From 968e657121779b231124f2a8b6231c19d029f9d8 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sun, 4 Jun 2017 15:22:04 +0100 Subject: [PATCH 106/198] Update all function headers --- addons/spectator/functions/fnc_cam.sqf | 9 +++++++++ .../functions/fnc_cam_prepareTarget.sqf | 16 ++++++++++++++++ .../spectator/functions/fnc_cam_resetTarget.sqf | 15 +++++++++++++++ .../functions/fnc_cam_setCameraMode.sqf | 9 +++++++++ addons/spectator/functions/fnc_cam_setTarget.sqf | 15 +++++++++++++++ .../functions/fnc_cam_setVisionMode.sqf | 11 ++++++++++- addons/spectator/functions/fnc_cam_tick.sqf | 9 +++++++++ .../spectator/functions/fnc_cam_toggleSlow.sqf | 11 ++++++++++- .../spectator/functions/fnc_compat_counter.sqf | 9 +++++++++ .../functions/fnc_compat_spectatorBI.sqf | 9 +++++++++ addons/spectator/functions/fnc_compat_zeus.sqf | 9 +++++++++ addons/spectator/functions/fnc_getGroupIcon.sqf | 4 ++-- .../functions/fnc_getTargetEntities.sqf | 12 +++++++++++- addons/spectator/functions/fnc_handleFired.sqf | 9 +++++++++ .../functions/fnc_moduleSpectatorSettings.sqf | 2 +- addons/spectator/functions/fnc_players.sqf | 2 +- .../functions/fnc_setCameraAttributes.sqf | 2 +- addons/spectator/functions/fnc_setFocus.sqf | 10 ++++++++++ .../spectator/functions/fnc_stageSpectator.sqf | 12 +++++++++++- addons/spectator/functions/fnc_switchFocus.sqf | 9 +++++++++ addons/spectator/functions/fnc_ui.sqf | 9 +++++++++ addons/spectator/functions/fnc_ui_draw3D.sqf | 9 +++++++++ addons/spectator/functions/fnc_ui_fadeList.sqf | 9 +++++++++ .../functions/fnc_ui_getTreeDataIndex.sqf | 9 +++++++++ .../functions/fnc_ui_handleChildDestroyed.sqf | 14 +++++++++++++- .../spectator/functions/fnc_ui_handleKeyDown.sqf | 15 ++++++++++++++- .../spectator/functions/fnc_ui_handleKeyUp.sqf | 15 ++++++++++++++- .../functions/fnc_ui_handleListClick.sqf | 10 ++++++++++ .../functions/fnc_ui_handleMapClick.sqf | 14 +++++++++++++- .../spectator/functions/fnc_ui_handleMapDraw.sqf | 9 +++++++++ .../fnc_ui_handleMouseButtonDblClick.sqf | 10 ++++++++++ .../functions/fnc_ui_handleMouseButtonDown.sqf | 10 ++++++++++ .../functions/fnc_ui_handleMouseMoving.sqf | 11 +++++++++++ .../functions/fnc_ui_handleMouseZChanged.sqf | 10 ++++++++++ .../functions/fnc_ui_handleTabSelected.sqf | 10 ++++++++++ addons/spectator/functions/fnc_ui_toggleMap.sqf | 9 +++++++++ addons/spectator/functions/fnc_ui_toggleUI.sqf | 9 +++++++++ .../functions/fnc_ui_updateCamButtons.sqf | 9 +++++++++ addons/spectator/functions/fnc_ui_updateHelp.sqf | 9 +++++++++ .../functions/fnc_ui_updateIconsToDraw.sqf | 9 +++++++++ .../functions/fnc_ui_updateListEntities.sqf | 9 +++++++++ .../functions/fnc_ui_updateListFocus.sqf | 11 ++++++++++- .../functions/fnc_ui_updateListLocations.sqf | 9 +++++++++ .../spectator/functions/fnc_ui_updateWidget.sqf | 9 +++++++++ 44 files changed, 417 insertions(+), 14 deletions(-) diff --git a/addons/spectator/functions/fnc_cam.sqf b/addons/spectator/functions/fnc_cam.sqf index 8016bb57ef4..84a9df4e4cb 100644 --- a/addons/spectator/functions/fnc_cam.sqf +++ b/addons/spectator/functions/fnc_cam.sqf @@ -2,6 +2,15 @@ * Author: Nelson Duarte, SilentSpike * Handles camera initialisation and destruction * + * Arguments: + * 0: Init/Terminate + * + * Return Value: + * None + * + * Example: + * [true] call ace_spectator_fnc_cam + * * Public: No */ diff --git a/addons/spectator/functions/fnc_cam_prepareTarget.sqf b/addons/spectator/functions/fnc_cam_prepareTarget.sqf index fe201292545..4990e83fc8a 100644 --- a/addons/spectator/functions/fnc_cam_prepareTarget.sqf +++ b/addons/spectator/functions/fnc_cam_prepareTarget.sqf @@ -1,3 +1,19 @@ +/* + * Author: Nelson Duarte, SilentSpike + * Moves the spectator camera to a position relative to the camera focus. + * Used for 3PP camera and teleporting, etc. + * + * Arguments: + * 0: New Target + * + * Return Value: + * None + * + * Example: + * [player] call ace_spectator_fnc_cam_prepareTarget + * + * Public: No + */ #include "script_component.hpp" diff --git a/addons/spectator/functions/fnc_cam_resetTarget.sqf b/addons/spectator/functions/fnc_cam_resetTarget.sqf index 00c193720de..94f934d6d6e 100644 --- a/addons/spectator/functions/fnc_cam_resetTarget.sqf +++ b/addons/spectator/functions/fnc_cam_resetTarget.sqf @@ -1,3 +1,18 @@ +/* + * Author: Nelson Duarte, SilentSpike + * Removes the current camera interest and detaches dummy target. + * + * Arguments: + * None + * + * Return Value: + * None + * + * Example: + * [] call ace_spectator_fnc_cam_resetTarget + * + * Public: No + */ #include "script_component.hpp" diff --git a/addons/spectator/functions/fnc_cam_setCameraMode.sqf b/addons/spectator/functions/fnc_cam_setCameraMode.sqf index 838d501d944..82bca7e5d56 100644 --- a/addons/spectator/functions/fnc_cam_setCameraMode.sqf +++ b/addons/spectator/functions/fnc_cam_setCameraMode.sqf @@ -4,6 +4,15 @@ * * Intended to run even if new mode == old mode, as it handles focus * + * Arguments: + * 0: New camera mode + * + * Return Value: + * None + * + * Example: + * [1] call ace_spectator_fnc_cam_setCameraMode + * * Public: No */ diff --git a/addons/spectator/functions/fnc_cam_setTarget.sqf b/addons/spectator/functions/fnc_cam_setTarget.sqf index e7ead918afe..51cd80215a6 100644 --- a/addons/spectator/functions/fnc_cam_setTarget.sqf +++ b/addons/spectator/functions/fnc_cam_setTarget.sqf @@ -1,3 +1,18 @@ +/* + * Author: Nelson Duarte, SilentSpike + * Sets the current camera interest using dummy target. + * + * Arguments: + * None + * + * Return Value: + * None + * + * Example: + * [player] call ace_spectator_fnc_cam_setTarget + * + * Public: No + */ #include "script_component.hpp" #define CAMERA_TARGET_CHANGE_TIME 0.5 diff --git a/addons/spectator/functions/fnc_cam_setVisionMode.sqf b/addons/spectator/functions/fnc_cam_setVisionMode.sqf index 2700b113b58..c9eed499fed 100644 --- a/addons/spectator/functions/fnc_cam_setVisionMode.sqf +++ b/addons/spectator/functions/fnc_cam_setVisionMode.sqf @@ -1,6 +1,15 @@ /* * Author: SilentSpike - * Function used to select the vision mode + * Function used to select the camera vision mode + * + * Arguments: + * 0: New vision mode + * + * Return Value: + * None + * + * Example: + * [-1] call ace_spectator_fnc_cam_setVisionMode * * Public: No */ diff --git a/addons/spectator/functions/fnc_cam_tick.sqf b/addons/spectator/functions/fnc_cam_tick.sqf index 35409d64734..7609234a8e2 100644 --- a/addons/spectator/functions/fnc_cam_tick.sqf +++ b/addons/spectator/functions/fnc_cam_tick.sqf @@ -7,6 +7,15 @@ * Updates camera when focus enters/exits a vehicle * Updates camera lights position * + * Arguments: + * None + * + * Return Value: + * None + * + * Example: + * addMissionEventHandler ["EachFrame", {call ace_spectator_fnc_cam_tick}] + * * Public: No */ diff --git a/addons/spectator/functions/fnc_cam_toggleSlow.sqf b/addons/spectator/functions/fnc_cam_toggleSlow.sqf index d3df1d32ebd..e689351ce89 100644 --- a/addons/spectator/functions/fnc_cam_toggleSlow.sqf +++ b/addons/spectator/functions/fnc_cam_toggleSlow.sqf @@ -1,6 +1,15 @@ /* * Author: Nelson Duarte, SilentSpike - * Function used to toggle camera slow speed mode + * Function used to set camera slow speed mode + * + * Arguments: + * 0: Enable slow speed + * + * Return Value: + * None + * + * Example: + * [true] call ace_spectator_fnc_cam_toggleSlow * * Public: No */ diff --git a/addons/spectator/functions/fnc_compat_counter.sqf b/addons/spectator/functions/fnc_compat_counter.sqf index 0bf9e32944d..8a54d6dbdf5 100644 --- a/addons/spectator/functions/fnc_compat_counter.sqf +++ b/addons/spectator/functions/fnc_compat_counter.sqf @@ -4,6 +4,15 @@ * * Should be called from both RscRespawnCounter XEH and spectator init to account for arbitrary order * + * Arguments: + * 0: RscRespawnCounter + * + * Return Value: + * None + * + * Example: + * [GETUVAR(RscRespawnCounter,displayNull)] call ace_spectator_fnc_compat_counter + * * Public: No */ diff --git a/addons/spectator/functions/fnc_compat_spectatorBI.sqf b/addons/spectator/functions/fnc_compat_spectatorBI.sqf index b6718e461dc..3c90585aa5b 100644 --- a/addons/spectator/functions/fnc_compat_spectatorBI.sqf +++ b/addons/spectator/functions/fnc_compat_spectatorBI.sqf @@ -4,6 +4,15 @@ * * Called from the RscDisplayEGSpectator XEH * + * Arguments: + * 0: RscDisplayEGSpectator + * + * Return Value: + * None + * + * Example: + * _this call ace_spectator_fnc_compat_spectatorBI + * * Public: No */ diff --git a/addons/spectator/functions/fnc_compat_zeus.sqf b/addons/spectator/functions/fnc_compat_zeus.sqf index 132942d4c3c..f379e549ceb 100644 --- a/addons/spectator/functions/fnc_compat_zeus.sqf +++ b/addons/spectator/functions/fnc_compat_zeus.sqf @@ -4,6 +4,15 @@ * * Called from the RscDisplayCurator XEH * + * Arguments: + * 0: RscDisplayCurator + * + * Return Value: + * None + * + * Example: + * _this call ace_spectator_fnc_compat_zeus + * * Public: No */ diff --git a/addons/spectator/functions/fnc_getGroupIcon.sqf b/addons/spectator/functions/fnc_getGroupIcon.sqf index 103030bad6e..931f01b0a0d 100644 --- a/addons/spectator/functions/fnc_getGroupIcon.sqf +++ b/addons/spectator/functions/fnc_getGroupIcon.sqf @@ -10,7 +10,7 @@ * Icon of group * * Examples: - * [group player] call ace_common_fnc_getGroupIcon; + * [group player] call ace_spectator_fnc_getGroupIcon * * Public: No */ @@ -144,7 +144,7 @@ if (count _vehicles >= 0.33 * count _units) exitWith { // Check leader for medic/engineer/etc, otherwise just default to infantry private _medic = [_leader] call EFUNC(common,isMedic); -private _engineer = [_leader] call EFUNC(common,isMedic); +private _engineer = [_leader] call EFUNC(common,isEngineer); if (_medic && _engineer) exitWith { ICON_SUPPORT diff --git a/addons/spectator/functions/fnc_getTargetEntities.sqf b/addons/spectator/functions/fnc_getTargetEntities.sqf index 72772294f86..91acef8cc54 100644 --- a/addons/spectator/functions/fnc_getTargetEntities.sqf +++ b/addons/spectator/functions/fnc_getTargetEntities.sqf @@ -1,6 +1,16 @@ /* * Author: SilentSpike - * Gets the possible entities to spectate based on settings + * Gets the possible entities to spectate based on settings. + * Optionally includes dead units for the list and switching. + * + * Arguments: + * 0: Include dead + * + * Return Value: + * Valid entities + * + * Example: + * [true] call ace_spectator_fnc_getTargetEntities * * Public: No */ diff --git a/addons/spectator/functions/fnc_handleFired.sqf b/addons/spectator/functions/fnc_handleFired.sqf index ee78afa43df..b9258cbd02e 100644 --- a/addons/spectator/functions/fnc_handleFired.sqf +++ b/addons/spectator/functions/fnc_handleFired.sqf @@ -2,6 +2,15 @@ * Author: Nelson Duarte, AACO, SilentSpike * Function used to add projectiles to be drawn when a unit fires * + * Arguments: + * Fired EH arguments + * + * Return Value: + * None + * + * Example: + * _unit addEventHandler ["Fired",{_this call ace_spectator_fnc_handleFired}] + * * Public: No */ diff --git a/addons/spectator/functions/fnc_moduleSpectatorSettings.sqf b/addons/spectator/functions/fnc_moduleSpectatorSettings.sqf index d68b3ab1127..3e1e0c663ef 100644 --- a/addons/spectator/functions/fnc_moduleSpectatorSettings.sqf +++ b/addons/spectator/functions/fnc_moduleSpectatorSettings.sqf @@ -8,7 +8,7 @@ * 2: activated * * Return Value: - * None + * None * * Public: No */ diff --git a/addons/spectator/functions/fnc_players.sqf b/addons/spectator/functions/fnc_players.sqf index 8b77f229c3d..3525b835d5d 100644 --- a/addons/spectator/functions/fnc_players.sqf +++ b/addons/spectator/functions/fnc_players.sqf @@ -3,7 +3,7 @@ * Return all of the player entities who are currently in ace spectator * * Arguments: - * NONE + * None * * Return Value: * Spectator Players diff --git a/addons/spectator/functions/fnc_setCameraAttributes.sqf b/addons/spectator/functions/fnc_setCameraAttributes.sqf index a320e7588a9..5def9d744cc 100644 --- a/addons/spectator/functions/fnc_setCameraAttributes.sqf +++ b/addons/spectator/functions/fnc_setCameraAttributes.sqf @@ -8,7 +8,7 @@ * - 0: Free * - 1: First Person * - 2: Follow - * 1: Camera focus + * 1: Camera focus * 2: Camera vision * - -2: Normal * - -1: Night vision diff --git a/addons/spectator/functions/fnc_setFocus.sqf b/addons/spectator/functions/fnc_setFocus.sqf index 9c4c20cbb71..7e7d36393a0 100644 --- a/addons/spectator/functions/fnc_setFocus.sqf +++ b/addons/spectator/functions/fnc_setFocus.sqf @@ -2,6 +2,16 @@ * Author: AACO, SilentSpike * Function used to set the camera focus * + * Arguments: + * 0: New focus + * 1: Focus is a location + * + * Return Value: + * None + * + * Example: + * [player, false] call ace_spectator_fnc_setFocus + * * Public: No */ diff --git a/addons/spectator/functions/fnc_stageSpectator.sqf b/addons/spectator/functions/fnc_stageSpectator.sqf index b1bdcdea073..75b6d6fa82a 100644 --- a/addons/spectator/functions/fnc_stageSpectator.sqf +++ b/addons/spectator/functions/fnc_stageSpectator.sqf @@ -1,10 +1,20 @@ /* * Author: SilentSpike - * Stores and hides a player safely out of the way (used on spectator players) + * Stores and hides a player safely out of the way (used by setSpectator on living players) * * Units will be gathered at marker ace_spectator_respawn (or [0,0,0] by default) * Upon unstage, units will be moved to the position they were in before staging * + * Arguments: + * 0: Unit to handle + * 1: Stage/Unstage + * + * Return Value: + * None + * + * Example: + * [player, true] call ace_spectator_fnc_stageSpectator + * * Public: No */ diff --git a/addons/spectator/functions/fnc_switchFocus.sqf b/addons/spectator/functions/fnc_switchFocus.sqf index 30941245115..9aea8b061a8 100644 --- a/addons/spectator/functions/fnc_switchFocus.sqf +++ b/addons/spectator/functions/fnc_switchFocus.sqf @@ -2,6 +2,15 @@ * Author: Nelson Duarte, SilentSpike * Function used to switch to next or previous camera focus * + * Arguments: + * 0: Next/Prev unit + * + * Return Value: + * None + * + * Example: + * [false] call ace_spectator_fnc_switchFocus + * * Public: No */ diff --git a/addons/spectator/functions/fnc_ui.sqf b/addons/spectator/functions/fnc_ui.sqf index fb3a7672f11..d55287a610b 100644 --- a/addons/spectator/functions/fnc_ui.sqf +++ b/addons/spectator/functions/fnc_ui.sqf @@ -2,6 +2,15 @@ * Author: SilentSpike * Handles UI initialisation and destruction * + * Arguments: + * 0: Init/Terminate + * + * Return Value: + * None + * + * Example: + * [false] call ace_spectator_fnc_ui + * * Public: No */ diff --git a/addons/spectator/functions/fnc_ui_draw3D.sqf b/addons/spectator/functions/fnc_ui_draw3D.sqf index b460b676555..25e14b32492 100644 --- a/addons/spectator/functions/fnc_ui_draw3D.sqf +++ b/addons/spectator/functions/fnc_ui_draw3D.sqf @@ -2,6 +2,15 @@ * Author: Nelson Duarte, AACO, SilentSpike * Function used to draw the 3D icons and track the cursor object * + * Arguments: + * None + * + * Return Value: + * None + * + * Example: + * addMissionEventHandler ["Draw3D", {call ace_spectator_fnc_ui_draw3D}] + * * Public: No */ diff --git a/addons/spectator/functions/fnc_ui_fadeList.sqf b/addons/spectator/functions/fnc_ui_fadeList.sqf index e2286030182..c39a8efb9fc 100644 --- a/addons/spectator/functions/fnc_ui_fadeList.sqf +++ b/addons/spectator/functions/fnc_ui_fadeList.sqf @@ -2,6 +2,15 @@ * Author: Nelson Duarte, AACO * Function used to fade/unfade the entitiy/location list * + * Arguments: + * 0: Fade the list + * + * Return Value: + * None + * + * Example: + * [false] call ace_spectator_fnc_ui_fadeList + * * Public: No */ diff --git a/addons/spectator/functions/fnc_ui_getTreeDataIndex.sqf b/addons/spectator/functions/fnc_ui_getTreeDataIndex.sqf index 1621acfa888..4963a6799ff 100644 --- a/addons/spectator/functions/fnc_ui_getTreeDataIndex.sqf +++ b/addons/spectator/functions/fnc_ui_getTreeDataIndex.sqf @@ -2,6 +2,15 @@ * Author: Nelson Duarte, AACO * Function used to find a tree path of a unit * + * Arguments: + * 0: Data to search tree for + * + * Return Value: + * Tree path to data + * + * Example: + * [groupID _group] call ace_spectator_fnc_ui_getTreeDataIndex + * * Public: No */ diff --git a/addons/spectator/functions/fnc_ui_handleChildDestroyed.sqf b/addons/spectator/functions/fnc_ui_handleChildDestroyed.sqf index 5ced3b65265..f2dcab47eff 100644 --- a/addons/spectator/functions/fnc_ui_handleChildDestroyed.sqf +++ b/addons/spectator/functions/fnc_ui_handleChildDestroyed.sqf @@ -1,7 +1,19 @@ /* * Author: Nelson Duarte - * Function used to handle child destroyed + * Function used to handle child destroyed event * This only matters when abort button is pressed in child escape menu + * Will close main display to exit client from mission + * + * Arguments: + * 0: Spectator display + * 1: Child display + * 2: Exit code of child + * + * Return Value: + * None + * + * Example: + * _this call ace_spectator_fnc_ui_handleChildDestroyed * * Public: No */ diff --git a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf index 51bf1f0526d..6c1072c4860 100644 --- a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf +++ b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf @@ -1,6 +1,19 @@ /* * Author: Nelson Duarte, AACO, SilentSpike - * Function used to handle key press + * Function used to handle key down event + * + * Arguments: + * 0: Spectator display + * 1: Key DIK code + * 2: State of shift + * 3: State of ctrl + * 4: State of alt + * + * Return Value: + * None + * + * Example: + * _this call ace_spectator_fnc_ui_handleKeyDown * * Public: No */ diff --git a/addons/spectator/functions/fnc_ui_handleKeyUp.sqf b/addons/spectator/functions/fnc_ui_handleKeyUp.sqf index d63f05d2818..672f2f7bb8b 100644 --- a/addons/spectator/functions/fnc_ui_handleKeyUp.sqf +++ b/addons/spectator/functions/fnc_ui_handleKeyUp.sqf @@ -1,6 +1,19 @@ /* * Author: Nelson Duarte, SilentSpike - * Function used to handle key release + * Function used to handle key up event + * + * Arguments: + * 0: Spectator display + * 1: Key DIK code + * 2: State of shift + * 3: State of ctrl + * 4: State of alt + * + * Return Value: + * None + * + * Example: + * _this call ace_spectator_fnc_ui_handleKeyUp * * Public: No */ diff --git a/addons/spectator/functions/fnc_ui_handleListClick.sqf b/addons/spectator/functions/fnc_ui_handleListClick.sqf index aa9d1ebbc76..39d0e9fe9df 100644 --- a/addons/spectator/functions/fnc_ui_handleListClick.sqf +++ b/addons/spectator/functions/fnc_ui_handleListClick.sqf @@ -6,6 +6,16 @@ * Clicking an entry focuses the camera on it (any camera mode) * Double clicking an entry teleports the free camera nearby and focuses on it * + * Arguments: + * 0: Double clicked + * 1: List Click EH's _this + * + * Return Value: + * None + * + * Example: + * [false, _this] call ace_spectator_fnc_ui_handleListClick + * * Public: No */ #include "script_component.hpp" diff --git a/addons/spectator/functions/fnc_ui_handleMapClick.sqf b/addons/spectator/functions/fnc_ui_handleMapClick.sqf index d30507b884d..8d870ae0d0c 100644 --- a/addons/spectator/functions/fnc_ui_handleMapClick.sqf +++ b/addons/spectator/functions/fnc_ui_handleMapClick.sqf @@ -1,6 +1,18 @@ /* * Author: Nelson Duarte, AACO - * Function used to handle map mouse clicks + * Function used to handle map mouse click events + * + * Arguments: + * 0: Map control + * 1: Mouse button pressed + * 2: x screen coordinate clicked + * 3: y screen coordinate clicked + * + * Return Value: + * None + * + * Example: + * _this call ace_spectator_fnc_ui_handleMapClick * * Public: No */ diff --git a/addons/spectator/functions/fnc_ui_handleMapDraw.sqf b/addons/spectator/functions/fnc_ui_handleMapDraw.sqf index d74411997d1..9dd9ff1eac3 100644 --- a/addons/spectator/functions/fnc_ui_handleMapDraw.sqf +++ b/addons/spectator/functions/fnc_ui_handleMapDraw.sqf @@ -2,6 +2,15 @@ * Author: Nelson Duarte, AACO * Function used to handle map draw * + * Arguments: + * 0: Map control + * + * Return Value: + * None + * + * Example: + * _this call ace_spectator_fnc_ui_handleMapDraw + * * Public: No */ diff --git a/addons/spectator/functions/fnc_ui_handleMouseButtonDblClick.sqf b/addons/spectator/functions/fnc_ui_handleMouseButtonDblClick.sqf index 6a6a0de6b15..f880daf81b6 100644 --- a/addons/spectator/functions/fnc_ui_handleMouseButtonDblClick.sqf +++ b/addons/spectator/functions/fnc_ui_handleMouseButtonDblClick.sqf @@ -5,6 +5,16 @@ * Expected behaviour: * Double left click teleports free camera toward the unit, but does not focus * + * Arguments: + * 0: Control + * 1: Mouse button pressed + * + * Return Value: + * None + * + * Example: + * _this call ace_spectator_fnc_ui_handleMouseButtonDblClick + * * Public: No */ diff --git a/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf b/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf index 11748e60a09..52c094f174a 100644 --- a/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf +++ b/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf @@ -8,6 +8,16 @@ * Right clicking removes the camera lock, but retains the focus in free camera * Right clicking and dragging orbits around the unit in follow camera * + * Arguments: + * 0: Control + * 1: Mouse button pressed + * + * Return Value: + * None + * + * Example: + * _this call ace_spectator_fnc_ui_handleMouseButtonDown + * * Public: No */ diff --git a/addons/spectator/functions/fnc_ui_handleMouseMoving.sqf b/addons/spectator/functions/fnc_ui_handleMouseMoving.sqf index 0079912011c..cf6f8cc85ad 100644 --- a/addons/spectator/functions/fnc_ui_handleMouseMoving.sqf +++ b/addons/spectator/functions/fnc_ui_handleMouseMoving.sqf @@ -2,6 +2,17 @@ * Author: Nelson Duarte, AACO * Function used to handle mouse moving event * + * Arguments: + * 0: Control + * 1: Change in x + * 2: Change in y + * + * Return Value: + * None + * + * Example: + * _this call ace_spectator_fnc_ui_handleMouseMoving + * * Public: No */ diff --git a/addons/spectator/functions/fnc_ui_handleMouseZChanged.sqf b/addons/spectator/functions/fnc_ui_handleMouseZChanged.sqf index ce6e49b963d..5e54cb8b723 100644 --- a/addons/spectator/functions/fnc_ui_handleMouseZChanged.sqf +++ b/addons/spectator/functions/fnc_ui_handleMouseZChanged.sqf @@ -2,6 +2,16 @@ * Author: Nelson Duarte, AACO * Function used to handle mouse scroll event * + * Arguments: + * 0: Control + * 1: Change in Z + * + * Return Value: + * None + * + * Example: + * _this call ace_spectator_fnc_ui_handleMouseZChanged + * * Public: No */ diff --git a/addons/spectator/functions/fnc_ui_handleTabSelected.sqf b/addons/spectator/functions/fnc_ui_handleTabSelected.sqf index 21bf103dcf1..a69d8846011 100644 --- a/addons/spectator/functions/fnc_ui_handleTabSelected.sqf +++ b/addons/spectator/functions/fnc_ui_handleTabSelected.sqf @@ -2,6 +2,16 @@ * Author: Nelson Duarte, SilentSpike * Function used to handle list tab change * + * Arguments: + * 0: Control + * 1: New tab index + * + * Return Value: + * None + * + * Example: + * _this call ace_spectator_fnc_ui_handleTabSelected + * * Public: No */ diff --git a/addons/spectator/functions/fnc_ui_toggleMap.sqf b/addons/spectator/functions/fnc_ui_toggleMap.sqf index f11cbe09195..744eb250653 100644 --- a/addons/spectator/functions/fnc_ui_toggleMap.sqf +++ b/addons/spectator/functions/fnc_ui_toggleMap.sqf @@ -2,6 +2,15 @@ * Author: Nelson Duarte, AACO * Function used to toggle the map * + * Arguments: + * None + * + * Return Value: + * None + * + * Example: + * [] call ace_spectator_fnc_ui_toggleMap + * * Public: No */ diff --git a/addons/spectator/functions/fnc_ui_toggleUI.sqf b/addons/spectator/functions/fnc_ui_toggleUI.sqf index 1a25c5212d4..b15e8b19621 100644 --- a/addons/spectator/functions/fnc_ui_toggleUI.sqf +++ b/addons/spectator/functions/fnc_ui_toggleUI.sqf @@ -2,6 +2,15 @@ * Author: Nelson Duarte, AACO, SilentSpike * Function used to toggle the whole user interface * + * Arguments: + * None + * + * Return Value: + * None + * + * Example: + * [] call ace_spectator_fnc_ui_toggleUI + * * Public: No */ diff --git a/addons/spectator/functions/fnc_ui_updateCamButtons.sqf b/addons/spectator/functions/fnc_ui_updateCamButtons.sqf index 21d3fe8dd5b..d110aac4ea0 100644 --- a/addons/spectator/functions/fnc_ui_updateCamButtons.sqf +++ b/addons/spectator/functions/fnc_ui_updateCamButtons.sqf @@ -3,6 +3,15 @@ * Used to update the docked camera buttons * Disables unavailable, highlights current * + * Arguments: + * None + * + * Return Value: + * None + * + * Example: + * [] call ace_spectator_fnc_ui_updateCamButtons + * * Public: No */ diff --git a/addons/spectator/functions/fnc_ui_updateHelp.sqf b/addons/spectator/functions/fnc_ui_updateHelp.sqf index 9c1f538a417..50dc1781bcc 100644 --- a/addons/spectator/functions/fnc_ui_updateHelp.sqf +++ b/addons/spectator/functions/fnc_ui_updateHelp.sqf @@ -6,6 +6,15 @@ * This is intentional, since controls appear via priority que * The overhead is minimal * + * Arguments: + * None + * + * Return Value: + * None + * + * Example: + * [] call ace_spectator_fnc_ui_updateHelp + * * Public: No */ diff --git a/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf b/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf index e1854bab1c8..9d3999ab806 100644 --- a/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf +++ b/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf @@ -2,6 +2,15 @@ * Author: Nelson Duarte, AACO, SilentSpike * Function used update the things to 3D draw * + * Arguments: + * None + * + * Return Value: + * None + * + * Examples: + * [] call ace_spectator_fnc_ui_updateIconsToDraw + * * Public: No */ diff --git a/addons/spectator/functions/fnc_ui_updateListEntities.sqf b/addons/spectator/functions/fnc_ui_updateListEntities.sqf index 49fcdfbe3fc..cb165b5f45f 100644 --- a/addons/spectator/functions/fnc_ui_updateListEntities.sqf +++ b/addons/spectator/functions/fnc_ui_updateListEntities.sqf @@ -2,6 +2,15 @@ * Author: Nelson Duarte, AACO, SilentSpike * Updates spectator UI list of units/groups * + * Arguments: + * None + * + * Return Value: + * None + * + * Example: + * [] call ace_spectator_fnc_ui_updateListEntities + * * Public: No */ diff --git a/addons/spectator/functions/fnc_ui_updateListFocus.sqf b/addons/spectator/functions/fnc_ui_updateListFocus.sqf index e50bc8b7bea..4bdd1910174 100644 --- a/addons/spectator/functions/fnc_ui_updateListFocus.sqf +++ b/addons/spectator/functions/fnc_ui_updateListFocus.sqf @@ -1,6 +1,15 @@ /* * Author: Nelson Duarte, AACO, SilentSpike - * Function used to update the list focus + * Function used to update the list current selection + * + * Arguments: + * None + * + * Return Value: + * None + * + * Example: + * [] call ace_spectator_fnc_ui_updateListFocus * * Public: No */ diff --git a/addons/spectator/functions/fnc_ui_updateListLocations.sqf b/addons/spectator/functions/fnc_ui_updateListLocations.sqf index 7295cfb9b1d..9693cba2a7f 100644 --- a/addons/spectator/functions/fnc_ui_updateListLocations.sqf +++ b/addons/spectator/functions/fnc_ui_updateListLocations.sqf @@ -2,6 +2,15 @@ * Author: Nelson Duarte, AACO, SilentSpike * Updates spectator UI list of locations * + * Arguments: + * None + * + * Return Value: + * None + * + * Example: + * [] call ace_spectator_fnc_ui_updateListLocations + * * Public: No */ diff --git a/addons/spectator/functions/fnc_ui_updateWidget.sqf b/addons/spectator/functions/fnc_ui_updateWidget.sqf index d37a7b89aac..53850daf942 100644 --- a/addons/spectator/functions/fnc_ui_updateWidget.sqf +++ b/addons/spectator/functions/fnc_ui_updateWidget.sqf @@ -2,6 +2,15 @@ * Author: Nelson Duarte, SilentSpike * Updates spectator UI unit info widget * + * Arguments: + * None + * + * Return Value: + * None + * + * Example: + * [] call ace_spectator_fnc_ui_updateWidget + * * Public: No */ From 55eab16a384154792f87464005540881958d933b Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sun, 4 Jun 2017 21:36:20 +0100 Subject: [PATCH 107/198] All the changes I had staged before arma broke git Arma managed to crash my whole system again, breaking my git repo and I resorted to nuking it and pasting the changes I had comitted locally back in. From memory: - Fix icon paths - use distanceSqr for minor speed boost - Add setting to show map locations in the UI - Limit location rendering based on distance - Probably some other crap --- addons/spectator/ACE_Settings.hpp | 6 +++ addons/spectator/CfgVehicles.hpp | 6 +++ addons/spectator/XEH_postInit.sqf | 11 +++++ .../functions/fnc_cam_prepareTarget.sqf | 4 +- .../spectator/functions/fnc_getGroupIcon.sqf | 45 ++++++++++--------- .../functions/fnc_moduleSpectatorSettings.sqf | 1 + .../functions/fnc_setCameraAttributes.sqf | 3 +- addons/spectator/functions/fnc_ui.sqf | 22 ++++----- addons/spectator/functions/fnc_ui_draw3D.sqf | 11 ++--- .../spectator/functions/fnc_ui_fadeList.sqf | 2 +- .../functions/fnc_ui_handleKeyDown.sqf | 4 +- .../functions/fnc_ui_handleMapDraw.sqf | 8 ++-- .../functions/fnc_ui_handleMouseMoving.sqf | 4 +- .../functions/fnc_ui_updateIconsToDraw.sqf | 38 ++++++++-------- .../spectator/functions/fnc_updateUnits.sqf | 35 ++++++++------- addons/spectator/script_component.hpp | 2 +- addons/spectator/stringtable.xml | 12 +++-- 17 files changed, 127 insertions(+), 87 deletions(-) diff --git a/addons/spectator/ACE_Settings.hpp b/addons/spectator/ACE_Settings.hpp index 6030414908f..cc69bfc39dd 100644 --- a/addons/spectator/ACE_Settings.hpp +++ b/addons/spectator/ACE_Settings.hpp @@ -19,4 +19,10 @@ class ACE_Settings { value = 0; values[] = {CSTRING(modes_all), CSTRING(visions_nv), CSTRING(visions_ti), "$STR_Special_None"}; }; + class GVAR(mapLocations) { + displayName = CSTRING(mapLocations_DisplayName); + description = CSTRING(mapLocations_Description); + typeName = "BOOL"; + value = 0; + }; }; diff --git a/addons/spectator/CfgVehicles.hpp b/addons/spectator/CfgVehicles.hpp index 861a6198331..850c1c9db33 100644 --- a/addons/spectator/CfgVehicles.hpp +++ b/addons/spectator/CfgVehicles.hpp @@ -67,6 +67,12 @@ class CfgVehicles { }; }; }; + class mapLocations { + displayName = CSTRING(mapLocations_DisplayName); + description = CSTRING(mapLocations_Description); + typeName = "BOOL"; + defaultValue = 0; + }; }; class ModuleDescription { description = CSTRING(Settings_Description); diff --git a/addons/spectator/XEH_postInit.sqf b/addons/spectator/XEH_postInit.sqf index d077c622ed6..ad021a35505 100644 --- a/addons/spectator/XEH_postInit.sqf +++ b/addons/spectator/XEH_postInit.sqf @@ -3,6 +3,17 @@ ["ace_settingsInitialized", { GVAR(availableModes) = [[0,1,2], [1,2], [0], [1], [2]] select GVAR(restrictModes); GVAR(availableVisions) = [[-2,-1,0,1], [-2,-1], [-2,0,1], [-2]] select GVAR(restrictVisions); + + if (GVAR(mapLocations)) then { + private _worldWidth = worldSize / 2; + { + [locationPosition _x, [text _x] call CBA_fnc_capitalize] call FUNC(addLocation); + } forEach nearestLocations [ + [_worldWidth, _worldWidth], + ["NameVillage", "NameCity", "NameCityCapital", "NameLocal", "NameMarine"], + _worldWidth * sqrt 2 + ]; + }; }] call CBA_fnc_addEventHandler; if (isServer) then { diff --git a/addons/spectator/functions/fnc_cam_prepareTarget.sqf b/addons/spectator/functions/fnc_cam_prepareTarget.sqf index 4990e83fc8a..abdce831b49 100644 --- a/addons/spectator/functions/fnc_cam_prepareTarget.sqf +++ b/addons/spectator/functions/fnc_cam_prepareTarget.sqf @@ -25,7 +25,7 @@ if !(isNull _focus) then { private _zoomTemp = GVAR(camDistanceTemp); if (_zoomTemp != _zoom) then { - _zoomTemp = [_zoomTemp, _zoom, 10.0, GVAR(camDeltaTime)] call BIS_fnc_lerp; + _zoomTemp = [_zoomTemp, _zoom, 10, GVAR(camDeltaTime)] call BIS_fnc_lerp; GVAR(camDistanceTemp) = _zoomTemp; }; @@ -35,7 +35,7 @@ if !(isNull _focus) then { // The pivot on the target vehicle private _isMan = _focus isKindOf "Man"; - private _height = if !(_isMan) then { (_bbd select 2) / 3.0 } else { switch (stance _focus) do { case "STAND": {1.4}; case "CROUCH": {0.8}; default {0.4}; }; }; + private _height = if !(_isMan) then { (_bbd select 2) / 3 } else { switch (stance _focus) do { case "STAND": {1.4}; case "CROUCH": {0.8}; default {0.4}; }; }; private _center = if (_isMan) then { AGLToASL (_focus modelToWorldVisual (_focus selectionPosition "Spine3")) } else { AGLToASL (_focus modelToWorldVisual [0,0,_height]) }; diff --git a/addons/spectator/functions/fnc_getGroupIcon.sqf b/addons/spectator/functions/fnc_getGroupIcon.sqf index 931f01b0a0d..fdc2772edca 100644 --- a/addons/spectator/functions/fnc_getGroupIcon.sqf +++ b/addons/spectator/functions/fnc_getGroupIcon.sqf @@ -16,32 +16,33 @@ */ #include "script_component.hpp" +#define ICON_PATH(var1) QUOTE(a3\ui_f\data\Map\Markers\NATO\var1) // Military icons -#define ICON_UNKNOWN ["a3\ui_f\data\Map\Markers\NATO\data\b_unknown.paa", QPATHTOF(data\b_unknown.paa)] select _forDraw -#define ICON_UAV ["a3\ui_f\data\Map\Markers\NATO\data\b_uav.paa", QPATHTOF(data\b_uav.paa)] select _forDraw -#define ICON_SUPPORT ["a3\ui_f\data\Map\Markers\NATO\data\b_support.paa", QPATHTOF(data\b_support.paa)] select _forDraw -#define ICON_SERVICE ["a3\ui_f\data\Map\Markers\NATO\data\b_service.paa", QPATHTOF(data\b_service.paa)] select _forDraw -#define ICON_RECON ["a3\ui_f\data\Map\Markers\NATO\data\b_recon.paa", QPATHTOF(data\b_recon.paa)] select _forDraw -#define ICON_PLANE ["a3\ui_f\data\Map\Markers\NATO\data\b_plane.paa", QPATHTOF(data\b_plane.paa)] select _forDraw -#define ICON_NAVAL ["a3\ui_f\data\Map\Markers\NATO\data\b_naval.paa", QPATHTOF(data\b_naval.paa)] select _forDraw -#define ICON_MOTOR_INF ["a3\ui_f\data\Map\Markers\NATO\data\b_motor_inf.paa", QPATHTOF(data\b_motor_inf.paa)] select _forDraw -#define ICON_MORTAR ["a3\ui_f\data\Map\Markers\NATO\data\b_mortar.paa", QPATHTOF(data\b_mortar.paa)] select _forDraw -#define ICON_MED ["a3\ui_f\data\Map\Markers\NATO\data\b_med.paa", QPATHTOF(data\b_med.paa)] select _forDraw -#define ICON_MECH_INF ["a3\ui_f\data\Map\Markers\NATO\data\b_mech_inf.paa", QPATHTOF(data\b_mech_inf.paa)] select _forDraw -#define ICON_MAINT ["a3\ui_f\data\Map\Markers\NATO\data\b_maint.paa", QPATHTOF(data\b_maint.paa)] select _forDraw -#define ICON_INSTALLATION ["a3\ui_f\data\Map\Markers\NATO\data\b_installation.paa", QPATHTOF(data\b_installation.paa)] select _forDraw -#define ICON_INF ["a3\ui_f\data\Map\Markers\NATO\data\b_inf.paa", QPATHTOF(data\b_inf.paa)] select _forDraw -#define ICON_ART ["a3\ui_f\data\Map\Markers\NATO\data\b_art.paa", QPATHTOF(data\b_art.paa)] select _forDraw -#define ICON_ARMOR ["a3\ui_f\data\Map\Markers\NATO\data\b_armor.paa", QPATHTOF(data\b_armor.paa)] select _forDraw -#define ICON_AIR ["a3\ui_f\data\Map\Markers\NATO\data\b_air.paa", QPATHTOF(data\b_air.paa)] select _forDraw +#define ICON_UNKNOWN [ICON_PATH(b_unknown.paa), QPATHTOF(data\b_unknown.paa)] select _forDraw +#define ICON_UAV [ICON_PATH(b_uav.paa), QPATHTOF(data\b_uav.paa)] select _forDraw +#define ICON_SUPPORT [ICON_PATH(b_support.paa), QPATHTOF(data\b_support.paa)] select _forDraw +#define ICON_SERVICE [ICON_PATH(b_service.paa), QPATHTOF(data\b_service.paa)] select _forDraw +#define ICON_RECON [ICON_PATH(b_recon.paa), QPATHTOF(data\b_recon.paa)] select _forDraw +#define ICON_PLANE [ICON_PATH(b_plane.paa), QPATHTOF(data\b_plane.paa)] select _forDraw +#define ICON_NAVAL [ICON_PATH(b_naval.paa), QPATHTOF(data\b_naval.paa)] select _forDraw +#define ICON_MOTOR_INF [ICON_PATH(b_motor_inf.paa), QPATHTOF(data\b_motor_inf.paa)] select _forDraw +#define ICON_MORTAR [ICON_PATH(b_mortar.paa), QPATHTOF(data\b_mortar.paa)] select _forDraw +#define ICON_MED [ICON_PATH(b_med.paa), QPATHTOF(data\b_med.paa)] select _forDraw +#define ICON_MECH_INF [ICON_PATH(b_mech_inf.paa), QPATHTOF(data\b_mech_inf.paa)] select _forDraw +#define ICON_MAINT [ICON_PATH(b_maint.paa), QPATHTOF(data\b_maint.paa)] select _forDraw +#define ICON_INSTALLATION [ICON_PATH(b_installation.paa), QPATHTOF(data\b_installation.paa)] select _forDraw +#define ICON_INF [ICON_PATH(b_inf.paa), QPATHTOF(data\b_inf.paa)] select _forDraw +#define ICON_ART [ICON_PATH(b_art.paa), QPATHTOF(data\b_art.paa)] select _forDraw +#define ICON_ARMOR [ICON_PATH(b_armor.paa), QPATHTOF(data\b_armor.paa)] select _forDraw +#define ICON_AIR [ICON_PATH(b_air.paa), QPATHTOF(data\b_air.paa)] select _forDraw // Civilian icons -#define CIV_ICON_UNKNOWN ["a3\ui_f\data\Map\Markers\NATO\data\c_unknown.paa", QPATHTOF(data\c_unknown.paa)] select _forDraw -#define CIV_ICON_AIR ["a3\ui_f\data\Map\Markers\NATO\data\c_air.paa", QPATHTOF(data\c_air.paa)] select _forDraw -#define CIV_ICON_CAR ["a3\ui_f\data\Map\Markers\NATO\data\c_car.paa", QPATHTOF(data\c_car.paa)] select _forDraw -#define CIV_ICON_PLANE ["a3\ui_f\data\Map\Markers\NATO\data\c_plane.paa", QPATHTOF(data\c_plane.paa)] select _forDraw -#define CIV_ICON_SHIP ["a3\ui_f\data\Map\Markers\NATO\data\c_ship.paa", QPATHTOF(data\c_ship.paa)] select _forDraw +#define CIV_ICON_UNKNOWN [ICON_PATH(c_unknown.paa), QPATHTOF(data\c_unknown.paa)] select _forDraw +#define CIV_ICON_AIR [ICON_PATH(c_air.paa), QPATHTOF(data\c_air.paa)] select _forDraw +#define CIV_ICON_CAR [ICON_PATH(c_car.paa), QPATHTOF(data\c_car.paa)] select _forDraw +#define CIV_ICON_PLANE [ICON_PATH(c_plane.paa), QPATHTOF(data\c_plane.paa)] select _forDraw +#define CIV_ICON_SHIP [ICON_PATH(c_ship.paa), QPATHTOF(data\c_ship.paa)] select _forDraw params [["_group", grpNull, [grpNull]], ["_forDraw", false, [true]]]; diff --git a/addons/spectator/functions/fnc_moduleSpectatorSettings.sqf b/addons/spectator/functions/fnc_moduleSpectatorSettings.sqf index 3e1e0c663ef..8a5d9d4b590 100644 --- a/addons/spectator/functions/fnc_moduleSpectatorSettings.sqf +++ b/addons/spectator/functions/fnc_moduleSpectatorSettings.sqf @@ -22,3 +22,4 @@ if !(_activated) exitWith {}; [_logic, QGVAR(enableAI), "enableAI"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(restrictModes), "cameraModes"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(restrictVisions), "visionModes"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(mapLocations), "mapLocations"] call EFUNC(common,readSettingFromModule); diff --git a/addons/spectator/functions/fnc_setCameraAttributes.sqf b/addons/spectator/functions/fnc_setCameraAttributes.sqf index 5def9d744cc..1081fcc5a99 100644 --- a/addons/spectator/functions/fnc_setCameraAttributes.sqf +++ b/addons/spectator/functions/fnc_setCameraAttributes.sqf @@ -42,9 +42,8 @@ params [ ["_direction",nil,[0]] ]; -// ACE_DEPRECATED (< Tag so that this is found via a search, can remove the warning in 3.12.0) if (count _this > 5) then { - WARNING("Use of ""tilt"", ""zoom"" and ""speed"" camera attributes is no longer supported"); + ACE_DEPRECATED("Use of ""tilt"", ""zoom"" and ""speed"" camera attributes","3.12.0","N/A") }; // Apply if camera exists diff --git a/addons/spectator/functions/fnc_ui.sqf b/addons/spectator/functions/fnc_ui.sqf index d55287a610b..a8fba7de5d7 100644 --- a/addons/spectator/functions/fnc_ui.sqf +++ b/addons/spectator/functions/fnc_ui.sqf @@ -34,18 +34,19 @@ while {dialog} do { // Destroy: UI Stuff > Display > Vars if (_init) then { // UI visibility tracking - GVAR(uiVisible) = true; - GVAR(uiHelpVisible) = true; - GVAR(uiMapVisible) = true; - GVAR(uiWidgetVisible) = true; + GVAR(uiVisible) = true; + GVAR(uiHelpVisible) = true; + GVAR(uiMapVisible) = true; + GVAR(uiWidgetVisible) = true; // Drawing related - GVAR(drawProjectiles) = false; - GVAR(drawUnits) = true; - GVAR(entitiesToDraw) = []; - GVAR(grenadesToDraw) = []; - GVAR(iconsToDraw) = []; - GVAR(projectilesToDraw) = []; + GVAR(drawProjectiles) = false; + GVAR(drawUnits) = true; + GVAR(entitiesToDraw) = []; + GVAR(grenadesToDraw) = []; + GVAR(iconsToDraw) = []; + GVAR(locationsToDraw) = []; + GVAR(projectilesToDraw) = []; // RMB tracking is used for follow camera mode GVAR(holdingRMB) = false; @@ -133,6 +134,7 @@ if (_init) then { GVAR(entitiesToDraw) = nil; GVAR(grenadesToDraw) = nil; GVAR(iconsToDraw) = nil; + GVAR(locationsToDraw) = nil; GVAR(projectilesToDraw) = nil; // Reset view distance diff --git a/addons/spectator/functions/fnc_ui_draw3D.sqf b/addons/spectator/functions/fnc_ui_draw3D.sqf index 25e14b32492..05e60796610 100644 --- a/addons/spectator/functions/fnc_ui_draw3D.sqf +++ b/addons/spectator/functions/fnc_ui_draw3D.sqf @@ -43,14 +43,14 @@ if !(GVAR(uiMapVisible)) then { _x params ["_unit", "_type", "_icon"]; private _position = (_unit modelToWorldVisual (_unit selectionPosition "Head")) vectorAdd [0,0,HEIGHT_OFFSET]; - if (_type == 2 && { _unit distance GVAR(camera) < DISTANCE_NAMES } && {_unit in _camTarget || _unit in _cursorObject}) then { + if (_type == 2 && { _unit distanceSqr GVAR(camera) < DISTANCE_NAMES_SQR } && {_unit in _camTarget || _unit in _cursorObject}) then { drawIcon3D [ ICON_BACKGROUND_UNIT, [0, 0, 0, [0.4, 0.8] select (_unit in _camTarget)], _position, - 5.0, + 5, 4, - 0.0, + 0, "", 0, 0.035, @@ -73,7 +73,8 @@ if !(GVAR(uiMapVisible)) then { // Draw locations { - _x params ["", "_name", "", "_texture", "_pos"]; + _x params ["_pos", "_name", "_texture"]; + if (_pos isEqualType objNull) then { _pos = (_pos modelToWorldVisual (_pos selectionPosition "Head")) vectorAdd [0,0,2*HEIGHT_OFFSET]; }; @@ -81,7 +82,7 @@ if !(GVAR(uiMapVisible)) then { drawIcon3D [_texture, [1,1,1,0.4], _pos, 0.8, 0.8, 0, _name]; nil // Speed loop - } count (GVAR(locationsList)); + } count (GVAR(locationsToDraw)); END_COUNTER(drawTags); }; diff --git a/addons/spectator/functions/fnc_ui_fadeList.sqf b/addons/spectator/functions/fnc_ui_fadeList.sqf index c39a8efb9fc..b0d3dfeb4a9 100644 --- a/addons/spectator/functions/fnc_ui_fadeList.sqf +++ b/addons/spectator/functions/fnc_ui_fadeList.sqf @@ -33,7 +33,7 @@ if (GVAR(uiVisible)) then { showChat true; } else { _list ctrlSetBackgroundColor [0,0,0,0.75]; - _list ctrlSetFade 0.0; + _list ctrlSetFade 0; ctrlSetFocus _list; // Disable camera input while using the list diff --git a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf index 6c1072c4860..753bba77153 100644 --- a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf +++ b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf @@ -93,13 +93,13 @@ if (_key == DIK_N) exitWith { // Handle postive change in draw if (_key == DIK_PGUP) exitWith { - setViewDistance ((viewDistance + 250.0) min MAX_VIEW_DISTANCE); + setViewDistance ((viewDistance + 250) min MAX_VIEW_DISTANCE); true }; // Handle negative change in draw if (_key == DIK_PGDN) exitWith { - setViewDistance ((viewDistance - 250.0) max MIN_VIEW_DISTANCE); + setViewDistance ((viewDistance - 250) max MIN_VIEW_DISTANCE); true }; diff --git a/addons/spectator/functions/fnc_ui_handleMapDraw.sqf b/addons/spectator/functions/fnc_ui_handleMapDraw.sqf index 9dd9ff1eac3..0bb45a7a581 100644 --- a/addons/spectator/functions/fnc_ui_handleMapDraw.sqf +++ b/addons/spectator/functions/fnc_ui_handleMapDraw.sqf @@ -62,7 +62,7 @@ private _handledVehicles = []; _sideColor = [1, 1, 1, 1]; }; - _map drawIcon [_vehicleTexture, _sideColor, getPosASLVisual _vehicle, 24.0, 24.0, getDirVisual _vehicle, _text, 1, 0.04, "TahomaB", "right"]; + _map drawIcon [_vehicleTexture, _sideColor, getPosASLVisual _vehicle, 24, 24, getDirVisual _vehicle, _text, 1, 0.04, "TahomaB", "right"]; }; nil // Speed loop } count ([] call FUNC(getTargetEntities)); @@ -81,14 +81,14 @@ CTRL_MAP_FOOTER ctrlSetText _text; if !(isNil QGVAR(camera)) then { private _cameraPos = getPosASLVisual GVAR(camera); private _cameraDir = getDirVisual GVAR(camera); - _map drawIcon [ICON_CAMERA, [0.5, 1.0, 0.5, 1.0], _cameraPos, 32.0, 48.0, _cameraDir, "", 1, 0.05, "TahomaB", "right"]; - _map drawArrow [_cameraPos, (_cameraPos getPos [300, _cameraDir]), [0.5, 1.0, 0.5, 1.0]]; + _map drawIcon [ICON_CAMERA, [0.5, 1, 0.5, 1], _cameraPos, 32, 48, _cameraDir, "", 1, 0.05, "TahomaB", "right"]; + _map drawArrow [_cameraPos, (_cameraPos getPos [300, _cameraDir]), [0.5, 1, 0.5, 1]]; }; // Draw locations { _x params ["", "_name", "", "_texture", "_pos"]; - _map drawIcon [_texture, [1,1,1,0.5], _pos, 36.0, 36.0, 0, _name, true, 0.04, "TahomaB", "right"]; + _map drawIcon [_texture, [1,1,1,0.5], _pos, 36, 36, 0, _name, true, 0.04, "TahomaB", "right"]; nil // Speed loop } count (GVAR(locationsList)); diff --git a/addons/spectator/functions/fnc_ui_handleMouseMoving.sqf b/addons/spectator/functions/fnc_ui_handleMouseMoving.sqf index cf6f8cc85ad..af3f1ede62e 100644 --- a/addons/spectator/functions/fnc_ui_handleMouseMoving.sqf +++ b/addons/spectator/functions/fnc_ui_handleMouseMoving.sqf @@ -22,10 +22,10 @@ if (GVAR(holdingRMB) && { GVAR(camMode) == MODE_FOLLOW }) then { params ["", "_deltaX", "_deltaY"]; if (_deltaX != 0) then { - GVAR(camYaw) = ((GVAR(camYaw) + (_deltaX * 100 * GVAR(camDeltaTime)) + 180.0) % 360.0) - 180; + GVAR(camYaw) = ((GVAR(camYaw) + (_deltaX * 100 * GVAR(camDeltaTime)) + 180) % 360) - 180; }; if (_deltaY != 0) then { - GVAR(camPitch) = (((GVAR(camPitch) - (_deltaY * 100 * GVAR(camDeltaTime))) max -90.0) min 90.0); + GVAR(camPitch) = (((GVAR(camPitch) - (_deltaY * 100 * GVAR(camDeltaTime))) max -90) min 90); }; }; diff --git a/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf b/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf index 9d3999ab806..be121f109b3 100644 --- a/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf +++ b/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf @@ -22,9 +22,9 @@ private _entitiesToDraw = []; { private _vehicle = vehicle _x; private _inVehicle = (_vehicle != _x); - private _distanceToCamera = GVAR(camera) distance _x; + private _distanceToCamera = GVAR(camera) distanceSqr _x; - if (_distanceToCamera <= 3000.0 && { !_inVehicle || { _x == effectiveCommander _vehicle } }) then { + if (_distanceToCamera <= 3000 && { !_inVehicle || { _x == effectiveCommander _vehicle } }) then { private _group = group _x; private _groupSide = side _group; private _groupName = groupId _group; @@ -34,21 +34,21 @@ private _entitiesToDraw = []; // Calculate distance fade (_distanceToCamera call { if (_this <= 500) exitWith { - [1.0, 4.0, -2.5, 0.04] + [1, 4, -2.5, 0.04] }; if (_this <= 1000) exitWith { [0.75, 3.5, -2.2, 0.035] }; if (_this <= 1500) exitWith { - [0.5, 3.0, -1.9, 0.03] + [0.5, 3, -1.9, 0.03] }; if (_this <= 2000) exitWith { [0.3, 2.5, -1.6, 0.025] }; if (_this <= 2500) exitWith { - [0.2, 2.0, -1.3, 0.02] + [0.2, 2, -1.3, 0.02] }; - [0.15, 1.5, -1.0, 0.015] + [0.15, 1.5, -1, 0.015] }) params ["_fadeByDistance", "_sizeByDistance", "_heightByDistance", "_fontSizeByDistance"]; // Apply color fade @@ -65,15 +65,15 @@ private _entitiesToDraw = []; }; // Show unit name only if camera is near enough - if (_distanceToCamera < DISTANCE_NAMES) then { + if (_distanceToCamera < DISTANCE_NAMES_SQR) then { // Unit name _iconsToDraw pushBack [_x, 2, [ "", [1,1,1,1], [0,0,0], - 0.0, + 0, _heightByDistance, - 0.0, + 0, _name, 2, _fontSizeByDistance, @@ -87,9 +87,9 @@ private _entitiesToDraw = []; "", [1,1,1,_fadeByDistance], [0,0,0], - 0.0, + 0, _heightByDistance, - 0.0, + 0, _groupName, 2, _fontSizeByDistance, @@ -107,7 +107,7 @@ private _entitiesToDraw = []; [0,0,0], _sizeByDistance, _sizeByDistance, - 0.0, + 0, "", 0, 0.035, @@ -123,9 +123,9 @@ private _entitiesToDraw = []; [0,0,0], _sizeByDistance, _sizeByDistance, - 0.0, + 0, "", - 0.0, + 0, 0.035, "PuristaMedium", "center" @@ -145,11 +145,13 @@ private _entitiesToDraw = []; // Remove object locations that are now null { - _x params ["_id", "", "", "", "_pos"]; + _x params ["_id", "_name", "", "_texture", "_pos"]; - if (_pos isEqualType objNull) then { - if (isNull _pos) then { - [_id] call FUNC(removeLocation); + if ((_pos isEqualType objNull) && {isNull _pos}) then { + [_id] call FUNC(removeLocation); + } else { + if ((GVAR(camera) distanceSqr _pos) < DISTANCE_NAMES_SQR) then { + GVAR(locationsToDraw) pushBack [_pos, _name, _texture]; }; }; diff --git a/addons/spectator/functions/fnc_updateUnits.sqf b/addons/spectator/functions/fnc_updateUnits.sqf index b22828e924d..31bde1ac19c 100644 --- a/addons/spectator/functions/fnc_updateUnits.sqf +++ b/addons/spectator/functions/fnc_updateUnits.sqf @@ -1,35 +1,40 @@ /* * Author: SilentSpike - * Adds units to spectator whitelist/blacklist. Local effect. + * Adds and removed units from the spectator list. Local effect. * * Arguments: - * 0: Units to add to the whitelist - * 1: Use blacklist (default: false) + * 0: Units to show in the list + * 1: Units to hide in the list * * Return Value: * None * * Example: - * [allPlayers,true] call ace_spectator_fnc_updateUnits + * [allPlayers, [player]] call ace_spectator_fnc_updateUnits * * Public: Yes */ #include "script_component.hpp" -params [["_newUnits",[],[[]]], ["_blacklist",false,[false]]]; - // Function only matters on player clients if (!hasInterface) exitWith {}; -// If input is empty do nothing -if !(_newUnits isEqualTo []) then { - // Blacklist and whitelist should contain no overlap - if (_blacklist) then { - GVAR(unitWhitelist) = GVAR(unitWhitelist) - _newUnits; - GVAR(unitBlacklist) append _newUnits; - } else { - GVAR(unitBlacklist) = GVAR(unitBlacklist) - _newUnits; - GVAR(unitWhitelist) append _newUnits; +params [["_addUnits",[],[[]]], ["_removeUnits",[],[[], true]]]; + +// Deprecated parameter (remember to remove bool from params when removed) +if (_removeUnits isEqualType true) then { + ACE_DEPRECATED("Boolean parameter","3.12.0","array (see function header or doc)"); + if (_removeUnits) then { + _removeUnits = _addUnits; + _addUnits = []; }; }; + +// Add to the whitelist and prevent list overlap +GVAR(unitBlacklist) = GVAR(unitBlacklist) - _addUnits; +GVAR(unitWhitelist) append _addUnits; + +// Blacklist overrides the whitelist +GVAR(unitWhitelist) = GVAR(unitWhitelist) - _removeUnits; +GVAR(unitBlacklist) append _removeUnits; diff --git a/addons/spectator/script_component.hpp b/addons/spectator/script_component.hpp index f9d406e3880..dd6c52ef497 100644 --- a/addons/spectator/script_component.hpp +++ b/addons/spectator/script_component.hpp @@ -46,7 +46,7 @@ #define MAX_PROJECTILES 50 #define MAX_PROJECTILE_SEGMENTS 50 -#define DISTANCE_NAMES 175 +#define DISTANCE_NAMES_SQR 30625 // Names are rendered at 175m, squared for `distanceSqr` speed #define NAME_MAX_CHARACTERS 17 #define LIST_ENTITIES localize "STR_A3_Spectator_Entities" diff --git a/addons/spectator/stringtable.xml b/addons/spectator/stringtable.xml index 28994d21dd3..da33081ff0f 100644 --- a/addons/spectator/stringtable.xml +++ b/addons/spectator/stringtable.xml @@ -35,7 +35,7 @@ AI Enabled - Whether AI can be viewed in spectator + Make AI viewable in spectator Camera modes @@ -51,7 +51,7 @@ 카메라 모드 - Camera modes that can be used. + Camera modes that can be used Verwendbare Kameramodi Tryby kamery, jakie mogą być używane. Modos de camera que podem ser utilizados @@ -103,7 +103,7 @@ 시야 모드 - Vision modes that can be used. + Vision modes that can be used Sichtmodi die verwendet werden können. Tryby wizji, jakie mogą być używane. Modos de visão que podem ser utilizados @@ -207,6 +207,12 @@ 熱源画像 열상 + + Add Map Locations + + + Add map locations to the spectator UI + Icons From ede515dfa677a1a2263836fbce364c235b4506b5 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sun, 4 Jun 2017 21:45:20 +0100 Subject: [PATCH 108/198] Fix squared comparisons --- .../functions/fnc_ui_updateIconsToDraw.sqf | 18 +++++++++--------- addons/spectator/script_component.hpp | 3 ++- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf b/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf index be121f109b3..1877995a463 100644 --- a/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf +++ b/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf @@ -22,9 +22,9 @@ private _entitiesToDraw = []; { private _vehicle = vehicle _x; private _inVehicle = (_vehicle != _x); - private _distanceToCamera = GVAR(camera) distanceSqr _x; + private _distanceToCameraSqr = GVAR(camera) distanceSqr _x; - if (_distanceToCamera <= 3000 && { !_inVehicle || { _x == effectiveCommander _vehicle } }) then { + if (_distanceToCameraSqr <= DISTANCE_ICONS_SQR && { !_inVehicle || { _x == effectiveCommander _vehicle } }) then { private _group = group _x; private _groupSide = side _group; private _groupName = groupId _group; @@ -32,20 +32,20 @@ private _entitiesToDraw = []; private _groupColor = [_groupSide] call BIS_fnc_sideColor; // Calculate distance fade - (_distanceToCamera call { - if (_this <= 500) exitWith { + (_distanceToCameraSqr call { + if (_this <= 250000) exitWith { // 500^2 [1, 4, -2.5, 0.04] }; - if (_this <= 1000) exitWith { + if (_this <= 1000000) exitWith { // 1000^2 [0.75, 3.5, -2.2, 0.035] }; - if (_this <= 1500) exitWith { + if (_this <= 2250000) exitWith { // 1500^2 [0.5, 3, -1.9, 0.03] }; - if (_this <= 2000) exitWith { + if (_this <= 4000000) exitWith { // 2000^2 [0.3, 2.5, -1.6, 0.025] }; - if (_this <= 2500) exitWith { + if (_this <= 6250000) exitWith { // 2500^2 [0.2, 2, -1.3, 0.02] }; [0.15, 1.5, -1, 0.015] @@ -65,7 +65,7 @@ private _entitiesToDraw = []; }; // Show unit name only if camera is near enough - if (_distanceToCamera < DISTANCE_NAMES_SQR) then { + if (_distanceToCameraSqr < DISTANCE_NAMES_SQR) then { // Unit name _iconsToDraw pushBack [_x, 2, [ "", diff --git a/addons/spectator/script_component.hpp b/addons/spectator/script_component.hpp index dd6c52ef497..54a4577792d 100644 --- a/addons/spectator/script_component.hpp +++ b/addons/spectator/script_component.hpp @@ -46,7 +46,8 @@ #define MAX_PROJECTILES 50 #define MAX_PROJECTILE_SEGMENTS 50 -#define DISTANCE_NAMES_SQR 30625 // Names are rendered at 175m, squared for `distanceSqr` speed +#define DISTANCE_ICONS_SQR 9000000 // Icons are rendered within 3000m, squared for `distanceSqr` speed +#define DISTANCE_NAMES_SQR 30625 // Names are rendered within 175m, squared for `distanceSqr` speed #define NAME_MAX_CHARACTERS 17 #define LIST_ENTITIES localize "STR_A3_Spectator_Entities" From 2bc5751f9cb21ef7ee5679ad4f9a8e01a8c93291 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Tue, 6 Jun 2017 09:43:26 +0100 Subject: [PATCH 109/198] Remove unnecessary variable publicity --- addons/spectator/functions/fnc_stageSpectator.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/spectator/functions/fnc_stageSpectator.sqf b/addons/spectator/functions/fnc_stageSpectator.sqf index 75b6d6fa82a..56bf9cffebb 100644 --- a/addons/spectator/functions/fnc_stageSpectator.sqf +++ b/addons/spectator/functions/fnc_stageSpectator.sqf @@ -76,7 +76,7 @@ _unit setVariable [QEGVAR(medical,allowDamage), !_set]; // No theoretical change if an existing spectator was reset if !(_set isEqualTo (GETVAR(_unit,GVAR(isStaged),false))) then { // Mark spectator state for reference - _unit setVariable [QGVAR(isStaged), _set, true]; + _unit setVariable [QGVAR(isStaged), _set]; }; // If display exists already update the entity list to hide player From f7d63336f5bcf95d219ec53a32cbdc975804f923 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sat, 10 Jun 2017 15:24:19 +0200 Subject: [PATCH 110/198] Increase required CBA version to 3.3.1 --- addons/main/script_mod.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/main/script_mod.hpp b/addons/main/script_mod.hpp index f0681137a65..a21034f2773 100644 --- a/addons/main/script_mod.hpp +++ b/addons/main/script_mod.hpp @@ -10,7 +10,7 @@ // MINIMAL required version for the Mod. Components can specify others.. #define REQUIRED_VERSION 1.70 -#define REQUIRED_CBA_VERSION {3,2,1} +#define REQUIRED_CBA_VERSION {3,3,1} #ifdef COMPONENT_BEAUTIFIED #define COMPONENT_NAME QUOTE(ACE3 - COMPONENT_BEAUTIFIED) From e0887b3839f357545f3bb1fadef70461fe73c19c Mon Sep 17 00:00:00 2001 From: jonpas Date: Sat, 10 Jun 2017 15:27:14 +0200 Subject: [PATCH 111/198] Prepare version 3.10.0 --- README.md | 2 +- addons/main/script_version.hpp | 6 +++--- docs/README_DE.md | 2 +- docs/README_PL.md | 2 +- mod.cpp | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 733af4eaed6..270b4f6384f 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

- ACE3 Version + ACE3 Version ACE3 Issues diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index a52346e8759..60894d76497 100644 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -1,4 +1,4 @@ #define MAJOR 3 -#define MINOR 9 -#define PATCHLVL 2 -#define BUILD 18 +#define MINOR 10 +#define PATCHLVL 0 +#define BUILD 19 diff --git a/docs/README_DE.md b/docs/README_DE.md index 52b11e07976..22dc9e46fe5 100644 --- a/docs/README_DE.md +++ b/docs/README_DE.md @@ -4,7 +4,7 @@

- ACE3 Version + ACE3 Version ACE3 Fehlermeldungen diff --git a/docs/README_PL.md b/docs/README_PL.md index 5c5163313fa..6f48b7c81ec 100644 --- a/docs/README_PL.md +++ b/docs/README_PL.md @@ -3,7 +3,7 @@

- ACE3 Wersja + ACE3 Wersja ACE3 Zagadnienia diff --git a/mod.cpp b/mod.cpp index 3357f64b54c..0eb5ea4fad6 100644 --- a/mod.cpp +++ b/mod.cpp @@ -1,8 +1,8 @@ -name = "Advanced Combat Environment 3.9.2"; +name = "Advanced Combat Environment 3.10.0"; picture = "logo_ace3_ca.paa"; actionName = "GitHub"; action = "https://github.com/acemod/ACE3"; -description = "ACE3 - Version 3.9.2"; +description = "ACE3 - Version 3.10.0"; logo = "logo_ace3_ca.paa"; logoOver = "logo_ace3_ca.paa"; tooltip = "ACE3"; From 08d8cf71d71e4ea3aa6b4ca40d21606fe3957660 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sat, 10 Jun 2017 17:34:42 +0100 Subject: [PATCH 112/198] Update cargo docs with new public functions (#5266) * Update cargo docs with new public functions * Add myself to squad.xml --- docs/squad/squad.xml | 7 +++- docs/wiki/framework/cargo-framework.md | 57 +++++++++++++++++++++++--- 2 files changed, 58 insertions(+), 6 deletions(-) diff --git a/docs/squad/squad.xml b/docs/squad/squad.xml index ad07564a2dc..3b536568e9e 100644 --- a/docs/squad/squad.xml +++ b/docs/squad/squad.xml @@ -7,7 +7,12 @@ ace_bux - + + ACE Core Developer + + + SilentSpike + ACE Core Developer diff --git a/docs/wiki/framework/cargo-framework.md b/docs/wiki/framework/cargo-framework.md index 091969b91f7..cf6ec054dd5 100644 --- a/docs/wiki/framework/cargo-framework.md +++ b/docs/wiki/framework/cargo-framework.md @@ -51,17 +51,64 @@ Event Name | Passed Parameter(s) | Locality | Description `ace_cargoLoaded` | [_item, _vehicle] | Global | Cargo has been Loaded into vehicle `ace_cargoUnloaded` | [_item, _vehicle] | Global | Cargo has been Unloaded from vehicle -## 3. Scripting +## 3. Editor Attributes -### 3.1 Disabling cargo for a mission object +In the 3D mission editor attributes for "Cargo Size" and "Cargo Space" are available on suitable objects. These can be adjusted to change the respective value on a per-object basis - as well as to enable loading for objects and vehicles which would usually not support it. + +If you wish to enable loading for an object/vehicle which does not have these editor attributes, see the `ace_cargo_fnc_setSize` and `ace_cargo_fnc_setSpace` functions. + +## 4. Scripting + +### 4.1 Disabling cargo for a mission object To disable cargo for a mission object use: ```cpp -this setVariable ["ace_cargo_size", -1]; +[this, -1] call ace_cargo_fnc_setSize; +``` + +### 4.2 Adjusting cargo size of an object + +`ace_cargo_fnc_setSize` +Note that this function can be used to make objects loadable/unloadable (set to `-1` for unloadable). + +```cpp + * Set the cargo size of any object. Has global effect. + * Adds the load action menu if necessary. + * Negative size makes unloadable. + * + * Arguments: + * 0: Object + * 1: Cargo size + * + * Return Value: + * None + * + * Example: + * [object, 3] call ace_cargo_fnc_setSize +``` + +### 4.3 Adjusting cargo space of a vehicle + +`ace_cargo_fnc_setSpace` +Note that this function can be used to enable/disable a vehicle's cargo space (set to `0` to disable). + +```cpp + * Set the cargo space of any object. Has global effect. + * Adds the cargo action menu if necessary. + * + * Arguments: + * 0: Vehicle + * 1: Cargo space + * + * Return Value: + * None + * + * Example: + * [vehicle, 20] call ace_cargo_fnc_setSpace ``` -### 3.2 Add cargo to vehicle +### 4.4 Load cargo into vehicle `ace_cargo_fnc_loadItem` (Also callable from cba event `ace_loadCargo`) Note first arg can be a in-game object or a classname of an object type. @@ -78,7 +125,7 @@ Note first arg can be a in-game object or a classname of an object type. * [object, vehicle] call ace_cargo_fnc_loadItem ``` -### 3.3 Unload cargo from vehicle +### 4.5 Unload cargo from vehicle `ace_cargo_fnc_unloadItem` (Also callable from cba event `ace_unloadCargo`) From 73bdb37d99a4fd6e657cd98f840777a59ec9d7fe Mon Sep 17 00:00:00 2001 From: Andrea Verano Date: Sat, 10 Jun 2017 22:19:13 +0200 Subject: [PATCH 113/198] Italian translation updated and fixed (#5268) Added newest lines for: -Rearm -Repair --- addons/rearm/stringtable.xml | 14 ++++++++++++-- addons/repair/stringtable.xml | 4 +++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/addons/rearm/stringtable.xml b/addons/rearm/stringtable.xml index 023888e3379..7446caa3042 100644 --- a/addons/rearm/stringtable.xml +++ b/addons/rearm/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -95,42 +95,52 @@ Ammunition supply Munitionsvorat + Scorta munizioni How much ammunition does an ammo truck carry? Wie viel Munition transportiert ein Munitionslaster? + Quante munizioni può trasportare un camion? Unlimited ammo supply Unbegrenzter Munitionsvorat + Scorta munizioni infinita Limited ammo supply based on caliber Begrenzter, kaliberabhängiger Munitionsvorat + Scorta munizioni limitata in base al calibro Only specific Magazines Nur bestimmte Magazine + Solo specifici caricatori Check remaining ammunition Verbleibende Munition prüfen + Controlla munizioni rimanenti Checking remaining ammunition... Überprüfe verbleibende Munition... + Controllando le munizioni rimanenti There is ammunition worth %1 points left. Es ist noch Munition für %1 Punkte übrig. + E' presente una penalità delle munizioni %1 punti rimanenti. The following ammunition is left:%1 Folgende Munition ist übrig:%1 + Mancano le seguenti:%1 There is no ammunition left. Es ist keine Munition übrig. + Non ci sono munizioni rimanenti. Rearm @@ -152,7 +162,7 @@ Перевооружается %1 снарядами %2... Rearmando %1 com %2... Přezbrojuji %1 za pomoci %2... - Sto Riarmando %1 con %2... + Riarmando %1 con %2... Rearmando %1 con %2... Réarmement de %1 avec %2... %1を%2により再武装する。 diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index 4e54ab39d0e..24b4845d62d 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -956,6 +956,7 @@ Advanced Engineer only + Solo Geniere avanzato Allow Wheel @@ -1233,6 +1234,7 @@ Adv. Engineer + Adv. Geniere Assign one or multiple units as an engineer From 6eaba8ddaf0e3f1cb8b03cad402677b2b35a12e3 Mon Sep 17 00:00:00 2001 From: jonpas Date: Mon, 12 Jun 2017 16:25:19 +0200 Subject: [PATCH 114/198] Update homepage version numbers #4692 [ci skip] --- docs/_config.yml | 6 +++--- docs/_config_dev.yml | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/_config.yml b/docs/_config.yml index ab86d182c54..00458149cff 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -8,9 +8,9 @@ ace: githubUrl: https://github.com/acemod/ACE3 version: major: 3 - minor: 9 - patch: 2 - build: 18 + minor: 10 + patch: 0 + build: 19 acex: githubUrl: https://github.com/acemod/ACEX diff --git a/docs/_config_dev.yml b/docs/_config_dev.yml index 227d4029bf7..70de39e24ba 100644 --- a/docs/_config_dev.yml +++ b/docs/_config_dev.yml @@ -10,17 +10,17 @@ ace: githubUrl: https://github.com/acemod/ACE3 version: major: 3 - minor: 9 - patch: 2 - build: 18 + minor: 10 + patch: 0 + build: 19 acex: githubUrl: https://github.com/acemod/ACEX version: major: 3 - minor: 1 - patch: 1 - build: 3 + minor: 2 + patch: 0 + build: 4 markdown: kramdown From e770f669b655171ce3b69a35054f8a1db243d23a Mon Sep 17 00:00:00 2001 From: Moritz Schmidt Date: Tue, 13 Jun 2017 13:53:41 +0200 Subject: [PATCH 115/198] Fix isFeatureCameraActive for Spectator enhacements (#5269) * fix isFeatureCameraActive for spec ace_spectator_camera was removed in 77c2b99ee542e3825c4f25e7b5a399597fd436e2 . spectator module initializes three separate cameras instead, of which for example ace_spectator_freeCamera can be used to check if spec mode is active * use ace_spectator_isSet to check for spec mode --- addons/common/functions/fnc_isFeatureCameraActive.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/common/functions/fnc_isFeatureCameraActive.sqf b/addons/common/functions/fnc_isFeatureCameraActive.sqf index 7d282109b2e..4e0dc9ad44a 100644 --- a/addons/common/functions/fnc_isFeatureCameraActive.sqf +++ b/addons/common/functions/fnc_isFeatureCameraActive.sqf @@ -25,7 +25,7 @@ !( isNull curatorCamera && // Curator - {isNull (GETMVAR(EGVAR(spectator,camera),objNull))} && // ACE Spectator + {GETMVAR(EGVAR(spectator,isSet),false)} && // ACE Spectator {isNull (GETUVAR(BIS_fnc_arsenal_cam, objNull))} && // Arsenal camera {isNull (GETMVAR(BIS_fnc_establishingShot_fakeUAV, objNull))} && // Establishing shot camera {isNull (GETMVAR(BIS_fnc_camera_cam, objNull))} && // Splendid camera From 9d9edc46c7f10acfe47612abde0a465ebf7a22b8 Mon Sep 17 00:00:00 2001 From: jonpas Date: Tue, 13 Jun 2017 14:03:37 +0200 Subject: [PATCH 116/198] Prepare release 3.10.0 (build 2) --- addons/main/script_version.hpp | 2 +- docs/_config.yml | 2 +- docs/_config_dev.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index 60894d76497..c1be635b723 100644 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -1,4 +1,4 @@ #define MAJOR 3 #define MINOR 10 #define PATCHLVL 0 -#define BUILD 19 +#define BUILD 20 diff --git a/docs/_config.yml b/docs/_config.yml index 00458149cff..2fcf2b3285a 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -10,7 +10,7 @@ ace: major: 3 minor: 10 patch: 0 - build: 19 + build: 20 acex: githubUrl: https://github.com/acemod/ACEX diff --git a/docs/_config_dev.yml b/docs/_config_dev.yml index 70de39e24ba..73c4a3f60f6 100644 --- a/docs/_config_dev.yml +++ b/docs/_config_dev.yml @@ -12,7 +12,7 @@ ace: major: 3 minor: 10 patch: 0 - build: 19 + build: 20 acex: githubUrl: https://github.com/acemod/ACEX From 199eb849fce7483961ff150cc34051250aaae326 Mon Sep 17 00:00:00 2001 From: Laid3acK Date: Tue, 13 Jun 2017 15:09:26 +0200 Subject: [PATCH 117/198] fix video link (#5276) --- docs/wiki/feature/kestrel4500.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/wiki/feature/kestrel4500.md b/docs/wiki/feature/kestrel4500.md index 782d8d26dfe..861c3a82952 100644 --- a/docs/wiki/feature/kestrel4500.md +++ b/docs/wiki/feature/kestrel4500.md @@ -51,7 +51,7 @@ The Kestrel 4500 Pocket Weather Tracker is Kestrel's environmental meter. This i ### 2.2 `CROSSWIND` / `HEADWIND` Feature -- https://www.youtube.com/watch?v=4Q_qgXwlRqk +- [Official Kestrel Instruments video](https://www.youtube.com/watch?v=4Q_qgXwlRqk) - *[Wind info]({{ site.baseurl }}/wiki/feature/weather.html) is toggled on/off using SHIFT + K.* From a78c42f49e3795767b4dea8a311f79931e2f3604 Mon Sep 17 00:00:00 2001 From: classic Date: Wed, 14 Jun 2017 12:00:38 +0900 Subject: [PATCH 118/198] Jpn translate 73bd37 (#5277) * Update the Jpn translation for cargo Update the Japanese translation for cargo * Add the Jpn translation for hellfire Add the Japanese translation for hellfire * Add the Jpn translation for nlaw Add the Japanese translation for nlaw * Add the Jpn translation for rearm Add the Japanese translation for rearm * Update the Jpn translation for refuel Update the Japanese translation for refuel * Update the Jpn translation for repair Update the Japanese translation for repair * Update the Jpn translation for zeus Update the Japanese translation for zeus --- addons/cargo/stringtable.xml | 6 +++++- addons/hellfire/stringtable.xml | 5 +++-- addons/nlaw/stringtable.xml | 5 ++++- addons/rearm/stringtable.xml | 14 ++++++++++++-- addons/refuel/stringtable.xml | 1 + addons/repair/stringtable.xml | 1 + addons/zeus/stringtable.xml | 3 +++ 7 files changed, 29 insertions(+), 6 deletions(-) diff --git a/addons/cargo/stringtable.xml b/addons/cargo/stringtable.xml index f506f705e9e..4c7b547fb45 100644 --- a/addons/cargo/stringtable.xml +++ b/addons/cargo/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -240,18 +240,22 @@ Cargo Space Spazio Cargo + カーゴ スペース The cargo space available in this vehicle/container Lo spazio disponibile in questo veicolo/container + この車両/コンテナでカーゴ スペースを使えるようにします Cargo Size Dimensioni Cargo + カーゴ サイズ The cargo space required to hold this object (-1 for unloadable) Lo spazio del cargo necessita di mantenere questo oggetto (-1 per scaricabile) + このオブジェクトを積載するのに必要なカーゴ スペース (-1 で積載不可) Airdrop diff --git a/addons/hellfire/stringtable.xml b/addons/hellfire/stringtable.xml index c75a5481729..fd46f2a471a 100644 --- a/addons/hellfire/stringtable.xml +++ b/addons/hellfire/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -12,11 +12,12 @@ Hellfire Hellfire Hellfire - Hellfire + ヘルファイア Set Hellfire mode Imposta modalità Hellfire + ヘルファイア モードを設定 diff --git a/addons/nlaw/stringtable.xml b/addons/nlaw/stringtable.xml index e46e1aafb04..fb738e677f0 100644 --- a/addons/nlaw/stringtable.xml +++ b/addons/nlaw/stringtable.xml @@ -1,17 +1,20 @@ - + NLAW Track Target (Hold) NLAW Traccia Bersaglio (Mantieni) + NALW 目標の追跡 (押しっぱ) Direct Attack Attacco Diretto + ダイレクト アタック Overfly Top Attack Attacco dall'alto + オーバーフライ トップ アタック diff --git a/addons/rearm/stringtable.xml b/addons/rearm/stringtable.xml index 7446caa3042..3dd201f567a 100644 --- a/addons/rearm/stringtable.xml +++ b/addons/rearm/stringtable.xml @@ -37,7 +37,7 @@ Ammontare Riarmo Velocidad de rearme Quantité à réarmer - 再武装の度合い + 再武装できる量 재보급 양 @@ -89,58 +89,68 @@ Ammontare basato sul calibro Cantidad basada en el calibre Quantité basée sur le calibre - 口径に基づいた度合い + 口径に基づいた量 구경에 따라 수량 설정 Ammunition supply Munitionsvorat Scorta munizioni + 弾薬の供給 How much ammunition does an ammo truck carry? Wie viel Munition transportiert ein Munitionslaster? Quante munizioni può trasportare un camion? + 弾薬トラックがどの位の弾薬を供給できるようにしますか? Unlimited ammo supply Unbegrenzter Munitionsvorat Scorta munizioni infinita + 無制限供給 Limited ammo supply based on caliber Begrenzter, kaliberabhängiger Munitionsvorat Scorta munizioni limitata in base al calibro + 口径に基づいた限定的供給 Only specific Magazines Nur bestimmte Magazine Solo specifici caricatori + 特定の弾薬のみ Check remaining ammunition Verbleibende Munition prüfen Controlla munizioni rimanenti + 残弾薬を確認 Checking remaining ammunition... Überprüfe verbleibende Munition... Controllando le munizioni rimanenti + 残弾薬を確認しています・・・ There is ammunition worth %1 points left. Es ist noch Munition für %1 Punkte übrig. E' presente una penalità delle munizioni %1 punti rimanenti. + この弾薬は%1残っている The following ammunition is left:%1 Folgende Munition ist übrig:%1 Mancano le seguenti:%1 + この弾薬の残りは:%1 There is no ammunition left. Es ist keine Munition übrig. Non ci sono munizioni rimanenti. + 弾薬は残っていません。 Rearm diff --git a/addons/refuel/stringtable.xml b/addons/refuel/stringtable.xml index e467ffeb164..17ffa4d0cad 100644 --- a/addons/refuel/stringtable.xml +++ b/addons/refuel/stringtable.xml @@ -409,6 +409,7 @@ Betankung Schlauchlänge Reabastecer longitud de manguera Rifiuta lungezza tubo + 給油ホースの長さ diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index 24b4845d62d..d956fd8feb9 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -957,6 +957,7 @@ Advanced Engineer only Solo Geniere avanzato + 上級工兵のみ Allow Wheel diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index 7ef7305b335..a4e0e9fb47d 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -866,16 +866,19 @@ Suppressive Fire Fuoco di Soppressione Tir de suppression + 制圧射撃 Add full arsenal to object Ajouter arsenal complet à l'objet Aggiunge arsenale completo all'oggetto + オブジェクトに完全なアーセナルを追加 Remove arsenal from object Retirer arsenal de l'objet Rimuove arsenale completo dall'oggetto + オブジェクトからアーセナルを削除 From 303421270167fda28ff0fe693bb7ae30a3758732 Mon Sep 17 00:00:00 2001 From: Laid3acK Date: Wed, 14 Jun 2017 06:15:34 +0200 Subject: [PATCH 119/198] gos ndjenahoud latitude (#5275) --- addons/common/functions/fnc_getMapData.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/common/functions/fnc_getMapData.sqf b/addons/common/functions/fnc_getMapData.sqf index aaa878676c6..4a525427781 100644 --- a/addons/common/functions/fnc_getMapData.sqf +++ b/addons/common/functions/fnc_getMapData.sqf @@ -98,6 +98,7 @@ if (_map in ["pja308"]) exitWith { [36, 0] }; // G.O.S Gunkizli if (_map in ["pja310"]) exitWith { [36, 0] }; // G.O.S Al Rayak if (_map in ["pja312"]) exitWith { [16, 0] }; // G.O.S Song Bin Tanh if (_map in ["pja314"]) exitWith { [46, 0] }; // G.O.S Leskovets +if (_map in ["pja319"]) exitWith { [20, 0] }; // G.O.S N'Djenahoud, Ennedi Massif (Republic of Chad) if (_map in ["plr_bulge"]) exitWith { [49, 0] }; // I44: Battle of the Bulge if (_map in ["porquerolles"]) exitWith { [43, 0] }; if (_map in ["porto"]) exitWith { [40, 0] }; From 2d95bb1aad5d52fa940e92fbc552ccbe490ffc1a Mon Sep 17 00:00:00 2001 From: jonpas Date: Wed, 14 Jun 2017 15:34:35 +0200 Subject: [PATCH 120/198] Count untraced errors in make.py (#5265) * Count untraced errors (any errors besides failed PBO builds and missinf files) in make.py * Fix error count and prettify printing --- tools/make.py | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/tools/make.py b/tools/make.py index 053af8297c6..f038a167061 100644 --- a/tools/make.py +++ b/tools/make.py @@ -30,7 +30,7 @@ ############################################################################### -__version__ = "0.8" +__version__ = "0.9" import sys @@ -248,7 +248,7 @@ def find_depbo_tools(regKey): winreg.CloseKey(k) print("Found pboproject.") except: - print_error("ERROR: Could not find pboProject.") + print_error("Could not find pboProject.") try: k = winreg.OpenKey(reg, r"Software\Wow6432Node\Mikero\rapify") @@ -308,8 +308,10 @@ def color(color): def print_error(msg): color("red") - print ("ERROR: {}".format(msg)) + print("ERROR: {}".format(msg)) color("reset") + global printedErrors + printedErrors += 1 def print_green(msg): color("green") @@ -808,6 +810,10 @@ def main(argv): global pbo_name_prefix global ciBuild global missingFiles + global failedBuilds + global printedErrors + + printedErrors = 0 if sys.platform != "win32": print_error("Non-Windows platform (Cygwin?). Please re-run from cmd.") @@ -1223,7 +1229,7 @@ def main(argv): except: raise - print_error("ERROR: Could not copy module to work drive. Does the module exist?") + print_error("Could not copy module to work drive. Does the module exist?") input("Press Enter to continue...") print("Resuming build...") continue @@ -1244,7 +1250,7 @@ def main(argv): os.remove(f) except: raise - print_error("ERROR: Could not copy module to work drive. Does the module exist?") + print_error("Could not copy module to work drive. Does the module exist?") input("Press Enter to continue...") print("Resuming build...") continue @@ -1484,24 +1490,23 @@ def main(argv): except: print_error("Could not copy files. Is Arma 3 running?") - if len(failedBuilds) > 0 or len(missingFiles) > 0: + tracedErrors = len(failedBuilds) + len(missingFiles) + if printedErrors > 0: # printedErrors includes tracedErrors + printedOnlyErrors = printedErrors - tracedErrors + print() + print_error("Failed with {} errors.".format(printedErrors)) if len(failedBuilds) > 0: - print() - print_error("Build failed! {} PBOs failed!".format(len(failedBuilds))) for failedBuild in failedBuilds: - print("- {} failed.".format(failedBuild)) - + print("- {} build failed!".format(failedBuild)) if len(missingFiles) > 0: - missingFiles = set(missingFiles) - print() - print_error("Missing files! {} files not found!".format(len(missingFiles))) for missingFile in missingFiles: - print("- {} failed.".format(missingFile)) - - sys.exit(1) + print("- {} not found!".format(missingFile)) + if printedOnlyErrors > 0: + print_yellow("- {} untraced error(s)!".format(printedOnlyErrors)) else: print_green("\nCompleted with 0 errors.") + if __name__ == "__main__": start_time = timeit.default_timer() main(sys.argv) From 183eaaecdcf7e7ef6c8d08de15c2cac45246b5ad Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 14 Jun 2017 08:35:17 -0500 Subject: [PATCH 121/198] Cleanup heli pod actions (#5271) Close #4783 - Make taru pods non loadable - Make taru pods non draggable - Increase interaction range for huron pods --- addons/cargo/CfgVehicles.hpp | 51 ++++++++++++++++++------------ addons/dragging/CfgVehicles.hpp | 4 +++ addons/interaction/CfgVehicles.hpp | 9 +++++- 3 files changed, 43 insertions(+), 21 deletions(-) diff --git a/addons/cargo/CfgVehicles.hpp b/addons/cargo/CfgVehicles.hpp index 51821900163..4a553cd0562 100644 --- a/addons/cargo/CfgVehicles.hpp +++ b/addons/cargo/CfgVehicles.hpp @@ -327,26 +327,6 @@ class CfgVehicles { GVAR(canLoad) = 1; }; - // Taru pods - class Pod_Heli_Transport_04_base_F; - class Land_Pod_Heli_Transport_04_ammo_F: Pod_Heli_Transport_04_base_F { - GVAR(space) = 8; - GVAR(hasCargo) = 1; - }; - class Land_Pod_Heli_Transport_04_box_F: Pod_Heli_Transport_04_base_F { - GVAR(space) = 20; - GVAR(hasCargo) = 1; - }; - class Land_Pod_Heli_Transport_04_repair_F: Pod_Heli_Transport_04_base_F { - GVAR(space) = 12; - GVAR(hasCargo) = 1; - }; - class Pod_Heli_Transport_04_crewed_base_F; - class Land_Pod_Heli_Transport_04_medevac_F: Pod_Heli_Transport_04_crewed_base_F { - GVAR(space) = 8; - GVAR(hasCargo) = 1; - }; - class StaticMortar; class Mortar_01_base_F: StaticMortar { GVAR(size) = 2; // 1 = small, 2 = large @@ -377,6 +357,37 @@ class CfgVehicles { }; class Slingload_01_Base_F: Slingload_base_F { //Huron 20ft containers GVAR(canLoad) = 0; + GVAR(size) = -1; + }; + + // Taru pods + class Pod_Heli_Transport_04_base_F: Slingload_base_F { + GVAR(canLoad) = 0; + GVAR(size) = -1; + }; + class Land_Pod_Heli_Transport_04_ammo_F: Pod_Heli_Transport_04_base_F { + GVAR(space) = 8; + GVAR(hasCargo) = 1; + }; + class Land_Pod_Heli_Transport_04_box_F: Pod_Heli_Transport_04_base_F { + GVAR(space) = 20; + GVAR(hasCargo) = 1; + }; + class Land_Pod_Heli_Transport_04_repair_F: Pod_Heli_Transport_04_base_F { + GVAR(space) = 12; + GVAR(hasCargo) = 1; + }; + class Pod_Heli_Transport_04_crewed_base_F: StaticWeapon { + GVAR(canLoad) = 0; + GVAR(size) = -1; + }; + class Land_Pod_Heli_Transport_04_covered_F: Pod_Heli_Transport_04_crewed_base_F { + GVAR(space) = 8; + GVAR(hasCargo) = 1; + }; + class Land_Pod_Heli_Transport_04_medevac_F: Pod_Heli_Transport_04_crewed_base_F { + GVAR(space) = 8; + GVAR(hasCargo) = 1; }; //Plastic and metal case diff --git a/addons/dragging/CfgVehicles.hpp b/addons/dragging/CfgVehicles.hpp index c4c36cea847..f5d72fba505 100644 --- a/addons/dragging/CfgVehicles.hpp +++ b/addons/dragging/CfgVehicles.hpp @@ -67,6 +67,10 @@ class CfgVehicles { GVAR(canCarry) = 0; GVAR(canDrag) = 0; }; + class Pod_Heli_Transport_04_crewed_base_F: StaticWeapon { + GVAR(canCarry) = 0; + GVAR(canDrag) = 0; + }; class EAST_Box_Base: ReammoBox_F { GVAR(canCarry) = 1; diff --git a/addons/interaction/CfgVehicles.hpp b/addons/interaction/CfgVehicles.hpp index 5ee893e1012..f65303ac442 100644 --- a/addons/interaction/CfgVehicles.hpp +++ b/addons/interaction/CfgVehicles.hpp @@ -550,7 +550,7 @@ class CfgVehicles { class ACE_OpenBox { displayName = CSTRING(OpenBox); - condition = QUOTE(alive _target); + condition = QUOTE((alive _target) && {(getNumber (configFile >> 'CfgVehicles' >> (typeOf _target) >> 'disableInventory')) == 0}); statement = QUOTE(_player action [ARR_2(QUOTE(QUOTE(Gear)), _target)]); showDisabled = 0; priority = -1; @@ -561,6 +561,13 @@ class CfgVehicles { class ACE_SelfActions {}; }; class Slingload_base_F: ReammoBox_F {}; + class Slingload_01_Base_F: Slingload_base_F { + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + distance = 5; + }; + }; + }; class Pod_Heli_Transport_04_base_F: Slingload_base_F { class ACE_Actions: ACE_Actions { class ACE_MainActions: ACE_MainActions { From feee7f5e1e448c24a7f848f275c770a7c2264aaf Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 14 Jun 2017 08:36:23 -0500 Subject: [PATCH 122/198] Make array of cargo holders dynamic (#5274) --- addons/cargo/XEH_preInit.sqf | 1 + addons/cargo/functions/fnc_addCargoVehiclesActions.sqf | 2 +- addons/cargo/functions/fnc_initObject.sqf | 2 +- addons/cargo/functions/fnc_initVehicle.sqf | 10 ++++++++++ addons/cargo/functions/fnc_startLoadIn.sqf | 2 +- addons/cargo/script_component.hpp | 2 -- 6 files changed, 14 insertions(+), 5 deletions(-) diff --git a/addons/cargo/XEH_preInit.sqf b/addons/cargo/XEH_preInit.sqf index 7784968d3f6..5ee6406a7d6 100644 --- a/addons/cargo/XEH_preInit.sqf +++ b/addons/cargo/XEH_preInit.sqf @@ -8,5 +8,6 @@ PREP_RECOMPILE_END; GVAR(initializedItemClasses) = []; GVAR(initializedVehicleClasses) = []; +GVAR(cargoHolderTypes) = ["Car", "Air", "Tank", "Ship", "Cargo_base_F", "Land_PaperBox_closed_F"]; ADDON = true; diff --git a/addons/cargo/functions/fnc_addCargoVehiclesActions.sqf b/addons/cargo/functions/fnc_addCargoVehiclesActions.sqf index aeace6960b3..176b2f31b6f 100644 --- a/addons/cargo/functions/fnc_addCargoVehiclesActions.sqf +++ b/addons/cargo/functions/fnc_addCargoVehiclesActions.sqf @@ -40,6 +40,6 @@ private _actions = []; private _action = [format ["%1", _x], _name, _icon, _statement, {true}, {}, [_x]] call EFUNC(interact_menu,createAction); _actions pushBack [_action, [], _target]; }; -} forEach (nearestObjects [_player, CARGO_VEHICLE_CLASSES, MAX_LOAD_DISTANCE]); +} forEach (nearestObjects [_player, GVAR(cargoHolderTypes), MAX_LOAD_DISTANCE]); _actions diff --git a/addons/cargo/functions/fnc_initObject.sqf b/addons/cargo/functions/fnc_initObject.sqf index 3ab2061b0d0..d2ce8e5b58a 100644 --- a/addons/cargo/functions/fnc_initObject.sqf +++ b/addons/cargo/functions/fnc_initObject.sqf @@ -56,7 +56,7 @@ private _condition = { private _hasCargoPublic = _x getVariable [QGVAR(hasCargo), false]; private _hasCargoConfig = getNumber (configFile >> "CfgVehicles" >> _type >> QGVAR(hasCargo)) == 1; (_hasCargoPublic || _hasCargoConfig) && {_x != _target} - } count (nearestObjects [_player, CARGO_VEHICLE_CLASSES, MAX_LOAD_DISTANCE])} + } count (nearestObjects [_player, GVAR(cargoHolderTypes), MAX_LOAD_DISTANCE])} }; private _statement = { params ["_target", "_player"]; diff --git a/addons/cargo/functions/fnc_initVehicle.sqf b/addons/cargo/functions/fnc_initVehicle.sqf index f27f289ad5a..6d3709a3292 100644 --- a/addons/cargo/functions/fnc_initVehicle.sqf +++ b/addons/cargo/functions/fnc_initVehicle.sqf @@ -27,6 +27,16 @@ private _hasCargoConfig = getNumber (configFile >> "CfgVehicles" >> _type >> QGV // Nothing to do here if vehicle has no cargo space if !(_hasCargoConfig || _hasCargoPublic) exitWith {}; +// Check if cargo is in cargo holder types (checked when trying to search for loadable objects) +private _addCargoType = true; +{ + if (_type isKindOf _x) exitWith {_addCargoType = false}; +} forEach GVAR(cargoHolderTypes); +TRACE_2("",_addCargoType,_type); +if (_addCargoType) then { + GVAR(cargoHolderTypes) pushBack _type; +}; + // Vehicle can have default ace cargo in its config if (isServer) then { { diff --git a/addons/cargo/functions/fnc_startLoadIn.sqf b/addons/cargo/functions/fnc_startLoadIn.sqf index 0116a34a739..4fa0401772d 100644 --- a/addons/cargo/functions/fnc_startLoadIn.sqf +++ b/addons/cargo/functions/fnc_startLoadIn.sqf @@ -24,7 +24,7 @@ private _vehicle = _cargoVehicle; if (isNull _vehicle) then { { if ([_object, _x] call FUNC(canLoadItemIn)) exitWith {_vehicle = _x}; - } forEach (nearestObjects [_player, CARGO_VEHICLE_CLASSES, MAX_LOAD_DISTANCE]); + } forEach (nearestObjects [_player, GVAR(cargoHolderTypes), MAX_LOAD_DISTANCE]); }; if (isNull _vehicle) exitWith { diff --git a/addons/cargo/script_component.hpp b/addons/cargo/script_component.hpp index 885308a3b9d..3ae6331f919 100644 --- a/addons/cargo/script_component.hpp +++ b/addons/cargo/script_component.hpp @@ -18,8 +18,6 @@ #define MAX_LOAD_DISTANCE 10 -#define CARGO_VEHICLE_CLASSES ["Car", "Air", "Tank", "Ship", "Cargo_base_F", "Land_PaperBox_closed_F"] - #define GET_NUMBER(config,default) (if (isNumber (config)) then {getNumber (config)} else {default}) // Default cargo size is -1 as 0 is a valid size From a92b6a753de7b10d67245cf113395b52c1958d5f Mon Sep 17 00:00:00 2001 From: classic Date: Thu, 15 Jun 2017 02:37:42 +0900 Subject: [PATCH 123/198] Jpn translate feee7f5 (#5280) * Add the Jpn translation for quickmount Add the Japanese translation for quickmount * Update the Jpn translation for repair Update the Japanese translation for repair --- addons/quickmount/stringtable.xml | 11 +++++++++++ addons/repair/stringtable.xml | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/addons/quickmount/stringtable.xml b/addons/quickmount/stringtable.xml index c97b5c2a6a0..a492ebc3b91 100644 --- a/addons/quickmount/stringtable.xml +++ b/addons/quickmount/stringtable.xml @@ -4,48 +4,59 @@ Quick Mount Entrata Rapida + クイック マウント Vehicle quick mount Fahrzeug schnell montieren Pojazd szybkie mocowanie Entrata rapida veicolo + 車両クイック マウント Quickly enter the vehicle you are directly looking at. Entra velocemente nel veicolo che stai guardando. + 直接見ている車両へ迅速に搭乗します。 Vehicle Full Veicolo Pieno + 車両は満員 Distance Distanza + 距離 Maximum distance to check for vehicles. Distanza massima per controllare i veicoli. + 車両を確認できる最大距離 Vehicle Locked Veicolo Bloccato. + 車両は施錠されている Maximum Speed (km/h) Velocità Massima (km/h) + 最高速度 (km/h) Maximum vehicle speed (km/h) allowed for player entry Velocità massima del veicolo (km/h) consentita per far salire un giocatore + プレイヤーが搭乗できる限界速度 (km/h) Prioritize Seat Priorità Sedile + 優先席 Seat priority on entry Priorità del sedile in entrata + 搭乗の際の優先順位 diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index d956fd8feb9..0a001968e77 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -1008,7 +1008,7 @@ ¿Quién puede realizar reparaciones? Chi può eseguire riparazioni? Qui peut réparer ? - 誰が修理をおこなえるようにしますか? + 誰が修理を出来るようににしますか? 누가 수리를 할 수 있습니까? From ffe31d97592b8b32ed4b9065c31b1e9ea3c21df2 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 21 Jun 2017 08:34:10 -0500 Subject: [PATCH 124/198] Fix isFeatureCameraActive (#5291) --- addons/common/functions/fnc_isFeatureCameraActive.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/common/functions/fnc_isFeatureCameraActive.sqf b/addons/common/functions/fnc_isFeatureCameraActive.sqf index 4e0dc9ad44a..b0870408afb 100644 --- a/addons/common/functions/fnc_isFeatureCameraActive.sqf +++ b/addons/common/functions/fnc_isFeatureCameraActive.sqf @@ -25,7 +25,7 @@ !( isNull curatorCamera && // Curator - {GETMVAR(EGVAR(spectator,isSet),false)} && // ACE Spectator + {!(GETMVAR(EGVAR(spectator,isSet),false))} && // ACE Spectator {isNull (GETUVAR(BIS_fnc_arsenal_cam, objNull))} && // Arsenal camera {isNull (GETMVAR(BIS_fnc_establishingShot_fakeUAV, objNull))} && // Establishing shot camera {isNull (GETMVAR(BIS_fnc_camera_cam, objNull))} && // Splendid camera From c4dd71412b4ff324a775ccde3b428af41defd208 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 21 Jun 2017 08:34:10 -0500 Subject: [PATCH 125/198] Fix isFeatureCameraActive (#5291) --- addons/common/functions/fnc_isFeatureCameraActive.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/common/functions/fnc_isFeatureCameraActive.sqf b/addons/common/functions/fnc_isFeatureCameraActive.sqf index 4e0dc9ad44a..b0870408afb 100644 --- a/addons/common/functions/fnc_isFeatureCameraActive.sqf +++ b/addons/common/functions/fnc_isFeatureCameraActive.sqf @@ -25,7 +25,7 @@ !( isNull curatorCamera && // Curator - {GETMVAR(EGVAR(spectator,isSet),false)} && // ACE Spectator + {!(GETMVAR(EGVAR(spectator,isSet),false))} && // ACE Spectator {isNull (GETUVAR(BIS_fnc_arsenal_cam, objNull))} && // Arsenal camera {isNull (GETMVAR(BIS_fnc_establishingShot_fakeUAV, objNull))} && // Establishing shot camera {isNull (GETMVAR(BIS_fnc_camera_cam, objNull))} && // Splendid camera From 1d355b43dbfd779815e283d2ec9ef83e0211f48f Mon Sep 17 00:00:00 2001 From: jonpas Date: Wed, 21 Jun 2017 15:41:02 +0200 Subject: [PATCH 126/198] Prepare release 3.10.1 --- README.md | 2 +- addons/main/script_version.hpp | 4 ++-- docs/README_DE.md | 2 +- docs/README_PL.md | 2 +- docs/_config.yml | 4 ++-- docs/_config_dev.yml | 4 ++-- mod.cpp | 4 ++-- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 270b4f6384f..2c0c22de37d 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

- ACE3 Version + ACE3 Version ACE3 Issues diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index c1be635b723..eb701f7f48e 100644 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -1,4 +1,4 @@ #define MAJOR 3 #define MINOR 10 -#define PATCHLVL 0 -#define BUILD 20 +#define PATCHLVL 1 +#define BUILD 21 diff --git a/docs/README_DE.md b/docs/README_DE.md index 22dc9e46fe5..b18759b3cd3 100644 --- a/docs/README_DE.md +++ b/docs/README_DE.md @@ -4,7 +4,7 @@

- ACE3 Version + ACE3 Version ACE3 Fehlermeldungen diff --git a/docs/README_PL.md b/docs/README_PL.md index 6f48b7c81ec..248627a6f14 100644 --- a/docs/README_PL.md +++ b/docs/README_PL.md @@ -3,7 +3,7 @@

- ACE3 Wersja + ACE3 Wersja ACE3 Zagadnienia diff --git a/docs/_config.yml b/docs/_config.yml index 2fcf2b3285a..54ee5ad6d3b 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -9,8 +9,8 @@ ace: version: major: 3 minor: 10 - patch: 0 - build: 20 + patch: 1 + build: 21 acex: githubUrl: https://github.com/acemod/ACEX diff --git a/docs/_config_dev.yml b/docs/_config_dev.yml index 73c4a3f60f6..83046e74c0e 100644 --- a/docs/_config_dev.yml +++ b/docs/_config_dev.yml @@ -11,8 +11,8 @@ ace: version: major: 3 minor: 10 - patch: 0 - build: 20 + patch: 1 + build: 21 acex: githubUrl: https://github.com/acemod/ACEX diff --git a/mod.cpp b/mod.cpp index 0eb5ea4fad6..c877d06dd0a 100644 --- a/mod.cpp +++ b/mod.cpp @@ -1,8 +1,8 @@ -name = "Advanced Combat Environment 3.10.0"; +name = "Advanced Combat Environment 3.10.1"; picture = "logo_ace3_ca.paa"; actionName = "GitHub"; action = "https://github.com/acemod/ACE3"; -description = "ACE3 - Version 3.10.0"; +description = "ACE3 - Version 3.10.1"; logo = "logo_ace3_ca.paa"; logoOver = "logo_ace3_ca.paa"; tooltip = "ACE3"; From c6e70a4e88525cbcd2251f14a7dc122d54d6faba Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 21 Jun 2017 12:40:17 -0500 Subject: [PATCH 127/198] Add malden to getMapData (#5297) * Add malden to getMapData * Merge with CWR2 malden --- addons/common/functions/fnc_getMapData.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/common/functions/fnc_getMapData.sqf b/addons/common/functions/fnc_getMapData.sqf index 4a525427781..33f3e09d83f 100644 --- a/addons/common/functions/fnc_getMapData.sqf +++ b/addons/common/functions/fnc_getMapData.sqf @@ -24,9 +24,9 @@ _map = toLower _map; if (_map in ["tanoa"]) exitWith { [-18, 0] }; if (_map in ["altis"]) exitWith { [40, 0] }; if (_map in ["stratis"]) exitWith { [40, 0] }; +if (_map in ["malden", "abel"]) exitWith { [38.8, 0] }; // 1.72 Malden and CWR2 Malden if (_map in ["abbottabad"]) exitWith { [34, 1256] }; // Abbottabad elevation 1256m (Wikipedia) -if (_map in ["abel"]) exitWith { [39, 0] }; // CWR2 Malden if (_map in ["abramia"]) exitWith { [60, 0] }; if (_map in ["af_kandahar_province"]) exitWith { [42, 0] }; if (_map in ["angel"]) exitWith { [38, 0] }; From 7b91629fa3a768409abb3b649341b7a6f49d0487 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 21 Jun 2017 12:40:17 -0500 Subject: [PATCH 128/198] Add malden to getMapData (#5297) * Add malden to getMapData * Merge with CWR2 malden --- addons/common/functions/fnc_getMapData.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/common/functions/fnc_getMapData.sqf b/addons/common/functions/fnc_getMapData.sqf index aaa878676c6..decc9cf3d0b 100644 --- a/addons/common/functions/fnc_getMapData.sqf +++ b/addons/common/functions/fnc_getMapData.sqf @@ -24,9 +24,9 @@ _map = toLower _map; if (_map in ["tanoa"]) exitWith { [-18, 0] }; if (_map in ["altis"]) exitWith { [40, 0] }; if (_map in ["stratis"]) exitWith { [40, 0] }; +if (_map in ["malden", "abel"]) exitWith { [38.8, 0] }; // 1.72 Malden and CWR2 Malden if (_map in ["abbottabad"]) exitWith { [34, 1256] }; // Abbottabad elevation 1256m (Wikipedia) -if (_map in ["abel"]) exitWith { [39, 0] }; // CWR2 Malden if (_map in ["abramia"]) exitWith { [60, 0] }; if (_map in ["af_kandahar_province"]) exitWith { [42, 0] }; if (_map in ["angel"]) exitWith { [38, 0] }; From 60131ee589c50e47923de3a04278e7ad507bee91 Mon Sep 17 00:00:00 2001 From: GodofMonkeys Date: Thu, 22 Jun 2017 22:46:00 +0800 Subject: [PATCH 129/198] Add Chinese Traditional & Simplified Localization (#5295) Add Chinese Traditional & Simplified Localization --- addons/advanced_ballistics/stringtable.xml | 52 ++ addons/advanced_fatigue/stringtable.xml | 26 + addons/advanced_throwing/stringtable.xml | 42 ++ addons/aircraft/stringtable.xml | 8 +- addons/atragmx/stringtable.xml | 10 +- addons/attach/stringtable.xml | 36 +- addons/ballistics/stringtable.xml | 286 +++++++- addons/captives/stringtable.xml | 56 +- addons/cargo/stringtable.xml | 54 +- addons/chemlights/stringtable.xml | 80 +++ addons/common/stringtable.xml | 138 ++++ addons/concertina_wire/stringtable.xml | 10 +- addons/cookoff/stringtable.xml | 18 + addons/dagr/stringtable.xml | 10 +- addons/disarming/stringtable.xml | 4 +- addons/disposable/stringtable.xml | 6 + addons/dogtags/stringtable.xml | 12 + addons/dragging/stringtable.xml | 14 +- addons/explosives/stringtable.xml | 124 ++++ addons/fastroping/stringtable.xml | 18 + addons/fcs/stringtable.xml | 14 +- addons/finger/stringtable.xml | 22 +- addons/flashlights/stringtable.xml | 14 +- addons/flashsuppressors/stringtable.xml | 16 +- addons/frag/stringtable.xml | 28 +- addons/gestures/stringtable.xml | 40 ++ addons/gforces/stringtable.xml | 4 + addons/goggles/stringtable.xml | 10 + addons/grenades/stringtable.xml | 48 ++ addons/gunbag/stringtable.xml | 12 + addons/hearing/stringtable.xml | 38 +- addons/hellfire/stringtable.xml | 6 +- addons/huntir/stringtable.xml | 34 +- addons/interact_menu/stringtable.xml | 58 +- addons/interaction/stringtable.xml | 134 +++- addons/inventory/stringtable.xml | 20 +- addons/javelin/stringtable.xml | 2 + addons/kestrel4500/stringtable.xml | 16 +- addons/laser/stringtable.xml | 8 + addons/laserpointer/stringtable.xml | 16 +- addons/logistics_uavbattery/stringtable.xml | 14 +- addons/logistics_wirecutter/stringtable.xml | 10 + addons/magazinerepack/stringtable.xml | 20 +- addons/main/stringtable.xml | 6 +- addons/map/stringtable.xml | 68 ++ addons/map_gestures/stringtable.xml | 40 +- addons/maptools/stringtable.xml | 30 + addons/markers/stringtable.xml | 6 +- addons/medical/stringtable.xml | 706 +++++++++++++++++++- addons/medical_ai/stringtable.xml | 2 + addons/medical_blood/stringtable.xml | 6 + addons/medical_menu/stringtable.xml | 112 +++- addons/microdagr/stringtable.xml | 66 +- addons/minedetector/stringtable.xml | 16 + addons/missileguidance/stringtable.xml | 26 +- addons/missionmodules/stringtable.xml | 36 +- addons/mk6mortar/stringtable.xml | 68 +- addons/movement/stringtable.xml | 12 +- addons/mx2a/stringtable.xml | 6 +- addons/nametags/stringtable.xml | 68 ++ addons/nightvision/stringtable.xml | 32 +- addons/nlaw/stringtable.xml | 8 +- addons/optics/stringtable.xml | 22 +- addons/optionsmenu/stringtable.xml | 74 ++ addons/overheating/stringtable.xml | 68 ++ addons/overpressure/stringtable.xml | 4 + addons/parachute/stringtable.xml | 14 +- addons/quickmount/stringtable.xml | 22 + addons/rangecard/stringtable.xml | 16 +- addons/realisticnames/stringtable.xml | 406 ++++++++++- addons/rearm/stringtable.xml | 82 +++ addons/refuel/stringtable.xml | 64 ++ addons/reload/stringtable.xml | 12 + addons/reloadlaunchers/stringtable.xml | 8 + addons/repair/stringtable.xml | 236 +++++++ addons/respawn/stringtable.xml | 48 ++ addons/safemode/stringtable.xml | 8 + addons/sandbag/stringtable.xml | 28 +- addons/scopes/stringtable.xml | 58 ++ addons/slideshow/stringtable.xml | 30 + addons/spectator/stringtable.xml | 132 +++- addons/spottingscope/stringtable.xml | 8 +- addons/switchunits/stringtable.xml | 34 + addons/tacticalladder/stringtable.xml | 16 +- addons/tagging/stringtable.xml | 34 + addons/trenches/stringtable.xml | 30 + addons/tripod/stringtable.xml | 14 +- addons/ui/stringtable.xml | 84 +++ addons/vector/stringtable.xml | 12 +- addons/vehiclelock/stringtable.xml | 50 +- addons/vehicles/stringtable.xml | 8 +- addons/viewdistance/stringtable.xml | 54 +- addons/weaponselect/stringtable.xml | 48 +- addons/weather/stringtable.xml | 34 +- addons/winddeflection/stringtable.xml | 32 +- addons/yardage450/stringtable.xml | 8 +- addons/zeus/stringtable.xml | 152 +++++ optionals/compat_adr_97/stringtable.xml | 38 +- 98 files changed, 4829 insertions(+), 61 deletions(-) diff --git a/addons/advanced_ballistics/stringtable.xml b/addons/advanced_ballistics/stringtable.xml index 31b9b56bb94..8e942364a9a 100644 --- a/addons/advanced_ballistics/stringtable.xml +++ b/addons/advanced_ballistics/stringtable.xml @@ -14,6 +14,8 @@ Mostrar Informação do Vento 風の情報を表示 바람의 정보를 표시 + 顯示風況 + 显示风况 Show Protractor @@ -28,6 +30,8 @@ Mostrar Transferidor 分度器を表示 각도기 표시 + 顯示量角器 + 显示量角器 Advanced Ballistics @@ -42,6 +46,8 @@ Balistica Avanzata アドバンスド バリスティックス 고급 탄도학 + 先進彈道系統 + 先进弹道系统 Advanced Ballistics @@ -56,6 +62,8 @@ Balistica Avanzata アドバンスド バリスティックス 고급 탄도학 + 先進彈道系統 + 先进弹道系统 Enables advanced ballistics @@ -70,6 +78,8 @@ Abilita Balistica Avanzata アドバンスド バリスティックスを有効化 고급 탄도학을 적용합니다 + 啟用先進彈道系統 + 启用先进弹道系统 Enabled For Snipers @@ -84,6 +94,8 @@ Abilita per Tiratori Scelti 狙撃手へ有効化 저격수만 적용 + 啟用給狙擊手 + 启用给狙击手 Enables advanced ballistics for non local snipers (when using high power optics) @@ -98,6 +110,8 @@ Abilita Balistica Avanzata per Tiratori Scelti non locali (con ottiche ad alto potenziale) 非ローカルの狙撃手 (高倍率スコープを使っている場合)へアドバンスド バリスティックスを有効化します 고급 탄도학을 비-저격수 인원에게도 적용합니다(고성능 조준경을 사용시) + 啟用先進彈道系統給非本地狙擊手(當使用高倍率光學瞄鏡時) + 启用先进弹道系统给非本地狙击手(当使用高倍率光学瞄镜时) Enabled For Group Members @@ -112,6 +126,8 @@ Abilita per Membri del Gruppo グループ メンバーへ有効化 그룹 멤버도 적용 + 啟用給小隊成員 + 启用给小队成员 Enables advanced ballistics for non local group members @@ -126,6 +142,8 @@ Abilita Balistica Avanzata per Membri non locali del Gruppo 非ローカルのグループ メンバーへアドバンスド バリスティックスを有効化します 고급 탄도학을 비-그룹멤버에게도 적용합니다 + 啟用先進彈道系統給非本地小隊成員 + 启用先进弹道系统给非本地小队成员 Enabled For Everyone @@ -140,6 +158,8 @@ Abilita per tutti 全員に有効化 모두에게 적용 + 啟用給所有人 + 启用给所有人 Enables advanced ballistics for all non local players (enabling this may degrade performance during heavy firefights in multiplayer) @@ -154,6 +174,8 @@ Abilita Balistica Avanzata per tutti i giocatori non locali (abilitare questo parametro potrebbe ridurre le prestazioni durante scontri intensi in multiplayer) 非ローカルの全プレイヤーへアドバンスド バリスティックスを有効化します (マルチプレイで大規模な銃撃戦がおこなわれると、動作の低下を招きます) 고급 탄도학을 모든 비-로컬그룹에게도 적용합니다(적용 후 대규모 전투시 성능하락을 유발할 수 있습니다) + 啟用先進彈道系統給所有非本地玩家 (啟用此功能後,在多人連線大量交火時可能會降低效能) + 启用先进弹道系统给所有非本地玩家 (启用此功能后,在多人连线大量交火时可能会降低效能) Always Enabled For Group Members @@ -168,6 +190,8 @@ Sempre abilitato per Membri del Gruppo 常にグループ メンバーへ有効化 그룹 멤버에게 항상 적용 + 永遠啟用給小隊成員 + 永远启用给小队成员 Always enables advanced ballistics when a group member fires @@ -182,6 +206,8 @@ Abilita sempre Balistica Avanzata quando un membro del gruppo spara グループ メンバーが射撃した時、常にアドバンスド バリスティックスを有効化します 그룹 멤버가 발사시 항상 고급 탄도학을 적용합니다 + 當小隊成員開火時,永遠啟用先進彈道系統 + 当小队成员开火时,永远启用先进弹道系统 Disabled In FullAuto Mode @@ -196,6 +222,8 @@ Disabilita in modalità di fuoco automatico フルオートでは無効化 조정간 자동시 비활성화 + 在全自動模式時關閉 + 在全自动模式时关闭 Disables the advanced ballistics during full auto fire @@ -210,6 +238,8 @@ Disabilita Balistica Avanzata durante fuoco automatico フルオートで射撃中ではアドバンスド バリスティックスを無効化します 조정간 자동시 고급 탄도학을 비활성화 합니다 + 在全自動模式開火時,關閉先進彈道系統 + 在全自动模式开火时,关闭先进弹道系统 Enable Ammo Temperature Simulation @@ -224,6 +254,8 @@ Abilita simulazione della temperatura delle munizioni 弾薬の温度シミュレーションを有効化 탄약 온도 구현 적용 + 啟用彈藥溫度模擬系統 + 启用弹药温度模拟系统 Muzzle velocity varies with ammo temperature @@ -238,6 +270,8 @@ La velocità dello sparo varia a seconda della temperatura delle munizioni 弾薬の温度により初速値を変化させます 탄약 온도에 비례해 총구 속도가 달라집니다 + 子彈初速將隨彈藥溫度而有所變化 + 子弹初速将随弹药温度而有所变化 Enable Barrel Length Simulation @@ -252,6 +286,8 @@ Abilita simulazione della lunghezza della canna 銃身長のシミュレーションを有効化 총열 길이 구현 적용 + 啟用槍管長度模擬系統 + 启用枪管长度模拟系统 Muzzle velocity varies with barrel length @@ -266,6 +302,8 @@ La velocità di sparo varia a seconda della lunghezza della canna 銃身長により初速値を変化させます 총구 속도가 총열에 비례해 달라집니다 + 子彈初速將隨槍管長度而有所變化 + 子弹初速将随枪管长度而有所变化 Enable Bullet Trace Effect @@ -280,6 +318,8 @@ Abilita effetto dei Proiettili Traccianti 弾丸の痕跡表示を有効化 예광탄 효과 적용 + 啟用曳光彈效果 + 启用曳光弹效果 Enables a bullet trace effect to high caliber bullets (only visible when looking through high power optics) @@ -294,6 +334,8 @@ Abilita effetto dei proiettili traccianti di alto calibro (visibile solo attraverso ottiche ad alto potenziale) 大口径の銃弾による弾丸の痕跡表示を有効化します (高倍率スコープを介してでしか見れません) 대구경 탄환에 예광탄 효과를 적용합니다(오직 고성능 조준경 사용시에만 보입니다) + 啟用曳光彈效果給大口徑子彈 (只有透過高倍率光學瞄鏡才能看到) + 启用曳光弹效果给大口径子弹 (只有透过高倍率光学瞄镜才能看到) Simulation Interval @@ -308,6 +350,8 @@ Intervallo Simulazione シミュレーション間隔 구현 간격 + 模擬間隔 + 模拟间隔 Defines the interval between every calculation step @@ -322,6 +366,8 @@ Definisce l'intervallo tra ogni step di calcolo 各計算ごとの間隔を定義します 각 계산 단위의 간격을 정의합니다 + 定義每個模擬計算之間的時間間隔 + 定义每个模拟计算之间的时间间隔 Simulation Radius @@ -336,6 +382,8 @@ Raggio Simulazione シミュレーションの適用範囲 구현 범위 + 模擬半徑 + 模拟半径 Defines the radius around the player (in meters) at which advanced ballistics are applied to projectiles @@ -350,6 +398,8 @@ Definisce il raggio attorno al giocatore (in metri) per cui la Balistica Avanzata è applicata ai proiettili プレイヤーの周囲にアドバンスド バリスティックスによる弾道を適用させる範囲を半径で定義します (メートル) 플레이어 주위의 발사체를 고급 탄도학으로 정의하는 범위를 정합니다(미터) + 以玩家的半徑距離(公尺)定義先進彈道系統啟用範圍 + 以玩家的半径距离(公尺)定义先进弹道系统启用范围 This module enables advanced ballistics simulation - meaning the trajectory of projectiles is influenced by variables like air temperature, atmospheric pressure, humidity, gravity, the type of ammunition and the weapon from which it was fired. @@ -364,6 +414,8 @@ Questo modulo abilita la simulazione della Balistica Avanzata - cioè la traiettoria dei proiettili è influenzata da variabili come la temperatura dell'aria, pressione atmosferica, umidità, gravità, il tipo di munizione e l'arma da cui è sparata このモジュールはアドバンスド バリスティックスを有効化します。弾道は気温や気圧、湿度、重力、弾薬の種類、発射する武器から影響を受けるようになります。 이 모듈은 고급 탄도학을 적용시킵니다 - 이는 발사체의 궤적이 기온, 대기압, 습도, 중력, 탄환의 종류와 어느 무기에서 발사되는지에 따라 영향을 받습니다. + 該模塊實現先進的彈道仿真 - 這意味著子彈的軌跡是由空氣溫度、大氣壓力、濕度、重力、彈藥類型以及射擊的武器所影響. + 该模块实现先进的弹道仿真 - 这意味着子弹的轨迹是由空气温度、大气压力、湿度、重力、弹药类型以及射击的武器所影响. diff --git a/addons/advanced_fatigue/stringtable.xml b/addons/advanced_fatigue/stringtable.xml index 02924c0ae99..3ee90435dc7 100644 --- a/addons/advanced_fatigue/stringtable.xml +++ b/addons/advanced_fatigue/stringtable.xml @@ -9,6 +9,8 @@ 성능 요인 Facteur de performance Fattore Prestazione + 體力值 + 体力值 Influences the overall performance of all players with no custom factor. Higher means better. @@ -18,6 +20,8 @@ 모든 성능이 임의로 설정된 값 없이 영향받습니다. 값이 클수록 더 나은 성능을 발휘합니다 Influence les performances générales de tous les joueurs sans facteurs personalisés. Une valeur plus élevée implique de meilleures performances. Influenza qualsiasi prestazione di tutti i giocatori smuniti di un fattore personalizzato. Maggiore significa migliore. + 影響所有玩家的體力表現. 值越高代表體力越好. + 影响所有玩家的体力表现. 值越高代表体力越好. Influences the overall performance of this unit. Higher means better. @@ -27,6 +31,8 @@ 모든 성능이 이 단위로 영향을 받습니다. 값이 클수록 더 나은 성능을 발휘합니다 Influence les performances générales de cette unité. Une valeur plus élevée implique de meilleures performances. Influenza qualsiasi prestazione di questa unità. Maggiore significa migliore. + 影響這個單位的體力表現. 值越高代表體力越好. + 影响这个单位的体力表现. 值越高代表体力越好. Recovery Factor @@ -36,6 +42,8 @@ 회복 요인 Facteur de récupération Fattore Recupero + 回復值 + 回复值 Changes how fast the player recovers when resting. Higher is faster. @@ -45,6 +53,8 @@ 얼마나 빨리 회복하는지를 바꿉니다. 값이 클수록 더 나은 성능을 발휘합니다 Change la vitesse à laquelle les joueurs récupèrent leur endurance lorsqu'ils se reposent. Une valeur plus élevée implique une récupération plus rapide. Determina in quanto tempo il giocatore recupera quando rilassato. Maggiore significa migliore. + 決定玩家休息多久就能回復體力. 值越高恢復越快. + 决定玩家休息多久就能回复体力. 值越高恢复越快. Load Factor @@ -54,6 +64,8 @@ 부담 요인 Facteur d'encombrement Fattore Caricamento + 負重量 + 负重量 Increases or decreases how much weight influences the players performance. Zero means equipment weight has no performance influence. @@ -63,6 +75,8 @@ 플레이어가 무게에 따라 얼마나 영향받는지를 증가시키거나 감소시킵니다. 0의 경우 플레이어가 장비 무게에 영향받지 않습니다. Augmente ou réduit l'influence que le poids à sur les performances des joueurs. Zéro implique que le poids de l'équipement n'a pas d'influence sur les performances. Incrementa o decrementa quanto il peso influenza le prestazioni dei giocatori. Zero significa che il peso dell'equipaggiamento non ha alcuna influenza nelle prestazioni. + 增加或降低玩家所能承受的負重量. 如設定值為0, 代表裝備的重量將不會影響到玩家的體力表現. + 增加或降低玩家所能承受的负重量. 如设定值为0, 代表装备的重量将不会影响到玩家的体力表现. Terrain Gradient Factor @@ -72,6 +86,8 @@ 지형 경사도 요인 Facteur d'inclinaison du terrain Fattore Pendenza Terreno + 地形陡峭影響值 + 地形陡峭影响值 Sets how much steep terrain increases stamina loss. Higher means higher stamina loss. @@ -81,6 +97,8 @@ 경사도에 따라 얼마나 피로해지는지를 정합니다. 값이 클수록 더 많은 피로를 유발합니다. Configure l'influence de l'inclinaison du terrain sur la perte d'endurance. Une valeur plus élevée implique une perte d'endurance plus importante. Stabilisce quanto la pendenza del terreno incrementa la perdita della stamina. Maggiore significa più stamina persa. + 設定陡峭的地形將會影響多少體力的流失. 值越高代表體力流失越快. + 设定陡峭的地形将会影响多少体力的流失. 值越高代表体力流失越快. Enabled @@ -90,6 +108,8 @@ 활성화 Activé Abilitato + 啟用 + 启用 Enables/disables Advanced Fatigue. @@ -99,6 +119,8 @@ 고급 피로도 활성화/비활성화 Active/désactive la fatigue avancée. Abilita/disabilita la Fatica Avanzata. + 啟用/關閉進階體力. + 启用/关闭进阶体力. Show stamina bar @@ -108,6 +130,8 @@ 피로도 막대 Afficher la barre d'endurance Mostra barra stamina + 顯示體力條 + 显示体力条 Shows the stamina bar. @@ -117,6 +141,8 @@ 피로도 막대를 보여줍니다. Affiche la barre d'endurance. Mostra la barra della stamina. + 顯示體力條. + 显示体力条. diff --git a/addons/advanced_throwing/stringtable.xml b/addons/advanced_throwing/stringtable.xml index 28745705230..ddb53c333f5 100644 --- a/addons/advanced_throwing/stringtable.xml +++ b/addons/advanced_throwing/stringtable.xml @@ -10,6 +10,8 @@ 고급 투척 Lancé amélioré Lancio Avanzato + 進階投擲 + 进阶投掷 Allows changing advanced throwing behaviour. @@ -20,6 +22,8 @@ 고급 투척 행위를 허가합니다 Permet de changer la configuration du lancé amélioré. Permette il cambiamento della modalità di tiro. + 允許使用更多不同的投擲方式. + 允许使用更多不同的投掷方式. Enable Advanced Throwing @@ -30,6 +34,8 @@ 고급 투척 활성화 Active le lancé amélioré Abilita Lancio Avanzato + 啟用進階投擲 + 启用进阶投掷 Enables advanced throwing system. @@ -40,6 +46,8 @@ 고급 투척을 활성화 합니다 Active le système de lancé amélioré. Abilita il sistema di lancio avanzato. + 啟用進階投擲系統. + 启用进阶投掷系统. Show Throw Arc @@ -50,6 +58,8 @@ 투척 궤적 표시 Afficher l'arc de lancé Mostra Arco di Tiro + 顯示投擲軌道 + 显示投掷轨道 Enables visualization of the throw arc (where throwable will fly). @@ -60,6 +70,8 @@ 투척 궤도를 시각화 합니다(투척물이 어디로 갈지) Active la visualisation de l'arc de lancé (où l'objet lancé va atterrir). Abilita la visualizzazione dell'arco del tiro (dove l'oggetto lanciabile volerà). + 顯示投擲軌道幫助投擲. + 显示投掷轨道帮助投掷. Show Throwing Mouse Controls @@ -70,6 +82,8 @@ 마우스 조작 표시 Afficher les contrôles à la souris du lancé Mostra Comandi Mouse Lancio + 顯示滑鼠投擲控制提示 + 显示滑鼠投掷控制提示 Enables visual cues for mouse controls when throwable is prepared. @@ -80,6 +94,8 @@ 투척물을 준비시 마우스 조작을 시각화해서 보여줍니다 Active les aides visuels pour les controles à la souris lorsqu'un lancé est préparé. Abilita la visualizzazione dei controlli del mouse quando l'oggetto lanciabile è pronto. + 開啟後會在準備投擲時, 顯示滑鼠相關操作. + 开启后会在准备投掷时, 显示滑鼠相关操作. Enable Throwables Pick Up @@ -90,6 +106,8 @@ 투척물 줍기 활성화 Active la récupération des objets lancés Abilita Raccogli Oggetti + 啟用可撿取地面投擲物 + 启用可捡取地面投掷物 Enables ability to pick up throwables from the ground. @@ -100,6 +118,8 @@ 땅에 떨어진 투척물을 주울 수 있게 해줍니다. Active la capacité de récupérer les objets lancés sur le sol. Abilita la possibilità di raccogliere un oggetto lanciabile da terra. + 啟用後, 可撿取地面上的投擲物. + 启用后, 可捡取地面上的投掷物. Enable Attached Throwables Pick Up @@ -110,6 +130,8 @@ 부착 투척물 줍기 활성화 Active le ramassage d'objets lançables attachés Abilita Raccogli Oggetti Lanciabili da altri Oggetti + 啟用可撿取附著投擲物 + 启用可捡取附着投掷物 Enables ability to pick up throwables from attached objects. @@ -120,6 +142,8 @@ 부착된 투척물을 주울 수 있게 해줍니다. Active la capacité à ramasser les objets lançables attaché à d'autres objets. Abilita la possibilità di raccogliere gli oggetti lanciabili dagli altri oggetti. + 啟用後, 可撿取附著在物件上的投擲物. + 启用后, 可捡取附着在物件上的投掷物. Prepare/Change Throwable @@ -130,6 +154,8 @@ 투척물 준비/변경 Préparer/changer d'objet Prepara/Cambia Oggetto lanciabile + 準備/變更投擲物 + 准备/变更投掷物 Throwable Drop Mode (Hold) @@ -140,6 +166,8 @@ 투척물 떨어뜨리기 모드(꾹눌러서) Mode de lancé de l'objet (Tenir) Modalità Oggetto Gettabile (Mantenere) + 投擲模式 (按住) + 投掷模式 (按住) Throwable Drop Mode (Toggle) @@ -150,6 +178,8 @@ 투척물 떨어뜨리기 모드(토글) Mode de lancé de l'objet (Basculer) Modalità Oggetto lanciabile Gettabile (Interruttore) + 投擲模式 (切換) + 投掷模式 (切换) Primed @@ -160,6 +190,8 @@ 뇌관 작동 Amorcer Armato + 引信開始燃燒 + 引信开始燃烧 Throw @@ -170,6 +202,8 @@ 던지기 Lancer Lanciare + 投擲 + 投掷 (Scroll) Change Mode @@ -180,6 +214,8 @@ (마우스 휠) 모드 변경 (Molette souris) Changer de mode (Scorrere) Cambio Modalità + (滾輪) 變更模式 + (滚轮) 变更模式 (Scroll) Extend @@ -190,6 +226,8 @@ (마우스 휠) 연장 (Molette souris) Etendre (Scorrere) Estendere + (滾輪) 延長 + (滚轮) 延长 (Click) Cook @@ -200,6 +238,8 @@ (클릭) 예열 (Clique) Dégoupiller (Click) Arma + (點擊) 提早拉開引信 + (点击) 提早拉开引信 Pick Up @@ -210,6 +250,8 @@ 줍기 Ramasser Raccogli + 撿取 + 捡取 diff --git a/addons/aircraft/stringtable.xml b/addons/aircraft/stringtable.xml index 7e08f906eee..a1a4dfe617a 100644 --- a/addons/aircraft/stringtable.xml +++ b/addons/aircraft/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ XM301 XM301 XM301 + XM301 + XM301 Open Cargo Door @@ -28,6 +30,8 @@ Abrir porta de carga カーゴ ドアを開く 화물칸 개방 + 開啟貨艙門 + 开启货舱门 Close Cargo Door @@ -42,6 +46,8 @@ Fechar porta de carga カーゴ ドアを閉じる 화물칸 폐쇄 + 關閉貨艙門 + 关闭货舱门 diff --git a/addons/atragmx/stringtable.xml b/addons/atragmx/stringtable.xml index 13c9e4478f6..28cea1bcf31 100644 --- a/addons/atragmx/stringtable.xml +++ b/addons/atragmx/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ ATragMX ATragMX ATragMX + ATragMX + ATragMX Open ATragMX @@ -28,6 +30,8 @@ Abrir ATragMX ATragMX を開く ATragMX 열기 + 開啟ATragMX + 开启ATragMX Rugged PDA with ATragMX @@ -42,6 +46,8 @@ PDA Robusto com ATragMX ATragMX 付きの携行型端末 ATragMX가 달린 PDA + 裝有軍用PDA的ATragMX + 装有军用PDA的ATragMX Open ATragMX @@ -56,6 +62,8 @@ Abrir ATragMX ATragMX を開く ATragMX 열기 + 開啟ATragMX + 开启ATragMX diff --git a/addons/attach/stringtable.xml b/addons/attach/stringtable.xml index 900c10bc058..65fdee531d9 100644 --- a/addons/attach/stringtable.xml +++ b/addons/attach/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Прикрепить предмет アイテムを取り付ける 물건 부착 + 附掛裝備>> + 附挂装备>> Attach @@ -28,6 +30,8 @@ Прикрепить 取り付ける 부착 + 附掛 + 附挂 Detach item @@ -42,6 +46,8 @@ Отсоединить アイテムを外す 분리 + 取下裝備 + 取下装备 IR Strobe Attached @@ -56,6 +62,8 @@ ИК-маяк прикреплён 赤外線ストロボを取り付ける 적외선 스트로브 부착됨 + 已附掛紅外線頻閃器 + 已附挂红外线频闪器 IR Strobe Detached @@ -70,6 +78,8 @@ ИК-маяк отсоединён 赤外線ストロボを外す 적외선 스트로브 분리됨 + 已取下紅外線頻閃器 + 已取下红外线频闪器 IR Grenade Attached @@ -84,6 +94,8 @@ ИК-граната прикреплена 赤外線グレネードを取り付ける 적외선 수류탄 부착됨 + 已附掛紅外線手榴彈 + 已附挂红外线手榴弹 IR Grenade Detached @@ -98,6 +110,8 @@ ИК-граната отсоединена 赤外線グレネードを外す 적외선 수류탄 분리됨 + 已取下紅外線手榴彈 + 已取下红外线手榴弹 Chemlight Attached @@ -112,6 +126,8 @@ Химсвет прикреплён ケミライトを取り付け 켐라이트 부착됨 + 已附掛螢光棒 + 已附挂萤光棒 Chemlight Detached @@ -126,6 +142,8 @@ Химсвет отсоединён ケミライトを外す 켐라이트 분리됨 + 已取下螢光棒 + 已取下萤光棒 No inventory space @@ -140,6 +158,8 @@ В инвентаре нет места インベントリに空きがない 넣을 공간이 없음 + 無可用空間 + 无可用空间 IR Strobe @@ -154,6 +174,8 @@ ИК-маяк 赤外線ストロボ 적외선 스트로브 + 紅外線頻閃器 + 红外线频闪器 IR Strobe allows you to signal your position through a pulsating beacon only visible with NVGs. @@ -168,6 +190,8 @@ ИК-маяк позволяет сигнализировать о своём местоположении через пульсирующий свет, видимый только через ПНВ. 赤外線ストロボはあなたの位置を知らせますが、夜間暗視装置を介してでしか見れません。 적외선 스트로브는 자신의 위치를 반짝이면서 표시합니다. 이는 야간투시경으로 밖에 보지 못합니다. + 紅外線閃頻器,藉由紅外線閃頻信號來辨識你的位置,僅能使用夜視系統來辨識紅外線信號 + 红外线闪频器,藉由红外线闪频信号来辨识你的位置,仅能使用夜视系统来辨识红外线信号 Place @@ -182,6 +206,8 @@ Установить 置く 두기 + 放置 + 放置 Cancel @@ -196,6 +222,8 @@ Отмена やめる 취소 + 取消 + 取消 Attach Failed @@ -210,6 +238,8 @@ Non si attacca 取り付けに失敗した 부착 실패 + 附掛失敗 + 附挂失败 %1<br/>Attached @@ -224,6 +254,8 @@ %1<br/>присоединен(-а) %1<br/>を取り付けた %1<br/>부착됨 + %1<br/>已附掛 + %1<br/>已附挂 %1<br/>Detached @@ -238,6 +270,8 @@ %1<br/>отсоединен(-а) %1<br/>を外した %1<br/>분리됨 + %1<br/>已取下 + %1<br/>已取下 diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index f5bcbb758a6..cac06aa73e6 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -15,6 +15,8 @@ 6,5x47mm 20-lövedékes tár (HPBT Scenar) 6.5x47mm 20発入り 弾倉 (HPBT Scenar) 20발들이 6.5x47mm (HPBT Scenar) + 6.5x47mm 20發 彈匣 (Lapua 空尖艇尾狙擊專用彈) + 6.5x47mm 20发 弹匣 (Lapua 空尖艇尾狙击专用弹) 6.5mm Lapua @@ -29,6 +31,8 @@ 6,5mm Lapua 6.5mm Lapua 6.5mm Lapua + 6.5mm Lapua 空尖艇尾狙擊專用彈 + 6.5mm Lapua 空尖艇尾狙击专用弹 Caliber: 6.5x47mm (HPBT Scenar)<br />Rounds: 20<br />Used in: QBU-88 @@ -43,6 +47,8 @@ Kaliber: 6,5x47mm (HPBT Scenar)<br />Lövedékek: 20<br />Használható: QBU-88 口径: 6.5x47mm (HPBT Scenar)<br />装填数: 20<br />次で使用: QBU-88 구경: 6.5x47mm (HPBT Scenar)<br />장탄수: 20<br />사용처: QBU-88 + 口徑: 6.5x47mm (Lapua 空尖艇尾狙擊專用彈)<br />發數: 20<br />使用於: QBU-88 + 口径: 6.5x47mm (Lapua 空尖艇尾狙击专用弹)<br />发数: 20<br />使用于: QBU-88 6.5mm Creedmor 20Rnd Mag @@ -57,6 +63,8 @@ 6,5mm Creedmor 20-lövedékes tár 6.5mm Creedmor 20発入り 弾倉 20발들이 6.5mm Creedmor 탄창 + 6.5mm 20發 彈匣 (Creedmor 狙擊專用彈) + 6.5mm 20发 弹匣 (Creedmor 狙击专用弹) 6.5mm CM @@ -71,6 +79,8 @@ 6,5mm CM 6.5mm CM 6.5mm CM + 6.5mm CM 狙擊專用彈 + 6.5mm CM 狙击专用弹 Caliber: 6.5x47mm Creedmor<br />Rounds: 20<br />Used in: QBU-88 @@ -85,6 +95,8 @@ Kaliber: 6,5x47mm Creedmor<br />Lövedékek: 20<br />Használható: QBU-88 口径: 6.5x47mm Creedmor<br />装填数: 20<br />次で使用: QBU-88 구경: 6.5x47mm Creedmor<br />장탄수: 20<br />사용처: QBU-88 + 口徑: 6.5x47mm Creedmor 狙擊專用彈<br />發數: 20<br />使用於: QBU-88 + 口径: 6.5x47mm Creedmor 狙击专用弹<br />发数: 20<br />使用于: QBU-88 @@ -100,6 +112,8 @@ Магазин из 30-ти 6,5 мм ИК-трассирующих 6.5mm 30発入り IR-DIM曳光弾 弾倉 30발들이 6.5mm IR-DIM 예광탄 탄창 + 6.5mm 30發 低視度紅外線曳光彈 彈匣 + 6.5mm 30发 低视度红外线曳光弹 弹匣 6.5mm IR-DIM @@ -114,6 +128,8 @@ 6,5 мм ИК-трассирующие 6.5mm IR-DIM曳光弾 6.5mm IR-DIM 예광탄 + 6.5mm 低視紅外曳光彈 + 6.5mm 低视红外曳光弹 Caliber: 6.5x39mm Tracer IR-DIM<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL @@ -128,6 +144,8 @@ Калибр: 6,5x39 мм ИК-трассирующие<br />Патронов: 30<br />Используются с: MX/C/M/SW/3GL 口径: 6.5x39mm 曳光弾 IR-DIM<br />装填数: 30<br />次で使用: MX/C/M/SW/3GL 구경: 6.5x39mm IR-DIM 예광탄<br />장탄수: 30<br />사용처: MX/C/M/SW/3GL + 口徑: 6.5x39mm 低視度紅外線曳光彈<br />發數: 30<br />使用於: MX/C/M/SW/3GL + 口径: 6.5x39mm 低视度红外线曳光弹<br />发数: 30<br />使用于: MX/C/M/SW/3GL 6.5mm 30Rnd SD Mag @@ -142,6 +160,8 @@ Магазин из 30-ти 6,5 мм дозвуковых 6.5mm 30発入り 亜音速弾 弾倉 30발들이 6.5mm 아음속탄 탄창 + 6.5mm 30發 消音彈 彈匣 + 6.5mm 30发 消音弹 弹匣 6.5mm SD @@ -156,6 +176,8 @@ 6,5 мм дозвуковые 6.5mm 亜音速弾 6.5mm 아음속탄 + 6.5mm 消音彈 + 6.5mm 消音弹 Caliber: 6.5x39mm SD<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL @@ -170,6 +192,8 @@ Калибр: 6,5x39 мм дозвуковые<br />Патронов: 30<br />Используются с: MX/C/M/SW/3GL 口径: 6.5x39mm 亜音速弾<br />装填数: 30<br />次で使用: MX/C/M/SW/3GL 구경: 6.5x39mm SD<br />장탄수: 30<br />사용처: MX/C/M/SW/3GL + 口徑: 6.5x39mm 消音彈<br />發數: 30<br />使用於: MX/C/M/SW/3GL + 口径: 6.5x39mm 消音弹<br />发数: 30<br />使用于: MX/C/M/SW/3GL 6.5mm 30Rnd AP Mag @@ -184,6 +208,8 @@ Магазин из 30-ти 6,5 мм бронебойных 6.5mm 30 発入り徹甲弾 弾倉 30발들이 6.5mm 철갑탄 탄창 + 6.5mm 30發 穿甲彈 彈匣 + 6.5mm 30发 穿甲弹 弹匣 6.5mm AP @@ -198,6 +224,8 @@ 6,5 мм бронебойные 6.5mm 徹甲弾 6.5mm 철갑탄 + 6.5mm 穿甲彈 + 6.5mm 穿甲弹 Caliber: 6.5x39mm AP<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL @@ -212,6 +240,8 @@ Калибр: 6,5x39 мм бронебойные<br />Патронов: 30<br />Используются с: MX/C/M/SW/3GL 口径: 6.5x39mm 徹甲弾<br />装填数: 30<br />次で使用: MX/C/M/SW/3GL 구경: 6.5x39mm 철갑탄<br />장탄수: 30<br />사용처: MX/C/M/SW/3GL + 口徑: 6.5x39mm 穿甲彈<br />發數: 30<br />使用於: MX/C/M/SW/3GL + 口径: 6.5x39mm 穿甲弹<br />发数: 30<br />使用于: MX/C/M/SW/3GL @@ -227,6 +257,8 @@ Магазин из 30-ти 6,5 мм ИК-трассирующих 6.5mm 30発入り IR-DIM曳光弾 弾倉 30발들이 6.5mm IR-DIM 예광탄 탄창 + 6.5mm 30發 低視度紅外線曳光彈 彈匣 + 6.5mm 30发 低视度红外线曳光弹 弹匣 6.5mm IR-DIM @@ -241,6 +273,8 @@ 6,5 мм ИК-трассирующие 6.5mm IR-DIM曳光弾 6.5mm IR-DIM 예광탄 + 6.5mm 低視紅外曳光彈 + 6.5mm 低视红外曳光弹 Caliber: 6.5x39mm Tracer IR-DIM<br />Rounds: 30<br />Used in: Katiba @@ -255,6 +289,8 @@ Калибр: 6,5x39 мм ИК-трассирующие<br />Патронов: 30<br />Используются с: Katiba 口径: 6.5x39mm IR-DIM曳光弾<br />装填数: 30<br />次で使用: Katiba 구경: 6.5x39mm IR-DIM 예광탄<br />장탄수: 30<br />사용처: Katiba + 口徑: 6.5x39mm 低視度紅外線曳光彈<br />發數: 30<br />使用於: Katiba + 口径: 6.5x39mm 低视度红外线曳光弹<br />发数: 30<br />使用于: Katiba 6.5mm 30Rnd SD Mag @@ -269,6 +305,8 @@ Магазин из 30-ти 6,5 мм дозвуковых 6.5mm 30発入り 亜音速弾 弾倉 30발들이 6.5mm 아음속탄 탄창 + 6.5mm 30發 消音彈 彈匣 + 6.5mm 30发 消音弹 弹匣 6.5mm SD @@ -283,6 +321,8 @@ 6,5 мм дозвуковые 6.5mm 亜音速弾 6.5mm 아음속탄 + 6.5mm 消音彈 + 6.5mm 消音弹 Caliber: 6.5x39mm SD<br />Rounds: 30<br />Used in: Katiba @@ -297,6 +337,8 @@ Калибр: 6,5x39 мм дозвуковые<br />Патронов: 30<br />Используются с: Katiba 口径: 6.5x39mm 亜音速弾<br />装填数: 30<br />次で使用: Katiba 구경: 6.5x39mm 아음속탄<br />장탄수: 30<br />사용처: Katiba + 口徑: 6.5x39mm 消音彈<br />發數: 30<br />使用於: Katiba + 口径: 6.5x39mm 消音弹<br />发数: 30<br />使用于: Katiba 6.5mm 30Rnd AP Mag @@ -311,6 +353,8 @@ Магазин из 30-ти 6,5 мм бронебойных 6.5mm 30 発入り徹甲弾 弾倉 30발들이 6.5mm 철갑탄 탄창 + 6.5mm 30發 穿甲彈 彈匣 + 6.5mm 30发 穿甲弹 弹匣 6.5mm AP @@ -325,6 +369,8 @@ 6,5 мм бронебойные 6.5mm 徹甲弾 6.5mm 철갑탄 + 6.5mm 穿甲彈 + 6.5mm 穿甲弹 Caliber: 6.5x39mm AP<br />Rounds: 30<br />Used in: Katiba @@ -339,6 +385,8 @@ Калибр: 6,5x39 мм бронебойные<br />Патронов: 30<br />Используются с: Katiba 口径: 6.5x39mm 徹甲弾<br />装填数: 30<br />次で使用: Katiba 구경: 6.5x39mm 철갑탄<br />장탄수: 30<br />사용처: Katiba + 口徑: 6.5x39mm 穿甲彈<br />發數: 30<br />使用於: Katiba + 口径: 6.5x39mm 穿甲弹<br />发数: 30<br />使用于: Katiba @@ -354,6 +402,8 @@ Магазин из 30-ти 5,56 мм ИК-трассирующих 5.56mm 30発入り IR-DIM曳光弾 弾倉 30발 들이 5.56mm IR-DIM 예광탄 탄창 + 5.56mm 30發 低視度紅外線曳光彈 彈匣 + 5.56mm 30发 低视度红外线曳光弹 弹匣 5.56mm IR-DIM @@ -368,6 +418,8 @@ 5,56 мм ИК-трассирующие 5.56mm IR-DIM曳光弾 5.56mm IR-DIM 예광탄 + 5.56mm 低視紅外曳光彈 + 5.56mm 低视红外曳光弹 Caliber: 5.56x45mm Tracer IR-DIM<br />Rounds: 30<br />Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR @@ -382,6 +434,8 @@ Калибр: 5,56x45 мм ИК-трассирующие<br />Патронов: 30<br />Используются с: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR 口径: 5.56x45mm IR-DIM曳光弾<br />装填数: 30<br />次で使用: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR 구경: 5.56x45mm IR-DIM 예광탄<br />장탄수: 30<br />사용처: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + 口徑: 5.56x45mm 低視度紅外線曳光彈<br />發數: 30<br />使用於: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + 口径: 5.56x45mm 低视度红外线曳光弹<br />发数: 30<br />使用于: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR @@ -397,6 +451,8 @@ Магазин из 20-ти 7,62 мм трассирующих 7.62mm 20発入り 曳光弾 20발들이 7.62mm 예광탄 탄창 + 7.62mm 20發 曳光彈 彈匣 + 7.62mm 20发 曳光弹 弹匣 7.62mm Tracer @@ -411,6 +467,8 @@ 7,62 мм трассирущие 7.62mm 曳光弾 7.62mm 예광탄 + 7.62mm 曳光彈 + 7.62mm 曳光弹 Caliber: 7.62x51mm Tracer<br />Rounds: 20<br />Used in: Mk18 ABR @@ -425,6 +483,8 @@ Калибр: 7,62x51 мм трассирующие<br />Патронов: 20<br />Используются с: Mk18 ABR 口径: 7.62x51mm 曳光弾<br />装填数: 20<br />次で使用: Mk18 ABR 구경: 7.62x51mm 예광탄<br />장탄수: 20<br />사용처: Mk18 ABR + 口徑: 7.62x51mm 曳光彈<br />發數: 20<br />使用於: Mk18 ABR + 口径: 7.62x51mm 曳光弹<br />发数: 20<br />使用于: Mk18 ABR 7.62mm 20rnd Tracer IR-DIM Mag @@ -439,6 +499,8 @@ Магазин из 20-ти 7,62 мм ИК-трассирующих 7.62mm 20発入り IR-DIM曳光弾 20발들이 7.62mm IR-DIM 예광탄 탄창 + 7.62mm 20發 低視度紅外線曳光彈 彈匣 + 7.62mm 20发 低视度红外线曳光弹 弹匣 7.62mm IR-DIM @@ -453,6 +515,8 @@ 7,62 мм ИК-трассирующие 7.62mm IR-DIM曳光弾 7.62mm IR-DIM 예광탄 + 7.62mm 低視紅外曳光彈 + 7.62mm 低视红外曳光弹 Caliber: 7.62x51mm Tracer IR-DIM<br />Rounds: 20<br />Used in: Mk18 ABR @@ -467,6 +531,8 @@ Калибр: 7,62x51 мм ИК-трассирующие<br />Патронов: 20<br />Используются с: Mk18 ABR 口径: 7.62x51mm IR-DIM曳光弾<br />装填数: 20<br />次で使用: Mk18 ABR 구경: 7.62x51mm IR-DIM 예광탄<br />장탄수: 20<br />사용처: Mk18 ABR + 口徑: 7.62x51mm 低視度紅外線曳光彈<br />發數: 20<br />使用於: Mk18 ABR + 口径: 7.62x51mm 低视度红外线曳光弹<br />发数: 20<br />使用于: Mk18 ABR 7.62mm 20Rnd SD Mag @@ -481,6 +547,8 @@ Магазин из 20-ти 7,62 мм дозвуковых 7.62mm 20発入り 亜音速弾 弾倉 20발들이 7.62mm 아음속탄 탄창 + 7.62mm 20發 消音彈 彈匣 + 7.62mm 20发 消音弹 弹匣 7.62mm SD @@ -495,6 +563,8 @@ 7,62 мм дозвуковые 7.62mm 亜音速弾 7.62mm 아음속탄 + 7.62mm 消音彈 + 7.62mm 消音弹 Caliber: 7.62x51mm SD<br />Rounds: 20<br />Used in: Mk18 ABR @@ -509,6 +579,8 @@ Калибр: 7,62x51 мм дозвуковые<br />Патронов: 20<br />Используются с: Mk18 ABR 口径: 7.62x51mm 亜音速弾<br />装填数: 20<br />次で使用: Mk18 ABR 구경: 7.62x51mm SD<br />장탄수: 20<br />사용처: Mk18 ABR + 口徑: 7.62x51mm 消音彈<br />發數: 20<br />使用於: Mk18 ABR + 口径: 7.62x51mm 消音弹<br />发数: 20<br />使用于: Mk18 ABR @@ -524,6 +596,8 @@ .338 NM 130-lövedékes nyomkövető heveder .338 NM 130発入り 曳光弾ベルト 130발들이 .338 NM 예광탄 벨트 + .338 NM 130發 曳光彈 彈鏈 + .338 NM 130发 曳光弹 弹链 .338 NM Tracer @@ -538,6 +612,8 @@ .338 NM nyomkövető .338 NM 曳光弾 .338 NM 예광탄 + .338 NM 曳光彈 + .338 NM 曳光弹 Caliber: .338 Norma Magnum Tracer<br />Rounds: 130<br />Used in: SPMG @@ -552,6 +628,8 @@ Kaliber: .338 Norma Magnum nyomkövető<br />Lövedékek: 130<br />Használható: SPMG 口径: .338 Norma Magnum 曳光弾<br />装填数: 130<br />次で使用: SPMG 구경: .338 Norma 매그넘 예광탄<br />장탄수: 130<br />사용처: SPMG + 口徑: .338 Norma Magnum 曳光彈<br />發數: 130<br />使用於: SPMG + 口径: .338 Norma Magnum 曳光弹<br />发数: 130<br />使用于: SPMG .338 NM 130Rnd IR-DIM Belt @@ -566,6 +644,8 @@ .338 NM 130-lövedékes infravörös nyomkövető heveder .338 NM 130発入り IR-DIM曳光弾ベルト 130발들이 .338 NM IR-DIM 예광탄 벨트 + .338 NM 130發 低視度紅外線曳光彈 彈鏈 + .338 NM 130发 低视度红外线曳光弹 弹链 .338 NM IR-DIM @@ -580,6 +660,8 @@ .338 NM infravörös nyomkövető .338 NM IR-DIM曳光弾 .338 NM IR-DIM 예광탄 + .338 NM 低視紅外曳光彈 + .338 NM 低视红外曳光弹 Caliber: .338 Norma Magnum Tracer IR-DIM<br />Rounds: 130<br />Used in: SPMG @@ -594,6 +676,8 @@ Kaliber: .338 Norma Magnum infravörös nyomkövető<br />Lövedékek: 130<br />Használható: SPMG 口径: .338 Norma Magnum IR-DIM曳光弾<br />装填数: 130<br />次で使用: SPMG 구경: .338 Norma 매그넘 IR-DIM 예광탄<br />장탄수: 130<br />사용처: SPMG + 口徑: .338 Norma Magnum 低視度紅外線曳光彈<br />發數: 130<br />使用於: SPMG + 口径: .338 Norma Magnum 低视度红外线曳光弹<br />发数: 130<br />使用于: SPMG .338 NM 130Rnd AP Belt @@ -608,6 +692,8 @@ .338 NM 130-lövedékes páncéltörő heveder .338 NM 130発入り 徹甲弾ベルト 130발들이 .338 NM 철갑탄 벨트 + .338 NM 130發 穿甲彈 彈鏈 + .338 NM 130发 穿甲弹 弹链 .338 NM AP @@ -622,6 +708,8 @@ .338 NM páncéltörő .338 NM 徹甲弾 .338 NM 철갑탄 + .338 NM 穿甲彈 + .338 NM 穿甲弹 Caliber: .338 Norma Magnum AP<br />Rounds: 130<br />Used in: SPMG @@ -636,6 +724,8 @@ Kaliber: .338 Norma Magnum páncéltörő<br />Lövedékek: 130<br />Használható: SPMG 口径: .338 Norma Magnum 徹甲弾<br />装填数: 130<br />次で使用: SPMG 구경: .338 Norma 매그넘 철갑탄<br />장탄수: 130<br />사용처: SPMG + 口徑: .338 Norma Magnum 穿甲彈<br />發數: 130<br />使用於: SPMG + 口径: .338 Norma Magnum 穿甲弹<br />发数: 130<br />使用于: SPMG @@ -651,6 +741,8 @@ 9,3mm 10-lövedékes nyomkövető tár 9.3mm 10発入り 曳光弾 弾倉 10발들이 9.3mm 예광탄 탄창 + 9.3mm 10發 曳光彈 彈匣 + 9.3mm 10发 曳光弹 弹匣 9.3mm Tracer @@ -665,6 +757,8 @@ 9,3mm nyomkövető 9.3mm 曳光弾 9.3mm 예광탄 + 9.3mm 曳光彈 + 9.3mm 曳光弹 Caliber: 9.3x64mm Tracer<br />Rounds: 10<br />Used in: Cyrus @@ -679,6 +773,8 @@ Kaliber: 9,3x64mm nyomkövető<br />Lövedékek: 10<br />Használható: Cyrus 口径: 9.3x64mm 曳光弾<br />装填数: 10<br />次で使用: Cyrus 구경: 9.3x64mm 예광탄<br />장탄수: 10<br />사용처: Cyrus + 口徑: 9.3x64mm 曳光彈<br />發數: 10<br />使用於: Cyrus + 口径: 9.3x64mm 曳光弹<br />发数: 10<br />使用于: Cyrus 9.3mm 10Rnd Tracer IR-DIM Mag @@ -693,6 +789,8 @@ 9,3mm 10-lövedékes infravörös nyomkövető tár 9.3mm 10発入り IR-DIM曳光弾 弾倉 10발들이 9.3mm IR-DIM 예광탄 탄창 + 9.3mm 10發 低視度紅外線曳光彈 彈匣 + 9.3mm 10发 低视度红外线曳光弹 弹匣 9.3mm IR-DIM @@ -707,6 +805,8 @@ 9,3mm infravörös nyomkövető 9.3mm IR-DIM曳光弾 9.3mm IR-DIM 예광탄 + 9.3mm 低視紅外曳光彈 + 9.3mm 低视红外曳光弹 Caliber: 9.3x64mm Tracer IR-DIM<br />Rounds: 10<br />Used in: Cyrus @@ -721,6 +821,8 @@ Kaliber: 9,3x64mm infravörös nyomkövető<br />Lövedékek: 10<br /> Használható: Cyrus 口径: 9.3x64mm IR-DIM曳光弾<br />装填数: 10<br />次で使用: Cyrus 구경: 9.3x64mm IR-DIM 예광탄<br />장탄수: 10<br />사용처: Cyrus + 口徑: 9.3x64mm 低視度紅外線曳光彈<br />發數: 10<br />使用於: Cyrus + 口径: 9.3x64mm 低视度红外线曳光弹<br />发数: 10<br />使用于: Cyrus @@ -736,6 +838,8 @@ 9,3mm 150-lövedékes nyomkövető heveder 9.3mm 150発入り 曳光弾ベルト 150발들이 9.3mm 예광탄 벨트 + 9.3mm 150發 曳光彈 彈鏈 + 9.3mm 150发 曳光弹 弹链 9.3mm Tracer @@ -750,6 +854,8 @@ 9,3mm nyomkövető 9.3mm 曳光弾 9.3mm 예광탄 + 9.3mm 曳光彈 + 9.3mm 曳光弹 Caliber: 9.3x64mm Tracer<br />Rounds: 150<br />Used in: Navid @@ -764,6 +870,8 @@ Kaliber: 9,3x64mm nyomkövető<br />Lövedékek: 150<br />Használható: Navid 口径: 9.3x64mm 曳光弾<br />装填数: 150<br />次で使用: Navid 구경: 9.3x64mm 예광탄<br />장탄수: 150<br />사용처: Navid + 口徑: 9.3x64mm 曳光彈<br />發數: 150<br />使用於: Navid + 口径: 9.3x64mm 曳光弹<br />发数: 150<br />使用于: Navid 9.3mm 150Rnd Tracer IR-DIM Belt @@ -778,6 +886,8 @@ 9,3mm 150-lövedékes infravörös nyomkövető heveder 9.3mm 150発入り IR-DIM曳光弾ベルト 150발들이 9.3mm IR-DIM 예광탄 벨트 + 9.3mm 150發 低視度紅外線曳光彈 彈鏈 + 9.3mm 150发 低视度红外线曳光弹 弹链 9.3mm IR-DIM @@ -792,6 +902,8 @@ 9,3mm infravörös nyomkövető 9.3mm IR-DIM曳光弾 9.3mm IR-DIM 예광탄 + 9.3mm 低視紅外曳光彈 + 9.3mm 低视红外曳光弹 Caliber: 9.3x64mm Tracer IR-DIM<br />Rounds: 150<br />Used in: Navid @@ -806,6 +918,8 @@ Kaliber: 9,3x64mm infravörös nyomkövető<br />Lövedékek: 150<br />Használható: Navid 口径: 9.3x64mm IR-DIM曳光弾<br />装填数: 150<br />次で使用: Navid 구경: 9.3x64mm IR-DIM 예광탄<br />장탄수: 150<br />사용처: Navid + 口徑: 9.3x64mm 低視度紅外線曳光彈<br />發數: 150<br />使用於: Navid + 口径: 9.3x64mm 低视度红外线曳光弹<br />发数: 150<br />使用于: Navid 9.3mm 150Rnd AP Belt @@ -820,6 +934,8 @@ 9,3mm 150-lövedékes páncéltörő heveder 9.3mm 150発入り 徹甲弾ベルト 150발들이 9.3mm 철갑탄 벨트 + 9.3mm 150發 穿甲彈 彈鏈 + 9.3mm 150发 穿甲弹 弹链 9.3mm AP @@ -834,6 +950,8 @@ 9,3mm páncéltörő 9.3mm 徹甲弾 9.3mm 철갑탄 + 9.3mm 穿甲彈 + 9.3mm 穿甲弹 Caliber: 9.3x64mm AP<br />Rounds: 150<br />Used in: Navid @@ -848,6 +966,8 @@ Kaliber: 9,3x64mm páncéltörő<br />Lövedékek: 150<br />Használható: Navid 口径: 9.3x64mm 徹甲弾<br />装填数: 150<br />次で使用: Navid 구경: 9.3x64mm 철갑탄<br />장탄수: 150<br />사용처: Navid + 口徑: 9.3x64mm 穿甲彈<br />發數: 150<br />使用於: Navid + 口径: 9.3x64mm 穿甲弹<br />发数: 150<br />使用于: Navid 9x19mm 16Rnd Mag @@ -862,6 +982,8 @@ 9x19mm 16-lövedékes tár 9x19mm 16発入り 弾倉 16발들이 9x19mm 탄창 + 9x19mm 16發 彈匣 + 9x19mm 16发 弹匣 9x19mm @@ -876,6 +998,8 @@ 9x19mm 9x19mm 9x19mm + 9x19mm + 9x19mm 9x19mm 30Rnd Mag @@ -890,6 +1014,8 @@ 9x19mm 16-lövedékes tár 9x19mm 30発入り 弾倉 30발들이 9x19mm 탄창 + 9x19mm 30發 彈匣 + 9x19mm 30发 弹匣 9x19mm 30Rnd Mag @@ -904,6 +1030,8 @@ 9x19mm 30-lövedékes tár 9x19mm 30発入り 弾倉 30발들이 9x19mm 탄창 + 9x19mm 30發 彈匣 + 9x19mm 30发 弹匣 9x19mm @@ -918,6 +1046,8 @@ 9x19mm 9x19mm 9x19mm + 9x19mm + 9x19mm 9x19mm 30Rnd Mag @@ -932,6 +1062,8 @@ 9x19mm 30-lövedékes tár 9x19mm 30発入り 弾倉 30발들이 9x19mm 탄창 + 9x19mm 30發 彈匣 + 9x19mm 30发 弹匣 7.62x54mm 10Rnd Tracer Mag @@ -946,6 +1078,8 @@ 7,62x54mm 10-lövedékes nyomkövető tár 7.62x54mm 10発入り 曳光弾 弾倉 10발들이 7.62x54mm 예광탄 탄창 + 7.62x54mm 10發 曳光彈 彈匣 + 7.62x54mm 10发 曳光弹 弹匣 7.62mm @@ -960,6 +1094,8 @@ 7,62mm 7.62mm 7.62mm + 7.62mm + 7.62mm 7.62x54mm 10Rnd Tracer Mag @@ -974,6 +1110,8 @@ 7,62x54mm 10-lövedékes nyomkövető tár 7.62x54mm 10発入り 曳光弾 弾倉 10발들이 7.62x54mm 예광탄 탄창 + 7.62x54mm 10發 曳光彈 彈匣 + 7.62x54mm 10发 曳光弹 弹匣 6.5mm 100Rnd Tracer IR-DIM Mag @@ -988,6 +1126,8 @@ 6,5mm 100-lövedékes infravörös nyomkövető tár 6.5mm 100発入り IR-DIM曳光弾 弾倉 100발들이 6.5mm IR-DIM 예광탄 탄창 + 6.5mm 100發 低視度紅外線曳光彈 彈匣 + 6.5mm 100发 低视度红外线曳光弹 弹匣 6.5mm IR-DIM @@ -1002,6 +1142,8 @@ 6,5mm infravörös nyomkövető 6.5mm IR-DIM曳光弾 6.5mm IR-DIM 예광탄 + 6.5mm 低視紅外曳光彈 + 6.5mm 低视红外曳光弹 6.5mm 100Rnd Tracer IR-DIM Mag<br />Rounds: 100<br />Used in: MX LSW @@ -1016,6 +1158,8 @@ 6.5mm 100-lövedékes infravörös nyomkövető tár<br />Lövedékek: 100<br />Használható: MX LSW 6.5mm 100発入り IR-DIM曳光弾 弾倉<br />装填数: 100<br />次で使用: MX LSW 100발들이 6.5mm IR-DIM 예광탄 탄창<br />장탄수: 100<br />사용처: MX LSW + 6.5mm 100發 低視度紅外線曳光彈<br />發數: 100<br />使用於: MX LSW + 6.5mm 100发 低视度红外线曳光弹<br />发数: 100<br />使用于: MX LSW 6.5mm 200Rnd Tracer IR-DIM Belt @@ -1030,6 +1174,8 @@ 6,5mm 200-lövedékes infravörös nyomkövető heveder 6.5mm 200発入り IR-DIM曳光弾ベルト 200발들이 6.5mm IR-DIM 예광탄 탄창 + 6.5mm 200發 低視度紅外線曳光彈 彈鏈 + 6.5mm 200发 低视度红外线曳光弹 弹链 6.5mm IR-DIM @@ -1044,6 +1190,8 @@ 6,5mm infravörös nyomkövető 6.5mm IR-DIM曳光弾 6.5mm IR-DIM 예광탄 + 6.5mm 低視紅外曳光彈 + 6.5mm 低视红外曳光弹 6.5mm 200Rnd Tracer IR-DIM Belt<br />Rounds: 200<br />Used in: Stoner 99 LMG @@ -1058,6 +1206,8 @@ 6.5mm 200-lövedékes infravörös nyomkövető heveder<br />Lövedékek: 200<br />Használható: Stoner 99 LMG 6.5mm 200発入り IR-DIM曳光弾ベルト<br />装填数: 200<br />次で使用: Stoner 99 LMG 200발들이 6.5mm IR-DIM 예광탄 벨트<br />장탄수: 200<br />사용처: Stoner 99 LMG + 6.5mm 200發 低視度紅外線曳光彈<br />發數: 200<br />使用於: Stoner 99 LMG + 6.5mm 200发 低视度红外线曳光弹<br />发数: 200<br />使用于: Stoner 99 LMG 5.56mm 30Rnd Mag (Mk262) @@ -1072,6 +1222,8 @@ 5,56mm 30-lövedékes tár (Mk262) 5.56mm 30発入り 弾倉 (Mk262) 30발들이 5.56mm 탄창 (Mk262) + 5.56mm 30發 彈匣 (Mk262 狙擊專用彈) + 5.56mm 30发 弹匣 (Mk262 狙击专用弹) 5.56mm Mk262 @@ -1086,6 +1238,8 @@ 5,56mm Mk262 5.56mm Mk262 5.56mm Mk262 + 5.56mm Mk262 狙擊專用彈 + 5.56mm Mk262 狙击专用弹 Caliber: 5.56x45mm NATO (Mk262)<br />Rounds: 30 @@ -1100,6 +1254,8 @@ Kaliber: 5,56x45mm NATO (Mk262)<br />Lövedékek: 30 口径: 5.56x45mm NATO (Mk262)<br />装填数: 30 구경: 5.56x45mm NATO (Mk262)<br />장탄수: 30 + 口徑: 5.56x45mm NATO標準 (Mk262 狙擊專用彈)<br />發數: 30 + 口径: 5.56x45mm NATO标准 (Mk262 狙击专用弹)<br />发数: 30 5.56mm 30Rnd Mag (Mk318) @@ -1114,6 +1270,8 @@ 5,56mm 30-lövedékes tár (Mk318) 5.56mm 30発入り 弾倉 (Mk318) 30발들이 5.56mm 탄창 (Mk318) + 5.56mm 30發 彈匣 (Mk318 特戰專用彈) + 5.56mm 30发 弹匣 (Mk318 特战专用弹) 5.56mm Mk318 @@ -1128,6 +1286,8 @@ 5,56mm Mk318 5.56mm Mk318 5.56mm Mk318 + 5.56mm Mk318 特戰專用彈 + 5.56mm Mk318 特战专用弹 Caliber: 5.56x45mm NATO (Mk318)<br />Rounds: 30 @@ -1142,6 +1302,8 @@ Kaliber: 5,56x45mm NATO (Mk318)<br />Lövedékek: 30 口径: 5.56x45mm NATO (Mk318)<br />装填数: 30 구경: 5.56x45mm NATO (Mk318)<br />장탄수: 30 + 口徑: 5.56x45mm NATO標準 (Mk318 特戰專用彈)<br />發數: 30 + 口径: 5.56x45mm NATO标准 (Mk318 特战专用弹)<br />发数: 30 5.56mm 30Rnd Mag (M995 AP) @@ -1156,6 +1318,8 @@ 5,56mm 30-lövedékes tár (M995 páncéltörő) 5.56mm 30発入り 弾倉 (M995 徹甲弾) 30발들이 5.56mm 탄창 (Mk995 철갑탄) + 5.56mm 30發 彈匣 (M995 穿甲彈) + 5.56mm 30发 弹匣 (M995 穿甲弹) 5.56mm AP @@ -1170,6 +1334,8 @@ 5,56mm páncéltörő 5.56mm 徹甲弾 5.56mm 철갑탄 + 5.56mm M995 穿甲彈 + 5.56mm M995 穿甲弹 Caliber: 5.56x45mm NATO (M995 AP)<br />Rounds: 30 @@ -1184,6 +1350,8 @@ Kaliber: 5,56x45mm NATO (M995 páncéltörő)<br />Lövedékek: 30 口径: 5.56x45mm NATO (M995 徹甲弾)<br />装填数: 30 구경: 5.56x45mm NATO (Mk995 철갑탄)<br />장탄수: 30 + 口徑: 5.56x45mm NATO標準 (M995 穿甲彈)<br />發數: 30 + 口径: 5.56x45mm NATO标准 (M995 穿甲弹)<br />发数: 30 7.62mm 10Rnd Mag (M118LR) @@ -1198,6 +1366,8 @@ 7,62mm 10-lövedékes tár (M118LR) 7.62mm 10発入り 弾倉 (M118LR) 10발들이 7.62mm 탄창 (M118LR) + 7.62mm 10發 彈匣 (M118LR 狙擊專用彈) + 7.62mm 10发 弹匣 (M118LR 狙击专用弹) 7.62mm M118LR @@ -1212,6 +1382,8 @@ 7,62mm M118LR 7.62mm M118LR 7.62mm M118LR + 7.62mm M118LR 狙擊專用彈 + 7.62mm M118LR 狙击专用弹 Caliber: 7.62x51mm NATO (M118LR)<br />Rounds: 10 @@ -1226,6 +1398,8 @@ Kaliber: 7,62x51mm NATO (M118LR)<br />Lövedékek: 10 口径: 7.62x51mm NATO (M118LR)<br />装填数: 10 구경: 7.62x51mm NATO (M118LR)<br />장탄수: 10 + 口徑: 7.62x51mm NATO標準 (M118LR 狙擊專用彈)<br />發數: 10 + 口径: 7.62x51mm NATO标准 (M118LR 狙击专用弹)<br />发数: 10 7.62mm 20Rnd Mag (M118LR) @@ -1240,6 +1414,8 @@ 7,62mm 20-lövedékes tár (M118LR) 7.62mm 20発入り 弾倉 (M118LR) 20발들이 7.62mm 탄창 (M118LR) + 7.62mm 20發 彈匣 (M118LR 狙擊專用彈) + 7.62mm 20发 弹匣 (M118LR 狙击专用弹) 7.62mm M118LR @@ -1254,6 +1430,8 @@ 7,62mm M118LR 7.62mm M118LR 7.62mm M118LR + 7.62mm M118LR 狙擊專用彈 + 7.62mm M118LR 狙击专用弹 Caliber: 7.62x51mm NATO (M118LR)<br />Rounds: 20 @@ -1268,6 +1446,8 @@ Kaliber: 7,62x51mm NATO (M118LR)<br />Lövedékek: 20 口径: 7.62x51mm NATO (M118LR)<br />装填数: 20 구경: 7.62x51mm NATO (M118LR)<br />장탄수: 20 + 口徑: 7.62x51mm NATO標準 (M118LR 狙擊專用彈)<br />發數: 20 + 口径: 7.62x51mm NATO标准 (M118LR 狙击专用弹)<br />发数: 20 7.62mm 10Rnd Mag (Mk316 Mod 0) @@ -1282,6 +1462,8 @@ 7,62mm 10-lövedékes tár (Mk316 Mod 0) 7.62mm 10発入り 弾倉 (Mk316 Mod 0) 10발들이 7.62mm 탄창 (Mk316 Mod 0) + 7.62mm 10發 彈匣 (Mk316 Mod 0 狙擊專用彈) + 7.62mm 10发 弹匣 (Mk316 Mod 0 狙击专用弹) 7.62mm Mk316 @@ -1296,6 +1478,8 @@ 7,62mm Mk316 7.62mm Mk316 7.62mm Mk316 + 7.62mm Mk316 狙擊專用彈 + 7.62mm Mk316 狙击专用弹 Caliber: 7.62x51mm NATO (Mk316 Mod 0)<br />Rounds: 10 @@ -1310,6 +1494,8 @@ Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Lövedékek: 10 口径: 7.62x51mm NATO (Mk316 Mod 0)<br />装填数: 10 구경: 7.62x51mm NATO (Mk316 Mod 0)<br />장탄수: 10 + 口徑: 7.62x51mm NATO標準 (Mk316 Mod 0 狙擊專用彈)<br />發數: 10 + 口径: 7.62x51mm NATO标准 (Mk316 Mod 0 狙击专用弹)<br />发数: 10 7.62mm 20Rnd Mag (Mk316 Mod 0) @@ -1324,6 +1510,8 @@ 7,62mm 20-lövedékes tár (Mk316 Mod 0) 7.62mm 20発入り 弾倉 (Mk316 Mod 0) 20발들이 7.62mm 탄창 (Mk316 Mod 0) + 7.62mm 20發 彈匣 (Mk316 Mod 0 狙擊專用彈) + 7.62mm 20发 弹匣 (Mk316 Mod 0 狙击专用弹) 7.62mm Mk316 @@ -1338,6 +1526,8 @@ 7,62mm Mk316 7.62mm Mk316 7.62mm Mk316 + 7.62mm Mk316 狙擊專用彈 + 7.62mm Mk316 狙击专用弹 Caliber: 7.62x51mm NATO (Mk316 Mod 0)<br />Rounds: 20 @@ -1352,6 +1542,8 @@ Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Lövedékek: 20 口径: 7.62x51mm NATO (Mk316 Mod 0)<br />装填数: 20 구경: 7.62x51mm NATO (Mk316 Mod 0)<br />장탄수: 20 + 口徑: 7.62x51mm NATO標準 (Mk316 Mod 0 狙擊專用彈)<br />發數: 20 + 口径: 7.62x51mm NATO标准 (Mk316 Mod 0 狙击专用弹)<br />发数: 20 7.62mm 10Rnd Mag (Mk319 Mod 0) @@ -1366,6 +1558,8 @@ 7,62mm 10-lövedékes tár (Mk319 Mod 0) 7.62mm 10発入り 弾倉 (Mk319 Mod 0) 10발들이 7.62mm 탄창 (Mk319 Mod 0) + 7.62mm 10發 彈匣 (Mk319 Mod 0 特戰專用彈) + 7.62mm 10发 弹匣 (Mk319 Mod 0 特战专用弹) 7.62mm Mk319 @@ -1380,6 +1574,8 @@ 7,62mm Mk319 7.62mm Mk319 7.62mm Mk319 + 7.62mm Mk319 特戰專用彈 + 7.62mm Mk319 特战专用弹 Caliber: 7.62x51mm NATO (Mk319 Mod 0)<br />Rounds: 10 @@ -1394,6 +1590,8 @@ Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Lövedékek: 10 口径: 7.62x51mm NATO (Mk319 Mod 0)<br />装填数: 10 구경: 7.62x51mm NATO (Mk319 Mod 0)<br />장탄수: 10 + 口徑: 7.62x51mm NATO標準 (Mk319 Mod 0 特戰專用彈)<br />發數: 10 + 口径: 7.62x51mm NATO标准 (Mk319 Mod 0 特战专用弹)<br />发数: 10 7.62mm 20Rnd Mag (Mk319 Mod 0) @@ -1408,6 +1606,8 @@ 7,62mm 20-lövedékes tár (Mk319 Mod 0) 7.62mm 20発入り 弾倉 (Mk319 Mod 0) 20발들이 7.62mm 탄창 (Mk319 Mod 0) + 7.62mm 20發 彈匣 (Mk319 Mod 0 特戰專用彈) + 7.62mm 20发 弹匣 (Mk319 Mod 0 特战专用弹) 7.62mm Mk319 @@ -1422,6 +1622,8 @@ 7,62mm Mk319 7.62mm Mk319 7.62mm Mk319 + 7.62mm Mk319 特戰專用彈 + 7.62mm Mk319 特战专用弹 Caliber: 7.62x51mm NATO (Mk319 Mod 0)<br />Rounds: 20 @@ -1436,6 +1638,8 @@ Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Lövedékek: 20 口径: 7.62x51mm NATO (Mk319 Mod 0)<br />装填数: 20 구경: 7.62x51mm NATO (Mk319 Mod 0)<br />장탄수: 20 + 口徑: 7.62x51mm NATO標準 (Mk319 Mod 0 特戰專用彈)<br />發數: 20 + 口径: 7.62x51mm NATO标准 (Mk319 Mod 0 特战专用弹)<br />发数: 20 7.62mm 10Rnd Mag (M993 AP) @@ -1450,6 +1654,8 @@ 7,62mm 10-lövedékes tár (M993 páncéltörő) 7.62mm 10発入り 弾倉 (M993 徹甲弾) 10발들이 7.62mm 탄창 (M993 철갑탄) + 7.62mm 10發 彈匣 (M993 穿甲專用彈) + 7.62mm 10发 弹匣 (M993 穿甲专用弹) 7.62mm AP @@ -1464,6 +1670,8 @@ 7,62mm páncéltörő 7.62mm 徹甲弾 7.62mm 철갑탄 + 7.62mm M993 穿甲專用彈 + 7.62mm M993 穿甲专用弹 Caliber: 7.62x51mm NATO (M993 AP)<br />Rounds: 10 @@ -1478,6 +1686,8 @@ Kaliber: 7,62x51mm NATO (M993 páncéltörő)<br />Lövedékek: 10 口径: 7.62x51mm NATO (Mk319 Mod 0)<br />装填数: 10 구경: 7.62x51mm NATO (M993 철갑탄)<br />장탄수: 10 + 口徑: 7.62x51mm NATO標準 (M993 穿甲專用彈)<br />發數: 10 + 口径: 7.62x51mm NATO标准 (M993 穿甲专用弹)<br />发数: 10 7.62mm 20Rnd Mag (M993 AP) @@ -1492,6 +1702,8 @@ 7,62mm 20-lövedékes tár (M993 páncéltörő) 7.62mm 20発入り 弾倉 (M993 徹甲弾) 20발들이 7.62mm 탄창 (M993 철갑탄) + 7.62mm 20發 彈匣 (M993 穿甲專用彈) + 7.62mm 20发 弹匣 (M993 穿甲专用弹) 7.62mm AP @@ -1506,6 +1718,8 @@ 7,62mm páncéltörő 7.62mm 徹甲弾 7.62mm 철갑탄 + 7.62mm M993 穿甲專用彈 + 7.62mm M993 穿甲专用弹 Caliber: 7.62x51mm NATO (M993 AP)<br />Rounds: 20 @@ -1520,6 +1734,8 @@ Kaliber: 7,62x51mm NATO (M993 páncéltörő)<br />Lövedékek: 20 口径: 7.62x51mm NATO (M993 徹甲弾)<br />装填数: 20 구경: 7.62x51mm NATO (M993 철갑탄)<br />장탄수: 20 + 口徑: 7.62x51mm NATO標準 (M993 穿甲專用彈)<br />發數: 20 + 口径: 7.62x51mm NATO标准 (M993 穿甲专用弹)<br />发数: 20 7.62mm 20Rnd Mag (Mk248 Mod 0) @@ -1534,6 +1750,8 @@ 7,62mm 20-lövedékes tár (Mk248 Mod 0) 7.62mm 20発入り 弾倉 (Mk248 Mod 0) 20발들이 7.62mm 탄창 (Mk248 Mod 0) + 7.62mm 20發 彈匣 (Mk248 Mod 0 狙擊專用彈) + 7.62mm 20发 弹匣 (Mk248 Mod 0 狙击专用弹) 7.62mm Mk248 @@ -1548,6 +1766,8 @@ 7,62mm Mk248 7.62mm Mk248 7.62mm Mk248 + 7.62mm Mk248 狙擊專用彈 + 7.62mm Mk248 狙击专用弹 Caliber: 7.62x67mm NATO (Mk248 Mod 0)<br />Rounds: 20 @@ -1562,6 +1782,8 @@ Kaliber: 7,62x51mm NATO (Mk248 Mod 0)<br />Lövedékek: 20 口径: 7.62x67mm NATO (Mk248 Mod 0)<br />装填数: 20 구경: 7.62x51mm NATO (Mk248 Mod 0)<br />장탄수: 20 + 口徑: 7.62x67mm NATO標準 (Mk248 Mod 0 狙擊專用彈)<br />發數: 20 + 口径: 7.62x67mm NATO标准 (Mk248 Mod 0 狙击专用弹)<br />发数: 20 7.62mm 20Rnd Mag (Mk248 Mod 1) @@ -1576,6 +1798,8 @@ 7,62mm 20-lövedékes tár (Mk248 Mod 1) 7.62mm 20発入り 弾倉 (Mk248 Mod 1) 20발들이 7.62mm 탄창 (Mk248 Mod 1) + 7.62mm 20發 彈匣 (Mk248 Mod 1 狙擊專用彈) + 7.62mm 20发 弹匣 (Mk248 Mod 1 狙击专用弹) 7.62mm Mk248 @@ -1590,6 +1814,8 @@ 7,62mm Mk248 7.62mm Mk248 7.62mm Mk248 + 7.62mm Mk248 狙擊專用彈 + 7.62mm Mk248 狙击专用弹 Caliber: 7.62x67mm NATO (Mk248 Mod 1)<br />Rounds: 20 @@ -1604,6 +1830,8 @@ Kaliber: 7,62x51mm NATO (Mk248 Mod 1)<br />Lövedékek: 20 口径: 7.62x67mm NATO (Mk248 Mod 1)<br />装填数: 20 구경: 7.62x51mm NATO (Mk248 Mod 1)<br />장탄수: 20 + 口徑: 7.62x67mm NATO標準 (Mk248 Mod 1 狙擊專用彈)<br />發數: 20 + 口径: 7.62x67mm NATO标准 (Mk248 Mod 1 狙击专用弹)<br />发数: 20 7.62mm 20Rnd Mag (Berger Hybrid OTM) @@ -1618,6 +1846,8 @@ 7,62mm 20-lövedékes tár (Berger Hybrid OTM) 7.62mm 20発入り 弾倉 (Berger Hybrid OTM) 20발들이 7.62mm 탄창 (Berger Hybrid OTM) + 7.62mm 20發 彈匣 (Berger Hybrid 空尖比賽專用彈) + 7.62mm 20发 弹匣 (Berger Hybrid 空尖比赛专用弹) 7.62mm OTM @@ -1632,6 +1862,8 @@ 7,62mm OTM 7.62mm OTM 7.62mm OTM + 7.62mm 空尖比賽專用彈 + 7.62mm 空尖比赛专用弹 Caliber: 7.62x67mm NATO (Berger Hybrid OTM)<br />Rounds: 20 @@ -1646,6 +1878,8 @@ Kaliber: 7,62x67mm NATO (Berger Hybrid OTM)<br />Lövedékek: 20 口径: 7.62x67mm NATO (Berger Hybrid OTM)<br />装填数: 20 구경: 7.62x51mm NATO (Berger Hybrid OTM)<br />장탄수: 20 + 口徑: 7.62x67mm NATO標準 (Berger Hybrid 空尖比賽專用彈)<br />發數: 20 + 口径: 7.62x67mm NATO标准 (Berger Hybrid 空尖比赛专用弹)<br />发数: 20 6.5x47mm 30Rnd Mag (HPBT Scenar) @@ -1660,6 +1894,8 @@ 6,5x47mm 30-lövedékes tár (HPBT Scenar) 6.5x47mm 30発入り 弾倉 (HPBT Scenar) 30발들이 6.5x47mm 탄창 (HPBT Scenar) + 6.5x47mm 30發 彈匣 (Lapua 空尖艇尾狙擊專用彈) + 6.5x47mm 30发 弹匣 (Lapua 空尖艇尾狙击专用弹) 6.5mm Lapua @@ -1674,6 +1910,8 @@ 6,5mm Lapua 6.5mm Lapua 6.5mm Lapua + 6.5mm Lapua 空尖艇尾狙擊專用彈 + 6.5mm Lapua 空尖艇尾狙击专用弹 Caliber: 6.5x47mm (HPBT Scenar)<br />Rounds: 30<br />Used in: MXM @@ -1688,6 +1926,8 @@ Kaliber: 6,5x47mm (HPBT Scenar)<br />Lövedékek: 30<br />Használható: MXM 口径: 6.5x47mm (HPBT Scenar)<br />装填数: 30<br />次で使用: MXM 구경: 6.5x47mm (HPBT Scenar)<br />장탄수: 30<br />사용처: MXM + 口徑: 6.5x47mm (Lapua 空尖艇尾狙擊專用彈)<br />發數: 30<br />使用於: MXM + 口径: 6.5x47mm (Lapua 空尖艇尾狙击专用弹)<br />发数: 30<br />使用于: MXM 6.5mm Creedmor 30Rnd Mag @@ -1702,6 +1942,8 @@ 6,5mm Creedmor 30-lövedékes tár 6.5mm Creedmor 30発入り 弾倉 30발들이 6.5mm Creedmor 탄창 + 6.5mm 30發 彈匣 (Creedmor 狙擊專用彈) + 6.5mm 30发 弹匣 (Creedmor 狙击专用弹) 6.5mm CM @@ -1716,6 +1958,8 @@ 6,5mm CM 6.5mm CM 6.5mm CM + 6.5mm CM 狙擊專用彈 + 6.5mm CM 狙击专用弹 Caliber: 6.5x47mm Creedmor<br />Rounds: 30<br />Used in: MXM @@ -1730,6 +1974,8 @@ Kaliber: 6,5x47mm Creedmor<br />Lövedékek: 30<br />Használható: MXM 口径: 6.5x47mm Creedmor<br />装填数: 30<br />次で使用: MXM 구경: 6.5x47mm Creedmor<br />장탄수: 30<br />사용처: MXM + 口徑: 6.5x47mm Creedmor 狙擊專用彈<br />發數: 30<br />使用於: MXM + 口径: 6.5x47mm Creedmor 狙击专用弹<br />发数: 30<br />使用于: MXM .338 10Rnd Mag (300gr Sierra MatchKing HPBT) @@ -1744,6 +1990,8 @@ .338 10-lövedékes tár (300gr Sierra MatchKing HPBT) .338 10発入り 弾倉 (300gr Sierra MatchKing HPBT) 10발들이 .338 탄창 (300gr Sierra MatchKing HPBT) + .338 10發 彈匣 (300公克 Sierra MatchKing 空尖艇尾比賽專用彈) + .338 10发 弹匣 (300公克 Sierra MatchKing 空尖艇尾比赛专用弹) .338 HPBT @@ -1758,6 +2006,8 @@ .338 HPBT 338 HPBT .338 HPBT + .338 空尖艇尾比賽專用彈 + .338 空尖艇尾比赛专用弹 Caliber: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Rounds: 10 @@ -1772,6 +2022,8 @@ Kaliber: 8,6x70mm (300gr Sierra MatchKing HPBT)<br />Lövedékek: 10 口径: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />装填数: 10 구경: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />장탄수: 10 + 口徑: 8.6x70mm (300公克 Sierra MatchKing 空尖艇尾比賽專用彈)<br />發數: 10 + 口径: 8.6x70mm (300公克 Sierra MatchKing 空尖艇尾比赛专用弹)<br />发数: 10 .338 10Rnd Mag (API526) @@ -1786,6 +2038,8 @@ .338 10-lövedékes tár (API526) .338 10発入り 弾倉 (API526) 10발들이 .338 탄창 (API526) + .338 10發 彈匣 (API526 穿甲燃燒彈) + .338 10发 弹匣 (API526 穿甲燃烧弹) .338 AP @@ -1800,6 +2054,8 @@ .338 páncéltörő .338 徹甲弾 .338 철갑탄 + .338 API526 穿甲燃燒彈 + .338 API526 穿甲燃烧弹 Caliber: 8.6x70mm (API526)<br />Rounds: 10 @@ -1814,6 +2070,8 @@ Kaliber: 8,6x70mm (API526)<br />Lövedékek: 10 口径: 8.6x70mm (API526)<br />装填数: 10 구경: 8.6x70mm (API526)<br />장탄수: 10 + 口徑: 8.6x70mm (API526 穿甲燃燒彈)<br />發數: 10 + 口径: 8.6x70mm (API526 穿甲燃烧弹)<br />发数: 10 .408 7Rnd Mag (305gr) @@ -1828,6 +2086,8 @@ .408 7-lövedékes tár (305gr) .408 7発入り 弾倉 (305gr) 7발들이 .408 탄창 (305gr) + .408 7發 彈匣 (305公克) + .408 7发 弹匣 (305公克) .408 @@ -1842,6 +2102,8 @@ .408 .408 .408 + .408 + .408 Caliber: .408 CheyTac (305gr)<br />Rounds: 7 @@ -1856,6 +2118,8 @@ Kaliber: .408 CheyTac (305gr)<br />Lövedékek: 7 口径: .408 CheyTac (305gr)<br />装填数: 7 구경: .408 CheyTac (305gr)<br />장탄수: 7 + 口徑: .408 夏伊戰術狙擊彈 (305公克)<br />發數: 7 + 口径: .408 夏伊战术狙击弹 (305公克)<br />发数: 7 12.7x99mm 5Rnd Mag @@ -1870,6 +2134,8 @@ 12,7x99mm 5-lövedékes tár 12.7x99mm 5発入り 弾倉 5발들이 12.7x99mm 탄창 + 12.7x99mm 5發 彈匣 + 12.7x99mm 5发 弹匣 12.7mm @@ -1884,6 +2150,8 @@ 12,7mm 12.7mm 12.7mm + 12.7mm + 12.7mm Caliber: 12.7x99mm<br />Rounds: 5 @@ -1898,6 +2166,8 @@ Kaliber: 12,7x99mm<br />Lövedékek: 5 口径: 12.7x99mm<br />装填数: 5 구경: 12.7x99mm<br />장탄수: 5 + 口徑: 12.7x99mm<br />發數: 5 + 口径: 12.7x99mm<br />发数: 5 12.7x99mm API 5Rnd Mag @@ -1912,6 +2182,8 @@ 12,7x99mm 5-lövedékes tár (páncéltörő-gyújtó) 12.7x99mm 5発入り焼夷徹甲弾 弾倉 5발들이 12.7x99mm 철갑소이탄 탄창 + 12.7x99mm 穿甲燃燒彈 5發 彈匣 + 12.7x99mm 穿甲燃烧弹 5发 弹匣 12.7mm API @@ -1926,6 +2198,8 @@ 12,7mm páncéltörő-gyújtó 12.7mm 焼夷徹甲弾 12.7mm 철갑소이탄 + 12.7mm 穿甲燃燒彈 + 12.7mm 穿甲燃烧弹 Caliber: 12.7x99mm API<br />Rounds: 5 @@ -1940,6 +2214,8 @@ Kaliber: 12,7x99mm API<br />Lövedékek: 5 口径: 12.7x99mm 焼夷徹甲弾<br />装填数: 5 구경: 12.7x99mm 철갑소이탄<br />장탄수: 5 + 口徑: 12.7x99mm 穿甲燃燒彈<br />發數: 5 + 口径: 12.7x99mm 穿甲燃烧弹<br />发数: 5 12.7x99mm 5Rnd Mag (AMAX) @@ -1954,6 +2230,8 @@ 12,7x99mm 5-lövedékes tár (AMAX) 12.7x99mm 5発入り 弾倉 (AMAX) 5발들이 12.7x99mm 탄창 (AMAX) + 12.7x99mm 5發 彈匣 (AMAX 比賽專用彈) + 12.7x99mm 5发 弹匣 (AMAX 比赛专用弹) 12.7mm @@ -1968,6 +2246,8 @@ 12,7mm 12.7mm 12.7mm + 12.7mm AMAX 比賽專用彈 + 12.7mm AMAX 比赛专用弹 Caliber: 12.7x99mm (AMAX)<br />Rounds: 5 @@ -1982,6 +2262,8 @@ Kaliber: 12,7x99mm (AMAX)<br />Lövedékek: 5 口径: 12.7x99mm (AMAX)<br />装填数: 5 구경: 12.7x99mm (AMAX)<br />장탄수: 5 + 口徑: 12.7x99mm (AMAX 比賽專用彈)<br />發數: 5 + 口径: 12.7x99mm (AMAX 比赛专用弹)<br />发数: 5 [ACE] Ammo Supply Crate @@ -1996,6 +2278,8 @@ [ACE] Cassa munizioni [ACE] 弾薬物資箱 [ACE] 탄약 보급 상자 + [ACE] 彈藥補給箱 + [ACE] 弹药补给箱 diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml index f54f53e48ee..8b976754257 100644 --- a/addons/captives/stringtable.xml +++ b/addons/captives/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Взять в плен 捕虜にする 사로잡기 + 逮捕俘虜 + 逮捕俘虏 Free Prisoner @@ -28,6 +30,8 @@ Освободить пленника 捕虜を解放する 풀어주기 + 釋放俘虜 + 释放俘虏 Escort Prisoner @@ -42,6 +46,8 @@ Конвоировать пленника 捕虜を移動させる 포로 호송하기 + 護送俘虜 + 护送俘虏 Release Prisoner @@ -56,6 +62,8 @@ Прекратить конвоирование 捕虜を解放する 포로 풀어주기 + 停止護送俘虜 + 停止护送俘虏 You need to take him as prisoner first! @@ -70,6 +78,8 @@ Вы должны сначала взять его в плен! あなたは先に捕虜を取る必要があります。 먼저 포로로 만들어야합니다! + 你必須先逮捕他! + 你必须先逮捕他! Load Captive @@ -84,6 +94,8 @@ Fai salire il prigioniero 捕虜を乗せる 포로 태우기 + 將俘虜放入載具 + 将俘虏放入载具 Unload Captive @@ -98,6 +110,8 @@ Fai scendere il prigioniero 捕虜を降ろす 포로 내리기 + 將俘虜帶出載具 + 将俘虏带出载具 Cable Tie @@ -112,6 +126,8 @@ Кабельная стяжка ケーブル タイ 케이블 타이 + 束線帶 + 束线带 Cable ties that allow you to restrain prisoners. @@ -126,6 +142,8 @@ Кабельные стяжки позволяют связывать пленников. ケーブル タイは捕虜を制圧できます。 케이블 타이는 포로를 구류시킬때 씁니다. + 束線帶可以綁住俘虜 + 束线带可以绑住俘虏 Inventory of frisked person @@ -140,6 +158,8 @@ Inventario della persona perquisita 捕虜の持ち物を確認する 검문당한 사람의 소지품 + 搜身選單 + 搜身选单 Frisk person @@ -154,6 +174,8 @@ Perquisisci la persona 捕虜の持ち物 검문당한사람 + 搜身 + 搜身 Surrender @@ -168,6 +190,8 @@ Arrenditi 投降 투항 + 投降 + 投降 Stop Surrendering @@ -182,6 +206,8 @@ Smetti di arrenderti 投降をやめる 투항하는것을 멈춤 + 停止投降 + 停止投降 Make Unit Surrender @@ -196,6 +222,8 @@ Fai arrendere l'unità ユニットを投降させる 투항시키기 + 使單位投降 + 使单位投降 Sync a unit to make them surrender. @@ -210,6 +238,8 @@ Sincronizza una unità per farla arrendere. 同期されたユニットを投降させます。 투항시키기 위해 동기화합니다. + 同步此模塊到一個單位, 使該單位投降 + 同步此模块到一个单位, 使该单位投降 Make Unit Handcuffed @@ -223,6 +253,8 @@ Rendre une unité captive ユニットを拘束する 수갑을 채우기 + 使單位戴上手銬 + 使单位戴上手铐 Sync a unit to make them handcuffed. @@ -236,6 +268,8 @@ Synchronisez une unité pour la rendre captive. 同期されたユニットを拘束させます。 수갑을 채우기 위해 동기화합니다. + 使單位戴上手銬 + 使单位戴上手铐 Captives Settings @@ -250,6 +284,8 @@ Impostazioni Prigionieri 拘束の設定 포로 설정 + 俘虜設定 + 俘虏设定 Controls settings for surrender and cable ties @@ -264,6 +300,8 @@ Controlla le impostazioni per la resa e le manette 投降したユニットや拘束されたユニットの扱いを設定します。 투항과 케이블 타이에 관련한 설정 + 定義投降與束帶等設定 + 定义投降与束带等设定 Can handcuff own side @@ -278,6 +316,8 @@ Puoi ammanettare unità alleate 自陣営への拘束を可能に 자기편에게 수갑을 채울 수 있게 합니다 + 可以銬住同陣營隊友 + 可以铐住同阵营队友 Can players cabletie units on their own side @@ -292,6 +332,8 @@ I giocatori possono ammanettare unità alleate プレイヤーがユニットを拘束し、彼らの陣営に変更できます。 자기편에게 케이블타이를 사용할 수 있게합니다 + 玩家可以使用束線帶銬住同陣營隊友 + 玩家可以使用束线带铐住同阵营队友 Allow surrendering @@ -306,6 +348,8 @@ Permetti Resa 投降を許可 투항 활성화 + 允許投降 + 允许投降 Players can surrender after holstering their weapon @@ -320,6 +364,8 @@ I giocatori possono arrendersi dopo aver messo via le proprie armi プレイヤーは武器を収めたあとに投降できるようにします。 비무장한 플레이어가 투항할 수 있게 합니다 + 玩家能在收起自己武器後投降 + 玩家能在收起自己武器后投降 Require surrendering @@ -333,6 +379,8 @@ Requiert la reddition 投降を必要とする 투항 필요 + 要求目標投降 + 要求目标投降 Require Players to surrender before they can be arrested @@ -346,6 +394,8 @@ Requiert la capitulation des joueurs avant qu'ils ne puissent être arrêtés プレイヤーは拘束される前に、投降する必要があります。 체포하기 전에 플레이어가 투항을 먼저해야만 합니다 + 玩家須先要求目標投降, 才可以進行逮捕 + 玩家须先要求目标投降, 才可以进行逮捕 Surrendering only @@ -359,6 +409,8 @@ Reddition seulement 投降中のみ 투항 중에만 + 只能在投降狀態 + 只能在投降状态 Surrendering or No weapon @@ -372,6 +424,8 @@ Capitulation ou desarmé 投降中か非武装時 투항 중 혹은 비무장 + 投降或無武器狀態 + 投降或无武器状态 diff --git a/addons/cargo/stringtable.xml b/addons/cargo/stringtable.xml index 4c7b547fb45..6c9e3209d3a 100644 --- a/addons/cargo/stringtable.xml +++ b/addons/cargo/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,6 +13,8 @@ Charger 積み込む 싣기 + 裝載 + 装载 Unload @@ -26,6 +28,8 @@ Décharger 下ろす 내리기 + 卸載 + 卸载 Cargo @@ -39,6 +43,8 @@ Cargaison カーゴ 화물 + 貨物 + 货物 Cargo Menu @@ -52,6 +58,8 @@ Menu de cargaison カーゴ メニュー 화물 메뉴 + 貨物選單 + 货物选单 Cargo space left: %1 @@ -65,6 +73,8 @@ Espace de cargaison restant : %1 カーゴの空き容量: %1 선적 공간 남음: %1 + 貨物剩餘空間: %1 + 货物剩余空间: %1 Enable Cargo @@ -78,6 +88,8 @@ Activer la mise en cargaison カーゴを有効化 화물 활성화 + 啟用貨物裝載 + 启用货物装载 Enable the load in cargo module @@ -91,6 +103,8 @@ Active le chargement de cargaison dans un vehicule カーゴ モジュールで積み込みを有効化 화물 모듈에 싣기를 활성화합니다 + 啟用貨物裝載功能 + 启用货物装载功能 Cargo Settings @@ -104,6 +118,8 @@ Paramètres de cargaison カーゴ設定 화물 설정 + 貨物設定 + 货物设定 Configure the cargo module settings @@ -117,6 +133,8 @@ Configure les paramètres du module de cargaison カーゴ モジュールの設定を構成 화물 모듈의 환경 설정을 바꿉니다 + 配置貨物模塊設定 + 配置货物模块设定 %1<br/>loaded into<br/>%2 @@ -131,6 +149,8 @@ %1<br/>загружен в<br/>%2 %1<br/>は<br/>%2へ積み込まれた %1<br/>는<br/>%2 에 실림 + %1<br/>裝載至<br/>%2 + %1<br/>装载至<br/>%2 Unloaded<br/>%1 from<br/>%2 @@ -145,6 +165,8 @@ %1<br/>разгружен из<br/>%2 <br/>%1が<br/>%2から降ろされた %1<br/>는<br/>%2 에서 내려짐 + 從<br/>%2卸載<br/>%1 + 从<br/>%2卸载<br/>%1 Loading Cargo @@ -158,6 +180,8 @@ Chargement de la cargaison カーゴへ積み込んでいる 화물 싣기 + 裝載貨物中 + 装载货物中 Unloading Cargo @@ -171,6 +195,8 @@ Déchargement de la cargaison カーゴから降ろしている 화물 내리기 + 卸載貨物中 + 卸载货物中 %1<br/>could not be loaded @@ -184,6 +210,8 @@ %1<br /> n'a pas pu être chargé %1<br/>は積み込めなかった %1<br/>이 실릴 수가 없습니다 + %1<br/>無法被裝載 + %1<br/>无法被装载 %1<br/>could not be unloaded @@ -197,6 +225,8 @@ %1<br /> n'a pas pu être déchargé %1<br/>は降ろせなかった %1<br/>이 내려질 수가 없습니다 + %1<br/>無法被卸載 + %1<br/>无法被卸载 Make Object Loadable @@ -210,6 +240,8 @@ Сделать объект загружаемым オブジェクトを積載可能に 물체를 화물화시키기 + 使物件可裝載 + 使物件可装载 Sets the synced object as loadable by the cargo system. @@ -223,6 +255,8 @@ Делает синхронизированный объект загружаемым для модуля перевозки грузов. オブジェクトを同期させると、カーゴ システムによる積載が可能になります。 물체를 화물 시스템과 동기화시켜 실을 수 있게 합니다 + 使用同步線來使該物件可被裝載. + 使用同步线来使该物件可被装载. Object's Size @@ -236,26 +270,36 @@ Размер объекта オブジェクトの大きさ 물체 크기 + 物件的大小 + 物件的大小 Cargo Space Spazio Cargo カーゴ スペース + 貨物空間 + 货物空间 The cargo space available in this vehicle/container Lo spazio disponibile in questo veicolo/container この車両/コンテナでカーゴ スペースを使えるようにします + 設定此載具/集裝箱可裝載多少貨物 + 设定此载具/集装箱可装载多少货物 Cargo Size Dimensioni Cargo カーゴ サイズ + 貨物的大小 + 货物的大小 The cargo space required to hold this object (-1 for unloadable) Lo spazio del cargo necessita di mantenere questo oggetto (-1 per scaricabile) このオブジェクトを積載するのに必要なカーゴ スペース (-1 で積載不可) + 此貨物會佔掉多少空間(設定-1的話此貨物就不能被裝載) + 此货物会占掉多少空间(设定-1的话此货物就不能被装载) Airdrop @@ -265,6 +309,8 @@ 공중 투하 Largage aérien Lancio Aereo + 空投 + 空投 Unlevel Flight @@ -274,18 +320,24 @@ 기체가 수평이 아닙니다 Rétablir l'assiette Volo non Livellato + 此架飛機並無保持水平飛行 + 此架飞机并无保持水平飞行 Paradrop Time Coffecient 空中投下までの時間係数 Coefficente Tempo Lancio Paracadute Coefficient Temps de largage de cargaison + 空投時間係數 + 空投时间系数 Modifier for how long it takes to paradrop a cargo item. カーゴ アイテムを空中投下するまでの時間を変更します。 Modificato per quanto tempo ci impiega a paracadutare un oggetto cargo. Modifier le temps qu'il faut pour larguer la cargaison. + 設定空投所需消耗的時間. + 设定空投所需消耗的时间. diff --git a/addons/chemlights/stringtable.xml b/addons/chemlights/stringtable.xml index 76e1ffd27e3..e42b949a4f5 100644 --- a/addons/chemlights/stringtable.xml +++ b/addons/chemlights/stringtable.xml @@ -9,6 +9,8 @@ 켐라이트 Cyalumes Luce chimica + 螢光棒 + 萤光棒 Prepare %1 @@ -18,6 +20,8 @@ %1 준비 Prépare %1 Prepara %1 + 使用%1 + 使用%1 %1<br/>Prepared @@ -27,6 +31,8 @@ %1<br/>준비됨 %1<br/>prêt %1 <br/> Preparata + %1<br/>已使用 + %1<br/>已使用 No inventory space @@ -41,6 +47,8 @@ В инвентаре нет места インベントリに空きがありません 소지품 공간이 없음 + 已無存放空間 + 已无存放空间 [ACE] Chemlights @@ -50,6 +58,8 @@ [ACE] 켐라이트 [ACE] Cyalume [ACE] Luci chimiche + [ACE] 螢光棒 + [ACE] 萤光棒 Chemlight (Orange) @@ -59,6 +69,8 @@ 켐라이트 (주황) Cyalume (orange) Luce chimica (Arancione) + 螢光棒 (橘色) + 萤光棒 (橘色) Orange Light @@ -68,6 +80,8 @@ 주황색 Lum. orange Luce Arancione + 橘色光 + 橘色光 Type: Light - Orange<br />Rounds: 1<br />Used in: Hand @@ -77,6 +91,8 @@ 종류:밝은 오렌지<br />수량: 1<br />사용처: 손 Type: Lumière - orange<br />Nbre: 1<br /> À main Tipo: Luce - Arancione<br/>Rimanenti: 1<br/>Usata in: Mano + 類型: 光 - 橘色<br />發數: 1<br />使用於: 手 + 类型: 光 - 橘色<br />发数: 1<br />使用于: 手 Chemlight (White) @@ -86,6 +102,8 @@ 켐라이트 (하양) Cyalume (blanc) Luce chimica (Bianca) + 螢光棒 (白色) + 萤光棒 (白色) White Light @@ -95,6 +113,8 @@ 하얀색 Lum. blanche Luce Bianca + 白色光 + 白色光 Type: Light - White<br />Rounds: 1<br />Used in: Hand @@ -104,6 +124,8 @@ 종류:하얀색<br />수량: 1<br />사용처: 손 Type: Lumière - blanche<br />Nbre: 1<br /> À main Tipo: Luce - Bianca<br/>Rimanenti: 1<br/>Usata in: Mano + 類型: 光 - 白色<br />發數: 1<br />使用於: 手 + 类型: 光 - 白色<br />发数: 1<br />使用于: 手 Chemlight (Hi Red) @@ -113,6 +135,8 @@ 켐라이트 (밝은 빨간색) Cyalume (Hi rouge) Luce chimica (Hi Rossa) + 螢光棒 (超亮紅色) + 萤光棒 (超亮红色) Red Hi Light @@ -122,6 +146,8 @@ 밝은 빨간색 Lum. rouge haute intensité Luce Hi Rossa + 超亮紅色光 + 超亮红色光 Type: Light - Red Hi (5 minute)<br />Rounds: 1<br />Used in: Hand @@ -131,6 +157,8 @@ 종류: 밝은 빨간색 (5분)<br />수량: 1<br />사용처: 손 Type: Lumière - rouge Hi (5 minutes)<br />Nbre: 1<br /> À main Tipo: Luce - Rossa Hi (5 minuti)<br />Rimanenti: 1<br/>Usata in: Mano + 類型: 光 - 超亮紅色 (5分鐘)<br />發數: 1<br />使用於: 手 + 类型: 光 - 超亮红色 (5分钟)<br />发数: 1<br />使用于: 手 Chemlight (Hi Yellow) @@ -140,6 +168,8 @@ 켐라이트 (밝은 노란색) Cyalume (Hi jaune) Luce chimica (Hi Gialla) + 螢光棒 (超亮黃色) + 萤光棒 (超亮黄色) Yellow Hi Light @@ -149,6 +179,8 @@ 밝은 노란색 Lum. jaune haute intensité Luce Hi Gialla + 超亮黃色光 + 超亮黄色光 Type: Light - Yellow Hi (5 minute)<br />Rounds: 1<br />Used in: Hand @@ -158,6 +190,8 @@ 종류:밝은 노란색 (5분)<br />수량: 1<br />사용처: Hand Type: Lumière - Jaune Hi (5 minutes)Nbre: 1<br /> À main Tipo: Luce - Gialla Hi (5 minuti)<br />Rimanenti: 1<br/>Usata in: Mano + 類型: 光 - 超亮黃色 (5分鐘)<br />發數: 1<br />使用於: 手 + 类型: 光 - 超亮黄色 (5分钟)<br />发数: 1<br />使用于: 手 Chemlight (Hi Orange) @@ -167,6 +201,8 @@ 켐라이트 (밝은 주황색) Cyalume (Hi orange) Luce chimica (Hi Arancione) + 螢光棒 (超亮橘色) + 萤光棒 (超亮橘色) Orange Hi Light @@ -176,6 +212,8 @@ 밝은 주황색 Lum. orange haute intensité Luce Hi Arancione + 超亮橘色光 + 超亮橘色光 Type: Light - Orange Hi (5 minute)<br />Rounds: 1<br />Used in: Hand @@ -185,6 +223,8 @@ 종류: 밝은 주황색 (5분)<br />수량: 1<br />사용처: 손 Type: Lumière - orange Hi (5 minutes)<br />Nbre: 1<br /> À main Tipo: Luce - Arancione Hi (5 minuti)<br />Rimanenti: 1<br/>Usata in: Mano + 類型: 光 - 超亮橘色 (5分鐘)<br />發數: 1<br />使用於: 手 + 类型: 光 - 超亮橘色 (5分钟)<br />发数: 1<br />使用于: 手 Chemlight (Hi White) @@ -194,6 +234,8 @@ 켐라이트 (밝은 하얀색) Cyalume (Hi blanc) Luce chimica (Hi Bianca) + 螢光棒 (超亮白色) + 萤光棒 (超亮白色) White Hi Light @@ -203,6 +245,8 @@ 밝은 하얀색 Lum. blanche haute intensité Luce Hi Bianca + 超亮白色光 + 超亮白色光 Type: Light - White Hi (5 minute)<br />Rounds: 1<br />Used in: Hand @@ -212,6 +256,8 @@ 종류: 밝은 하얀색 (5분)<br />수량: 1<br />사용처: 손 Type: Lumière - blanche Hi (5 minutes)<br />Nbre: 1<br /> À main Tipo: Luce - Bianca Hi (5 minuti)<br />Rimanenti: 1<br/>Usata in: Mano + 類型: 光 - 超亮白色 (5分鐘)<br />發數: 1<br />使用於: 手 + 类型: 光 - 超亮白色 (5分钟)<br />发数: 1<br />使用于: 手 Chemlight (IR) @@ -221,6 +267,8 @@ 켐라이트 (적외선) Cyalume (IR) Luce chimica (IR) + 螢光棒 (紅外線) + 萤光棒 (红外线) IR Light @@ -230,6 +278,8 @@ 적외선 켐라이트 Lumière IR Luce IR + 紅外線光 + 红外线光 Type: Light - Infrared<br />Rounds: 1<br />Used in: Hand @@ -239,6 +289,8 @@ 종류: 적외선<br />수량: 1<br />사용처: 손 Type: Lumière - infrarouge<br />Nbre: 1<br /> À main Tipo: Luce - Infrarossi<br />Usata in: Mano + 類型: 光 - 紅外線<br />發數: 1<br />使用於: 手 + 类型: 光 - 红外线<br />发数: 1<br />使用于: 手 Chemlight Shield (Empty) @@ -248,6 +300,8 @@ 켐라이트 쉴드 (비어있음) Étui cyalume (vide) Scudo Luce chimica (Vuoto) + 螢光棒保護殼 (空) + 萤光棒保护壳 (空) Shield for chemlights. Combine with chemlight to prepare reading light. @@ -257,6 +311,8 @@ 켐라이트를 위한 가림막입니다. 켐라이트와 같이 사용하여 읽을 때 씁니다. Étui pour cyalume. Combiné avec un cyalume pour obtennir un lampe de lecture. Scudo per luci chimiche. Combina con una luce chimica per una luce da lettura. + 螢光棒的保護殼. 與螢光棒結合後可充當閱讀燈. + 萤光棒的保护壳. 与萤光棒结合后可充当阅读灯. Chemlight Shield (Green) @@ -266,6 +322,8 @@ 켐라이트 쉴드 (초록) Étui cyalume (vert) Scudo Luce Chimica (Verde) + 螢光棒保護殼 (綠色) + 萤光棒保护壳 (绿色) Green reading light. @@ -275,6 +333,8 @@ 초록빛 조명 Lampe d'orientation verte. Luce da lettura Verde. + 綠色閱讀燈. + 绿色阅读灯. Chemlight Shield (Red) @@ -284,6 +344,8 @@ 켐라이트 쉴드 (빨강) Étui cyalume (rouge) Scudo Luce Chimica (Rossa) + 螢光棒保護殼 (紅色) + 萤光棒保护壳 (红色) Red reading light. @@ -293,6 +355,8 @@ 빨간색 조명 Lampe d'orientation rouge. Luce da lettura Rossa. + 紅色閱讀燈. + 红色阅读灯. Chemlight Shield (Blue) @@ -302,6 +366,8 @@ 켐라이트 쉴드 (파랑) Étui cyalume (bleu) Scudo Luce Chimica (Blu) + 螢光棒保護殼 (藍色) + 萤光棒保护壳 (蓝色) Blue reading light. @@ -311,6 +377,8 @@ 파란색 조명 Lampe d'orientation bleue. Luce da lettura Blu. + 藍色閱讀燈. + 蓝色阅读灯. Chemlight Shield (Yellow) @@ -320,6 +388,8 @@ 켐라이트 쉴드 (노랑) Étui cyalume (jaune) Scudo Luce Chimica (Gialla) + 螢光棒保護殼 (黃色) + 萤光棒保护壳 (黄色) Yellow reading light. @@ -329,6 +399,8 @@ 노란색 조명 Lampe d'orientation jaune. Luce da lettura Gialla. + 黃色閱讀燈. + 黄色阅读灯. Chemlight Shield (Orange) @@ -338,6 +410,8 @@ 켐라이트 쉴드 (주황) Étui cyalume (orange) Scudo Luce Chimica (Arancione) + 螢光棒保護殼 (橘色) + 萤光棒保护壳 (橘色) Orange reading light. @@ -347,6 +421,8 @@ 주황색 조명 Lampe d'orientation orange. Luce da lettura Arancione. + 橘色閱讀燈. + 橘色阅读灯. Chemlight Shield (White) @@ -356,6 +432,8 @@ 켐라이트 쉴드 (하양) Étui cyalume (blanc) Scudo Luce Chimica (Bianca) + 螢光棒保護殼 (白色) + 萤光棒保护壳 (白色) White reading light. @@ -365,6 +443,8 @@ 주황색 조명 Lampe d'orientation blanche. Luce da lettura Bianca. + 白色閱讀燈. + 白色阅读灯. diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index 462cafc1bab..a9cac3d4c6d 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -14,6 +14,8 @@ ACE-Team ACE-Team ACE-Team + ACE-製作團隊 + ACE-制作团队 Save @@ -28,6 +30,8 @@ Salva 保存 저장 + 儲存 + 储存 Cancel @@ -42,6 +46,8 @@ Annulla 中止 취소 + 取消 + 取消 ACE Options @@ -56,6 +62,8 @@ Opzioni ACE ACE オプション ACE 옵션 + ACE設定選項 + ACE设定选项 @@ -71,6 +79,8 @@ N + + NNE @@ -85,6 +95,8 @@ NNE 北北東 북북동 + 北北東 + 北北东 NE @@ -99,6 +111,8 @@ NE 北東 북동 + 東北 + 东北 ENE @@ -113,6 +127,8 @@ ENE 東北東 동북동 + 東北東 + 东北东 E @@ -127,6 +143,8 @@ E + + ESE @@ -141,6 +159,8 @@ ESE 東南東 동남동 + 東南東 + 东南东 SE @@ -155,6 +175,8 @@ SE 南東 남동 + 東南 + 东南 SSE @@ -169,6 +191,8 @@ SSE 南南東 남남동 + 南南東 + 南南东 S @@ -183,6 +207,8 @@ S + + SSW @@ -197,6 +223,8 @@ SSO 南南西 남남서 + 南南西 + 南南西 SW @@ -211,6 +239,8 @@ SO 南西 남서 + 西南 + 西南 WSW @@ -225,6 +255,8 @@ OSO 西南西 서남서 + 西南西 + 西南西 W @@ -239,6 +271,8 @@ O 西 + 西 + 西 WNW @@ -253,6 +287,8 @@ ONO 北北西 서북서 + 西北西 + 西北西 NW @@ -267,6 +303,8 @@ NO 北西 북서 + 西北 + 西北 NNW @@ -281,6 +319,8 @@ NNO 北北西 북북서 + 北北西 + 北北西 Action cancelled. @@ -295,6 +335,8 @@ Azione cancellata. 動作を中止した。 행동 취소됨. + 動作已被取消 + 动作已被取消 [ACE] Miscellaneous Items @@ -309,6 +351,8 @@ [ACE] Oggetti vari [ACE] その他のアイテム [ACE] 기타 물품. + [ACE] 雜項 + [ACE] 杂项 Disable Command Menu @@ -323,6 +367,8 @@ Desabilitar menu de comando 指揮メニューを無効化 지휘 메뉴 종료 + 關閉命令選單 + 关闭命令选单 Unknown @@ -337,6 +383,8 @@ Desconhecido 不明 알 수 없음 + 未知的 + 未知的 No Voice @@ -351,6 +399,8 @@ Sem voz 音声なし 무음 + 沒聲音 + 没声音 Accept Requests @@ -365,6 +415,8 @@ Accetta la richiesta 要求を受け入れ 요청 수락 + 接受請求 + 接受请求 Decline Requests @@ -379,6 +431,8 @@ Rifiuta la richiesta 要求を拒否 요청 거부 + 拒絕請求 + 拒绝请求 Accept Requests send by other players. These can be requests to use / share equipment, perform certain actions. @@ -393,6 +447,8 @@ Aceitar pedidos enviados por outros jogadores. Podem ser pedidos para usar/ compartilhar equipamento, realizar certas ações. 他プレイヤからの要求を許可します。他プレイヤは装備を共有し、使うなど特定の動作を行えます。 다른 플레이어가 보내온 요청을 수락합니다. 이것은 장비 사용 / 공유 요청, 특정 작업 수행 등이 될 수 있습니다. + 接受由其他玩家送出的請求. 包含使用/共享裝備與執行特定動作 + 接受由其他玩家送出的请求. 包含使用/共享装备与执行特定动作 Decline Requests send by other players. These can be requests to use / share equipment, perform certain actions. @@ -407,6 +463,8 @@ Rejeita pedidos enviados por outros jogadores. Podem ser pedidos para usar/ compartilhar equipamento, realizar certas ações. 他プレイヤからの要求を拒否します。他プレイヤは装備を共有し、使うなど特定の動作をできません。 다른 플레이어가 보내온 요청을 거부합니다. 이것은 장비 사용 / 공유 요청, 특정 작업 수행 등이 될 수 있습니다. + 拒絕由其他玩家送出的請求. 包含使用/共享裝備與執行特定動作 + 拒绝由其他玩家送出的请求. 包含使用/共享装备与执行特定动作 Feedback icons @@ -421,6 +479,8 @@ Ícones de Feedback フィードバック アイコン 피드백 아이콘 + 回饋圖標 + 回馈图标 Select the position of or disable the feedback icons on your screen. These icons will show to provide extra feedback on your character status and actions performed. @@ -435,6 +495,8 @@ Selecione a posição ou disabilite a posição dos ícones de feedback na sua tela. Esses ícones irão aparecer para mostrar feedback extra do status do seu personagem e ações realizadas. 画面上に表示するフィードバック アイコンの位置や無効化を選択できます。このアイコンは自キャラクター状態や動作の状況をフィードバックするために表示されています。 피드백 아이콘의 위치를 설정하거나 비활성화합니다. 피드백 아이콘은 캐릭터의 상세정보와 행동을 보여줍니다. + 選擇位置或取消回饋圖標顯示在螢幕上. 這些圖標將顯示出你角色額外的狀態與行動等資訊. + 选择位置或取消回馈图标显示在荧幕上. 这些图标将显示出你角色额外的状态与行动等资讯. Progress bar location @@ -449,6 +511,8 @@ Local da barra de progresso プログレス バーの位置 진행 막대의 위치 + 進度欄位置 + 进度栏位置 Set the desired location of the progress bar on your screen. @@ -463,6 +527,8 @@ Define o local desejado da barra de progresso na sua tela. 画面上に表示されるプログレス バーの位置を設定できます。 진행 막대를 원하는 곳에 배치합니다. + 設定進度欄在畫面中的位置 + 设定进度栏在画面中的位置 Hint Background color @@ -477,6 +543,8 @@ Cor do fundo da hint ヒントの背景色 힌트 배경색 + 提示的背景顏色 + 提示的背景颜色 The color of the background from the ACE hints. @@ -491,6 +559,8 @@ A cor de fundo das hints do ACE. ACE によるヒントの背景色を指定します。 ACE힌트의 배경색을 정합니다. + 設定ACE提示的背景顏色. + 设定ACE提示的背景颜色. Hint text font color @@ -505,6 +575,8 @@ Cor do do texto da hint ヒント文章の色 힌트 글씨색 + 提示文字的顏色 + 提示文字的颜色 The color of the text font from the ACE hints. This color is the default color for all text displayed through the ACE Hint system, if the hint text has no other color specified. @@ -519,6 +591,8 @@ A cor do texto das hints do ACE. Essa cor é a cor default para todos os texos exibidos pelo sistema de hints do ACE , caso o texto da hint não tem outra cor especificada. ACE によるヒントの文章へ、色を設定できます。この色は ACE ヒント システムを介して表示される全文章の色と標準でなっており、特定の色を設定していても、標準色になります。 ACE 힌트에 쓰이는 글씨 색입니다. 힌트 글씨의 색이 정해지지 않을경우 모든 힌트의 색은 기본으로 설정됩니다. + 設定ACE提示文字的顏色. 若提示字體並無指定其他顏色, 將會自動選用ACE系統的預設顏色 + 设定ACE提示文字的颜色. 若提示字体并无指定其他颜色, 将会自动选用ACE系统的预设颜色 Banana @@ -533,6 +607,8 @@ Banana 甘蕉 바나나 + 香蕉 + 香蕉 A banana is an edible fruit, botanically a berry, produced by several kinds of large herbaceous flowering plants in the genus Musa. @@ -547,6 +623,8 @@ A banana é uma fruta comestível, botanicamente uma baga, produzida por vários tipos de plantas herbáceas grandes do genero Musa. 甘蕉は食べられる果物でバショウ科バショウ属のうち、果実を食用とする品種群の総称。また、その果実のこと。いくつかの原種から育種された多年草。種によっては熟すまでは毒を持つものもある。 바나나는 식용 과일로써 식물학적으로 열매류이며 여러 종류의 개화가능한 초본의 파초과로 부터 생산됩니다. + 香蕉(學名: Musa × paradisiaca), 為芭蕉科芭蕉屬小果野蕉及野蕉的人工栽培雜交種, 為多年生草本植物. 果實長有棱; 果皮黃色, 果肉白色, 味道香甜. 主要生長在熱帶、亞熱帶地區. 原產於亞洲東南部熱帶、亞熱帶地區. + 香蕉(学名: Musa × paradisiaca), 为芭蕉科芭蕉属小果野蕉及野蕉的人工栽培杂交种, 为多年生草本植物. 果实长有棱; 果皮黄色, 果肉白色, 味道香甜. 主要生长在热带、亚热带地区. 原产于亚洲东南部热带、亚热带地区. Check PBOs @@ -561,6 +639,8 @@ Controlla PBO PBO を検査 PBO 검사 + 檢查PBO檔 + 检查PBO档 Check addon integrity with server and do selected action if an addon is missing. @@ -574,6 +654,8 @@ Controlla l'integrità degli addon con il server ed esegui l'azione selezionata se un addon è mancante サーバがアドオンの整合性を検査し、もし不備があれば実行する動作を選択できます。 서버 에드온의 무결성을 검사하고 사라진 에드온이 있을경우 행동을 선택합니다. + 檢查客戶端與伺服器端的模組清單是否一致且完整, 並提供訊息表示遺失的模組. + 检查客户端与伺服器端的模组清单是否一致且完整, 并提供讯息表示遗失的模组. Action @@ -588,6 +670,8 @@ Azione 動作 작동 + 動作 + 动作 What to do with people who do not have the right PBOs? @@ -602,6 +686,8 @@ Cosa fare con giocatori che non hanno i PBO corretti? プレイヤーが正しい PBO を持っていない場合は? 올바르지 않는 PBO를 가진 사람을 어떻게 할까요? + 若玩家沒有正確的PBO檔時, 將採取何種動作? + 若玩家没有正确的PBO档时, 将采取何种动作? Warn once @@ -616,6 +702,8 @@ Avverti una volta 一度の警告 경고 한 번 + 警告 (一次) + 警告 (一次) Warn (permanent) @@ -630,6 +718,8 @@ Avverti (permanente) 警告(永久的) 경고 (영구적) + 警告 (持續) + 警告 (持续) Kick @@ -644,6 +734,8 @@ Kick 排除 추방 + 踢除 + 踢除 Check all addons @@ -658,6 +750,8 @@ Controlla tutti gli addon 全アドオンを検査 모든 에드온 검사 + 檢查所有模組 + 检查所有模组 Check all addons instead of only those of ACE? @@ -672,6 +766,8 @@ Controlla tutti gli addon invece dei soli addon ACE? ACE MOD の代わりに全アドオンを検査しますか? ACE를 제외한 모든 모드를 검사할까요? + 檢查包含ACE之外的其他模組? + 检查包含ACE之外的其他模组? Whitelist @@ -686,6 +782,8 @@ Lista Bianca 許可制 화이트리스트 + 白名單 + 白名单 What addons are allowed regardless? @@ -700,6 +798,8 @@ Quali addon sono permessi in ogni caso? どのようなアドオンを許可しますか? 허가되는 에드온은 어느것입니까? + 哪些模組是可被允許/忽略的? + 哪些模组是可被允许/忽略的? LSD Vehicles @@ -714,6 +814,8 @@ Veicoli LSD LSD 車両 LSD 차량 + 迷幻載具 + 迷幻载具 Adds LSD effect to synchronized vehicle @@ -728,6 +830,8 @@ Aggiunge effetti LSD ai veicoli sincronizzati 同期されたオブジェクトに LSD の効果を追加します 동기화된 차량에 LSD효과를 추가합니다. + 使被同步的載具產生瘋狂的迷幻效果. (後果自負) + 使被同步的载具产生疯狂的迷幻效果. (后果自负) Toggle Handheld Device @@ -742,6 +846,8 @@ Apri dispositivo palmare デバイスを常に表示 휴대장치 토글 + 切換手持裝備 + 切换手持装备 Close Handheld Device @@ -756,6 +862,8 @@ Chiudi dispositivo palmare デバイスを閉じる 휴대장치 닫기 + 關閉手持裝備 + 关闭手持装备 Cycle Handheld Devices @@ -770,6 +878,8 @@ Cicla tra dispositivi palmari 表示するデバイスを変える 휴대장치 순환 + 循環切換手持裝備 + 循环切换手持装备 Disabled @@ -783,6 +893,8 @@ Desactivado 無効化 비활성화 + 停用 + 停用 Enabled @@ -796,6 +908,8 @@ Activado 有効化 활성화 + 啟用 + 启用 Yes @@ -810,6 +924,8 @@ Si はい + + No @@ -824,6 +940,8 @@ No いいえ 아니오 + + Vehicles only @@ -837,6 +955,8 @@ Vehicules seulement 車両のみ 차량 전용 + 只有載具 + 只有载具 Do Not Force @@ -850,6 +970,8 @@ Ne pas forcer 強制しない 강제하지 말것 + 不要強行 + 不要强行 ACE3 Equipment @@ -863,6 +985,8 @@ ACE3 Equipement ACE3 装備 ACE3 장비 + ACE3 裝備按鍵 + ACE3 装备按键 ACE3 Common @@ -876,6 +1000,8 @@ ACE3 Commun ACE3 全般 ACE3 일반 + ACE3 通用按鍵 + ACE3 通用按键 ACE3 Weapons @@ -889,6 +1015,8 @@ ACE3 Armes ACE3 武器 ACE3 무기 + ACE3 武器按鍵 + ACE3 武器按键 ACE3 Movement @@ -902,6 +1030,8 @@ ACE3 Mouvement ACE3 移動 ACE3 움직임 + ACE3 動作按鍵 + ACE3 动作按键 ACE3 Scope Adjustment @@ -915,6 +1045,8 @@ ACE3 Ajustement de la lunette ACE3 スコープ調節 ACE3 조준경 조정 + ACE3 瞄準鏡調節按鍵 + ACE3 瞄准镜调节按键 ACE3 Vehicles @@ -928,6 +1060,8 @@ ACE3 Vehicules ACE3 車両 ACE3 차량 + ACE3 載具按鍵 + ACE3 载具按键 No Room to unload @@ -940,6 +1074,8 @@ Sem espaço para descarregar Нет места для выгрузки 降ろすための空間がありません + 沒有空間可卸載 + 没有空间可卸载 Toggle @@ -954,6 +1090,8 @@ alternar トグル 토글 + 切換 + 切换 diff --git a/addons/concertina_wire/stringtable.xml b/addons/concertina_wire/stringtable.xml index 2bc0005a357..728fd9746db 100644 --- a/addons/concertina_wire/stringtable.xml +++ b/addons/concertina_wire/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Arame farpado 鉄条網 철조망 + 鐵絲網 + 铁丝网 Concertina Wire Coil @@ -28,6 +30,8 @@ Bobina de arame farpado 鉄条網コイル 윤형 철조망 + 鐵絲網捲 + 铁丝网卷 Dismount Concertina Wire @@ -42,6 +46,8 @@ Desmontar arame farpado 鉄条網をほどく 철조망 해체 + 卸下鐵絲網 + 卸下铁丝网 Deploy Concertina Wire @@ -56,6 +62,8 @@ Colocar arame farpado 鉄条網を置く 철조망 배치 + 佈署鐵絲網 + 布署铁丝网 diff --git a/addons/cookoff/stringtable.xml b/addons/cookoff/stringtable.xml index 8e8e41ff4f8..c27410ef1ba 100644 --- a/addons/cookoff/stringtable.xml +++ b/addons/cookoff/stringtable.xml @@ -11,6 +11,8 @@ Aktywuj efekty samozapłonu amunicji Active le cook-off Abilita Esplosione + 開啟殉爆效果 + 开启殉爆效果 Enables cook off and related vehicle destruction effects. @@ -22,6 +24,8 @@ Aktywuje efekt samozapłonu amunicji na zniszczonych pojazdach. Active le cook-off (autocombustion des munitions) et les effets de destruction liés. Abilita l'esplosione e i relativi effetti di distruzione del veicolo. + 開啟此功能後, 將使有關載具在損毀時有殉爆的效果. + 开启此功能后, 将使有关载具在损毁时有殉爆的效果. Wreck (Turret) @@ -36,6 +40,8 @@ Ruínas (torre) 잔해(포탑) 残骸(タレット) + 殘骸 (砲塔) + 残骸 (炮塔) Enable ammo box cook off @@ -45,6 +51,8 @@ Aktywuj samozapłon skrzyń z amunicją Cook-off caisses de munitions Abilita esplosione cassa munizioni + 開啟彈藥箱殉爆效果 + 开启弹药箱殉爆效果 Enables cooking off of ammo boxes. @@ -54,6 +62,8 @@ Aktywuje samozapłon skrzyń z amunicją Active le cook-off sur toutes les caisses de munitions. Abilita l'esplosione della cassa di munizioni. + 開啟彈藥箱殉爆效果. + 开启弹药箱殉爆效果. Enable Ammunition cook off @@ -63,6 +73,8 @@ Aktywuj samozapłon amunicji Active le cook-off des munitions Abilita Esplosione munizioni + 開啟彈藥殉爆效果 + 开启弹药殉爆效果 Enables Ammunition cook off. Fires ammunition projectiles while vehicle is on fire and has ammunition. @@ -71,6 +83,8 @@ Aktywuje samozapłon amunicji. Wystrzeliwuje pociski podczas gdy pojazd płonie i posiada amunicję. Mets à feu les munitions lorsqu'un véhicule est en feu et contient des munitions. Abilita l'esplosione delle munizioni. Spara munizioni di proiettili quando il veicolo va a fuoco e contiene munizioni. + 開啟彈藥殉爆效果. 當一台載有彈藥的載具起火時, 將會有殉爆的效果. + 开启弹药殉爆效果. 当一台载有弹药的载具起火时, 将会有殉爆的效果. Ammunition cook off duration @@ -78,6 +92,8 @@ 弾薬の誘爆持続時間 Durée cook-off des munitions Durata esplosione munizioni + 彈藥殉爆效果持續時間 + 弹药殉爆效果持续时间 Multiplier for how long cook off lasts [Setting to 0 will disable ammo cookoff] @@ -85,6 +101,8 @@ Mnożnik decydujący jak długo ma trwać samozapłon amunicji [Ustawienie na 0 spowoduje wyłącznie samozapłonu] 誘爆の持続時間を乗数で設定。[0 に設定で誘爆を無効化] Moltiplicatore della durata dell'esplosione [Impostare 0 disabiliterà l'esplosione delle munizioni] + 設定彈藥殉爆效果會持續多久時間 [輸入0來關閉殉爆效果] + 设定弹药殉爆效果会持续多久时间 [输入0来关闭殉爆效果] diff --git a/addons/dagr/stringtable.xml b/addons/dagr/stringtable.xml index e72e4f7770e..f7155562a82 100644 --- a/addons/dagr/stringtable.xml +++ b/addons/dagr/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,6 +13,8 @@ DAGR DAGR DAGR + 軍用GPS接收器 + 军用GPS接收器 Configure DAGR @@ -26,6 +28,8 @@ Configurer le DAGR DAGR を設定 DAGR 설정 + 軍用GPS接收器設定 + 军用GPS接收器设定 Toggle DAGR @@ -39,6 +43,8 @@ Activer/Desactiver le DAGR DAGR を常に表示 DAGR 토글 + 切換軍用GPS接收器 + 切换军用GPS接收器 Defense Advanced GPS Receiver @@ -52,6 +58,8 @@ Defense Advanced GPS Receiver アドバンスド DAGR の受信を定義します 국방 고급위성항법시스템 수신기 + 軍用高級防禦GPS接收器 + 军用高级防御GPS接收器 diff --git a/addons/disarming/stringtable.xml b/addons/disarming/stringtable.xml index eaf572cc562..a7fc003f653 100644 --- a/addons/disarming/stringtable.xml +++ b/addons/disarming/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Abrir inventário インベントリを開く 소지품 열기 + 開啟裝備 + 开启装备 diff --git a/addons/disposable/stringtable.xml b/addons/disposable/stringtable.xml index 3d9df039a15..782abbd9dce 100644 --- a/addons/disposable/stringtable.xml +++ b/addons/disposable/stringtable.xml @@ -14,6 +14,8 @@ Tubo utilizado 使用済み 사용함 + 使用過的火箭筒 + 使用过的火箭筒 Used disposable rocket launcher @@ -28,6 +30,8 @@ Lança foguetes descartável utilizado 使い終わったロケット ランチャーの筒部分 사용한 일회용 발사관 + 使用過的一次性火箭發射器 + 使用过的一次性火箭发射器 Preloaded Missile Dummy @@ -42,6 +46,8 @@ Míssel inerte pré-carregado 仮置きのミサイルをあらかじめ装填 임시로 미사일을 미리 장전 + 預裝訓練導彈 + 预装训练导弹 diff --git a/addons/dogtags/stringtable.xml b/addons/dogtags/stringtable.xml index 5aa5d80a4e7..edcfa14553c 100644 --- a/addons/dogtags/stringtable.xml +++ b/addons/dogtags/stringtable.xml @@ -11,6 +11,8 @@ 군번줄 Plaque d'identification Piastrina + 兵籍牌 + 兵籍牌 Check Dog Tag @@ -22,6 +24,8 @@ 군번줄 확인 Vérifier les plaques d'identification Controlla Piastrina + 檢查兵籍牌 + 检查兵籍牌 Check @@ -33,6 +37,8 @@ 확인 Vérifier Controlla + 檢查 + 检查 Take @@ -44,6 +50,8 @@ 회수 Prendre Prendi + 拿取 + 拿取 Dogtag taken from %1... @@ -55,6 +63,8 @@ %1로부터 군번줄을 회수했습니다... Plaque d'identification pris sur %1... Piastrina presa da %1... + 從%1身上拿取兵籍牌... + 从%1身上拿取兵籍牌... Somebody else has already taken the dogtag... @@ -66,6 +76,8 @@ 누군가 이미 군번줄을 회수해갔습니다... Quelqu'un d'autre a déjâ pris les plaques d'identification... Qualcun altro ha già preso la piastrina... + 已經有人把他的兵籍牌拿走了... + 已经有人把他的兵籍牌拿走了... diff --git a/addons/dragging/stringtable.xml b/addons/dragging/stringtable.xml index 50b5947ac97..8d657be92ee 100644 --- a/addons/dragging/stringtable.xml +++ b/addons/dragging/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Húzás 引きずる 끌기 + 拖拉 + 拖拉 Release @@ -28,6 +30,8 @@ Elengedés はなす 놓기 + 放開 + 放开 Drag/Release Object @@ -42,6 +46,8 @@ Húzás/Elengedés Objektum オブジェクトを引きずる/はなす 물건 끌기/놓기 + 拖拉/放開物品 + 拖拉/放开物品 Item too heavy @@ -56,6 +62,8 @@ Az objektum túl nehéz アイテムが重すぎる 물체가 너무 무겁습니다 + 此物品過重 + 此物品过重 Carry @@ -70,6 +78,8 @@ Нести 運ぶ 업기 + 背起 + 背起 Raise/Lower @@ -83,6 +93,8 @@ Lever/Baisser 上げる/下げる 높이기/낮추기 + 提高/下降 + 提高/下降 diff --git a/addons/explosives/stringtable.xml b/addons/explosives/stringtable.xml index e0cb44badf0..5100ea4849c 100644 --- a/addons/explosives/stringtable.xml +++ b/addons/explosives/stringtable.xml @@ -14,6 +14,8 @@ Взрывчатка 爆発物 폭발물 + 炸药 + 炸藥 Place @@ -28,6 +30,8 @@ Установить 設置 설치 + 放置 + 放置 Detonate @@ -42,6 +46,8 @@ Подрыв 点火 폭파 + 引爆 + 引爆 Detonate All @@ -55,6 +61,8 @@ Detonar Tudo すべて点火 모두 폭파 + 引爆全部 + 引爆全部 Explosive code: %1 @@ -69,6 +77,8 @@ Codice esplosivo: %1 爆破コード: %1 폭파 코드: %1 + 炸药代码: %1 + 炸藥代碼: %1 Place @@ -83,6 +93,8 @@ Установить 設置 설치 + 放置 + 放置 Attach @@ -97,6 +109,8 @@ Прикрепить 取り付け 부착 + 连接 + 連接 Blocked @@ -110,6 +124,8 @@ Bloqué 取り付けできない 막힘 + 断开 + 斷開 Cancel @@ -124,6 +140,8 @@ Отмена 中止 취소 + 取消 + 取消 Rotate @@ -138,6 +156,8 @@ Bращать 向きを変える 회전 + 旋转 + 旋轉 Turn On Thor III @@ -152,6 +172,8 @@ Активировать Thor III Thor III を使う Thor III 켜기 + 开启索尔三型 + 開啟索爾三型 Turn Off Thor III @@ -166,6 +188,8 @@ Деактивировать Thor III Thor III を止める Thor III 끄기 + 关闭索尔三型 + 關閉索爾三型 Cellphone @@ -180,6 +204,8 @@ Сотовый телефон 携帯電話 휴대전화 + 手机 + 手機 Used to remotely trigger explosives @@ -194,6 +220,8 @@ Используется для удаленной детонации СВУ 爆発物を遠隔で起爆させるのに使います 원격으로 폭발물을 폭파시킬때 씁니다. + 用于远端引爆炸药 + 用於遠端引爆炸藥 M57 Firing Device @@ -208,6 +236,8 @@ Взрыватель M57 M57 起爆装置 M57 격발기 + M57 引爆装置 + M57 引爆裝置 Used to remotely trigger explosives @@ -222,6 +252,8 @@ Используется для удаленной детонации зарядов 爆発物を遠隔で起爆させるのに使います 원격으로 폭발물을 폭파시킬때 씁니다. + 用于远端引爆炸药 + 用於遠端引爆炸藥 M152 Firing Device @@ -236,6 +268,8 @@ Взрыватель M152 M152 起爆装置 M152 격발기 + M152 引爆装置 + M152 引爆裝置 M152 RAMS @@ -250,6 +284,8 @@ M152 RAMS M152 RAMS M152 RAMS + M152 远端炸药引爆系统 + M152 遠端炸藥引爆系統 Defusal Kit @@ -264,6 +300,8 @@ Комплект разминирования 解除キット 해체 장비 + 拆弹工具 + 拆彈工具 Allows defusing of explosives @@ -278,6 +316,8 @@ Позволяет обезвреживать взрывчатку 爆発物を無力化できます 폭발물을 해체할 수 있게 해줍니다 + 可以用来拆除炸弹 + 可以用來拆除炸彈 Add to Speed Dial @@ -292,6 +332,8 @@ Добавить в быстрый вызов 短縮ダイアルに追加 단축키에 지정 + 增加到快速拨号 + 增加到快速撥號 Clear @@ -306,6 +348,8 @@ Очистить 消去 삭제 + 清除 + 清除 Dial @@ -320,6 +364,8 @@ Hабрать ダイアル 다이얼 + 拨号 + 撥號 Up @@ -334,6 +380,8 @@ Вызов 上へ + + Down @@ -348,6 +396,8 @@ Сброс 下へ 아래 + + Cancel @@ -362,6 +412,8 @@ Отмена 中止 취소 + 取消 + 取消 Detonate Menu @@ -376,6 +428,8 @@ Меню подрыва 点火メニュー 폭파 메뉴 + 引爆选单 + 引爆選單 Place Menu @@ -390,6 +444,8 @@ Меню установки 設置メニュー 설치 메뉴 + 放置选单 + 放置選單 Defuse @@ -404,6 +460,8 @@ Обезвредить 無力化 해체 + 拆除 + 拆除 Defusing Explosive... @@ -418,6 +476,8 @@ Обезвреживание... 爆発物を無力化中・・・ 폭발물 해체중... + 炸弹拆除中... + 炸彈拆除中... Timer @@ -432,6 +492,8 @@ Таймер タイマー 타이머 + 计时器 + 計時器 Time: %1m %2s @@ -446,6 +508,8 @@ Время: %1m %2c 設定時間: %1分 %2秒 시간: %1분 %2초 + 时间: %1分%2秒 + 時間: %1分%2秒 Set Time @@ -460,6 +524,8 @@ Установить время 時間を設定 시간 설정 + 设定时间 + 設定時間 Select a Trigger @@ -474,6 +540,8 @@ Выберите детонатор 点火装置を選択 작동방식 선택 + 选择一个触发器 + 選擇一個觸發器 Select @@ -488,6 +556,8 @@ Выбрать 選択 선택 + 选择 + 選擇 Pressure Plate @@ -502,6 +572,8 @@ Нажимная плита 圧力感知式 압력식 + 压力盘 + 壓力盤 Tripwire @@ -516,6 +588,8 @@ Растяжка 仕掛け線 인계철선 + 绊线 + 絆線 IR Sensor @@ -530,6 +604,8 @@ ИК сенсор 赤外線感知式 적외선 센서 + 红外线感应器 + 紅外線感應器 No triggers available for %1 @@ -544,6 +620,8 @@ Нет доступных взрывателей для %1 %1 につかえる点火装置がありません %1(을)를 작동할 장치가 없습니다. + 没有适合%1的触发器 + 沒有適合%1的觸發器 IR Sensor (Side Attack) @@ -558,6 +636,8 @@ ИК сенсор (детонация вбок) 赤外線感知式 (横からの攻撃) 적외선 센서 (측면 공격) + 红外线感应器 (侧边攻击) + 紅外線感應器 (側邊攻擊) Magnetic Influence Sensor (Bottom Attack) @@ -572,6 +652,8 @@ Магнитный сенсор (детонация вверх) 磁気感知式 (下からの攻撃) 자기장 감지센서 (바닥 공격) + 磁性感应器 (底部攻击) + 磁性感應器 (底部攻擊) No explosives on trigger. @@ -586,6 +668,8 @@ Взрыватель не подсоединён к взрывчатке 点火装置に爆発物がありません。 격발기에 등록된 폭발물이 없습니다. + 触发器上并没有炸药 + 觸發器上並沒有炸藥 Dead Man's Switch @@ -600,6 +684,8 @@ Detonatore a rilascio 自爆装置 자폭 장치 + 自杀炸弹客引爆器 + 自殺炸彈客引爆器 Used to remotely trigger explosives when released. @@ -614,6 +700,8 @@ Usato per attivare a distanza esplosivi al momento del rilascio 点火装置を離すと遠隔で起爆したいときに使います。 압력이 해제될때 원격으로 폭발시킵니다. + 当放开按钮时, 将会引爆炸弹. + 當放開按鈕時, 將會引爆炸彈. Pick up @@ -628,6 +716,8 @@ Pegar 拾う 줍기 + 捡起 + 撿起 Explosive System @@ -642,6 +732,8 @@ Sistema Esplosivi 爆発システム 폭발물 시스템 + 炸药系统 + 炸藥系統 Require specialists? @@ -656,6 +748,8 @@ Richiedi specialisti? 特技兵を必要としますか? 전문가가 필요합니까? + 需要专家? + 需要專家? Require explosive specialists to disable explosives? Default: No @@ -670,6 +764,8 @@ Richiedi specialisti esplosivi per disabilitare esplosivi? Default: No 爆発物を無効化するには、爆発物の特技兵を必要としますか?標準:いいえ 폭발물을 해제하기 위해서는 전문가가 필요합니까? 기본설정: 아니요 + 需要炸弹专家才能拆除炸弹? 预设: 否 + 需要炸彈專家才能拆除炸彈? 預設: 否 Punish non-specialists? @@ -684,6 +780,8 @@ Punisci non-specialisti? 非特技兵へ足かせを与えますか? 비-전문가에 불이익을 줍니까? + 折磨非专业人员? + 折磨非專業人員? Increase the time it takes to complete actions for non-specialists? Default: Yes @@ -698,6 +796,8 @@ Aumenta il tempo richiesto per completare azioni per non-specialisti? Default: Si 非特技兵は動作を完了する必要を増加させますか?標準:はい 비-전문가가 폭발물을 해제시 더욱 많은 시간을 소요합니까? 기본설정: 예 + 增加非专业人员相关操作的时间? 预设: 是 + 增加非專業人員相關操作的時間? 預設: 是 Explode on defusal? @@ -712,6 +812,8 @@ Fai esplodere quando disarmato? 解除時に爆発させますか? 해제시 폭발합니까? + 拆除时引爆? + 拆除時引爆? Enable certain explosives to explode on defusal? Default: Yes @@ -726,6 +828,8 @@ Abilita alcuni esplosivi per esplosione al disarmo? Default: Si 特定の爆発物へ、解除時に爆発させますか?標準:はい 특정 폭발물이 해제시 폭발하게 합니까? 기본설정: 예 + 启用后, 某些炸弹会在拆除时引爆? 预设: 是 + 啟用後, 某些炸彈會在拆除時引爆? 預設: 是 This module adjusts the settings related to explosives. @@ -740,6 +844,8 @@ Questo modulo cambia le impostazioni relative agli esplosivi このモジュールを調節し爆発物に設定を反映させます。 이 모듈은 폭발물에 관한 설정을 수정할 수 있게합니다. + 此模块用来调整炸药的相关设定 + 此模塊用來調整炸藥的相關設定 M6 SLAM Mine (Bottom Attack) @@ -760,6 +866,8 @@ Мина M6 SLAM (направлена вверх) M6 SLAM 地雷 (下からの攻撃) M6 SLAM 지뢰 (바닥 공격) + M6指向性反装甲地雷 (底部攻击) + M6指向性反裝甲地雷 (底部攻擊) M6 SLAM Mine (Side Attack) @@ -780,6 +888,8 @@ Мина M6 SLAM (направлена вбок) M6 SLAM 地雷 (横からの攻撃) M6 SLAM 지뢰 (측면 공격) + M6指向性反装甲地雷 (侧边攻击) + M6指向性反裝甲地雷 (側邊攻擊) Large IED (Urban, Pressure Plate) @@ -800,6 +910,8 @@ Большое СВУ (городское, нажимного действия) 大きな IED (市街地用、圧力感知) 대형 급조폭발물 (시가지, 압력식) + 大型简易爆炸装置 (地表上, 压力盘) + 大型簡易爆炸裝置 (地表上, 壓力盤) Large IED (Dug-in, Pressure Plate) @@ -820,6 +932,8 @@ Большое СВУ (закопанное, нажимного действия) 大きな IED (埋め込み型、圧力感知) 대형 급조폭발물 (묻힘, 압력식) + 大型简易爆炸装置 (地表下, 压力盘) + 大型簡易爆炸裝置 (地表下, 壓力盤) Small IED (Urban, Pressure Plate) @@ -840,6 +954,8 @@ Малое СВУ (городское, нажимного действия) 小さな IED (市街地用、圧力感知) 소형 급조폭발물 (시가지, 압력식) + 小型简易爆炸装置 (地表上, 压力盘) + 小型簡易爆炸裝置 (地表上, 壓力盤) Small IED (Dug-in, Pressure Plate) @@ -860,6 +976,8 @@ Малое СВУ (закопанное, нажимного действия) 小さな IED (埋め込み型、圧力感知) 소형 급조폭발물 (묻힘, 압력식) + 小型简易爆炸装置 (地表下, 压力盘) + 小型簡易爆炸裝置 (地表下, 壓力盤) Connect to %1 @@ -874,6 +992,8 @@ Conectar à %1 %1 へ接続 %1에 연결중 + 连接到%1 + 連接到%1 Tripwire Flare @@ -884,6 +1004,8 @@ 조명지뢰 Fusée éclairante avec fil de détente Cavo d'innesco + 绊线闪光地雷 + 絆線閃光地雷 Type: Tripwire flare - Ignites a non-lethal flare when triggered.<br />Rounds: 1<br />Used on: Ground @@ -894,6 +1016,8 @@ 종류: 조명지뢰 - 작동시 무해한 조명을 사출합니다.<br />장탄수: 1<br />사용처: 지면 Type : Fusée éclairante avec fil de détente - Allume une fusée éclairante lorsque déclenché. <br />Coups : 1<br />Utilisé sur : le sol Tipo: Cavo d'innesco - Sfocio un abbaglio non letale quanto attivato. <br />Rimanenti: 1<br />Usato: A terra + 类型: 绊线闪光地雷 - 触发后产生非致命性的强光.<br />发数: 1<br />使用于: 地面 + 類型: 絆線閃光地雷 - 觸發後產生非致命性的強光.<br />發數: 1<br />使用於: 地面 diff --git a/addons/fastroping/stringtable.xml b/addons/fastroping/stringtable.xml index 26573f3e0d4..8f1188b06ef 100644 --- a/addons/fastroping/stringtable.xml +++ b/addons/fastroping/stringtable.xml @@ -13,6 +13,8 @@ Десантирование по канатам FRIES を装備 FRIES 장착 + 启用快速绳降及撤离系统 + 啟用快速繩降及撤離系統 Equips compatible helicopters with a Fast Rope Insertion Extraction System. @@ -26,6 +28,8 @@ Снаряжает совместимые вертолеты оборудованием для спуска десанта по канатам. ヘリコプターで Fast Rope Insertion Extraction System を使えるようにします 패스트로프 투입 및 탈출 시스템을 호환되는 헬리콥터에 적용합니다. + 使可相容的直升机启用快速绳降及撤离系统 + 使可相容的直升機啟用快速繩降及撤離系統 Prepare fast roping system @@ -39,6 +43,8 @@ Подготовить канаты ファスト ロープのシステムを準備 패스트로프 준비 + 准备快速绳降系统 + 準備快速繩降系統 Deploy ropes @@ -52,6 +58,8 @@ Зацепить канаты ロープを展開 줄 배치 + 部属绳索 + 部屬繩索 Fast rope @@ -65,6 +73,8 @@ Спуститься по канату ファスト ロープをする 강하하기 + 快速绳降 + 快速繩降 Cut ropes @@ -78,6 +88,8 @@ Обрезать канаты ロープを切断 줄 자르기 + 剪掉绳索 + 剪掉繩索 Equip helicopter with FRIES @@ -91,6 +103,8 @@ Снарядить вертолет канатами для спуска ヘリコプターへ FRIES を装備 헬리콥터에 FRIES 장착 + 启用快速绳降及撤离系统给指定的直升机 + 啟用快速繩降及撤離系統給指定的直升機 Equips the selected helicopter with a Fast Rope Insertion Extraction System @@ -104,6 +118,8 @@ Снаряжает выбранный вертолет оборудованием для спуска десанта по канатам 選択されたヘリコプターで Fast Rope Insertion Extraction System を使えるようにします。 선택된 헬리콥터에 패스트로프 투입 및 탈출 시스템을 장착합니다. + 使指定的直升机启用快速绳降及撤离系统 + 使指定的直升機啟用快速繩降及撤離系統 LET UNITS FAST ROPE @@ -114,6 +130,8 @@ ДЕСАНТИРОВАНИЕ ПО КАНАТУ ユニットへファスト ロープをさせる ZJAZD NA LINACH + 让单位快速绳降 + 讓單位快速繩降 diff --git a/addons/fcs/stringtable.xml b/addons/fcs/stringtable.xml index 2418d649ce1..2c5cef86241 100644 --- a/addons/fcs/stringtable.xml +++ b/addons/fcs/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Marcar com laser / Medir Distância レーザー ターゲット / 計測距離 목표까지 거리를 레이저로 취득 + 雷射指示目标 / 测量距离 + 雷射指示目標 / 測量距離 Zeroed To @@ -28,6 +30,8 @@ Azzeramento a 次にゼロイン 영점 조절 + 归零到 + 歸零到 Adjust FCS Range (Up) @@ -42,6 +46,8 @@ Диапазон СУО (Выше) FCS による距離を調節 (上げ) 사통장치 거리 조정 (위로) + 调整火控系统距离 (上) + 調整火控系統距離 (上) Adjust FCS Range (Down) @@ -56,6 +62,8 @@ Диапазон СУО (Ниже) FCS による距離を調節 (下げ) 사통장치 거리 조정 (아래로) + 调整火控系统距离 (下) + 調整火控系統距離 (下) Reset FCS @@ -70,6 +78,8 @@ Обнулить СУО FCS を初期化 사통장치 초기화 + 重置火控系统 + 重置火控系統 FCS has been reset. @@ -84,6 +94,8 @@ СУО обнулен. FCS は初期化された 사통장치 초기화됨 + 火控系统已被重置 + 火控系統已被重置 diff --git a/addons/finger/stringtable.xml b/addons/finger/stringtable.xml index c447e894cfc..ef5de545c9a 100644 --- a/addons/finger/stringtable.xml +++ b/addons/finger/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Mostra puntatore per te stesso 自分にポインティング表記を表示する 자신이 가리키는곳을 보여줍니다 + 显示指向指示器给自己 + 顯示指向指示器給自己 Render the indicator for the pointing player. This option doesn't affect whether the other players would see the indicator @@ -28,6 +30,8 @@ Mostra puntatore per il giocatore indicato. Questa opzione non influisce la possibilità che gli altri giocatori vedano il puntatore プレイヤーへのポインティング表記を描画します。このオプションは他のプレイヤーの表記に影響しません。 대상이 가리키는곳을 보이게 합니다. + 显示指向指示器给玩家自己. 此选项设定并不影响其他玩家能否看到指示器. + 顯示指向指示器給玩家自己. 此選項設定並不影響其他玩家能否看到指示器. Pointing indicator @@ -42,6 +46,8 @@ Indicatore di puntamento ポインティング表記 가리키기 표시기 + 指向指示器 + 指向指示器 Color of the pointing indicator circle @@ -56,6 +62,8 @@ Colore del cerchio dell'indicatore di puntamento ポインティング表記の円の色 가리키기의 원형 색상 + 指向指示器颜色 + 指向指示器顏色 Action "point a finger at" @@ -70,6 +78,8 @@ Azione "punta il dito a" "point a finger at"キー "손가락으로 가리키기"행동 + 使"手指指向在" + 使"手指指向在" Points, and shows a virtual marker of where you are looking to nearby units. Can be held down. @@ -84,6 +94,8 @@ Punta e mostra un marker virtuale di dove stai guardando alle unità vicine. Può essere tenuto premuto. ポイント、そして架空のマーカー表記は自ユニットの近くにいると表記されます。これは押しっぱなしにできます。 당신이 보는것을 가상의 마커로 표시함으로서 다른 인원이 볼 수 있게 합니다. 누른채로 유지할 수 있습니다. + 当按下此按键后, 你附近的单位即可看见一个虚拟图示, 标明你正在指向的位置. 此按键可以被按住来持续显示. + 當按下此按鍵後, 你附近的單位即可看見一個虛擬圖示, 標明你正在指向的位置. 此按鍵可以被按住來持續顯示. Pointing Settings @@ -98,6 +110,8 @@ Impostazioni puntamento ポインティング設定 가리키기 설정 + 指向设定 + 指向設定 Pointing Enabled @@ -112,6 +126,8 @@ Puntamento abilitato ポインティングを有効 가리키기 활성화 + 指向系统启动 + 指向系統啟動 Pointing Max Range @@ -126,6 +142,8 @@ Raggio massimo puntamento ポインティングの最大範囲 가리키기 최대 범위 + 指向指示器最大显示距离 + 指向指示器最大顯示距離 Max range between players to show the pointing indicator [default: 4 meters] @@ -140,6 +158,8 @@ Distanza massima tra giocatori per mostrare l'indicatore di puntamento [default: 4 metri] ポインティング表記が他のプレイヤーに表示される範囲を決定できます。(標準 4 メートル) 플레이어 사이에서 가리키기 표시를 보이게 하는 최대거리를 설정합니다[기본설정: 4 미터] + 设定指向指示器最大显示距离. [预设: 4公尺] + 設定指向指示器最大顯示距離. [預設: 4公尺] diff --git a/addons/flashlights/stringtable.xml b/addons/flashlights/stringtable.xml index 2a411e91580..b6ba53aff7c 100644 --- a/addons/flashlights/stringtable.xml +++ b/addons/flashlights/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,6 +13,8 @@ Fulton MX-991 Fulton MX-991 Fulton MX-991 + Fulton MX-991 + Fulton MX-991 Flashlight with red filter. For use on map. @@ -26,6 +28,8 @@ Lampe torche avec un filtre rouge. Pour utilisation sur carte. 赤色フィルタ付きのフラッシュライト。地図上でつかいます。 빨간색 필터가 달린 손전등입니다. 지도를 비출때 씁니다. + 拥有红色滤光片的手电筒. 用来照亮地图. + 擁有紅色濾光片的手電筒. 用來照亮地圖. Maglite XL50 @@ -39,6 +43,8 @@ Maglite XL50 Maglite XL50 Maglite XL50 + Maglite XL50 + Maglite XL50 White mini flashlight. For use on map. @@ -52,6 +58,8 @@ Mini lampe torche blanche. Pour utilisation sur carte. 白色光の小さなフラッシュライト。地図上でつかいます。 하얀색 조그마한 손전등. 지도를 비출때 씁니다. + 白色的迷你手电筒. 用来照亮地图. + 白色的迷你手電筒. 用來照亮地圖. KSF-1 @@ -65,6 +73,8 @@ KSF-1 KSF-1 KSF-1 + KSF-1 + KSF-1 Flashlight with red filter. For use on map. @@ -78,6 +88,8 @@ Lampe torche avec un filtre rouge. Pour utilisation sur carte. 赤色フィルタ付きのフラッシュライト。地図上でつかいます。 빨간색 필터가 달린 손전등입니다. 지도를 비출때 씁니다. + 拥有红色滤光片的手电筒. 用来照亮地图. + 擁有紅色濾光片的手電筒. 用來照亮地圖. diff --git a/addons/flashsuppressors/stringtable.xml b/addons/flashsuppressors/stringtable.xml index e35d4421369..8a7bda4d55e 100644 --- a/addons/flashsuppressors/stringtable.xml +++ b/addons/flashsuppressors/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Bocacha (6,5 mm) 消炎器 (6.5 mm) 소염기 (6.5 mm) + 消光器 (6.5 mm) + 消光器 (6.5 mm) Flash Suppressor (7.62 mm) @@ -28,6 +30,8 @@ Bocacha (7,62 mm) 消炎器 (7.62 mm) 소염기 (7.62 mm) + 消光器 (7.62 mm) + 消光器 (7.62 mm) Flash Suppressor (5.56 mm) @@ -42,6 +46,8 @@ Bocacha (5,56 mm) 消炎器 (5.56 mm) 소염기 (5.56 mm) + 消光器 (5.56 mm) + 消光器 (5.56 mm) Flash Suppressor (.45 ACP) @@ -56,6 +62,8 @@ Bocacha (.45 ACP) 消炎器 (.45 ACP) 소염기 (.45 ACP) + 消光器 (.45 ACP) + 消光器 (.45 ACP) Flash Suppressor (9 mm) @@ -70,6 +78,8 @@ Bocacha (9 mm) 消炎器 (9 mm) 소염기 (9 mm) + 消光器 (9 mm) + 消光器 (9 mm) Flash Suppressor (.338) @@ -84,6 +94,8 @@ Bocacha (.338) 消炎器 (.338) 소염기 (.338) + 消光器 (.338) + 消光器 (.338) Flash Suppressor (9.3 mm) @@ -98,6 +110,8 @@ Bocacha (9,3 mm) 消炎器 (9.3 mm) 소염기 (9.3 mm) + 消光器 (9.3 mm) + 消光器 (9.3 mm) diff --git a/addons/frag/stringtable.xml b/addons/frag/stringtable.xml index 8429cad3b33..2ab13ba13d8 100644 --- a/addons/frag/stringtable.xml +++ b/addons/frag/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Simulazione Frammentazione 破片シミュレーション 조각 시뮬레이션 + 模拟碎片 + 模擬碎片 Fragmentation Simulation @@ -28,6 +30,8 @@ Simulazione Frammentazione 破片シミュレーション 조각 시뮬레이션 + 模拟碎片 + 模擬碎片 Enable the ACE Fragmentation Simulation @@ -42,6 +46,8 @@ Abilita la Simulazione Frammentazione di ACE ACE 破片シミュレーションを有効化 ACE 조각 시뮬레이션을 적용합니다. + 启用ACE模拟碎片 + 啟用ACE模擬碎片 Spalling Simulation @@ -56,6 +62,8 @@ Simulazione Spalling 剥離シミュレーション 파편 시뮬레이션 + 模拟剥落 + 模擬剝落 Enable the ACE Spalling Simulation @@ -70,6 +78,8 @@ Abilita la Simulazione Spalling di ACE ACE 剥離シミュレーションを有効化 ACE 파편 시뮬레이션을 적용합니다. + 启用ACE模拟剥落 + 啟用ACE模擬剝落 Explosion Reflections Simulation @@ -82,6 +92,8 @@ Cимуляция отражения взрывов ACE 爆発による飛翔シミュレーション 폭발 반사 시뮬레이션 + 模拟爆炸反射 + 模擬爆炸反射 Enable the ACE Explosion Reflection Simulation @@ -94,6 +106,8 @@ Включить симуляцию отражения взрывов ACE 爆発による飛翔シミュレーションを有効化 ACE 폭발 반사 시뮬레이션을 적용합니다. + 启用ACE模拟爆炸反射 + 啟用ACE模擬爆炸反射 Maximum Projectiles Tracked @@ -108,6 +122,8 @@ Numero massimo di Proiettili Tracciati 最大弾頭追跡数 최대 발사체 추적수 + 最大碎片/剥落粒子追踪数量 + 最大碎片/剝落粒子追蹤數量 This setting controls the maximum amount of projectiles the fragmentation and spalling system will track at any given time. If more projectiles are fired, they will not be tracked. Lower this setting if you do not want FPS drops at high-count projectile scenarios ( >200 rounds in the air at once) @@ -122,6 +138,8 @@ Questo parametro controlla il numero massimo di proiettili che la frammentazione e il sistema di spalling tracciano in ogni momento. Se più proiettili sono sparati, non verranno tracciati. Abbassa questo parametro se non vuoi cali di FPS in scenari con molti proiettili (>200 proiettili in aria contemporaneamente) 時間が許すかぎり、破片と剥離システムの最大数を設定できます。設定数以上の弾丸が発射された場合、それは対象になりません。もし多い弾数による FPS の低下を望まない場合は、低い数へ設定にします。( &gt;一度に空中内で200発) 이 설정은 조각 및 파편 시스템으로 인해 생긴 발사체의 수를 결정합니다. 만약 더 많은 발사체가 나올경우 정해진 수 이외에는 추적하지 않습니다. 이 설정을 낮춤으로써 파편이 많은 시나리오를 실행할때 더욱 원활히 진행할 수 있습니다 (한 번에 200개 이하) + 设定在指定时间内, 系统最大可追踪的碎片/剥落粒子数量. 如有更多的碎片在这之后产生, 这些粒子将不会被追踪. 如果你想要维持好的帧数, 此设定勿调的过高. ( >一次200颗粒子) + 設定在指定時間內, 系統最大可追蹤的碎片/剝落粒子數量. 如有更多的碎片在這之後產生, 這些粒子將不會被追蹤. 如果你想要維持好的幀數, 此設定勿調的過高. ( >一次200顆粒子) Maximum Projectiles Per Frame @@ -136,6 +154,8 @@ Numero massimo di proiettili per Frame フレームごとの最大弾頭数 프레임당 최대 발사체 수 + 每一帧数(FPS)最大碎片/剥落粒子数量 + 每一幀數(FPS)最大碎片/剝落粒子數量 The number of spall track calculations to perform in any given frame. This helps spread the FPS impact of tracking spall rounds across multiple frames, limiting its impact even further. @@ -150,6 +170,8 @@ Il numero di calcoli per tracciamento di spalling ad ogni frame. Questo aiuta a distribuire l'impatto del tracciamento dello spalling su più frame, limitando ancora di più l'impatto. 与えられたフレームごとに追跡する剥離の数を決定します。FPS に影響をあたえないよう、剥離を複数のフレームで追跡し、分散させています。 가능한 프레임마다 파편을 추적 및 계산합니다. 여러 프레임에 걸쳐 파편난 발사체를 추적하여 FPS에 도움을 줍니다. 이를 제한함으로써 더욱 큰 효과를 볼 수 있습니다. + 设定在每一帧数内, 系统最大可追踪的碎片/剥落粒子数量. 此设定可有效帮助系统减低计算压力. + 設定在每一幀數內, 系統最大可追蹤的碎片/剝落粒子數量. 此設定可有效幫助系統減低計算壓力. (SP Only) Frag/Spall Debug Tracing @@ -164,6 +186,8 @@ (Solo SP) Debug Tracciamento Frag/Spall (SP のみ) 破片/剥離のデバッグ用表示 (싱글플레이 전용) 조각/파편 디버그 추적화 + (仅在单人模式) 碎片/剥落除错追踪 + (僅在單人模式) 碎片/剝落除錯追蹤 (SP Only) Requires a mission/editor restart. Enables visual tracing of fragmentation and spalling rounds in SP game mode only. @@ -177,6 +201,8 @@ (Только для одиночной игры) Требует перезапуска миссии/редактора. Включает визуальные следы от осколков и обломков в режиме одиночной игры. (Solo SP) Richiede un restart editor/missione. Abilita il tracciamento visivo di schegge da frammentazione/spalling in modalità Giocatore Singolo. (SP のみ) ミッションとエディタの再起動が必要です。有効化すると、シングルプレイでのみ破片と剥離の弾頭が見えるようになります。 + (仅在单人模式) 让你在单人模式下可观察到碎片/剥落粒子的移动轨迹. + (僅在單人模式) 讓你在單人模式下可觀察到碎片/剝落粒子的移動軌跡. diff --git a/addons/gestures/stringtable.xml b/addons/gestures/stringtable.xml index 4f5063721ba..865a4709ce4 100644 --- a/addons/gestures/stringtable.xml +++ b/addons/gestures/stringtable.xml @@ -14,6 +14,8 @@ ACE Gestos ACE ジェスチャー ACE 수신호 + ACE 手势 + ACE 手勢 Gestures @@ -28,6 +30,8 @@ Gesti ジェスチャー 수신호 + 手势 + 手勢 Advance @@ -42,6 +46,8 @@ Avanzare 警戒 전진 + 前进 + 前進 Go @@ -56,6 +62,8 @@ Muoversi 進め 이동 + 出发 + 出發 Follow @@ -70,6 +78,8 @@ Seguire ついて来い 따라올것 + 跟进 + 跟進 Up @@ -84,6 +94,8 @@ Alzarsi 立ち上がれ + 起立 + 起立 Cease Fire @@ -98,6 +110,8 @@ Cessare il Fuoco 撃つな 사격 중지 + 停火 + 停火 Stop @@ -111,6 +125,8 @@ Detenerse 止まれ 멈춰 + 停止 + 停止 Freeze @@ -125,6 +141,8 @@ Fermi 動くな 정지 + 不准动 + 不准動 Cover @@ -139,6 +157,8 @@ Copertura 隠れろ 엄폐 + 掩护 + 掩護 Rally up @@ -152,6 +172,8 @@ Reunirse 集合 집결 + 集合 + 集合 Move forward @@ -165,6 +187,8 @@ Avanzar 前に進め 앞으로 이동 + 往前走 + 往前走 Engage @@ -178,6 +202,8 @@ Atacar 交戦しろ 교전할것 + 交战 + 交戰 Point @@ -191,6 +217,8 @@ Señalar 指示 가리키기 + 指出 + 指出 Hold @@ -204,6 +232,8 @@ Esperar そこにいろ 기다려 + 停住 + 停住 Warning @@ -217,6 +247,8 @@ Atención 注意 주의 + 警告 + 警告 Show Gestures On Interaction Menu @@ -230,6 +262,8 @@ Показать жесты в меню взаимодействия インタラクション メニュー上でジェスチャーを表示する 수신호를 상호작용 메뉴에서 보여줍니다 + 显示手势互动选单 + 顯示手勢互動選單 Show gestures on the self interaction menu, or just use keybinds, or disable completely @@ -243,6 +277,8 @@ Показать жесты в меню взамиодейтсвия с собой или только использовать горячие клавиши, или полностью отключить キー操作や同時使用を無効化している場合はセルフ インタラクション メニュ上でジェスチャーを表示します 수신호를 상호작용 메뉴에서 보여주거나 혹은 단축키를 지정하거나 아니면 아예 사용하지 않습니다. + 显示手势选项在自己的互动选单上, 或只利用键盘来使用手势, 或完全禁用 + 顯示手勢選項在自己的互動選單上, 或只利用鍵盤來使用手勢, 或完全禁用 Just Keybinds @@ -256,6 +292,8 @@ Только горячие клавиши キー操作のみ 오직 단축키만 + 只利用键盘 + 只利用鍵盤 Keybinds + Interaction Menu @@ -269,6 +307,8 @@ Клавиши + Меню взаимодействия キー操作とインタラクション メニュ 단축키및 상호작용 메뉴 + 键盘 + 互动选单 + 鍵盤 + 互動選單 diff --git a/addons/gforces/stringtable.xml b/addons/gforces/stringtable.xml index 2abb558b589..717675b5589 100644 --- a/addons/gforces/stringtable.xml +++ b/addons/gforces/stringtable.xml @@ -13,6 +13,8 @@ Efekty przeciążeń 중력가속도 효과 Effetti forza G + G力影响 + G力影響 Only Aircraft @@ -26,6 +28,8 @@ Tylko samoloty 비행기에만 적용 Solo Aerei + 只有战斗机 + 只有戰鬥機 diff --git a/addons/goggles/stringtable.xml b/addons/goggles/stringtable.xml index c06d310ef7a..320be6950f7 100644 --- a/addons/goggles/stringtable.xml +++ b/addons/goggles/stringtable.xml @@ -14,6 +14,8 @@ Attiva l'effetto degli occhiali in terza persona 三人称視点でもゴーグルによる効果を出す 3인칭시에도 고글 효과를 보이게 합니다 + 在第三人称视角显示护目镜效果 + 在第三人稱視角顯示護目鏡效果 Wipe Goggles @@ -28,6 +30,8 @@ Pulisci gli occhiali ゴーグルを拭く 고글 닦기 + 擦拭护目镜 + 擦拭護目鏡 Goggle Effects @@ -38,6 +42,8 @@ 고글 효과 Effets des lunettes Effetto Occhiali + 护目镜效果 + 護目鏡效果 Tint @@ -48,6 +54,8 @@ 색조 Teinte Colore + 染色 + 染色 Tint + Effects @@ -58,6 +66,8 @@ 색조+효과 Teinte + effets Colore + Effetti + 染色 + 影响 + 染色 + 影響 diff --git a/addons/grenades/stringtable.xml b/addons/grenades/stringtable.xml index fe102bec8fd..f0c9089aad8 100644 --- a/addons/grenades/stringtable.xml +++ b/addons/grenades/stringtable.xml @@ -14,6 +14,8 @@ Alternar Modo de Granada グレネード モードを切り替え 투척 종류 전환 + 切换投掷模式 + 切換投擲模式 Normal Throw @@ -28,6 +30,8 @@ Arremesso Normal 通常で投げる 일반 던지기 + 普通投掷 + 普通投擲 High Throw @@ -42,6 +46,8 @@ Arremesso Alto 高く投げる 높이 던지기 + 高抛 + 高拋 Precise Throw @@ -56,6 +62,8 @@ Arremesso Preciso 低く投げる 정확한 던지기 + 精准投掷 + 精準投擲 Roll Grenade @@ -70,6 +78,8 @@ Rolar Granada 転がす 굴려넣기 + 地面滚抛 + 地面滾拋 Drop Grenade @@ -84,6 +94,8 @@ Largar Granada 落とす 떨어뜨리기 + 下丢投掷 + 下丟投擲 M84 Stun Grenade @@ -98,6 +110,8 @@ M84 granada de atordoamento M84 閃光手榴弾 M84 섬광 수류탄 + M84 震撼弹 + M84 震撼彈 M84 @@ -112,6 +126,8 @@ M84 M84 M84 + M84 + M84 Also known as flashbang. Causes immediate flash blindness, deafness, tinnitus, and inner ear disturbance. @@ -126,6 +142,8 @@ Também conhecida como flashbang. Causa uma clarão imediato, cegueira, surdez, zumbido e distúrbio no tímpano. フラッシュバンとも知られています。即時に失明と難聴、耳鳴り、内耳障害を引き起こします。 플래시뱅이라고도 알려져있습니다. 사용즉시 섬광으로 인한 시력장애, 청각장애, 이명, 내이기관방해를 유발합니다. + 也被称为闪光弹, 会造成暂时性失明, 耳聋, 耳鸣等效果 + 也被稱為閃光彈, 會造成暫時性失明, 耳聾, 耳鳴等效果 M127A1 Hand Held Signal (White) @@ -140,6 +158,8 @@ M127A1 Feux à main (Blanc) M127A1 信号弾 (白) M127A1 신호탄 (하얀색) + M127A1 手持式信号弹 (白色) + M127A1 手持式信號彈 (白色) M127A1 Hand Held Signal (Red) @@ -154,6 +174,8 @@ M127A1 Feux à main (Rouge) M127A1 信号弾 (赤) M127A1 신호탄 (빨간색) + M127A1 手持式信号弹 (红色) + M127A1 手持式信號彈 (紅色) M127A1 Hand Held Signal (Green) @@ -168,6 +190,8 @@ M127A1 Feux à main (Vert) M127A1 信号弾 (緑) M127A1 신호탄 (초록색) + M127A1 手持式信号弹 (绿色) + M127A1 手持式信號彈 (綠色) M127A1 Hand Held Signal (Yellow) @@ -182,6 +206,8 @@ M127A1 Feux à main (Jaune) M127A1 信号弾 (黄) M127A1 신호탄 (노란색) + M127A1 手持式信号弹 (黄色) + M127A1 手持式信號彈 (黃色) White Hand Flare @@ -196,6 +222,8 @@ Feux à main (Blanc) 白の発炎筒 하얀색 불꽃신호기 + 白色手持式信号弹 + 白色手持式信號彈 Red Hand Flare @@ -210,6 +238,8 @@ Feux à main (Rouge) 赤の発炎筒 빨간색 불꽃신호기 + 红色手持式信号弹 + 紅色手持式信號彈 Green Hand Flare @@ -224,6 +254,8 @@ Feux à main (Vert) 緑の発炎筒 초록색 불꽃신호기 + 绿色手持式信号弹 + 綠色手持式信號彈 Yellow Hand Flare @@ -238,6 +270,8 @@ Feux à main (Jaune) 黄の発炎筒 노란색 불꽃신호기 + 黄色手持式信号弹 + 黃色手持式信號彈 M127A1 (White) @@ -252,6 +286,8 @@ M127A1 (Blanca) M127A1 (白) M127A1 (하양) + M127A1 (白色) + M127A1 (白色) M127A1 (Red) @@ -266,6 +302,8 @@ M127A1 (Roja) M127A1 (赤) M127A1 (빨강) + M127A1 (红色) + M127A1 (紅色) M127A1 (Green) @@ -280,6 +318,8 @@ M127A1 (Verde) M127A1 (緑) M127A1 (초록) + M127A1 (绿色) + M127A1 (綠色) M127A1 (Yellow) @@ -294,6 +334,8 @@ M127A1 (Amarilla) M127A1 (黄) M127A1 (노랑) + M127A1 (黄色) + M127A1 (黃色) AN-M14 Incendiary Grenade @@ -304,6 +346,8 @@ AN-M14 소이 수류탄 Grenade incendiaire AN-M14 AN-M14 Granata Incendiaria + AN-M14 燃烧手榴弹 + AN-M14 燃燒手榴彈 AN-M14 @@ -314,6 +358,8 @@ AN-M14 AN-M14 AN-M14 + AN-M14 + AN-M14 Incendiary grenade used to destroy weapons, ammunition and other equipment. @@ -324,6 +370,8 @@ 소이 수류탄은 무기나 탄약 그리고 장비를 파괴할때 쓰입니다. Grenade incendiaire utilisé pour détruire des armes, munitions et autres équipements. Granata incendiaria usata per distruggere armi, munizioni e altri equipaggiamenti. + 燃烧手榴弹是用来摧毁武器, 弹药以及其他装备的好帮手. + 燃燒手榴彈是用來摧毀武器, 彈藥以及其他裝備的好幫手. diff --git a/addons/gunbag/stringtable.xml b/addons/gunbag/stringtable.xml index 5e5d8a7526f..2f7834e6bce 100644 --- a/addons/gunbag/stringtable.xml +++ b/addons/gunbag/stringtable.xml @@ -11,6 +11,8 @@ Torba na broń 총가방 Borsa per Armi + 枪袋 + 槍袋 Gunbag (Tan) @@ -22,6 +24,8 @@ Torba na broń (jasnobrązowa) 총가방 (황갈색) Borsa per Armi (Tan) + 枪袋 (黄褐色) + 槍袋 (黃褐色) Put weapon into gunbag @@ -33,6 +37,8 @@ Włóż broń do torby 무기를 총가방에 넣기 Metti l'arma nella borsa per armi + 将武器放置枪袋 + 將武器放置槍袋 Get weapon out of gunbag @@ -44,6 +50,8 @@ Wyciągnij broń z torby 무기를 총가방에서 꺼내기 Prendi l'arma dalla borsa per armi + 将武器拿出枪袋 + 將武器拿出槍袋 Status @@ -55,6 +63,8 @@ Status 상태 Stato + 状态 + 狀態 Gunbag Empty @@ -66,6 +76,8 @@ Torba jest pusta 총가방 비어있음 Borsa per armi vuota + 枪袋为空 + 槍袋為空 diff --git a/addons/hearing/stringtable.xml b/addons/hearing/stringtable.xml index 0b82e64659b..0bd55c67954 100644 --- a/addons/hearing/stringtable.xml +++ b/addons/hearing/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Tappi auricolari 耳栓 귀마개 + 耳塞 + 耳塞 Protective Earplugs allow the wearer to be near loud weaponry without damage to his hearing. @@ -28,6 +30,8 @@ Proteggono l'apparato uditivo, permettendo a chi li indossa di resistere ai suoni particolarmente forti senza alcun danno. 着けることにより、近くの大きな銃声から聴覚を保護します。 보호용 귀마개는 화기로부터의 큰소리로부터 사용자의 청력을 보호합니다. + 配戴防护耳塞, 遇到大声的武器发射时也不会损害听力. + 配戴防護耳塞, 遇到大聲的武器發射時也不會損害聽力. Earplugs in @@ -42,6 +46,8 @@ Indossa i tappi auricolari 耳栓を着ける 귀마개 착용 + 塞入耳塞 + 塞入耳塞 Earplugs out @@ -56,6 +62,8 @@ Levati i tappi auricolari 耳栓を外す 귀마개 뺌 + 取出耳塞 + 取出耳塞 Earplugs in @@ -70,6 +78,8 @@ Indossa i tappi auricolari 耳栓を着けた 귀마개 착용 + 耳塞已塞入 + 耳塞已塞入 Earplugs out @@ -84,6 +94,8 @@ Levati i tappi auricolari 耳栓を外した 귀마개 뺌 + 耳塞已取出 + 耳塞已取出 You have no earplugs @@ -98,6 +110,8 @@ Non hai i tappi auricolari 耳栓を持っていません 귀마개가 없습니다 + 你没有耳塞 + 你沒有耳塞 No inventory space @@ -112,6 +126,8 @@ Нет места в инвентаре インベントリに空きがありません。 넣을 공간이 없습니다 + 无可用空间 + 無可用空間 Disable ear ringing @@ -126,6 +142,8 @@ Desabilitar zumbido de ouvidos 耳鳴りを無効化する 이명현상 끄기 + 关闭耳鸣效果 + 關閉耳鳴效果 Remove tinnitus effect when the player takes hearing damage @@ -138,6 +156,8 @@ Убирает эффект звона в ушах, когда игрок получает повреждение слуха プレイヤーの聴覚が損傷をしたら耳鳴りの効果を削除します 플레이어가 청력손실을 입을때 생기는 이명현상을 제거합니다. + 关闭耳鸣效果时, 就算玩家受到相当程度的听力伤害, 也不会造成耳鸣效果. + 關閉耳鳴效果時, 就算玩家受到相當程度的聽力傷害, 也不會造成耳鳴效果. Hearing @@ -152,6 +172,8 @@ Udito 聴覚 청력 + 听力设定 + 聽力設定 Enable Combat Deafness @@ -166,6 +188,8 @@ Sordità da combattimento 戦闘による難聴を有効化 전투 난청 켜기 + 启用战斗性耳聋? + 啟用戰鬥性耳聾? Reduces the hearing ability as the player takes hearing damage @@ -179,6 +203,8 @@ Réduire l'audition lorsque le joueur prend des dommages auditifs. 音による損傷をうけ、聴覚が減る可能性があります 청력에 손상을 입으면 듣는 소리가 감소합니다. + 当玩家听力受损时降低听力能力? + 當玩家聽力受損時降低聽力能力? Controls combat deafness and ear ringing. When activated, players can be deafened when a gun is fired in their vicinity or an explosion takes place without hearing protection @@ -193,6 +219,8 @@ Controlla la sordità da combattimento e fischio alle orecchie. Quando attivato, i giocatori possono essere assordati quando un'arma spara vicino o avviene un'esplosione senza protezione uditiva 戦闘による難聴や、耳鳴りを設定します。有効になった場合、聴覚を保護していないと近傍の銃声や爆発音により、難聴になります。 전투 난청과 이명현상을 조작합니다. 작동시 플레이어가 화기나 폭발의 주변에 있을경우 청력보호장치가 없을때 청력손실을 입습니다. + 设定战斗性耳聋和耳鸣. 当启用后, 玩家会在有武器在旁边射击或爆炸产生时造成耳鸣效果 + 設定戰鬥性耳聾和耳鳴. 當啟用後, 玩家會在有武器在旁邊射擊或爆炸產生時造成耳鳴效果 Effect Zeus RC @@ -206,6 +234,8 @@ Effet sur le CàD du Zeus Zeus RC への効果 Zeus RC 효과 + 启用效果在宙斯远程遥控 + 啟用效果在宙斯遠程遙控 Allow zeus remote controlled units to be able to take hearing damage. @@ -219,6 +249,8 @@ Permet aux unités controlées à distance de subir des traumatismes sonores. Zeus により遠隔操作されたユニットにも、聴覚へ損傷を受けるようにします。 Zeus가 원격으로 청력손실을 입힐 수 있게 합니다. + 设定宙斯远程遥控的单位也会受到耳鸣的效果. + 設定宙斯遠程遙控的單位也會受到耳鳴的效果. Add earplugs to units @@ -232,6 +264,8 @@ Ajouter des bouchons anti-bruits aux unités ユニットへ耳栓を追加 해당 인원에게 귀마개 추가 + 增加耳塞给单位 + 增加耳塞給單位 Add the `ACE_EarPlugs` item to all units that have loud weapons. Can disable if using custom loadouts. @@ -245,6 +279,8 @@ Ajoute l'objet "Ace_EarPlugs" à toutes les unités ayant des armes bruyantes. Peut être désactivé par des loadouts personalisés. 全ユニットへ`ACE_EarPlugs`アイテムをもたせます。これは変更された武装で無効化できます。 무기를 가지고 있는 모든 인원에게 'ACE_EarPlugs'를 지급합니다. 임의의 장비를 사용시 비활성화 할 수 있습니다. + 增加`ACE_EarPlugs`物品给拥有巨大噪音武器的单位. 当你想自定装备时, 此功能可被关闭. + 增加`ACE_EarPlugs`物品給擁有巨大噪音武器的單位. 當你想自定裝備時, 此功能可被關閉. diff --git a/addons/hellfire/stringtable.xml b/addons/hellfire/stringtable.xml index fd46f2a471a..d60e6ac9a8c 100644 --- a/addons/hellfire/stringtable.xml +++ b/addons/hellfire/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,11 +13,15 @@ Hellfire Hellfire ヘルファイア + 地狱火 + 地獄火 Set Hellfire mode Imposta modalità Hellfire ヘルファイア モードを設定 + 设定地狱火模式 + 設定地獄火模式 diff --git a/addons/huntir/stringtable.xml b/addons/huntir/stringtable.xml index a65c98f8b55..ed1d0058da1 100644 --- a/addons/huntir/stringtable.xml +++ b/addons/huntir/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Caixa de transporte do HuntIR HuntIR 輸送箱 HuntIR 수송함 + 高空战术成像器运输箱 + 高空戰術成像器運輸箱 HuntIR Round @@ -28,6 +30,8 @@ Cartucho HuntIR HuntIR 弾頭 HuntIR 유탄 + 高空战术成像器弹药 + 高空戰術成像器彈藥 HuntIR monitor @@ -42,6 +46,8 @@ Monitor HuntIR HuntIR モニタ HuntIR 모니터 + 高空战术成像器显示面板 + 高空戰術成像器顯示面板 Activate HuntIR monitor @@ -56,6 +62,8 @@ Ativar monitor do HuntIR HuntIR を起動する HuntIR 모니터 켜기 + 开启高空战术成像器显示面板 + 開啟高空戰術成像器顯示面板 Camera: @@ -70,6 +78,8 @@ Câmera: カメラ: 카메라: + 摄影机: + 攝影機: Altitude: @@ -84,6 +94,8 @@ Altitude: 高度: 고도: + 高度: + 高度: Recording Time: @@ -98,6 +110,8 @@ Tempo de gravação: 録画時間: 녹화시간: + 记录时间: + 記錄時間: Press ESC to quit camera @@ -112,6 +126,8 @@ Pressione ESC para sair da câmera ESC を押しカメラを抜ける ESC를 눌러 카메라 나가기 + 按下ESC退出摄影机 + 按下ESC退出攝影機 Help @@ -126,6 +142,8 @@ Ajuda ヘルプ 도움말 + 帮助 + 幫助 A/D - Cycle zoom @@ -140,6 +158,8 @@ A/D - Troca zoom A/D - 倍率の変更 A/D - 줌 전환 + A/D - 切换放大倍率 + A/D - 切換放大倍率 W/S - Select camera @@ -154,6 +174,8 @@ W/S - Seleciona câmera W/S - カメラを選択 W/S - 카메라 선택 + W/S - 切换摄影机 + W/S - 切換攝影機 Left/Right - Rotate camera @@ -168,6 +190,8 @@ Esquerda/Direita - Rotaciona câmera Left/Right - カメラを開店 좌/우 - 카메라 돌리기 + 左/右 - 旋转摄影机 + 左/右 - 旋轉攝影機 Up/Down - Elevate/lower camera @@ -182,6 +206,8 @@ Acima/Abaixo - Eleva/Abaixa a câmera Up/Down - カメラ角度を変更 상/하 카메라 올리기/내리기 + 上/下 - 上升/下降摄影机 + 上/下 - 上升/下降攝影機 N - Cycle IT modes @@ -196,6 +222,8 @@ N - Troca modo IT N - IT モードを変更 N - IT모드 순환 + N - 切换热显模式 + N - 切換熱顯模式 R - Reset camera @@ -210,6 +238,8 @@ R - Redefine a câmera R - カメラを初期化 R - 카메라 초기화 + R - 重置摄影机 + R - 重置攝影機 Esc - Exit help @@ -224,6 +254,8 @@ Esc - Sai do Ajuda Esc - ヘルプを出る Esc - 도움말 나가기 + Esc - 离开帮助 + Esc - 離開幫助 diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index ba9647e99a3..4f5222f691b 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Sempre mostrar cursor para interação pessoal セルフ インタラクションへ常にカーソルを表示 자기상호작용시 항상 커서를 보이기 + 自我互动时永远显示游标 + 自我互動時永遠顯示游標 Always display cursor for interaction @@ -28,6 +30,8 @@ Sempre mostrar cursor para interação インタラクションへ常にカーソルを表示 상호작용시 항상 커서를 보이기 + 互动时永远显示游标 + 互動時永遠顯示游標 Display interaction menus as lists @@ -42,6 +46,8 @@ Mostrar menu de interação como listas 表示されるインタラクション メニューを一覧表示 상호작용메뉴를 리스트화 해서 보이기 + 以列表方式显示互动表单 + 以列表方式顯示互動表單 Interact Key @@ -56,6 +62,8 @@ Tecla de Interação インタラクション キー 상호작용 키 + 互动键 + 互動鍵 Self Interaction Key @@ -70,6 +78,8 @@ Tecla de Interação Pessoal セルフ インタラクション キー 자기상호작용 키 + 自我互动键 + 自我互動鍵 Self Actions @@ -84,6 +94,8 @@ Ações Pessoais 自分への動作 자기 동작 + 自我动作 + 自我動作 Vehicle Actions @@ -98,6 +110,8 @@ Ações de Veículos 車両への動作 차량 동작 + 载具动作 + 載具動作 Zeus Actions @@ -112,6 +126,8 @@ Azioni Zeus Zeus への動作 Zeus 동작 + 宙斯操作 + 宙斯操作 Interaction - Text Max @@ -126,6 +142,8 @@ Interação - Max. de Texto インタラクション - 文字の色 상호작용 - 문자색깔 + 互动 - 文字最大化 + 互動 - 文字最大化 Interaction - Text Min @@ -140,6 +158,8 @@ Interação - Min. de Texto インタラクション - 文字の背景色 상호작용 - 문자배경색 + 互动 - 文字最小化 + 互動 - 文字最小化 Interaction - Shadow Max @@ -154,6 +174,8 @@ Interação - Max. de Sombra インタラクション - 文字への影の色 상호작용 - 문자그림자색 + 互动 - 阴影最大化 + 互動 - 陰影最大化 Interaction - Shadow Min @@ -168,6 +190,8 @@ Interação - Min. de Sombra インタラクション - 文字への影の最低色 상호작용 - 문자그림자배경색 + 互动 - 阴影最小化 + 互動 - 陰影最小化 Keep cursor centered @@ -182,6 +206,8 @@ Mantieni il cursore centrato 常にカーソルを中央にする 커서를 항상 가운데에 둡니다 + 保持游标在中心点 + 保持游標在中心點 Keeps cursor centered and pans the option menu around. Useful if screen size is limited. @@ -196,6 +222,8 @@ Mantieni il cursore centrato e sposta il menù intorno. Utile se lo schermo è piccolo. 常にカーソルを中央へ表示させ、オプション メニューが移動します。画面の大きさが制限されている時に使いやすくなります。 커서를 항상 가운데에 두고 메뉴를 움직입니다. 화면의 크기가 제한되있을때 유용합니다. + 保持游标在中心点并平移周遭的选项选单. 这对在荧幕尺寸有限的玩家很有用! + 保持游標在中心點並平移周遭的選項選單. 這對在螢幕尺寸有限的玩家很有用! Do action when releasing menu key @@ -210,6 +238,8 @@ Esegui l'azione quando rilasci il tasto menu メニュー キーを離したときに動作を実行します。 메뉴키를 놓을때 행동하기 + 当放开选单键后就执行动作 + 當放開選單鍵後就執行動作 Interaction Text Size @@ -224,6 +254,8 @@ Dimensione del testo d'interazione インタラクション文字の大きさ 상호작용 - 문자크기 + 互动选单文字大小 + 互動選單文字大小 Interaction Text Shadow @@ -238,6 +270,8 @@ Ombra del testo d'interazione インタラクション文字へ影 상호작용 - 문자그림자 + 互动选单文字阴影 + 互動選單文字陰影 Allows controlling the text's shadow. Outline ignores custom shadow colors. @@ -252,6 +286,8 @@ Permette di controllare l'ombra del testo. L'impostazione "Contorno" ignora il colore dell'ombra. 文字への影を設定します。縁取りは設定された影の色を無視します。 문자의 그림자를 조절하는것을 가능케합니다. 외각선은 임의의 그림자색을 무시합니다. + 允许控制文字阴影. 轮廓部分则会忽略自定义的阴影颜色 + 允許控制文字陰影. 輪廓部分則會忽略自定義的陰影顏色 Outline @@ -266,6 +302,8 @@ Contorno 縁取り 외각선 + 只显示轮廓 + 只顯示輪廓 Interaction menu background @@ -280,6 +318,8 @@ Sfondo Menù Interazioni インタラクション メニューの背景 상호작용 메뉴 배경 + 互动选单背景 + 互動選單背景 Blur the background while the interaction menu is open. @@ -294,6 +334,8 @@ Sfoca lo sfondo mentre il Menù Interazioni è aperto. インタラクション メニューを開いたとき、背景にボケを与えます。 상호작용 메뉴가 열릴시 배경을 흐릿하게 처리합니다. + 当互动选单开启时, 模糊背景画面 + 當互動選單開啟時, 模糊背景畫面 Blur screen @@ -308,6 +350,8 @@ Sfoca schermo ボケ画面 화면 흐리게 + 模糊画面 + 模糊畫面 Black @@ -322,6 +366,8 @@ Nero ブラック 까맣게 + 黑色 + 黑色 Show actions for buildings @@ -336,6 +382,8 @@ Mostra azioni per edifici 建物へ動作を表示 건물에 행동을 취함 + 显示建筑物可用的动作 + 顯示建築物可用的動作 Adds interaction actions for opening doors and mounting ladders on buildings. (Note: There is a performance cost when opening interaction menu, especially in towns) @@ -350,6 +398,8 @@ Aggiunge azioni interattive per l'apertura delle porte e piazzamento scale su edifici. (Nota: C'è un costo in performance quando si apre il Menù Interazioni, soprattutto in città) 建物にあるドアの開閉やラダーの昇降といった動作をインタラクションへ追加します。(街などでインタラクション メニューを開くとパフォーマンスが低下します) 건물의 문을 열거나 사다리에 오르는 상호작용 행동을 추가합니다. (주의: 상호작용 메뉴를 열경우 성능하락이 있을 수 있음, 특히 마을 내부에서) + 增加互动选单的功能在可开启的门与建筑物的梯子上. (注意: 此功能有可能会降低系统效能, 特别是在城镇区更明显) + 增加互動選單的功能在可開啟的門與建築物的梯子上. (注意: 此功能有可能會降低系統效能, 特別是在城鎮區更明顯) Interaction Menu @@ -363,6 +413,8 @@ Menu d'interaction インタラクション メニュー 상호작용 메뉴 + 互动选单 + 互動選單 Interaction Animation Speed @@ -376,6 +428,8 @@ Vitesse de l'aniamtion d'interaction インタラクションのアニメーション速度 상호작용 움직임 속도 + 互动选单动画速度 + 互動選單動畫速度 Makes menu animations faster and decreases the time needed to hover to show sub actions @@ -388,6 +442,8 @@ Hace la animación del menú más rápida, reduciendo el tiempo necesario para abrir sub-acciones. Rend les animations de menu plus rapide et réduit le temps nécessaire à l'affichage des sous menus d'action サブ動作が表示されるホバーをした時に、表示されるメニューのアニメーション速度を早くしたり遅くしたりできます + 使选单的动画速度更快, 并减少子选项显现出来的时间 + 使選單的動畫速度更快, 並減少子選項顯現出來的時間 diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml index 2679f228aa9..7c37267ab7c 100644 --- a/addons/interaction/stringtable.xml +++ b/addons/interaction/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Interaçãoes インタラクション 상호작용 + 互动 + 互動 Torso @@ -28,6 +30,8 @@ Torso 胴体 몸통 + 身体 + 身體 Head @@ -42,6 +46,8 @@ Cabeça 頭部 머리 + 头部 + 頭部 Left Arm @@ -56,6 +62,8 @@ Braço Esquerdo 左腕 왼쪽 팔 + 左手 + 左手 Right Arm @@ -70,6 +78,8 @@ Braço Direito 右腕 오른쪽 팔 + 右手 + 右手 Left Leg @@ -84,6 +94,8 @@ Perna Esquerda 左足 왼쪽 다리 + 左脚 + 左腳 Right Leg @@ -98,6 +110,8 @@ Perna Direita 右足 오른쪽 다리 + 右脚 + 右腳 Weapon @@ -112,6 +126,8 @@ Arma 武器 무기 + 武器 + 武器 Interaction Menu @@ -126,6 +142,8 @@ Menù interazione インタラクション メニュー 상호작용 메뉴 + 互动选单 + 互動選單 Interaction Menu (Self) @@ -140,6 +158,8 @@ Menù interazione (individuale) インタラクション メニュー (セルフ) 상호작용 메뉴(자신) + 互动选单 (自我) + 互動選單 (自我) Open / Close Door @@ -154,6 +174,8 @@ Apri / Chiudi la porta ドアの開け閉め 문 열기 / 닫기 + 打开/关上 门 + 打開/關上 門 Lock Door @@ -168,6 +190,8 @@ Zamknout dveře ドアの鍵を閉める 문 잠그기 + 锁门 + 鎖門 Unlock Door @@ -182,6 +206,8 @@ Odemknout dveře ドアの鍵を開ける 잠긴문 열기 + 解锁门 + 解鎖門 Locked Door @@ -196,6 +222,8 @@ Zamčené dveře ドアの鍵を締めた 잠긴 문 + 门已上锁 + 門已上鎖 Unlocked Door @@ -210,6 +238,8 @@ Odemčené dveře ドアの鍵を開けられた 열린 문 + 门未上锁 + 門未上鎖 Join group @@ -224,6 +254,8 @@ Unisciti alla squadra グループにはいる 그룹 참여 + 加入小队 + 加入小隊 Leave Group @@ -238,6 +270,8 @@ Lascia la squadra グループをぬける 그룹 나가기 + 离开小队 + 離開小隊 Become Leader @@ -252,6 +286,8 @@ Prendi il comando リーダーになる 리더 되기 + 成为队长 + 成為隊長 DANCE! @@ -266,6 +302,8 @@ DANZA! おどれ! 춤추기! + 跳舞 + 跳舞 Stop Dancing @@ -280,6 +318,8 @@ Smetti di ballare 踊るのをやめる 춤 멈추기 + 停止跳舞 + 停止跳舞 << Back @@ -294,6 +334,8 @@ << Indietro &lt;&lt; もどる <<뒤로 + <<返回 + <<返回 Put weapon on back @@ -308,6 +350,8 @@ Metti l'arma in spalla 武器を背負う 등에 무기 메기 + 将武器放到背后 + 將武器放到背後 Tap Shoulder @@ -322,6 +366,8 @@ Dai un colpetto 肩をたたく 어깨 두드리기 + 轻拍肩膀 + 輕拍肩膀 You were tapped on the RIGHT shoulder @@ -336,6 +382,8 @@ Ti è stato dato un colpetto sulla spalla destra 右肩を叩かれた 누군가 오른쪽 어깨를 쳤다 + 你的右肩膀被轻拍了一下 + 你的右肩膀被輕拍了一下 You were tapped on the LEFT shoulder. @@ -350,6 +398,8 @@ Ti è stato dato un colpetto sulla spalla sinistra 左肩を叩かれた 누군가 왼쪽 어깨를 쳤다 + 你的左肩膀被轻拍了一下 + 你的左肩膀被輕拍了一下 Cancel @@ -364,6 +414,8 @@ Mégse 中止 취소 + 取消 + 取消 Select @@ -378,6 +430,8 @@ Kiválaszt 選択 선택 + 选择 + 選擇 Go Away! @@ -392,6 +446,8 @@ Via di qui! うせろ! 저리 가! + 走开! + 走開! Get Down! @@ -406,6 +462,8 @@ A terra! ふせろ! 엎드려! + 趴下! + 趴下! Get Out @@ -418,6 +476,8 @@ Vystupte 降りる 나가 + 出去 + 出去 Team Management @@ -432,6 +492,8 @@ Csapat kezelése チーム管理 팀 설정 + 小队管理 + 小隊管理 Red @@ -446,6 +508,8 @@ Piros レッド 빨강 + 红色 + 紅色 Green @@ -460,6 +524,8 @@ Zöld グリーン 초록 + 绿色 + 綠色 Blue @@ -474,6 +540,8 @@ Kék ブルー 파랑 + 蓝色 + 藍色 Yellow @@ -488,6 +556,8 @@ Sárga イエロー 노랑 + 黄色 + 黃色 Assign Red @@ -502,6 +572,8 @@ Assegna al team rosso レッドにする 빨강에 등록 + 指派为红组 + 指派為紅組 Assign Green @@ -516,6 +588,8 @@ Assegna al team verde グリーンにする 초록에 등록 + 指派为绿组 + 指派為綠組 Assign Blue @@ -530,6 +604,8 @@ Assegna al team blu ブルーにする 파랑이 등록 + 指派为蓝组 + 指派為藍組 Assign Yellow @@ -544,6 +620,8 @@ Assegna al team giallo イエローにする 노랑에 등록 + 指派为黄组 + 指派為黃組 Join Red @@ -558,6 +636,8 @@ Unirsi al team rosso レッドに入る 빨강에 참여 + 加入红组 + 加入紅組 Join Green @@ -572,6 +652,8 @@ Unirsi al team verde グリーンに入る 초록에 참여 + 加入绿组 + 加入綠組 Join Blue @@ -586,6 +668,8 @@ Unirsi al team blu ブルーに入る 파랑에 참여 + 加入蓝组 + 加入藍組 Join Yellow @@ -600,6 +684,8 @@ Unirsi al team giallo イエローに入る 노랑에 참여 + 加入黄组 + 加入黃組 You joined Team %1 @@ -614,6 +700,8 @@ Csatlakoztál a %1 csapathoz チーム %1 に入った 당신은 %1팀에 참여했습니다 + 你已加入%1组 + 你已加入%1組 Leave Team @@ -628,6 +716,8 @@ Csapat elhagyása チームを抜ける 팀 나가기 + 离开小队 + 離開小隊 You left the Team @@ -642,6 +732,8 @@ Elhagytad a csapatot チームを抜けた 팀을 나갔습니다 + 你已离开小队 + 你已離開小隊 Pardon @@ -656,6 +748,8 @@ Megbocsátás 許す 허용 + 原谅 + 原諒 Scroll @@ -670,6 +764,8 @@ Posunout スクロール 스크롤 + 滚动 + 滾動 Modifier Key @@ -684,6 +780,8 @@ Modifikátor キーを割り当て 키 할당하기 + 编辑按键 + 編輯按鍵 Not in Range @@ -698,6 +796,8 @@ Fuori limite 範囲内にありません 범위 내에 없습니다 + 不在范围内 + 不在範圍內 Equipment @@ -712,6 +812,8 @@ Equipamento 装備 장비 + 装备 + 裝備 Push @@ -726,6 +828,8 @@ Spingere 押す 밀기 + + Interact @@ -740,6 +844,8 @@ Interagir インタラクト 상호작용 + 互动 + 互動 Passengers @@ -754,6 +860,8 @@ Passageiros 後部座席 승객 + 乘客 + 乘客 Open @@ -768,6 +876,8 @@ Öffnen 開く 열기 + 打开 + 打開 Interaction System @@ -782,6 +892,8 @@ Sistema Interazioni インタラクション システム 상호작용 시스템 + 互动系统 + 互動系統 Enable Team Management @@ -796,6 +908,8 @@ Abilità Management Squadra チーム管理をつかう 팀 설정 활성화 + 启用小队管理 + 啟用小隊管理 Should players be allowed to use the Team Management Menu? Default: Yes @@ -810,6 +924,8 @@ Possono i giocatori usare il Menù Managment Squadra? Default: Si プレイヤーがチーム管理メニューを使えるようにしますか?標準:はい 플레이어들이 팀 설정하는 것을 허락합니까? 기본설정: 예 + 允许玩家使用小队管理选单? 预设: 是 + 允許玩家使用小隊管理選單? 預設: 是 Team management allows color allocation for team members, taking team command and joining/leaving teams. @@ -824,6 +940,8 @@ Management Squadra permette l'assegnazione di colori per membri della squadra, prendere il comando ed entrare/uscire dalle squadre. チーム管理はチーム メンバーへ色の割り当てや指揮権を取ったり、チームの出入りを許可します。 팀 설정은 팀 멤버에게 색을 부여하거나 팀에 참여 혹은 나가게 할 수 있게 합니다. + 队伍管理系统允许将指定颜色分配到队伍成员上, 接管队长职位或加入/离开队伍. + 隊伍管理系統允許將指定顏色分配到隊伍成員上, 接管隊長職位或加入/離開隊伍. Turn on @@ -837,6 +955,8 @@ Включить 中に入る 켜기 + 开启 + 開啟 Turn off @@ -850,6 +970,8 @@ Выключить 外に出す 끄기 + 关闭 + 關閉 Pass magazine @@ -863,6 +985,8 @@ Passer un chargeur 弾倉をわたす 탄창 건네기 + 给予弹匣 + 給予彈匣 Primary magazine @@ -876,6 +1000,8 @@ Chargeur de l'arme principale プライマリ用弾倉 주무기 탄창 + 给予主武器弹匣 + 給予主武器彈匣 Pistol magazine @@ -889,6 +1015,8 @@ Chargeur de pistolet 拳銃の弾倉 부무기 탄창 + 给予手枪弹匣 + 給予手槍彈匣 %1 passed you a %2 magazine. @@ -902,6 +1030,8 @@ %1 vous a passé un chargeur de %2. %1 はあなたに %2 弾倉をわたした %1에게서 %2탄창을 받았다 + %1给你%2弹匣 + %1給你%2彈匣 Show "pass magazine" interaction @@ -915,6 +1045,8 @@ Montrer l'interaction "Passer un chargeur" "弾倉をわたす"をインタラクションに表示する '탄창 건네기'를 상호작용에서 보여줌 + 显示"给予弹匣"互动动作 + 顯示"給予彈匣"互動動作 diff --git a/addons/inventory/stringtable.xml b/addons/inventory/stringtable.xml index c421891f494..4cf5a2e2e03 100644 --- a/addons/inventory/stringtable.xml +++ b/addons/inventory/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Aumentar o Tamanho da Tela do Inventário インベントリ表示を大きくする 소지품 화면을 더 크게 합니다 + 使物品显示清单更大 + 使物品顯示清單更大 Normally inventory display is scaled by UI size. This allows scaling the Inventory UI size up, but doesn't increase font size allowing more rows displayed. @@ -28,6 +30,8 @@ Normalmente o tamanho da tela do inventário é ditada pelo tamanho da UI. Isso permite aumentar o tamanho da tela de inventário, mas não aumenta o tamanho da fonte, permitindo que mais linhas sejam visualizadas. 通常のインベントリは UI の大きさによって表示されます。これはインベントリ UI を大きくできますが、文字は大きくできません。 보통 소지품 화면은 사용자 인터페이스 크기에 비례합니다. 이 항목은 소지품의 사용자 인터페이스를 확대를 가능케하면서 글씨는 그대로 냅두게 해줍니다. + 一般来说, 物品清单尺寸是由使用者介面来决定的. 此选项能让你的物品显示清单更大但不会增加字体大小, 此举可增加更多能被显示的描述行数! + 一般來說, 物品清單尺寸是由使用者介面來決定的. 此選項能讓你的物品顯示清單更大但不會增加字體大小, 此舉可增加更多能被顯示的描述行數! Backpacks @@ -41,6 +45,8 @@ Рюкзаки バックパック 가방 + 背包 + 背包 Headgear @@ -54,6 +60,8 @@ Головные уборы ヘッドギア 헬멧 + 头盔 + 頭盔 Glasses @@ -67,6 +75,8 @@ Очки メガネ 안경 + 眼镜 + 眼鏡 Uniforms @@ -80,6 +90,8 @@ Униформа 戦闘服 복장 + 服装 + 服裝 Vests @@ -93,6 +105,8 @@ Жилеты ベスト 조끼 + 背心 + 背心 Grenades @@ -106,6 +120,8 @@ Гранаты 手榴弾 수류탄 + 手榴弹 + 手榴彈 Medical @@ -119,6 +135,8 @@ Медицина 医療 의료 + 医疗 + 醫療 diff --git a/addons/javelin/stringtable.xml b/addons/javelin/stringtable.xml index a1f786da727..ec308052a62 100644 --- a/addons/javelin/stringtable.xml +++ b/addons/javelin/stringtable.xml @@ -14,6 +14,8 @@ Travar Alvo(Segurar) 目標を捕捉 (押しっぱ) 표적 획득 (누르기) + 锁定目标 (按住) + 鎖定目標 (按住) diff --git a/addons/kestrel4500/stringtable.xml b/addons/kestrel4500/stringtable.xml index c129b1e0195..3658d367e01 100644 --- a/addons/kestrel4500/stringtable.xml +++ b/addons/kestrel4500/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Kestrel 4500NV Kestrel 4500NV Kestrel 4500NV + 猎隼4500测风仪 + 獵隼4500測風儀 Kestrel 4500 Pocket Weather Tracker @@ -28,6 +30,8 @@ Příruční meteostanice Kestrel 4500 Kestrel 4500 携帯型風速計 Kestrel 4500 휴대형 기상 관측기 + 猎隼4500掌上型天气追踪仪 + 獵隼4500掌上型天氣追蹤儀 Open Kestrel 4500 @@ -42,6 +46,8 @@ Otevřít Kestrel 4500 Kestrel 4500 を開く Kestrel 4500 열기 + 开启猎隼4500测风仪 + 開啟獵隼4500測風儀 Show Kestrel 4500 @@ -56,6 +62,8 @@ Mostrar Kestrel 4500 Kestrel 4500 を見る Kestrel 4500 보이기 + 显示猎隼4500测风仪 + 顯示獵隼4500測風儀 Hide Kestrel 4500 @@ -70,6 +78,8 @@ Ocultar Kestrel 4500 Kestrel 4500 を隠す Kestrel 4500 숨기기 + 隐藏猎隼4500测风仪 + 隱藏獵隼4500測風儀 Open Kestrel 4500 @@ -84,6 +94,8 @@ Abrir Kestrel 4500 Kestrel 4500 を開く Kestrel 4500 열기 + 开启猎隼4500测风仪 + 開啟獵隼4500測風儀 Show Kestrel 4500 @@ -98,6 +110,8 @@ Mostrar Kestrel 4500 Kestrel 4500 を見る Kestrel 4500 숨기기 + 显示猎隼4500测风仪 + 顯示獵隼4500測風儀 diff --git a/addons/laser/stringtable.xml b/addons/laser/stringtable.xml index 7e8db0c87c8..191efc75599 100644 --- a/addons/laser/stringtable.xml +++ b/addons/laser/stringtable.xml @@ -9,6 +9,8 @@ Wskaźnik poziomu rozproszenia wiązki lasera Compte de la simulation de la dispersion du laser Contatore Simulazione Dispersione Laser + 雷射散射模拟计算 + 雷射散射模擬計算 Laser Code @@ -23,6 +25,8 @@ Codice laser レーザ コード 레이저 코드 + 雷射码 + 雷射碼 Laser - Cycle Code Up @@ -37,6 +41,8 @@ Codice laser + レーザ - コードの数値を増やす 레이저 - 코드 순환 위 + 雷射 - 循环切换雷射码 上 + 雷射 - 循環切換雷射碼 上 Laser - Cycle Code Down @@ -51,6 +57,8 @@ Codice laser - レーザ - コードの数値を減らす 레이저 - 코드 순환 아래 + 雷射 - 循环切换雷射码 下 + 雷射 - 循環切換雷射碼 下 diff --git a/addons/laserpointer/stringtable.xml b/addons/laserpointer/stringtable.xml index 1de5c8a8dbc..33706433014 100644 --- a/addons/laserpointer/stringtable.xml +++ b/addons/laserpointer/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Laser (vermelho) レーザ ポインタ (赤) 레이저 지시기 (빨강) + 雷射指示器 (红色) + 雷射指示器 (紅色) Laser Pointer (green) @@ -28,6 +30,8 @@ Laser (verde) レーザ ポインタ (緑) 레이저 지시기 (초록) + 雷射指示器 (绿色) + 雷射指示器 (綠色) Emits visible light. @@ -42,6 +46,8 @@ Emite luz visível. 可視光をだします。 밝은 곳에서도 보임 + 发射出可见光 + 發射出可見光 <t color='#9cf953'>Use: </t>Turn Laser ON/OFF @@ -56,6 +62,8 @@ <t color='#9cf953'>Használat: </t>Lézer BE/KI kapcsolása <t color='#9cf953'>つかう: </t>レーザの起動/停止 <t color='#9cf953'>사용키: </t>레이저 켜기/끄기 + <t color='#9cf953'>使用: </t>雷射开启/关闭 + <t color='#9cf953'>使用: </t>雷射開啟/關閉 Laser @@ -70,6 +78,8 @@ Laser レーザ 레이저 + 雷射 + 雷射 IR Laser @@ -84,6 +94,8 @@ Laser IV 赤外線レーザ 적외선 레이저 + 红外线雷射 + 紅外線雷射 Switch Laser / IR Laser @@ -98,6 +110,8 @@ Alternar entre Laser / Laser IV レーザ/赤外線レーザを切り替える 레이저 / 적외선 레이저 전환 + 切换雷射/红外线雷射 + 切換雷射/紅外線雷射 diff --git a/addons/logistics_uavbattery/stringtable.xml b/addons/logistics_uavbattery/stringtable.xml index af9bbace050..1e190161601 100644 --- a/addons/logistics_uavbattery/stringtable.xml +++ b/addons/logistics_uavbattery/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ БПЛА полностью заряжен ドローンは充電完了 드론 충전완료 + 无人载具电池已充满 + 無人載具電池已充滿 You need a UAV Battery @@ -28,6 +30,8 @@ Требуется аккумулятор для БПЛА UAV バッテリが必要です UAV 배터리가 필요합니다 + 你需要一个无人载具电池 + 你需要一個無人載具電池 Recharge @@ -42,6 +46,8 @@ Зарядить 充電 재충전 + 充电 + 充電 UAV Battery @@ -56,6 +62,8 @@ Аккумулятор БПЛА UAV バッテリ UAV 배터리 + 无人载具电池 + 無人載具電池 Used to refuel Carried UAV's @@ -70,6 +78,8 @@ Используется для зарядки переносных БПЛА 運んでいる UAV を充電に使う UAV를 재충전 할때 씁니다. + 对可携式无人载具进行充电 + 對可攜式無人載具進行充電 Recharging... @@ -83,6 +93,8 @@ In ricarica... Заряжается... 充電中 + 充电中... + 充電中... diff --git a/addons/logistics_wirecutter/stringtable.xml b/addons/logistics_wirecutter/stringtable.xml index 542b152af39..bd7f9edc81e 100644 --- a/addons/logistics_wirecutter/stringtable.xml +++ b/addons/logistics_wirecutter/stringtable.xml @@ -14,6 +14,8 @@ Cortador de Arame ワイヤーカッター 절단기 + 剪铁丝网钳 + 剪鐵絲網鉗 Wirecutter @@ -28,6 +30,8 @@ Cortador de Arame ワイヤーカッター 절단기 + 剪铁丝网钳 + 剪鐵絲網鉗 Cut Fence @@ -42,6 +46,8 @@ Разрезать забор フェンスを切断する 철조망 자르기 + 剪断护栏 + 剪斷護欄 Cutting Fences / Wires... @@ -56,6 +62,8 @@ Разрезаем забор / провода... フェンス/ワイヤを切断中・・・ 철망/철조망 자르는중... + 剪断护栏/刺网中... + 剪斷護欄/刺網中... Fence cut @@ -70,6 +78,8 @@ Забор разрезан フェンスを切断した 절단됨 + 护栏已被剪断 + 護欄已被剪斷 diff --git a/addons/magazinerepack/stringtable.xml b/addons/magazinerepack/stringtable.xml index f25f6f98102..14d65eacac8 100644 --- a/addons/magazinerepack/stringtable.xml +++ b/addons/magazinerepack/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Перепаковать магазины 弾倉を詰め替え 탄창 다시 채우기 + 重新整理弹匣 + 重新整理彈匣 Select Magazine Menu @@ -28,6 +30,8 @@ Меню выбора магазинов 弾倉メニューから選ぶ 탄창 메뉴 고르기 + 选择弹匣清单 + 選擇彈匣清單 Select Mag @@ -42,6 +46,8 @@ Выбрать магазин 弾倉を選択 탄창 고르기 + 选择弹匣 + 選擇彈匣 Repacking Magazines... @@ -56,6 +62,8 @@ Перепаковка магазинов... 弾倉を詰め替え中・・・ 다시 채우는중... + 重新整理弹匣中 ... + 重新整理彈匣中 ... Repacked Magazines @@ -70,6 +78,8 @@ Магазины перепакованы 弾倉の詰め替えが終わった 탄창 채워짐 + 弹匣已重新整理 + 彈匣已重新整理 %1 full mag(s) and %2 extra round(s) @@ -84,6 +94,8 @@ %1 полных магазина(ов) и %2 патрона(ов) %1 個の満杯な弾倉と入りきらなかった %2 個の弾倉 %1개의 꽉찬 탄창과 %2발의 총알이 남았다 + %1个满的弹匣与%2发额外子弹 + %1個滿的彈匣與%2發額外子彈 Repacking Finished @@ -98,6 +110,8 @@ Reorganização Terminada 詰め替えが完了 탄창 채우기 끝남 + 重整完成 + 重整完成 Repacking Interrupted @@ -112,6 +126,8 @@ Reorganização Interrompida 詰め替えを中断した 탄창 채우기 방해받음 + 重整被中断 + 重整被中斷 %1 Full and %2 Partial @@ -126,6 +142,8 @@ %1 Total e %2 Parcial %1 個の満杯で、 %2 の余分数 %1 꽉찼고 %2 부분참 + %1个满的与%2个部分的 + %1個滿的與%2個部分的 diff --git a/addons/main/stringtable.xml b/addons/main/stringtable.xml index 0442d4e9fb6..93b4df27008 100644 --- a/addons/main/stringtable.xml +++ b/addons/main/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -12,6 +12,8 @@ Logistica ACE ACE Logistique ACE ロジスティクス + ACE 后勤 + ACE 後勤 http://ace3mod.com/ @@ -25,6 +27,8 @@ http://ace3mod.com/ http://ace3mod.com/ http://ace3mod.com/ + http://ace3mod.com/ + http://ace3mod.com/ diff --git a/addons/map/stringtable.xml b/addons/map/stringtable.xml index d7fb92a3d6d..47cccfde829 100644 --- a/addons/map/stringtable.xml +++ b/addons/map/stringtable.xml @@ -14,6 +14,8 @@ Mappa 地図 지도 + 地图 + 地圖 Map illumination? @@ -28,6 +30,8 @@ Illuminazione Mappa? 地図に照明? 지도에 조명? + 地图照明? + 地圖照明? Simulate map lighting based on ambient lighting and player's items? @@ -41,6 +45,8 @@ Simula illuminazione della mappa in base alla luce ambientale e agli oggetti del giocatore? 環境光やプレイヤーのアイテムにより、地図へ光のシミュレーションをおこないますか? 주변 환경및 플레이어 조명에 의한 빛 변화를 지도에 반영할까요? + 透过环境光与玩家的物品来决定地图亮度? + 透過環境光與玩家的物品來決定地圖亮度? Map flashlight glow? @@ -54,6 +60,8 @@ Lumière de la lampe de carte ? 地図をフラッシュライトで照らしますか? 지도 조명이 빛이 납니까? + 增加地图亮度? + 增加地圖亮度? Add external glow to players who use flashlight on map? @@ -67,6 +75,8 @@ Aggiungi luce esterna a giocatori che usano la torcia in mappa? プレイヤが地図上でフラッシュライトを使うと、照らすようにしますか? 지도에 불빛을 비치는 플레이어를 조금 더 밝게 합니까? + 当玩家拥有手电筒时, 增加地图亮度? + 當玩家擁有手電筒時, 增加地圖亮度? Map shake? @@ -81,6 +91,8 @@ Scuoti la mappa? 地図を揺らしますか? 지도 흔들림? + 地图震动? + 地圖震動? Make map shake when walking? @@ -95,6 +107,8 @@ Far scuotere la mappa mentre cammini? 歩いているときは地図を揺らしますか? 걸을때 지도보면 흔들리게 합니까? + 走路时让地图有震动的感觉? + 走路時讓地圖有震動的感覺? Limit map zoom? @@ -109,6 +123,8 @@ Limita lo zoom in mappa? 地図の拡大を制限しますか? 지도 확대 제한? + 限制地图缩放倍率? + 限制地圖縮放倍率? Limit the amount of zoom available for the map? @@ -123,6 +139,8 @@ Limita l'ammontare di zoom disponibile per la mappa? 地図上で利用できる拡大倍率を制限しますか? 지도 확대에 제한을 둡니까? + 限制地图上可允许缩放的倍率? + 限制地圖上可允許縮放的倍率? Show cursor coordinates? @@ -137,6 +155,8 @@ Mostra coordinate sul cursore? カーソル先で座標を表示しますか? 커서에 좌표를 보이게 합니까? + 显示游标的座标? + 顯示游標的座標? Show the grid coordinates on the mouse pointer? @@ -151,6 +171,8 @@ Mostra la griglia coordinate sul cursore mouse? カーソルに合わせた先の地図座標を表示しますか? 지도에서 커서 옆에 좌표가 뜨게 합니까? + 显示滑鼠游标所在的网格座标? + 顯示滑鼠游標所在的網格座標? This module allows you to customize the map screen. @@ -165,6 +187,8 @@ Questo modulo ti permette di customizzare lo schermo della mappa. モジュールは地図画面をカスタマイズできます。 이 모듈은 지도 화면을 임의로 설정할 수 있게 해줍니다. + 此模块允许自定地图的相关效果. + 此模塊允許自定地圖的相關效果. Blue Force Tracking @@ -179,6 +203,8 @@ Blue Force Tracking ブルー フォース トラッキング GPS피아식별기 + 显示蓝方踪迹 + 顯示藍方蹤跡 BFT Enable @@ -193,6 +219,8 @@ Abilita BFT BFT を有効化 GPS피아식별기 켜기 + 蓝方踪迹启用 + 藍方蹤跡啟用 Enable Blue Force Tracking. Default: No @@ -207,6 +235,8 @@ Abilita Blue Force Tracking. Default: No ブルー フォース トラッキングを有効化します。標準:無効 GPS피아식별기 켭니다. 기본설정: 아니요 + 启用显示蓝方踪迹. 预设: 否 + 啟用顯示藍方蹤跡. 預設: 否 Interval @@ -221,6 +251,8 @@ Intervallo 間隔 간격 + 间隔 + 間隔 How often the markers should be refreshed (in seconds) @@ -235,6 +267,8 @@ Quanto spesso vengono aggiornati i marker (in secondi) マーカが再描画される間隔を設定できます(秒) 몇 초마다 마커를 새로 갱신합니까? + 设定每多少时间重新标示出单位位置 (秒) + 設定每多少時間重新標示出單位位置 (秒) Hide AI groups? @@ -249,6 +283,8 @@ Nascondere gruppi IA? AI グループを非表示にしますか? 인공지능 그룹을 숨깁니까? + 隐藏AI小队? + 隱藏AI小隊? Hide markers for 'AI only' groups? @@ -263,6 +299,8 @@ Nascondi markers per gruppi di sole IA? 'AI のみ'グループのマーカを隠しますか? 인공지능만 있는 그룹의 마커를 숨깁니까? + 隐藏'AI小队'的踪迹? + 隱藏'AI小隊'的蹤跡? Show player names? @@ -277,6 +315,8 @@ Mostra i nomi dei giocatori? プレイヤ名を表示しますか? 플레이어 이름을 표시합니까? + 显示玩家名称? + 顯示玩家名稱? Show individual player names? @@ -291,6 +331,8 @@ Mostra i nomi dei giocatori singoli? プレイヤの名前を表示しますか? 각 플레이어의 이름을 표시합니까? + 显示玩家的个别名称? + 顯示玩家的個別名稱? This module allows the tracking of allied units with BFT map markers. @@ -305,6 +347,8 @@ Questo modulo permette il tracciamento di unità alleate con i marker BFT in mappa モジュールは BFT マップ マーカとともに、同勢力ユニットの追跡を許可します。 이 모듈은 아군을 지도상에서 추적할 수 있게 해줍니다. + 此模块将使你能在地图上看见友方单位的踪迹. + 此模塊將使你能在地圖上看見友方單位的蹤跡. Flashlights @@ -318,6 +362,8 @@ Torcia フラッシュライト 손전등 + 手电筒 + 手電筒 NVG @@ -331,6 +377,8 @@ NVG 夜間暗視装置 야투경 + 夜视镜 + 夜視鏡 On @@ -344,6 +392,8 @@ Acceso 起動 켜기 + 开启 + 開啟 Off @@ -357,6 +407,8 @@ Spento 停止 끄기 + 关闭 + 關閉 Increase Brightness @@ -370,6 +422,8 @@ Aumenta Luminosità 感度を上げる 밝기 올리기 + 增加亮度 + 增加亮度 Decrease Brightness @@ -383,6 +437,8 @@ Diminuisci Luminosità 感度を下げる 밝기 내리기 + 降低亮度 + 降低亮度 Turn On %1 @@ -397,6 +453,8 @@ Активировать %1 %1 を点ける %1 켜기 + 开启%1 + 開啟%1 Turn Off %1 @@ -411,6 +469,8 @@ Деактивировать %1 %1 を消す %1 끄기 + 关闭%1 + 關閉%1 Set Channel At Start @@ -424,6 +484,8 @@ Mettre un canal par défaut 開始時のチャンネルを決定 시작시 채널 + 设定游戏开始时的聊天频道 + 設定遊戲開始時的聊天頻道 Change the starting marker channel at mission start @@ -437,6 +499,8 @@ Change le canal de communication par défaut au début de la mission. ミッション開始時にあらかじめ設定されているマーカ チャンネルを変更します 미션시작시 마커채널을 변경합니다 + 更改任务启动时的聊天频道 + 更改任務啟動時的聊天頻道 Disable BFT @@ -446,6 +510,8 @@ Wyłącz BFT Désactive le BFT Disablita BFT + 关闭友军踪迹 + 關閉友軍蹤跡 Always disable Blue Force Tracking for this group. @@ -455,6 +521,8 @@ Zawsze wyłączaj Blue Force Tracking dla tej grupy. Désactive en permanence le Blue Force Tracking pour ce groupe. Disabilita sempre il Blue Force Tracking per questo gruppo. + 对此小队永远关闭友军踪迹显示. + 對此小隊永遠關閉友軍蹤跡顯示. diff --git a/addons/map_gestures/stringtable.xml b/addons/map_gestures/stringtable.xml index fc543116eb5..6c3687c2dd2 100644 --- a/addons/map_gestures/stringtable.xml +++ b/addons/map_gestures/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,6 +13,8 @@ Gestes de carte マップ ジェスチャ 지도 신호 + 地图指示器 + 地圖指示器 Enabled @@ -26,6 +28,8 @@ Activer 有効化 켜기 + 启用 + 啟用 Map Gesture Max Range @@ -39,6 +43,8 @@ Distance max. des gestes de carte マップ ジェスチャの最大範囲 지도 신호 최대 거리 + 地图指示器最大范围 + 地圖指示器最大範圍 Max range between players to show the map gesture indicator [default: 7 meters] @@ -52,6 +58,8 @@ Distance max. entre les joueurs pour montrer le pointage sur carte. (Défaut : 7m) プレイヤのマップ ジェスチャによる表示範囲を設定します [標準:7 メートル] 플레이어간에 지도 신호 표시거리를 설정합니다. [기본: 7 미터] + 设定地图指示器显示的最大范围距离 [预设: 7公尺] + 設定地圖指示器顯示的最大範圍距離 [預設: 7公尺] Lead Default Color @@ -65,6 +73,8 @@ Couleur principale de commandement. リーダー用標準の色 리더 기본 색상 + 队长预设颜色 + 隊長預設顏色 Fallback Color value for group leaders when there is no group setting. [Module: leave blank to not force on clients] @@ -77,6 +87,8 @@ Couleur par défaut pour les chefs de groupe quand il n'y a pas de réglage pour le groupe. (Module : laisser vide pour ne pas forcer chez les clients) グループ設定が存在しない場合に、グループ リーダーへ設定される色の値を設定します。[モジュール:空の場合はクライアントへ強制しません] 그룹 설정이 없는 경우 리더의 예비 색상 값입니다. [모듈: 클라이언트에서 강체치 않기 위해 공백으로 비워둘것] + 当没有设定小队颜色时, 此功能会定义队长的指示器颜色. [模块: 此栏留空来保持预设颜色] + 當沒有設定小隊顏色時, 此功能會定義隊長的指示器顏色. [模塊: 此欄留空來保持預設顏色] Default Color @@ -90,6 +102,8 @@ Couleur par défaut 標準色 기본 색상 + 预设颜色 + 預設顏色 Fallback Color value when there is no group setting. [Module: leave blank to not force on clients] @@ -102,6 +116,8 @@ 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) グループ設定が存在しない場合に、グループ リーダーへ設定される色の値を設定します。[モジュール:空の場合はクライアントへ強制しません] 그룹 설정이 없을 경우의 예비 색상입니다. [모듈: 클라이언트에서 강체치 않기 위해 공백으로 비워둘것] + 当没有设定小队颜色时, 此功能会定义玩家的指示器颜色. [模块: 此栏留空来保持预设颜色] + 當沒有設定小隊顏色時, 此功能會定義玩家的指示器顏色. [模塊: 此欄留空來保持預設顏色] Lead Color @@ -115,6 +131,8 @@ Couleur de commandement リーダー用の色 리더 색상 + 队长颜色 + 隊長顏色 Color value for group leaders of groups synced with this module. @@ -127,6 +145,8 @@ Couleur pour les chefs de groupe des groupes synchronisés avec le module. モジュールで同期されたグループのリーダー用に色の値を決定します。 그룹이 이 모듈에 동기화 됐을때의 리더 색상입니다. + 改变与此同步小队队长的指示器颜色. + 改變與此同步小隊隊長的指示器顏色. Color @@ -140,6 +160,8 @@ Couleur 색상 + 颜色 + 顏色 Color value for group members of groups synced with this module. @@ -152,6 +174,8 @@ Couleur pour les membres du groupe synchronisé avec ce module. モジュールで同期されたグループのメンバ用に色の値を決定します。 그룹이 이 모듈에 동기화 됐을때의 멤버 색상입니다. + 改变与此同步小队队员的指示器颜色 + 改變與此同步小隊隊員的指示器顏色 Map Gestures - Group Settings @@ -165,6 +189,8 @@ Gestes de carte - réglages de groupe マップ ジェスチャ - グループ設定 지도 신호 - 그룹 설정 + 地图指示器 - 队伍设定 + 地圖指示器 - 隊伍設定 Update Interval @@ -178,6 +204,8 @@ Intervalle de mise à jour 更新間隔 갱신 간격 + 更新间隔 + 更新間隔 Time between data updates. @@ -191,6 +219,8 @@ Temps entre les actualisations de données データの更新間隔 데이터 갱신 간격 + 定义每次更新数据的时间. + 定義每次更新數據的時間. Enables the Map Gestures. @@ -204,6 +234,8 @@ Activer les gestes de carte マップ ジェスチャを有効化 지도 신호 활성화 + 启用地图指示器 + 啟用地圖指示器 Name Text Color @@ -217,6 +249,8 @@ Couleur du texte du nom 名前への色 글 색상 명칭 + 名称文字颜色 + 名稱文字顏色 Color of the name tag text besides the map gestures mark. @@ -229,6 +263,8 @@ Couleur des tags de nom à côté de marqueur de pointage sur carte. マップ ジェスチャに表示される、名前の色を決定します。 지도 색상에 표시되는 이름의 색상을 결정합니다. + 定义名称文字颜色. 使其与地图指示器颜色有所区别. + 定義名稱文字顏色. 使其與地圖指示器顏色有所區別. Map Gestures @@ -242,6 +278,8 @@ Gestes de carte マップ ジェスチャ 지도 신호 + 地图指示器 + 地圖指示器 diff --git a/addons/maptools/stringtable.xml b/addons/maptools/stringtable.xml index da72ba5a52b..8f380eb8c1f 100644 --- a/addons/maptools/stringtable.xml +++ b/addons/maptools/stringtable.xml @@ -14,6 +14,8 @@ Инструменты карты マップ ツール 독도용 도구 + 地图工具 + 地圖工具 The Map Tools allow you to measure distances and angles on the map. @@ -28,6 +30,8 @@ Картографические инструменты позволяют измерять расстояния и углы на карте. マップ ツールは地図上で距離や角度を測れます。 독도용 도구는 지도상에서 거리나 각도를 잴 수 있게 해줍니다. + 地图工具能够让你在地图上测量距离与角度 + 地圖工具能夠讓你在地圖上測量距離與角度 Map Tools @@ -42,6 +46,8 @@ Инструменты карты マップ ツール 독도용 도구 + 地图工具 + 地圖工具 Hide Map Tool @@ -56,6 +62,8 @@ Скрыть инструменты マップ ツールを隠す 독도용 도구 숨기기 + 隐藏地图工具 + 隱藏地圖工具 Show Normal Map Tool @@ -70,6 +78,8 @@ Показать инструменты (средн. размер) マップ ツールを表示する 보통 독도용 도구로 보기 + 显示地图工具 + 顯示地圖工具 Show Small Map Tool @@ -84,6 +94,8 @@ Показать инструменты (малый размер) 小さいマップ ツールを表示する 작은 독도용 도구로 보기 + 显示小的地图工具 + 顯示小的地圖工具 Align Map Tool to North @@ -98,6 +110,8 @@ Выровнять инструменты на север マップ ツールを北に合わせる 독도용 도구를 북쪽으로 정렬 + 地图工具对准北方 + 地圖工具對準北方 Align Map Tool to Compass @@ -112,6 +126,8 @@ Выровнять инструменты по компасу マップ ツールを方位磁石に合わせる 독도용 도구를 나침반에 정렬 + 地图工具对准指北针 + 地圖工具對準指北針 Show GPS on Map @@ -126,6 +142,8 @@ Показать GPS на карте 地図上に GPS を表示する GPS를 지도상에 꺼내기 + 在地图上显示GPS + 在地圖上顯示GPS Hide GPS on Map @@ -140,6 +158,8 @@ Скрыть GPS на карте 地図上から GPS を隠す GPS를 지도상에서 숨기기 + 在地图上隐藏GPS + 在地圖上隱藏GPS Direction: %1° @@ -154,6 +174,8 @@ Direção: %1 方位:%1° 방위: %1° + 方位: %1° + 方位: %1° Rotate Map Tools Key @@ -164,6 +186,8 @@ Taste zum Drehen des Kartenwerkzeugs 독도용 도구 돌리기 키 Ruota Strumenti di Mappatura + 选转地图工具的按键 + 選轉地圖工具的按鍵 Modifier key to allow rotating map tools @@ -174,6 +198,8 @@ Steuerungstaste, um Drehung des Kartenwerkzeugs zu ermöglichen. 독도용 도구를 돌리기 위한 키를 변경할 수 있습니다. Tasto modifica per consentire strumenti di mappatura rotanti + 修改旋转地图工具的按键 + 修改旋轉地圖工具的按鍵 Draw straight lines with maptools @@ -183,6 +209,8 @@ Rysuj proste linie przy użyciu narzędzi nawigacyjnych Tracer des lignes droites Disegna linee dritte con gli strumenti di mappatura + 使用地图工具来绘制直线 + 使用地圖工具來繪製直線 Draw on the edge of maptools to draw straight lines. Note: Must hover at midpoint to delete. @@ -192,6 +220,8 @@ Przeciągnij po krawędzi narzędzi nawigacyjnych by narysować prostą linię. Uwaga: aby usunąć linię - nalezy ustawić kursor nad jej środkiem. Utiliser le bord des outils de navigation pour tracer des lignes droites. Note: l'on doit survoler le milieu du trait pour pouvoir le supprimer. Disegna sul bordo degli strumenti di mappatura per disegnare linee dritte. Nota: Deve spostarsi al centro per essere cancellato. + 使用地图工具的边缘来绘制直线. 备注: 要删除直线时, 请把滑鼠移动到该线条的中央即可删除该线. + 使用地圖工具的邊緣來繪製直線. 備註: 要刪除直線時, 請把滑鼠移動到該線條的中央即可刪除該線. diff --git a/addons/markers/stringtable.xml b/addons/markers/stringtable.xml index 261d7a0687f..7d6dc2b23ae 100644 --- a/addons/markers/stringtable.xml +++ b/addons/markers/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Direção %1 方位:%1° 방위: %1° + 方位: %1° + 方位: %1° - \ No newline at end of file + diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index d3eefa0c428..8061d2511c2 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ FERIMENTOS 負傷 부상 + 受伤 + 受傷 No injuries on this bodypart... @@ -28,6 +30,8 @@ Nenhum ferimento nesta parte do corpo... 怪我をしていない 이 부위에는 부상이 없습니다... + 此身体部位没有受伤 + 此身體部位沒有受傷 Litter Simulation Detail @@ -42,6 +46,8 @@ Počet zobrazených předmětů po použití zdravotnického materiálu 医療廃棄物を再現する詳細度 의료폐기물 재현 상세도 + 医疗废弃物模拟细节 + 醫療廢棄物模擬細節 Litter simulation detail level sets the number of litter items which will be locally spawned in the client. Excessive amounts in local areas could cause FPS lag, so this is a client only setting. @@ -56,6 +62,8 @@ Počet zobrazených předmětů po použití zdravotnického materiálu ovlivňuje počet objektů, které budou zobrazeny klientovi v místě použití zdravotnického materiálu. Vyšší množství objektů může způsobovat poklesy FPS a proto je toto nastavení čistě na klientovi. 医療廃棄物再現度は各クライアントでローカルに作成される、医療廃棄物への詳細度を決定できます。ローカルで多くのアイテムがあると FPS の低下を引き起こすため、クライアント側のみの設定です。 의료폐기물 재현 상세도의 경우 얼마나 많은 수의 폐기물이 클라이언트 주변에 생성되는지를 정합니다. 매우 많은 수의 지역은 프레임드랍을 유발할 수 있습니다, 고로 이는 클라이언트 전용 설정입니다. + 设定医疗废弃物的最大产生数量, 过多的数量会导致画面更新率延迟, 因此这由用户端来设定 + 設定醫療廢棄物的最大產生數量, 過多的數量會導致畫面更新率延遲, 因此這由用戶端來設定 Inject Adenosine @@ -69,6 +77,8 @@ Ввести аденозин アデノシンを投与 아데노신 주사 + 注射腺苷 + 注射腺苷 Inject Atropine @@ -83,6 +93,8 @@ Injetar Atropina アトロピンを投与 아트로핀 주사 + 注射阿托品 + 注射阿托品 Inject Epinephrine @@ -97,6 +109,8 @@ Inietta adrenalina アドレナリンを投与 에피네프린 주사 + 注射肾上腺素 + 注射腎上腺素 Inject Morphine @@ -111,6 +125,8 @@ Inietta morfina モルヒネを投与 모르핀 주사 + 注射吗啡 + 注射嗎啡 Transfuse Blood @@ -125,6 +141,8 @@ Trasfusione di sangue 輸血する 혈액 수혈 + 输血液 + 輸血液 Transfuse Plasma @@ -139,6 +157,8 @@ Transfundir Plasma 血しょうを投与 혈장 수혈 + 输血浆 + 輸血漿 Transfuse Saline @@ -153,6 +173,8 @@ Transfundir Soro 生理食塩水を投与 생리식염수 수혈 + 注射生理食盐水 + 注射生理食鹽水 Apply Tourniquet @@ -167,6 +189,8 @@ Érszorító alkalmazása 止血帯を巻く 지혈대 적용 + 使用军用止血带 + 使用軍用止血帶 Bandage @@ -181,6 +205,8 @@ Перевязать 包帯 붕대 + 绷带 + 繃帶 Bandage Head @@ -195,6 +221,8 @@ Benda la testa 包帯を頭へ 머리에 붕대감기 + 绷带包扎 头部 + 繃帶包紮 頭部 Bandage Torso @@ -209,6 +237,8 @@ Benda il torso 包帯を胴体へ 몸통에 붕대감기 + 绷带包扎 身体 + 繃帶包紮 身體 Bandage Left Arm @@ -223,6 +253,8 @@ Benda il braccio sinistro 包帯を左腕に 왼팔에 붕대감기 + 绷带包扎 左手 + 繃帶包紮 左手 Bandage Right Arm @@ -237,6 +269,8 @@ Benda il braccio destro 包帯を右腕に 오른팔에 붕대감기 + 绷带包扎 右手 + 繃帶包紮 右手 Bandage Left Leg @@ -251,6 +285,8 @@ Benda la gamba sinistra 包帯を左足へ 왼쪽 다리에 붕대감기 + 绷带包扎 左脚 + 繃帶包紮 左腳 Bandage Right Leg @@ -265,6 +301,8 @@ Benda la gamba destra 包帯を右足へ 오른쪽 다리에 붕대감기 + 绷带包扎 右脚 + 繃帶包紮 右腳 Injecting Morphine... @@ -279,6 +317,8 @@ Inietto la morfina... モルヒネを投与中・・・ 모르핀 주사중... + 吗啡注射中... + 嗎啡注射中... Injecting Epinephrine... @@ -293,6 +333,8 @@ Inietto l'adrenalina... アドレナリンを投与中・・・ 에피네프린 주사중... + 肾上腺素注射中... + 腎上腺素注射中... Injecting Adenosine... @@ -306,6 +348,8 @@ Введение аденозина... アドネシンを投与中・・・ 아데노신 주사중... + 腺苷注射中... + 腺苷注射中... Injecting Atropine... @@ -320,6 +364,8 @@ Injetando Atropina アトロピンを投与中・・・ 아트리핀 주사중... + 阿托品注射中 ... + 阿托品注射中 ... Transfusing Blood... @@ -334,6 +380,8 @@ Effettuo la trasfusione di sangue... 輸血中・・・ 혈액 수혈중... + 输血液中 ... + 輸血液中 ... Transfusing Saline... @@ -348,6 +396,8 @@ Transfundindo Soro... 血しょうを投与中・・・ 생리식염수 수혈중... + 施打生理食盐水中 ... + 施打生理食鹽水中 ... Transfusing Plasma... @@ -362,6 +412,8 @@ Transfundindo Plasma... 生理食塩水を投与中・・・ 혈장 수혈중... + 输血浆中 ... + 輸血漿中 ... Bandaging... @@ -376,6 +428,8 @@ Перевязывание... 包帯を巻いています・・・ 붕대감는중... + 绷带包扎中 ... + 繃帶包紮中 ... Applying Tourniquet... @@ -390,6 +444,8 @@ Applicando Torniquete 止血帯を巻いています・・・ 지혈대 적용중... + 使用军用止血带中 ... + 使用軍用止血帶中 ... Medical @@ -404,6 +460,8 @@ Orvosi 治療 치료 + 医疗 + 醫療 Field Dressing @@ -418,6 +476,8 @@ Curativo de Campo 緊急圧迫包帯 필드 드레싱 + 基础绷带 + 基礎繃帶 Packing Bandage @@ -432,6 +492,8 @@ Obvaz Tlakový 弾性包帯 거즈 붕대 + 包扎绷带 + 包紮繃帶 Elastic Bandage @@ -446,6 +508,8 @@ Bandagem Elástica 伸縮包帯 압박 붕대 + 弹性绷带 + 彈性繃帶 QuikClot @@ -460,6 +524,8 @@ QuikClot クイッククロット 퀵 클롯 + 止血粉 + 止血粉 Check Pulse @@ -474,6 +540,8 @@ Checar Pulso 心拍数をはかる 맥박 확인 + 检查脉搏 + 檢查脈搏 Check Blood Pressure @@ -488,6 +556,8 @@ Chegar Pressão Sanguínea 血圧をはかる 혈압 확인 + 检查血压 + 檢查血壓 Triage Card @@ -502,6 +572,8 @@ Cartão de Triagem トリアージ カード 부상자 분류 카드 + 检伤分类卡 + 檢傷分類卡 No entries on this triage card. @@ -516,6 +588,8 @@ Nenhuma entrada neste cartão de triagem トリアージ カードには何も無い 부상자 분류 카드에 쓰여있는것이 없습니다. + 此检伤分类卡上没有任何资料 + 此檢傷分類卡上沒有任何資料 Tourniquet @@ -530,6 +604,8 @@ Torniquete 止血帯 지혈대 + 军用止血带 + 軍用止血帶 Remove Tourniquet @@ -544,6 +620,8 @@ Remover Torniquete 止血帯をはずす 지혈대 제거 + 移除军用止血带 + 移除軍用止血帶 Diagnose @@ -558,6 +636,8 @@ Diagnosticar 診断する 진단 + 诊断 + 診斷 Diagnosing... @@ -572,6 +652,8 @@ Diagnosticando... 診断中・・・ 진단중... + 诊断中... + 診斷中... CPR @@ -586,6 +668,8 @@ SBV 心肺蘇生 심폐소생술 + 心肺复苏术 + 心肺復甦術 Performing CPR... @@ -600,6 +684,8 @@ Realizando o SBV... 心肺蘇生を実行中・・・ 심폐소생중... + 进行心肺复苏术中... + 進行心肺復甦術中... Give Blood IV (1000ml) @@ -614,6 +700,8 @@ Administrar Sangue IV (1000ml) 血液 IV (1000ml) をあたえる IV 혈액 수혈 (1000ml) + 输血液 (1000ml) + 輸血液 (1000ml) Give Blood IV (500ml) @@ -628,6 +716,8 @@ Administrar Sangue IV (500ml) 血液 IV (500ml) をあたえる IV 혈액 수혈 (500ml) + 输血液 (500ml) + 輸血液 (500ml) Give Blood IV (250ml) @@ -642,6 +732,8 @@ Administrar Sangue IV (250ml) 血液 IV (250ml) をあたえる IV 혈액 수혈 (250ml) + 输血液 (250ml) + 輸血液 (250ml) Give Plasma IV (1000ml) @@ -656,6 +748,8 @@ Administrar Plasma IV (1000ml) 血しょう IV (1000ml) をあたえる IV 혈장 수혈 (1000ml) + 输血浆 (1000ml) + 輸血漿 (1000ml) Give Plasma IV (500ml) @@ -670,6 +764,8 @@ Administrar Plasma IV (500ml) 血しょう IV (500ml) をあたえる IV 혈장 수혈 (500ml) + 输血浆 (500ml) + 輸血漿 (500ml) Give Plasma IV (250ml) @@ -684,6 +780,8 @@ Administrar Plasma IV (250ml) 血しょう IV (250ml) をあたえる IV 혈장 수혈 (250ml) + 输血浆 (250ml) + 輸血漿 (250ml) Give Saline IV (1000ml) @@ -698,6 +796,8 @@ Administrar Soro IV (1000ml) 血しょう IV (1000ml) をあたえる IV 생리식염수 수혈 (1000ml) + 注射生理食盐水 (1000ml) + 注射生理食鹽水 (1000ml) Give Saline IV (500ml) @@ -712,6 +812,8 @@ Administrar Soro IV (500ml) 血しょう IV (500ml) をあたえる IV 생리식염수 수혈 (500ml) + 注射生理食盐水 (500ml) + 注射生理食鹽水 (500ml) Give Saline IV (250ml) @@ -726,6 +828,8 @@ Administrar Soro IV (250ml) 血しょう IV (250ml) をあたえる IV 생리식염수 수혈 (250ml) + 注射生理食盐水 (250ml) + 注射生理食鹽水 (250ml) Minor @@ -740,6 +844,8 @@ Leve 保留群 경미 + 轻微 + 輕微 Delayed @@ -754,6 +860,8 @@ Atrasado 待機的治療群 늦어짐 + 延后 + 延後 Immediate @@ -768,6 +876,8 @@ Imediato 再優先治療群 긴급 + 紧急 + 緊急 Deceased @@ -782,6 +892,8 @@ Falecido 死亡群 사망 + 死亡 + 死亡 None @@ -796,6 +908,8 @@ Nenhum なし 없음 + 未分类 + 未分類 Normal breathing @@ -810,6 +924,8 @@ Respiração normal 通常の呼吸 정상 호흡 + 呼吸正常 + 呼吸正常 No breathing @@ -824,6 +940,8 @@ Não respira 息をしていない 호흡 불가 + 没有呼吸 + 沒有呼吸 Difficult breathing @@ -838,6 +956,8 @@ Dificuldade para respirar 呼吸が苦しそうだ 호흡 곤란 + 呼吸困难 + 呼吸困難 Almost no breathing @@ -852,6 +972,8 @@ Quase não respira ほとんど呼吸をしていない 호흡이 없음 + 快要没呼吸 + 快要沒呼吸 Bleeding @@ -866,6 +988,8 @@ Sangrando 出血している 출혈 + 流血中 + 流血中 In pain @@ -880,6 +1004,8 @@ Com dor 痛みがある 고통 + 疼痛中 + 疼痛中 Lost a lot of Blood @@ -894,6 +1020,8 @@ Perdeu muito sangue 大量出血している 많은 양의 혈액을 잃음 + 大量失血中 + 大量失血中 Tourniquet [CAT] @@ -908,6 +1036,8 @@ Torniquete [CAT] 止血帯 [CAT] 지혈대 [CAT] + 军用止血带 + 軍用止血帶 Receiving IV [%1ml] @@ -922,6 +1052,8 @@ Recebendo IV [%1ml] IV [%1ml] を投与されている IV로 [%1ml] 수혈중 + 接收静脉注射液中 [%1ml] + 接收靜脈注射液中 [%1ml] Bandage (Basic) @@ -936,6 +1068,8 @@ Bandagem(Básico) 包帯 (緊急圧迫) 붕대 (기본) + 基础绷带 + 基礎繃帶 Used to cover a wound @@ -950,6 +1084,8 @@ Slouží k překrytí poranění 傷口をおおう 상처를 덮을때 씁니다 + 用于覆盖伤口 + 用於覆蓋傷口 A dressing, that is a particular material used to cover a wound, which is applied over the wound once bleeding has been stemmed. @@ -964,6 +1100,8 @@ Obvaz je vhodným způsobem upravený sterilní materiál, určený k překrytí rány, případně k fixaci poranění. ドレッシングは、傷口を血液凝固剤でおおうようにできていて、つかうと出血の原因を取りさります。 드레싱, 출혈을 막고서 상처를 덮기위해 쓰는 물건입니다. + 用于覆盖伤口以防止出血, 透过敷料的止血剂来让出血慢慢停止. + 用於覆蓋傷口以防止出血, 透過敷料的止血劑來讓出血慢慢停止. Packing Bandage @@ -978,6 +1116,8 @@ Obvaz (Tlakový) 弾性包帯 거즈 붕대 + 包扎绷带 + 包紮繃帶 Used to pack medium to large wounds and stem the bleeding @@ -992,6 +1132,8 @@ Používá se k zastavení středních až silnějších krvácení 弾性包帯は粘着フィルム状で、普通から大きめなケガにつかい止血します。 중형 또는 대형 상처를 채우고 출혈을 막기위해 쓰입니다 + 用于包扎中到大型伤口, 并防止出血 + 用於包紮中到大型傷口, 並防止出血 A bandage used to pack the wound to stem bleeding and facilitate wound healing. Packing a wound is an option in large polytrauma injuries. @@ -1006,6 +1148,8 @@ Tlakový obvaz se skládá se ze sterilní krycí vrstvy, na kterou je přiložena silná vrstva savého materiálu stlačující cévu v ráně a která je přitlačována k ráně a připevněna obinadlem. Slouží k zastavení silnějších krvácení. 包帯をつかうと出血の原因を取りのぞき、それを促進させます。また大きめな多発性外傷にたいしても使えます。 출혈을 막고 상처를 치유하기 위한 붕대. 다발성외상의 경우 상처를 채우는것도 한 가지 방법입니다. + 用于包扎中到大型伤口, 并防止出血, 为在大型多处性伤口的选项之一! + 用於包紮中到大型傷口, 並防止出血, 為在大型多處性傷口的選項之一! Bandage (Elastic) @@ -1020,6 +1164,8 @@ Bandagem (Elástica) 包帯 (伸縮) 붕대 (압박) + 弹性绷带 + 彈性繃帶 Bandage kit, Elastic @@ -1034,6 +1180,8 @@ Sada obvazů, Elastická 包帯キット (伸縮) 붕대, 압박 + 弹性绷带 + 彈性繃帶 Allows an even compression and extra support to the injured area. @@ -1048,6 +1196,8 @@ Hodí se k fixačním účelům a to i v oblastech kloubů. 負傷部分へ最大の対応と止血を続けられます。 부상 부위를 골고루 압박해주면서 동시에 고정시켜 줍니다. + 可对伤口持续压迫并固定以防止伤口情况变严重. + 可對傷口持續壓迫並固定以防止傷口情況變嚴重. Tourniquet (CAT) @@ -1062,6 +1212,8 @@ Torniquete (CAT) 止血帯 (CAT) 지혈대 [CAT] + 军用止血带 + 軍用止血帶 Slows down blood loss when bleeding @@ -1076,6 +1228,8 @@ Zpomaluje ztráty krve při krvácení 出血しているときに、流れ出る量をへらします。 출혈 시 혈액손실을 늦춰줍니다 + 减缓失血的速度 + 減緩失血的速度 A constricting device used to compress venous and arterial circulation in effect inhibiting or slowing blood flow and therefore decreasing loss of blood. @@ -1090,6 +1244,8 @@ Zařízení používané ke stlačení venózního a arteriálního oběhu. V důsledku dochází ke zpomalení toku krve a tedy i snížení ztrát krve. 止血帯は静脈や動脈へ圧力をかけ、循環を遅らせることで血液の流れをおそくし、失血を防ぎます。 정맥과 동맥을 압축시키켜 혈액순환을 억제 혹은 늦추게하여 혈액손실을 줄이는 도구입니다. + 用于压迫静脉与动脉的血液流动, 达到减缓失血速度的目的. + 用於壓迫靜脈與動脈的血液流動, 達到減緩失血速度的目的. Morphine autoinjector @@ -1104,6 +1260,8 @@ Auto-injetor de morfina モルヒネ 모르핀 자동주사기 + 吗啡自动注射器 + 嗎啡自動注射器 Used to combat moderate to severe pain experiences @@ -1118,6 +1276,8 @@ Slouží k tlumení středně těžkých a těžkých bolestí 戦闘が収まったとき、痛みにたいしてつかいます。 심한 통증을 완화하는데 쓰입니다 + 减低中度至重度的疼痛感 + 減低中度至重度的疼痛感 An analgesic used to combat moderate to severe pain experiences. @@ -1132,6 +1292,8 @@ Analgetikum slouží k tlumení středně těžkých a těžkých bolestí 戦闘が収まったとき、モルヒネを痛みにたいしてつかいます。 심한 통증을 완화하기 위해 쓰이는 진통제입니다. + 止痛药的一种, 用于减低中度至重度的疼痛感. + 止痛藥的一種, 用於減低中度至重度的疼痛感. Adenosine autoinjector @@ -1145,6 +1307,8 @@ Аденозин в пневмошприце アデノシン 아데노신 자동주사기 + 腺苷自动注射器 + 腺苷自動注射器 Used to counter effects of Epinephrine @@ -1158,6 +1322,8 @@ Используется для купирования эффектов адреналина アドレナリンの反対の効果としてつかいます。 에피네프린 대응책으로 쓰입니다 + 用来对付肾上腺素的影响 + 用來對付腎上腺素的影響 A drug used to counter the effects of Epinephrine @@ -1171,6 +1337,8 @@ Препарат используется для купирования эффектов адреналина つかうと、アドレナリンと反対の効果がでます。 에피네프린에 대응용으로 쓰이는 약품 + 一种药物用于减低肾上腺素的效果 + 一種藥物用於減低腎上腺素的效果 Atropine autoinjector @@ -1185,6 +1353,8 @@ Auto-injetor de Atropina アトロピン 아트로핀 자동주사기 + 阿托品自动注射器 + 阿托品自動注射器 Used in NBC scenarios @@ -1199,6 +1369,8 @@ Používá se v přítomnosti nervových plynů 核・生物・化学兵器がつかわれている条件下にてつかいます。 핵,생물,화학 상황에 쓰입니다 + 使用于核生化污染的情况 + 使用於核生化汙染的情況 A drug used by the Military in NBC scenarios. @@ -1213,6 +1385,8 @@ Atropin slouží jako protijed na otravu organofosfátovými insekticidy (diazinon) a nervovými plyny. 核・生物・化学兵器がつかわれている条件下にてつかいます。 핵,생물,화학 상황에 쓰이는 군용 약품 + 军用神经解毒针, 用来应付核生化污染的情况. + 軍用神經解毒針, 用來應付核生化汙染的情況. Epinephrine autoinjector @@ -1227,6 +1401,8 @@ Auto-injetor de epinefrina アドレナリン 에피네프린 자동주사기 + 肾上腺素自动注射器 + 腎上腺素自動注射器 Increase heart rate and counter effects given by allergic reactions @@ -1241,6 +1417,8 @@ Zvyšuje srdeční frekvenci a chrání před alergickými reakcemi 心拍数を増加させたり、アレルギー反応を収める効果もあります。 심박수를 높이며 알러지반응의 대응책입니다 + 增加心跳速率的一种药物 + 增加心跳速率的一種藥物 A drug that works on a sympathetic response to dilate the bronchi, increase heart rate and counter such effects given by allergic reactions (anaphylaxis). Used in sudden cardiac arrest scenarios with decreasing positive outcomes. @@ -1255,6 +1433,8 @@ Zúžení periferních cév díky působení na alfa receptory a následné kontrakci hladkých svalů, tím dochází k tzv. centralizaci oběhu, krev se soustřeďuje v životně důležitých centrálních orgánech (srdce, mozek, plíce), působí také pozitivně na srdeční činnost a dochází ke zvýšení krevního tlaku a tepu. Dále se používá při náhlé srdeční zástavě. 薬は気管支を拡張するよう交感神経を拡張させ、心拍数を増加させます。それにアレルギー反応を収める効果もあります(アナフィラキシー ショック)。得られる効果は少ないですが、心停止している場合などにつかわれます。 기관지를 확장시키는 교감 신경 반응을 이끌어내는 약물로써, 심박을 높이고 알러지 효과에 대응합니다(아나필락시스). 심폐가 정지하는 경우 호전이 되지않을때 사용합니다. + 俗称强心针, 为一种支气管扩张药物, 会增加心跳速率并减缓过敏反应(过敏性休克), 在心跳骤停时有恢复心跳的效果! + 俗稱強心針, 為一種支氣管擴張藥物, 會增加心跳速率並減緩過敏反應(過敏性休克), 在心跳驟停時有恢復心跳的效果! Plasma IV (1000ml) @@ -1269,6 +1449,8 @@ Krevní plazma (1000ml) 生理食塩水 IV (1000ml) 혈장 IV (250ml) + 血浆 (1000ml) + 血漿 (1000ml) A volume-expanding blood supplement. @@ -1283,6 +1465,8 @@ Intravenózně podávaný doplněk k zvětšení objemu krve 血液量を増加させる補助です。 혈액량을 늘리기위한 보조수단 입니다. + 可快速得到血液补充 + 可快速得到血液補充 A volume-expanding blood supplement. @@ -1297,6 +1481,8 @@ Intravenózně podávaný doplněk k zvětšení objemu krve 血液量を増加させる補助です。 혈액량을 늘리기위한 보조수단 입니다. + 可快速得到血液补充 + 可快速得到血液補充 Plasma IV (500ml) @@ -1311,6 +1497,8 @@ Krevní plazma (500ml) 生理食塩水 IV (500ml) 혈장 IV (500ml) + 血浆 (500ml) + 血漿 (500ml) Plasma IV (250ml) @@ -1325,6 +1513,8 @@ Krevní plazma (250ml) 生理食塩水 IV (250ml) 혈장 IV (250ml) + 血浆 (250ml) + 血漿 (250ml) Blood IV (1000ml) @@ -1339,6 +1529,8 @@ Krevní transfúze (1000ml) 血液 IV (1000ml) 혈액 IV (1000ml) + 血液 (1000ml) + 血液 (1000ml) Blood IV, for restoring a patients blood (keep cold) @@ -1353,6 +1545,8 @@ Krevní transfuze pro doplnění pacientovi krve (skladujte v chladu) 血液 IV は、患者へ血液を補給します。(要低温保存) 혈액 IV, 환자에게 혈액을 공급합니다. (차갑게 할것) + 血液, 用于补充伤者流失的血液 (需冷藏) + 血液, 用於補充傷者流失的血液 (需冷藏) O Negative infusion blood used in strict and rare events to replenish blood supply usually conducted in the transport phase of medical care. @@ -1367,6 +1561,8 @@ 0 Rh negativní krev se používá v vzácných případech k doplnění pacientovy hladiny krve, obvykle při převozu zraněné osoby do nemocnice. O 型への輸血はまれで厳格であり、通常は治療のための輸送段階で輸血をおこないます。 O- 형 혈액 투여는 매우 엄격하고 드문 혈액보급의 경우에 쓰이는데 주로 치료의 운송단계에서 사용됩니다. + O型负值注射用血液, 在紧急情况时使用, 用于补充伤者流失的血液 + O型負值注射用血液, 在緊急情況時使用, 用於補充傷者流失的血液 Blood IV (500ml) @@ -1381,6 +1577,8 @@ Krevní transfúze (500ml) 血液 IV (500ml) 혈액 IV (500ml) + 血液 (500ml) + 血液 (500ml) Blood IV (250ml) @@ -1395,6 +1593,8 @@ Krevní transfúze (250ml) 血液 IV (250ml) 혈액 IV (250ml) + 血液 (250ml) + 血液 (250ml) Saline IV (1000ml) @@ -1409,6 +1609,8 @@ Fyziologický roztok (1000ml) 生理食塩水 IV (1000ml) 생리식염수 IV (1000ml) + 生理食盐水 (1000ml) + 生理食鹽水 (1000ml) Saline IV, for restoring a patients blood @@ -1423,6 +1625,8 @@ Fyziologický roztok se aplikuje intravenózně a slouží k obnově pacientovi krve 生理食塩水 IV は、患者の血液量を補助します 생리식염수, 환자의 혈액량을 보충할때 쓰입니다 + 生理食盐水, 用于恢复伤者血液 + 生理食鹽水, 用於恢復傷者血液 A medical volume-replenishing agent introduced into the blood system through an IV infusion. @@ -1437,6 +1641,8 @@ Fyziologický roztok se využívá nejčastěji jako infuze při dehydrataci organismu. 生理食塩水 IV を静脈へ投与し、血液量を増加させることができます。 혈류에 IV로 투여되는 의료 용적 대체 요법 + 利用静脉注射进入人体血液系统, 帮助伤者血液恢复 + 利用靜脈注射進入人體血液系統, 幫助傷者血液恢復 Saline IV (500ml) @@ -1451,6 +1657,8 @@ Fyziologický roztok (500ml) 生理食塩水 IV (500ml) 생리식염수 IV (500ml) + 生理食盐水 (500ml) + 生理食鹽水 (500ml) Saline IV (250ml) @@ -1465,6 +1673,8 @@ Fyziologický roztok (250ml) 生理食塩水 IV (250ml) 생리식염수 IV (250ml) + 生理食盐水 (250ml) + 生理食鹽水 (250ml) Basic Field Dressing (QuikClot) @@ -1479,6 +1689,8 @@ Hemostatický obvaz (QuikClot) 緊急圧迫止血包帯 (クイッククロット) 필드 드레싱 (퀵 클롯) + 基本战地包扎 (止血粉) + 基本戰地包紮 (止血粉) QuikClot bandage @@ -1493,6 +1705,8 @@ Hemostatický obvaz (QuikClot) クイッククロット 퀵 클롯 붕대 + 止血粉绷带 + 止血粉繃帶 Hemostatic bandage with coagulant that stops bleeding. @@ -1507,6 +1721,8 @@ Hemostatický obvaz určený k zástavě krvácení 血液凝固剤をふくむ包帯により、止血できます。 지혈시 사용하는 붕대로 혈액 응고제를 포함하고있습니다. + 包含止血粉成分的止血绷带, 可用于止血 + 包含止血粉成分的止血繃帶, 可用於止血 Personal Aid Kit @@ -1521,6 +1737,8 @@ Osobní lékárnička (PAK) 応急処置キット 개인응급키트 + 个人急救包 + 個人急救包 Includes various treatment kit needed for stitching or advanced treatment @@ -1535,6 +1753,8 @@ Osobní lékárnička obsahuje zdravotnický materiál umožňující šití a pokročilejší ošetřování raněných 縫合や高度な処置に必要とされる、さまざまな治療器具が含まれています。 봉합및 고급 조치에 필요한 다양한 치료 도구가 있습니다. + 包含各种医疗套件, 以及进阶伤口系统需要的缝合用品. + 包含各種醫療套件, 以及進階傷口系統需要的縫合用品. Personal Aid Kit for in field stitching or advanced treatment @@ -1549,6 +1769,8 @@ Pronto soccorso personale da campo per mettersi i punti o per trattamenti avanzati. 戦場で縫合や高度な処置に必要とされる、さまざまな治療器具が含まれています。 야전에서 봉합및 고급 조치를 위한 개인응급키트 + 个人急救包可用于战地缝合手术或进阶伤口系统使用. + 個人急救包可用於戰地縫合手術或進階傷口系統使用. Use Personal Aid Kit @@ -1563,6 +1785,8 @@ Usa il pronto soccorso personale 応急処置キットをつかう 개인 응급 키트사용하기 + 使用个人急救包 + 使用個人急救包 Surgical Kit @@ -1577,6 +1801,8 @@ Chirurgická sada 縫合キット 봉합 키트 + 手术包 + 手術包 Surgical Kit for in field advanced medical treatment @@ -1591,6 +1817,8 @@ Chirurgická sada určená k pokročilejším zdravotnickým zákrokům v poli 縫合キットは戦場で高度な処置をするためにつかわれます。 야전 상황에서 고급 의료 처치를 위해 사용되는 봉합 키트 + 用于在战场上为伤口进行缝合(需要开启进阶伤口系统). + 用於在戰場上為傷口進行縫合(需要開啟進階傷口系統). Surgical Kit for in field advanced medical treatment @@ -1605,6 +1833,8 @@ Chirurgická sada určená k pokročilejším zdravotnickým zákrokům v poli 縫合キットは戦場で高度な処置をするためにつかわれます。 야전 상황에서 고급 의료 처치를 위해 사용되는 봉합 키트 + 用于在战场上为伤口进行缝合(需要开启进阶伤口系统). + 用於在戰場上為傷口進行縫合(需要開啟進階傷口系統). Use Surgical Kit @@ -1619,6 +1849,8 @@ Usar kit cirúrgico 縫合キットをつかう 봉합키트 사용하기 + 使用手术包 + 使用手術包 Bodybag @@ -1633,6 +1865,8 @@ Pytel na mrtvoly 死体袋 시체 가방 + 尸袋 + 屍袋 A bodybag for dead bodies @@ -1647,6 +1881,8 @@ Pytel na mrtvoly 死体袋は死体を入れるためにつかいます 시체를 운반할때 쓰는 가방입니다 + 用来装尸体用 + 用來裝屍體用 A bodybag for dead bodies @@ -1661,6 +1897,8 @@ Pytel na mrtvoly 死体袋は死体を入れるためにつかいます 시체를 운반할때 쓰는 가방입니다 + 用来装尸体用 + 用來裝屍體用 Blood Pressure @@ -1675,6 +1913,8 @@ Krevní tlak 血圧を測る 혈압 + 血压 + 血壓 Checking Blood Pressure.. @@ -1689,6 +1929,8 @@ Měřím krevní tlak... 血圧を測定中・・・ 혈압 측정증... + 检查血压中... + 檢查血壓中... %1 checked Blood Pressure: %2 @@ -1703,6 +1945,8 @@ %1 verificou pressão arterial: %2 %1 が測った血圧は: %2 %1 (이)가 혈압을 측정했습니다: %2 + 已由%1确认血压: %2 + 已由%1確認血壓: %2 You checked %1 @@ -1717,6 +1961,8 @@ Zkontroloval jsi %1 自分の血圧は %1 나의 혈압은 %1 이다 + 你已经检查 %1 + 你已經檢查 %1 You find a blood pressure of %2/%3 @@ -1731,6 +1977,8 @@ Naměřil si krevní tlak u %2/%3 血圧は %2/%3 혈압이 %2/%3 이다 + 血压为%2/%3 + 血壓為%2/%3 You find a low blood pressure @@ -1745,6 +1993,8 @@ Naměřil si nízký krevní tlak 血圧はかなり低い 혈압이 매우 낮다 + 发现到低血压 + 發現到低血壓 You find a normal blood pressure @@ -1759,6 +2009,8 @@ Naměřil si normální krevní tlak 血圧は通常 혈압이 정상이다 + 发现到正常血压 + 發現到正常血壓 You find a high blood pressure @@ -1773,6 +2025,8 @@ Naměřil si vysoký krevní tlak 血圧はかなり高い 혈압이 매우 높다 + 发现到高血压 + 發現到高血壓 You find no blood pressure @@ -1787,6 +2041,8 @@ Nenaměřil si žádný krevní tlak 血圧は測れなかった 혈압이 잡히지 않는다 + 量不到血压 + 量不到血壓 You fail to find a blood pressure @@ -1801,6 +2057,8 @@ Nedokázal si změřit krevní tlak 血圧を測るのに失敗 혈압을 잡을 수 없었다 + 检查血压的动作失败 + 檢查血壓的動作失敗 Low @@ -1815,6 +2073,8 @@ Baixa 低い 낮음 + + Normal @@ -1829,6 +2089,8 @@ Normal 通常 보통 + 正常 + 正常 High @@ -1843,6 +2105,8 @@ Alta 高い 높음 + + No Blood Pressure @@ -1857,6 +2121,8 @@ Sem pressão arterial 血圧なし 혈압 없음 + 无血压 + 無血壓 Pulse @@ -1871,6 +2137,8 @@ Puls 心拍数 맥박 + 脉搏 + 脈搏 Checking Heart Rate... @@ -1885,6 +2153,8 @@ Kontroluji srdeční tep... 心拍数を測定中・・・ 맥박 확인중... + 检查心跳中... + 檢查心跳中... You checked %1 @@ -1899,6 +2169,8 @@ Zkontroloval si %1 心拍数は %1 나의 맥박은 %1 이다 + 你已经检查 %1 + 你已經檢查 %1 %1 checked Heart Rate: %2 @@ -1913,6 +2185,8 @@ %1 verificou a frequência cardíaca: %2 %1 が測った心拍数は: %2 %1 (이)가 맥박을 측정했습니다: %2 + 已由%1确认心跳: %2 + 已由%1確認心跳: %2 None @@ -1927,6 +2201,8 @@ Niente なし 없음 + + Weak @@ -1941,6 +2217,8 @@ Fraca 弱い 약함 + 微弱 + 微弱 Normal @@ -1955,6 +2233,8 @@ Normal 通常 보통 + 正常 + 正常 Strong @@ -1969,6 +2249,8 @@ Forte 強い 강함 + 过快 + 過快 You find a Heart Rate of %2 @@ -1983,6 +2265,8 @@ Nahmatal jsi srdeční tep u %2 心拍数は %2 맥박이 %2 이다 + 心跳为%2 + 心跳為%2 You find a weak Heart Rate @@ -1997,6 +2281,8 @@ Nahmatal si slabý srdeční puls 自分の心拍数は低い 약한 맥박이다 + 心跳微弱 + 心跳微弱 You find a strong Heart Rate @@ -2011,6 +2297,8 @@ Nahmatal si silný srdeční puls 自分の心拍数は強い 강한 맥박이다 + 心跳过快 + 心跳過快 You find a normal Heart Rate @@ -2025,6 +2313,8 @@ Nahmatal si normální srdeční puls 自分の心拍数は通常 보통 맥박이다 + 心跳正常 + 心跳正常 You find no Heart Rate @@ -2039,6 +2329,8 @@ Žádný puls 心拍数を測れなかった 맥박을 찾을 수가 없다 + 量不到心跳 + 量不到心跳 Response @@ -2053,6 +2345,8 @@ Odezva 反応を見る 반응 + 反应 + 反應 You check response of patient @@ -2067,6 +2361,8 @@ Zkontroloval jsi reakci pacienta 患者からの反応をみる 대상의 반응 확인중 + 检查伤者的反应 + 檢查傷者的反應 %1 is responsive @@ -2081,6 +2377,8 @@ %1 odpovídá %1 は反応あり %1 은 반응이있다 + %1 有反应 + %1 有反應 %1 is not responsive @@ -2095,6 +2393,8 @@ %1 neodpovídá %1 の反応なし %1 은 반응이없다 + %1 没有反应 + %1 沒有反應 You checked %1 @@ -2109,6 +2409,8 @@ Zkontroloval jsi %1 %1 を見た %1 을 확인함 + 你已经检查 %1 + 你已經檢查 %1 Patient %1<br/>is %2.<br/>%3.<br/>%4 @@ -2123,6 +2425,8 @@ Paciente %1<br/>é %2.<br/>%3.<br/>%4 痛み %1<br/>は %2.<br/>%3.<br/>%4 환자 %1<br/>는 %2.<br/>%3.<br/>%4 + 伤者 %1<br/>is %2.<br/>%3.<br/>%4 + 傷者 %1<br/>is %2.<br/>%3.<br/>%4 alive @@ -2137,6 +2441,8 @@ vivo 生存 생존 + 活着 + 活著 dead @@ -2151,6 +2457,8 @@ morto 死亡 사망 + 死亡 + 死亡 He's lost some blood @@ -2165,6 +2473,8 @@ Ele perdeu um pouco de sangue 彼は出血している 적은 양의 피를 잃었다 + 他流失一些血液 + 他流失一些血液 He's lost a lot of blood @@ -2179,6 +2489,8 @@ Ha perso molto sangue 彼は大量出血している 많은 양의 피를 잃었다 + 他流失大量血液 + 他流失大量血液 He hasn't lost blood @@ -2193,6 +2505,8 @@ Ele não perdeu sangue 彼は出血していない 피를 잃지 않았다 + 他并没有失血 + 他並沒有失血 He is in pain @@ -2207,6 +2521,8 @@ Ele está com dor 彼には痛みがあるようだ 통증이 있다 + 他感到疼痛 + 他感到疼痛 He is not in pain @@ -2221,6 +2537,8 @@ Ele não está com dor 彼には痛みがないようだ 통증이 없다 + 他不会疼痛 + 他不會疼痛 Bandaged @@ -2235,6 +2553,8 @@ Obvázaný 包帯 붕대 감음 + 绷带 + 繃帶 You bandage %1 (%2) @@ -2249,6 +2569,8 @@ Obvazuješ %1 (%2) %1 (%2) 包帯をつかった %1 (%2) 붕대를 감았다 + 你正在对 %1 (%2) 包扎绷带中 + 你正在對 %1 (%2) 包紮繃帶中 %1 is bandaging you @@ -2263,6 +2585,8 @@ %1 tě obvazuje %1 は自分に包帯を巻いている %1 (이)가 나에게 붕대를 감고있다 + %1 正在对你包扎绷带中 + %1 正在對你包紮繃帶中 You start stitching injuries from %1 (%2) @@ -2277,6 +2601,8 @@ Zašíváš rány %1 (%2) あなたは %1 (%2) の外傷へ縫合をはじめた 나는 %1(%2) 상처로부터 봉합을 시작했다 + 你正开始对 %1 (%2) 缝合伤口中 + 你正開始對 %1 (%2) 縫合傷口中 Stitching @@ -2291,6 +2617,8 @@ Šití 縫合 붕합중 + 缝合中 + 縫合中 You treat the airway of %1 @@ -2305,6 +2633,8 @@ Ošetřuješ dýchací cesty %1 %1 の気道を診断する %1의 기도를 확보했다 + 你治疗 %1 的呼吸道 + 你治療 %1 的呼吸道 Airway @@ -2319,6 +2649,8 @@ Dýchací cesty 気道 기도 + 呼吸道 + 呼吸道 %1 is treating your airway @@ -2333,6 +2665,8 @@ %1 ošetřuje tvoje dýchací cesty %1 はあなたの気道を見ている %1 (이)가 나의 기도를 확보중이다 + %1 正在治疗你的呼吸道 + %1 正在治療你的呼吸道 Drag @@ -2347,6 +2681,8 @@ Trascina 引きずる 끌다 + 拖拉 + 拖拉 Carry @@ -2361,6 +2697,8 @@ Trasporta 運ぶ 업다 + 背起 + 背起 Release @@ -2375,6 +2713,8 @@ Rrilascia 離す 내려놓기 + 放下 + 放下 Load Patient Into @@ -2389,6 +2729,8 @@ Carica paziente nel 患者を載せる 환자 싣기 + 将伤者放入 + 將傷者放入 Unload Patient @@ -2403,6 +2745,8 @@ Scarica il paziente 患者を降ろす 환자 내리기 + 将伤者背出 + 將傷者背出 Unload patient @@ -2417,6 +2761,8 @@ Vyložit pacienta 患者を降ろす 환자 내리기 + 将伤者背出 + 將傷者背出 Load patient @@ -2431,6 +2777,8 @@ Naložit pacienta 患者を載せる 환자 싣기 + 将伤者放入 + 將傷者放入 Place body in bodybag @@ -2445,6 +2793,8 @@ Umístni tělo do pytle na mrtvoly 死体袋に入れる 시체 가방에 담기 + 将尸体放入尸袋 + 將屍體放入屍袋 Placing body in bodybag... @@ -2459,6 +2809,8 @@ Umístňuji tělo do pytle na mrtvoly... 死体袋へ梱包中・・・ 시체 가방에 담는중... + 将尸体放入尸袋中... + 將屍體放入屍袋中... %1 has bandaged patient @@ -2473,6 +2825,8 @@ %1 již obvázal pacienta %1 は包帯を巻いた %1 (이)가 붕대를 감아줬다 + %1 已包扎伤者 + %1 已包紮傷者 %1 performed CPR @@ -2486,6 +2840,8 @@ %1 à fait une RCP %1 は心肺蘇生をした %1 (이)가 심폐소생술을 실시했다 + %1 已执行心肺复苏术 + %1 已執行心肺復甦術 %1 used %2 @@ -2500,6 +2856,8 @@ %1 použil %2 %1 は %2 をつかった %1 (이)가 %2 을 썼다 + %1 已使用 %2 + %1 已使用 %2 %1 has given an IV @@ -2514,6 +2872,8 @@ %1 již aplikoval IV %1 は IV を与えた %1 (이)가 IV를 실시했다 + %1 已经给予静脉注射液 + %1 已經給予靜脈注射液 %1 applied a tourniquet @@ -2528,6 +2888,8 @@ %1 použil škrtidlo %1 は止血帯を巻いた %1 (이)가 지혈대를 적용했다 + %1 已经绑上止血带 + %1 已經綁上止血帶 %1 used Personal Aid Kit @@ -2541,6 +2903,8 @@ %1 a utilisé une trousse %1 は応急処置キットをつかった %1 (이)가 개인응급키트를 사용했다 + %1 已使用了个人急救包 + %1 已使用了個人急救包 Heavily wounded @@ -2555,6 +2919,8 @@ Gravemente ferido 重傷 중상 + 重伤 + 重傷 Lightly wounded @@ -2569,6 +2935,8 @@ Levemente ferido 軽傷 경상 + 轻伤 + 輕傷 Very lightly wounded @@ -2583,6 +2951,8 @@ Muito levemente ferido かなり浅い傷 매우 가벼운 부상 + 小伤 + 小傷 Head @@ -2597,6 +2967,8 @@ Cabeça 頭部 머리 + 头部 + 頭部 Torso @@ -2611,6 +2983,8 @@ Torso 胴体 몸통 + 身体 + 身體 Left Arm @@ -2625,6 +2999,8 @@ Braço Esquerdo 左腕 왼쪽 팔 + 左手 + 左手 Right Arm @@ -2639,6 +3015,8 @@ Braço Direito 右腕 오른쪽 팔 + 右手 + 右手 Left Leg @@ -2653,6 +3031,8 @@ Perna Esquerda 左足 왼쪽 다리 + 左脚 + 左腳 Right Leg @@ -2667,6 +3047,8 @@ Perna Direita 右足 오른쪽 다리 + 右脚 + 右腳 Heal fully bandaged hitpoints @@ -2680,6 +3062,8 @@ Heilt vollständig bandagierte Trefferpunkte 包帯は体力を完全に回復する 붕대를 감은후 체력을 회복함 + 完全医疗包扎的部位至痊愈 + 完全醫療包紮的部位至痊癒 Pain is only temporarily suppressed @@ -2694,6 +3078,8 @@ Dolore è soppresso solo temporaneamente 痛みは一時的な影響 고통은 일시적으로만 회복가능 + 疼痛只会暂时性压制 + 疼痛只會暫時性壓制 Pain Effect Type @@ -2708,6 +3094,8 @@ Typ bolesti - efekt 痛みの種類 고통 효과 종류 + 疼痛效果类型 + 疼痛效果類型 Colour Flashing @@ -2722,6 +3110,8 @@ Blikající barva 色の点滅 색 반짝임 + 闪烁颜色 + 閃爍顏色 Chromatic Aberration @@ -2736,6 +3126,8 @@ Aberração Cromática 色の収差 색수차 + 色差 + 色差 Style of menu (Medical) @@ -2750,6 +3142,8 @@ Stile del menù (medico) メニューの表示形式 (治療) 메뉴의 스타일 (의료) + 选单样式 (医疗) + 選單樣式 (醫療) Select the type of menu you prefer; default 3d selections or radial. @@ -2764,6 +3158,8 @@ Seleziona il tipo di menù che preferisci: selezione (3D), radiale o disabilitata. 好みに応じてメニューの表示形式を選んでください。標準では 3D 選択か円状です。 선호하는 종류의 메뉴를 고르세요; 기본 3d 선택형 혹은 다이얼형 + 选择你喜欢的选单样式; 预设为3D选项或放射状 + 選擇你喜歡的選單樣式; 預設為3D選項或放射狀 Selections (3d) @@ -2778,6 +3174,8 @@ Selezione (3D) 選択 (3d) 선택 (3d) + 选择 (3D) + 選擇 (3D) Radial @@ -2792,6 +3190,8 @@ Radiale 円状 다이얼형 + 放射状 + 放射狀 Scrape @@ -2806,6 +3206,8 @@ Odřenina 擦り傷 찰과상 + 擦伤 + 擦傷 Minor Scrape @@ -2820,6 +3222,8 @@ Malá odřenina 小さな擦り傷 소형 찰과상 + 小擦伤 + 小擦傷 Medium Scrape @@ -2834,6 +3238,8 @@ Středně velká odřenina 中くらいの擦り傷 중형 찰과상 + 中擦伤 + 中擦傷 Large Scrape @@ -2848,6 +3254,8 @@ Velká odřenina 大きな擦り傷 대형 찰과상 + 大擦伤 + 大擦傷 Avulsion @@ -2862,6 +3270,8 @@ Avulze 剥離傷 열상 + 撕脱伤 + 撕脫傷 Minor Avulsion @@ -2876,6 +3286,8 @@ Malá avulze 小さな剥離傷 소형 열상 + 小撕脱伤 + 小撕脫傷 Medium Avulsion @@ -2890,6 +3302,8 @@ Střední avulze 中くらいの剥離傷 중형 열상 + 中撕脱伤 + 中撕脫傷 Large Avulsion @@ -2904,6 +3318,8 @@ Velká avulze 大きな剥離傷 대형 열상 + 大撕脱伤 + 大撕脫傷 Bruise @@ -2918,6 +3334,8 @@ Modřina 打ち傷 타박상 + 挫伤 + 挫傷 Minor Bruise @@ -2932,6 +3350,8 @@ Malá modřina 小さな打ち傷 소형 타박상 + 小挫伤 + 小挫傷 Medium Bruise @@ -2946,6 +3366,8 @@ Středně velká modřina 中くらいの打ち傷 중형 타박상 + 中挫伤 + 中挫傷 Large Bruise @@ -2960,6 +3382,8 @@ Velká modřina 大きな打撲傷 대형 타박상 + 大挫伤 + 大挫傷 Crushed tissue @@ -2974,6 +3398,8 @@ Zhmoždění měkkých tkání 圧挫傷 좌상 + 撞伤 + 撞傷 Minor crushed tissue @@ -2988,6 +3414,8 @@ Malé zhmoždění měkkých tkání 小さな圧挫傷 소형 좌상 + 小撞伤 + 小撞傷 Medium crushed tissue @@ -3002,6 +3430,8 @@ Střední zhmoždění měkkých tkání 中くらいの圧挫傷 중형 좌상 + 中撞伤 + 中撞傷 Large crushed tissue @@ -3016,6 +3446,8 @@ Velké zhmoždění měkkých tkání 大きな圧挫傷 대형 좌상 + 大撞伤 + 大撞傷 Cut @@ -3030,6 +3462,8 @@ Řezná rána 切り傷 절상 + 割伤 + 割傷 Small Cut @@ -3044,6 +3478,8 @@ Malá řezná rána 小さな切り傷 소형 절상 + 小割伤 + 小割傷 Medium Cut @@ -3058,6 +3494,8 @@ Střední řezná rána 中くらいの切り傷 중형 절상 + 中割伤 + 中割傷 Large Cut @@ -3072,6 +3510,8 @@ Velká řezná rána 大きな切り傷 대형 절상 + 大割伤 + 大割傷 Tear @@ -3086,6 +3526,8 @@ Tržná rána 裂傷 창상 + 撕裂伤 + 撕裂傷 Small Tear @@ -3100,6 +3542,8 @@ Malá tržná rána 小さな裂傷 소형 창상 + 小撕裂伤 + 小撕裂傷 Medium Tear @@ -3114,6 +3558,8 @@ Střední tržná rána 中くらいの裂傷 중형 창상 + 中撕裂伤 + 中撕裂傷 Large Tear @@ -3128,6 +3574,8 @@ Velká tržná rána 大きな裂傷 대형 창상 + 大撕裂伤 + 大撕裂傷 Velocity Wound @@ -3142,6 +3590,8 @@ Střelné poranění 銃創 총상 + 穿透伤 + 穿透傷 Small Velocity Wound @@ -3156,6 +3606,8 @@ Malé střelné poranění 小さな銃創 소형 총상 + 小穿透伤 + 小穿透傷 Medium Velocity Wound @@ -3170,6 +3622,8 @@ Střední střelné poranění 中くらいの銃創 중형 총상 + 中穿透伤 + 中穿透傷 Large Velocity Wound @@ -3184,6 +3638,8 @@ Velké střelné poranění 大きな銃創 대형 총상 + 大穿透伤 + 大穿透傷 Puncture Wound @@ -3198,6 +3654,8 @@ Bodná rána 刺し傷 관통상 + 穿刺伤 + 穿刺傷 Minor Puncture Wound @@ -3212,6 +3670,8 @@ Malá bodná rána 小さな刺し傷 소형 관통상 + 小穿刺伤 + 小穿刺傷 Medium Puncture Wound @@ -3226,6 +3686,8 @@ Střední bodná rána 中くらいの刺し傷 중형 관통상 + 中穿刺伤 + 中穿刺傷 Large Puncture Wound @@ -3240,6 +3702,8 @@ Velká bodná rána 大きな刺し傷 대형 관통상 + 大穿刺伤 + 大穿刺傷 Broken Femur @@ -3254,6 +3718,8 @@ Zlomená stehenní kost 大腿骨の骨折 대퇴골 골절 + 大腿骨骨折 + 大腿骨骨折 Treating... @@ -3268,6 +3734,8 @@ Curando... 治療中・・・ 치료중... + 治疗中... + 治療中... Removing Tourniquet... @@ -3282,6 +3750,8 @@ Togliendo il laccio emostatico... 止血帯を外している・・・ 지혈대 제거중... + 移除军用止血带中... + 移除軍用止血帶中... ACE Medical @@ -3296,6 +3766,8 @@ ACE Medical ACE 医療 ACE 의료 + ACE 医疗系统 + ACE 醫療系統 Medical Settings [ACE] @@ -3310,6 +3782,8 @@ Impostazioni Mediche [ACE] 医療設定 [ACE] 의료 설정 [ACE] + 医疗设定 [ACE] + 醫療設定 [ACE] Medical Level @@ -3324,6 +3798,8 @@ Livello Medico 医療レベル 의료 수준 + 医疗等级 + 醫療等級 What is the medical simulation level? @@ -3338,6 +3814,8 @@ Qual'è il livello di simulazione medica? 治療の再現度は? 의료 시뮬레이션의 수준 + 选择需要的医疗模拟等级 + 選擇需要的醫療模擬等級 Basic @@ -3352,6 +3830,8 @@ Basico ベーシック 기본 + 基本 + 基本 Advanced @@ -3366,6 +3846,8 @@ Avanzato アドバンスド 고급 + 进阶 + 進階 Medics setting @@ -3380,6 +3862,8 @@ Parametri Medici 治療の設定 의료 설정 + 医护兵等级 + 醫護兵等級 What is the level of detail prefered for medics? @@ -3394,6 +3878,8 @@ Qual'è il livello di dettagli preferito per i medici? >衛生兵への再現度をどのくらいに設定しますか? 의무병의 시뮬레이션 정도? + 设定医护兵的预设医疗水平(医疗兵, 军医) + 設定醫護兵的預設醫療水平(醫療兵, 軍醫) Locations boost training @@ -3407,6 +3893,8 @@ Места ускоренного обучения 衛生兵としての能力を与える場所 교육 증가 지역 + 受所在位置影响提升医疗能力 + 受所在位置影響提升醫療能力 Boost medic rating in medical vehicles or near medical facilities [untrained becomes medic, medic becomes doctor] @@ -3420,6 +3908,8 @@ Улучшает медицинскую подготовку в мед. транспорте и около мед. строений [нетренированные становятся медиками, медики становятся врачами] 医療車両や医療施設の近くは衛生兵としての能力を与える場所となり、衛生兵の訓練を受けていないのに衛生兵としてなる(未訓練は衛生兵に、衛生兵は医師に) 의무병의 수준이 주변의 차량이나 의료시설에 따라 증가합니다. [비교육자가 의무병이되고, 의무병이 의사가 됩니다] + 当人员在医疗载具或是医护设施旁进行医疗时, 该员医疗能力将会有所提升 (未受训人员提升为医疗兵, 医疗兵提升为军医) + 當人員在醫療載具或是醫護設施旁進行醫療時, 該員醫療能力將會有所提升 (未受訓人員提升為醫療兵, 醫療兵提升為軍醫) Disable medics @@ -3434,6 +3924,8 @@ Disabilita medici 衛生兵を無効化 의무병 비활성화 + 关闭医护兵 + 關閉醫護兵 Enable Litter @@ -3448,6 +3940,8 @@ Abilita Barella 医療廃棄物の表示を有効化 의료폐기물 활성화 + 启用医疗废弃物 + 啟用醫療廢棄物 Enable litter being created upon treatment @@ -3462,6 +3956,8 @@ Abilita la creazione della barella dopo trattamento 治療を始めると、医療廃棄物の作成を有効化する 의료폐기물이 치료중 주변에 생성되는것을 활성화 합니다 + 本功能启用后, 当每次医疗动作结束时, 地上会产生相应的医疗废弃物 + 本功能啟用後, 當每次醫療動作結束時, 地上會產生相應的醫療廢棄物 Life time of litter objects @@ -3476,6 +3972,8 @@ Tempo di vita delle barelle 医療廃棄物の作成限界数を設定 의료폐기물 시간제한 + 医疗废弃物存在时间 + 醫療廢棄物存在時間 How long should litter objects stay? In seconds. -1 is forever. @@ -3490,6 +3988,8 @@ Per quanto devono restare le barelle? In secondi. -1 è permanente 医療廃棄物オブジェクトが表示されつづける時間を設定しますか?-1 は永遠です。 얼마동안 폐기물이 존재합니까? 초 단위. -1 은 영구적. + 定义医疗废弃物存在时间, 以秒为单位, -1为永远存在. + 定義醫療廢棄物存在時間, 以秒為單位, -1為永遠存在. Enable Screams @@ -3504,6 +4004,8 @@ Abilita Grida 叫びを有効化 비명 활성화 + 启用尖叫 + 啟用尖叫 Enable screaming by injured units @@ -3518,6 +4020,8 @@ Abilita Grida da parte delle unità ferite 負傷したユニットが叫ぶように 부상당한 인원이 소리지르는것을 활성화합니다 + 启用伤者的尖叫声 + 啟用傷者的尖叫聲 Player Damage @@ -3532,6 +4036,8 @@ Danno Giocatore プレイヤーへの損傷 플레이어 부상 + 玩家伤害 + 玩家傷害 What is the damage a player can take before being killed? @@ -3546,6 +4052,8 @@ Quanto è il danno che un giocatore può sostenere prima di essere ucciso? プレイヤーが死に始める前に損傷を受けるようにしますか? 얼마정도의 부상을 플레이어가 죽기 전까지 버틸 수 있습니까? + 玩家死亡前所能承受的伤害程度 + 玩家死亡前所能承受的傷害程度 AI Damage @@ -3560,6 +4068,8 @@ Danno AI AI への損傷 인공지능 부상 + AI伤害 + AI傷害 What is the damage an AI can take before being killed? @@ -3574,6 +4084,8 @@ Quanto è il danno che un'IA può sostenere prima di essere uccisa? AI が死に始める前に損傷を受けるようにしますか? 얼마정도의 부상을 인공지능이 죽기 전까지 버틸 수 있습니까? + AI 死亡前所能承受的伤害程度 + AI 死亡前所能承受的傷害程度 AI Unconsciousness @@ -3588,6 +4100,8 @@ Incoscienza IA AI の気絶 인공지능 기절 + AI无意识 + AI無意識 Allow AI to go unconscious @@ -3602,6 +4116,8 @@ Permetti alle IA di diventare incoscienti AI が気絶をするように 인공지능도 기절에 빠지게 합니다 + 允许AI进入无意识状态 + 允許AI進入無意識狀態 Remote Controlled AI @@ -3616,6 +4132,8 @@ IA Controllate in Remoto 遠隔操作された AI 인공지능 원격조종 + 遥控AI + 遙控AI Treat remote controlled units as AI not players? @@ -3630,6 +4148,8 @@ Considera le unità controllate in remoto come IA e non come giocatori? 遠隔操作された AI は、非プレイヤーとして扱いますか? 원격 조작하는 AI는 비 플레이어로 취급합니까? + 以医疗AI的方式医疗被遥控的单位 + 以醫療AI的方式醫療被遙控的單位 Prevent instant death @@ -3644,6 +4164,8 @@ Previeni morte istantanea 即死の防止 즉사 방지 + 防止当场死亡 + 防止當場死亡 Have a unit move to unconscious instead of death @@ -3658,6 +4180,8 @@ Imposta un'unità come incosciente invece di morta ユニットの即死を防止するために、気絶へ移行させます 인원의 즉사를 방지코자 즉사 대신 기절시킵니다 + 伤者最严重只会立即进入昏迷, 而非立即死亡 + 傷者最嚴重只會立即進入昏迷, 而非立即死亡 Bleeding coefficient @@ -3672,6 +4196,8 @@ Coefficiente sanguinamento 出血の係数 출혈 계수 + 流血系数 + 流血係數 Coefficient to modify the bleeding speed @@ -3686,6 +4212,8 @@ Coefficiente che modifica la velocità di sanguinamento この係数では出血速度を変更できます 출혈의 속도를 계수만큼 변경합니다 + 修改流血速度 + 修改流血速度 Pain coefficient @@ -3700,6 +4228,8 @@ Coefficiente dolore 痛みの係数 고통 계수 + 疼痛系数 + 疼痛係數 Coefficient to modify the pain intensity @@ -3714,6 +4244,8 @@ Coefficiente che modifica l'intensità del dolore この係数では痛みの強さを変更できます 고통의 정도를 계수만큼 변경합니다 + 修改疼痛强度的系数 + 修改疼痛強度的係數 Sync status @@ -3728,6 +4260,8 @@ Sincronizza stato 同期状態 상태 동기화 + 同步状态 + 同步狀態 Keep unit status synced. Recommended on. @@ -3742,6 +4276,8 @@ Mantieni lo stato delle unità sincronizzato. Consigliato attivo. ユニット状態の同期を続けます。有効化を推奨。 인원의 상태를 동기화합니다. 켜기를 권장합니다. + 保持单位状态同步, 建议启用! + 保持單位狀態同步, 建議啟用! Provides a medical system for both players and AI. @@ -3756,6 +4292,8 @@ Fornisce un sistema medico sia per giocatori che IA. プレイヤーと AI の両方へ医療システムを提供します。 의료 시스템을 플레이어 및 인공지능에게 제공합니다. + 医疗系统将同时对玩家与AI发生作用 + 醫療系統將同時對玩家與AI發生作用 Basic Medical Settings [ACE] @@ -3769,6 +4307,8 @@ Настройки базовой медицины [ACE] ベーシック医療設定 [ACE] 기본 의료 설정 [ACE] + 基本医疗设定 [ACE] + 基本醫療設定 [ACE] Advanced Medical Settings [ACE] @@ -3783,6 +4323,8 @@ Impostazioni Mediche Avanzate [ACE] アドバンスド医療設定 [ACE] 고급 의료 설정 [ACE] + 进阶医疗设定 [ACE] + 進階醫療設定 [ACE] Enabled for @@ -3797,6 +4339,8 @@ Abilitato per 次を有効化 활성 + 被启用给 + 被啟用給 Select what units the advanced medical system will be enabled for @@ -3811,6 +4355,8 @@ Seleziona per quali unità verrà abilitato i sistema medico avanzato 選択されたユニットが、アドバンスド医療が使えるようになります 어느 인원에게 고급 의료 시스템을 적용시킬지 선택하십시요. + 选择进阶医疗系统影响的对象 + 選擇進階醫療系統影響的對象 Players only @@ -3825,6 +4371,8 @@ Solo giocatori プレイヤーのみ 플레이어만 + 只限玩家 + 只限玩家 Players and AI @@ -3839,6 +4387,8 @@ Giocatori ed IA プレイヤーと AI 플레이어 및 인공지능 + 玩家与AI + 玩家與AI Enable Advanced wounds @@ -3853,6 +4403,8 @@ Abilita ferite Avanzate アドバンスドな傷を有効化 고급 부상 활성화 + 启用进阶伤口系统 + 啟用進階傷口系統 Allow reopening of bandaged wounds? @@ -3867,6 +4419,8 @@ Permetti la riapertura di ferite bendate? 包帯で巻かれた傷を再び開くようにしますか? 붕대가 풀리는것을 활성화합니까? + 启用进阶伤口系统会使已被包扎的伤口有机率裂开 + 啟用進階傷口系統會使已被包紮的傷口有機率裂開 Vehicle Crashes @@ -3881,6 +4435,8 @@ Schianto Veicoli 車両の衝突 차량 사고 + 载具碰撞 + 載具碰撞 Do units take damage from a vehicle crash? @@ -3895,6 +4451,8 @@ Le unità sostengono danni da incidenti con veicoli? ユニットは車両の衝突による損傷を受けるようにしますか? 차량 사고시 인원들이 부상을 입습니까? + 设定人员是否会因为载具冲撞别的物件而产生伤害? + 設定人員是否會因為載具衝撞別的物件而產生傷害? Allow Epinephrine @@ -3908,6 +4466,8 @@ Разрешить Адреналин アドレナリンの許可 에피네프린 활성화 + 允许使用肾上腺素 + 允許使用腎上腺素 Who can use Epinephrine for full heal? (Basic medical only) @@ -3921,6 +4481,8 @@ Кому разрешено использовать адреналин для полного излечения? (Только для базовой медицины) 完全に回復できるよう誰しもがアドレナリンを使えるようにしますか?(ベーシック医療のみ) 완전한 체력회복을 위해 어느 인원이 에피네프린을 쓸 수 있습니까? (기본 의료 전용) + 谁可以使用肾上腺素完整医治? (仅适用于基本医疗) + 誰可以使用腎上腺素完整醫治? (僅適用於基本醫療) Allow PAK @@ -3935,6 +4497,8 @@ Consenti Kit di Pronto Soccorso 応急処置キットの許可 개인응급키트 활성화 + 允许使用个人急救包 + 允許使用個人急救包 Who can use the PAK for full heal? @@ -3949,6 +4513,8 @@ Chi può usare il KPS per cura completa? 完全に回復できるよう誰しもが応急処置キットを使えるようにしますか? 완전한 체력회복을 위해 어느 인원이 개인응급키트을 쓸 수 있습니까? (기본 의료 전용) + 谁能够使用个人急救包来达到完整医疗? + 誰能夠使用個人急救包來達到完整醫療? Anyone @@ -3963,6 +4529,8 @@ Chiunque だれでも 모두 + 任何人 + 任何人 Medics only @@ -3977,6 +4545,8 @@ Solo medici 衛生兵のみ 의무병만 + 只限医疗兵 + 只限醫療兵 Doctors only @@ -3991,6 +4561,8 @@ Solo dottori 医師のみ 의사만 + 只限军医 + 只限軍醫 Remove PAK on use @@ -4005,6 +4577,8 @@ Rimuovi Kit Pronto Soccorso dopo l'uso 応急処置キットの削除 개인응급키트 사용후 사라짐 + 在使用后删除个人急救包 + 在使用後刪除個人急救包 Should PAK be removed on usage? @@ -4019,6 +4593,8 @@ Il Kit Pronto Soccorso dev'essere rimosso dopo l'utilizzo? 応急処置キットを使うと削除しますか? 개인응급키트를 사용하고 나서 제거합니까? + 要在使用后删除个人急救包吗? + 要在使用後刪除個人急救包嗎? Locations Epinephrine @@ -4032,6 +4608,8 @@ Место использования адреналина アドレナリンをつかう場所 에피네프린 사용 장소 + 肾上腺素使用地点 + 腎上腺素使用地點 Where can the Epinephrine be used? (Basic Medical) @@ -4045,6 +4623,8 @@ Где может использоваться адреналин? (Базовая медицина) どこでもアドレナリンをつかえるようにしますか?(ベーシック医療のみ) 어디에서 에피네프린을 사용할 수 있습니까? (기본 의료) + 在哪里可以使用肾上腺素? (基本医疗) + 在哪裡可以使用腎上腺素? (基本醫療) Locations PAK @@ -4059,6 +4639,8 @@ Locazioni Kit Pronto Soccorso 応急処置キットをつかう場所 개인응급키트 사용 장소 + 个人急救包使用地点 + 個人急救包使用地點 Where can the PAK be used? @@ -4073,6 +4655,8 @@ Dove può essere usato il Kit Pronto Soccorso? どこでも応急処置キットをつかえるようにしますか? 어디에서 개인응급키트를 사용할 수 있습니까? + 在哪里可以使用个人急救包? + 在哪裡可以使用個人急救包? Condition PAK @@ -4087,6 +4671,8 @@ Condizioni Kit Pronto Soccorso 応急処置キットの状態 개인응급키트 상태 + 个人急救包使用条件 + 個人急救包使用條件 When can the PAK be used? @@ -4101,6 +4687,8 @@ Quando può essere usato il Kit Pronto Soccorso? どこでも応急処置キットをつかえるようにしますか? 언제 개인응급키트를 사용할 수 있습니까? + 何时可以使用个人急救包? + 何時可以使用個人急救包? Anywhere @@ -4115,6 +4703,8 @@ Ovunque どこでも 어디서나 + 任何地方 + 任何地方 Medical vehicles @@ -4129,6 +4719,8 @@ Veicoli medici 医療車両のみ 의료차량 + 医疗载具 + 醫療載具 Medical facility @@ -4143,6 +4735,8 @@ Strutture mediche 医療施設でのみ 의료시설 + 医疗设施 + 醫療設施 Vehicles & facility @@ -4157,6 +4751,8 @@ Veicoli e Strutture 車両 & 施設 차량 및 시설 + 医疗载具 & 医疗设施 + 醫療載具 & 醫療設施 Allow Surgical Kit (Adv) @@ -4171,6 +4767,8 @@ Permetti Kit Chirurgico (Avanzato) 縫合キットの許可 (アド) 봉합키트 활성화 (고급) + 允许使用手术包 (进阶伤口) + 允許使用手術包 (進階傷口) Who can use the Surgical Kit? @@ -4185,6 +4783,8 @@ Chi può usare il Kit Chirurgico? だれでも縫合キットをつかえるようにしますか? 어느 인원이 봉합키트를 사용할 수 있습니까? + 谁能够使用手术包? + 誰能夠使用手術包? Remove Surgical Kit (Adv) @@ -4199,6 +4799,8 @@ Rimuovi Kit Chirurgico (Avanzato) 縫合キットを削除 (アド) 봉합키트 제거 (고급) + 在使用后删除手术包 (进阶伤口) + 在使用後刪除手術包 (進階傷口) Should Surgical kit be removed on usage? @@ -4213,6 +4815,8 @@ Il Kit Chirurgico dev'essere rimosso dopo l'uso? 縫合キットをつかった後に削除しますか? 봉합키트를 사용하고 나서 제거합니까? + 手术包会在使用后被删除吗? + 手術包會在使用後被刪除嗎? Locations Surgical Kit (Adv) @@ -4227,6 +4831,8 @@ Località Kit Chirurgico (Avanzato) 縫合キットをつかう場所 (アド) 봉합키트 사용 장소 (고급) + 手术包使用地点 (进阶伤口) + 手術包使用地點 (進階傷口) Where can the Surgical Kit be used? @@ -4241,6 +4847,8 @@ Dove può essere usato il Kit Chirurgico? どこでも縫合キットをつかえるようにしますか? 어디에서 봉합키트를 사용할 수 있게 합니까? + 定义手术包可被使用的地方? + 定義手術包可被使用的地方? Condition Surgical Kit (Adv) @@ -4255,6 +4863,8 @@ Condizioni Kit Chirurgico (Avanzato) 縫合キットの状態 (アド) 봉합키트 상태 (고급) + 使用手术包的条件 (进阶伤口) + 使用手術包的條件 (進階傷口) When can the Surgical Kit be used? @@ -4269,6 +4879,8 @@ Quando può essere usato il Kit Chirurgico? いつでも縫合キットをつかえるようにしますか? 언제 봉합키트를 사용할 수 있습니까? + 何时可以使用手术工具包? + 何時可以使用手術工具包? Heal hitpoints @@ -4282,6 +4894,8 @@ Soigner les blessures ヒットポイントの回復 체력 회복 + 完整治疗 + 完整治療 Heal fully bandaged hitpoints @@ -4295,6 +4909,8 @@ Soigner les plaies entièrement bandées. 包帯によりヒットポイントを完全に回復する 붕대를 감아서 체력을 회복 + 完全医疗包扎的部位至痊愈 + 完全醫療包紮的部位至痊癒 Pain suppression @@ -4309,6 +4925,8 @@ Soppressione dolore 痛みの継続 고통 억제 + 疼痛抑制 + 疼痛抑制 Pain is only temporarily suppressed, not removed @@ -4323,6 +4941,8 @@ Dolore è solo temporaneamente soppresso, non rimosso 痛みを一時的に継続させ、取り除かない 고통은 제거가 아닌 일시적으로 억제만 가능합니다. + 疼痛只会被暂时抑制, 而不能完全消除 + 疼痛只會被暫時抑制, 而不能完全消除 Configure the treatment settings from ACE Basic Medical @@ -4335,6 +4955,8 @@ Настройка лечения в базовой медицинской системе ACE ACE ベーシック医療による設定で、治療を設定する ACE 기본 의료에 대한 치료 설정 수정 + 设定ACE基本医疗的规则 + 設定ACE基本醫療的規則 Configure the treatment settings from ACE Advanced Medical @@ -4349,6 +4971,8 @@ Configura le impostazioni trattamenti per ACE Medical ACE アドバンスド医療による設定で、治療を設定する ACE 고급 의료에 대한 치료 설정 수정 + 设定ACE进阶医疗的规则 + 設定ACE進階醫療的規則 Revive Settings [ACE] @@ -4363,6 +4987,8 @@ Impostazioni Revive [ACE] リバイブ設定 [ACE] 소생 설정 [ACE] + 复苏设定 [ACE] + 復甦設定 [ACE] Enable Revive @@ -4377,6 +5003,8 @@ Abilita Revive リバイブを有効化 소생 활성화 + 启用复苏 + 啟用復甦 Enable a basic revive system @@ -4391,6 +5019,8 @@ Abilita un sistema revive basico ベーシックなリバイブを有効化 기본 소생 시스템 활성화 + 启用基本复苏系统 + 啟用基本復甦系統 Max Revive time @@ -4405,6 +5035,8 @@ Tempo massimo Revive 最大リバイブ時間 최대 소생 시간 + 最大复苏时间 + 最大復甦時間 Max amount of seconds a unit can spend in revive state @@ -4419,6 +5051,8 @@ Numero massimo di secondi che un'unità può spendere in stato revive ユニットがリバイブ状態になっている最大時間を設定できます 소생상태에서 인원이 버틸 수 있는 최대 시간을 초 단위로 정합니다 + 人员在等待复苏状态下能够等待的最大时间(秒) + 人員在等待復甦狀態下能夠等待的最大時間(秒) Max Revive lives @@ -4433,6 +5067,8 @@ Numero massimo Revives 最大リバイブ数 최대 소생 횟수 + 最大被救活次数 + 最大被救活次數 Max amount of lives a unit. 0 or -1 is disabled. @@ -4447,6 +5083,8 @@ Numero massimo di vite di un'unità. 0 o -1 per disabilitare. ユニットの最大リバイブ数を設定できます。0 または -1 は無効化になります 소생 가능한 횟수입니다. 0 혹은 -1 로 비활성화 합니다 + 一个人员最大可被救活次数, 0或-1为关闭 (无限救活). + 一個人員最大可被救活次數, 0或-1為關閉 (無限救活). Provides a medical system for both players and AI. @@ -4461,6 +5099,8 @@ Fornisce un sistema medico sia per giocatori che IA プレイヤーと AI の両方へ医療システムを提供します。 플레이어와 인공지능 모두에게 의료 시스템을 지원합니다. + 医疗系统将同时作用在玩家与AI + 醫療系統將同時作用在玩家與AI Set Medic Class [ACE] @@ -4475,6 +5115,8 @@ Imposta Classe Medico [ACE] 衛生兵クラスとして設定 [ACE] 의무병 보직 설정 [ACE] + 设定医疗兵单位 [ACE] + 設定醫療兵單位 [ACE] List @@ -4489,6 +5131,8 @@ Lista 一覧 목록 + 列表 + 列表 List of unit names that will be classified as medic, separated by commas. @@ -4503,6 +5147,8 @@ Lista di nomi unità che verranno classificati come medici, separati da virgole. 衛生兵として設定されるユニット名を一覧で指定でき、コンマで区切りを付けられます。 보직 이름 목록으로 의무병이 구분됩니다, 쉼표로 구분. + 列出的单位名字将被指派为医疗兵, 记得用逗号隔开! + 列出的單位名字將被指派為醫療兵, 記得用逗號隔開! Is Medic @@ -4517,6 +5163,8 @@ E' Medico 衛生兵として 의무병 + 是医疗兵 + 是醫療兵 This module allows you to assign the medic class to selected units. @@ -4531,6 +5179,8 @@ Questo modulo ti permette di assegnare la classe Medico alle unità selezionate. 選択されたユニットを衛生兵として指定します。 이 모듈은 선택한 보직이 의무병을 할 수 있게 해줍니다. + 本模块可让被同步的单位成为医疗兵. + 本模塊可讓被同步的單位成為醫療兵. None @@ -4545,6 +5195,8 @@ Nessuno なし 없음 + + Regular medic @@ -4559,6 +5211,8 @@ Medico Regolare 通常の衛生兵 일반 의무병 + 普通医疗兵 + 普通醫療兵 Doctor (Only Advanced Medics) @@ -4573,6 +5227,8 @@ Dottore (Solo Medici Avanzati) 医師 (アドバンスド医療のみ) 의사 (오직 고급 의료에서만) + 军医 (只限进阶医疗系统) + 軍醫 (只限進階醫療系統) Doctor @@ -4587,6 +5243,8 @@ Dottore 医師 의사 + 军医 + 軍醫 Assigns the ACE medic class to a unit @@ -4601,6 +5259,8 @@ Assegna la classe medico ACE ad un'unità ユニットを ACE の衛生兵として割り当てる 인원에게 ACE 의무병 보직 선정 + 指派ACE医疗职位给该单位 + 指派ACE醫療職位給該單位 Set Medical Vehicle [ACE] @@ -4615,6 +5275,8 @@ Imposta Veicolo Medico [ACE] 医療車両を設定 [ACE] 의료 차랑 선정 [ACE] + 设定医疗载具 [ACE] + 設定醫療載具 [ACE] List @@ -4629,6 +5291,8 @@ Lista 一覧 목록 + 列表 + 列表 List of vehicles that will be classified as medical vehicle, separated by commas. @@ -4643,6 +5307,8 @@ Lista di veicoli che verranno classificati come veicoli medici, separati da virgole. 医療車両として設定されるクラス名を一覧で指定でき、コンマで区切りを付けられます 차량 명칭 목록으로 의료차량이 구분됩니다, 쉼표로 구분. + 列出的载具将被指定为医疗载具, 记得用逗号隔开! + 列出的載具將被指定為醫療載具, 記得用逗號隔開! Is Medical Vehicle @@ -4657,6 +5323,8 @@ E' Veicolo Medico 医療車両として 의료 차량 + 是医疗载具 + 是醫療載具 Whatever or not the objects in the list will be a medical vehicle. @@ -4671,6 +5339,8 @@ Gli oggetti nella lista verranno considerati veicoli medici o meno. どれでも、またはこの一覧にないオブジェクトを医療車両として割り当てる。 무엇이 되었던간에 이 목록에 있는 물체는 의료 차량이 됩니다. + 列表中的载具将会变成医疗载具 + 列表中的載具將會變成醫療載具 Assigns the ACE medic class to a unit @@ -4685,6 +5355,8 @@ Assegna la classe medico ACE ad un'unità ユニットを ACE の衛生兵として割り当てる 차량에 ACE 의무병 보직 선정 + 指派ACE医疗职位给该单位 + 指派ACE醫療職位給該單位 Set Medical Facility [ACE] @@ -4699,6 +5371,8 @@ Imposta Struttura Medica [ACE] 医療施設を設定 [ACE] 의료시설 선정 [ACE] + 设定医疗设施 [ACE] + 設定醫療設施 [ACE] Is Medical Facility @@ -4713,6 +5387,8 @@ E' Struttura Medica 医療施設として 의료시설 + 是医疗设施 + 是醫療設施 Registers an object as a medical facility @@ -4727,6 +5403,8 @@ Registra un oggetto come struttura medica オブジェクトを医療施設として割り当てる 물체를 의료시설로 등록합니다 + 指定一个物件作为医疗设施 + 指定一個物件作為醫療設施 Defines an object as a medical facility. This allows for more advanced treatments. Can be used on buildings and vehicles. @@ -4741,6 +5419,8 @@ Definisce un oggetto come struttura medica. Questo permette cure più avanzate. Può essere usato su edifici e veicoli. オブジェクトを医療施設として割り当てます。建物と車両へ割り当てられた場合、より高度な治療が可能になります。 물체를 의료시설로 정의합니다. 건물 혹은 차량이 될 수 있습니다. 이는 고급 의료 조치를 할 수 있게해줍니다. + 定义一个物件作为医疗设施, 此医疗设施将被允许使用更进阶的医疗方法. 此功能可用于建筑物或是载具上! + 定義一個物件作為醫療設施, 此醫療設施將被允許使用更進階的醫療方法. 此功能可用於建築物或是載具上! [ACE] Medical Supply Crate (Basic) @@ -4755,6 +5435,8 @@ [ACE] Cassa Rifornimenti Medici (Basico) [ACE] 医療物資箱 (ベーシック) [ACE] 의료 물자 (기본) + [ACE] 医疗补给箱(基本) + [ACE] 醫療補給箱(基本) [ACE] Medical Supply Crate (Advanced) @@ -4769,6 +5451,8 @@ [ACE] Cassa Rifornimenti Medici (Avanzato) [ACE] 医療物資箱 (アドバンスド) [ACE] 의료 물자 (고급) + [ACE] 医疗补给箱(进阶) + [ACE] 醫療補給箱(進階) Anytime @@ -4783,6 +5467,8 @@ Sempre いつでも 언제나 + 任何时间 + 任何時間 Stable @@ -4797,6 +5483,8 @@ Stabile 安定 안정된 + 稳定状态下 + 穩定狀態下 Medical @@ -4811,6 +5499,8 @@ Orvosi 治療 의료 + 医疗设定 + 醫療設定 Distance to %1 has become to far for treatment @@ -4824,6 +5514,8 @@ %1 est trop loin pour être soigné %1 は治療をできない所まで離れた %1 부터의 거리가 너무 멀어 치료할 수 없습니다 + 设定当距离超过%1将不能使用治疗动作 + 設定當距離超過%1將不能使用治療動作 This person (%1) is awake and cannot be loaded @@ -4837,6 +5529,8 @@ %1 est conscient et ne peut être embarqué. 患者 (%1) は意識があり、積み込めない 이 사람 (%1) 은(는) 의식이 있어 태우지 못합니다 + 此人(%1)是清醒且不能被装载 + 此人(%1)是清醒且不能被裝載 There is no tourniquet on this body part! @@ -4850,6 +5544,8 @@ Il n'y a pas de garrot sur ce membre ! 身体には止血帯が無い! 이 부위에는 지혈대가 없습니다! + 这部位没有止血带! + 這部位沒有止血帶! Medical training @@ -4863,6 +5559,8 @@ Медицинская подготовка 治療の訓練 의료 훈련 + 医疗训练 + 醫療訓練 Whether or not the object will be a medical vehicle. @@ -4875,6 +5573,8 @@ Будет ли объект считаться медицинским транспортом. どれでも、またはオブジェクトを医療車両として割り当てます。 무엇이 되었던간에 이 목록에 있는 물체는 의료 차량이 됩니다. + 是否使该载具为医疗载具? + 是否使該載具為醫療載具? Delay cease fire of AI while player is unconscious for medical reasons. @@ -4887,6 +5587,8 @@ AI はプレイヤーが医療的な理由で気絶している場合にかぎり、撃つのをためらいます。 Opóźnij stan wstrzymania ognia u AI kiedy gracz jest nieprzytomny z powodów medycznych. 의료상의 이유로 플레이어가 기절할 경우 인공지능이 발사를 지연합니다. + 当玩家为无意识的状态时, 延长AI的停火时间 + 當玩家為無意識的狀態時, 延長AI的停火時間 Delay cease fire of AI for unconsciousness @@ -4900,6 +5602,8 @@ Задержка прекращения огня ботами при потере сознания AI は気絶している人へ、ためらってから射撃します 기절할 경우 인공지능이 발사를 지연합니다 + 延长AI对已无意识玩家的停火时间 + 延長AI對已無意識玩家的停火時間 diff --git a/addons/medical_ai/stringtable.xml b/addons/medical_ai/stringtable.xml index b2fdbbb7738..5c93be2f33d 100644 --- a/addons/medical_ai/stringtable.xml +++ b/addons/medical_ai/stringtable.xml @@ -10,6 +10,8 @@ Tylko serwer i HC Seulement sur le server ou le HC Solo Server e HC + 只在伺服器或无头客户端 + 只在伺服器或無頭客戶端 diff --git a/addons/medical_blood/stringtable.xml b/addons/medical_blood/stringtable.xml index 4bbd2c19a12..8a24ad79b53 100644 --- a/addons/medical_blood/stringtable.xml +++ b/addons/medical_blood/stringtable.xml @@ -9,6 +9,8 @@ Tylko gracze Joueurs seulement Solo Giocatori + 只有玩家 + 只有玩家 Enable Blood Drops @@ -18,6 +20,8 @@ Włącz ślady krwi na ziemi Active les gouttes de sang Abilita Perdite di Sangue + 开启血液滴落效果 + 開啟血液滴落效果 Enable or disable Blood Drops created on bleeding and taking damage @@ -26,6 +30,8 @@ Włącz lub wyłącz pozostawianie śladów krwi na ziemi kiedy postać odnosi obrażenia bądź krwawi (Dés)active les gouttes de sang lors d'un saignement ou de blessure Abilita o disabilita la Perdite di Sangue create sanguinando e prendendo danno + 开启后, 会让受伤时伤口有血液滴落的效果. + 開啟後, 會讓受傷時傷口有血液滴落的效果. diff --git a/addons/medical_menu/stringtable.xml b/addons/medical_menu/stringtable.xml index 113f9b4bd38..daae65cc65b 100644 --- a/addons/medical_menu/stringtable.xml +++ b/addons/medical_menu/stringtable.xml @@ -13,6 +13,8 @@ Menu médical 治療メニュー 의료 메뉴 + 医疗选单 + 醫療選單 Allow Medical Menu @@ -26,6 +28,8 @@ Autoriser le menu médical 治療メニューを有効化 의료 메뉴 활성화 + 允许医疗选单 + 允許醫療選單 Allow clients to use the medical menu @@ -39,6 +43,8 @@ Autoriser les clients à utiliser le menu médical すべてのクライアントが治療メニューをつかえるようにする 클라이언트가 의료 메뉴를 쓰는것을 허락합니다 + 允许客户端使用医疗选单 + 允許客戶端使用醫療選單 Use Medical menu @@ -52,6 +58,8 @@ Utiliser le menu médical 治療メニューをつかう 의료 메뉴 사용 + 使用医疗选单 + 使用醫療選單 If allowed by server, enable the option to use the Medical Menu through keybinding and interaction menu @@ -65,6 +73,8 @@ Si autorisé par le serveur, active l'option d'utiliser le menu médical à travers les raccourcis clavier et le menu d'interaction. サーバーが有効化を許可している場合は、オプションから有効化でき治療メニューはキー割り当てとインタラクション メニューを無視できます 서버 허가하에 단축키와 상호작용 메뉴로 의료 메뉴사용을 허가합니다 + 如果伺服器允许, 只需透过按键即可叫出医疗选单 + 如果伺服器允許, 只需透過按鍵即可叫出醫療選單 Re-open Medical menu @@ -78,6 +88,8 @@ Ré-ouvrir le menu médical 治療メニューを再びひらく 의료 메뉴 다시 열기 + 重新开启医疗选单 + 重新開啟醫療選單 Re-open the medical menu after succesful treatment @@ -91,6 +103,8 @@ Ré-ouvrir le menu médical après un traitement réussi 治療が終わったあと、再び治療メニューをひらく 성공적으로 치료한후에 의료 메뉴를 다시 엽니다 + 当治疗成功后重新打开医疗选单 + 當治療成功後重新打開醫療選單 Open Medical Menu @@ -104,6 +118,8 @@ Ouvir le menu médical 治療メニューをひらく 의료 메뉴 열기 + 开起医疗选单 + 開起醫療選單 Medical Menu Settings @@ -117,6 +133,8 @@ Réglages du menu médical 治療メニューの設定 의료 메뉴 설정 + 医疗选单设定 + 醫療選單設定 Configure the usage of the Medical Menu @@ -130,6 +148,8 @@ Configurer l'utilisation du menu médical 治療メニューを使うための設定 의료 메뉴 사용의 설정 + 设置医疗选单的使用 + 設置醫療選單的使用 EXAMINE & TREATMENT @@ -143,6 +163,8 @@ ESAMINA & TRATTA 診断 & 治療 검사 / 치료 + 检查 & 治疗 + 檢查 & 治療 STATUS @@ -156,6 +178,8 @@ STATO 状態 상태 + 状态 + 狀態 OVERVIEW @@ -169,6 +193,8 @@ PANORAMICA オーバービュー 개요 + 概述 + 概述 ACTIVITY LOG @@ -182,6 +208,8 @@ LOG ATTIVITA' 治療履歴 활동 로그 + 医疗纪录 + 醫療紀錄 QUICK VIEW @@ -195,6 +223,8 @@ VISTA RAPIDA クイック ビュー 퀵 뷰 + 快速检查 + 快速檢查 View triage Card @@ -208,6 +238,8 @@ Guarda Triage Card トリアージ カードを見る 부상자 카드 보기 + 查看诊断卡 + 查看診斷卡 Examine Patient @@ -221,6 +253,8 @@ Esamina Paziente 患者を調べる 환자 검사하기 + 检查伤者 + 檢查傷者 Bandage / Fractures @@ -234,6 +268,8 @@ Bendaggi/Fratture 包帯 / 骨折 붕대 / 골절 + 绷带 / 骨折 + 繃帶 / 骨折 Medication @@ -247,6 +283,8 @@ Medicazione 薬物による治療 약물 치료 + 药物 + 藥物 Airway Management @@ -260,6 +298,8 @@ Atemwegssicherung 気道を確保 기도 관리 + 呼吸道管理 + 呼吸道管理 Advanced Treatments @@ -273,6 +313,8 @@ Trattamenti Avanzati 高度な治療 고급 치료 + 进阶治疗 + 進階治療 Drag/Carry @@ -286,6 +328,8 @@ Trascina/Trasporta 引きずる / 運ぶ 끌기 / 들기 + 拖 / 背 + 拖 / 背 Toggle (Self) @@ -299,6 +343,8 @@ Attiva (Te Stesso) トグル (自分) 토글 (자신) + 切换 (自己) + 切換 (自己) Select triage status @@ -312,6 +358,8 @@ Seleziona stato Triage トリアージによる状態を選択 부상 상태 고르기 + 选择分诊状态 + 選擇分診狀態 Select Head @@ -325,6 +373,8 @@ Seleziona Testa 頭部を選ぶ 머리 선택 + 选择头部 + 選擇頭部 Select Torso @@ -338,6 +388,8 @@ Seleziona Torso 胴体を選ぶ 몸통 선택 + 选择身体 + 選擇身體 Select Left Arm @@ -351,6 +403,8 @@ Seleziona Braccio Sinistro 左腕を選ぶ 왼쪽 팔 선택 + 选择左手 + 選擇左手 Select Right Arm @@ -364,6 +418,8 @@ Seleziona Braccio Destro 右腕を選ぶ 오른쪽 팔 선택 + 选择右手 + 選擇右手 Select Left Leg @@ -377,6 +433,8 @@ Seleziona Gamba Sinistra 左足を選ぶ 왼쪽 다리 선택 + 选择左脚 + 選擇左腳 Select Right Leg @@ -390,6 +448,8 @@ Seleziona Gamba Destra 右足を選ぶ 오른쪽 다리 선택 + 选择右脚 + 選擇右腳 Head @@ -403,6 +463,8 @@ Testa 頭部 머리 + 头部 + 頭部 Torso @@ -416,6 +478,8 @@ Torso 胴体 몸통 + 身体 + 身體 Left Arm @@ -429,6 +493,8 @@ Braccio Sinistro 左腕 왼쪽 팔 + 左手 + 左手 Right Arm @@ -442,6 +508,8 @@ Braccio Destro 右腕 오른쪽 팔 + 右手 + 右手 Left Leg @@ -455,6 +523,8 @@ Gamba Sinistra 左足 왼쪽 다리 + 左脚 + 左腳 Right Leg @@ -468,6 +538,8 @@ Gamba Destra 右足 오른쪽 다리 + 右脚 + 右腳 Body Part: %1 @@ -481,6 +553,8 @@ Parte del Corpo: %1 身体の一部: %1 신체 부위: %1 + 身体部位: %1 + 身體部位: %1 Small @@ -494,6 +568,8 @@ Piccolo 小さい + + Medium @@ -507,6 +583,8 @@ Medio 中くらい + + Large @@ -520,6 +598,8 @@ Grande 大きい + + There are %2 %1 Open Wounds @@ -533,6 +613,8 @@ Ci sono %2 %1 Ferite Aperte 開いている傷口が %2 %1 ほどあるようだ 여기 %2 %1 크기의 열린 상처가 있다 + 有 %2 %1 开放性伤口 + 有 %2 %1 開放性傷口 There is 1 %1 Open Wound @@ -546,6 +628,8 @@ C'è 1 %1 Ferita Aperta 1 つの空いている %1 傷口 여기 %1 크기의 열린 상처가 있다 + 有 1 %1 开放性伤口 + 有 1 %1 開放性傷口 There is a partial %1 Open wound @@ -559,6 +643,8 @@ C'è 1 parziale %1 Ferita Aperta 部分的に開いている %1 の傷口がある 여기 부분적으로 %1 크기의 상처가 있다 + 有部分 %1 开放性伤口 + 有部分 %1 開放性傷口 There are %2 %1 Bandaged Wounds @@ -572,6 +658,8 @@ Ci sono %2 %1 Ferite Bendate ここには %2 %1 の処置された傷がある 여기에 붕대를 감은 %2 %1 크기의 상처가 있다 + 有 %2 %1 包扎过伤口 + 有 %2 %1 包紮過傷口 There is 1 %1 Bandaged Wound @@ -585,6 +673,8 @@ C'è 1 %1 Ferita Bendata 1 つの包帯で巻かれている %1 傷 여기에 붕대를 감은 %1 크기의 상처가 있다 + 有 1 %1 包扎过伤口 + 有 1 %1 包紮過傷口 There is a partial %1 Bandaged wound @@ -598,6 +688,8 @@ C'è 1 parziale %1 Ferita Bendata 患者には %1 の包帯で処置された傷がある 여기 부분적으로 붕대질한 %1 크기의 상처가 있다 + 有部分 %1 包扎过伤口 + 有部分 %1 包紮過傷口 Normal breathing @@ -611,6 +703,8 @@ Respirazione Normale 通常の呼吸 정상 호흡 + 正常呼吸 + 正常呼吸 No breathing @@ -624,6 +718,8 @@ Nessuna Respirazione 息をしていない 호흡이 없음 + 没有呼吸 + 沒有呼吸 Difficult breathing @@ -637,6 +733,8 @@ Difficoltà Respiratorie 呼吸が難しそうだ 호흡 곤란 + 呼吸困难 + 呼吸困難 Almost no breathing @@ -650,6 +748,8 @@ Quasi nessuna Respirazione ほとんど呼吸していない 호흡이 거의 없음 + 几乎没有呼吸 + 幾乎沒有呼吸 Bleeding @@ -663,6 +763,8 @@ Sanguinamento 出血 출혈 + 出血中 + 出血中 in Pain @@ -676,6 +778,8 @@ in Dolore 痛みがある 고통 + 疼痛中 + 疼痛中 Lost a lot of Blood @@ -689,6 +793,8 @@ Perso molto Sangue 大量出血している 많은 피를 흘림 + 大量失血 + 大量失血 Tourniquet [CAT] @@ -702,6 +808,8 @@ Laccio Emostatico [CAT] 止血帯 [CAT] 지혈대 [CAT] + 军用止血带 + 軍用止血帶 Nasopharyngeal Tube [NPA] @@ -715,6 +823,8 @@ Tubo Nasofaringeo [NPA] 鼻咽頭チューブ [NPA] 비-인두 기도기 [NPA] + 鼻咽管 + 鼻咽管 - \ No newline at end of file + diff --git a/addons/microdagr/stringtable.xml b/addons/microdagr/stringtable.xml index 5be5d853c37..44fa85c25a0 100644 --- a/addons/microdagr/stringtable.xml +++ b/addons/microdagr/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ GPS MicroDAGR MicroDAGR GPS MicroDAGR GPS + 微型军用GPS接收器 + 微型軍用GPS接收器 MicroDAGR advanced GPS receiver @@ -28,6 +30,8 @@ Recepitor GPS avançado MicroDAGR MicroDAGR は改良された GPS 受信機です MicroDAGR 고급 위성항법 수신기 + 微型军用高级防御GPS接收器 + 微型軍用高級防禦GPS接收器 Angular Unit: @@ -42,6 +46,8 @@ Unidade Angular: 角度の種類: 각도의 단위: + 角密位: + 角密位: Mils @@ -56,6 +62,8 @@ Mils: ミリ ラジアン + 密位 + 密位 Show Waypoints On Map: @@ -70,6 +78,8 @@ Mostrar Waypoints no mapa: 地図へウェイポイントを表示: 웨이포인트를 지도에 보이기: + 显示路径点在地图上: + 顯示路徑點在地圖上: Degrees @@ -84,6 +94,8 @@ Graus 角度 각도 + + On @@ -98,6 +110,8 @@ Be 有効 켜기 + 开启 + 開啟 Off @@ -112,6 +126,8 @@ Ki 無効 끄기 + 关闭 + 關閉 Enter Grid Cords: @@ -126,6 +142,8 @@ Digite as Ccords. do Grid 座標を入力: 망 좌표 입력: + 输入网格座标: + 輸入網格座標: Name of [%1] @@ -140,6 +158,8 @@ Nome do [%1] [%1] の名前 [%1] 의 이름 + 名称 [%1] + 名稱 [%1] MGRS-New @@ -154,6 +174,8 @@ MGRS-Novo MGRS-New MGRS-새 것 + 军事网格座标系统-新型 + 軍事網格座標系統-新型 WGD @@ -168,6 +190,8 @@ WGD WGD WGD + 世界座标 + 世界座標 Range: @@ -182,6 +206,8 @@ Distância: 距離: 거리: + 范围: + 範圍: Compass Direction @@ -196,6 +222,8 @@ Direção na bússula 方位磁石での方位 방위 + 指北针方位 + 指北針方位 Mark @@ -210,6 +238,8 @@ Marca マーク 표시 + 标记 + 標記 Waypoints @@ -224,6 +254,8 @@ Waypoints ウェイポイント 웨이포인트 + 路径点 + 路徑點 Connect To @@ -238,6 +270,8 @@ Conectar à 次に接続 연결 + 连接到 + 連接到 Settings @@ -252,6 +286,8 @@ Opções 設定 설정 + 设定 + 設定 SetWP @@ -266,6 +302,8 @@ Definir WP ウェイポイント設定 웨이포인트 설정 + 设置路径点 + 設置路徑點 Add @@ -280,6 +318,8 @@ Adicionar 追加 더하기 + 新增 + 新增 Delete @@ -294,6 +334,8 @@ Törlés 削除 지우기 + 删除 + 刪除 Toggle MicroDAGR Display Mode @@ -308,6 +350,8 @@ Alternar Modo de Display do MicroDAGR MicroDAGR の表示モード MicroDAGR 화면 모드 토글 + 切换微型军用GPS接收器显示模式 + 切換微型軍用GPS接收器顯示模式 Show MicoDAGR @@ -322,6 +366,8 @@ Mostrar MicroDAGR MicoDAGR を表示 MicroDAGR 꺼내기 + 显示微型军用GPS接收器 + 顯示微型軍用GPS接收器 Configure MicroDAGR @@ -336,6 +382,8 @@ Configurar MicroDAGR MicroDAGR を設定 MicroDAGR 설정하기 + 设定微型军用GPS接收器 + 設定微型軍用GPS接收器 Close MicroDAGR @@ -350,6 +398,8 @@ Fechar MicroDAGR MicroDAGR を閉じる MicroDAGR 집어넣기 + 关闭微型军用GPS接收器 + 關閉微型軍用GPS接收器 MicroDAGR Map Fill @@ -364,6 +414,8 @@ Riempimento Mappa MicroDAGR MicroDAGR での地図情報 MicroDAGR - 지도채우기 + 微型军用GPS接收器地图资料 + 微型軍用GPS接收器地圖資料 MicroDAGR Map Fill @@ -378,6 +430,8 @@ Riempimento Mappa MicroDAGR MicroDAGR での地図情報 MicroDAGR - 지도채우기 + 微型军用GPS接收器地图资料 + 微型軍用GPS接收器地圖資料 How much map data is filled on MicroDAGR's @@ -392,6 +446,8 @@ Quanti dati sono trasferiti nella mappa del MicroDAGR MicroDAGR で表示する地図情報を決定します 얼마나 많은 데이터가 MicroDAGR에 있는지에 대한 정보 + 有多少地图数据会显示在微型军用GPS接收器 + 有多少地圖數據會顯示在微型軍用GPS接收器 Full Satellite + Buildings @@ -406,6 +462,8 @@ Satellite Completo + Edifici 完全な衛星画像と建物 위성 사진 + 건물 + 完整卫星画面 + 建筑物位置 + 完整衛星畫面 + 建築物位置 Topographical + Roads @@ -420,6 +478,8 @@ Topografico + Strade 地形と道路 지형학 도표 + 도로 + 地形 + 道路 + 地形 + 道路 None (Cannot use map view) @@ -434,6 +494,8 @@ Nessuno (Non puoi usare la vista mappa) なし(地図表示を使えません) 없음 (지도를 볼 수 없음) + 无 (无法检视地图) + 無 (無法檢視地圖) Controls how much data is filled on the microDAGR items. Less data restricts the map view to show less on the minimap. @@ -448,6 +510,8 @@ Controlla quanti dati sono presenti negli oggetti MicroDAGR. Meno dati costringono la vista mappa a mostrare meno informazioni nella minimappa. アイテム上で表示されるデータ量を決定します。設定を減らすと地図上での情報が少なくなります。 MicroDAGR에 얼마나 많은 데이터가 들어있는지 정합니다. 적을 수록 지도상에도 비춰지는게 적어집니다. + 设定有多少数据会显示在微型军用GPS接收器上. 这些资料的多寡会反映在迷你地图的显示上. + 設定有多少數據會顯示在微型軍用GPS接收器上. 這些資料的多寡會反映在迷你地圖的顯示上. diff --git a/addons/minedetector/stringtable.xml b/addons/minedetector/stringtable.xml index 456873d2c49..99e1c2d0bce 100644 --- a/addons/minedetector/stringtable.xml +++ b/addons/minedetector/stringtable.xml @@ -11,6 +11,8 @@ Metalldetektor 지뢰탐지기 Metal detector + 金属探测器 + 金屬探測器 Metal detector @@ -22,6 +24,8 @@ Metalldetektor 지뢰탐지기 Metal detector + 金属探测器 + 金屬探測器 Activate @@ -33,6 +37,8 @@ Aktivieren 작동 Attiva + 启用探测器 + 啟用探測器 Deactivate @@ -44,6 +50,8 @@ Deaktivieren 끄기 Disattiva + 停用探测器 + 停用探測器 Connect Headphones @@ -55,6 +63,8 @@ 헤드폰에 연결 Connecter les écouteurs Connetti Auricolari + 连接耳机 + 連接耳機 Disconnect Headphones @@ -66,6 +76,8 @@ 헤드폰 연결끊기 Déconnecter les écouteurs Disconnetti Auricolari + 断开耳机 + 斷開耳機 Headphones Connected @@ -77,6 +89,8 @@ 헤드폰 연결됨 Écouteurs connectés Auricolari Connessi + 已连接耳机 + 已連接耳機 Headphones Disconnected @@ -88,6 +102,8 @@ 헤드폰 연결끊김 Écouteurs déconnectés Auricolari Disconnessi + 已断开耳机 + 已斷開耳機 diff --git a/addons/missileguidance/stringtable.xml b/addons/missileguidance/stringtable.xml index 54cc4e9757b..7cf2cc30e04 100644 --- a/addons/missileguidance/stringtable.xml +++ b/addons/missileguidance/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Продвинутое наведение ракет 高度なミサイルの誘導 고급 미사일 유도 + 进阶飞弹制导 + 進階飛彈制導 Advanced missile guidance, or AMG, provides multiple enhancements to missile locking and firing. It is also a framework required for missile weapon types. @@ -28,6 +30,8 @@ Pokočilé navádění raket (AMG) poskytuje několik vylepšení pro lepší zaměření a následnou střelbu. Je to prvek vyžadovaný u typu zbraní jako jsou rakety. 高度なミサイルの誘導、または AMG はミサイルの捕捉と発射に複数の強化をあたえます。これはミサイルの種類によって、枠組みを必要とします。 고급 미사일 유도 혹은 AMG 는 표적 획득 및 발사를 위한 여러 기능을 제공합니다. 미사일 종류에따라 체계가 필요합니다. + 进阶飞弹制导增强了多种导弹锁定和射击的能力. 此系统适用于所有飞弹类型的武器. + 進階飛彈制導增強了多種導彈鎖定和射擊的能力. 此系統適用於所有飛彈類型的武器. Hydra-70 DAGR Missile @@ -42,6 +46,8 @@ Hydra-70 DAGR Hydra-70 DAGR ミサイル Hydra-70 DAGR 미사일 + 九头蛇-70 直接攻击导引飞弹 + 九頭蛇-70 直接攻擊導引飛彈 DAGR @@ -56,6 +62,8 @@ DAGR DAGR DAGR + 直接攻击导引飞弹 + 直接攻擊導引飛彈 Hydra-70 DAGR Laser Guided Missile @@ -70,6 +78,8 @@ Управляемая ракета лазерного наведения Hydra-70 DAGR Hydra-70 DAGR レーザ誘導ミサイル Hydra-70 DAGR 레이저 유도 미사일 + 九头蛇-70 直接攻击雷射导引飞弹e + 九頭蛇-70 直接攻擊雷射導引飛彈e Hellfire II AGM-114K Missile @@ -84,6 +94,8 @@ Hellfire II AGM-114K Hellfire II AGM-114K ミサイル Hellfire II AGM-114K 미사일 + 地狱火II型 AGM-114K 导弹 + 地獄火II型 AGM-114K 導彈 AGM-114K @@ -98,6 +110,8 @@ AGM-114K AGM-114K AGM-114K + AGM-114K + AGM-114K Hellfire II AGM-114K Laser Guided Missile @@ -112,6 +126,8 @@ Управляемая ракета лазерного наведения Hellfire II AGM-114K Hellfire II AGM-114K レーザ誘導ミサイル Hellfire II AGM-114K 레이저 유도 미사일 + 地狱火II型 AGM-114K 雷射导引飞弹 + 地獄火II型 AGM-114K 雷射導引飛彈 Off @@ -126,6 +142,8 @@ Spento 無効 끄기 + 关闭 + 關閉 Player Only @@ -140,6 +158,8 @@ Solo Giocatore プレイヤーのみ 오직 플레이어만 + 只有玩家 + 只有玩家 Player and AI @@ -153,6 +173,8 @@ Игрок и боты Giocatore ed IA プレイヤーと AI + 玩家和AI + 玩家和AI Cycle Fire Mode @@ -167,6 +189,8 @@ Alterar Modo de Disparo 発射モード切り替え 발사 방식 순환 + 循环切换开火模式 + 循環切換開火模式 diff --git a/addons/missionmodules/stringtable.xml b/addons/missionmodules/stringtable.xml index 2fe4264a37a..d9548493db6 100644 --- a/addons/missionmodules/stringtable.xml +++ b/addons/missionmodules/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Moduli Missione ACE ACE ミッション モジュール ACE 미션 모듈 + ACE 任务模块 + ACE 任務模塊 Ambiance Sounds [ACE] @@ -28,6 +30,8 @@ Souni Ambientali [ACE] 環境音 [ACE] 환경 효과음 [ACE] + 环境声音 [ACE] + 環境聲音 [ACE] Sounds @@ -42,6 +46,8 @@ Suoni 効果音 효과음 + 声音 + 聲音 Class names of the ambiance sounds to be played. Seperated by ',' @@ -55,6 +61,8 @@ Nomi classi dei suoni ambientali da eseguire. Separati da ',' 再生する環境音のクラスネームを記載。','で複数指定できます。 재생되는 환경 효과음의 단위와 이름입니다. ','로 구분됩니다. + 输入想使用的环境声音classname. 每个classname用','做区隔 + 輸入想使用的環境聲音classname. 每個classname用','做區隔 Minimal Distance @@ -69,6 +77,8 @@ Distanza Minimale 最低距離 최소 거리 + 最小距离 + 最小距離 Used for calculating a random position and sets the minimal distance between the players and the played sound file(s) @@ -83,6 +93,8 @@ Usati per calcolare una posizione casuale ed impostare la distanza minima tra i giocatori ed il file suono eseguito 無作為な位置への計算や、プレイヤーと再生されるファイルの間へ最低距離を設定します 무작위 위치 계산에 사용되며 플레이어와 재생 된 사운드 파일 간의 최소 거리를 설정합니다. + 声音将随机产生在玩家附近, 此选项定义该声音最近会距离玩家多少公尺. + 聲音將隨機產生在玩家附近, 此選項定義該聲音最近會距離玩家多少公尺. Maximum Distance @@ -97,6 +109,8 @@ Distanza Massima 最大距離 최대 거리 + 最大距离 + 最大距離 Used for calculating a random position and sets the maximum distance between the players and the played sound file(s) @@ -111,6 +125,8 @@ Usato per calcolare una posizione casuale ed impostare la distanza massima tra giocatori e il file suono eseguito 無作為な位置への計算や、プレイヤーと再生されるファイルの間へ最大距離を設定します 무작위 위치 계산에 사용되며 플레이어와 재생 된 사운드 파일 간의 최대 거리를 설정합니다. + 声音将随机产生在玩家附近, 此选项定义该声音最远会距离玩家多少公尺. + 聲音將隨機產生在玩家附近, 此選項定義該聲音最遠會距離玩家多少公尺. Minimal Delay @@ -125,6 +141,8 @@ Pausa Minima 最低遅延 최소 지연 + 最小延迟 + 最小延遲 Minimal delay between sounds played @@ -139,6 +157,8 @@ Pausa Minima tra suoni eseguiti 再生されるまでの最低遅延 재생된 소리간 최소 지연시간 + 设定每个声音档案中间最少间隔多久再进行播放 + 設定每個聲音檔案中間最少間隔多久再進行播放 Maximum Delay @@ -153,6 +173,8 @@ Pausa Massima 最大遅延 최대 지연 + 最大延迟 + 最大延遲 Maximum delay between sounds played @@ -167,6 +189,8 @@ Pausa Massima tra suoni eseguiti 再生されるまでの最大遅延 재생된 소리간 최대 지연시간 + 设定每个声音档案中间最多间隔多久再进行播放 + 設定每個聲音檔案中間最多間隔多久再進行播放 Follow Players @@ -181,6 +205,8 @@ Segui Giocatori プレイヤーを追随 플레이어 따라가기 + 跟随玩家 + 跟隨玩家 Follow players. If set to false, loop will play sounds only nearby logic position. @@ -195,6 +221,8 @@ Segui Giocatori. Se impostato su falso, il ciclo eseguirà i suoni solo vicino ad una posizione logica. プレイヤーを追随します。False に設定するとロジックの近くで延々と再生します。 플레이어를 따라갑니다. 거짓으로 설정될경우 오직 한 자리에서만 반복해서 소리를 재생합니다. + 设定声音是否会在玩家的附近产生. 假如关闭此功能, 声音只会在模块的位置产生. + 設定聲音是否會在玩家的附近產生. 假如關閉此功能, 聲音只會在模塊的位置產生. Volume @@ -209,6 +237,8 @@ Volume 音量 볼륨 + 音量 + 音量 The volume of the sounds played @@ -223,6 +253,8 @@ Il volume dei suoni eseguiti 再生される音の大きさ 재생되는 소리의 볼륨 + 调整声音的音量 + 調整聲音的音量 Ambiance sounds loop (synced across MP) @@ -237,6 +269,8 @@ Ciclo Suoni Ambientali (sincronizzato in MP) 環境音の繰り返し (MP 間で同期させます) 환경 효과음 반복 (멀티플레이 전반적으로 동기화됨) + 循环的环境声音 (在多人游戏中会同步所有玩家的播放状态) + 循環的環境聲音 (在多人遊戲中會同步所有玩家的播放狀態) diff --git a/addons/mk6mortar/stringtable.xml b/addons/mk6mortar/stringtable.xml index 2b5e220753d..e2dcfabad85 100644 --- a/addons/mk6mortar/stringtable.xml +++ b/addons/mk6mortar/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Tavola di tiro 82mm 82mm 射表 82mm 사거리표 + 82mm迫击炮射表 + 82mm迫擊炮射表 Range Table for the Mk6 82mm Mortar @@ -28,6 +30,8 @@ Tavola di tiro per il mortaio calibro 82mm Mk6 Mk6 82mm 迫撃砲の射表 Mk6 82mm 박격포 사격을 위한 사거리표 + MK6 82mm迫击炮射表 + MK6 82mm迫擊炮射表 Open 82mm Rangetable @@ -42,6 +46,8 @@ Apri la tavola di tiro 82mm 82mm 射表を開く 82mm 사거리표 열기 + 开启82mm迫击炮射表 + 開啟82mm迫擊炮射表 Charge @@ -56,6 +62,8 @@ Carica 装薬 장약 + 装药 + 裝藥 Mk6 Settings @@ -70,6 +78,8 @@ Impostazioni Mk6 Mk6 設定 Mk6 설정 + MK6设定 + MK6設定 Air Resistance @@ -84,6 +94,8 @@ Resistenza dell'Aria 空気抵抗 공기저항 + 空气阻力 + 空氣阻力 For Player Shots, Model Air Resistance and Wind Effects @@ -98,6 +110,8 @@ Per Proiettili dei Giocatori, simula la Resistenza dell'Aria e gli Effetti del Vento プレイヤが射撃すると、空気抵抗モデルと風による影響をあたえます。 플레이어 사격시 공기저항과 바람에 영향을 받습니다 + 设定由玩家射击的迫击炮, 将会受到空气阻力与风力的影响 + 設定由玩家射擊的迫擊砲, 將會受到空氣阻力與風力的影響 Allow Mk6 Computer @@ -112,6 +126,8 @@ Consenti Computer Mk6 Mk6 コンピュータを許可 Mk6 탄도계산컴퓨터 허가 + 允许使用MK6射控电脑 + 允許使用MK6射控電腦 Show the Computer and Rangefinder (these NEED to be removed if you enable air resistance) @@ -126,6 +142,8 @@ Mostra il Computer e Distaziometro (questi DEVONO essere rimossi se vuoi abilitare la resistenza dell'aria) コンピュータと距離を表示します (空気抵抗を有効化している場合は必ず削除してください) 탄도계산컴퓨터와 거리측정기를 보여줍니다(공기저항을 활성화했을경우 이 항목은 비활성화 되어야만 합니다) + 显示射控电脑和测距仪 (如果有启用空气阻力功能时, 须停用此项功能) + 顯示射控電腦和測距儀 (如果有啟用空氣阻力功能時, 須停用此項功能) Allow Mk6 Compass @@ -140,6 +158,8 @@ Consenti Bussola Mk6 Mk6 への方位磁石を有効化 Mk6 나침반 허용 + 允许使用MK6指北针 + 允許使用MK6指北針 Show the Mk6 Digital Compass @@ -154,6 +174,8 @@ Mostra la Bussola Digitale Mk6 Mk6 のデジタル方位磁石を表示 Mk6 에서 전자 나침반을 보여줍니다 + 显示MK6的数位指北针 + 顯示MK6的數位指北針 This module allows you to setup Mk6 mortar settings. @@ -167,6 +189,8 @@ Este módulo permite configurar los parámetros del mortero Mk6. Mk6 迫撃砲への設定をできます。 이 모듈은 Mk6 설치 설정을 가능케 합니다. + 这个模块允许你设定MK6迫击炮的相关功能. + 這個模塊允許你設定MK6迫擊砲的相關功能. Use Ammunition handling @@ -179,6 +203,8 @@ Использовать манипуляции с боеприпасами 弾薬の取り扱い 탄약 관리 활성화 + 使用手动弹药装卸 + 使用手動彈藥裝卸 Removes mortar magazines, requiring individual rounds to be loaded by the gunner or loader. Does not affect AI mortars. @@ -191,6 +217,8 @@ Удаляет артиллерийские магазины, требует загрузку отдельных снарядов стрелком или заряжащим. Не влияет на артиллерию ИИ. 迫撃砲から弾薬を除去します。射手か装填手により予め装填されている必要があります。AI 迫撃砲へ影響を与えません。 박격포 탄창을 제거합니다, 사수나 장전수가 개별적으로 탄환을 넣어줘야만 합니다. 인공지능은 영향을 받지 않습니다. + 开启此功能时. 迫击炮的弹药需由炮手与装填手共同合作来进行装填. 此功能并不影响由AI射击的迫击炮. + 開啟此功能時. 迫擊砲的彈藥需由砲手與裝填手共同合作來進行裝填. 此功能並不影響由AI射擊的迫擊砲. Remove Round @@ -204,6 +232,8 @@ Извлечь снаряд 弾薬を除去 탄약 제거 + 卸除弹头 + 卸除彈頭 Load Mortar @@ -217,6 +247,8 @@ Зарядить миномет 弾薬を装填 탄약 장전 + 装载弹头 + 裝載彈頭 Unloading Round @@ -229,6 +261,8 @@ Извлечение снаряда 弾薬を除去しています 탄약 제거중 + 卸除弹头中 + 卸除彈頭中 Preparing Round @@ -242,6 +276,8 @@ Подготовка снаряда 事前に装填 탄약 준비중 + 准备弹头中 + 準備彈頭中 Load HE @@ -255,6 +291,8 @@ Зарядить фугасный りゅう弾を装填 고폭탄 장전 + 装载高爆弹 + 裝載高爆彈 Load Smoke @@ -268,6 +306,8 @@ Зарядить дымовой 煙幕弾を装填 연막탄 장전 + 装载烟雾弹 + 裝載煙霧彈 Load Illumination @@ -281,6 +321,8 @@ Зарядить осветительный 照明弾を装填 조명탄 장전 + 装载照明弹 + 裝載照明彈 Load Guided HE @@ -294,6 +336,8 @@ Зарядить фугасный управляемый 誘導りゅう弾を装填 유도 고폭탄 장전 + 装载导引高爆弹 + 裝載導引高爆彈 Load Laser Guided HE @@ -307,6 +351,8 @@ Зарядить фугасный управляемый по ЛЦУ レーザ誘導りゅう弾を装填 레이저 유도 고폭탄 장전 + 装载雷射导引高爆弹 + 裝載雷射導引高爆彈 82mm HE Round @@ -320,6 +366,8 @@ Фугасный снаряд 82мм 82mm りゅう弾 82mm 고폭탄 + 82mm高爆弹 + 82mm高爆彈 82mm Smoke Round @@ -333,6 +381,8 @@ Дымовой снаряд 82мм 82mm 煙幕弾 82mm 연막탄 + 82mm烟雾弹 + 82mm煙霧彈 82mm Illumination Round @@ -346,6 +396,8 @@ Осветительный снаряд 82мм 82mm 照明弾 82mm 조명탄 + 82mm照明弹 + 82mm照明彈 82mm Guided HE Round @@ -359,6 +411,8 @@ Фугасный снаряд управляемый 82мм 82mm 誘導りゅう弾 82mm 유도 고폭탄 + 82mm导引高爆弹 + 82mm導引高爆彈 82mm Laser Guided HE Round @@ -372,6 +426,8 @@ Фугасный снаряд управляемый по ЛЦУ 82мм 82mm レーザ誘導りゅう弾 82mm 레이저 유도 고폭탄 + 82mm雷射导引高爆弹 + 82mm雷射導引高爆彈 Used in Mk6 mortar @@ -385,6 +441,8 @@ Использовался в миномете Mk6 Mk6 mortar で使います Mk6 박격포에 사용됨 + 用于Mk6迫击炮 + 用於Mk6迫擊砲 [ACE] 82mm HE Rounds Box @@ -398,6 +456,8 @@ [ACE] Ящик фугасных снарядов 82мм [ACE] 82mm りゅう弾入り弾薬箱 [ACE] 82mm 고폭탄 상자 + [ACE] 82mm高爆弹药箱 + [ACE] 82mm高爆彈藥箱 [ACE] 82mm Smoke Rounds Box @@ -411,6 +471,8 @@ [ACE] Ящик дымовых снарядов 82мм [ACE] 82mm 煙幕弾入り弾薬箱 [ACE] 82mm 연막탄 상자 + [ACE] 82mm烟雾弹药箱 + [ACE] 82mm煙霧彈藥箱 [ACE] 82mm Illumination Rounds Box @@ -424,6 +486,8 @@ [ACE] Ящик осветительных снарядов 82мм [ACE] 82mm 照明弾入り弾薬箱 [ACE] 82mm 조명탄 상자 + [ACE] 82mm照明弹药箱 + [ACE] 82mm照明彈藥箱 [ACE] 82mm Default Loadout Box @@ -437,6 +501,8 @@ [ACE] Ящик снарядов 82мм (стандартный) [ACE] 82mm 梱包箱 [ACE] 82mm 기본 장비 상자 + [ACE] 82mm预设弹药箱 + [ACE] 82mm預設彈藥箱 diff --git a/addons/movement/stringtable.xml b/addons/movement/stringtable.xml index 9d7c5d219d9..eecbf9f8339 100644 --- a/addons/movement/stringtable.xml +++ b/addons/movement/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Показывать вес в фунтах ポンドで重量を表示する 무게를 파운드(lb)로 보여줍니다 + 使用磅来显示重量 + 使用磅來顯示重量 Weight: @@ -28,6 +30,8 @@ Вес: 重量: 무게: + 重量: + 重量: Climb @@ -42,6 +46,8 @@ Subir 登る 오르기 + 攀爬 + 攀爬 Can't climb here @@ -55,6 +61,8 @@ Non puoi arrampicarti qui Não se pode subir aqui ここは登れない + 这里无法攀爬 + 這裡無法攀爬 - \ No newline at end of file + diff --git a/addons/mx2a/stringtable.xml b/addons/mx2a/stringtable.xml index cc2b8beb85b..ab92ad08c76 100644 --- a/addons/mx2a/stringtable.xml +++ b/addons/mx2a/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ MX-2A MX-2A MX-2A + MX-2A + MX-2A Thermal imaging device @@ -28,6 +30,8 @@ Dispositivo di visione termica サーマル画像表示双眼鏡 열영상 장치 + 热成像装置 + 熱成像裝置 diff --git a/addons/nametags/stringtable.xml b/addons/nametags/stringtable.xml index 9a4acbe108f..ba7ba558729 100644 --- a/addons/nametags/stringtable.xml +++ b/addons/nametags/stringtable.xml @@ -14,6 +14,8 @@ Mostrar nomes 名前の表示 이름 표시 + 显示名称 + 顯示名稱 Show player names @@ -28,6 +30,8 @@ Показывать имена игроков (включить имена) プレイヤ名を表示 플레이어 이름 표시 + 显示玩家名称 + 顯示玩家名稱 Show player name only on cursor (requires player names) @@ -42,6 +46,8 @@ Показать имена игроков только под курсором (при включенных именах) カーソルを合わせた時だけプレイヤ名を表示 (プレイヤ名が必要 커서로 지시할때만 플레이어 이름 표시(플레이어 이름 필요) + 仅在准心指到后显示玩家名称 (玩家必须有设定名称) + 僅在準心指到後顯示玩家名稱 (玩家必須有設定名稱) Show player name only on keypress (requires player names) @@ -56,6 +62,8 @@ Mostrar nomes somente ao pressionar teclar (requer nome de jogadores) キーを押した時だけプレイヤ名を表示 (プレイヤ名が必要) 키를 누를때만 플레이어 이름 표시(플레이어 이름 필요) + 仅在按按键后显示玩家名称 (玩家必须有设定名称) + 僅在按按鍵後顯示玩家名稱 (玩家必須有設定名稱) Show player ranks (requires player names) @@ -70,6 +78,8 @@ Показывать звания игроков (при вкл. именах) プレイヤの階級を表示 (プレイヤ名が必要) 플레이어 계급 표시 (플레이어 이름 필요) + 显示玩家军阶 (玩家必须有设定名称) + 顯示玩家軍階 (玩家必須有設定名稱) Show vehicle crew info @@ -84,6 +94,8 @@ Mostra l'elenco del personale a bordo 車両の乗員を表示 차량 승무원 정보 표시 + 显示载具成员信息 + 顯示載具成員信息 Show name tags for AI units @@ -98,6 +110,8 @@ Mostrar nomes para unidades de IA AI ユニットの名札を表示 인공지능 인원 이름 표시 + 显示AI单位名称 + 顯示AI單位名稱 Show SoundWaves (requires player names) @@ -112,6 +126,8 @@ Mostrar onda sonora (requer nome de jogadores) 音波形を表示 (プレイヤ名が必要) 음파 표시 (플레이어 이름 필요) + 当玩家讲话时, 显示声波图案 (玩家必须有设定名称) + 當玩家講話時, 顯示聲波圖案 (玩家必須有設定名稱) Default Nametag Color (Non Group Members) @@ -126,6 +142,8 @@ Cor padrão do nome (unidades fora do grupo) 標準の名札の色(グループ メンバ以外) 기본 이름표 색상 (비-그룹 멤버) + 预设名称颜色 (非同小队队友) + 預設名稱顏色 (非同小隊隊友) Name Tags @@ -140,6 +158,8 @@ Etichette Nomi 名札 이름표 + 玩家名称 + 玩家名稱 Player Names View Dist. @@ -154,6 +174,8 @@ Distanza Visiva Etichette Nomi プレイヤ名が見える範囲 플레이어 이름 표시 거리 + 玩家名称显示距离 + 玩家名稱顯示距離 Distance in meters at which player names are shown. Default: 5 @@ -168,6 +190,8 @@ Distanza in metri a cui sono visibili i nomi giocatori. Default: 5 プレイヤの周り何メートルまで名札を表示できます。標準:5 플레이어 이름이 표시되는 미터. 기본설정: 5 + 设定名称在多少距离以内显示. 预设:5公尺 + 設定名稱在多少距離以內顯示. 預設:5公尺 Show name tags for AI? @@ -182,6 +206,8 @@ Mostra etichette nomi per IA? AI の名札も表示しますか? 인공지능의 이름도 표시합니까? + 显示AI名称? + 顯示AI名稱? Show the name and rank tags for friendly AI units? Default: Do not force @@ -196,6 +222,8 @@ Mostra etichette nomi ed etichette gradi per unità IA alleate? Default: Non forzare 友軍の AI にも名前と階級を表示しますか?標準:強制しない 아군 인공지능의 계급을 표시합니까? 기본설정: 강제하지 않음 + 显示友军AI的名称和军阶? 预设: 不显示 + 顯示友軍AI的名稱和軍階? 預設: 不顯示 Force Hide @@ -210,6 +238,8 @@ Forza Nascosto 強制で非表示 강제로 숨기기 + 强迫隐藏 + 強迫隱藏 Force Show @@ -224,6 +254,8 @@ Forza Mostra 強制で表示 강제로 표시 + 强迫显示 + 強迫顯示 Show crew info? @@ -238,6 +270,8 @@ Mostra informazioni equipaggio? 乗員の情報を表示 승무원 정보 표시? + 显示载具成员讯息? + 顯示載具成員訊息? Show vehicle crew info, or by default allows players to choose it on their own. Default: Do Not Force @@ -252,6 +286,8 @@ Mostra informazioni sull'equipaggio del veicolo, oppure consenti di default di lasciare che siano i giocatori a scegliere. Default: Non Forzare 車両の乗員を表示します。標準ではプレイヤ各々が選べられます。標準:強制しない 승무원 정보를 표시하거나 플레이어가 직접 고르게 냅둡니다. 기본설정: 강제하지 않음 + 显示载具成员讯息. 在预设的情况下, 系统允许玩家自己决定开关此讯息. 预设: 不显示 + 顯示載具成員訊息. 在預設的情況下, 系統允許玩家自己決定開關此訊息. 預設: 不顯示 Show for Vehicles @@ -266,6 +302,8 @@ Mostra per Veicoli 車両への表示 차량 표시 + 显示给载具指挥官 + 顯示給載具指揮官 Show cursor NameTag for vehicle commander (only if client has name tags enabled) Default: No @@ -279,6 +317,8 @@ Mostra il nome sul cursore per il comandante del veicolo (solo se il client ha le Etichette Nomi attive) Default: No 車長の名札をカーソルを当てて表示します (クライアント側で名札を有効化する必要があります) 標準:無効 차량의 사령관의 이름표를 표시합니다 (오직 클라이언트가 이름표를 활성화 할시에만 보입니다) 기본설정: 아니요 + 使载具指挥官能透过准心指到别的单位来显示其名称 (仅当客户端的名称功能已启用). 预设: 关闭 + 使載具指揮官能透過準心指到別的單位來顯示其名稱 (僅當客戶端的名稱功能已啟用). 預設: 關閉 This module allows you to customize settings and range of Name Tags. @@ -293,6 +333,8 @@ Questo modulo ti consente di personalizzare le impostazioni ed il raggio delle Etichette Nomi このモジュールは名札の表示範囲と設定を変更できます。 이 모듈은 당신이 이름표의 범위를 임의로 수정할 수 있게 해줍니다. + 这个模块允许您设定名称和显示范围等设定. + 這個模塊允許您設定名稱和顯示範圍等設定. Only on Cursor @@ -307,6 +349,8 @@ Solo su Cursore カーソルでのみ 커서만 해당 + 只有准心指到时 + 只有準心指到時 Only on Keypress @@ -321,6 +365,8 @@ Solo quando Premi Tasto キー押下のみ 키를 누를경우만 + 只有按按键时 + 只有按按鍵時 Only on Cursor and Keypress @@ -335,6 +381,8 @@ Solo su Cursore e quando Premi Tasto カーソルとキー押下のみ 커서와 키를 누를경우만 + 只有在准心指到和按按键时 + 只有在準心指到和按按鍵時 Force Show Only on Cursor @@ -349,6 +397,8 @@ Forza Mostra solo su Cursore カーソルでのみに強制する 커서만 강제로 해당 + 强制仅显示在准心指到时 + 強制僅顯示在準心指到時 Force Show Only on Keypress @@ -363,6 +413,8 @@ Forza Mostra solo quando Premi Tasto キー押下のみに強制する 키를 누를경우만 강제로 해당 + 强制仅显示在按按键时 + 強制僅顯示在按按鍵時 Force Show Only on Cursor and Keypress @@ -377,6 +429,8 @@ Forza Mostra solo su Cursore e quando Premi Tasto カーソルとキー押下のみに強制する 커서와 키를 누를경우만 강제로 해당 + 强制显示在准心指到和按按键时 + 強制顯示在準心指到和按按鍵時 Use Nametag settings @@ -391,6 +445,8 @@ Usa impostazioni Etichette Nomi 名札の設定 이름표 설정 사용 + 玩家名称设定 + 玩家名稱設定 Always Show All @@ -405,6 +461,8 @@ Mostra Sempre Tutto 常に表示する 항상 모두 표시 + 永远显示全部 + 永遠顯示全部 Show player names and set their activation. Default: Enabled @@ -419,6 +477,8 @@ Mostra nomi giocatori ed imposta la loro attivazione. Default: Abilitato プレイヤ名の表示と設定を有効化します。標準:有効 플레이어 이름의 표시와 설정을 활성화합니다. 기본설정: 활성화 + 显示玩家的名称并设置其启动方式. 预设: 启用 + 顯示玩家的名稱並設置其啟動方式. 預設: 啟用 Effect of sound waves above the heads of speaking players after holding the PTT key. This option works with TFAR and ACRE2. @@ -433,6 +493,8 @@ Effetto delle onde sonore sopra la testa dei giocatori parlanti quando premono il tasto PTT. Questa opzione funziona con TFAR ed ACRE2 プレイヤーが PTT キーを押している間は、音波形を表示します。このオプションは TFAR と ACRE2 で動作します。 플레이어가 PTT로 말할시 머리위에 음파효과를 적용합니다. 이 옵션은 TFAR과 ACRE2가 있을때만 적용됩니다. + 当玩家使用按键发话时, 其头上的角色名称旁会显示声波的图案. 此功能可搭配TFAR、ACRE2等模组使用. + 當玩家使用按鍵發話時, 其頭上的角色名稱旁會顯示聲波的圖案. 此功能可搭配TFAR、ACRE2等模組使用. Nametags Size @@ -447,6 +509,8 @@ Dimensione Etichette Nome 名札の大きさ 이름표 크기 + 玩家名称标记大小 + 玩家名稱標記大小 Text and Icon Size Scaling @@ -461,6 +525,8 @@ Proporzione Dimensioni Testo ed Icone 文字とアイコンの大きさ 글자와 아이콘 크기 비례 + 文字和图示大小设定 + 文字和圖示大小設定 Fade on screen border @@ -470,6 +536,8 @@ 화면 가장자리에서 사라짐 Estomper sur les bords de l'écran Sfocatura nei bordi dello schermo + 在荧幕边框旁淡出 + 在螢幕邊框旁淡出 diff --git a/addons/nightvision/stringtable.xml b/addons/nightvision/stringtable.xml index 16f59aafdf8..1ff3ee43fbf 100644 --- a/addons/nightvision/stringtable.xml +++ b/addons/nightvision/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Éjjellátó szemüveg (1. Gen.) 夜間暗視装置つきゴーグル (第1世代) 야투경 (1세대) + 夜视镜 (初代) + 夜視鏡 (初代) NV Goggles (Gen2) @@ -28,6 +30,8 @@ Éjjellátó szemüveg (2. Gen.) 夜間暗視装置つきゴーグル (第2世代) 야투경 (2세대) + 夜视镜 (二代) + 夜視鏡 (二代) NV Goggles (Gen3) @@ -42,6 +46,8 @@ Éjjellátó szemüveg (3. Gen.) 夜間暗視装置つきゴーグル (第3世代) 야투경 (3세대) + 夜视镜 (三代) + 夜視鏡 (三代) NV Goggles (Gen3, Brown) @@ -56,6 +62,8 @@ Éjjellátó szemüveg (3. Gen., barna) 夜間暗視装置つきゴーグル (第3世代、ブラウン) 야투경 (3세대, 갈색) + 夜视镜 (三代, 棕色) + 夜視鏡 (三代, 棕色) NV Goggles (Gen3, Green) @@ -70,6 +78,8 @@ Éjjellátó szemüveg (3. Gen., zöld) 夜間暗視装置つきゴーグル (第3世代、グリーン) 야투경 (3세대, 녹색) + 夜视镜 (三代, 绿色) + 夜視鏡 (三代, 綠色) NV Goggles (Gen3, Black) @@ -84,6 +94,8 @@ Éjjellátó szemüveg (3. Gen., fekete) 夜間暗視装置つきゴーグル (第3世代、ブラック) 야투경 (3세대, 검정색) + 夜视镜 (三代, 黑色) + 夜視鏡 (三代, 黑色) NV Goggles (Gen4) @@ -98,6 +110,8 @@ Éjjellátó szemüveg (4. Gen.) 夜間暗視装置つきゴーグル (第4世代) 야투경 (4세대) + 夜视镜 (四代) + 夜視鏡 (四代) NV Goggles (Wide) @@ -112,6 +126,8 @@ Occhiali notturni (Larghi) 夜間暗視装置つきゴーグル (ワイド) 야투경 (넓음) + 夜视镜 (宽版) + 夜視鏡 (寬版) Brightness: %1 @@ -126,6 +142,8 @@ Luminosità: %1 光度:%1 밝기: %1 + 亮度: %1 + 亮度: %1 Increase NVG Brightness @@ -140,6 +158,8 @@ Aumenta la luminosità dell'NVG 夜間暗視装置の光度を上げる 야투경 밝기 높이기 + 增加夜视镜亮度 + 增加夜視鏡亮度 Decrease NVG Brightness @@ -154,6 +174,8 @@ Riduci la luminosità dell'NVG 夜間暗視装置の光度を下げる 야투경 밝기 줄이기 + 减少夜视镜亮度 + 減少夜視鏡亮度 Nightvision @@ -167,6 +189,8 @@ Vision nocturne 夜間暗視装置 야간투시경 + 夜视 + 夜視 Settings for night vision. @@ -180,6 +204,8 @@ Réglage pour la vision nocturne 夜間暗視装置の設定。 야간투시경 설정 + 设定夜视选项. + 設定夜視選項. Disable NVGs in scope @@ -193,6 +219,8 @@ Desactiver les JVN dans les viseurs. スコープを覗くと夜間暗視装置を無効化 조준경 사용시 야투경 비활성화 + 使用瞄准镜时关闭夜视镜 + 使用瞄準鏡時關閉夜視鏡 Blocks the usage of night vision goggles whilst aiming down the sight. @@ -206,6 +234,8 @@ Bloque l'usage des JVN pendant la visée. スコープを使い狙いを付けると、夜間暗視装置を無効化します。 조준시 야투경의 사용을 제한합니다. + 此功能开启后, 当要使用瞄准镜时, 为避免夜视镜镜头碰撞到瞄准镜, 会先拿开夜视镜后再进行瞄准镜瞄准. + 此功能開啟後, 當要使用瞄準鏡時, 為避免夜視鏡鏡頭碰撞到瞄準鏡, 會先拿開夜視鏡後再進行瞄準鏡瞄準. diff --git a/addons/nlaw/stringtable.xml b/addons/nlaw/stringtable.xml index fb738e677f0..8f7533f9e42 100644 --- a/addons/nlaw/stringtable.xml +++ b/addons/nlaw/stringtable.xml @@ -1,20 +1,26 @@ - + NLAW Track Target (Hold) NLAW Traccia Bersaglio (Mantieni) NALW 目標の追跡 (押しっぱ) + 次世代轻型反坦克导弹发射器追踪目标 (按住) + 次世代輕型反坦克導彈發射器追蹤目標 (按住) Direct Attack Attacco Diretto ダイレクト アタック + 直射模式 + 直射模式 Overfly Top Attack Attacco dall'alto オーバーフライ トップ アタック + 攻顶模式 + 攻頂模式 diff --git a/addons/optics/stringtable.xml b/addons/optics/stringtable.xml index 465bfa6aec2..903f44e60a0 100644 --- a/addons/optics/stringtable.xml +++ b/addons/optics/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ RCO (2D) RCO (2D) RCO (2D) + 步枪战斗光学瞄准镜(2D) + 步槍戰鬥光學瞄準鏡(2D) RCO (PIP) @@ -28,6 +30,8 @@ RCO (PIP) RCO (PIP) RCO (PIP) + 步枪战斗光学瞄准镜(拟真版) + 步槍戰鬥光學瞄準鏡(擬真版) ARCO (2D) @@ -42,6 +46,8 @@ ARCO (2D) ARCO (2D) ARCO (2D) + 先进步枪战斗光学瞄准镜(2D) + 先進步槍戰鬥光學瞄準鏡(2D) ARCO (PIP) @@ -56,6 +62,8 @@ ARCO (PIP) ARCO (PIP) ARCO (PIP) + 先进步枪战斗光学瞄准镜(拟真版) + 先進步槍戰鬥光學瞄準鏡(擬真版) MRCO (2D) @@ -70,6 +78,8 @@ MRCO (2D) MRCO (2D) MRCO (2D) + 多距离战斗瞄准镜(2D) + 多距離戰鬥瞄準鏡(2D) MRCO (PIP) @@ -84,6 +94,8 @@ MRCO (PIP) MRCO (PIP) MRCO (PIP) + 多距离战斗瞄准镜(拟真版) + 多距離戰鬥瞄準鏡(擬真版) MOS (2D) @@ -98,6 +110,8 @@ MOS (2D) MOS (2D) MOS (2D) + 精准光学瞄准镜(2D) + 精準光學瞄準鏡(2D) MOS (PIP) @@ -112,6 +126,8 @@ MOS (PIP) MOS (PIP) MOS (PIP) + 精准光学瞄准镜(拟真版) + 精準光學瞄準鏡(擬真版) LRPS (2D) @@ -126,6 +142,8 @@ LRPS (2D) LRPS (2D) LRPS (2D) + 长距离精确瞄准镜(2D) + 長距離精確瞄準鏡(2D) LRPS (PIP) @@ -140,6 +158,8 @@ LRPS (PIP) LRPS (PIP) LRPS (PIP) + 长距离精确瞄准镜(拟真版) + 長距離精確瞄準鏡(擬真版) diff --git a/addons/optionsmenu/stringtable.xml b/addons/optionsmenu/stringtable.xml index 58929567afb..2264d467619 100644 --- a/addons/optionsmenu/stringtable.xml +++ b/addons/optionsmenu/stringtable.xml @@ -14,6 +14,8 @@ Opzioni ACE ACE オプション ACE 옵션 + ACE 设定 + ACE 設定 Fix Animation @@ -28,6 +30,8 @@ Arrumar Animação アニメーションを修正 동작 고정 + 修复动作BUG + 修復動作BUG Reset All @@ -42,6 +46,8 @@ Resetar Tudo すべて初期化 모두 초기화 + 重置为预设值 + 重置為預設值 Colors @@ -56,6 +62,8 @@ Cores 색상 + 颜色 + 顏色 Options @@ -70,6 +78,8 @@ Opzioni オプション 옵션 + 中文化由[MR]Diss制作 + 設定 Values @@ -84,6 +94,8 @@ Valores + 数值 + 數值 Setting: @@ -98,6 +110,8 @@ Opção: 設定: 설정: + 设定: + 設定: Export @@ -112,6 +126,8 @@ Exportar 出力 내보내기 + 输出 + 輸出 Open Export Menu @@ -126,6 +142,8 @@ Abrir menu de exportação 出力メニューを開く 내보내기 메뉴 열기 + 开启输出选单 + 開啟輸出選單 String input. @@ -140,6 +158,8 @@ Input de String 文字列の入力 문자열 입력 + 输入数值 + 輸入數值 Array. Seperate elements by using ,. @@ -154,6 +174,8 @@ Vetor. Separe elementos usando *,*. アライ。,を使うことで区別できます。 배열. 요소를 ,. 로 나눔 + 阵列. 使用','来做每个值的区隔. + 陣列. 使用','來做每個值的區隔. Number @@ -168,6 +190,8 @@ Número 숫자 + 数字 + 數字 Uknown input type @@ -182,6 +206,8 @@ Tipo desonhecido de input 不明な入力です 불분명한 입력입니다 + 未知输入类型 + 未知輸入類型 Save input @@ -196,6 +222,8 @@ Salvar input 入力を保存 입력 저장 + 储存输入 + 儲存輸入 Include Client Settings @@ -210,6 +238,8 @@ Incluir opções do cliente クライアント設定を含む 클라이언트 설정 포함 + 包含客户端设定 + 包含客戶端設定 Exclude Client Settings @@ -224,6 +254,8 @@ Excluir opções do cliente クライアント設定を実行する 클라이언트 설정 제외 + 不包含客户端设定 + 不包含客戶端設定 Settings exported to clipboard @@ -238,6 +270,8 @@ Opções exportadas para o clipboard. クリップボードに設定を出力する 클립보드로 설정 내보내기 + 设定输出至剪贴簿 + 設定輸出至剪貼簿 Option Menu UI Scaling @@ -252,6 +286,8 @@ Proporzioni della interfaccia utente オプション メニューにあるユーザ インタフェイスの大きさ 옵션메뉴 UI 비례도 + 调整设定选单视窗大小 + 調整設定選單視窗大小 Allow Config Export [ACE] @@ -266,6 +302,8 @@ Consenti Esportazione del Config [ACE] 設定の出力を許可 [ACE] 설정 내보내기 허가 [ACE] + 允许配置导出 [ACE] + 允許配置導出 [ACE] Allow @@ -280,6 +318,8 @@ Consenti 許可 허가 + 允许 + 允許 Allow export of all settings to a server config formatted. @@ -294,6 +334,8 @@ Consenti esportazione di tutti i parametri ad config formato per server. 全ての設定をサーバ用設定の形式へと出力できるようにします。 모든 설정을 서버 설정 형식으로 내보내는것을 허락합니다. + 允许导出所有设定成伺服器配置格式的档案. + 允許導出所有設定成伺服器配置格式的檔案. When allowed, you have access to the settings modification and export in SP. Clicking export will place the formated config on your clipboard. @@ -308,6 +350,8 @@ Quando consentito, hai accesso alle modifiche delle impostazioni ed esportazione in SP. Cliccando Esporta piazzera il config formattato sul tuo Blocco Note. 許可の場合、あなたは設定の変更と出力をシングルプレイで可能です。出力をクリックすると、サーバ用設定の形式となっている設定がクリップボードに保存されます。 허락하는 경우 싱글플레이에서 설정의 변경과 내보내기가 가능해집니다. 내보내기를 눌러서 서버 형성의 설정을 클립보드로 보냅니다. + 当本功能开启时, 你将能在单人模式中调整并输出设定. 点击输出按钮后将会让相关设定参数复制到剪贴簿上. + 當本功能開啟時, 你將能在單人模式中調整並輸出設定. 點擊輸出按鈕後將會讓相關設定參數複製到剪貼簿上. Hide @@ -322,6 +366,8 @@ Nascondi 非表示 숨기기 + 隐藏 + 隱藏 Top right, downwards @@ -336,6 +382,8 @@ In Alto a Destra, verso il Basso 右上、下側 오른쪽 위에서 아래로 + 右上角, 向下 + 右上角, 向下 Top right, to the left @@ -350,6 +398,8 @@ In Alto a Destra, verso Sinistra 右上、左詰 오른쪽 위에서 왼쪽으로 + 右上角, 向左 + 右上角, 向左 Top left, downwards @@ -364,6 +414,8 @@ In Alto a Sinistra, verso il Basso 左上、下側 왼쪽 위에서 아래로 + 左上角, 向下 + 左上角, 向下 Top left, to the right @@ -378,6 +430,8 @@ In Alto a Sinistra, verso Destra 右上、右詰 왼쪽 위에서 오른쪽으로 + 左上角, 向右 + 左上角, 向右 Top @@ -392,6 +446,8 @@ Alto 上側 상단 + 上方 + 上方 Bottom @@ -406,6 +462,8 @@ Basso 下側 하단 + 下方 + 下方 Debug To Clipboard @@ -420,6 +478,8 @@ Debug su Blocco Note クリップボードへデバッグ 디버그를 클립보드로 + 复制除错讯息至剪贴簿 + 複製除錯訊息至剪貼簿 Sends debug information to RPT and clipboard. @@ -434,6 +494,8 @@ Invia informazioni di debug all'RPT e al Blocco Note デバッグ情報の RPT とクリップボードに送ります。 디버그 정보를 보고하기 및 클립보드에 복사하기 위해 보냅니다. + 复制除错讯息至剪贴簿与RPT报告档中. + 複製除錯訊息至剪貼簿與RPT報告檔中. Headbug Fix @@ -448,6 +510,8 @@ Sistema Bug della Testa ヘッドバグ修正 헤드버그 수정 + 修复动作BUG + 修復動作BUG Resets your animation state. @@ -462,6 +526,8 @@ Resetta il tuo stato animazione 現在のアニメーションの状況を初期化します。 자신의 동작 상태 초기화 + 当ACE发生动作BUG时, 点此修复. + 當ACE發生動作BUG時, 點此修復. ACE News @@ -476,6 +542,8 @@ Novità ACE ACE からのお知らせ ACE 새소식 + ACE新闻 + ACE新聞 Show News on Main Menu @@ -490,6 +558,8 @@ Mostra News nel Menù Princinpale メイン メニュにお知らせを表示します 메인메뉴에 새소식을 표시합니다 + 显示新闻消息于主选单 + 顯示新聞消息於主選單 All Categories @@ -503,6 +573,8 @@ Toutes les catégories 全カテゴリ 모든 카테고리 + 全局设定 + 全局設定 Logistics @@ -516,6 +588,8 @@ Logistique ロジスティクス 보급 + 后勤设定 + 後勤設定 diff --git a/addons/overheating/stringtable.xml b/addons/overheating/stringtable.xml index faa04628935..cdbe20fb4fa 100644 --- a/addons/overheating/stringtable.xml +++ b/addons/overheating/stringtable.xml @@ -14,6 +14,8 @@ Visualizza testo in caso di inceppamento 弾詰りを文章で表示 탄걸림의 경우 화면에 표시 + 在卡弹时显示提示讯息 + 在卡彈時顯示提示訊息 Display a notification whenever your weapon gets jammed @@ -28,6 +30,8 @@ Visualizza una notifica in caso la tua arma si inceppasse 持っている武器が弾詰りをすると、通知を表示します 총알이 무기에 걸릴경우 화면에 알림을 띄웁니다 + 当武器卡弹时显示提示讯息 + 當武器卡彈時顯示提示訊息 Overheating Particle Effects @@ -41,6 +45,8 @@ Эффект частиц при перегреве 過熱の視覚効果 과열 입자 효과 + 枪管过热特效 + 槍管過熱特效 Show particle effects when weapon overheats @@ -54,6 +60,8 @@ Zobrazit částicové efekty když se zbraň přehřije 武器を過熱すると視覚表現を表示します 무기가 과열되면 입자 효과를 보여줍니다 + 显示枪管过热特效 + 顯示槍管過熱特效 Overheating Particle Effects for everyone @@ -67,6 +75,8 @@ Эффект частиц при перегреве для всех 過熱の視覚表現を全体に与えます 모두에게 과열 입자 효과 적용 + 显示其他玩家的枪管过热特效 + 顯示其他玩家的槍管過熱特效 Show particle effects when other players weapon overheats @@ -80,6 +90,8 @@ Zobrazit částicové efekty když se zbraň přehřije jinému hráči 他のプレイヤの過熱の視覚表現を表示します 모든 인원이 무기가 과열될시 입자 효과가 나타납니다. + 当其他玩家的武器过热时显示特效 + 當其他玩家的武器過熱時顯示特效 Overheating Dispersion @@ -93,6 +105,8 @@ Důsledky přehřátí zbraně 過熱による精度の低下 과열 명중률 저하 + 过热散射 + 過熱散射 Overheated weapons will be less accurate and have decreased muzzle velocity. Applys for all players. @@ -106,6 +120,8 @@ Přehřátá zbraň bude méně přesná a bude mít menší úsťovou rychlost. Platí pro všechny hráče. 過熱は精度を減少させたり、初速を低下させます、これは全プレイヤに適用します。 무기 과열시 무기의 명중률이 저하되고 총구속도가 감소합니다. 이는 모든 플레이어에게 적용됩니다. + 过热的武器将会有打不准和减少射击初速的情况. 适用于所有玩家 + 過熱的武器將會有打不準和減少射擊初速的情況. 適用於所有玩家 Unjam weapon on reload @@ -119,6 +135,8 @@ Исправлять клин при перезарядке 再装填による弾詰りの解消 재장전시 탄걸림 해결 + 重装弹匣以解决卡弹 + 重裝彈匣以解決卡彈 Reloading clears a weapon jam. @@ -132,6 +150,8 @@ Перезарядка устраняет заклинивание оружия. 再装填により、弾詰りを除去します。 탄걸림이 재장전시 해결됩니다. + 利用重装弹匣来解决卡弹 + 利用重裝彈匣來解決卡彈 Chance of unjam failing @@ -145,6 +165,8 @@ Шанс неудачи при устранении клина 弾詰りの除去を失敗する可能性 탄걸림 해결 시도 실패확률 + 解决卡弹失败机率 + 解決卡彈失敗機率 Probability that an unjam action might fail, requiring to be repeated. @@ -158,6 +180,8 @@ Pravděpodobnost, že uvolnění zbraně selže, je proto nutné tuto akci opakovat. 弾詰りの除去を失敗する可能性が生まれ、もう一度動作を行う必要があります。 탄걸림 해결 시도시 실패할 확률이 있습니다. 이는 다시 탄걸림 해결을 시도해야함을 의미합니다. + 清除卡弹时有可能会失败, 需要反覆进行清枪 + 清除卡彈時有可能會失敗, 需要反覆進行清槍 Spare barrel @@ -172,6 +196,8 @@ Canna di ricambio 予備銃身 예비 총열 + 备用枪管 + 備用槍管 Use to swap barrel. @@ -186,6 +212,8 @@ Usata per cambiare la canna. 予備銃身に交換する。 총열을 바꿀때 사용합니다. + 用来更换枪管 + 用來更換槍管 Weapon jammed! @@ -200,6 +228,8 @@ Arma inceppata! 武器が詰まった! 탄걸림! + 武器卡弹! + 武器卡彈! Clear jam @@ -214,6 +244,8 @@ Ripulisci l'arma 弾詰りを除去する 탄걸림 해결 + 清除卡弹 + 清除卡彈 Jam cleared @@ -228,6 +260,8 @@ Arma pronta al fuoco 弾詰りが除去された 탄걸림 해결됨 + 卡弹已清除 + 卡彈已清除 Jam failed to clear @@ -241,6 +275,8 @@ Не удалось исправить клин 弾詰りの除去に失敗した 탄걸림 해결 실패 + 卡弹未能清除 + 卡彈未能清除 Swap barrel @@ -255,6 +291,8 @@ Sostiuisci la canna 銃身を交換 총열 교체 + 换枪管 + 換槍管 Swapping barrel... @@ -269,6 +307,8 @@ Sostituendo la canna... 銃身を交換中・・・ 총열 교체중... + 换枪管中... + 換槍管中... Swapped barrel @@ -283,6 +323,8 @@ Canna sostituita 銃身を交換した 교체된 총열 + 完成换枪管 + 完成換槍管 Check weapon temperature @@ -297,6 +339,8 @@ Проверить температуру оружия 武器の温度を測る 무기 온도 확인 + 检查枪管温度 + 檢查槍管溫度 Check weapon temperature @@ -311,6 +355,8 @@ Controlla la temperatura della canna 武器の温度を測る 무기 온도 확인 + 检查枪管温度 + 檢查槍管溫度 Checking temperature... @@ -325,6 +371,8 @@ Проверка температуры... 温度を測っている・・・ 무기 온도 확인중... + 检查枪管温度中... + 檢查槍管溫度中... Check spare barrels temperatures @@ -337,6 +385,8 @@ Temperatur der Wechselläufe prüfen 총열 온도 확인 Controlla la temperatura della canna di ricambio + 检查备用枪管温度 + 檢查備用槍管溫度 Checking spare barrels temperatures... @@ -349,6 +399,8 @@ Prüfe Temperatur der Wechselläufe ... 총열 온도 확인중... Controllando la temperatura della canna di ricambio... + 检查枪管温度中... + 檢查槍管溫度中... Temperature @@ -363,6 +415,8 @@ Температура 温度 온도 + 温度 + 溫度 Cool Spare Barrel/s @@ -375,6 +429,8 @@ Kalte Wechselläufe 차가운 예비 총열 Canna/e di Ricambio Fredda + 备用枪管温度正常 + 備用槍管溫度正常 Warm Spare Barrel/s @@ -387,6 +443,8 @@ Warme Wechselläufe 따뜻한 예비 총열 Canna/e di Ricambio Calda + 备用枪管温度偏温 + 備用槍管溫度偏溫 Hot Spare Barrel/s @@ -399,6 +457,8 @@ Heiße Wechselläufe 뜨거운 예비 총열 Canna/e di Ricambio Molto Calda + 备用枪管温度偏热 + 備用槍管溫度偏熱 Very Hot Spare Barrel/s @@ -411,6 +471,8 @@ Sehr heiße Wechselläufe 매우 뜨거운 예비 총열 Canna/e di Ricambio Estremamente Calda + 备用枪管温度过热 + 備用槍管溫度過熱 Extremely Hot Spare Barrel/s @@ -423,6 +485,8 @@ Extrem heiße Wechselläufe 엄청나게 뜨거운 예비 총열 Canna/e di Ricambio Rovente + 备用枪管温度超级热 + 備用槍管溫度超級熱 Overheating Enabled @@ -436,6 +500,8 @@ Przegrzewanie włączone 과열 활성화 Surriscaldamento Abilitato + 启用过热 + 啟用過熱 Master enable for the overheating/jamming module @@ -447,6 +513,8 @@ Hauptschalter, um die Überhitzung-/Ladehemmung-Module zu aktivieren 과열/탄걸림 최종 활성화 Abilitazione master per il modulo di surriscaldamento / inceppamento + 启用枪管过热/干扰模块 + 啟用槍管過熱/干擾模塊 diff --git a/addons/overpressure/stringtable.xml b/addons/overpressure/stringtable.xml index a982ec488c4..aeba1d3a51d 100644 --- a/addons/overpressure/stringtable.xml +++ b/addons/overpressure/stringtable.xml @@ -8,6 +8,8 @@ Mnożnik dystansu nadciśnienia Coéfficient de distance pour la surpression Coefficente Distanza Sovrapressione + 高压影响距离系数 + 高壓影響距離係數 Scales the overpressure effect [Default: 1] @@ -16,6 +18,8 @@ Skaluje efekt nadciśnienia [Domyślne: 1] Échelonne les effets de la surpression [Par défaut : 1] Scala l'effetto di sovrapressione [Predefinito: 1] + 高压影响的范围 [预设: 1] + 高壓影響的範圍 [預設: 1] diff --git a/addons/parachute/stringtable.xml b/addons/parachute/stringtable.xml index c8482eeda76..c6eca9237de 100644 --- a/addons/parachute/stringtable.xml +++ b/addons/parachute/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Altímetro 高度計 고도계 + 高度计 + 高度計 Altimeter Watch @@ -28,6 +30,8 @@ Relógio Altímetro 時計型高度計 고도계 시계 + 高度计手表 + 高度計手錶 Used to show height, descent rate and the time. @@ -42,6 +46,8 @@ Usado para mostrar altura, taxa de descida e o tempo. 高度や降下率、時間を見るのに使います。 높이와, 하강속도 그리고 시간을 보여줍니다. + 用于显示高度, 下降率和时间. + 用於顯示高度, 下降率和時間. Non-Steerable Parachute @@ -56,6 +62,8 @@ Para-querdas não controlável 非操作型パラシュート 비-조종 낙하산 + 非可操控降落伞 + 非可操控降落傘 Cut Parachute @@ -70,6 +78,8 @@ Taglia Paracadute パラシュートを切断 낙하산 자르기 + 剪断降落伞 + 剪斷降落傘 Reserve Parachute @@ -84,6 +94,8 @@ Paracadute di Riserva 予備パラシュート 예비 낙하산 + 备用降落伞 + 備用降落傘 diff --git a/addons/quickmount/stringtable.xml b/addons/quickmount/stringtable.xml index a492ebc3b91..a42e577bc0d 100644 --- a/addons/quickmount/stringtable.xml +++ b/addons/quickmount/stringtable.xml @@ -5,6 +5,8 @@ Quick Mount Entrata Rapida クイック マウント + 快速搭乘 + 快速搭乘 Vehicle quick mount @@ -12,51 +14,71 @@ Pojazd szybkie mocowanie Entrata rapida veicolo 車両クイック マウント + 快速搭乘载具 + 快速搭乘載具 Quickly enter the vehicle you are directly looking at. Entra velocemente nel veicolo che stai guardando. 直接見ている車両へ迅速に搭乗します。 + 快速进入你正在看的载具之中. + 快速進入你正在看的載具之中. Vehicle Full Veicolo Pieno 車両は満員 + 载具已满 + 載具已滿 Distance Distanza 距離 + 距离 + 距離 Maximum distance to check for vehicles. Distanza massima per controllare i veicoli. 車両を確認できる最大距離 + 最大可检查载具的距离. + 最大可檢查載具的距離. Vehicle Locked Veicolo Bloccato. 車両は施錠されている + 载具已上锁 + 載具已上鎖 Maximum Speed (km/h) Velocità Massima (km/h) 最高速度 (km/h) + 最高速度 (公里/小时) + 最高速度 (公里/小時) Maximum vehicle speed (km/h) allowed for player entry Velocità massima del veicolo (km/h) consentita per far salire un giocatore プレイヤーが搭乗できる限界速度 (km/h) + 设置玩家能在最高多少的速度之下进入载具. + 設置玩家能在最高多少的速度之下進入載具. Prioritize Seat Priorità Sedile 優先席 + 优先座位 + 優先座位 Seat priority on entry Priorità del sedile in entrata 搭乗の際の優先順位 + 优先想进入哪个座位. + 優先想進入哪個座位. diff --git a/addons/rangecard/stringtable.xml b/addons/rangecard/stringtable.xml index 33b0994567f..8e12a259e78 100644 --- a/addons/rangecard/stringtable.xml +++ b/addons/rangecard/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Tavola Balistica 射表 사거리표 + 弹道射表 + 彈道射表 50 METER increments -- MRAD/MRAD (reticle/turrets) @@ -28,6 +30,8 @@ Incrementi per 50 METRI - MRAD/MRAD (reticolo/torrette) 50 メートル増やす -- MRAD/MRAD (照準線/砲塔) 50 미터 늘리기 -- MRAD/MRAD (조준선/포탑) + 50公尺增量 -- 毫弧度/毫弧度 (瞄镜分划线/调整纽) + 50公尺增量 -- 毫弧度/毫弧度 (瞄鏡分劃線/調整紐) Open Range Card @@ -42,6 +46,8 @@ Apri Tavola Balistica 射表を開く 사거리표 열기 + 开启弹道射表 + 開啟彈道射表 Open Range Card Copy @@ -56,6 +62,8 @@ Apri Copia Tavola Balistica 複製された射表を開く 복제 사거리표 열기 + 开启弹道射表副本 + 開啟彈道射表副本 Open Range Card @@ -70,6 +78,8 @@ Apri Tavola Balistica 射表を開く 사거리표 열기 + 开启弹道射表 + 開啟彈道射表 Open Range Card Copy @@ -84,6 +94,8 @@ Apri Copia Tavola Balistica 複製された射表を開く 복제 사거리표 열기 + 开启弹道射表副本 + 開啟彈道射表副本 Copy Range Card @@ -98,6 +110,8 @@ Copia Tavola Balistica 射表を複製する 사거리표 복제 + 复制弹道射表 + 複製彈道射表 diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 7f685174e27..b8ee9943ad3 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ XM312A XM312 XM312 + XM312重機槍 + XM312重机枪 XM312A @@ -28,6 +30,8 @@ XM312A XM312A XM312A + XM312A重機槍 + XM312A重机枪 XM312 (High) @@ -42,6 +46,8 @@ XM312 (Alta) XM312 (高) XM312 (높음) + XM312重機槍 (高射腳架) + XM312重机枪 (高射脚架) XM307 @@ -56,6 +62,8 @@ XM307 XM307 XM307 + XM307榴彈機槍 + XM307榴弹机枪 XM307A @@ -70,6 +78,8 @@ XM307A XM307A XM307A + XM307A榴彈機槍 + XM307A榴弹机枪 XM307 (High) @@ -84,6 +94,8 @@ XM307 (Alta) XM307 (高) XM307 (높음) + XM307榴彈機槍 (高射腳架) + XM307榴弹机枪 (高射脚架) Mini-Spike Launcher (AT) @@ -98,6 +110,8 @@ Lanciatore Mini-Spike (AC) ミニスパイク ランチャー (対戦) Mini-Spike Launcher (대전차) + "迷你長釘"導彈發射器 (反坦克) + "迷你长钉"导弹发射器 (反坦克) Mini-Spike Launcher (AA) @@ -112,6 +126,8 @@ Lanciatore Mini-Spike (AA) ミニスパイク ランチャー (対空) Mini-Spike Launcher (대공) + "迷你長釘"導彈發射器 (防空) + "迷你长钉"导弹发射器 (防空) YABHON-R3 @@ -126,6 +142,8 @@ YABHON-R3 YABHON-R3 YABHON-R3 + "亞伯罕-R3型"空中無人載具 + "亚伯罕-R3型"空中无人载具 YABHON-R3 (CAS) @@ -140,6 +158,8 @@ YABHON-R3 (CAS) YABHON-R3 (対地) YABHON-R3 (근접지원) + "亞伯罕-R3型"空中無人載具 (近空支援) + "亚伯罕-R3型"空中无人载具 (近空支援) M-ATV @@ -154,6 +174,8 @@ M-ATV M-ATV M-ATV + 防地雷反伏擊全地形車 + 防地雷反伏击全地形车 M-ATV (HMG) @@ -168,6 +190,8 @@ M-ATV (HMG) M-ATV (HMG) M-ATV (HMG) + 防地雷反伏擊全地形車 (重機槍) + 防地雷反伏击全地形车 (重机枪) M-ATV (GMG) @@ -182,6 +206,8 @@ M-ATV (GMG) M-ATV (GMG) M-ATV (GMG) + 防地雷反伏擊全地形車 (榴彈機槍) + 防地雷反伏击全地形车 (榴弹机枪) Merkava Mk IV M @@ -196,6 +222,8 @@ Merkava Mk IV M メルカバ Mk IV M Merkava Mk IV M + "梅卡瓦4代"主戰坦克 + "梅卡瓦4代"主战坦克 Merkava Mk IV LIC @@ -210,6 +238,8 @@ Merkava Mk IV LIC メルカバ Mk IV LIC Merkava Mk IV LIC + "梅卡瓦4代"主戰坦克 城市版 + "梅卡瓦4代"主战坦克 城市版 Sholef @@ -224,6 +254,8 @@ Sholef ショルフ Sholef + "神槍"自走炮 + "神枪"自走炮 Seara @@ -238,6 +270,8 @@ Seara シアラ Seara + "希拉"多管火箭車 + "希拉"多管火箭车 Namer @@ -252,6 +286,8 @@ Namer ネイマー Namer + "花豹"裝甲運兵車 + "花豹"装甲运兵车 Bardelas @@ -266,6 +302,8 @@ Bardelas バーラデラス Bardelas + "布萊德斯"防空車 + "布莱德斯"防空车 Badger IFV @@ -280,6 +318,8 @@ Badger IFV バッジ IFV Badger IFV + "蜜獾"步兵戰車 + "蜜獾"步兵战车 Nemmera @@ -294,6 +334,8 @@ Nemmera ネマラ Nemmera + "雌豹"戰鬥工程車 + "雌豹"战斗工程车 HEMTT Transport @@ -308,6 +350,8 @@ HEMTT da trasporto HEMTT 輸送型 HEMTT 수송 + 重型增程機動戰術卡車 (運輸) + 重型增程机动战术卡车 (运输) HEMTT Transport (covered) @@ -322,6 +366,8 @@ HEMTT da trasporto (coperto) HEMTT 輸送型 (幌) HEMTT 수송 (덮개) + 重型增程機動戰術卡車 (運輸, 棚布) + 重型增程机动战术卡车 (运输, 棚布) HEMTT @@ -336,6 +382,8 @@ HEMTT HEMTT HEMTT + 重型增程機動戰術卡車 + 重型增程机动战术卡车 HEMTT Container @@ -350,6 +398,8 @@ HEMTT portacontainer HEMTT コンテナ型 HEMTT 컨테이너 + 重型增程機動戰術卡車 (貨櫃) + 重型增程机动战术卡车 (货柜) HEMTT Medical @@ -364,6 +414,8 @@ HEMTT Medico HEMTT 救急車 HEMTT 의료 + 重型增程機動戰術卡車 (醫療) + 重型增程机动战术卡车 (医疗) HEMTT Ammo @@ -378,6 +430,8 @@ HEMTT di rifornimento munizioni HEMTT 弾薬給弾型 HEMTT 탄약 + 重型增程機動戰術卡車 (彈藥) + 重型增程机动战术卡车 (弹药) HEMTT Fuel @@ -392,6 +446,8 @@ HEMTT di rifornimento carburante HEMTT 燃料給油車 HEMTT 연료 + 重型增程機動戰術卡車 (燃油) + 重型增程机动战术卡车 (燃油) HEMTT Repair @@ -406,6 +462,8 @@ HEMTT Riparatore HEMTT 修理型 HEMTT 수리 + 重型增程機動戰術卡車 (維修) + 重型增程机动战术卡车 (维修) Fennek @@ -420,6 +478,8 @@ Fennek フェネック Fennek + "非洲小狐"防地雷反伏擊車 + "非洲小狐"防地雷反伏击车 Fennek (HMG) @@ -434,6 +494,8 @@ Fennek (HMG) フェネック (HMG) Fennek (HMG) + "非洲小狐"防地雷反伏擊車 (重機槍) + "非洲小狐"防地雷反伏击车 (重机枪) Fennek (GMG) @@ -448,6 +510,8 @@ Fennek (GMG) フェネック (GMG) Fennek (GMG) + "非洲小狐"防地雷反伏擊車 (榴彈機槍) + "非洲小狐"防地雷反伏击车 (榴弹机枪) Leopard 2SG @@ -462,6 +526,8 @@ Leopard 2SG レオパルド 2SG Leopard 2SG + "豹2型新加坡版"主戰坦克 + "豹2型新加坡版"主战坦克 FV510 Warrior @@ -476,6 +542,8 @@ FV510 Warrior FV510 ウォーリアー FV510 Warrior + FV510"戰士"步兵戰車 + FV510"战士"步兵战车 Pandur II @@ -490,6 +558,8 @@ Pandur II パンデュール II Pandur II + "潘德2型"裝甲運兵車 + "潘德2型"装甲运兵车 KamAZ Transport @@ -504,6 +574,8 @@ KamAZ da trasporto KamAZ 輸送型 KamAZ 수송 + "卡瑪斯"卡車 (運輸) + "卡玛斯"卡车 (运输) KamAZ Transport (covered) @@ -518,6 +590,8 @@ KamAZ da trasporto (coperto) KamAZ 輸送型 (幌) KamAZ 수송 (덮개) + "卡瑪斯"卡車 (運輸, 棚布) + "卡玛斯"卡车 (运输, 棚布) KamAZ Ammo @@ -532,6 +606,8 @@ KamAZ di rifornimento munizioni KamAZ 弾薬給弾型 KamAZ 탄약 + "卡瑪斯"卡車 (彈藥) + "卡玛斯"卡车 (弹药) KamAZ Fuel @@ -546,6 +622,8 @@ KamAZ di rifornimento carburante KamzAZ 燃料給油車 KamAZ 연료 + "卡瑪斯"卡車 (燃油) + "卡玛斯"卡车 (燃油) KamAZ Repair @@ -560,6 +638,8 @@ KamAZ riparatore KamzAZ 修理型 KamAZ 수리 + "卡瑪斯"卡車 (維修) + "卡玛斯"卡车 (维修) KamAZ Medical @@ -574,6 +654,8 @@ KamAZ Medico KamAZ 救急車 KamAZ 의료 + "卡瑪斯"卡車 (醫療) + "卡玛斯"卡车 (医疗) Punisher @@ -588,6 +670,8 @@ Punisher パニッシャー Punisher + "懲罰者"防地雷反伏擊車 + "惩罚者"防地雷反伏击车 Punisher (HMG) @@ -602,6 +686,8 @@ Punisher (HMG) パニッシャー (HMG) Punisher (HMG) + "懲罰者"防地雷反伏擊車 (重機槍) + "惩罚者"防地雷反伏击车 (重机枪) Punisher (GMG) @@ -616,6 +702,8 @@ Punisher (GMG) パニッシャー (GMG) Punisher (GMG) + "懲罰者"防地雷反伏擊車 (榴彈機槍) + "惩罚者"防地雷反伏击车 (榴弹机枪) T100 Black Eagle @@ -630,6 +718,8 @@ T100 Black Eagle T100 ブラック イーグル T100 Black Eagle + T100"黑鷹"主戰坦克 + T100"黑鹰"主战坦克 2S9 Sochor @@ -644,6 +734,8 @@ 2S9 Sochor 2S9 ソーカー 2S9 Sochor + 2S9"薩克爾"自走砲 + 2S9"萨克尔"自走炮 BM-2T Stalker @@ -658,6 +750,8 @@ BM-2T Stalker BM-2T ストーカー BM-2T Stalker + BM-2T"潛行者"步兵戰車 + BM-2T"潜行者"步兵战车 ZSU-35 Tigris @@ -672,6 +766,8 @@ ZSU-35 Tigris ZSU-35 ZSU-35 Tigris + ZSU-35"虎式"防空車 + ZSU-35"虎式"防空车 Otokar ARMA @@ -686,6 +782,8 @@ Otokar ARMA ティグリスOtokar アルマ Otokar ARMA + "奧托卡-阿爾默"裝甲運兵車 + "奥托卡-阿尔默"装甲运兵车 Typhoon Transport @@ -700,6 +798,8 @@ Typhoon da trasporto Typhoon 輸送型 Typhoon 수송 + "颱風"卡車 (運輸) + "台风"卡车 (运输) Typhoon Transport (covered) @@ -714,6 +814,8 @@ Typhoon da trasporto (coperto) Typhoon 輸送型 (幌) Typhoon 수송 (덮개) + "颱風"卡車 (運輸, 棚布) + "台风"卡车 (运输, 棚布) Typhoon Device @@ -728,6 +830,8 @@ Typhoon per dispositivo Typhoon デバイス型 Typhoon 장치 + "颱風"卡車 (精密設備) + "台风"卡车 (精密设备) Typhoon Ammo @@ -742,6 +846,8 @@ Typhoon di rifornimento munizioni Typhoon 弾薬給弾型 Typhoon 탄약 + "颱風"卡車 (彈藥) + "台风"卡车 (弹药) Typhoon Fuel @@ -756,6 +862,8 @@ Typhoon di rifornimento carburante Typhoon 燃料給油車 Typhoon 연료 + "颱風"卡車 (燃油) + "台风"卡车 (燃油) Typhoon Repair @@ -770,6 +878,8 @@ Typhoon riparatore Typhoon 修理型 Typhoon 수리 + "颱風"卡車 (維修) + "台风"卡车 (维修) Typhoon Medical @@ -784,6 +894,8 @@ Typhoon medico Typhoon 救急車 Typhoon 의료 + "颱風"卡車 (醫療) + "台风"卡车 (医疗) RAH-66 Comanche @@ -798,6 +910,8 @@ RAH-66 Comanche RAH-66 コマンチ RAH-66 Comanche + RAH-66"卡曼契"攻擊直升機 + RAH-66"卡曼契"攻击直升机 MH-6 Little Bird @@ -812,6 +926,8 @@ MH-6 Little Bird MH-6 リトル バード MH-6 Little Bird + MH-6"小鳥"運輸直升機 + MH-6"小鸟"运输直升机 AH-6 Little Bird @@ -826,6 +942,8 @@ AH-6 Little Bird AH-6 リトル バード AH-6 Little Bird + AH-6"小鳥"武裝直升機 + AH-6"小鸟"武装直升机 CH-47I Chinook @@ -840,6 +958,8 @@ CH-47I Chinook CH-47I チヌーク CH-47I Chinook + CH-47I"契努克"運輸直升機 + CH-47I"契努克"运输直升机 CH-47I Chinook (unarmed) @@ -854,6 +974,8 @@ CH-47I Chinook (desarmado) CH-47I チヌーク (非武装) CH-47I Chinook (비무장) + CH-47I"契努克"運輸直升機 (無武裝) + CH-47I"契努克"运输直升机 (无武装) A-10D Thunderbolt II @@ -868,6 +990,8 @@ A-10D Thunderbolt II A-10D サンダーボルト II A-10D Thunderbolt II + A-10D"雷霆二式"攻擊機 + A-10D"雷霆二式"攻击机 AW159 Wildcat @@ -882,6 +1006,8 @@ AW159 Wildcat AW159 ワイルドキャット AW159 Wildcat + AW159"野貓"直升機 + AW159"野猫"直升机 AW159 Wildcat (unarmed) @@ -896,6 +1022,8 @@ AW159 Wildcat (disarmato) AW159 ワイルドキャット (非武装) AW159 Wildcat (비무장) + AW159"野貓"直升機 (無武裝) + AW159"野猫"直升机 (无武装) AW101 Merlin @@ -910,6 +1038,8 @@ AW101 Merlin AW101 マーリン AW101 Merlin + AW101"灰背隼"運輸直升機 + AW101"灰背隼"运输直升机 L-159 ALCA @@ -924,6 +1054,8 @@ L-159 ALCA L-159 アルカ L-159 ALCA + L-159先進輕型戰鬥機 + L-159先进轻型战斗机 L-159 ALCA (CAS) @@ -938,6 +1070,8 @@ L-159 ALCA (CAS) L-159 アルカ (対地) L-159 ALCA (근접지원) + L-159先進輕型戰鬥機 (近空支援) + L-159先进轻型战斗机 (近空支援) L-159 ALCA (AA) @@ -952,6 +1086,8 @@ L-159 ALCA (AA) L-159 アルカ (対空) L-159 ALCA (대공) + L-159先進輕型戰鬥機 (空對空) + L-159先进轻型战斗机 (空对空) Ka-60 Kasatka @@ -966,6 +1102,8 @@ Ka-60 Kasatka Ka-60 カサートカ Ka-60 Kasatka + Ka-60"逆戟鯨"直升機 + Ka-60"逆戟鲸"直升机 Ka-60 Kasatka (Black & White) @@ -979,6 +1117,8 @@ Ka-60 Kasatka (blanco y negro) Ka-60 カサートカ (黒&白) Ka-60 Kasatka (검정 및 하양) + Ka-60"逆戟鯨"直升機 (黑&白) + Ka-60"逆戟鲸"直升机 (黑&白) Ka-60 Kasatka (unarmed) @@ -993,6 +1133,8 @@ Ka-60 Kasatka (disarmato) Ka-60 カサートカ (非武装) Ka-60 Kasatka (비무장) + Ka-60"逆戟鯨"直升機 (無武裝) + Ka-60"逆戟鲸"直升机 (无武装) Yak-130 @@ -1007,6 +1149,8 @@ Yak-130 Yak-130 ミトン Yak-130 + Yak-130"手套"攻擊機 + Yak-130"手套"攻击机 MD 500 @@ -1021,6 +1165,8 @@ MD 500 MD 500 MD 500 + MD 500"防衛者"直升機 + MD 500"防卫者"直升机 M4A1 SLAM @@ -1035,6 +1181,8 @@ M4A1 SLAM M4A1 SLAM M4A1 SLAM + M4A1指向性反裝甲地雷 + M4A1指向性反装甲地雷 M18A1 Claymore @@ -1049,6 +1197,8 @@ M18A1 Claymore Mina antiuomo M18A1 クレイモア M18A1 클레이모어 + M18A1"闊刀"地雷 + M18A1"阔刀"地雷 M183 Demolition Charge Assembly @@ -1063,6 +1213,8 @@ M183 Demolition Charge Assembly M183 梱包爆薬 M183 폭파 장약 조립 + M183炸藥包 + M183炸药包 M112 Demolition Block @@ -1077,6 +1229,8 @@ M112 Demolition Block M113 爆薬ブロック M112 폭파 블럭 + M112塑性炸藥 + M112塑性炸药 M67 Fragmentation Grenade @@ -1091,6 +1245,8 @@ M67 Granata a frammentazione M67 破片手榴弾 M67 세열 수류탄 + M67破片手榴彈 + M67破片手榴弹 M83 Smoke Grenade (White) @@ -1105,6 +1261,8 @@ M83 Granata fumogena (Bianco) M18 煙幕手榴弾 (白) M83 연막탄 (하양) + M83煙霧彈 (白色) + M83烟雾弹 (白色) M18 Smoke Grenade (Blue) @@ -1119,6 +1277,8 @@ M18 Granata fumogena (Blu) M18 煙幕手榴弾 (青) M18 연막탄 (파랑) + M18煙霧彈 (藍色) + M18烟雾弹 (蓝色) M18 Smoke Grenade (Green) @@ -1133,6 +1293,8 @@ M18 Granata fumogena (Verde) M18 煙幕手榴弾 (緑) M18 연막탄 (초록) + M18煙霧彈 (綠色) + M18烟雾弹 (绿色) M18 Smoke Grenade (Orange) @@ -1147,6 +1309,8 @@ M18 Granata fumogena (Arancione) M18 煙幕手榴弾 (橙) M18 연막탄 (주황) + M18煙霧彈 (橘色) + M18烟雾弹 (橘色) M18 Smoke Grenade (Purple) @@ -1161,6 +1325,8 @@ M18 Granata fumogena (Viola) M18 煙幕手榴弾 (紫) M18 연막탄 (보라) + M18煙霧彈 (紫色) + M18烟雾弹 (紫色) M18 Smoke Grenade (Red) @@ -1175,6 +1341,8 @@ M18 Granata fumogena (Rosso) M18 煙幕手榴弾 (赤) M18 연막탄 (빨강) + M18煙霧彈 (紅色) + M18烟雾弹 (红色) M18 Smoke Grenade (Yellow) @@ -1189,6 +1357,8 @@ M18 Granata fumogena (Giallo) M18 煙幕手榴弾 (黄) M18 연막탄 (노랑) + M18煙霧彈 (黃色) + M18烟雾弹 (黄色) M15 Anti-Tank Mine @@ -1203,6 +1373,8 @@ M15 Mine anticarro M15 対戦車地雷 M15 대전차지뢰 + M15反坦克地雷 + M15反坦克地雷 VS-50 Anti-Personnel Mine @@ -1217,6 +1389,8 @@ VS-50 Mine antiuomo VS-50 対人地雷 VS-50 대인지뢰 + VS-50反人員地雷 + VS-50反人员地雷 M26 Anti-Personnel Bounding Mine @@ -1231,6 +1405,8 @@ M26 Mine saltanti antiuomo M26 対人跳躍地雷 M26 대인도약지뢰 + M26反人員彈跳雷 + M26反人员弹跳雷 PMR-3 Anti-Personnel Tripwire Mine @@ -1245,6 +1421,8 @@ PMR-3 Mine antiuomo PMR-3 仕掛け型対人地雷 PMR-3 대인인계철선지뢰 + PMR-3反人員絆線雷 + PMR-3反人员绊线雷 P99 @@ -1259,6 +1437,8 @@ P99 P99 P99 + P99手槍 + P99手枪 MP-443 Grach @@ -1273,6 +1453,8 @@ MP-443 Grach MP-433 グラッチ MP-443 Grach + MP-443"烏鴉"手槍 + MP-443"乌鸦"手枪 Custom Covert II @@ -1287,6 +1469,8 @@ ACP-C2 カスタム コンバート II Custom Covert II + 特裝隱蔽Ⅱ型手槍 + 特装隐蔽Ⅱ型手枪 FNX-45 Tactical @@ -1301,6 +1485,8 @@ FNX-45 Tactical FNX-45 タクティカル FNX-45 Tactical + FNX-45戰術型手槍 + FNX-45战术型手枪 Chiappa Rhino 60DS @@ -1315,6 +1501,8 @@ Chiappa Rhino 6DS チアッパ ライノ 60DS Chiappa Rhino 60DS + 齊亞帕"犀牛"60DS左輪手槍 + 齐亚帕"犀牛"60DS左轮手枪 Taurus Judge @@ -1329,6 +1517,8 @@ Taurus Judge タウルス ジャッジ Taurus Judge + 金牛座"法官"信號槍 + 金牛座"法官"信号枪 NLAW @@ -1343,6 +1533,8 @@ NLAW NLAW NLAW + 次世代輕型反坦克導彈發射器 + 次世代轻型反坦克导弹发射器 RPG-32 @@ -1357,6 +1549,8 @@ RPG-32 RPG-32 RPG-32 + RPG-32"哈希姆"火箭發射器 + RPG-32"哈希姆"火箭发射器 Mini-Spike (AA) @@ -1371,6 +1565,8 @@ Mini-Spike (AA) ミニスパイク (対空) Mini-Spike (대공) + "迷你長釘"導彈發射器 (防空) + "迷你长钉"导弹发射器 (防空) Mini-Spike (AT) @@ -1385,6 +1581,8 @@ Mini-Spike (AT) ミニスパイク (対地) Mini-Spike (대전차) + "迷你長釘"導彈發射器 (反坦克) + "迷你长钉"导弹发射器 (反坦克) MX @@ -1399,6 +1597,8 @@ MX MX MX + MX突擊步槍 + MX突击步枪 MX (Black) @@ -1413,6 +1613,8 @@ MX (Nero) MX (黒) MX (검정) + MX突擊步槍 (黑色) + MX突击步枪 (黑色) MXC @@ -1427,6 +1629,8 @@ MXC MXC MXC + MXC卡賓步槍 + MXC卡宾步枪 MXC (Black) @@ -1441,6 +1645,8 @@ MXC (Nero) MXC (黒) MXC (검정) + MXC卡賓步槍 (黑色) + MXC卡宾步枪 (黑色) MX 3GL @@ -1455,6 +1661,8 @@ MX 3GL MX 3GL MX 3GL + MX突擊步槍 (3連裝榴彈) + MX突击步枪 (3连装榴弹) MX 3GL (Black) @@ -1469,6 +1677,8 @@ MX 3GL (Nero) MX 3GL (黒) MX 3GL (검정) + MX突擊步槍 (3連裝榴彈-黑色) + MX突击步枪 (3连装榴弹-黑色) MX LSW @@ -1483,6 +1693,8 @@ MX LSW MX LSW MX LSW + MX輕型機槍 + MX轻型机枪 MX LSW (Black) @@ -1497,6 +1709,8 @@ MX LSW (Nero) MX LSW (黒) MX LSW (검정) + MX輕型機槍 (黑色) + MX轻型机枪 (黑色) MXM @@ -1511,6 +1725,8 @@ MXM MXM MXM + MXM精準步槍 + MXM精准步枪 MXM (Black) @@ -1525,6 +1741,8 @@ MXM (Nero) MXM (黒) MXM (검정) + MXM精準步槍 (黑色) + MXM精准步枪 (黑色) KH2002 Sama @@ -1539,6 +1757,8 @@ KT2002 Katiba KH2002 サマ KH2002 Sama + KH2002"海白爾"突擊步槍 + KH2002"海白尔"突击步枪 KH2002C Sama @@ -1553,6 +1773,8 @@ KT2002C Katiba KH2002C サマ KH2002C Sama + KH2002C"海白爾"卡賓步槍 + KH2002C"海白尔"卡宾步枪 KH2002 Sama KGL @@ -1567,6 +1789,8 @@ KT2002 Katiba KGL KH2002 サマ KGL KH2002 Sama KGL + KH2002"海白爾"突擊步槍 (榴彈) + KH2002"海白尔"突击步枪 (榴弹) F2000 (Camo) @@ -1581,6 +1805,8 @@ F2000 (Camo) F2000 (迷彩) F2000 (위장) + F2000突擊步槍 (迷彩) + F2000突击步枪 (迷彩) F2000 @@ -1595,6 +1821,8 @@ F2000 F2000 F2000 + F2000突擊步槍 + F2000突击步枪 F2000 Tactical (Camo) @@ -1609,6 +1837,8 @@ F2000 Tactical (Camo) F2000 タクティカル (迷彩) F2000 Tactical (위장) + F2000戰術型突擊步槍 (迷彩) + F2000战术型突击步枪 (迷彩) F2000 Tactical @@ -1623,6 +1853,8 @@ F2000 Tactical F2000 タクティカル F2000 Tactical + F2000戰術型突擊步槍 + F2000战术型突击步枪 F2000 EGLM (Camo) @@ -1637,6 +1869,8 @@ F2000 EGLM (Camo) F2000 EGLM (迷彩) F2000 EGLM (위장) + F2000突擊步槍 (榴彈-迷彩) + F2000突击步枪 (榴弹-迷彩) F2000 EGLM @@ -1651,6 +1885,8 @@ F2000 EGLM F2000 EGLM F2000 EGLM + F2000突擊步槍 (榴彈) + F2000突击步枪 (榴弹) TAR-21 @@ -1665,6 +1901,8 @@ TAR-21 TAR-21 TAR-21 + TAR-21突擊步槍 + TAR-21突击步枪 CTAR-21 @@ -1679,6 +1917,8 @@ CTAR-21 CTAR-21 CTAR-21 + CTAR-21卡賓步槍 + CTAR-21卡宾步枪 TAR-21 EGLM @@ -1693,6 +1933,8 @@ TAR-21 EGLM TAR-21 EGLM TAR-21 EGLM + TAR-21突擊步槍 (榴彈) + TAR-21突击步枪 (榴弹) Vector SMG @@ -1707,6 +1949,8 @@ Vector SMG ベクター SMG Vector SMG + "維克特"衝鋒槍 + "维克特"冲锋枪 Scorpion Evo 3 A1 @@ -1721,6 +1965,8 @@ Scorpion Evo 3 A1 スコーピオン エボ 3 A1 Scorpion Evo 3 A1 + "蠍式"Evo 3 A1衝鋒槍 + "蝎式"Evo 3 A1冲锋枪 CPW @@ -1735,6 +1981,8 @@ CPW CPW CPW + 緊湊型個人衝鋒槍 + 紧凑型个人冲锋枪 RFB SDAR @@ -1749,6 +1997,8 @@ RFB SDAR RFB SDAR RFB SDAR + 犢牛式水陸兩用步槍 + 犊牛式水陆两用步枪 Stoner 99 LMG @@ -1763,6 +2013,8 @@ Stoner 99 LMG ストーナー 99 LMG Stoner 99 LMG + 斯通納99輕機槍 + 斯通纳99轻机枪 Negev NG7 @@ -1777,6 +2029,8 @@ Negev NG7 ネゲフ NG7 Negev NG7 + 內蓋夫NG7機槍 + 内盖夫NG7机枪 Mk14 Mod 1 EBR @@ -1791,6 +2045,8 @@ Mk14 Mod 1 EBR Mk14 Mod 1 EBR Mk14 Mod 1 EBR + Mk14一型增強型戰鬥步槍 + Mk14一型增强型战斗步枪 GM6 Lynx @@ -1805,6 +2061,8 @@ GM6 Lynx GM6 リンクス GM6 Lynx + GM6"天貓"反器材狙擊步槍 + GM6"天猫"反器材狙击步枪 GM6 Lynx (Camo) @@ -1819,6 +2077,8 @@ GM6 Lynx (Camo) GM6 リンクス (迷彩) GM6 Lynx (위장) + GM6"天貓"反器材狙擊步槍 (迷彩) + GM6"天猫"反器材狙击步枪 (迷彩) M200 Intervention @@ -1833,6 +2093,8 @@ M200 Intervention M200 インターベンション M200 Intervention + M200干預型狙擊步槍 + M200干预型狙击步枪 M200 Intervention (Camo) @@ -1847,6 +2109,8 @@ M200 Intervention (Camo) M200 インターベンション (迷彩) M200 Intervention (위장) + M200干預型狙擊步槍 (迷彩) + M200干预型狙击步枪 (迷彩) VS-121 @@ -1861,6 +2125,8 @@ VS-121 VS-121 VS-121 + VS-121狙擊步槍 + VS-121狙击步枪 Noreen "Bad News" ULR @@ -1875,6 +2141,8 @@ Noreen "Bad News" ULR ノレーン "バッド ニュース" ULR Noreen "Bad News" ULR + 諾琳"壞消息"極距狙擊步槍 + 诺琳"坏消息"极距狙击步枪 Noreen "Bad News" ULR (Black) @@ -1889,6 +2157,8 @@ Noreen "Bad News" ULR (Preto) ノレーン "バッド ニュース" ULR (黒) Noreen "Bad News" ULR (검정) + 諾琳"壞消息"極距狙擊步槍 (黑色) + 诺琳"坏消息"极距狙击步枪 (黑色) Noreen "Bad News" ULR (Camo) @@ -1903,6 +2173,8 @@ Noreen "Bad News" ULR (Camuflagem) ノレーン "バッド ニュース" ULR (迷彩) Noreen "Bad News" ULR (위장) + 諾琳"壞消息"極距狙擊步槍 (迷彩) + 诺琳"坏消息"极距狙击步枪 (迷彩) Noreen "Bad News" ULR (Sand) @@ -1917,6 +2189,8 @@ Noreen "Bad News" ULR (Deserto) ノレーン "バッド ニュース" ULR (砂地) Noreen "Bad News" ULR (모래) + 諾琳"壞消息"極距狙擊步槍 (沙色) + 诺琳"坏消息"极距狙击步枪 (沙色) SIG 556 @@ -1931,6 +2205,8 @@ SIG 556 SIG 556 SIG 556 + SIG 556精準步槍 + SIG 556精准步枪 SIG 556 (Black) @@ -1945,6 +2221,8 @@ SIG 556 (Preto) SIG 556 (黒) SIG 556 (검정) + SIG 556精準步槍 (黑色) + SIG 556精准步枪 (黑色) SIG 556 (Khaki) @@ -1959,6 +2237,8 @@ SIG 556 (Caqui) SIG 556 (土埃) SIG 556 (카키) + SIG 556精準步槍 (卡其色) + SIG 556精准步枪 (卡其色) SIG 556 (Sand) @@ -1973,6 +2253,8 @@ SIG 556 (Deserto) SIG 556 (砂地) SIG 556 (모래) + SIG 556精準步槍 (沙色) + SIG 556精准步枪 (沙色) SIG 556 (Camo) @@ -1987,6 +2269,8 @@ SIG 556 (Camuflagem) SIG 556 (迷彩) SIG 556 (위장) + SIG 556精準步槍 (迷彩) + SIG 556精准步枪 (迷彩) SIG 556 (Woodland) @@ -2001,6 +2285,8 @@ SIG 556 (Floresta) SIG 556 (森林) SIG 556 (우드랜드) + SIG 556精準步槍 (森林迷彩) + SIG 556精准步枪 (森林迷彩) SIG 556 (provisional) spotter @@ -2015,6 +2301,8 @@ SIG 556 (provisional) observador SIG 556 (仮) スポッター SIG 556 (임시) spotter + SIG 556精準步槍 (暫定) 觀測手 + SIG 556精准步枪 (暂定) 观测手 ASP-1 Kir @@ -2029,6 +2317,8 @@ ASP-1 Kir ASP-1 Kir ASP-1 Kir + ASP-1"基爾"消音狙擊步槍 + ASP-1"基尔"消音狙击步枪 ASP-1 Kir (Black) @@ -2043,6 +2333,8 @@ ASP-1 Kir (Preto) ASP-1 Kir (黒) ASP-1 Kir (검정) + ASP-1"基爾"消音狙擊步槍 (黑色) + ASP-1"基尔"消音狙击步枪 (黑色) ASP-1 Kir (Tan) @@ -2057,6 +2349,8 @@ ASP-1 Kir (Deserto) ASP-1 Kir (黄褐) ASP-1 Kir (황갈) + ASP-1"基爾"消音狙擊步槍 (黃褐色) + ASP-1"基尔"消音狙击步枪 (黄褐色) Cyrus @@ -2071,6 +2365,8 @@ Cyrus サイラス Cyrus + "居鲁士"狙擊步槍 + "居鲁士"狙击步枪 Cyrus (Black) @@ -2085,6 +2381,8 @@ Cyrus (Preto) サイラス (黒) Cyrus (검정) + "居鲁士"狙擊步槍 (黑色) + "居鲁士"狙击步枪 (黑色) Cyrus (Hex) @@ -2099,6 +2397,8 @@ Cyrus (Hex) サイラス (蜂巣) Cyrus (육각) + "居鲁士"狙擊步槍 (數位蜂巢迷彩) + "居鲁士"狙击步枪 (数位蜂巢迷彩) Cyrus (Tan) @@ -2113,6 +2413,8 @@ Cyrus (Deserto) サイラス (黄褐) Cyrus (황갈) + "居鲁士"狙擊步槍 (黃褐色) + "居鲁士"狙击步枪 (黄褐色) M14 @@ -2127,6 +2429,8 @@ M14 M14 M14 + M14精準步槍 + M14精准步枪 M14 (Camo) @@ -2141,6 +2445,8 @@ M14 (Camuflagem) M14 (迷彩) M14 (위장) + M14精準步槍 (迷彩) + M14精准步枪 (迷彩) M14 (Olive) @@ -2155,6 +2461,8 @@ M14 (Oliva) M14 (オリーブド ラブ) M14 (올리브) + M14精準步槍 (橄欖色) + M14精准步枪 (橄榄色) HK121 @@ -2169,6 +2477,8 @@ HK121 HK 121 HK121 + HK121中型機槍 + HK121中型机枪 HK121 (Hex) @@ -2183,6 +2493,8 @@ HK121 (Hex) HK 121 (蜂巣) HK121 (육각) + HK121中型機槍 (數位蜂巢迷彩) + HK121中型机枪 (数位蜂巢迷彩) HK121 (Tan) @@ -2197,6 +2509,8 @@ HK121 (Deserto) HK 121 (黄褐) HK121 (황갈) + HK121機槍 (黃褐色) + HK121机枪 (黄褐色) LWMMG @@ -2211,6 +2525,8 @@ LWMMG LWMMG LWMMG + 輕量化中型機槍 + 轻量化中型机枪 LWMMG (MTP) @@ -2225,6 +2541,8 @@ LWMMG (MTP) LWMMG (マルチカモ) LWMMG (MTP) + 輕量化中型機槍 (多地形迷彩) + 轻量化中型机枪 (多地形迷彩) LWMMG (Black) @@ -2239,6 +2557,8 @@ LWMMG (Preto) LWMMG (黒) LWMMG (검정) + 輕量化中型機槍 (黑色) + 轻量化中型机枪 (黑色) LWMMG (Sand) @@ -2253,6 +2573,8 @@ LWMMG (Deserto) LWMMG (砂地) LWMMG (모래) + 輕量化中型機槍 (沙色) + 轻量化中型机枪 (沙色) Jeep Wrangler @@ -2267,6 +2589,8 @@ Jeep Wrangler ジープ ラングラー Jeep Wrangler + "牧馬人"吉普車 + "牧马人"吉普车 Jeep Wrangler (Black) @@ -2281,6 +2605,8 @@ Jeep Wrangler (Preto) ジープ ラングラー (黒) Jeep Wrangler (검정) + "牧馬人"吉普車 (黑色) + "牧马人"吉普车 (黑色) Jeep Wrangler (Blue) @@ -2295,6 +2621,8 @@ Jeep Wrangler (Blu) ジープ ラングラー (青) Jeep Wrangler (파랑) + "牧馬人"吉普車 (藍色) + "牧马人"吉普车 (蓝色) Jeep Wrangler (Green) @@ -2309,6 +2637,8 @@ Jeep Wrangler (Verde) ジープ ラングラー (緑) Jeep Wrangler (초록) + "牧馬人"吉普車 (綠色) + "牧马人"吉普车 (绿色) Jeep Wrangler (Orange) @@ -2323,6 +2653,8 @@ Jeep Wrangler (Arancione) ジープ ラングラー (橙) Jeep Wrangler (주황) + "牧馬人"吉普車 (橘色) + "牧马人"吉普车 (橘色) Jeep Wrangler (Red) @@ -2337,6 +2669,8 @@ Jeep Wrangler (Rosso) ジープ ラングラー (赤) Jeep Wrangler (빨강) + "牧馬人"吉普車 (紅色) + "牧马人"吉普车 (红色) Jeep Wrangler (White) @@ -2351,6 +2685,8 @@ Jeep Wrangler (Bianco) ジープ ラングラー (白) Jeep Wrangler (하양) + "牧馬人"吉普車 (白色) + "牧马人"吉普车 (白色) Cessna TTx @@ -2365,6 +2701,8 @@ Cessna TTx セスナ TTx Cessna TTx + "賽斯納"TTx單引擎飛機 + "赛斯纳"TTx单引擎飞机 Cessna TTx (Racing) @@ -2379,6 +2717,8 @@ Cessna TTx (Racing) セスナ TTx (レース仕様) Cessna TTx (경주용) + "賽斯納"TTx單引擎飛機 (競速) + "赛斯纳"TTx单引擎飞机 (竞速) Burraq UCAV @@ -2393,6 +2733,8 @@ Burraq UCAV ブラーク UCAV Burraq UCAV + "柏拉格"空中無人戰鬥載具 + "柏拉格"空中无人战斗载具 QBZ-95-1 (Black) @@ -2407,6 +2749,8 @@ QBZ-95-1 (Preto) QBZ-95-1 (黒) QBZ-95-1 (검정) + QBZ-95-1式自動步槍 (黑色) + QBZ-95-1式自动步枪 (黑色) QBZ-95-1 (Green Hex) @@ -2421,6 +2765,8 @@ QBZ-95-1 (Hex Verde) QBZ-95-1 (緑蜂巣) QBZ-95-1 (초록육각) + QBZ-95-1式自動步槍 (綠色數位蜂巢迷彩) + QBZ-95-1式自动步枪 (绿色数位蜂巢迷彩) QBZ-95-1 (Hex) @@ -2435,6 +2781,8 @@ QBZ-95-1 (Hex) QBZ-95-1 (蜂巣) QBZ-95-1 (육각) + QBZ-95-1式自動步槍 (數位蜂巢迷彩) + QBZ-95-1式自动步枪 (数位蜂巢迷彩) QBZ-95-1 GL (Black) @@ -2449,6 +2797,8 @@ QBZ-95-1 GL (Preto) QBZ-95-1 GL (黒) QBZ-95-1 GL (검정) + QBZ-95-1式自動步槍 (榴彈-黑色) + QBZ-95-1式自动步枪 (榴弹-黑色) QBZ-95-1 GL (Green Hex) @@ -2463,6 +2813,8 @@ QBZ-95-1 GL (Hex Verde) QBZ-95-1 GL (緑蜂巣) QBZ-95-1 GL (초록육각) + QBZ-95-1式自動步槍 (榴彈-綠色數位蜂巢迷彩) + QBZ-95-1式自动步枪 (榴弹-绿色数位蜂巢迷彩) QBZ-95-1 GL (Hex) @@ -2477,6 +2829,8 @@ QBZ-95-1 GL (Hex) QBZ-95-1 GL (蜂巣) QBZ-95-1 GL (육각) + QBZ-95-1式自動步槍 (榴彈-數位蜂巢迷彩) + QBZ-95-1式自动步枪 (榴弹-数位蜂巢迷彩) QBZ-95-1 LSW (Black) @@ -2491,6 +2845,8 @@ QBZ-95-1 LSW (Preto) QBZ-95-1 LSW (黒) QBZ-95-1 LSW (검정) + QBZ-95-1式輕機槍 (黑色) + QBZ-95-1式轻机枪 (黑色) QBZ-95-1 LSW (Green Hex) @@ -2505,6 +2861,8 @@ QBZ-95-1 LSW (Hex Verde) QBZ-95-1 LSW (緑蜂巣) QBZ-95-1 LSW (초록육각) + QBZ-95-1式輕機槍 (綠色數位蜂巢迷彩) + QBZ-95-1式轻机枪 (绿色数位蜂巢迷彩) QBZ-95-1 LSW (Hex) @@ -2519,6 +2877,8 @@ QBZ-95-1 LSW (Hex) QBZ-95-1 LSW (蜂巣) QBZ-95-1 LSW (육각) + QBZ-95-1式輕機槍 (數位蜂巢迷彩) + QBZ-95-1式轻机枪 (数位蜂巢迷彩) QBU-88 (Black) @@ -2533,6 +2893,8 @@ QBU-88 (Preto) QBU-88 (黒) QBU-88 (검정) + QBU-88式狙擊步槍 (黑色) + QBU-88式狙击步枪 (黑色) QBU-88 (Green Hex) @@ -2547,6 +2909,8 @@ QBU-88 (Hex Verde) QBU-88 (緑蜂巣) QBU-88 (초록육각) + QBU-88式狙擊步槍 (綠色數位蜂巢迷彩) + QBU-88式狙击步枪 (绿色数位蜂巢迷彩) QBU-88 (Hex) @@ -2561,6 +2925,8 @@ QBU-88 (Hex) QBU-88 (蜂巣) QBU-88 (육각) + QBU-88式狙擊步槍 (數位蜂巢迷彩) + QBU-88式狙击步枪 (数位蜂巢迷彩) GM6 Lynx (Green Hex) @@ -2575,6 +2941,8 @@ GM6 Lynx (Hex Verde) GM6 リンクス (緑蜂巣) GM6 Lynx (초록육각) + GM6"天貓"反器材狙擊步槍 (綠色數位蜂巢迷彩) + GM6"天猫"反器材狙击步枪 (绿色数位蜂巢迷彩) M249 SPW @@ -2589,6 +2957,8 @@ M249 SPW M249 SPW M249 SPW + M249班用自動機槍 + M249班用自动机枪 M200 Intervention (Tropic) @@ -2603,6 +2973,8 @@ M200 Intervention (Tropico) M200 インターベンション (熱帯) M200 Intervention (열대) + M200干預型狙擊步槍 (熱帶迷彩) + M200干预型狙击步枪 (热带迷彩) MP5K @@ -2617,6 +2989,8 @@ MP5K MP5K MP5K + MP5K衝鋒槍 + MP5K冲锋枪 HK416A5 11" (Black) @@ -2631,6 +3005,8 @@ HK416A5 11" (Preto) HK416A5 11" (黒) HK416A5 11" (검정) + HK416A5 11"突擊步槍 (黑色) + HK416A5 11"突击步枪 (黑色) HK416A5 11" (Khaki) @@ -2645,6 +3021,8 @@ HK416A5 11" (Caqui) HK416A5 11" (土埃) HK416A5 11" (카키) + HK416A5 11"突擊步槍 (卡其色) + HK416A5 11"突击步枪 (卡其色) HK416A5 11" (Sand) @@ -2659,6 +3037,8 @@ HK416A5 11" (Deserto) HK416A5 11" (砂地) HK416A5 11" (모래) + HK416A5 11"突擊步槍 (沙色) + HK416A5 11"突击步枪 (沙色) HK416A5 11" GL (Black) @@ -2673,6 +3053,8 @@ HK416A5 11" GL (Preto) HK416A5 11" GL (黒) HK416A5 11" GL (검정) + HK416A5 11"突擊步槍 (榴彈-黑色) + HK416A5 11"突击步枪 (榴弹-黑色) HK416A5 11" GL (Khaki) @@ -2687,6 +3069,8 @@ HK416A5 11" GL (Caqui) HK416A5 11" GL (土埃) HK416A5 11" GL (카키) + HK416A5 11"突擊步槍 (榴彈-卡其色) + HK416A5 11"突击步枪 (榴弹-卡其色) HK416A5 11" GL (Sand) @@ -2701,6 +3085,8 @@ HK416A5 11" GL (Deserto) HK416A5 11" GL (砂地) HK416A5 11" GL (모래) + HK416A5 11"突擊步槍 (榴彈-沙色) + HK416A5 11"突击步枪 (榴弹-沙色) HK416A5 14.5" (Black) @@ -2715,6 +3101,8 @@ HK416A5 14.5" (Preto) HK416A5 14.5" (黒) HK416A5 14.5" (검정) + HK416A5 14.5"突擊步槍 (黑色) + HK416A5 14.5"突击步枪 (黑色) HK416A5 14.5" (Khaki) @@ -2729,6 +3117,8 @@ HK416A5 14.5" (Caqui) HK416A5 14.5" (土埃) HK416A5 14.5" (카키) + HK416A5 14.5"突擊步槍 (卡其色) + HK416A5 14.5"突击步枪 (卡其色) HK416A5 14.5" (Sand) @@ -2743,6 +3133,8 @@ HK416A5 14.5" (Deserto) HK416A5 14.5" (砂地) HK416A5 14.5" (모래) + HK416A5 14.5"突擊步槍 (沙色) + HK416A5 14.5"突击步枪 (沙色) HK417A2 20" (Black) @@ -2757,6 +3149,8 @@ HK417A2 20" (Preto) HK417A2 20" (黒) HK417A2 20" (검정) + HK417A2 20"突擊步槍 (黑色) + HK417A2 20"突击步枪 (黑色) HK417A2 20" (Khaki) @@ -2771,6 +3165,8 @@ HK417A2 20" (Caqui) HK417A2 20" (土埃) HK417A2 20" (카키) + HK417A2 20"突擊步槍 (卡其色) + HK417A2 20"突击步枪 (卡其色) HK417A2 20" (Sand) @@ -2785,6 +3181,8 @@ HK417A2 20" (Deserto) HK417A2 20" (砂地) HK417A2 20" (모래) + HK417A2 20"突擊步槍 (沙色) + HK417A2 20"突击步枪 (沙色) RPG-32 (Green Hex) @@ -2799,6 +3197,8 @@ RPG-32 (Hex Verde) RPG-32 (緑蜂巣) RPG-32 (초록육각) + RPG-32火箭發射器 (綠色數位蜂巢迷彩) + RPG-32火箭发射器 (绿色数位蜂巢迷彩) P99 (Khaki) @@ -2813,6 +3213,8 @@ P99 (Caqui) P99 (カーキ) P99 (카키) + P99半自動手槍 (卡其色) + P99半自动手枪 (卡其色) Makarov PM @@ -2827,6 +3229,8 @@ Makarov PM マカロフ PM Makarov PM + "馬卡洛夫"手槍 + "马卡洛夫"手枪 diff --git a/addons/rearm/stringtable.xml b/addons/rearm/stringtable.xml index 3dd201f567a..1995bfec819 100644 --- a/addons/rearm/stringtable.xml +++ b/addons/rearm/stringtable.xml @@ -13,6 +13,8 @@ Options de réarmement 再武装設定 재보급 설정 + 整装设定 + 整裝設定 This module allows you to tweak rearm system settings. @@ -26,6 +28,8 @@ Ce module autorise l'amélioration du système de réarmement. 再武装システムの設定を微調整します。 이 모듈은 재보급시의 설정을 바꿀수 있게해줍니다. + 此模块允许你调整整装系统设定 + 此模塊允許你調整整裝系統設定 Rearm Amount @@ -39,6 +43,8 @@ Quantité à réarmer 再武装できる量 재보급 양 + 整装所需时间 + 整裝所需時間 How fast should a vehicle be rearmed? @@ -52,6 +58,8 @@ A quelle vitesse devrait être réarmé un véhicule ? 車両を再武装する速さを設定しますか? 차량을 얼마나 빨리 재보급 시킵니까? + 载具多快会整装完毕? + 載具多快會整裝完畢? Entire Vehicle @@ -65,6 +73,8 @@ Véhicule entier 対象の車両 모든 차량 + 整个载具 + 整個載具 Entire Magazine @@ -78,6 +88,8 @@ Chargeur entier 対象の弾薬 모든 탄창 + 整个弹匣 + 整個彈匣 Amount based on caliber @@ -91,66 +103,88 @@ Quantité basée sur le calibre 口径に基づいた量 구경에 따라 수량 설정 + 基于口径决定所耗时间 + 基於口徑決定所耗時間 Ammunition supply Munitionsvorat Scorta munizioni 弾薬の供給 + 弹药补给 + 彈藥補給 How much ammunition does an ammo truck carry? Wie viel Munition transportiert ein Munitionslaster? Quante munizioni può trasportare un camion? 弾薬トラックがどの位の弾薬を供給できるようにしますか? + 弹药卡车会携带多少的弹药? + 彈藥卡車會攜帶多少的彈藥? Unlimited ammo supply Unbegrenzter Munitionsvorat Scorta munizioni infinita 無制限供給 + 无限弹药 + 無限彈藥 Limited ammo supply based on caliber Begrenzter, kaliberabhängiger Munitionsvorat Scorta munizioni limitata in base al calibro 口径に基づいた限定的供給 + 基于口径限制弹药数量 + 基於口徑限制彈藥數量 Only specific Magazines Nur bestimmte Magazine Solo specifici caricatori 特定の弾薬のみ + 只有指定的弹药 + 只有指定的彈藥 Check remaining ammunition Verbleibende Munition prüfen Controlla munizioni rimanenti 残弾薬を確認 + 检查剩余的弹药 + 檢查剩餘的彈藥 Checking remaining ammunition... Überprüfe verbleibende Munition... Controllando le munizioni rimanenti 残弾薬を確認しています・・・ + 正在检查剩余的弹药中... + 正在檢查剩餘的彈藥中... There is ammunition worth %1 points left. Es ist noch Munition für %1 Punkte übrig. E' presente una penalità delle munizioni %1 punti rimanenti. この弾薬は%1残っている + 还剩下%1多的弹药. + 還剩下%1多的彈藥. The following ammunition is left:%1 Folgende Munition ist übrig:%1 Mancano le seguenti:%1 この弾薬の残りは:%1 + 以下剩余的弹药:%1 + 以下剩餘的彈藥:%1 There is no ammunition left. Es ist keine Munition übrig. Non ci sono munizioni rimanenti. 弾薬は残っていません。 + 已经没有剩余的弹药了. + 已經沒有剩餘的彈藥了. Rearm @@ -164,6 +198,8 @@ Réarmer 再武装 재보급 + 整装 + 整裝 Rearming %1 with %2... @@ -177,6 +213,8 @@ Réarmement de %1 avec %2... %1を%2により再武装する。 %2을 %1에 재보급중... + %2正整装到%1中... + %2正整裝到%1中... Rearming %1... @@ -190,6 +228,8 @@ Réarmement de %1... %1を再武装中・・・ %1 재보급중... + 整装%1中... + 整裝%1中... Taking %1 for %2... @@ -203,6 +243,8 @@ Prend %1 pour %2... %1を%2のために取得しています・・・ %2를 위해 %1 가져오는중... + 拿取%1给%2中... + 拿取%1給%2中... Take ammo @@ -216,6 +258,8 @@ Prendre la munition 弾薬をとる 탄약 가지기 + 取得弹药 + 取得彈藥 Pick up ammo @@ -229,6 +273,8 @@ Ramasser la munition 弾薬を拾う 탄약 줍기 + 捡起弹药 + 撿起彈藥 Store ammo @@ -242,6 +288,8 @@ Stocker la munition 弾薬を戻す 탄약 보관하기 + 储存弹药 + 儲存彈藥 Storing %1 in %2... @@ -255,6 +303,8 @@ Stocke %1 dans %2... %1を%2へ戻しています・・・ %2에 %1 보관중... + 储存%1到%2中... + 儲存%1到%2中... Picking up ammo... @@ -267,6 +317,8 @@ Ramassage des munitions... 弾薬を拾っている・・・ 탄약 줍는중... + 捡起弹药中... + 撿起彈藥中... Rearmed %1 rounds of %2 on %3 @@ -280,6 +332,8 @@ %1 balles réarmées de %2 dans %3 %1発の%2を%3から装填した %3에 2%의 %1 탄약 재보급 + 整装了%1发%2到%3上 + 整裝了%1發%2到%3上 Smoke Screen @@ -293,6 +347,8 @@ Pantalla de humo 煙幕弾 연막 차장 + 烟幕弹 + 煙幕彈 Flares @@ -306,6 +362,8 @@ Bengalas フレア 기만체 + 热焰弹 + 熱焰彈 30mm HEI @@ -319,6 +377,8 @@ 30mm HEI 30mm 焼夷りゅう弾 30mm 고폭소이탄 + 30mm 高爆燃烧弹 + 30mm 高爆燃燒彈 30mm HEI-T @@ -332,6 +392,8 @@ 30mm HEI-T 30mm 焼夷曳光りゅう弾 30mm 고폭소이예광탄 + 30mm 高爆燃烧曳光弹 + 30mm 高爆燃燒曳光彈 AIM-9 Sidewinder @@ -345,6 +407,8 @@ AIM-9 Sidewinder AIM-9 サイドワインダー AIM-9 Sidewinder + AIM-9 响尾蛇 + AIM-9 響尾蛇 Wympel R-73 @@ -358,6 +422,8 @@ Wympel R-73 ヴィンペル R-73 Vympel R-73 + Wympel R-73 + Wympel R-73 AGM-65 Maverick @@ -371,6 +437,8 @@ AGM-65 Maverick AGM-65 マーベリック AGM-65 Maverick + AGM-65 小牛 + AGM-65 小牛 Kh-25MTP @@ -384,6 +452,8 @@ Kh-25MTP Kh-25MTP Kh-25MTP + Kh-25MTP + Kh-25MTP Hydra 70 HE @@ -397,6 +467,8 @@ Hydra 70 HE ハイドラ 70 りゅう弾 Hydra 70 고폭탄 + 九头蛇 70 高爆弹 + 九頭蛇 70 高爆彈 S-8 HE @@ -410,6 +482,8 @@ S-8 HE S-8 りゅう弾 S-8 고폭탄 + S-8 高爆弹 + S-8 高爆彈 Hydra 70 AP @@ -423,6 +497,8 @@ Hydra 70 AP ハイドラ 70 徹甲弾 Hydra 70 철갑탄 + 九头蛇 70 反人员弹 + 九頭蛇 70 反人員彈 S-8 AP @@ -436,6 +512,8 @@ S-8 AP S-8 徹甲弾 S-8 철갑탄 + S-8 反人员弹 + S-8 反人員彈 GBU-12 @@ -449,6 +527,8 @@ GBU-12 GBU-12 GBU-12 + GBU-12 + GBU-12 FAB-250M-54 @@ -462,6 +542,8 @@ FAB-250M-54 FAB-250M-54 FAB-250M-54 + FAB-250M-54 + FAB-250M-54 diff --git a/addons/refuel/stringtable.xml b/addons/refuel/stringtable.xml index 17ffa4d0cad..6d44a90db7a 100644 --- a/addons/refuel/stringtable.xml +++ b/addons/refuel/stringtable.xml @@ -13,6 +13,8 @@ Réglages de ravitaillement 給油設定 재급유 설정 + 加油设定 + 加油設定 Flow Rate @@ -26,6 +28,8 @@ Vitesse du ravitaillement 流量 주유량 + 油料流量 + 油料流量 How fast should a vehicle be refueled? @@ -39,6 +43,8 @@ A quelle vitesse devrait être ravitaillé un véhicule ? どのくらいの速さで車両へ給油しますか? 차량이 얼마나 빨리 재급유될 수 있습니까? + 载具多快会加油完毕? + 載具多快會加油完畢? Refuel @@ -52,6 +58,8 @@ Ravitaillement 給油 재급유 + 加油 + 加油 Take fuel nozzle @@ -65,6 +73,8 @@ Prendre la pompe 給油ノズルを取る 주유기 획득 + 拿取燃料喷嘴 + 拿取燃料噴嘴 Taking fuel nozzle... @@ -78,6 +88,8 @@ Prise de la pompe... 給油ノズルを取っている・・・ 주유기 획득중... + 拿取燃料喷嘴中... + 拿取燃料噴嘴中... Connect fuel nozzle @@ -91,6 +103,8 @@ Connecter la pompe 給油ノズルを接続する 주유기 꼽기 + 连接燃料喷嘴 + 連接燃料噴嘴 Connecting fuel nozzle... @@ -104,6 +118,8 @@ Connection de la pompe... 給油ノズルを接続している・・・ 주유기 꼽는중... + 连结燃料喷嘴中... + 連結燃料噴嘴中... Disconnect fuel nozzle @@ -117,6 +133,8 @@ Déconnecter la pompe 給油ノズルを外した 주유기 뽑기 + 断开燃料喷嘴 + 斷開燃料噴嘴 Connect @@ -130,6 +148,8 @@ Connecter 接続 꼽기 + 连结 + 連結 Check remaining fuel @@ -143,6 +163,8 @@ Vérifier le carburant restant 残燃料を見る 남은 연료 확인 + 检查剩余燃料 + 檢查剩餘燃料 Checking remaining fuel... @@ -156,6 +178,8 @@ Vérifie le carburant restant... 残燃料を見ている・・・ 남은 연료 확인중... + 检查剩余燃料中... + 檢查剩餘燃料中... There are %1 liters left. @@ -169,6 +193,8 @@ Il reste %1 litres. 後 %1 リットル残っている。 %1 리터 남음 + 剩下%1公升的燃料. + 剩下%1公升的燃料. There is no fuel left. @@ -182,6 +208,8 @@ Il n'y a plus de carburant. もう燃料は残っていない。 연료 없음. + 没有剩余的燃料 + 沒有剩餘的燃料 Cancel @@ -195,6 +223,8 @@ Annuler 中止 취소 + 取消 + 取消 Failed @@ -208,6 +238,8 @@ Echoué 失敗 실패 + 失败 + 失敗 Stop fueling @@ -221,6 +253,8 @@ Arrêter le ravitaillement 給油をやめる 그만 재급유하기 + 停止加油 + 停止加油 Stopping fueling... @@ -234,6 +268,8 @@ Arrête le ravitaillement... 給油をやめている・・・ 재급유 그만하는중... + 停止加油中... + 停止加油中... Start fueling @@ -247,6 +283,8 @@ Débute le ravitaillement 給油を始める 재급유 시작 + 开始加油 + 開始加油 Starting fueling... @@ -260,6 +298,8 @@ Début du ravitaillement... 給油を始めている・・・ 재급유 시작중... + 开始加油中... + 開始加油中... %1 Liters fueled @@ -273,6 +313,8 @@ %1 litres ravitaillés %1 リッターを給油した %1 리터 재급유됨 + 已加入%1公升的燃料 + 已加入%1公升的燃料 The fuel source is empty. @@ -286,6 +328,8 @@ La source de carburant est vide. 給油元は空です。 재급유처가 비었음. + 燃料来源已空. + 燃料來源已空. Maximum fuel hose length reached. @@ -299,6 +343,8 @@ Tuyau tendu au maximum 給油ホースはもうこれ以上届かない。 주유기 호스 최대 거리에 도달함. + 已加满至最大油量. + 已加滿至最大油量. Fueling completed @@ -312,6 +358,8 @@ Ravitaillement terminé 給油完了 재급유 완료함 + 加油完毕 + 加油完畢 Fueling stopped @@ -325,6 +373,8 @@ Ravitaillement stoppé 給油を止めた 재급유 멈춤 + 已停止加油 + 已停止加油 Fueling started @@ -338,6 +388,8 @@ Ravitaillement débuté 給油を始めた 재급유 시작함 + 已开始加油 + 已開始加油 Return fuel nozzle @@ -351,6 +403,8 @@ Retourner la pompe 給油ノズルを戻す 주유기 반환 + 放回燃料喷嘴 + 放回燃料噴嘴 Returning fuel nozzle... @@ -364,6 +418,8 @@ Retourne la pompe 給油ノズルを戻している・・・ 주유기 반환중 + 放回燃料喷嘴中... + 放回燃料噴嘴中... Check fuel counter @@ -377,6 +433,8 @@ Vérifier le compteur 燃料計を見る 연로카운터 확인 + 检查燃料表 + 檢查燃料表 Checking fuel counter... @@ -390,6 +448,8 @@ Vérification du compteur... 燃料計を見ている・・・ 연료카운터 확인중... + 检查燃料表中... + 檢查燃料表中... %1 liters have been fueled. @@ -403,6 +463,8 @@ %1 litres ont été écoulés. %1 リッターがある %1 리터가 재급유되었습니다. + 已加入%1公升. + 已加入%1公升. Refuel hose length @@ -410,6 +472,8 @@ Reabastecer longitud de manguera Rifiuta lungezza tubo 給油ホースの長さ + 加油软管长度 + 加油軟管長度 diff --git a/addons/reload/stringtable.xml b/addons/reload/stringtable.xml index 4454bd3f9ac..eb5e46bcce5 100644 --- a/addons/reload/stringtable.xml +++ b/addons/reload/stringtable.xml @@ -14,6 +14,8 @@ Conferir munição ao recarregar a arma 再装填された武器の弾薬を確認 재장전시 장탄수 확인 + 在重新装填时检查弹药 + 在重新裝填時檢查彈藥 Check the ammo in your new magazine on magazine reload. @@ -28,6 +30,8 @@ Confere a munição no seu novo carregador ao recarregar a arma あたらしく装填された弾倉の弾薬を確認します。 재장전시 새탄창에 있는 탄약을 확인합니다. + 在重新装填时检查新弹匣上的弹药. + 在重新裝填時檢查新彈匣上的彈藥. Check Ammo @@ -42,6 +46,8 @@ Проверить боеприпасы 弾薬を確認 장탄수 확인 + 检查弹药 + 檢查彈藥 Ammo @@ -56,6 +62,8 @@ Боеприпасы 弾薬 장탄수 + 弹药 + 彈藥 Link belt @@ -70,6 +78,8 @@ Ligar cintos de munição ベルト リンク 벨트 연결 + 连接弹链 + 連接彈鏈 Linking belt... @@ -84,6 +94,8 @@ Ligando cintos... ベルトをつなげている・・・ 벨트 연결중... + 连接弹链中... + 連接彈鏈中... diff --git a/addons/reloadlaunchers/stringtable.xml b/addons/reloadlaunchers/stringtable.xml index c9ffa3cef87..6096f362be2 100644 --- a/addons/reloadlaunchers/stringtable.xml +++ b/addons/reloadlaunchers/stringtable.xml @@ -14,6 +14,8 @@ Recarregar lançador ランチャーを装填 무기 재장전 + 装载发射器 + 裝載發射器 Loading launcher... @@ -28,6 +30,8 @@ Recarregando lançador... ランチャーを装填している・・・ 무기 재장전중... + 装载发射器中... + 裝載發射器中... Launcher loaded @@ -42,6 +46,8 @@ Lançador Carregado ランチャーの装填完了 무기 재장전됨 + 发射器装载完毕 + 發射器裝載完畢 Load %1 @@ -56,6 +62,8 @@ Recarregar %1 %1 へ装填 %1 장전 + 装载%1 + 裝載%1 diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index 0a001968e77..ea34a04f9c2 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -14,6 +14,8 @@ Запасная гусеница 予備履帯 예비 궤도 + 备用履带 + 備用履帶 Spare Wheel @@ -28,6 +30,8 @@ Запасное колесо 予備タイヤ 예비 바퀴 + 备用轮胎 + 備用輪胎 Change Wheel @@ -42,6 +46,8 @@ Vyměnit kolo タイヤを変える 바퀴 교체 + 更换轮胎 + 更換輪胎 Replacing Wheel... @@ -55,6 +61,8 @@ Remplacement de la roue... タイヤを交換中・・・ 바퀴 교체중... + 更换轮胎中... + 更換輪胎中... Wheel replaced @@ -68,6 +76,8 @@ Roue remplacée タイヤを履き替え 바퀴 교체됨 + 轮胎更换完毕 + 輪胎更換完畢 Remove Wheel @@ -82,6 +92,8 @@ Снять колесо タイヤを外す 바퀴 제거 + 卸下轮胎 + 卸下輪胎 Removing Wheel... @@ -95,6 +107,8 @@ Démontage de la roue... タイヤを外している・・ 바퀴 제거중... + 卸下轮胎中... + 卸下輪胎中... Wheel removed @@ -108,6 +122,8 @@ Roue démontée タイヤを外した 바퀴 제거됨 + 轮胎卸下完毕 + 輪胎卸下完畢 Change Track @@ -121,6 +137,8 @@ Changer la chenille 履帯を変える 궤도 교체 + 更换履带 + 更換履帶 Replacing Track... @@ -134,6 +152,8 @@ Remplacement de la chenille... 履帯を交換中・・・ 궤도 교체중... + 更换履带中... + 更換履帶中... Track replaced @@ -147,6 +167,8 @@ Chenille remplacée 履帯を交換した 궤도 교체됨 + 履带更换完毕 + 履帶更換完畢 Remove Track @@ -160,6 +182,8 @@ Enlever la chenille 履帯を外す 궤도 제거 + 卸下履带 + 卸下履帶 Removing Track... @@ -173,6 +197,8 @@ Enlèvement de la chenille... 履帯を外している・・・ 궤도 제거중... + 卸下履带中... + 卸下履帶中... Track removed @@ -186,6 +212,8 @@ Chenille enlevée 履帯を外した 궤도 제거됨 + 履带卸下完毕 + 履帶卸下完畢 Full Repair @@ -199,6 +227,8 @@ Réparations complètes 完全に修理 완전수리 + 完整维修 + 完整維修 Repairing Vehicle... @@ -212,6 +242,8 @@ Réparation du véhicule... 車両を修理中・・・ 차량 수리중... + 维修载具中... + 維修載具中... Full Repair Locations @@ -225,6 +257,8 @@ Lieu de réparation complète 完全修理をできる場所 완전수리 구역 + 完整维修地点 + 完整維修地點 At what locations can a vehicle be fully repaired? @@ -238,6 +272,8 @@ Où peuvent être réparés complètement les véhicules ? どのような場所で車両の完全な修理を出来るようにしますか? 어느 구역에서 차량을 완전히 수리할 수 있게 합니까? + 什么位置可以完整维修载具? + 什麼位置可以完整維修載具? Allow Full Repair @@ -251,6 +287,8 @@ Autoriser les réparations complètes. 完全な修理をさせる 완전 수리 활성화 + 允许完整维修 + 允許完整維修 Who can perform a full repair on a vehicle? @@ -264,6 +302,8 @@ Qui peut faire une réparation complète ? 誰が車両の完全な修理を出来るようにしますか? 누가 완전 수리를 할 수 있습니까? + 谁可以完整维修载具? + 誰可以完整維修載具? Add Spare Parts @@ -277,6 +317,8 @@ Ajouter des pièces de rechange 予備部品を追加 예비 부품 더하기 + 添加备件 + 添加備件 Add spare parts to vehicles (requires Cargo component)? @@ -290,6 +332,8 @@ Ajouter des pièces de rechage aux véhicules ? (à besoin du système de cargaison) 車両へ予備部品を追加しますか(カーゴ コンポーネントが必要)? 차량에 예비 부품을 더합니까?(짐칸 요소 필요) + 添加载具备件 (需相关货物组件)? + 添加載具備件 (需相關貨物組件)? Repair @@ -304,6 +348,8 @@ Ремонт 修理 수리 + 维修 + 維修 Display text on repair @@ -317,6 +363,8 @@ Afficher du texte pendant la réparation 修理時に文章で通知する 수리시 화면에 글자 표시 + 显示维修文本 + 顯示維修文本 Display a notification whenever you repair a vehicle @@ -330,6 +378,8 @@ Afficher une notification lorsque l'on répare un véhicule あなたが車両の修理を始めると、画面に通知を出します 수리시 화면에 글자로 알림이 뜹니다 + 每当维修载具时显示通知 + 每當維修載具時顯示通知 Repairing... @@ -344,6 +394,8 @@ Ремонтируем... 修理中・・・ 수리중... + 维修中... + 維修中... Repairing %1... @@ -358,6 +410,8 @@ Ремонтируем %1... %1 を修理中・・・ %1 수리중... + 维修%1中... + 維修%1中... Repaired %1 @@ -372,6 +426,8 @@ %1 отремонтирован %1 を修理した %1 수리됨 + 已维修%1 + 已維修%1 Fully repaired part @@ -385,6 +441,8 @@ Pièce entièrement réparée 部分的な完全な修理 부분 완벽히 수리됨 + 完整维修部分 + 完整維修部分 Partially repaired %1 @@ -398,6 +456,8 @@ %1 pratiquement réparée %1 を部分的に修理した %1 부분적으로 수리됨 + %1已完成部分维修 + %1已完成部分維修 Fully repaired %1 @@ -411,6 +471,8 @@ %1 entièrement réparée %1 を完全に修理した %1 완전히 수리됨 + %1已完整维修 + %1已完整維修 Partially repaired %1 @@ -424,6 +486,8 @@ %1 pratiquement réparée %1 を部分的に修理した %1 부분적으로 수리됨 + %1已完成部分维修 + %1已完成部分維修 Body @@ -438,6 +502,8 @@ Кузов 車体 몸체 + 车身 + 車身 Hull @@ -452,6 +518,8 @@ Корпус 機体 선체 + 车壳 + 車殼 Engine @@ -466,6 +534,8 @@ Двигатель エンジン 엔진 + 引擎 + 引擎 Left Horizontal Stabilizer @@ -479,6 +549,8 @@ Linkes Höhenleitwerk 左側の水平安定機 왼쪽 수평안정판 + 左侧悬挂稳定 + 左側懸掛穩定 Right Horizontal Stabilizer @@ -492,6 +564,8 @@ Rechtes Höhenleitwerk 右側の水平安定機 오른쪽 수평안정판 + 右侧悬挂稳定 + 右側懸掛穩定 Vertical Stabilizer @@ -505,6 +579,8 @@ Seitenleitwerk 車両安定器 수직 안정판 + 垂直稳定 + 垂直穩定 Fuel Tank @@ -519,6 +595,8 @@ Топливный бак 燃料タンク 연료 탱크 + 油箱 + 油箱 Transmission @@ -532,6 +610,8 @@ Instruments 変速機 변속기 + 变速箱 + 變速箱 Gear @@ -545,6 +625,8 @@ Trains d'attérissage ギア 기어 + 齿轮 + 齒輪 Starter @@ -558,6 +640,8 @@ Démarreur スターター 점화기 + 发动机 + 發動機 Tail @@ -571,6 +655,8 @@ Queue 尾翼 꼬리 + 尾翼 + 尾翼 Pitot Tube @@ -584,6 +670,8 @@ Sonde pitot ピトー管 동압관 + 空速管 + 空速管 Static Port @@ -597,6 +685,8 @@ Port statique スタティック ポート 정압공 + 静态端口 + 靜態端口 Ammo @@ -610,6 +700,8 @@ Munitions 弾薬 탄약 + 弹药 + 彈藥 Turret @@ -624,6 +716,8 @@ Башню 砲塔 포탑 + 炮塔 + 砲塔 Gun @@ -638,6 +732,8 @@ Пушку + + Missiles @@ -651,6 +747,8 @@ Missiles ミサイル 미사일 + 导弹 + 導彈 Left Track @@ -665,6 +763,8 @@ Левую гусеницу 左の履帯 왼쪽 궤도 + 左履带 + 左履帶 Right Track @@ -679,6 +779,8 @@ Правую гусеницу 右の履帯 오른쪽 궤도 + 右履带 + 右履帶 Left Front Wheel @@ -693,6 +795,8 @@ Левое переднее колесо 左の前輪 왼쪽 앞바퀴 + 左前轮 + 左前輪 Right Front Wheel @@ -707,6 +811,8 @@ Правое переднее колесо 右の前輪 오른쪽 앞바퀴 + 右前轮 + 右前輪 Second Left Front Wheel @@ -721,6 +827,8 @@ Второе переднее левое колесо 左の 2 つめの前輪 왼쪽 두번째 바퀴 + 第二左前轮 + 第二左前輪 Second Right Front Wheel @@ -735,6 +843,8 @@ Второе правое переднее колесо 右の 2 つめの前輪 오른쪽 두번째 바퀴 + 第二右前轮 + 第二右前輪 Left Middle Wheel @@ -749,6 +859,8 @@ Левое среднее колесо 左の中央の前輪 왼쪽 가운데 바퀴 + 左中轮 + 左中輪 Right Middle Wheel @@ -763,6 +875,8 @@ Правое среднее колесо 右の中央の前輪 오른족 가운데 바퀴 + 右中轮 + 右中輪 Left Rear Wheel @@ -777,6 +891,8 @@ Левое заднее колесо 左の後輪 왼쪽 뒤쪽 바퀴 + 左后轮 + 左後輪 Right Rear Wheel @@ -791,6 +907,8 @@ Правое заднее колесо 右の後 오른쪽 뒤쪽 바퀴 + 右后轮 + 右後輪 Avionics @@ -805,6 +923,8 @@ Авионику アビオニクス 항공 전자 + 航电系统 + 航電系統 Main Rotor @@ -819,6 +939,8 @@ Несущий винт 主翼 주 로터 + 主旋翼 + 主旋翼 Tail Rotor @@ -833,6 +955,8 @@ Рулевой винт 尾翼ローター 꼬리 로터 + 尾桨 + 尾槳 Winch @@ -846,6 +970,8 @@ Treuil ウィンチ 윈치 + 绞盘 + 絞盤 Glass (right) @@ -860,6 +986,8 @@ Стекло (справа) ガラス (右) 유리 (오른쪽) + 玻璃 (右) + 玻璃 (右) Glass (left) @@ -874,6 +1002,8 @@ Стекло (слава) ガラス (左) 유리 (왼쪽) + 玻璃 (左) + 玻璃 (左) Glass @@ -888,6 +1018,8 @@ Стекло ガラス 유리 + 玻璃 + 玻璃 ERA @@ -901,6 +1033,8 @@ ДЗ 爆発反応装甲 폭발반응장갑 + 爆炸式反应装甲 + 爆炸式反應裝甲 Repair Settings @@ -914,6 +1048,8 @@ Réglages de réparation 修理設定 수리 설정 + 修复设定 + 修復設定 Provides a repair system for all types of vehicles. @@ -927,6 +1063,8 @@ Fournit un système de réparation pour tous les types de véhicules. 車両の全種類に修理システムを適用しますか? 모든 차량에 대해 수리 시스템을 제공합니다. + 提供修复系统给所有载具. + 提供修復系統給所有載具. Anyone @@ -940,6 +1078,8 @@ Tout le monde だれでも 모두 + 任何人 + 任何人 Engineer only @@ -953,11 +1093,15 @@ Ingénieurs seulement 工兵のみ 오직 정비공만 + 只有工兵 + 只有工兵 Advanced Engineer only Solo Geniere avanzato 上級工兵のみ + 只有维修专精兵 + 只有維修專精兵 Allow Wheel @@ -971,6 +1115,8 @@ Autoriser les roues タイヤを許可 바퀴 허가 + 允许轮胎 + 允許輪胎 Who can remove and replace wheels? @@ -984,6 +1130,8 @@ Qui peut enlever et remplacer les roues ? 誰がタイヤの除去と交換を出来るようにしますか? 누가 바퀴를 제거 및 교체할 수 있습니까? + 谁可维修轮胎? + 誰可維修輪胎? Allow Repair @@ -997,6 +1145,8 @@ Autoriser les réparations 修理を許可 수리 허가 + 允许维修 + 允許維修 Who can perform repair actions? @@ -1010,6 +1160,8 @@ Qui peut réparer ? 誰が修理を出来るようににしますか? 누가 수리를 할 수 있습니까? + 谁可以进行维修操作? + 誰可以進行維修操作? Repair Threshold @@ -1023,6 +1175,8 @@ Seuil de réparation 修理のしきい値 정비 한계치 + 维修门槛 + 維修門檻 What is the maximum damage that can be repaired with a toolkit? @@ -1036,6 +1190,8 @@ Quel est le maximum de dommages réparable par une trousse à outils ? ツールキットで修理できる、最大の損傷許容範囲を設定しますか? 어느정도의 피해까지 툴킷으로 수리가 가능합니까? + 工具包可以修复的最大损坏值? + 工具包可以修復的最大損壞值? Repair Threshold (Engineer) @@ -1049,6 +1205,8 @@ Seuil de réparatoin (ingénieur) 修理のしきい値 (工兵) 정비 한계치 (정비공) + 维修门槛 (工兵) + 維修門檻 (工兵) What is the maximum damage that can be repaired by an engineer? @@ -1062,6 +1220,8 @@ Quel est le maximum de dommages qui peuvent être réparés par un ingénieur ? 工兵が修理できる、最大の損傷許容範囲を設定しますか? 정비공은 어느정도의 피해까지 수리할 수 있습니까? + 工兵可以修复的最大损坏值? + 工兵可以修復的最大損壞值? Remove toolkit on use @@ -1075,6 +1235,8 @@ Enlever la trousse à outils après usage ツールキットを使うと削除 툴킷 사용후 제거 + 使用后删除工具包 + 使用後刪除工具包 Should the toolkit be removed on usage? @@ -1088,6 +1250,8 @@ La trousse à outils devrait-elle être enlevée après usage ? ツールキットを使うと削除しますか? 툴킷을 사용하면 제거를 합니까? + 要在使用后删除工具包吗? + 要在使用後刪除工具包嗎? Anywhere @@ -1101,6 +1265,8 @@ N'importe où だれでも 어디서나 + 任何地点 + 任何地點 Repair Vehicle only @@ -1114,6 +1280,8 @@ Véhicule de réparation seulement 修理車両のみ 오직 수리 차량만 + 维修载具旁 + 維修載具旁 Repair Facility only @@ -1127,6 +1295,8 @@ Installation de réparation seulement 修理施設のみ 오직 수리 시설만 + 维修设施旁 + 維修設施旁 Repair Facility or Vehicle @@ -1140,6 +1310,8 @@ Installations ou véhicule de réparation 修理施設または車両のみ 수리 시설혹은 차량 + 维修设施或载具旁 + 維修設施或載具旁 Assign Engineer @@ -1153,6 +1325,8 @@ Assigner le rôle d'ingénieur 工兵にする 정비공 등록 + 指派工兵 + 指派工兵 List @@ -1166,6 +1340,8 @@ Liste 一覧 목록 + 名单 + 名單 List of unit names that will be classified as engineer, separated by commas. @@ -1179,6 +1355,8 @@ Liste des noms d'unités qui seront considérées ingénieurs. Séparé par des virgules 一覧に記載されたユニット名を、工兵として指定します。コンマで複数を指定できます。 목록내 보직이름은 정비공으로 분류됩니다. 쉼표로 구분합니다. + 工兵名单, 把单位名称输入在这边即可定义其为工兵. 每个单位使用逗号以做区隔. + 工兵名單, 把單位名稱輸入在這邊即可定義其為工兵. 每個單位使用逗號以做區隔. Is Engineer @@ -1192,6 +1370,8 @@ Est ingénieur 工兵とする 은 정비공이다 + 是工兵 + 是工兵 Select the engineering skill level of the unit @@ -1205,6 +1385,8 @@ Sélectionner le niveau d'habilité en réparation de l'unité ユニットへの工兵スキルを選択 선택한 인원의 정비 실력을 고르십시요 + 选择工兵的技术水平 + 選擇工兵的技術水平 None @@ -1218,6 +1400,8 @@ Aucun 工兵 없음 + + Engineer @@ -1231,11 +1415,15 @@ Ingénieur 専門兵 정비공 + 工兵 + 工兵 Adv. Engineer Adv. Geniere + 专精 + 專精 Assign one or multiple units as an engineer @@ -1249,6 +1437,8 @@ Assigner un ou plusieurs unités comme ingénieur 修理車両として指定 하나 혹은 여러 인원을 정비공으로 등록합니다 + 指定一个或多个单位为工兵 + 指定一個或多個單位為工兵 Assign Repair Vehicle @@ -1262,6 +1452,8 @@ Assigner en tant que véhicule de réparation 修理車両として指定 정비 차량 등록 + 指定维修载具 + 指定維修載具 List @@ -1275,6 +1467,8 @@ Liste 一覧 목록 + 名单 + 名單 List of vehicles that will be classified as repair vehicle, separated by commas. @@ -1288,6 +1482,8 @@ Liste de véhicules qui seront considérés comme véhicules de réparation. Séparé par des virgules. 一覧に記載されたユニット名を、修理車両として指定します。コンマで複数を指定できます。 목록내 차량은 정비 차량으로 분류됩니다. 쉼표로 구분합니다. + 载具名单, 把载具名称输入在这边即可定义其为维修载具. 每个载具使用逗号以做区隔. + 載具名單, 把載具名稱輸入在這邊即可定義其為維修載具. 每個載具使用逗號以做區隔. Is Repair Vehicle @@ -1301,6 +1497,8 @@ Est un véhicule de réparation 修理車両とする 은 정비 차량이다 + 是维修载具 + 是維修載具 Is the vehicle classified as a repair vehicle? @@ -1314,6 +1512,8 @@ Le véhicule est-il considéré comme un véhicule de réparation ? 車両を修理車両と指定しますか? 이 차량을 정비 차량으로 분류합니까? + 此载具是维修载具吗? + 此載具是維修載具嗎? Assign one or multiple vehicles as a repair vehicle @@ -1327,6 +1527,8 @@ Assigner un ou plusieurs véhicules en tant que véhicule de réparation 単体、または複数の車両を修理車両とします 하나 혹은 여러 차량을 정비 차량으로 등록합니다 + 指定一个或多个载具作为维修载具 + 指定一個或多個載具作為維修載具 Assign Repair Facility @@ -1340,6 +1542,8 @@ Assigner en tant qu'installation de réparation 修理施設とする 정비 시설 등록 + 指定维修设施 + 指定維修設施 List @@ -1353,6 +1557,8 @@ Liste 一覧 목록 + 名单 + 名單 List of objects that will be classified as repair Facility, separated by commas. @@ -1366,6 +1572,8 @@ Liste des objets considérés comme installations de réparation. Séparé par des virgules 一覧に記載されたユニット名を、修理施設として指定します。コンマで複数を指定できます。 목록내 시설은 정비 시설으로 분류됩니다. 쉼표로 구분합니다. + 设施名单, 把设施名称输入在这边即可定义其为维修设施. 每个设施使用逗号以做区隔. + 設施名單, 把設施名稱輸入在這邊即可定義其為維修設施. 每個設施使用逗號以做區隔. Is Repair Facility @@ -1379,6 +1587,8 @@ Est une installation de réparation 修理施設とする 은 정비 시설이다 + 是维修设施 + 是維修設施 Is the object classified as a repair Facility? @@ -1392,6 +1602,8 @@ L'objet est-il considéré comme une installation de réparation ? オブジェクトを修理施設として指定しますか? 이 시설을 정비 시설로 분류합니까? + 此设施是维修设施吗? + 此設施是維修設施嗎? Assign one or multiple objects as a repair Facility @@ -1405,6 +1617,8 @@ Assigner un ou plusieurs objets en tant que véhicule de réparation ひとつ、または複数オブジェクトに予備部品を追加 하나 혹은 여러 시설을 정비 시설로 등록합니다 + 指定一个或多个对象作为维修设施 + 指定一個或多個對象作為維修設施 Add Spare Parts @@ -1418,6 +1632,8 @@ Ajouter des pièces de rechange 予備部品を追加 예비 부품 더하기 + 添加备件 + 添加備件 Add spare parts to one or multiple objects @@ -1431,6 +1647,8 @@ Ajouter des pièces de rechange à un ou plusieurs objets 一覧に追加されたオブジェクトへ予備部品を与えます。コンマで複数を指定できます。 하나 혹은 여러 물체가 예비 부품을 더합니다 + 添加备件到一个或多个对象上 + 添加備件到一個或多個對象上 List @@ -1444,6 +1662,8 @@ Liste 一覧 목록 + 名单 + 名單 List of objects that will get spare parts added, separated by commas. @@ -1457,6 +1677,8 @@ Liste des objets qui recevront des pièces de réparation en plus. Séparé par des virgules 一覧に追加されたオブジェクトへ予備部品を与えます。コンマで複数を指定できます。 목록내 물체는 예비 부품을 받습니다, 쉼표로 구분합니다. + 添加备件到名单的载具上. 每个载具使用逗号以做区隔. + 添加備件到名單的載具上. 每個載具使用逗號以做區隔. Part @@ -1470,6 +1692,8 @@ Pièce 部品 부품 + 零件 + 零件 Spare part. @@ -1483,6 +1707,8 @@ Pièce de rechange 予備部品 예비 부품 + 备用零件 + 備用零件 Amount @@ -1496,6 +1722,8 @@ Quantité 수량 + 数量 + 數量 Number of selected spare parts. @@ -1509,6 +1737,8 @@ Nombre de pièces de rechange séléctionnées 選択された予備部品の数を選択します。 선택한 부품의 수 + 选择的备件数量 + 選擇的備件數量 Wheel repair requirements @@ -1522,6 +1752,8 @@ Exigences de réparation de roue タイヤの修理を必要 바퀴 교체 요구사항 + 维修轮胎限制 + 維修輪胎限制 Items required to remove/replace wheels @@ -1535,6 +1767,8 @@ Items exigés pour enlever/remplacer les roues タイヤの除去と交換にアイテムを必要としますか? 바퀴를 제거/교체하는데 필요한 물건 + 需要特定物品来移除/更换车轮 + 需要特定物品來移除/更換車輪 Engine must be off to repair @@ -1548,6 +1782,8 @@ Silnik musi być wyłączony w celu naprawy 수리를 위해서는 엔진을 꺼야만 합니다 Il motore deve essere spento per poter riparare + 引擎必须先关闭才能开始进行维修 + 引擎必須先關閉才能開始進行維修 diff --git a/addons/respawn/stringtable.xml b/addons/respawn/stringtable.xml index a2d90acce41..6d3b3d805dd 100644 --- a/addons/respawn/stringtable.xml +++ b/addons/respawn/stringtable.xml @@ -14,6 +14,8 @@ Será posicionado em 5 segundos... 設置まであと 5 秒・・・ 5초 후 재배치... + 5秒后完成布署... + 5秒後完成佈署... Rallypoint deployed @@ -28,6 +30,8 @@ Rallypoints posicionado ラリーポイントを設置した 집결지 배치됨 + 集合点布署完成 + 集合點佈署完成 Teleport to Base @@ -42,6 +46,8 @@ Teleporta alla base ベースへ移動 기지로 순간이동 + 传送至基地 + 傳送至基地 Teleport to Rallypoint @@ -56,6 +62,8 @@ Teleporta al rallypoint ラリーポイントへ移動 집결지로 순간이동 + 传送至集合点 + 傳送至集合點 Teleported to Base @@ -70,6 +78,8 @@ Teletransportado para a Base ベースへ移動した 기지로 순간이동함 + 已传送至基地 + 已傳送至基地 Teleported to Rallypoint @@ -84,6 +94,8 @@ Teletransportado para o Rallypoints ラリーポイントへ移動した 집결지로 순간이동함 + 已传送至集合点 + 已傳送至集合點 Rallypoint West (Base) @@ -98,6 +110,8 @@ Ponto de encontro Oeste (Base) ラリーポイント ウエスト (ベース) 서쪽 집결지 (기지) + 蓝方集合点 (基地) + 藍方集合點 (基地) Rallypoint East (Base) @@ -112,6 +126,8 @@ Ponto de encontro Lest (Base) ラリーポイント イースト (ベース) 동쪽 집결지 (기지) + 红方集合点 (基地) + 紅方集合點 (基地) Rallypoint Independent (Base) @@ -126,6 +142,8 @@ Ponto de encontro Independente (Base) ラリーポイント インデペンデント (ベース) 독립 집결지 (기지) + 独立方集合点 (基地) + 獨立方集合點 (基地) Rallypoint West @@ -140,6 +158,8 @@ Ponto de encontro Oeste ラリーポイント ウエスト 서쪽 집결지 + 蓝方集合点 + 藍方集合點 Rallypoint East @@ -154,6 +174,8 @@ Ponto de encontro Leste ラリーポイント イースト 동쪽 집결지 + 红方集合点 + 紅方集合點 Rallypoint Independent @@ -168,6 +190,8 @@ Ponto de encontro Independente ラリーポイント インデペンデント 독립 집결지 + 独立方集合点 + 獨立方集合點 Respawn System @@ -182,6 +206,8 @@ Sistema Respawn リスポン システム 재배치 시스템 + 重生系统 + 重生系統 Save Gear? @@ -196,6 +222,8 @@ Salva Equipaggiamento? 装備を保存? 장비를 저장합니까? + 储存装备? + 儲存裝備? Respawn with the gear a soldier had just before his death? @@ -210,6 +238,8 @@ Respawna con l'equipaggiamento che il soldato aveva appena prima di morire? ユニットが死ぬ前に持っていた装備でリスポンしますか? 죽기 전에 가지고 있던 장비로 재배치합니까? + 是否在重生时载入死亡前的装备? + 是否在重生時載入死亡前的裝備? Remove bodies? @@ -224,6 +254,8 @@ Rimuovi corpi? 死体を削除? 시체를 제거합니까? + 删除尸体? + 刪除屍體? Remove player bodies after disconnect? @@ -238,6 +270,8 @@ Rimuovi i corpi dei giocatori quando si disconnettono? 切断後はプレイヤーの死体を削除しますか? 접속이 끊긴 플레이어의 시체를 제거합니까? + 要删除已离线的玩家尸体吗? + 要刪除已離線的玩家屍體嗎? This module enables you to configure ACE functionality specific to respawns. @@ -251,6 +285,8 @@ Este módulo permite configurar parámetros relacionados con la reaparición あなたが設定した ACE 機能をリスポンへ設定できます。 이 모듈은 ACE 재배치의 자세한 설정을 변결할 수 있게 해줍니다. + 该模块使您可以设定ACE的重生功能. + 該模塊使您可以設定ACE的重生功能. Friendly Fire Messages @@ -265,6 +301,8 @@ Messaggi Fuoco Amico 友軍誤射の表示 아군사격 메세지 + 友军误击讯息 + 友軍誤擊訊息 Using this module in your mission will make it so any friendly fire kills will be displayed in form of a message in chat. @@ -278,6 +316,8 @@ El usar este módulo, todas las muertes por fuego amigo serán indicadas en el chat. もし友軍誤射による死者が出た場合は、チャットにてその旨を表示します。 이 모듈은 미션 중 아군사격으로 인한 사망자 발생시 채팅창에 메세지를 표시해줍니다. + 摆放此模块后, 当有发生友军误击致死的事件, 会显示提示讯息在聊天视窗中. + 擺放此模塊後, 當有發生友軍誤擊致死的事件, 會顯示提示訊息在聊天視窗中. Rallypoint System @@ -292,6 +332,8 @@ Sistema Punto di Raccolta ラリーポイント システム 집결지 시스템 + 集合点系统 + 集合點系統 This module allows you to use rally points in missions, to which you can quickly teleport from base flag. Requires placing special objects on map - base and flag. Both available in category Empty -> ACE Respawn. @@ -305,6 +347,8 @@ Ce module vous permet d'utiliser les "rally points" auxquels vous pouvez vous téléporter rapidement depuis un drapeau à la base. Il nécessite le placement d'objets spéciaux sur la carte - base et drapeau, disponibles dans la catégorie Vide -> ACE Respawn. ミッションでベースから素早く移動できるラリーポイントを使えるようにします。ゲーム内に専用オブジェクトとなるベースとフラッグを設置している必要があります。両オブジェクトは Empty 下の ACE リスポンから設置できます。 이 모듈은 미션 중에 기지 깃발에서 집결지로 빠르게 텔레포트 시켜주는 역활을 합니다. 지도 상에 기지 및 깃발이 필요합니다. 두 가지 모두 Empty->ACE Respawn 카테고리에서 찾을 수 있습니다. + 摆放此模块后, 你将能在任务中布署集合点, 使你可以快速往返基地与前线. 要使用本功能, 请记得放上空物件->ACE 重生里面的基地与旗帜. + 擺放此模塊後, 你將能在任務中佈署集合點, 使你可以快速往返基地與前線. 要使用本功能, 請記得放上空物件->ACE 重生裡面的基地與旗幟. Move Rallypoint @@ -319,6 +363,8 @@ Sposta Punto di Raccolta ラリーポイントを移動 집결지 이동 + 移动集合点 + 移動集合點 ACE Respawn @@ -333,6 +379,8 @@ Rigenerazione ACE ACE リスポン ACE 재배치 + ACE 重生 + ACE 重生 diff --git a/addons/safemode/stringtable.xml b/addons/safemode/stringtable.xml index d2c7ff3fd6b..bb8ce63b60a 100644 --- a/addons/safemode/stringtable.xml +++ b/addons/safemode/stringtable.xml @@ -14,6 +14,8 @@ Modo de segurança 安全装置 안전 모드 + 保险模式 + 保險模式 Take off Safety @@ -28,6 +30,8 @@ Tirar segurança 安全装置を外す 안전장치 해제 + 开保险 + 開保險 Put on Safety @@ -42,6 +46,8 @@ Colocar Segurança 安全装置を掛けた 안전장치 적용 + 关保险 + 關保險 Took off Safety @@ -56,6 +62,8 @@ Tirou Segurança 安全装置を外した 안전장치 해제됨 + 已开保险 + 已開保險 diff --git a/addons/sandbag/stringtable.xml b/addons/sandbag/stringtable.xml index 9a2b36e4175..a0dc9d592fb 100644 --- a/addons/sandbag/stringtable.xml +++ b/addons/sandbag/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Saco de Areia 土のう 모래주머니 + 沙包 + 沙包 Sandbag (empty) @@ -28,6 +30,8 @@ Saco de Areia (vazio) 土のう (空) 모래주머니(비어있음) + 沙包 (空) + 沙包 (空) Cannot build here @@ -42,6 +46,8 @@ Não pode contruir aqui ここでは作れない 여기에 지을 수 없습니다 + 无法放置在此 + 無法放置在此 Pick up Sandbag @@ -56,6 +62,8 @@ Pegar saco de areia 土のうを拾う 모래주머니 줍기 + 捡起沙包 + 撿起沙包 Carry Sandbag @@ -70,6 +78,8 @@ Carregar saco de areia 土のうを運ぶ 모래주머니 옮기기 + 搬运沙包 + 搬運沙包 End Carrying @@ -84,6 +94,8 @@ Parar de carregar 下ろす 그만 옮기기 + 停止搬运 + 停止搬運 Drop Sandbag @@ -98,6 +110,8 @@ Derrubar saco de areia 土のうを落とす 여기에 놓기 + 放下沙包 + 放下沙包 Confirm Deployment @@ -112,6 +126,8 @@ Confirmar implantação ここで作る 설치 확인 + 确认布署 + 確認佈署 Cancel Deployment @@ -126,6 +142,8 @@ Cancelar implantação 作るのをやめる 설치 취소 + 取消布署 + 取消佈署 Deploy Sandbag @@ -140,6 +158,8 @@ Implantar saco de areia 土のうを設置 모래주머니 설치 + 布署沙包 + 佈署沙包 Sandbag Box @@ -154,6 +174,8 @@ Caixa de saco de areia 土のう入れ 모래주머니 상자 + 沙包箱 + 沙包箱 Here is no sand @@ -168,6 +190,8 @@ Aqui não tem areia ここに土は無い 흙이 없습니다 + 这里没有沙 + 這裡沒有沙 Rotate @@ -182,6 +206,8 @@ Bращать 回転 돌리기 + 旋转 + 旋轉 diff --git a/addons/scopes/stringtable.xml b/addons/scopes/stringtable.xml index d36161e99d3..66a9729b28a 100644 --- a/addons/scopes/stringtable.xml +++ b/addons/scopes/stringtable.xml @@ -8,6 +8,8 @@ Celowniki optyczne Scopes Mirini + 瞄准镜 + 瞄準鏡 Enable ACE Scope adjustment @@ -16,6 +18,8 @@ Włącz ustawienia celowników optycznych ACE Active ACE Scope adjustment Abilita Regolazione mirino ACE + 开启ACE瞄准镜归零调节 + 開啟ACE瞄準鏡歸零調節 Enable adjustmet turrets on high powered scopes @@ -24,6 +28,8 @@ Włącz pokrętła regulacyjne Permet de régler la hausse et la dérive sur les optiques de visée à fort grossissement Abilita la regolazione delle torrette nei mirini a lunga gittata + 开启高倍率瞄准镜归零调节 + 開啟高倍率瞄準鏡歸零調節 Force adjustment turrets @@ -32,6 +38,8 @@ Wymuś użycie pokręteł regulacyjnych Impose le réglage de la hausse/dérive Forza la regolazione delle torrette + 强制使用归零调节 + 強制使用歸零調節 Force usage of adjustmet turrets on high powered scopes @@ -40,6 +48,8 @@ Wymuś użycie pokręteł regulacyjnych dla celowników o dużym powiększeniu Impose le réglage de la hausse/dérive sur les optiques de visée à fort grossissement Forza l'uso della regolazione nei mirini a lunga gittata + 强制为高倍率瞄准镜开启归零调节 + 強制為高倍率瞄準鏡開啟歸零調節 Correct zeroing @@ -48,6 +58,8 @@ Poprawka zerowania Corrige le zérotage Correggi azzeramento + 修正归零 + 修正歸零 Corrects the zeroing of all small arms sights @@ -56,6 +68,8 @@ Poprawia zerowanie wszystkich celowników broni ręcznej Corrige le zérotage des optiques de visée des petites armes Corregge l'azzeramento di tutti i mirini di bassa portata + 为所有小口径武器修正归零 + 為所有小口徑武器修正歸零 Overwrite zero distance @@ -64,6 +78,8 @@ Nadpisuje ustawienie dla zerowego dystansu Remplace la distance de zérotage Sovrascrivi la distanza zero + 覆写归零距离 + 覆寫歸零距離 Uses the 'defaultZeroRange' setting to overwrite the zero range of high power scopes @@ -72,6 +88,8 @@ Używa 'defaultZeroRange' zamiast ustawionej odległości zerowania dla celowników o duzym przybliżeniu Utilise le paramètre 'defaultZeroRange' pour remplacer la distance de zérotage sur les optiques de visée à fort grossissement Usa le impostazioni di "defaultZeroRange" (Portata Zero Predefinita) per sovrascrivere la portata zero dei mirini a lunga gittata + 使用'defaultZeroRange'来为高倍率瞄准镜覆写预设归零距离 + 使用'defaultZeroRange'來為高倍率瞄準鏡覆寫預設歸零距離 Default zero distance @@ -80,6 +98,8 @@ Domyślne zerowanie Distance de zérotage par défaut Distanza zero predefinita + 预设归零距离 + 預設歸零距離 High power scopes will be zeroed at this distance @@ -88,6 +108,8 @@ Celowniki o dużym powiększeniu będą zerowane dla tej odległości Distance de zérotage par défaut des optiques de visée à fort grossissement I mirini a lunga gittata verranno azzerrati a questa distanza + 高倍率瞄准镜将归零在这个距离上 + 高倍率瞄準鏡將歸零在這個距離上 Reference temperature @@ -96,6 +118,8 @@ Referencyjna temperatura Température de référence Temperatura di riferimento + 参考温度 + 參考溫度 Temperature at which the scope was zeroed @@ -104,6 +128,8 @@ Temperatura, przy której celownik został wyzerowany Température de référence pour le zérotage des optiques Temperatura a cui è stato azzerato il mirino + 武器参考多少温度来进行归零. + 武器參考多少溫度來進行歸零. Reference barometric pressure @@ -112,6 +138,8 @@ Referencyjne ciśnienie barometryczne Pression barométrique de référence Pressione barometrica di riferimento + 参考大气压力 + 參考大氣壓力 Barometric pressure at which the scope was zeroed @@ -120,6 +148,8 @@ Ciśnienie barometryczne, przy którym celownik został wyzerowany Pression barométrique de référence pour le zérotage des optiques Pressione barometrica a cui è stato azzerato il mirino + 武器参考多少大气压力来进行归零. + 武器參考多少大氣壓力來進行歸零. Reference humidity @@ -128,6 +158,8 @@ Referencyjna wilgotność Humidité de référence Umidità di riferimento + 参考湿度 + 參考濕度 Humidity at which the scope was zeroed @@ -136,6 +168,8 @@ Wilgotność powietrza, przy której celownik został wyzerowany Taux d'humidité de référence pour le zérotage des optiques Umidità a cui è stato azzerato il mirino + 武器参考多少湿度来进行归零. + 武器參考多少濕度來進行歸零. Deduce pressure from altitude @@ -144,6 +178,8 @@ Ciśnienie określone na podstawie wysokości Pression selon l'altitude Ricava la pressione dall'altitudine + 高度影响大气压力 + 高度影響大氣壓力 Deduce the barometric pressure from the terrain altitude @@ -152,6 +188,8 @@ Określ ciśnienie barometryczne na podstawie wysokości terenu Détermine la pression barométrique selon l'altitude du terrain Ricava la pressione barometrica dall'altitudine del terreno + 在不同高度上会有不同的大气压力 + 在不同高度上會有不同的大氣壓力 Minor adjustment up @@ -166,6 +204,8 @@ Korekce nahoru (mírně) 僅かに上へ調節 위로 조절 + 向上微调 + 向上微調 Minor adjustment down @@ -180,6 +220,8 @@ Korekce dolů (mírně) 僅かに下へ調節 아래로 조절 + 向下微调 + 向下微調 Minor adjustment right @@ -194,6 +236,8 @@ Korekce doprava (mírně) 僅かに右へ調節 오론쪽으로 조절 + 向右微调 + 向右微調 Minor adjustment left @@ -208,6 +252,8 @@ Korekce doleva (mírně) 僅かに左へ調節 왼쪽으로 조절 + 向左微调 + 向左微調 Major adjustment up @@ -222,6 +268,8 @@ Korekce nahoru 大きく上へ調節 크게 위로 조절 + 向上调整 + 向上調整 Major adjustment down @@ -236,6 +284,8 @@ Korekce dolů 大きく下へ調節 크게 아래로 조절 + 向下调整 + 向下調整 Major adjustment right @@ -250,6 +300,8 @@ Korekce doprava 大きく右へ調節 크게 오른쪽으로 조절 + 向右调整 + 向右調整 Major adjustment left @@ -264,6 +316,8 @@ Korekce doleva 大きく左へ調節 크게 왼쪽으로 조절 + 向左调整 + 向左調整 Set zero adjustment @@ -278,6 +332,8 @@ Vynulovat korekci ゼロインを調節 영점 초기화 + 设定归零 + 設定歸零 This module adds windage and elevation adjustment turrets on high power rifle scopes. @@ -286,6 +342,8 @@ Ten moduł włącza pokrętła kalibracyjne poprawki na wiatr oraz poprawki wysokości dla celowników o dużym powiększeniu. Ce module ajoute les tambours de correction de la hausse et de dérive sur les optiques de visée à fort grossissement. Questo modulo aggiunge lo spostamento dell'aria e la regolazione dell'elevazione delle torrette in mirini a lunga gittata + 此模块可为高倍率瞄准镜新增归零风偏, 距离用的调整纽. + 此模塊可為高倍率瞄準鏡新增歸零風偏, 距離用的調整紐. diff --git a/addons/slideshow/stringtable.xml b/addons/slideshow/stringtable.xml index 213834841d7..68d0f9d5893 100644 --- a/addons/slideshow/stringtable.xml +++ b/addons/slideshow/stringtable.xml @@ -14,6 +14,8 @@ Mostra Diapositive スライドショー 슬라이드 쇼 + 幻燈片 + 幻灯片 This module allows you to set up slide-shows on different objects. One module per image list. Only objects with hiddenSelection 0 are supported. @@ -28,6 +30,8 @@ Questo modulo ti permette di creare una presentazione con diapositive su vari oggetti. Un modulo per lista immagini. Solo oggetti con hiddenSelection 0 sono supportati. さまざまなオブジェクトへスライドショーを設定することができます。1つのモジュールは各画像リストになっています。オブジェクトが hiddenSelection 0へ対応している必要があります。 이 모듈은 다른 물체에 대해 슬라이드 쇼를 놓을 수 있게 해줍니다. 한 모듈당 한 이미지목록만 가능합니다. 또한 물체가 hiddenSelection 0 를 지원해야만합니다. + 此模塊可讓圖片以幻燈片的形式顯示在物件上. 每個模塊都能設定一串幻燈片清單. 被設定的物件不能有隱藏部位(hiddenSelection). + 此模块可让图片以幻灯片的形式显示在物件上. 每个模块都能设定一串幻灯片清单. 被设定的物件不能有隐藏部位(hiddenSelection). Objects @@ -42,6 +46,8 @@ Oggetti オブジェクト 물체 + 物件 + 物件 Object names (can also be synchronized objects) slide-show will be displayed on, separated by commas if multiple. @@ -56,6 +62,8 @@ Nomi di oggetti (possono anche essere oggetti sincronizzati) che verranno usati per la presentazione di diapositive, separato da virgole se più di uno. スライドショーを表示するオブジェクト名 (オブジェクトとの同期も可)。複数ある場合はコンマで区切れます 슬라이드 쇼가 보여질 물체(동기화 되는 물체도 가능합니다) 명칭, 다수의 경우 쉼표로 구분합니다. + 物件名稱 (也可使用同步線來設定), 幻燈片將會顯示在該物件上, 如有多個物件, 請以逗號作區隔. + 物件名称 (也可使用同步线来设定), 幻灯片将会显示在该物件上, 如有多个物件, 请以逗号作区隔. Controllers @@ -70,6 +78,8 @@ Controllori コントローラ 조종 장치 + 控制器 + 控制器 Controller object names, separated by commas if multiple. @@ -83,6 +93,8 @@ Nomi di oggetti controllori, separati da virgole se multipli. コントローラに指定するオブジェクト名を記入し、複数ある場合はコンマで区切れます。 조종 장치 물체 명칭, 다수의 경우 쉼표로 구분됩니다. + 指定是控制器的物件名稱, 如有多個物件, 請以逗號作區隔. + 指定是控制器的物件名称, 如有多个物件, 请以逗号作区隔. Images @@ -97,6 +109,8 @@ Immagini 画像 사진 + 圖片 + 图片 List of images that will be used for the slide-show, separated by commas, with full path correctly formatted (eg. images\image.paa). @@ -111,6 +125,8 @@ Lista di immagini che verranno usate durante la presentazione, separati da virgole, con il formato completo del percorso (es. images\image.paa) 完全なパスでスライドショーに使う画像一覧を入力してください。コンマで区別できます。(例: images\image.paa) 슬라이드 쇼에 쓰일 사진목록입니다, 쉼표로 구분됩니다, 경로설정을 정확히 하십시요. (예: 사진\사진.ppa) + 要做為幻燈片的圖片清單, 每個圖片請已逗號區隔, 並輸入完整路徑位址 (例如:images\image.paa). + 要做为幻灯片的图片清单, 每个图片请已逗号区隔, 并输入完整路径位址 (例如:images\image.paa). Interaction Names @@ -125,6 +141,8 @@ Interaktionsnamen インタラクション名 상호작용 명칭 + 互動鍵名稱 + 互动键名称 List of names that will be used for interaction entries, separated by commas, in order of images. @@ -138,6 +156,8 @@ Liste aller Namen, die für Interaktionseinträge genutzt werden. Mit Kommata getrennt, in Reihenfolge der Bilder. 画像を操作できるインタラクション エントリ名の一覧を入力してください。コンマで区切り複数を指定できます。 상호작용 메세지에 쓰일 명칭입니다, 쉼표로 구분합니다, 이미지의 순서입니다. + 設定互動鍵切換圖片時的按鈕名稱, 多個按鈕請以逗號做區隔, 有多少圖片就輸入多少個按鈕, 以利切換圖片. + 设定互动键切换图片时的按钮名称, 多个按钮请以逗号做区隔, 有多少图片就输入多少个按钮, 以利切换图片. Set Name @@ -145,6 +165,8 @@ 名前設定 Définir le nom Imposta Nome + 設定名稱 + 设定名称 Name that will be used for main interaction entry (to distinguish multiple slideshows). Default: "Slides" @@ -152,6 +174,8 @@ メイン インタラクション エントリで使われる名前を設定します。(複数のスライドショーを区別するため)。標準: "Slides" Un nom qui sera utilisé pour interagir avec plusieurs diaporamas. Par défaut : "Slides" Nome che sarà utilizzato per le principali interazioni (per distinguere le multiple diapositive). Predefinito: "Slides" + 設定該幻燈片的標題名稱 (用來區分多個不同標題的幻燈片.) 預設名稱: "幻燈片" + 设定该幻灯片的标题名称 (用来区分多个不同标题的幻灯片.) 预设名称: "幻灯片" Slide Duration @@ -166,6 +190,8 @@ Länge der Diavorführung pro Bild スライドの持続時間 슬라이드 지속시간 + 幻燈片顯示時間 + 幻灯片显示时间 Duration of each slide. Default: 0 (Automatic Transitions Disabled) @@ -180,6 +206,8 @@ Länge der Diavorführung pro Bild. Standard: 0 (Automatischer Wechsel deaktiviert) 各スライドの持続時間。標準:0 (自動的な切り替えは無効) 매 슬라이드의 지속시간. 기본설정: 0 (자동 전환 비활성화) + 每張幻燈片顯示的時間. 預設:0 (自動換圖已禁用) + 每张幻灯片显示的时间. 预设:0 (自动换图已禁用) Slides @@ -194,6 +222,8 @@ Dias スライド 슬라이드 + 幻燈片 + 幻灯片 diff --git a/addons/spectator/stringtable.xml b/addons/spectator/stringtable.xml index 68c8e79ea5a..1dc7fe26557 100644 --- a/addons/spectator/stringtable.xml +++ b/addons/spectator/stringtable.xml @@ -6,6 +6,8 @@ ACE スペクテイター Spettatore ACE Spectateur ACE + ACE 旁观者 + ACE 旁觀者 Spectator Settings @@ -19,6 +21,8 @@ Réglages de spectateur スペクテイター設定 관전자 설정 + 旁观者设定 + 旁觀者設定 Configure how the spectator system will operate by default. @@ -32,6 +36,8 @@ Configure comment le système de spectateurs opère par défaut. スペクテイター システムが標準でどのように動作するか設定できます。 어떻게 관전자 시스템이 기본적으로 작동되는지 설정합니다 + 设定旁观者系统相关配置. + 設定旁觀者系統相關配置. Unit filter @@ -45,6 +51,8 @@ Filtre d'unités ユニット フィルタ 인원 필터 + 单位过滤器 + 單位過濾器 Method of filtering spectatable units. @@ -58,6 +66,8 @@ Méthode de filtration des unités regardables. 観察できるユニットへのフィルタ設定ができます。 관전할 수 있는 인원을 고릅니다 + 过滤哪些单位可以使用旁观者系统. + 過濾哪些單位可以使用旁觀者系統. No units @@ -71,6 +81,8 @@ Pas d'unités ユニットなし 인원 없음 + 无单位 + 無單位 Only players @@ -84,6 +96,8 @@ Joueurs seulements プレイヤのみ 플레이어만 + 只有玩家 + 只有玩家 Playable Units @@ -97,6 +111,8 @@ Unités jouables プレイ可能なユニットのみ 플레이 가능한 인원 + 可扮演单位 + 可扮演單位 All units @@ -110,6 +126,8 @@ Toutes les unités 全てのユニット 모든 인원 + 所有单位 + 所有單位 Side filter @@ -123,6 +141,8 @@ Filtre de faction 勢力フィルタ 진영 필터 + 阵营过滤器 + 陣營過濾器 Method of filtering spectatable sides. @@ -136,6 +156,8 @@ Méthode de filtration des factions regardables 観察できる勢力へのフィルタ設定ができます。 관전할 수 있는 진영을 고릅니다 + 过滤可旁观的阵营. + 過濾可旁觀的陣營. Player side @@ -149,6 +171,8 @@ Faction du joueur プレイヤーと同じ勢力 플레이어 진영 + 玩家 + 玩家 Friendly sides @@ -162,6 +186,8 @@ Factions amies 友軍勢力 아군 진영 + 友军 + 友軍 Hostile sides @@ -175,6 +201,8 @@ Factions hostiles 敵対勢力 적군 진영 + 敌方 + 敵方 All sides @@ -188,6 +216,8 @@ Toutes les factions 全ての勢力 모든 진영 + 所有阵营 + 所有陣營 Camera modes @@ -201,6 +231,8 @@ Mode de caméra カメラ モード 카메라 모드 + 摄影机模式 + 攝影機模式 Camera modes that can be used. @@ -214,6 +246,8 @@ Modes de caméra qui peuvent être utilisés カメラ モードを使えます。 사용할 수 있는 카메라 모드들 입니다 + 设定可使用的摄影机模式. + 設定可使用的攝影機模式. All @@ -227,6 +261,8 @@ Tous 全て 모두 + 所有 + 所有 Free only @@ -240,15 +276,17 @@ Libre seulement 自由視点のみ 오직 자유만 + 只有自由模式 + 只有自由模式 Internal only Erste Person //Bitte überprüfen! - Tylko wewnętrznaSomente internaТолько внутренняяPouze pohled z první osobySolo internaSolo internaInterne seulement一人称視点のみ오직 내부만 + Tylko wewnętrznaSomente internaТолько внутренняяPouze pohled z první osobySolo internaSolo internaInterne seulement一人称視点のみ오직 내부만只有第一人称只有第一人稱 External only Dritte Person //Bitte überpfüfen! - Tylko zewnętrznaSomente externaТолько внешняяPouze pohled z třetí osobySolo externaSolo esternaExterne seulement三人称視点のみ오직 외부만 + Tylko zewnętrznaSomente externaТолько внешняяPouze pohled z třetí osobySolo externaSolo esternaExterne seulement三人称視点のみ오직 외부만只有第三人称只有第三人稱 Internal and external Erste und dritte Person @@ -261,6 +299,8 @@ Interne et externe 一人称と三人称視点 외부 및 내부 + 第一和第三人称 + 第一和第三人稱 Vision modes @@ -274,6 +314,8 @@ Modes de vision ビジョン モード 시야 모드 + 视觉模式 + 視覺模式 Vision modes that can be used. @@ -287,6 +329,8 @@ Modes de visions qui peuvent être utilisés ビジョン モードを使えます。 사용할 수 있는 시야 모드들 입니다 + 设定可使用的视觉模式. + 設定可使用的視覺模式. Night vision @@ -300,6 +344,8 @@ Vision nocturne 夜間暗視 야간투시경 + 夜视 + 夜視 Thermal imaging @@ -313,6 +359,8 @@ Vision thermique 熱源画像 열화상 + 热成像 + 熱成像 @@ -327,6 +375,8 @@ Unités spectatrices スペクテイター ユニット 관전 인원 + 旁观者单位 + 旁觀者單位 Spectator Controls @@ -340,6 +390,8 @@ Contrôles de spectateur スペクテイター操作 관전 조작 + 旁观者控制 + 旁觀者控制 Free @@ -353,15 +405,17 @@ Libre 自由視点 자유 + 自由模式 + 自由模式 Internal Erste Person //Bitte überprüfen! - WewnętrznaInternaВнутренняяPohled z první osobyInternaInternaInterne一人称視点내부 + WewnętrznaInternaВнутренняяPohled z první osobyInternaInternaInterne一人称視点내부第一人称第一人稱 External Dritte Person //Bitte überprüfen! - ZewnętrznaExternaВнешняяPohled z třetí osobyExternaEsternaExterne三人称視点외부 + ZewnętrznaExternaВнешняяPohled z třetí osobyExternaEsternaExterne三人称視点외부第三人称第三人稱 Normal Normal @@ -374,6 +428,8 @@ Normale 通常 정상 + 正常 + 正常 Night @@ -387,6 +443,8 @@ Nuit 暗視装置 야간 + 夜视 + 夜視 Thermal @@ -400,6 +458,8 @@ Thermique 熱源画像 열상 + 热成像 + 熱成像 @@ -414,6 +474,8 @@ Caméra libre 自由視点 자유 카메라 + 自由摄影机 + 自由攝影機 Camera Forward @@ -427,6 +489,8 @@ Caméra en avant カメラを前に 카메라 앞으로 + 摄影机往前 + 攝影機往前 Camera Backward @@ -440,6 +504,8 @@ Caméra en arrière カメラを後ろに 카메라 뒤로 + 摄影机往后 + 攝影機往後 Camera Left @@ -453,6 +519,8 @@ Caméra à gauche カメラを左に 카메라 왼쪽으로 + 摄影机往左 + 攝影機往左 Camera Right @@ -466,6 +534,8 @@ Caméra à droite カメラを右に 카메라 오른쪽으로 + 摄影机往右 + 攝影機往右 Camera Up @@ -479,6 +549,8 @@ Caméra en haut カメラを上に 카메라 위로 + 摄影机往上 + 攝影機往上 Camera Down @@ -492,6 +564,8 @@ Caméra en bas カメラを下に 카메라 아래로 + 摄影机往下 + 攝影機往下 Pan Camera @@ -505,6 +579,8 @@ Tourner la caméra カメラを振る 카메라 돌리기 + 平移摄影机 + 平移攝影機 Dolly Camera @@ -518,6 +594,8 @@ Bouger la caméra カメラを動かす 카메라 추적 + 移动摄影机 + 移動攝影機 Lock Camera to Target @@ -531,6 +609,8 @@ Verrouiller la caméra sur la cible カメラを目標に固定 목표에 카메라 고정 + 锁定摄影机观察单一目标 + 鎖定攝影機觀察單一目標 Speed Boost @@ -544,6 +624,8 @@ Boost de vitesse 速度の増加 속도 증가 + 速度提升 + 速度提升 Interface @@ -557,6 +639,8 @@ Interface インターフェイス 인터페이스 + 介面 + 介面 Toggle Interface @@ -570,6 +654,8 @@ Bascule de l'interface インターフェイスをトグル 인터페이스 토글 + 切换介面 + 切換介面 Toggle Unit Icons @@ -583,6 +669,8 @@ Bascule des icônes des unités ユニット アイコンをトグル 인원 아이콘 토글 + 切换单位图示 + 切換單位圖示 Toggle Unit List @@ -596,6 +684,8 @@ Bascule de la liste des unités ユニット一覧をトグル 인원 목록 토글 + 切换单位名单 + 切換單位名單 Toggle Toolbar @@ -609,6 +699,8 @@ Bascule de la barre d'outils ツールバーをトグル 툴바 토글 + 切换工具栏 + 切換工具欄 Toggle Compass @@ -622,6 +714,8 @@ Basculer le compas 方位磁石をトグル 나침반 토글 + 切换指北针 + 切換指北針 Toggle Map @@ -635,6 +729,8 @@ Basculer la carte 地図をトグル 지도 토글 + 切换地图 + 切換地圖 Toggle Help @@ -648,6 +744,8 @@ Basculer l'aide ヘルプをトグル 도움 토글 + 切换帮助 + 切換幫助 Camera Attributes @@ -661,6 +759,8 @@ Propriétés de la caméra カメラ高度 카메라 속성 + 摄影机属性 + 攝影機屬性 Next Camera @@ -674,6 +774,8 @@ Caméra suivante 次のカメラ 다음 카메라 + 下个镜头 + 下個鏡頭 Previous Camera @@ -687,6 +789,8 @@ Caméra précédente 前のカメラ 이전 카메라 + 上个镜头 + 上個鏡頭 Next Unit @@ -700,6 +804,8 @@ Unité suivante 次のユニット 다음 인원 + 下个单位 + 下個單位 Previous Unit @@ -713,6 +819,8 @@ Unité précédente 前のユニット 이전 인원 + 上个单位 + 上個單位 Next Vision Mode @@ -726,6 +834,8 @@ Mode de vision suivant 次のビジョン モード 다음 시야 모드 + 下个视觉模式 + 下個視覺模式 Previous Vision Mode @@ -739,6 +849,8 @@ Mode de vision précédent 前のビジョン モード 이전 시야 모드 + 上个视觉模式 + 上個視覺模式 Adjust Zoom @@ -752,6 +864,8 @@ Ajuster le zoom 拡大倍率を調節 줌 조절 + 调整倍率 + 調整倍率 Adjust Speed @@ -765,6 +879,8 @@ Ajuster la vitesse 速度を調節 속도 조절 + 调整速度 + 調整速度 Increment Zoom @@ -778,6 +894,8 @@ Augmenter le zoom 拡大倍率を増やす 줌 증가 + 增加放大 + 增加放大 Increment Speed @@ -791,6 +909,8 @@ Augmenter la vitesse 速度を増やす 속도 증가 + 增加速度 + 增加速度 Reset Zoom @@ -804,6 +924,8 @@ RAZ zoom 拡大倍率を初期化 줌 초기화 + 重置缩放 + 重置縮放 Reset Speed @@ -817,6 +939,8 @@ RAZ vitesse 速度を初期化 속도 초기화 + 重置速度 + 重置速度 diff --git a/addons/spottingscope/stringtable.xml b/addons/spottingscope/stringtable.xml index 00ba2e2eb9c..cfdbaa05f75 100644 --- a/addons/spottingscope/stringtable.xml +++ b/addons/spottingscope/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Luneta de observador 観測用スコープ 감적 망원경 + 观测镜 + 觀測鏡 Pick up Spotting Scope @@ -28,6 +30,8 @@ Pegar luneta de observador 観測用スコープを拾う 감적 망원경 줍기 + 捡起观测镜 + 撿起觀測鏡 Place Spotting Scope @@ -42,6 +46,8 @@ Colocar luneta de observador 観測用スコープを置く 감적 망원경 배치 + 放置观测镜 + 放置觀測鏡 diff --git a/addons/switchunits/stringtable.xml b/addons/switchunits/stringtable.xml index c86142c877e..d33ab11bbbf 100644 --- a/addons/switchunits/stringtable.xml +++ b/addons/switchunits/stringtable.xml @@ -14,6 +14,8 @@ Trocado de unidade ユニットを切り替え 인원으로 전환 + 切换单位 + 切換單位 Trying to switch @@ -27,6 +29,8 @@ Попытка переключения 切り替えを試す 전환 시도중 + 尝试切换中 + 嘗試切換中 This unit is too close to the enemy. @@ -41,6 +45,8 @@ Essa unidade está muito perto do inimigo. このユニットは敵に近すぎます。 그 인원은 적과 너무 가깝습니다. + 这单位太接近敌人了. + 這單位太接近敵人了. SwitchUnits System @@ -55,6 +61,8 @@ Sistema Cambio Unità SwitchUnits システム 인원전환 시스템 + 切换单位系统 + 切換單位系統 Switch to West? @@ -69,6 +77,8 @@ Cambia per BLUFOR? ウエストへ切り替えますか? 서방으로 전환합니까? + 切换至蓝方? + 切換至藍方? Allow switching to west units? @@ -83,6 +93,8 @@ Consenti passaggio ad unità BLUFOR? ウエスト側ユニットへ切り替えられるようにしますか? 서방 인원으로 전환합니까? + 允许切换至蓝方? + 允許切換至藍方? Switch to East? @@ -97,6 +109,8 @@ Cambia per OPFOR? イースト側へ切り替えますか? 동방으로 전환합니까? + 切换至红方? + 切換至紅方? Allow switching to east units? @@ -111,6 +125,8 @@ Consenti passaggio ad unità OPFOR? イースト側ユニットへ切り替えられるようにしますか? 동방인원으로 전환합니까? + 允许切换至红方? + 允許切換至紅方? Switch to Independent? @@ -125,6 +141,8 @@ Cambia per INDFOR? インデペンデントへ切り替えますか? 중립으로 전환합니까? + 切换至独立方? + 切換至獨立方? Allow switching to independent units? @@ -139,6 +157,8 @@ Consenti passaggio ad unità INDFOR? インデペンデント側ユニットへ切り替えられるようにしますか? 중립 인원으로 전환합니까? + 允许切换至独立方? + 允許切換至獨立方? Switch to Civilian? @@ -153,6 +173,8 @@ Cambia per Civili? シビリアンへ切り替えますか? 민간인으로 전환합니까? + 切换至平民方? + 切換至平民方? Allow switching to civilian units? @@ -167,6 +189,8 @@ Consenti passaggio ad unità civili? シビリアン側ユニットへ切り替えられるようにしますか? 민간인으로 전환하는걸 허가합니까? + 允许切换至平民方? + 允許切換至平民方? Enable Safe Zone? @@ -181,6 +205,8 @@ Abilita Zona Sicura? 安全地帯を有効にしますか? 안전 지대 활성화? + 启用安全区? + 啟用安全區? Enable a safe zone around enemy units? Players can't switch to units inside of the safe zone. @@ -195,6 +221,8 @@ Abilita una zona sicura attorno ad unità nemiche? I giocatori non possono cambiare ad unità dentro la zona sicura. 敵ユニットから逃れる安全地帯を有効にしますか?プレイヤーは安全地帯内のユニットへ切り替えできません。 적 주위로 안전 지대를 활성화합니까? 안전 지대 내에서는 플레이어가 인원 전환을 할 수 없습니다. + 启用敌方周围安全地带? 玩家不能切换到安全区内的单位. + 啟用敵方周圍安全地帶? 玩家不能切換到安全區內的單位. Safe Zone Radius @@ -209,6 +237,8 @@ Raggio Zona Sicura 安全地帯の半径 안전 지대 반경 + 安全区半径 + 安全區半徑 The safe zone around players from a different team. Default: 200 @@ -223,6 +253,8 @@ La zona sicura attorno ai giocatori di un team diverso. Default: 200 別のチームへのプレイヤーの周囲にある安全地帯の範囲。標準:200 다른 진영으로 부터의 플레이어 안전 지대. 기본설정: 200 + 安全区的范围. 预设值:200 + 安全區的範圍. 預設值:200 Module allows you to switch side during the game. @@ -236,6 +268,8 @@ El módulo permite a las unidades cambiar de bando durante el juego. モジュールはゲームにおいて、陣営の切り替えを有効にします。 이 모듈은 당신을 게임 중에 진영을 바꿀 수 있게 해줍니다. + 此模块允许你在游戏中切换至另一方. + 此模塊允許你在遊戲中切換至另一方. diff --git a/addons/tacticalladder/stringtable.xml b/addons/tacticalladder/stringtable.xml index 18c817c7f23..af9ca6ef5f9 100644 --- a/addons/tacticalladder/stringtable.xml +++ b/addons/tacticalladder/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Escada telescópica タクティカル ラダー 로프 사다리 + 伸缩梯子 + 伸縮梯子 Deploy ladder @@ -28,6 +30,8 @@ Implantar escada ラダーを設置 사다리 배치 + 布署梯子 + 佈署梯子 Drop ladder @@ -42,6 +46,8 @@ Derrubar escada ラダーを落とす 사다리 놓기 + 降下梯子 + 降下梯子 Extend @@ -55,6 +61,8 @@ Déployer 伸ばす 늘리기 + 伸长梯子 + 伸長梯子 +Ctrl tilt @@ -68,6 +76,8 @@ +Ctrl per inclinare +Ctrl で傾ける +컨트롤키 기울이기 + +Ctrl 倾斜 + +Ctrl 傾斜 Position ladder @@ -82,6 +92,8 @@ Posicionar escada ラダーの位置 사다리 위치 + 梯子位置 + 梯子位置 Pickup ladder @@ -96,6 +108,8 @@ Pegar escada ラダーを拾う 사다리 줍기 + 捡起梯子 + 撿起梯子 diff --git a/addons/tagging/stringtable.xml b/addons/tagging/stringtable.xml index ab5866dbfa2..0af736e11be 100644 --- a/addons/tagging/stringtable.xml +++ b/addons/tagging/stringtable.xml @@ -10,6 +10,8 @@ 뿌리기 Marquage Marcamento + 喷漆 + 噴漆 Configure how the tagging system will operate by default. @@ -20,6 +22,8 @@ 뿌리기 시스템의 기본사항을 설정합니다. Configure le fonctionnement par défaut du système de marquage. Configura quanto il sistema di marcamento agirà da se. + 定义喷漆系统预设设定. + 定義噴漆系統預設設定. Quick Tag @@ -30,6 +34,8 @@ 빠른 뿌리기 Marquage rapide Marcamento Rapido + 快速喷漆 + 快速噴漆 Action performed on main tag interaction point. @@ -40,6 +46,8 @@ 이 동작은 상호작용에서 뿌리기를 할 수 있게 해준다 Action réalisé au point de marquage principal. Azione eseguita sul punto di interazione dei tag principali. + 直接喷漆在互动选单瞄准的点上. + 直接噴漆在互動選單瞄準的點上. Last Used @@ -50,6 +58,8 @@ 최근 사용 Dernier utilisé Ultimo Usato + 上次最后使用 + 上次最後使用 Random X @@ -60,6 +70,8 @@ 무작위 X Aléatoire X Random X + 随机X标记 + 隨機X標記 Random @@ -70,6 +82,8 @@ 무작위 Aléatoire Random + 随机 + 隨機 Tag @@ -83,6 +97,8 @@ タグ 뿌리기 Tag + 喷漆 + 噴漆 X black @@ -96,6 +112,8 @@ Черный Х 黒の X印 검정 X + 黑色X标记 + 黑色X標記 X red @@ -109,6 +127,8 @@ Красный Х 赤の X印 빨간 X + 红色X标记 + 紅色X標記 X green @@ -122,6 +142,8 @@ Зеленый Х 緑の X印 초록 X + 绿色X标记 + 綠色X標記 X blue @@ -135,6 +157,8 @@ Синий Х 青の X印 파랑 X + 蓝色X标记 + 藍色X標記 Black spray paint @@ -148,6 +172,8 @@ Черный спрей 黒のスプレー缶 검정 스프레이 + 黑色喷漆 + 黑色噴漆 Red spray paint @@ -161,6 +187,8 @@ Красный спрей 赤のスプレー缶 빨강 스프레이 + 红色喷漆 + 紅色噴漆 Green spray paint @@ -174,6 +202,8 @@ Зеленый спрей 緑のスプレー缶 초록 스프레이 + 绿色喷漆 + 綠色噴漆 Blue spray paint @@ -187,6 +217,8 @@ Синий спрей 青のスプレー缶 파랑 스프레이 + 蓝色喷漆 + 藍色噴漆 A can of spray paint for tagging walls. @@ -200,6 +232,8 @@ Балончик спрея для рисования маркеров на стенах. スプレー缶は壁にタグ付できます。 벽에 뿌릴 수 있는 스프레이캔 입니다. + 喷漆可喷涂在墙壁上. + 噴漆可噴塗在牆壁上. diff --git a/addons/trenches/stringtable.xml b/addons/trenches/stringtable.xml index 1fee5489dff..3c21da92418 100644 --- a/addons/trenches/stringtable.xml +++ b/addons/trenches/stringtable.xml @@ -13,6 +13,8 @@ Саперная лопата シャベル 야전삽 + 战备锹 + 戰備鍬 Entrenching Tool @@ -26,6 +28,8 @@ Саперная лопата シャベル 야전용 삽. 군인들의 영원한 친구 + 战备锹 + 戰備鍬 Envelope - Small @@ -38,6 +42,8 @@ Окоп - Малый 塹壕 - 小型 참호 - 소형 + 掩体 - 小 + 掩體 - 小 Small Personal Trench @@ -51,6 +57,8 @@ Малый персональный окоп 小型の個人用塹壕 소형 개인참호 + 小型个人掩体 + 小型個人掩體 Dig Small Trench @@ -64,6 +72,8 @@ Вырыть малый окоп 小型塹壕を掘る 소형참호 파기 + 盖小掩体 + 蓋小掩體 Envelope - Big @@ -76,6 +86,8 @@ Окоп - Большой 塹壕 - 大型 참호 - 대형 + 掩体 - 大 + 掩體 - 大 Large Personal Trench @@ -89,6 +101,8 @@ Большой персональный окоп 大型の塹壕を掘る 대형 참호 + 大型个人掩体 + 大型個人掩體 Dig Big Trench @@ -102,6 +116,8 @@ Вырыть большой окоп 大型の塹壕を掘る 대형참호 파기 + 盖大掩体 + 蓋大掩體 Confirm Dig @@ -115,6 +131,8 @@ Копать ここに掘る 여기에 파기 + 确认开工 + 確認開工 Cancel Dig @@ -128,6 +146,8 @@ Отменить копание 掘るのを中止 취소하기 + 取消动作 + 取消動作 Rotate @@ -142,6 +162,8 @@ Bращать 回転 돌리기 + 旋转 + 旋轉 Digging Trench @@ -155,6 +177,8 @@ Копание окопа 塹壕を掘っている 참호 파는중 + 正在盖掩体中 + 正在蓋掩體中 Continue Digging Trench @@ -167,6 +191,8 @@ Graben fortsetzen 계속해서 참호파기 Continua a Scavare la Trincea + 继续盖掩体 + 繼續蓋掩體 Remove Trench @@ -179,6 +205,8 @@ Schützengraben entfernen 참호 제거 Rimuove Trincea + 移除掩体 + 移除掩體 Removing Trench @@ -191,6 +219,8 @@ Entferne Schützengraben 참호 제거중... Rimuovendo la Trincea + 移除掩体中 + 移除掩體中 diff --git a/addons/tripod/stringtable.xml b/addons/tripod/stringtable.xml index 557900ee96f..1647e397460 100644 --- a/addons/tripod/stringtable.xml +++ b/addons/tripod/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Kit SSWT SSWT キット SSWT 키트 + 狙击手专用三脚架 + 狙擊手專用三腳架 Place SSWT Kit @@ -28,6 +30,8 @@ Colocar kit SSWT SSWT キットを置く SSWT 키트 배치 + 放置狙击手专用三脚架 + 放置狙擊手專用三腳架 Pick up SSWT Kit @@ -42,6 +46,8 @@ Prendi Kit SSWT SSWT キットを拾う SSWT 키트 줍기 + 捡起狙击手专用三脚架 + 撿起狙擊手專用三腳架 Adjust SSWT Kit @@ -56,6 +62,8 @@ Aggiusta Kit SSWT SSWT キットを調節 SSWT 키트 조절 + 调整狙击手专用三脚架 + 調整狙擊手專用三腳架 Done @@ -70,6 +78,8 @@ Fatto 完了 완료 + 完成 + 完成 adjust @@ -84,6 +94,8 @@ aggiusta 調節 조절 + 调整 + 調整 diff --git a/addons/ui/stringtable.xml b/addons/ui/stringtable.xml index 1bc2f8d888d..4d2c24c645b 100644 --- a/addons/ui/stringtable.xml +++ b/addons/ui/stringtable.xml @@ -12,6 +12,8 @@ Benutzeroberfläche 사용자 인터페이스 Interfaccia Utente + 使用者介面 + 使用者介面 User Interface @@ -24,6 +26,8 @@ Benutzeroberfläche 사용자 인터페이스 Interfaccia Utente + 使用者介面 + 使用者介面 This module allows toggling visible user interface parts. @@ -35,6 +39,8 @@ Dieses Modul erlaubt es, Teile der Benutzeroberfläche (UI) an- oder auszuschalten. 이 모듈은 사용자 인터페이스의 부분을 토글하는것을 가능케 해줍니다. Questo modulo consente di commutare parti di interfaccia utente visibili. + 此模块允许你调整使用者介面的任何一个元件. + 此模塊允許你調整使用者介面的任何一個元件. Allow Selective UI @@ -47,6 +53,8 @@ Erlaube selektives UI 선택적 사용자 인터페이스 허가 Permette l'UI Selettiva + 允许调整使用者介面 + 允許調整使用者介面 Allow client to modify their UI. @@ -59,6 +67,8 @@ Erlaube Clients, ihr UI zu modifizieren. 클라이언트가 선택적 사용자 인터페이스 사용하는것을 허가합니다 Permette al client di modificare la propria UI. + 允许客户端自行调整使用者介面. + 允許客戶端自行調整使用者介面. Soldier/Vehicle/Weapon Information @@ -71,6 +81,8 @@ Soldat/Fahrzeug/Waffe Information 병사/차량/무기 정보 Informazioni Soldato/Veicolo/Arma + 士兵/载具/武器资讯栏 + 士兵/載具/武器資訊欄 Vehicle Radar @@ -83,6 +95,8 @@ Fahrzeugradar 차량 레이더 Rada Veicolo + 载具雷达 + 載具雷達 Vehicle Compass @@ -95,6 +109,8 @@ Fahrzeugkompass 차량 나침반 Bussola Veicolo + 载具指北针 + 載具指北針 Command Menu @@ -107,6 +123,8 @@ Kommandomenü 지휘 메뉴 Menù di Comando + 指挥选单 + 指揮選單 Group Bar @@ -119,6 +137,8 @@ Gruppenleiste 그룹 막대 Barra del Gruppo + 小队状态栏 + 小隊狀態欄 Weapon Name @@ -131,6 +151,8 @@ Waffenname 무기 이름 Nome Arma + 武器名称 + 武器名稱 Weapon Name Background @@ -143,6 +165,8 @@ Waffenname Hintergrund 무기 이름 배경 Nome Sfondo Arma + 武器名称背景 + 武器名稱背景 Firing Mode @@ -155,6 +179,8 @@ Feuermodus 사격 모드 Modalità di Fuoco + 射击模式 + 射擊模式 Ammo Type @@ -167,6 +193,8 @@ Munitionstyp 탄종 Tipo Munizioni + 弹药类型 + 彈藥類型 Ammo Count @@ -179,6 +207,8 @@ Munitionsanzahl 탄약수 Contatore Munizioni + 弹药数量 + 彈藥數量 Magazine Count @@ -191,6 +221,8 @@ Magazinanzahl 탄창수 Contatore Caricatore + 弹匣数量 + 彈匣數量 Throwable Type @@ -203,6 +235,8 @@ Wurfobjekt-Typ 투척물 종류 Tipo Lanciabile + 投掷物类型 + 投擲物類型 Throwable Count @@ -215,6 +249,8 @@ Wurfobjekt-Anzahl 투척물 개수 Contatore Lanciabili + 投掷物数量 + 投擲物數量 Zeroing @@ -227,6 +263,8 @@ Nullung 영점 Azzeramento + 归零距离 + 歸零距離 Weapon Lower Info Background @@ -238,6 +276,8 @@ Hintergrund der unteren Waffen-Info-Leiste 무기 상세 정보 배경 Informazioni Sfondo Arma Bassa + 武器底部资讯栏背景 + 武器底部資訊欄背景 Stance @@ -250,6 +290,8 @@ Haltung 자세 Postura + 姿态 + 姿態 Stamina Bar @@ -262,6 +304,8 @@ Ausdaueranzeige 체력 막대 Barra Stamina + 体力栏 + 體力欄 Gunner Weapon Name @@ -273,6 +317,8 @@ Richtschütze Waffenname 사수 무기 명칭 Nome Arma Artigliere + 炮手武器名称 + 砲手武器名稱 Gunner Weapon Name Background @@ -284,6 +330,8 @@ Richtschütze Waffenname Hintergrund 사수 무기 명칭 배경 Nome Sfondo Arma Artigliere + 炮手武器名称背景 + 砲手武器名稱背景 Gunner Firing Mode @@ -295,6 +343,8 @@ Richtschütze Feuermodus 사수 사격 모드 Modalità di Fuoco Artigliere + 炮手射击模式 + 砲手射擊模式 Gunner Ammo Type @@ -306,6 +356,8 @@ Richtschütze Munitionstyp 사수 탄종 Tipo Munizioni Artigliere + 炮手弹药类型 + 砲手彈藥類型 Gunner Ammo Count @@ -317,6 +369,8 @@ Richtschütze Munitionsanzahl 사수 탄약 수량 Contatore Munizioni Artigliere + 炮手弹药数量 + 砲手彈藥數量 Gunner Magazine Count @@ -328,6 +382,8 @@ Richtschütze Magazinanzahl 사수 탄창 수량 Contatore Caricatore Artigliere + 炮手弹匣数量 + 砲手彈匣數量 Gunner Launchable Type @@ -339,6 +395,8 @@ Richtschütze Raketentyp 사수 발사체 종류 Tipo Lanciabile Artigliere + 炮手发射物类型 + 砲手發射物類型 Gunner Launchable Count @@ -350,6 +408,8 @@ Richtschütze Raketenanzahl 사수 발사체 수량 Contatore Lanciabili Artigliere + 炮手发射物数量 + 砲手發射物數量 Gunner Zeroing @@ -361,6 +421,8 @@ Richtschütze Nullung 사수 영점 Azzeramento Artigliere + 炮手归零距离 + 砲手歸零距離 Gunner Weapon Lower Info Background @@ -372,6 +434,8 @@ Hintergrund der unteren Waffen-Info-Leiste (Richtschütze) 사수 무기 상세 정보 배경 Informazioni Sfondo Arma Artigliere Bassa + 炮手武器底部资讯栏背景 + 砲手武器底部資訊欄背景 Vehicle Name @@ -384,6 +448,8 @@ Fahrzeugname 차량 명칭 Nome Veicolo + 载具名称 + 載具名稱 Vehicle Name Background @@ -396,6 +462,8 @@ Fahrzeugname Hintergrund 차량 명칭 배경 Nome Sfondo Veicolo + 载具名称背景 + 載具名稱背景 Vehicle Fuel Bar @@ -408,6 +476,8 @@ Fahrzeug-Treibstoffleiste 차량 연료 막대 Barra Carburante Veicolo + 载具燃料栏 + 載具燃料欄 Vehicle Speed @@ -420,6 +490,8 @@ Fahrzeuggeschwindigkeit 차량 속도 Velocità Veicolo + 载具速度 + 載具速度 Vehicle Altitude @@ -432,6 +504,8 @@ Fahrzeughöhe 차량 고도 Altitudine Veicolo + 载具高度 + 載具高度 Vehicle Damage @@ -444,6 +518,8 @@ Fahrzeugschaden 차량 피해 Danno Veicolo + 载具伤害 + 載具傷害 Vehicle Info Background @@ -456,6 +532,8 @@ Fahrzeug Info Hintergrund 차량 정보 배경 Informazioni Sfondo Veicolo + 载具资讯栏背景 + 載具資訊欄背景 Requires Soldier/Vehicle/Weapon Information. @@ -468,6 +546,8 @@ Benötigt Soldat/Fahrzeug/Waffe Information. 병사/차량/무기의 정보가 필요합니다. Richiede informazione Soldato/Veicolo/Arma. + 需要士兵/载具/武器的资讯. + 需要士兵/載具/武器的資訊. Modifying User Interface is disabled. @@ -480,6 +560,8 @@ Die Modifizierung des UI ist deaktiviert. 사용자 인터페이스 변경이 비활성화 되어있습니다. La modifica dell'Interfaccia Utente è disabilitata. + 自定使用者介面功能已关闭. + 自定使用者介面功能已關閉. Cannot modify a forced User Interface element. @@ -491,6 +573,8 @@ Gesperrte UI-Elemente können nicht modifiziert werden. 강제 사용자 인터페이스는 변경하실 수 없습니다. Impossibile modificare un elemento forzato d' Interfaccia Utente. + 无法编辑已被锁定的使用者介面元件. + 無法編輯已被鎖定的使用者介面元件. diff --git a/addons/vector/stringtable.xml b/addons/vector/stringtable.xml index 9fbed7c6bf1..278938e1b34 100644 --- a/addons/vector/stringtable.xml +++ b/addons/vector/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Vector 21 Nite ベクター 21 ナイト Vector 21 Nite + Vector 21 Nite + Vector 21 Nite Vector 21 @@ -28,6 +30,8 @@ Vector 21 ベクター 21 Vector 21 + Vector 21 + Vector 21 Rangefinder @@ -42,6 +46,8 @@ Дальномер 測距機器 거리측정기 + 测距仪 + 測距儀 Vector - Azimuth Key @@ -56,6 +62,8 @@ Vector – Азимут ベクター - 方位角キー Vector - 방위각 키 + Vector - 方位按键 + Vector - 方位按鍵 Vector - Distance Key @@ -70,6 +78,8 @@ Vector – Расстояние ベクター - 距離キー Vector - 거리 키 + Vector - 距离按键 + Vector - 距離按鍵 diff --git a/addons/vehiclelock/stringtable.xml b/addons/vehiclelock/stringtable.xml index 3fe59585338..245f318e200 100644 --- a/addons/vehiclelock/stringtable.xml +++ b/addons/vehiclelock/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Destravar veículo 車両の鍵を開ける 차량 잠금열기 + 载具解锁 + 載具解鎖 Lock Vehicle @@ -28,6 +30,8 @@ Travar Veículo 車両を施錠 차량 잠그기 + 载具上锁 + 載具上鎖 Lockpick Vehicle @@ -42,6 +46,8 @@ Usar mixa no Veículo 鍵をこじ開ける 차량 문따기 + 解锁载具 + 解鎖載具 Picking Lock... @@ -56,6 +62,8 @@ Usando Mixa... 鍵をこじ開けている・・・ 문따는중... + 解锁中... + 解鎖中... A custom key that will open a specific vehicle. @@ -70,6 +78,8 @@ Uma chave específica que abre um veículo específico. カスタム キーは特定車両を開けられます。 특정 차량을 여는 특수 열쇠 + 使用指定的钥匙来开启特定的载具. + 使用指定的鑰匙來開啟特定的載具. A Master Key will open any lock, no matter what! @@ -84,6 +94,8 @@ Uma chave mestre irá abrir qualquer fechadura, não importa qual! マスター キーは全ての鍵を開けられます。 어떤 차량도 열 수 있는 마스터키 입니다! + 万用解锁钥匙, 能解锁任何载具. + 萬用解鎖鑰匙, 能解鎖任何載具. A lockpick set that can pick the locks of most vehicles. @@ -98,6 +110,8 @@ Um set de chave mixas que pode abrir a maioria dos veículos. ピッキング ツールでは多くの車両をこじ開けられます。 거의 모든 차량을 열 수 있게 해주는 해정도구 모음입니다. + 一组解锁钥匙 (可解锁大部份载具). + 一組解鎖鑰匙 (可解鎖大部份載具). A key that should open most WEST vehicles. @@ -112,6 +126,8 @@ Uma chave que abre a maioria dos veículos ocidentais このキーは多くの WEST 車両を開けられます。 거의 모든 서방진영 차량을 여는 열쇠입니다. + 一组解锁钥匙 (可解锁大部份蓝方载具). + 一組解鎖鑰匙 (可解鎖大部份藍方載具). A key that should open most EAST vehicle. @@ -126,6 +142,8 @@ Uma chave que abre a maioria dos veículos orientais このキーは多くの EAST 車両を開けられます。 거의 모든 동방진영 차량을 여는 열쇠입니다. + 一组解锁钥匙 (可解锁大部份红方载具). + 一組解鎖鑰匙 (可解鎖大部份紅方載具). A key that should open most INDEP vehicle. @@ -140,6 +158,8 @@ Uma chave que abre a maioria dos veículos independentes このキーは多くの INDEP 車両を開けられます。 거의 모든 중립진영 차량을 여는 열쇠입니다. + 一组解锁钥匙 (可解锁大部份独立方载具). + 一組解鎖鑰匙 (可解鎖大部份獨立方載具). A key that should open most CIV vehicle. @@ -154,6 +174,8 @@ Uma chave que abre a maioria dos veículos civis. このキーは多くの CIV 車両を開けられます。 거의 모든 민간인 차량을 여는 열쇠입니다 + 一组解锁钥匙 (可解锁大部份平民载具). + 一組解鎖鑰匙 (可解鎖大部份平民載具). Vehicle Lock Setup @@ -168,6 +190,8 @@ Impostazioni Blocco Veicolo 車両の施錠の設定 차량 잠금 설정 + 载具上锁设置 + 載具上鎖設置 Lock Vehicle Inventory @@ -182,6 +206,8 @@ Blocca Inventario Veicolo 施錠されている車両のインベントリ 차량 소지품 잠금 + 上锁载具的车箱 + 上鎖載具的車箱 Locks the inventory of locked vehicles @@ -196,6 +222,8 @@ Blocca l'inventario di un veicolo bloccato 施錠されている車両の、開けないインベントリ 잠긴 차량의 소지품을 뒤지지못하게 합니다. + 上锁载具的车箱, 使玩家不能拿取/查看载具内的装备 + 上鎖載具的車箱, 使玩家不能拿取/查看載具內的裝備 Vehicle Starting Lock State @@ -210,6 +238,8 @@ Stato Iniziale del Blocco per Veicoli 開始時における車両の鍵の状態 시작시 차량 잠금 상태 + 载具初始上锁状态 + 載具初始上鎖狀態 Set lock state for all vehicles (removes ambiguous lock states) @@ -224,6 +254,8 @@ Imposta lo stato di blocco per tutti i veicoli (rimuove stati di blocco ambigui) 全車両への鍵の状態を設定します。(あいまいな鍵の状態を削除) 모든 차량의 잠금 상태를 정합니다. (애매한 잠금 상태는 모두 없앱니다.) + 设定所有载具的初始上锁状态 (移除不明确的锁定状态) + 設定所有載具的初始上鎖狀態 (移除不明確的鎖定狀態) As Is @@ -238,6 +270,8 @@ Com'è そのまま 그대로 + 无变化 + 無變化 Locked @@ -252,6 +286,8 @@ Bloccato 施錠ずみ 잠김 + 上锁 + 上鎖 Unlocked @@ -266,6 +302,8 @@ Sbloccato 開錠ずみ 열림 + 解锁 + 解鎖 Default Lockpick Strength @@ -280,6 +318,8 @@ Durabilità Default del Grimaldello ピッキング ツールの標準の有効度 기본 해정도구 설정 + 预设开锁能力 + 預設開鎖能力 Default Time to lockpick (in seconds). Default: 10 @@ -294,6 +334,8 @@ Tempo Default richiesto per forzare serrature (in secondi). Default: 10 ピッキング ツールに標準の時間を設定。(秒) 標準:10 해정을 위해 들이는 기본시간입니다(초 단위). 기본설정: 10 + 开锁时间(秒). 预设:10 + 開鎖時間(秒). 預設:10 Settings for lockpick strength and initial vehicle lock state. Removes ambiguous lock states. @@ -308,6 +350,8 @@ Impostazioni per resistenza iniziale delle serrature e stato di blocco dei veicoli. Rimuove stati di blocco ambigui. ピッキング ツールの強さと車両の鍵の初期状態を設定できます。あいまいな鍵の状態を削除します。 해정도구 설정과 시작시 차량의 잠금 상태 그리고 애매한 잠금 상태를 지우는 설정입니다. + 设定开锁能力和初始载具上锁状态. 移除不明确的锁定状态. + 設定開鎖能力和初始載具上鎖狀態. 移除不明確的鎖定狀態. Vehicle Key Assign @@ -322,6 +366,8 @@ Assegna Chiavi Veicoli 車両の鍵を割り当て 차량 열쇠 등록 + 指定载具钥匙 + 指定載具鑰匙 Sync with vehicles and players. Will handout custom keys to players for every synced vehicle. Only valid for objects present at mission start. @@ -336,6 +382,8 @@ Sincronizza con veicoli e giocatori. Distribuirà chiavi ai giocatori per ogni veicolo sincronizzato. Valido solo per oggetti presenti ad inizio missione. 車両とプレイヤへ同期します。プレイヤへ同期された車両のカスタム キーを作ります。これはミッション開始時に作成されたオブジェクトでのみ有効です。 차량과 플레이어에게 동기화됩니다. 동기화된 차량은 플레이어에게 열쇠를 지급합니다. 오직 미션 시작시에 생긴 물체들만 유효합니다. + 可同步在载具与玩家身上. 将使被同步的玩家掌握其他被同步载具的钥匙. 此模块只会在任务刚开始时触发. + 可同步在載具與玩家身上. 將使被同步的玩家掌握其他被同步載具的鑰匙. 此模塊只會在任務剛開始時觸發. diff --git a/addons/vehicles/stringtable.xml b/addons/vehicles/stringtable.xml index 77eb0f4fc5d..b50666e8324 100644 --- a/addons/vehicles/stringtable.xml +++ b/addons/vehicles/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Limitatore Attivo 速度制限を有効化 속도 제한기 켜짐 + 启用速度限制 + 啟用速度限制 Speed Limiter off @@ -28,6 +30,8 @@ Limitatore Non Attivo 速度制限を無効化 속도 제한기 꺼짐 + 停用速度限制 + 停用速度限制 Speed Limiter @@ -42,6 +46,8 @@ Limitatore di Velocità 速度制限 속도 제한기 + 速度限制器 + 速度限制器 diff --git a/addons/viewdistance/stringtable.xml b/addons/viewdistance/stringtable.xml index 0102653f24c..5d9560338ae 100644 --- a/addons/viewdistance/stringtable.xml +++ b/addons/viewdistance/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Limitatore Distanza Visiva 視界距離の制限 시야 제한기 + 视野距离限制器 + 視野距離限制器 Allows limiting maximum view distance that can be set by players. @@ -28,6 +30,8 @@ Consente di limitare la distanza visiva massima che può essere impostata dai giocatori. プレイヤーへ最大の視界距離を制限できます。 플레이어가 볼 수 있는 최대 시야를 제한합니다. + 允许玩家最大的可视距离. + 允許玩家最大的可視距離. Enable ACE viewdistance @@ -42,6 +46,8 @@ Abilita distanza visiva ACE ACE 視界距離を有効化 ACE 시야 활성화 + 启用ACE视距 + 啟用ACE視距 Enables ACE viewdistance @@ -56,6 +62,8 @@ Abilita distanza visiva ACE ACE 視界距離を有効化 ACE 시야 활성화 + 启用ACE视距 + 啟用ACE視距 View Distance Limit @@ -70,6 +78,8 @@ Limite Distanza Visiva 視界距離の制限 시야 제한기 + 视野距离限制 + 視野距離限制 Sets the limit for how high clients can raise their view distance (up to 10000) @@ -84,6 +94,8 @@ Imposta il limite massimo a cui i client possono alzare la propria distanza visiva (massimo 10000) 各クライアントが最大まで設定できる視界距離を設定します。(最大 10000) 클라이언트가 최대 얼마나 멀리 볼 수 있는지 제한을 둡니다 (10000 까지 가능) + 设定客户端最高可显示的视野距离 (最高至10000) + 設定客戶端最高可顯示的視野距離 (最高至10000) Limit for client's view distance set here and can overridden by module @@ -98,6 +110,8 @@ Limite per la distanza visiva del client impostato qui e può essere scavalcato dal modulo クライアントへの視界距離の設定や、それをモジュールにより上書きできます 클라이언트의 시야를 이 모듈로 치환할 수 있습니다. + 玩家的视距限制可在此设定, 也可透过模块改写 + 玩家的視距限制可在此設定, 也可透過模塊改寫 Client View Distance (On Foot) @@ -112,6 +126,8 @@ Distanza Visiva Client (a Piedi) クライアント側視界距離 (地上) 클라이언트 시야 (보병) + 客户端视野距离 (步行) + 客戶端視野距離 (步行) Changes in game view distance when the player is on foot. @@ -126,6 +142,8 @@ Cambia la distanza visiva in gioco quando il giocatore è a piedi. プレイヤーが地上にいる時の視界距離を変更します。 플레이어가 보병일 경우의 시야를 바꿀 수 있습니다. + 改变玩家步行时的视野距离. + 改變玩家步行時的視野距離. Client View Distance (Land Vehicle) @@ -140,6 +158,8 @@ Distanza Visiva Client (Veicolo Terrestre) クライアント側視界距離 (車両) 클라이언트 시야 (차량) + 客户端视野距离 (地面载具) + 客戶端視野距離 (地面載具) Changes in game view distance when the player is in a land vehicle. @@ -154,6 +174,8 @@ Cambia la distanza visiva in gioco quando il giocatore è in un veicolo terrestre. プレイヤーが車両の時の視界距離を変更します。 플레이어가 차량 내부일 경우의 시야를 바꿀 수 있습니다. + 改变玩家于地面载具内时的视野距离. + 改變玩家於地面載具內時的視野距離. Client View Distance (Air Vehicle) @@ -168,6 +190,8 @@ Distanza Visiva Client (Veicoli d'Aria) クライアント側視界距離 (航空機) 클라이언트 시야 (항공기) + 客户端视野距离 (空中载具) + 客戶端視野距離 (空中載具) Changes in game view distance when the player is in an air vehicle. @@ -182,6 +206,8 @@ Cambia la distanza visiva in gioco quando il giocatore è in un mezzo aereo. プレイヤーが航空機に乗っている時の視界距離を変更します。 플레이어가 항공기 내부일 경우의 시야를 바꿀 수 있습니다. + 改变玩家于空中载具内时的视野距离. + 改變玩家於空中載具內時的視野距離. Dynamic Object View Distance @@ -196,6 +222,8 @@ Distanza Visiva Oggetti Dinamica 動的なオブジェクトの描画距離 동적 물체 시야 + 动态物件的视野距离 + 動態物件的視野距離 Sets the object view distance as a coefficient of the view distance or based on field of view. FoV Based's lowest and highest value is the value which is set when enabling the option. @@ -210,6 +238,8 @@ Imposta la distanza visiva degli oggetti come un coefficiente basato sulla distanza visiva oppure basato sul campo visivo. 視野角を元にするか、視界距離によるオブジェクト描画距離を決定します。視野角を元にするオプションを有効化した場合、視野角により最低と最高値が変動します。 설정된 시야 혹은 시계(FoV)에 계수를 적용해 물체 시야를 적용합니다. 시계를 바탕으로 하는 옵션을 활성화할 경우 시계에 의한 최저와 최고치가 변동됩니다. + 设定物件可被观察的距离, 透过视野距离或是视野角度来决定. + 設定物件可被觀察的距離, 透過視野距離或是視野角度來決定. Off @@ -224,6 +254,8 @@ Disabilitato 無効 끄기 + 关闭 + 關閉 Very Low @@ -238,6 +270,8 @@ Molto Basso 最低 매우 낮음 + 非常低 + 非常低 Low @@ -252,6 +286,8 @@ Basso 낮음 + + Medium @@ -266,6 +302,8 @@ Medio 通常 중간 + + High @@ -280,6 +318,8 @@ Alto 높음 + + Very High @@ -294,6 +334,8 @@ Molto Alto 最高 매우 높음 + 非常高 + 非常高 FoV Based @@ -307,6 +349,8 @@ Champ de vision basé 視野角を元にする 시계(FoV) + 由视野角度决定 + 由視野角度決定 View Distance: @@ -321,6 +365,8 @@ Distanza Visiva: 視界距離: 시야: + 视野距离: + 視野距離: Object View Distance is @@ -335,6 +381,8 @@ Distanza Visiva Oggetti è オブジェクト描画距離は 동적 물체 시야는 + 物件视野距离为 + 物件視野距離為 That option is invalid! The limit is @@ -349,6 +397,8 @@ Questa opzione è invalida! Il limite è このオプションは無効です!制限は 이 옵션은 불가능합니다! 제한은 + 该选项是无效的! 限制是 + 該選項是無效的! 限制是 Video Settings @@ -363,6 +413,8 @@ Impostazioni Video 映像設定 영상 설정 + 影像设定 + 影像設定 diff --git a/addons/weaponselect/stringtable.xml b/addons/weaponselect/stringtable.xml index a98ae5922c4..cccd10d33c9 100644 --- a/addons/weaponselect/stringtable.xml +++ b/addons/weaponselect/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Mostrat texto ao lançar granada 手榴弾を投げるときに通知 수류탄 투척시 화면에 문자 표시 + 投掷手榴弹时显示提示讯息 + 投擲手榴彈時顯示提示訊息 Display a hint or text on grenade throw. @@ -28,6 +30,8 @@ Mostra um hint ou texto ao lançar uma granada 手榴弾を投げるときに、ヒントか文で通知します。 수류탄 투척시 화면에 문자나 힌트를 표시합니다. + 投掷手榴弹时显示提示讯息. + 投擲手榴彈時顯示提示訊息. Select Pistol @@ -42,6 +46,8 @@ Seleziona la Pistola 拳銃を選択 권총 선택 + 选择手枪 + 選擇手槍 Select Rifle @@ -56,6 +62,8 @@ Seleziona il fucile 小銃を選択 소총 선택 + 选择步枪 + 選擇步槍 Select Launcher @@ -70,6 +78,8 @@ Seleziona il lanciamissili ランチャーを選択 발사기 선택 + 选择发射器 + 選擇發射器 Select Grenade Launcher @@ -84,6 +94,8 @@ Seleziona il lanciagranate グレネード ランチャーを選択 유탄발사기 선택 + 选择榴弹发射器 + 選擇榴彈發射器 Select Binoculars @@ -98,6 +110,8 @@ Seleziona il Binocolo 双眼鏡を選択 망원경 선택 + 选择望远镜 + 選擇望遠鏡 Holster Weapon @@ -112,6 +126,8 @@ Nascondi l'arma 武器をしまう 무기 집어넣기 + 武器套 + 武器套 Engine on @@ -126,6 +142,8 @@ Включить двигатель エンジン始動 엔진 켜기 + 引擎发动 + 引擎發動 Engine off @@ -140,6 +158,8 @@ Выключить двигатель エンジン停止 엔진 끄기 + 引擎熄火 + 引擎熄火 Select Main Gun @@ -154,6 +174,8 @@ Выбрать основное оружие 主砲を選択 주포 선택 + 选择主武器 + 選擇主武器 Select Machine Gun @@ -168,6 +190,8 @@ Выбрать пулемёт 機関砲を選択 기관총 선택 + 选择机枪 + 選擇機槍 Select Missiles @@ -182,6 +206,8 @@ Выбрать ракеты ミサイルを選択 미사일 선택 + 选择导弹 + 選擇導彈 Grenade %1 @@ -196,6 +222,8 @@ Granada %1 %1 手榴弾 %1 수류탄 + 手榴弹 %1 + 手榴彈 %1 Ready Grenade @@ -210,6 +238,8 @@ Granada pronta 投てきよし 투척물 준비 + 准备手榴弹 + 準備手榴彈 Select Frag Grenade @@ -224,6 +254,8 @@ Выбрать осколочную гранату 破片手榴弾を選択 살상 투척물 선택 + 选择破片手榴弹 + 選擇破片手榴彈 Select Non-Frag Grenade @@ -238,6 +270,8 @@ Выбрать гранату その他の手榴弾を選択 비살상 투척물 선택 + 选择非破片手榴弹 + 選擇非破片手榴彈 Throw Selected Grenade @@ -252,6 +286,8 @@ Бросить выбранную гранату 選択された手榴弾を投げる 선택된 투척물 투척 + 投掷选择的手榴弹 + 投擲選擇的手榴彈 No grenades left @@ -266,6 +302,8 @@ Sem mais granadas もう手榴弾は無い 투척물 없음 + 已无手榴弹 + 已無手榴彈 No frags left @@ -280,6 +318,8 @@ Осколочных гранат нет もう破片手榴弾は無い 세열 수류탄 없음 + 已无破片手榴弹 + 已無破片手榴彈 No misc. grenades left @@ -294,6 +334,8 @@ Нелетальные гранаты закончились もうその他の手榴弾は無い 기타 투척물 없음 + 已无其他手榴弹 + 已無其他手榴彈 No grenade selected @@ -308,6 +350,8 @@ Нет выбранной гранаты 手榴弾は選択されていない 선택된 수류탄 없음 + 未选择手榴弹 + 未選擇手榴彈 Fire Smoke Launcher @@ -322,6 +366,8 @@ Lançador de fumaça 煙幕発射機を発射 연막발사기 박사 + 发射烟雾发射器 + 發射煙霧發射器 diff --git a/addons/weather/stringtable.xml b/addons/weather/stringtable.xml index 9c91d2ed8c9..5da2961d570 100644 --- a/addons/weather/stringtable.xml +++ b/addons/weather/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Mostrar informação do vento 風速を表示 바람 정보 표시 + 显示风力资讯 + 顯示風力資訊 Show Wind Info (Toggle) @@ -28,6 +30,8 @@ Mostrar informação do vento (alternar) 風速を表示 (トグル) 바람 정보 표시 (토글) + 显示风力资讯(切换) + 顯示風力資訊(切換) Weather @@ -42,6 +46,8 @@ Meteo 天候 기후 + 天气 + 天氣 Multiplayer synchronized ACE weather module @@ -56,6 +62,8 @@ Modulo Sincronizzazione Meteo ACE Multiplayer ACE 天候モジュールではマルチプレイで同期します。 ACE 기후 모듈과 멀티플레이가 동기화됩니다. + 使用ACE天气模块来同步所有客户端的天气状态(多人游戏) + 使用ACE天氣模塊來同步所有客戶端的天氣狀態(多人遊戲) Weather propagation @@ -70,6 +78,8 @@ Propagazione Meteo 天候の統一 기후 전파 + 天气状态广播 + 天氣狀態廣播 Enables server side weather propagation @@ -84,6 +94,8 @@ Abilita propagazione meteo lato server サーバ側による天候の統一を有効化 서버의 기후를 전파합니다 + 启用伺服器的天气状态广播 + 啟用伺服器的天氣狀態廣播 ACE Weather @@ -98,6 +110,8 @@ Meteo ACE ACE 天候 ACE 기후 + ACE 天气 + ACE 天氣 Overrides the default weather (editor, mission settings) with ACE weather (map based) @@ -112,6 +126,8 @@ Scavalca il meteo default (editor, parametri missione) con il meteo ACE (basato su mappa) ACE 天候 (マップを元) による標準の天候 (エディタやミッション設定) を上書きします。 기존의 기후(에디터, 임무 설정)를 ACE 기후로 치환합니다. (지도에 따라) + 使ACE天气覆盖预设的天气 (编辑任务设置) + 使ACE天氣覆蓋預設的天氣 (編輯任務設置) Sync Rain @@ -126,6 +142,8 @@ Sincronizza Pioggia 降雨の同期 비 동기화 + 同步雨 + 同步雨 Synchronizes rain @@ -140,6 +158,8 @@ Sincronizza Pioggia 降雨の同期 비를 동기화 합니다 + 同步雨 + 同步雨 Sync Wind @@ -154,6 +174,8 @@ Sincronizza Vento 風を同期 바람 동기화 + 同步风 + 同步風 Synchronizes wind @@ -168,6 +190,8 @@ Sincronizza Vento 風を同期 바람을 동기화 합니다 + 同步风 + 同步風 Sync Misc @@ -182,6 +206,8 @@ Sincronizza Misto その他を同期 기타 동기화 + 同步杂项 + 同步雜項 Synchronizes lightnings, rainbow, fog,... @@ -196,6 +222,8 @@ Sincronizza lampi, arcobaleni, nebbia,... ライティングや虹、霧などを同期 번개라던가, 무지개, 안개등을 동기화 합니다 + 同步闪电, 彩虹, 雾等等... + 同步閃電, 彩虹, 霧等等... Update Interval @@ -210,6 +238,8 @@ Intervallo Aggiornamenti 更新間隔 갱신 간격 + 更新间隔 + 更新間隔 Defines the interval (seconds) between weather updates @@ -224,6 +254,8 @@ Definisce l'intervallo (in secondi) tra aggiornamenti del meteo 天候を更新する間隔を定義します。(秒) 기후를 갱신 하는 간격을 초 단위로 정합니다. + 设定天气更新的时间间隔(秒) + 設定天氣更新的時間間隔(秒) diff --git a/addons/winddeflection/stringtable.xml b/addons/winddeflection/stringtable.xml index 86622d0558f..3bbdf868ded 100644 --- a/addons/winddeflection/stringtable.xml +++ b/addons/winddeflection/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Informação do vento 風の情報 바람 정보 + 风力资讯 + 風力資訊 Direction: %1 @@ -28,6 +30,8 @@ Direção: %1 風向: %1 방향: %1 + 风向: %1 + 風向: %1 Speed: %1 m/s @@ -42,6 +46,8 @@ Velocidade: %1 m/s 風速: %1 m/s 풍속: %1 m/s + 风速: %1 m/s + 風速: %1 m/s Weather Information @@ -56,6 +62,8 @@ Informação Meteorológica 天候の情報 기상 정보 + 天气资讯 + 天氣資訊 Humidity: %1% @@ -70,6 +78,8 @@ Humidade: %1% 湿度: %1% 습도: %1% + 湿度: %1% + 濕度: %1% Wind Deflection @@ -84,6 +94,8 @@ Deviazione del Vento 風向による変化 풍향 변화 + 风偏 + 風偏 Wind Deflection @@ -98,6 +110,8 @@ Deviazione del Vento 風向による変化 풍향 변화 + 风偏 + 風偏 Enables wind deflection @@ -112,6 +126,8 @@ Abilita deviazione del vento 風向による変化を有効化 풍향 변화를 적용합니다 + 开启风偏效果 + 開啟風偏效果 Vehicle Enabled @@ -126,6 +142,8 @@ Abilita per Veicoli 車両へ有効化 차량 적용 + 启用风偏给载具 + 啟用風偏給載具 Enables wind deflection for static/vehicle gunners @@ -140,6 +158,8 @@ Abilita deviazione del vento per artiglieri di statiche/veicoli 重火器や車両へ、風による変化を有効化 차량이나 거치식 무기 사수에게 풍향 변화를 적용합니다 + 使风偏作用在固定式武器与载具炮手身上 + 使風偏作用在固定式武器與載具砲手身上 Simulation Interval @@ -154,6 +174,8 @@ Intervallo Simulazione シミュレーションの間隔 재현 간격 + 模拟间隔 + 模擬間隔 Defines the interval between every calculation step @@ -168,6 +190,8 @@ Definisce l'intervallo tra ogni passaggio di calcolo 各計算に適用させる間隔を定義します 매 계산마다의 간격을 정의합니다 + 定义每个计算之间的时间间隔 + 定義每個計算之間的時間間隔 Simulation Radius @@ -182,6 +206,8 @@ Raggio Simulazione シミュレーション半径 재현 범위 + 模拟半径 + 模擬半徑 Defines the radius around the player (in meters) at which projectiles are wind deflected @@ -196,6 +222,8 @@ Definisce il raggio attorno al giocatore (in metri) dove viene applicata la deviazione del vento ai proiettili プレイヤーの周囲に適用させる風による弾道の変化の半径を定義します (メートル) 플레이어 주위로 발사체가 풍향 변화의 영향을 받는 범위를 정합니다 (미터) + 定义玩家多少半径范围内(单位公尺)子弹会受到风偏的引响 + 定義玩家多少半徑範圍內(單位公尺)子彈會受到風偏的引響 Wind influence on projectiles trajectory @@ -210,6 +238,8 @@ Influenza del vento sulla traiettoria dei proiettili 風が弾道へ影響させます 발사체의 궤도에 풍향 변화를 줍니다. + 风力的大小会引响到弹道的轨迹 + 風力的大小會引響到彈道的軌跡 diff --git a/addons/yardage450/stringtable.xml b/addons/yardage450/stringtable.xml index 9b364d212d9..fe43a21b9ab 100644 --- a/addons/yardage450/stringtable.xml +++ b/addons/yardage450/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Yardage 450 ヤードエイジ 450 Yardage 450 + Yardage 450 + Yardage 450 Laser Rangefinder @@ -28,6 +30,8 @@ Télémètre laser レーザー測距機 레이저 거리측정기 + 雷射测距仪 + 雷射測距儀 Yardage 450 - Power Button @@ -42,6 +46,8 @@ Yardage 450 - bouton d'alimentation ヤードエイジ 450 - 起動ボタン Yardage 450 - 전원 버튼 + Yardage 450 - 电源按钮 + Yardage 450 - 電源按鈕 diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index a4e0e9fb47d..ec8d660235e 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -14,6 +14,8 @@ Impostazioni Zeus Zeus 設定 Zeus 설정 + 宙斯设定 + 宙斯設定 Provides control over various aspects of Zeus. @@ -28,6 +30,8 @@ Fornisce controllo su vari aspetti di Zeus. Zeus のさまざまな側面を強化します。 Zeus에게 다양한 방면의 조작을 제공해줍니다 + 提供宙斯各个方面的控制权. + 提供宙斯各個方面的控制權. Ascension Messages @@ -42,6 +46,8 @@ Messaggi di Ascesa 転生表示 재림 메세지 + 上任宙斯讯息 + 上任宙斯訊息 Display global popup messages when a player is assigned as Zeus. @@ -56,6 +62,8 @@ Mostra messaggi popup globali quando un giocatore viene assegnato come Zeus. プレイヤーが Zeus になるとき、全体へポップアップ表示をおこないます。 플레이어가 Zeus 될 시 서버에 이를 알리는 팝업이 등장합니다. + 当一位玩家被指定为宙斯时显示全球讯息. + 當一位玩家被指定為宙斯時顯示全球訊息. Zeus Eagle @@ -70,6 +78,8 @@ Aquila Zeus Zeus イーグル Zeus 독수리 + 宙斯鹰眼模式 + 宙斯鷹眼模式 Spawn an eagle that follows the Zeus camera. @@ -84,6 +94,8 @@ Crea un'aquila che segue la camera Zeus. Zeus カメラを追うイーグルを出現します。 Zeus의 카메라를 따라다니는 독수리를 생성합니다. + 生成一个老鹰跟着宙斯的摄影机 + 生成一個老鷹跟著宙斯的攝影機 Wind Sounds @@ -98,6 +110,8 @@ Suoni del Vento 風の音 바람 소리 + 风声 + 風聲 Play wind sounds when Zeus remote controls a unit. @@ -112,6 +126,8 @@ Esegui rumori di vento quando Zeus controlla un'unità in remoto. ユニットが Zeus 遠隔操作になったとき、風の音がします。 Zeus가 유닛을 조작할 때 바람소리가 납니다. + 当宙斯开始控制单位时利用风的声音提示 + 當宙斯開始控制單位時利用風的聲音提示 Ordnance Warning @@ -126,6 +142,8 @@ Allarme Esplosivi 砲撃の警告 폭격 경고 + 武装警告 + 武裝警告 Play a radio warning when Zeus uses ordnance. @@ -140,6 +158,8 @@ Riproduci un messaggio radio quando Zeus usa esplosivi. Zeus が砲撃をつかうときに、無線で警告を流します。 Zeus가 폭격시 경고 무전을 재생합니다. + 当宙斯开始攻击时使用无线电警告 + 當宙斯開始攻擊時使用無線電警告 Reveal Mines @@ -154,6 +174,8 @@ Rivela Mine 地雷の表示 지뢰 표시 + 显示地雷 + 顯示地雷 Reveal mines to allies and place map markers. @@ -168,6 +190,8 @@ Rivela mine ad alleati e piazza marcatori in mappa. 友軍に地雷と地図へ設置マーカーを表示します。 아군에게 지도 상의 모든 지뢰를 표시합니다. + 地图将标记队友放置的地雷 + 地圖將標記隊友放置的地雷 Reveal to Allies @@ -182,6 +206,8 @@ Rivela ad Alleati 友軍へ表示 모든 아군에게 표시 + 透露给盟军 + 透露給盟軍 Allies + Map Markers @@ -196,6 +222,8 @@ Alleati + Marcatori Mappa 友軍と地図マーカー 아군 + 지도 마커 + 显示盟军+地图标记 + 顯示盟軍+地圖標記 Toggle Captive @@ -210,6 +238,8 @@ Attivatore Prigioniero 捕虜としてトグル 포로 토글 + 切换俘虏 + 切換俘虜 Defend Area @@ -221,6 +251,8 @@ Verteidige Gebiet 지역 방어 Difendi Area + 防御区域 + 防禦區域 Update Editable Objects @@ -229,6 +261,8 @@ 수정 가능한 물체 갱신 Màj les objets éditables Aggiorna Oggetti Modificabili + 更新可编辑的物件 + 更新可編輯的物件 All Curators @@ -237,6 +271,8 @@ Wszyscy kuratorzy Tous curateurs Tutti i Moderatori + 所有编辑者 + 所有編輯者 Apply changes to all curators @@ -245,6 +281,8 @@ Zatwierdź zmiany dla wszystkich kuratorów Applique les changements à tous les curateurs Applica i cambiamenti a tutti i moderatori + 确认变更给所有编辑者 + 確認變更給所有編輯者 Remove Objects @@ -253,6 +291,8 @@ Usuń obiekty Enlève les objets Rimuovi Oggetti + 移除物件 + 移除物件 Remove existing instead of adding new @@ -261,6 +301,8 @@ Usuń istniejące zamiast dodawać nowe Enlève les objets existants au lieu d'en ajouter de nouveaux Rimuove gli esistenti e li sostituisce con i nuovi + 移除已存在的物件来新增新的物件 + 移除已存在的物件來新增新的物件 Global AI Skill @@ -272,6 +314,8 @@ Globale KI-Fähigkeit 서버 인공지능 실력 Abilità AI Globale + AI技巧设定 + AI技巧設定 General Skill @@ -283,6 +327,8 @@ Allgemeine Fähigkeit 전반적 실력 Abilità Generale + 总体技巧 + 總體技巧 Changes: general, commanding, courage @@ -294,6 +340,8 @@ Ändert: general, commanding, courage 변화: 전반적, 지휘, 사기 Cambia: generale, comando, + 改变: 战斗技巧, 指挥技巧, 勇气大小 + 改變: 戰鬥技巧, 指揮技巧, 勇氣大小 Accuracy @@ -305,6 +353,8 @@ Genauigkeit 명중률 Precisione + 精确度 + 精確度 Changes: aimingAccuracy @@ -316,6 +366,8 @@ Ändert: aimingAccuracy 변화: 조준 명중률 Cambia: aimingAccuracy + 改变: 瞄准精确度 + 改變: 瞄準精確度 Weapon Handling @@ -327,6 +379,8 @@ Waffenhandhabung 무기 조작 Uso dell'Arma + 武器掌握 + 武器掌握 Changes: aimingShake, aimingSpeed, reloadSpeed @@ -338,6 +392,8 @@ Ändert: aimingShake, aimingSpeed, reloadSpeed 변화: 조준시 흔들림, 조준 속도, 재장전 속도 Cambia: aimingShake, aimingSpeed, reloadSpeed + 改变: 手晃幅度, 瞄准速度, 重新装填速度 + 改變: 手晃幅度, 瞄準速度, 重新裝填速度 Spotting @@ -349,6 +405,8 @@ Aufklärung 탐지 Ricognizione + 索敌能力 + 索敵能力 Changes: spotDistance, spotTime @@ -360,6 +418,8 @@ Ändert: spotDistance, spotTime 변화: 탐지 거리, 탐지까지의 시간 Cambia: spotDistance, spotTime + 改变: 搜索距离, 发现时间 + 改變: 搜索距離, 發現時間 Seek Cover @@ -371,6 +431,8 @@ Deckungssuche 엄폐물 찾기 Cerca Copertura + 寻找掩护 + 尋找掩護 Should AI seek cover @@ -382,6 +444,8 @@ Soll KI nach Deckung suchen 인공지능이 엄폐물을 찾아갑니다 Le AI dovrebbero cercare una copertura + 决定AI是否会寻找掩护 + 決定AI是否會尋找掩護 Auto Combat @@ -393,6 +457,8 @@ Automatischer Kampfmodus 자동 교전 Combattimento Automatico + 自动交战 + 自動交戰 Should AI automatically switch to combat mode @@ -404,6 +470,8 @@ Soll KI automatisch in Kampfmodus umschalten 인공지능이 자동적으로 교전 상태에 돌입합니다 Le AI dovrebbero passare in modalità di combattimento automaticamente + 决定AI是否会自动与敌人交战 + 決定AI是否會自動與敵人交戰 Group Side @@ -415,6 +483,8 @@ Gruppenseite 진영 측 Fazione del Gruppo + 小队阵营 + 小隊陣營 Patrol Area @@ -426,6 +496,8 @@ Patrouillengebiet 정찰 구역 Area di Pattugliamento + 巡逻区域 + 巡邏區域 Toggle Surrender @@ -440,6 +512,8 @@ Attivatore Resa 捕虜としてトグル 항복 토글 + 切换投降 + 切換投降 Add/Remove FRIES @@ -448,6 +522,8 @@ Dodaj/usuń FRIES Aj./Enlève FRIES Aggiungi/Rimuovi FRIES + 增加/移除快速垂降进场撤离系统 + 增加/移除快速垂降進場撤離系統 %1 is not fastrope compatible. @@ -456,6 +532,8 @@ %1 nie jest kompatybilny ze zjazdem linowym. %1 n'est pas compatible. %1 non è compatibile con il fastrope. + %1无法使用快速绳降系统. + %1無法使用快速繩降系統. Unable to remove FRIES, ropes are deployed. @@ -464,6 +542,8 @@ Nie można usunąć FRIES, liny są wypuszczone. Pas en mesure d'enlever le FRIES, les cordes ne sont pas déployées. Impossibile rimuovere le FRIES, le corde sono ancora dispiegate + 无法移除快速绳降系统, 因为绳索已被释放出来. + 無法移除快速繩降系統, 因為繩索已被釋放出來. Teleport Players @@ -475,6 +555,8 @@ Spieler teleportieren 플레이어 순간이동 Teletrasporta Giocatori + 传送玩家 + 傳送玩家 Player @@ -486,6 +568,8 @@ Spieler 플레이어 Giocatore + 玩家 + 玩家 Teleport selected player to module position @@ -497,6 +581,8 @@ Teleportiert ausgewählten Spieler zur Position des Moduls 모듈의 위치로 플레이어 순간이동 Teletrasporta il giocatore selezionato nella posizione del modulo + 传送选定的玩家至模块位置 + 傳送選定的玩家至模塊位置 Teleport Group @@ -508,6 +594,8 @@ Gruppe teleportieren 그룹 순간이동 Teletrasporta Gruppo + 传送小队 + 傳送小隊 Teleports all units in group @@ -519,6 +607,8 @@ Teleportiert alle Einheiten der Gruppe 그룹내에 모든 인원을 순간이동 시킵니다 Teletrasporta tutte le unità del gruppo + 传送全部小队成员 + 傳送全部小隊成員 Toggle Unconscious @@ -533,6 +623,8 @@ Attivatore Incoscienza 気絶をトグル 기절 토글 + 切换昏迷 + 切換昏迷 Search Area @@ -544,6 +636,8 @@ Durchsuche Gebiet 지역 수색 Area di Ricerca + 搜索区域 + 搜索區域 Search Nearby Building @@ -555,6 +649,8 @@ Durchsuche nahegelegenes Gebäude 근처 건물 수색 Cerca Edifici nelle Vicinanze + 搜索附近的建筑物 + 搜索附近的建築物 Assign Medic @@ -568,6 +664,8 @@ Assigner médecin 衛生兵に割り当て 의무병 임명 + 指定医疗兵 + 指定醫療兵 Assign Medical Vehicle @@ -581,6 +679,8 @@ Assigner véhicule médical 医療車両として割り当て 의무 차량 임명 + 指定医疗载具 + 指定醫療載具 Assign Medical Facility @@ -594,6 +694,8 @@ Assigner installation médicale 医療施設として割り当て 의무 시설 임명 + 指定医疗设施 + 指定醫療設施 Toggle Simulation @@ -602,6 +704,8 @@ 재현 토글 Bascule Simulation Attivatore Simulazione + 切换模拟 + 切換模擬 Add Spare Wheel @@ -615,6 +719,8 @@ Ajouter pièce de rechange 予備タイヤを追加 예비 바퀴 추가 + 增加备用轮胎 + 增加備用輪胎 Add Spare Track @@ -628,6 +734,8 @@ Ajouter une chenille de secours 車両へ予備タイヤを追加します。 예비 궤도 추가 + 增加备用履带 + 增加備用履帶 Unit must be alive @@ -642,6 +750,8 @@ Usar somente em unidades vivas ユニットを生存させます 대상이 반드시 살아있어야 합니다 + 单位必须是活着 + 單位必須是活著 Unit must be infantry @@ -656,6 +766,8 @@ Usar somente em infantaria desmontada ユニットを歩兵にさせます 대상이 반드시 보병이어야 합니다 + 单位必须是步兵 + 單位必須是步兵 Unit must be a structure @@ -669,6 +781,8 @@ L'unité doit être une structure ユニットを構造物とします 대상이 반드시 건축물이어야만 합니다 + 单位必须是建筑 + 單位必須是建築 Unit must be a vehicle @@ -682,6 +796,8 @@ L'unité doit être un véhicule ユニットを車両とします 대상이 반드시 차량이어야만 합니다 + 单位必须是载具 + 單位必須是載具 Unit must be a vehicle with cargo space @@ -695,6 +811,8 @@ L'unité doit être un véhicule avec de l'espace de cargaison ユニットをカーゴ スペースがある車両にします 대상이 반드시 화물을 실을 수 있는 차량이어야 합니다 + 单位必须是载具且有载货空间 + 單位必須是載具且有載貨空間 Unit must have cargo space left @@ -708,6 +826,8 @@ L'unité doit avoir de l'espace libre en cargaison ユニットへカーゴ スペースを与えます 대상의 화물공간이 남아있어야합니다 + 单位必须有剩余的载货空间 + 單位必須有剩餘的載貨空間 Unit must not be captive @@ -722,6 +842,8 @@ L'unità non dev'essere un prigioniero ユニットを捕虜にさせません 대상이 포로면 안됩니다 + 单位不能被俘虏 + 單位不能被俘虜 Unit must belong to an appropriate side @@ -733,6 +855,8 @@ Einheit muss einer passenden Seite angehören 대상이 적절한 진영에 속해야만합니다 L'unità deve appartenere ad una fazione coerente + 单位必须属于一个合适的一边 + 單位必須屬於一個合適的一邊 Nearest building is too far away @@ -744,6 +868,8 @@ Nächstgelegenes Gebäude ist zu weit entfernt 가장가까운 건물이 너무 멈 L'edificio più vicino è troppo lontano + 最近的房子离太远了 + 最近的房子離太遠了 Place on a unit @@ -758,6 +884,8 @@ Piazza su una unità ユニットの上に設置 대상에 배치하기 + 放置在一个单位上 + 放置在一個單位上 Requires an addon that is not present @@ -772,6 +900,8 @@ Richiede un addon che non è presente 要求されたアドオンは存在していません 현재 없는 에드온을 필요로 합니다 + 需要一个不存在的插件 + 需要一個不存在的插件 Add Objects to Curator @@ -785,6 +915,8 @@ Fügt Objekte zum Kurator hinzu キュレーターにオブジェクトを追加 큐레이터에 물체 추가 + 增加物件给任务策划人 + 增加物件給任務策劃人 Adds any spawned object to all curators in the mission @@ -798,6 +930,8 @@ Fügt jedes gespawnte Objekt allen Kuratoren der Mission hinzu ミッション内で作成されたオブジェクトに全キュレーターを追加 미션 내 큐레이터에 모든 생성 물체 추가 + 在任务中生成物件给所有的任务策划人 + 在任務中生成物件給所有的任務策劃人 Cargo: @@ -809,6 +943,8 @@ Ladung: 화물: Cargo: + 货物: + 貨物: Task Position @@ -820,6 +956,8 @@ Position der Aufgabe 작업 위치 Posizione Incarico + 目标位置 + 目標位置 Select a position to perform the task at @@ -830,6 +968,8 @@ Wähle eine Position, an der die Aufgabe ausgeführt werden soll 작업을 할 위치를 선택하십시요 Seleziona una posizione per eseguire l'incarico + 选择要执行目标的位置 + 選擇要執行目標的位置 Task Radius @@ -840,6 +980,8 @@ Radius der Aufgabe 작업 반경 Raggio Incarico + 目标半径 + 目標半徑 Radius to perform the task within @@ -850,6 +992,8 @@ Radius, in dem die Aufgabe ausgeführt werden soll 다음 반경 내에서 작업 Raggio per eseguire un incarico + 设定目标范围半径 + 設定目標範圍半徑 Invalid radius entered @@ -861,24 +1005,32 @@ Ungültiger Radius eingegeben 알 수 없는 반경 입력됨 Raggio Invalido Inserito + 错误的半径值 + 錯誤的半徑值 Suppressive Fire Fuoco di Soppressione Tir de suppression 制圧射撃 + 火力压制 + 火力壓制 Add full arsenal to object Ajouter arsenal complet à l'objet Aggiunge arsenale completo all'oggetto オブジェクトに完全なアーセナルを追加 + 增加完整的虚拟军火库到物件上 + 增加完整的虛擬軍火庫到物件上 Remove arsenal from object Retirer arsenal de l'objet Rimuove arsenale completo dall'oggetto オブジェクトからアーセナルを削除 + 移除物件上的虚拟军火库 + 移除物件上的虛擬軍火庫 diff --git a/optionals/compat_adr_97/stringtable.xml b/optionals/compat_adr_97/stringtable.xml index 895734fd9b9..52e08de2b18 100644 --- a/optionals/compat_adr_97/stringtable.xml +++ b/optionals/compat_adr_97/stringtable.xml @@ -13,6 +13,8 @@ P90 TR (Fekete) P90 TR (Preto) P90 TR (黒) + P90 TR (黑色) + P90 TR (黑色) P90 TR (Khaki) @@ -26,6 +28,8 @@ P90 TR (Khaki) P90 TR (Caqui) P90 TR (土埃) + P90 TR (卡其色) + P90 TR (卡其色) P90 TR (Camo) @@ -39,6 +43,8 @@ P90 TR (Terepmintás) P90 TR (Camuflagem) P90 TR (迷彩) + P90 TR (迷彩) + P90 TR (迷彩) P90 TR (Hex) @@ -52,6 +58,8 @@ P90 TR (Hex) P90 TR (Hex) P90 TR (蜂巣) + P90 TR (數位蜂巢迷彩) + P90 TR (数位蜂巢迷彩) P90 (Black) @@ -65,6 +73,8 @@ P90 (Fekete) P90 (Preto) P90 (黒) + P90 (黑色) + P90 (黑色) P90 (Khaki) @@ -78,6 +88,8 @@ P90 (Khaki) P90 (Caqui) P90 (土埃) + P90 (卡其色) + P90 (卡其色) P90 (Camo) @@ -91,6 +103,8 @@ P90 (Terepmintás) P90 (Camuflagem) P90 (迷彩) + P90 (迷彩) + P90 (迷彩) P90 (Hex) @@ -104,6 +118,8 @@ P90 (Hex) P90 (Hex) P90 (蜂巣) + P90 (數位蜂巢迷彩) + P90 (数位蜂巢迷彩) PS90 TR (Black) @@ -117,6 +133,8 @@ PS90 TR (Fekete) PS90 TR (Preto) PS90 TR (黒) + PS90 TR (黑色) + PS90 TR (黑色) PS90 TR (Khaki) @@ -130,6 +148,8 @@ PS90 TR (Khaki) PS90 TR (Caqui) PS90 TR (土埃) + PS90 TR (卡其色) + PS90 TR (卡其色) PS90 TR (Camo) @@ -143,6 +163,8 @@ PS90 TR (Terepmintás) PS90 TR (Camuflagem) PS90 TR (迷彩) + PS90 TR (迷彩) + PS90 TR (迷彩) PS90 TR (Hex) @@ -156,6 +178,8 @@ PS90 TR (Hex) PS90 TR (Hex) PS90 TR (蜂巣) + PS90 TR (數位蜂巢迷彩) + PS90 TR (数位蜂巢迷彩) PS90 (Black) @@ -169,6 +193,8 @@ PS90 (Fekete) PS90 (Preto) PS90 (黒) + PS90 (黑色) + PS90 (黑色) PS90 (Khaki) @@ -182,6 +208,8 @@ PS90 (Khaki) PS90 (Caqui) PS90 (土埃) + PS90 (卡其色) + PS90 (卡其色) PS90 (Camo) @@ -195,6 +223,8 @@ PS90 (Terepmintás) PS90 (Camuflagem) PS90 (迷彩) + PS90 (迷彩) + PS90 (迷彩) PS90 (Hex) @@ -208,6 +238,8 @@ PS90 (Hex) PS90 (Hex) PS90 (蜂巣) + PS90 (數位蜂巢迷彩) + PS90 (数位蜂巢迷彩) 5.7mm 50Rnd Mag @@ -221,6 +253,8 @@ Caricatore 5.7mm 50Rnd Магазин из 50-ти 5,7 мм 5.7mm 50 発入り弾倉 + 5.7mm 50發 彈匣 + 5.7mm 50发 弹匣 Caliber: 5.7mm<br />Rounds: 50<br />Used in: P90 @@ -234,6 +268,8 @@ Calibre: 5.7mm<br />Cartuchos: 50<br />Usado em: P90 Kaliber: 5,7mm<br />Lövedékek: 50<br />Használható: P90 口径: 5.7mm<br />装弾数: 50<br />次で使用: P90 + 口徑: 5.7mm<br />發數: 50<br />使用於: P90 + 口径: 5.7mm<br />发数: 50<br />使用于: P90 - \ No newline at end of file + From ace396465564b70885f9278a858ce95a4e4eb3a4 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 22 Jun 2017 09:47:06 -0500 Subject: [PATCH 130/198] compats - Fix config name for resupply vics (#5300) --- optionals/compat_rhs_afrf3/CfgVehicles.hpp | 2 +- optionals/compat_rhs_usf3/CfgVehicles.hpp | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/optionals/compat_rhs_afrf3/CfgVehicles.hpp b/optionals/compat_rhs_afrf3/CfgVehicles.hpp index 20ee84eea55..23e922ec685 100644 --- a/optionals/compat_rhs_afrf3/CfgVehicles.hpp +++ b/optionals/compat_rhs_afrf3/CfgVehicles.hpp @@ -384,7 +384,7 @@ class CfgVehicles { class rhs_gaz66_ammo_base: rhs_gaz66_vmf { transportAmmo = 0; - ace_rearm_supply = 1200; + ace_rearm_defaultSupply = 1200; }; class MRAP_02_base_F; diff --git a/optionals/compat_rhs_usf3/CfgVehicles.hpp b/optionals/compat_rhs_usf3/CfgVehicles.hpp index e72a1a111f4..af6c231efe8 100644 --- a/optionals/compat_rhs_usf3/CfgVehicles.hpp +++ b/optionals/compat_rhs_usf3/CfgVehicles.hpp @@ -292,19 +292,19 @@ class CfgVehicles { class rhsusf_M977A4_usarmy_wd: rhsusf_HEMTT_A4_base {}; class rhsusf_M977A4_AMMO_usarmy_wd: rhsusf_M977A4_usarmy_wd { transportAmmo = 0; - ace_rearm_supply = 1200; + ace_rearm_defaultSupply = 1200; }; class rhsusf_M977A4_BKIT_usarmy_wd: rhsusf_M977A4_usarmy_wd {}; class rhsusf_M977A4_AMMO_BKIT_usarmy_wd: rhsusf_M977A4_BKIT_usarmy_wd { transportAmmo = 0; - ace_rearm_supply = 1200; + ace_rearm_defaultSupply = 1200; }; class rhsusf_M977A4_BKIT_M2_usarmy_wd: rhsusf_M977A4_usarmy_wd {}; class rhsusf_M977A4_AMMO_BKIT_M2_usarmy_wd: rhsusf_M977A4_BKIT_M2_usarmy_wd { transportAmmo = 0; - ace_rearm_supply = 1200; + ace_rearm_defaultSupply = 1200; }; class rhsusf_M978A4_usarmy_wd: rhsusf_M977A4_usarmy_wd { @@ -349,7 +349,7 @@ class CfgVehicles { class rhsusf_m113_usarmy: rhsusf_m113tank_base {}; class rhsusf_m113_usarmy_supply: rhsusf_m113_usarmy { transportAmmo = 0; - ace_rearm_supply = 1200; + ace_rearm_defaultSupply = 1200; }; class APC_Tracked_03_base_F; From 5f779c4c9036b82172af02fadcc5add77e220074 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 22 Jun 2017 16:05:19 -0500 Subject: [PATCH 131/198] Modify JoinGroup action to show group name (#5287) * Modify JoinGroup action to show group name * header * Header --- addons/interaction/CfgVehicles.hpp | 1 + addons/interaction/XEH_PREP.hpp | 1 + .../functions/fnc_modifyJoinGroupAction.sqf | 26 +++++++++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 addons/interaction/functions/fnc_modifyJoinGroupAction.sqf diff --git a/addons/interaction/CfgVehicles.hpp b/addons/interaction/CfgVehicles.hpp index f65303ac442..cc281247db0 100644 --- a/addons/interaction/CfgVehicles.hpp +++ b/addons/interaction/CfgVehicles.hpp @@ -116,6 +116,7 @@ class CfgVehicles { displayName = CSTRING(JoinGroup); condition = QUOTE(GVAR(EnableTeamManagement) && {[ARR_2(_player,_target)] call DFUNC(canJoinGroup)}); statement = QUOTE([_player] joinSilent group _target); + modifierFunction = QUOTE(call FUNC(modifyJoinGroupAction)); showDisabled = 0; priority = 2.6; icon = QPATHTOF(UI\team\team_management_ca.paa); diff --git a/addons/interaction/XEH_PREP.hpp b/addons/interaction/XEH_PREP.hpp index dc8c361607b..4f0ef583571 100644 --- a/addons/interaction/XEH_PREP.hpp +++ b/addons/interaction/XEH_PREP.hpp @@ -17,6 +17,7 @@ PREP(canInteractWithCivilian); PREP(getDown); PREP(sendAway); PREP(canJoinGroup); +PREP(modifyJoinGroupAction); PREP(canJoinTeam); PREP(joinTeam); PREP(canPassMagazine); diff --git a/addons/interaction/functions/fnc_modifyJoinGroupAction.sqf b/addons/interaction/functions/fnc_modifyJoinGroupAction.sqf new file mode 100644 index 00000000000..3ac493aa546 --- /dev/null +++ b/addons/interaction/functions/fnc_modifyJoinGroupAction.sqf @@ -0,0 +1,26 @@ +/* + * Author: PabstMirror + * Modifies the ACE_JoinGroup action to show group name. + * + * Arguments: + * 0: Target + * 1: Player + * 2: Args + * 3: Action Data + * + * Return Value: + * None + * + * Example: + * [cursorObject, player, [], []] call ace_interaction_fnc_modifyJoinGroupAction + * + * Public: No + */ +#include "script_component.hpp" + +params ["_target", "_player", "", "_actionData"]; + +private _actionText = format ["%1: %2", localize LSTRING(JoinGroup), groupID group _target]; +TRACE_3("",_target,group _target,_actionText); + +_actionData set [1, _actionText]; From f33ff4e767a3604d5bba4b11a245c3dba589af81 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 22 Jun 2017 22:58:00 -0500 Subject: [PATCH 132/198] Repair - Handle depends = "0" (#5283) * Repair - Handle depends = "0" * quote --- addons/repair/dev/draw_showRepairInfo.sqf | 69 +++++++++++++++++++ .../repair/functions/fnc_addRepairActions.sqf | 3 +- .../functions/fnc_normalizeHitPoints.sqf | 2 +- .../functions/fnc_setHitPointDamage.sqf | 2 +- 4 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 addons/repair/dev/draw_showRepairInfo.sqf diff --git a/addons/repair/dev/draw_showRepairInfo.sqf b/addons/repair/dev/draw_showRepairInfo.sqf new file mode 100644 index 00000000000..5701c172ead --- /dev/null +++ b/addons/repair/dev/draw_showRepairInfo.sqf @@ -0,0 +1,69 @@ +// PabstMirror +// [] execVM "\z\ace\addons\repair\dev\draw_showRepairInfo.sqf"; + +#include "\z\ace\addons\repair\script_component.hpp" + +addMissionEventHandler ["Draw3D", { + if !((cursorObject isKindOf "Car") || (cursorObject isKindOf "Tank") || (cursorObject isKindOf "Air")) exitWith {}; + private _config = configFile >> "CfgVehicles" >> (typeOf cursorObject); + + private _hitpointPositions = getArray (_config >> QGVAR(hitpointPositions)); + private _hitpointGroups = getArray (_config >> QGVAR(hitpointGroups)); + + (getAllHitPointsDamage cursorObject) params [["_hitPoints", []], ["_hitSelections", []]]; + ([cursorObject] call FUNC(getWheelHitPointsWithSelections)) params ["_wheelHitPoints", "_wheelHitSelections"]; + + private _output = []; + + { + private _selection = _x; + private _hitpoint = _hitPoints select _forEachIndex; + + if ((_selection != "") && {_hitPoint != ""}) then { + if (((toLower _hitPoint) find "glass") != -1) exitWith {}; + + private _info = ""; + private _color = [1,0,0,1]; + if (_selection in _wheelHitSelections) then { + _info = _info + "[Wheel]"; + _color = [0,1,0,1]; + }; + if (!((getText (_config>> "HitPoints" >> _hitpoint >> "depends")) in ["", "0"])) then { + _info = _info + format ["[depends: %1]", getText (_config>> "HitPoints" >> _hitpoint >> "depends")]; + _color = [0,0,1,1] + }; + + private _position = cursorObject selectionPosition [_selection, "HitPoints"]; + { + _x params ["_hit", "_pos"]; + if (_hitpoint == _hit) exitWith { + _info = _info + format ["[hitPos: %1]", _pos]; + if (_pos isEqualType []) exitWith { + _position = _pos; + }; + if (_pos isEqualType "") exitWith { + _position = cursorObject selectionPosition [_pos, "HitPoints"]; + }; + }; + } forEach _hitpointPositions; + + private _parentHitpoint = ""; + { + private _xParent = _x select 0; + { + if (_hitpoint == _x) exitWith { + _info = _info + format ["[Parent: %1]", _xParent]; + _parentHitpoint = _xParent; + }; + } forEach (_x select 1); + } forEach _hitpointGroups; + + if (_parentHitpoint == "") then { + drawIcon3D ["", _color, (cursorObject modelToWorld _position), 0.5, 0.5, 0, format ["%1 [%2]", _hitpoint, _selection], 0.5, 0.025, "TahomaB"]; + }; + _output pushBack format ["%1: %2[%3] = %4", _forEachIndex, _hitPoint, _selection, cursorObject getHitIndex _forEachIndex]; + _output pushBack format ["- %1 -",_info]; + }; + } forEach _hitPoints; + hintSilent (_output joinString "\n"); +}]; diff --git a/addons/repair/functions/fnc_addRepairActions.sqf b/addons/repair/functions/fnc_addRepairActions.sqf index d2bb3adfee9..398083a080a 100644 --- a/addons/repair/functions/fnc_addRepairActions.sqf +++ b/addons/repair/functions/fnc_addRepairActions.sqf @@ -79,7 +79,8 @@ _processedHitpoints = []; if (_selection isEqualTo "") exitWith { TRACE_3("Selection Empty",_hitpoint,_forEachIndex,_selection); }; if (_hitpoint isEqualTo "") exitWith { TRACE_3("Hitpoint Empty",_hitpoint,_forEachIndex,_selection); }; //Depends hitpoints shouldn't be modified directly (will be normalized) - if (isText (configFile >> "CfgVehicles" >> _type >> "HitPoints" >> _hitpoint >> "depends")) exitWith { + // Biki: Clearing 'depends' in case of inheritance cannot be an empty string (rpt warnings), but rather a "0" value. + if (!((getText (configFile >> "CfgVehicles" >> _type >> "HitPoints" >> _hitpoint >> "depends")) in ["", "0"])) exitWith { TRACE_3("Skip Depends",_hitpoint,_forEachIndex,_selection); }; diff --git a/addons/repair/functions/fnc_normalizeHitPoints.sqf b/addons/repair/functions/fnc_normalizeHitPoints.sqf index 1f6004aa15d..cb06eeaeae5 100644 --- a/addons/repair/functions/fnc_normalizeHitPoints.sqf +++ b/addons/repair/functions/fnc_normalizeHitPoints.sqf @@ -33,7 +33,7 @@ private _dependentHitPointScripts = []; { if ((_x != "") && {isClass (_config >> _x)} && {!(_x in _realHitPoints)}) then { _realHitPoints pushBack _x; - if (isText (_config >> _x >> "depends")) then { + if (!((getText (_config >> _x >> "depends")) in ["", "0"])) then { _dependentHitPoints pushBack _x; _dependentHitPointScripts pushBack compile getText (_config >> _x >> "depends"); }; diff --git a/addons/repair/functions/fnc_setHitPointDamage.sqf b/addons/repair/functions/fnc_setHitPointDamage.sqf index 6423df69387..57c65d14074 100644 --- a/addons/repair/functions/fnc_setHitPointDamage.sqf +++ b/addons/repair/functions/fnc_setHitPointDamage.sqf @@ -45,7 +45,7 @@ _hitPointDamageRepaired = 0; //positive for repairs : newSum = (oldSum - repaire if ((!isNil {_vehicle getHit _selectionName}) && {_x != ""}) then { _realHitpointCount = _realHitpointCount + 1; - if ((((toLower _x) find "glass") == -1) && {!isText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "HitPoints" >> _x >> "depends")}) then { + if ((((toLower _x) find "glass") == -1) && {(getText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "HitPoints" >> _x >> "depends")) in ["", "0"]}) then { _hitPointDamageSumOld = _hitPointDamageSumOld + (_allHitPointDamages select _forEachIndex); if (_forEachIndex == _hitPointIndex) then { _hitPointDamageRepaired = (_allHitPointDamages select _forEachIndex) - _hitPointDamage; From d02dacf61314627a7ac6a2e3141504b57e61b295 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 22 Jun 2017 22:58:57 -0500 Subject: [PATCH 133/198] Refuel - change nozzle position calc (#5279) --- .../functions/fnc_addLineToDebugDraw.sqf | 2 +- addons/refuel/functions/fnc_checkFuel.sqf | 2 +- addons/refuel/functions/fnc_connectNozzle.sqf | 3 +- .../functions/fnc_connectNozzleAction.sqf | 77 +++++++++---------- .../refuel/functions/fnc_readFuelCounter.sqf | 2 +- addons/refuel/functions/fnc_returnNozzle.sqf | 2 +- addons/refuel/functions/fnc_takeNozzle.sqf | 4 +- addons/refuel/functions/fnc_turnOff.sqf | 2 +- addons/refuel/functions/fnc_turnOn.sqf | 2 +- addons/refuel/script_component.hpp | 7 ++ 10 files changed, 52 insertions(+), 51 deletions(-) diff --git a/addons/common/functions/fnc_addLineToDebugDraw.sqf b/addons/common/functions/fnc_addLineToDebugDraw.sqf index 5fca9d68c1d..46f015c5e01 100644 --- a/addons/common/functions/fnc_addLineToDebugDraw.sqf +++ b/addons/common/functions/fnc_addLineToDebugDraw.sqf @@ -11,7 +11,7 @@ * None * * Example: - * [[0,0,0], [1,1,0], [1,0,0,1]]] call ace_common_fnc_addLineToDebugDraw; + * [[0,0,0], [1,1,0], [1,0,0,1]] call ace_common_fnc_addLineToDebugDraw; * * Public: No */ diff --git a/addons/refuel/functions/fnc_checkFuel.sqf b/addons/refuel/functions/fnc_checkFuel.sqf index 8acecccfd64..081f3447326 100644 --- a/addons/refuel/functions/fnc_checkFuel.sqf +++ b/addons/refuel/functions/fnc_checkFuel.sqf @@ -21,7 +21,7 @@ params [["_unit", objNull, [objNull]], ["_target", objNull, [objNull]]]; private _fuel = [_target] call FUNC(getFuel); [ - REFUEL_PROGRESS_DURATION * 2.5, + TIME_PROGRESSBAR(REFUEL_PROGRESS_DURATION * 2), [_unit, _target, _fuel], { params ["_args"]; diff --git a/addons/refuel/functions/fnc_connectNozzle.sqf b/addons/refuel/functions/fnc_connectNozzle.sqf index a124a331d5d..807960977eb 100644 --- a/addons/refuel/functions/fnc_connectNozzle.sqf +++ b/addons/refuel/functions/fnc_connectNozzle.sqf @@ -41,7 +41,6 @@ private _actionID = _unit addAction [format ["%1", locali if (cameraView == "EXTERNAL") then { _virtualPosASL = _virtualPosASL vectorAdd ((positionCameraToWorld [0.3,0,0]) vectorDiff (positionCameraToWorld [0,0,0])); }; - private _virtualPos = _virtualPosASL call EFUNC(common,ASLToPosition); private _lineInterection = lineIntersects [eyePos ace_player, _virtualPosASL, ace_player]; //Don't allow placing in a bad position: @@ -57,7 +56,7 @@ private _actionID = _unit addAction [format ["%1", locali _unit removeAction _actionID; if (GVAR(placeAction) == PLACE_APPROVE) then { - [_unit, _target, _virtualPos, _nozzle] call FUNC(ConnectNozzleAction); + [_unit, _target, _virtualPosASL, _nozzle] call FUNC(ConnectNozzleAction); }; }; // TODO add model like in attach/functions/fnc_attach }, 0, [_unit, _target, _nozzle, _actionID] ] call cba_fnc_addPerFrameHandler; diff --git a/addons/refuel/functions/fnc_connectNozzleAction.sqf b/addons/refuel/functions/fnc_connectNozzleAction.sqf index b1328636725..31ebe1bfdc4 100644 --- a/addons/refuel/functions/fnc_connectNozzleAction.sqf +++ b/addons/refuel/functions/fnc_connectNozzleAction.sqf @@ -6,7 +6,7 @@ * Arguments: * 0: Unit * 1: Target - * 2: Visual Position + * 2: Visual Position ASL * 3: Nozzle * * Return Value: @@ -20,60 +20,55 @@ #include "script_component.hpp" private ["_closeInDistance", "_endPosTestOffset"]; -params [["_unit", objNull, [objNull]], ["_target", objNull, [objNull]], ["_startingPosition", [0,0,0], [[]], 3], ["_nozzle", objNull, [objNull]]]; -private _startingOffset = _target worldToModel _startingPosition; +params [["_unit", objNull, [objNull]], ["_target", objNull, [objNull]], ["_startingPosASL", [0,0,0], [[]], 3], ["_nozzle", objNull, [objNull]]]; -private _startDistanceFromCenter = vectorMagnitude _startingOffset; -private _closeInUnitVector = vectorNormalized (_startingOffset vectorFromTo [0,0,0]); -private _closeInMax = _startDistanceFromCenter; -private _closeInMin = 0; +private _bestPosASL = []; +private _bestPosDistance = 1e99; +private _viewPos = _startingPosASL vectorAdd (((positionCameraToWorld [0,0,0]) vectorFromTo (positionCameraToWorld [0,0,1])) vectorMultiply 3); +private _modelVector = _startingPosASL vectorFromTo (AGLtoASL (_target modelToWorld [0,0,0])); +private _modelVectorLow = _startingPosASL vectorFromTo (AGLtoASL (_target modelToWorld [0,0,-1])); -while {(_closeInMax - _closeInMin) > 0.01} do { - _closeInDistance = (_closeInMax + _closeInMin) / 2; - _endPosTestOffset = _startingOffset vectorAdd (_closeInUnitVector vectorMultiply _closeInDistance); - _endPosTestOffset set [2, (_startingOffset select 2)]; - private _endPosTest = _target modelToWorldVisual _endPosTestOffset; - - private _doesIntersect = false; +{ + private _endPosASL = _x; + // [_startingPosASL, _endPosASL, [1,0,0,1]] call EFUNC(common,addLineToDebugDraw); // Debug scan lines + private _intersections = lineIntersectsSurfaces [_startingPosASL, _endPosASL, _unit]; { - if (_doesIntersect) exitWith {}; - private _startingPosShifted = _startingPosition vectorAdd _x; - _startASL = if (surfaceIsWater _startingPosShifted) then {_startingPosShifted} else {ATLtoASL _startingPosShifted}; - { - _endPosShifted = _endPosTest vectorAdd _x; - private _endASL = if (surfaceIsWater _startingPosShifted) then {_endPosShifted} else {ATLtoASL _endPosShifted}; - - //Uncomment to see the lazor show, and see how the scanning works: - // drawLine3D [_startingPosShifted, _endPosShifted, [1,0,0,1]]; - if (_target in lineIntersectsWith [_startASL, _endASL, _unit]) exitWith {_doesIntersect = true}; - } forEach [[0,0,0.045], [0,0,-0.045], [0,0.045,0], [0,-0.045,0], [0.045,0,0], [-0.045,0,0]]; - } forEach [[0,0,0], [0,0,0.05], [0,0,-0.05]]; - - if (_doesIntersect) then { - _closeInMax = _closeInDistance; - } else { - _closeInMin = _closeInDistance; - }; -}; - -_closeInDistance = (_closeInMax + _closeInMin) / 2; + _x params ["_intersectPosASL", "", "_intersectObject"]; + if (_intersectObject == _target) then { + private _distance = _startingPosASL distance _intersectPosASL; + if (_distance < _bestPosDistance) then { + _bestPosDistance = _distance; + _bestPosASL = _intersectPosASL; + }; + }; + } forEach _intersections; +} forEach [ + // Shoot rays towards player's view angle and see which spot is closest + _startingPosASL vectorAdd (((positionCameraToWorld [0,0,0]) vectorFromTo (positionCameraToWorld [0,0,1])) vectorMultiply 3), + _startingPosASL vectorAdd (((positionCameraToWorld [0,0,0]) vectorFromTo (positionCameraToWorld [-0.25,0,1])) vectorMultiply 3), + _startingPosASL vectorAdd (((positionCameraToWorld [0,0,0]) vectorFromTo (positionCameraToWorld [0.25,0,1])) vectorMultiply 3), + _startingPosASL vectorAdd (((positionCameraToWorld [0,0,0]) vectorFromTo (positionCameraToWorld [0,-0.25,1])) vectorMultiply 3), + _startingPosASL vectorAdd (((positionCameraToWorld [0,0,0]) vectorFromTo (positionCameraToWorld [-0.25,-0.25,1])) vectorMultiply 3), + _startingPosASL vectorAdd (((positionCameraToWorld [0,0,0]) vectorFromTo (positionCameraToWorld [0.25,-0.25,1])) vectorMultiply 3), + AGLtoASL (_target modelToWorld [0,0,0]), // Try old method of just using model center + AGLtoASL (_target modelToWorld [0,0,-0.5]) +]; //Checks (too close to center or can't attach) -if ((_startDistanceFromCenter - _closeInDistance) < 0.1) exitWith { +if (_bestPosASL isEqualTo []) exitWith { TRACE_2("no valid spot found",_closeInDistance,_startDistanceFromCenter); [localize LSTRING(Failed)] call EFUNC(common,displayTextStructured); }; //Move it out slightly, for visibility sake (better to look a little funny than be embedded//sunk in the hull and be useless) -_closeInDistance = (_closeInDistance - 0.05); +_bestPosASL = _bestPosASL vectorAdd ((_bestPosASL vectorFromTo _startingPosASL) vectorMultiply 0.05); -_endPosTestOffset = _startingOffset vectorAdd (_closeInUnitVector vectorMultiply _closeInDistance); -_endPosTestOffset set [2, (_startingOffset select 2)]; +private _attachPosModel = _target worldToModel (ASLtoAGL _bestPosASL); [ - REFUEL_PROGRESS_DURATION, - [_unit, _nozzle, _target, _endPosTestOffset], + TIME_PROGRESSBAR(REFUEL_PROGRESS_DURATION), + [_unit, _nozzle, _target, _attachPosModel], { params ["_args"]; _args params [["_unit", objNull, [objNull]], ["_nozzle", objNull, [objNull]], ["_target", objNull, [objNull]], ["_endPosTestOffset", [0,0,0], [[]], 3]]; diff --git a/addons/refuel/functions/fnc_readFuelCounter.sqf b/addons/refuel/functions/fnc_readFuelCounter.sqf index 1b1fb78e81b..98393e69ea8 100644 --- a/addons/refuel/functions/fnc_readFuelCounter.sqf +++ b/addons/refuel/functions/fnc_readFuelCounter.sqf @@ -19,7 +19,7 @@ params [["_unit", objNull, [objNull]], ["_target", objNull, [objNull]]]; [ - REFUEL_PROGRESS_DURATION, + TIME_PROGRESSBAR(REFUEL_PROGRESS_DURATION), [_unit, _target], { params ["_args"]; diff --git a/addons/refuel/functions/fnc_returnNozzle.sqf b/addons/refuel/functions/fnc_returnNozzle.sqf index 752be90d238..2b1ac64f8b7 100644 --- a/addons/refuel/functions/fnc_returnNozzle.sqf +++ b/addons/refuel/functions/fnc_returnNozzle.sqf @@ -24,7 +24,7 @@ private _source = _nozzle getVariable QGVAR(source); if (isNull _nozzle || {_source != _target}) exitWith {false}; [ - REFUEL_PROGRESS_DURATION, + TIME_PROGRESSBAR(REFUEL_PROGRESS_DURATION), [_unit, _nozzle, _target], { params ["_args"]; diff --git a/addons/refuel/functions/fnc_takeNozzle.sqf b/addons/refuel/functions/fnc_takeNozzle.sqf index 285dd37cedc..1b0baac80c2 100644 --- a/addons/refuel/functions/fnc_takeNozzle.sqf +++ b/addons/refuel/functions/fnc_takeNozzle.sqf @@ -39,7 +39,7 @@ if (isNull _nozzle) then { // func is called on fuel truck _endPosOffset = _endPosOffset select 0; }; [ - REFUEL_PROGRESS_DURATION, + TIME_PROGRESSBAR(REFUEL_PROGRESS_DURATION), [_unit, _target, _endPosOffset], { params ["_args"]; @@ -105,7 +105,7 @@ if (isNull _nozzle) then { // func is called on fuel truck ] call EFUNC(common,progressBar); } else { // func is called on muzzle either connected or on ground [ - REFUEL_PROGRESS_DURATION, + TIME_PROGRESSBAR(REFUEL_PROGRESS_DURATION), [_unit, _nozzle], { params ["_args"]; diff --git a/addons/refuel/functions/fnc_turnOff.sqf b/addons/refuel/functions/fnc_turnOff.sqf index 31308607bb1..2c2b8de158b 100644 --- a/addons/refuel/functions/fnc_turnOff.sqf +++ b/addons/refuel/functions/fnc_turnOff.sqf @@ -19,7 +19,7 @@ params [["_unit", objNull, [objNull]], ["_nozzle", objNull, [objNull]]]; [ - REFUEL_PROGRESS_DURATION, + TIME_PROGRESSBAR(REFUEL_PROGRESS_DURATION), [_unit, _nozzle], { params ["_args"]; diff --git a/addons/refuel/functions/fnc_turnOn.sqf b/addons/refuel/functions/fnc_turnOn.sqf index b7a4cf1bc98..cf8656f5585 100644 --- a/addons/refuel/functions/fnc_turnOn.sqf +++ b/addons/refuel/functions/fnc_turnOn.sqf @@ -19,7 +19,7 @@ params [["_unit", objNull, [objNull]], ["_nozzle", objNull, [objNull]]]; [ - REFUEL_PROGRESS_DURATION, + TIME_PROGRESSBAR(REFUEL_PROGRESS_DURATION), [_unit, _nozzle], { params ["_args"]; diff --git a/addons/refuel/script_component.hpp b/addons/refuel/script_component.hpp index 19f12ed3662..3f85277a998 100644 --- a/addons/refuel/script_component.hpp +++ b/addons/refuel/script_component.hpp @@ -5,6 +5,7 @@ // #define DEBUG_MODE_FULL // #define DISABLE_COMPILE_CACHE // #define ENABLE_PERFORMANCE_COUNTERS +// #define FAST_PROGRESSBARS #ifdef DEBUG_ENABLED_REFUEL #define DEBUG_MODE_FULL @@ -29,3 +30,9 @@ _weaponSelect = _unit getVariable QGVAR(selectedWeaponOnRefuel); \ _unit selectWeapon _weaponSelect; \ _unit setVariable [QGVAR(selectedWeaponOnRefuel), nil]; + +#ifdef FAST_PROGRESSBARS + #define TIME_PROGRESSBAR(X) ((X) * 0.075) +#else + #define TIME_PROGRESSBAR(X) (X) +#endif From fde984ad7b3810e04c8576de8f5fde88a4bba7c3 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 23 Jun 2017 11:31:19 -0500 Subject: [PATCH 134/198] Handle ace_cargo_canLoad set to scalar (#5306) --- addons/cargo/functions/fnc_initObject.sqf | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/addons/cargo/functions/fnc_initObject.sqf b/addons/cargo/functions/fnc_initObject.sqf index d2ce8e5b58a..d59249c31ba 100644 --- a/addons/cargo/functions/fnc_initObject.sqf +++ b/addons/cargo/functions/fnc_initObject.sqf @@ -21,10 +21,13 @@ TRACE_2("params",_object,_type); // If object had size given to it via eden/public then override config canLoad setting private _canLoadPublic = _object getVariable [QGVAR(canLoad), false]; +if (!(_canLoadPublic isEqualType false)) then { + WARNING_4("%1[%2] - Variable %3 is %4 - Should be bool",_object,_type,QGVAR(canLoad),_canLoadPublic); +}; private _canLoadConfig = getNumber (configFile >> "CfgVehicles" >> _type >> QGVAR(canLoad)) == 1; // Nothing to do here if object can't be loaded -if !(_canLoadConfig || _canLoadPublic) exitWith {}; +if !(_canLoadConfig || {_canLoadPublic in [true, 1]}) exitWith {}; // Servers and HCs do not require action menus (beyond this point) if !(hasInterface) exitWith {}; @@ -47,7 +50,7 @@ if (_canLoadConfig) then { private _condition = { //IGNORE_PRIVATE_WARNING ["_target", "_player"]; GVAR(enable) && - {(_target getVariable [QGVAR(canLoad), getNumber (configFile >> "CfgVehicles" >> (typeOf _target) >> QGVAR(canLoad)) == 1])} && + {(_target getVariable [QGVAR(canLoad), getNumber (configFile >> "CfgVehicles" >> (typeOf _target) >> QGVAR(canLoad))]) in [true, 1]} && {locked _target < 2} && {alive _target} && {[_player, _target, []] call EFUNC(common,canInteractWith)} && From 9bf59bc74d3bb6f73622f5cc75c1119ef781d3aa Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 23 Jun 2017 11:31:59 -0500 Subject: [PATCH 135/198] Add XEH to ace_module (#5304) --- addons/modules/config.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/modules/config.cpp b/addons/modules/config.cpp index 662b1cb349b..6475b90cf41 100644 --- a/addons/modules/config.cpp +++ b/addons/modules/config.cpp @@ -14,6 +14,7 @@ class CfgPatches { }; }; +class CBA_Extended_EventHandlers; class CfgVehicles { class Logic; class Module_F: Logic { @@ -23,6 +24,7 @@ class CfgVehicles { class ACE_Module: Module_F { class EventHandlers { init = QUOTE(_this call DFUNC(moduleInit)); + class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {}; }; }; }; From 2823ee58a462224c94f398edc0e6954fb34c0500 Mon Sep 17 00:00:00 2001 From: Tim Beswick Date: Fri, 23 Jun 2017 17:32:48 +0100 Subject: [PATCH 136/198] Changed hellfire interaction check & added N variant (#5294) * Changed weapon check for interaction to generic ace_hellfire_enabled value * Added November hellfire variant * Cleanup * +1 --- addons/hellfire/CfgAmmo.hpp | 15 ++++++- addons/hellfire/CfgMagazines.hpp | 40 +++++++++++++++++++ addons/hellfire/CfgWeapons.hpp | 6 ++- .../hellfire/functions/fnc_setupVehicle.sqf | 2 +- addons/hellfire/stringtable.xml | 15 ------- 5 files changed, 60 insertions(+), 18 deletions(-) diff --git a/addons/hellfire/CfgAmmo.hpp b/addons/hellfire/CfgAmmo.hpp index b5df3994f2d..c8900459ad5 100644 --- a/addons/hellfire/CfgAmmo.hpp +++ b/addons/hellfire/CfgAmmo.hpp @@ -19,7 +19,7 @@ class CfgAmmo { laserLock = 0; manualControl = 0; maxSpeed = 450; - + thrustTime = 2.5; // motor burn 2-3 sec thrust = 250; timeToLive = 40; @@ -54,4 +54,17 @@ class CfgAmmo { attackProfiles[] = {"hellfire", "hellfire_hi", "hellfire_lo"}; }; }; + class ACE_Hellfire_AGM114N: ACE_Hellfire_AGM114K { + displayName = "AGM-114N"; + displayNameShort = "AGM-114N"; + description = "AGM-114N"; + descriptionShort = "AGM-114N"; + hit = 1100; + indirectHit = 200; + indirectHitRange = 10; + explosionEffects = "BombExplosion"; + class ace_missileguidance: ace_missileguidance { + enabled = 1; // Missile Guidance must be explicitly enabled + }; + }; }; diff --git a/addons/hellfire/CfgMagazines.hpp b/addons/hellfire/CfgMagazines.hpp index 6f636c2c878..79c5b5016ca 100644 --- a/addons/hellfire/CfgMagazines.hpp +++ b/addons/hellfire/CfgMagazines.hpp @@ -1,6 +1,7 @@ class CfgMagazines { class 12Rnd_PG_missiles; + // Kilo - tandem shaped charge HEAT (anti-tank) class 6Rnd_ACE_Hellfire_AGM114K: 12Rnd_PG_missiles { // Old style vehicle magazine count = 6; ammo = "ACE_Hellfire_AGM114K"; @@ -44,4 +45,43 @@ class CfgMagazines { model = "\A3\Weapons_F\DynamicLoadout\PylonPod_4x_Missile_LG_scalpel_F.p3d"; mirrorMissilesIndexes[] = {2, 1, 4, 3}; }; + + // November - Metal augmented charge (Thermobaric) (Enclosures, ships, urban targets, air defense units) + class 6Rnd_ACE_Hellfire_AGM114N: 6Rnd_ACE_Hellfire_AGM114K { // Old style vehicle magazine + count = 6; + ammo = "ACE_Hellfire_AGM114N"; + displayName = "AGM-114N [ACE]"; + displayNameShort = "AGM-114N"; + descriptionShort = "AGM-114N"; + }; + + // 1.70 pylon magazines: + class PylonMissile_1Rnd_ACE_Hellfire_AGM114N: PylonMissile_1Rnd_ACE_Hellfire_AGM114K { // Bare missle + displayName = "1x AGM-114N [ACE]"; + displayNameShort = "AGM-114N"; + descriptionShort = "AGM-114N"; + ammo = "ACE_Hellfire_AGM114N"; + pylonWeapon = QGVAR(launcher_N); + }; + class PylonRack_1Rnd_ACE_Hellfire_AGM114N: PylonRack_1Rnd_ACE_Hellfire_AGM114K { // 1x Launcher Support Rack + displayName = "1x AGM-114N [ACE]"; + displayNameShort = "AGM-114N"; + descriptionShort = "AGM-114N"; + ammo = "ACE_Hellfire_AGM114N"; + pylonWeapon = QGVAR(launcher_N); + }; + class PylonRack_3Rnd_ACE_Hellfire_AGM114N: PylonRack_3Rnd_ACE_Hellfire_AGM114K { // 3x Launcher Support Rack + displayName = "3x AGM-114N [ACE]"; + displayNameShort = "AGM-114N"; + descriptionShort = "AGM-114N"; + ammo = "ACE_Hellfire_AGM114N"; + pylonWeapon = QGVAR(launcher_N); + }; + class PylonRack_4Rnd_ACE_Hellfire_AGM114N: PylonRack_4Rnd_ACE_Hellfire_AGM114K { // 4x Launcher Support Rack + displayName = "4x AGM-114N [ACE]"; + displayNameShort = "AGM-114N"; + descriptionShort = "AGM-114N"; + ammo = "ACE_Hellfire_AGM114N"; + pylonWeapon = QGVAR(launcher_N); + }; }; diff --git a/addons/hellfire/CfgWeapons.hpp b/addons/hellfire/CfgWeapons.hpp index 1b9a76352e0..483f1dd0a70 100644 --- a/addons/hellfire/CfgWeapons.hpp +++ b/addons/hellfire/CfgWeapons.hpp @@ -1,7 +1,7 @@ class CfgWeapons { class missiles_SCALPEL; class GVAR(launcher): missiles_SCALPEL { - displayName = CSTRING(Hellfire); + displayName = "AGM-114K Hellfire II"; GVAR(enabled) = 1; // show attack profile / lock on hud EGVAR(laser,canSelect) = 1; // can ace_laser lock (allows switching laser code) canLock = 0; @@ -10,4 +10,8 @@ class CfgWeapons { lockingTargetSound[] = {"",0,1}; lockedTargetSound[] = {"",0,1}; }; + class GVAR(launcher_N): GVAR(launcher) { + displayName = "AGM-114N Hellfire II"; + magazines[] = {"6Rnd_ACE_Hellfire_AGM114N", "PylonMissile_1Rnd_ACE_Hellfire_AGM114N", "PylonRack_1Rnd_ACE_Hellfire_AGM114N", "PylonRack_3Rnd_ACE_Hellfire_AGM114N", "PylonRack_4Rnd_ACE_Hellfire_AGM114N"}; + }; }; diff --git a/addons/hellfire/functions/fnc_setupVehicle.sqf b/addons/hellfire/functions/fnc_setupVehicle.sqf index bec56d52a76..811e6c6f3f5 100644 --- a/addons/hellfire/functions/fnc_setupVehicle.sqf +++ b/addons/hellfire/functions/fnc_setupVehicle.sqf @@ -61,7 +61,7 @@ private _fnc_condition = { params ["_target", "_player", "_attackProfile"]; private _turretPath = if (ACE_player == (driver _target)) then {[-1]} else {ACE_player call CBA_fnc_turretPath}; - private _hasWeapon = ({QGVAR(launcher) == _x} count (_target weaponsTurret _turretPath)) > 0; + private _hasWeapon = ({(isNumber (configFile >> "CfgWeapons" >> _x >> QGVAR(enabled))) && {getNumber (configFile >> "CfgWeapons" >> _x >> QGVAR(enabled)) > 0}} count (_target weaponsTurret _turretPath)) > 0; (_hasWeapon) && {(_target getVariable [QEGVAR(missileguidance,attackProfile), "hellfire"]) != _attackProfile}; diff --git a/addons/hellfire/stringtable.xml b/addons/hellfire/stringtable.xml index d60e6ac9a8c..4cca81ef929 100644 --- a/addons/hellfire/stringtable.xml +++ b/addons/hellfire/stringtable.xml @@ -1,21 +1,6 @@  - - Hellfire - Hellfire - Hellfire - Hellfire - Hellfire - Hellfire - Hellfire - Hellfire - Hellfire - Hellfire - ヘルファイア - 地狱火 - 地獄火 - Set Hellfire mode Imposta modalità Hellfire From 98ccd879f30ab81c65976f429ce3e748dd16b760 Mon Sep 17 00:00:00 2001 From: classic Date: Sat, 24 Jun 2017 01:39:06 +0900 Subject: [PATCH 137/198] Japanese translation d02dacf (#5309) * add the Jpn translation for repair add the Japanese translation for repair * minor fix to Jpn translation for medical minor fix to Jpn translation for medical --- addons/medical/stringtable.xml | 20 ++++++++++---------- addons/repair/stringtable.xml | 1 + 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 8061d2511c2..058bc9ee0ef 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -394,7 +394,7 @@ Infúzió sós vizzel... Effettuo la rasfusione di soluzione salina Transfundindo Soro... - 血しょうを投与中・・・ + 生理食塩水を投与中・・・ 생리식염수 수혈중... 施打生理食盐水中 ... 施打生理食鹽水中 ... @@ -410,7 +410,7 @@ Infúzió vérplazmával... Effettu la trasfusione di plasma... Transfundindo Plasma... - 生理食塩水を投与中・・・ + 血しょうを投与中・・・ 혈장 수혈중... 输血浆中 ... 輸血漿中 ... @@ -794,7 +794,7 @@ Sós víz adása intravénásan (1000ml) Effettua trasfusione salina EV (1˙000ml) Administrar Soro IV (1000ml) - 血しょう IV (1000ml) をあたえる + 生理食塩水 IV (1000ml) をあたえる IV 생리식염수 수혈 (1000ml) 注射生理食盐水 (1000ml) 注射生理食鹽水 (1000ml) @@ -810,7 +810,7 @@ Sós víz adása intravénásan (500ml) Effettua trasfusione salina EV (500ml) Administrar Soro IV (500ml) - 血しょう IV (500ml) をあたえる + 生理食塩水 IV (500ml) をあたえる IV 생리식염수 수혈 (500ml) 注射生理食盐水 (500ml) 注射生理食鹽水 (500ml) @@ -826,7 +826,7 @@ Sós víz adása intravénásan (250ml) Effettua trasfusione salina EV (250ml) Administrar Soro IV (250ml) - 血しょう IV (250ml) をあたえる + 生理食塩水 IV (250ml) をあたえる IV 생리식염수 수혈 (250ml) 注射生理食盐水 (250ml) 注射生理食鹽水 (250ml) @@ -1098,7 +1098,7 @@ Una benda apposita, utilizzata per coprire una ferita, la quale viene applicata su di essa una volta fermata l'emorragia. Uma curativo, material específico para cobrir um ferimento que é aplicado assim que o sangramento é estancando. Obvaz je vhodným způsobem upravený sterilní materiál, určený k překrytí rány, případně k fixaci poranění. - ドレッシングは、傷口を血液凝固剤でおおうようにできていて、つかうと出血の原因を取りさります。 + 緊急圧迫包帯は、傷口を血液凝固剤でおおうようにできていて、つかうと出血の原因を取りさります。 드레싱, 출혈을 막고서 상처를 덮기위해 쓰는 물건입니다. 用于覆盖伤口以防止出血, 透过敷料的止血剂来让出血慢慢停止. 用於覆蓋傷口以防止出血, 透過敷料的止血劑來讓出血慢慢停止. @@ -1447,7 +1447,7 @@ Plasma EV (1000ml) Plasma IV (1000ml) Krevní plazma (1000ml) - 生理食塩水 IV (1000ml) + 血しょう IV (1000ml) 혈장 IV (250ml) 血浆 (1000ml) 血漿 (1000ml) @@ -1495,7 +1495,7 @@ Plasma EV (500ml) Plasma IV (500ml) Krevní plazma (500ml) - 生理食塩水 IV (500ml) + 血しょう IV (500ml) 혈장 IV (500ml) 血浆 (500ml) 血漿 (500ml) @@ -1511,7 +1511,7 @@ Plasma EV (250ml) Plasma IV (250ml) Krevní plazma (250ml) - 生理食塩水 IV (250ml) + 血しょう IV (250ml) 혈장 IV (250ml) 血浆 (250ml) 血漿 (250ml) diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index ea34a04f9c2..45a6bf622b9 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -1422,6 +1422,7 @@ Adv. Engineer Adv. Geniere + 上級工兵 专精 專精 From 0c58f98d93385e1a7f2039b42304ba9ba7947a93 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Mon, 26 Jun 2017 22:49:59 +0100 Subject: [PATCH 138/198] Deprecate fnc_stageSpectator The function was a source of confusion alongside fnc_setSpectator and so it is replaced by an additional parameter to hide the unit as part of fnc_setSpectator. No longer is the unit moved either, to reduce complexity and give more control to mission maker. --- .../functions/fnc_getTargetEntities.sqf | 3 +++ .../functions/fnc_respawnTemplate.sqf | 4 ++-- .../spectator/functions/fnc_setSpectator.sqf | 21 ++++++++++++++----- .../functions/fnc_stageSpectator.sqf | 2 ++ 4 files changed, 23 insertions(+), 7 deletions(-) diff --git a/addons/spectator/functions/fnc_getTargetEntities.sqf b/addons/spectator/functions/fnc_getTargetEntities.sqf index 91acef8cc54..80ee72fe032 100644 --- a/addons/spectator/functions/fnc_getTargetEntities.sqf +++ b/addons/spectator/functions/fnc_getTargetEntities.sqf @@ -38,5 +38,8 @@ _entities = _entities - GVAR(unitBlacklist); // Whitelist overrides filtering _entities append GVAR(unitWhitelist); +// Never include the local player +_entities deleteAt (_entities find player); + // Return no duplicates _entities arrayIntersect _entities diff --git a/addons/spectator/functions/fnc_respawnTemplate.sqf b/addons/spectator/functions/fnc_respawnTemplate.sqf index 4da96b84931..7cc8b280314 100644 --- a/addons/spectator/functions/fnc_respawnTemplate.sqf +++ b/addons/spectator/functions/fnc_respawnTemplate.sqf @@ -31,8 +31,8 @@ if (_respawn in [0,1,4,5]) exitWith { if (typeOf _newCorpse == "seagull") then { deleteVehicle _newCorpse; }; }; -// If unit was staged then they entered spectator before dying, ignore -if !(GETVAR(_newCorpse,GVAR(isStaged),false)) then { +// If player died while already in spectator, ignore +if (!GVAR(isSet) || {alive _newCorpse}) then { // Negligible respawn delay can result in entering spectator after respawn // So we just use this value rather than living state of the unit [playerRespawnTime > 1] call FUNC(setSpectator); diff --git a/addons/spectator/functions/fnc_setSpectator.sqf b/addons/spectator/functions/fnc_setSpectator.sqf index 491aee112e3..ac353745ff3 100644 --- a/addons/spectator/functions/fnc_setSpectator.sqf +++ b/addons/spectator/functions/fnc_setSpectator.sqf @@ -3,12 +3,12 @@ * Enter/exit spectator mode for the local player * * Client will be able to communicate in ACRE/TFAR as appropriate - * If player is alive, will be moved to marker ace_spectator_respawn (or [0,0,0] by default) - * If player is alive upon exit, will be moved back to original position + * If "hide player" is true player will be hidden from group, invisible and invulnerable, but unmoved * * Arguments: * 0: Spectator state of local client (default: true) * 1: Force interface (default: true) + * 2: Hide player (if alive) (default: true) * * Return Value: * None @@ -21,7 +21,7 @@ #include "script_component.hpp" -params [["_set",true,[true]], ["_force",true,[true]]]; +params [["_set",true,[true]], ["_force",true,[true]], ["_hide",true,[true]]]; // Only clients can be spectators if !(hasInterface) exitWith {}; @@ -97,9 +97,20 @@ if (_set) then { }; }; -// Stage player if alive to prevent movement and death +// Hide/Unhide the player if enabled and alive if (alive player) then { - [player, _set] call FUNC(stageSpectator); + private _hidden = (_hide && _set); + + // Ignore damage (vanilla and ace_medical) + player allowDamage !_hidden; + _unit setVariable [QEGVAR(medical,allowDamage), !_hidden]; + + // Move to/from group as appropriate + [_unit, _hidden, QGVAR(isSet), side group _unit] call EFUNC(common,switchToGroupSide); + + // Ghosts can't talk + [_hidden, QGVAR(isSet)] call EFUNC(common,hideUnit); + [_hidden, QGVAR(isSet)] call EFUNC(common,muteUnit); }; // Reset interruptions diff --git a/addons/spectator/functions/fnc_stageSpectator.sqf b/addons/spectator/functions/fnc_stageSpectator.sqf index 56bf9cffebb..d11402f22a3 100644 --- a/addons/spectator/functions/fnc_stageSpectator.sqf +++ b/addons/spectator/functions/fnc_stageSpectator.sqf @@ -20,6 +20,8 @@ #include "script_component.hpp" +ACE_DEPRECATED(QFUNC(stageSpectator),"3.12.0",[ARR_2(QFUNC(setSpectator),"'s new 3rd parameter")] joinString ""); + params [["_unit",player,[objNull]], ["_set",true,[true]]]; // No change, no service (but allow spectators to be reset) From 3c2ee8f49eed0e234183926957081447093a03d9 Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Sat, 8 Jul 2017 12:20:09 +0100 Subject: [PATCH 139/198] Fix undefined variable --- addons/spectator/functions/fnc_setSpectator.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/spectator/functions/fnc_setSpectator.sqf b/addons/spectator/functions/fnc_setSpectator.sqf index ac353745ff3..79496df15d1 100644 --- a/addons/spectator/functions/fnc_setSpectator.sqf +++ b/addons/spectator/functions/fnc_setSpectator.sqf @@ -103,10 +103,10 @@ if (alive player) then { // Ignore damage (vanilla and ace_medical) player allowDamage !_hidden; - _unit setVariable [QEGVAR(medical,allowDamage), !_hidden]; + player setVariable [QEGVAR(medical,allowDamage), !_hidden]; // Move to/from group as appropriate - [_unit, _hidden, QGVAR(isSet), side group _unit] call EFUNC(common,switchToGroupSide); + [player, _hidden, QGVAR(isSet), side group player] call EFUNC(common,switchToGroupSide); // Ghosts can't talk [_hidden, QGVAR(isSet)] call EFUNC(common,hideUnit); From 5cf75697119d41d21aa379188425b03b2284236a Mon Sep 17 00:00:00 2001 From: jonpas Date: Sat, 8 Jul 2017 16:48:39 +0200 Subject: [PATCH 140/198] Correct new Chinese stringtable identifiers (#5334) --- addons/advanced_ballistics/stringtable.xml | 106 +- addons/advanced_fatigue/stringtable.xml | 54 +- addons/advanced_throwing/stringtable.xml | 86 +- addons/aircraft/stringtable.xml | 14 +- addons/atragmx/stringtable.xml | 18 +- addons/attach/stringtable.xml | 70 +- addons/ballistics/stringtable.xml | 570 ++++---- addons/captives/stringtable.xml | 110 +- addons/cargo/stringtable.xml | 106 +- addons/chemlights/stringtable.xml | 162 +-- addons/common/stringtable.xml | 278 ++-- addons/concertina_wire/stringtable.xml | 18 +- addons/cookoff/stringtable.xml | 38 +- addons/dagr/stringtable.xml | 18 +- addons/disarming/stringtable.xml | 6 +- addons/disposable/stringtable.xml | 14 +- addons/dogtags/stringtable.xml | 26 +- addons/dragging/stringtable.xml | 26 +- addons/explosives/stringtable.xml | 250 ++-- addons/fastroping/stringtable.xml | 38 +- addons/fcs/stringtable.xml | 26 +- addons/finger/stringtable.xml | 42 +- addons/flashlights/stringtable.xml | 26 +- addons/flashsuppressors/stringtable.xml | 30 +- addons/frag/stringtable.xml | 54 +- addons/gestures/stringtable.xml | 82 +- addons/gforces/stringtable.xml | 10 +- addons/goggles/stringtable.xml | 22 +- addons/grenades/stringtable.xml | 98 +- addons/gunbag/stringtable.xml | 26 +- addons/hearing/stringtable.xml | 74 +- addons/hellfire/stringtable.xml | 6 +- addons/huntir/stringtable.xml | 66 +- addons/interact_menu/stringtable.xml | 114 +- addons/interaction/stringtable.xml | 266 ++-- addons/inventory/stringtable.xml | 38 +- addons/javelin/stringtable.xml | 6 +- addons/kestrel4500/stringtable.xml | 30 +- addons/laser/stringtable.xml | 18 +- addons/laserpointer/stringtable.xml | 30 +- addons/logistics_uavbattery/stringtable.xml | 26 +- addons/logistics_wirecutter/stringtable.xml | 22 +- addons/magazinerepack/stringtable.xml | 38 +- addons/main/stringtable.xml | 10 +- addons/map/stringtable.xml | 138 +- addons/map_gestures/stringtable.xml | 78 +- addons/maptools/stringtable.xml | 62 +- addons/markers/stringtable.xml | 6 +- addons/medical/stringtable.xml | 1408 +++++++++---------- addons/medical_ai/stringtable.xml | 6 +- addons/medical_blood/stringtable.xml | 14 +- addons/medical_menu/stringtable.xml | 222 +-- addons/microdagr/stringtable.xml | 130 +- addons/minedetector/stringtable.xml | 34 +- addons/missileguidance/stringtable.xml | 50 +- addons/missionmodules/stringtable.xml | 70 +- addons/mk6mortar/stringtable.xml | 134 +- addons/movement/stringtable.xml | 18 +- addons/mx2a/stringtable.xml | 10 +- addons/nametags/stringtable.xml | 138 +- addons/nightvision/stringtable.xml | 62 +- addons/nlaw/stringtable.xml | 14 +- addons/optics/stringtable.xml | 42 +- addons/optionsmenu/stringtable.xml | 150 +- addons/overheating/stringtable.xml | 138 +- addons/overpressure/stringtable.xml | 10 +- addons/parachute/stringtable.xml | 26 +- addons/quickmount/stringtable.xml | 46 +- addons/rangecard/stringtable.xml | 30 +- addons/realisticnames/stringtable.xml | 810 +++++------ addons/rearm/stringtable.xml | 166 +-- addons/refuel/stringtable.xml | 130 +- addons/reload/stringtable.xml | 26 +- addons/reloadlaunchers/stringtable.xml | 18 +- addons/repair/stringtable.xml | 474 +++---- addons/respawn/stringtable.xml | 98 +- addons/safemode/stringtable.xml | 18 +- addons/sandbag/stringtable.xml | 54 +- addons/scopes/stringtable.xml | 118 +- addons/slideshow/stringtable.xml | 62 +- addons/spectator/stringtable.xml | 258 ++-- addons/spottingscope/stringtable.xml | 14 +- addons/switchunits/stringtable.xml | 70 +- addons/tacticalladder/stringtable.xml | 30 +- addons/tagging/stringtable.xml | 70 +- addons/trenches/stringtable.xml | 62 +- addons/tripod/stringtable.xml | 26 +- addons/ui/stringtable.xml | 170 +-- addons/vector/stringtable.xml | 22 +- addons/vehiclelock/stringtable.xml | 98 +- addons/vehicles/stringtable.xml | 14 +- addons/viewdistance/stringtable.xml | 106 +- addons/weaponselect/stringtable.xml | 94 +- addons/weather/stringtable.xml | 66 +- addons/winddeflection/stringtable.xml | 62 +- addons/yardage450/stringtable.xml | 14 +- addons/zeus/stringtable.xml | 306 ++-- 97 files changed, 4830 insertions(+), 4830 deletions(-) diff --git a/addons/advanced_ballistics/stringtable.xml b/addons/advanced_ballistics/stringtable.xml index 8e942364a9a..631acc92c76 100644 --- a/addons/advanced_ballistics/stringtable.xml +++ b/addons/advanced_ballistics/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Mostrar Informação do Vento 風の情報を表示 바람의 정보를 표시 - 顯示風況 - 显示风况 + 顯示風況 + 显示风况 Show Protractor @@ -30,8 +30,8 @@ Mostrar Transferidor 分度器を表示 각도기 표시 - 顯示量角器 - 显示量角器 + 顯示量角器 + 显示量角器 Advanced Ballistics @@ -46,8 +46,8 @@ Balistica Avanzata アドバンスド バリスティックス 고급 탄도학 - 先進彈道系統 - 先进弹道系统 + 先進彈道系統 + 先进弹道系统 Advanced Ballistics @@ -62,8 +62,8 @@ Balistica Avanzata アドバンスド バリスティックス 고급 탄도학 - 先進彈道系統 - 先进弹道系统 + 先進彈道系統 + 先进弹道系统 Enables advanced ballistics @@ -78,8 +78,8 @@ Abilita Balistica Avanzata アドバンスド バリスティックスを有効化 고급 탄도학을 적용합니다 - 啟用先進彈道系統 - 启用先进弹道系统 + 啟用先進彈道系統 + 启用先进弹道系统 Enabled For Snipers @@ -94,8 +94,8 @@ Abilita per Tiratori Scelti 狙撃手へ有効化 저격수만 적용 - 啟用給狙擊手 - 启用给狙击手 + 啟用給狙擊手 + 启用给狙击手 Enables advanced ballistics for non local snipers (when using high power optics) @@ -110,8 +110,8 @@ Abilita Balistica Avanzata per Tiratori Scelti non locali (con ottiche ad alto potenziale) 非ローカルの狙撃手 (高倍率スコープを使っている場合)へアドバンスド バリスティックスを有効化します 고급 탄도학을 비-저격수 인원에게도 적용합니다(고성능 조준경을 사용시) - 啟用先進彈道系統給非本地狙擊手(當使用高倍率光學瞄鏡時) - 启用先进弹道系统给非本地狙击手(当使用高倍率光学瞄镜时) + 啟用先進彈道系統給非本地狙擊手(當使用高倍率光學瞄鏡時) + 启用先进弹道系统给非本地狙击手(当使用高倍率光学瞄镜时) Enabled For Group Members @@ -126,8 +126,8 @@ Abilita per Membri del Gruppo グループ メンバーへ有効化 그룹 멤버도 적용 - 啟用給小隊成員 - 启用给小队成员 + 啟用給小隊成員 + 启用给小队成员 Enables advanced ballistics for non local group members @@ -142,8 +142,8 @@ Abilita Balistica Avanzata per Membri non locali del Gruppo 非ローカルのグループ メンバーへアドバンスド バリスティックスを有効化します 고급 탄도학을 비-그룹멤버에게도 적용합니다 - 啟用先進彈道系統給非本地小隊成員 - 启用先进弹道系统给非本地小队成员 + 啟用先進彈道系統給非本地小隊成員 + 启用先进弹道系统给非本地小队成员 Enabled For Everyone @@ -158,8 +158,8 @@ Abilita per tutti 全員に有効化 모두에게 적용 - 啟用給所有人 - 启用给所有人 + 啟用給所有人 + 启用给所有人 Enables advanced ballistics for all non local players (enabling this may degrade performance during heavy firefights in multiplayer) @@ -174,8 +174,8 @@ Abilita Balistica Avanzata per tutti i giocatori non locali (abilitare questo parametro potrebbe ridurre le prestazioni durante scontri intensi in multiplayer) 非ローカルの全プレイヤーへアドバンスド バリスティックスを有効化します (マルチプレイで大規模な銃撃戦がおこなわれると、動作の低下を招きます) 고급 탄도학을 모든 비-로컬그룹에게도 적용합니다(적용 후 대규모 전투시 성능하락을 유발할 수 있습니다) - 啟用先進彈道系統給所有非本地玩家 (啟用此功能後,在多人連線大量交火時可能會降低效能) - 启用先进弹道系统给所有非本地玩家 (启用此功能后,在多人连线大量交火时可能会降低效能) + 啟用先進彈道系統給所有非本地玩家 (啟用此功能後,在多人連線大量交火時可能會降低效能) + 启用先进弹道系统给所有非本地玩家 (启用此功能后,在多人连线大量交火时可能会降低效能) Always Enabled For Group Members @@ -190,8 +190,8 @@ Sempre abilitato per Membri del Gruppo 常にグループ メンバーへ有効化 그룹 멤버에게 항상 적용 - 永遠啟用給小隊成員 - 永远启用给小队成员 + 永遠啟用給小隊成員 + 永远启用给小队成员 Always enables advanced ballistics when a group member fires @@ -206,8 +206,8 @@ Abilita sempre Balistica Avanzata quando un membro del gruppo spara グループ メンバーが射撃した時、常にアドバンスド バリスティックスを有効化します 그룹 멤버가 발사시 항상 고급 탄도학을 적용합니다 - 當小隊成員開火時,永遠啟用先進彈道系統 - 当小队成员开火时,永远启用先进弹道系统 + 當小隊成員開火時,永遠啟用先進彈道系統 + 当小队成员开火时,永远启用先进弹道系统 Disabled In FullAuto Mode @@ -222,8 +222,8 @@ Disabilita in modalità di fuoco automatico フルオートでは無効化 조정간 자동시 비활성화 - 在全自動模式時關閉 - 在全自动模式时关闭 + 在全自動模式時關閉 + 在全自动模式时关闭 Disables the advanced ballistics during full auto fire @@ -238,8 +238,8 @@ Disabilita Balistica Avanzata durante fuoco automatico フルオートで射撃中ではアドバンスド バリスティックスを無効化します 조정간 자동시 고급 탄도학을 비활성화 합니다 - 在全自動模式開火時,關閉先進彈道系統 - 在全自动模式开火时,关闭先进弹道系统 + 在全自動模式開火時,關閉先進彈道系統 + 在全自动模式开火时,关闭先进弹道系统 Enable Ammo Temperature Simulation @@ -254,8 +254,8 @@ Abilita simulazione della temperatura delle munizioni 弾薬の温度シミュレーションを有効化 탄약 온도 구현 적용 - 啟用彈藥溫度模擬系統 - 启用弹药温度模拟系统 + 啟用彈藥溫度模擬系統 + 启用弹药温度模拟系统 Muzzle velocity varies with ammo temperature @@ -270,8 +270,8 @@ La velocità dello sparo varia a seconda della temperatura delle munizioni 弾薬の温度により初速値を変化させます 탄약 온도에 비례해 총구 속도가 달라집니다 - 子彈初速將隨彈藥溫度而有所變化 - 子弹初速将随弹药温度而有所变化 + 子彈初速將隨彈藥溫度而有所變化 + 子弹初速将随弹药温度而有所变化 Enable Barrel Length Simulation @@ -286,8 +286,8 @@ Abilita simulazione della lunghezza della canna 銃身長のシミュレーションを有効化 총열 길이 구현 적용 - 啟用槍管長度模擬系統 - 启用枪管长度模拟系统 + 啟用槍管長度模擬系統 + 启用枪管长度模拟系统 Muzzle velocity varies with barrel length @@ -302,8 +302,8 @@ La velocità di sparo varia a seconda della lunghezza della canna 銃身長により初速値を変化させます 총구 속도가 총열에 비례해 달라집니다 - 子彈初速將隨槍管長度而有所變化 - 子弹初速将随枪管长度而有所变化 + 子彈初速將隨槍管長度而有所變化 + 子弹初速将随枪管长度而有所变化 Enable Bullet Trace Effect @@ -318,8 +318,8 @@ Abilita effetto dei Proiettili Traccianti 弾丸の痕跡表示を有効化 예광탄 효과 적용 - 啟用曳光彈效果 - 启用曳光弹效果 + 啟用曳光彈效果 + 启用曳光弹效果 Enables a bullet trace effect to high caliber bullets (only visible when looking through high power optics) @@ -334,8 +334,8 @@ Abilita effetto dei proiettili traccianti di alto calibro (visibile solo attraverso ottiche ad alto potenziale) 大口径の銃弾による弾丸の痕跡表示を有効化します (高倍率スコープを介してでしか見れません) 대구경 탄환에 예광탄 효과를 적용합니다(오직 고성능 조준경 사용시에만 보입니다) - 啟用曳光彈效果給大口徑子彈 (只有透過高倍率光學瞄鏡才能看到) - 启用曳光弹效果给大口径子弹 (只有透过高倍率光学瞄镜才能看到) + 啟用曳光彈效果給大口徑子彈 (只有透過高倍率光學瞄鏡才能看到) + 启用曳光弹效果给大口径子弹 (只有透过高倍率光学瞄镜才能看到) Simulation Interval @@ -350,8 +350,8 @@ Intervallo Simulazione シミュレーション間隔 구현 간격 - 模擬間隔 - 模拟间隔 + 模擬間隔 + 模拟间隔 Defines the interval between every calculation step @@ -366,8 +366,8 @@ Definisce l'intervallo tra ogni step di calcolo 各計算ごとの間隔を定義します 각 계산 단위의 간격을 정의합니다 - 定義每個模擬計算之間的時間間隔 - 定义每个模拟计算之间的时间间隔 + 定義每個模擬計算之間的時間間隔 + 定义每个模拟计算之间的时间间隔 Simulation Radius @@ -382,8 +382,8 @@ Raggio Simulazione シミュレーションの適用範囲 구현 범위 - 模擬半徑 - 模拟半径 + 模擬半徑 + 模拟半径 Defines the radius around the player (in meters) at which advanced ballistics are applied to projectiles @@ -398,8 +398,8 @@ Definisce il raggio attorno al giocatore (in metri) per cui la Balistica Avanzata è applicata ai proiettili プレイヤーの周囲にアドバンスド バリスティックスによる弾道を適用させる範囲を半径で定義します (メートル) 플레이어 주위의 발사체를 고급 탄도학으로 정의하는 범위를 정합니다(미터) - 以玩家的半徑距離(公尺)定義先進彈道系統啟用範圍 - 以玩家的半径距离(公尺)定义先进弹道系统启用范围 + 以玩家的半徑距離(公尺)定義先進彈道系統啟用範圍 + 以玩家的半径距离(公尺)定义先进弹道系统启用范围 This module enables advanced ballistics simulation - meaning the trajectory of projectiles is influenced by variables like air temperature, atmospheric pressure, humidity, gravity, the type of ammunition and the weapon from which it was fired. @@ -414,8 +414,8 @@ Questo modulo abilita la simulazione della Balistica Avanzata - cioè la traiettoria dei proiettili è influenzata da variabili come la temperatura dell'aria, pressione atmosferica, umidità, gravità, il tipo di munizione e l'arma da cui è sparata このモジュールはアドバンスド バリスティックスを有効化します。弾道は気温や気圧、湿度、重力、弾薬の種類、発射する武器から影響を受けるようになります。 이 모듈은 고급 탄도학을 적용시킵니다 - 이는 발사체의 궤적이 기온, 대기압, 습도, 중력, 탄환의 종류와 어느 무기에서 발사되는지에 따라 영향을 받습니다. - 該模塊實現先進的彈道仿真 - 這意味著子彈的軌跡是由空氣溫度、大氣壓力、濕度、重力、彈藥類型以及射擊的武器所影響. - 该模块实现先进的弹道仿真 - 这意味着子弹的轨迹是由空气温度、大气压力、湿度、重力、弹药类型以及射击的武器所影响. + 該模塊實現先進的彈道仿真 - 這意味著子彈的軌跡是由空氣溫度、大氣壓力、濕度、重力、彈藥類型以及射擊的武器所影響. + 该模块实现先进的弹道仿真 - 这意味着子弹的轨迹是由空气温度、大气压力、湿度、重力、弹药类型以及射击的武器所影响. diff --git a/addons/advanced_fatigue/stringtable.xml b/addons/advanced_fatigue/stringtable.xml index 3ee90435dc7..9aba5d1a04d 100644 --- a/addons/advanced_fatigue/stringtable.xml +++ b/addons/advanced_fatigue/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -9,8 +9,8 @@ 성능 요인 Facteur de performance Fattore Prestazione - 體力值 - 体力值 + 體力值 + 体力值 Influences the overall performance of all players with no custom factor. Higher means better. @@ -20,8 +20,8 @@ 모든 성능이 임의로 설정된 값 없이 영향받습니다. 값이 클수록 더 나은 성능을 발휘합니다 Influence les performances générales de tous les joueurs sans facteurs personalisés. Une valeur plus élevée implique de meilleures performances. Influenza qualsiasi prestazione di tutti i giocatori smuniti di un fattore personalizzato. Maggiore significa migliore. - 影響所有玩家的體力表現. 值越高代表體力越好. - 影响所有玩家的体力表现. 值越高代表体力越好. + 影響所有玩家的體力表現. 值越高代表體力越好. + 影响所有玩家的体力表现. 值越高代表体力越好. Influences the overall performance of this unit. Higher means better. @@ -31,8 +31,8 @@ 모든 성능이 이 단위로 영향을 받습니다. 값이 클수록 더 나은 성능을 발휘합니다 Influence les performances générales de cette unité. Une valeur plus élevée implique de meilleures performances. Influenza qualsiasi prestazione di questa unità. Maggiore significa migliore. - 影響這個單位的體力表現. 值越高代表體力越好. - 影响这个单位的体力表现. 值越高代表体力越好. + 影響這個單位的體力表現. 值越高代表體力越好. + 影响这个单位的体力表现. 值越高代表体力越好. Recovery Factor @@ -42,8 +42,8 @@ 회복 요인 Facteur de récupération Fattore Recupero - 回復值 - 回复值 + 回復值 + 回复值 Changes how fast the player recovers when resting. Higher is faster. @@ -53,8 +53,8 @@ 얼마나 빨리 회복하는지를 바꿉니다. 값이 클수록 더 나은 성능을 발휘합니다 Change la vitesse à laquelle les joueurs récupèrent leur endurance lorsqu'ils se reposent. Une valeur plus élevée implique une récupération plus rapide. Determina in quanto tempo il giocatore recupera quando rilassato. Maggiore significa migliore. - 決定玩家休息多久就能回復體力. 值越高恢復越快. - 决定玩家休息多久就能回复体力. 值越高恢复越快. + 決定玩家休息多久就能回復體力. 值越高恢復越快. + 决定玩家休息多久就能回复体力. 值越高恢复越快. Load Factor @@ -64,8 +64,8 @@ 부담 요인 Facteur d'encombrement Fattore Caricamento - 負重量 - 负重量 + 負重量 + 负重量 Increases or decreases how much weight influences the players performance. Zero means equipment weight has no performance influence. @@ -75,8 +75,8 @@ 플레이어가 무게에 따라 얼마나 영향받는지를 증가시키거나 감소시킵니다. 0의 경우 플레이어가 장비 무게에 영향받지 않습니다. Augmente ou réduit l'influence que le poids à sur les performances des joueurs. Zéro implique que le poids de l'équipement n'a pas d'influence sur les performances. Incrementa o decrementa quanto il peso influenza le prestazioni dei giocatori. Zero significa che il peso dell'equipaggiamento non ha alcuna influenza nelle prestazioni. - 增加或降低玩家所能承受的負重量. 如設定值為0, 代表裝備的重量將不會影響到玩家的體力表現. - 增加或降低玩家所能承受的负重量. 如设定值为0, 代表装备的重量将不会影响到玩家的体力表现. + 增加或降低玩家所能承受的負重量. 如設定值為0, 代表裝備的重量將不會影響到玩家的體力表現. + 增加或降低玩家所能承受的负重量. 如设定值为0, 代表装备的重量将不会影响到玩家的体力表现. Terrain Gradient Factor @@ -86,8 +86,8 @@ 지형 경사도 요인 Facteur d'inclinaison du terrain Fattore Pendenza Terreno - 地形陡峭影響值 - 地形陡峭影响值 + 地形陡峭影響值 + 地形陡峭影响值 Sets how much steep terrain increases stamina loss. Higher means higher stamina loss. @@ -97,8 +97,8 @@ 경사도에 따라 얼마나 피로해지는지를 정합니다. 값이 클수록 더 많은 피로를 유발합니다. Configure l'influence de l'inclinaison du terrain sur la perte d'endurance. Une valeur plus élevée implique une perte d'endurance plus importante. Stabilisce quanto la pendenza del terreno incrementa la perdita della stamina. Maggiore significa più stamina persa. - 設定陡峭的地形將會影響多少體力的流失. 值越高代表體力流失越快. - 设定陡峭的地形将会影响多少体力的流失. 值越高代表体力流失越快. + 設定陡峭的地形將會影響多少體力的流失. 值越高代表體力流失越快. + 设定陡峭的地形将会影响多少体力的流失. 值越高代表体力流失越快. Enabled @@ -108,8 +108,8 @@ 활성화 Activé Abilitato - 啟用 - 启用 + 啟用 + 启用 Enables/disables Advanced Fatigue. @@ -119,8 +119,8 @@ 고급 피로도 활성화/비활성화 Active/désactive la fatigue avancée. Abilita/disabilita la Fatica Avanzata. - 啟用/關閉進階體力. - 启用/关闭进阶体力. + 啟用/關閉進階體力. + 启用/关闭进阶体力. Show stamina bar @@ -130,8 +130,8 @@ 피로도 막대 Afficher la barre d'endurance Mostra barra stamina - 顯示體力條 - 显示体力条 + 顯示體力條 + 显示体力条 Shows the stamina bar. @@ -141,8 +141,8 @@ 피로도 막대를 보여줍니다. Affiche la barre d'endurance. Mostra la barra della stamina. - 顯示體力條. - 显示体力条. + 顯示體力條. + 显示体力条. diff --git a/addons/advanced_throwing/stringtable.xml b/addons/advanced_throwing/stringtable.xml index ddb53c333f5..66dbd8e5003 100644 --- a/addons/advanced_throwing/stringtable.xml +++ b/addons/advanced_throwing/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -10,8 +10,8 @@ 고급 투척 Lancé amélioré Lancio Avanzato - 進階投擲 - 进阶投掷 + 進階投擲 + 进阶投掷 Allows changing advanced throwing behaviour. @@ -22,8 +22,8 @@ 고급 투척 행위를 허가합니다 Permet de changer la configuration du lancé amélioré. Permette il cambiamento della modalità di tiro. - 允許使用更多不同的投擲方式. - 允许使用更多不同的投掷方式. + 允許使用更多不同的投擲方式. + 允许使用更多不同的投掷方式. Enable Advanced Throwing @@ -34,8 +34,8 @@ 고급 투척 활성화 Active le lancé amélioré Abilita Lancio Avanzato - 啟用進階投擲 - 启用进阶投掷 + 啟用進階投擲 + 启用进阶投掷 Enables advanced throwing system. @@ -46,8 +46,8 @@ 고급 투척을 활성화 합니다 Active le système de lancé amélioré. Abilita il sistema di lancio avanzato. - 啟用進階投擲系統. - 启用进阶投掷系统. + 啟用進階投擲系統. + 启用进阶投掷系统. Show Throw Arc @@ -58,8 +58,8 @@ 투척 궤적 표시 Afficher l'arc de lancé Mostra Arco di Tiro - 顯示投擲軌道 - 显示投掷轨道 + 顯示投擲軌道 + 显示投掷轨道 Enables visualization of the throw arc (where throwable will fly). @@ -70,8 +70,8 @@ 투척 궤도를 시각화 합니다(투척물이 어디로 갈지) Active la visualisation de l'arc de lancé (où l'objet lancé va atterrir). Abilita la visualizzazione dell'arco del tiro (dove l'oggetto lanciabile volerà). - 顯示投擲軌道幫助投擲. - 显示投掷轨道帮助投掷. + 顯示投擲軌道幫助投擲. + 显示投掷轨道帮助投掷. Show Throwing Mouse Controls @@ -82,8 +82,8 @@ 마우스 조작 표시 Afficher les contrôles à la souris du lancé Mostra Comandi Mouse Lancio - 顯示滑鼠投擲控制提示 - 显示滑鼠投掷控制提示 + 顯示滑鼠投擲控制提示 + 显示滑鼠投掷控制提示 Enables visual cues for mouse controls when throwable is prepared. @@ -94,8 +94,8 @@ 투척물을 준비시 마우스 조작을 시각화해서 보여줍니다 Active les aides visuels pour les controles à la souris lorsqu'un lancé est préparé. Abilita la visualizzazione dei controlli del mouse quando l'oggetto lanciabile è pronto. - 開啟後會在準備投擲時, 顯示滑鼠相關操作. - 开启后会在准备投掷时, 显示滑鼠相关操作. + 開啟後會在準備投擲時, 顯示滑鼠相關操作. + 开启后会在准备投掷时, 显示滑鼠相关操作. Enable Throwables Pick Up @@ -106,8 +106,8 @@ 투척물 줍기 활성화 Active la récupération des objets lancés Abilita Raccogli Oggetti - 啟用可撿取地面投擲物 - 启用可捡取地面投掷物 + 啟用可撿取地面投擲物 + 启用可捡取地面投掷物 Enables ability to pick up throwables from the ground. @@ -118,8 +118,8 @@ 땅에 떨어진 투척물을 주울 수 있게 해줍니다. Active la capacité de récupérer les objets lancés sur le sol. Abilita la possibilità di raccogliere un oggetto lanciabile da terra. - 啟用後, 可撿取地面上的投擲物. - 启用后, 可捡取地面上的投掷物. + 啟用後, 可撿取地面上的投擲物. + 启用后, 可捡取地面上的投掷物. Enable Attached Throwables Pick Up @@ -130,8 +130,8 @@ 부착 투척물 줍기 활성화 Active le ramassage d'objets lançables attachés Abilita Raccogli Oggetti Lanciabili da altri Oggetti - 啟用可撿取附著投擲物 - 启用可捡取附着投掷物 + 啟用可撿取附著投擲物 + 启用可捡取附着投掷物 Enables ability to pick up throwables from attached objects. @@ -142,8 +142,8 @@ 부착된 투척물을 주울 수 있게 해줍니다. Active la capacité à ramasser les objets lançables attaché à d'autres objets. Abilita la possibilità di raccogliere gli oggetti lanciabili dagli altri oggetti. - 啟用後, 可撿取附著在物件上的投擲物. - 启用后, 可捡取附着在物件上的投掷物. + 啟用後, 可撿取附著在物件上的投擲物. + 启用后, 可捡取附着在物件上的投掷物. Prepare/Change Throwable @@ -154,8 +154,8 @@ 투척물 준비/변경 Préparer/changer d'objet Prepara/Cambia Oggetto lanciabile - 準備/變更投擲物 - 准备/变更投掷物 + 準備/變更投擲物 + 准备/变更投掷物 Throwable Drop Mode (Hold) @@ -166,8 +166,8 @@ 투척물 떨어뜨리기 모드(꾹눌러서) Mode de lancé de l'objet (Tenir) Modalità Oggetto Gettabile (Mantenere) - 投擲模式 (按住) - 投掷模式 (按住) + 投擲模式 (按住) + 投掷模式 (按住) Throwable Drop Mode (Toggle) @@ -178,8 +178,8 @@ 투척물 떨어뜨리기 모드(토글) Mode de lancé de l'objet (Basculer) Modalità Oggetto lanciabile Gettabile (Interruttore) - 投擲模式 (切換) - 投掷模式 (切换) + 投擲模式 (切換) + 投掷模式 (切换) Primed @@ -190,8 +190,8 @@ 뇌관 작동 Amorcer Armato - 引信開始燃燒 - 引信开始燃烧 + 引信開始燃燒 + 引信开始燃烧 Throw @@ -202,8 +202,8 @@ 던지기 Lancer Lanciare - 投擲 - 投掷 + 投擲 + 投掷 (Scroll) Change Mode @@ -214,8 +214,8 @@ (마우스 휠) 모드 변경 (Molette souris) Changer de mode (Scorrere) Cambio Modalità - (滾輪) 變更模式 - (滚轮) 变更模式 + (滾輪) 變更模式 + (滚轮) 变更模式 (Scroll) Extend @@ -226,8 +226,8 @@ (마우스 휠) 연장 (Molette souris) Etendre (Scorrere) Estendere - (滾輪) 延長 - (滚轮) 延长 + (滾輪) 延長 + (滚轮) 延长 (Click) Cook @@ -238,8 +238,8 @@ (클릭) 예열 (Clique) Dégoupiller (Click) Arma - (點擊) 提早拉開引信 - (点击) 提早拉开引信 + (點擊) 提早拉開引信 + (点击) 提早拉开引信 Pick Up @@ -250,8 +250,8 @@ 줍기 Ramasser Raccogli - 撿取 - 捡取 + 撿取 + 捡取 diff --git a/addons/aircraft/stringtable.xml b/addons/aircraft/stringtable.xml index a1a4dfe617a..0c523972428 100644 --- a/addons/aircraft/stringtable.xml +++ b/addons/aircraft/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ XM301 XM301 XM301 - XM301 - XM301 + XM301 + XM301 Open Cargo Door @@ -30,8 +30,8 @@ Abrir porta de carga カーゴ ドアを開く 화물칸 개방 - 開啟貨艙門 - 开启货舱门 + 開啟貨艙門 + 开启货舱门 Close Cargo Door @@ -46,8 +46,8 @@ Fechar porta de carga カーゴ ドアを閉じる 화물칸 폐쇄 - 關閉貨艙門 - 关闭货舱门 + 關閉貨艙門 + 关闭货舱门 diff --git a/addons/atragmx/stringtable.xml b/addons/atragmx/stringtable.xml index 28cea1bcf31..4c11ea8add1 100644 --- a/addons/atragmx/stringtable.xml +++ b/addons/atragmx/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ ATragMX ATragMX ATragMX - ATragMX - ATragMX + ATragMX + ATragMX Open ATragMX @@ -30,8 +30,8 @@ Abrir ATragMX ATragMX を開く ATragMX 열기 - 開啟ATragMX - 开启ATragMX + 開啟ATragMX + 开启ATragMX Rugged PDA with ATragMX @@ -46,8 +46,8 @@ PDA Robusto com ATragMX ATragMX 付きの携行型端末 ATragMX가 달린 PDA - 裝有軍用PDA的ATragMX - 装有军用PDA的ATragMX + 裝有軍用PDA的ATragMX + 装有军用PDA的ATragMX Open ATragMX @@ -62,8 +62,8 @@ Abrir ATragMX ATragMX を開く ATragMX 열기 - 開啟ATragMX - 开启ATragMX + 開啟ATragMX + 开启ATragMX diff --git a/addons/attach/stringtable.xml b/addons/attach/stringtable.xml index 65fdee531d9..39455dedcf3 100644 --- a/addons/attach/stringtable.xml +++ b/addons/attach/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Прикрепить предмет アイテムを取り付ける 물건 부착 - 附掛裝備>> - 附挂装备>> + 附掛裝備>> + 附挂装备>> Attach @@ -30,8 +30,8 @@ Прикрепить 取り付ける 부착 - 附掛 - 附挂 + 附掛 + 附挂 Detach item @@ -46,8 +46,8 @@ Отсоединить アイテムを外す 분리 - 取下裝備 - 取下装备 + 取下裝備 + 取下装备 IR Strobe Attached @@ -62,8 +62,8 @@ ИК-маяк прикреплён 赤外線ストロボを取り付ける 적외선 스트로브 부착됨 - 已附掛紅外線頻閃器 - 已附挂红外线频闪器 + 已附掛紅外線頻閃器 + 已附挂红外线频闪器 IR Strobe Detached @@ -78,8 +78,8 @@ ИК-маяк отсоединён 赤外線ストロボを外す 적외선 스트로브 분리됨 - 已取下紅外線頻閃器 - 已取下红外线频闪器 + 已取下紅外線頻閃器 + 已取下红外线频闪器 IR Grenade Attached @@ -94,8 +94,8 @@ ИК-граната прикреплена 赤外線グレネードを取り付ける 적외선 수류탄 부착됨 - 已附掛紅外線手榴彈 - 已附挂红外线手榴弹 + 已附掛紅外線手榴彈 + 已附挂红外线手榴弹 IR Grenade Detached @@ -110,8 +110,8 @@ ИК-граната отсоединена 赤外線グレネードを外す 적외선 수류탄 분리됨 - 已取下紅外線手榴彈 - 已取下红外线手榴弹 + 已取下紅外線手榴彈 + 已取下红外线手榴弹 Chemlight Attached @@ -126,8 +126,8 @@ Химсвет прикреплён ケミライトを取り付け 켐라이트 부착됨 - 已附掛螢光棒 - 已附挂萤光棒 + 已附掛螢光棒 + 已附挂萤光棒 Chemlight Detached @@ -142,8 +142,8 @@ Химсвет отсоединён ケミライトを外す 켐라이트 분리됨 - 已取下螢光棒 - 已取下萤光棒 + 已取下螢光棒 + 已取下萤光棒 No inventory space @@ -158,8 +158,8 @@ В инвентаре нет места インベントリに空きがない 넣을 공간이 없음 - 無可用空間 - 无可用空间 + 無可用空間 + 无可用空间 IR Strobe @@ -174,8 +174,8 @@ ИК-маяк 赤外線ストロボ 적외선 스트로브 - 紅外線頻閃器 - 红外线频闪器 + 紅外線頻閃器 + 红外线频闪器 IR Strobe allows you to signal your position through a pulsating beacon only visible with NVGs. @@ -190,8 +190,8 @@ ИК-маяк позволяет сигнализировать о своём местоположении через пульсирующий свет, видимый только через ПНВ. 赤外線ストロボはあなたの位置を知らせますが、夜間暗視装置を介してでしか見れません。 적외선 스트로브는 자신의 위치를 반짝이면서 표시합니다. 이는 야간투시경으로 밖에 보지 못합니다. - 紅外線閃頻器,藉由紅外線閃頻信號來辨識你的位置,僅能使用夜視系統來辨識紅外線信號 - 红外线闪频器,藉由红外线闪频信号来辨识你的位置,仅能使用夜视系统来辨识红外线信号 + 紅外線閃頻器,藉由紅外線閃頻信號來辨識你的位置,僅能使用夜視系統來辨識紅外線信號 + 红外线闪频器,藉由红外线闪频信号来辨识你的位置,仅能使用夜视系统来辨识红外线信号 Place @@ -206,8 +206,8 @@ Установить 置く 두기 - 放置 - 放置 + 放置 + 放置 Cancel @@ -222,8 +222,8 @@ Отмена やめる 취소 - 取消 - 取消 + 取消 + 取消 Attach Failed @@ -238,8 +238,8 @@ Non si attacca 取り付けに失敗した 부착 실패 - 附掛失敗 - 附挂失败 + 附掛失敗 + 附挂失败 %1<br/>Attached @@ -254,8 +254,8 @@ %1<br/>присоединен(-а) %1<br/>を取り付けた %1<br/>부착됨 - %1<br/>已附掛 - %1<br/>已附挂 + %1<br/>已附掛 + %1<br/>已附挂 %1<br/>Detached @@ -270,8 +270,8 @@ %1<br/>отсоединен(-а) %1<br/>を外した %1<br/>분리됨 - %1<br/>已取下 - %1<br/>已取下 + %1<br/>已取下 + %1<br/>已取下 diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index cac06aa73e6..ad33b307045 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -15,8 +15,8 @@ 6,5x47mm 20-lövedékes tár (HPBT Scenar) 6.5x47mm 20発入り 弾倉 (HPBT Scenar) 20발들이 6.5x47mm (HPBT Scenar) - 6.5x47mm 20發 彈匣 (Lapua 空尖艇尾狙擊專用彈) - 6.5x47mm 20发 弹匣 (Lapua 空尖艇尾狙击专用弹) + 6.5x47mm 20發 彈匣 (Lapua 空尖艇尾狙擊專用彈) + 6.5x47mm 20发 弹匣 (Lapua 空尖艇尾狙击专用弹) 6.5mm Lapua @@ -31,8 +31,8 @@ 6,5mm Lapua 6.5mm Lapua 6.5mm Lapua - 6.5mm Lapua 空尖艇尾狙擊專用彈 - 6.5mm Lapua 空尖艇尾狙击专用弹 + 6.5mm Lapua 空尖艇尾狙擊專用彈 + 6.5mm Lapua 空尖艇尾狙击专用弹 Caliber: 6.5x47mm (HPBT Scenar)<br />Rounds: 20<br />Used in: QBU-88 @@ -47,8 +47,8 @@ Kaliber: 6,5x47mm (HPBT Scenar)<br />Lövedékek: 20<br />Használható: QBU-88 口径: 6.5x47mm (HPBT Scenar)<br />装填数: 20<br />次で使用: QBU-88 구경: 6.5x47mm (HPBT Scenar)<br />장탄수: 20<br />사용처: QBU-88 - 口徑: 6.5x47mm (Lapua 空尖艇尾狙擊專用彈)<br />發數: 20<br />使用於: QBU-88 - 口径: 6.5x47mm (Lapua 空尖艇尾狙击专用弹)<br />发数: 20<br />使用于: QBU-88 + 口徑: 6.5x47mm (Lapua 空尖艇尾狙擊專用彈)<br />發數: 20<br />使用於: QBU-88 + 口径: 6.5x47mm (Lapua 空尖艇尾狙击专用弹)<br />发数: 20<br />使用于: QBU-88 6.5mm Creedmor 20Rnd Mag @@ -63,8 +63,8 @@ 6,5mm Creedmor 20-lövedékes tár 6.5mm Creedmor 20発入り 弾倉 20발들이 6.5mm Creedmor 탄창 - 6.5mm 20發 彈匣 (Creedmor 狙擊專用彈) - 6.5mm 20发 弹匣 (Creedmor 狙击专用弹) + 6.5mm 20發 彈匣 (Creedmor 狙擊專用彈) + 6.5mm 20发 弹匣 (Creedmor 狙击专用弹) 6.5mm CM @@ -79,8 +79,8 @@ 6,5mm CM 6.5mm CM 6.5mm CM - 6.5mm CM 狙擊專用彈 - 6.5mm CM 狙击专用弹 + 6.5mm CM 狙擊專用彈 + 6.5mm CM 狙击专用弹 Caliber: 6.5x47mm Creedmor<br />Rounds: 20<br />Used in: QBU-88 @@ -95,8 +95,8 @@ Kaliber: 6,5x47mm Creedmor<br />Lövedékek: 20<br />Használható: QBU-88 口径: 6.5x47mm Creedmor<br />装填数: 20<br />次で使用: QBU-88 구경: 6.5x47mm Creedmor<br />장탄수: 20<br />사용처: QBU-88 - 口徑: 6.5x47mm Creedmor 狙擊專用彈<br />發數: 20<br />使用於: QBU-88 - 口径: 6.5x47mm Creedmor 狙击专用弹<br />发数: 20<br />使用于: QBU-88 + 口徑: 6.5x47mm Creedmor 狙擊專用彈<br />發數: 20<br />使用於: QBU-88 + 口径: 6.5x47mm Creedmor 狙击专用弹<br />发数: 20<br />使用于: QBU-88 @@ -112,8 +112,8 @@ Магазин из 30-ти 6,5 мм ИК-трассирующих 6.5mm 30発入り IR-DIM曳光弾 弾倉 30발들이 6.5mm IR-DIM 예광탄 탄창 - 6.5mm 30發 低視度紅外線曳光彈 彈匣 - 6.5mm 30发 低视度红外线曳光弹 弹匣 + 6.5mm 30發 低視度紅外線曳光彈 彈匣 + 6.5mm 30发 低视度红外线曳光弹 弹匣 6.5mm IR-DIM @@ -128,8 +128,8 @@ 6,5 мм ИК-трассирующие 6.5mm IR-DIM曳光弾 6.5mm IR-DIM 예광탄 - 6.5mm 低視紅外曳光彈 - 6.5mm 低视红外曳光弹 + 6.5mm 低視紅外曳光彈 + 6.5mm 低视红外曳光弹 Caliber: 6.5x39mm Tracer IR-DIM<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL @@ -144,8 +144,8 @@ Калибр: 6,5x39 мм ИК-трассирующие<br />Патронов: 30<br />Используются с: MX/C/M/SW/3GL 口径: 6.5x39mm 曳光弾 IR-DIM<br />装填数: 30<br />次で使用: MX/C/M/SW/3GL 구경: 6.5x39mm IR-DIM 예광탄<br />장탄수: 30<br />사용처: MX/C/M/SW/3GL - 口徑: 6.5x39mm 低視度紅外線曳光彈<br />發數: 30<br />使用於: MX/C/M/SW/3GL - 口径: 6.5x39mm 低视度红外线曳光弹<br />发数: 30<br />使用于: MX/C/M/SW/3GL + 口徑: 6.5x39mm 低視度紅外線曳光彈<br />發數: 30<br />使用於: MX/C/M/SW/3GL + 口径: 6.5x39mm 低视度红外线曳光弹<br />发数: 30<br />使用于: MX/C/M/SW/3GL 6.5mm 30Rnd SD Mag @@ -160,8 +160,8 @@ Магазин из 30-ти 6,5 мм дозвуковых 6.5mm 30発入り 亜音速弾 弾倉 30발들이 6.5mm 아음속탄 탄창 - 6.5mm 30發 消音彈 彈匣 - 6.5mm 30发 消音弹 弹匣 + 6.5mm 30發 消音彈 彈匣 + 6.5mm 30发 消音弹 弹匣 6.5mm SD @@ -176,8 +176,8 @@ 6,5 мм дозвуковые 6.5mm 亜音速弾 6.5mm 아음속탄 - 6.5mm 消音彈 - 6.5mm 消音弹 + 6.5mm 消音彈 + 6.5mm 消音弹 Caliber: 6.5x39mm SD<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL @@ -192,8 +192,8 @@ Калибр: 6,5x39 мм дозвуковые<br />Патронов: 30<br />Используются с: MX/C/M/SW/3GL 口径: 6.5x39mm 亜音速弾<br />装填数: 30<br />次で使用: MX/C/M/SW/3GL 구경: 6.5x39mm SD<br />장탄수: 30<br />사용처: MX/C/M/SW/3GL - 口徑: 6.5x39mm 消音彈<br />發數: 30<br />使用於: MX/C/M/SW/3GL - 口径: 6.5x39mm 消音弹<br />发数: 30<br />使用于: MX/C/M/SW/3GL + 口徑: 6.5x39mm 消音彈<br />發數: 30<br />使用於: MX/C/M/SW/3GL + 口径: 6.5x39mm 消音弹<br />发数: 30<br />使用于: MX/C/M/SW/3GL 6.5mm 30Rnd AP Mag @@ -208,8 +208,8 @@ Магазин из 30-ти 6,5 мм бронебойных 6.5mm 30 発入り徹甲弾 弾倉 30발들이 6.5mm 철갑탄 탄창 - 6.5mm 30發 穿甲彈 彈匣 - 6.5mm 30发 穿甲弹 弹匣 + 6.5mm 30發 穿甲彈 彈匣 + 6.5mm 30发 穿甲弹 弹匣 6.5mm AP @@ -224,8 +224,8 @@ 6,5 мм бронебойные 6.5mm 徹甲弾 6.5mm 철갑탄 - 6.5mm 穿甲彈 - 6.5mm 穿甲弹 + 6.5mm 穿甲彈 + 6.5mm 穿甲弹 Caliber: 6.5x39mm AP<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL @@ -240,8 +240,8 @@ Калибр: 6,5x39 мм бронебойные<br />Патронов: 30<br />Используются с: MX/C/M/SW/3GL 口径: 6.5x39mm 徹甲弾<br />装填数: 30<br />次で使用: MX/C/M/SW/3GL 구경: 6.5x39mm 철갑탄<br />장탄수: 30<br />사용처: MX/C/M/SW/3GL - 口徑: 6.5x39mm 穿甲彈<br />發數: 30<br />使用於: MX/C/M/SW/3GL - 口径: 6.5x39mm 穿甲弹<br />发数: 30<br />使用于: MX/C/M/SW/3GL + 口徑: 6.5x39mm 穿甲彈<br />發數: 30<br />使用於: MX/C/M/SW/3GL + 口径: 6.5x39mm 穿甲弹<br />发数: 30<br />使用于: MX/C/M/SW/3GL @@ -257,8 +257,8 @@ Магазин из 30-ти 6,5 мм ИК-трассирующих 6.5mm 30発入り IR-DIM曳光弾 弾倉 30발들이 6.5mm IR-DIM 예광탄 탄창 - 6.5mm 30發 低視度紅外線曳光彈 彈匣 - 6.5mm 30发 低视度红外线曳光弹 弹匣 + 6.5mm 30發 低視度紅外線曳光彈 彈匣 + 6.5mm 30发 低视度红外线曳光弹 弹匣 6.5mm IR-DIM @@ -273,8 +273,8 @@ 6,5 мм ИК-трассирующие 6.5mm IR-DIM曳光弾 6.5mm IR-DIM 예광탄 - 6.5mm 低視紅外曳光彈 - 6.5mm 低视红外曳光弹 + 6.5mm 低視紅外曳光彈 + 6.5mm 低视红外曳光弹 Caliber: 6.5x39mm Tracer IR-DIM<br />Rounds: 30<br />Used in: Katiba @@ -289,8 +289,8 @@ Калибр: 6,5x39 мм ИК-трассирующие<br />Патронов: 30<br />Используются с: Katiba 口径: 6.5x39mm IR-DIM曳光弾<br />装填数: 30<br />次で使用: Katiba 구경: 6.5x39mm IR-DIM 예광탄<br />장탄수: 30<br />사용처: Katiba - 口徑: 6.5x39mm 低視度紅外線曳光彈<br />發數: 30<br />使用於: Katiba - 口径: 6.5x39mm 低视度红外线曳光弹<br />发数: 30<br />使用于: Katiba + 口徑: 6.5x39mm 低視度紅外線曳光彈<br />發數: 30<br />使用於: Katiba + 口径: 6.5x39mm 低视度红外线曳光弹<br />发数: 30<br />使用于: Katiba 6.5mm 30Rnd SD Mag @@ -305,8 +305,8 @@ Магазин из 30-ти 6,5 мм дозвуковых 6.5mm 30発入り 亜音速弾 弾倉 30발들이 6.5mm 아음속탄 탄창 - 6.5mm 30發 消音彈 彈匣 - 6.5mm 30发 消音弹 弹匣 + 6.5mm 30發 消音彈 彈匣 + 6.5mm 30发 消音弹 弹匣 6.5mm SD @@ -321,8 +321,8 @@ 6,5 мм дозвуковые 6.5mm 亜音速弾 6.5mm 아음속탄 - 6.5mm 消音彈 - 6.5mm 消音弹 + 6.5mm 消音彈 + 6.5mm 消音弹 Caliber: 6.5x39mm SD<br />Rounds: 30<br />Used in: Katiba @@ -337,8 +337,8 @@ Калибр: 6,5x39 мм дозвуковые<br />Патронов: 30<br />Используются с: Katiba 口径: 6.5x39mm 亜音速弾<br />装填数: 30<br />次で使用: Katiba 구경: 6.5x39mm 아음속탄<br />장탄수: 30<br />사용처: Katiba - 口徑: 6.5x39mm 消音彈<br />發數: 30<br />使用於: Katiba - 口径: 6.5x39mm 消音弹<br />发数: 30<br />使用于: Katiba + 口徑: 6.5x39mm 消音彈<br />發數: 30<br />使用於: Katiba + 口径: 6.5x39mm 消音弹<br />发数: 30<br />使用于: Katiba 6.5mm 30Rnd AP Mag @@ -353,8 +353,8 @@ Магазин из 30-ти 6,5 мм бронебойных 6.5mm 30 発入り徹甲弾 弾倉 30발들이 6.5mm 철갑탄 탄창 - 6.5mm 30發 穿甲彈 彈匣 - 6.5mm 30发 穿甲弹 弹匣 + 6.5mm 30發 穿甲彈 彈匣 + 6.5mm 30发 穿甲弹 弹匣 6.5mm AP @@ -369,8 +369,8 @@ 6,5 мм бронебойные 6.5mm 徹甲弾 6.5mm 철갑탄 - 6.5mm 穿甲彈 - 6.5mm 穿甲弹 + 6.5mm 穿甲彈 + 6.5mm 穿甲弹 Caliber: 6.5x39mm AP<br />Rounds: 30<br />Used in: Katiba @@ -385,8 +385,8 @@ Калибр: 6,5x39 мм бронебойные<br />Патронов: 30<br />Используются с: Katiba 口径: 6.5x39mm 徹甲弾<br />装填数: 30<br />次で使用: Katiba 구경: 6.5x39mm 철갑탄<br />장탄수: 30<br />사용처: Katiba - 口徑: 6.5x39mm 穿甲彈<br />發數: 30<br />使用於: Katiba - 口径: 6.5x39mm 穿甲弹<br />发数: 30<br />使用于: Katiba + 口徑: 6.5x39mm 穿甲彈<br />發數: 30<br />使用於: Katiba + 口径: 6.5x39mm 穿甲弹<br />发数: 30<br />使用于: Katiba @@ -402,8 +402,8 @@ Магазин из 30-ти 5,56 мм ИК-трассирующих 5.56mm 30発入り IR-DIM曳光弾 弾倉 30발 들이 5.56mm IR-DIM 예광탄 탄창 - 5.56mm 30發 低視度紅外線曳光彈 彈匣 - 5.56mm 30发 低视度红外线曳光弹 弹匣 + 5.56mm 30發 低視度紅外線曳光彈 彈匣 + 5.56mm 30发 低视度红外线曳光弹 弹匣 5.56mm IR-DIM @@ -418,8 +418,8 @@ 5,56 мм ИК-трассирующие 5.56mm IR-DIM曳光弾 5.56mm IR-DIM 예광탄 - 5.56mm 低視紅外曳光彈 - 5.56mm 低视红外曳光弹 + 5.56mm 低視紅外曳光彈 + 5.56mm 低视红外曳光弹 Caliber: 5.56x45mm Tracer IR-DIM<br />Rounds: 30<br />Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR @@ -434,8 +434,8 @@ Калибр: 5,56x45 мм ИК-трассирующие<br />Патронов: 30<br />Используются с: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR 口径: 5.56x45mm IR-DIM曳光弾<br />装填数: 30<br />次で使用: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR 구경: 5.56x45mm IR-DIM 예광탄<br />장탄수: 30<br />사용처: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - 口徑: 5.56x45mm 低視度紅外線曳光彈<br />發數: 30<br />使用於: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - 口径: 5.56x45mm 低视度红外线曳光弹<br />发数: 30<br />使用于: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + 口徑: 5.56x45mm 低視度紅外線曳光彈<br />發數: 30<br />使用於: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + 口径: 5.56x45mm 低视度红外线曳光弹<br />发数: 30<br />使用于: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR @@ -451,8 +451,8 @@ Магазин из 20-ти 7,62 мм трассирующих 7.62mm 20発入り 曳光弾 20발들이 7.62mm 예광탄 탄창 - 7.62mm 20發 曳光彈 彈匣 - 7.62mm 20发 曳光弹 弹匣 + 7.62mm 20發 曳光彈 彈匣 + 7.62mm 20发 曳光弹 弹匣 7.62mm Tracer @@ -467,8 +467,8 @@ 7,62 мм трассирущие 7.62mm 曳光弾 7.62mm 예광탄 - 7.62mm 曳光彈 - 7.62mm 曳光弹 + 7.62mm 曳光彈 + 7.62mm 曳光弹 Caliber: 7.62x51mm Tracer<br />Rounds: 20<br />Used in: Mk18 ABR @@ -483,8 +483,8 @@ Калибр: 7,62x51 мм трассирующие<br />Патронов: 20<br />Используются с: Mk18 ABR 口径: 7.62x51mm 曳光弾<br />装填数: 20<br />次で使用: Mk18 ABR 구경: 7.62x51mm 예광탄<br />장탄수: 20<br />사용처: Mk18 ABR - 口徑: 7.62x51mm 曳光彈<br />發數: 20<br />使用於: Mk18 ABR - 口径: 7.62x51mm 曳光弹<br />发数: 20<br />使用于: Mk18 ABR + 口徑: 7.62x51mm 曳光彈<br />發數: 20<br />使用於: Mk18 ABR + 口径: 7.62x51mm 曳光弹<br />发数: 20<br />使用于: Mk18 ABR 7.62mm 20rnd Tracer IR-DIM Mag @@ -499,8 +499,8 @@ Магазин из 20-ти 7,62 мм ИК-трассирующих 7.62mm 20発入り IR-DIM曳光弾 20발들이 7.62mm IR-DIM 예광탄 탄창 - 7.62mm 20發 低視度紅外線曳光彈 彈匣 - 7.62mm 20发 低视度红外线曳光弹 弹匣 + 7.62mm 20發 低視度紅外線曳光彈 彈匣 + 7.62mm 20发 低视度红外线曳光弹 弹匣 7.62mm IR-DIM @@ -515,8 +515,8 @@ 7,62 мм ИК-трассирующие 7.62mm IR-DIM曳光弾 7.62mm IR-DIM 예광탄 - 7.62mm 低視紅外曳光彈 - 7.62mm 低视红外曳光弹 + 7.62mm 低視紅外曳光彈 + 7.62mm 低视红外曳光弹 Caliber: 7.62x51mm Tracer IR-DIM<br />Rounds: 20<br />Used in: Mk18 ABR @@ -531,8 +531,8 @@ Калибр: 7,62x51 мм ИК-трассирующие<br />Патронов: 20<br />Используются с: Mk18 ABR 口径: 7.62x51mm IR-DIM曳光弾<br />装填数: 20<br />次で使用: Mk18 ABR 구경: 7.62x51mm IR-DIM 예광탄<br />장탄수: 20<br />사용처: Mk18 ABR - 口徑: 7.62x51mm 低視度紅外線曳光彈<br />發數: 20<br />使用於: Mk18 ABR - 口径: 7.62x51mm 低视度红外线曳光弹<br />发数: 20<br />使用于: Mk18 ABR + 口徑: 7.62x51mm 低視度紅外線曳光彈<br />發數: 20<br />使用於: Mk18 ABR + 口径: 7.62x51mm 低视度红外线曳光弹<br />发数: 20<br />使用于: Mk18 ABR 7.62mm 20Rnd SD Mag @@ -547,8 +547,8 @@ Магазин из 20-ти 7,62 мм дозвуковых 7.62mm 20発入り 亜音速弾 弾倉 20발들이 7.62mm 아음속탄 탄창 - 7.62mm 20發 消音彈 彈匣 - 7.62mm 20发 消音弹 弹匣 + 7.62mm 20發 消音彈 彈匣 + 7.62mm 20发 消音弹 弹匣 7.62mm SD @@ -563,8 +563,8 @@ 7,62 мм дозвуковые 7.62mm 亜音速弾 7.62mm 아음속탄 - 7.62mm 消音彈 - 7.62mm 消音弹 + 7.62mm 消音彈 + 7.62mm 消音弹 Caliber: 7.62x51mm SD<br />Rounds: 20<br />Used in: Mk18 ABR @@ -579,8 +579,8 @@ Калибр: 7,62x51 мм дозвуковые<br />Патронов: 20<br />Используются с: Mk18 ABR 口径: 7.62x51mm 亜音速弾<br />装填数: 20<br />次で使用: Mk18 ABR 구경: 7.62x51mm SD<br />장탄수: 20<br />사용처: Mk18 ABR - 口徑: 7.62x51mm 消音彈<br />發數: 20<br />使用於: Mk18 ABR - 口径: 7.62x51mm 消音弹<br />发数: 20<br />使用于: Mk18 ABR + 口徑: 7.62x51mm 消音彈<br />發數: 20<br />使用於: Mk18 ABR + 口径: 7.62x51mm 消音弹<br />发数: 20<br />使用于: Mk18 ABR @@ -596,8 +596,8 @@ .338 NM 130-lövedékes nyomkövető heveder .338 NM 130発入り 曳光弾ベルト 130발들이 .338 NM 예광탄 벨트 - .338 NM 130發 曳光彈 彈鏈 - .338 NM 130发 曳光弹 弹链 + .338 NM 130發 曳光彈 彈鏈 + .338 NM 130发 曳光弹 弹链 .338 NM Tracer @@ -612,8 +612,8 @@ .338 NM nyomkövető .338 NM 曳光弾 .338 NM 예광탄 - .338 NM 曳光彈 - .338 NM 曳光弹 + .338 NM 曳光彈 + .338 NM 曳光弹 Caliber: .338 Norma Magnum Tracer<br />Rounds: 130<br />Used in: SPMG @@ -628,8 +628,8 @@ Kaliber: .338 Norma Magnum nyomkövető<br />Lövedékek: 130<br />Használható: SPMG 口径: .338 Norma Magnum 曳光弾<br />装填数: 130<br />次で使用: SPMG 구경: .338 Norma 매그넘 예광탄<br />장탄수: 130<br />사용처: SPMG - 口徑: .338 Norma Magnum 曳光彈<br />發數: 130<br />使用於: SPMG - 口径: .338 Norma Magnum 曳光弹<br />发数: 130<br />使用于: SPMG + 口徑: .338 Norma Magnum 曳光彈<br />發數: 130<br />使用於: SPMG + 口径: .338 Norma Magnum 曳光弹<br />发数: 130<br />使用于: SPMG .338 NM 130Rnd IR-DIM Belt @@ -644,8 +644,8 @@ .338 NM 130-lövedékes infravörös nyomkövető heveder .338 NM 130発入り IR-DIM曳光弾ベルト 130발들이 .338 NM IR-DIM 예광탄 벨트 - .338 NM 130發 低視度紅外線曳光彈 彈鏈 - .338 NM 130发 低视度红外线曳光弹 弹链 + .338 NM 130發 低視度紅外線曳光彈 彈鏈 + .338 NM 130发 低视度红外线曳光弹 弹链 .338 NM IR-DIM @@ -660,8 +660,8 @@ .338 NM infravörös nyomkövető .338 NM IR-DIM曳光弾 .338 NM IR-DIM 예광탄 - .338 NM 低視紅外曳光彈 - .338 NM 低视红外曳光弹 + .338 NM 低視紅外曳光彈 + .338 NM 低视红外曳光弹 Caliber: .338 Norma Magnum Tracer IR-DIM<br />Rounds: 130<br />Used in: SPMG @@ -676,8 +676,8 @@ Kaliber: .338 Norma Magnum infravörös nyomkövető<br />Lövedékek: 130<br />Használható: SPMG 口径: .338 Norma Magnum IR-DIM曳光弾<br />装填数: 130<br />次で使用: SPMG 구경: .338 Norma 매그넘 IR-DIM 예광탄<br />장탄수: 130<br />사용처: SPMG - 口徑: .338 Norma Magnum 低視度紅外線曳光彈<br />發數: 130<br />使用於: SPMG - 口径: .338 Norma Magnum 低视度红外线曳光弹<br />发数: 130<br />使用于: SPMG + 口徑: .338 Norma Magnum 低視度紅外線曳光彈<br />發數: 130<br />使用於: SPMG + 口径: .338 Norma Magnum 低视度红外线曳光弹<br />发数: 130<br />使用于: SPMG .338 NM 130Rnd AP Belt @@ -692,8 +692,8 @@ .338 NM 130-lövedékes páncéltörő heveder .338 NM 130発入り 徹甲弾ベルト 130발들이 .338 NM 철갑탄 벨트 - .338 NM 130發 穿甲彈 彈鏈 - .338 NM 130发 穿甲弹 弹链 + .338 NM 130發 穿甲彈 彈鏈 + .338 NM 130发 穿甲弹 弹链 .338 NM AP @@ -708,8 +708,8 @@ .338 NM páncéltörő .338 NM 徹甲弾 .338 NM 철갑탄 - .338 NM 穿甲彈 - .338 NM 穿甲弹 + .338 NM 穿甲彈 + .338 NM 穿甲弹 Caliber: .338 Norma Magnum AP<br />Rounds: 130<br />Used in: SPMG @@ -724,8 +724,8 @@ Kaliber: .338 Norma Magnum páncéltörő<br />Lövedékek: 130<br />Használható: SPMG 口径: .338 Norma Magnum 徹甲弾<br />装填数: 130<br />次で使用: SPMG 구경: .338 Norma 매그넘 철갑탄<br />장탄수: 130<br />사용처: SPMG - 口徑: .338 Norma Magnum 穿甲彈<br />發數: 130<br />使用於: SPMG - 口径: .338 Norma Magnum 穿甲弹<br />发数: 130<br />使用于: SPMG + 口徑: .338 Norma Magnum 穿甲彈<br />發數: 130<br />使用於: SPMG + 口径: .338 Norma Magnum 穿甲弹<br />发数: 130<br />使用于: SPMG @@ -741,8 +741,8 @@ 9,3mm 10-lövedékes nyomkövető tár 9.3mm 10発入り 曳光弾 弾倉 10발들이 9.3mm 예광탄 탄창 - 9.3mm 10發 曳光彈 彈匣 - 9.3mm 10发 曳光弹 弹匣 + 9.3mm 10發 曳光彈 彈匣 + 9.3mm 10发 曳光弹 弹匣 9.3mm Tracer @@ -757,8 +757,8 @@ 9,3mm nyomkövető 9.3mm 曳光弾 9.3mm 예광탄 - 9.3mm 曳光彈 - 9.3mm 曳光弹 + 9.3mm 曳光彈 + 9.3mm 曳光弹 Caliber: 9.3x64mm Tracer<br />Rounds: 10<br />Used in: Cyrus @@ -773,8 +773,8 @@ Kaliber: 9,3x64mm nyomkövető<br />Lövedékek: 10<br />Használható: Cyrus 口径: 9.3x64mm 曳光弾<br />装填数: 10<br />次で使用: Cyrus 구경: 9.3x64mm 예광탄<br />장탄수: 10<br />사용처: Cyrus - 口徑: 9.3x64mm 曳光彈<br />發數: 10<br />使用於: Cyrus - 口径: 9.3x64mm 曳光弹<br />发数: 10<br />使用于: Cyrus + 口徑: 9.3x64mm 曳光彈<br />發數: 10<br />使用於: Cyrus + 口径: 9.3x64mm 曳光弹<br />发数: 10<br />使用于: Cyrus 9.3mm 10Rnd Tracer IR-DIM Mag @@ -789,8 +789,8 @@ 9,3mm 10-lövedékes infravörös nyomkövető tár 9.3mm 10発入り IR-DIM曳光弾 弾倉 10발들이 9.3mm IR-DIM 예광탄 탄창 - 9.3mm 10發 低視度紅外線曳光彈 彈匣 - 9.3mm 10发 低视度红外线曳光弹 弹匣 + 9.3mm 10發 低視度紅外線曳光彈 彈匣 + 9.3mm 10发 低视度红外线曳光弹 弹匣 9.3mm IR-DIM @@ -805,8 +805,8 @@ 9,3mm infravörös nyomkövető 9.3mm IR-DIM曳光弾 9.3mm IR-DIM 예광탄 - 9.3mm 低視紅外曳光彈 - 9.3mm 低视红外曳光弹 + 9.3mm 低視紅外曳光彈 + 9.3mm 低视红外曳光弹 Caliber: 9.3x64mm Tracer IR-DIM<br />Rounds: 10<br />Used in: Cyrus @@ -821,8 +821,8 @@ Kaliber: 9,3x64mm infravörös nyomkövető<br />Lövedékek: 10<br /> Használható: Cyrus 口径: 9.3x64mm IR-DIM曳光弾<br />装填数: 10<br />次で使用: Cyrus 구경: 9.3x64mm IR-DIM 예광탄<br />장탄수: 10<br />사용처: Cyrus - 口徑: 9.3x64mm 低視度紅外線曳光彈<br />發數: 10<br />使用於: Cyrus - 口径: 9.3x64mm 低视度红外线曳光弹<br />发数: 10<br />使用于: Cyrus + 口徑: 9.3x64mm 低視度紅外線曳光彈<br />發數: 10<br />使用於: Cyrus + 口径: 9.3x64mm 低视度红外线曳光弹<br />发数: 10<br />使用于: Cyrus @@ -838,8 +838,8 @@ 9,3mm 150-lövedékes nyomkövető heveder 9.3mm 150発入り 曳光弾ベルト 150발들이 9.3mm 예광탄 벨트 - 9.3mm 150發 曳光彈 彈鏈 - 9.3mm 150发 曳光弹 弹链 + 9.3mm 150發 曳光彈 彈鏈 + 9.3mm 150发 曳光弹 弹链 9.3mm Tracer @@ -854,8 +854,8 @@ 9,3mm nyomkövető 9.3mm 曳光弾 9.3mm 예광탄 - 9.3mm 曳光彈 - 9.3mm 曳光弹 + 9.3mm 曳光彈 + 9.3mm 曳光弹 Caliber: 9.3x64mm Tracer<br />Rounds: 150<br />Used in: Navid @@ -870,8 +870,8 @@ Kaliber: 9,3x64mm nyomkövető<br />Lövedékek: 150<br />Használható: Navid 口径: 9.3x64mm 曳光弾<br />装填数: 150<br />次で使用: Navid 구경: 9.3x64mm 예광탄<br />장탄수: 150<br />사용처: Navid - 口徑: 9.3x64mm 曳光彈<br />發數: 150<br />使用於: Navid - 口径: 9.3x64mm 曳光弹<br />发数: 150<br />使用于: Navid + 口徑: 9.3x64mm 曳光彈<br />發數: 150<br />使用於: Navid + 口径: 9.3x64mm 曳光弹<br />发数: 150<br />使用于: Navid 9.3mm 150Rnd Tracer IR-DIM Belt @@ -886,8 +886,8 @@ 9,3mm 150-lövedékes infravörös nyomkövető heveder 9.3mm 150発入り IR-DIM曳光弾ベルト 150발들이 9.3mm IR-DIM 예광탄 벨트 - 9.3mm 150發 低視度紅外線曳光彈 彈鏈 - 9.3mm 150发 低视度红外线曳光弹 弹链 + 9.3mm 150發 低視度紅外線曳光彈 彈鏈 + 9.3mm 150发 低视度红外线曳光弹 弹链 9.3mm IR-DIM @@ -902,8 +902,8 @@ 9,3mm infravörös nyomkövető 9.3mm IR-DIM曳光弾 9.3mm IR-DIM 예광탄 - 9.3mm 低視紅外曳光彈 - 9.3mm 低视红外曳光弹 + 9.3mm 低視紅外曳光彈 + 9.3mm 低视红外曳光弹 Caliber: 9.3x64mm Tracer IR-DIM<br />Rounds: 150<br />Used in: Navid @@ -918,8 +918,8 @@ Kaliber: 9,3x64mm infravörös nyomkövető<br />Lövedékek: 150<br />Használható: Navid 口径: 9.3x64mm IR-DIM曳光弾<br />装填数: 150<br />次で使用: Navid 구경: 9.3x64mm IR-DIM 예광탄<br />장탄수: 150<br />사용처: Navid - 口徑: 9.3x64mm 低視度紅外線曳光彈<br />發數: 150<br />使用於: Navid - 口径: 9.3x64mm 低视度红外线曳光弹<br />发数: 150<br />使用于: Navid + 口徑: 9.3x64mm 低視度紅外線曳光彈<br />發數: 150<br />使用於: Navid + 口径: 9.3x64mm 低视度红外线曳光弹<br />发数: 150<br />使用于: Navid 9.3mm 150Rnd AP Belt @@ -934,8 +934,8 @@ 9,3mm 150-lövedékes páncéltörő heveder 9.3mm 150発入り 徹甲弾ベルト 150발들이 9.3mm 철갑탄 벨트 - 9.3mm 150發 穿甲彈 彈鏈 - 9.3mm 150发 穿甲弹 弹链 + 9.3mm 150發 穿甲彈 彈鏈 + 9.3mm 150发 穿甲弹 弹链 9.3mm AP @@ -950,8 +950,8 @@ 9,3mm páncéltörő 9.3mm 徹甲弾 9.3mm 철갑탄 - 9.3mm 穿甲彈 - 9.3mm 穿甲弹 + 9.3mm 穿甲彈 + 9.3mm 穿甲弹 Caliber: 9.3x64mm AP<br />Rounds: 150<br />Used in: Navid @@ -966,8 +966,8 @@ Kaliber: 9,3x64mm páncéltörő<br />Lövedékek: 150<br />Használható: Navid 口径: 9.3x64mm 徹甲弾<br />装填数: 150<br />次で使用: Navid 구경: 9.3x64mm 철갑탄<br />장탄수: 150<br />사용처: Navid - 口徑: 9.3x64mm 穿甲彈<br />發數: 150<br />使用於: Navid - 口径: 9.3x64mm 穿甲弹<br />发数: 150<br />使用于: Navid + 口徑: 9.3x64mm 穿甲彈<br />發數: 150<br />使用於: Navid + 口径: 9.3x64mm 穿甲弹<br />发数: 150<br />使用于: Navid 9x19mm 16Rnd Mag @@ -982,8 +982,8 @@ 9x19mm 16-lövedékes tár 9x19mm 16発入り 弾倉 16발들이 9x19mm 탄창 - 9x19mm 16發 彈匣 - 9x19mm 16发 弹匣 + 9x19mm 16發 彈匣 + 9x19mm 16发 弹匣 9x19mm @@ -998,8 +998,8 @@ 9x19mm 9x19mm 9x19mm - 9x19mm - 9x19mm + 9x19mm + 9x19mm 9x19mm 30Rnd Mag @@ -1014,8 +1014,8 @@ 9x19mm 16-lövedékes tár 9x19mm 30発入り 弾倉 30발들이 9x19mm 탄창 - 9x19mm 30發 彈匣 - 9x19mm 30发 弹匣 + 9x19mm 30發 彈匣 + 9x19mm 30发 弹匣 9x19mm 30Rnd Mag @@ -1030,8 +1030,8 @@ 9x19mm 30-lövedékes tár 9x19mm 30発入り 弾倉 30발들이 9x19mm 탄창 - 9x19mm 30發 彈匣 - 9x19mm 30发 弹匣 + 9x19mm 30發 彈匣 + 9x19mm 30发 弹匣 9x19mm @@ -1046,8 +1046,8 @@ 9x19mm 9x19mm 9x19mm - 9x19mm - 9x19mm + 9x19mm + 9x19mm 9x19mm 30Rnd Mag @@ -1062,8 +1062,8 @@ 9x19mm 30-lövedékes tár 9x19mm 30発入り 弾倉 30발들이 9x19mm 탄창 - 9x19mm 30發 彈匣 - 9x19mm 30发 弹匣 + 9x19mm 30發 彈匣 + 9x19mm 30发 弹匣 7.62x54mm 10Rnd Tracer Mag @@ -1078,8 +1078,8 @@ 7,62x54mm 10-lövedékes nyomkövető tár 7.62x54mm 10発入り 曳光弾 弾倉 10발들이 7.62x54mm 예광탄 탄창 - 7.62x54mm 10發 曳光彈 彈匣 - 7.62x54mm 10发 曳光弹 弹匣 + 7.62x54mm 10發 曳光彈 彈匣 + 7.62x54mm 10发 曳光弹 弹匣 7.62mm @@ -1094,8 +1094,8 @@ 7,62mm 7.62mm 7.62mm - 7.62mm - 7.62mm + 7.62mm + 7.62mm 7.62x54mm 10Rnd Tracer Mag @@ -1110,8 +1110,8 @@ 7,62x54mm 10-lövedékes nyomkövető tár 7.62x54mm 10発入り 曳光弾 弾倉 10발들이 7.62x54mm 예광탄 탄창 - 7.62x54mm 10發 曳光彈 彈匣 - 7.62x54mm 10发 曳光弹 弹匣 + 7.62x54mm 10發 曳光彈 彈匣 + 7.62x54mm 10发 曳光弹 弹匣 6.5mm 100Rnd Tracer IR-DIM Mag @@ -1126,8 +1126,8 @@ 6,5mm 100-lövedékes infravörös nyomkövető tár 6.5mm 100発入り IR-DIM曳光弾 弾倉 100발들이 6.5mm IR-DIM 예광탄 탄창 - 6.5mm 100發 低視度紅外線曳光彈 彈匣 - 6.5mm 100发 低视度红外线曳光弹 弹匣 + 6.5mm 100發 低視度紅外線曳光彈 彈匣 + 6.5mm 100发 低视度红外线曳光弹 弹匣 6.5mm IR-DIM @@ -1142,8 +1142,8 @@ 6,5mm infravörös nyomkövető 6.5mm IR-DIM曳光弾 6.5mm IR-DIM 예광탄 - 6.5mm 低視紅外曳光彈 - 6.5mm 低视红外曳光弹 + 6.5mm 低視紅外曳光彈 + 6.5mm 低视红外曳光弹 6.5mm 100Rnd Tracer IR-DIM Mag<br />Rounds: 100<br />Used in: MX LSW @@ -1158,8 +1158,8 @@ 6.5mm 100-lövedékes infravörös nyomkövető tár<br />Lövedékek: 100<br />Használható: MX LSW 6.5mm 100発入り IR-DIM曳光弾 弾倉<br />装填数: 100<br />次で使用: MX LSW 100발들이 6.5mm IR-DIM 예광탄 탄창<br />장탄수: 100<br />사용처: MX LSW - 6.5mm 100發 低視度紅外線曳光彈<br />發數: 100<br />使用於: MX LSW - 6.5mm 100发 低视度红外线曳光弹<br />发数: 100<br />使用于: MX LSW + 6.5mm 100發 低視度紅外線曳光彈<br />發數: 100<br />使用於: MX LSW + 6.5mm 100发 低视度红外线曳光弹<br />发数: 100<br />使用于: MX LSW 6.5mm 200Rnd Tracer IR-DIM Belt @@ -1174,8 +1174,8 @@ 6,5mm 200-lövedékes infravörös nyomkövető heveder 6.5mm 200発入り IR-DIM曳光弾ベルト 200발들이 6.5mm IR-DIM 예광탄 탄창 - 6.5mm 200發 低視度紅外線曳光彈 彈鏈 - 6.5mm 200发 低视度红外线曳光弹 弹链 + 6.5mm 200發 低視度紅外線曳光彈 彈鏈 + 6.5mm 200发 低视度红外线曳光弹 弹链 6.5mm IR-DIM @@ -1190,8 +1190,8 @@ 6,5mm infravörös nyomkövető 6.5mm IR-DIM曳光弾 6.5mm IR-DIM 예광탄 - 6.5mm 低視紅外曳光彈 - 6.5mm 低视红外曳光弹 + 6.5mm 低視紅外曳光彈 + 6.5mm 低视红外曳光弹 6.5mm 200Rnd Tracer IR-DIM Belt<br />Rounds: 200<br />Used in: Stoner 99 LMG @@ -1206,8 +1206,8 @@ 6.5mm 200-lövedékes infravörös nyomkövető heveder<br />Lövedékek: 200<br />Használható: Stoner 99 LMG 6.5mm 200発入り IR-DIM曳光弾ベルト<br />装填数: 200<br />次で使用: Stoner 99 LMG 200발들이 6.5mm IR-DIM 예광탄 벨트<br />장탄수: 200<br />사용처: Stoner 99 LMG - 6.5mm 200發 低視度紅外線曳光彈<br />發數: 200<br />使用於: Stoner 99 LMG - 6.5mm 200发 低视度红外线曳光弹<br />发数: 200<br />使用于: Stoner 99 LMG + 6.5mm 200發 低視度紅外線曳光彈<br />發數: 200<br />使用於: Stoner 99 LMG + 6.5mm 200发 低视度红外线曳光弹<br />发数: 200<br />使用于: Stoner 99 LMG 5.56mm 30Rnd Mag (Mk262) @@ -1222,8 +1222,8 @@ 5,56mm 30-lövedékes tár (Mk262) 5.56mm 30発入り 弾倉 (Mk262) 30발들이 5.56mm 탄창 (Mk262) - 5.56mm 30發 彈匣 (Mk262 狙擊專用彈) - 5.56mm 30发 弹匣 (Mk262 狙击专用弹) + 5.56mm 30發 彈匣 (Mk262 狙擊專用彈) + 5.56mm 30发 弹匣 (Mk262 狙击专用弹) 5.56mm Mk262 @@ -1238,8 +1238,8 @@ 5,56mm Mk262 5.56mm Mk262 5.56mm Mk262 - 5.56mm Mk262 狙擊專用彈 - 5.56mm Mk262 狙击专用弹 + 5.56mm Mk262 狙擊專用彈 + 5.56mm Mk262 狙击专用弹 Caliber: 5.56x45mm NATO (Mk262)<br />Rounds: 30 @@ -1254,8 +1254,8 @@ Kaliber: 5,56x45mm NATO (Mk262)<br />Lövedékek: 30 口径: 5.56x45mm NATO (Mk262)<br />装填数: 30 구경: 5.56x45mm NATO (Mk262)<br />장탄수: 30 - 口徑: 5.56x45mm NATO標準 (Mk262 狙擊專用彈)<br />發數: 30 - 口径: 5.56x45mm NATO标准 (Mk262 狙击专用弹)<br />发数: 30 + 口徑: 5.56x45mm NATO標準 (Mk262 狙擊專用彈)<br />發數: 30 + 口径: 5.56x45mm NATO标准 (Mk262 狙击专用弹)<br />发数: 30 5.56mm 30Rnd Mag (Mk318) @@ -1270,8 +1270,8 @@ 5,56mm 30-lövedékes tár (Mk318) 5.56mm 30発入り 弾倉 (Mk318) 30발들이 5.56mm 탄창 (Mk318) - 5.56mm 30發 彈匣 (Mk318 特戰專用彈) - 5.56mm 30发 弹匣 (Mk318 特战专用弹) + 5.56mm 30發 彈匣 (Mk318 特戰專用彈) + 5.56mm 30发 弹匣 (Mk318 特战专用弹) 5.56mm Mk318 @@ -1286,8 +1286,8 @@ 5,56mm Mk318 5.56mm Mk318 5.56mm Mk318 - 5.56mm Mk318 特戰專用彈 - 5.56mm Mk318 特战专用弹 + 5.56mm Mk318 特戰專用彈 + 5.56mm Mk318 特战专用弹 Caliber: 5.56x45mm NATO (Mk318)<br />Rounds: 30 @@ -1302,8 +1302,8 @@ Kaliber: 5,56x45mm NATO (Mk318)<br />Lövedékek: 30 口径: 5.56x45mm NATO (Mk318)<br />装填数: 30 구경: 5.56x45mm NATO (Mk318)<br />장탄수: 30 - 口徑: 5.56x45mm NATO標準 (Mk318 特戰專用彈)<br />發數: 30 - 口径: 5.56x45mm NATO标准 (Mk318 特战专用弹)<br />发数: 30 + 口徑: 5.56x45mm NATO標準 (Mk318 特戰專用彈)<br />發數: 30 + 口径: 5.56x45mm NATO标准 (Mk318 特战专用弹)<br />发数: 30 5.56mm 30Rnd Mag (M995 AP) @@ -1318,8 +1318,8 @@ 5,56mm 30-lövedékes tár (M995 páncéltörő) 5.56mm 30発入り 弾倉 (M995 徹甲弾) 30발들이 5.56mm 탄창 (Mk995 철갑탄) - 5.56mm 30發 彈匣 (M995 穿甲彈) - 5.56mm 30发 弹匣 (M995 穿甲弹) + 5.56mm 30發 彈匣 (M995 穿甲彈) + 5.56mm 30发 弹匣 (M995 穿甲弹) 5.56mm AP @@ -1334,8 +1334,8 @@ 5,56mm páncéltörő 5.56mm 徹甲弾 5.56mm 철갑탄 - 5.56mm M995 穿甲彈 - 5.56mm M995 穿甲弹 + 5.56mm M995 穿甲彈 + 5.56mm M995 穿甲弹 Caliber: 5.56x45mm NATO (M995 AP)<br />Rounds: 30 @@ -1350,8 +1350,8 @@ Kaliber: 5,56x45mm NATO (M995 páncéltörő)<br />Lövedékek: 30 口径: 5.56x45mm NATO (M995 徹甲弾)<br />装填数: 30 구경: 5.56x45mm NATO (Mk995 철갑탄)<br />장탄수: 30 - 口徑: 5.56x45mm NATO標準 (M995 穿甲彈)<br />發數: 30 - 口径: 5.56x45mm NATO标准 (M995 穿甲弹)<br />发数: 30 + 口徑: 5.56x45mm NATO標準 (M995 穿甲彈)<br />發數: 30 + 口径: 5.56x45mm NATO标准 (M995 穿甲弹)<br />发数: 30 7.62mm 10Rnd Mag (M118LR) @@ -1366,8 +1366,8 @@ 7,62mm 10-lövedékes tár (M118LR) 7.62mm 10発入り 弾倉 (M118LR) 10발들이 7.62mm 탄창 (M118LR) - 7.62mm 10發 彈匣 (M118LR 狙擊專用彈) - 7.62mm 10发 弹匣 (M118LR 狙击专用弹) + 7.62mm 10發 彈匣 (M118LR 狙擊專用彈) + 7.62mm 10发 弹匣 (M118LR 狙击专用弹) 7.62mm M118LR @@ -1382,8 +1382,8 @@ 7,62mm M118LR 7.62mm M118LR 7.62mm M118LR - 7.62mm M118LR 狙擊專用彈 - 7.62mm M118LR 狙击专用弹 + 7.62mm M118LR 狙擊專用彈 + 7.62mm M118LR 狙击专用弹 Caliber: 7.62x51mm NATO (M118LR)<br />Rounds: 10 @@ -1398,8 +1398,8 @@ Kaliber: 7,62x51mm NATO (M118LR)<br />Lövedékek: 10 口径: 7.62x51mm NATO (M118LR)<br />装填数: 10 구경: 7.62x51mm NATO (M118LR)<br />장탄수: 10 - 口徑: 7.62x51mm NATO標準 (M118LR 狙擊專用彈)<br />發數: 10 - 口径: 7.62x51mm NATO标准 (M118LR 狙击专用弹)<br />发数: 10 + 口徑: 7.62x51mm NATO標準 (M118LR 狙擊專用彈)<br />發數: 10 + 口径: 7.62x51mm NATO标准 (M118LR 狙击专用弹)<br />发数: 10 7.62mm 20Rnd Mag (M118LR) @@ -1414,8 +1414,8 @@ 7,62mm 20-lövedékes tár (M118LR) 7.62mm 20発入り 弾倉 (M118LR) 20발들이 7.62mm 탄창 (M118LR) - 7.62mm 20發 彈匣 (M118LR 狙擊專用彈) - 7.62mm 20发 弹匣 (M118LR 狙击专用弹) + 7.62mm 20發 彈匣 (M118LR 狙擊專用彈) + 7.62mm 20发 弹匣 (M118LR 狙击专用弹) 7.62mm M118LR @@ -1430,8 +1430,8 @@ 7,62mm M118LR 7.62mm M118LR 7.62mm M118LR - 7.62mm M118LR 狙擊專用彈 - 7.62mm M118LR 狙击专用弹 + 7.62mm M118LR 狙擊專用彈 + 7.62mm M118LR 狙击专用弹 Caliber: 7.62x51mm NATO (M118LR)<br />Rounds: 20 @@ -1446,8 +1446,8 @@ Kaliber: 7,62x51mm NATO (M118LR)<br />Lövedékek: 20 口径: 7.62x51mm NATO (M118LR)<br />装填数: 20 구경: 7.62x51mm NATO (M118LR)<br />장탄수: 20 - 口徑: 7.62x51mm NATO標準 (M118LR 狙擊專用彈)<br />發數: 20 - 口径: 7.62x51mm NATO标准 (M118LR 狙击专用弹)<br />发数: 20 + 口徑: 7.62x51mm NATO標準 (M118LR 狙擊專用彈)<br />發數: 20 + 口径: 7.62x51mm NATO标准 (M118LR 狙击专用弹)<br />发数: 20 7.62mm 10Rnd Mag (Mk316 Mod 0) @@ -1462,8 +1462,8 @@ 7,62mm 10-lövedékes tár (Mk316 Mod 0) 7.62mm 10発入り 弾倉 (Mk316 Mod 0) 10발들이 7.62mm 탄창 (Mk316 Mod 0) - 7.62mm 10發 彈匣 (Mk316 Mod 0 狙擊專用彈) - 7.62mm 10发 弹匣 (Mk316 Mod 0 狙击专用弹) + 7.62mm 10發 彈匣 (Mk316 Mod 0 狙擊專用彈) + 7.62mm 10发 弹匣 (Mk316 Mod 0 狙击专用弹) 7.62mm Mk316 @@ -1478,8 +1478,8 @@ 7,62mm Mk316 7.62mm Mk316 7.62mm Mk316 - 7.62mm Mk316 狙擊專用彈 - 7.62mm Mk316 狙击专用弹 + 7.62mm Mk316 狙擊專用彈 + 7.62mm Mk316 狙击专用弹 Caliber: 7.62x51mm NATO (Mk316 Mod 0)<br />Rounds: 10 @@ -1494,8 +1494,8 @@ Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Lövedékek: 10 口径: 7.62x51mm NATO (Mk316 Mod 0)<br />装填数: 10 구경: 7.62x51mm NATO (Mk316 Mod 0)<br />장탄수: 10 - 口徑: 7.62x51mm NATO標準 (Mk316 Mod 0 狙擊專用彈)<br />發數: 10 - 口径: 7.62x51mm NATO标准 (Mk316 Mod 0 狙击专用弹)<br />发数: 10 + 口徑: 7.62x51mm NATO標準 (Mk316 Mod 0 狙擊專用彈)<br />發數: 10 + 口径: 7.62x51mm NATO标准 (Mk316 Mod 0 狙击专用弹)<br />发数: 10 7.62mm 20Rnd Mag (Mk316 Mod 0) @@ -1510,8 +1510,8 @@ 7,62mm 20-lövedékes tár (Mk316 Mod 0) 7.62mm 20発入り 弾倉 (Mk316 Mod 0) 20발들이 7.62mm 탄창 (Mk316 Mod 0) - 7.62mm 20發 彈匣 (Mk316 Mod 0 狙擊專用彈) - 7.62mm 20发 弹匣 (Mk316 Mod 0 狙击专用弹) + 7.62mm 20發 彈匣 (Mk316 Mod 0 狙擊專用彈) + 7.62mm 20发 弹匣 (Mk316 Mod 0 狙击专用弹) 7.62mm Mk316 @@ -1526,8 +1526,8 @@ 7,62mm Mk316 7.62mm Mk316 7.62mm Mk316 - 7.62mm Mk316 狙擊專用彈 - 7.62mm Mk316 狙击专用弹 + 7.62mm Mk316 狙擊專用彈 + 7.62mm Mk316 狙击专用弹 Caliber: 7.62x51mm NATO (Mk316 Mod 0)<br />Rounds: 20 @@ -1542,8 +1542,8 @@ Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Lövedékek: 20 口径: 7.62x51mm NATO (Mk316 Mod 0)<br />装填数: 20 구경: 7.62x51mm NATO (Mk316 Mod 0)<br />장탄수: 20 - 口徑: 7.62x51mm NATO標準 (Mk316 Mod 0 狙擊專用彈)<br />發數: 20 - 口径: 7.62x51mm NATO标准 (Mk316 Mod 0 狙击专用弹)<br />发数: 20 + 口徑: 7.62x51mm NATO標準 (Mk316 Mod 0 狙擊專用彈)<br />發數: 20 + 口径: 7.62x51mm NATO标准 (Mk316 Mod 0 狙击专用弹)<br />发数: 20 7.62mm 10Rnd Mag (Mk319 Mod 0) @@ -1558,8 +1558,8 @@ 7,62mm 10-lövedékes tár (Mk319 Mod 0) 7.62mm 10発入り 弾倉 (Mk319 Mod 0) 10발들이 7.62mm 탄창 (Mk319 Mod 0) - 7.62mm 10發 彈匣 (Mk319 Mod 0 特戰專用彈) - 7.62mm 10发 弹匣 (Mk319 Mod 0 特战专用弹) + 7.62mm 10發 彈匣 (Mk319 Mod 0 特戰專用彈) + 7.62mm 10发 弹匣 (Mk319 Mod 0 特战专用弹) 7.62mm Mk319 @@ -1574,8 +1574,8 @@ 7,62mm Mk319 7.62mm Mk319 7.62mm Mk319 - 7.62mm Mk319 特戰專用彈 - 7.62mm Mk319 特战专用弹 + 7.62mm Mk319 特戰專用彈 + 7.62mm Mk319 特战专用弹 Caliber: 7.62x51mm NATO (Mk319 Mod 0)<br />Rounds: 10 @@ -1590,8 +1590,8 @@ Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Lövedékek: 10 口径: 7.62x51mm NATO (Mk319 Mod 0)<br />装填数: 10 구경: 7.62x51mm NATO (Mk319 Mod 0)<br />장탄수: 10 - 口徑: 7.62x51mm NATO標準 (Mk319 Mod 0 特戰專用彈)<br />發數: 10 - 口径: 7.62x51mm NATO标准 (Mk319 Mod 0 特战专用弹)<br />发数: 10 + 口徑: 7.62x51mm NATO標準 (Mk319 Mod 0 特戰專用彈)<br />發數: 10 + 口径: 7.62x51mm NATO标准 (Mk319 Mod 0 特战专用弹)<br />发数: 10 7.62mm 20Rnd Mag (Mk319 Mod 0) @@ -1606,8 +1606,8 @@ 7,62mm 20-lövedékes tár (Mk319 Mod 0) 7.62mm 20発入り 弾倉 (Mk319 Mod 0) 20발들이 7.62mm 탄창 (Mk319 Mod 0) - 7.62mm 20發 彈匣 (Mk319 Mod 0 特戰專用彈) - 7.62mm 20发 弹匣 (Mk319 Mod 0 特战专用弹) + 7.62mm 20發 彈匣 (Mk319 Mod 0 特戰專用彈) + 7.62mm 20发 弹匣 (Mk319 Mod 0 特战专用弹) 7.62mm Mk319 @@ -1622,8 +1622,8 @@ 7,62mm Mk319 7.62mm Mk319 7.62mm Mk319 - 7.62mm Mk319 特戰專用彈 - 7.62mm Mk319 特战专用弹 + 7.62mm Mk319 特戰專用彈 + 7.62mm Mk319 特战专用弹 Caliber: 7.62x51mm NATO (Mk319 Mod 0)<br />Rounds: 20 @@ -1638,8 +1638,8 @@ Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Lövedékek: 20 口径: 7.62x51mm NATO (Mk319 Mod 0)<br />装填数: 20 구경: 7.62x51mm NATO (Mk319 Mod 0)<br />장탄수: 20 - 口徑: 7.62x51mm NATO標準 (Mk319 Mod 0 特戰專用彈)<br />發數: 20 - 口径: 7.62x51mm NATO标准 (Mk319 Mod 0 特战专用弹)<br />发数: 20 + 口徑: 7.62x51mm NATO標準 (Mk319 Mod 0 特戰專用彈)<br />發數: 20 + 口径: 7.62x51mm NATO标准 (Mk319 Mod 0 特战专用弹)<br />发数: 20 7.62mm 10Rnd Mag (M993 AP) @@ -1654,8 +1654,8 @@ 7,62mm 10-lövedékes tár (M993 páncéltörő) 7.62mm 10発入り 弾倉 (M993 徹甲弾) 10발들이 7.62mm 탄창 (M993 철갑탄) - 7.62mm 10發 彈匣 (M993 穿甲專用彈) - 7.62mm 10发 弹匣 (M993 穿甲专用弹) + 7.62mm 10發 彈匣 (M993 穿甲專用彈) + 7.62mm 10发 弹匣 (M993 穿甲专用弹) 7.62mm AP @@ -1670,8 +1670,8 @@ 7,62mm páncéltörő 7.62mm 徹甲弾 7.62mm 철갑탄 - 7.62mm M993 穿甲專用彈 - 7.62mm M993 穿甲专用弹 + 7.62mm M993 穿甲專用彈 + 7.62mm M993 穿甲专用弹 Caliber: 7.62x51mm NATO (M993 AP)<br />Rounds: 10 @@ -1686,8 +1686,8 @@ Kaliber: 7,62x51mm NATO (M993 páncéltörő)<br />Lövedékek: 10 口径: 7.62x51mm NATO (Mk319 Mod 0)<br />装填数: 10 구경: 7.62x51mm NATO (M993 철갑탄)<br />장탄수: 10 - 口徑: 7.62x51mm NATO標準 (M993 穿甲專用彈)<br />發數: 10 - 口径: 7.62x51mm NATO标准 (M993 穿甲专用弹)<br />发数: 10 + 口徑: 7.62x51mm NATO標準 (M993 穿甲專用彈)<br />發數: 10 + 口径: 7.62x51mm NATO标准 (M993 穿甲专用弹)<br />发数: 10 7.62mm 20Rnd Mag (M993 AP) @@ -1702,8 +1702,8 @@ 7,62mm 20-lövedékes tár (M993 páncéltörő) 7.62mm 20発入り 弾倉 (M993 徹甲弾) 20발들이 7.62mm 탄창 (M993 철갑탄) - 7.62mm 20發 彈匣 (M993 穿甲專用彈) - 7.62mm 20发 弹匣 (M993 穿甲专用弹) + 7.62mm 20發 彈匣 (M993 穿甲專用彈) + 7.62mm 20发 弹匣 (M993 穿甲专用弹) 7.62mm AP @@ -1718,8 +1718,8 @@ 7,62mm páncéltörő 7.62mm 徹甲弾 7.62mm 철갑탄 - 7.62mm M993 穿甲專用彈 - 7.62mm M993 穿甲专用弹 + 7.62mm M993 穿甲專用彈 + 7.62mm M993 穿甲专用弹 Caliber: 7.62x51mm NATO (M993 AP)<br />Rounds: 20 @@ -1734,8 +1734,8 @@ Kaliber: 7,62x51mm NATO (M993 páncéltörő)<br />Lövedékek: 20 口径: 7.62x51mm NATO (M993 徹甲弾)<br />装填数: 20 구경: 7.62x51mm NATO (M993 철갑탄)<br />장탄수: 20 - 口徑: 7.62x51mm NATO標準 (M993 穿甲專用彈)<br />發數: 20 - 口径: 7.62x51mm NATO标准 (M993 穿甲专用弹)<br />发数: 20 + 口徑: 7.62x51mm NATO標準 (M993 穿甲專用彈)<br />發數: 20 + 口径: 7.62x51mm NATO标准 (M993 穿甲专用弹)<br />发数: 20 7.62mm 20Rnd Mag (Mk248 Mod 0) @@ -1750,8 +1750,8 @@ 7,62mm 20-lövedékes tár (Mk248 Mod 0) 7.62mm 20発入り 弾倉 (Mk248 Mod 0) 20발들이 7.62mm 탄창 (Mk248 Mod 0) - 7.62mm 20發 彈匣 (Mk248 Mod 0 狙擊專用彈) - 7.62mm 20发 弹匣 (Mk248 Mod 0 狙击专用弹) + 7.62mm 20發 彈匣 (Mk248 Mod 0 狙擊專用彈) + 7.62mm 20发 弹匣 (Mk248 Mod 0 狙击专用弹) 7.62mm Mk248 @@ -1766,8 +1766,8 @@ 7,62mm Mk248 7.62mm Mk248 7.62mm Mk248 - 7.62mm Mk248 狙擊專用彈 - 7.62mm Mk248 狙击专用弹 + 7.62mm Mk248 狙擊專用彈 + 7.62mm Mk248 狙击专用弹 Caliber: 7.62x67mm NATO (Mk248 Mod 0)<br />Rounds: 20 @@ -1782,8 +1782,8 @@ Kaliber: 7,62x51mm NATO (Mk248 Mod 0)<br />Lövedékek: 20 口径: 7.62x67mm NATO (Mk248 Mod 0)<br />装填数: 20 구경: 7.62x51mm NATO (Mk248 Mod 0)<br />장탄수: 20 - 口徑: 7.62x67mm NATO標準 (Mk248 Mod 0 狙擊專用彈)<br />發數: 20 - 口径: 7.62x67mm NATO标准 (Mk248 Mod 0 狙击专用弹)<br />发数: 20 + 口徑: 7.62x67mm NATO標準 (Mk248 Mod 0 狙擊專用彈)<br />發數: 20 + 口径: 7.62x67mm NATO标准 (Mk248 Mod 0 狙击专用弹)<br />发数: 20 7.62mm 20Rnd Mag (Mk248 Mod 1) @@ -1798,8 +1798,8 @@ 7,62mm 20-lövedékes tár (Mk248 Mod 1) 7.62mm 20発入り 弾倉 (Mk248 Mod 1) 20발들이 7.62mm 탄창 (Mk248 Mod 1) - 7.62mm 20發 彈匣 (Mk248 Mod 1 狙擊專用彈) - 7.62mm 20发 弹匣 (Mk248 Mod 1 狙击专用弹) + 7.62mm 20發 彈匣 (Mk248 Mod 1 狙擊專用彈) + 7.62mm 20发 弹匣 (Mk248 Mod 1 狙击专用弹) 7.62mm Mk248 @@ -1814,8 +1814,8 @@ 7,62mm Mk248 7.62mm Mk248 7.62mm Mk248 - 7.62mm Mk248 狙擊專用彈 - 7.62mm Mk248 狙击专用弹 + 7.62mm Mk248 狙擊專用彈 + 7.62mm Mk248 狙击专用弹 Caliber: 7.62x67mm NATO (Mk248 Mod 1)<br />Rounds: 20 @@ -1830,8 +1830,8 @@ Kaliber: 7,62x51mm NATO (Mk248 Mod 1)<br />Lövedékek: 20 口径: 7.62x67mm NATO (Mk248 Mod 1)<br />装填数: 20 구경: 7.62x51mm NATO (Mk248 Mod 1)<br />장탄수: 20 - 口徑: 7.62x67mm NATO標準 (Mk248 Mod 1 狙擊專用彈)<br />發數: 20 - 口径: 7.62x67mm NATO标准 (Mk248 Mod 1 狙击专用弹)<br />发数: 20 + 口徑: 7.62x67mm NATO標準 (Mk248 Mod 1 狙擊專用彈)<br />發數: 20 + 口径: 7.62x67mm NATO标准 (Mk248 Mod 1 狙击专用弹)<br />发数: 20 7.62mm 20Rnd Mag (Berger Hybrid OTM) @@ -1846,8 +1846,8 @@ 7,62mm 20-lövedékes tár (Berger Hybrid OTM) 7.62mm 20発入り 弾倉 (Berger Hybrid OTM) 20발들이 7.62mm 탄창 (Berger Hybrid OTM) - 7.62mm 20發 彈匣 (Berger Hybrid 空尖比賽專用彈) - 7.62mm 20发 弹匣 (Berger Hybrid 空尖比赛专用弹) + 7.62mm 20發 彈匣 (Berger Hybrid 空尖比賽專用彈) + 7.62mm 20发 弹匣 (Berger Hybrid 空尖比赛专用弹) 7.62mm OTM @@ -1862,8 +1862,8 @@ 7,62mm OTM 7.62mm OTM 7.62mm OTM - 7.62mm 空尖比賽專用彈 - 7.62mm 空尖比赛专用弹 + 7.62mm 空尖比賽專用彈 + 7.62mm 空尖比赛专用弹 Caliber: 7.62x67mm NATO (Berger Hybrid OTM)<br />Rounds: 20 @@ -1878,8 +1878,8 @@ Kaliber: 7,62x67mm NATO (Berger Hybrid OTM)<br />Lövedékek: 20 口径: 7.62x67mm NATO (Berger Hybrid OTM)<br />装填数: 20 구경: 7.62x51mm NATO (Berger Hybrid OTM)<br />장탄수: 20 - 口徑: 7.62x67mm NATO標準 (Berger Hybrid 空尖比賽專用彈)<br />發數: 20 - 口径: 7.62x67mm NATO标准 (Berger Hybrid 空尖比赛专用弹)<br />发数: 20 + 口徑: 7.62x67mm NATO標準 (Berger Hybrid 空尖比賽專用彈)<br />發數: 20 + 口径: 7.62x67mm NATO标准 (Berger Hybrid 空尖比赛专用弹)<br />发数: 20 6.5x47mm 30Rnd Mag (HPBT Scenar) @@ -1894,8 +1894,8 @@ 6,5x47mm 30-lövedékes tár (HPBT Scenar) 6.5x47mm 30発入り 弾倉 (HPBT Scenar) 30발들이 6.5x47mm 탄창 (HPBT Scenar) - 6.5x47mm 30發 彈匣 (Lapua 空尖艇尾狙擊專用彈) - 6.5x47mm 30发 弹匣 (Lapua 空尖艇尾狙击专用弹) + 6.5x47mm 30發 彈匣 (Lapua 空尖艇尾狙擊專用彈) + 6.5x47mm 30发 弹匣 (Lapua 空尖艇尾狙击专用弹) 6.5mm Lapua @@ -1910,8 +1910,8 @@ 6,5mm Lapua 6.5mm Lapua 6.5mm Lapua - 6.5mm Lapua 空尖艇尾狙擊專用彈 - 6.5mm Lapua 空尖艇尾狙击专用弹 + 6.5mm Lapua 空尖艇尾狙擊專用彈 + 6.5mm Lapua 空尖艇尾狙击专用弹 Caliber: 6.5x47mm (HPBT Scenar)<br />Rounds: 30<br />Used in: MXM @@ -1926,8 +1926,8 @@ Kaliber: 6,5x47mm (HPBT Scenar)<br />Lövedékek: 30<br />Használható: MXM 口径: 6.5x47mm (HPBT Scenar)<br />装填数: 30<br />次で使用: MXM 구경: 6.5x47mm (HPBT Scenar)<br />장탄수: 30<br />사용처: MXM - 口徑: 6.5x47mm (Lapua 空尖艇尾狙擊專用彈)<br />發數: 30<br />使用於: MXM - 口径: 6.5x47mm (Lapua 空尖艇尾狙击专用弹)<br />发数: 30<br />使用于: MXM + 口徑: 6.5x47mm (Lapua 空尖艇尾狙擊專用彈)<br />發數: 30<br />使用於: MXM + 口径: 6.5x47mm (Lapua 空尖艇尾狙击专用弹)<br />发数: 30<br />使用于: MXM 6.5mm Creedmor 30Rnd Mag @@ -1942,8 +1942,8 @@ 6,5mm Creedmor 30-lövedékes tár 6.5mm Creedmor 30発入り 弾倉 30발들이 6.5mm Creedmor 탄창 - 6.5mm 30發 彈匣 (Creedmor 狙擊專用彈) - 6.5mm 30发 弹匣 (Creedmor 狙击专用弹) + 6.5mm 30發 彈匣 (Creedmor 狙擊專用彈) + 6.5mm 30发 弹匣 (Creedmor 狙击专用弹) 6.5mm CM @@ -1958,8 +1958,8 @@ 6,5mm CM 6.5mm CM 6.5mm CM - 6.5mm CM 狙擊專用彈 - 6.5mm CM 狙击专用弹 + 6.5mm CM 狙擊專用彈 + 6.5mm CM 狙击专用弹 Caliber: 6.5x47mm Creedmor<br />Rounds: 30<br />Used in: MXM @@ -1974,8 +1974,8 @@ Kaliber: 6,5x47mm Creedmor<br />Lövedékek: 30<br />Használható: MXM 口径: 6.5x47mm Creedmor<br />装填数: 30<br />次で使用: MXM 구경: 6.5x47mm Creedmor<br />장탄수: 30<br />사용처: MXM - 口徑: 6.5x47mm Creedmor 狙擊專用彈<br />發數: 30<br />使用於: MXM - 口径: 6.5x47mm Creedmor 狙击专用弹<br />发数: 30<br />使用于: MXM + 口徑: 6.5x47mm Creedmor 狙擊專用彈<br />發數: 30<br />使用於: MXM + 口径: 6.5x47mm Creedmor 狙击专用弹<br />发数: 30<br />使用于: MXM .338 10Rnd Mag (300gr Sierra MatchKing HPBT) @@ -1990,8 +1990,8 @@ .338 10-lövedékes tár (300gr Sierra MatchKing HPBT) .338 10発入り 弾倉 (300gr Sierra MatchKing HPBT) 10발들이 .338 탄창 (300gr Sierra MatchKing HPBT) - .338 10發 彈匣 (300公克 Sierra MatchKing 空尖艇尾比賽專用彈) - .338 10发 弹匣 (300公克 Sierra MatchKing 空尖艇尾比赛专用弹) + .338 10發 彈匣 (300公克 Sierra MatchKing 空尖艇尾比賽專用彈) + .338 10发 弹匣 (300公克 Sierra MatchKing 空尖艇尾比赛专用弹) .338 HPBT @@ -2006,8 +2006,8 @@ .338 HPBT 338 HPBT .338 HPBT - .338 空尖艇尾比賽專用彈 - .338 空尖艇尾比赛专用弹 + .338 空尖艇尾比賽專用彈 + .338 空尖艇尾比赛专用弹 Caliber: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Rounds: 10 @@ -2022,8 +2022,8 @@ Kaliber: 8,6x70mm (300gr Sierra MatchKing HPBT)<br />Lövedékek: 10 口径: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />装填数: 10 구경: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />장탄수: 10 - 口徑: 8.6x70mm (300公克 Sierra MatchKing 空尖艇尾比賽專用彈)<br />發數: 10 - 口径: 8.6x70mm (300公克 Sierra MatchKing 空尖艇尾比赛专用弹)<br />发数: 10 + 口徑: 8.6x70mm (300公克 Sierra MatchKing 空尖艇尾比賽專用彈)<br />發數: 10 + 口径: 8.6x70mm (300公克 Sierra MatchKing 空尖艇尾比赛专用弹)<br />发数: 10 .338 10Rnd Mag (API526) @@ -2038,8 +2038,8 @@ .338 10-lövedékes tár (API526) .338 10発入り 弾倉 (API526) 10발들이 .338 탄창 (API526) - .338 10發 彈匣 (API526 穿甲燃燒彈) - .338 10发 弹匣 (API526 穿甲燃烧弹) + .338 10發 彈匣 (API526 穿甲燃燒彈) + .338 10发 弹匣 (API526 穿甲燃烧弹) .338 AP @@ -2054,8 +2054,8 @@ .338 páncéltörő .338 徹甲弾 .338 철갑탄 - .338 API526 穿甲燃燒彈 - .338 API526 穿甲燃烧弹 + .338 API526 穿甲燃燒彈 + .338 API526 穿甲燃烧弹 Caliber: 8.6x70mm (API526)<br />Rounds: 10 @@ -2070,8 +2070,8 @@ Kaliber: 8,6x70mm (API526)<br />Lövedékek: 10 口径: 8.6x70mm (API526)<br />装填数: 10 구경: 8.6x70mm (API526)<br />장탄수: 10 - 口徑: 8.6x70mm (API526 穿甲燃燒彈)<br />發數: 10 - 口径: 8.6x70mm (API526 穿甲燃烧弹)<br />发数: 10 + 口徑: 8.6x70mm (API526 穿甲燃燒彈)<br />發數: 10 + 口径: 8.6x70mm (API526 穿甲燃烧弹)<br />发数: 10 .408 7Rnd Mag (305gr) @@ -2086,8 +2086,8 @@ .408 7-lövedékes tár (305gr) .408 7発入り 弾倉 (305gr) 7발들이 .408 탄창 (305gr) - .408 7發 彈匣 (305公克) - .408 7发 弹匣 (305公克) + .408 7發 彈匣 (305公克) + .408 7发 弹匣 (305公克) .408 @@ -2102,8 +2102,8 @@ .408 .408 .408 - .408 - .408 + .408 + .408 Caliber: .408 CheyTac (305gr)<br />Rounds: 7 @@ -2118,8 +2118,8 @@ Kaliber: .408 CheyTac (305gr)<br />Lövedékek: 7 口径: .408 CheyTac (305gr)<br />装填数: 7 구경: .408 CheyTac (305gr)<br />장탄수: 7 - 口徑: .408 夏伊戰術狙擊彈 (305公克)<br />發數: 7 - 口径: .408 夏伊战术狙击弹 (305公克)<br />发数: 7 + 口徑: .408 夏伊戰術狙擊彈 (305公克)<br />發數: 7 + 口径: .408 夏伊战术狙击弹 (305公克)<br />发数: 7 12.7x99mm 5Rnd Mag @@ -2134,8 +2134,8 @@ 12,7x99mm 5-lövedékes tár 12.7x99mm 5発入り 弾倉 5발들이 12.7x99mm 탄창 - 12.7x99mm 5發 彈匣 - 12.7x99mm 5发 弹匣 + 12.7x99mm 5發 彈匣 + 12.7x99mm 5发 弹匣 12.7mm @@ -2150,8 +2150,8 @@ 12,7mm 12.7mm 12.7mm - 12.7mm - 12.7mm + 12.7mm + 12.7mm Caliber: 12.7x99mm<br />Rounds: 5 @@ -2166,8 +2166,8 @@ Kaliber: 12,7x99mm<br />Lövedékek: 5 口径: 12.7x99mm<br />装填数: 5 구경: 12.7x99mm<br />장탄수: 5 - 口徑: 12.7x99mm<br />發數: 5 - 口径: 12.7x99mm<br />发数: 5 + 口徑: 12.7x99mm<br />發數: 5 + 口径: 12.7x99mm<br />发数: 5 12.7x99mm API 5Rnd Mag @@ -2182,8 +2182,8 @@ 12,7x99mm 5-lövedékes tár (páncéltörő-gyújtó) 12.7x99mm 5発入り焼夷徹甲弾 弾倉 5발들이 12.7x99mm 철갑소이탄 탄창 - 12.7x99mm 穿甲燃燒彈 5發 彈匣 - 12.7x99mm 穿甲燃烧弹 5发 弹匣 + 12.7x99mm 穿甲燃燒彈 5發 彈匣 + 12.7x99mm 穿甲燃烧弹 5发 弹匣 12.7mm API @@ -2198,8 +2198,8 @@ 12,7mm páncéltörő-gyújtó 12.7mm 焼夷徹甲弾 12.7mm 철갑소이탄 - 12.7mm 穿甲燃燒彈 - 12.7mm 穿甲燃烧弹 + 12.7mm 穿甲燃燒彈 + 12.7mm 穿甲燃烧弹 Caliber: 12.7x99mm API<br />Rounds: 5 @@ -2214,8 +2214,8 @@ Kaliber: 12,7x99mm API<br />Lövedékek: 5 口径: 12.7x99mm 焼夷徹甲弾<br />装填数: 5 구경: 12.7x99mm 철갑소이탄<br />장탄수: 5 - 口徑: 12.7x99mm 穿甲燃燒彈<br />發數: 5 - 口径: 12.7x99mm 穿甲燃烧弹<br />发数: 5 + 口徑: 12.7x99mm 穿甲燃燒彈<br />發數: 5 + 口径: 12.7x99mm 穿甲燃烧弹<br />发数: 5 12.7x99mm 5Rnd Mag (AMAX) @@ -2230,8 +2230,8 @@ 12,7x99mm 5-lövedékes tár (AMAX) 12.7x99mm 5発入り 弾倉 (AMAX) 5발들이 12.7x99mm 탄창 (AMAX) - 12.7x99mm 5發 彈匣 (AMAX 比賽專用彈) - 12.7x99mm 5发 弹匣 (AMAX 比赛专用弹) + 12.7x99mm 5發 彈匣 (AMAX 比賽專用彈) + 12.7x99mm 5发 弹匣 (AMAX 比赛专用弹) 12.7mm @@ -2246,8 +2246,8 @@ 12,7mm 12.7mm 12.7mm - 12.7mm AMAX 比賽專用彈 - 12.7mm AMAX 比赛专用弹 + 12.7mm AMAX 比賽專用彈 + 12.7mm AMAX 比赛专用弹 Caliber: 12.7x99mm (AMAX)<br />Rounds: 5 @@ -2262,8 +2262,8 @@ Kaliber: 12,7x99mm (AMAX)<br />Lövedékek: 5 口径: 12.7x99mm (AMAX)<br />装填数: 5 구경: 12.7x99mm (AMAX)<br />장탄수: 5 - 口徑: 12.7x99mm (AMAX 比賽專用彈)<br />發數: 5 - 口径: 12.7x99mm (AMAX 比赛专用弹)<br />发数: 5 + 口徑: 12.7x99mm (AMAX 比賽專用彈)<br />發數: 5 + 口径: 12.7x99mm (AMAX 比赛专用弹)<br />发数: 5 [ACE] Ammo Supply Crate @@ -2278,8 +2278,8 @@ [ACE] Cassa munizioni [ACE] 弾薬物資箱 [ACE] 탄약 보급 상자 - [ACE] 彈藥補給箱 - [ACE] 弹药补给箱 + [ACE] 彈藥補給箱 + [ACE] 弹药补给箱 diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml index 8b976754257..467d06bd830 100644 --- a/addons/captives/stringtable.xml +++ b/addons/captives/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Взять в плен 捕虜にする 사로잡기 - 逮捕俘虜 - 逮捕俘虏 + 逮捕俘虜 + 逮捕俘虏 Free Prisoner @@ -30,8 +30,8 @@ Освободить пленника 捕虜を解放する 풀어주기 - 釋放俘虜 - 释放俘虏 + 釋放俘虜 + 释放俘虏 Escort Prisoner @@ -46,8 +46,8 @@ Конвоировать пленника 捕虜を移動させる 포로 호송하기 - 護送俘虜 - 护送俘虏 + 護送俘虜 + 护送俘虏 Release Prisoner @@ -62,8 +62,8 @@ Прекратить конвоирование 捕虜を解放する 포로 풀어주기 - 停止護送俘虜 - 停止护送俘虏 + 停止護送俘虜 + 停止护送俘虏 You need to take him as prisoner first! @@ -78,8 +78,8 @@ Вы должны сначала взять его в плен! あなたは先に捕虜を取る必要があります。 먼저 포로로 만들어야합니다! - 你必須先逮捕他! - 你必须先逮捕他! + 你必須先逮捕他! + 你必须先逮捕他! Load Captive @@ -94,8 +94,8 @@ Fai salire il prigioniero 捕虜を乗せる 포로 태우기 - 將俘虜放入載具 - 将俘虏放入载具 + 將俘虜放入載具 + 将俘虏放入载具 Unload Captive @@ -110,8 +110,8 @@ Fai scendere il prigioniero 捕虜を降ろす 포로 내리기 - 將俘虜帶出載具 - 将俘虏带出载具 + 將俘虜帶出載具 + 将俘虏带出载具 Cable Tie @@ -126,8 +126,8 @@ Кабельная стяжка ケーブル タイ 케이블 타이 - 束線帶 - 束线带 + 束線帶 + 束线带 Cable ties that allow you to restrain prisoners. @@ -142,8 +142,8 @@ Кабельные стяжки позволяют связывать пленников. ケーブル タイは捕虜を制圧できます。 케이블 타이는 포로를 구류시킬때 씁니다. - 束線帶可以綁住俘虜 - 束线带可以绑住俘虏 + 束線帶可以綁住俘虜 + 束线带可以绑住俘虏 Inventory of frisked person @@ -158,8 +158,8 @@ Inventario della persona perquisita 捕虜の持ち物を確認する 검문당한 사람의 소지품 - 搜身選單 - 搜身选单 + 搜身選單 + 搜身选单 Frisk person @@ -174,8 +174,8 @@ Perquisisci la persona 捕虜の持ち物 검문당한사람 - 搜身 - 搜身 + 搜身 + 搜身 Surrender @@ -190,8 +190,8 @@ Arrenditi 投降 투항 - 投降 - 投降 + 投降 + 投降 Stop Surrendering @@ -206,8 +206,8 @@ Smetti di arrenderti 投降をやめる 투항하는것을 멈춤 - 停止投降 - 停止投降 + 停止投降 + 停止投降 Make Unit Surrender @@ -222,8 +222,8 @@ Fai arrendere l'unità ユニットを投降させる 투항시키기 - 使單位投降 - 使单位投降 + 使單位投降 + 使单位投降 Sync a unit to make them surrender. @@ -238,8 +238,8 @@ Sincronizza una unità per farla arrendere. 同期されたユニットを投降させます。 투항시키기 위해 동기화합니다. - 同步此模塊到一個單位, 使該單位投降 - 同步此模块到一个单位, 使该单位投降 + 同步此模塊到一個單位, 使該單位投降 + 同步此模块到一个单位, 使该单位投降 Make Unit Handcuffed @@ -253,8 +253,8 @@ Rendre une unité captive ユニットを拘束する 수갑을 채우기 - 使單位戴上手銬 - 使单位戴上手铐 + 使單位戴上手銬 + 使单位戴上手铐 Sync a unit to make them handcuffed. @@ -268,8 +268,8 @@ Synchronisez une unité pour la rendre captive. 同期されたユニットを拘束させます。 수갑을 채우기 위해 동기화합니다. - 使單位戴上手銬 - 使单位戴上手铐 + 使單位戴上手銬 + 使单位戴上手铐 Captives Settings @@ -284,8 +284,8 @@ Impostazioni Prigionieri 拘束の設定 포로 설정 - 俘虜設定 - 俘虏设定 + 俘虜設定 + 俘虏设定 Controls settings for surrender and cable ties @@ -300,8 +300,8 @@ Controlla le impostazioni per la resa e le manette 投降したユニットや拘束されたユニットの扱いを設定します。 투항과 케이블 타이에 관련한 설정 - 定義投降與束帶等設定 - 定义投降与束带等设定 + 定義投降與束帶等設定 + 定义投降与束带等设定 Can handcuff own side @@ -316,8 +316,8 @@ Puoi ammanettare unità alleate 自陣営への拘束を可能に 자기편에게 수갑을 채울 수 있게 합니다 - 可以銬住同陣營隊友 - 可以铐住同阵营队友 + 可以銬住同陣營隊友 + 可以铐住同阵营队友 Can players cabletie units on their own side @@ -332,8 +332,8 @@ I giocatori possono ammanettare unità alleate プレイヤーがユニットを拘束し、彼らの陣営に変更できます。 자기편에게 케이블타이를 사용할 수 있게합니다 - 玩家可以使用束線帶銬住同陣營隊友 - 玩家可以使用束线带铐住同阵营队友 + 玩家可以使用束線帶銬住同陣營隊友 + 玩家可以使用束线带铐住同阵营队友 Allow surrendering @@ -348,8 +348,8 @@ Permetti Resa 投降を許可 투항 활성화 - 允許投降 - 允许投降 + 允許投降 + 允许投降 Players can surrender after holstering their weapon @@ -364,8 +364,8 @@ I giocatori possono arrendersi dopo aver messo via le proprie armi プレイヤーは武器を収めたあとに投降できるようにします。 비무장한 플레이어가 투항할 수 있게 합니다 - 玩家能在收起自己武器後投降 - 玩家能在收起自己武器后投降 + 玩家能在收起自己武器後投降 + 玩家能在收起自己武器后投降 Require surrendering @@ -379,8 +379,8 @@ Requiert la reddition 投降を必要とする 투항 필요 - 要求目標投降 - 要求目标投降 + 要求目標投降 + 要求目标投降 Require Players to surrender before they can be arrested @@ -394,8 +394,8 @@ Requiert la capitulation des joueurs avant qu'ils ne puissent être arrêtés プレイヤーは拘束される前に、投降する必要があります。 체포하기 전에 플레이어가 투항을 먼저해야만 합니다 - 玩家須先要求目標投降, 才可以進行逮捕 - 玩家须先要求目标投降, 才可以进行逮捕 + 玩家須先要求目標投降, 才可以進行逮捕 + 玩家须先要求目标投降, 才可以进行逮捕 Surrendering only @@ -409,8 +409,8 @@ Reddition seulement 投降中のみ 투항 중에만 - 只能在投降狀態 - 只能在投降状态 + 只能在投降狀態 + 只能在投降状态 Surrendering or No weapon @@ -424,8 +424,8 @@ Capitulation ou desarmé 投降中か非武装時 투항 중 혹은 비무장 - 投降或無武器狀態 - 投降或无武器状态 + 投降或無武器狀態 + 投降或无武器状态 diff --git a/addons/cargo/stringtable.xml b/addons/cargo/stringtable.xml index 6c9e3209d3a..05c8d9bc231 100644 --- a/addons/cargo/stringtable.xml +++ b/addons/cargo/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,8 +13,8 @@ Charger 積み込む 싣기 - 裝載 - 装载 + 裝載 + 装载 Unload @@ -28,8 +28,8 @@ Décharger 下ろす 내리기 - 卸載 - 卸载 + 卸載 + 卸载 Cargo @@ -43,8 +43,8 @@ Cargaison カーゴ 화물 - 貨物 - 货物 + 貨物 + 货物 Cargo Menu @@ -58,8 +58,8 @@ Menu de cargaison カーゴ メニュー 화물 메뉴 - 貨物選單 - 货物选单 + 貨物選單 + 货物选单 Cargo space left: %1 @@ -73,8 +73,8 @@ Espace de cargaison restant : %1 カーゴの空き容量: %1 선적 공간 남음: %1 - 貨物剩餘空間: %1 - 货物剩余空间: %1 + 貨物剩餘空間: %1 + 货物剩余空间: %1 Enable Cargo @@ -88,8 +88,8 @@ Activer la mise en cargaison カーゴを有効化 화물 활성화 - 啟用貨物裝載 - 启用货物装载 + 啟用貨物裝載 + 启用货物装载 Enable the load in cargo module @@ -103,8 +103,8 @@ Active le chargement de cargaison dans un vehicule カーゴ モジュールで積み込みを有効化 화물 모듈에 싣기를 활성화합니다 - 啟用貨物裝載功能 - 启用货物装载功能 + 啟用貨物裝載功能 + 启用货物装载功能 Cargo Settings @@ -118,8 +118,8 @@ Paramètres de cargaison カーゴ設定 화물 설정 - 貨物設定 - 货物设定 + 貨物設定 + 货物设定 Configure the cargo module settings @@ -133,8 +133,8 @@ Configure les paramètres du module de cargaison カーゴ モジュールの設定を構成 화물 모듈의 환경 설정을 바꿉니다 - 配置貨物模塊設定 - 配置货物模块设定 + 配置貨物模塊設定 + 配置货物模块设定 %1<br/>loaded into<br/>%2 @@ -149,8 +149,8 @@ %1<br/>загружен в<br/>%2 %1<br/>は<br/>%2へ積み込まれた %1<br/>는<br/>%2 에 실림 - %1<br/>裝載至<br/>%2 - %1<br/>装载至<br/>%2 + %1<br/>裝載至<br/>%2 + %1<br/>装载至<br/>%2 Unloaded<br/>%1 from<br/>%2 @@ -165,8 +165,8 @@ %1<br/>разгружен из<br/>%2 <br/>%1が<br/>%2から降ろされた %1<br/>는<br/>%2 에서 내려짐 - 從<br/>%2卸載<br/>%1 - 从<br/>%2卸载<br/>%1 + 從<br/>%2卸載<br/>%1 + 从<br/>%2卸载<br/>%1 Loading Cargo @@ -180,8 +180,8 @@ Chargement de la cargaison カーゴへ積み込んでいる 화물 싣기 - 裝載貨物中 - 装载货物中 + 裝載貨物中 + 装载货物中 Unloading Cargo @@ -195,8 +195,8 @@ Déchargement de la cargaison カーゴから降ろしている 화물 내리기 - 卸載貨物中 - 卸载货物中 + 卸載貨物中 + 卸载货物中 %1<br/>could not be loaded @@ -210,8 +210,8 @@ %1<br /> n'a pas pu être chargé %1<br/>は積み込めなかった %1<br/>이 실릴 수가 없습니다 - %1<br/>無法被裝載 - %1<br/>无法被装载 + %1<br/>無法被裝載 + %1<br/>无法被装载 %1<br/>could not be unloaded @@ -225,8 +225,8 @@ %1<br /> n'a pas pu être déchargé %1<br/>は降ろせなかった %1<br/>이 내려질 수가 없습니다 - %1<br/>無法被卸載 - %1<br/>无法被卸载 + %1<br/>無法被卸載 + %1<br/>无法被卸载 Make Object Loadable @@ -240,8 +240,8 @@ Сделать объект загружаемым オブジェクトを積載可能に 물체를 화물화시키기 - 使物件可裝載 - 使物件可装载 + 使物件可裝載 + 使物件可装载 Sets the synced object as loadable by the cargo system. @@ -255,8 +255,8 @@ Делает синхронизированный объект загружаемым для модуля перевозки грузов. オブジェクトを同期させると、カーゴ システムによる積載が可能になります。 물체를 화물 시스템과 동기화시켜 실을 수 있게 합니다 - 使用同步線來使該物件可被裝載. - 使用同步线来使该物件可被装载. + 使用同步線來使該物件可被裝載. + 使用同步线来使该物件可被装载. Object's Size @@ -270,36 +270,36 @@ Размер объекта オブジェクトの大きさ 물체 크기 - 物件的大小 - 物件的大小 + 物件的大小 + 物件的大小 Cargo Space Spazio Cargo カーゴ スペース - 貨物空間 - 货物空间 + 貨物空間 + 货物空间 The cargo space available in this vehicle/container Lo spazio disponibile in questo veicolo/container この車両/コンテナでカーゴ スペースを使えるようにします - 設定此載具/集裝箱可裝載多少貨物 - 设定此载具/集装箱可装载多少货物 + 設定此載具/集裝箱可裝載多少貨物 + 设定此载具/集装箱可装载多少货物 Cargo Size Dimensioni Cargo カーゴ サイズ - 貨物的大小 - 货物的大小 + 貨物的大小 + 货物的大小 The cargo space required to hold this object (-1 for unloadable) Lo spazio del cargo necessita di mantenere questo oggetto (-1 per scaricabile) このオブジェクトを積載するのに必要なカーゴ スペース (-1 で積載不可) - 此貨物會佔掉多少空間(設定-1的話此貨物就不能被裝載) - 此货物会占掉多少空间(设定-1的话此货物就不能被装载) + 此貨物會佔掉多少空間(設定-1的話此貨物就不能被裝載) + 此货物会占掉多少空间(设定-1的话此货物就不能被装载) Airdrop @@ -309,8 +309,8 @@ 공중 투하 Largage aérien Lancio Aereo - 空投 - 空投 + 空投 + 空投 Unlevel Flight @@ -320,24 +320,24 @@ 기체가 수평이 아닙니다 Rétablir l'assiette Volo non Livellato - 此架飛機並無保持水平飛行 - 此架飞机并无保持水平飞行 + 此架飛機並無保持水平飛行 + 此架飞机并无保持水平飞行 Paradrop Time Coffecient 空中投下までの時間係数 Coefficente Tempo Lancio Paracadute Coefficient Temps de largage de cargaison - 空投時間係數 - 空投时间系数 + 空投時間係數 + 空投时间系数 Modifier for how long it takes to paradrop a cargo item. カーゴ アイテムを空中投下するまでの時間を変更します。 Modificato per quanto tempo ci impiega a paracadutare un oggetto cargo. Modifier le temps qu'il faut pour larguer la cargaison. - 設定空投所需消耗的時間. - 设定空投所需消耗的时间. + 設定空投所需消耗的時間. + 设定空投所需消耗的时间. diff --git a/addons/chemlights/stringtable.xml b/addons/chemlights/stringtable.xml index e42b949a4f5..cd3ee7c8943 100644 --- a/addons/chemlights/stringtable.xml +++ b/addons/chemlights/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -9,8 +9,8 @@ 켐라이트 Cyalumes Luce chimica - 螢光棒 - 萤光棒 + 螢光棒 + 萤光棒 Prepare %1 @@ -20,8 +20,8 @@ %1 준비 Prépare %1 Prepara %1 - 使用%1 - 使用%1 + 使用%1 + 使用%1 %1<br/>Prepared @@ -31,8 +31,8 @@ %1<br/>준비됨 %1<br/>prêt %1 <br/> Preparata - %1<br/>已使用 - %1<br/>已使用 + %1<br/>已使用 + %1<br/>已使用 No inventory space @@ -47,8 +47,8 @@ В инвентаре нет места インベントリに空きがありません 소지품 공간이 없음 - 已無存放空間 - 已无存放空间 + 已無存放空間 + 已无存放空间 [ACE] Chemlights @@ -58,8 +58,8 @@ [ACE] 켐라이트 [ACE] Cyalume [ACE] Luci chimiche - [ACE] 螢光棒 - [ACE] 萤光棒 + [ACE] 螢光棒 + [ACE] 萤光棒 Chemlight (Orange) @@ -69,8 +69,8 @@ 켐라이트 (주황) Cyalume (orange) Luce chimica (Arancione) - 螢光棒 (橘色) - 萤光棒 (橘色) + 螢光棒 (橘色) + 萤光棒 (橘色) Orange Light @@ -80,8 +80,8 @@ 주황색 Lum. orange Luce Arancione - 橘色光 - 橘色光 + 橘色光 + 橘色光 Type: Light - Orange<br />Rounds: 1<br />Used in: Hand @@ -91,8 +91,8 @@ 종류:밝은 오렌지<br />수량: 1<br />사용처: 손 Type: Lumière - orange<br />Nbre: 1<br /> À main Tipo: Luce - Arancione<br/>Rimanenti: 1<br/>Usata in: Mano - 類型: 光 - 橘色<br />發數: 1<br />使用於: 手 - 类型: 光 - 橘色<br />发数: 1<br />使用于: 手 + 類型: 光 - 橘色<br />發數: 1<br />使用於: 手 + 类型: 光 - 橘色<br />发数: 1<br />使用于: 手 Chemlight (White) @@ -102,8 +102,8 @@ 켐라이트 (하양) Cyalume (blanc) Luce chimica (Bianca) - 螢光棒 (白色) - 萤光棒 (白色) + 螢光棒 (白色) + 萤光棒 (白色) White Light @@ -113,8 +113,8 @@ 하얀색 Lum. blanche Luce Bianca - 白色光 - 白色光 + 白色光 + 白色光 Type: Light - White<br />Rounds: 1<br />Used in: Hand @@ -124,8 +124,8 @@ 종류:하얀색<br />수량: 1<br />사용처: 손 Type: Lumière - blanche<br />Nbre: 1<br /> À main Tipo: Luce - Bianca<br/>Rimanenti: 1<br/>Usata in: Mano - 類型: 光 - 白色<br />發數: 1<br />使用於: 手 - 类型: 光 - 白色<br />发数: 1<br />使用于: 手 + 類型: 光 - 白色<br />發數: 1<br />使用於: 手 + 类型: 光 - 白色<br />发数: 1<br />使用于: 手 Chemlight (Hi Red) @@ -135,8 +135,8 @@ 켐라이트 (밝은 빨간색) Cyalume (Hi rouge) Luce chimica (Hi Rossa) - 螢光棒 (超亮紅色) - 萤光棒 (超亮红色) + 螢光棒 (超亮紅色) + 萤光棒 (超亮红色) Red Hi Light @@ -146,8 +146,8 @@ 밝은 빨간색 Lum. rouge haute intensité Luce Hi Rossa - 超亮紅色光 - 超亮红色光 + 超亮紅色光 + 超亮红色光 Type: Light - Red Hi (5 minute)<br />Rounds: 1<br />Used in: Hand @@ -157,8 +157,8 @@ 종류: 밝은 빨간색 (5분)<br />수량: 1<br />사용처: 손 Type: Lumière - rouge Hi (5 minutes)<br />Nbre: 1<br /> À main Tipo: Luce - Rossa Hi (5 minuti)<br />Rimanenti: 1<br/>Usata in: Mano - 類型: 光 - 超亮紅色 (5分鐘)<br />發數: 1<br />使用於: 手 - 类型: 光 - 超亮红色 (5分钟)<br />发数: 1<br />使用于: 手 + 類型: 光 - 超亮紅色 (5分鐘)<br />發數: 1<br />使用於: 手 + 类型: 光 - 超亮红色 (5分钟)<br />发数: 1<br />使用于: 手 Chemlight (Hi Yellow) @@ -168,8 +168,8 @@ 켐라이트 (밝은 노란색) Cyalume (Hi jaune) Luce chimica (Hi Gialla) - 螢光棒 (超亮黃色) - 萤光棒 (超亮黄色) + 螢光棒 (超亮黃色) + 萤光棒 (超亮黄色) Yellow Hi Light @@ -179,8 +179,8 @@ 밝은 노란색 Lum. jaune haute intensité Luce Hi Gialla - 超亮黃色光 - 超亮黄色光 + 超亮黃色光 + 超亮黄色光 Type: Light - Yellow Hi (5 minute)<br />Rounds: 1<br />Used in: Hand @@ -190,8 +190,8 @@ 종류:밝은 노란색 (5분)<br />수량: 1<br />사용처: Hand Type: Lumière - Jaune Hi (5 minutes)Nbre: 1<br /> À main Tipo: Luce - Gialla Hi (5 minuti)<br />Rimanenti: 1<br/>Usata in: Mano - 類型: 光 - 超亮黃色 (5分鐘)<br />發數: 1<br />使用於: 手 - 类型: 光 - 超亮黄色 (5分钟)<br />发数: 1<br />使用于: 手 + 類型: 光 - 超亮黃色 (5分鐘)<br />發數: 1<br />使用於: 手 + 类型: 光 - 超亮黄色 (5分钟)<br />发数: 1<br />使用于: 手 Chemlight (Hi Orange) @@ -201,8 +201,8 @@ 켐라이트 (밝은 주황색) Cyalume (Hi orange) Luce chimica (Hi Arancione) - 螢光棒 (超亮橘色) - 萤光棒 (超亮橘色) + 螢光棒 (超亮橘色) + 萤光棒 (超亮橘色) Orange Hi Light @@ -212,8 +212,8 @@ 밝은 주황색 Lum. orange haute intensité Luce Hi Arancione - 超亮橘色光 - 超亮橘色光 + 超亮橘色光 + 超亮橘色光 Type: Light - Orange Hi (5 minute)<br />Rounds: 1<br />Used in: Hand @@ -223,8 +223,8 @@ 종류: 밝은 주황색 (5분)<br />수량: 1<br />사용처: 손 Type: Lumière - orange Hi (5 minutes)<br />Nbre: 1<br /> À main Tipo: Luce - Arancione Hi (5 minuti)<br />Rimanenti: 1<br/>Usata in: Mano - 類型: 光 - 超亮橘色 (5分鐘)<br />發數: 1<br />使用於: 手 - 类型: 光 - 超亮橘色 (5分钟)<br />发数: 1<br />使用于: 手 + 類型: 光 - 超亮橘色 (5分鐘)<br />發數: 1<br />使用於: 手 + 类型: 光 - 超亮橘色 (5分钟)<br />发数: 1<br />使用于: 手 Chemlight (Hi White) @@ -234,8 +234,8 @@ 켐라이트 (밝은 하얀색) Cyalume (Hi blanc) Luce chimica (Hi Bianca) - 螢光棒 (超亮白色) - 萤光棒 (超亮白色) + 螢光棒 (超亮白色) + 萤光棒 (超亮白色) White Hi Light @@ -245,8 +245,8 @@ 밝은 하얀색 Lum. blanche haute intensité Luce Hi Bianca - 超亮白色光 - 超亮白色光 + 超亮白色光 + 超亮白色光 Type: Light - White Hi (5 minute)<br />Rounds: 1<br />Used in: Hand @@ -256,8 +256,8 @@ 종류: 밝은 하얀색 (5분)<br />수량: 1<br />사용처: 손 Type: Lumière - blanche Hi (5 minutes)<br />Nbre: 1<br /> À main Tipo: Luce - Bianca Hi (5 minuti)<br />Rimanenti: 1<br/>Usata in: Mano - 類型: 光 - 超亮白色 (5分鐘)<br />發數: 1<br />使用於: 手 - 类型: 光 - 超亮白色 (5分钟)<br />发数: 1<br />使用于: 手 + 類型: 光 - 超亮白色 (5分鐘)<br />發數: 1<br />使用於: 手 + 类型: 光 - 超亮白色 (5分钟)<br />发数: 1<br />使用于: 手 Chemlight (IR) @@ -267,8 +267,8 @@ 켐라이트 (적외선) Cyalume (IR) Luce chimica (IR) - 螢光棒 (紅外線) - 萤光棒 (红外线) + 螢光棒 (紅外線) + 萤光棒 (红外线) IR Light @@ -278,8 +278,8 @@ 적외선 켐라이트 Lumière IR Luce IR - 紅外線光 - 红外线光 + 紅外線光 + 红外线光 Type: Light - Infrared<br />Rounds: 1<br />Used in: Hand @@ -289,8 +289,8 @@ 종류: 적외선<br />수량: 1<br />사용처: 손 Type: Lumière - infrarouge<br />Nbre: 1<br /> À main Tipo: Luce - Infrarossi<br />Usata in: Mano - 類型: 光 - 紅外線<br />發數: 1<br />使用於: 手 - 类型: 光 - 红外线<br />发数: 1<br />使用于: 手 + 類型: 光 - 紅外線<br />發數: 1<br />使用於: 手 + 类型: 光 - 红外线<br />发数: 1<br />使用于: 手 Chemlight Shield (Empty) @@ -300,8 +300,8 @@ 켐라이트 쉴드 (비어있음) Étui cyalume (vide) Scudo Luce chimica (Vuoto) - 螢光棒保護殼 (空) - 萤光棒保护壳 (空) + 螢光棒保護殼 (空) + 萤光棒保护壳 (空) Shield for chemlights. Combine with chemlight to prepare reading light. @@ -311,8 +311,8 @@ 켐라이트를 위한 가림막입니다. 켐라이트와 같이 사용하여 읽을 때 씁니다. Étui pour cyalume. Combiné avec un cyalume pour obtennir un lampe de lecture. Scudo per luci chimiche. Combina con una luce chimica per una luce da lettura. - 螢光棒的保護殼. 與螢光棒結合後可充當閱讀燈. - 萤光棒的保护壳. 与萤光棒结合后可充当阅读灯. + 螢光棒的保護殼. 與螢光棒結合後可充當閱讀燈. + 萤光棒的保护壳. 与萤光棒结合后可充当阅读灯. Chemlight Shield (Green) @@ -322,8 +322,8 @@ 켐라이트 쉴드 (초록) Étui cyalume (vert) Scudo Luce Chimica (Verde) - 螢光棒保護殼 (綠色) - 萤光棒保护壳 (绿色) + 螢光棒保護殼 (綠色) + 萤光棒保护壳 (绿色) Green reading light. @@ -333,8 +333,8 @@ 초록빛 조명 Lampe d'orientation verte. Luce da lettura Verde. - 綠色閱讀燈. - 绿色阅读灯. + 綠色閱讀燈. + 绿色阅读灯. Chemlight Shield (Red) @@ -344,8 +344,8 @@ 켐라이트 쉴드 (빨강) Étui cyalume (rouge) Scudo Luce Chimica (Rossa) - 螢光棒保護殼 (紅色) - 萤光棒保护壳 (红色) + 螢光棒保護殼 (紅色) + 萤光棒保护壳 (红色) Red reading light. @@ -355,8 +355,8 @@ 빨간색 조명 Lampe d'orientation rouge. Luce da lettura Rossa. - 紅色閱讀燈. - 红色阅读灯. + 紅色閱讀燈. + 红色阅读灯. Chemlight Shield (Blue) @@ -366,8 +366,8 @@ 켐라이트 쉴드 (파랑) Étui cyalume (bleu) Scudo Luce Chimica (Blu) - 螢光棒保護殼 (藍色) - 萤光棒保护壳 (蓝色) + 螢光棒保護殼 (藍色) + 萤光棒保护壳 (蓝色) Blue reading light. @@ -377,8 +377,8 @@ 파란색 조명 Lampe d'orientation bleue. Luce da lettura Blu. - 藍色閱讀燈. - 蓝色阅读灯. + 藍色閱讀燈. + 蓝色阅读灯. Chemlight Shield (Yellow) @@ -388,8 +388,8 @@ 켐라이트 쉴드 (노랑) Étui cyalume (jaune) Scudo Luce Chimica (Gialla) - 螢光棒保護殼 (黃色) - 萤光棒保护壳 (黄色) + 螢光棒保護殼 (黃色) + 萤光棒保护壳 (黄色) Yellow reading light. @@ -399,8 +399,8 @@ 노란색 조명 Lampe d'orientation jaune. Luce da lettura Gialla. - 黃色閱讀燈. - 黄色阅读灯. + 黃色閱讀燈. + 黄色阅读灯. Chemlight Shield (Orange) @@ -410,8 +410,8 @@ 켐라이트 쉴드 (주황) Étui cyalume (orange) Scudo Luce Chimica (Arancione) - 螢光棒保護殼 (橘色) - 萤光棒保护壳 (橘色) + 螢光棒保護殼 (橘色) + 萤光棒保护壳 (橘色) Orange reading light. @@ -421,8 +421,8 @@ 주황색 조명 Lampe d'orientation orange. Luce da lettura Arancione. - 橘色閱讀燈. - 橘色阅读灯. + 橘色閱讀燈. + 橘色阅读灯. Chemlight Shield (White) @@ -432,8 +432,8 @@ 켐라이트 쉴드 (하양) Étui cyalume (blanc) Scudo Luce Chimica (Bianca) - 螢光棒保護殼 (白色) - 萤光棒保护壳 (白色) + 螢光棒保護殼 (白色) + 萤光棒保护壳 (白色) White reading light. @@ -443,8 +443,8 @@ 주황색 조명 Lampe d'orientation blanche. Luce da lettura Bianca. - 白色閱讀燈. - 白色阅读灯. + 白色閱讀燈. + 白色阅读灯. diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index a9cac3d4c6d..94c723567f8 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ ACE-Team ACE-Team ACE-Team - ACE-製作團隊 - ACE-制作团队 + ACE-製作團隊 + ACE-制作团队 Save @@ -30,8 +30,8 @@ Salva 保存 저장 - 儲存 - 储存 + 儲存 + 储存 Cancel @@ -46,8 +46,8 @@ Annulla 中止 취소 - 取消 - 取消 + 取消 + 取消 ACE Options @@ -62,8 +62,8 @@ Opzioni ACE ACE オプション ACE 옵션 - ACE設定選項 - ACE设定选项 + ACE設定選項 + ACE设定选项 @@ -79,8 +79,8 @@ N - - + + NNE @@ -95,8 +95,8 @@ NNE 北北東 북북동 - 北北東 - 北北东 + 北北東 + 北北东 NE @@ -111,8 +111,8 @@ NE 北東 북동 - 東北 - 东北 + 東北 + 东北 ENE @@ -127,8 +127,8 @@ ENE 東北東 동북동 - 東北東 - 东北东 + 東北東 + 东北东 E @@ -143,8 +143,8 @@ E - - + + ESE @@ -159,8 +159,8 @@ ESE 東南東 동남동 - 東南東 - 东南东 + 東南東 + 东南东 SE @@ -175,8 +175,8 @@ SE 南東 남동 - 東南 - 东南 + 東南 + 东南 SSE @@ -191,8 +191,8 @@ SSE 南南東 남남동 - 南南東 - 南南东 + 南南東 + 南南东 S @@ -207,8 +207,8 @@ S - - + + SSW @@ -223,8 +223,8 @@ SSO 南南西 남남서 - 南南西 - 南南西 + 南南西 + 南南西 SW @@ -239,8 +239,8 @@ SO 南西 남서 - 西南 - 西南 + 西南 + 西南 WSW @@ -255,8 +255,8 @@ OSO 西南西 서남서 - 西南西 - 西南西 + 西南西 + 西南西 W @@ -271,8 +271,8 @@ O 西 - 西 - 西 + 西 + 西 WNW @@ -287,8 +287,8 @@ ONO 北北西 서북서 - 西北西 - 西北西 + 西北西 + 西北西 NW @@ -303,8 +303,8 @@ NO 北西 북서 - 西北 - 西北 + 西北 + 西北 NNW @@ -319,8 +319,8 @@ NNO 北北西 북북서 - 北北西 - 北北西 + 北北西 + 北北西 Action cancelled. @@ -335,8 +335,8 @@ Azione cancellata. 動作を中止した。 행동 취소됨. - 動作已被取消 - 动作已被取消 + 動作已被取消 + 动作已被取消 [ACE] Miscellaneous Items @@ -351,8 +351,8 @@ [ACE] Oggetti vari [ACE] その他のアイテム [ACE] 기타 물품. - [ACE] 雜項 - [ACE] 杂项 + [ACE] 雜項 + [ACE] 杂项 Disable Command Menu @@ -367,8 +367,8 @@ Desabilitar menu de comando 指揮メニューを無効化 지휘 메뉴 종료 - 關閉命令選單 - 关闭命令选单 + 關閉命令選單 + 关闭命令选单 Unknown @@ -383,8 +383,8 @@ Desconhecido 不明 알 수 없음 - 未知的 - 未知的 + 未知的 + 未知的 No Voice @@ -399,8 +399,8 @@ Sem voz 音声なし 무음 - 沒聲音 - 没声音 + 沒聲音 + 没声音 Accept Requests @@ -415,8 +415,8 @@ Accetta la richiesta 要求を受け入れ 요청 수락 - 接受請求 - 接受请求 + 接受請求 + 接受请求 Decline Requests @@ -431,8 +431,8 @@ Rifiuta la richiesta 要求を拒否 요청 거부 - 拒絕請求 - 拒绝请求 + 拒絕請求 + 拒绝请求 Accept Requests send by other players. These can be requests to use / share equipment, perform certain actions. @@ -447,8 +447,8 @@ Aceitar pedidos enviados por outros jogadores. Podem ser pedidos para usar/ compartilhar equipamento, realizar certas ações. 他プレイヤからの要求を許可します。他プレイヤは装備を共有し、使うなど特定の動作を行えます。 다른 플레이어가 보내온 요청을 수락합니다. 이것은 장비 사용 / 공유 요청, 특정 작업 수행 등이 될 수 있습니다. - 接受由其他玩家送出的請求. 包含使用/共享裝備與執行特定動作 - 接受由其他玩家送出的请求. 包含使用/共享装备与执行特定动作 + 接受由其他玩家送出的請求. 包含使用/共享裝備與執行特定動作 + 接受由其他玩家送出的请求. 包含使用/共享装备与执行特定动作 Decline Requests send by other players. These can be requests to use / share equipment, perform certain actions. @@ -463,8 +463,8 @@ Rejeita pedidos enviados por outros jogadores. Podem ser pedidos para usar/ compartilhar equipamento, realizar certas ações. 他プレイヤからの要求を拒否します。他プレイヤは装備を共有し、使うなど特定の動作をできません。 다른 플레이어가 보내온 요청을 거부합니다. 이것은 장비 사용 / 공유 요청, 특정 작업 수행 등이 될 수 있습니다. - 拒絕由其他玩家送出的請求. 包含使用/共享裝備與執行特定動作 - 拒绝由其他玩家送出的请求. 包含使用/共享装备与执行特定动作 + 拒絕由其他玩家送出的請求. 包含使用/共享裝備與執行特定動作 + 拒绝由其他玩家送出的请求. 包含使用/共享装备与执行特定动作 Feedback icons @@ -479,8 +479,8 @@ Ícones de Feedback フィードバック アイコン 피드백 아이콘 - 回饋圖標 - 回馈图标 + 回饋圖標 + 回馈图标 Select the position of or disable the feedback icons on your screen. These icons will show to provide extra feedback on your character status and actions performed. @@ -495,8 +495,8 @@ Selecione a posição ou disabilite a posição dos ícones de feedback na sua tela. Esses ícones irão aparecer para mostrar feedback extra do status do seu personagem e ações realizadas. 画面上に表示するフィードバック アイコンの位置や無効化を選択できます。このアイコンは自キャラクター状態や動作の状況をフィードバックするために表示されています。 피드백 아이콘의 위치를 설정하거나 비활성화합니다. 피드백 아이콘은 캐릭터의 상세정보와 행동을 보여줍니다. - 選擇位置或取消回饋圖標顯示在螢幕上. 這些圖標將顯示出你角色額外的狀態與行動等資訊. - 选择位置或取消回馈图标显示在荧幕上. 这些图标将显示出你角色额外的状态与行动等资讯. + 選擇位置或取消回饋圖標顯示在螢幕上. 這些圖標將顯示出你角色額外的狀態與行動等資訊. + 选择位置或取消回馈图标显示在荧幕上. 这些图标将显示出你角色额外的状态与行动等资讯. Progress bar location @@ -511,8 +511,8 @@ Local da barra de progresso プログレス バーの位置 진행 막대의 위치 - 進度欄位置 - 进度栏位置 + 進度欄位置 + 进度栏位置 Set the desired location of the progress bar on your screen. @@ -527,8 +527,8 @@ Define o local desejado da barra de progresso na sua tela. 画面上に表示されるプログレス バーの位置を設定できます。 진행 막대를 원하는 곳에 배치합니다. - 設定進度欄在畫面中的位置 - 设定进度栏在画面中的位置 + 設定進度欄在畫面中的位置 + 设定进度栏在画面中的位置 Hint Background color @@ -543,8 +543,8 @@ Cor do fundo da hint ヒントの背景色 힌트 배경색 - 提示的背景顏色 - 提示的背景颜色 + 提示的背景顏色 + 提示的背景颜色 The color of the background from the ACE hints. @@ -559,8 +559,8 @@ A cor de fundo das hints do ACE. ACE によるヒントの背景色を指定します。 ACE힌트의 배경색을 정합니다. - 設定ACE提示的背景顏色. - 设定ACE提示的背景颜色. + 設定ACE提示的背景顏色. + 设定ACE提示的背景颜色. Hint text font color @@ -575,8 +575,8 @@ Cor do do texto da hint ヒント文章の色 힌트 글씨색 - 提示文字的顏色 - 提示文字的颜色 + 提示文字的顏色 + 提示文字的颜色 The color of the text font from the ACE hints. This color is the default color for all text displayed through the ACE Hint system, if the hint text has no other color specified. @@ -591,8 +591,8 @@ A cor do texto das hints do ACE. Essa cor é a cor default para todos os texos exibidos pelo sistema de hints do ACE , caso o texto da hint não tem outra cor especificada. ACE によるヒントの文章へ、色を設定できます。この色は ACE ヒント システムを介して表示される全文章の色と標準でなっており、特定の色を設定していても、標準色になります。 ACE 힌트에 쓰이는 글씨 색입니다. 힌트 글씨의 색이 정해지지 않을경우 모든 힌트의 색은 기본으로 설정됩니다. - 設定ACE提示文字的顏色. 若提示字體並無指定其他顏色, 將會自動選用ACE系統的預設顏色 - 设定ACE提示文字的颜色. 若提示字体并无指定其他颜色, 将会自动选用ACE系统的预设颜色 + 設定ACE提示文字的顏色. 若提示字體並無指定其他顏色, 將會自動選用ACE系統的預設顏色 + 设定ACE提示文字的颜色. 若提示字体并无指定其他颜色, 将会自动选用ACE系统的预设颜色 Banana @@ -607,8 +607,8 @@ Banana 甘蕉 바나나 - 香蕉 - 香蕉 + 香蕉 + 香蕉 A banana is an edible fruit, botanically a berry, produced by several kinds of large herbaceous flowering plants in the genus Musa. @@ -623,8 +623,8 @@ A banana é uma fruta comestível, botanicamente uma baga, produzida por vários tipos de plantas herbáceas grandes do genero Musa. 甘蕉は食べられる果物でバショウ科バショウ属のうち、果実を食用とする品種群の総称。また、その果実のこと。いくつかの原種から育種された多年草。種によっては熟すまでは毒を持つものもある。 바나나는 식용 과일로써 식물학적으로 열매류이며 여러 종류의 개화가능한 초본의 파초과로 부터 생산됩니다. - 香蕉(學名: Musa × paradisiaca), 為芭蕉科芭蕉屬小果野蕉及野蕉的人工栽培雜交種, 為多年生草本植物. 果實長有棱; 果皮黃色, 果肉白色, 味道香甜. 主要生長在熱帶、亞熱帶地區. 原產於亞洲東南部熱帶、亞熱帶地區. - 香蕉(学名: Musa × paradisiaca), 为芭蕉科芭蕉属小果野蕉及野蕉的人工栽培杂交种, 为多年生草本植物. 果实长有棱; 果皮黄色, 果肉白色, 味道香甜. 主要生长在热带、亚热带地区. 原产于亚洲东南部热带、亚热带地区. + 香蕉(學名: Musa × paradisiaca), 為芭蕉科芭蕉屬小果野蕉及野蕉的人工栽培雜交種, 為多年生草本植物. 果實長有棱; 果皮黃色, 果肉白色, 味道香甜. 主要生長在熱帶、亞熱帶地區. 原產於亞洲東南部熱帶、亞熱帶地區. + 香蕉(学名: Musa × paradisiaca), 为芭蕉科芭蕉属小果野蕉及野蕉的人工栽培杂交种, 为多年生草本植物. 果实长有棱; 果皮黄色, 果肉白色, 味道香甜. 主要生长在热带、亚热带地区. 原产于亚洲东南部热带、亚热带地区. Check PBOs @@ -639,8 +639,8 @@ Controlla PBO PBO を検査 PBO 검사 - 檢查PBO檔 - 检查PBO档 + 檢查PBO檔 + 检查PBO档 Check addon integrity with server and do selected action if an addon is missing. @@ -654,8 +654,8 @@ Controlla l'integrità degli addon con il server ed esegui l'azione selezionata se un addon è mancante サーバがアドオンの整合性を検査し、もし不備があれば実行する動作を選択できます。 서버 에드온의 무결성을 검사하고 사라진 에드온이 있을경우 행동을 선택합니다. - 檢查客戶端與伺服器端的模組清單是否一致且完整, 並提供訊息表示遺失的模組. - 检查客户端与伺服器端的模组清单是否一致且完整, 并提供讯息表示遗失的模组. + 檢查客戶端與伺服器端的模組清單是否一致且完整, 並提供訊息表示遺失的模組. + 检查客户端与伺服器端的模组清单是否一致且完整, 并提供讯息表示遗失的模组. Action @@ -670,8 +670,8 @@ Azione 動作 작동 - 動作 - 动作 + 動作 + 动作 What to do with people who do not have the right PBOs? @@ -686,8 +686,8 @@ Cosa fare con giocatori che non hanno i PBO corretti? プレイヤーが正しい PBO を持っていない場合は? 올바르지 않는 PBO를 가진 사람을 어떻게 할까요? - 若玩家沒有正確的PBO檔時, 將採取何種動作? - 若玩家没有正确的PBO档时, 将采取何种动作? + 若玩家沒有正確的PBO檔時, 將採取何種動作? + 若玩家没有正确的PBO档时, 将采取何种动作? Warn once @@ -702,8 +702,8 @@ Avverti una volta 一度の警告 경고 한 번 - 警告 (一次) - 警告 (一次) + 警告 (一次) + 警告 (一次) Warn (permanent) @@ -718,8 +718,8 @@ Avverti (permanente) 警告(永久的) 경고 (영구적) - 警告 (持續) - 警告 (持续) + 警告 (持續) + 警告 (持续) Kick @@ -734,8 +734,8 @@ Kick 排除 추방 - 踢除 - 踢除 + 踢除 + 踢除 Check all addons @@ -750,8 +750,8 @@ Controlla tutti gli addon 全アドオンを検査 모든 에드온 검사 - 檢查所有模組 - 检查所有模组 + 檢查所有模組 + 检查所有模组 Check all addons instead of only those of ACE? @@ -766,8 +766,8 @@ Controlla tutti gli addon invece dei soli addon ACE? ACE MOD の代わりに全アドオンを検査しますか? ACE를 제외한 모든 모드를 검사할까요? - 檢查包含ACE之外的其他模組? - 检查包含ACE之外的其他模组? + 檢查包含ACE之外的其他模組? + 检查包含ACE之外的其他模组? Whitelist @@ -782,8 +782,8 @@ Lista Bianca 許可制 화이트리스트 - 白名單 - 白名单 + 白名單 + 白名单 What addons are allowed regardless? @@ -798,8 +798,8 @@ Quali addon sono permessi in ogni caso? どのようなアドオンを許可しますか? 허가되는 에드온은 어느것입니까? - 哪些模組是可被允許/忽略的? - 哪些模组是可被允许/忽略的? + 哪些模組是可被允許/忽略的? + 哪些模组是可被允许/忽略的? LSD Vehicles @@ -814,8 +814,8 @@ Veicoli LSD LSD 車両 LSD 차량 - 迷幻載具 - 迷幻载具 + 迷幻載具 + 迷幻载具 Adds LSD effect to synchronized vehicle @@ -830,8 +830,8 @@ Aggiunge effetti LSD ai veicoli sincronizzati 同期されたオブジェクトに LSD の効果を追加します 동기화된 차량에 LSD효과를 추가합니다. - 使被同步的載具產生瘋狂的迷幻效果. (後果自負) - 使被同步的载具产生疯狂的迷幻效果. (后果自负) + 使被同步的載具產生瘋狂的迷幻效果. (後果自負) + 使被同步的载具产生疯狂的迷幻效果. (后果自负) Toggle Handheld Device @@ -846,8 +846,8 @@ Apri dispositivo palmare デバイスを常に表示 휴대장치 토글 - 切換手持裝備 - 切换手持装备 + 切換手持裝備 + 切换手持装备 Close Handheld Device @@ -862,8 +862,8 @@ Chiudi dispositivo palmare デバイスを閉じる 휴대장치 닫기 - 關閉手持裝備 - 关闭手持装备 + 關閉手持裝備 + 关闭手持装备 Cycle Handheld Devices @@ -878,8 +878,8 @@ Cicla tra dispositivi palmari 表示するデバイスを変える 휴대장치 순환 - 循環切換手持裝備 - 循环切换手持装备 + 循環切換手持裝備 + 循环切换手持装备 Disabled @@ -893,8 +893,8 @@ Desactivado 無効化 비활성화 - 停用 - 停用 + 停用 + 停用 Enabled @@ -908,8 +908,8 @@ Activado 有効化 활성화 - 啟用 - 启用 + 啟用 + 启用 Yes @@ -924,8 +924,8 @@ Si はい - - + + No @@ -940,8 +940,8 @@ No いいえ 아니오 - - + + Vehicles only @@ -955,8 +955,8 @@ Vehicules seulement 車両のみ 차량 전용 - 只有載具 - 只有载具 + 只有載具 + 只有载具 Do Not Force @@ -970,8 +970,8 @@ Ne pas forcer 強制しない 강제하지 말것 - 不要強行 - 不要强行 + 不要強行 + 不要强行 ACE3 Equipment @@ -985,8 +985,8 @@ ACE3 Equipement ACE3 装備 ACE3 장비 - ACE3 裝備按鍵 - ACE3 装备按键 + ACE3 裝備按鍵 + ACE3 装备按键 ACE3 Common @@ -1000,8 +1000,8 @@ ACE3 Commun ACE3 全般 ACE3 일반 - ACE3 通用按鍵 - ACE3 通用按键 + ACE3 通用按鍵 + ACE3 通用按键 ACE3 Weapons @@ -1015,8 +1015,8 @@ ACE3 Armes ACE3 武器 ACE3 무기 - ACE3 武器按鍵 - ACE3 武器按键 + ACE3 武器按鍵 + ACE3 武器按键 ACE3 Movement @@ -1030,8 +1030,8 @@ ACE3 Mouvement ACE3 移動 ACE3 움직임 - ACE3 動作按鍵 - ACE3 动作按键 + ACE3 動作按鍵 + ACE3 动作按键 ACE3 Scope Adjustment @@ -1045,8 +1045,8 @@ ACE3 Ajustement de la lunette ACE3 スコープ調節 ACE3 조준경 조정 - ACE3 瞄準鏡調節按鍵 - ACE3 瞄准镜调节按键 + ACE3 瞄準鏡調節按鍵 + ACE3 瞄准镜调节按键 ACE3 Vehicles @@ -1060,8 +1060,8 @@ ACE3 Vehicules ACE3 車両 ACE3 차량 - ACE3 載具按鍵 - ACE3 载具按键 + ACE3 載具按鍵 + ACE3 载具按键 No Room to unload @@ -1074,8 +1074,8 @@ Sem espaço para descarregar Нет места для выгрузки 降ろすための空間がありません - 沒有空間可卸載 - 没有空间可卸载 + 沒有空間可卸載 + 没有空间可卸载 Toggle @@ -1090,8 +1090,8 @@ alternar トグル 토글 - 切換 - 切换 + 切換 + 切换 diff --git a/addons/concertina_wire/stringtable.xml b/addons/concertina_wire/stringtable.xml index 728fd9746db..6c510c56b75 100644 --- a/addons/concertina_wire/stringtable.xml +++ b/addons/concertina_wire/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Arame farpado 鉄条網 철조망 - 鐵絲網 - 铁丝网 + 鐵絲網 + 铁丝网 Concertina Wire Coil @@ -30,8 +30,8 @@ Bobina de arame farpado 鉄条網コイル 윤형 철조망 - 鐵絲網捲 - 铁丝网卷 + 鐵絲網捲 + 铁丝网卷 Dismount Concertina Wire @@ -46,8 +46,8 @@ Desmontar arame farpado 鉄条網をほどく 철조망 해체 - 卸下鐵絲網 - 卸下铁丝网 + 卸下鐵絲網 + 卸下铁丝网 Deploy Concertina Wire @@ -62,8 +62,8 @@ Colocar arame farpado 鉄条網を置く 철조망 배치 - 佈署鐵絲網 - 布署铁丝网 + 佈署鐵絲網 + 布署铁丝网 diff --git a/addons/cookoff/stringtable.xml b/addons/cookoff/stringtable.xml index c27410ef1ba..c9c04f86ddc 100644 --- a/addons/cookoff/stringtable.xml +++ b/addons/cookoff/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -11,8 +11,8 @@ Aktywuj efekty samozapłonu amunicji Active le cook-off Abilita Esplosione - 開啟殉爆效果 - 开启殉爆效果 + 開啟殉爆效果 + 开启殉爆效果 Enables cook off and related vehicle destruction effects. @@ -24,8 +24,8 @@ Aktywuje efekt samozapłonu amunicji na zniszczonych pojazdach. Active le cook-off (autocombustion des munitions) et les effets de destruction liés. Abilita l'esplosione e i relativi effetti di distruzione del veicolo. - 開啟此功能後, 將使有關載具在損毀時有殉爆的效果. - 开启此功能后, 将使有关载具在损毁时有殉爆的效果. + 開啟此功能後, 將使有關載具在損毀時有殉爆的效果. + 开启此功能后, 将使有关载具在损毁时有殉爆的效果. Wreck (Turret) @@ -40,8 +40,8 @@ Ruínas (torre) 잔해(포탑) 残骸(タレット) - 殘骸 (砲塔) - 残骸 (炮塔) + 殘骸 (砲塔) + 残骸 (炮塔) Enable ammo box cook off @@ -51,8 +51,8 @@ Aktywuj samozapłon skrzyń z amunicją Cook-off caisses de munitions Abilita esplosione cassa munizioni - 開啟彈藥箱殉爆效果 - 开启弹药箱殉爆效果 + 開啟彈藥箱殉爆效果 + 开启弹药箱殉爆效果 Enables cooking off of ammo boxes. @@ -62,8 +62,8 @@ Aktywuje samozapłon skrzyń z amunicją Active le cook-off sur toutes les caisses de munitions. Abilita l'esplosione della cassa di munizioni. - 開啟彈藥箱殉爆效果. - 开启弹药箱殉爆效果. + 開啟彈藥箱殉爆效果. + 开启弹药箱殉爆效果. Enable Ammunition cook off @@ -73,8 +73,8 @@ Aktywuj samozapłon amunicji Active le cook-off des munitions Abilita Esplosione munizioni - 開啟彈藥殉爆效果 - 开启弹药殉爆效果 + 開啟彈藥殉爆效果 + 开启弹药殉爆效果 Enables Ammunition cook off. Fires ammunition projectiles while vehicle is on fire and has ammunition. @@ -83,8 +83,8 @@ Aktywuje samozapłon amunicji. Wystrzeliwuje pociski podczas gdy pojazd płonie i posiada amunicję. Mets à feu les munitions lorsqu'un véhicule est en feu et contient des munitions. Abilita l'esplosione delle munizioni. Spara munizioni di proiettili quando il veicolo va a fuoco e contiene munizioni. - 開啟彈藥殉爆效果. 當一台載有彈藥的載具起火時, 將會有殉爆的效果. - 开启弹药殉爆效果. 当一台载有弹药的载具起火时, 将会有殉爆的效果. + 開啟彈藥殉爆效果. 當一台載有彈藥的載具起火時, 將會有殉爆的效果. + 开启弹药殉爆效果. 当一台载有弹药的载具起火时, 将会有殉爆的效果. Ammunition cook off duration @@ -92,8 +92,8 @@ 弾薬の誘爆持続時間 Durée cook-off des munitions Durata esplosione munizioni - 彈藥殉爆效果持續時間 - 弹药殉爆效果持续时间 + 彈藥殉爆效果持續時間 + 弹药殉爆效果持续时间 Multiplier for how long cook off lasts [Setting to 0 will disable ammo cookoff] @@ -101,8 +101,8 @@ Mnożnik decydujący jak długo ma trwać samozapłon amunicji [Ustawienie na 0 spowoduje wyłącznie samozapłonu] 誘爆の持続時間を乗数で設定。[0 に設定で誘爆を無効化] Moltiplicatore della durata dell'esplosione [Impostare 0 disabiliterà l'esplosione delle munizioni] - 設定彈藥殉爆效果會持續多久時間 [輸入0來關閉殉爆效果] - 设定弹药殉爆效果会持续多久时间 [输入0来关闭殉爆效果] + 設定彈藥殉爆效果會持續多久時間 [輸入0來關閉殉爆效果] + 设定弹药殉爆效果会持续多久时间 [输入0来关闭殉爆效果] diff --git a/addons/dagr/stringtable.xml b/addons/dagr/stringtable.xml index f7155562a82..51ca754a823 100644 --- a/addons/dagr/stringtable.xml +++ b/addons/dagr/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,8 +13,8 @@ DAGR DAGR DAGR - 軍用GPS接收器 - 军用GPS接收器 + 軍用GPS接收器 + 军用GPS接收器 Configure DAGR @@ -28,8 +28,8 @@ Configurer le DAGR DAGR を設定 DAGR 설정 - 軍用GPS接收器設定 - 军用GPS接收器设定 + 軍用GPS接收器設定 + 军用GPS接收器设定 Toggle DAGR @@ -43,8 +43,8 @@ Activer/Desactiver le DAGR DAGR を常に表示 DAGR 토글 - 切換軍用GPS接收器 - 切换军用GPS接收器 + 切換軍用GPS接收器 + 切换军用GPS接收器 Defense Advanced GPS Receiver @@ -58,8 +58,8 @@ Defense Advanced GPS Receiver アドバンスド DAGR の受信を定義します 국방 고급위성항법시스템 수신기 - 軍用高級防禦GPS接收器 - 军用高级防御GPS接收器 + 軍用高級防禦GPS接收器 + 军用高级防御GPS接收器 diff --git a/addons/disarming/stringtable.xml b/addons/disarming/stringtable.xml index a7fc003f653..30f9fa4b857 100644 --- a/addons/disarming/stringtable.xml +++ b/addons/disarming/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Abrir inventário インベントリを開く 소지품 열기 - 開啟裝備 - 开启装备 + 開啟裝備 + 开启装备 diff --git a/addons/disposable/stringtable.xml b/addons/disposable/stringtable.xml index 782abbd9dce..f41b2cad887 100644 --- a/addons/disposable/stringtable.xml +++ b/addons/disposable/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Tubo utilizado 使用済み 사용함 - 使用過的火箭筒 - 使用过的火箭筒 + 使用過的火箭筒 + 使用过的火箭筒 Used disposable rocket launcher @@ -30,8 +30,8 @@ Lança foguetes descartável utilizado 使い終わったロケット ランチャーの筒部分 사용한 일회용 발사관 - 使用過的一次性火箭發射器 - 使用过的一次性火箭发射器 + 使用過的一次性火箭發射器 + 使用过的一次性火箭发射器 Preloaded Missile Dummy @@ -46,8 +46,8 @@ Míssel inerte pré-carregado 仮置きのミサイルをあらかじめ装填 임시로 미사일을 미리 장전 - 預裝訓練導彈 - 预装训练导弹 + 預裝訓練導彈 + 预装训练导弹 diff --git a/addons/dogtags/stringtable.xml b/addons/dogtags/stringtable.xml index edcfa14553c..e47a0ae1b74 100644 --- a/addons/dogtags/stringtable.xml +++ b/addons/dogtags/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -11,8 +11,8 @@ 군번줄 Plaque d'identification Piastrina - 兵籍牌 - 兵籍牌 + 兵籍牌 + 兵籍牌 Check Dog Tag @@ -24,8 +24,8 @@ 군번줄 확인 Vérifier les plaques d'identification Controlla Piastrina - 檢查兵籍牌 - 检查兵籍牌 + 檢查兵籍牌 + 检查兵籍牌 Check @@ -37,8 +37,8 @@ 확인 Vérifier Controlla - 檢查 - 检查 + 檢查 + 检查 Take @@ -50,8 +50,8 @@ 회수 Prendre Prendi - 拿取 - 拿取 + 拿取 + 拿取 Dogtag taken from %1... @@ -63,8 +63,8 @@ %1로부터 군번줄을 회수했습니다... Plaque d'identification pris sur %1... Piastrina presa da %1... - 從%1身上拿取兵籍牌... - 从%1身上拿取兵籍牌... + 從%1身上拿取兵籍牌... + 从%1身上拿取兵籍牌... Somebody else has already taken the dogtag... @@ -76,8 +76,8 @@ 누군가 이미 군번줄을 회수해갔습니다... Quelqu'un d'autre a déjâ pris les plaques d'identification... Qualcun altro ha già preso la piastrina... - 已經有人把他的兵籍牌拿走了... - 已经有人把他的兵籍牌拿走了... + 已經有人把他的兵籍牌拿走了... + 已经有人把他的兵籍牌拿走了... diff --git a/addons/dragging/stringtable.xml b/addons/dragging/stringtable.xml index 8d657be92ee..767ae3fd735 100644 --- a/addons/dragging/stringtable.xml +++ b/addons/dragging/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Húzás 引きずる 끌기 - 拖拉 - 拖拉 + 拖拉 + 拖拉 Release @@ -30,8 +30,8 @@ Elengedés はなす 놓기 - 放開 - 放开 + 放開 + 放开 Drag/Release Object @@ -46,8 +46,8 @@ Húzás/Elengedés Objektum オブジェクトを引きずる/はなす 물건 끌기/놓기 - 拖拉/放開物品 - 拖拉/放开物品 + 拖拉/放開物品 + 拖拉/放开物品 Item too heavy @@ -62,8 +62,8 @@ Az objektum túl nehéz アイテムが重すぎる 물체가 너무 무겁습니다 - 此物品過重 - 此物品过重 + 此物品過重 + 此物品过重 Carry @@ -78,8 +78,8 @@ Нести 運ぶ 업기 - 背起 - 背起 + 背起 + 背起 Raise/Lower @@ -93,8 +93,8 @@ Lever/Baisser 上げる/下げる 높이기/낮추기 - 提高/下降 - 提高/下降 + 提高/下降 + 提高/下降 diff --git a/addons/explosives/stringtable.xml b/addons/explosives/stringtable.xml index 5100ea4849c..f34a160cca3 100644 --- a/addons/explosives/stringtable.xml +++ b/addons/explosives/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Взрывчатка 爆発物 폭발물 - 炸药 - 炸藥 + 炸药 + 炸藥 Place @@ -30,8 +30,8 @@ Установить 設置 설치 - 放置 - 放置 + 放置 + 放置 Detonate @@ -46,8 +46,8 @@ Подрыв 点火 폭파 - 引爆 - 引爆 + 引爆 + 引爆 Detonate All @@ -61,8 +61,8 @@ Detonar Tudo すべて点火 모두 폭파 - 引爆全部 - 引爆全部 + 引爆全部 + 引爆全部 Explosive code: %1 @@ -77,8 +77,8 @@ Codice esplosivo: %1 爆破コード: %1 폭파 코드: %1 - 炸药代码: %1 - 炸藥代碼: %1 + 炸药代码: %1 + 炸藥代碼: %1 Place @@ -93,8 +93,8 @@ Установить 設置 설치 - 放置 - 放置 + 放置 + 放置 Attach @@ -109,8 +109,8 @@ Прикрепить 取り付け 부착 - 连接 - 連接 + 连接 + 連接 Blocked @@ -124,8 +124,8 @@ Bloqué 取り付けできない 막힘 - 断开 - 斷開 + 断开 + 斷開 Cancel @@ -140,8 +140,8 @@ Отмена 中止 취소 - 取消 - 取消 + 取消 + 取消 Rotate @@ -156,8 +156,8 @@ Bращать 向きを変える 회전 - 旋转 - 旋轉 + 旋转 + 旋轉 Turn On Thor III @@ -172,8 +172,8 @@ Активировать Thor III Thor III を使う Thor III 켜기 - 开启索尔三型 - 開啟索爾三型 + 开启索尔三型 + 開啟索爾三型 Turn Off Thor III @@ -188,8 +188,8 @@ Деактивировать Thor III Thor III を止める Thor III 끄기 - 关闭索尔三型 - 關閉索爾三型 + 关闭索尔三型 + 關閉索爾三型 Cellphone @@ -204,8 +204,8 @@ Сотовый телефон 携帯電話 휴대전화 - 手机 - 手機 + 手机 + 手機 Used to remotely trigger explosives @@ -220,8 +220,8 @@ Используется для удаленной детонации СВУ 爆発物を遠隔で起爆させるのに使います 원격으로 폭발물을 폭파시킬때 씁니다. - 用于远端引爆炸药 - 用於遠端引爆炸藥 + 用于远端引爆炸药 + 用於遠端引爆炸藥 M57 Firing Device @@ -236,8 +236,8 @@ Взрыватель M57 M57 起爆装置 M57 격발기 - M57 引爆装置 - M57 引爆裝置 + M57 引爆装置 + M57 引爆裝置 Used to remotely trigger explosives @@ -252,8 +252,8 @@ Используется для удаленной детонации зарядов 爆発物を遠隔で起爆させるのに使います 원격으로 폭발물을 폭파시킬때 씁니다. - 用于远端引爆炸药 - 用於遠端引爆炸藥 + 用于远端引爆炸药 + 用於遠端引爆炸藥 M152 Firing Device @@ -268,8 +268,8 @@ Взрыватель M152 M152 起爆装置 M152 격발기 - M152 引爆装置 - M152 引爆裝置 + M152 引爆装置 + M152 引爆裝置 M152 RAMS @@ -284,8 +284,8 @@ M152 RAMS M152 RAMS M152 RAMS - M152 远端炸药引爆系统 - M152 遠端炸藥引爆系統 + M152 远端炸药引爆系统 + M152 遠端炸藥引爆系統 Defusal Kit @@ -300,8 +300,8 @@ Комплект разминирования 解除キット 해체 장비 - 拆弹工具 - 拆彈工具 + 拆弹工具 + 拆彈工具 Allows defusing of explosives @@ -316,8 +316,8 @@ Позволяет обезвреживать взрывчатку 爆発物を無力化できます 폭발물을 해체할 수 있게 해줍니다 - 可以用来拆除炸弹 - 可以用來拆除炸彈 + 可以用来拆除炸弹 + 可以用來拆除炸彈 Add to Speed Dial @@ -332,8 +332,8 @@ Добавить в быстрый вызов 短縮ダイアルに追加 단축키에 지정 - 增加到快速拨号 - 增加到快速撥號 + 增加到快速拨号 + 增加到快速撥號 Clear @@ -348,8 +348,8 @@ Очистить 消去 삭제 - 清除 - 清除 + 清除 + 清除 Dial @@ -364,8 +364,8 @@ Hабрать ダイアル 다이얼 - 拨号 - 撥號 + 拨号 + 撥號 Up @@ -380,8 +380,8 @@ Вызов 上へ - - + + Down @@ -396,8 +396,8 @@ Сброс 下へ 아래 - - + + Cancel @@ -412,8 +412,8 @@ Отмена 中止 취소 - 取消 - 取消 + 取消 + 取消 Detonate Menu @@ -428,8 +428,8 @@ Меню подрыва 点火メニュー 폭파 메뉴 - 引爆选单 - 引爆選單 + 引爆选单 + 引爆選單 Place Menu @@ -444,8 +444,8 @@ Меню установки 設置メニュー 설치 메뉴 - 放置选单 - 放置選單 + 放置选单 + 放置選單 Defuse @@ -460,8 +460,8 @@ Обезвредить 無力化 해체 - 拆除 - 拆除 + 拆除 + 拆除 Defusing Explosive... @@ -476,8 +476,8 @@ Обезвреживание... 爆発物を無力化中・・・ 폭발물 해체중... - 炸弹拆除中... - 炸彈拆除中... + 炸弹拆除中... + 炸彈拆除中... Timer @@ -492,8 +492,8 @@ Таймер タイマー 타이머 - 计时器 - 計時器 + 计时器 + 計時器 Time: %1m %2s @@ -508,8 +508,8 @@ Время: %1m %2c 設定時間: %1分 %2秒 시간: %1분 %2초 - 时间: %1分%2秒 - 時間: %1分%2秒 + 时间: %1分%2秒 + 時間: %1分%2秒 Set Time @@ -524,8 +524,8 @@ Установить время 時間を設定 시간 설정 - 设定时间 - 設定時間 + 设定时间 + 設定時間 Select a Trigger @@ -540,8 +540,8 @@ Выберите детонатор 点火装置を選択 작동방식 선택 - 选择一个触发器 - 選擇一個觸發器 + 选择一个触发器 + 選擇一個觸發器 Select @@ -556,8 +556,8 @@ Выбрать 選択 선택 - 选择 - 選擇 + 选择 + 選擇 Pressure Plate @@ -572,8 +572,8 @@ Нажимная плита 圧力感知式 압력식 - 压力盘 - 壓力盤 + 压力盘 + 壓力盤 Tripwire @@ -588,8 +588,8 @@ Растяжка 仕掛け線 인계철선 - 绊线 - 絆線 + 绊线 + 絆線 IR Sensor @@ -604,8 +604,8 @@ ИК сенсор 赤外線感知式 적외선 센서 - 红外线感应器 - 紅外線感應器 + 红外线感应器 + 紅外線感應器 No triggers available for %1 @@ -620,8 +620,8 @@ Нет доступных взрывателей для %1 %1 につかえる点火装置がありません %1(을)를 작동할 장치가 없습니다. - 没有适合%1的触发器 - 沒有適合%1的觸發器 + 没有适合%1的触发器 + 沒有適合%1的觸發器 IR Sensor (Side Attack) @@ -636,8 +636,8 @@ ИК сенсор (детонация вбок) 赤外線感知式 (横からの攻撃) 적외선 센서 (측면 공격) - 红外线感应器 (侧边攻击) - 紅外線感應器 (側邊攻擊) + 红外线感应器 (侧边攻击) + 紅外線感應器 (側邊攻擊) Magnetic Influence Sensor (Bottom Attack) @@ -652,8 +652,8 @@ Магнитный сенсор (детонация вверх) 磁気感知式 (下からの攻撃) 자기장 감지센서 (바닥 공격) - 磁性感应器 (底部攻击) - 磁性感應器 (底部攻擊) + 磁性感应器 (底部攻击) + 磁性感應器 (底部攻擊) No explosives on trigger. @@ -668,8 +668,8 @@ Взрыватель не подсоединён к взрывчатке 点火装置に爆発物がありません。 격발기에 등록된 폭발물이 없습니다. - 触发器上并没有炸药 - 觸發器上並沒有炸藥 + 触发器上并没有炸药 + 觸發器上並沒有炸藥 Dead Man's Switch @@ -684,8 +684,8 @@ Detonatore a rilascio 自爆装置 자폭 장치 - 自杀炸弹客引爆器 - 自殺炸彈客引爆器 + 自杀炸弹客引爆器 + 自殺炸彈客引爆器 Used to remotely trigger explosives when released. @@ -700,8 +700,8 @@ Usato per attivare a distanza esplosivi al momento del rilascio 点火装置を離すと遠隔で起爆したいときに使います。 압력이 해제될때 원격으로 폭발시킵니다. - 当放开按钮时, 将会引爆炸弹. - 當放開按鈕時, 將會引爆炸彈. + 当放开按钮时, 将会引爆炸弹. + 當放開按鈕時, 將會引爆炸彈. Pick up @@ -716,8 +716,8 @@ Pegar 拾う 줍기 - 捡起 - 撿起 + 捡起 + 撿起 Explosive System @@ -732,8 +732,8 @@ Sistema Esplosivi 爆発システム 폭발물 시스템 - 炸药系统 - 炸藥系統 + 炸药系统 + 炸藥系統 Require specialists? @@ -748,8 +748,8 @@ Richiedi specialisti? 特技兵を必要としますか? 전문가가 필요합니까? - 需要专家? - 需要專家? + 需要专家? + 需要專家? Require explosive specialists to disable explosives? Default: No @@ -764,8 +764,8 @@ Richiedi specialisti esplosivi per disabilitare esplosivi? Default: No 爆発物を無効化するには、爆発物の特技兵を必要としますか?標準:いいえ 폭발물을 해제하기 위해서는 전문가가 필요합니까? 기본설정: 아니요 - 需要炸弹专家才能拆除炸弹? 预设: 否 - 需要炸彈專家才能拆除炸彈? 預設: 否 + 需要炸弹专家才能拆除炸弹? 预设: 否 + 需要炸彈專家才能拆除炸彈? 預設: 否 Punish non-specialists? @@ -780,8 +780,8 @@ Punisci non-specialisti? 非特技兵へ足かせを与えますか? 비-전문가에 불이익을 줍니까? - 折磨非专业人员? - 折磨非專業人員? + 折磨非专业人员? + 折磨非專業人員? Increase the time it takes to complete actions for non-specialists? Default: Yes @@ -796,8 +796,8 @@ Aumenta il tempo richiesto per completare azioni per non-specialisti? Default: Si 非特技兵は動作を完了する必要を増加させますか?標準:はい 비-전문가가 폭발물을 해제시 더욱 많은 시간을 소요합니까? 기본설정: 예 - 增加非专业人员相关操作的时间? 预设: 是 - 增加非專業人員相關操作的時間? 預設: 是 + 增加非专业人员相关操作的时间? 预设: 是 + 增加非專業人員相關操作的時間? 預設: 是 Explode on defusal? @@ -812,8 +812,8 @@ Fai esplodere quando disarmato? 解除時に爆発させますか? 해제시 폭발합니까? - 拆除时引爆? - 拆除時引爆? + 拆除时引爆? + 拆除時引爆? Enable certain explosives to explode on defusal? Default: Yes @@ -828,8 +828,8 @@ Abilita alcuni esplosivi per esplosione al disarmo? Default: Si 特定の爆発物へ、解除時に爆発させますか?標準:はい 특정 폭발물이 해제시 폭발하게 합니까? 기본설정: 예 - 启用后, 某些炸弹会在拆除时引爆? 预设: 是 - 啟用後, 某些炸彈會在拆除時引爆? 預設: 是 + 启用后, 某些炸弹会在拆除时引爆? 预设: 是 + 啟用後, 某些炸彈會在拆除時引爆? 預設: 是 This module adjusts the settings related to explosives. @@ -844,8 +844,8 @@ Questo modulo cambia le impostazioni relative agli esplosivi このモジュールを調節し爆発物に設定を反映させます。 이 모듈은 폭발물에 관한 설정을 수정할 수 있게합니다. - 此模块用来调整炸药的相关设定 - 此模塊用來調整炸藥的相關設定 + 此模块用来调整炸药的相关设定 + 此模塊用來調整炸藥的相關設定 M6 SLAM Mine (Bottom Attack) @@ -866,8 +866,8 @@ Мина M6 SLAM (направлена вверх) M6 SLAM 地雷 (下からの攻撃) M6 SLAM 지뢰 (바닥 공격) - M6指向性反装甲地雷 (底部攻击) - M6指向性反裝甲地雷 (底部攻擊) + M6指向性反装甲地雷 (底部攻击) + M6指向性反裝甲地雷 (底部攻擊) M6 SLAM Mine (Side Attack) @@ -888,8 +888,8 @@ Мина M6 SLAM (направлена вбок) M6 SLAM 地雷 (横からの攻撃) M6 SLAM 지뢰 (측면 공격) - M6指向性反装甲地雷 (侧边攻击) - M6指向性反裝甲地雷 (側邊攻擊) + M6指向性反装甲地雷 (侧边攻击) + M6指向性反裝甲地雷 (側邊攻擊) Large IED (Urban, Pressure Plate) @@ -910,8 +910,8 @@ Большое СВУ (городское, нажимного действия) 大きな IED (市街地用、圧力感知) 대형 급조폭발물 (시가지, 압력식) - 大型简易爆炸装置 (地表上, 压力盘) - 大型簡易爆炸裝置 (地表上, 壓力盤) + 大型简易爆炸装置 (地表上, 压力盘) + 大型簡易爆炸裝置 (地表上, 壓力盤) Large IED (Dug-in, Pressure Plate) @@ -932,8 +932,8 @@ Большое СВУ (закопанное, нажимного действия) 大きな IED (埋め込み型、圧力感知) 대형 급조폭발물 (묻힘, 압력식) - 大型简易爆炸装置 (地表下, 压力盘) - 大型簡易爆炸裝置 (地表下, 壓力盤) + 大型简易爆炸装置 (地表下, 压力盘) + 大型簡易爆炸裝置 (地表下, 壓力盤) Small IED (Urban, Pressure Plate) @@ -954,8 +954,8 @@ Малое СВУ (городское, нажимного действия) 小さな IED (市街地用、圧力感知) 소형 급조폭발물 (시가지, 압력식) - 小型简易爆炸装置 (地表上, 压力盘) - 小型簡易爆炸裝置 (地表上, 壓力盤) + 小型简易爆炸装置 (地表上, 压力盘) + 小型簡易爆炸裝置 (地表上, 壓力盤) Small IED (Dug-in, Pressure Plate) @@ -976,8 +976,8 @@ Малое СВУ (закопанное, нажимного действия) 小さな IED (埋め込み型、圧力感知) 소형 급조폭발물 (묻힘, 압력식) - 小型简易爆炸装置 (地表下, 压力盘) - 小型簡易爆炸裝置 (地表下, 壓力盤) + 小型简易爆炸装置 (地表下, 压力盘) + 小型簡易爆炸裝置 (地表下, 壓力盤) Connect to %1 @@ -992,8 +992,8 @@ Conectar à %1 %1 へ接続 %1에 연결중 - 连接到%1 - 連接到%1 + 连接到%1 + 連接到%1 Tripwire Flare @@ -1004,8 +1004,8 @@ 조명지뢰 Fusée éclairante avec fil de détente Cavo d'innesco - 绊线闪光地雷 - 絆線閃光地雷 + 绊线闪光地雷 + 絆線閃光地雷 Type: Tripwire flare - Ignites a non-lethal flare when triggered.<br />Rounds: 1<br />Used on: Ground @@ -1016,8 +1016,8 @@ 종류: 조명지뢰 - 작동시 무해한 조명을 사출합니다.<br />장탄수: 1<br />사용처: 지면 Type : Fusée éclairante avec fil de détente - Allume une fusée éclairante lorsque déclenché. <br />Coups : 1<br />Utilisé sur : le sol Tipo: Cavo d'innesco - Sfocio un abbaglio non letale quanto attivato. <br />Rimanenti: 1<br />Usato: A terra - 类型: 绊线闪光地雷 - 触发后产生非致命性的强光.<br />发数: 1<br />使用于: 地面 - 類型: 絆線閃光地雷 - 觸發後產生非致命性的強光.<br />發數: 1<br />使用於: 地面 + 类型: 绊线闪光地雷 - 触发后产生非致命性的强光.<br />发数: 1<br />使用于: 地面 + 類型: 絆線閃光地雷 - 觸發後產生非致命性的強光.<br />發數: 1<br />使用於: 地面 diff --git a/addons/fastroping/stringtable.xml b/addons/fastroping/stringtable.xml index 8f1188b06ef..f3988ee14f4 100644 --- a/addons/fastroping/stringtable.xml +++ b/addons/fastroping/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,8 +13,8 @@ Десантирование по канатам FRIES を装備 FRIES 장착 - 启用快速绳降及撤离系统 - 啟用快速繩降及撤離系統 + 启用快速绳降及撤离系统 + 啟用快速繩降及撤離系統 Equips compatible helicopters with a Fast Rope Insertion Extraction System. @@ -28,8 +28,8 @@ Снаряжает совместимые вертолеты оборудованием для спуска десанта по канатам. ヘリコプターで Fast Rope Insertion Extraction System を使えるようにします 패스트로프 투입 및 탈출 시스템을 호환되는 헬리콥터에 적용합니다. - 使可相容的直升机启用快速绳降及撤离系统 - 使可相容的直升機啟用快速繩降及撤離系統 + 使可相容的直升机启用快速绳降及撤离系统 + 使可相容的直升機啟用快速繩降及撤離系統 Prepare fast roping system @@ -43,8 +43,8 @@ Подготовить канаты ファスト ロープのシステムを準備 패스트로프 준비 - 准备快速绳降系统 - 準備快速繩降系統 + 准备快速绳降系统 + 準備快速繩降系統 Deploy ropes @@ -58,8 +58,8 @@ Зацепить канаты ロープを展開 줄 배치 - 部属绳索 - 部屬繩索 + 部属绳索 + 部屬繩索 Fast rope @@ -73,8 +73,8 @@ Спуститься по канату ファスト ロープをする 강하하기 - 快速绳降 - 快速繩降 + 快速绳降 + 快速繩降 Cut ropes @@ -88,8 +88,8 @@ Обрезать канаты ロープを切断 줄 자르기 - 剪掉绳索 - 剪掉繩索 + 剪掉绳索 + 剪掉繩索 Equip helicopter with FRIES @@ -103,8 +103,8 @@ Снарядить вертолет канатами для спуска ヘリコプターへ FRIES を装備 헬리콥터에 FRIES 장착 - 启用快速绳降及撤离系统给指定的直升机 - 啟用快速繩降及撤離系統給指定的直升機 + 启用快速绳降及撤离系统给指定的直升机 + 啟用快速繩降及撤離系統給指定的直升機 Equips the selected helicopter with a Fast Rope Insertion Extraction System @@ -118,8 +118,8 @@ Снаряжает выбранный вертолет оборудованием для спуска десанта по канатам 選択されたヘリコプターで Fast Rope Insertion Extraction System を使えるようにします。 선택된 헬리콥터에 패스트로프 투입 및 탈출 시스템을 장착합니다. - 使指定的直升机启用快速绳降及撤离系统 - 使指定的直升機啟用快速繩降及撤離系統 + 使指定的直升机启用快速绳降及撤离系统 + 使指定的直升機啟用快速繩降及撤離系統 LET UNITS FAST ROPE @@ -130,8 +130,8 @@ ДЕСАНТИРОВАНИЕ ПО КАНАТУ ユニットへファスト ロープをさせる ZJAZD NA LINACH - 让单位快速绳降 - 讓單位快速繩降 + 让单位快速绳降 + 讓單位快速繩降 diff --git a/addons/fcs/stringtable.xml b/addons/fcs/stringtable.xml index 2c5cef86241..9e776f34cd8 100644 --- a/addons/fcs/stringtable.xml +++ b/addons/fcs/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Marcar com laser / Medir Distância レーザー ターゲット / 計測距離 목표까지 거리를 레이저로 취득 - 雷射指示目标 / 测量距离 - 雷射指示目標 / 測量距離 + 雷射指示目标 / 测量距离 + 雷射指示目標 / 測量距離 Zeroed To @@ -30,8 +30,8 @@ Azzeramento a 次にゼロイン 영점 조절 - 归零到 - 歸零到 + 归零到 + 歸零到 Adjust FCS Range (Up) @@ -46,8 +46,8 @@ Диапазон СУО (Выше) FCS による距離を調節 (上げ) 사통장치 거리 조정 (위로) - 调整火控系统距离 (上) - 調整火控系統距離 (上) + 调整火控系统距离 (上) + 調整火控系統距離 (上) Adjust FCS Range (Down) @@ -62,8 +62,8 @@ Диапазон СУО (Ниже) FCS による距離を調節 (下げ) 사통장치 거리 조정 (아래로) - 调整火控系统距离 (下) - 調整火控系統距離 (下) + 调整火控系统距离 (下) + 調整火控系統距離 (下) Reset FCS @@ -78,8 +78,8 @@ Обнулить СУО FCS を初期化 사통장치 초기화 - 重置火控系统 - 重置火控系統 + 重置火控系统 + 重置火控系統 FCS has been reset. @@ -94,8 +94,8 @@ СУО обнулен. FCS は初期化された 사통장치 초기화됨 - 火控系统已被重置 - 火控系統已被重置 + 火控系统已被重置 + 火控系統已被重置 diff --git a/addons/finger/stringtable.xml b/addons/finger/stringtable.xml index ef5de545c9a..b6dc3c5f87c 100644 --- a/addons/finger/stringtable.xml +++ b/addons/finger/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Mostra puntatore per te stesso 自分にポインティング表記を表示する 자신이 가리키는곳을 보여줍니다 - 显示指向指示器给自己 - 顯示指向指示器給自己 + 显示指向指示器给自己 + 顯示指向指示器給自己 Render the indicator for the pointing player. This option doesn't affect whether the other players would see the indicator @@ -30,8 +30,8 @@ Mostra puntatore per il giocatore indicato. Questa opzione non influisce la possibilità che gli altri giocatori vedano il puntatore プレイヤーへのポインティング表記を描画します。このオプションは他のプレイヤーの表記に影響しません。 대상이 가리키는곳을 보이게 합니다. - 显示指向指示器给玩家自己. 此选项设定并不影响其他玩家能否看到指示器. - 顯示指向指示器給玩家自己. 此選項設定並不影響其他玩家能否看到指示器. + 显示指向指示器给玩家自己. 此选项设定并不影响其他玩家能否看到指示器. + 顯示指向指示器給玩家自己. 此選項設定並不影響其他玩家能否看到指示器. Pointing indicator @@ -46,8 +46,8 @@ Indicatore di puntamento ポインティング表記 가리키기 표시기 - 指向指示器 - 指向指示器 + 指向指示器 + 指向指示器 Color of the pointing indicator circle @@ -62,8 +62,8 @@ Colore del cerchio dell'indicatore di puntamento ポインティング表記の円の色 가리키기의 원형 색상 - 指向指示器颜色 - 指向指示器顏色 + 指向指示器颜色 + 指向指示器顏色 Action "point a finger at" @@ -78,8 +78,8 @@ Azione "punta il dito a" "point a finger at"キー "손가락으로 가리키기"행동 - 使"手指指向在" - 使"手指指向在" + 使"手指指向在" + 使"手指指向在" Points, and shows a virtual marker of where you are looking to nearby units. Can be held down. @@ -94,8 +94,8 @@ Punta e mostra un marker virtuale di dove stai guardando alle unità vicine. Può essere tenuto premuto. ポイント、そして架空のマーカー表記は自ユニットの近くにいると表記されます。これは押しっぱなしにできます。 당신이 보는것을 가상의 마커로 표시함으로서 다른 인원이 볼 수 있게 합니다. 누른채로 유지할 수 있습니다. - 当按下此按键后, 你附近的单位即可看见一个虚拟图示, 标明你正在指向的位置. 此按键可以被按住来持续显示. - 當按下此按鍵後, 你附近的單位即可看見一個虛擬圖示, 標明你正在指向的位置. 此按鍵可以被按住來持續顯示. + 当按下此按键后, 你附近的单位即可看见一个虚拟图示, 标明你正在指向的位置. 此按键可以被按住来持续显示. + 當按下此按鍵後, 你附近的單位即可看見一個虛擬圖示, 標明你正在指向的位置. 此按鍵可以被按住來持續顯示. Pointing Settings @@ -110,8 +110,8 @@ Impostazioni puntamento ポインティング設定 가리키기 설정 - 指向设定 - 指向設定 + 指向设定 + 指向設定 Pointing Enabled @@ -126,8 +126,8 @@ Puntamento abilitato ポインティングを有効 가리키기 활성화 - 指向系统启动 - 指向系統啟動 + 指向系统启动 + 指向系統啟動 Pointing Max Range @@ -142,8 +142,8 @@ Raggio massimo puntamento ポインティングの最大範囲 가리키기 최대 범위 - 指向指示器最大显示距离 - 指向指示器最大顯示距離 + 指向指示器最大显示距离 + 指向指示器最大顯示距離 Max range between players to show the pointing indicator [default: 4 meters] @@ -158,8 +158,8 @@ Distanza massima tra giocatori per mostrare l'indicatore di puntamento [default: 4 metri] ポインティング表記が他のプレイヤーに表示される範囲を決定できます。(標準 4 メートル) 플레이어 사이에서 가리키기 표시를 보이게 하는 최대거리를 설정합니다[기본설정: 4 미터] - 设定指向指示器最大显示距离. [预设: 4公尺] - 設定指向指示器最大顯示距離. [預設: 4公尺] + 设定指向指示器最大显示距离. [预设: 4公尺] + 設定指向指示器最大顯示距離. [預設: 4公尺] diff --git a/addons/flashlights/stringtable.xml b/addons/flashlights/stringtable.xml index b6ba53aff7c..d896d3724af 100644 --- a/addons/flashlights/stringtable.xml +++ b/addons/flashlights/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,8 +13,8 @@ Fulton MX-991 Fulton MX-991 Fulton MX-991 - Fulton MX-991 - Fulton MX-991 + Fulton MX-991 + Fulton MX-991 Flashlight with red filter. For use on map. @@ -28,8 +28,8 @@ Lampe torche avec un filtre rouge. Pour utilisation sur carte. 赤色フィルタ付きのフラッシュライト。地図上でつかいます。 빨간색 필터가 달린 손전등입니다. 지도를 비출때 씁니다. - 拥有红色滤光片的手电筒. 用来照亮地图. - 擁有紅色濾光片的手電筒. 用來照亮地圖. + 拥有红色滤光片的手电筒. 用来照亮地图. + 擁有紅色濾光片的手電筒. 用來照亮地圖. Maglite XL50 @@ -43,8 +43,8 @@ Maglite XL50 Maglite XL50 Maglite XL50 - Maglite XL50 - Maglite XL50 + Maglite XL50 + Maglite XL50 White mini flashlight. For use on map. @@ -58,8 +58,8 @@ Mini lampe torche blanche. Pour utilisation sur carte. 白色光の小さなフラッシュライト。地図上でつかいます。 하얀색 조그마한 손전등. 지도를 비출때 씁니다. - 白色的迷你手电筒. 用来照亮地图. - 白色的迷你手電筒. 用來照亮地圖. + 白色的迷你手电筒. 用来照亮地图. + 白色的迷你手電筒. 用來照亮地圖. KSF-1 @@ -73,8 +73,8 @@ KSF-1 KSF-1 KSF-1 - KSF-1 - KSF-1 + KSF-1 + KSF-1 Flashlight with red filter. For use on map. @@ -88,8 +88,8 @@ Lampe torche avec un filtre rouge. Pour utilisation sur carte. 赤色フィルタ付きのフラッシュライト。地図上でつかいます。 빨간색 필터가 달린 손전등입니다. 지도를 비출때 씁니다. - 拥有红色滤光片的手电筒. 用来照亮地图. - 擁有紅色濾光片的手電筒. 用來照亮地圖. + 拥有红色滤光片的手电筒. 用来照亮地图. + 擁有紅色濾光片的手電筒. 用來照亮地圖. diff --git a/addons/flashsuppressors/stringtable.xml b/addons/flashsuppressors/stringtable.xml index 8a7bda4d55e..52563ea1c49 100644 --- a/addons/flashsuppressors/stringtable.xml +++ b/addons/flashsuppressors/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Bocacha (6,5 mm) 消炎器 (6.5 mm) 소염기 (6.5 mm) - 消光器 (6.5 mm) - 消光器 (6.5 mm) + 消光器 (6.5 mm) + 消光器 (6.5 mm) Flash Suppressor (7.62 mm) @@ -30,8 +30,8 @@ Bocacha (7,62 mm) 消炎器 (7.62 mm) 소염기 (7.62 mm) - 消光器 (7.62 mm) - 消光器 (7.62 mm) + 消光器 (7.62 mm) + 消光器 (7.62 mm) Flash Suppressor (5.56 mm) @@ -46,8 +46,8 @@ Bocacha (5,56 mm) 消炎器 (5.56 mm) 소염기 (5.56 mm) - 消光器 (5.56 mm) - 消光器 (5.56 mm) + 消光器 (5.56 mm) + 消光器 (5.56 mm) Flash Suppressor (.45 ACP) @@ -62,8 +62,8 @@ Bocacha (.45 ACP) 消炎器 (.45 ACP) 소염기 (.45 ACP) - 消光器 (.45 ACP) - 消光器 (.45 ACP) + 消光器 (.45 ACP) + 消光器 (.45 ACP) Flash Suppressor (9 mm) @@ -78,8 +78,8 @@ Bocacha (9 mm) 消炎器 (9 mm) 소염기 (9 mm) - 消光器 (9 mm) - 消光器 (9 mm) + 消光器 (9 mm) + 消光器 (9 mm) Flash Suppressor (.338) @@ -94,8 +94,8 @@ Bocacha (.338) 消炎器 (.338) 소염기 (.338) - 消光器 (.338) - 消光器 (.338) + 消光器 (.338) + 消光器 (.338) Flash Suppressor (9.3 mm) @@ -110,8 +110,8 @@ Bocacha (9,3 mm) 消炎器 (9.3 mm) 소염기 (9.3 mm) - 消光器 (9.3 mm) - 消光器 (9.3 mm) + 消光器 (9.3 mm) + 消光器 (9.3 mm) diff --git a/addons/frag/stringtable.xml b/addons/frag/stringtable.xml index 2ab13ba13d8..d74033f6a48 100644 --- a/addons/frag/stringtable.xml +++ b/addons/frag/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Simulazione Frammentazione 破片シミュレーション 조각 시뮬레이션 - 模拟碎片 - 模擬碎片 + 模拟碎片 + 模擬碎片 Fragmentation Simulation @@ -30,8 +30,8 @@ Simulazione Frammentazione 破片シミュレーション 조각 시뮬레이션 - 模拟碎片 - 模擬碎片 + 模拟碎片 + 模擬碎片 Enable the ACE Fragmentation Simulation @@ -46,8 +46,8 @@ Abilita la Simulazione Frammentazione di ACE ACE 破片シミュレーションを有効化 ACE 조각 시뮬레이션을 적용합니다. - 启用ACE模拟碎片 - 啟用ACE模擬碎片 + 启用ACE模拟碎片 + 啟用ACE模擬碎片 Spalling Simulation @@ -62,8 +62,8 @@ Simulazione Spalling 剥離シミュレーション 파편 시뮬레이션 - 模拟剥落 - 模擬剝落 + 模拟剥落 + 模擬剝落 Enable the ACE Spalling Simulation @@ -78,8 +78,8 @@ Abilita la Simulazione Spalling di ACE ACE 剥離シミュレーションを有効化 ACE 파편 시뮬레이션을 적용합니다. - 启用ACE模拟剥落 - 啟用ACE模擬剝落 + 启用ACE模拟剥落 + 啟用ACE模擬剝落 Explosion Reflections Simulation @@ -92,8 +92,8 @@ Cимуляция отражения взрывов ACE 爆発による飛翔シミュレーション 폭발 반사 시뮬레이션 - 模拟爆炸反射 - 模擬爆炸反射 + 模拟爆炸反射 + 模擬爆炸反射 Enable the ACE Explosion Reflection Simulation @@ -106,8 +106,8 @@ Включить симуляцию отражения взрывов ACE 爆発による飛翔シミュレーションを有効化 ACE 폭발 반사 시뮬레이션을 적용합니다. - 启用ACE模拟爆炸反射 - 啟用ACE模擬爆炸反射 + 启用ACE模拟爆炸反射 + 啟用ACE模擬爆炸反射 Maximum Projectiles Tracked @@ -122,8 +122,8 @@ Numero massimo di Proiettili Tracciati 最大弾頭追跡数 최대 발사체 추적수 - 最大碎片/剥落粒子追踪数量 - 最大碎片/剝落粒子追蹤數量 + 最大碎片/剥落粒子追踪数量 + 最大碎片/剝落粒子追蹤數量 This setting controls the maximum amount of projectiles the fragmentation and spalling system will track at any given time. If more projectiles are fired, they will not be tracked. Lower this setting if you do not want FPS drops at high-count projectile scenarios ( >200 rounds in the air at once) @@ -138,8 +138,8 @@ Questo parametro controlla il numero massimo di proiettili che la frammentazione e il sistema di spalling tracciano in ogni momento. Se più proiettili sono sparati, non verranno tracciati. Abbassa questo parametro se non vuoi cali di FPS in scenari con molti proiettili (>200 proiettili in aria contemporaneamente) 時間が許すかぎり、破片と剥離システムの最大数を設定できます。設定数以上の弾丸が発射された場合、それは対象になりません。もし多い弾数による FPS の低下を望まない場合は、低い数へ設定にします。( &gt;一度に空中内で200発) 이 설정은 조각 및 파편 시스템으로 인해 생긴 발사체의 수를 결정합니다. 만약 더 많은 발사체가 나올경우 정해진 수 이외에는 추적하지 않습니다. 이 설정을 낮춤으로써 파편이 많은 시나리오를 실행할때 더욱 원활히 진행할 수 있습니다 (한 번에 200개 이하) - 设定在指定时间内, 系统最大可追踪的碎片/剥落粒子数量. 如有更多的碎片在这之后产生, 这些粒子将不会被追踪. 如果你想要维持好的帧数, 此设定勿调的过高. ( >一次200颗粒子) - 設定在指定時間內, 系統最大可追蹤的碎片/剝落粒子數量. 如有更多的碎片在這之後產生, 這些粒子將不會被追蹤. 如果你想要維持好的幀數, 此設定勿調的過高. ( >一次200顆粒子) + 设定在指定时间内, 系统最大可追踪的碎片/剥落粒子数量. 如有更多的碎片在这之后产生, 这些粒子将不会被追踪. 如果你想要维持好的帧数, 此设定勿调的过高. ( >一次200颗粒子) + 設定在指定時間內, 系統最大可追蹤的碎片/剝落粒子數量. 如有更多的碎片在這之後產生, 這些粒子將不會被追蹤. 如果你想要維持好的幀數, 此設定勿調的過高. ( >一次200顆粒子) Maximum Projectiles Per Frame @@ -154,8 +154,8 @@ Numero massimo di proiettili per Frame フレームごとの最大弾頭数 프레임당 최대 발사체 수 - 每一帧数(FPS)最大碎片/剥落粒子数量 - 每一幀數(FPS)最大碎片/剝落粒子數量 + 每一帧数(FPS)最大碎片/剥落粒子数量 + 每一幀數(FPS)最大碎片/剝落粒子數量 The number of spall track calculations to perform in any given frame. This helps spread the FPS impact of tracking spall rounds across multiple frames, limiting its impact even further. @@ -170,8 +170,8 @@ Il numero di calcoli per tracciamento di spalling ad ogni frame. Questo aiuta a distribuire l'impatto del tracciamento dello spalling su più frame, limitando ancora di più l'impatto. 与えられたフレームごとに追跡する剥離の数を決定します。FPS に影響をあたえないよう、剥離を複数のフレームで追跡し、分散させています。 가능한 프레임마다 파편을 추적 및 계산합니다. 여러 프레임에 걸쳐 파편난 발사체를 추적하여 FPS에 도움을 줍니다. 이를 제한함으로써 더욱 큰 효과를 볼 수 있습니다. - 设定在每一帧数内, 系统最大可追踪的碎片/剥落粒子数量. 此设定可有效帮助系统减低计算压力. - 設定在每一幀數內, 系統最大可追蹤的碎片/剝落粒子數量. 此設定可有效幫助系統減低計算壓力. + 设定在每一帧数内, 系统最大可追踪的碎片/剥落粒子数量. 此设定可有效帮助系统减低计算压力. + 設定在每一幀數內, 系統最大可追蹤的碎片/剝落粒子數量. 此設定可有效幫助系統減低計算壓力. (SP Only) Frag/Spall Debug Tracing @@ -186,8 +186,8 @@ (Solo SP) Debug Tracciamento Frag/Spall (SP のみ) 破片/剥離のデバッグ用表示 (싱글플레이 전용) 조각/파편 디버그 추적화 - (仅在单人模式) 碎片/剥落除错追踪 - (僅在單人模式) 碎片/剝落除錯追蹤 + (仅在单人模式) 碎片/剥落除错追踪 + (僅在單人模式) 碎片/剝落除錯追蹤 (SP Only) Requires a mission/editor restart. Enables visual tracing of fragmentation and spalling rounds in SP game mode only. @@ -201,8 +201,8 @@ (Только для одиночной игры) Требует перезапуска миссии/редактора. Включает визуальные следы от осколков и обломков в режиме одиночной игры. (Solo SP) Richiede un restart editor/missione. Abilita il tracciamento visivo di schegge da frammentazione/spalling in modalità Giocatore Singolo. (SP のみ) ミッションとエディタの再起動が必要です。有効化すると、シングルプレイでのみ破片と剥離の弾頭が見えるようになります。 - (仅在单人模式) 让你在单人模式下可观察到碎片/剥落粒子的移动轨迹. - (僅在單人模式) 讓你在單人模式下可觀察到碎片/剝落粒子的移動軌跡. + (仅在单人模式) 让你在单人模式下可观察到碎片/剥落粒子的移动轨迹. + (僅在單人模式) 讓你在單人模式下可觀察到碎片/剝落粒子的移動軌跡. diff --git a/addons/gestures/stringtable.xml b/addons/gestures/stringtable.xml index 865a4709ce4..18e8883227c 100644 --- a/addons/gestures/stringtable.xml +++ b/addons/gestures/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ ACE Gestos ACE ジェスチャー ACE 수신호 - ACE 手势 - ACE 手勢 + ACE 手势 + ACE 手勢 Gestures @@ -30,8 +30,8 @@ Gesti ジェスチャー 수신호 - 手势 - 手勢 + 手势 + 手勢 Advance @@ -46,8 +46,8 @@ Avanzare 警戒 전진 - 前进 - 前進 + 前进 + 前進 Go @@ -62,8 +62,8 @@ Muoversi 進め 이동 - 出发 - 出發 + 出发 + 出發 Follow @@ -78,8 +78,8 @@ Seguire ついて来い 따라올것 - 跟进 - 跟進 + 跟进 + 跟進 Up @@ -94,8 +94,8 @@ Alzarsi 立ち上がれ - 起立 - 起立 + 起立 + 起立 Cease Fire @@ -110,8 +110,8 @@ Cessare il Fuoco 撃つな 사격 중지 - 停火 - 停火 + 停火 + 停火 Stop @@ -125,8 +125,8 @@ Detenerse 止まれ 멈춰 - 停止 - 停止 + 停止 + 停止 Freeze @@ -141,8 +141,8 @@ Fermi 動くな 정지 - 不准动 - 不准動 + 不准动 + 不准動 Cover @@ -157,8 +157,8 @@ Copertura 隠れろ 엄폐 - 掩护 - 掩護 + 掩护 + 掩護 Rally up @@ -172,8 +172,8 @@ Reunirse 集合 집결 - 集合 - 集合 + 集合 + 集合 Move forward @@ -187,8 +187,8 @@ Avanzar 前に進め 앞으로 이동 - 往前走 - 往前走 + 往前走 + 往前走 Engage @@ -202,8 +202,8 @@ Atacar 交戦しろ 교전할것 - 交战 - 交戰 + 交战 + 交戰 Point @@ -217,8 +217,8 @@ Señalar 指示 가리키기 - 指出 - 指出 + 指出 + 指出 Hold @@ -232,8 +232,8 @@ Esperar そこにいろ 기다려 - 停住 - 停住 + 停住 + 停住 Warning @@ -247,8 +247,8 @@ Atención 注意 주의 - 警告 - 警告 + 警告 + 警告 Show Gestures On Interaction Menu @@ -262,8 +262,8 @@ Показать жесты в меню взаимодействия インタラクション メニュー上でジェスチャーを表示する 수신호를 상호작용 메뉴에서 보여줍니다 - 显示手势互动选单 - 顯示手勢互動選單 + 显示手势互动选单 + 顯示手勢互動選單 Show gestures on the self interaction menu, or just use keybinds, or disable completely @@ -277,8 +277,8 @@ Показать жесты в меню взамиодейтсвия с собой или только использовать горячие клавиши, или полностью отключить キー操作や同時使用を無効化している場合はセルフ インタラクション メニュ上でジェスチャーを表示します 수신호를 상호작용 메뉴에서 보여주거나 혹은 단축키를 지정하거나 아니면 아예 사용하지 않습니다. - 显示手势选项在自己的互动选单上, 或只利用键盘来使用手势, 或完全禁用 - 顯示手勢選項在自己的互動選單上, 或只利用鍵盤來使用手勢, 或完全禁用 + 显示手势选项在自己的互动选单上, 或只利用键盘来使用手势, 或完全禁用 + 顯示手勢選項在自己的互動選單上, 或只利用鍵盤來使用手勢, 或完全禁用 Just Keybinds @@ -292,8 +292,8 @@ Только горячие клавиши キー操作のみ 오직 단축키만 - 只利用键盘 - 只利用鍵盤 + 只利用键盘 + 只利用鍵盤 Keybinds + Interaction Menu @@ -307,8 +307,8 @@ Клавиши + Меню взаимодействия キー操作とインタラクション メニュ 단축키및 상호작용 메뉴 - 键盘 + 互动选单 - 鍵盤 + 互動選單 + 键盘 + 互动选单 + 鍵盤 + 互動選單 diff --git a/addons/gforces/stringtable.xml b/addons/gforces/stringtable.xml index 717675b5589..12d3d0ba531 100644 --- a/addons/gforces/stringtable.xml +++ b/addons/gforces/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,8 +13,8 @@ Efekty przeciążeń 중력가속도 효과 Effetti forza G - G力影响 - G力影響 + G力影响 + G力影響 Only Aircraft @@ -28,8 +28,8 @@ Tylko samoloty 비행기에만 적용 Solo Aerei - 只有战斗机 - 只有戰鬥機 + 只有战斗机 + 只有戰鬥機 diff --git a/addons/goggles/stringtable.xml b/addons/goggles/stringtable.xml index 320be6950f7..309a420a46b 100644 --- a/addons/goggles/stringtable.xml +++ b/addons/goggles/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Attiva l'effetto degli occhiali in terza persona 三人称視点でもゴーグルによる効果を出す 3인칭시에도 고글 효과를 보이게 합니다 - 在第三人称视角显示护目镜效果 - 在第三人稱視角顯示護目鏡效果 + 在第三人称视角显示护目镜效果 + 在第三人稱視角顯示護目鏡效果 Wipe Goggles @@ -30,8 +30,8 @@ Pulisci gli occhiali ゴーグルを拭く 고글 닦기 - 擦拭护目镜 - 擦拭護目鏡 + 擦拭护目镜 + 擦拭護目鏡 Goggle Effects @@ -42,8 +42,8 @@ 고글 효과 Effets des lunettes Effetto Occhiali - 护目镜效果 - 護目鏡效果 + 护目镜效果 + 護目鏡效果 Tint @@ -54,8 +54,8 @@ 색조 Teinte Colore - 染色 - 染色 + 染色 + 染色 Tint + Effects @@ -66,8 +66,8 @@ 색조+효과 Teinte + effets Colore + Effetti - 染色 + 影响 - 染色 + 影響 + 染色 + 影响 + 染色 + 影響 diff --git a/addons/grenades/stringtable.xml b/addons/grenades/stringtable.xml index f0c9089aad8..fb54bed50b9 100644 --- a/addons/grenades/stringtable.xml +++ b/addons/grenades/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Alternar Modo de Granada グレネード モードを切り替え 투척 종류 전환 - 切换投掷模式 - 切換投擲模式 + 切换投掷模式 + 切換投擲模式 Normal Throw @@ -30,8 +30,8 @@ Arremesso Normal 通常で投げる 일반 던지기 - 普通投掷 - 普通投擲 + 普通投掷 + 普通投擲 High Throw @@ -46,8 +46,8 @@ Arremesso Alto 高く投げる 높이 던지기 - 高抛 - 高拋 + 高抛 + 高拋 Precise Throw @@ -62,8 +62,8 @@ Arremesso Preciso 低く投げる 정확한 던지기 - 精准投掷 - 精準投擲 + 精准投掷 + 精準投擲 Roll Grenade @@ -78,8 +78,8 @@ Rolar Granada 転がす 굴려넣기 - 地面滚抛 - 地面滾拋 + 地面滚抛 + 地面滾拋 Drop Grenade @@ -94,8 +94,8 @@ Largar Granada 落とす 떨어뜨리기 - 下丢投掷 - 下丟投擲 + 下丢投掷 + 下丟投擲 M84 Stun Grenade @@ -110,8 +110,8 @@ M84 granada de atordoamento M84 閃光手榴弾 M84 섬광 수류탄 - M84 震撼弹 - M84 震撼彈 + M84 震撼弹 + M84 震撼彈 M84 @@ -126,8 +126,8 @@ M84 M84 M84 - M84 - M84 + M84 + M84 Also known as flashbang. Causes immediate flash blindness, deafness, tinnitus, and inner ear disturbance. @@ -142,8 +142,8 @@ Também conhecida como flashbang. Causa uma clarão imediato, cegueira, surdez, zumbido e distúrbio no tímpano. フラッシュバンとも知られています。即時に失明と難聴、耳鳴り、内耳障害を引き起こします。 플래시뱅이라고도 알려져있습니다. 사용즉시 섬광으로 인한 시력장애, 청각장애, 이명, 내이기관방해를 유발합니다. - 也被称为闪光弹, 会造成暂时性失明, 耳聋, 耳鸣等效果 - 也被稱為閃光彈, 會造成暫時性失明, 耳聾, 耳鳴等效果 + 也被称为闪光弹, 会造成暂时性失明, 耳聋, 耳鸣等效果 + 也被稱為閃光彈, 會造成暫時性失明, 耳聾, 耳鳴等效果 M127A1 Hand Held Signal (White) @@ -158,8 +158,8 @@ M127A1 Feux à main (Blanc) M127A1 信号弾 (白) M127A1 신호탄 (하얀색) - M127A1 手持式信号弹 (白色) - M127A1 手持式信號彈 (白色) + M127A1 手持式信号弹 (白色) + M127A1 手持式信號彈 (白色) M127A1 Hand Held Signal (Red) @@ -174,8 +174,8 @@ M127A1 Feux à main (Rouge) M127A1 信号弾 (赤) M127A1 신호탄 (빨간색) - M127A1 手持式信号弹 (红色) - M127A1 手持式信號彈 (紅色) + M127A1 手持式信号弹 (红色) + M127A1 手持式信號彈 (紅色) M127A1 Hand Held Signal (Green) @@ -190,8 +190,8 @@ M127A1 Feux à main (Vert) M127A1 信号弾 (緑) M127A1 신호탄 (초록색) - M127A1 手持式信号弹 (绿色) - M127A1 手持式信號彈 (綠色) + M127A1 手持式信号弹 (绿色) + M127A1 手持式信號彈 (綠色) M127A1 Hand Held Signal (Yellow) @@ -206,8 +206,8 @@ M127A1 Feux à main (Jaune) M127A1 信号弾 (黄) M127A1 신호탄 (노란색) - M127A1 手持式信号弹 (黄色) - M127A1 手持式信號彈 (黃色) + M127A1 手持式信号弹 (黄色) + M127A1 手持式信號彈 (黃色) White Hand Flare @@ -222,8 +222,8 @@ Feux à main (Blanc) 白の発炎筒 하얀색 불꽃신호기 - 白色手持式信号弹 - 白色手持式信號彈 + 白色手持式信号弹 + 白色手持式信號彈 Red Hand Flare @@ -238,8 +238,8 @@ Feux à main (Rouge) 赤の発炎筒 빨간색 불꽃신호기 - 红色手持式信号弹 - 紅色手持式信號彈 + 红色手持式信号弹 + 紅色手持式信號彈 Green Hand Flare @@ -254,8 +254,8 @@ Feux à main (Vert) 緑の発炎筒 초록색 불꽃신호기 - 绿色手持式信号弹 - 綠色手持式信號彈 + 绿色手持式信号弹 + 綠色手持式信號彈 Yellow Hand Flare @@ -270,8 +270,8 @@ Feux à main (Jaune) 黄の発炎筒 노란색 불꽃신호기 - 黄色手持式信号弹 - 黃色手持式信號彈 + 黄色手持式信号弹 + 黃色手持式信號彈 M127A1 (White) @@ -286,8 +286,8 @@ M127A1 (Blanca) M127A1 (白) M127A1 (하양) - M127A1 (白色) - M127A1 (白色) + M127A1 (白色) + M127A1 (白色) M127A1 (Red) @@ -302,8 +302,8 @@ M127A1 (Roja) M127A1 (赤) M127A1 (빨강) - M127A1 (红色) - M127A1 (紅色) + M127A1 (红色) + M127A1 (紅色) M127A1 (Green) @@ -318,8 +318,8 @@ M127A1 (Verde) M127A1 (緑) M127A1 (초록) - M127A1 (绿色) - M127A1 (綠色) + M127A1 (绿色) + M127A1 (綠色) M127A1 (Yellow) @@ -334,8 +334,8 @@ M127A1 (Amarilla) M127A1 (黄) M127A1 (노랑) - M127A1 (黄色) - M127A1 (黃色) + M127A1 (黄色) + M127A1 (黃色) AN-M14 Incendiary Grenade @@ -346,8 +346,8 @@ AN-M14 소이 수류탄 Grenade incendiaire AN-M14 AN-M14 Granata Incendiaria - AN-M14 燃烧手榴弹 - AN-M14 燃燒手榴彈 + AN-M14 燃烧手榴弹 + AN-M14 燃燒手榴彈 AN-M14 @@ -358,8 +358,8 @@ AN-M14 AN-M14 AN-M14 - AN-M14 - AN-M14 + AN-M14 + AN-M14 Incendiary grenade used to destroy weapons, ammunition and other equipment. @@ -370,8 +370,8 @@ 소이 수류탄은 무기나 탄약 그리고 장비를 파괴할때 쓰입니다. Grenade incendiaire utilisé pour détruire des armes, munitions et autres équipements. Granata incendiaria usata per distruggere armi, munizioni e altri equipaggiamenti. - 燃烧手榴弹是用来摧毁武器, 弹药以及其他装备的好帮手. - 燃燒手榴彈是用來摧毀武器, 彈藥以及其他裝備的好幫手. + 燃烧手榴弹是用来摧毁武器, 弹药以及其他装备的好帮手. + 燃燒手榴彈是用來摧毀武器, 彈藥以及其他裝備的好幫手. diff --git a/addons/gunbag/stringtable.xml b/addons/gunbag/stringtable.xml index 2f7834e6bce..ab4fdf5ac72 100644 --- a/addons/gunbag/stringtable.xml +++ b/addons/gunbag/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -11,8 +11,8 @@ Torba na broń 총가방 Borsa per Armi - 枪袋 - 槍袋 + 枪袋 + 槍袋 Gunbag (Tan) @@ -24,8 +24,8 @@ Torba na broń (jasnobrązowa) 총가방 (황갈색) Borsa per Armi (Tan) - 枪袋 (黄褐色) - 槍袋 (黃褐色) + 枪袋 (黄褐色) + 槍袋 (黃褐色) Put weapon into gunbag @@ -37,8 +37,8 @@ Włóż broń do torby 무기를 총가방에 넣기 Metti l'arma nella borsa per armi - 将武器放置枪袋 - 將武器放置槍袋 + 将武器放置枪袋 + 將武器放置槍袋 Get weapon out of gunbag @@ -50,8 +50,8 @@ Wyciągnij broń z torby 무기를 총가방에서 꺼내기 Prendi l'arma dalla borsa per armi - 将武器拿出枪袋 - 將武器拿出槍袋 + 将武器拿出枪袋 + 將武器拿出槍袋 Status @@ -63,8 +63,8 @@ Status 상태 Stato - 状态 - 狀態 + 状态 + 狀態 Gunbag Empty @@ -76,8 +76,8 @@ Torba jest pusta 총가방 비어있음 Borsa per armi vuota - 枪袋为空 - 槍袋為空 + 枪袋为空 + 槍袋為空 diff --git a/addons/hearing/stringtable.xml b/addons/hearing/stringtable.xml index 0bd55c67954..e8b44833efc 100644 --- a/addons/hearing/stringtable.xml +++ b/addons/hearing/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Tappi auricolari 耳栓 귀마개 - 耳塞 - 耳塞 + 耳塞 + 耳塞 Protective Earplugs allow the wearer to be near loud weaponry without damage to his hearing. @@ -30,8 +30,8 @@ Proteggono l'apparato uditivo, permettendo a chi li indossa di resistere ai suoni particolarmente forti senza alcun danno. 着けることにより、近くの大きな銃声から聴覚を保護します。 보호용 귀마개는 화기로부터의 큰소리로부터 사용자의 청력을 보호합니다. - 配戴防护耳塞, 遇到大声的武器发射时也不会损害听力. - 配戴防護耳塞, 遇到大聲的武器發射時也不會損害聽力. + 配戴防护耳塞, 遇到大声的武器发射时也不会损害听力. + 配戴防護耳塞, 遇到大聲的武器發射時也不會損害聽力. Earplugs in @@ -46,8 +46,8 @@ Indossa i tappi auricolari 耳栓を着ける 귀마개 착용 - 塞入耳塞 - 塞入耳塞 + 塞入耳塞 + 塞入耳塞 Earplugs out @@ -62,8 +62,8 @@ Levati i tappi auricolari 耳栓を外す 귀마개 뺌 - 取出耳塞 - 取出耳塞 + 取出耳塞 + 取出耳塞 Earplugs in @@ -78,8 +78,8 @@ Indossa i tappi auricolari 耳栓を着けた 귀마개 착용 - 耳塞已塞入 - 耳塞已塞入 + 耳塞已塞入 + 耳塞已塞入 Earplugs out @@ -94,8 +94,8 @@ Levati i tappi auricolari 耳栓を外した 귀마개 뺌 - 耳塞已取出 - 耳塞已取出 + 耳塞已取出 + 耳塞已取出 You have no earplugs @@ -110,8 +110,8 @@ Non hai i tappi auricolari 耳栓を持っていません 귀마개가 없습니다 - 你没有耳塞 - 你沒有耳塞 + 你没有耳塞 + 你沒有耳塞 No inventory space @@ -126,8 +126,8 @@ Нет места в инвентаре インベントリに空きがありません。 넣을 공간이 없습니다 - 无可用空间 - 無可用空間 + 无可用空间 + 無可用空間 Disable ear ringing @@ -142,8 +142,8 @@ Desabilitar zumbido de ouvidos 耳鳴りを無効化する 이명현상 끄기 - 关闭耳鸣效果 - 關閉耳鳴效果 + 关闭耳鸣效果 + 關閉耳鳴效果 Remove tinnitus effect when the player takes hearing damage @@ -156,8 +156,8 @@ Убирает эффект звона в ушах, когда игрок получает повреждение слуха プレイヤーの聴覚が損傷をしたら耳鳴りの効果を削除します 플레이어가 청력손실을 입을때 생기는 이명현상을 제거합니다. - 关闭耳鸣效果时, 就算玩家受到相当程度的听力伤害, 也不会造成耳鸣效果. - 關閉耳鳴效果時, 就算玩家受到相當程度的聽力傷害, 也不會造成耳鳴效果. + 关闭耳鸣效果时, 就算玩家受到相当程度的听力伤害, 也不会造成耳鸣效果. + 關閉耳鳴效果時, 就算玩家受到相當程度的聽力傷害, 也不會造成耳鳴效果. Hearing @@ -172,8 +172,8 @@ Udito 聴覚 청력 - 听力设定 - 聽力設定 + 听力设定 + 聽力設定 Enable Combat Deafness @@ -188,8 +188,8 @@ Sordità da combattimento 戦闘による難聴を有効化 전투 난청 켜기 - 启用战斗性耳聋? - 啟用戰鬥性耳聾? + 启用战斗性耳聋? + 啟用戰鬥性耳聾? Reduces the hearing ability as the player takes hearing damage @@ -203,8 +203,8 @@ Réduire l'audition lorsque le joueur prend des dommages auditifs. 音による損傷をうけ、聴覚が減る可能性があります 청력에 손상을 입으면 듣는 소리가 감소합니다. - 当玩家听力受损时降低听力能力? - 當玩家聽力受損時降低聽力能力? + 当玩家听力受损时降低听力能力? + 當玩家聽力受損時降低聽力能力? Controls combat deafness and ear ringing. When activated, players can be deafened when a gun is fired in their vicinity or an explosion takes place without hearing protection @@ -219,8 +219,8 @@ Controlla la sordità da combattimento e fischio alle orecchie. Quando attivato, i giocatori possono essere assordati quando un'arma spara vicino o avviene un'esplosione senza protezione uditiva 戦闘による難聴や、耳鳴りを設定します。有効になった場合、聴覚を保護していないと近傍の銃声や爆発音により、難聴になります。 전투 난청과 이명현상을 조작합니다. 작동시 플레이어가 화기나 폭발의 주변에 있을경우 청력보호장치가 없을때 청력손실을 입습니다. - 设定战斗性耳聋和耳鸣. 当启用后, 玩家会在有武器在旁边射击或爆炸产生时造成耳鸣效果 - 設定戰鬥性耳聾和耳鳴. 當啟用後, 玩家會在有武器在旁邊射擊或爆炸產生時造成耳鳴效果 + 设定战斗性耳聋和耳鸣. 当启用后, 玩家会在有武器在旁边射击或爆炸产生时造成耳鸣效果 + 設定戰鬥性耳聾和耳鳴. 當啟用後, 玩家會在有武器在旁邊射擊或爆炸產生時造成耳鳴效果 Effect Zeus RC @@ -234,8 +234,8 @@ Effet sur le CàD du Zeus Zeus RC への効果 Zeus RC 효과 - 启用效果在宙斯远程遥控 - 啟用效果在宙斯遠程遙控 + 启用效果在宙斯远程遥控 + 啟用效果在宙斯遠程遙控 Allow zeus remote controlled units to be able to take hearing damage. @@ -249,8 +249,8 @@ Permet aux unités controlées à distance de subir des traumatismes sonores. Zeus により遠隔操作されたユニットにも、聴覚へ損傷を受けるようにします。 Zeus가 원격으로 청력손실을 입힐 수 있게 합니다. - 设定宙斯远程遥控的单位也会受到耳鸣的效果. - 設定宙斯遠程遙控的單位也會受到耳鳴的效果. + 设定宙斯远程遥控的单位也会受到耳鸣的效果. + 設定宙斯遠程遙控的單位也會受到耳鳴的效果. Add earplugs to units @@ -264,8 +264,8 @@ Ajouter des bouchons anti-bruits aux unités ユニットへ耳栓を追加 해당 인원에게 귀마개 추가 - 增加耳塞给单位 - 增加耳塞給單位 + 增加耳塞给单位 + 增加耳塞給單位 Add the `ACE_EarPlugs` item to all units that have loud weapons. Can disable if using custom loadouts. @@ -279,8 +279,8 @@ Ajoute l'objet "Ace_EarPlugs" à toutes les unités ayant des armes bruyantes. Peut être désactivé par des loadouts personalisés. 全ユニットへ`ACE_EarPlugs`アイテムをもたせます。これは変更された武装で無効化できます。 무기를 가지고 있는 모든 인원에게 'ACE_EarPlugs'를 지급합니다. 임의의 장비를 사용시 비활성화 할 수 있습니다. - 增加`ACE_EarPlugs`物品给拥有巨大噪音武器的单位. 当你想自定装备时, 此功能可被关闭. - 增加`ACE_EarPlugs`物品給擁有巨大噪音武器的單位. 當你想自定裝備時, 此功能可被關閉. + 增加`ACE_EarPlugs`物品给拥有巨大噪音武器的单位. 当你想自定装备时, 此功能可被关闭. + 增加`ACE_EarPlugs`物品給擁有巨大噪音武器的單位. 當你想自定裝備時, 此功能可被關閉. diff --git a/addons/hellfire/stringtable.xml b/addons/hellfire/stringtable.xml index 4cca81ef929..8afbad9bd83 100644 --- a/addons/hellfire/stringtable.xml +++ b/addons/hellfire/stringtable.xml @@ -1,12 +1,12 @@ - + Set Hellfire mode Imposta modalità Hellfire ヘルファイア モードを設定 - 设定地狱火模式 - 設定地獄火模式 + 设定地狱火模式 + 設定地獄火模式 diff --git a/addons/huntir/stringtable.xml b/addons/huntir/stringtable.xml index ed1d0058da1..3bba8c02ab5 100644 --- a/addons/huntir/stringtable.xml +++ b/addons/huntir/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Caixa de transporte do HuntIR HuntIR 輸送箱 HuntIR 수송함 - 高空战术成像器运输箱 - 高空戰術成像器運輸箱 + 高空战术成像器运输箱 + 高空戰術成像器運輸箱 HuntIR Round @@ -30,8 +30,8 @@ Cartucho HuntIR HuntIR 弾頭 HuntIR 유탄 - 高空战术成像器弹药 - 高空戰術成像器彈藥 + 高空战术成像器弹药 + 高空戰術成像器彈藥 HuntIR monitor @@ -46,8 +46,8 @@ Monitor HuntIR HuntIR モニタ HuntIR 모니터 - 高空战术成像器显示面板 - 高空戰術成像器顯示面板 + 高空战术成像器显示面板 + 高空戰術成像器顯示面板 Activate HuntIR monitor @@ -62,8 +62,8 @@ Ativar monitor do HuntIR HuntIR を起動する HuntIR 모니터 켜기 - 开启高空战术成像器显示面板 - 開啟高空戰術成像器顯示面板 + 开启高空战术成像器显示面板 + 開啟高空戰術成像器顯示面板 Camera: @@ -78,8 +78,8 @@ Câmera: カメラ: 카메라: - 摄影机: - 攝影機: + 摄影机: + 攝影機: Altitude: @@ -94,8 +94,8 @@ Altitude: 高度: 고도: - 高度: - 高度: + 高度: + 高度: Recording Time: @@ -110,8 +110,8 @@ Tempo de gravação: 録画時間: 녹화시간: - 记录时间: - 記錄時間: + 记录时间: + 記錄時間: Press ESC to quit camera @@ -126,8 +126,8 @@ Pressione ESC para sair da câmera ESC を押しカメラを抜ける ESC를 눌러 카메라 나가기 - 按下ESC退出摄影机 - 按下ESC退出攝影機 + 按下ESC退出摄影机 + 按下ESC退出攝影機 Help @@ -142,8 +142,8 @@ Ajuda ヘルプ 도움말 - 帮助 - 幫助 + 帮助 + 幫助 A/D - Cycle zoom @@ -158,8 +158,8 @@ A/D - Troca zoom A/D - 倍率の変更 A/D - 줌 전환 - A/D - 切换放大倍率 - A/D - 切換放大倍率 + A/D - 切换放大倍率 + A/D - 切換放大倍率 W/S - Select camera @@ -174,8 +174,8 @@ W/S - Seleciona câmera W/S - カメラを選択 W/S - 카메라 선택 - W/S - 切换摄影机 - W/S - 切換攝影機 + W/S - 切换摄影机 + W/S - 切換攝影機 Left/Right - Rotate camera @@ -190,8 +190,8 @@ Esquerda/Direita - Rotaciona câmera Left/Right - カメラを開店 좌/우 - 카메라 돌리기 - 左/右 - 旋转摄影机 - 左/右 - 旋轉攝影機 + 左/右 - 旋转摄影机 + 左/右 - 旋轉攝影機 Up/Down - Elevate/lower camera @@ -206,8 +206,8 @@ Acima/Abaixo - Eleva/Abaixa a câmera Up/Down - カメラ角度を変更 상/하 카메라 올리기/내리기 - 上/下 - 上升/下降摄影机 - 上/下 - 上升/下降攝影機 + 上/下 - 上升/下降摄影机 + 上/下 - 上升/下降攝影機 N - Cycle IT modes @@ -222,8 +222,8 @@ N - Troca modo IT N - IT モードを変更 N - IT모드 순환 - N - 切换热显模式 - N - 切換熱顯模式 + N - 切换热显模式 + N - 切換熱顯模式 R - Reset camera @@ -238,8 +238,8 @@ R - Redefine a câmera R - カメラを初期化 R - 카메라 초기화 - R - 重置摄影机 - R - 重置攝影機 + R - 重置摄影机 + R - 重置攝影機 Esc - Exit help @@ -254,8 +254,8 @@ Esc - Sai do Ajuda Esc - ヘルプを出る Esc - 도움말 나가기 - Esc - 离开帮助 - Esc - 離開幫助 + Esc - 离开帮助 + Esc - 離開幫助 diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index 4f5222f691b..83d9b1c31f8 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Sempre mostrar cursor para interação pessoal セルフ インタラクションへ常にカーソルを表示 자기상호작용시 항상 커서를 보이기 - 自我互动时永远显示游标 - 自我互動時永遠顯示游標 + 自我互动时永远显示游标 + 自我互動時永遠顯示游標 Always display cursor for interaction @@ -30,8 +30,8 @@ Sempre mostrar cursor para interação インタラクションへ常にカーソルを表示 상호작용시 항상 커서를 보이기 - 互动时永远显示游标 - 互動時永遠顯示游標 + 互动时永远显示游标 + 互動時永遠顯示游標 Display interaction menus as lists @@ -46,8 +46,8 @@ Mostrar menu de interação como listas 表示されるインタラクション メニューを一覧表示 상호작용메뉴를 리스트화 해서 보이기 - 以列表方式显示互动表单 - 以列表方式顯示互動表單 + 以列表方式显示互动表单 + 以列表方式顯示互動表單 Interact Key @@ -62,8 +62,8 @@ Tecla de Interação インタラクション キー 상호작용 키 - 互动键 - 互動鍵 + 互动键 + 互動鍵 Self Interaction Key @@ -78,8 +78,8 @@ Tecla de Interação Pessoal セルフ インタラクション キー 자기상호작용 키 - 自我互动键 - 自我互動鍵 + 自我互动键 + 自我互動鍵 Self Actions @@ -94,8 +94,8 @@ Ações Pessoais 自分への動作 자기 동작 - 自我动作 - 自我動作 + 自我动作 + 自我動作 Vehicle Actions @@ -110,8 +110,8 @@ Ações de Veículos 車両への動作 차량 동작 - 载具动作 - 載具動作 + 载具动作 + 載具動作 Zeus Actions @@ -126,8 +126,8 @@ Azioni Zeus Zeus への動作 Zeus 동작 - 宙斯操作 - 宙斯操作 + 宙斯操作 + 宙斯操作 Interaction - Text Max @@ -142,8 +142,8 @@ Interação - Max. de Texto インタラクション - 文字の色 상호작용 - 문자색깔 - 互动 - 文字最大化 - 互動 - 文字最大化 + 互动 - 文字最大化 + 互動 - 文字最大化 Interaction - Text Min @@ -158,8 +158,8 @@ Interação - Min. de Texto インタラクション - 文字の背景色 상호작용 - 문자배경색 - 互动 - 文字最小化 - 互動 - 文字最小化 + 互动 - 文字最小化 + 互動 - 文字最小化 Interaction - Shadow Max @@ -174,8 +174,8 @@ Interação - Max. de Sombra インタラクション - 文字への影の色 상호작용 - 문자그림자색 - 互动 - 阴影最大化 - 互動 - 陰影最大化 + 互动 - 阴影最大化 + 互動 - 陰影最大化 Interaction - Shadow Min @@ -190,8 +190,8 @@ Interação - Min. de Sombra インタラクション - 文字への影の最低色 상호작용 - 문자그림자배경색 - 互动 - 阴影最小化 - 互動 - 陰影最小化 + 互动 - 阴影最小化 + 互動 - 陰影最小化 Keep cursor centered @@ -206,8 +206,8 @@ Mantieni il cursore centrato 常にカーソルを中央にする 커서를 항상 가운데에 둡니다 - 保持游标在中心点 - 保持游標在中心點 + 保持游标在中心点 + 保持游標在中心點 Keeps cursor centered and pans the option menu around. Useful if screen size is limited. @@ -222,8 +222,8 @@ Mantieni il cursore centrato e sposta il menù intorno. Utile se lo schermo è piccolo. 常にカーソルを中央へ表示させ、オプション メニューが移動します。画面の大きさが制限されている時に使いやすくなります。 커서를 항상 가운데에 두고 메뉴를 움직입니다. 화면의 크기가 제한되있을때 유용합니다. - 保持游标在中心点并平移周遭的选项选单. 这对在荧幕尺寸有限的玩家很有用! - 保持游標在中心點並平移周遭的選項選單. 這對在螢幕尺寸有限的玩家很有用! + 保持游标在中心点并平移周遭的选项选单. 这对在荧幕尺寸有限的玩家很有用! + 保持游標在中心點並平移周遭的選項選單. 這對在螢幕尺寸有限的玩家很有用! Do action when releasing menu key @@ -238,8 +238,8 @@ Esegui l'azione quando rilasci il tasto menu メニュー キーを離したときに動作を実行します。 메뉴키를 놓을때 행동하기 - 当放开选单键后就执行动作 - 當放開選單鍵後就執行動作 + 当放开选单键后就执行动作 + 當放開選單鍵後就執行動作 Interaction Text Size @@ -254,8 +254,8 @@ Dimensione del testo d'interazione インタラクション文字の大きさ 상호작용 - 문자크기 - 互动选单文字大小 - 互動選單文字大小 + 互动选单文字大小 + 互動選單文字大小 Interaction Text Shadow @@ -270,8 +270,8 @@ Ombra del testo d'interazione インタラクション文字へ影 상호작용 - 문자그림자 - 互动选单文字阴影 - 互動選單文字陰影 + 互动选单文字阴影 + 互動選單文字陰影 Allows controlling the text's shadow. Outline ignores custom shadow colors. @@ -286,8 +286,8 @@ Permette di controllare l'ombra del testo. L'impostazione "Contorno" ignora il colore dell'ombra. 文字への影を設定します。縁取りは設定された影の色を無視します。 문자의 그림자를 조절하는것을 가능케합니다. 외각선은 임의의 그림자색을 무시합니다. - 允许控制文字阴影. 轮廓部分则会忽略自定义的阴影颜色 - 允許控制文字陰影. 輪廓部分則會忽略自定義的陰影顏色 + 允许控制文字阴影. 轮廓部分则会忽略自定义的阴影颜色 + 允許控制文字陰影. 輪廓部分則會忽略自定義的陰影顏色 Outline @@ -302,8 +302,8 @@ Contorno 縁取り 외각선 - 只显示轮廓 - 只顯示輪廓 + 只显示轮廓 + 只顯示輪廓 Interaction menu background @@ -318,8 +318,8 @@ Sfondo Menù Interazioni インタラクション メニューの背景 상호작용 메뉴 배경 - 互动选单背景 - 互動選單背景 + 互动选单背景 + 互動選單背景 Blur the background while the interaction menu is open. @@ -334,8 +334,8 @@ Sfoca lo sfondo mentre il Menù Interazioni è aperto. インタラクション メニューを開いたとき、背景にボケを与えます。 상호작용 메뉴가 열릴시 배경을 흐릿하게 처리합니다. - 当互动选单开启时, 模糊背景画面 - 當互動選單開啟時, 模糊背景畫面 + 当互动选单开启时, 模糊背景画面 + 當互動選單開啟時, 模糊背景畫面 Blur screen @@ -350,8 +350,8 @@ Sfoca schermo ボケ画面 화면 흐리게 - 模糊画面 - 模糊畫面 + 模糊画面 + 模糊畫面 Black @@ -366,8 +366,8 @@ Nero ブラック 까맣게 - 黑色 - 黑色 + 黑色 + 黑色 Show actions for buildings @@ -382,8 +382,8 @@ Mostra azioni per edifici 建物へ動作を表示 건물에 행동을 취함 - 显示建筑物可用的动作 - 顯示建築物可用的動作 + 显示建筑物可用的动作 + 顯示建築物可用的動作 Adds interaction actions for opening doors and mounting ladders on buildings. (Note: There is a performance cost when opening interaction menu, especially in towns) @@ -398,8 +398,8 @@ Aggiunge azioni interattive per l'apertura delle porte e piazzamento scale su edifici. (Nota: C'è un costo in performance quando si apre il Menù Interazioni, soprattutto in città) 建物にあるドアの開閉やラダーの昇降といった動作をインタラクションへ追加します。(街などでインタラクション メニューを開くとパフォーマンスが低下します) 건물의 문을 열거나 사다리에 오르는 상호작용 행동을 추가합니다. (주의: 상호작용 메뉴를 열경우 성능하락이 있을 수 있음, 특히 마을 내부에서) - 增加互动选单的功能在可开启的门与建筑物的梯子上. (注意: 此功能有可能会降低系统效能, 特别是在城镇区更明显) - 增加互動選單的功能在可開啟的門與建築物的梯子上. (注意: 此功能有可能會降低系統效能, 特別是在城鎮區更明顯) + 增加互动选单的功能在可开启的门与建筑物的梯子上. (注意: 此功能有可能会降低系统效能, 特别是在城镇区更明显) + 增加互動選單的功能在可開啟的門與建築物的梯子上. (注意: 此功能有可能會降低系統效能, 特別是在城鎮區更明顯) Interaction Menu @@ -413,8 +413,8 @@ Menu d'interaction インタラクション メニュー 상호작용 메뉴 - 互动选单 - 互動選單 + 互动选单 + 互動選單 Interaction Animation Speed @@ -428,8 +428,8 @@ Vitesse de l'aniamtion d'interaction インタラクションのアニメーション速度 상호작용 움직임 속도 - 互动选单动画速度 - 互動選單動畫速度 + 互动选单动画速度 + 互動選單動畫速度 Makes menu animations faster and decreases the time needed to hover to show sub actions @@ -442,8 +442,8 @@ Hace la animación del menú más rápida, reduciendo el tiempo necesario para abrir sub-acciones. Rend les animations de menu plus rapide et réduit le temps nécessaire à l'affichage des sous menus d'action サブ動作が表示されるホバーをした時に、表示されるメニューのアニメーション速度を早くしたり遅くしたりできます - 使选单的动画速度更快, 并减少子选项显现出来的时间 - 使選單的動畫速度更快, 並減少子選項顯現出來的時間 + 使选单的动画速度更快, 并减少子选项显现出来的时间 + 使選單的動畫速度更快, 並減少子選項顯現出來的時間 diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml index 7c37267ab7c..1e9367347e9 100644 --- a/addons/interaction/stringtable.xml +++ b/addons/interaction/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Interaçãoes インタラクション 상호작용 - 互动 - 互動 + 互动 + 互動 Torso @@ -30,8 +30,8 @@ Torso 胴体 몸통 - 身体 - 身體 + 身体 + 身體 Head @@ -46,8 +46,8 @@ Cabeça 頭部 머리 - 头部 - 頭部 + 头部 + 頭部 Left Arm @@ -62,8 +62,8 @@ Braço Esquerdo 左腕 왼쪽 팔 - 左手 - 左手 + 左手 + 左手 Right Arm @@ -78,8 +78,8 @@ Braço Direito 右腕 오른쪽 팔 - 右手 - 右手 + 右手 + 右手 Left Leg @@ -94,8 +94,8 @@ Perna Esquerda 左足 왼쪽 다리 - 左脚 - 左腳 + 左脚 + 左腳 Right Leg @@ -110,8 +110,8 @@ Perna Direita 右足 오른쪽 다리 - 右脚 - 右腳 + 右脚 + 右腳 Weapon @@ -126,8 +126,8 @@ Arma 武器 무기 - 武器 - 武器 + 武器 + 武器 Interaction Menu @@ -142,8 +142,8 @@ Menù interazione インタラクション メニュー 상호작용 메뉴 - 互动选单 - 互動選單 + 互动选单 + 互動選單 Interaction Menu (Self) @@ -158,8 +158,8 @@ Menù interazione (individuale) インタラクション メニュー (セルフ) 상호작용 메뉴(자신) - 互动选单 (自我) - 互動選單 (自我) + 互动选单 (自我) + 互動選單 (自我) Open / Close Door @@ -174,8 +174,8 @@ Apri / Chiudi la porta ドアの開け閉め 문 열기 / 닫기 - 打开/关上 门 - 打開/關上 門 + 打开/关上 门 + 打開/關上 門 Lock Door @@ -190,8 +190,8 @@ Zamknout dveře ドアの鍵を閉める 문 잠그기 - 锁门 - 鎖門 + 锁门 + 鎖門 Unlock Door @@ -206,8 +206,8 @@ Odemknout dveře ドアの鍵を開ける 잠긴문 열기 - 解锁门 - 解鎖門 + 解锁门 + 解鎖門 Locked Door @@ -222,8 +222,8 @@ Zamčené dveře ドアの鍵を締めた 잠긴 문 - 门已上锁 - 門已上鎖 + 门已上锁 + 門已上鎖 Unlocked Door @@ -238,8 +238,8 @@ Odemčené dveře ドアの鍵を開けられた 열린 문 - 门未上锁 - 門未上鎖 + 门未上锁 + 門未上鎖 Join group @@ -254,8 +254,8 @@ Unisciti alla squadra グループにはいる 그룹 참여 - 加入小队 - 加入小隊 + 加入小队 + 加入小隊 Leave Group @@ -270,8 +270,8 @@ Lascia la squadra グループをぬける 그룹 나가기 - 离开小队 - 離開小隊 + 离开小队 + 離開小隊 Become Leader @@ -286,8 +286,8 @@ Prendi il comando リーダーになる 리더 되기 - 成为队长 - 成為隊長 + 成为队长 + 成為隊長 DANCE! @@ -302,8 +302,8 @@ DANZA! おどれ! 춤추기! - 跳舞 - 跳舞 + 跳舞 + 跳舞 Stop Dancing @@ -318,8 +318,8 @@ Smetti di ballare 踊るのをやめる 춤 멈추기 - 停止跳舞 - 停止跳舞 + 停止跳舞 + 停止跳舞 << Back @@ -334,8 +334,8 @@ << Indietro &lt;&lt; もどる <<뒤로 - <<返回 - <<返回 + <<返回 + <<返回 Put weapon on back @@ -350,8 +350,8 @@ Metti l'arma in spalla 武器を背負う 등에 무기 메기 - 将武器放到背后 - 將武器放到背後 + 将武器放到背后 + 將武器放到背後 Tap Shoulder @@ -366,8 +366,8 @@ Dai un colpetto 肩をたたく 어깨 두드리기 - 轻拍肩膀 - 輕拍肩膀 + 轻拍肩膀 + 輕拍肩膀 You were tapped on the RIGHT shoulder @@ -382,8 +382,8 @@ Ti è stato dato un colpetto sulla spalla destra 右肩を叩かれた 누군가 오른쪽 어깨를 쳤다 - 你的右肩膀被轻拍了一下 - 你的右肩膀被輕拍了一下 + 你的右肩膀被轻拍了一下 + 你的右肩膀被輕拍了一下 You were tapped on the LEFT shoulder. @@ -398,8 +398,8 @@ Ti è stato dato un colpetto sulla spalla sinistra 左肩を叩かれた 누군가 왼쪽 어깨를 쳤다 - 你的左肩膀被轻拍了一下 - 你的左肩膀被輕拍了一下 + 你的左肩膀被轻拍了一下 + 你的左肩膀被輕拍了一下 Cancel @@ -414,8 +414,8 @@ Mégse 中止 취소 - 取消 - 取消 + 取消 + 取消 Select @@ -430,8 +430,8 @@ Kiválaszt 選択 선택 - 选择 - 選擇 + 选择 + 選擇 Go Away! @@ -446,8 +446,8 @@ Via di qui! うせろ! 저리 가! - 走开! - 走開! + 走开! + 走開! Get Down! @@ -462,8 +462,8 @@ A terra! ふせろ! 엎드려! - 趴下! - 趴下! + 趴下! + 趴下! Get Out @@ -476,8 +476,8 @@ Vystupte 降りる 나가 - 出去 - 出去 + 出去 + 出去 Team Management @@ -492,8 +492,8 @@ Csapat kezelése チーム管理 팀 설정 - 小队管理 - 小隊管理 + 小队管理 + 小隊管理 Red @@ -508,8 +508,8 @@ Piros レッド 빨강 - 红色 - 紅色 + 红色 + 紅色 Green @@ -524,8 +524,8 @@ Zöld グリーン 초록 - 绿色 - 綠色 + 绿色 + 綠色 Blue @@ -540,8 +540,8 @@ Kék ブルー 파랑 - 蓝色 - 藍色 + 蓝色 + 藍色 Yellow @@ -556,8 +556,8 @@ Sárga イエロー 노랑 - 黄色 - 黃色 + 黄色 + 黃色 Assign Red @@ -572,8 +572,8 @@ Assegna al team rosso レッドにする 빨강에 등록 - 指派为红组 - 指派為紅組 + 指派为红组 + 指派為紅組 Assign Green @@ -588,8 +588,8 @@ Assegna al team verde グリーンにする 초록에 등록 - 指派为绿组 - 指派為綠組 + 指派为绿组 + 指派為綠組 Assign Blue @@ -604,8 +604,8 @@ Assegna al team blu ブルーにする 파랑이 등록 - 指派为蓝组 - 指派為藍組 + 指派为蓝组 + 指派為藍組 Assign Yellow @@ -620,8 +620,8 @@ Assegna al team giallo イエローにする 노랑에 등록 - 指派为黄组 - 指派為黃組 + 指派为黄组 + 指派為黃組 Join Red @@ -636,8 +636,8 @@ Unirsi al team rosso レッドに入る 빨강에 참여 - 加入红组 - 加入紅組 + 加入红组 + 加入紅組 Join Green @@ -652,8 +652,8 @@ Unirsi al team verde グリーンに入る 초록에 참여 - 加入绿组 - 加入綠組 + 加入绿组 + 加入綠組 Join Blue @@ -668,8 +668,8 @@ Unirsi al team blu ブルーに入る 파랑에 참여 - 加入蓝组 - 加入藍組 + 加入蓝组 + 加入藍組 Join Yellow @@ -684,8 +684,8 @@ Unirsi al team giallo イエローに入る 노랑에 참여 - 加入黄组 - 加入黃組 + 加入黄组 + 加入黃組 You joined Team %1 @@ -700,8 +700,8 @@ Csatlakoztál a %1 csapathoz チーム %1 に入った 당신은 %1팀에 참여했습니다 - 你已加入%1组 - 你已加入%1組 + 你已加入%1组 + 你已加入%1組 Leave Team @@ -716,8 +716,8 @@ Csapat elhagyása チームを抜ける 팀 나가기 - 离开小队 - 離開小隊 + 离开小队 + 離開小隊 You left the Team @@ -732,8 +732,8 @@ Elhagytad a csapatot チームを抜けた 팀을 나갔습니다 - 你已离开小队 - 你已離開小隊 + 你已离开小队 + 你已離開小隊 Pardon @@ -748,8 +748,8 @@ Megbocsátás 許す 허용 - 原谅 - 原諒 + 原谅 + 原諒 Scroll @@ -764,8 +764,8 @@ Posunout スクロール 스크롤 - 滚动 - 滾動 + 滚动 + 滾動 Modifier Key @@ -780,8 +780,8 @@ Modifikátor キーを割り当て 키 할당하기 - 编辑按键 - 編輯按鍵 + 编辑按键 + 編輯按鍵 Not in Range @@ -796,8 +796,8 @@ Fuori limite 範囲内にありません 범위 내에 없습니다 - 不在范围内 - 不在範圍內 + 不在范围内 + 不在範圍內 Equipment @@ -812,8 +812,8 @@ Equipamento 装備 장비 - 装备 - 裝備 + 装备 + 裝備 Push @@ -828,8 +828,8 @@ Spingere 押す 밀기 - - + + Interact @@ -844,8 +844,8 @@ Interagir インタラクト 상호작용 - 互动 - 互動 + 互动 + 互動 Passengers @@ -860,8 +860,8 @@ Passageiros 後部座席 승객 - 乘客 - 乘客 + 乘客 + 乘客 Open @@ -876,8 +876,8 @@ Öffnen 開く 열기 - 打开 - 打開 + 打开 + 打開 Interaction System @@ -892,8 +892,8 @@ Sistema Interazioni インタラクション システム 상호작용 시스템 - 互动系统 - 互動系統 + 互动系统 + 互動系統 Enable Team Management @@ -908,8 +908,8 @@ Abilità Management Squadra チーム管理をつかう 팀 설정 활성화 - 启用小队管理 - 啟用小隊管理 + 启用小队管理 + 啟用小隊管理 Should players be allowed to use the Team Management Menu? Default: Yes @@ -924,8 +924,8 @@ Possono i giocatori usare il Menù Managment Squadra? Default: Si プレイヤーがチーム管理メニューを使えるようにしますか?標準:はい 플레이어들이 팀 설정하는 것을 허락합니까? 기본설정: 예 - 允许玩家使用小队管理选单? 预设: 是 - 允許玩家使用小隊管理選單? 預設: 是 + 允许玩家使用小队管理选单? 预设: 是 + 允許玩家使用小隊管理選單? 預設: 是 Team management allows color allocation for team members, taking team command and joining/leaving teams. @@ -940,8 +940,8 @@ Management Squadra permette l'assegnazione di colori per membri della squadra, prendere il comando ed entrare/uscire dalle squadre. チーム管理はチーム メンバーへ色の割り当てや指揮権を取ったり、チームの出入りを許可します。 팀 설정은 팀 멤버에게 색을 부여하거나 팀에 참여 혹은 나가게 할 수 있게 합니다. - 队伍管理系统允许将指定颜色分配到队伍成员上, 接管队长职位或加入/离开队伍. - 隊伍管理系統允許將指定顏色分配到隊伍成員上, 接管隊長職位或加入/離開隊伍. + 队伍管理系统允许将指定颜色分配到队伍成员上, 接管队长职位或加入/离开队伍. + 隊伍管理系統允許將指定顏色分配到隊伍成員上, 接管隊長職位或加入/離開隊伍. Turn on @@ -955,8 +955,8 @@ Включить 中に入る 켜기 - 开启 - 開啟 + 开启 + 開啟 Turn off @@ -970,8 +970,8 @@ Выключить 外に出す 끄기 - 关闭 - 關閉 + 关闭 + 關閉 Pass magazine @@ -985,8 +985,8 @@ Passer un chargeur 弾倉をわたす 탄창 건네기 - 给予弹匣 - 給予彈匣 + 给予弹匣 + 給予彈匣 Primary magazine @@ -1000,8 +1000,8 @@ Chargeur de l'arme principale プライマリ用弾倉 주무기 탄창 - 给予主武器弹匣 - 給予主武器彈匣 + 给予主武器弹匣 + 給予主武器彈匣 Pistol magazine @@ -1015,8 +1015,8 @@ Chargeur de pistolet 拳銃の弾倉 부무기 탄창 - 给予手枪弹匣 - 給予手槍彈匣 + 给予手枪弹匣 + 給予手槍彈匣 %1 passed you a %2 magazine. @@ -1030,8 +1030,8 @@ %1 vous a passé un chargeur de %2. %1 はあなたに %2 弾倉をわたした %1에게서 %2탄창을 받았다 - %1给你%2弹匣 - %1給你%2彈匣 + %1给你%2弹匣 + %1給你%2彈匣 Show "pass magazine" interaction @@ -1045,8 +1045,8 @@ Montrer l'interaction "Passer un chargeur" "弾倉をわたす"をインタラクションに表示する '탄창 건네기'를 상호작용에서 보여줌 - 显示"给予弹匣"互动动作 - 顯示"給予彈匣"互動動作 + 显示"给予弹匣"互动动作 + 顯示"給予彈匣"互動動作 diff --git a/addons/inventory/stringtable.xml b/addons/inventory/stringtable.xml index 4cf5a2e2e03..6009a3e479a 100644 --- a/addons/inventory/stringtable.xml +++ b/addons/inventory/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Aumentar o Tamanho da Tela do Inventário インベントリ表示を大きくする 소지품 화면을 더 크게 합니다 - 使物品显示清单更大 - 使物品顯示清單更大 + 使物品显示清单更大 + 使物品顯示清單更大 Normally inventory display is scaled by UI size. This allows scaling the Inventory UI size up, but doesn't increase font size allowing more rows displayed. @@ -30,8 +30,8 @@ Normalmente o tamanho da tela do inventário é ditada pelo tamanho da UI. Isso permite aumentar o tamanho da tela de inventário, mas não aumenta o tamanho da fonte, permitindo que mais linhas sejam visualizadas. 通常のインベントリは UI の大きさによって表示されます。これはインベントリ UI を大きくできますが、文字は大きくできません。 보통 소지품 화면은 사용자 인터페이스 크기에 비례합니다. 이 항목은 소지품의 사용자 인터페이스를 확대를 가능케하면서 글씨는 그대로 냅두게 해줍니다. - 一般来说, 物品清单尺寸是由使用者介面来决定的. 此选项能让你的物品显示清单更大但不会增加字体大小, 此举可增加更多能被显示的描述行数! - 一般來說, 物品清單尺寸是由使用者介面來決定的. 此選項能讓你的物品顯示清單更大但不會增加字體大小, 此舉可增加更多能被顯示的描述行數! + 一般来说, 物品清单尺寸是由使用者介面来决定的. 此选项能让你的物品显示清单更大但不会增加字体大小, 此举可增加更多能被显示的描述行数! + 一般來說, 物品清單尺寸是由使用者介面來決定的. 此選項能讓你的物品顯示清單更大但不會增加字體大小, 此舉可增加更多能被顯示的描述行數! Backpacks @@ -45,8 +45,8 @@ Рюкзаки バックパック 가방 - 背包 - 背包 + 背包 + 背包 Headgear @@ -60,8 +60,8 @@ Головные уборы ヘッドギア 헬멧 - 头盔 - 頭盔 + 头盔 + 頭盔 Glasses @@ -75,8 +75,8 @@ Очки メガネ 안경 - 眼镜 - 眼鏡 + 眼镜 + 眼鏡 Uniforms @@ -90,8 +90,8 @@ Униформа 戦闘服 복장 - 服装 - 服裝 + 服装 + 服裝 Vests @@ -105,8 +105,8 @@ Жилеты ベスト 조끼 - 背心 - 背心 + 背心 + 背心 Grenades @@ -120,8 +120,8 @@ Гранаты 手榴弾 수류탄 - 手榴弹 - 手榴彈 + 手榴弹 + 手榴彈 Medical @@ -135,8 +135,8 @@ Медицина 医療 의료 - 医疗 - 醫療 + 医疗 + 醫療 diff --git a/addons/javelin/stringtable.xml b/addons/javelin/stringtable.xml index ec308052a62..96dc8d33eee 100644 --- a/addons/javelin/stringtable.xml +++ b/addons/javelin/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Travar Alvo(Segurar) 目標を捕捉 (押しっぱ) 표적 획득 (누르기) - 锁定目标 (按住) - 鎖定目標 (按住) + 锁定目标 (按住) + 鎖定目標 (按住) diff --git a/addons/kestrel4500/stringtable.xml b/addons/kestrel4500/stringtable.xml index 3658d367e01..bb65f221912 100644 --- a/addons/kestrel4500/stringtable.xml +++ b/addons/kestrel4500/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Kestrel 4500NV Kestrel 4500NV Kestrel 4500NV - 猎隼4500测风仪 - 獵隼4500測風儀 + 猎隼4500测风仪 + 獵隼4500測風儀 Kestrel 4500 Pocket Weather Tracker @@ -30,8 +30,8 @@ Příruční meteostanice Kestrel 4500 Kestrel 4500 携帯型風速計 Kestrel 4500 휴대형 기상 관측기 - 猎隼4500掌上型天气追踪仪 - 獵隼4500掌上型天氣追蹤儀 + 猎隼4500掌上型天气追踪仪 + 獵隼4500掌上型天氣追蹤儀 Open Kestrel 4500 @@ -46,8 +46,8 @@ Otevřít Kestrel 4500 Kestrel 4500 を開く Kestrel 4500 열기 - 开启猎隼4500测风仪 - 開啟獵隼4500測風儀 + 开启猎隼4500测风仪 + 開啟獵隼4500測風儀 Show Kestrel 4500 @@ -62,8 +62,8 @@ Mostrar Kestrel 4500 Kestrel 4500 を見る Kestrel 4500 보이기 - 显示猎隼4500测风仪 - 顯示獵隼4500測風儀 + 显示猎隼4500测风仪 + 顯示獵隼4500測風儀 Hide Kestrel 4500 @@ -78,8 +78,8 @@ Ocultar Kestrel 4500 Kestrel 4500 を隠す Kestrel 4500 숨기기 - 隐藏猎隼4500测风仪 - 隱藏獵隼4500測風儀 + 隐藏猎隼4500测风仪 + 隱藏獵隼4500測風儀 Open Kestrel 4500 @@ -94,8 +94,8 @@ Abrir Kestrel 4500 Kestrel 4500 を開く Kestrel 4500 열기 - 开启猎隼4500测风仪 - 開啟獵隼4500測風儀 + 开启猎隼4500测风仪 + 開啟獵隼4500測風儀 Show Kestrel 4500 @@ -110,8 +110,8 @@ Mostrar Kestrel 4500 Kestrel 4500 を見る Kestrel 4500 숨기기 - 显示猎隼4500测风仪 - 顯示獵隼4500測風儀 + 显示猎隼4500测风仪 + 顯示獵隼4500測風儀 diff --git a/addons/laser/stringtable.xml b/addons/laser/stringtable.xml index 191efc75599..aa09f5de0e5 100644 --- a/addons/laser/stringtable.xml +++ b/addons/laser/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -9,8 +9,8 @@ Wskaźnik poziomu rozproszenia wiązki lasera Compte de la simulation de la dispersion du laser Contatore Simulazione Dispersione Laser - 雷射散射模拟计算 - 雷射散射模擬計算 + 雷射散射模拟计算 + 雷射散射模擬計算 Laser Code @@ -25,8 +25,8 @@ Codice laser レーザ コード 레이저 코드 - 雷射码 - 雷射碼 + 雷射码 + 雷射碼 Laser - Cycle Code Up @@ -41,8 +41,8 @@ Codice laser + レーザ - コードの数値を増やす 레이저 - 코드 순환 위 - 雷射 - 循环切换雷射码 上 - 雷射 - 循環切換雷射碼 上 + 雷射 - 循环切换雷射码 上 + 雷射 - 循環切換雷射碼 上 Laser - Cycle Code Down @@ -57,8 +57,8 @@ Codice laser - レーザ - コードの数値を減らす 레이저 - 코드 순환 아래 - 雷射 - 循环切换雷射码 下 - 雷射 - 循環切換雷射碼 下 + 雷射 - 循环切换雷射码 下 + 雷射 - 循環切換雷射碼 下 diff --git a/addons/laserpointer/stringtable.xml b/addons/laserpointer/stringtable.xml index 33706433014..88228dc289f 100644 --- a/addons/laserpointer/stringtable.xml +++ b/addons/laserpointer/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Laser (vermelho) レーザ ポインタ (赤) 레이저 지시기 (빨강) - 雷射指示器 (红色) - 雷射指示器 (紅色) + 雷射指示器 (红色) + 雷射指示器 (紅色) Laser Pointer (green) @@ -30,8 +30,8 @@ Laser (verde) レーザ ポインタ (緑) 레이저 지시기 (초록) - 雷射指示器 (绿色) - 雷射指示器 (綠色) + 雷射指示器 (绿色) + 雷射指示器 (綠色) Emits visible light. @@ -46,8 +46,8 @@ Emite luz visível. 可視光をだします。 밝은 곳에서도 보임 - 发射出可见光 - 發射出可見光 + 发射出可见光 + 發射出可見光 <t color='#9cf953'>Use: </t>Turn Laser ON/OFF @@ -62,8 +62,8 @@ <t color='#9cf953'>Használat: </t>Lézer BE/KI kapcsolása <t color='#9cf953'>つかう: </t>レーザの起動/停止 <t color='#9cf953'>사용키: </t>레이저 켜기/끄기 - <t color='#9cf953'>使用: </t>雷射开启/关闭 - <t color='#9cf953'>使用: </t>雷射開啟/關閉 + <t color='#9cf953'>使用: </t>雷射开启/关闭 + <t color='#9cf953'>使用: </t>雷射開啟/關閉 Laser @@ -78,8 +78,8 @@ Laser レーザ 레이저 - 雷射 - 雷射 + 雷射 + 雷射 IR Laser @@ -94,8 +94,8 @@ Laser IV 赤外線レーザ 적외선 레이저 - 红外线雷射 - 紅外線雷射 + 红外线雷射 + 紅外線雷射 Switch Laser / IR Laser @@ -110,8 +110,8 @@ Alternar entre Laser / Laser IV レーザ/赤外線レーザを切り替える 레이저 / 적외선 레이저 전환 - 切换雷射/红外线雷射 - 切換雷射/紅外線雷射 + 切换雷射/红外线雷射 + 切換雷射/紅外線雷射 diff --git a/addons/logistics_uavbattery/stringtable.xml b/addons/logistics_uavbattery/stringtable.xml index 1e190161601..97c709d8ddd 100644 --- a/addons/logistics_uavbattery/stringtable.xml +++ b/addons/logistics_uavbattery/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ БПЛА полностью заряжен ドローンは充電完了 드론 충전완료 - 无人载具电池已充满 - 無人載具電池已充滿 + 无人载具电池已充满 + 無人載具電池已充滿 You need a UAV Battery @@ -30,8 +30,8 @@ Требуется аккумулятор для БПЛА UAV バッテリが必要です UAV 배터리가 필요합니다 - 你需要一个无人载具电池 - 你需要一個無人載具電池 + 你需要一个无人载具电池 + 你需要一個無人載具電池 Recharge @@ -46,8 +46,8 @@ Зарядить 充電 재충전 - 充电 - 充電 + 充电 + 充電 UAV Battery @@ -62,8 +62,8 @@ Аккумулятор БПЛА UAV バッテリ UAV 배터리 - 无人载具电池 - 無人載具電池 + 无人载具电池 + 無人載具電池 Used to refuel Carried UAV's @@ -78,8 +78,8 @@ Используется для зарядки переносных БПЛА 運んでいる UAV を充電に使う UAV를 재충전 할때 씁니다. - 对可携式无人载具进行充电 - 對可攜式無人載具進行充電 + 对可携式无人载具进行充电 + 對可攜式無人載具進行充電 Recharging... @@ -93,8 +93,8 @@ In ricarica... Заряжается... 充電中 - 充电中... - 充電中... + 充电中... + 充電中... diff --git a/addons/logistics_wirecutter/stringtable.xml b/addons/logistics_wirecutter/stringtable.xml index bd7f9edc81e..53c5e21b146 100644 --- a/addons/logistics_wirecutter/stringtable.xml +++ b/addons/logistics_wirecutter/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Cortador de Arame ワイヤーカッター 절단기 - 剪铁丝网钳 - 剪鐵絲網鉗 + 剪铁丝网钳 + 剪鐵絲網鉗 Wirecutter @@ -30,8 +30,8 @@ Cortador de Arame ワイヤーカッター 절단기 - 剪铁丝网钳 - 剪鐵絲網鉗 + 剪铁丝网钳 + 剪鐵絲網鉗 Cut Fence @@ -46,8 +46,8 @@ Разрезать забор フェンスを切断する 철조망 자르기 - 剪断护栏 - 剪斷護欄 + 剪断护栏 + 剪斷護欄 Cutting Fences / Wires... @@ -62,8 +62,8 @@ Разрезаем забор / провода... フェンス/ワイヤを切断中・・・ 철망/철조망 자르는중... - 剪断护栏/刺网中... - 剪斷護欄/刺網中... + 剪断护栏/刺网中... + 剪斷護欄/刺網中... Fence cut @@ -78,8 +78,8 @@ Забор разрезан フェンスを切断した 절단됨 - 护栏已被剪断 - 護欄已被剪斷 + 护栏已被剪断 + 護欄已被剪斷 diff --git a/addons/magazinerepack/stringtable.xml b/addons/magazinerepack/stringtable.xml index 14d65eacac8..f82280961ed 100644 --- a/addons/magazinerepack/stringtable.xml +++ b/addons/magazinerepack/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Перепаковать магазины 弾倉を詰め替え 탄창 다시 채우기 - 重新整理弹匣 - 重新整理彈匣 + 重新整理弹匣 + 重新整理彈匣 Select Magazine Menu @@ -30,8 +30,8 @@ Меню выбора магазинов 弾倉メニューから選ぶ 탄창 메뉴 고르기 - 选择弹匣清单 - 選擇彈匣清單 + 选择弹匣清单 + 選擇彈匣清單 Select Mag @@ -46,8 +46,8 @@ Выбрать магазин 弾倉を選択 탄창 고르기 - 选择弹匣 - 選擇彈匣 + 选择弹匣 + 選擇彈匣 Repacking Magazines... @@ -62,8 +62,8 @@ Перепаковка магазинов... 弾倉を詰め替え中・・・ 다시 채우는중... - 重新整理弹匣中 ... - 重新整理彈匣中 ... + 重新整理弹匣中 ... + 重新整理彈匣中 ... Repacked Magazines @@ -78,8 +78,8 @@ Магазины перепакованы 弾倉の詰め替えが終わった 탄창 채워짐 - 弹匣已重新整理 - 彈匣已重新整理 + 弹匣已重新整理 + 彈匣已重新整理 %1 full mag(s) and %2 extra round(s) @@ -94,8 +94,8 @@ %1 полных магазина(ов) и %2 патрона(ов) %1 個の満杯な弾倉と入りきらなかった %2 個の弾倉 %1개의 꽉찬 탄창과 %2발의 총알이 남았다 - %1个满的弹匣与%2发额外子弹 - %1個滿的彈匣與%2發額外子彈 + %1个满的弹匣与%2发额外子弹 + %1個滿的彈匣與%2發額外子彈 Repacking Finished @@ -110,8 +110,8 @@ Reorganização Terminada 詰め替えが完了 탄창 채우기 끝남 - 重整完成 - 重整完成 + 重整完成 + 重整完成 Repacking Interrupted @@ -126,8 +126,8 @@ Reorganização Interrompida 詰め替えを中断した 탄창 채우기 방해받음 - 重整被中断 - 重整被中斷 + 重整被中断 + 重整被中斷 %1 Full and %2 Partial @@ -142,8 +142,8 @@ %1 Total e %2 Parcial %1 個の満杯で、 %2 の余分数 %1 꽉찼고 %2 부분참 - %1个满的与%2个部分的 - %1個滿的與%2個部分的 + %1个满的与%2个部分的 + %1個滿的與%2個部分的 diff --git a/addons/main/stringtable.xml b/addons/main/stringtable.xml index 93b4df27008..d312264cf62 100644 --- a/addons/main/stringtable.xml +++ b/addons/main/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -12,8 +12,8 @@ Logistica ACE ACE Logistique ACE ロジスティクス - ACE 后勤 - ACE 後勤 + ACE 后勤 + ACE 後勤 http://ace3mod.com/ @@ -27,8 +27,8 @@ http://ace3mod.com/ http://ace3mod.com/ http://ace3mod.com/ - http://ace3mod.com/ - http://ace3mod.com/ + http://ace3mod.com/ + http://ace3mod.com/ diff --git a/addons/map/stringtable.xml b/addons/map/stringtable.xml index 47cccfde829..9108f088bf4 100644 --- a/addons/map/stringtable.xml +++ b/addons/map/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Mappa 地図 지도 - 地图 - 地圖 + 地图 + 地圖 Map illumination? @@ -30,8 +30,8 @@ Illuminazione Mappa? 地図に照明? 지도에 조명? - 地图照明? - 地圖照明? + 地图照明? + 地圖照明? Simulate map lighting based on ambient lighting and player's items? @@ -45,8 +45,8 @@ Simula illuminazione della mappa in base alla luce ambientale e agli oggetti del giocatore? 環境光やプレイヤーのアイテムにより、地図へ光のシミュレーションをおこないますか? 주변 환경및 플레이어 조명에 의한 빛 변화를 지도에 반영할까요? - 透过环境光与玩家的物品来决定地图亮度? - 透過環境光與玩家的物品來決定地圖亮度? + 透过环境光与玩家的物品来决定地图亮度? + 透過環境光與玩家的物品來決定地圖亮度? Map flashlight glow? @@ -60,8 +60,8 @@ Lumière de la lampe de carte ? 地図をフラッシュライトで照らしますか? 지도 조명이 빛이 납니까? - 增加地图亮度? - 增加地圖亮度? + 增加地图亮度? + 增加地圖亮度? Add external glow to players who use flashlight on map? @@ -75,8 +75,8 @@ Aggiungi luce esterna a giocatori che usano la torcia in mappa? プレイヤが地図上でフラッシュライトを使うと、照らすようにしますか? 지도에 불빛을 비치는 플레이어를 조금 더 밝게 합니까? - 当玩家拥有手电筒时, 增加地图亮度? - 當玩家擁有手電筒時, 增加地圖亮度? + 当玩家拥有手电筒时, 增加地图亮度? + 當玩家擁有手電筒時, 增加地圖亮度? Map shake? @@ -91,8 +91,8 @@ Scuoti la mappa? 地図を揺らしますか? 지도 흔들림? - 地图震动? - 地圖震動? + 地图震动? + 地圖震動? Make map shake when walking? @@ -107,8 +107,8 @@ Far scuotere la mappa mentre cammini? 歩いているときは地図を揺らしますか? 걸을때 지도보면 흔들리게 합니까? - 走路时让地图有震动的感觉? - 走路時讓地圖有震動的感覺? + 走路时让地图有震动的感觉? + 走路時讓地圖有震動的感覺? Limit map zoom? @@ -123,8 +123,8 @@ Limita lo zoom in mappa? 地図の拡大を制限しますか? 지도 확대 제한? - 限制地图缩放倍率? - 限制地圖縮放倍率? + 限制地图缩放倍率? + 限制地圖縮放倍率? Limit the amount of zoom available for the map? @@ -139,8 +139,8 @@ Limita l'ammontare di zoom disponibile per la mappa? 地図上で利用できる拡大倍率を制限しますか? 지도 확대에 제한을 둡니까? - 限制地图上可允许缩放的倍率? - 限制地圖上可允許縮放的倍率? + 限制地图上可允许缩放的倍率? + 限制地圖上可允許縮放的倍率? Show cursor coordinates? @@ -155,8 +155,8 @@ Mostra coordinate sul cursore? カーソル先で座標を表示しますか? 커서에 좌표를 보이게 합니까? - 显示游标的座标? - 顯示游標的座標? + 显示游标的座标? + 顯示游標的座標? Show the grid coordinates on the mouse pointer? @@ -171,8 +171,8 @@ Mostra la griglia coordinate sul cursore mouse? カーソルに合わせた先の地図座標を表示しますか? 지도에서 커서 옆에 좌표가 뜨게 합니까? - 显示滑鼠游标所在的网格座标? - 顯示滑鼠游標所在的網格座標? + 显示滑鼠游标所在的网格座标? + 顯示滑鼠游標所在的網格座標? This module allows you to customize the map screen. @@ -187,8 +187,8 @@ Questo modulo ti permette di customizzare lo schermo della mappa. モジュールは地図画面をカスタマイズできます。 이 모듈은 지도 화면을 임의로 설정할 수 있게 해줍니다. - 此模块允许自定地图的相关效果. - 此模塊允許自定地圖的相關效果. + 此模块允许自定地图的相关效果. + 此模塊允許自定地圖的相關效果. Blue Force Tracking @@ -203,8 +203,8 @@ Blue Force Tracking ブルー フォース トラッキング GPS피아식별기 - 显示蓝方踪迹 - 顯示藍方蹤跡 + 显示蓝方踪迹 + 顯示藍方蹤跡 BFT Enable @@ -219,8 +219,8 @@ Abilita BFT BFT を有効化 GPS피아식별기 켜기 - 蓝方踪迹启用 - 藍方蹤跡啟用 + 蓝方踪迹启用 + 藍方蹤跡啟用 Enable Blue Force Tracking. Default: No @@ -235,8 +235,8 @@ Abilita Blue Force Tracking. Default: No ブルー フォース トラッキングを有効化します。標準:無効 GPS피아식별기 켭니다. 기본설정: 아니요 - 启用显示蓝方踪迹. 预设: 否 - 啟用顯示藍方蹤跡. 預設: 否 + 启用显示蓝方踪迹. 预设: 否 + 啟用顯示藍方蹤跡. 預設: 否 Interval @@ -251,8 +251,8 @@ Intervallo 間隔 간격 - 间隔 - 間隔 + 间隔 + 間隔 How often the markers should be refreshed (in seconds) @@ -267,8 +267,8 @@ Quanto spesso vengono aggiornati i marker (in secondi) マーカが再描画される間隔を設定できます(秒) 몇 초마다 마커를 새로 갱신합니까? - 设定每多少时间重新标示出单位位置 (秒) - 設定每多少時間重新標示出單位位置 (秒) + 设定每多少时间重新标示出单位位置 (秒) + 設定每多少時間重新標示出單位位置 (秒) Hide AI groups? @@ -283,8 +283,8 @@ Nascondere gruppi IA? AI グループを非表示にしますか? 인공지능 그룹을 숨깁니까? - 隐藏AI小队? - 隱藏AI小隊? + 隐藏AI小队? + 隱藏AI小隊? Hide markers for 'AI only' groups? @@ -299,8 +299,8 @@ Nascondi markers per gruppi di sole IA? 'AI のみ'グループのマーカを隠しますか? 인공지능만 있는 그룹의 마커를 숨깁니까? - 隐藏'AI小队'的踪迹? - 隱藏'AI小隊'的蹤跡? + 隐藏'AI小队'的踪迹? + 隱藏'AI小隊'的蹤跡? Show player names? @@ -315,8 +315,8 @@ Mostra i nomi dei giocatori? プレイヤ名を表示しますか? 플레이어 이름을 표시합니까? - 显示玩家名称? - 顯示玩家名稱? + 显示玩家名称? + 顯示玩家名稱? Show individual player names? @@ -331,8 +331,8 @@ Mostra i nomi dei giocatori singoli? プレイヤの名前を表示しますか? 각 플레이어의 이름을 표시합니까? - 显示玩家的个别名称? - 顯示玩家的個別名稱? + 显示玩家的个别名称? + 顯示玩家的個別名稱? This module allows the tracking of allied units with BFT map markers. @@ -347,8 +347,8 @@ Questo modulo permette il tracciamento di unità alleate con i marker BFT in mappa モジュールは BFT マップ マーカとともに、同勢力ユニットの追跡を許可します。 이 모듈은 아군을 지도상에서 추적할 수 있게 해줍니다. - 此模块将使你能在地图上看见友方单位的踪迹. - 此模塊將使你能在地圖上看見友方單位的蹤跡. + 此模块将使你能在地图上看见友方单位的踪迹. + 此模塊將使你能在地圖上看見友方單位的蹤跡. Flashlights @@ -362,8 +362,8 @@ Torcia フラッシュライト 손전등 - 手电筒 - 手電筒 + 手电筒 + 手電筒 NVG @@ -377,8 +377,8 @@ NVG 夜間暗視装置 야투경 - 夜视镜 - 夜視鏡 + 夜视镜 + 夜視鏡 On @@ -392,8 +392,8 @@ Acceso 起動 켜기 - 开启 - 開啟 + 开启 + 開啟 Off @@ -407,8 +407,8 @@ Spento 停止 끄기 - 关闭 - 關閉 + 关闭 + 關閉 Increase Brightness @@ -422,8 +422,8 @@ Aumenta Luminosità 感度を上げる 밝기 올리기 - 增加亮度 - 增加亮度 + 增加亮度 + 增加亮度 Decrease Brightness @@ -437,8 +437,8 @@ Diminuisci Luminosità 感度を下げる 밝기 내리기 - 降低亮度 - 降低亮度 + 降低亮度 + 降低亮度 Turn On %1 @@ -453,8 +453,8 @@ Активировать %1 %1 を点ける %1 켜기 - 开启%1 - 開啟%1 + 开启%1 + 開啟%1 Turn Off %1 @@ -469,8 +469,8 @@ Деактивировать %1 %1 を消す %1 끄기 - 关闭%1 - 關閉%1 + 关闭%1 + 關閉%1 Set Channel At Start @@ -484,8 +484,8 @@ Mettre un canal par défaut 開始時のチャンネルを決定 시작시 채널 - 设定游戏开始时的聊天频道 - 設定遊戲開始時的聊天頻道 + 设定游戏开始时的聊天频道 + 設定遊戲開始時的聊天頻道 Change the starting marker channel at mission start @@ -499,8 +499,8 @@ Change le canal de communication par défaut au début de la mission. ミッション開始時にあらかじめ設定されているマーカ チャンネルを変更します 미션시작시 마커채널을 변경합니다 - 更改任务启动时的聊天频道 - 更改任務啟動時的聊天頻道 + 更改任务启动时的聊天频道 + 更改任務啟動時的聊天頻道 Disable BFT @@ -510,8 +510,8 @@ Wyłącz BFT Désactive le BFT Disablita BFT - 关闭友军踪迹 - 關閉友軍蹤跡 + 关闭友军踪迹 + 關閉友軍蹤跡 Always disable Blue Force Tracking for this group. @@ -521,8 +521,8 @@ Zawsze wyłączaj Blue Force Tracking dla tej grupy. Désactive en permanence le Blue Force Tracking pour ce groupe. Disabilita sempre il Blue Force Tracking per questo gruppo. - 对此小队永远关闭友军踪迹显示. - 對此小隊永遠關閉友軍蹤跡顯示. + 对此小队永远关闭友军踪迹显示. + 對此小隊永遠關閉友軍蹤跡顯示. diff --git a/addons/map_gestures/stringtable.xml b/addons/map_gestures/stringtable.xml index 6c3687c2dd2..feebdb7a084 100644 --- a/addons/map_gestures/stringtable.xml +++ b/addons/map_gestures/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,8 +13,8 @@ Gestes de carte マップ ジェスチャ 지도 신호 - 地图指示器 - 地圖指示器 + 地图指示器 + 地圖指示器 Enabled @@ -28,8 +28,8 @@ Activer 有効化 켜기 - 启用 - 啟用 + 启用 + 啟用 Map Gesture Max Range @@ -43,8 +43,8 @@ Distance max. des gestes de carte マップ ジェスチャの最大範囲 지도 신호 최대 거리 - 地图指示器最大范围 - 地圖指示器最大範圍 + 地图指示器最大范围 + 地圖指示器最大範圍 Max range between players to show the map gesture indicator [default: 7 meters] @@ -58,8 +58,8 @@ Distance max. entre les joueurs pour montrer le pointage sur carte. (Défaut : 7m) プレイヤのマップ ジェスチャによる表示範囲を設定します [標準:7 メートル] 플레이어간에 지도 신호 표시거리를 설정합니다. [기본: 7 미터] - 设定地图指示器显示的最大范围距离 [预设: 7公尺] - 設定地圖指示器顯示的最大範圍距離 [預設: 7公尺] + 设定地图指示器显示的最大范围距离 [预设: 7公尺] + 設定地圖指示器顯示的最大範圍距離 [預設: 7公尺] Lead Default Color @@ -73,8 +73,8 @@ Couleur principale de commandement. リーダー用標準の色 리더 기본 색상 - 队长预设颜色 - 隊長預設顏色 + 队长预设颜色 + 隊長預設顏色 Fallback Color value for group leaders when there is no group setting. [Module: leave blank to not force on clients] @@ -87,8 +87,8 @@ Couleur par défaut pour les chefs de groupe quand il n'y a pas de réglage pour le groupe. (Module : laisser vide pour ne pas forcer chez les clients) グループ設定が存在しない場合に、グループ リーダーへ設定される色の値を設定します。[モジュール:空の場合はクライアントへ強制しません] 그룹 설정이 없는 경우 리더의 예비 색상 값입니다. [모듈: 클라이언트에서 강체치 않기 위해 공백으로 비워둘것] - 当没有设定小队颜色时, 此功能会定义队长的指示器颜色. [模块: 此栏留空来保持预设颜色] - 當沒有設定小隊顏色時, 此功能會定義隊長的指示器顏色. [模塊: 此欄留空來保持預設顏色] + 当没有设定小队颜色时, 此功能会定义队长的指示器颜色. [模块: 此栏留空来保持预设颜色] + 當沒有設定小隊顏色時, 此功能會定義隊長的指示器顏色. [模塊: 此欄留空來保持預設顏色] Default Color @@ -102,8 +102,8 @@ Couleur par défaut 標準色 기본 색상 - 预设颜色 - 預設顏色 + 预设颜色 + 預設顏色 Fallback Color value when there is no group setting. [Module: leave blank to not force on clients] @@ -116,8 +116,8 @@ 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) グループ設定が存在しない場合に、グループ リーダーへ設定される色の値を設定します。[モジュール:空の場合はクライアントへ強制しません] 그룹 설정이 없을 경우의 예비 색상입니다. [모듈: 클라이언트에서 강체치 않기 위해 공백으로 비워둘것] - 当没有设定小队颜色时, 此功能会定义玩家的指示器颜色. [模块: 此栏留空来保持预设颜色] - 當沒有設定小隊顏色時, 此功能會定義玩家的指示器顏色. [模塊: 此欄留空來保持預設顏色] + 当没有设定小队颜色时, 此功能会定义玩家的指示器颜色. [模块: 此栏留空来保持预设颜色] + 當沒有設定小隊顏色時, 此功能會定義玩家的指示器顏色. [模塊: 此欄留空來保持預設顏色] Lead Color @@ -131,8 +131,8 @@ Couleur de commandement リーダー用の色 리더 색상 - 队长颜色 - 隊長顏色 + 队长颜色 + 隊長顏色 Color value for group leaders of groups synced with this module. @@ -145,8 +145,8 @@ Couleur pour les chefs de groupe des groupes synchronisés avec le module. モジュールで同期されたグループのリーダー用に色の値を決定します。 그룹이 이 모듈에 동기화 됐을때의 리더 색상입니다. - 改变与此同步小队队长的指示器颜色. - 改變與此同步小隊隊長的指示器顏色. + 改变与此同步小队队长的指示器颜色. + 改變與此同步小隊隊長的指示器顏色. Color @@ -160,8 +160,8 @@ Couleur 색상 - 颜色 - 顏色 + 颜色 + 顏色 Color value for group members of groups synced with this module. @@ -174,8 +174,8 @@ Couleur pour les membres du groupe synchronisé avec ce module. モジュールで同期されたグループのメンバ用に色の値を決定します。 그룹이 이 모듈에 동기화 됐을때의 멤버 색상입니다. - 改变与此同步小队队员的指示器颜色 - 改變與此同步小隊隊員的指示器顏色 + 改变与此同步小队队员的指示器颜色 + 改變與此同步小隊隊員的指示器顏色 Map Gestures - Group Settings @@ -189,8 +189,8 @@ Gestes de carte - réglages de groupe マップ ジェスチャ - グループ設定 지도 신호 - 그룹 설정 - 地图指示器 - 队伍设定 - 地圖指示器 - 隊伍設定 + 地图指示器 - 队伍设定 + 地圖指示器 - 隊伍設定 Update Interval @@ -204,8 +204,8 @@ Intervalle de mise à jour 更新間隔 갱신 간격 - 更新间隔 - 更新間隔 + 更新间隔 + 更新間隔 Time between data updates. @@ -219,8 +219,8 @@ Temps entre les actualisations de données データの更新間隔 데이터 갱신 간격 - 定义每次更新数据的时间. - 定義每次更新數據的時間. + 定义每次更新数据的时间. + 定義每次更新數據的時間. Enables the Map Gestures. @@ -234,8 +234,8 @@ Activer les gestes de carte マップ ジェスチャを有効化 지도 신호 활성화 - 启用地图指示器 - 啟用地圖指示器 + 启用地图指示器 + 啟用地圖指示器 Name Text Color @@ -249,8 +249,8 @@ Couleur du texte du nom 名前への色 글 색상 명칭 - 名称文字颜色 - 名稱文字顏色 + 名称文字颜色 + 名稱文字顏色 Color of the name tag text besides the map gestures mark. @@ -263,8 +263,8 @@ Couleur des tags de nom à côté de marqueur de pointage sur carte. マップ ジェスチャに表示される、名前の色を決定します。 지도 색상에 표시되는 이름의 색상을 결정합니다. - 定义名称文字颜色. 使其与地图指示器颜色有所区别. - 定義名稱文字顏色. 使其與地圖指示器顏色有所區別. + 定义名称文字颜色. 使其与地图指示器颜色有所区别. + 定義名稱文字顏色. 使其與地圖指示器顏色有所區別. Map Gestures @@ -278,8 +278,8 @@ Gestes de carte マップ ジェスチャ 지도 신호 - 地图指示器 - 地圖指示器 + 地图指示器 + 地圖指示器 diff --git a/addons/maptools/stringtable.xml b/addons/maptools/stringtable.xml index 8f380eb8c1f..20397d70eb5 100644 --- a/addons/maptools/stringtable.xml +++ b/addons/maptools/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Инструменты карты マップ ツール 독도용 도구 - 地图工具 - 地圖工具 + 地图工具 + 地圖工具 The Map Tools allow you to measure distances and angles on the map. @@ -30,8 +30,8 @@ Картографические инструменты позволяют измерять расстояния и углы на карте. マップ ツールは地図上で距離や角度を測れます。 독도용 도구는 지도상에서 거리나 각도를 잴 수 있게 해줍니다. - 地图工具能够让你在地图上测量距离与角度 - 地圖工具能夠讓你在地圖上測量距離與角度 + 地图工具能够让你在地图上测量距离与角度 + 地圖工具能夠讓你在地圖上測量距離與角度 Map Tools @@ -46,8 +46,8 @@ Инструменты карты マップ ツール 독도용 도구 - 地图工具 - 地圖工具 + 地图工具 + 地圖工具 Hide Map Tool @@ -62,8 +62,8 @@ Скрыть инструменты マップ ツールを隠す 독도용 도구 숨기기 - 隐藏地图工具 - 隱藏地圖工具 + 隐藏地图工具 + 隱藏地圖工具 Show Normal Map Tool @@ -78,8 +78,8 @@ Показать инструменты (средн. размер) マップ ツールを表示する 보통 독도용 도구로 보기 - 显示地图工具 - 顯示地圖工具 + 显示地图工具 + 顯示地圖工具 Show Small Map Tool @@ -94,8 +94,8 @@ Показать инструменты (малый размер) 小さいマップ ツールを表示する 작은 독도용 도구로 보기 - 显示小的地图工具 - 顯示小的地圖工具 + 显示小的地图工具 + 顯示小的地圖工具 Align Map Tool to North @@ -110,8 +110,8 @@ Выровнять инструменты на север マップ ツールを北に合わせる 독도용 도구를 북쪽으로 정렬 - 地图工具对准北方 - 地圖工具對準北方 + 地图工具对准北方 + 地圖工具對準北方 Align Map Tool to Compass @@ -126,8 +126,8 @@ Выровнять инструменты по компасу マップ ツールを方位磁石に合わせる 독도용 도구를 나침반에 정렬 - 地图工具对准指北针 - 地圖工具對準指北針 + 地图工具对准指北针 + 地圖工具對準指北針 Show GPS on Map @@ -142,8 +142,8 @@ Показать GPS на карте 地図上に GPS を表示する GPS를 지도상에 꺼내기 - 在地图上显示GPS - 在地圖上顯示GPS + 在地图上显示GPS + 在地圖上顯示GPS Hide GPS on Map @@ -158,8 +158,8 @@ Скрыть GPS на карте 地図上から GPS を隠す GPS를 지도상에서 숨기기 - 在地图上隐藏GPS - 在地圖上隱藏GPS + 在地图上隐藏GPS + 在地圖上隱藏GPS Direction: %1° @@ -174,8 +174,8 @@ Direção: %1 方位:%1° 방위: %1° - 方位: %1° - 方位: %1° + 方位: %1° + 方位: %1° Rotate Map Tools Key @@ -186,8 +186,8 @@ Taste zum Drehen des Kartenwerkzeugs 독도용 도구 돌리기 키 Ruota Strumenti di Mappatura - 选转地图工具的按键 - 選轉地圖工具的按鍵 + 选转地图工具的按键 + 選轉地圖工具的按鍵 Modifier key to allow rotating map tools @@ -198,8 +198,8 @@ Steuerungstaste, um Drehung des Kartenwerkzeugs zu ermöglichen. 독도용 도구를 돌리기 위한 키를 변경할 수 있습니다. Tasto modifica per consentire strumenti di mappatura rotanti - 修改旋转地图工具的按键 - 修改旋轉地圖工具的按鍵 + 修改旋转地图工具的按键 + 修改旋轉地圖工具的按鍵 Draw straight lines with maptools @@ -209,8 +209,8 @@ Rysuj proste linie przy użyciu narzędzi nawigacyjnych Tracer des lignes droites Disegna linee dritte con gli strumenti di mappatura - 使用地图工具来绘制直线 - 使用地圖工具來繪製直線 + 使用地图工具来绘制直线 + 使用地圖工具來繪製直線 Draw on the edge of maptools to draw straight lines. Note: Must hover at midpoint to delete. @@ -220,8 +220,8 @@ Przeciągnij po krawędzi narzędzi nawigacyjnych by narysować prostą linię. Uwaga: aby usunąć linię - nalezy ustawić kursor nad jej środkiem. Utiliser le bord des outils de navigation pour tracer des lignes droites. Note: l'on doit survoler le milieu du trait pour pouvoir le supprimer. Disegna sul bordo degli strumenti di mappatura per disegnare linee dritte. Nota: Deve spostarsi al centro per essere cancellato. - 使用地图工具的边缘来绘制直线. 备注: 要删除直线时, 请把滑鼠移动到该线条的中央即可删除该线. - 使用地圖工具的邊緣來繪製直線. 備註: 要刪除直線時, 請把滑鼠移動到該線條的中央即可刪除該線. + 使用地图工具的边缘来绘制直线. 备注: 要删除直线时, 请把滑鼠移动到该线条的中央即可删除该线. + 使用地圖工具的邊緣來繪製直線. 備註: 要刪除直線時, 請把滑鼠移動到該線條的中央即可刪除該線. diff --git a/addons/markers/stringtable.xml b/addons/markers/stringtable.xml index 7d6dc2b23ae..1c87546a5eb 100644 --- a/addons/markers/stringtable.xml +++ b/addons/markers/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Direção %1 方位:%1° 방위: %1° - 方位: %1° - 方位: %1° + 方位: %1° + 方位: %1° diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 058bc9ee0ef..d94fe3ae5a0 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -14,8 +14,8 @@ FERIMENTOS 負傷 부상 - 受伤 - 受傷 + 受伤 + 受傷 No injuries on this bodypart... @@ -30,8 +30,8 @@ Nenhum ferimento nesta parte do corpo... 怪我をしていない 이 부위에는 부상이 없습니다... - 此身体部位没有受伤 - 此身體部位沒有受傷 + 此身体部位没有受伤 + 此身體部位沒有受傷 Litter Simulation Detail @@ -46,8 +46,8 @@ Počet zobrazených předmětů po použití zdravotnického materiálu 医療廃棄物を再現する詳細度 의료폐기물 재현 상세도 - 医疗废弃物模拟细节 - 醫療廢棄物模擬細節 + 医疗废弃物模拟细节 + 醫療廢棄物模擬細節 Litter simulation detail level sets the number of litter items which will be locally spawned in the client. Excessive amounts in local areas could cause FPS lag, so this is a client only setting. @@ -62,8 +62,8 @@ Počet zobrazených předmětů po použití zdravotnického materiálu ovlivňuje počet objektů, které budou zobrazeny klientovi v místě použití zdravotnického materiálu. Vyšší množství objektů může způsobovat poklesy FPS a proto je toto nastavení čistě na klientovi. 医療廃棄物再現度は各クライアントでローカルに作成される、医療廃棄物への詳細度を決定できます。ローカルで多くのアイテムがあると FPS の低下を引き起こすため、クライアント側のみの設定です。 의료폐기물 재현 상세도의 경우 얼마나 많은 수의 폐기물이 클라이언트 주변에 생성되는지를 정합니다. 매우 많은 수의 지역은 프레임드랍을 유발할 수 있습니다, 고로 이는 클라이언트 전용 설정입니다. - 设定医疗废弃物的最大产生数量, 过多的数量会导致画面更新率延迟, 因此这由用户端来设定 - 設定醫療廢棄物的最大產生數量, 過多的數量會導致畫面更新率延遲, 因此這由用戶端來設定 + 设定医疗废弃物的最大产生数量, 过多的数量会导致画面更新率延迟, 因此这由用户端来设定 + 設定醫療廢棄物的最大產生數量, 過多的數量會導致畫面更新率延遲, 因此這由用戶端來設定 Inject Adenosine @@ -77,8 +77,8 @@ Ввести аденозин アデノシンを投与 아데노신 주사 - 注射腺苷 - 注射腺苷 + 注射腺苷 + 注射腺苷 Inject Atropine @@ -93,8 +93,8 @@ Injetar Atropina アトロピンを投与 아트로핀 주사 - 注射阿托品 - 注射阿托品 + 注射阿托品 + 注射阿托品 Inject Epinephrine @@ -109,8 +109,8 @@ Inietta adrenalina アドレナリンを投与 에피네프린 주사 - 注射肾上腺素 - 注射腎上腺素 + 注射肾上腺素 + 注射腎上腺素 Inject Morphine @@ -125,8 +125,8 @@ Inietta morfina モルヒネを投与 모르핀 주사 - 注射吗啡 - 注射嗎啡 + 注射吗啡 + 注射嗎啡 Transfuse Blood @@ -141,8 +141,8 @@ Trasfusione di sangue 輸血する 혈액 수혈 - 输血液 - 輸血液 + 输血液 + 輸血液 Transfuse Plasma @@ -157,8 +157,8 @@ Transfundir Plasma 血しょうを投与 혈장 수혈 - 输血浆 - 輸血漿 + 输血浆 + 輸血漿 Transfuse Saline @@ -173,8 +173,8 @@ Transfundir Soro 生理食塩水を投与 생리식염수 수혈 - 注射生理食盐水 - 注射生理食鹽水 + 注射生理食盐水 + 注射生理食鹽水 Apply Tourniquet @@ -189,8 +189,8 @@ Érszorító alkalmazása 止血帯を巻く 지혈대 적용 - 使用军用止血带 - 使用軍用止血帶 + 使用军用止血带 + 使用軍用止血帶 Bandage @@ -205,8 +205,8 @@ Перевязать 包帯 붕대 - 绷带 - 繃帶 + 绷带 + 繃帶 Bandage Head @@ -221,8 +221,8 @@ Benda la testa 包帯を頭へ 머리에 붕대감기 - 绷带包扎 头部 - 繃帶包紮 頭部 + 绷带包扎 头部 + 繃帶包紮 頭部 Bandage Torso @@ -237,8 +237,8 @@ Benda il torso 包帯を胴体へ 몸통에 붕대감기 - 绷带包扎 身体 - 繃帶包紮 身體 + 绷带包扎 身体 + 繃帶包紮 身體 Bandage Left Arm @@ -253,8 +253,8 @@ Benda il braccio sinistro 包帯を左腕に 왼팔에 붕대감기 - 绷带包扎 左手 - 繃帶包紮 左手 + 绷带包扎 左手 + 繃帶包紮 左手 Bandage Right Arm @@ -269,8 +269,8 @@ Benda il braccio destro 包帯を右腕に 오른팔에 붕대감기 - 绷带包扎 右手 - 繃帶包紮 右手 + 绷带包扎 右手 + 繃帶包紮 右手 Bandage Left Leg @@ -285,8 +285,8 @@ Benda la gamba sinistra 包帯を左足へ 왼쪽 다리에 붕대감기 - 绷带包扎 左脚 - 繃帶包紮 左腳 + 绷带包扎 左脚 + 繃帶包紮 左腳 Bandage Right Leg @@ -301,8 +301,8 @@ Benda la gamba destra 包帯を右足へ 오른쪽 다리에 붕대감기 - 绷带包扎 右脚 - 繃帶包紮 右腳 + 绷带包扎 右脚 + 繃帶包紮 右腳 Injecting Morphine... @@ -317,8 +317,8 @@ Inietto la morfina... モルヒネを投与中・・・ 모르핀 주사중... - 吗啡注射中... - 嗎啡注射中... + 吗啡注射中... + 嗎啡注射中... Injecting Epinephrine... @@ -333,8 +333,8 @@ Inietto l'adrenalina... アドレナリンを投与中・・・ 에피네프린 주사중... - 肾上腺素注射中... - 腎上腺素注射中... + 肾上腺素注射中... + 腎上腺素注射中... Injecting Adenosine... @@ -348,8 +348,8 @@ Введение аденозина... アドネシンを投与中・・・ 아데노신 주사중... - 腺苷注射中... - 腺苷注射中... + 腺苷注射中... + 腺苷注射中... Injecting Atropine... @@ -364,8 +364,8 @@ Injetando Atropina アトロピンを投与中・・・ 아트리핀 주사중... - 阿托品注射中 ... - 阿托品注射中 ... + 阿托品注射中 ... + 阿托品注射中 ... Transfusing Blood... @@ -380,8 +380,8 @@ Effettuo la trasfusione di sangue... 輸血中・・・ 혈액 수혈중... - 输血液中 ... - 輸血液中 ... + 输血液中 ... + 輸血液中 ... Transfusing Saline... @@ -396,8 +396,8 @@ Transfundindo Soro... 生理食塩水を投与中・・・ 생리식염수 수혈중... - 施打生理食盐水中 ... - 施打生理食鹽水中 ... + 施打生理食盐水中 ... + 施打生理食鹽水中 ... Transfusing Plasma... @@ -412,8 +412,8 @@ Transfundindo Plasma... 血しょうを投与中・・・ 혈장 수혈중... - 输血浆中 ... - 輸血漿中 ... + 输血浆中 ... + 輸血漿中 ... Bandaging... @@ -428,8 +428,8 @@ Перевязывание... 包帯を巻いています・・・ 붕대감는중... - 绷带包扎中 ... - 繃帶包紮中 ... + 绷带包扎中 ... + 繃帶包紮中 ... Applying Tourniquet... @@ -444,8 +444,8 @@ Applicando Torniquete 止血帯を巻いています・・・ 지혈대 적용중... - 使用军用止血带中 ... - 使用軍用止血帶中 ... + 使用军用止血带中 ... + 使用軍用止血帶中 ... Medical @@ -460,8 +460,8 @@ Orvosi 治療 치료 - 医疗 - 醫療 + 医疗 + 醫療 Field Dressing @@ -476,8 +476,8 @@ Curativo de Campo 緊急圧迫包帯 필드 드레싱 - 基础绷带 - 基礎繃帶 + 基础绷带 + 基礎繃帶 Packing Bandage @@ -492,8 +492,8 @@ Obvaz Tlakový 弾性包帯 거즈 붕대 - 包扎绷带 - 包紮繃帶 + 包扎绷带 + 包紮繃帶 Elastic Bandage @@ -508,8 +508,8 @@ Bandagem Elástica 伸縮包帯 압박 붕대 - 弹性绷带 - 彈性繃帶 + 弹性绷带 + 彈性繃帶 QuikClot @@ -524,8 +524,8 @@ QuikClot クイッククロット 퀵 클롯 - 止血粉 - 止血粉 + 止血粉 + 止血粉 Check Pulse @@ -540,8 +540,8 @@ Checar Pulso 心拍数をはかる 맥박 확인 - 检查脉搏 - 檢查脈搏 + 检查脉搏 + 檢查脈搏 Check Blood Pressure @@ -556,8 +556,8 @@ Chegar Pressão Sanguínea 血圧をはかる 혈압 확인 - 检查血压 - 檢查血壓 + 检查血压 + 檢查血壓 Triage Card @@ -572,8 +572,8 @@ Cartão de Triagem トリアージ カード 부상자 분류 카드 - 检伤分类卡 - 檢傷分類卡 + 检伤分类卡 + 檢傷分類卡 No entries on this triage card. @@ -588,8 +588,8 @@ Nenhuma entrada neste cartão de triagem トリアージ カードには何も無い 부상자 분류 카드에 쓰여있는것이 없습니다. - 此检伤分类卡上没有任何资料 - 此檢傷分類卡上沒有任何資料 + 此检伤分类卡上没有任何资料 + 此檢傷分類卡上沒有任何資料 Tourniquet @@ -604,8 +604,8 @@ Torniquete 止血帯 지혈대 - 军用止血带 - 軍用止血帶 + 军用止血带 + 軍用止血帶 Remove Tourniquet @@ -620,8 +620,8 @@ Remover Torniquete 止血帯をはずす 지혈대 제거 - 移除军用止血带 - 移除軍用止血帶 + 移除军用止血带 + 移除軍用止血帶 Diagnose @@ -636,8 +636,8 @@ Diagnosticar 診断する 진단 - 诊断 - 診斷 + 诊断 + 診斷 Diagnosing... @@ -652,8 +652,8 @@ Diagnosticando... 診断中・・・ 진단중... - 诊断中... - 診斷中... + 诊断中... + 診斷中... CPR @@ -668,8 +668,8 @@ SBV 心肺蘇生 심폐소생술 - 心肺复苏术 - 心肺復甦術 + 心肺复苏术 + 心肺復甦術 Performing CPR... @@ -684,8 +684,8 @@ Realizando o SBV... 心肺蘇生を実行中・・・ 심폐소생중... - 进行心肺复苏术中... - 進行心肺復甦術中... + 进行心肺复苏术中... + 進行心肺復甦術中... Give Blood IV (1000ml) @@ -700,8 +700,8 @@ Administrar Sangue IV (1000ml) 血液 IV (1000ml) をあたえる IV 혈액 수혈 (1000ml) - 输血液 (1000ml) - 輸血液 (1000ml) + 输血液 (1000ml) + 輸血液 (1000ml) Give Blood IV (500ml) @@ -716,8 +716,8 @@ Administrar Sangue IV (500ml) 血液 IV (500ml) をあたえる IV 혈액 수혈 (500ml) - 输血液 (500ml) - 輸血液 (500ml) + 输血液 (500ml) + 輸血液 (500ml) Give Blood IV (250ml) @@ -732,8 +732,8 @@ Administrar Sangue IV (250ml) 血液 IV (250ml) をあたえる IV 혈액 수혈 (250ml) - 输血液 (250ml) - 輸血液 (250ml) + 输血液 (250ml) + 輸血液 (250ml) Give Plasma IV (1000ml) @@ -748,8 +748,8 @@ Administrar Plasma IV (1000ml) 血しょう IV (1000ml) をあたえる IV 혈장 수혈 (1000ml) - 输血浆 (1000ml) - 輸血漿 (1000ml) + 输血浆 (1000ml) + 輸血漿 (1000ml) Give Plasma IV (500ml) @@ -764,8 +764,8 @@ Administrar Plasma IV (500ml) 血しょう IV (500ml) をあたえる IV 혈장 수혈 (500ml) - 输血浆 (500ml) - 輸血漿 (500ml) + 输血浆 (500ml) + 輸血漿 (500ml) Give Plasma IV (250ml) @@ -780,8 +780,8 @@ Administrar Plasma IV (250ml) 血しょう IV (250ml) をあたえる IV 혈장 수혈 (250ml) - 输血浆 (250ml) - 輸血漿 (250ml) + 输血浆 (250ml) + 輸血漿 (250ml) Give Saline IV (1000ml) @@ -796,8 +796,8 @@ Administrar Soro IV (1000ml) 生理食塩水 IV (1000ml) をあたえる IV 생리식염수 수혈 (1000ml) - 注射生理食盐水 (1000ml) - 注射生理食鹽水 (1000ml) + 注射生理食盐水 (1000ml) + 注射生理食鹽水 (1000ml) Give Saline IV (500ml) @@ -812,8 +812,8 @@ Administrar Soro IV (500ml) 生理食塩水 IV (500ml) をあたえる IV 생리식염수 수혈 (500ml) - 注射生理食盐水 (500ml) - 注射生理食鹽水 (500ml) + 注射生理食盐水 (500ml) + 注射生理食鹽水 (500ml) Give Saline IV (250ml) @@ -828,8 +828,8 @@ Administrar Soro IV (250ml) 生理食塩水 IV (250ml) をあたえる IV 생리식염수 수혈 (250ml) - 注射生理食盐水 (250ml) - 注射生理食鹽水 (250ml) + 注射生理食盐水 (250ml) + 注射生理食鹽水 (250ml) Minor @@ -844,8 +844,8 @@ Leve 保留群 경미 - 轻微 - 輕微 + 轻微 + 輕微 Delayed @@ -860,8 +860,8 @@ Atrasado 待機的治療群 늦어짐 - 延后 - 延後 + 延后 + 延後 Immediate @@ -876,8 +876,8 @@ Imediato 再優先治療群 긴급 - 紧急 - 緊急 + 紧急 + 緊急 Deceased @@ -892,8 +892,8 @@ Falecido 死亡群 사망 - 死亡 - 死亡 + 死亡 + 死亡 None @@ -908,8 +908,8 @@ Nenhum なし 없음 - 未分类 - 未分類 + 未分类 + 未分類 Normal breathing @@ -924,8 +924,8 @@ Respiração normal 通常の呼吸 정상 호흡 - 呼吸正常 - 呼吸正常 + 呼吸正常 + 呼吸正常 No breathing @@ -940,8 +940,8 @@ Não respira 息をしていない 호흡 불가 - 没有呼吸 - 沒有呼吸 + 没有呼吸 + 沒有呼吸 Difficult breathing @@ -956,8 +956,8 @@ Dificuldade para respirar 呼吸が苦しそうだ 호흡 곤란 - 呼吸困难 - 呼吸困難 + 呼吸困难 + 呼吸困難 Almost no breathing @@ -972,8 +972,8 @@ Quase não respira ほとんど呼吸をしていない 호흡이 없음 - 快要没呼吸 - 快要沒呼吸 + 快要没呼吸 + 快要沒呼吸 Bleeding @@ -988,8 +988,8 @@ Sangrando 出血している 출혈 - 流血中 - 流血中 + 流血中 + 流血中 In pain @@ -1004,8 +1004,8 @@ Com dor 痛みがある 고통 - 疼痛中 - 疼痛中 + 疼痛中 + 疼痛中 Lost a lot of Blood @@ -1020,8 +1020,8 @@ Perdeu muito sangue 大量出血している 많은 양의 혈액을 잃음 - 大量失血中 - 大量失血中 + 大量失血中 + 大量失血中 Tourniquet [CAT] @@ -1036,8 +1036,8 @@ Torniquete [CAT] 止血帯 [CAT] 지혈대 [CAT] - 军用止血带 - 軍用止血帶 + 军用止血带 + 軍用止血帶 Receiving IV [%1ml] @@ -1052,8 +1052,8 @@ Recebendo IV [%1ml] IV [%1ml] を投与されている IV로 [%1ml] 수혈중 - 接收静脉注射液中 [%1ml] - 接收靜脈注射液中 [%1ml] + 接收静脉注射液中 [%1ml] + 接收靜脈注射液中 [%1ml] Bandage (Basic) @@ -1068,8 +1068,8 @@ Bandagem(Básico) 包帯 (緊急圧迫) 붕대 (기본) - 基础绷带 - 基礎繃帶 + 基础绷带 + 基礎繃帶 Used to cover a wound @@ -1084,8 +1084,8 @@ Slouží k překrytí poranění 傷口をおおう 상처를 덮을때 씁니다 - 用于覆盖伤口 - 用於覆蓋傷口 + 用于覆盖伤口 + 用於覆蓋傷口 A dressing, that is a particular material used to cover a wound, which is applied over the wound once bleeding has been stemmed. @@ -1100,8 +1100,8 @@ Obvaz je vhodným způsobem upravený sterilní materiál, určený k překrytí rány, případně k fixaci poranění. 緊急圧迫包帯は、傷口を血液凝固剤でおおうようにできていて、つかうと出血の原因を取りさります。 드레싱, 출혈을 막고서 상처를 덮기위해 쓰는 물건입니다. - 用于覆盖伤口以防止出血, 透过敷料的止血剂来让出血慢慢停止. - 用於覆蓋傷口以防止出血, 透過敷料的止血劑來讓出血慢慢停止. + 用于覆盖伤口以防止出血, 透过敷料的止血剂来让出血慢慢停止. + 用於覆蓋傷口以防止出血, 透過敷料的止血劑來讓出血慢慢停止. Packing Bandage @@ -1116,8 +1116,8 @@ Obvaz (Tlakový) 弾性包帯 거즈 붕대 - 包扎绷带 - 包紮繃帶 + 包扎绷带 + 包紮繃帶 Used to pack medium to large wounds and stem the bleeding @@ -1132,8 +1132,8 @@ Používá se k zastavení středních až silnějších krvácení 弾性包帯は粘着フィルム状で、普通から大きめなケガにつかい止血します。 중형 또는 대형 상처를 채우고 출혈을 막기위해 쓰입니다 - 用于包扎中到大型伤口, 并防止出血 - 用於包紮中到大型傷口, 並防止出血 + 用于包扎中到大型伤口, 并防止出血 + 用於包紮中到大型傷口, 並防止出血 A bandage used to pack the wound to stem bleeding and facilitate wound healing. Packing a wound is an option in large polytrauma injuries. @@ -1148,8 +1148,8 @@ Tlakový obvaz se skládá se ze sterilní krycí vrstvy, na kterou je přiložena silná vrstva savého materiálu stlačující cévu v ráně a která je přitlačována k ráně a připevněna obinadlem. Slouží k zastavení silnějších krvácení. 包帯をつかうと出血の原因を取りのぞき、それを促進させます。また大きめな多発性外傷にたいしても使えます。 출혈을 막고 상처를 치유하기 위한 붕대. 다발성외상의 경우 상처를 채우는것도 한 가지 방법입니다. - 用于包扎中到大型伤口, 并防止出血, 为在大型多处性伤口的选项之一! - 用於包紮中到大型傷口, 並防止出血, 為在大型多處性傷口的選項之一! + 用于包扎中到大型伤口, 并防止出血, 为在大型多处性伤口的选项之一! + 用於包紮中到大型傷口, 並防止出血, 為在大型多處性傷口的選項之一! Bandage (Elastic) @@ -1164,8 +1164,8 @@ Bandagem (Elástica) 包帯 (伸縮) 붕대 (압박) - 弹性绷带 - 彈性繃帶 + 弹性绷带 + 彈性繃帶 Bandage kit, Elastic @@ -1180,8 +1180,8 @@ Sada obvazů, Elastická 包帯キット (伸縮) 붕대, 압박 - 弹性绷带 - 彈性繃帶 + 弹性绷带 + 彈性繃帶 Allows an even compression and extra support to the injured area. @@ -1196,8 +1196,8 @@ Hodí se k fixačním účelům a to i v oblastech kloubů. 負傷部分へ最大の対応と止血を続けられます。 부상 부위를 골고루 압박해주면서 동시에 고정시켜 줍니다. - 可对伤口持续压迫并固定以防止伤口情况变严重. - 可對傷口持續壓迫並固定以防止傷口情況變嚴重. + 可对伤口持续压迫并固定以防止伤口情况变严重. + 可對傷口持續壓迫並固定以防止傷口情況變嚴重. Tourniquet (CAT) @@ -1212,8 +1212,8 @@ Torniquete (CAT) 止血帯 (CAT) 지혈대 [CAT] - 军用止血带 - 軍用止血帶 + 军用止血带 + 軍用止血帶 Slows down blood loss when bleeding @@ -1228,8 +1228,8 @@ Zpomaluje ztráty krve při krvácení 出血しているときに、流れ出る量をへらします。 출혈 시 혈액손실을 늦춰줍니다 - 减缓失血的速度 - 減緩失血的速度 + 减缓失血的速度 + 減緩失血的速度 A constricting device used to compress venous and arterial circulation in effect inhibiting or slowing blood flow and therefore decreasing loss of blood. @@ -1244,8 +1244,8 @@ Zařízení používané ke stlačení venózního a arteriálního oběhu. V důsledku dochází ke zpomalení toku krve a tedy i snížení ztrát krve. 止血帯は静脈や動脈へ圧力をかけ、循環を遅らせることで血液の流れをおそくし、失血を防ぎます。 정맥과 동맥을 압축시키켜 혈액순환을 억제 혹은 늦추게하여 혈액손실을 줄이는 도구입니다. - 用于压迫静脉与动脉的血液流动, 达到减缓失血速度的目的. - 用於壓迫靜脈與動脈的血液流動, 達到減緩失血速度的目的. + 用于压迫静脉与动脉的血液流动, 达到减缓失血速度的目的. + 用於壓迫靜脈與動脈的血液流動, 達到減緩失血速度的目的. Morphine autoinjector @@ -1260,8 +1260,8 @@ Auto-injetor de morfina モルヒネ 모르핀 자동주사기 - 吗啡自动注射器 - 嗎啡自動注射器 + 吗啡自动注射器 + 嗎啡自動注射器 Used to combat moderate to severe pain experiences @@ -1276,8 +1276,8 @@ Slouží k tlumení středně těžkých a těžkých bolestí 戦闘が収まったとき、痛みにたいしてつかいます。 심한 통증을 완화하는데 쓰입니다 - 减低中度至重度的疼痛感 - 減低中度至重度的疼痛感 + 减低中度至重度的疼痛感 + 減低中度至重度的疼痛感 An analgesic used to combat moderate to severe pain experiences. @@ -1292,8 +1292,8 @@ Analgetikum slouží k tlumení středně těžkých a těžkých bolestí 戦闘が収まったとき、モルヒネを痛みにたいしてつかいます。 심한 통증을 완화하기 위해 쓰이는 진통제입니다. - 止痛药的一种, 用于减低中度至重度的疼痛感. - 止痛藥的一種, 用於減低中度至重度的疼痛感. + 止痛药的一种, 用于减低中度至重度的疼痛感. + 止痛藥的一種, 用於減低中度至重度的疼痛感. Adenosine autoinjector @@ -1307,8 +1307,8 @@ Аденозин в пневмошприце アデノシン 아데노신 자동주사기 - 腺苷自动注射器 - 腺苷自動注射器 + 腺苷自动注射器 + 腺苷自動注射器 Used to counter effects of Epinephrine @@ -1322,8 +1322,8 @@ Используется для купирования эффектов адреналина アドレナリンの反対の効果としてつかいます。 에피네프린 대응책으로 쓰입니다 - 用来对付肾上腺素的影响 - 用來對付腎上腺素的影響 + 用来对付肾上腺素的影响 + 用來對付腎上腺素的影響 A drug used to counter the effects of Epinephrine @@ -1337,8 +1337,8 @@ Препарат используется для купирования эффектов адреналина つかうと、アドレナリンと反対の効果がでます。 에피네프린에 대응용으로 쓰이는 약품 - 一种药物用于减低肾上腺素的效果 - 一種藥物用於減低腎上腺素的效果 + 一种药物用于减低肾上腺素的效果 + 一種藥物用於減低腎上腺素的效果 Atropine autoinjector @@ -1353,8 +1353,8 @@ Auto-injetor de Atropina アトロピン 아트로핀 자동주사기 - 阿托品自动注射器 - 阿托品自動注射器 + 阿托品自动注射器 + 阿托品自動注射器 Used in NBC scenarios @@ -1369,8 +1369,8 @@ Používá se v přítomnosti nervových plynů 核・生物・化学兵器がつかわれている条件下にてつかいます。 핵,생물,화학 상황에 쓰입니다 - 使用于核生化污染的情况 - 使用於核生化汙染的情況 + 使用于核生化污染的情况 + 使用於核生化汙染的情況 A drug used by the Military in NBC scenarios. @@ -1385,8 +1385,8 @@ Atropin slouží jako protijed na otravu organofosfátovými insekticidy (diazinon) a nervovými plyny. 核・生物・化学兵器がつかわれている条件下にてつかいます。 핵,생물,화학 상황에 쓰이는 군용 약품 - 军用神经解毒针, 用来应付核生化污染的情况. - 軍用神經解毒針, 用來應付核生化汙染的情況. + 军用神经解毒针, 用来应付核生化污染的情况. + 軍用神經解毒針, 用來應付核生化汙染的情況. Epinephrine autoinjector @@ -1401,8 +1401,8 @@ Auto-injetor de epinefrina アドレナリン 에피네프린 자동주사기 - 肾上腺素自动注射器 - 腎上腺素自動注射器 + 肾上腺素自动注射器 + 腎上腺素自動注射器 Increase heart rate and counter effects given by allergic reactions @@ -1417,8 +1417,8 @@ Zvyšuje srdeční frekvenci a chrání před alergickými reakcemi 心拍数を増加させたり、アレルギー反応を収める効果もあります。 심박수를 높이며 알러지반응의 대응책입니다 - 增加心跳速率的一种药物 - 增加心跳速率的一種藥物 + 增加心跳速率的一种药物 + 增加心跳速率的一種藥物 A drug that works on a sympathetic response to dilate the bronchi, increase heart rate and counter such effects given by allergic reactions (anaphylaxis). Used in sudden cardiac arrest scenarios with decreasing positive outcomes. @@ -1433,8 +1433,8 @@ Zúžení periferních cév díky působení na alfa receptory a následné kontrakci hladkých svalů, tím dochází k tzv. centralizaci oběhu, krev se soustřeďuje v životně důležitých centrálních orgánech (srdce, mozek, plíce), působí také pozitivně na srdeční činnost a dochází ke zvýšení krevního tlaku a tepu. Dále se používá při náhlé srdeční zástavě. 薬は気管支を拡張するよう交感神経を拡張させ、心拍数を増加させます。それにアレルギー反応を収める効果もあります(アナフィラキシー ショック)。得られる効果は少ないですが、心停止している場合などにつかわれます。 기관지를 확장시키는 교감 신경 반응을 이끌어내는 약물로써, 심박을 높이고 알러지 효과에 대응합니다(아나필락시스). 심폐가 정지하는 경우 호전이 되지않을때 사용합니다. - 俗称强心针, 为一种支气管扩张药物, 会增加心跳速率并减缓过敏反应(过敏性休克), 在心跳骤停时有恢复心跳的效果! - 俗稱強心針, 為一種支氣管擴張藥物, 會增加心跳速率並減緩過敏反應(過敏性休克), 在心跳驟停時有恢復心跳的效果! + 俗称强心针, 为一种支气管扩张药物, 会增加心跳速率并减缓过敏反应(过敏性休克), 在心跳骤停时有恢复心跳的效果! + 俗稱強心針, 為一種支氣管擴張藥物, 會增加心跳速率並減緩過敏反應(過敏性休克), 在心跳驟停時有恢復心跳的效果! Plasma IV (1000ml) @@ -1449,8 +1449,8 @@ Krevní plazma (1000ml) 血しょう IV (1000ml) 혈장 IV (250ml) - 血浆 (1000ml) - 血漿 (1000ml) + 血浆 (1000ml) + 血漿 (1000ml) A volume-expanding blood supplement. @@ -1465,8 +1465,8 @@ Intravenózně podávaný doplněk k zvětšení objemu krve 血液量を増加させる補助です。 혈액량을 늘리기위한 보조수단 입니다. - 可快速得到血液补充 - 可快速得到血液補充 + 可快速得到血液补充 + 可快速得到血液補充 A volume-expanding blood supplement. @@ -1481,8 +1481,8 @@ Intravenózně podávaný doplněk k zvětšení objemu krve 血液量を増加させる補助です。 혈액량을 늘리기위한 보조수단 입니다. - 可快速得到血液补充 - 可快速得到血液補充 + 可快速得到血液补充 + 可快速得到血液補充 Plasma IV (500ml) @@ -1497,8 +1497,8 @@ Krevní plazma (500ml) 血しょう IV (500ml) 혈장 IV (500ml) - 血浆 (500ml) - 血漿 (500ml) + 血浆 (500ml) + 血漿 (500ml) Plasma IV (250ml) @@ -1513,8 +1513,8 @@ Krevní plazma (250ml) 血しょう IV (250ml) 혈장 IV (250ml) - 血浆 (250ml) - 血漿 (250ml) + 血浆 (250ml) + 血漿 (250ml) Blood IV (1000ml) @@ -1529,8 +1529,8 @@ Krevní transfúze (1000ml) 血液 IV (1000ml) 혈액 IV (1000ml) - 血液 (1000ml) - 血液 (1000ml) + 血液 (1000ml) + 血液 (1000ml) Blood IV, for restoring a patients blood (keep cold) @@ -1545,8 +1545,8 @@ Krevní transfuze pro doplnění pacientovi krve (skladujte v chladu) 血液 IV は、患者へ血液を補給します。(要低温保存) 혈액 IV, 환자에게 혈액을 공급합니다. (차갑게 할것) - 血液, 用于补充伤者流失的血液 (需冷藏) - 血液, 用於補充傷者流失的血液 (需冷藏) + 血液, 用于补充伤者流失的血液 (需冷藏) + 血液, 用於補充傷者流失的血液 (需冷藏) O Negative infusion blood used in strict and rare events to replenish blood supply usually conducted in the transport phase of medical care. @@ -1561,8 +1561,8 @@ 0 Rh negativní krev se používá v vzácných případech k doplnění pacientovy hladiny krve, obvykle při převozu zraněné osoby do nemocnice. O 型への輸血はまれで厳格であり、通常は治療のための輸送段階で輸血をおこないます。 O- 형 혈액 투여는 매우 엄격하고 드문 혈액보급의 경우에 쓰이는데 주로 치료의 운송단계에서 사용됩니다. - O型负值注射用血液, 在紧急情况时使用, 用于补充伤者流失的血液 - O型負值注射用血液, 在緊急情況時使用, 用於補充傷者流失的血液 + O型负值注射用血液, 在紧急情况时使用, 用于补充伤者流失的血液 + O型負值注射用血液, 在緊急情況時使用, 用於補充傷者流失的血液 Blood IV (500ml) @@ -1577,8 +1577,8 @@ Krevní transfúze (500ml) 血液 IV (500ml) 혈액 IV (500ml) - 血液 (500ml) - 血液 (500ml) + 血液 (500ml) + 血液 (500ml) Blood IV (250ml) @@ -1593,8 +1593,8 @@ Krevní transfúze (250ml) 血液 IV (250ml) 혈액 IV (250ml) - 血液 (250ml) - 血液 (250ml) + 血液 (250ml) + 血液 (250ml) Saline IV (1000ml) @@ -1609,8 +1609,8 @@ Fyziologický roztok (1000ml) 生理食塩水 IV (1000ml) 생리식염수 IV (1000ml) - 生理食盐水 (1000ml) - 生理食鹽水 (1000ml) + 生理食盐水 (1000ml) + 生理食鹽水 (1000ml) Saline IV, for restoring a patients blood @@ -1625,8 +1625,8 @@ Fyziologický roztok se aplikuje intravenózně a slouží k obnově pacientovi krve 生理食塩水 IV は、患者の血液量を補助します 생리식염수, 환자의 혈액량을 보충할때 쓰입니다 - 生理食盐水, 用于恢复伤者血液 - 生理食鹽水, 用於恢復傷者血液 + 生理食盐水, 用于恢复伤者血液 + 生理食鹽水, 用於恢復傷者血液 A medical volume-replenishing agent introduced into the blood system through an IV infusion. @@ -1641,8 +1641,8 @@ Fyziologický roztok se využívá nejčastěji jako infuze při dehydrataci organismu. 生理食塩水 IV を静脈へ投与し、血液量を増加させることができます。 혈류에 IV로 투여되는 의료 용적 대체 요법 - 利用静脉注射进入人体血液系统, 帮助伤者血液恢复 - 利用靜脈注射進入人體血液系統, 幫助傷者血液恢復 + 利用静脉注射进入人体血液系统, 帮助伤者血液恢复 + 利用靜脈注射進入人體血液系統, 幫助傷者血液恢復 Saline IV (500ml) @@ -1657,8 +1657,8 @@ Fyziologický roztok (500ml) 生理食塩水 IV (500ml) 생리식염수 IV (500ml) - 生理食盐水 (500ml) - 生理食鹽水 (500ml) + 生理食盐水 (500ml) + 生理食鹽水 (500ml) Saline IV (250ml) @@ -1673,8 +1673,8 @@ Fyziologický roztok (250ml) 生理食塩水 IV (250ml) 생리식염수 IV (250ml) - 生理食盐水 (250ml) - 生理食鹽水 (250ml) + 生理食盐水 (250ml) + 生理食鹽水 (250ml) Basic Field Dressing (QuikClot) @@ -1689,8 +1689,8 @@ Hemostatický obvaz (QuikClot) 緊急圧迫止血包帯 (クイッククロット) 필드 드레싱 (퀵 클롯) - 基本战地包扎 (止血粉) - 基本戰地包紮 (止血粉) + 基本战地包扎 (止血粉) + 基本戰地包紮 (止血粉) QuikClot bandage @@ -1705,8 +1705,8 @@ Hemostatický obvaz (QuikClot) クイッククロット 퀵 클롯 붕대 - 止血粉绷带 - 止血粉繃帶 + 止血粉绷带 + 止血粉繃帶 Hemostatic bandage with coagulant that stops bleeding. @@ -1721,8 +1721,8 @@ Hemostatický obvaz určený k zástavě krvácení 血液凝固剤をふくむ包帯により、止血できます。 지혈시 사용하는 붕대로 혈액 응고제를 포함하고있습니다. - 包含止血粉成分的止血绷带, 可用于止血 - 包含止血粉成分的止血繃帶, 可用於止血 + 包含止血粉成分的止血绷带, 可用于止血 + 包含止血粉成分的止血繃帶, 可用於止血 Personal Aid Kit @@ -1737,8 +1737,8 @@ Osobní lékárnička (PAK) 応急処置キット 개인응급키트 - 个人急救包 - 個人急救包 + 个人急救包 + 個人急救包 Includes various treatment kit needed for stitching or advanced treatment @@ -1753,8 +1753,8 @@ Osobní lékárnička obsahuje zdravotnický materiál umožňující šití a pokročilejší ošetřování raněných 縫合や高度な処置に必要とされる、さまざまな治療器具が含まれています。 봉합및 고급 조치에 필요한 다양한 치료 도구가 있습니다. - 包含各种医疗套件, 以及进阶伤口系统需要的缝合用品. - 包含各種醫療套件, 以及進階傷口系統需要的縫合用品. + 包含各种医疗套件, 以及进阶伤口系统需要的缝合用品. + 包含各種醫療套件, 以及進階傷口系統需要的縫合用品. Personal Aid Kit for in field stitching or advanced treatment @@ -1769,8 +1769,8 @@ Pronto soccorso personale da campo per mettersi i punti o per trattamenti avanzati. 戦場で縫合や高度な処置に必要とされる、さまざまな治療器具が含まれています。 야전에서 봉합및 고급 조치를 위한 개인응급키트 - 个人急救包可用于战地缝合手术或进阶伤口系统使用. - 個人急救包可用於戰地縫合手術或進階傷口系統使用. + 个人急救包可用于战地缝合手术或进阶伤口系统使用. + 個人急救包可用於戰地縫合手術或進階傷口系統使用. Use Personal Aid Kit @@ -1785,8 +1785,8 @@ Usa il pronto soccorso personale 応急処置キットをつかう 개인 응급 키트사용하기 - 使用个人急救包 - 使用個人急救包 + 使用个人急救包 + 使用個人急救包 Surgical Kit @@ -1801,8 +1801,8 @@ Chirurgická sada 縫合キット 봉합 키트 - 手术包 - 手術包 + 手术包 + 手術包 Surgical Kit for in field advanced medical treatment @@ -1817,8 +1817,8 @@ Chirurgická sada určená k pokročilejším zdravotnickým zákrokům v poli 縫合キットは戦場で高度な処置をするためにつかわれます。 야전 상황에서 고급 의료 처치를 위해 사용되는 봉합 키트 - 用于在战场上为伤口进行缝合(需要开启进阶伤口系统). - 用於在戰場上為傷口進行縫合(需要開啟進階傷口系統). + 用于在战场上为伤口进行缝合(需要开启进阶伤口系统). + 用於在戰場上為傷口進行縫合(需要開啟進階傷口系統). Surgical Kit for in field advanced medical treatment @@ -1833,8 +1833,8 @@ Chirurgická sada určená k pokročilejším zdravotnickým zákrokům v poli 縫合キットは戦場で高度な処置をするためにつかわれます。 야전 상황에서 고급 의료 처치를 위해 사용되는 봉합 키트 - 用于在战场上为伤口进行缝合(需要开启进阶伤口系统). - 用於在戰場上為傷口進行縫合(需要開啟進階傷口系統). + 用于在战场上为伤口进行缝合(需要开启进阶伤口系统). + 用於在戰場上為傷口進行縫合(需要開啟進階傷口系統). Use Surgical Kit @@ -1849,8 +1849,8 @@ Usar kit cirúrgico 縫合キットをつかう 봉합키트 사용하기 - 使用手术包 - 使用手術包 + 使用手术包 + 使用手術包 Bodybag @@ -1865,8 +1865,8 @@ Pytel na mrtvoly 死体袋 시체 가방 - 尸袋 - 屍袋 + 尸袋 + 屍袋 A bodybag for dead bodies @@ -1881,8 +1881,8 @@ Pytel na mrtvoly 死体袋は死体を入れるためにつかいます 시체를 운반할때 쓰는 가방입니다 - 用来装尸体用 - 用來裝屍體用 + 用来装尸体用 + 用來裝屍體用 A bodybag for dead bodies @@ -1897,8 +1897,8 @@ Pytel na mrtvoly 死体袋は死体を入れるためにつかいます 시체를 운반할때 쓰는 가방입니다 - 用来装尸体用 - 用來裝屍體用 + 用来装尸体用 + 用來裝屍體用 Blood Pressure @@ -1913,8 +1913,8 @@ Krevní tlak 血圧を測る 혈압 - 血压 - 血壓 + 血压 + 血壓 Checking Blood Pressure.. @@ -1929,8 +1929,8 @@ Měřím krevní tlak... 血圧を測定中・・・ 혈압 측정증... - 检查血压中... - 檢查血壓中... + 检查血压中... + 檢查血壓中... %1 checked Blood Pressure: %2 @@ -1945,8 +1945,8 @@ %1 verificou pressão arterial: %2 %1 が測った血圧は: %2 %1 (이)가 혈압을 측정했습니다: %2 - 已由%1确认血压: %2 - 已由%1確認血壓: %2 + 已由%1确认血压: %2 + 已由%1確認血壓: %2 You checked %1 @@ -1961,8 +1961,8 @@ Zkontroloval jsi %1 自分の血圧は %1 나의 혈압은 %1 이다 - 你已经检查 %1 - 你已經檢查 %1 + 你已经检查 %1 + 你已經檢查 %1 You find a blood pressure of %2/%3 @@ -1977,8 +1977,8 @@ Naměřil si krevní tlak u %2/%3 血圧は %2/%3 혈압이 %2/%3 이다 - 血压为%2/%3 - 血壓為%2/%3 + 血压为%2/%3 + 血壓為%2/%3 You find a low blood pressure @@ -1993,8 +1993,8 @@ Naměřil si nízký krevní tlak 血圧はかなり低い 혈압이 매우 낮다 - 发现到低血压 - 發現到低血壓 + 发现到低血压 + 發現到低血壓 You find a normal blood pressure @@ -2009,8 +2009,8 @@ Naměřil si normální krevní tlak 血圧は通常 혈압이 정상이다 - 发现到正常血压 - 發現到正常血壓 + 发现到正常血压 + 發現到正常血壓 You find a high blood pressure @@ -2025,8 +2025,8 @@ Naměřil si vysoký krevní tlak 血圧はかなり高い 혈압이 매우 높다 - 发现到高血压 - 發現到高血壓 + 发现到高血压 + 發現到高血壓 You find no blood pressure @@ -2041,8 +2041,8 @@ Nenaměřil si žádný krevní tlak 血圧は測れなかった 혈압이 잡히지 않는다 - 量不到血压 - 量不到血壓 + 量不到血压 + 量不到血壓 You fail to find a blood pressure @@ -2057,8 +2057,8 @@ Nedokázal si změřit krevní tlak 血圧を測るのに失敗 혈압을 잡을 수 없었다 - 检查血压的动作失败 - 檢查血壓的動作失敗 + 检查血压的动作失败 + 檢查血壓的動作失敗 Low @@ -2073,8 +2073,8 @@ Baixa 低い 낮음 - - + + Normal @@ -2089,8 +2089,8 @@ Normal 通常 보통 - 正常 - 正常 + 正常 + 正常 High @@ -2105,8 +2105,8 @@ Alta 高い 높음 - - + + No Blood Pressure @@ -2121,8 +2121,8 @@ Sem pressão arterial 血圧なし 혈압 없음 - 无血压 - 無血壓 + 无血压 + 無血壓 Pulse @@ -2137,8 +2137,8 @@ Puls 心拍数 맥박 - 脉搏 - 脈搏 + 脉搏 + 脈搏 Checking Heart Rate... @@ -2153,8 +2153,8 @@ Kontroluji srdeční tep... 心拍数を測定中・・・ 맥박 확인중... - 检查心跳中... - 檢查心跳中... + 检查心跳中... + 檢查心跳中... You checked %1 @@ -2169,8 +2169,8 @@ Zkontroloval si %1 心拍数は %1 나의 맥박은 %1 이다 - 你已经检查 %1 - 你已經檢查 %1 + 你已经检查 %1 + 你已經檢查 %1 %1 checked Heart Rate: %2 @@ -2185,8 +2185,8 @@ %1 verificou a frequência cardíaca: %2 %1 が測った心拍数は: %2 %1 (이)가 맥박을 측정했습니다: %2 - 已由%1确认心跳: %2 - 已由%1確認心跳: %2 + 已由%1确认心跳: %2 + 已由%1確認心跳: %2 None @@ -2201,8 +2201,8 @@ Niente なし 없음 - - + + Weak @@ -2217,8 +2217,8 @@ Fraca 弱い 약함 - 微弱 - 微弱 + 微弱 + 微弱 Normal @@ -2233,8 +2233,8 @@ Normal 通常 보통 - 正常 - 正常 + 正常 + 正常 Strong @@ -2249,8 +2249,8 @@ Forte 強い 강함 - 过快 - 過快 + 过快 + 過快 You find a Heart Rate of %2 @@ -2265,8 +2265,8 @@ Nahmatal jsi srdeční tep u %2 心拍数は %2 맥박이 %2 이다 - 心跳为%2 - 心跳為%2 + 心跳为%2 + 心跳為%2 You find a weak Heart Rate @@ -2281,8 +2281,8 @@ Nahmatal si slabý srdeční puls 自分の心拍数は低い 약한 맥박이다 - 心跳微弱 - 心跳微弱 + 心跳微弱 + 心跳微弱 You find a strong Heart Rate @@ -2297,8 +2297,8 @@ Nahmatal si silný srdeční puls 自分の心拍数は強い 강한 맥박이다 - 心跳过快 - 心跳過快 + 心跳过快 + 心跳過快 You find a normal Heart Rate @@ -2313,8 +2313,8 @@ Nahmatal si normální srdeční puls 自分の心拍数は通常 보통 맥박이다 - 心跳正常 - 心跳正常 + 心跳正常 + 心跳正常 You find no Heart Rate @@ -2329,8 +2329,8 @@ Žádný puls 心拍数を測れなかった 맥박을 찾을 수가 없다 - 量不到心跳 - 量不到心跳 + 量不到心跳 + 量不到心跳 Response @@ -2345,8 +2345,8 @@ Odezva 反応を見る 반응 - 反应 - 反應 + 反应 + 反應 You check response of patient @@ -2361,8 +2361,8 @@ Zkontroloval jsi reakci pacienta 患者からの反応をみる 대상의 반응 확인중 - 检查伤者的反应 - 檢查傷者的反應 + 检查伤者的反应 + 檢查傷者的反應 %1 is responsive @@ -2377,8 +2377,8 @@ %1 odpovídá %1 は反応あり %1 은 반응이있다 - %1 有反应 - %1 有反應 + %1 有反应 + %1 有反應 %1 is not responsive @@ -2393,8 +2393,8 @@ %1 neodpovídá %1 の反応なし %1 은 반응이없다 - %1 没有反应 - %1 沒有反應 + %1 没有反应 + %1 沒有反應 You checked %1 @@ -2409,8 +2409,8 @@ Zkontroloval jsi %1 %1 を見た %1 을 확인함 - 你已经检查 %1 - 你已經檢查 %1 + 你已经检查 %1 + 你已經檢查 %1 Patient %1<br/>is %2.<br/>%3.<br/>%4 @@ -2425,8 +2425,8 @@ Paciente %1<br/>é %2.<br/>%3.<br/>%4 痛み %1<br/>は %2.<br/>%3.<br/>%4 환자 %1<br/>는 %2.<br/>%3.<br/>%4 - 伤者 %1<br/>is %2.<br/>%3.<br/>%4 - 傷者 %1<br/>is %2.<br/>%3.<br/>%4 + 伤者 %1<br/>is %2.<br/>%3.<br/>%4 + 傷者 %1<br/>is %2.<br/>%3.<br/>%4 alive @@ -2441,8 +2441,8 @@ vivo 生存 생존 - 活着 - 活著 + 活着 + 活著 dead @@ -2457,8 +2457,8 @@ morto 死亡 사망 - 死亡 - 死亡 + 死亡 + 死亡 He's lost some blood @@ -2473,8 +2473,8 @@ Ele perdeu um pouco de sangue 彼は出血している 적은 양의 피를 잃었다 - 他流失一些血液 - 他流失一些血液 + 他流失一些血液 + 他流失一些血液 He's lost a lot of blood @@ -2489,8 +2489,8 @@ Ha perso molto sangue 彼は大量出血している 많은 양의 피를 잃었다 - 他流失大量血液 - 他流失大量血液 + 他流失大量血液 + 他流失大量血液 He hasn't lost blood @@ -2505,8 +2505,8 @@ Ele não perdeu sangue 彼は出血していない 피를 잃지 않았다 - 他并没有失血 - 他並沒有失血 + 他并没有失血 + 他並沒有失血 He is in pain @@ -2521,8 +2521,8 @@ Ele está com dor 彼には痛みがあるようだ 통증이 있다 - 他感到疼痛 - 他感到疼痛 + 他感到疼痛 + 他感到疼痛 He is not in pain @@ -2537,8 +2537,8 @@ Ele não está com dor 彼には痛みがないようだ 통증이 없다 - 他不会疼痛 - 他不會疼痛 + 他不会疼痛 + 他不會疼痛 Bandaged @@ -2553,8 +2553,8 @@ Obvázaný 包帯 붕대 감음 - 绷带 - 繃帶 + 绷带 + 繃帶 You bandage %1 (%2) @@ -2569,8 +2569,8 @@ Obvazuješ %1 (%2) %1 (%2) 包帯をつかった %1 (%2) 붕대를 감았다 - 你正在对 %1 (%2) 包扎绷带中 - 你正在對 %1 (%2) 包紮繃帶中 + 你正在对 %1 (%2) 包扎绷带中 + 你正在對 %1 (%2) 包紮繃帶中 %1 is bandaging you @@ -2585,8 +2585,8 @@ %1 tě obvazuje %1 は自分に包帯を巻いている %1 (이)가 나에게 붕대를 감고있다 - %1 正在对你包扎绷带中 - %1 正在對你包紮繃帶中 + %1 正在对你包扎绷带中 + %1 正在對你包紮繃帶中 You start stitching injuries from %1 (%2) @@ -2601,8 +2601,8 @@ Zašíváš rány %1 (%2) あなたは %1 (%2) の外傷へ縫合をはじめた 나는 %1(%2) 상처로부터 봉합을 시작했다 - 你正开始对 %1 (%2) 缝合伤口中 - 你正開始對 %1 (%2) 縫合傷口中 + 你正开始对 %1 (%2) 缝合伤口中 + 你正開始對 %1 (%2) 縫合傷口中 Stitching @@ -2617,8 +2617,8 @@ Šití 縫合 붕합중 - 缝合中 - 縫合中 + 缝合中 + 縫合中 You treat the airway of %1 @@ -2633,8 +2633,8 @@ Ošetřuješ dýchací cesty %1 %1 の気道を診断する %1의 기도를 확보했다 - 你治疗 %1 的呼吸道 - 你治療 %1 的呼吸道 + 你治疗 %1 的呼吸道 + 你治療 %1 的呼吸道 Airway @@ -2649,8 +2649,8 @@ Dýchací cesty 気道 기도 - 呼吸道 - 呼吸道 + 呼吸道 + 呼吸道 %1 is treating your airway @@ -2665,8 +2665,8 @@ %1 ošetřuje tvoje dýchací cesty %1 はあなたの気道を見ている %1 (이)가 나의 기도를 확보중이다 - %1 正在治疗你的呼吸道 - %1 正在治療你的呼吸道 + %1 正在治疗你的呼吸道 + %1 正在治療你的呼吸道 Drag @@ -2681,8 +2681,8 @@ Trascina 引きずる 끌다 - 拖拉 - 拖拉 + 拖拉 + 拖拉 Carry @@ -2697,8 +2697,8 @@ Trasporta 運ぶ 업다 - 背起 - 背起 + 背起 + 背起 Release @@ -2713,8 +2713,8 @@ Rrilascia 離す 내려놓기 - 放下 - 放下 + 放下 + 放下 Load Patient Into @@ -2729,8 +2729,8 @@ Carica paziente nel 患者を載せる 환자 싣기 - 将伤者放入 - 將傷者放入 + 将伤者放入 + 將傷者放入 Unload Patient @@ -2745,8 +2745,8 @@ Scarica il paziente 患者を降ろす 환자 내리기 - 将伤者背出 - 將傷者背出 + 将伤者背出 + 將傷者背出 Unload patient @@ -2761,8 +2761,8 @@ Vyložit pacienta 患者を降ろす 환자 내리기 - 将伤者背出 - 將傷者背出 + 将伤者背出 + 將傷者背出 Load patient @@ -2777,8 +2777,8 @@ Naložit pacienta 患者を載せる 환자 싣기 - 将伤者放入 - 將傷者放入 + 将伤者放入 + 將傷者放入 Place body in bodybag @@ -2793,8 +2793,8 @@ Umístni tělo do pytle na mrtvoly 死体袋に入れる 시체 가방에 담기 - 将尸体放入尸袋 - 將屍體放入屍袋 + 将尸体放入尸袋 + 將屍體放入屍袋 Placing body in bodybag... @@ -2809,8 +2809,8 @@ Umístňuji tělo do pytle na mrtvoly... 死体袋へ梱包中・・・ 시체 가방에 담는중... - 将尸体放入尸袋中... - 將屍體放入屍袋中... + 将尸体放入尸袋中... + 將屍體放入屍袋中... %1 has bandaged patient @@ -2825,8 +2825,8 @@ %1 již obvázal pacienta %1 は包帯を巻いた %1 (이)가 붕대를 감아줬다 - %1 已包扎伤者 - %1 已包紮傷者 + %1 已包扎伤者 + %1 已包紮傷者 %1 performed CPR @@ -2840,8 +2840,8 @@ %1 à fait une RCP %1 は心肺蘇生をした %1 (이)가 심폐소생술을 실시했다 - %1 已执行心肺复苏术 - %1 已執行心肺復甦術 + %1 已执行心肺复苏术 + %1 已執行心肺復甦術 %1 used %2 @@ -2856,8 +2856,8 @@ %1 použil %2 %1 は %2 をつかった %1 (이)가 %2 을 썼다 - %1 已使用 %2 - %1 已使用 %2 + %1 已使用 %2 + %1 已使用 %2 %1 has given an IV @@ -2872,8 +2872,8 @@ %1 již aplikoval IV %1 は IV を与えた %1 (이)가 IV를 실시했다 - %1 已经给予静脉注射液 - %1 已經給予靜脈注射液 + %1 已经给予静脉注射液 + %1 已經給予靜脈注射液 %1 applied a tourniquet @@ -2888,8 +2888,8 @@ %1 použil škrtidlo %1 は止血帯を巻いた %1 (이)가 지혈대를 적용했다 - %1 已经绑上止血带 - %1 已經綁上止血帶 + %1 已经绑上止血带 + %1 已經綁上止血帶 %1 used Personal Aid Kit @@ -2903,8 +2903,8 @@ %1 a utilisé une trousse %1 は応急処置キットをつかった %1 (이)가 개인응급키트를 사용했다 - %1 已使用了个人急救包 - %1 已使用了個人急救包 + %1 已使用了个人急救包 + %1 已使用了個人急救包 Heavily wounded @@ -2919,8 +2919,8 @@ Gravemente ferido 重傷 중상 - 重伤 - 重傷 + 重伤 + 重傷 Lightly wounded @@ -2935,8 +2935,8 @@ Levemente ferido 軽傷 경상 - 轻伤 - 輕傷 + 轻伤 + 輕傷 Very lightly wounded @@ -2951,8 +2951,8 @@ Muito levemente ferido かなり浅い傷 매우 가벼운 부상 - 小伤 - 小傷 + 小伤 + 小傷 Head @@ -2967,8 +2967,8 @@ Cabeça 頭部 머리 - 头部 - 頭部 + 头部 + 頭部 Torso @@ -2983,8 +2983,8 @@ Torso 胴体 몸통 - 身体 - 身體 + 身体 + 身體 Left Arm @@ -2999,8 +2999,8 @@ Braço Esquerdo 左腕 왼쪽 팔 - 左手 - 左手 + 左手 + 左手 Right Arm @@ -3015,8 +3015,8 @@ Braço Direito 右腕 오른쪽 팔 - 右手 - 右手 + 右手 + 右手 Left Leg @@ -3031,8 +3031,8 @@ Perna Esquerda 左足 왼쪽 다리 - 左脚 - 左腳 + 左脚 + 左腳 Right Leg @@ -3047,8 +3047,8 @@ Perna Direita 右足 오른쪽 다리 - 右脚 - 右腳 + 右脚 + 右腳 Heal fully bandaged hitpoints @@ -3062,8 +3062,8 @@ Heilt vollständig bandagierte Trefferpunkte 包帯は体力を完全に回復する 붕대를 감은후 체력을 회복함 - 完全医疗包扎的部位至痊愈 - 完全醫療包紮的部位至痊癒 + 完全医疗包扎的部位至痊愈 + 完全醫療包紮的部位至痊癒 Pain is only temporarily suppressed @@ -3078,8 +3078,8 @@ Dolore è soppresso solo temporaneamente 痛みは一時的な影響 고통은 일시적으로만 회복가능 - 疼痛只会暂时性压制 - 疼痛只會暫時性壓制 + 疼痛只会暂时性压制 + 疼痛只會暫時性壓制 Pain Effect Type @@ -3094,8 +3094,8 @@ Typ bolesti - efekt 痛みの種類 고통 효과 종류 - 疼痛效果类型 - 疼痛效果類型 + 疼痛效果类型 + 疼痛效果類型 Colour Flashing @@ -3110,8 +3110,8 @@ Blikající barva 色の点滅 색 반짝임 - 闪烁颜色 - 閃爍顏色 + 闪烁颜色 + 閃爍顏色 Chromatic Aberration @@ -3126,8 +3126,8 @@ Aberração Cromática 色の収差 색수차 - 色差 - 色差 + 色差 + 色差 Style of menu (Medical) @@ -3142,8 +3142,8 @@ Stile del menù (medico) メニューの表示形式 (治療) 메뉴의 스타일 (의료) - 选单样式 (医疗) - 選單樣式 (醫療) + 选单样式 (医疗) + 選單樣式 (醫療) Select the type of menu you prefer; default 3d selections or radial. @@ -3158,8 +3158,8 @@ Seleziona il tipo di menù che preferisci: selezione (3D), radiale o disabilitata. 好みに応じてメニューの表示形式を選んでください。標準では 3D 選択か円状です。 선호하는 종류의 메뉴를 고르세요; 기본 3d 선택형 혹은 다이얼형 - 选择你喜欢的选单样式; 预设为3D选项或放射状 - 選擇你喜歡的選單樣式; 預設為3D選項或放射狀 + 选择你喜欢的选单样式; 预设为3D选项或放射状 + 選擇你喜歡的選單樣式; 預設為3D選項或放射狀 Selections (3d) @@ -3174,8 +3174,8 @@ Selezione (3D) 選択 (3d) 선택 (3d) - 选择 (3D) - 選擇 (3D) + 选择 (3D) + 選擇 (3D) Radial @@ -3190,8 +3190,8 @@ Radiale 円状 다이얼형 - 放射状 - 放射狀 + 放射状 + 放射狀 Scrape @@ -3206,8 +3206,8 @@ Odřenina 擦り傷 찰과상 - 擦伤 - 擦傷 + 擦伤 + 擦傷 Minor Scrape @@ -3222,8 +3222,8 @@ Malá odřenina 小さな擦り傷 소형 찰과상 - 小擦伤 - 小擦傷 + 小擦伤 + 小擦傷 Medium Scrape @@ -3238,8 +3238,8 @@ Středně velká odřenina 中くらいの擦り傷 중형 찰과상 - 中擦伤 - 中擦傷 + 中擦伤 + 中擦傷 Large Scrape @@ -3254,8 +3254,8 @@ Velká odřenina 大きな擦り傷 대형 찰과상 - 大擦伤 - 大擦傷 + 大擦伤 + 大擦傷 Avulsion @@ -3270,8 +3270,8 @@ Avulze 剥離傷 열상 - 撕脱伤 - 撕脫傷 + 撕脱伤 + 撕脫傷 Minor Avulsion @@ -3286,8 +3286,8 @@ Malá avulze 小さな剥離傷 소형 열상 - 小撕脱伤 - 小撕脫傷 + 小撕脱伤 + 小撕脫傷 Medium Avulsion @@ -3302,8 +3302,8 @@ Střední avulze 中くらいの剥離傷 중형 열상 - 中撕脱伤 - 中撕脫傷 + 中撕脱伤 + 中撕脫傷 Large Avulsion @@ -3318,8 +3318,8 @@ Velká avulze 大きな剥離傷 대형 열상 - 大撕脱伤 - 大撕脫傷 + 大撕脱伤 + 大撕脫傷 Bruise @@ -3334,8 +3334,8 @@ Modřina 打ち傷 타박상 - 挫伤 - 挫傷 + 挫伤 + 挫傷 Minor Bruise @@ -3350,8 +3350,8 @@ Malá modřina 小さな打ち傷 소형 타박상 - 小挫伤 - 小挫傷 + 小挫伤 + 小挫傷 Medium Bruise @@ -3366,8 +3366,8 @@ Středně velká modřina 中くらいの打ち傷 중형 타박상 - 中挫伤 - 中挫傷 + 中挫伤 + 中挫傷 Large Bruise @@ -3382,8 +3382,8 @@ Velká modřina 大きな打撲傷 대형 타박상 - 大挫伤 - 大挫傷 + 大挫伤 + 大挫傷 Crushed tissue @@ -3398,8 +3398,8 @@ Zhmoždění měkkých tkání 圧挫傷 좌상 - 撞伤 - 撞傷 + 撞伤 + 撞傷 Minor crushed tissue @@ -3414,8 +3414,8 @@ Malé zhmoždění měkkých tkání 小さな圧挫傷 소형 좌상 - 小撞伤 - 小撞傷 + 小撞伤 + 小撞傷 Medium crushed tissue @@ -3430,8 +3430,8 @@ Střední zhmoždění měkkých tkání 中くらいの圧挫傷 중형 좌상 - 中撞伤 - 中撞傷 + 中撞伤 + 中撞傷 Large crushed tissue @@ -3446,8 +3446,8 @@ Velké zhmoždění měkkých tkání 大きな圧挫傷 대형 좌상 - 大撞伤 - 大撞傷 + 大撞伤 + 大撞傷 Cut @@ -3462,8 +3462,8 @@ Řezná rána 切り傷 절상 - 割伤 - 割傷 + 割伤 + 割傷 Small Cut @@ -3478,8 +3478,8 @@ Malá řezná rána 小さな切り傷 소형 절상 - 小割伤 - 小割傷 + 小割伤 + 小割傷 Medium Cut @@ -3494,8 +3494,8 @@ Střední řezná rána 中くらいの切り傷 중형 절상 - 中割伤 - 中割傷 + 中割伤 + 中割傷 Large Cut @@ -3510,8 +3510,8 @@ Velká řezná rána 大きな切り傷 대형 절상 - 大割伤 - 大割傷 + 大割伤 + 大割傷 Tear @@ -3526,8 +3526,8 @@ Tržná rána 裂傷 창상 - 撕裂伤 - 撕裂傷 + 撕裂伤 + 撕裂傷 Small Tear @@ -3542,8 +3542,8 @@ Malá tržná rána 小さな裂傷 소형 창상 - 小撕裂伤 - 小撕裂傷 + 小撕裂伤 + 小撕裂傷 Medium Tear @@ -3558,8 +3558,8 @@ Střední tržná rána 中くらいの裂傷 중형 창상 - 中撕裂伤 - 中撕裂傷 + 中撕裂伤 + 中撕裂傷 Large Tear @@ -3574,8 +3574,8 @@ Velká tržná rána 大きな裂傷 대형 창상 - 大撕裂伤 - 大撕裂傷 + 大撕裂伤 + 大撕裂傷 Velocity Wound @@ -3590,8 +3590,8 @@ Střelné poranění 銃創 총상 - 穿透伤 - 穿透傷 + 穿透伤 + 穿透傷 Small Velocity Wound @@ -3606,8 +3606,8 @@ Malé střelné poranění 小さな銃創 소형 총상 - 小穿透伤 - 小穿透傷 + 小穿透伤 + 小穿透傷 Medium Velocity Wound @@ -3622,8 +3622,8 @@ Střední střelné poranění 中くらいの銃創 중형 총상 - 中穿透伤 - 中穿透傷 + 中穿透伤 + 中穿透傷 Large Velocity Wound @@ -3638,8 +3638,8 @@ Velké střelné poranění 大きな銃創 대형 총상 - 大穿透伤 - 大穿透傷 + 大穿透伤 + 大穿透傷 Puncture Wound @@ -3654,8 +3654,8 @@ Bodná rána 刺し傷 관통상 - 穿刺伤 - 穿刺傷 + 穿刺伤 + 穿刺傷 Minor Puncture Wound @@ -3670,8 +3670,8 @@ Malá bodná rána 小さな刺し傷 소형 관통상 - 小穿刺伤 - 小穿刺傷 + 小穿刺伤 + 小穿刺傷 Medium Puncture Wound @@ -3686,8 +3686,8 @@ Střední bodná rána 中くらいの刺し傷 중형 관통상 - 中穿刺伤 - 中穿刺傷 + 中穿刺伤 + 中穿刺傷 Large Puncture Wound @@ -3702,8 +3702,8 @@ Velká bodná rána 大きな刺し傷 대형 관통상 - 大穿刺伤 - 大穿刺傷 + 大穿刺伤 + 大穿刺傷 Broken Femur @@ -3718,8 +3718,8 @@ Zlomená stehenní kost 大腿骨の骨折 대퇴골 골절 - 大腿骨骨折 - 大腿骨骨折 + 大腿骨骨折 + 大腿骨骨折 Treating... @@ -3734,8 +3734,8 @@ Curando... 治療中・・・ 치료중... - 治疗中... - 治療中... + 治疗中... + 治療中... Removing Tourniquet... @@ -3750,8 +3750,8 @@ Togliendo il laccio emostatico... 止血帯を外している・・・ 지혈대 제거중... - 移除军用止血带中... - 移除軍用止血帶中... + 移除军用止血带中... + 移除軍用止血帶中... ACE Medical @@ -3766,8 +3766,8 @@ ACE Medical ACE 医療 ACE 의료 - ACE 医疗系统 - ACE 醫療系統 + ACE 医疗系统 + ACE 醫療系統 Medical Settings [ACE] @@ -3782,8 +3782,8 @@ Impostazioni Mediche [ACE] 医療設定 [ACE] 의료 설정 [ACE] - 医疗设定 [ACE] - 醫療設定 [ACE] + 医疗设定 [ACE] + 醫療設定 [ACE] Medical Level @@ -3798,8 +3798,8 @@ Livello Medico 医療レベル 의료 수준 - 医疗等级 - 醫療等級 + 医疗等级 + 醫療等級 What is the medical simulation level? @@ -3814,8 +3814,8 @@ Qual'è il livello di simulazione medica? 治療の再現度は? 의료 시뮬레이션의 수준 - 选择需要的医疗模拟等级 - 選擇需要的醫療模擬等級 + 选择需要的医疗模拟等级 + 選擇需要的醫療模擬等級 Basic @@ -3830,8 +3830,8 @@ Basico ベーシック 기본 - 基本 - 基本 + 基本 + 基本 Advanced @@ -3846,8 +3846,8 @@ Avanzato アドバンスド 고급 - 进阶 - 進階 + 进阶 + 進階 Medics setting @@ -3862,8 +3862,8 @@ Parametri Medici 治療の設定 의료 설정 - 医护兵等级 - 醫護兵等級 + 医护兵等级 + 醫護兵等級 What is the level of detail prefered for medics? @@ -3878,8 +3878,8 @@ Qual'è il livello di dettagli preferito per i medici? >衛生兵への再現度をどのくらいに設定しますか? 의무병의 시뮬레이션 정도? - 设定医护兵的预设医疗水平(医疗兵, 军医) - 設定醫護兵的預設醫療水平(醫療兵, 軍醫) + 设定医护兵的预设医疗水平(医疗兵, 军医) + 設定醫護兵的預設醫療水平(醫療兵, 軍醫) Locations boost training @@ -3893,8 +3893,8 @@ Места ускоренного обучения 衛生兵としての能力を与える場所 교육 증가 지역 - 受所在位置影响提升医疗能力 - 受所在位置影響提升醫療能力 + 受所在位置影响提升医疗能力 + 受所在位置影響提升醫療能力 Boost medic rating in medical vehicles or near medical facilities [untrained becomes medic, medic becomes doctor] @@ -3908,8 +3908,8 @@ Улучшает медицинскую подготовку в мед. транспорте и около мед. строений [нетренированные становятся медиками, медики становятся врачами] 医療車両や医療施設の近くは衛生兵としての能力を与える場所となり、衛生兵の訓練を受けていないのに衛生兵としてなる(未訓練は衛生兵に、衛生兵は医師に) 의무병의 수준이 주변의 차량이나 의료시설에 따라 증가합니다. [비교육자가 의무병이되고, 의무병이 의사가 됩니다] - 当人员在医疗载具或是医护设施旁进行医疗时, 该员医疗能力将会有所提升 (未受训人员提升为医疗兵, 医疗兵提升为军医) - 當人員在醫療載具或是醫護設施旁進行醫療時, 該員醫療能力將會有所提升 (未受訓人員提升為醫療兵, 醫療兵提升為軍醫) + 当人员在医疗载具或是医护设施旁进行医疗时, 该员医疗能力将会有所提升 (未受训人员提升为医疗兵, 医疗兵提升为军医) + 當人員在醫療載具或是醫護設施旁進行醫療時, 該員醫療能力將會有所提升 (未受訓人員提升為醫療兵, 醫療兵提升為軍醫) Disable medics @@ -3924,8 +3924,8 @@ Disabilita medici 衛生兵を無効化 의무병 비활성화 - 关闭医护兵 - 關閉醫護兵 + 关闭医护兵 + 關閉醫護兵 Enable Litter @@ -3940,8 +3940,8 @@ Abilita Barella 医療廃棄物の表示を有効化 의료폐기물 활성화 - 启用医疗废弃物 - 啟用醫療廢棄物 + 启用医疗废弃物 + 啟用醫療廢棄物 Enable litter being created upon treatment @@ -3956,8 +3956,8 @@ Abilita la creazione della barella dopo trattamento 治療を始めると、医療廃棄物の作成を有効化する 의료폐기물이 치료중 주변에 생성되는것을 활성화 합니다 - 本功能启用后, 当每次医疗动作结束时, 地上会产生相应的医疗废弃物 - 本功能啟用後, 當每次醫療動作結束時, 地上會產生相應的醫療廢棄物 + 本功能启用后, 当每次医疗动作结束时, 地上会产生相应的医疗废弃物 + 本功能啟用後, 當每次醫療動作結束時, 地上會產生相應的醫療廢棄物 Life time of litter objects @@ -3972,8 +3972,8 @@ Tempo di vita delle barelle 医療廃棄物の作成限界数を設定 의료폐기물 시간제한 - 医疗废弃物存在时间 - 醫療廢棄物存在時間 + 医疗废弃物存在时间 + 醫療廢棄物存在時間 How long should litter objects stay? In seconds. -1 is forever. @@ -3988,8 +3988,8 @@ Per quanto devono restare le barelle? In secondi. -1 è permanente 医療廃棄物オブジェクトが表示されつづける時間を設定しますか?-1 は永遠です。 얼마동안 폐기물이 존재합니까? 초 단위. -1 은 영구적. - 定义医疗废弃物存在时间, 以秒为单位, -1为永远存在. - 定義醫療廢棄物存在時間, 以秒為單位, -1為永遠存在. + 定义医疗废弃物存在时间, 以秒为单位, -1为永远存在. + 定義醫療廢棄物存在時間, 以秒為單位, -1為永遠存在. Enable Screams @@ -4004,8 +4004,8 @@ Abilita Grida 叫びを有効化 비명 활성화 - 启用尖叫 - 啟用尖叫 + 启用尖叫 + 啟用尖叫 Enable screaming by injured units @@ -4020,8 +4020,8 @@ Abilita Grida da parte delle unità ferite 負傷したユニットが叫ぶように 부상당한 인원이 소리지르는것을 활성화합니다 - 启用伤者的尖叫声 - 啟用傷者的尖叫聲 + 启用伤者的尖叫声 + 啟用傷者的尖叫聲 Player Damage @@ -4036,8 +4036,8 @@ Danno Giocatore プレイヤーへの損傷 플레이어 부상 - 玩家伤害 - 玩家傷害 + 玩家伤害 + 玩家傷害 What is the damage a player can take before being killed? @@ -4052,8 +4052,8 @@ Quanto è il danno che un giocatore può sostenere prima di essere ucciso? プレイヤーが死に始める前に損傷を受けるようにしますか? 얼마정도의 부상을 플레이어가 죽기 전까지 버틸 수 있습니까? - 玩家死亡前所能承受的伤害程度 - 玩家死亡前所能承受的傷害程度 + 玩家死亡前所能承受的伤害程度 + 玩家死亡前所能承受的傷害程度 AI Damage @@ -4068,8 +4068,8 @@ Danno AI AI への損傷 인공지능 부상 - AI伤害 - AI傷害 + AI伤害 + AI傷害 What is the damage an AI can take before being killed? @@ -4084,8 +4084,8 @@ Quanto è il danno che un'IA può sostenere prima di essere uccisa? AI が死に始める前に損傷を受けるようにしますか? 얼마정도의 부상을 인공지능이 죽기 전까지 버틸 수 있습니까? - AI 死亡前所能承受的伤害程度 - AI 死亡前所能承受的傷害程度 + AI 死亡前所能承受的伤害程度 + AI 死亡前所能承受的傷害程度 AI Unconsciousness @@ -4100,8 +4100,8 @@ Incoscienza IA AI の気絶 인공지능 기절 - AI无意识 - AI無意識 + AI无意识 + AI無意識 Allow AI to go unconscious @@ -4116,8 +4116,8 @@ Permetti alle IA di diventare incoscienti AI が気絶をするように 인공지능도 기절에 빠지게 합니다 - 允许AI进入无意识状态 - 允許AI進入無意識狀態 + 允许AI进入无意识状态 + 允許AI進入無意識狀態 Remote Controlled AI @@ -4132,8 +4132,8 @@ IA Controllate in Remoto 遠隔操作された AI 인공지능 원격조종 - 遥控AI - 遙控AI + 遥控AI + 遙控AI Treat remote controlled units as AI not players? @@ -4148,8 +4148,8 @@ Considera le unità controllate in remoto come IA e non come giocatori? 遠隔操作された AI は、非プレイヤーとして扱いますか? 원격 조작하는 AI는 비 플레이어로 취급합니까? - 以医疗AI的方式医疗被遥控的单位 - 以醫療AI的方式醫療被遙控的單位 + 以医疗AI的方式医疗被遥控的单位 + 以醫療AI的方式醫療被遙控的單位 Prevent instant death @@ -4164,8 +4164,8 @@ Previeni morte istantanea 即死の防止 즉사 방지 - 防止当场死亡 - 防止當場死亡 + 防止当场死亡 + 防止當場死亡 Have a unit move to unconscious instead of death @@ -4180,8 +4180,8 @@ Imposta un'unità come incosciente invece di morta ユニットの即死を防止するために、気絶へ移行させます 인원의 즉사를 방지코자 즉사 대신 기절시킵니다 - 伤者最严重只会立即进入昏迷, 而非立即死亡 - 傷者最嚴重只會立即進入昏迷, 而非立即死亡 + 伤者最严重只会立即进入昏迷, 而非立即死亡 + 傷者最嚴重只會立即進入昏迷, 而非立即死亡 Bleeding coefficient @@ -4196,8 +4196,8 @@ Coefficiente sanguinamento 出血の係数 출혈 계수 - 流血系数 - 流血係數 + 流血系数 + 流血係數 Coefficient to modify the bleeding speed @@ -4212,8 +4212,8 @@ Coefficiente che modifica la velocità di sanguinamento この係数では出血速度を変更できます 출혈의 속도를 계수만큼 변경합니다 - 修改流血速度 - 修改流血速度 + 修改流血速度 + 修改流血速度 Pain coefficient @@ -4228,8 +4228,8 @@ Coefficiente dolore 痛みの係数 고통 계수 - 疼痛系数 - 疼痛係數 + 疼痛系数 + 疼痛係數 Coefficient to modify the pain intensity @@ -4244,8 +4244,8 @@ Coefficiente che modifica l'intensità del dolore この係数では痛みの強さを変更できます 고통의 정도를 계수만큼 변경합니다 - 修改疼痛强度的系数 - 修改疼痛強度的係數 + 修改疼痛强度的系数 + 修改疼痛強度的係數 Sync status @@ -4260,8 +4260,8 @@ Sincronizza stato 同期状態 상태 동기화 - 同步状态 - 同步狀態 + 同步状态 + 同步狀態 Keep unit status synced. Recommended on. @@ -4276,8 +4276,8 @@ Mantieni lo stato delle unità sincronizzato. Consigliato attivo. ユニット状態の同期を続けます。有効化を推奨。 인원의 상태를 동기화합니다. 켜기를 권장합니다. - 保持单位状态同步, 建议启用! - 保持單位狀態同步, 建議啟用! + 保持单位状态同步, 建议启用! + 保持單位狀態同步, 建議啟用! Provides a medical system for both players and AI. @@ -4292,8 +4292,8 @@ Fornisce un sistema medico sia per giocatori che IA. プレイヤーと AI の両方へ医療システムを提供します。 의료 시스템을 플레이어 및 인공지능에게 제공합니다. - 医疗系统将同时对玩家与AI发生作用 - 醫療系統將同時對玩家與AI發生作用 + 医疗系统将同时对玩家与AI发生作用 + 醫療系統將同時對玩家與AI發生作用 Basic Medical Settings [ACE] @@ -4307,8 +4307,8 @@ Настройки базовой медицины [ACE] ベーシック医療設定 [ACE] 기본 의료 설정 [ACE] - 基本医疗设定 [ACE] - 基本醫療設定 [ACE] + 基本医疗设定 [ACE] + 基本醫療設定 [ACE] Advanced Medical Settings [ACE] @@ -4323,8 +4323,8 @@ Impostazioni Mediche Avanzate [ACE] アドバンスド医療設定 [ACE] 고급 의료 설정 [ACE] - 进阶医疗设定 [ACE] - 進階醫療設定 [ACE] + 进阶医疗设定 [ACE] + 進階醫療設定 [ACE] Enabled for @@ -4339,8 +4339,8 @@ Abilitato per 次を有効化 활성 - 被启用给 - 被啟用給 + 被启用给 + 被啟用給 Select what units the advanced medical system will be enabled for @@ -4355,8 +4355,8 @@ Seleziona per quali unità verrà abilitato i sistema medico avanzato 選択されたユニットが、アドバンスド医療が使えるようになります 어느 인원에게 고급 의료 시스템을 적용시킬지 선택하십시요. - 选择进阶医疗系统影响的对象 - 選擇進階醫療系統影響的對象 + 选择进阶医疗系统影响的对象 + 選擇進階醫療系統影響的對象 Players only @@ -4371,8 +4371,8 @@ Solo giocatori プレイヤーのみ 플레이어만 - 只限玩家 - 只限玩家 + 只限玩家 + 只限玩家 Players and AI @@ -4387,8 +4387,8 @@ Giocatori ed IA プレイヤーと AI 플레이어 및 인공지능 - 玩家与AI - 玩家與AI + 玩家与AI + 玩家與AI Enable Advanced wounds @@ -4403,8 +4403,8 @@ Abilita ferite Avanzate アドバンスドな傷を有効化 고급 부상 활성화 - 启用进阶伤口系统 - 啟用進階傷口系統 + 启用进阶伤口系统 + 啟用進階傷口系統 Allow reopening of bandaged wounds? @@ -4419,8 +4419,8 @@ Permetti la riapertura di ferite bendate? 包帯で巻かれた傷を再び開くようにしますか? 붕대가 풀리는것을 활성화합니까? - 启用进阶伤口系统会使已被包扎的伤口有机率裂开 - 啟用進階傷口系統會使已被包紮的傷口有機率裂開 + 启用进阶伤口系统会使已被包扎的伤口有机率裂开 + 啟用進階傷口系統會使已被包紮的傷口有機率裂開 Vehicle Crashes @@ -4435,8 +4435,8 @@ Schianto Veicoli 車両の衝突 차량 사고 - 载具碰撞 - 載具碰撞 + 载具碰撞 + 載具碰撞 Do units take damage from a vehicle crash? @@ -4451,8 +4451,8 @@ Le unità sostengono danni da incidenti con veicoli? ユニットは車両の衝突による損傷を受けるようにしますか? 차량 사고시 인원들이 부상을 입습니까? - 设定人员是否会因为载具冲撞别的物件而产生伤害? - 設定人員是否會因為載具衝撞別的物件而產生傷害? + 设定人员是否会因为载具冲撞别的物件而产生伤害? + 設定人員是否會因為載具衝撞別的物件而產生傷害? Allow Epinephrine @@ -4466,8 +4466,8 @@ Разрешить Адреналин アドレナリンの許可 에피네프린 활성화 - 允许使用肾上腺素 - 允許使用腎上腺素 + 允许使用肾上腺素 + 允許使用腎上腺素 Who can use Epinephrine for full heal? (Basic medical only) @@ -4481,8 +4481,8 @@ Кому разрешено использовать адреналин для полного излечения? (Только для базовой медицины) 完全に回復できるよう誰しもがアドレナリンを使えるようにしますか?(ベーシック医療のみ) 완전한 체력회복을 위해 어느 인원이 에피네프린을 쓸 수 있습니까? (기본 의료 전용) - 谁可以使用肾上腺素完整医治? (仅适用于基本医疗) - 誰可以使用腎上腺素完整醫治? (僅適用於基本醫療) + 谁可以使用肾上腺素完整医治? (仅适用于基本医疗) + 誰可以使用腎上腺素完整醫治? (僅適用於基本醫療) Allow PAK @@ -4497,8 +4497,8 @@ Consenti Kit di Pronto Soccorso 応急処置キットの許可 개인응급키트 활성화 - 允许使用个人急救包 - 允許使用個人急救包 + 允许使用个人急救包 + 允許使用個人急救包 Who can use the PAK for full heal? @@ -4513,8 +4513,8 @@ Chi può usare il KPS per cura completa? 完全に回復できるよう誰しもが応急処置キットを使えるようにしますか? 완전한 체력회복을 위해 어느 인원이 개인응급키트을 쓸 수 있습니까? (기본 의료 전용) - 谁能够使用个人急救包来达到完整医疗? - 誰能夠使用個人急救包來達到完整醫療? + 谁能够使用个人急救包来达到完整医疗? + 誰能夠使用個人急救包來達到完整醫療? Anyone @@ -4529,8 +4529,8 @@ Chiunque だれでも 모두 - 任何人 - 任何人 + 任何人 + 任何人 Medics only @@ -4545,8 +4545,8 @@ Solo medici 衛生兵のみ 의무병만 - 只限医疗兵 - 只限醫療兵 + 只限医疗兵 + 只限醫療兵 Doctors only @@ -4561,8 +4561,8 @@ Solo dottori 医師のみ 의사만 - 只限军医 - 只限軍醫 + 只限军医 + 只限軍醫 Remove PAK on use @@ -4577,8 +4577,8 @@ Rimuovi Kit Pronto Soccorso dopo l'uso 応急処置キットの削除 개인응급키트 사용후 사라짐 - 在使用后删除个人急救包 - 在使用後刪除個人急救包 + 在使用后删除个人急救包 + 在使用後刪除個人急救包 Should PAK be removed on usage? @@ -4593,8 +4593,8 @@ Il Kit Pronto Soccorso dev'essere rimosso dopo l'utilizzo? 応急処置キットを使うと削除しますか? 개인응급키트를 사용하고 나서 제거합니까? - 要在使用后删除个人急救包吗? - 要在使用後刪除個人急救包嗎? + 要在使用后删除个人急救包吗? + 要在使用後刪除個人急救包嗎? Locations Epinephrine @@ -4608,8 +4608,8 @@ Место использования адреналина アドレナリンをつかう場所 에피네프린 사용 장소 - 肾上腺素使用地点 - 腎上腺素使用地點 + 肾上腺素使用地点 + 腎上腺素使用地點 Where can the Epinephrine be used? (Basic Medical) @@ -4623,8 +4623,8 @@ Где может использоваться адреналин? (Базовая медицина) どこでもアドレナリンをつかえるようにしますか?(ベーシック医療のみ) 어디에서 에피네프린을 사용할 수 있습니까? (기본 의료) - 在哪里可以使用肾上腺素? (基本医疗) - 在哪裡可以使用腎上腺素? (基本醫療) + 在哪里可以使用肾上腺素? (基本医疗) + 在哪裡可以使用腎上腺素? (基本醫療) Locations PAK @@ -4639,8 +4639,8 @@ Locazioni Kit Pronto Soccorso 応急処置キットをつかう場所 개인응급키트 사용 장소 - 个人急救包使用地点 - 個人急救包使用地點 + 个人急救包使用地点 + 個人急救包使用地點 Where can the PAK be used? @@ -4655,8 +4655,8 @@ Dove può essere usato il Kit Pronto Soccorso? どこでも応急処置キットをつかえるようにしますか? 어디에서 개인응급키트를 사용할 수 있습니까? - 在哪里可以使用个人急救包? - 在哪裡可以使用個人急救包? + 在哪里可以使用个人急救包? + 在哪裡可以使用個人急救包? Condition PAK @@ -4671,8 +4671,8 @@ Condizioni Kit Pronto Soccorso 応急処置キットの状態 개인응급키트 상태 - 个人急救包使用条件 - 個人急救包使用條件 + 个人急救包使用条件 + 個人急救包使用條件 When can the PAK be used? @@ -4687,8 +4687,8 @@ Quando può essere usato il Kit Pronto Soccorso? どこでも応急処置キットをつかえるようにしますか? 언제 개인응급키트를 사용할 수 있습니까? - 何时可以使用个人急救包? - 何時可以使用個人急救包? + 何时可以使用个人急救包? + 何時可以使用個人急救包? Anywhere @@ -4703,8 +4703,8 @@ Ovunque どこでも 어디서나 - 任何地方 - 任何地方 + 任何地方 + 任何地方 Medical vehicles @@ -4719,8 +4719,8 @@ Veicoli medici 医療車両のみ 의료차량 - 医疗载具 - 醫療載具 + 医疗载具 + 醫療載具 Medical facility @@ -4735,8 +4735,8 @@ Strutture mediche 医療施設でのみ 의료시설 - 医疗设施 - 醫療設施 + 医疗设施 + 醫療設施 Vehicles & facility @@ -4751,8 +4751,8 @@ Veicoli e Strutture 車両 & 施設 차량 및 시설 - 医疗载具 & 医疗设施 - 醫療載具 & 醫療設施 + 医疗载具 & 医疗设施 + 醫療載具 & 醫療設施 Allow Surgical Kit (Adv) @@ -4767,8 +4767,8 @@ Permetti Kit Chirurgico (Avanzato) 縫合キットの許可 (アド) 봉합키트 활성화 (고급) - 允许使用手术包 (进阶伤口) - 允許使用手術包 (進階傷口) + 允许使用手术包 (进阶伤口) + 允許使用手術包 (進階傷口) Who can use the Surgical Kit? @@ -4783,8 +4783,8 @@ Chi può usare il Kit Chirurgico? だれでも縫合キットをつかえるようにしますか? 어느 인원이 봉합키트를 사용할 수 있습니까? - 谁能够使用手术包? - 誰能夠使用手術包? + 谁能够使用手术包? + 誰能夠使用手術包? Remove Surgical Kit (Adv) @@ -4799,8 +4799,8 @@ Rimuovi Kit Chirurgico (Avanzato) 縫合キットを削除 (アド) 봉합키트 제거 (고급) - 在使用后删除手术包 (进阶伤口) - 在使用後刪除手術包 (進階傷口) + 在使用后删除手术包 (进阶伤口) + 在使用後刪除手術包 (進階傷口) Should Surgical kit be removed on usage? @@ -4815,8 +4815,8 @@ Il Kit Chirurgico dev'essere rimosso dopo l'uso? 縫合キットをつかった後に削除しますか? 봉합키트를 사용하고 나서 제거합니까? - 手术包会在使用后被删除吗? - 手術包會在使用後被刪除嗎? + 手术包会在使用后被删除吗? + 手術包會在使用後被刪除嗎? Locations Surgical Kit (Adv) @@ -4831,8 +4831,8 @@ Località Kit Chirurgico (Avanzato) 縫合キットをつかう場所 (アド) 봉합키트 사용 장소 (고급) - 手术包使用地点 (进阶伤口) - 手術包使用地點 (進階傷口) + 手术包使用地点 (进阶伤口) + 手術包使用地點 (進階傷口) Where can the Surgical Kit be used? @@ -4847,8 +4847,8 @@ Dove può essere usato il Kit Chirurgico? どこでも縫合キットをつかえるようにしますか? 어디에서 봉합키트를 사용할 수 있게 합니까? - 定义手术包可被使用的地方? - 定義手術包可被使用的地方? + 定义手术包可被使用的地方? + 定義手術包可被使用的地方? Condition Surgical Kit (Adv) @@ -4863,8 +4863,8 @@ Condizioni Kit Chirurgico (Avanzato) 縫合キットの状態 (アド) 봉합키트 상태 (고급) - 使用手术包的条件 (进阶伤口) - 使用手術包的條件 (進階傷口) + 使用手术包的条件 (进阶伤口) + 使用手術包的條件 (進階傷口) When can the Surgical Kit be used? @@ -4879,8 +4879,8 @@ Quando può essere usato il Kit Chirurgico? いつでも縫合キットをつかえるようにしますか? 언제 봉합키트를 사용할 수 있습니까? - 何时可以使用手术工具包? - 何時可以使用手術工具包? + 何时可以使用手术工具包? + 何時可以使用手術工具包? Heal hitpoints @@ -4894,8 +4894,8 @@ Soigner les blessures ヒットポイントの回復 체력 회복 - 完整治疗 - 完整治療 + 完整治疗 + 完整治療 Heal fully bandaged hitpoints @@ -4909,8 +4909,8 @@ Soigner les plaies entièrement bandées. 包帯によりヒットポイントを完全に回復する 붕대를 감아서 체력을 회복 - 完全医疗包扎的部位至痊愈 - 完全醫療包紮的部位至痊癒 + 完全医疗包扎的部位至痊愈 + 完全醫療包紮的部位至痊癒 Pain suppression @@ -4925,8 +4925,8 @@ Soppressione dolore 痛みの継続 고통 억제 - 疼痛抑制 - 疼痛抑制 + 疼痛抑制 + 疼痛抑制 Pain is only temporarily suppressed, not removed @@ -4941,8 +4941,8 @@ Dolore è solo temporaneamente soppresso, non rimosso 痛みを一時的に継続させ、取り除かない 고통은 제거가 아닌 일시적으로 억제만 가능합니다. - 疼痛只会被暂时抑制, 而不能完全消除 - 疼痛只會被暫時抑制, 而不能完全消除 + 疼痛只会被暂时抑制, 而不能完全消除 + 疼痛只會被暫時抑制, 而不能完全消除 Configure the treatment settings from ACE Basic Medical @@ -4955,8 +4955,8 @@ Настройка лечения в базовой медицинской системе ACE ACE ベーシック医療による設定で、治療を設定する ACE 기본 의료에 대한 치료 설정 수정 - 设定ACE基本医疗的规则 - 設定ACE基本醫療的規則 + 设定ACE基本医疗的规则 + 設定ACE基本醫療的規則 Configure the treatment settings from ACE Advanced Medical @@ -4971,8 +4971,8 @@ Configura le impostazioni trattamenti per ACE Medical ACE アドバンスド医療による設定で、治療を設定する ACE 고급 의료에 대한 치료 설정 수정 - 设定ACE进阶医疗的规则 - 設定ACE進階醫療的規則 + 设定ACE进阶医疗的规则 + 設定ACE進階醫療的規則 Revive Settings [ACE] @@ -4987,8 +4987,8 @@ Impostazioni Revive [ACE] リバイブ設定 [ACE] 소생 설정 [ACE] - 复苏设定 [ACE] - 復甦設定 [ACE] + 复苏设定 [ACE] + 復甦設定 [ACE] Enable Revive @@ -5003,8 +5003,8 @@ Abilita Revive リバイブを有効化 소생 활성화 - 启用复苏 - 啟用復甦 + 启用复苏 + 啟用復甦 Enable a basic revive system @@ -5019,8 +5019,8 @@ Abilita un sistema revive basico ベーシックなリバイブを有効化 기본 소생 시스템 활성화 - 启用基本复苏系统 - 啟用基本復甦系統 + 启用基本复苏系统 + 啟用基本復甦系統 Max Revive time @@ -5035,8 +5035,8 @@ Tempo massimo Revive 最大リバイブ時間 최대 소생 시간 - 最大复苏时间 - 最大復甦時間 + 最大复苏时间 + 最大復甦時間 Max amount of seconds a unit can spend in revive state @@ -5051,8 +5051,8 @@ Numero massimo di secondi che un'unità può spendere in stato revive ユニットがリバイブ状態になっている最大時間を設定できます 소생상태에서 인원이 버틸 수 있는 최대 시간을 초 단위로 정합니다 - 人员在等待复苏状态下能够等待的最大时间(秒) - 人員在等待復甦狀態下能夠等待的最大時間(秒) + 人员在等待复苏状态下能够等待的最大时间(秒) + 人員在等待復甦狀態下能夠等待的最大時間(秒) Max Revive lives @@ -5067,8 +5067,8 @@ Numero massimo Revives 最大リバイブ数 최대 소생 횟수 - 最大被救活次数 - 最大被救活次數 + 最大被救活次数 + 最大被救活次數 Max amount of lives a unit. 0 or -1 is disabled. @@ -5083,8 +5083,8 @@ Numero massimo di vite di un'unità. 0 o -1 per disabilitare. ユニットの最大リバイブ数を設定できます。0 または -1 は無効化になります 소생 가능한 횟수입니다. 0 혹은 -1 로 비활성화 합니다 - 一个人员最大可被救活次数, 0或-1为关闭 (无限救活). - 一個人員最大可被救活次數, 0或-1為關閉 (無限救活). + 一个人员最大可被救活次数, 0或-1为关闭 (无限救活). + 一個人員最大可被救活次數, 0或-1為關閉 (無限救活). Provides a medical system for both players and AI. @@ -5099,8 +5099,8 @@ Fornisce un sistema medico sia per giocatori che IA プレイヤーと AI の両方へ医療システムを提供します。 플레이어와 인공지능 모두에게 의료 시스템을 지원합니다. - 医疗系统将同时作用在玩家与AI - 醫療系統將同時作用在玩家與AI + 医疗系统将同时作用在玩家与AI + 醫療系統將同時作用在玩家與AI Set Medic Class [ACE] @@ -5115,8 +5115,8 @@ Imposta Classe Medico [ACE] 衛生兵クラスとして設定 [ACE] 의무병 보직 설정 [ACE] - 设定医疗兵单位 [ACE] - 設定醫療兵單位 [ACE] + 设定医疗兵单位 [ACE] + 設定醫療兵單位 [ACE] List @@ -5131,8 +5131,8 @@ Lista 一覧 목록 - 列表 - 列表 + 列表 + 列表 List of unit names that will be classified as medic, separated by commas. @@ -5147,8 +5147,8 @@ Lista di nomi unità che verranno classificati come medici, separati da virgole. 衛生兵として設定されるユニット名を一覧で指定でき、コンマで区切りを付けられます。 보직 이름 목록으로 의무병이 구분됩니다, 쉼표로 구분. - 列出的单位名字将被指派为医疗兵, 记得用逗号隔开! - 列出的單位名字將被指派為醫療兵, 記得用逗號隔開! + 列出的单位名字将被指派为医疗兵, 记得用逗号隔开! + 列出的單位名字將被指派為醫療兵, 記得用逗號隔開! Is Medic @@ -5163,8 +5163,8 @@ E' Medico 衛生兵として 의무병 - 是医疗兵 - 是醫療兵 + 是医疗兵 + 是醫療兵 This module allows you to assign the medic class to selected units. @@ -5179,8 +5179,8 @@ Questo modulo ti permette di assegnare la classe Medico alle unità selezionate. 選択されたユニットを衛生兵として指定します。 이 모듈은 선택한 보직이 의무병을 할 수 있게 해줍니다. - 本模块可让被同步的单位成为医疗兵. - 本模塊可讓被同步的單位成為醫療兵. + 本模块可让被同步的单位成为医疗兵. + 本模塊可讓被同步的單位成為醫療兵. None @@ -5195,8 +5195,8 @@ Nessuno なし 없음 - - + + Regular medic @@ -5211,8 +5211,8 @@ Medico Regolare 通常の衛生兵 일반 의무병 - 普通医疗兵 - 普通醫療兵 + 普通医疗兵 + 普通醫療兵 Doctor (Only Advanced Medics) @@ -5227,8 +5227,8 @@ Dottore (Solo Medici Avanzati) 医師 (アドバンスド医療のみ) 의사 (오직 고급 의료에서만) - 军医 (只限进阶医疗系统) - 軍醫 (只限進階醫療系統) + 军医 (只限进阶医疗系统) + 軍醫 (只限進階醫療系統) Doctor @@ -5243,8 +5243,8 @@ Dottore 医師 의사 - 军医 - 軍醫 + 军医 + 軍醫 Assigns the ACE medic class to a unit @@ -5259,8 +5259,8 @@ Assegna la classe medico ACE ad un'unità ユニットを ACE の衛生兵として割り当てる 인원에게 ACE 의무병 보직 선정 - 指派ACE医疗职位给该单位 - 指派ACE醫療職位給該單位 + 指派ACE医疗职位给该单位 + 指派ACE醫療職位給該單位 Set Medical Vehicle [ACE] @@ -5275,8 +5275,8 @@ Imposta Veicolo Medico [ACE] 医療車両を設定 [ACE] 의료 차랑 선정 [ACE] - 设定医疗载具 [ACE] - 設定醫療載具 [ACE] + 设定医疗载具 [ACE] + 設定醫療載具 [ACE] List @@ -5291,8 +5291,8 @@ Lista 一覧 목록 - 列表 - 列表 + 列表 + 列表 List of vehicles that will be classified as medical vehicle, separated by commas. @@ -5307,8 +5307,8 @@ Lista di veicoli che verranno classificati come veicoli medici, separati da virgole. 医療車両として設定されるクラス名を一覧で指定でき、コンマで区切りを付けられます 차량 명칭 목록으로 의료차량이 구분됩니다, 쉼표로 구분. - 列出的载具将被指定为医疗载具, 记得用逗号隔开! - 列出的載具將被指定為醫療載具, 記得用逗號隔開! + 列出的载具将被指定为医疗载具, 记得用逗号隔开! + 列出的載具將被指定為醫療載具, 記得用逗號隔開! Is Medical Vehicle @@ -5323,8 +5323,8 @@ E' Veicolo Medico 医療車両として 의료 차량 - 是医疗载具 - 是醫療載具 + 是医疗载具 + 是醫療載具 Whatever or not the objects in the list will be a medical vehicle. @@ -5339,8 +5339,8 @@ Gli oggetti nella lista verranno considerati veicoli medici o meno. どれでも、またはこの一覧にないオブジェクトを医療車両として割り当てる。 무엇이 되었던간에 이 목록에 있는 물체는 의료 차량이 됩니다. - 列表中的载具将会变成医疗载具 - 列表中的載具將會變成醫療載具 + 列表中的载具将会变成医疗载具 + 列表中的載具將會變成醫療載具 Assigns the ACE medic class to a unit @@ -5355,8 +5355,8 @@ Assegna la classe medico ACE ad un'unità ユニットを ACE の衛生兵として割り当てる 차량에 ACE 의무병 보직 선정 - 指派ACE医疗职位给该单位 - 指派ACE醫療職位給該單位 + 指派ACE医疗职位给该单位 + 指派ACE醫療職位給該單位 Set Medical Facility [ACE] @@ -5371,8 +5371,8 @@ Imposta Struttura Medica [ACE] 医療施設を設定 [ACE] 의료시설 선정 [ACE] - 设定医疗设施 [ACE] - 設定醫療設施 [ACE] + 设定医疗设施 [ACE] + 設定醫療設施 [ACE] Is Medical Facility @@ -5387,8 +5387,8 @@ E' Struttura Medica 医療施設として 의료시설 - 是医疗设施 - 是醫療設施 + 是医疗设施 + 是醫療設施 Registers an object as a medical facility @@ -5403,8 +5403,8 @@ Registra un oggetto come struttura medica オブジェクトを医療施設として割り当てる 물체를 의료시설로 등록합니다 - 指定一个物件作为医疗设施 - 指定一個物件作為醫療設施 + 指定一个物件作为医疗设施 + 指定一個物件作為醫療設施 Defines an object as a medical facility. This allows for more advanced treatments. Can be used on buildings and vehicles. @@ -5419,8 +5419,8 @@ Definisce un oggetto come struttura medica. Questo permette cure più avanzate. Può essere usato su edifici e veicoli. オブジェクトを医療施設として割り当てます。建物と車両へ割り当てられた場合、より高度な治療が可能になります。 물체를 의료시설로 정의합니다. 건물 혹은 차량이 될 수 있습니다. 이는 고급 의료 조치를 할 수 있게해줍니다. - 定义一个物件作为医疗设施, 此医疗设施将被允许使用更进阶的医疗方法. 此功能可用于建筑物或是载具上! - 定義一個物件作為醫療設施, 此醫療設施將被允許使用更進階的醫療方法. 此功能可用於建築物或是載具上! + 定义一个物件作为医疗设施, 此医疗设施将被允许使用更进阶的医疗方法. 此功能可用于建筑物或是载具上! + 定義一個物件作為醫療設施, 此醫療設施將被允許使用更進階的醫療方法. 此功能可用於建築物或是載具上! [ACE] Medical Supply Crate (Basic) @@ -5435,8 +5435,8 @@ [ACE] Cassa Rifornimenti Medici (Basico) [ACE] 医療物資箱 (ベーシック) [ACE] 의료 물자 (기본) - [ACE] 医疗补给箱(基本) - [ACE] 醫療補給箱(基本) + [ACE] 医疗补给箱(基本) + [ACE] 醫療補給箱(基本) [ACE] Medical Supply Crate (Advanced) @@ -5451,8 +5451,8 @@ [ACE] Cassa Rifornimenti Medici (Avanzato) [ACE] 医療物資箱 (アドバンスド) [ACE] 의료 물자 (고급) - [ACE] 医疗补给箱(进阶) - [ACE] 醫療補給箱(進階) + [ACE] 医疗补给箱(进阶) + [ACE] 醫療補給箱(進階) Anytime @@ -5467,8 +5467,8 @@ Sempre いつでも 언제나 - 任何时间 - 任何時間 + 任何时间 + 任何時間 Stable @@ -5483,8 +5483,8 @@ Stabile 安定 안정된 - 稳定状态下 - 穩定狀態下 + 稳定状态下 + 穩定狀態下 Medical @@ -5499,8 +5499,8 @@ Orvosi 治療 의료 - 医疗设定 - 醫療設定 + 医疗设定 + 醫療設定 Distance to %1 has become to far for treatment @@ -5514,8 +5514,8 @@ %1 est trop loin pour être soigné %1 は治療をできない所まで離れた %1 부터의 거리가 너무 멀어 치료할 수 없습니다 - 设定当距离超过%1将不能使用治疗动作 - 設定當距離超過%1將不能使用治療動作 + 设定当距离超过%1将不能使用治疗动作 + 設定當距離超過%1將不能使用治療動作 This person (%1) is awake and cannot be loaded @@ -5529,8 +5529,8 @@ %1 est conscient et ne peut être embarqué. 患者 (%1) は意識があり、積み込めない 이 사람 (%1) 은(는) 의식이 있어 태우지 못합니다 - 此人(%1)是清醒且不能被装载 - 此人(%1)是清醒且不能被裝載 + 此人(%1)是清醒且不能被装载 + 此人(%1)是清醒且不能被裝載 There is no tourniquet on this body part! @@ -5544,8 +5544,8 @@ Il n'y a pas de garrot sur ce membre ! 身体には止血帯が無い! 이 부위에는 지혈대가 없습니다! - 这部位没有止血带! - 這部位沒有止血帶! + 这部位没有止血带! + 這部位沒有止血帶! Medical training @@ -5559,8 +5559,8 @@ Медицинская подготовка 治療の訓練 의료 훈련 - 医疗训练 - 醫療訓練 + 医疗训练 + 醫療訓練 Whether or not the object will be a medical vehicle. @@ -5573,8 +5573,8 @@ Будет ли объект считаться медицинским транспортом. どれでも、またはオブジェクトを医療車両として割り当てます。 무엇이 되었던간에 이 목록에 있는 물체는 의료 차량이 됩니다. - 是否使该载具为医疗载具? - 是否使該載具為醫療載具? + 是否使该载具为医疗载具? + 是否使該載具為醫療載具? Delay cease fire of AI while player is unconscious for medical reasons. @@ -5587,8 +5587,8 @@ AI はプレイヤーが医療的な理由で気絶している場合にかぎり、撃つのをためらいます。 Opóźnij stan wstrzymania ognia u AI kiedy gracz jest nieprzytomny z powodów medycznych. 의료상의 이유로 플레이어가 기절할 경우 인공지능이 발사를 지연합니다. - 当玩家为无意识的状态时, 延长AI的停火时间 - 當玩家為無意識的狀態時, 延長AI的停火時間 + 当玩家为无意识的状态时, 延长AI的停火时间 + 當玩家為無意識的狀態時, 延長AI的停火時間 Delay cease fire of AI for unconsciousness @@ -5602,8 +5602,8 @@ Задержка прекращения огня ботами при потере сознания AI は気絶している人へ、ためらってから射撃します 기절할 경우 인공지능이 발사를 지연합니다 - 延长AI对已无意识玩家的停火时间 - 延長AI對已無意識玩家的停火時間 + 延长AI对已无意识玩家的停火时间 + 延長AI對已無意識玩家的停火時間 diff --git a/addons/medical_ai/stringtable.xml b/addons/medical_ai/stringtable.xml index 5c93be2f33d..8a8068e7d67 100644 --- a/addons/medical_ai/stringtable.xml +++ b/addons/medical_ai/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -10,8 +10,8 @@ Tylko serwer i HC Seulement sur le server ou le HC Solo Server e HC - 只在伺服器或无头客户端 - 只在伺服器或無頭客戶端 + 只在伺服器或无头客户端 + 只在伺服器或無頭客戶端 diff --git a/addons/medical_blood/stringtable.xml b/addons/medical_blood/stringtable.xml index 8a24ad79b53..1e61151d0d7 100644 --- a/addons/medical_blood/stringtable.xml +++ b/addons/medical_blood/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -9,8 +9,8 @@ Tylko gracze Joueurs seulement Solo Giocatori - 只有玩家 - 只有玩家 + 只有玩家 + 只有玩家 Enable Blood Drops @@ -20,8 +20,8 @@ Włącz ślady krwi na ziemi Active les gouttes de sang Abilita Perdite di Sangue - 开启血液滴落效果 - 開啟血液滴落效果 + 开启血液滴落效果 + 開啟血液滴落效果 Enable or disable Blood Drops created on bleeding and taking damage @@ -30,8 +30,8 @@ Włącz lub wyłącz pozostawianie śladów krwi na ziemi kiedy postać odnosi obrażenia bądź krwawi (Dés)active les gouttes de sang lors d'un saignement ou de blessure Abilita o disabilita la Perdite di Sangue create sanguinando e prendendo danno - 开启后, 会让受伤时伤口有血液滴落的效果. - 開啟後, 會讓受傷時傷口有血液滴落的效果. + 开启后, 会让受伤时伤口有血液滴落的效果. + 開啟後, 會讓受傷時傷口有血液滴落的效果. diff --git a/addons/medical_menu/stringtable.xml b/addons/medical_menu/stringtable.xml index daae65cc65b..20180d3b91e 100644 --- a/addons/medical_menu/stringtable.xml +++ b/addons/medical_menu/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,8 +13,8 @@ Menu médical 治療メニュー 의료 메뉴 - 医疗选单 - 醫療選單 + 医疗选单 + 醫療選單 Allow Medical Menu @@ -28,8 +28,8 @@ Autoriser le menu médical 治療メニューを有効化 의료 메뉴 활성화 - 允许医疗选单 - 允許醫療選單 + 允许医疗选单 + 允許醫療選單 Allow clients to use the medical menu @@ -43,8 +43,8 @@ Autoriser les clients à utiliser le menu médical すべてのクライアントが治療メニューをつかえるようにする 클라이언트가 의료 메뉴를 쓰는것을 허락합니다 - 允许客户端使用医疗选单 - 允許客戶端使用醫療選單 + 允许客户端使用医疗选单 + 允許客戶端使用醫療選單 Use Medical menu @@ -58,8 +58,8 @@ Utiliser le menu médical 治療メニューをつかう 의료 메뉴 사용 - 使用医疗选单 - 使用醫療選單 + 使用医疗选单 + 使用醫療選單 If allowed by server, enable the option to use the Medical Menu through keybinding and interaction menu @@ -73,8 +73,8 @@ Si autorisé par le serveur, active l'option d'utiliser le menu médical à travers les raccourcis clavier et le menu d'interaction. サーバーが有効化を許可している場合は、オプションから有効化でき治療メニューはキー割り当てとインタラクション メニューを無視できます 서버 허가하에 단축키와 상호작용 메뉴로 의료 메뉴사용을 허가합니다 - 如果伺服器允许, 只需透过按键即可叫出医疗选单 - 如果伺服器允許, 只需透過按鍵即可叫出醫療選單 + 如果伺服器允许, 只需透过按键即可叫出医疗选单 + 如果伺服器允許, 只需透過按鍵即可叫出醫療選單 Re-open Medical menu @@ -88,8 +88,8 @@ Ré-ouvrir le menu médical 治療メニューを再びひらく 의료 메뉴 다시 열기 - 重新开启医疗选单 - 重新開啟醫療選單 + 重新开启医疗选单 + 重新開啟醫療選單 Re-open the medical menu after succesful treatment @@ -103,8 +103,8 @@ Ré-ouvrir le menu médical après un traitement réussi 治療が終わったあと、再び治療メニューをひらく 성공적으로 치료한후에 의료 메뉴를 다시 엽니다 - 当治疗成功后重新打开医疗选单 - 當治療成功後重新打開醫療選單 + 当治疗成功后重新打开医疗选单 + 當治療成功後重新打開醫療選單 Open Medical Menu @@ -118,8 +118,8 @@ Ouvir le menu médical 治療メニューをひらく 의료 메뉴 열기 - 开起医疗选单 - 開起醫療選單 + 开起医疗选单 + 開起醫療選單 Medical Menu Settings @@ -133,8 +133,8 @@ Réglages du menu médical 治療メニューの設定 의료 메뉴 설정 - 医疗选单设定 - 醫療選單設定 + 医疗选单设定 + 醫療選單設定 Configure the usage of the Medical Menu @@ -148,8 +148,8 @@ Configurer l'utilisation du menu médical 治療メニューを使うための設定 의료 메뉴 사용의 설정 - 设置医疗选单的使用 - 設置醫療選單的使用 + 设置医疗选单的使用 + 設置醫療選單的使用 EXAMINE & TREATMENT @@ -163,8 +163,8 @@ ESAMINA & TRATTA 診断 & 治療 검사 / 치료 - 检查 & 治疗 - 檢查 & 治療 + 检查 & 治疗 + 檢查 & 治療 STATUS @@ -178,8 +178,8 @@ STATO 状態 상태 - 状态 - 狀態 + 状态 + 狀態 OVERVIEW @@ -193,8 +193,8 @@ PANORAMICA オーバービュー 개요 - 概述 - 概述 + 概述 + 概述 ACTIVITY LOG @@ -208,8 +208,8 @@ LOG ATTIVITA' 治療履歴 활동 로그 - 医疗纪录 - 醫療紀錄 + 医疗纪录 + 醫療紀錄 QUICK VIEW @@ -223,8 +223,8 @@ VISTA RAPIDA クイック ビュー 퀵 뷰 - 快速检查 - 快速檢查 + 快速检查 + 快速檢查 View triage Card @@ -238,8 +238,8 @@ Guarda Triage Card トリアージ カードを見る 부상자 카드 보기 - 查看诊断卡 - 查看診斷卡 + 查看诊断卡 + 查看診斷卡 Examine Patient @@ -253,8 +253,8 @@ Esamina Paziente 患者を調べる 환자 검사하기 - 检查伤者 - 檢查傷者 + 检查伤者 + 檢查傷者 Bandage / Fractures @@ -268,8 +268,8 @@ Bendaggi/Fratture 包帯 / 骨折 붕대 / 골절 - 绷带 / 骨折 - 繃帶 / 骨折 + 绷带 / 骨折 + 繃帶 / 骨折 Medication @@ -283,8 +283,8 @@ Medicazione 薬物による治療 약물 치료 - 药物 - 藥物 + 药物 + 藥物 Airway Management @@ -298,8 +298,8 @@ Atemwegssicherung 気道を確保 기도 관리 - 呼吸道管理 - 呼吸道管理 + 呼吸道管理 + 呼吸道管理 Advanced Treatments @@ -313,8 +313,8 @@ Trattamenti Avanzati 高度な治療 고급 치료 - 进阶治疗 - 進階治療 + 进阶治疗 + 進階治療 Drag/Carry @@ -328,8 +328,8 @@ Trascina/Trasporta 引きずる / 運ぶ 끌기 / 들기 - 拖 / 背 - 拖 / 背 + 拖 / 背 + 拖 / 背 Toggle (Self) @@ -343,8 +343,8 @@ Attiva (Te Stesso) トグル (自分) 토글 (자신) - 切换 (自己) - 切換 (自己) + 切换 (自己) + 切換 (自己) Select triage status @@ -358,8 +358,8 @@ Seleziona stato Triage トリアージによる状態を選択 부상 상태 고르기 - 选择分诊状态 - 選擇分診狀態 + 选择分诊状态 + 選擇分診狀態 Select Head @@ -373,8 +373,8 @@ Seleziona Testa 頭部を選ぶ 머리 선택 - 选择头部 - 選擇頭部 + 选择头部 + 選擇頭部 Select Torso @@ -388,8 +388,8 @@ Seleziona Torso 胴体を選ぶ 몸통 선택 - 选择身体 - 選擇身體 + 选择身体 + 選擇身體 Select Left Arm @@ -403,8 +403,8 @@ Seleziona Braccio Sinistro 左腕を選ぶ 왼쪽 팔 선택 - 选择左手 - 選擇左手 + 选择左手 + 選擇左手 Select Right Arm @@ -418,8 +418,8 @@ Seleziona Braccio Destro 右腕を選ぶ 오른쪽 팔 선택 - 选择右手 - 選擇右手 + 选择右手 + 選擇右手 Select Left Leg @@ -433,8 +433,8 @@ Seleziona Gamba Sinistra 左足を選ぶ 왼쪽 다리 선택 - 选择左脚 - 選擇左腳 + 选择左脚 + 選擇左腳 Select Right Leg @@ -448,8 +448,8 @@ Seleziona Gamba Destra 右足を選ぶ 오른쪽 다리 선택 - 选择右脚 - 選擇右腳 + 选择右脚 + 選擇右腳 Head @@ -463,8 +463,8 @@ Testa 頭部 머리 - 头部 - 頭部 + 头部 + 頭部 Torso @@ -478,8 +478,8 @@ Torso 胴体 몸통 - 身体 - 身體 + 身体 + 身體 Left Arm @@ -493,8 +493,8 @@ Braccio Sinistro 左腕 왼쪽 팔 - 左手 - 左手 + 左手 + 左手 Right Arm @@ -508,8 +508,8 @@ Braccio Destro 右腕 오른쪽 팔 - 右手 - 右手 + 右手 + 右手 Left Leg @@ -523,8 +523,8 @@ Gamba Sinistra 左足 왼쪽 다리 - 左脚 - 左腳 + 左脚 + 左腳 Right Leg @@ -538,8 +538,8 @@ Gamba Destra 右足 오른쪽 다리 - 右脚 - 右腳 + 右脚 + 右腳 Body Part: %1 @@ -553,8 +553,8 @@ Parte del Corpo: %1 身体の一部: %1 신체 부위: %1 - 身体部位: %1 - 身體部位: %1 + 身体部位: %1 + 身體部位: %1 Small @@ -568,8 +568,8 @@ Piccolo 小さい - - + + Medium @@ -583,8 +583,8 @@ Medio 中くらい - - + + Large @@ -598,8 +598,8 @@ Grande 大きい - - + + There are %2 %1 Open Wounds @@ -613,8 +613,8 @@ Ci sono %2 %1 Ferite Aperte 開いている傷口が %2 %1 ほどあるようだ 여기 %2 %1 크기의 열린 상처가 있다 - 有 %2 %1 开放性伤口 - 有 %2 %1 開放性傷口 + 有 %2 %1 开放性伤口 + 有 %2 %1 開放性傷口 There is 1 %1 Open Wound @@ -628,8 +628,8 @@ C'è 1 %1 Ferita Aperta 1 つの空いている %1 傷口 여기 %1 크기의 열린 상처가 있다 - 有 1 %1 开放性伤口 - 有 1 %1 開放性傷口 + 有 1 %1 开放性伤口 + 有 1 %1 開放性傷口 There is a partial %1 Open wound @@ -643,8 +643,8 @@ C'è 1 parziale %1 Ferita Aperta 部分的に開いている %1 の傷口がある 여기 부분적으로 %1 크기의 상처가 있다 - 有部分 %1 开放性伤口 - 有部分 %1 開放性傷口 + 有部分 %1 开放性伤口 + 有部分 %1 開放性傷口 There are %2 %1 Bandaged Wounds @@ -658,8 +658,8 @@ Ci sono %2 %1 Ferite Bendate ここには %2 %1 の処置された傷がある 여기에 붕대를 감은 %2 %1 크기의 상처가 있다 - 有 %2 %1 包扎过伤口 - 有 %2 %1 包紮過傷口 + 有 %2 %1 包扎过伤口 + 有 %2 %1 包紮過傷口 There is 1 %1 Bandaged Wound @@ -673,8 +673,8 @@ C'è 1 %1 Ferita Bendata 1 つの包帯で巻かれている %1 傷 여기에 붕대를 감은 %1 크기의 상처가 있다 - 有 1 %1 包扎过伤口 - 有 1 %1 包紮過傷口 + 有 1 %1 包扎过伤口 + 有 1 %1 包紮過傷口 There is a partial %1 Bandaged wound @@ -688,8 +688,8 @@ C'è 1 parziale %1 Ferita Bendata 患者には %1 の包帯で処置された傷がある 여기 부분적으로 붕대질한 %1 크기의 상처가 있다 - 有部分 %1 包扎过伤口 - 有部分 %1 包紮過傷口 + 有部分 %1 包扎过伤口 + 有部分 %1 包紮過傷口 Normal breathing @@ -703,8 +703,8 @@ Respirazione Normale 通常の呼吸 정상 호흡 - 正常呼吸 - 正常呼吸 + 正常呼吸 + 正常呼吸 No breathing @@ -718,8 +718,8 @@ Nessuna Respirazione 息をしていない 호흡이 없음 - 没有呼吸 - 沒有呼吸 + 没有呼吸 + 沒有呼吸 Difficult breathing @@ -733,8 +733,8 @@ Difficoltà Respiratorie 呼吸が難しそうだ 호흡 곤란 - 呼吸困难 - 呼吸困難 + 呼吸困难 + 呼吸困難 Almost no breathing @@ -748,8 +748,8 @@ Quasi nessuna Respirazione ほとんど呼吸していない 호흡이 거의 없음 - 几乎没有呼吸 - 幾乎沒有呼吸 + 几乎没有呼吸 + 幾乎沒有呼吸 Bleeding @@ -763,8 +763,8 @@ Sanguinamento 出血 출혈 - 出血中 - 出血中 + 出血中 + 出血中 in Pain @@ -778,8 +778,8 @@ in Dolore 痛みがある 고통 - 疼痛中 - 疼痛中 + 疼痛中 + 疼痛中 Lost a lot of Blood @@ -793,8 +793,8 @@ Perso molto Sangue 大量出血している 많은 피를 흘림 - 大量失血 - 大量失血 + 大量失血 + 大量失血 Tourniquet [CAT] @@ -808,8 +808,8 @@ Laccio Emostatico [CAT] 止血帯 [CAT] 지혈대 [CAT] - 军用止血带 - 軍用止血帶 + 军用止血带 + 軍用止血帶 Nasopharyngeal Tube [NPA] @@ -823,8 +823,8 @@ Tubo Nasofaringeo [NPA] 鼻咽頭チューブ [NPA] 비-인두 기도기 [NPA] - 鼻咽管 - 鼻咽管 + 鼻咽管 + 鼻咽管 diff --git a/addons/microdagr/stringtable.xml b/addons/microdagr/stringtable.xml index 44fa85c25a0..af18c39c039 100644 --- a/addons/microdagr/stringtable.xml +++ b/addons/microdagr/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ GPS MicroDAGR MicroDAGR GPS MicroDAGR GPS - 微型军用GPS接收器 - 微型軍用GPS接收器 + 微型军用GPS接收器 + 微型軍用GPS接收器 MicroDAGR advanced GPS receiver @@ -30,8 +30,8 @@ Recepitor GPS avançado MicroDAGR MicroDAGR は改良された GPS 受信機です MicroDAGR 고급 위성항법 수신기 - 微型军用高级防御GPS接收器 - 微型軍用高級防禦GPS接收器 + 微型军用高级防御GPS接收器 + 微型軍用高級防禦GPS接收器 Angular Unit: @@ -46,8 +46,8 @@ Unidade Angular: 角度の種類: 각도의 단위: - 角密位: - 角密位: + 角密位: + 角密位: Mils @@ -62,8 +62,8 @@ Mils: ミリ ラジアン - 密位 - 密位 + 密位 + 密位 Show Waypoints On Map: @@ -78,8 +78,8 @@ Mostrar Waypoints no mapa: 地図へウェイポイントを表示: 웨이포인트를 지도에 보이기: - 显示路径点在地图上: - 顯示路徑點在地圖上: + 显示路径点在地图上: + 顯示路徑點在地圖上: Degrees @@ -94,8 +94,8 @@ Graus 角度 각도 - - + + On @@ -110,8 +110,8 @@ Be 有効 켜기 - 开启 - 開啟 + 开启 + 開啟 Off @@ -126,8 +126,8 @@ Ki 無効 끄기 - 关闭 - 關閉 + 关闭 + 關閉 Enter Grid Cords: @@ -142,8 +142,8 @@ Digite as Ccords. do Grid 座標を入力: 망 좌표 입력: - 输入网格座标: - 輸入網格座標: + 输入网格座标: + 輸入網格座標: Name of [%1] @@ -158,8 +158,8 @@ Nome do [%1] [%1] の名前 [%1] 의 이름 - 名称 [%1] - 名稱 [%1] + 名称 [%1] + 名稱 [%1] MGRS-New @@ -174,8 +174,8 @@ MGRS-Novo MGRS-New MGRS-새 것 - 军事网格座标系统-新型 - 軍事網格座標系統-新型 + 军事网格座标系统-新型 + 軍事網格座標系統-新型 WGD @@ -190,8 +190,8 @@ WGD WGD WGD - 世界座标 - 世界座標 + 世界座标 + 世界座標 Range: @@ -206,8 +206,8 @@ Distância: 距離: 거리: - 范围: - 範圍: + 范围: + 範圍: Compass Direction @@ -222,8 +222,8 @@ Direção na bússula 方位磁石での方位 방위 - 指北针方位 - 指北針方位 + 指北针方位 + 指北針方位 Mark @@ -238,8 +238,8 @@ Marca マーク 표시 - 标记 - 標記 + 标记 + 標記 Waypoints @@ -254,8 +254,8 @@ Waypoints ウェイポイント 웨이포인트 - 路径点 - 路徑點 + 路径点 + 路徑點 Connect To @@ -270,8 +270,8 @@ Conectar à 次に接続 연결 - 连接到 - 連接到 + 连接到 + 連接到 Settings @@ -286,8 +286,8 @@ Opções 設定 설정 - 设定 - 設定 + 设定 + 設定 SetWP @@ -302,8 +302,8 @@ Definir WP ウェイポイント設定 웨이포인트 설정 - 设置路径点 - 設置路徑點 + 设置路径点 + 設置路徑點 Add @@ -318,8 +318,8 @@ Adicionar 追加 더하기 - 新增 - 新增 + 新增 + 新增 Delete @@ -334,8 +334,8 @@ Törlés 削除 지우기 - 删除 - 刪除 + 删除 + 刪除 Toggle MicroDAGR Display Mode @@ -350,8 +350,8 @@ Alternar Modo de Display do MicroDAGR MicroDAGR の表示モード MicroDAGR 화면 모드 토글 - 切换微型军用GPS接收器显示模式 - 切換微型軍用GPS接收器顯示模式 + 切换微型军用GPS接收器显示模式 + 切換微型軍用GPS接收器顯示模式 Show MicoDAGR @@ -366,8 +366,8 @@ Mostrar MicroDAGR MicoDAGR を表示 MicroDAGR 꺼내기 - 显示微型军用GPS接收器 - 顯示微型軍用GPS接收器 + 显示微型军用GPS接收器 + 顯示微型軍用GPS接收器 Configure MicroDAGR @@ -382,8 +382,8 @@ Configurar MicroDAGR MicroDAGR を設定 MicroDAGR 설정하기 - 设定微型军用GPS接收器 - 設定微型軍用GPS接收器 + 设定微型军用GPS接收器 + 設定微型軍用GPS接收器 Close MicroDAGR @@ -398,8 +398,8 @@ Fechar MicroDAGR MicroDAGR を閉じる MicroDAGR 집어넣기 - 关闭微型军用GPS接收器 - 關閉微型軍用GPS接收器 + 关闭微型军用GPS接收器 + 關閉微型軍用GPS接收器 MicroDAGR Map Fill @@ -414,8 +414,8 @@ Riempimento Mappa MicroDAGR MicroDAGR での地図情報 MicroDAGR - 지도채우기 - 微型军用GPS接收器地图资料 - 微型軍用GPS接收器地圖資料 + 微型军用GPS接收器地图资料 + 微型軍用GPS接收器地圖資料 MicroDAGR Map Fill @@ -430,8 +430,8 @@ Riempimento Mappa MicroDAGR MicroDAGR での地図情報 MicroDAGR - 지도채우기 - 微型军用GPS接收器地图资料 - 微型軍用GPS接收器地圖資料 + 微型军用GPS接收器地图资料 + 微型軍用GPS接收器地圖資料 How much map data is filled on MicroDAGR's @@ -446,8 +446,8 @@ Quanti dati sono trasferiti nella mappa del MicroDAGR MicroDAGR で表示する地図情報を決定します 얼마나 많은 데이터가 MicroDAGR에 있는지에 대한 정보 - 有多少地图数据会显示在微型军用GPS接收器 - 有多少地圖數據會顯示在微型軍用GPS接收器 + 有多少地图数据会显示在微型军用GPS接收器 + 有多少地圖數據會顯示在微型軍用GPS接收器 Full Satellite + Buildings @@ -462,8 +462,8 @@ Satellite Completo + Edifici 完全な衛星画像と建物 위성 사진 + 건물 - 完整卫星画面 + 建筑物位置 - 完整衛星畫面 + 建築物位置 + 完整卫星画面 + 建筑物位置 + 完整衛星畫面 + 建築物位置 Topographical + Roads @@ -478,8 +478,8 @@ Topografico + Strade 地形と道路 지형학 도표 + 도로 - 地形 + 道路 - 地形 + 道路 + 地形 + 道路 + 地形 + 道路 None (Cannot use map view) @@ -494,8 +494,8 @@ Nessuno (Non puoi usare la vista mappa) なし(地図表示を使えません) 없음 (지도를 볼 수 없음) - 无 (无法检视地图) - 無 (無法檢視地圖) + 无 (无法检视地图) + 無 (無法檢視地圖) Controls how much data is filled on the microDAGR items. Less data restricts the map view to show less on the minimap. @@ -510,8 +510,8 @@ Controlla quanti dati sono presenti negli oggetti MicroDAGR. Meno dati costringono la vista mappa a mostrare meno informazioni nella minimappa. アイテム上で表示されるデータ量を決定します。設定を減らすと地図上での情報が少なくなります。 MicroDAGR에 얼마나 많은 데이터가 들어있는지 정합니다. 적을 수록 지도상에도 비춰지는게 적어집니다. - 设定有多少数据会显示在微型军用GPS接收器上. 这些资料的多寡会反映在迷你地图的显示上. - 設定有多少數據會顯示在微型軍用GPS接收器上. 這些資料的多寡會反映在迷你地圖的顯示上. + 设定有多少数据会显示在微型军用GPS接收器上. 这些资料的多寡会反映在迷你地图的显示上. + 設定有多少數據會顯示在微型軍用GPS接收器上. 這些資料的多寡會反映在迷你地圖的顯示上. diff --git a/addons/minedetector/stringtable.xml b/addons/minedetector/stringtable.xml index 99e1c2d0bce..0e2e31e5a6c 100644 --- a/addons/minedetector/stringtable.xml +++ b/addons/minedetector/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -11,8 +11,8 @@ Metalldetektor 지뢰탐지기 Metal detector - 金属探测器 - 金屬探測器 + 金属探测器 + 金屬探測器 Metal detector @@ -24,8 +24,8 @@ Metalldetektor 지뢰탐지기 Metal detector - 金属探测器 - 金屬探測器 + 金属探测器 + 金屬探測器 Activate @@ -37,8 +37,8 @@ Aktivieren 작동 Attiva - 启用探测器 - 啟用探測器 + 启用探测器 + 啟用探測器 Deactivate @@ -50,8 +50,8 @@ Deaktivieren 끄기 Disattiva - 停用探测器 - 停用探測器 + 停用探测器 + 停用探測器 Connect Headphones @@ -63,8 +63,8 @@ 헤드폰에 연결 Connecter les écouteurs Connetti Auricolari - 连接耳机 - 連接耳機 + 连接耳机 + 連接耳機 Disconnect Headphones @@ -76,8 +76,8 @@ 헤드폰 연결끊기 Déconnecter les écouteurs Disconnetti Auricolari - 断开耳机 - 斷開耳機 + 断开耳机 + 斷開耳機 Headphones Connected @@ -89,8 +89,8 @@ 헤드폰 연결됨 Écouteurs connectés Auricolari Connessi - 已连接耳机 - 已連接耳機 + 已连接耳机 + 已連接耳機 Headphones Disconnected @@ -102,8 +102,8 @@ 헤드폰 연결끊김 Écouteurs déconnectés Auricolari Disconnessi - 已断开耳机 - 已斷開耳機 + 已断开耳机 + 已斷開耳機 diff --git a/addons/missileguidance/stringtable.xml b/addons/missileguidance/stringtable.xml index 7cf2cc30e04..72de5524220 100644 --- a/addons/missileguidance/stringtable.xml +++ b/addons/missileguidance/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Продвинутое наведение ракет 高度なミサイルの誘導 고급 미사일 유도 - 进阶飞弹制导 - 進階飛彈制導 + 进阶飞弹制导 + 進階飛彈制導 Advanced missile guidance, or AMG, provides multiple enhancements to missile locking and firing. It is also a framework required for missile weapon types. @@ -30,8 +30,8 @@ Pokočilé navádění raket (AMG) poskytuje několik vylepšení pro lepší zaměření a následnou střelbu. Je to prvek vyžadovaný u typu zbraní jako jsou rakety. 高度なミサイルの誘導、または AMG はミサイルの捕捉と発射に複数の強化をあたえます。これはミサイルの種類によって、枠組みを必要とします。 고급 미사일 유도 혹은 AMG 는 표적 획득 및 발사를 위한 여러 기능을 제공합니다. 미사일 종류에따라 체계가 필요합니다. - 进阶飞弹制导增强了多种导弹锁定和射击的能力. 此系统适用于所有飞弹类型的武器. - 進階飛彈制導增強了多種導彈鎖定和射擊的能力. 此系統適用於所有飛彈類型的武器. + 进阶飞弹制导增强了多种导弹锁定和射击的能力. 此系统适用于所有飞弹类型的武器. + 進階飛彈制導增強了多種導彈鎖定和射擊的能力. 此系統適用於所有飛彈類型的武器. Hydra-70 DAGR Missile @@ -46,8 +46,8 @@ Hydra-70 DAGR Hydra-70 DAGR ミサイル Hydra-70 DAGR 미사일 - 九头蛇-70 直接攻击导引飞弹 - 九頭蛇-70 直接攻擊導引飛彈 + 九头蛇-70 直接攻击导引飞弹 + 九頭蛇-70 直接攻擊導引飛彈 DAGR @@ -62,8 +62,8 @@ DAGR DAGR DAGR - 直接攻击导引飞弹 - 直接攻擊導引飛彈 + 直接攻击导引飞弹 + 直接攻擊導引飛彈 Hydra-70 DAGR Laser Guided Missile @@ -78,8 +78,8 @@ Управляемая ракета лазерного наведения Hydra-70 DAGR Hydra-70 DAGR レーザ誘導ミサイル Hydra-70 DAGR 레이저 유도 미사일 - 九头蛇-70 直接攻击雷射导引飞弹e - 九頭蛇-70 直接攻擊雷射導引飛彈e + 九头蛇-70 直接攻击雷射导引飞弹e + 九頭蛇-70 直接攻擊雷射導引飛彈e Hellfire II AGM-114K Missile @@ -94,8 +94,8 @@ Hellfire II AGM-114K Hellfire II AGM-114K ミサイル Hellfire II AGM-114K 미사일 - 地狱火II型 AGM-114K 导弹 - 地獄火II型 AGM-114K 導彈 + 地狱火II型 AGM-114K 导弹 + 地獄火II型 AGM-114K 導彈 AGM-114K @@ -110,8 +110,8 @@ AGM-114K AGM-114K AGM-114K - AGM-114K - AGM-114K + AGM-114K + AGM-114K Hellfire II AGM-114K Laser Guided Missile @@ -126,8 +126,8 @@ Управляемая ракета лазерного наведения Hellfire II AGM-114K Hellfire II AGM-114K レーザ誘導ミサイル Hellfire II AGM-114K 레이저 유도 미사일 - 地狱火II型 AGM-114K 雷射导引飞弹 - 地獄火II型 AGM-114K 雷射導引飛彈 + 地狱火II型 AGM-114K 雷射导引飞弹 + 地獄火II型 AGM-114K 雷射導引飛彈 Off @@ -142,8 +142,8 @@ Spento 無効 끄기 - 关闭 - 關閉 + 关闭 + 關閉 Player Only @@ -158,8 +158,8 @@ Solo Giocatore プレイヤーのみ 오직 플레이어만 - 只有玩家 - 只有玩家 + 只有玩家 + 只有玩家 Player and AI @@ -173,8 +173,8 @@ Игрок и боты Giocatore ed IA プレイヤーと AI - 玩家和AI - 玩家和AI + 玩家和AI + 玩家和AI Cycle Fire Mode @@ -189,8 +189,8 @@ Alterar Modo de Disparo 発射モード切り替え 발사 방식 순환 - 循环切换开火模式 - 循環切換開火模式 + 循环切换开火模式 + 循環切換開火模式 diff --git a/addons/missionmodules/stringtable.xml b/addons/missionmodules/stringtable.xml index d9548493db6..f69fbad1ec1 100644 --- a/addons/missionmodules/stringtable.xml +++ b/addons/missionmodules/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Moduli Missione ACE ACE ミッション モジュール ACE 미션 모듈 - ACE 任务模块 - ACE 任務模塊 + ACE 任务模块 + ACE 任務模塊 Ambiance Sounds [ACE] @@ -30,8 +30,8 @@ Souni Ambientali [ACE] 環境音 [ACE] 환경 효과음 [ACE] - 环境声音 [ACE] - 環境聲音 [ACE] + 环境声音 [ACE] + 環境聲音 [ACE] Sounds @@ -46,8 +46,8 @@ Suoni 効果音 효과음 - 声音 - 聲音 + 声音 + 聲音 Class names of the ambiance sounds to be played. Seperated by ',' @@ -61,8 +61,8 @@ Nomi classi dei suoni ambientali da eseguire. Separati da ',' 再生する環境音のクラスネームを記載。','で複数指定できます。 재생되는 환경 효과음의 단위와 이름입니다. ','로 구분됩니다. - 输入想使用的环境声音classname. 每个classname用','做区隔 - 輸入想使用的環境聲音classname. 每個classname用','做區隔 + 输入想使用的环境声音classname. 每个classname用','做区隔 + 輸入想使用的環境聲音classname. 每個classname用','做區隔 Minimal Distance @@ -77,8 +77,8 @@ Distanza Minimale 最低距離 최소 거리 - 最小距离 - 最小距離 + 最小距离 + 最小距離 Used for calculating a random position and sets the minimal distance between the players and the played sound file(s) @@ -93,8 +93,8 @@ Usati per calcolare una posizione casuale ed impostare la distanza minima tra i giocatori ed il file suono eseguito 無作為な位置への計算や、プレイヤーと再生されるファイルの間へ最低距離を設定します 무작위 위치 계산에 사용되며 플레이어와 재생 된 사운드 파일 간의 최소 거리를 설정합니다. - 声音将随机产生在玩家附近, 此选项定义该声音最近会距离玩家多少公尺. - 聲音將隨機產生在玩家附近, 此選項定義該聲音最近會距離玩家多少公尺. + 声音将随机产生在玩家附近, 此选项定义该声音最近会距离玩家多少公尺. + 聲音將隨機產生在玩家附近, 此選項定義該聲音最近會距離玩家多少公尺. Maximum Distance @@ -109,8 +109,8 @@ Distanza Massima 最大距離 최대 거리 - 最大距离 - 最大距離 + 最大距离 + 最大距離 Used for calculating a random position and sets the maximum distance between the players and the played sound file(s) @@ -125,8 +125,8 @@ Usato per calcolare una posizione casuale ed impostare la distanza massima tra giocatori e il file suono eseguito 無作為な位置への計算や、プレイヤーと再生されるファイルの間へ最大距離を設定します 무작위 위치 계산에 사용되며 플레이어와 재생 된 사운드 파일 간의 최대 거리를 설정합니다. - 声音将随机产生在玩家附近, 此选项定义该声音最远会距离玩家多少公尺. - 聲音將隨機產生在玩家附近, 此選項定義該聲音最遠會距離玩家多少公尺. + 声音将随机产生在玩家附近, 此选项定义该声音最远会距离玩家多少公尺. + 聲音將隨機產生在玩家附近, 此選項定義該聲音最遠會距離玩家多少公尺. Minimal Delay @@ -141,8 +141,8 @@ Pausa Minima 最低遅延 최소 지연 - 最小延迟 - 最小延遲 + 最小延迟 + 最小延遲 Minimal delay between sounds played @@ -157,8 +157,8 @@ Pausa Minima tra suoni eseguiti 再生されるまでの最低遅延 재생된 소리간 최소 지연시간 - 设定每个声音档案中间最少间隔多久再进行播放 - 設定每個聲音檔案中間最少間隔多久再進行播放 + 设定每个声音档案中间最少间隔多久再进行播放 + 設定每個聲音檔案中間最少間隔多久再進行播放 Maximum Delay @@ -173,8 +173,8 @@ Pausa Massima 最大遅延 최대 지연 - 最大延迟 - 最大延遲 + 最大延迟 + 最大延遲 Maximum delay between sounds played @@ -189,8 +189,8 @@ Pausa Massima tra suoni eseguiti 再生されるまでの最大遅延 재생된 소리간 최대 지연시간 - 设定每个声音档案中间最多间隔多久再进行播放 - 設定每個聲音檔案中間最多間隔多久再進行播放 + 设定每个声音档案中间最多间隔多久再进行播放 + 設定每個聲音檔案中間最多間隔多久再進行播放 Follow Players @@ -205,8 +205,8 @@ Segui Giocatori プレイヤーを追随 플레이어 따라가기 - 跟随玩家 - 跟隨玩家 + 跟随玩家 + 跟隨玩家 Follow players. If set to false, loop will play sounds only nearby logic position. @@ -221,8 +221,8 @@ Segui Giocatori. Se impostato su falso, il ciclo eseguirà i suoni solo vicino ad una posizione logica. プレイヤーを追随します。False に設定するとロジックの近くで延々と再生します。 플레이어를 따라갑니다. 거짓으로 설정될경우 오직 한 자리에서만 반복해서 소리를 재생합니다. - 设定声音是否会在玩家的附近产生. 假如关闭此功能, 声音只会在模块的位置产生. - 設定聲音是否會在玩家的附近產生. 假如關閉此功能, 聲音只會在模塊的位置產生. + 设定声音是否会在玩家的附近产生. 假如关闭此功能, 声音只会在模块的位置产生. + 設定聲音是否會在玩家的附近產生. 假如關閉此功能, 聲音只會在模塊的位置產生. Volume @@ -237,8 +237,8 @@ Volume 音量 볼륨 - 音量 - 音量 + 音量 + 音量 The volume of the sounds played @@ -253,8 +253,8 @@ Il volume dei suoni eseguiti 再生される音の大きさ 재생되는 소리의 볼륨 - 调整声音的音量 - 調整聲音的音量 + 调整声音的音量 + 調整聲音的音量 Ambiance sounds loop (synced across MP) @@ -269,8 +269,8 @@ Ciclo Suoni Ambientali (sincronizzato in MP) 環境音の繰り返し (MP 間で同期させます) 환경 효과음 반복 (멀티플레이 전반적으로 동기화됨) - 循环的环境声音 (在多人游戏中会同步所有玩家的播放状态) - 循環的環境聲音 (在多人遊戲中會同步所有玩家的播放狀態) + 循环的环境声音 (在多人游戏中会同步所有玩家的播放状态) + 循環的環境聲音 (在多人遊戲中會同步所有玩家的播放狀態) diff --git a/addons/mk6mortar/stringtable.xml b/addons/mk6mortar/stringtable.xml index e2dcfabad85..58c0af47d64 100644 --- a/addons/mk6mortar/stringtable.xml +++ b/addons/mk6mortar/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Tavola di tiro 82mm 82mm 射表 82mm 사거리표 - 82mm迫击炮射表 - 82mm迫擊炮射表 + 82mm迫击炮射表 + 82mm迫擊炮射表 Range Table for the Mk6 82mm Mortar @@ -30,8 +30,8 @@ Tavola di tiro per il mortaio calibro 82mm Mk6 Mk6 82mm 迫撃砲の射表 Mk6 82mm 박격포 사격을 위한 사거리표 - MK6 82mm迫击炮射表 - MK6 82mm迫擊炮射表 + MK6 82mm迫击炮射表 + MK6 82mm迫擊炮射表 Open 82mm Rangetable @@ -46,8 +46,8 @@ Apri la tavola di tiro 82mm 82mm 射表を開く 82mm 사거리표 열기 - 开启82mm迫击炮射表 - 開啟82mm迫擊炮射表 + 开启82mm迫击炮射表 + 開啟82mm迫擊炮射表 Charge @@ -62,8 +62,8 @@ Carica 装薬 장약 - 装药 - 裝藥 + 装药 + 裝藥 Mk6 Settings @@ -78,8 +78,8 @@ Impostazioni Mk6 Mk6 設定 Mk6 설정 - MK6设定 - MK6設定 + MK6设定 + MK6設定 Air Resistance @@ -94,8 +94,8 @@ Resistenza dell'Aria 空気抵抗 공기저항 - 空气阻力 - 空氣阻力 + 空气阻力 + 空氣阻力 For Player Shots, Model Air Resistance and Wind Effects @@ -110,8 +110,8 @@ Per Proiettili dei Giocatori, simula la Resistenza dell'Aria e gli Effetti del Vento プレイヤが射撃すると、空気抵抗モデルと風による影響をあたえます。 플레이어 사격시 공기저항과 바람에 영향을 받습니다 - 设定由玩家射击的迫击炮, 将会受到空气阻力与风力的影响 - 設定由玩家射擊的迫擊砲, 將會受到空氣阻力與風力的影響 + 设定由玩家射击的迫击炮, 将会受到空气阻力与风力的影响 + 設定由玩家射擊的迫擊砲, 將會受到空氣阻力與風力的影響 Allow Mk6 Computer @@ -126,8 +126,8 @@ Consenti Computer Mk6 Mk6 コンピュータを許可 Mk6 탄도계산컴퓨터 허가 - 允许使用MK6射控电脑 - 允許使用MK6射控電腦 + 允许使用MK6射控电脑 + 允許使用MK6射控電腦 Show the Computer and Rangefinder (these NEED to be removed if you enable air resistance) @@ -142,8 +142,8 @@ Mostra il Computer e Distaziometro (questi DEVONO essere rimossi se vuoi abilitare la resistenza dell'aria) コンピュータと距離を表示します (空気抵抗を有効化している場合は必ず削除してください) 탄도계산컴퓨터와 거리측정기를 보여줍니다(공기저항을 활성화했을경우 이 항목은 비활성화 되어야만 합니다) - 显示射控电脑和测距仪 (如果有启用空气阻力功能时, 须停用此项功能) - 顯示射控電腦和測距儀 (如果有啟用空氣阻力功能時, 須停用此項功能) + 显示射控电脑和测距仪 (如果有启用空气阻力功能时, 须停用此项功能) + 顯示射控電腦和測距儀 (如果有啟用空氣阻力功能時, 須停用此項功能) Allow Mk6 Compass @@ -158,8 +158,8 @@ Consenti Bussola Mk6 Mk6 への方位磁石を有効化 Mk6 나침반 허용 - 允许使用MK6指北针 - 允許使用MK6指北針 + 允许使用MK6指北针 + 允許使用MK6指北針 Show the Mk6 Digital Compass @@ -174,8 +174,8 @@ Mostra la Bussola Digitale Mk6 Mk6 のデジタル方位磁石を表示 Mk6 에서 전자 나침반을 보여줍니다 - 显示MK6的数位指北针 - 顯示MK6的數位指北針 + 显示MK6的数位指北针 + 顯示MK6的數位指北針 This module allows you to setup Mk6 mortar settings. @@ -189,8 +189,8 @@ Este módulo permite configurar los parámetros del mortero Mk6. Mk6 迫撃砲への設定をできます。 이 모듈은 Mk6 설치 설정을 가능케 합니다. - 这个模块允许你设定MK6迫击炮的相关功能. - 這個模塊允許你設定MK6迫擊砲的相關功能. + 这个模块允许你设定MK6迫击炮的相关功能. + 這個模塊允許你設定MK6迫擊砲的相關功能. Use Ammunition handling @@ -203,8 +203,8 @@ Использовать манипуляции с боеприпасами 弾薬の取り扱い 탄약 관리 활성화 - 使用手动弹药装卸 - 使用手動彈藥裝卸 + 使用手动弹药装卸 + 使用手動彈藥裝卸 Removes mortar magazines, requiring individual rounds to be loaded by the gunner or loader. Does not affect AI mortars. @@ -217,8 +217,8 @@ Удаляет артиллерийские магазины, требует загрузку отдельных снарядов стрелком или заряжащим. Не влияет на артиллерию ИИ. 迫撃砲から弾薬を除去します。射手か装填手により予め装填されている必要があります。AI 迫撃砲へ影響を与えません。 박격포 탄창을 제거합니다, 사수나 장전수가 개별적으로 탄환을 넣어줘야만 합니다. 인공지능은 영향을 받지 않습니다. - 开启此功能时. 迫击炮的弹药需由炮手与装填手共同合作来进行装填. 此功能并不影响由AI射击的迫击炮. - 開啟此功能時. 迫擊砲的彈藥需由砲手與裝填手共同合作來進行裝填. 此功能並不影響由AI射擊的迫擊砲. + 开启此功能时. 迫击炮的弹药需由炮手与装填手共同合作来进行装填. 此功能并不影响由AI射击的迫击炮. + 開啟此功能時. 迫擊砲的彈藥需由砲手與裝填手共同合作來進行裝填. 此功能並不影響由AI射擊的迫擊砲. Remove Round @@ -232,8 +232,8 @@ Извлечь снаряд 弾薬を除去 탄약 제거 - 卸除弹头 - 卸除彈頭 + 卸除弹头 + 卸除彈頭 Load Mortar @@ -247,8 +247,8 @@ Зарядить миномет 弾薬を装填 탄약 장전 - 装载弹头 - 裝載彈頭 + 装载弹头 + 裝載彈頭 Unloading Round @@ -261,8 +261,8 @@ Извлечение снаряда 弾薬を除去しています 탄약 제거중 - 卸除弹头中 - 卸除彈頭中 + 卸除弹头中 + 卸除彈頭中 Preparing Round @@ -276,8 +276,8 @@ Подготовка снаряда 事前に装填 탄약 준비중 - 准备弹头中 - 準備彈頭中 + 准备弹头中 + 準備彈頭中 Load HE @@ -291,8 +291,8 @@ Зарядить фугасный りゅう弾を装填 고폭탄 장전 - 装载高爆弹 - 裝載高爆彈 + 装载高爆弹 + 裝載高爆彈 Load Smoke @@ -306,8 +306,8 @@ Зарядить дымовой 煙幕弾を装填 연막탄 장전 - 装载烟雾弹 - 裝載煙霧彈 + 装载烟雾弹 + 裝載煙霧彈 Load Illumination @@ -321,8 +321,8 @@ Зарядить осветительный 照明弾を装填 조명탄 장전 - 装载照明弹 - 裝載照明彈 + 装载照明弹 + 裝載照明彈 Load Guided HE @@ -336,8 +336,8 @@ Зарядить фугасный управляемый 誘導りゅう弾を装填 유도 고폭탄 장전 - 装载导引高爆弹 - 裝載導引高爆彈 + 装载导引高爆弹 + 裝載導引高爆彈 Load Laser Guided HE @@ -351,8 +351,8 @@ Зарядить фугасный управляемый по ЛЦУ レーザ誘導りゅう弾を装填 레이저 유도 고폭탄 장전 - 装载雷射导引高爆弹 - 裝載雷射導引高爆彈 + 装载雷射导引高爆弹 + 裝載雷射導引高爆彈 82mm HE Round @@ -366,8 +366,8 @@ Фугасный снаряд 82мм 82mm りゅう弾 82mm 고폭탄 - 82mm高爆弹 - 82mm高爆彈 + 82mm高爆弹 + 82mm高爆彈 82mm Smoke Round @@ -381,8 +381,8 @@ Дымовой снаряд 82мм 82mm 煙幕弾 82mm 연막탄 - 82mm烟雾弹 - 82mm煙霧彈 + 82mm烟雾弹 + 82mm煙霧彈 82mm Illumination Round @@ -396,8 +396,8 @@ Осветительный снаряд 82мм 82mm 照明弾 82mm 조명탄 - 82mm照明弹 - 82mm照明彈 + 82mm照明弹 + 82mm照明彈 82mm Guided HE Round @@ -411,8 +411,8 @@ Фугасный снаряд управляемый 82мм 82mm 誘導りゅう弾 82mm 유도 고폭탄 - 82mm导引高爆弹 - 82mm導引高爆彈 + 82mm导引高爆弹 + 82mm導引高爆彈 82mm Laser Guided HE Round @@ -426,8 +426,8 @@ Фугасный снаряд управляемый по ЛЦУ 82мм 82mm レーザ誘導りゅう弾 82mm 레이저 유도 고폭탄 - 82mm雷射导引高爆弹 - 82mm雷射導引高爆彈 + 82mm雷射导引高爆弹 + 82mm雷射導引高爆彈 Used in Mk6 mortar @@ -441,8 +441,8 @@ Использовался в миномете Mk6 Mk6 mortar で使います Mk6 박격포에 사용됨 - 用于Mk6迫击炮 - 用於Mk6迫擊砲 + 用于Mk6迫击炮 + 用於Mk6迫擊砲 [ACE] 82mm HE Rounds Box @@ -456,8 +456,8 @@ [ACE] Ящик фугасных снарядов 82мм [ACE] 82mm りゅう弾入り弾薬箱 [ACE] 82mm 고폭탄 상자 - [ACE] 82mm高爆弹药箱 - [ACE] 82mm高爆彈藥箱 + [ACE] 82mm高爆弹药箱 + [ACE] 82mm高爆彈藥箱 [ACE] 82mm Smoke Rounds Box @@ -471,8 +471,8 @@ [ACE] Ящик дымовых снарядов 82мм [ACE] 82mm 煙幕弾入り弾薬箱 [ACE] 82mm 연막탄 상자 - [ACE] 82mm烟雾弹药箱 - [ACE] 82mm煙霧彈藥箱 + [ACE] 82mm烟雾弹药箱 + [ACE] 82mm煙霧彈藥箱 [ACE] 82mm Illumination Rounds Box @@ -486,8 +486,8 @@ [ACE] Ящик осветительных снарядов 82мм [ACE] 82mm 照明弾入り弾薬箱 [ACE] 82mm 조명탄 상자 - [ACE] 82mm照明弹药箱 - [ACE] 82mm照明彈藥箱 + [ACE] 82mm照明弹药箱 + [ACE] 82mm照明彈藥箱 [ACE] 82mm Default Loadout Box @@ -501,8 +501,8 @@ [ACE] Ящик снарядов 82мм (стандартный) [ACE] 82mm 梱包箱 [ACE] 82mm 기본 장비 상자 - [ACE] 82mm预设弹药箱 - [ACE] 82mm預設彈藥箱 + [ACE] 82mm预设弹药箱 + [ACE] 82mm預設彈藥箱 diff --git a/addons/movement/stringtable.xml b/addons/movement/stringtable.xml index eecbf9f8339..5bba66974ae 100644 --- a/addons/movement/stringtable.xml +++ b/addons/movement/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Показывать вес в фунтах ポンドで重量を表示する 무게를 파운드(lb)로 보여줍니다 - 使用磅来显示重量 - 使用磅來顯示重量 + 使用磅来显示重量 + 使用磅來顯示重量 Weight: @@ -30,8 +30,8 @@ Вес: 重量: 무게: - 重量: - 重量: + 重量: + 重量: Climb @@ -46,8 +46,8 @@ Subir 登る 오르기 - 攀爬 - 攀爬 + 攀爬 + 攀爬 Can't climb here @@ -61,8 +61,8 @@ Non puoi arrampicarti qui Não se pode subir aqui ここは登れない - 这里无法攀爬 - 這裡無法攀爬 + 这里无法攀爬 + 這裡無法攀爬 diff --git a/addons/mx2a/stringtable.xml b/addons/mx2a/stringtable.xml index ab92ad08c76..3239aef1ed2 100644 --- a/addons/mx2a/stringtable.xml +++ b/addons/mx2a/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ MX-2A MX-2A MX-2A - MX-2A - MX-2A + MX-2A + MX-2A Thermal imaging device @@ -30,8 +30,8 @@ Dispositivo di visione termica サーマル画像表示双眼鏡 열영상 장치 - 热成像装置 - 熱成像裝置 + 热成像装置 + 熱成像裝置 diff --git a/addons/nametags/stringtable.xml b/addons/nametags/stringtable.xml index ba7ba558729..fde54a86078 100644 --- a/addons/nametags/stringtable.xml +++ b/addons/nametags/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Mostrar nomes 名前の表示 이름 표시 - 显示名称 - 顯示名稱 + 显示名称 + 顯示名稱 Show player names @@ -30,8 +30,8 @@ Показывать имена игроков (включить имена) プレイヤ名を表示 플레이어 이름 표시 - 显示玩家名称 - 顯示玩家名稱 + 显示玩家名称 + 顯示玩家名稱 Show player name only on cursor (requires player names) @@ -46,8 +46,8 @@ Показать имена игроков только под курсором (при включенных именах) カーソルを合わせた時だけプレイヤ名を表示 (プレイヤ名が必要 커서로 지시할때만 플레이어 이름 표시(플레이어 이름 필요) - 仅在准心指到后显示玩家名称 (玩家必须有设定名称) - 僅在準心指到後顯示玩家名稱 (玩家必須有設定名稱) + 仅在准心指到后显示玩家名称 (玩家必须有设定名称) + 僅在準心指到後顯示玩家名稱 (玩家必須有設定名稱) Show player name only on keypress (requires player names) @@ -62,8 +62,8 @@ Mostrar nomes somente ao pressionar teclar (requer nome de jogadores) キーを押した時だけプレイヤ名を表示 (プレイヤ名が必要) 키를 누를때만 플레이어 이름 표시(플레이어 이름 필요) - 仅在按按键后显示玩家名称 (玩家必须有设定名称) - 僅在按按鍵後顯示玩家名稱 (玩家必須有設定名稱) + 仅在按按键后显示玩家名称 (玩家必须有设定名称) + 僅在按按鍵後顯示玩家名稱 (玩家必須有設定名稱) Show player ranks (requires player names) @@ -78,8 +78,8 @@ Показывать звания игроков (при вкл. именах) プレイヤの階級を表示 (プレイヤ名が必要) 플레이어 계급 표시 (플레이어 이름 필요) - 显示玩家军阶 (玩家必须有设定名称) - 顯示玩家軍階 (玩家必須有設定名稱) + 显示玩家军阶 (玩家必须有设定名称) + 顯示玩家軍階 (玩家必須有設定名稱) Show vehicle crew info @@ -94,8 +94,8 @@ Mostra l'elenco del personale a bordo 車両の乗員を表示 차량 승무원 정보 표시 - 显示载具成员信息 - 顯示載具成員信息 + 显示载具成员信息 + 顯示載具成員信息 Show name tags for AI units @@ -110,8 +110,8 @@ Mostrar nomes para unidades de IA AI ユニットの名札を表示 인공지능 인원 이름 표시 - 显示AI单位名称 - 顯示AI單位名稱 + 显示AI单位名称 + 顯示AI單位名稱 Show SoundWaves (requires player names) @@ -126,8 +126,8 @@ Mostrar onda sonora (requer nome de jogadores) 音波形を表示 (プレイヤ名が必要) 음파 표시 (플레이어 이름 필요) - 当玩家讲话时, 显示声波图案 (玩家必须有设定名称) - 當玩家講話時, 顯示聲波圖案 (玩家必須有設定名稱) + 当玩家讲话时, 显示声波图案 (玩家必须有设定名称) + 當玩家講話時, 顯示聲波圖案 (玩家必須有設定名稱) Default Nametag Color (Non Group Members) @@ -142,8 +142,8 @@ Cor padrão do nome (unidades fora do grupo) 標準の名札の色(グループ メンバ以外) 기본 이름표 색상 (비-그룹 멤버) - 预设名称颜色 (非同小队队友) - 預設名稱顏色 (非同小隊隊友) + 预设名称颜色 (非同小队队友) + 預設名稱顏色 (非同小隊隊友) Name Tags @@ -158,8 +158,8 @@ Etichette Nomi 名札 이름표 - 玩家名称 - 玩家名稱 + 玩家名称 + 玩家名稱 Player Names View Dist. @@ -174,8 +174,8 @@ Distanza Visiva Etichette Nomi プレイヤ名が見える範囲 플레이어 이름 표시 거리 - 玩家名称显示距离 - 玩家名稱顯示距離 + 玩家名称显示距离 + 玩家名稱顯示距離 Distance in meters at which player names are shown. Default: 5 @@ -190,8 +190,8 @@ Distanza in metri a cui sono visibili i nomi giocatori. Default: 5 プレイヤの周り何メートルまで名札を表示できます。標準:5 플레이어 이름이 표시되는 미터. 기본설정: 5 - 设定名称在多少距离以内显示. 预设:5公尺 - 設定名稱在多少距離以內顯示. 預設:5公尺 + 设定名称在多少距离以内显示. 预设:5公尺 + 設定名稱在多少距離以內顯示. 預設:5公尺 Show name tags for AI? @@ -206,8 +206,8 @@ Mostra etichette nomi per IA? AI の名札も表示しますか? 인공지능의 이름도 표시합니까? - 显示AI名称? - 顯示AI名稱? + 显示AI名称? + 顯示AI名稱? Show the name and rank tags for friendly AI units? Default: Do not force @@ -222,8 +222,8 @@ Mostra etichette nomi ed etichette gradi per unità IA alleate? Default: Non forzare 友軍の AI にも名前と階級を表示しますか?標準:強制しない 아군 인공지능의 계급을 표시합니까? 기본설정: 강제하지 않음 - 显示友军AI的名称和军阶? 预设: 不显示 - 顯示友軍AI的名稱和軍階? 預設: 不顯示 + 显示友军AI的名称和军阶? 预设: 不显示 + 顯示友軍AI的名稱和軍階? 預設: 不顯示 Force Hide @@ -238,8 +238,8 @@ Forza Nascosto 強制で非表示 강제로 숨기기 - 强迫隐藏 - 強迫隱藏 + 强迫隐藏 + 強迫隱藏 Force Show @@ -254,8 +254,8 @@ Forza Mostra 強制で表示 강제로 표시 - 强迫显示 - 強迫顯示 + 强迫显示 + 強迫顯示 Show crew info? @@ -270,8 +270,8 @@ Mostra informazioni equipaggio? 乗員の情報を表示 승무원 정보 표시? - 显示载具成员讯息? - 顯示載具成員訊息? + 显示载具成员讯息? + 顯示載具成員訊息? Show vehicle crew info, or by default allows players to choose it on their own. Default: Do Not Force @@ -286,8 +286,8 @@ Mostra informazioni sull'equipaggio del veicolo, oppure consenti di default di lasciare che siano i giocatori a scegliere. Default: Non Forzare 車両の乗員を表示します。標準ではプレイヤ各々が選べられます。標準:強制しない 승무원 정보를 표시하거나 플레이어가 직접 고르게 냅둡니다. 기본설정: 강제하지 않음 - 显示载具成员讯息. 在预设的情况下, 系统允许玩家自己决定开关此讯息. 预设: 不显示 - 顯示載具成員訊息. 在預設的情況下, 系統允許玩家自己決定開關此訊息. 預設: 不顯示 + 显示载具成员讯息. 在预设的情况下, 系统允许玩家自己决定开关此讯息. 预设: 不显示 + 顯示載具成員訊息. 在預設的情況下, 系統允許玩家自己決定開關此訊息. 預設: 不顯示 Show for Vehicles @@ -302,8 +302,8 @@ Mostra per Veicoli 車両への表示 차량 표시 - 显示给载具指挥官 - 顯示給載具指揮官 + 显示给载具指挥官 + 顯示給載具指揮官 Show cursor NameTag for vehicle commander (only if client has name tags enabled) Default: No @@ -317,8 +317,8 @@ Mostra il nome sul cursore per il comandante del veicolo (solo se il client ha le Etichette Nomi attive) Default: No 車長の名札をカーソルを当てて表示します (クライアント側で名札を有効化する必要があります) 標準:無効 차량의 사령관의 이름표를 표시합니다 (오직 클라이언트가 이름표를 활성화 할시에만 보입니다) 기본설정: 아니요 - 使载具指挥官能透过准心指到别的单位来显示其名称 (仅当客户端的名称功能已启用). 预设: 关闭 - 使載具指揮官能透過準心指到別的單位來顯示其名稱 (僅當客戶端的名稱功能已啟用). 預設: 關閉 + 使载具指挥官能透过准心指到别的单位来显示其名称 (仅当客户端的名称功能已启用). 预设: 关闭 + 使載具指揮官能透過準心指到別的單位來顯示其名稱 (僅當客戶端的名稱功能已啟用). 預設: 關閉 This module allows you to customize settings and range of Name Tags. @@ -333,8 +333,8 @@ Questo modulo ti consente di personalizzare le impostazioni ed il raggio delle Etichette Nomi このモジュールは名札の表示範囲と設定を変更できます。 이 모듈은 당신이 이름표의 범위를 임의로 수정할 수 있게 해줍니다. - 这个模块允许您设定名称和显示范围等设定. - 這個模塊允許您設定名稱和顯示範圍等設定. + 这个模块允许您设定名称和显示范围等设定. + 這個模塊允許您設定名稱和顯示範圍等設定. Only on Cursor @@ -349,8 +349,8 @@ Solo su Cursore カーソルでのみ 커서만 해당 - 只有准心指到时 - 只有準心指到時 + 只有准心指到时 + 只有準心指到時 Only on Keypress @@ -365,8 +365,8 @@ Solo quando Premi Tasto キー押下のみ 키를 누를경우만 - 只有按按键时 - 只有按按鍵時 + 只有按按键时 + 只有按按鍵時 Only on Cursor and Keypress @@ -381,8 +381,8 @@ Solo su Cursore e quando Premi Tasto カーソルとキー押下のみ 커서와 키를 누를경우만 - 只有在准心指到和按按键时 - 只有在準心指到和按按鍵時 + 只有在准心指到和按按键时 + 只有在準心指到和按按鍵時 Force Show Only on Cursor @@ -397,8 +397,8 @@ Forza Mostra solo su Cursore カーソルでのみに強制する 커서만 강제로 해당 - 强制仅显示在准心指到时 - 強制僅顯示在準心指到時 + 强制仅显示在准心指到时 + 強制僅顯示在準心指到時 Force Show Only on Keypress @@ -413,8 +413,8 @@ Forza Mostra solo quando Premi Tasto キー押下のみに強制する 키를 누를경우만 강제로 해당 - 强制仅显示在按按键时 - 強制僅顯示在按按鍵時 + 强制仅显示在按按键时 + 強制僅顯示在按按鍵時 Force Show Only on Cursor and Keypress @@ -429,8 +429,8 @@ Forza Mostra solo su Cursore e quando Premi Tasto カーソルとキー押下のみに強制する 커서와 키를 누를경우만 강제로 해당 - 强制显示在准心指到和按按键时 - 強制顯示在準心指到和按按鍵時 + 强制显示在准心指到和按按键时 + 強制顯示在準心指到和按按鍵時 Use Nametag settings @@ -445,8 +445,8 @@ Usa impostazioni Etichette Nomi 名札の設定 이름표 설정 사용 - 玩家名称设定 - 玩家名稱設定 + 玩家名称设定 + 玩家名稱設定 Always Show All @@ -461,8 +461,8 @@ Mostra Sempre Tutto 常に表示する 항상 모두 표시 - 永远显示全部 - 永遠顯示全部 + 永远显示全部 + 永遠顯示全部 Show player names and set their activation. Default: Enabled @@ -477,8 +477,8 @@ Mostra nomi giocatori ed imposta la loro attivazione. Default: Abilitato プレイヤ名の表示と設定を有効化します。標準:有効 플레이어 이름의 표시와 설정을 활성화합니다. 기본설정: 활성화 - 显示玩家的名称并设置其启动方式. 预设: 启用 - 顯示玩家的名稱並設置其啟動方式. 預設: 啟用 + 显示玩家的名称并设置其启动方式. 预设: 启用 + 顯示玩家的名稱並設置其啟動方式. 預設: 啟用 Effect of sound waves above the heads of speaking players after holding the PTT key. This option works with TFAR and ACRE2. @@ -493,8 +493,8 @@ Effetto delle onde sonore sopra la testa dei giocatori parlanti quando premono il tasto PTT. Questa opzione funziona con TFAR ed ACRE2 プレイヤーが PTT キーを押している間は、音波形を表示します。このオプションは TFAR と ACRE2 で動作します。 플레이어가 PTT로 말할시 머리위에 음파효과를 적용합니다. 이 옵션은 TFAR과 ACRE2가 있을때만 적용됩니다. - 当玩家使用按键发话时, 其头上的角色名称旁会显示声波的图案. 此功能可搭配TFAR、ACRE2等模组使用. - 當玩家使用按鍵發話時, 其頭上的角色名稱旁會顯示聲波的圖案. 此功能可搭配TFAR、ACRE2等模組使用. + 当玩家使用按键发话时, 其头上的角色名称旁会显示声波的图案. 此功能可搭配TFAR、ACRE2等模组使用. + 當玩家使用按鍵發話時, 其頭上的角色名稱旁會顯示聲波的圖案. 此功能可搭配TFAR、ACRE2等模組使用. Nametags Size @@ -509,8 +509,8 @@ Dimensione Etichette Nome 名札の大きさ 이름표 크기 - 玩家名称标记大小 - 玩家名稱標記大小 + 玩家名称标记大小 + 玩家名稱標記大小 Text and Icon Size Scaling @@ -525,8 +525,8 @@ Proporzione Dimensioni Testo ed Icone 文字とアイコンの大きさ 글자와 아이콘 크기 비례 - 文字和图示大小设定 - 文字和圖示大小設定 + 文字和图示大小设定 + 文字和圖示大小設定 Fade on screen border @@ -536,8 +536,8 @@ 화면 가장자리에서 사라짐 Estomper sur les bords de l'écran Sfocatura nei bordi dello schermo - 在荧幕边框旁淡出 - 在螢幕邊框旁淡出 + 在荧幕边框旁淡出 + 在螢幕邊框旁淡出 diff --git a/addons/nightvision/stringtable.xml b/addons/nightvision/stringtable.xml index 1ff3ee43fbf..8e4e1fafde2 100644 --- a/addons/nightvision/stringtable.xml +++ b/addons/nightvision/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Éjjellátó szemüveg (1. Gen.) 夜間暗視装置つきゴーグル (第1世代) 야투경 (1세대) - 夜视镜 (初代) - 夜視鏡 (初代) + 夜视镜 (初代) + 夜視鏡 (初代) NV Goggles (Gen2) @@ -30,8 +30,8 @@ Éjjellátó szemüveg (2. Gen.) 夜間暗視装置つきゴーグル (第2世代) 야투경 (2세대) - 夜视镜 (二代) - 夜視鏡 (二代) + 夜视镜 (二代) + 夜視鏡 (二代) NV Goggles (Gen3) @@ -46,8 +46,8 @@ Éjjellátó szemüveg (3. Gen.) 夜間暗視装置つきゴーグル (第3世代) 야투경 (3세대) - 夜视镜 (三代) - 夜視鏡 (三代) + 夜视镜 (三代) + 夜視鏡 (三代) NV Goggles (Gen3, Brown) @@ -62,8 +62,8 @@ Éjjellátó szemüveg (3. Gen., barna) 夜間暗視装置つきゴーグル (第3世代、ブラウン) 야투경 (3세대, 갈색) - 夜视镜 (三代, 棕色) - 夜視鏡 (三代, 棕色) + 夜视镜 (三代, 棕色) + 夜視鏡 (三代, 棕色) NV Goggles (Gen3, Green) @@ -78,8 +78,8 @@ Éjjellátó szemüveg (3. Gen., zöld) 夜間暗視装置つきゴーグル (第3世代、グリーン) 야투경 (3세대, 녹색) - 夜视镜 (三代, 绿色) - 夜視鏡 (三代, 綠色) + 夜视镜 (三代, 绿色) + 夜視鏡 (三代, 綠色) NV Goggles (Gen3, Black) @@ -94,8 +94,8 @@ Éjjellátó szemüveg (3. Gen., fekete) 夜間暗視装置つきゴーグル (第3世代、ブラック) 야투경 (3세대, 검정색) - 夜视镜 (三代, 黑色) - 夜視鏡 (三代, 黑色) + 夜视镜 (三代, 黑色) + 夜視鏡 (三代, 黑色) NV Goggles (Gen4) @@ -110,8 +110,8 @@ Éjjellátó szemüveg (4. Gen.) 夜間暗視装置つきゴーグル (第4世代) 야투경 (4세대) - 夜视镜 (四代) - 夜視鏡 (四代) + 夜视镜 (四代) + 夜視鏡 (四代) NV Goggles (Wide) @@ -126,8 +126,8 @@ Occhiali notturni (Larghi) 夜間暗視装置つきゴーグル (ワイド) 야투경 (넓음) - 夜视镜 (宽版) - 夜視鏡 (寬版) + 夜视镜 (宽版) + 夜視鏡 (寬版) Brightness: %1 @@ -142,8 +142,8 @@ Luminosità: %1 光度:%1 밝기: %1 - 亮度: %1 - 亮度: %1 + 亮度: %1 + 亮度: %1 Increase NVG Brightness @@ -158,8 +158,8 @@ Aumenta la luminosità dell'NVG 夜間暗視装置の光度を上げる 야투경 밝기 높이기 - 增加夜视镜亮度 - 增加夜視鏡亮度 + 增加夜视镜亮度 + 增加夜視鏡亮度 Decrease NVG Brightness @@ -174,8 +174,8 @@ Riduci la luminosità dell'NVG 夜間暗視装置の光度を下げる 야투경 밝기 줄이기 - 减少夜视镜亮度 - 減少夜視鏡亮度 + 减少夜视镜亮度 + 減少夜視鏡亮度 Nightvision @@ -189,8 +189,8 @@ Vision nocturne 夜間暗視装置 야간투시경 - 夜视 - 夜視 + 夜视 + 夜視 Settings for night vision. @@ -204,8 +204,8 @@ Réglage pour la vision nocturne 夜間暗視装置の設定。 야간투시경 설정 - 设定夜视选项. - 設定夜視選項. + 设定夜视选项. + 設定夜視選項. Disable NVGs in scope @@ -219,8 +219,8 @@ Desactiver les JVN dans les viseurs. スコープを覗くと夜間暗視装置を無効化 조준경 사용시 야투경 비활성화 - 使用瞄准镜时关闭夜视镜 - 使用瞄準鏡時關閉夜視鏡 + 使用瞄准镜时关闭夜视镜 + 使用瞄準鏡時關閉夜視鏡 Blocks the usage of night vision goggles whilst aiming down the sight. @@ -234,8 +234,8 @@ Bloque l'usage des JVN pendant la visée. スコープを使い狙いを付けると、夜間暗視装置を無効化します。 조준시 야투경의 사용을 제한합니다. - 此功能开启后, 当要使用瞄准镜时, 为避免夜视镜镜头碰撞到瞄准镜, 会先拿开夜视镜后再进行瞄准镜瞄准. - 此功能開啟後, 當要使用瞄準鏡時, 為避免夜視鏡鏡頭碰撞到瞄準鏡, 會先拿開夜視鏡後再進行瞄準鏡瞄準. + 此功能开启后, 当要使用瞄准镜时, 为避免夜视镜镜头碰撞到瞄准镜, 会先拿开夜视镜后再进行瞄准镜瞄准. + 此功能開啟後, 當要使用瞄準鏡時, 為避免夜視鏡鏡頭碰撞到瞄準鏡, 會先拿開夜視鏡後再進行瞄準鏡瞄準. diff --git a/addons/nlaw/stringtable.xml b/addons/nlaw/stringtable.xml index 8f7533f9e42..74de6d21d85 100644 --- a/addons/nlaw/stringtable.xml +++ b/addons/nlaw/stringtable.xml @@ -1,26 +1,26 @@ - + NLAW Track Target (Hold) NLAW Traccia Bersaglio (Mantieni) NALW 目標の追跡 (押しっぱ) - 次世代轻型反坦克导弹发射器追踪目标 (按住) - 次世代輕型反坦克導彈發射器追蹤目標 (按住) + 次世代轻型反坦克导弹发射器追踪目标 (按住) + 次世代輕型反坦克導彈發射器追蹤目標 (按住) Direct Attack Attacco Diretto ダイレクト アタック - 直射模式 - 直射模式 + 直射模式 + 直射模式 Overfly Top Attack Attacco dall'alto オーバーフライ トップ アタック - 攻顶模式 - 攻頂模式 + 攻顶模式 + 攻頂模式 diff --git a/addons/optics/stringtable.xml b/addons/optics/stringtable.xml index 903f44e60a0..377cca28bcd 100644 --- a/addons/optics/stringtable.xml +++ b/addons/optics/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ RCO (2D) RCO (2D) RCO (2D) - 步枪战斗光学瞄准镜(2D) - 步槍戰鬥光學瞄準鏡(2D) + 步枪战斗光学瞄准镜(2D) + 步槍戰鬥光學瞄準鏡(2D) RCO (PIP) @@ -30,8 +30,8 @@ RCO (PIP) RCO (PIP) RCO (PIP) - 步枪战斗光学瞄准镜(拟真版) - 步槍戰鬥光學瞄準鏡(擬真版) + 步枪战斗光学瞄准镜(拟真版) + 步槍戰鬥光學瞄準鏡(擬真版) ARCO (2D) @@ -46,8 +46,8 @@ ARCO (2D) ARCO (2D) ARCO (2D) - 先进步枪战斗光学瞄准镜(2D) - 先進步槍戰鬥光學瞄準鏡(2D) + 先进步枪战斗光学瞄准镜(2D) + 先進步槍戰鬥光學瞄準鏡(2D) ARCO (PIP) @@ -62,8 +62,8 @@ ARCO (PIP) ARCO (PIP) ARCO (PIP) - 先进步枪战斗光学瞄准镜(拟真版) - 先進步槍戰鬥光學瞄準鏡(擬真版) + 先进步枪战斗光学瞄准镜(拟真版) + 先進步槍戰鬥光學瞄準鏡(擬真版) MRCO (2D) @@ -78,8 +78,8 @@ MRCO (2D) MRCO (2D) MRCO (2D) - 多距离战斗瞄准镜(2D) - 多距離戰鬥瞄準鏡(2D) + 多距离战斗瞄准镜(2D) + 多距離戰鬥瞄準鏡(2D) MRCO (PIP) @@ -94,8 +94,8 @@ MRCO (PIP) MRCO (PIP) MRCO (PIP) - 多距离战斗瞄准镜(拟真版) - 多距離戰鬥瞄準鏡(擬真版) + 多距离战斗瞄准镜(拟真版) + 多距離戰鬥瞄準鏡(擬真版) MOS (2D) @@ -110,8 +110,8 @@ MOS (2D) MOS (2D) MOS (2D) - 精准光学瞄准镜(2D) - 精準光學瞄準鏡(2D) + 精准光学瞄准镜(2D) + 精準光學瞄準鏡(2D) MOS (PIP) @@ -126,8 +126,8 @@ MOS (PIP) MOS (PIP) MOS (PIP) - 精准光学瞄准镜(拟真版) - 精準光學瞄準鏡(擬真版) + 精准光学瞄准镜(拟真版) + 精準光學瞄準鏡(擬真版) LRPS (2D) @@ -142,8 +142,8 @@ LRPS (2D) LRPS (2D) LRPS (2D) - 长距离精确瞄准镜(2D) - 長距離精確瞄準鏡(2D) + 长距离精确瞄准镜(2D) + 長距離精確瞄準鏡(2D) LRPS (PIP) @@ -158,8 +158,8 @@ LRPS (PIP) LRPS (PIP) LRPS (PIP) - 长距离精确瞄准镜(拟真版) - 長距離精確瞄準鏡(擬真版) + 长距离精确瞄准镜(拟真版) + 長距離精確瞄準鏡(擬真版) diff --git a/addons/optionsmenu/stringtable.xml b/addons/optionsmenu/stringtable.xml index 2264d467619..5b435745617 100644 --- a/addons/optionsmenu/stringtable.xml +++ b/addons/optionsmenu/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Opzioni ACE ACE オプション ACE 옵션 - ACE 设定 - ACE 設定 + ACE 设定 + ACE 設定 Fix Animation @@ -30,8 +30,8 @@ Arrumar Animação アニメーションを修正 동작 고정 - 修复动作BUG - 修復動作BUG + 修复动作BUG + 修復動作BUG Reset All @@ -46,8 +46,8 @@ Resetar Tudo すべて初期化 모두 초기화 - 重置为预设值 - 重置為預設值 + 重置为预设值 + 重置為預設值 Colors @@ -62,8 +62,8 @@ Cores 색상 - 颜色 - 顏色 + 颜色 + 顏色 Options @@ -78,8 +78,8 @@ Opzioni オプション 옵션 - 中文化由[MR]Diss制作 - 設定 + 中文化由[MR]Diss制作 + 設定 Values @@ -94,8 +94,8 @@ Valores - 数值 - 數值 + 数值 + 數值 Setting: @@ -110,8 +110,8 @@ Opção: 設定: 설정: - 设定: - 設定: + 设定: + 設定: Export @@ -126,8 +126,8 @@ Exportar 出力 내보내기 - 输出 - 輸出 + 输出 + 輸出 Open Export Menu @@ -142,8 +142,8 @@ Abrir menu de exportação 出力メニューを開く 내보내기 메뉴 열기 - 开启输出选单 - 開啟輸出選單 + 开启输出选单 + 開啟輸出選單 String input. @@ -158,8 +158,8 @@ Input de String 文字列の入力 문자열 입력 - 输入数值 - 輸入數值 + 输入数值 + 輸入數值 Array. Seperate elements by using ,. @@ -174,8 +174,8 @@ Vetor. Separe elementos usando *,*. アライ。,を使うことで区別できます。 배열. 요소를 ,. 로 나눔 - 阵列. 使用','来做每个值的区隔. - 陣列. 使用','來做每個值的區隔. + 阵列. 使用','来做每个值的区隔. + 陣列. 使用','來做每個值的區隔. Number @@ -190,8 +190,8 @@ Número 숫자 - 数字 - 數字 + 数字 + 數字 Uknown input type @@ -206,8 +206,8 @@ Tipo desonhecido de input 不明な入力です 불분명한 입력입니다 - 未知输入类型 - 未知輸入類型 + 未知输入类型 + 未知輸入類型 Save input @@ -222,8 +222,8 @@ Salvar input 入力を保存 입력 저장 - 储存输入 - 儲存輸入 + 储存输入 + 儲存輸入 Include Client Settings @@ -238,8 +238,8 @@ Incluir opções do cliente クライアント設定を含む 클라이언트 설정 포함 - 包含客户端设定 - 包含客戶端設定 + 包含客户端设定 + 包含客戶端設定 Exclude Client Settings @@ -254,8 +254,8 @@ Excluir opções do cliente クライアント設定を実行する 클라이언트 설정 제외 - 不包含客户端设定 - 不包含客戶端設定 + 不包含客户端设定 + 不包含客戶端設定 Settings exported to clipboard @@ -270,8 +270,8 @@ Opções exportadas para o clipboard. クリップボードに設定を出力する 클립보드로 설정 내보내기 - 设定输出至剪贴簿 - 設定輸出至剪貼簿 + 设定输出至剪贴簿 + 設定輸出至剪貼簿 Option Menu UI Scaling @@ -286,8 +286,8 @@ Proporzioni della interfaccia utente オプション メニューにあるユーザ インタフェイスの大きさ 옵션메뉴 UI 비례도 - 调整设定选单视窗大小 - 調整設定選單視窗大小 + 调整设定选单视窗大小 + 調整設定選單視窗大小 Allow Config Export [ACE] @@ -302,8 +302,8 @@ Consenti Esportazione del Config [ACE] 設定の出力を許可 [ACE] 설정 내보내기 허가 [ACE] - 允许配置导出 [ACE] - 允許配置導出 [ACE] + 允许配置导出 [ACE] + 允許配置導出 [ACE] Allow @@ -318,8 +318,8 @@ Consenti 許可 허가 - 允许 - 允許 + 允许 + 允許 Allow export of all settings to a server config formatted. @@ -334,8 +334,8 @@ Consenti esportazione di tutti i parametri ad config formato per server. 全ての設定をサーバ用設定の形式へと出力できるようにします。 모든 설정을 서버 설정 형식으로 내보내는것을 허락합니다. - 允许导出所有设定成伺服器配置格式的档案. - 允許導出所有設定成伺服器配置格式的檔案. + 允许导出所有设定成伺服器配置格式的档案. + 允許導出所有設定成伺服器配置格式的檔案. When allowed, you have access to the settings modification and export in SP. Clicking export will place the formated config on your clipboard. @@ -350,8 +350,8 @@ Quando consentito, hai accesso alle modifiche delle impostazioni ed esportazione in SP. Cliccando Esporta piazzera il config formattato sul tuo Blocco Note. 許可の場合、あなたは設定の変更と出力をシングルプレイで可能です。出力をクリックすると、サーバ用設定の形式となっている設定がクリップボードに保存されます。 허락하는 경우 싱글플레이에서 설정의 변경과 내보내기가 가능해집니다. 내보내기를 눌러서 서버 형성의 설정을 클립보드로 보냅니다. - 当本功能开启时, 你将能在单人模式中调整并输出设定. 点击输出按钮后将会让相关设定参数复制到剪贴簿上. - 當本功能開啟時, 你將能在單人模式中調整並輸出設定. 點擊輸出按鈕後將會讓相關設定參數複製到剪貼簿上. + 当本功能开启时, 你将能在单人模式中调整并输出设定. 点击输出按钮后将会让相关设定参数复制到剪贴簿上. + 當本功能開啟時, 你將能在單人模式中調整並輸出設定. 點擊輸出按鈕後將會讓相關設定參數複製到剪貼簿上. Hide @@ -366,8 +366,8 @@ Nascondi 非表示 숨기기 - 隐藏 - 隱藏 + 隐藏 + 隱藏 Top right, downwards @@ -382,8 +382,8 @@ In Alto a Destra, verso il Basso 右上、下側 오른쪽 위에서 아래로 - 右上角, 向下 - 右上角, 向下 + 右上角, 向下 + 右上角, 向下 Top right, to the left @@ -398,8 +398,8 @@ In Alto a Destra, verso Sinistra 右上、左詰 오른쪽 위에서 왼쪽으로 - 右上角, 向左 - 右上角, 向左 + 右上角, 向左 + 右上角, 向左 Top left, downwards @@ -414,8 +414,8 @@ In Alto a Sinistra, verso il Basso 左上、下側 왼쪽 위에서 아래로 - 左上角, 向下 - 左上角, 向下 + 左上角, 向下 + 左上角, 向下 Top left, to the right @@ -430,8 +430,8 @@ In Alto a Sinistra, verso Destra 右上、右詰 왼쪽 위에서 오른쪽으로 - 左上角, 向右 - 左上角, 向右 + 左上角, 向右 + 左上角, 向右 Top @@ -446,8 +446,8 @@ Alto 上側 상단 - 上方 - 上方 + 上方 + 上方 Bottom @@ -462,8 +462,8 @@ Basso 下側 하단 - 下方 - 下方 + 下方 + 下方 Debug To Clipboard @@ -478,8 +478,8 @@ Debug su Blocco Note クリップボードへデバッグ 디버그를 클립보드로 - 复制除错讯息至剪贴簿 - 複製除錯訊息至剪貼簿 + 复制除错讯息至剪贴簿 + 複製除錯訊息至剪貼簿 Sends debug information to RPT and clipboard. @@ -494,8 +494,8 @@ Invia informazioni di debug all'RPT e al Blocco Note デバッグ情報の RPT とクリップボードに送ります。 디버그 정보를 보고하기 및 클립보드에 복사하기 위해 보냅니다. - 复制除错讯息至剪贴簿与RPT报告档中. - 複製除錯訊息至剪貼簿與RPT報告檔中. + 复制除错讯息至剪贴簿与RPT报告档中. + 複製除錯訊息至剪貼簿與RPT報告檔中. Headbug Fix @@ -510,8 +510,8 @@ Sistema Bug della Testa ヘッドバグ修正 헤드버그 수정 - 修复动作BUG - 修復動作BUG + 修复动作BUG + 修復動作BUG Resets your animation state. @@ -526,8 +526,8 @@ Resetta il tuo stato animazione 現在のアニメーションの状況を初期化します。 자신의 동작 상태 초기화 - 当ACE发生动作BUG时, 点此修复. - 當ACE發生動作BUG時, 點此修復. + 当ACE发生动作BUG时, 点此修复. + 當ACE發生動作BUG時, 點此修復. ACE News @@ -542,8 +542,8 @@ Novità ACE ACE からのお知らせ ACE 새소식 - ACE新闻 - ACE新聞 + ACE新闻 + ACE新聞 Show News on Main Menu @@ -558,8 +558,8 @@ Mostra News nel Menù Princinpale メイン メニュにお知らせを表示します 메인메뉴에 새소식을 표시합니다 - 显示新闻消息于主选单 - 顯示新聞消息於主選單 + 显示新闻消息于主选单 + 顯示新聞消息於主選單 All Categories @@ -573,8 +573,8 @@ Toutes les catégories 全カテゴリ 모든 카테고리 - 全局设定 - 全局設定 + 全局设定 + 全局設定 Logistics @@ -588,8 +588,8 @@ Logistique ロジスティクス 보급 - 后勤设定 - 後勤設定 + 后勤设定 + 後勤設定 diff --git a/addons/overheating/stringtable.xml b/addons/overheating/stringtable.xml index cdbe20fb4fa..37e40c2dc10 100644 --- a/addons/overheating/stringtable.xml +++ b/addons/overheating/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Visualizza testo in caso di inceppamento 弾詰りを文章で表示 탄걸림의 경우 화면에 표시 - 在卡弹时显示提示讯息 - 在卡彈時顯示提示訊息 + 在卡弹时显示提示讯息 + 在卡彈時顯示提示訊息 Display a notification whenever your weapon gets jammed @@ -30,8 +30,8 @@ Visualizza una notifica in caso la tua arma si inceppasse 持っている武器が弾詰りをすると、通知を表示します 총알이 무기에 걸릴경우 화면에 알림을 띄웁니다 - 当武器卡弹时显示提示讯息 - 當武器卡彈時顯示提示訊息 + 当武器卡弹时显示提示讯息 + 當武器卡彈時顯示提示訊息 Overheating Particle Effects @@ -45,8 +45,8 @@ Эффект частиц при перегреве 過熱の視覚効果 과열 입자 효과 - 枪管过热特效 - 槍管過熱特效 + 枪管过热特效 + 槍管過熱特效 Show particle effects when weapon overheats @@ -60,8 +60,8 @@ Zobrazit částicové efekty když se zbraň přehřije 武器を過熱すると視覚表現を表示します 무기가 과열되면 입자 효과를 보여줍니다 - 显示枪管过热特效 - 顯示槍管過熱特效 + 显示枪管过热特效 + 顯示槍管過熱特效 Overheating Particle Effects for everyone @@ -75,8 +75,8 @@ Эффект частиц при перегреве для всех 過熱の視覚表現を全体に与えます 모두에게 과열 입자 효과 적용 - 显示其他玩家的枪管过热特效 - 顯示其他玩家的槍管過熱特效 + 显示其他玩家的枪管过热特效 + 顯示其他玩家的槍管過熱特效 Show particle effects when other players weapon overheats @@ -90,8 +90,8 @@ Zobrazit částicové efekty když se zbraň přehřije jinému hráči 他のプレイヤの過熱の視覚表現を表示します 모든 인원이 무기가 과열될시 입자 효과가 나타납니다. - 当其他玩家的武器过热时显示特效 - 當其他玩家的武器過熱時顯示特效 + 当其他玩家的武器过热时显示特效 + 當其他玩家的武器過熱時顯示特效 Overheating Dispersion @@ -105,8 +105,8 @@ Důsledky přehřátí zbraně 過熱による精度の低下 과열 명중률 저하 - 过热散射 - 過熱散射 + 过热散射 + 過熱散射 Overheated weapons will be less accurate and have decreased muzzle velocity. Applys for all players. @@ -120,8 +120,8 @@ Přehřátá zbraň bude méně přesná a bude mít menší úsťovou rychlost. Platí pro všechny hráče. 過熱は精度を減少させたり、初速を低下させます、これは全プレイヤに適用します。 무기 과열시 무기의 명중률이 저하되고 총구속도가 감소합니다. 이는 모든 플레이어에게 적용됩니다. - 过热的武器将会有打不准和减少射击初速的情况. 适用于所有玩家 - 過熱的武器將會有打不準和減少射擊初速的情況. 適用於所有玩家 + 过热的武器将会有打不准和减少射击初速的情况. 适用于所有玩家 + 過熱的武器將會有打不準和減少射擊初速的情況. 適用於所有玩家 Unjam weapon on reload @@ -135,8 +135,8 @@ Исправлять клин при перезарядке 再装填による弾詰りの解消 재장전시 탄걸림 해결 - 重装弹匣以解决卡弹 - 重裝彈匣以解決卡彈 + 重装弹匣以解决卡弹 + 重裝彈匣以解決卡彈 Reloading clears a weapon jam. @@ -150,8 +150,8 @@ Перезарядка устраняет заклинивание оружия. 再装填により、弾詰りを除去します。 탄걸림이 재장전시 해결됩니다. - 利用重装弹匣来解决卡弹 - 利用重裝彈匣來解決卡彈 + 利用重装弹匣来解决卡弹 + 利用重裝彈匣來解決卡彈 Chance of unjam failing @@ -165,8 +165,8 @@ Шанс неудачи при устранении клина 弾詰りの除去を失敗する可能性 탄걸림 해결 시도 실패확률 - 解决卡弹失败机率 - 解決卡彈失敗機率 + 解决卡弹失败机率 + 解決卡彈失敗機率 Probability that an unjam action might fail, requiring to be repeated. @@ -180,8 +180,8 @@ Pravděpodobnost, že uvolnění zbraně selže, je proto nutné tuto akci opakovat. 弾詰りの除去を失敗する可能性が生まれ、もう一度動作を行う必要があります。 탄걸림 해결 시도시 실패할 확률이 있습니다. 이는 다시 탄걸림 해결을 시도해야함을 의미합니다. - 清除卡弹时有可能会失败, 需要反覆进行清枪 - 清除卡彈時有可能會失敗, 需要反覆進行清槍 + 清除卡弹时有可能会失败, 需要反覆进行清枪 + 清除卡彈時有可能會失敗, 需要反覆進行清槍 Spare barrel @@ -196,8 +196,8 @@ Canna di ricambio 予備銃身 예비 총열 - 备用枪管 - 備用槍管 + 备用枪管 + 備用槍管 Use to swap barrel. @@ -212,8 +212,8 @@ Usata per cambiare la canna. 予備銃身に交換する。 총열을 바꿀때 사용합니다. - 用来更换枪管 - 用來更換槍管 + 用来更换枪管 + 用來更換槍管 Weapon jammed! @@ -228,8 +228,8 @@ Arma inceppata! 武器が詰まった! 탄걸림! - 武器卡弹! - 武器卡彈! + 武器卡弹! + 武器卡彈! Clear jam @@ -244,8 +244,8 @@ Ripulisci l'arma 弾詰りを除去する 탄걸림 해결 - 清除卡弹 - 清除卡彈 + 清除卡弹 + 清除卡彈 Jam cleared @@ -260,8 +260,8 @@ Arma pronta al fuoco 弾詰りが除去された 탄걸림 해결됨 - 卡弹已清除 - 卡彈已清除 + 卡弹已清除 + 卡彈已清除 Jam failed to clear @@ -275,8 +275,8 @@ Не удалось исправить клин 弾詰りの除去に失敗した 탄걸림 해결 실패 - 卡弹未能清除 - 卡彈未能清除 + 卡弹未能清除 + 卡彈未能清除 Swap barrel @@ -291,8 +291,8 @@ Sostiuisci la canna 銃身を交換 총열 교체 - 换枪管 - 換槍管 + 换枪管 + 換槍管 Swapping barrel... @@ -307,8 +307,8 @@ Sostituendo la canna... 銃身を交換中・・・ 총열 교체중... - 换枪管中... - 換槍管中... + 换枪管中... + 換槍管中... Swapped barrel @@ -323,8 +323,8 @@ Canna sostituita 銃身を交換した 교체된 총열 - 完成换枪管 - 完成換槍管 + 完成换枪管 + 完成換槍管 Check weapon temperature @@ -339,8 +339,8 @@ Проверить температуру оружия 武器の温度を測る 무기 온도 확인 - 检查枪管温度 - 檢查槍管溫度 + 检查枪管温度 + 檢查槍管溫度 Check weapon temperature @@ -355,8 +355,8 @@ Controlla la temperatura della canna 武器の温度を測る 무기 온도 확인 - 检查枪管温度 - 檢查槍管溫度 + 检查枪管温度 + 檢查槍管溫度 Checking temperature... @@ -371,8 +371,8 @@ Проверка температуры... 温度を測っている・・・ 무기 온도 확인중... - 检查枪管温度中... - 檢查槍管溫度中... + 检查枪管温度中... + 檢查槍管溫度中... Check spare barrels temperatures @@ -385,8 +385,8 @@ Temperatur der Wechselläufe prüfen 총열 온도 확인 Controlla la temperatura della canna di ricambio - 检查备用枪管温度 - 檢查備用槍管溫度 + 检查备用枪管温度 + 檢查備用槍管溫度 Checking spare barrels temperatures... @@ -399,8 +399,8 @@ Prüfe Temperatur der Wechselläufe ... 총열 온도 확인중... Controllando la temperatura della canna di ricambio... - 检查枪管温度中... - 檢查槍管溫度中... + 检查枪管温度中... + 檢查槍管溫度中... Temperature @@ -415,8 +415,8 @@ Температура 温度 온도 - 温度 - 溫度 + 温度 + 溫度 Cool Spare Barrel/s @@ -429,8 +429,8 @@ Kalte Wechselläufe 차가운 예비 총열 Canna/e di Ricambio Fredda - 备用枪管温度正常 - 備用槍管溫度正常 + 备用枪管温度正常 + 備用槍管溫度正常 Warm Spare Barrel/s @@ -443,8 +443,8 @@ Warme Wechselläufe 따뜻한 예비 총열 Canna/e di Ricambio Calda - 备用枪管温度偏温 - 備用槍管溫度偏溫 + 备用枪管温度偏温 + 備用槍管溫度偏溫 Hot Spare Barrel/s @@ -457,8 +457,8 @@ Heiße Wechselläufe 뜨거운 예비 총열 Canna/e di Ricambio Molto Calda - 备用枪管温度偏热 - 備用槍管溫度偏熱 + 备用枪管温度偏热 + 備用槍管溫度偏熱 Very Hot Spare Barrel/s @@ -471,8 +471,8 @@ Sehr heiße Wechselläufe 매우 뜨거운 예비 총열 Canna/e di Ricambio Estremamente Calda - 备用枪管温度过热 - 備用槍管溫度過熱 + 备用枪管温度过热 + 備用槍管溫度過熱 Extremely Hot Spare Barrel/s @@ -485,8 +485,8 @@ Extrem heiße Wechselläufe 엄청나게 뜨거운 예비 총열 Canna/e di Ricambio Rovente - 备用枪管温度超级热 - 備用槍管溫度超級熱 + 备用枪管温度超级热 + 備用槍管溫度超級熱 Overheating Enabled @@ -500,8 +500,8 @@ Przegrzewanie włączone 과열 활성화 Surriscaldamento Abilitato - 启用过热 - 啟用過熱 + 启用过热 + 啟用過熱 Master enable for the overheating/jamming module @@ -513,8 +513,8 @@ Hauptschalter, um die Überhitzung-/Ladehemmung-Module zu aktivieren 과열/탄걸림 최종 활성화 Abilitazione master per il modulo di surriscaldamento / inceppamento - 启用枪管过热/干扰模块 - 啟用槍管過熱/干擾模塊 + 启用枪管过热/干扰模块 + 啟用槍管過熱/干擾模塊 diff --git a/addons/overpressure/stringtable.xml b/addons/overpressure/stringtable.xml index aeba1d3a51d..7a9edc06e51 100644 --- a/addons/overpressure/stringtable.xml +++ b/addons/overpressure/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -8,8 +8,8 @@ Mnożnik dystansu nadciśnienia Coéfficient de distance pour la surpression Coefficente Distanza Sovrapressione - 高压影响距离系数 - 高壓影響距離係數 + 高压影响距离系数 + 高壓影響距離係數 Scales the overpressure effect [Default: 1] @@ -18,8 +18,8 @@ Skaluje efekt nadciśnienia [Domyślne: 1] Échelonne les effets de la surpression [Par défaut : 1] Scala l'effetto di sovrapressione [Predefinito: 1] - 高压影响的范围 [预设: 1] - 高壓影響的範圍 [預設: 1] + 高压影响的范围 [预设: 1] + 高壓影響的範圍 [預設: 1] diff --git a/addons/parachute/stringtable.xml b/addons/parachute/stringtable.xml index c6eca9237de..c57f50b54fe 100644 --- a/addons/parachute/stringtable.xml +++ b/addons/parachute/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Altímetro 高度計 고도계 - 高度计 - 高度計 + 高度计 + 高度計 Altimeter Watch @@ -30,8 +30,8 @@ Relógio Altímetro 時計型高度計 고도계 시계 - 高度计手表 - 高度計手錶 + 高度计手表 + 高度計手錶 Used to show height, descent rate and the time. @@ -46,8 +46,8 @@ Usado para mostrar altura, taxa de descida e o tempo. 高度や降下率、時間を見るのに使います。 높이와, 하강속도 그리고 시간을 보여줍니다. - 用于显示高度, 下降率和时间. - 用於顯示高度, 下降率和時間. + 用于显示高度, 下降率和时间. + 用於顯示高度, 下降率和時間. Non-Steerable Parachute @@ -62,8 +62,8 @@ Para-querdas não controlável 非操作型パラシュート 비-조종 낙하산 - 非可操控降落伞 - 非可操控降落傘 + 非可操控降落伞 + 非可操控降落傘 Cut Parachute @@ -78,8 +78,8 @@ Taglia Paracadute パラシュートを切断 낙하산 자르기 - 剪断降落伞 - 剪斷降落傘 + 剪断降落伞 + 剪斷降落傘 Reserve Parachute @@ -94,8 +94,8 @@ Paracadute di Riserva 予備パラシュート 예비 낙하산 - 备用降落伞 - 備用降落傘 + 备用降落伞 + 備用降落傘 diff --git a/addons/quickmount/stringtable.xml b/addons/quickmount/stringtable.xml index a42e577bc0d..057e6482a74 100644 --- a/addons/quickmount/stringtable.xml +++ b/addons/quickmount/stringtable.xml @@ -1,12 +1,12 @@ - + Quick Mount Entrata Rapida クイック マウント - 快速搭乘 - 快速搭乘 + 快速搭乘 + 快速搭乘 Vehicle quick mount @@ -14,71 +14,71 @@ Pojazd szybkie mocowanie Entrata rapida veicolo 車両クイック マウント - 快速搭乘载具 - 快速搭乘載具 + 快速搭乘载具 + 快速搭乘載具 Quickly enter the vehicle you are directly looking at. Entra velocemente nel veicolo che stai guardando. 直接見ている車両へ迅速に搭乗します。 - 快速进入你正在看的载具之中. - 快速進入你正在看的載具之中. + 快速进入你正在看的载具之中. + 快速進入你正在看的載具之中. Vehicle Full Veicolo Pieno 車両は満員 - 载具已满 - 載具已滿 + 载具已满 + 載具已滿 Distance Distanza 距離 - 距离 - 距離 + 距离 + 距離 Maximum distance to check for vehicles. Distanza massima per controllare i veicoli. 車両を確認できる最大距離 - 最大可检查载具的距离. - 最大可檢查載具的距離. + 最大可检查载具的距离. + 最大可檢查載具的距離. Vehicle Locked Veicolo Bloccato. 車両は施錠されている - 载具已上锁 - 載具已上鎖 + 载具已上锁 + 載具已上鎖 Maximum Speed (km/h) Velocità Massima (km/h) 最高速度 (km/h) - 最高速度 (公里/小时) - 最高速度 (公里/小時) + 最高速度 (公里/小时) + 最高速度 (公里/小時) Maximum vehicle speed (km/h) allowed for player entry Velocità massima del veicolo (km/h) consentita per far salire un giocatore プレイヤーが搭乗できる限界速度 (km/h) - 设置玩家能在最高多少的速度之下进入载具. - 設置玩家能在最高多少的速度之下進入載具. + 设置玩家能在最高多少的速度之下进入载具. + 設置玩家能在最高多少的速度之下進入載具. Prioritize Seat Priorità Sedile 優先席 - 优先座位 - 優先座位 + 优先座位 + 優先座位 Seat priority on entry Priorità del sedile in entrata 搭乗の際の優先順位 - 优先想进入哪个座位. - 優先想進入哪個座位. + 优先想进入哪个座位. + 優先想進入哪個座位. diff --git a/addons/rangecard/stringtable.xml b/addons/rangecard/stringtable.xml index 8e12a259e78..5862981e16a 100644 --- a/addons/rangecard/stringtable.xml +++ b/addons/rangecard/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Tavola Balistica 射表 사거리표 - 弹道射表 - 彈道射表 + 弹道射表 + 彈道射表 50 METER increments -- MRAD/MRAD (reticle/turrets) @@ -30,8 +30,8 @@ Incrementi per 50 METRI - MRAD/MRAD (reticolo/torrette) 50 メートル増やす -- MRAD/MRAD (照準線/砲塔) 50 미터 늘리기 -- MRAD/MRAD (조준선/포탑) - 50公尺增量 -- 毫弧度/毫弧度 (瞄镜分划线/调整纽) - 50公尺增量 -- 毫弧度/毫弧度 (瞄鏡分劃線/調整紐) + 50公尺增量 -- 毫弧度/毫弧度 (瞄镜分划线/调整纽) + 50公尺增量 -- 毫弧度/毫弧度 (瞄鏡分劃線/調整紐) Open Range Card @@ -46,8 +46,8 @@ Apri Tavola Balistica 射表を開く 사거리표 열기 - 开启弹道射表 - 開啟彈道射表 + 开启弹道射表 + 開啟彈道射表 Open Range Card Copy @@ -62,8 +62,8 @@ Apri Copia Tavola Balistica 複製された射表を開く 복제 사거리표 열기 - 开启弹道射表副本 - 開啟彈道射表副本 + 开启弹道射表副本 + 開啟彈道射表副本 Open Range Card @@ -78,8 +78,8 @@ Apri Tavola Balistica 射表を開く 사거리표 열기 - 开启弹道射表 - 開啟彈道射表 + 开启弹道射表 + 開啟彈道射表 Open Range Card Copy @@ -94,8 +94,8 @@ Apri Copia Tavola Balistica 複製された射表を開く 복제 사거리표 열기 - 开启弹道射表副本 - 開啟彈道射表副本 + 开启弹道射表副本 + 開啟彈道射表副本 Copy Range Card @@ -110,8 +110,8 @@ Copia Tavola Balistica 射表を複製する 사거리표 복제 - 复制弹道射表 - 複製彈道射表 + 复制弹道射表 + 複製彈道射表 diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index b8ee9943ad3..6ea746a671a 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ XM312A XM312 XM312 - XM312重機槍 - XM312重机枪 + XM312重機槍 + XM312重机枪 XM312A @@ -30,8 +30,8 @@ XM312A XM312A XM312A - XM312A重機槍 - XM312A重机枪 + XM312A重機槍 + XM312A重机枪 XM312 (High) @@ -46,8 +46,8 @@ XM312 (Alta) XM312 (高) XM312 (높음) - XM312重機槍 (高射腳架) - XM312重机枪 (高射脚架) + XM312重機槍 (高射腳架) + XM312重机枪 (高射脚架) XM307 @@ -62,8 +62,8 @@ XM307 XM307 XM307 - XM307榴彈機槍 - XM307榴弹机枪 + XM307榴彈機槍 + XM307榴弹机枪 XM307A @@ -78,8 +78,8 @@ XM307A XM307A XM307A - XM307A榴彈機槍 - XM307A榴弹机枪 + XM307A榴彈機槍 + XM307A榴弹机枪 XM307 (High) @@ -94,8 +94,8 @@ XM307 (Alta) XM307 (高) XM307 (높음) - XM307榴彈機槍 (高射腳架) - XM307榴弹机枪 (高射脚架) + XM307榴彈機槍 (高射腳架) + XM307榴弹机枪 (高射脚架) Mini-Spike Launcher (AT) @@ -110,8 +110,8 @@ Lanciatore Mini-Spike (AC) ミニスパイク ランチャー (対戦) Mini-Spike Launcher (대전차) - "迷你長釘"導彈發射器 (反坦克) - "迷你长钉"导弹发射器 (反坦克) + "迷你長釘"導彈發射器 (反坦克) + "迷你长钉"导弹发射器 (反坦克) Mini-Spike Launcher (AA) @@ -126,8 +126,8 @@ Lanciatore Mini-Spike (AA) ミニスパイク ランチャー (対空) Mini-Spike Launcher (대공) - "迷你長釘"導彈發射器 (防空) - "迷你长钉"导弹发射器 (防空) + "迷你長釘"導彈發射器 (防空) + "迷你长钉"导弹发射器 (防空) YABHON-R3 @@ -142,8 +142,8 @@ YABHON-R3 YABHON-R3 YABHON-R3 - "亞伯罕-R3型"空中無人載具 - "亚伯罕-R3型"空中无人载具 + "亞伯罕-R3型"空中無人載具 + "亚伯罕-R3型"空中无人载具 YABHON-R3 (CAS) @@ -158,8 +158,8 @@ YABHON-R3 (CAS) YABHON-R3 (対地) YABHON-R3 (근접지원) - "亞伯罕-R3型"空中無人載具 (近空支援) - "亚伯罕-R3型"空中无人载具 (近空支援) + "亞伯罕-R3型"空中無人載具 (近空支援) + "亚伯罕-R3型"空中无人载具 (近空支援) M-ATV @@ -174,8 +174,8 @@ M-ATV M-ATV M-ATV - 防地雷反伏擊全地形車 - 防地雷反伏击全地形车 + 防地雷反伏擊全地形車 + 防地雷反伏击全地形车 M-ATV (HMG) @@ -190,8 +190,8 @@ M-ATV (HMG) M-ATV (HMG) M-ATV (HMG) - 防地雷反伏擊全地形車 (重機槍) - 防地雷反伏击全地形车 (重机枪) + 防地雷反伏擊全地形車 (重機槍) + 防地雷反伏击全地形车 (重机枪) M-ATV (GMG) @@ -206,8 +206,8 @@ M-ATV (GMG) M-ATV (GMG) M-ATV (GMG) - 防地雷反伏擊全地形車 (榴彈機槍) - 防地雷反伏击全地形车 (榴弹机枪) + 防地雷反伏擊全地形車 (榴彈機槍) + 防地雷反伏击全地形车 (榴弹机枪) Merkava Mk IV M @@ -222,8 +222,8 @@ Merkava Mk IV M メルカバ Mk IV M Merkava Mk IV M - "梅卡瓦4代"主戰坦克 - "梅卡瓦4代"主战坦克 + "梅卡瓦4代"主戰坦克 + "梅卡瓦4代"主战坦克 Merkava Mk IV LIC @@ -238,8 +238,8 @@ Merkava Mk IV LIC メルカバ Mk IV LIC Merkava Mk IV LIC - "梅卡瓦4代"主戰坦克 城市版 - "梅卡瓦4代"主战坦克 城市版 + "梅卡瓦4代"主戰坦克 城市版 + "梅卡瓦4代"主战坦克 城市版 Sholef @@ -254,8 +254,8 @@ Sholef ショルフ Sholef - "神槍"自走炮 - "神枪"自走炮 + "神槍"自走炮 + "神枪"自走炮 Seara @@ -270,8 +270,8 @@ Seara シアラ Seara - "希拉"多管火箭車 - "希拉"多管火箭车 + "希拉"多管火箭車 + "希拉"多管火箭车 Namer @@ -286,8 +286,8 @@ Namer ネイマー Namer - "花豹"裝甲運兵車 - "花豹"装甲运兵车 + "花豹"裝甲運兵車 + "花豹"装甲运兵车 Bardelas @@ -302,8 +302,8 @@ Bardelas バーラデラス Bardelas - "布萊德斯"防空車 - "布莱德斯"防空车 + "布萊德斯"防空車 + "布莱德斯"防空车 Badger IFV @@ -318,8 +318,8 @@ Badger IFV バッジ IFV Badger IFV - "蜜獾"步兵戰車 - "蜜獾"步兵战车 + "蜜獾"步兵戰車 + "蜜獾"步兵战车 Nemmera @@ -334,8 +334,8 @@ Nemmera ネマラ Nemmera - "雌豹"戰鬥工程車 - "雌豹"战斗工程车 + "雌豹"戰鬥工程車 + "雌豹"战斗工程车 HEMTT Transport @@ -350,8 +350,8 @@ HEMTT da trasporto HEMTT 輸送型 HEMTT 수송 - 重型增程機動戰術卡車 (運輸) - 重型增程机动战术卡车 (运输) + 重型增程機動戰術卡車 (運輸) + 重型增程机动战术卡车 (运输) HEMTT Transport (covered) @@ -366,8 +366,8 @@ HEMTT da trasporto (coperto) HEMTT 輸送型 (幌) HEMTT 수송 (덮개) - 重型增程機動戰術卡車 (運輸, 棚布) - 重型增程机动战术卡车 (运输, 棚布) + 重型增程機動戰術卡車 (運輸, 棚布) + 重型增程机动战术卡车 (运输, 棚布) HEMTT @@ -382,8 +382,8 @@ HEMTT HEMTT HEMTT - 重型增程機動戰術卡車 - 重型增程机动战术卡车 + 重型增程機動戰術卡車 + 重型增程机动战术卡车 HEMTT Container @@ -398,8 +398,8 @@ HEMTT portacontainer HEMTT コンテナ型 HEMTT 컨테이너 - 重型增程機動戰術卡車 (貨櫃) - 重型增程机动战术卡车 (货柜) + 重型增程機動戰術卡車 (貨櫃) + 重型增程机动战术卡车 (货柜) HEMTT Medical @@ -414,8 +414,8 @@ HEMTT Medico HEMTT 救急車 HEMTT 의료 - 重型增程機動戰術卡車 (醫療) - 重型增程机动战术卡车 (医疗) + 重型增程機動戰術卡車 (醫療) + 重型增程机动战术卡车 (医疗) HEMTT Ammo @@ -430,8 +430,8 @@ HEMTT di rifornimento munizioni HEMTT 弾薬給弾型 HEMTT 탄약 - 重型增程機動戰術卡車 (彈藥) - 重型增程机动战术卡车 (弹药) + 重型增程機動戰術卡車 (彈藥) + 重型增程机动战术卡车 (弹药) HEMTT Fuel @@ -446,8 +446,8 @@ HEMTT di rifornimento carburante HEMTT 燃料給油車 HEMTT 연료 - 重型增程機動戰術卡車 (燃油) - 重型增程机动战术卡车 (燃油) + 重型增程機動戰術卡車 (燃油) + 重型增程机动战术卡车 (燃油) HEMTT Repair @@ -462,8 +462,8 @@ HEMTT Riparatore HEMTT 修理型 HEMTT 수리 - 重型增程機動戰術卡車 (維修) - 重型增程机动战术卡车 (维修) + 重型增程機動戰術卡車 (維修) + 重型增程机动战术卡车 (维修) Fennek @@ -478,8 +478,8 @@ Fennek フェネック Fennek - "非洲小狐"防地雷反伏擊車 - "非洲小狐"防地雷反伏击车 + "非洲小狐"防地雷反伏擊車 + "非洲小狐"防地雷反伏击车 Fennek (HMG) @@ -494,8 +494,8 @@ Fennek (HMG) フェネック (HMG) Fennek (HMG) - "非洲小狐"防地雷反伏擊車 (重機槍) - "非洲小狐"防地雷反伏击车 (重机枪) + "非洲小狐"防地雷反伏擊車 (重機槍) + "非洲小狐"防地雷反伏击车 (重机枪) Fennek (GMG) @@ -510,8 +510,8 @@ Fennek (GMG) フェネック (GMG) Fennek (GMG) - "非洲小狐"防地雷反伏擊車 (榴彈機槍) - "非洲小狐"防地雷反伏击车 (榴弹机枪) + "非洲小狐"防地雷反伏擊車 (榴彈機槍) + "非洲小狐"防地雷反伏击车 (榴弹机枪) Leopard 2SG @@ -526,8 +526,8 @@ Leopard 2SG レオパルド 2SG Leopard 2SG - "豹2型新加坡版"主戰坦克 - "豹2型新加坡版"主战坦克 + "豹2型新加坡版"主戰坦克 + "豹2型新加坡版"主战坦克 FV510 Warrior @@ -542,8 +542,8 @@ FV510 Warrior FV510 ウォーリアー FV510 Warrior - FV510"戰士"步兵戰車 - FV510"战士"步兵战车 + FV510"戰士"步兵戰車 + FV510"战士"步兵战车 Pandur II @@ -558,8 +558,8 @@ Pandur II パンデュール II Pandur II - "潘德2型"裝甲運兵車 - "潘德2型"装甲运兵车 + "潘德2型"裝甲運兵車 + "潘德2型"装甲运兵车 KamAZ Transport @@ -574,8 +574,8 @@ KamAZ da trasporto KamAZ 輸送型 KamAZ 수송 - "卡瑪斯"卡車 (運輸) - "卡玛斯"卡车 (运输) + "卡瑪斯"卡車 (運輸) + "卡玛斯"卡车 (运输) KamAZ Transport (covered) @@ -590,8 +590,8 @@ KamAZ da trasporto (coperto) KamAZ 輸送型 (幌) KamAZ 수송 (덮개) - "卡瑪斯"卡車 (運輸, 棚布) - "卡玛斯"卡车 (运输, 棚布) + "卡瑪斯"卡車 (運輸, 棚布) + "卡玛斯"卡车 (运输, 棚布) KamAZ Ammo @@ -606,8 +606,8 @@ KamAZ di rifornimento munizioni KamAZ 弾薬給弾型 KamAZ 탄약 - "卡瑪斯"卡車 (彈藥) - "卡玛斯"卡车 (弹药) + "卡瑪斯"卡車 (彈藥) + "卡玛斯"卡车 (弹药) KamAZ Fuel @@ -622,8 +622,8 @@ KamAZ di rifornimento carburante KamzAZ 燃料給油車 KamAZ 연료 - "卡瑪斯"卡車 (燃油) - "卡玛斯"卡车 (燃油) + "卡瑪斯"卡車 (燃油) + "卡玛斯"卡车 (燃油) KamAZ Repair @@ -638,8 +638,8 @@ KamAZ riparatore KamzAZ 修理型 KamAZ 수리 - "卡瑪斯"卡車 (維修) - "卡玛斯"卡车 (维修) + "卡瑪斯"卡車 (維修) + "卡玛斯"卡车 (维修) KamAZ Medical @@ -654,8 +654,8 @@ KamAZ Medico KamAZ 救急車 KamAZ 의료 - "卡瑪斯"卡車 (醫療) - "卡玛斯"卡车 (医疗) + "卡瑪斯"卡車 (醫療) + "卡玛斯"卡车 (医疗) Punisher @@ -670,8 +670,8 @@ Punisher パニッシャー Punisher - "懲罰者"防地雷反伏擊車 - "惩罚者"防地雷反伏击车 + "懲罰者"防地雷反伏擊車 + "惩罚者"防地雷反伏击车 Punisher (HMG) @@ -686,8 +686,8 @@ Punisher (HMG) パニッシャー (HMG) Punisher (HMG) - "懲罰者"防地雷反伏擊車 (重機槍) - "惩罚者"防地雷反伏击车 (重机枪) + "懲罰者"防地雷反伏擊車 (重機槍) + "惩罚者"防地雷反伏击车 (重机枪) Punisher (GMG) @@ -702,8 +702,8 @@ Punisher (GMG) パニッシャー (GMG) Punisher (GMG) - "懲罰者"防地雷反伏擊車 (榴彈機槍) - "惩罚者"防地雷反伏击车 (榴弹机枪) + "懲罰者"防地雷反伏擊車 (榴彈機槍) + "惩罚者"防地雷反伏击车 (榴弹机枪) T100 Black Eagle @@ -718,8 +718,8 @@ T100 Black Eagle T100 ブラック イーグル T100 Black Eagle - T100"黑鷹"主戰坦克 - T100"黑鹰"主战坦克 + T100"黑鷹"主戰坦克 + T100"黑鹰"主战坦克 2S9 Sochor @@ -734,8 +734,8 @@ 2S9 Sochor 2S9 ソーカー 2S9 Sochor - 2S9"薩克爾"自走砲 - 2S9"萨克尔"自走炮 + 2S9"薩克爾"自走砲 + 2S9"萨克尔"自走炮 BM-2T Stalker @@ -750,8 +750,8 @@ BM-2T Stalker BM-2T ストーカー BM-2T Stalker - BM-2T"潛行者"步兵戰車 - BM-2T"潜行者"步兵战车 + BM-2T"潛行者"步兵戰車 + BM-2T"潜行者"步兵战车 ZSU-35 Tigris @@ -766,8 +766,8 @@ ZSU-35 Tigris ZSU-35 ZSU-35 Tigris - ZSU-35"虎式"防空車 - ZSU-35"虎式"防空车 + ZSU-35"虎式"防空車 + ZSU-35"虎式"防空车 Otokar ARMA @@ -782,8 +782,8 @@ Otokar ARMA ティグリスOtokar アルマ Otokar ARMA - "奧托卡-阿爾默"裝甲運兵車 - "奥托卡-阿尔默"装甲运兵车 + "奧托卡-阿爾默"裝甲運兵車 + "奥托卡-阿尔默"装甲运兵车 Typhoon Transport @@ -798,8 +798,8 @@ Typhoon da trasporto Typhoon 輸送型 Typhoon 수송 - "颱風"卡車 (運輸) - "台风"卡车 (运输) + "颱風"卡車 (運輸) + "台风"卡车 (运输) Typhoon Transport (covered) @@ -814,8 +814,8 @@ Typhoon da trasporto (coperto) Typhoon 輸送型 (幌) Typhoon 수송 (덮개) - "颱風"卡車 (運輸, 棚布) - "台风"卡车 (运输, 棚布) + "颱風"卡車 (運輸, 棚布) + "台风"卡车 (运输, 棚布) Typhoon Device @@ -830,8 +830,8 @@ Typhoon per dispositivo Typhoon デバイス型 Typhoon 장치 - "颱風"卡車 (精密設備) - "台风"卡车 (精密设备) + "颱風"卡車 (精密設備) + "台风"卡车 (精密设备) Typhoon Ammo @@ -846,8 +846,8 @@ Typhoon di rifornimento munizioni Typhoon 弾薬給弾型 Typhoon 탄약 - "颱風"卡車 (彈藥) - "台风"卡车 (弹药) + "颱風"卡車 (彈藥) + "台风"卡车 (弹药) Typhoon Fuel @@ -862,8 +862,8 @@ Typhoon di rifornimento carburante Typhoon 燃料給油車 Typhoon 연료 - "颱風"卡車 (燃油) - "台风"卡车 (燃油) + "颱風"卡車 (燃油) + "台风"卡车 (燃油) Typhoon Repair @@ -878,8 +878,8 @@ Typhoon riparatore Typhoon 修理型 Typhoon 수리 - "颱風"卡車 (維修) - "台风"卡车 (维修) + "颱風"卡車 (維修) + "台风"卡车 (维修) Typhoon Medical @@ -894,8 +894,8 @@ Typhoon medico Typhoon 救急車 Typhoon 의료 - "颱風"卡車 (醫療) - "台风"卡车 (医疗) + "颱風"卡車 (醫療) + "台风"卡车 (医疗) RAH-66 Comanche @@ -910,8 +910,8 @@ RAH-66 Comanche RAH-66 コマンチ RAH-66 Comanche - RAH-66"卡曼契"攻擊直升機 - RAH-66"卡曼契"攻击直升机 + RAH-66"卡曼契"攻擊直升機 + RAH-66"卡曼契"攻击直升机 MH-6 Little Bird @@ -926,8 +926,8 @@ MH-6 Little Bird MH-6 リトル バード MH-6 Little Bird - MH-6"小鳥"運輸直升機 - MH-6"小鸟"运输直升机 + MH-6"小鳥"運輸直升機 + MH-6"小鸟"运输直升机 AH-6 Little Bird @@ -942,8 +942,8 @@ AH-6 Little Bird AH-6 リトル バード AH-6 Little Bird - AH-6"小鳥"武裝直升機 - AH-6"小鸟"武装直升机 + AH-6"小鳥"武裝直升機 + AH-6"小鸟"武装直升机 CH-47I Chinook @@ -958,8 +958,8 @@ CH-47I Chinook CH-47I チヌーク CH-47I Chinook - CH-47I"契努克"運輸直升機 - CH-47I"契努克"运输直升机 + CH-47I"契努克"運輸直升機 + CH-47I"契努克"运输直升机 CH-47I Chinook (unarmed) @@ -974,8 +974,8 @@ CH-47I Chinook (desarmado) CH-47I チヌーク (非武装) CH-47I Chinook (비무장) - CH-47I"契努克"運輸直升機 (無武裝) - CH-47I"契努克"运输直升机 (无武装) + CH-47I"契努克"運輸直升機 (無武裝) + CH-47I"契努克"运输直升机 (无武装) A-10D Thunderbolt II @@ -990,8 +990,8 @@ A-10D Thunderbolt II A-10D サンダーボルト II A-10D Thunderbolt II - A-10D"雷霆二式"攻擊機 - A-10D"雷霆二式"攻击机 + A-10D"雷霆二式"攻擊機 + A-10D"雷霆二式"攻击机 AW159 Wildcat @@ -1006,8 +1006,8 @@ AW159 Wildcat AW159 ワイルドキャット AW159 Wildcat - AW159"野貓"直升機 - AW159"野猫"直升机 + AW159"野貓"直升機 + AW159"野猫"直升机 AW159 Wildcat (unarmed) @@ -1022,8 +1022,8 @@ AW159 Wildcat (disarmato) AW159 ワイルドキャット (非武装) AW159 Wildcat (비무장) - AW159"野貓"直升機 (無武裝) - AW159"野猫"直升机 (无武装) + AW159"野貓"直升機 (無武裝) + AW159"野猫"直升机 (无武装) AW101 Merlin @@ -1038,8 +1038,8 @@ AW101 Merlin AW101 マーリン AW101 Merlin - AW101"灰背隼"運輸直升機 - AW101"灰背隼"运输直升机 + AW101"灰背隼"運輸直升機 + AW101"灰背隼"运输直升机 L-159 ALCA @@ -1054,8 +1054,8 @@ L-159 ALCA L-159 アルカ L-159 ALCA - L-159先進輕型戰鬥機 - L-159先进轻型战斗机 + L-159先進輕型戰鬥機 + L-159先进轻型战斗机 L-159 ALCA (CAS) @@ -1070,8 +1070,8 @@ L-159 ALCA (CAS) L-159 アルカ (対地) L-159 ALCA (근접지원) - L-159先進輕型戰鬥機 (近空支援) - L-159先进轻型战斗机 (近空支援) + L-159先進輕型戰鬥機 (近空支援) + L-159先进轻型战斗机 (近空支援) L-159 ALCA (AA) @@ -1086,8 +1086,8 @@ L-159 ALCA (AA) L-159 アルカ (対空) L-159 ALCA (대공) - L-159先進輕型戰鬥機 (空對空) - L-159先进轻型战斗机 (空对空) + L-159先進輕型戰鬥機 (空對空) + L-159先进轻型战斗机 (空对空) Ka-60 Kasatka @@ -1102,8 +1102,8 @@ Ka-60 Kasatka Ka-60 カサートカ Ka-60 Kasatka - Ka-60"逆戟鯨"直升機 - Ka-60"逆戟鲸"直升机 + Ka-60"逆戟鯨"直升機 + Ka-60"逆戟鲸"直升机 Ka-60 Kasatka (Black & White) @@ -1117,8 +1117,8 @@ Ka-60 Kasatka (blanco y negro) Ka-60 カサートカ (黒&白) Ka-60 Kasatka (검정 및 하양) - Ka-60"逆戟鯨"直升機 (黑&白) - Ka-60"逆戟鲸"直升机 (黑&白) + Ka-60"逆戟鯨"直升機 (黑&白) + Ka-60"逆戟鲸"直升机 (黑&白) Ka-60 Kasatka (unarmed) @@ -1133,8 +1133,8 @@ Ka-60 Kasatka (disarmato) Ka-60 カサートカ (非武装) Ka-60 Kasatka (비무장) - Ka-60"逆戟鯨"直升機 (無武裝) - Ka-60"逆戟鲸"直升机 (无武装) + Ka-60"逆戟鯨"直升機 (無武裝) + Ka-60"逆戟鲸"直升机 (无武装) Yak-130 @@ -1149,8 +1149,8 @@ Yak-130 Yak-130 ミトン Yak-130 - Yak-130"手套"攻擊機 - Yak-130"手套"攻击机 + Yak-130"手套"攻擊機 + Yak-130"手套"攻击机 MD 500 @@ -1165,8 +1165,8 @@ MD 500 MD 500 MD 500 - MD 500"防衛者"直升機 - MD 500"防卫者"直升机 + MD 500"防衛者"直升機 + MD 500"防卫者"直升机 M4A1 SLAM @@ -1181,8 +1181,8 @@ M4A1 SLAM M4A1 SLAM M4A1 SLAM - M4A1指向性反裝甲地雷 - M4A1指向性反装甲地雷 + M4A1指向性反裝甲地雷 + M4A1指向性反装甲地雷 M18A1 Claymore @@ -1197,8 +1197,8 @@ M18A1 Claymore Mina antiuomo M18A1 クレイモア M18A1 클레이모어 - M18A1"闊刀"地雷 - M18A1"阔刀"地雷 + M18A1"闊刀"地雷 + M18A1"阔刀"地雷 M183 Demolition Charge Assembly @@ -1213,8 +1213,8 @@ M183 Demolition Charge Assembly M183 梱包爆薬 M183 폭파 장약 조립 - M183炸藥包 - M183炸药包 + M183炸藥包 + M183炸药包 M112 Demolition Block @@ -1229,8 +1229,8 @@ M112 Demolition Block M113 爆薬ブロック M112 폭파 블럭 - M112塑性炸藥 - M112塑性炸药 + M112塑性炸藥 + M112塑性炸药 M67 Fragmentation Grenade @@ -1245,8 +1245,8 @@ M67 Granata a frammentazione M67 破片手榴弾 M67 세열 수류탄 - M67破片手榴彈 - M67破片手榴弹 + M67破片手榴彈 + M67破片手榴弹 M83 Smoke Grenade (White) @@ -1261,8 +1261,8 @@ M83 Granata fumogena (Bianco) M18 煙幕手榴弾 (白) M83 연막탄 (하양) - M83煙霧彈 (白色) - M83烟雾弹 (白色) + M83煙霧彈 (白色) + M83烟雾弹 (白色) M18 Smoke Grenade (Blue) @@ -1277,8 +1277,8 @@ M18 Granata fumogena (Blu) M18 煙幕手榴弾 (青) M18 연막탄 (파랑) - M18煙霧彈 (藍色) - M18烟雾弹 (蓝色) + M18煙霧彈 (藍色) + M18烟雾弹 (蓝色) M18 Smoke Grenade (Green) @@ -1293,8 +1293,8 @@ M18 Granata fumogena (Verde) M18 煙幕手榴弾 (緑) M18 연막탄 (초록) - M18煙霧彈 (綠色) - M18烟雾弹 (绿色) + M18煙霧彈 (綠色) + M18烟雾弹 (绿色) M18 Smoke Grenade (Orange) @@ -1309,8 +1309,8 @@ M18 Granata fumogena (Arancione) M18 煙幕手榴弾 (橙) M18 연막탄 (주황) - M18煙霧彈 (橘色) - M18烟雾弹 (橘色) + M18煙霧彈 (橘色) + M18烟雾弹 (橘色) M18 Smoke Grenade (Purple) @@ -1325,8 +1325,8 @@ M18 Granata fumogena (Viola) M18 煙幕手榴弾 (紫) M18 연막탄 (보라) - M18煙霧彈 (紫色) - M18烟雾弹 (紫色) + M18煙霧彈 (紫色) + M18烟雾弹 (紫色) M18 Smoke Grenade (Red) @@ -1341,8 +1341,8 @@ M18 Granata fumogena (Rosso) M18 煙幕手榴弾 (赤) M18 연막탄 (빨강) - M18煙霧彈 (紅色) - M18烟雾弹 (红色) + M18煙霧彈 (紅色) + M18烟雾弹 (红色) M18 Smoke Grenade (Yellow) @@ -1357,8 +1357,8 @@ M18 Granata fumogena (Giallo) M18 煙幕手榴弾 (黄) M18 연막탄 (노랑) - M18煙霧彈 (黃色) - M18烟雾弹 (黄色) + M18煙霧彈 (黃色) + M18烟雾弹 (黄色) M15 Anti-Tank Mine @@ -1373,8 +1373,8 @@ M15 Mine anticarro M15 対戦車地雷 M15 대전차지뢰 - M15反坦克地雷 - M15反坦克地雷 + M15反坦克地雷 + M15反坦克地雷 VS-50 Anti-Personnel Mine @@ -1389,8 +1389,8 @@ VS-50 Mine antiuomo VS-50 対人地雷 VS-50 대인지뢰 - VS-50反人員地雷 - VS-50反人员地雷 + VS-50反人員地雷 + VS-50反人员地雷 M26 Anti-Personnel Bounding Mine @@ -1405,8 +1405,8 @@ M26 Mine saltanti antiuomo M26 対人跳躍地雷 M26 대인도약지뢰 - M26反人員彈跳雷 - M26反人员弹跳雷 + M26反人員彈跳雷 + M26反人员弹跳雷 PMR-3 Anti-Personnel Tripwire Mine @@ -1421,8 +1421,8 @@ PMR-3 Mine antiuomo PMR-3 仕掛け型対人地雷 PMR-3 대인인계철선지뢰 - PMR-3反人員絆線雷 - PMR-3反人员绊线雷 + PMR-3反人員絆線雷 + PMR-3反人员绊线雷 P99 @@ -1437,8 +1437,8 @@ P99 P99 P99 - P99手槍 - P99手枪 + P99手槍 + P99手枪 MP-443 Grach @@ -1453,8 +1453,8 @@ MP-443 Grach MP-433 グラッチ MP-443 Grach - MP-443"烏鴉"手槍 - MP-443"乌鸦"手枪 + MP-443"烏鴉"手槍 + MP-443"乌鸦"手枪 Custom Covert II @@ -1469,8 +1469,8 @@ ACP-C2 カスタム コンバート II Custom Covert II - 特裝隱蔽Ⅱ型手槍 - 特装隐蔽Ⅱ型手枪 + 特裝隱蔽Ⅱ型手槍 + 特装隐蔽Ⅱ型手枪 FNX-45 Tactical @@ -1485,8 +1485,8 @@ FNX-45 Tactical FNX-45 タクティカル FNX-45 Tactical - FNX-45戰術型手槍 - FNX-45战术型手枪 + FNX-45戰術型手槍 + FNX-45战术型手枪 Chiappa Rhino 60DS @@ -1501,8 +1501,8 @@ Chiappa Rhino 6DS チアッパ ライノ 60DS Chiappa Rhino 60DS - 齊亞帕"犀牛"60DS左輪手槍 - 齐亚帕"犀牛"60DS左轮手枪 + 齊亞帕"犀牛"60DS左輪手槍 + 齐亚帕"犀牛"60DS左轮手枪 Taurus Judge @@ -1517,8 +1517,8 @@ Taurus Judge タウルス ジャッジ Taurus Judge - 金牛座"法官"信號槍 - 金牛座"法官"信号枪 + 金牛座"法官"信號槍 + 金牛座"法官"信号枪 NLAW @@ -1533,8 +1533,8 @@ NLAW NLAW NLAW - 次世代輕型反坦克導彈發射器 - 次世代轻型反坦克导弹发射器 + 次世代輕型反坦克導彈發射器 + 次世代轻型反坦克导弹发射器 RPG-32 @@ -1549,8 +1549,8 @@ RPG-32 RPG-32 RPG-32 - RPG-32"哈希姆"火箭發射器 - RPG-32"哈希姆"火箭发射器 + RPG-32"哈希姆"火箭發射器 + RPG-32"哈希姆"火箭发射器 Mini-Spike (AA) @@ -1565,8 +1565,8 @@ Mini-Spike (AA) ミニスパイク (対空) Mini-Spike (대공) - "迷你長釘"導彈發射器 (防空) - "迷你长钉"导弹发射器 (防空) + "迷你長釘"導彈發射器 (防空) + "迷你长钉"导弹发射器 (防空) Mini-Spike (AT) @@ -1581,8 +1581,8 @@ Mini-Spike (AT) ミニスパイク (対地) Mini-Spike (대전차) - "迷你長釘"導彈發射器 (反坦克) - "迷你长钉"导弹发射器 (反坦克) + "迷你長釘"導彈發射器 (反坦克) + "迷你长钉"导弹发射器 (反坦克) MX @@ -1597,8 +1597,8 @@ MX MX MX - MX突擊步槍 - MX突击步枪 + MX突擊步槍 + MX突击步枪 MX (Black) @@ -1613,8 +1613,8 @@ MX (Nero) MX (黒) MX (검정) - MX突擊步槍 (黑色) - MX突击步枪 (黑色) + MX突擊步槍 (黑色) + MX突击步枪 (黑色) MXC @@ -1629,8 +1629,8 @@ MXC MXC MXC - MXC卡賓步槍 - MXC卡宾步枪 + MXC卡賓步槍 + MXC卡宾步枪 MXC (Black) @@ -1645,8 +1645,8 @@ MXC (Nero) MXC (黒) MXC (검정) - MXC卡賓步槍 (黑色) - MXC卡宾步枪 (黑色) + MXC卡賓步槍 (黑色) + MXC卡宾步枪 (黑色) MX 3GL @@ -1661,8 +1661,8 @@ MX 3GL MX 3GL MX 3GL - MX突擊步槍 (3連裝榴彈) - MX突击步枪 (3连装榴弹) + MX突擊步槍 (3連裝榴彈) + MX突击步枪 (3连装榴弹) MX 3GL (Black) @@ -1677,8 +1677,8 @@ MX 3GL (Nero) MX 3GL (黒) MX 3GL (검정) - MX突擊步槍 (3連裝榴彈-黑色) - MX突击步枪 (3连装榴弹-黑色) + MX突擊步槍 (3連裝榴彈-黑色) + MX突击步枪 (3连装榴弹-黑色) MX LSW @@ -1693,8 +1693,8 @@ MX LSW MX LSW MX LSW - MX輕型機槍 - MX轻型机枪 + MX輕型機槍 + MX轻型机枪 MX LSW (Black) @@ -1709,8 +1709,8 @@ MX LSW (Nero) MX LSW (黒) MX LSW (검정) - MX輕型機槍 (黑色) - MX轻型机枪 (黑色) + MX輕型機槍 (黑色) + MX轻型机枪 (黑色) MXM @@ -1725,8 +1725,8 @@ MXM MXM MXM - MXM精準步槍 - MXM精准步枪 + MXM精準步槍 + MXM精准步枪 MXM (Black) @@ -1741,8 +1741,8 @@ MXM (Nero) MXM (黒) MXM (검정) - MXM精準步槍 (黑色) - MXM精准步枪 (黑色) + MXM精準步槍 (黑色) + MXM精准步枪 (黑色) KH2002 Sama @@ -1757,8 +1757,8 @@ KT2002 Katiba KH2002 サマ KH2002 Sama - KH2002"海白爾"突擊步槍 - KH2002"海白尔"突击步枪 + KH2002"海白爾"突擊步槍 + KH2002"海白尔"突击步枪 KH2002C Sama @@ -1773,8 +1773,8 @@ KT2002C Katiba KH2002C サマ KH2002C Sama - KH2002C"海白爾"卡賓步槍 - KH2002C"海白尔"卡宾步枪 + KH2002C"海白爾"卡賓步槍 + KH2002C"海白尔"卡宾步枪 KH2002 Sama KGL @@ -1789,8 +1789,8 @@ KT2002 Katiba KGL KH2002 サマ KGL KH2002 Sama KGL - KH2002"海白爾"突擊步槍 (榴彈) - KH2002"海白尔"突击步枪 (榴弹) + KH2002"海白爾"突擊步槍 (榴彈) + KH2002"海白尔"突击步枪 (榴弹) F2000 (Camo) @@ -1805,8 +1805,8 @@ F2000 (Camo) F2000 (迷彩) F2000 (위장) - F2000突擊步槍 (迷彩) - F2000突击步枪 (迷彩) + F2000突擊步槍 (迷彩) + F2000突击步枪 (迷彩) F2000 @@ -1821,8 +1821,8 @@ F2000 F2000 F2000 - F2000突擊步槍 - F2000突击步枪 + F2000突擊步槍 + F2000突击步枪 F2000 Tactical (Camo) @@ -1837,8 +1837,8 @@ F2000 Tactical (Camo) F2000 タクティカル (迷彩) F2000 Tactical (위장) - F2000戰術型突擊步槍 (迷彩) - F2000战术型突击步枪 (迷彩) + F2000戰術型突擊步槍 (迷彩) + F2000战术型突击步枪 (迷彩) F2000 Tactical @@ -1853,8 +1853,8 @@ F2000 Tactical F2000 タクティカル F2000 Tactical - F2000戰術型突擊步槍 - F2000战术型突击步枪 + F2000戰術型突擊步槍 + F2000战术型突击步枪 F2000 EGLM (Camo) @@ -1869,8 +1869,8 @@ F2000 EGLM (Camo) F2000 EGLM (迷彩) F2000 EGLM (위장) - F2000突擊步槍 (榴彈-迷彩) - F2000突击步枪 (榴弹-迷彩) + F2000突擊步槍 (榴彈-迷彩) + F2000突击步枪 (榴弹-迷彩) F2000 EGLM @@ -1885,8 +1885,8 @@ F2000 EGLM F2000 EGLM F2000 EGLM - F2000突擊步槍 (榴彈) - F2000突击步枪 (榴弹) + F2000突擊步槍 (榴彈) + F2000突击步枪 (榴弹) TAR-21 @@ -1901,8 +1901,8 @@ TAR-21 TAR-21 TAR-21 - TAR-21突擊步槍 - TAR-21突击步枪 + TAR-21突擊步槍 + TAR-21突击步枪 CTAR-21 @@ -1917,8 +1917,8 @@ CTAR-21 CTAR-21 CTAR-21 - CTAR-21卡賓步槍 - CTAR-21卡宾步枪 + CTAR-21卡賓步槍 + CTAR-21卡宾步枪 TAR-21 EGLM @@ -1933,8 +1933,8 @@ TAR-21 EGLM TAR-21 EGLM TAR-21 EGLM - TAR-21突擊步槍 (榴彈) - TAR-21突击步枪 (榴弹) + TAR-21突擊步槍 (榴彈) + TAR-21突击步枪 (榴弹) Vector SMG @@ -1949,8 +1949,8 @@ Vector SMG ベクター SMG Vector SMG - "維克特"衝鋒槍 - "维克特"冲锋枪 + "維克特"衝鋒槍 + "维克特"冲锋枪 Scorpion Evo 3 A1 @@ -1965,8 +1965,8 @@ Scorpion Evo 3 A1 スコーピオン エボ 3 A1 Scorpion Evo 3 A1 - "蠍式"Evo 3 A1衝鋒槍 - "蝎式"Evo 3 A1冲锋枪 + "蠍式"Evo 3 A1衝鋒槍 + "蝎式"Evo 3 A1冲锋枪 CPW @@ -1981,8 +1981,8 @@ CPW CPW CPW - 緊湊型個人衝鋒槍 - 紧凑型个人冲锋枪 + 緊湊型個人衝鋒槍 + 紧凑型个人冲锋枪 RFB SDAR @@ -1997,8 +1997,8 @@ RFB SDAR RFB SDAR RFB SDAR - 犢牛式水陸兩用步槍 - 犊牛式水陆两用步枪 + 犢牛式水陸兩用步槍 + 犊牛式水陆两用步枪 Stoner 99 LMG @@ -2013,8 +2013,8 @@ Stoner 99 LMG ストーナー 99 LMG Stoner 99 LMG - 斯通納99輕機槍 - 斯通纳99轻机枪 + 斯通納99輕機槍 + 斯通纳99轻机枪 Negev NG7 @@ -2029,8 +2029,8 @@ Negev NG7 ネゲフ NG7 Negev NG7 - 內蓋夫NG7機槍 - 内盖夫NG7机枪 + 內蓋夫NG7機槍 + 内盖夫NG7机枪 Mk14 Mod 1 EBR @@ -2045,8 +2045,8 @@ Mk14 Mod 1 EBR Mk14 Mod 1 EBR Mk14 Mod 1 EBR - Mk14一型增強型戰鬥步槍 - Mk14一型增强型战斗步枪 + Mk14一型增強型戰鬥步槍 + Mk14一型增强型战斗步枪 GM6 Lynx @@ -2061,8 +2061,8 @@ GM6 Lynx GM6 リンクス GM6 Lynx - GM6"天貓"反器材狙擊步槍 - GM6"天猫"反器材狙击步枪 + GM6"天貓"反器材狙擊步槍 + GM6"天猫"反器材狙击步枪 GM6 Lynx (Camo) @@ -2077,8 +2077,8 @@ GM6 Lynx (Camo) GM6 リンクス (迷彩) GM6 Lynx (위장) - GM6"天貓"反器材狙擊步槍 (迷彩) - GM6"天猫"反器材狙击步枪 (迷彩) + GM6"天貓"反器材狙擊步槍 (迷彩) + GM6"天猫"反器材狙击步枪 (迷彩) M200 Intervention @@ -2093,8 +2093,8 @@ M200 Intervention M200 インターベンション M200 Intervention - M200干預型狙擊步槍 - M200干预型狙击步枪 + M200干預型狙擊步槍 + M200干预型狙击步枪 M200 Intervention (Camo) @@ -2109,8 +2109,8 @@ M200 Intervention (Camo) M200 インターベンション (迷彩) M200 Intervention (위장) - M200干預型狙擊步槍 (迷彩) - M200干预型狙击步枪 (迷彩) + M200干預型狙擊步槍 (迷彩) + M200干预型狙击步枪 (迷彩) VS-121 @@ -2125,8 +2125,8 @@ VS-121 VS-121 VS-121 - VS-121狙擊步槍 - VS-121狙击步枪 + VS-121狙擊步槍 + VS-121狙击步枪 Noreen "Bad News" ULR @@ -2141,8 +2141,8 @@ Noreen "Bad News" ULR ノレーン "バッド ニュース" ULR Noreen "Bad News" ULR - 諾琳"壞消息"極距狙擊步槍 - 诺琳"坏消息"极距狙击步枪 + 諾琳"壞消息"極距狙擊步槍 + 诺琳"坏消息"极距狙击步枪 Noreen "Bad News" ULR (Black) @@ -2157,8 +2157,8 @@ Noreen "Bad News" ULR (Preto) ノレーン "バッド ニュース" ULR (黒) Noreen "Bad News" ULR (검정) - 諾琳"壞消息"極距狙擊步槍 (黑色) - 诺琳"坏消息"极距狙击步枪 (黑色) + 諾琳"壞消息"極距狙擊步槍 (黑色) + 诺琳"坏消息"极距狙击步枪 (黑色) Noreen "Bad News" ULR (Camo) @@ -2173,8 +2173,8 @@ Noreen "Bad News" ULR (Camuflagem) ノレーン "バッド ニュース" ULR (迷彩) Noreen "Bad News" ULR (위장) - 諾琳"壞消息"極距狙擊步槍 (迷彩) - 诺琳"坏消息"极距狙击步枪 (迷彩) + 諾琳"壞消息"極距狙擊步槍 (迷彩) + 诺琳"坏消息"极距狙击步枪 (迷彩) Noreen "Bad News" ULR (Sand) @@ -2189,8 +2189,8 @@ Noreen "Bad News" ULR (Deserto) ノレーン "バッド ニュース" ULR (砂地) Noreen "Bad News" ULR (모래) - 諾琳"壞消息"極距狙擊步槍 (沙色) - 诺琳"坏消息"极距狙击步枪 (沙色) + 諾琳"壞消息"極距狙擊步槍 (沙色) + 诺琳"坏消息"极距狙击步枪 (沙色) SIG 556 @@ -2205,8 +2205,8 @@ SIG 556 SIG 556 SIG 556 - SIG 556精準步槍 - SIG 556精准步枪 + SIG 556精準步槍 + SIG 556精准步枪 SIG 556 (Black) @@ -2221,8 +2221,8 @@ SIG 556 (Preto) SIG 556 (黒) SIG 556 (검정) - SIG 556精準步槍 (黑色) - SIG 556精准步枪 (黑色) + SIG 556精準步槍 (黑色) + SIG 556精准步枪 (黑色) SIG 556 (Khaki) @@ -2237,8 +2237,8 @@ SIG 556 (Caqui) SIG 556 (土埃) SIG 556 (카키) - SIG 556精準步槍 (卡其色) - SIG 556精准步枪 (卡其色) + SIG 556精準步槍 (卡其色) + SIG 556精准步枪 (卡其色) SIG 556 (Sand) @@ -2253,8 +2253,8 @@ SIG 556 (Deserto) SIG 556 (砂地) SIG 556 (모래) - SIG 556精準步槍 (沙色) - SIG 556精准步枪 (沙色) + SIG 556精準步槍 (沙色) + SIG 556精准步枪 (沙色) SIG 556 (Camo) @@ -2269,8 +2269,8 @@ SIG 556 (Camuflagem) SIG 556 (迷彩) SIG 556 (위장) - SIG 556精準步槍 (迷彩) - SIG 556精准步枪 (迷彩) + SIG 556精準步槍 (迷彩) + SIG 556精准步枪 (迷彩) SIG 556 (Woodland) @@ -2285,8 +2285,8 @@ SIG 556 (Floresta) SIG 556 (森林) SIG 556 (우드랜드) - SIG 556精準步槍 (森林迷彩) - SIG 556精准步枪 (森林迷彩) + SIG 556精準步槍 (森林迷彩) + SIG 556精准步枪 (森林迷彩) SIG 556 (provisional) spotter @@ -2301,8 +2301,8 @@ SIG 556 (provisional) observador SIG 556 (仮) スポッター SIG 556 (임시) spotter - SIG 556精準步槍 (暫定) 觀測手 - SIG 556精准步枪 (暂定) 观测手 + SIG 556精準步槍 (暫定) 觀測手 + SIG 556精准步枪 (暂定) 观测手 ASP-1 Kir @@ -2317,8 +2317,8 @@ ASP-1 Kir ASP-1 Kir ASP-1 Kir - ASP-1"基爾"消音狙擊步槍 - ASP-1"基尔"消音狙击步枪 + ASP-1"基爾"消音狙擊步槍 + ASP-1"基尔"消音狙击步枪 ASP-1 Kir (Black) @@ -2333,8 +2333,8 @@ ASP-1 Kir (Preto) ASP-1 Kir (黒) ASP-1 Kir (검정) - ASP-1"基爾"消音狙擊步槍 (黑色) - ASP-1"基尔"消音狙击步枪 (黑色) + ASP-1"基爾"消音狙擊步槍 (黑色) + ASP-1"基尔"消音狙击步枪 (黑色) ASP-1 Kir (Tan) @@ -2349,8 +2349,8 @@ ASP-1 Kir (Deserto) ASP-1 Kir (黄褐) ASP-1 Kir (황갈) - ASP-1"基爾"消音狙擊步槍 (黃褐色) - ASP-1"基尔"消音狙击步枪 (黄褐色) + ASP-1"基爾"消音狙擊步槍 (黃褐色) + ASP-1"基尔"消音狙击步枪 (黄褐色) Cyrus @@ -2365,8 +2365,8 @@ Cyrus サイラス Cyrus - "居鲁士"狙擊步槍 - "居鲁士"狙击步枪 + "居鲁士"狙擊步槍 + "居鲁士"狙击步枪 Cyrus (Black) @@ -2381,8 +2381,8 @@ Cyrus (Preto) サイラス (黒) Cyrus (검정) - "居鲁士"狙擊步槍 (黑色) - "居鲁士"狙击步枪 (黑色) + "居鲁士"狙擊步槍 (黑色) + "居鲁士"狙击步枪 (黑色) Cyrus (Hex) @@ -2397,8 +2397,8 @@ Cyrus (Hex) サイラス (蜂巣) Cyrus (육각) - "居鲁士"狙擊步槍 (數位蜂巢迷彩) - "居鲁士"狙击步枪 (数位蜂巢迷彩) + "居鲁士"狙擊步槍 (數位蜂巢迷彩) + "居鲁士"狙击步枪 (数位蜂巢迷彩) Cyrus (Tan) @@ -2413,8 +2413,8 @@ Cyrus (Deserto) サイラス (黄褐) Cyrus (황갈) - "居鲁士"狙擊步槍 (黃褐色) - "居鲁士"狙击步枪 (黄褐色) + "居鲁士"狙擊步槍 (黃褐色) + "居鲁士"狙击步枪 (黄褐色) M14 @@ -2429,8 +2429,8 @@ M14 M14 M14 - M14精準步槍 - M14精准步枪 + M14精準步槍 + M14精准步枪 M14 (Camo) @@ -2445,8 +2445,8 @@ M14 (Camuflagem) M14 (迷彩) M14 (위장) - M14精準步槍 (迷彩) - M14精准步枪 (迷彩) + M14精準步槍 (迷彩) + M14精准步枪 (迷彩) M14 (Olive) @@ -2461,8 +2461,8 @@ M14 (Oliva) M14 (オリーブド ラブ) M14 (올리브) - M14精準步槍 (橄欖色) - M14精准步枪 (橄榄色) + M14精準步槍 (橄欖色) + M14精准步枪 (橄榄色) HK121 @@ -2477,8 +2477,8 @@ HK121 HK 121 HK121 - HK121中型機槍 - HK121中型机枪 + HK121中型機槍 + HK121中型机枪 HK121 (Hex) @@ -2493,8 +2493,8 @@ HK121 (Hex) HK 121 (蜂巣) HK121 (육각) - HK121中型機槍 (數位蜂巢迷彩) - HK121中型机枪 (数位蜂巢迷彩) + HK121中型機槍 (數位蜂巢迷彩) + HK121中型机枪 (数位蜂巢迷彩) HK121 (Tan) @@ -2509,8 +2509,8 @@ HK121 (Deserto) HK 121 (黄褐) HK121 (황갈) - HK121機槍 (黃褐色) - HK121机枪 (黄褐色) + HK121機槍 (黃褐色) + HK121机枪 (黄褐色) LWMMG @@ -2525,8 +2525,8 @@ LWMMG LWMMG LWMMG - 輕量化中型機槍 - 轻量化中型机枪 + 輕量化中型機槍 + 轻量化中型机枪 LWMMG (MTP) @@ -2541,8 +2541,8 @@ LWMMG (MTP) LWMMG (マルチカモ) LWMMG (MTP) - 輕量化中型機槍 (多地形迷彩) - 轻量化中型机枪 (多地形迷彩) + 輕量化中型機槍 (多地形迷彩) + 轻量化中型机枪 (多地形迷彩) LWMMG (Black) @@ -2557,8 +2557,8 @@ LWMMG (Preto) LWMMG (黒) LWMMG (검정) - 輕量化中型機槍 (黑色) - 轻量化中型机枪 (黑色) + 輕量化中型機槍 (黑色) + 轻量化中型机枪 (黑色) LWMMG (Sand) @@ -2573,8 +2573,8 @@ LWMMG (Deserto) LWMMG (砂地) LWMMG (모래) - 輕量化中型機槍 (沙色) - 轻量化中型机枪 (沙色) + 輕量化中型機槍 (沙色) + 轻量化中型机枪 (沙色) Jeep Wrangler @@ -2589,8 +2589,8 @@ Jeep Wrangler ジープ ラングラー Jeep Wrangler - "牧馬人"吉普車 - "牧马人"吉普车 + "牧馬人"吉普車 + "牧马人"吉普车 Jeep Wrangler (Black) @@ -2605,8 +2605,8 @@ Jeep Wrangler (Preto) ジープ ラングラー (黒) Jeep Wrangler (검정) - "牧馬人"吉普車 (黑色) - "牧马人"吉普车 (黑色) + "牧馬人"吉普車 (黑色) + "牧马人"吉普车 (黑色) Jeep Wrangler (Blue) @@ -2621,8 +2621,8 @@ Jeep Wrangler (Blu) ジープ ラングラー (青) Jeep Wrangler (파랑) - "牧馬人"吉普車 (藍色) - "牧马人"吉普车 (蓝色) + "牧馬人"吉普車 (藍色) + "牧马人"吉普车 (蓝色) Jeep Wrangler (Green) @@ -2637,8 +2637,8 @@ Jeep Wrangler (Verde) ジープ ラングラー (緑) Jeep Wrangler (초록) - "牧馬人"吉普車 (綠色) - "牧马人"吉普车 (绿色) + "牧馬人"吉普車 (綠色) + "牧马人"吉普车 (绿色) Jeep Wrangler (Orange) @@ -2653,8 +2653,8 @@ Jeep Wrangler (Arancione) ジープ ラングラー (橙) Jeep Wrangler (주황) - "牧馬人"吉普車 (橘色) - "牧马人"吉普车 (橘色) + "牧馬人"吉普車 (橘色) + "牧马人"吉普车 (橘色) Jeep Wrangler (Red) @@ -2669,8 +2669,8 @@ Jeep Wrangler (Rosso) ジープ ラングラー (赤) Jeep Wrangler (빨강) - "牧馬人"吉普車 (紅色) - "牧马人"吉普车 (红色) + "牧馬人"吉普車 (紅色) + "牧马人"吉普车 (红色) Jeep Wrangler (White) @@ -2685,8 +2685,8 @@ Jeep Wrangler (Bianco) ジープ ラングラー (白) Jeep Wrangler (하양) - "牧馬人"吉普車 (白色) - "牧马人"吉普车 (白色) + "牧馬人"吉普車 (白色) + "牧马人"吉普车 (白色) Cessna TTx @@ -2701,8 +2701,8 @@ Cessna TTx セスナ TTx Cessna TTx - "賽斯納"TTx單引擎飛機 - "赛斯纳"TTx单引擎飞机 + "賽斯納"TTx單引擎飛機 + "赛斯纳"TTx单引擎飞机 Cessna TTx (Racing) @@ -2717,8 +2717,8 @@ Cessna TTx (Racing) セスナ TTx (レース仕様) Cessna TTx (경주용) - "賽斯納"TTx單引擎飛機 (競速) - "赛斯纳"TTx单引擎飞机 (竞速) + "賽斯納"TTx單引擎飛機 (競速) + "赛斯纳"TTx单引擎飞机 (竞速) Burraq UCAV @@ -2733,8 +2733,8 @@ Burraq UCAV ブラーク UCAV Burraq UCAV - "柏拉格"空中無人戰鬥載具 - "柏拉格"空中无人战斗载具 + "柏拉格"空中無人戰鬥載具 + "柏拉格"空中无人战斗载具 QBZ-95-1 (Black) @@ -2749,8 +2749,8 @@ QBZ-95-1 (Preto) QBZ-95-1 (黒) QBZ-95-1 (검정) - QBZ-95-1式自動步槍 (黑色) - QBZ-95-1式自动步枪 (黑色) + QBZ-95-1式自動步槍 (黑色) + QBZ-95-1式自动步枪 (黑色) QBZ-95-1 (Green Hex) @@ -2765,8 +2765,8 @@ QBZ-95-1 (Hex Verde) QBZ-95-1 (緑蜂巣) QBZ-95-1 (초록육각) - QBZ-95-1式自動步槍 (綠色數位蜂巢迷彩) - QBZ-95-1式自动步枪 (绿色数位蜂巢迷彩) + QBZ-95-1式自動步槍 (綠色數位蜂巢迷彩) + QBZ-95-1式自动步枪 (绿色数位蜂巢迷彩) QBZ-95-1 (Hex) @@ -2781,8 +2781,8 @@ QBZ-95-1 (Hex) QBZ-95-1 (蜂巣) QBZ-95-1 (육각) - QBZ-95-1式自動步槍 (數位蜂巢迷彩) - QBZ-95-1式自动步枪 (数位蜂巢迷彩) + QBZ-95-1式自動步槍 (數位蜂巢迷彩) + QBZ-95-1式自动步枪 (数位蜂巢迷彩) QBZ-95-1 GL (Black) @@ -2797,8 +2797,8 @@ QBZ-95-1 GL (Preto) QBZ-95-1 GL (黒) QBZ-95-1 GL (검정) - QBZ-95-1式自動步槍 (榴彈-黑色) - QBZ-95-1式自动步枪 (榴弹-黑色) + QBZ-95-1式自動步槍 (榴彈-黑色) + QBZ-95-1式自动步枪 (榴弹-黑色) QBZ-95-1 GL (Green Hex) @@ -2813,8 +2813,8 @@ QBZ-95-1 GL (Hex Verde) QBZ-95-1 GL (緑蜂巣) QBZ-95-1 GL (초록육각) - QBZ-95-1式自動步槍 (榴彈-綠色數位蜂巢迷彩) - QBZ-95-1式自动步枪 (榴弹-绿色数位蜂巢迷彩) + QBZ-95-1式自動步槍 (榴彈-綠色數位蜂巢迷彩) + QBZ-95-1式自动步枪 (榴弹-绿色数位蜂巢迷彩) QBZ-95-1 GL (Hex) @@ -2829,8 +2829,8 @@ QBZ-95-1 GL (Hex) QBZ-95-1 GL (蜂巣) QBZ-95-1 GL (육각) - QBZ-95-1式自動步槍 (榴彈-數位蜂巢迷彩) - QBZ-95-1式自动步枪 (榴弹-数位蜂巢迷彩) + QBZ-95-1式自動步槍 (榴彈-數位蜂巢迷彩) + QBZ-95-1式自动步枪 (榴弹-数位蜂巢迷彩) QBZ-95-1 LSW (Black) @@ -2845,8 +2845,8 @@ QBZ-95-1 LSW (Preto) QBZ-95-1 LSW (黒) QBZ-95-1 LSW (검정) - QBZ-95-1式輕機槍 (黑色) - QBZ-95-1式轻机枪 (黑色) + QBZ-95-1式輕機槍 (黑色) + QBZ-95-1式轻机枪 (黑色) QBZ-95-1 LSW (Green Hex) @@ -2861,8 +2861,8 @@ QBZ-95-1 LSW (Hex Verde) QBZ-95-1 LSW (緑蜂巣) QBZ-95-1 LSW (초록육각) - QBZ-95-1式輕機槍 (綠色數位蜂巢迷彩) - QBZ-95-1式轻机枪 (绿色数位蜂巢迷彩) + QBZ-95-1式輕機槍 (綠色數位蜂巢迷彩) + QBZ-95-1式轻机枪 (绿色数位蜂巢迷彩) QBZ-95-1 LSW (Hex) @@ -2877,8 +2877,8 @@ QBZ-95-1 LSW (Hex) QBZ-95-1 LSW (蜂巣) QBZ-95-1 LSW (육각) - QBZ-95-1式輕機槍 (數位蜂巢迷彩) - QBZ-95-1式轻机枪 (数位蜂巢迷彩) + QBZ-95-1式輕機槍 (數位蜂巢迷彩) + QBZ-95-1式轻机枪 (数位蜂巢迷彩) QBU-88 (Black) @@ -2893,8 +2893,8 @@ QBU-88 (Preto) QBU-88 (黒) QBU-88 (검정) - QBU-88式狙擊步槍 (黑色) - QBU-88式狙击步枪 (黑色) + QBU-88式狙擊步槍 (黑色) + QBU-88式狙击步枪 (黑色) QBU-88 (Green Hex) @@ -2909,8 +2909,8 @@ QBU-88 (Hex Verde) QBU-88 (緑蜂巣) QBU-88 (초록육각) - QBU-88式狙擊步槍 (綠色數位蜂巢迷彩) - QBU-88式狙击步枪 (绿色数位蜂巢迷彩) + QBU-88式狙擊步槍 (綠色數位蜂巢迷彩) + QBU-88式狙击步枪 (绿色数位蜂巢迷彩) QBU-88 (Hex) @@ -2925,8 +2925,8 @@ QBU-88 (Hex) QBU-88 (蜂巣) QBU-88 (육각) - QBU-88式狙擊步槍 (數位蜂巢迷彩) - QBU-88式狙击步枪 (数位蜂巢迷彩) + QBU-88式狙擊步槍 (數位蜂巢迷彩) + QBU-88式狙击步枪 (数位蜂巢迷彩) GM6 Lynx (Green Hex) @@ -2941,8 +2941,8 @@ GM6 Lynx (Hex Verde) GM6 リンクス (緑蜂巣) GM6 Lynx (초록육각) - GM6"天貓"反器材狙擊步槍 (綠色數位蜂巢迷彩) - GM6"天猫"反器材狙击步枪 (绿色数位蜂巢迷彩) + GM6"天貓"反器材狙擊步槍 (綠色數位蜂巢迷彩) + GM6"天猫"反器材狙击步枪 (绿色数位蜂巢迷彩) M249 SPW @@ -2957,8 +2957,8 @@ M249 SPW M249 SPW M249 SPW - M249班用自動機槍 - M249班用自动机枪 + M249班用自動機槍 + M249班用自动机枪 M200 Intervention (Tropic) @@ -2973,8 +2973,8 @@ M200 Intervention (Tropico) M200 インターベンション (熱帯) M200 Intervention (열대) - M200干預型狙擊步槍 (熱帶迷彩) - M200干预型狙击步枪 (热带迷彩) + M200干預型狙擊步槍 (熱帶迷彩) + M200干预型狙击步枪 (热带迷彩) MP5K @@ -2989,8 +2989,8 @@ MP5K MP5K MP5K - MP5K衝鋒槍 - MP5K冲锋枪 + MP5K衝鋒槍 + MP5K冲锋枪 HK416A5 11" (Black) @@ -3005,8 +3005,8 @@ HK416A5 11" (Preto) HK416A5 11" (黒) HK416A5 11" (검정) - HK416A5 11"突擊步槍 (黑色) - HK416A5 11"突击步枪 (黑色) + HK416A5 11"突擊步槍 (黑色) + HK416A5 11"突击步枪 (黑色) HK416A5 11" (Khaki) @@ -3021,8 +3021,8 @@ HK416A5 11" (Caqui) HK416A5 11" (土埃) HK416A5 11" (카키) - HK416A5 11"突擊步槍 (卡其色) - HK416A5 11"突击步枪 (卡其色) + HK416A5 11"突擊步槍 (卡其色) + HK416A5 11"突击步枪 (卡其色) HK416A5 11" (Sand) @@ -3037,8 +3037,8 @@ HK416A5 11" (Deserto) HK416A5 11" (砂地) HK416A5 11" (모래) - HK416A5 11"突擊步槍 (沙色) - HK416A5 11"突击步枪 (沙色) + HK416A5 11"突擊步槍 (沙色) + HK416A5 11"突击步枪 (沙色) HK416A5 11" GL (Black) @@ -3053,8 +3053,8 @@ HK416A5 11" GL (Preto) HK416A5 11" GL (黒) HK416A5 11" GL (검정) - HK416A5 11"突擊步槍 (榴彈-黑色) - HK416A5 11"突击步枪 (榴弹-黑色) + HK416A5 11"突擊步槍 (榴彈-黑色) + HK416A5 11"突击步枪 (榴弹-黑色) HK416A5 11" GL (Khaki) @@ -3069,8 +3069,8 @@ HK416A5 11" GL (Caqui) HK416A5 11" GL (土埃) HK416A5 11" GL (카키) - HK416A5 11"突擊步槍 (榴彈-卡其色) - HK416A5 11"突击步枪 (榴弹-卡其色) + HK416A5 11"突擊步槍 (榴彈-卡其色) + HK416A5 11"突击步枪 (榴弹-卡其色) HK416A5 11" GL (Sand) @@ -3085,8 +3085,8 @@ HK416A5 11" GL (Deserto) HK416A5 11" GL (砂地) HK416A5 11" GL (모래) - HK416A5 11"突擊步槍 (榴彈-沙色) - HK416A5 11"突击步枪 (榴弹-沙色) + HK416A5 11"突擊步槍 (榴彈-沙色) + HK416A5 11"突击步枪 (榴弹-沙色) HK416A5 14.5" (Black) @@ -3101,8 +3101,8 @@ HK416A5 14.5" (Preto) HK416A5 14.5" (黒) HK416A5 14.5" (검정) - HK416A5 14.5"突擊步槍 (黑色) - HK416A5 14.5"突击步枪 (黑色) + HK416A5 14.5"突擊步槍 (黑色) + HK416A5 14.5"突击步枪 (黑色) HK416A5 14.5" (Khaki) @@ -3117,8 +3117,8 @@ HK416A5 14.5" (Caqui) HK416A5 14.5" (土埃) HK416A5 14.5" (카키) - HK416A5 14.5"突擊步槍 (卡其色) - HK416A5 14.5"突击步枪 (卡其色) + HK416A5 14.5"突擊步槍 (卡其色) + HK416A5 14.5"突击步枪 (卡其色) HK416A5 14.5" (Sand) @@ -3133,8 +3133,8 @@ HK416A5 14.5" (Deserto) HK416A5 14.5" (砂地) HK416A5 14.5" (모래) - HK416A5 14.5"突擊步槍 (沙色) - HK416A5 14.5"突击步枪 (沙色) + HK416A5 14.5"突擊步槍 (沙色) + HK416A5 14.5"突击步枪 (沙色) HK417A2 20" (Black) @@ -3149,8 +3149,8 @@ HK417A2 20" (Preto) HK417A2 20" (黒) HK417A2 20" (검정) - HK417A2 20"突擊步槍 (黑色) - HK417A2 20"突击步枪 (黑色) + HK417A2 20"突擊步槍 (黑色) + HK417A2 20"突击步枪 (黑色) HK417A2 20" (Khaki) @@ -3165,8 +3165,8 @@ HK417A2 20" (Caqui) HK417A2 20" (土埃) HK417A2 20" (카키) - HK417A2 20"突擊步槍 (卡其色) - HK417A2 20"突击步枪 (卡其色) + HK417A2 20"突擊步槍 (卡其色) + HK417A2 20"突击步枪 (卡其色) HK417A2 20" (Sand) @@ -3181,8 +3181,8 @@ HK417A2 20" (Deserto) HK417A2 20" (砂地) HK417A2 20" (모래) - HK417A2 20"突擊步槍 (沙色) - HK417A2 20"突击步枪 (沙色) + HK417A2 20"突擊步槍 (沙色) + HK417A2 20"突击步枪 (沙色) RPG-32 (Green Hex) @@ -3197,8 +3197,8 @@ RPG-32 (Hex Verde) RPG-32 (緑蜂巣) RPG-32 (초록육각) - RPG-32火箭發射器 (綠色數位蜂巢迷彩) - RPG-32火箭发射器 (绿色数位蜂巢迷彩) + RPG-32火箭發射器 (綠色數位蜂巢迷彩) + RPG-32火箭发射器 (绿色数位蜂巢迷彩) P99 (Khaki) @@ -3213,8 +3213,8 @@ P99 (Caqui) P99 (カーキ) P99 (카키) - P99半自動手槍 (卡其色) - P99半自动手枪 (卡其色) + P99半自動手槍 (卡其色) + P99半自动手枪 (卡其色) Makarov PM @@ -3229,8 +3229,8 @@ Makarov PM マカロフ PM Makarov PM - "馬卡洛夫"手槍 - "马卡洛夫"手枪 + "馬卡洛夫"手槍 + "马卡洛夫"手枪 diff --git a/addons/rearm/stringtable.xml b/addons/rearm/stringtable.xml index 1995bfec819..05aecd1102f 100644 --- a/addons/rearm/stringtable.xml +++ b/addons/rearm/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,8 +13,8 @@ Options de réarmement 再武装設定 재보급 설정 - 整装设定 - 整裝設定 + 整装设定 + 整裝設定 This module allows you to tweak rearm system settings. @@ -28,8 +28,8 @@ Ce module autorise l'amélioration du système de réarmement. 再武装システムの設定を微調整します。 이 모듈은 재보급시의 설정을 바꿀수 있게해줍니다. - 此模块允许你调整整装系统设定 - 此模塊允許你調整整裝系統設定 + 此模块允许你调整整装系统设定 + 此模塊允許你調整整裝系統設定 Rearm Amount @@ -43,8 +43,8 @@ Quantité à réarmer 再武装できる量 재보급 양 - 整装所需时间 - 整裝所需時間 + 整装所需时间 + 整裝所需時間 How fast should a vehicle be rearmed? @@ -58,8 +58,8 @@ A quelle vitesse devrait être réarmé un véhicule ? 車両を再武装する速さを設定しますか? 차량을 얼마나 빨리 재보급 시킵니까? - 载具多快会整装完毕? - 載具多快會整裝完畢? + 载具多快会整装完毕? + 載具多快會整裝完畢? Entire Vehicle @@ -73,8 +73,8 @@ Véhicule entier 対象の車両 모든 차량 - 整个载具 - 整個載具 + 整个载具 + 整個載具 Entire Magazine @@ -88,8 +88,8 @@ Chargeur entier 対象の弾薬 모든 탄창 - 整个弹匣 - 整個彈匣 + 整个弹匣 + 整個彈匣 Amount based on caliber @@ -103,88 +103,88 @@ Quantité basée sur le calibre 口径に基づいた量 구경에 따라 수량 설정 - 基于口径决定所耗时间 - 基於口徑決定所耗時間 + 基于口径决定所耗时间 + 基於口徑決定所耗時間 Ammunition supply Munitionsvorat Scorta munizioni 弾薬の供給 - 弹药补给 - 彈藥補給 + 弹药补给 + 彈藥補給 How much ammunition does an ammo truck carry? Wie viel Munition transportiert ein Munitionslaster? Quante munizioni può trasportare un camion? 弾薬トラックがどの位の弾薬を供給できるようにしますか? - 弹药卡车会携带多少的弹药? - 彈藥卡車會攜帶多少的彈藥? + 弹药卡车会携带多少的弹药? + 彈藥卡車會攜帶多少的彈藥? Unlimited ammo supply Unbegrenzter Munitionsvorat Scorta munizioni infinita 無制限供給 - 无限弹药 - 無限彈藥 + 无限弹药 + 無限彈藥 Limited ammo supply based on caliber Begrenzter, kaliberabhängiger Munitionsvorat Scorta munizioni limitata in base al calibro 口径に基づいた限定的供給 - 基于口径限制弹药数量 - 基於口徑限制彈藥數量 + 基于口径限制弹药数量 + 基於口徑限制彈藥數量 Only specific Magazines Nur bestimmte Magazine Solo specifici caricatori 特定の弾薬のみ - 只有指定的弹药 - 只有指定的彈藥 + 只有指定的弹药 + 只有指定的彈藥 Check remaining ammunition Verbleibende Munition prüfen Controlla munizioni rimanenti 残弾薬を確認 - 检查剩余的弹药 - 檢查剩餘的彈藥 + 检查剩余的弹药 + 檢查剩餘的彈藥 Checking remaining ammunition... Überprüfe verbleibende Munition... Controllando le munizioni rimanenti 残弾薬を確認しています・・・ - 正在检查剩余的弹药中... - 正在檢查剩餘的彈藥中... + 正在检查剩余的弹药中... + 正在檢查剩餘的彈藥中... There is ammunition worth %1 points left. Es ist noch Munition für %1 Punkte übrig. E' presente una penalità delle munizioni %1 punti rimanenti. この弾薬は%1残っている - 还剩下%1多的弹药. - 還剩下%1多的彈藥. + 还剩下%1多的弹药. + 還剩下%1多的彈藥. The following ammunition is left:%1 Folgende Munition ist übrig:%1 Mancano le seguenti:%1 この弾薬の残りは:%1 - 以下剩余的弹药:%1 - 以下剩餘的彈藥:%1 + 以下剩余的弹药:%1 + 以下剩餘的彈藥:%1 There is no ammunition left. Es ist keine Munition übrig. Non ci sono munizioni rimanenti. 弾薬は残っていません。 - 已经没有剩余的弹药了. - 已經沒有剩餘的彈藥了. + 已经没有剩余的弹药了. + 已經沒有剩餘的彈藥了. Rearm @@ -198,8 +198,8 @@ Réarmer 再武装 재보급 - 整装 - 整裝 + 整装 + 整裝 Rearming %1 with %2... @@ -213,8 +213,8 @@ Réarmement de %1 avec %2... %1を%2により再武装する。 %2을 %1에 재보급중... - %2正整装到%1中... - %2正整裝到%1中... + %2正整装到%1中... + %2正整裝到%1中... Rearming %1... @@ -228,8 +228,8 @@ Réarmement de %1... %1を再武装中・・・ %1 재보급중... - 整装%1中... - 整裝%1中... + 整装%1中... + 整裝%1中... Taking %1 for %2... @@ -243,8 +243,8 @@ Prend %1 pour %2... %1を%2のために取得しています・・・ %2를 위해 %1 가져오는중... - 拿取%1给%2中... - 拿取%1給%2中... + 拿取%1给%2中... + 拿取%1給%2中... Take ammo @@ -258,8 +258,8 @@ Prendre la munition 弾薬をとる 탄약 가지기 - 取得弹药 - 取得彈藥 + 取得弹药 + 取得彈藥 Pick up ammo @@ -273,8 +273,8 @@ Ramasser la munition 弾薬を拾う 탄약 줍기 - 捡起弹药 - 撿起彈藥 + 捡起弹药 + 撿起彈藥 Store ammo @@ -288,8 +288,8 @@ Stocker la munition 弾薬を戻す 탄약 보관하기 - 储存弹药 - 儲存彈藥 + 储存弹药 + 儲存彈藥 Storing %1 in %2... @@ -303,8 +303,8 @@ Stocke %1 dans %2... %1を%2へ戻しています・・・ %2에 %1 보관중... - 储存%1到%2中... - 儲存%1到%2中... + 储存%1到%2中... + 儲存%1到%2中... Picking up ammo... @@ -317,8 +317,8 @@ Ramassage des munitions... 弾薬を拾っている・・・ 탄약 줍는중... - 捡起弹药中... - 撿起彈藥中... + 捡起弹药中... + 撿起彈藥中... Rearmed %1 rounds of %2 on %3 @@ -332,8 +332,8 @@ %1 balles réarmées de %2 dans %3 %1発の%2を%3から装填した %3에 2%의 %1 탄약 재보급 - 整装了%1发%2到%3上 - 整裝了%1發%2到%3上 + 整装了%1发%2到%3上 + 整裝了%1發%2到%3上 Smoke Screen @@ -347,8 +347,8 @@ Pantalla de humo 煙幕弾 연막 차장 - 烟幕弹 - 煙幕彈 + 烟幕弹 + 煙幕彈 Flares @@ -362,8 +362,8 @@ Bengalas フレア 기만체 - 热焰弹 - 熱焰彈 + 热焰弹 + 熱焰彈 30mm HEI @@ -377,8 +377,8 @@ 30mm HEI 30mm 焼夷りゅう弾 30mm 고폭소이탄 - 30mm 高爆燃烧弹 - 30mm 高爆燃燒彈 + 30mm 高爆燃烧弹 + 30mm 高爆燃燒彈 30mm HEI-T @@ -392,8 +392,8 @@ 30mm HEI-T 30mm 焼夷曳光りゅう弾 30mm 고폭소이예광탄 - 30mm 高爆燃烧曳光弹 - 30mm 高爆燃燒曳光彈 + 30mm 高爆燃烧曳光弹 + 30mm 高爆燃燒曳光彈 AIM-9 Sidewinder @@ -407,8 +407,8 @@ AIM-9 Sidewinder AIM-9 サイドワインダー AIM-9 Sidewinder - AIM-9 响尾蛇 - AIM-9 響尾蛇 + AIM-9 响尾蛇 + AIM-9 響尾蛇 Wympel R-73 @@ -422,8 +422,8 @@ Wympel R-73 ヴィンペル R-73 Vympel R-73 - Wympel R-73 - Wympel R-73 + Wympel R-73 + Wympel R-73 AGM-65 Maverick @@ -437,8 +437,8 @@ AGM-65 Maverick AGM-65 マーベリック AGM-65 Maverick - AGM-65 小牛 - AGM-65 小牛 + AGM-65 小牛 + AGM-65 小牛 Kh-25MTP @@ -452,8 +452,8 @@ Kh-25MTP Kh-25MTP Kh-25MTP - Kh-25MTP - Kh-25MTP + Kh-25MTP + Kh-25MTP Hydra 70 HE @@ -467,8 +467,8 @@ Hydra 70 HE ハイドラ 70 りゅう弾 Hydra 70 고폭탄 - 九头蛇 70 高爆弹 - 九頭蛇 70 高爆彈 + 九头蛇 70 高爆弹 + 九頭蛇 70 高爆彈 S-8 HE @@ -482,8 +482,8 @@ S-8 HE S-8 りゅう弾 S-8 고폭탄 - S-8 高爆弹 - S-8 高爆彈 + S-8 高爆弹 + S-8 高爆彈 Hydra 70 AP @@ -497,8 +497,8 @@ Hydra 70 AP ハイドラ 70 徹甲弾 Hydra 70 철갑탄 - 九头蛇 70 反人员弹 - 九頭蛇 70 反人員彈 + 九头蛇 70 反人员弹 + 九頭蛇 70 反人員彈 S-8 AP @@ -512,8 +512,8 @@ S-8 AP S-8 徹甲弾 S-8 철갑탄 - S-8 反人员弹 - S-8 反人員彈 + S-8 反人员弹 + S-8 反人員彈 GBU-12 @@ -527,8 +527,8 @@ GBU-12 GBU-12 GBU-12 - GBU-12 - GBU-12 + GBU-12 + GBU-12 FAB-250M-54 @@ -542,8 +542,8 @@ FAB-250M-54 FAB-250M-54 FAB-250M-54 - FAB-250M-54 - FAB-250M-54 + FAB-250M-54 + FAB-250M-54 diff --git a/addons/refuel/stringtable.xml b/addons/refuel/stringtable.xml index 6d44a90db7a..e2a4c45cd3f 100644 --- a/addons/refuel/stringtable.xml +++ b/addons/refuel/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,8 +13,8 @@ Réglages de ravitaillement 給油設定 재급유 설정 - 加油设定 - 加油設定 + 加油设定 + 加油設定 Flow Rate @@ -28,8 +28,8 @@ Vitesse du ravitaillement 流量 주유량 - 油料流量 - 油料流量 + 油料流量 + 油料流量 How fast should a vehicle be refueled? @@ -43,8 +43,8 @@ A quelle vitesse devrait être ravitaillé un véhicule ? どのくらいの速さで車両へ給油しますか? 차량이 얼마나 빨리 재급유될 수 있습니까? - 载具多快会加油完毕? - 載具多快會加油完畢? + 载具多快会加油完毕? + 載具多快會加油完畢? Refuel @@ -58,8 +58,8 @@ Ravitaillement 給油 재급유 - 加油 - 加油 + 加油 + 加油 Take fuel nozzle @@ -73,8 +73,8 @@ Prendre la pompe 給油ノズルを取る 주유기 획득 - 拿取燃料喷嘴 - 拿取燃料噴嘴 + 拿取燃料喷嘴 + 拿取燃料噴嘴 Taking fuel nozzle... @@ -88,8 +88,8 @@ Prise de la pompe... 給油ノズルを取っている・・・ 주유기 획득중... - 拿取燃料喷嘴中... - 拿取燃料噴嘴中... + 拿取燃料喷嘴中... + 拿取燃料噴嘴中... Connect fuel nozzle @@ -103,8 +103,8 @@ Connecter la pompe 給油ノズルを接続する 주유기 꼽기 - 连接燃料喷嘴 - 連接燃料噴嘴 + 连接燃料喷嘴 + 連接燃料噴嘴 Connecting fuel nozzle... @@ -118,8 +118,8 @@ Connection de la pompe... 給油ノズルを接続している・・・ 주유기 꼽는중... - 连结燃料喷嘴中... - 連結燃料噴嘴中... + 连结燃料喷嘴中... + 連結燃料噴嘴中... Disconnect fuel nozzle @@ -133,8 +133,8 @@ Déconnecter la pompe 給油ノズルを外した 주유기 뽑기 - 断开燃料喷嘴 - 斷開燃料噴嘴 + 断开燃料喷嘴 + 斷開燃料噴嘴 Connect @@ -148,8 +148,8 @@ Connecter 接続 꼽기 - 连结 - 連結 + 连结 + 連結 Check remaining fuel @@ -163,8 +163,8 @@ Vérifier le carburant restant 残燃料を見る 남은 연료 확인 - 检查剩余燃料 - 檢查剩餘燃料 + 检查剩余燃料 + 檢查剩餘燃料 Checking remaining fuel... @@ -178,8 +178,8 @@ Vérifie le carburant restant... 残燃料を見ている・・・ 남은 연료 확인중... - 检查剩余燃料中... - 檢查剩餘燃料中... + 检查剩余燃料中... + 檢查剩餘燃料中... There are %1 liters left. @@ -193,8 +193,8 @@ Il reste %1 litres. 後 %1 リットル残っている。 %1 리터 남음 - 剩下%1公升的燃料. - 剩下%1公升的燃料. + 剩下%1公升的燃料. + 剩下%1公升的燃料. There is no fuel left. @@ -208,8 +208,8 @@ Il n'y a plus de carburant. もう燃料は残っていない。 연료 없음. - 没有剩余的燃料 - 沒有剩餘的燃料 + 没有剩余的燃料 + 沒有剩餘的燃料 Cancel @@ -223,8 +223,8 @@ Annuler 中止 취소 - 取消 - 取消 + 取消 + 取消 Failed @@ -238,8 +238,8 @@ Echoué 失敗 실패 - 失败 - 失敗 + 失败 + 失敗 Stop fueling @@ -253,8 +253,8 @@ Arrêter le ravitaillement 給油をやめる 그만 재급유하기 - 停止加油 - 停止加油 + 停止加油 + 停止加油 Stopping fueling... @@ -268,8 +268,8 @@ Arrête le ravitaillement... 給油をやめている・・・ 재급유 그만하는중... - 停止加油中... - 停止加油中... + 停止加油中... + 停止加油中... Start fueling @@ -283,8 +283,8 @@ Débute le ravitaillement 給油を始める 재급유 시작 - 开始加油 - 開始加油 + 开始加油 + 開始加油 Starting fueling... @@ -298,8 +298,8 @@ Début du ravitaillement... 給油を始めている・・・ 재급유 시작중... - 开始加油中... - 開始加油中... + 开始加油中... + 開始加油中... %1 Liters fueled @@ -313,8 +313,8 @@ %1 litres ravitaillés %1 リッターを給油した %1 리터 재급유됨 - 已加入%1公升的燃料 - 已加入%1公升的燃料 + 已加入%1公升的燃料 + 已加入%1公升的燃料 The fuel source is empty. @@ -328,8 +328,8 @@ La source de carburant est vide. 給油元は空です。 재급유처가 비었음. - 燃料来源已空. - 燃料來源已空. + 燃料来源已空. + 燃料來源已空. Maximum fuel hose length reached. @@ -343,8 +343,8 @@ Tuyau tendu au maximum 給油ホースはもうこれ以上届かない。 주유기 호스 최대 거리에 도달함. - 已加满至最大油量. - 已加滿至最大油量. + 已加满至最大油量. + 已加滿至最大油量. Fueling completed @@ -358,8 +358,8 @@ Ravitaillement terminé 給油完了 재급유 완료함 - 加油完毕 - 加油完畢 + 加油完毕 + 加油完畢 Fueling stopped @@ -373,8 +373,8 @@ Ravitaillement stoppé 給油を止めた 재급유 멈춤 - 已停止加油 - 已停止加油 + 已停止加油 + 已停止加油 Fueling started @@ -388,8 +388,8 @@ Ravitaillement débuté 給油を始めた 재급유 시작함 - 已开始加油 - 已開始加油 + 已开始加油 + 已開始加油 Return fuel nozzle @@ -403,8 +403,8 @@ Retourner la pompe 給油ノズルを戻す 주유기 반환 - 放回燃料喷嘴 - 放回燃料噴嘴 + 放回燃料喷嘴 + 放回燃料噴嘴 Returning fuel nozzle... @@ -418,8 +418,8 @@ Retourne la pompe 給油ノズルを戻している・・・ 주유기 반환중 - 放回燃料喷嘴中... - 放回燃料噴嘴中... + 放回燃料喷嘴中... + 放回燃料噴嘴中... Check fuel counter @@ -433,8 +433,8 @@ Vérifier le compteur 燃料計を見る 연로카운터 확인 - 检查燃料表 - 檢查燃料表 + 检查燃料表 + 檢查燃料表 Checking fuel counter... @@ -448,8 +448,8 @@ Vérification du compteur... 燃料計を見ている・・・ 연료카운터 확인중... - 检查燃料表中... - 檢查燃料表中... + 检查燃料表中... + 檢查燃料表中... %1 liters have been fueled. @@ -463,8 +463,8 @@ %1 litres ont été écoulés. %1 リッターがある %1 리터가 재급유되었습니다. - 已加入%1公升. - 已加入%1公升. + 已加入%1公升. + 已加入%1公升. Refuel hose length @@ -472,8 +472,8 @@ Reabastecer longitud de manguera Rifiuta lungezza tubo 給油ホースの長さ - 加油软管长度 - 加油軟管長度 + 加油软管长度 + 加油軟管長度 diff --git a/addons/reload/stringtable.xml b/addons/reload/stringtable.xml index eb5e46bcce5..5cdbe3e9ba3 100644 --- a/addons/reload/stringtable.xml +++ b/addons/reload/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Conferir munição ao recarregar a arma 再装填された武器の弾薬を確認 재장전시 장탄수 확인 - 在重新装填时检查弹药 - 在重新裝填時檢查彈藥 + 在重新装填时检查弹药 + 在重新裝填時檢查彈藥 Check the ammo in your new magazine on magazine reload. @@ -30,8 +30,8 @@ Confere a munição no seu novo carregador ao recarregar a arma あたらしく装填された弾倉の弾薬を確認します。 재장전시 새탄창에 있는 탄약을 확인합니다. - 在重新装填时检查新弹匣上的弹药. - 在重新裝填時檢查新彈匣上的彈藥. + 在重新装填时检查新弹匣上的弹药. + 在重新裝填時檢查新彈匣上的彈藥. Check Ammo @@ -46,8 +46,8 @@ Проверить боеприпасы 弾薬を確認 장탄수 확인 - 检查弹药 - 檢查彈藥 + 检查弹药 + 檢查彈藥 Ammo @@ -62,8 +62,8 @@ Боеприпасы 弾薬 장탄수 - 弹药 - 彈藥 + 弹药 + 彈藥 Link belt @@ -78,8 +78,8 @@ Ligar cintos de munição ベルト リンク 벨트 연결 - 连接弹链 - 連接彈鏈 + 连接弹链 + 連接彈鏈 Linking belt... @@ -94,8 +94,8 @@ Ligando cintos... ベルトをつなげている・・・ 벨트 연결중... - 连接弹链中... - 連接彈鏈中... + 连接弹链中... + 連接彈鏈中... diff --git a/addons/reloadlaunchers/stringtable.xml b/addons/reloadlaunchers/stringtable.xml index 6096f362be2..ccbca809f02 100644 --- a/addons/reloadlaunchers/stringtable.xml +++ b/addons/reloadlaunchers/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Recarregar lançador ランチャーを装填 무기 재장전 - 装载发射器 - 裝載發射器 + 装载发射器 + 裝載發射器 Loading launcher... @@ -30,8 +30,8 @@ Recarregando lançador... ランチャーを装填している・・・ 무기 재장전중... - 装载发射器中... - 裝載發射器中... + 装载发射器中... + 裝載發射器中... Launcher loaded @@ -46,8 +46,8 @@ Lançador Carregado ランチャーの装填完了 무기 재장전됨 - 发射器装载完毕 - 發射器裝載完畢 + 发射器装载完毕 + 發射器裝載完畢 Load %1 @@ -62,8 +62,8 @@ Recarregar %1 %1 へ装填 %1 장전 - 装载%1 - 裝載%1 + 装载%1 + 裝載%1 diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index 45a6bf622b9..7ab77887789 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Запасная гусеница 予備履帯 예비 궤도 - 备用履带 - 備用履帶 + 备用履带 + 備用履帶 Spare Wheel @@ -30,8 +30,8 @@ Запасное колесо 予備タイヤ 예비 바퀴 - 备用轮胎 - 備用輪胎 + 备用轮胎 + 備用輪胎 Change Wheel @@ -46,8 +46,8 @@ Vyměnit kolo タイヤを変える 바퀴 교체 - 更换轮胎 - 更換輪胎 + 更换轮胎 + 更換輪胎 Replacing Wheel... @@ -61,8 +61,8 @@ Remplacement de la roue... タイヤを交換中・・・ 바퀴 교체중... - 更换轮胎中... - 更換輪胎中... + 更换轮胎中... + 更換輪胎中... Wheel replaced @@ -76,8 +76,8 @@ Roue remplacée タイヤを履き替え 바퀴 교체됨 - 轮胎更换完毕 - 輪胎更換完畢 + 轮胎更换完毕 + 輪胎更換完畢 Remove Wheel @@ -92,8 +92,8 @@ Снять колесо タイヤを外す 바퀴 제거 - 卸下轮胎 - 卸下輪胎 + 卸下轮胎 + 卸下輪胎 Removing Wheel... @@ -107,8 +107,8 @@ Démontage de la roue... タイヤを外している・・ 바퀴 제거중... - 卸下轮胎中... - 卸下輪胎中... + 卸下轮胎中... + 卸下輪胎中... Wheel removed @@ -122,8 +122,8 @@ Roue démontée タイヤを外した 바퀴 제거됨 - 轮胎卸下完毕 - 輪胎卸下完畢 + 轮胎卸下完毕 + 輪胎卸下完畢 Change Track @@ -137,8 +137,8 @@ Changer la chenille 履帯を変える 궤도 교체 - 更换履带 - 更換履帶 + 更换履带 + 更換履帶 Replacing Track... @@ -152,8 +152,8 @@ Remplacement de la chenille... 履帯を交換中・・・ 궤도 교체중... - 更换履带中... - 更換履帶中... + 更换履带中... + 更換履帶中... Track replaced @@ -167,8 +167,8 @@ Chenille remplacée 履帯を交換した 궤도 교체됨 - 履带更换完毕 - 履帶更換完畢 + 履带更换完毕 + 履帶更換完畢 Remove Track @@ -182,8 +182,8 @@ Enlever la chenille 履帯を外す 궤도 제거 - 卸下履带 - 卸下履帶 + 卸下履带 + 卸下履帶 Removing Track... @@ -197,8 +197,8 @@ Enlèvement de la chenille... 履帯を外している・・・ 궤도 제거중... - 卸下履带中... - 卸下履帶中... + 卸下履带中... + 卸下履帶中... Track removed @@ -212,8 +212,8 @@ Chenille enlevée 履帯を外した 궤도 제거됨 - 履带卸下完毕 - 履帶卸下完畢 + 履带卸下完毕 + 履帶卸下完畢 Full Repair @@ -227,8 +227,8 @@ Réparations complètes 完全に修理 완전수리 - 完整维修 - 完整維修 + 完整维修 + 完整維修 Repairing Vehicle... @@ -242,8 +242,8 @@ Réparation du véhicule... 車両を修理中・・・ 차량 수리중... - 维修载具中... - 維修載具中... + 维修载具中... + 維修載具中... Full Repair Locations @@ -257,8 +257,8 @@ Lieu de réparation complète 完全修理をできる場所 완전수리 구역 - 完整维修地点 - 完整維修地點 + 完整维修地点 + 完整維修地點 At what locations can a vehicle be fully repaired? @@ -272,8 +272,8 @@ Où peuvent être réparés complètement les véhicules ? どのような場所で車両の完全な修理を出来るようにしますか? 어느 구역에서 차량을 완전히 수리할 수 있게 합니까? - 什么位置可以完整维修载具? - 什麼位置可以完整維修載具? + 什么位置可以完整维修载具? + 什麼位置可以完整維修載具? Allow Full Repair @@ -287,8 +287,8 @@ Autoriser les réparations complètes. 完全な修理をさせる 완전 수리 활성화 - 允许完整维修 - 允許完整維修 + 允许完整维修 + 允許完整維修 Who can perform a full repair on a vehicle? @@ -302,8 +302,8 @@ Qui peut faire une réparation complète ? 誰が車両の完全な修理を出来るようにしますか? 누가 완전 수리를 할 수 있습니까? - 谁可以完整维修载具? - 誰可以完整維修載具? + 谁可以完整维修载具? + 誰可以完整維修載具? Add Spare Parts @@ -317,8 +317,8 @@ Ajouter des pièces de rechange 予備部品を追加 예비 부품 더하기 - 添加备件 - 添加備件 + 添加备件 + 添加備件 Add spare parts to vehicles (requires Cargo component)? @@ -332,8 +332,8 @@ Ajouter des pièces de rechage aux véhicules ? (à besoin du système de cargaison) 車両へ予備部品を追加しますか(カーゴ コンポーネントが必要)? 차량에 예비 부품을 더합니까?(짐칸 요소 필요) - 添加载具备件 (需相关货物组件)? - 添加載具備件 (需相關貨物組件)? + 添加载具备件 (需相关货物组件)? + 添加載具備件 (需相關貨物組件)? Repair @@ -348,8 +348,8 @@ Ремонт 修理 수리 - 维修 - 維修 + 维修 + 維修 Display text on repair @@ -363,8 +363,8 @@ Afficher du texte pendant la réparation 修理時に文章で通知する 수리시 화면에 글자 표시 - 显示维修文本 - 顯示維修文本 + 显示维修文本 + 顯示維修文本 Display a notification whenever you repair a vehicle @@ -378,8 +378,8 @@ Afficher une notification lorsque l'on répare un véhicule あなたが車両の修理を始めると、画面に通知を出します 수리시 화면에 글자로 알림이 뜹니다 - 每当维修载具时显示通知 - 每當維修載具時顯示通知 + 每当维修载具时显示通知 + 每當維修載具時顯示通知 Repairing... @@ -394,8 +394,8 @@ Ремонтируем... 修理中・・・ 수리중... - 维修中... - 維修中... + 维修中... + 維修中... Repairing %1... @@ -410,8 +410,8 @@ Ремонтируем %1... %1 を修理中・・・ %1 수리중... - 维修%1中... - 維修%1中... + 维修%1中... + 維修%1中... Repaired %1 @@ -426,8 +426,8 @@ %1 отремонтирован %1 を修理した %1 수리됨 - 已维修%1 - 已維修%1 + 已维修%1 + 已維修%1 Fully repaired part @@ -441,8 +441,8 @@ Pièce entièrement réparée 部分的な完全な修理 부분 완벽히 수리됨 - 完整维修部分 - 完整維修部分 + 完整维修部分 + 完整維修部分 Partially repaired %1 @@ -456,8 +456,8 @@ %1 pratiquement réparée %1 を部分的に修理した %1 부분적으로 수리됨 - %1已完成部分维修 - %1已完成部分維修 + %1已完成部分维修 + %1已完成部分維修 Fully repaired %1 @@ -471,8 +471,8 @@ %1 entièrement réparée %1 を完全に修理した %1 완전히 수리됨 - %1已完整维修 - %1已完整維修 + %1已完整维修 + %1已完整維修 Partially repaired %1 @@ -486,8 +486,8 @@ %1 pratiquement réparée %1 を部分的に修理した %1 부분적으로 수리됨 - %1已完成部分维修 - %1已完成部分維修 + %1已完成部分维修 + %1已完成部分維修 Body @@ -502,8 +502,8 @@ Кузов 車体 몸체 - 车身 - 車身 + 车身 + 車身 Hull @@ -518,8 +518,8 @@ Корпус 機体 선체 - 车壳 - 車殼 + 车壳 + 車殼 Engine @@ -534,8 +534,8 @@ Двигатель エンジン 엔진 - 引擎 - 引擎 + 引擎 + 引擎 Left Horizontal Stabilizer @@ -549,8 +549,8 @@ Linkes Höhenleitwerk 左側の水平安定機 왼쪽 수평안정판 - 左侧悬挂稳定 - 左側懸掛穩定 + 左侧悬挂稳定 + 左側懸掛穩定 Right Horizontal Stabilizer @@ -564,8 +564,8 @@ Rechtes Höhenleitwerk 右側の水平安定機 오른쪽 수평안정판 - 右侧悬挂稳定 - 右側懸掛穩定 + 右侧悬挂稳定 + 右側懸掛穩定 Vertical Stabilizer @@ -579,8 +579,8 @@ Seitenleitwerk 車両安定器 수직 안정판 - 垂直稳定 - 垂直穩定 + 垂直稳定 + 垂直穩定 Fuel Tank @@ -595,8 +595,8 @@ Топливный бак 燃料タンク 연료 탱크 - 油箱 - 油箱 + 油箱 + 油箱 Transmission @@ -610,8 +610,8 @@ Instruments 変速機 변속기 - 变速箱 - 變速箱 + 变速箱 + 變速箱 Gear @@ -625,8 +625,8 @@ Trains d'attérissage ギア 기어 - 齿轮 - 齒輪 + 齿轮 + 齒輪 Starter @@ -640,8 +640,8 @@ Démarreur スターター 점화기 - 发动机 - 發動機 + 发动机 + 發動機 Tail @@ -655,8 +655,8 @@ Queue 尾翼 꼬리 - 尾翼 - 尾翼 + 尾翼 + 尾翼 Pitot Tube @@ -670,8 +670,8 @@ Sonde pitot ピトー管 동압관 - 空速管 - 空速管 + 空速管 + 空速管 Static Port @@ -685,8 +685,8 @@ Port statique スタティック ポート 정압공 - 静态端口 - 靜態端口 + 静态端口 + 靜態端口 Ammo @@ -700,8 +700,8 @@ Munitions 弾薬 탄약 - 弹药 - 彈藥 + 弹药 + 彈藥 Turret @@ -716,8 +716,8 @@ Башню 砲塔 포탑 - 炮塔 - 砲塔 + 炮塔 + 砲塔 Gun @@ -732,8 +732,8 @@ Пушку - - + + Missiles @@ -747,8 +747,8 @@ Missiles ミサイル 미사일 - 导弹 - 導彈 + 导弹 + 導彈 Left Track @@ -763,8 +763,8 @@ Левую гусеницу 左の履帯 왼쪽 궤도 - 左履带 - 左履帶 + 左履带 + 左履帶 Right Track @@ -779,8 +779,8 @@ Правую гусеницу 右の履帯 오른쪽 궤도 - 右履带 - 右履帶 + 右履带 + 右履帶 Left Front Wheel @@ -795,8 +795,8 @@ Левое переднее колесо 左の前輪 왼쪽 앞바퀴 - 左前轮 - 左前輪 + 左前轮 + 左前輪 Right Front Wheel @@ -811,8 +811,8 @@ Правое переднее колесо 右の前輪 오른쪽 앞바퀴 - 右前轮 - 右前輪 + 右前轮 + 右前輪 Second Left Front Wheel @@ -827,8 +827,8 @@ Второе переднее левое колесо 左の 2 つめの前輪 왼쪽 두번째 바퀴 - 第二左前轮 - 第二左前輪 + 第二左前轮 + 第二左前輪 Second Right Front Wheel @@ -843,8 +843,8 @@ Второе правое переднее колесо 右の 2 つめの前輪 오른쪽 두번째 바퀴 - 第二右前轮 - 第二右前輪 + 第二右前轮 + 第二右前輪 Left Middle Wheel @@ -859,8 +859,8 @@ Левое среднее колесо 左の中央の前輪 왼쪽 가운데 바퀴 - 左中轮 - 左中輪 + 左中轮 + 左中輪 Right Middle Wheel @@ -875,8 +875,8 @@ Правое среднее колесо 右の中央の前輪 오른족 가운데 바퀴 - 右中轮 - 右中輪 + 右中轮 + 右中輪 Left Rear Wheel @@ -891,8 +891,8 @@ Левое заднее колесо 左の後輪 왼쪽 뒤쪽 바퀴 - 左后轮 - 左後輪 + 左后轮 + 左後輪 Right Rear Wheel @@ -907,8 +907,8 @@ Правое заднее колесо 右の後 오른쪽 뒤쪽 바퀴 - 右后轮 - 右後輪 + 右后轮 + 右後輪 Avionics @@ -923,8 +923,8 @@ Авионику アビオニクス 항공 전자 - 航电系统 - 航電系統 + 航电系统 + 航電系統 Main Rotor @@ -939,8 +939,8 @@ Несущий винт 主翼 주 로터 - 主旋翼 - 主旋翼 + 主旋翼 + 主旋翼 Tail Rotor @@ -955,8 +955,8 @@ Рулевой винт 尾翼ローター 꼬리 로터 - 尾桨 - 尾槳 + 尾桨 + 尾槳 Winch @@ -970,8 +970,8 @@ Treuil ウィンチ 윈치 - 绞盘 - 絞盤 + 绞盘 + 絞盤 Glass (right) @@ -986,8 +986,8 @@ Стекло (справа) ガラス (右) 유리 (오른쪽) - 玻璃 (右) - 玻璃 (右) + 玻璃 (右) + 玻璃 (右) Glass (left) @@ -1002,8 +1002,8 @@ Стекло (слава) ガラス (左) 유리 (왼쪽) - 玻璃 (左) - 玻璃 (左) + 玻璃 (左) + 玻璃 (左) Glass @@ -1018,8 +1018,8 @@ Стекло ガラス 유리 - 玻璃 - 玻璃 + 玻璃 + 玻璃 ERA @@ -1033,8 +1033,8 @@ ДЗ 爆発反応装甲 폭발반응장갑 - 爆炸式反应装甲 - 爆炸式反應裝甲 + 爆炸式反应装甲 + 爆炸式反應裝甲 Repair Settings @@ -1048,8 +1048,8 @@ Réglages de réparation 修理設定 수리 설정 - 修复设定 - 修復設定 + 修复设定 + 修復設定 Provides a repair system for all types of vehicles. @@ -1063,8 +1063,8 @@ Fournit un système de réparation pour tous les types de véhicules. 車両の全種類に修理システムを適用しますか? 모든 차량에 대해 수리 시스템을 제공합니다. - 提供修复系统给所有载具. - 提供修復系統給所有載具. + 提供修复系统给所有载具. + 提供修復系統給所有載具. Anyone @@ -1078,8 +1078,8 @@ Tout le monde だれでも 모두 - 任何人 - 任何人 + 任何人 + 任何人 Engineer only @@ -1093,15 +1093,15 @@ Ingénieurs seulement 工兵のみ 오직 정비공만 - 只有工兵 - 只有工兵 + 只有工兵 + 只有工兵 Advanced Engineer only Solo Geniere avanzato 上級工兵のみ - 只有维修专精兵 - 只有維修專精兵 + 只有维修专精兵 + 只有維修專精兵 Allow Wheel @@ -1115,8 +1115,8 @@ Autoriser les roues タイヤを許可 바퀴 허가 - 允许轮胎 - 允許輪胎 + 允许轮胎 + 允許輪胎 Who can remove and replace wheels? @@ -1130,8 +1130,8 @@ Qui peut enlever et remplacer les roues ? 誰がタイヤの除去と交換を出来るようにしますか? 누가 바퀴를 제거 및 교체할 수 있습니까? - 谁可维修轮胎? - 誰可維修輪胎? + 谁可维修轮胎? + 誰可維修輪胎? Allow Repair @@ -1145,8 +1145,8 @@ Autoriser les réparations 修理を許可 수리 허가 - 允许维修 - 允許維修 + 允许维修 + 允許維修 Who can perform repair actions? @@ -1160,8 +1160,8 @@ Qui peut réparer ? 誰が修理を出来るようににしますか? 누가 수리를 할 수 있습니까? - 谁可以进行维修操作? - 誰可以進行維修操作? + 谁可以进行维修操作? + 誰可以進行維修操作? Repair Threshold @@ -1175,8 +1175,8 @@ Seuil de réparation 修理のしきい値 정비 한계치 - 维修门槛 - 維修門檻 + 维修门槛 + 維修門檻 What is the maximum damage that can be repaired with a toolkit? @@ -1190,8 +1190,8 @@ Quel est le maximum de dommages réparable par une trousse à outils ? ツールキットで修理できる、最大の損傷許容範囲を設定しますか? 어느정도의 피해까지 툴킷으로 수리가 가능합니까? - 工具包可以修复的最大损坏值? - 工具包可以修復的最大損壞值? + 工具包可以修复的最大损坏值? + 工具包可以修復的最大損壞值? Repair Threshold (Engineer) @@ -1205,8 +1205,8 @@ Seuil de réparatoin (ingénieur) 修理のしきい値 (工兵) 정비 한계치 (정비공) - 维修门槛 (工兵) - 維修門檻 (工兵) + 维修门槛 (工兵) + 維修門檻 (工兵) What is the maximum damage that can be repaired by an engineer? @@ -1220,8 +1220,8 @@ Quel est le maximum de dommages qui peuvent être réparés par un ingénieur ? 工兵が修理できる、最大の損傷許容範囲を設定しますか? 정비공은 어느정도의 피해까지 수리할 수 있습니까? - 工兵可以修复的最大损坏值? - 工兵可以修復的最大損壞值? + 工兵可以修复的最大损坏值? + 工兵可以修復的最大損壞值? Remove toolkit on use @@ -1235,8 +1235,8 @@ Enlever la trousse à outils après usage ツールキットを使うと削除 툴킷 사용후 제거 - 使用后删除工具包 - 使用後刪除工具包 + 使用后删除工具包 + 使用後刪除工具包 Should the toolkit be removed on usage? @@ -1250,8 +1250,8 @@ La trousse à outils devrait-elle être enlevée après usage ? ツールキットを使うと削除しますか? 툴킷을 사용하면 제거를 합니까? - 要在使用后删除工具包吗? - 要在使用後刪除工具包嗎? + 要在使用后删除工具包吗? + 要在使用後刪除工具包嗎? Anywhere @@ -1265,8 +1265,8 @@ N'importe où だれでも 어디서나 - 任何地点 - 任何地點 + 任何地点 + 任何地點 Repair Vehicle only @@ -1280,8 +1280,8 @@ Véhicule de réparation seulement 修理車両のみ 오직 수리 차량만 - 维修载具旁 - 維修載具旁 + 维修载具旁 + 維修載具旁 Repair Facility only @@ -1295,8 +1295,8 @@ Installation de réparation seulement 修理施設のみ 오직 수리 시설만 - 维修设施旁 - 維修設施旁 + 维修设施旁 + 維修設施旁 Repair Facility or Vehicle @@ -1310,8 +1310,8 @@ Installations ou véhicule de réparation 修理施設または車両のみ 수리 시설혹은 차량 - 维修设施或载具旁 - 維修設施或載具旁 + 维修设施或载具旁 + 維修設施或載具旁 Assign Engineer @@ -1325,8 +1325,8 @@ Assigner le rôle d'ingénieur 工兵にする 정비공 등록 - 指派工兵 - 指派工兵 + 指派工兵 + 指派工兵 List @@ -1340,8 +1340,8 @@ Liste 一覧 목록 - 名单 - 名單 + 名单 + 名單 List of unit names that will be classified as engineer, separated by commas. @@ -1355,8 +1355,8 @@ Liste des noms d'unités qui seront considérées ingénieurs. Séparé par des virgules 一覧に記載されたユニット名を、工兵として指定します。コンマで複数を指定できます。 목록내 보직이름은 정비공으로 분류됩니다. 쉼표로 구분합니다. - 工兵名单, 把单位名称输入在这边即可定义其为工兵. 每个单位使用逗号以做区隔. - 工兵名單, 把單位名稱輸入在這邊即可定義其為工兵. 每個單位使用逗號以做區隔. + 工兵名单, 把单位名称输入在这边即可定义其为工兵. 每个单位使用逗号以做区隔. + 工兵名單, 把單位名稱輸入在這邊即可定義其為工兵. 每個單位使用逗號以做區隔. Is Engineer @@ -1370,8 +1370,8 @@ Est ingénieur 工兵とする 은 정비공이다 - 是工兵 - 是工兵 + 是工兵 + 是工兵 Select the engineering skill level of the unit @@ -1385,8 +1385,8 @@ Sélectionner le niveau d'habilité en réparation de l'unité ユニットへの工兵スキルを選択 선택한 인원의 정비 실력을 고르십시요 - 选择工兵的技术水平 - 選擇工兵的技術水平 + 选择工兵的技术水平 + 選擇工兵的技術水平 None @@ -1400,8 +1400,8 @@ Aucun 工兵 없음 - - + + Engineer @@ -1415,16 +1415,16 @@ Ingénieur 専門兵 정비공 - 工兵 - 工兵 + 工兵 + 工兵 Adv. Engineer Adv. Geniere 上級工兵 - 专精 - 專精 + 专精 + 專精 Assign one or multiple units as an engineer @@ -1438,8 +1438,8 @@ Assigner un ou plusieurs unités comme ingénieur 修理車両として指定 하나 혹은 여러 인원을 정비공으로 등록합니다 - 指定一个或多个单位为工兵 - 指定一個或多個單位為工兵 + 指定一个或多个单位为工兵 + 指定一個或多個單位為工兵 Assign Repair Vehicle @@ -1453,8 +1453,8 @@ Assigner en tant que véhicule de réparation 修理車両として指定 정비 차량 등록 - 指定维修载具 - 指定維修載具 + 指定维修载具 + 指定維修載具 List @@ -1468,8 +1468,8 @@ Liste 一覧 목록 - 名单 - 名單 + 名单 + 名單 List of vehicles that will be classified as repair vehicle, separated by commas. @@ -1483,8 +1483,8 @@ Liste de véhicules qui seront considérés comme véhicules de réparation. Séparé par des virgules. 一覧に記載されたユニット名を、修理車両として指定します。コンマで複数を指定できます。 목록내 차량은 정비 차량으로 분류됩니다. 쉼표로 구분합니다. - 载具名单, 把载具名称输入在这边即可定义其为维修载具. 每个载具使用逗号以做区隔. - 載具名單, 把載具名稱輸入在這邊即可定義其為維修載具. 每個載具使用逗號以做區隔. + 载具名单, 把载具名称输入在这边即可定义其为维修载具. 每个载具使用逗号以做区隔. + 載具名單, 把載具名稱輸入在這邊即可定義其為維修載具. 每個載具使用逗號以做區隔. Is Repair Vehicle @@ -1498,8 +1498,8 @@ Est un véhicule de réparation 修理車両とする 은 정비 차량이다 - 是维修载具 - 是維修載具 + 是维修载具 + 是維修載具 Is the vehicle classified as a repair vehicle? @@ -1513,8 +1513,8 @@ Le véhicule est-il considéré comme un véhicule de réparation ? 車両を修理車両と指定しますか? 이 차량을 정비 차량으로 분류합니까? - 此载具是维修载具吗? - 此載具是維修載具嗎? + 此载具是维修载具吗? + 此載具是維修載具嗎? Assign one or multiple vehicles as a repair vehicle @@ -1528,8 +1528,8 @@ Assigner un ou plusieurs véhicules en tant que véhicule de réparation 単体、または複数の車両を修理車両とします 하나 혹은 여러 차량을 정비 차량으로 등록합니다 - 指定一个或多个载具作为维修载具 - 指定一個或多個載具作為維修載具 + 指定一个或多个载具作为维修载具 + 指定一個或多個載具作為維修載具 Assign Repair Facility @@ -1543,8 +1543,8 @@ Assigner en tant qu'installation de réparation 修理施設とする 정비 시설 등록 - 指定维修设施 - 指定維修設施 + 指定维修设施 + 指定維修設施 List @@ -1558,8 +1558,8 @@ Liste 一覧 목록 - 名单 - 名單 + 名单 + 名單 List of objects that will be classified as repair Facility, separated by commas. @@ -1573,8 +1573,8 @@ Liste des objets considérés comme installations de réparation. Séparé par des virgules 一覧に記載されたユニット名を、修理施設として指定します。コンマで複数を指定できます。 목록내 시설은 정비 시설으로 분류됩니다. 쉼표로 구분합니다. - 设施名单, 把设施名称输入在这边即可定义其为维修设施. 每个设施使用逗号以做区隔. - 設施名單, 把設施名稱輸入在這邊即可定義其為維修設施. 每個設施使用逗號以做區隔. + 设施名单, 把设施名称输入在这边即可定义其为维修设施. 每个设施使用逗号以做区隔. + 設施名單, 把設施名稱輸入在這邊即可定義其為維修設施. 每個設施使用逗號以做區隔. Is Repair Facility @@ -1588,8 +1588,8 @@ Est une installation de réparation 修理施設とする 은 정비 시설이다 - 是维修设施 - 是維修設施 + 是维修设施 + 是維修設施 Is the object classified as a repair Facility? @@ -1603,8 +1603,8 @@ L'objet est-il considéré comme une installation de réparation ? オブジェクトを修理施設として指定しますか? 이 시설을 정비 시설로 분류합니까? - 此设施是维修设施吗? - 此設施是維修設施嗎? + 此设施是维修设施吗? + 此設施是維修設施嗎? Assign one or multiple objects as a repair Facility @@ -1618,8 +1618,8 @@ Assigner un ou plusieurs objets en tant que véhicule de réparation ひとつ、または複数オブジェクトに予備部品を追加 하나 혹은 여러 시설을 정비 시설로 등록합니다 - 指定一个或多个对象作为维修设施 - 指定一個或多個對象作為維修設施 + 指定一个或多个对象作为维修设施 + 指定一個或多個對象作為維修設施 Add Spare Parts @@ -1633,8 +1633,8 @@ Ajouter des pièces de rechange 予備部品を追加 예비 부품 더하기 - 添加备件 - 添加備件 + 添加备件 + 添加備件 Add spare parts to one or multiple objects @@ -1648,8 +1648,8 @@ Ajouter des pièces de rechange à un ou plusieurs objets 一覧に追加されたオブジェクトへ予備部品を与えます。コンマで複数を指定できます。 하나 혹은 여러 물체가 예비 부품을 더합니다 - 添加备件到一个或多个对象上 - 添加備件到一個或多個對象上 + 添加备件到一个或多个对象上 + 添加備件到一個或多個對象上 List @@ -1663,8 +1663,8 @@ Liste 一覧 목록 - 名单 - 名單 + 名单 + 名單 List of objects that will get spare parts added, separated by commas. @@ -1678,8 +1678,8 @@ Liste des objets qui recevront des pièces de réparation en plus. Séparé par des virgules 一覧に追加されたオブジェクトへ予備部品を与えます。コンマで複数を指定できます。 목록내 물체는 예비 부품을 받습니다, 쉼표로 구분합니다. - 添加备件到名单的载具上. 每个载具使用逗号以做区隔. - 添加備件到名單的載具上. 每個載具使用逗號以做區隔. + 添加备件到名单的载具上. 每个载具使用逗号以做区隔. + 添加備件到名單的載具上. 每個載具使用逗號以做區隔. Part @@ -1693,8 +1693,8 @@ Pièce 部品 부품 - 零件 - 零件 + 零件 + 零件 Spare part. @@ -1708,8 +1708,8 @@ Pièce de rechange 予備部品 예비 부품 - 备用零件 - 備用零件 + 备用零件 + 備用零件 Amount @@ -1723,8 +1723,8 @@ Quantité 수량 - 数量 - 數量 + 数量 + 數量 Number of selected spare parts. @@ -1738,8 +1738,8 @@ Nombre de pièces de rechange séléctionnées 選択された予備部品の数を選択します。 선택한 부품의 수 - 选择的备件数量 - 選擇的備件數量 + 选择的备件数量 + 選擇的備件數量 Wheel repair requirements @@ -1753,8 +1753,8 @@ Exigences de réparation de roue タイヤの修理を必要 바퀴 교체 요구사항 - 维修轮胎限制 - 維修輪胎限制 + 维修轮胎限制 + 維修輪胎限制 Items required to remove/replace wheels @@ -1768,8 +1768,8 @@ Items exigés pour enlever/remplacer les roues タイヤの除去と交換にアイテムを必要としますか? 바퀴를 제거/교체하는데 필요한 물건 - 需要特定物品来移除/更换车轮 - 需要特定物品來移除/更換車輪 + 需要特定物品来移除/更换车轮 + 需要特定物品來移除/更換車輪 Engine must be off to repair @@ -1783,8 +1783,8 @@ Silnik musi być wyłączony w celu naprawy 수리를 위해서는 엔진을 꺼야만 합니다 Il motore deve essere spento per poter riparare - 引擎必须先关闭才能开始进行维修 - 引擎必須先關閉才能開始進行維修 + 引擎必须先关闭才能开始进行维修 + 引擎必須先關閉才能開始進行維修 diff --git a/addons/respawn/stringtable.xml b/addons/respawn/stringtable.xml index 6d3b3d805dd..d298ef804ad 100644 --- a/addons/respawn/stringtable.xml +++ b/addons/respawn/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Será posicionado em 5 segundos... 設置まであと 5 秒・・・ 5초 후 재배치... - 5秒后完成布署... - 5秒後完成佈署... + 5秒后完成布署... + 5秒後完成佈署... Rallypoint deployed @@ -30,8 +30,8 @@ Rallypoints posicionado ラリーポイントを設置した 집결지 배치됨 - 集合点布署完成 - 集合點佈署完成 + 集合点布署完成 + 集合點佈署完成 Teleport to Base @@ -46,8 +46,8 @@ Teleporta alla base ベースへ移動 기지로 순간이동 - 传送至基地 - 傳送至基地 + 传送至基地 + 傳送至基地 Teleport to Rallypoint @@ -62,8 +62,8 @@ Teleporta al rallypoint ラリーポイントへ移動 집결지로 순간이동 - 传送至集合点 - 傳送至集合點 + 传送至集合点 + 傳送至集合點 Teleported to Base @@ -78,8 +78,8 @@ Teletransportado para a Base ベースへ移動した 기지로 순간이동함 - 已传送至基地 - 已傳送至基地 + 已传送至基地 + 已傳送至基地 Teleported to Rallypoint @@ -94,8 +94,8 @@ Teletransportado para o Rallypoints ラリーポイントへ移動した 집결지로 순간이동함 - 已传送至集合点 - 已傳送至集合點 + 已传送至集合点 + 已傳送至集合點 Rallypoint West (Base) @@ -110,8 +110,8 @@ Ponto de encontro Oeste (Base) ラリーポイント ウエスト (ベース) 서쪽 집결지 (기지) - 蓝方集合点 (基地) - 藍方集合點 (基地) + 蓝方集合点 (基地) + 藍方集合點 (基地) Rallypoint East (Base) @@ -126,8 +126,8 @@ Ponto de encontro Lest (Base) ラリーポイント イースト (ベース) 동쪽 집결지 (기지) - 红方集合点 (基地) - 紅方集合點 (基地) + 红方集合点 (基地) + 紅方集合點 (基地) Rallypoint Independent (Base) @@ -142,8 +142,8 @@ Ponto de encontro Independente (Base) ラリーポイント インデペンデント (ベース) 독립 집결지 (기지) - 独立方集合点 (基地) - 獨立方集合點 (基地) + 独立方集合点 (基地) + 獨立方集合點 (基地) Rallypoint West @@ -158,8 +158,8 @@ Ponto de encontro Oeste ラリーポイント ウエスト 서쪽 집결지 - 蓝方集合点 - 藍方集合點 + 蓝方集合点 + 藍方集合點 Rallypoint East @@ -174,8 +174,8 @@ Ponto de encontro Leste ラリーポイント イースト 동쪽 집결지 - 红方集合点 - 紅方集合點 + 红方集合点 + 紅方集合點 Rallypoint Independent @@ -190,8 +190,8 @@ Ponto de encontro Independente ラリーポイント インデペンデント 독립 집결지 - 独立方集合点 - 獨立方集合點 + 独立方集合点 + 獨立方集合點 Respawn System @@ -206,8 +206,8 @@ Sistema Respawn リスポン システム 재배치 시스템 - 重生系统 - 重生系統 + 重生系统 + 重生系統 Save Gear? @@ -222,8 +222,8 @@ Salva Equipaggiamento? 装備を保存? 장비를 저장합니까? - 储存装备? - 儲存裝備? + 储存装备? + 儲存裝備? Respawn with the gear a soldier had just before his death? @@ -238,8 +238,8 @@ Respawna con l'equipaggiamento che il soldato aveva appena prima di morire? ユニットが死ぬ前に持っていた装備でリスポンしますか? 죽기 전에 가지고 있던 장비로 재배치합니까? - 是否在重生时载入死亡前的装备? - 是否在重生時載入死亡前的裝備? + 是否在重生时载入死亡前的装备? + 是否在重生時載入死亡前的裝備? Remove bodies? @@ -254,8 +254,8 @@ Rimuovi corpi? 死体を削除? 시체를 제거합니까? - 删除尸体? - 刪除屍體? + 删除尸体? + 刪除屍體? Remove player bodies after disconnect? @@ -270,8 +270,8 @@ Rimuovi i corpi dei giocatori quando si disconnettono? 切断後はプレイヤーの死体を削除しますか? 접속이 끊긴 플레이어의 시체를 제거합니까? - 要删除已离线的玩家尸体吗? - 要刪除已離線的玩家屍體嗎? + 要删除已离线的玩家尸体吗? + 要刪除已離線的玩家屍體嗎? This module enables you to configure ACE functionality specific to respawns. @@ -285,8 +285,8 @@ Este módulo permite configurar parámetros relacionados con la reaparición あなたが設定した ACE 機能をリスポンへ設定できます。 이 모듈은 ACE 재배치의 자세한 설정을 변결할 수 있게 해줍니다. - 该模块使您可以设定ACE的重生功能. - 該模塊使您可以設定ACE的重生功能. + 该模块使您可以设定ACE的重生功能. + 該模塊使您可以設定ACE的重生功能. Friendly Fire Messages @@ -301,8 +301,8 @@ Messaggi Fuoco Amico 友軍誤射の表示 아군사격 메세지 - 友军误击讯息 - 友軍誤擊訊息 + 友军误击讯息 + 友軍誤擊訊息 Using this module in your mission will make it so any friendly fire kills will be displayed in form of a message in chat. @@ -316,8 +316,8 @@ El usar este módulo, todas las muertes por fuego amigo serán indicadas en el chat. もし友軍誤射による死者が出た場合は、チャットにてその旨を表示します。 이 모듈은 미션 중 아군사격으로 인한 사망자 발생시 채팅창에 메세지를 표시해줍니다. - 摆放此模块后, 当有发生友军误击致死的事件, 会显示提示讯息在聊天视窗中. - 擺放此模塊後, 當有發生友軍誤擊致死的事件, 會顯示提示訊息在聊天視窗中. + 摆放此模块后, 当有发生友军误击致死的事件, 会显示提示讯息在聊天视窗中. + 擺放此模塊後, 當有發生友軍誤擊致死的事件, 會顯示提示訊息在聊天視窗中. Rallypoint System @@ -332,8 +332,8 @@ Sistema Punto di Raccolta ラリーポイント システム 집결지 시스템 - 集合点系统 - 集合點系統 + 集合点系统 + 集合點系統 This module allows you to use rally points in missions, to which you can quickly teleport from base flag. Requires placing special objects on map - base and flag. Both available in category Empty -> ACE Respawn. @@ -347,8 +347,8 @@ Ce module vous permet d'utiliser les "rally points" auxquels vous pouvez vous téléporter rapidement depuis un drapeau à la base. Il nécessite le placement d'objets spéciaux sur la carte - base et drapeau, disponibles dans la catégorie Vide -> ACE Respawn. ミッションでベースから素早く移動できるラリーポイントを使えるようにします。ゲーム内に専用オブジェクトとなるベースとフラッグを設置している必要があります。両オブジェクトは Empty 下の ACE リスポンから設置できます。 이 모듈은 미션 중에 기지 깃발에서 집결지로 빠르게 텔레포트 시켜주는 역활을 합니다. 지도 상에 기지 및 깃발이 필요합니다. 두 가지 모두 Empty->ACE Respawn 카테고리에서 찾을 수 있습니다. - 摆放此模块后, 你将能在任务中布署集合点, 使你可以快速往返基地与前线. 要使用本功能, 请记得放上空物件->ACE 重生里面的基地与旗帜. - 擺放此模塊後, 你將能在任務中佈署集合點, 使你可以快速往返基地與前線. 要使用本功能, 請記得放上空物件->ACE 重生裡面的基地與旗幟. + 摆放此模块后, 你将能在任务中布署集合点, 使你可以快速往返基地与前线. 要使用本功能, 请记得放上空物件->ACE 重生里面的基地与旗帜. + 擺放此模塊後, 你將能在任務中佈署集合點, 使你可以快速往返基地與前線. 要使用本功能, 請記得放上空物件->ACE 重生裡面的基地與旗幟. Move Rallypoint @@ -363,8 +363,8 @@ Sposta Punto di Raccolta ラリーポイントを移動 집결지 이동 - 移动集合点 - 移動集合點 + 移动集合点 + 移動集合點 ACE Respawn @@ -379,8 +379,8 @@ Rigenerazione ACE ACE リスポン ACE 재배치 - ACE 重生 - ACE 重生 + ACE 重生 + ACE 重生 diff --git a/addons/safemode/stringtable.xml b/addons/safemode/stringtable.xml index bb8ce63b60a..fa9b951908f 100644 --- a/addons/safemode/stringtable.xml +++ b/addons/safemode/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Modo de segurança 安全装置 안전 모드 - 保险模式 - 保險模式 + 保险模式 + 保險模式 Take off Safety @@ -30,8 +30,8 @@ Tirar segurança 安全装置を外す 안전장치 해제 - 开保险 - 開保險 + 开保险 + 開保險 Put on Safety @@ -46,8 +46,8 @@ Colocar Segurança 安全装置を掛けた 안전장치 적용 - 关保险 - 關保險 + 关保险 + 關保險 Took off Safety @@ -62,8 +62,8 @@ Tirou Segurança 安全装置を外した 안전장치 해제됨 - 已开保险 - 已開保險 + 已开保险 + 已開保險 diff --git a/addons/sandbag/stringtable.xml b/addons/sandbag/stringtable.xml index a0dc9d592fb..555dcab4168 100644 --- a/addons/sandbag/stringtable.xml +++ b/addons/sandbag/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Saco de Areia 土のう 모래주머니 - 沙包 - 沙包 + 沙包 + 沙包 Sandbag (empty) @@ -30,8 +30,8 @@ Saco de Areia (vazio) 土のう (空) 모래주머니(비어있음) - 沙包 (空) - 沙包 (空) + 沙包 (空) + 沙包 (空) Cannot build here @@ -46,8 +46,8 @@ Não pode contruir aqui ここでは作れない 여기에 지을 수 없습니다 - 无法放置在此 - 無法放置在此 + 无法放置在此 + 無法放置在此 Pick up Sandbag @@ -62,8 +62,8 @@ Pegar saco de areia 土のうを拾う 모래주머니 줍기 - 捡起沙包 - 撿起沙包 + 捡起沙包 + 撿起沙包 Carry Sandbag @@ -78,8 +78,8 @@ Carregar saco de areia 土のうを運ぶ 모래주머니 옮기기 - 搬运沙包 - 搬運沙包 + 搬运沙包 + 搬運沙包 End Carrying @@ -94,8 +94,8 @@ Parar de carregar 下ろす 그만 옮기기 - 停止搬运 - 停止搬運 + 停止搬运 + 停止搬運 Drop Sandbag @@ -110,8 +110,8 @@ Derrubar saco de areia 土のうを落とす 여기에 놓기 - 放下沙包 - 放下沙包 + 放下沙包 + 放下沙包 Confirm Deployment @@ -126,8 +126,8 @@ Confirmar implantação ここで作る 설치 확인 - 确认布署 - 確認佈署 + 确认布署 + 確認佈署 Cancel Deployment @@ -142,8 +142,8 @@ Cancelar implantação 作るのをやめる 설치 취소 - 取消布署 - 取消佈署 + 取消布署 + 取消佈署 Deploy Sandbag @@ -158,8 +158,8 @@ Implantar saco de areia 土のうを設置 모래주머니 설치 - 布署沙包 - 佈署沙包 + 布署沙包 + 佈署沙包 Sandbag Box @@ -174,8 +174,8 @@ Caixa de saco de areia 土のう入れ 모래주머니 상자 - 沙包箱 - 沙包箱 + 沙包箱 + 沙包箱 Here is no sand @@ -190,8 +190,8 @@ Aqui não tem areia ここに土は無い 흙이 없습니다 - 这里没有沙 - 這裡沒有沙 + 这里没有沙 + 這裡沒有沙 Rotate @@ -206,8 +206,8 @@ Bращать 回転 돌리기 - 旋转 - 旋轉 + 旋转 + 旋轉 diff --git a/addons/scopes/stringtable.xml b/addons/scopes/stringtable.xml index 66a9729b28a..16898757fde 100644 --- a/addons/scopes/stringtable.xml +++ b/addons/scopes/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -8,8 +8,8 @@ Celowniki optyczne Scopes Mirini - 瞄准镜 - 瞄準鏡 + 瞄准镜 + 瞄準鏡 Enable ACE Scope adjustment @@ -18,8 +18,8 @@ Włącz ustawienia celowników optycznych ACE Active ACE Scope adjustment Abilita Regolazione mirino ACE - 开启ACE瞄准镜归零调节 - 開啟ACE瞄準鏡歸零調節 + 开启ACE瞄准镜归零调节 + 開啟ACE瞄準鏡歸零調節 Enable adjustmet turrets on high powered scopes @@ -28,8 +28,8 @@ Włącz pokrętła regulacyjne Permet de régler la hausse et la dérive sur les optiques de visée à fort grossissement Abilita la regolazione delle torrette nei mirini a lunga gittata - 开启高倍率瞄准镜归零调节 - 開啟高倍率瞄準鏡歸零調節 + 开启高倍率瞄准镜归零调节 + 開啟高倍率瞄準鏡歸零調節 Force adjustment turrets @@ -38,8 +38,8 @@ Wymuś użycie pokręteł regulacyjnych Impose le réglage de la hausse/dérive Forza la regolazione delle torrette - 强制使用归零调节 - 強制使用歸零調節 + 强制使用归零调节 + 強制使用歸零調節 Force usage of adjustmet turrets on high powered scopes @@ -48,8 +48,8 @@ Wymuś użycie pokręteł regulacyjnych dla celowników o dużym powiększeniu Impose le réglage de la hausse/dérive sur les optiques de visée à fort grossissement Forza l'uso della regolazione nei mirini a lunga gittata - 强制为高倍率瞄准镜开启归零调节 - 強制為高倍率瞄準鏡開啟歸零調節 + 强制为高倍率瞄准镜开启归零调节 + 強制為高倍率瞄準鏡開啟歸零調節 Correct zeroing @@ -58,8 +58,8 @@ Poprawka zerowania Corrige le zérotage Correggi azzeramento - 修正归零 - 修正歸零 + 修正归零 + 修正歸零 Corrects the zeroing of all small arms sights @@ -68,8 +68,8 @@ Poprawia zerowanie wszystkich celowników broni ręcznej Corrige le zérotage des optiques de visée des petites armes Corregge l'azzeramento di tutti i mirini di bassa portata - 为所有小口径武器修正归零 - 為所有小口徑武器修正歸零 + 为所有小口径武器修正归零 + 為所有小口徑武器修正歸零 Overwrite zero distance @@ -78,8 +78,8 @@ Nadpisuje ustawienie dla zerowego dystansu Remplace la distance de zérotage Sovrascrivi la distanza zero - 覆写归零距离 - 覆寫歸零距離 + 覆写归零距离 + 覆寫歸零距離 Uses the 'defaultZeroRange' setting to overwrite the zero range of high power scopes @@ -88,8 +88,8 @@ Używa 'defaultZeroRange' zamiast ustawionej odległości zerowania dla celowników o duzym przybliżeniu Utilise le paramètre 'defaultZeroRange' pour remplacer la distance de zérotage sur les optiques de visée à fort grossissement Usa le impostazioni di "defaultZeroRange" (Portata Zero Predefinita) per sovrascrivere la portata zero dei mirini a lunga gittata - 使用'defaultZeroRange'来为高倍率瞄准镜覆写预设归零距离 - 使用'defaultZeroRange'來為高倍率瞄準鏡覆寫預設歸零距離 + 使用'defaultZeroRange'来为高倍率瞄准镜覆写预设归零距离 + 使用'defaultZeroRange'來為高倍率瞄準鏡覆寫預設歸零距離 Default zero distance @@ -98,8 +98,8 @@ Domyślne zerowanie Distance de zérotage par défaut Distanza zero predefinita - 预设归零距离 - 預設歸零距離 + 预设归零距离 + 預設歸零距離 High power scopes will be zeroed at this distance @@ -108,8 +108,8 @@ Celowniki o dużym powiększeniu będą zerowane dla tej odległości Distance de zérotage par défaut des optiques de visée à fort grossissement I mirini a lunga gittata verranno azzerrati a questa distanza - 高倍率瞄准镜将归零在这个距离上 - 高倍率瞄準鏡將歸零在這個距離上 + 高倍率瞄准镜将归零在这个距离上 + 高倍率瞄準鏡將歸零在這個距離上 Reference temperature @@ -118,8 +118,8 @@ Referencyjna temperatura Température de référence Temperatura di riferimento - 参考温度 - 參考溫度 + 参考温度 + 參考溫度 Temperature at which the scope was zeroed @@ -128,8 +128,8 @@ Temperatura, przy której celownik został wyzerowany Température de référence pour le zérotage des optiques Temperatura a cui è stato azzerato il mirino - 武器参考多少温度来进行归零. - 武器參考多少溫度來進行歸零. + 武器参考多少温度来进行归零. + 武器參考多少溫度來進行歸零. Reference barometric pressure @@ -138,8 +138,8 @@ Referencyjne ciśnienie barometryczne Pression barométrique de référence Pressione barometrica di riferimento - 参考大气压力 - 參考大氣壓力 + 参考大气压力 + 參考大氣壓力 Barometric pressure at which the scope was zeroed @@ -148,8 +148,8 @@ Ciśnienie barometryczne, przy którym celownik został wyzerowany Pression barométrique de référence pour le zérotage des optiques Pressione barometrica a cui è stato azzerato il mirino - 武器参考多少大气压力来进行归零. - 武器參考多少大氣壓力來進行歸零. + 武器参考多少大气压力来进行归零. + 武器參考多少大氣壓力來進行歸零. Reference humidity @@ -158,8 +158,8 @@ Referencyjna wilgotność Humidité de référence Umidità di riferimento - 参考湿度 - 參考濕度 + 参考湿度 + 參考濕度 Humidity at which the scope was zeroed @@ -168,8 +168,8 @@ Wilgotność powietrza, przy której celownik został wyzerowany Taux d'humidité de référence pour le zérotage des optiques Umidità a cui è stato azzerato il mirino - 武器参考多少湿度来进行归零. - 武器參考多少濕度來進行歸零. + 武器参考多少湿度来进行归零. + 武器參考多少濕度來進行歸零. Deduce pressure from altitude @@ -178,8 +178,8 @@ Ciśnienie określone na podstawie wysokości Pression selon l'altitude Ricava la pressione dall'altitudine - 高度影响大气压力 - 高度影響大氣壓力 + 高度影响大气压力 + 高度影響大氣壓力 Deduce the barometric pressure from the terrain altitude @@ -188,8 +188,8 @@ Określ ciśnienie barometryczne na podstawie wysokości terenu Détermine la pression barométrique selon l'altitude du terrain Ricava la pressione barometrica dall'altitudine del terreno - 在不同高度上会有不同的大气压力 - 在不同高度上會有不同的大氣壓力 + 在不同高度上会有不同的大气压力 + 在不同高度上會有不同的大氣壓力 Minor adjustment up @@ -204,8 +204,8 @@ Korekce nahoru (mírně) 僅かに上へ調節 위로 조절 - 向上微调 - 向上微調 + 向上微调 + 向上微調 Minor adjustment down @@ -220,8 +220,8 @@ Korekce dolů (mírně) 僅かに下へ調節 아래로 조절 - 向下微调 - 向下微調 + 向下微调 + 向下微調 Minor adjustment right @@ -236,8 +236,8 @@ Korekce doprava (mírně) 僅かに右へ調節 오론쪽으로 조절 - 向右微调 - 向右微調 + 向右微调 + 向右微調 Minor adjustment left @@ -252,8 +252,8 @@ Korekce doleva (mírně) 僅かに左へ調節 왼쪽으로 조절 - 向左微调 - 向左微調 + 向左微调 + 向左微調 Major adjustment up @@ -268,8 +268,8 @@ Korekce nahoru 大きく上へ調節 크게 위로 조절 - 向上调整 - 向上調整 + 向上调整 + 向上調整 Major adjustment down @@ -284,8 +284,8 @@ Korekce dolů 大きく下へ調節 크게 아래로 조절 - 向下调整 - 向下調整 + 向下调整 + 向下調整 Major adjustment right @@ -300,8 +300,8 @@ Korekce doprava 大きく右へ調節 크게 오른쪽으로 조절 - 向右调整 - 向右調整 + 向右调整 + 向右調整 Major adjustment left @@ -316,8 +316,8 @@ Korekce doleva 大きく左へ調節 크게 왼쪽으로 조절 - 向左调整 - 向左調整 + 向左调整 + 向左調整 Set zero adjustment @@ -332,8 +332,8 @@ Vynulovat korekci ゼロインを調節 영점 초기화 - 设定归零 - 設定歸零 + 设定归零 + 設定歸零 This module adds windage and elevation adjustment turrets on high power rifle scopes. @@ -342,8 +342,8 @@ Ten moduł włącza pokrętła kalibracyjne poprawki na wiatr oraz poprawki wysokości dla celowników o dużym powiększeniu. Ce module ajoute les tambours de correction de la hausse et de dérive sur les optiques de visée à fort grossissement. Questo modulo aggiunge lo spostamento dell'aria e la regolazione dell'elevazione delle torrette in mirini a lunga gittata - 此模块可为高倍率瞄准镜新增归零风偏, 距离用的调整纽. - 此模塊可為高倍率瞄準鏡新增歸零風偏, 距離用的調整紐. + 此模块可为高倍率瞄准镜新增归零风偏, 距离用的调整纽. + 此模塊可為高倍率瞄準鏡新增歸零風偏, 距離用的調整紐. diff --git a/addons/slideshow/stringtable.xml b/addons/slideshow/stringtable.xml index 68d0f9d5893..f563e62e536 100644 --- a/addons/slideshow/stringtable.xml +++ b/addons/slideshow/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Mostra Diapositive スライドショー 슬라이드 쇼 - 幻燈片 - 幻灯片 + 幻燈片 + 幻灯片 This module allows you to set up slide-shows on different objects. One module per image list. Only objects with hiddenSelection 0 are supported. @@ -30,8 +30,8 @@ Questo modulo ti permette di creare una presentazione con diapositive su vari oggetti. Un modulo per lista immagini. Solo oggetti con hiddenSelection 0 sono supportati. さまざまなオブジェクトへスライドショーを設定することができます。1つのモジュールは各画像リストになっています。オブジェクトが hiddenSelection 0へ対応している必要があります。 이 모듈은 다른 물체에 대해 슬라이드 쇼를 놓을 수 있게 해줍니다. 한 모듈당 한 이미지목록만 가능합니다. 또한 물체가 hiddenSelection 0 를 지원해야만합니다. - 此模塊可讓圖片以幻燈片的形式顯示在物件上. 每個模塊都能設定一串幻燈片清單. 被設定的物件不能有隱藏部位(hiddenSelection). - 此模块可让图片以幻灯片的形式显示在物件上. 每个模块都能设定一串幻灯片清单. 被设定的物件不能有隐藏部位(hiddenSelection). + 此模塊可讓圖片以幻燈片的形式顯示在物件上. 每個模塊都能設定一串幻燈片清單. 被設定的物件不能有隱藏部位(hiddenSelection). + 此模块可让图片以幻灯片的形式显示在物件上. 每个模块都能设定一串幻灯片清单. 被设定的物件不能有隐藏部位(hiddenSelection). Objects @@ -46,8 +46,8 @@ Oggetti オブジェクト 물체 - 物件 - 物件 + 物件 + 物件 Object names (can also be synchronized objects) slide-show will be displayed on, separated by commas if multiple. @@ -62,8 +62,8 @@ Nomi di oggetti (possono anche essere oggetti sincronizzati) che verranno usati per la presentazione di diapositive, separato da virgole se più di uno. スライドショーを表示するオブジェクト名 (オブジェクトとの同期も可)。複数ある場合はコンマで区切れます 슬라이드 쇼가 보여질 물체(동기화 되는 물체도 가능합니다) 명칭, 다수의 경우 쉼표로 구분합니다. - 物件名稱 (也可使用同步線來設定), 幻燈片將會顯示在該物件上, 如有多個物件, 請以逗號作區隔. - 物件名称 (也可使用同步线来设定), 幻灯片将会显示在该物件上, 如有多个物件, 请以逗号作区隔. + 物件名稱 (也可使用同步線來設定), 幻燈片將會顯示在該物件上, 如有多個物件, 請以逗號作區隔. + 物件名称 (也可使用同步线来设定), 幻灯片将会显示在该物件上, 如有多个物件, 请以逗号作区隔. Controllers @@ -78,8 +78,8 @@ Controllori コントローラ 조종 장치 - 控制器 - 控制器 + 控制器 + 控制器 Controller object names, separated by commas if multiple. @@ -93,8 +93,8 @@ Nomi di oggetti controllori, separati da virgole se multipli. コントローラに指定するオブジェクト名を記入し、複数ある場合はコンマで区切れます。 조종 장치 물체 명칭, 다수의 경우 쉼표로 구분됩니다. - 指定是控制器的物件名稱, 如有多個物件, 請以逗號作區隔. - 指定是控制器的物件名称, 如有多个物件, 请以逗号作区隔. + 指定是控制器的物件名稱, 如有多個物件, 請以逗號作區隔. + 指定是控制器的物件名称, 如有多个物件, 请以逗号作区隔. Images @@ -109,8 +109,8 @@ Immagini 画像 사진 - 圖片 - 图片 + 圖片 + 图片 List of images that will be used for the slide-show, separated by commas, with full path correctly formatted (eg. images\image.paa). @@ -125,8 +125,8 @@ Lista di immagini che verranno usate durante la presentazione, separati da virgole, con il formato completo del percorso (es. images\image.paa) 完全なパスでスライドショーに使う画像一覧を入力してください。コンマで区別できます。(例: images\image.paa) 슬라이드 쇼에 쓰일 사진목록입니다, 쉼표로 구분됩니다, 경로설정을 정확히 하십시요. (예: 사진\사진.ppa) - 要做為幻燈片的圖片清單, 每個圖片請已逗號區隔, 並輸入完整路徑位址 (例如:images\image.paa). - 要做为幻灯片的图片清单, 每个图片请已逗号区隔, 并输入完整路径位址 (例如:images\image.paa). + 要做為幻燈片的圖片清單, 每個圖片請已逗號區隔, 並輸入完整路徑位址 (例如:images\image.paa). + 要做为幻灯片的图片清单, 每个图片请已逗号区隔, 并输入完整路径位址 (例如:images\image.paa). Interaction Names @@ -141,8 +141,8 @@ Interaktionsnamen インタラクション名 상호작용 명칭 - 互動鍵名稱 - 互动键名称 + 互動鍵名稱 + 互动键名称 List of names that will be used for interaction entries, separated by commas, in order of images. @@ -156,8 +156,8 @@ Liste aller Namen, die für Interaktionseinträge genutzt werden. Mit Kommata getrennt, in Reihenfolge der Bilder. 画像を操作できるインタラクション エントリ名の一覧を入力してください。コンマで区切り複数を指定できます。 상호작용 메세지에 쓰일 명칭입니다, 쉼표로 구분합니다, 이미지의 순서입니다. - 設定互動鍵切換圖片時的按鈕名稱, 多個按鈕請以逗號做區隔, 有多少圖片就輸入多少個按鈕, 以利切換圖片. - 设定互动键切换图片时的按钮名称, 多个按钮请以逗号做区隔, 有多少图片就输入多少个按钮, 以利切换图片. + 設定互動鍵切換圖片時的按鈕名稱, 多個按鈕請以逗號做區隔, 有多少圖片就輸入多少個按鈕, 以利切換圖片. + 设定互动键切换图片时的按钮名称, 多个按钮请以逗号做区隔, 有多少图片就输入多少个按钮, 以利切换图片. Set Name @@ -165,8 +165,8 @@ 名前設定 Définir le nom Imposta Nome - 設定名稱 - 设定名称 + 設定名稱 + 设定名称 Name that will be used for main interaction entry (to distinguish multiple slideshows). Default: "Slides" @@ -174,8 +174,8 @@ メイン インタラクション エントリで使われる名前を設定します。(複数のスライドショーを区別するため)。標準: "Slides" Un nom qui sera utilisé pour interagir avec plusieurs diaporamas. Par défaut : "Slides" Nome che sarà utilizzato per le principali interazioni (per distinguere le multiple diapositive). Predefinito: "Slides" - 設定該幻燈片的標題名稱 (用來區分多個不同標題的幻燈片.) 預設名稱: "幻燈片" - 设定该幻灯片的标题名称 (用来区分多个不同标题的幻灯片.) 预设名称: "幻灯片" + 設定該幻燈片的標題名稱 (用來區分多個不同標題的幻燈片.) 預設名稱: "幻燈片" + 设定该幻灯片的标题名称 (用来区分多个不同标题的幻灯片.) 预设名称: "幻灯片" Slide Duration @@ -190,8 +190,8 @@ Länge der Diavorführung pro Bild スライドの持続時間 슬라이드 지속시간 - 幻燈片顯示時間 - 幻灯片显示时间 + 幻燈片顯示時間 + 幻灯片显示时间 Duration of each slide. Default: 0 (Automatic Transitions Disabled) @@ -206,8 +206,8 @@ Länge der Diavorführung pro Bild. Standard: 0 (Automatischer Wechsel deaktiviert) 各スライドの持続時間。標準:0 (自動的な切り替えは無効) 매 슬라이드의 지속시간. 기본설정: 0 (자동 전환 비활성화) - 每張幻燈片顯示的時間. 預設:0 (自動換圖已禁用) - 每张幻灯片显示的时间. 预设:0 (自动换图已禁用) + 每張幻燈片顯示的時間. 預設:0 (自動換圖已禁用) + 每张幻灯片显示的时间. 预设:0 (自动换图已禁用) Slides @@ -222,8 +222,8 @@ Dias スライド 슬라이드 - 幻燈片 - 幻灯片 + 幻燈片 + 幻灯片 diff --git a/addons/spectator/stringtable.xml b/addons/spectator/stringtable.xml index 1dc7fe26557..ae65487d233 100644 --- a/addons/spectator/stringtable.xml +++ b/addons/spectator/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -6,8 +6,8 @@ ACE スペクテイター Spettatore ACE Spectateur ACE - ACE 旁观者 - ACE 旁觀者 + ACE 旁观者 + ACE 旁觀者 Spectator Settings @@ -21,8 +21,8 @@ Réglages de spectateur スペクテイター設定 관전자 설정 - 旁观者设定 - 旁觀者設定 + 旁观者设定 + 旁觀者設定 Configure how the spectator system will operate by default. @@ -36,8 +36,8 @@ Configure comment le système de spectateurs opère par défaut. スペクテイター システムが標準でどのように動作するか設定できます。 어떻게 관전자 시스템이 기본적으로 작동되는지 설정합니다 - 设定旁观者系统相关配置. - 設定旁觀者系統相關配置. + 设定旁观者系统相关配置. + 設定旁觀者系統相關配置. Unit filter @@ -51,8 +51,8 @@ Filtre d'unités ユニット フィルタ 인원 필터 - 单位过滤器 - 單位過濾器 + 单位过滤器 + 單位過濾器 Method of filtering spectatable units. @@ -66,8 +66,8 @@ Méthode de filtration des unités regardables. 観察できるユニットへのフィルタ設定ができます。 관전할 수 있는 인원을 고릅니다 - 过滤哪些单位可以使用旁观者系统. - 過濾哪些單位可以使用旁觀者系統. + 过滤哪些单位可以使用旁观者系统. + 過濾哪些單位可以使用旁觀者系統. No units @@ -81,8 +81,8 @@ Pas d'unités ユニットなし 인원 없음 - 无单位 - 無單位 + 无单位 + 無單位 Only players @@ -96,8 +96,8 @@ Joueurs seulements プレイヤのみ 플레이어만 - 只有玩家 - 只有玩家 + 只有玩家 + 只有玩家 Playable Units @@ -111,8 +111,8 @@ Unités jouables プレイ可能なユニットのみ 플레이 가능한 인원 - 可扮演单位 - 可扮演單位 + 可扮演单位 + 可扮演單位 All units @@ -126,8 +126,8 @@ Toutes les unités 全てのユニット 모든 인원 - 所有单位 - 所有單位 + 所有单位 + 所有單位 Side filter @@ -141,8 +141,8 @@ Filtre de faction 勢力フィルタ 진영 필터 - 阵营过滤器 - 陣營過濾器 + 阵营过滤器 + 陣營過濾器 Method of filtering spectatable sides. @@ -156,8 +156,8 @@ Méthode de filtration des factions regardables 観察できる勢力へのフィルタ設定ができます。 관전할 수 있는 진영을 고릅니다 - 过滤可旁观的阵营. - 過濾可旁觀的陣營. + 过滤可旁观的阵营. + 過濾可旁觀的陣營. Player side @@ -171,8 +171,8 @@ Faction du joueur プレイヤーと同じ勢力 플레이어 진영 - 玩家 - 玩家 + 玩家 + 玩家 Friendly sides @@ -186,8 +186,8 @@ Factions amies 友軍勢力 아군 진영 - 友军 - 友軍 + 友军 + 友軍 Hostile sides @@ -201,8 +201,8 @@ Factions hostiles 敵対勢力 적군 진영 - 敌方 - 敵方 + 敌方 + 敵方 All sides @@ -216,8 +216,8 @@ Toutes les factions 全ての勢力 모든 진영 - 所有阵营 - 所有陣營 + 所有阵营 + 所有陣營 Camera modes @@ -231,8 +231,8 @@ Mode de caméra カメラ モード 카메라 모드 - 摄影机模式 - 攝影機模式 + 摄影机模式 + 攝影機模式 Camera modes that can be used. @@ -246,8 +246,8 @@ Modes de caméra qui peuvent être utilisés カメラ モードを使えます。 사용할 수 있는 카메라 모드들 입니다 - 设定可使用的摄影机模式. - 設定可使用的攝影機模式. + 设定可使用的摄影机模式. + 設定可使用的攝影機模式. All @@ -261,8 +261,8 @@ Tous 全て 모두 - 所有 - 所有 + 所有 + 所有 Free only @@ -276,17 +276,17 @@ Libre seulement 自由視点のみ 오직 자유만 - 只有自由模式 - 只有自由模式 + 只有自由模式 + 只有自由模式 Internal only Erste Person //Bitte überprüfen! - Tylko wewnętrznaSomente internaТолько внутренняяPouze pohled z první osobySolo internaSolo internaInterne seulement一人称視点のみ오직 내부만只有第一人称只有第一人稱 + Tylko wewnętrznaSomente internaТолько внутренняяPouze pohled z první osobySolo internaSolo internaInterne seulement一人称視点のみ오직 내부만只有第一人称只有第一人稱 External only Dritte Person //Bitte überpfüfen! - Tylko zewnętrznaSomente externaТолько внешняяPouze pohled z třetí osobySolo externaSolo esternaExterne seulement三人称視点のみ오직 외부만只有第三人称只有第三人稱 + Tylko zewnętrznaSomente externaТолько внешняяPouze pohled z třetí osobySolo externaSolo esternaExterne seulement三人称視点のみ오직 외부만只有第三人称只有第三人稱 Internal and external Erste und dritte Person @@ -299,8 +299,8 @@ Interne et externe 一人称と三人称視点 외부 및 내부 - 第一和第三人称 - 第一和第三人稱 + 第一和第三人称 + 第一和第三人稱 Vision modes @@ -314,8 +314,8 @@ Modes de vision ビジョン モード 시야 모드 - 视觉模式 - 視覺模式 + 视觉模式 + 視覺模式 Vision modes that can be used. @@ -329,8 +329,8 @@ Modes de visions qui peuvent être utilisés ビジョン モードを使えます。 사용할 수 있는 시야 모드들 입니다 - 设定可使用的视觉模式. - 設定可使用的視覺模式. + 设定可使用的视觉模式. + 設定可使用的視覺模式. Night vision @@ -344,8 +344,8 @@ Vision nocturne 夜間暗視 야간투시경 - 夜视 - 夜視 + 夜视 + 夜視 Thermal imaging @@ -359,8 +359,8 @@ Vision thermique 熱源画像 열화상 - 热成像 - 熱成像 + 热成像 + 熱成像 @@ -375,8 +375,8 @@ Unités spectatrices スペクテイター ユニット 관전 인원 - 旁观者单位 - 旁觀者單位 + 旁观者单位 + 旁觀者單位 Spectator Controls @@ -390,8 +390,8 @@ Contrôles de spectateur スペクテイター操作 관전 조작 - 旁观者控制 - 旁觀者控制 + 旁观者控制 + 旁觀者控制 Free @@ -405,17 +405,17 @@ Libre 自由視点 자유 - 自由模式 - 自由模式 + 自由模式 + 自由模式 Internal Erste Person //Bitte überprüfen! - WewnętrznaInternaВнутренняяPohled z první osobyInternaInternaInterne一人称視点내부第一人称第一人稱 + WewnętrznaInternaВнутренняяPohled z první osobyInternaInternaInterne一人称視点내부第一人称第一人稱 External Dritte Person //Bitte überprüfen! - ZewnętrznaExternaВнешняяPohled z třetí osobyExternaEsternaExterne三人称視点외부第三人称第三人稱 + ZewnętrznaExternaВнешняяPohled z třetí osobyExternaEsternaExterne三人称視点외부第三人称第三人稱 Normal Normal @@ -428,8 +428,8 @@ Normale 通常 정상 - 正常 - 正常 + 正常 + 正常 Night @@ -443,8 +443,8 @@ Nuit 暗視装置 야간 - 夜视 - 夜視 + 夜视 + 夜視 Thermal @@ -458,8 +458,8 @@ Thermique 熱源画像 열상 - 热成像 - 熱成像 + 热成像 + 熱成像 @@ -474,8 +474,8 @@ Caméra libre 自由視点 자유 카메라 - 自由摄影机 - 自由攝影機 + 自由摄影机 + 自由攝影機 Camera Forward @@ -489,8 +489,8 @@ Caméra en avant カメラを前に 카메라 앞으로 - 摄影机往前 - 攝影機往前 + 摄影机往前 + 攝影機往前 Camera Backward @@ -504,8 +504,8 @@ Caméra en arrière カメラを後ろに 카메라 뒤로 - 摄影机往后 - 攝影機往後 + 摄影机往后 + 攝影機往後 Camera Left @@ -519,8 +519,8 @@ Caméra à gauche カメラを左に 카메라 왼쪽으로 - 摄影机往左 - 攝影機往左 + 摄影机往左 + 攝影機往左 Camera Right @@ -534,8 +534,8 @@ Caméra à droite カメラを右に 카메라 오른쪽으로 - 摄影机往右 - 攝影機往右 + 摄影机往右 + 攝影機往右 Camera Up @@ -549,8 +549,8 @@ Caméra en haut カメラを上に 카메라 위로 - 摄影机往上 - 攝影機往上 + 摄影机往上 + 攝影機往上 Camera Down @@ -564,8 +564,8 @@ Caméra en bas カメラを下に 카메라 아래로 - 摄影机往下 - 攝影機往下 + 摄影机往下 + 攝影機往下 Pan Camera @@ -579,8 +579,8 @@ Tourner la caméra カメラを振る 카메라 돌리기 - 平移摄影机 - 平移攝影機 + 平移摄影机 + 平移攝影機 Dolly Camera @@ -594,8 +594,8 @@ Bouger la caméra カメラを動かす 카메라 추적 - 移动摄影机 - 移動攝影機 + 移动摄影机 + 移動攝影機 Lock Camera to Target @@ -609,8 +609,8 @@ Verrouiller la caméra sur la cible カメラを目標に固定 목표에 카메라 고정 - 锁定摄影机观察单一目标 - 鎖定攝影機觀察單一目標 + 锁定摄影机观察单一目标 + 鎖定攝影機觀察單一目標 Speed Boost @@ -624,8 +624,8 @@ Boost de vitesse 速度の増加 속도 증가 - 速度提升 - 速度提升 + 速度提升 + 速度提升 Interface @@ -639,8 +639,8 @@ Interface インターフェイス 인터페이스 - 介面 - 介面 + 介面 + 介面 Toggle Interface @@ -654,8 +654,8 @@ Bascule de l'interface インターフェイスをトグル 인터페이스 토글 - 切换介面 - 切換介面 + 切换介面 + 切換介面 Toggle Unit Icons @@ -669,8 +669,8 @@ Bascule des icônes des unités ユニット アイコンをトグル 인원 아이콘 토글 - 切换单位图示 - 切換單位圖示 + 切换单位图示 + 切換單位圖示 Toggle Unit List @@ -684,8 +684,8 @@ Bascule de la liste des unités ユニット一覧をトグル 인원 목록 토글 - 切换单位名单 - 切換單位名單 + 切换单位名单 + 切換單位名單 Toggle Toolbar @@ -699,8 +699,8 @@ Bascule de la barre d'outils ツールバーをトグル 툴바 토글 - 切换工具栏 - 切換工具欄 + 切换工具栏 + 切換工具欄 Toggle Compass @@ -714,8 +714,8 @@ Basculer le compas 方位磁石をトグル 나침반 토글 - 切换指北针 - 切換指北針 + 切换指北针 + 切換指北針 Toggle Map @@ -729,8 +729,8 @@ Basculer la carte 地図をトグル 지도 토글 - 切换地图 - 切換地圖 + 切换地图 + 切換地圖 Toggle Help @@ -744,8 +744,8 @@ Basculer l'aide ヘルプをトグル 도움 토글 - 切换帮助 - 切換幫助 + 切换帮助 + 切換幫助 Camera Attributes @@ -759,8 +759,8 @@ Propriétés de la caméra カメラ高度 카메라 속성 - 摄影机属性 - 攝影機屬性 + 摄影机属性 + 攝影機屬性 Next Camera @@ -774,8 +774,8 @@ Caméra suivante 次のカメラ 다음 카메라 - 下个镜头 - 下個鏡頭 + 下个镜头 + 下個鏡頭 Previous Camera @@ -789,8 +789,8 @@ Caméra précédente 前のカメラ 이전 카메라 - 上个镜头 - 上個鏡頭 + 上个镜头 + 上個鏡頭 Next Unit @@ -804,8 +804,8 @@ Unité suivante 次のユニット 다음 인원 - 下个单位 - 下個單位 + 下个单位 + 下個單位 Previous Unit @@ -819,8 +819,8 @@ Unité précédente 前のユニット 이전 인원 - 上个单位 - 上個單位 + 上个单位 + 上個單位 Next Vision Mode @@ -834,8 +834,8 @@ Mode de vision suivant 次のビジョン モード 다음 시야 모드 - 下个视觉模式 - 下個視覺模式 + 下个视觉模式 + 下個視覺模式 Previous Vision Mode @@ -849,8 +849,8 @@ Mode de vision précédent 前のビジョン モード 이전 시야 모드 - 上个视觉模式 - 上個視覺模式 + 上个视觉模式 + 上個視覺模式 Adjust Zoom @@ -864,8 +864,8 @@ Ajuster le zoom 拡大倍率を調節 줌 조절 - 调整倍率 - 調整倍率 + 调整倍率 + 調整倍率 Adjust Speed @@ -879,8 +879,8 @@ Ajuster la vitesse 速度を調節 속도 조절 - 调整速度 - 調整速度 + 调整速度 + 調整速度 Increment Zoom @@ -894,8 +894,8 @@ Augmenter le zoom 拡大倍率を増やす 줌 증가 - 增加放大 - 增加放大 + 增加放大 + 增加放大 Increment Speed @@ -909,8 +909,8 @@ Augmenter la vitesse 速度を増やす 속도 증가 - 增加速度 - 增加速度 + 增加速度 + 增加速度 Reset Zoom @@ -924,8 +924,8 @@ RAZ zoom 拡大倍率を初期化 줌 초기화 - 重置缩放 - 重置縮放 + 重置缩放 + 重置縮放 Reset Speed @@ -939,8 +939,8 @@ RAZ vitesse 速度を初期化 속도 초기화 - 重置速度 - 重置速度 + 重置速度 + 重置速度 diff --git a/addons/spottingscope/stringtable.xml b/addons/spottingscope/stringtable.xml index cfdbaa05f75..fdf621a29e7 100644 --- a/addons/spottingscope/stringtable.xml +++ b/addons/spottingscope/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Luneta de observador 観測用スコープ 감적 망원경 - 观测镜 - 觀測鏡 + 观测镜 + 觀測鏡 Pick up Spotting Scope @@ -30,8 +30,8 @@ Pegar luneta de observador 観測用スコープを拾う 감적 망원경 줍기 - 捡起观测镜 - 撿起觀測鏡 + 捡起观测镜 + 撿起觀測鏡 Place Spotting Scope @@ -46,8 +46,8 @@ Colocar luneta de observador 観測用スコープを置く 감적 망원경 배치 - 放置观测镜 - 放置觀測鏡 + 放置观测镜 + 放置觀測鏡 diff --git a/addons/switchunits/stringtable.xml b/addons/switchunits/stringtable.xml index d33ab11bbbf..b601d7bd120 100644 --- a/addons/switchunits/stringtable.xml +++ b/addons/switchunits/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Trocado de unidade ユニットを切り替え 인원으로 전환 - 切换单位 - 切換單位 + 切换单位 + 切換單位 Trying to switch @@ -29,8 +29,8 @@ Попытка переключения 切り替えを試す 전환 시도중 - 尝试切换中 - 嘗試切換中 + 尝试切换中 + 嘗試切換中 This unit is too close to the enemy. @@ -45,8 +45,8 @@ Essa unidade está muito perto do inimigo. このユニットは敵に近すぎます。 그 인원은 적과 너무 가깝습니다. - 这单位太接近敌人了. - 這單位太接近敵人了. + 这单位太接近敌人了. + 這單位太接近敵人了. SwitchUnits System @@ -61,8 +61,8 @@ Sistema Cambio Unità SwitchUnits システム 인원전환 시스템 - 切换单位系统 - 切換單位系統 + 切换单位系统 + 切換單位系統 Switch to West? @@ -77,8 +77,8 @@ Cambia per BLUFOR? ウエストへ切り替えますか? 서방으로 전환합니까? - 切换至蓝方? - 切換至藍方? + 切换至蓝方? + 切換至藍方? Allow switching to west units? @@ -93,8 +93,8 @@ Consenti passaggio ad unità BLUFOR? ウエスト側ユニットへ切り替えられるようにしますか? 서방 인원으로 전환합니까? - 允许切换至蓝方? - 允許切換至藍方? + 允许切换至蓝方? + 允許切換至藍方? Switch to East? @@ -109,8 +109,8 @@ Cambia per OPFOR? イースト側へ切り替えますか? 동방으로 전환합니까? - 切换至红方? - 切換至紅方? + 切换至红方? + 切換至紅方? Allow switching to east units? @@ -125,8 +125,8 @@ Consenti passaggio ad unità OPFOR? イースト側ユニットへ切り替えられるようにしますか? 동방인원으로 전환합니까? - 允许切换至红方? - 允許切換至紅方? + 允许切换至红方? + 允許切換至紅方? Switch to Independent? @@ -141,8 +141,8 @@ Cambia per INDFOR? インデペンデントへ切り替えますか? 중립으로 전환합니까? - 切换至独立方? - 切換至獨立方? + 切换至独立方? + 切換至獨立方? Allow switching to independent units? @@ -157,8 +157,8 @@ Consenti passaggio ad unità INDFOR? インデペンデント側ユニットへ切り替えられるようにしますか? 중립 인원으로 전환합니까? - 允许切换至独立方? - 允許切換至獨立方? + 允许切换至独立方? + 允許切換至獨立方? Switch to Civilian? @@ -173,8 +173,8 @@ Cambia per Civili? シビリアンへ切り替えますか? 민간인으로 전환합니까? - 切换至平民方? - 切換至平民方? + 切换至平民方? + 切換至平民方? Allow switching to civilian units? @@ -189,8 +189,8 @@ Consenti passaggio ad unità civili? シビリアン側ユニットへ切り替えられるようにしますか? 민간인으로 전환하는걸 허가합니까? - 允许切换至平民方? - 允許切換至平民方? + 允许切换至平民方? + 允許切換至平民方? Enable Safe Zone? @@ -205,8 +205,8 @@ Abilita Zona Sicura? 安全地帯を有効にしますか? 안전 지대 활성화? - 启用安全区? - 啟用安全區? + 启用安全区? + 啟用安全區? Enable a safe zone around enemy units? Players can't switch to units inside of the safe zone. @@ -221,8 +221,8 @@ Abilita una zona sicura attorno ad unità nemiche? I giocatori non possono cambiare ad unità dentro la zona sicura. 敵ユニットから逃れる安全地帯を有効にしますか?プレイヤーは安全地帯内のユニットへ切り替えできません。 적 주위로 안전 지대를 활성화합니까? 안전 지대 내에서는 플레이어가 인원 전환을 할 수 없습니다. - 启用敌方周围安全地带? 玩家不能切换到安全区内的单位. - 啟用敵方周圍安全地帶? 玩家不能切換到安全區內的單位. + 启用敌方周围安全地带? 玩家不能切换到安全区内的单位. + 啟用敵方周圍安全地帶? 玩家不能切換到安全區內的單位. Safe Zone Radius @@ -237,8 +237,8 @@ Raggio Zona Sicura 安全地帯の半径 안전 지대 반경 - 安全区半径 - 安全區半徑 + 安全区半径 + 安全區半徑 The safe zone around players from a different team. Default: 200 @@ -253,8 +253,8 @@ La zona sicura attorno ai giocatori di un team diverso. Default: 200 別のチームへのプレイヤーの周囲にある安全地帯の範囲。標準:200 다른 진영으로 부터의 플레이어 안전 지대. 기본설정: 200 - 安全区的范围. 预设值:200 - 安全區的範圍. 預設值:200 + 安全区的范围. 预设值:200 + 安全區的範圍. 預設值:200 Module allows you to switch side during the game. @@ -268,8 +268,8 @@ El módulo permite a las unidades cambiar de bando durante el juego. モジュールはゲームにおいて、陣営の切り替えを有効にします。 이 모듈은 당신을 게임 중에 진영을 바꿀 수 있게 해줍니다. - 此模块允许你在游戏中切换至另一方. - 此模塊允許你在遊戲中切換至另一方. + 此模块允许你在游戏中切换至另一方. + 此模塊允許你在遊戲中切換至另一方. diff --git a/addons/tacticalladder/stringtable.xml b/addons/tacticalladder/stringtable.xml index af9ca6ef5f9..e94a292bc14 100644 --- a/addons/tacticalladder/stringtable.xml +++ b/addons/tacticalladder/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Escada telescópica タクティカル ラダー 로프 사다리 - 伸缩梯子 - 伸縮梯子 + 伸缩梯子 + 伸縮梯子 Deploy ladder @@ -30,8 +30,8 @@ Implantar escada ラダーを設置 사다리 배치 - 布署梯子 - 佈署梯子 + 布署梯子 + 佈署梯子 Drop ladder @@ -46,8 +46,8 @@ Derrubar escada ラダーを落とす 사다리 놓기 - 降下梯子 - 降下梯子 + 降下梯子 + 降下梯子 Extend @@ -61,8 +61,8 @@ Déployer 伸ばす 늘리기 - 伸长梯子 - 伸長梯子 + 伸长梯子 + 伸長梯子 +Ctrl tilt @@ -76,8 +76,8 @@ +Ctrl per inclinare +Ctrl で傾ける +컨트롤키 기울이기 - +Ctrl 倾斜 - +Ctrl 傾斜 + +Ctrl 倾斜 + +Ctrl 傾斜 Position ladder @@ -92,8 +92,8 @@ Posicionar escada ラダーの位置 사다리 위치 - 梯子位置 - 梯子位置 + 梯子位置 + 梯子位置 Pickup ladder @@ -108,8 +108,8 @@ Pegar escada ラダーを拾う 사다리 줍기 - 捡起梯子 - 撿起梯子 + 捡起梯子 + 撿起梯子 diff --git a/addons/tagging/stringtable.xml b/addons/tagging/stringtable.xml index 0af736e11be..4bf5707dcf4 100644 --- a/addons/tagging/stringtable.xml +++ b/addons/tagging/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -10,8 +10,8 @@ 뿌리기 Marquage Marcamento - 喷漆 - 噴漆 + 喷漆 + 噴漆 Configure how the tagging system will operate by default. @@ -22,8 +22,8 @@ 뿌리기 시스템의 기본사항을 설정합니다. Configure le fonctionnement par défaut du système de marquage. Configura quanto il sistema di marcamento agirà da se. - 定义喷漆系统预设设定. - 定義噴漆系統預設設定. + 定义喷漆系统预设设定. + 定義噴漆系統預設設定. Quick Tag @@ -34,8 +34,8 @@ 빠른 뿌리기 Marquage rapide Marcamento Rapido - 快速喷漆 - 快速噴漆 + 快速喷漆 + 快速噴漆 Action performed on main tag interaction point. @@ -46,8 +46,8 @@ 이 동작은 상호작용에서 뿌리기를 할 수 있게 해준다 Action réalisé au point de marquage principal. Azione eseguita sul punto di interazione dei tag principali. - 直接喷漆在互动选单瞄准的点上. - 直接噴漆在互動選單瞄準的點上. + 直接喷漆在互动选单瞄准的点上. + 直接噴漆在互動選單瞄準的點上. Last Used @@ -58,8 +58,8 @@ 최근 사용 Dernier utilisé Ultimo Usato - 上次最后使用 - 上次最後使用 + 上次最后使用 + 上次最後使用 Random X @@ -70,8 +70,8 @@ 무작위 X Aléatoire X Random X - 随机X标记 - 隨機X標記 + 随机X标记 + 隨機X標記 Random @@ -82,8 +82,8 @@ 무작위 Aléatoire Random - 随机 - 隨機 + 随机 + 隨機 Tag @@ -97,8 +97,8 @@ タグ 뿌리기 Tag - 喷漆 - 噴漆 + 喷漆 + 噴漆 X black @@ -112,8 +112,8 @@ Черный Х 黒の X印 검정 X - 黑色X标记 - 黑色X標記 + 黑色X标记 + 黑色X標記 X red @@ -127,8 +127,8 @@ Красный Х 赤の X印 빨간 X - 红色X标记 - 紅色X標記 + 红色X标记 + 紅色X標記 X green @@ -142,8 +142,8 @@ Зеленый Х 緑の X印 초록 X - 绿色X标记 - 綠色X標記 + 绿色X标记 + 綠色X標記 X blue @@ -157,8 +157,8 @@ Синий Х 青の X印 파랑 X - 蓝色X标记 - 藍色X標記 + 蓝色X标记 + 藍色X標記 Black spray paint @@ -172,8 +172,8 @@ Черный спрей 黒のスプレー缶 검정 스프레이 - 黑色喷漆 - 黑色噴漆 + 黑色喷漆 + 黑色噴漆 Red spray paint @@ -187,8 +187,8 @@ Красный спрей 赤のスプレー缶 빨강 스프레이 - 红色喷漆 - 紅色噴漆 + 红色喷漆 + 紅色噴漆 Green spray paint @@ -202,8 +202,8 @@ Зеленый спрей 緑のスプレー缶 초록 스프레이 - 绿色喷漆 - 綠色噴漆 + 绿色喷漆 + 綠色噴漆 Blue spray paint @@ -217,8 +217,8 @@ Синий спрей 青のスプレー缶 파랑 스프레이 - 蓝色喷漆 - 藍色噴漆 + 蓝色喷漆 + 藍色噴漆 A can of spray paint for tagging walls. @@ -232,8 +232,8 @@ Балончик спрея для рисования маркеров на стенах. スプレー缶は壁にタグ付できます。 벽에 뿌릴 수 있는 스프레이캔 입니다. - 喷漆可喷涂在墙壁上. - 噴漆可噴塗在牆壁上. + 喷漆可喷涂在墙壁上. + 噴漆可噴塗在牆壁上. diff --git a/addons/trenches/stringtable.xml b/addons/trenches/stringtable.xml index 3c21da92418..161e3eae399 100644 --- a/addons/trenches/stringtable.xml +++ b/addons/trenches/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,8 +13,8 @@ Саперная лопата シャベル 야전삽 - 战备锹 - 戰備鍬 + 战备锹 + 戰備鍬 Entrenching Tool @@ -28,8 +28,8 @@ Саперная лопата シャベル 야전용 삽. 군인들의 영원한 친구 - 战备锹 - 戰備鍬 + 战备锹 + 戰備鍬 Envelope - Small @@ -42,8 +42,8 @@ Окоп - Малый 塹壕 - 小型 참호 - 소형 - 掩体 - 小 - 掩體 - 小 + 掩体 - 小 + 掩體 - 小 Small Personal Trench @@ -57,8 +57,8 @@ Малый персональный окоп 小型の個人用塹壕 소형 개인참호 - 小型个人掩体 - 小型個人掩體 + 小型个人掩体 + 小型個人掩體 Dig Small Trench @@ -72,8 +72,8 @@ Вырыть малый окоп 小型塹壕を掘る 소형참호 파기 - 盖小掩体 - 蓋小掩體 + 盖小掩体 + 蓋小掩體 Envelope - Big @@ -86,8 +86,8 @@ Окоп - Большой 塹壕 - 大型 참호 - 대형 - 掩体 - 大 - 掩體 - 大 + 掩体 - 大 + 掩體 - 大 Large Personal Trench @@ -101,8 +101,8 @@ Большой персональный окоп 大型の塹壕を掘る 대형 참호 - 大型个人掩体 - 大型個人掩體 + 大型个人掩体 + 大型個人掩體 Dig Big Trench @@ -116,8 +116,8 @@ Вырыть большой окоп 大型の塹壕を掘る 대형참호 파기 - 盖大掩体 - 蓋大掩體 + 盖大掩体 + 蓋大掩體 Confirm Dig @@ -131,8 +131,8 @@ Копать ここに掘る 여기에 파기 - 确认开工 - 確認開工 + 确认开工 + 確認開工 Cancel Dig @@ -146,8 +146,8 @@ Отменить копание 掘るのを中止 취소하기 - 取消动作 - 取消動作 + 取消动作 + 取消動作 Rotate @@ -162,8 +162,8 @@ Bращать 回転 돌리기 - 旋转 - 旋轉 + 旋转 + 旋轉 Digging Trench @@ -177,8 +177,8 @@ Копание окопа 塹壕を掘っている 참호 파는중 - 正在盖掩体中 - 正在蓋掩體中 + 正在盖掩体中 + 正在蓋掩體中 Continue Digging Trench @@ -191,8 +191,8 @@ Graben fortsetzen 계속해서 참호파기 Continua a Scavare la Trincea - 继续盖掩体 - 繼續蓋掩體 + 继续盖掩体 + 繼續蓋掩體 Remove Trench @@ -205,8 +205,8 @@ Schützengraben entfernen 참호 제거 Rimuove Trincea - 移除掩体 - 移除掩體 + 移除掩体 + 移除掩體 Removing Trench @@ -219,8 +219,8 @@ Entferne Schützengraben 참호 제거중... Rimuovendo la Trincea - 移除掩体中 - 移除掩體中 + 移除掩体中 + 移除掩體中 diff --git a/addons/tripod/stringtable.xml b/addons/tripod/stringtable.xml index 1647e397460..a63bda06b01 100644 --- a/addons/tripod/stringtable.xml +++ b/addons/tripod/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Kit SSWT SSWT キット SSWT 키트 - 狙击手专用三脚架 - 狙擊手專用三腳架 + 狙击手专用三脚架 + 狙擊手專用三腳架 Place SSWT Kit @@ -30,8 +30,8 @@ Colocar kit SSWT SSWT キットを置く SSWT 키트 배치 - 放置狙击手专用三脚架 - 放置狙擊手專用三腳架 + 放置狙击手专用三脚架 + 放置狙擊手專用三腳架 Pick up SSWT Kit @@ -46,8 +46,8 @@ Prendi Kit SSWT SSWT キットを拾う SSWT 키트 줍기 - 捡起狙击手专用三脚架 - 撿起狙擊手專用三腳架 + 捡起狙击手专用三脚架 + 撿起狙擊手專用三腳架 Adjust SSWT Kit @@ -62,8 +62,8 @@ Aggiusta Kit SSWT SSWT キットを調節 SSWT 키트 조절 - 调整狙击手专用三脚架 - 調整狙擊手專用三腳架 + 调整狙击手专用三脚架 + 調整狙擊手專用三腳架 Done @@ -78,8 +78,8 @@ Fatto 完了 완료 - 完成 - 完成 + 完成 + 完成 adjust @@ -94,8 +94,8 @@ aggiusta 調節 조절 - 调整 - 調整 + 调整 + 調整 diff --git a/addons/ui/stringtable.xml b/addons/ui/stringtable.xml index 4d2c24c645b..6f3a3ecc2dd 100644 --- a/addons/ui/stringtable.xml +++ b/addons/ui/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -12,8 +12,8 @@ Benutzeroberfläche 사용자 인터페이스 Interfaccia Utente - 使用者介面 - 使用者介面 + 使用者介面 + 使用者介面 User Interface @@ -26,8 +26,8 @@ Benutzeroberfläche 사용자 인터페이스 Interfaccia Utente - 使用者介面 - 使用者介面 + 使用者介面 + 使用者介面 This module allows toggling visible user interface parts. @@ -39,8 +39,8 @@ Dieses Modul erlaubt es, Teile der Benutzeroberfläche (UI) an- oder auszuschalten. 이 모듈은 사용자 인터페이스의 부분을 토글하는것을 가능케 해줍니다. Questo modulo consente di commutare parti di interfaccia utente visibili. - 此模块允许你调整使用者介面的任何一个元件. - 此模塊允許你調整使用者介面的任何一個元件. + 此模块允许你调整使用者介面的任何一个元件. + 此模塊允許你調整使用者介面的任何一個元件. Allow Selective UI @@ -53,8 +53,8 @@ Erlaube selektives UI 선택적 사용자 인터페이스 허가 Permette l'UI Selettiva - 允许调整使用者介面 - 允許調整使用者介面 + 允许调整使用者介面 + 允許調整使用者介面 Allow client to modify their UI. @@ -67,8 +67,8 @@ Erlaube Clients, ihr UI zu modifizieren. 클라이언트가 선택적 사용자 인터페이스 사용하는것을 허가합니다 Permette al client di modificare la propria UI. - 允许客户端自行调整使用者介面. - 允許客戶端自行調整使用者介面. + 允许客户端自行调整使用者介面. + 允許客戶端自行調整使用者介面. Soldier/Vehicle/Weapon Information @@ -81,8 +81,8 @@ Soldat/Fahrzeug/Waffe Information 병사/차량/무기 정보 Informazioni Soldato/Veicolo/Arma - 士兵/载具/武器资讯栏 - 士兵/載具/武器資訊欄 + 士兵/载具/武器资讯栏 + 士兵/載具/武器資訊欄 Vehicle Radar @@ -95,8 +95,8 @@ Fahrzeugradar 차량 레이더 Rada Veicolo - 载具雷达 - 載具雷達 + 载具雷达 + 載具雷達 Vehicle Compass @@ -109,8 +109,8 @@ Fahrzeugkompass 차량 나침반 Bussola Veicolo - 载具指北针 - 載具指北針 + 载具指北针 + 載具指北針 Command Menu @@ -123,8 +123,8 @@ Kommandomenü 지휘 메뉴 Menù di Comando - 指挥选单 - 指揮選單 + 指挥选单 + 指揮選單 Group Bar @@ -137,8 +137,8 @@ Gruppenleiste 그룹 막대 Barra del Gruppo - 小队状态栏 - 小隊狀態欄 + 小队状态栏 + 小隊狀態欄 Weapon Name @@ -151,8 +151,8 @@ Waffenname 무기 이름 Nome Arma - 武器名称 - 武器名稱 + 武器名称 + 武器名稱 Weapon Name Background @@ -165,8 +165,8 @@ Waffenname Hintergrund 무기 이름 배경 Nome Sfondo Arma - 武器名称背景 - 武器名稱背景 + 武器名称背景 + 武器名稱背景 Firing Mode @@ -179,8 +179,8 @@ Feuermodus 사격 모드 Modalità di Fuoco - 射击模式 - 射擊模式 + 射击模式 + 射擊模式 Ammo Type @@ -193,8 +193,8 @@ Munitionstyp 탄종 Tipo Munizioni - 弹药类型 - 彈藥類型 + 弹药类型 + 彈藥類型 Ammo Count @@ -207,8 +207,8 @@ Munitionsanzahl 탄약수 Contatore Munizioni - 弹药数量 - 彈藥數量 + 弹药数量 + 彈藥數量 Magazine Count @@ -221,8 +221,8 @@ Magazinanzahl 탄창수 Contatore Caricatore - 弹匣数量 - 彈匣數量 + 弹匣数量 + 彈匣數量 Throwable Type @@ -235,8 +235,8 @@ Wurfobjekt-Typ 투척물 종류 Tipo Lanciabile - 投掷物类型 - 投擲物類型 + 投掷物类型 + 投擲物類型 Throwable Count @@ -249,8 +249,8 @@ Wurfobjekt-Anzahl 투척물 개수 Contatore Lanciabili - 投掷物数量 - 投擲物數量 + 投掷物数量 + 投擲物數量 Zeroing @@ -263,8 +263,8 @@ Nullung 영점 Azzeramento - 归零距离 - 歸零距離 + 归零距离 + 歸零距離 Weapon Lower Info Background @@ -276,8 +276,8 @@ Hintergrund der unteren Waffen-Info-Leiste 무기 상세 정보 배경 Informazioni Sfondo Arma Bassa - 武器底部资讯栏背景 - 武器底部資訊欄背景 + 武器底部资讯栏背景 + 武器底部資訊欄背景 Stance @@ -290,8 +290,8 @@ Haltung 자세 Postura - 姿态 - 姿態 + 姿态 + 姿態 Stamina Bar @@ -304,8 +304,8 @@ Ausdaueranzeige 체력 막대 Barra Stamina - 体力栏 - 體力欄 + 体力栏 + 體力欄 Gunner Weapon Name @@ -317,8 +317,8 @@ Richtschütze Waffenname 사수 무기 명칭 Nome Arma Artigliere - 炮手武器名称 - 砲手武器名稱 + 炮手武器名称 + 砲手武器名稱 Gunner Weapon Name Background @@ -330,8 +330,8 @@ Richtschütze Waffenname Hintergrund 사수 무기 명칭 배경 Nome Sfondo Arma Artigliere - 炮手武器名称背景 - 砲手武器名稱背景 + 炮手武器名称背景 + 砲手武器名稱背景 Gunner Firing Mode @@ -343,8 +343,8 @@ Richtschütze Feuermodus 사수 사격 모드 Modalità di Fuoco Artigliere - 炮手射击模式 - 砲手射擊模式 + 炮手射击模式 + 砲手射擊模式 Gunner Ammo Type @@ -356,8 +356,8 @@ Richtschütze Munitionstyp 사수 탄종 Tipo Munizioni Artigliere - 炮手弹药类型 - 砲手彈藥類型 + 炮手弹药类型 + 砲手彈藥類型 Gunner Ammo Count @@ -369,8 +369,8 @@ Richtschütze Munitionsanzahl 사수 탄약 수량 Contatore Munizioni Artigliere - 炮手弹药数量 - 砲手彈藥數量 + 炮手弹药数量 + 砲手彈藥數量 Gunner Magazine Count @@ -382,8 +382,8 @@ Richtschütze Magazinanzahl 사수 탄창 수량 Contatore Caricatore Artigliere - 炮手弹匣数量 - 砲手彈匣數量 + 炮手弹匣数量 + 砲手彈匣數量 Gunner Launchable Type @@ -395,8 +395,8 @@ Richtschütze Raketentyp 사수 발사체 종류 Tipo Lanciabile Artigliere - 炮手发射物类型 - 砲手發射物類型 + 炮手发射物类型 + 砲手發射物類型 Gunner Launchable Count @@ -408,8 +408,8 @@ Richtschütze Raketenanzahl 사수 발사체 수량 Contatore Lanciabili Artigliere - 炮手发射物数量 - 砲手發射物數量 + 炮手发射物数量 + 砲手發射物數量 Gunner Zeroing @@ -421,8 +421,8 @@ Richtschütze Nullung 사수 영점 Azzeramento Artigliere - 炮手归零距离 - 砲手歸零距離 + 炮手归零距离 + 砲手歸零距離 Gunner Weapon Lower Info Background @@ -434,8 +434,8 @@ Hintergrund der unteren Waffen-Info-Leiste (Richtschütze) 사수 무기 상세 정보 배경 Informazioni Sfondo Arma Artigliere Bassa - 炮手武器底部资讯栏背景 - 砲手武器底部資訊欄背景 + 炮手武器底部资讯栏背景 + 砲手武器底部資訊欄背景 Vehicle Name @@ -448,8 +448,8 @@ Fahrzeugname 차량 명칭 Nome Veicolo - 载具名称 - 載具名稱 + 载具名称 + 載具名稱 Vehicle Name Background @@ -462,8 +462,8 @@ Fahrzeugname Hintergrund 차량 명칭 배경 Nome Sfondo Veicolo - 载具名称背景 - 載具名稱背景 + 载具名称背景 + 載具名稱背景 Vehicle Fuel Bar @@ -476,8 +476,8 @@ Fahrzeug-Treibstoffleiste 차량 연료 막대 Barra Carburante Veicolo - 载具燃料栏 - 載具燃料欄 + 载具燃料栏 + 載具燃料欄 Vehicle Speed @@ -490,8 +490,8 @@ Fahrzeuggeschwindigkeit 차량 속도 Velocità Veicolo - 载具速度 - 載具速度 + 载具速度 + 載具速度 Vehicle Altitude @@ -504,8 +504,8 @@ Fahrzeughöhe 차량 고도 Altitudine Veicolo - 载具高度 - 載具高度 + 载具高度 + 載具高度 Vehicle Damage @@ -518,8 +518,8 @@ Fahrzeugschaden 차량 피해 Danno Veicolo - 载具伤害 - 載具傷害 + 载具伤害 + 載具傷害 Vehicle Info Background @@ -532,8 +532,8 @@ Fahrzeug Info Hintergrund 차량 정보 배경 Informazioni Sfondo Veicolo - 载具资讯栏背景 - 載具資訊欄背景 + 载具资讯栏背景 + 載具資訊欄背景 Requires Soldier/Vehicle/Weapon Information. @@ -546,8 +546,8 @@ Benötigt Soldat/Fahrzeug/Waffe Information. 병사/차량/무기의 정보가 필요합니다. Richiede informazione Soldato/Veicolo/Arma. - 需要士兵/载具/武器的资讯. - 需要士兵/載具/武器的資訊. + 需要士兵/载具/武器的资讯. + 需要士兵/載具/武器的資訊. Modifying User Interface is disabled. @@ -560,8 +560,8 @@ Die Modifizierung des UI ist deaktiviert. 사용자 인터페이스 변경이 비활성화 되어있습니다. La modifica dell'Interfaccia Utente è disabilitata. - 自定使用者介面功能已关闭. - 自定使用者介面功能已關閉. + 自定使用者介面功能已关闭. + 自定使用者介面功能已關閉. Cannot modify a forced User Interface element. @@ -573,8 +573,8 @@ Gesperrte UI-Elemente können nicht modifiziert werden. 강제 사용자 인터페이스는 변경하실 수 없습니다. Impossibile modificare un elemento forzato d' Interfaccia Utente. - 无法编辑已被锁定的使用者介面元件. - 無法編輯已被鎖定的使用者介面元件. + 无法编辑已被锁定的使用者介面元件. + 無法編輯已被鎖定的使用者介面元件. diff --git a/addons/vector/stringtable.xml b/addons/vector/stringtable.xml index 278938e1b34..76feaa2b5cd 100644 --- a/addons/vector/stringtable.xml +++ b/addons/vector/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Vector 21 Nite ベクター 21 ナイト Vector 21 Nite - Vector 21 Nite - Vector 21 Nite + Vector 21 Nite + Vector 21 Nite Vector 21 @@ -30,8 +30,8 @@ Vector 21 ベクター 21 Vector 21 - Vector 21 - Vector 21 + Vector 21 + Vector 21 Rangefinder @@ -46,8 +46,8 @@ Дальномер 測距機器 거리측정기 - 测距仪 - 測距儀 + 测距仪 + 測距儀 Vector - Azimuth Key @@ -62,8 +62,8 @@ Vector – Азимут ベクター - 方位角キー Vector - 방위각 키 - Vector - 方位按键 - Vector - 方位按鍵 + Vector - 方位按键 + Vector - 方位按鍵 Vector - Distance Key @@ -78,8 +78,8 @@ Vector – Расстояние ベクター - 距離キー Vector - 거리 키 - Vector - 距离按键 - Vector - 距離按鍵 + Vector - 距离按键 + Vector - 距離按鍵 diff --git a/addons/vehiclelock/stringtable.xml b/addons/vehiclelock/stringtable.xml index 245f318e200..7b39b616de6 100644 --- a/addons/vehiclelock/stringtable.xml +++ b/addons/vehiclelock/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Destravar veículo 車両の鍵を開ける 차량 잠금열기 - 载具解锁 - 載具解鎖 + 载具解锁 + 載具解鎖 Lock Vehicle @@ -30,8 +30,8 @@ Travar Veículo 車両を施錠 차량 잠그기 - 载具上锁 - 載具上鎖 + 载具上锁 + 載具上鎖 Lockpick Vehicle @@ -46,8 +46,8 @@ Usar mixa no Veículo 鍵をこじ開ける 차량 문따기 - 解锁载具 - 解鎖載具 + 解锁载具 + 解鎖載具 Picking Lock... @@ -62,8 +62,8 @@ Usando Mixa... 鍵をこじ開けている・・・ 문따는중... - 解锁中... - 解鎖中... + 解锁中... + 解鎖中... A custom key that will open a specific vehicle. @@ -78,8 +78,8 @@ Uma chave específica que abre um veículo específico. カスタム キーは特定車両を開けられます。 특정 차량을 여는 특수 열쇠 - 使用指定的钥匙来开启特定的载具. - 使用指定的鑰匙來開啟特定的載具. + 使用指定的钥匙来开启特定的载具. + 使用指定的鑰匙來開啟特定的載具. A Master Key will open any lock, no matter what! @@ -94,8 +94,8 @@ Uma chave mestre irá abrir qualquer fechadura, não importa qual! マスター キーは全ての鍵を開けられます。 어떤 차량도 열 수 있는 마스터키 입니다! - 万用解锁钥匙, 能解锁任何载具. - 萬用解鎖鑰匙, 能解鎖任何載具. + 万用解锁钥匙, 能解锁任何载具. + 萬用解鎖鑰匙, 能解鎖任何載具. A lockpick set that can pick the locks of most vehicles. @@ -110,8 +110,8 @@ Um set de chave mixas que pode abrir a maioria dos veículos. ピッキング ツールでは多くの車両をこじ開けられます。 거의 모든 차량을 열 수 있게 해주는 해정도구 모음입니다. - 一组解锁钥匙 (可解锁大部份载具). - 一組解鎖鑰匙 (可解鎖大部份載具). + 一组解锁钥匙 (可解锁大部份载具). + 一組解鎖鑰匙 (可解鎖大部份載具). A key that should open most WEST vehicles. @@ -126,8 +126,8 @@ Uma chave que abre a maioria dos veículos ocidentais このキーは多くの WEST 車両を開けられます。 거의 모든 서방진영 차량을 여는 열쇠입니다. - 一组解锁钥匙 (可解锁大部份蓝方载具). - 一組解鎖鑰匙 (可解鎖大部份藍方載具). + 一组解锁钥匙 (可解锁大部份蓝方载具). + 一組解鎖鑰匙 (可解鎖大部份藍方載具). A key that should open most EAST vehicle. @@ -142,8 +142,8 @@ Uma chave que abre a maioria dos veículos orientais このキーは多くの EAST 車両を開けられます。 거의 모든 동방진영 차량을 여는 열쇠입니다. - 一组解锁钥匙 (可解锁大部份红方载具). - 一組解鎖鑰匙 (可解鎖大部份紅方載具). + 一组解锁钥匙 (可解锁大部份红方载具). + 一組解鎖鑰匙 (可解鎖大部份紅方載具). A key that should open most INDEP vehicle. @@ -158,8 +158,8 @@ Uma chave que abre a maioria dos veículos independentes このキーは多くの INDEP 車両を開けられます。 거의 모든 중립진영 차량을 여는 열쇠입니다. - 一组解锁钥匙 (可解锁大部份独立方载具). - 一組解鎖鑰匙 (可解鎖大部份獨立方載具). + 一组解锁钥匙 (可解锁大部份独立方载具). + 一組解鎖鑰匙 (可解鎖大部份獨立方載具). A key that should open most CIV vehicle. @@ -174,8 +174,8 @@ Uma chave que abre a maioria dos veículos civis. このキーは多くの CIV 車両を開けられます。 거의 모든 민간인 차량을 여는 열쇠입니다 - 一组解锁钥匙 (可解锁大部份平民载具). - 一組解鎖鑰匙 (可解鎖大部份平民載具). + 一组解锁钥匙 (可解锁大部份平民载具). + 一組解鎖鑰匙 (可解鎖大部份平民載具). Vehicle Lock Setup @@ -190,8 +190,8 @@ Impostazioni Blocco Veicolo 車両の施錠の設定 차량 잠금 설정 - 载具上锁设置 - 載具上鎖設置 + 载具上锁设置 + 載具上鎖設置 Lock Vehicle Inventory @@ -206,8 +206,8 @@ Blocca Inventario Veicolo 施錠されている車両のインベントリ 차량 소지품 잠금 - 上锁载具的车箱 - 上鎖載具的車箱 + 上锁载具的车箱 + 上鎖載具的車箱 Locks the inventory of locked vehicles @@ -222,8 +222,8 @@ Blocca l'inventario di un veicolo bloccato 施錠されている車両の、開けないインベントリ 잠긴 차량의 소지품을 뒤지지못하게 합니다. - 上锁载具的车箱, 使玩家不能拿取/查看载具内的装备 - 上鎖載具的車箱, 使玩家不能拿取/查看載具內的裝備 + 上锁载具的车箱, 使玩家不能拿取/查看载具内的装备 + 上鎖載具的車箱, 使玩家不能拿取/查看載具內的裝備 Vehicle Starting Lock State @@ -238,8 +238,8 @@ Stato Iniziale del Blocco per Veicoli 開始時における車両の鍵の状態 시작시 차량 잠금 상태 - 载具初始上锁状态 - 載具初始上鎖狀態 + 载具初始上锁状态 + 載具初始上鎖狀態 Set lock state for all vehicles (removes ambiguous lock states) @@ -254,8 +254,8 @@ Imposta lo stato di blocco per tutti i veicoli (rimuove stati di blocco ambigui) 全車両への鍵の状態を設定します。(あいまいな鍵の状態を削除) 모든 차량의 잠금 상태를 정합니다. (애매한 잠금 상태는 모두 없앱니다.) - 设定所有载具的初始上锁状态 (移除不明确的锁定状态) - 設定所有載具的初始上鎖狀態 (移除不明確的鎖定狀態) + 设定所有载具的初始上锁状态 (移除不明确的锁定状态) + 設定所有載具的初始上鎖狀態 (移除不明確的鎖定狀態) As Is @@ -270,8 +270,8 @@ Com'è そのまま 그대로 - 无变化 - 無變化 + 无变化 + 無變化 Locked @@ -286,8 +286,8 @@ Bloccato 施錠ずみ 잠김 - 上锁 - 上鎖 + 上锁 + 上鎖 Unlocked @@ -302,8 +302,8 @@ Sbloccato 開錠ずみ 열림 - 解锁 - 解鎖 + 解锁 + 解鎖 Default Lockpick Strength @@ -318,8 +318,8 @@ Durabilità Default del Grimaldello ピッキング ツールの標準の有効度 기본 해정도구 설정 - 预设开锁能力 - 預設開鎖能力 + 预设开锁能力 + 預設開鎖能力 Default Time to lockpick (in seconds). Default: 10 @@ -334,8 +334,8 @@ Tempo Default richiesto per forzare serrature (in secondi). Default: 10 ピッキング ツールに標準の時間を設定。(秒) 標準:10 해정을 위해 들이는 기본시간입니다(초 단위). 기본설정: 10 - 开锁时间(秒). 预设:10 - 開鎖時間(秒). 預設:10 + 开锁时间(秒). 预设:10 + 開鎖時間(秒). 預設:10 Settings for lockpick strength and initial vehicle lock state. Removes ambiguous lock states. @@ -350,8 +350,8 @@ Impostazioni per resistenza iniziale delle serrature e stato di blocco dei veicoli. Rimuove stati di blocco ambigui. ピッキング ツールの強さと車両の鍵の初期状態を設定できます。あいまいな鍵の状態を削除します。 해정도구 설정과 시작시 차량의 잠금 상태 그리고 애매한 잠금 상태를 지우는 설정입니다. - 设定开锁能力和初始载具上锁状态. 移除不明确的锁定状态. - 設定開鎖能力和初始載具上鎖狀態. 移除不明確的鎖定狀態. + 设定开锁能力和初始载具上锁状态. 移除不明确的锁定状态. + 設定開鎖能力和初始載具上鎖狀態. 移除不明確的鎖定狀態. Vehicle Key Assign @@ -366,8 +366,8 @@ Assegna Chiavi Veicoli 車両の鍵を割り当て 차량 열쇠 등록 - 指定载具钥匙 - 指定載具鑰匙 + 指定载具钥匙 + 指定載具鑰匙 Sync with vehicles and players. Will handout custom keys to players for every synced vehicle. Only valid for objects present at mission start. @@ -382,8 +382,8 @@ Sincronizza con veicoli e giocatori. Distribuirà chiavi ai giocatori per ogni veicolo sincronizzato. Valido solo per oggetti presenti ad inizio missione. 車両とプレイヤへ同期します。プレイヤへ同期された車両のカスタム キーを作ります。これはミッション開始時に作成されたオブジェクトでのみ有効です。 차량과 플레이어에게 동기화됩니다. 동기화된 차량은 플레이어에게 열쇠를 지급합니다. 오직 미션 시작시에 생긴 물체들만 유효합니다. - 可同步在载具与玩家身上. 将使被同步的玩家掌握其他被同步载具的钥匙. 此模块只会在任务刚开始时触发. - 可同步在載具與玩家身上. 將使被同步的玩家掌握其他被同步載具的鑰匙. 此模塊只會在任務剛開始時觸發. + 可同步在载具与玩家身上. 将使被同步的玩家掌握其他被同步载具的钥匙. 此模块只会在任务刚开始时触发. + 可同步在載具與玩家身上. 將使被同步的玩家掌握其他被同步載具的鑰匙. 此模塊只會在任務剛開始時觸發. diff --git a/addons/vehicles/stringtable.xml b/addons/vehicles/stringtable.xml index b50666e8324..36ff7f99e6f 100644 --- a/addons/vehicles/stringtable.xml +++ b/addons/vehicles/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Limitatore Attivo 速度制限を有効化 속도 제한기 켜짐 - 启用速度限制 - 啟用速度限制 + 启用速度限制 + 啟用速度限制 Speed Limiter off @@ -30,8 +30,8 @@ Limitatore Non Attivo 速度制限を無効化 속도 제한기 꺼짐 - 停用速度限制 - 停用速度限制 + 停用速度限制 + 停用速度限制 Speed Limiter @@ -46,8 +46,8 @@ Limitatore di Velocità 速度制限 속도 제한기 - 速度限制器 - 速度限制器 + 速度限制器 + 速度限制器 diff --git a/addons/viewdistance/stringtable.xml b/addons/viewdistance/stringtable.xml index 5d9560338ae..99857074221 100644 --- a/addons/viewdistance/stringtable.xml +++ b/addons/viewdistance/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Limitatore Distanza Visiva 視界距離の制限 시야 제한기 - 视野距离限制器 - 視野距離限制器 + 视野距离限制器 + 視野距離限制器 Allows limiting maximum view distance that can be set by players. @@ -30,8 +30,8 @@ Consente di limitare la distanza visiva massima che può essere impostata dai giocatori. プレイヤーへ最大の視界距離を制限できます。 플레이어가 볼 수 있는 최대 시야를 제한합니다. - 允许玩家最大的可视距离. - 允許玩家最大的可視距離. + 允许玩家最大的可视距离. + 允許玩家最大的可視距離. Enable ACE viewdistance @@ -46,8 +46,8 @@ Abilita distanza visiva ACE ACE 視界距離を有効化 ACE 시야 활성화 - 启用ACE视距 - 啟用ACE視距 + 启用ACE视距 + 啟用ACE視距 Enables ACE viewdistance @@ -62,8 +62,8 @@ Abilita distanza visiva ACE ACE 視界距離を有効化 ACE 시야 활성화 - 启用ACE视距 - 啟用ACE視距 + 启用ACE视距 + 啟用ACE視距 View Distance Limit @@ -78,8 +78,8 @@ Limite Distanza Visiva 視界距離の制限 시야 제한기 - 视野距离限制 - 視野距離限制 + 视野距离限制 + 視野距離限制 Sets the limit for how high clients can raise their view distance (up to 10000) @@ -94,8 +94,8 @@ Imposta il limite massimo a cui i client possono alzare la propria distanza visiva (massimo 10000) 各クライアントが最大まで設定できる視界距離を設定します。(最大 10000) 클라이언트가 최대 얼마나 멀리 볼 수 있는지 제한을 둡니다 (10000 까지 가능) - 设定客户端最高可显示的视野距离 (最高至10000) - 設定客戶端最高可顯示的視野距離 (最高至10000) + 设定客户端最高可显示的视野距离 (最高至10000) + 設定客戶端最高可顯示的視野距離 (最高至10000) Limit for client's view distance set here and can overridden by module @@ -110,8 +110,8 @@ Limite per la distanza visiva del client impostato qui e può essere scavalcato dal modulo クライアントへの視界距離の設定や、それをモジュールにより上書きできます 클라이언트의 시야를 이 모듈로 치환할 수 있습니다. - 玩家的视距限制可在此设定, 也可透过模块改写 - 玩家的視距限制可在此設定, 也可透過模塊改寫 + 玩家的视距限制可在此设定, 也可透过模块改写 + 玩家的視距限制可在此設定, 也可透過模塊改寫 Client View Distance (On Foot) @@ -126,8 +126,8 @@ Distanza Visiva Client (a Piedi) クライアント側視界距離 (地上) 클라이언트 시야 (보병) - 客户端视野距离 (步行) - 客戶端視野距離 (步行) + 客户端视野距离 (步行) + 客戶端視野距離 (步行) Changes in game view distance when the player is on foot. @@ -142,8 +142,8 @@ Cambia la distanza visiva in gioco quando il giocatore è a piedi. プレイヤーが地上にいる時の視界距離を変更します。 플레이어가 보병일 경우의 시야를 바꿀 수 있습니다. - 改变玩家步行时的视野距离. - 改變玩家步行時的視野距離. + 改变玩家步行时的视野距离. + 改變玩家步行時的視野距離. Client View Distance (Land Vehicle) @@ -158,8 +158,8 @@ Distanza Visiva Client (Veicolo Terrestre) クライアント側視界距離 (車両) 클라이언트 시야 (차량) - 客户端视野距离 (地面载具) - 客戶端視野距離 (地面載具) + 客户端视野距离 (地面载具) + 客戶端視野距離 (地面載具) Changes in game view distance when the player is in a land vehicle. @@ -174,8 +174,8 @@ Cambia la distanza visiva in gioco quando il giocatore è in un veicolo terrestre. プレイヤーが車両の時の視界距離を変更します。 플레이어가 차량 내부일 경우의 시야를 바꿀 수 있습니다. - 改变玩家于地面载具内时的视野距离. - 改變玩家於地面載具內時的視野距離. + 改变玩家于地面载具内时的视野距离. + 改變玩家於地面載具內時的視野距離. Client View Distance (Air Vehicle) @@ -190,8 +190,8 @@ Distanza Visiva Client (Veicoli d'Aria) クライアント側視界距離 (航空機) 클라이언트 시야 (항공기) - 客户端视野距离 (空中载具) - 客戶端視野距離 (空中載具) + 客户端视野距离 (空中载具) + 客戶端視野距離 (空中載具) Changes in game view distance when the player is in an air vehicle. @@ -206,8 +206,8 @@ Cambia la distanza visiva in gioco quando il giocatore è in un mezzo aereo. プレイヤーが航空機に乗っている時の視界距離を変更します。 플레이어가 항공기 내부일 경우의 시야를 바꿀 수 있습니다. - 改变玩家于空中载具内时的视野距离. - 改變玩家於空中載具內時的視野距離. + 改变玩家于空中载具内时的视野距离. + 改變玩家於空中載具內時的視野距離. Dynamic Object View Distance @@ -222,8 +222,8 @@ Distanza Visiva Oggetti Dinamica 動的なオブジェクトの描画距離 동적 물체 시야 - 动态物件的视野距离 - 動態物件的視野距離 + 动态物件的视野距离 + 動態物件的視野距離 Sets the object view distance as a coefficient of the view distance or based on field of view. FoV Based's lowest and highest value is the value which is set when enabling the option. @@ -238,8 +238,8 @@ Imposta la distanza visiva degli oggetti come un coefficiente basato sulla distanza visiva oppure basato sul campo visivo. 視野角を元にするか、視界距離によるオブジェクト描画距離を決定します。視野角を元にするオプションを有効化した場合、視野角により最低と最高値が変動します。 설정된 시야 혹은 시계(FoV)에 계수를 적용해 물체 시야를 적용합니다. 시계를 바탕으로 하는 옵션을 활성화할 경우 시계에 의한 최저와 최고치가 변동됩니다. - 设定物件可被观察的距离, 透过视野距离或是视野角度来决定. - 設定物件可被觀察的距離, 透過視野距離或是視野角度來決定. + 设定物件可被观察的距离, 透过视野距离或是视野角度来决定. + 設定物件可被觀察的距離, 透過視野距離或是視野角度來決定. Off @@ -254,8 +254,8 @@ Disabilitato 無効 끄기 - 关闭 - 關閉 + 关闭 + 關閉 Very Low @@ -270,8 +270,8 @@ Molto Basso 最低 매우 낮음 - 非常低 - 非常低 + 非常低 + 非常低 Low @@ -286,8 +286,8 @@ Basso 낮음 - - + + Medium @@ -302,8 +302,8 @@ Medio 通常 중간 - - + + High @@ -318,8 +318,8 @@ Alto 높음 - - + + Very High @@ -334,8 +334,8 @@ Molto Alto 最高 매우 높음 - 非常高 - 非常高 + 非常高 + 非常高 FoV Based @@ -349,8 +349,8 @@ Champ de vision basé 視野角を元にする 시계(FoV) - 由视野角度决定 - 由視野角度決定 + 由视野角度决定 + 由視野角度決定 View Distance: @@ -365,8 +365,8 @@ Distanza Visiva: 視界距離: 시야: - 视野距离: - 視野距離: + 视野距离: + 視野距離: Object View Distance is @@ -381,8 +381,8 @@ Distanza Visiva Oggetti è オブジェクト描画距離は 동적 물체 시야는 - 物件视野距离为 - 物件視野距離為 + 物件视野距离为 + 物件視野距離為 That option is invalid! The limit is @@ -397,8 +397,8 @@ Questa opzione è invalida! Il limite è このオプションは無効です!制限は 이 옵션은 불가능합니다! 제한은 - 该选项是无效的! 限制是 - 該選項是無效的! 限制是 + 该选项是无效的! 限制是 + 該選項是無效的! 限制是 Video Settings @@ -413,8 +413,8 @@ Impostazioni Video 映像設定 영상 설정 - 影像设定 - 影像設定 + 影像设定 + 影像設定 diff --git a/addons/weaponselect/stringtable.xml b/addons/weaponselect/stringtable.xml index cccd10d33c9..94f80158f9d 100644 --- a/addons/weaponselect/stringtable.xml +++ b/addons/weaponselect/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Mostrat texto ao lançar granada 手榴弾を投げるときに通知 수류탄 투척시 화면에 문자 표시 - 投掷手榴弹时显示提示讯息 - 投擲手榴彈時顯示提示訊息 + 投掷手榴弹时显示提示讯息 + 投擲手榴彈時顯示提示訊息 Display a hint or text on grenade throw. @@ -30,8 +30,8 @@ Mostra um hint ou texto ao lançar uma granada 手榴弾を投げるときに、ヒントか文で通知します。 수류탄 투척시 화면에 문자나 힌트를 표시합니다. - 投掷手榴弹时显示提示讯息. - 投擲手榴彈時顯示提示訊息. + 投掷手榴弹时显示提示讯息. + 投擲手榴彈時顯示提示訊息. Select Pistol @@ -46,8 +46,8 @@ Seleziona la Pistola 拳銃を選択 권총 선택 - 选择手枪 - 選擇手槍 + 选择手枪 + 選擇手槍 Select Rifle @@ -62,8 +62,8 @@ Seleziona il fucile 小銃を選択 소총 선택 - 选择步枪 - 選擇步槍 + 选择步枪 + 選擇步槍 Select Launcher @@ -78,8 +78,8 @@ Seleziona il lanciamissili ランチャーを選択 발사기 선택 - 选择发射器 - 選擇發射器 + 选择发射器 + 選擇發射器 Select Grenade Launcher @@ -94,8 +94,8 @@ Seleziona il lanciagranate グレネード ランチャーを選択 유탄발사기 선택 - 选择榴弹发射器 - 選擇榴彈發射器 + 选择榴弹发射器 + 選擇榴彈發射器 Select Binoculars @@ -110,8 +110,8 @@ Seleziona il Binocolo 双眼鏡を選択 망원경 선택 - 选择望远镜 - 選擇望遠鏡 + 选择望远镜 + 選擇望遠鏡 Holster Weapon @@ -126,8 +126,8 @@ Nascondi l'arma 武器をしまう 무기 집어넣기 - 武器套 - 武器套 + 武器套 + 武器套 Engine on @@ -142,8 +142,8 @@ Включить двигатель エンジン始動 엔진 켜기 - 引擎发动 - 引擎發動 + 引擎发动 + 引擎發動 Engine off @@ -158,8 +158,8 @@ Выключить двигатель エンジン停止 엔진 끄기 - 引擎熄火 - 引擎熄火 + 引擎熄火 + 引擎熄火 Select Main Gun @@ -174,8 +174,8 @@ Выбрать основное оружие 主砲を選択 주포 선택 - 选择主武器 - 選擇主武器 + 选择主武器 + 選擇主武器 Select Machine Gun @@ -190,8 +190,8 @@ Выбрать пулемёт 機関砲を選択 기관총 선택 - 选择机枪 - 選擇機槍 + 选择机枪 + 選擇機槍 Select Missiles @@ -206,8 +206,8 @@ Выбрать ракеты ミサイルを選択 미사일 선택 - 选择导弹 - 選擇導彈 + 选择导弹 + 選擇導彈 Grenade %1 @@ -222,8 +222,8 @@ Granada %1 %1 手榴弾 %1 수류탄 - 手榴弹 %1 - 手榴彈 %1 + 手榴弹 %1 + 手榴彈 %1 Ready Grenade @@ -238,8 +238,8 @@ Granada pronta 投てきよし 투척물 준비 - 准备手榴弹 - 準備手榴彈 + 准备手榴弹 + 準備手榴彈 Select Frag Grenade @@ -254,8 +254,8 @@ Выбрать осколочную гранату 破片手榴弾を選択 살상 투척물 선택 - 选择破片手榴弹 - 選擇破片手榴彈 + 选择破片手榴弹 + 選擇破片手榴彈 Select Non-Frag Grenade @@ -270,8 +270,8 @@ Выбрать гранату その他の手榴弾を選択 비살상 투척물 선택 - 选择非破片手榴弹 - 選擇非破片手榴彈 + 选择非破片手榴弹 + 選擇非破片手榴彈 Throw Selected Grenade @@ -286,8 +286,8 @@ Бросить выбранную гранату 選択された手榴弾を投げる 선택된 투척물 투척 - 投掷选择的手榴弹 - 投擲選擇的手榴彈 + 投掷选择的手榴弹 + 投擲選擇的手榴彈 No grenades left @@ -302,8 +302,8 @@ Sem mais granadas もう手榴弾は無い 투척물 없음 - 已无手榴弹 - 已無手榴彈 + 已无手榴弹 + 已無手榴彈 No frags left @@ -318,8 +318,8 @@ Осколочных гранат нет もう破片手榴弾は無い 세열 수류탄 없음 - 已无破片手榴弹 - 已無破片手榴彈 + 已无破片手榴弹 + 已無破片手榴彈 No misc. grenades left @@ -334,8 +334,8 @@ Нелетальные гранаты закончились もうその他の手榴弾は無い 기타 투척물 없음 - 已无其他手榴弹 - 已無其他手榴彈 + 已无其他手榴弹 + 已無其他手榴彈 No grenade selected @@ -350,8 +350,8 @@ Нет выбранной гранаты 手榴弾は選択されていない 선택된 수류탄 없음 - 未选择手榴弹 - 未選擇手榴彈 + 未选择手榴弹 + 未選擇手榴彈 Fire Smoke Launcher @@ -366,8 +366,8 @@ Lançador de fumaça 煙幕発射機を発射 연막발사기 박사 - 发射烟雾发射器 - 發射煙霧發射器 + 发射烟雾发射器 + 發射煙霧發射器 diff --git a/addons/weather/stringtable.xml b/addons/weather/stringtable.xml index 5da2961d570..3849a49b07e 100644 --- a/addons/weather/stringtable.xml +++ b/addons/weather/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Mostrar informação do vento 風速を表示 바람 정보 표시 - 显示风力资讯 - 顯示風力資訊 + 显示风力资讯 + 顯示風力資訊 Show Wind Info (Toggle) @@ -30,8 +30,8 @@ Mostrar informação do vento (alternar) 風速を表示 (トグル) 바람 정보 표시 (토글) - 显示风力资讯(切换) - 顯示風力資訊(切換) + 显示风力资讯(切换) + 顯示風力資訊(切換) Weather @@ -46,8 +46,8 @@ Meteo 天候 기후 - 天气 - 天氣 + 天气 + 天氣 Multiplayer synchronized ACE weather module @@ -62,8 +62,8 @@ Modulo Sincronizzazione Meteo ACE Multiplayer ACE 天候モジュールではマルチプレイで同期します。 ACE 기후 모듈과 멀티플레이가 동기화됩니다. - 使用ACE天气模块来同步所有客户端的天气状态(多人游戏) - 使用ACE天氣模塊來同步所有客戶端的天氣狀態(多人遊戲) + 使用ACE天气模块来同步所有客户端的天气状态(多人游戏) + 使用ACE天氣模塊來同步所有客戶端的天氣狀態(多人遊戲) Weather propagation @@ -78,8 +78,8 @@ Propagazione Meteo 天候の統一 기후 전파 - 天气状态广播 - 天氣狀態廣播 + 天气状态广播 + 天氣狀態廣播 Enables server side weather propagation @@ -94,8 +94,8 @@ Abilita propagazione meteo lato server サーバ側による天候の統一を有効化 서버의 기후를 전파합니다 - 启用伺服器的天气状态广播 - 啟用伺服器的天氣狀態廣播 + 启用伺服器的天气状态广播 + 啟用伺服器的天氣狀態廣播 ACE Weather @@ -110,8 +110,8 @@ Meteo ACE ACE 天候 ACE 기후 - ACE 天气 - ACE 天氣 + ACE 天气 + ACE 天氣 Overrides the default weather (editor, mission settings) with ACE weather (map based) @@ -126,8 +126,8 @@ Scavalca il meteo default (editor, parametri missione) con il meteo ACE (basato su mappa) ACE 天候 (マップを元) による標準の天候 (エディタやミッション設定) を上書きします。 기존의 기후(에디터, 임무 설정)를 ACE 기후로 치환합니다. (지도에 따라) - 使ACE天气覆盖预设的天气 (编辑任务设置) - 使ACE天氣覆蓋預設的天氣 (編輯任務設置) + 使ACE天气覆盖预设的天气 (编辑任务设置) + 使ACE天氣覆蓋預設的天氣 (編輯任務設置) Sync Rain @@ -142,8 +142,8 @@ Sincronizza Pioggia 降雨の同期 비 동기화 - 同步雨 - 同步雨 + 同步雨 + 同步雨 Synchronizes rain @@ -158,8 +158,8 @@ Sincronizza Pioggia 降雨の同期 비를 동기화 합니다 - 同步雨 - 同步雨 + 同步雨 + 同步雨 Sync Wind @@ -174,8 +174,8 @@ Sincronizza Vento 風を同期 바람 동기화 - 同步风 - 同步風 + 同步风 + 同步風 Synchronizes wind @@ -190,8 +190,8 @@ Sincronizza Vento 風を同期 바람을 동기화 합니다 - 同步风 - 同步風 + 同步风 + 同步風 Sync Misc @@ -206,8 +206,8 @@ Sincronizza Misto その他を同期 기타 동기화 - 同步杂项 - 同步雜項 + 同步杂项 + 同步雜項 Synchronizes lightnings, rainbow, fog,... @@ -222,8 +222,8 @@ Sincronizza lampi, arcobaleni, nebbia,... ライティングや虹、霧などを同期 번개라던가, 무지개, 안개등을 동기화 합니다 - 同步闪电, 彩虹, 雾等等... - 同步閃電, 彩虹, 霧等等... + 同步闪电, 彩虹, 雾等等... + 同步閃電, 彩虹, 霧等等... Update Interval @@ -238,8 +238,8 @@ Intervallo Aggiornamenti 更新間隔 갱신 간격 - 更新间隔 - 更新間隔 + 更新间隔 + 更新間隔 Defines the interval (seconds) between weather updates @@ -254,8 +254,8 @@ Definisce l'intervallo (in secondi) tra aggiornamenti del meteo 天候を更新する間隔を定義します。(秒) 기후를 갱신 하는 간격을 초 단위로 정합니다. - 设定天气更新的时间间隔(秒) - 設定天氣更新的時間間隔(秒) + 设定天气更新的时间间隔(秒) + 設定天氣更新的時間間隔(秒) diff --git a/addons/winddeflection/stringtable.xml b/addons/winddeflection/stringtable.xml index 3bbdf868ded..a9290c8ab07 100644 --- a/addons/winddeflection/stringtable.xml +++ b/addons/winddeflection/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Informação do vento 風の情報 바람 정보 - 风力资讯 - 風力資訊 + 风力资讯 + 風力資訊 Direction: %1 @@ -30,8 +30,8 @@ Direção: %1 風向: %1 방향: %1 - 风向: %1 - 風向: %1 + 风向: %1 + 風向: %1 Speed: %1 m/s @@ -46,8 +46,8 @@ Velocidade: %1 m/s 風速: %1 m/s 풍속: %1 m/s - 风速: %1 m/s - 風速: %1 m/s + 风速: %1 m/s + 風速: %1 m/s Weather Information @@ -62,8 +62,8 @@ Informação Meteorológica 天候の情報 기상 정보 - 天气资讯 - 天氣資訊 + 天气资讯 + 天氣資訊 Humidity: %1% @@ -78,8 +78,8 @@ Humidade: %1% 湿度: %1% 습도: %1% - 湿度: %1% - 濕度: %1% + 湿度: %1% + 濕度: %1% Wind Deflection @@ -94,8 +94,8 @@ Deviazione del Vento 風向による変化 풍향 변화 - 风偏 - 風偏 + 风偏 + 風偏 Wind Deflection @@ -110,8 +110,8 @@ Deviazione del Vento 風向による変化 풍향 변화 - 风偏 - 風偏 + 风偏 + 風偏 Enables wind deflection @@ -126,8 +126,8 @@ Abilita deviazione del vento 風向による変化を有効化 풍향 변화를 적용합니다 - 开启风偏效果 - 開啟風偏效果 + 开启风偏效果 + 開啟風偏效果 Vehicle Enabled @@ -142,8 +142,8 @@ Abilita per Veicoli 車両へ有効化 차량 적용 - 启用风偏给载具 - 啟用風偏給載具 + 启用风偏给载具 + 啟用風偏給載具 Enables wind deflection for static/vehicle gunners @@ -158,8 +158,8 @@ Abilita deviazione del vento per artiglieri di statiche/veicoli 重火器や車両へ、風による変化を有効化 차량이나 거치식 무기 사수에게 풍향 변화를 적용합니다 - 使风偏作用在固定式武器与载具炮手身上 - 使風偏作用在固定式武器與載具砲手身上 + 使风偏作用在固定式武器与载具炮手身上 + 使風偏作用在固定式武器與載具砲手身上 Simulation Interval @@ -174,8 +174,8 @@ Intervallo Simulazione シミュレーションの間隔 재현 간격 - 模拟间隔 - 模擬間隔 + 模拟间隔 + 模擬間隔 Defines the interval between every calculation step @@ -190,8 +190,8 @@ Definisce l'intervallo tra ogni passaggio di calcolo 各計算に適用させる間隔を定義します 매 계산마다의 간격을 정의합니다 - 定义每个计算之间的时间间隔 - 定義每個計算之間的時間間隔 + 定义每个计算之间的时间间隔 + 定義每個計算之間的時間間隔 Simulation Radius @@ -206,8 +206,8 @@ Raggio Simulazione シミュレーション半径 재현 범위 - 模拟半径 - 模擬半徑 + 模拟半径 + 模擬半徑 Defines the radius around the player (in meters) at which projectiles are wind deflected @@ -222,8 +222,8 @@ Definisce il raggio attorno al giocatore (in metri) dove viene applicata la deviazione del vento ai proiettili プレイヤーの周囲に適用させる風による弾道の変化の半径を定義します (メートル) 플레이어 주위로 발사체가 풍향 변화의 영향을 받는 범위를 정합니다 (미터) - 定义玩家多少半径范围内(单位公尺)子弹会受到风偏的引响 - 定義玩家多少半徑範圍內(單位公尺)子彈會受到風偏的引響 + 定义玩家多少半径范围内(单位公尺)子弹会受到风偏的引响 + 定義玩家多少半徑範圍內(單位公尺)子彈會受到風偏的引響 Wind influence on projectiles trajectory @@ -238,8 +238,8 @@ Influenza del vento sulla traiettoria dei proiettili 風が弾道へ影響させます 발사체의 궤도에 풍향 변화를 줍니다. - 风力的大小会引响到弹道的轨迹 - 風力的大小會引響到彈道的軌跡 + 风力的大小会引响到弹道的轨迹 + 風力的大小會引響到彈道的軌跡 diff --git a/addons/yardage450/stringtable.xml b/addons/yardage450/stringtable.xml index fe43a21b9ab..6ab95aff7f4 100644 --- a/addons/yardage450/stringtable.xml +++ b/addons/yardage450/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Yardage 450 ヤードエイジ 450 Yardage 450 - Yardage 450 - Yardage 450 + Yardage 450 + Yardage 450 Laser Rangefinder @@ -30,8 +30,8 @@ Télémètre laser レーザー測距機 레이저 거리측정기 - 雷射测距仪 - 雷射測距儀 + 雷射测距仪 + 雷射測距儀 Yardage 450 - Power Button @@ -46,8 +46,8 @@ Yardage 450 - bouton d'alimentation ヤードエイジ 450 - 起動ボタン Yardage 450 - 전원 버튼 - Yardage 450 - 电源按钮 - Yardage 450 - 電源按鈕 + Yardage 450 - 电源按钮 + Yardage 450 - 電源按鈕 diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index ec8d660235e..9cd71c135bb 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Impostazioni Zeus Zeus 設定 Zeus 설정 - 宙斯设定 - 宙斯設定 + 宙斯设定 + 宙斯設定 Provides control over various aspects of Zeus. @@ -30,8 +30,8 @@ Fornisce controllo su vari aspetti di Zeus. Zeus のさまざまな側面を強化します。 Zeus에게 다양한 방면의 조작을 제공해줍니다 - 提供宙斯各个方面的控制权. - 提供宙斯各個方面的控制權. + 提供宙斯各个方面的控制权. + 提供宙斯各個方面的控制權. Ascension Messages @@ -46,8 +46,8 @@ Messaggi di Ascesa 転生表示 재림 메세지 - 上任宙斯讯息 - 上任宙斯訊息 + 上任宙斯讯息 + 上任宙斯訊息 Display global popup messages when a player is assigned as Zeus. @@ -62,8 +62,8 @@ Mostra messaggi popup globali quando un giocatore viene assegnato come Zeus. プレイヤーが Zeus になるとき、全体へポップアップ表示をおこないます。 플레이어가 Zeus 될 시 서버에 이를 알리는 팝업이 등장합니다. - 当一位玩家被指定为宙斯时显示全球讯息. - 當一位玩家被指定為宙斯時顯示全球訊息. + 当一位玩家被指定为宙斯时显示全球讯息. + 當一位玩家被指定為宙斯時顯示全球訊息. Zeus Eagle @@ -78,8 +78,8 @@ Aquila Zeus Zeus イーグル Zeus 독수리 - 宙斯鹰眼模式 - 宙斯鷹眼模式 + 宙斯鹰眼模式 + 宙斯鷹眼模式 Spawn an eagle that follows the Zeus camera. @@ -94,8 +94,8 @@ Crea un'aquila che segue la camera Zeus. Zeus カメラを追うイーグルを出現します。 Zeus의 카메라를 따라다니는 독수리를 생성합니다. - 生成一个老鹰跟着宙斯的摄影机 - 生成一個老鷹跟著宙斯的攝影機 + 生成一个老鹰跟着宙斯的摄影机 + 生成一個老鷹跟著宙斯的攝影機 Wind Sounds @@ -110,8 +110,8 @@ Suoni del Vento 風の音 바람 소리 - 风声 - 風聲 + 风声 + 風聲 Play wind sounds when Zeus remote controls a unit. @@ -126,8 +126,8 @@ Esegui rumori di vento quando Zeus controlla un'unità in remoto. ユニットが Zeus 遠隔操作になったとき、風の音がします。 Zeus가 유닛을 조작할 때 바람소리가 납니다. - 当宙斯开始控制单位时利用风的声音提示 - 當宙斯開始控制單位時利用風的聲音提示 + 当宙斯开始控制单位时利用风的声音提示 + 當宙斯開始控制單位時利用風的聲音提示 Ordnance Warning @@ -142,8 +142,8 @@ Allarme Esplosivi 砲撃の警告 폭격 경고 - 武装警告 - 武裝警告 + 武装警告 + 武裝警告 Play a radio warning when Zeus uses ordnance. @@ -158,8 +158,8 @@ Riproduci un messaggio radio quando Zeus usa esplosivi. Zeus が砲撃をつかうときに、無線で警告を流します。 Zeus가 폭격시 경고 무전을 재생합니다. - 当宙斯开始攻击时使用无线电警告 - 當宙斯開始攻擊時使用無線電警告 + 当宙斯开始攻击时使用无线电警告 + 當宙斯開始攻擊時使用無線電警告 Reveal Mines @@ -174,8 +174,8 @@ Rivela Mine 地雷の表示 지뢰 표시 - 显示地雷 - 顯示地雷 + 显示地雷 + 顯示地雷 Reveal mines to allies and place map markers. @@ -190,8 +190,8 @@ Rivela mine ad alleati e piazza marcatori in mappa. 友軍に地雷と地図へ設置マーカーを表示します。 아군에게 지도 상의 모든 지뢰를 표시합니다. - 地图将标记队友放置的地雷 - 地圖將標記隊友放置的地雷 + 地图将标记队友放置的地雷 + 地圖將標記隊友放置的地雷 Reveal to Allies @@ -206,8 +206,8 @@ Rivela ad Alleati 友軍へ表示 모든 아군에게 표시 - 透露给盟军 - 透露給盟軍 + 透露给盟军 + 透露給盟軍 Allies + Map Markers @@ -222,8 +222,8 @@ Alleati + Marcatori Mappa 友軍と地図マーカー 아군 + 지도 마커 - 显示盟军+地图标记 - 顯示盟軍+地圖標記 + 显示盟军+地图标记 + 顯示盟軍+地圖標記 Toggle Captive @@ -238,8 +238,8 @@ Attivatore Prigioniero 捕虜としてトグル 포로 토글 - 切换俘虏 - 切換俘虜 + 切换俘虏 + 切換俘虜 Defend Area @@ -251,8 +251,8 @@ Verteidige Gebiet 지역 방어 Difendi Area - 防御区域 - 防禦區域 + 防御区域 + 防禦區域 Update Editable Objects @@ -261,8 +261,8 @@ 수정 가능한 물체 갱신 Màj les objets éditables Aggiorna Oggetti Modificabili - 更新可编辑的物件 - 更新可編輯的物件 + 更新可编辑的物件 + 更新可編輯的物件 All Curators @@ -271,8 +271,8 @@ Wszyscy kuratorzy Tous curateurs Tutti i Moderatori - 所有编辑者 - 所有編輯者 + 所有编辑者 + 所有編輯者 Apply changes to all curators @@ -281,8 +281,8 @@ Zatwierdź zmiany dla wszystkich kuratorów Applique les changements à tous les curateurs Applica i cambiamenti a tutti i moderatori - 确认变更给所有编辑者 - 確認變更給所有編輯者 + 确认变更给所有编辑者 + 確認變更給所有編輯者 Remove Objects @@ -291,8 +291,8 @@ Usuń obiekty Enlève les objets Rimuovi Oggetti - 移除物件 - 移除物件 + 移除物件 + 移除物件 Remove existing instead of adding new @@ -301,8 +301,8 @@ Usuń istniejące zamiast dodawać nowe Enlève les objets existants au lieu d'en ajouter de nouveaux Rimuove gli esistenti e li sostituisce con i nuovi - 移除已存在的物件来新增新的物件 - 移除已存在的物件來新增新的物件 + 移除已存在的物件来新增新的物件 + 移除已存在的物件來新增新的物件 Global AI Skill @@ -314,8 +314,8 @@ Globale KI-Fähigkeit 서버 인공지능 실력 Abilità AI Globale - AI技巧设定 - AI技巧設定 + AI技巧设定 + AI技巧設定 General Skill @@ -327,8 +327,8 @@ Allgemeine Fähigkeit 전반적 실력 Abilità Generale - 总体技巧 - 總體技巧 + 总体技巧 + 總體技巧 Changes: general, commanding, courage @@ -340,8 +340,8 @@ Ändert: general, commanding, courage 변화: 전반적, 지휘, 사기 Cambia: generale, comando, - 改变: 战斗技巧, 指挥技巧, 勇气大小 - 改變: 戰鬥技巧, 指揮技巧, 勇氣大小 + 改变: 战斗技巧, 指挥技巧, 勇气大小 + 改變: 戰鬥技巧, 指揮技巧, 勇氣大小 Accuracy @@ -353,8 +353,8 @@ Genauigkeit 명중률 Precisione - 精确度 - 精確度 + 精确度 + 精確度 Changes: aimingAccuracy @@ -366,8 +366,8 @@ Ändert: aimingAccuracy 변화: 조준 명중률 Cambia: aimingAccuracy - 改变: 瞄准精确度 - 改變: 瞄準精確度 + 改变: 瞄准精确度 + 改變: 瞄準精確度 Weapon Handling @@ -379,8 +379,8 @@ Waffenhandhabung 무기 조작 Uso dell'Arma - 武器掌握 - 武器掌握 + 武器掌握 + 武器掌握 Changes: aimingShake, aimingSpeed, reloadSpeed @@ -392,8 +392,8 @@ Ändert: aimingShake, aimingSpeed, reloadSpeed 변화: 조준시 흔들림, 조준 속도, 재장전 속도 Cambia: aimingShake, aimingSpeed, reloadSpeed - 改变: 手晃幅度, 瞄准速度, 重新装填速度 - 改變: 手晃幅度, 瞄準速度, 重新裝填速度 + 改变: 手晃幅度, 瞄准速度, 重新装填速度 + 改變: 手晃幅度, 瞄準速度, 重新裝填速度 Spotting @@ -405,8 +405,8 @@ Aufklärung 탐지 Ricognizione - 索敌能力 - 索敵能力 + 索敌能力 + 索敵能力 Changes: spotDistance, spotTime @@ -418,8 +418,8 @@ Ändert: spotDistance, spotTime 변화: 탐지 거리, 탐지까지의 시간 Cambia: spotDistance, spotTime - 改变: 搜索距离, 发现时间 - 改變: 搜索距離, 發現時間 + 改变: 搜索距离, 发现时间 + 改變: 搜索距離, 發現時間 Seek Cover @@ -431,8 +431,8 @@ Deckungssuche 엄폐물 찾기 Cerca Copertura - 寻找掩护 - 尋找掩護 + 寻找掩护 + 尋找掩護 Should AI seek cover @@ -444,8 +444,8 @@ Soll KI nach Deckung suchen 인공지능이 엄폐물을 찾아갑니다 Le AI dovrebbero cercare una copertura - 决定AI是否会寻找掩护 - 決定AI是否會尋找掩護 + 决定AI是否会寻找掩护 + 決定AI是否會尋找掩護 Auto Combat @@ -457,8 +457,8 @@ Automatischer Kampfmodus 자동 교전 Combattimento Automatico - 自动交战 - 自動交戰 + 自动交战 + 自動交戰 Should AI automatically switch to combat mode @@ -470,8 +470,8 @@ Soll KI automatisch in Kampfmodus umschalten 인공지능이 자동적으로 교전 상태에 돌입합니다 Le AI dovrebbero passare in modalità di combattimento automaticamente - 决定AI是否会自动与敌人交战 - 決定AI是否會自動與敵人交戰 + 决定AI是否会自动与敌人交战 + 決定AI是否會自動與敵人交戰 Group Side @@ -483,8 +483,8 @@ Gruppenseite 진영 측 Fazione del Gruppo - 小队阵营 - 小隊陣營 + 小队阵营 + 小隊陣營 Patrol Area @@ -496,8 +496,8 @@ Patrouillengebiet 정찰 구역 Area di Pattugliamento - 巡逻区域 - 巡邏區域 + 巡逻区域 + 巡邏區域 Toggle Surrender @@ -512,8 +512,8 @@ Attivatore Resa 捕虜としてトグル 항복 토글 - 切换投降 - 切換投降 + 切换投降 + 切換投降 Add/Remove FRIES @@ -522,8 +522,8 @@ Dodaj/usuń FRIES Aj./Enlève FRIES Aggiungi/Rimuovi FRIES - 增加/移除快速垂降进场撤离系统 - 增加/移除快速垂降進場撤離系統 + 增加/移除快速垂降进场撤离系统 + 增加/移除快速垂降進場撤離系統 %1 is not fastrope compatible. @@ -532,8 +532,8 @@ %1 nie jest kompatybilny ze zjazdem linowym. %1 n'est pas compatible. %1 non è compatibile con il fastrope. - %1无法使用快速绳降系统. - %1無法使用快速繩降系統. + %1无法使用快速绳降系统. + %1無法使用快速繩降系統. Unable to remove FRIES, ropes are deployed. @@ -542,8 +542,8 @@ Nie można usunąć FRIES, liny są wypuszczone. Pas en mesure d'enlever le FRIES, les cordes ne sont pas déployées. Impossibile rimuovere le FRIES, le corde sono ancora dispiegate - 无法移除快速绳降系统, 因为绳索已被释放出来. - 無法移除快速繩降系統, 因為繩索已被釋放出來. + 无法移除快速绳降系统, 因为绳索已被释放出来. + 無法移除快速繩降系統, 因為繩索已被釋放出來. Teleport Players @@ -555,8 +555,8 @@ Spieler teleportieren 플레이어 순간이동 Teletrasporta Giocatori - 传送玩家 - 傳送玩家 + 传送玩家 + 傳送玩家 Player @@ -568,8 +568,8 @@ Spieler 플레이어 Giocatore - 玩家 - 玩家 + 玩家 + 玩家 Teleport selected player to module position @@ -581,8 +581,8 @@ Teleportiert ausgewählten Spieler zur Position des Moduls 모듈의 위치로 플레이어 순간이동 Teletrasporta il giocatore selezionato nella posizione del modulo - 传送选定的玩家至模块位置 - 傳送選定的玩家至模塊位置 + 传送选定的玩家至模块位置 + 傳送選定的玩家至模塊位置 Teleport Group @@ -594,8 +594,8 @@ Gruppe teleportieren 그룹 순간이동 Teletrasporta Gruppo - 传送小队 - 傳送小隊 + 传送小队 + 傳送小隊 Teleports all units in group @@ -607,8 +607,8 @@ Teleportiert alle Einheiten der Gruppe 그룹내에 모든 인원을 순간이동 시킵니다 Teletrasporta tutte le unità del gruppo - 传送全部小队成员 - 傳送全部小隊成員 + 传送全部小队成员 + 傳送全部小隊成員 Toggle Unconscious @@ -623,8 +623,8 @@ Attivatore Incoscienza 気絶をトグル 기절 토글 - 切换昏迷 - 切換昏迷 + 切换昏迷 + 切換昏迷 Search Area @@ -636,8 +636,8 @@ Durchsuche Gebiet 지역 수색 Area di Ricerca - 搜索区域 - 搜索區域 + 搜索区域 + 搜索區域 Search Nearby Building @@ -649,8 +649,8 @@ Durchsuche nahegelegenes Gebäude 근처 건물 수색 Cerca Edifici nelle Vicinanze - 搜索附近的建筑物 - 搜索附近的建築物 + 搜索附近的建筑物 + 搜索附近的建築物 Assign Medic @@ -664,8 +664,8 @@ Assigner médecin 衛生兵に割り当て 의무병 임명 - 指定医疗兵 - 指定醫療兵 + 指定医疗兵 + 指定醫療兵 Assign Medical Vehicle @@ -679,8 +679,8 @@ Assigner véhicule médical 医療車両として割り当て 의무 차량 임명 - 指定医疗载具 - 指定醫療載具 + 指定医疗载具 + 指定醫療載具 Assign Medical Facility @@ -694,8 +694,8 @@ Assigner installation médicale 医療施設として割り当て 의무 시설 임명 - 指定医疗设施 - 指定醫療設施 + 指定医疗设施 + 指定醫療設施 Toggle Simulation @@ -704,8 +704,8 @@ 재현 토글 Bascule Simulation Attivatore Simulazione - 切换模拟 - 切換模擬 + 切换模拟 + 切換模擬 Add Spare Wheel @@ -719,8 +719,8 @@ Ajouter pièce de rechange 予備タイヤを追加 예비 바퀴 추가 - 增加备用轮胎 - 增加備用輪胎 + 增加备用轮胎 + 增加備用輪胎 Add Spare Track @@ -734,8 +734,8 @@ Ajouter une chenille de secours 車両へ予備タイヤを追加します。 예비 궤도 추가 - 增加备用履带 - 增加備用履帶 + 增加备用履带 + 增加備用履帶 Unit must be alive @@ -750,8 +750,8 @@ Usar somente em unidades vivas ユニットを生存させます 대상이 반드시 살아있어야 합니다 - 单位必须是活着 - 單位必須是活著 + 单位必须是活着 + 單位必須是活著 Unit must be infantry @@ -766,8 +766,8 @@ Usar somente em infantaria desmontada ユニットを歩兵にさせます 대상이 반드시 보병이어야 합니다 - 单位必须是步兵 - 單位必須是步兵 + 单位必须是步兵 + 單位必須是步兵 Unit must be a structure @@ -781,8 +781,8 @@ L'unité doit être une structure ユニットを構造物とします 대상이 반드시 건축물이어야만 합니다 - 单位必须是建筑 - 單位必須是建築 + 单位必须是建筑 + 單位必須是建築 Unit must be a vehicle @@ -796,8 +796,8 @@ L'unité doit être un véhicule ユニットを車両とします 대상이 반드시 차량이어야만 합니다 - 单位必须是载具 - 單位必須是載具 + 单位必须是载具 + 單位必須是載具 Unit must be a vehicle with cargo space @@ -811,8 +811,8 @@ L'unité doit être un véhicule avec de l'espace de cargaison ユニットをカーゴ スペースがある車両にします 대상이 반드시 화물을 실을 수 있는 차량이어야 합니다 - 单位必须是载具且有载货空间 - 單位必須是載具且有載貨空間 + 单位必须是载具且有载货空间 + 單位必須是載具且有載貨空間 Unit must have cargo space left @@ -826,8 +826,8 @@ L'unité doit avoir de l'espace libre en cargaison ユニットへカーゴ スペースを与えます 대상의 화물공간이 남아있어야합니다 - 单位必须有剩余的载货空间 - 單位必須有剩餘的載貨空間 + 单位必须有剩余的载货空间 + 單位必須有剩餘的載貨空間 Unit must not be captive @@ -842,8 +842,8 @@ L'unità non dev'essere un prigioniero ユニットを捕虜にさせません 대상이 포로면 안됩니다 - 单位不能被俘虏 - 單位不能被俘虜 + 单位不能被俘虏 + 單位不能被俘虜 Unit must belong to an appropriate side @@ -855,8 +855,8 @@ Einheit muss einer passenden Seite angehören 대상이 적절한 진영에 속해야만합니다 L'unità deve appartenere ad una fazione coerente - 单位必须属于一个合适的一边 - 單位必須屬於一個合適的一邊 + 单位必须属于一个合适的一边 + 單位必須屬於一個合適的一邊 Nearest building is too far away @@ -868,8 +868,8 @@ Nächstgelegenes Gebäude ist zu weit entfernt 가장가까운 건물이 너무 멈 L'edificio più vicino è troppo lontano - 最近的房子离太远了 - 最近的房子離太遠了 + 最近的房子离太远了 + 最近的房子離太遠了 Place on a unit @@ -884,8 +884,8 @@ Piazza su una unità ユニットの上に設置 대상에 배치하기 - 放置在一个单位上 - 放置在一個單位上 + 放置在一个单位上 + 放置在一個單位上 Requires an addon that is not present @@ -900,8 +900,8 @@ Richiede un addon che non è presente 要求されたアドオンは存在していません 현재 없는 에드온을 필요로 합니다 - 需要一个不存在的插件 - 需要一個不存在的插件 + 需要一个不存在的插件 + 需要一個不存在的插件 Add Objects to Curator @@ -915,8 +915,8 @@ Fügt Objekte zum Kurator hinzu キュレーターにオブジェクトを追加 큐레이터에 물체 추가 - 增加物件给任务策划人 - 增加物件給任務策劃人 + 增加物件给任务策划人 + 增加物件給任務策劃人 Adds any spawned object to all curators in the mission @@ -930,8 +930,8 @@ Fügt jedes gespawnte Objekt allen Kuratoren der Mission hinzu ミッション内で作成されたオブジェクトに全キュレーターを追加 미션 내 큐레이터에 모든 생성 물체 추가 - 在任务中生成物件给所有的任务策划人 - 在任務中生成物件給所有的任務策劃人 + 在任务中生成物件给所有的任务策划人 + 在任務中生成物件給所有的任務策劃人 Cargo: @@ -943,8 +943,8 @@ Ladung: 화물: Cargo: - 货物: - 貨物: + 货物: + 貨物: Task Position @@ -956,8 +956,8 @@ Position der Aufgabe 작업 위치 Posizione Incarico - 目标位置 - 目標位置 + 目标位置 + 目標位置 Select a position to perform the task at @@ -968,8 +968,8 @@ Wähle eine Position, an der die Aufgabe ausgeführt werden soll 작업을 할 위치를 선택하십시요 Seleziona una posizione per eseguire l'incarico - 选择要执行目标的位置 - 選擇要執行目標的位置 + 选择要执行目标的位置 + 選擇要執行目標的位置 Task Radius @@ -980,8 +980,8 @@ Radius der Aufgabe 작업 반경 Raggio Incarico - 目标半径 - 目標半徑 + 目标半径 + 目標半徑 Radius to perform the task within @@ -992,8 +992,8 @@ Radius, in dem die Aufgabe ausgeführt werden soll 다음 반경 내에서 작업 Raggio per eseguire un incarico - 设定目标范围半径 - 設定目標範圍半徑 + 设定目标范围半径 + 設定目標範圍半徑 Invalid radius entered @@ -1005,32 +1005,32 @@ Ungültiger Radius eingegeben 알 수 없는 반경 입력됨 Raggio Invalido Inserito - 错误的半径值 - 錯誤的半徑值 + 错误的半径值 + 錯誤的半徑值 Suppressive Fire Fuoco di Soppressione Tir de suppression 制圧射撃 - 火力压制 - 火力壓制 + 火力压制 + 火力壓制 Add full arsenal to object Ajouter arsenal complet à l'objet Aggiunge arsenale completo all'oggetto オブジェクトに完全なアーセナルを追加 - 增加完整的虚拟军火库到物件上 - 增加完整的虛擬軍火庫到物件上 + 增加完整的虚拟军火库到物件上 + 增加完整的虛擬軍火庫到物件上 Remove arsenal from object Retirer arsenal de l'objet Rimuove arsenale completo dall'oggetto オブジェクトからアーセナルを削除 - 移除物件上的虚拟军火库 - 移除物件上的虛擬軍火庫 + 移除物件上的虚拟军火库 + 移除物件上的虛擬軍火庫 From 2aa0072104378dfd8f6f44ad34514238febcdb40 Mon Sep 17 00:00:00 2001 From: Joko Date: Sat, 8 Jul 2017 16:52:25 +0200 Subject: [PATCH 141/198] Fix the issue that SFX variants are not global (#5335) * Fix the issue that SFX variants are not global what means that different players can get different pressure Cookoff sounds to prevent that i split up the sounds in 3 types and used a Weighted select to have the befor used values back * add todo for 1.74 * inherit in CfgSFX from 1 class --- addons/cookoff/CfgSFX.hpp | 19 ++++++++++++------- addons/cookoff/CfgVehicles.hpp | 11 +++++++++-- addons/cookoff/functions/fnc_cookOff.sqf | 3 ++- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/addons/cookoff/CfgSFX.hpp b/addons/cookoff/CfgSFX.hpp index 1b2d5408afe..0d670ead863 100644 --- a/addons/cookoff/CfgSFX.hpp +++ b/addons/cookoff/CfgSFX.hpp @@ -1,13 +1,18 @@ class CfgSFX { - class GVAR(CookOff) { - name = QGVAR(cookoff); - // Index 4 is percentage chance to play, in theory high pressure is way more likely - variant0[] = {PATHTOF(sounds\cookoff_low_pressure.ogg),6,1,400,0.1,0,0,0}; - variant1[] = {PATHTOF(sounds\cookoff_mid_pressure.ogg),6,1,400,0.25,0,0,0}; - variant2[] = {PATHTOF(sounds\cookoff_high_pressure.ogg),6,1,400,0.65,0,0,0}; - sounds[] = {"variant0","variant1","variant2"}; + class GVAR(CookOff_low) { + name = QGVAR(cookoff_low); + sound[] = {QPATHTOF(sounds\cookoff_low_pressure.ogg),6,1,400,1,0,0,0}; + sounds[] = {"sound"}; titles[] = {}; empty[] = {"",0,0,0,0,0,0,0}; }; + class GVAR(CookOff_mid): GVAR(CookOff_low) { + name = QGVAR(cookoff_mid); + sound[] = {QPATHTOF(sounds\cookoff_mid_pressure.ogg),6,1,400,1,0,0,0}; + }; + class GVAR(CookOff_high): GVAR(CookOff_low) { + name = QGVAR(cookoff_high); + sound[] = {QPATHTOF(sounds\cookoff_high_pressure.ogg),6,1,400,1,0,0,0}; + }; }; diff --git a/addons/cookoff/CfgVehicles.hpp b/addons/cookoff/CfgVehicles.hpp index 1155b9ba52c..7d82d97c12b 100644 --- a/addons/cookoff/CfgVehicles.hpp +++ b/addons/cookoff/CfgVehicles.hpp @@ -1,11 +1,18 @@ class CfgVehicles { class Sound; - class GVAR(Sound): Sound { + class GVAR(Sound_low): Sound { author = ECSTRING(common,ACETeam); _generalMacro = QGVAR(Sound); scope = 1; - sound = QGVAR(CookOff); + sound = QGVAR(CookOff_low); + }; + + class GVAR(Sound_mid): GVAR(Sound_low) { + sound = QGVAR(CookOff_mid); + }; + class GVAR(Sound_high): GVAR(Sound_low) { + sound = QGVAR(CookOff_high); }; class ThingX; diff --git a/addons/cookoff/functions/fnc_cookOff.sqf b/addons/cookoff/functions/fnc_cookOff.sqf index 99a901649f7..8154217e9dd 100644 --- a/addons/cookoff/functions/fnc_cookOff.sqf +++ b/addons/cookoff/functions/fnc_cookOff.sqf @@ -91,8 +91,9 @@ if (local _vehicle) then { } forEach _positions; if (isServer) then { + private _soundName = [QGVAR(Sound_low), 0.1, QGVAR(Sound_mid), 0.25, QGVAR(Sound_high), 0.65] call BIS_fnc_selectRandomWeighted; // TODO: replace with script Command in 1.74 // TODO - Players in the vehicle hear no sound (even after exiting the vehicle) - private _sound = createSoundSource [QGVAR(Sound), position _vehicle, [], 0]; + private _sound = createSoundSource [_soundName, position _vehicle, [], 0]; _effects pushBack _sound; }; From 0958eff89e248b85d91e0df5025d8f8cc3055f86 Mon Sep 17 00:00:00 2001 From: 0dr Date: Sat, 8 Jul 2017 17:07:39 +0200 Subject: [PATCH 142/198] fix #5324 (#5325) --- .../spottingscope/data/ace_spottingscope.p3d | Bin 4040306 -> 4040276 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/addons/spottingscope/data/ace_spottingscope.p3d b/addons/spottingscope/data/ace_spottingscope.p3d index 969d0b37f51582e600fb5f12bf3ba7fecedfa141..2298b9c8f9e81ce68a36958ad1367d615910d065 100644 GIT binary patch delta 148 zcmWN=O;UjY007WIR6wh8l2Q&GIhJ-JBP-`r-kE}P7m6-jxmHqk<5or0otnCadrd75+8%X0>FRmbH!w8v gV(itMiFZ>oA3n{$gJzicilTKp47NX=Rj?@i0qndp$^ZZW delta 175 zcmXZNITFDD0638f=AfkMp~f9B19+~30M z>xh6I5eH6Oxbfh{ho1mJBtnFV5G6*O1W8h)kx|HyB}bkDMM{)W(Wp>Gr$(IyOoCQl(S3^6AmStV^lkrs4jk!0s2Xm*|B-=mX_nZ4{tmO}Nr#7kp From 7a3d15d37cc540b8392b326603db3cbe5d221d23 Mon Sep 17 00:00:00 2001 From: Laid3acK Date: Sat, 8 Jul 2017 17:10:40 +0200 Subject: [PATCH 143/198] Minor update Wiki AtragMx (#5322) * update wiki atragmx * Add files via upload --- docs/img/wiki/feature/atragmx3a.png | Bin 0 -> 873988 bytes docs/img/wiki/feature/atragmx5.png | Bin 0 -> 611230 bytes docs/wiki/feature/atragmx.md | 8 +++++++- 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 docs/img/wiki/feature/atragmx3a.png create mode 100644 docs/img/wiki/feature/atragmx5.png diff --git a/docs/img/wiki/feature/atragmx3a.png b/docs/img/wiki/feature/atragmx3a.png new file mode 100644 index 0000000000000000000000000000000000000000..9e18243d5659125c6c2d3bfae6dab4833079e2b3 GIT binary patch literal 873988 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

  • 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

    w(!u2u%j2vev3gy3|$wtUIOUg((h-t9;zG;W1qV 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℘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%0A0=@eCTW`-5o*$Tw5IjXUu= zwbj{U{pt+Qz+Z_wc${N&>$d&ZA5Pdw9x_p#Y%MgcR}GJy*BXb71Ati|k)RWr zAv!OLa)&9pd9Ht+m`}aTz2@>@zmfU$@u?2_@|#~NoudIvrR)%v%4{agxmvlDqM&2&Ln+Mo%Dosx-!a`TPOtp=;9c1C_46 z2JFTp$G0IeZZ9=kduiQMX;1aXhm78s<4G@hF8ZLOLLsoszAr3YPxqVY@ZVn%`V`+C z`c)Txm;;1gKvW&JVA<26%%;Pxt%3uDE?sst-L};>C ztkBjx7`hzFEo%7fGlaD_C>8HK&b51IuqI}J~SL!fs8Q@9;r&k4oG*dZ5ssXS^$lh@ib4v%tI>+K(tiD=Nrm_ zPLZ$kL+0fCSM^rIOhUA8|Gjg%<7h;IN#1|*)ddcO_B(rCd7@J|Xh;+>=<2RtYU%X~ zP;!G!^@3RZfa@0%=RHF4>rJ&E6qZtgZ~mX01Ls7y&l?Ie0sSGTA0!8ZnemGXizZDd zC2E4`fC36sX%;9J*7=V{59bfv0iePsVq{m7VN44YT3ajlRU&^XWNBuBNgO&pBQnaB z?a}K^aIP^lPR68Yz#0E$_Y|4$|d|RW#v(P*HY9|sW=g8J-+oLVbjLGRIGCR^5)Wb=|e$2h}=gI%!)$_7dm?x~J{Z3>QGjZpy z2X|G~w@9kjh?@CtnL89YL>6&{0~zexlikJSf1Lq{w+N~!qx2KSdz^0q~Lem@jE74z(XZ^sr%G^T|0UMMcOKg9(fNO4s0?_K@F<`_s# zR7f{&pzg#gAx`V}Z*W~lJ}3LArTAsk+L4kj8q zHs$fqoa1cbzD=Z_exW2kjxw zp}Ka^IlS8LU!K+)Gn9EN4)CiDoMx&clmV_`vo2zedN5EBb>$|edt4&*eXor6OS~>5 z6q9djw$L(t=YW%BYQP#QD<)UJhEc(cT@%VJV&@$26{EeiS^!Ov3@x6&jg7=G5aes6 z&9`D8kZhdca5xoAE{pSfnnB~;TCSF~nOcSdG4l7rQrMLhBL zg(McrU}+;&)nF}No`FH+&TjWt3MGmHs%oif1+vFqQ*S9HnQ6LJ5K}3#Gr?~K=T5$x z_i(%}ZRmLkUGYEobVXoimuMU!M&Ud*<3$(rP}gU`82R$%Y3%tSp5%Q`yUQR=2H=s@f&u-yP*%x?#Uvzm>sPiR6x;CuOfyCSSv6Pal2~oF0Q+v zm`%I#ipG(I8@zv*IoU_40R@aynRE?emEPqrzPGQJOM)2Kw}$IhFWOdzh;`NHgnl*g zm;f0l(&_03>zX>JFr0Ze~HM1C6FI?5H2)x`Mc#ie8k#vxgL5;G?X3?PdL4g&ieC z?u;`6!`F@yN^<_RHejio_X;`(|83SY(hYD2dC`*^|v zmbVmpC?ny7zN`Divm{E`g_f0 zlXquynzOyUjZ-CT$tP#knyh!%?aLtN@kjDQiyNY}Ge=5>+-jvDGha7w6dvi8CKua$ zc(Vc(8pzNKk3S?E2UhHYyv$uZv$eAVdN-fLP*+f`lx>Uu)sWHER$*&SRgBY z03LnI>>9|-QkZmQ(>z&`Z?)pTS|*$)F5OW^-^o^HYZ9i{GLXU6JG{5~^}{P#S@$xW zd=;{;-BMjOxkk6o8#TrF@=Hg!zS!|a@2=clpR8*yR|s6}CXbzLl2ur+77HYXJbYZA zHo7~F4^o!AzYUsD>-}-lFIiGdOjh|J!K>P!xhLyAw6oycD_LlQNkvWKUTk@sCE-8z zy6-;SnA=L^?2`C#VC&}O>O`O9BWe&{hgr<^c#QJ^e$dmosk*c)R!6%>+c42sG#o-o z)OY`u;Ay|<(0xByEfYR5L@tQ;QkR;{$FD7tgih1dmG?hhBfrm?<>&_F=_Eq(r1Q&{ zmj*wa86G!TBnwR+*2&swBm>2Wc+*V-g&)t-yNdNpd_F&2)&{wZ)+(hx-HruK20dQ~ zoi8B)%P7m$>Zxt_iTFN9_wC(8e4uP-MEr{#S4NIqy=tP{rY!DVR6Qe`zA2lDv7lRr{{Ty4 z_io&28XqkAjlCy6yU%usyW&H;|%&A{^Yx`rp!{U9YYTv@*Zf>7JdAAk7+>of3`bET5&zuRH~ z(qAGe1aZm$JNZM?JW;g5tiR)@5x|Z)U(vQA%M4B7-8L;^!5Q|jl=X75g8$0==N0;V zNe>+g{Rt+fU`*Qf9&0M4hr09D=%2hIh^%|b9!0JnNbHcpT<60GFjk4*mh93DlzeOsH@H?y2(kKN=@y+Q1j*S#Tp_9Gq7Ah+yM`4K=+8n z^$vtxql1Crt0vi;^W?v?YPX(3?Q(X$+ld+@#46)ks;|5>D{qv6;b5&*>F`Qso<3w> zafpMx1PDaDeLT(50SMM}Rcz~3w-ai8`1q19#d`t+0rtiNo3)OX%! z$;c_HvR++u0-Wcb+*WYWlcUvVTJhUWtp>9mWb5{~?NXBu|Gtj_@!#he3_*WClkGm; zAD00c!xI1=ad24h)fm3y1CRLA%?53~V|8&bCAc)$*Ge^6&@@5>p^eB9yJYJ)yTg04 zT`yJ9G-1(INle7Wlp9;`2`o2x21#OZsRs&pdm6QxeFZoJ-6=*oFW(GhiG4n5zo#`| zka8PYxNQG38`3G!Fu0ifUknVFiDJCi9ZG&BD!!PqlT%JvOLiCSeL>Z-@yn z`mMb|H)g^4L7hge!Mu)FE4zgF^%A;9W)@=(Hhn++c0dY}%#8MZE%e@HjYh-3ISBZ z;(tZOw}fh?Z1Kz ztU(x4A?G{G@3>fWd2?x|6Dh&oO#FE9I8?sV?Y9Q9HsZ_d{Q4Hm^ z&T1nb>;-?X%xfMLZElob;lcH$S7`g0>7&igQ>Z;mbd(t+SRKYIudJOeamp_a29EV0 zM`fk(s>6p4d9wlj(ZLXzU%O3R52@RnMzUZu{6Z<0t{OX%5wh#_C?g6Yx6NRD?f~u0 zQ;xmUvi!n`^w%XpuY(e4{r2r3wcdHF$B9<)6Lfx;+tu3Y0Nj zQT(nqx!oz#Tihh(IeymIZTWINsH(uGj~cCbNSF;u30TWYW@Tv~>IROp1CjtEiQE1( z<{dDPX65BgdVa1AdURNzca`srJs%Z~zqYcr<}IIWb~5cec5T^>6IIrnt_ zkz?mt>sj5TSXnCEUDAyGu{*Pm+x4qwKBgwRqqC#DE;Ld?NQ67(L1OO!Bxeq~VyrW+ z#Od&N_h&HvnLzlCGCS=MH8x#91kh;;=xGg#hm(rrpaok%FEiK@yhq z|JW52OD$NSo&;G2APest4kTtD#e~GnKI|(BCUN%3$;iXEXU%v!JvXdTz;>SSF*FPfM?t-Q&4ZV2kG!8wgD)yI4jZ;Zs z3cRKDb#G^kUh>44>9*OEh<~%he3XTa$VomhJYIQq?Ho&5?mAceY9XENE(NBn0J&+R zHP-NE0i+RfAJ>2r=%{UkeCWHu3EEYg;#~K@D~pK|5_38XA6cjLi+U67fcpv?=jX|S zN^Lvh-bGxx^=nDp55!E2gUbf#sbpWEKg(Bd-RWr_0-&b-0cgzbVX44I6@U(I$EqVN zEq^R#?!WP*9rUg+OxxAAQp9MjUkv|!23I)T(fkkMxvQh$KIIINIa;$c`o3n66j=~s zNeu|!0ZJ%p$;(@7ZdO6CBhzL@qn#>&t_BO`PzGEOm_ou2f|Ok2c}tZ51)e^|6w7Yu zDr)%6ti2VEUpN!u19?IQGS2&^S9`$1xZXYDCsJ+d_}Ak1*kB&1xq>2-FC2N8KIBa* zqxqJDlWozUqs?~MV8)Ur%mYs)TVHC*hIkyF+1FsX7YaDK7Q4ynD*oI4m@?Z<(ct>4 zXd(bRAs}iz!`>bvB4Sgh0az8H>?OOY>Q+kwPmt)yi9=QMISgv4@(O0Cg;sH}lWTZJ zLm7+9gCGRJ`EX0GkfCknV}h~1r~GHF-&+ii8^xfN5GewTB=4-0j~!|+uwyY=0T(wM zlYTcCQz0uyZBrN^viz&aPSWzwlAf>7Rzk*J|C2+{F8uQ>CQ%|u;~yg?9Yj|VOIZr= z{AuwVq0nXkjC0d=r8It@F#vO}LG&htbt}yhyJ}!-W@gGJHB#)sp?lZCu?--l(;1jCLgk zsq?JjV_}zJ2f9Oyulgk+1ffZ(CIGv=U#h!6w$tU3vUQ`@YceQu_U`r(U9IMOsd9lHx2`?mu*J)3ckIyBO(pF+$gQ@RLV_+doCGMEK~rA3uO|8g4Z1* zCh-DQk%`gXAOBYVT=czus<=Y~WTpjT;l&*&VlNqspnD}p#>AS&w@h4u& z2l)y?xA(@bEACJDyI3AHI1~~|CO!dFa{YaVZWS@TIj5d3Di@d-oA+L;g7JebCVIvy zfzK|qK&oE6-P#(%Ll7g>;#Rop=91~+;CJBf=CZN8U$ZCQG>Z20x>{4NjlKW&xvz$x ze+|48sUVDhOQFNG&CfB!zI)ib>X8g-D}c|x-sT1{4f5%15C-tMr`%A%N1bFyxxH$) z8w!`5NBuQusB;IX=!G_A*V=|!x>c*$^!t3kONwf z_B(r<+0vWb8@2<3Pq>BDB}YtrgHSwELf(AuO$>HaT+W2MFy8_glI5|`pAV)mUioZ6 z=`TmBy*(i;<+5U*Lu{8hZV+-FLL|hBBiw8y!p*BaV}<~|J0&+=4f?%)cP!{$^!JiQ zAO1NynNc_VVLFFe_g}&5?WKW?KgweNh$Md`W3=ZcK-3ZbcR)Jx*>CO%9X(^f1H_bW z^m88|=5Y~&(C&{q?;Y_PW=;G!(dS#-b|!7|1LT#`UKe8b+8`X>cG@y>@oZ;2NZGmd z(|C7|zYbBtp zqDADS_i2uv@C8dQ3-W>SdQL6zTTXWN@KLhs=d;2#l_<=wi;&Jz)LmgSEq<-I^!ZAfzVj!bl5ny0%-;FPedUEi} zvq2}B_P&6*_houuG8J)GGY@TgrN+DjUP{xs<>C5z;mJ(15KAUwD7Kilyu zvGH29@sTcEoYPu7EbM}BC-jNVpHCHSLpWEk!5^!l6UphN-Uze+p__wV#gtfJ>O_kW zWLM~p5I#A;{a4xqxI8(5 zWmn#W4C00!x;>T+oE<=HijIcUZiQrpw>x&`rt*^)ja7Oj7KB%+jG5$~0Orek9u6OhQr90rP;3H>-7p#!V6>t z4B14f*f^E%v3nUSAAPx{2|M&e5v45_Q*i78EYIy`YZbBc)#t}Ux6y!W@mCD*d1Er) zIvjc&bsTqoxdwP&`N#hEi(N?y4RmS=r{o{_S@m7+C*oOin>El-ozZJ!j9&Oqb!R9f zmrg!jKW80nE8KkPQ`$Pc_wM={1i9QZWW{|K9rJthW<%{EDjbK3A>ZdbPP~C2rlC54 zi-+loy}1wh(AqrG^ivu|sB0mI`=J3i;C9RB?CdN_xEq_hUFz-Iw-*;vYEwx}O0Rj) z+(J}yMFu4lGu4w&&~Qm@PQ`5dk>Iy~Bj|*#Yt)f`K3-1^BrA=EvQdmS;J#Vv<8JQOZP{3^-$cbwwGEiirS98yrT^Y0qDFki?<>M zmBFoR-<*9v{glm{edK#wC%aZ3GYQzm5Asep+7@1KzjZndbP_%eUVX|7kN5t(&Fvi{ z*5SV?l6AF>6RoC97>>K0-AM_{eB(gMR17pmpL|pk^X5N~-9p4K|GCXv`mF}wt9J$V zO=s_*jdKvr1f(W)bU&l1pM0OX;w_2a9q$Qk2;ITu(0yH0Ri&)dDrF&U(cXxQ2G`FK zSWdAFR{ahb1jSJive;5|1azaQ1gGtAb5 zZ4oKEc)sA6*LxurDU3tXMnOGDSW0*5<`e)A>+D_{MJTy-^VQ=!Pm`e+Fi5iiAF~M8 z(qW(H*z#gerpL7Ti(f>Ba>Tt`IyS*#bn=J(XX zg!WXw8N$dR56IX?8_w`r6_>^rzepIz1~no12Y**lQc51rH36pN2}Fp~nRD^{W%6`y@1oaPP9A#~JUe)BO-5R=s#{>s9+-8|<52!t*w zuYMx?IYg9Y-53>BFm6^=q2Zv9oY)^mgjGZ6lEOyOpFP3(sImt6e<-# zCK7N+Nva(SUUz^{WEu|JRA=Wc`S>(@`Kuin_j2}r*jpL&56da)rP>|ysTAh|YRX-Y zrsxQvsQNbMLXX*al{@9xBj4tjKg$LK}(3!&HTgN^s9PvG)Fkj#|rPOVzuu~rOexzLhpr@Xr zb{lZxfyH~{0adfIWbwAzS|T{$KBl9W7uh*F6B&3 zP1hpX$>9LJ=)e23RReDrbhI7oMD82XD2hgxnPb`D*2=$3pQQEnvyh={qUxINsR4cI zx|x7*qn$xmY#T%LrtMc`y zpnp>PND`RmpzrVfeh+6X=pup*vg3+V*aB1!1a&bTdTS`O>QoN;K0=C)R2zJ+`$E?(?@o;+OI9DB@FzX~^uG%z>$txF zv{Hd`BaHd}(Rj2X(hf6KMNNky19h3-wv^xk zJVwrio{HP8j+|$1Q-zh4{maFsPiiILh{>$jY;A1ET@yzgocuo|B=zd?lR6JvboSQ6 zHMxt`yi71iGz|qePKGz`G_(^5cMt^$Vy47g@dHM1{+ZQ$P*y35u-9)w1(TlR0TkBS z1B;Q?ir>U2kBd^-Zh2=QR`MmAa3>^lIW^5PUc#p$S<{7%X&aB>+Eu4QTkL&Zp%NO& zZ_gm(rsxl_Bj53uxAW|zwmuRkbjEI4?|PY0+h`Z1OdDX4S(%sidX#cMFu=)_GHwBktL*tRYrTsv1(9!cH_+oMOG43usMbpzU4~gg&wWGulU-jI_ zGo@A~Ln>&~tq%W6S=u$4KAC9?{5kCg3WHoPb7QdWeiZe7%}K>td$}I-$?hu0=d3g6 zZfc4*F&}+1$>|70iK?b>@aj|ftmD^@g#5M|y?S6w+q$ME3%-Dhd9vxb*L-MM5LPW@ zzHOe>oA_uRJxxtQ@rRRN#4ldZ8}QsHBbnYHm)hj(tPxSOQ6De0xb2lah>M-}61hTU z7}0`$Mc}8O({DBggK>NL5-}E5pLH`Jf}yZqr!zAg{eFl0&qUV4;aKl7H9uq88hQ#f ze%JbR#i z#Q~@LMc{ezUngW&l#!A0a_sWtB8@autF%)A|M{TEm8ROLF+A`&B4RhHEU#4OA)o_@ z@O9-{DT-}tYsK@s{#)Ew)}EeTOE)sDJ;3sOLESa`DoentP}3-#)SLYW1|LGV^rFQa zA=T}*sQdJ2t(By7_DR@?O(vRv@(Y18zm;Mg7jP@6_Wt$$wIR(!fFC6jVEfH|guq(a zKWuzjgRX)#D)*~{Bbh>P9lQMnGThZSh;zm^$)%+~HlfxQaZ&nHGiNoKMo^ZXkCjjK zFAmFJf^v!p$4jpaNHyWf<;Bt3%xKX_=#j}GM}q&k1WSQQG|e6{xB%#OXNr{vnb5vH z>p|$HYQydpbfrBq?W>SKz5vVeF=NtPPJX7)66u|w`E_(|y!gSC3_Px5_aRfU^VXLQ zozMD1In!EOORMHZbqeg5>{-yjaJB``d80Xd_)Jis#bF_}9Q5niQxyAV1p^)oJAM-f znkrRI8})HHt!qjh7gFLz8qOf^z*=Y}f5G?<;~fr0T_0?~+HQ{-4VHvw4UYyr=2{^2 zQdN_~;*^*==1o~gGH3%@U2%4mDdsWhtlX6@21ivq?*B%JnhjU;K!N{KxvY+#@42~m zpehl(vPp)u7xDsR4iC&AI2Pa>N&WaXGK0YL8vlAW%e+GQkKoUkkz{13Nc64znLquE zX-0A(W=~22g_>}Hn^oUpWK%Or?_xZIC-IqpmQZn5RT?96iklII&=2jov*a@6g6N^x zhE$f^bD?JApFXquv8fG#-z|oUro|)}^v`Y|9*`IMhz>?_SS&!3i~Z^H@w#r|kps4) z4uXTPZu0z&it3=IMcoB221mAsbH|PajGBJ^WW1$aWJtFESM>cZ2O9p|9Vmh410z?4FvMIMXo%I`h$>{$u7$?P&qyaXW`EeFnbvCl`JkyFrvN z0`cDJpJ^s~Its_M_pqA4XQvS!=)Qo%X4VZ>P*BkAD%rWsFC(*_5LD!*wVAohQ}oc)Li& zE;UBzRvD=r9p#+`blz@%++RDA1IE?d#f;9Lf|s;JEGmVYo7%!G9a`bTjDcs#L0?uM zw!MCq0?CMd{QkY~eb?2-zP2pfU^YOXB@7IWnUb*0o~r8jpJ%7;XEVkNy4!eKn6ElTMh-Xt}u;5V~ zSo#*qa5|C8F3ZH7UvAa1POqsTt^d}goL2WJrj}&t_lWDe z`}dt?(9V%~N^+%a#vMLuDJu3VDdP8ImoE&DHt=1}eQ;>R*Pv4*R8_Gjp--zVp}9U` zUt^!In!AdoFZdVwq9zXh<+y}izTTAsxSnjHE7gJ#A%?>lpQHHh?B!3gaoV?i0g z$$_v?-0_R0B_jo0l~21P(H_hE$d2mHzu+y~<8VmaEX;_?I0J&1*R>@!iW1O^*u9F8a|H&{-J>ZZIH<8 z5Q&EqXch!Y3am6L0d_$ml&VdO!ve_&WHpA@76+?H&{qT zI+G*pY%iRr;a^C#zecfPx~itU?a^pWDbP4cA-}>k|3XJd8sVB^=F%$F1Jyk7e$C{m znBb@w60&2d$P(*69gd9pj)e(iuHB5Y;T?lszM%dg(X(Bu2RnLPjxoY_?@nE{cg%Ay zk2*DtVq<39JAz`0(i-mdP7UKmV)y8eXL5uWI%q?VkGVHLq#DpX-mtQ1{Zjnu00g?y z*v5l2n9~E3zj`lveAxThF?(D6|ZZ#oi3U%RP87st=zr zfwyb6W#2>Yb8}j+>oZF*1pVrmWciyyGV}XP!laKR;FRZhk7y7kaaqr;5bkgeExj-ca|AsalJ{p5<+mDn zkpfq*|J7tdPV+rSRZkAn(mf+6+?0khq?^m~0+vR8w>>)J9|PCURB$`EeLyfQz>_>9 zsc`1!>!D=XA9QBGJSmB`5}3adRew zsVN4HmPW+=TgK@JxST?wIbw5XCnhD>+;2maot3o!$fk`hEuKh|4WuL>cxxz3hWh?o zXe{^}EQSEbx1G#nmjB82^5x+w5<O+~5b zA9-BFu>Q##Al@>6_oz(=y(a%@YWbqS|4BBRy?OlWgjx4^)%oAuplof z_WGhQl`^wCcHE*jcZM%{#yZya)IB@Fy?4rzU+M#BTC6))KnQJH(5e7{RPTe|ZcazI zZ?3&vXbBMIG;M9T&v0!l?;*w7_zSA4sag!TpL!!AF7l_}G zHodx*SHiJwLXWimC`o&N8YyS+XS&F5OnLpb+q7+`EIw8NtF_v5BDFU}4-xBz;d} zi)YaWqosea-}Ur_>!UVK{ZY|0(H4PW&6|^bk&Oz%DJQYwpo?^*1lw&_?KSvNxeHd< ztt>i45#CaI%1iYy{M6QO)ZY#Nkr2#-oJuXAs8ZGDv4dS`6Z~a^iCICMZVq#->x8fa z68L4>*@CVXbgKI?JtYN`7qbBv88!8Ulvh=hK7r99*ABjqiL3oit1W;)O-p7GvCy3d z4j+6B+<4$eo07G(00xa`Z)=gN6^F(N5OUOOy{M~U^G>iNenO>uo|kFs28SFhPL2}Y z;dedB9C*Z%@Bh;3y)&9tsd6F}*^XJz+&A-eDbNfO2%QfNlU5N_fD4YmbyPwnyt_nlbm9L*d%Gt=G2=fv-R8@M|*PXE*P8{;3$DNAZ|2;d;qzf^FR) zjZMZ~v}5w|7v2@i#rAN^%b%sw$N7H`EZdP@ABz5%s#*49g(zrX2m99oF?-Bvney>s zXBkGK9Jzn=JN-p@)R}~p?(kL8F zJ6VGO6;QoL@v(#m}FS9e8r*L}uPqw6y zP5oHtv+eI_8@QZYJmd~ZsyCVDi?IeJDp{zL8Fmz2QjNWHtA@e{65Lc-u{Q!)gi}PU zjY`p;?R)FqpOfaABN_xy30Lq{n^C^NA8X$A)UmUt^hsZVKWkDgH2;VYTFF5!e3dsg zq!6WWNWC>P=Zp@w!{tLP&Q4Y5_AB9goOqWn$nY^ff(6Kl3cJb6$P?z=aWEzzQq^Ie z4HigAPQ9>#4~-)1Qp)gr7{t~sBP*93=70Jk)s_s`{pxb056P|SeL62aTFRM2isDX* zCgs_gdRChmmyT0)DLCSKDoTq*wh9k+lFA|Qe9)a?U>IUBwI*f|RS9CU$F*9Vug!9E zYI{D`B|Pr>8{|-)opi8K>Tz+1(%XOrpYL}GMDLFrOlHv}PI5TCWJi-N5-%qKE3+lV zfwI^rmW^=U!wJ#&$(;!>8HiJN3Be-eNlq|`E>5?it({~P=yM4dq=1^EkR1(& zd^Zwg`-yYVi~H4TR2g4A(PO=v*3#1f9=Y53athjohu__N|5CfZNc(!+%#6g*=GL(s zP3U}C1j>75DKT|7uuds41sTIIIT$gp{?Rf4ZRb%=5T~S4UUZTcoWjehL)OZow(oCIN)<)Yvs26cRB}+$Ar?xw8+WHT>!fdMFk>K zTL^dePe*t6hS!r{7&&Bv>&CH3#bM+(YT(`_V!mzC-zn5?Awk~_4E5R?npS@NX;ChB zjroQ2Q`;^L2Pf&pjks==zFLd8-xM8fpti`l<9ur}9<_f&Z4t!%dMxN|*W<5aHU_58 zNt2Vs*@PFe8sZ?Ht)7VIR1@1plPupb`M#k>-cK_|c1R)p%K;*quD&dZlXLZMWF^*? z<1+Z-%HmkQF|>P(L7S^|O%a%<7@buAw|!$#IoBR{EfLOP za^uplnHh9E7qK~pu0~|&%ekHY=)UtMCJEsv3nC&`_BRM*DB;$JoDv4;g3&vN0ttrP z{B%<8VY^|>ZaC-#5hYatnJpt~yC4jQ@(w8y;)eVS4l%>YfRG{;c`)JffJf#!nNTNZ zC{K|lQRl@)w5*$pyFAB^`MKUO%^lthE@n^=k&x`qG%dSb`}j5(<5web)8U_Co-jX~ zp<_8BQCu=r>S(l0p&}nOuv3Dx{*$H`esy?(_THOb-B~@2@Fiwn?Im5YQUaRD zY?z`e-oCkA5X-6j+n(RisBjHd@1Syq&<###nP^7tG0t9T*rlE zpKLo((Z*&n&O&uh`14teAOFvLs3%vvQVV9o8+FB3U$+>88W0*q{a6NZk1DBu)}8Bc zAhvqhlf;S)cQb={Ppu>~sJcHEuBwuNqw8cTIOKhj;C2fnlb08+<9 z>IFJx!)Y{W8*)@_mn5kddp4YQh_AAQ#L~9x<6QN1st7@{g)ZaSg;pOP>umZh>&v$W z;lEDne|>&20~bCYTwc_xA=!I%8G+u18Oj6>U}$bTBJ9SBU-nz=;D1QfXaKzRSt0@9 zjag^to}IO78Sk%`?j7de`Dn~16zY1F`W(C`WBY|THo5Pmb8cqySa zAs%%5+wU`BOK`0Nn@SR%x*;`kCs|kG8kY5N#BOQBG18}1EFNpTzP>&!S?yvWJs}ez zqk=UJPvV^Bzuq83M(?7%8+#ywK@L}vi@O%D8P01l33XB9&mo~n7(C2Hel~WW@^kZ5 zd;-3;?jb?f+z+FExORdYHa?q3nOkNUq}f`k8UMv!=iqo! zyhs32&{ciNDV0&ru!TH;Ln)B~v<|;8tE~|^A__aBc|?+yYEMsU!4OUu6|k(^?xKLV zP)wNUjsGISY561o_10_*Wubg=5(|%RBK-H`<_9xWO4%r<7YTI$VZfrYa^FJ=PVg_%7U1Bf zfvm-FEhmFpFWWoJcWAxNuRQ5C{?6xhr=gH<5cNuk@sHbY|26A} zLGaD5F>uEtfOzn5iVY4(Pa#A2qqO|EMkcIb@rfj7ENiBaCE zM;W2pm>CyGqV5@<|K>T8t#=i_$gq95T=YCHrSZFtzS{H*q|QzAJX&&&H49#Sos4NvL^jJ7>(tLG*8WY6>jusVt!cf#y29gZ1cpt54bK2Z3tME5bnwfIuQTC<#n_@)~Zjst3dGCBI zhaVaTh{i>|{uP%fr7K3f9>!en4p)F#!+|=jnPg??p@I6I&SnG?M-I@iXR#c$5e@ml0%o`mS?OK6AK*=7bJqZ(%-dVsR^yb9le~{B3tK(n^h+~ zv@j-c8C9K??kUWp-QL;FE415}>SS1Zk8a)^Omc zM+-H`ey!{?sKPE$v~>^(*ydO0<)~n{J2G^_bdYLnnyDVDnEQJs>n{ix9<^4B8&oOy z-EV$3_%8cSAooD0Y(}i#Nu;Dze~>%HjGC@gGbLC&Ov`?Usi4phWeWacGKX-eGHHvO z8W<3F&k#dZ=7CO2o7O<3;q#u<^J_NOhyhlV#ZAf zZ3MNU9&rT&fxoKdOGt}`QHsQY2;LnW{QN0x{##0I8xTrNVma}Nq6k^*oosb=DesYg zGTYH_{KGuds5A9qPxo*vhEx8`^uzGs^2y?ax|PJNJ)rPAe5+r3O`)BnK2`Pu}}){ zD|N!eNDg8#DF6lu8B9DAqUL7ZFDL_pnng{@@i~uV0u+6*SvR6XLMgOf`+@?>OnsVo{Gl4QJ;_8^%zi`#`bqje-&-1x?Lij{>o#WDyojKM__% zOpk1GBq=lqeHK*8sDew!BMO9MQAOU}Ne7Wax;+D_Advn{8uTGyyxG1yQq)J<{7y9H zF{pqyG^*BBMB&Df1?l_j2xP3Gp!l2iBUksLNUELTU2IcJ4opTv4nHv%BQ?E}`Y{mp zo=vYl6hcV$1(}KYCd^l>pT`Mg6;eP)T4@2oiAO&#=7jKNy53*DK(sB-QqiNiqVcrB zYM0eZ!*0X&>kW##$@7SC)^Ct`te3+Zkr7fi?zdS2nuu6tx>BvtH=~u~rx?SiNNlMF zYG{lw@*MPU2#GAuesa`-zdL#-onlQ^*?%aApsCiCX7wF!DHZ<_RulT8Q7_g*@zpMT zUK+>BZ5%epIq5maMRJu_s5IK^1V9&Sl#8)=n5AQ?KN- zH|Rja838;hb+OR7i2Pvl9xyhn<_tv$zt*mmmBJyKW@A4h*W#+Wsi{Wm>1Q^EJK4VZzMuqF#q3E$5_~20P08 z(*lOwJp5>&alPOJ&@4$Y;f>L^@5LyJV}fsVKb2hS_)DC5H!LB3vKxE@7l0yv#lOYI z=ufzYQtfPHp;A@W8#Mlvm%$e^6~R7tSUbHWA-R~}DckbWFdJqQ@jpozzV3#v{`9ZH@OmN^0xm0iaV zN8nL$SZ)rBN1yM-#TWH{o_>*-RwoSo8OnLFNP%h-k^SPYHY0l++0Y&(YO{gi_bFUr z;FOL#RfV(vA4O*s*47q8;iNz)5TJN)S{#Z5w*ocXp}42G7x&;U#R?SH;_hyt1&TYx z-QDfxeqWx>OU}#LduG;J{}BGu=!9qyZGJ*Z%m>o-4(;l!RxSE~(Qo9KOTMxA9<0c) ztsy6DVD~Sn>Mf{f*2)8fPB`<&qOA+SVg8D*qi6wUGe~^eIVc~+;kmx z!9Gd6&F||vt~sB!*2i~?537(@j`!45=qfm7*4p#H_aV7;!k0gZ_nQ-mUC7Wh26lZN zkPX_mHn?3-8Btank9E9Dv_uPf8G=7Nc*wM!{p#HAA*0d+8N-zlzNX3pvu#}dj#nIi za$UmvG@mtYpWt@1n%j?xhSZG(-2!o*ZoOT`e}2}rp%s=5a6`c}(9x2)Ue8wum6D0@z3M3gO(-WETC+WzBcDiAd)%onat zrjfmX?EDh0e4t5i^ie2EDAwnC2!OM|Z23rrmWJ{6gT!^-%E5zhDzu?Dl9~CN=Uocp zVypMR{ua-A+Oeq9bGixu2j)wxT5)#*T;n`%o5)^&`@hi+Z%09x;?%DwdmTD6*Zpz_ zGk`{5S^V?h*hWsH!R?Ddg6WoNFh7^k%5P-76#-oN z&g9b$IE^W$f74|nlGwKY*`RFSC+1)^`kk|FJQ^a&UJ7VRAV*Z558{9LWj^zrwE}a6 z)aje*1tl5!1oOw0Ydm-EY~515aQI@Y{LL0XXT`Cz zvP-vHBzPO59{K2Pzx0>y(wy0cU(49?JY=TaTag+`V?=J*QfQ|5bDiJ8y0Hl1S5wpO zD2r_EP+kB%r7MvF4<&duer+6LK0<1P3}+F7EmsF5WtqJDEF0IlH5tohu*8QW$W#?3 z(BuU2DF`^}H`R`p8MK{yV~va^C46hDYm~S-|Lq)ZrBI$2rDE9tnj!UN;PIOao!Q=A zg{IZ$mv3TfS9uV5pUoAXk<(ClIqiKE>OEIe`wWN#ax>7qRU@{b6})Z`hoJnXk)ToU z6(lwV4mA3o8zKyWd~!mi#q0y`mD^Q{36aVRC=Fc)-=qX!{EFZVxtA0LaY3z_*TO&| z-5zqk;3UWTDNKdAKjPcljjOzj&w>dHg{;nh(Hr9*J~m{en|_i-vTI982?!{0Oou8& zTIcORFK}dX3Ofpw@Ri9eNA0+CD1gHxFWvIwf6pjQqR^tCp@mFb;+*2q{o_z63r;0c zM%KNg1g}eSZc#k6y4y^hC!_rrx*%5hYFIbKMpIwyi>8j${h)>jaNaI=p^6Ewa9em3 zk89Tp?JCoA= zxl_JvC+zAdAqB@F0TsEmswncAtohNPF2|u>(98WGERxdmA*;0}gadyf(-N3lLQqws zwq=-4XsBv0^twF1-OVs@v3IO-b;;F7y_FU;j96-Y7Psfj!H`VL!+z(JG zXMM#fjt{hInECkB6Pd$c&L9{*=e&}A1nK$*)gQeg^y(If%APOL{NhUXbZhqAJHNii z;%qw6FPSs#X}N0^%Sq?1Xc7fY@G=P?<7@A0BlwAvuJYSWvN*0@_5YmV|Ji)myHBq- zy!SmRHO{$EuIO?o8OQdB%7*In#JUBY40t4Z_@^*8q_!R>8r;SX>U`!WLWz_Re|7Kc zt56Q?bwl%X1fSrEgPsh4XW>Kv8%PiF#Zh{ZhQl#A0-&KT=gYQY)w>V@BGxjDG(rF( zi+;^Zd0ron4JC7Hb8m$w2J-P*@UsRf{L%GZv?;_IFP##OG3}cOvoKDE@`=skd*(44 zEXLv5edDbml6FGsj6cJGm-VRsF0ZX^r|OF6+Ub?@1(gt@PzUdJ%Gs)+G>u$?kEIGR z@`qLoa`J;i5CTslc_^&jM%56kJ)HVY4Fw?uUP0AG@)}x^SW&hw_~KOQ3CIC^6i$5~ zT$~kz{2&cs&1Oi}-^N0n9LAG@^Dt|5?}9v-iBQIadhDe*__rjvYBX@}9df;=cjEVW z3gpCyl5y#@~XJWsRRP3i#@Y)BAlHfosj3>fYWQs z>}loVui#U_IfxUs=4L$IrdYnyo>f=pjWe3i*upJfur~hGtQi1Bse>P*4$n=?_C&Vb zUr*dqQ;=NUY?}>_k(iB4%$*wyxNZGIyE|K(Y4v@7HFD~JtmPp{U;t5iOP1tZhq+B= zi~X2T@b=&n+NG{DP7KM#?|ZZ1^!NhoGY_sa&z0oX0uKWUVORaOLXWne{H=WY`}=n6 z%CL3btB|O_Trgb{`6y~AJdCwxQDnSI%1V|M$%-PnH9An5wO{3mxKj{7~BihE&u@=B0i3j&~ff%c(7ze70sRo0=2k=m`Dx;#7qd!rJx{9_385#%;QF{UDZ;}rdb3ip1$?dD%P-{wquGg8 zp$BjQV4Tzd9el?Zcqc^m`nyt?;xSv4$Q(JzDi}op$c3f`c&vPCG7cw=Kl^x{k#5#s z5d3e;L}m=n)@I?|Gb`?h%fi2R3$j*LxMH|K81k@Do}^?F0ORm?qoI+YQbcPoh53-7 zT{~MkmIXGiBqW;3$;|K!952h72ff;Vfq9hb)>7Y8PmSWNM{#L5WrL>21H#_?l!k30 zgJi0SD3`BDpDol{E_$&2F5cVgG=|cEEQMHkDqoaL*X6o_6ME!RJ(yxF1~N&5FzdZT z((JCF(o5mnHtMyU&PNIfz`n?$Hql)d`IUoCX;oH#PT_DHiS=0Q$I({4Xx{v>mGI(askc@1Ebg+=8ez`f zijpxtG)$LCWq0@EIi`sVM29un6Jmd_8;Lp`>MUKEMph3GAKGj|oHgzxyta7u5reHM7H}P)V@??twXtT`ry7XPeCuDtBII z77cva&D*HO6rWXUo0O`QKr<(X4j0d!mU-mfsd<%Ok{4m%OAnaeE)*+N?N=Q4DGfin zMa=4N*u!@*9HxuS)jrfFMj~&r8Wv>UL#9`-DO^2AFN;<} z_6?O;_DU8VS-(}9t=~}rkdQ*1Y4Vdx^T+V~DHGo)|7(=bZKeE|?86O8C#7CaW-`s= zb&}d1ES<^1FWSopPA(l>_g9v-@LXf+?}gl6pW1RXL!bO8nVH`7h6Aq>l{~>pWn~}L z&Y~djBT|oi0%+$B>MRT{Gn8oh|Ct%sqztwfVlY1L3&#^oSnoFE)ncUPC!JTz zPlhroP;75(qy>935&tEA@j4CJn}DOAFMa=J$qtqChsB`pPi*GBQ1j=c^HaD=JDA z(dP%pUE>$86?)-+R2fu1eWeQu4ha*DBtp56F^`ARw1+`r39WX6-}f%Up|7Dn-O=A6 zu@rM(!Em^pDsma4H33Sj+djMCBM-e^9{>%paWT9GiB%vKlwSV2#SnrVSlp2}Grv0z z{8{K4Vqv{;H03vczC(h~L}o0H(Tt@-bqmx{b2zJ4rfhU|9s3suG0sTJ4!Vex)_ zTEw<){7mdAgJ?(<=+T#10z87gN1jkm{P3wQx3)v@+3xJtbX|%Y;Oh8hn}0mqqDpQT zQ}*t_et0*-dv^V;?)zTVUl?V~rG|se$@9>3=fd>y*&;8Lq9+u# zMUh-r=Gzbqdcr1aFATmrzPaC8&VEWA`a?!mZfQkmwK1Y<2d@U*uMdO74~v`FH=7$x zDIIlt9yD|3`=8YYGk0a!42~asVZCd2x98jWO#@@O$4J=eRIS@CzKrqmG4+aKHl7h7 z8L5#)U$4b028kaWeZ9ry#oY-JQLlXAHa!^;p)rJilS6Op&v1{;q4anpuW%EhHQ)9X zAYSTJJMxFXIcDQr@RpZQFjLWBYA7Keun`+t!S3&Wv~D~fER~!;G+rn*tTT!=Ms*>t zQz*wnc>F0PW$S#^gpDj!dq$FFb8cPT$JR0SNfQI2&u?)0_X{=NdDn$Er^o$D<4~8n zMPH?6dQBU47Jil=4^pz%AdVzBTl`dFwGE?JLrCAQ7-9a;@|F8^O)Vl$O(Dkqa+QBs zpLiRK{#4sVink7%Yx*oG2F58+lq%$`D_B}kHtjsQEi6{?o+7h&(QcHr3Y(9m?z~Dn z0&P4ihIgrYYNu++iweNSZYXD!rlFb>B%dh6Tep}tVZ&@;_jk|4%JM#4BYeLsuYtI` z&-%xniwM z!anw%2KS>$+c2fsY3f$Kyy-smPkQMRiDw(Q&TDhKu^HIvs68XlfItKzEyYpz_M9*P!mZZ3wya+ky))cmdoH-u zON5zeRuCi=rqU|Y`ZF9z3?Zixl*nHbzWZx%iC}RYh52r#g>i$=BPt>Lva}gIQb0 zZyAd_ipx4~mb3N2r^~JD2?L&zAfsy5RTZ;*{oxKK$&Ka2Ek1Vge*9ZabT= zrl)3h1-3-RIRomMHo#e?uPqdob3%K$11c&lMX%w85xNfs{i_MGy zoo>B=1ZHV)C~mzm0Et49$0*5S0nrKf0c!B~C{XU2djZZB*VMm^#WUmd0c&>)`zO1`2o_G*QYY0zxazovkIl+2MgzYIbaCxhXi^I zp#u;JIq~?Nw_W)>$hidG$zqcyN!#_4vQd~`>kZMid0n-+hDIS`-j~U7>|gE)n#P42 zE%)|rlOJ!rbzS|K^~_Z9Esg}UVwrNJFxIQ`j~Tm$^3&5(%bYQG!*|r#4Gt~{i z2`W3n!}S-q#tJ(nsi*5q{?%*GXCC$$L)`AuB5)X{5WCE=%%T%y4gBUiQHdNyTH=+@ zrV?DRYGBodVuYdtc3L*_pUiBJhZ^v?-~5aAbrW_~4aae{nmD>OXz{FFTt6yHhGy8e zz6KIwmbZV^3y+250#X8{26vIW%*i4#Le>8?22ci+lVM_LbjoGbRz^sL<5#gyhFtxa z4lyG@?{n5 zK{%znztrlNV`N#C2lpB;nH^~YUP#2YReza~?4+OtO6{j9e&;l{>=hU8?Pi8_wz7mJ z@Kh!5@baIqnR%vVmw{%uzVn(jup3e`7Tmw0WVPu!x-9*%ZIsM}oXI`F0~@yH)wesf z19we~@(m!v@#2jdz?)$)>_b&0dT^hF%a$D`Lk0D9?1ZORm^gmfz2f$(mk?vuQvNn8nbUe@zw&Wi@$qf-;MbPf*GnRxF1>YxxnT66qN2tfGL_Q;@pJ*VYE5sl%6U zr-t08i14C-I89C(4dEsBNqYXK*DYp+Ll?HEw%8iSoG|Tt()GozvNp+|V)f_dj*S6| z=$6M*(X9d?)V)L{;a9mb1Ubwy{eYIx3Oon?{9*>sFS>t%pyXa*EbCWZ-;+X} zq|z!nOc+gzrR~g|^GB|SFG3qS-`+|h|0=pOYH1>|ZVvxrKJNjMhLwf?DE@suvthnT zl6;g27jvnjsJ@2T(%@+_%y{O))p#Hnn;XdwDOAi%f}9))AFF)+j3%EUl=ASxor{9( zEtG~!R2_vA!>gjD7w(1*u=9HH5HLVM38hJP?1W1hXki3ByVi1j28R;6$XSwv*d{xI z?adL$T2YS{&>#N);ZXVq52>@`i?=hda_|;=9uM0--x|1fCjXp?WOllrn1~603N{3w zYwLK%7H0C_&d+QAtVTr}h6(E$x8NN+r;>cSiB~k2#5?NK&B{%|{p3Q(iO6I$_xX-l z+5d*EGx^B-+plNC^ckxz{q=i25?DHELLV`cYR)$5=126gSiAs>+0geqMrUr?Ek4*t zXM6gR@Lk5n$L$e=EZHCBnkMi|KBb(cqPNvYTY)`4dG7b8E2rwmhnld<>V+1}|Dt_$ zP`81hLJX6kE>PW+03JMA?ZL0LHOqSMzZYmGmZ3e`1xp*4{hVp^hklC=JG{EZJ@aT2 zV8v>{w#0!C*OZ^XF43(GgM96TR0(0n>K3UsiEh0BXtA$DGSRRnevo&KZTJ#}Nup zQ@%9>Z=o3uN-~CE2vGkKG;~r)_)?G%m+~RKS{SKa8)SXKs(Gwk=BSpLh*GD4lT~gW zn#dT+vMeTFJP+;0H}PaUHZFvzHbA)M|vJF}-@!M*x89G@Sr7k{REK&#VejkXFvh zjhN>j{*hjvzv+CKvX{Jy#p85srkjQHrL*_rCGXWYxfov(0(3Z6I;%(P zcfGL@i&3XK5V}nnT1^0F-JK>I04S2#ADjyM>`*Vy#3^&HDy(-0DhcN=PIr|buv0Vh z<(9hty9++q?tCs+w!c3HGh&JNaej@AFSe;f&u%u=VBc)1jxy#IvM3*`d(haUnic2leN-cx4zh6$04827u4#$ zb~sF&CrmHpDHP?la0xV?+g(e3heyDYtHf5uPl2h?5=Melk(dPH9P&wHO|w@d zdNq)JdGw5cUVJDrV!>5Ls(N7Gx`@@R^rJPQWYN=kcrPvff6qVW{i@j0-qz97QW>%a zim7w8J6AxD22!?;DUV3PAv2Jy@(?B<>=jD4uKDhJJWV{;XkfA0pI*Qc&NYDxQa~FW zAUu#V?`*`pS`q+>3rmzG=LTkfa#dvsk?1_>;;|Z*!*f_}vm;3tasQyLgOZR?E$z7* z64B((EwP~vP+{}X(eVA5g12E)onC{*-P9Ve_39}_7VcV^>dAsfp+_=nw$>^Qr8a#Le*24itb#uaFjH}|4X zBQj|cWGnO87Mb@*{)rqHpi$DS?5{HqL5=}alRZ0qnvt4iqycV*oe<9-Q*e872*GOK z7F#JKlJl7fZAhwRfA&?ld`xayy9_sCI1mbN4a1XnR(U~Q;45hSAtj;pMFKV7H-RW0 zZ=N>3)i0@{`|{c~F1&}cehOK~(xRxGTMM$u57XN8@RQppm2Oo=m~7QrM}Ox~=~VhL znGI}zD2$ml62dz@r8g3(d=99C%+X+V&7d&ia5h>PET&DqSA7~~=CJ#~FVW_j4lADq zzw)6pUn0EG%bjJ1ocfk5FSM$si@1D#KIZLq>DM&d+-O*!m z(tWXNRpP|<5m;&>Ov66}-;Z=tL^ID(5C}bM*mkh98Vd(Cr8lMzCUi!way$W%gD&*f zEBnLIB>$TyP5Tz8+@?sVvKPJt3FoeS7r}^lsT9qxE2y2d;)7@XePB0dikB$@@O8y) z{T3bYnKBjX?~lvoioa)BZvCf9C46dvOSaZw^yD?qL88&c*)Jm=*p}10W|g1I;gWQJ zG&KR?Lw69z?VC~u{I2+omZkTS4NUvK{Dl9q7M#m?9FOF4R_d_ppU)wZ_9(Sg7g|f2>&@va2m>GW25mCIt%F2 zZ%pZwgec2Ta`5!~Mpa6eiQZYdK>xw> z4G2yd1~D|>;g1I9tF)UkSeblGv_Dq5dZv}=uy$6RZ*wI{7jQ=&cgeBg@Ct=;Hik%6 z?t&DgJc_5jKR(?w+*CVo^sEOHe`M|Tu z8n0u@b^y@dfK%mPjPCjNanYW(LjdVB#6?yP9igrura`VmjZ>XcW*G+X&%v|qEVEWLR@EKB$;TqHoC zAkfYJ?a80!u2rWZ%FuyI_p5jIXz$71{alW_ep=j_@!v7@2H zQYQ+VORUsR$*~5MqBt3@w|Q-2ZU6RQop*1a@R#H58U5YXg5AzfS%dSJ!~-UO`ZzF@ zR7*%?$!p*G>wgMTtO(Le(p1tJX>WfDkJQ+^;s2%D&#?|&da4IiJSYBTALn28l3(^Y zFPn-*J3~FW|Lw^xu5|a$eKdY^R-(J zT0i}XwNUW~?+Zj45)Y3|X72(Ok8vdDBj6S2O+BZeJHA}fTqoF2@h<{Qs%$0u<5zab z5>Cm!#mJfPO?39DQ9|r@^SXK$8yzzxhx_*2Pep1I#EArai`@ED=ixLf1O-tfZE&PI zKYp|*ymNC3yO=X8y!C&O!EiA$naohBzF^m%f(piL1AKl~E$QcK z=HeNW6G&(h%F_(Wmz^|?x9Mp->&8!!JLj0QHL9rUtk<&asfn6onm4+Diz*z)eatHp z*1uSMXZ~E>nam*cPO!#X*W!HmS0idJSw42IlRkJfSKlC+wcEVuz*yr#rZAggZ(V8# zdk;AV7cx?u(%zoof8A-F2}n)~-0pD7S_xSeWa6Df+Bkmch5Qh}la%#TY${w8ckq>@ zFS^$i)D7|{&%Y?>gpA@5eNHFftX$^dmdIYo{-CV5mtc-8-UJtGs~odd(3;i$kfQa! zoNpe-M;4CAcJ`olOg@*@d4Fn`W3G+6xzIVHqv!vi%~nVU8RwP*ZiUNn!?~s6VcX)L z2$;Ae(tS68-}}suhe9y~L3;64*74C>dFkINSt0W5Pu|-1!n^nhP-M!uK$Ez*KJJ`t zT&8qwq7D@DX?$T@9BGAU-=4(5zu9l)ds8p!^|!w){lG5}ehuzqQZ`YkI5JM3)zB zXuqX=IyF%{Uoi{z-aAU+H>G+{`?99q$Fc;jK_8na0#1`>uxWSTbss9Gag-s#>)}+g zJA79|Q~Yr5xxrBb+Q~TjGydzBZ}?GPkV=CT7nG)1i<9B|qwp|pG-jnS0N_r5ekgBQYnmA7qXVeR%`=42siW>X2wGH0?g2pux-nU%e}v zeFa&UeeJ-c8cxh9f$D|+Ll~aymp|hy+uZJn-yg;$+E5xf5CYCIq750F<=4+I;w~KT zrpGd0T5z-&8*eaQxcYnXRF#WQz^?xgSFYQhM`~K<@w!}Je)!U@j+Y_+PGX_{u(96C z7#kDNh)J`;vcPMztYk5}R{Zhw2*1-AF? z)Q{>{Zr>#b-JV&0>eZ&7(?3&@u+Mlt!A~A2e}KyCH2Q7q=-RyEWW} zyF3UE(FvDS(aqCzv5t?DOP(Q1?#Fsnw7#O<>%tf82v^*3;bSIYrwst5NNWrZ#k}M_ z?%}3G1sU$q|8t~KpL*~6F+VH*!~RCQLP-7f!J@RVi*5dZWo?ZQ7T3m9 z-+Gn&j2n+Zy>BvC^4%*evvbepi^eeVCW3HR@?Wy-zIPYl*jeI;sP-s$Ch7OTbV&dB zFFLa|iWg>VO#4sY^1jz600TfA9pML|)Bb~99>bTDhB+ynUj&B{*y zh%;j*r{bQupguKb=+*aLivCrv0AnQ0AaG5nU&lnoh43HF5Hi5_@0~@bIQ?)?Kc?(W zKQmi4m&^P|15z2Jw>kgM1mna(P>uPM&bh@@YNARUkaG*k`^l+b_xb#z{Z@TuYpS+U z=eiuKKA@>Ya{hPfP z>CfRK9c~%J-hZ|$)9>Rl`(2*ipr=Kc?NZ253wy3&k&fsI^mJ_!-0jq;UaT@Q?h-D9 zP}g`ng^S*u&^FbJJ)C@0{v0B(j!x}G<8ra1EaY|bYT-Q&ANp5gA(Q#9dsD)h`j+P+ zZ71V3aiI<8*0N98K1mawxuQRb5c@}pcd4!+sefyF190nf-3! znXM&D)z;%$*if#dGr8l5=0&^B;)2NP(bTG&a0Sj}SATq~ASbevEDdaCSRP9)x17O_ zub+Npk9&?ZO`FnBN~%jZQ2cRyRZHjQpOl;;<^K7d07xLv-Hrv6z^vR*ZIsXBw4o&3 zUO1F2<48Q5k4AwqU8=)|K_v5~3O_vYO(~gldVMrXSr`yB*@n3y5#!s!8|usNa%fsw z1j&*tWzy$mfJ&4pkIS?1T5Uk~&3Wm9X zgU^RT1qWEnYg!6&u7-qXqhr28>VH8~u^& zvzH5vssCH@FY#HN&^MMUPzFt)v)FjXuJ8YCXqv37K` ztu#CpnOAB`x}scd>XMY)t*N1QJi0_%_7yqZ_Ed=a-O?U=dd{7Rm*$8i|J9Q~y z(PG|Njz9DG7*R~Vc{NawrmyGjpUHObj^;%n^yL+fWQs`hwYb#3>hgp|+KA>&qpv+V zukVZACX9;j$2K^C@AUvwmCj=f+wjG%ZKw5ZmoC93rncQTxr@lR|E22EthsHQ{#EWc z7188S3=tZpH=$E`)44xHC$k&ZeJ@RznIZ0AaS$`NCfqkzg(}MUo?8x|M-x92pYfJ# zcF1Tf+v^x~o+c{wHul)$*-#9)^6s(I$C0r^sU5fHraiD#ifQ@hYsw;6Wz6pw!zwlr zVt_2g{fS#N?rD+}2CDBm!Fp}58V}Mk8m3IdQ+2S9jdYF%ughA~kl*7)b|*#Rb23yR zAx@)4BbIw(6^xg=%Rlda6fNr_x2@Z^OWnhB{4leQvHn6*2u?(D=wdtwopWuyxd4a< z-^Kf{)-NEAYm+u$L@z?JscrV?cDZq|*j#ul@)YBOe%a6$^Cfnzpniy^24R}LSDuQ( z3~P>(9PZ@6uBegzfo>aRUH11SGT?Q!x+DsW5E38zUA*b>taN%B=ktZi*sC3ba(p|7 zZua!}gmboaY7G8kC6`u?!SJ06!3m48vj#M2-Rc9I`F2OFHs6DHccJk}Vw&F&SGR>uXFUWL zU8mQ(vlyr;*Cym8xX09Ddyva3bP=k@m5~qMJxP9FX2y(ucNKiuwqE&Bk`Qi)2ne~F zX#eP0cetKa`@;qoy~LX$+2!S3tH-0Ic3*tOly%8;McgCrzWP{d9V?GYTbg>gzQmx$ zHyZ6ep!t-FcJntVTh9~bl0mx^cqXcWVE|sd+Z`b)ne~wd@qCIPpSAq zg)C`R#6<5OyU{!gisad)WRVO4VAga6h7=N_1?4%b`%V$7zuI|TJv#`Ku%{tY;E17m z-{Vd({N7@AC%gKcHKAP$84JPCdyd>eIjAs&!iR`g<^o1&mb$YM9@lKISa&8OJcu_` zZDT0*lH%p{S{y13_s4nTxws~n>r})4HTZb><`Vy#m`QIHa(RVHfiuTH`y-yg*Cnsm z1Uf(7r=8I27C{74I+0p;b7mFZO-LYST#J%w?F|1;>~h)_7aGzZ60Q%IMpUq>jvMPe z%G^nJ2dVeH=mm5Aar2e_O@uid-O!4A$-MoXLTOhnppRq!ZsO@(2~C-#$F*id^PM)( z7thUFl{@@^2Yi9>BUjV)EP-b7De8~OqIc(wzlY8DDr79#hzQ9DQcBH}5SDvKfHm?1Sm^JR? z*^0szCmDB+;V!8@Wx~!p*`X^ZEjY`| zYG8p;IdCV-R=wVW0I1YH8n|Ek-2XKHrCI<*r^-XHA8vAR?rvOdnNo+X)9e*C8)p(x z<}ile>-X8%j>9K{_{8~gE7IcNx$tGaxc*NjU9y5W7=fA+2-AjJ` zTn&Tmus7(`0?>%%NFa=cVQ}KPZ zFRJIKd2y06P0bZTlrzuESV-(*TS+ufj}GKCeDJAgmzm4&>hf3$2}xbKmj~}avWx*o zu+8T$f;nNpDhAL?G`$+S%VMVF390t?f-#%DLQ;yIU$(*dq`AiMactE;uKtcGalL>q z#VjRRp}>GN7(k*BqEuik?&H9|No=a>VyDo4KJjE=Ix+cuF8KF6W)tx1KFMegoY z5pND2wh6_?P%Hkvk*KedK?$3X%sFWXlfZUQ#f-`8NrHR*ofn8}4P5gn6D3nyGtwH5tf3bGSb_CA^4p(C;rb?| zynU4JCRaFgBmx{!$XC!){W`Rh#E>hPgmA!1N=^Ay&z)V=b+09zke1R(aN-87iCV9u zYl~TD*28y~+xX7dthaWtQ@JrDP&HYKT9pTG=Me4>H4?@c>9;ydo(*EWNjXgjote3p z*4lG$RPgtCTV_@5m2`1HNO~%$a&fA#sIn$XH-)AK(Xx$B_tZG z=o6)R-;WNs1i%cH-Nby5q|T{HTBYVviL4eX;}@u21i4PG?{=gLuypXDuStfIMc>^l z4d!NuT&=okXpYZ}4UoaX#MZ!G@e{q-I1xscRZkCboc@5f14ljAUq?2cIU4K`TY04~ z8(@slGH(Hp^XqU7UolfT-Mj@Xo6P&D7S|A%MC(`xN}X?|7+Mf59xk358_Tqxf6uB! zUoy>5n1Cj9Gz{+WhFw8J$(~~mQmihyitJ}#CWJZB_N|Qo_=8`xnp$vuUcjg4zA^gT zPZSk+hdeU7n78bk+X>+leLlCyzCApiQecVn+;p_t1Pc`-Q}h}cy1gRw@VxcX)@h0> zc2yr8eq2Cx5VhA#d7o}1p51UfKTsc3fB5h1di0_W+9>c&w=FlE&!#LZoQ>T5->1X{ zzCWS}8E>!kE$rHMOUkkmU0EysvTW=x)`=w+hX|rH3U(76iIQpdd?Kr)O11)eR=4U7 zuh(pABM;MY?iW|%w_NPHLNUZA0(N88sgKig8HRF&r02^U&lY6pKbU#kw?3uvc#Ft; zIf^Jg^^cLO3he%TAdC7blGG2qnC~6C*b5xvae0uUk{nAu<(Syv*Dsi1C_2Q0p--GZ z1KiHUVnH!1+W_9!0m%gAxf7MDaU*&)u3F6@YZBbeW!S4^%*S5_TGYyw?32Miv-!pS zb25ZtFB7~a?FUJE_^1Z=(`jGUqViI;Y&if12NR&I{Hpa+zq{B&0!aNeUFB9LN~^eI z)@rNqr)Cq=3k9A~1*eNxZS7r(Qx5)Bzgn4fH)Dv%2UwV*$G%037;Pt7lL~Xcl&zxe z5k-6|-I|MDl=zr#ePd3rVA zKcZhRdBvOs3cPTB^y9MB*}Csr?d-i7maK<}-eW zf01$Pf7G*6dk`9*Wnz?91omDZFYg#&ovGNYz0Vb2pF33g;hSu|aAaS;#gQTFcnCGj z2nVW~$=4fq23pw78h4iP*bbNzp)eq;0fBIYf;bq$?BhFhqd^CXq~ib32jB|>(xUTG zq68x^TVTLF(%jQ71iG-{0wo`2JbIWvAI}c6?bt>DMXLV%9d*dsg~X0w6QmR%VNa%% zDAfm08fjy35B2J+2@zA4cu4H`ucTfcGQnq$>fjwhy9GX^fl-2j|A`v(Y-bEGjtb*H zxlC^^zA>a6RDt&N(z+W&1I^7}^;bkeVhtmJV^WrL#^T#aUsMQCCX0*SfwIzmAy*@< zQlNMVf>1l3b9+nzqk*s6J?Pc?0H^!v;LrwRaS9>!KTx!xkbRYW&8L4iX|L0Ih5O;1 z`^NCGNGLQ5eINm80#~+py*v@5&5zJ8n3MxUI^#_g+FP!+Afw!u%Pki&3V#lNIP~`~ zt61&7X<*Fs#2-q=HbiI|%DplmSS5=Ln=*{d!2Nv*mnQ3kB$Qclg7hv&o9BB`v>alT z3`LSvpOo8^lD^to$HJX|V}Dgp5{0h=iL(dt-_bdtt#06efy&i0=ll_2d-C{G# z`ii|$QW?23s97v!!GTWRm?Zu#J?@WKyzuAO?oM3Pu|R>4a^+cJQEGR6EPxJARNyN!p*KZK1i-6hpaBQkl| zD*k1l)avct^_HEZ5xE`BKP6v~yG3N=D;T6gBxx3+$&B%3NW>ChJ(Miy^ku7d)+7X7 zNw!)Dg!*Xl9fPzhFeE3mdhsGT(A{S>7zvSrngycwkA!cnoRI^c?mldDZ7zujJp!Av)RA$&+q8v!0gbw{Hcw zjU#|q?f4M=e*gH>&7B=%&A4B@Fyh}QIXjFwYxcceU#-Z6`O1%F7gQ=&SY&_P0Yfv| zdxEe32p^vSNY5`v#JHEAS1XbYXt(cY{%8dS9$97jCVIwD>u%hxegzRB@PoPAx=Ohz zUJKYA(0u1^2oN*DR3M4uVu&sgfi7o>ZEJg_oM&jjWNV`nu)e+BiHX<*rFTT*NoMHU zvnTDl{l!rO%C@$@?{^OKE?Ho*M(;Q4vZ?4LzV%jeAcIZW!mQ~|^{?Ko$+ni?^Ti3Y z%i&IOasO+MrU!8^B>{iHP(@OB``x(r<@d>VFGocySA=hTTpEHfLMHaBy1P}dB1#YH zx!O3@AkB)AgrxHUdEBkD2p?X1Q5XdUNkFkIZ?C0O&%R~yZdy*81Qd^}HpTeOSHq8; z1>58AOmU6!;^~7)wi`!k?a-&s9Zb7b0o-I3Z_gd{-w4IcDK>i>4gixmTcLx2B}QM? zF;Pk*Zwj2}y8`VBP>9o_is{WbS5CT5(e{T*-K_hd>k&VBnwC;GTmSa`)f(Q;)Jic9 z5EkMd2m}v;n@SKM!E2`3wxJObit;HTlB$p@!^}b;7P3H z2Acz#3RF!vFk}o3EBY5xBs=+X1g+yK;drm)YvO;T%VzcP<8#_!?012*Pn=d)zwt&W zj~{q^lLY>zAE-Sbe6L&$SYi6_Nx3=y8H`QMd|Bq7Jzt#)vv z*Cp6J?pwF(b=<%F?dNRWa03(Y&1%Q}$8*-_E8L;}Oz+9Cg1nQWPcqHZ5 z6t4;l&`w-t2~quhIB*{aMSbq++{5^bb$bt-z6%ur&zFV558LY=aR_$mSOdvLK>(7Q zyFZB&MHo3mG_&85gBAeVd7K&KGRYOu9INKlCb>GgbU5`57dY)iF#Q83k!2s{` z`52(<^7^EWk_!f4k|h|BGCO_Z;raF<|p&#DIB=0n-5nK-EZ&H!uKchXEn) zVZh2FKmY66(o`{ET`*vgu007tmW%gJF$OF|FaY-@ZA=9Nkg5bi{^;z`6s-f!7+~u` zDF#3lR2BoCkuijK?Ds?S1RHdHDP}lQAEC`Y97J z-}uhw=F@L~%Y6Keuk!Uk?x7x0;dIwx!4?xSiM#~Hc1lc3&WTVLDfouT*6CM73C1g@cuy`cPtB^5R zf`q|PGDAL7;)TSB+H>5m-Z#%H*rvg z_IQcy6bG(xKWTR@pXl+^p)@5bra^-}nUCOq1!56?4yPE+Pw?DeVs4V2?OB=|pf=PT z;lU!=0U=~JVw+6NW8MJLW@=%E{E~GJF3hg@${3rbv^LGkXzi{iO39e3CAoJfWDGI^ zp1$*h)6_u7JhUSqVIJCs9|#V4X-ZFa850WUDN}ry`7dIH^@@M*-~SsGfBeV)lKGD> zoib(_HDh|(Z}bgz|DzsTyb%)C$!RgVaJ1*w<^o6D=7z0ptg?jsJvJ4X&U zed#FH<5=(|b;N}QpIRPg7JPAIo&gzo!cr&T9qEkp!CN*u`kZsbgoFV>qx;{skx}e> zpPX={b9{}AE>t1kGvE6Dx6LP?ePTZR^aJzw-AC+%!^p6FjSa6D**H1j@hlly$mi@p z6fFhm93*yNupyBnr!tcVW4$A!0+xF)+{(HJMnFdf4j@m?V`3O-Aqx3Q(jAOe;+0f_kopa}i=i?FMn{o`e?}!V_9dqor&w}R;6a4vn zCjCV$xPIS$q`?{912M81anN)8$p&8oM$)q2Y6ubiOYy!`*x2q03m!*Qm0pJdW2@_6 zz_Elgj)84v$*~QF985V_Z);f9$O^kIIj7rJ{iEw}*i|+PNh{>6n8cx`3p3a=!h+8% z&e>EXakhm8mq|G!>ztlMh8IQ`EI2#j+shnP#q-Y+b*>jM$wqh17VCoH^;vLyH(v+1~LmV8>xVGK2v;);^VDK-OYF_C**#OB~D5^S%dp`+l-42B%Q%e+JE2C#%mM<{7C|1f+btZV}RKIbU6&j#vBH~{woHk zy}t|t;xE7eb+j+XfGwNGU@;)I%03w!Z(sn|2U(gI(%oVJlPG7$Z9O4DM?o)9~VZYwe|88N6Aq`2%WUv{_tH_GsZ9I9(33f zRV31s-v00d!hx@v55D#_^VQEjV=VaUXWw9w{^9dS9Q55i%+d3nv34?M)goK8F3U`D z+l}--2#QT6YM88{b)18d%*%c(@mh@R0sLwm+jjpJZ(}{!FY|?zBYxwd^c2C5gr};A zdrFH0PuP8%f`R7;wgt~VYzsbT0d-JL3#LF5bs>KfB|fk2PwWN$Yce0Vwk=hnh=J|* zw-qBCP8`ZSBCWy7{e=5GYCl!^BI}tlq=%f#_;8$YL{fkoX*+jFm-z7^+kP0vq0svr z>iL4FrI?klb1k`FA!#DGVLyu=_lM#ae~x3|T#g9_5H2z@_P;3Gdq=zUJLOIOc$d%B zV@kFt5rd)R3kVu4bsZy3$J4AN&4p^zDBk#FP*j~GwQB;r0zm`P9OO9)@FGA9T+m>x z7WU;XdmC$JGrq+|+>x>hWef-z)UMe|ZZV+)rKFJZ(_Fw8#k%LYo6@SQBe|1_xuWh! zQ#!sla%xGC^XC{KU_2s5#)Z_3d46in-a0nN&koGN<2{-a(06}E{?uvmHwzcpis{v% ziXZ*x_kXU6`JXQt)7^HnccAOHnFSy0H6vD%2#GqJaWLI5vT(lPh{N!L1z+}ybuCV? z(H$cY9*wZzEJ;K=)5Q@hNgQWo%-re>7jZkhICQEPk)}ska52P>-g-tq!c$&qiqbnD zeMAOV8Su|({ZrcaKDS3iU5$hDqGds2maX2jhSxINcHo#e=^M<5E3@sNBgS;kE0^0`qx=1RG^xyaN_9nHN?Qk~bZ2`f{9~nw1CG zIm5|N6fa>X4zjMQk)$J$V0hHwR_URxs}YVGUa;V4$ATxF!|OY}<(zYj{7H_DSTNBD z&W{oz{5ibqM{_M5QRRK+z*uH3VZqZcWx;(TuZ9<|i8|)~XW(<_cMzsKV7q<8h~r{# z113CG5b_1aR*kC~UkslCN2dWcyp{!z8eBE3YJ3Aj8x#i%{!a;J!;z*1CkRFp5m8~m zC&=JVbCe4#IMQYD!Gb?wDY`Yb5yOj=#YgX4FbjT$0=~~hlDPjcW5@}o-yr@Zb+G-f9Y4yy zR>r(a&6tt?ik^Ya#-9GJ-$fBm5Hh3VLxcgN&iMugtlIPh-~c<{DBiXfF4#D>NPs=} zA`BRI7yv>B|2Iq!LC8OQKfnN2urY!Gh=K+fAhiKN#K8I1DCj5O{5m=2?@3J!!hquW zK08t}S%atz2P%3wg&vuUXk z3`kig8CW0@)1<632Bb^uzQ3-v-zR7|63VjlB){G#JzfO^)HX+nk}wIC^f2w^7~sFR zIMXl20RP^6Oo)>7J_h*vUW@_R(9nIaiUF|kmtg?bQwJH2fbuoICq5S-O2#~S_Nbz^sRm@s-&1AG z2#UFTHDgN17|adGHvm}=JecFA9utfOJTI6V7D8rb&?`>Y4F4X|-aUzmNbV`?y@!w{S+|thK#34$C`ip6$AWzO58J6SmMUNj*mM`@I=z1bX`WU4cm;&l}+;N z@l49xV8SXVwVVOcP#0Wt2Vemj{>)fq%sPq)+c^PL(yWxUWDEouAn1WPnz{;KPy@6| z#wa0kL30Dtj5+7}Fz1mprE}M1Rmk}wlQF0xxqHgx3;vtE)6`#z@2*z-m+A>>&g0fpC-s_Z@YPNJ6ng zODNP-(vGMW3@z%%1V(q73py?{3%+XBcQ(i&vt-QTEIZ<0z}4_hFWYveG+=-sNnG4o z;F<Ejc}f(MfH3&((SZs>E2lTghVIO4l!_|13TO&@IkrQ%uU zH4*blX-a)4;M>$Y(DhHd`lYLik}*C8Y;3MG2C)6#SP5YOBAOgIVM2cNQVh_djc~qE zGX{!E5OauHA}v)hz;9g|s3M~n@QK3!5b?kOIOK59kLZ8I7;s=QU_ZbBjc_^)*#Dv! zuw51d_}VYQfGCmhatuh9#Q^ETkSvP^aW5b6$i2 zzKs?lCX4}2qW%RjAWitA7?88q4@u!)1q1d41E5rqB9F^VzLdj&#f?R?vVnlyn#F*n zFb1TyxQH(bKhCU7O8V30w8Ma~KYv^VHTdUR77rQ?{~;Xer5E!~vfb++H17qC+D z15r@|4^XB6Dwxl|kERLVH=lmzbHay@IDKjFuwW9oB$J(@P>$Q0E|Q+awjB1m7&GyL z5Dz=3B?BcrQh5s426?hA^GJ+@7X(dN zzZ)cn4jfMw6GEWwCLGZkC0;T7fSW4iVDsfZ!$Df#R%0Fat=ma!^W8l-QYbtZZ~#t{5f?6xZDRrjT;BG8)wMQ+lGKR1K1G@2PkSzc-yvx$S^3 z&w1~eW0E9nOVbXo{P~JMpNQ6y5uC{}!6+n5urBwOpuR**UdM-`?>kXcfP|cIMS40n2V=}{O48{ zT#QUCh;mxTIaUzHI|k<4jvc!lC+9gqj&!mZ<0ZCJ$V)GZp;ehQGu)2x-g2xs=U?Un zsdOTbYpB{poL@0!P@E_$9{1#babdxcAG(*c46Z&gkebK{R5i?<@D@fkQDBDHIme4N!TdAA#0d2lBbpkZ0Yx7+#+R-wPRNHMnYY zeTky7;$XocQDh%Z4=JICk-{cB1tTo!hrDz2C(C8F#z^I zz<@CZc1!|6#-J#pwla;jw)QaqL)(@@iY^%N8I$oiwtsTqp0k`KW6EJb{0m?JqM)e* z!GL501N^9GC^8zsfW%8NAW@0|yK$$EiQ2jsV}Ot`Q4H{N*%bpcwJC}LVP`vV$elB8 zF+htGUWNgoocK#IAp24bDEHa_|G(JU3g__^`@GYJjJbeDxs^gz z**hqZ4^0!yTv7_6?y3sJDp&HNY)9H^jO!u7_QBT0xp*y>uzT2#^(5Q86fb2Yy!E7e zjcy~2&>b%%ExDcK_t1J!nudtiif<>+I9}`52jLV(*f^+SV8`|YyNJ(~&PRw=OT=If zk=mC)D?UrgQ@dyh0u8+CIf2igboZr&V=qgiO!NK}r^)Dj`6?dY<|+YzrEjN1sSWsAeo#qk&hu^a&ZLBQ>qn)r$e<;s3IiaQBS+(DXI`d-Vx2O_$ZB7SWY;A!FdP zgEUcGP=yTClhgA7A){mr7j)lRF&lBI8RN*9H6dh{b{5U7E#NENRd?injIsqtu{+s! zWQ;cUcxbWU+$v)p*=|Zf9hq};`t-!6Deas5Ienj}z{=Qf70xqnZ11jA{P+*Qv}DYD zMO#BDIjCCjh$n`Ed%biG##-lILH`) zH!7#Y;6DE#$PM*}L`L7Sd7C;|I)$qlUoo!!t5cyRJQ!{MmMFRr3uO z?M#s)&Q7*v!DDbf9qS$A;)LK%p&Ch&;)nL>rTA z*y7fxsnSG@v>4}vHGF=GP*No6d&v^RqYk>RYo%=2pRo5JGDDZo9x9laa&6-Dm`)A? zCR|zYgaaUVU%GuD1{k2gGQp7CEg5?FqYkhyv*h(cI;0?pruIZx@aT1Y;>S1O<<`|m zMMu~;izG2?+ZASufx0GVBd=O8Eu*y^Y|%8I`S#a+a>h5xay-jXQDwoEm{A8@8F1ey zv(t|4{ouRu0Vg_f@xO0z#DxXdB8pf_759Jz=Z*-B@wOC^W15_E~V*nzdP|$#k!GA#t_&#MKCTjnsxcj@dW5zoU1K@lM27I5%dEmq0 z`3X6t*$@Uup+docgvEd)$d)n~AhvHuFrW}~7?1=8AnNC(;Q#}YR%yr>VCw*s!+=D- zJO&8ikqYe#VSq=p_|GrzcTSX#0SU&95)6nIC@0$;w{1D47;PyA1d-6-KK+S@Vn9YQ zAd-I`#ek?>x|~hAj2L;D{r{pE5LK+`2rE#tP8AcVYf{$U3od9O-Y^Da*qK(lAK3Vu zM-oOHb8^PB2V&E6N2M5`sY_W;IpfItgD?j8_*;&w5_Lert!orCi~-whrxCT}dVsdQ zDI9P(-Acmv7=R+~TS+D4#~c|03|O!jfVyG80Cm2#wRQfaUHnSrvn#y>EZ?KK)-F(Y)e-{?i%yj|thx|8M6D$GG-a3WU3+sOF_6 zQ*1Zxh=-tyjU^pGe9(~X6mQ2Z8KLAv%yqpx)_)SRCgsQ%>{9|(mpBH} zhR-bowl!sov}*cJno}K<4i}R7Kn=t-z>0|y#k;EocHq^A2`OMw9$Dls)1lgiN&<*d zFMDaaWRxfglrTw4hGfeYvb`)g8@-NVNjbI6Wu(q!HC3YNrT%MGMZ@n=NQa2-()mW( z*?pHPXM?j?syZjS&f6aO&fl?@t`s8a^tZtO0O!0QP@$hi(^j?CP{Jy%g7u^u@GU@| z0~368%-Aep!pyjtn4NO-0v{h%Hc{Ajot4v2OQV|-YDuEQ>T+y}OBVoRg3<*$p{5=n ztAYR45uk|x83UP z@A`doQ|ccbWWx(}jMj|N%IWHab8Fkpb+fXuY%8Zvm$2X%oF_UzWX6}JgN8;&B~2-a zigH`icb~A~ef;)QX1@a#{HZI_L1xv>A&s#L4}@I4k?DL-(t3*Xr1bLef28 zd@aj@vkX1T?s~>ewu5|d-nQvR>eQ=at%Z40z8oD4xsxHved)a^1FjFc0+6!xYJmNR zJ79yeAr@SZMU9$IzC;bjW%BAMn;v!6eNy5wNuwHmJr{Cu&8Kw6wwSf-_--iQGHT?s z=v4p!nNnxlQ^$lEaT_(owigX`GITFTR3jx^OThj&L53j$;@_XL;{NATxvCtGhh&Ih z7Cga|W3;vlYRCk6qLbF>suPZ-MoGbfBMk{;jOK^Vtxd2a4#PXUHp7N@Bf0K!L$mu5 zAx3`aAvsUT4`riki*!X;-P{IH>^Xho3G7^M*7y~ZM z<1!ea&UYyW6ixAQ-eExQDE4mpVCUa>_QAu~WXu;OW1b2bL%8tY0uTB}2FwVWdQ44( z)bjBEm7E75!!^Wc={NO|4y!?DJ;eh}Pr?}I1|O&=HpUnNzXQ($esjzVVE-S#^~^ls zdSOp!Jma|l6fvTZ|F$Dy-v8tSbN>9HDV!JSdD&$*J&+O8);w$xXjBzR(- zVsb+Z|iFmzk6bGW1;A)l}O6ok@ z=}BJ608t|1vh{LloQhB7f&s3`Zlvyt|M|k%0i~pm zPZ)*Mh3sd+cU%nST>2e{>crS>pRDn}cl|zeI~vppD{OT=6(Z@e4tov1T?rZW`Nn4_ z%)|`pNliOE;5w3vb6iJeGq%Ab>+tjd%?-xP6f$IJUNFBo%Xpxzt)aSsx*qQZyaXPc zTpTkY12X3P$*BZtk&5&*9H8a-!8=lC^6dGUIeiO?$zu-E79J7?pQiptniJgJ%q~^@ z?EbMz61iB{)HoYe?WCcybTHr;DBuf%22MJ_8b6HIj8R9NjW0TB zENiU*TRGjODNQ+L48BY_;##Z`L&%tCu2Q-xVqkc`^}X+yPrmUr`T?GqqsJ#^@3=q) zHpQ%V0)HULZ&gwqVZjrH9m_(i^X(g6e;GL4;qEp*K@k}4v@^)*(6y9tS4S$!g8R-F zUIUVdjcP#{{iL$oFoG%vv<3fCmbAgSdQ2T|Ew-f+c%KFLYrzE4^XP;k6`GLfKEJ47 z)-y2v!yk31OJ#-WvJUuVDN5z?;MIuuM8suL)Tq<$8*JY&MrHER0$5SGce#93O-E8k zJ6IPdJ_-_Ad@;&``wY1LZ+u2Pt(`U!#oINiX2#nlClg5p1d=!as!R0IQpS~0ersh6g-laVwfbW8yT`1NAod;0^M6gxa)B?t%mi*x$Mo1LDrPeKib# zeUEw0yE^6U#CkZQ_TDGCmCW%Abz^7?V}37gZ&?Nd@c!2J|9{1R01FbAVu0^_mta6K zz<0b~h5;aC)_2y->h=mf_oJ+eo905@WJlJgn2?{} zn0KwMHC2^s#uRhr=;FwnKRUI}_nCQA1_J_>OhCpU5*lDYjxiv2ocK7gzxfN#KYUHb zeBlDVPajv*qMOo4|8MmT+W_r^C}WVKqy^nU#QQZQv5q+bj^jMkiI}iK+Q}#x<6*+s z;*iu3TbblECHz06fUlhsy!VV#lQd9^;_a9VXi5^W0PDbqM}!vz!V*kiVMhZJJmINb z5{__}dMvh!*}heV?Min`PTjNW5`VBwR==DH7oUs?$QdjJ6VhHcv;aqvg`~6F>3y~1 zlFkI1&+lQkRpr93;f{7`r?OPypVw`gl&TqneTqK`t8!0;U+1M?1?gFFODLs6{%4ek z38gQ=R;jHmL#+Ej(sJa3U;8F%TYWMniVv67#?sUwKS&V0ZnSQSuP`j9+=-@J`Pb2` zg>tD;Dy^auW#?yF%-wHwE$gbbjkA50uBX!e zT5$pDHPn!tMVF+7X^RPyj0cJdbBlA_X=yXQ!E^oL=|OtF(MfsS%pi4jW5&#`&p15L zqVB*0Z~|!RfixwM^GH)Vr}@Dd>PfyO#d>{Zj0S5356;ZVvlAxi_aE+=-BV;1#Q$Ob zELF3a{*u>>v1H6oR2efm5wx~uM|@ps#;6QY)0E(dg8>hVyjI*4ulm!Qq&5pD(+1A;Pvtym+<6?Lb&CJ@@q}?(@lX)!VnyC^NoSi5y(i-<1 zeRl4xfn#E3KV{kcWT>sB%Fz-YSrV43g}WdH9WatXk+5P=rzXmRM-6V&_&O&M&Ui6h zR-Rt2s(aK)d~q60m=Q0>CYOtnMw#a*K~XOHs#1Ud+P+lLFT5CK&V6Uy2b$o$OYgfJ z5b^aQ&UQ3k*sq@M7;*3ZCEqd?B47OP)HlNFbZd@ixM&v)@s1;8pk|TiC^=WNlcC5c zjIJtWpo{?_gSMu_EJ++=Df0B%BpY2;#;h+m7955b6B9iDV8J0zha=90*RtRbpPz?n z2Ka_oiglrz#wi)!BU6M-{Q})a5r!^HH9We%^A{d}4KQV^^G=KrcI4c8T^UGpDu@nQCs3~Y9G{69?`xt=zz<@wu zqQ?R|AH{$~6axx@YSKR^gaI5eD~ADT>r@BnP5}laUV;J1P{i#r3_$nCSUsIh?-^upt+W70y4nriT284QRPY*bl#n2=eJE_sRpmW**2usGugdEmg<+=!E<0|RE(Ee5QL zIx?smV=>^gAa%pY@#f;aPb~&8AycZ1f&FI;AjkadEx~|e#enmy**i&mb7ybu7oWZV zI!)DEKTnlB)|4^cgSqLj*kgBT1+(E`bJ;`MY=zlV`FhMvl!L?wNm{)Qhbz)q~ z>cSu^<;~QKBsEc<>vCy4J^`bX zXI5ZB;bMcS?zvZAtx%dqk_y%I07(>dU{X7tIZRpm9e1_HlKXKl<#eYcxT=`s51(97 z@+xle#{UleYX$1iU|y0^qPk2F)hEw=viL=HA^mfr!CBwtN7av7kT$q>c{1NWANxv* zs(VC`Dk(1|Pwa0QRnnKs81O%j|6V~Eh264q0{#C+2^v*T;`oaK66Lme z0i&i9W@W+g-tvBde9+J3lw41nhNOmeFX7r%GYgI=74G#Q<+0ZZuXam$7F>*P!c*d; zyj=g3D<~${^wX{4mk>Lp#@8LQ66tdJmQiN8oa`{lf|rY;z6uMT%BL=UA6GrSSlR+m zjcX9?OgqOsDn$%OMbozRTdbr&nD3nXQPOC1H6)|AdB5=p3tldwuD^xK*Aw=?=`-8q zh%tYXq!M+XJs0O&Sa5a3VQ{rO#?t1JnI}7dc6DPj6YP*H3qFge=#n_%h>T8gjhR6+ zyFxZ(jVAOP)2?#5NDr2#6$S5B_ zJ!Zq3KSwor`fiS6|4#NOer^BkwKC>a)0BD!y4v~%d;UcqIp2e015OzelBHV=&=%KN zN8PX}28>$_7*h;b@a?~1zy!B3)gtav!1t*XY<%yD!vH8_po~;Sgxjv`9Vv-%I!pkurnNPTL zl1gl#Ce=auQVd9V^~lsg_c0(*2-2nes9G2U;-yY?83HD%nsFFVd^rY`lb1(ThA+c_ zu>HS0tttFIUIz_ax6C!+c>Bd3qZklvPwf*pFT#KqML|n3K-S}BBBAD+V}OdRQ5wg&WT~3aS`Tl!A?f0lUZX z?Lq2lc5)Ycvs@>+eBa&@$fwWd`%u$Hj zg6G;nNs95tox(iu$>RmV9o?tvY`62iZzleKX{WP9iT%{{DlN8)CDf1FX4+3ZRgB=G zy-E({;~`>&ZN4RqLg`O?rSk#bE=5z6T*|yEek{gi{B+KIIGs}!f{yIo&y=VWOA5dj z%cc6z^3b-$w%tvGWtuyr%C;6@xBDWbyWCgS;er4D+Wk(7>}JXmD*pN0k;$E#^SbS& zxdSWiCui%Cp%8qyOCNk0X2BCdu|C_G z!IwJfNEOv#im@T`4X?<`li_I9USMEhfc&Do8C!%4hB&sn6G|geg-hHkw5W`@L^;Jk zD`^y!n)~%_{6b>-y|4k!Crj$!q$1KdC+RHOf?*|+^i+sV&X#egGi6v=ouK%#?X+)r zy-pl{cP4p_R6>{TDfS+UXyyEj=mZmXXJ~)efkF3XV6Ou5AUZ+oOHh`eD1Im zSp0iOMfN-!$()mUa`e+iK>aAW9}(Rn1DYYDoi3(BZB3(vlKs|zzRD-KmoT{HIN#J7 zTH9#@&N+-Eh#9cpTidpda%^9<}y}+%lwUg3j zYQwcP#Q+(@ZLP@>X9N7?gbgeV@9C3(1rLZB%Yr`z3oed0v*1!Q=5J+=;y3c=X)?Hf z@!HXT5gGHZEE&_^)!sMI^+&zKy&+|cj{&TVSzishXV^3)jf4gmfEodT^UZdDe$ds7 z5ey*EUYX*WF_@U4ZWwGoFaWh<(AE?f05S#=(p<@^yIx15$1P13;Q62B1(c$e0iY%uSp5g*mqW>nPwm zXKThN25ikT1}ym)klb{&YFL_1exRnQo;*CF$@M8mLfQGg3?q-(U6$a_;y6f`0*I31jJ=<% zyFb0h{nI`2e+p**Y|rh-{T5C!_Snwz{ouannt8rno{rIbV4TQ0<^(ua^oSNER+MzX zI!5tqp9d2$C*kvbawZ^Sq~_V)VbJ|AV}l&2y|h^(-*9A-p7CjjI7BUvvAnr#HqlLK zd4`MqPOnaIni3QA8#88RReV6CDy_v<%(hKaLJct}V^Gi?^8v*Ltr>#>wVbmJG#27 zysOJW-GJpqcEn+n5gFxtVluuHws0B>>zFc+0 zVSJGX`suenrvV21Yv$dLKjf%s@$68F3^~?2VVU7rNOtY#G_td)MR)U3(3cB3a<`4Z z@XES1z-)YXtPzfLmks|tl@X75#!#0|t&)$sZV_6s+A-j}<#X)0D4!=s6n0xA=i9k0 zCqE4KC#^Fc)PC7fwp+;*Pon9w;4ZJ#kAxPL0ndc0!K)+aq|^CSsQW}Pxky=~n`S52 zugRiO%H0Fch;hMOdrqXQl5=1W#po*I&4%?bSjSKUhjnxe!TEbIfW=(ML6y!OxezO_ z1dSN3f@8JCQ0GDtMSUI4S6L%RS;1V})~9H9iuc$1!GMv4(N%EBpJbiURhFB_QMlDL zSZ^Fx2AsDUpvYjs$R6#Lu-|G})$qc=>XHpC&a(!3*BV})6dVRa>m5iGBWt#jI~*Au z8XK}K_^g?QGfo2$QRIhCFHV|qdj7$J!{~wqpWmF5P8u7F92u34N;~fVf%`x9>c${H zRJtggl`Y^agzdRGc4Q2cG4z?w5dn$)2dRVY+r>wj*UFfej6Z`iW~9HOd!Vbmcd+~a z>|t5D)QkZc<6{69@Ld(hn>%PI25=;Fiqq4^&`HaSg!0n1FdeaEj9|bhD`QZ+4U;lF zZ(1YZ$-9p|40y^mAMLBZ{`uz|1%2nE_Zb`ZPl{we{X&EZ&;G|kHBiE8$%L)Lvcryb z7z40xn~S_VC)~pT)S%h1kw<<%#(_`+|fB}V43_SC}wjm*k>g)soz&iU3N?zZ5rPtv~>0}fLq7_duDIU=3`2BZZ8 z&dOkb*HNh~24MYIoON}y%V7XM%fWfkIoXN5DPa~mckE}A%%F@df@Rb??gaMX} zIebJIaJI`udsr89=LD>l zw`odHz^j}eb4nb4ta2j_-(|wh(pYj)09VcvhXOeBL`u0h$ z$Snwmq$Rv^P%-xJ^iG!r|)nj?Zn{d%vq-3R7;gfW>3Vy37e&RM*ohVb=E5V%v@!7dW zc3$R0>BFQYWKtZ|)=sWz`aN>=xpqOm&^_cpEOU?}Azl9RaXvq-0p3vNK}4m=DZ1gB zWf}Ij<8to@biG5m_e0>O>|;gDf$eyQ_odIBrIDl0wu=;3CeWozVk#dGDXP?$NZPK1 zJfAquI;D#Q7qTv}z<6Q_7yTY{JO?3M!2bZn+iC3D^$g}uz(^D_&!>4`7IqdRk8|<= zqW7U=8O2j>>VjigUgEW!&W6vzn3|UQV_u4|`!5~@Sptf?ss`rQqkh-E+(!z<+|dpm zgM9UPntUVjx6-@xyF)dZ+BUH?Ez=3J9@{Z9OABUra*VJ6>iJ2=h~=#ndY)Iz)FM(` z$)8-Gq33;qZ~z_lW@#Owj42`Mlkw$skTGO@=htQ(8RIIaI~M#gx3c@{ zXP+qdU$AVjiJ7GuCI^1}0xpnn^ z+?~V4A1%|Zg;QBRZe@8o{cN$=KqaCT#ghy?xkF)~nE|(qH@5TaWLiSPsy>)3026%-XV;Q2 zN8;S>o@A`UD~xjfScnds10z^~gNh0NL7+l$QAzv$_?+4zP#F1a$>;JTsJk`_xp!>u z_ef-skQXuw?!6xGw`*mIxHmB2!m5L5mg9wE0p~sa9&A)$k3aJsPgeIV`NB@NJ%9f! zV6;Ol_;J93`;tUGj_(0dMzH8OcMsn)CLVT)E=M{6fx&0ejldz1OPNJ_{t+1+Cxbgp z4*2BUG&|%gs2Q`f$|?yMUKH*H3(h&BY=o!ynP1sP!LC(~v~nk_6KQP?i8_ino;*61 zLS4_!OIUDq!XLe@oirdvJYq7YaIwdZcx z(Am*F(D^U9M!;x)sDST+PsXfylJqsf0PUv4Ezsw!GRD>iPz;zvw+s|*q@`d0+L%tz z|6z{F7(_wOO}7J0T3<&P#BjF2#U^#Q=>0rbC4nHHyi$*293bRUBj^7@);@Q(pIp00UC&Y;#-E z{e;7SYy<-&Dk~TO6^_0>VRQZ!1Ni&ULX92k;arGW9WF_mweVuM7s{EC%GtU_kB?48VC=4+D1X=fLlX z-*t~|abSn_vndAnQBcMJCNo5W&KPi%EsFuW94Xy(7$C>w8U-8m-1R@R#elrUfcz_9 zfV1<*fxVB)(p?nP!vNPo5WoHYB^W@0~7sfVwe94;2GW*|`=BxL^#BN%_MdP03*ZIqi=G19GS6 zLbLrh2?wq||KxQ6-!DqWJbsP>zBLttV*~%BkFa2He3&L#67_}(5gjN<;|cRxH6!O+?pstf^v1Y77*Vhh@&!`6!;pK*uoVGHleBzsUq zSk6tm5ksn>Ejqk|ltY_(yOZ0oZR8~tQECFl>_8v_wQ;1#J?i4bbM#(Wq>*n(*UOwJ zIg_?SArGVkXSd8&dedyASItIhoxXn>^!;yTHq8zllbTbTW}EPRC%t9jv`o=!ckvx$ zW4v!Wg=3pc%JTX2ey|BxqF$A%@vx31*A}65oWm)VAPKm>54|7V_jY!J?_-1ReG}K^ z&qBv=PjsyvO!nzMV##%rNYMT`-81>Dn;5Y*vqi_y?Q>~sQ3}eY<+Fe!Sc@&QdSi<| z>n2j|>9r_U4)q5H{9g=NCtqoM(JXH*$k<#m%j=6=@`H)YjYS@)#mC*pmZrVH7nZZO zdBQXw0|`2_IK?%aI1Pvfi13M7_~Bz_bc&v*Y4W*d$lrn*ZI<@YHWyr#uXo$?-WMVNpkH5o-C(IVNH-K+LS{ERrv%Gt~XZz4T=dk>MSi9AjmS8eW&CWQ#YVRsf7Ih#6JKpvBe5 z9R1K`Sa2|56L7>AM!3l1gl&C_9|(VV0I_z`01GZ;%u_bFpMM{6#IJEA6h%H$%JRaI zLG2BY3TfMMB59@H!i0-s8+T555Ak1wBt^M|5uK1tI9G!JolkeNcHwFV_bd3~gBu7h^gn)o_ z$LRjjDWe}VZFp{p^gZX&lzK8HkcSiAsY>gNWQ4C3NR{(0?`MfIMno7Z36AwG) z^wC&v9$UQKrLGxLJX4l_&vSLrm%wu>_z$v`9AcCYV3B1QSMHE(o|n7Nz|fM*6q-Bk zTCkYD^tGU7L-667rH{M?G#h;>V@=YF28=iek0GYJGAyk1DO}dUK8(D7Xwh8{*BQ_I zMeu)+zZld{j3)F!1i$}%5oT4~<})z&=Z))`iTXD6IQr88z?4gvd?85V?ieq0T@duD zHoyM7DQ#sdikUIIs=USdU_Ta_6KNiAD7r zWCbaGkCedSG2ymWFoQ%Vuid`w=H*S7z8VK#{m#?x00dB%j5_Wwq5W`Tuy~+bU!zAF zJ$SH#Yehpc5U*dkF7Sh8f9%*{)^6@|`)?li=Pm4!%;oogt)PgX`HzSBQM_f}nwtFU zkDt$2e$!C04Ewmrz4*(83Ed+9{nqe!vIaLHp^;;~RqCa5O%wqb(o};9j+@4x?Evs5 zsG2v*LlLPMHB`(f@8AjJEGHm&#tFaQGkP51{cKRg`Qoi>t*YZNqcD@@bZ1 zPkR8Mn_Zo+m}}`Ikoq})HUo-Vdz0@XLU-+&KTZmmgn0mNPenD#W==1?xtmb~A87qB zG%)}M7H;I&{!l_xh@J8YSU~_TV3p*d%gf-3CUT08S^7fD#%yr_8fv4aDQoMPzv#e-mZb3tx~e2)dPX#NBP zq~ugvNO6P#4aSFt0eL+8->|^d*)@NMaCpo@Ki{$SAz-mUxXMIv50vpB<;t~Va07&r zsZQ5Tx&nv4UfX$f2_>@!Ot-U$z0`mRM~Dnr0MdUG7DHXPdA1O+twb2&u{mXBb2OK^ zR`TI5szm7yf)ZhwK= z(2+Ii>(cza7;bizbW5|KnveK&3G4ZnP5Zq0B#khtNod(fKGnf$kmgm23c49r)K3!e zWvmVrIvfj=NR>Yd*77Ct1gBIA**hog6gkX6h@q7Q)(4W}Kaw&p{`?*wU_Y+kgJH{< z4M0K(>W5`Rr)Wx^Umblv1i%o^rhyDl@v@AkDpVjb^`YQ;^GVUH_z$N<`(?fvs}9VL zEV*B2$Nb{m{C*-TLh-d{Uh~nj^UfW=^b}k=?GEi>PU|%h`$J_Zt!s9j4W&~Hf?8Sk z`y%r*1};b0$Eu#PH5HY0+g7UZ?h3ndzQya7W@EU0cKx^P1l=r5PyC60s}KCIRjnq) zDbvKxv^QJUZclE+z3~#(eOBE*n1cMqho?mRzzO+Uj!H zg=({e>>k*cYct1I?dO+bt10hQSw_AYentr}NQm2;#ucRv(!r9n6vbmu0vHmDfUl~7 zsVeTfS9pMX^@nw#NPPUmuaed|u47D)l7!539^oLb-q-KU`VRS+4sKB*zr01*UF@H8 zQZC-BoK9uZpx;&wPPp_D^QlYZ><0b@=Sjp*ETCeL%23=Kd1Xya8iuYCeN<*muBz@E z8kLuE+($zwJPgdN*W66OIwJEQZ4Q;$F!fuSEDQySiz5hC^<#tLf_8$BwCPETcOD-O z9vi(uE}0sBZWop0lDvJIzH2Rcldb_VGdx#YQjNDf2gOVH9EPE$cy^FC9pK^){L87 zn5_R+=%pL8j$j6qF5@fD>1X}#$!B;}|Dk>5Y9Ca9dM8z@{KY!Nyd9=iUnYx81p&K+QUu z)Fe$jf3`1wvmn8*g{+}g`T4o;eFNivPdJES|BCyUP^kox;#2bE34oZdmD}11M!4J& zEpd@9!F{dew~M0mgY%77-9`gB9rnpWm4#4?g+w8+%hk-x|F0Dql-X zbu+_F%>R6<=PirtTUX%dtEg zU0Z<3C=dE-0Ln9Zw#RtH%-I+u2vOt%M}4R#0Xfck8Tvc2cTT3D_X6IW!4W$V7E*C1 z0**&`j)Cv({ZTr9nd(=N5jLLoNYeNCb~rW`+dVBZYIAsQ8u?hFF$`&d~NE1cwkh**^R&IAH!3 zp>UppmZ~&Ian(i}o0TX0xcJ0wQ-adHldv4>_m`HONJJ^;J>D|tz~9bcqk0G=W73(4 zqFYS~q4wozk3fje2$b&Hf*Lg$<-d4ol>isY>p`g^eqMYDy8qG@a2x84B19Se)tIhN z~GpSl5u8sI*8-=f_B6)Vd5KUD;0! zC$;mevV>syEfB#kPrnlUp)=Q!dUULvV|0noq$_)aYY}psZqCIUt!3xuLVyk}ZenE> zA9|>#&PHS7pBS#E{!Cpk%3!`ok|&w{>(lk@vmx`{zs#*GKKYN!1(0fQT#u0(sW1Mt z4eN{C(>nex?01?zdD*IlYB=I>C$~6oLW_ssRmr!n#Koiho-<+Jy2CS^a}xyS-1U}q zY>w8BA^*6_YD+ixXPTm{R5fcVN^P3*@@9{QC^cn4YudPr`ybaqR|P#WqW}WntvwHI zX6It&AGon1;sLtYTVCDaa3!^W0uO^Zl~(%)s-I zXJ=}l(67HWqHTXE+c!=-|Kzo~WY-xz$N28vQ|*t{RPC?k9y=R#%hvS<2G;}Fr0Y5Z zGtNkFrN+lZ|GYV0=kq?FYfP4)I-A{CrdjQIdmA47@Al&B*_gksM8Wwd`JbV$DHpx; zt(Qn`<9v#R|?(C5+FxQkcD^N`4IAdS)n*J~{vLzs%^`%)@j8gTCook^b}Y zsPS*^x&@5CUM&m!L;F|!TnD??{be!bu0*%|(uL@y`1}p%9)BzItev-2ik?XgX-F{+b_2z(|?t9>#|HcyyBl6JpZWt;Z>645u8B(cQVGY z8|(p3<1hUxFafIPk~WyYMPMQ?PMbZnk`uHPzfST=;|ok&^b<4xDvSwUCog(hVBhnf zvcGRS`0``vKCvE9Qxl7?(L;Crz^^0Z7Hi671vx_BlJB`cWKkc~`V;?0n&Qf)nQ`W2 zGJmO3QaQK29Vvt>uEu>pNaw2_c^ntDyY<CTEj|Q1-`p3t1a$bnDcYOp>cRsZ_kXduiVvGR+L&)hf^Ne z@y}fNQ8pVZm}xKTjc;MpSJH3w5lwh&(@>N?@N~3&m(oTXF;gFf_VTO;y5{3<IR{3VLlPN+1xLSuQ!APq)E1q8bW0;=M| z;;%Z{*ub_VS|?A5gCPKvR}XcN&!;jHy$%y2KjhpK7O>!JQ1$X%uK=_Y*p699+4q0< z=2+%oQ^R~Pf4*LE3qY-k8h72Gh*As08F8d}0@H9TEttcl`vrJHdEh?{$6F5)5S=ET zIWjd%4-GugMFduX-BFkU(j~wUwfGo*eHZ{8(T|W$f7Smqj>QA;QI7#y9z=GaLAG{R z6yWN6<8i=1B;tL7uotqnX|fGEV;BRZc?Gd;g3j#l6kzP}L;)LbuQL;Upz1ELg4+L4 zxfEas`I<=JVtkZ|#Fj=V>gxuLS9>F<`X5sPRlkdYy7s@NCIwj;0yxfxavgW+G))Y30Pp{QY36k)vbQB;Hp-MF?HisHJc>xrwGs1YgI_4 zZR5&&;yEC*H3AqFl~6cDau*XdHa_4Jm&Suc++DLp0`+#X3_jI`@kn(fp75gFf5NES zWb&VR7MrBnchZa`W6(i>&hTfJXXi_^6<@ieA2Zz-l{wkIa9 z_e}C+AFU@e?1Dj%Mt_b?3U!f=_${SO{<|ZiYyi0W6_!UFw?@ZNFEvW8F^+#Fq9}^D zL_mwo>myeeAQ`$SX1JI9>{b!7S4#rPHPkl~)lzy|oqXW`UfVIb`(8lR!T}bHq2X$X z1uTbDa{lM~oUSr=zS+3OtFOz1`1@A(q{(OTPR~cMb`IGgws!xcSGVY3Rg?Ia!?l4= zS%c}PU0)ltQ0BiUCF-`b?POL5`exa`37c=JYL+F_QcJ{aVx4U8`4^y3+s6?5dPWyHkbgC zW~nQkpp`7%t>#54yWB8PUUcPfcnw`_7aU2zq$8ru#B5P7TDT}Lx&eNohSI?W0f8)gKW<3%@~nS! zWm(ei7vo@;g{y{D`D&rra!rTxyYnQ4xQ~x~ z^+V6=(|H>4`p=4Qt83fN$B*4iwLKnzxrT2y=K~)juK%F?z_zD6x4*o7uJ%>0hOQm{ zOo;Q)1d5k6eT#HZ?fuegMDsNEYoeZM_e*BM@P}yVL?_`dObUh;MoliMal0y73J|qA zN~LehWOW_Vc?`ry&Cl6P+gE;aReewS`{`!t!1$~Mp-f1w2Cw*cW{}9LDsI*rxax{&M zBlBq(%SGZoG?%hTWntXfqtJlwX1%kO&Z4C7{@52!t{e};530|4`N0813FeZQ-))hv zPGt5lPxuwlju|aFL5}>QpLXP0Z(CsQxMkU-K;y}>(xzxkEnxi8cK^V)!kQ`mR-xa? zZFZ8>GT$*PC^Kyp=PE}l7~u225gDF)B#rYcXkQ58JX>=AF6(`#q$oDv7*$_Pnk_oT zyza9GDMD37z7n?*S09KAR!$VmiNx{g*+B#rx~ju0Ps;>WE%!#VI`Eb#_5g3J`)-H` z5($UzRS7WmGS}(8oR_V8A5W>8d{e6HJRAwj!Gmm_+|kjUdmAFRrkt#+U`UJ2rNHKo zxi=N?yL|z-M_ad`pOsvp*Hz0{fWyy*9uiPTK=0|=ABjDZp8x)_pKu(B8x8+k`N@eR z(`Nf4++AgeN*Q`r`HpwVaSNMg#7DB-1@~iGTxVKet0Y}P1@l2?cHBE{&Nqhw0OEV& zs!`WPB*J{*qQhBtIWeiS7G6+MxS0}MelNi{a(gILi%x9J{_X48u2npBRkie92s4@( zti0iaLYkOhA~4m7!zyLT~rjQhX0*#GpK!>!JqPZa^k-( z^JmmxjeH^Ij*Z(Uql|rZJK)nFFJkaxxS5osa?BT-P%Ui&-WcEyrRa2(5n0s93wR^- z?G2Ba*iL{liPj6j2$)%RG!DV#-_r}KDv=K`fG1F@kM6~b1FC_>l}8@%%-(hytN>oX z5C){|_JGc?LFoidPXoLA5q|ifm7$DYgn_{~YEZSu*Ch*pcq|g}@CrgFIt_LGRICj> zvPAip>ic;c5TV>CUxWx85Kn;m#qd^_{)o*Ro~;|)-pEcuNIR7o;KUgl{M(-m{Ns`b z!3^?7gP6IIL#0w4GR%>wIvex#i+r=1lndn3Z{gRM@s_WB&UI#)7Mlnw$ znd$4F)A+xa(@)gAnh2D7sIsr*0BadS%27Xxya{OsIzMnv zk~n_ev-xQLKbH?1SVi=}kjE@O&A{AhLc$yg6J3u1l24!289r0enaBLg(~D*=_=MqekrmuMh2X_xe3$X&!T_-s0U8~clFCl0IFI=UF2A|U zK!H1@o!h3|fxvtN^Xd>1#*uT_!pX^5R#P+C+&U-MRS_Ny=E$+L!23{CL1_6l$F5Mx zPgA+m&gq!H=G55Z^OB*+FHf4X@Tq>mZ|TcxD(>tFgk)`mf^FW}Q&Z0K(#no)t*uvr z=f}U?l&OcmI-Sz+ud3pp=0NhxrN{hp*Oa#1SyK*$?gk+afWx6_tV^^N zd%oe?g1zbd#5dSTiU@O>6yB^SWwtNYn}vxm!k!>%m-=tyA3MRfJx-4w+w%<`)qdUD z73@CJdVCb;G(7Y_Iile|HU3u?-Sfo&)zSyJ5R~aIE+s!N$Vlk0#Db)1>23M>1z3T? z3NzC@*i940H~Vin@fRK6eb6m6d(LAz_*7y&k)lbJDb99S%i_tXHc2=}CRVmA#@5Jd ztu~UGf09@F0VOEf8#a}&n%F*kl>!6x2MTbw{A?|g-HZCa%OSwBfa$7{^Jw=PBlTUCAN*`QpvmszIz!jNHFhx~dVxc>SFz2`SsAmZQW) zCc5WF0;WJ&T=2u0fE#i|sah*?LL^Es67N{}{KzS(+W4Ep?SCb|R1*k-PkY>U*(ZGX zaL$U}x?B=0QH_OFy(*)I2xYoTY|3Z-X<6n}o>FSLt%(V8WgpETeJQlHq9 zntqX9(L*Z|F<9a=G_+CZHWZw3z<~S`@lmb$A!|$wz>-IkkCBRyDk4)}t#xp=D4t#6 zkOzbFg8}mSaq4hc9I6s#zd#%sP&t2FuW*arerGhqfsfm81goWfmVTztp_L$$zs&=s zr`zOgPMB4B$f>WZ2;Ibq`%ktCs#!noYJc%HeA2mj!o3*MR{P#1*J|>okG2y-T|es! zKCY8?c+Kgp4nD|;n>f_qf#ymiXc>1RWcl~4F8A6s?ozLF{rQ*k&5?)ShT1ywM#T^T4m<vE1M`iZzKW|8{_G_@fdj6;yv}}P~rxH^l zhqUjb5VuAG%g*w!tugW;zzK>p5?|f8u0VTJWrpm2x6$K;Q*ysf1X1^Y=7j*v-Sc4u zF~!=qm4T4**RenWy2L6BP^H;}IHbJnICU7&0RSC|LCSR@wysHng8&t-$}Gk517Ih5 zXE>G(0(i}&S3nFLLWsPQwx{9%^Rt8bn@&+YKIUi(!Io4D05iiR8EECE&B9`K0y^{V z*ooi3PLdfdlY@UX8WS$n)N=cir$8Tu*a(FcgnuKKBffJt?Bs^d{6>QmoL3djuEGtL z*ueaqSQP{U*N^@S0&*~^;{5BWeRv-Wlr9r_u3<{vi@3)EFU*!(v23t~_WSbpNIrgku}GVTJUDc2^2Bu-Jr0o6!B zjWNJy?V@(y^Z%{z@MkRE|2_^n)n%t$SXa2%`1V6|;Yy*~=#%VxD)VPvc~mQAWCj;N zariiR33umG^*AM`EaR5KXDLzsy~1qLv^f47KyWBOQ;F+N5Yj#50KYV6><*T}uDAA` z$4Q(QT2FO>)>j(pfYdNCUy=XwL{CE0^j*^u)Cq%&ZbhzYHuNo@68(}gGB;XX zt6TG95i;D)5A-NJ&nJ*1TO_sKW980fk7g{d6E%;{xg#^uVO?1~RE31AzYl0m6 z=5~nUnOV(GY$Axj!XFf#d{qU$&u4>0VQaK4-w(NB{HE+l-+gh7GnP_uP-q9w$ zblv>XZ7TcRPc|>(MY<>NZkS={Qo7k)Q?=Z@eS3b=dK_3*Q@q*ieKYST`ESYVC2k`9 zsd4khVt?IXNucpMs4PdG<#ZV7MV=e^tgS1Q9;otev`6Aqh2Ooe#|>WQ&6z|GvtmZ= zhWY%ukmG$M^Tdd-$U)8QW6-#Y3O50l$JHZ#%xutAyy?zY4mq&u>7=z;K;i+$Z+sXF z0mhFKRZSwXnTEzDB)T|HukKJgeUFX$2z8{^Wll4Pl&4P-x2jb*Cl}$ z^SJQJP+T5Pb4wIM+Me-Ly5?7t+@3btz%pYnY1Bmfuv`uk=^Sqj`QWkHVQ}=`^=5d;Y1B zLpWa0`nxF9C);o>yrEPB|A0JBm>5hmvCxWWaSk=_CxWyL8>C#=mOeOIDRjg~XIXnS z8)7W1uBno5!>r)+X{lTMed=f6eeDGW<>6DdEq^OQ!^OtBqmbg5#^Yn;zaKR!?_e5X z(;M`2ig&fAw{cOS@hV#nE>0PnSjZnMuQ&BUn<+nV0Mb1Q_cRwY$w_B4P=UZucv+K8 z;yFG=wathg@r^Z9@2<+4mdV&b;AbxZMC?rbl!U&c_%@pL7>%(mLC z;ygj23l|!<$i)`0`hV|0SF_$-3xv@pa(@y# zW<|{q)CmeNJCLI&rnxSH0+jA|#$*t{*bpFtJHsmoGKsyfl4_EY|Yh%x(y2X)eoDy~qVK#^kk&B?totYCkUM~Zon zp18I~6JqZ!;;Jpfeqjw$RTDT&>Ubr_?~EwNJBs z&>42<%p8rJEGHP57lK4GZcT;S_X5i8ZDm%rcnX+8fTxc0q#(*)O#sZ54N-`#jS6co z!g>%PNPY+5kt&*3os0n*chx1q3K-&mbota^4;UCZ8~Jb8mL-z*JUaTcC1-h(O1EwX z9r~hPe*XLBWQBWFSkcGMTbaVV~Sjd)JW zNFV%50cC%tnR&yfGGJ7A2blA#{n6g5;ro|ffO^Ye2cZww#Kat-d^Wx5;S;O9v^DI$ z?Xj=g=xjdf_8w2SG)(_t>1pV8F4#UVimup~A%reNM}QVagjN_v1dmY_5FnXXlA-&< zcr__L?dzr6`l{dGqtXJ zewpRa9tDmidCPzL1L>Yt*{+W?{9oe9UB9cb~6CTrgEt_ATZH8J-=AM)!pFPF)>vIPpq#`yF; zB+92ziRqb@Iw8|{T0UVF8l7g9Ss4-e4jFHfAEbZ{B3HNi`jb+d@IwBaa-Lu z*O2fJsxfPQY{MGZcegV+@?K^8oJE5p9~3;$KEQ8+NtkC}z1ybpb2I!?w9@|hj=_Hc zwdk}Lm&S35Df(yJA~AKuqzvB*M@ili5+?D=$TG09vdS$n6c_o5e(vj6B_Xrk`S-{X z@%Hj|!6o*a5L?poC)C53N+#b%Dh#NHvFSXKv$5&RgzYuC!~^?E3JOwVIDX2Ekdmg2 zKB1DYXn#KHzu{&dv8YJCE-HHWdjEQd2y!#eX?596gtKJdDNL?CXt#T|l>d-klG?r72WU26eB1lVH z9C-#Y#;F0u4Evepi7ZvD7*0M`*$QY2rc$k{zeBe57&BS@f@DoeQl1@LM?Mrv7P7D^M5`3-c!|pm|x)d(nfRuEJ#$ytL%<&HLnAN}STDN`$(u z;M_b8BcFU4TQG_wzKE9KI`Pljdv#aP!TZg&%Wl-1rc8GPTt06MAg|yCA*3Xob_4Mc#USSwpZaSFvr! zFJ)s=T9DcL5|WbFMS?J8dZP=+RHCFyEH6oz_FD{1UdCJ=P>{ll=lCv3wpaR%Y9)C* zvu2^;ga_`W2;^vDDWrZZ`q7{1_dlkxicKOw)N^S4pq)iYFCGiah2qe878}F|jYIb8rqfUPt{Z2-e@ZxFa?NAjAM@R+{W4@JrNca zr$ZH?8!L1~;_2VORl;aNR6CXmj`OO@#?ak~?@$@tSUK`Et_&;x6|>kcujQdgwb38C z`|tagk<4@1p=MD_I=-^z0y6r7kvI*jcdXhq4I-O2Sujda{l*XLegx&=XALGx2z}w} z>#nhpIJOKM>9lHlNI3~a%8QZNqC<;R`LKL&8aeZuh%G2eiC;MaZdN|W8nEF|q3QV`EKarqj9Ej86JwZ53bM0i)g2DhDuIX>K8%`K-4|_chQ&VI0sL zla(m!rw>F*(7JNv!3P8)+RH=yqi}Qj;cgVr=(ex%njoK1I1w=lM!A!V_D1OU+<_nj zhBcoWEd+wxEM}o_Z6~}NB!VIwh8rh^8f0BQ0qItnP!?h8hT+X%pyO>rEl)wJQ%@g& z8uc_UtlX$x~3)lg6@!V>{Iq-nBs=rp}@E zyMPGEb*mDSt5o+^mWv~Tjwh>)krCs6j(%w8l4&aV;bdy82mZE2&s&e%U-vcFQ=c*{C&CXzGgFxOhU)4WO-GF31F`sOwwL2Hoq2=vWCdbB)#giU*}hyP`NZRtFVonG@KcR zYFkcVhOkCm&_ONZu&tsSb~Iz&D^M!V(vMAW>{t~-s*jyGni~J+j&bdmhPVBv(nFaA z#Teo>#rj;$@sYbJwwghCOwET*eR$X+D;NGC#)m_}8QuzSI_>#12OX7TO^(ZKbQ?lW znNULY)RM|rvwnv{uy6z}1lQ7jE9wiqm8(zCKh*l!OO_{IRvfWXLJ*%7gjiQ+h;Z6hgBCTH_}kp zD?G(G95KG-aP`$yQrMf-lwqJ9ua-?t-V6)lFXlKF1c_BxP@w(-3#$l;H0zPay2C_I zuFIFi0ApyX^SC@-#q`M^xhK6~0MF zdq)a8K0dx$&!*W|d?6uk6pZiB&gPOFY}Wd2?eWf!t}6_I_WpMi;SP)R5?tEvf|`+! zJ^#X#kOvz6)(T9a`3kfa?wB7N^SU|=qL}&k$V<`aRFUXga*xN&Now&dy|2gdbIA&Z z1*Hx>rdwk&H3#32X6R@Dxs!k(mHJd2b!^F;OdJxjE1UFpuPp7URw;16wi1$c>+a<0 zK)52hWX`K?^Syo_0uoC4RoPJrHZ2oPE?$Hz3fg?vs3-^_8C)zbN+6u@! zUT!G_nNPtRU?~Nkpz_RmUKHVBNS4McxV%mkFB1W89Og@0RgO$K>j}~GC-P)iKfJ$E zrK0Zx$}ixX#Cof{e8E`R@E+<6)%k^Co5V#!8qSwM;yD>oMRNVF(y_X^ajR0UV$7_c z9nxF-0%-ev`Gb@8d(2<2w}-GX#)`)W{}z$y8`w!(zHi!sJXtFhz9+(@Jn{0Qgr19; zcUk2uo9mH+YHxpze>Cr($K9uN^o)Rc?6I<&zD*&}?ibvZ>$C{@&WKXD>c& zHg#29{buRfTca*2qq?vmZGXy83I{WNW@g9yzcJz!U%pU^1Z|bJH#)FcGpq1*uq;in zo_&2YY__2<0B&Zgr3HB_FF)>w4kFI9(k#(mv8it^i_+7VfBSlAxmy2_wFgh{$o7eY z63yVq4^^NAKcBOq!h*TTCWJQO9`sqo3lfPG*5h{kQCV) zkG%Wal~krjY8*BEoP^6=w|k2T!V?sWILCjF2GD8vVP%1CZfh>pYj3!+Wf4S}=_uHR zfkE0;Z6P~4q`qXXSXExq{O*H6Y%FOpZp2#N-IAk^ol+X*BhB~e2V_{rt5Y@hT4G+`I@mq!QP>?C0?fHMk+(x zeo+f{O$&v9S-tbCSow!b`6UjCw?mIqyk*5-CSUPM_7|2{*JFo?btn|%e87bR-f4dt z26(6w4f{K1l$0r3tK^KuRV*d6on_iY0%t$~FlymP1fB+^(_Iu&MNB|dI?9A5MxKq} zfIq-QPg0H>Nxc)vFkA+7&<-wSq*nAbNKO(N~7;K+1MZO?9D>lys|PjVKvR4$(|Lx5dzy!74;LmiI8L(#YbZ_$V+ zh&gZJ#liJ70yyAI8*_jnW<2meFDSx1;a%!0C_#?!_&(^p-fF>cYyLDh?Uvm%;I&3itQ-Z2HLI{D3#GAZE9JlfYP~V~| zJ()4Q>!AMmU30_Gs;Zi~RAg!e8ptCnnG{rZ0yFEw12tcDC+kpV(n0I}26W0S2`;ZP zZU^etzmCzt-=|f5e95~X50zmon;V%moIcs1qXTsv5I=tEJ zK-e>a6%$ZZq^-HPaajqEwADm`3bsr>5+uL^{Zg@5C0A>95mQRPv(X0)L#j#H7Q}7M zn8{|uY?`-v*B92`(HS;2DYLSC(Mpf;(OCQXl}T*nc9ebBitU`8@B=f;7rnrAP5R?E zjm_~!4@rg=;u4>xlQL`|aAV`pPuo}4Hu`Z_Rq#a{I@8#41k1d@A}9a1AZ$)k2_+md zj?$?qiKAa9Y1p2hlT^`mFyzA8zP$AHze~x8%!jzt0WL4_7}cu%Lu|3?1J5cXZm+Qk zsP<1!Wu2XA_xAQ=xVW76wzuD&(dO-)?W@+-nsiNv{_r{6K4VZOx50n2vA(XEkha?} z)jz+UBlcs#)%&OWmcO&fl9R5DkemB|ZFr8I?d{1`u{lOmYiG5zynB2$x^7+``~L1b z4p;xx27H>D3gGm1^K#qwN5@9v9Y{Ox%|)gAwSJS>8xKm!|0MYwF9yl~@p2C`LfbmI z@g%)>csjlIYh>V~gKO9p-Q!1scS)HJbWP!r(Wf67*II0e6-%*N4`3k*BNM<{aMS59 zHM_8I)cJU5kf!8N2!J;D!@i-qI`a8Jtk)s&9bJWttV&2Qt5wK9OtM{y@aYf)Y#&2u zlwt?2sGpQX6AJ9(V(*l~MRyKg>2I=Zkbvu99!Aa;8x{XhBn%B-IzRH{AVf#DxS^7w zIrwVwD=t|q`)w?#f-QdF?6krSDT1haOs zZQSTLTQ7AAuYHXxk|;Det=`Qfk*rH8LZP@sGkTcclmE$9;=mqd5@9kkYAcOD7c+Sp z_jL6SFju%OA-lc5C{<_pm{q2pkCR8ktF#@CpDlQYKA31_b33`=l;(WUc1pwgyGmuU zuBsF(+y{{DBFsNbm8-xfl__&110|fUF1g7LESvRy|6An5$j?kbI`|1fMokHfikPxt z=?bO!SRxV}HOt|nhb{-4jp5L-7n`5E3TlNCB&prVk8$2%p7EAov0kW=us3SI08% zC+M59tWU%#>}7rf9uE0>ePyM-Yb6B`&3yvucu~qO{R<_zIw58q#%$EkWY9|QZU2H) ze>1d+fAE4Nl=Z}0DiNyW!fk4v6By>X@A*;^c4GF~e5R|bYcw{#D*xLzl%l=nWEa@_ zy}w@;ycBpxeRgJo#^3W%y3e^2=F`qAEbQ--LJW!#4cZ?p*gM-EU&bery4*ST_q%U2 z_f9$X^9NN2g#EkOJ4bCi`8PIt(4_i8I=_wzfIy*pCe$>!P(>qj$nWRiT3{Ui6e;o> z#^(#4P~b4q5&(wE>vBt<^lsUMjheRns35-PghijtYMkt%(e8aqW3VHy9NC%zUv8$H zWPbQ>glTeCxK4uEl-Ds8NLKcl#@C;Wdd(Fj&5Z#@0>LO$GnnJA*hd`=hL}+%hzr&T zG|1Gv|CLVMElG_L>_1G3Vtv;|rNe>ul&(Wg96sNKO$EsURwzjqWsHZLwo;N4gqbxo z5@E031~v%qh7$j)gH-?Ggyy|TqqsUB&GdQ&f1!-Cnr0n$RIWRTvj2Tdzrv-bh0cgm zfl69hnz^dWVp7bctl(c~1^StHYUv9rbBGKmWcjcNO7t~0K=bIAS3rZP_q+BTF`HaWufNz$Gcbz(EU9LxVhO& z!_OcA7gRK9zcYO!fNe-8qIT%Cpx0Ewv>An>SzuF?FK(C%|MaN`BY>^u+^MR?Bv`7J>R z>PqMbNTOl^*K|;o2?>ys6+h)cj?bH(G-Iy$qf|FyMTM`A4w;Ct#4nH%Do`UH4Oh<; ze<0Y$&(8n`xFzbHe#L{dj7fLjZc{++`aqDpQ?5fvxu9Vv)GXfbBPMw7CmVznA?p|k zlv(-3T1g6ex7Ue52|Agw8wB)YXE=~EfXaT*S-uM|(1oho4I+{+MgHqbN|(sUpD$Z- z9(8+x^C{7rFlk2pX0%{ADJf@^_{M%T20#(IwB*`_y0tiX?RDumSfdhPL*gkx5jN(? zc4N_FHd*AdPGboSNrr74ruYjdaJ++f`9v7?4}TkrgYm=Pu`Bmc5KBntXMND@oFhCw zIV{Ng>W+@t?4=^Q<`9oP?5#PMY3A^svAyMRxr)+BsC68tVIGU2gAO(=hk>Bn`agFl z{HP?p$Sn#kJ*MV{D*w>)jymi0*UTAI z)+=etfSmReT(U7fuxmn!48m(!pI5U~^WYX2>^4MQdLHaldR55WMk@C8^iW?emaJy$ zCt78l%a{Fq=hr*8+(WD^Ax;sS)D|nAHa0?e7$S+qDL8A4t67?a`X_%Oo{fhQiJ+HKYGoEp?fhMN=dwFDdWccM6Ks&<}GQ+V65=ljlBD zvw2RAvzt9cRx{WZlZ;AzW#iRMGLN2Hs8*4{GnQ^@DsNBxG(DAWJ~~+{W0Fozdi6yA zdSaYKIVpVXopiRgrh)=Xi+8i8p+A*C3%{nJLX~BxwpLoK53eJAqo2Cqi$>~cOF6mf z78UG0oF&2;X$s2Uz_rTbz z4xwAq5kho~>dc6!A8(}}S;si6SVlgMjzs`D1*kWP`Y-Y(Lk`9cvN789XsG-n9{fLv zgT1p;g6FTtPYm~%+t#j&Qs>kcH@koZuy zJRcV&nLr8_W8d_9^04%cX2$&kzm#L4BgVs`G8D$ndKBxUh@8cE1&XBZGj0!xrfUKv zL~GjmunrCktJ~{Prs-xxPa+ubatRg%6eu>!Y9sV(YM4~Jbz1}%Bgi#ot%%Kflaht4 zn``GgV8c`cj`ka^j6?bTZl-055k$P~8^}W|h4O(Ms65fPesYXrtNw zB?tysEJajYTr48Bmnk(f zh8v};C{xl{fQ%RnDN~XFtxdoe(gj+$*Vfj$LgoXibX5gs)#s`!W8YAp=!T)A9`K-l zaDkLSm(`XD9(eirh+a`>xJgPGAq0!kN7zr4pC?I)XqHTDFz1ZhfyHYF`vY5M6Ubp3Em(Rs>|&NsgJrTdxo?mf~tEE32bC#*H|0vIO}+g2SdZHnq^`*aRQnAmy6~j3MY65EyLDE=QIS zNE<9;*@nTdjbl5Pl9WW5Y3Wji2@*LkFJH8>pwX2BT`nHbWQ2wmhztb$N=wVBq{Ozw zs4VCIUu6wdRaEn+qME8IYOHUd*5(#!Z*8Lv9$jti)Xif~M<;c6c2QRs&l@{Ct)ruz z{RjTMhd-Ow-NVaHn$zCS>+ECjvZte+2Kstwpudk6_4m_?rAughcsY$OT}nd>7Epgr z4=wDQN6Q8WY1!f>w0y}@TE=7Pk|nfa#R?jqn4+=qNf}t5n4F@imD99l?RuJ;V*4>M z!RH#HiDipv?bJAJTD6jPtXoT`ZCFp6re|p7iV>O`8KG%>cVv`?mo2BEMT4|t@nY)j z>*Kj^Cso(hh*n#0Xb^e(dXcLe&#N3AB@mvMUnu25AY;NKVhw@>IzI7&1B!4_WDH7W z6QyJ}MeqT07i94SBDlhMf~6XaLkP|UK(i)_=ZP`AG|4`EW`8U)fYd&Pk67xVkGGx= z+Zg^Y zb%=G@XU0@CDZ^{;h%0AYvEYb|YVk&VUf))0&5W6ZBfe%@1RIf>-qzE`08lO+B76h= z`5{48j7d_);u2KtT^v~ORLz1H3QMhPIkSx#O{hhysAZv*%~mY8uJgn)-$?1ox2C1T z+0jFZ!K$TpTI@$!rdom(*Gpl@a}1_j7;$KHlu<=>6ZOnlME(6s*a`2U>gr~yt7{j5 z!RV-XNul%e3zPv}02os+-C)7NdTTaZ7;slNscCeD^DHTcUShDlJwcXuP@rFcII>>e zUMdpE`+bG=M%rGW7;s6)Hb@O!8;WH}s9FyX38yG_G|fm^M+&?+wCupbpfd=j00w77^Wcv(|f zL6xP&R8dw!m1U(=&g=NRqLjDGv0Wyk*iuX-#ijiF)lyAOJylk*aj2=|QBP&%l~hoK z$YUv0lrzv*R#RP7In`D$_*Yd@WwC{7%h*vY=k3ZWYGEL0s;j349?gwS)Yj5UbJ^Gr z44{l)5iJ_xiDAziaWs%ImX(u9Az>lp;pHh&3S6hOteSz)ETvOA3aVLe7+&ZW=xrD; zJhxcFQP&1IN=n7z#DF7(UI~k#&gzI;yJ_^R)}}DLXk`h*3kH1HC{t3xjbldop)$NE zWz?B5ldDx5J9N^};*E>O7DB-H-NEtx5_D72w(b-u^BtKnd6`Z{r3HQYr7AO~v{I2V zIx|Kv0E9f-eqeyT^Q|#JGGmO6df$ct)y<_wxsrha=(Zx6F`e?ipIoz22zdxK&L3ju zdrk|LR+ma=A&mhjTTyL<6$ZqcQ{?@!VSujDFFFYZ6xm^bUFvR*((gc>|9=t#bW~KW zTLc3@a8}p0(!9CIh*?ant#cFx@IGY5L`zvsw4_`kGX;(@$S1M+C&2(@@Y!R48`93* z6$XIJ1_t>0`bu^OFu>E(M@2gAFhJ=7m>2`XZTbMSFd%}WBV()>5X<+YFd)&ufJDK7 zOt$;SV?c&%Avz;A)`jZDh8xFn@rVG0ur2$Rehvn@N4F#wt|_L(uZNT>}1 zkQswcY8nIJe8cfp`T#3vY}NP)7y#R^%Gr(V$e9x{U~p^!EgJ7VwqV7)6lBK0)`5&U zg#q7>j4`V+rFfnb{0*33F*0MS8*8bKCsjH?+cBqII_l|6NxU10(ru>2mA!Cr;2HmO9kVqlrot<5T1nrsIOS|{%qw~(ckS@6J656-_4BEV9 z8*SOTUB0@Wwd7XD%!YV9nGwornPI<&>9}A*Q}(}$xL^JC*(3%aKXx*mGv}xOR+P>p7+OeGnFSl>s!DA<_UCZBDy_&Xf-b&lIZl!Ho zw$j$k8)?ht4YXnX8d|q{nl`SUp$$CN^Vqm<4Q<@Gj?c4|cJ9D;Hq-81r_tWsr_+8O zJGX41HItLHVrYm~jjf>V8`jbeKK_i;chH{gTWI&T&9rqL-{Z?gTiHFcrfn9nw6iAIhD6hATOh=a|0|wK)E71tl4Wx+FD)nQZnf#X=K$3A!EkY zs1AEV&`-|)eDUOh-E)T89o{(hx?sV7WoC?}qNo*Q3?ietOsU@JrUb)^8c>ue&0@hj z+oiQNerPzE}ZMA;FTGo+PD7*^(6l!;6Wp2sonWIv()kbXj6s*z0uFbpbN;4L?M&(ajy7u2hB!&JQo~5Vy$B6&IkcWpwNy;-E>Uq8WY*;tY(Bh?3!44ysYjnYYup!#rW#{C{ zHV7*GE*VBAicEHh3)#^vwpb{e9bu%|)v}XW0w=bdCra$JR#w;W3spfS?6g+bHuC*2 zkhbyvw6%@e+B&GUg(q6A0NZYwJ7+GBd9v*5?V~|9P>b1cE?vBsmhl)~yo83A@L0N( zmM>dI!^@Y;SiG1WBaj&b1N@xWK+jGc`#o$42?w{6a3APs9AZ$&nSbl0RF^K(K!8S_YEU3<@)}cHKH2>uF~78d>5u z+Xmp+v6H63a!-uY=#l~2z{Y$ZgTV#+_tGV2ok|=wua+jchae+b zY-7Z2EV!`d_&$Wx*r5*KV*~heHQ1Q?qYNZQo@1RIgH-j(nr2C9hbU(_qM{IQxCHfXJU}$H^EFpC*}aaAZ!vfMk0NP_|!Vfat?y=2)Yg-wOj| zJ=4H|%#&jPUpLOM`*9irDk>U97X;3CMn;}QLQ&6- z3`dYBgF{OsnzwLZkdLVlo1bEcokQ#w1KaTl3Il)(nHgC^idYH@+4dJnXP}aj5`_UJ zWmH~KDHu>ur7)n3w`=Md16pAFfdOi?V7s-0y1VDh!hrc~9|spLq9s-gSRxp(V#(53 z7_gje`OuIJ1IH9XasUAT|4BqaREB^7i+};_V9lRTgA0HGi)f&49%DkkfdNZse8qBF zJvl+Er(lyu^YK^Gl3K)W|@p;e46t0yJ}1C}$EE$C;5p8sxOV0mRFAj7P|k$TCE+{?hVA!e=Ns8- zu_#r|N~6lU3L#@uscN~EkjHy(#Q@QbX_`gGC=3`hBB4uZ1)T0xV<%vMj)W?5o(C_5 zjG2W23u$no?}PcnJ!$K9OdIy@R5zvXSEh8Hlqr=}6sHuHm4b7;vE(-IQAEg*bt2uWqRpJkVWL?Fsst)(VM^S2a}%Mqo6w*GWgl z-oaiWV`Pt{^-`MsG3?^Tc)FXK57s!4WZ}SqRI@pH+@*4Z~XMRR0r|gq+ zgz!0nW%&53fs6wGATre9o5yLN1$J-c?&4)%%HtY1$n*KDA*8@AHwwVT+E&d})C z3R=2kn8ymX>HKaj9b_BcM`!NcNta)A7VX{6e)jq)_Mz9&rDyG8o4SL?PWG>N(D{3} z(*^ssvyI(F7oTw&U2^75+PjT?@nN3pE$O4l;Q?AZwSu;+nWED+uBFS)J&Wp!3urUH z^LN~M4gKWev*;o|$G*)ow0Gk)U32;QbjJ-pqq}dqj;{alWpv)IZM1jO4DH@9#rLs> zhWgtn!4yhv4ztOTe2^cIQ9!9z z2*?#7&0~dR0kM)KK1#aa0f-Y2GayND4CVy*J~FnT1%m*Q(u7g%r=jrz(RURnDo`C$ z(PD_7){1VIqTXf8iRZRG-Hg$9>9db z@%}FtPcArP-qKEoPyhbue^f{8KSRbCnlUBimhSx0Jn5!n&5WtnoirM$jg4a`Sn%#n zDOZ9+j#|0q_GUQ-3^<0QBsNx9Q`2=yBDQrqE0vz8Sa1+7P~Jz00w!N8*UpIHZJ*0V zsj*4~g`t}6>Ek6)D5T+`g93<)^t4=xic+j%Y+@3{u<-@Utyt<9Uh+d770pY2_|0)- zisgwf?*}^_5@8a7SS=EWC8Aq;sO<<5sl$4xu|E_F__r#rmnbbn2BF{LYSgL&7^-XQY3=%r zbmb3!OuxAPmvrTiu3`gw8C`Pe59rd%E*Exu4;$h=d-sb$-nDxV?LPfNsvO&jU-9ouE>*s_JTZdym1*0B@3YJyfxjIa|sMl%>w`I-CZz-ilQKRe1h**I@m zJ58r;SV!j{*h?3kb%3_6nWkj}{nXFTUv(L>Vk}fy0pY_!VY&+~sKL#pe4c<56ctJ- z5$aDP!b7R2y_L?`xrH6?-L!q(D%#BVIXN^y)9m=~TEC7ah6ZVrCki7x!RTyiq}=p0 z@^W(%eE^JE2HgpDxemgLLnJK0aH_qbOW@7VXn2efxl~b0JfE1{X%-wLjAp^%gk!)U z!!W}b<1=Be(T>j`Zje2boUA5;G9gUPFpPPMwIdA9ue-cpQlQ&0BE?p-@Tzl+np{dp z8FmEJ#4(j}3fV{(6pIt?8xSf{Ql!}yvatmVj*(wnA=i#TtuQ-5K0ZF8850{9%hyY$ zvZ_*X)Ih|P8?CLI3>F+|>LTXYp|k^Fcy)a!$XK+o(}s6sYD8FYZFn^iqxA#C=&n|T z4BDC^Dmu1y1r5(Eqh*MUPWFGYXtb|#aALm0UH9I8O2F~E$e5mXhphZ`CrfG3l6-!b z3Q8@Kje_XE)(w-+8FSi{URZahRj?5l0H75Nfb-o}E1EHa0alU5N{NO510dRl2)V`p zU<1mVAmWb9D3q!qEggC>t&BI7?0kca2?*nN%hy{l0IApL$b$@*wA5^hG%3A+*hC%) zh=Rt8?T?6#6??BRAl8NfQBhV5fb9Xiu0(#!Q-E;wecHp$Fi~(C|$A&e60jD$mTzKYw z8JqaLOBVK0Z&wFZf;22C5e%?c3K#?O83QZ|1BwvzC=d)tPK4${1TCC5htAo>lZ1Vz z(>8Y4Hcjy)e{dnK9$rSf)~#dvzmUe*{v#UNR$oUMNr~j{>}+T;9ESmp#^C+<|G>7w z!G=zm592^Y#B2!#;0F@nCI|~C^=QLT%loSRm5ez^?6eTLq4^$X1c5)0bGy;GDqZ$L? zd?OM%(f{$nk=~4D(?bpqK6;Kat9#i z7cA}@VET^ z{YBvRc#;9yTF|vZmZPoJawspu#a9ar4xzanZFJwAzo0i>c$99w<}%7mWPA*T4x}&t zo?hhc89?stLFDe{Padu=LOLi(14rw10=yjPk$ZndcmMkT(aIslrSU%c)m3NF2QNNC zpT6-FefH*I`uhDB=7w0hY31U1G`FdqJe^%cH^_&NFH)BF~1JxmsqqBh;yPIS{ zyc>8hZ=hE?szFCg>&C2@8Wuc2*{Z#km~Q9+d>CCbPE#AEXl%_WEnm4r1bm?(wrH&X z>t$1e=k+b0<8alrS2}$2%{TvLWlCBzrmUb>mnjuj7E@(SrIabPv^DYMs)bs?g7YM} z6M8Xo)v~?2gPnAhk_bau*HR-tc2$#2EnOR6Wq1_<1A_~etfpCsHv)`ND?G9a;5$JJ zmn>3XURTbOzdWAo1q&Gi793?tFlcx%5%G+PQLJJ-3?Vx$VaPHFi=+UwNdqGdas;e& zaF`6eA1d20aQ*=y;!IiDZhyse<1-aW3N_YM^huV&sD~Tp#WGArFx0sb;o>DS3)H>{ zVc+4vBLxhG7_4GtbtBc*BjVOb1?cl$S}P1ECi31s{vxL3>FI4H0?@`SCnt~U>KdrM zql<=zM`(O}QfePpuVw?ZYMNHBSwkB(Y^3SwX<9kCl1|^YgN9YF^oIxW? z255Z6GFr4~K7-~Q9{oJ2TF8^DUg~IXrP|smDle;%vYzTHbYIA$hAIpF^hX!d|NFt& zv}4^kZJu6Emz}YLZvN>H=$HTRV!Gv;E9f^r{}J8tvn%QL>wZMPyXk7W{dzWN*IiEM z?_JN%Z95IkZKV0#^)$S24v)EX&hG7W)g|XsUQ!I*_|wbjk>B1-SDt+uoxOcE?b|R( z=byHo9=P@A^!&m5==n$QrJr7WCT*QsMh7;nqN^_0L)ZW0BHGSQmnAca{M?+slLgOC zildF=!*s!}t+ai587=Irrsj$qswv8#rt*9mV1VB|IYL``tXVcl1MN*zm6J~8nQ4?7 z#S!x>H_0T{ zB+n(Hqp|FWXXa%}W(?k4WJu_DzP7D`8oO$R1+VX@6DGW|yOElq7htUqRpO1pgpUk~ z!G$x9ltdU_?R?K-!jT!Xj-Bzf&Gbwon5wfWfv_ zFrdnc0kHq7MAe1?zzEoW!GM-(A!C36Xk!RM9?myPlyFXzspb~turq@emEMw;4gv*s z6y!CW6XifB2?oH%hDE>zo4yqT{2^p3Hb2DLapAi#09gvMF4+eP0}zds`f8)jT4O*6 zJO02Qg#pq0d8l9ju8VDSSp#lCfV;Y;Ny<~pDjFys*=KBfLB?S604EL@00&z;!sw)t zUr@*sqDF~`BK3T1Y=TyVFOLiOw-iF6rHti7rpl4Q}oL7hv=Mr zJ81=Dz}N`e!GV7M-_7Cw;e6_z!x+#tkJ|bFTvKhs0IU}mW>Y6msDAO&E9lA#_p{v{ zr7bhVbmh6b>E^3{KsWy662XAmulq6m`syp_j_a?YyKnj_-SLYb(XH2BMrZDvrjdnh zG}zNX^ZETB9h}D)&_kD?H6>}fo*j5w$-#}{RCaIcMCmy z*Nyc2WB1e358ci9u!}KZIi0n2hJJGKe!A|e3uxW=Amt>R$=liSJ29XnJDs+#9HWc& zY^6;TgS3D#prJIAYAnEj0$Mz`owo5aw`F34X88A+-&#-Q87Wl87?2bZO1^GR;&eOP zVSuxXi(r74w~vTYrX;5dN$4#lz(Ep4G}%Q$;iIVR$W$XcGFdPH`y-5F)iZ5}0eJ=n zm1O7HFaWk+FhE5@(W11yYc5$zDvW12N;1Jvo?6Pd z01N;bg9#@v0Bvf$eSIY}#+(>O*#+4uGe$H5s*QJ^M|&mPd|*JsEDUJrX^|2|TXy82 zRm4{?U`k;C$QXqI6IN121~Ov|3_x1CV1VI#GX{LIY~^5P=U}tLmObkXzxS(Cw*TLe zF&C=LnDVO9+``g=PYR(U#`A)5o{WNw!JMGAv(1JFzycm!^SUKd26F{yzQC^6HP;Fj z00T;EEmk5%ciPh>OE?zT0lxurg66I!c_u_3VrC^j4@;?SP8(G>C^9A@GKAbbT*$}I zSGus_y~^Ns0~6J#xI{8V#Tgm%>DF>RrPY)nnesYFg-l6V&&ak0uQ2c~;&a^%Pk)B} z7`m8cNx=qNGteQU--ke0-8{JQxDiQ$1J@7(h&79mGdhpn?YJ`qFayvcq@GbP&d(YCG zhGJFn>fm7Lih1x7K}c8G=j`Yp+GN-UIRibEq4^#3_A7_z!8@*@U;g+kdi2g~=!2t= z&_6zSp1yqd8T#s-BlI<&`^$Hpk$s=O@fdw}>L{oEV7QOP+z4Z0_&(TLOKTLo7(?R;;%_r%b51!+5KTDs#{TzM$ z!Atb7zx;{*e(V|gg12#c^dhEAX)06k!NN*f@lot1PDl&=j0hx@RUe0u2 z?`HbPUtg!!4&F|8Uvoaadhjm#^1T;{zWKAvUA9h-(A1JXTFGPorb+taoj1^DZ@)@pzvUXb_VV-Tx*uLlzq#RRN{^3|-_Fy+U34u`J{HAT5EB(8WxPQFf#l-qCVFW> z$d-&YOXogK#^}r#V1OoGfDM>4=zuLq8Duh|v^0gE-FQ9@#5v095CAeo$FUETAw&uY z74ggYKG4l6Ia!e`AZlz)+qOM90NQ;{{~K)EaHAEBW1TfJRhD71ek1 zyABPpu10E_(=0?xLsz2&=J4*%T{zchZ@tLcQ3;rU44ILYE7&%STIU5?PZ9#YBQv~T z<^&_Og6DiFU6pLfi3R^yJUMU)4~Nc0O%9)b@%ewucK%1mm=WFDy1a0pu!N1S2sjps zGISj~;%z)hZ#|v`2LsMaY`1i^N-IN00l=v1p_HX<`*bz|&aI|V!C`*xaKJV>4l zNKQ@+A`qc;_mq2|+u1~iAH0ixf9((Hye;GO!?QNf1GoJTy?Xe5I{Nti^uS%eq6hB0 ziNWAjdg{L0>5q5ZC`|aSnGqW6<7c}xhvw9kQE^tPu;5OHLyq=)=*poCZ?q`I2L}a< zUW2EXF9nB1S|g$`ygD-m|9gAGt6OVpmK=szwPjQeLOdH?9kn#`L^By+k0>WUe<(vp zN=gxf3nQur90EL}A_xXe0z*I!#xhZ^52Fsj(@cq!CL0WRv{{vUptWj!L$f$8V8PLz z8;*h|V+v8G#LvBIMGHsVPaJXR1)$wz89Qvqkf>>~l_pk$jG0qU^_>keU~n6|mGQ+S z94YF(i)<`79B~-jVS@#S(LEUpKDK6D#w1VPK*qocS8ePDV0iyEG%>$*?vf6N^*g6$ zkq@WFY%->+r^6vDH_O>lQZP|iS|nr)($XudD@4FoqM#V;e4iWxTC5mQEf`RC0tVP; z$iU&YVL+v1RN^^UJTfR4fX*2U7B3W%zp{=U()>(*7JUT+K*&Rw6@&&bAc3FZC^Om{ z$631q00Wc*{w){~uP^||;yd3L19ZlL#sFI>({UJ(lp*_7TWoYrvoP)?2nN7eLKXu$ z-&EH$3MpU2&bP(@;0A1lC)*cH_(MX_;mBXwd7cadbSDgz!tN;!Iy(KhI=fJSw>RzC zwvHaV|7Lpo#Xr(T2eyzaf5%N@fD>@V!@vNSZ^eKGb86_XZ$Cp9?p;e03mWOdT`TG7 z`+iB^u*3Y%4_}~v2nM`jV8E+Hf8*s}kFrz#B)#y+P4x3iPos->&(P}SJv6$Yl?FQM z>56mr(iBg=E3)HxQt$%3_rk+;+fUD^CX?eygDZ=;8AyPj^m@f`4x0>`li z8H3Cig#lF})-4zSGUhl8XkZLz;sG*7V*s+_bg9zv$zh3vYR6k)z{G3}KpWGw3IkS5 z56{McNx^`k&PB}*2QJtxQP6L``TCUY|6XKFj6-=%Ih(1%PYR99n2MS*_6@43xs@kO zooYT{C1DIwrk$5`Ddkym*yrGhuA8$ekz+pu?^C*w8513!B+s(WAhWfVPqb#8VdyMjol$0= zIjkqj`gonmrsoa%Jw|yV_K8Stg4XO%xMJU}20oM4c*464$pL86U?Pm}H_$69=1FZu zWj&Qt)Jth#c77@4@-muj1j=0;9Gyhi+=Na=(b0kpZf@=}4?y`6vtUfuhJLqy+ohB`x4RL-=}+TyMY$4JrH|6&_kc_@n5`m zg#P~4)E8ya4L?4Q{=|6k<%h4*Gl%Y>ADp+BUVZinTFY})oY$9e7A2b?KqC2n6BDU~ z;sgBygd}tK@RmT0DN2dSg8+fux6h2h^8|dre&9czDflj~ZeAj?k4}NuMg~fBd?LB= zJOi3>?u<1tafxEjAvUke*ihaKA$ni|^o~H-;s1z?cXUUBcyu_w7f#L~@!Uj1PK4_j zYr;&?O4#4iN6K08+?SSB$#V^22y+9>RgooG#(03NNnneTTL|a*tC|y_ObG(MWz}WW zz<7YNRWxycMifev>N=|#3+jydfFfcrkQoC!K$#NA82c`(Do8s*qpL=Y^3@4za}Np7 zB1>|bKU*`V1bk0qOIMn{Npw$7F?Y13UR{Wfa|EJPDxaqRrnvlh8K>w zX24;zQ6D-!GfCsqQ_@8P&V2<>gmVkC*@^WbHxD-vii5BrYWLG~^7$W~DMDCq#1q*8 zMrt6OaIMpU2VGBW^-?q4dRsZynI~*xsZ$DdnMZPp)(}XuI^vr7win|AYlw9?;$`L4 zR8m$hfDsZBDk))k?3|bLLtFvzBX-20%TZvdP-F}oaW7xP5f2tYB!9yhhe1Rq4Czk9 zFP*caN*{D`P)5?puAC+zJb-?F<+*g^p9_sl)?>Z7;NC$Bxh_x&2ZdE^nA86KcI2K9=ZRI1EPr6p_( zes{x91SCFx=S6zsnTP3-yKiJi{nzy5!@no9DZ)qv^^pH#Bpci)HoRcKquC+%^YImt zWwZqh;s2o+UV{as&K@i zSA&d$?A#(Tyh6qlR~T(gwIj~g;om045by;VQ`cO>HlR!dyBoF9WdmF#aBX-Y z)(0}i>WE89qKyT&7wOV0_}I*tu;55XgyDtJU7^dACg#(Ek)GcE6+O-yPMy%F4@NXVjCO8ifIPZ_tqf7?8mB*c2Nt zY3Z=XaqKu~41hDN?03!y7@#|3d|wRE>&Ih&BI%FA0NxK!JFxWm;OK>zVZk)lxB#tsW8CVzyKvg=;SmT16+AKz{iVj{Q2ed zr{^A`gZJJ@FFtk`ee~*M?D!t#@dDf7C+VB_5upSIAWHePU;rHHuiihx81NFWAEqzg zW4z$;*7J|iTSuRwjr?wV@;#ijW17C=bA85kUt_=*#}2c-XD9i6#(+1E&?j&4`QJs# z`%7%UUy*Bl_7>yJ>yOe)f4r6c^2+1%=5vRrv$0xbtsq;H@vO*_O)oz4kl@hUhwr2} z4*iBcfAeXgKfg{#AHA1`=XX(EQ8pE)Cs0j6I*s%8BX`_D-+cHQPb!|H*N!|yf4K7o zI&}XX^uV3Bke{a_c)YzlCHjaOdD#BgD1`++UOtiz5B!E$r?&5^1WA!GN+%}4`b_Dp z7&W0wl;|a*;CO!VY=Ibepo#gFb{H_u7_eg64g*#WK_h?` zj?S%}yR^gMj0<-g*^#Hnn14scTzK&X4)G}v@GUK4Jor>vTUW3x2evm@SxuC^J|Q@)|!y9&x+ByVK@$WphTamBtQ#15b{mPm?e^NTUuQrWQ-{) zlx?KDWX6PqM#y9q8el0rCx}f-F|yFJL{}32lxh*2ECRgnkC5@GMN{$a;aSE${jTcF zW!Pf)Wmw|fz;&=60;@QW&T`OVsnBi0gf%oQTCNF9LM8#;BgvTK<0T-=_8(aietrQ` zri4yTXf=;H0lHTrGbTN|NV4T|eq77Z$yw$B5fS11cg3*}2oYCgLWJ`iK~4N&w_ThR zsQ@g1t@q&X1bVyD)fexfmmmHWy>RdK^x-pi)8AgbkLd5u(=}J@q5uyka(7X40S9Lu zZmJaD(P(|Gh<^uicXgnR>&EHa1KVj{TMczG#_wD^N|&F#oo@P{^XQ!yAEZx?J;r|Y zlWen}q`x0y9Qfcl`kHP0y}$km?OH!dYexsDx2>AmYf7jzFO{N#eFTq8f&TQ{UtLB2 z{OeKr%WDtI90H^}NS%NE&$l8$&t$0cYpAqte`TijNEFVYwB#M)ZhY&dk zLSate>~4@u{J#$8^9mUgmmt^EfqK~ZOnxWuY&uEc#gSY+d_|}oZPz2%$5%c8W4)`V z1dNbziSvPs!MTAUxIYAGF&795Hi=(_j7uS7*oOfb1KlG$+aP0*)oay^$x7pSd<8YN zH^{qP0Wt<+?pCEwoEmW}YU^wOc<(XNe?G`g^xmiM*MzAZEK*zax>qx&Ua>uWalU-PxUdgn0l z7ujk41qFC}TG{&oNx?ZZy)Jq0x||d zZ4rhjBS73fMO{Zl#R)dbnXn)0$}lPxT%32X&Fnll2&?Tx9_&a%ln#a$*H`~9C-U*} z6Gt48QjmTEsE)3pejbB&BQsx!6`UWbtcd7}UVE{^%PKE(euFwJuD3|gD*mtcn z1`I%IDxx6c(-Tsv+B?usHBHrwMHb4)NmFDDJKxBTL}m;K50uy?rl{;ll~I->_E%$o z*5o)|AWy%CI?DO)FhK8z1Er&(aC|fdsC~&QEj}q-oEBgJgj4Z3#PiVAM|CU;lk1_3 z1l`vvsv4-cypHh-yQFcma>x6p5OaTLi``g$yZ=xd)-bP=&i%94bl70F0+fPV902uJAt1l%l4|l7c z!WsLw(T9vhpYr738^(ZtF$R3|_Opx|FVh%fil<@sk@4c=pzxrnG@C9vYb)J-)Bi9A z+(u{b-AJczUPZsT>E~2ZkS!Px6c{9>NrC~93Iie|Owzpy7=ZsB2=vI4V1Rxmb>tn6 zH=YsfN4bRxlDG<)4lOd2U4$S~>EtT^7cc)HDaS(=3^XBBS%MQ!#sVoNB~2osD7h1Y zj-QJFLvRt@zr1||tr!3jCB-1*JsDSUehRFmGI#XVgGr$AU4l{zY(uI*HZI~1EE}AD@6)`6eGN!YcN~?;6 zjEONvl9!Js`S_|bB|MMmM*HbFvDZq^1^O0f5v=_5Bq2-OJ$&T-ijr(fl?90jvfdB- zt4j#+K6rTgDq@r0XB>NwJkVuIm=l1YM~OKyV}y)B#*3?)kTGVS=z@$%OpIqc!T1I(G`0tR$f^eh zz@8zXYLN5QCHeHkJ-?vme}4_V@`qp3n+I>Bk6*l(K7IWm`t$1tX>#d&yK*H5)gj2y z@dTYLXJ-fNan6SA^e}8^c6>0s{M23a-YXB%XCFMtcK0CTz#;ndU7jnjJzvmKqXcw8 zayY5);5;6V$ToDM%HlkF`N+NW#rubOPH>36{@{o#KRxyoy?yjisywHqGIEfMhp-57YNi~j);IQN>Ndoit{=% z9(ef%iGC@vB~k7wfggVEK_DheW1LLc4=p^LAMXO5c~p47w+akWa{_dqM41u@8S9)N zOlj<4PJnXq$k-^+jDd84WX3dBP+5JkYGuz@P$Q+QO_C+A=LXF^E!5f9DLRty2ko=v zF+j*@a$c3Mj#~xYu^a;-vt~jvV+0dct8B@oQ;TS593A%ht{<9Q5V&}1fn>(~SCKJe zlPet3vQr%_<%LrPMu`$waAd~RiDrzU7hso?s2Ok=U63)>G9|l!eqH5^{ z790i_0QW!$zlIOnn!Sdx#KW&2cr0OfVPs*LH4CoUXB@9tbInfTSnS97v;Zp%Fea}) zzQIDg;F?Lvnc~2J0f#ZxMm;CjLP6;L&Q2UkMeH4Mbg4p|2IN~tixE7pjPft&N zu_MLkCM1}Jl)+0M6cjAcQ8>Id6?$97B>4ckUVc5p_a-VD+p+jtgM76y7%Uv(id+( zO<%xi$MsN$`q8ue{TFCpPA$0`lZd55z4Y{BchIv3Z{l-4#76fI^!GnKCXv;b58gxF zRfW`9!wyDH5~Z3#D8$2=eEHt~KYQ;TA9b01kJCa6A-&BcGn1J~Z={eAlF)nT9Vvoz z!Mc{+RoAtwW!Jv;wXfpZdqWYy0w}#By+}upW<$>Jp8LF?$wd9^?)UZj{jq=e$NM$O zWM(p%JkLG%IrrRiqvZK9@_EEXHbSJ_`dt!K;-Zic9f@=ayl$6E6LGT68gx@rl^JIu z&JnYgjIj(i*O;w@T4K*80Cs$xHTG@ZA~HnAsM~sWo+`hZIFkD&&08VOo1sCM64z$V zxO0v&_eagGp zyuF8*Ng7PLn1uhF1vf!=iYDSr$gLtKWaN0!bT#Wz*Ypd|3&|1b8ABFa0`81qlLkio z?oYq9Dg8S#X3&rUjS5Q(nwE7ay^_9RBx4$Q#wZ5#X&_6tl~7_pc&losUbPJ{z$zrI zDn_wD9;5yMauEZF8+Nqy`4`W^G)cZkj2$KScUCfngnV2=w9~2@6Y^Lh1_b0#O5=8& zSe9KF8ry3zfcuZ}l(&|AVQgot=Xz%{V%tz{U$uR_-K%a#CeF*6ZJQC49=(r!)Cq}h zC1a?D;l81nH*tV*fXW#rM3khHkl}l0azl>*C1a|(C%yHCdY3>FX zz_`Q1x3;J@b}+#4Gik=eR=)34QGj&|Uc|b2bFf)%53P9@$G3eX$?@m7<(l)+rezDX zAO`TzPBmdfBS#(Mm^C^WkdoLI3DbnZ@4F6P?_44nuvjsG zi8CvqKOWwM{a-G|m9xex22>PfDh7BGVb!ODt@qL|KalWDH|G*O=Gwi?b?7OA7L5_K?ThW)ZDIWQ?jP zVc%m zw*ae6p*@7V=?=^^PTV@SRX895Y#M+^z! zfmOzkTu~3PUiFF?Tb#A$1A2*d?`O^fwsqCED-jbW$Qn3z#$=3{G!DJ`_fkA4mfX>u zo`P0wTFTmsRAmeaN-7&|o@M-D@)Zvlj~Sbp%P@YEFd;F*y~%yYJ;NAJf`$8zkFnk{ z#2Pyh$F`POMH^p(uVqOWORn-Y=sm`LNdG3jj(rX8FRw2cB4b!o)C9a>{hKUc?3yi_+oq`BbS*VmLlJT2+nFa)!vu4B+KC zk7MJax3G5pbJ(-&eSG=p8`!^Q9*%7JL}K_d%zNWGF~RgkkqCHp1kL;_+jrR{B)2i`n5Q-Z@FN?CMgLw(PLoFf4b;R{&l`%F4;Tp2!J=czDtU~@ zZ1mm#oHAyHA!Ev`N-yGAQ)R&&GNxPiuISURKJYRLA2fWhVZnzO7QEl!dPyRa>Tu5( zn}~BbXZ2VDN&+cT3)MFQF;b&KaW z@N>CR9Twc93AxXgA>Vr?2&cA_Mldm(Rwg&t8#4{2A=}{9Wu``X)|n zU4Rq27UAHwFEDY`V3Xj68y_}l@++P+VdLN&_S=5nvpNr7@A?9JzMO|s`s0yQhIZ6tZH?NqGdyWAOC z*=LaDD7+5NG$r~4c$Mf(HIhUDY>xXT8BaSLy@}2Hnn_q~^G# z+v;eq2Ih?oS#Sp3bEh%rPEr<}3As(gt!uglUiFQcs?(H=DrN#E%uwfavf!7Fnlhxt z<$u2DH!|kmDPx8WXjD*|-&ErN)oSA2v0P2uEg92ClW#-FH^2a=5=xJNdJL#-PzC)Z z1~}?Sr$s3o14fJ+j>$8p%Kv;ChL0VoWK8?&G87c&IfOhhAlkGkNrFHO;CN}Tsttlp zLXZ|BMV&zpnYU%ZR2mcE4(+ZIZk{v5m3e}cO1wT>Bi zM2wRSbCM!P{}$wU?ux96W<=!Suu^6lVD};m=HG@=qDMOEG{| zP;FI}{{ab^FKvjxaAiz58Np3<>!jY%%OcRh)wX zntXS1yux~fFrc?H+S-~mhAU%i;%zIT;bcq$47h~Ed_4vjN%}dej2Sy)#N?q92Q<3n zo*RBMasO}0n7eLoyDn12s6^i|bok`<$W|*DXmIu3;YNF&@si|yrVWH1$$N-N=2^o4=Wd;Nb1t&;WWc%Fs%hgxn^9Ao= zfyBZu=DvW>-~AUpdE*((d+7;${=v(VZ$FJC3*N@na&GXs6A&QD5%B3*!(2Ws0{HzI zdaGC@_XQ*l<_0q*Mg~wANW-MjbvU$p1B6zS&^7$n=vG)s{l6d>@JvSiJn~40J zApG(?ue{&Ppv0QY05UwO$jeU0;}73~Gv92-nIr4e?Dy2(m2$fZ-yYbE+poV8+48vT z40*1bvDl9sznradve7Oph+D6^T;lo`oY+aFB$X~JdQF)+zH6{`%sh}L`FKjVbYb9r!PyIg9*uU9!O0|LR-Ns(^A}8W3Fvk4JTv5 z4ScN<#*#4_|J5wom_JjE-dfJGoYctHRXb5BS$=0sT!O0N)h8x5->By~l`$$_*QmAZ zAi)wZvA%UwjGj|0xu_~IImhy>%;5(lZAi*!o+ay*YnbniX988m6qls+MO-YNieY=DdF}(T=?Q4`VBL}Hx49^61k`gZx zG83ntt9W2XTPrDlftju}^OBi5)I-S_RmMzm$oX+f&W}HT)SH3}>0@UM|KC%_Oqx2e zQFcKlC5e}5n^JYTj-ujdYxairQ}ae+*2RE3bkwjA3m!6W?B65QA8N@Mn}A!nI>+47 z%&mJ}*N}>akLUBqf-~?=oN=B8-cb%2)4pSwRz;Ii;+3f-=(A19CN8$GlP06AJ~DY= zB2IZCzfaV}!z?fcJ}!KFSY>dtWQ=7F`4}eSBtvY1t_hOM$PD>fR^?!QGx*qg>0z19 zbvM=0c>OsSI+G(#9bi>7(~+oG$wJmdynT%cx{{1%JIWXy5KOhpkTGd#F6VNqGKLp} zB3W>+T&YP3a3#b`(%Kd?CQZP~&*ow6!dI~Qv)8eG$$M&uxM$S|*tc;Z_HSN_w_ki( zf=K|e(UG#bq6L6rbu-7s$0IH-Mz8qzIK;=XCl z$D>=61wX!PF@8A6s^~hLJ+>3~-g-3(Gd;)&c#xavR|Yyq0$`>*Kga9BYfnCaGlw=y zf=z?R)%fYaDx5w1C0>5)@5q!OSR{d@Og{HveR|=&m;Q1iI5 zh`S97&P3dm%7nO$DpXp^L5|Z^Y$9$|S!%`@ri|fQ4EL0=l^6y!u3sK9DYvCB5=}~Z z(LW#{7XvO$e93~-z%iRfyn$SmwR64YIZ25>J2zx-%J1_eperF6$bm;kHfCs>hX&nT z!_rftXgp&)N(%A)v}-5Hm^E)KuTqAbqXSfHUY?CVbKi!-ChFbvd2^7fjb_O4BZxVU#gpf!8tc zmB2glnqiX$wEWF8=HHVs{RZ`GlwXq9R1)v&6a$>(yR#f-*{0f$lQU#LuvOJ!07)3@ z8`jG)@HK6!oqje&$zTA2*+*F;qt~@n(yi!GHpteq{YKEb-2GoZ=9Zyr27z_wn&e)EU$HGkY-QWk~j@ z5V>NjT1?0puWb@fqMg5k_whCOdfeAcw&UW=$WfiBM?zi>wjG@@rh%+NO)d<@*IUP@d|m&-2+afW>Fm!$pb%g)1( z$2a4feP7_1#D7*oPbwk52@l?RE!+uh5D?7Bk;Fbru568?a)5Bfp{yu~_g;HOlJCtp zEiw7T?j>5${NdmR{BUS1uD^0Nax>hL?0XdhG6e&2gYtis14vnJ01IB5gP#ry2JBy> zi8nFe%%M$q_;1(2Cx1&j`QMaFTpKrJAU=8TW&HT{X8d$?y<))0ujHU03H$C1i}3P4 z?-LBT49^Q5&3olp>|VDNJJu}4ThBd>zFj&YQ$BB2LUa6b81baRM+`{!sxpz@TO{P! zw#wwYP3uU50kTe*wA#ZRFXkzl3_HpgOUT=UTQ~*;oe{XYwjBds#ehtM0sbH>nWkNp zSdf{SrNoNCfb5X>5!<l>ED^&y{8QCX41jatbIdr9(LqhyT5021<@CHJF3QZZmqPxKKC7@)HB!66K= z-T=J)w-|7tg8^0Kq zS8Ws9q3gm7-CmDRSYGHzP~cRSt25-Qej#tvezDtl}CYgD>jF&z_8PWWS9a)E8q1_QJTqJuq=Ze~gj;-=vX4(W|BcBL{WGoX79M%t@o+ zN{UmZwb$cy3cvRC?fHXWGZ&`1#g9CRM`?l+H~#SwoTSf}#MW;Qt-ue5S4x~+funm@ zVaCJ}NKcN1kGLhDSB896d>v1^8@{w8bnR4*kLJFJv!}mOl{-gO)9m;3zV$e?eHF$? z%Ys!K6tG3so*s zEgut?tZ|-aQsTkS+mymRV|Z?`-b6Y!J(#QOmuCwa?lx-~sclMrc63PY6VbA@t_><> zc{b6rfvl;BX041*O!L;EoP|@EOwpyO7NgwG@DLI`O&S|TeJlFJ$p2JFXFJ|zT(8^@ z)-#66E_%g~j47+EQDKBBF4vPWRK{2zNyZJ5^BtWtLH7Y&jAu;PNNeJPo(ZUo88NVd zb%7yaCWg)hwrw?}khIvqR;7!l>ole5mrPS-3=6dMk<>P&8N=s}oiQRXZsv&pJ!Q;! z(SY3Nc+jGk8SJB1Q) zUQEQAKIx0O3G_A5zopk(KaRieoMws^}>y_rH~ew7B;wm7@m`11 ztUB)hLW1ye9NMu=0`GA6T=B@wlEgF3sCoE4gESrUB%`*f7@vIjs+#NmczCTO@k=G} zu9PHs4fbzdjxmFKA()mTf0Gv;jtx~7TnI)#-%YMA z1@B<~D^KHvhwsK4^4f1b^Elpr=~+x4I|^BH04mH5DjQF8E@i+~j_A=OoL)W*yc}=W zO#4Hl)U1tbC|nuCH59Il;o3Aza#{m#3a$aJUoznA*=#EZI2v{_Fp{lq8%uJrjrtFf zh%wT{EW||9S--XZK1&w5WnH$ELtTUfZ?fISd^BHwXY+{GYTCtKR-g8vn&&Y2pc00U zu@xn@DOEUTUDhu^C5cI?5_qHK>m&h%boC3U?N*Jhk^pF%l66iWXj+xJ^fS)sHW?=i z9-fG^Dr#NREg>^;`lOIi*Nlry;AMq$295nLk?${^*+3cdvo@t$hEE#U>bEwf|1jE` zWK6rfW);;HH_qrcF}M7(S+=n!WQms*E89P#MFuX)8U3jL8hO2-z{FJV1tH059tu zMhvi%3oNl?F@UdWO;s%ha8K~HxaO_D2aVWyU%j7LAVm1{FdI(1^7$NTN-~DtVSFCn z1IZX-Kyg_|IcRg@S&6>yaL<^QEot1Bq!{4-6%6o5EMjcUkfb(C4k(=}it*$__u$oM z9+9~J0Nxf1cuO$gl_&m=XCJx)ul@5uJa(_afEg1ZEr3k)#v-(Y}`l~8^!F+3;- z`dkMC+GTlg-`}nQPVd6$gRAkaV8Cg?fKvxnV%LUGF?vW(t+M7g7{KRe1&INI2kFV^ z-J=?7mVJn`f*}?I=tFjD?>cN>{VDo%u23~ffCmD%8`(ZTa)ZQxOmyu~h6QgtCoz8$ zj!E)O4EX-QYMlCN9sVrwz!#r@LVu26fV^M9`P#B#TzBOx%zfn%Y+m^`c5L_vr;lvH zcgJ?f`#*p!t3Jc$^IpdXFFu9mAHEB33I@DA=P|tV{L^w^>8BV_kR3p}%cYgjdJIT6 zElPp`i3xGq_N5pgv73Hd;mR0G$p0Jzh!NJr-5%6f1+~d{(}Hy5(B7=X`qfY7%*<;D7GnGrDV)q*Z)Sw{I>?a zf4{R)Aji)(rNN~gN=~VPujJx2-D-4HHC2-R2N}OG+onWP#`?ujG1J{Kb2lC^9aRAn z?jKffTTrcJj3MT`gw6(3O%9bc!8WBS7tFxuiQ{DLbVFsQih44pRdXd{5~w`$W-8HW zNe>fyjb{w^BF_lc@5{ECTGL)jq+5bCoM7kU>;yjEZ`)PfIy59l@8|ajHX@S!GOBRTouCT4hX5Ua_84SkyBI?xvE<#mga@Ln27X zuuUmli48Z~S$$r(B_GR>{JFd!3ok$Q5Y{gK5FLx}W8WXx)O|Mfa-SoS`8cagt0C0<|8E%=<8Vm!ApgK{qOreOS-0XVo*o_Bbo zq~&Ymx$ALs$8wzcdb`B>e<@+4>O?AXB>o2EvkS`KTb7rHo36PM$MnZz&*_KK93MIq=A(B_ExJ{9K#z`9T5KIG>y35^B{_Z+WqMIlQH1f5kCIec zvuG~P9Nwbp8cvI4k>JxepTys;o{ii7d?hN13z43Zih$p*3iU*q__|57#3>de%egJG zbxSlQ8N>WLq25Ex8u->vP|XarDVZW@YJKaF<|g^NuGGGwX>&Ac8iDBeBqiAyvuW(! z$Qez}&s3+X%Ke6nX`;3T#2Dr!{;VA16Ds#pY3cDeUS{$hS~PEC6tIF7Z2cxCSiE4q zLbY*xf-B@1!;#j+1P-4GW`(yYMXOrg8u(gej2Z4wr9NWnBiX-J&IUa~_617FXq!^M z2FjRlrKBZg>@=nD!5&J?$k&r~sK+!VW2Rj)*%WAJj=?$FrZoH`x$@Yi^zHvbZsKe%Bb}VFb2MTm5gB^H8R8M2Ih?oS@7!6XlvUa z%B#2hGe!y!Q<6Aw=F|p$0r|zbvdELrtVJ_zQ(~f_egXN#x=2mnHRic4$LGR~mCFoC zf~~ohWv}f5vu#LLonX}qcIu7w2MG83;C*}#rYAKo_ul`yysdK1Tv~0y1bw>{MFq zYqJ{b;*^Lq6L{0)vkg#zlp%k2dJ5is`Jedi$Yu$GD8UY>jDw6RE!i-AvqSx$NoxioE) zppcOgt4`=c`*pz72?KD|WmECuGY?_ak`HnE&`$h#XqP1PTXA~N2JBw-G2VXqLHu#n z1Ptm{iB6?O^7jhZN#IRSOV?nd47dPUyae4u0mj6HSP5ii#5hS5D?JbQj0x`#wMjQ0 zXWjMdgRkiuWs=;KSBuulf-@0kyOIWDm8&*agD$e*>5_08w!5*mSZEbi5|ac;vP}y@ zGffP5Ki6z*Y@##DwlSh&6Ex`3o4_i;xL(csck8~QUjQYEc9MqmV`8fk$C@U}VWggn zsWFMT)23w1x+K}Et8Y`Xgp5iOhZ<#!Wx**)w8^-wkeWn1Op@pX-Wg6+ltFj;B~y)Y zBioc_nl`1eGe+DqV)Ed~-;^=`p-pM1dd4(s-?8j(#=y5sF@P2BZoRvru7AJ(fB}89 zYH7f>rhy{z=cK&F02+K+0^hbNk&r)k`gwu@lO+)!E*Mm+WDJ!tiIT`QYffLI7~M0L zJh8HLYo1Foh6l)hhXMRL90M4?!zbS8Sa>I{hfhNb#{laSW--9+m@L|ZcQ^)cPceD1 z${2g#<)po;>aHkgSNRJvhU1YfAy1D0Vt^~%^)n1eho3}=B<8sRpSD%re9dK;HE9$& z6lEz1!D$nQ(v<+Z zc-BN5+_eTjo!qGy@ZAByfZeO*HMU~DB;N&rG)=ZG2KeMX1m*7~2FyNh98T_AFW1Tt z2JrVDljlzw*&pthX!z;-;2|NO0Z&3a0u4EW2RF2+l9{(*JN7UIWa zdnMVH_i=C=PVQQZ?aSull}GQ!WmCprpd2Dk+_KRilhC>PRKz9c2v3817s8##DE&YS5}`+LU@K8DlY^uM+ZgO32$WrVTNGZAz0Q z?oa)NDn^s28X%HQlQks3q;$fLC?5>X1s(ddBcT zHh#(kOucX>Mok)rF7lckx>TaLya+yjx*QstYk@W~J_SC>_wprw&T;mbj&*mYNLn(6 zd01My8N|W8rslkoFEKZ=ElYeJG^yr8Az=2 zcT&MgT+;niYT7>7rbL2BM+H-9poXZO)I-dlRjA4s;tn!sF5TW_-X|f&wmY_I#dWAN)C{ou4<6vR6~r#vqK@#kTFqh z%(O$cDJ3PPDKVHFHrm?eAU5An<%+B~+tzCDCmztF#UpE|ncx9ijHs9-8B{8Dl@B$AtscTcT_UQoC#9Yz&Ad@kTJQ1c_A`}$~P+Ex~XMB7jzrg89fH| z2%QU5El)fcF+lRaA$letCeXTogp9=nwyhc;$$B3#Vu3vqOm(aatXkgSfho|+nc&lN zrVno?*ZC5~r|N)o$wLU%_QGk}5D@rYr-wYP=^?;`=Uo9PYZ z=&J5jA(?u3A|497y-Z(dx4!j+jFlwPGlneq@bRNjBd^z94)ttPa=DX2Rna86`}?zz zCxJKHNsvw8%?p{1GBHnc+A!=S4K?kRAj?2&gE0dpCFw?1oDyQd`E%ReWLa>VwDZ1* z=8@_VU|4R$2+}uzo&uIlHm$|SdfMOLOf-CBNCb zQj=&(5|8a#fgiu#j)!l%0hNW>$dUs_rq>65x>pVlUU}bX=+~u_8jYQiKzl-h?y18o zaBSZf`02!#`0C5W5_mH)dSEY%k~KSd%qW~UdK6|(9E%&Tz8n`#n}Cib`6vvKQBM|d z@W}zC6w}8J!_p647w`}u*tbrC?mFO`Em-%-D|qL*d-1^SH=rE8wQb$@-8Izq~gw~vV zp?*IR8hF)3Jtt2N0))@*U2C_jV-e zL!7{C{Q_*zwFZvXyfK^!w+6nPq(K(kR7NKmzknHIFn0P#NyJA!GW@(jZGQKs-^iGM zPsa3DGN!CU$z3Itr6{w6yfYcAZa_Z=0|sc^Z-4=V`l~Xg-ZQK^6#K(5z+PSY)Tnxf z@^zbd^Xe`8cEs4>IPd(am^^zrhMY43)q*GOYs!_7XR9hPAUZZi5*=BW!Cb|FtSn=S zn&B8US~4aa1MGw(66VAJ-ufKnB7erc*2*DKZS1!GF{a`fAMy~hJ~6}qD&V+Rc|Y5s zI7Nd8Xkt(}2INUXT~t&i2lr%+AAU7)Z?9xbMTbt3P+3C0o$i05jx-bXTC`{(-={bj z;Q9pycq9%nzSGx)RlPmym*MkyuStTLi~uX8X{mB0!9&wW`igimP#_1Hzg%;H#Lf+P z`=zH)7?jUKUeo7IcQ7C=bfqc=_(B-q_Ywm<7(KWz4s2U3iT5^%;cFEGemcGhCl9Q} zQxE+Wfpqzd)nw9xRBazNU*}}`k?Bvt!*Vz{b7Gey-Yf9EV94pct8skKYJ7ia3vRvo zcPPmTAgCDN)k5GxPM9mtrazh>h#1HNzURjPZh8Vz$o-rgMt${CFRXI^lJ!9CW zL`9vFvz=5KLo$ZS$nFEXqUXR~YT|1#fCj!)#;{HO=hKwxeZ#^rpg#Wdn(AP{^#20` z#-Bgxp26e${iclhe=_jBy^%NQAsKT{X@}C&_Dn#Mjd(yq_x=Oxr>j~L#!gl0H>jVZ zmhaj?EpHX`_Oir`RmRxqdX|)-iRW0!1t!j#ijn7@gD!o$t7^Zfob7&Tvd&v*8z=K> zPnsY3dButeG$OUrlx&+4@qk~u9U_2xQPn2S1WT)swBBJPYM4tUIchSirZ+=7Vngjs z*5`w&79)_u@s){Mi58#ET9>m@+sW@DRvtRGP@8zJ%Gl7q}If;CF zU&-Ug%m45FSD(c8HS=*w^53Nk-$s8qqj_9O@UtC<=Ydp1{+N~}kJDmARc1h2IS2RZ zf*orQD0Dm!5*Mf&d=B?^Ybz zwgNb{L-Y9`zFse9iw*ex$X1=Y$}>%G$w~Tl>x40qhfHR!Fmf<1I&T!VE&m8-k8RM& zsq`@W;n-Fz{q!vi?A;Oh!DKx3;B9hln1eZw+$n$KXZUpPD|q*Xr|{1Q?m=CrTI9+( zrF~v5YD$Vx)2PCO(-X&=X`0B&u4nO=K(64%EDrGwR&0*lvsbKQGW)MO8Q%V{w869@hv*NM|@i ziN{f|@IJp<7G!JNDh+(8j43QA)wWaHzDGr;KPwx#g&cm93vWh1{|_VybCt*}GE<4= zbv$w=;P4P_2bZ-^>jJJr<~+7d$$G}nz?W@G3C@{-#85&)0@B%9Tx`ggZoTc;`YQD3 zFK7Ni-3%s#Ddl+{=sUa)14axCDJ5B;B|&dZ-7Oh2{lY0a+(T9Js*tSr5TkX0lJiQ) zoad4m{`bh3$vWCPlLo$jB^gs13cPGn>aHyK07YU!ZMRT2`kw|7v76Susjw7$K5_NlkWWb|AogF*MMa=|-WC;^#YmUVG?dUoNSO!~r zV77@kZ^Q35k8kUk_69;y_4-kFu?-UO+}vVKylI@r$|w&3JnYiIw?judQP+kfiS)VA zz^=~ejg^ey$VgY3!-A72aU_YnXdvaM!E9P0uDNt3cCJ|@N#rg(^S~V_%g;l=E5VM* zxNNwfY%CHRm4&%@<{!7=;Lc?@xML-*zH~M+*i-3|*Ji?==5eZ_RK-Z(bbFN*_og$6 zmZV*R_XJ6v7;(mi?uaBz`L(@a>_^xcRD!ktKf*{b9(07i0!eBnf#k z2b21s96Ef7aY&DCjnRE;u|X1f8aw{5Z?Ss)27!*J_=lLGKW<;A~Us zF{rC1;^7Q9gKytq{T$cyAt6a31FucSjcd9wZVV5+p=lb9XAD&_Q^O2=O`DSX1w1=! z(!i)oulcP_>EDqt{fC$~rP9iF_gO-oNiPpo-TQV^LcYH<(wg!A=NMqfm~J6u%&#Tf z^%ziNyd+p<4Z{GEF@}(zf=RQcVepvYs1`io6pw-uW8&VtWpnMZCn3*-n;4LtU7*z+ zivc_Y^8jfuz_0O?dy6q&Nff~VVu8;gK)GM6(K}VBe2`^N@zF+@OKdd+{6G9QW<^(BzDf0#OT20<%$7kj&2kT*dU4cHhjHv zB`%&ZP7?TdWCslfnAQME>WKlaL{ydL;f?1X(<&;Z<);o94EXNAdYss|5tq*xkAOU% zt*U%qG)trmzH4PEu93a}{o$=RE%Ev5J&SPSzzUo^v=+O!EXKIuJu#$L4K^nEc0*i>N8KEBukQ3SE{Lm%HQEnPJmZ1VDgAQ*tKfDV8D8V0sD>G zheXr8x7~oC&lmCsNFoNf+#2^R29S{F|B4t8ss2PJ|FDF+Rb$z_gBXzMR1-+O z>Y5B9ub^1{!;+GWWIkQ6LA_`)b3?|Ztb|%((<)=^C{vO#I!!4t#f-LYV@6whgFX~H z2EN_;7&C8T0Na$fjN7+_<+xt*r5|K}JG-ljy)7~7^a z{`^so4jR|D$xU}!GUof=V*h_2V{X6e4mI%YP+NJfoCi*moUbG~-?I~X^zE)gJxI{^ z8{GdFN=aUQ9kqP@G^OeWco05Oi5J^e8%$r)Vr^Fpl67$o*TDHxR2kDv&I!b&!ZOpQ z)Us6zv~AlK@o`D2(jXC&FR_+HeR{fIF(AB6iC;6ea=+PpjD!ryQ`>fA+h48ci}iuA z-j9s)Hm9@7chg?t)$<4Uy=`sH%*xS%CW#W7^jiN9tBgsL$I{fD`7tq~LJqYo(y~p7 z)0F&~9Mx^e7!s)@RoSK#8)x=D$xs$~`TE2Kwi9^;54^4<+v{wR#zAFKVfjJo-$(5f|FUj5O7XqiZ0YC1?>(4)mf*gq#By5N`&ajGf zzP^{FbeiC@Q^UvWNeyXFF{{P;zjIlciu99=K(c?V7(-h{hvybO2UbQRVu{TLfo zF2Z4n=U?yMgg;$81$W4Ej&5IuGhc7OnZq0L!;$US@Wnz*8Z{iglq7j?X&5)Gui)Lo znE%?7c;~r?aOa;d#br~+VfMJ;7%g$Cx8UJ57tX{Rf)C3VyoZ$w-oZ7q&&B1FhvUm7 z@8R418w8sK-%jnpd#^l!VRhZ$N~W4L!y&}d5SN&UIJuAQnu!i3P#MGNbrBJ?2{4m* zx&FAWY$ry2n{{SL6(3&EulF%B`8f^UNy1Rkt|q)}C)1YcTqR-JwvE<7F)7+Yl_O{5 zLUWdgY%BQ0!meA17+)|`aim4dNX>ncCC&$fc{*Swg#{-*Ud}RnuUzBh?K?OHtz_Lx zEG|`8&zOoD!JqX+*C4HQlx<3sL$goQGT^+J z5OSn4eN0&OoFEH#!_tK~w0(v8uKXy;>P0ipQwH46)*ub2^p)}8o?EZOszq-p3;x5` zo3Z?pcQ8QyZ$1f>LBC&vu9^}$EVy-PX8_L1@FC0N!bK9uSi!{cEs}(50%`0>apoZPn*C&^kL-GK-1 z`U{G(yr?M5R7v6sPu_>uo_!D>yz);xcK2U!%T*WQ%2|`qy?rU#1^gJ$wKInI>4ll& zN8|i)BhjOME?#=%Hk{eNUZ*Xw-}U(3?DG_)!j=A6z%e8wnB)L$EM-k|8;lrjIoGiImtVvH|{H&i(#NlOf1|2P$pAwpgbzD(rlZ9o%u-fsiO#!Kr)5~h!;vs-nM2j4)0irZx3w5v7Kvi?wFy15h)1h z2u>Ofx=@%E#1jwPj@3)v#_kOtOZ?n|kKTD6T|1U3A z=&n_g;BFNh*rLSu568FR;P&OXc*-c$b?bmxQzqb|>63BGpZ|crTy+^PICmuO`txNt zbCAjLa-7`19H$R%#HmADar2)pm&DtJ&J~4t^Z6&V8p_1^Z8=o@r&PZ zC4m42ckhOg{rcd7iDNNs^kDR^%*Tf>J&H4ubbr5}{xf|2mDv5|CzvpL5K==J;D%fN zmbm0(#5)yGVgQvf&6`JP^37a=)9AQ8`SkoQmA#5A>@6T87MAqr(_J#mFm?9i5C&K>CWHYOI~bs5jaHU!Fo4PTxS1pWHDr8Ulbe4V zZTRYy(D`N?u)9fRg!1qJIa`rh}JVfqWX|< z{TCLL=#UKK5m|5G8&1YhonX%ZN{%{vGNhWJX}ja^#QewPa~UC@N=v9(FG^w!e-|%K z00cq%zIIJ?rfCubn5Sj<1Nt?|P(#8RWemxf*ce0HvrUPfF)Y%yEA6Off*?l|%b9?` zgX6ocXAH?05;1HOWUEQ4(?X;Ky6nU9;(WaI@-tXG?=`IY^lhyD>~o=S_m24EMU(N+-~NCFuRMsOTRz6Y^$T(4@OGU`TM}>9fBjf@%@1{UYqlXoH4TDN{ErORhlYeSQI4*kszN_f_(Og4j$0ZJuW6%2@tlzF_se7 z`M*k)b0Z5#+0JyYaAJ>ZkpF92Kw^=J>q>`uu$U{4OO+hHaWiw?XxXN%ZEo*#>)%ZY`Vb}z>u1QAkb$ouV=NvRa(*(VUudQ$O`UDbd-W_}M_a3pNKVNV55ra^82WYDdQv!NyIz%>M9>#PgTayIlaya zyw<$2{}7X$Gw|9;8g`meLl(S414G|#{mj_9a2C8*U3Uzjb2`m=97$qldA*8G?Tvx2 zI|(gXNg^H-gM_#gcqPCVNP^4CXh18V0bQ`+ZAy0Ga{<}OOSWw!e4>qYOSi$<_U@4| zv6WQ@QkzUM;pb~J8R75crZL_HIYt4J?hSc>m~nbVC}x!@IZc%@84`GzWKoi+67`Y} znuG_ki$Z~yWRGoAqU?)(c*d#Pu&_+bwWnVW!R1A{STz4FoY?mzj_p~4le;Cs{qX=+ zfBpe#E7~DVlEy5K!`8rCja?f*$IjIYadPi!;QO7j1PyIn5yW}9r*N}m(}lu2LQKDfs)ts`E()_ z1220+d)1a==GcL_@Z5n|I{#UmIk5ph9Fyn&xEnjxF2Ely7>~KHJdNWAci`}z&A?A5 zv0Vb<#gm5NooD`zGe(&vE-*pRCE}V-a+c#j{$M56jD`w%3)5l=nrX`Yy zZHfn#5-6@WPpr2-^rT5<51|APQvbV35+CGfIOo-BC1Syyujyis}>wCm5BLEEv4 zwgPGmd~Ma#-bd3pJ57mK;HkY9jh!RxD{zhuE@UTnQ% z>RIr5&zN)7FMtyDb7lVlqq%|tz7fSsskTU6D=SCa2uVHjXqm41l<;r=l_>biz7z?%3f88dFUk}(s{pQ?m> zCs{*mQ=(^#PSk7J0wq72>SG_g=Pw$wNw|bCz+I049HANv2nKlF zs4mOHEmvKLO-tU!Nn*f}wfO0<#PDM~@%FQip(NXLVx@UYZkqU%V&#s#Ir$5O1&X+heb<9xAed#Hz`|KTj^5)Zc=Kfm+1FpdJa%dkRYjd2e z)n^~NOAaaXaY&N#74zQ2br(&=4VO&D@jdeS$!Ewa=pMm?i>8i7VYVOX>Th5%AXP9R zUXyPU@}XAMRt5uFwUPwcIlyW1?ec_7|LsA}<{#k(zCNebF2kP_GL<-5oTIQ)jL{?4E91XaM_L14tB&;ef|}$jAs-c`N>M6fipq)&iK`f3DxqrN zJJ1-p8%0bQ86)xEn79)IMuae+KKY&$BI3i_ltLJAQ9TCOHYMvBGj_WAhP^ptd|lI9 z?*47G^?&UdbJy*SeA(Vc6*cW=lyxlowp6DnNgmI()!vRWM)1HYC28Pm&3lOlYT)aT z^Gde&wrWXE)GK$+1XX%<=|e;JT6s)u$U~AB3$!HZ`2U}J(fMlX-gi(x)O3@0Swdeg zwsN*cn>KA^UB{^cMTc+{6w84!SJx*Mys45u#XCwC>j7q`oid*CJ`y=pThd1y`0#pk;uJ6Q(#&tc!PQc zsf@`oz7})ou|ktrs_sb6C#R%n@t5ic zdX=O|F6iPVIWPxabgr(#(Efcepl2tH9M}WH`qg5veAYvI)uLy|_Q;alK1V{^Ijdo|iAbFBN(8R7qotYr0^L3)$XOjOgDT|G4L7eE!ip*uHKB zzS*}E`@USIq}8YIy($>MM!dq z*w`d_Zi#f-SPWPOk9_NZ6JRI756 zQ_bR&lJ!hLUn95tf3pj7P*Gi>-h-WcvOV3js`setjNXI0q36JElKb^Q??JuMXK)|% za}3>$T5_mk;5#m4UtpDzJQqxvJ=u)2zL;wHnM%-DGKQnAr(9^vdx-~=W{+1)7&l|& z=5bR;^c_Ea^#7(ZCc7}RQAKsxKT2d%mefk%?LtXny)vdBC5e)VlZde_c->%=ocF5h z)qn-BA8X3MTk#9;7?Lr3tYyHNkaL>S&~t|1Tux58WH!c5Iag(i9Ir|;hHXkMCDCCb z&dQ=UJ)ns=D?5IFmP5wmhT4>DB5oyN*0j-H{2A}3vc)9dxuJ?xoHLf#9E@|q%o&qH zW9>B2W}uhHQ8{B|i+&|!C>!=>1Vgej5-dg9rsUQ(624xcddAeEW5+J?vku5)MKrrm z8FTiJMpGH1J>d~rWwkw_^(=UrN~Y--!=O9o@%!=o6Zhh+=O4y9&pm*7uRn>ouRMWs zM+`)2Oe})3`N>R=8QL39KXe;jd-`51dhc0$^yU-z;LXSJ#>-Eldyg&>C{wfwYQ{B_ z#ZHm;lcLkCyq*+f`dyekbsTQG`XW4W&!4gA?Za*8y@s#0s=#J~~-fMH@ zy*-DQpLqli-hLfEefwF7(~^XLvlTxb*@BHrKE&^)Ohz87eD0tm;&LlNB-53I$)g5f z`GPm_!{Kf6_^%{s--jQ+-i!DC^$>2lVg}xt^Ds6q{TN$Ue1;7Ya9{uDL->5|t2qAE zW}M!)4fEf80kfx!g(o={X_9Pn9G}Y59Wo|S{+`5?B>CP{Mk%+XYO7VtR+1REb;uZ> zl7pIv`?IwL%_?KK2FQZj(bl}r7`$bLJSc)H8<)dlsx@Y8s*-iL_7@lFp};z*w`v(B zhtn)g#F=E6$2US`bd2_hQW?YKz!*73ASNbJ9$Tog^cId$Xd_9+sQ}=?lvPpVb>Pyy zQS3}pvZJjTjOl&BiB6pA!K$cw#3?dVBs&dZChLk!>q3`^v2AMiC8uSt?*=$K*Cw;ir_ zW0IxH7)jJwJ>vc@YFBOye5<+$9#qQjqB7FRmifDlGNzHLfq3{g7?7qCVjc>#5-PDZ zU1HCbRkJ_K`dA=A8Q#1LnW+ zIOe_eB%YU;*r7vvjn%(~0ZhJqlF;S`Jvxc+X2F1`@4ErZ<~@V2w|s(w8$QF?qq}j_ zA1+2lN*w%NwQK47~Zo3?)}TJiG{%ZKc=OvQjK`Tt}I)?GAt z3^siJzQq2W@_1svetdUeJ6?U_F5GnGOuYO2W7xiG5w-~itp0c|UU}jHto-P0oZ7z) z$9HeSJ1_kclSU0jT4IcnSc(BD76Ve%BY=uP>kq(6XmnItv=j_z(hK&V48K8 z(nvWFQ=U)H7`Cd`cC8i+=n=vIdd4UQ4CrDipdE%FrK5WXO8@6=(xJ3x88lzZ_1eemW-h?Cd=EXeRcT-WgW}DD{-s~ zYP!~-XYU@yz;{r+nY;B6v+9_>j%Q5$)YKYP$=39!KvmZgxot04P^o@GoUB4ZMkg#e zev-VXlpz_z|NoQ=X3APP7kviyL#M8tBp;CjrsNxKA|uhdb!*9aVpV;YlV7C1dKoO3 z`U0vd=JYWdRFn8%+-7X2dYLVy>K~czcc%NKqjjscTHK13yooIzK2;c}YTHGNmaVlg zYKpBvB}bHWY1JCZNhx|C<33e7yuY>NTgj3?Wzf5Zds;3Q5ZF%cNe^hTE+xeykC*d` zH%qXr3>EEb(V?<4+LzbJ-lX?UF0wNV^fjo0=Fo;VZ6cKjNKQ`Hi#dC0GOtv)c&15A zQsSLchdh#(J%5o$_H&@Lwn0gqsc zD_L{ev^1A|4uUsSvbf!dt5;mS zodhed(O&X?kF43a*d$%cRCZNX)}SNFnD!mDg*HysAX~Lsw~azC#%3LcCM;Q=q}88h{QDVQ>Q zQkY`iDbmt2Mh$!gFMe*|J5A06(?{(bJ7wgcannZq?-=2MXI)S&|sEf%s18+ZPv>hetOu{KkHEzk(%6M0IZ!dwjOam@224l__HwKQ? z+OEW)%V5o9oPGgn-gvG2AWwA!Kj@H0S7Mv3aXoN@hvU!WvdT^z@+LsZ~ zD>^1lHeE}3ofy5JNjH;`wvsS6i)f*;EWR#%43q_DB2L*nTTW#2WXd6#${4bpe%Uz1 zMHQ0xcGkdKN=YIoX>b%P-QUxUL15#?P4w^8q*yKnT{7Y+vT;(C33uz1q3TL`tqAja28s%^k)0LP zNgZUtX%xwzYeuR{qUj>>5Q|a?dLPe!2Wyvqg8e(z;k%vY8yolAzp3uf74dJj*f1t2Sj>VFzB*plSBzy zg;ZYNHSL##f>)Y+-!d{rP39uo%G&n{aJMT{ zmfW!5P367B>RKa_!hlNk3zPTgxWv%p79I>Jp>NzcLS>a|)|>0F;PTq^JJRuY1#%cK ztx%IxChS@jwaS?4u38oKN&-&?JXSuJ*77$eI0n9)rbJ01$6t2pPJbv)NT@{*Ny7UK z?v7p(cze^daZqm!zI8*5XABc@?teQ;qn-tqM10m{OrAAKrRtUiw^dO~#;9w07z=I< z94E{iwQA(KgW@l{=Hf;_{q&QP4`O1DJf%z<2WOX=>m*YWx^F@U#B>O&ad4Jt{bl~Bcid?Y5w z0X{xelkAdq9h8V629%UkX}@-Ej!D4Nohci7n3h<>sYWD8l0z7fYAT`fw+1A^tF5X; zMR5VjCGn{$%|%6FPz?{uasns{kf?CMFNrxXVnAuOUooJ4UckWszhFQPGU@U1GYm*g zwHS~n33LoPRkz2AFFwZVFBag)o=qVPID2v*zB#ZB1Lc33mK>)(HGJR1fYju4H45b9 zjQHr*xb_bh(%*w_bV{&p-7DZoU3bm^gM6vgHtCFd)ug zKtiInL_|fI_+O6!ZNo4i25q9+XwN>q9Ebs_g3&b54P<5`C$B&!8P%()iZ$MIZN^3? zDF(20fvpZcSvM8~T%G`$x8$hv2(*=T>+|PG;$5ySrj47n(D)rKiFp=Vk0dXmO0ucm z-&Bo1?PyXa;xqwm?2I~9zYD0Hy9sz7tu<33%1SoraAT1G;EiVy$|I^%?Xl7~uGZG5P*E23RtN3Ae?7>4E{Q zf`%~QVq@6&YZx$Y`e;lzfArF!W9ypUeCLgd0aV8Ph5`S{Gv>BNzHDEk_BG{~lvb5~ z*G~3PMW+hXl8otPhI$YWcn%;I@T&Ka?5h)2SxoKXn0D4`%W?eDoM2rFTVy?6^^0UnX<=?A+6gXn?${o6 zJ-T6Nzdq>Or4u@qv_tPsH5fN^2u2MYDEV?3N(CF z$k#E5jfs}OJzCz6eD-Zy!|!$Jcxrb_EIe+($E0YujN3H!d$uUz^#`+T*Kh>-i5 zgvjuQwbHHk>x&+pmJ%Gb3j;M_dpNgB+`4NZj9GeAy$sP#@& zz_QNxn)!t#O3bK%uS3S9Yg=8S7MJx*pc8?+qO_tT{IVzF=p&gVXKukj-clKpBe`37 zRhcSd=q1^sUpI8G>tZJC^{EzI=!V{ddNeo_7*)&=RZ5PUFf!yJMqE(E{ETxkgNn%6 z=P5B`4Bn?2T)2d)7(3Q_8m3%q4c*VdxT&KsZraFwr|TB4bz;)xJ^3Gsd{4+p(tgfw#72 zg~}6c(B&1*g0nKJ${0Dw>olbcXJV`zhn2b|Rz`#J_gHvfdVJx`1K}&$+@1Y!+ z$$Co(9^6=z1oA!xUp|-jQ-*^k#?#!AjHMVu$s|c?Qj#P{{(tPfd5mT4 zcGh>gt7{&+=K0L$)Tw!%tGcRssGi5K=c&58dhYN0u8pUVh>!%w*!Kc9j$<1fY{1t8 z*o1^63Q8ctNI?;n6(U7Qfj|Nxks^YkBvK3)-<|ij*1PuJ=Tvoned8-}74;vl&Z#rk zIeV{Xz0Z2qvofV%VthVWTHKU1CuGc+^y^_fMgmXoA16Bro{%ue;zS~-a>PCe8IoN0 z84KB5kaxj1=Yr>?3%qlaqrv*(Ot9$^)zj;%;t)QTN(Rf56T!vp?cn^DI}uh^g2ibE zT)A`@cFMtmL%yEgZkJ3`4eoOw&>W1p*ZEux#o*U| z`R9Xg{^HLBf8o#neDH7n!LJ3GA@|r`JXAVmj5momZt)!s3_IG}g<0NMnGb&8ixV^CjP zBfXeyEv@1qA&Qg+{&vSlb7OGat(vMt(Bf|EYx1r+cB8A~+5XW<;vm*l=7%Beu172i<+c?zwqM#B=xv(Vy>t9cDa< z8^3$r_|&|}6?yEyP$qO;hj`)GHx-u}(oIS*wm#G$@1bFpB%2@x7@#(rcZqkekcT}& z#z-RW1Mf7h>JCggTr$w!t%*2t{UMheLB=etF9thjw%ytaPN94|cR~U$Q z+~nyb;Wsf;dwjdBD*DJB4+PqmNDkjV72_`CiLl@zOZ?hPKi2fQ_yvf8FG;ur-dn+= zS9ky3%|}-{fA|moflm_kuTsX$j#kesP5&inQ*!4hMEHsAP4x%x6ZNDDdh=S0kiQ@p zaP|-kfP7iqnF}$1vEaeLeGpw1=NyQelC20V9h|M39~cOg-DO8xlVHFI$_~CAJPuNZDsmG49ftwK znXHT14g+XqE0lzcQB!yIgpjE!EiRTi3}|o|Kwmy_op_Hd9Sor22?h}VS&)!pknD_@ z1}}U}H}V~C0UOI}t$5~z2L^Ed;H@z-KI!tP=ysGcR8nVW7NxDO+bzhLIhTwt`&QM- z*+ut%Wd#G;-0$4j+7fj2LB^y+9l5-*B+0j6!1*`^Y$^s^F2?{PViW`JRA9g(^$37$ z@fd(w(lFq~moW_R9s&3RJa~CmFyQfeq_meSS{}W$N3>StI zOPh;73>h=K?mfg#op5-t8&21QkT>tJXsq@5VE5u#_j{j=rYW6K?;zb1MC3gC0!VxA z+dj7$?g^|-iDTrB+lVn?_0jXaVE58FcWkW$Gjr1}Z;i+p$PWx`DK04)Gb%)7(&Z`O zLVH)QkTK*%<^?7MXh*lUpt^WXyDK?+x7+Zdf+n_SWNf@ns)3MUKL8m69ze)IknmVY zd~kxtPEE}SmJq*96*J(@Ps^uTTRL2h*d+>nl+!7P7qo}q^)x-TBzppg`XWlnf);7h z9#2rBQ4D~TX=-W~Wd;~Q`w}CRt0=0u%j%M>*2m5;WJ=2FIAt$#Tyl{vAD%2#E(N; z#pkU)BA5J+5Igq2AM;DT1NWRN`D_~Rj~t0UZ*{dAwX<}>)iG)R#0G#%C1a|kjg2Br zha6|b^Q`3Tv>X-Oafqtd2ts1D#_OWAHABR4Y@~*BlDE)Gid8{p8V`ReWt0%$J*9`Y~651G`oCFhCkTJ9=$uy;}JyqWr)G@EXgq#2L z(aSscpS->IU5%aJ9nYBky+m=cn3!9c`->#vv#TWHE>Ye&A&EGF_pU%U}AMwBrw5uco%6uBIM z$CNR!cWfkujKR3b9he-17#l&xkXRtk;?h`fDx@SmdHS()C6`2Z3yC6CQJlr;Id_W$ zT>3!!)%CkLGODVXjxGuMB;o|;i3uiol;k$5rbxJQ?jYroB)qqGP#Ey$<_?jKp^QPI z2gsf#xkH1oOZ=M~+-GOR9aU0y z0t_?WG&v9y(!-LBpIBZ9cGld6Xm&c78y^jJR#$?{r%wkbmX<}rm>JTs*kVBFUYq0@ z@`v8o#-_%g!6m#6UIyCO$R?yVXl$qn8tSUTfO)hcNH)||1&wtza-9SgS*4N{HDLmK z^pNL$Fz_PPcY(gn1<>jv5kpM?WQ=GcapWL_eaPz^^{@3I_B)xiLP*Do=pqDlK_R71zi^B1=7b37u5NDB&1Q&Qo#D^piACp9!@s}jxCtV_rIiHL+J-6QT z00SW86$8}3R}9>x3c4yuHe}4|&cXo+0%6nLunDVyrvL7D?B)Q`K$H!*8EPYFoZ`6_Cf=mJd1Kj@swovs{4A2;@7;s$3pJrMjySjt^o?eFm zouWw03=agwY%*A!nFzL4ToSap94t>y1q&0S!Ksb4;PR={!P?xsjEn{Y1|WLGfVM*x zl}{bV8pi;t$Vl=%2Gkx2F`zPeZmK&L)Yn!k9yshc>XTE&fbxpu$6~-S!+>K)$pr2UwXa$taL4&5frFn~Bs#ZxfAC%#OW zBB{l=lS(Ls8_gHmr4mX@DoL@L_7=k`Ka=mk0OEGeZ9XOb7e)jF@QoqX+p%vRHOSK` zMu7>20gyM+hSbw9uN`85!;Hy^8Fx%Bh%yr23yKEw3#&480AtOFXVzRC-*$QXNiEPa*81|b z%i;7SBV?>di**4?N#eSANuJfITIw0IP)5cGDetg=4cg8*9qs`c!*e+{AmmWXKiuCF z!(fU8v-2}T9MiHxjA^B4>CQLQ24F%OwE^nHTtUtm$Qar&)SDw0nx@LcOP8197h{A6 zaXpz*GDU`QpuFZBOJ`(5jdGH9B^2{0>J>K%@;B#_C{L@Z{B;Nw z{H=~w1+~Z26X%#bzD5e16kSo6Ky1|4H_0Vk3XF@cuBj6Ofr&shH4UQdqXmsPTrMZboimkGjVUI_y0M-*vDfAO- z*;lg1G#?^vxBG~%)*_8s5yj(>SH9;8WAeN5J7Y~@lUKQvvFYx1l#U~X@o-` z{zu+}$C>}Bm`(e^Af|LdG0E=*p4dcJUSIYtN2-OCvB`dXPW^q4igkh9Ueu|tU;_nO zCYC`crrqbCi4|yP7MG z!Ga@6+`VXi0b9ODR4bzdU6rV>l(FC>;sjpI-Aow+3(gO4|Jg(752a1%El61-E3JlR^%1cQ9pA1#w-c&1lfiyQeplq#I@% z`5{TTNR0cnB?;+a(j`SamH;dyO|j%Q(y-~s)zgxMlSJDlmcUCQ-r3O?y0LRY($fv` zGCjQ%%+IfhahJ3*$r_cp@O<{;$Gao|G)li}y~^T_M9JULSRk$>AgX=f%26K+P`D)&M*W%|fvB zBON5*=GE92e~YY3%DH55KbuYbU;qRId5(L6uCd?-`dpXq&V7$kQk7N6L=ZJOI38(Z88|;cf7OROVquA@3czP8Ed+EYC|erGAZHGw#d|#1wR$C z;1|4Em-dI=5M@l|SksUNf2&Ej^@p-v3IlE|cr;B(Sn!v3g8MIS{U7^pAN5>$a5nLW z{^-9}mT-Pr5gBvt(%Hn=>{!kG%G`er1}wO^yT0vyyVHsRm%so^x?>n%vh*_-b~W+# zBh7_q5e$e3dE&oe0BuT`Hd>p~w!;qElrG=A7(9HjCzVjzl(u(wg2mNEQAY|HQ?CgX z3Gtwd$D)oz*_A7W7yuc=2Gb_sfdM2fcmSMCskZ!;^-%AbyW@eUyxw+L~d~8-KnWURt75=0{~V3an#3yx96e$L%TdLEqY(yF`JQ{?@llTfJV!8~s;V3VeDcVY z5jH1^0kJA5&n3nmJEE^cMO851h~QQk2Ke{nJ&qnxf*mX%k+%&1$^T&(z{Wx_z$NQ# z-akk%K**SaR4%23f|0q|kunTO`(v@lZ;yFWaw!^XlT(x@c`1AO%}!~hqs z^|q3G&X9aAT962N@lF)p8B zlepl=?k=yMaB+TKd~3jf*7oBvO{vQp_(I04ZLLZrbkil@7_%w{Y(*GwsT>2MX-b9x z_YPvfn>|s+n1766z>63LJda}lgv^WE!Tp!F|Jn1;A0In+dnfTT|G`gw!hnxyQ~D`2 z@LgD+|HHE@v;Q1r3}g(-7(8Q?oG(|#*n~YXbPvfGKS9Og0jfwaAW}!J3Q@z_5M$3x zPw1};DZ`%N@$<)`lzi~)ad64K$C|^XnMD^b3t5-zw8*{ywLFA+&c*uC$>|`Al8o5y z&OzEXAT|5ENwy93fSBPr%K6%wMk$6to?x=t6+C)PJgF%XM|8X+F)gE~(@)Iu^qE=XrVgTv68puVnF?r(I@ zYiU-m!-o2Xpvk?KkQ7ZV;(LXvqu%A95X|JaP0cNykZ6_F)_PpL5?QqHvpPFEq=gCd zTGWuO&F!K#YHeu`S{zo zF`mVJJdR_G&q==C?q9!GY&G1z(R2u1fIyjYF&feaRTGc1 zQQEwYnfW%k-y}XhyGHB{65>n7exq0%4<|)Zpk;px8H1;pc!+sr%nZsH_k2EgXE#GV znq<ilF!KSnnP{R-ylTyJf3bBF_B2sgzS+L(E-X!D55*brU;txAc0-nv{ zh90rtJYQwy1(`xX@Fl2gYfg{Ix{xYzf>?4S36F0bDVEegkCU}DHYMZ2ta3#_W@B9? z>XNEZ)))399`P*rQQr@lPP&w7&05&)Z`BqI<>$dh^;<-MsR#|XE>wi8e}4p3SNp~o>~Ot^a- zfs)s?-;w8-9JjM8GJfQCtHSWVm??0x+dSBqcitPN4rI)SlrbbGoer=%x;lbJ_g!|9 zh@*^gi8#s_8*6$Z47@vGB7PVPPBLy1_4p(W8EyUgsV3o{+f=3fkPT;=lCt3YF$3R+ z!DALI`0G30di47C@byO*65sfl9}@=rlT7`PHl-`)g^Zb7p8acJz{1*skTDSQC}RWz zt{;v882Fw#e_GAh@eVt$$+uQQ7h@Q(6vF`Zjj`!V94~J>#2?jvAn0FZGgGqszRKP^OlqAIkiR-8xWh#P8 z5_Jrz`owUIlYmkQ<#CyeRzszF>ac>5!f_1XoFVqx;{2hSluqR%46seF`>bF9(+hO8 zYF<20(1ry7*t`F`%)oKE#PQ z2GkSZ8(U>V00t2A6$6?>9N@AX0~!SbA|IDlnQTG)S5KEVA@Z8R04A_tGAJ7fx4CF) z_U&)&(q;+)h7uM95|g9jJgDy_qAh#s;pr{tBfhFlEv-zoXF_CN(@e= zZM8HZ@6Dtyd}Gvby5Hp~lc6$Z#VccmhSG9=9Pem%7@*3SWIi2C%ucFj3>a|Idxm`g z1LEzf5eD2Z$AC9ar3#8^;{go#(qn*2%;N^WiUIhB-T4=fU*BoG^59(JmwxRRK4HK| zkul#$B$bT$BXg^B|6*Zt(fyX|!Sm(kXK!YXY_rj}e619vUR z;v=cVybks-JYeK4o|6#tM#hjIa11;+(>JW*#!C^Hn?@Ng%4sE)SOT?~j_t;+dnR`)X4l60mCZBfR;UTctUFXt$UwuQ_pm!i6 zm$C-k?e4zb0a`Ota^JvkUT&j}lXyEYoDw zo&RNiVMUGOnP}xn92Sq4X_MelGA(;l@jR8i>V&kd^1p)#kck-hE<(^dOc2i)_gs$S z4pGK5iD7XvlL|`SN0LDhrkqBMv3q&P?fW-9QNJU2z>4n)P)jmV>9hNa3#OJ7g8ucM z>qo!*gRdmseK(Yn z-yP4Gmrt!t>AzsK_58X^ptoIud}>Q1iPj%#?6qMoCk}w+!P5@QUnANZvYAm=Z zVvMZW_6EMDjtR%uy;F($dH32#5+~^obsIgTPql?P&p#`BN^oJoV08oDhKJTX2rV$PeDX-ZkzMc7=s z6AA)`z-tLO0gb>;;1zkAYzk6xqRYuXnDo=0Qhu!ENU*WtHZ&*CO2Fl0MxMy$hDC06 zC#Eb+Vq4mTB%%tZOm(x!>6*p0yGfEuNCwPho7{J%WJ8PlpF3nV`c|6bkPRK3l4!Cy zSIJ$wkPrj`JYQguZDCT@)u~2?o!-X)4+Gd_OogeU@jVRms|$CRFw+ibSi(dP$ZdQ# zY+6KlA*}bH^t|^#QplwP0oY=9y{lIj*Sq_Ya=nx36YjCXiu0Pic-#!B*G=z`09=>I z`g=UU^?I4VI?s3aaJ#bO-ST<*^f5jCeu7Y+5Fw1;V`MbPjj`W+UIHlZqmx>U0Z$8H z4}0Q`B|$gketQS1$P@Xkc`mQtF0b38m4Oar;~DwaC&ynlbUG)1S^@wm!}F}-Z<{+L zgglnOOn<1!)Cr(4>2-BFMTvlJYB7RuHSBm*jhHtY8N&vVK32#WekXoY$QV3hmb@}% zYHm^d29WT!cXb2}EsX-?$y{0{X%Ki(NNo73s2X&g6q&k65-%NO!L2{^=7XCObd3ea zGX_bb5HYae@1Bc^qb1|z)086fMiTKo7kKyH+zlSQxjA{&CE`E+C;!MN&w%$C_+Gt` z7@r-hnO&OsEth-;iw*-wdLd)1RrS)fatyfS$(i$hat0W{6fKO|BMev$F+kf>6$8}Z zcUADhFaRQ->iCma{JyV(TMzEY^b81jHh9VOusg=xRlkTKAxQie0Kc_#j|Aj`pkeivKXF!==oT&&lsskV_ogovTLi=RTQr*dT& zpd?R5&J}4hY&tF&zl6wq5B@|-7fMNiiYH#r~$Izfnh*TpBUnU0ftfCo+MX7I>G>p{|7N(IK+TtDqn^H zLuD9{^a*&cR)0MPbO;8hR|WWGRd6xmb+2Rcbo0Km{(n2Ri2uZUj^AU|b%GPz$7^sq z3Lc0T8?nu8Tw>aeM?m+$aG2;zVm>}2WQ-|eiZRa^l5fZuHUnTl8)S?-=6VNccgo0U z>ou>A1Ov804A?mo1LDcIRYDB|Ect%w+mu9t{w`Jt1p~fz2nKjE23h)JhXD^?-x|1d z_e|o?eDhCz!hnxzQ~J8KDgF5T+Wfzmhm65eV0S0n6I{8jBdwXPYSWa=Ge(t?x*t$q zuz2e#gv_EWChl#33uo5-)Fm}@hmZkJE`4@Ej)4~r4<0;y6t*c%&(rS5)EJ17m@xo(M)HB}qeB<$)A3UCOkxlae(`Vd! z2+^KW&ppmvDcboK706j3W*J~B5v33_?!?4@9W9+`Qbv8JC z=8_PhkoRox@hqM7Uz6|q{y|D)NW&&bcW<JBc(&>kdDzUB`qN>T_Xkq1O%jo z(IV2qs26(U&Ia%Y3m>dp}nfKDXmQKeWJ+*pY zqV=|*;u@<|JMlvTf zTS?gyCBlYvlX1(uJHlV{0}L;Bm0R7!)g1>iyUV|MPg*69=X!TeX4}cX+dqeT7fwWI zl)TJg;<}kFH~%zEZD|zHuY)ep;<$1q+Ruf#W-ojv6IpVU65^2@+|AXXd%4+3ImINe z%)a}oLu1n}IHKCeN6oUkAP-NKtbYe=TQK2~T~g>f|DRFzN%{Skw4z+oc;tTlhT4Ib|@2Ub^QIqd)xS&%->_|L+;meebi!;lt(CtL(ji$e7d zm;9e(rh(@O)-?9tgApxf-$s2r6(_iyff-WQRym~p#Q1Co1kmwa*e zwj?A=GCIo9#O0Nl{H8W5jO3x@h`hYihaWGir=K=rvjc}PZ(uShf~V#DU!D^}^C|b* z!mN!mkTSBJrA7^CNWhQ){Tm2(N~Am{R|H-LVrA$AF0&)q;$6cYeh6)XI(Iyl?296|qC`K-2YR%uJTLE8U*M>IMVOeBfkhZT(lH2Im-$O9N!5YT zY;N)q&ln>EsQdl+9kB$tdE3FiaE-I`1XoIFCc$<^S znVGKc_&0thX;w{^2WR;_;$UZlzxrJ@cq$c9&qj@F*k?qqfBsXK_SZy{m{>pEC(%!k zL@ak?cdOowCL3nQz#=o*$z|{Sy*BGs;smW871cD5^-s7`mG&^mqDUQC8Bo|%xvzDr z`C*|V$j|RQEOCo}byKB*=Z=9>tQPkko^l(USuFEusbCg3B*j9y zot`f|9CqcI{~~!rx!CrJIO!891^l~VXRKN4-i zQ>UeSo2rB8afYKTni!L@-;#2UhTFwq_cGxFVt|Y%``~aq{F$v0KVG0k;XGdCK~oLZbxJ zdevM4&V8XqKLZY~q+YDGobjeq9Cns?>IFA&ggXWMSdzKTjH0uSTG{~HV{BJSfG5+M#= z(9INqI)Pv!h{I9&s?w2iP(&jCan3i60ABI1n}`?Jfe__7qF`)lb3us1dq)%1Ab7+V zX=LT$M*=z;HAK&cph%9*BI{@N8sL4==F!NNn7}g_Q=6B0Mt|cCdx}thb*OPLP87pwbE(cp@c7;@`>ZoP%KUzg5Ps4$lMhM1Lb zdNbtf(&)Buu?v-Ueb+6%b4cmw1cGkx!`P8nLUgsYySv4+Z}}Wrc!};869|S!uE{@V z>O&j^CtrF}iP*r@2-Y5*@|Rw$oUq?)iTC{a13N!QlD6VfNhSPb6ZGn7qCA0Uup5L9 zqB{r#{nU+*58H-p5)N(u(ACz<%q$P@(0Kyff+Bv&9=dPO?pBfFpf1H<5+8d}ypk&A zL~Kb}GMI5|b}xR&Iqw0*he$Czi8}C6i*oAYDN5vjiwuDtOYl21anS9GwySNoc$=x# zZ%;e1j%!@MVApykK!^l7bB#FpX}pDe z#YpbtCfg3;)RNa4^M$3Uy3sOUH6T$~W&mw=Z&&gQiQ@r+E6)!-H77c%$7LZ|T(xvT z-sZR9leOd#>;@hS*5fPX*w+w?Y3ZWvPv&u=Y~GA3$N|MlF1}k)HlCT;01Sv!$qs&G z&>+UEKIce;+ z6Ip6XXb-RW-0!#a^7`e z9~XuxDy2B|>5Nr_-63kmHhl^EZ*u)h*U#S3k$)@b5gljPK|j+9e#83iN6h+;-ya+1 zN#AvBMN0}@WBaAuI-+Y6!dtc*$!WCdFxxs_&sJ-9LFPWyIsYk*0drDh@Or-42!%!A zQ{jrRAp@UZeBD!(8XozX*$ujc3;Lnus~uQ)ZZ;ZLa3mcgg&^%qbP>P4O=F4`0^~{5 zfy>N))b*d+$D9+y69L}q)Fu>vs)&e-!gu_X0a{0Rwce1e@*Uk8zT}v*M?rwf%~>r0n30ESP8{F(hXTT-j{pb4gugRH zje$EfDvcN1&62Sx$S3~SQkwUI_j@c3@h}9o zKIZ{57Wwv*;P}_s$UOt3syQK{1F5ZI^25Ty^ut&yOj%wz20=9iFv+$OU=*lXAs!1mX>WdVp5I*{Eu`!U!+Sf660> z+6@x4KKX?M507ndCm`8av+VYMblsZ1|HENFIr`$dQduv);(JB0<(l#R!abtYA2Cyj zF&J~EW9Kfn?w;sR6nE35flY~xm>t|4MU0nCKQw$}=5zHrXVXF~DX}4nHbR1p#%?$S zipGO56GDPHA|ZL3I?g$|GqSQTRNPR+&r@o)mCs`8M~%qW&V1CRwui@{^a5Ts%M>+I zXyf|NWrlyg#JI>3SKvve)Ip{{zn4J6kur)vCbNL$6U{Qd+fUHBh$4#1L@h@*_l2C z@xKW+=Sw=+X)7(>lGuXs2T0UpFmLzl2Iy~wocH`dE*)wsON3|~FmnS_@NS+3r>-hS ztNU^dOBio6F!Z;s?skQ_?)oHBwdY82RTP`ZdK46B+jG81>V$f0cw$e!q<)`9ebilU zy-_l5)MR!_FHL$ydH!ESBZeZvpOov+b=nVr1?-zMl3>x4vvCRUOEc#}`)p8g7!lI3 zHr&`#-^tgC7%;+5#G5~-bk~7V^_YfIDf+duzdX)^RF;(~jsf)%Fu`Bwovy^Ys+|H$ z*>BVZ19hu5@TrRLI5Eeu#Arc#7#G_ajEn@#0`2pse}3uDrzmZ}RULC2R0IoP#52tV zlUQ!tBUkShSJoe99?-dvy_<~Tv3V6+8@J7N8uJ+oQv1nx)OKy5I_xq+ zaI-syn>C)Fu2d1OvSm?2XZ4mFErsZF-%Db~a0jUjx8Vc>fwXy5a#POy z8+Qn*Jg1VvKenPKXQ7S$B$rQv4L>>eGVQ(_&3vGTzt-(0)~+fL>=vS^qhEErQ9y|s zVD}q|=}wznHo0wXkA^Ybz*SPPR7+J(nLo}mR%%?TsP29+-!Gr znMKGjXD$Bf0LPV5{Ap+z`QJ5m$H}kh_?u0-MA!N<*V>~+Vr&5MM3g$IKtQ&Mi6=Tx z@H^`WGgZN}$kxVvXp0_IatkW^X$Drt+9x}+WoJuAQ%h}Qk9I5$`@v2bmXqo2H%VL! zKhXlo+Bf?FmGnBaDIZfGH^xn_^B^X+=AWD<#V3G)5f}n`IbDU^F#8LyI4VUU=AAgw zdpM$&>r*P^$kfDUj+0Lxa?H$@03#c6XG25$hKB~}lI zXFUTf0Vq7`TO^=DZRo9d>w#arcVLB3W|e)t(qvbs^FA9KwK1QmQgfmAxMeIUcRv

    zoYBpIv2kwBwlUm!#e4`C# z0^#9-XXAt0QN$AaukvvOvAk{F-M^1KzJy~VY-`V?khR1#mc*=gCNT^$9YZA0^OvX?!QPR+eEbYTS70%x8LMmC~PV zDS>h>IGxG}8Z}sM`;Q8Z7fn|N$u=VH^9dZ&+r}sFuf1Ce4N#^kYAN$jZFlD*^I>JUds$%=(;J3U&QXR zJumz=*JWP5v;zD1#bbk34_zH@8+WPj*KnTYLtlG-e#gR1tP;+9L$yPRttn{^&EGy^ro zXCU$QFAbfga9QvvD?lCQ^^!ksU(>^CNlTLVYjVK^8#)xP2^_x0PBT|R%%*ESS6Np6 zo=ez9gu;E*c$6vxBuf_+qJwCEN{BpJE$Wzbxb!mdV6UgBoX3Fm%5ec53?Z%!6G1!w zIdW6B3c3_W_vTa+RWzo~Aw5Bl!8b6xpwNGL+e8&#h(9+zYRekw$|T;C%nll+yA$%y z1-SX7AA(6}E__s1xBr7enhwvh5`N`;H#^Kk$Jz)Syj|(HTt>T1tWTT}a?U%Hi||~T z^wcn9vH#IGeFu+V-)O^Sn&Vy|-xDbBla;bO?fZ;_Kk%GB<^25^Pq(-OJgTO~blK+< zA9lwR_Rlbz2Klu3g7AaPYvz)2-JkVsTult9;E%A9Yq>=7peKM|WL(xuFfSqc0!}C+ zbXW-A`(drk8@D?jKJ}VyubsaxsAA^>W_Lk5_p)b7K8d^Gmt6)PvWsY~pFx)+6U}h? zJ1b7=vGbk#7J(vM3_n3aA8-1wFuk$Tzjk>=&_6ns+e;G^Pi{APJGf!8W)9dB%Z|7# z{Ephmds$e{gx{AF!P8!^7UooeLAj;s5}L6kU(Z-jv%kbIP>*n}c)?B&!wi_dGYnH z$?L3t4CKIU|ih2QSeT2Gir1YT=nmC zfru#7zx+g3lyF$6)dvpzF+*`xl{nb09W z%3alivo;+srJb9LDAYoEx!MX)12jZP1>Lb$!UE`P6KvP-^nj=PRzZ7)V1IRRoJv}pYM6RNTMx`)lwQDj)EAcMxHIGb;!a>S3kF9e1(1@I0P&qhe0wK__Qt=eD~z4=hk&GlZ&h}V6%aEurjxjuU%xXk z$qI^>j|1C3vj1pVpfa^&lvM2@h;1f+OnVZEtx*8NBzJ+E50*KcbE0v)YivJY73@sR zH|${4Zw+LWFHLIi^FE! zsFWErictcpO6<*8hmV9Y?UBGS;Xv|7uC`Ry_O9#It?ai7R5;hkTYEjjfq7dy$(yDp z42ZpSZeIVCnq1w=S2vBy^eK)2x2GCeC0_x|2@9Q~{2xX5VxGb?3`?00kxXo^%vCC{y%6=0*5g}BpJt=;6e8FffKtf_=vboQ0-`$vVULu64noZgBX#PTdp z3>`@z;Esp33c1?%knLVU?-3M-U>*pTGO93*9CH5O55J<5qOINkYy7c5M&up}b`&V4 z7>p8Svxkc*^kZ?Cx=6YZ7@rc$+PvmrciCiD`4voU?tPhVDk@*~pp_)=I8E0is751z49|ebdOSQOrkI5SIw53hy1PEDP1c0< zWwPxtthua6gyCnkVyC}VU-KX8@b9avT=M7Ejfp}(@-&)we~&vh0LG~4w&9{vnRlN* zoxz2sB1ZGhQ~AX3W$1%1pj5p6KR9*+YzEKlejglUU_Fx?dYA8NA#In5w@+UD^ftnz zwX{Ub*;#^rTFlY+3FoZBS*Is_5eDikWR2Q3{V5u4?Q3hw&7!$3UcV7S9Vb_tP>N+; z2A1q6uWRrixZr1UG=+b@#`8tu)>Q6!LzH(W_uCBr^ZXzr9-x}k)yDrjPM`IUs4B}b zXaEAiw}%1W_bP$5Gfo9;L$Nz5eYkk9eWt@}b#rjn8>Gn$0ioC_>uV2bJR~1vLD!+t zA2HSPN=IwsYa2K?TV-EI7zR?>`e3}jpjc@>{Obrxqhl~|vFoef`uwx@)~uFJItRweIP!7-V!aT2B& z>y~fyCVVt}Dp{tQ@+0;_+i+*~>@V)++)to3)~;a}bfEwDr})1AqPGw9Z5KWz3l0>v z0~^EwMKlTzU)2#B-93oNG<;FAh~N<&4eD zB#TR+^;s_+jsYl&LyO(;ni0Pddj^dLzY@E(1gMM(GUiR?jBJ1DIsh|TC1ZamwvjW= zyA)3cWbB^rNM00`-<5$sldIQty?873=DD>T`$L~SQ1Hc2c=}i`3xG2UC^u2~zlpm_ z&uUK!@a$!z6$WVk)x&f;kTz_la`VtguI8;NA8-G)9y4<4FDWrJ$iq?mqb|C)B~fEL z|71;zUvY~VgoE!%pX6^3h`RrKU*pdU(3v5(*HA)~dmmVP+o(+iJ##g4ZIi}#?cNC@ zn$CR&h)aRkzqXr{)*h2h&g+mR0S`O{RdNyH2Y-EnV}9;d1Ws9B5A-`bMh**vUQmE8 zn%vYZK^KnuZ}%T6G>q{UwLS2<9a*MR$?L;ao#Q z5+ig^Z|W_XY)s9QmEpB*O(vM!vi{UIcHW;1>IPz#SH8EV!tp-h7XR?@WvM}fF{)t- zh)gL^28{yi0mm!0Z99MxA)3vihmQYUFgglw_ay!jynMXB!+!)SO z{-dfqqC#J@JQy$3w&fxTai5T}A))y8Gd1gO30%Xz`Dx*pyDbT)O zVux^;e*c{LFHh_wYHsE&+#n&9H7CcQ$Qe06Mb$+yr+S5b7|!ahzK(Ut(kAEh3dzV#N8LalU2ykS7_Eo z^|0Uf8mTQptp&E8mL%Rt=UR6JSkEZxHtjwL;5HnLd4s%ACRh+X?Mn}{y?I!jr^;V;KJcWZL} z4A!>>?O!Y}Nr(w>I&u^TpKc$GT9Nw-b(H|G9*Ovj(w|m6E&W7imMTPDprjR9gl}Ol zMl={vm4wG|#qkYyzlU|?4=9zyasy?Jr6YUe?Zwu>s6L2t(L_xfHXb~@B}~Wo zw5f>@)Sh@yMhaPF72YvYUWEAU`!c>v>{>{O+Ms79K>vR=V#k>FYlKofmN_E@j^!IB6 zD#Hr|&0zRRf6&{hh%iE?3to-k;`omzy(suZey-TV(oceYivKSr(!d!+8Q)qaS{_Mp zHlht_-M;=An~1>vL;GO}8m^_+MM{3|^}ZZAyA335_+MXx!kCpT&Dv_W05BYam`}@% za8PcRhq}1v9By$p`o?lyERtuf(^E+7*JOc)4H5eF1NlGaDkl~g^7MSfZ-D)@QXjgpy-6^P}2 zNy347!jqqqSrK9`fdxUV$MB~(rPmEWQmtl{-3c%wm7xL)U@RJ#3bT=W6@$HoL7P>m zYz?O{vY>|sXVC7RM{t0{5!+(7(;nE&?;S zpm>VFw22!9X8Cu$H{Sx-mZk(Prrk0*XJ2VFZn>@vV%A3T6(|5< ze5hBUM{fANlgDw_cqy#RO-<}LnBCHWs5TL!5p?YVxYC9JQv$lryP!Ef?lU8blpY#3 zLSeuuKkpYVR+<5K*l`3a9LOU>vUI=EP-UVrlsbfAuUD$QrA5}s<$zqz(pKnQc1hj( zsBdq*Wj~D*#jXhpaOUSrK!>!PsZ=jS0Wqdj=KHqlMMb6)A(E!y+URG0+vf8iJ&Vjt zn;+kRdrRrtqm=xlB13-}VnUjzm}8v7A!MpYAiZ^%4BbC0-EHEeo3L0ZY-q7MzkP$P zlGf{FhQLIda(6q8D9~^~@3C3sb+Na9K?i#DE@NS8Ew|18cEZjnu11GTRV-?F zDHxN!Ivg%dYy8GZ!(zrw2)vWpJ77jP2{cl(vTSZAWH$^ZE^Tk6Xa-HH-F&EM4PoCn zH+*Z3%`iJMQ^h~zcaltN8&+kcSDFomR93y=IP;P{QY$Nio{L4Zc>@cta?&3O6@D0G ztc`j+r}ipbC1XZ0Kv`iog5M|k6R=7qNG`ERCI|cmH%C$>LzlXJJElhr-hfXvN$@JF zb)CKJw8Qnhe-=J&fqZm{S{)mTsJ)Bs+)C5a!5SvLyyLmFX!n>ta4F2@%V_Or$^Qx? zJT7k!PlBkVXdn(&W4Zqc6a_*M(kDkaT(j#z0o$^@7hB4Ei44JKy<(cxQ5Y2BfdQ=P z?4G0)tY68M7FT@nQS7(?lU%HD1nl*AQQu=G9ei2L^|5>!G#F_0@iNi+HWZUq7 zH z1ZIU8%y%XF)bh^djg394%d=TY0Re0ijX7^(YRVvGRt=R%$};5ZJec-a$n0@as3P?m zf#t!;)W0NC>=;$I=L_3>7VOE8A1fEX$BiN(K?yd5-NA>2C1hq zrHePeAX1C_qhFSf@?XM&s4#&=NTiKRWUA=3aK}X?F$b+qFgZ2NqC!jkY!o;2Y1fgP z+hD|K7MOL*by94N4N3FS?{KS<6mpHH#OohmKM$a*j^ZLZezNZ)tGa!;jT-58v|;A| zxR}zGJ#aS?3iK@|_uY`D-2WHbAfuRmeXN5Bx*n3Q^eAK>X_t4B2GTP^k*Sw>!5toY^$!8~ppr^YarNZ_NCedo=v- zo#1Cm8#xEz!Ej#;7R;Rg3^QUN-`{u-_@bjhpB+59{Qy^U`rBk*{M!B|2Kx)0(7{uj z)WQrWhKAhMDoodvd2D8Es?9863IUGJRl0w^gg_2z@JEel-ZSTO-|m-yFFx&adNxPy zQuqpeJKjtzJI*;QXE89i5Wc-e|IiDSGEph0X}+TUYq8hpPp+{Sv4oDI zYa6uQ$jl1;9BsT}=`N5|2zu?mhv`W5=Rx9a4n_`XQ%FIQg$7wL(t9qE_x2{bOuP{eKSwp5mMvK_a(&f! zRRE16^cFRo_kIt8yV)gj91B^-Zxst90P^KNy`4-w(YRt~2~D?PDj+3zTe5BgnQ7#8 zr%l`P9#_fEt&zE1&18(ug&-dJ7WuS3Evh4V1XxaTG%847)ppHfNWFMG<;n^kgNxWr zdG;6v`#0oD+V(c`2(zTzrT4?LM_?v6fnari z!J=--U;}v1+VK08-_aztzMqR>;NMg0lgpw+qUi|7=M-0%z;L?mLPMm{#-nn5S@v2^ z$j7Y+O@qK|>XG}e{h{caq^*6~Q|ZsJo2&MIzHlYTga2a_==z~S5JhyD_(~Irx86eY zq3p*(akVZ@^Ds}SVIblQM7jUe&}JYY(_0mV z>W6<<&lyrhD4t4Os|=^HFhh6FShvsVCa>4xZB+d&^lJq-Te;q&NydPhY1n!ebmzPs z-Ne+oD$j4v(`CS78?+5tY1zyI653U7GIx_xtfnY!LrMcWt!gVxcQGY3uMq0%QFv&o zrZ_xwJmZG8DNn=T@MwA3=Dr#iPQw7|?yb-Wrv%!2SWq~CLu&^X zcV-6&xmxCAni@{Gw6FQk53|j$B~}o{uKpF!WgoT*9a^aIR&40dW2X?poiM12>i|i7 zE|15FsSa+oQ8xh#tEt~Pvy(zd`Lk1nR;G+SCu>2nt1P_!s#3U5TUkkRqsem#SAwUL zwkR?%30Zb0tl)QhK}zYq5nTbqo?720c~v0mzoZ$ZOC8o#X1);$n1cRXH3u3ZtWho) zquCh6MpniBt_ZA*DCkt0x#YdR^a*V}xCDZ>?f*3VzFfNq#n$!s%_FPnY(?(nW*B&N zqhB3I?vKtbKQl#q3ca{puNW2!J*NQa$72tNWs9ADEwswJ+n|1H(Tu4+qZ*s*evUI$ z`?28*ORotFd*55K5f;Y! zh+6dpw4Y@h(c}0R*dW7gyIqG!tgUsxa$6siW#+H}Dq%pJ*(_jc z0@-O^@axxeP`Pu-5v;5_T6{n#E56g;lofuG(eT+fwsKrC*f9hw1cKq?RjGoV3iF~n zC$dg&CA_g>`}6@{SgkPp=}@LntgW2rAl9WG5HsWF%XK=$!X*M)du4yOrNfDPL=D6- zI8VHv?->pdlZSE?socegR55^cnm$sv zY0CZVD`6JcBonN!Fcyh@cpPly*CYqFW)TngA&63n!*{M`LVBqWfC`KzrsIklO?Tc~%h0(7Vw?(%xcbPsasn8=)eUBmn8V^e< z?XJ$Bou7qGd?h~QNcPo6!)%5FS9rqngfp+eko{4U7Tqi^KT>93JH=?abDo18t^QPJ zYf3dI?pQuh%%MCLgY2q zSI}eL`FfZmE2{-8Zc}dzc%_t=&H>F#ZTj%G7e+Rdcm1zlp-#@Es6Q6>HJb@}%Cbz6 z`XtTl#{M!W>1$`M8boW1t}>Y`>}2UMNW}h2BlugD2~Ct+yBANqUfw7x#i8KH_Z?;k zyX%ijYT~nfWxiHj9;5rE_~dUgXQPo=e=jp=zmH}b7k#I~gq+vtHzbpp@71b*qQ3r2c@&r`z!wGRt)&MI;(z(k*%w5UIuQ zFMYeWnGUArbaRHjb}u!(tl81B`27AdN@Gd#Jy}Gk870IT$4%X_z96$-ASA|C=A4WI z>K99hVF*GmSpCnhoR!9ck^jmU;S(oe6g{^OiwX#-yZgNE$M`yqVp(bdWUR-D&DLGJ zyKJ}2)h%`a`|*icM(+(EoF=O+-+ zn=>6@K{KXIM$;v3a8avD)XOp0zrf*LvpM~6AoGE2@q_KeOd{FyLSm0H|M zaX1jMR-Pbg62Cz&8ZwJ#VVd>|xOgm@Kg%#KT#=;-_M)SJupg{f8A%a;GBs67S7DYB zl|Hr|t!zXcR=u^?cjpzK6Ku~u z4LJ)Dh|JkQn`U3d^pUD=`4q#1bPv)T;b_Z^8y-&R!;*FgGn9L=z3-B*vnP1l+cx+^ zkGqZiL-F?pUS*)?heex#PLwSGr+%a3Z4CClg@XGy5W@-K0gR=oM#J&^RyToi_L-}? zI)%Mnq8;sza)PKI7aVYBbk{$iwtyC1r=F2W}}jJ z*-q--();-Sk6*s=B!S@8 zq4<7X?pCy$V&@El62=v>kvnI^H)y*wCQ7^9Q~XS8BUHdQij~;SrQSBT3rxkF{WZm2 zfYai|b`9dY4v(|-`q49+8SavU-|x%(!$@(OJ5z?k$7}5AaBSn-N8X+ZB(kl?vTei~ zD)v9afiQf;*1fME4xcRnS~vBRB! z)foPBaD=ImaTap+}&IDw7( znC77H*2-u2J!wq~rg$O8_6ODj6e-x~h**zfTnzL6u(uoJND+3G-+xMoBhwg)_6sxO z4?EU=bhQ=F(Wt8zc;vX4xY)2XH>1w#;)L@5O^99k>0%VYliSrTjeS^Zq?%B?Q{nTY z2=$kc$>QyhG~BhZLzQ)>m#qpHJ8QY%W8a1a}|5x75HoA5hAt;olc)9pSsH zi_trgFs@`8j6Lk}C5teK&+RL@)tmqP?^-=lc6zq2MTPVy-;Xe8s3aBm3(F(ueDd`T z{F*s)t)ozu<`RPSb@y99jG}6-)sOpY=H6?_d zcjds`+d=~^Y0DUhE-e{r&`RxUv>@4&*H9mbf$^U^4h+*>o%7=ZcM4N!cI%eBQ-jV^ zvv*0D9!Q=%t__OcPl|h(AsLrnHAb3y#E(1Q=bjizIWXuThU3s^Do0smP{!BO2X6gt zJA+ONt#{{lDdO(A&VAN#Vz74V74v8@&4Q@-$CmE%%_3@Sth6c1H1p`Bm5KPF{Fka zrZ|C}3Z|8Wcev^TPxdfb^WMKaQ0H&&DW|yVkn%Ax1b=}VlY(hvh4lT{|Neqi*2x4h z?%Z!LYJ3l3R)VF1$sa*`XKI4*d9cEiBBCdVH7J6h;RH9ua_!dR&5HwWTGAzHPyZ^jju@~3fB@kV1k(}UpiQrk%6`& z>c_||n5Wp<$x;cssDt@H9H)8`5+{B4tJ-v)eSzE`(SN@sa;usb5ucYyFhSo%;dy*e zjhIq$^aW?Ix2k<1B*C6}t_)I)HPBs~j*Y0Pd8aA|5k$VTeIeEmfm!2` zUsDPM@7a zMNEfl8T6mI#wQ@j=UwD!iF_0D>7PqmjXvXB)Wyb|;a~&Qw{e%~d8r%*Vw{@fRa%M- zD(duM11DPvW{SkEn2{_v`ZLnbz+|rj>z{26y+%%vFg#Z(Hv=UUB60XYFA& zkYD~=fcBAJczIsICokkhxc`$eWf6YWf+7-S_R7e&?IuU>kpxI$=+_Y;2OB;hL;e|5 z^YT6IcOeAZ7Dg>OPO?wR43yY!1I^T*oO%9ZZqcx9R#U=)g~P_;E!G9O=`ic`#W? zDnKBJf~A9Fu&E!bBWg-k-+FHD;W6zL_bijp_xY0-bb4!LW(uhb$$!AKI0ArJOdHET z*(lrwu$Xq{$jD|eJbdt)=3XQnvQ=^~g-*8^$i9ZL$G3IyzXX0(v+WEBRQWav4Yx^n z(e);nj3>~+>Sra+SzXO;jwuocFJU(O>aw;jSCgB>6%vL!hbKFQSVI}|>{DZYT|Gf?_u zX+rqlF;q@C`%(}vHX``BhuJh9y8;JDYN$Z)d<1JkGqp0Zla!xzgLR2b_Mt~{UZl{w ze|&b7?S>laPcyn)uwqC4^rkuwFUKc|fN!)rGBn3ds5yT)2ovGoxZv69w9CTC1x-s( z#*`z*qYH7EunAA@+<1ll36whzkrzaja1VgGZ`g?j&e73&@*^&Odbg6I9fa3A>yKJyI|0KXFXWNc}1UwgrGv4K!}DfL+{ zkpcFXu--EH8W`!6^G zi)qx)%X-*N2Kn*Kv6PBVs?jHWN!v9itzSll;)Ka;AjhCC*CmQ8B{pi4?i*K7WkLLw zdmjvgUkaciPF%Q$~Y+2d%(ADl84 z3E{bhqtnUEXQs;+@B&`GVtxQiXix1>B~GpnxF_1=+C*-(a6!F8iv_(I1)d`hmMZ>x zJX_@{HZwU5wtBFt&JI55`y641M4U2$hN7>bzT-!B!bt6Gt=mNHUqrkI=}rV59$D#+&q&^RW%|@P$Z^^s^W@2kC6}*X-W@KUdg<-`$o}CPs0Bv z%8+XYlXbfvHg4s#=&G(fMtw{Jw{a|8_@C~4pF=HohiG^GRoA^*-k(+sPF1b7;$~_= zAM1KPRs<#Gh%Hmxlb|iv%>B^>R~Gd5eDNXuR#Mj?LMYjL7TH`C2Yd=1+S>S=isg;h zAPV*^{?nqqMp`wpp@GBtd{!{Mzu!IGS(3$0Oe2a2zI9cHyS{tGraNj(-WOuS0qDWC zSjem8Rt^4l9IW~SIA76d0?^|$t_!QB0b=4>A$`WhNfY&@T;sjaH$)H^R=m-?-lCrA@>7LbU?#voME$twyIKyjR0Q z`KaQ27m@xD3LVt9v@A?e{XrG%ZS&*{(%-&O_~05|O%rP zg|O?}EafLkYk^L^v=K^BeS3p6(et-8J3Jw8;}QHJvw1P7T8_ zzx)3F^XGYDVkU^TXlDA-%5mxQCsw_Azg9b@}+n zx~A5cmRczci*vLogU5^w7Nfswql8!<h!LGE8LiVHqQX@KA~ ziD>U{U@{VSiM$rOy%38Gzr>Lt-Z1Ne4$aptM-Z#NDu&TEqKU1l7k3)yz;!QqL5bqg zt0v*#qC#Wvcs5#=b<*AJ;w|FkWPQvQQBnAGsf%h2e4M0Zo1)d{?E=a$F22tQPIf#9 zgd!s>P>)x+C#R6XMYT~Hj+X0>`q%CoPoIM%-g({l@t!|kZ$13ff}E4mrhfTdyQS`Z zYvy+6pB^xb*nx9|maD*^Wk?=ATt#34W zI)nRb3{)GGTvQ9Ige640uDzElKHUUJ>;1xtI`wauy8Q72AB}fT|7Le5-20pKL3G{swvzCFwv&EMEb74O z9M8bP@7}P>YC9?5Hq$b}ZVU=CkG>ovhX!8dy1xJi)c8Zn|BK z6WO6bXCvP-ctQ_sa{RWx5b=R{Be4E9OaCp4wPMdRG%~L-Gc3H9G?_4XN$3}T18+uV zOk_KeGan#W9kTgA?|%F}jbqwwLMjtw`I0dcvM#rzKS~j%F*&{nxyN$Bn2u25LCsn> zlS~<@Rtd(5?5V;;-gDZsgJgO&9^FS#QiU zjZ`|q*DR*C;P{{o11-+6!sqC9Vzui2LU|eeoG<CZpSPc1_Q2U`9i0IL)(_ z?|~E9-g_3w4;*9<;tVjUO!vD)pxfjmv@k5*OBx4}M~}mJN-j&@1P|@I6$2X%&Ni)h zlI3rO!{D&=orDn&HrIzp_Rjgu>E>h%)MY3<>vQi<93UI zr%ENaQx@8jE%k@2rv-Cd&ak3Xw|czLyWk>L#Zm0opKT+yAJDeQz{@760531Q$X0Tm zs0j$;u0|$zs<-rNz*^dc)$&1zA0rG5%%lMoCkN4il=J4UTL(7mZkR3)@7Qt#s}}I20AdfWZeEaw2l$1*inPL6Mt@A){0k<`sA(L+G1& zP+x9Jkl}A!kh>Y;5h!JX6)X*k(&Zi89#oD&yV!g;6qYWGsfVA@hydK1pyc%kUV0Sb ze}`gt?=n|l(Ykkrb2N0}1=1)=$Pg@|KJZ)0^PkLm$n@pEFUioHY@K^Ql)v{ajU+m7 zv+j(Z7}PDE3kBzXGDi#&N1`*gFh8tAi6ClL_LdU3U|G3@p<70L)X-%##< zdRlD3rhQO)x-i$=#m*UC-BVqdn|RnVscPb0PB_5=d zzpyxNKo#lDZw#FHxkj6VD01|Cjn#kXR-ey5v4>h{X;)`APA1_Ct|X9}NXvH(uchH} z-iFwlYgcznB39D}KQs1xRzxr_^3&36Q}Tf#*Y4i8Sy;Z~H#AwnCPNVm??)0WYy-w6 zZ5Ky&RkG4#Vv^oJg)+<11(T1s$61*OI*g_eUhk2Qzvff)q5ubUYGrUowwTlJqs%QC zi3D#y62SSt5=q`ws>hbLb;QHe)j5uYworFzvVt(LHP zql~r!f-Hd%X?A`eWx9P9lUngA*-KK_u`Xm1g0xUn-GB0U`u(r-zZ+>WwVf4*+49c8jT3mo{jAGpo@`Q|PX`QtM0Y5oLDi0)Tt=IvhNQ|gV@!{Qe)zUZ%^ z`$|tI@*zwGhHHkdrY1RADIQL&ivomSny7x6i5Vy&^!_6>_u%N8DEVP4WnCdEwwp(# zv&LL#b0|V7R)omsKQAz^N2GiYZziz~TxC81Uc!M*0kiE!=S*|X`9TKur>jtOg-uZV z;`E?f9zX83ZNC(mZf7#CoFREt1h`H)#Nw>*{ep2a@vrZUh(o6igkrsN(y)^VK z!lGXnPpbG6yt+O#PIs_l}+b;yM zy@x-YaVSjo8c=u{@;rU0DLw0cswENlV@9WXzO`nTo1o}m_jo4z8yE6oD;ljR#}wOk z-ynjby<*+Ra%dwMr6UOfZ)Qa~s+BwhzKrHlW5W2nBEMY|?k92;TS62k4Zj6} zD|here^hYNS@-h3_Cyo-IeN?TQ7Lzcg^))>6Vv4sa(1FM{-oCb9>d(kBum~z zxJ>et`jEs%-Ob!wM8n~D9;-f1^~LG4GX)x#Z(=7zo`>X*p(}yYNRjWHrr-Mx|f!0x}CR>8vTsBomy8w0;uc$e#&dgtMHOq3;Euf zhUnUw53x^CW;)Axgw=G?glsSm6Q@Iws|B-yZ@ayT!f&KqH$sJ69Gj(2jNO7yH0=bc zi39GAT;J-u2-J7Cx6W9|u=?Go zT1+OP^}>1!bru}NeExk(hStEt-3(#f7w~XC5G1+KVI0y|hz^{gkRNb{0%BuR58}`i zlv9DSbf}h9N@>W6cK}p|`H(|+Y5#R2WCZZQ_1MXB)}DkGNNm-3m!x^p1^_%gsmROf zb&>1ono<5fS$22v4=ok4CZaVZFJ}$$LU0Z+G zW~Gh=3Da4q@$bEc4+th7U&0-nol>F9)Q_-ef7!_!RM0~bJjaB(Jf}<-59BWio5~k1 zM7dI+pcuQ!J0`HZ%^@DheY=;rVCMU$K2FGaXdx;aHt$5`e%w6Re^hvn?4KoF&~39 z7s27l7eHEk=&PCM6#T+3*3zd=a-rqrx|~+AGqY>5Z5lzRZ_;N5hAlBC_Lz>sCq|owu-Qn!B!V^K851#wOVJQdqEu+wl zfM`>j`1!D}n`yGiZs3!!8+i3B^d@wg`FHT9U1G58ywK2&RFSfa%$DQu!JD;<)SbtA z<*YRwi&Op0jwJjl(+F1AJ_ zL&0xM%2+x+O$iQkB}1LoIG-GLj#ken{yMLw3Df?KL=MnJ!DIE`%OXhFDav9+#@`DL~r4ZM^x8gbRRg3 zRhsKu%YhIN_*lSxjiqh=tT8r=Z?&3et9Lm5YeOIpZ*SuoZqS^t=3h$rzl$o@8U;k| z3@Q9nv^~)+i{Wd;^f$oB-TvbMvRk0@Z%Br>Jm(F_?940AdY#U{ck;@O*#9y5&4py0 z|L^R%kiCR^9|gCO2uvDS1LeL~b==a*bcIUl#i9^k8{l)DpzZg>=Hmr$bviEp`&USF z^Nu=E@NE)WtNzdy^EHtobSvMZrKC)(B3?S>1IB1QNAJ8h$$kyxWyFbMD%xi%G>WYu zCs}$Be+bf|>oCp}IWo;B2~#aNq8JJ%e<`|nP>ny30@fT>(=Z^ho}5`ORwhc|t1vfo ztrJvuA=N9v5!>PXJ)4%d5Sq-yt+5Ja&cg6Zhl<)di(&zStXD*88lsoWhKHpKL?W{e=hv z@dDMRK&VW@+Jztd1;Z&NLL71O<0JPr9T9L919(I!-f0Jg^zu*J%*Y84%Fv!?pO1zvW$RPcPzvYF4GyS*U$2WUrxy`=*U z2Sa9@dBfsM6S<{9pFaONpEgEq>)TvwT`w+3;tDys`+RsnACIDH_z)H{{hdkEv{-FR z>x9#|k>)FAa zI^RFq*^WCp(dbgI;*z(KMI8QjLWY}jbhM6-L0s4NCA}jI)(bMm=+Or`a`Jiq}UAc zJo`aB8=B3#_6G6y{qT3&Z*xbf{xL3QT{5H7g+zQT(B$Ii#Q+X=9x|Xg5^W4(0_>oz zy$u>^!;qL+uCoR=;F6>l0S*V5NrWOwxOu6@<4$hQGH)9+-kP}GzSZZc@Ne)$$cF(P zS5KL@f@|w^*;q`qvJVQ2Dml7(E3V`g`zw=S+PM4K30xc0UMwBw1?B%z*coh#(_;;& z_;=iwU(p)s#~YNFF{NHU1yZ)iCJk=DI}F_@?j;|k^!zhgD#UjoOZO^&tIlp-C$OJX zda5V>9N**!M5v_&*@RHF1=T=Vl}fC~8BM)hkG}Cib$NJjRU-%e6&B-Es~e!QJ{qQa zOY5(&5RuKzqLg$+m3@8Cn%eKH#RD+Cv(Wm}a#E0X|i>r(*)lI zmtu_-@U42|2+ms#>k#7%?qM;g6};?a16EU;$~XjG|GCXa<(ox1RAKuk=77AVPDhJz%TLlrhqc%D{8T@-hOB!~8G|z^=`!|v&hj4#EyW6kUqA|{2 zfo=n5LcYo6j=lXI!GzSs`Hn}yZ=XPwz%-jJ?CXIfB@0?^LPB(pfVy}@s4DCNLEpz{ zxTqfrE(HgT)HylEtOl-CRW#>ft6@`5XT$4Wimu2YhU<*TQ$hJMxm9d|2~coBJSPVS zv?77}`J}4&Pz0mpEFdOLr=1Mx6illzM>wCdTb0)}LD*Z-JN|KW6YxtbLf19N-8xqA z8Lv-%j4(D1-r*X(&rO1^9X@LyO)wF>*%eIQARc(CRhnkx?v`@)Skz0!8*$V@8zVBO zK&&l@cH?YWGcPZBs*9+4Im@(j`WfDv_rB&&(@HzP^k0wP*K4>v>?&ue`|Hn4_!g+*O~Qo}YhW+Wq$Mc;q-4FBCh9BEzbmo;uEEyav_A z*wD(t4ZdW>VT@iE%Niu?3FK(|nwTzM+%zqcY<=JW&=`38GUzBFM>>d}wU)uh#|51< z)KrK0D@qo!g%b@u$y(&mm&2>gD6>yVm%P!CgV)(xAg#`PDV)+dl;j_Cyq3hZ716u&w~H z8Vq16BE4cy2GMQIKhJL)usIycLjeQ>u$E3NWb*KV$>}$dQ3F+}BLGPEjn)+^9KmzE zicy%`?Q7N1`h~(fGlrUy!6_GJP7l);qFpy;{J`L8$(!+* z8fQE!>V6QeMVM>)Y)6%K1;@)?Nbx^_8Q*5!OaRQ$^WlprSo_t9HJIS8)k=n(*8(oq z{o(f5OrHWgGkV!^_a_p^G=CgJImjlv(MHUWVU z_gc+^liTr!5?+}l$DQkw0l=g5-BUw@OJ-@6q@`HN4)Nt276z!8*pat**8l5A`qcH^ zP#zFd+HaN%JP}6KP2dG>lEENBQaBdl6#jM2>?j)pY6UrM|IEDG0|X&+2Rrvsdwb#q zI~xhHA3UbNpWIsAOQ|*ag4aXI%hi3*LgtHwOpyg(o{#>>6r4?fI=cY1>W`3qtSbz1 zAo!vb;y!yAcPiDS){W|c!Ug5)gGEB&p- z3Vr!+`}O-nSl@nz!GL}xgjSo&+KELnu}_lXtVZLJm28I|jLAHCN)&KXc! z_3BTb=Bmazx%;nU^7R@ic7IXYK~-N*j_~&|HcQbOh7m3vITGBBB%Z|wsB$z{!|29x z+=HvK(h>zaFSd4vYNXU%qc~+*VpI|IsW&-it!i#d za*BXbQsz~T=fLI{#O1E(PpIDJzo3ii$m>=LPKe&!3m2c5c>2=nKO9gLuHB5dIKs81 zC2vtxd8$giGv?0O5j^kB$i46#O_tJB2<5yE{(X7+K~i;$9`WK|wOq5dRF-FrJPZ-g zjg~}}OFX|Qs!aTyGoPHt158sa%Vw=;Ywzu?>FVTU%uZQPo}{8PX!yS8Db)QE&86QAD$k{gq_o*^=ocBRc#U7X5=*ylrB*ov-Gcu-^)XH^< zy?yYNBR}^w>pwVnUgEGd(wjR*L~P4()W0ly>txC+CTKOb(k!(@DkQAVxJ@O5Oor~| z(s@4*xP}{3XMeykoG{zMWTqjQB?cuvd9j#~`FCGVb<)R?4Cy7-vu zw3@?#O5)7trD~|0W=6?*$@!5a;nY6^Sg-?r(Ee2$%(m_N^xa#jV3TKFcIK@5!g@L( z9(_#P78}Lz0W5>EsYA=9Ivm!*HQbu=xm3W$kjf3K^t*QFOj)~6pFbC#Wu1@v73BwY zG!0tal4iz#JtmC|tNSGuQEEV2H(tF|JWI8k`ZH)8%fF@BfN!XpJPTdPBrIs)&64Fe zi23v2Xbd{ayfXP|-UXpgIMAPbh!C=MV}Xx*zW|5qX0349D*Y zE&y>LbDlujYm6y9MdSNwSnARn)>_L{nproyU+kjiijt|Cp>~3&VGRMFi(4aRF~83? zl-l>mN@XE3Y5zF~RDZ6{6BEabN*NtV0+pYf9swJ{!IC2*7- z(-;gX@Pz`Pw6-T8;5s)OZ!roRkbJfAAPz?>vrRNy+?Yz3yWk&nh?h1d_#F=(JV=+z z#7hFeYc~CmW)!*+vE6lUb(j?2*_M*601d!l$Mp{pXtBa${>ePbec@<6KDbsweoLk| zv0_AD%Kkm$5MSCgh60wdSuD9hw;3s+&%y5TF66+;nxhVlzO|~7jIE(?m3XvPxtS%Q zPdcA!1{i)mLI}wCf7yl+qOR;*7m> zD~r3b3PZ{9LY9O~2yS{H+D5d#@M%W<{xG3|u)lk>H7>(P(+s)Uh8E!LvdvAM!>Bm9 z-}>o_m*`L};&mt^(^k#7{?Cj=QMMn?!Tt5VvOc{&UTPnLP$8(o4eW4O zc+5a}BHKB}T0t0^k*JYXAqUmbe$+j0LHqt(ro-&?-Cv{&Fi zl%AWEw-b&|$8^=IG*3`f;be(D6J5BrFybp^0VOB(9APdpp zYrSp^StMON!YyTjCzjW)>M9j6C3^PonnCO5=NG>U4lpqXc(|Vkb<3%ZE>?y5#~pPF z$q*B$&e;p>LG`pY()AfP`KsJyn)CvCEhbUEni^9Upt%x$@veQ#*TL zMb}79j6QDrpb*Uy#NC=?&ygAr-dOZ%ToZo)z9f1YCtT6) zLdIL_Pad@zH2G?djp5Vi`+OlRH7XPay?Kf58^zY(^HRJTlfDX6|E7r{!=}jc$9bIN zXMOdq_9feM*g7Mq3nhh(db19qUx|oOmDtM8N_|5KS|NtN1?l@^_qSYe2Fh%5bA(#7 z;ni4~G!oh)5;2f=m2T#2B(qfyOmz*8wYDT=zk}+dwOl|cCuxlHI&bzkwVqHn-5U50 z`5s&%pSq@Fnj?Oq>l~~U8kSZh%lVXexSw}`o-#3jx1ap@h$s_H3;Y>E7Sy9;$b)XO z(G}GnAK^0Qt4!c;AVRp+)58@`ep%vg#J~KD7ujhHEV6~bXqKL87S5ea=II4 z&*at&pNuZ$#K!bNx2Cz{Jr1ueSb2>uqtPPpZWd{eZ5BGSuo5VZbBf!w*6*%=8+i)RbkS^l{g%o741d^=@`0a zpp2EY>o-sEK-WiOp>?C5$!rEa8?O2j^n_U#;N#fcjGi42mUB;!fHMY;7RAb3_$$wt zXF~k^NfTe?UJMw-1{f>h7eyv)DqJ_2h}y zK3;N`Ih;KpzlmE{~1lD>Uu6=bP5pF)p9Ka4C0Kos9MzjIGyKgjXda6|=ZHZahh z2r=uU$imkPiB?xr5bb317ykfVqQC;}Vdk-T{g8&+k_&@Jv@kR?qZS6G^~9}z5Q4`7 zUKwH*9+2K!J`hd&+W}NtjWt+?)jMkE>(x5;^;HrS#56n)31y_bwvrjXd{X@5{5UkR zv^E;nYYfo!lN&nin%5Q>ue$idi}Zb-`MCXfwym^xCPo>QH9hRg_Y6eB2|^#7S|&n7 zhocSc;6$L|C{4T1ecKm<$%RVqzfOx65D{T7&>jejv66ZC%uC-%9QO<#5;k;Cfeg)9 zud0ysBqR9kS~)LBhJhA4d~XJ?%*3P~q{U=9Wcw6`mXV>OV_kw12P`v$BC;YPtOfwP zRz{*L(ePLZA87n$EdAp7jE=rVzdbhC9hZvLev=UuHsC&C)o(-xvj1HGMyUb`831lW;2^e;J^FE4oTJmLi8d*Vf|f!&VN+C25BO$Y-0xhX{xX&mNuD5r?ZM ziImk=VewX=Q)}D62Y~(xU@V&d%IDN*RTshK!~wML+uxZr0& z?RQP^zu0jV~1oUfHtSso=h9t?>WY0B!)*~(sDar)%DDElS|o)?36 zg8{?p%C4OCq7p(kWaYp~58lh5B#;g^a{{rGxt+KnHhD)IsP-vTb04sA2B+utM6QPC;?UYyaqFl9DA zpbEinmStzg4Vun4l9G|Yitd!9(Y2+@AEP5S-ol6PZSx`0$_847kh zw^;drDdMd+t~T{b6kiUZhA;`TFn<0QM-EZ<{cwYrS}k#?3;B2A@2~KE^WX{cr++`w zp*-vA@gqa2G3`E|wLg4->j2F)hI@&8aC@GkR=0&P>@Q*5RNey-k+^4cXPJX)Y3GDr zqZn^FsG=jlraHG6^yl0Sw8X-H68rFKoc7YHK537ka{rWPjbNY2ki*x$3O=OO=z3DJ zjC1TYDT(&Jz75n?+f`oInJWt`+9%u&$c18O+mnZIUmmEJ6PZaUoii%suBOAo+ATjS zFEPuq_~&4lkxekph|}AuTEBea!ZHDoF8UkR%A~p96JoevEnOPcqn59V&@IwpvL;x_Aab1UL+xmcKqsoKLj+Dy*}nO^NLnO)Pfw4n z(K!X>PCxj)It*6XQT5?fLwvw*P|71V-r1@#3Oy!OSyeEg;OeK|Pa}#C;2shNfqZ#u zUm-D?B70uF_}(8Y+(Xd9cWLvJU7al@YN&_MS{?N~L-2oNU$ToYDbJ_GM8X|T?Fm8D zAG{S<|JplmqH+Ot|DJ6OMNmyc_~{&(V!x`S4qvC6&i1}UZQkoi{oU*@MTjm0TM>8@ z*>~@EU=D6u46r}R(C$q5q4KB1b}xqVD2Xu$3@Luhv}Fd?_W3vvrh|zZ*wM)-O3K-T z7chRq1q}239p;juWX5M5T0-xRBL_Sb6c3BNQtOrtjG0%V+ijc3h zH7QQySRz6k3_^+$jPzo{1$A))*B>|0%55^F-0F>CVQVMq31}W4`c)7B=3r|6(JE+C zeYG2DW7B3hJ7tcDDvKAsX(DB0~R!yzb208E#C3YS<^;)WGWP2={si@0#GQAy>I`3Hm>rgK6PIj9mM1(r|*CP9^;uA920Ok5#qkon{NJkk5hn(YK?6o6bGU`aQiG0!L8X7cnhE)Ce+GBjco!b z{Vucu9cT{k(wZ7@b61ymvJOPhf)BL9(b5F`<_Ug(p#uH#-0o#8&>jK&SM~YX;MUK8 zb?=ShTu8-4_R~Hd#SSY>UE_T7{;WbjdV;rt#O=)aPMi(awE8v!N{=jo=d`o*X{$~M zmH&LF#4ZXIJ|sBVW)!tbPu+k6H-_pHf&UV{Y7ijfPV35SnQPG%Cmq3$qu zh*cXwzmAc2EjL8E%s9IKOnBUM();2o+2$QJuC;n_hP)Tc{MctB+KGY3lAfNa@*`dZ zS0c=3V16B2GU$<|_wTB~A%D>mNb>%{?mbwsm8_%5{fY$Td)5`494_O1m-JkPE^hfm zQI?#%$*3*D14s1%`(KFY7(+acXVig&Gpsu@T9^ZlI|?KayY-!a#PbvCRVU>i6bGxf>#fkHFozfF>P#kfB%al9sGBOg zXxol;5+#16*%C`l=@t~dc{|sBfJo4qouAi1M5yHEo1`joAq-0r zJ%sHR{9kf<>m4q(B^%Jd$X4}4%Y3^UOi_zFyn2gf{`4Ey3CpPL)IgC9)0-0l5s1#< z=l-7c7aYwnRo>bqXt~IP{RD?~9cn;<-%ywa zWgdtuAT}Yd>v4bhwO&GQ7W@}qZt7{%dh#2&>qmuJIh1lm2JtD7DfWmWO_hSNwd8@H zx@9#0Rk?UCn$4mpR&SJb2>%23&Rx+CN&8UO4vuI5A^&;obVzrKXmaMq6s@cz%TpIZ z58?)S0M_arMk$jYP=6tLyxdJ7js_&;@dmc1-tjYB3YZ)u6+le9*hn#yA-vK=3R(a`;D)iHx9*Sc{I8l{I3jnzepYF z3Hj;upaj}?4;XLFL`P-)^t#I8m9)P1&!j8IYP_J`8j84IpQ9nm=h>d9YC_uJ;Y^Xc z&(JauduO2Bro~hl`irDeWb2#*NijKD3|3Mo&w=CPWj#1Z*GDQ81$u~{2LJ`1<*E!O z#7iks3Lv{)`YVT!!-x)KB>wEGUHwAMcXIPbzTU~vZ~NxNa)>HeCi8)>@1J--88(w0 zkI6>OBgm+9CdO!ISvdKAR~E+7i`V*Z-UdV}7|= zF~UHN%-8ZKaf+4%lOxX!-I=!8;PGnMqJ;R`PNfK;>gk-=2mLZ7Cx=V7rxE$r8?;X1^AJRo{@Kd8mz#GHn+7C2ASK1qL+{tjWwH3AR}L`fFHNUTx9 zyl@@~Sb$Oh1@J8{g>LHf{x7r@NH I)Q;$HHMcKRx^Apw%7>Bk|L_rA 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 z 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

    Vl8U(end$EY~FRkdwX@*)!FowI^M*EHE+#SP+-v zbUY=wNkGIPZ-I~4KU`SM++R$jn12Tq(ck>~KbIuDGcq7*1!yB1O;MF0$t8LX{>FgWwB^*(6^(Pf&f()WjAL zkTH;6!weBDI3`CH1W~N>H!m1)pS|~-O!$)!3x4^QE@Q$kUPzLT#Ktp@CskEdmGGjH zv~>!X{zPr zja~X29(Pj;-|r=i1Act2vgGK&WHrXS@dqPyt>1W9r(Hy`A%u?+2qA3#Fy0uIv3|Sx zhW#kUs8{^-`roOK?(mQkc67;R19Ioi4%gNps~we6SrXjw|0VO?)S%-;>+9To2HyKz zck2Y4YTl6GUdxfUrS+ncU3=@C`mi1lW*UHv*=CE-;j%ogu;5`|ih%hJj%y(gi;b$a z%f5X{j%Cw#APK^WoMT-`B7Gsj^~uX)9?zdED}Dh6T+SgYKk*LdRtY`4^s>WCWy8UM zZyW*;AgSGwX`@|Yy})JTO2Le0CHTUiQCaY%s(#Qg z3(o0It9hEvb+96O$K9!|agSObOTg`Rk2||5N$d;<-ClnjsIcI-NfOmCHXRTv2)HIm z505aldG|0vSa)fyQa8I6p_ zqW@%gD5{f@Fsj}E{V=}zRty-PxDf+1`5wK70nytqV5WirP{u66OjB^cdeJ8Y1JDbM z>c`mhBzxSUkjyNl1OrmHVt`ddX}s&r^3Wo(MhsZ-_a&-TkU;yNxD!~v&I;&{nv| zs-V{~pe&o26sNiY12E#07|`G`;Ne5BaA|cdAq+tLZ|Cx@pPd@>Ieo>)e2w!y_E%xR zzzrA>r5B6EejTY^F#%OVNBv%4up3~&fR0%o!24-B?J=O=Fkt9r4CwB@5d&Hz{sRLZ zH9xLk0H#?NMB+2r=$AHsIj{(nbz<}o!46rE|s{GZ~Qm6rro}EZyeC0T`$Nx%u+;63uss0UH$z$aB1^nhZm-5Awz&>DMrztQY|D zbuKwev+9rCdqdmlWFy{c7~lzclcWb25L7~kgEmWx|6y6WVE~e9t9ph#0dB(pBV=yE z03_hqT;aXZv8gxSefJZ=;EdOij4^Eb<3Il6NN-PPWMm{386Ay18yg$_*1*63^Z9;{ zp}lgi^-AvF=ci^44o^^J5LQlNbS%bR4_Nhis8XN}Mp}Di3^qWhNLx#)dB)�Zy1w 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%0Aqt#xp_}@pGW3meP?zV02EKXQ zs+12)gzP_v{xMZn!DVbz$AYW?EP`$Jj=7%klVQLeMSxe9j2RTr)n$ncz8xx)2gnvs z#tsGC8i`3(R94P<=g@>H^Up=uz6df}n1K?WPG?C8he;h4Ko$VIYXbF+t!8j7v--UGQwn6FEp8xe=UFW#g1<3F4K?PL(|*vxWZReBL* zjY}1sof=gD9@Uwje44rSXMmGwaZ8WH3=Gip>#9M`4Hv)w^OqI$ts*SG+J^ z*b4&$=T7|=zn1;OJqoY^##>t;VJO!IOxM@Ub%Ly=xh4z|FWC`s3uq;xWrA&(<}Pqw zGG$O!mU)C6Otm&Q$wYT^YlkwN2MDx}?WCf!EN3raQU{==(V-bPsR%(efK1eH0bo4$ z)T-cTnLMAL^LffX-vOWnJJ(ZLszoLc6})~+4cIz6`gT-s_7^Bo+o1;Nta>m0bR>W- zvT&6;0GNaDLb*jt-bY@7a8kiJ(9|k8fR|P9At~VoeE&}ayuD7hpLpN<{~Td0!1q-O zz-6l5-}&2rGm%cG5?}W3ee|kj$fI1bW2_4`4v-(<0KYOub3il`8n%qlQ8q@F17vhy z0~}ymk3wO7mII_+NyL}9;9EGr&wxfUq1MFHae&Qo;Hams$dP<>sO4dn1JWo{kKq6b zvUhg(>HFw7U=>->H43Cd4v;lB!vVktaKN_XfIZ>>1lQ@yQ_BI!ie?-KR6F2+qT_>_ zZ~#@?G$S0)yRu@+p8*GGy!R_4<2WFaeH0E*tx8VVR~(=*+D(iifo5niKKxzsd-~SY z*yjKeihK^Z3txXE9B?HZ(B)|;)MnPgZ$;2{T?YdWJjAPmG$ z$>5X?b7wdpW81zh2MDHzJ}Zq#yXV{C0FD1X2WTN?mIG#kZ`trm;QcZjP_UU$#*L5z zDwYG9t*+&OAvoa2r&l+HdZU&2*kAmLNZkD@F5#zN{DuD~(X5vf|G`&%{QL{vdhb7l zk65`};l!-LN%sEYQvbO9K%BX|u9);E?a{KnK=L{3EVWd!XrWyyU3`IF#2LYV5nssr z!JKPBhK2c#O4gda0>rplizYhpWT!T@(z3Z{la}9>%fd{weTxT{gwtiC9-0MZEM2gz z-IuPaMtB6(W@!IDO=0lCiNT3OT6<efb)pNn^o(D$!j&(*j@`Zci0zg556{JK)fFuoE-#5 zX0HK{n`AZ_oI+r@JPXbXY4Rt@6f;5A#JODMc}djPMu8UP_8g7Dd zIK+%biM-a(W(oXkcI&iYE)LNH=Z$ui@Dx+3YVAtU0LD_RU7>ipYNuD>HpFctt?6if zCnd4#B}#gh@g58&Lok8Q8`?SZWvol`(z-NQjpPSbHh)gZkaL6A>5DV+2*u>A2pWt(rXNxBB?) zpL&HteKoQV(AcjzKp*`|N}TK0(c-TgM=g~xYFsspdr=j`e_JiWSJLuYAR&f5vw#s8 zPK5nHquFv|jM)$TJ9GTno7<-ec*YxywYW)n4qj+usM!ML#6< z+865#xR<4Sv!c2rG0wzSgYUWR-<1zbHbz2($V^CixvzqU0k|*744rZ=LW}^d_&8v3 zZ)lqq02q%!0Y^py;49NTLn`sa8|i0wY2A2Dc4|(Ow$>SaO6OpDrycm zNZ+BVnjKOxS4b7*QIHZ~;me62D->^#`I@74s5yMOS545qu@tOrqwjPz*g4#yX*fHF z+cXgbj@b}y5V)UZPf4v!159%%=WSCU;LMQ$6c!tam1tGF6*7!!^y_qN4Vx5vq680t zs7zB%kgA_Y)1+<&bX#6Wo+IW|Qt~I$r+TEi_ne89lmW``ke?H^T%IG-Bk&yk z`(>g8en$Q#98ql~$9k869=*Ahx&?3uDgbIYlAECVEOSZ#eL?_@-c2}(?*{uvATlW5 z@Df_1G0^Khh=qO6Q_gaV!oRd8jd8>-*{W0WRxKYsSI z909~j>jUBdN_(m(<3nEsm&Y#c#{WLx^#kv?hK-+QvR7(B}Zb z?1wl&u-V68$&lX10n&aIazHnh1KeaF`?Euf|BeH02kw2uaR7clXM5v0peh_-`}T7Z ztQ!tM=JPC*v>b3093^KtU}rC$1CRk_4p^AwfVulPfP-_iN3VGtup=B`j_|uXP6`K{ zk(oLIZpQ)kyU61}4Yp^P146uy;{f14a{%LPG%${EfWmqm*!mnGSgcJN{VeF)|?7SYAWixNH{0-37Ho(4D8-`Uqdl z*XCaf5(|%lM|Qt~5#MNi#E=u1+%IC-2|P+LnRau9&0)99!eky)Z*Lo%+QHfgHZUl{ z;2~NmcaHYV+NIX|or9fV?{F_TJU-yoD|0+P!8&xu!y~lRYzK$tdAKimdPK+l1HON6 ze$A*$ zp$q0SSzMg6pVPb*#2?$wkniXF=2#>r5q*)o<{smDiyZT#qG<&qpf^zExZx^U(87ia zTf_rcVu%h8yTc=_B%PzG>LkgrJ&AqiJSJLNMj^hW&(FCED+QmIbK-%sREGAVoRGz1 zW^a1ND{TdJ-)jY;OXiXbG;&4YcGFfhvRI)#RW#1a{$9uWz7cv{OOoaZ;R4??M)*MA zzK;)NZ=m@=i}Qm2@;AtPmP(lLJ=^zd_bEA>oTVyB^1)@nwgyA@I)oS&=lg>ZYzzMN zlc#rYcDjSa|M3$)L73~NY2e1Ee)LBYuRnX1C>Dx|RP6S}}0`LkTix`6-oPn1oqM&CNM;PzWcq)58XGhz# zcx+WS9Ia}BnE|`)9F-*~2hbKB5o?hqEL99QA9mxRfHmBZ+^SsaUHlytMAjU(1&9zpWCJ+iWWo;@Sc3(cTOjK`PJOXrq47BF#`4Wvs zTp|Ol6)UnJGrARQZ17@#iUS%E3gsIHakwtf!;cmTfbLlu%WMo%p#m=174F}^bkmHI zMBqF^TC3m?V^ZgN*AL3=KxHyHWiSS4HVKIRG0y_J0%#g|bwKN{hg5JKj0<@B_xUQg zWJu%07_EW}=E(aMa^UfG?I`f#ecA86%ZQfiP5}q-a#plMfjCrf6O4cBXgu9A;Oop0 zU$p>SjNJdn@A)T*$#9e?l}d?LtNG=P272bpw6UVk&X!!qaex+N;!GRkIUvu1p5lP8 zEVSz~n3@A*{5Uv3%FuOLdV~XDycWX&Fk-H>m}lV0&&3%2b4k% zz!CTl>=zEe)SxstAZs~*@c(5vV9(=#ZORyLY-tWau)fS3u=a8sKmyDnPp6CJfVKNL zV4pbP;NXZdpTK|SfRx7p=XTxC0ocG%CR8{e#T-EW{V^PXB~vcI0sd5pI1cc|mWMdN z56FzK#!xA_p3Ju@C5(|FfY|2W%30#5_^^dAjWtc@L!l9d`%48 zU$x4}INuoX!EgNfze#-M$3K?H=Pwh_o;?|ihW%eCl`28G93~@(2duzysoIr9lo5mX z`zm7`7uf0;Tx)uB#gj_-dXOp?5n{yKM+|wT5{AZMx5BE(I>h}(#|bO=U$IH2HI66V z?l{aBK}CcYX;X4jx11Q$h$LdTEepqHB&jR=3wa&k52?mv{wPHf*qSdwp+-I{-aMb3 zVL`|-{E;=+H>S{}3-tXy6Co8b9)wgHNRkbXOpJGIV#U)W$Bc*}kB;DB13#z(!WMX- zVM5L}rlM`ZH*k|CL@h0^1q%kB=9ZSpa^bbP`QWw3bHQtm9tVjzb2KaQc%JT0%$wWh z9QP;YaePb_I*G?-J$lV7bNdl)Kjw3DeC?6JN%MM?gj|?6=Z}K9xyMf6V8LUNssop7 zRUm{8Jcj2zqMv_k&iOU)TuEv!+BP0(@8O?apx^h%{QlQoGe0vo@1Da|=!^6mh~W$7 zI6sH;dHNlX9^p7oxB2zt^;sleSvL5+vPNw}ESPW5=eV^Afn__`+TA73ATd5aJT_c& za%{Q&oD!#;JWX2+Pg@~9W4#!&bWX>VjpLJPcYo3@dh9gq25aED!Q=coIWCOI@RU*b z=UrUDL$5|{+rCLT-)>NqAh&Mv0#2fRr+^A$svcpHCNAMBuc<{De-ELTB$~w8jHzYIDIB>mGKJ-%4N}g=M1_WNbv*$sNpCz zhQG(bNs5&4U6jHbaNRM1+NJ^2jqPnJci!AIK|3kp1{_vk(zirw1-+(A%T)GEs;vp; z0fdRi2?L(5(R$5*AqhK6Jo3z)Lrj1xx43g7@Psowj%JBrEY`9KR$(HzY695R%{3Yu zzJ{P5eT>_i6xeQVZ5RT;+N9CpIBso0Azo+GDhY&l%=4jEudnjPVT+%)MPoHhz`BFK zcY_|=*x=*Z#u{Y;#Ow-Y%PXtP?i}L>mr)9c$Cp{XhN?Yh{&psXM??w?^h^M_Ey_2o zxp_+(Ocu)ste3fWADL`YzNL3_XPYvZG>u|!pH%OC^FMRFoJXfl?G~UFFg{CV-82FL zX8vwv3A|Ib{E$HTH0?%9i;*H{q0DzOg|TwnOOG=0tOKc%6<^rQl!ccT0d0;zx=BGQ z)9tUo*X3*6};0W zi2zJ^x)q+^ zJ_l%VLO398J!Hs-B2$QPfLtdKK+H&gZXcd1DX;1 zmtgxo4$zrU%>m(J4&Z4tk}bWoKW9EOjD@sE+C<;O0ow~nzq9AJWoKtIX>jQM{^6`7dTUDKig%lU;+nF%aG-OP4ga!1I)$;LHP^^ z96Zbc5|qCT2guL)9FPVFq>D2gz<3$Y0o<;mIiU3*2lyh*i#R|B{`YafeF6B(aDW8g zf;E~0bXL@VpKpf)4AwgiFv0gPPNvsym}BDl=85xUc~vW8v_OyJcYfzTPNY)FM7!Nd zH0rf)X*61YT&p$R->!XA?h|BYTX{mkL4+7d&|*)Zg*Le+a2wT)(yAmvJ&E-#Yv$V= zxk^a(gXvoVzC(hHV0EGv(-_pJp>Vp?t=hxom=x=8~p*4NofYZKFiXzc}? z8#{(ecIY;Zb>2RpzkhG{&>RoV5$8vC*u@zQyf`{c(mFmqBjbN*UB(e2i5NRWOotF7 zc#Vbg;}foYIWjzdM8bJCIJD=-=6{EytYh>4!~gv3oWDz{ELSD-#50aZxOI+W5vt@M z!&z^lSgGl}yjYYD+cm{Qi(7WO=GdiUq1>?v+NMorw(hNr*At0+0p`96%8MA^87+)x zAx2}h-_j(bv1Kpde8ALuaE89>J&{kA{TW?RBV+I3uc-Mz#Q9bmlavO;3Dc{aKQa4( zzx(X&^+di+3|hR7rH&?f<+872E=hWH~k1#(}P{ zg6sC2P~puv72H>**bJxPdONlEi>TsKu1?B0OjYBL4Jq)?mZJbrAI>Bm+@hibiKRd6WTOZK+3`7F9p@5knMzGi+mj$HD+ z5-cvPSVfynut?da`TRw)!PL6>zg)nxlMhW=;7Sm*=1nfKcE)0gCmrS zCvCZS(h%Y)0q+?F*5{E0fF=Xovn&P9P`FP3&gkbf$0LxWt!U8-_^B;H#5DthUCx4L zZP3mY4Hp;4WL0UJ7^cVocwu18L1&%7ltq+K0q4@gjs;y-z*z+c@HS?EQ>)+-nCm{# zhgz4!C|84|HgJq9Pk$LBFTXNI2m!xO#2N985oKHe-3NHTDo|%ekrhQo6e_q0!v8k| zyq&>tocNpH{I_1&AY3*GSl{s-{|IeLiE5>~*lxDIS&ZCeLXw`Gp*bL~Qc|1vhV40a zs)`jIbnty)jUg#>Vy;8N{d$xGDC?;>K;K6Jxa9x|zI_gmz*{&#W4R8*<2b-S*T#8>0ZHot1rA6N2c$g? zI3^A_Bn~*DiD|n#d&~jbiUZa*LJnBqQO6+%ED{Gij&Q(ylmn0zeKcp6J$D?iK$!hf z956R;Ibbfz0doru^A~{Ejsun>t)7(CG{5taX^R!1#~naL^y+ z0I6Qt)Es~;^B&6QnF9{Z=j}KknRHoDE*C%dcpyy}FB|}@7Y;Z!K{v*WKFk4^GaSIz zSjppn8goD?$^lY-KAQ#YxGX3O^i9fyzDgY62j70Hk`Cr2<0;~d<^aDcC**+24Blxm zMyg_LN%{{N4k#NgNc_G3{_nqX2JR1=_*6U6B zd;LAZg_^G9?+KickT1tp$FNYCC67A4#aOr)8$=lG)2Q((SI|Rjp`jh9glP`wHs6nA zYmfMV#CavOXn|hiyzl`p;Q(2!80>GViWs{}4Qu?{wqlKKhk_Y&ncJUm#Qj{A*`eF_ zi9b=E;h)Fv#Z=g`ZM7{F%r%^^+SXZ23#-sHSR^{Q&BSiZZIv4*L@sHiFy+iHj4GD< zF}nCP2~+xWw@^VB`b=f)VthKaV~#~E79kh{&Y{66w@mDcMH71H^-?A_hPcBb&+(CY z?C^|*3_Ooocv<|}r$i+@b53m1lF!kubKv$f$zac{1G_LGh^7QVP&z!LHZFR-BRM}K zEakQzKH|A}KS$=hP6jglZIjMFTZpWFLW_Gk3@8Hp(;Cp;J;%Omh7srN+6u>g3RgA}JbxUn*ah?4?%%rlaDqB)HtP!b{t> zY&Pi}VhcDRU+RzuQ>ymN>bglo$}x+Xdneso;JP?w6=*6qC{Qx{#q8KXR49X3cah2C8S;brj==ym$Is;+P zi^6SaXnIrGmLgW23J!55gL4yZl;ys`N|BcM&QB91RUfEMcO zG1eI!k4cebK!l=;-b4Z;fZV}J^a!9lI1YC9kAe-DQ-Go*n|{~o7A-t? z&904&Q0<1wy-6zfp;h@0N!i8`s`t*0DBUNt4i8x6h5_QC{rf>209eW#95IpL^Ayna zRq!J!DNjdKZ&AVV83W*tPFVGZ(oJf(?b|=L$CESOcN0AsYD?9@0qGQDeH;hiJc&Tj;r|)=*c{V@k27BPalj!TF?}bF z1J-w#2fzWF)Ly$wxD4E8?B7!yuzf!V;64~0qkYpp?l@pA$^pDMgNfg@>T|%laKIj6 zzhpWI`}Y(F>?jV{vm9{Xb3l?g;8=6ODRV$FtvDcM{#VQa>=SqDs$Kj{C_ZC4THK%E z0Gs`s;Q+$DqRWCtIiN(h>3XH$o6W2#@Wv`fIY5H%`#6A)ZTtBB93ba^S`Lr^`R#Ck z4!A!b4u}(Da`$jR*rv)t49pr$@cp|6|Nq)(JY9!bV<@Og<%%AQPMcc1F1`=8$^ex-Vh~@o=i*bQ4dfAr`R%ZJ z9}=n7B=M%>roxuW(aKD>(Z=^BX5%VTWMrb4U;`xtfFBp^B}n3bijx4T^U&u_M%ClC zh%j;=i!m8@AC6qLnQ>Jce4gRwoo1W>L83B5o+P-5uLZQtCt)6&;`1YeqhTw3*4>Bc zKJpx#^Y7tG5eO#-$NV0SrFujiN#r&-dT5@5=Ssy1j{a?m$?e~8BBHo`{77EwH0z#o zY^zv8->odQkAvPvLr89Uz9}wdvh6>9dl6luc6yP2 zz4J6lOqFc$b%<-TWT#A$P~9ZFm&%xMj}TVI^bIl2Y{etzr*dkovSH-w$N6#uj|1MwHXP=mw`Cs65(8?dSCy97ltu>u-FZKlR z54*m3@-Lph{$>)D@<0CL|2u0hF!0q%IK&tz;a~XSk0jFR49e=atJT`y#|vsP#s}W} zDr4k+J@!p9qhcC_i&T%N)q)Ivkl14C*vMwc2sx@NkYz0bkgy5P0#Na>s#Z_&XajDtP#Kn|_C$0K#QtcFNUd znH6!mz@n36obeLA@D@nX>Lj;O=1#_a7BmG!^^r1hC|gv@w}7lXht%8iOFAb7*n%LA zP{NNXo5v(8$~vj*2K3!Ot!6K#GDgW}iR{56u@pJaJ+%Lc5P+mj8+aB4KTuRH&Z3(%j zeB0iAXQU`cm}kZGImU?;y39`0S*?P*>$cc%!2(@NcC>F)1?Rw9+L5#hF2OiJ7n3Fg zl%axa0QJqf?&}HlLD?@0_p_rKP~)hy!SVSBE~Qlw_Mx2TFio6=`L z``LGlAcOY^F$R3~&ENbt5*OJEBxq4J`Bx#v6bm&HqqHESJ+rh>ul-{*CtyV?CZ)1Z zO>6NhWa1{YxG7jlh;h>q>tVYpSF6m5=yBDJ(n=)W4{X+3kF9nLf3{&OUz)ZeMygmE z))2VuTAQeX#y&=EA|40CC5Nfys@8Qv49<1+4!uu#?^S%K%;!|WYLIw^qjVk=uu+DX zYOA0xFgU?1_(7f9_QXuC;>=oU+`KX&<_bG&Mw~5JAGCtQFIj?XDLdX?j;E=xWm3eP zGisOO7F;A1j^THbW<&84b^FA20myyF5NzyoPRJK0WA+~BU+Ts)&)TBwssr z(wqqMQYqiD&uK=?Z{x6D_`tU(@Y_TE${4>w#or_N_^okYSIGO~d|c8uZjZryj47Zc z;(?0-;#FW%SV3N{)JVXEWkIurHYGOig&6bf?)9&GOtl zc<;K(AUna7IStyS|@}dGmiNr%vr$`O5K+6P+SL@Unl*Y}ChfEyR|`$mznT*ehRS45vJXGP1E(4?#0;3*mwc>mZ0 z;s5RQ>SpyaS4e#F2Y$e{0lmtBxV*Pt`ITQG6JJ9nb7q6_!Ahn2OQigJfw#v0I1bPm z(YU}HJaBxLb(v7j0g)bF8%(;fgN=^k0AN2dq&$hQJ5%+d+mkeQ#`%P4eh?1u{bDo+ zRAM+lvZ9&;9R8cz%mK4vjGo$2vD5wdJmdi8k|sSCZVs3O#AGz@GGb8%z21=7oK zKse@hmIHG6Sq{)sg*ZpplK9D={O6HLMel?qN!s80z28fG$(MXIaekgn)En)sYPI^KWh+MM)+1l2 zmvj9b;e~sXwC9&IqjR+nklsK^#T89Lfk%{hu@pI zK8vXAK~lZiV1WiWfQ>Q|Z{~XqQ6^{Z!^FfaL>YL*nctU(AdA)%Jl_s8$k~dTobyZy z2bpN=1@XCY=k|E%{L}1I+RLJ=$`Q}P3;BQJ2&)To&EQBvhZQ#Xykd^!Acblk;HrHd zZlB@0GWTK0ZTt+D+^3JS{Kw_C{H(kOC$i+i_jpm{mX%BF!@$30;aqO#t4*55nOEL( z;j-5yyt(pCC&Wm6P8cnwxTQucX3AtZztY4PA0q_{O2~6QM!@xoYC)}v4@}b&W7^6; zCOr3r7cIc}zA(Os`v1&P&VcU^s?2|Eb$2&$bMPCcgFW{@3KwD8n=E4aUFpOTQ#hF4q#(dh67@ z@V6HY`EcK7b*4wuSHlHxb+%OZh`O*}9&;ZOc60Wo(z{^Hu0=!LEK1rqTH5)`lfEQmN zfNqVHZvZI)FE-f(x=_OF=Ar_4Rp~sNuMrRfkn`{mv7jnOPf|K3BV9!yKUcx~ed>5x z&9V0tb3B)v-$BAqn=^b2Z}T~psN(V%jz^+g+sB-mZl8Z_m2!Q5-1GI%=-&+x7ciIG z0B0cu0bv|v2>@gAPENHQ_?x|g`P}pQ1}y>J0;%8(!1;1L*6{E?qbtgaJ|Hwo7Dano zxIWPeEAJ)OcGRMv9H3jS^{n{PaV6}0-iq{p#(}Fo*Y7{h%u!dU_`n+%h-*{DINt!j zY|;Oj`}$4goU4;q1&0DIDtMtJS<$Lh!Ru~{5=s&c@c!X&G9K znFFf#aX@E=1AzCG1)br5hT{NNGX1CEfK&|r|NqSa`uUmzCvU zFY42e8+EP4m^cp5_xq*mz8SAyWfSE9b8TPV!vW=x1FGixCR3D98ENqU(`Ma(1CR;* zjoC{4t+}4#l+H_c+8}-16#&r7jeU&%y?X9hdXd^r!ZBJ6= z!hSJbyC<;xfbU?r9$)ouH_s(inHFggQ6t0Ss@kZkfvRVkGi`_NJM6V0`T~KgeDIC$ zy{T!afX$Wks*!hCpA*dT&B*0* zR4tGZ;k?AjbKiH4y@uFEpiEVZVcSp%9TyP5&11P30jA)$hvI*2|9_+Wj~;%D1Ghp>Lzjfr6u1q~;%bry>NqR(et4*8=E(GtF zC=%GHa;z{QpDjBtMof)rGpe{hdQN9Wb-8++*`v;K%6<2#<~~Tf&4cRcmaMCkSnBpB z`tnqi7z5I%G~Abm%M?+Ph>Z#d;ss2^F<&T%E+o8&>W%yH1*kOLI7i8%ijrIW|JZvI zDBG^8TzC(|dxD|4Rj2R!zNu4H_g2-tw{Cya-Xw&O&<3S>LlK`Cc>0UJA2EnL^r6oO z1OY`5Mf@fDkKc|?QEX@x^gR%zkw%I7A`m)5V>thsbFI17Tyw8|>eS5*nvjgK#@=V2 zQ#V!T?DKtdeRIxl8daAb+tJ=YihXl`bcWXVfU z>Ng55LIv*`vg=w=PpIGn{rRB^-V3YX2;_rFEExBMmq01_KvaGufi8+MW8FRn*`xk= z-KyY3(z;}QBPPP=Ea^e-|1Dk7_oIR@5@lo%E=$qndB`(HE)L54F~=P%&cG;V2D;QA zsw-o(5JQ2u$%uaG(ALh=0C3CIdh~0rztscXfA5tsBpBUx+ilUq9(Euak7tSlhL2Gk z@b~>ad}Bf!ASY-L2cTJFwHf1p&}U&=Fxd1HIYM`60*E0KVr(YTR>QbJJZxy^g2p7% zJI(<~f;=xRw^eC@lJ>epwD^C2{}>*sWOIG|-Rt9x_6$jgAXO>j;e zfB`?_fPP?;wvYq*h64s`u?a(VgPK;GQyJ4(MSPlyg9fIAGv&02AZCs5szBr%s=Z zisfqb&Ue1cCXpA#d zkP#nH^)a6eBMnPK)lPn*N8{f>h%P9u7=eXXzVHMBPa;U`1#Z4hJkjZn(LP`>aNHrq z_fWMmjltG~QYP;A!;PKq8>0<>U1bc!ZoR?8CIj$w;6pai`-T39swsGkM%4{7n|K@0 zUW(2~nn&@wEhgH?YHS&^$;p^lu?<2rydUs)n}kS@L>GA9;dMiUrRvxk8VrTXJQx@O z!b@Mh283%o@^gK}GSQR71`Joo)L5u+|fT|eS4?tCn;)1UzPWahl$4{<6g7euw@*Ho9 zbz)@=l*n={QBB*0QC)q=J*%H)TjA z;K~n9D!$k+$&~Pr3a-z2E7iz?ClAVfpdH!FmJHfM6*jy)eh|o1d88mRsrva1XR?YO z1P6_a`kLKr*s7X|{^H5NM{bluWx+h#JP4?iU7-SNfnaKtU#Zd}@QM<=J_f0ND+-Ah zR%JFyw|3{&$~RZRVXS7?^ssXk9Ee2{f&OxigJ1ByRB)%1OL7q^cu%YOU88anu;Vo| z38rtVuX-UNZa|;E2HDYw0WYcGM&S?j*mE@;KW|dO;jTsVAx6p{zv+P$^)RZAMZB4~@o_=e#P$so)xT0c>qB-gkZh z6od;E{1*-%*^Lw^N0(o54$IRa2){RsGbK+OSdhtm+S8tfQ#91y*cc2(zpMW4f0dXn zgKxIu00|CkJ>VeV5>XZUP7NjqtDx2XqoSU>$`Z z5BCG-zyZV;p^bsW_zTSe7`S6F?sGtwIDq-x$qFkQ55zcN(`#uPjW#X6c^p7firD$x z;{a2=1w1e{957z9o461MxXDVy0WM=2!uHUZ>qUMs@y}v02k@j_hy!@gzK8?jn|+-L zMSlRs0lG3~g26ZE00_RJDn@a@El?5D>kp$xKjv}KM?d;e6g2KF93b}uzz6WVzw(v8 z5Y1*AP$Bcc@nrhF{lVySAq#_6tLIfqdP&^w(2QpGg&5oy)X8wXWd)f6n7LNlUWLqF zBg_5oxnJo*YhXA4@SpgBcnm&Qe2jaT;avZXylQ5G!VB?1&$JeT2`XT8msP^?{e(>N z`fX8DYX+@3i?>1X_7WZ|uH%NExB&Ui;K>m9!ua~}3X`7oEHi!~Xy{GCY&>~9WC?D> zc7rkWouuzGx0dLNsu2`o6fO=2j1T&{YOoC)Ffv@C{_d7KZw=u38hWD*(9>|;8jVw{ zZ?C(C3%pdU>1Tq>H9Mf?Z{s8MeGMd?Q7ce$9zsCwm^aoHstu8!rwcY zk4@VcUV|6`_i*6?0o`)EZoNfE#;6&^@}Wt{54FdTC*}~=oBz*9B!j$`ZS%aV{++P+ zh}tfvx&q9!w}B7?Vp(^jS7$H|CW~d_fG5v9?(a`*#Z^miv5ft>O#yMe#`{sMLPnam zOOtmV=aUe_+vB-718v*oniGL*O_T8HKs#H{2{O>41b8u;V0)6Tl3%y`0q}}ZeDJ4g zPcTv35bf+7iQfF?x7Z2R#0Lu}YJBRp+oFpven_-7+XVlZM=J38hi-2iQ@oQ*eWkm) z5577(O3F81^agP^^^h-w{NVLC)HOSbn=8x&z;xqr)!X?RjO?@l1Phbx<6;aC&be?C z3d}?8OfDdEz)Jw(tKb{DEs2$=!NA{Cs}VfPuB_l2q8eJ==i>USGJ7gX?p0rY`3k|nj9E8o`83PhN`8O7W;C744! zqRlGTqKD_P6Kw`W<41I`vTy)1ABhYQPlwao}hwH)@@%gW!2$t_DUeVv8S_`A|J|thVG+9 zDtO3HR|e#~L{SFWQXK~z;g}+`pdp2vRPcJIXVq^wcE~Hh1mffq0Kj|j(DvUc;61B= zIJ)NHkBC0};g8&F+LJ=1>F;{iyQ6RY)(1ti^+VBcIR18Z&wow^-uvYMC&;w5@wdQ# z3b-W)$QA=m&<=mJS4y8@z08PGRZOUYlXC#!Jg@MO93TTZ=}RU#fGSxe2RNZfWI~Nu zqxB&(-{aAkzs~s6U}cNX0s4IZ9AMXy9AE>bAP20)IG`Kk0Ki?51%>tCj>Zvdkg9E^qKv=IR^~*hRJ-6dvm}n z$N?kH0aL>PSZPZfFtHrav%<`JfCFZ+ENy7AQW6Jn@r6&e*oyHRGMB~w zCV5zOSweC^0x}n0dBp^)EbJO@9xblStkEo)&4M6dM>CHo#x*A8AU^e`cH!WPk*+$| zKQpt&`*iFNShXSfa2hV?i%LXDy!OrBrYFP{#8LCwA$bywXSTBd_iv+ctFx|hbwzpfq6X3Ds5)wy@SlKgvqg364-lLG9G8I0y%4g`Nbm1uH zVf_8#TsvUT(RU@zt*!&3!!SSeef9;I=HbM(!N<-y|B*fH>nH`8RFj9=l63HA- z_KC(yg@g+3WlsP&St%g~OSZ?;jh^Z;Pa6U~=!ut=FiCuUi#dj~>%5>7;_|UQ=ffMat+XNd-4$&hVa6AWlIL zH`k-UtINvwdZdC6oC@A!DtL!faP|9i#!dzAa21>>;1rlbKRuLj^MDmqa8kGjjsWGR zXqYe+g%t2$wt_wn^I2I?H9(7Huc(5Xe}6zKxKXEJlZC>WuY$Y($C^{Y&1Q=xW|0a$ zMipHD|3baSAr+j)_IfI~IroX(O@W{c5m&*X-2wb2NCoc(Rq(O*n70e+&wJweJ;~nB zq^TJ+-WdK}0%AE)N&3BTPXKQA=PBJx0q5cj1$Nv-R=-ZG;GSOqWXB*A0t)zWY|9Zz zj8VY*%I%#a59{^@(bK-?KgUWD?=6{7GH$&6_J59^{p=r!@&)98oVr(jx3^$|MiK|m zbvSY!0G|-a0U@t|MI2x^aa67@j3T)&0MCqeF+)4>IDkwDInG-w4{!i|A7w>N5(oHx zA?!P7zmuZ%)lB9f4j>HoCodVSoGj)5Zd5sB|3;{~bHq4+s@gaQ(0AEuKTP5P3b+Up z5;;I;KnEfVO4EK~900HD(cd)jHbIFT5Nbn~$7MMHv%MPU9S2Me2WUP3{2mz|9}Z`p z7m>?^Zp1ji8Fa4OtZO0%m?LeO;-0Q|#hd2QYCn2j_t=6K+WcF>-$@F_CLdeDx5v=;uucBZy+^#mHji!Ea0Wz}Ucftri~T(| zjfF3nMCN=(tw~-2KqLf4CSImC$T5mDI*A#YBAaBrFeDKmFcpm_MP%i@7FpJ;h`_75 zLw-`Yu_bXq7#nj@imE#NWcSnvHQIN}wSKyUCpRy*T+^G`-;>%)t-!=B2l($jT8mi* z&=8ECX;XETsII+ez}|B^2q5ThM|%f0hT8lt)PBVOA3X8N#ct6tTK8=4sb|>CV;){T9NSBa=bSh?(H?XyV=a*|#fUHWJ@4ZLNtpNrB21+Ycuv>+ zq-(Wl#28wQo{BYFdfd3eeTX~B_#dnCKoqX4^Li6s5Bq>dyKnvTD2dlM3+_E=iw7YF z_`q-hc*Xqr;Ul{{2M=vWr_WrHXj!mlX7ufEe|uC=fw&^~Xfz%_ax|WPwbvV9*&YPd zkTs!Feo&3-3V0i!f-BHPB^*f15E+*D0Qfev0$#2)5p+v9QG-jvB;*hjoK%TfxMnWmZ|BQV2uaeGMg$@aChC$+ES^fuY&W} zgjI0ai;5`!X=IGj!l=Mz%AhQ!AGfiz}xq$C$y6404uaQ#$Uzyh}gen z#>6Hg=zyBt_csjsJ(~F{cwejHsB{ZqXJ8Dm2E#BB5U6@()Z*9^*=}1!B(k4<^KT@n z;9OXXk22Km`Gb%OE;80u0hhipR8nfL$w?etndJs?kyL$Ax@iG+$b$&l^h|?ZOC4rr zXDgJx3&)-Q9=1dXD_)d`t+wigTX5WviG(C9Da8={@Sno z8j3NK=|(gjPaY2&O(@-l_XIcqHYN>2R80`B4EDD$@a|$JwAt?43^R~gt*J*>mI53A zK{#e47I1(pO>YK#NT`~Uu!%A-UZzC^--#SxjRpk=Fn<|YHA739!c*YQGoch{YYt%7 z2UCv&d_&+k2k6n1n_&(RM)9G4Lk8eHm^*I{kc&9Mcm|v=2WS(1jrWlGlpJ72wxNC(||c-=D&J z&>!kaB6X;GHwg^Afie35sE}#36*shWWxRQh;WGlm?vfED$zQf%mHYw!HYICm zgW6^uTKpPa*OmDGeMTH1jf4AxvE3i&R@b;0FdrnMW8rlxN`Uz^Bmy^EjFoCag+p%q!y;<#@UyiT0a{Ne8bLX+Q; zTJZY`ljB_b=(-b5IBqks$>-%+aGz#{w!q{%n*<3=rlY?_@;C|JHr`>lYZF}Ek-w-# zZ{Xv3j|(zP#Nh&sKP}LoxCJB9;d@#a?L`#BNiP>`DbUj53+x5pSgv(d+~@@MGOjk_ z23FRA;9J#`7yDnsz}j4gmb(7r!`KUCl((*};oOqsh&K!BBlkCI}u7R71AF zi7{>U3#)5z9Tf0RO95^NLDvDV3&QoAV@4O3nF?Md^Dc8VV$+yyv6&`#Ky7B6mO{vN+n#DxpQ#!74fkE-HBCvsV6kinH`s(RU9kerC>=0 z;vqj9{>7KT*$X(Qhg9&;O7bDFQx{lCpPN9n#xe;mlgJI3iD_NmJN+&>jr?=z87Meg!QusOxm*V^=K^-c)7R|GRY13|8U@qWgS^BKAK{7{GLm$ zUWYc9Qt9R@csBun={XcN4EQ#gL89#Il)y^{iu(KBHv-HMfwxrcpc0O~oGnpq-gFr^ zEy#4ek>oVS)&+EcM-3E-Q3VGv#sDv=;1qz{2{sCNsXSc)?_X{n+&X#W=&^6%RWbM0 z(sbegsOkX@_<4wzx6UV$4ufmZ0|t8^gMY1MFiFe9IA<%WyzHVA{86Du=5=aT!71pKTEb%wini z2j6>hfGo4WI~*WA*#@Kdq^ZK=@98|1OHE`iZV z{`Y^eYuj_}&0aj``JQv``*Rc7M1p9wCekTCGfXJuz8Ft=moN|2vVnI09=;D40`kbl zyLF4tETKUhnto2X=eb{W{Au)>f=BrvLZly)rN8{C&~5zgwr>*NH+ALMaP?L;N#8C1 zM}FCltjN(jlUJORAZ~%I!v>czs>2Hhg#FThBzhCels!yNaKJ7*&=5DBv`F?=V?#O}XOj>Mjf^|qRHpM!+IQb% z3O*!h*~p~B$ZBUZ>X}Jf6L7mOzao0%f2BzM`8_-UDSzPitTOZ z(s8MpR08gbaB+}0uP3_B6Jl6Ht_yUJ_N1kgj=qcIL+(od(sT96RV7aD^zu)xnJ{bC ziRK3BcD=)>^K{;cCe>#bOW@Ew!c;pHVNZ_c)(4ik7sEk9dRYZBrE?4t|osmu``38&`)?iGfsgggzb{ngG#f zN%d>FSX>!v>_lbKz6mQMhQ|IaYyl{$3Bevt%hRZjoImU>c!dQ@4e+l%S`;9Be!TVjA?y#Oa1t^dDE?}KpYz!EBRk+7U z08y~yoR@#W_6ADUs%tH;q%erjz9pj)wt*@8&!u zheMc;dVGumAR=}IQUrv%R{URuv>VSqGGHiq$C=CTUAj!d9qq1sLa=l&#>*R#%0=q2 z&gUOv&5QE29C~r|97dZRh>f-fliyG-75s6hD-5Te4h*(P{=&N+6Zm)F*AI51=<=DQ zkRs0@%1c3pjg+_emv894Z|toF{vpgY==7#e_9s`ilu?L}9izqxdd)`56pw4sKpMDG z{QGUxcnrbUXD+H?}0Vl}f@CBfnMb%aly(N#ffd)O_tW!F>oEG@ZdpKVYYt}te;0+Er z8s^1WyC_p z+nkqvJ7aVX)7N@j{4_b=g6`*w^0j{oVO1)dXA@sK1P_pn06m^j2KTyx!usn(WW8}5$UA#H z5M}IlakNHZz!pmtpxyYX6A_@hzNP|8USnEYEjv6bNjCrmAJ;a_iVr;8q#T(DCCoBr zO2#kzYafX#HytiA_iKdrGV`{R^K6uS9C+<+1_!kkkZ%IoGEIkp!GGMxf$f5B+>nB5 z<~_hz=u3adWL~IZ4DX`0f!zi>>S%FGzU%E-^4~kXBS)(2i2wAefE1H7erxgTEMep$ zV45dnM6vr`ZIth0u<_&K($ZfS*&G+PnEBI1K!;T%uB(M5yNygtg?07XcR1c_=%E!l zIamKAa})|Bk8E$D{bEu7>?b%C{!IW^h@sVMd%j0_6pf5LN5menA@9w zCoxI4vAoy*TH^1ly(8xGfj%2>u9vLh`qYBd-vb_ZsJBE60pIr$=0iuf$oPy|;u#U> z0aW*&XWTv;~=_f{&LepyNr>^Tq0p9b01bsDl`?TBqOqU^F$W)P1ygQlQdWbL}fG^6xBx zpPe0gOFYeLw#1jZ0MI;jiq`1qFlDeqGZX{N!=y(6oY1OW0>vwnjzUu0tWKQqb%9n$ z9Vbw^Pqf|WqtA2NyB=Pdp&<=)Q}o9lTqfIJHBZ{f-2b$Et@RY10=b-|(TEIN_FWg% z@5!mQ>Grf0Fr>QG`0F6YeA9pSrWcoK+)grnEZ`3_BY&QY2A{3?XH@M&y}y3QTe*$k z%Twv*FbQr4B(wF0Ou^q3eEE7+XgQb3K(LVEPQCpJnI3NNJ@H_#5N@J{%8>O`!7;Us z%KV89Po8F80=nReeCpG{0=%{cA?ETg&*St(Y3W(a3u`;c642h(R(xA@uNb(UBuJg zC}X56ep?c7!S|CVy?y$M)9dv)J~vW-x^2Hs3TZH9X3_Nvv-;+Gz(juoi{WS06|=fN zd%WV-Iyz)Oo1K7=$+Cn^UlB#h=0VEyY{VENx!zMY&rl(wP3oH+$0Q6~!*@L?t$ zc@>%!H33Y(ulZhGZgvG(%l`tMT#yD&N^*DcM~lF4#qO4r$$^gf5ClNjTw)yfNDiKy zI7R`(Rqm*vgp>+xWMJid;5aZuQiQfGs$cs2tT>GZ9el|R04tv<=zs4Qp|z|X5v3If z8BZC4$y!MJz$}1&7a60oM&)3!n4uvk14Y(U%f#|4jr1 zdLX)k9r(4D7QxiQk4FUop*1qa3pqg4M{gBohP|jo!C9Iuuz$48m>S++AdAT@gQ|%xSSmtaaQ=^cPDA+Y1Wf$HQEbPOJ5ZJ!`@oL0CUa{BaU%!|Gu8A|I-gL-ax(^kuR?WN`ei#&N{>b zPA?Q*L}YVi!p}TLw!G@!cgEjAE1?^_)Uy*`ad&+5YubA;2rZOhbiB;DY>0Q(SV1-Y zarJjnN9%f9x*_ZxvEbU{_Y^T2a(4J_F#kRwg8v>Ludg?T%s&51jUpJGaKR{nz^~TI!e4D8bA}4;*zY7b;GLQ*GT6F5GCNp z?{K~LuQ-q(p5XV&k#wZd;5}&MzX@X|D7Cx~vHtW-`?>28Yx%eIkjD+Mu6K8MRu9OT~3> z%5Kq2yyfR9)%+tbi@Bza+C8Z5%k}s;;3SWcj~*z}UDOuzqyjeHb+_e=cFD_7d~8~Z z$Km3yFgucwI%D?fXQ@&@wwLc!k8XRoDEP@)>rQH#9ouU!%P#UTHWL#}MYXfc2{6;@ zHF3>FNhgTq*@TFZ+Q`wKmbC)>I&o{}%Ie@a)!}H;$H(dQ4oq`*b9zoc&bOrQm@jfh zYh)H-96+96=eQ0bms$5me%LF@h^0InNUK7zh!3r%93Cs81WtwMz=k7@J18V?d?uo$ z9uMAfRJWh%4h$cto(A6d75!I7=J_MUC0Elv{@@CerWrap1)c03p>STUUlK^=jjdH0 z-T62zl?Ls`=0im@OUM8NMqXS$&hN{ta=XmiReEN-B|>GMguK#0wwAAmkK||3=^%)$ ze(XMO5-=gN=fZC10GeCep32T1ioJku4uaAu6r-?jvHoSB|D-@!s5fEeFpymD7$5Z8 z{6#-7M8*WR4Iq|#4fZfgScPQdq1bK)Lu2G%bvNKz^1qsGz&4m659#-IEq~*6dEY-m zu*g}1%@&V@wV>LnwX~I_gyO|X7RsoM%Z?()t&8>mq0fC#t)5d!MAxrSp_$VKh`UUX z?c=>SGf92H#{ja(nbePxz5^VATz3z9U6vY@r)qLBT`aA*!eli6hLwtr>bj&pwuoEW zX<6jgbooeNLJx{rK|`O*%GTA?|7hFcIekV*)@|LJ*8;dewdrm^;oWYMaNMH4nGfSVZFLt!Lb~#pIMe zQ4`w50MO4MOp$C;Th~&Y**v9>M9uH?uG}+32vtB&3uo#>QQ`j?ThW{viQM(ZcPf(p zSD*Vv|6mwrB94bYt%mdA$0bKfPWOwbb1|}KdGAbtuW7hK4-x{45x8`W2^Y=F3G0hR z=o~b zb2Fyy@meBgaZIuz*;r%lX$!8>HP&Yzy_D{XpR+P>$sFb9tcAD1~pA3ul2YYFluj0>Dd1%N- z>5LK;9TKaI0rb*?U>9;m`+4ELpFf8zzRm&5ll=cA=M$rRqmPo-JLa1Yow+mIKmXR3 z>sFS-{BH|-EYEWvpODS}StRPUxD2Zq3|bn|qi^Qntes1d*TOCk%g&9;81dlUIIV-& znOVLBAlpmU7riN;T7l}}=snH4nf5YzA@jO1=gvX_m#zJSe}jGAwymLB4^uo5Y;_en zlp~$=O+|tZW@>jrmp)j&QS@YJFiefq6h}<=JTK)-)2OKUP(i{~qMv2&=xm#EpOR5H zES*Xv?7`L-sOO!)lavJ$NYO}Px-G092!wn0@@Gb?vyx?MkLEKVQuUN1d9}0c86(w~ zdYuGB1et{}HNgwUuuSqDzZewK44=mD(Ch2k&|cPYp#>)`9MIbGc;9Rj0>oia`r@F;;xXU*)H;ChZY)_4JJ@Ld_;q^ z8g_6$E4Xz_-=NkN|Db?meq)VoAXcXjGs&7)<_M#yML5V`Hjdq1c?R1L@78E4>rvR5 zhf4(Z#&;Yj@M-pwj3jDOaFhe`exDqaZp+3q6nJAA1OyX$^(zDrzewK!tc5SU57f>9 ziCnX!R(KS%AHSp_7A z?}Xma$Tnus@5tV~nZ|xu;}u)6=5^z(;dDt!kF9kfRL$6*5|$yKn%mFc&uOge0P$pj}hBYRF?8j)$yd`$A>2EjHJ3VO!RMEH4N;y^1T^Or!#OWtn4Ry4LJ0r z?6-c_FP?NSOy_ZyqW(2%>Cs#LjNhw1AA2b(G8OhRpv$4_tvB>A@H-s$g_^BGbO4tL zAANM78FR8uYrbCmM)`!!L3>Tq$ouH)E5=Dem)1AAPh3YLdfeTt9D@af#TdJtccw~* zdE{01pKxXqEf>U>GhF_o&Y}@(d^}-L`s_8k75!iP*>W*=z=2v`V7Mn|dY(1wmwuJX&e8ExO}&M1_@ zFZk}*FWM_8$h-~E2K_Ys@(Kx45~n79jHT(D`e0~cB_zW=4w7l{U&|MejAo3ERpRZM zyoVYq|4Vy3s5i*vYemg0RrHCyn|?m@bEFegEE1=Db&=B^39R;CNnso{SF7;9xLLhA zByegDk#by$5v9{~8Qb^t=Eh1EMKh3!jj2M3j{alJP3S!}TT>f3b;S9GZR_bN$7!hf zT6kC@dqj9n0=5gNG%&A*R&Kn^$RyU3?h7M7q?iv%Hh<|oTl({h6i~AIe81v`6y~)s z-z^@_J7+nGQQC2o9aITxY4kyAm0) zylHMDdRiSfVa*#b#g5<_RoFACSwLEBO73Be1J8ZNvG3NfufPVxRZeow@6504u#Pl@ zbTOAuKMG2Rf*T+8*l(u~ z^qwo9b88U7cOsf5N}x9vp62A1Ai?nBH%X9kpVeKbaz3>3Z;Esu$KzD{OyJvW-m_`F z-QmZuE$GLcoe}gW-*L5#3L&XHWqE(mR~m8O((m#3hFmb0eC(Pc1v0)qqSX=OKdKXk zP_TqubNK%$yG+GBj^8d3iEbGzj%z7n(wjMFjK7!I+?_{?Cf{n4)*x=hn7^egB0&yB zJ35NaYOGmXb2hvLWG^4l?FG{ex8$Np3~p~?tUZXQrw@N-!?)lH*3nNCoV~8*1w#kw zYnE@u>ykzse*>+xx?fdCz9SF4hm~#s$)%?L`@Ot6-oAWV;a6C<83BaUz&`xZA}X%3 zf{YVTuVis>-S(q;1ge=I%93QO{uk~YAAJ4JdQeaK4XmEqU=YXDk`seA%&+ZkKnjb! zmHAs9(Cqe)@HakY#=-6+7;d~BLL*9qTVXUy*tBcpi5CoT)^!CKvcDaR{%sz&&dNBm z{aDXRopM2ym>*GJ`{3z+MwMBGaNyDZAl3!KjQp`ZAAo)ET|hF#k#OchodaXB(20!Z zYL6;b6hjidmaZVR(zQHa^0FPH?qrysG8w@>(I!g4-B4CwI$pmgZ6Bo1dPDaXUDO$# z9{wv-t0de4+S;y%TvG1ug?R5PXc<{&vH-w?Ju3l zq#5Db>I1-dEhth2t5Y5-lggU}f}wu_;S409zHh1lP|e@Hp~bHuRUP;5b3%zI@ZSUV zZgBlJ+;vAIV8gf{h>AYO9ez0V&jA@%do5eFZ3FU1cT%%gPVw}w(A;EL8@%aI&wKJ) zGt`6ublo8$^VCVaezOS>9e|4z{1%~|Id4Es_+lJjpyB6o)VRM8)^1%(1lBc#P4KQY zq0ODV1P=quxGZ$p_#mvu(V!d|oomqoUBOO(8>IWA)F3cm04RUe7O&(;4R&&Zw(Gcc z-&A@|ZS*M>o47p2x==!tjXTTiRwj|vmMa|Ax5yuXk=o!x1p$ma>^M;(u?SYgG(c)gxm#hK&lI^Ez~ z7Hn6+eL1ZHNt;F-6u|#Qf+H!E`MvHYyZ6+kA0JZ=AH6m(WbZW_2mnG*l0wlb&@Bkx z^D&vNrEvIA3ADS#@R6a-5Jra2AQ}5q(B7=Kl)fZ!ZNxcA7dj8>YwH%S3C`spbF_rX zT0_V@yfGlcjU^00l3jyJLw^!w!m9ev^-G}cL}eS9%1r9ag;7wVlJL@`P&9X`4cRQ4 z6D5pvS#O7Fx?j9)d|Vvbf6L`TPiKMatvKV-AgL4H68NtpRJJdCMz&eM+v>rcS~5B7 zGm*?*rVn+O686lhNbB}TG^1Ji)Kjej4b;}*h@RAxyVx77>x$p2iQz>`%!CRP|3+eb z6Dris_eQrzoD~1NCiHN!HCb?wM=Cq^1K>yFU zePdwm!=-)dh^|xeqoc<&3iR|g5=3dpG=k>R2SjEPf|ZGwPxVyO4Bzrh_-?oR(K^GC z0{`_#MTdOwiQnyoCfHuS+=QcaeW#=tDxo_`pkdRLXLVK%1*1tqu-2r1p-4eHBY2Yc z3y3k03w4vGIvb%hfPNH=%R%u?@K3y7qPhIsU=P{*F6-Q2*QwujrOSC!P5pO-V8l1{ z_kkw1*(?YEU$5tF-R~*XO>WK!t>jwf1`o&9;eA7O-=;~RPjFCUIu@d99Io$4OO1f( zm*sW?QQ02Z*%4AzB8V_?aV71JHCo?4$$2ri-g~(gPo*!cy$7~`3$Mq3q-Z&+*IEk2 zo^~w-{;}&0U23IJ6im*B-?YunQPB|g$`CThmYOQahQFa8w6)w2)$Q1;|EPmeqeRlqTZeMpV_EF3Q37A8 zwVJ9NN*9Yng_b9O#!ALg%h> zFks?3HPUxr-Dz-frK9s}!XuN<;{d zuqL7L5AeH3(o}d}?oZhiMEo_0Tx=oltFr059pF}s_Zizlsa0U^jo`jB_i{#}xCMqN zJ1H@87THq8o>n%UmIB-!FY}Nn{eCOb7@XQvZrwJ1BZ>F2M8X`o?MKg4O~eoBRWWkkAyzUjq|cvK*boUhQ>YY9ARIc-Shzutr`|M!zq%x~oDK6xFI#v8#R z0(O`le95&56Wf9rBAij|HP*#y);+-Li@zcO*Zgt*>+dhOr$6Wzg;hD!lD69j>3B?( z{pS6d0ZKy8Q-IPw{?3_doB;liuy6;YAlx+*pa|8w00^zDbU!c!BNcV@E=U65JY%9N z2QAeuU^Nfa`qoG@AB4$!`l?a@xb=xEYsCzLpo(XNB-EgEl`^PdzOAEt4rpcn?KYrQ z*y&~C$9SJUV5S_Z%g?rt1fM{_!@p0=jkE&H4WmGx`hkQnen>Z-Lrvx|kT6sSc`RZn z5s^mq{?Dz#0I)?S`fzZtN7*cT?QX86i2V6?Kaehwdc06TI(J-gYlJfLGTt!T`5|`` zlOMw)a#nE_m9$F%y`17%(Q?_$1Lzwj1lvsculXL}8_tRE;hqvS$^I(8m|;f*QY&P{ zh?eSWRDZ8L;TC(l({Ufap3El{?B40KO*P6$7k(=EKwA5>t+JP(we^~^ytn}B^lyBp zsyz`>WI|7!p$ zl7kKttl8Lj`{(#`B1nWFX2`}gd4#0OYPgzgDY?0Y;Q4fQ)kZ0fMw)`{b+q}zW;&v= z?eV-kC0o$!uX#Xf_#G2}2_-iDG8t= zw4>c2As2k8B*xFmj}W^uCsAu5dk{|ze9x^<6ZKCm0Be+uCj+|3H06N!Qq@X(+erm`}!WV`Og{j%fU2RqO1QMF~LtqH1c~$*0*)==m={u+> zZ7we6+<9JFeEJ@YZwvMZ4N`#Tpn^&i_WjG~F5~$D(hU%|5OsmDM%7;tf`{D(>OHb+ zPX~Z2tcxhQKLoSjHOn4gZG1MGKl;Ah3_$A0&r?R!*p?-??I>Q9p1%1f0Tg!Tw1`&0S`|4Pf~$62uDFgUV2& zG>lROB8dJ%R99lj6NiFJ+;BQidRv$am|>6S->=a0jc7YI#QsIuo9VBp14%2RF+l^k zT1=o3V}3JiA7E+P%;g^HsJBj)(!?_%<;6CPbQERybAXDr9SQ(A;ZcwkV7b#ea@Zop zPB6|dQuSCy6KFw0sW1m};*Z;TXeSo8ZCX3ARr|39fj=s_yTnqYKR>){B(>#R{M(+c zn#U^Ni%Vv|?N}{igPtKE5kB8Dk%ZRB(7nNr)xKB*A4qDcgx($WJF)z?wXWF3eg9aP#E1_Ucry8cgMmM^ zxSspnI!0_)t`AE<+P;28c#7<&4{m7;x2+(~>(=JVlNwS|svcg9Fnk>Tjn>Lej=LY? zwUt{y(ziA5-Suq?PvI*Z7pFaakdoua+|m8*gO94x1YPc<{rYjZrltgSLn_Lpm5V-d zZJ~Nx22o8%R?+4ap;e|_Ta~&bCk9q}W>mz{kAl}NL?M=*1xZx#zVDduuz8E8l#f9$ zFmn{xLlCc#`9pq2-vz1yOi1`$6F0H!D{}jcsEsf8KemUQiJ!K=h@ZGW+f(AG`cNHr zK%l7O>Caz|u-siZ&Xjrwbvx8WW>v(n$%cVJtHe4ek^IM^)X^6G_J*{S2BTc2sm&Pu zA8c4(-u94<7;g9cVw{Skx7(saV)07EV>He zHveIC@D3>SoP_cj3%Rmry~puR!Wq}IsG`3>q*Sb6=$xmg2Uor8`=yvsfIvAK&sS2B zvo@T72Xa26K}$nhe;Z&k>rhG8GCSg<-GW~Nfs-kU7_+X^Ns$yK+;x&yhxx11&Z0CR zXEr~;*x8ytjK0>R(=wh->!PMFa6ZM2P^kd+6M{tvnwXegi?<09tXBm5~$N zIx#vCT7=YM9YC>m!4E^U!)5vxd9#6R5%}F0r;&}Q6U!g{wt~hr-zl1DQX1aXX^bhvj-VpF>0+E%E z52U*bg&zpN7sudUa36+qjR4P=P;+zNZy7LBQQA|H?xAONh}JsiXy~Vh^nfSVQ+LQ@ zuoqq0s~srq7Q@`Hr3o@{4r(Yrko zu>UivZ|6SoxSPs<{^uuYb(j5}J^Xo9>lON*i~m+O{gtTI{h@;d+t?g4x0y-y7>f;0 zzrm?{OGIhLn|0-8zhuHcdWdb@oUPa zgIl@Gec=yaNEZh^Bc?^)VA^+M>oxVk+2KdU)ziPC-s*L{L!iTd5nnCkvv}uM-A^)j zQ#<|bj!DSZ!E96)O6SI(K(qWSe|j=0E@a@w&2MG;POWM|{Yk;$NuS`|f%7->K#J?}@3)=GR;o zo!c5;u{xORO!5vg3iC(W=5_d(9l>uW_Y#EV)YiBRNb@exT^D~aEdTXhfg4soy=u4E zSpSvLQAeb~iXFDsI@UR_$vjFy$K-fo5n$14BQ`%_Kh{xKm7-JOeN}J5SVGq5kTsjf zote{F_Z@BgC3CqqSONohq-Hm;YAXuJ0H%RveKcM*n2hkXVM78A}O`Sao6K z8R!~S>olA6$>!xTp~btv^6+3m9a8{9wU=zl;bRvVlD|Q9#AHpP} z_fqIQnWFweb){Q@(>^+BSUp~I=o^Qa#v}VfC5G8{dM>S*2+#L5)mc=pH4eRmw0>mR z30J*v_4t-_(P?-Rofch_zydKCkS|cfDdy*#jk0Dw62kb_NT_o@O3?J(Y_T((+7GpQ z&(Z3!^0A8w%fer3!ZGKSt#~&WO)}#cV*4@r`^EO62M3{Qxvv7aay)pAd!*J+@xAHB z+(&QGp81|ecu#;nUsMy@6f*`Dsq4L;L3`NzIcXK#K9)iNO4pFV(V8D}RQ_$bIh600 z*loUwg!?t$#Rxa@ko3#(o?Ve8;Py$Zovltd{0u0rbN3)T@Gp+|`gGD}jhg z=irUS2^3KR?L(M`Zg_c!3w0<8GbadYFM!dYkv{C^=JpY2%le>9N5upI`|@+rJK2JO zvJtv()c37a45aNcK6eUHAejW82vS?rd1D;dPo%-To{3jr9E&tbo0QCA3hhA?2 zqSZ(&K_`8V*V{1F7*vijgq6`9U?*4D8|E(ay%7(L)X&C%0s?VeUsL223B4MN6N3z6 ziWXRl()NkSNOSqDSc!H!9<}j6X-%XIrbSWUO6d*BNX}nwGSnuw`pyNp1fKw_^TR;q zG}TQ&2XNfSnxV_0;eH$T2?lzgmFNckest}2AOb%i#>W%EaF)^W@u_|O{D0NIVSx=e zyxIwcl0CmHp3ap66sNq!zA$f{wfvq_Y(W*9i>3p^j)_V7g^U*8SC@OibTs>%Uy=XypWY|-YLNHxsO}Y!G}72=!IYNE!gC7W9g&N%lwitDT*!P=$lK*fc$Am`5SBH*JBx{dRgjC zM*h17Rc-F7l}ol%x*{)eaZas*kwu%`Nn&X|r&SW%dL+A5A~gME0W*el3hCh#lp7Bg z#`>@+DV`t1NtKr+08n%__TZMFkl=?G3Yo{pHUG}GhGyOFuZH6DU(5LY@s{X8KVHo& z_3DwiJy`cjCbE5Rx#p=ww6shzwTf*EK33(SkCJJrT$3>^h@9_Hui3>5h*o66*x^%> zQM1hE1!OB;QN^7|ggL7kX)g@xNfw*U>9FCqe^Um60cL{TA7nLirYCA$3(zs3`eLy- zqULHtJ?TN2X-4PK!|`s&5pZyDynl&QSBZH?$vZ1s|13D|yYh8c&H?x*^Snr)Z>Q6& z<4JIL2cbtdQ#_M+nts*XxSDKdob-^=a=7C9`CdCV=h{)`VJ^oKA|d|mjFK<@75g0( zjn_%!P%6ofBnkFKhC(=+k#>g8fhkWiIs2DXyKmmksa?#qMUDV29+}ehq4K5Md)tM_ zjH~ej^Vy!}{|HpZmhWB(>^2^kXUu7m(vZg5d6nIu@DhqyA_KKZj5+<;s0eogg2dw{6(LF zX^T5;hJl9xlBf;#`t(tJ*UG^a>66zaZQGO(bh3PT0vki{90xWgM9x)pY6$Eqjsqde zzXz&7zESf_fe{@YS?8j(9T_0N^cFNh4x(&z;Cm-E0Bi$*OSk}F*Xk?Lf>szvb?s=i zeEHnR4YmVp*H=XVzC7lD#!elm^J&1_k`U#^YmxL1coZ+gmnyggzzOA>eE;G=SkI_E z#q9*g+(a&qvx_t4EpNlJ5 zn%#5udT}=-gb_Q}pcN2ioNMeii+i}wTEapa4lZ@y(uxH7i{#x10-82QKfn8+imRCE zvbXl}G}13?YBY-HyPmG}W2Dw4doYNsBNP7naX^tsZ&9A`CA`?pMSxn;od+6NKJ7f= z7eG$BFgq<6gQGdB-=we98}{2^N_}pUzq?RaDxRrAH%WPx*FQ0Y?=^lShU4L2Pa1d! zy1+=N!}Fi)B9_SIz$CjjW~wWR4Y>?4D+|c#Ts3UmIn&mc&Xp1Tm|1{B%{RWKDpCzf zU>i)Ug&X;-ay!DtSGI-Un#Z`cx08yDYohHY5X+1yMNt2jO4 zD)1;f0L+J3qGIk+%Bm(RYrg2XlztqPFBPkkVQws7u}{Haa*|Dk(w?mocOhU}-2qb2 z1WkKMywA{t_t1p4JyA6J*U$an#L_R|3yJzY~%y=M(g^nOd zqzmJv;JOKiN@UkW>7@YxpvR)}Mplq>+s42c%RnggsL8R(*be($Cet&Hd1Z78?v1IKfCvBN#8c!PBoFUBp@hvLtKAG6Y1+`zKt~d7n<6jR84Q3 z1_~1)`aw;szU`w-i(TW5mmh8Q{lV-dHWvxQtsd_pqKm_aj`4Qi@$z{B!{)hz-S%?N z{=}$3dqyfnFgbED!&{t7is!rbITNS)$4L?2$Ww}4_l>ZZWF`)0j>PL5!x-t4+YDUY zuJ=Gdt(v)* z^qBw5*wg({ZW^P{i}pdj_<23TB* zbB{_*cD3P64L{%DaLD3gEPWb%V+x$$mzyv~JHz70#f?%?IrVd3*w#h1J2PyrE8R=l z$&8V@NN}erR3)w-eF2zyDWRGBFw!z3Js+RtLH(Bfg3Smups+!g3VsBwY4GVD!K+U0TIFWmqtNDK|cym zml>l(voAXtTbily5QE}bv{NVX70N<*D724R8YRH}Z*D@>9YzuV@qu}I9`ZH;T%)Ek zkc6)X*SGkaFha#sJ&MNlzlU8IU{^Zk1D|{l)SeK$e>3@S{x}tTH5%03bt54v6J^`R zBm%qt@wyM#z7+N?AD8QwE8qrj)K{ACCZmnw_;sUBm=jP5@BOf&qoaWX4`OGhY9;CC z3u&?d1n9KOB4)je_TtdsSuSPbYmsjarAFD7gTTq#&tCB>V%Zv9LeT5)&K1kfOG0RO zrXN6xyujBEZ(;0g4o0jg(Z*vON1wy}RiwvF66;{|=L()dSsyq$mC4Bn+F<1-oPY8- z;Z(Fm96j0;sHD)tjNXgXnaZ`xTFMo>TYT%7>TiWZetP?0vNQax@>%ri^8l%GIr?^% zZ{+kzP2CuiS#jY*9HK4y$!R{X&cA$*AhgDS5>%IL%7HBlH%w1&SlZ2CBQN^~o;g^H zB9G|ussD)&t?B&xIrYpySCPp$&Z1Z3U|x_vO>OoccLITCUUHE!&dGB1CZ*@wvKb9}gAv-@ZK1 zNxTaxFgm4LLx$t-Qhk;UIYU*ZpOZ6ZH-V=&MJU-4+dH9jy>9W)-(wUQt*4l>rQjm< zDl0v%3i#1iX((WY9>{sbz(5M6WR@X)(Yi>zVz|yo7hpnR=l)kY zf)0VxL2yofXH)_E1rTNPhCBvYvwQb4Th_(O{Pi+S7|_)3zVMyKI(|X%!+shwrokaW zK?%S4gtcL~Q!R+j^n5~SxUfK6_mgroE)Nuz4F38sY zRKby69LPsE)Fw$-NQl9C?q2*m@!$Ip_v{TLI>$q-zSF3v|8{$wQe!px^Y|qP2#K5P??^46c;CThWgeT`J9IU zuo0HLMD~Sk0w~BWSRn|sQIwLK^$hX+^8?2qYDc8JF?g1@1CYe#H}Y;1hjuHZ+lj*7 zD*S=+Xl?@tt;xadW^UcjHE8F2jZB_DANN;J16u~fd)w|sEk)n*dOxrPJt$2D`8{0} z`AfZuWnm~!p;&Q!^lUkCqR9%O1?_fDk6^VGE_-%D(r647Bq^Wf99hQ*r9;z59bhjO z7EFlk8eymUnpi@Gb{dWKMueJBKo(nxQr>j!HCTw@&T zm=aOym9vk8$lsqpWa7PK@1}Kh9;~FJ3xVY*l)Z?N%Kfe2F>?F^kN_%LFD@PUu>Fvv#&wS*HORSV z@s#ICqZ6`^E*1-1K#4Bgu#WmDDZ+IkW$+If^f^_d=u<%kbnaX6mLhQ6#F z9~p1&GAAzouzP=FOziCDZ8<`Dm`45o$dNw4%t;cK3m#BFYn5OJ*5y|931)-ZbnKFw zWYSd*wZp5)=+O+Vw#}kI4K-?D7c3!Tw*s*sRU&Dsj1j@WzSb5aIzdjFQ){omV;+OC zRsx@<7i_mQ!B*ov3!~yVFEFV@G-4B^W?WdBup=ZE(q!^n~Pvs~~gu4ayip#Bgk#-PKD+E$gUZKp-#Vm7EX`r)``ojO<4U93`9m39~viYy|+ zPkm*<554@4=5p2^B~iLUIhulkMPSA`FWq2}#_72iA@1EDG0|F6e#6%SAPW}EmnWZK zm!Jgbw@)Ypl;$hmVD7plljc(tV-{=UsS6BIJ{%!%gFOka8t#=aj%q^_Oi(M6@9O0! z=+ZMGI7RiBJAh!kiwN3XMvnqG+_3(A<{bd`^+m)}FDxy|#(%r%G>ESYpZb0CKL9a7 z&b|vV`{xDXO?dBq;wN69cy*xGFgm=mReSQ2zT*YEM-TtS`b=$_rlWZeEDd@vV!Z2d z1BfwX^2-Go$q#U(g?v%g!hMk?jJR(FozwCRMGc2=e&EYq%eaaeT{V-nZBM*4Hi-k0 z+LB0sArXd)F-bq?UXyZsv4~T=MP|im>#3GvkLB;9z1Q4p+#V*)9;eKCh8_JSMJCIa z{C7{NEX8W0)wF$YeSbLr|C3?wKmQq9owP*z6o0&8MHceTinllOzlC2*CA2qjzec|; zmdtUDxMEuEwCS;{`qh=dI^jf>!FuJqN-(Mv!&ahv+{>j{)Z)4`&ZbGnB~!6%Cf2d@ zDo!+NSRcS7kv$~16V6NVg|729Bf@(wypZ_f@Lr2B8yg!q`G}5(4jsY;=On%}5q^I3 z=rO2(nV&gx$^5d*uK3h7*IfI`E3Po)FPu7c2KnHnFMXNig9}+9dBKBm4!#hW zKk|`}i1PVN)NIx-8V>sp>2^D3r_=GP)%prn%Jf{X7ql^PL52VrfVWbw+44kGzAGh9 z6(^Af!8Y$oWVvyi1YW0z$4eAZ1sCAU%M??olmXtHRw_M^&3Y|NR4$xKWn!&Oq=2ui zq&)?kROr>!{jKFdH)DSn>32XX_{sqvc%^@h``t74ZwU3brUE}_Rp?YWb09YOU!A>QbQSV zCn?~dcCW9mTjiTT7$#y!6`TNAt-n=)_w#pmkN4F2HV|OIpz+wTlXiSHjqJQXxL%$E zXww3Ob?W5ts8q~Hop$r0;h^`>!Jv0;Z94fC%!DfZ?^_P&SPrm)Op9>OINCNZ=Y7bbA~SNI(R|8uZyQ9FPfcfS2`Lf&=LOmiK!C2jufU2LR?Lb3ir5 z0rVZ-F9%RyE`^pw9KZwc5C_0x%>mm<9PrnQ1DNa}Z_} zPhgdd;tE_K&UCwN@BZQ0b-M3J0EFk@e)LD57hT&cYoq3sy&-Pk96?7NSNVcJRu*{Q zw>%U1v$i6W8(s7ECoNp0tf<4!7cZZC9QI^`Ew`>}$Nzu1s?fA}&Mc_L^YlQE*3yE;J1Se6POC}c*B60QPqTbihD1Tc3i zq0wgluT`c}CjoD06TwR{owA+@z7PE0 z&4?hJzsK_bYY9t~EhYx=Nqz(Zuw@T0&w_Ynp-H9o^jZRAnvz1MSh>7AX7hGZj8nh~ zcnP4x_q7CI-&6~(m2m0oW(AL=fLCnkA*tVWJ316vO=O_Wfmmicxvxve=Y@kZEvb5Q z<(n3OG663s;9FbUYHi`t$~X3a-lYQWFCRO0{Px}5<3Fha@F`5mfN`a3YwOVyp78C_ z%U}MAh1hog+FzB-7e4>_=+Te5K00&yRFqmh5DkX|#R1c3wl>-A^*Ya0!S=h<`f{h! z{<`NEV3wB&g|UW!`BldO^tdQEfZylm%K?@Pvbi7!=wLc`9vr~4hUuWm<01}-3o_@& z0mMbTJ&R{T&x-?6$s7>M@JbFyt@@c%|8?o5I6(42$g5#hl)QT!u*j1pzyVy0TZRLC z53djh6g&>d2@arZaSkXZasbbK#*Gz;11fuR033Y|s9!J+kU|Uvy({j7)4MG^SH;|82$RM|GL+1b3d+M*vk1| z{^i$1-}61+9j#4aHKx`gs@kNR;DRw;-ySAEI)%d%j7hruFxMr1k zpRM?OkX|9bOR8o`uA1R{BEBz@uj79U|JhWEME-Q*-|m|>yZ6oEwOjOCZTU>r3pI6rmj6bdh} zF1_^9uU~P+6<<;3Upja0+^<}9)m2yCaKodcbLXy(V2bL~pMF#HlRx?2_tZK5-H9=A z9|2t@^QljLDtg8*oNVR%2l6EAVc?Yr!KytKDg%g6qdt1wQ~lo3V?l z;Hf|$F0-+qcJs%6&>jC-P@6-6JH3{SH=SCZ_TDE_w`EXn|36Fxr=uK?o=L~Yro$rT zniOyM*jK)D*#evPrOydu>9Gc980${pnzNfmnnFZJK0Yo@TKTA}KeOFvbd6gZj z!IJVMLq%@D$AfPwDIq z)PV4@JJsV)C?NjjQ>RXU=h?HDjv@OA?MRJAE4t~XXGTBuQ$Ou_U_nOjei7#G^8jT; z-~ayqtvKMO=;+bI(L)pmjtH!y&>r#T=O-~hnw{c-@dJh5O{2H(jXkiAh-Ehy&=HGL?IAfE0K_OLBnDijp{9v>ZST!&I7;!fcwA!a3l^mc5L@c zYJKeZ@e{8)efrFk&z`-cfAZv+Xmj&W)amr1AN;{*MXz|p&wCtjzYu@Vwz9tVHLr@E z`=if}wzm#O&3ZLbv46C&0pr6DU%Ioi_0lt^Pku-}cl&rW_}ZY~)zvcQ2qI0l)6#8C zUEqqwywg_qV-xlW)p@f~o2!3Qox5@9+&C0BphldL0uAwlG@`Z}UZ}p$nidb(Jk!dG zc37xVAb$=~k>>Uk?)#c$A`KU27A@UUs~6{s&}${f@atTZ303Cs>vlhpPKnnoTg{X9 z_{R!9tE)z23O}Zw+pB5_43_140FQ~MW39+$|D_+NV@Y`4;zQT{ePDc&D4CkOV?GwI zQ#{WTK_T<=kciGPoyR!RHh^P&$hRxW!)q@uuOtKYP^AlRF`{#7DIFQH-5KjnJpl$V zeq(dP!+(tZP0JBrK8Wss^HlKyi}nDgPoK8y$}6v&Kk8ABnm_*WkDovK(U1PRdd)vv zam5wCclFg*|Df6%9KZhh>mP94b=O5OxZ|dqzAt*=3t#B9S>6*O%sno~@Wspg-}~P8 zMlXKxi_n=qpUdKcOsNXWa|&?JDsX+~c-VWxaL{{yx6{6(3u6h}Ed{U;1k{WQu2w@U z;sCT7Y+*cV#RFQd^1&(<<2UXyDmXrd0EqzCsNlJTFJUaJ8gOg3D-&12LqOx&qNEC* zz5ptC{94NNoT5qC%BszH`jbDzqDr5IDtOwfzM=9+orztIz0N7%=|DDlu?p_YI&6Y1q_1B3o=xt14yomQ zgk0!5AzjURmXinIWVTI!%*ThyHX{zm(sWCfpUZwvUVccROe#1m0AF2pzK-Xhd{gNm z97*|xL%T-EMcH@BZ$mMZfS1uZq6><*(Sb zn)|(BE^P44Cs4t9>sx<6y5%J=iGJp1emZ*CLmv`V$|dB0@pxDqjRu#gK>G(27rbdO z=>3(#{?CIj538*LZNU9H2HJJa2Mqr`4uA~42}V2)D1|woxCaLm&XWU@R#NNJ-W-q- z8NJNDI3N-4Lo37qi2bR>9I!_wl>YzsBnQyB#@Xyr96+y;yy1HAm*s%`LJr{nUJ?hm z$9{amOUgq6qT~gh36;1Xnr@NI0WKj%CFe;Q(2%(<=K#(LAr2t%oid+vjd*}_0EzF! z0T7V$EGT3^6$gCsnrp84)5|Zv{DtbdvuDnnec*``CnGRuhtZ_Zde#p`uX)Wcd02J7 zH_Sb6_D+5acYOA<(XF?>KKg%t^>xvylgFZJwHyrw{b+0J;Dau`_^Oxr+Jck9_1K z=jYCy!y^bVk9fo*=2u^RHE_f~tN-_3sQ>q`tDk+G;*jcPmt7XA-$P+fHBvvT_~13s zCqD5B+miH+*b{t1OB7+F!=HQGAO2zV;upP01>_g2fV>zr>eZ;<>qLWIuckiWlPVbh z-pP3Qs?nhL2g5<{;{&6L_Y~-&BCY_KtKbb%!5j6M+9x-kQVn0EG*SRw6e@T=E30Ol zvaQdvo&qi_7qYpeviC(`;xeofH094pWj*A3lca)sn*dU<)90&zhgEP=zPSp{OCO{(DhXF^pgvTQum!^s0`4#xbv!m>N^K2HMUB!}~) z(sCJeC$$w3FcS!KP!1{IvfmR_ZuEKC*s%Sd*mAV3+l@BWbqKmC*ar0*L>F2LR6nnR z?*Db=l~?|M3VeU&?Af!ARN%a>o;#pks{-(i=;+ZS(L3My&gc*R;18mI`lo-g!66q6 z?qByzMpSaZTi){K=;j}N4srkl;jLC9>UP^vuh(t#`@PenVgDJ51AbBA{~swH_$1)} z(3GwN2f#w?Zx9DmTqe}(b*_4uA;|%~AWjP=zTe>U<$iP_! z!izY-zAkh3Ie@S}nFG>+%AIuV?@i(WdS1TA$sFLSR+C2E^3QG&2l)5HH;x1NJuatN zTnG+W6qFOr-;*2w*-tWGB;lPF;Xef93jgm=>wSs?e&gC}ul=dhr%yjZalo2-{-Nr% zk^28eS6p#L^saZk6DNOu;R|1|NyGa`R(}KAme?c`S|9x2Uqx?t!|z1Lc8`FcOw?{S zB8B(S&i0|qVYMSWymj!gS6^|-Eti}+_B&@z?Ecm9BinawZLG~_qyBt4?9Iph&V1Ny z%|~jFFzhtv{Z3=vZ8hetx>_J0f~eR~_ceH1)EZi(fp)uUU5hm8Sc5jaGF8s#mOT>k ztp!3s9n~sBYd4shLXr#wn!G;R$GL(QXbgAI0^Z;pVjn|gTqcVZHhFc#=b-u;&gn6U zJDIFb2vBQOg6~<5^oun}qpP;ld}?$q~}r zK%MZOj=a@~lC9ii7lalRT{aG)D06UQbAEVxXMPNXmm^2#M|KX+j~-UIzk6(c$>}rm zbC+K^fB4ncK!wZvh8u1`(FKmMuDRwKY(awkf!a6xtNQ&vtlrs}YV@r`ec{_-#X(i7(I$!eHycx8-K#NiL*8y_fN|L8|Q z65aT?$D%0H?X;ts3e4-Z%70YHoC?tUy>9#P#&mSkxZizwuif~QVXys}z5?5Bv!(#H zI`62}YE)7E29U)gso-$KDnPBN8<|vbP{HAPZCMpO4=OmFYt`F|GzDJ;&ohuM7{xos z6mPq-P9X=d&89O}{Z3NB<5|_5r-Fxp$zO%KBk53#sK0l=b z?K7uNqtOO6P`2kS5)wKvp57qVP zZEt&er$VeBk}j-~R1Kqf0M26SW#O6lH3)O4O*= zzE$x+zTIjJdcF3M_37xDlR@w22i?{?6bF0`H~{cJ#sT#(2f(qxGNG0O%6o8t4W@k# zu-6O32_~@4FUJ8n7FQ;)AxSii2Gt0@k6 z7;peA^;~r2l~-bQ_HDP_c0ULFI}+)E3%D@ziI0CAdHSUV$0`O}P_6sF^jH{wH z&Cucv6$$ElTq_ml75Hw#s9z(<5J!}ZfaAoPq9@Ss*K+P4j)*N1XYzULUy}<=5KO{5 z-HrpenYL|CbWID>8J5rlVLKlCXO|Fx=x6p4XuOIZR^gH{)j_e>h?Zd9dK3~`xTwAe z=NDBON|Bs!m{+p+;)yS�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 AEdT%j literal 0 HcmV?d00001 diff --git a/docs/img/wiki/feature/atragmx5.png b/docs/img/wiki/feature/atragmx5.png new file mode 100644 index 0000000000000000000000000000000000000000..6cba04cdd5b776e5a1c9ab13a4534577ec2bbcac GIT binary patch literal 611230 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

    =iwM9H7PPyL=HECwsN;Pia-rKLm^M^Wtt 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

    (w1RxBc2=P4C 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

    &Z6>JpW)NRe&rKWB_{tDa3+IW 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�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

    O1%n#;+U}v$3i>s|Dtyn1! z31_YGXTd|*XZw~)8lZ;A6?EC167MJ3wJQKoRHpBpA42wI@gg-ErKm&?8%}rmBqjGP z0k&m;A5Q11v$NCnCAnAxn*^OyG)_%rbCzLNBLk!_StesNJB*&HlPZ1a3x6-}jZ9l) zQXj79kv1#=)PgqQ%1@k<>uz>@=f;Y{?vO9}aVNS&=y{!J}m5WdFRSD)UQCsVB166EjH(meU zNLp4FVNp6OrjjuMzl8r~Fj>qhDfP_GK)9K}=nN1Q&Rw+Re>H?R{PuQRCe(F$lLZVN z6(u*SFpDWTq;WlHJ&sRe1S^zEl$;rrY!%X+y z8D4wmCG8Rot=$3Vr=&B5Wj{7*>bRQZm~TtVSZNj3hCO~c)d1M6GuA#Xc^lQX!g{xV z;$A~$k5=xI@`)%y3j`Tw#%OM=<6uKQJ-|P@p^MRSB*z=s?s~f9nA{|f(}#3TWXj9o zfid3Y44zV^<~fI6QrFb5G6<`Nw=Scw{J!lP{pVYfwJmnv*qk#_PHMBjMa?9xyrzHmCZLxK6kF5|>5-%rwS z7d49zH>>R9JuZKOFZm?ZLw)vyAHMc58+Ha!Xa4r=eS5VO6-s!BC+CTR_T)ZL{46q7YI>fm4%VEFsxqwIK3OG($(Pog0?w%s<|PAwh7dO|0^KR z0nc1HAho<=STEz4GTt`e2{)Q$!Oeu*+E#wa^F7x&!&Gtt zW+G%i#9w|)7Q6aDA`t`xaof2kK(sqeIpU0zU3(&G$|4hzHL7N!fk?mm441TFN zJ?CsBo7KJIz+djLEWn*A6xypao8xc@cPV#y>^^Z}*bB>qkbvyN&?e6lNw5tw*HG=lBGV5Bc~CO$D=p>_?Hs z8rN9<_v?(P9DKlOFOYa4BHTBh+?hx)C*M*I8`Z+lPdey@o0H#9gKM$G;j5j(MOFeq zPzXjpmVAU^*Mo8qYx`kh5ULE}!&zl0P7NC>5veXiCxC-45y?5t_W66iV2YXa#2@-W zv;3bMpB6;vUSW;8K=p8$gdC@Y%+_!$SS9g!A+jD<+XrJ0!-&v$0ZXt23~@eNtt_3c z+lUFa{7r8%VT$IU9Ox}6DM(#JYe%ONT!0RkQ7P*Xv;X5 z7;ay>Zd=E&^f%p!1 zz*;ZI1*FQNw!Vp3t^V!|_tLy|>T-izYX)k>m4V(aQ;J|46iyd43cX#;NqtV%`8$;k zt9*MEnI%%tmN??(i~g|OFSjacYqUAfEha=y%>yo5C(YA~FJr5DE^C`*>`~hX_au4( z#i=4EhKq_-OErXmRZaqi4XAf|91ckKo-4?urempQKd1TR{JEk%?W>yJ<7LzH)GSq% zfywJAzOWA27I0T?I!m>_m@TPV_Sjg&xc0_0z0E-|nD?$oAKO%&_YQIDLA*iqzI-uZ^nxy*hC= zX|9WUj8BDf1U5(&`5@so4m?w3FIH|+Xliz?VRL45q%2d=pO|@=sbsS(Mx*TUk3AYS zC>>r)o(ibenQ`f)%Sh~!s^n~H+>Wp`$rGI=DH2}+wclEZx#rlWm$7n`V&8&m7JXQ5 ziZWf`?DNPQGAIUn_18bThPpQN_5OB=R}&lUo|K4U))P}6+U4?&W_`+MV#*2;@c`ll z1)NK2ql10D5gz*&H&y$;{?bc9MVo>wKp%ZHx3wL}uj5=qJgQ`c!F$giJ z2>Df71;u+Y1PhP~nVbM-Rssk4)q?Qy8lTd{w+ihA7!D(po7B(n5DgvX5QcdowL}^+ z$WHgj`EmR+GLI4QJ<9e{+TT%3GKYMBH#Ac*F)=kZG#q;WENgB7S9En9;f{4uP4nG! zex2syVbrHucQ)?^v+|d>w~l``o`9}NrwD08VzN{=7jk{5DSq#Bo`XJBpdW2 z`-%ow#ZsSVk%O(6b~xm4>8I7PO~KN+#);nQ(;d)SR(_eeN4*=z{(v0bfYx7F9a&=y z#YL^QNUbk)tQfxa|GG`9uq=00OS1M(jku}b;Xd0$v>Zb3jXr)yv|O@Yi;A#m_>pHQ z^cn2aQJ9?I|NX%J-??&bjJs=OrzV?i9{qVzSbAvOdi=_JlM^U1ao>uHjMr|zx1v5 zxOeiAF4Zw>9T8WgQ;QcaZVDAL5a69dlgy-nxwx>ttc_-xZM%gl+1Azu@_aja z0RnU!Q2%#EIehTID~cgJ5ZdZh0&4a z6I>?paGnFq!Zd@qd05#fXabYwQ%M!iJf20jf<=~GDcO)c(Jcs2vQXiOteaLpmbE}!CKXg|o|RtH_W z-xn8JoW7>2EvceI*Bd&tLe#P}{?Pe5qxV&=vA!9v3ZFwul;G$!xS!!OeaP!;Dnh50 z&#!d?{9jKQ5S~(kXmp4;5Zmo?9*7(vof6oj8hnO!iXps5M|41Y-5j+^ z0H~<}?~MXdS67#zIip{6yf@ktx!fuz7J~h-#d(dBN372u+(^vd~Xs3;dc3of)vqe?IhrT$4D9ws2fFvAVD=J2#WPBu@L? zml_PR@yOI#de$h1I@OsrVp~2o>9sZM1z4-LrH3@GP_6Z)oNnrGd8Jb)VaHw-8=b}| zLP$$Rdy}lQiQ2%9{>W4lvbfi~Kx_;|(T;hyaPD|ZJg6BW@`Do3p z)aP%T<4vbW^FkkTSZFI1sTMPl!>V;XGOj4G{BCQbP3`S%^K)j9T06j!ac#m%rukm9bb1WAGCh6UoRsf^QBasKW!`5k3Zk= zd0aukRD$ceFXIqHXks+mPOh(?|Sl591GQ_`XQb>KF4^(5wKwZ6Ph!#MexUlA9ojI zqd{AB7kgLl2ZnxD%pcEnLL}PZA0OBAFMfi_EV?bVMQ6HXZT^J+f2sD`_bnXu%JTJ> z`}|z4u@2W~oL|ATi`#V*ob+f0WRb*6onD?@%2A>dNE`z^YQRq+t^-U=%jB_%oA(DL zDOWo4$;XijpG&QnKU3Sg;n*}$lVjH_y%uTUwf84?6-6)9OL7<=Lk z5kqAopB*HvKRkPoJ1YR`X(`Q(e}G*Stw(MG29x$@$X0YYDS?glG{Y>q+SxPTjfL4Y z`Dk99^1^OWQCdvkFbsW4ENLpynm?S(rdy)s$7Zd!Xk+YiE^3;H4ji1&oiI4AF)O*{ zf;2iiDSgX%Q26zb`IMFC|At0fDELTWloE{R z6&k;^M=YT-%hE&W&SG7MkbBib6p>OE^m2*>Xxus(nMFsYJ48A#AetZ|A;uoYkuhe8 zAczHi>pTyOuZKk&!>@343ZApUXz}lXz<@)GRw&2_`7Wz4QIfG@idY2^;c@yGAB8I5 zwBl@F0-@b6i<3oIdtSUOq7JEDY<-Hn!p3aI8GY6%L_rvWWK9eVyTrY29<$u%&L5c#m!WiCHNeCJSzZi0VHhC0lnQpdXCOJK11Ppkc#a0$z2gX7uSVCo{#4T&_;YGN_xi)n~cDotC(* zQCXW)6P9YH?bw~hv&}l(#Oq0JAEwAK|B>e4&wxFv@V-1D?1ZiYG=h`pEV?|xZv$^2 zt35`Y7Dp1>wf5AwF0b2M1Orujo$tS$okP(>9_E-v6cJ>~q}NYHrTdZY{=UJ-8h>bR zb;yLrkrvhPxzA>DPcsn&onFi~%$q+3n^2JmJZ0IyJK4{t+1{=P;+ejkm*tjz1y4=9 zhE3`oWXyhPxV?3rp5OT~VwN50aTzCd6sKP*{V)D;piCkzJt<8xdTrHAM^8uL!uQpd zqAAbIj?8wmJJ^8tx-zlV=Q`8;;C0%t4M_2M!~_I=>(bW-ZSR6zKKu0X8}ad!Jc>Pj zaZ3(FoqryV2By2^h~#T;jw+TV6D#LsE}x&DRE?D*|GB6rW8c!9R?W})W{5a9a0^t(sYZ}*Bc;JYEr`^fjW)KJq@0w}HDk>rr* zTfWN*+y?xdMjr=6#LVMj*GG95glCgiFi>CTf``uQ#Vf0L_6Xh&2Hx2g5qv4!6Yf0W;z%Xw*b3K)F)H5%nD?Ee|I+;>_A~^cYq3HdImAry zHE|c;Cb10@1+m};q!(Zrgeed%fs&8(aMY;=w}{>Fiv~;`orbzpa^q%UVR6m@;!++_ zvCH3NwbEV}O?6F8(avHZB!n!0G#SeHYR)>DV@|t-sHJWs5e%eONQ-~d>(ziP3J-zt zV7KrBw6#qM2#CR-@%z->Q^^|22{`&(3~3^2LuFg#B0@0f@EWW&xqslw!=D!~A=lQM z@_h41VqvCVpJgU61?#Rln1j-p(`QTqaZy7i_IBrvLW}T@*7>$d`WDwJ3QJQp>{sQ8 zxCA8lNc{udgq%}E9z4gHm??z(zDU748#{m+8Yw0`aZSyPsnWg#$H#xlyhKX5{1k#t zZrVRPqzm#wuQj%XpU6!Ph=acM(9`oYMAuuE=oCX$-93;a7rhYLMp8JFbdX7hkv@*h+hpS=aS zHEEbHNXVhK*uQyHG8dzBw+#1=0&y{|{xf7j-LpPON4*(|nQa7$;2VL(($394b5S2( zdv&xTaZt(mpcc4%da4J-M(384*@;H3^RHLF*3C@NvCjTb?2?vCN1gB8=GE!)BeGq2 zZcVA-dzjnnthKigIM`2D`soJwkO~zQrHH*jel>ij2?aJ$5B?sU2c^DIv@F*m>BLt- zZ6k|Jy37)sk+{Dov9I38&#wO*79yL0lncvGwZyOVhnt(unbefuhksOPFt3g#Eh;*i z28**%m3F&?i7m5_Gnt(Li5*rNFqyL=qOl{*OK{WuCRc^vmOnW$%ASPyC81sNS4~Y_ z90!T1ytysy1a~p==&7()Vxb$PFG|z?k}6T--l_@F>|LMT9^PJI-YRwL;0329EwS9F zV0CPnKO{$3-lhw^HucHssQfiPtacoFzO-)w%q@1Q0Nqd}PuIB73Ud*1{{?68U{Xjs zXN4fhotGmn6=SdK3k+LQb>KFM9*;0Ie~;6^_!rVn&GRu}I7JPlw{%lh&jfGf3Gch! z-O37}yT2IvWXeuV#F7>W_)Z+TZq~N=2W+MCn-cU3iJ%L9^vk8BB#mE?xM36ENQ4^- zDAe`1DxVl>{{(ED+)d25b9aC`3-{OTLzl^-mDfd)qA4KFzl@Xh83x1J&;2MfOuhl_ zq3teD8|DLn&T$?fQXWSYgw6IaxINFu=cn20)T({{?YAhi3d>^-^K;_vT3DC;6&c>? z7gAzETsEWX>9NVO?5+3j(()cOYgZizs}QE(Lt8#cjLuSnUR9aPT_2H4Tx^_)E5a}K`qsdvS}14co);H;BN-@hCLvL&gsh2lWtl_cA#Cx zM>9|j!Xxb@ciZVhB2lsk+AVSn+kUf`y^Jf%v~INVae9bP-`;3Ddk5li|8EC<8Gb-) z65{;rI~z%lbo{wzVA_3c0>bW?BdSgkr@uZUyVm>x3U1P}rZa~sj6(orzpvD)sst|6 zRNrY2B6ud>8Fj;bn&hH748&BVsyzoq8b{Vy&=|lA*r* z0Q;vBZg44Tv*Ym#>=f5q6Q()oT(~{gDcpUk((bTQPnBQl!U`M zKQ;JIW-LqW!t6ZYr`!NpTv1l)X^o-eNg%c%HycBm4xll!>rm=aGh^j$zMI@Z8TAIi zd=A-+4Ux3SKcx*gwWV}B|A8%{nbv~g=&U*uN+TawBNEtxO9`pu?))&vZb3Lm2pf&7 zcU2I&3-N{(Lc6jO?K-(Wt|3TnG}h1zxx%pQ3%Rz!;g!j^o~U{Ss@1=k{fk zUqrV>K;BheASEStf^91ld*l=yYWEDUa10ejR#Nh451)fY8$&2P0r6;@@fwqi1(m(` zTXJlO6g?9qvrc{S4(~>nFAWF8StN1^D=8xuy(k0vJw$X_@bB#PuMp9hZ8&&HkeXUa ze^|iQ+tHqKvvmCnzXC`5qu@oXnLIVl9)G|MX^1lZ!?($SvAK!1K7Rab?Q->OI1@Nv zZVBWxf{LAa?$D}>3wBUAI)8pesoN5%;`r|WhDuY_b~dLySOf-yu>7MVIRp%}U6 zosEzyM=LKRaS|m}r?mtnl~f;j82eM;tIj+Wr#waQxZN?ht~b5RATTiL7`t7fwFP0e zZvwS;c3_)=O*oPvQcbV07k5>Cra!P7M|{edVIrt029i^M!X#TefmP#cfHmQsFkC-v zu|a9t277d4+ccg!p7K+_6Xe=zDM0YIFD{LvwK}scnd(+xs84fcIW4RWWQEi+ZTP1> zE7mpPol1&Yr;6L8VRaU0;YG3txWY@Sk_bDh1T8G8TzBt}SF!j>LvuDN&jN!M~hrj9r(|l^{&hMie>cNH3T=iB2DE7p_f@OK8`Al`M4=Ly& z=Rv4=XVE$&JkKHVO*zL2{5%x0p*#6-+y(;d1Z|*PYc!lV4yKhx=a?oPpia># zL^4H1fsXhjRh5I+Dyx%6Dtf6U&KBlUO~qfufBm_18^a!$&x+#CX($yFlCo%B6`Z|$ zv6y@66Wq@HcDpe3Ss#{D*jZs#PzqfurkZ(`r7P$mhN6jSE>x8z8_>^ zWoZjO^-DtSbdg@#d)H87fby7#%NbXFVO=!>0`X%0As4~1$vS#|=}AABM(_NH74V29 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%0Dn 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

    jLe}a@5Wz%F+8d^%jO1aE^ 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 YfAop}FR7D{UjP6A07*qoM6N<$f<@ynT>t<8 literal 0 HcmV?d00001 diff --git a/docs/wiki/feature/atragmx.md b/docs/wiki/feature/atragmx.md index 5e1f8f9fdfa..0f63ec43606 100644 --- a/docs/wiki/feature/atragmx.md +++ b/docs/wiki/feature/atragmx.md @@ -73,7 +73,7 @@ Horus ATragMX software considers atmospheric conditions, gun data, ammunition, r **Start of the mission:** -- Select `Drag Coef Table` in the `Options` menu. +- Select `Drag Coef Table` in the `Options` menu. [[Manual]](https://horusvision.com/download/manual_Horus_ATrag-v385.pdf#page=14) - Add the `ZR` and the `C1` (`Gun` column) in the table and `Done`. **In position:** @@ -93,6 +93,8 @@ Horus ATragMX software considers atmospheric conditions, gun data, ammunition, r Interpolation +Extrapolation + ### 3.4 Example with overwritten zero distance - The `Default zero distance` can be overwritten with the [Scopes module]({{ site.baseurl }}/wiki/feature/scopes.html) or the [Settings Framework]({{ site.baseurl }}/wiki/framework/settings-framework.html). @@ -126,6 +128,10 @@ Horus ATragMX software considers atmospheric conditions, gun data, ammunition, r > Note: The ballistic coefficient can be calculated by using the [360 Degree Training Course mission](https://forums.bistudio.com/forums/topic/171228-sp-360-degree-training-course/) as a chronograph at different distances and [JBM Ballistics Calculators](http://www.jbmballistics.com/cgi-bin/jbmbcv-5.1.cgi) for example, an another ballistic software at your own convenience, or the [AtragMx Truing Tool](#33-example-with-truing-tool). +> Example direct conversion with 0.408 Cheytac 305 grains G7 BC 0.279 at 2000 meters 15°C: + +Conversion G7/G1 BC + ## 4. Official Manual and Horus Videos From f210f63bd96c3cdc703a3a6974f15c54ead6a6e0 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 8 Jul 2017 13:23:06 -0500 Subject: [PATCH 144/198] Fix broken fonts for map gps display (#5337) EtelkaNarrowMediumPro broke with 1.72 hotfix --- addons/maptools/MapGpsUI.hpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/addons/maptools/MapGpsUI.hpp b/addons/maptools/MapGpsUI.hpp index c5b230f1634..cd0a4184653 100644 --- a/addons/maptools/MapGpsUI.hpp +++ b/addons/maptools/MapGpsUI.hpp @@ -40,7 +40,8 @@ class RscTitles { colorBackground[] = {0,0,0,0}; colorText[] = {0.247,0.251,0.157,1}; shadowColo[] = {0,0,0,0}; - font = "EtelkaNarrowMediumPro"; + // EtelkaNarrowMediumPro broke with 1.72 hotfix, can revert back to that font if fixed (following 3 uses of PuristaSemibold) + font = "PuristaSemibold"; shadow = 0; sizeEx = 0.042; }; @@ -55,7 +56,7 @@ class RscTitles { colorBackground[] = {0,0,0,0}; colorText[] = {0.247,0.251,0.157,1}; shadowColo[] = {0,0,0,0}; - font = "EtelkaNarrowMediumPro"; + font = "PuristaSemibold"; shadow = 0; sizeEx = 0.042; }; @@ -70,7 +71,7 @@ class RscTitles { colorBackground[] = {0,0,0,0}; colorText[] = {0.247,0.251,0.157,1}; shadowColo[] = {0,0,0,0}; - font = "EtelkaNarrowMediumPro"; + font = "PuristaSemibold"; shadow = 0; sizeEx = 0.1; }; From cddc34e08a2deb55759fd685a1f041955c5cc63e Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 8 Jul 2017 13:23:28 -0500 Subject: [PATCH 145/198] Handle locked doors (#5345) --- addons/interaction/functions/fnc_openDoor.sqf | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/addons/interaction/functions/fnc_openDoor.sqf b/addons/interaction/functions/fnc_openDoor.sqf index 039974baa2f..7d94a5c4a15 100644 --- a/addons/interaction/functions/fnc_openDoor.sqf +++ b/addons/interaction/functions/fnc_openDoor.sqf @@ -19,20 +19,25 @@ private _info = [MACRO_DOOR_REACH_DISTANCE] call FUNC(getDoor); _info params ["_house", "_door"]; +TRACE_2("openDoor",_house,_door); if (isNull _house) exitWith {}; private _getDoorAnimations = [_house, _door] call FUNC(getDoorAnimations); -_getDoorAnimations params ["_animations", "_lockedVariable"]; +_getDoorAnimations params ["_animations"]; if (_animations isEqualTo []) exitWith {}; +private _lockedVariable = format ["bis_disabled_%1", _door]; + //Check if the door can be locked aka have locked variable, otherwhise cant lock it -if (!(isNil (_lockedVariable select 0))) then { - if ((_house animationPhase (_animations select 0) <= 0) && {_house getVariable [_lockedVariable select 0, 0] == 1}) exitWith { - _lockedVariable set [0, _house]; - _lockedVariable call BIS_fnc_LockedDoorOpen; +if ((_house animationPhase (_animations select 0) <= 0) && {_house getVariable [_lockedVariable, 0] == 1}) exitWith { + private _lockedAnimation = format ["%1_locked_source", _door]; + TRACE_3("locked",_house,_lockedAnimation,isClass (configfile >> "CfgVehicles" >> (typeOf _house) >> "AnimationSources" >> _lockedAnimation)); + if (isClass (configfile >> "CfgVehicles" >> (typeOf _house) >> "AnimationSources" >> _lockedAnimation)) then { + // from: a3\structures_f\scripts\fn_door.sqf: - wiggles the door handle (A3 buildings) + _house animateSource [_lockedAnimation, (1 - (_house animationSourcePhase _lockedAnimation))]; }; }; From cb911c91efac5bf0acadbc18db8e259e26ed4851 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 8 Jul 2017 14:01:05 -0500 Subject: [PATCH 146/198] Allow repairing from slingload pods (#5316) --- addons/repair/functions/fnc_isNearRepairVehicle.sqf | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/addons/repair/functions/fnc_isNearRepairVehicle.sqf b/addons/repair/functions/fnc_isNearRepairVehicle.sqf index 463e281faa5..b0bd4b3cd1b 100644 --- a/addons/repair/functions/fnc_isNearRepairVehicle.sqf +++ b/addons/repair/functions/fnc_isNearRepairVehicle.sqf @@ -18,11 +18,9 @@ params ["_unit"]; TRACE_1("params",_unit); -private ["_nearObjects", "_return"]; +private _nearObjects = nearestObjects [_unit, ["Air", "LandVehicle", "Slingload_base_F"], 20]; -_nearObjects = nearestObjects [_unit, ["Air","LandVehicle"], 20]; - -_return = false; +private _return = false; { if ([_x] call FUNC(isRepairVehicle)) exitWith {_return = true;}; } forEach _nearObjects; From 5c713fcc2a1e8c1eeadb1d89fb87cc1bfc09a49d Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 8 Jul 2017 14:01:15 -0500 Subject: [PATCH 147/198] Add cargo space to huron containers (#5315) --- addons/cargo/CfgVehicles.hpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/addons/cargo/CfgVehicles.hpp b/addons/cargo/CfgVehicles.hpp index 4a553cd0562..b8d5b30415b 100644 --- a/addons/cargo/CfgVehicles.hpp +++ b/addons/cargo/CfgVehicles.hpp @@ -355,10 +355,28 @@ class CfgVehicles { class CargoNet_01_base_F: Slingload_base_F { //Slingload pallets GVAR(size) = 6; }; - class Slingload_01_Base_F: Slingload_base_F { //Huron 20ft containers + + //Huron 20ft containers + class Slingload_01_Base_F: Slingload_base_F { GVAR(canLoad) = 0; GVAR(size) = -1; }; + class B_Slingload_01_Cargo_F: Slingload_01_Base_F { // Huron Cargo + GVAR(space) = 20; + GVAR(hasCargo) = 1; + }; + class B_Slingload_01_Ammo_F: Slingload_01_Base_F { // Huron Ammo + GVAR(space) = 8; + GVAR(hasCargo) = 1; + }; + class B_Slingload_01_Medevac_F: Slingload_01_Base_F { // Huron Medevac + GVAR(space) = 8; + GVAR(hasCargo) = 1; + }; + class B_Slingload_01_Repair_F: Slingload_01_Base_F { // Huron Repair + GVAR(space) = 12; + GVAR(hasCargo) = 1; + }; // Taru pods class Pod_Heli_Transport_04_base_F: Slingload_base_F { From 44830456046c87caa0cd7c0d4e2c93b5da9c23bc Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 9 Jul 2017 16:15:14 -0500 Subject: [PATCH 148/198] Rallypoints- Don't modify setVar if already set (#5347) --- addons/respawn/functions/fnc_handleInitPostServer.sqf | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/addons/respawn/functions/fnc_handleInitPostServer.sqf b/addons/respawn/functions/fnc_handleInitPostServer.sqf index e8f4f1d110c..107fbe444b9 100644 --- a/addons/respawn/functions/fnc_handleInitPostServer.sqf +++ b/addons/respawn/functions/fnc_handleInitPostServer.sqf @@ -39,7 +39,9 @@ _leaderVarName = _groupUnit getVariable [QGVAR(leaderVarName), ""]; if (_leaderVarName != "") exitWith { // assign JIP unit as rallypoint leader if (str _unit == _leaderVarName) then { - _unit setVariable ["ACE_canMoveRallypoint", true, true]; + if (isNil {_unit getVariable "ACE_canMoveRallypoint"}) then { + _unit setVariable ["ACE_canMoveRallypoint", true, true]; + }; }; }; @@ -61,4 +63,6 @@ if (_leaderVarName == "") then { // prevent group from getting multiple leaders; use this to assign rallypoint moving ability on JIP _groupUnit setVariable [QGVAR(leaderVarName), _leaderVarName]; -_unit setVariable ["ACE_canMoveRallypoint", true, true]; +if (isNil {_unit getVariable "ACE_canMoveRallypoint"}) then { + _unit setVariable ["ACE_canMoveRallypoint", true, true]; +}; From 16439f56402c0350b768df272204e2230ddcaa09 Mon Sep 17 00:00:00 2001 From: Christian Klemm Date: Mon, 10 Jul 2017 13:41:35 +0200 Subject: [PATCH 149/198] Add ability to abort module destination (#5284) * Add the ability to abort a module action via ace_zeus_fnc_getModuleDestination * Action can be aborted by pressing ESC * Current position is still passed to the code callback --- AUTHORS.txt | 1 + .../functions/fnc_getModuleDestination.sqf | 65 +++++++++++++++---- 2 files changed, 52 insertions(+), 14 deletions(-) diff --git a/AUTHORS.txt b/AUTHORS.txt index 43e1eeb21ec..a23275317f8 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -51,6 +51,7 @@ Brakoviejo Brisse Brostrom.A | Evul BullHorn +chris579 Clon1998 Codingboy Coren diff --git a/addons/zeus/functions/fnc_getModuleDestination.sqf b/addons/zeus/functions/fnc_getModuleDestination.sqf index d6a19d69b14..138d8342a52 100644 --- a/addons/zeus/functions/fnc_getModuleDestination.sqf +++ b/addons/zeus/functions/fnc_getModuleDestination.sqf @@ -5,10 +5,16 @@ * Arguments: * 0: The souce object * 1: Code to run when position is ready - * - Code is passed [0: Successful , 1: Object , 2: Position ASL ] - * 2: Text - * 3: Icon image file - * 4: Icon color + * - Code is passed + * 0: Successful + * 1: Object + * 2: Position ASL + * 3: State of Shift + * 4: State of Ctrl + * 5: State of Alt + * 2: Text (default: "") + * 3: Icon image file (default: "\a3\ui_f\data\IGUI\Cfg\Cursors\select_target_ca.paa") + * 4: Icon color (default: [1,0,0,1]) * * Return Value: * None @@ -23,17 +29,22 @@ params ["_object", "_code", ["_text", ""], ["_icon", "\a3\ui_f\data\IGUI\Cfg\Cursors\select_target_ca.paa"], ["_color", [1,0,0,1]]]; if (missionNamespace getVariable [QGVAR(moduleDestination_running), false]) exitWith { - [false, _object, [0,0,0]] call _code; + [false, _object, [0,0,0], false, false, false] call _code; ERROR("getModuleDestination already running"); }; GVAR(moduleDestination_running) = true; // Add mouse button eh for the zeus display (triggered from 2d or 3d) -GVAR(moduleDestination_displayEH) = [(findDisplay 312), "mouseButtonDown", { - params ["", "_mouseButton"]; +GVAR(moduleDestination_displayEHMouse) = [findDisplay 312, "mouseButtonDown", { + params ["", "_mouseButton", "", "", "_shift", "_ctrl", "_alt"]; + if (_mouseButton != 0) exitWith {}; // Only watch for LMB + TRACE_2("placed",_object,_mousePosASL); + _thisArgs params ["_object", "_code"]; + + // Get mouse position on 2D map or 3D world private _mousePosASL = if (ctrlShown ((findDisplay 312) displayCtrl 50)) then { private _pos2d = (((findDisplay 312) displayCtrl 50) ctrlMapScreenToWorld getMousePosition); _pos2d set [2, getTerrainHeightASL _pos2d]; @@ -41,12 +52,35 @@ GVAR(moduleDestination_displayEH) = [(findDisplay 312), "mouseButtonDown", { } else { AGLToASL (screenToWorld getMousePosition); }; - TRACE_2("placed",_object,_mousePosASL); - [true, _object, _mousePosASL] call _code; + + [true, _object, _mousePosASL, _shift, _ctrl, _alt] call _code; + GVAR(moduleDestination_running) = false; +}, [_object, _code]] call CBA_fnc_addBISEventHandler; + +// Add key eh for the zeus display (triggered from 2d or 3d) +GVAR(moduleDestination_displayEHKeyboard) = [findDisplay 312, "KeyDown", { + params ["", "_keyCode", "_shift", "_ctrl", "_alt"]; + + if (_keyCode != 1) exitWith {}; // Only watch for ESC + TRACE_2("aborted",_object,_mousePosASL); + + _thisArgs params ["_object", "_code"]; + + // Get mouse position on 2D map or 3D world + private _mousePosASL = if (ctrlShown ((findDisplay 312) displayCtrl 50)) then { + private _pos2d = (((findDisplay 312) displayCtrl 50) ctrlMapScreenToWorld getMousePosition); + _pos2d set [2, getTerrainHeightASL _pos2d]; + _pos2d + } else { + AGLToASL (screenToWorld getMousePosition); + }; + + [false, _object, _mousePosASL, _shift, _ctrl, _alt] call _code; GVAR(moduleDestination_running) = false; + true }, [_object, _code]] call CBA_fnc_addBISEventHandler; -// Add draw eh for the zeus map - draws the 2d icon and line +// Add draw EH for the zeus map - draws the 2D icon and line GVAR(moduleDestination_mapDrawEH) = [((findDisplay 312) displayCtrl 50), "draw", { params ["_mapCtrl"]; _thisArgs params ["_object", "_text", "_icon", "_color"]; @@ -56,12 +90,13 @@ GVAR(moduleDestination_mapDrawEH) = [((findDisplay 312) displayCtrl 50), "draw", _mapCtrl drawLine [getPos _object, _pos2d, _color]; }, [_object, _text, _icon, _color]] call CBA_fnc_addBISEventHandler; +// Add draw EH for 3D camera view - draws the 3D icon and line [{ (_this select 0) params ["_object", "_code", "_text", "_icon", "_color"]; if ((isNull _object) || {isNull findDisplay 312} || {!isNull findDisplay 49}) then { TRACE_3("null-exit",isNull _object,isNull findDisplay 312,isNull findDisplay 49); GVAR(moduleDestination_running) = false; - [false, _object, [0,0,0]] call _code; + [false, _object, [0,0,0], false, false, false] call _code; }; if (GVAR(moduleDestination_running)) then { // Draw the 3d icon and line @@ -69,11 +104,13 @@ GVAR(moduleDestination_mapDrawEH) = [((findDisplay 312) displayCtrl 50), "draw", drawIcon3D [_icon, _color, _mousePosAGL, 1.5, 1.5, 45, _text]; drawLine3D [_mousePosAGL, ASLtoAGL (getPosASL _object), _color];; } else { - TRACE_3("cleaning up",_this select 1, GVAR(moduleDestination_displayEH), GVAR(moduleDestination_mapDrawEH)); + TRACE_4("cleaning up",_this select 1,GVAR(moduleDestination_displayEHMouse),GVAR(moduleDestination_displayEHKeyboard),GVAR(moduleDestination_mapDrawEH)); (_this select 1) call CBA_fnc_removePerFrameHandler; - (findDisplay 312) displayRemoveEventHandler ["mouseButtonDown", GVAR(moduleDestination_displayEH)]; + (findDisplay 312) displayRemoveEventHandler ["mouseButtonDown", GVAR(moduleDestination_displayEHMouse)]; + (findDisplay 312) displayRemoveEventHandler ["KeyDown", GVAR(moduleDestination_displayEHKeyboard)]; ((findDisplay 312) displayCtrl 50) ctrlRemoveEventHandler ["draw", GVAR(moduleDestination_mapDrawEH)]; - GVAR(moduleDestination_displayEH) = nil; + GVAR(moduleDestination_displayEHMouse) = nil; + GVAR(moduleDestination_displayEHKeyboard) = nil; GVAR(moduleDestination_mapDrawEH) = nil; }; }, 0, [_object, _code, _text, _icon, _color]] call CBA_fnc_addPerFrameHandler; From bb8d5cadd7f919294f20aca1b0895c8595370b8a Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 14 Jun 2017 08:35:17 -0500 Subject: [PATCH 150/198] Cleanup heli pod actions (#5271) Close #4783 - Make taru pods non loadable - Make taru pods non draggable - Increase interaction range for huron pods --- addons/cargo/CfgVehicles.hpp | 51 ++++++++++++++++++------------ addons/dragging/CfgVehicles.hpp | 4 +++ addons/interaction/CfgVehicles.hpp | 9 +++++- 3 files changed, 43 insertions(+), 21 deletions(-) diff --git a/addons/cargo/CfgVehicles.hpp b/addons/cargo/CfgVehicles.hpp index 51821900163..4a553cd0562 100644 --- a/addons/cargo/CfgVehicles.hpp +++ b/addons/cargo/CfgVehicles.hpp @@ -327,26 +327,6 @@ class CfgVehicles { GVAR(canLoad) = 1; }; - // Taru pods - class Pod_Heli_Transport_04_base_F; - class Land_Pod_Heli_Transport_04_ammo_F: Pod_Heli_Transport_04_base_F { - GVAR(space) = 8; - GVAR(hasCargo) = 1; - }; - class Land_Pod_Heli_Transport_04_box_F: Pod_Heli_Transport_04_base_F { - GVAR(space) = 20; - GVAR(hasCargo) = 1; - }; - class Land_Pod_Heli_Transport_04_repair_F: Pod_Heli_Transport_04_base_F { - GVAR(space) = 12; - GVAR(hasCargo) = 1; - }; - class Pod_Heli_Transport_04_crewed_base_F; - class Land_Pod_Heli_Transport_04_medevac_F: Pod_Heli_Transport_04_crewed_base_F { - GVAR(space) = 8; - GVAR(hasCargo) = 1; - }; - class StaticMortar; class Mortar_01_base_F: StaticMortar { GVAR(size) = 2; // 1 = small, 2 = large @@ -377,6 +357,37 @@ class CfgVehicles { }; class Slingload_01_Base_F: Slingload_base_F { //Huron 20ft containers GVAR(canLoad) = 0; + GVAR(size) = -1; + }; + + // Taru pods + class Pod_Heli_Transport_04_base_F: Slingload_base_F { + GVAR(canLoad) = 0; + GVAR(size) = -1; + }; + class Land_Pod_Heli_Transport_04_ammo_F: Pod_Heli_Transport_04_base_F { + GVAR(space) = 8; + GVAR(hasCargo) = 1; + }; + class Land_Pod_Heli_Transport_04_box_F: Pod_Heli_Transport_04_base_F { + GVAR(space) = 20; + GVAR(hasCargo) = 1; + }; + class Land_Pod_Heli_Transport_04_repair_F: Pod_Heli_Transport_04_base_F { + GVAR(space) = 12; + GVAR(hasCargo) = 1; + }; + class Pod_Heli_Transport_04_crewed_base_F: StaticWeapon { + GVAR(canLoad) = 0; + GVAR(size) = -1; + }; + class Land_Pod_Heli_Transport_04_covered_F: Pod_Heli_Transport_04_crewed_base_F { + GVAR(space) = 8; + GVAR(hasCargo) = 1; + }; + class Land_Pod_Heli_Transport_04_medevac_F: Pod_Heli_Transport_04_crewed_base_F { + GVAR(space) = 8; + GVAR(hasCargo) = 1; }; //Plastic and metal case diff --git a/addons/dragging/CfgVehicles.hpp b/addons/dragging/CfgVehicles.hpp index c4c36cea847..f5d72fba505 100644 --- a/addons/dragging/CfgVehicles.hpp +++ b/addons/dragging/CfgVehicles.hpp @@ -67,6 +67,10 @@ class CfgVehicles { GVAR(canCarry) = 0; GVAR(canDrag) = 0; }; + class Pod_Heli_Transport_04_crewed_base_F: StaticWeapon { + GVAR(canCarry) = 0; + GVAR(canDrag) = 0; + }; class EAST_Box_Base: ReammoBox_F { GVAR(canCarry) = 1; diff --git a/addons/interaction/CfgVehicles.hpp b/addons/interaction/CfgVehicles.hpp index 5ee893e1012..f65303ac442 100644 --- a/addons/interaction/CfgVehicles.hpp +++ b/addons/interaction/CfgVehicles.hpp @@ -550,7 +550,7 @@ class CfgVehicles { class ACE_OpenBox { displayName = CSTRING(OpenBox); - condition = QUOTE(alive _target); + condition = QUOTE((alive _target) && {(getNumber (configFile >> 'CfgVehicles' >> (typeOf _target) >> 'disableInventory')) == 0}); statement = QUOTE(_player action [ARR_2(QUOTE(QUOTE(Gear)), _target)]); showDisabled = 0; priority = -1; @@ -561,6 +561,13 @@ class CfgVehicles { class ACE_SelfActions {}; }; class Slingload_base_F: ReammoBox_F {}; + class Slingload_01_Base_F: Slingload_base_F { + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + distance = 5; + }; + }; + }; class Pod_Heli_Transport_04_base_F: Slingload_base_F { class ACE_Actions: ACE_Actions { class ACE_MainActions: ACE_MainActions { From af0f7f36d88a08856fc6c15dbc51da71e304feb5 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 14 Jun 2017 08:36:23 -0500 Subject: [PATCH 151/198] Make array of cargo holders dynamic (#5274) --- addons/cargo/XEH_preInit.sqf | 1 + addons/cargo/functions/fnc_addCargoVehiclesActions.sqf | 2 +- addons/cargo/functions/fnc_initObject.sqf | 2 +- addons/cargo/functions/fnc_initVehicle.sqf | 10 ++++++++++ addons/cargo/functions/fnc_startLoadIn.sqf | 2 +- addons/cargo/script_component.hpp | 2 -- 6 files changed, 14 insertions(+), 5 deletions(-) diff --git a/addons/cargo/XEH_preInit.sqf b/addons/cargo/XEH_preInit.sqf index 7784968d3f6..5ee6406a7d6 100644 --- a/addons/cargo/XEH_preInit.sqf +++ b/addons/cargo/XEH_preInit.sqf @@ -8,5 +8,6 @@ PREP_RECOMPILE_END; GVAR(initializedItemClasses) = []; GVAR(initializedVehicleClasses) = []; +GVAR(cargoHolderTypes) = ["Car", "Air", "Tank", "Ship", "Cargo_base_F", "Land_PaperBox_closed_F"]; ADDON = true; diff --git a/addons/cargo/functions/fnc_addCargoVehiclesActions.sqf b/addons/cargo/functions/fnc_addCargoVehiclesActions.sqf index aeace6960b3..176b2f31b6f 100644 --- a/addons/cargo/functions/fnc_addCargoVehiclesActions.sqf +++ b/addons/cargo/functions/fnc_addCargoVehiclesActions.sqf @@ -40,6 +40,6 @@ private _actions = []; private _action = [format ["%1", _x], _name, _icon, _statement, {true}, {}, [_x]] call EFUNC(interact_menu,createAction); _actions pushBack [_action, [], _target]; }; -} forEach (nearestObjects [_player, CARGO_VEHICLE_CLASSES, MAX_LOAD_DISTANCE]); +} forEach (nearestObjects [_player, GVAR(cargoHolderTypes), MAX_LOAD_DISTANCE]); _actions diff --git a/addons/cargo/functions/fnc_initObject.sqf b/addons/cargo/functions/fnc_initObject.sqf index 3ab2061b0d0..d2ce8e5b58a 100644 --- a/addons/cargo/functions/fnc_initObject.sqf +++ b/addons/cargo/functions/fnc_initObject.sqf @@ -56,7 +56,7 @@ private _condition = { private _hasCargoPublic = _x getVariable [QGVAR(hasCargo), false]; private _hasCargoConfig = getNumber (configFile >> "CfgVehicles" >> _type >> QGVAR(hasCargo)) == 1; (_hasCargoPublic || _hasCargoConfig) && {_x != _target} - } count (nearestObjects [_player, CARGO_VEHICLE_CLASSES, MAX_LOAD_DISTANCE])} + } count (nearestObjects [_player, GVAR(cargoHolderTypes), MAX_LOAD_DISTANCE])} }; private _statement = { params ["_target", "_player"]; diff --git a/addons/cargo/functions/fnc_initVehicle.sqf b/addons/cargo/functions/fnc_initVehicle.sqf index f27f289ad5a..6d3709a3292 100644 --- a/addons/cargo/functions/fnc_initVehicle.sqf +++ b/addons/cargo/functions/fnc_initVehicle.sqf @@ -27,6 +27,16 @@ private _hasCargoConfig = getNumber (configFile >> "CfgVehicles" >> _type >> QGV // Nothing to do here if vehicle has no cargo space if !(_hasCargoConfig || _hasCargoPublic) exitWith {}; +// Check if cargo is in cargo holder types (checked when trying to search for loadable objects) +private _addCargoType = true; +{ + if (_type isKindOf _x) exitWith {_addCargoType = false}; +} forEach GVAR(cargoHolderTypes); +TRACE_2("",_addCargoType,_type); +if (_addCargoType) then { + GVAR(cargoHolderTypes) pushBack _type; +}; + // Vehicle can have default ace cargo in its config if (isServer) then { { diff --git a/addons/cargo/functions/fnc_startLoadIn.sqf b/addons/cargo/functions/fnc_startLoadIn.sqf index 0116a34a739..4fa0401772d 100644 --- a/addons/cargo/functions/fnc_startLoadIn.sqf +++ b/addons/cargo/functions/fnc_startLoadIn.sqf @@ -24,7 +24,7 @@ private _vehicle = _cargoVehicle; if (isNull _vehicle) then { { if ([_object, _x] call FUNC(canLoadItemIn)) exitWith {_vehicle = _x}; - } forEach (nearestObjects [_player, CARGO_VEHICLE_CLASSES, MAX_LOAD_DISTANCE]); + } forEach (nearestObjects [_player, GVAR(cargoHolderTypes), MAX_LOAD_DISTANCE]); }; if (isNull _vehicle) exitWith { diff --git a/addons/cargo/script_component.hpp b/addons/cargo/script_component.hpp index 885308a3b9d..3ae6331f919 100644 --- a/addons/cargo/script_component.hpp +++ b/addons/cargo/script_component.hpp @@ -18,8 +18,6 @@ #define MAX_LOAD_DISTANCE 10 -#define CARGO_VEHICLE_CLASSES ["Car", "Air", "Tank", "Ship", "Cargo_base_F", "Land_PaperBox_closed_F"] - #define GET_NUMBER(config,default) (if (isNumber (config)) then {getNumber (config)} else {default}) // Default cargo size is -1 as 0 is a valid size From d0a28b956e90e5398147ecb18f78afa516445c0a Mon Sep 17 00:00:00 2001 From: Laid3acK Date: Wed, 14 Jun 2017 06:15:34 +0200 Subject: [PATCH 152/198] gos ndjenahoud latitude (#5275) --- addons/common/functions/fnc_getMapData.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/common/functions/fnc_getMapData.sqf b/addons/common/functions/fnc_getMapData.sqf index decc9cf3d0b..33f3e09d83f 100644 --- a/addons/common/functions/fnc_getMapData.sqf +++ b/addons/common/functions/fnc_getMapData.sqf @@ -98,6 +98,7 @@ if (_map in ["pja308"]) exitWith { [36, 0] }; // G.O.S Gunkizli if (_map in ["pja310"]) exitWith { [36, 0] }; // G.O.S Al Rayak if (_map in ["pja312"]) exitWith { [16, 0] }; // G.O.S Song Bin Tanh if (_map in ["pja314"]) exitWith { [46, 0] }; // G.O.S Leskovets +if (_map in ["pja319"]) exitWith { [20, 0] }; // G.O.S N'Djenahoud, Ennedi Massif (Republic of Chad) if (_map in ["plr_bulge"]) exitWith { [49, 0] }; // I44: Battle of the Bulge if (_map in ["porquerolles"]) exitWith { [43, 0] }; if (_map in ["porto"]) exitWith { [40, 0] }; From 483b41b7171f447f6e8d64b7c9cd9be0c8a323b8 Mon Sep 17 00:00:00 2001 From: classic Date: Wed, 14 Jun 2017 12:00:38 +0900 Subject: [PATCH 153/198] Jpn translate 73bd37 (#5277) * Update the Jpn translation for cargo Update the Japanese translation for cargo * Add the Jpn translation for hellfire Add the Japanese translation for hellfire * Add the Jpn translation for nlaw Add the Japanese translation for nlaw * Add the Jpn translation for rearm Add the Japanese translation for rearm * Update the Jpn translation for refuel Update the Japanese translation for refuel * Update the Jpn translation for repair Update the Japanese translation for repair * Update the Jpn translation for zeus Update the Japanese translation for zeus --- addons/cargo/stringtable.xml | 6 +++++- addons/hellfire/stringtable.xml | 5 +++-- addons/nlaw/stringtable.xml | 5 ++++- addons/rearm/stringtable.xml | 14 ++++++++++++-- addons/refuel/stringtable.xml | 1 + addons/repair/stringtable.xml | 1 + addons/zeus/stringtable.xml | 3 +++ 7 files changed, 29 insertions(+), 6 deletions(-) diff --git a/addons/cargo/stringtable.xml b/addons/cargo/stringtable.xml index f506f705e9e..4c7b547fb45 100644 --- a/addons/cargo/stringtable.xml +++ b/addons/cargo/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -240,18 +240,22 @@ Cargo Space Spazio Cargo + カーゴ スペース The cargo space available in this vehicle/container Lo spazio disponibile in questo veicolo/container + この車両/コンテナでカーゴ スペースを使えるようにします Cargo Size Dimensioni Cargo + カーゴ サイズ The cargo space required to hold this object (-1 for unloadable) Lo spazio del cargo necessita di mantenere questo oggetto (-1 per scaricabile) + このオブジェクトを積載するのに必要なカーゴ スペース (-1 で積載不可) Airdrop diff --git a/addons/hellfire/stringtable.xml b/addons/hellfire/stringtable.xml index c75a5481729..fd46f2a471a 100644 --- a/addons/hellfire/stringtable.xml +++ b/addons/hellfire/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -12,11 +12,12 @@ Hellfire Hellfire Hellfire - Hellfire + ヘルファイア Set Hellfire mode Imposta modalità Hellfire + ヘルファイア モードを設定 diff --git a/addons/nlaw/stringtable.xml b/addons/nlaw/stringtable.xml index e46e1aafb04..fb738e677f0 100644 --- a/addons/nlaw/stringtable.xml +++ b/addons/nlaw/stringtable.xml @@ -1,17 +1,20 @@ - + NLAW Track Target (Hold) NLAW Traccia Bersaglio (Mantieni) + NALW 目標の追跡 (押しっぱ) Direct Attack Attacco Diretto + ダイレクト アタック Overfly Top Attack Attacco dall'alto + オーバーフライ トップ アタック diff --git a/addons/rearm/stringtable.xml b/addons/rearm/stringtable.xml index 7446caa3042..3dd201f567a 100644 --- a/addons/rearm/stringtable.xml +++ b/addons/rearm/stringtable.xml @@ -37,7 +37,7 @@ Ammontare Riarmo Velocidad de rearme Quantité à réarmer - 再武装の度合い + 再武装できる量 재보급 양 @@ -89,58 +89,68 @@ Ammontare basato sul calibro Cantidad basada en el calibre Quantité basée sur le calibre - 口径に基づいた度合い + 口径に基づいた量 구경에 따라 수량 설정 Ammunition supply Munitionsvorat Scorta munizioni + 弾薬の供給 How much ammunition does an ammo truck carry? Wie viel Munition transportiert ein Munitionslaster? Quante munizioni può trasportare un camion? + 弾薬トラックがどの位の弾薬を供給できるようにしますか? Unlimited ammo supply Unbegrenzter Munitionsvorat Scorta munizioni infinita + 無制限供給 Limited ammo supply based on caliber Begrenzter, kaliberabhängiger Munitionsvorat Scorta munizioni limitata in base al calibro + 口径に基づいた限定的供給 Only specific Magazines Nur bestimmte Magazine Solo specifici caricatori + 特定の弾薬のみ Check remaining ammunition Verbleibende Munition prüfen Controlla munizioni rimanenti + 残弾薬を確認 Checking remaining ammunition... Überprüfe verbleibende Munition... Controllando le munizioni rimanenti + 残弾薬を確認しています・・・ There is ammunition worth %1 points left. Es ist noch Munition für %1 Punkte übrig. E' presente una penalità delle munizioni %1 punti rimanenti. + この弾薬は%1残っている The following ammunition is left:%1 Folgende Munition ist übrig:%1 Mancano le seguenti:%1 + この弾薬の残りは:%1 There is no ammunition left. Es ist keine Munition übrig. Non ci sono munizioni rimanenti. + 弾薬は残っていません。 Rearm diff --git a/addons/refuel/stringtable.xml b/addons/refuel/stringtable.xml index e467ffeb164..17ffa4d0cad 100644 --- a/addons/refuel/stringtable.xml +++ b/addons/refuel/stringtable.xml @@ -409,6 +409,7 @@ Betankung Schlauchlänge Reabastecer longitud de manguera Rifiuta lungezza tubo + 給油ホースの長さ diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index 24b4845d62d..d956fd8feb9 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -957,6 +957,7 @@ Advanced Engineer only Solo Geniere avanzato + 上級工兵のみ Allow Wheel diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index 7ef7305b335..a4e0e9fb47d 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -866,16 +866,19 @@ Suppressive Fire Fuoco di Soppressione Tir de suppression + 制圧射撃 Add full arsenal to object Ajouter arsenal complet à l'objet Aggiunge arsenale completo all'oggetto + オブジェクトに完全なアーセナルを追加 Remove arsenal from object Retirer arsenal de l'objet Rimuove arsenale completo dall'oggetto + オブジェクトからアーセナルを削除 From 153fc975f50f2af696b10cbcd917061a4ac7312d Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 22 Jun 2017 22:58:57 -0500 Subject: [PATCH 154/198] Refuel - change nozzle position calc (#5279) --- .../functions/fnc_addLineToDebugDraw.sqf | 2 +- addons/refuel/functions/fnc_checkFuel.sqf | 2 +- addons/refuel/functions/fnc_connectNozzle.sqf | 3 +- .../functions/fnc_connectNozzleAction.sqf | 77 +++++++++---------- .../refuel/functions/fnc_readFuelCounter.sqf | 2 +- addons/refuel/functions/fnc_returnNozzle.sqf | 2 +- addons/refuel/functions/fnc_takeNozzle.sqf | 4 +- addons/refuel/functions/fnc_turnOff.sqf | 2 +- addons/refuel/functions/fnc_turnOn.sqf | 2 +- addons/refuel/script_component.hpp | 7 ++ 10 files changed, 52 insertions(+), 51 deletions(-) diff --git a/addons/common/functions/fnc_addLineToDebugDraw.sqf b/addons/common/functions/fnc_addLineToDebugDraw.sqf index 5fca9d68c1d..46f015c5e01 100644 --- a/addons/common/functions/fnc_addLineToDebugDraw.sqf +++ b/addons/common/functions/fnc_addLineToDebugDraw.sqf @@ -11,7 +11,7 @@ * None * * Example: - * [[0,0,0], [1,1,0], [1,0,0,1]]] call ace_common_fnc_addLineToDebugDraw; + * [[0,0,0], [1,1,0], [1,0,0,1]] call ace_common_fnc_addLineToDebugDraw; * * Public: No */ diff --git a/addons/refuel/functions/fnc_checkFuel.sqf b/addons/refuel/functions/fnc_checkFuel.sqf index 8acecccfd64..081f3447326 100644 --- a/addons/refuel/functions/fnc_checkFuel.sqf +++ b/addons/refuel/functions/fnc_checkFuel.sqf @@ -21,7 +21,7 @@ params [["_unit", objNull, [objNull]], ["_target", objNull, [objNull]]]; private _fuel = [_target] call FUNC(getFuel); [ - REFUEL_PROGRESS_DURATION * 2.5, + TIME_PROGRESSBAR(REFUEL_PROGRESS_DURATION * 2), [_unit, _target, _fuel], { params ["_args"]; diff --git a/addons/refuel/functions/fnc_connectNozzle.sqf b/addons/refuel/functions/fnc_connectNozzle.sqf index a124a331d5d..807960977eb 100644 --- a/addons/refuel/functions/fnc_connectNozzle.sqf +++ b/addons/refuel/functions/fnc_connectNozzle.sqf @@ -41,7 +41,6 @@ private _actionID = _unit addAction [format ["%1", locali if (cameraView == "EXTERNAL") then { _virtualPosASL = _virtualPosASL vectorAdd ((positionCameraToWorld [0.3,0,0]) vectorDiff (positionCameraToWorld [0,0,0])); }; - private _virtualPos = _virtualPosASL call EFUNC(common,ASLToPosition); private _lineInterection = lineIntersects [eyePos ace_player, _virtualPosASL, ace_player]; //Don't allow placing in a bad position: @@ -57,7 +56,7 @@ private _actionID = _unit addAction [format ["%1", locali _unit removeAction _actionID; if (GVAR(placeAction) == PLACE_APPROVE) then { - [_unit, _target, _virtualPos, _nozzle] call FUNC(ConnectNozzleAction); + [_unit, _target, _virtualPosASL, _nozzle] call FUNC(ConnectNozzleAction); }; }; // TODO add model like in attach/functions/fnc_attach }, 0, [_unit, _target, _nozzle, _actionID] ] call cba_fnc_addPerFrameHandler; diff --git a/addons/refuel/functions/fnc_connectNozzleAction.sqf b/addons/refuel/functions/fnc_connectNozzleAction.sqf index b1328636725..31ebe1bfdc4 100644 --- a/addons/refuel/functions/fnc_connectNozzleAction.sqf +++ b/addons/refuel/functions/fnc_connectNozzleAction.sqf @@ -6,7 +6,7 @@ * Arguments: * 0: Unit * 1: Target - * 2: Visual Position + * 2: Visual Position ASL * 3: Nozzle * * Return Value: @@ -20,60 +20,55 @@ #include "script_component.hpp" private ["_closeInDistance", "_endPosTestOffset"]; -params [["_unit", objNull, [objNull]], ["_target", objNull, [objNull]], ["_startingPosition", [0,0,0], [[]], 3], ["_nozzle", objNull, [objNull]]]; -private _startingOffset = _target worldToModel _startingPosition; +params [["_unit", objNull, [objNull]], ["_target", objNull, [objNull]], ["_startingPosASL", [0,0,0], [[]], 3], ["_nozzle", objNull, [objNull]]]; -private _startDistanceFromCenter = vectorMagnitude _startingOffset; -private _closeInUnitVector = vectorNormalized (_startingOffset vectorFromTo [0,0,0]); -private _closeInMax = _startDistanceFromCenter; -private _closeInMin = 0; +private _bestPosASL = []; +private _bestPosDistance = 1e99; +private _viewPos = _startingPosASL vectorAdd (((positionCameraToWorld [0,0,0]) vectorFromTo (positionCameraToWorld [0,0,1])) vectorMultiply 3); +private _modelVector = _startingPosASL vectorFromTo (AGLtoASL (_target modelToWorld [0,0,0])); +private _modelVectorLow = _startingPosASL vectorFromTo (AGLtoASL (_target modelToWorld [0,0,-1])); -while {(_closeInMax - _closeInMin) > 0.01} do { - _closeInDistance = (_closeInMax + _closeInMin) / 2; - _endPosTestOffset = _startingOffset vectorAdd (_closeInUnitVector vectorMultiply _closeInDistance); - _endPosTestOffset set [2, (_startingOffset select 2)]; - private _endPosTest = _target modelToWorldVisual _endPosTestOffset; - - private _doesIntersect = false; +{ + private _endPosASL = _x; + // [_startingPosASL, _endPosASL, [1,0,0,1]] call EFUNC(common,addLineToDebugDraw); // Debug scan lines + private _intersections = lineIntersectsSurfaces [_startingPosASL, _endPosASL, _unit]; { - if (_doesIntersect) exitWith {}; - private _startingPosShifted = _startingPosition vectorAdd _x; - _startASL = if (surfaceIsWater _startingPosShifted) then {_startingPosShifted} else {ATLtoASL _startingPosShifted}; - { - _endPosShifted = _endPosTest vectorAdd _x; - private _endASL = if (surfaceIsWater _startingPosShifted) then {_endPosShifted} else {ATLtoASL _endPosShifted}; - - //Uncomment to see the lazor show, and see how the scanning works: - // drawLine3D [_startingPosShifted, _endPosShifted, [1,0,0,1]]; - if (_target in lineIntersectsWith [_startASL, _endASL, _unit]) exitWith {_doesIntersect = true}; - } forEach [[0,0,0.045], [0,0,-0.045], [0,0.045,0], [0,-0.045,0], [0.045,0,0], [-0.045,0,0]]; - } forEach [[0,0,0], [0,0,0.05], [0,0,-0.05]]; - - if (_doesIntersect) then { - _closeInMax = _closeInDistance; - } else { - _closeInMin = _closeInDistance; - }; -}; - -_closeInDistance = (_closeInMax + _closeInMin) / 2; + _x params ["_intersectPosASL", "", "_intersectObject"]; + if (_intersectObject == _target) then { + private _distance = _startingPosASL distance _intersectPosASL; + if (_distance < _bestPosDistance) then { + _bestPosDistance = _distance; + _bestPosASL = _intersectPosASL; + }; + }; + } forEach _intersections; +} forEach [ + // Shoot rays towards player's view angle and see which spot is closest + _startingPosASL vectorAdd (((positionCameraToWorld [0,0,0]) vectorFromTo (positionCameraToWorld [0,0,1])) vectorMultiply 3), + _startingPosASL vectorAdd (((positionCameraToWorld [0,0,0]) vectorFromTo (positionCameraToWorld [-0.25,0,1])) vectorMultiply 3), + _startingPosASL vectorAdd (((positionCameraToWorld [0,0,0]) vectorFromTo (positionCameraToWorld [0.25,0,1])) vectorMultiply 3), + _startingPosASL vectorAdd (((positionCameraToWorld [0,0,0]) vectorFromTo (positionCameraToWorld [0,-0.25,1])) vectorMultiply 3), + _startingPosASL vectorAdd (((positionCameraToWorld [0,0,0]) vectorFromTo (positionCameraToWorld [-0.25,-0.25,1])) vectorMultiply 3), + _startingPosASL vectorAdd (((positionCameraToWorld [0,0,0]) vectorFromTo (positionCameraToWorld [0.25,-0.25,1])) vectorMultiply 3), + AGLtoASL (_target modelToWorld [0,0,0]), // Try old method of just using model center + AGLtoASL (_target modelToWorld [0,0,-0.5]) +]; //Checks (too close to center or can't attach) -if ((_startDistanceFromCenter - _closeInDistance) < 0.1) exitWith { +if (_bestPosASL isEqualTo []) exitWith { TRACE_2("no valid spot found",_closeInDistance,_startDistanceFromCenter); [localize LSTRING(Failed)] call EFUNC(common,displayTextStructured); }; //Move it out slightly, for visibility sake (better to look a little funny than be embedded//sunk in the hull and be useless) -_closeInDistance = (_closeInDistance - 0.05); +_bestPosASL = _bestPosASL vectorAdd ((_bestPosASL vectorFromTo _startingPosASL) vectorMultiply 0.05); -_endPosTestOffset = _startingOffset vectorAdd (_closeInUnitVector vectorMultiply _closeInDistance); -_endPosTestOffset set [2, (_startingOffset select 2)]; +private _attachPosModel = _target worldToModel (ASLtoAGL _bestPosASL); [ - REFUEL_PROGRESS_DURATION, - [_unit, _nozzle, _target, _endPosTestOffset], + TIME_PROGRESSBAR(REFUEL_PROGRESS_DURATION), + [_unit, _nozzle, _target, _attachPosModel], { params ["_args"]; _args params [["_unit", objNull, [objNull]], ["_nozzle", objNull, [objNull]], ["_target", objNull, [objNull]], ["_endPosTestOffset", [0,0,0], [[]], 3]]; diff --git a/addons/refuel/functions/fnc_readFuelCounter.sqf b/addons/refuel/functions/fnc_readFuelCounter.sqf index 1b1fb78e81b..98393e69ea8 100644 --- a/addons/refuel/functions/fnc_readFuelCounter.sqf +++ b/addons/refuel/functions/fnc_readFuelCounter.sqf @@ -19,7 +19,7 @@ params [["_unit", objNull, [objNull]], ["_target", objNull, [objNull]]]; [ - REFUEL_PROGRESS_DURATION, + TIME_PROGRESSBAR(REFUEL_PROGRESS_DURATION), [_unit, _target], { params ["_args"]; diff --git a/addons/refuel/functions/fnc_returnNozzle.sqf b/addons/refuel/functions/fnc_returnNozzle.sqf index 752be90d238..2b1ac64f8b7 100644 --- a/addons/refuel/functions/fnc_returnNozzle.sqf +++ b/addons/refuel/functions/fnc_returnNozzle.sqf @@ -24,7 +24,7 @@ private _source = _nozzle getVariable QGVAR(source); if (isNull _nozzle || {_source != _target}) exitWith {false}; [ - REFUEL_PROGRESS_DURATION, + TIME_PROGRESSBAR(REFUEL_PROGRESS_DURATION), [_unit, _nozzle, _target], { params ["_args"]; diff --git a/addons/refuel/functions/fnc_takeNozzle.sqf b/addons/refuel/functions/fnc_takeNozzle.sqf index 285dd37cedc..1b0baac80c2 100644 --- a/addons/refuel/functions/fnc_takeNozzle.sqf +++ b/addons/refuel/functions/fnc_takeNozzle.sqf @@ -39,7 +39,7 @@ if (isNull _nozzle) then { // func is called on fuel truck _endPosOffset = _endPosOffset select 0; }; [ - REFUEL_PROGRESS_DURATION, + TIME_PROGRESSBAR(REFUEL_PROGRESS_DURATION), [_unit, _target, _endPosOffset], { params ["_args"]; @@ -105,7 +105,7 @@ if (isNull _nozzle) then { // func is called on fuel truck ] call EFUNC(common,progressBar); } else { // func is called on muzzle either connected or on ground [ - REFUEL_PROGRESS_DURATION, + TIME_PROGRESSBAR(REFUEL_PROGRESS_DURATION), [_unit, _nozzle], { params ["_args"]; diff --git a/addons/refuel/functions/fnc_turnOff.sqf b/addons/refuel/functions/fnc_turnOff.sqf index 31308607bb1..2c2b8de158b 100644 --- a/addons/refuel/functions/fnc_turnOff.sqf +++ b/addons/refuel/functions/fnc_turnOff.sqf @@ -19,7 +19,7 @@ params [["_unit", objNull, [objNull]], ["_nozzle", objNull, [objNull]]]; [ - REFUEL_PROGRESS_DURATION, + TIME_PROGRESSBAR(REFUEL_PROGRESS_DURATION), [_unit, _nozzle], { params ["_args"]; diff --git a/addons/refuel/functions/fnc_turnOn.sqf b/addons/refuel/functions/fnc_turnOn.sqf index b7a4cf1bc98..cf8656f5585 100644 --- a/addons/refuel/functions/fnc_turnOn.sqf +++ b/addons/refuel/functions/fnc_turnOn.sqf @@ -19,7 +19,7 @@ params [["_unit", objNull, [objNull]], ["_nozzle", objNull, [objNull]]]; [ - REFUEL_PROGRESS_DURATION, + TIME_PROGRESSBAR(REFUEL_PROGRESS_DURATION), [_unit, _nozzle], { params ["_args"]; diff --git a/addons/refuel/script_component.hpp b/addons/refuel/script_component.hpp index 19f12ed3662..3f85277a998 100644 --- a/addons/refuel/script_component.hpp +++ b/addons/refuel/script_component.hpp @@ -5,6 +5,7 @@ // #define DEBUG_MODE_FULL // #define DISABLE_COMPILE_CACHE // #define ENABLE_PERFORMANCE_COUNTERS +// #define FAST_PROGRESSBARS #ifdef DEBUG_ENABLED_REFUEL #define DEBUG_MODE_FULL @@ -29,3 +30,9 @@ _weaponSelect = _unit getVariable QGVAR(selectedWeaponOnRefuel); \ _unit selectWeapon _weaponSelect; \ _unit setVariable [QGVAR(selectedWeaponOnRefuel), nil]; + +#ifdef FAST_PROGRESSBARS + #define TIME_PROGRESSBAR(X) ((X) * 0.075) +#else + #define TIME_PROGRESSBAR(X) (X) +#endif From 317fe93c2d35752264ce6088bb87b8a7b1011074 Mon Sep 17 00:00:00 2001 From: classic Date: Thu, 15 Jun 2017 02:37:42 +0900 Subject: [PATCH 155/198] Jpn translate feee7f5 (#5280) * Add the Jpn translation for quickmount Add the Japanese translation for quickmount * Update the Jpn translation for repair Update the Japanese translation for repair --- addons/quickmount/stringtable.xml | 11 +++++++++++ addons/repair/stringtable.xml | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/addons/quickmount/stringtable.xml b/addons/quickmount/stringtable.xml index c97b5c2a6a0..a492ebc3b91 100644 --- a/addons/quickmount/stringtable.xml +++ b/addons/quickmount/stringtable.xml @@ -4,48 +4,59 @@ Quick Mount Entrata Rapida + クイック マウント Vehicle quick mount Fahrzeug schnell montieren Pojazd szybkie mocowanie Entrata rapida veicolo + 車両クイック マウント Quickly enter the vehicle you are directly looking at. Entra velocemente nel veicolo che stai guardando. + 直接見ている車両へ迅速に搭乗します。 Vehicle Full Veicolo Pieno + 車両は満員 Distance Distanza + 距離 Maximum distance to check for vehicles. Distanza massima per controllare i veicoli. + 車両を確認できる最大距離 Vehicle Locked Veicolo Bloccato. + 車両は施錠されている Maximum Speed (km/h) Velocità Massima (km/h) + 最高速度 (km/h) Maximum vehicle speed (km/h) allowed for player entry Velocità massima del veicolo (km/h) consentita per far salire un giocatore + プレイヤーが搭乗できる限界速度 (km/h) Prioritize Seat Priorità Sedile + 優先席 Seat priority on entry Priorità del sedile in entrata + 搭乗の際の優先順位 diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index d956fd8feb9..0a001968e77 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -1008,7 +1008,7 @@ ¿Quién puede realizar reparaciones? Chi può eseguire riparazioni? Qui peut réparer ? - 誰が修理をおこなえるようにしますか? + 誰が修理を出来るようににしますか? 누가 수리를 할 수 있습니까? From a83efa8e36c10a2bfca51d3a303b0bf234b67122 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 22 Jun 2017 22:58:00 -0500 Subject: [PATCH 156/198] Repair - Handle depends = "0" (#5283) * Repair - Handle depends = "0" * quote --- addons/repair/dev/draw_showRepairInfo.sqf | 69 +++++++++++++++++++ .../repair/functions/fnc_addRepairActions.sqf | 3 +- .../functions/fnc_normalizeHitPoints.sqf | 2 +- .../functions/fnc_setHitPointDamage.sqf | 2 +- 4 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 addons/repair/dev/draw_showRepairInfo.sqf diff --git a/addons/repair/dev/draw_showRepairInfo.sqf b/addons/repair/dev/draw_showRepairInfo.sqf new file mode 100644 index 00000000000..5701c172ead --- /dev/null +++ b/addons/repair/dev/draw_showRepairInfo.sqf @@ -0,0 +1,69 @@ +// PabstMirror +// [] execVM "\z\ace\addons\repair\dev\draw_showRepairInfo.sqf"; + +#include "\z\ace\addons\repair\script_component.hpp" + +addMissionEventHandler ["Draw3D", { + if !((cursorObject isKindOf "Car") || (cursorObject isKindOf "Tank") || (cursorObject isKindOf "Air")) exitWith {}; + private _config = configFile >> "CfgVehicles" >> (typeOf cursorObject); + + private _hitpointPositions = getArray (_config >> QGVAR(hitpointPositions)); + private _hitpointGroups = getArray (_config >> QGVAR(hitpointGroups)); + + (getAllHitPointsDamage cursorObject) params [["_hitPoints", []], ["_hitSelections", []]]; + ([cursorObject] call FUNC(getWheelHitPointsWithSelections)) params ["_wheelHitPoints", "_wheelHitSelections"]; + + private _output = []; + + { + private _selection = _x; + private _hitpoint = _hitPoints select _forEachIndex; + + if ((_selection != "") && {_hitPoint != ""}) then { + if (((toLower _hitPoint) find "glass") != -1) exitWith {}; + + private _info = ""; + private _color = [1,0,0,1]; + if (_selection in _wheelHitSelections) then { + _info = _info + "[Wheel]"; + _color = [0,1,0,1]; + }; + if (!((getText (_config>> "HitPoints" >> _hitpoint >> "depends")) in ["", "0"])) then { + _info = _info + format ["[depends: %1]", getText (_config>> "HitPoints" >> _hitpoint >> "depends")]; + _color = [0,0,1,1] + }; + + private _position = cursorObject selectionPosition [_selection, "HitPoints"]; + { + _x params ["_hit", "_pos"]; + if (_hitpoint == _hit) exitWith { + _info = _info + format ["[hitPos: %1]", _pos]; + if (_pos isEqualType []) exitWith { + _position = _pos; + }; + if (_pos isEqualType "") exitWith { + _position = cursorObject selectionPosition [_pos, "HitPoints"]; + }; + }; + } forEach _hitpointPositions; + + private _parentHitpoint = ""; + { + private _xParent = _x select 0; + { + if (_hitpoint == _x) exitWith { + _info = _info + format ["[Parent: %1]", _xParent]; + _parentHitpoint = _xParent; + }; + } forEach (_x select 1); + } forEach _hitpointGroups; + + if (_parentHitpoint == "") then { + drawIcon3D ["", _color, (cursorObject modelToWorld _position), 0.5, 0.5, 0, format ["%1 [%2]", _hitpoint, _selection], 0.5, 0.025, "TahomaB"]; + }; + _output pushBack format ["%1: %2[%3] = %4", _forEachIndex, _hitPoint, _selection, cursorObject getHitIndex _forEachIndex]; + _output pushBack format ["- %1 -",_info]; + }; + } forEach _hitPoints; + hintSilent (_output joinString "\n"); +}]; diff --git a/addons/repair/functions/fnc_addRepairActions.sqf b/addons/repair/functions/fnc_addRepairActions.sqf index d2bb3adfee9..398083a080a 100644 --- a/addons/repair/functions/fnc_addRepairActions.sqf +++ b/addons/repair/functions/fnc_addRepairActions.sqf @@ -79,7 +79,8 @@ _processedHitpoints = []; if (_selection isEqualTo "") exitWith { TRACE_3("Selection Empty",_hitpoint,_forEachIndex,_selection); }; if (_hitpoint isEqualTo "") exitWith { TRACE_3("Hitpoint Empty",_hitpoint,_forEachIndex,_selection); }; //Depends hitpoints shouldn't be modified directly (will be normalized) - if (isText (configFile >> "CfgVehicles" >> _type >> "HitPoints" >> _hitpoint >> "depends")) exitWith { + // Biki: Clearing 'depends' in case of inheritance cannot be an empty string (rpt warnings), but rather a "0" value. + if (!((getText (configFile >> "CfgVehicles" >> _type >> "HitPoints" >> _hitpoint >> "depends")) in ["", "0"])) exitWith { TRACE_3("Skip Depends",_hitpoint,_forEachIndex,_selection); }; diff --git a/addons/repair/functions/fnc_normalizeHitPoints.sqf b/addons/repair/functions/fnc_normalizeHitPoints.sqf index 1f6004aa15d..cb06eeaeae5 100644 --- a/addons/repair/functions/fnc_normalizeHitPoints.sqf +++ b/addons/repair/functions/fnc_normalizeHitPoints.sqf @@ -33,7 +33,7 @@ private _dependentHitPointScripts = []; { if ((_x != "") && {isClass (_config >> _x)} && {!(_x in _realHitPoints)}) then { _realHitPoints pushBack _x; - if (isText (_config >> _x >> "depends")) then { + if (!((getText (_config >> _x >> "depends")) in ["", "0"])) then { _dependentHitPoints pushBack _x; _dependentHitPointScripts pushBack compile getText (_config >> _x >> "depends"); }; diff --git a/addons/repair/functions/fnc_setHitPointDamage.sqf b/addons/repair/functions/fnc_setHitPointDamage.sqf index 6423df69387..57c65d14074 100644 --- a/addons/repair/functions/fnc_setHitPointDamage.sqf +++ b/addons/repair/functions/fnc_setHitPointDamage.sqf @@ -45,7 +45,7 @@ _hitPointDamageRepaired = 0; //positive for repairs : newSum = (oldSum - repaire if ((!isNil {_vehicle getHit _selectionName}) && {_x != ""}) then { _realHitpointCount = _realHitpointCount + 1; - if ((((toLower _x) find "glass") == -1) && {!isText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "HitPoints" >> _x >> "depends")}) then { + if ((((toLower _x) find "glass") == -1) && {(getText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "HitPoints" >> _x >> "depends")) in ["", "0"]}) then { _hitPointDamageSumOld = _hitPointDamageSumOld + (_allHitPointDamages select _forEachIndex); if (_forEachIndex == _hitPointIndex) then { _hitPointDamageRepaired = (_allHitPointDamages select _forEachIndex) - _hitPointDamage; From f207b6c13b8c7013776edb826236761947c20374 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 22 Jun 2017 16:05:19 -0500 Subject: [PATCH 157/198] Modify JoinGroup action to show group name (#5287) * Modify JoinGroup action to show group name * header * Header --- addons/interaction/CfgVehicles.hpp | 1 + addons/interaction/XEH_PREP.hpp | 1 + .../functions/fnc_modifyJoinGroupAction.sqf | 26 +++++++++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 addons/interaction/functions/fnc_modifyJoinGroupAction.sqf diff --git a/addons/interaction/CfgVehicles.hpp b/addons/interaction/CfgVehicles.hpp index f65303ac442..cc281247db0 100644 --- a/addons/interaction/CfgVehicles.hpp +++ b/addons/interaction/CfgVehicles.hpp @@ -116,6 +116,7 @@ class CfgVehicles { displayName = CSTRING(JoinGroup); condition = QUOTE(GVAR(EnableTeamManagement) && {[ARR_2(_player,_target)] call DFUNC(canJoinGroup)}); statement = QUOTE([_player] joinSilent group _target); + modifierFunction = QUOTE(call FUNC(modifyJoinGroupAction)); showDisabled = 0; priority = 2.6; icon = QPATHTOF(UI\team\team_management_ca.paa); diff --git a/addons/interaction/XEH_PREP.hpp b/addons/interaction/XEH_PREP.hpp index dc8c361607b..4f0ef583571 100644 --- a/addons/interaction/XEH_PREP.hpp +++ b/addons/interaction/XEH_PREP.hpp @@ -17,6 +17,7 @@ PREP(canInteractWithCivilian); PREP(getDown); PREP(sendAway); PREP(canJoinGroup); +PREP(modifyJoinGroupAction); PREP(canJoinTeam); PREP(joinTeam); PREP(canPassMagazine); diff --git a/addons/interaction/functions/fnc_modifyJoinGroupAction.sqf b/addons/interaction/functions/fnc_modifyJoinGroupAction.sqf new file mode 100644 index 00000000000..3ac493aa546 --- /dev/null +++ b/addons/interaction/functions/fnc_modifyJoinGroupAction.sqf @@ -0,0 +1,26 @@ +/* + * Author: PabstMirror + * Modifies the ACE_JoinGroup action to show group name. + * + * Arguments: + * 0: Target + * 1: Player + * 2: Args + * 3: Action Data + * + * Return Value: + * None + * + * Example: + * [cursorObject, player, [], []] call ace_interaction_fnc_modifyJoinGroupAction + * + * Public: No + */ +#include "script_component.hpp" + +params ["_target", "_player", "", "_actionData"]; + +private _actionText = format ["%1: %2", localize LSTRING(JoinGroup), groupID group _target]; +TRACE_3("",_target,group _target,_actionText); + +_actionData set [1, _actionText]; From 0ccbeb25e93be1ad85d379690708ded66c43839b Mon Sep 17 00:00:00 2001 From: GodofMonkeys Date: Thu, 22 Jun 2017 22:46:00 +0800 Subject: [PATCH 158/198] Add Chinese Traditional & Simplified Localization (#5295) Add Chinese Traditional & Simplified Localization --- addons/advanced_ballistics/stringtable.xml | 52 ++ addons/advanced_fatigue/stringtable.xml | 26 + addons/advanced_throwing/stringtable.xml | 42 ++ addons/aircraft/stringtable.xml | 8 +- addons/atragmx/stringtable.xml | 10 +- addons/attach/stringtable.xml | 36 +- addons/ballistics/stringtable.xml | 286 +++++++- addons/captives/stringtable.xml | 56 +- addons/cargo/stringtable.xml | 54 +- addons/chemlights/stringtable.xml | 80 +++ addons/common/stringtable.xml | 138 ++++ addons/concertina_wire/stringtable.xml | 10 +- addons/cookoff/stringtable.xml | 18 + addons/dagr/stringtable.xml | 10 +- addons/disarming/stringtable.xml | 4 +- addons/disposable/stringtable.xml | 6 + addons/dogtags/stringtable.xml | 12 + addons/dragging/stringtable.xml | 14 +- addons/explosives/stringtable.xml | 124 ++++ addons/fastroping/stringtable.xml | 18 + addons/fcs/stringtable.xml | 14 +- addons/finger/stringtable.xml | 22 +- addons/flashlights/stringtable.xml | 14 +- addons/flashsuppressors/stringtable.xml | 16 +- addons/frag/stringtable.xml | 28 +- addons/gestures/stringtable.xml | 40 ++ addons/gforces/stringtable.xml | 4 + addons/goggles/stringtable.xml | 10 + addons/grenades/stringtable.xml | 48 ++ addons/gunbag/stringtable.xml | 12 + addons/hearing/stringtable.xml | 38 +- addons/hellfire/stringtable.xml | 6 +- addons/huntir/stringtable.xml | 34 +- addons/interact_menu/stringtable.xml | 58 +- addons/interaction/stringtable.xml | 134 +++- addons/inventory/stringtable.xml | 20 +- addons/javelin/stringtable.xml | 2 + addons/kestrel4500/stringtable.xml | 16 +- addons/laser/stringtable.xml | 8 + addons/laserpointer/stringtable.xml | 16 +- addons/logistics_uavbattery/stringtable.xml | 14 +- addons/logistics_wirecutter/stringtable.xml | 10 + addons/magazinerepack/stringtable.xml | 20 +- addons/main/stringtable.xml | 6 +- addons/map/stringtable.xml | 68 ++ addons/map_gestures/stringtable.xml | 40 +- addons/maptools/stringtable.xml | 30 + addons/markers/stringtable.xml | 6 +- addons/medical/stringtable.xml | 706 +++++++++++++++++++- addons/medical_ai/stringtable.xml | 2 + addons/medical_blood/stringtable.xml | 6 + addons/medical_menu/stringtable.xml | 112 +++- addons/microdagr/stringtable.xml | 66 +- addons/minedetector/stringtable.xml | 16 + addons/missileguidance/stringtable.xml | 26 +- addons/missionmodules/stringtable.xml | 36 +- addons/mk6mortar/stringtable.xml | 68 +- addons/movement/stringtable.xml | 12 +- addons/mx2a/stringtable.xml | 6 +- addons/nametags/stringtable.xml | 68 ++ addons/nightvision/stringtable.xml | 32 +- addons/nlaw/stringtable.xml | 8 +- addons/optics/stringtable.xml | 22 +- addons/optionsmenu/stringtable.xml | 74 ++ addons/overheating/stringtable.xml | 68 ++ addons/overpressure/stringtable.xml | 4 + addons/parachute/stringtable.xml | 14 +- addons/quickmount/stringtable.xml | 22 + addons/rangecard/stringtable.xml | 16 +- addons/realisticnames/stringtable.xml | 406 ++++++++++- addons/rearm/stringtable.xml | 82 +++ addons/refuel/stringtable.xml | 64 ++ addons/reload/stringtable.xml | 12 + addons/reloadlaunchers/stringtable.xml | 8 + addons/repair/stringtable.xml | 236 +++++++ addons/respawn/stringtable.xml | 48 ++ addons/safemode/stringtable.xml | 8 + addons/sandbag/stringtable.xml | 28 +- addons/scopes/stringtable.xml | 58 ++ addons/slideshow/stringtable.xml | 30 + addons/spectator/stringtable.xml | 132 +++- addons/spottingscope/stringtable.xml | 8 +- addons/switchunits/stringtable.xml | 34 + addons/tacticalladder/stringtable.xml | 16 +- addons/tagging/stringtable.xml | 34 + addons/trenches/stringtable.xml | 30 + addons/tripod/stringtable.xml | 14 +- addons/ui/stringtable.xml | 84 +++ addons/vector/stringtable.xml | 12 +- addons/vehiclelock/stringtable.xml | 50 +- addons/vehicles/stringtable.xml | 8 +- addons/viewdistance/stringtable.xml | 54 +- addons/weaponselect/stringtable.xml | 48 +- addons/weather/stringtable.xml | 34 +- addons/winddeflection/stringtable.xml | 32 +- addons/yardage450/stringtable.xml | 8 +- addons/zeus/stringtable.xml | 152 +++++ optionals/compat_adr_97/stringtable.xml | 38 +- 98 files changed, 4829 insertions(+), 61 deletions(-) diff --git a/addons/advanced_ballistics/stringtable.xml b/addons/advanced_ballistics/stringtable.xml index 31b9b56bb94..8e942364a9a 100644 --- a/addons/advanced_ballistics/stringtable.xml +++ b/addons/advanced_ballistics/stringtable.xml @@ -14,6 +14,8 @@ Mostrar Informação do Vento 風の情報を表示 바람의 정보를 표시 + 顯示風況 + 显示风况 Show Protractor @@ -28,6 +30,8 @@ Mostrar Transferidor 分度器を表示 각도기 표시 + 顯示量角器 + 显示量角器 Advanced Ballistics @@ -42,6 +46,8 @@ Balistica Avanzata アドバンスド バリスティックス 고급 탄도학 + 先進彈道系統 + 先进弹道系统 Advanced Ballistics @@ -56,6 +62,8 @@ Balistica Avanzata アドバンスド バリスティックス 고급 탄도학 + 先進彈道系統 + 先进弹道系统 Enables advanced ballistics @@ -70,6 +78,8 @@ Abilita Balistica Avanzata アドバンスド バリスティックスを有効化 고급 탄도학을 적용합니다 + 啟用先進彈道系統 + 启用先进弹道系统 Enabled For Snipers @@ -84,6 +94,8 @@ Abilita per Tiratori Scelti 狙撃手へ有効化 저격수만 적용 + 啟用給狙擊手 + 启用给狙击手 Enables advanced ballistics for non local snipers (when using high power optics) @@ -98,6 +110,8 @@ Abilita Balistica Avanzata per Tiratori Scelti non locali (con ottiche ad alto potenziale) 非ローカルの狙撃手 (高倍率スコープを使っている場合)へアドバンスド バリスティックスを有効化します 고급 탄도학을 비-저격수 인원에게도 적용합니다(고성능 조준경을 사용시) + 啟用先進彈道系統給非本地狙擊手(當使用高倍率光學瞄鏡時) + 启用先进弹道系统给非本地狙击手(当使用高倍率光学瞄镜时) Enabled For Group Members @@ -112,6 +126,8 @@ Abilita per Membri del Gruppo グループ メンバーへ有効化 그룹 멤버도 적용 + 啟用給小隊成員 + 启用给小队成员 Enables advanced ballistics for non local group members @@ -126,6 +142,8 @@ Abilita Balistica Avanzata per Membri non locali del Gruppo 非ローカルのグループ メンバーへアドバンスド バリスティックスを有効化します 고급 탄도학을 비-그룹멤버에게도 적용합니다 + 啟用先進彈道系統給非本地小隊成員 + 启用先进弹道系统给非本地小队成员 Enabled For Everyone @@ -140,6 +158,8 @@ Abilita per tutti 全員に有効化 모두에게 적용 + 啟用給所有人 + 启用给所有人 Enables advanced ballistics for all non local players (enabling this may degrade performance during heavy firefights in multiplayer) @@ -154,6 +174,8 @@ Abilita Balistica Avanzata per tutti i giocatori non locali (abilitare questo parametro potrebbe ridurre le prestazioni durante scontri intensi in multiplayer) 非ローカルの全プレイヤーへアドバンスド バリスティックスを有効化します (マルチプレイで大規模な銃撃戦がおこなわれると、動作の低下を招きます) 고급 탄도학을 모든 비-로컬그룹에게도 적용합니다(적용 후 대규모 전투시 성능하락을 유발할 수 있습니다) + 啟用先進彈道系統給所有非本地玩家 (啟用此功能後,在多人連線大量交火時可能會降低效能) + 启用先进弹道系统给所有非本地玩家 (启用此功能后,在多人连线大量交火时可能会降低效能) Always Enabled For Group Members @@ -168,6 +190,8 @@ Sempre abilitato per Membri del Gruppo 常にグループ メンバーへ有効化 그룹 멤버에게 항상 적용 + 永遠啟用給小隊成員 + 永远启用给小队成员 Always enables advanced ballistics when a group member fires @@ -182,6 +206,8 @@ Abilita sempre Balistica Avanzata quando un membro del gruppo spara グループ メンバーが射撃した時、常にアドバンスド バリスティックスを有効化します 그룹 멤버가 발사시 항상 고급 탄도학을 적용합니다 + 當小隊成員開火時,永遠啟用先進彈道系統 + 当小队成员开火时,永远启用先进弹道系统 Disabled In FullAuto Mode @@ -196,6 +222,8 @@ Disabilita in modalità di fuoco automatico フルオートでは無効化 조정간 자동시 비활성화 + 在全自動模式時關閉 + 在全自动模式时关闭 Disables the advanced ballistics during full auto fire @@ -210,6 +238,8 @@ Disabilita Balistica Avanzata durante fuoco automatico フルオートで射撃中ではアドバンスド バリスティックスを無効化します 조정간 자동시 고급 탄도학을 비활성화 합니다 + 在全自動模式開火時,關閉先進彈道系統 + 在全自动模式开火时,关闭先进弹道系统 Enable Ammo Temperature Simulation @@ -224,6 +254,8 @@ Abilita simulazione della temperatura delle munizioni 弾薬の温度シミュレーションを有効化 탄약 온도 구현 적용 + 啟用彈藥溫度模擬系統 + 启用弹药温度模拟系统 Muzzle velocity varies with ammo temperature @@ -238,6 +270,8 @@ La velocità dello sparo varia a seconda della temperatura delle munizioni 弾薬の温度により初速値を変化させます 탄약 온도에 비례해 총구 속도가 달라집니다 + 子彈初速將隨彈藥溫度而有所變化 + 子弹初速将随弹药温度而有所变化 Enable Barrel Length Simulation @@ -252,6 +286,8 @@ Abilita simulazione della lunghezza della canna 銃身長のシミュレーションを有効化 총열 길이 구현 적용 + 啟用槍管長度模擬系統 + 启用枪管长度模拟系统 Muzzle velocity varies with barrel length @@ -266,6 +302,8 @@ La velocità di sparo varia a seconda della lunghezza della canna 銃身長により初速値を変化させます 총구 속도가 총열에 비례해 달라집니다 + 子彈初速將隨槍管長度而有所變化 + 子弹初速将随枪管长度而有所变化 Enable Bullet Trace Effect @@ -280,6 +318,8 @@ Abilita effetto dei Proiettili Traccianti 弾丸の痕跡表示を有効化 예광탄 효과 적용 + 啟用曳光彈效果 + 启用曳光弹效果 Enables a bullet trace effect to high caliber bullets (only visible when looking through high power optics) @@ -294,6 +334,8 @@ Abilita effetto dei proiettili traccianti di alto calibro (visibile solo attraverso ottiche ad alto potenziale) 大口径の銃弾による弾丸の痕跡表示を有効化します (高倍率スコープを介してでしか見れません) 대구경 탄환에 예광탄 효과를 적용합니다(오직 고성능 조준경 사용시에만 보입니다) + 啟用曳光彈效果給大口徑子彈 (只有透過高倍率光學瞄鏡才能看到) + 启用曳光弹效果给大口径子弹 (只有透过高倍率光学瞄镜才能看到) Simulation Interval @@ -308,6 +350,8 @@ Intervallo Simulazione シミュレーション間隔 구현 간격 + 模擬間隔 + 模拟间隔 Defines the interval between every calculation step @@ -322,6 +366,8 @@ Definisce l'intervallo tra ogni step di calcolo 各計算ごとの間隔を定義します 각 계산 단위의 간격을 정의합니다 + 定義每個模擬計算之間的時間間隔 + 定义每个模拟计算之间的时间间隔 Simulation Radius @@ -336,6 +382,8 @@ Raggio Simulazione シミュレーションの適用範囲 구현 범위 + 模擬半徑 + 模拟半径 Defines the radius around the player (in meters) at which advanced ballistics are applied to projectiles @@ -350,6 +398,8 @@ Definisce il raggio attorno al giocatore (in metri) per cui la Balistica Avanzata è applicata ai proiettili プレイヤーの周囲にアドバンスド バリスティックスによる弾道を適用させる範囲を半径で定義します (メートル) 플레이어 주위의 발사체를 고급 탄도학으로 정의하는 범위를 정합니다(미터) + 以玩家的半徑距離(公尺)定義先進彈道系統啟用範圍 + 以玩家的半径距离(公尺)定义先进弹道系统启用范围 This module enables advanced ballistics simulation - meaning the trajectory of projectiles is influenced by variables like air temperature, atmospheric pressure, humidity, gravity, the type of ammunition and the weapon from which it was fired. @@ -364,6 +414,8 @@ Questo modulo abilita la simulazione della Balistica Avanzata - cioè la traiettoria dei proiettili è influenzata da variabili come la temperatura dell'aria, pressione atmosferica, umidità, gravità, il tipo di munizione e l'arma da cui è sparata このモジュールはアドバンスド バリスティックスを有効化します。弾道は気温や気圧、湿度、重力、弾薬の種類、発射する武器から影響を受けるようになります。 이 모듈은 고급 탄도학을 적용시킵니다 - 이는 발사체의 궤적이 기온, 대기압, 습도, 중력, 탄환의 종류와 어느 무기에서 발사되는지에 따라 영향을 받습니다. + 該模塊實現先進的彈道仿真 - 這意味著子彈的軌跡是由空氣溫度、大氣壓力、濕度、重力、彈藥類型以及射擊的武器所影響. + 该模块实现先进的弹道仿真 - 这意味着子弹的轨迹是由空气温度、大气压力、湿度、重力、弹药类型以及射击的武器所影响. diff --git a/addons/advanced_fatigue/stringtable.xml b/addons/advanced_fatigue/stringtable.xml index 02924c0ae99..3ee90435dc7 100644 --- a/addons/advanced_fatigue/stringtable.xml +++ b/addons/advanced_fatigue/stringtable.xml @@ -9,6 +9,8 @@ 성능 요인 Facteur de performance Fattore Prestazione + 體力值 + 体力值 Influences the overall performance of all players with no custom factor. Higher means better. @@ -18,6 +20,8 @@ 모든 성능이 임의로 설정된 값 없이 영향받습니다. 값이 클수록 더 나은 성능을 발휘합니다 Influence les performances générales de tous les joueurs sans facteurs personalisés. Une valeur plus élevée implique de meilleures performances. Influenza qualsiasi prestazione di tutti i giocatori smuniti di un fattore personalizzato. Maggiore significa migliore. + 影響所有玩家的體力表現. 值越高代表體力越好. + 影响所有玩家的体力表现. 值越高代表体力越好. Influences the overall performance of this unit. Higher means better. @@ -27,6 +31,8 @@ 모든 성능이 이 단위로 영향을 받습니다. 값이 클수록 더 나은 성능을 발휘합니다 Influence les performances générales de cette unité. Une valeur plus élevée implique de meilleures performances. Influenza qualsiasi prestazione di questa unità. Maggiore significa migliore. + 影響這個單位的體力表現. 值越高代表體力越好. + 影响这个单位的体力表现. 值越高代表体力越好. Recovery Factor @@ -36,6 +42,8 @@ 회복 요인 Facteur de récupération Fattore Recupero + 回復值 + 回复值 Changes how fast the player recovers when resting. Higher is faster. @@ -45,6 +53,8 @@ 얼마나 빨리 회복하는지를 바꿉니다. 값이 클수록 더 나은 성능을 발휘합니다 Change la vitesse à laquelle les joueurs récupèrent leur endurance lorsqu'ils se reposent. Une valeur plus élevée implique une récupération plus rapide. Determina in quanto tempo il giocatore recupera quando rilassato. Maggiore significa migliore. + 決定玩家休息多久就能回復體力. 值越高恢復越快. + 决定玩家休息多久就能回复体力. 值越高恢复越快. Load Factor @@ -54,6 +64,8 @@ 부담 요인 Facteur d'encombrement Fattore Caricamento + 負重量 + 负重量 Increases or decreases how much weight influences the players performance. Zero means equipment weight has no performance influence. @@ -63,6 +75,8 @@ 플레이어가 무게에 따라 얼마나 영향받는지를 증가시키거나 감소시킵니다. 0의 경우 플레이어가 장비 무게에 영향받지 않습니다. Augmente ou réduit l'influence que le poids à sur les performances des joueurs. Zéro implique que le poids de l'équipement n'a pas d'influence sur les performances. Incrementa o decrementa quanto il peso influenza le prestazioni dei giocatori. Zero significa che il peso dell'equipaggiamento non ha alcuna influenza nelle prestazioni. + 增加或降低玩家所能承受的負重量. 如設定值為0, 代表裝備的重量將不會影響到玩家的體力表現. + 增加或降低玩家所能承受的负重量. 如设定值为0, 代表装备的重量将不会影响到玩家的体力表现. Terrain Gradient Factor @@ -72,6 +86,8 @@ 지형 경사도 요인 Facteur d'inclinaison du terrain Fattore Pendenza Terreno + 地形陡峭影響值 + 地形陡峭影响值 Sets how much steep terrain increases stamina loss. Higher means higher stamina loss. @@ -81,6 +97,8 @@ 경사도에 따라 얼마나 피로해지는지를 정합니다. 값이 클수록 더 많은 피로를 유발합니다. Configure l'influence de l'inclinaison du terrain sur la perte d'endurance. Une valeur plus élevée implique une perte d'endurance plus importante. Stabilisce quanto la pendenza del terreno incrementa la perdita della stamina. Maggiore significa più stamina persa. + 設定陡峭的地形將會影響多少體力的流失. 值越高代表體力流失越快. + 设定陡峭的地形将会影响多少体力的流失. 值越高代表体力流失越快. Enabled @@ -90,6 +108,8 @@ 활성화 Activé Abilitato + 啟用 + 启用 Enables/disables Advanced Fatigue. @@ -99,6 +119,8 @@ 고급 피로도 활성화/비활성화 Active/désactive la fatigue avancée. Abilita/disabilita la Fatica Avanzata. + 啟用/關閉進階體力. + 启用/关闭进阶体力. Show stamina bar @@ -108,6 +130,8 @@ 피로도 막대 Afficher la barre d'endurance Mostra barra stamina + 顯示體力條 + 显示体力条 Shows the stamina bar. @@ -117,6 +141,8 @@ 피로도 막대를 보여줍니다. Affiche la barre d'endurance. Mostra la barra della stamina. + 顯示體力條. + 显示体力条. diff --git a/addons/advanced_throwing/stringtable.xml b/addons/advanced_throwing/stringtable.xml index 28745705230..ddb53c333f5 100644 --- a/addons/advanced_throwing/stringtable.xml +++ b/addons/advanced_throwing/stringtable.xml @@ -10,6 +10,8 @@ 고급 투척 Lancé amélioré Lancio Avanzato + 進階投擲 + 进阶投掷 Allows changing advanced throwing behaviour. @@ -20,6 +22,8 @@ 고급 투척 행위를 허가합니다 Permet de changer la configuration du lancé amélioré. Permette il cambiamento della modalità di tiro. + 允許使用更多不同的投擲方式. + 允许使用更多不同的投掷方式. Enable Advanced Throwing @@ -30,6 +34,8 @@ 고급 투척 활성화 Active le lancé amélioré Abilita Lancio Avanzato + 啟用進階投擲 + 启用进阶投掷 Enables advanced throwing system. @@ -40,6 +46,8 @@ 고급 투척을 활성화 합니다 Active le système de lancé amélioré. Abilita il sistema di lancio avanzato. + 啟用進階投擲系統. + 启用进阶投掷系统. Show Throw Arc @@ -50,6 +58,8 @@ 투척 궤적 표시 Afficher l'arc de lancé Mostra Arco di Tiro + 顯示投擲軌道 + 显示投掷轨道 Enables visualization of the throw arc (where throwable will fly). @@ -60,6 +70,8 @@ 투척 궤도를 시각화 합니다(투척물이 어디로 갈지) Active la visualisation de l'arc de lancé (où l'objet lancé va atterrir). Abilita la visualizzazione dell'arco del tiro (dove l'oggetto lanciabile volerà). + 顯示投擲軌道幫助投擲. + 显示投掷轨道帮助投掷. Show Throwing Mouse Controls @@ -70,6 +82,8 @@ 마우스 조작 표시 Afficher les contrôles à la souris du lancé Mostra Comandi Mouse Lancio + 顯示滑鼠投擲控制提示 + 显示滑鼠投掷控制提示 Enables visual cues for mouse controls when throwable is prepared. @@ -80,6 +94,8 @@ 투척물을 준비시 마우스 조작을 시각화해서 보여줍니다 Active les aides visuels pour les controles à la souris lorsqu'un lancé est préparé. Abilita la visualizzazione dei controlli del mouse quando l'oggetto lanciabile è pronto. + 開啟後會在準備投擲時, 顯示滑鼠相關操作. + 开启后会在准备投掷时, 显示滑鼠相关操作. Enable Throwables Pick Up @@ -90,6 +106,8 @@ 투척물 줍기 활성화 Active la récupération des objets lancés Abilita Raccogli Oggetti + 啟用可撿取地面投擲物 + 启用可捡取地面投掷物 Enables ability to pick up throwables from the ground. @@ -100,6 +118,8 @@ 땅에 떨어진 투척물을 주울 수 있게 해줍니다. Active la capacité de récupérer les objets lancés sur le sol. Abilita la possibilità di raccogliere un oggetto lanciabile da terra. + 啟用後, 可撿取地面上的投擲物. + 启用后, 可捡取地面上的投掷物. Enable Attached Throwables Pick Up @@ -110,6 +130,8 @@ 부착 투척물 줍기 활성화 Active le ramassage d'objets lançables attachés Abilita Raccogli Oggetti Lanciabili da altri Oggetti + 啟用可撿取附著投擲物 + 启用可捡取附着投掷物 Enables ability to pick up throwables from attached objects. @@ -120,6 +142,8 @@ 부착된 투척물을 주울 수 있게 해줍니다. Active la capacité à ramasser les objets lançables attaché à d'autres objets. Abilita la possibilità di raccogliere gli oggetti lanciabili dagli altri oggetti. + 啟用後, 可撿取附著在物件上的投擲物. + 启用后, 可捡取附着在物件上的投掷物. Prepare/Change Throwable @@ -130,6 +154,8 @@ 투척물 준비/변경 Préparer/changer d'objet Prepara/Cambia Oggetto lanciabile + 準備/變更投擲物 + 准备/变更投掷物 Throwable Drop Mode (Hold) @@ -140,6 +166,8 @@ 투척물 떨어뜨리기 모드(꾹눌러서) Mode de lancé de l'objet (Tenir) Modalità Oggetto Gettabile (Mantenere) + 投擲模式 (按住) + 投掷模式 (按住) Throwable Drop Mode (Toggle) @@ -150,6 +178,8 @@ 투척물 떨어뜨리기 모드(토글) Mode de lancé de l'objet (Basculer) Modalità Oggetto lanciabile Gettabile (Interruttore) + 投擲模式 (切換) + 投掷模式 (切换) Primed @@ -160,6 +190,8 @@ 뇌관 작동 Amorcer Armato + 引信開始燃燒 + 引信开始燃烧 Throw @@ -170,6 +202,8 @@ 던지기 Lancer Lanciare + 投擲 + 投掷 (Scroll) Change Mode @@ -180,6 +214,8 @@ (마우스 휠) 모드 변경 (Molette souris) Changer de mode (Scorrere) Cambio Modalità + (滾輪) 變更模式 + (滚轮) 变更模式 (Scroll) Extend @@ -190,6 +226,8 @@ (마우스 휠) 연장 (Molette souris) Etendre (Scorrere) Estendere + (滾輪) 延長 + (滚轮) 延长 (Click) Cook @@ -200,6 +238,8 @@ (클릭) 예열 (Clique) Dégoupiller (Click) Arma + (點擊) 提早拉開引信 + (点击) 提早拉开引信 Pick Up @@ -210,6 +250,8 @@ 줍기 Ramasser Raccogli + 撿取 + 捡取 diff --git a/addons/aircraft/stringtable.xml b/addons/aircraft/stringtable.xml index 7e08f906eee..a1a4dfe617a 100644 --- a/addons/aircraft/stringtable.xml +++ b/addons/aircraft/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ XM301 XM301 XM301 + XM301 + XM301 Open Cargo Door @@ -28,6 +30,8 @@ Abrir porta de carga カーゴ ドアを開く 화물칸 개방 + 開啟貨艙門 + 开启货舱门 Close Cargo Door @@ -42,6 +46,8 @@ Fechar porta de carga カーゴ ドアを閉じる 화물칸 폐쇄 + 關閉貨艙門 + 关闭货舱门 diff --git a/addons/atragmx/stringtable.xml b/addons/atragmx/stringtable.xml index 13c9e4478f6..28cea1bcf31 100644 --- a/addons/atragmx/stringtable.xml +++ b/addons/atragmx/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ ATragMX ATragMX ATragMX + ATragMX + ATragMX Open ATragMX @@ -28,6 +30,8 @@ Abrir ATragMX ATragMX を開く ATragMX 열기 + 開啟ATragMX + 开启ATragMX Rugged PDA with ATragMX @@ -42,6 +46,8 @@ PDA Robusto com ATragMX ATragMX 付きの携行型端末 ATragMX가 달린 PDA + 裝有軍用PDA的ATragMX + 装有军用PDA的ATragMX Open ATragMX @@ -56,6 +62,8 @@ Abrir ATragMX ATragMX を開く ATragMX 열기 + 開啟ATragMX + 开启ATragMX diff --git a/addons/attach/stringtable.xml b/addons/attach/stringtable.xml index 900c10bc058..65fdee531d9 100644 --- a/addons/attach/stringtable.xml +++ b/addons/attach/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Прикрепить предмет アイテムを取り付ける 물건 부착 + 附掛裝備>> + 附挂装备>> Attach @@ -28,6 +30,8 @@ Прикрепить 取り付ける 부착 + 附掛 + 附挂 Detach item @@ -42,6 +46,8 @@ Отсоединить アイテムを外す 분리 + 取下裝備 + 取下装备 IR Strobe Attached @@ -56,6 +62,8 @@ ИК-маяк прикреплён 赤外線ストロボを取り付ける 적외선 스트로브 부착됨 + 已附掛紅外線頻閃器 + 已附挂红外线频闪器 IR Strobe Detached @@ -70,6 +78,8 @@ ИК-маяк отсоединён 赤外線ストロボを外す 적외선 스트로브 분리됨 + 已取下紅外線頻閃器 + 已取下红外线频闪器 IR Grenade Attached @@ -84,6 +94,8 @@ ИК-граната прикреплена 赤外線グレネードを取り付ける 적외선 수류탄 부착됨 + 已附掛紅外線手榴彈 + 已附挂红外线手榴弹 IR Grenade Detached @@ -98,6 +110,8 @@ ИК-граната отсоединена 赤外線グレネードを外す 적외선 수류탄 분리됨 + 已取下紅外線手榴彈 + 已取下红外线手榴弹 Chemlight Attached @@ -112,6 +126,8 @@ Химсвет прикреплён ケミライトを取り付け 켐라이트 부착됨 + 已附掛螢光棒 + 已附挂萤光棒 Chemlight Detached @@ -126,6 +142,8 @@ Химсвет отсоединён ケミライトを外す 켐라이트 분리됨 + 已取下螢光棒 + 已取下萤光棒 No inventory space @@ -140,6 +158,8 @@ В инвентаре нет места インベントリに空きがない 넣을 공간이 없음 + 無可用空間 + 无可用空间 IR Strobe @@ -154,6 +174,8 @@ ИК-маяк 赤外線ストロボ 적외선 스트로브 + 紅外線頻閃器 + 红外线频闪器 IR Strobe allows you to signal your position through a pulsating beacon only visible with NVGs. @@ -168,6 +190,8 @@ ИК-маяк позволяет сигнализировать о своём местоположении через пульсирующий свет, видимый только через ПНВ. 赤外線ストロボはあなたの位置を知らせますが、夜間暗視装置を介してでしか見れません。 적외선 스트로브는 자신의 위치를 반짝이면서 표시합니다. 이는 야간투시경으로 밖에 보지 못합니다. + 紅外線閃頻器,藉由紅外線閃頻信號來辨識你的位置,僅能使用夜視系統來辨識紅外線信號 + 红外线闪频器,藉由红外线闪频信号来辨识你的位置,仅能使用夜视系统来辨识红外线信号 Place @@ -182,6 +206,8 @@ Установить 置く 두기 + 放置 + 放置 Cancel @@ -196,6 +222,8 @@ Отмена やめる 취소 + 取消 + 取消 Attach Failed @@ -210,6 +238,8 @@ Non si attacca 取り付けに失敗した 부착 실패 + 附掛失敗 + 附挂失败 %1<br/>Attached @@ -224,6 +254,8 @@ %1<br/>присоединен(-а) %1<br/>を取り付けた %1<br/>부착됨 + %1<br/>已附掛 + %1<br/>已附挂 %1<br/>Detached @@ -238,6 +270,8 @@ %1<br/>отсоединен(-а) %1<br/>を外した %1<br/>분리됨 + %1<br/>已取下 + %1<br/>已取下 diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index f5bcbb758a6..cac06aa73e6 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -15,6 +15,8 @@ 6,5x47mm 20-lövedékes tár (HPBT Scenar) 6.5x47mm 20発入り 弾倉 (HPBT Scenar) 20발들이 6.5x47mm (HPBT Scenar) + 6.5x47mm 20發 彈匣 (Lapua 空尖艇尾狙擊專用彈) + 6.5x47mm 20发 弹匣 (Lapua 空尖艇尾狙击专用弹) 6.5mm Lapua @@ -29,6 +31,8 @@ 6,5mm Lapua 6.5mm Lapua 6.5mm Lapua + 6.5mm Lapua 空尖艇尾狙擊專用彈 + 6.5mm Lapua 空尖艇尾狙击专用弹 Caliber: 6.5x47mm (HPBT Scenar)<br />Rounds: 20<br />Used in: QBU-88 @@ -43,6 +47,8 @@ Kaliber: 6,5x47mm (HPBT Scenar)<br />Lövedékek: 20<br />Használható: QBU-88 口径: 6.5x47mm (HPBT Scenar)<br />装填数: 20<br />次で使用: QBU-88 구경: 6.5x47mm (HPBT Scenar)<br />장탄수: 20<br />사용처: QBU-88 + 口徑: 6.5x47mm (Lapua 空尖艇尾狙擊專用彈)<br />發數: 20<br />使用於: QBU-88 + 口径: 6.5x47mm (Lapua 空尖艇尾狙击专用弹)<br />发数: 20<br />使用于: QBU-88 6.5mm Creedmor 20Rnd Mag @@ -57,6 +63,8 @@ 6,5mm Creedmor 20-lövedékes tár 6.5mm Creedmor 20発入り 弾倉 20발들이 6.5mm Creedmor 탄창 + 6.5mm 20發 彈匣 (Creedmor 狙擊專用彈) + 6.5mm 20发 弹匣 (Creedmor 狙击专用弹) 6.5mm CM @@ -71,6 +79,8 @@ 6,5mm CM 6.5mm CM 6.5mm CM + 6.5mm CM 狙擊專用彈 + 6.5mm CM 狙击专用弹 Caliber: 6.5x47mm Creedmor<br />Rounds: 20<br />Used in: QBU-88 @@ -85,6 +95,8 @@ Kaliber: 6,5x47mm Creedmor<br />Lövedékek: 20<br />Használható: QBU-88 口径: 6.5x47mm Creedmor<br />装填数: 20<br />次で使用: QBU-88 구경: 6.5x47mm Creedmor<br />장탄수: 20<br />사용처: QBU-88 + 口徑: 6.5x47mm Creedmor 狙擊專用彈<br />發數: 20<br />使用於: QBU-88 + 口径: 6.5x47mm Creedmor 狙击专用弹<br />发数: 20<br />使用于: QBU-88 @@ -100,6 +112,8 @@ Магазин из 30-ти 6,5 мм ИК-трассирующих 6.5mm 30発入り IR-DIM曳光弾 弾倉 30발들이 6.5mm IR-DIM 예광탄 탄창 + 6.5mm 30發 低視度紅外線曳光彈 彈匣 + 6.5mm 30发 低视度红外线曳光弹 弹匣 6.5mm IR-DIM @@ -114,6 +128,8 @@ 6,5 мм ИК-трассирующие 6.5mm IR-DIM曳光弾 6.5mm IR-DIM 예광탄 + 6.5mm 低視紅外曳光彈 + 6.5mm 低视红外曳光弹 Caliber: 6.5x39mm Tracer IR-DIM<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL @@ -128,6 +144,8 @@ Калибр: 6,5x39 мм ИК-трассирующие<br />Патронов: 30<br />Используются с: MX/C/M/SW/3GL 口径: 6.5x39mm 曳光弾 IR-DIM<br />装填数: 30<br />次で使用: MX/C/M/SW/3GL 구경: 6.5x39mm IR-DIM 예광탄<br />장탄수: 30<br />사용처: MX/C/M/SW/3GL + 口徑: 6.5x39mm 低視度紅外線曳光彈<br />發數: 30<br />使用於: MX/C/M/SW/3GL + 口径: 6.5x39mm 低视度红外线曳光弹<br />发数: 30<br />使用于: MX/C/M/SW/3GL 6.5mm 30Rnd SD Mag @@ -142,6 +160,8 @@ Магазин из 30-ти 6,5 мм дозвуковых 6.5mm 30発入り 亜音速弾 弾倉 30발들이 6.5mm 아음속탄 탄창 + 6.5mm 30發 消音彈 彈匣 + 6.5mm 30发 消音弹 弹匣 6.5mm SD @@ -156,6 +176,8 @@ 6,5 мм дозвуковые 6.5mm 亜音速弾 6.5mm 아음속탄 + 6.5mm 消音彈 + 6.5mm 消音弹 Caliber: 6.5x39mm SD<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL @@ -170,6 +192,8 @@ Калибр: 6,5x39 мм дозвуковые<br />Патронов: 30<br />Используются с: MX/C/M/SW/3GL 口径: 6.5x39mm 亜音速弾<br />装填数: 30<br />次で使用: MX/C/M/SW/3GL 구경: 6.5x39mm SD<br />장탄수: 30<br />사용처: MX/C/M/SW/3GL + 口徑: 6.5x39mm 消音彈<br />發數: 30<br />使用於: MX/C/M/SW/3GL + 口径: 6.5x39mm 消音弹<br />发数: 30<br />使用于: MX/C/M/SW/3GL 6.5mm 30Rnd AP Mag @@ -184,6 +208,8 @@ Магазин из 30-ти 6,5 мм бронебойных 6.5mm 30 発入り徹甲弾 弾倉 30발들이 6.5mm 철갑탄 탄창 + 6.5mm 30發 穿甲彈 彈匣 + 6.5mm 30发 穿甲弹 弹匣 6.5mm AP @@ -198,6 +224,8 @@ 6,5 мм бронебойные 6.5mm 徹甲弾 6.5mm 철갑탄 + 6.5mm 穿甲彈 + 6.5mm 穿甲弹 Caliber: 6.5x39mm AP<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL @@ -212,6 +240,8 @@ Калибр: 6,5x39 мм бронебойные<br />Патронов: 30<br />Используются с: MX/C/M/SW/3GL 口径: 6.5x39mm 徹甲弾<br />装填数: 30<br />次で使用: MX/C/M/SW/3GL 구경: 6.5x39mm 철갑탄<br />장탄수: 30<br />사용처: MX/C/M/SW/3GL + 口徑: 6.5x39mm 穿甲彈<br />發數: 30<br />使用於: MX/C/M/SW/3GL + 口径: 6.5x39mm 穿甲弹<br />发数: 30<br />使用于: MX/C/M/SW/3GL @@ -227,6 +257,8 @@ Магазин из 30-ти 6,5 мм ИК-трассирующих 6.5mm 30発入り IR-DIM曳光弾 弾倉 30발들이 6.5mm IR-DIM 예광탄 탄창 + 6.5mm 30發 低視度紅外線曳光彈 彈匣 + 6.5mm 30发 低视度红外线曳光弹 弹匣 6.5mm IR-DIM @@ -241,6 +273,8 @@ 6,5 мм ИК-трассирующие 6.5mm IR-DIM曳光弾 6.5mm IR-DIM 예광탄 + 6.5mm 低視紅外曳光彈 + 6.5mm 低视红外曳光弹 Caliber: 6.5x39mm Tracer IR-DIM<br />Rounds: 30<br />Used in: Katiba @@ -255,6 +289,8 @@ Калибр: 6,5x39 мм ИК-трассирующие<br />Патронов: 30<br />Используются с: Katiba 口径: 6.5x39mm IR-DIM曳光弾<br />装填数: 30<br />次で使用: Katiba 구경: 6.5x39mm IR-DIM 예광탄<br />장탄수: 30<br />사용처: Katiba + 口徑: 6.5x39mm 低視度紅外線曳光彈<br />發數: 30<br />使用於: Katiba + 口径: 6.5x39mm 低视度红外线曳光弹<br />发数: 30<br />使用于: Katiba 6.5mm 30Rnd SD Mag @@ -269,6 +305,8 @@ Магазин из 30-ти 6,5 мм дозвуковых 6.5mm 30発入り 亜音速弾 弾倉 30발들이 6.5mm 아음속탄 탄창 + 6.5mm 30發 消音彈 彈匣 + 6.5mm 30发 消音弹 弹匣 6.5mm SD @@ -283,6 +321,8 @@ 6,5 мм дозвуковые 6.5mm 亜音速弾 6.5mm 아음속탄 + 6.5mm 消音彈 + 6.5mm 消音弹 Caliber: 6.5x39mm SD<br />Rounds: 30<br />Used in: Katiba @@ -297,6 +337,8 @@ Калибр: 6,5x39 мм дозвуковые<br />Патронов: 30<br />Используются с: Katiba 口径: 6.5x39mm 亜音速弾<br />装填数: 30<br />次で使用: Katiba 구경: 6.5x39mm 아음속탄<br />장탄수: 30<br />사용처: Katiba + 口徑: 6.5x39mm 消音彈<br />發數: 30<br />使用於: Katiba + 口径: 6.5x39mm 消音弹<br />发数: 30<br />使用于: Katiba 6.5mm 30Rnd AP Mag @@ -311,6 +353,8 @@ Магазин из 30-ти 6,5 мм бронебойных 6.5mm 30 発入り徹甲弾 弾倉 30발들이 6.5mm 철갑탄 탄창 + 6.5mm 30發 穿甲彈 彈匣 + 6.5mm 30发 穿甲弹 弹匣 6.5mm AP @@ -325,6 +369,8 @@ 6,5 мм бронебойные 6.5mm 徹甲弾 6.5mm 철갑탄 + 6.5mm 穿甲彈 + 6.5mm 穿甲弹 Caliber: 6.5x39mm AP<br />Rounds: 30<br />Used in: Katiba @@ -339,6 +385,8 @@ Калибр: 6,5x39 мм бронебойные<br />Патронов: 30<br />Используются с: Katiba 口径: 6.5x39mm 徹甲弾<br />装填数: 30<br />次で使用: Katiba 구경: 6.5x39mm 철갑탄<br />장탄수: 30<br />사용처: Katiba + 口徑: 6.5x39mm 穿甲彈<br />發數: 30<br />使用於: Katiba + 口径: 6.5x39mm 穿甲弹<br />发数: 30<br />使用于: Katiba @@ -354,6 +402,8 @@ Магазин из 30-ти 5,56 мм ИК-трассирующих 5.56mm 30発入り IR-DIM曳光弾 弾倉 30발 들이 5.56mm IR-DIM 예광탄 탄창 + 5.56mm 30發 低視度紅外線曳光彈 彈匣 + 5.56mm 30发 低视度红外线曳光弹 弹匣 5.56mm IR-DIM @@ -368,6 +418,8 @@ 5,56 мм ИК-трассирующие 5.56mm IR-DIM曳光弾 5.56mm IR-DIM 예광탄 + 5.56mm 低視紅外曳光彈 + 5.56mm 低视红外曳光弹 Caliber: 5.56x45mm Tracer IR-DIM<br />Rounds: 30<br />Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR @@ -382,6 +434,8 @@ Калибр: 5,56x45 мм ИК-трассирующие<br />Патронов: 30<br />Используются с: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR 口径: 5.56x45mm IR-DIM曳光弾<br />装填数: 30<br />次で使用: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR 구경: 5.56x45mm IR-DIM 예광탄<br />장탄수: 30<br />사용처: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + 口徑: 5.56x45mm 低視度紅外線曳光彈<br />發數: 30<br />使用於: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + 口径: 5.56x45mm 低视度红外线曳光弹<br />发数: 30<br />使用于: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR @@ -397,6 +451,8 @@ Магазин из 20-ти 7,62 мм трассирующих 7.62mm 20発入り 曳光弾 20발들이 7.62mm 예광탄 탄창 + 7.62mm 20發 曳光彈 彈匣 + 7.62mm 20发 曳光弹 弹匣 7.62mm Tracer @@ -411,6 +467,8 @@ 7,62 мм трассирущие 7.62mm 曳光弾 7.62mm 예광탄 + 7.62mm 曳光彈 + 7.62mm 曳光弹 Caliber: 7.62x51mm Tracer<br />Rounds: 20<br />Used in: Mk18 ABR @@ -425,6 +483,8 @@ Калибр: 7,62x51 мм трассирующие<br />Патронов: 20<br />Используются с: Mk18 ABR 口径: 7.62x51mm 曳光弾<br />装填数: 20<br />次で使用: Mk18 ABR 구경: 7.62x51mm 예광탄<br />장탄수: 20<br />사용처: Mk18 ABR + 口徑: 7.62x51mm 曳光彈<br />發數: 20<br />使用於: Mk18 ABR + 口径: 7.62x51mm 曳光弹<br />发数: 20<br />使用于: Mk18 ABR 7.62mm 20rnd Tracer IR-DIM Mag @@ -439,6 +499,8 @@ Магазин из 20-ти 7,62 мм ИК-трассирующих 7.62mm 20発入り IR-DIM曳光弾 20발들이 7.62mm IR-DIM 예광탄 탄창 + 7.62mm 20發 低視度紅外線曳光彈 彈匣 + 7.62mm 20发 低视度红外线曳光弹 弹匣 7.62mm IR-DIM @@ -453,6 +515,8 @@ 7,62 мм ИК-трассирующие 7.62mm IR-DIM曳光弾 7.62mm IR-DIM 예광탄 + 7.62mm 低視紅外曳光彈 + 7.62mm 低视红外曳光弹 Caliber: 7.62x51mm Tracer IR-DIM<br />Rounds: 20<br />Used in: Mk18 ABR @@ -467,6 +531,8 @@ Калибр: 7,62x51 мм ИК-трассирующие<br />Патронов: 20<br />Используются с: Mk18 ABR 口径: 7.62x51mm IR-DIM曳光弾<br />装填数: 20<br />次で使用: Mk18 ABR 구경: 7.62x51mm IR-DIM 예광탄<br />장탄수: 20<br />사용처: Mk18 ABR + 口徑: 7.62x51mm 低視度紅外線曳光彈<br />發數: 20<br />使用於: Mk18 ABR + 口径: 7.62x51mm 低视度红外线曳光弹<br />发数: 20<br />使用于: Mk18 ABR 7.62mm 20Rnd SD Mag @@ -481,6 +547,8 @@ Магазин из 20-ти 7,62 мм дозвуковых 7.62mm 20発入り 亜音速弾 弾倉 20발들이 7.62mm 아음속탄 탄창 + 7.62mm 20發 消音彈 彈匣 + 7.62mm 20发 消音弹 弹匣 7.62mm SD @@ -495,6 +563,8 @@ 7,62 мм дозвуковые 7.62mm 亜音速弾 7.62mm 아음속탄 + 7.62mm 消音彈 + 7.62mm 消音弹 Caliber: 7.62x51mm SD<br />Rounds: 20<br />Used in: Mk18 ABR @@ -509,6 +579,8 @@ Калибр: 7,62x51 мм дозвуковые<br />Патронов: 20<br />Используются с: Mk18 ABR 口径: 7.62x51mm 亜音速弾<br />装填数: 20<br />次で使用: Mk18 ABR 구경: 7.62x51mm SD<br />장탄수: 20<br />사용처: Mk18 ABR + 口徑: 7.62x51mm 消音彈<br />發數: 20<br />使用於: Mk18 ABR + 口径: 7.62x51mm 消音弹<br />发数: 20<br />使用于: Mk18 ABR @@ -524,6 +596,8 @@ .338 NM 130-lövedékes nyomkövető heveder .338 NM 130発入り 曳光弾ベルト 130발들이 .338 NM 예광탄 벨트 + .338 NM 130發 曳光彈 彈鏈 + .338 NM 130发 曳光弹 弹链 .338 NM Tracer @@ -538,6 +612,8 @@ .338 NM nyomkövető .338 NM 曳光弾 .338 NM 예광탄 + .338 NM 曳光彈 + .338 NM 曳光弹 Caliber: .338 Norma Magnum Tracer<br />Rounds: 130<br />Used in: SPMG @@ -552,6 +628,8 @@ Kaliber: .338 Norma Magnum nyomkövető<br />Lövedékek: 130<br />Használható: SPMG 口径: .338 Norma Magnum 曳光弾<br />装填数: 130<br />次で使用: SPMG 구경: .338 Norma 매그넘 예광탄<br />장탄수: 130<br />사용처: SPMG + 口徑: .338 Norma Magnum 曳光彈<br />發數: 130<br />使用於: SPMG + 口径: .338 Norma Magnum 曳光弹<br />发数: 130<br />使用于: SPMG .338 NM 130Rnd IR-DIM Belt @@ -566,6 +644,8 @@ .338 NM 130-lövedékes infravörös nyomkövető heveder .338 NM 130発入り IR-DIM曳光弾ベルト 130발들이 .338 NM IR-DIM 예광탄 벨트 + .338 NM 130發 低視度紅外線曳光彈 彈鏈 + .338 NM 130发 低视度红外线曳光弹 弹链 .338 NM IR-DIM @@ -580,6 +660,8 @@ .338 NM infravörös nyomkövető .338 NM IR-DIM曳光弾 .338 NM IR-DIM 예광탄 + .338 NM 低視紅外曳光彈 + .338 NM 低视红外曳光弹 Caliber: .338 Norma Magnum Tracer IR-DIM<br />Rounds: 130<br />Used in: SPMG @@ -594,6 +676,8 @@ Kaliber: .338 Norma Magnum infravörös nyomkövető<br />Lövedékek: 130<br />Használható: SPMG 口径: .338 Norma Magnum IR-DIM曳光弾<br />装填数: 130<br />次で使用: SPMG 구경: .338 Norma 매그넘 IR-DIM 예광탄<br />장탄수: 130<br />사용처: SPMG + 口徑: .338 Norma Magnum 低視度紅外線曳光彈<br />發數: 130<br />使用於: SPMG + 口径: .338 Norma Magnum 低视度红外线曳光弹<br />发数: 130<br />使用于: SPMG .338 NM 130Rnd AP Belt @@ -608,6 +692,8 @@ .338 NM 130-lövedékes páncéltörő heveder .338 NM 130発入り 徹甲弾ベルト 130발들이 .338 NM 철갑탄 벨트 + .338 NM 130發 穿甲彈 彈鏈 + .338 NM 130发 穿甲弹 弹链 .338 NM AP @@ -622,6 +708,8 @@ .338 NM páncéltörő .338 NM 徹甲弾 .338 NM 철갑탄 + .338 NM 穿甲彈 + .338 NM 穿甲弹 Caliber: .338 Norma Magnum AP<br />Rounds: 130<br />Used in: SPMG @@ -636,6 +724,8 @@ Kaliber: .338 Norma Magnum páncéltörő<br />Lövedékek: 130<br />Használható: SPMG 口径: .338 Norma Magnum 徹甲弾<br />装填数: 130<br />次で使用: SPMG 구경: .338 Norma 매그넘 철갑탄<br />장탄수: 130<br />사용처: SPMG + 口徑: .338 Norma Magnum 穿甲彈<br />發數: 130<br />使用於: SPMG + 口径: .338 Norma Magnum 穿甲弹<br />发数: 130<br />使用于: SPMG @@ -651,6 +741,8 @@ 9,3mm 10-lövedékes nyomkövető tár 9.3mm 10発入り 曳光弾 弾倉 10발들이 9.3mm 예광탄 탄창 + 9.3mm 10發 曳光彈 彈匣 + 9.3mm 10发 曳光弹 弹匣 9.3mm Tracer @@ -665,6 +757,8 @@ 9,3mm nyomkövető 9.3mm 曳光弾 9.3mm 예광탄 + 9.3mm 曳光彈 + 9.3mm 曳光弹 Caliber: 9.3x64mm Tracer<br />Rounds: 10<br />Used in: Cyrus @@ -679,6 +773,8 @@ Kaliber: 9,3x64mm nyomkövető<br />Lövedékek: 10<br />Használható: Cyrus 口径: 9.3x64mm 曳光弾<br />装填数: 10<br />次で使用: Cyrus 구경: 9.3x64mm 예광탄<br />장탄수: 10<br />사용처: Cyrus + 口徑: 9.3x64mm 曳光彈<br />發數: 10<br />使用於: Cyrus + 口径: 9.3x64mm 曳光弹<br />发数: 10<br />使用于: Cyrus 9.3mm 10Rnd Tracer IR-DIM Mag @@ -693,6 +789,8 @@ 9,3mm 10-lövedékes infravörös nyomkövető tár 9.3mm 10発入り IR-DIM曳光弾 弾倉 10발들이 9.3mm IR-DIM 예광탄 탄창 + 9.3mm 10發 低視度紅外線曳光彈 彈匣 + 9.3mm 10发 低视度红外线曳光弹 弹匣 9.3mm IR-DIM @@ -707,6 +805,8 @@ 9,3mm infravörös nyomkövető 9.3mm IR-DIM曳光弾 9.3mm IR-DIM 예광탄 + 9.3mm 低視紅外曳光彈 + 9.3mm 低视红外曳光弹 Caliber: 9.3x64mm Tracer IR-DIM<br />Rounds: 10<br />Used in: Cyrus @@ -721,6 +821,8 @@ Kaliber: 9,3x64mm infravörös nyomkövető<br />Lövedékek: 10<br /> Használható: Cyrus 口径: 9.3x64mm IR-DIM曳光弾<br />装填数: 10<br />次で使用: Cyrus 구경: 9.3x64mm IR-DIM 예광탄<br />장탄수: 10<br />사용처: Cyrus + 口徑: 9.3x64mm 低視度紅外線曳光彈<br />發數: 10<br />使用於: Cyrus + 口径: 9.3x64mm 低视度红外线曳光弹<br />发数: 10<br />使用于: Cyrus @@ -736,6 +838,8 @@ 9,3mm 150-lövedékes nyomkövető heveder 9.3mm 150発入り 曳光弾ベルト 150발들이 9.3mm 예광탄 벨트 + 9.3mm 150發 曳光彈 彈鏈 + 9.3mm 150发 曳光弹 弹链 9.3mm Tracer @@ -750,6 +854,8 @@ 9,3mm nyomkövető 9.3mm 曳光弾 9.3mm 예광탄 + 9.3mm 曳光彈 + 9.3mm 曳光弹 Caliber: 9.3x64mm Tracer<br />Rounds: 150<br />Used in: Navid @@ -764,6 +870,8 @@ Kaliber: 9,3x64mm nyomkövető<br />Lövedékek: 150<br />Használható: Navid 口径: 9.3x64mm 曳光弾<br />装填数: 150<br />次で使用: Navid 구경: 9.3x64mm 예광탄<br />장탄수: 150<br />사용처: Navid + 口徑: 9.3x64mm 曳光彈<br />發數: 150<br />使用於: Navid + 口径: 9.3x64mm 曳光弹<br />发数: 150<br />使用于: Navid 9.3mm 150Rnd Tracer IR-DIM Belt @@ -778,6 +886,8 @@ 9,3mm 150-lövedékes infravörös nyomkövető heveder 9.3mm 150発入り IR-DIM曳光弾ベルト 150발들이 9.3mm IR-DIM 예광탄 벨트 + 9.3mm 150發 低視度紅外線曳光彈 彈鏈 + 9.3mm 150发 低视度红外线曳光弹 弹链 9.3mm IR-DIM @@ -792,6 +902,8 @@ 9,3mm infravörös nyomkövető 9.3mm IR-DIM曳光弾 9.3mm IR-DIM 예광탄 + 9.3mm 低視紅外曳光彈 + 9.3mm 低视红外曳光弹 Caliber: 9.3x64mm Tracer IR-DIM<br />Rounds: 150<br />Used in: Navid @@ -806,6 +918,8 @@ Kaliber: 9,3x64mm infravörös nyomkövető<br />Lövedékek: 150<br />Használható: Navid 口径: 9.3x64mm IR-DIM曳光弾<br />装填数: 150<br />次で使用: Navid 구경: 9.3x64mm IR-DIM 예광탄<br />장탄수: 150<br />사용처: Navid + 口徑: 9.3x64mm 低視度紅外線曳光彈<br />發數: 150<br />使用於: Navid + 口径: 9.3x64mm 低视度红外线曳光弹<br />发数: 150<br />使用于: Navid 9.3mm 150Rnd AP Belt @@ -820,6 +934,8 @@ 9,3mm 150-lövedékes páncéltörő heveder 9.3mm 150発入り 徹甲弾ベルト 150발들이 9.3mm 철갑탄 벨트 + 9.3mm 150發 穿甲彈 彈鏈 + 9.3mm 150发 穿甲弹 弹链 9.3mm AP @@ -834,6 +950,8 @@ 9,3mm páncéltörő 9.3mm 徹甲弾 9.3mm 철갑탄 + 9.3mm 穿甲彈 + 9.3mm 穿甲弹 Caliber: 9.3x64mm AP<br />Rounds: 150<br />Used in: Navid @@ -848,6 +966,8 @@ Kaliber: 9,3x64mm páncéltörő<br />Lövedékek: 150<br />Használható: Navid 口径: 9.3x64mm 徹甲弾<br />装填数: 150<br />次で使用: Navid 구경: 9.3x64mm 철갑탄<br />장탄수: 150<br />사용처: Navid + 口徑: 9.3x64mm 穿甲彈<br />發數: 150<br />使用於: Navid + 口径: 9.3x64mm 穿甲弹<br />发数: 150<br />使用于: Navid 9x19mm 16Rnd Mag @@ -862,6 +982,8 @@ 9x19mm 16-lövedékes tár 9x19mm 16発入り 弾倉 16발들이 9x19mm 탄창 + 9x19mm 16發 彈匣 + 9x19mm 16发 弹匣 9x19mm @@ -876,6 +998,8 @@ 9x19mm 9x19mm 9x19mm + 9x19mm + 9x19mm 9x19mm 30Rnd Mag @@ -890,6 +1014,8 @@ 9x19mm 16-lövedékes tár 9x19mm 30発入り 弾倉 30발들이 9x19mm 탄창 + 9x19mm 30發 彈匣 + 9x19mm 30发 弹匣 9x19mm 30Rnd Mag @@ -904,6 +1030,8 @@ 9x19mm 30-lövedékes tár 9x19mm 30発入り 弾倉 30발들이 9x19mm 탄창 + 9x19mm 30發 彈匣 + 9x19mm 30发 弹匣 9x19mm @@ -918,6 +1046,8 @@ 9x19mm 9x19mm 9x19mm + 9x19mm + 9x19mm 9x19mm 30Rnd Mag @@ -932,6 +1062,8 @@ 9x19mm 30-lövedékes tár 9x19mm 30発入り 弾倉 30발들이 9x19mm 탄창 + 9x19mm 30發 彈匣 + 9x19mm 30发 弹匣 7.62x54mm 10Rnd Tracer Mag @@ -946,6 +1078,8 @@ 7,62x54mm 10-lövedékes nyomkövető tár 7.62x54mm 10発入り 曳光弾 弾倉 10발들이 7.62x54mm 예광탄 탄창 + 7.62x54mm 10發 曳光彈 彈匣 + 7.62x54mm 10发 曳光弹 弹匣 7.62mm @@ -960,6 +1094,8 @@ 7,62mm 7.62mm 7.62mm + 7.62mm + 7.62mm 7.62x54mm 10Rnd Tracer Mag @@ -974,6 +1110,8 @@ 7,62x54mm 10-lövedékes nyomkövető tár 7.62x54mm 10発入り 曳光弾 弾倉 10발들이 7.62x54mm 예광탄 탄창 + 7.62x54mm 10發 曳光彈 彈匣 + 7.62x54mm 10发 曳光弹 弹匣 6.5mm 100Rnd Tracer IR-DIM Mag @@ -988,6 +1126,8 @@ 6,5mm 100-lövedékes infravörös nyomkövető tár 6.5mm 100発入り IR-DIM曳光弾 弾倉 100발들이 6.5mm IR-DIM 예광탄 탄창 + 6.5mm 100發 低視度紅外線曳光彈 彈匣 + 6.5mm 100发 低视度红外线曳光弹 弹匣 6.5mm IR-DIM @@ -1002,6 +1142,8 @@ 6,5mm infravörös nyomkövető 6.5mm IR-DIM曳光弾 6.5mm IR-DIM 예광탄 + 6.5mm 低視紅外曳光彈 + 6.5mm 低视红外曳光弹 6.5mm 100Rnd Tracer IR-DIM Mag<br />Rounds: 100<br />Used in: MX LSW @@ -1016,6 +1158,8 @@ 6.5mm 100-lövedékes infravörös nyomkövető tár<br />Lövedékek: 100<br />Használható: MX LSW 6.5mm 100発入り IR-DIM曳光弾 弾倉<br />装填数: 100<br />次で使用: MX LSW 100발들이 6.5mm IR-DIM 예광탄 탄창<br />장탄수: 100<br />사용처: MX LSW + 6.5mm 100發 低視度紅外線曳光彈<br />發數: 100<br />使用於: MX LSW + 6.5mm 100发 低视度红外线曳光弹<br />发数: 100<br />使用于: MX LSW 6.5mm 200Rnd Tracer IR-DIM Belt @@ -1030,6 +1174,8 @@ 6,5mm 200-lövedékes infravörös nyomkövető heveder 6.5mm 200発入り IR-DIM曳光弾ベルト 200발들이 6.5mm IR-DIM 예광탄 탄창 + 6.5mm 200發 低視度紅外線曳光彈 彈鏈 + 6.5mm 200发 低视度红外线曳光弹 弹链 6.5mm IR-DIM @@ -1044,6 +1190,8 @@ 6,5mm infravörös nyomkövető 6.5mm IR-DIM曳光弾 6.5mm IR-DIM 예광탄 + 6.5mm 低視紅外曳光彈 + 6.5mm 低视红外曳光弹 6.5mm 200Rnd Tracer IR-DIM Belt<br />Rounds: 200<br />Used in: Stoner 99 LMG @@ -1058,6 +1206,8 @@ 6.5mm 200-lövedékes infravörös nyomkövető heveder<br />Lövedékek: 200<br />Használható: Stoner 99 LMG 6.5mm 200発入り IR-DIM曳光弾ベルト<br />装填数: 200<br />次で使用: Stoner 99 LMG 200발들이 6.5mm IR-DIM 예광탄 벨트<br />장탄수: 200<br />사용처: Stoner 99 LMG + 6.5mm 200發 低視度紅外線曳光彈<br />發數: 200<br />使用於: Stoner 99 LMG + 6.5mm 200发 低视度红外线曳光弹<br />发数: 200<br />使用于: Stoner 99 LMG 5.56mm 30Rnd Mag (Mk262) @@ -1072,6 +1222,8 @@ 5,56mm 30-lövedékes tár (Mk262) 5.56mm 30発入り 弾倉 (Mk262) 30발들이 5.56mm 탄창 (Mk262) + 5.56mm 30發 彈匣 (Mk262 狙擊專用彈) + 5.56mm 30发 弹匣 (Mk262 狙击专用弹) 5.56mm Mk262 @@ -1086,6 +1238,8 @@ 5,56mm Mk262 5.56mm Mk262 5.56mm Mk262 + 5.56mm Mk262 狙擊專用彈 + 5.56mm Mk262 狙击专用弹 Caliber: 5.56x45mm NATO (Mk262)<br />Rounds: 30 @@ -1100,6 +1254,8 @@ Kaliber: 5,56x45mm NATO (Mk262)<br />Lövedékek: 30 口径: 5.56x45mm NATO (Mk262)<br />装填数: 30 구경: 5.56x45mm NATO (Mk262)<br />장탄수: 30 + 口徑: 5.56x45mm NATO標準 (Mk262 狙擊專用彈)<br />發數: 30 + 口径: 5.56x45mm NATO标准 (Mk262 狙击专用弹)<br />发数: 30 5.56mm 30Rnd Mag (Mk318) @@ -1114,6 +1270,8 @@ 5,56mm 30-lövedékes tár (Mk318) 5.56mm 30発入り 弾倉 (Mk318) 30발들이 5.56mm 탄창 (Mk318) + 5.56mm 30發 彈匣 (Mk318 特戰專用彈) + 5.56mm 30发 弹匣 (Mk318 特战专用弹) 5.56mm Mk318 @@ -1128,6 +1286,8 @@ 5,56mm Mk318 5.56mm Mk318 5.56mm Mk318 + 5.56mm Mk318 特戰專用彈 + 5.56mm Mk318 特战专用弹 Caliber: 5.56x45mm NATO (Mk318)<br />Rounds: 30 @@ -1142,6 +1302,8 @@ Kaliber: 5,56x45mm NATO (Mk318)<br />Lövedékek: 30 口径: 5.56x45mm NATO (Mk318)<br />装填数: 30 구경: 5.56x45mm NATO (Mk318)<br />장탄수: 30 + 口徑: 5.56x45mm NATO標準 (Mk318 特戰專用彈)<br />發數: 30 + 口径: 5.56x45mm NATO标准 (Mk318 特战专用弹)<br />发数: 30 5.56mm 30Rnd Mag (M995 AP) @@ -1156,6 +1318,8 @@ 5,56mm 30-lövedékes tár (M995 páncéltörő) 5.56mm 30発入り 弾倉 (M995 徹甲弾) 30발들이 5.56mm 탄창 (Mk995 철갑탄) + 5.56mm 30發 彈匣 (M995 穿甲彈) + 5.56mm 30发 弹匣 (M995 穿甲弹) 5.56mm AP @@ -1170,6 +1334,8 @@ 5,56mm páncéltörő 5.56mm 徹甲弾 5.56mm 철갑탄 + 5.56mm M995 穿甲彈 + 5.56mm M995 穿甲弹 Caliber: 5.56x45mm NATO (M995 AP)<br />Rounds: 30 @@ -1184,6 +1350,8 @@ Kaliber: 5,56x45mm NATO (M995 páncéltörő)<br />Lövedékek: 30 口径: 5.56x45mm NATO (M995 徹甲弾)<br />装填数: 30 구경: 5.56x45mm NATO (Mk995 철갑탄)<br />장탄수: 30 + 口徑: 5.56x45mm NATO標準 (M995 穿甲彈)<br />發數: 30 + 口径: 5.56x45mm NATO标准 (M995 穿甲弹)<br />发数: 30 7.62mm 10Rnd Mag (M118LR) @@ -1198,6 +1366,8 @@ 7,62mm 10-lövedékes tár (M118LR) 7.62mm 10発入り 弾倉 (M118LR) 10발들이 7.62mm 탄창 (M118LR) + 7.62mm 10發 彈匣 (M118LR 狙擊專用彈) + 7.62mm 10发 弹匣 (M118LR 狙击专用弹) 7.62mm M118LR @@ -1212,6 +1382,8 @@ 7,62mm M118LR 7.62mm M118LR 7.62mm M118LR + 7.62mm M118LR 狙擊專用彈 + 7.62mm M118LR 狙击专用弹 Caliber: 7.62x51mm NATO (M118LR)<br />Rounds: 10 @@ -1226,6 +1398,8 @@ Kaliber: 7,62x51mm NATO (M118LR)<br />Lövedékek: 10 口径: 7.62x51mm NATO (M118LR)<br />装填数: 10 구경: 7.62x51mm NATO (M118LR)<br />장탄수: 10 + 口徑: 7.62x51mm NATO標準 (M118LR 狙擊專用彈)<br />發數: 10 + 口径: 7.62x51mm NATO标准 (M118LR 狙击专用弹)<br />发数: 10 7.62mm 20Rnd Mag (M118LR) @@ -1240,6 +1414,8 @@ 7,62mm 20-lövedékes tár (M118LR) 7.62mm 20発入り 弾倉 (M118LR) 20발들이 7.62mm 탄창 (M118LR) + 7.62mm 20發 彈匣 (M118LR 狙擊專用彈) + 7.62mm 20发 弹匣 (M118LR 狙击专用弹) 7.62mm M118LR @@ -1254,6 +1430,8 @@ 7,62mm M118LR 7.62mm M118LR 7.62mm M118LR + 7.62mm M118LR 狙擊專用彈 + 7.62mm M118LR 狙击专用弹 Caliber: 7.62x51mm NATO (M118LR)<br />Rounds: 20 @@ -1268,6 +1446,8 @@ Kaliber: 7,62x51mm NATO (M118LR)<br />Lövedékek: 20 口径: 7.62x51mm NATO (M118LR)<br />装填数: 20 구경: 7.62x51mm NATO (M118LR)<br />장탄수: 20 + 口徑: 7.62x51mm NATO標準 (M118LR 狙擊專用彈)<br />發數: 20 + 口径: 7.62x51mm NATO标准 (M118LR 狙击专用弹)<br />发数: 20 7.62mm 10Rnd Mag (Mk316 Mod 0) @@ -1282,6 +1462,8 @@ 7,62mm 10-lövedékes tár (Mk316 Mod 0) 7.62mm 10発入り 弾倉 (Mk316 Mod 0) 10발들이 7.62mm 탄창 (Mk316 Mod 0) + 7.62mm 10發 彈匣 (Mk316 Mod 0 狙擊專用彈) + 7.62mm 10发 弹匣 (Mk316 Mod 0 狙击专用弹) 7.62mm Mk316 @@ -1296,6 +1478,8 @@ 7,62mm Mk316 7.62mm Mk316 7.62mm Mk316 + 7.62mm Mk316 狙擊專用彈 + 7.62mm Mk316 狙击专用弹 Caliber: 7.62x51mm NATO (Mk316 Mod 0)<br />Rounds: 10 @@ -1310,6 +1494,8 @@ Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Lövedékek: 10 口径: 7.62x51mm NATO (Mk316 Mod 0)<br />装填数: 10 구경: 7.62x51mm NATO (Mk316 Mod 0)<br />장탄수: 10 + 口徑: 7.62x51mm NATO標準 (Mk316 Mod 0 狙擊專用彈)<br />發數: 10 + 口径: 7.62x51mm NATO标准 (Mk316 Mod 0 狙击专用弹)<br />发数: 10 7.62mm 20Rnd Mag (Mk316 Mod 0) @@ -1324,6 +1510,8 @@ 7,62mm 20-lövedékes tár (Mk316 Mod 0) 7.62mm 20発入り 弾倉 (Mk316 Mod 0) 20발들이 7.62mm 탄창 (Mk316 Mod 0) + 7.62mm 20發 彈匣 (Mk316 Mod 0 狙擊專用彈) + 7.62mm 20发 弹匣 (Mk316 Mod 0 狙击专用弹) 7.62mm Mk316 @@ -1338,6 +1526,8 @@ 7,62mm Mk316 7.62mm Mk316 7.62mm Mk316 + 7.62mm Mk316 狙擊專用彈 + 7.62mm Mk316 狙击专用弹 Caliber: 7.62x51mm NATO (Mk316 Mod 0)<br />Rounds: 20 @@ -1352,6 +1542,8 @@ Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Lövedékek: 20 口径: 7.62x51mm NATO (Mk316 Mod 0)<br />装填数: 20 구경: 7.62x51mm NATO (Mk316 Mod 0)<br />장탄수: 20 + 口徑: 7.62x51mm NATO標準 (Mk316 Mod 0 狙擊專用彈)<br />發數: 20 + 口径: 7.62x51mm NATO标准 (Mk316 Mod 0 狙击专用弹)<br />发数: 20 7.62mm 10Rnd Mag (Mk319 Mod 0) @@ -1366,6 +1558,8 @@ 7,62mm 10-lövedékes tár (Mk319 Mod 0) 7.62mm 10発入り 弾倉 (Mk319 Mod 0) 10발들이 7.62mm 탄창 (Mk319 Mod 0) + 7.62mm 10發 彈匣 (Mk319 Mod 0 特戰專用彈) + 7.62mm 10发 弹匣 (Mk319 Mod 0 特战专用弹) 7.62mm Mk319 @@ -1380,6 +1574,8 @@ 7,62mm Mk319 7.62mm Mk319 7.62mm Mk319 + 7.62mm Mk319 特戰專用彈 + 7.62mm Mk319 特战专用弹 Caliber: 7.62x51mm NATO (Mk319 Mod 0)<br />Rounds: 10 @@ -1394,6 +1590,8 @@ Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Lövedékek: 10 口径: 7.62x51mm NATO (Mk319 Mod 0)<br />装填数: 10 구경: 7.62x51mm NATO (Mk319 Mod 0)<br />장탄수: 10 + 口徑: 7.62x51mm NATO標準 (Mk319 Mod 0 特戰專用彈)<br />發數: 10 + 口径: 7.62x51mm NATO标准 (Mk319 Mod 0 特战专用弹)<br />发数: 10 7.62mm 20Rnd Mag (Mk319 Mod 0) @@ -1408,6 +1606,8 @@ 7,62mm 20-lövedékes tár (Mk319 Mod 0) 7.62mm 20発入り 弾倉 (Mk319 Mod 0) 20발들이 7.62mm 탄창 (Mk319 Mod 0) + 7.62mm 20發 彈匣 (Mk319 Mod 0 特戰專用彈) + 7.62mm 20发 弹匣 (Mk319 Mod 0 特战专用弹) 7.62mm Mk319 @@ -1422,6 +1622,8 @@ 7,62mm Mk319 7.62mm Mk319 7.62mm Mk319 + 7.62mm Mk319 特戰專用彈 + 7.62mm Mk319 特战专用弹 Caliber: 7.62x51mm NATO (Mk319 Mod 0)<br />Rounds: 20 @@ -1436,6 +1638,8 @@ Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Lövedékek: 20 口径: 7.62x51mm NATO (Mk319 Mod 0)<br />装填数: 20 구경: 7.62x51mm NATO (Mk319 Mod 0)<br />장탄수: 20 + 口徑: 7.62x51mm NATO標準 (Mk319 Mod 0 特戰專用彈)<br />發數: 20 + 口径: 7.62x51mm NATO标准 (Mk319 Mod 0 特战专用弹)<br />发数: 20 7.62mm 10Rnd Mag (M993 AP) @@ -1450,6 +1654,8 @@ 7,62mm 10-lövedékes tár (M993 páncéltörő) 7.62mm 10発入り 弾倉 (M993 徹甲弾) 10발들이 7.62mm 탄창 (M993 철갑탄) + 7.62mm 10發 彈匣 (M993 穿甲專用彈) + 7.62mm 10发 弹匣 (M993 穿甲专用弹) 7.62mm AP @@ -1464,6 +1670,8 @@ 7,62mm páncéltörő 7.62mm 徹甲弾 7.62mm 철갑탄 + 7.62mm M993 穿甲專用彈 + 7.62mm M993 穿甲专用弹 Caliber: 7.62x51mm NATO (M993 AP)<br />Rounds: 10 @@ -1478,6 +1686,8 @@ Kaliber: 7,62x51mm NATO (M993 páncéltörő)<br />Lövedékek: 10 口径: 7.62x51mm NATO (Mk319 Mod 0)<br />装填数: 10 구경: 7.62x51mm NATO (M993 철갑탄)<br />장탄수: 10 + 口徑: 7.62x51mm NATO標準 (M993 穿甲專用彈)<br />發數: 10 + 口径: 7.62x51mm NATO标准 (M993 穿甲专用弹)<br />发数: 10 7.62mm 20Rnd Mag (M993 AP) @@ -1492,6 +1702,8 @@ 7,62mm 20-lövedékes tár (M993 páncéltörő) 7.62mm 20発入り 弾倉 (M993 徹甲弾) 20발들이 7.62mm 탄창 (M993 철갑탄) + 7.62mm 20發 彈匣 (M993 穿甲專用彈) + 7.62mm 20发 弹匣 (M993 穿甲专用弹) 7.62mm AP @@ -1506,6 +1718,8 @@ 7,62mm páncéltörő 7.62mm 徹甲弾 7.62mm 철갑탄 + 7.62mm M993 穿甲專用彈 + 7.62mm M993 穿甲专用弹 Caliber: 7.62x51mm NATO (M993 AP)<br />Rounds: 20 @@ -1520,6 +1734,8 @@ Kaliber: 7,62x51mm NATO (M993 páncéltörő)<br />Lövedékek: 20 口径: 7.62x51mm NATO (M993 徹甲弾)<br />装填数: 20 구경: 7.62x51mm NATO (M993 철갑탄)<br />장탄수: 20 + 口徑: 7.62x51mm NATO標準 (M993 穿甲專用彈)<br />發數: 20 + 口径: 7.62x51mm NATO标准 (M993 穿甲专用弹)<br />发数: 20 7.62mm 20Rnd Mag (Mk248 Mod 0) @@ -1534,6 +1750,8 @@ 7,62mm 20-lövedékes tár (Mk248 Mod 0) 7.62mm 20発入り 弾倉 (Mk248 Mod 0) 20발들이 7.62mm 탄창 (Mk248 Mod 0) + 7.62mm 20發 彈匣 (Mk248 Mod 0 狙擊專用彈) + 7.62mm 20发 弹匣 (Mk248 Mod 0 狙击专用弹) 7.62mm Mk248 @@ -1548,6 +1766,8 @@ 7,62mm Mk248 7.62mm Mk248 7.62mm Mk248 + 7.62mm Mk248 狙擊專用彈 + 7.62mm Mk248 狙击专用弹 Caliber: 7.62x67mm NATO (Mk248 Mod 0)<br />Rounds: 20 @@ -1562,6 +1782,8 @@ Kaliber: 7,62x51mm NATO (Mk248 Mod 0)<br />Lövedékek: 20 口径: 7.62x67mm NATO (Mk248 Mod 0)<br />装填数: 20 구경: 7.62x51mm NATO (Mk248 Mod 0)<br />장탄수: 20 + 口徑: 7.62x67mm NATO標準 (Mk248 Mod 0 狙擊專用彈)<br />發數: 20 + 口径: 7.62x67mm NATO标准 (Mk248 Mod 0 狙击专用弹)<br />发数: 20 7.62mm 20Rnd Mag (Mk248 Mod 1) @@ -1576,6 +1798,8 @@ 7,62mm 20-lövedékes tár (Mk248 Mod 1) 7.62mm 20発入り 弾倉 (Mk248 Mod 1) 20발들이 7.62mm 탄창 (Mk248 Mod 1) + 7.62mm 20發 彈匣 (Mk248 Mod 1 狙擊專用彈) + 7.62mm 20发 弹匣 (Mk248 Mod 1 狙击专用弹) 7.62mm Mk248 @@ -1590,6 +1814,8 @@ 7,62mm Mk248 7.62mm Mk248 7.62mm Mk248 + 7.62mm Mk248 狙擊專用彈 + 7.62mm Mk248 狙击专用弹 Caliber: 7.62x67mm NATO (Mk248 Mod 1)<br />Rounds: 20 @@ -1604,6 +1830,8 @@ Kaliber: 7,62x51mm NATO (Mk248 Mod 1)<br />Lövedékek: 20 口径: 7.62x67mm NATO (Mk248 Mod 1)<br />装填数: 20 구경: 7.62x51mm NATO (Mk248 Mod 1)<br />장탄수: 20 + 口徑: 7.62x67mm NATO標準 (Mk248 Mod 1 狙擊專用彈)<br />發數: 20 + 口径: 7.62x67mm NATO标准 (Mk248 Mod 1 狙击专用弹)<br />发数: 20 7.62mm 20Rnd Mag (Berger Hybrid OTM) @@ -1618,6 +1846,8 @@ 7,62mm 20-lövedékes tár (Berger Hybrid OTM) 7.62mm 20発入り 弾倉 (Berger Hybrid OTM) 20발들이 7.62mm 탄창 (Berger Hybrid OTM) + 7.62mm 20發 彈匣 (Berger Hybrid 空尖比賽專用彈) + 7.62mm 20发 弹匣 (Berger Hybrid 空尖比赛专用弹) 7.62mm OTM @@ -1632,6 +1862,8 @@ 7,62mm OTM 7.62mm OTM 7.62mm OTM + 7.62mm 空尖比賽專用彈 + 7.62mm 空尖比赛专用弹 Caliber: 7.62x67mm NATO (Berger Hybrid OTM)<br />Rounds: 20 @@ -1646,6 +1878,8 @@ Kaliber: 7,62x67mm NATO (Berger Hybrid OTM)<br />Lövedékek: 20 口径: 7.62x67mm NATO (Berger Hybrid OTM)<br />装填数: 20 구경: 7.62x51mm NATO (Berger Hybrid OTM)<br />장탄수: 20 + 口徑: 7.62x67mm NATO標準 (Berger Hybrid 空尖比賽專用彈)<br />發數: 20 + 口径: 7.62x67mm NATO标准 (Berger Hybrid 空尖比赛专用弹)<br />发数: 20 6.5x47mm 30Rnd Mag (HPBT Scenar) @@ -1660,6 +1894,8 @@ 6,5x47mm 30-lövedékes tár (HPBT Scenar) 6.5x47mm 30発入り 弾倉 (HPBT Scenar) 30발들이 6.5x47mm 탄창 (HPBT Scenar) + 6.5x47mm 30發 彈匣 (Lapua 空尖艇尾狙擊專用彈) + 6.5x47mm 30发 弹匣 (Lapua 空尖艇尾狙击专用弹) 6.5mm Lapua @@ -1674,6 +1910,8 @@ 6,5mm Lapua 6.5mm Lapua 6.5mm Lapua + 6.5mm Lapua 空尖艇尾狙擊專用彈 + 6.5mm Lapua 空尖艇尾狙击专用弹 Caliber: 6.5x47mm (HPBT Scenar)<br />Rounds: 30<br />Used in: MXM @@ -1688,6 +1926,8 @@ Kaliber: 6,5x47mm (HPBT Scenar)<br />Lövedékek: 30<br />Használható: MXM 口径: 6.5x47mm (HPBT Scenar)<br />装填数: 30<br />次で使用: MXM 구경: 6.5x47mm (HPBT Scenar)<br />장탄수: 30<br />사용처: MXM + 口徑: 6.5x47mm (Lapua 空尖艇尾狙擊專用彈)<br />發數: 30<br />使用於: MXM + 口径: 6.5x47mm (Lapua 空尖艇尾狙击专用弹)<br />发数: 30<br />使用于: MXM 6.5mm Creedmor 30Rnd Mag @@ -1702,6 +1942,8 @@ 6,5mm Creedmor 30-lövedékes tár 6.5mm Creedmor 30発入り 弾倉 30발들이 6.5mm Creedmor 탄창 + 6.5mm 30發 彈匣 (Creedmor 狙擊專用彈) + 6.5mm 30发 弹匣 (Creedmor 狙击专用弹) 6.5mm CM @@ -1716,6 +1958,8 @@ 6,5mm CM 6.5mm CM 6.5mm CM + 6.5mm CM 狙擊專用彈 + 6.5mm CM 狙击专用弹 Caliber: 6.5x47mm Creedmor<br />Rounds: 30<br />Used in: MXM @@ -1730,6 +1974,8 @@ Kaliber: 6,5x47mm Creedmor<br />Lövedékek: 30<br />Használható: MXM 口径: 6.5x47mm Creedmor<br />装填数: 30<br />次で使用: MXM 구경: 6.5x47mm Creedmor<br />장탄수: 30<br />사용처: MXM + 口徑: 6.5x47mm Creedmor 狙擊專用彈<br />發數: 30<br />使用於: MXM + 口径: 6.5x47mm Creedmor 狙击专用弹<br />发数: 30<br />使用于: MXM .338 10Rnd Mag (300gr Sierra MatchKing HPBT) @@ -1744,6 +1990,8 @@ .338 10-lövedékes tár (300gr Sierra MatchKing HPBT) .338 10発入り 弾倉 (300gr Sierra MatchKing HPBT) 10발들이 .338 탄창 (300gr Sierra MatchKing HPBT) + .338 10發 彈匣 (300公克 Sierra MatchKing 空尖艇尾比賽專用彈) + .338 10发 弹匣 (300公克 Sierra MatchKing 空尖艇尾比赛专用弹) .338 HPBT @@ -1758,6 +2006,8 @@ .338 HPBT 338 HPBT .338 HPBT + .338 空尖艇尾比賽專用彈 + .338 空尖艇尾比赛专用弹 Caliber: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Rounds: 10 @@ -1772,6 +2022,8 @@ Kaliber: 8,6x70mm (300gr Sierra MatchKing HPBT)<br />Lövedékek: 10 口径: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />装填数: 10 구경: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />장탄수: 10 + 口徑: 8.6x70mm (300公克 Sierra MatchKing 空尖艇尾比賽專用彈)<br />發數: 10 + 口径: 8.6x70mm (300公克 Sierra MatchKing 空尖艇尾比赛专用弹)<br />发数: 10 .338 10Rnd Mag (API526) @@ -1786,6 +2038,8 @@ .338 10-lövedékes tár (API526) .338 10発入り 弾倉 (API526) 10발들이 .338 탄창 (API526) + .338 10發 彈匣 (API526 穿甲燃燒彈) + .338 10发 弹匣 (API526 穿甲燃烧弹) .338 AP @@ -1800,6 +2054,8 @@ .338 páncéltörő .338 徹甲弾 .338 철갑탄 + .338 API526 穿甲燃燒彈 + .338 API526 穿甲燃烧弹 Caliber: 8.6x70mm (API526)<br />Rounds: 10 @@ -1814,6 +2070,8 @@ Kaliber: 8,6x70mm (API526)<br />Lövedékek: 10 口径: 8.6x70mm (API526)<br />装填数: 10 구경: 8.6x70mm (API526)<br />장탄수: 10 + 口徑: 8.6x70mm (API526 穿甲燃燒彈)<br />發數: 10 + 口径: 8.6x70mm (API526 穿甲燃烧弹)<br />发数: 10 .408 7Rnd Mag (305gr) @@ -1828,6 +2086,8 @@ .408 7-lövedékes tár (305gr) .408 7発入り 弾倉 (305gr) 7발들이 .408 탄창 (305gr) + .408 7發 彈匣 (305公克) + .408 7发 弹匣 (305公克) .408 @@ -1842,6 +2102,8 @@ .408 .408 .408 + .408 + .408 Caliber: .408 CheyTac (305gr)<br />Rounds: 7 @@ -1856,6 +2118,8 @@ Kaliber: .408 CheyTac (305gr)<br />Lövedékek: 7 口径: .408 CheyTac (305gr)<br />装填数: 7 구경: .408 CheyTac (305gr)<br />장탄수: 7 + 口徑: .408 夏伊戰術狙擊彈 (305公克)<br />發數: 7 + 口径: .408 夏伊战术狙击弹 (305公克)<br />发数: 7 12.7x99mm 5Rnd Mag @@ -1870,6 +2134,8 @@ 12,7x99mm 5-lövedékes tár 12.7x99mm 5発入り 弾倉 5발들이 12.7x99mm 탄창 + 12.7x99mm 5發 彈匣 + 12.7x99mm 5发 弹匣 12.7mm @@ -1884,6 +2150,8 @@ 12,7mm 12.7mm 12.7mm + 12.7mm + 12.7mm Caliber: 12.7x99mm<br />Rounds: 5 @@ -1898,6 +2166,8 @@ Kaliber: 12,7x99mm<br />Lövedékek: 5 口径: 12.7x99mm<br />装填数: 5 구경: 12.7x99mm<br />장탄수: 5 + 口徑: 12.7x99mm<br />發數: 5 + 口径: 12.7x99mm<br />发数: 5 12.7x99mm API 5Rnd Mag @@ -1912,6 +2182,8 @@ 12,7x99mm 5-lövedékes tár (páncéltörő-gyújtó) 12.7x99mm 5発入り焼夷徹甲弾 弾倉 5발들이 12.7x99mm 철갑소이탄 탄창 + 12.7x99mm 穿甲燃燒彈 5發 彈匣 + 12.7x99mm 穿甲燃烧弹 5发 弹匣 12.7mm API @@ -1926,6 +2198,8 @@ 12,7mm páncéltörő-gyújtó 12.7mm 焼夷徹甲弾 12.7mm 철갑소이탄 + 12.7mm 穿甲燃燒彈 + 12.7mm 穿甲燃烧弹 Caliber: 12.7x99mm API<br />Rounds: 5 @@ -1940,6 +2214,8 @@ Kaliber: 12,7x99mm API<br />Lövedékek: 5 口径: 12.7x99mm 焼夷徹甲弾<br />装填数: 5 구경: 12.7x99mm 철갑소이탄<br />장탄수: 5 + 口徑: 12.7x99mm 穿甲燃燒彈<br />發數: 5 + 口径: 12.7x99mm 穿甲燃烧弹<br />发数: 5 12.7x99mm 5Rnd Mag (AMAX) @@ -1954,6 +2230,8 @@ 12,7x99mm 5-lövedékes tár (AMAX) 12.7x99mm 5発入り 弾倉 (AMAX) 5발들이 12.7x99mm 탄창 (AMAX) + 12.7x99mm 5發 彈匣 (AMAX 比賽專用彈) + 12.7x99mm 5发 弹匣 (AMAX 比赛专用弹) 12.7mm @@ -1968,6 +2246,8 @@ 12,7mm 12.7mm 12.7mm + 12.7mm AMAX 比賽專用彈 + 12.7mm AMAX 比赛专用弹 Caliber: 12.7x99mm (AMAX)<br />Rounds: 5 @@ -1982,6 +2262,8 @@ Kaliber: 12,7x99mm (AMAX)<br />Lövedékek: 5 口径: 12.7x99mm (AMAX)<br />装填数: 5 구경: 12.7x99mm (AMAX)<br />장탄수: 5 + 口徑: 12.7x99mm (AMAX 比賽專用彈)<br />發數: 5 + 口径: 12.7x99mm (AMAX 比赛专用弹)<br />发数: 5 [ACE] Ammo Supply Crate @@ -1996,6 +2278,8 @@ [ACE] Cassa munizioni [ACE] 弾薬物資箱 [ACE] 탄약 보급 상자 + [ACE] 彈藥補給箱 + [ACE] 弹药补给箱 diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml index f54f53e48ee..8b976754257 100644 --- a/addons/captives/stringtable.xml +++ b/addons/captives/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Взять в плен 捕虜にする 사로잡기 + 逮捕俘虜 + 逮捕俘虏 Free Prisoner @@ -28,6 +30,8 @@ Освободить пленника 捕虜を解放する 풀어주기 + 釋放俘虜 + 释放俘虏 Escort Prisoner @@ -42,6 +46,8 @@ Конвоировать пленника 捕虜を移動させる 포로 호송하기 + 護送俘虜 + 护送俘虏 Release Prisoner @@ -56,6 +62,8 @@ Прекратить конвоирование 捕虜を解放する 포로 풀어주기 + 停止護送俘虜 + 停止护送俘虏 You need to take him as prisoner first! @@ -70,6 +78,8 @@ Вы должны сначала взять его в плен! あなたは先に捕虜を取る必要があります。 먼저 포로로 만들어야합니다! + 你必須先逮捕他! + 你必须先逮捕他! Load Captive @@ -84,6 +94,8 @@ Fai salire il prigioniero 捕虜を乗せる 포로 태우기 + 將俘虜放入載具 + 将俘虏放入载具 Unload Captive @@ -98,6 +110,8 @@ Fai scendere il prigioniero 捕虜を降ろす 포로 내리기 + 將俘虜帶出載具 + 将俘虏带出载具 Cable Tie @@ -112,6 +126,8 @@ Кабельная стяжка ケーブル タイ 케이블 타이 + 束線帶 + 束线带 Cable ties that allow you to restrain prisoners. @@ -126,6 +142,8 @@ Кабельные стяжки позволяют связывать пленников. ケーブル タイは捕虜を制圧できます。 케이블 타이는 포로를 구류시킬때 씁니다. + 束線帶可以綁住俘虜 + 束线带可以绑住俘虏 Inventory of frisked person @@ -140,6 +158,8 @@ Inventario della persona perquisita 捕虜の持ち物を確認する 검문당한 사람의 소지품 + 搜身選單 + 搜身选单 Frisk person @@ -154,6 +174,8 @@ Perquisisci la persona 捕虜の持ち物 검문당한사람 + 搜身 + 搜身 Surrender @@ -168,6 +190,8 @@ Arrenditi 投降 투항 + 投降 + 投降 Stop Surrendering @@ -182,6 +206,8 @@ Smetti di arrenderti 投降をやめる 투항하는것을 멈춤 + 停止投降 + 停止投降 Make Unit Surrender @@ -196,6 +222,8 @@ Fai arrendere l'unità ユニットを投降させる 투항시키기 + 使單位投降 + 使单位投降 Sync a unit to make them surrender. @@ -210,6 +238,8 @@ Sincronizza una unità per farla arrendere. 同期されたユニットを投降させます。 투항시키기 위해 동기화합니다. + 同步此模塊到一個單位, 使該單位投降 + 同步此模块到一个单位, 使该单位投降 Make Unit Handcuffed @@ -223,6 +253,8 @@ Rendre une unité captive ユニットを拘束する 수갑을 채우기 + 使單位戴上手銬 + 使单位戴上手铐 Sync a unit to make them handcuffed. @@ -236,6 +268,8 @@ Synchronisez une unité pour la rendre captive. 同期されたユニットを拘束させます。 수갑을 채우기 위해 동기화합니다. + 使單位戴上手銬 + 使单位戴上手铐 Captives Settings @@ -250,6 +284,8 @@ Impostazioni Prigionieri 拘束の設定 포로 설정 + 俘虜設定 + 俘虏设定 Controls settings for surrender and cable ties @@ -264,6 +300,8 @@ Controlla le impostazioni per la resa e le manette 投降したユニットや拘束されたユニットの扱いを設定します。 투항과 케이블 타이에 관련한 설정 + 定義投降與束帶等設定 + 定义投降与束带等设定 Can handcuff own side @@ -278,6 +316,8 @@ Puoi ammanettare unità alleate 自陣営への拘束を可能に 자기편에게 수갑을 채울 수 있게 합니다 + 可以銬住同陣營隊友 + 可以铐住同阵营队友 Can players cabletie units on their own side @@ -292,6 +332,8 @@ I giocatori possono ammanettare unità alleate プレイヤーがユニットを拘束し、彼らの陣営に変更できます。 자기편에게 케이블타이를 사용할 수 있게합니다 + 玩家可以使用束線帶銬住同陣營隊友 + 玩家可以使用束线带铐住同阵营队友 Allow surrendering @@ -306,6 +348,8 @@ Permetti Resa 投降を許可 투항 활성화 + 允許投降 + 允许投降 Players can surrender after holstering their weapon @@ -320,6 +364,8 @@ I giocatori possono arrendersi dopo aver messo via le proprie armi プレイヤーは武器を収めたあとに投降できるようにします。 비무장한 플레이어가 투항할 수 있게 합니다 + 玩家能在收起自己武器後投降 + 玩家能在收起自己武器后投降 Require surrendering @@ -333,6 +379,8 @@ Requiert la reddition 投降を必要とする 투항 필요 + 要求目標投降 + 要求目标投降 Require Players to surrender before they can be arrested @@ -346,6 +394,8 @@ Requiert la capitulation des joueurs avant qu'ils ne puissent être arrêtés プレイヤーは拘束される前に、投降する必要があります。 체포하기 전에 플레이어가 투항을 먼저해야만 합니다 + 玩家須先要求目標投降, 才可以進行逮捕 + 玩家须先要求目标投降, 才可以进行逮捕 Surrendering only @@ -359,6 +409,8 @@ Reddition seulement 投降中のみ 투항 중에만 + 只能在投降狀態 + 只能在投降状态 Surrendering or No weapon @@ -372,6 +424,8 @@ Capitulation ou desarmé 投降中か非武装時 투항 중 혹은 비무장 + 投降或無武器狀態 + 投降或无武器状态 diff --git a/addons/cargo/stringtable.xml b/addons/cargo/stringtable.xml index 4c7b547fb45..6c9e3209d3a 100644 --- a/addons/cargo/stringtable.xml +++ b/addons/cargo/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,6 +13,8 @@ Charger 積み込む 싣기 + 裝載 + 装载 Unload @@ -26,6 +28,8 @@ Décharger 下ろす 내리기 + 卸載 + 卸载 Cargo @@ -39,6 +43,8 @@ Cargaison カーゴ 화물 + 貨物 + 货物 Cargo Menu @@ -52,6 +58,8 @@ Menu de cargaison カーゴ メニュー 화물 메뉴 + 貨物選單 + 货物选单 Cargo space left: %1 @@ -65,6 +73,8 @@ Espace de cargaison restant : %1 カーゴの空き容量: %1 선적 공간 남음: %1 + 貨物剩餘空間: %1 + 货物剩余空间: %1 Enable Cargo @@ -78,6 +88,8 @@ Activer la mise en cargaison カーゴを有効化 화물 활성화 + 啟用貨物裝載 + 启用货物装载 Enable the load in cargo module @@ -91,6 +103,8 @@ Active le chargement de cargaison dans un vehicule カーゴ モジュールで積み込みを有効化 화물 모듈에 싣기를 활성화합니다 + 啟用貨物裝載功能 + 启用货物装载功能 Cargo Settings @@ -104,6 +118,8 @@ Paramètres de cargaison カーゴ設定 화물 설정 + 貨物設定 + 货物设定 Configure the cargo module settings @@ -117,6 +133,8 @@ Configure les paramètres du module de cargaison カーゴ モジュールの設定を構成 화물 모듈의 환경 설정을 바꿉니다 + 配置貨物模塊設定 + 配置货物模块设定 %1<br/>loaded into<br/>%2 @@ -131,6 +149,8 @@ %1<br/>загружен в<br/>%2 %1<br/>は<br/>%2へ積み込まれた %1<br/>는<br/>%2 에 실림 + %1<br/>裝載至<br/>%2 + %1<br/>装载至<br/>%2 Unloaded<br/>%1 from<br/>%2 @@ -145,6 +165,8 @@ %1<br/>разгружен из<br/>%2 <br/>%1が<br/>%2から降ろされた %1<br/>는<br/>%2 에서 내려짐 + 從<br/>%2卸載<br/>%1 + 从<br/>%2卸载<br/>%1 Loading Cargo @@ -158,6 +180,8 @@ Chargement de la cargaison カーゴへ積み込んでいる 화물 싣기 + 裝載貨物中 + 装载货物中 Unloading Cargo @@ -171,6 +195,8 @@ Déchargement de la cargaison カーゴから降ろしている 화물 내리기 + 卸載貨物中 + 卸载货物中 %1<br/>could not be loaded @@ -184,6 +210,8 @@ %1<br /> n'a pas pu être chargé %1<br/>は積み込めなかった %1<br/>이 실릴 수가 없습니다 + %1<br/>無法被裝載 + %1<br/>无法被装载 %1<br/>could not be unloaded @@ -197,6 +225,8 @@ %1<br /> n'a pas pu être déchargé %1<br/>は降ろせなかった %1<br/>이 내려질 수가 없습니다 + %1<br/>無法被卸載 + %1<br/>无法被卸载 Make Object Loadable @@ -210,6 +240,8 @@ Сделать объект загружаемым オブジェクトを積載可能に 물체를 화물화시키기 + 使物件可裝載 + 使物件可装载 Sets the synced object as loadable by the cargo system. @@ -223,6 +255,8 @@ Делает синхронизированный объект загружаемым для модуля перевозки грузов. オブジェクトを同期させると、カーゴ システムによる積載が可能になります。 물체를 화물 시스템과 동기화시켜 실을 수 있게 합니다 + 使用同步線來使該物件可被裝載. + 使用同步线来使该物件可被装载. Object's Size @@ -236,26 +270,36 @@ Размер объекта オブジェクトの大きさ 물체 크기 + 物件的大小 + 物件的大小 Cargo Space Spazio Cargo カーゴ スペース + 貨物空間 + 货物空间 The cargo space available in this vehicle/container Lo spazio disponibile in questo veicolo/container この車両/コンテナでカーゴ スペースを使えるようにします + 設定此載具/集裝箱可裝載多少貨物 + 设定此载具/集装箱可装载多少货物 Cargo Size Dimensioni Cargo カーゴ サイズ + 貨物的大小 + 货物的大小 The cargo space required to hold this object (-1 for unloadable) Lo spazio del cargo necessita di mantenere questo oggetto (-1 per scaricabile) このオブジェクトを積載するのに必要なカーゴ スペース (-1 で積載不可) + 此貨物會佔掉多少空間(設定-1的話此貨物就不能被裝載) + 此货物会占掉多少空间(设定-1的话此货物就不能被装载) Airdrop @@ -265,6 +309,8 @@ 공중 투하 Largage aérien Lancio Aereo + 空投 + 空投 Unlevel Flight @@ -274,18 +320,24 @@ 기체가 수평이 아닙니다 Rétablir l'assiette Volo non Livellato + 此架飛機並無保持水平飛行 + 此架飞机并无保持水平飞行 Paradrop Time Coffecient 空中投下までの時間係数 Coefficente Tempo Lancio Paracadute Coefficient Temps de largage de cargaison + 空投時間係數 + 空投时间系数 Modifier for how long it takes to paradrop a cargo item. カーゴ アイテムを空中投下するまでの時間を変更します。 Modificato per quanto tempo ci impiega a paracadutare un oggetto cargo. Modifier le temps qu'il faut pour larguer la cargaison. + 設定空投所需消耗的時間. + 设定空投所需消耗的时间. diff --git a/addons/chemlights/stringtable.xml b/addons/chemlights/stringtable.xml index 76e1ffd27e3..e42b949a4f5 100644 --- a/addons/chemlights/stringtable.xml +++ b/addons/chemlights/stringtable.xml @@ -9,6 +9,8 @@ 켐라이트 Cyalumes Luce chimica + 螢光棒 + 萤光棒 Prepare %1 @@ -18,6 +20,8 @@ %1 준비 Prépare %1 Prepara %1 + 使用%1 + 使用%1 %1<br/>Prepared @@ -27,6 +31,8 @@ %1<br/>준비됨 %1<br/>prêt %1 <br/> Preparata + %1<br/>已使用 + %1<br/>已使用 No inventory space @@ -41,6 +47,8 @@ В инвентаре нет места インベントリに空きがありません 소지품 공간이 없음 + 已無存放空間 + 已无存放空间 [ACE] Chemlights @@ -50,6 +58,8 @@ [ACE] 켐라이트 [ACE] Cyalume [ACE] Luci chimiche + [ACE] 螢光棒 + [ACE] 萤光棒 Chemlight (Orange) @@ -59,6 +69,8 @@ 켐라이트 (주황) Cyalume (orange) Luce chimica (Arancione) + 螢光棒 (橘色) + 萤光棒 (橘色) Orange Light @@ -68,6 +80,8 @@ 주황색 Lum. orange Luce Arancione + 橘色光 + 橘色光 Type: Light - Orange<br />Rounds: 1<br />Used in: Hand @@ -77,6 +91,8 @@ 종류:밝은 오렌지<br />수량: 1<br />사용처: 손 Type: Lumière - orange<br />Nbre: 1<br /> À main Tipo: Luce - Arancione<br/>Rimanenti: 1<br/>Usata in: Mano + 類型: 光 - 橘色<br />發數: 1<br />使用於: 手 + 类型: 光 - 橘色<br />发数: 1<br />使用于: 手 Chemlight (White) @@ -86,6 +102,8 @@ 켐라이트 (하양) Cyalume (blanc) Luce chimica (Bianca) + 螢光棒 (白色) + 萤光棒 (白色) White Light @@ -95,6 +113,8 @@ 하얀색 Lum. blanche Luce Bianca + 白色光 + 白色光 Type: Light - White<br />Rounds: 1<br />Used in: Hand @@ -104,6 +124,8 @@ 종류:하얀색<br />수량: 1<br />사용처: 손 Type: Lumière - blanche<br />Nbre: 1<br /> À main Tipo: Luce - Bianca<br/>Rimanenti: 1<br/>Usata in: Mano + 類型: 光 - 白色<br />發數: 1<br />使用於: 手 + 类型: 光 - 白色<br />发数: 1<br />使用于: 手 Chemlight (Hi Red) @@ -113,6 +135,8 @@ 켐라이트 (밝은 빨간색) Cyalume (Hi rouge) Luce chimica (Hi Rossa) + 螢光棒 (超亮紅色) + 萤光棒 (超亮红色) Red Hi Light @@ -122,6 +146,8 @@ 밝은 빨간색 Lum. rouge haute intensité Luce Hi Rossa + 超亮紅色光 + 超亮红色光 Type: Light - Red Hi (5 minute)<br />Rounds: 1<br />Used in: Hand @@ -131,6 +157,8 @@ 종류: 밝은 빨간색 (5분)<br />수량: 1<br />사용처: 손 Type: Lumière - rouge Hi (5 minutes)<br />Nbre: 1<br /> À main Tipo: Luce - Rossa Hi (5 minuti)<br />Rimanenti: 1<br/>Usata in: Mano + 類型: 光 - 超亮紅色 (5分鐘)<br />發數: 1<br />使用於: 手 + 类型: 光 - 超亮红色 (5分钟)<br />发数: 1<br />使用于: 手 Chemlight (Hi Yellow) @@ -140,6 +168,8 @@ 켐라이트 (밝은 노란색) Cyalume (Hi jaune) Luce chimica (Hi Gialla) + 螢光棒 (超亮黃色) + 萤光棒 (超亮黄色) Yellow Hi Light @@ -149,6 +179,8 @@ 밝은 노란색 Lum. jaune haute intensité Luce Hi Gialla + 超亮黃色光 + 超亮黄色光 Type: Light - Yellow Hi (5 minute)<br />Rounds: 1<br />Used in: Hand @@ -158,6 +190,8 @@ 종류:밝은 노란색 (5분)<br />수량: 1<br />사용처: Hand Type: Lumière - Jaune Hi (5 minutes)Nbre: 1<br /> À main Tipo: Luce - Gialla Hi (5 minuti)<br />Rimanenti: 1<br/>Usata in: Mano + 類型: 光 - 超亮黃色 (5分鐘)<br />發數: 1<br />使用於: 手 + 类型: 光 - 超亮黄色 (5分钟)<br />发数: 1<br />使用于: 手 Chemlight (Hi Orange) @@ -167,6 +201,8 @@ 켐라이트 (밝은 주황색) Cyalume (Hi orange) Luce chimica (Hi Arancione) + 螢光棒 (超亮橘色) + 萤光棒 (超亮橘色) Orange Hi Light @@ -176,6 +212,8 @@ 밝은 주황색 Lum. orange haute intensité Luce Hi Arancione + 超亮橘色光 + 超亮橘色光 Type: Light - Orange Hi (5 minute)<br />Rounds: 1<br />Used in: Hand @@ -185,6 +223,8 @@ 종류: 밝은 주황색 (5분)<br />수량: 1<br />사용처: 손 Type: Lumière - orange Hi (5 minutes)<br />Nbre: 1<br /> À main Tipo: Luce - Arancione Hi (5 minuti)<br />Rimanenti: 1<br/>Usata in: Mano + 類型: 光 - 超亮橘色 (5分鐘)<br />發數: 1<br />使用於: 手 + 类型: 光 - 超亮橘色 (5分钟)<br />发数: 1<br />使用于: 手 Chemlight (Hi White) @@ -194,6 +234,8 @@ 켐라이트 (밝은 하얀색) Cyalume (Hi blanc) Luce chimica (Hi Bianca) + 螢光棒 (超亮白色) + 萤光棒 (超亮白色) White Hi Light @@ -203,6 +245,8 @@ 밝은 하얀색 Lum. blanche haute intensité Luce Hi Bianca + 超亮白色光 + 超亮白色光 Type: Light - White Hi (5 minute)<br />Rounds: 1<br />Used in: Hand @@ -212,6 +256,8 @@ 종류: 밝은 하얀색 (5분)<br />수량: 1<br />사용처: 손 Type: Lumière - blanche Hi (5 minutes)<br />Nbre: 1<br /> À main Tipo: Luce - Bianca Hi (5 minuti)<br />Rimanenti: 1<br/>Usata in: Mano + 類型: 光 - 超亮白色 (5分鐘)<br />發數: 1<br />使用於: 手 + 类型: 光 - 超亮白色 (5分钟)<br />发数: 1<br />使用于: 手 Chemlight (IR) @@ -221,6 +267,8 @@ 켐라이트 (적외선) Cyalume (IR) Luce chimica (IR) + 螢光棒 (紅外線) + 萤光棒 (红外线) IR Light @@ -230,6 +278,8 @@ 적외선 켐라이트 Lumière IR Luce IR + 紅外線光 + 红外线光 Type: Light - Infrared<br />Rounds: 1<br />Used in: Hand @@ -239,6 +289,8 @@ 종류: 적외선<br />수량: 1<br />사용처: 손 Type: Lumière - infrarouge<br />Nbre: 1<br /> À main Tipo: Luce - Infrarossi<br />Usata in: Mano + 類型: 光 - 紅外線<br />發數: 1<br />使用於: 手 + 类型: 光 - 红外线<br />发数: 1<br />使用于: 手 Chemlight Shield (Empty) @@ -248,6 +300,8 @@ 켐라이트 쉴드 (비어있음) Étui cyalume (vide) Scudo Luce chimica (Vuoto) + 螢光棒保護殼 (空) + 萤光棒保护壳 (空) Shield for chemlights. Combine with chemlight to prepare reading light. @@ -257,6 +311,8 @@ 켐라이트를 위한 가림막입니다. 켐라이트와 같이 사용하여 읽을 때 씁니다. Étui pour cyalume. Combiné avec un cyalume pour obtennir un lampe de lecture. Scudo per luci chimiche. Combina con una luce chimica per una luce da lettura. + 螢光棒的保護殼. 與螢光棒結合後可充當閱讀燈. + 萤光棒的保护壳. 与萤光棒结合后可充当阅读灯. Chemlight Shield (Green) @@ -266,6 +322,8 @@ 켐라이트 쉴드 (초록) Étui cyalume (vert) Scudo Luce Chimica (Verde) + 螢光棒保護殼 (綠色) + 萤光棒保护壳 (绿色) Green reading light. @@ -275,6 +333,8 @@ 초록빛 조명 Lampe d'orientation verte. Luce da lettura Verde. + 綠色閱讀燈. + 绿色阅读灯. Chemlight Shield (Red) @@ -284,6 +344,8 @@ 켐라이트 쉴드 (빨강) Étui cyalume (rouge) Scudo Luce Chimica (Rossa) + 螢光棒保護殼 (紅色) + 萤光棒保护壳 (红色) Red reading light. @@ -293,6 +355,8 @@ 빨간색 조명 Lampe d'orientation rouge. Luce da lettura Rossa. + 紅色閱讀燈. + 红色阅读灯. Chemlight Shield (Blue) @@ -302,6 +366,8 @@ 켐라이트 쉴드 (파랑) Étui cyalume (bleu) Scudo Luce Chimica (Blu) + 螢光棒保護殼 (藍色) + 萤光棒保护壳 (蓝色) Blue reading light. @@ -311,6 +377,8 @@ 파란색 조명 Lampe d'orientation bleue. Luce da lettura Blu. + 藍色閱讀燈. + 蓝色阅读灯. Chemlight Shield (Yellow) @@ -320,6 +388,8 @@ 켐라이트 쉴드 (노랑) Étui cyalume (jaune) Scudo Luce Chimica (Gialla) + 螢光棒保護殼 (黃色) + 萤光棒保护壳 (黄色) Yellow reading light. @@ -329,6 +399,8 @@ 노란색 조명 Lampe d'orientation jaune. Luce da lettura Gialla. + 黃色閱讀燈. + 黄色阅读灯. Chemlight Shield (Orange) @@ -338,6 +410,8 @@ 켐라이트 쉴드 (주황) Étui cyalume (orange) Scudo Luce Chimica (Arancione) + 螢光棒保護殼 (橘色) + 萤光棒保护壳 (橘色) Orange reading light. @@ -347,6 +421,8 @@ 주황색 조명 Lampe d'orientation orange. Luce da lettura Arancione. + 橘色閱讀燈. + 橘色阅读灯. Chemlight Shield (White) @@ -356,6 +432,8 @@ 켐라이트 쉴드 (하양) Étui cyalume (blanc) Scudo Luce Chimica (Bianca) + 螢光棒保護殼 (白色) + 萤光棒保护壳 (白色) White reading light. @@ -365,6 +443,8 @@ 주황색 조명 Lampe d'orientation blanche. Luce da lettura Bianca. + 白色閱讀燈. + 白色阅读灯. diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index 462cafc1bab..a9cac3d4c6d 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -14,6 +14,8 @@ ACE-Team ACE-Team ACE-Team + ACE-製作團隊 + ACE-制作团队 Save @@ -28,6 +30,8 @@ Salva 保存 저장 + 儲存 + 储存 Cancel @@ -42,6 +46,8 @@ Annulla 中止 취소 + 取消 + 取消 ACE Options @@ -56,6 +62,8 @@ Opzioni ACE ACE オプション ACE 옵션 + ACE設定選項 + ACE设定选项 @@ -71,6 +79,8 @@ N + + NNE @@ -85,6 +95,8 @@ NNE 北北東 북북동 + 北北東 + 北北东 NE @@ -99,6 +111,8 @@ NE 北東 북동 + 東北 + 东北 ENE @@ -113,6 +127,8 @@ ENE 東北東 동북동 + 東北東 + 东北东 E @@ -127,6 +143,8 @@ E + + ESE @@ -141,6 +159,8 @@ ESE 東南東 동남동 + 東南東 + 东南东 SE @@ -155,6 +175,8 @@ SE 南東 남동 + 東南 + 东南 SSE @@ -169,6 +191,8 @@ SSE 南南東 남남동 + 南南東 + 南南东 S @@ -183,6 +207,8 @@ S + + SSW @@ -197,6 +223,8 @@ SSO 南南西 남남서 + 南南西 + 南南西 SW @@ -211,6 +239,8 @@ SO 南西 남서 + 西南 + 西南 WSW @@ -225,6 +255,8 @@ OSO 西南西 서남서 + 西南西 + 西南西 W @@ -239,6 +271,8 @@ O 西 + 西 + 西 WNW @@ -253,6 +287,8 @@ ONO 北北西 서북서 + 西北西 + 西北西 NW @@ -267,6 +303,8 @@ NO 北西 북서 + 西北 + 西北 NNW @@ -281,6 +319,8 @@ NNO 北北西 북북서 + 北北西 + 北北西 Action cancelled. @@ -295,6 +335,8 @@ Azione cancellata. 動作を中止した。 행동 취소됨. + 動作已被取消 + 动作已被取消 [ACE] Miscellaneous Items @@ -309,6 +351,8 @@ [ACE] Oggetti vari [ACE] その他のアイテム [ACE] 기타 물품. + [ACE] 雜項 + [ACE] 杂项 Disable Command Menu @@ -323,6 +367,8 @@ Desabilitar menu de comando 指揮メニューを無効化 지휘 메뉴 종료 + 關閉命令選單 + 关闭命令选单 Unknown @@ -337,6 +383,8 @@ Desconhecido 不明 알 수 없음 + 未知的 + 未知的 No Voice @@ -351,6 +399,8 @@ Sem voz 音声なし 무음 + 沒聲音 + 没声音 Accept Requests @@ -365,6 +415,8 @@ Accetta la richiesta 要求を受け入れ 요청 수락 + 接受請求 + 接受请求 Decline Requests @@ -379,6 +431,8 @@ Rifiuta la richiesta 要求を拒否 요청 거부 + 拒絕請求 + 拒绝请求 Accept Requests send by other players. These can be requests to use / share equipment, perform certain actions. @@ -393,6 +447,8 @@ Aceitar pedidos enviados por outros jogadores. Podem ser pedidos para usar/ compartilhar equipamento, realizar certas ações. 他プレイヤからの要求を許可します。他プレイヤは装備を共有し、使うなど特定の動作を行えます。 다른 플레이어가 보내온 요청을 수락합니다. 이것은 장비 사용 / 공유 요청, 특정 작업 수행 등이 될 수 있습니다. + 接受由其他玩家送出的請求. 包含使用/共享裝備與執行特定動作 + 接受由其他玩家送出的请求. 包含使用/共享装备与执行特定动作 Decline Requests send by other players. These can be requests to use / share equipment, perform certain actions. @@ -407,6 +463,8 @@ Rejeita pedidos enviados por outros jogadores. Podem ser pedidos para usar/ compartilhar equipamento, realizar certas ações. 他プレイヤからの要求を拒否します。他プレイヤは装備を共有し、使うなど特定の動作をできません。 다른 플레이어가 보내온 요청을 거부합니다. 이것은 장비 사용 / 공유 요청, 특정 작업 수행 등이 될 수 있습니다. + 拒絕由其他玩家送出的請求. 包含使用/共享裝備與執行特定動作 + 拒绝由其他玩家送出的请求. 包含使用/共享装备与执行特定动作 Feedback icons @@ -421,6 +479,8 @@ Ícones de Feedback フィードバック アイコン 피드백 아이콘 + 回饋圖標 + 回馈图标 Select the position of or disable the feedback icons on your screen. These icons will show to provide extra feedback on your character status and actions performed. @@ -435,6 +495,8 @@ Selecione a posição ou disabilite a posição dos ícones de feedback na sua tela. Esses ícones irão aparecer para mostrar feedback extra do status do seu personagem e ações realizadas. 画面上に表示するフィードバック アイコンの位置や無効化を選択できます。このアイコンは自キャラクター状態や動作の状況をフィードバックするために表示されています。 피드백 아이콘의 위치를 설정하거나 비활성화합니다. 피드백 아이콘은 캐릭터의 상세정보와 행동을 보여줍니다. + 選擇位置或取消回饋圖標顯示在螢幕上. 這些圖標將顯示出你角色額外的狀態與行動等資訊. + 选择位置或取消回馈图标显示在荧幕上. 这些图标将显示出你角色额外的状态与行动等资讯. Progress bar location @@ -449,6 +511,8 @@ Local da barra de progresso プログレス バーの位置 진행 막대의 위치 + 進度欄位置 + 进度栏位置 Set the desired location of the progress bar on your screen. @@ -463,6 +527,8 @@ Define o local desejado da barra de progresso na sua tela. 画面上に表示されるプログレス バーの位置を設定できます。 진행 막대를 원하는 곳에 배치합니다. + 設定進度欄在畫面中的位置 + 设定进度栏在画面中的位置 Hint Background color @@ -477,6 +543,8 @@ Cor do fundo da hint ヒントの背景色 힌트 배경색 + 提示的背景顏色 + 提示的背景颜色 The color of the background from the ACE hints. @@ -491,6 +559,8 @@ A cor de fundo das hints do ACE. ACE によるヒントの背景色を指定します。 ACE힌트의 배경색을 정합니다. + 設定ACE提示的背景顏色. + 设定ACE提示的背景颜色. Hint text font color @@ -505,6 +575,8 @@ Cor do do texto da hint ヒント文章の色 힌트 글씨색 + 提示文字的顏色 + 提示文字的颜色 The color of the text font from the ACE hints. This color is the default color for all text displayed through the ACE Hint system, if the hint text has no other color specified. @@ -519,6 +591,8 @@ A cor do texto das hints do ACE. Essa cor é a cor default para todos os texos exibidos pelo sistema de hints do ACE , caso o texto da hint não tem outra cor especificada. ACE によるヒントの文章へ、色を設定できます。この色は ACE ヒント システムを介して表示される全文章の色と標準でなっており、特定の色を設定していても、標準色になります。 ACE 힌트에 쓰이는 글씨 색입니다. 힌트 글씨의 색이 정해지지 않을경우 모든 힌트의 색은 기본으로 설정됩니다. + 設定ACE提示文字的顏色. 若提示字體並無指定其他顏色, 將會自動選用ACE系統的預設顏色 + 设定ACE提示文字的颜色. 若提示字体并无指定其他颜色, 将会自动选用ACE系统的预设颜色 Banana @@ -533,6 +607,8 @@ Banana 甘蕉 바나나 + 香蕉 + 香蕉 A banana is an edible fruit, botanically a berry, produced by several kinds of large herbaceous flowering plants in the genus Musa. @@ -547,6 +623,8 @@ A banana é uma fruta comestível, botanicamente uma baga, produzida por vários tipos de plantas herbáceas grandes do genero Musa. 甘蕉は食べられる果物でバショウ科バショウ属のうち、果実を食用とする品種群の総称。また、その果実のこと。いくつかの原種から育種された多年草。種によっては熟すまでは毒を持つものもある。 바나나는 식용 과일로써 식물학적으로 열매류이며 여러 종류의 개화가능한 초본의 파초과로 부터 생산됩니다. + 香蕉(學名: Musa × paradisiaca), 為芭蕉科芭蕉屬小果野蕉及野蕉的人工栽培雜交種, 為多年生草本植物. 果實長有棱; 果皮黃色, 果肉白色, 味道香甜. 主要生長在熱帶、亞熱帶地區. 原產於亞洲東南部熱帶、亞熱帶地區. + 香蕉(学名: Musa × paradisiaca), 为芭蕉科芭蕉属小果野蕉及野蕉的人工栽培杂交种, 为多年生草本植物. 果实长有棱; 果皮黄色, 果肉白色, 味道香甜. 主要生长在热带、亚热带地区. 原产于亚洲东南部热带、亚热带地区. Check PBOs @@ -561,6 +639,8 @@ Controlla PBO PBO を検査 PBO 검사 + 檢查PBO檔 + 检查PBO档 Check addon integrity with server and do selected action if an addon is missing. @@ -574,6 +654,8 @@ Controlla l'integrità degli addon con il server ed esegui l'azione selezionata se un addon è mancante サーバがアドオンの整合性を検査し、もし不備があれば実行する動作を選択できます。 서버 에드온의 무결성을 검사하고 사라진 에드온이 있을경우 행동을 선택합니다. + 檢查客戶端與伺服器端的模組清單是否一致且完整, 並提供訊息表示遺失的模組. + 检查客户端与伺服器端的模组清单是否一致且完整, 并提供讯息表示遗失的模组. Action @@ -588,6 +670,8 @@ Azione 動作 작동 + 動作 + 动作 What to do with people who do not have the right PBOs? @@ -602,6 +686,8 @@ Cosa fare con giocatori che non hanno i PBO corretti? プレイヤーが正しい PBO を持っていない場合は? 올바르지 않는 PBO를 가진 사람을 어떻게 할까요? + 若玩家沒有正確的PBO檔時, 將採取何種動作? + 若玩家没有正确的PBO档时, 将采取何种动作? Warn once @@ -616,6 +702,8 @@ Avverti una volta 一度の警告 경고 한 번 + 警告 (一次) + 警告 (一次) Warn (permanent) @@ -630,6 +718,8 @@ Avverti (permanente) 警告(永久的) 경고 (영구적) + 警告 (持續) + 警告 (持续) Kick @@ -644,6 +734,8 @@ Kick 排除 추방 + 踢除 + 踢除 Check all addons @@ -658,6 +750,8 @@ Controlla tutti gli addon 全アドオンを検査 모든 에드온 검사 + 檢查所有模組 + 检查所有模组 Check all addons instead of only those of ACE? @@ -672,6 +766,8 @@ Controlla tutti gli addon invece dei soli addon ACE? ACE MOD の代わりに全アドオンを検査しますか? ACE를 제외한 모든 모드를 검사할까요? + 檢查包含ACE之外的其他模組? + 检查包含ACE之外的其他模组? Whitelist @@ -686,6 +782,8 @@ Lista Bianca 許可制 화이트리스트 + 白名單 + 白名单 What addons are allowed regardless? @@ -700,6 +798,8 @@ Quali addon sono permessi in ogni caso? どのようなアドオンを許可しますか? 허가되는 에드온은 어느것입니까? + 哪些模組是可被允許/忽略的? + 哪些模组是可被允许/忽略的? LSD Vehicles @@ -714,6 +814,8 @@ Veicoli LSD LSD 車両 LSD 차량 + 迷幻載具 + 迷幻载具 Adds LSD effect to synchronized vehicle @@ -728,6 +830,8 @@ Aggiunge effetti LSD ai veicoli sincronizzati 同期されたオブジェクトに LSD の効果を追加します 동기화된 차량에 LSD효과를 추가합니다. + 使被同步的載具產生瘋狂的迷幻效果. (後果自負) + 使被同步的载具产生疯狂的迷幻效果. (后果自负) Toggle Handheld Device @@ -742,6 +846,8 @@ Apri dispositivo palmare デバイスを常に表示 휴대장치 토글 + 切換手持裝備 + 切换手持装备 Close Handheld Device @@ -756,6 +862,8 @@ Chiudi dispositivo palmare デバイスを閉じる 휴대장치 닫기 + 關閉手持裝備 + 关闭手持装备 Cycle Handheld Devices @@ -770,6 +878,8 @@ Cicla tra dispositivi palmari 表示するデバイスを変える 휴대장치 순환 + 循環切換手持裝備 + 循环切换手持装备 Disabled @@ -783,6 +893,8 @@ Desactivado 無効化 비활성화 + 停用 + 停用 Enabled @@ -796,6 +908,8 @@ Activado 有効化 활성화 + 啟用 + 启用 Yes @@ -810,6 +924,8 @@ Si はい + + No @@ -824,6 +940,8 @@ No いいえ 아니오 + + Vehicles only @@ -837,6 +955,8 @@ Vehicules seulement 車両のみ 차량 전용 + 只有載具 + 只有载具 Do Not Force @@ -850,6 +970,8 @@ Ne pas forcer 強制しない 강제하지 말것 + 不要強行 + 不要强行 ACE3 Equipment @@ -863,6 +985,8 @@ ACE3 Equipement ACE3 装備 ACE3 장비 + ACE3 裝備按鍵 + ACE3 装备按键 ACE3 Common @@ -876,6 +1000,8 @@ ACE3 Commun ACE3 全般 ACE3 일반 + ACE3 通用按鍵 + ACE3 通用按键 ACE3 Weapons @@ -889,6 +1015,8 @@ ACE3 Armes ACE3 武器 ACE3 무기 + ACE3 武器按鍵 + ACE3 武器按键 ACE3 Movement @@ -902,6 +1030,8 @@ ACE3 Mouvement ACE3 移動 ACE3 움직임 + ACE3 動作按鍵 + ACE3 动作按键 ACE3 Scope Adjustment @@ -915,6 +1045,8 @@ ACE3 Ajustement de la lunette ACE3 スコープ調節 ACE3 조준경 조정 + ACE3 瞄準鏡調節按鍵 + ACE3 瞄准镜调节按键 ACE3 Vehicles @@ -928,6 +1060,8 @@ ACE3 Vehicules ACE3 車両 ACE3 차량 + ACE3 載具按鍵 + ACE3 载具按键 No Room to unload @@ -940,6 +1074,8 @@ Sem espaço para descarregar Нет места для выгрузки 降ろすための空間がありません + 沒有空間可卸載 + 没有空间可卸载 Toggle @@ -954,6 +1090,8 @@ alternar トグル 토글 + 切換 + 切换 diff --git a/addons/concertina_wire/stringtable.xml b/addons/concertina_wire/stringtable.xml index 2bc0005a357..728fd9746db 100644 --- a/addons/concertina_wire/stringtable.xml +++ b/addons/concertina_wire/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Arame farpado 鉄条網 철조망 + 鐵絲網 + 铁丝网 Concertina Wire Coil @@ -28,6 +30,8 @@ Bobina de arame farpado 鉄条網コイル 윤형 철조망 + 鐵絲網捲 + 铁丝网卷 Dismount Concertina Wire @@ -42,6 +46,8 @@ Desmontar arame farpado 鉄条網をほどく 철조망 해체 + 卸下鐵絲網 + 卸下铁丝网 Deploy Concertina Wire @@ -56,6 +62,8 @@ Colocar arame farpado 鉄条網を置く 철조망 배치 + 佈署鐵絲網 + 布署铁丝网 diff --git a/addons/cookoff/stringtable.xml b/addons/cookoff/stringtable.xml index 8e8e41ff4f8..c27410ef1ba 100644 --- a/addons/cookoff/stringtable.xml +++ b/addons/cookoff/stringtable.xml @@ -11,6 +11,8 @@ Aktywuj efekty samozapłonu amunicji Active le cook-off Abilita Esplosione + 開啟殉爆效果 + 开启殉爆效果 Enables cook off and related vehicle destruction effects. @@ -22,6 +24,8 @@ Aktywuje efekt samozapłonu amunicji na zniszczonych pojazdach. Active le cook-off (autocombustion des munitions) et les effets de destruction liés. Abilita l'esplosione e i relativi effetti di distruzione del veicolo. + 開啟此功能後, 將使有關載具在損毀時有殉爆的效果. + 开启此功能后, 将使有关载具在损毁时有殉爆的效果. Wreck (Turret) @@ -36,6 +40,8 @@ Ruínas (torre) 잔해(포탑) 残骸(タレット) + 殘骸 (砲塔) + 残骸 (炮塔) Enable ammo box cook off @@ -45,6 +51,8 @@ Aktywuj samozapłon skrzyń z amunicją Cook-off caisses de munitions Abilita esplosione cassa munizioni + 開啟彈藥箱殉爆效果 + 开启弹药箱殉爆效果 Enables cooking off of ammo boxes. @@ -54,6 +62,8 @@ Aktywuje samozapłon skrzyń z amunicją Active le cook-off sur toutes les caisses de munitions. Abilita l'esplosione della cassa di munizioni. + 開啟彈藥箱殉爆效果. + 开启弹药箱殉爆效果. Enable Ammunition cook off @@ -63,6 +73,8 @@ Aktywuj samozapłon amunicji Active le cook-off des munitions Abilita Esplosione munizioni + 開啟彈藥殉爆效果 + 开启弹药殉爆效果 Enables Ammunition cook off. Fires ammunition projectiles while vehicle is on fire and has ammunition. @@ -71,6 +83,8 @@ Aktywuje samozapłon amunicji. Wystrzeliwuje pociski podczas gdy pojazd płonie i posiada amunicję. Mets à feu les munitions lorsqu'un véhicule est en feu et contient des munitions. Abilita l'esplosione delle munizioni. Spara munizioni di proiettili quando il veicolo va a fuoco e contiene munizioni. + 開啟彈藥殉爆效果. 當一台載有彈藥的載具起火時, 將會有殉爆的效果. + 开启弹药殉爆效果. 当一台载有弹药的载具起火时, 将会有殉爆的效果. Ammunition cook off duration @@ -78,6 +92,8 @@ 弾薬の誘爆持続時間 Durée cook-off des munitions Durata esplosione munizioni + 彈藥殉爆效果持續時間 + 弹药殉爆效果持续时间 Multiplier for how long cook off lasts [Setting to 0 will disable ammo cookoff] @@ -85,6 +101,8 @@ Mnożnik decydujący jak długo ma trwać samozapłon amunicji [Ustawienie na 0 spowoduje wyłącznie samozapłonu] 誘爆の持続時間を乗数で設定。[0 に設定で誘爆を無効化] Moltiplicatore della durata dell'esplosione [Impostare 0 disabiliterà l'esplosione delle munizioni] + 設定彈藥殉爆效果會持續多久時間 [輸入0來關閉殉爆效果] + 设定弹药殉爆效果会持续多久时间 [输入0来关闭殉爆效果] diff --git a/addons/dagr/stringtable.xml b/addons/dagr/stringtable.xml index e72e4f7770e..f7155562a82 100644 --- a/addons/dagr/stringtable.xml +++ b/addons/dagr/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,6 +13,8 @@ DAGR DAGR DAGR + 軍用GPS接收器 + 军用GPS接收器 Configure DAGR @@ -26,6 +28,8 @@ Configurer le DAGR DAGR を設定 DAGR 설정 + 軍用GPS接收器設定 + 军用GPS接收器设定 Toggle DAGR @@ -39,6 +43,8 @@ Activer/Desactiver le DAGR DAGR を常に表示 DAGR 토글 + 切換軍用GPS接收器 + 切换军用GPS接收器 Defense Advanced GPS Receiver @@ -52,6 +58,8 @@ Defense Advanced GPS Receiver アドバンスド DAGR の受信を定義します 국방 고급위성항법시스템 수신기 + 軍用高級防禦GPS接收器 + 军用高级防御GPS接收器 diff --git a/addons/disarming/stringtable.xml b/addons/disarming/stringtable.xml index eaf572cc562..a7fc003f653 100644 --- a/addons/disarming/stringtable.xml +++ b/addons/disarming/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Abrir inventário インベントリを開く 소지품 열기 + 開啟裝備 + 开启装备 diff --git a/addons/disposable/stringtable.xml b/addons/disposable/stringtable.xml index 3d9df039a15..782abbd9dce 100644 --- a/addons/disposable/stringtable.xml +++ b/addons/disposable/stringtable.xml @@ -14,6 +14,8 @@ Tubo utilizado 使用済み 사용함 + 使用過的火箭筒 + 使用过的火箭筒 Used disposable rocket launcher @@ -28,6 +30,8 @@ Lança foguetes descartável utilizado 使い終わったロケット ランチャーの筒部分 사용한 일회용 발사관 + 使用過的一次性火箭發射器 + 使用过的一次性火箭发射器 Preloaded Missile Dummy @@ -42,6 +46,8 @@ Míssel inerte pré-carregado 仮置きのミサイルをあらかじめ装填 임시로 미사일을 미리 장전 + 預裝訓練導彈 + 预装训练导弹 diff --git a/addons/dogtags/stringtable.xml b/addons/dogtags/stringtable.xml index 5aa5d80a4e7..edcfa14553c 100644 --- a/addons/dogtags/stringtable.xml +++ b/addons/dogtags/stringtable.xml @@ -11,6 +11,8 @@ 군번줄 Plaque d'identification Piastrina + 兵籍牌 + 兵籍牌 Check Dog Tag @@ -22,6 +24,8 @@ 군번줄 확인 Vérifier les plaques d'identification Controlla Piastrina + 檢查兵籍牌 + 检查兵籍牌 Check @@ -33,6 +37,8 @@ 확인 Vérifier Controlla + 檢查 + 检查 Take @@ -44,6 +50,8 @@ 회수 Prendre Prendi + 拿取 + 拿取 Dogtag taken from %1... @@ -55,6 +63,8 @@ %1로부터 군번줄을 회수했습니다... Plaque d'identification pris sur %1... Piastrina presa da %1... + 從%1身上拿取兵籍牌... + 从%1身上拿取兵籍牌... Somebody else has already taken the dogtag... @@ -66,6 +76,8 @@ 누군가 이미 군번줄을 회수해갔습니다... Quelqu'un d'autre a déjâ pris les plaques d'identification... Qualcun altro ha già preso la piastrina... + 已經有人把他的兵籍牌拿走了... + 已经有人把他的兵籍牌拿走了... diff --git a/addons/dragging/stringtable.xml b/addons/dragging/stringtable.xml index 50b5947ac97..8d657be92ee 100644 --- a/addons/dragging/stringtable.xml +++ b/addons/dragging/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Húzás 引きずる 끌기 + 拖拉 + 拖拉 Release @@ -28,6 +30,8 @@ Elengedés はなす 놓기 + 放開 + 放开 Drag/Release Object @@ -42,6 +46,8 @@ Húzás/Elengedés Objektum オブジェクトを引きずる/はなす 물건 끌기/놓기 + 拖拉/放開物品 + 拖拉/放开物品 Item too heavy @@ -56,6 +62,8 @@ Az objektum túl nehéz アイテムが重すぎる 물체가 너무 무겁습니다 + 此物品過重 + 此物品过重 Carry @@ -70,6 +78,8 @@ Нести 運ぶ 업기 + 背起 + 背起 Raise/Lower @@ -83,6 +93,8 @@ Lever/Baisser 上げる/下げる 높이기/낮추기 + 提高/下降 + 提高/下降 diff --git a/addons/explosives/stringtable.xml b/addons/explosives/stringtable.xml index e0cb44badf0..5100ea4849c 100644 --- a/addons/explosives/stringtable.xml +++ b/addons/explosives/stringtable.xml @@ -14,6 +14,8 @@ Взрывчатка 爆発物 폭발물 + 炸药 + 炸藥 Place @@ -28,6 +30,8 @@ Установить 設置 설치 + 放置 + 放置 Detonate @@ -42,6 +46,8 @@ Подрыв 点火 폭파 + 引爆 + 引爆 Detonate All @@ -55,6 +61,8 @@ Detonar Tudo すべて点火 모두 폭파 + 引爆全部 + 引爆全部 Explosive code: %1 @@ -69,6 +77,8 @@ Codice esplosivo: %1 爆破コード: %1 폭파 코드: %1 + 炸药代码: %1 + 炸藥代碼: %1 Place @@ -83,6 +93,8 @@ Установить 設置 설치 + 放置 + 放置 Attach @@ -97,6 +109,8 @@ Прикрепить 取り付け 부착 + 连接 + 連接 Blocked @@ -110,6 +124,8 @@ Bloqué 取り付けできない 막힘 + 断开 + 斷開 Cancel @@ -124,6 +140,8 @@ Отмена 中止 취소 + 取消 + 取消 Rotate @@ -138,6 +156,8 @@ Bращать 向きを変える 회전 + 旋转 + 旋轉 Turn On Thor III @@ -152,6 +172,8 @@ Активировать Thor III Thor III を使う Thor III 켜기 + 开启索尔三型 + 開啟索爾三型 Turn Off Thor III @@ -166,6 +188,8 @@ Деактивировать Thor III Thor III を止める Thor III 끄기 + 关闭索尔三型 + 關閉索爾三型 Cellphone @@ -180,6 +204,8 @@ Сотовый телефон 携帯電話 휴대전화 + 手机 + 手機 Used to remotely trigger explosives @@ -194,6 +220,8 @@ Используется для удаленной детонации СВУ 爆発物を遠隔で起爆させるのに使います 원격으로 폭발물을 폭파시킬때 씁니다. + 用于远端引爆炸药 + 用於遠端引爆炸藥 M57 Firing Device @@ -208,6 +236,8 @@ Взрыватель M57 M57 起爆装置 M57 격발기 + M57 引爆装置 + M57 引爆裝置 Used to remotely trigger explosives @@ -222,6 +252,8 @@ Используется для удаленной детонации зарядов 爆発物を遠隔で起爆させるのに使います 원격으로 폭발물을 폭파시킬때 씁니다. + 用于远端引爆炸药 + 用於遠端引爆炸藥 M152 Firing Device @@ -236,6 +268,8 @@ Взрыватель M152 M152 起爆装置 M152 격발기 + M152 引爆装置 + M152 引爆裝置 M152 RAMS @@ -250,6 +284,8 @@ M152 RAMS M152 RAMS M152 RAMS + M152 远端炸药引爆系统 + M152 遠端炸藥引爆系統 Defusal Kit @@ -264,6 +300,8 @@ Комплект разминирования 解除キット 해체 장비 + 拆弹工具 + 拆彈工具 Allows defusing of explosives @@ -278,6 +316,8 @@ Позволяет обезвреживать взрывчатку 爆発物を無力化できます 폭발물을 해체할 수 있게 해줍니다 + 可以用来拆除炸弹 + 可以用來拆除炸彈 Add to Speed Dial @@ -292,6 +332,8 @@ Добавить в быстрый вызов 短縮ダイアルに追加 단축키에 지정 + 增加到快速拨号 + 增加到快速撥號 Clear @@ -306,6 +348,8 @@ Очистить 消去 삭제 + 清除 + 清除 Dial @@ -320,6 +364,8 @@ Hабрать ダイアル 다이얼 + 拨号 + 撥號 Up @@ -334,6 +380,8 @@ Вызов 上へ + + Down @@ -348,6 +396,8 @@ Сброс 下へ 아래 + + Cancel @@ -362,6 +412,8 @@ Отмена 中止 취소 + 取消 + 取消 Detonate Menu @@ -376,6 +428,8 @@ Меню подрыва 点火メニュー 폭파 메뉴 + 引爆选单 + 引爆選單 Place Menu @@ -390,6 +444,8 @@ Меню установки 設置メニュー 설치 메뉴 + 放置选单 + 放置選單 Defuse @@ -404,6 +460,8 @@ Обезвредить 無力化 해체 + 拆除 + 拆除 Defusing Explosive... @@ -418,6 +476,8 @@ Обезвреживание... 爆発物を無力化中・・・ 폭발물 해체중... + 炸弹拆除中... + 炸彈拆除中... Timer @@ -432,6 +492,8 @@ Таймер タイマー 타이머 + 计时器 + 計時器 Time: %1m %2s @@ -446,6 +508,8 @@ Время: %1m %2c 設定時間: %1分 %2秒 시간: %1분 %2초 + 时间: %1分%2秒 + 時間: %1分%2秒 Set Time @@ -460,6 +524,8 @@ Установить время 時間を設定 시간 설정 + 设定时间 + 設定時間 Select a Trigger @@ -474,6 +540,8 @@ Выберите детонатор 点火装置を選択 작동방식 선택 + 选择一个触发器 + 選擇一個觸發器 Select @@ -488,6 +556,8 @@ Выбрать 選択 선택 + 选择 + 選擇 Pressure Plate @@ -502,6 +572,8 @@ Нажимная плита 圧力感知式 압력식 + 压力盘 + 壓力盤 Tripwire @@ -516,6 +588,8 @@ Растяжка 仕掛け線 인계철선 + 绊线 + 絆線 IR Sensor @@ -530,6 +604,8 @@ ИК сенсор 赤外線感知式 적외선 센서 + 红外线感应器 + 紅外線感應器 No triggers available for %1 @@ -544,6 +620,8 @@ Нет доступных взрывателей для %1 %1 につかえる点火装置がありません %1(을)를 작동할 장치가 없습니다. + 没有适合%1的触发器 + 沒有適合%1的觸發器 IR Sensor (Side Attack) @@ -558,6 +636,8 @@ ИК сенсор (детонация вбок) 赤外線感知式 (横からの攻撃) 적외선 센서 (측면 공격) + 红外线感应器 (侧边攻击) + 紅外線感應器 (側邊攻擊) Magnetic Influence Sensor (Bottom Attack) @@ -572,6 +652,8 @@ Магнитный сенсор (детонация вверх) 磁気感知式 (下からの攻撃) 자기장 감지센서 (바닥 공격) + 磁性感应器 (底部攻击) + 磁性感應器 (底部攻擊) No explosives on trigger. @@ -586,6 +668,8 @@ Взрыватель не подсоединён к взрывчатке 点火装置に爆発物がありません。 격발기에 등록된 폭발물이 없습니다. + 触发器上并没有炸药 + 觸發器上並沒有炸藥 Dead Man's Switch @@ -600,6 +684,8 @@ Detonatore a rilascio 自爆装置 자폭 장치 + 自杀炸弹客引爆器 + 自殺炸彈客引爆器 Used to remotely trigger explosives when released. @@ -614,6 +700,8 @@ Usato per attivare a distanza esplosivi al momento del rilascio 点火装置を離すと遠隔で起爆したいときに使います。 압력이 해제될때 원격으로 폭발시킵니다. + 当放开按钮时, 将会引爆炸弹. + 當放開按鈕時, 將會引爆炸彈. Pick up @@ -628,6 +716,8 @@ Pegar 拾う 줍기 + 捡起 + 撿起 Explosive System @@ -642,6 +732,8 @@ Sistema Esplosivi 爆発システム 폭발물 시스템 + 炸药系统 + 炸藥系統 Require specialists? @@ -656,6 +748,8 @@ Richiedi specialisti? 特技兵を必要としますか? 전문가가 필요합니까? + 需要专家? + 需要專家? Require explosive specialists to disable explosives? Default: No @@ -670,6 +764,8 @@ Richiedi specialisti esplosivi per disabilitare esplosivi? Default: No 爆発物を無効化するには、爆発物の特技兵を必要としますか?標準:いいえ 폭발물을 해제하기 위해서는 전문가가 필요합니까? 기본설정: 아니요 + 需要炸弹专家才能拆除炸弹? 预设: 否 + 需要炸彈專家才能拆除炸彈? 預設: 否 Punish non-specialists? @@ -684,6 +780,8 @@ Punisci non-specialisti? 非特技兵へ足かせを与えますか? 비-전문가에 불이익을 줍니까? + 折磨非专业人员? + 折磨非專業人員? Increase the time it takes to complete actions for non-specialists? Default: Yes @@ -698,6 +796,8 @@ Aumenta il tempo richiesto per completare azioni per non-specialisti? Default: Si 非特技兵は動作を完了する必要を増加させますか?標準:はい 비-전문가가 폭발물을 해제시 더욱 많은 시간을 소요합니까? 기본설정: 예 + 增加非专业人员相关操作的时间? 预设: 是 + 增加非專業人員相關操作的時間? 預設: 是 Explode on defusal? @@ -712,6 +812,8 @@ Fai esplodere quando disarmato? 解除時に爆発させますか? 해제시 폭발합니까? + 拆除时引爆? + 拆除時引爆? Enable certain explosives to explode on defusal? Default: Yes @@ -726,6 +828,8 @@ Abilita alcuni esplosivi per esplosione al disarmo? Default: Si 特定の爆発物へ、解除時に爆発させますか?標準:はい 특정 폭발물이 해제시 폭발하게 합니까? 기본설정: 예 + 启用后, 某些炸弹会在拆除时引爆? 预设: 是 + 啟用後, 某些炸彈會在拆除時引爆? 預設: 是 This module adjusts the settings related to explosives. @@ -740,6 +844,8 @@ Questo modulo cambia le impostazioni relative agli esplosivi このモジュールを調節し爆発物に設定を反映させます。 이 모듈은 폭발물에 관한 설정을 수정할 수 있게합니다. + 此模块用来调整炸药的相关设定 + 此模塊用來調整炸藥的相關設定 M6 SLAM Mine (Bottom Attack) @@ -760,6 +866,8 @@ Мина M6 SLAM (направлена вверх) M6 SLAM 地雷 (下からの攻撃) M6 SLAM 지뢰 (바닥 공격) + M6指向性反装甲地雷 (底部攻击) + M6指向性反裝甲地雷 (底部攻擊) M6 SLAM Mine (Side Attack) @@ -780,6 +888,8 @@ Мина M6 SLAM (направлена вбок) M6 SLAM 地雷 (横からの攻撃) M6 SLAM 지뢰 (측면 공격) + M6指向性反装甲地雷 (侧边攻击) + M6指向性反裝甲地雷 (側邊攻擊) Large IED (Urban, Pressure Plate) @@ -800,6 +910,8 @@ Большое СВУ (городское, нажимного действия) 大きな IED (市街地用、圧力感知) 대형 급조폭발물 (시가지, 압력식) + 大型简易爆炸装置 (地表上, 压力盘) + 大型簡易爆炸裝置 (地表上, 壓力盤) Large IED (Dug-in, Pressure Plate) @@ -820,6 +932,8 @@ Большое СВУ (закопанное, нажимного действия) 大きな IED (埋め込み型、圧力感知) 대형 급조폭발물 (묻힘, 압력식) + 大型简易爆炸装置 (地表下, 压力盘) + 大型簡易爆炸裝置 (地表下, 壓力盤) Small IED (Urban, Pressure Plate) @@ -840,6 +954,8 @@ Малое СВУ (городское, нажимного действия) 小さな IED (市街地用、圧力感知) 소형 급조폭발물 (시가지, 압력식) + 小型简易爆炸装置 (地表上, 压力盘) + 小型簡易爆炸裝置 (地表上, 壓力盤) Small IED (Dug-in, Pressure Plate) @@ -860,6 +976,8 @@ Малое СВУ (закопанное, нажимного действия) 小さな IED (埋め込み型、圧力感知) 소형 급조폭발물 (묻힘, 압력식) + 小型简易爆炸装置 (地表下, 压力盘) + 小型簡易爆炸裝置 (地表下, 壓力盤) Connect to %1 @@ -874,6 +992,8 @@ Conectar à %1 %1 へ接続 %1에 연결중 + 连接到%1 + 連接到%1 Tripwire Flare @@ -884,6 +1004,8 @@ 조명지뢰 Fusée éclairante avec fil de détente Cavo d'innesco + 绊线闪光地雷 + 絆線閃光地雷 Type: Tripwire flare - Ignites a non-lethal flare when triggered.<br />Rounds: 1<br />Used on: Ground @@ -894,6 +1016,8 @@ 종류: 조명지뢰 - 작동시 무해한 조명을 사출합니다.<br />장탄수: 1<br />사용처: 지면 Type : Fusée éclairante avec fil de détente - Allume une fusée éclairante lorsque déclenché. <br />Coups : 1<br />Utilisé sur : le sol Tipo: Cavo d'innesco - Sfocio un abbaglio non letale quanto attivato. <br />Rimanenti: 1<br />Usato: A terra + 类型: 绊线闪光地雷 - 触发后产生非致命性的强光.<br />发数: 1<br />使用于: 地面 + 類型: 絆線閃光地雷 - 觸發後產生非致命性的強光.<br />發數: 1<br />使用於: 地面 diff --git a/addons/fastroping/stringtable.xml b/addons/fastroping/stringtable.xml index 26573f3e0d4..8f1188b06ef 100644 --- a/addons/fastroping/stringtable.xml +++ b/addons/fastroping/stringtable.xml @@ -13,6 +13,8 @@ Десантирование по канатам FRIES を装備 FRIES 장착 + 启用快速绳降及撤离系统 + 啟用快速繩降及撤離系統 Equips compatible helicopters with a Fast Rope Insertion Extraction System. @@ -26,6 +28,8 @@ Снаряжает совместимые вертолеты оборудованием для спуска десанта по канатам. ヘリコプターで Fast Rope Insertion Extraction System を使えるようにします 패스트로프 투입 및 탈출 시스템을 호환되는 헬리콥터에 적용합니다. + 使可相容的直升机启用快速绳降及撤离系统 + 使可相容的直升機啟用快速繩降及撤離系統 Prepare fast roping system @@ -39,6 +43,8 @@ Подготовить канаты ファスト ロープのシステムを準備 패스트로프 준비 + 准备快速绳降系统 + 準備快速繩降系統 Deploy ropes @@ -52,6 +58,8 @@ Зацепить канаты ロープを展開 줄 배치 + 部属绳索 + 部屬繩索 Fast rope @@ -65,6 +73,8 @@ Спуститься по канату ファスト ロープをする 강하하기 + 快速绳降 + 快速繩降 Cut ropes @@ -78,6 +88,8 @@ Обрезать канаты ロープを切断 줄 자르기 + 剪掉绳索 + 剪掉繩索 Equip helicopter with FRIES @@ -91,6 +103,8 @@ Снарядить вертолет канатами для спуска ヘリコプターへ FRIES を装備 헬리콥터에 FRIES 장착 + 启用快速绳降及撤离系统给指定的直升机 + 啟用快速繩降及撤離系統給指定的直升機 Equips the selected helicopter with a Fast Rope Insertion Extraction System @@ -104,6 +118,8 @@ Снаряжает выбранный вертолет оборудованием для спуска десанта по канатам 選択されたヘリコプターで Fast Rope Insertion Extraction System を使えるようにします。 선택된 헬리콥터에 패스트로프 투입 및 탈출 시스템을 장착합니다. + 使指定的直升机启用快速绳降及撤离系统 + 使指定的直升機啟用快速繩降及撤離系統 LET UNITS FAST ROPE @@ -114,6 +130,8 @@ ДЕСАНТИРОВАНИЕ ПО КАНАТУ ユニットへファスト ロープをさせる ZJAZD NA LINACH + 让单位快速绳降 + 讓單位快速繩降 diff --git a/addons/fcs/stringtable.xml b/addons/fcs/stringtable.xml index 2418d649ce1..2c5cef86241 100644 --- a/addons/fcs/stringtable.xml +++ b/addons/fcs/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Marcar com laser / Medir Distância レーザー ターゲット / 計測距離 목표까지 거리를 레이저로 취득 + 雷射指示目标 / 测量距离 + 雷射指示目標 / 測量距離 Zeroed To @@ -28,6 +30,8 @@ Azzeramento a 次にゼロイン 영점 조절 + 归零到 + 歸零到 Adjust FCS Range (Up) @@ -42,6 +46,8 @@ Диапазон СУО (Выше) FCS による距離を調節 (上げ) 사통장치 거리 조정 (위로) + 调整火控系统距离 (上) + 調整火控系統距離 (上) Adjust FCS Range (Down) @@ -56,6 +62,8 @@ Диапазон СУО (Ниже) FCS による距離を調節 (下げ) 사통장치 거리 조정 (아래로) + 调整火控系统距离 (下) + 調整火控系統距離 (下) Reset FCS @@ -70,6 +78,8 @@ Обнулить СУО FCS を初期化 사통장치 초기화 + 重置火控系统 + 重置火控系統 FCS has been reset. @@ -84,6 +94,8 @@ СУО обнулен. FCS は初期化された 사통장치 초기화됨 + 火控系统已被重置 + 火控系統已被重置 diff --git a/addons/finger/stringtable.xml b/addons/finger/stringtable.xml index c447e894cfc..ef5de545c9a 100644 --- a/addons/finger/stringtable.xml +++ b/addons/finger/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Mostra puntatore per te stesso 自分にポインティング表記を表示する 자신이 가리키는곳을 보여줍니다 + 显示指向指示器给自己 + 顯示指向指示器給自己 Render the indicator for the pointing player. This option doesn't affect whether the other players would see the indicator @@ -28,6 +30,8 @@ Mostra puntatore per il giocatore indicato. Questa opzione non influisce la possibilità che gli altri giocatori vedano il puntatore プレイヤーへのポインティング表記を描画します。このオプションは他のプレイヤーの表記に影響しません。 대상이 가리키는곳을 보이게 합니다. + 显示指向指示器给玩家自己. 此选项设定并不影响其他玩家能否看到指示器. + 顯示指向指示器給玩家自己. 此選項設定並不影響其他玩家能否看到指示器. Pointing indicator @@ -42,6 +46,8 @@ Indicatore di puntamento ポインティング表記 가리키기 표시기 + 指向指示器 + 指向指示器 Color of the pointing indicator circle @@ -56,6 +62,8 @@ Colore del cerchio dell'indicatore di puntamento ポインティング表記の円の色 가리키기의 원형 색상 + 指向指示器颜色 + 指向指示器顏色 Action "point a finger at" @@ -70,6 +78,8 @@ Azione "punta il dito a" "point a finger at"キー "손가락으로 가리키기"행동 + 使"手指指向在" + 使"手指指向在" Points, and shows a virtual marker of where you are looking to nearby units. Can be held down. @@ -84,6 +94,8 @@ Punta e mostra un marker virtuale di dove stai guardando alle unità vicine. Può essere tenuto premuto. ポイント、そして架空のマーカー表記は自ユニットの近くにいると表記されます。これは押しっぱなしにできます。 당신이 보는것을 가상의 마커로 표시함으로서 다른 인원이 볼 수 있게 합니다. 누른채로 유지할 수 있습니다. + 当按下此按键后, 你附近的单位即可看见一个虚拟图示, 标明你正在指向的位置. 此按键可以被按住来持续显示. + 當按下此按鍵後, 你附近的單位即可看見一個虛擬圖示, 標明你正在指向的位置. 此按鍵可以被按住來持續顯示. Pointing Settings @@ -98,6 +110,8 @@ Impostazioni puntamento ポインティング設定 가리키기 설정 + 指向设定 + 指向設定 Pointing Enabled @@ -112,6 +126,8 @@ Puntamento abilitato ポインティングを有効 가리키기 활성화 + 指向系统启动 + 指向系統啟動 Pointing Max Range @@ -126,6 +142,8 @@ Raggio massimo puntamento ポインティングの最大範囲 가리키기 최대 범위 + 指向指示器最大显示距离 + 指向指示器最大顯示距離 Max range between players to show the pointing indicator [default: 4 meters] @@ -140,6 +158,8 @@ Distanza massima tra giocatori per mostrare l'indicatore di puntamento [default: 4 metri] ポインティング表記が他のプレイヤーに表示される範囲を決定できます。(標準 4 メートル) 플레이어 사이에서 가리키기 표시를 보이게 하는 최대거리를 설정합니다[기본설정: 4 미터] + 设定指向指示器最大显示距离. [预设: 4公尺] + 設定指向指示器最大顯示距離. [預設: 4公尺] diff --git a/addons/flashlights/stringtable.xml b/addons/flashlights/stringtable.xml index 2a411e91580..b6ba53aff7c 100644 --- a/addons/flashlights/stringtable.xml +++ b/addons/flashlights/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,6 +13,8 @@ Fulton MX-991 Fulton MX-991 Fulton MX-991 + Fulton MX-991 + Fulton MX-991 Flashlight with red filter. For use on map. @@ -26,6 +28,8 @@ Lampe torche avec un filtre rouge. Pour utilisation sur carte. 赤色フィルタ付きのフラッシュライト。地図上でつかいます。 빨간색 필터가 달린 손전등입니다. 지도를 비출때 씁니다. + 拥有红色滤光片的手电筒. 用来照亮地图. + 擁有紅色濾光片的手電筒. 用來照亮地圖. Maglite XL50 @@ -39,6 +43,8 @@ Maglite XL50 Maglite XL50 Maglite XL50 + Maglite XL50 + Maglite XL50 White mini flashlight. For use on map. @@ -52,6 +58,8 @@ Mini lampe torche blanche. Pour utilisation sur carte. 白色光の小さなフラッシュライト。地図上でつかいます。 하얀색 조그마한 손전등. 지도를 비출때 씁니다. + 白色的迷你手电筒. 用来照亮地图. + 白色的迷你手電筒. 用來照亮地圖. KSF-1 @@ -65,6 +73,8 @@ KSF-1 KSF-1 KSF-1 + KSF-1 + KSF-1 Flashlight with red filter. For use on map. @@ -78,6 +88,8 @@ Lampe torche avec un filtre rouge. Pour utilisation sur carte. 赤色フィルタ付きのフラッシュライト。地図上でつかいます。 빨간색 필터가 달린 손전등입니다. 지도를 비출때 씁니다. + 拥有红色滤光片的手电筒. 用来照亮地图. + 擁有紅色濾光片的手電筒. 用來照亮地圖. diff --git a/addons/flashsuppressors/stringtable.xml b/addons/flashsuppressors/stringtable.xml index e35d4421369..8a7bda4d55e 100644 --- a/addons/flashsuppressors/stringtable.xml +++ b/addons/flashsuppressors/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Bocacha (6,5 mm) 消炎器 (6.5 mm) 소염기 (6.5 mm) + 消光器 (6.5 mm) + 消光器 (6.5 mm) Flash Suppressor (7.62 mm) @@ -28,6 +30,8 @@ Bocacha (7,62 mm) 消炎器 (7.62 mm) 소염기 (7.62 mm) + 消光器 (7.62 mm) + 消光器 (7.62 mm) Flash Suppressor (5.56 mm) @@ -42,6 +46,8 @@ Bocacha (5,56 mm) 消炎器 (5.56 mm) 소염기 (5.56 mm) + 消光器 (5.56 mm) + 消光器 (5.56 mm) Flash Suppressor (.45 ACP) @@ -56,6 +62,8 @@ Bocacha (.45 ACP) 消炎器 (.45 ACP) 소염기 (.45 ACP) + 消光器 (.45 ACP) + 消光器 (.45 ACP) Flash Suppressor (9 mm) @@ -70,6 +78,8 @@ Bocacha (9 mm) 消炎器 (9 mm) 소염기 (9 mm) + 消光器 (9 mm) + 消光器 (9 mm) Flash Suppressor (.338) @@ -84,6 +94,8 @@ Bocacha (.338) 消炎器 (.338) 소염기 (.338) + 消光器 (.338) + 消光器 (.338) Flash Suppressor (9.3 mm) @@ -98,6 +110,8 @@ Bocacha (9,3 mm) 消炎器 (9.3 mm) 소염기 (9.3 mm) + 消光器 (9.3 mm) + 消光器 (9.3 mm) diff --git a/addons/frag/stringtable.xml b/addons/frag/stringtable.xml index 8429cad3b33..2ab13ba13d8 100644 --- a/addons/frag/stringtable.xml +++ b/addons/frag/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Simulazione Frammentazione 破片シミュレーション 조각 시뮬레이션 + 模拟碎片 + 模擬碎片 Fragmentation Simulation @@ -28,6 +30,8 @@ Simulazione Frammentazione 破片シミュレーション 조각 시뮬레이션 + 模拟碎片 + 模擬碎片 Enable the ACE Fragmentation Simulation @@ -42,6 +46,8 @@ Abilita la Simulazione Frammentazione di ACE ACE 破片シミュレーションを有効化 ACE 조각 시뮬레이션을 적용합니다. + 启用ACE模拟碎片 + 啟用ACE模擬碎片 Spalling Simulation @@ -56,6 +62,8 @@ Simulazione Spalling 剥離シミュレーション 파편 시뮬레이션 + 模拟剥落 + 模擬剝落 Enable the ACE Spalling Simulation @@ -70,6 +78,8 @@ Abilita la Simulazione Spalling di ACE ACE 剥離シミュレーションを有効化 ACE 파편 시뮬레이션을 적용합니다. + 启用ACE模拟剥落 + 啟用ACE模擬剝落 Explosion Reflections Simulation @@ -82,6 +92,8 @@ Cимуляция отражения взрывов ACE 爆発による飛翔シミュレーション 폭발 반사 시뮬레이션 + 模拟爆炸反射 + 模擬爆炸反射 Enable the ACE Explosion Reflection Simulation @@ -94,6 +106,8 @@ Включить симуляцию отражения взрывов ACE 爆発による飛翔シミュレーションを有効化 ACE 폭발 반사 시뮬레이션을 적용합니다. + 启用ACE模拟爆炸反射 + 啟用ACE模擬爆炸反射 Maximum Projectiles Tracked @@ -108,6 +122,8 @@ Numero massimo di Proiettili Tracciati 最大弾頭追跡数 최대 발사체 추적수 + 最大碎片/剥落粒子追踪数量 + 最大碎片/剝落粒子追蹤數量 This setting controls the maximum amount of projectiles the fragmentation and spalling system will track at any given time. If more projectiles are fired, they will not be tracked. Lower this setting if you do not want FPS drops at high-count projectile scenarios ( >200 rounds in the air at once) @@ -122,6 +138,8 @@ Questo parametro controlla il numero massimo di proiettili che la frammentazione e il sistema di spalling tracciano in ogni momento. Se più proiettili sono sparati, non verranno tracciati. Abbassa questo parametro se non vuoi cali di FPS in scenari con molti proiettili (>200 proiettili in aria contemporaneamente) 時間が許すかぎり、破片と剥離システムの最大数を設定できます。設定数以上の弾丸が発射された場合、それは対象になりません。もし多い弾数による FPS の低下を望まない場合は、低い数へ設定にします。( &gt;一度に空中内で200発) 이 설정은 조각 및 파편 시스템으로 인해 생긴 발사체의 수를 결정합니다. 만약 더 많은 발사체가 나올경우 정해진 수 이외에는 추적하지 않습니다. 이 설정을 낮춤으로써 파편이 많은 시나리오를 실행할때 더욱 원활히 진행할 수 있습니다 (한 번에 200개 이하) + 设定在指定时间内, 系统最大可追踪的碎片/剥落粒子数量. 如有更多的碎片在这之后产生, 这些粒子将不会被追踪. 如果你想要维持好的帧数, 此设定勿调的过高. ( >一次200颗粒子) + 設定在指定時間內, 系統最大可追蹤的碎片/剝落粒子數量. 如有更多的碎片在這之後產生, 這些粒子將不會被追蹤. 如果你想要維持好的幀數, 此設定勿調的過高. ( >一次200顆粒子) Maximum Projectiles Per Frame @@ -136,6 +154,8 @@ Numero massimo di proiettili per Frame フレームごとの最大弾頭数 프레임당 최대 발사체 수 + 每一帧数(FPS)最大碎片/剥落粒子数量 + 每一幀數(FPS)最大碎片/剝落粒子數量 The number of spall track calculations to perform in any given frame. This helps spread the FPS impact of tracking spall rounds across multiple frames, limiting its impact even further. @@ -150,6 +170,8 @@ Il numero di calcoli per tracciamento di spalling ad ogni frame. Questo aiuta a distribuire l'impatto del tracciamento dello spalling su più frame, limitando ancora di più l'impatto. 与えられたフレームごとに追跡する剥離の数を決定します。FPS に影響をあたえないよう、剥離を複数のフレームで追跡し、分散させています。 가능한 프레임마다 파편을 추적 및 계산합니다. 여러 프레임에 걸쳐 파편난 발사체를 추적하여 FPS에 도움을 줍니다. 이를 제한함으로써 더욱 큰 효과를 볼 수 있습니다. + 设定在每一帧数内, 系统最大可追踪的碎片/剥落粒子数量. 此设定可有效帮助系统减低计算压力. + 設定在每一幀數內, 系統最大可追蹤的碎片/剝落粒子數量. 此設定可有效幫助系統減低計算壓力. (SP Only) Frag/Spall Debug Tracing @@ -164,6 +186,8 @@ (Solo SP) Debug Tracciamento Frag/Spall (SP のみ) 破片/剥離のデバッグ用表示 (싱글플레이 전용) 조각/파편 디버그 추적화 + (仅在单人模式) 碎片/剥落除错追踪 + (僅在單人模式) 碎片/剝落除錯追蹤 (SP Only) Requires a mission/editor restart. Enables visual tracing of fragmentation and spalling rounds in SP game mode only. @@ -177,6 +201,8 @@ (Только для одиночной игры) Требует перезапуска миссии/редактора. Включает визуальные следы от осколков и обломков в режиме одиночной игры. (Solo SP) Richiede un restart editor/missione. Abilita il tracciamento visivo di schegge da frammentazione/spalling in modalità Giocatore Singolo. (SP のみ) ミッションとエディタの再起動が必要です。有効化すると、シングルプレイでのみ破片と剥離の弾頭が見えるようになります。 + (仅在单人模式) 让你在单人模式下可观察到碎片/剥落粒子的移动轨迹. + (僅在單人模式) 讓你在單人模式下可觀察到碎片/剝落粒子的移動軌跡. diff --git a/addons/gestures/stringtable.xml b/addons/gestures/stringtable.xml index 4f5063721ba..865a4709ce4 100644 --- a/addons/gestures/stringtable.xml +++ b/addons/gestures/stringtable.xml @@ -14,6 +14,8 @@ ACE Gestos ACE ジェスチャー ACE 수신호 + ACE 手势 + ACE 手勢 Gestures @@ -28,6 +30,8 @@ Gesti ジェスチャー 수신호 + 手势 + 手勢 Advance @@ -42,6 +46,8 @@ Avanzare 警戒 전진 + 前进 + 前進 Go @@ -56,6 +62,8 @@ Muoversi 進め 이동 + 出发 + 出發 Follow @@ -70,6 +78,8 @@ Seguire ついて来い 따라올것 + 跟进 + 跟進 Up @@ -84,6 +94,8 @@ Alzarsi 立ち上がれ + 起立 + 起立 Cease Fire @@ -98,6 +110,8 @@ Cessare il Fuoco 撃つな 사격 중지 + 停火 + 停火 Stop @@ -111,6 +125,8 @@ Detenerse 止まれ 멈춰 + 停止 + 停止 Freeze @@ -125,6 +141,8 @@ Fermi 動くな 정지 + 不准动 + 不准動 Cover @@ -139,6 +157,8 @@ Copertura 隠れろ 엄폐 + 掩护 + 掩護 Rally up @@ -152,6 +172,8 @@ Reunirse 集合 집결 + 集合 + 集合 Move forward @@ -165,6 +187,8 @@ Avanzar 前に進め 앞으로 이동 + 往前走 + 往前走 Engage @@ -178,6 +202,8 @@ Atacar 交戦しろ 교전할것 + 交战 + 交戰 Point @@ -191,6 +217,8 @@ Señalar 指示 가리키기 + 指出 + 指出 Hold @@ -204,6 +232,8 @@ Esperar そこにいろ 기다려 + 停住 + 停住 Warning @@ -217,6 +247,8 @@ Atención 注意 주의 + 警告 + 警告 Show Gestures On Interaction Menu @@ -230,6 +262,8 @@ Показать жесты в меню взаимодействия インタラクション メニュー上でジェスチャーを表示する 수신호를 상호작용 메뉴에서 보여줍니다 + 显示手势互动选单 + 顯示手勢互動選單 Show gestures on the self interaction menu, or just use keybinds, or disable completely @@ -243,6 +277,8 @@ Показать жесты в меню взамиодейтсвия с собой или только использовать горячие клавиши, или полностью отключить キー操作や同時使用を無効化している場合はセルフ インタラクション メニュ上でジェスチャーを表示します 수신호를 상호작용 메뉴에서 보여주거나 혹은 단축키를 지정하거나 아니면 아예 사용하지 않습니다. + 显示手势选项在自己的互动选单上, 或只利用键盘来使用手势, 或完全禁用 + 顯示手勢選項在自己的互動選單上, 或只利用鍵盤來使用手勢, 或完全禁用 Just Keybinds @@ -256,6 +292,8 @@ Только горячие клавиши キー操作のみ 오직 단축키만 + 只利用键盘 + 只利用鍵盤 Keybinds + Interaction Menu @@ -269,6 +307,8 @@ Клавиши + Меню взаимодействия キー操作とインタラクション メニュ 단축키및 상호작용 메뉴 + 键盘 + 互动选单 + 鍵盤 + 互動選單 diff --git a/addons/gforces/stringtable.xml b/addons/gforces/stringtable.xml index 2abb558b589..717675b5589 100644 --- a/addons/gforces/stringtable.xml +++ b/addons/gforces/stringtable.xml @@ -13,6 +13,8 @@ Efekty przeciążeń 중력가속도 효과 Effetti forza G + G力影响 + G力影響 Only Aircraft @@ -26,6 +28,8 @@ Tylko samoloty 비행기에만 적용 Solo Aerei + 只有战斗机 + 只有戰鬥機 diff --git a/addons/goggles/stringtable.xml b/addons/goggles/stringtable.xml index c06d310ef7a..320be6950f7 100644 --- a/addons/goggles/stringtable.xml +++ b/addons/goggles/stringtable.xml @@ -14,6 +14,8 @@ Attiva l'effetto degli occhiali in terza persona 三人称視点でもゴーグルによる効果を出す 3인칭시에도 고글 효과를 보이게 합니다 + 在第三人称视角显示护目镜效果 + 在第三人稱視角顯示護目鏡效果 Wipe Goggles @@ -28,6 +30,8 @@ Pulisci gli occhiali ゴーグルを拭く 고글 닦기 + 擦拭护目镜 + 擦拭護目鏡 Goggle Effects @@ -38,6 +42,8 @@ 고글 효과 Effets des lunettes Effetto Occhiali + 护目镜效果 + 護目鏡效果 Tint @@ -48,6 +54,8 @@ 색조 Teinte Colore + 染色 + 染色 Tint + Effects @@ -58,6 +66,8 @@ 색조+효과 Teinte + effets Colore + Effetti + 染色 + 影响 + 染色 + 影響 diff --git a/addons/grenades/stringtable.xml b/addons/grenades/stringtable.xml index fe102bec8fd..f0c9089aad8 100644 --- a/addons/grenades/stringtable.xml +++ b/addons/grenades/stringtable.xml @@ -14,6 +14,8 @@ Alternar Modo de Granada グレネード モードを切り替え 투척 종류 전환 + 切换投掷模式 + 切換投擲模式 Normal Throw @@ -28,6 +30,8 @@ Arremesso Normal 通常で投げる 일반 던지기 + 普通投掷 + 普通投擲 High Throw @@ -42,6 +46,8 @@ Arremesso Alto 高く投げる 높이 던지기 + 高抛 + 高拋 Precise Throw @@ -56,6 +62,8 @@ Arremesso Preciso 低く投げる 정확한 던지기 + 精准投掷 + 精準投擲 Roll Grenade @@ -70,6 +78,8 @@ Rolar Granada 転がす 굴려넣기 + 地面滚抛 + 地面滾拋 Drop Grenade @@ -84,6 +94,8 @@ Largar Granada 落とす 떨어뜨리기 + 下丢投掷 + 下丟投擲 M84 Stun Grenade @@ -98,6 +110,8 @@ M84 granada de atordoamento M84 閃光手榴弾 M84 섬광 수류탄 + M84 震撼弹 + M84 震撼彈 M84 @@ -112,6 +126,8 @@ M84 M84 M84 + M84 + M84 Also known as flashbang. Causes immediate flash blindness, deafness, tinnitus, and inner ear disturbance. @@ -126,6 +142,8 @@ Também conhecida como flashbang. Causa uma clarão imediato, cegueira, surdez, zumbido e distúrbio no tímpano. フラッシュバンとも知られています。即時に失明と難聴、耳鳴り、内耳障害を引き起こします。 플래시뱅이라고도 알려져있습니다. 사용즉시 섬광으로 인한 시력장애, 청각장애, 이명, 내이기관방해를 유발합니다. + 也被称为闪光弹, 会造成暂时性失明, 耳聋, 耳鸣等效果 + 也被稱為閃光彈, 會造成暫時性失明, 耳聾, 耳鳴等效果 M127A1 Hand Held Signal (White) @@ -140,6 +158,8 @@ M127A1 Feux à main (Blanc) M127A1 信号弾 (白) M127A1 신호탄 (하얀색) + M127A1 手持式信号弹 (白色) + M127A1 手持式信號彈 (白色) M127A1 Hand Held Signal (Red) @@ -154,6 +174,8 @@ M127A1 Feux à main (Rouge) M127A1 信号弾 (赤) M127A1 신호탄 (빨간색) + M127A1 手持式信号弹 (红色) + M127A1 手持式信號彈 (紅色) M127A1 Hand Held Signal (Green) @@ -168,6 +190,8 @@ M127A1 Feux à main (Vert) M127A1 信号弾 (緑) M127A1 신호탄 (초록색) + M127A1 手持式信号弹 (绿色) + M127A1 手持式信號彈 (綠色) M127A1 Hand Held Signal (Yellow) @@ -182,6 +206,8 @@ M127A1 Feux à main (Jaune) M127A1 信号弾 (黄) M127A1 신호탄 (노란색) + M127A1 手持式信号弹 (黄色) + M127A1 手持式信號彈 (黃色) White Hand Flare @@ -196,6 +222,8 @@ Feux à main (Blanc) 白の発炎筒 하얀색 불꽃신호기 + 白色手持式信号弹 + 白色手持式信號彈 Red Hand Flare @@ -210,6 +238,8 @@ Feux à main (Rouge) 赤の発炎筒 빨간색 불꽃신호기 + 红色手持式信号弹 + 紅色手持式信號彈 Green Hand Flare @@ -224,6 +254,8 @@ Feux à main (Vert) 緑の発炎筒 초록색 불꽃신호기 + 绿色手持式信号弹 + 綠色手持式信號彈 Yellow Hand Flare @@ -238,6 +270,8 @@ Feux à main (Jaune) 黄の発炎筒 노란색 불꽃신호기 + 黄色手持式信号弹 + 黃色手持式信號彈 M127A1 (White) @@ -252,6 +286,8 @@ M127A1 (Blanca) M127A1 (白) M127A1 (하양) + M127A1 (白色) + M127A1 (白色) M127A1 (Red) @@ -266,6 +302,8 @@ M127A1 (Roja) M127A1 (赤) M127A1 (빨강) + M127A1 (红色) + M127A1 (紅色) M127A1 (Green) @@ -280,6 +318,8 @@ M127A1 (Verde) M127A1 (緑) M127A1 (초록) + M127A1 (绿色) + M127A1 (綠色) M127A1 (Yellow) @@ -294,6 +334,8 @@ M127A1 (Amarilla) M127A1 (黄) M127A1 (노랑) + M127A1 (黄色) + M127A1 (黃色) AN-M14 Incendiary Grenade @@ -304,6 +346,8 @@ AN-M14 소이 수류탄 Grenade incendiaire AN-M14 AN-M14 Granata Incendiaria + AN-M14 燃烧手榴弹 + AN-M14 燃燒手榴彈 AN-M14 @@ -314,6 +358,8 @@ AN-M14 AN-M14 AN-M14 + AN-M14 + AN-M14 Incendiary grenade used to destroy weapons, ammunition and other equipment. @@ -324,6 +370,8 @@ 소이 수류탄은 무기나 탄약 그리고 장비를 파괴할때 쓰입니다. Grenade incendiaire utilisé pour détruire des armes, munitions et autres équipements. Granata incendiaria usata per distruggere armi, munizioni e altri equipaggiamenti. + 燃烧手榴弹是用来摧毁武器, 弹药以及其他装备的好帮手. + 燃燒手榴彈是用來摧毀武器, 彈藥以及其他裝備的好幫手. diff --git a/addons/gunbag/stringtable.xml b/addons/gunbag/stringtable.xml index 5e5d8a7526f..2f7834e6bce 100644 --- a/addons/gunbag/stringtable.xml +++ b/addons/gunbag/stringtable.xml @@ -11,6 +11,8 @@ Torba na broń 총가방 Borsa per Armi + 枪袋 + 槍袋 Gunbag (Tan) @@ -22,6 +24,8 @@ Torba na broń (jasnobrązowa) 총가방 (황갈색) Borsa per Armi (Tan) + 枪袋 (黄褐色) + 槍袋 (黃褐色) Put weapon into gunbag @@ -33,6 +37,8 @@ Włóż broń do torby 무기를 총가방에 넣기 Metti l'arma nella borsa per armi + 将武器放置枪袋 + 將武器放置槍袋 Get weapon out of gunbag @@ -44,6 +50,8 @@ Wyciągnij broń z torby 무기를 총가방에서 꺼내기 Prendi l'arma dalla borsa per armi + 将武器拿出枪袋 + 將武器拿出槍袋 Status @@ -55,6 +63,8 @@ Status 상태 Stato + 状态 + 狀態 Gunbag Empty @@ -66,6 +76,8 @@ Torba jest pusta 총가방 비어있음 Borsa per armi vuota + 枪袋为空 + 槍袋為空 diff --git a/addons/hearing/stringtable.xml b/addons/hearing/stringtable.xml index 0b82e64659b..0bd55c67954 100644 --- a/addons/hearing/stringtable.xml +++ b/addons/hearing/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Tappi auricolari 耳栓 귀마개 + 耳塞 + 耳塞 Protective Earplugs allow the wearer to be near loud weaponry without damage to his hearing. @@ -28,6 +30,8 @@ Proteggono l'apparato uditivo, permettendo a chi li indossa di resistere ai suoni particolarmente forti senza alcun danno. 着けることにより、近くの大きな銃声から聴覚を保護します。 보호용 귀마개는 화기로부터의 큰소리로부터 사용자의 청력을 보호합니다. + 配戴防护耳塞, 遇到大声的武器发射时也不会损害听力. + 配戴防護耳塞, 遇到大聲的武器發射時也不會損害聽力. Earplugs in @@ -42,6 +46,8 @@ Indossa i tappi auricolari 耳栓を着ける 귀마개 착용 + 塞入耳塞 + 塞入耳塞 Earplugs out @@ -56,6 +62,8 @@ Levati i tappi auricolari 耳栓を外す 귀마개 뺌 + 取出耳塞 + 取出耳塞 Earplugs in @@ -70,6 +78,8 @@ Indossa i tappi auricolari 耳栓を着けた 귀마개 착용 + 耳塞已塞入 + 耳塞已塞入 Earplugs out @@ -84,6 +94,8 @@ Levati i tappi auricolari 耳栓を外した 귀마개 뺌 + 耳塞已取出 + 耳塞已取出 You have no earplugs @@ -98,6 +110,8 @@ Non hai i tappi auricolari 耳栓を持っていません 귀마개가 없습니다 + 你没有耳塞 + 你沒有耳塞 No inventory space @@ -112,6 +126,8 @@ Нет места в инвентаре インベントリに空きがありません。 넣을 공간이 없습니다 + 无可用空间 + 無可用空間 Disable ear ringing @@ -126,6 +142,8 @@ Desabilitar zumbido de ouvidos 耳鳴りを無効化する 이명현상 끄기 + 关闭耳鸣效果 + 關閉耳鳴效果 Remove tinnitus effect when the player takes hearing damage @@ -138,6 +156,8 @@ Убирает эффект звона в ушах, когда игрок получает повреждение слуха プレイヤーの聴覚が損傷をしたら耳鳴りの効果を削除します 플레이어가 청력손실을 입을때 생기는 이명현상을 제거합니다. + 关闭耳鸣效果时, 就算玩家受到相当程度的听力伤害, 也不会造成耳鸣效果. + 關閉耳鳴效果時, 就算玩家受到相當程度的聽力傷害, 也不會造成耳鳴效果. Hearing @@ -152,6 +172,8 @@ Udito 聴覚 청력 + 听力设定 + 聽力設定 Enable Combat Deafness @@ -166,6 +188,8 @@ Sordità da combattimento 戦闘による難聴を有効化 전투 난청 켜기 + 启用战斗性耳聋? + 啟用戰鬥性耳聾? Reduces the hearing ability as the player takes hearing damage @@ -179,6 +203,8 @@ Réduire l'audition lorsque le joueur prend des dommages auditifs. 音による損傷をうけ、聴覚が減る可能性があります 청력에 손상을 입으면 듣는 소리가 감소합니다. + 当玩家听力受损时降低听力能力? + 當玩家聽力受損時降低聽力能力? Controls combat deafness and ear ringing. When activated, players can be deafened when a gun is fired in their vicinity or an explosion takes place without hearing protection @@ -193,6 +219,8 @@ Controlla la sordità da combattimento e fischio alle orecchie. Quando attivato, i giocatori possono essere assordati quando un'arma spara vicino o avviene un'esplosione senza protezione uditiva 戦闘による難聴や、耳鳴りを設定します。有効になった場合、聴覚を保護していないと近傍の銃声や爆発音により、難聴になります。 전투 난청과 이명현상을 조작합니다. 작동시 플레이어가 화기나 폭발의 주변에 있을경우 청력보호장치가 없을때 청력손실을 입습니다. + 设定战斗性耳聋和耳鸣. 当启用后, 玩家会在有武器在旁边射击或爆炸产生时造成耳鸣效果 + 設定戰鬥性耳聾和耳鳴. 當啟用後, 玩家會在有武器在旁邊射擊或爆炸產生時造成耳鳴效果 Effect Zeus RC @@ -206,6 +234,8 @@ Effet sur le CàD du Zeus Zeus RC への効果 Zeus RC 효과 + 启用效果在宙斯远程遥控 + 啟用效果在宙斯遠程遙控 Allow zeus remote controlled units to be able to take hearing damage. @@ -219,6 +249,8 @@ Permet aux unités controlées à distance de subir des traumatismes sonores. Zeus により遠隔操作されたユニットにも、聴覚へ損傷を受けるようにします。 Zeus가 원격으로 청력손실을 입힐 수 있게 합니다. + 设定宙斯远程遥控的单位也会受到耳鸣的效果. + 設定宙斯遠程遙控的單位也會受到耳鳴的效果. Add earplugs to units @@ -232,6 +264,8 @@ Ajouter des bouchons anti-bruits aux unités ユニットへ耳栓を追加 해당 인원에게 귀마개 추가 + 增加耳塞给单位 + 增加耳塞給單位 Add the `ACE_EarPlugs` item to all units that have loud weapons. Can disable if using custom loadouts. @@ -245,6 +279,8 @@ Ajoute l'objet "Ace_EarPlugs" à toutes les unités ayant des armes bruyantes. Peut être désactivé par des loadouts personalisés. 全ユニットへ`ACE_EarPlugs`アイテムをもたせます。これは変更された武装で無効化できます。 무기를 가지고 있는 모든 인원에게 'ACE_EarPlugs'를 지급합니다. 임의의 장비를 사용시 비활성화 할 수 있습니다. + 增加`ACE_EarPlugs`物品给拥有巨大噪音武器的单位. 当你想自定装备时, 此功能可被关闭. + 增加`ACE_EarPlugs`物品給擁有巨大噪音武器的單位. 當你想自定裝備時, 此功能可被關閉. diff --git a/addons/hellfire/stringtable.xml b/addons/hellfire/stringtable.xml index fd46f2a471a..d60e6ac9a8c 100644 --- a/addons/hellfire/stringtable.xml +++ b/addons/hellfire/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,11 +13,15 @@ Hellfire Hellfire ヘルファイア + 地狱火 + 地獄火 Set Hellfire mode Imposta modalità Hellfire ヘルファイア モードを設定 + 设定地狱火模式 + 設定地獄火模式 diff --git a/addons/huntir/stringtable.xml b/addons/huntir/stringtable.xml index a65c98f8b55..ed1d0058da1 100644 --- a/addons/huntir/stringtable.xml +++ b/addons/huntir/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Caixa de transporte do HuntIR HuntIR 輸送箱 HuntIR 수송함 + 高空战术成像器运输箱 + 高空戰術成像器運輸箱 HuntIR Round @@ -28,6 +30,8 @@ Cartucho HuntIR HuntIR 弾頭 HuntIR 유탄 + 高空战术成像器弹药 + 高空戰術成像器彈藥 HuntIR monitor @@ -42,6 +46,8 @@ Monitor HuntIR HuntIR モニタ HuntIR 모니터 + 高空战术成像器显示面板 + 高空戰術成像器顯示面板 Activate HuntIR monitor @@ -56,6 +62,8 @@ Ativar monitor do HuntIR HuntIR を起動する HuntIR 모니터 켜기 + 开启高空战术成像器显示面板 + 開啟高空戰術成像器顯示面板 Camera: @@ -70,6 +78,8 @@ Câmera: カメラ: 카메라: + 摄影机: + 攝影機: Altitude: @@ -84,6 +94,8 @@ Altitude: 高度: 고도: + 高度: + 高度: Recording Time: @@ -98,6 +110,8 @@ Tempo de gravação: 録画時間: 녹화시간: + 记录时间: + 記錄時間: Press ESC to quit camera @@ -112,6 +126,8 @@ Pressione ESC para sair da câmera ESC を押しカメラを抜ける ESC를 눌러 카메라 나가기 + 按下ESC退出摄影机 + 按下ESC退出攝影機 Help @@ -126,6 +142,8 @@ Ajuda ヘルプ 도움말 + 帮助 + 幫助 A/D - Cycle zoom @@ -140,6 +158,8 @@ A/D - Troca zoom A/D - 倍率の変更 A/D - 줌 전환 + A/D - 切换放大倍率 + A/D - 切換放大倍率 W/S - Select camera @@ -154,6 +174,8 @@ W/S - Seleciona câmera W/S - カメラを選択 W/S - 카메라 선택 + W/S - 切换摄影机 + W/S - 切換攝影機 Left/Right - Rotate camera @@ -168,6 +190,8 @@ Esquerda/Direita - Rotaciona câmera Left/Right - カメラを開店 좌/우 - 카메라 돌리기 + 左/右 - 旋转摄影机 + 左/右 - 旋轉攝影機 Up/Down - Elevate/lower camera @@ -182,6 +206,8 @@ Acima/Abaixo - Eleva/Abaixa a câmera Up/Down - カメラ角度を変更 상/하 카메라 올리기/내리기 + 上/下 - 上升/下降摄影机 + 上/下 - 上升/下降攝影機 N - Cycle IT modes @@ -196,6 +222,8 @@ N - Troca modo IT N - IT モードを変更 N - IT모드 순환 + N - 切换热显模式 + N - 切換熱顯模式 R - Reset camera @@ -210,6 +238,8 @@ R - Redefine a câmera R - カメラを初期化 R - 카메라 초기화 + R - 重置摄影机 + R - 重置攝影機 Esc - Exit help @@ -224,6 +254,8 @@ Esc - Sai do Ajuda Esc - ヘルプを出る Esc - 도움말 나가기 + Esc - 离开帮助 + Esc - 離開幫助 diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index ba9647e99a3..4f5222f691b 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Sempre mostrar cursor para interação pessoal セルフ インタラクションへ常にカーソルを表示 자기상호작용시 항상 커서를 보이기 + 自我互动时永远显示游标 + 自我互動時永遠顯示游標 Always display cursor for interaction @@ -28,6 +30,8 @@ Sempre mostrar cursor para interação インタラクションへ常にカーソルを表示 상호작용시 항상 커서를 보이기 + 互动时永远显示游标 + 互動時永遠顯示游標 Display interaction menus as lists @@ -42,6 +46,8 @@ Mostrar menu de interação como listas 表示されるインタラクション メニューを一覧表示 상호작용메뉴를 리스트화 해서 보이기 + 以列表方式显示互动表单 + 以列表方式顯示互動表單 Interact Key @@ -56,6 +62,8 @@ Tecla de Interação インタラクション キー 상호작용 키 + 互动键 + 互動鍵 Self Interaction Key @@ -70,6 +78,8 @@ Tecla de Interação Pessoal セルフ インタラクション キー 자기상호작용 키 + 自我互动键 + 自我互動鍵 Self Actions @@ -84,6 +94,8 @@ Ações Pessoais 自分への動作 자기 동작 + 自我动作 + 自我動作 Vehicle Actions @@ -98,6 +110,8 @@ Ações de Veículos 車両への動作 차량 동작 + 载具动作 + 載具動作 Zeus Actions @@ -112,6 +126,8 @@ Azioni Zeus Zeus への動作 Zeus 동작 + 宙斯操作 + 宙斯操作 Interaction - Text Max @@ -126,6 +142,8 @@ Interação - Max. de Texto インタラクション - 文字の色 상호작용 - 문자색깔 + 互动 - 文字最大化 + 互動 - 文字最大化 Interaction - Text Min @@ -140,6 +158,8 @@ Interação - Min. de Texto インタラクション - 文字の背景色 상호작용 - 문자배경색 + 互动 - 文字最小化 + 互動 - 文字最小化 Interaction - Shadow Max @@ -154,6 +174,8 @@ Interação - Max. de Sombra インタラクション - 文字への影の色 상호작용 - 문자그림자색 + 互动 - 阴影最大化 + 互動 - 陰影最大化 Interaction - Shadow Min @@ -168,6 +190,8 @@ Interação - Min. de Sombra インタラクション - 文字への影の最低色 상호작용 - 문자그림자배경색 + 互动 - 阴影最小化 + 互動 - 陰影最小化 Keep cursor centered @@ -182,6 +206,8 @@ Mantieni il cursore centrato 常にカーソルを中央にする 커서를 항상 가운데에 둡니다 + 保持游标在中心点 + 保持游標在中心點 Keeps cursor centered and pans the option menu around. Useful if screen size is limited. @@ -196,6 +222,8 @@ Mantieni il cursore centrato e sposta il menù intorno. Utile se lo schermo è piccolo. 常にカーソルを中央へ表示させ、オプション メニューが移動します。画面の大きさが制限されている時に使いやすくなります。 커서를 항상 가운데에 두고 메뉴를 움직입니다. 화면의 크기가 제한되있을때 유용합니다. + 保持游标在中心点并平移周遭的选项选单. 这对在荧幕尺寸有限的玩家很有用! + 保持游標在中心點並平移周遭的選項選單. 這對在螢幕尺寸有限的玩家很有用! Do action when releasing menu key @@ -210,6 +238,8 @@ Esegui l'azione quando rilasci il tasto menu メニュー キーを離したときに動作を実行します。 메뉴키를 놓을때 행동하기 + 当放开选单键后就执行动作 + 當放開選單鍵後就執行動作 Interaction Text Size @@ -224,6 +254,8 @@ Dimensione del testo d'interazione インタラクション文字の大きさ 상호작용 - 문자크기 + 互动选单文字大小 + 互動選單文字大小 Interaction Text Shadow @@ -238,6 +270,8 @@ Ombra del testo d'interazione インタラクション文字へ影 상호작용 - 문자그림자 + 互动选单文字阴影 + 互動選單文字陰影 Allows controlling the text's shadow. Outline ignores custom shadow colors. @@ -252,6 +286,8 @@ Permette di controllare l'ombra del testo. L'impostazione "Contorno" ignora il colore dell'ombra. 文字への影を設定します。縁取りは設定された影の色を無視します。 문자의 그림자를 조절하는것을 가능케합니다. 외각선은 임의의 그림자색을 무시합니다. + 允许控制文字阴影. 轮廓部分则会忽略自定义的阴影颜色 + 允許控制文字陰影. 輪廓部分則會忽略自定義的陰影顏色 Outline @@ -266,6 +302,8 @@ Contorno 縁取り 외각선 + 只显示轮廓 + 只顯示輪廓 Interaction menu background @@ -280,6 +318,8 @@ Sfondo Menù Interazioni インタラクション メニューの背景 상호작용 메뉴 배경 + 互动选单背景 + 互動選單背景 Blur the background while the interaction menu is open. @@ -294,6 +334,8 @@ Sfoca lo sfondo mentre il Menù Interazioni è aperto. インタラクション メニューを開いたとき、背景にボケを与えます。 상호작용 메뉴가 열릴시 배경을 흐릿하게 처리합니다. + 当互动选单开启时, 模糊背景画面 + 當互動選單開啟時, 模糊背景畫面 Blur screen @@ -308,6 +350,8 @@ Sfoca schermo ボケ画面 화면 흐리게 + 模糊画面 + 模糊畫面 Black @@ -322,6 +366,8 @@ Nero ブラック 까맣게 + 黑色 + 黑色 Show actions for buildings @@ -336,6 +382,8 @@ Mostra azioni per edifici 建物へ動作を表示 건물에 행동을 취함 + 显示建筑物可用的动作 + 顯示建築物可用的動作 Adds interaction actions for opening doors and mounting ladders on buildings. (Note: There is a performance cost when opening interaction menu, especially in towns) @@ -350,6 +398,8 @@ Aggiunge azioni interattive per l'apertura delle porte e piazzamento scale su edifici. (Nota: C'è un costo in performance quando si apre il Menù Interazioni, soprattutto in città) 建物にあるドアの開閉やラダーの昇降といった動作をインタラクションへ追加します。(街などでインタラクション メニューを開くとパフォーマンスが低下します) 건물의 문을 열거나 사다리에 오르는 상호작용 행동을 추가합니다. (주의: 상호작용 메뉴를 열경우 성능하락이 있을 수 있음, 특히 마을 내부에서) + 增加互动选单的功能在可开启的门与建筑物的梯子上. (注意: 此功能有可能会降低系统效能, 特别是在城镇区更明显) + 增加互動選單的功能在可開啟的門與建築物的梯子上. (注意: 此功能有可能會降低系統效能, 特別是在城鎮區更明顯) Interaction Menu @@ -363,6 +413,8 @@ Menu d'interaction インタラクション メニュー 상호작용 메뉴 + 互动选单 + 互動選單 Interaction Animation Speed @@ -376,6 +428,8 @@ Vitesse de l'aniamtion d'interaction インタラクションのアニメーション速度 상호작용 움직임 속도 + 互动选单动画速度 + 互動選單動畫速度 Makes menu animations faster and decreases the time needed to hover to show sub actions @@ -388,6 +442,8 @@ Hace la animación del menú más rápida, reduciendo el tiempo necesario para abrir sub-acciones. Rend les animations de menu plus rapide et réduit le temps nécessaire à l'affichage des sous menus d'action サブ動作が表示されるホバーをした時に、表示されるメニューのアニメーション速度を早くしたり遅くしたりできます + 使选单的动画速度更快, 并减少子选项显现出来的时间 + 使選單的動畫速度更快, 並減少子選項顯現出來的時間 diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml index 2679f228aa9..7c37267ab7c 100644 --- a/addons/interaction/stringtable.xml +++ b/addons/interaction/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Interaçãoes インタラクション 상호작용 + 互动 + 互動 Torso @@ -28,6 +30,8 @@ Torso 胴体 몸통 + 身体 + 身體 Head @@ -42,6 +46,8 @@ Cabeça 頭部 머리 + 头部 + 頭部 Left Arm @@ -56,6 +62,8 @@ Braço Esquerdo 左腕 왼쪽 팔 + 左手 + 左手 Right Arm @@ -70,6 +78,8 @@ Braço Direito 右腕 오른쪽 팔 + 右手 + 右手 Left Leg @@ -84,6 +94,8 @@ Perna Esquerda 左足 왼쪽 다리 + 左脚 + 左腳 Right Leg @@ -98,6 +110,8 @@ Perna Direita 右足 오른쪽 다리 + 右脚 + 右腳 Weapon @@ -112,6 +126,8 @@ Arma 武器 무기 + 武器 + 武器 Interaction Menu @@ -126,6 +142,8 @@ Menù interazione インタラクション メニュー 상호작용 메뉴 + 互动选单 + 互動選單 Interaction Menu (Self) @@ -140,6 +158,8 @@ Menù interazione (individuale) インタラクション メニュー (セルフ) 상호작용 메뉴(자신) + 互动选单 (自我) + 互動選單 (自我) Open / Close Door @@ -154,6 +174,8 @@ Apri / Chiudi la porta ドアの開け閉め 문 열기 / 닫기 + 打开/关上 门 + 打開/關上 門 Lock Door @@ -168,6 +190,8 @@ Zamknout dveře ドアの鍵を閉める 문 잠그기 + 锁门 + 鎖門 Unlock Door @@ -182,6 +206,8 @@ Odemknout dveře ドアの鍵を開ける 잠긴문 열기 + 解锁门 + 解鎖門 Locked Door @@ -196,6 +222,8 @@ Zamčené dveře ドアの鍵を締めた 잠긴 문 + 门已上锁 + 門已上鎖 Unlocked Door @@ -210,6 +238,8 @@ Odemčené dveře ドアの鍵を開けられた 열린 문 + 门未上锁 + 門未上鎖 Join group @@ -224,6 +254,8 @@ Unisciti alla squadra グループにはいる 그룹 참여 + 加入小队 + 加入小隊 Leave Group @@ -238,6 +270,8 @@ Lascia la squadra グループをぬける 그룹 나가기 + 离开小队 + 離開小隊 Become Leader @@ -252,6 +286,8 @@ Prendi il comando リーダーになる 리더 되기 + 成为队长 + 成為隊長 DANCE! @@ -266,6 +302,8 @@ DANZA! おどれ! 춤추기! + 跳舞 + 跳舞 Stop Dancing @@ -280,6 +318,8 @@ Smetti di ballare 踊るのをやめる 춤 멈추기 + 停止跳舞 + 停止跳舞 << Back @@ -294,6 +334,8 @@ << Indietro &lt;&lt; もどる <<뒤로 + <<返回 + <<返回 Put weapon on back @@ -308,6 +350,8 @@ Metti l'arma in spalla 武器を背負う 등에 무기 메기 + 将武器放到背后 + 將武器放到背後 Tap Shoulder @@ -322,6 +366,8 @@ Dai un colpetto 肩をたたく 어깨 두드리기 + 轻拍肩膀 + 輕拍肩膀 You were tapped on the RIGHT shoulder @@ -336,6 +382,8 @@ Ti è stato dato un colpetto sulla spalla destra 右肩を叩かれた 누군가 오른쪽 어깨를 쳤다 + 你的右肩膀被轻拍了一下 + 你的右肩膀被輕拍了一下 You were tapped on the LEFT shoulder. @@ -350,6 +398,8 @@ Ti è stato dato un colpetto sulla spalla sinistra 左肩を叩かれた 누군가 왼쪽 어깨를 쳤다 + 你的左肩膀被轻拍了一下 + 你的左肩膀被輕拍了一下 Cancel @@ -364,6 +414,8 @@ Mégse 中止 취소 + 取消 + 取消 Select @@ -378,6 +430,8 @@ Kiválaszt 選択 선택 + 选择 + 選擇 Go Away! @@ -392,6 +446,8 @@ Via di qui! うせろ! 저리 가! + 走开! + 走開! Get Down! @@ -406,6 +462,8 @@ A terra! ふせろ! 엎드려! + 趴下! + 趴下! Get Out @@ -418,6 +476,8 @@ Vystupte 降りる 나가 + 出去 + 出去 Team Management @@ -432,6 +492,8 @@ Csapat kezelése チーム管理 팀 설정 + 小队管理 + 小隊管理 Red @@ -446,6 +508,8 @@ Piros レッド 빨강 + 红色 + 紅色 Green @@ -460,6 +524,8 @@ Zöld グリーン 초록 + 绿色 + 綠色 Blue @@ -474,6 +540,8 @@ Kék ブルー 파랑 + 蓝色 + 藍色 Yellow @@ -488,6 +556,8 @@ Sárga イエロー 노랑 + 黄色 + 黃色 Assign Red @@ -502,6 +572,8 @@ Assegna al team rosso レッドにする 빨강에 등록 + 指派为红组 + 指派為紅組 Assign Green @@ -516,6 +588,8 @@ Assegna al team verde グリーンにする 초록에 등록 + 指派为绿组 + 指派為綠組 Assign Blue @@ -530,6 +604,8 @@ Assegna al team blu ブルーにする 파랑이 등록 + 指派为蓝组 + 指派為藍組 Assign Yellow @@ -544,6 +620,8 @@ Assegna al team giallo イエローにする 노랑에 등록 + 指派为黄组 + 指派為黃組 Join Red @@ -558,6 +636,8 @@ Unirsi al team rosso レッドに入る 빨강에 참여 + 加入红组 + 加入紅組 Join Green @@ -572,6 +652,8 @@ Unirsi al team verde グリーンに入る 초록에 참여 + 加入绿组 + 加入綠組 Join Blue @@ -586,6 +668,8 @@ Unirsi al team blu ブルーに入る 파랑에 참여 + 加入蓝组 + 加入藍組 Join Yellow @@ -600,6 +684,8 @@ Unirsi al team giallo イエローに入る 노랑에 참여 + 加入黄组 + 加入黃組 You joined Team %1 @@ -614,6 +700,8 @@ Csatlakoztál a %1 csapathoz チーム %1 に入った 당신은 %1팀에 참여했습니다 + 你已加入%1组 + 你已加入%1組 Leave Team @@ -628,6 +716,8 @@ Csapat elhagyása チームを抜ける 팀 나가기 + 离开小队 + 離開小隊 You left the Team @@ -642,6 +732,8 @@ Elhagytad a csapatot チームを抜けた 팀을 나갔습니다 + 你已离开小队 + 你已離開小隊 Pardon @@ -656,6 +748,8 @@ Megbocsátás 許す 허용 + 原谅 + 原諒 Scroll @@ -670,6 +764,8 @@ Posunout スクロール 스크롤 + 滚动 + 滾動 Modifier Key @@ -684,6 +780,8 @@ Modifikátor キーを割り当て 키 할당하기 + 编辑按键 + 編輯按鍵 Not in Range @@ -698,6 +796,8 @@ Fuori limite 範囲内にありません 범위 내에 없습니다 + 不在范围内 + 不在範圍內 Equipment @@ -712,6 +812,8 @@ Equipamento 装備 장비 + 装备 + 裝備 Push @@ -726,6 +828,8 @@ Spingere 押す 밀기 + + Interact @@ -740,6 +844,8 @@ Interagir インタラクト 상호작용 + 互动 + 互動 Passengers @@ -754,6 +860,8 @@ Passageiros 後部座席 승객 + 乘客 + 乘客 Open @@ -768,6 +876,8 @@ Öffnen 開く 열기 + 打开 + 打開 Interaction System @@ -782,6 +892,8 @@ Sistema Interazioni インタラクション システム 상호작용 시스템 + 互动系统 + 互動系統 Enable Team Management @@ -796,6 +908,8 @@ Abilità Management Squadra チーム管理をつかう 팀 설정 활성화 + 启用小队管理 + 啟用小隊管理 Should players be allowed to use the Team Management Menu? Default: Yes @@ -810,6 +924,8 @@ Possono i giocatori usare il Menù Managment Squadra? Default: Si プレイヤーがチーム管理メニューを使えるようにしますか?標準:はい 플레이어들이 팀 설정하는 것을 허락합니까? 기본설정: 예 + 允许玩家使用小队管理选单? 预设: 是 + 允許玩家使用小隊管理選單? 預設: 是 Team management allows color allocation for team members, taking team command and joining/leaving teams. @@ -824,6 +940,8 @@ Management Squadra permette l'assegnazione di colori per membri della squadra, prendere il comando ed entrare/uscire dalle squadre. チーム管理はチーム メンバーへ色の割り当てや指揮権を取ったり、チームの出入りを許可します。 팀 설정은 팀 멤버에게 색을 부여하거나 팀에 참여 혹은 나가게 할 수 있게 합니다. + 队伍管理系统允许将指定颜色分配到队伍成员上, 接管队长职位或加入/离开队伍. + 隊伍管理系統允許將指定顏色分配到隊伍成員上, 接管隊長職位或加入/離開隊伍. Turn on @@ -837,6 +955,8 @@ Включить 中に入る 켜기 + 开启 + 開啟 Turn off @@ -850,6 +970,8 @@ Выключить 外に出す 끄기 + 关闭 + 關閉 Pass magazine @@ -863,6 +985,8 @@ Passer un chargeur 弾倉をわたす 탄창 건네기 + 给予弹匣 + 給予彈匣 Primary magazine @@ -876,6 +1000,8 @@ Chargeur de l'arme principale プライマリ用弾倉 주무기 탄창 + 给予主武器弹匣 + 給予主武器彈匣 Pistol magazine @@ -889,6 +1015,8 @@ Chargeur de pistolet 拳銃の弾倉 부무기 탄창 + 给予手枪弹匣 + 給予手槍彈匣 %1 passed you a %2 magazine. @@ -902,6 +1030,8 @@ %1 vous a passé un chargeur de %2. %1 はあなたに %2 弾倉をわたした %1에게서 %2탄창을 받았다 + %1给你%2弹匣 + %1給你%2彈匣 Show "pass magazine" interaction @@ -915,6 +1045,8 @@ Montrer l'interaction "Passer un chargeur" "弾倉をわたす"をインタラクションに表示する '탄창 건네기'를 상호작용에서 보여줌 + 显示"给予弹匣"互动动作 + 顯示"給予彈匣"互動動作 diff --git a/addons/inventory/stringtable.xml b/addons/inventory/stringtable.xml index c421891f494..4cf5a2e2e03 100644 --- a/addons/inventory/stringtable.xml +++ b/addons/inventory/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Aumentar o Tamanho da Tela do Inventário インベントリ表示を大きくする 소지품 화면을 더 크게 합니다 + 使物品显示清单更大 + 使物品顯示清單更大 Normally inventory display is scaled by UI size. This allows scaling the Inventory UI size up, but doesn't increase font size allowing more rows displayed. @@ -28,6 +30,8 @@ Normalmente o tamanho da tela do inventário é ditada pelo tamanho da UI. Isso permite aumentar o tamanho da tela de inventário, mas não aumenta o tamanho da fonte, permitindo que mais linhas sejam visualizadas. 通常のインベントリは UI の大きさによって表示されます。これはインベントリ UI を大きくできますが、文字は大きくできません。 보통 소지품 화면은 사용자 인터페이스 크기에 비례합니다. 이 항목은 소지품의 사용자 인터페이스를 확대를 가능케하면서 글씨는 그대로 냅두게 해줍니다. + 一般来说, 物品清单尺寸是由使用者介面来决定的. 此选项能让你的物品显示清单更大但不会增加字体大小, 此举可增加更多能被显示的描述行数! + 一般來說, 物品清單尺寸是由使用者介面來決定的. 此選項能讓你的物品顯示清單更大但不會增加字體大小, 此舉可增加更多能被顯示的描述行數! Backpacks @@ -41,6 +45,8 @@ Рюкзаки バックパック 가방 + 背包 + 背包 Headgear @@ -54,6 +60,8 @@ Головные уборы ヘッドギア 헬멧 + 头盔 + 頭盔 Glasses @@ -67,6 +75,8 @@ Очки メガネ 안경 + 眼镜 + 眼鏡 Uniforms @@ -80,6 +90,8 @@ Униформа 戦闘服 복장 + 服装 + 服裝 Vests @@ -93,6 +105,8 @@ Жилеты ベスト 조끼 + 背心 + 背心 Grenades @@ -106,6 +120,8 @@ Гранаты 手榴弾 수류탄 + 手榴弹 + 手榴彈 Medical @@ -119,6 +135,8 @@ Медицина 医療 의료 + 医疗 + 醫療 diff --git a/addons/javelin/stringtable.xml b/addons/javelin/stringtable.xml index a1f786da727..ec308052a62 100644 --- a/addons/javelin/stringtable.xml +++ b/addons/javelin/stringtable.xml @@ -14,6 +14,8 @@ Travar Alvo(Segurar) 目標を捕捉 (押しっぱ) 표적 획득 (누르기) + 锁定目标 (按住) + 鎖定目標 (按住) diff --git a/addons/kestrel4500/stringtable.xml b/addons/kestrel4500/stringtable.xml index c129b1e0195..3658d367e01 100644 --- a/addons/kestrel4500/stringtable.xml +++ b/addons/kestrel4500/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Kestrel 4500NV Kestrel 4500NV Kestrel 4500NV + 猎隼4500测风仪 + 獵隼4500測風儀 Kestrel 4500 Pocket Weather Tracker @@ -28,6 +30,8 @@ Příruční meteostanice Kestrel 4500 Kestrel 4500 携帯型風速計 Kestrel 4500 휴대형 기상 관측기 + 猎隼4500掌上型天气追踪仪 + 獵隼4500掌上型天氣追蹤儀 Open Kestrel 4500 @@ -42,6 +46,8 @@ Otevřít Kestrel 4500 Kestrel 4500 を開く Kestrel 4500 열기 + 开启猎隼4500测风仪 + 開啟獵隼4500測風儀 Show Kestrel 4500 @@ -56,6 +62,8 @@ Mostrar Kestrel 4500 Kestrel 4500 を見る Kestrel 4500 보이기 + 显示猎隼4500测风仪 + 顯示獵隼4500測風儀 Hide Kestrel 4500 @@ -70,6 +78,8 @@ Ocultar Kestrel 4500 Kestrel 4500 を隠す Kestrel 4500 숨기기 + 隐藏猎隼4500测风仪 + 隱藏獵隼4500測風儀 Open Kestrel 4500 @@ -84,6 +94,8 @@ Abrir Kestrel 4500 Kestrel 4500 を開く Kestrel 4500 열기 + 开启猎隼4500测风仪 + 開啟獵隼4500測風儀 Show Kestrel 4500 @@ -98,6 +110,8 @@ Mostrar Kestrel 4500 Kestrel 4500 を見る Kestrel 4500 숨기기 + 显示猎隼4500测风仪 + 顯示獵隼4500測風儀 diff --git a/addons/laser/stringtable.xml b/addons/laser/stringtable.xml index 7e8db0c87c8..191efc75599 100644 --- a/addons/laser/stringtable.xml +++ b/addons/laser/stringtable.xml @@ -9,6 +9,8 @@ Wskaźnik poziomu rozproszenia wiązki lasera Compte de la simulation de la dispersion du laser Contatore Simulazione Dispersione Laser + 雷射散射模拟计算 + 雷射散射模擬計算 Laser Code @@ -23,6 +25,8 @@ Codice laser レーザ コード 레이저 코드 + 雷射码 + 雷射碼 Laser - Cycle Code Up @@ -37,6 +41,8 @@ Codice laser + レーザ - コードの数値を増やす 레이저 - 코드 순환 위 + 雷射 - 循环切换雷射码 上 + 雷射 - 循環切換雷射碼 上 Laser - Cycle Code Down @@ -51,6 +57,8 @@ Codice laser - レーザ - コードの数値を減らす 레이저 - 코드 순환 아래 + 雷射 - 循环切换雷射码 下 + 雷射 - 循環切換雷射碼 下 diff --git a/addons/laserpointer/stringtable.xml b/addons/laserpointer/stringtable.xml index 1de5c8a8dbc..33706433014 100644 --- a/addons/laserpointer/stringtable.xml +++ b/addons/laserpointer/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Laser (vermelho) レーザ ポインタ (赤) 레이저 지시기 (빨강) + 雷射指示器 (红色) + 雷射指示器 (紅色) Laser Pointer (green) @@ -28,6 +30,8 @@ Laser (verde) レーザ ポインタ (緑) 레이저 지시기 (초록) + 雷射指示器 (绿色) + 雷射指示器 (綠色) Emits visible light. @@ -42,6 +46,8 @@ Emite luz visível. 可視光をだします。 밝은 곳에서도 보임 + 发射出可见光 + 發射出可見光 <t color='#9cf953'>Use: </t>Turn Laser ON/OFF @@ -56,6 +62,8 @@ <t color='#9cf953'>Használat: </t>Lézer BE/KI kapcsolása <t color='#9cf953'>つかう: </t>レーザの起動/停止 <t color='#9cf953'>사용키: </t>레이저 켜기/끄기 + <t color='#9cf953'>使用: </t>雷射开启/关闭 + <t color='#9cf953'>使用: </t>雷射開啟/關閉 Laser @@ -70,6 +78,8 @@ Laser レーザ 레이저 + 雷射 + 雷射 IR Laser @@ -84,6 +94,8 @@ Laser IV 赤外線レーザ 적외선 레이저 + 红外线雷射 + 紅外線雷射 Switch Laser / IR Laser @@ -98,6 +110,8 @@ Alternar entre Laser / Laser IV レーザ/赤外線レーザを切り替える 레이저 / 적외선 레이저 전환 + 切换雷射/红外线雷射 + 切換雷射/紅外線雷射 diff --git a/addons/logistics_uavbattery/stringtable.xml b/addons/logistics_uavbattery/stringtable.xml index af9bbace050..1e190161601 100644 --- a/addons/logistics_uavbattery/stringtable.xml +++ b/addons/logistics_uavbattery/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ БПЛА полностью заряжен ドローンは充電完了 드론 충전완료 + 无人载具电池已充满 + 無人載具電池已充滿 You need a UAV Battery @@ -28,6 +30,8 @@ Требуется аккумулятор для БПЛА UAV バッテリが必要です UAV 배터리가 필요합니다 + 你需要一个无人载具电池 + 你需要一個無人載具電池 Recharge @@ -42,6 +46,8 @@ Зарядить 充電 재충전 + 充电 + 充電 UAV Battery @@ -56,6 +62,8 @@ Аккумулятор БПЛА UAV バッテリ UAV 배터리 + 无人载具电池 + 無人載具電池 Used to refuel Carried UAV's @@ -70,6 +78,8 @@ Используется для зарядки переносных БПЛА 運んでいる UAV を充電に使う UAV를 재충전 할때 씁니다. + 对可携式无人载具进行充电 + 對可攜式無人載具進行充電 Recharging... @@ -83,6 +93,8 @@ In ricarica... Заряжается... 充電中 + 充电中... + 充電中... diff --git a/addons/logistics_wirecutter/stringtable.xml b/addons/logistics_wirecutter/stringtable.xml index 542b152af39..bd7f9edc81e 100644 --- a/addons/logistics_wirecutter/stringtable.xml +++ b/addons/logistics_wirecutter/stringtable.xml @@ -14,6 +14,8 @@ Cortador de Arame ワイヤーカッター 절단기 + 剪铁丝网钳 + 剪鐵絲網鉗 Wirecutter @@ -28,6 +30,8 @@ Cortador de Arame ワイヤーカッター 절단기 + 剪铁丝网钳 + 剪鐵絲網鉗 Cut Fence @@ -42,6 +46,8 @@ Разрезать забор フェンスを切断する 철조망 자르기 + 剪断护栏 + 剪斷護欄 Cutting Fences / Wires... @@ -56,6 +62,8 @@ Разрезаем забор / провода... フェンス/ワイヤを切断中・・・ 철망/철조망 자르는중... + 剪断护栏/刺网中... + 剪斷護欄/刺網中... Fence cut @@ -70,6 +78,8 @@ Забор разрезан フェンスを切断した 절단됨 + 护栏已被剪断 + 護欄已被剪斷 diff --git a/addons/magazinerepack/stringtable.xml b/addons/magazinerepack/stringtable.xml index f25f6f98102..14d65eacac8 100644 --- a/addons/magazinerepack/stringtable.xml +++ b/addons/magazinerepack/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Перепаковать магазины 弾倉を詰め替え 탄창 다시 채우기 + 重新整理弹匣 + 重新整理彈匣 Select Magazine Menu @@ -28,6 +30,8 @@ Меню выбора магазинов 弾倉メニューから選ぶ 탄창 메뉴 고르기 + 选择弹匣清单 + 選擇彈匣清單 Select Mag @@ -42,6 +46,8 @@ Выбрать магазин 弾倉を選択 탄창 고르기 + 选择弹匣 + 選擇彈匣 Repacking Magazines... @@ -56,6 +62,8 @@ Перепаковка магазинов... 弾倉を詰め替え中・・・ 다시 채우는중... + 重新整理弹匣中 ... + 重新整理彈匣中 ... Repacked Magazines @@ -70,6 +78,8 @@ Магазины перепакованы 弾倉の詰め替えが終わった 탄창 채워짐 + 弹匣已重新整理 + 彈匣已重新整理 %1 full mag(s) and %2 extra round(s) @@ -84,6 +94,8 @@ %1 полных магазина(ов) и %2 патрона(ов) %1 個の満杯な弾倉と入りきらなかった %2 個の弾倉 %1개의 꽉찬 탄창과 %2발의 총알이 남았다 + %1个满的弹匣与%2发额外子弹 + %1個滿的彈匣與%2發額外子彈 Repacking Finished @@ -98,6 +110,8 @@ Reorganização Terminada 詰め替えが完了 탄창 채우기 끝남 + 重整完成 + 重整完成 Repacking Interrupted @@ -112,6 +126,8 @@ Reorganização Interrompida 詰め替えを中断した 탄창 채우기 방해받음 + 重整被中断 + 重整被中斷 %1 Full and %2 Partial @@ -126,6 +142,8 @@ %1 Total e %2 Parcial %1 個の満杯で、 %2 の余分数 %1 꽉찼고 %2 부분참 + %1个满的与%2个部分的 + %1個滿的與%2個部分的 diff --git a/addons/main/stringtable.xml b/addons/main/stringtable.xml index 0442d4e9fb6..93b4df27008 100644 --- a/addons/main/stringtable.xml +++ b/addons/main/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -12,6 +12,8 @@ Logistica ACE ACE Logistique ACE ロジスティクス + ACE 后勤 + ACE 後勤 http://ace3mod.com/ @@ -25,6 +27,8 @@ http://ace3mod.com/ http://ace3mod.com/ http://ace3mod.com/ + http://ace3mod.com/ + http://ace3mod.com/ diff --git a/addons/map/stringtable.xml b/addons/map/stringtable.xml index d7fb92a3d6d..47cccfde829 100644 --- a/addons/map/stringtable.xml +++ b/addons/map/stringtable.xml @@ -14,6 +14,8 @@ Mappa 地図 지도 + 地图 + 地圖 Map illumination? @@ -28,6 +30,8 @@ Illuminazione Mappa? 地図に照明? 지도에 조명? + 地图照明? + 地圖照明? Simulate map lighting based on ambient lighting and player's items? @@ -41,6 +45,8 @@ Simula illuminazione della mappa in base alla luce ambientale e agli oggetti del giocatore? 環境光やプレイヤーのアイテムにより、地図へ光のシミュレーションをおこないますか? 주변 환경및 플레이어 조명에 의한 빛 변화를 지도에 반영할까요? + 透过环境光与玩家的物品来决定地图亮度? + 透過環境光與玩家的物品來決定地圖亮度? Map flashlight glow? @@ -54,6 +60,8 @@ Lumière de la lampe de carte ? 地図をフラッシュライトで照らしますか? 지도 조명이 빛이 납니까? + 增加地图亮度? + 增加地圖亮度? Add external glow to players who use flashlight on map? @@ -67,6 +75,8 @@ Aggiungi luce esterna a giocatori che usano la torcia in mappa? プレイヤが地図上でフラッシュライトを使うと、照らすようにしますか? 지도에 불빛을 비치는 플레이어를 조금 더 밝게 합니까? + 当玩家拥有手电筒时, 增加地图亮度? + 當玩家擁有手電筒時, 增加地圖亮度? Map shake? @@ -81,6 +91,8 @@ Scuoti la mappa? 地図を揺らしますか? 지도 흔들림? + 地图震动? + 地圖震動? Make map shake when walking? @@ -95,6 +107,8 @@ Far scuotere la mappa mentre cammini? 歩いているときは地図を揺らしますか? 걸을때 지도보면 흔들리게 합니까? + 走路时让地图有震动的感觉? + 走路時讓地圖有震動的感覺? Limit map zoom? @@ -109,6 +123,8 @@ Limita lo zoom in mappa? 地図の拡大を制限しますか? 지도 확대 제한? + 限制地图缩放倍率? + 限制地圖縮放倍率? Limit the amount of zoom available for the map? @@ -123,6 +139,8 @@ Limita l'ammontare di zoom disponibile per la mappa? 地図上で利用できる拡大倍率を制限しますか? 지도 확대에 제한을 둡니까? + 限制地图上可允许缩放的倍率? + 限制地圖上可允許縮放的倍率? Show cursor coordinates? @@ -137,6 +155,8 @@ Mostra coordinate sul cursore? カーソル先で座標を表示しますか? 커서에 좌표를 보이게 합니까? + 显示游标的座标? + 顯示游標的座標? Show the grid coordinates on the mouse pointer? @@ -151,6 +171,8 @@ Mostra la griglia coordinate sul cursore mouse? カーソルに合わせた先の地図座標を表示しますか? 지도에서 커서 옆에 좌표가 뜨게 합니까? + 显示滑鼠游标所在的网格座标? + 顯示滑鼠游標所在的網格座標? This module allows you to customize the map screen. @@ -165,6 +187,8 @@ Questo modulo ti permette di customizzare lo schermo della mappa. モジュールは地図画面をカスタマイズできます。 이 모듈은 지도 화면을 임의로 설정할 수 있게 해줍니다. + 此模块允许自定地图的相关效果. + 此模塊允許自定地圖的相關效果. Blue Force Tracking @@ -179,6 +203,8 @@ Blue Force Tracking ブルー フォース トラッキング GPS피아식별기 + 显示蓝方踪迹 + 顯示藍方蹤跡 BFT Enable @@ -193,6 +219,8 @@ Abilita BFT BFT を有効化 GPS피아식별기 켜기 + 蓝方踪迹启用 + 藍方蹤跡啟用 Enable Blue Force Tracking. Default: No @@ -207,6 +235,8 @@ Abilita Blue Force Tracking. Default: No ブルー フォース トラッキングを有効化します。標準:無効 GPS피아식별기 켭니다. 기본설정: 아니요 + 启用显示蓝方踪迹. 预设: 否 + 啟用顯示藍方蹤跡. 預設: 否 Interval @@ -221,6 +251,8 @@ Intervallo 間隔 간격 + 间隔 + 間隔 How often the markers should be refreshed (in seconds) @@ -235,6 +267,8 @@ Quanto spesso vengono aggiornati i marker (in secondi) マーカが再描画される間隔を設定できます(秒) 몇 초마다 마커를 새로 갱신합니까? + 设定每多少时间重新标示出单位位置 (秒) + 設定每多少時間重新標示出單位位置 (秒) Hide AI groups? @@ -249,6 +283,8 @@ Nascondere gruppi IA? AI グループを非表示にしますか? 인공지능 그룹을 숨깁니까? + 隐藏AI小队? + 隱藏AI小隊? Hide markers for 'AI only' groups? @@ -263,6 +299,8 @@ Nascondi markers per gruppi di sole IA? 'AI のみ'グループのマーカを隠しますか? 인공지능만 있는 그룹의 마커를 숨깁니까? + 隐藏'AI小队'的踪迹? + 隱藏'AI小隊'的蹤跡? Show player names? @@ -277,6 +315,8 @@ Mostra i nomi dei giocatori? プレイヤ名を表示しますか? 플레이어 이름을 표시합니까? + 显示玩家名称? + 顯示玩家名稱? Show individual player names? @@ -291,6 +331,8 @@ Mostra i nomi dei giocatori singoli? プレイヤの名前を表示しますか? 각 플레이어의 이름을 표시합니까? + 显示玩家的个别名称? + 顯示玩家的個別名稱? This module allows the tracking of allied units with BFT map markers. @@ -305,6 +347,8 @@ Questo modulo permette il tracciamento di unità alleate con i marker BFT in mappa モジュールは BFT マップ マーカとともに、同勢力ユニットの追跡を許可します。 이 모듈은 아군을 지도상에서 추적할 수 있게 해줍니다. + 此模块将使你能在地图上看见友方单位的踪迹. + 此模塊將使你能在地圖上看見友方單位的蹤跡. Flashlights @@ -318,6 +362,8 @@ Torcia フラッシュライト 손전등 + 手电筒 + 手電筒 NVG @@ -331,6 +377,8 @@ NVG 夜間暗視装置 야투경 + 夜视镜 + 夜視鏡 On @@ -344,6 +392,8 @@ Acceso 起動 켜기 + 开启 + 開啟 Off @@ -357,6 +407,8 @@ Spento 停止 끄기 + 关闭 + 關閉 Increase Brightness @@ -370,6 +422,8 @@ Aumenta Luminosità 感度を上げる 밝기 올리기 + 增加亮度 + 增加亮度 Decrease Brightness @@ -383,6 +437,8 @@ Diminuisci Luminosità 感度を下げる 밝기 내리기 + 降低亮度 + 降低亮度 Turn On %1 @@ -397,6 +453,8 @@ Активировать %1 %1 を点ける %1 켜기 + 开启%1 + 開啟%1 Turn Off %1 @@ -411,6 +469,8 @@ Деактивировать %1 %1 を消す %1 끄기 + 关闭%1 + 關閉%1 Set Channel At Start @@ -424,6 +484,8 @@ Mettre un canal par défaut 開始時のチャンネルを決定 시작시 채널 + 设定游戏开始时的聊天频道 + 設定遊戲開始時的聊天頻道 Change the starting marker channel at mission start @@ -437,6 +499,8 @@ Change le canal de communication par défaut au début de la mission. ミッション開始時にあらかじめ設定されているマーカ チャンネルを変更します 미션시작시 마커채널을 변경합니다 + 更改任务启动时的聊天频道 + 更改任務啟動時的聊天頻道 Disable BFT @@ -446,6 +510,8 @@ Wyłącz BFT Désactive le BFT Disablita BFT + 关闭友军踪迹 + 關閉友軍蹤跡 Always disable Blue Force Tracking for this group. @@ -455,6 +521,8 @@ Zawsze wyłączaj Blue Force Tracking dla tej grupy. Désactive en permanence le Blue Force Tracking pour ce groupe. Disabilita sempre il Blue Force Tracking per questo gruppo. + 对此小队永远关闭友军踪迹显示. + 對此小隊永遠關閉友軍蹤跡顯示. diff --git a/addons/map_gestures/stringtable.xml b/addons/map_gestures/stringtable.xml index fc543116eb5..6c3687c2dd2 100644 --- a/addons/map_gestures/stringtable.xml +++ b/addons/map_gestures/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,6 +13,8 @@ Gestes de carte マップ ジェスチャ 지도 신호 + 地图指示器 + 地圖指示器 Enabled @@ -26,6 +28,8 @@ Activer 有効化 켜기 + 启用 + 啟用 Map Gesture Max Range @@ -39,6 +43,8 @@ Distance max. des gestes de carte マップ ジェスチャの最大範囲 지도 신호 최대 거리 + 地图指示器最大范围 + 地圖指示器最大範圍 Max range between players to show the map gesture indicator [default: 7 meters] @@ -52,6 +58,8 @@ Distance max. entre les joueurs pour montrer le pointage sur carte. (Défaut : 7m) プレイヤのマップ ジェスチャによる表示範囲を設定します [標準:7 メートル] 플레이어간에 지도 신호 표시거리를 설정합니다. [기본: 7 미터] + 设定地图指示器显示的最大范围距离 [预设: 7公尺] + 設定地圖指示器顯示的最大範圍距離 [預設: 7公尺] Lead Default Color @@ -65,6 +73,8 @@ Couleur principale de commandement. リーダー用標準の色 리더 기본 색상 + 队长预设颜色 + 隊長預設顏色 Fallback Color value for group leaders when there is no group setting. [Module: leave blank to not force on clients] @@ -77,6 +87,8 @@ Couleur par défaut pour les chefs de groupe quand il n'y a pas de réglage pour le groupe. (Module : laisser vide pour ne pas forcer chez les clients) グループ設定が存在しない場合に、グループ リーダーへ設定される色の値を設定します。[モジュール:空の場合はクライアントへ強制しません] 그룹 설정이 없는 경우 리더의 예비 색상 값입니다. [모듈: 클라이언트에서 강체치 않기 위해 공백으로 비워둘것] + 当没有设定小队颜色时, 此功能会定义队长的指示器颜色. [模块: 此栏留空来保持预设颜色] + 當沒有設定小隊顏色時, 此功能會定義隊長的指示器顏色. [模塊: 此欄留空來保持預設顏色] Default Color @@ -90,6 +102,8 @@ Couleur par défaut 標準色 기본 색상 + 预设颜色 + 預設顏色 Fallback Color value when there is no group setting. [Module: leave blank to not force on clients] @@ -102,6 +116,8 @@ 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) グループ設定が存在しない場合に、グループ リーダーへ設定される色の値を設定します。[モジュール:空の場合はクライアントへ強制しません] 그룹 설정이 없을 경우의 예비 색상입니다. [모듈: 클라이언트에서 강체치 않기 위해 공백으로 비워둘것] + 当没有设定小队颜色时, 此功能会定义玩家的指示器颜色. [模块: 此栏留空来保持预设颜色] + 當沒有設定小隊顏色時, 此功能會定義玩家的指示器顏色. [模塊: 此欄留空來保持預設顏色] Lead Color @@ -115,6 +131,8 @@ Couleur de commandement リーダー用の色 리더 색상 + 队长颜色 + 隊長顏色 Color value for group leaders of groups synced with this module. @@ -127,6 +145,8 @@ Couleur pour les chefs de groupe des groupes synchronisés avec le module. モジュールで同期されたグループのリーダー用に色の値を決定します。 그룹이 이 모듈에 동기화 됐을때의 리더 색상입니다. + 改变与此同步小队队长的指示器颜色. + 改變與此同步小隊隊長的指示器顏色. Color @@ -140,6 +160,8 @@ Couleur 색상 + 颜色 + 顏色 Color value for group members of groups synced with this module. @@ -152,6 +174,8 @@ Couleur pour les membres du groupe synchronisé avec ce module. モジュールで同期されたグループのメンバ用に色の値を決定します。 그룹이 이 모듈에 동기화 됐을때의 멤버 색상입니다. + 改变与此同步小队队员的指示器颜色 + 改變與此同步小隊隊員的指示器顏色 Map Gestures - Group Settings @@ -165,6 +189,8 @@ Gestes de carte - réglages de groupe マップ ジェスチャ - グループ設定 지도 신호 - 그룹 설정 + 地图指示器 - 队伍设定 + 地圖指示器 - 隊伍設定 Update Interval @@ -178,6 +204,8 @@ Intervalle de mise à jour 更新間隔 갱신 간격 + 更新间隔 + 更新間隔 Time between data updates. @@ -191,6 +219,8 @@ Temps entre les actualisations de données データの更新間隔 데이터 갱신 간격 + 定义每次更新数据的时间. + 定義每次更新數據的時間. Enables the Map Gestures. @@ -204,6 +234,8 @@ Activer les gestes de carte マップ ジェスチャを有効化 지도 신호 활성화 + 启用地图指示器 + 啟用地圖指示器 Name Text Color @@ -217,6 +249,8 @@ Couleur du texte du nom 名前への色 글 색상 명칭 + 名称文字颜色 + 名稱文字顏色 Color of the name tag text besides the map gestures mark. @@ -229,6 +263,8 @@ Couleur des tags de nom à côté de marqueur de pointage sur carte. マップ ジェスチャに表示される、名前の色を決定します。 지도 색상에 표시되는 이름의 색상을 결정합니다. + 定义名称文字颜色. 使其与地图指示器颜色有所区别. + 定義名稱文字顏色. 使其與地圖指示器顏色有所區別. Map Gestures @@ -242,6 +278,8 @@ Gestes de carte マップ ジェスチャ 지도 신호 + 地图指示器 + 地圖指示器 diff --git a/addons/maptools/stringtable.xml b/addons/maptools/stringtable.xml index da72ba5a52b..8f380eb8c1f 100644 --- a/addons/maptools/stringtable.xml +++ b/addons/maptools/stringtable.xml @@ -14,6 +14,8 @@ Инструменты карты マップ ツール 독도용 도구 + 地图工具 + 地圖工具 The Map Tools allow you to measure distances and angles on the map. @@ -28,6 +30,8 @@ Картографические инструменты позволяют измерять расстояния и углы на карте. マップ ツールは地図上で距離や角度を測れます。 독도용 도구는 지도상에서 거리나 각도를 잴 수 있게 해줍니다. + 地图工具能够让你在地图上测量距离与角度 + 地圖工具能夠讓你在地圖上測量距離與角度 Map Tools @@ -42,6 +46,8 @@ Инструменты карты マップ ツール 독도용 도구 + 地图工具 + 地圖工具 Hide Map Tool @@ -56,6 +62,8 @@ Скрыть инструменты マップ ツールを隠す 독도용 도구 숨기기 + 隐藏地图工具 + 隱藏地圖工具 Show Normal Map Tool @@ -70,6 +78,8 @@ Показать инструменты (средн. размер) マップ ツールを表示する 보통 독도용 도구로 보기 + 显示地图工具 + 顯示地圖工具 Show Small Map Tool @@ -84,6 +94,8 @@ Показать инструменты (малый размер) 小さいマップ ツールを表示する 작은 독도용 도구로 보기 + 显示小的地图工具 + 顯示小的地圖工具 Align Map Tool to North @@ -98,6 +110,8 @@ Выровнять инструменты на север マップ ツールを北に合わせる 독도용 도구를 북쪽으로 정렬 + 地图工具对准北方 + 地圖工具對準北方 Align Map Tool to Compass @@ -112,6 +126,8 @@ Выровнять инструменты по компасу マップ ツールを方位磁石に合わせる 독도용 도구를 나침반에 정렬 + 地图工具对准指北针 + 地圖工具對準指北針 Show GPS on Map @@ -126,6 +142,8 @@ Показать GPS на карте 地図上に GPS を表示する GPS를 지도상에 꺼내기 + 在地图上显示GPS + 在地圖上顯示GPS Hide GPS on Map @@ -140,6 +158,8 @@ Скрыть GPS на карте 地図上から GPS を隠す GPS를 지도상에서 숨기기 + 在地图上隐藏GPS + 在地圖上隱藏GPS Direction: %1° @@ -154,6 +174,8 @@ Direção: %1 方位:%1° 방위: %1° + 方位: %1° + 方位: %1° Rotate Map Tools Key @@ -164,6 +186,8 @@ Taste zum Drehen des Kartenwerkzeugs 독도용 도구 돌리기 키 Ruota Strumenti di Mappatura + 选转地图工具的按键 + 選轉地圖工具的按鍵 Modifier key to allow rotating map tools @@ -174,6 +198,8 @@ Steuerungstaste, um Drehung des Kartenwerkzeugs zu ermöglichen. 독도용 도구를 돌리기 위한 키를 변경할 수 있습니다. Tasto modifica per consentire strumenti di mappatura rotanti + 修改旋转地图工具的按键 + 修改旋轉地圖工具的按鍵 Draw straight lines with maptools @@ -183,6 +209,8 @@ Rysuj proste linie przy użyciu narzędzi nawigacyjnych Tracer des lignes droites Disegna linee dritte con gli strumenti di mappatura + 使用地图工具来绘制直线 + 使用地圖工具來繪製直線 Draw on the edge of maptools to draw straight lines. Note: Must hover at midpoint to delete. @@ -192,6 +220,8 @@ Przeciągnij po krawędzi narzędzi nawigacyjnych by narysować prostą linię. Uwaga: aby usunąć linię - nalezy ustawić kursor nad jej środkiem. Utiliser le bord des outils de navigation pour tracer des lignes droites. Note: l'on doit survoler le milieu du trait pour pouvoir le supprimer. Disegna sul bordo degli strumenti di mappatura per disegnare linee dritte. Nota: Deve spostarsi al centro per essere cancellato. + 使用地图工具的边缘来绘制直线. 备注: 要删除直线时, 请把滑鼠移动到该线条的中央即可删除该线. + 使用地圖工具的邊緣來繪製直線. 備註: 要刪除直線時, 請把滑鼠移動到該線條的中央即可刪除該線. diff --git a/addons/markers/stringtable.xml b/addons/markers/stringtable.xml index 261d7a0687f..7d6dc2b23ae 100644 --- a/addons/markers/stringtable.xml +++ b/addons/markers/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Direção %1 方位:%1° 방위: %1° + 方位: %1° + 方位: %1° - \ No newline at end of file + diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index d3eefa0c428..8061d2511c2 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ FERIMENTOS 負傷 부상 + 受伤 + 受傷 No injuries on this bodypart... @@ -28,6 +30,8 @@ Nenhum ferimento nesta parte do corpo... 怪我をしていない 이 부위에는 부상이 없습니다... + 此身体部位没有受伤 + 此身體部位沒有受傷 Litter Simulation Detail @@ -42,6 +46,8 @@ Počet zobrazených předmětů po použití zdravotnického materiálu 医療廃棄物を再現する詳細度 의료폐기물 재현 상세도 + 医疗废弃物模拟细节 + 醫療廢棄物模擬細節 Litter simulation detail level sets the number of litter items which will be locally spawned in the client. Excessive amounts in local areas could cause FPS lag, so this is a client only setting. @@ -56,6 +62,8 @@ Počet zobrazených předmětů po použití zdravotnického materiálu ovlivňuje počet objektů, které budou zobrazeny klientovi v místě použití zdravotnického materiálu. Vyšší množství objektů může způsobovat poklesy FPS a proto je toto nastavení čistě na klientovi. 医療廃棄物再現度は各クライアントでローカルに作成される、医療廃棄物への詳細度を決定できます。ローカルで多くのアイテムがあると FPS の低下を引き起こすため、クライアント側のみの設定です。 의료폐기물 재현 상세도의 경우 얼마나 많은 수의 폐기물이 클라이언트 주변에 생성되는지를 정합니다. 매우 많은 수의 지역은 프레임드랍을 유발할 수 있습니다, 고로 이는 클라이언트 전용 설정입니다. + 设定医疗废弃物的最大产生数量, 过多的数量会导致画面更新率延迟, 因此这由用户端来设定 + 設定醫療廢棄物的最大產生數量, 過多的數量會導致畫面更新率延遲, 因此這由用戶端來設定 Inject Adenosine @@ -69,6 +77,8 @@ Ввести аденозин アデノシンを投与 아데노신 주사 + 注射腺苷 + 注射腺苷 Inject Atropine @@ -83,6 +93,8 @@ Injetar Atropina アトロピンを投与 아트로핀 주사 + 注射阿托品 + 注射阿托品 Inject Epinephrine @@ -97,6 +109,8 @@ Inietta adrenalina アドレナリンを投与 에피네프린 주사 + 注射肾上腺素 + 注射腎上腺素 Inject Morphine @@ -111,6 +125,8 @@ Inietta morfina モルヒネを投与 모르핀 주사 + 注射吗啡 + 注射嗎啡 Transfuse Blood @@ -125,6 +141,8 @@ Trasfusione di sangue 輸血する 혈액 수혈 + 输血液 + 輸血液 Transfuse Plasma @@ -139,6 +157,8 @@ Transfundir Plasma 血しょうを投与 혈장 수혈 + 输血浆 + 輸血漿 Transfuse Saline @@ -153,6 +173,8 @@ Transfundir Soro 生理食塩水を投与 생리식염수 수혈 + 注射生理食盐水 + 注射生理食鹽水 Apply Tourniquet @@ -167,6 +189,8 @@ Érszorító alkalmazása 止血帯を巻く 지혈대 적용 + 使用军用止血带 + 使用軍用止血帶 Bandage @@ -181,6 +205,8 @@ Перевязать 包帯 붕대 + 绷带 + 繃帶 Bandage Head @@ -195,6 +221,8 @@ Benda la testa 包帯を頭へ 머리에 붕대감기 + 绷带包扎 头部 + 繃帶包紮 頭部 Bandage Torso @@ -209,6 +237,8 @@ Benda il torso 包帯を胴体へ 몸통에 붕대감기 + 绷带包扎 身体 + 繃帶包紮 身體 Bandage Left Arm @@ -223,6 +253,8 @@ Benda il braccio sinistro 包帯を左腕に 왼팔에 붕대감기 + 绷带包扎 左手 + 繃帶包紮 左手 Bandage Right Arm @@ -237,6 +269,8 @@ Benda il braccio destro 包帯を右腕に 오른팔에 붕대감기 + 绷带包扎 右手 + 繃帶包紮 右手 Bandage Left Leg @@ -251,6 +285,8 @@ Benda la gamba sinistra 包帯を左足へ 왼쪽 다리에 붕대감기 + 绷带包扎 左脚 + 繃帶包紮 左腳 Bandage Right Leg @@ -265,6 +301,8 @@ Benda la gamba destra 包帯を右足へ 오른쪽 다리에 붕대감기 + 绷带包扎 右脚 + 繃帶包紮 右腳 Injecting Morphine... @@ -279,6 +317,8 @@ Inietto la morfina... モルヒネを投与中・・・ 모르핀 주사중... + 吗啡注射中... + 嗎啡注射中... Injecting Epinephrine... @@ -293,6 +333,8 @@ Inietto l'adrenalina... アドレナリンを投与中・・・ 에피네프린 주사중... + 肾上腺素注射中... + 腎上腺素注射中... Injecting Adenosine... @@ -306,6 +348,8 @@ Введение аденозина... アドネシンを投与中・・・ 아데노신 주사중... + 腺苷注射中... + 腺苷注射中... Injecting Atropine... @@ -320,6 +364,8 @@ Injetando Atropina アトロピンを投与中・・・ 아트리핀 주사중... + 阿托品注射中 ... + 阿托品注射中 ... Transfusing Blood... @@ -334,6 +380,8 @@ Effettuo la trasfusione di sangue... 輸血中・・・ 혈액 수혈중... + 输血液中 ... + 輸血液中 ... Transfusing Saline... @@ -348,6 +396,8 @@ Transfundindo Soro... 血しょうを投与中・・・ 생리식염수 수혈중... + 施打生理食盐水中 ... + 施打生理食鹽水中 ... Transfusing Plasma... @@ -362,6 +412,8 @@ Transfundindo Plasma... 生理食塩水を投与中・・・ 혈장 수혈중... + 输血浆中 ... + 輸血漿中 ... Bandaging... @@ -376,6 +428,8 @@ Перевязывание... 包帯を巻いています・・・ 붕대감는중... + 绷带包扎中 ... + 繃帶包紮中 ... Applying Tourniquet... @@ -390,6 +444,8 @@ Applicando Torniquete 止血帯を巻いています・・・ 지혈대 적용중... + 使用军用止血带中 ... + 使用軍用止血帶中 ... Medical @@ -404,6 +460,8 @@ Orvosi 治療 치료 + 医疗 + 醫療 Field Dressing @@ -418,6 +476,8 @@ Curativo de Campo 緊急圧迫包帯 필드 드레싱 + 基础绷带 + 基礎繃帶 Packing Bandage @@ -432,6 +492,8 @@ Obvaz Tlakový 弾性包帯 거즈 붕대 + 包扎绷带 + 包紮繃帶 Elastic Bandage @@ -446,6 +508,8 @@ Bandagem Elástica 伸縮包帯 압박 붕대 + 弹性绷带 + 彈性繃帶 QuikClot @@ -460,6 +524,8 @@ QuikClot クイッククロット 퀵 클롯 + 止血粉 + 止血粉 Check Pulse @@ -474,6 +540,8 @@ Checar Pulso 心拍数をはかる 맥박 확인 + 检查脉搏 + 檢查脈搏 Check Blood Pressure @@ -488,6 +556,8 @@ Chegar Pressão Sanguínea 血圧をはかる 혈압 확인 + 检查血压 + 檢查血壓 Triage Card @@ -502,6 +572,8 @@ Cartão de Triagem トリアージ カード 부상자 분류 카드 + 检伤分类卡 + 檢傷分類卡 No entries on this triage card. @@ -516,6 +588,8 @@ Nenhuma entrada neste cartão de triagem トリアージ カードには何も無い 부상자 분류 카드에 쓰여있는것이 없습니다. + 此检伤分类卡上没有任何资料 + 此檢傷分類卡上沒有任何資料 Tourniquet @@ -530,6 +604,8 @@ Torniquete 止血帯 지혈대 + 军用止血带 + 軍用止血帶 Remove Tourniquet @@ -544,6 +620,8 @@ Remover Torniquete 止血帯をはずす 지혈대 제거 + 移除军用止血带 + 移除軍用止血帶 Diagnose @@ -558,6 +636,8 @@ Diagnosticar 診断する 진단 + 诊断 + 診斷 Diagnosing... @@ -572,6 +652,8 @@ Diagnosticando... 診断中・・・ 진단중... + 诊断中... + 診斷中... CPR @@ -586,6 +668,8 @@ SBV 心肺蘇生 심폐소생술 + 心肺复苏术 + 心肺復甦術 Performing CPR... @@ -600,6 +684,8 @@ Realizando o SBV... 心肺蘇生を実行中・・・ 심폐소생중... + 进行心肺复苏术中... + 進行心肺復甦術中... Give Blood IV (1000ml) @@ -614,6 +700,8 @@ Administrar Sangue IV (1000ml) 血液 IV (1000ml) をあたえる IV 혈액 수혈 (1000ml) + 输血液 (1000ml) + 輸血液 (1000ml) Give Blood IV (500ml) @@ -628,6 +716,8 @@ Administrar Sangue IV (500ml) 血液 IV (500ml) をあたえる IV 혈액 수혈 (500ml) + 输血液 (500ml) + 輸血液 (500ml) Give Blood IV (250ml) @@ -642,6 +732,8 @@ Administrar Sangue IV (250ml) 血液 IV (250ml) をあたえる IV 혈액 수혈 (250ml) + 输血液 (250ml) + 輸血液 (250ml) Give Plasma IV (1000ml) @@ -656,6 +748,8 @@ Administrar Plasma IV (1000ml) 血しょう IV (1000ml) をあたえる IV 혈장 수혈 (1000ml) + 输血浆 (1000ml) + 輸血漿 (1000ml) Give Plasma IV (500ml) @@ -670,6 +764,8 @@ Administrar Plasma IV (500ml) 血しょう IV (500ml) をあたえる IV 혈장 수혈 (500ml) + 输血浆 (500ml) + 輸血漿 (500ml) Give Plasma IV (250ml) @@ -684,6 +780,8 @@ Administrar Plasma IV (250ml) 血しょう IV (250ml) をあたえる IV 혈장 수혈 (250ml) + 输血浆 (250ml) + 輸血漿 (250ml) Give Saline IV (1000ml) @@ -698,6 +796,8 @@ Administrar Soro IV (1000ml) 血しょう IV (1000ml) をあたえる IV 생리식염수 수혈 (1000ml) + 注射生理食盐水 (1000ml) + 注射生理食鹽水 (1000ml) Give Saline IV (500ml) @@ -712,6 +812,8 @@ Administrar Soro IV (500ml) 血しょう IV (500ml) をあたえる IV 생리식염수 수혈 (500ml) + 注射生理食盐水 (500ml) + 注射生理食鹽水 (500ml) Give Saline IV (250ml) @@ -726,6 +828,8 @@ Administrar Soro IV (250ml) 血しょう IV (250ml) をあたえる IV 생리식염수 수혈 (250ml) + 注射生理食盐水 (250ml) + 注射生理食鹽水 (250ml) Minor @@ -740,6 +844,8 @@ Leve 保留群 경미 + 轻微 + 輕微 Delayed @@ -754,6 +860,8 @@ Atrasado 待機的治療群 늦어짐 + 延后 + 延後 Immediate @@ -768,6 +876,8 @@ Imediato 再優先治療群 긴급 + 紧急 + 緊急 Deceased @@ -782,6 +892,8 @@ Falecido 死亡群 사망 + 死亡 + 死亡 None @@ -796,6 +908,8 @@ Nenhum なし 없음 + 未分类 + 未分類 Normal breathing @@ -810,6 +924,8 @@ Respiração normal 通常の呼吸 정상 호흡 + 呼吸正常 + 呼吸正常 No breathing @@ -824,6 +940,8 @@ Não respira 息をしていない 호흡 불가 + 没有呼吸 + 沒有呼吸 Difficult breathing @@ -838,6 +956,8 @@ Dificuldade para respirar 呼吸が苦しそうだ 호흡 곤란 + 呼吸困难 + 呼吸困難 Almost no breathing @@ -852,6 +972,8 @@ Quase não respira ほとんど呼吸をしていない 호흡이 없음 + 快要没呼吸 + 快要沒呼吸 Bleeding @@ -866,6 +988,8 @@ Sangrando 出血している 출혈 + 流血中 + 流血中 In pain @@ -880,6 +1004,8 @@ Com dor 痛みがある 고통 + 疼痛中 + 疼痛中 Lost a lot of Blood @@ -894,6 +1020,8 @@ Perdeu muito sangue 大量出血している 많은 양의 혈액을 잃음 + 大量失血中 + 大量失血中 Tourniquet [CAT] @@ -908,6 +1036,8 @@ Torniquete [CAT] 止血帯 [CAT] 지혈대 [CAT] + 军用止血带 + 軍用止血帶 Receiving IV [%1ml] @@ -922,6 +1052,8 @@ Recebendo IV [%1ml] IV [%1ml] を投与されている IV로 [%1ml] 수혈중 + 接收静脉注射液中 [%1ml] + 接收靜脈注射液中 [%1ml] Bandage (Basic) @@ -936,6 +1068,8 @@ Bandagem(Básico) 包帯 (緊急圧迫) 붕대 (기본) + 基础绷带 + 基礎繃帶 Used to cover a wound @@ -950,6 +1084,8 @@ Slouží k překrytí poranění 傷口をおおう 상처를 덮을때 씁니다 + 用于覆盖伤口 + 用於覆蓋傷口 A dressing, that is a particular material used to cover a wound, which is applied over the wound once bleeding has been stemmed. @@ -964,6 +1100,8 @@ Obvaz je vhodným způsobem upravený sterilní materiál, určený k překrytí rány, případně k fixaci poranění. ドレッシングは、傷口を血液凝固剤でおおうようにできていて、つかうと出血の原因を取りさります。 드레싱, 출혈을 막고서 상처를 덮기위해 쓰는 물건입니다. + 用于覆盖伤口以防止出血, 透过敷料的止血剂来让出血慢慢停止. + 用於覆蓋傷口以防止出血, 透過敷料的止血劑來讓出血慢慢停止. Packing Bandage @@ -978,6 +1116,8 @@ Obvaz (Tlakový) 弾性包帯 거즈 붕대 + 包扎绷带 + 包紮繃帶 Used to pack medium to large wounds and stem the bleeding @@ -992,6 +1132,8 @@ Používá se k zastavení středních až silnějších krvácení 弾性包帯は粘着フィルム状で、普通から大きめなケガにつかい止血します。 중형 또는 대형 상처를 채우고 출혈을 막기위해 쓰입니다 + 用于包扎中到大型伤口, 并防止出血 + 用於包紮中到大型傷口, 並防止出血 A bandage used to pack the wound to stem bleeding and facilitate wound healing. Packing a wound is an option in large polytrauma injuries. @@ -1006,6 +1148,8 @@ Tlakový obvaz se skládá se ze sterilní krycí vrstvy, na kterou je přiložena silná vrstva savého materiálu stlačující cévu v ráně a která je přitlačována k ráně a připevněna obinadlem. Slouží k zastavení silnějších krvácení. 包帯をつかうと出血の原因を取りのぞき、それを促進させます。また大きめな多発性外傷にたいしても使えます。 출혈을 막고 상처를 치유하기 위한 붕대. 다발성외상의 경우 상처를 채우는것도 한 가지 방법입니다. + 用于包扎中到大型伤口, 并防止出血, 为在大型多处性伤口的选项之一! + 用於包紮中到大型傷口, 並防止出血, 為在大型多處性傷口的選項之一! Bandage (Elastic) @@ -1020,6 +1164,8 @@ Bandagem (Elástica) 包帯 (伸縮) 붕대 (압박) + 弹性绷带 + 彈性繃帶 Bandage kit, Elastic @@ -1034,6 +1180,8 @@ Sada obvazů, Elastická 包帯キット (伸縮) 붕대, 압박 + 弹性绷带 + 彈性繃帶 Allows an even compression and extra support to the injured area. @@ -1048,6 +1196,8 @@ Hodí se k fixačním účelům a to i v oblastech kloubů. 負傷部分へ最大の対応と止血を続けられます。 부상 부위를 골고루 압박해주면서 동시에 고정시켜 줍니다. + 可对伤口持续压迫并固定以防止伤口情况变严重. + 可對傷口持續壓迫並固定以防止傷口情況變嚴重. Tourniquet (CAT) @@ -1062,6 +1212,8 @@ Torniquete (CAT) 止血帯 (CAT) 지혈대 [CAT] + 军用止血带 + 軍用止血帶 Slows down blood loss when bleeding @@ -1076,6 +1228,8 @@ Zpomaluje ztráty krve při krvácení 出血しているときに、流れ出る量をへらします。 출혈 시 혈액손실을 늦춰줍니다 + 减缓失血的速度 + 減緩失血的速度 A constricting device used to compress venous and arterial circulation in effect inhibiting or slowing blood flow and therefore decreasing loss of blood. @@ -1090,6 +1244,8 @@ Zařízení používané ke stlačení venózního a arteriálního oběhu. V důsledku dochází ke zpomalení toku krve a tedy i snížení ztrát krve. 止血帯は静脈や動脈へ圧力をかけ、循環を遅らせることで血液の流れをおそくし、失血を防ぎます。 정맥과 동맥을 압축시키켜 혈액순환을 억제 혹은 늦추게하여 혈액손실을 줄이는 도구입니다. + 用于压迫静脉与动脉的血液流动, 达到减缓失血速度的目的. + 用於壓迫靜脈與動脈的血液流動, 達到減緩失血速度的目的. Morphine autoinjector @@ -1104,6 +1260,8 @@ Auto-injetor de morfina モルヒネ 모르핀 자동주사기 + 吗啡自动注射器 + 嗎啡自動注射器 Used to combat moderate to severe pain experiences @@ -1118,6 +1276,8 @@ Slouží k tlumení středně těžkých a těžkých bolestí 戦闘が収まったとき、痛みにたいしてつかいます。 심한 통증을 완화하는데 쓰입니다 + 减低中度至重度的疼痛感 + 減低中度至重度的疼痛感 An analgesic used to combat moderate to severe pain experiences. @@ -1132,6 +1292,8 @@ Analgetikum slouží k tlumení středně těžkých a těžkých bolestí 戦闘が収まったとき、モルヒネを痛みにたいしてつかいます。 심한 통증을 완화하기 위해 쓰이는 진통제입니다. + 止痛药的一种, 用于减低中度至重度的疼痛感. + 止痛藥的一種, 用於減低中度至重度的疼痛感. Adenosine autoinjector @@ -1145,6 +1307,8 @@ Аденозин в пневмошприце アデノシン 아데노신 자동주사기 + 腺苷自动注射器 + 腺苷自動注射器 Used to counter effects of Epinephrine @@ -1158,6 +1322,8 @@ Используется для купирования эффектов адреналина アドレナリンの反対の効果としてつかいます。 에피네프린 대응책으로 쓰입니다 + 用来对付肾上腺素的影响 + 用來對付腎上腺素的影響 A drug used to counter the effects of Epinephrine @@ -1171,6 +1337,8 @@ Препарат используется для купирования эффектов адреналина つかうと、アドレナリンと反対の効果がでます。 에피네프린에 대응용으로 쓰이는 약품 + 一种药物用于减低肾上腺素的效果 + 一種藥物用於減低腎上腺素的效果 Atropine autoinjector @@ -1185,6 +1353,8 @@ Auto-injetor de Atropina アトロピン 아트로핀 자동주사기 + 阿托品自动注射器 + 阿托品自動注射器 Used in NBC scenarios @@ -1199,6 +1369,8 @@ Používá se v přítomnosti nervových plynů 核・生物・化学兵器がつかわれている条件下にてつかいます。 핵,생물,화학 상황에 쓰입니다 + 使用于核生化污染的情况 + 使用於核生化汙染的情況 A drug used by the Military in NBC scenarios. @@ -1213,6 +1385,8 @@ Atropin slouží jako protijed na otravu organofosfátovými insekticidy (diazinon) a nervovými plyny. 核・生物・化学兵器がつかわれている条件下にてつかいます。 핵,생물,화학 상황에 쓰이는 군용 약품 + 军用神经解毒针, 用来应付核生化污染的情况. + 軍用神經解毒針, 用來應付核生化汙染的情況. Epinephrine autoinjector @@ -1227,6 +1401,8 @@ Auto-injetor de epinefrina アドレナリン 에피네프린 자동주사기 + 肾上腺素自动注射器 + 腎上腺素自動注射器 Increase heart rate and counter effects given by allergic reactions @@ -1241,6 +1417,8 @@ Zvyšuje srdeční frekvenci a chrání před alergickými reakcemi 心拍数を増加させたり、アレルギー反応を収める効果もあります。 심박수를 높이며 알러지반응의 대응책입니다 + 增加心跳速率的一种药物 + 增加心跳速率的一種藥物 A drug that works on a sympathetic response to dilate the bronchi, increase heart rate and counter such effects given by allergic reactions (anaphylaxis). Used in sudden cardiac arrest scenarios with decreasing positive outcomes. @@ -1255,6 +1433,8 @@ Zúžení periferních cév díky působení na alfa receptory a následné kontrakci hladkých svalů, tím dochází k tzv. centralizaci oběhu, krev se soustřeďuje v životně důležitých centrálních orgánech (srdce, mozek, plíce), působí také pozitivně na srdeční činnost a dochází ke zvýšení krevního tlaku a tepu. Dále se používá při náhlé srdeční zástavě. 薬は気管支を拡張するよう交感神経を拡張させ、心拍数を増加させます。それにアレルギー反応を収める効果もあります(アナフィラキシー ショック)。得られる効果は少ないですが、心停止している場合などにつかわれます。 기관지를 확장시키는 교감 신경 반응을 이끌어내는 약물로써, 심박을 높이고 알러지 효과에 대응합니다(아나필락시스). 심폐가 정지하는 경우 호전이 되지않을때 사용합니다. + 俗称强心针, 为一种支气管扩张药物, 会增加心跳速率并减缓过敏反应(过敏性休克), 在心跳骤停时有恢复心跳的效果! + 俗稱強心針, 為一種支氣管擴張藥物, 會增加心跳速率並減緩過敏反應(過敏性休克), 在心跳驟停時有恢復心跳的效果! Plasma IV (1000ml) @@ -1269,6 +1449,8 @@ Krevní plazma (1000ml) 生理食塩水 IV (1000ml) 혈장 IV (250ml) + 血浆 (1000ml) + 血漿 (1000ml) A volume-expanding blood supplement. @@ -1283,6 +1465,8 @@ Intravenózně podávaný doplněk k zvětšení objemu krve 血液量を増加させる補助です。 혈액량을 늘리기위한 보조수단 입니다. + 可快速得到血液补充 + 可快速得到血液補充 A volume-expanding blood supplement. @@ -1297,6 +1481,8 @@ Intravenózně podávaný doplněk k zvětšení objemu krve 血液量を増加させる補助です。 혈액량을 늘리기위한 보조수단 입니다. + 可快速得到血液补充 + 可快速得到血液補充 Plasma IV (500ml) @@ -1311,6 +1497,8 @@ Krevní plazma (500ml) 生理食塩水 IV (500ml) 혈장 IV (500ml) + 血浆 (500ml) + 血漿 (500ml) Plasma IV (250ml) @@ -1325,6 +1513,8 @@ Krevní plazma (250ml) 生理食塩水 IV (250ml) 혈장 IV (250ml) + 血浆 (250ml) + 血漿 (250ml) Blood IV (1000ml) @@ -1339,6 +1529,8 @@ Krevní transfúze (1000ml) 血液 IV (1000ml) 혈액 IV (1000ml) + 血液 (1000ml) + 血液 (1000ml) Blood IV, for restoring a patients blood (keep cold) @@ -1353,6 +1545,8 @@ Krevní transfuze pro doplnění pacientovi krve (skladujte v chladu) 血液 IV は、患者へ血液を補給します。(要低温保存) 혈액 IV, 환자에게 혈액을 공급합니다. (차갑게 할것) + 血液, 用于补充伤者流失的血液 (需冷藏) + 血液, 用於補充傷者流失的血液 (需冷藏) O Negative infusion blood used in strict and rare events to replenish blood supply usually conducted in the transport phase of medical care. @@ -1367,6 +1561,8 @@ 0 Rh negativní krev se používá v vzácných případech k doplnění pacientovy hladiny krve, obvykle při převozu zraněné osoby do nemocnice. O 型への輸血はまれで厳格であり、通常は治療のための輸送段階で輸血をおこないます。 O- 형 혈액 투여는 매우 엄격하고 드문 혈액보급의 경우에 쓰이는데 주로 치료의 운송단계에서 사용됩니다. + O型负值注射用血液, 在紧急情况时使用, 用于补充伤者流失的血液 + O型負值注射用血液, 在緊急情況時使用, 用於補充傷者流失的血液 Blood IV (500ml) @@ -1381,6 +1577,8 @@ Krevní transfúze (500ml) 血液 IV (500ml) 혈액 IV (500ml) + 血液 (500ml) + 血液 (500ml) Blood IV (250ml) @@ -1395,6 +1593,8 @@ Krevní transfúze (250ml) 血液 IV (250ml) 혈액 IV (250ml) + 血液 (250ml) + 血液 (250ml) Saline IV (1000ml) @@ -1409,6 +1609,8 @@ Fyziologický roztok (1000ml) 生理食塩水 IV (1000ml) 생리식염수 IV (1000ml) + 生理食盐水 (1000ml) + 生理食鹽水 (1000ml) Saline IV, for restoring a patients blood @@ -1423,6 +1625,8 @@ Fyziologický roztok se aplikuje intravenózně a slouží k obnově pacientovi krve 生理食塩水 IV は、患者の血液量を補助します 생리식염수, 환자의 혈액량을 보충할때 쓰입니다 + 生理食盐水, 用于恢复伤者血液 + 生理食鹽水, 用於恢復傷者血液 A medical volume-replenishing agent introduced into the blood system through an IV infusion. @@ -1437,6 +1641,8 @@ Fyziologický roztok se využívá nejčastěji jako infuze při dehydrataci organismu. 生理食塩水 IV を静脈へ投与し、血液量を増加させることができます。 혈류에 IV로 투여되는 의료 용적 대체 요법 + 利用静脉注射进入人体血液系统, 帮助伤者血液恢复 + 利用靜脈注射進入人體血液系統, 幫助傷者血液恢復 Saline IV (500ml) @@ -1451,6 +1657,8 @@ Fyziologický roztok (500ml) 生理食塩水 IV (500ml) 생리식염수 IV (500ml) + 生理食盐水 (500ml) + 生理食鹽水 (500ml) Saline IV (250ml) @@ -1465,6 +1673,8 @@ Fyziologický roztok (250ml) 生理食塩水 IV (250ml) 생리식염수 IV (250ml) + 生理食盐水 (250ml) + 生理食鹽水 (250ml) Basic Field Dressing (QuikClot) @@ -1479,6 +1689,8 @@ Hemostatický obvaz (QuikClot) 緊急圧迫止血包帯 (クイッククロット) 필드 드레싱 (퀵 클롯) + 基本战地包扎 (止血粉) + 基本戰地包紮 (止血粉) QuikClot bandage @@ -1493,6 +1705,8 @@ Hemostatický obvaz (QuikClot) クイッククロット 퀵 클롯 붕대 + 止血粉绷带 + 止血粉繃帶 Hemostatic bandage with coagulant that stops bleeding. @@ -1507,6 +1721,8 @@ Hemostatický obvaz určený k zástavě krvácení 血液凝固剤をふくむ包帯により、止血できます。 지혈시 사용하는 붕대로 혈액 응고제를 포함하고있습니다. + 包含止血粉成分的止血绷带, 可用于止血 + 包含止血粉成分的止血繃帶, 可用於止血 Personal Aid Kit @@ -1521,6 +1737,8 @@ Osobní lékárnička (PAK) 応急処置キット 개인응급키트 + 个人急救包 + 個人急救包 Includes various treatment kit needed for stitching or advanced treatment @@ -1535,6 +1753,8 @@ Osobní lékárnička obsahuje zdravotnický materiál umožňující šití a pokročilejší ošetřování raněných 縫合や高度な処置に必要とされる、さまざまな治療器具が含まれています。 봉합및 고급 조치에 필요한 다양한 치료 도구가 있습니다. + 包含各种医疗套件, 以及进阶伤口系统需要的缝合用品. + 包含各種醫療套件, 以及進階傷口系統需要的縫合用品. Personal Aid Kit for in field stitching or advanced treatment @@ -1549,6 +1769,8 @@ Pronto soccorso personale da campo per mettersi i punti o per trattamenti avanzati. 戦場で縫合や高度な処置に必要とされる、さまざまな治療器具が含まれています。 야전에서 봉합및 고급 조치를 위한 개인응급키트 + 个人急救包可用于战地缝合手术或进阶伤口系统使用. + 個人急救包可用於戰地縫合手術或進階傷口系統使用. Use Personal Aid Kit @@ -1563,6 +1785,8 @@ Usa il pronto soccorso personale 応急処置キットをつかう 개인 응급 키트사용하기 + 使用个人急救包 + 使用個人急救包 Surgical Kit @@ -1577,6 +1801,8 @@ Chirurgická sada 縫合キット 봉합 키트 + 手术包 + 手術包 Surgical Kit for in field advanced medical treatment @@ -1591,6 +1817,8 @@ Chirurgická sada určená k pokročilejším zdravotnickým zákrokům v poli 縫合キットは戦場で高度な処置をするためにつかわれます。 야전 상황에서 고급 의료 처치를 위해 사용되는 봉합 키트 + 用于在战场上为伤口进行缝合(需要开启进阶伤口系统). + 用於在戰場上為傷口進行縫合(需要開啟進階傷口系統). Surgical Kit for in field advanced medical treatment @@ -1605,6 +1833,8 @@ Chirurgická sada určená k pokročilejším zdravotnickým zákrokům v poli 縫合キットは戦場で高度な処置をするためにつかわれます。 야전 상황에서 고급 의료 처치를 위해 사용되는 봉합 키트 + 用于在战场上为伤口进行缝合(需要开启进阶伤口系统). + 用於在戰場上為傷口進行縫合(需要開啟進階傷口系統). Use Surgical Kit @@ -1619,6 +1849,8 @@ Usar kit cirúrgico 縫合キットをつかう 봉합키트 사용하기 + 使用手术包 + 使用手術包 Bodybag @@ -1633,6 +1865,8 @@ Pytel na mrtvoly 死体袋 시체 가방 + 尸袋 + 屍袋 A bodybag for dead bodies @@ -1647,6 +1881,8 @@ Pytel na mrtvoly 死体袋は死体を入れるためにつかいます 시체를 운반할때 쓰는 가방입니다 + 用来装尸体用 + 用來裝屍體用 A bodybag for dead bodies @@ -1661,6 +1897,8 @@ Pytel na mrtvoly 死体袋は死体を入れるためにつかいます 시체를 운반할때 쓰는 가방입니다 + 用来装尸体用 + 用來裝屍體用 Blood Pressure @@ -1675,6 +1913,8 @@ Krevní tlak 血圧を測る 혈압 + 血压 + 血壓 Checking Blood Pressure.. @@ -1689,6 +1929,8 @@ Měřím krevní tlak... 血圧を測定中・・・ 혈압 측정증... + 检查血压中... + 檢查血壓中... %1 checked Blood Pressure: %2 @@ -1703,6 +1945,8 @@ %1 verificou pressão arterial: %2 %1 が測った血圧は: %2 %1 (이)가 혈압을 측정했습니다: %2 + 已由%1确认血压: %2 + 已由%1確認血壓: %2 You checked %1 @@ -1717,6 +1961,8 @@ Zkontroloval jsi %1 自分の血圧は %1 나의 혈압은 %1 이다 + 你已经检查 %1 + 你已經檢查 %1 You find a blood pressure of %2/%3 @@ -1731,6 +1977,8 @@ Naměřil si krevní tlak u %2/%3 血圧は %2/%3 혈압이 %2/%3 이다 + 血压为%2/%3 + 血壓為%2/%3 You find a low blood pressure @@ -1745,6 +1993,8 @@ Naměřil si nízký krevní tlak 血圧はかなり低い 혈압이 매우 낮다 + 发现到低血压 + 發現到低血壓 You find a normal blood pressure @@ -1759,6 +2009,8 @@ Naměřil si normální krevní tlak 血圧は通常 혈압이 정상이다 + 发现到正常血压 + 發現到正常血壓 You find a high blood pressure @@ -1773,6 +2025,8 @@ Naměřil si vysoký krevní tlak 血圧はかなり高い 혈압이 매우 높다 + 发现到高血压 + 發現到高血壓 You find no blood pressure @@ -1787,6 +2041,8 @@ Nenaměřil si žádný krevní tlak 血圧は測れなかった 혈압이 잡히지 않는다 + 量不到血压 + 量不到血壓 You fail to find a blood pressure @@ -1801,6 +2057,8 @@ Nedokázal si změřit krevní tlak 血圧を測るのに失敗 혈압을 잡을 수 없었다 + 检查血压的动作失败 + 檢查血壓的動作失敗 Low @@ -1815,6 +2073,8 @@ Baixa 低い 낮음 + + Normal @@ -1829,6 +2089,8 @@ Normal 通常 보통 + 正常 + 正常 High @@ -1843,6 +2105,8 @@ Alta 高い 높음 + + No Blood Pressure @@ -1857,6 +2121,8 @@ Sem pressão arterial 血圧なし 혈압 없음 + 无血压 + 無血壓 Pulse @@ -1871,6 +2137,8 @@ Puls 心拍数 맥박 + 脉搏 + 脈搏 Checking Heart Rate... @@ -1885,6 +2153,8 @@ Kontroluji srdeční tep... 心拍数を測定中・・・ 맥박 확인중... + 检查心跳中... + 檢查心跳中... You checked %1 @@ -1899,6 +2169,8 @@ Zkontroloval si %1 心拍数は %1 나의 맥박은 %1 이다 + 你已经检查 %1 + 你已經檢查 %1 %1 checked Heart Rate: %2 @@ -1913,6 +2185,8 @@ %1 verificou a frequência cardíaca: %2 %1 が測った心拍数は: %2 %1 (이)가 맥박을 측정했습니다: %2 + 已由%1确认心跳: %2 + 已由%1確認心跳: %2 None @@ -1927,6 +2201,8 @@ Niente なし 없음 + + Weak @@ -1941,6 +2217,8 @@ Fraca 弱い 약함 + 微弱 + 微弱 Normal @@ -1955,6 +2233,8 @@ Normal 通常 보통 + 正常 + 正常 Strong @@ -1969,6 +2249,8 @@ Forte 強い 강함 + 过快 + 過快 You find a Heart Rate of %2 @@ -1983,6 +2265,8 @@ Nahmatal jsi srdeční tep u %2 心拍数は %2 맥박이 %2 이다 + 心跳为%2 + 心跳為%2 You find a weak Heart Rate @@ -1997,6 +2281,8 @@ Nahmatal si slabý srdeční puls 自分の心拍数は低い 약한 맥박이다 + 心跳微弱 + 心跳微弱 You find a strong Heart Rate @@ -2011,6 +2297,8 @@ Nahmatal si silný srdeční puls 自分の心拍数は強い 강한 맥박이다 + 心跳过快 + 心跳過快 You find a normal Heart Rate @@ -2025,6 +2313,8 @@ Nahmatal si normální srdeční puls 自分の心拍数は通常 보통 맥박이다 + 心跳正常 + 心跳正常 You find no Heart Rate @@ -2039,6 +2329,8 @@ Žádný puls 心拍数を測れなかった 맥박을 찾을 수가 없다 + 量不到心跳 + 量不到心跳 Response @@ -2053,6 +2345,8 @@ Odezva 反応を見る 반응 + 反应 + 反應 You check response of patient @@ -2067,6 +2361,8 @@ Zkontroloval jsi reakci pacienta 患者からの反応をみる 대상의 반응 확인중 + 检查伤者的反应 + 檢查傷者的反應 %1 is responsive @@ -2081,6 +2377,8 @@ %1 odpovídá %1 は反応あり %1 은 반응이있다 + %1 有反应 + %1 有反應 %1 is not responsive @@ -2095,6 +2393,8 @@ %1 neodpovídá %1 の反応なし %1 은 반응이없다 + %1 没有反应 + %1 沒有反應 You checked %1 @@ -2109,6 +2409,8 @@ Zkontroloval jsi %1 %1 を見た %1 을 확인함 + 你已经检查 %1 + 你已經檢查 %1 Patient %1<br/>is %2.<br/>%3.<br/>%4 @@ -2123,6 +2425,8 @@ Paciente %1<br/>é %2.<br/>%3.<br/>%4 痛み %1<br/>は %2.<br/>%3.<br/>%4 환자 %1<br/>는 %2.<br/>%3.<br/>%4 + 伤者 %1<br/>is %2.<br/>%3.<br/>%4 + 傷者 %1<br/>is %2.<br/>%3.<br/>%4 alive @@ -2137,6 +2441,8 @@ vivo 生存 생존 + 活着 + 活著 dead @@ -2151,6 +2457,8 @@ morto 死亡 사망 + 死亡 + 死亡 He's lost some blood @@ -2165,6 +2473,8 @@ Ele perdeu um pouco de sangue 彼は出血している 적은 양의 피를 잃었다 + 他流失一些血液 + 他流失一些血液 He's lost a lot of blood @@ -2179,6 +2489,8 @@ Ha perso molto sangue 彼は大量出血している 많은 양의 피를 잃었다 + 他流失大量血液 + 他流失大量血液 He hasn't lost blood @@ -2193,6 +2505,8 @@ Ele não perdeu sangue 彼は出血していない 피를 잃지 않았다 + 他并没有失血 + 他並沒有失血 He is in pain @@ -2207,6 +2521,8 @@ Ele está com dor 彼には痛みがあるようだ 통증이 있다 + 他感到疼痛 + 他感到疼痛 He is not in pain @@ -2221,6 +2537,8 @@ Ele não está com dor 彼には痛みがないようだ 통증이 없다 + 他不会疼痛 + 他不會疼痛 Bandaged @@ -2235,6 +2553,8 @@ Obvázaný 包帯 붕대 감음 + 绷带 + 繃帶 You bandage %1 (%2) @@ -2249,6 +2569,8 @@ Obvazuješ %1 (%2) %1 (%2) 包帯をつかった %1 (%2) 붕대를 감았다 + 你正在对 %1 (%2) 包扎绷带中 + 你正在對 %1 (%2) 包紮繃帶中 %1 is bandaging you @@ -2263,6 +2585,8 @@ %1 tě obvazuje %1 は自分に包帯を巻いている %1 (이)가 나에게 붕대를 감고있다 + %1 正在对你包扎绷带中 + %1 正在對你包紮繃帶中 You start stitching injuries from %1 (%2) @@ -2277,6 +2601,8 @@ Zašíváš rány %1 (%2) あなたは %1 (%2) の外傷へ縫合をはじめた 나는 %1(%2) 상처로부터 봉합을 시작했다 + 你正开始对 %1 (%2) 缝合伤口中 + 你正開始對 %1 (%2) 縫合傷口中 Stitching @@ -2291,6 +2617,8 @@ Šití 縫合 붕합중 + 缝合中 + 縫合中 You treat the airway of %1 @@ -2305,6 +2633,8 @@ Ošetřuješ dýchací cesty %1 %1 の気道を診断する %1의 기도를 확보했다 + 你治疗 %1 的呼吸道 + 你治療 %1 的呼吸道 Airway @@ -2319,6 +2649,8 @@ Dýchací cesty 気道 기도 + 呼吸道 + 呼吸道 %1 is treating your airway @@ -2333,6 +2665,8 @@ %1 ošetřuje tvoje dýchací cesty %1 はあなたの気道を見ている %1 (이)가 나의 기도를 확보중이다 + %1 正在治疗你的呼吸道 + %1 正在治療你的呼吸道 Drag @@ -2347,6 +2681,8 @@ Trascina 引きずる 끌다 + 拖拉 + 拖拉 Carry @@ -2361,6 +2697,8 @@ Trasporta 運ぶ 업다 + 背起 + 背起 Release @@ -2375,6 +2713,8 @@ Rrilascia 離す 내려놓기 + 放下 + 放下 Load Patient Into @@ -2389,6 +2729,8 @@ Carica paziente nel 患者を載せる 환자 싣기 + 将伤者放入 + 將傷者放入 Unload Patient @@ -2403,6 +2745,8 @@ Scarica il paziente 患者を降ろす 환자 내리기 + 将伤者背出 + 將傷者背出 Unload patient @@ -2417,6 +2761,8 @@ Vyložit pacienta 患者を降ろす 환자 내리기 + 将伤者背出 + 將傷者背出 Load patient @@ -2431,6 +2777,8 @@ Naložit pacienta 患者を載せる 환자 싣기 + 将伤者放入 + 將傷者放入 Place body in bodybag @@ -2445,6 +2793,8 @@ Umístni tělo do pytle na mrtvoly 死体袋に入れる 시체 가방에 담기 + 将尸体放入尸袋 + 將屍體放入屍袋 Placing body in bodybag... @@ -2459,6 +2809,8 @@ Umístňuji tělo do pytle na mrtvoly... 死体袋へ梱包中・・・ 시체 가방에 담는중... + 将尸体放入尸袋中... + 將屍體放入屍袋中... %1 has bandaged patient @@ -2473,6 +2825,8 @@ %1 již obvázal pacienta %1 は包帯を巻いた %1 (이)가 붕대를 감아줬다 + %1 已包扎伤者 + %1 已包紮傷者 %1 performed CPR @@ -2486,6 +2840,8 @@ %1 à fait une RCP %1 は心肺蘇生をした %1 (이)가 심폐소생술을 실시했다 + %1 已执行心肺复苏术 + %1 已執行心肺復甦術 %1 used %2 @@ -2500,6 +2856,8 @@ %1 použil %2 %1 は %2 をつかった %1 (이)가 %2 을 썼다 + %1 已使用 %2 + %1 已使用 %2 %1 has given an IV @@ -2514,6 +2872,8 @@ %1 již aplikoval IV %1 は IV を与えた %1 (이)가 IV를 실시했다 + %1 已经给予静脉注射液 + %1 已經給予靜脈注射液 %1 applied a tourniquet @@ -2528,6 +2888,8 @@ %1 použil škrtidlo %1 は止血帯を巻いた %1 (이)가 지혈대를 적용했다 + %1 已经绑上止血带 + %1 已經綁上止血帶 %1 used Personal Aid Kit @@ -2541,6 +2903,8 @@ %1 a utilisé une trousse %1 は応急処置キットをつかった %1 (이)가 개인응급키트를 사용했다 + %1 已使用了个人急救包 + %1 已使用了個人急救包 Heavily wounded @@ -2555,6 +2919,8 @@ Gravemente ferido 重傷 중상 + 重伤 + 重傷 Lightly wounded @@ -2569,6 +2935,8 @@ Levemente ferido 軽傷 경상 + 轻伤 + 輕傷 Very lightly wounded @@ -2583,6 +2951,8 @@ Muito levemente ferido かなり浅い傷 매우 가벼운 부상 + 小伤 + 小傷 Head @@ -2597,6 +2967,8 @@ Cabeça 頭部 머리 + 头部 + 頭部 Torso @@ -2611,6 +2983,8 @@ Torso 胴体 몸통 + 身体 + 身體 Left Arm @@ -2625,6 +2999,8 @@ Braço Esquerdo 左腕 왼쪽 팔 + 左手 + 左手 Right Arm @@ -2639,6 +3015,8 @@ Braço Direito 右腕 오른쪽 팔 + 右手 + 右手 Left Leg @@ -2653,6 +3031,8 @@ Perna Esquerda 左足 왼쪽 다리 + 左脚 + 左腳 Right Leg @@ -2667,6 +3047,8 @@ Perna Direita 右足 오른쪽 다리 + 右脚 + 右腳 Heal fully bandaged hitpoints @@ -2680,6 +3062,8 @@ Heilt vollständig bandagierte Trefferpunkte 包帯は体力を完全に回復する 붕대를 감은후 체력을 회복함 + 完全医疗包扎的部位至痊愈 + 完全醫療包紮的部位至痊癒 Pain is only temporarily suppressed @@ -2694,6 +3078,8 @@ Dolore è soppresso solo temporaneamente 痛みは一時的な影響 고통은 일시적으로만 회복가능 + 疼痛只会暂时性压制 + 疼痛只會暫時性壓制 Pain Effect Type @@ -2708,6 +3094,8 @@ Typ bolesti - efekt 痛みの種類 고통 효과 종류 + 疼痛效果类型 + 疼痛效果類型 Colour Flashing @@ -2722,6 +3110,8 @@ Blikající barva 色の点滅 색 반짝임 + 闪烁颜色 + 閃爍顏色 Chromatic Aberration @@ -2736,6 +3126,8 @@ Aberração Cromática 色の収差 색수차 + 色差 + 色差 Style of menu (Medical) @@ -2750,6 +3142,8 @@ Stile del menù (medico) メニューの表示形式 (治療) 메뉴의 스타일 (의료) + 选单样式 (医疗) + 選單樣式 (醫療) Select the type of menu you prefer; default 3d selections or radial. @@ -2764,6 +3158,8 @@ Seleziona il tipo di menù che preferisci: selezione (3D), radiale o disabilitata. 好みに応じてメニューの表示形式を選んでください。標準では 3D 選択か円状です。 선호하는 종류의 메뉴를 고르세요; 기본 3d 선택형 혹은 다이얼형 + 选择你喜欢的选单样式; 预设为3D选项或放射状 + 選擇你喜歡的選單樣式; 預設為3D選項或放射狀 Selections (3d) @@ -2778,6 +3174,8 @@ Selezione (3D) 選択 (3d) 선택 (3d) + 选择 (3D) + 選擇 (3D) Radial @@ -2792,6 +3190,8 @@ Radiale 円状 다이얼형 + 放射状 + 放射狀 Scrape @@ -2806,6 +3206,8 @@ Odřenina 擦り傷 찰과상 + 擦伤 + 擦傷 Minor Scrape @@ -2820,6 +3222,8 @@ Malá odřenina 小さな擦り傷 소형 찰과상 + 小擦伤 + 小擦傷 Medium Scrape @@ -2834,6 +3238,8 @@ Středně velká odřenina 中くらいの擦り傷 중형 찰과상 + 中擦伤 + 中擦傷 Large Scrape @@ -2848,6 +3254,8 @@ Velká odřenina 大きな擦り傷 대형 찰과상 + 大擦伤 + 大擦傷 Avulsion @@ -2862,6 +3270,8 @@ Avulze 剥離傷 열상 + 撕脱伤 + 撕脫傷 Minor Avulsion @@ -2876,6 +3286,8 @@ Malá avulze 小さな剥離傷 소형 열상 + 小撕脱伤 + 小撕脫傷 Medium Avulsion @@ -2890,6 +3302,8 @@ Střední avulze 中くらいの剥離傷 중형 열상 + 中撕脱伤 + 中撕脫傷 Large Avulsion @@ -2904,6 +3318,8 @@ Velká avulze 大きな剥離傷 대형 열상 + 大撕脱伤 + 大撕脫傷 Bruise @@ -2918,6 +3334,8 @@ Modřina 打ち傷 타박상 + 挫伤 + 挫傷 Minor Bruise @@ -2932,6 +3350,8 @@ Malá modřina 小さな打ち傷 소형 타박상 + 小挫伤 + 小挫傷 Medium Bruise @@ -2946,6 +3366,8 @@ Středně velká modřina 中くらいの打ち傷 중형 타박상 + 中挫伤 + 中挫傷 Large Bruise @@ -2960,6 +3382,8 @@ Velká modřina 大きな打撲傷 대형 타박상 + 大挫伤 + 大挫傷 Crushed tissue @@ -2974,6 +3398,8 @@ Zhmoždění měkkých tkání 圧挫傷 좌상 + 撞伤 + 撞傷 Minor crushed tissue @@ -2988,6 +3414,8 @@ Malé zhmoždění měkkých tkání 小さな圧挫傷 소형 좌상 + 小撞伤 + 小撞傷 Medium crushed tissue @@ -3002,6 +3430,8 @@ Střední zhmoždění měkkých tkání 中くらいの圧挫傷 중형 좌상 + 中撞伤 + 中撞傷 Large crushed tissue @@ -3016,6 +3446,8 @@ Velké zhmoždění měkkých tkání 大きな圧挫傷 대형 좌상 + 大撞伤 + 大撞傷 Cut @@ -3030,6 +3462,8 @@ Řezná rána 切り傷 절상 + 割伤 + 割傷 Small Cut @@ -3044,6 +3478,8 @@ Malá řezná rána 小さな切り傷 소형 절상 + 小割伤 + 小割傷 Medium Cut @@ -3058,6 +3494,8 @@ Střední řezná rána 中くらいの切り傷 중형 절상 + 中割伤 + 中割傷 Large Cut @@ -3072,6 +3510,8 @@ Velká řezná rána 大きな切り傷 대형 절상 + 大割伤 + 大割傷 Tear @@ -3086,6 +3526,8 @@ Tržná rána 裂傷 창상 + 撕裂伤 + 撕裂傷 Small Tear @@ -3100,6 +3542,8 @@ Malá tržná rána 小さな裂傷 소형 창상 + 小撕裂伤 + 小撕裂傷 Medium Tear @@ -3114,6 +3558,8 @@ Střední tržná rána 中くらいの裂傷 중형 창상 + 中撕裂伤 + 中撕裂傷 Large Tear @@ -3128,6 +3574,8 @@ Velká tržná rána 大きな裂傷 대형 창상 + 大撕裂伤 + 大撕裂傷 Velocity Wound @@ -3142,6 +3590,8 @@ Střelné poranění 銃創 총상 + 穿透伤 + 穿透傷 Small Velocity Wound @@ -3156,6 +3606,8 @@ Malé střelné poranění 小さな銃創 소형 총상 + 小穿透伤 + 小穿透傷 Medium Velocity Wound @@ -3170,6 +3622,8 @@ Střední střelné poranění 中くらいの銃創 중형 총상 + 中穿透伤 + 中穿透傷 Large Velocity Wound @@ -3184,6 +3638,8 @@ Velké střelné poranění 大きな銃創 대형 총상 + 大穿透伤 + 大穿透傷 Puncture Wound @@ -3198,6 +3654,8 @@ Bodná rána 刺し傷 관통상 + 穿刺伤 + 穿刺傷 Minor Puncture Wound @@ -3212,6 +3670,8 @@ Malá bodná rána 小さな刺し傷 소형 관통상 + 小穿刺伤 + 小穿刺傷 Medium Puncture Wound @@ -3226,6 +3686,8 @@ Střední bodná rána 中くらいの刺し傷 중형 관통상 + 中穿刺伤 + 中穿刺傷 Large Puncture Wound @@ -3240,6 +3702,8 @@ Velká bodná rána 大きな刺し傷 대형 관통상 + 大穿刺伤 + 大穿刺傷 Broken Femur @@ -3254,6 +3718,8 @@ Zlomená stehenní kost 大腿骨の骨折 대퇴골 골절 + 大腿骨骨折 + 大腿骨骨折 Treating... @@ -3268,6 +3734,8 @@ Curando... 治療中・・・ 치료중... + 治疗中... + 治療中... Removing Tourniquet... @@ -3282,6 +3750,8 @@ Togliendo il laccio emostatico... 止血帯を外している・・・ 지혈대 제거중... + 移除军用止血带中... + 移除軍用止血帶中... ACE Medical @@ -3296,6 +3766,8 @@ ACE Medical ACE 医療 ACE 의료 + ACE 医疗系统 + ACE 醫療系統 Medical Settings [ACE] @@ -3310,6 +3782,8 @@ Impostazioni Mediche [ACE] 医療設定 [ACE] 의료 설정 [ACE] + 医疗设定 [ACE] + 醫療設定 [ACE] Medical Level @@ -3324,6 +3798,8 @@ Livello Medico 医療レベル 의료 수준 + 医疗等级 + 醫療等級 What is the medical simulation level? @@ -3338,6 +3814,8 @@ Qual'è il livello di simulazione medica? 治療の再現度は? 의료 시뮬레이션의 수준 + 选择需要的医疗模拟等级 + 選擇需要的醫療模擬等級 Basic @@ -3352,6 +3830,8 @@ Basico ベーシック 기본 + 基本 + 基本 Advanced @@ -3366,6 +3846,8 @@ Avanzato アドバンスド 고급 + 进阶 + 進階 Medics setting @@ -3380,6 +3862,8 @@ Parametri Medici 治療の設定 의료 설정 + 医护兵等级 + 醫護兵等級 What is the level of detail prefered for medics? @@ -3394,6 +3878,8 @@ Qual'è il livello di dettagli preferito per i medici? >衛生兵への再現度をどのくらいに設定しますか? 의무병의 시뮬레이션 정도? + 设定医护兵的预设医疗水平(医疗兵, 军医) + 設定醫護兵的預設醫療水平(醫療兵, 軍醫) Locations boost training @@ -3407,6 +3893,8 @@ Места ускоренного обучения 衛生兵としての能力を与える場所 교육 증가 지역 + 受所在位置影响提升医疗能力 + 受所在位置影響提升醫療能力 Boost medic rating in medical vehicles or near medical facilities [untrained becomes medic, medic becomes doctor] @@ -3420,6 +3908,8 @@ Улучшает медицинскую подготовку в мед. транспорте и около мед. строений [нетренированные становятся медиками, медики становятся врачами] 医療車両や医療施設の近くは衛生兵としての能力を与える場所となり、衛生兵の訓練を受けていないのに衛生兵としてなる(未訓練は衛生兵に、衛生兵は医師に) 의무병의 수준이 주변의 차량이나 의료시설에 따라 증가합니다. [비교육자가 의무병이되고, 의무병이 의사가 됩니다] + 当人员在医疗载具或是医护设施旁进行医疗时, 该员医疗能力将会有所提升 (未受训人员提升为医疗兵, 医疗兵提升为军医) + 當人員在醫療載具或是醫護設施旁進行醫療時, 該員醫療能力將會有所提升 (未受訓人員提升為醫療兵, 醫療兵提升為軍醫) Disable medics @@ -3434,6 +3924,8 @@ Disabilita medici 衛生兵を無効化 의무병 비활성화 + 关闭医护兵 + 關閉醫護兵 Enable Litter @@ -3448,6 +3940,8 @@ Abilita Barella 医療廃棄物の表示を有効化 의료폐기물 활성화 + 启用医疗废弃物 + 啟用醫療廢棄物 Enable litter being created upon treatment @@ -3462,6 +3956,8 @@ Abilita la creazione della barella dopo trattamento 治療を始めると、医療廃棄物の作成を有効化する 의료폐기물이 치료중 주변에 생성되는것을 활성화 합니다 + 本功能启用后, 当每次医疗动作结束时, 地上会产生相应的医疗废弃物 + 本功能啟用後, 當每次醫療動作結束時, 地上會產生相應的醫療廢棄物 Life time of litter objects @@ -3476,6 +3972,8 @@ Tempo di vita delle barelle 医療廃棄物の作成限界数を設定 의료폐기물 시간제한 + 医疗废弃物存在时间 + 醫療廢棄物存在時間 How long should litter objects stay? In seconds. -1 is forever. @@ -3490,6 +3988,8 @@ Per quanto devono restare le barelle? In secondi. -1 è permanente 医療廃棄物オブジェクトが表示されつづける時間を設定しますか?-1 は永遠です。 얼마동안 폐기물이 존재합니까? 초 단위. -1 은 영구적. + 定义医疗废弃物存在时间, 以秒为单位, -1为永远存在. + 定義醫療廢棄物存在時間, 以秒為單位, -1為永遠存在. Enable Screams @@ -3504,6 +4004,8 @@ Abilita Grida 叫びを有効化 비명 활성화 + 启用尖叫 + 啟用尖叫 Enable screaming by injured units @@ -3518,6 +4020,8 @@ Abilita Grida da parte delle unità ferite 負傷したユニットが叫ぶように 부상당한 인원이 소리지르는것을 활성화합니다 + 启用伤者的尖叫声 + 啟用傷者的尖叫聲 Player Damage @@ -3532,6 +4036,8 @@ Danno Giocatore プレイヤーへの損傷 플레이어 부상 + 玩家伤害 + 玩家傷害 What is the damage a player can take before being killed? @@ -3546,6 +4052,8 @@ Quanto è il danno che un giocatore può sostenere prima di essere ucciso? プレイヤーが死に始める前に損傷を受けるようにしますか? 얼마정도의 부상을 플레이어가 죽기 전까지 버틸 수 있습니까? + 玩家死亡前所能承受的伤害程度 + 玩家死亡前所能承受的傷害程度 AI Damage @@ -3560,6 +4068,8 @@ Danno AI AI への損傷 인공지능 부상 + AI伤害 + AI傷害 What is the damage an AI can take before being killed? @@ -3574,6 +4084,8 @@ Quanto è il danno che un'IA può sostenere prima di essere uccisa? AI が死に始める前に損傷を受けるようにしますか? 얼마정도의 부상을 인공지능이 죽기 전까지 버틸 수 있습니까? + AI 死亡前所能承受的伤害程度 + AI 死亡前所能承受的傷害程度 AI Unconsciousness @@ -3588,6 +4100,8 @@ Incoscienza IA AI の気絶 인공지능 기절 + AI无意识 + AI無意識 Allow AI to go unconscious @@ -3602,6 +4116,8 @@ Permetti alle IA di diventare incoscienti AI が気絶をするように 인공지능도 기절에 빠지게 합니다 + 允许AI进入无意识状态 + 允許AI進入無意識狀態 Remote Controlled AI @@ -3616,6 +4132,8 @@ IA Controllate in Remoto 遠隔操作された AI 인공지능 원격조종 + 遥控AI + 遙控AI Treat remote controlled units as AI not players? @@ -3630,6 +4148,8 @@ Considera le unità controllate in remoto come IA e non come giocatori? 遠隔操作された AI は、非プレイヤーとして扱いますか? 원격 조작하는 AI는 비 플레이어로 취급합니까? + 以医疗AI的方式医疗被遥控的单位 + 以醫療AI的方式醫療被遙控的單位 Prevent instant death @@ -3644,6 +4164,8 @@ Previeni morte istantanea 即死の防止 즉사 방지 + 防止当场死亡 + 防止當場死亡 Have a unit move to unconscious instead of death @@ -3658,6 +4180,8 @@ Imposta un'unità come incosciente invece di morta ユニットの即死を防止するために、気絶へ移行させます 인원의 즉사를 방지코자 즉사 대신 기절시킵니다 + 伤者最严重只会立即进入昏迷, 而非立即死亡 + 傷者最嚴重只會立即進入昏迷, 而非立即死亡 Bleeding coefficient @@ -3672,6 +4196,8 @@ Coefficiente sanguinamento 出血の係数 출혈 계수 + 流血系数 + 流血係數 Coefficient to modify the bleeding speed @@ -3686,6 +4212,8 @@ Coefficiente che modifica la velocità di sanguinamento この係数では出血速度を変更できます 출혈의 속도를 계수만큼 변경합니다 + 修改流血速度 + 修改流血速度 Pain coefficient @@ -3700,6 +4228,8 @@ Coefficiente dolore 痛みの係数 고통 계수 + 疼痛系数 + 疼痛係數 Coefficient to modify the pain intensity @@ -3714,6 +4244,8 @@ Coefficiente che modifica l'intensità del dolore この係数では痛みの強さを変更できます 고통의 정도를 계수만큼 변경합니다 + 修改疼痛强度的系数 + 修改疼痛強度的係數 Sync status @@ -3728,6 +4260,8 @@ Sincronizza stato 同期状態 상태 동기화 + 同步状态 + 同步狀態 Keep unit status synced. Recommended on. @@ -3742,6 +4276,8 @@ Mantieni lo stato delle unità sincronizzato. Consigliato attivo. ユニット状態の同期を続けます。有効化を推奨。 인원의 상태를 동기화합니다. 켜기를 권장합니다. + 保持单位状态同步, 建议启用! + 保持單位狀態同步, 建議啟用! Provides a medical system for both players and AI. @@ -3756,6 +4292,8 @@ Fornisce un sistema medico sia per giocatori che IA. プレイヤーと AI の両方へ医療システムを提供します。 의료 시스템을 플레이어 및 인공지능에게 제공합니다. + 医疗系统将同时对玩家与AI发生作用 + 醫療系統將同時對玩家與AI發生作用 Basic Medical Settings [ACE] @@ -3769,6 +4307,8 @@ Настройки базовой медицины [ACE] ベーシック医療設定 [ACE] 기본 의료 설정 [ACE] + 基本医疗设定 [ACE] + 基本醫療設定 [ACE] Advanced Medical Settings [ACE] @@ -3783,6 +4323,8 @@ Impostazioni Mediche Avanzate [ACE] アドバンスド医療設定 [ACE] 고급 의료 설정 [ACE] + 进阶医疗设定 [ACE] + 進階醫療設定 [ACE] Enabled for @@ -3797,6 +4339,8 @@ Abilitato per 次を有効化 활성 + 被启用给 + 被啟用給 Select what units the advanced medical system will be enabled for @@ -3811,6 +4355,8 @@ Seleziona per quali unità verrà abilitato i sistema medico avanzato 選択されたユニットが、アドバンスド医療が使えるようになります 어느 인원에게 고급 의료 시스템을 적용시킬지 선택하십시요. + 选择进阶医疗系统影响的对象 + 選擇進階醫療系統影響的對象 Players only @@ -3825,6 +4371,8 @@ Solo giocatori プレイヤーのみ 플레이어만 + 只限玩家 + 只限玩家 Players and AI @@ -3839,6 +4387,8 @@ Giocatori ed IA プレイヤーと AI 플레이어 및 인공지능 + 玩家与AI + 玩家與AI Enable Advanced wounds @@ -3853,6 +4403,8 @@ Abilita ferite Avanzate アドバンスドな傷を有効化 고급 부상 활성화 + 启用进阶伤口系统 + 啟用進階傷口系統 Allow reopening of bandaged wounds? @@ -3867,6 +4419,8 @@ Permetti la riapertura di ferite bendate? 包帯で巻かれた傷を再び開くようにしますか? 붕대가 풀리는것을 활성화합니까? + 启用进阶伤口系统会使已被包扎的伤口有机率裂开 + 啟用進階傷口系統會使已被包紮的傷口有機率裂開 Vehicle Crashes @@ -3881,6 +4435,8 @@ Schianto Veicoli 車両の衝突 차량 사고 + 载具碰撞 + 載具碰撞 Do units take damage from a vehicle crash? @@ -3895,6 +4451,8 @@ Le unità sostengono danni da incidenti con veicoli? ユニットは車両の衝突による損傷を受けるようにしますか? 차량 사고시 인원들이 부상을 입습니까? + 设定人员是否会因为载具冲撞别的物件而产生伤害? + 設定人員是否會因為載具衝撞別的物件而產生傷害? Allow Epinephrine @@ -3908,6 +4466,8 @@ Разрешить Адреналин アドレナリンの許可 에피네프린 활성화 + 允许使用肾上腺素 + 允許使用腎上腺素 Who can use Epinephrine for full heal? (Basic medical only) @@ -3921,6 +4481,8 @@ Кому разрешено использовать адреналин для полного излечения? (Только для базовой медицины) 完全に回復できるよう誰しもがアドレナリンを使えるようにしますか?(ベーシック医療のみ) 완전한 체력회복을 위해 어느 인원이 에피네프린을 쓸 수 있습니까? (기본 의료 전용) + 谁可以使用肾上腺素完整医治? (仅适用于基本医疗) + 誰可以使用腎上腺素完整醫治? (僅適用於基本醫療) Allow PAK @@ -3935,6 +4497,8 @@ Consenti Kit di Pronto Soccorso 応急処置キットの許可 개인응급키트 활성화 + 允许使用个人急救包 + 允許使用個人急救包 Who can use the PAK for full heal? @@ -3949,6 +4513,8 @@ Chi può usare il KPS per cura completa? 完全に回復できるよう誰しもが応急処置キットを使えるようにしますか? 완전한 체력회복을 위해 어느 인원이 개인응급키트을 쓸 수 있습니까? (기본 의료 전용) + 谁能够使用个人急救包来达到完整医疗? + 誰能夠使用個人急救包來達到完整醫療? Anyone @@ -3963,6 +4529,8 @@ Chiunque だれでも 모두 + 任何人 + 任何人 Medics only @@ -3977,6 +4545,8 @@ Solo medici 衛生兵のみ 의무병만 + 只限医疗兵 + 只限醫療兵 Doctors only @@ -3991,6 +4561,8 @@ Solo dottori 医師のみ 의사만 + 只限军医 + 只限軍醫 Remove PAK on use @@ -4005,6 +4577,8 @@ Rimuovi Kit Pronto Soccorso dopo l'uso 応急処置キットの削除 개인응급키트 사용후 사라짐 + 在使用后删除个人急救包 + 在使用後刪除個人急救包 Should PAK be removed on usage? @@ -4019,6 +4593,8 @@ Il Kit Pronto Soccorso dev'essere rimosso dopo l'utilizzo? 応急処置キットを使うと削除しますか? 개인응급키트를 사용하고 나서 제거합니까? + 要在使用后删除个人急救包吗? + 要在使用後刪除個人急救包嗎? Locations Epinephrine @@ -4032,6 +4608,8 @@ Место использования адреналина アドレナリンをつかう場所 에피네프린 사용 장소 + 肾上腺素使用地点 + 腎上腺素使用地點 Where can the Epinephrine be used? (Basic Medical) @@ -4045,6 +4623,8 @@ Где может использоваться адреналин? (Базовая медицина) どこでもアドレナリンをつかえるようにしますか?(ベーシック医療のみ) 어디에서 에피네프린을 사용할 수 있습니까? (기본 의료) + 在哪里可以使用肾上腺素? (基本医疗) + 在哪裡可以使用腎上腺素? (基本醫療) Locations PAK @@ -4059,6 +4639,8 @@ Locazioni Kit Pronto Soccorso 応急処置キットをつかう場所 개인응급키트 사용 장소 + 个人急救包使用地点 + 個人急救包使用地點 Where can the PAK be used? @@ -4073,6 +4655,8 @@ Dove può essere usato il Kit Pronto Soccorso? どこでも応急処置キットをつかえるようにしますか? 어디에서 개인응급키트를 사용할 수 있습니까? + 在哪里可以使用个人急救包? + 在哪裡可以使用個人急救包? Condition PAK @@ -4087,6 +4671,8 @@ Condizioni Kit Pronto Soccorso 応急処置キットの状態 개인응급키트 상태 + 个人急救包使用条件 + 個人急救包使用條件 When can the PAK be used? @@ -4101,6 +4687,8 @@ Quando può essere usato il Kit Pronto Soccorso? どこでも応急処置キットをつかえるようにしますか? 언제 개인응급키트를 사용할 수 있습니까? + 何时可以使用个人急救包? + 何時可以使用個人急救包? Anywhere @@ -4115,6 +4703,8 @@ Ovunque どこでも 어디서나 + 任何地方 + 任何地方 Medical vehicles @@ -4129,6 +4719,8 @@ Veicoli medici 医療車両のみ 의료차량 + 医疗载具 + 醫療載具 Medical facility @@ -4143,6 +4735,8 @@ Strutture mediche 医療施設でのみ 의료시설 + 医疗设施 + 醫療設施 Vehicles & facility @@ -4157,6 +4751,8 @@ Veicoli e Strutture 車両 & 施設 차량 및 시설 + 医疗载具 & 医疗设施 + 醫療載具 & 醫療設施 Allow Surgical Kit (Adv) @@ -4171,6 +4767,8 @@ Permetti Kit Chirurgico (Avanzato) 縫合キットの許可 (アド) 봉합키트 활성화 (고급) + 允许使用手术包 (进阶伤口) + 允許使用手術包 (進階傷口) Who can use the Surgical Kit? @@ -4185,6 +4783,8 @@ Chi può usare il Kit Chirurgico? だれでも縫合キットをつかえるようにしますか? 어느 인원이 봉합키트를 사용할 수 있습니까? + 谁能够使用手术包? + 誰能夠使用手術包? Remove Surgical Kit (Adv) @@ -4199,6 +4799,8 @@ Rimuovi Kit Chirurgico (Avanzato) 縫合キットを削除 (アド) 봉합키트 제거 (고급) + 在使用后删除手术包 (进阶伤口) + 在使用後刪除手術包 (進階傷口) Should Surgical kit be removed on usage? @@ -4213,6 +4815,8 @@ Il Kit Chirurgico dev'essere rimosso dopo l'uso? 縫合キットをつかった後に削除しますか? 봉합키트를 사용하고 나서 제거합니까? + 手术包会在使用后被删除吗? + 手術包會在使用後被刪除嗎? Locations Surgical Kit (Adv) @@ -4227,6 +4831,8 @@ Località Kit Chirurgico (Avanzato) 縫合キットをつかう場所 (アド) 봉합키트 사용 장소 (고급) + 手术包使用地点 (进阶伤口) + 手術包使用地點 (進階傷口) Where can the Surgical Kit be used? @@ -4241,6 +4847,8 @@ Dove può essere usato il Kit Chirurgico? どこでも縫合キットをつかえるようにしますか? 어디에서 봉합키트를 사용할 수 있게 합니까? + 定义手术包可被使用的地方? + 定義手術包可被使用的地方? Condition Surgical Kit (Adv) @@ -4255,6 +4863,8 @@ Condizioni Kit Chirurgico (Avanzato) 縫合キットの状態 (アド) 봉합키트 상태 (고급) + 使用手术包的条件 (进阶伤口) + 使用手術包的條件 (進階傷口) When can the Surgical Kit be used? @@ -4269,6 +4879,8 @@ Quando può essere usato il Kit Chirurgico? いつでも縫合キットをつかえるようにしますか? 언제 봉합키트를 사용할 수 있습니까? + 何时可以使用手术工具包? + 何時可以使用手術工具包? Heal hitpoints @@ -4282,6 +4894,8 @@ Soigner les blessures ヒットポイントの回復 체력 회복 + 完整治疗 + 完整治療 Heal fully bandaged hitpoints @@ -4295,6 +4909,8 @@ Soigner les plaies entièrement bandées. 包帯によりヒットポイントを完全に回復する 붕대를 감아서 체력을 회복 + 完全医疗包扎的部位至痊愈 + 完全醫療包紮的部位至痊癒 Pain suppression @@ -4309,6 +4925,8 @@ Soppressione dolore 痛みの継続 고통 억제 + 疼痛抑制 + 疼痛抑制 Pain is only temporarily suppressed, not removed @@ -4323,6 +4941,8 @@ Dolore è solo temporaneamente soppresso, non rimosso 痛みを一時的に継続させ、取り除かない 고통은 제거가 아닌 일시적으로 억제만 가능합니다. + 疼痛只会被暂时抑制, 而不能完全消除 + 疼痛只會被暫時抑制, 而不能完全消除 Configure the treatment settings from ACE Basic Medical @@ -4335,6 +4955,8 @@ Настройка лечения в базовой медицинской системе ACE ACE ベーシック医療による設定で、治療を設定する ACE 기본 의료에 대한 치료 설정 수정 + 设定ACE基本医疗的规则 + 設定ACE基本醫療的規則 Configure the treatment settings from ACE Advanced Medical @@ -4349,6 +4971,8 @@ Configura le impostazioni trattamenti per ACE Medical ACE アドバンスド医療による設定で、治療を設定する ACE 고급 의료에 대한 치료 설정 수정 + 设定ACE进阶医疗的规则 + 設定ACE進階醫療的規則 Revive Settings [ACE] @@ -4363,6 +4987,8 @@ Impostazioni Revive [ACE] リバイブ設定 [ACE] 소생 설정 [ACE] + 复苏设定 [ACE] + 復甦設定 [ACE] Enable Revive @@ -4377,6 +5003,8 @@ Abilita Revive リバイブを有効化 소생 활성화 + 启用复苏 + 啟用復甦 Enable a basic revive system @@ -4391,6 +5019,8 @@ Abilita un sistema revive basico ベーシックなリバイブを有効化 기본 소생 시스템 활성화 + 启用基本复苏系统 + 啟用基本復甦系統 Max Revive time @@ -4405,6 +5035,8 @@ Tempo massimo Revive 最大リバイブ時間 최대 소생 시간 + 最大复苏时间 + 最大復甦時間 Max amount of seconds a unit can spend in revive state @@ -4419,6 +5051,8 @@ Numero massimo di secondi che un'unità può spendere in stato revive ユニットがリバイブ状態になっている最大時間を設定できます 소생상태에서 인원이 버틸 수 있는 최대 시간을 초 단위로 정합니다 + 人员在等待复苏状态下能够等待的最大时间(秒) + 人員在等待復甦狀態下能夠等待的最大時間(秒) Max Revive lives @@ -4433,6 +5067,8 @@ Numero massimo Revives 最大リバイブ数 최대 소생 횟수 + 最大被救活次数 + 最大被救活次數 Max amount of lives a unit. 0 or -1 is disabled. @@ -4447,6 +5083,8 @@ Numero massimo di vite di un'unità. 0 o -1 per disabilitare. ユニットの最大リバイブ数を設定できます。0 または -1 は無効化になります 소생 가능한 횟수입니다. 0 혹은 -1 로 비활성화 합니다 + 一个人员最大可被救活次数, 0或-1为关闭 (无限救活). + 一個人員最大可被救活次數, 0或-1為關閉 (無限救活). Provides a medical system for both players and AI. @@ -4461,6 +5099,8 @@ Fornisce un sistema medico sia per giocatori che IA プレイヤーと AI の両方へ医療システムを提供します。 플레이어와 인공지능 모두에게 의료 시스템을 지원합니다. + 医疗系统将同时作用在玩家与AI + 醫療系統將同時作用在玩家與AI Set Medic Class [ACE] @@ -4475,6 +5115,8 @@ Imposta Classe Medico [ACE] 衛生兵クラスとして設定 [ACE] 의무병 보직 설정 [ACE] + 设定医疗兵单位 [ACE] + 設定醫療兵單位 [ACE] List @@ -4489,6 +5131,8 @@ Lista 一覧 목록 + 列表 + 列表 List of unit names that will be classified as medic, separated by commas. @@ -4503,6 +5147,8 @@ Lista di nomi unità che verranno classificati come medici, separati da virgole. 衛生兵として設定されるユニット名を一覧で指定でき、コンマで区切りを付けられます。 보직 이름 목록으로 의무병이 구분됩니다, 쉼표로 구분. + 列出的单位名字将被指派为医疗兵, 记得用逗号隔开! + 列出的單位名字將被指派為醫療兵, 記得用逗號隔開! Is Medic @@ -4517,6 +5163,8 @@ E' Medico 衛生兵として 의무병 + 是医疗兵 + 是醫療兵 This module allows you to assign the medic class to selected units. @@ -4531,6 +5179,8 @@ Questo modulo ti permette di assegnare la classe Medico alle unità selezionate. 選択されたユニットを衛生兵として指定します。 이 모듈은 선택한 보직이 의무병을 할 수 있게 해줍니다. + 本模块可让被同步的单位成为医疗兵. + 本模塊可讓被同步的單位成為醫療兵. None @@ -4545,6 +5195,8 @@ Nessuno なし 없음 + + Regular medic @@ -4559,6 +5211,8 @@ Medico Regolare 通常の衛生兵 일반 의무병 + 普通医疗兵 + 普通醫療兵 Doctor (Only Advanced Medics) @@ -4573,6 +5227,8 @@ Dottore (Solo Medici Avanzati) 医師 (アドバンスド医療のみ) 의사 (오직 고급 의료에서만) + 军医 (只限进阶医疗系统) + 軍醫 (只限進階醫療系統) Doctor @@ -4587,6 +5243,8 @@ Dottore 医師 의사 + 军医 + 軍醫 Assigns the ACE medic class to a unit @@ -4601,6 +5259,8 @@ Assegna la classe medico ACE ad un'unità ユニットを ACE の衛生兵として割り当てる 인원에게 ACE 의무병 보직 선정 + 指派ACE医疗职位给该单位 + 指派ACE醫療職位給該單位 Set Medical Vehicle [ACE] @@ -4615,6 +5275,8 @@ Imposta Veicolo Medico [ACE] 医療車両を設定 [ACE] 의료 차랑 선정 [ACE] + 设定医疗载具 [ACE] + 設定醫療載具 [ACE] List @@ -4629,6 +5291,8 @@ Lista 一覧 목록 + 列表 + 列表 List of vehicles that will be classified as medical vehicle, separated by commas. @@ -4643,6 +5307,8 @@ Lista di veicoli che verranno classificati come veicoli medici, separati da virgole. 医療車両として設定されるクラス名を一覧で指定でき、コンマで区切りを付けられます 차량 명칭 목록으로 의료차량이 구분됩니다, 쉼표로 구분. + 列出的载具将被指定为医疗载具, 记得用逗号隔开! + 列出的載具將被指定為醫療載具, 記得用逗號隔開! Is Medical Vehicle @@ -4657,6 +5323,8 @@ E' Veicolo Medico 医療車両として 의료 차량 + 是医疗载具 + 是醫療載具 Whatever or not the objects in the list will be a medical vehicle. @@ -4671,6 +5339,8 @@ Gli oggetti nella lista verranno considerati veicoli medici o meno. どれでも、またはこの一覧にないオブジェクトを医療車両として割り当てる。 무엇이 되었던간에 이 목록에 있는 물체는 의료 차량이 됩니다. + 列表中的载具将会变成医疗载具 + 列表中的載具將會變成醫療載具 Assigns the ACE medic class to a unit @@ -4685,6 +5355,8 @@ Assegna la classe medico ACE ad un'unità ユニットを ACE の衛生兵として割り当てる 차량에 ACE 의무병 보직 선정 + 指派ACE医疗职位给该单位 + 指派ACE醫療職位給該單位 Set Medical Facility [ACE] @@ -4699,6 +5371,8 @@ Imposta Struttura Medica [ACE] 医療施設を設定 [ACE] 의료시설 선정 [ACE] + 设定医疗设施 [ACE] + 設定醫療設施 [ACE] Is Medical Facility @@ -4713,6 +5387,8 @@ E' Struttura Medica 医療施設として 의료시설 + 是医疗设施 + 是醫療設施 Registers an object as a medical facility @@ -4727,6 +5403,8 @@ Registra un oggetto come struttura medica オブジェクトを医療施設として割り当てる 물체를 의료시설로 등록합니다 + 指定一个物件作为医疗设施 + 指定一個物件作為醫療設施 Defines an object as a medical facility. This allows for more advanced treatments. Can be used on buildings and vehicles. @@ -4741,6 +5419,8 @@ Definisce un oggetto come struttura medica. Questo permette cure più avanzate. Può essere usato su edifici e veicoli. オブジェクトを医療施設として割り当てます。建物と車両へ割り当てられた場合、より高度な治療が可能になります。 물체를 의료시설로 정의합니다. 건물 혹은 차량이 될 수 있습니다. 이는 고급 의료 조치를 할 수 있게해줍니다. + 定义一个物件作为医疗设施, 此医疗设施将被允许使用更进阶的医疗方法. 此功能可用于建筑物或是载具上! + 定義一個物件作為醫療設施, 此醫療設施將被允許使用更進階的醫療方法. 此功能可用於建築物或是載具上! [ACE] Medical Supply Crate (Basic) @@ -4755,6 +5435,8 @@ [ACE] Cassa Rifornimenti Medici (Basico) [ACE] 医療物資箱 (ベーシック) [ACE] 의료 물자 (기본) + [ACE] 医疗补给箱(基本) + [ACE] 醫療補給箱(基本) [ACE] Medical Supply Crate (Advanced) @@ -4769,6 +5451,8 @@ [ACE] Cassa Rifornimenti Medici (Avanzato) [ACE] 医療物資箱 (アドバンスド) [ACE] 의료 물자 (고급) + [ACE] 医疗补给箱(进阶) + [ACE] 醫療補給箱(進階) Anytime @@ -4783,6 +5467,8 @@ Sempre いつでも 언제나 + 任何时间 + 任何時間 Stable @@ -4797,6 +5483,8 @@ Stabile 安定 안정된 + 稳定状态下 + 穩定狀態下 Medical @@ -4811,6 +5499,8 @@ Orvosi 治療 의료 + 医疗设定 + 醫療設定 Distance to %1 has become to far for treatment @@ -4824,6 +5514,8 @@ %1 est trop loin pour être soigné %1 は治療をできない所まで離れた %1 부터의 거리가 너무 멀어 치료할 수 없습니다 + 设定当距离超过%1将不能使用治疗动作 + 設定當距離超過%1將不能使用治療動作 This person (%1) is awake and cannot be loaded @@ -4837,6 +5529,8 @@ %1 est conscient et ne peut être embarqué. 患者 (%1) は意識があり、積み込めない 이 사람 (%1) 은(는) 의식이 있어 태우지 못합니다 + 此人(%1)是清醒且不能被装载 + 此人(%1)是清醒且不能被裝載 There is no tourniquet on this body part! @@ -4850,6 +5544,8 @@ Il n'y a pas de garrot sur ce membre ! 身体には止血帯が無い! 이 부위에는 지혈대가 없습니다! + 这部位没有止血带! + 這部位沒有止血帶! Medical training @@ -4863,6 +5559,8 @@ Медицинская подготовка 治療の訓練 의료 훈련 + 医疗训练 + 醫療訓練 Whether or not the object will be a medical vehicle. @@ -4875,6 +5573,8 @@ Будет ли объект считаться медицинским транспортом. どれでも、またはオブジェクトを医療車両として割り当てます。 무엇이 되었던간에 이 목록에 있는 물체는 의료 차량이 됩니다. + 是否使该载具为医疗载具? + 是否使該載具為醫療載具? Delay cease fire of AI while player is unconscious for medical reasons. @@ -4887,6 +5587,8 @@ AI はプレイヤーが医療的な理由で気絶している場合にかぎり、撃つのをためらいます。 Opóźnij stan wstrzymania ognia u AI kiedy gracz jest nieprzytomny z powodów medycznych. 의료상의 이유로 플레이어가 기절할 경우 인공지능이 발사를 지연합니다. + 当玩家为无意识的状态时, 延长AI的停火时间 + 當玩家為無意識的狀態時, 延長AI的停火時間 Delay cease fire of AI for unconsciousness @@ -4900,6 +5602,8 @@ Задержка прекращения огня ботами при потере сознания AI は気絶している人へ、ためらってから射撃します 기절할 경우 인공지능이 발사를 지연합니다 + 延长AI对已无意识玩家的停火时间 + 延長AI對已無意識玩家的停火時間 diff --git a/addons/medical_ai/stringtable.xml b/addons/medical_ai/stringtable.xml index b2fdbbb7738..5c93be2f33d 100644 --- a/addons/medical_ai/stringtable.xml +++ b/addons/medical_ai/stringtable.xml @@ -10,6 +10,8 @@ Tylko serwer i HC Seulement sur le server ou le HC Solo Server e HC + 只在伺服器或无头客户端 + 只在伺服器或無頭客戶端 diff --git a/addons/medical_blood/stringtable.xml b/addons/medical_blood/stringtable.xml index 4bbd2c19a12..8a24ad79b53 100644 --- a/addons/medical_blood/stringtable.xml +++ b/addons/medical_blood/stringtable.xml @@ -9,6 +9,8 @@ Tylko gracze Joueurs seulement Solo Giocatori + 只有玩家 + 只有玩家 Enable Blood Drops @@ -18,6 +20,8 @@ Włącz ślady krwi na ziemi Active les gouttes de sang Abilita Perdite di Sangue + 开启血液滴落效果 + 開啟血液滴落效果 Enable or disable Blood Drops created on bleeding and taking damage @@ -26,6 +30,8 @@ Włącz lub wyłącz pozostawianie śladów krwi na ziemi kiedy postać odnosi obrażenia bądź krwawi (Dés)active les gouttes de sang lors d'un saignement ou de blessure Abilita o disabilita la Perdite di Sangue create sanguinando e prendendo danno + 开启后, 会让受伤时伤口有血液滴落的效果. + 開啟後, 會讓受傷時傷口有血液滴落的效果. diff --git a/addons/medical_menu/stringtable.xml b/addons/medical_menu/stringtable.xml index 113f9b4bd38..daae65cc65b 100644 --- a/addons/medical_menu/stringtable.xml +++ b/addons/medical_menu/stringtable.xml @@ -13,6 +13,8 @@ Menu médical 治療メニュー 의료 메뉴 + 医疗选单 + 醫療選單 Allow Medical Menu @@ -26,6 +28,8 @@ Autoriser le menu médical 治療メニューを有効化 의료 메뉴 활성화 + 允许医疗选单 + 允許醫療選單 Allow clients to use the medical menu @@ -39,6 +43,8 @@ Autoriser les clients à utiliser le menu médical すべてのクライアントが治療メニューをつかえるようにする 클라이언트가 의료 메뉴를 쓰는것을 허락합니다 + 允许客户端使用医疗选单 + 允許客戶端使用醫療選單 Use Medical menu @@ -52,6 +58,8 @@ Utiliser le menu médical 治療メニューをつかう 의료 메뉴 사용 + 使用医疗选单 + 使用醫療選單 If allowed by server, enable the option to use the Medical Menu through keybinding and interaction menu @@ -65,6 +73,8 @@ Si autorisé par le serveur, active l'option d'utiliser le menu médical à travers les raccourcis clavier et le menu d'interaction. サーバーが有効化を許可している場合は、オプションから有効化でき治療メニューはキー割り当てとインタラクション メニューを無視できます 서버 허가하에 단축키와 상호작용 메뉴로 의료 메뉴사용을 허가합니다 + 如果伺服器允许, 只需透过按键即可叫出医疗选单 + 如果伺服器允許, 只需透過按鍵即可叫出醫療選單 Re-open Medical menu @@ -78,6 +88,8 @@ Ré-ouvrir le menu médical 治療メニューを再びひらく 의료 메뉴 다시 열기 + 重新开启医疗选单 + 重新開啟醫療選單 Re-open the medical menu after succesful treatment @@ -91,6 +103,8 @@ Ré-ouvrir le menu médical après un traitement réussi 治療が終わったあと、再び治療メニューをひらく 성공적으로 치료한후에 의료 메뉴를 다시 엽니다 + 当治疗成功后重新打开医疗选单 + 當治療成功後重新打開醫療選單 Open Medical Menu @@ -104,6 +118,8 @@ Ouvir le menu médical 治療メニューをひらく 의료 메뉴 열기 + 开起医疗选单 + 開起醫療選單 Medical Menu Settings @@ -117,6 +133,8 @@ Réglages du menu médical 治療メニューの設定 의료 메뉴 설정 + 医疗选单设定 + 醫療選單設定 Configure the usage of the Medical Menu @@ -130,6 +148,8 @@ Configurer l'utilisation du menu médical 治療メニューを使うための設定 의료 메뉴 사용의 설정 + 设置医疗选单的使用 + 設置醫療選單的使用 EXAMINE & TREATMENT @@ -143,6 +163,8 @@ ESAMINA & TRATTA 診断 & 治療 검사 / 치료 + 检查 & 治疗 + 檢查 & 治療 STATUS @@ -156,6 +178,8 @@ STATO 状態 상태 + 状态 + 狀態 OVERVIEW @@ -169,6 +193,8 @@ PANORAMICA オーバービュー 개요 + 概述 + 概述 ACTIVITY LOG @@ -182,6 +208,8 @@ LOG ATTIVITA' 治療履歴 활동 로그 + 医疗纪录 + 醫療紀錄 QUICK VIEW @@ -195,6 +223,8 @@ VISTA RAPIDA クイック ビュー 퀵 뷰 + 快速检查 + 快速檢查 View triage Card @@ -208,6 +238,8 @@ Guarda Triage Card トリアージ カードを見る 부상자 카드 보기 + 查看诊断卡 + 查看診斷卡 Examine Patient @@ -221,6 +253,8 @@ Esamina Paziente 患者を調べる 환자 검사하기 + 检查伤者 + 檢查傷者 Bandage / Fractures @@ -234,6 +268,8 @@ Bendaggi/Fratture 包帯 / 骨折 붕대 / 골절 + 绷带 / 骨折 + 繃帶 / 骨折 Medication @@ -247,6 +283,8 @@ Medicazione 薬物による治療 약물 치료 + 药物 + 藥物 Airway Management @@ -260,6 +298,8 @@ Atemwegssicherung 気道を確保 기도 관리 + 呼吸道管理 + 呼吸道管理 Advanced Treatments @@ -273,6 +313,8 @@ Trattamenti Avanzati 高度な治療 고급 치료 + 进阶治疗 + 進階治療 Drag/Carry @@ -286,6 +328,8 @@ Trascina/Trasporta 引きずる / 運ぶ 끌기 / 들기 + 拖 / 背 + 拖 / 背 Toggle (Self) @@ -299,6 +343,8 @@ Attiva (Te Stesso) トグル (自分) 토글 (자신) + 切换 (自己) + 切換 (自己) Select triage status @@ -312,6 +358,8 @@ Seleziona stato Triage トリアージによる状態を選択 부상 상태 고르기 + 选择分诊状态 + 選擇分診狀態 Select Head @@ -325,6 +373,8 @@ Seleziona Testa 頭部を選ぶ 머리 선택 + 选择头部 + 選擇頭部 Select Torso @@ -338,6 +388,8 @@ Seleziona Torso 胴体を選ぶ 몸통 선택 + 选择身体 + 選擇身體 Select Left Arm @@ -351,6 +403,8 @@ Seleziona Braccio Sinistro 左腕を選ぶ 왼쪽 팔 선택 + 选择左手 + 選擇左手 Select Right Arm @@ -364,6 +418,8 @@ Seleziona Braccio Destro 右腕を選ぶ 오른쪽 팔 선택 + 选择右手 + 選擇右手 Select Left Leg @@ -377,6 +433,8 @@ Seleziona Gamba Sinistra 左足を選ぶ 왼쪽 다리 선택 + 选择左脚 + 選擇左腳 Select Right Leg @@ -390,6 +448,8 @@ Seleziona Gamba Destra 右足を選ぶ 오른쪽 다리 선택 + 选择右脚 + 選擇右腳 Head @@ -403,6 +463,8 @@ Testa 頭部 머리 + 头部 + 頭部 Torso @@ -416,6 +478,8 @@ Torso 胴体 몸통 + 身体 + 身體 Left Arm @@ -429,6 +493,8 @@ Braccio Sinistro 左腕 왼쪽 팔 + 左手 + 左手 Right Arm @@ -442,6 +508,8 @@ Braccio Destro 右腕 오른쪽 팔 + 右手 + 右手 Left Leg @@ -455,6 +523,8 @@ Gamba Sinistra 左足 왼쪽 다리 + 左脚 + 左腳 Right Leg @@ -468,6 +538,8 @@ Gamba Destra 右足 오른쪽 다리 + 右脚 + 右腳 Body Part: %1 @@ -481,6 +553,8 @@ Parte del Corpo: %1 身体の一部: %1 신체 부위: %1 + 身体部位: %1 + 身體部位: %1 Small @@ -494,6 +568,8 @@ Piccolo 小さい + + Medium @@ -507,6 +583,8 @@ Medio 中くらい + + Large @@ -520,6 +598,8 @@ Grande 大きい + + There are %2 %1 Open Wounds @@ -533,6 +613,8 @@ Ci sono %2 %1 Ferite Aperte 開いている傷口が %2 %1 ほどあるようだ 여기 %2 %1 크기의 열린 상처가 있다 + 有 %2 %1 开放性伤口 + 有 %2 %1 開放性傷口 There is 1 %1 Open Wound @@ -546,6 +628,8 @@ C'è 1 %1 Ferita Aperta 1 つの空いている %1 傷口 여기 %1 크기의 열린 상처가 있다 + 有 1 %1 开放性伤口 + 有 1 %1 開放性傷口 There is a partial %1 Open wound @@ -559,6 +643,8 @@ C'è 1 parziale %1 Ferita Aperta 部分的に開いている %1 の傷口がある 여기 부분적으로 %1 크기의 상처가 있다 + 有部分 %1 开放性伤口 + 有部分 %1 開放性傷口 There are %2 %1 Bandaged Wounds @@ -572,6 +658,8 @@ Ci sono %2 %1 Ferite Bendate ここには %2 %1 の処置された傷がある 여기에 붕대를 감은 %2 %1 크기의 상처가 있다 + 有 %2 %1 包扎过伤口 + 有 %2 %1 包紮過傷口 There is 1 %1 Bandaged Wound @@ -585,6 +673,8 @@ C'è 1 %1 Ferita Bendata 1 つの包帯で巻かれている %1 傷 여기에 붕대를 감은 %1 크기의 상처가 있다 + 有 1 %1 包扎过伤口 + 有 1 %1 包紮過傷口 There is a partial %1 Bandaged wound @@ -598,6 +688,8 @@ C'è 1 parziale %1 Ferita Bendata 患者には %1 の包帯で処置された傷がある 여기 부분적으로 붕대질한 %1 크기의 상처가 있다 + 有部分 %1 包扎过伤口 + 有部分 %1 包紮過傷口 Normal breathing @@ -611,6 +703,8 @@ Respirazione Normale 通常の呼吸 정상 호흡 + 正常呼吸 + 正常呼吸 No breathing @@ -624,6 +718,8 @@ Nessuna Respirazione 息をしていない 호흡이 없음 + 没有呼吸 + 沒有呼吸 Difficult breathing @@ -637,6 +733,8 @@ Difficoltà Respiratorie 呼吸が難しそうだ 호흡 곤란 + 呼吸困难 + 呼吸困難 Almost no breathing @@ -650,6 +748,8 @@ Quasi nessuna Respirazione ほとんど呼吸していない 호흡이 거의 없음 + 几乎没有呼吸 + 幾乎沒有呼吸 Bleeding @@ -663,6 +763,8 @@ Sanguinamento 出血 출혈 + 出血中 + 出血中 in Pain @@ -676,6 +778,8 @@ in Dolore 痛みがある 고통 + 疼痛中 + 疼痛中 Lost a lot of Blood @@ -689,6 +793,8 @@ Perso molto Sangue 大量出血している 많은 피를 흘림 + 大量失血 + 大量失血 Tourniquet [CAT] @@ -702,6 +808,8 @@ Laccio Emostatico [CAT] 止血帯 [CAT] 지혈대 [CAT] + 军用止血带 + 軍用止血帶 Nasopharyngeal Tube [NPA] @@ -715,6 +823,8 @@ Tubo Nasofaringeo [NPA] 鼻咽頭チューブ [NPA] 비-인두 기도기 [NPA] + 鼻咽管 + 鼻咽管 - \ No newline at end of file + diff --git a/addons/microdagr/stringtable.xml b/addons/microdagr/stringtable.xml index 5be5d853c37..44fa85c25a0 100644 --- a/addons/microdagr/stringtable.xml +++ b/addons/microdagr/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ GPS MicroDAGR MicroDAGR GPS MicroDAGR GPS + 微型军用GPS接收器 + 微型軍用GPS接收器 MicroDAGR advanced GPS receiver @@ -28,6 +30,8 @@ Recepitor GPS avançado MicroDAGR MicroDAGR は改良された GPS 受信機です MicroDAGR 고급 위성항법 수신기 + 微型军用高级防御GPS接收器 + 微型軍用高級防禦GPS接收器 Angular Unit: @@ -42,6 +46,8 @@ Unidade Angular: 角度の種類: 각도의 단위: + 角密位: + 角密位: Mils @@ -56,6 +62,8 @@ Mils: ミリ ラジアン + 密位 + 密位 Show Waypoints On Map: @@ -70,6 +78,8 @@ Mostrar Waypoints no mapa: 地図へウェイポイントを表示: 웨이포인트를 지도에 보이기: + 显示路径点在地图上: + 顯示路徑點在地圖上: Degrees @@ -84,6 +94,8 @@ Graus 角度 각도 + + On @@ -98,6 +110,8 @@ Be 有効 켜기 + 开启 + 開啟 Off @@ -112,6 +126,8 @@ Ki 無効 끄기 + 关闭 + 關閉 Enter Grid Cords: @@ -126,6 +142,8 @@ Digite as Ccords. do Grid 座標を入力: 망 좌표 입력: + 输入网格座标: + 輸入網格座標: Name of [%1] @@ -140,6 +158,8 @@ Nome do [%1] [%1] の名前 [%1] 의 이름 + 名称 [%1] + 名稱 [%1] MGRS-New @@ -154,6 +174,8 @@ MGRS-Novo MGRS-New MGRS-새 것 + 军事网格座标系统-新型 + 軍事網格座標系統-新型 WGD @@ -168,6 +190,8 @@ WGD WGD WGD + 世界座标 + 世界座標 Range: @@ -182,6 +206,8 @@ Distância: 距離: 거리: + 范围: + 範圍: Compass Direction @@ -196,6 +222,8 @@ Direção na bússula 方位磁石での方位 방위 + 指北针方位 + 指北針方位 Mark @@ -210,6 +238,8 @@ Marca マーク 표시 + 标记 + 標記 Waypoints @@ -224,6 +254,8 @@ Waypoints ウェイポイント 웨이포인트 + 路径点 + 路徑點 Connect To @@ -238,6 +270,8 @@ Conectar à 次に接続 연결 + 连接到 + 連接到 Settings @@ -252,6 +286,8 @@ Opções 設定 설정 + 设定 + 設定 SetWP @@ -266,6 +302,8 @@ Definir WP ウェイポイント設定 웨이포인트 설정 + 设置路径点 + 設置路徑點 Add @@ -280,6 +318,8 @@ Adicionar 追加 더하기 + 新增 + 新增 Delete @@ -294,6 +334,8 @@ Törlés 削除 지우기 + 删除 + 刪除 Toggle MicroDAGR Display Mode @@ -308,6 +350,8 @@ Alternar Modo de Display do MicroDAGR MicroDAGR の表示モード MicroDAGR 화면 모드 토글 + 切换微型军用GPS接收器显示模式 + 切換微型軍用GPS接收器顯示模式 Show MicoDAGR @@ -322,6 +366,8 @@ Mostrar MicroDAGR MicoDAGR を表示 MicroDAGR 꺼내기 + 显示微型军用GPS接收器 + 顯示微型軍用GPS接收器 Configure MicroDAGR @@ -336,6 +382,8 @@ Configurar MicroDAGR MicroDAGR を設定 MicroDAGR 설정하기 + 设定微型军用GPS接收器 + 設定微型軍用GPS接收器 Close MicroDAGR @@ -350,6 +398,8 @@ Fechar MicroDAGR MicroDAGR を閉じる MicroDAGR 집어넣기 + 关闭微型军用GPS接收器 + 關閉微型軍用GPS接收器 MicroDAGR Map Fill @@ -364,6 +414,8 @@ Riempimento Mappa MicroDAGR MicroDAGR での地図情報 MicroDAGR - 지도채우기 + 微型军用GPS接收器地图资料 + 微型軍用GPS接收器地圖資料 MicroDAGR Map Fill @@ -378,6 +430,8 @@ Riempimento Mappa MicroDAGR MicroDAGR での地図情報 MicroDAGR - 지도채우기 + 微型军用GPS接收器地图资料 + 微型軍用GPS接收器地圖資料 How much map data is filled on MicroDAGR's @@ -392,6 +446,8 @@ Quanti dati sono trasferiti nella mappa del MicroDAGR MicroDAGR で表示する地図情報を決定します 얼마나 많은 데이터가 MicroDAGR에 있는지에 대한 정보 + 有多少地图数据会显示在微型军用GPS接收器 + 有多少地圖數據會顯示在微型軍用GPS接收器 Full Satellite + Buildings @@ -406,6 +462,8 @@ Satellite Completo + Edifici 完全な衛星画像と建物 위성 사진 + 건물 + 完整卫星画面 + 建筑物位置 + 完整衛星畫面 + 建築物位置 Topographical + Roads @@ -420,6 +478,8 @@ Topografico + Strade 地形と道路 지형학 도표 + 도로 + 地形 + 道路 + 地形 + 道路 None (Cannot use map view) @@ -434,6 +494,8 @@ Nessuno (Non puoi usare la vista mappa) なし(地図表示を使えません) 없음 (지도를 볼 수 없음) + 无 (无法检视地图) + 無 (無法檢視地圖) Controls how much data is filled on the microDAGR items. Less data restricts the map view to show less on the minimap. @@ -448,6 +510,8 @@ Controlla quanti dati sono presenti negli oggetti MicroDAGR. Meno dati costringono la vista mappa a mostrare meno informazioni nella minimappa. アイテム上で表示されるデータ量を決定します。設定を減らすと地図上での情報が少なくなります。 MicroDAGR에 얼마나 많은 데이터가 들어있는지 정합니다. 적을 수록 지도상에도 비춰지는게 적어집니다. + 设定有多少数据会显示在微型军用GPS接收器上. 这些资料的多寡会反映在迷你地图的显示上. + 設定有多少數據會顯示在微型軍用GPS接收器上. 這些資料的多寡會反映在迷你地圖的顯示上. diff --git a/addons/minedetector/stringtable.xml b/addons/minedetector/stringtable.xml index 456873d2c49..99e1c2d0bce 100644 --- a/addons/minedetector/stringtable.xml +++ b/addons/minedetector/stringtable.xml @@ -11,6 +11,8 @@ Metalldetektor 지뢰탐지기 Metal detector + 金属探测器 + 金屬探測器 Metal detector @@ -22,6 +24,8 @@ Metalldetektor 지뢰탐지기 Metal detector + 金属探测器 + 金屬探測器 Activate @@ -33,6 +37,8 @@ Aktivieren 작동 Attiva + 启用探测器 + 啟用探測器 Deactivate @@ -44,6 +50,8 @@ Deaktivieren 끄기 Disattiva + 停用探测器 + 停用探測器 Connect Headphones @@ -55,6 +63,8 @@ 헤드폰에 연결 Connecter les écouteurs Connetti Auricolari + 连接耳机 + 連接耳機 Disconnect Headphones @@ -66,6 +76,8 @@ 헤드폰 연결끊기 Déconnecter les écouteurs Disconnetti Auricolari + 断开耳机 + 斷開耳機 Headphones Connected @@ -77,6 +89,8 @@ 헤드폰 연결됨 Écouteurs connectés Auricolari Connessi + 已连接耳机 + 已連接耳機 Headphones Disconnected @@ -88,6 +102,8 @@ 헤드폰 연결끊김 Écouteurs déconnectés Auricolari Disconnessi + 已断开耳机 + 已斷開耳機 diff --git a/addons/missileguidance/stringtable.xml b/addons/missileguidance/stringtable.xml index 54cc4e9757b..7cf2cc30e04 100644 --- a/addons/missileguidance/stringtable.xml +++ b/addons/missileguidance/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Продвинутое наведение ракет 高度なミサイルの誘導 고급 미사일 유도 + 进阶飞弹制导 + 進階飛彈制導 Advanced missile guidance, or AMG, provides multiple enhancements to missile locking and firing. It is also a framework required for missile weapon types. @@ -28,6 +30,8 @@ Pokočilé navádění raket (AMG) poskytuje několik vylepšení pro lepší zaměření a následnou střelbu. Je to prvek vyžadovaný u typu zbraní jako jsou rakety. 高度なミサイルの誘導、または AMG はミサイルの捕捉と発射に複数の強化をあたえます。これはミサイルの種類によって、枠組みを必要とします。 고급 미사일 유도 혹은 AMG 는 표적 획득 및 발사를 위한 여러 기능을 제공합니다. 미사일 종류에따라 체계가 필요합니다. + 进阶飞弹制导增强了多种导弹锁定和射击的能力. 此系统适用于所有飞弹类型的武器. + 進階飛彈制導增強了多種導彈鎖定和射擊的能力. 此系統適用於所有飛彈類型的武器. Hydra-70 DAGR Missile @@ -42,6 +46,8 @@ Hydra-70 DAGR Hydra-70 DAGR ミサイル Hydra-70 DAGR 미사일 + 九头蛇-70 直接攻击导引飞弹 + 九頭蛇-70 直接攻擊導引飛彈 DAGR @@ -56,6 +62,8 @@ DAGR DAGR DAGR + 直接攻击导引飞弹 + 直接攻擊導引飛彈 Hydra-70 DAGR Laser Guided Missile @@ -70,6 +78,8 @@ Управляемая ракета лазерного наведения Hydra-70 DAGR Hydra-70 DAGR レーザ誘導ミサイル Hydra-70 DAGR 레이저 유도 미사일 + 九头蛇-70 直接攻击雷射导引飞弹e + 九頭蛇-70 直接攻擊雷射導引飛彈e Hellfire II AGM-114K Missile @@ -84,6 +94,8 @@ Hellfire II AGM-114K Hellfire II AGM-114K ミサイル Hellfire II AGM-114K 미사일 + 地狱火II型 AGM-114K 导弹 + 地獄火II型 AGM-114K 導彈 AGM-114K @@ -98,6 +110,8 @@ AGM-114K AGM-114K AGM-114K + AGM-114K + AGM-114K Hellfire II AGM-114K Laser Guided Missile @@ -112,6 +126,8 @@ Управляемая ракета лазерного наведения Hellfire II AGM-114K Hellfire II AGM-114K レーザ誘導ミサイル Hellfire II AGM-114K 레이저 유도 미사일 + 地狱火II型 AGM-114K 雷射导引飞弹 + 地獄火II型 AGM-114K 雷射導引飛彈 Off @@ -126,6 +142,8 @@ Spento 無効 끄기 + 关闭 + 關閉 Player Only @@ -140,6 +158,8 @@ Solo Giocatore プレイヤーのみ 오직 플레이어만 + 只有玩家 + 只有玩家 Player and AI @@ -153,6 +173,8 @@ Игрок и боты Giocatore ed IA プレイヤーと AI + 玩家和AI + 玩家和AI Cycle Fire Mode @@ -167,6 +189,8 @@ Alterar Modo de Disparo 発射モード切り替え 발사 방식 순환 + 循环切换开火模式 + 循環切換開火模式 diff --git a/addons/missionmodules/stringtable.xml b/addons/missionmodules/stringtable.xml index 2fe4264a37a..d9548493db6 100644 --- a/addons/missionmodules/stringtable.xml +++ b/addons/missionmodules/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Moduli Missione ACE ACE ミッション モジュール ACE 미션 모듈 + ACE 任务模块 + ACE 任務模塊 Ambiance Sounds [ACE] @@ -28,6 +30,8 @@ Souni Ambientali [ACE] 環境音 [ACE] 환경 효과음 [ACE] + 环境声音 [ACE] + 環境聲音 [ACE] Sounds @@ -42,6 +46,8 @@ Suoni 効果音 효과음 + 声音 + 聲音 Class names of the ambiance sounds to be played. Seperated by ',' @@ -55,6 +61,8 @@ Nomi classi dei suoni ambientali da eseguire. Separati da ',' 再生する環境音のクラスネームを記載。','で複数指定できます。 재생되는 환경 효과음의 단위와 이름입니다. ','로 구분됩니다. + 输入想使用的环境声音classname. 每个classname用','做区隔 + 輸入想使用的環境聲音classname. 每個classname用','做區隔 Minimal Distance @@ -69,6 +77,8 @@ Distanza Minimale 最低距離 최소 거리 + 最小距离 + 最小距離 Used for calculating a random position and sets the minimal distance between the players and the played sound file(s) @@ -83,6 +93,8 @@ Usati per calcolare una posizione casuale ed impostare la distanza minima tra i giocatori ed il file suono eseguito 無作為な位置への計算や、プレイヤーと再生されるファイルの間へ最低距離を設定します 무작위 위치 계산에 사용되며 플레이어와 재생 된 사운드 파일 간의 최소 거리를 설정합니다. + 声音将随机产生在玩家附近, 此选项定义该声音最近会距离玩家多少公尺. + 聲音將隨機產生在玩家附近, 此選項定義該聲音最近會距離玩家多少公尺. Maximum Distance @@ -97,6 +109,8 @@ Distanza Massima 最大距離 최대 거리 + 最大距离 + 最大距離 Used for calculating a random position and sets the maximum distance between the players and the played sound file(s) @@ -111,6 +125,8 @@ Usato per calcolare una posizione casuale ed impostare la distanza massima tra giocatori e il file suono eseguito 無作為な位置への計算や、プレイヤーと再生されるファイルの間へ最大距離を設定します 무작위 위치 계산에 사용되며 플레이어와 재생 된 사운드 파일 간의 최대 거리를 설정합니다. + 声音将随机产生在玩家附近, 此选项定义该声音最远会距离玩家多少公尺. + 聲音將隨機產生在玩家附近, 此選項定義該聲音最遠會距離玩家多少公尺. Minimal Delay @@ -125,6 +141,8 @@ Pausa Minima 最低遅延 최소 지연 + 最小延迟 + 最小延遲 Minimal delay between sounds played @@ -139,6 +157,8 @@ Pausa Minima tra suoni eseguiti 再生されるまでの最低遅延 재생된 소리간 최소 지연시간 + 设定每个声音档案中间最少间隔多久再进行播放 + 設定每個聲音檔案中間最少間隔多久再進行播放 Maximum Delay @@ -153,6 +173,8 @@ Pausa Massima 最大遅延 최대 지연 + 最大延迟 + 最大延遲 Maximum delay between sounds played @@ -167,6 +189,8 @@ Pausa Massima tra suoni eseguiti 再生されるまでの最大遅延 재생된 소리간 최대 지연시간 + 设定每个声音档案中间最多间隔多久再进行播放 + 設定每個聲音檔案中間最多間隔多久再進行播放 Follow Players @@ -181,6 +205,8 @@ Segui Giocatori プレイヤーを追随 플레이어 따라가기 + 跟随玩家 + 跟隨玩家 Follow players. If set to false, loop will play sounds only nearby logic position. @@ -195,6 +221,8 @@ Segui Giocatori. Se impostato su falso, il ciclo eseguirà i suoni solo vicino ad una posizione logica. プレイヤーを追随します。False に設定するとロジックの近くで延々と再生します。 플레이어를 따라갑니다. 거짓으로 설정될경우 오직 한 자리에서만 반복해서 소리를 재생합니다. + 设定声音是否会在玩家的附近产生. 假如关闭此功能, 声音只会在模块的位置产生. + 設定聲音是否會在玩家的附近產生. 假如關閉此功能, 聲音只會在模塊的位置產生. Volume @@ -209,6 +237,8 @@ Volume 音量 볼륨 + 音量 + 音量 The volume of the sounds played @@ -223,6 +253,8 @@ Il volume dei suoni eseguiti 再生される音の大きさ 재생되는 소리의 볼륨 + 调整声音的音量 + 調整聲音的音量 Ambiance sounds loop (synced across MP) @@ -237,6 +269,8 @@ Ciclo Suoni Ambientali (sincronizzato in MP) 環境音の繰り返し (MP 間で同期させます) 환경 효과음 반복 (멀티플레이 전반적으로 동기화됨) + 循环的环境声音 (在多人游戏中会同步所有玩家的播放状态) + 循環的環境聲音 (在多人遊戲中會同步所有玩家的播放狀態) diff --git a/addons/mk6mortar/stringtable.xml b/addons/mk6mortar/stringtable.xml index 2b5e220753d..e2dcfabad85 100644 --- a/addons/mk6mortar/stringtable.xml +++ b/addons/mk6mortar/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Tavola di tiro 82mm 82mm 射表 82mm 사거리표 + 82mm迫击炮射表 + 82mm迫擊炮射表 Range Table for the Mk6 82mm Mortar @@ -28,6 +30,8 @@ Tavola di tiro per il mortaio calibro 82mm Mk6 Mk6 82mm 迫撃砲の射表 Mk6 82mm 박격포 사격을 위한 사거리표 + MK6 82mm迫击炮射表 + MK6 82mm迫擊炮射表 Open 82mm Rangetable @@ -42,6 +46,8 @@ Apri la tavola di tiro 82mm 82mm 射表を開く 82mm 사거리표 열기 + 开启82mm迫击炮射表 + 開啟82mm迫擊炮射表 Charge @@ -56,6 +62,8 @@ Carica 装薬 장약 + 装药 + 裝藥 Mk6 Settings @@ -70,6 +78,8 @@ Impostazioni Mk6 Mk6 設定 Mk6 설정 + MK6设定 + MK6設定 Air Resistance @@ -84,6 +94,8 @@ Resistenza dell'Aria 空気抵抗 공기저항 + 空气阻力 + 空氣阻力 For Player Shots, Model Air Resistance and Wind Effects @@ -98,6 +110,8 @@ Per Proiettili dei Giocatori, simula la Resistenza dell'Aria e gli Effetti del Vento プレイヤが射撃すると、空気抵抗モデルと風による影響をあたえます。 플레이어 사격시 공기저항과 바람에 영향을 받습니다 + 设定由玩家射击的迫击炮, 将会受到空气阻力与风力的影响 + 設定由玩家射擊的迫擊砲, 將會受到空氣阻力與風力的影響 Allow Mk6 Computer @@ -112,6 +126,8 @@ Consenti Computer Mk6 Mk6 コンピュータを許可 Mk6 탄도계산컴퓨터 허가 + 允许使用MK6射控电脑 + 允許使用MK6射控電腦 Show the Computer and Rangefinder (these NEED to be removed if you enable air resistance) @@ -126,6 +142,8 @@ Mostra il Computer e Distaziometro (questi DEVONO essere rimossi se vuoi abilitare la resistenza dell'aria) コンピュータと距離を表示します (空気抵抗を有効化している場合は必ず削除してください) 탄도계산컴퓨터와 거리측정기를 보여줍니다(공기저항을 활성화했을경우 이 항목은 비활성화 되어야만 합니다) + 显示射控电脑和测距仪 (如果有启用空气阻力功能时, 须停用此项功能) + 顯示射控電腦和測距儀 (如果有啟用空氣阻力功能時, 須停用此項功能) Allow Mk6 Compass @@ -140,6 +158,8 @@ Consenti Bussola Mk6 Mk6 への方位磁石を有効化 Mk6 나침반 허용 + 允许使用MK6指北针 + 允許使用MK6指北針 Show the Mk6 Digital Compass @@ -154,6 +174,8 @@ Mostra la Bussola Digitale Mk6 Mk6 のデジタル方位磁石を表示 Mk6 에서 전자 나침반을 보여줍니다 + 显示MK6的数位指北针 + 顯示MK6的數位指北針 This module allows you to setup Mk6 mortar settings. @@ -167,6 +189,8 @@ Este módulo permite configurar los parámetros del mortero Mk6. Mk6 迫撃砲への設定をできます。 이 모듈은 Mk6 설치 설정을 가능케 합니다. + 这个模块允许你设定MK6迫击炮的相关功能. + 這個模塊允許你設定MK6迫擊砲的相關功能. Use Ammunition handling @@ -179,6 +203,8 @@ Использовать манипуляции с боеприпасами 弾薬の取り扱い 탄약 관리 활성화 + 使用手动弹药装卸 + 使用手動彈藥裝卸 Removes mortar magazines, requiring individual rounds to be loaded by the gunner or loader. Does not affect AI mortars. @@ -191,6 +217,8 @@ Удаляет артиллерийские магазины, требует загрузку отдельных снарядов стрелком или заряжащим. Не влияет на артиллерию ИИ. 迫撃砲から弾薬を除去します。射手か装填手により予め装填されている必要があります。AI 迫撃砲へ影響を与えません。 박격포 탄창을 제거합니다, 사수나 장전수가 개별적으로 탄환을 넣어줘야만 합니다. 인공지능은 영향을 받지 않습니다. + 开启此功能时. 迫击炮的弹药需由炮手与装填手共同合作来进行装填. 此功能并不影响由AI射击的迫击炮. + 開啟此功能時. 迫擊砲的彈藥需由砲手與裝填手共同合作來進行裝填. 此功能並不影響由AI射擊的迫擊砲. Remove Round @@ -204,6 +232,8 @@ Извлечь снаряд 弾薬を除去 탄약 제거 + 卸除弹头 + 卸除彈頭 Load Mortar @@ -217,6 +247,8 @@ Зарядить миномет 弾薬を装填 탄약 장전 + 装载弹头 + 裝載彈頭 Unloading Round @@ -229,6 +261,8 @@ Извлечение снаряда 弾薬を除去しています 탄약 제거중 + 卸除弹头中 + 卸除彈頭中 Preparing Round @@ -242,6 +276,8 @@ Подготовка снаряда 事前に装填 탄약 준비중 + 准备弹头中 + 準備彈頭中 Load HE @@ -255,6 +291,8 @@ Зарядить фугасный りゅう弾を装填 고폭탄 장전 + 装载高爆弹 + 裝載高爆彈 Load Smoke @@ -268,6 +306,8 @@ Зарядить дымовой 煙幕弾を装填 연막탄 장전 + 装载烟雾弹 + 裝載煙霧彈 Load Illumination @@ -281,6 +321,8 @@ Зарядить осветительный 照明弾を装填 조명탄 장전 + 装载照明弹 + 裝載照明彈 Load Guided HE @@ -294,6 +336,8 @@ Зарядить фугасный управляемый 誘導りゅう弾を装填 유도 고폭탄 장전 + 装载导引高爆弹 + 裝載導引高爆彈 Load Laser Guided HE @@ -307,6 +351,8 @@ Зарядить фугасный управляемый по ЛЦУ レーザ誘導りゅう弾を装填 레이저 유도 고폭탄 장전 + 装载雷射导引高爆弹 + 裝載雷射導引高爆彈 82mm HE Round @@ -320,6 +366,8 @@ Фугасный снаряд 82мм 82mm りゅう弾 82mm 고폭탄 + 82mm高爆弹 + 82mm高爆彈 82mm Smoke Round @@ -333,6 +381,8 @@ Дымовой снаряд 82мм 82mm 煙幕弾 82mm 연막탄 + 82mm烟雾弹 + 82mm煙霧彈 82mm Illumination Round @@ -346,6 +396,8 @@ Осветительный снаряд 82мм 82mm 照明弾 82mm 조명탄 + 82mm照明弹 + 82mm照明彈 82mm Guided HE Round @@ -359,6 +411,8 @@ Фугасный снаряд управляемый 82мм 82mm 誘導りゅう弾 82mm 유도 고폭탄 + 82mm导引高爆弹 + 82mm導引高爆彈 82mm Laser Guided HE Round @@ -372,6 +426,8 @@ Фугасный снаряд управляемый по ЛЦУ 82мм 82mm レーザ誘導りゅう弾 82mm 레이저 유도 고폭탄 + 82mm雷射导引高爆弹 + 82mm雷射導引高爆彈 Used in Mk6 mortar @@ -385,6 +441,8 @@ Использовался в миномете Mk6 Mk6 mortar で使います Mk6 박격포에 사용됨 + 用于Mk6迫击炮 + 用於Mk6迫擊砲 [ACE] 82mm HE Rounds Box @@ -398,6 +456,8 @@ [ACE] Ящик фугасных снарядов 82мм [ACE] 82mm りゅう弾入り弾薬箱 [ACE] 82mm 고폭탄 상자 + [ACE] 82mm高爆弹药箱 + [ACE] 82mm高爆彈藥箱 [ACE] 82mm Smoke Rounds Box @@ -411,6 +471,8 @@ [ACE] Ящик дымовых снарядов 82мм [ACE] 82mm 煙幕弾入り弾薬箱 [ACE] 82mm 연막탄 상자 + [ACE] 82mm烟雾弹药箱 + [ACE] 82mm煙霧彈藥箱 [ACE] 82mm Illumination Rounds Box @@ -424,6 +486,8 @@ [ACE] Ящик осветительных снарядов 82мм [ACE] 82mm 照明弾入り弾薬箱 [ACE] 82mm 조명탄 상자 + [ACE] 82mm照明弹药箱 + [ACE] 82mm照明彈藥箱 [ACE] 82mm Default Loadout Box @@ -437,6 +501,8 @@ [ACE] Ящик снарядов 82мм (стандартный) [ACE] 82mm 梱包箱 [ACE] 82mm 기본 장비 상자 + [ACE] 82mm预设弹药箱 + [ACE] 82mm預設彈藥箱 diff --git a/addons/movement/stringtable.xml b/addons/movement/stringtable.xml index 9d7c5d219d9..eecbf9f8339 100644 --- a/addons/movement/stringtable.xml +++ b/addons/movement/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Показывать вес в фунтах ポンドで重量を表示する 무게를 파운드(lb)로 보여줍니다 + 使用磅来显示重量 + 使用磅來顯示重量 Weight: @@ -28,6 +30,8 @@ Вес: 重量: 무게: + 重量: + 重量: Climb @@ -42,6 +46,8 @@ Subir 登る 오르기 + 攀爬 + 攀爬 Can't climb here @@ -55,6 +61,8 @@ Non puoi arrampicarti qui Não se pode subir aqui ここは登れない + 这里无法攀爬 + 這裡無法攀爬 - \ No newline at end of file + diff --git a/addons/mx2a/stringtable.xml b/addons/mx2a/stringtable.xml index cc2b8beb85b..ab92ad08c76 100644 --- a/addons/mx2a/stringtable.xml +++ b/addons/mx2a/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ MX-2A MX-2A MX-2A + MX-2A + MX-2A Thermal imaging device @@ -28,6 +30,8 @@ Dispositivo di visione termica サーマル画像表示双眼鏡 열영상 장치 + 热成像装置 + 熱成像裝置 diff --git a/addons/nametags/stringtable.xml b/addons/nametags/stringtable.xml index 9a4acbe108f..ba7ba558729 100644 --- a/addons/nametags/stringtable.xml +++ b/addons/nametags/stringtable.xml @@ -14,6 +14,8 @@ Mostrar nomes 名前の表示 이름 표시 + 显示名称 + 顯示名稱 Show player names @@ -28,6 +30,8 @@ Показывать имена игроков (включить имена) プレイヤ名を表示 플레이어 이름 표시 + 显示玩家名称 + 顯示玩家名稱 Show player name only on cursor (requires player names) @@ -42,6 +46,8 @@ Показать имена игроков только под курсором (при включенных именах) カーソルを合わせた時だけプレイヤ名を表示 (プレイヤ名が必要 커서로 지시할때만 플레이어 이름 표시(플레이어 이름 필요) + 仅在准心指到后显示玩家名称 (玩家必须有设定名称) + 僅在準心指到後顯示玩家名稱 (玩家必須有設定名稱) Show player name only on keypress (requires player names) @@ -56,6 +62,8 @@ Mostrar nomes somente ao pressionar teclar (requer nome de jogadores) キーを押した時だけプレイヤ名を表示 (プレイヤ名が必要) 키를 누를때만 플레이어 이름 표시(플레이어 이름 필요) + 仅在按按键后显示玩家名称 (玩家必须有设定名称) + 僅在按按鍵後顯示玩家名稱 (玩家必須有設定名稱) Show player ranks (requires player names) @@ -70,6 +78,8 @@ Показывать звания игроков (при вкл. именах) プレイヤの階級を表示 (プレイヤ名が必要) 플레이어 계급 표시 (플레이어 이름 필요) + 显示玩家军阶 (玩家必须有设定名称) + 顯示玩家軍階 (玩家必須有設定名稱) Show vehicle crew info @@ -84,6 +94,8 @@ Mostra l'elenco del personale a bordo 車両の乗員を表示 차량 승무원 정보 표시 + 显示载具成员信息 + 顯示載具成員信息 Show name tags for AI units @@ -98,6 +110,8 @@ Mostrar nomes para unidades de IA AI ユニットの名札を表示 인공지능 인원 이름 표시 + 显示AI单位名称 + 顯示AI單位名稱 Show SoundWaves (requires player names) @@ -112,6 +126,8 @@ Mostrar onda sonora (requer nome de jogadores) 音波形を表示 (プレイヤ名が必要) 음파 표시 (플레이어 이름 필요) + 当玩家讲话时, 显示声波图案 (玩家必须有设定名称) + 當玩家講話時, 顯示聲波圖案 (玩家必須有設定名稱) Default Nametag Color (Non Group Members) @@ -126,6 +142,8 @@ Cor padrão do nome (unidades fora do grupo) 標準の名札の色(グループ メンバ以外) 기본 이름표 색상 (비-그룹 멤버) + 预设名称颜色 (非同小队队友) + 預設名稱顏色 (非同小隊隊友) Name Tags @@ -140,6 +158,8 @@ Etichette Nomi 名札 이름표 + 玩家名称 + 玩家名稱 Player Names View Dist. @@ -154,6 +174,8 @@ Distanza Visiva Etichette Nomi プレイヤ名が見える範囲 플레이어 이름 표시 거리 + 玩家名称显示距离 + 玩家名稱顯示距離 Distance in meters at which player names are shown. Default: 5 @@ -168,6 +190,8 @@ Distanza in metri a cui sono visibili i nomi giocatori. Default: 5 プレイヤの周り何メートルまで名札を表示できます。標準:5 플레이어 이름이 표시되는 미터. 기본설정: 5 + 设定名称在多少距离以内显示. 预设:5公尺 + 設定名稱在多少距離以內顯示. 預設:5公尺 Show name tags for AI? @@ -182,6 +206,8 @@ Mostra etichette nomi per IA? AI の名札も表示しますか? 인공지능의 이름도 표시합니까? + 显示AI名称? + 顯示AI名稱? Show the name and rank tags for friendly AI units? Default: Do not force @@ -196,6 +222,8 @@ Mostra etichette nomi ed etichette gradi per unità IA alleate? Default: Non forzare 友軍の AI にも名前と階級を表示しますか?標準:強制しない 아군 인공지능의 계급을 표시합니까? 기본설정: 강제하지 않음 + 显示友军AI的名称和军阶? 预设: 不显示 + 顯示友軍AI的名稱和軍階? 預設: 不顯示 Force Hide @@ -210,6 +238,8 @@ Forza Nascosto 強制で非表示 강제로 숨기기 + 强迫隐藏 + 強迫隱藏 Force Show @@ -224,6 +254,8 @@ Forza Mostra 強制で表示 강제로 표시 + 强迫显示 + 強迫顯示 Show crew info? @@ -238,6 +270,8 @@ Mostra informazioni equipaggio? 乗員の情報を表示 승무원 정보 표시? + 显示载具成员讯息? + 顯示載具成員訊息? Show vehicle crew info, or by default allows players to choose it on their own. Default: Do Not Force @@ -252,6 +286,8 @@ Mostra informazioni sull'equipaggio del veicolo, oppure consenti di default di lasciare che siano i giocatori a scegliere. Default: Non Forzare 車両の乗員を表示します。標準ではプレイヤ各々が選べられます。標準:強制しない 승무원 정보를 표시하거나 플레이어가 직접 고르게 냅둡니다. 기본설정: 강제하지 않음 + 显示载具成员讯息. 在预设的情况下, 系统允许玩家自己决定开关此讯息. 预设: 不显示 + 顯示載具成員訊息. 在預設的情況下, 系統允許玩家自己決定開關此訊息. 預設: 不顯示 Show for Vehicles @@ -266,6 +302,8 @@ Mostra per Veicoli 車両への表示 차량 표시 + 显示给载具指挥官 + 顯示給載具指揮官 Show cursor NameTag for vehicle commander (only if client has name tags enabled) Default: No @@ -279,6 +317,8 @@ Mostra il nome sul cursore per il comandante del veicolo (solo se il client ha le Etichette Nomi attive) Default: No 車長の名札をカーソルを当てて表示します (クライアント側で名札を有効化する必要があります) 標準:無効 차량의 사령관의 이름표를 표시합니다 (오직 클라이언트가 이름표를 활성화 할시에만 보입니다) 기본설정: 아니요 + 使载具指挥官能透过准心指到别的单位来显示其名称 (仅当客户端的名称功能已启用). 预设: 关闭 + 使載具指揮官能透過準心指到別的單位來顯示其名稱 (僅當客戶端的名稱功能已啟用). 預設: 關閉 This module allows you to customize settings and range of Name Tags. @@ -293,6 +333,8 @@ Questo modulo ti consente di personalizzare le impostazioni ed il raggio delle Etichette Nomi このモジュールは名札の表示範囲と設定を変更できます。 이 모듈은 당신이 이름표의 범위를 임의로 수정할 수 있게 해줍니다. + 这个模块允许您设定名称和显示范围等设定. + 這個模塊允許您設定名稱和顯示範圍等設定. Only on Cursor @@ -307,6 +349,8 @@ Solo su Cursore カーソルでのみ 커서만 해당 + 只有准心指到时 + 只有準心指到時 Only on Keypress @@ -321,6 +365,8 @@ Solo quando Premi Tasto キー押下のみ 키를 누를경우만 + 只有按按键时 + 只有按按鍵時 Only on Cursor and Keypress @@ -335,6 +381,8 @@ Solo su Cursore e quando Premi Tasto カーソルとキー押下のみ 커서와 키를 누를경우만 + 只有在准心指到和按按键时 + 只有在準心指到和按按鍵時 Force Show Only on Cursor @@ -349,6 +397,8 @@ Forza Mostra solo su Cursore カーソルでのみに強制する 커서만 강제로 해당 + 强制仅显示在准心指到时 + 強制僅顯示在準心指到時 Force Show Only on Keypress @@ -363,6 +413,8 @@ Forza Mostra solo quando Premi Tasto キー押下のみに強制する 키를 누를경우만 강제로 해당 + 强制仅显示在按按键时 + 強制僅顯示在按按鍵時 Force Show Only on Cursor and Keypress @@ -377,6 +429,8 @@ Forza Mostra solo su Cursore e quando Premi Tasto カーソルとキー押下のみに強制する 커서와 키를 누를경우만 강제로 해당 + 强制显示在准心指到和按按键时 + 強制顯示在準心指到和按按鍵時 Use Nametag settings @@ -391,6 +445,8 @@ Usa impostazioni Etichette Nomi 名札の設定 이름표 설정 사용 + 玩家名称设定 + 玩家名稱設定 Always Show All @@ -405,6 +461,8 @@ Mostra Sempre Tutto 常に表示する 항상 모두 표시 + 永远显示全部 + 永遠顯示全部 Show player names and set their activation. Default: Enabled @@ -419,6 +477,8 @@ Mostra nomi giocatori ed imposta la loro attivazione. Default: Abilitato プレイヤ名の表示と設定を有効化します。標準:有効 플레이어 이름의 표시와 설정을 활성화합니다. 기본설정: 활성화 + 显示玩家的名称并设置其启动方式. 预设: 启用 + 顯示玩家的名稱並設置其啟動方式. 預設: 啟用 Effect of sound waves above the heads of speaking players after holding the PTT key. This option works with TFAR and ACRE2. @@ -433,6 +493,8 @@ Effetto delle onde sonore sopra la testa dei giocatori parlanti quando premono il tasto PTT. Questa opzione funziona con TFAR ed ACRE2 プレイヤーが PTT キーを押している間は、音波形を表示します。このオプションは TFAR と ACRE2 で動作します。 플레이어가 PTT로 말할시 머리위에 음파효과를 적용합니다. 이 옵션은 TFAR과 ACRE2가 있을때만 적용됩니다. + 当玩家使用按键发话时, 其头上的角色名称旁会显示声波的图案. 此功能可搭配TFAR、ACRE2等模组使用. + 當玩家使用按鍵發話時, 其頭上的角色名稱旁會顯示聲波的圖案. 此功能可搭配TFAR、ACRE2等模組使用. Nametags Size @@ -447,6 +509,8 @@ Dimensione Etichette Nome 名札の大きさ 이름표 크기 + 玩家名称标记大小 + 玩家名稱標記大小 Text and Icon Size Scaling @@ -461,6 +525,8 @@ Proporzione Dimensioni Testo ed Icone 文字とアイコンの大きさ 글자와 아이콘 크기 비례 + 文字和图示大小设定 + 文字和圖示大小設定 Fade on screen border @@ -470,6 +536,8 @@ 화면 가장자리에서 사라짐 Estomper sur les bords de l'écran Sfocatura nei bordi dello schermo + 在荧幕边框旁淡出 + 在螢幕邊框旁淡出 diff --git a/addons/nightvision/stringtable.xml b/addons/nightvision/stringtable.xml index 16f59aafdf8..1ff3ee43fbf 100644 --- a/addons/nightvision/stringtable.xml +++ b/addons/nightvision/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Éjjellátó szemüveg (1. Gen.) 夜間暗視装置つきゴーグル (第1世代) 야투경 (1세대) + 夜视镜 (初代) + 夜視鏡 (初代) NV Goggles (Gen2) @@ -28,6 +30,8 @@ Éjjellátó szemüveg (2. Gen.) 夜間暗視装置つきゴーグル (第2世代) 야투경 (2세대) + 夜视镜 (二代) + 夜視鏡 (二代) NV Goggles (Gen3) @@ -42,6 +46,8 @@ Éjjellátó szemüveg (3. Gen.) 夜間暗視装置つきゴーグル (第3世代) 야투경 (3세대) + 夜视镜 (三代) + 夜視鏡 (三代) NV Goggles (Gen3, Brown) @@ -56,6 +62,8 @@ Éjjellátó szemüveg (3. Gen., barna) 夜間暗視装置つきゴーグル (第3世代、ブラウン) 야투경 (3세대, 갈색) + 夜视镜 (三代, 棕色) + 夜視鏡 (三代, 棕色) NV Goggles (Gen3, Green) @@ -70,6 +78,8 @@ Éjjellátó szemüveg (3. Gen., zöld) 夜間暗視装置つきゴーグル (第3世代、グリーン) 야투경 (3세대, 녹색) + 夜视镜 (三代, 绿色) + 夜視鏡 (三代, 綠色) NV Goggles (Gen3, Black) @@ -84,6 +94,8 @@ Éjjellátó szemüveg (3. Gen., fekete) 夜間暗視装置つきゴーグル (第3世代、ブラック) 야투경 (3세대, 검정색) + 夜视镜 (三代, 黑色) + 夜視鏡 (三代, 黑色) NV Goggles (Gen4) @@ -98,6 +110,8 @@ Éjjellátó szemüveg (4. Gen.) 夜間暗視装置つきゴーグル (第4世代) 야투경 (4세대) + 夜视镜 (四代) + 夜視鏡 (四代) NV Goggles (Wide) @@ -112,6 +126,8 @@ Occhiali notturni (Larghi) 夜間暗視装置つきゴーグル (ワイド) 야투경 (넓음) + 夜视镜 (宽版) + 夜視鏡 (寬版) Brightness: %1 @@ -126,6 +142,8 @@ Luminosità: %1 光度:%1 밝기: %1 + 亮度: %1 + 亮度: %1 Increase NVG Brightness @@ -140,6 +158,8 @@ Aumenta la luminosità dell'NVG 夜間暗視装置の光度を上げる 야투경 밝기 높이기 + 增加夜视镜亮度 + 增加夜視鏡亮度 Decrease NVG Brightness @@ -154,6 +174,8 @@ Riduci la luminosità dell'NVG 夜間暗視装置の光度を下げる 야투경 밝기 줄이기 + 减少夜视镜亮度 + 減少夜視鏡亮度 Nightvision @@ -167,6 +189,8 @@ Vision nocturne 夜間暗視装置 야간투시경 + 夜视 + 夜視 Settings for night vision. @@ -180,6 +204,8 @@ Réglage pour la vision nocturne 夜間暗視装置の設定。 야간투시경 설정 + 设定夜视选项. + 設定夜視選項. Disable NVGs in scope @@ -193,6 +219,8 @@ Desactiver les JVN dans les viseurs. スコープを覗くと夜間暗視装置を無効化 조준경 사용시 야투경 비활성화 + 使用瞄准镜时关闭夜视镜 + 使用瞄準鏡時關閉夜視鏡 Blocks the usage of night vision goggles whilst aiming down the sight. @@ -206,6 +234,8 @@ Bloque l'usage des JVN pendant la visée. スコープを使い狙いを付けると、夜間暗視装置を無効化します。 조준시 야투경의 사용을 제한합니다. + 此功能开启后, 当要使用瞄准镜时, 为避免夜视镜镜头碰撞到瞄准镜, 会先拿开夜视镜后再进行瞄准镜瞄准. + 此功能開啟後, 當要使用瞄準鏡時, 為避免夜視鏡鏡頭碰撞到瞄準鏡, 會先拿開夜視鏡後再進行瞄準鏡瞄準. diff --git a/addons/nlaw/stringtable.xml b/addons/nlaw/stringtable.xml index fb738e677f0..8f7533f9e42 100644 --- a/addons/nlaw/stringtable.xml +++ b/addons/nlaw/stringtable.xml @@ -1,20 +1,26 @@ - + NLAW Track Target (Hold) NLAW Traccia Bersaglio (Mantieni) NALW 目標の追跡 (押しっぱ) + 次世代轻型反坦克导弹发射器追踪目标 (按住) + 次世代輕型反坦克導彈發射器追蹤目標 (按住) Direct Attack Attacco Diretto ダイレクト アタック + 直射模式 + 直射模式 Overfly Top Attack Attacco dall'alto オーバーフライ トップ アタック + 攻顶模式 + 攻頂模式 diff --git a/addons/optics/stringtable.xml b/addons/optics/stringtable.xml index 465bfa6aec2..903f44e60a0 100644 --- a/addons/optics/stringtable.xml +++ b/addons/optics/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ RCO (2D) RCO (2D) RCO (2D) + 步枪战斗光学瞄准镜(2D) + 步槍戰鬥光學瞄準鏡(2D) RCO (PIP) @@ -28,6 +30,8 @@ RCO (PIP) RCO (PIP) RCO (PIP) + 步枪战斗光学瞄准镜(拟真版) + 步槍戰鬥光學瞄準鏡(擬真版) ARCO (2D) @@ -42,6 +46,8 @@ ARCO (2D) ARCO (2D) ARCO (2D) + 先进步枪战斗光学瞄准镜(2D) + 先進步槍戰鬥光學瞄準鏡(2D) ARCO (PIP) @@ -56,6 +62,8 @@ ARCO (PIP) ARCO (PIP) ARCO (PIP) + 先进步枪战斗光学瞄准镜(拟真版) + 先進步槍戰鬥光學瞄準鏡(擬真版) MRCO (2D) @@ -70,6 +78,8 @@ MRCO (2D) MRCO (2D) MRCO (2D) + 多距离战斗瞄准镜(2D) + 多距離戰鬥瞄準鏡(2D) MRCO (PIP) @@ -84,6 +94,8 @@ MRCO (PIP) MRCO (PIP) MRCO (PIP) + 多距离战斗瞄准镜(拟真版) + 多距離戰鬥瞄準鏡(擬真版) MOS (2D) @@ -98,6 +110,8 @@ MOS (2D) MOS (2D) MOS (2D) + 精准光学瞄准镜(2D) + 精準光學瞄準鏡(2D) MOS (PIP) @@ -112,6 +126,8 @@ MOS (PIP) MOS (PIP) MOS (PIP) + 精准光学瞄准镜(拟真版) + 精準光學瞄準鏡(擬真版) LRPS (2D) @@ -126,6 +142,8 @@ LRPS (2D) LRPS (2D) LRPS (2D) + 长距离精确瞄准镜(2D) + 長距離精確瞄準鏡(2D) LRPS (PIP) @@ -140,6 +158,8 @@ LRPS (PIP) LRPS (PIP) LRPS (PIP) + 长距离精确瞄准镜(拟真版) + 長距離精確瞄準鏡(擬真版) diff --git a/addons/optionsmenu/stringtable.xml b/addons/optionsmenu/stringtable.xml index 58929567afb..2264d467619 100644 --- a/addons/optionsmenu/stringtable.xml +++ b/addons/optionsmenu/stringtable.xml @@ -14,6 +14,8 @@ Opzioni ACE ACE オプション ACE 옵션 + ACE 设定 + ACE 設定 Fix Animation @@ -28,6 +30,8 @@ Arrumar Animação アニメーションを修正 동작 고정 + 修复动作BUG + 修復動作BUG Reset All @@ -42,6 +46,8 @@ Resetar Tudo すべて初期化 모두 초기화 + 重置为预设值 + 重置為預設值 Colors @@ -56,6 +62,8 @@ Cores 색상 + 颜色 + 顏色 Options @@ -70,6 +78,8 @@ Opzioni オプション 옵션 + 中文化由[MR]Diss制作 + 設定 Values @@ -84,6 +94,8 @@ Valores + 数值 + 數值 Setting: @@ -98,6 +110,8 @@ Opção: 設定: 설정: + 设定: + 設定: Export @@ -112,6 +126,8 @@ Exportar 出力 내보내기 + 输出 + 輸出 Open Export Menu @@ -126,6 +142,8 @@ Abrir menu de exportação 出力メニューを開く 내보내기 메뉴 열기 + 开启输出选单 + 開啟輸出選單 String input. @@ -140,6 +158,8 @@ Input de String 文字列の入力 문자열 입력 + 输入数值 + 輸入數值 Array. Seperate elements by using ,. @@ -154,6 +174,8 @@ Vetor. Separe elementos usando *,*. アライ。,を使うことで区別できます。 배열. 요소를 ,. 로 나눔 + 阵列. 使用','来做每个值的区隔. + 陣列. 使用','來做每個值的區隔. Number @@ -168,6 +190,8 @@ Número 숫자 + 数字 + 數字 Uknown input type @@ -182,6 +206,8 @@ Tipo desonhecido de input 不明な入力です 불분명한 입력입니다 + 未知输入类型 + 未知輸入類型 Save input @@ -196,6 +222,8 @@ Salvar input 入力を保存 입력 저장 + 储存输入 + 儲存輸入 Include Client Settings @@ -210,6 +238,8 @@ Incluir opções do cliente クライアント設定を含む 클라이언트 설정 포함 + 包含客户端设定 + 包含客戶端設定 Exclude Client Settings @@ -224,6 +254,8 @@ Excluir opções do cliente クライアント設定を実行する 클라이언트 설정 제외 + 不包含客户端设定 + 不包含客戶端設定 Settings exported to clipboard @@ -238,6 +270,8 @@ Opções exportadas para o clipboard. クリップボードに設定を出力する 클립보드로 설정 내보내기 + 设定输出至剪贴簿 + 設定輸出至剪貼簿 Option Menu UI Scaling @@ -252,6 +286,8 @@ Proporzioni della interfaccia utente オプション メニューにあるユーザ インタフェイスの大きさ 옵션메뉴 UI 비례도 + 调整设定选单视窗大小 + 調整設定選單視窗大小 Allow Config Export [ACE] @@ -266,6 +302,8 @@ Consenti Esportazione del Config [ACE] 設定の出力を許可 [ACE] 설정 내보내기 허가 [ACE] + 允许配置导出 [ACE] + 允許配置導出 [ACE] Allow @@ -280,6 +318,8 @@ Consenti 許可 허가 + 允许 + 允許 Allow export of all settings to a server config formatted. @@ -294,6 +334,8 @@ Consenti esportazione di tutti i parametri ad config formato per server. 全ての設定をサーバ用設定の形式へと出力できるようにします。 모든 설정을 서버 설정 형식으로 내보내는것을 허락합니다. + 允许导出所有设定成伺服器配置格式的档案. + 允許導出所有設定成伺服器配置格式的檔案. When allowed, you have access to the settings modification and export in SP. Clicking export will place the formated config on your clipboard. @@ -308,6 +350,8 @@ Quando consentito, hai accesso alle modifiche delle impostazioni ed esportazione in SP. Cliccando Esporta piazzera il config formattato sul tuo Blocco Note. 許可の場合、あなたは設定の変更と出力をシングルプレイで可能です。出力をクリックすると、サーバ用設定の形式となっている設定がクリップボードに保存されます。 허락하는 경우 싱글플레이에서 설정의 변경과 내보내기가 가능해집니다. 내보내기를 눌러서 서버 형성의 설정을 클립보드로 보냅니다. + 当本功能开启时, 你将能在单人模式中调整并输出设定. 点击输出按钮后将会让相关设定参数复制到剪贴簿上. + 當本功能開啟時, 你將能在單人模式中調整並輸出設定. 點擊輸出按鈕後將會讓相關設定參數複製到剪貼簿上. Hide @@ -322,6 +366,8 @@ Nascondi 非表示 숨기기 + 隐藏 + 隱藏 Top right, downwards @@ -336,6 +382,8 @@ In Alto a Destra, verso il Basso 右上、下側 오른쪽 위에서 아래로 + 右上角, 向下 + 右上角, 向下 Top right, to the left @@ -350,6 +398,8 @@ In Alto a Destra, verso Sinistra 右上、左詰 오른쪽 위에서 왼쪽으로 + 右上角, 向左 + 右上角, 向左 Top left, downwards @@ -364,6 +414,8 @@ In Alto a Sinistra, verso il Basso 左上、下側 왼쪽 위에서 아래로 + 左上角, 向下 + 左上角, 向下 Top left, to the right @@ -378,6 +430,8 @@ In Alto a Sinistra, verso Destra 右上、右詰 왼쪽 위에서 오른쪽으로 + 左上角, 向右 + 左上角, 向右 Top @@ -392,6 +446,8 @@ Alto 上側 상단 + 上方 + 上方 Bottom @@ -406,6 +462,8 @@ Basso 下側 하단 + 下方 + 下方 Debug To Clipboard @@ -420,6 +478,8 @@ Debug su Blocco Note クリップボードへデバッグ 디버그를 클립보드로 + 复制除错讯息至剪贴簿 + 複製除錯訊息至剪貼簿 Sends debug information to RPT and clipboard. @@ -434,6 +494,8 @@ Invia informazioni di debug all'RPT e al Blocco Note デバッグ情報の RPT とクリップボードに送ります。 디버그 정보를 보고하기 및 클립보드에 복사하기 위해 보냅니다. + 复制除错讯息至剪贴簿与RPT报告档中. + 複製除錯訊息至剪貼簿與RPT報告檔中. Headbug Fix @@ -448,6 +510,8 @@ Sistema Bug della Testa ヘッドバグ修正 헤드버그 수정 + 修复动作BUG + 修復動作BUG Resets your animation state. @@ -462,6 +526,8 @@ Resetta il tuo stato animazione 現在のアニメーションの状況を初期化します。 자신의 동작 상태 초기화 + 当ACE发生动作BUG时, 点此修复. + 當ACE發生動作BUG時, 點此修復. ACE News @@ -476,6 +542,8 @@ Novità ACE ACE からのお知らせ ACE 새소식 + ACE新闻 + ACE新聞 Show News on Main Menu @@ -490,6 +558,8 @@ Mostra News nel Menù Princinpale メイン メニュにお知らせを表示します 메인메뉴에 새소식을 표시합니다 + 显示新闻消息于主选单 + 顯示新聞消息於主選單 All Categories @@ -503,6 +573,8 @@ Toutes les catégories 全カテゴリ 모든 카테고리 + 全局设定 + 全局設定 Logistics @@ -516,6 +588,8 @@ Logistique ロジスティクス 보급 + 后勤设定 + 後勤設定 diff --git a/addons/overheating/stringtable.xml b/addons/overheating/stringtable.xml index faa04628935..cdbe20fb4fa 100644 --- a/addons/overheating/stringtable.xml +++ b/addons/overheating/stringtable.xml @@ -14,6 +14,8 @@ Visualizza testo in caso di inceppamento 弾詰りを文章で表示 탄걸림의 경우 화면에 표시 + 在卡弹时显示提示讯息 + 在卡彈時顯示提示訊息 Display a notification whenever your weapon gets jammed @@ -28,6 +30,8 @@ Visualizza una notifica in caso la tua arma si inceppasse 持っている武器が弾詰りをすると、通知を表示します 총알이 무기에 걸릴경우 화면에 알림을 띄웁니다 + 当武器卡弹时显示提示讯息 + 當武器卡彈時顯示提示訊息 Overheating Particle Effects @@ -41,6 +45,8 @@ Эффект частиц при перегреве 過熱の視覚効果 과열 입자 효과 + 枪管过热特效 + 槍管過熱特效 Show particle effects when weapon overheats @@ -54,6 +60,8 @@ Zobrazit částicové efekty když se zbraň přehřije 武器を過熱すると視覚表現を表示します 무기가 과열되면 입자 효과를 보여줍니다 + 显示枪管过热特效 + 顯示槍管過熱特效 Overheating Particle Effects for everyone @@ -67,6 +75,8 @@ Эффект частиц при перегреве для всех 過熱の視覚表現を全体に与えます 모두에게 과열 입자 효과 적용 + 显示其他玩家的枪管过热特效 + 顯示其他玩家的槍管過熱特效 Show particle effects when other players weapon overheats @@ -80,6 +90,8 @@ Zobrazit částicové efekty když se zbraň přehřije jinému hráči 他のプレイヤの過熱の視覚表現を表示します 모든 인원이 무기가 과열될시 입자 효과가 나타납니다. + 当其他玩家的武器过热时显示特效 + 當其他玩家的武器過熱時顯示特效 Overheating Dispersion @@ -93,6 +105,8 @@ Důsledky přehřátí zbraně 過熱による精度の低下 과열 명중률 저하 + 过热散射 + 過熱散射 Overheated weapons will be less accurate and have decreased muzzle velocity. Applys for all players. @@ -106,6 +120,8 @@ Přehřátá zbraň bude méně přesná a bude mít menší úsťovou rychlost. Platí pro všechny hráče. 過熱は精度を減少させたり、初速を低下させます、これは全プレイヤに適用します。 무기 과열시 무기의 명중률이 저하되고 총구속도가 감소합니다. 이는 모든 플레이어에게 적용됩니다. + 过热的武器将会有打不准和减少射击初速的情况. 适用于所有玩家 + 過熱的武器將會有打不準和減少射擊初速的情況. 適用於所有玩家 Unjam weapon on reload @@ -119,6 +135,8 @@ Исправлять клин при перезарядке 再装填による弾詰りの解消 재장전시 탄걸림 해결 + 重装弹匣以解决卡弹 + 重裝彈匣以解決卡彈 Reloading clears a weapon jam. @@ -132,6 +150,8 @@ Перезарядка устраняет заклинивание оружия. 再装填により、弾詰りを除去します。 탄걸림이 재장전시 해결됩니다. + 利用重装弹匣来解决卡弹 + 利用重裝彈匣來解決卡彈 Chance of unjam failing @@ -145,6 +165,8 @@ Шанс неудачи при устранении клина 弾詰りの除去を失敗する可能性 탄걸림 해결 시도 실패확률 + 解决卡弹失败机率 + 解決卡彈失敗機率 Probability that an unjam action might fail, requiring to be repeated. @@ -158,6 +180,8 @@ Pravděpodobnost, že uvolnění zbraně selže, je proto nutné tuto akci opakovat. 弾詰りの除去を失敗する可能性が生まれ、もう一度動作を行う必要があります。 탄걸림 해결 시도시 실패할 확률이 있습니다. 이는 다시 탄걸림 해결을 시도해야함을 의미합니다. + 清除卡弹时有可能会失败, 需要反覆进行清枪 + 清除卡彈時有可能會失敗, 需要反覆進行清槍 Spare barrel @@ -172,6 +196,8 @@ Canna di ricambio 予備銃身 예비 총열 + 备用枪管 + 備用槍管 Use to swap barrel. @@ -186,6 +212,8 @@ Usata per cambiare la canna. 予備銃身に交換する。 총열을 바꿀때 사용합니다. + 用来更换枪管 + 用來更換槍管 Weapon jammed! @@ -200,6 +228,8 @@ Arma inceppata! 武器が詰まった! 탄걸림! + 武器卡弹! + 武器卡彈! Clear jam @@ -214,6 +244,8 @@ Ripulisci l'arma 弾詰りを除去する 탄걸림 해결 + 清除卡弹 + 清除卡彈 Jam cleared @@ -228,6 +260,8 @@ Arma pronta al fuoco 弾詰りが除去された 탄걸림 해결됨 + 卡弹已清除 + 卡彈已清除 Jam failed to clear @@ -241,6 +275,8 @@ Не удалось исправить клин 弾詰りの除去に失敗した 탄걸림 해결 실패 + 卡弹未能清除 + 卡彈未能清除 Swap barrel @@ -255,6 +291,8 @@ Sostiuisci la canna 銃身を交換 총열 교체 + 换枪管 + 換槍管 Swapping barrel... @@ -269,6 +307,8 @@ Sostituendo la canna... 銃身を交換中・・・ 총열 교체중... + 换枪管中... + 換槍管中... Swapped barrel @@ -283,6 +323,8 @@ Canna sostituita 銃身を交換した 교체된 총열 + 完成换枪管 + 完成換槍管 Check weapon temperature @@ -297,6 +339,8 @@ Проверить температуру оружия 武器の温度を測る 무기 온도 확인 + 检查枪管温度 + 檢查槍管溫度 Check weapon temperature @@ -311,6 +355,8 @@ Controlla la temperatura della canna 武器の温度を測る 무기 온도 확인 + 检查枪管温度 + 檢查槍管溫度 Checking temperature... @@ -325,6 +371,8 @@ Проверка температуры... 温度を測っている・・・ 무기 온도 확인중... + 检查枪管温度中... + 檢查槍管溫度中... Check spare barrels temperatures @@ -337,6 +385,8 @@ Temperatur der Wechselläufe prüfen 총열 온도 확인 Controlla la temperatura della canna di ricambio + 检查备用枪管温度 + 檢查備用槍管溫度 Checking spare barrels temperatures... @@ -349,6 +399,8 @@ Prüfe Temperatur der Wechselläufe ... 총열 온도 확인중... Controllando la temperatura della canna di ricambio... + 检查枪管温度中... + 檢查槍管溫度中... Temperature @@ -363,6 +415,8 @@ Температура 温度 온도 + 温度 + 溫度 Cool Spare Barrel/s @@ -375,6 +429,8 @@ Kalte Wechselläufe 차가운 예비 총열 Canna/e di Ricambio Fredda + 备用枪管温度正常 + 備用槍管溫度正常 Warm Spare Barrel/s @@ -387,6 +443,8 @@ Warme Wechselläufe 따뜻한 예비 총열 Canna/e di Ricambio Calda + 备用枪管温度偏温 + 備用槍管溫度偏溫 Hot Spare Barrel/s @@ -399,6 +457,8 @@ Heiße Wechselläufe 뜨거운 예비 총열 Canna/e di Ricambio Molto Calda + 备用枪管温度偏热 + 備用槍管溫度偏熱 Very Hot Spare Barrel/s @@ -411,6 +471,8 @@ Sehr heiße Wechselläufe 매우 뜨거운 예비 총열 Canna/e di Ricambio Estremamente Calda + 备用枪管温度过热 + 備用槍管溫度過熱 Extremely Hot Spare Barrel/s @@ -423,6 +485,8 @@ Extrem heiße Wechselläufe 엄청나게 뜨거운 예비 총열 Canna/e di Ricambio Rovente + 备用枪管温度超级热 + 備用槍管溫度超級熱 Overheating Enabled @@ -436,6 +500,8 @@ Przegrzewanie włączone 과열 활성화 Surriscaldamento Abilitato + 启用过热 + 啟用過熱 Master enable for the overheating/jamming module @@ -447,6 +513,8 @@ Hauptschalter, um die Überhitzung-/Ladehemmung-Module zu aktivieren 과열/탄걸림 최종 활성화 Abilitazione master per il modulo di surriscaldamento / inceppamento + 启用枪管过热/干扰模块 + 啟用槍管過熱/干擾模塊 diff --git a/addons/overpressure/stringtable.xml b/addons/overpressure/stringtable.xml index a982ec488c4..aeba1d3a51d 100644 --- a/addons/overpressure/stringtable.xml +++ b/addons/overpressure/stringtable.xml @@ -8,6 +8,8 @@ Mnożnik dystansu nadciśnienia Coéfficient de distance pour la surpression Coefficente Distanza Sovrapressione + 高压影响距离系数 + 高壓影響距離係數 Scales the overpressure effect [Default: 1] @@ -16,6 +18,8 @@ Skaluje efekt nadciśnienia [Domyślne: 1] Échelonne les effets de la surpression [Par défaut : 1] Scala l'effetto di sovrapressione [Predefinito: 1] + 高压影响的范围 [预设: 1] + 高壓影響的範圍 [預設: 1] diff --git a/addons/parachute/stringtable.xml b/addons/parachute/stringtable.xml index c8482eeda76..c6eca9237de 100644 --- a/addons/parachute/stringtable.xml +++ b/addons/parachute/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Altímetro 高度計 고도계 + 高度计 + 高度計 Altimeter Watch @@ -28,6 +30,8 @@ Relógio Altímetro 時計型高度計 고도계 시계 + 高度计手表 + 高度計手錶 Used to show height, descent rate and the time. @@ -42,6 +46,8 @@ Usado para mostrar altura, taxa de descida e o tempo. 高度や降下率、時間を見るのに使います。 높이와, 하강속도 그리고 시간을 보여줍니다. + 用于显示高度, 下降率和时间. + 用於顯示高度, 下降率和時間. Non-Steerable Parachute @@ -56,6 +62,8 @@ Para-querdas não controlável 非操作型パラシュート 비-조종 낙하산 + 非可操控降落伞 + 非可操控降落傘 Cut Parachute @@ -70,6 +78,8 @@ Taglia Paracadute パラシュートを切断 낙하산 자르기 + 剪断降落伞 + 剪斷降落傘 Reserve Parachute @@ -84,6 +94,8 @@ Paracadute di Riserva 予備パラシュート 예비 낙하산 + 备用降落伞 + 備用降落傘 diff --git a/addons/quickmount/stringtable.xml b/addons/quickmount/stringtable.xml index a492ebc3b91..a42e577bc0d 100644 --- a/addons/quickmount/stringtable.xml +++ b/addons/quickmount/stringtable.xml @@ -5,6 +5,8 @@ Quick Mount Entrata Rapida クイック マウント + 快速搭乘 + 快速搭乘 Vehicle quick mount @@ -12,51 +14,71 @@ Pojazd szybkie mocowanie Entrata rapida veicolo 車両クイック マウント + 快速搭乘载具 + 快速搭乘載具 Quickly enter the vehicle you are directly looking at. Entra velocemente nel veicolo che stai guardando. 直接見ている車両へ迅速に搭乗します。 + 快速进入你正在看的载具之中. + 快速進入你正在看的載具之中. Vehicle Full Veicolo Pieno 車両は満員 + 载具已满 + 載具已滿 Distance Distanza 距離 + 距离 + 距離 Maximum distance to check for vehicles. Distanza massima per controllare i veicoli. 車両を確認できる最大距離 + 最大可检查载具的距离. + 最大可檢查載具的距離. Vehicle Locked Veicolo Bloccato. 車両は施錠されている + 载具已上锁 + 載具已上鎖 Maximum Speed (km/h) Velocità Massima (km/h) 最高速度 (km/h) + 最高速度 (公里/小时) + 最高速度 (公里/小時) Maximum vehicle speed (km/h) allowed for player entry Velocità massima del veicolo (km/h) consentita per far salire un giocatore プレイヤーが搭乗できる限界速度 (km/h) + 设置玩家能在最高多少的速度之下进入载具. + 設置玩家能在最高多少的速度之下進入載具. Prioritize Seat Priorità Sedile 優先席 + 优先座位 + 優先座位 Seat priority on entry Priorità del sedile in entrata 搭乗の際の優先順位 + 优先想进入哪个座位. + 優先想進入哪個座位. diff --git a/addons/rangecard/stringtable.xml b/addons/rangecard/stringtable.xml index 33b0994567f..8e12a259e78 100644 --- a/addons/rangecard/stringtable.xml +++ b/addons/rangecard/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Tavola Balistica 射表 사거리표 + 弹道射表 + 彈道射表 50 METER increments -- MRAD/MRAD (reticle/turrets) @@ -28,6 +30,8 @@ Incrementi per 50 METRI - MRAD/MRAD (reticolo/torrette) 50 メートル増やす -- MRAD/MRAD (照準線/砲塔) 50 미터 늘리기 -- MRAD/MRAD (조준선/포탑) + 50公尺增量 -- 毫弧度/毫弧度 (瞄镜分划线/调整纽) + 50公尺增量 -- 毫弧度/毫弧度 (瞄鏡分劃線/調整紐) Open Range Card @@ -42,6 +46,8 @@ Apri Tavola Balistica 射表を開く 사거리표 열기 + 开启弹道射表 + 開啟彈道射表 Open Range Card Copy @@ -56,6 +62,8 @@ Apri Copia Tavola Balistica 複製された射表を開く 복제 사거리표 열기 + 开启弹道射表副本 + 開啟彈道射表副本 Open Range Card @@ -70,6 +78,8 @@ Apri Tavola Balistica 射表を開く 사거리표 열기 + 开启弹道射表 + 開啟彈道射表 Open Range Card Copy @@ -84,6 +94,8 @@ Apri Copia Tavola Balistica 複製された射表を開く 복제 사거리표 열기 + 开启弹道射表副本 + 開啟彈道射表副本 Copy Range Card @@ -98,6 +110,8 @@ Copia Tavola Balistica 射表を複製する 사거리표 복제 + 复制弹道射表 + 複製彈道射表 diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 7f685174e27..b8ee9943ad3 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ XM312A XM312 XM312 + XM312重機槍 + XM312重机枪 XM312A @@ -28,6 +30,8 @@ XM312A XM312A XM312A + XM312A重機槍 + XM312A重机枪 XM312 (High) @@ -42,6 +46,8 @@ XM312 (Alta) XM312 (高) XM312 (높음) + XM312重機槍 (高射腳架) + XM312重机枪 (高射脚架) XM307 @@ -56,6 +62,8 @@ XM307 XM307 XM307 + XM307榴彈機槍 + XM307榴弹机枪 XM307A @@ -70,6 +78,8 @@ XM307A XM307A XM307A + XM307A榴彈機槍 + XM307A榴弹机枪 XM307 (High) @@ -84,6 +94,8 @@ XM307 (Alta) XM307 (高) XM307 (높음) + XM307榴彈機槍 (高射腳架) + XM307榴弹机枪 (高射脚架) Mini-Spike Launcher (AT) @@ -98,6 +110,8 @@ Lanciatore Mini-Spike (AC) ミニスパイク ランチャー (対戦) Mini-Spike Launcher (대전차) + "迷你長釘"導彈發射器 (反坦克) + "迷你长钉"导弹发射器 (反坦克) Mini-Spike Launcher (AA) @@ -112,6 +126,8 @@ Lanciatore Mini-Spike (AA) ミニスパイク ランチャー (対空) Mini-Spike Launcher (대공) + "迷你長釘"導彈發射器 (防空) + "迷你长钉"导弹发射器 (防空) YABHON-R3 @@ -126,6 +142,8 @@ YABHON-R3 YABHON-R3 YABHON-R3 + "亞伯罕-R3型"空中無人載具 + "亚伯罕-R3型"空中无人载具 YABHON-R3 (CAS) @@ -140,6 +158,8 @@ YABHON-R3 (CAS) YABHON-R3 (対地) YABHON-R3 (근접지원) + "亞伯罕-R3型"空中無人載具 (近空支援) + "亚伯罕-R3型"空中无人载具 (近空支援) M-ATV @@ -154,6 +174,8 @@ M-ATV M-ATV M-ATV + 防地雷反伏擊全地形車 + 防地雷反伏击全地形车 M-ATV (HMG) @@ -168,6 +190,8 @@ M-ATV (HMG) M-ATV (HMG) M-ATV (HMG) + 防地雷反伏擊全地形車 (重機槍) + 防地雷反伏击全地形车 (重机枪) M-ATV (GMG) @@ -182,6 +206,8 @@ M-ATV (GMG) M-ATV (GMG) M-ATV (GMG) + 防地雷反伏擊全地形車 (榴彈機槍) + 防地雷反伏击全地形车 (榴弹机枪) Merkava Mk IV M @@ -196,6 +222,8 @@ Merkava Mk IV M メルカバ Mk IV M Merkava Mk IV M + "梅卡瓦4代"主戰坦克 + "梅卡瓦4代"主战坦克 Merkava Mk IV LIC @@ -210,6 +238,8 @@ Merkava Mk IV LIC メルカバ Mk IV LIC Merkava Mk IV LIC + "梅卡瓦4代"主戰坦克 城市版 + "梅卡瓦4代"主战坦克 城市版 Sholef @@ -224,6 +254,8 @@ Sholef ショルフ Sholef + "神槍"自走炮 + "神枪"自走炮 Seara @@ -238,6 +270,8 @@ Seara シアラ Seara + "希拉"多管火箭車 + "希拉"多管火箭车 Namer @@ -252,6 +286,8 @@ Namer ネイマー Namer + "花豹"裝甲運兵車 + "花豹"装甲运兵车 Bardelas @@ -266,6 +302,8 @@ Bardelas バーラデラス Bardelas + "布萊德斯"防空車 + "布莱德斯"防空车 Badger IFV @@ -280,6 +318,8 @@ Badger IFV バッジ IFV Badger IFV + "蜜獾"步兵戰車 + "蜜獾"步兵战车 Nemmera @@ -294,6 +334,8 @@ Nemmera ネマラ Nemmera + "雌豹"戰鬥工程車 + "雌豹"战斗工程车 HEMTT Transport @@ -308,6 +350,8 @@ HEMTT da trasporto HEMTT 輸送型 HEMTT 수송 + 重型增程機動戰術卡車 (運輸) + 重型增程机动战术卡车 (运输) HEMTT Transport (covered) @@ -322,6 +366,8 @@ HEMTT da trasporto (coperto) HEMTT 輸送型 (幌) HEMTT 수송 (덮개) + 重型增程機動戰術卡車 (運輸, 棚布) + 重型增程机动战术卡车 (运输, 棚布) HEMTT @@ -336,6 +382,8 @@ HEMTT HEMTT HEMTT + 重型增程機動戰術卡車 + 重型增程机动战术卡车 HEMTT Container @@ -350,6 +398,8 @@ HEMTT portacontainer HEMTT コンテナ型 HEMTT 컨테이너 + 重型增程機動戰術卡車 (貨櫃) + 重型增程机动战术卡车 (货柜) HEMTT Medical @@ -364,6 +414,8 @@ HEMTT Medico HEMTT 救急車 HEMTT 의료 + 重型增程機動戰術卡車 (醫療) + 重型增程机动战术卡车 (医疗) HEMTT Ammo @@ -378,6 +430,8 @@ HEMTT di rifornimento munizioni HEMTT 弾薬給弾型 HEMTT 탄약 + 重型增程機動戰術卡車 (彈藥) + 重型增程机动战术卡车 (弹药) HEMTT Fuel @@ -392,6 +446,8 @@ HEMTT di rifornimento carburante HEMTT 燃料給油車 HEMTT 연료 + 重型增程機動戰術卡車 (燃油) + 重型增程机动战术卡车 (燃油) HEMTT Repair @@ -406,6 +462,8 @@ HEMTT Riparatore HEMTT 修理型 HEMTT 수리 + 重型增程機動戰術卡車 (維修) + 重型增程机动战术卡车 (维修) Fennek @@ -420,6 +478,8 @@ Fennek フェネック Fennek + "非洲小狐"防地雷反伏擊車 + "非洲小狐"防地雷反伏击车 Fennek (HMG) @@ -434,6 +494,8 @@ Fennek (HMG) フェネック (HMG) Fennek (HMG) + "非洲小狐"防地雷反伏擊車 (重機槍) + "非洲小狐"防地雷反伏击车 (重机枪) Fennek (GMG) @@ -448,6 +510,8 @@ Fennek (GMG) フェネック (GMG) Fennek (GMG) + "非洲小狐"防地雷反伏擊車 (榴彈機槍) + "非洲小狐"防地雷反伏击车 (榴弹机枪) Leopard 2SG @@ -462,6 +526,8 @@ Leopard 2SG レオパルド 2SG Leopard 2SG + "豹2型新加坡版"主戰坦克 + "豹2型新加坡版"主战坦克 FV510 Warrior @@ -476,6 +542,8 @@ FV510 Warrior FV510 ウォーリアー FV510 Warrior + FV510"戰士"步兵戰車 + FV510"战士"步兵战车 Pandur II @@ -490,6 +558,8 @@ Pandur II パンデュール II Pandur II + "潘德2型"裝甲運兵車 + "潘德2型"装甲运兵车 KamAZ Transport @@ -504,6 +574,8 @@ KamAZ da trasporto KamAZ 輸送型 KamAZ 수송 + "卡瑪斯"卡車 (運輸) + "卡玛斯"卡车 (运输) KamAZ Transport (covered) @@ -518,6 +590,8 @@ KamAZ da trasporto (coperto) KamAZ 輸送型 (幌) KamAZ 수송 (덮개) + "卡瑪斯"卡車 (運輸, 棚布) + "卡玛斯"卡车 (运输, 棚布) KamAZ Ammo @@ -532,6 +606,8 @@ KamAZ di rifornimento munizioni KamAZ 弾薬給弾型 KamAZ 탄약 + "卡瑪斯"卡車 (彈藥) + "卡玛斯"卡车 (弹药) KamAZ Fuel @@ -546,6 +622,8 @@ KamAZ di rifornimento carburante KamzAZ 燃料給油車 KamAZ 연료 + "卡瑪斯"卡車 (燃油) + "卡玛斯"卡车 (燃油) KamAZ Repair @@ -560,6 +638,8 @@ KamAZ riparatore KamzAZ 修理型 KamAZ 수리 + "卡瑪斯"卡車 (維修) + "卡玛斯"卡车 (维修) KamAZ Medical @@ -574,6 +654,8 @@ KamAZ Medico KamAZ 救急車 KamAZ 의료 + "卡瑪斯"卡車 (醫療) + "卡玛斯"卡车 (医疗) Punisher @@ -588,6 +670,8 @@ Punisher パニッシャー Punisher + "懲罰者"防地雷反伏擊車 + "惩罚者"防地雷反伏击车 Punisher (HMG) @@ -602,6 +686,8 @@ Punisher (HMG) パニッシャー (HMG) Punisher (HMG) + "懲罰者"防地雷反伏擊車 (重機槍) + "惩罚者"防地雷反伏击车 (重机枪) Punisher (GMG) @@ -616,6 +702,8 @@ Punisher (GMG) パニッシャー (GMG) Punisher (GMG) + "懲罰者"防地雷反伏擊車 (榴彈機槍) + "惩罚者"防地雷反伏击车 (榴弹机枪) T100 Black Eagle @@ -630,6 +718,8 @@ T100 Black Eagle T100 ブラック イーグル T100 Black Eagle + T100"黑鷹"主戰坦克 + T100"黑鹰"主战坦克 2S9 Sochor @@ -644,6 +734,8 @@ 2S9 Sochor 2S9 ソーカー 2S9 Sochor + 2S9"薩克爾"自走砲 + 2S9"萨克尔"自走炮 BM-2T Stalker @@ -658,6 +750,8 @@ BM-2T Stalker BM-2T ストーカー BM-2T Stalker + BM-2T"潛行者"步兵戰車 + BM-2T"潜行者"步兵战车 ZSU-35 Tigris @@ -672,6 +766,8 @@ ZSU-35 Tigris ZSU-35 ZSU-35 Tigris + ZSU-35"虎式"防空車 + ZSU-35"虎式"防空车 Otokar ARMA @@ -686,6 +782,8 @@ Otokar ARMA ティグリスOtokar アルマ Otokar ARMA + "奧托卡-阿爾默"裝甲運兵車 + "奥托卡-阿尔默"装甲运兵车 Typhoon Transport @@ -700,6 +798,8 @@ Typhoon da trasporto Typhoon 輸送型 Typhoon 수송 + "颱風"卡車 (運輸) + "台风"卡车 (运输) Typhoon Transport (covered) @@ -714,6 +814,8 @@ Typhoon da trasporto (coperto) Typhoon 輸送型 (幌) Typhoon 수송 (덮개) + "颱風"卡車 (運輸, 棚布) + "台风"卡车 (运输, 棚布) Typhoon Device @@ -728,6 +830,8 @@ Typhoon per dispositivo Typhoon デバイス型 Typhoon 장치 + "颱風"卡車 (精密設備) + "台风"卡车 (精密设备) Typhoon Ammo @@ -742,6 +846,8 @@ Typhoon di rifornimento munizioni Typhoon 弾薬給弾型 Typhoon 탄약 + "颱風"卡車 (彈藥) + "台风"卡车 (弹药) Typhoon Fuel @@ -756,6 +862,8 @@ Typhoon di rifornimento carburante Typhoon 燃料給油車 Typhoon 연료 + "颱風"卡車 (燃油) + "台风"卡车 (燃油) Typhoon Repair @@ -770,6 +878,8 @@ Typhoon riparatore Typhoon 修理型 Typhoon 수리 + "颱風"卡車 (維修) + "台风"卡车 (维修) Typhoon Medical @@ -784,6 +894,8 @@ Typhoon medico Typhoon 救急車 Typhoon 의료 + "颱風"卡車 (醫療) + "台风"卡车 (医疗) RAH-66 Comanche @@ -798,6 +910,8 @@ RAH-66 Comanche RAH-66 コマンチ RAH-66 Comanche + RAH-66"卡曼契"攻擊直升機 + RAH-66"卡曼契"攻击直升机 MH-6 Little Bird @@ -812,6 +926,8 @@ MH-6 Little Bird MH-6 リトル バード MH-6 Little Bird + MH-6"小鳥"運輸直升機 + MH-6"小鸟"运输直升机 AH-6 Little Bird @@ -826,6 +942,8 @@ AH-6 Little Bird AH-6 リトル バード AH-6 Little Bird + AH-6"小鳥"武裝直升機 + AH-6"小鸟"武装直升机 CH-47I Chinook @@ -840,6 +958,8 @@ CH-47I Chinook CH-47I チヌーク CH-47I Chinook + CH-47I"契努克"運輸直升機 + CH-47I"契努克"运输直升机 CH-47I Chinook (unarmed) @@ -854,6 +974,8 @@ CH-47I Chinook (desarmado) CH-47I チヌーク (非武装) CH-47I Chinook (비무장) + CH-47I"契努克"運輸直升機 (無武裝) + CH-47I"契努克"运输直升机 (无武装) A-10D Thunderbolt II @@ -868,6 +990,8 @@ A-10D Thunderbolt II A-10D サンダーボルト II A-10D Thunderbolt II + A-10D"雷霆二式"攻擊機 + A-10D"雷霆二式"攻击机 AW159 Wildcat @@ -882,6 +1006,8 @@ AW159 Wildcat AW159 ワイルドキャット AW159 Wildcat + AW159"野貓"直升機 + AW159"野猫"直升机 AW159 Wildcat (unarmed) @@ -896,6 +1022,8 @@ AW159 Wildcat (disarmato) AW159 ワイルドキャット (非武装) AW159 Wildcat (비무장) + AW159"野貓"直升機 (無武裝) + AW159"野猫"直升机 (无武装) AW101 Merlin @@ -910,6 +1038,8 @@ AW101 Merlin AW101 マーリン AW101 Merlin + AW101"灰背隼"運輸直升機 + AW101"灰背隼"运输直升机 L-159 ALCA @@ -924,6 +1054,8 @@ L-159 ALCA L-159 アルカ L-159 ALCA + L-159先進輕型戰鬥機 + L-159先进轻型战斗机 L-159 ALCA (CAS) @@ -938,6 +1070,8 @@ L-159 ALCA (CAS) L-159 アルカ (対地) L-159 ALCA (근접지원) + L-159先進輕型戰鬥機 (近空支援) + L-159先进轻型战斗机 (近空支援) L-159 ALCA (AA) @@ -952,6 +1086,8 @@ L-159 ALCA (AA) L-159 アルカ (対空) L-159 ALCA (대공) + L-159先進輕型戰鬥機 (空對空) + L-159先进轻型战斗机 (空对空) Ka-60 Kasatka @@ -966,6 +1102,8 @@ Ka-60 Kasatka Ka-60 カサートカ Ka-60 Kasatka + Ka-60"逆戟鯨"直升機 + Ka-60"逆戟鲸"直升机 Ka-60 Kasatka (Black & White) @@ -979,6 +1117,8 @@ Ka-60 Kasatka (blanco y negro) Ka-60 カサートカ (黒&白) Ka-60 Kasatka (검정 및 하양) + Ka-60"逆戟鯨"直升機 (黑&白) + Ka-60"逆戟鲸"直升机 (黑&白) Ka-60 Kasatka (unarmed) @@ -993,6 +1133,8 @@ Ka-60 Kasatka (disarmato) Ka-60 カサートカ (非武装) Ka-60 Kasatka (비무장) + Ka-60"逆戟鯨"直升機 (無武裝) + Ka-60"逆戟鲸"直升机 (无武装) Yak-130 @@ -1007,6 +1149,8 @@ Yak-130 Yak-130 ミトン Yak-130 + Yak-130"手套"攻擊機 + Yak-130"手套"攻击机 MD 500 @@ -1021,6 +1165,8 @@ MD 500 MD 500 MD 500 + MD 500"防衛者"直升機 + MD 500"防卫者"直升机 M4A1 SLAM @@ -1035,6 +1181,8 @@ M4A1 SLAM M4A1 SLAM M4A1 SLAM + M4A1指向性反裝甲地雷 + M4A1指向性反装甲地雷 M18A1 Claymore @@ -1049,6 +1197,8 @@ M18A1 Claymore Mina antiuomo M18A1 クレイモア M18A1 클레이모어 + M18A1"闊刀"地雷 + M18A1"阔刀"地雷 M183 Demolition Charge Assembly @@ -1063,6 +1213,8 @@ M183 Demolition Charge Assembly M183 梱包爆薬 M183 폭파 장약 조립 + M183炸藥包 + M183炸药包 M112 Demolition Block @@ -1077,6 +1229,8 @@ M112 Demolition Block M113 爆薬ブロック M112 폭파 블럭 + M112塑性炸藥 + M112塑性炸药 M67 Fragmentation Grenade @@ -1091,6 +1245,8 @@ M67 Granata a frammentazione M67 破片手榴弾 M67 세열 수류탄 + M67破片手榴彈 + M67破片手榴弹 M83 Smoke Grenade (White) @@ -1105,6 +1261,8 @@ M83 Granata fumogena (Bianco) M18 煙幕手榴弾 (白) M83 연막탄 (하양) + M83煙霧彈 (白色) + M83烟雾弹 (白色) M18 Smoke Grenade (Blue) @@ -1119,6 +1277,8 @@ M18 Granata fumogena (Blu) M18 煙幕手榴弾 (青) M18 연막탄 (파랑) + M18煙霧彈 (藍色) + M18烟雾弹 (蓝色) M18 Smoke Grenade (Green) @@ -1133,6 +1293,8 @@ M18 Granata fumogena (Verde) M18 煙幕手榴弾 (緑) M18 연막탄 (초록) + M18煙霧彈 (綠色) + M18烟雾弹 (绿色) M18 Smoke Grenade (Orange) @@ -1147,6 +1309,8 @@ M18 Granata fumogena (Arancione) M18 煙幕手榴弾 (橙) M18 연막탄 (주황) + M18煙霧彈 (橘色) + M18烟雾弹 (橘色) M18 Smoke Grenade (Purple) @@ -1161,6 +1325,8 @@ M18 Granata fumogena (Viola) M18 煙幕手榴弾 (紫) M18 연막탄 (보라) + M18煙霧彈 (紫色) + M18烟雾弹 (紫色) M18 Smoke Grenade (Red) @@ -1175,6 +1341,8 @@ M18 Granata fumogena (Rosso) M18 煙幕手榴弾 (赤) M18 연막탄 (빨강) + M18煙霧彈 (紅色) + M18烟雾弹 (红色) M18 Smoke Grenade (Yellow) @@ -1189,6 +1357,8 @@ M18 Granata fumogena (Giallo) M18 煙幕手榴弾 (黄) M18 연막탄 (노랑) + M18煙霧彈 (黃色) + M18烟雾弹 (黄色) M15 Anti-Tank Mine @@ -1203,6 +1373,8 @@ M15 Mine anticarro M15 対戦車地雷 M15 대전차지뢰 + M15反坦克地雷 + M15反坦克地雷 VS-50 Anti-Personnel Mine @@ -1217,6 +1389,8 @@ VS-50 Mine antiuomo VS-50 対人地雷 VS-50 대인지뢰 + VS-50反人員地雷 + VS-50反人员地雷 M26 Anti-Personnel Bounding Mine @@ -1231,6 +1405,8 @@ M26 Mine saltanti antiuomo M26 対人跳躍地雷 M26 대인도약지뢰 + M26反人員彈跳雷 + M26反人员弹跳雷 PMR-3 Anti-Personnel Tripwire Mine @@ -1245,6 +1421,8 @@ PMR-3 Mine antiuomo PMR-3 仕掛け型対人地雷 PMR-3 대인인계철선지뢰 + PMR-3反人員絆線雷 + PMR-3反人员绊线雷 P99 @@ -1259,6 +1437,8 @@ P99 P99 P99 + P99手槍 + P99手枪 MP-443 Grach @@ -1273,6 +1453,8 @@ MP-443 Grach MP-433 グラッチ MP-443 Grach + MP-443"烏鴉"手槍 + MP-443"乌鸦"手枪 Custom Covert II @@ -1287,6 +1469,8 @@ ACP-C2 カスタム コンバート II Custom Covert II + 特裝隱蔽Ⅱ型手槍 + 特装隐蔽Ⅱ型手枪 FNX-45 Tactical @@ -1301,6 +1485,8 @@ FNX-45 Tactical FNX-45 タクティカル FNX-45 Tactical + FNX-45戰術型手槍 + FNX-45战术型手枪 Chiappa Rhino 60DS @@ -1315,6 +1501,8 @@ Chiappa Rhino 6DS チアッパ ライノ 60DS Chiappa Rhino 60DS + 齊亞帕"犀牛"60DS左輪手槍 + 齐亚帕"犀牛"60DS左轮手枪 Taurus Judge @@ -1329,6 +1517,8 @@ Taurus Judge タウルス ジャッジ Taurus Judge + 金牛座"法官"信號槍 + 金牛座"法官"信号枪 NLAW @@ -1343,6 +1533,8 @@ NLAW NLAW NLAW + 次世代輕型反坦克導彈發射器 + 次世代轻型反坦克导弹发射器 RPG-32 @@ -1357,6 +1549,8 @@ RPG-32 RPG-32 RPG-32 + RPG-32"哈希姆"火箭發射器 + RPG-32"哈希姆"火箭发射器 Mini-Spike (AA) @@ -1371,6 +1565,8 @@ Mini-Spike (AA) ミニスパイク (対空) Mini-Spike (대공) + "迷你長釘"導彈發射器 (防空) + "迷你长钉"导弹发射器 (防空) Mini-Spike (AT) @@ -1385,6 +1581,8 @@ Mini-Spike (AT) ミニスパイク (対地) Mini-Spike (대전차) + "迷你長釘"導彈發射器 (反坦克) + "迷你长钉"导弹发射器 (反坦克) MX @@ -1399,6 +1597,8 @@ MX MX MX + MX突擊步槍 + MX突击步枪 MX (Black) @@ -1413,6 +1613,8 @@ MX (Nero) MX (黒) MX (검정) + MX突擊步槍 (黑色) + MX突击步枪 (黑色) MXC @@ -1427,6 +1629,8 @@ MXC MXC MXC + MXC卡賓步槍 + MXC卡宾步枪 MXC (Black) @@ -1441,6 +1645,8 @@ MXC (Nero) MXC (黒) MXC (검정) + MXC卡賓步槍 (黑色) + MXC卡宾步枪 (黑色) MX 3GL @@ -1455,6 +1661,8 @@ MX 3GL MX 3GL MX 3GL + MX突擊步槍 (3連裝榴彈) + MX突击步枪 (3连装榴弹) MX 3GL (Black) @@ -1469,6 +1677,8 @@ MX 3GL (Nero) MX 3GL (黒) MX 3GL (검정) + MX突擊步槍 (3連裝榴彈-黑色) + MX突击步枪 (3连装榴弹-黑色) MX LSW @@ -1483,6 +1693,8 @@ MX LSW MX LSW MX LSW + MX輕型機槍 + MX轻型机枪 MX LSW (Black) @@ -1497,6 +1709,8 @@ MX LSW (Nero) MX LSW (黒) MX LSW (검정) + MX輕型機槍 (黑色) + MX轻型机枪 (黑色) MXM @@ -1511,6 +1725,8 @@ MXM MXM MXM + MXM精準步槍 + MXM精准步枪 MXM (Black) @@ -1525,6 +1741,8 @@ MXM (Nero) MXM (黒) MXM (검정) + MXM精準步槍 (黑色) + MXM精准步枪 (黑色) KH2002 Sama @@ -1539,6 +1757,8 @@ KT2002 Katiba KH2002 サマ KH2002 Sama + KH2002"海白爾"突擊步槍 + KH2002"海白尔"突击步枪 KH2002C Sama @@ -1553,6 +1773,8 @@ KT2002C Katiba KH2002C サマ KH2002C Sama + KH2002C"海白爾"卡賓步槍 + KH2002C"海白尔"卡宾步枪 KH2002 Sama KGL @@ -1567,6 +1789,8 @@ KT2002 Katiba KGL KH2002 サマ KGL KH2002 Sama KGL + KH2002"海白爾"突擊步槍 (榴彈) + KH2002"海白尔"突击步枪 (榴弹) F2000 (Camo) @@ -1581,6 +1805,8 @@ F2000 (Camo) F2000 (迷彩) F2000 (위장) + F2000突擊步槍 (迷彩) + F2000突击步枪 (迷彩) F2000 @@ -1595,6 +1821,8 @@ F2000 F2000 F2000 + F2000突擊步槍 + F2000突击步枪 F2000 Tactical (Camo) @@ -1609,6 +1837,8 @@ F2000 Tactical (Camo) F2000 タクティカル (迷彩) F2000 Tactical (위장) + F2000戰術型突擊步槍 (迷彩) + F2000战术型突击步枪 (迷彩) F2000 Tactical @@ -1623,6 +1853,8 @@ F2000 Tactical F2000 タクティカル F2000 Tactical + F2000戰術型突擊步槍 + F2000战术型突击步枪 F2000 EGLM (Camo) @@ -1637,6 +1869,8 @@ F2000 EGLM (Camo) F2000 EGLM (迷彩) F2000 EGLM (위장) + F2000突擊步槍 (榴彈-迷彩) + F2000突击步枪 (榴弹-迷彩) F2000 EGLM @@ -1651,6 +1885,8 @@ F2000 EGLM F2000 EGLM F2000 EGLM + F2000突擊步槍 (榴彈) + F2000突击步枪 (榴弹) TAR-21 @@ -1665,6 +1901,8 @@ TAR-21 TAR-21 TAR-21 + TAR-21突擊步槍 + TAR-21突击步枪 CTAR-21 @@ -1679,6 +1917,8 @@ CTAR-21 CTAR-21 CTAR-21 + CTAR-21卡賓步槍 + CTAR-21卡宾步枪 TAR-21 EGLM @@ -1693,6 +1933,8 @@ TAR-21 EGLM TAR-21 EGLM TAR-21 EGLM + TAR-21突擊步槍 (榴彈) + TAR-21突击步枪 (榴弹) Vector SMG @@ -1707,6 +1949,8 @@ Vector SMG ベクター SMG Vector SMG + "維克特"衝鋒槍 + "维克特"冲锋枪 Scorpion Evo 3 A1 @@ -1721,6 +1965,8 @@ Scorpion Evo 3 A1 スコーピオン エボ 3 A1 Scorpion Evo 3 A1 + "蠍式"Evo 3 A1衝鋒槍 + "蝎式"Evo 3 A1冲锋枪 CPW @@ -1735,6 +1981,8 @@ CPW CPW CPW + 緊湊型個人衝鋒槍 + 紧凑型个人冲锋枪 RFB SDAR @@ -1749,6 +1997,8 @@ RFB SDAR RFB SDAR RFB SDAR + 犢牛式水陸兩用步槍 + 犊牛式水陆两用步枪 Stoner 99 LMG @@ -1763,6 +2013,8 @@ Stoner 99 LMG ストーナー 99 LMG Stoner 99 LMG + 斯通納99輕機槍 + 斯通纳99轻机枪 Negev NG7 @@ -1777,6 +2029,8 @@ Negev NG7 ネゲフ NG7 Negev NG7 + 內蓋夫NG7機槍 + 内盖夫NG7机枪 Mk14 Mod 1 EBR @@ -1791,6 +2045,8 @@ Mk14 Mod 1 EBR Mk14 Mod 1 EBR Mk14 Mod 1 EBR + Mk14一型增強型戰鬥步槍 + Mk14一型增强型战斗步枪 GM6 Lynx @@ -1805,6 +2061,8 @@ GM6 Lynx GM6 リンクス GM6 Lynx + GM6"天貓"反器材狙擊步槍 + GM6"天猫"反器材狙击步枪 GM6 Lynx (Camo) @@ -1819,6 +2077,8 @@ GM6 Lynx (Camo) GM6 リンクス (迷彩) GM6 Lynx (위장) + GM6"天貓"反器材狙擊步槍 (迷彩) + GM6"天猫"反器材狙击步枪 (迷彩) M200 Intervention @@ -1833,6 +2093,8 @@ M200 Intervention M200 インターベンション M200 Intervention + M200干預型狙擊步槍 + M200干预型狙击步枪 M200 Intervention (Camo) @@ -1847,6 +2109,8 @@ M200 Intervention (Camo) M200 インターベンション (迷彩) M200 Intervention (위장) + M200干預型狙擊步槍 (迷彩) + M200干预型狙击步枪 (迷彩) VS-121 @@ -1861,6 +2125,8 @@ VS-121 VS-121 VS-121 + VS-121狙擊步槍 + VS-121狙击步枪 Noreen "Bad News" ULR @@ -1875,6 +2141,8 @@ Noreen "Bad News" ULR ノレーン "バッド ニュース" ULR Noreen "Bad News" ULR + 諾琳"壞消息"極距狙擊步槍 + 诺琳"坏消息"极距狙击步枪 Noreen "Bad News" ULR (Black) @@ -1889,6 +2157,8 @@ Noreen "Bad News" ULR (Preto) ノレーン "バッド ニュース" ULR (黒) Noreen "Bad News" ULR (검정) + 諾琳"壞消息"極距狙擊步槍 (黑色) + 诺琳"坏消息"极距狙击步枪 (黑色) Noreen "Bad News" ULR (Camo) @@ -1903,6 +2173,8 @@ Noreen "Bad News" ULR (Camuflagem) ノレーン "バッド ニュース" ULR (迷彩) Noreen "Bad News" ULR (위장) + 諾琳"壞消息"極距狙擊步槍 (迷彩) + 诺琳"坏消息"极距狙击步枪 (迷彩) Noreen "Bad News" ULR (Sand) @@ -1917,6 +2189,8 @@ Noreen "Bad News" ULR (Deserto) ノレーン "バッド ニュース" ULR (砂地) Noreen "Bad News" ULR (모래) + 諾琳"壞消息"極距狙擊步槍 (沙色) + 诺琳"坏消息"极距狙击步枪 (沙色) SIG 556 @@ -1931,6 +2205,8 @@ SIG 556 SIG 556 SIG 556 + SIG 556精準步槍 + SIG 556精准步枪 SIG 556 (Black) @@ -1945,6 +2221,8 @@ SIG 556 (Preto) SIG 556 (黒) SIG 556 (검정) + SIG 556精準步槍 (黑色) + SIG 556精准步枪 (黑色) SIG 556 (Khaki) @@ -1959,6 +2237,8 @@ SIG 556 (Caqui) SIG 556 (土埃) SIG 556 (카키) + SIG 556精準步槍 (卡其色) + SIG 556精准步枪 (卡其色) SIG 556 (Sand) @@ -1973,6 +2253,8 @@ SIG 556 (Deserto) SIG 556 (砂地) SIG 556 (모래) + SIG 556精準步槍 (沙色) + SIG 556精准步枪 (沙色) SIG 556 (Camo) @@ -1987,6 +2269,8 @@ SIG 556 (Camuflagem) SIG 556 (迷彩) SIG 556 (위장) + SIG 556精準步槍 (迷彩) + SIG 556精准步枪 (迷彩) SIG 556 (Woodland) @@ -2001,6 +2285,8 @@ SIG 556 (Floresta) SIG 556 (森林) SIG 556 (우드랜드) + SIG 556精準步槍 (森林迷彩) + SIG 556精准步枪 (森林迷彩) SIG 556 (provisional) spotter @@ -2015,6 +2301,8 @@ SIG 556 (provisional) observador SIG 556 (仮) スポッター SIG 556 (임시) spotter + SIG 556精準步槍 (暫定) 觀測手 + SIG 556精准步枪 (暂定) 观测手 ASP-1 Kir @@ -2029,6 +2317,8 @@ ASP-1 Kir ASP-1 Kir ASP-1 Kir + ASP-1"基爾"消音狙擊步槍 + ASP-1"基尔"消音狙击步枪 ASP-1 Kir (Black) @@ -2043,6 +2333,8 @@ ASP-1 Kir (Preto) ASP-1 Kir (黒) ASP-1 Kir (검정) + ASP-1"基爾"消音狙擊步槍 (黑色) + ASP-1"基尔"消音狙击步枪 (黑色) ASP-1 Kir (Tan) @@ -2057,6 +2349,8 @@ ASP-1 Kir (Deserto) ASP-1 Kir (黄褐) ASP-1 Kir (황갈) + ASP-1"基爾"消音狙擊步槍 (黃褐色) + ASP-1"基尔"消音狙击步枪 (黄褐色) Cyrus @@ -2071,6 +2365,8 @@ Cyrus サイラス Cyrus + "居鲁士"狙擊步槍 + "居鲁士"狙击步枪 Cyrus (Black) @@ -2085,6 +2381,8 @@ Cyrus (Preto) サイラス (黒) Cyrus (검정) + "居鲁士"狙擊步槍 (黑色) + "居鲁士"狙击步枪 (黑色) Cyrus (Hex) @@ -2099,6 +2397,8 @@ Cyrus (Hex) サイラス (蜂巣) Cyrus (육각) + "居鲁士"狙擊步槍 (數位蜂巢迷彩) + "居鲁士"狙击步枪 (数位蜂巢迷彩) Cyrus (Tan) @@ -2113,6 +2413,8 @@ Cyrus (Deserto) サイラス (黄褐) Cyrus (황갈) + "居鲁士"狙擊步槍 (黃褐色) + "居鲁士"狙击步枪 (黄褐色) M14 @@ -2127,6 +2429,8 @@ M14 M14 M14 + M14精準步槍 + M14精准步枪 M14 (Camo) @@ -2141,6 +2445,8 @@ M14 (Camuflagem) M14 (迷彩) M14 (위장) + M14精準步槍 (迷彩) + M14精准步枪 (迷彩) M14 (Olive) @@ -2155,6 +2461,8 @@ M14 (Oliva) M14 (オリーブド ラブ) M14 (올리브) + M14精準步槍 (橄欖色) + M14精准步枪 (橄榄色) HK121 @@ -2169,6 +2477,8 @@ HK121 HK 121 HK121 + HK121中型機槍 + HK121中型机枪 HK121 (Hex) @@ -2183,6 +2493,8 @@ HK121 (Hex) HK 121 (蜂巣) HK121 (육각) + HK121中型機槍 (數位蜂巢迷彩) + HK121中型机枪 (数位蜂巢迷彩) HK121 (Tan) @@ -2197,6 +2509,8 @@ HK121 (Deserto) HK 121 (黄褐) HK121 (황갈) + HK121機槍 (黃褐色) + HK121机枪 (黄褐色) LWMMG @@ -2211,6 +2525,8 @@ LWMMG LWMMG LWMMG + 輕量化中型機槍 + 轻量化中型机枪 LWMMG (MTP) @@ -2225,6 +2541,8 @@ LWMMG (MTP) LWMMG (マルチカモ) LWMMG (MTP) + 輕量化中型機槍 (多地形迷彩) + 轻量化中型机枪 (多地形迷彩) LWMMG (Black) @@ -2239,6 +2557,8 @@ LWMMG (Preto) LWMMG (黒) LWMMG (검정) + 輕量化中型機槍 (黑色) + 轻量化中型机枪 (黑色) LWMMG (Sand) @@ -2253,6 +2573,8 @@ LWMMG (Deserto) LWMMG (砂地) LWMMG (모래) + 輕量化中型機槍 (沙色) + 轻量化中型机枪 (沙色) Jeep Wrangler @@ -2267,6 +2589,8 @@ Jeep Wrangler ジープ ラングラー Jeep Wrangler + "牧馬人"吉普車 + "牧马人"吉普车 Jeep Wrangler (Black) @@ -2281,6 +2605,8 @@ Jeep Wrangler (Preto) ジープ ラングラー (黒) Jeep Wrangler (검정) + "牧馬人"吉普車 (黑色) + "牧马人"吉普车 (黑色) Jeep Wrangler (Blue) @@ -2295,6 +2621,8 @@ Jeep Wrangler (Blu) ジープ ラングラー (青) Jeep Wrangler (파랑) + "牧馬人"吉普車 (藍色) + "牧马人"吉普车 (蓝色) Jeep Wrangler (Green) @@ -2309,6 +2637,8 @@ Jeep Wrangler (Verde) ジープ ラングラー (緑) Jeep Wrangler (초록) + "牧馬人"吉普車 (綠色) + "牧马人"吉普车 (绿色) Jeep Wrangler (Orange) @@ -2323,6 +2653,8 @@ Jeep Wrangler (Arancione) ジープ ラングラー (橙) Jeep Wrangler (주황) + "牧馬人"吉普車 (橘色) + "牧马人"吉普车 (橘色) Jeep Wrangler (Red) @@ -2337,6 +2669,8 @@ Jeep Wrangler (Rosso) ジープ ラングラー (赤) Jeep Wrangler (빨강) + "牧馬人"吉普車 (紅色) + "牧马人"吉普车 (红色) Jeep Wrangler (White) @@ -2351,6 +2685,8 @@ Jeep Wrangler (Bianco) ジープ ラングラー (白) Jeep Wrangler (하양) + "牧馬人"吉普車 (白色) + "牧马人"吉普车 (白色) Cessna TTx @@ -2365,6 +2701,8 @@ Cessna TTx セスナ TTx Cessna TTx + "賽斯納"TTx單引擎飛機 + "赛斯纳"TTx单引擎飞机 Cessna TTx (Racing) @@ -2379,6 +2717,8 @@ Cessna TTx (Racing) セスナ TTx (レース仕様) Cessna TTx (경주용) + "賽斯納"TTx單引擎飛機 (競速) + "赛斯纳"TTx单引擎飞机 (竞速) Burraq UCAV @@ -2393,6 +2733,8 @@ Burraq UCAV ブラーク UCAV Burraq UCAV + "柏拉格"空中無人戰鬥載具 + "柏拉格"空中无人战斗载具 QBZ-95-1 (Black) @@ -2407,6 +2749,8 @@ QBZ-95-1 (Preto) QBZ-95-1 (黒) QBZ-95-1 (검정) + QBZ-95-1式自動步槍 (黑色) + QBZ-95-1式自动步枪 (黑色) QBZ-95-1 (Green Hex) @@ -2421,6 +2765,8 @@ QBZ-95-1 (Hex Verde) QBZ-95-1 (緑蜂巣) QBZ-95-1 (초록육각) + QBZ-95-1式自動步槍 (綠色數位蜂巢迷彩) + QBZ-95-1式自动步枪 (绿色数位蜂巢迷彩) QBZ-95-1 (Hex) @@ -2435,6 +2781,8 @@ QBZ-95-1 (Hex) QBZ-95-1 (蜂巣) QBZ-95-1 (육각) + QBZ-95-1式自動步槍 (數位蜂巢迷彩) + QBZ-95-1式自动步枪 (数位蜂巢迷彩) QBZ-95-1 GL (Black) @@ -2449,6 +2797,8 @@ QBZ-95-1 GL (Preto) QBZ-95-1 GL (黒) QBZ-95-1 GL (검정) + QBZ-95-1式自動步槍 (榴彈-黑色) + QBZ-95-1式自动步枪 (榴弹-黑色) QBZ-95-1 GL (Green Hex) @@ -2463,6 +2813,8 @@ QBZ-95-1 GL (Hex Verde) QBZ-95-1 GL (緑蜂巣) QBZ-95-1 GL (초록육각) + QBZ-95-1式自動步槍 (榴彈-綠色數位蜂巢迷彩) + QBZ-95-1式自动步枪 (榴弹-绿色数位蜂巢迷彩) QBZ-95-1 GL (Hex) @@ -2477,6 +2829,8 @@ QBZ-95-1 GL (Hex) QBZ-95-1 GL (蜂巣) QBZ-95-1 GL (육각) + QBZ-95-1式自動步槍 (榴彈-數位蜂巢迷彩) + QBZ-95-1式自动步枪 (榴弹-数位蜂巢迷彩) QBZ-95-1 LSW (Black) @@ -2491,6 +2845,8 @@ QBZ-95-1 LSW (Preto) QBZ-95-1 LSW (黒) QBZ-95-1 LSW (검정) + QBZ-95-1式輕機槍 (黑色) + QBZ-95-1式轻机枪 (黑色) QBZ-95-1 LSW (Green Hex) @@ -2505,6 +2861,8 @@ QBZ-95-1 LSW (Hex Verde) QBZ-95-1 LSW (緑蜂巣) QBZ-95-1 LSW (초록육각) + QBZ-95-1式輕機槍 (綠色數位蜂巢迷彩) + QBZ-95-1式轻机枪 (绿色数位蜂巢迷彩) QBZ-95-1 LSW (Hex) @@ -2519,6 +2877,8 @@ QBZ-95-1 LSW (Hex) QBZ-95-1 LSW (蜂巣) QBZ-95-1 LSW (육각) + QBZ-95-1式輕機槍 (數位蜂巢迷彩) + QBZ-95-1式轻机枪 (数位蜂巢迷彩) QBU-88 (Black) @@ -2533,6 +2893,8 @@ QBU-88 (Preto) QBU-88 (黒) QBU-88 (검정) + QBU-88式狙擊步槍 (黑色) + QBU-88式狙击步枪 (黑色) QBU-88 (Green Hex) @@ -2547,6 +2909,8 @@ QBU-88 (Hex Verde) QBU-88 (緑蜂巣) QBU-88 (초록육각) + QBU-88式狙擊步槍 (綠色數位蜂巢迷彩) + QBU-88式狙击步枪 (绿色数位蜂巢迷彩) QBU-88 (Hex) @@ -2561,6 +2925,8 @@ QBU-88 (Hex) QBU-88 (蜂巣) QBU-88 (육각) + QBU-88式狙擊步槍 (數位蜂巢迷彩) + QBU-88式狙击步枪 (数位蜂巢迷彩) GM6 Lynx (Green Hex) @@ -2575,6 +2941,8 @@ GM6 Lynx (Hex Verde) GM6 リンクス (緑蜂巣) GM6 Lynx (초록육각) + GM6"天貓"反器材狙擊步槍 (綠色數位蜂巢迷彩) + GM6"天猫"反器材狙击步枪 (绿色数位蜂巢迷彩) M249 SPW @@ -2589,6 +2957,8 @@ M249 SPW M249 SPW M249 SPW + M249班用自動機槍 + M249班用自动机枪 M200 Intervention (Tropic) @@ -2603,6 +2973,8 @@ M200 Intervention (Tropico) M200 インターベンション (熱帯) M200 Intervention (열대) + M200干預型狙擊步槍 (熱帶迷彩) + M200干预型狙击步枪 (热带迷彩) MP5K @@ -2617,6 +2989,8 @@ MP5K MP5K MP5K + MP5K衝鋒槍 + MP5K冲锋枪 HK416A5 11" (Black) @@ -2631,6 +3005,8 @@ HK416A5 11" (Preto) HK416A5 11" (黒) HK416A5 11" (검정) + HK416A5 11"突擊步槍 (黑色) + HK416A5 11"突击步枪 (黑色) HK416A5 11" (Khaki) @@ -2645,6 +3021,8 @@ HK416A5 11" (Caqui) HK416A5 11" (土埃) HK416A5 11" (카키) + HK416A5 11"突擊步槍 (卡其色) + HK416A5 11"突击步枪 (卡其色) HK416A5 11" (Sand) @@ -2659,6 +3037,8 @@ HK416A5 11" (Deserto) HK416A5 11" (砂地) HK416A5 11" (모래) + HK416A5 11"突擊步槍 (沙色) + HK416A5 11"突击步枪 (沙色) HK416A5 11" GL (Black) @@ -2673,6 +3053,8 @@ HK416A5 11" GL (Preto) HK416A5 11" GL (黒) HK416A5 11" GL (검정) + HK416A5 11"突擊步槍 (榴彈-黑色) + HK416A5 11"突击步枪 (榴弹-黑色) HK416A5 11" GL (Khaki) @@ -2687,6 +3069,8 @@ HK416A5 11" GL (Caqui) HK416A5 11" GL (土埃) HK416A5 11" GL (카키) + HK416A5 11"突擊步槍 (榴彈-卡其色) + HK416A5 11"突击步枪 (榴弹-卡其色) HK416A5 11" GL (Sand) @@ -2701,6 +3085,8 @@ HK416A5 11" GL (Deserto) HK416A5 11" GL (砂地) HK416A5 11" GL (모래) + HK416A5 11"突擊步槍 (榴彈-沙色) + HK416A5 11"突击步枪 (榴弹-沙色) HK416A5 14.5" (Black) @@ -2715,6 +3101,8 @@ HK416A5 14.5" (Preto) HK416A5 14.5" (黒) HK416A5 14.5" (검정) + HK416A5 14.5"突擊步槍 (黑色) + HK416A5 14.5"突击步枪 (黑色) HK416A5 14.5" (Khaki) @@ -2729,6 +3117,8 @@ HK416A5 14.5" (Caqui) HK416A5 14.5" (土埃) HK416A5 14.5" (카키) + HK416A5 14.5"突擊步槍 (卡其色) + HK416A5 14.5"突击步枪 (卡其色) HK416A5 14.5" (Sand) @@ -2743,6 +3133,8 @@ HK416A5 14.5" (Deserto) HK416A5 14.5" (砂地) HK416A5 14.5" (모래) + HK416A5 14.5"突擊步槍 (沙色) + HK416A5 14.5"突击步枪 (沙色) HK417A2 20" (Black) @@ -2757,6 +3149,8 @@ HK417A2 20" (Preto) HK417A2 20" (黒) HK417A2 20" (검정) + HK417A2 20"突擊步槍 (黑色) + HK417A2 20"突击步枪 (黑色) HK417A2 20" (Khaki) @@ -2771,6 +3165,8 @@ HK417A2 20" (Caqui) HK417A2 20" (土埃) HK417A2 20" (카키) + HK417A2 20"突擊步槍 (卡其色) + HK417A2 20"突击步枪 (卡其色) HK417A2 20" (Sand) @@ -2785,6 +3181,8 @@ HK417A2 20" (Deserto) HK417A2 20" (砂地) HK417A2 20" (모래) + HK417A2 20"突擊步槍 (沙色) + HK417A2 20"突击步枪 (沙色) RPG-32 (Green Hex) @@ -2799,6 +3197,8 @@ RPG-32 (Hex Verde) RPG-32 (緑蜂巣) RPG-32 (초록육각) + RPG-32火箭發射器 (綠色數位蜂巢迷彩) + RPG-32火箭发射器 (绿色数位蜂巢迷彩) P99 (Khaki) @@ -2813,6 +3213,8 @@ P99 (Caqui) P99 (カーキ) P99 (카키) + P99半自動手槍 (卡其色) + P99半自动手枪 (卡其色) Makarov PM @@ -2827,6 +3229,8 @@ Makarov PM マカロフ PM Makarov PM + "馬卡洛夫"手槍 + "马卡洛夫"手枪 diff --git a/addons/rearm/stringtable.xml b/addons/rearm/stringtable.xml index 3dd201f567a..1995bfec819 100644 --- a/addons/rearm/stringtable.xml +++ b/addons/rearm/stringtable.xml @@ -13,6 +13,8 @@ Options de réarmement 再武装設定 재보급 설정 + 整装设定 + 整裝設定 This module allows you to tweak rearm system settings. @@ -26,6 +28,8 @@ Ce module autorise l'amélioration du système de réarmement. 再武装システムの設定を微調整します。 이 모듈은 재보급시의 설정을 바꿀수 있게해줍니다. + 此模块允许你调整整装系统设定 + 此模塊允許你調整整裝系統設定 Rearm Amount @@ -39,6 +43,8 @@ Quantité à réarmer 再武装できる量 재보급 양 + 整装所需时间 + 整裝所需時間 How fast should a vehicle be rearmed? @@ -52,6 +58,8 @@ A quelle vitesse devrait être réarmé un véhicule ? 車両を再武装する速さを設定しますか? 차량을 얼마나 빨리 재보급 시킵니까? + 载具多快会整装完毕? + 載具多快會整裝完畢? Entire Vehicle @@ -65,6 +73,8 @@ Véhicule entier 対象の車両 모든 차량 + 整个载具 + 整個載具 Entire Magazine @@ -78,6 +88,8 @@ Chargeur entier 対象の弾薬 모든 탄창 + 整个弹匣 + 整個彈匣 Amount based on caliber @@ -91,66 +103,88 @@ Quantité basée sur le calibre 口径に基づいた量 구경에 따라 수량 설정 + 基于口径决定所耗时间 + 基於口徑決定所耗時間 Ammunition supply Munitionsvorat Scorta munizioni 弾薬の供給 + 弹药补给 + 彈藥補給 How much ammunition does an ammo truck carry? Wie viel Munition transportiert ein Munitionslaster? Quante munizioni può trasportare un camion? 弾薬トラックがどの位の弾薬を供給できるようにしますか? + 弹药卡车会携带多少的弹药? + 彈藥卡車會攜帶多少的彈藥? Unlimited ammo supply Unbegrenzter Munitionsvorat Scorta munizioni infinita 無制限供給 + 无限弹药 + 無限彈藥 Limited ammo supply based on caliber Begrenzter, kaliberabhängiger Munitionsvorat Scorta munizioni limitata in base al calibro 口径に基づいた限定的供給 + 基于口径限制弹药数量 + 基於口徑限制彈藥數量 Only specific Magazines Nur bestimmte Magazine Solo specifici caricatori 特定の弾薬のみ + 只有指定的弹药 + 只有指定的彈藥 Check remaining ammunition Verbleibende Munition prüfen Controlla munizioni rimanenti 残弾薬を確認 + 检查剩余的弹药 + 檢查剩餘的彈藥 Checking remaining ammunition... Überprüfe verbleibende Munition... Controllando le munizioni rimanenti 残弾薬を確認しています・・・ + 正在检查剩余的弹药中... + 正在檢查剩餘的彈藥中... There is ammunition worth %1 points left. Es ist noch Munition für %1 Punkte übrig. E' presente una penalità delle munizioni %1 punti rimanenti. この弾薬は%1残っている + 还剩下%1多的弹药. + 還剩下%1多的彈藥. The following ammunition is left:%1 Folgende Munition ist übrig:%1 Mancano le seguenti:%1 この弾薬の残りは:%1 + 以下剩余的弹药:%1 + 以下剩餘的彈藥:%1 There is no ammunition left. Es ist keine Munition übrig. Non ci sono munizioni rimanenti. 弾薬は残っていません。 + 已经没有剩余的弹药了. + 已經沒有剩餘的彈藥了. Rearm @@ -164,6 +198,8 @@ Réarmer 再武装 재보급 + 整装 + 整裝 Rearming %1 with %2... @@ -177,6 +213,8 @@ Réarmement de %1 avec %2... %1を%2により再武装する。 %2을 %1에 재보급중... + %2正整装到%1中... + %2正整裝到%1中... Rearming %1... @@ -190,6 +228,8 @@ Réarmement de %1... %1を再武装中・・・ %1 재보급중... + 整装%1中... + 整裝%1中... Taking %1 for %2... @@ -203,6 +243,8 @@ Prend %1 pour %2... %1を%2のために取得しています・・・ %2를 위해 %1 가져오는중... + 拿取%1给%2中... + 拿取%1給%2中... Take ammo @@ -216,6 +258,8 @@ Prendre la munition 弾薬をとる 탄약 가지기 + 取得弹药 + 取得彈藥 Pick up ammo @@ -229,6 +273,8 @@ Ramasser la munition 弾薬を拾う 탄약 줍기 + 捡起弹药 + 撿起彈藥 Store ammo @@ -242,6 +288,8 @@ Stocker la munition 弾薬を戻す 탄약 보관하기 + 储存弹药 + 儲存彈藥 Storing %1 in %2... @@ -255,6 +303,8 @@ Stocke %1 dans %2... %1を%2へ戻しています・・・ %2에 %1 보관중... + 储存%1到%2中... + 儲存%1到%2中... Picking up ammo... @@ -267,6 +317,8 @@ Ramassage des munitions... 弾薬を拾っている・・・ 탄약 줍는중... + 捡起弹药中... + 撿起彈藥中... Rearmed %1 rounds of %2 on %3 @@ -280,6 +332,8 @@ %1 balles réarmées de %2 dans %3 %1発の%2を%3から装填した %3에 2%의 %1 탄약 재보급 + 整装了%1发%2到%3上 + 整裝了%1發%2到%3上 Smoke Screen @@ -293,6 +347,8 @@ Pantalla de humo 煙幕弾 연막 차장 + 烟幕弹 + 煙幕彈 Flares @@ -306,6 +362,8 @@ Bengalas フレア 기만체 + 热焰弹 + 熱焰彈 30mm HEI @@ -319,6 +377,8 @@ 30mm HEI 30mm 焼夷りゅう弾 30mm 고폭소이탄 + 30mm 高爆燃烧弹 + 30mm 高爆燃燒彈 30mm HEI-T @@ -332,6 +392,8 @@ 30mm HEI-T 30mm 焼夷曳光りゅう弾 30mm 고폭소이예광탄 + 30mm 高爆燃烧曳光弹 + 30mm 高爆燃燒曳光彈 AIM-9 Sidewinder @@ -345,6 +407,8 @@ AIM-9 Sidewinder AIM-9 サイドワインダー AIM-9 Sidewinder + AIM-9 响尾蛇 + AIM-9 響尾蛇 Wympel R-73 @@ -358,6 +422,8 @@ Wympel R-73 ヴィンペル R-73 Vympel R-73 + Wympel R-73 + Wympel R-73 AGM-65 Maverick @@ -371,6 +437,8 @@ AGM-65 Maverick AGM-65 マーベリック AGM-65 Maverick + AGM-65 小牛 + AGM-65 小牛 Kh-25MTP @@ -384,6 +452,8 @@ Kh-25MTP Kh-25MTP Kh-25MTP + Kh-25MTP + Kh-25MTP Hydra 70 HE @@ -397,6 +467,8 @@ Hydra 70 HE ハイドラ 70 りゅう弾 Hydra 70 고폭탄 + 九头蛇 70 高爆弹 + 九頭蛇 70 高爆彈 S-8 HE @@ -410,6 +482,8 @@ S-8 HE S-8 りゅう弾 S-8 고폭탄 + S-8 高爆弹 + S-8 高爆彈 Hydra 70 AP @@ -423,6 +497,8 @@ Hydra 70 AP ハイドラ 70 徹甲弾 Hydra 70 철갑탄 + 九头蛇 70 反人员弹 + 九頭蛇 70 反人員彈 S-8 AP @@ -436,6 +512,8 @@ S-8 AP S-8 徹甲弾 S-8 철갑탄 + S-8 反人员弹 + S-8 反人員彈 GBU-12 @@ -449,6 +527,8 @@ GBU-12 GBU-12 GBU-12 + GBU-12 + GBU-12 FAB-250M-54 @@ -462,6 +542,8 @@ FAB-250M-54 FAB-250M-54 FAB-250M-54 + FAB-250M-54 + FAB-250M-54 diff --git a/addons/refuel/stringtable.xml b/addons/refuel/stringtable.xml index 17ffa4d0cad..6d44a90db7a 100644 --- a/addons/refuel/stringtable.xml +++ b/addons/refuel/stringtable.xml @@ -13,6 +13,8 @@ Réglages de ravitaillement 給油設定 재급유 설정 + 加油设定 + 加油設定 Flow Rate @@ -26,6 +28,8 @@ Vitesse du ravitaillement 流量 주유량 + 油料流量 + 油料流量 How fast should a vehicle be refueled? @@ -39,6 +43,8 @@ A quelle vitesse devrait être ravitaillé un véhicule ? どのくらいの速さで車両へ給油しますか? 차량이 얼마나 빨리 재급유될 수 있습니까? + 载具多快会加油完毕? + 載具多快會加油完畢? Refuel @@ -52,6 +58,8 @@ Ravitaillement 給油 재급유 + 加油 + 加油 Take fuel nozzle @@ -65,6 +73,8 @@ Prendre la pompe 給油ノズルを取る 주유기 획득 + 拿取燃料喷嘴 + 拿取燃料噴嘴 Taking fuel nozzle... @@ -78,6 +88,8 @@ Prise de la pompe... 給油ノズルを取っている・・・ 주유기 획득중... + 拿取燃料喷嘴中... + 拿取燃料噴嘴中... Connect fuel nozzle @@ -91,6 +103,8 @@ Connecter la pompe 給油ノズルを接続する 주유기 꼽기 + 连接燃料喷嘴 + 連接燃料噴嘴 Connecting fuel nozzle... @@ -104,6 +118,8 @@ Connection de la pompe... 給油ノズルを接続している・・・ 주유기 꼽는중... + 连结燃料喷嘴中... + 連結燃料噴嘴中... Disconnect fuel nozzle @@ -117,6 +133,8 @@ Déconnecter la pompe 給油ノズルを外した 주유기 뽑기 + 断开燃料喷嘴 + 斷開燃料噴嘴 Connect @@ -130,6 +148,8 @@ Connecter 接続 꼽기 + 连结 + 連結 Check remaining fuel @@ -143,6 +163,8 @@ Vérifier le carburant restant 残燃料を見る 남은 연료 확인 + 检查剩余燃料 + 檢查剩餘燃料 Checking remaining fuel... @@ -156,6 +178,8 @@ Vérifie le carburant restant... 残燃料を見ている・・・ 남은 연료 확인중... + 检查剩余燃料中... + 檢查剩餘燃料中... There are %1 liters left. @@ -169,6 +193,8 @@ Il reste %1 litres. 後 %1 リットル残っている。 %1 리터 남음 + 剩下%1公升的燃料. + 剩下%1公升的燃料. There is no fuel left. @@ -182,6 +208,8 @@ Il n'y a plus de carburant. もう燃料は残っていない。 연료 없음. + 没有剩余的燃料 + 沒有剩餘的燃料 Cancel @@ -195,6 +223,8 @@ Annuler 中止 취소 + 取消 + 取消 Failed @@ -208,6 +238,8 @@ Echoué 失敗 실패 + 失败 + 失敗 Stop fueling @@ -221,6 +253,8 @@ Arrêter le ravitaillement 給油をやめる 그만 재급유하기 + 停止加油 + 停止加油 Stopping fueling... @@ -234,6 +268,8 @@ Arrête le ravitaillement... 給油をやめている・・・ 재급유 그만하는중... + 停止加油中... + 停止加油中... Start fueling @@ -247,6 +283,8 @@ Débute le ravitaillement 給油を始める 재급유 시작 + 开始加油 + 開始加油 Starting fueling... @@ -260,6 +298,8 @@ Début du ravitaillement... 給油を始めている・・・ 재급유 시작중... + 开始加油中... + 開始加油中... %1 Liters fueled @@ -273,6 +313,8 @@ %1 litres ravitaillés %1 リッターを給油した %1 리터 재급유됨 + 已加入%1公升的燃料 + 已加入%1公升的燃料 The fuel source is empty. @@ -286,6 +328,8 @@ La source de carburant est vide. 給油元は空です。 재급유처가 비었음. + 燃料来源已空. + 燃料來源已空. Maximum fuel hose length reached. @@ -299,6 +343,8 @@ Tuyau tendu au maximum 給油ホースはもうこれ以上届かない。 주유기 호스 최대 거리에 도달함. + 已加满至最大油量. + 已加滿至最大油量. Fueling completed @@ -312,6 +358,8 @@ Ravitaillement terminé 給油完了 재급유 완료함 + 加油完毕 + 加油完畢 Fueling stopped @@ -325,6 +373,8 @@ Ravitaillement stoppé 給油を止めた 재급유 멈춤 + 已停止加油 + 已停止加油 Fueling started @@ -338,6 +388,8 @@ Ravitaillement débuté 給油を始めた 재급유 시작함 + 已开始加油 + 已開始加油 Return fuel nozzle @@ -351,6 +403,8 @@ Retourner la pompe 給油ノズルを戻す 주유기 반환 + 放回燃料喷嘴 + 放回燃料噴嘴 Returning fuel nozzle... @@ -364,6 +418,8 @@ Retourne la pompe 給油ノズルを戻している・・・ 주유기 반환중 + 放回燃料喷嘴中... + 放回燃料噴嘴中... Check fuel counter @@ -377,6 +433,8 @@ Vérifier le compteur 燃料計を見る 연로카운터 확인 + 检查燃料表 + 檢查燃料表 Checking fuel counter... @@ -390,6 +448,8 @@ Vérification du compteur... 燃料計を見ている・・・ 연료카운터 확인중... + 检查燃料表中... + 檢查燃料表中... %1 liters have been fueled. @@ -403,6 +463,8 @@ %1 litres ont été écoulés. %1 リッターがある %1 리터가 재급유되었습니다. + 已加入%1公升. + 已加入%1公升. Refuel hose length @@ -410,6 +472,8 @@ Reabastecer longitud de manguera Rifiuta lungezza tubo 給油ホースの長さ + 加油软管长度 + 加油軟管長度 diff --git a/addons/reload/stringtable.xml b/addons/reload/stringtable.xml index 4454bd3f9ac..eb5e46bcce5 100644 --- a/addons/reload/stringtable.xml +++ b/addons/reload/stringtable.xml @@ -14,6 +14,8 @@ Conferir munição ao recarregar a arma 再装填された武器の弾薬を確認 재장전시 장탄수 확인 + 在重新装填时检查弹药 + 在重新裝填時檢查彈藥 Check the ammo in your new magazine on magazine reload. @@ -28,6 +30,8 @@ Confere a munição no seu novo carregador ao recarregar a arma あたらしく装填された弾倉の弾薬を確認します。 재장전시 새탄창에 있는 탄약을 확인합니다. + 在重新装填时检查新弹匣上的弹药. + 在重新裝填時檢查新彈匣上的彈藥. Check Ammo @@ -42,6 +46,8 @@ Проверить боеприпасы 弾薬を確認 장탄수 확인 + 检查弹药 + 檢查彈藥 Ammo @@ -56,6 +62,8 @@ Боеприпасы 弾薬 장탄수 + 弹药 + 彈藥 Link belt @@ -70,6 +78,8 @@ Ligar cintos de munição ベルト リンク 벨트 연결 + 连接弹链 + 連接彈鏈 Linking belt... @@ -84,6 +94,8 @@ Ligando cintos... ベルトをつなげている・・・ 벨트 연결중... + 连接弹链中... + 連接彈鏈中... diff --git a/addons/reloadlaunchers/stringtable.xml b/addons/reloadlaunchers/stringtable.xml index c9ffa3cef87..6096f362be2 100644 --- a/addons/reloadlaunchers/stringtable.xml +++ b/addons/reloadlaunchers/stringtable.xml @@ -14,6 +14,8 @@ Recarregar lançador ランチャーを装填 무기 재장전 + 装载发射器 + 裝載發射器 Loading launcher... @@ -28,6 +30,8 @@ Recarregando lançador... ランチャーを装填している・・・ 무기 재장전중... + 装载发射器中... + 裝載發射器中... Launcher loaded @@ -42,6 +46,8 @@ Lançador Carregado ランチャーの装填完了 무기 재장전됨 + 发射器装载完毕 + 發射器裝載完畢 Load %1 @@ -56,6 +62,8 @@ Recarregar %1 %1 へ装填 %1 장전 + 装载%1 + 裝載%1 diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index 0a001968e77..ea34a04f9c2 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -14,6 +14,8 @@ Запасная гусеница 予備履帯 예비 궤도 + 备用履带 + 備用履帶 Spare Wheel @@ -28,6 +30,8 @@ Запасное колесо 予備タイヤ 예비 바퀴 + 备用轮胎 + 備用輪胎 Change Wheel @@ -42,6 +46,8 @@ Vyměnit kolo タイヤを変える 바퀴 교체 + 更换轮胎 + 更換輪胎 Replacing Wheel... @@ -55,6 +61,8 @@ Remplacement de la roue... タイヤを交換中・・・ 바퀴 교체중... + 更换轮胎中... + 更換輪胎中... Wheel replaced @@ -68,6 +76,8 @@ Roue remplacée タイヤを履き替え 바퀴 교체됨 + 轮胎更换完毕 + 輪胎更換完畢 Remove Wheel @@ -82,6 +92,8 @@ Снять колесо タイヤを外す 바퀴 제거 + 卸下轮胎 + 卸下輪胎 Removing Wheel... @@ -95,6 +107,8 @@ Démontage de la roue... タイヤを外している・・ 바퀴 제거중... + 卸下轮胎中... + 卸下輪胎中... Wheel removed @@ -108,6 +122,8 @@ Roue démontée タイヤを外した 바퀴 제거됨 + 轮胎卸下完毕 + 輪胎卸下完畢 Change Track @@ -121,6 +137,8 @@ Changer la chenille 履帯を変える 궤도 교체 + 更换履带 + 更換履帶 Replacing Track... @@ -134,6 +152,8 @@ Remplacement de la chenille... 履帯を交換中・・・ 궤도 교체중... + 更换履带中... + 更換履帶中... Track replaced @@ -147,6 +167,8 @@ Chenille remplacée 履帯を交換した 궤도 교체됨 + 履带更换完毕 + 履帶更換完畢 Remove Track @@ -160,6 +182,8 @@ Enlever la chenille 履帯を外す 궤도 제거 + 卸下履带 + 卸下履帶 Removing Track... @@ -173,6 +197,8 @@ Enlèvement de la chenille... 履帯を外している・・・ 궤도 제거중... + 卸下履带中... + 卸下履帶中... Track removed @@ -186,6 +212,8 @@ Chenille enlevée 履帯を外した 궤도 제거됨 + 履带卸下完毕 + 履帶卸下完畢 Full Repair @@ -199,6 +227,8 @@ Réparations complètes 完全に修理 완전수리 + 完整维修 + 完整維修 Repairing Vehicle... @@ -212,6 +242,8 @@ Réparation du véhicule... 車両を修理中・・・ 차량 수리중... + 维修载具中... + 維修載具中... Full Repair Locations @@ -225,6 +257,8 @@ Lieu de réparation complète 完全修理をできる場所 완전수리 구역 + 完整维修地点 + 完整維修地點 At what locations can a vehicle be fully repaired? @@ -238,6 +272,8 @@ Où peuvent être réparés complètement les véhicules ? どのような場所で車両の完全な修理を出来るようにしますか? 어느 구역에서 차량을 완전히 수리할 수 있게 합니까? + 什么位置可以完整维修载具? + 什麼位置可以完整維修載具? Allow Full Repair @@ -251,6 +287,8 @@ Autoriser les réparations complètes. 完全な修理をさせる 완전 수리 활성화 + 允许完整维修 + 允許完整維修 Who can perform a full repair on a vehicle? @@ -264,6 +302,8 @@ Qui peut faire une réparation complète ? 誰が車両の完全な修理を出来るようにしますか? 누가 완전 수리를 할 수 있습니까? + 谁可以完整维修载具? + 誰可以完整維修載具? Add Spare Parts @@ -277,6 +317,8 @@ Ajouter des pièces de rechange 予備部品を追加 예비 부품 더하기 + 添加备件 + 添加備件 Add spare parts to vehicles (requires Cargo component)? @@ -290,6 +332,8 @@ Ajouter des pièces de rechage aux véhicules ? (à besoin du système de cargaison) 車両へ予備部品を追加しますか(カーゴ コンポーネントが必要)? 차량에 예비 부품을 더합니까?(짐칸 요소 필요) + 添加载具备件 (需相关货物组件)? + 添加載具備件 (需相關貨物組件)? Repair @@ -304,6 +348,8 @@ Ремонт 修理 수리 + 维修 + 維修 Display text on repair @@ -317,6 +363,8 @@ Afficher du texte pendant la réparation 修理時に文章で通知する 수리시 화면에 글자 표시 + 显示维修文本 + 顯示維修文本 Display a notification whenever you repair a vehicle @@ -330,6 +378,8 @@ Afficher une notification lorsque l'on répare un véhicule あなたが車両の修理を始めると、画面に通知を出します 수리시 화면에 글자로 알림이 뜹니다 + 每当维修载具时显示通知 + 每當維修載具時顯示通知 Repairing... @@ -344,6 +394,8 @@ Ремонтируем... 修理中・・・ 수리중... + 维修中... + 維修中... Repairing %1... @@ -358,6 +410,8 @@ Ремонтируем %1... %1 を修理中・・・ %1 수리중... + 维修%1中... + 維修%1中... Repaired %1 @@ -372,6 +426,8 @@ %1 отремонтирован %1 を修理した %1 수리됨 + 已维修%1 + 已維修%1 Fully repaired part @@ -385,6 +441,8 @@ Pièce entièrement réparée 部分的な完全な修理 부분 완벽히 수리됨 + 完整维修部分 + 完整維修部分 Partially repaired %1 @@ -398,6 +456,8 @@ %1 pratiquement réparée %1 を部分的に修理した %1 부분적으로 수리됨 + %1已完成部分维修 + %1已完成部分維修 Fully repaired %1 @@ -411,6 +471,8 @@ %1 entièrement réparée %1 を完全に修理した %1 완전히 수리됨 + %1已完整维修 + %1已完整維修 Partially repaired %1 @@ -424,6 +486,8 @@ %1 pratiquement réparée %1 を部分的に修理した %1 부분적으로 수리됨 + %1已完成部分维修 + %1已完成部分維修 Body @@ -438,6 +502,8 @@ Кузов 車体 몸체 + 车身 + 車身 Hull @@ -452,6 +518,8 @@ Корпус 機体 선체 + 车壳 + 車殼 Engine @@ -466,6 +534,8 @@ Двигатель エンジン 엔진 + 引擎 + 引擎 Left Horizontal Stabilizer @@ -479,6 +549,8 @@ Linkes Höhenleitwerk 左側の水平安定機 왼쪽 수평안정판 + 左侧悬挂稳定 + 左側懸掛穩定 Right Horizontal Stabilizer @@ -492,6 +564,8 @@ Rechtes Höhenleitwerk 右側の水平安定機 오른쪽 수평안정판 + 右侧悬挂稳定 + 右側懸掛穩定 Vertical Stabilizer @@ -505,6 +579,8 @@ Seitenleitwerk 車両安定器 수직 안정판 + 垂直稳定 + 垂直穩定 Fuel Tank @@ -519,6 +595,8 @@ Топливный бак 燃料タンク 연료 탱크 + 油箱 + 油箱 Transmission @@ -532,6 +610,8 @@ Instruments 変速機 변속기 + 变速箱 + 變速箱 Gear @@ -545,6 +625,8 @@ Trains d'attérissage ギア 기어 + 齿轮 + 齒輪 Starter @@ -558,6 +640,8 @@ Démarreur スターター 점화기 + 发动机 + 發動機 Tail @@ -571,6 +655,8 @@ Queue 尾翼 꼬리 + 尾翼 + 尾翼 Pitot Tube @@ -584,6 +670,8 @@ Sonde pitot ピトー管 동압관 + 空速管 + 空速管 Static Port @@ -597,6 +685,8 @@ Port statique スタティック ポート 정압공 + 静态端口 + 靜態端口 Ammo @@ -610,6 +700,8 @@ Munitions 弾薬 탄약 + 弹药 + 彈藥 Turret @@ -624,6 +716,8 @@ Башню 砲塔 포탑 + 炮塔 + 砲塔 Gun @@ -638,6 +732,8 @@ Пушку + + Missiles @@ -651,6 +747,8 @@ Missiles ミサイル 미사일 + 导弹 + 導彈 Left Track @@ -665,6 +763,8 @@ Левую гусеницу 左の履帯 왼쪽 궤도 + 左履带 + 左履帶 Right Track @@ -679,6 +779,8 @@ Правую гусеницу 右の履帯 오른쪽 궤도 + 右履带 + 右履帶 Left Front Wheel @@ -693,6 +795,8 @@ Левое переднее колесо 左の前輪 왼쪽 앞바퀴 + 左前轮 + 左前輪 Right Front Wheel @@ -707,6 +811,8 @@ Правое переднее колесо 右の前輪 오른쪽 앞바퀴 + 右前轮 + 右前輪 Second Left Front Wheel @@ -721,6 +827,8 @@ Второе переднее левое колесо 左の 2 つめの前輪 왼쪽 두번째 바퀴 + 第二左前轮 + 第二左前輪 Second Right Front Wheel @@ -735,6 +843,8 @@ Второе правое переднее колесо 右の 2 つめの前輪 오른쪽 두번째 바퀴 + 第二右前轮 + 第二右前輪 Left Middle Wheel @@ -749,6 +859,8 @@ Левое среднее колесо 左の中央の前輪 왼쪽 가운데 바퀴 + 左中轮 + 左中輪 Right Middle Wheel @@ -763,6 +875,8 @@ Правое среднее колесо 右の中央の前輪 오른족 가운데 바퀴 + 右中轮 + 右中輪 Left Rear Wheel @@ -777,6 +891,8 @@ Левое заднее колесо 左の後輪 왼쪽 뒤쪽 바퀴 + 左后轮 + 左後輪 Right Rear Wheel @@ -791,6 +907,8 @@ Правое заднее колесо 右の後 오른쪽 뒤쪽 바퀴 + 右后轮 + 右後輪 Avionics @@ -805,6 +923,8 @@ Авионику アビオニクス 항공 전자 + 航电系统 + 航電系統 Main Rotor @@ -819,6 +939,8 @@ Несущий винт 主翼 주 로터 + 主旋翼 + 主旋翼 Tail Rotor @@ -833,6 +955,8 @@ Рулевой винт 尾翼ローター 꼬리 로터 + 尾桨 + 尾槳 Winch @@ -846,6 +970,8 @@ Treuil ウィンチ 윈치 + 绞盘 + 絞盤 Glass (right) @@ -860,6 +986,8 @@ Стекло (справа) ガラス (右) 유리 (오른쪽) + 玻璃 (右) + 玻璃 (右) Glass (left) @@ -874,6 +1002,8 @@ Стекло (слава) ガラス (左) 유리 (왼쪽) + 玻璃 (左) + 玻璃 (左) Glass @@ -888,6 +1018,8 @@ Стекло ガラス 유리 + 玻璃 + 玻璃 ERA @@ -901,6 +1033,8 @@ ДЗ 爆発反応装甲 폭발반응장갑 + 爆炸式反应装甲 + 爆炸式反應裝甲 Repair Settings @@ -914,6 +1048,8 @@ Réglages de réparation 修理設定 수리 설정 + 修复设定 + 修復設定 Provides a repair system for all types of vehicles. @@ -927,6 +1063,8 @@ Fournit un système de réparation pour tous les types de véhicules. 車両の全種類に修理システムを適用しますか? 모든 차량에 대해 수리 시스템을 제공합니다. + 提供修复系统给所有载具. + 提供修復系統給所有載具. Anyone @@ -940,6 +1078,8 @@ Tout le monde だれでも 모두 + 任何人 + 任何人 Engineer only @@ -953,11 +1093,15 @@ Ingénieurs seulement 工兵のみ 오직 정비공만 + 只有工兵 + 只有工兵 Advanced Engineer only Solo Geniere avanzato 上級工兵のみ + 只有维修专精兵 + 只有維修專精兵 Allow Wheel @@ -971,6 +1115,8 @@ Autoriser les roues タイヤを許可 바퀴 허가 + 允许轮胎 + 允許輪胎 Who can remove and replace wheels? @@ -984,6 +1130,8 @@ Qui peut enlever et remplacer les roues ? 誰がタイヤの除去と交換を出来るようにしますか? 누가 바퀴를 제거 및 교체할 수 있습니까? + 谁可维修轮胎? + 誰可維修輪胎? Allow Repair @@ -997,6 +1145,8 @@ Autoriser les réparations 修理を許可 수리 허가 + 允许维修 + 允許維修 Who can perform repair actions? @@ -1010,6 +1160,8 @@ Qui peut réparer ? 誰が修理を出来るようににしますか? 누가 수리를 할 수 있습니까? + 谁可以进行维修操作? + 誰可以進行維修操作? Repair Threshold @@ -1023,6 +1175,8 @@ Seuil de réparation 修理のしきい値 정비 한계치 + 维修门槛 + 維修門檻 What is the maximum damage that can be repaired with a toolkit? @@ -1036,6 +1190,8 @@ Quel est le maximum de dommages réparable par une trousse à outils ? ツールキットで修理できる、最大の損傷許容範囲を設定しますか? 어느정도의 피해까지 툴킷으로 수리가 가능합니까? + 工具包可以修复的最大损坏值? + 工具包可以修復的最大損壞值? Repair Threshold (Engineer) @@ -1049,6 +1205,8 @@ Seuil de réparatoin (ingénieur) 修理のしきい値 (工兵) 정비 한계치 (정비공) + 维修门槛 (工兵) + 維修門檻 (工兵) What is the maximum damage that can be repaired by an engineer? @@ -1062,6 +1220,8 @@ Quel est le maximum de dommages qui peuvent être réparés par un ingénieur ? 工兵が修理できる、最大の損傷許容範囲を設定しますか? 정비공은 어느정도의 피해까지 수리할 수 있습니까? + 工兵可以修复的最大损坏值? + 工兵可以修復的最大損壞值? Remove toolkit on use @@ -1075,6 +1235,8 @@ Enlever la trousse à outils après usage ツールキットを使うと削除 툴킷 사용후 제거 + 使用后删除工具包 + 使用後刪除工具包 Should the toolkit be removed on usage? @@ -1088,6 +1250,8 @@ La trousse à outils devrait-elle être enlevée après usage ? ツールキットを使うと削除しますか? 툴킷을 사용하면 제거를 합니까? + 要在使用后删除工具包吗? + 要在使用後刪除工具包嗎? Anywhere @@ -1101,6 +1265,8 @@ N'importe où だれでも 어디서나 + 任何地点 + 任何地點 Repair Vehicle only @@ -1114,6 +1280,8 @@ Véhicule de réparation seulement 修理車両のみ 오직 수리 차량만 + 维修载具旁 + 維修載具旁 Repair Facility only @@ -1127,6 +1295,8 @@ Installation de réparation seulement 修理施設のみ 오직 수리 시설만 + 维修设施旁 + 維修設施旁 Repair Facility or Vehicle @@ -1140,6 +1310,8 @@ Installations ou véhicule de réparation 修理施設または車両のみ 수리 시설혹은 차량 + 维修设施或载具旁 + 維修設施或載具旁 Assign Engineer @@ -1153,6 +1325,8 @@ Assigner le rôle d'ingénieur 工兵にする 정비공 등록 + 指派工兵 + 指派工兵 List @@ -1166,6 +1340,8 @@ Liste 一覧 목록 + 名单 + 名單 List of unit names that will be classified as engineer, separated by commas. @@ -1179,6 +1355,8 @@ Liste des noms d'unités qui seront considérées ingénieurs. Séparé par des virgules 一覧に記載されたユニット名を、工兵として指定します。コンマで複数を指定できます。 목록내 보직이름은 정비공으로 분류됩니다. 쉼표로 구분합니다. + 工兵名单, 把单位名称输入在这边即可定义其为工兵. 每个单位使用逗号以做区隔. + 工兵名單, 把單位名稱輸入在這邊即可定義其為工兵. 每個單位使用逗號以做區隔. Is Engineer @@ -1192,6 +1370,8 @@ Est ingénieur 工兵とする 은 정비공이다 + 是工兵 + 是工兵 Select the engineering skill level of the unit @@ -1205,6 +1385,8 @@ Sélectionner le niveau d'habilité en réparation de l'unité ユニットへの工兵スキルを選択 선택한 인원의 정비 실력을 고르십시요 + 选择工兵的技术水平 + 選擇工兵的技術水平 None @@ -1218,6 +1400,8 @@ Aucun 工兵 없음 + + Engineer @@ -1231,11 +1415,15 @@ Ingénieur 専門兵 정비공 + 工兵 + 工兵 Adv. Engineer Adv. Geniere + 专精 + 專精 Assign one or multiple units as an engineer @@ -1249,6 +1437,8 @@ Assigner un ou plusieurs unités comme ingénieur 修理車両として指定 하나 혹은 여러 인원을 정비공으로 등록합니다 + 指定一个或多个单位为工兵 + 指定一個或多個單位為工兵 Assign Repair Vehicle @@ -1262,6 +1452,8 @@ Assigner en tant que véhicule de réparation 修理車両として指定 정비 차량 등록 + 指定维修载具 + 指定維修載具 List @@ -1275,6 +1467,8 @@ Liste 一覧 목록 + 名单 + 名單 List of vehicles that will be classified as repair vehicle, separated by commas. @@ -1288,6 +1482,8 @@ Liste de véhicules qui seront considérés comme véhicules de réparation. Séparé par des virgules. 一覧に記載されたユニット名を、修理車両として指定します。コンマで複数を指定できます。 목록내 차량은 정비 차량으로 분류됩니다. 쉼표로 구분합니다. + 载具名单, 把载具名称输入在这边即可定义其为维修载具. 每个载具使用逗号以做区隔. + 載具名單, 把載具名稱輸入在這邊即可定義其為維修載具. 每個載具使用逗號以做區隔. Is Repair Vehicle @@ -1301,6 +1497,8 @@ Est un véhicule de réparation 修理車両とする 은 정비 차량이다 + 是维修载具 + 是維修載具 Is the vehicle classified as a repair vehicle? @@ -1314,6 +1512,8 @@ Le véhicule est-il considéré comme un véhicule de réparation ? 車両を修理車両と指定しますか? 이 차량을 정비 차량으로 분류합니까? + 此载具是维修载具吗? + 此載具是維修載具嗎? Assign one or multiple vehicles as a repair vehicle @@ -1327,6 +1527,8 @@ Assigner un ou plusieurs véhicules en tant que véhicule de réparation 単体、または複数の車両を修理車両とします 하나 혹은 여러 차량을 정비 차량으로 등록합니다 + 指定一个或多个载具作为维修载具 + 指定一個或多個載具作為維修載具 Assign Repair Facility @@ -1340,6 +1542,8 @@ Assigner en tant qu'installation de réparation 修理施設とする 정비 시설 등록 + 指定维修设施 + 指定維修設施 List @@ -1353,6 +1557,8 @@ Liste 一覧 목록 + 名单 + 名單 List of objects that will be classified as repair Facility, separated by commas. @@ -1366,6 +1572,8 @@ Liste des objets considérés comme installations de réparation. Séparé par des virgules 一覧に記載されたユニット名を、修理施設として指定します。コンマで複数を指定できます。 목록내 시설은 정비 시설으로 분류됩니다. 쉼표로 구분합니다. + 设施名单, 把设施名称输入在这边即可定义其为维修设施. 每个设施使用逗号以做区隔. + 設施名單, 把設施名稱輸入在這邊即可定義其為維修設施. 每個設施使用逗號以做區隔. Is Repair Facility @@ -1379,6 +1587,8 @@ Est une installation de réparation 修理施設とする 은 정비 시설이다 + 是维修设施 + 是維修設施 Is the object classified as a repair Facility? @@ -1392,6 +1602,8 @@ L'objet est-il considéré comme une installation de réparation ? オブジェクトを修理施設として指定しますか? 이 시설을 정비 시설로 분류합니까? + 此设施是维修设施吗? + 此設施是維修設施嗎? Assign one or multiple objects as a repair Facility @@ -1405,6 +1617,8 @@ Assigner un ou plusieurs objets en tant que véhicule de réparation ひとつ、または複数オブジェクトに予備部品を追加 하나 혹은 여러 시설을 정비 시설로 등록합니다 + 指定一个或多个对象作为维修设施 + 指定一個或多個對象作為維修設施 Add Spare Parts @@ -1418,6 +1632,8 @@ Ajouter des pièces de rechange 予備部品を追加 예비 부품 더하기 + 添加备件 + 添加備件 Add spare parts to one or multiple objects @@ -1431,6 +1647,8 @@ Ajouter des pièces de rechange à un ou plusieurs objets 一覧に追加されたオブジェクトへ予備部品を与えます。コンマで複数を指定できます。 하나 혹은 여러 물체가 예비 부품을 더합니다 + 添加备件到一个或多个对象上 + 添加備件到一個或多個對象上 List @@ -1444,6 +1662,8 @@ Liste 一覧 목록 + 名单 + 名單 List of objects that will get spare parts added, separated by commas. @@ -1457,6 +1677,8 @@ Liste des objets qui recevront des pièces de réparation en plus. Séparé par des virgules 一覧に追加されたオブジェクトへ予備部品を与えます。コンマで複数を指定できます。 목록내 물체는 예비 부품을 받습니다, 쉼표로 구분합니다. + 添加备件到名单的载具上. 每个载具使用逗号以做区隔. + 添加備件到名單的載具上. 每個載具使用逗號以做區隔. Part @@ -1470,6 +1692,8 @@ Pièce 部品 부품 + 零件 + 零件 Spare part. @@ -1483,6 +1707,8 @@ Pièce de rechange 予備部品 예비 부품 + 备用零件 + 備用零件 Amount @@ -1496,6 +1722,8 @@ Quantité 수량 + 数量 + 數量 Number of selected spare parts. @@ -1509,6 +1737,8 @@ Nombre de pièces de rechange séléctionnées 選択された予備部品の数を選択します。 선택한 부품의 수 + 选择的备件数量 + 選擇的備件數量 Wheel repair requirements @@ -1522,6 +1752,8 @@ Exigences de réparation de roue タイヤの修理を必要 바퀴 교체 요구사항 + 维修轮胎限制 + 維修輪胎限制 Items required to remove/replace wheels @@ -1535,6 +1767,8 @@ Items exigés pour enlever/remplacer les roues タイヤの除去と交換にアイテムを必要としますか? 바퀴를 제거/교체하는데 필요한 물건 + 需要特定物品来移除/更换车轮 + 需要特定物品來移除/更換車輪 Engine must be off to repair @@ -1548,6 +1782,8 @@ Silnik musi być wyłączony w celu naprawy 수리를 위해서는 엔진을 꺼야만 합니다 Il motore deve essere spento per poter riparare + 引擎必须先关闭才能开始进行维修 + 引擎必須先關閉才能開始進行維修 diff --git a/addons/respawn/stringtable.xml b/addons/respawn/stringtable.xml index a2d90acce41..6d3b3d805dd 100644 --- a/addons/respawn/stringtable.xml +++ b/addons/respawn/stringtable.xml @@ -14,6 +14,8 @@ Será posicionado em 5 segundos... 設置まであと 5 秒・・・ 5초 후 재배치... + 5秒后完成布署... + 5秒後完成佈署... Rallypoint deployed @@ -28,6 +30,8 @@ Rallypoints posicionado ラリーポイントを設置した 집결지 배치됨 + 集合点布署完成 + 集合點佈署完成 Teleport to Base @@ -42,6 +46,8 @@ Teleporta alla base ベースへ移動 기지로 순간이동 + 传送至基地 + 傳送至基地 Teleport to Rallypoint @@ -56,6 +62,8 @@ Teleporta al rallypoint ラリーポイントへ移動 집결지로 순간이동 + 传送至集合点 + 傳送至集合點 Teleported to Base @@ -70,6 +78,8 @@ Teletransportado para a Base ベースへ移動した 기지로 순간이동함 + 已传送至基地 + 已傳送至基地 Teleported to Rallypoint @@ -84,6 +94,8 @@ Teletransportado para o Rallypoints ラリーポイントへ移動した 집결지로 순간이동함 + 已传送至集合点 + 已傳送至集合點 Rallypoint West (Base) @@ -98,6 +110,8 @@ Ponto de encontro Oeste (Base) ラリーポイント ウエスト (ベース) 서쪽 집결지 (기지) + 蓝方集合点 (基地) + 藍方集合點 (基地) Rallypoint East (Base) @@ -112,6 +126,8 @@ Ponto de encontro Lest (Base) ラリーポイント イースト (ベース) 동쪽 집결지 (기지) + 红方集合点 (基地) + 紅方集合點 (基地) Rallypoint Independent (Base) @@ -126,6 +142,8 @@ Ponto de encontro Independente (Base) ラリーポイント インデペンデント (ベース) 독립 집결지 (기지) + 独立方集合点 (基地) + 獨立方集合點 (基地) Rallypoint West @@ -140,6 +158,8 @@ Ponto de encontro Oeste ラリーポイント ウエスト 서쪽 집결지 + 蓝方集合点 + 藍方集合點 Rallypoint East @@ -154,6 +174,8 @@ Ponto de encontro Leste ラリーポイント イースト 동쪽 집결지 + 红方集合点 + 紅方集合點 Rallypoint Independent @@ -168,6 +190,8 @@ Ponto de encontro Independente ラリーポイント インデペンデント 독립 집결지 + 独立方集合点 + 獨立方集合點 Respawn System @@ -182,6 +206,8 @@ Sistema Respawn リスポン システム 재배치 시스템 + 重生系统 + 重生系統 Save Gear? @@ -196,6 +222,8 @@ Salva Equipaggiamento? 装備を保存? 장비를 저장합니까? + 储存装备? + 儲存裝備? Respawn with the gear a soldier had just before his death? @@ -210,6 +238,8 @@ Respawna con l'equipaggiamento che il soldato aveva appena prima di morire? ユニットが死ぬ前に持っていた装備でリスポンしますか? 죽기 전에 가지고 있던 장비로 재배치합니까? + 是否在重生时载入死亡前的装备? + 是否在重生時載入死亡前的裝備? Remove bodies? @@ -224,6 +254,8 @@ Rimuovi corpi? 死体を削除? 시체를 제거합니까? + 删除尸体? + 刪除屍體? Remove player bodies after disconnect? @@ -238,6 +270,8 @@ Rimuovi i corpi dei giocatori quando si disconnettono? 切断後はプレイヤーの死体を削除しますか? 접속이 끊긴 플레이어의 시체를 제거합니까? + 要删除已离线的玩家尸体吗? + 要刪除已離線的玩家屍體嗎? This module enables you to configure ACE functionality specific to respawns. @@ -251,6 +285,8 @@ Este módulo permite configurar parámetros relacionados con la reaparición あなたが設定した ACE 機能をリスポンへ設定できます。 이 모듈은 ACE 재배치의 자세한 설정을 변결할 수 있게 해줍니다. + 该模块使您可以设定ACE的重生功能. + 該模塊使您可以設定ACE的重生功能. Friendly Fire Messages @@ -265,6 +301,8 @@ Messaggi Fuoco Amico 友軍誤射の表示 아군사격 메세지 + 友军误击讯息 + 友軍誤擊訊息 Using this module in your mission will make it so any friendly fire kills will be displayed in form of a message in chat. @@ -278,6 +316,8 @@ El usar este módulo, todas las muertes por fuego amigo serán indicadas en el chat. もし友軍誤射による死者が出た場合は、チャットにてその旨を表示します。 이 모듈은 미션 중 아군사격으로 인한 사망자 발생시 채팅창에 메세지를 표시해줍니다. + 摆放此模块后, 当有发生友军误击致死的事件, 会显示提示讯息在聊天视窗中. + 擺放此模塊後, 當有發生友軍誤擊致死的事件, 會顯示提示訊息在聊天視窗中. Rallypoint System @@ -292,6 +332,8 @@ Sistema Punto di Raccolta ラリーポイント システム 집결지 시스템 + 集合点系统 + 集合點系統 This module allows you to use rally points in missions, to which you can quickly teleport from base flag. Requires placing special objects on map - base and flag. Both available in category Empty -> ACE Respawn. @@ -305,6 +347,8 @@ Ce module vous permet d'utiliser les "rally points" auxquels vous pouvez vous téléporter rapidement depuis un drapeau à la base. Il nécessite le placement d'objets spéciaux sur la carte - base et drapeau, disponibles dans la catégorie Vide -> ACE Respawn. ミッションでベースから素早く移動できるラリーポイントを使えるようにします。ゲーム内に専用オブジェクトとなるベースとフラッグを設置している必要があります。両オブジェクトは Empty 下の ACE リスポンから設置できます。 이 모듈은 미션 중에 기지 깃발에서 집결지로 빠르게 텔레포트 시켜주는 역활을 합니다. 지도 상에 기지 및 깃발이 필요합니다. 두 가지 모두 Empty->ACE Respawn 카테고리에서 찾을 수 있습니다. + 摆放此模块后, 你将能在任务中布署集合点, 使你可以快速往返基地与前线. 要使用本功能, 请记得放上空物件->ACE 重生里面的基地与旗帜. + 擺放此模塊後, 你將能在任務中佈署集合點, 使你可以快速往返基地與前線. 要使用本功能, 請記得放上空物件->ACE 重生裡面的基地與旗幟. Move Rallypoint @@ -319,6 +363,8 @@ Sposta Punto di Raccolta ラリーポイントを移動 집결지 이동 + 移动集合点 + 移動集合點 ACE Respawn @@ -333,6 +379,8 @@ Rigenerazione ACE ACE リスポン ACE 재배치 + ACE 重生 + ACE 重生 diff --git a/addons/safemode/stringtable.xml b/addons/safemode/stringtable.xml index d2c7ff3fd6b..bb8ce63b60a 100644 --- a/addons/safemode/stringtable.xml +++ b/addons/safemode/stringtable.xml @@ -14,6 +14,8 @@ Modo de segurança 安全装置 안전 모드 + 保险模式 + 保險模式 Take off Safety @@ -28,6 +30,8 @@ Tirar segurança 安全装置を外す 안전장치 해제 + 开保险 + 開保險 Put on Safety @@ -42,6 +46,8 @@ Colocar Segurança 安全装置を掛けた 안전장치 적용 + 关保险 + 關保險 Took off Safety @@ -56,6 +62,8 @@ Tirou Segurança 安全装置を外した 안전장치 해제됨 + 已开保险 + 已開保險 diff --git a/addons/sandbag/stringtable.xml b/addons/sandbag/stringtable.xml index 9a2b36e4175..a0dc9d592fb 100644 --- a/addons/sandbag/stringtable.xml +++ b/addons/sandbag/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Saco de Areia 土のう 모래주머니 + 沙包 + 沙包 Sandbag (empty) @@ -28,6 +30,8 @@ Saco de Areia (vazio) 土のう (空) 모래주머니(비어있음) + 沙包 (空) + 沙包 (空) Cannot build here @@ -42,6 +46,8 @@ Não pode contruir aqui ここでは作れない 여기에 지을 수 없습니다 + 无法放置在此 + 無法放置在此 Pick up Sandbag @@ -56,6 +62,8 @@ Pegar saco de areia 土のうを拾う 모래주머니 줍기 + 捡起沙包 + 撿起沙包 Carry Sandbag @@ -70,6 +78,8 @@ Carregar saco de areia 土のうを運ぶ 모래주머니 옮기기 + 搬运沙包 + 搬運沙包 End Carrying @@ -84,6 +94,8 @@ Parar de carregar 下ろす 그만 옮기기 + 停止搬运 + 停止搬運 Drop Sandbag @@ -98,6 +110,8 @@ Derrubar saco de areia 土のうを落とす 여기에 놓기 + 放下沙包 + 放下沙包 Confirm Deployment @@ -112,6 +126,8 @@ Confirmar implantação ここで作る 설치 확인 + 确认布署 + 確認佈署 Cancel Deployment @@ -126,6 +142,8 @@ Cancelar implantação 作るのをやめる 설치 취소 + 取消布署 + 取消佈署 Deploy Sandbag @@ -140,6 +158,8 @@ Implantar saco de areia 土のうを設置 모래주머니 설치 + 布署沙包 + 佈署沙包 Sandbag Box @@ -154,6 +174,8 @@ Caixa de saco de areia 土のう入れ 모래주머니 상자 + 沙包箱 + 沙包箱 Here is no sand @@ -168,6 +190,8 @@ Aqui não tem areia ここに土は無い 흙이 없습니다 + 这里没有沙 + 這裡沒有沙 Rotate @@ -182,6 +206,8 @@ Bращать 回転 돌리기 + 旋转 + 旋轉 diff --git a/addons/scopes/stringtable.xml b/addons/scopes/stringtable.xml index d36161e99d3..66a9729b28a 100644 --- a/addons/scopes/stringtable.xml +++ b/addons/scopes/stringtable.xml @@ -8,6 +8,8 @@ Celowniki optyczne Scopes Mirini + 瞄准镜 + 瞄準鏡 Enable ACE Scope adjustment @@ -16,6 +18,8 @@ Włącz ustawienia celowników optycznych ACE Active ACE Scope adjustment Abilita Regolazione mirino ACE + 开启ACE瞄准镜归零调节 + 開啟ACE瞄準鏡歸零調節 Enable adjustmet turrets on high powered scopes @@ -24,6 +28,8 @@ Włącz pokrętła regulacyjne Permet de régler la hausse et la dérive sur les optiques de visée à fort grossissement Abilita la regolazione delle torrette nei mirini a lunga gittata + 开启高倍率瞄准镜归零调节 + 開啟高倍率瞄準鏡歸零調節 Force adjustment turrets @@ -32,6 +38,8 @@ Wymuś użycie pokręteł regulacyjnych Impose le réglage de la hausse/dérive Forza la regolazione delle torrette + 强制使用归零调节 + 強制使用歸零調節 Force usage of adjustmet turrets on high powered scopes @@ -40,6 +48,8 @@ Wymuś użycie pokręteł regulacyjnych dla celowników o dużym powiększeniu Impose le réglage de la hausse/dérive sur les optiques de visée à fort grossissement Forza l'uso della regolazione nei mirini a lunga gittata + 强制为高倍率瞄准镜开启归零调节 + 強制為高倍率瞄準鏡開啟歸零調節 Correct zeroing @@ -48,6 +58,8 @@ Poprawka zerowania Corrige le zérotage Correggi azzeramento + 修正归零 + 修正歸零 Corrects the zeroing of all small arms sights @@ -56,6 +68,8 @@ Poprawia zerowanie wszystkich celowników broni ręcznej Corrige le zérotage des optiques de visée des petites armes Corregge l'azzeramento di tutti i mirini di bassa portata + 为所有小口径武器修正归零 + 為所有小口徑武器修正歸零 Overwrite zero distance @@ -64,6 +78,8 @@ Nadpisuje ustawienie dla zerowego dystansu Remplace la distance de zérotage Sovrascrivi la distanza zero + 覆写归零距离 + 覆寫歸零距離 Uses the 'defaultZeroRange' setting to overwrite the zero range of high power scopes @@ -72,6 +88,8 @@ Używa 'defaultZeroRange' zamiast ustawionej odległości zerowania dla celowników o duzym przybliżeniu Utilise le paramètre 'defaultZeroRange' pour remplacer la distance de zérotage sur les optiques de visée à fort grossissement Usa le impostazioni di "defaultZeroRange" (Portata Zero Predefinita) per sovrascrivere la portata zero dei mirini a lunga gittata + 使用'defaultZeroRange'来为高倍率瞄准镜覆写预设归零距离 + 使用'defaultZeroRange'來為高倍率瞄準鏡覆寫預設歸零距離 Default zero distance @@ -80,6 +98,8 @@ Domyślne zerowanie Distance de zérotage par défaut Distanza zero predefinita + 预设归零距离 + 預設歸零距離 High power scopes will be zeroed at this distance @@ -88,6 +108,8 @@ Celowniki o dużym powiększeniu będą zerowane dla tej odległości Distance de zérotage par défaut des optiques de visée à fort grossissement I mirini a lunga gittata verranno azzerrati a questa distanza + 高倍率瞄准镜将归零在这个距离上 + 高倍率瞄準鏡將歸零在這個距離上 Reference temperature @@ -96,6 +118,8 @@ Referencyjna temperatura Température de référence Temperatura di riferimento + 参考温度 + 參考溫度 Temperature at which the scope was zeroed @@ -104,6 +128,8 @@ Temperatura, przy której celownik został wyzerowany Température de référence pour le zérotage des optiques Temperatura a cui è stato azzerato il mirino + 武器参考多少温度来进行归零. + 武器參考多少溫度來進行歸零. Reference barometric pressure @@ -112,6 +138,8 @@ Referencyjne ciśnienie barometryczne Pression barométrique de référence Pressione barometrica di riferimento + 参考大气压力 + 參考大氣壓力 Barometric pressure at which the scope was zeroed @@ -120,6 +148,8 @@ Ciśnienie barometryczne, przy którym celownik został wyzerowany Pression barométrique de référence pour le zérotage des optiques Pressione barometrica a cui è stato azzerato il mirino + 武器参考多少大气压力来进行归零. + 武器參考多少大氣壓力來進行歸零. Reference humidity @@ -128,6 +158,8 @@ Referencyjna wilgotność Humidité de référence Umidità di riferimento + 参考湿度 + 參考濕度 Humidity at which the scope was zeroed @@ -136,6 +168,8 @@ Wilgotność powietrza, przy której celownik został wyzerowany Taux d'humidité de référence pour le zérotage des optiques Umidità a cui è stato azzerato il mirino + 武器参考多少湿度来进行归零. + 武器參考多少濕度來進行歸零. Deduce pressure from altitude @@ -144,6 +178,8 @@ Ciśnienie określone na podstawie wysokości Pression selon l'altitude Ricava la pressione dall'altitudine + 高度影响大气压力 + 高度影響大氣壓力 Deduce the barometric pressure from the terrain altitude @@ -152,6 +188,8 @@ Określ ciśnienie barometryczne na podstawie wysokości terenu Détermine la pression barométrique selon l'altitude du terrain Ricava la pressione barometrica dall'altitudine del terreno + 在不同高度上会有不同的大气压力 + 在不同高度上會有不同的大氣壓力 Minor adjustment up @@ -166,6 +204,8 @@ Korekce nahoru (mírně) 僅かに上へ調節 위로 조절 + 向上微调 + 向上微調 Minor adjustment down @@ -180,6 +220,8 @@ Korekce dolů (mírně) 僅かに下へ調節 아래로 조절 + 向下微调 + 向下微調 Minor adjustment right @@ -194,6 +236,8 @@ Korekce doprava (mírně) 僅かに右へ調節 오론쪽으로 조절 + 向右微调 + 向右微調 Minor adjustment left @@ -208,6 +252,8 @@ Korekce doleva (mírně) 僅かに左へ調節 왼쪽으로 조절 + 向左微调 + 向左微調 Major adjustment up @@ -222,6 +268,8 @@ Korekce nahoru 大きく上へ調節 크게 위로 조절 + 向上调整 + 向上調整 Major adjustment down @@ -236,6 +284,8 @@ Korekce dolů 大きく下へ調節 크게 아래로 조절 + 向下调整 + 向下調整 Major adjustment right @@ -250,6 +300,8 @@ Korekce doprava 大きく右へ調節 크게 오른쪽으로 조절 + 向右调整 + 向右調整 Major adjustment left @@ -264,6 +316,8 @@ Korekce doleva 大きく左へ調節 크게 왼쪽으로 조절 + 向左调整 + 向左調整 Set zero adjustment @@ -278,6 +332,8 @@ Vynulovat korekci ゼロインを調節 영점 초기화 + 设定归零 + 設定歸零 This module adds windage and elevation adjustment turrets on high power rifle scopes. @@ -286,6 +342,8 @@ Ten moduł włącza pokrętła kalibracyjne poprawki na wiatr oraz poprawki wysokości dla celowników o dużym powiększeniu. Ce module ajoute les tambours de correction de la hausse et de dérive sur les optiques de visée à fort grossissement. Questo modulo aggiunge lo spostamento dell'aria e la regolazione dell'elevazione delle torrette in mirini a lunga gittata + 此模块可为高倍率瞄准镜新增归零风偏, 距离用的调整纽. + 此模塊可為高倍率瞄準鏡新增歸零風偏, 距離用的調整紐. diff --git a/addons/slideshow/stringtable.xml b/addons/slideshow/stringtable.xml index 213834841d7..68d0f9d5893 100644 --- a/addons/slideshow/stringtable.xml +++ b/addons/slideshow/stringtable.xml @@ -14,6 +14,8 @@ Mostra Diapositive スライドショー 슬라이드 쇼 + 幻燈片 + 幻灯片 This module allows you to set up slide-shows on different objects. One module per image list. Only objects with hiddenSelection 0 are supported. @@ -28,6 +30,8 @@ Questo modulo ti permette di creare una presentazione con diapositive su vari oggetti. Un modulo per lista immagini. Solo oggetti con hiddenSelection 0 sono supportati. さまざまなオブジェクトへスライドショーを設定することができます。1つのモジュールは各画像リストになっています。オブジェクトが hiddenSelection 0へ対応している必要があります。 이 모듈은 다른 물체에 대해 슬라이드 쇼를 놓을 수 있게 해줍니다. 한 모듈당 한 이미지목록만 가능합니다. 또한 물체가 hiddenSelection 0 를 지원해야만합니다. + 此模塊可讓圖片以幻燈片的形式顯示在物件上. 每個模塊都能設定一串幻燈片清單. 被設定的物件不能有隱藏部位(hiddenSelection). + 此模块可让图片以幻灯片的形式显示在物件上. 每个模块都能设定一串幻灯片清单. 被设定的物件不能有隐藏部位(hiddenSelection). Objects @@ -42,6 +46,8 @@ Oggetti オブジェクト 물체 + 物件 + 物件 Object names (can also be synchronized objects) slide-show will be displayed on, separated by commas if multiple. @@ -56,6 +62,8 @@ Nomi di oggetti (possono anche essere oggetti sincronizzati) che verranno usati per la presentazione di diapositive, separato da virgole se più di uno. スライドショーを表示するオブジェクト名 (オブジェクトとの同期も可)。複数ある場合はコンマで区切れます 슬라이드 쇼가 보여질 물체(동기화 되는 물체도 가능합니다) 명칭, 다수의 경우 쉼표로 구분합니다. + 物件名稱 (也可使用同步線來設定), 幻燈片將會顯示在該物件上, 如有多個物件, 請以逗號作區隔. + 物件名称 (也可使用同步线来设定), 幻灯片将会显示在该物件上, 如有多个物件, 请以逗号作区隔. Controllers @@ -70,6 +78,8 @@ Controllori コントローラ 조종 장치 + 控制器 + 控制器 Controller object names, separated by commas if multiple. @@ -83,6 +93,8 @@ Nomi di oggetti controllori, separati da virgole se multipli. コントローラに指定するオブジェクト名を記入し、複数ある場合はコンマで区切れます。 조종 장치 물체 명칭, 다수의 경우 쉼표로 구분됩니다. + 指定是控制器的物件名稱, 如有多個物件, 請以逗號作區隔. + 指定是控制器的物件名称, 如有多个物件, 请以逗号作区隔. Images @@ -97,6 +109,8 @@ Immagini 画像 사진 + 圖片 + 图片 List of images that will be used for the slide-show, separated by commas, with full path correctly formatted (eg. images\image.paa). @@ -111,6 +125,8 @@ Lista di immagini che verranno usate durante la presentazione, separati da virgole, con il formato completo del percorso (es. images\image.paa) 完全なパスでスライドショーに使う画像一覧を入力してください。コンマで区別できます。(例: images\image.paa) 슬라이드 쇼에 쓰일 사진목록입니다, 쉼표로 구분됩니다, 경로설정을 정확히 하십시요. (예: 사진\사진.ppa) + 要做為幻燈片的圖片清單, 每個圖片請已逗號區隔, 並輸入完整路徑位址 (例如:images\image.paa). + 要做为幻灯片的图片清单, 每个图片请已逗号区隔, 并输入完整路径位址 (例如:images\image.paa). Interaction Names @@ -125,6 +141,8 @@ Interaktionsnamen インタラクション名 상호작용 명칭 + 互動鍵名稱 + 互动键名称 List of names that will be used for interaction entries, separated by commas, in order of images. @@ -138,6 +156,8 @@ Liste aller Namen, die für Interaktionseinträge genutzt werden. Mit Kommata getrennt, in Reihenfolge der Bilder. 画像を操作できるインタラクション エントリ名の一覧を入力してください。コンマで区切り複数を指定できます。 상호작용 메세지에 쓰일 명칭입니다, 쉼표로 구분합니다, 이미지의 순서입니다. + 設定互動鍵切換圖片時的按鈕名稱, 多個按鈕請以逗號做區隔, 有多少圖片就輸入多少個按鈕, 以利切換圖片. + 设定互动键切换图片时的按钮名称, 多个按钮请以逗号做区隔, 有多少图片就输入多少个按钮, 以利切换图片. Set Name @@ -145,6 +165,8 @@ 名前設定 Définir le nom Imposta Nome + 設定名稱 + 设定名称 Name that will be used for main interaction entry (to distinguish multiple slideshows). Default: "Slides" @@ -152,6 +174,8 @@ メイン インタラクション エントリで使われる名前を設定します。(複数のスライドショーを区別するため)。標準: "Slides" Un nom qui sera utilisé pour interagir avec plusieurs diaporamas. Par défaut : "Slides" Nome che sarà utilizzato per le principali interazioni (per distinguere le multiple diapositive). Predefinito: "Slides" + 設定該幻燈片的標題名稱 (用來區分多個不同標題的幻燈片.) 預設名稱: "幻燈片" + 设定该幻灯片的标题名称 (用来区分多个不同标题的幻灯片.) 预设名称: "幻灯片" Slide Duration @@ -166,6 +190,8 @@ Länge der Diavorführung pro Bild スライドの持続時間 슬라이드 지속시간 + 幻燈片顯示時間 + 幻灯片显示时间 Duration of each slide. Default: 0 (Automatic Transitions Disabled) @@ -180,6 +206,8 @@ Länge der Diavorführung pro Bild. Standard: 0 (Automatischer Wechsel deaktiviert) 各スライドの持続時間。標準:0 (自動的な切り替えは無効) 매 슬라이드의 지속시간. 기본설정: 0 (자동 전환 비활성화) + 每張幻燈片顯示的時間. 預設:0 (自動換圖已禁用) + 每张幻灯片显示的时间. 预设:0 (自动换图已禁用) Slides @@ -194,6 +222,8 @@ Dias スライド 슬라이드 + 幻燈片 + 幻灯片 diff --git a/addons/spectator/stringtable.xml b/addons/spectator/stringtable.xml index 68c8e79ea5a..1dc7fe26557 100644 --- a/addons/spectator/stringtable.xml +++ b/addons/spectator/stringtable.xml @@ -6,6 +6,8 @@ ACE スペクテイター Spettatore ACE Spectateur ACE + ACE 旁观者 + ACE 旁觀者 Spectator Settings @@ -19,6 +21,8 @@ Réglages de spectateur スペクテイター設定 관전자 설정 + 旁观者设定 + 旁觀者設定 Configure how the spectator system will operate by default. @@ -32,6 +36,8 @@ Configure comment le système de spectateurs opère par défaut. スペクテイター システムが標準でどのように動作するか設定できます。 어떻게 관전자 시스템이 기본적으로 작동되는지 설정합니다 + 设定旁观者系统相关配置. + 設定旁觀者系統相關配置. Unit filter @@ -45,6 +51,8 @@ Filtre d'unités ユニット フィルタ 인원 필터 + 单位过滤器 + 單位過濾器 Method of filtering spectatable units. @@ -58,6 +66,8 @@ Méthode de filtration des unités regardables. 観察できるユニットへのフィルタ設定ができます。 관전할 수 있는 인원을 고릅니다 + 过滤哪些单位可以使用旁观者系统. + 過濾哪些單位可以使用旁觀者系統. No units @@ -71,6 +81,8 @@ Pas d'unités ユニットなし 인원 없음 + 无单位 + 無單位 Only players @@ -84,6 +96,8 @@ Joueurs seulements プレイヤのみ 플레이어만 + 只有玩家 + 只有玩家 Playable Units @@ -97,6 +111,8 @@ Unités jouables プレイ可能なユニットのみ 플레이 가능한 인원 + 可扮演单位 + 可扮演單位 All units @@ -110,6 +126,8 @@ Toutes les unités 全てのユニット 모든 인원 + 所有单位 + 所有單位 Side filter @@ -123,6 +141,8 @@ Filtre de faction 勢力フィルタ 진영 필터 + 阵营过滤器 + 陣營過濾器 Method of filtering spectatable sides. @@ -136,6 +156,8 @@ Méthode de filtration des factions regardables 観察できる勢力へのフィルタ設定ができます。 관전할 수 있는 진영을 고릅니다 + 过滤可旁观的阵营. + 過濾可旁觀的陣營. Player side @@ -149,6 +171,8 @@ Faction du joueur プレイヤーと同じ勢力 플레이어 진영 + 玩家 + 玩家 Friendly sides @@ -162,6 +186,8 @@ Factions amies 友軍勢力 아군 진영 + 友军 + 友軍 Hostile sides @@ -175,6 +201,8 @@ Factions hostiles 敵対勢力 적군 진영 + 敌方 + 敵方 All sides @@ -188,6 +216,8 @@ Toutes les factions 全ての勢力 모든 진영 + 所有阵营 + 所有陣營 Camera modes @@ -201,6 +231,8 @@ Mode de caméra カメラ モード 카메라 모드 + 摄影机模式 + 攝影機模式 Camera modes that can be used. @@ -214,6 +246,8 @@ Modes de caméra qui peuvent être utilisés カメラ モードを使えます。 사용할 수 있는 카메라 모드들 입니다 + 设定可使用的摄影机模式. + 設定可使用的攝影機模式. All @@ -227,6 +261,8 @@ Tous 全て 모두 + 所有 + 所有 Free only @@ -240,15 +276,17 @@ Libre seulement 自由視点のみ 오직 자유만 + 只有自由模式 + 只有自由模式 Internal only Erste Person //Bitte überprüfen! - Tylko wewnętrznaSomente internaТолько внутренняяPouze pohled z první osobySolo internaSolo internaInterne seulement一人称視点のみ오직 내부만 + Tylko wewnętrznaSomente internaТолько внутренняяPouze pohled z první osobySolo internaSolo internaInterne seulement一人称視点のみ오직 내부만只有第一人称只有第一人稱 External only Dritte Person //Bitte überpfüfen! - Tylko zewnętrznaSomente externaТолько внешняяPouze pohled z třetí osobySolo externaSolo esternaExterne seulement三人称視点のみ오직 외부만 + Tylko zewnętrznaSomente externaТолько внешняяPouze pohled z třetí osobySolo externaSolo esternaExterne seulement三人称視点のみ오직 외부만只有第三人称只有第三人稱 Internal and external Erste und dritte Person @@ -261,6 +299,8 @@ Interne et externe 一人称と三人称視点 외부 및 내부 + 第一和第三人称 + 第一和第三人稱 Vision modes @@ -274,6 +314,8 @@ Modes de vision ビジョン モード 시야 모드 + 视觉模式 + 視覺模式 Vision modes that can be used. @@ -287,6 +329,8 @@ Modes de visions qui peuvent être utilisés ビジョン モードを使えます。 사용할 수 있는 시야 모드들 입니다 + 设定可使用的视觉模式. + 設定可使用的視覺模式. Night vision @@ -300,6 +344,8 @@ Vision nocturne 夜間暗視 야간투시경 + 夜视 + 夜視 Thermal imaging @@ -313,6 +359,8 @@ Vision thermique 熱源画像 열화상 + 热成像 + 熱成像 @@ -327,6 +375,8 @@ Unités spectatrices スペクテイター ユニット 관전 인원 + 旁观者单位 + 旁觀者單位 Spectator Controls @@ -340,6 +390,8 @@ Contrôles de spectateur スペクテイター操作 관전 조작 + 旁观者控制 + 旁觀者控制 Free @@ -353,15 +405,17 @@ Libre 自由視点 자유 + 自由模式 + 自由模式 Internal Erste Person //Bitte überprüfen! - WewnętrznaInternaВнутренняяPohled z první osobyInternaInternaInterne一人称視点내부 + WewnętrznaInternaВнутренняяPohled z první osobyInternaInternaInterne一人称視点내부第一人称第一人稱 External Dritte Person //Bitte überprüfen! - ZewnętrznaExternaВнешняяPohled z třetí osobyExternaEsternaExterne三人称視点외부 + ZewnętrznaExternaВнешняяPohled z třetí osobyExternaEsternaExterne三人称視点외부第三人称第三人稱 Normal Normal @@ -374,6 +428,8 @@ Normale 通常 정상 + 正常 + 正常 Night @@ -387,6 +443,8 @@ Nuit 暗視装置 야간 + 夜视 + 夜視 Thermal @@ -400,6 +458,8 @@ Thermique 熱源画像 열상 + 热成像 + 熱成像 @@ -414,6 +474,8 @@ Caméra libre 自由視点 자유 카메라 + 自由摄影机 + 自由攝影機 Camera Forward @@ -427,6 +489,8 @@ Caméra en avant カメラを前に 카메라 앞으로 + 摄影机往前 + 攝影機往前 Camera Backward @@ -440,6 +504,8 @@ Caméra en arrière カメラを後ろに 카메라 뒤로 + 摄影机往后 + 攝影機往後 Camera Left @@ -453,6 +519,8 @@ Caméra à gauche カメラを左に 카메라 왼쪽으로 + 摄影机往左 + 攝影機往左 Camera Right @@ -466,6 +534,8 @@ Caméra à droite カメラを右に 카메라 오른쪽으로 + 摄影机往右 + 攝影機往右 Camera Up @@ -479,6 +549,8 @@ Caméra en haut カメラを上に 카메라 위로 + 摄影机往上 + 攝影機往上 Camera Down @@ -492,6 +564,8 @@ Caméra en bas カメラを下に 카메라 아래로 + 摄影机往下 + 攝影機往下 Pan Camera @@ -505,6 +579,8 @@ Tourner la caméra カメラを振る 카메라 돌리기 + 平移摄影机 + 平移攝影機 Dolly Camera @@ -518,6 +594,8 @@ Bouger la caméra カメラを動かす 카메라 추적 + 移动摄影机 + 移動攝影機 Lock Camera to Target @@ -531,6 +609,8 @@ Verrouiller la caméra sur la cible カメラを目標に固定 목표에 카메라 고정 + 锁定摄影机观察单一目标 + 鎖定攝影機觀察單一目標 Speed Boost @@ -544,6 +624,8 @@ Boost de vitesse 速度の増加 속도 증가 + 速度提升 + 速度提升 Interface @@ -557,6 +639,8 @@ Interface インターフェイス 인터페이스 + 介面 + 介面 Toggle Interface @@ -570,6 +654,8 @@ Bascule de l'interface インターフェイスをトグル 인터페이스 토글 + 切换介面 + 切換介面 Toggle Unit Icons @@ -583,6 +669,8 @@ Bascule des icônes des unités ユニット アイコンをトグル 인원 아이콘 토글 + 切换单位图示 + 切換單位圖示 Toggle Unit List @@ -596,6 +684,8 @@ Bascule de la liste des unités ユニット一覧をトグル 인원 목록 토글 + 切换单位名单 + 切換單位名單 Toggle Toolbar @@ -609,6 +699,8 @@ Bascule de la barre d'outils ツールバーをトグル 툴바 토글 + 切换工具栏 + 切換工具欄 Toggle Compass @@ -622,6 +714,8 @@ Basculer le compas 方位磁石をトグル 나침반 토글 + 切换指北针 + 切換指北針 Toggle Map @@ -635,6 +729,8 @@ Basculer la carte 地図をトグル 지도 토글 + 切换地图 + 切換地圖 Toggle Help @@ -648,6 +744,8 @@ Basculer l'aide ヘルプをトグル 도움 토글 + 切换帮助 + 切換幫助 Camera Attributes @@ -661,6 +759,8 @@ Propriétés de la caméra カメラ高度 카메라 속성 + 摄影机属性 + 攝影機屬性 Next Camera @@ -674,6 +774,8 @@ Caméra suivante 次のカメラ 다음 카메라 + 下个镜头 + 下個鏡頭 Previous Camera @@ -687,6 +789,8 @@ Caméra précédente 前のカメラ 이전 카메라 + 上个镜头 + 上個鏡頭 Next Unit @@ -700,6 +804,8 @@ Unité suivante 次のユニット 다음 인원 + 下个单位 + 下個單位 Previous Unit @@ -713,6 +819,8 @@ Unité précédente 前のユニット 이전 인원 + 上个单位 + 上個單位 Next Vision Mode @@ -726,6 +834,8 @@ Mode de vision suivant 次のビジョン モード 다음 시야 모드 + 下个视觉模式 + 下個視覺模式 Previous Vision Mode @@ -739,6 +849,8 @@ Mode de vision précédent 前のビジョン モード 이전 시야 모드 + 上个视觉模式 + 上個視覺模式 Adjust Zoom @@ -752,6 +864,8 @@ Ajuster le zoom 拡大倍率を調節 줌 조절 + 调整倍率 + 調整倍率 Adjust Speed @@ -765,6 +879,8 @@ Ajuster la vitesse 速度を調節 속도 조절 + 调整速度 + 調整速度 Increment Zoom @@ -778,6 +894,8 @@ Augmenter le zoom 拡大倍率を増やす 줌 증가 + 增加放大 + 增加放大 Increment Speed @@ -791,6 +909,8 @@ Augmenter la vitesse 速度を増やす 속도 증가 + 增加速度 + 增加速度 Reset Zoom @@ -804,6 +924,8 @@ RAZ zoom 拡大倍率を初期化 줌 초기화 + 重置缩放 + 重置縮放 Reset Speed @@ -817,6 +939,8 @@ RAZ vitesse 速度を初期化 속도 초기화 + 重置速度 + 重置速度 diff --git a/addons/spottingscope/stringtable.xml b/addons/spottingscope/stringtable.xml index 00ba2e2eb9c..cfdbaa05f75 100644 --- a/addons/spottingscope/stringtable.xml +++ b/addons/spottingscope/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Luneta de observador 観測用スコープ 감적 망원경 + 观测镜 + 觀測鏡 Pick up Spotting Scope @@ -28,6 +30,8 @@ Pegar luneta de observador 観測用スコープを拾う 감적 망원경 줍기 + 捡起观测镜 + 撿起觀測鏡 Place Spotting Scope @@ -42,6 +46,8 @@ Colocar luneta de observador 観測用スコープを置く 감적 망원경 배치 + 放置观测镜 + 放置觀測鏡 diff --git a/addons/switchunits/stringtable.xml b/addons/switchunits/stringtable.xml index c86142c877e..d33ab11bbbf 100644 --- a/addons/switchunits/stringtable.xml +++ b/addons/switchunits/stringtable.xml @@ -14,6 +14,8 @@ Trocado de unidade ユニットを切り替え 인원으로 전환 + 切换单位 + 切換單位 Trying to switch @@ -27,6 +29,8 @@ Попытка переключения 切り替えを試す 전환 시도중 + 尝试切换中 + 嘗試切換中 This unit is too close to the enemy. @@ -41,6 +45,8 @@ Essa unidade está muito perto do inimigo. このユニットは敵に近すぎます。 그 인원은 적과 너무 가깝습니다. + 这单位太接近敌人了. + 這單位太接近敵人了. SwitchUnits System @@ -55,6 +61,8 @@ Sistema Cambio Unità SwitchUnits システム 인원전환 시스템 + 切换单位系统 + 切換單位系統 Switch to West? @@ -69,6 +77,8 @@ Cambia per BLUFOR? ウエストへ切り替えますか? 서방으로 전환합니까? + 切换至蓝方? + 切換至藍方? Allow switching to west units? @@ -83,6 +93,8 @@ Consenti passaggio ad unità BLUFOR? ウエスト側ユニットへ切り替えられるようにしますか? 서방 인원으로 전환합니까? + 允许切换至蓝方? + 允許切換至藍方? Switch to East? @@ -97,6 +109,8 @@ Cambia per OPFOR? イースト側へ切り替えますか? 동방으로 전환합니까? + 切换至红方? + 切換至紅方? Allow switching to east units? @@ -111,6 +125,8 @@ Consenti passaggio ad unità OPFOR? イースト側ユニットへ切り替えられるようにしますか? 동방인원으로 전환합니까? + 允许切换至红方? + 允許切換至紅方? Switch to Independent? @@ -125,6 +141,8 @@ Cambia per INDFOR? インデペンデントへ切り替えますか? 중립으로 전환합니까? + 切换至独立方? + 切換至獨立方? Allow switching to independent units? @@ -139,6 +157,8 @@ Consenti passaggio ad unità INDFOR? インデペンデント側ユニットへ切り替えられるようにしますか? 중립 인원으로 전환합니까? + 允许切换至独立方? + 允許切換至獨立方? Switch to Civilian? @@ -153,6 +173,8 @@ Cambia per Civili? シビリアンへ切り替えますか? 민간인으로 전환합니까? + 切换至平民方? + 切換至平民方? Allow switching to civilian units? @@ -167,6 +189,8 @@ Consenti passaggio ad unità civili? シビリアン側ユニットへ切り替えられるようにしますか? 민간인으로 전환하는걸 허가합니까? + 允许切换至平民方? + 允許切換至平民方? Enable Safe Zone? @@ -181,6 +205,8 @@ Abilita Zona Sicura? 安全地帯を有効にしますか? 안전 지대 활성화? + 启用安全区? + 啟用安全區? Enable a safe zone around enemy units? Players can't switch to units inside of the safe zone. @@ -195,6 +221,8 @@ Abilita una zona sicura attorno ad unità nemiche? I giocatori non possono cambiare ad unità dentro la zona sicura. 敵ユニットから逃れる安全地帯を有効にしますか?プレイヤーは安全地帯内のユニットへ切り替えできません。 적 주위로 안전 지대를 활성화합니까? 안전 지대 내에서는 플레이어가 인원 전환을 할 수 없습니다. + 启用敌方周围安全地带? 玩家不能切换到安全区内的单位. + 啟用敵方周圍安全地帶? 玩家不能切換到安全區內的單位. Safe Zone Radius @@ -209,6 +237,8 @@ Raggio Zona Sicura 安全地帯の半径 안전 지대 반경 + 安全区半径 + 安全區半徑 The safe zone around players from a different team. Default: 200 @@ -223,6 +253,8 @@ La zona sicura attorno ai giocatori di un team diverso. Default: 200 別のチームへのプレイヤーの周囲にある安全地帯の範囲。標準:200 다른 진영으로 부터의 플레이어 안전 지대. 기본설정: 200 + 安全区的范围. 预设值:200 + 安全區的範圍. 預設值:200 Module allows you to switch side during the game. @@ -236,6 +268,8 @@ El módulo permite a las unidades cambiar de bando durante el juego. モジュールはゲームにおいて、陣営の切り替えを有効にします。 이 모듈은 당신을 게임 중에 진영을 바꿀 수 있게 해줍니다. + 此模块允许你在游戏中切换至另一方. + 此模塊允許你在遊戲中切換至另一方. diff --git a/addons/tacticalladder/stringtable.xml b/addons/tacticalladder/stringtable.xml index 18c817c7f23..af9ca6ef5f9 100644 --- a/addons/tacticalladder/stringtable.xml +++ b/addons/tacticalladder/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Escada telescópica タクティカル ラダー 로프 사다리 + 伸缩梯子 + 伸縮梯子 Deploy ladder @@ -28,6 +30,8 @@ Implantar escada ラダーを設置 사다리 배치 + 布署梯子 + 佈署梯子 Drop ladder @@ -42,6 +46,8 @@ Derrubar escada ラダーを落とす 사다리 놓기 + 降下梯子 + 降下梯子 Extend @@ -55,6 +61,8 @@ Déployer 伸ばす 늘리기 + 伸长梯子 + 伸長梯子 +Ctrl tilt @@ -68,6 +76,8 @@ +Ctrl per inclinare +Ctrl で傾ける +컨트롤키 기울이기 + +Ctrl 倾斜 + +Ctrl 傾斜 Position ladder @@ -82,6 +92,8 @@ Posicionar escada ラダーの位置 사다리 위치 + 梯子位置 + 梯子位置 Pickup ladder @@ -96,6 +108,8 @@ Pegar escada ラダーを拾う 사다리 줍기 + 捡起梯子 + 撿起梯子 diff --git a/addons/tagging/stringtable.xml b/addons/tagging/stringtable.xml index ab5866dbfa2..0af736e11be 100644 --- a/addons/tagging/stringtable.xml +++ b/addons/tagging/stringtable.xml @@ -10,6 +10,8 @@ 뿌리기 Marquage Marcamento + 喷漆 + 噴漆 Configure how the tagging system will operate by default. @@ -20,6 +22,8 @@ 뿌리기 시스템의 기본사항을 설정합니다. Configure le fonctionnement par défaut du système de marquage. Configura quanto il sistema di marcamento agirà da se. + 定义喷漆系统预设设定. + 定義噴漆系統預設設定. Quick Tag @@ -30,6 +34,8 @@ 빠른 뿌리기 Marquage rapide Marcamento Rapido + 快速喷漆 + 快速噴漆 Action performed on main tag interaction point. @@ -40,6 +46,8 @@ 이 동작은 상호작용에서 뿌리기를 할 수 있게 해준다 Action réalisé au point de marquage principal. Azione eseguita sul punto di interazione dei tag principali. + 直接喷漆在互动选单瞄准的点上. + 直接噴漆在互動選單瞄準的點上. Last Used @@ -50,6 +58,8 @@ 최근 사용 Dernier utilisé Ultimo Usato + 上次最后使用 + 上次最後使用 Random X @@ -60,6 +70,8 @@ 무작위 X Aléatoire X Random X + 随机X标记 + 隨機X標記 Random @@ -70,6 +82,8 @@ 무작위 Aléatoire Random + 随机 + 隨機 Tag @@ -83,6 +97,8 @@ タグ 뿌리기 Tag + 喷漆 + 噴漆 X black @@ -96,6 +112,8 @@ Черный Х 黒の X印 검정 X + 黑色X标记 + 黑色X標記 X red @@ -109,6 +127,8 @@ Красный Х 赤の X印 빨간 X + 红色X标记 + 紅色X標記 X green @@ -122,6 +142,8 @@ Зеленый Х 緑の X印 초록 X + 绿色X标记 + 綠色X標記 X blue @@ -135,6 +157,8 @@ Синий Х 青の X印 파랑 X + 蓝色X标记 + 藍色X標記 Black spray paint @@ -148,6 +172,8 @@ Черный спрей 黒のスプレー缶 검정 스프레이 + 黑色喷漆 + 黑色噴漆 Red spray paint @@ -161,6 +187,8 @@ Красный спрей 赤のスプレー缶 빨강 스프레이 + 红色喷漆 + 紅色噴漆 Green spray paint @@ -174,6 +202,8 @@ Зеленый спрей 緑のスプレー缶 초록 스프레이 + 绿色喷漆 + 綠色噴漆 Blue spray paint @@ -187,6 +217,8 @@ Синий спрей 青のスプレー缶 파랑 스프레이 + 蓝色喷漆 + 藍色噴漆 A can of spray paint for tagging walls. @@ -200,6 +232,8 @@ Балончик спрея для рисования маркеров на стенах. スプレー缶は壁にタグ付できます。 벽에 뿌릴 수 있는 스프레이캔 입니다. + 喷漆可喷涂在墙壁上. + 噴漆可噴塗在牆壁上. diff --git a/addons/trenches/stringtable.xml b/addons/trenches/stringtable.xml index 1fee5489dff..3c21da92418 100644 --- a/addons/trenches/stringtable.xml +++ b/addons/trenches/stringtable.xml @@ -13,6 +13,8 @@ Саперная лопата シャベル 야전삽 + 战备锹 + 戰備鍬 Entrenching Tool @@ -26,6 +28,8 @@ Саперная лопата シャベル 야전용 삽. 군인들의 영원한 친구 + 战备锹 + 戰備鍬 Envelope - Small @@ -38,6 +42,8 @@ Окоп - Малый 塹壕 - 小型 참호 - 소형 + 掩体 - 小 + 掩體 - 小 Small Personal Trench @@ -51,6 +57,8 @@ Малый персональный окоп 小型の個人用塹壕 소형 개인참호 + 小型个人掩体 + 小型個人掩體 Dig Small Trench @@ -64,6 +72,8 @@ Вырыть малый окоп 小型塹壕を掘る 소형참호 파기 + 盖小掩体 + 蓋小掩體 Envelope - Big @@ -76,6 +86,8 @@ Окоп - Большой 塹壕 - 大型 참호 - 대형 + 掩体 - 大 + 掩體 - 大 Large Personal Trench @@ -89,6 +101,8 @@ Большой персональный окоп 大型の塹壕を掘る 대형 참호 + 大型个人掩体 + 大型個人掩體 Dig Big Trench @@ -102,6 +116,8 @@ Вырыть большой окоп 大型の塹壕を掘る 대형참호 파기 + 盖大掩体 + 蓋大掩體 Confirm Dig @@ -115,6 +131,8 @@ Копать ここに掘る 여기에 파기 + 确认开工 + 確認開工 Cancel Dig @@ -128,6 +146,8 @@ Отменить копание 掘るのを中止 취소하기 + 取消动作 + 取消動作 Rotate @@ -142,6 +162,8 @@ Bращать 回転 돌리기 + 旋转 + 旋轉 Digging Trench @@ -155,6 +177,8 @@ Копание окопа 塹壕を掘っている 참호 파는중 + 正在盖掩体中 + 正在蓋掩體中 Continue Digging Trench @@ -167,6 +191,8 @@ Graben fortsetzen 계속해서 참호파기 Continua a Scavare la Trincea + 继续盖掩体 + 繼續蓋掩體 Remove Trench @@ -179,6 +205,8 @@ Schützengraben entfernen 참호 제거 Rimuove Trincea + 移除掩体 + 移除掩體 Removing Trench @@ -191,6 +219,8 @@ Entferne Schützengraben 참호 제거중... Rimuovendo la Trincea + 移除掩体中 + 移除掩體中 diff --git a/addons/tripod/stringtable.xml b/addons/tripod/stringtable.xml index 557900ee96f..1647e397460 100644 --- a/addons/tripod/stringtable.xml +++ b/addons/tripod/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Kit SSWT SSWT キット SSWT 키트 + 狙击手专用三脚架 + 狙擊手專用三腳架 Place SSWT Kit @@ -28,6 +30,8 @@ Colocar kit SSWT SSWT キットを置く SSWT 키트 배치 + 放置狙击手专用三脚架 + 放置狙擊手專用三腳架 Pick up SSWT Kit @@ -42,6 +46,8 @@ Prendi Kit SSWT SSWT キットを拾う SSWT 키트 줍기 + 捡起狙击手专用三脚架 + 撿起狙擊手專用三腳架 Adjust SSWT Kit @@ -56,6 +62,8 @@ Aggiusta Kit SSWT SSWT キットを調節 SSWT 키트 조절 + 调整狙击手专用三脚架 + 調整狙擊手專用三腳架 Done @@ -70,6 +78,8 @@ Fatto 完了 완료 + 完成 + 完成 adjust @@ -84,6 +94,8 @@ aggiusta 調節 조절 + 调整 + 調整 diff --git a/addons/ui/stringtable.xml b/addons/ui/stringtable.xml index 1bc2f8d888d..4d2c24c645b 100644 --- a/addons/ui/stringtable.xml +++ b/addons/ui/stringtable.xml @@ -12,6 +12,8 @@ Benutzeroberfläche 사용자 인터페이스 Interfaccia Utente + 使用者介面 + 使用者介面 User Interface @@ -24,6 +26,8 @@ Benutzeroberfläche 사용자 인터페이스 Interfaccia Utente + 使用者介面 + 使用者介面 This module allows toggling visible user interface parts. @@ -35,6 +39,8 @@ Dieses Modul erlaubt es, Teile der Benutzeroberfläche (UI) an- oder auszuschalten. 이 모듈은 사용자 인터페이스의 부분을 토글하는것을 가능케 해줍니다. Questo modulo consente di commutare parti di interfaccia utente visibili. + 此模块允许你调整使用者介面的任何一个元件. + 此模塊允許你調整使用者介面的任何一個元件. Allow Selective UI @@ -47,6 +53,8 @@ Erlaube selektives UI 선택적 사용자 인터페이스 허가 Permette l'UI Selettiva + 允许调整使用者介面 + 允許調整使用者介面 Allow client to modify their UI. @@ -59,6 +67,8 @@ Erlaube Clients, ihr UI zu modifizieren. 클라이언트가 선택적 사용자 인터페이스 사용하는것을 허가합니다 Permette al client di modificare la propria UI. + 允许客户端自行调整使用者介面. + 允許客戶端自行調整使用者介面. Soldier/Vehicle/Weapon Information @@ -71,6 +81,8 @@ Soldat/Fahrzeug/Waffe Information 병사/차량/무기 정보 Informazioni Soldato/Veicolo/Arma + 士兵/载具/武器资讯栏 + 士兵/載具/武器資訊欄 Vehicle Radar @@ -83,6 +95,8 @@ Fahrzeugradar 차량 레이더 Rada Veicolo + 载具雷达 + 載具雷達 Vehicle Compass @@ -95,6 +109,8 @@ Fahrzeugkompass 차량 나침반 Bussola Veicolo + 载具指北针 + 載具指北針 Command Menu @@ -107,6 +123,8 @@ Kommandomenü 지휘 메뉴 Menù di Comando + 指挥选单 + 指揮選單 Group Bar @@ -119,6 +137,8 @@ Gruppenleiste 그룹 막대 Barra del Gruppo + 小队状态栏 + 小隊狀態欄 Weapon Name @@ -131,6 +151,8 @@ Waffenname 무기 이름 Nome Arma + 武器名称 + 武器名稱 Weapon Name Background @@ -143,6 +165,8 @@ Waffenname Hintergrund 무기 이름 배경 Nome Sfondo Arma + 武器名称背景 + 武器名稱背景 Firing Mode @@ -155,6 +179,8 @@ Feuermodus 사격 모드 Modalità di Fuoco + 射击模式 + 射擊模式 Ammo Type @@ -167,6 +193,8 @@ Munitionstyp 탄종 Tipo Munizioni + 弹药类型 + 彈藥類型 Ammo Count @@ -179,6 +207,8 @@ Munitionsanzahl 탄약수 Contatore Munizioni + 弹药数量 + 彈藥數量 Magazine Count @@ -191,6 +221,8 @@ Magazinanzahl 탄창수 Contatore Caricatore + 弹匣数量 + 彈匣數量 Throwable Type @@ -203,6 +235,8 @@ Wurfobjekt-Typ 투척물 종류 Tipo Lanciabile + 投掷物类型 + 投擲物類型 Throwable Count @@ -215,6 +249,8 @@ Wurfobjekt-Anzahl 투척물 개수 Contatore Lanciabili + 投掷物数量 + 投擲物數量 Zeroing @@ -227,6 +263,8 @@ Nullung 영점 Azzeramento + 归零距离 + 歸零距離 Weapon Lower Info Background @@ -238,6 +276,8 @@ Hintergrund der unteren Waffen-Info-Leiste 무기 상세 정보 배경 Informazioni Sfondo Arma Bassa + 武器底部资讯栏背景 + 武器底部資訊欄背景 Stance @@ -250,6 +290,8 @@ Haltung 자세 Postura + 姿态 + 姿態 Stamina Bar @@ -262,6 +304,8 @@ Ausdaueranzeige 체력 막대 Barra Stamina + 体力栏 + 體力欄 Gunner Weapon Name @@ -273,6 +317,8 @@ Richtschütze Waffenname 사수 무기 명칭 Nome Arma Artigliere + 炮手武器名称 + 砲手武器名稱 Gunner Weapon Name Background @@ -284,6 +330,8 @@ Richtschütze Waffenname Hintergrund 사수 무기 명칭 배경 Nome Sfondo Arma Artigliere + 炮手武器名称背景 + 砲手武器名稱背景 Gunner Firing Mode @@ -295,6 +343,8 @@ Richtschütze Feuermodus 사수 사격 모드 Modalità di Fuoco Artigliere + 炮手射击模式 + 砲手射擊模式 Gunner Ammo Type @@ -306,6 +356,8 @@ Richtschütze Munitionstyp 사수 탄종 Tipo Munizioni Artigliere + 炮手弹药类型 + 砲手彈藥類型 Gunner Ammo Count @@ -317,6 +369,8 @@ Richtschütze Munitionsanzahl 사수 탄약 수량 Contatore Munizioni Artigliere + 炮手弹药数量 + 砲手彈藥數量 Gunner Magazine Count @@ -328,6 +382,8 @@ Richtschütze Magazinanzahl 사수 탄창 수량 Contatore Caricatore Artigliere + 炮手弹匣数量 + 砲手彈匣數量 Gunner Launchable Type @@ -339,6 +395,8 @@ Richtschütze Raketentyp 사수 발사체 종류 Tipo Lanciabile Artigliere + 炮手发射物类型 + 砲手發射物類型 Gunner Launchable Count @@ -350,6 +408,8 @@ Richtschütze Raketenanzahl 사수 발사체 수량 Contatore Lanciabili Artigliere + 炮手发射物数量 + 砲手發射物數量 Gunner Zeroing @@ -361,6 +421,8 @@ Richtschütze Nullung 사수 영점 Azzeramento Artigliere + 炮手归零距离 + 砲手歸零距離 Gunner Weapon Lower Info Background @@ -372,6 +434,8 @@ Hintergrund der unteren Waffen-Info-Leiste (Richtschütze) 사수 무기 상세 정보 배경 Informazioni Sfondo Arma Artigliere Bassa + 炮手武器底部资讯栏背景 + 砲手武器底部資訊欄背景 Vehicle Name @@ -384,6 +448,8 @@ Fahrzeugname 차량 명칭 Nome Veicolo + 载具名称 + 載具名稱 Vehicle Name Background @@ -396,6 +462,8 @@ Fahrzeugname Hintergrund 차량 명칭 배경 Nome Sfondo Veicolo + 载具名称背景 + 載具名稱背景 Vehicle Fuel Bar @@ -408,6 +476,8 @@ Fahrzeug-Treibstoffleiste 차량 연료 막대 Barra Carburante Veicolo + 载具燃料栏 + 載具燃料欄 Vehicle Speed @@ -420,6 +490,8 @@ Fahrzeuggeschwindigkeit 차량 속도 Velocità Veicolo + 载具速度 + 載具速度 Vehicle Altitude @@ -432,6 +504,8 @@ Fahrzeughöhe 차량 고도 Altitudine Veicolo + 载具高度 + 載具高度 Vehicle Damage @@ -444,6 +518,8 @@ Fahrzeugschaden 차량 피해 Danno Veicolo + 载具伤害 + 載具傷害 Vehicle Info Background @@ -456,6 +532,8 @@ Fahrzeug Info Hintergrund 차량 정보 배경 Informazioni Sfondo Veicolo + 载具资讯栏背景 + 載具資訊欄背景 Requires Soldier/Vehicle/Weapon Information. @@ -468,6 +546,8 @@ Benötigt Soldat/Fahrzeug/Waffe Information. 병사/차량/무기의 정보가 필요합니다. Richiede informazione Soldato/Veicolo/Arma. + 需要士兵/载具/武器的资讯. + 需要士兵/載具/武器的資訊. Modifying User Interface is disabled. @@ -480,6 +560,8 @@ Die Modifizierung des UI ist deaktiviert. 사용자 인터페이스 변경이 비활성화 되어있습니다. La modifica dell'Interfaccia Utente è disabilitata. + 自定使用者介面功能已关闭. + 自定使用者介面功能已關閉. Cannot modify a forced User Interface element. @@ -491,6 +573,8 @@ Gesperrte UI-Elemente können nicht modifiziert werden. 강제 사용자 인터페이스는 변경하실 수 없습니다. Impossibile modificare un elemento forzato d' Interfaccia Utente. + 无法编辑已被锁定的使用者介面元件. + 無法編輯已被鎖定的使用者介面元件. diff --git a/addons/vector/stringtable.xml b/addons/vector/stringtable.xml index 9fbed7c6bf1..278938e1b34 100644 --- a/addons/vector/stringtable.xml +++ b/addons/vector/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Vector 21 Nite ベクター 21 ナイト Vector 21 Nite + Vector 21 Nite + Vector 21 Nite Vector 21 @@ -28,6 +30,8 @@ Vector 21 ベクター 21 Vector 21 + Vector 21 + Vector 21 Rangefinder @@ -42,6 +46,8 @@ Дальномер 測距機器 거리측정기 + 测距仪 + 測距儀 Vector - Azimuth Key @@ -56,6 +62,8 @@ Vector – Азимут ベクター - 方位角キー Vector - 방위각 키 + Vector - 方位按键 + Vector - 方位按鍵 Vector - Distance Key @@ -70,6 +78,8 @@ Vector – Расстояние ベクター - 距離キー Vector - 거리 키 + Vector - 距离按键 + Vector - 距離按鍵 diff --git a/addons/vehiclelock/stringtable.xml b/addons/vehiclelock/stringtable.xml index 3fe59585338..245f318e200 100644 --- a/addons/vehiclelock/stringtable.xml +++ b/addons/vehiclelock/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Destravar veículo 車両の鍵を開ける 차량 잠금열기 + 载具解锁 + 載具解鎖 Lock Vehicle @@ -28,6 +30,8 @@ Travar Veículo 車両を施錠 차량 잠그기 + 载具上锁 + 載具上鎖 Lockpick Vehicle @@ -42,6 +46,8 @@ Usar mixa no Veículo 鍵をこじ開ける 차량 문따기 + 解锁载具 + 解鎖載具 Picking Lock... @@ -56,6 +62,8 @@ Usando Mixa... 鍵をこじ開けている・・・ 문따는중... + 解锁中... + 解鎖中... A custom key that will open a specific vehicle. @@ -70,6 +78,8 @@ Uma chave específica que abre um veículo específico. カスタム キーは特定車両を開けられます。 특정 차량을 여는 특수 열쇠 + 使用指定的钥匙来开启特定的载具. + 使用指定的鑰匙來開啟特定的載具. A Master Key will open any lock, no matter what! @@ -84,6 +94,8 @@ Uma chave mestre irá abrir qualquer fechadura, não importa qual! マスター キーは全ての鍵を開けられます。 어떤 차량도 열 수 있는 마스터키 입니다! + 万用解锁钥匙, 能解锁任何载具. + 萬用解鎖鑰匙, 能解鎖任何載具. A lockpick set that can pick the locks of most vehicles. @@ -98,6 +110,8 @@ Um set de chave mixas que pode abrir a maioria dos veículos. ピッキング ツールでは多くの車両をこじ開けられます。 거의 모든 차량을 열 수 있게 해주는 해정도구 모음입니다. + 一组解锁钥匙 (可解锁大部份载具). + 一組解鎖鑰匙 (可解鎖大部份載具). A key that should open most WEST vehicles. @@ -112,6 +126,8 @@ Uma chave que abre a maioria dos veículos ocidentais このキーは多くの WEST 車両を開けられます。 거의 모든 서방진영 차량을 여는 열쇠입니다. + 一组解锁钥匙 (可解锁大部份蓝方载具). + 一組解鎖鑰匙 (可解鎖大部份藍方載具). A key that should open most EAST vehicle. @@ -126,6 +142,8 @@ Uma chave que abre a maioria dos veículos orientais このキーは多くの EAST 車両を開けられます。 거의 모든 동방진영 차량을 여는 열쇠입니다. + 一组解锁钥匙 (可解锁大部份红方载具). + 一組解鎖鑰匙 (可解鎖大部份紅方載具). A key that should open most INDEP vehicle. @@ -140,6 +158,8 @@ Uma chave que abre a maioria dos veículos independentes このキーは多くの INDEP 車両を開けられます。 거의 모든 중립진영 차량을 여는 열쇠입니다. + 一组解锁钥匙 (可解锁大部份独立方载具). + 一組解鎖鑰匙 (可解鎖大部份獨立方載具). A key that should open most CIV vehicle. @@ -154,6 +174,8 @@ Uma chave que abre a maioria dos veículos civis. このキーは多くの CIV 車両を開けられます。 거의 모든 민간인 차량을 여는 열쇠입니다 + 一组解锁钥匙 (可解锁大部份平民载具). + 一組解鎖鑰匙 (可解鎖大部份平民載具). Vehicle Lock Setup @@ -168,6 +190,8 @@ Impostazioni Blocco Veicolo 車両の施錠の設定 차량 잠금 설정 + 载具上锁设置 + 載具上鎖設置 Lock Vehicle Inventory @@ -182,6 +206,8 @@ Blocca Inventario Veicolo 施錠されている車両のインベントリ 차량 소지품 잠금 + 上锁载具的车箱 + 上鎖載具的車箱 Locks the inventory of locked vehicles @@ -196,6 +222,8 @@ Blocca l'inventario di un veicolo bloccato 施錠されている車両の、開けないインベントリ 잠긴 차량의 소지품을 뒤지지못하게 합니다. + 上锁载具的车箱, 使玩家不能拿取/查看载具内的装备 + 上鎖載具的車箱, 使玩家不能拿取/查看載具內的裝備 Vehicle Starting Lock State @@ -210,6 +238,8 @@ Stato Iniziale del Blocco per Veicoli 開始時における車両の鍵の状態 시작시 차량 잠금 상태 + 载具初始上锁状态 + 載具初始上鎖狀態 Set lock state for all vehicles (removes ambiguous lock states) @@ -224,6 +254,8 @@ Imposta lo stato di blocco per tutti i veicoli (rimuove stati di blocco ambigui) 全車両への鍵の状態を設定します。(あいまいな鍵の状態を削除) 모든 차량의 잠금 상태를 정합니다. (애매한 잠금 상태는 모두 없앱니다.) + 设定所有载具的初始上锁状态 (移除不明确的锁定状态) + 設定所有載具的初始上鎖狀態 (移除不明確的鎖定狀態) As Is @@ -238,6 +270,8 @@ Com'è そのまま 그대로 + 无变化 + 無變化 Locked @@ -252,6 +286,8 @@ Bloccato 施錠ずみ 잠김 + 上锁 + 上鎖 Unlocked @@ -266,6 +302,8 @@ Sbloccato 開錠ずみ 열림 + 解锁 + 解鎖 Default Lockpick Strength @@ -280,6 +318,8 @@ Durabilità Default del Grimaldello ピッキング ツールの標準の有効度 기본 해정도구 설정 + 预设开锁能力 + 預設開鎖能力 Default Time to lockpick (in seconds). Default: 10 @@ -294,6 +334,8 @@ Tempo Default richiesto per forzare serrature (in secondi). Default: 10 ピッキング ツールに標準の時間を設定。(秒) 標準:10 해정을 위해 들이는 기본시간입니다(초 단위). 기본설정: 10 + 开锁时间(秒). 预设:10 + 開鎖時間(秒). 預設:10 Settings for lockpick strength and initial vehicle lock state. Removes ambiguous lock states. @@ -308,6 +350,8 @@ Impostazioni per resistenza iniziale delle serrature e stato di blocco dei veicoli. Rimuove stati di blocco ambigui. ピッキング ツールの強さと車両の鍵の初期状態を設定できます。あいまいな鍵の状態を削除します。 해정도구 설정과 시작시 차량의 잠금 상태 그리고 애매한 잠금 상태를 지우는 설정입니다. + 设定开锁能力和初始载具上锁状态. 移除不明确的锁定状态. + 設定開鎖能力和初始載具上鎖狀態. 移除不明確的鎖定狀態. Vehicle Key Assign @@ -322,6 +366,8 @@ Assegna Chiavi Veicoli 車両の鍵を割り当て 차량 열쇠 등록 + 指定载具钥匙 + 指定載具鑰匙 Sync with vehicles and players. Will handout custom keys to players for every synced vehicle. Only valid for objects present at mission start. @@ -336,6 +382,8 @@ Sincronizza con veicoli e giocatori. Distribuirà chiavi ai giocatori per ogni veicolo sincronizzato. Valido solo per oggetti presenti ad inizio missione. 車両とプレイヤへ同期します。プレイヤへ同期された車両のカスタム キーを作ります。これはミッション開始時に作成されたオブジェクトでのみ有効です。 차량과 플레이어에게 동기화됩니다. 동기화된 차량은 플레이어에게 열쇠를 지급합니다. 오직 미션 시작시에 생긴 물체들만 유효합니다. + 可同步在载具与玩家身上. 将使被同步的玩家掌握其他被同步载具的钥匙. 此模块只会在任务刚开始时触发. + 可同步在載具與玩家身上. 將使被同步的玩家掌握其他被同步載具的鑰匙. 此模塊只會在任務剛開始時觸發. diff --git a/addons/vehicles/stringtable.xml b/addons/vehicles/stringtable.xml index 77eb0f4fc5d..b50666e8324 100644 --- a/addons/vehicles/stringtable.xml +++ b/addons/vehicles/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Limitatore Attivo 速度制限を有効化 속도 제한기 켜짐 + 启用速度限制 + 啟用速度限制 Speed Limiter off @@ -28,6 +30,8 @@ Limitatore Non Attivo 速度制限を無効化 속도 제한기 꺼짐 + 停用速度限制 + 停用速度限制 Speed Limiter @@ -42,6 +46,8 @@ Limitatore di Velocità 速度制限 속도 제한기 + 速度限制器 + 速度限制器 diff --git a/addons/viewdistance/stringtable.xml b/addons/viewdistance/stringtable.xml index 0102653f24c..5d9560338ae 100644 --- a/addons/viewdistance/stringtable.xml +++ b/addons/viewdistance/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Limitatore Distanza Visiva 視界距離の制限 시야 제한기 + 视野距离限制器 + 視野距離限制器 Allows limiting maximum view distance that can be set by players. @@ -28,6 +30,8 @@ Consente di limitare la distanza visiva massima che può essere impostata dai giocatori. プレイヤーへ最大の視界距離を制限できます。 플레이어가 볼 수 있는 최대 시야를 제한합니다. + 允许玩家最大的可视距离. + 允許玩家最大的可視距離. Enable ACE viewdistance @@ -42,6 +46,8 @@ Abilita distanza visiva ACE ACE 視界距離を有効化 ACE 시야 활성화 + 启用ACE视距 + 啟用ACE視距 Enables ACE viewdistance @@ -56,6 +62,8 @@ Abilita distanza visiva ACE ACE 視界距離を有効化 ACE 시야 활성화 + 启用ACE视距 + 啟用ACE視距 View Distance Limit @@ -70,6 +78,8 @@ Limite Distanza Visiva 視界距離の制限 시야 제한기 + 视野距离限制 + 視野距離限制 Sets the limit for how high clients can raise their view distance (up to 10000) @@ -84,6 +94,8 @@ Imposta il limite massimo a cui i client possono alzare la propria distanza visiva (massimo 10000) 各クライアントが最大まで設定できる視界距離を設定します。(最大 10000) 클라이언트가 최대 얼마나 멀리 볼 수 있는지 제한을 둡니다 (10000 까지 가능) + 设定客户端最高可显示的视野距离 (最高至10000) + 設定客戶端最高可顯示的視野距離 (最高至10000) Limit for client's view distance set here and can overridden by module @@ -98,6 +110,8 @@ Limite per la distanza visiva del client impostato qui e può essere scavalcato dal modulo クライアントへの視界距離の設定や、それをモジュールにより上書きできます 클라이언트의 시야를 이 모듈로 치환할 수 있습니다. + 玩家的视距限制可在此设定, 也可透过模块改写 + 玩家的視距限制可在此設定, 也可透過模塊改寫 Client View Distance (On Foot) @@ -112,6 +126,8 @@ Distanza Visiva Client (a Piedi) クライアント側視界距離 (地上) 클라이언트 시야 (보병) + 客户端视野距离 (步行) + 客戶端視野距離 (步行) Changes in game view distance when the player is on foot. @@ -126,6 +142,8 @@ Cambia la distanza visiva in gioco quando il giocatore è a piedi. プレイヤーが地上にいる時の視界距離を変更します。 플레이어가 보병일 경우의 시야를 바꿀 수 있습니다. + 改变玩家步行时的视野距离. + 改變玩家步行時的視野距離. Client View Distance (Land Vehicle) @@ -140,6 +158,8 @@ Distanza Visiva Client (Veicolo Terrestre) クライアント側視界距離 (車両) 클라이언트 시야 (차량) + 客户端视野距离 (地面载具) + 客戶端視野距離 (地面載具) Changes in game view distance when the player is in a land vehicle. @@ -154,6 +174,8 @@ Cambia la distanza visiva in gioco quando il giocatore è in un veicolo terrestre. プレイヤーが車両の時の視界距離を変更します。 플레이어가 차량 내부일 경우의 시야를 바꿀 수 있습니다. + 改变玩家于地面载具内时的视野距离. + 改變玩家於地面載具內時的視野距離. Client View Distance (Air Vehicle) @@ -168,6 +190,8 @@ Distanza Visiva Client (Veicoli d'Aria) クライアント側視界距離 (航空機) 클라이언트 시야 (항공기) + 客户端视野距离 (空中载具) + 客戶端視野距離 (空中載具) Changes in game view distance when the player is in an air vehicle. @@ -182,6 +206,8 @@ Cambia la distanza visiva in gioco quando il giocatore è in un mezzo aereo. プレイヤーが航空機に乗っている時の視界距離を変更します。 플레이어가 항공기 내부일 경우의 시야를 바꿀 수 있습니다. + 改变玩家于空中载具内时的视野距离. + 改變玩家於空中載具內時的視野距離. Dynamic Object View Distance @@ -196,6 +222,8 @@ Distanza Visiva Oggetti Dinamica 動的なオブジェクトの描画距離 동적 물체 시야 + 动态物件的视野距离 + 動態物件的視野距離 Sets the object view distance as a coefficient of the view distance or based on field of view. FoV Based's lowest and highest value is the value which is set when enabling the option. @@ -210,6 +238,8 @@ Imposta la distanza visiva degli oggetti come un coefficiente basato sulla distanza visiva oppure basato sul campo visivo. 視野角を元にするか、視界距離によるオブジェクト描画距離を決定します。視野角を元にするオプションを有効化した場合、視野角により最低と最高値が変動します。 설정된 시야 혹은 시계(FoV)에 계수를 적용해 물체 시야를 적용합니다. 시계를 바탕으로 하는 옵션을 활성화할 경우 시계에 의한 최저와 최고치가 변동됩니다. + 设定物件可被观察的距离, 透过视野距离或是视野角度来决定. + 設定物件可被觀察的距離, 透過視野距離或是視野角度來決定. Off @@ -224,6 +254,8 @@ Disabilitato 無効 끄기 + 关闭 + 關閉 Very Low @@ -238,6 +270,8 @@ Molto Basso 最低 매우 낮음 + 非常低 + 非常低 Low @@ -252,6 +286,8 @@ Basso 낮음 + + Medium @@ -266,6 +302,8 @@ Medio 通常 중간 + + High @@ -280,6 +318,8 @@ Alto 높음 + + Very High @@ -294,6 +334,8 @@ Molto Alto 最高 매우 높음 + 非常高 + 非常高 FoV Based @@ -307,6 +349,8 @@ Champ de vision basé 視野角を元にする 시계(FoV) + 由视野角度决定 + 由視野角度決定 View Distance: @@ -321,6 +365,8 @@ Distanza Visiva: 視界距離: 시야: + 视野距离: + 視野距離: Object View Distance is @@ -335,6 +381,8 @@ Distanza Visiva Oggetti è オブジェクト描画距離は 동적 물체 시야는 + 物件视野距离为 + 物件視野距離為 That option is invalid! The limit is @@ -349,6 +397,8 @@ Questa opzione è invalida! Il limite è このオプションは無効です!制限は 이 옵션은 불가능합니다! 제한은 + 该选项是无效的! 限制是 + 該選項是無效的! 限制是 Video Settings @@ -363,6 +413,8 @@ Impostazioni Video 映像設定 영상 설정 + 影像设定 + 影像設定 diff --git a/addons/weaponselect/stringtable.xml b/addons/weaponselect/stringtable.xml index a98ae5922c4..cccd10d33c9 100644 --- a/addons/weaponselect/stringtable.xml +++ b/addons/weaponselect/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Mostrat texto ao lançar granada 手榴弾を投げるときに通知 수류탄 투척시 화면에 문자 표시 + 投掷手榴弹时显示提示讯息 + 投擲手榴彈時顯示提示訊息 Display a hint or text on grenade throw. @@ -28,6 +30,8 @@ Mostra um hint ou texto ao lançar uma granada 手榴弾を投げるときに、ヒントか文で通知します。 수류탄 투척시 화면에 문자나 힌트를 표시합니다. + 投掷手榴弹时显示提示讯息. + 投擲手榴彈時顯示提示訊息. Select Pistol @@ -42,6 +46,8 @@ Seleziona la Pistola 拳銃を選択 권총 선택 + 选择手枪 + 選擇手槍 Select Rifle @@ -56,6 +62,8 @@ Seleziona il fucile 小銃を選択 소총 선택 + 选择步枪 + 選擇步槍 Select Launcher @@ -70,6 +78,8 @@ Seleziona il lanciamissili ランチャーを選択 발사기 선택 + 选择发射器 + 選擇發射器 Select Grenade Launcher @@ -84,6 +94,8 @@ Seleziona il lanciagranate グレネード ランチャーを選択 유탄발사기 선택 + 选择榴弹发射器 + 選擇榴彈發射器 Select Binoculars @@ -98,6 +110,8 @@ Seleziona il Binocolo 双眼鏡を選択 망원경 선택 + 选择望远镜 + 選擇望遠鏡 Holster Weapon @@ -112,6 +126,8 @@ Nascondi l'arma 武器をしまう 무기 집어넣기 + 武器套 + 武器套 Engine on @@ -126,6 +142,8 @@ Включить двигатель エンジン始動 엔진 켜기 + 引擎发动 + 引擎發動 Engine off @@ -140,6 +158,8 @@ Выключить двигатель エンジン停止 엔진 끄기 + 引擎熄火 + 引擎熄火 Select Main Gun @@ -154,6 +174,8 @@ Выбрать основное оружие 主砲を選択 주포 선택 + 选择主武器 + 選擇主武器 Select Machine Gun @@ -168,6 +190,8 @@ Выбрать пулемёт 機関砲を選択 기관총 선택 + 选择机枪 + 選擇機槍 Select Missiles @@ -182,6 +206,8 @@ Выбрать ракеты ミサイルを選択 미사일 선택 + 选择导弹 + 選擇導彈 Grenade %1 @@ -196,6 +222,8 @@ Granada %1 %1 手榴弾 %1 수류탄 + 手榴弹 %1 + 手榴彈 %1 Ready Grenade @@ -210,6 +238,8 @@ Granada pronta 投てきよし 투척물 준비 + 准备手榴弹 + 準備手榴彈 Select Frag Grenade @@ -224,6 +254,8 @@ Выбрать осколочную гранату 破片手榴弾を選択 살상 투척물 선택 + 选择破片手榴弹 + 選擇破片手榴彈 Select Non-Frag Grenade @@ -238,6 +270,8 @@ Выбрать гранату その他の手榴弾を選択 비살상 투척물 선택 + 选择非破片手榴弹 + 選擇非破片手榴彈 Throw Selected Grenade @@ -252,6 +286,8 @@ Бросить выбранную гранату 選択された手榴弾を投げる 선택된 투척물 투척 + 投掷选择的手榴弹 + 投擲選擇的手榴彈 No grenades left @@ -266,6 +302,8 @@ Sem mais granadas もう手榴弾は無い 투척물 없음 + 已无手榴弹 + 已無手榴彈 No frags left @@ -280,6 +318,8 @@ Осколочных гранат нет もう破片手榴弾は無い 세열 수류탄 없음 + 已无破片手榴弹 + 已無破片手榴彈 No misc. grenades left @@ -294,6 +334,8 @@ Нелетальные гранаты закончились もうその他の手榴弾は無い 기타 투척물 없음 + 已无其他手榴弹 + 已無其他手榴彈 No grenade selected @@ -308,6 +350,8 @@ Нет выбранной гранаты 手榴弾は選択されていない 선택된 수류탄 없음 + 未选择手榴弹 + 未選擇手榴彈 Fire Smoke Launcher @@ -322,6 +366,8 @@ Lançador de fumaça 煙幕発射機を発射 연막발사기 박사 + 发射烟雾发射器 + 發射煙霧發射器 diff --git a/addons/weather/stringtable.xml b/addons/weather/stringtable.xml index 9c91d2ed8c9..5da2961d570 100644 --- a/addons/weather/stringtable.xml +++ b/addons/weather/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Mostrar informação do vento 風速を表示 바람 정보 표시 + 显示风力资讯 + 顯示風力資訊 Show Wind Info (Toggle) @@ -28,6 +30,8 @@ Mostrar informação do vento (alternar) 風速を表示 (トグル) 바람 정보 표시 (토글) + 显示风力资讯(切换) + 顯示風力資訊(切換) Weather @@ -42,6 +46,8 @@ Meteo 天候 기후 + 天气 + 天氣 Multiplayer synchronized ACE weather module @@ -56,6 +62,8 @@ Modulo Sincronizzazione Meteo ACE Multiplayer ACE 天候モジュールではマルチプレイで同期します。 ACE 기후 모듈과 멀티플레이가 동기화됩니다. + 使用ACE天气模块来同步所有客户端的天气状态(多人游戏) + 使用ACE天氣模塊來同步所有客戶端的天氣狀態(多人遊戲) Weather propagation @@ -70,6 +78,8 @@ Propagazione Meteo 天候の統一 기후 전파 + 天气状态广播 + 天氣狀態廣播 Enables server side weather propagation @@ -84,6 +94,8 @@ Abilita propagazione meteo lato server サーバ側による天候の統一を有効化 서버의 기후를 전파합니다 + 启用伺服器的天气状态广播 + 啟用伺服器的天氣狀態廣播 ACE Weather @@ -98,6 +110,8 @@ Meteo ACE ACE 天候 ACE 기후 + ACE 天气 + ACE 天氣 Overrides the default weather (editor, mission settings) with ACE weather (map based) @@ -112,6 +126,8 @@ Scavalca il meteo default (editor, parametri missione) con il meteo ACE (basato su mappa) ACE 天候 (マップを元) による標準の天候 (エディタやミッション設定) を上書きします。 기존의 기후(에디터, 임무 설정)를 ACE 기후로 치환합니다. (지도에 따라) + 使ACE天气覆盖预设的天气 (编辑任务设置) + 使ACE天氣覆蓋預設的天氣 (編輯任務設置) Sync Rain @@ -126,6 +142,8 @@ Sincronizza Pioggia 降雨の同期 비 동기화 + 同步雨 + 同步雨 Synchronizes rain @@ -140,6 +158,8 @@ Sincronizza Pioggia 降雨の同期 비를 동기화 합니다 + 同步雨 + 同步雨 Sync Wind @@ -154,6 +174,8 @@ Sincronizza Vento 風を同期 바람 동기화 + 同步风 + 同步風 Synchronizes wind @@ -168,6 +190,8 @@ Sincronizza Vento 風を同期 바람을 동기화 합니다 + 同步风 + 同步風 Sync Misc @@ -182,6 +206,8 @@ Sincronizza Misto その他を同期 기타 동기화 + 同步杂项 + 同步雜項 Synchronizes lightnings, rainbow, fog,... @@ -196,6 +222,8 @@ Sincronizza lampi, arcobaleni, nebbia,... ライティングや虹、霧などを同期 번개라던가, 무지개, 안개등을 동기화 합니다 + 同步闪电, 彩虹, 雾等等... + 同步閃電, 彩虹, 霧等等... Update Interval @@ -210,6 +238,8 @@ Intervallo Aggiornamenti 更新間隔 갱신 간격 + 更新间隔 + 更新間隔 Defines the interval (seconds) between weather updates @@ -224,6 +254,8 @@ Definisce l'intervallo (in secondi) tra aggiornamenti del meteo 天候を更新する間隔を定義します。(秒) 기후를 갱신 하는 간격을 초 단위로 정합니다. + 设定天气更新的时间间隔(秒) + 設定天氣更新的時間間隔(秒) diff --git a/addons/winddeflection/stringtable.xml b/addons/winddeflection/stringtable.xml index 86622d0558f..3bbdf868ded 100644 --- a/addons/winddeflection/stringtable.xml +++ b/addons/winddeflection/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Informação do vento 風の情報 바람 정보 + 风力资讯 + 風力資訊 Direction: %1 @@ -28,6 +30,8 @@ Direção: %1 風向: %1 방향: %1 + 风向: %1 + 風向: %1 Speed: %1 m/s @@ -42,6 +46,8 @@ Velocidade: %1 m/s 風速: %1 m/s 풍속: %1 m/s + 风速: %1 m/s + 風速: %1 m/s Weather Information @@ -56,6 +62,8 @@ Informação Meteorológica 天候の情報 기상 정보 + 天气资讯 + 天氣資訊 Humidity: %1% @@ -70,6 +78,8 @@ Humidade: %1% 湿度: %1% 습도: %1% + 湿度: %1% + 濕度: %1% Wind Deflection @@ -84,6 +94,8 @@ Deviazione del Vento 風向による変化 풍향 변화 + 风偏 + 風偏 Wind Deflection @@ -98,6 +110,8 @@ Deviazione del Vento 風向による変化 풍향 변화 + 风偏 + 風偏 Enables wind deflection @@ -112,6 +126,8 @@ Abilita deviazione del vento 風向による変化を有効化 풍향 변화를 적용합니다 + 开启风偏效果 + 開啟風偏效果 Vehicle Enabled @@ -126,6 +142,8 @@ Abilita per Veicoli 車両へ有効化 차량 적용 + 启用风偏给载具 + 啟用風偏給載具 Enables wind deflection for static/vehicle gunners @@ -140,6 +158,8 @@ Abilita deviazione del vento per artiglieri di statiche/veicoli 重火器や車両へ、風による変化を有効化 차량이나 거치식 무기 사수에게 풍향 변화를 적용합니다 + 使风偏作用在固定式武器与载具炮手身上 + 使風偏作用在固定式武器與載具砲手身上 Simulation Interval @@ -154,6 +174,8 @@ Intervallo Simulazione シミュレーションの間隔 재현 간격 + 模拟间隔 + 模擬間隔 Defines the interval between every calculation step @@ -168,6 +190,8 @@ Definisce l'intervallo tra ogni passaggio di calcolo 各計算に適用させる間隔を定義します 매 계산마다의 간격을 정의합니다 + 定义每个计算之间的时间间隔 + 定義每個計算之間的時間間隔 Simulation Radius @@ -182,6 +206,8 @@ Raggio Simulazione シミュレーション半径 재현 범위 + 模拟半径 + 模擬半徑 Defines the radius around the player (in meters) at which projectiles are wind deflected @@ -196,6 +222,8 @@ Definisce il raggio attorno al giocatore (in metri) dove viene applicata la deviazione del vento ai proiettili プレイヤーの周囲に適用させる風による弾道の変化の半径を定義します (メートル) 플레이어 주위로 발사체가 풍향 변화의 영향을 받는 범위를 정합니다 (미터) + 定义玩家多少半径范围内(单位公尺)子弹会受到风偏的引响 + 定義玩家多少半徑範圍內(單位公尺)子彈會受到風偏的引響 Wind influence on projectiles trajectory @@ -210,6 +238,8 @@ Influenza del vento sulla traiettoria dei proiettili 風が弾道へ影響させます 발사체의 궤도에 풍향 변화를 줍니다. + 风力的大小会引响到弹道的轨迹 + 風力的大小會引響到彈道的軌跡 diff --git a/addons/yardage450/stringtable.xml b/addons/yardage450/stringtable.xml index 9b364d212d9..fe43a21b9ab 100644 --- a/addons/yardage450/stringtable.xml +++ b/addons/yardage450/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,6 +14,8 @@ Yardage 450 ヤードエイジ 450 Yardage 450 + Yardage 450 + Yardage 450 Laser Rangefinder @@ -28,6 +30,8 @@ Télémètre laser レーザー測距機 레이저 거리측정기 + 雷射测距仪 + 雷射測距儀 Yardage 450 - Power Button @@ -42,6 +46,8 @@ Yardage 450 - bouton d'alimentation ヤードエイジ 450 - 起動ボタン Yardage 450 - 전원 버튼 + Yardage 450 - 电源按钮 + Yardage 450 - 電源按鈕 diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index a4e0e9fb47d..ec8d660235e 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -14,6 +14,8 @@ Impostazioni Zeus Zeus 設定 Zeus 설정 + 宙斯设定 + 宙斯設定 Provides control over various aspects of Zeus. @@ -28,6 +30,8 @@ Fornisce controllo su vari aspetti di Zeus. Zeus のさまざまな側面を強化します。 Zeus에게 다양한 방면의 조작을 제공해줍니다 + 提供宙斯各个方面的控制权. + 提供宙斯各個方面的控制權. Ascension Messages @@ -42,6 +46,8 @@ Messaggi di Ascesa 転生表示 재림 메세지 + 上任宙斯讯息 + 上任宙斯訊息 Display global popup messages when a player is assigned as Zeus. @@ -56,6 +62,8 @@ Mostra messaggi popup globali quando un giocatore viene assegnato come Zeus. プレイヤーが Zeus になるとき、全体へポップアップ表示をおこないます。 플레이어가 Zeus 될 시 서버에 이를 알리는 팝업이 등장합니다. + 当一位玩家被指定为宙斯时显示全球讯息. + 當一位玩家被指定為宙斯時顯示全球訊息. Zeus Eagle @@ -70,6 +78,8 @@ Aquila Zeus Zeus イーグル Zeus 독수리 + 宙斯鹰眼模式 + 宙斯鷹眼模式 Spawn an eagle that follows the Zeus camera. @@ -84,6 +94,8 @@ Crea un'aquila che segue la camera Zeus. Zeus カメラを追うイーグルを出現します。 Zeus의 카메라를 따라다니는 독수리를 생성합니다. + 生成一个老鹰跟着宙斯的摄影机 + 生成一個老鷹跟著宙斯的攝影機 Wind Sounds @@ -98,6 +110,8 @@ Suoni del Vento 風の音 바람 소리 + 风声 + 風聲 Play wind sounds when Zeus remote controls a unit. @@ -112,6 +126,8 @@ Esegui rumori di vento quando Zeus controlla un'unità in remoto. ユニットが Zeus 遠隔操作になったとき、風の音がします。 Zeus가 유닛을 조작할 때 바람소리가 납니다. + 当宙斯开始控制单位时利用风的声音提示 + 當宙斯開始控制單位時利用風的聲音提示 Ordnance Warning @@ -126,6 +142,8 @@ Allarme Esplosivi 砲撃の警告 폭격 경고 + 武装警告 + 武裝警告 Play a radio warning when Zeus uses ordnance. @@ -140,6 +158,8 @@ Riproduci un messaggio radio quando Zeus usa esplosivi. Zeus が砲撃をつかうときに、無線で警告を流します。 Zeus가 폭격시 경고 무전을 재생합니다. + 当宙斯开始攻击时使用无线电警告 + 當宙斯開始攻擊時使用無線電警告 Reveal Mines @@ -154,6 +174,8 @@ Rivela Mine 地雷の表示 지뢰 표시 + 显示地雷 + 顯示地雷 Reveal mines to allies and place map markers. @@ -168,6 +190,8 @@ Rivela mine ad alleati e piazza marcatori in mappa. 友軍に地雷と地図へ設置マーカーを表示します。 아군에게 지도 상의 모든 지뢰를 표시합니다. + 地图将标记队友放置的地雷 + 地圖將標記隊友放置的地雷 Reveal to Allies @@ -182,6 +206,8 @@ Rivela ad Alleati 友軍へ表示 모든 아군에게 표시 + 透露给盟军 + 透露給盟軍 Allies + Map Markers @@ -196,6 +222,8 @@ Alleati + Marcatori Mappa 友軍と地図マーカー 아군 + 지도 마커 + 显示盟军+地图标记 + 顯示盟軍+地圖標記 Toggle Captive @@ -210,6 +238,8 @@ Attivatore Prigioniero 捕虜としてトグル 포로 토글 + 切换俘虏 + 切換俘虜 Defend Area @@ -221,6 +251,8 @@ Verteidige Gebiet 지역 방어 Difendi Area + 防御区域 + 防禦區域 Update Editable Objects @@ -229,6 +261,8 @@ 수정 가능한 물체 갱신 Màj les objets éditables Aggiorna Oggetti Modificabili + 更新可编辑的物件 + 更新可編輯的物件 All Curators @@ -237,6 +271,8 @@ Wszyscy kuratorzy Tous curateurs Tutti i Moderatori + 所有编辑者 + 所有編輯者 Apply changes to all curators @@ -245,6 +281,8 @@ Zatwierdź zmiany dla wszystkich kuratorów Applique les changements à tous les curateurs Applica i cambiamenti a tutti i moderatori + 确认变更给所有编辑者 + 確認變更給所有編輯者 Remove Objects @@ -253,6 +291,8 @@ Usuń obiekty Enlève les objets Rimuovi Oggetti + 移除物件 + 移除物件 Remove existing instead of adding new @@ -261,6 +301,8 @@ Usuń istniejące zamiast dodawać nowe Enlève les objets existants au lieu d'en ajouter de nouveaux Rimuove gli esistenti e li sostituisce con i nuovi + 移除已存在的物件来新增新的物件 + 移除已存在的物件來新增新的物件 Global AI Skill @@ -272,6 +314,8 @@ Globale KI-Fähigkeit 서버 인공지능 실력 Abilità AI Globale + AI技巧设定 + AI技巧設定 General Skill @@ -283,6 +327,8 @@ Allgemeine Fähigkeit 전반적 실력 Abilità Generale + 总体技巧 + 總體技巧 Changes: general, commanding, courage @@ -294,6 +340,8 @@ Ändert: general, commanding, courage 변화: 전반적, 지휘, 사기 Cambia: generale, comando, + 改变: 战斗技巧, 指挥技巧, 勇气大小 + 改變: 戰鬥技巧, 指揮技巧, 勇氣大小 Accuracy @@ -305,6 +353,8 @@ Genauigkeit 명중률 Precisione + 精确度 + 精確度 Changes: aimingAccuracy @@ -316,6 +366,8 @@ Ändert: aimingAccuracy 변화: 조준 명중률 Cambia: aimingAccuracy + 改变: 瞄准精确度 + 改變: 瞄準精確度 Weapon Handling @@ -327,6 +379,8 @@ Waffenhandhabung 무기 조작 Uso dell'Arma + 武器掌握 + 武器掌握 Changes: aimingShake, aimingSpeed, reloadSpeed @@ -338,6 +392,8 @@ Ändert: aimingShake, aimingSpeed, reloadSpeed 변화: 조준시 흔들림, 조준 속도, 재장전 속도 Cambia: aimingShake, aimingSpeed, reloadSpeed + 改变: 手晃幅度, 瞄准速度, 重新装填速度 + 改變: 手晃幅度, 瞄準速度, 重新裝填速度 Spotting @@ -349,6 +405,8 @@ Aufklärung 탐지 Ricognizione + 索敌能力 + 索敵能力 Changes: spotDistance, spotTime @@ -360,6 +418,8 @@ Ändert: spotDistance, spotTime 변화: 탐지 거리, 탐지까지의 시간 Cambia: spotDistance, spotTime + 改变: 搜索距离, 发现时间 + 改變: 搜索距離, 發現時間 Seek Cover @@ -371,6 +431,8 @@ Deckungssuche 엄폐물 찾기 Cerca Copertura + 寻找掩护 + 尋找掩護 Should AI seek cover @@ -382,6 +444,8 @@ Soll KI nach Deckung suchen 인공지능이 엄폐물을 찾아갑니다 Le AI dovrebbero cercare una copertura + 决定AI是否会寻找掩护 + 決定AI是否會尋找掩護 Auto Combat @@ -393,6 +457,8 @@ Automatischer Kampfmodus 자동 교전 Combattimento Automatico + 自动交战 + 自動交戰 Should AI automatically switch to combat mode @@ -404,6 +470,8 @@ Soll KI automatisch in Kampfmodus umschalten 인공지능이 자동적으로 교전 상태에 돌입합니다 Le AI dovrebbero passare in modalità di combattimento automaticamente + 决定AI是否会自动与敌人交战 + 決定AI是否會自動與敵人交戰 Group Side @@ -415,6 +483,8 @@ Gruppenseite 진영 측 Fazione del Gruppo + 小队阵营 + 小隊陣營 Patrol Area @@ -426,6 +496,8 @@ Patrouillengebiet 정찰 구역 Area di Pattugliamento + 巡逻区域 + 巡邏區域 Toggle Surrender @@ -440,6 +512,8 @@ Attivatore Resa 捕虜としてトグル 항복 토글 + 切换投降 + 切換投降 Add/Remove FRIES @@ -448,6 +522,8 @@ Dodaj/usuń FRIES Aj./Enlève FRIES Aggiungi/Rimuovi FRIES + 增加/移除快速垂降进场撤离系统 + 增加/移除快速垂降進場撤離系統 %1 is not fastrope compatible. @@ -456,6 +532,8 @@ %1 nie jest kompatybilny ze zjazdem linowym. %1 n'est pas compatible. %1 non è compatibile con il fastrope. + %1无法使用快速绳降系统. + %1無法使用快速繩降系統. Unable to remove FRIES, ropes are deployed. @@ -464,6 +542,8 @@ Nie można usunąć FRIES, liny są wypuszczone. Pas en mesure d'enlever le FRIES, les cordes ne sont pas déployées. Impossibile rimuovere le FRIES, le corde sono ancora dispiegate + 无法移除快速绳降系统, 因为绳索已被释放出来. + 無法移除快速繩降系統, 因為繩索已被釋放出來. Teleport Players @@ -475,6 +555,8 @@ Spieler teleportieren 플레이어 순간이동 Teletrasporta Giocatori + 传送玩家 + 傳送玩家 Player @@ -486,6 +568,8 @@ Spieler 플레이어 Giocatore + 玩家 + 玩家 Teleport selected player to module position @@ -497,6 +581,8 @@ Teleportiert ausgewählten Spieler zur Position des Moduls 모듈의 위치로 플레이어 순간이동 Teletrasporta il giocatore selezionato nella posizione del modulo + 传送选定的玩家至模块位置 + 傳送選定的玩家至模塊位置 Teleport Group @@ -508,6 +594,8 @@ Gruppe teleportieren 그룹 순간이동 Teletrasporta Gruppo + 传送小队 + 傳送小隊 Teleports all units in group @@ -519,6 +607,8 @@ Teleportiert alle Einheiten der Gruppe 그룹내에 모든 인원을 순간이동 시킵니다 Teletrasporta tutte le unità del gruppo + 传送全部小队成员 + 傳送全部小隊成員 Toggle Unconscious @@ -533,6 +623,8 @@ Attivatore Incoscienza 気絶をトグル 기절 토글 + 切换昏迷 + 切換昏迷 Search Area @@ -544,6 +636,8 @@ Durchsuche Gebiet 지역 수색 Area di Ricerca + 搜索区域 + 搜索區域 Search Nearby Building @@ -555,6 +649,8 @@ Durchsuche nahegelegenes Gebäude 근처 건물 수색 Cerca Edifici nelle Vicinanze + 搜索附近的建筑物 + 搜索附近的建築物 Assign Medic @@ -568,6 +664,8 @@ Assigner médecin 衛生兵に割り当て 의무병 임명 + 指定医疗兵 + 指定醫療兵 Assign Medical Vehicle @@ -581,6 +679,8 @@ Assigner véhicule médical 医療車両として割り当て 의무 차량 임명 + 指定医疗载具 + 指定醫療載具 Assign Medical Facility @@ -594,6 +694,8 @@ Assigner installation médicale 医療施設として割り当て 의무 시설 임명 + 指定医疗设施 + 指定醫療設施 Toggle Simulation @@ -602,6 +704,8 @@ 재현 토글 Bascule Simulation Attivatore Simulazione + 切换模拟 + 切換模擬 Add Spare Wheel @@ -615,6 +719,8 @@ Ajouter pièce de rechange 予備タイヤを追加 예비 바퀴 추가 + 增加备用轮胎 + 增加備用輪胎 Add Spare Track @@ -628,6 +734,8 @@ Ajouter une chenille de secours 車両へ予備タイヤを追加します。 예비 궤도 추가 + 增加备用履带 + 增加備用履帶 Unit must be alive @@ -642,6 +750,8 @@ Usar somente em unidades vivas ユニットを生存させます 대상이 반드시 살아있어야 합니다 + 单位必须是活着 + 單位必須是活著 Unit must be infantry @@ -656,6 +766,8 @@ Usar somente em infantaria desmontada ユニットを歩兵にさせます 대상이 반드시 보병이어야 합니다 + 单位必须是步兵 + 單位必須是步兵 Unit must be a structure @@ -669,6 +781,8 @@ L'unité doit être une structure ユニットを構造物とします 대상이 반드시 건축물이어야만 합니다 + 单位必须是建筑 + 單位必須是建築 Unit must be a vehicle @@ -682,6 +796,8 @@ L'unité doit être un véhicule ユニットを車両とします 대상이 반드시 차량이어야만 합니다 + 单位必须是载具 + 單位必須是載具 Unit must be a vehicle with cargo space @@ -695,6 +811,8 @@ L'unité doit être un véhicule avec de l'espace de cargaison ユニットをカーゴ スペースがある車両にします 대상이 반드시 화물을 실을 수 있는 차량이어야 합니다 + 单位必须是载具且有载货空间 + 單位必須是載具且有載貨空間 Unit must have cargo space left @@ -708,6 +826,8 @@ L'unité doit avoir de l'espace libre en cargaison ユニットへカーゴ スペースを与えます 대상의 화물공간이 남아있어야합니다 + 单位必须有剩余的载货空间 + 單位必須有剩餘的載貨空間 Unit must not be captive @@ -722,6 +842,8 @@ L'unità non dev'essere un prigioniero ユニットを捕虜にさせません 대상이 포로면 안됩니다 + 单位不能被俘虏 + 單位不能被俘虜 Unit must belong to an appropriate side @@ -733,6 +855,8 @@ Einheit muss einer passenden Seite angehören 대상이 적절한 진영에 속해야만합니다 L'unità deve appartenere ad una fazione coerente + 单位必须属于一个合适的一边 + 單位必須屬於一個合適的一邊 Nearest building is too far away @@ -744,6 +868,8 @@ Nächstgelegenes Gebäude ist zu weit entfernt 가장가까운 건물이 너무 멈 L'edificio più vicino è troppo lontano + 最近的房子离太远了 + 最近的房子離太遠了 Place on a unit @@ -758,6 +884,8 @@ Piazza su una unità ユニットの上に設置 대상에 배치하기 + 放置在一个单位上 + 放置在一個單位上 Requires an addon that is not present @@ -772,6 +900,8 @@ Richiede un addon che non è presente 要求されたアドオンは存在していません 현재 없는 에드온을 필요로 합니다 + 需要一个不存在的插件 + 需要一個不存在的插件 Add Objects to Curator @@ -785,6 +915,8 @@ Fügt Objekte zum Kurator hinzu キュレーターにオブジェクトを追加 큐레이터에 물체 추가 + 增加物件给任务策划人 + 增加物件給任務策劃人 Adds any spawned object to all curators in the mission @@ -798,6 +930,8 @@ Fügt jedes gespawnte Objekt allen Kuratoren der Mission hinzu ミッション内で作成されたオブジェクトに全キュレーターを追加 미션 내 큐레이터에 모든 생성 물체 추가 + 在任务中生成物件给所有的任务策划人 + 在任務中生成物件給所有的任務策劃人 Cargo: @@ -809,6 +943,8 @@ Ladung: 화물: Cargo: + 货物: + 貨物: Task Position @@ -820,6 +956,8 @@ Position der Aufgabe 작업 위치 Posizione Incarico + 目标位置 + 目標位置 Select a position to perform the task at @@ -830,6 +968,8 @@ Wähle eine Position, an der die Aufgabe ausgeführt werden soll 작업을 할 위치를 선택하십시요 Seleziona una posizione per eseguire l'incarico + 选择要执行目标的位置 + 選擇要執行目標的位置 Task Radius @@ -840,6 +980,8 @@ Radius der Aufgabe 작업 반경 Raggio Incarico + 目标半径 + 目標半徑 Radius to perform the task within @@ -850,6 +992,8 @@ Radius, in dem die Aufgabe ausgeführt werden soll 다음 반경 내에서 작업 Raggio per eseguire un incarico + 设定目标范围半径 + 設定目標範圍半徑 Invalid radius entered @@ -861,24 +1005,32 @@ Ungültiger Radius eingegeben 알 수 없는 반경 입력됨 Raggio Invalido Inserito + 错误的半径值 + 錯誤的半徑值 Suppressive Fire Fuoco di Soppressione Tir de suppression 制圧射撃 + 火力压制 + 火力壓制 Add full arsenal to object Ajouter arsenal complet à l'objet Aggiunge arsenale completo all'oggetto オブジェクトに完全なアーセナルを追加 + 增加完整的虚拟军火库到物件上 + 增加完整的虛擬軍火庫到物件上 Remove arsenal from object Retirer arsenal de l'objet Rimuove arsenale completo dall'oggetto オブジェクトからアーセナルを削除 + 移除物件上的虚拟军火库 + 移除物件上的虛擬軍火庫 diff --git a/optionals/compat_adr_97/stringtable.xml b/optionals/compat_adr_97/stringtable.xml index 895734fd9b9..52e08de2b18 100644 --- a/optionals/compat_adr_97/stringtable.xml +++ b/optionals/compat_adr_97/stringtable.xml @@ -13,6 +13,8 @@ P90 TR (Fekete) P90 TR (Preto) P90 TR (黒) + P90 TR (黑色) + P90 TR (黑色) P90 TR (Khaki) @@ -26,6 +28,8 @@ P90 TR (Khaki) P90 TR (Caqui) P90 TR (土埃) + P90 TR (卡其色) + P90 TR (卡其色) P90 TR (Camo) @@ -39,6 +43,8 @@ P90 TR (Terepmintás) P90 TR (Camuflagem) P90 TR (迷彩) + P90 TR (迷彩) + P90 TR (迷彩) P90 TR (Hex) @@ -52,6 +58,8 @@ P90 TR (Hex) P90 TR (Hex) P90 TR (蜂巣) + P90 TR (數位蜂巢迷彩) + P90 TR (数位蜂巢迷彩) P90 (Black) @@ -65,6 +73,8 @@ P90 (Fekete) P90 (Preto) P90 (黒) + P90 (黑色) + P90 (黑色) P90 (Khaki) @@ -78,6 +88,8 @@ P90 (Khaki) P90 (Caqui) P90 (土埃) + P90 (卡其色) + P90 (卡其色) P90 (Camo) @@ -91,6 +103,8 @@ P90 (Terepmintás) P90 (Camuflagem) P90 (迷彩) + P90 (迷彩) + P90 (迷彩) P90 (Hex) @@ -104,6 +118,8 @@ P90 (Hex) P90 (Hex) P90 (蜂巣) + P90 (數位蜂巢迷彩) + P90 (数位蜂巢迷彩) PS90 TR (Black) @@ -117,6 +133,8 @@ PS90 TR (Fekete) PS90 TR (Preto) PS90 TR (黒) + PS90 TR (黑色) + PS90 TR (黑色) PS90 TR (Khaki) @@ -130,6 +148,8 @@ PS90 TR (Khaki) PS90 TR (Caqui) PS90 TR (土埃) + PS90 TR (卡其色) + PS90 TR (卡其色) PS90 TR (Camo) @@ -143,6 +163,8 @@ PS90 TR (Terepmintás) PS90 TR (Camuflagem) PS90 TR (迷彩) + PS90 TR (迷彩) + PS90 TR (迷彩) PS90 TR (Hex) @@ -156,6 +178,8 @@ PS90 TR (Hex) PS90 TR (Hex) PS90 TR (蜂巣) + PS90 TR (數位蜂巢迷彩) + PS90 TR (数位蜂巢迷彩) PS90 (Black) @@ -169,6 +193,8 @@ PS90 (Fekete) PS90 (Preto) PS90 (黒) + PS90 (黑色) + PS90 (黑色) PS90 (Khaki) @@ -182,6 +208,8 @@ PS90 (Khaki) PS90 (Caqui) PS90 (土埃) + PS90 (卡其色) + PS90 (卡其色) PS90 (Camo) @@ -195,6 +223,8 @@ PS90 (Terepmintás) PS90 (Camuflagem) PS90 (迷彩) + PS90 (迷彩) + PS90 (迷彩) PS90 (Hex) @@ -208,6 +238,8 @@ PS90 (Hex) PS90 (Hex) PS90 (蜂巣) + PS90 (數位蜂巢迷彩) + PS90 (数位蜂巢迷彩) 5.7mm 50Rnd Mag @@ -221,6 +253,8 @@ Caricatore 5.7mm 50Rnd Магазин из 50-ти 5,7 мм 5.7mm 50 発入り弾倉 + 5.7mm 50發 彈匣 + 5.7mm 50发 弹匣 Caliber: 5.7mm<br />Rounds: 50<br />Used in: P90 @@ -234,6 +268,8 @@ Calibre: 5.7mm<br />Cartuchos: 50<br />Usado em: P90 Kaliber: 5,7mm<br />Lövedékek: 50<br />Használható: P90 口径: 5.7mm<br />装弾数: 50<br />次で使用: P90 + 口徑: 5.7mm<br />發數: 50<br />使用於: P90 + 口径: 5.7mm<br />发数: 50<br />使用于: P90 - \ No newline at end of file + From 91465632eef7ffe9d660572f9af9574f22c150bc Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 22 Jun 2017 09:47:06 -0500 Subject: [PATCH 159/198] compats - Fix config name for resupply vics (#5300) --- optionals/compat_rhs_afrf3/CfgVehicles.hpp | 2 +- optionals/compat_rhs_usf3/CfgVehicles.hpp | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/optionals/compat_rhs_afrf3/CfgVehicles.hpp b/optionals/compat_rhs_afrf3/CfgVehicles.hpp index 20ee84eea55..23e922ec685 100644 --- a/optionals/compat_rhs_afrf3/CfgVehicles.hpp +++ b/optionals/compat_rhs_afrf3/CfgVehicles.hpp @@ -384,7 +384,7 @@ class CfgVehicles { class rhs_gaz66_ammo_base: rhs_gaz66_vmf { transportAmmo = 0; - ace_rearm_supply = 1200; + ace_rearm_defaultSupply = 1200; }; class MRAP_02_base_F; diff --git a/optionals/compat_rhs_usf3/CfgVehicles.hpp b/optionals/compat_rhs_usf3/CfgVehicles.hpp index e72a1a111f4..af6c231efe8 100644 --- a/optionals/compat_rhs_usf3/CfgVehicles.hpp +++ b/optionals/compat_rhs_usf3/CfgVehicles.hpp @@ -292,19 +292,19 @@ class CfgVehicles { class rhsusf_M977A4_usarmy_wd: rhsusf_HEMTT_A4_base {}; class rhsusf_M977A4_AMMO_usarmy_wd: rhsusf_M977A4_usarmy_wd { transportAmmo = 0; - ace_rearm_supply = 1200; + ace_rearm_defaultSupply = 1200; }; class rhsusf_M977A4_BKIT_usarmy_wd: rhsusf_M977A4_usarmy_wd {}; class rhsusf_M977A4_AMMO_BKIT_usarmy_wd: rhsusf_M977A4_BKIT_usarmy_wd { transportAmmo = 0; - ace_rearm_supply = 1200; + ace_rearm_defaultSupply = 1200; }; class rhsusf_M977A4_BKIT_M2_usarmy_wd: rhsusf_M977A4_usarmy_wd {}; class rhsusf_M977A4_AMMO_BKIT_M2_usarmy_wd: rhsusf_M977A4_BKIT_M2_usarmy_wd { transportAmmo = 0; - ace_rearm_supply = 1200; + ace_rearm_defaultSupply = 1200; }; class rhsusf_M978A4_usarmy_wd: rhsusf_M977A4_usarmy_wd { @@ -349,7 +349,7 @@ class CfgVehicles { class rhsusf_m113_usarmy: rhsusf_m113tank_base {}; class rhsusf_m113_usarmy_supply: rhsusf_m113_usarmy { transportAmmo = 0; - ace_rearm_supply = 1200; + ace_rearm_defaultSupply = 1200; }; class APC_Tracked_03_base_F; From e6b875b2525bb2b01eb4d3657cc501f8861ba487 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 23 Jun 2017 11:31:59 -0500 Subject: [PATCH 160/198] Add XEH to ace_module (#5304) --- addons/modules/config.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/modules/config.cpp b/addons/modules/config.cpp index 662b1cb349b..6475b90cf41 100644 --- a/addons/modules/config.cpp +++ b/addons/modules/config.cpp @@ -14,6 +14,7 @@ class CfgPatches { }; }; +class CBA_Extended_EventHandlers; class CfgVehicles { class Logic; class Module_F: Logic { @@ -23,6 +24,7 @@ class CfgVehicles { class ACE_Module: Module_F { class EventHandlers { init = QUOTE(_this call DFUNC(moduleInit)); + class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {}; }; }; }; From e4ac748f6f485feb9d509367b6b82e89cd048d05 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 23 Jun 2017 11:31:19 -0500 Subject: [PATCH 161/198] Handle ace_cargo_canLoad set to scalar (#5306) --- addons/cargo/functions/fnc_initObject.sqf | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/addons/cargo/functions/fnc_initObject.sqf b/addons/cargo/functions/fnc_initObject.sqf index d2ce8e5b58a..d59249c31ba 100644 --- a/addons/cargo/functions/fnc_initObject.sqf +++ b/addons/cargo/functions/fnc_initObject.sqf @@ -21,10 +21,13 @@ TRACE_2("params",_object,_type); // If object had size given to it via eden/public then override config canLoad setting private _canLoadPublic = _object getVariable [QGVAR(canLoad), false]; +if (!(_canLoadPublic isEqualType false)) then { + WARNING_4("%1[%2] - Variable %3 is %4 - Should be bool",_object,_type,QGVAR(canLoad),_canLoadPublic); +}; private _canLoadConfig = getNumber (configFile >> "CfgVehicles" >> _type >> QGVAR(canLoad)) == 1; // Nothing to do here if object can't be loaded -if !(_canLoadConfig || _canLoadPublic) exitWith {}; +if !(_canLoadConfig || {_canLoadPublic in [true, 1]}) exitWith {}; // Servers and HCs do not require action menus (beyond this point) if !(hasInterface) exitWith {}; @@ -47,7 +50,7 @@ if (_canLoadConfig) then { private _condition = { //IGNORE_PRIVATE_WARNING ["_target", "_player"]; GVAR(enable) && - {(_target getVariable [QGVAR(canLoad), getNumber (configFile >> "CfgVehicles" >> (typeOf _target) >> QGVAR(canLoad)) == 1])} && + {(_target getVariable [QGVAR(canLoad), getNumber (configFile >> "CfgVehicles" >> (typeOf _target) >> QGVAR(canLoad))]) in [true, 1]} && {locked _target < 2} && {alive _target} && {[_player, _target, []] call EFUNC(common,canInteractWith)} && From dc303aa29f8fda529add775f5dc8e18d5e588ecc Mon Sep 17 00:00:00 2001 From: classic Date: Sat, 24 Jun 2017 01:39:06 +0900 Subject: [PATCH 162/198] Japanese translation d02dacf (#5309) * add the Jpn translation for repair add the Japanese translation for repair * minor fix to Jpn translation for medical minor fix to Jpn translation for medical --- addons/medical/stringtable.xml | 20 ++++++++++---------- addons/repair/stringtable.xml | 1 + 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 8061d2511c2..058bc9ee0ef 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -394,7 +394,7 @@ Infúzió sós vizzel... Effettuo la rasfusione di soluzione salina Transfundindo Soro... - 血しょうを投与中・・・ + 生理食塩水を投与中・・・ 생리식염수 수혈중... 施打生理食盐水中 ... 施打生理食鹽水中 ... @@ -410,7 +410,7 @@ Infúzió vérplazmával... Effettu la trasfusione di plasma... Transfundindo Plasma... - 生理食塩水を投与中・・・ + 血しょうを投与中・・・ 혈장 수혈중... 输血浆中 ... 輸血漿中 ... @@ -794,7 +794,7 @@ Sós víz adása intravénásan (1000ml) Effettua trasfusione salina EV (1˙000ml) Administrar Soro IV (1000ml) - 血しょう IV (1000ml) をあたえる + 生理食塩水 IV (1000ml) をあたえる IV 생리식염수 수혈 (1000ml) 注射生理食盐水 (1000ml) 注射生理食鹽水 (1000ml) @@ -810,7 +810,7 @@ Sós víz adása intravénásan (500ml) Effettua trasfusione salina EV (500ml) Administrar Soro IV (500ml) - 血しょう IV (500ml) をあたえる + 生理食塩水 IV (500ml) をあたえる IV 생리식염수 수혈 (500ml) 注射生理食盐水 (500ml) 注射生理食鹽水 (500ml) @@ -826,7 +826,7 @@ Sós víz adása intravénásan (250ml) Effettua trasfusione salina EV (250ml) Administrar Soro IV (250ml) - 血しょう IV (250ml) をあたえる + 生理食塩水 IV (250ml) をあたえる IV 생리식염수 수혈 (250ml) 注射生理食盐水 (250ml) 注射生理食鹽水 (250ml) @@ -1098,7 +1098,7 @@ Una benda apposita, utilizzata per coprire una ferita, la quale viene applicata su di essa una volta fermata l'emorragia. Uma curativo, material específico para cobrir um ferimento que é aplicado assim que o sangramento é estancando. Obvaz je vhodným způsobem upravený sterilní materiál, určený k překrytí rány, případně k fixaci poranění. - ドレッシングは、傷口を血液凝固剤でおおうようにできていて、つかうと出血の原因を取りさります。 + 緊急圧迫包帯は、傷口を血液凝固剤でおおうようにできていて、つかうと出血の原因を取りさります。 드레싱, 출혈을 막고서 상처를 덮기위해 쓰는 물건입니다. 用于覆盖伤口以防止出血, 透过敷料的止血剂来让出血慢慢停止. 用於覆蓋傷口以防止出血, 透過敷料的止血劑來讓出血慢慢停止. @@ -1447,7 +1447,7 @@ Plasma EV (1000ml) Plasma IV (1000ml) Krevní plazma (1000ml) - 生理食塩水 IV (1000ml) + 血しょう IV (1000ml) 혈장 IV (250ml) 血浆 (1000ml) 血漿 (1000ml) @@ -1495,7 +1495,7 @@ Plasma EV (500ml) Plasma IV (500ml) Krevní plazma (500ml) - 生理食塩水 IV (500ml) + 血しょう IV (500ml) 혈장 IV (500ml) 血浆 (500ml) 血漿 (500ml) @@ -1511,7 +1511,7 @@ Plasma EV (250ml) Plasma IV (250ml) Krevní plazma (250ml) - 生理食塩水 IV (250ml) + 血しょう IV (250ml) 혈장 IV (250ml) 血浆 (250ml) 血漿 (250ml) diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index ea34a04f9c2..45a6bf622b9 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -1422,6 +1422,7 @@ Adv. Engineer Adv. Geniere + 上級工兵 专精 專精 From e9fb0e9b20a33c668111a64a2d8edf50c1ff77e6 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 8 Jul 2017 14:01:15 -0500 Subject: [PATCH 163/198] Add cargo space to huron containers (#5315) --- addons/cargo/CfgVehicles.hpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/addons/cargo/CfgVehicles.hpp b/addons/cargo/CfgVehicles.hpp index 4a553cd0562..b8d5b30415b 100644 --- a/addons/cargo/CfgVehicles.hpp +++ b/addons/cargo/CfgVehicles.hpp @@ -355,10 +355,28 @@ class CfgVehicles { class CargoNet_01_base_F: Slingload_base_F { //Slingload pallets GVAR(size) = 6; }; - class Slingload_01_Base_F: Slingload_base_F { //Huron 20ft containers + + //Huron 20ft containers + class Slingload_01_Base_F: Slingload_base_F { GVAR(canLoad) = 0; GVAR(size) = -1; }; + class B_Slingload_01_Cargo_F: Slingload_01_Base_F { // Huron Cargo + GVAR(space) = 20; + GVAR(hasCargo) = 1; + }; + class B_Slingload_01_Ammo_F: Slingload_01_Base_F { // Huron Ammo + GVAR(space) = 8; + GVAR(hasCargo) = 1; + }; + class B_Slingload_01_Medevac_F: Slingload_01_Base_F { // Huron Medevac + GVAR(space) = 8; + GVAR(hasCargo) = 1; + }; + class B_Slingload_01_Repair_F: Slingload_01_Base_F { // Huron Repair + GVAR(space) = 12; + GVAR(hasCargo) = 1; + }; // Taru pods class Pod_Heli_Transport_04_base_F: Slingload_base_F { From 08ab3307afd014e759f20490aec53b5693eded7f Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 8 Jul 2017 14:01:05 -0500 Subject: [PATCH 164/198] Allow repairing from slingload pods (#5316) --- addons/repair/functions/fnc_isNearRepairVehicle.sqf | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/addons/repair/functions/fnc_isNearRepairVehicle.sqf b/addons/repair/functions/fnc_isNearRepairVehicle.sqf index 463e281faa5..b0bd4b3cd1b 100644 --- a/addons/repair/functions/fnc_isNearRepairVehicle.sqf +++ b/addons/repair/functions/fnc_isNearRepairVehicle.sqf @@ -18,11 +18,9 @@ params ["_unit"]; TRACE_1("params",_unit); -private ["_nearObjects", "_return"]; +private _nearObjects = nearestObjects [_unit, ["Air", "LandVehicle", "Slingload_base_F"], 20]; -_nearObjects = nearestObjects [_unit, ["Air","LandVehicle"], 20]; - -_return = false; +private _return = false; { if ([_x] call FUNC(isRepairVehicle)) exitWith {_return = true;}; } forEach _nearObjects; From c45927b5f6414731d930b887b1fcba88b4b2addf Mon Sep 17 00:00:00 2001 From: 0dr Date: Sat, 8 Jul 2017 17:07:39 +0200 Subject: [PATCH 165/198] fix #5324 (#5325) --- .../spottingscope/data/ace_spottingscope.p3d | Bin 4040306 -> 4040276 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/addons/spottingscope/data/ace_spottingscope.p3d b/addons/spottingscope/data/ace_spottingscope.p3d index 969d0b37f51582e600fb5f12bf3ba7fecedfa141..2298b9c8f9e81ce68a36958ad1367d615910d065 100644 GIT binary patch delta 148 zcmWN=O;UjY007WIR6wh8l2Q&GIhJ-JBP-`r-kE}P7m6-jxmHqk<5or0otnCadrd75+8%X0>FRmbH!w8v gV(itMiFZ>oA3n{$gJzicilTKp47NX=Rj?@i0qndp$^ZZW delta 175 zcmXZNITFDD0638f=AfkMp~f9B19+~30M z>xh6I5eH6Oxbfh{ho1mJBtnFV5G6*O1W8h)kx|HyB}bkDMM{)W(Wp>Gr$(IyOoCQl(S3^6AmStV^lkrs4jk!0s2Xm*|B-=mX_nZ4{tmO}Nr#7kp From fa3743ca54aad05851dd1ac00a417e34fcf73e84 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sat, 8 Jul 2017 16:48:39 +0200 Subject: [PATCH 166/198] Correct new Chinese stringtable identifiers (#5334) --- addons/advanced_ballistics/stringtable.xml | 106 +- addons/advanced_fatigue/stringtable.xml | 54 +- addons/advanced_throwing/stringtable.xml | 86 +- addons/aircraft/stringtable.xml | 14 +- addons/atragmx/stringtable.xml | 18 +- addons/attach/stringtable.xml | 70 +- addons/ballistics/stringtable.xml | 570 ++++---- addons/captives/stringtable.xml | 110 +- addons/cargo/stringtable.xml | 106 +- addons/chemlights/stringtable.xml | 162 +-- addons/common/stringtable.xml | 278 ++-- addons/concertina_wire/stringtable.xml | 18 +- addons/cookoff/stringtable.xml | 38 +- addons/dagr/stringtable.xml | 18 +- addons/disarming/stringtable.xml | 6 +- addons/disposable/stringtable.xml | 14 +- addons/dogtags/stringtable.xml | 26 +- addons/dragging/stringtable.xml | 26 +- addons/explosives/stringtable.xml | 250 ++-- addons/fastroping/stringtable.xml | 38 +- addons/fcs/stringtable.xml | 26 +- addons/finger/stringtable.xml | 42 +- addons/flashlights/stringtable.xml | 26 +- addons/flashsuppressors/stringtable.xml | 30 +- addons/frag/stringtable.xml | 54 +- addons/gestures/stringtable.xml | 82 +- addons/gforces/stringtable.xml | 10 +- addons/goggles/stringtable.xml | 22 +- addons/grenades/stringtable.xml | 98 +- addons/gunbag/stringtable.xml | 26 +- addons/hearing/stringtable.xml | 74 +- addons/hellfire/stringtable.xml | 6 +- addons/huntir/stringtable.xml | 66 +- addons/interact_menu/stringtable.xml | 114 +- addons/interaction/stringtable.xml | 266 ++-- addons/inventory/stringtable.xml | 38 +- addons/javelin/stringtable.xml | 6 +- addons/kestrel4500/stringtable.xml | 30 +- addons/laser/stringtable.xml | 18 +- addons/laserpointer/stringtable.xml | 30 +- addons/logistics_uavbattery/stringtable.xml | 26 +- addons/logistics_wirecutter/stringtable.xml | 22 +- addons/magazinerepack/stringtable.xml | 38 +- addons/main/stringtable.xml | 10 +- addons/map/stringtable.xml | 138 +- addons/map_gestures/stringtable.xml | 78 +- addons/maptools/stringtable.xml | 62 +- addons/markers/stringtable.xml | 6 +- addons/medical/stringtable.xml | 1408 +++++++++---------- addons/medical_ai/stringtable.xml | 6 +- addons/medical_blood/stringtable.xml | 14 +- addons/medical_menu/stringtable.xml | 222 +-- addons/microdagr/stringtable.xml | 130 +- addons/minedetector/stringtable.xml | 34 +- addons/missileguidance/stringtable.xml | 50 +- addons/missionmodules/stringtable.xml | 70 +- addons/mk6mortar/stringtable.xml | 134 +- addons/movement/stringtable.xml | 18 +- addons/mx2a/stringtable.xml | 10 +- addons/nametags/stringtable.xml | 138 +- addons/nightvision/stringtable.xml | 62 +- addons/nlaw/stringtable.xml | 14 +- addons/optics/stringtable.xml | 42 +- addons/optionsmenu/stringtable.xml | 150 +- addons/overheating/stringtable.xml | 138 +- addons/overpressure/stringtable.xml | 10 +- addons/parachute/stringtable.xml | 26 +- addons/quickmount/stringtable.xml | 46 +- addons/rangecard/stringtable.xml | 30 +- addons/realisticnames/stringtable.xml | 810 +++++------ addons/rearm/stringtable.xml | 166 +-- addons/refuel/stringtable.xml | 130 +- addons/reload/stringtable.xml | 26 +- addons/reloadlaunchers/stringtable.xml | 18 +- addons/repair/stringtable.xml | 474 +++---- addons/respawn/stringtable.xml | 98 +- addons/safemode/stringtable.xml | 18 +- addons/sandbag/stringtable.xml | 54 +- addons/scopes/stringtable.xml | 118 +- addons/slideshow/stringtable.xml | 62 +- addons/spectator/stringtable.xml | 258 ++-- addons/spottingscope/stringtable.xml | 14 +- addons/switchunits/stringtable.xml | 70 +- addons/tacticalladder/stringtable.xml | 30 +- addons/tagging/stringtable.xml | 70 +- addons/trenches/stringtable.xml | 62 +- addons/tripod/stringtable.xml | 26 +- addons/ui/stringtable.xml | 170 +-- addons/vector/stringtable.xml | 22 +- addons/vehiclelock/stringtable.xml | 98 +- addons/vehicles/stringtable.xml | 14 +- addons/viewdistance/stringtable.xml | 106 +- addons/weaponselect/stringtable.xml | 94 +- addons/weather/stringtable.xml | 66 +- addons/winddeflection/stringtable.xml | 62 +- addons/yardage450/stringtable.xml | 14 +- addons/zeus/stringtable.xml | 306 ++-- 97 files changed, 4830 insertions(+), 4830 deletions(-) diff --git a/addons/advanced_ballistics/stringtable.xml b/addons/advanced_ballistics/stringtable.xml index 8e942364a9a..631acc92c76 100644 --- a/addons/advanced_ballistics/stringtable.xml +++ b/addons/advanced_ballistics/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Mostrar Informação do Vento 風の情報を表示 바람의 정보를 표시 - 顯示風況 - 显示风况 + 顯示風況 + 显示风况 Show Protractor @@ -30,8 +30,8 @@ Mostrar Transferidor 分度器を表示 각도기 표시 - 顯示量角器 - 显示量角器 + 顯示量角器 + 显示量角器 Advanced Ballistics @@ -46,8 +46,8 @@ Balistica Avanzata アドバンスド バリスティックス 고급 탄도학 - 先進彈道系統 - 先进弹道系统 + 先進彈道系統 + 先进弹道系统 Advanced Ballistics @@ -62,8 +62,8 @@ Balistica Avanzata アドバンスド バリスティックス 고급 탄도학 - 先進彈道系統 - 先进弹道系统 + 先進彈道系統 + 先进弹道系统 Enables advanced ballistics @@ -78,8 +78,8 @@ Abilita Balistica Avanzata アドバンスド バリスティックスを有効化 고급 탄도학을 적용합니다 - 啟用先進彈道系統 - 启用先进弹道系统 + 啟用先進彈道系統 + 启用先进弹道系统 Enabled For Snipers @@ -94,8 +94,8 @@ Abilita per Tiratori Scelti 狙撃手へ有効化 저격수만 적용 - 啟用給狙擊手 - 启用给狙击手 + 啟用給狙擊手 + 启用给狙击手 Enables advanced ballistics for non local snipers (when using high power optics) @@ -110,8 +110,8 @@ Abilita Balistica Avanzata per Tiratori Scelti non locali (con ottiche ad alto potenziale) 非ローカルの狙撃手 (高倍率スコープを使っている場合)へアドバンスド バリスティックスを有効化します 고급 탄도학을 비-저격수 인원에게도 적용합니다(고성능 조준경을 사용시) - 啟用先進彈道系統給非本地狙擊手(當使用高倍率光學瞄鏡時) - 启用先进弹道系统给非本地狙击手(当使用高倍率光学瞄镜时) + 啟用先進彈道系統給非本地狙擊手(當使用高倍率光學瞄鏡時) + 启用先进弹道系统给非本地狙击手(当使用高倍率光学瞄镜时) Enabled For Group Members @@ -126,8 +126,8 @@ Abilita per Membri del Gruppo グループ メンバーへ有効化 그룹 멤버도 적용 - 啟用給小隊成員 - 启用给小队成员 + 啟用給小隊成員 + 启用给小队成员 Enables advanced ballistics for non local group members @@ -142,8 +142,8 @@ Abilita Balistica Avanzata per Membri non locali del Gruppo 非ローカルのグループ メンバーへアドバンスド バリスティックスを有効化します 고급 탄도학을 비-그룹멤버에게도 적용합니다 - 啟用先進彈道系統給非本地小隊成員 - 启用先进弹道系统给非本地小队成员 + 啟用先進彈道系統給非本地小隊成員 + 启用先进弹道系统给非本地小队成员 Enabled For Everyone @@ -158,8 +158,8 @@ Abilita per tutti 全員に有効化 모두에게 적용 - 啟用給所有人 - 启用给所有人 + 啟用給所有人 + 启用给所有人 Enables advanced ballistics for all non local players (enabling this may degrade performance during heavy firefights in multiplayer) @@ -174,8 +174,8 @@ Abilita Balistica Avanzata per tutti i giocatori non locali (abilitare questo parametro potrebbe ridurre le prestazioni durante scontri intensi in multiplayer) 非ローカルの全プレイヤーへアドバンスド バリスティックスを有効化します (マルチプレイで大規模な銃撃戦がおこなわれると、動作の低下を招きます) 고급 탄도학을 모든 비-로컬그룹에게도 적용합니다(적용 후 대규모 전투시 성능하락을 유발할 수 있습니다) - 啟用先進彈道系統給所有非本地玩家 (啟用此功能後,在多人連線大量交火時可能會降低效能) - 启用先进弹道系统给所有非本地玩家 (启用此功能后,在多人连线大量交火时可能会降低效能) + 啟用先進彈道系統給所有非本地玩家 (啟用此功能後,在多人連線大量交火時可能會降低效能) + 启用先进弹道系统给所有非本地玩家 (启用此功能后,在多人连线大量交火时可能会降低效能) Always Enabled For Group Members @@ -190,8 +190,8 @@ Sempre abilitato per Membri del Gruppo 常にグループ メンバーへ有効化 그룹 멤버에게 항상 적용 - 永遠啟用給小隊成員 - 永远启用给小队成员 + 永遠啟用給小隊成員 + 永远启用给小队成员 Always enables advanced ballistics when a group member fires @@ -206,8 +206,8 @@ Abilita sempre Balistica Avanzata quando un membro del gruppo spara グループ メンバーが射撃した時、常にアドバンスド バリスティックスを有効化します 그룹 멤버가 발사시 항상 고급 탄도학을 적용합니다 - 當小隊成員開火時,永遠啟用先進彈道系統 - 当小队成员开火时,永远启用先进弹道系统 + 當小隊成員開火時,永遠啟用先進彈道系統 + 当小队成员开火时,永远启用先进弹道系统 Disabled In FullAuto Mode @@ -222,8 +222,8 @@ Disabilita in modalità di fuoco automatico フルオートでは無効化 조정간 자동시 비활성화 - 在全自動模式時關閉 - 在全自动模式时关闭 + 在全自動模式時關閉 + 在全自动模式时关闭 Disables the advanced ballistics during full auto fire @@ -238,8 +238,8 @@ Disabilita Balistica Avanzata durante fuoco automatico フルオートで射撃中ではアドバンスド バリスティックスを無効化します 조정간 자동시 고급 탄도학을 비활성화 합니다 - 在全自動模式開火時,關閉先進彈道系統 - 在全自动模式开火时,关闭先进弹道系统 + 在全自動模式開火時,關閉先進彈道系統 + 在全自动模式开火时,关闭先进弹道系统 Enable Ammo Temperature Simulation @@ -254,8 +254,8 @@ Abilita simulazione della temperatura delle munizioni 弾薬の温度シミュレーションを有効化 탄약 온도 구현 적용 - 啟用彈藥溫度模擬系統 - 启用弹药温度模拟系统 + 啟用彈藥溫度模擬系統 + 启用弹药温度模拟系统 Muzzle velocity varies with ammo temperature @@ -270,8 +270,8 @@ La velocità dello sparo varia a seconda della temperatura delle munizioni 弾薬の温度により初速値を変化させます 탄약 온도에 비례해 총구 속도가 달라집니다 - 子彈初速將隨彈藥溫度而有所變化 - 子弹初速将随弹药温度而有所变化 + 子彈初速將隨彈藥溫度而有所變化 + 子弹初速将随弹药温度而有所变化 Enable Barrel Length Simulation @@ -286,8 +286,8 @@ Abilita simulazione della lunghezza della canna 銃身長のシミュレーションを有効化 총열 길이 구현 적용 - 啟用槍管長度模擬系統 - 启用枪管长度模拟系统 + 啟用槍管長度模擬系統 + 启用枪管长度模拟系统 Muzzle velocity varies with barrel length @@ -302,8 +302,8 @@ La velocità di sparo varia a seconda della lunghezza della canna 銃身長により初速値を変化させます 총구 속도가 총열에 비례해 달라집니다 - 子彈初速將隨槍管長度而有所變化 - 子弹初速将随枪管长度而有所变化 + 子彈初速將隨槍管長度而有所變化 + 子弹初速将随枪管长度而有所变化 Enable Bullet Trace Effect @@ -318,8 +318,8 @@ Abilita effetto dei Proiettili Traccianti 弾丸の痕跡表示を有効化 예광탄 효과 적용 - 啟用曳光彈效果 - 启用曳光弹效果 + 啟用曳光彈效果 + 启用曳光弹效果 Enables a bullet trace effect to high caliber bullets (only visible when looking through high power optics) @@ -334,8 +334,8 @@ Abilita effetto dei proiettili traccianti di alto calibro (visibile solo attraverso ottiche ad alto potenziale) 大口径の銃弾による弾丸の痕跡表示を有効化します (高倍率スコープを介してでしか見れません) 대구경 탄환에 예광탄 효과를 적용합니다(오직 고성능 조준경 사용시에만 보입니다) - 啟用曳光彈效果給大口徑子彈 (只有透過高倍率光學瞄鏡才能看到) - 启用曳光弹效果给大口径子弹 (只有透过高倍率光学瞄镜才能看到) + 啟用曳光彈效果給大口徑子彈 (只有透過高倍率光學瞄鏡才能看到) + 启用曳光弹效果给大口径子弹 (只有透过高倍率光学瞄镜才能看到) Simulation Interval @@ -350,8 +350,8 @@ Intervallo Simulazione シミュレーション間隔 구현 간격 - 模擬間隔 - 模拟间隔 + 模擬間隔 + 模拟间隔 Defines the interval between every calculation step @@ -366,8 +366,8 @@ Definisce l'intervallo tra ogni step di calcolo 各計算ごとの間隔を定義します 각 계산 단위의 간격을 정의합니다 - 定義每個模擬計算之間的時間間隔 - 定义每个模拟计算之间的时间间隔 + 定義每個模擬計算之間的時間間隔 + 定义每个模拟计算之间的时间间隔 Simulation Radius @@ -382,8 +382,8 @@ Raggio Simulazione シミュレーションの適用範囲 구현 범위 - 模擬半徑 - 模拟半径 + 模擬半徑 + 模拟半径 Defines the radius around the player (in meters) at which advanced ballistics are applied to projectiles @@ -398,8 +398,8 @@ Definisce il raggio attorno al giocatore (in metri) per cui la Balistica Avanzata è applicata ai proiettili プレイヤーの周囲にアドバンスド バリスティックスによる弾道を適用させる範囲を半径で定義します (メートル) 플레이어 주위의 발사체를 고급 탄도학으로 정의하는 범위를 정합니다(미터) - 以玩家的半徑距離(公尺)定義先進彈道系統啟用範圍 - 以玩家的半径距离(公尺)定义先进弹道系统启用范围 + 以玩家的半徑距離(公尺)定義先進彈道系統啟用範圍 + 以玩家的半径距离(公尺)定义先进弹道系统启用范围 This module enables advanced ballistics simulation - meaning the trajectory of projectiles is influenced by variables like air temperature, atmospheric pressure, humidity, gravity, the type of ammunition and the weapon from which it was fired. @@ -414,8 +414,8 @@ Questo modulo abilita la simulazione della Balistica Avanzata - cioè la traiettoria dei proiettili è influenzata da variabili come la temperatura dell'aria, pressione atmosferica, umidità, gravità, il tipo di munizione e l'arma da cui è sparata このモジュールはアドバンスド バリスティックスを有効化します。弾道は気温や気圧、湿度、重力、弾薬の種類、発射する武器から影響を受けるようになります。 이 모듈은 고급 탄도학을 적용시킵니다 - 이는 발사체의 궤적이 기온, 대기압, 습도, 중력, 탄환의 종류와 어느 무기에서 발사되는지에 따라 영향을 받습니다. - 該模塊實現先進的彈道仿真 - 這意味著子彈的軌跡是由空氣溫度、大氣壓力、濕度、重力、彈藥類型以及射擊的武器所影響. - 该模块实现先进的弹道仿真 - 这意味着子弹的轨迹是由空气温度、大气压力、湿度、重力、弹药类型以及射击的武器所影响. + 該模塊實現先進的彈道仿真 - 這意味著子彈的軌跡是由空氣溫度、大氣壓力、濕度、重力、彈藥類型以及射擊的武器所影響. + 该模块实现先进的弹道仿真 - 这意味着子弹的轨迹是由空气温度、大气压力、湿度、重力、弹药类型以及射击的武器所影响. diff --git a/addons/advanced_fatigue/stringtable.xml b/addons/advanced_fatigue/stringtable.xml index 3ee90435dc7..9aba5d1a04d 100644 --- a/addons/advanced_fatigue/stringtable.xml +++ b/addons/advanced_fatigue/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -9,8 +9,8 @@ 성능 요인 Facteur de performance Fattore Prestazione - 體力值 - 体力值 + 體力值 + 体力值 Influences the overall performance of all players with no custom factor. Higher means better. @@ -20,8 +20,8 @@ 모든 성능이 임의로 설정된 값 없이 영향받습니다. 값이 클수록 더 나은 성능을 발휘합니다 Influence les performances générales de tous les joueurs sans facteurs personalisés. Une valeur plus élevée implique de meilleures performances. Influenza qualsiasi prestazione di tutti i giocatori smuniti di un fattore personalizzato. Maggiore significa migliore. - 影響所有玩家的體力表現. 值越高代表體力越好. - 影响所有玩家的体力表现. 值越高代表体力越好. + 影響所有玩家的體力表現. 值越高代表體力越好. + 影响所有玩家的体力表现. 值越高代表体力越好. Influences the overall performance of this unit. Higher means better. @@ -31,8 +31,8 @@ 모든 성능이 이 단위로 영향을 받습니다. 값이 클수록 더 나은 성능을 발휘합니다 Influence les performances générales de cette unité. Une valeur plus élevée implique de meilleures performances. Influenza qualsiasi prestazione di questa unità. Maggiore significa migliore. - 影響這個單位的體力表現. 值越高代表體力越好. - 影响这个单位的体力表现. 值越高代表体力越好. + 影響這個單位的體力表現. 值越高代表體力越好. + 影响这个单位的体力表现. 值越高代表体力越好. Recovery Factor @@ -42,8 +42,8 @@ 회복 요인 Facteur de récupération Fattore Recupero - 回復值 - 回复值 + 回復值 + 回复值 Changes how fast the player recovers when resting. Higher is faster. @@ -53,8 +53,8 @@ 얼마나 빨리 회복하는지를 바꿉니다. 값이 클수록 더 나은 성능을 발휘합니다 Change la vitesse à laquelle les joueurs récupèrent leur endurance lorsqu'ils se reposent. Une valeur plus élevée implique une récupération plus rapide. Determina in quanto tempo il giocatore recupera quando rilassato. Maggiore significa migliore. - 決定玩家休息多久就能回復體力. 值越高恢復越快. - 决定玩家休息多久就能回复体力. 值越高恢复越快. + 決定玩家休息多久就能回復體力. 值越高恢復越快. + 决定玩家休息多久就能回复体力. 值越高恢复越快. Load Factor @@ -64,8 +64,8 @@ 부담 요인 Facteur d'encombrement Fattore Caricamento - 負重量 - 负重量 + 負重量 + 负重量 Increases or decreases how much weight influences the players performance. Zero means equipment weight has no performance influence. @@ -75,8 +75,8 @@ 플레이어가 무게에 따라 얼마나 영향받는지를 증가시키거나 감소시킵니다. 0의 경우 플레이어가 장비 무게에 영향받지 않습니다. Augmente ou réduit l'influence que le poids à sur les performances des joueurs. Zéro implique que le poids de l'équipement n'a pas d'influence sur les performances. Incrementa o decrementa quanto il peso influenza le prestazioni dei giocatori. Zero significa che il peso dell'equipaggiamento non ha alcuna influenza nelle prestazioni. - 增加或降低玩家所能承受的負重量. 如設定值為0, 代表裝備的重量將不會影響到玩家的體力表現. - 增加或降低玩家所能承受的负重量. 如设定值为0, 代表装备的重量将不会影响到玩家的体力表现. + 增加或降低玩家所能承受的負重量. 如設定值為0, 代表裝備的重量將不會影響到玩家的體力表現. + 增加或降低玩家所能承受的负重量. 如设定值为0, 代表装备的重量将不会影响到玩家的体力表现. Terrain Gradient Factor @@ -86,8 +86,8 @@ 지형 경사도 요인 Facteur d'inclinaison du terrain Fattore Pendenza Terreno - 地形陡峭影響值 - 地形陡峭影响值 + 地形陡峭影響值 + 地形陡峭影响值 Sets how much steep terrain increases stamina loss. Higher means higher stamina loss. @@ -97,8 +97,8 @@ 경사도에 따라 얼마나 피로해지는지를 정합니다. 값이 클수록 더 많은 피로를 유발합니다. Configure l'influence de l'inclinaison du terrain sur la perte d'endurance. Une valeur plus élevée implique une perte d'endurance plus importante. Stabilisce quanto la pendenza del terreno incrementa la perdita della stamina. Maggiore significa più stamina persa. - 設定陡峭的地形將會影響多少體力的流失. 值越高代表體力流失越快. - 设定陡峭的地形将会影响多少体力的流失. 值越高代表体力流失越快. + 設定陡峭的地形將會影響多少體力的流失. 值越高代表體力流失越快. + 设定陡峭的地形将会影响多少体力的流失. 值越高代表体力流失越快. Enabled @@ -108,8 +108,8 @@ 활성화 Activé Abilitato - 啟用 - 启用 + 啟用 + 启用 Enables/disables Advanced Fatigue. @@ -119,8 +119,8 @@ 고급 피로도 활성화/비활성화 Active/désactive la fatigue avancée. Abilita/disabilita la Fatica Avanzata. - 啟用/關閉進階體力. - 启用/关闭进阶体力. + 啟用/關閉進階體力. + 启用/关闭进阶体力. Show stamina bar @@ -130,8 +130,8 @@ 피로도 막대 Afficher la barre d'endurance Mostra barra stamina - 顯示體力條 - 显示体力条 + 顯示體力條 + 显示体力条 Shows the stamina bar. @@ -141,8 +141,8 @@ 피로도 막대를 보여줍니다. Affiche la barre d'endurance. Mostra la barra della stamina. - 顯示體力條. - 显示体力条. + 顯示體力條. + 显示体力条. diff --git a/addons/advanced_throwing/stringtable.xml b/addons/advanced_throwing/stringtable.xml index ddb53c333f5..66dbd8e5003 100644 --- a/addons/advanced_throwing/stringtable.xml +++ b/addons/advanced_throwing/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -10,8 +10,8 @@ 고급 투척 Lancé amélioré Lancio Avanzato - 進階投擲 - 进阶投掷 + 進階投擲 + 进阶投掷 Allows changing advanced throwing behaviour. @@ -22,8 +22,8 @@ 고급 투척 행위를 허가합니다 Permet de changer la configuration du lancé amélioré. Permette il cambiamento della modalità di tiro. - 允許使用更多不同的投擲方式. - 允许使用更多不同的投掷方式. + 允許使用更多不同的投擲方式. + 允许使用更多不同的投掷方式. Enable Advanced Throwing @@ -34,8 +34,8 @@ 고급 투척 활성화 Active le lancé amélioré Abilita Lancio Avanzato - 啟用進階投擲 - 启用进阶投掷 + 啟用進階投擲 + 启用进阶投掷 Enables advanced throwing system. @@ -46,8 +46,8 @@ 고급 투척을 활성화 합니다 Active le système de lancé amélioré. Abilita il sistema di lancio avanzato. - 啟用進階投擲系統. - 启用进阶投掷系统. + 啟用進階投擲系統. + 启用进阶投掷系统. Show Throw Arc @@ -58,8 +58,8 @@ 투척 궤적 표시 Afficher l'arc de lancé Mostra Arco di Tiro - 顯示投擲軌道 - 显示投掷轨道 + 顯示投擲軌道 + 显示投掷轨道 Enables visualization of the throw arc (where throwable will fly). @@ -70,8 +70,8 @@ 투척 궤도를 시각화 합니다(투척물이 어디로 갈지) Active la visualisation de l'arc de lancé (où l'objet lancé va atterrir). Abilita la visualizzazione dell'arco del tiro (dove l'oggetto lanciabile volerà). - 顯示投擲軌道幫助投擲. - 显示投掷轨道帮助投掷. + 顯示投擲軌道幫助投擲. + 显示投掷轨道帮助投掷. Show Throwing Mouse Controls @@ -82,8 +82,8 @@ 마우스 조작 표시 Afficher les contrôles à la souris du lancé Mostra Comandi Mouse Lancio - 顯示滑鼠投擲控制提示 - 显示滑鼠投掷控制提示 + 顯示滑鼠投擲控制提示 + 显示滑鼠投掷控制提示 Enables visual cues for mouse controls when throwable is prepared. @@ -94,8 +94,8 @@ 투척물을 준비시 마우스 조작을 시각화해서 보여줍니다 Active les aides visuels pour les controles à la souris lorsqu'un lancé est préparé. Abilita la visualizzazione dei controlli del mouse quando l'oggetto lanciabile è pronto. - 開啟後會在準備投擲時, 顯示滑鼠相關操作. - 开启后会在准备投掷时, 显示滑鼠相关操作. + 開啟後會在準備投擲時, 顯示滑鼠相關操作. + 开启后会在准备投掷时, 显示滑鼠相关操作. Enable Throwables Pick Up @@ -106,8 +106,8 @@ 투척물 줍기 활성화 Active la récupération des objets lancés Abilita Raccogli Oggetti - 啟用可撿取地面投擲物 - 启用可捡取地面投掷物 + 啟用可撿取地面投擲物 + 启用可捡取地面投掷物 Enables ability to pick up throwables from the ground. @@ -118,8 +118,8 @@ 땅에 떨어진 투척물을 주울 수 있게 해줍니다. Active la capacité de récupérer les objets lancés sur le sol. Abilita la possibilità di raccogliere un oggetto lanciabile da terra. - 啟用後, 可撿取地面上的投擲物. - 启用后, 可捡取地面上的投掷物. + 啟用後, 可撿取地面上的投擲物. + 启用后, 可捡取地面上的投掷物. Enable Attached Throwables Pick Up @@ -130,8 +130,8 @@ 부착 투척물 줍기 활성화 Active le ramassage d'objets lançables attachés Abilita Raccogli Oggetti Lanciabili da altri Oggetti - 啟用可撿取附著投擲物 - 启用可捡取附着投掷物 + 啟用可撿取附著投擲物 + 启用可捡取附着投掷物 Enables ability to pick up throwables from attached objects. @@ -142,8 +142,8 @@ 부착된 투척물을 주울 수 있게 해줍니다. Active la capacité à ramasser les objets lançables attaché à d'autres objets. Abilita la possibilità di raccogliere gli oggetti lanciabili dagli altri oggetti. - 啟用後, 可撿取附著在物件上的投擲物. - 启用后, 可捡取附着在物件上的投掷物. + 啟用後, 可撿取附著在物件上的投擲物. + 启用后, 可捡取附着在物件上的投掷物. Prepare/Change Throwable @@ -154,8 +154,8 @@ 투척물 준비/변경 Préparer/changer d'objet Prepara/Cambia Oggetto lanciabile - 準備/變更投擲物 - 准备/变更投掷物 + 準備/變更投擲物 + 准备/变更投掷物 Throwable Drop Mode (Hold) @@ -166,8 +166,8 @@ 투척물 떨어뜨리기 모드(꾹눌러서) Mode de lancé de l'objet (Tenir) Modalità Oggetto Gettabile (Mantenere) - 投擲模式 (按住) - 投掷模式 (按住) + 投擲模式 (按住) + 投掷模式 (按住) Throwable Drop Mode (Toggle) @@ -178,8 +178,8 @@ 투척물 떨어뜨리기 모드(토글) Mode de lancé de l'objet (Basculer) Modalità Oggetto lanciabile Gettabile (Interruttore) - 投擲模式 (切換) - 投掷模式 (切换) + 投擲模式 (切換) + 投掷模式 (切换) Primed @@ -190,8 +190,8 @@ 뇌관 작동 Amorcer Armato - 引信開始燃燒 - 引信开始燃烧 + 引信開始燃燒 + 引信开始燃烧 Throw @@ -202,8 +202,8 @@ 던지기 Lancer Lanciare - 投擲 - 投掷 + 投擲 + 投掷 (Scroll) Change Mode @@ -214,8 +214,8 @@ (마우스 휠) 모드 변경 (Molette souris) Changer de mode (Scorrere) Cambio Modalità - (滾輪) 變更模式 - (滚轮) 变更模式 + (滾輪) 變更模式 + (滚轮) 变更模式 (Scroll) Extend @@ -226,8 +226,8 @@ (마우스 휠) 연장 (Molette souris) Etendre (Scorrere) Estendere - (滾輪) 延長 - (滚轮) 延长 + (滾輪) 延長 + (滚轮) 延长 (Click) Cook @@ -238,8 +238,8 @@ (클릭) 예열 (Clique) Dégoupiller (Click) Arma - (點擊) 提早拉開引信 - (点击) 提早拉开引信 + (點擊) 提早拉開引信 + (点击) 提早拉开引信 Pick Up @@ -250,8 +250,8 @@ 줍기 Ramasser Raccogli - 撿取 - 捡取 + 撿取 + 捡取 diff --git a/addons/aircraft/stringtable.xml b/addons/aircraft/stringtable.xml index a1a4dfe617a..0c523972428 100644 --- a/addons/aircraft/stringtable.xml +++ b/addons/aircraft/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ XM301 XM301 XM301 - XM301 - XM301 + XM301 + XM301 Open Cargo Door @@ -30,8 +30,8 @@ Abrir porta de carga カーゴ ドアを開く 화물칸 개방 - 開啟貨艙門 - 开启货舱门 + 開啟貨艙門 + 开启货舱门 Close Cargo Door @@ -46,8 +46,8 @@ Fechar porta de carga カーゴ ドアを閉じる 화물칸 폐쇄 - 關閉貨艙門 - 关闭货舱门 + 關閉貨艙門 + 关闭货舱门 diff --git a/addons/atragmx/stringtable.xml b/addons/atragmx/stringtable.xml index 28cea1bcf31..4c11ea8add1 100644 --- a/addons/atragmx/stringtable.xml +++ b/addons/atragmx/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ ATragMX ATragMX ATragMX - ATragMX - ATragMX + ATragMX + ATragMX Open ATragMX @@ -30,8 +30,8 @@ Abrir ATragMX ATragMX を開く ATragMX 열기 - 開啟ATragMX - 开启ATragMX + 開啟ATragMX + 开启ATragMX Rugged PDA with ATragMX @@ -46,8 +46,8 @@ PDA Robusto com ATragMX ATragMX 付きの携行型端末 ATragMX가 달린 PDA - 裝有軍用PDA的ATragMX - 装有军用PDA的ATragMX + 裝有軍用PDA的ATragMX + 装有军用PDA的ATragMX Open ATragMX @@ -62,8 +62,8 @@ Abrir ATragMX ATragMX を開く ATragMX 열기 - 開啟ATragMX - 开启ATragMX + 開啟ATragMX + 开启ATragMX diff --git a/addons/attach/stringtable.xml b/addons/attach/stringtable.xml index 65fdee531d9..39455dedcf3 100644 --- a/addons/attach/stringtable.xml +++ b/addons/attach/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Прикрепить предмет アイテムを取り付ける 물건 부착 - 附掛裝備>> - 附挂装备>> + 附掛裝備>> + 附挂装备>> Attach @@ -30,8 +30,8 @@ Прикрепить 取り付ける 부착 - 附掛 - 附挂 + 附掛 + 附挂 Detach item @@ -46,8 +46,8 @@ Отсоединить アイテムを外す 분리 - 取下裝備 - 取下装备 + 取下裝備 + 取下装备 IR Strobe Attached @@ -62,8 +62,8 @@ ИК-маяк прикреплён 赤外線ストロボを取り付ける 적외선 스트로브 부착됨 - 已附掛紅外線頻閃器 - 已附挂红外线频闪器 + 已附掛紅外線頻閃器 + 已附挂红外线频闪器 IR Strobe Detached @@ -78,8 +78,8 @@ ИК-маяк отсоединён 赤外線ストロボを外す 적외선 스트로브 분리됨 - 已取下紅外線頻閃器 - 已取下红外线频闪器 + 已取下紅外線頻閃器 + 已取下红外线频闪器 IR Grenade Attached @@ -94,8 +94,8 @@ ИК-граната прикреплена 赤外線グレネードを取り付ける 적외선 수류탄 부착됨 - 已附掛紅外線手榴彈 - 已附挂红外线手榴弹 + 已附掛紅外線手榴彈 + 已附挂红外线手榴弹 IR Grenade Detached @@ -110,8 +110,8 @@ ИК-граната отсоединена 赤外線グレネードを外す 적외선 수류탄 분리됨 - 已取下紅外線手榴彈 - 已取下红外线手榴弹 + 已取下紅外線手榴彈 + 已取下红外线手榴弹 Chemlight Attached @@ -126,8 +126,8 @@ Химсвет прикреплён ケミライトを取り付け 켐라이트 부착됨 - 已附掛螢光棒 - 已附挂萤光棒 + 已附掛螢光棒 + 已附挂萤光棒 Chemlight Detached @@ -142,8 +142,8 @@ Химсвет отсоединён ケミライトを外す 켐라이트 분리됨 - 已取下螢光棒 - 已取下萤光棒 + 已取下螢光棒 + 已取下萤光棒 No inventory space @@ -158,8 +158,8 @@ В инвентаре нет места インベントリに空きがない 넣을 공간이 없음 - 無可用空間 - 无可用空间 + 無可用空間 + 无可用空间 IR Strobe @@ -174,8 +174,8 @@ ИК-маяк 赤外線ストロボ 적외선 스트로브 - 紅外線頻閃器 - 红外线频闪器 + 紅外線頻閃器 + 红外线频闪器 IR Strobe allows you to signal your position through a pulsating beacon only visible with NVGs. @@ -190,8 +190,8 @@ ИК-маяк позволяет сигнализировать о своём местоположении через пульсирующий свет, видимый только через ПНВ. 赤外線ストロボはあなたの位置を知らせますが、夜間暗視装置を介してでしか見れません。 적외선 스트로브는 자신의 위치를 반짝이면서 표시합니다. 이는 야간투시경으로 밖에 보지 못합니다. - 紅外線閃頻器,藉由紅外線閃頻信號來辨識你的位置,僅能使用夜視系統來辨識紅外線信號 - 红外线闪频器,藉由红外线闪频信号来辨识你的位置,仅能使用夜视系统来辨识红外线信号 + 紅外線閃頻器,藉由紅外線閃頻信號來辨識你的位置,僅能使用夜視系統來辨識紅外線信號 + 红外线闪频器,藉由红外线闪频信号来辨识你的位置,仅能使用夜视系统来辨识红外线信号 Place @@ -206,8 +206,8 @@ Установить 置く 두기 - 放置 - 放置 + 放置 + 放置 Cancel @@ -222,8 +222,8 @@ Отмена やめる 취소 - 取消 - 取消 + 取消 + 取消 Attach Failed @@ -238,8 +238,8 @@ Non si attacca 取り付けに失敗した 부착 실패 - 附掛失敗 - 附挂失败 + 附掛失敗 + 附挂失败 %1<br/>Attached @@ -254,8 +254,8 @@ %1<br/>присоединен(-а) %1<br/>を取り付けた %1<br/>부착됨 - %1<br/>已附掛 - %1<br/>已附挂 + %1<br/>已附掛 + %1<br/>已附挂 %1<br/>Detached @@ -270,8 +270,8 @@ %1<br/>отсоединен(-а) %1<br/>を外した %1<br/>분리됨 - %1<br/>已取下 - %1<br/>已取下 + %1<br/>已取下 + %1<br/>已取下 diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index cac06aa73e6..ad33b307045 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -15,8 +15,8 @@ 6,5x47mm 20-lövedékes tár (HPBT Scenar) 6.5x47mm 20発入り 弾倉 (HPBT Scenar) 20발들이 6.5x47mm (HPBT Scenar) - 6.5x47mm 20發 彈匣 (Lapua 空尖艇尾狙擊專用彈) - 6.5x47mm 20发 弹匣 (Lapua 空尖艇尾狙击专用弹) + 6.5x47mm 20發 彈匣 (Lapua 空尖艇尾狙擊專用彈) + 6.5x47mm 20发 弹匣 (Lapua 空尖艇尾狙击专用弹) 6.5mm Lapua @@ -31,8 +31,8 @@ 6,5mm Lapua 6.5mm Lapua 6.5mm Lapua - 6.5mm Lapua 空尖艇尾狙擊專用彈 - 6.5mm Lapua 空尖艇尾狙击专用弹 + 6.5mm Lapua 空尖艇尾狙擊專用彈 + 6.5mm Lapua 空尖艇尾狙击专用弹 Caliber: 6.5x47mm (HPBT Scenar)<br />Rounds: 20<br />Used in: QBU-88 @@ -47,8 +47,8 @@ Kaliber: 6,5x47mm (HPBT Scenar)<br />Lövedékek: 20<br />Használható: QBU-88 口径: 6.5x47mm (HPBT Scenar)<br />装填数: 20<br />次で使用: QBU-88 구경: 6.5x47mm (HPBT Scenar)<br />장탄수: 20<br />사용처: QBU-88 - 口徑: 6.5x47mm (Lapua 空尖艇尾狙擊專用彈)<br />發數: 20<br />使用於: QBU-88 - 口径: 6.5x47mm (Lapua 空尖艇尾狙击专用弹)<br />发数: 20<br />使用于: QBU-88 + 口徑: 6.5x47mm (Lapua 空尖艇尾狙擊專用彈)<br />發數: 20<br />使用於: QBU-88 + 口径: 6.5x47mm (Lapua 空尖艇尾狙击专用弹)<br />发数: 20<br />使用于: QBU-88 6.5mm Creedmor 20Rnd Mag @@ -63,8 +63,8 @@ 6,5mm Creedmor 20-lövedékes tár 6.5mm Creedmor 20発入り 弾倉 20발들이 6.5mm Creedmor 탄창 - 6.5mm 20發 彈匣 (Creedmor 狙擊專用彈) - 6.5mm 20发 弹匣 (Creedmor 狙击专用弹) + 6.5mm 20發 彈匣 (Creedmor 狙擊專用彈) + 6.5mm 20发 弹匣 (Creedmor 狙击专用弹) 6.5mm CM @@ -79,8 +79,8 @@ 6,5mm CM 6.5mm CM 6.5mm CM - 6.5mm CM 狙擊專用彈 - 6.5mm CM 狙击专用弹 + 6.5mm CM 狙擊專用彈 + 6.5mm CM 狙击专用弹 Caliber: 6.5x47mm Creedmor<br />Rounds: 20<br />Used in: QBU-88 @@ -95,8 +95,8 @@ Kaliber: 6,5x47mm Creedmor<br />Lövedékek: 20<br />Használható: QBU-88 口径: 6.5x47mm Creedmor<br />装填数: 20<br />次で使用: QBU-88 구경: 6.5x47mm Creedmor<br />장탄수: 20<br />사용처: QBU-88 - 口徑: 6.5x47mm Creedmor 狙擊專用彈<br />發數: 20<br />使用於: QBU-88 - 口径: 6.5x47mm Creedmor 狙击专用弹<br />发数: 20<br />使用于: QBU-88 + 口徑: 6.5x47mm Creedmor 狙擊專用彈<br />發數: 20<br />使用於: QBU-88 + 口径: 6.5x47mm Creedmor 狙击专用弹<br />发数: 20<br />使用于: QBU-88 @@ -112,8 +112,8 @@ Магазин из 30-ти 6,5 мм ИК-трассирующих 6.5mm 30発入り IR-DIM曳光弾 弾倉 30발들이 6.5mm IR-DIM 예광탄 탄창 - 6.5mm 30發 低視度紅外線曳光彈 彈匣 - 6.5mm 30发 低视度红外线曳光弹 弹匣 + 6.5mm 30發 低視度紅外線曳光彈 彈匣 + 6.5mm 30发 低视度红外线曳光弹 弹匣 6.5mm IR-DIM @@ -128,8 +128,8 @@ 6,5 мм ИК-трассирующие 6.5mm IR-DIM曳光弾 6.5mm IR-DIM 예광탄 - 6.5mm 低視紅外曳光彈 - 6.5mm 低视红外曳光弹 + 6.5mm 低視紅外曳光彈 + 6.5mm 低视红外曳光弹 Caliber: 6.5x39mm Tracer IR-DIM<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL @@ -144,8 +144,8 @@ Калибр: 6,5x39 мм ИК-трассирующие<br />Патронов: 30<br />Используются с: MX/C/M/SW/3GL 口径: 6.5x39mm 曳光弾 IR-DIM<br />装填数: 30<br />次で使用: MX/C/M/SW/3GL 구경: 6.5x39mm IR-DIM 예광탄<br />장탄수: 30<br />사용처: MX/C/M/SW/3GL - 口徑: 6.5x39mm 低視度紅外線曳光彈<br />發數: 30<br />使用於: MX/C/M/SW/3GL - 口径: 6.5x39mm 低视度红外线曳光弹<br />发数: 30<br />使用于: MX/C/M/SW/3GL + 口徑: 6.5x39mm 低視度紅外線曳光彈<br />發數: 30<br />使用於: MX/C/M/SW/3GL + 口径: 6.5x39mm 低视度红外线曳光弹<br />发数: 30<br />使用于: MX/C/M/SW/3GL 6.5mm 30Rnd SD Mag @@ -160,8 +160,8 @@ Магазин из 30-ти 6,5 мм дозвуковых 6.5mm 30発入り 亜音速弾 弾倉 30발들이 6.5mm 아음속탄 탄창 - 6.5mm 30發 消音彈 彈匣 - 6.5mm 30发 消音弹 弹匣 + 6.5mm 30發 消音彈 彈匣 + 6.5mm 30发 消音弹 弹匣 6.5mm SD @@ -176,8 +176,8 @@ 6,5 мм дозвуковые 6.5mm 亜音速弾 6.5mm 아음속탄 - 6.5mm 消音彈 - 6.5mm 消音弹 + 6.5mm 消音彈 + 6.5mm 消音弹 Caliber: 6.5x39mm SD<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL @@ -192,8 +192,8 @@ Калибр: 6,5x39 мм дозвуковые<br />Патронов: 30<br />Используются с: MX/C/M/SW/3GL 口径: 6.5x39mm 亜音速弾<br />装填数: 30<br />次で使用: MX/C/M/SW/3GL 구경: 6.5x39mm SD<br />장탄수: 30<br />사용처: MX/C/M/SW/3GL - 口徑: 6.5x39mm 消音彈<br />發數: 30<br />使用於: MX/C/M/SW/3GL - 口径: 6.5x39mm 消音弹<br />发数: 30<br />使用于: MX/C/M/SW/3GL + 口徑: 6.5x39mm 消音彈<br />發數: 30<br />使用於: MX/C/M/SW/3GL + 口径: 6.5x39mm 消音弹<br />发数: 30<br />使用于: MX/C/M/SW/3GL 6.5mm 30Rnd AP Mag @@ -208,8 +208,8 @@ Магазин из 30-ти 6,5 мм бронебойных 6.5mm 30 発入り徹甲弾 弾倉 30발들이 6.5mm 철갑탄 탄창 - 6.5mm 30發 穿甲彈 彈匣 - 6.5mm 30发 穿甲弹 弹匣 + 6.5mm 30發 穿甲彈 彈匣 + 6.5mm 30发 穿甲弹 弹匣 6.5mm AP @@ -224,8 +224,8 @@ 6,5 мм бронебойные 6.5mm 徹甲弾 6.5mm 철갑탄 - 6.5mm 穿甲彈 - 6.5mm 穿甲弹 + 6.5mm 穿甲彈 + 6.5mm 穿甲弹 Caliber: 6.5x39mm AP<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL @@ -240,8 +240,8 @@ Калибр: 6,5x39 мм бронебойные<br />Патронов: 30<br />Используются с: MX/C/M/SW/3GL 口径: 6.5x39mm 徹甲弾<br />装填数: 30<br />次で使用: MX/C/M/SW/3GL 구경: 6.5x39mm 철갑탄<br />장탄수: 30<br />사용처: MX/C/M/SW/3GL - 口徑: 6.5x39mm 穿甲彈<br />發數: 30<br />使用於: MX/C/M/SW/3GL - 口径: 6.5x39mm 穿甲弹<br />发数: 30<br />使用于: MX/C/M/SW/3GL + 口徑: 6.5x39mm 穿甲彈<br />發數: 30<br />使用於: MX/C/M/SW/3GL + 口径: 6.5x39mm 穿甲弹<br />发数: 30<br />使用于: MX/C/M/SW/3GL @@ -257,8 +257,8 @@ Магазин из 30-ти 6,5 мм ИК-трассирующих 6.5mm 30発入り IR-DIM曳光弾 弾倉 30발들이 6.5mm IR-DIM 예광탄 탄창 - 6.5mm 30發 低視度紅外線曳光彈 彈匣 - 6.5mm 30发 低视度红外线曳光弹 弹匣 + 6.5mm 30發 低視度紅外線曳光彈 彈匣 + 6.5mm 30发 低视度红外线曳光弹 弹匣 6.5mm IR-DIM @@ -273,8 +273,8 @@ 6,5 мм ИК-трассирующие 6.5mm IR-DIM曳光弾 6.5mm IR-DIM 예광탄 - 6.5mm 低視紅外曳光彈 - 6.5mm 低视红外曳光弹 + 6.5mm 低視紅外曳光彈 + 6.5mm 低视红外曳光弹 Caliber: 6.5x39mm Tracer IR-DIM<br />Rounds: 30<br />Used in: Katiba @@ -289,8 +289,8 @@ Калибр: 6,5x39 мм ИК-трассирующие<br />Патронов: 30<br />Используются с: Katiba 口径: 6.5x39mm IR-DIM曳光弾<br />装填数: 30<br />次で使用: Katiba 구경: 6.5x39mm IR-DIM 예광탄<br />장탄수: 30<br />사용처: Katiba - 口徑: 6.5x39mm 低視度紅外線曳光彈<br />發數: 30<br />使用於: Katiba - 口径: 6.5x39mm 低视度红外线曳光弹<br />发数: 30<br />使用于: Katiba + 口徑: 6.5x39mm 低視度紅外線曳光彈<br />發數: 30<br />使用於: Katiba + 口径: 6.5x39mm 低视度红外线曳光弹<br />发数: 30<br />使用于: Katiba 6.5mm 30Rnd SD Mag @@ -305,8 +305,8 @@ Магазин из 30-ти 6,5 мм дозвуковых 6.5mm 30発入り 亜音速弾 弾倉 30발들이 6.5mm 아음속탄 탄창 - 6.5mm 30發 消音彈 彈匣 - 6.5mm 30发 消音弹 弹匣 + 6.5mm 30發 消音彈 彈匣 + 6.5mm 30发 消音弹 弹匣 6.5mm SD @@ -321,8 +321,8 @@ 6,5 мм дозвуковые 6.5mm 亜音速弾 6.5mm 아음속탄 - 6.5mm 消音彈 - 6.5mm 消音弹 + 6.5mm 消音彈 + 6.5mm 消音弹 Caliber: 6.5x39mm SD<br />Rounds: 30<br />Used in: Katiba @@ -337,8 +337,8 @@ Калибр: 6,5x39 мм дозвуковые<br />Патронов: 30<br />Используются с: Katiba 口径: 6.5x39mm 亜音速弾<br />装填数: 30<br />次で使用: Katiba 구경: 6.5x39mm 아음속탄<br />장탄수: 30<br />사용처: Katiba - 口徑: 6.5x39mm 消音彈<br />發數: 30<br />使用於: Katiba - 口径: 6.5x39mm 消音弹<br />发数: 30<br />使用于: Katiba + 口徑: 6.5x39mm 消音彈<br />發數: 30<br />使用於: Katiba + 口径: 6.5x39mm 消音弹<br />发数: 30<br />使用于: Katiba 6.5mm 30Rnd AP Mag @@ -353,8 +353,8 @@ Магазин из 30-ти 6,5 мм бронебойных 6.5mm 30 発入り徹甲弾 弾倉 30발들이 6.5mm 철갑탄 탄창 - 6.5mm 30發 穿甲彈 彈匣 - 6.5mm 30发 穿甲弹 弹匣 + 6.5mm 30發 穿甲彈 彈匣 + 6.5mm 30发 穿甲弹 弹匣 6.5mm AP @@ -369,8 +369,8 @@ 6,5 мм бронебойные 6.5mm 徹甲弾 6.5mm 철갑탄 - 6.5mm 穿甲彈 - 6.5mm 穿甲弹 + 6.5mm 穿甲彈 + 6.5mm 穿甲弹 Caliber: 6.5x39mm AP<br />Rounds: 30<br />Used in: Katiba @@ -385,8 +385,8 @@ Калибр: 6,5x39 мм бронебойные<br />Патронов: 30<br />Используются с: Katiba 口径: 6.5x39mm 徹甲弾<br />装填数: 30<br />次で使用: Katiba 구경: 6.5x39mm 철갑탄<br />장탄수: 30<br />사용처: Katiba - 口徑: 6.5x39mm 穿甲彈<br />發數: 30<br />使用於: Katiba - 口径: 6.5x39mm 穿甲弹<br />发数: 30<br />使用于: Katiba + 口徑: 6.5x39mm 穿甲彈<br />發數: 30<br />使用於: Katiba + 口径: 6.5x39mm 穿甲弹<br />发数: 30<br />使用于: Katiba @@ -402,8 +402,8 @@ Магазин из 30-ти 5,56 мм ИК-трассирующих 5.56mm 30発入り IR-DIM曳光弾 弾倉 30발 들이 5.56mm IR-DIM 예광탄 탄창 - 5.56mm 30發 低視度紅外線曳光彈 彈匣 - 5.56mm 30发 低视度红外线曳光弹 弹匣 + 5.56mm 30發 低視度紅外線曳光彈 彈匣 + 5.56mm 30发 低视度红外线曳光弹 弹匣 5.56mm IR-DIM @@ -418,8 +418,8 @@ 5,56 мм ИК-трассирующие 5.56mm IR-DIM曳光弾 5.56mm IR-DIM 예광탄 - 5.56mm 低視紅外曳光彈 - 5.56mm 低视红外曳光弹 + 5.56mm 低視紅外曳光彈 + 5.56mm 低视红外曳光弹 Caliber: 5.56x45mm Tracer IR-DIM<br />Rounds: 30<br />Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR @@ -434,8 +434,8 @@ Калибр: 5,56x45 мм ИК-трассирующие<br />Патронов: 30<br />Используются с: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR 口径: 5.56x45mm IR-DIM曳光弾<br />装填数: 30<br />次で使用: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR 구경: 5.56x45mm IR-DIM 예광탄<br />장탄수: 30<br />사용처: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - 口徑: 5.56x45mm 低視度紅外線曳光彈<br />發數: 30<br />使用於: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - 口径: 5.56x45mm 低视度红外线曳光弹<br />发数: 30<br />使用于: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + 口徑: 5.56x45mm 低視度紅外線曳光彈<br />發數: 30<br />使用於: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + 口径: 5.56x45mm 低视度红外线曳光弹<br />发数: 30<br />使用于: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR @@ -451,8 +451,8 @@ Магазин из 20-ти 7,62 мм трассирующих 7.62mm 20発入り 曳光弾 20발들이 7.62mm 예광탄 탄창 - 7.62mm 20發 曳光彈 彈匣 - 7.62mm 20发 曳光弹 弹匣 + 7.62mm 20發 曳光彈 彈匣 + 7.62mm 20发 曳光弹 弹匣 7.62mm Tracer @@ -467,8 +467,8 @@ 7,62 мм трассирущие 7.62mm 曳光弾 7.62mm 예광탄 - 7.62mm 曳光彈 - 7.62mm 曳光弹 + 7.62mm 曳光彈 + 7.62mm 曳光弹 Caliber: 7.62x51mm Tracer<br />Rounds: 20<br />Used in: Mk18 ABR @@ -483,8 +483,8 @@ Калибр: 7,62x51 мм трассирующие<br />Патронов: 20<br />Используются с: Mk18 ABR 口径: 7.62x51mm 曳光弾<br />装填数: 20<br />次で使用: Mk18 ABR 구경: 7.62x51mm 예광탄<br />장탄수: 20<br />사용처: Mk18 ABR - 口徑: 7.62x51mm 曳光彈<br />發數: 20<br />使用於: Mk18 ABR - 口径: 7.62x51mm 曳光弹<br />发数: 20<br />使用于: Mk18 ABR + 口徑: 7.62x51mm 曳光彈<br />發數: 20<br />使用於: Mk18 ABR + 口径: 7.62x51mm 曳光弹<br />发数: 20<br />使用于: Mk18 ABR 7.62mm 20rnd Tracer IR-DIM Mag @@ -499,8 +499,8 @@ Магазин из 20-ти 7,62 мм ИК-трассирующих 7.62mm 20発入り IR-DIM曳光弾 20발들이 7.62mm IR-DIM 예광탄 탄창 - 7.62mm 20發 低視度紅外線曳光彈 彈匣 - 7.62mm 20发 低视度红外线曳光弹 弹匣 + 7.62mm 20發 低視度紅外線曳光彈 彈匣 + 7.62mm 20发 低视度红外线曳光弹 弹匣 7.62mm IR-DIM @@ -515,8 +515,8 @@ 7,62 мм ИК-трассирующие 7.62mm IR-DIM曳光弾 7.62mm IR-DIM 예광탄 - 7.62mm 低視紅外曳光彈 - 7.62mm 低视红外曳光弹 + 7.62mm 低視紅外曳光彈 + 7.62mm 低视红外曳光弹 Caliber: 7.62x51mm Tracer IR-DIM<br />Rounds: 20<br />Used in: Mk18 ABR @@ -531,8 +531,8 @@ Калибр: 7,62x51 мм ИК-трассирующие<br />Патронов: 20<br />Используются с: Mk18 ABR 口径: 7.62x51mm IR-DIM曳光弾<br />装填数: 20<br />次で使用: Mk18 ABR 구경: 7.62x51mm IR-DIM 예광탄<br />장탄수: 20<br />사용처: Mk18 ABR - 口徑: 7.62x51mm 低視度紅外線曳光彈<br />發數: 20<br />使用於: Mk18 ABR - 口径: 7.62x51mm 低视度红外线曳光弹<br />发数: 20<br />使用于: Mk18 ABR + 口徑: 7.62x51mm 低視度紅外線曳光彈<br />發數: 20<br />使用於: Mk18 ABR + 口径: 7.62x51mm 低视度红外线曳光弹<br />发数: 20<br />使用于: Mk18 ABR 7.62mm 20Rnd SD Mag @@ -547,8 +547,8 @@ Магазин из 20-ти 7,62 мм дозвуковых 7.62mm 20発入り 亜音速弾 弾倉 20발들이 7.62mm 아음속탄 탄창 - 7.62mm 20發 消音彈 彈匣 - 7.62mm 20发 消音弹 弹匣 + 7.62mm 20發 消音彈 彈匣 + 7.62mm 20发 消音弹 弹匣 7.62mm SD @@ -563,8 +563,8 @@ 7,62 мм дозвуковые 7.62mm 亜音速弾 7.62mm 아음속탄 - 7.62mm 消音彈 - 7.62mm 消音弹 + 7.62mm 消音彈 + 7.62mm 消音弹 Caliber: 7.62x51mm SD<br />Rounds: 20<br />Used in: Mk18 ABR @@ -579,8 +579,8 @@ Калибр: 7,62x51 мм дозвуковые<br />Патронов: 20<br />Используются с: Mk18 ABR 口径: 7.62x51mm 亜音速弾<br />装填数: 20<br />次で使用: Mk18 ABR 구경: 7.62x51mm SD<br />장탄수: 20<br />사용처: Mk18 ABR - 口徑: 7.62x51mm 消音彈<br />發數: 20<br />使用於: Mk18 ABR - 口径: 7.62x51mm 消音弹<br />发数: 20<br />使用于: Mk18 ABR + 口徑: 7.62x51mm 消音彈<br />發數: 20<br />使用於: Mk18 ABR + 口径: 7.62x51mm 消音弹<br />发数: 20<br />使用于: Mk18 ABR @@ -596,8 +596,8 @@ .338 NM 130-lövedékes nyomkövető heveder .338 NM 130発入り 曳光弾ベルト 130발들이 .338 NM 예광탄 벨트 - .338 NM 130發 曳光彈 彈鏈 - .338 NM 130发 曳光弹 弹链 + .338 NM 130發 曳光彈 彈鏈 + .338 NM 130发 曳光弹 弹链 .338 NM Tracer @@ -612,8 +612,8 @@ .338 NM nyomkövető .338 NM 曳光弾 .338 NM 예광탄 - .338 NM 曳光彈 - .338 NM 曳光弹 + .338 NM 曳光彈 + .338 NM 曳光弹 Caliber: .338 Norma Magnum Tracer<br />Rounds: 130<br />Used in: SPMG @@ -628,8 +628,8 @@ Kaliber: .338 Norma Magnum nyomkövető<br />Lövedékek: 130<br />Használható: SPMG 口径: .338 Norma Magnum 曳光弾<br />装填数: 130<br />次で使用: SPMG 구경: .338 Norma 매그넘 예광탄<br />장탄수: 130<br />사용처: SPMG - 口徑: .338 Norma Magnum 曳光彈<br />發數: 130<br />使用於: SPMG - 口径: .338 Norma Magnum 曳光弹<br />发数: 130<br />使用于: SPMG + 口徑: .338 Norma Magnum 曳光彈<br />發數: 130<br />使用於: SPMG + 口径: .338 Norma Magnum 曳光弹<br />发数: 130<br />使用于: SPMG .338 NM 130Rnd IR-DIM Belt @@ -644,8 +644,8 @@ .338 NM 130-lövedékes infravörös nyomkövető heveder .338 NM 130発入り IR-DIM曳光弾ベルト 130발들이 .338 NM IR-DIM 예광탄 벨트 - .338 NM 130發 低視度紅外線曳光彈 彈鏈 - .338 NM 130发 低视度红外线曳光弹 弹链 + .338 NM 130發 低視度紅外線曳光彈 彈鏈 + .338 NM 130发 低视度红外线曳光弹 弹链 .338 NM IR-DIM @@ -660,8 +660,8 @@ .338 NM infravörös nyomkövető .338 NM IR-DIM曳光弾 .338 NM IR-DIM 예광탄 - .338 NM 低視紅外曳光彈 - .338 NM 低视红外曳光弹 + .338 NM 低視紅外曳光彈 + .338 NM 低视红外曳光弹 Caliber: .338 Norma Magnum Tracer IR-DIM<br />Rounds: 130<br />Used in: SPMG @@ -676,8 +676,8 @@ Kaliber: .338 Norma Magnum infravörös nyomkövető<br />Lövedékek: 130<br />Használható: SPMG 口径: .338 Norma Magnum IR-DIM曳光弾<br />装填数: 130<br />次で使用: SPMG 구경: .338 Norma 매그넘 IR-DIM 예광탄<br />장탄수: 130<br />사용처: SPMG - 口徑: .338 Norma Magnum 低視度紅外線曳光彈<br />發數: 130<br />使用於: SPMG - 口径: .338 Norma Magnum 低视度红外线曳光弹<br />发数: 130<br />使用于: SPMG + 口徑: .338 Norma Magnum 低視度紅外線曳光彈<br />發數: 130<br />使用於: SPMG + 口径: .338 Norma Magnum 低视度红外线曳光弹<br />发数: 130<br />使用于: SPMG .338 NM 130Rnd AP Belt @@ -692,8 +692,8 @@ .338 NM 130-lövedékes páncéltörő heveder .338 NM 130発入り 徹甲弾ベルト 130발들이 .338 NM 철갑탄 벨트 - .338 NM 130發 穿甲彈 彈鏈 - .338 NM 130发 穿甲弹 弹链 + .338 NM 130發 穿甲彈 彈鏈 + .338 NM 130发 穿甲弹 弹链 .338 NM AP @@ -708,8 +708,8 @@ .338 NM páncéltörő .338 NM 徹甲弾 .338 NM 철갑탄 - .338 NM 穿甲彈 - .338 NM 穿甲弹 + .338 NM 穿甲彈 + .338 NM 穿甲弹 Caliber: .338 Norma Magnum AP<br />Rounds: 130<br />Used in: SPMG @@ -724,8 +724,8 @@ Kaliber: .338 Norma Magnum páncéltörő<br />Lövedékek: 130<br />Használható: SPMG 口径: .338 Norma Magnum 徹甲弾<br />装填数: 130<br />次で使用: SPMG 구경: .338 Norma 매그넘 철갑탄<br />장탄수: 130<br />사용처: SPMG - 口徑: .338 Norma Magnum 穿甲彈<br />發數: 130<br />使用於: SPMG - 口径: .338 Norma Magnum 穿甲弹<br />发数: 130<br />使用于: SPMG + 口徑: .338 Norma Magnum 穿甲彈<br />發數: 130<br />使用於: SPMG + 口径: .338 Norma Magnum 穿甲弹<br />发数: 130<br />使用于: SPMG @@ -741,8 +741,8 @@ 9,3mm 10-lövedékes nyomkövető tár 9.3mm 10発入り 曳光弾 弾倉 10발들이 9.3mm 예광탄 탄창 - 9.3mm 10發 曳光彈 彈匣 - 9.3mm 10发 曳光弹 弹匣 + 9.3mm 10發 曳光彈 彈匣 + 9.3mm 10发 曳光弹 弹匣 9.3mm Tracer @@ -757,8 +757,8 @@ 9,3mm nyomkövető 9.3mm 曳光弾 9.3mm 예광탄 - 9.3mm 曳光彈 - 9.3mm 曳光弹 + 9.3mm 曳光彈 + 9.3mm 曳光弹 Caliber: 9.3x64mm Tracer<br />Rounds: 10<br />Used in: Cyrus @@ -773,8 +773,8 @@ Kaliber: 9,3x64mm nyomkövető<br />Lövedékek: 10<br />Használható: Cyrus 口径: 9.3x64mm 曳光弾<br />装填数: 10<br />次で使用: Cyrus 구경: 9.3x64mm 예광탄<br />장탄수: 10<br />사용처: Cyrus - 口徑: 9.3x64mm 曳光彈<br />發數: 10<br />使用於: Cyrus - 口径: 9.3x64mm 曳光弹<br />发数: 10<br />使用于: Cyrus + 口徑: 9.3x64mm 曳光彈<br />發數: 10<br />使用於: Cyrus + 口径: 9.3x64mm 曳光弹<br />发数: 10<br />使用于: Cyrus 9.3mm 10Rnd Tracer IR-DIM Mag @@ -789,8 +789,8 @@ 9,3mm 10-lövedékes infravörös nyomkövető tár 9.3mm 10発入り IR-DIM曳光弾 弾倉 10발들이 9.3mm IR-DIM 예광탄 탄창 - 9.3mm 10發 低視度紅外線曳光彈 彈匣 - 9.3mm 10发 低视度红外线曳光弹 弹匣 + 9.3mm 10發 低視度紅外線曳光彈 彈匣 + 9.3mm 10发 低视度红外线曳光弹 弹匣 9.3mm IR-DIM @@ -805,8 +805,8 @@ 9,3mm infravörös nyomkövető 9.3mm IR-DIM曳光弾 9.3mm IR-DIM 예광탄 - 9.3mm 低視紅外曳光彈 - 9.3mm 低视红外曳光弹 + 9.3mm 低視紅外曳光彈 + 9.3mm 低视红外曳光弹 Caliber: 9.3x64mm Tracer IR-DIM<br />Rounds: 10<br />Used in: Cyrus @@ -821,8 +821,8 @@ Kaliber: 9,3x64mm infravörös nyomkövető<br />Lövedékek: 10<br /> Használható: Cyrus 口径: 9.3x64mm IR-DIM曳光弾<br />装填数: 10<br />次で使用: Cyrus 구경: 9.3x64mm IR-DIM 예광탄<br />장탄수: 10<br />사용처: Cyrus - 口徑: 9.3x64mm 低視度紅外線曳光彈<br />發數: 10<br />使用於: Cyrus - 口径: 9.3x64mm 低视度红外线曳光弹<br />发数: 10<br />使用于: Cyrus + 口徑: 9.3x64mm 低視度紅外線曳光彈<br />發數: 10<br />使用於: Cyrus + 口径: 9.3x64mm 低视度红外线曳光弹<br />发数: 10<br />使用于: Cyrus @@ -838,8 +838,8 @@ 9,3mm 150-lövedékes nyomkövető heveder 9.3mm 150発入り 曳光弾ベルト 150발들이 9.3mm 예광탄 벨트 - 9.3mm 150發 曳光彈 彈鏈 - 9.3mm 150发 曳光弹 弹链 + 9.3mm 150發 曳光彈 彈鏈 + 9.3mm 150发 曳光弹 弹链 9.3mm Tracer @@ -854,8 +854,8 @@ 9,3mm nyomkövető 9.3mm 曳光弾 9.3mm 예광탄 - 9.3mm 曳光彈 - 9.3mm 曳光弹 + 9.3mm 曳光彈 + 9.3mm 曳光弹 Caliber: 9.3x64mm Tracer<br />Rounds: 150<br />Used in: Navid @@ -870,8 +870,8 @@ Kaliber: 9,3x64mm nyomkövető<br />Lövedékek: 150<br />Használható: Navid 口径: 9.3x64mm 曳光弾<br />装填数: 150<br />次で使用: Navid 구경: 9.3x64mm 예광탄<br />장탄수: 150<br />사용처: Navid - 口徑: 9.3x64mm 曳光彈<br />發數: 150<br />使用於: Navid - 口径: 9.3x64mm 曳光弹<br />发数: 150<br />使用于: Navid + 口徑: 9.3x64mm 曳光彈<br />發數: 150<br />使用於: Navid + 口径: 9.3x64mm 曳光弹<br />发数: 150<br />使用于: Navid 9.3mm 150Rnd Tracer IR-DIM Belt @@ -886,8 +886,8 @@ 9,3mm 150-lövedékes infravörös nyomkövető heveder 9.3mm 150発入り IR-DIM曳光弾ベルト 150발들이 9.3mm IR-DIM 예광탄 벨트 - 9.3mm 150發 低視度紅外線曳光彈 彈鏈 - 9.3mm 150发 低视度红外线曳光弹 弹链 + 9.3mm 150發 低視度紅外線曳光彈 彈鏈 + 9.3mm 150发 低视度红外线曳光弹 弹链 9.3mm IR-DIM @@ -902,8 +902,8 @@ 9,3mm infravörös nyomkövető 9.3mm IR-DIM曳光弾 9.3mm IR-DIM 예광탄 - 9.3mm 低視紅外曳光彈 - 9.3mm 低视红外曳光弹 + 9.3mm 低視紅外曳光彈 + 9.3mm 低视红外曳光弹 Caliber: 9.3x64mm Tracer IR-DIM<br />Rounds: 150<br />Used in: Navid @@ -918,8 +918,8 @@ Kaliber: 9,3x64mm infravörös nyomkövető<br />Lövedékek: 150<br />Használható: Navid 口径: 9.3x64mm IR-DIM曳光弾<br />装填数: 150<br />次で使用: Navid 구경: 9.3x64mm IR-DIM 예광탄<br />장탄수: 150<br />사용처: Navid - 口徑: 9.3x64mm 低視度紅外線曳光彈<br />發數: 150<br />使用於: Navid - 口径: 9.3x64mm 低视度红外线曳光弹<br />发数: 150<br />使用于: Navid + 口徑: 9.3x64mm 低視度紅外線曳光彈<br />發數: 150<br />使用於: Navid + 口径: 9.3x64mm 低视度红外线曳光弹<br />发数: 150<br />使用于: Navid 9.3mm 150Rnd AP Belt @@ -934,8 +934,8 @@ 9,3mm 150-lövedékes páncéltörő heveder 9.3mm 150発入り 徹甲弾ベルト 150발들이 9.3mm 철갑탄 벨트 - 9.3mm 150發 穿甲彈 彈鏈 - 9.3mm 150发 穿甲弹 弹链 + 9.3mm 150發 穿甲彈 彈鏈 + 9.3mm 150发 穿甲弹 弹链 9.3mm AP @@ -950,8 +950,8 @@ 9,3mm páncéltörő 9.3mm 徹甲弾 9.3mm 철갑탄 - 9.3mm 穿甲彈 - 9.3mm 穿甲弹 + 9.3mm 穿甲彈 + 9.3mm 穿甲弹 Caliber: 9.3x64mm AP<br />Rounds: 150<br />Used in: Navid @@ -966,8 +966,8 @@ Kaliber: 9,3x64mm páncéltörő<br />Lövedékek: 150<br />Használható: Navid 口径: 9.3x64mm 徹甲弾<br />装填数: 150<br />次で使用: Navid 구경: 9.3x64mm 철갑탄<br />장탄수: 150<br />사용처: Navid - 口徑: 9.3x64mm 穿甲彈<br />發數: 150<br />使用於: Navid - 口径: 9.3x64mm 穿甲弹<br />发数: 150<br />使用于: Navid + 口徑: 9.3x64mm 穿甲彈<br />發數: 150<br />使用於: Navid + 口径: 9.3x64mm 穿甲弹<br />发数: 150<br />使用于: Navid 9x19mm 16Rnd Mag @@ -982,8 +982,8 @@ 9x19mm 16-lövedékes tár 9x19mm 16発入り 弾倉 16발들이 9x19mm 탄창 - 9x19mm 16發 彈匣 - 9x19mm 16发 弹匣 + 9x19mm 16發 彈匣 + 9x19mm 16发 弹匣 9x19mm @@ -998,8 +998,8 @@ 9x19mm 9x19mm 9x19mm - 9x19mm - 9x19mm + 9x19mm + 9x19mm 9x19mm 30Rnd Mag @@ -1014,8 +1014,8 @@ 9x19mm 16-lövedékes tár 9x19mm 30発入り 弾倉 30발들이 9x19mm 탄창 - 9x19mm 30發 彈匣 - 9x19mm 30发 弹匣 + 9x19mm 30發 彈匣 + 9x19mm 30发 弹匣 9x19mm 30Rnd Mag @@ -1030,8 +1030,8 @@ 9x19mm 30-lövedékes tár 9x19mm 30発入り 弾倉 30발들이 9x19mm 탄창 - 9x19mm 30發 彈匣 - 9x19mm 30发 弹匣 + 9x19mm 30發 彈匣 + 9x19mm 30发 弹匣 9x19mm @@ -1046,8 +1046,8 @@ 9x19mm 9x19mm 9x19mm - 9x19mm - 9x19mm + 9x19mm + 9x19mm 9x19mm 30Rnd Mag @@ -1062,8 +1062,8 @@ 9x19mm 30-lövedékes tár 9x19mm 30発入り 弾倉 30발들이 9x19mm 탄창 - 9x19mm 30發 彈匣 - 9x19mm 30发 弹匣 + 9x19mm 30發 彈匣 + 9x19mm 30发 弹匣 7.62x54mm 10Rnd Tracer Mag @@ -1078,8 +1078,8 @@ 7,62x54mm 10-lövedékes nyomkövető tár 7.62x54mm 10発入り 曳光弾 弾倉 10발들이 7.62x54mm 예광탄 탄창 - 7.62x54mm 10發 曳光彈 彈匣 - 7.62x54mm 10发 曳光弹 弹匣 + 7.62x54mm 10發 曳光彈 彈匣 + 7.62x54mm 10发 曳光弹 弹匣 7.62mm @@ -1094,8 +1094,8 @@ 7,62mm 7.62mm 7.62mm - 7.62mm - 7.62mm + 7.62mm + 7.62mm 7.62x54mm 10Rnd Tracer Mag @@ -1110,8 +1110,8 @@ 7,62x54mm 10-lövedékes nyomkövető tár 7.62x54mm 10発入り 曳光弾 弾倉 10발들이 7.62x54mm 예광탄 탄창 - 7.62x54mm 10發 曳光彈 彈匣 - 7.62x54mm 10发 曳光弹 弹匣 + 7.62x54mm 10發 曳光彈 彈匣 + 7.62x54mm 10发 曳光弹 弹匣 6.5mm 100Rnd Tracer IR-DIM Mag @@ -1126,8 +1126,8 @@ 6,5mm 100-lövedékes infravörös nyomkövető tár 6.5mm 100発入り IR-DIM曳光弾 弾倉 100발들이 6.5mm IR-DIM 예광탄 탄창 - 6.5mm 100發 低視度紅外線曳光彈 彈匣 - 6.5mm 100发 低视度红外线曳光弹 弹匣 + 6.5mm 100發 低視度紅外線曳光彈 彈匣 + 6.5mm 100发 低视度红外线曳光弹 弹匣 6.5mm IR-DIM @@ -1142,8 +1142,8 @@ 6,5mm infravörös nyomkövető 6.5mm IR-DIM曳光弾 6.5mm IR-DIM 예광탄 - 6.5mm 低視紅外曳光彈 - 6.5mm 低视红外曳光弹 + 6.5mm 低視紅外曳光彈 + 6.5mm 低视红外曳光弹 6.5mm 100Rnd Tracer IR-DIM Mag<br />Rounds: 100<br />Used in: MX LSW @@ -1158,8 +1158,8 @@ 6.5mm 100-lövedékes infravörös nyomkövető tár<br />Lövedékek: 100<br />Használható: MX LSW 6.5mm 100発入り IR-DIM曳光弾 弾倉<br />装填数: 100<br />次で使用: MX LSW 100발들이 6.5mm IR-DIM 예광탄 탄창<br />장탄수: 100<br />사용처: MX LSW - 6.5mm 100發 低視度紅外線曳光彈<br />發數: 100<br />使用於: MX LSW - 6.5mm 100发 低视度红外线曳光弹<br />发数: 100<br />使用于: MX LSW + 6.5mm 100發 低視度紅外線曳光彈<br />發數: 100<br />使用於: MX LSW + 6.5mm 100发 低视度红外线曳光弹<br />发数: 100<br />使用于: MX LSW 6.5mm 200Rnd Tracer IR-DIM Belt @@ -1174,8 +1174,8 @@ 6,5mm 200-lövedékes infravörös nyomkövető heveder 6.5mm 200発入り IR-DIM曳光弾ベルト 200발들이 6.5mm IR-DIM 예광탄 탄창 - 6.5mm 200發 低視度紅外線曳光彈 彈鏈 - 6.5mm 200发 低视度红外线曳光弹 弹链 + 6.5mm 200發 低視度紅外線曳光彈 彈鏈 + 6.5mm 200发 低视度红外线曳光弹 弹链 6.5mm IR-DIM @@ -1190,8 +1190,8 @@ 6,5mm infravörös nyomkövető 6.5mm IR-DIM曳光弾 6.5mm IR-DIM 예광탄 - 6.5mm 低視紅外曳光彈 - 6.5mm 低视红外曳光弹 + 6.5mm 低視紅外曳光彈 + 6.5mm 低视红外曳光弹 6.5mm 200Rnd Tracer IR-DIM Belt<br />Rounds: 200<br />Used in: Stoner 99 LMG @@ -1206,8 +1206,8 @@ 6.5mm 200-lövedékes infravörös nyomkövető heveder<br />Lövedékek: 200<br />Használható: Stoner 99 LMG 6.5mm 200発入り IR-DIM曳光弾ベルト<br />装填数: 200<br />次で使用: Stoner 99 LMG 200발들이 6.5mm IR-DIM 예광탄 벨트<br />장탄수: 200<br />사용처: Stoner 99 LMG - 6.5mm 200發 低視度紅外線曳光彈<br />發數: 200<br />使用於: Stoner 99 LMG - 6.5mm 200发 低视度红外线曳光弹<br />发数: 200<br />使用于: Stoner 99 LMG + 6.5mm 200發 低視度紅外線曳光彈<br />發數: 200<br />使用於: Stoner 99 LMG + 6.5mm 200发 低视度红外线曳光弹<br />发数: 200<br />使用于: Stoner 99 LMG 5.56mm 30Rnd Mag (Mk262) @@ -1222,8 +1222,8 @@ 5,56mm 30-lövedékes tár (Mk262) 5.56mm 30発入り 弾倉 (Mk262) 30발들이 5.56mm 탄창 (Mk262) - 5.56mm 30發 彈匣 (Mk262 狙擊專用彈) - 5.56mm 30发 弹匣 (Mk262 狙击专用弹) + 5.56mm 30發 彈匣 (Mk262 狙擊專用彈) + 5.56mm 30发 弹匣 (Mk262 狙击专用弹) 5.56mm Mk262 @@ -1238,8 +1238,8 @@ 5,56mm Mk262 5.56mm Mk262 5.56mm Mk262 - 5.56mm Mk262 狙擊專用彈 - 5.56mm Mk262 狙击专用弹 + 5.56mm Mk262 狙擊專用彈 + 5.56mm Mk262 狙击专用弹 Caliber: 5.56x45mm NATO (Mk262)<br />Rounds: 30 @@ -1254,8 +1254,8 @@ Kaliber: 5,56x45mm NATO (Mk262)<br />Lövedékek: 30 口径: 5.56x45mm NATO (Mk262)<br />装填数: 30 구경: 5.56x45mm NATO (Mk262)<br />장탄수: 30 - 口徑: 5.56x45mm NATO標準 (Mk262 狙擊專用彈)<br />發數: 30 - 口径: 5.56x45mm NATO标准 (Mk262 狙击专用弹)<br />发数: 30 + 口徑: 5.56x45mm NATO標準 (Mk262 狙擊專用彈)<br />發數: 30 + 口径: 5.56x45mm NATO标准 (Mk262 狙击专用弹)<br />发数: 30 5.56mm 30Rnd Mag (Mk318) @@ -1270,8 +1270,8 @@ 5,56mm 30-lövedékes tár (Mk318) 5.56mm 30発入り 弾倉 (Mk318) 30발들이 5.56mm 탄창 (Mk318) - 5.56mm 30發 彈匣 (Mk318 特戰專用彈) - 5.56mm 30发 弹匣 (Mk318 特战专用弹) + 5.56mm 30發 彈匣 (Mk318 特戰專用彈) + 5.56mm 30发 弹匣 (Mk318 特战专用弹) 5.56mm Mk318 @@ -1286,8 +1286,8 @@ 5,56mm Mk318 5.56mm Mk318 5.56mm Mk318 - 5.56mm Mk318 特戰專用彈 - 5.56mm Mk318 特战专用弹 + 5.56mm Mk318 特戰專用彈 + 5.56mm Mk318 特战专用弹 Caliber: 5.56x45mm NATO (Mk318)<br />Rounds: 30 @@ -1302,8 +1302,8 @@ Kaliber: 5,56x45mm NATO (Mk318)<br />Lövedékek: 30 口径: 5.56x45mm NATO (Mk318)<br />装填数: 30 구경: 5.56x45mm NATO (Mk318)<br />장탄수: 30 - 口徑: 5.56x45mm NATO標準 (Mk318 特戰專用彈)<br />發數: 30 - 口径: 5.56x45mm NATO标准 (Mk318 特战专用弹)<br />发数: 30 + 口徑: 5.56x45mm NATO標準 (Mk318 特戰專用彈)<br />發數: 30 + 口径: 5.56x45mm NATO标准 (Mk318 特战专用弹)<br />发数: 30 5.56mm 30Rnd Mag (M995 AP) @@ -1318,8 +1318,8 @@ 5,56mm 30-lövedékes tár (M995 páncéltörő) 5.56mm 30発入り 弾倉 (M995 徹甲弾) 30발들이 5.56mm 탄창 (Mk995 철갑탄) - 5.56mm 30發 彈匣 (M995 穿甲彈) - 5.56mm 30发 弹匣 (M995 穿甲弹) + 5.56mm 30發 彈匣 (M995 穿甲彈) + 5.56mm 30发 弹匣 (M995 穿甲弹) 5.56mm AP @@ -1334,8 +1334,8 @@ 5,56mm páncéltörő 5.56mm 徹甲弾 5.56mm 철갑탄 - 5.56mm M995 穿甲彈 - 5.56mm M995 穿甲弹 + 5.56mm M995 穿甲彈 + 5.56mm M995 穿甲弹 Caliber: 5.56x45mm NATO (M995 AP)<br />Rounds: 30 @@ -1350,8 +1350,8 @@ Kaliber: 5,56x45mm NATO (M995 páncéltörő)<br />Lövedékek: 30 口径: 5.56x45mm NATO (M995 徹甲弾)<br />装填数: 30 구경: 5.56x45mm NATO (Mk995 철갑탄)<br />장탄수: 30 - 口徑: 5.56x45mm NATO標準 (M995 穿甲彈)<br />發數: 30 - 口径: 5.56x45mm NATO标准 (M995 穿甲弹)<br />发数: 30 + 口徑: 5.56x45mm NATO標準 (M995 穿甲彈)<br />發數: 30 + 口径: 5.56x45mm NATO标准 (M995 穿甲弹)<br />发数: 30 7.62mm 10Rnd Mag (M118LR) @@ -1366,8 +1366,8 @@ 7,62mm 10-lövedékes tár (M118LR) 7.62mm 10発入り 弾倉 (M118LR) 10발들이 7.62mm 탄창 (M118LR) - 7.62mm 10發 彈匣 (M118LR 狙擊專用彈) - 7.62mm 10发 弹匣 (M118LR 狙击专用弹) + 7.62mm 10發 彈匣 (M118LR 狙擊專用彈) + 7.62mm 10发 弹匣 (M118LR 狙击专用弹) 7.62mm M118LR @@ -1382,8 +1382,8 @@ 7,62mm M118LR 7.62mm M118LR 7.62mm M118LR - 7.62mm M118LR 狙擊專用彈 - 7.62mm M118LR 狙击专用弹 + 7.62mm M118LR 狙擊專用彈 + 7.62mm M118LR 狙击专用弹 Caliber: 7.62x51mm NATO (M118LR)<br />Rounds: 10 @@ -1398,8 +1398,8 @@ Kaliber: 7,62x51mm NATO (M118LR)<br />Lövedékek: 10 口径: 7.62x51mm NATO (M118LR)<br />装填数: 10 구경: 7.62x51mm NATO (M118LR)<br />장탄수: 10 - 口徑: 7.62x51mm NATO標準 (M118LR 狙擊專用彈)<br />發數: 10 - 口径: 7.62x51mm NATO标准 (M118LR 狙击专用弹)<br />发数: 10 + 口徑: 7.62x51mm NATO標準 (M118LR 狙擊專用彈)<br />發數: 10 + 口径: 7.62x51mm NATO标准 (M118LR 狙击专用弹)<br />发数: 10 7.62mm 20Rnd Mag (M118LR) @@ -1414,8 +1414,8 @@ 7,62mm 20-lövedékes tár (M118LR) 7.62mm 20発入り 弾倉 (M118LR) 20발들이 7.62mm 탄창 (M118LR) - 7.62mm 20發 彈匣 (M118LR 狙擊專用彈) - 7.62mm 20发 弹匣 (M118LR 狙击专用弹) + 7.62mm 20發 彈匣 (M118LR 狙擊專用彈) + 7.62mm 20发 弹匣 (M118LR 狙击专用弹) 7.62mm M118LR @@ -1430,8 +1430,8 @@ 7,62mm M118LR 7.62mm M118LR 7.62mm M118LR - 7.62mm M118LR 狙擊專用彈 - 7.62mm M118LR 狙击专用弹 + 7.62mm M118LR 狙擊專用彈 + 7.62mm M118LR 狙击专用弹 Caliber: 7.62x51mm NATO (M118LR)<br />Rounds: 20 @@ -1446,8 +1446,8 @@ Kaliber: 7,62x51mm NATO (M118LR)<br />Lövedékek: 20 口径: 7.62x51mm NATO (M118LR)<br />装填数: 20 구경: 7.62x51mm NATO (M118LR)<br />장탄수: 20 - 口徑: 7.62x51mm NATO標準 (M118LR 狙擊專用彈)<br />發數: 20 - 口径: 7.62x51mm NATO标准 (M118LR 狙击专用弹)<br />发数: 20 + 口徑: 7.62x51mm NATO標準 (M118LR 狙擊專用彈)<br />發數: 20 + 口径: 7.62x51mm NATO标准 (M118LR 狙击专用弹)<br />发数: 20 7.62mm 10Rnd Mag (Mk316 Mod 0) @@ -1462,8 +1462,8 @@ 7,62mm 10-lövedékes tár (Mk316 Mod 0) 7.62mm 10発入り 弾倉 (Mk316 Mod 0) 10발들이 7.62mm 탄창 (Mk316 Mod 0) - 7.62mm 10發 彈匣 (Mk316 Mod 0 狙擊專用彈) - 7.62mm 10发 弹匣 (Mk316 Mod 0 狙击专用弹) + 7.62mm 10發 彈匣 (Mk316 Mod 0 狙擊專用彈) + 7.62mm 10发 弹匣 (Mk316 Mod 0 狙击专用弹) 7.62mm Mk316 @@ -1478,8 +1478,8 @@ 7,62mm Mk316 7.62mm Mk316 7.62mm Mk316 - 7.62mm Mk316 狙擊專用彈 - 7.62mm Mk316 狙击专用弹 + 7.62mm Mk316 狙擊專用彈 + 7.62mm Mk316 狙击专用弹 Caliber: 7.62x51mm NATO (Mk316 Mod 0)<br />Rounds: 10 @@ -1494,8 +1494,8 @@ Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Lövedékek: 10 口径: 7.62x51mm NATO (Mk316 Mod 0)<br />装填数: 10 구경: 7.62x51mm NATO (Mk316 Mod 0)<br />장탄수: 10 - 口徑: 7.62x51mm NATO標準 (Mk316 Mod 0 狙擊專用彈)<br />發數: 10 - 口径: 7.62x51mm NATO标准 (Mk316 Mod 0 狙击专用弹)<br />发数: 10 + 口徑: 7.62x51mm NATO標準 (Mk316 Mod 0 狙擊專用彈)<br />發數: 10 + 口径: 7.62x51mm NATO标准 (Mk316 Mod 0 狙击专用弹)<br />发数: 10 7.62mm 20Rnd Mag (Mk316 Mod 0) @@ -1510,8 +1510,8 @@ 7,62mm 20-lövedékes tár (Mk316 Mod 0) 7.62mm 20発入り 弾倉 (Mk316 Mod 0) 20발들이 7.62mm 탄창 (Mk316 Mod 0) - 7.62mm 20發 彈匣 (Mk316 Mod 0 狙擊專用彈) - 7.62mm 20发 弹匣 (Mk316 Mod 0 狙击专用弹) + 7.62mm 20發 彈匣 (Mk316 Mod 0 狙擊專用彈) + 7.62mm 20发 弹匣 (Mk316 Mod 0 狙击专用弹) 7.62mm Mk316 @@ -1526,8 +1526,8 @@ 7,62mm Mk316 7.62mm Mk316 7.62mm Mk316 - 7.62mm Mk316 狙擊專用彈 - 7.62mm Mk316 狙击专用弹 + 7.62mm Mk316 狙擊專用彈 + 7.62mm Mk316 狙击专用弹 Caliber: 7.62x51mm NATO (Mk316 Mod 0)<br />Rounds: 20 @@ -1542,8 +1542,8 @@ Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Lövedékek: 20 口径: 7.62x51mm NATO (Mk316 Mod 0)<br />装填数: 20 구경: 7.62x51mm NATO (Mk316 Mod 0)<br />장탄수: 20 - 口徑: 7.62x51mm NATO標準 (Mk316 Mod 0 狙擊專用彈)<br />發數: 20 - 口径: 7.62x51mm NATO标准 (Mk316 Mod 0 狙击专用弹)<br />发数: 20 + 口徑: 7.62x51mm NATO標準 (Mk316 Mod 0 狙擊專用彈)<br />發數: 20 + 口径: 7.62x51mm NATO标准 (Mk316 Mod 0 狙击专用弹)<br />发数: 20 7.62mm 10Rnd Mag (Mk319 Mod 0) @@ -1558,8 +1558,8 @@ 7,62mm 10-lövedékes tár (Mk319 Mod 0) 7.62mm 10発入り 弾倉 (Mk319 Mod 0) 10발들이 7.62mm 탄창 (Mk319 Mod 0) - 7.62mm 10發 彈匣 (Mk319 Mod 0 特戰專用彈) - 7.62mm 10发 弹匣 (Mk319 Mod 0 特战专用弹) + 7.62mm 10發 彈匣 (Mk319 Mod 0 特戰專用彈) + 7.62mm 10发 弹匣 (Mk319 Mod 0 特战专用弹) 7.62mm Mk319 @@ -1574,8 +1574,8 @@ 7,62mm Mk319 7.62mm Mk319 7.62mm Mk319 - 7.62mm Mk319 特戰專用彈 - 7.62mm Mk319 特战专用弹 + 7.62mm Mk319 特戰專用彈 + 7.62mm Mk319 特战专用弹 Caliber: 7.62x51mm NATO (Mk319 Mod 0)<br />Rounds: 10 @@ -1590,8 +1590,8 @@ Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Lövedékek: 10 口径: 7.62x51mm NATO (Mk319 Mod 0)<br />装填数: 10 구경: 7.62x51mm NATO (Mk319 Mod 0)<br />장탄수: 10 - 口徑: 7.62x51mm NATO標準 (Mk319 Mod 0 特戰專用彈)<br />發數: 10 - 口径: 7.62x51mm NATO标准 (Mk319 Mod 0 特战专用弹)<br />发数: 10 + 口徑: 7.62x51mm NATO標準 (Mk319 Mod 0 特戰專用彈)<br />發數: 10 + 口径: 7.62x51mm NATO标准 (Mk319 Mod 0 特战专用弹)<br />发数: 10 7.62mm 20Rnd Mag (Mk319 Mod 0) @@ -1606,8 +1606,8 @@ 7,62mm 20-lövedékes tár (Mk319 Mod 0) 7.62mm 20発入り 弾倉 (Mk319 Mod 0) 20발들이 7.62mm 탄창 (Mk319 Mod 0) - 7.62mm 20發 彈匣 (Mk319 Mod 0 特戰專用彈) - 7.62mm 20发 弹匣 (Mk319 Mod 0 特战专用弹) + 7.62mm 20發 彈匣 (Mk319 Mod 0 特戰專用彈) + 7.62mm 20发 弹匣 (Mk319 Mod 0 特战专用弹) 7.62mm Mk319 @@ -1622,8 +1622,8 @@ 7,62mm Mk319 7.62mm Mk319 7.62mm Mk319 - 7.62mm Mk319 特戰專用彈 - 7.62mm Mk319 特战专用弹 + 7.62mm Mk319 特戰專用彈 + 7.62mm Mk319 特战专用弹 Caliber: 7.62x51mm NATO (Mk319 Mod 0)<br />Rounds: 20 @@ -1638,8 +1638,8 @@ Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Lövedékek: 20 口径: 7.62x51mm NATO (Mk319 Mod 0)<br />装填数: 20 구경: 7.62x51mm NATO (Mk319 Mod 0)<br />장탄수: 20 - 口徑: 7.62x51mm NATO標準 (Mk319 Mod 0 特戰專用彈)<br />發數: 20 - 口径: 7.62x51mm NATO标准 (Mk319 Mod 0 特战专用弹)<br />发数: 20 + 口徑: 7.62x51mm NATO標準 (Mk319 Mod 0 特戰專用彈)<br />發數: 20 + 口径: 7.62x51mm NATO标准 (Mk319 Mod 0 特战专用弹)<br />发数: 20 7.62mm 10Rnd Mag (M993 AP) @@ -1654,8 +1654,8 @@ 7,62mm 10-lövedékes tár (M993 páncéltörő) 7.62mm 10発入り 弾倉 (M993 徹甲弾) 10발들이 7.62mm 탄창 (M993 철갑탄) - 7.62mm 10發 彈匣 (M993 穿甲專用彈) - 7.62mm 10发 弹匣 (M993 穿甲专用弹) + 7.62mm 10發 彈匣 (M993 穿甲專用彈) + 7.62mm 10发 弹匣 (M993 穿甲专用弹) 7.62mm AP @@ -1670,8 +1670,8 @@ 7,62mm páncéltörő 7.62mm 徹甲弾 7.62mm 철갑탄 - 7.62mm M993 穿甲專用彈 - 7.62mm M993 穿甲专用弹 + 7.62mm M993 穿甲專用彈 + 7.62mm M993 穿甲专用弹 Caliber: 7.62x51mm NATO (M993 AP)<br />Rounds: 10 @@ -1686,8 +1686,8 @@ Kaliber: 7,62x51mm NATO (M993 páncéltörő)<br />Lövedékek: 10 口径: 7.62x51mm NATO (Mk319 Mod 0)<br />装填数: 10 구경: 7.62x51mm NATO (M993 철갑탄)<br />장탄수: 10 - 口徑: 7.62x51mm NATO標準 (M993 穿甲專用彈)<br />發數: 10 - 口径: 7.62x51mm NATO标准 (M993 穿甲专用弹)<br />发数: 10 + 口徑: 7.62x51mm NATO標準 (M993 穿甲專用彈)<br />發數: 10 + 口径: 7.62x51mm NATO标准 (M993 穿甲专用弹)<br />发数: 10 7.62mm 20Rnd Mag (M993 AP) @@ -1702,8 +1702,8 @@ 7,62mm 20-lövedékes tár (M993 páncéltörő) 7.62mm 20発入り 弾倉 (M993 徹甲弾) 20발들이 7.62mm 탄창 (M993 철갑탄) - 7.62mm 20發 彈匣 (M993 穿甲專用彈) - 7.62mm 20发 弹匣 (M993 穿甲专用弹) + 7.62mm 20發 彈匣 (M993 穿甲專用彈) + 7.62mm 20发 弹匣 (M993 穿甲专用弹) 7.62mm AP @@ -1718,8 +1718,8 @@ 7,62mm páncéltörő 7.62mm 徹甲弾 7.62mm 철갑탄 - 7.62mm M993 穿甲專用彈 - 7.62mm M993 穿甲专用弹 + 7.62mm M993 穿甲專用彈 + 7.62mm M993 穿甲专用弹 Caliber: 7.62x51mm NATO (M993 AP)<br />Rounds: 20 @@ -1734,8 +1734,8 @@ Kaliber: 7,62x51mm NATO (M993 páncéltörő)<br />Lövedékek: 20 口径: 7.62x51mm NATO (M993 徹甲弾)<br />装填数: 20 구경: 7.62x51mm NATO (M993 철갑탄)<br />장탄수: 20 - 口徑: 7.62x51mm NATO標準 (M993 穿甲專用彈)<br />發數: 20 - 口径: 7.62x51mm NATO标准 (M993 穿甲专用弹)<br />发数: 20 + 口徑: 7.62x51mm NATO標準 (M993 穿甲專用彈)<br />發數: 20 + 口径: 7.62x51mm NATO标准 (M993 穿甲专用弹)<br />发数: 20 7.62mm 20Rnd Mag (Mk248 Mod 0) @@ -1750,8 +1750,8 @@ 7,62mm 20-lövedékes tár (Mk248 Mod 0) 7.62mm 20発入り 弾倉 (Mk248 Mod 0) 20발들이 7.62mm 탄창 (Mk248 Mod 0) - 7.62mm 20發 彈匣 (Mk248 Mod 0 狙擊專用彈) - 7.62mm 20发 弹匣 (Mk248 Mod 0 狙击专用弹) + 7.62mm 20發 彈匣 (Mk248 Mod 0 狙擊專用彈) + 7.62mm 20发 弹匣 (Mk248 Mod 0 狙击专用弹) 7.62mm Mk248 @@ -1766,8 +1766,8 @@ 7,62mm Mk248 7.62mm Mk248 7.62mm Mk248 - 7.62mm Mk248 狙擊專用彈 - 7.62mm Mk248 狙击专用弹 + 7.62mm Mk248 狙擊專用彈 + 7.62mm Mk248 狙击专用弹 Caliber: 7.62x67mm NATO (Mk248 Mod 0)<br />Rounds: 20 @@ -1782,8 +1782,8 @@ Kaliber: 7,62x51mm NATO (Mk248 Mod 0)<br />Lövedékek: 20 口径: 7.62x67mm NATO (Mk248 Mod 0)<br />装填数: 20 구경: 7.62x51mm NATO (Mk248 Mod 0)<br />장탄수: 20 - 口徑: 7.62x67mm NATO標準 (Mk248 Mod 0 狙擊專用彈)<br />發數: 20 - 口径: 7.62x67mm NATO标准 (Mk248 Mod 0 狙击专用弹)<br />发数: 20 + 口徑: 7.62x67mm NATO標準 (Mk248 Mod 0 狙擊專用彈)<br />發數: 20 + 口径: 7.62x67mm NATO标准 (Mk248 Mod 0 狙击专用弹)<br />发数: 20 7.62mm 20Rnd Mag (Mk248 Mod 1) @@ -1798,8 +1798,8 @@ 7,62mm 20-lövedékes tár (Mk248 Mod 1) 7.62mm 20発入り 弾倉 (Mk248 Mod 1) 20발들이 7.62mm 탄창 (Mk248 Mod 1) - 7.62mm 20發 彈匣 (Mk248 Mod 1 狙擊專用彈) - 7.62mm 20发 弹匣 (Mk248 Mod 1 狙击专用弹) + 7.62mm 20發 彈匣 (Mk248 Mod 1 狙擊專用彈) + 7.62mm 20发 弹匣 (Mk248 Mod 1 狙击专用弹) 7.62mm Mk248 @@ -1814,8 +1814,8 @@ 7,62mm Mk248 7.62mm Mk248 7.62mm Mk248 - 7.62mm Mk248 狙擊專用彈 - 7.62mm Mk248 狙击专用弹 + 7.62mm Mk248 狙擊專用彈 + 7.62mm Mk248 狙击专用弹 Caliber: 7.62x67mm NATO (Mk248 Mod 1)<br />Rounds: 20 @@ -1830,8 +1830,8 @@ Kaliber: 7,62x51mm NATO (Mk248 Mod 1)<br />Lövedékek: 20 口径: 7.62x67mm NATO (Mk248 Mod 1)<br />装填数: 20 구경: 7.62x51mm NATO (Mk248 Mod 1)<br />장탄수: 20 - 口徑: 7.62x67mm NATO標準 (Mk248 Mod 1 狙擊專用彈)<br />發數: 20 - 口径: 7.62x67mm NATO标准 (Mk248 Mod 1 狙击专用弹)<br />发数: 20 + 口徑: 7.62x67mm NATO標準 (Mk248 Mod 1 狙擊專用彈)<br />發數: 20 + 口径: 7.62x67mm NATO标准 (Mk248 Mod 1 狙击专用弹)<br />发数: 20 7.62mm 20Rnd Mag (Berger Hybrid OTM) @@ -1846,8 +1846,8 @@ 7,62mm 20-lövedékes tár (Berger Hybrid OTM) 7.62mm 20発入り 弾倉 (Berger Hybrid OTM) 20발들이 7.62mm 탄창 (Berger Hybrid OTM) - 7.62mm 20發 彈匣 (Berger Hybrid 空尖比賽專用彈) - 7.62mm 20发 弹匣 (Berger Hybrid 空尖比赛专用弹) + 7.62mm 20發 彈匣 (Berger Hybrid 空尖比賽專用彈) + 7.62mm 20发 弹匣 (Berger Hybrid 空尖比赛专用弹) 7.62mm OTM @@ -1862,8 +1862,8 @@ 7,62mm OTM 7.62mm OTM 7.62mm OTM - 7.62mm 空尖比賽專用彈 - 7.62mm 空尖比赛专用弹 + 7.62mm 空尖比賽專用彈 + 7.62mm 空尖比赛专用弹 Caliber: 7.62x67mm NATO (Berger Hybrid OTM)<br />Rounds: 20 @@ -1878,8 +1878,8 @@ Kaliber: 7,62x67mm NATO (Berger Hybrid OTM)<br />Lövedékek: 20 口径: 7.62x67mm NATO (Berger Hybrid OTM)<br />装填数: 20 구경: 7.62x51mm NATO (Berger Hybrid OTM)<br />장탄수: 20 - 口徑: 7.62x67mm NATO標準 (Berger Hybrid 空尖比賽專用彈)<br />發數: 20 - 口径: 7.62x67mm NATO标准 (Berger Hybrid 空尖比赛专用弹)<br />发数: 20 + 口徑: 7.62x67mm NATO標準 (Berger Hybrid 空尖比賽專用彈)<br />發數: 20 + 口径: 7.62x67mm NATO标准 (Berger Hybrid 空尖比赛专用弹)<br />发数: 20 6.5x47mm 30Rnd Mag (HPBT Scenar) @@ -1894,8 +1894,8 @@ 6,5x47mm 30-lövedékes tár (HPBT Scenar) 6.5x47mm 30発入り 弾倉 (HPBT Scenar) 30발들이 6.5x47mm 탄창 (HPBT Scenar) - 6.5x47mm 30發 彈匣 (Lapua 空尖艇尾狙擊專用彈) - 6.5x47mm 30发 弹匣 (Lapua 空尖艇尾狙击专用弹) + 6.5x47mm 30發 彈匣 (Lapua 空尖艇尾狙擊專用彈) + 6.5x47mm 30发 弹匣 (Lapua 空尖艇尾狙击专用弹) 6.5mm Lapua @@ -1910,8 +1910,8 @@ 6,5mm Lapua 6.5mm Lapua 6.5mm Lapua - 6.5mm Lapua 空尖艇尾狙擊專用彈 - 6.5mm Lapua 空尖艇尾狙击专用弹 + 6.5mm Lapua 空尖艇尾狙擊專用彈 + 6.5mm Lapua 空尖艇尾狙击专用弹 Caliber: 6.5x47mm (HPBT Scenar)<br />Rounds: 30<br />Used in: MXM @@ -1926,8 +1926,8 @@ Kaliber: 6,5x47mm (HPBT Scenar)<br />Lövedékek: 30<br />Használható: MXM 口径: 6.5x47mm (HPBT Scenar)<br />装填数: 30<br />次で使用: MXM 구경: 6.5x47mm (HPBT Scenar)<br />장탄수: 30<br />사용처: MXM - 口徑: 6.5x47mm (Lapua 空尖艇尾狙擊專用彈)<br />發數: 30<br />使用於: MXM - 口径: 6.5x47mm (Lapua 空尖艇尾狙击专用弹)<br />发数: 30<br />使用于: MXM + 口徑: 6.5x47mm (Lapua 空尖艇尾狙擊專用彈)<br />發數: 30<br />使用於: MXM + 口径: 6.5x47mm (Lapua 空尖艇尾狙击专用弹)<br />发数: 30<br />使用于: MXM 6.5mm Creedmor 30Rnd Mag @@ -1942,8 +1942,8 @@ 6,5mm Creedmor 30-lövedékes tár 6.5mm Creedmor 30発入り 弾倉 30발들이 6.5mm Creedmor 탄창 - 6.5mm 30發 彈匣 (Creedmor 狙擊專用彈) - 6.5mm 30发 弹匣 (Creedmor 狙击专用弹) + 6.5mm 30發 彈匣 (Creedmor 狙擊專用彈) + 6.5mm 30发 弹匣 (Creedmor 狙击专用弹) 6.5mm CM @@ -1958,8 +1958,8 @@ 6,5mm CM 6.5mm CM 6.5mm CM - 6.5mm CM 狙擊專用彈 - 6.5mm CM 狙击专用弹 + 6.5mm CM 狙擊專用彈 + 6.5mm CM 狙击专用弹 Caliber: 6.5x47mm Creedmor<br />Rounds: 30<br />Used in: MXM @@ -1974,8 +1974,8 @@ Kaliber: 6,5x47mm Creedmor<br />Lövedékek: 30<br />Használható: MXM 口径: 6.5x47mm Creedmor<br />装填数: 30<br />次で使用: MXM 구경: 6.5x47mm Creedmor<br />장탄수: 30<br />사용처: MXM - 口徑: 6.5x47mm Creedmor 狙擊專用彈<br />發數: 30<br />使用於: MXM - 口径: 6.5x47mm Creedmor 狙击专用弹<br />发数: 30<br />使用于: MXM + 口徑: 6.5x47mm Creedmor 狙擊專用彈<br />發數: 30<br />使用於: MXM + 口径: 6.5x47mm Creedmor 狙击专用弹<br />发数: 30<br />使用于: MXM .338 10Rnd Mag (300gr Sierra MatchKing HPBT) @@ -1990,8 +1990,8 @@ .338 10-lövedékes tár (300gr Sierra MatchKing HPBT) .338 10発入り 弾倉 (300gr Sierra MatchKing HPBT) 10발들이 .338 탄창 (300gr Sierra MatchKing HPBT) - .338 10發 彈匣 (300公克 Sierra MatchKing 空尖艇尾比賽專用彈) - .338 10发 弹匣 (300公克 Sierra MatchKing 空尖艇尾比赛专用弹) + .338 10發 彈匣 (300公克 Sierra MatchKing 空尖艇尾比賽專用彈) + .338 10发 弹匣 (300公克 Sierra MatchKing 空尖艇尾比赛专用弹) .338 HPBT @@ -2006,8 +2006,8 @@ .338 HPBT 338 HPBT .338 HPBT - .338 空尖艇尾比賽專用彈 - .338 空尖艇尾比赛专用弹 + .338 空尖艇尾比賽專用彈 + .338 空尖艇尾比赛专用弹 Caliber: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Rounds: 10 @@ -2022,8 +2022,8 @@ Kaliber: 8,6x70mm (300gr Sierra MatchKing HPBT)<br />Lövedékek: 10 口径: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />装填数: 10 구경: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />장탄수: 10 - 口徑: 8.6x70mm (300公克 Sierra MatchKing 空尖艇尾比賽專用彈)<br />發數: 10 - 口径: 8.6x70mm (300公克 Sierra MatchKing 空尖艇尾比赛专用弹)<br />发数: 10 + 口徑: 8.6x70mm (300公克 Sierra MatchKing 空尖艇尾比賽專用彈)<br />發數: 10 + 口径: 8.6x70mm (300公克 Sierra MatchKing 空尖艇尾比赛专用弹)<br />发数: 10 .338 10Rnd Mag (API526) @@ -2038,8 +2038,8 @@ .338 10-lövedékes tár (API526) .338 10発入り 弾倉 (API526) 10발들이 .338 탄창 (API526) - .338 10發 彈匣 (API526 穿甲燃燒彈) - .338 10发 弹匣 (API526 穿甲燃烧弹) + .338 10發 彈匣 (API526 穿甲燃燒彈) + .338 10发 弹匣 (API526 穿甲燃烧弹) .338 AP @@ -2054,8 +2054,8 @@ .338 páncéltörő .338 徹甲弾 .338 철갑탄 - .338 API526 穿甲燃燒彈 - .338 API526 穿甲燃烧弹 + .338 API526 穿甲燃燒彈 + .338 API526 穿甲燃烧弹 Caliber: 8.6x70mm (API526)<br />Rounds: 10 @@ -2070,8 +2070,8 @@ Kaliber: 8,6x70mm (API526)<br />Lövedékek: 10 口径: 8.6x70mm (API526)<br />装填数: 10 구경: 8.6x70mm (API526)<br />장탄수: 10 - 口徑: 8.6x70mm (API526 穿甲燃燒彈)<br />發數: 10 - 口径: 8.6x70mm (API526 穿甲燃烧弹)<br />发数: 10 + 口徑: 8.6x70mm (API526 穿甲燃燒彈)<br />發數: 10 + 口径: 8.6x70mm (API526 穿甲燃烧弹)<br />发数: 10 .408 7Rnd Mag (305gr) @@ -2086,8 +2086,8 @@ .408 7-lövedékes tár (305gr) .408 7発入り 弾倉 (305gr) 7발들이 .408 탄창 (305gr) - .408 7發 彈匣 (305公克) - .408 7发 弹匣 (305公克) + .408 7發 彈匣 (305公克) + .408 7发 弹匣 (305公克) .408 @@ -2102,8 +2102,8 @@ .408 .408 .408 - .408 - .408 + .408 + .408 Caliber: .408 CheyTac (305gr)<br />Rounds: 7 @@ -2118,8 +2118,8 @@ Kaliber: .408 CheyTac (305gr)<br />Lövedékek: 7 口径: .408 CheyTac (305gr)<br />装填数: 7 구경: .408 CheyTac (305gr)<br />장탄수: 7 - 口徑: .408 夏伊戰術狙擊彈 (305公克)<br />發數: 7 - 口径: .408 夏伊战术狙击弹 (305公克)<br />发数: 7 + 口徑: .408 夏伊戰術狙擊彈 (305公克)<br />發數: 7 + 口径: .408 夏伊战术狙击弹 (305公克)<br />发数: 7 12.7x99mm 5Rnd Mag @@ -2134,8 +2134,8 @@ 12,7x99mm 5-lövedékes tár 12.7x99mm 5発入り 弾倉 5발들이 12.7x99mm 탄창 - 12.7x99mm 5發 彈匣 - 12.7x99mm 5发 弹匣 + 12.7x99mm 5發 彈匣 + 12.7x99mm 5发 弹匣 12.7mm @@ -2150,8 +2150,8 @@ 12,7mm 12.7mm 12.7mm - 12.7mm - 12.7mm + 12.7mm + 12.7mm Caliber: 12.7x99mm<br />Rounds: 5 @@ -2166,8 +2166,8 @@ Kaliber: 12,7x99mm<br />Lövedékek: 5 口径: 12.7x99mm<br />装填数: 5 구경: 12.7x99mm<br />장탄수: 5 - 口徑: 12.7x99mm<br />發數: 5 - 口径: 12.7x99mm<br />发数: 5 + 口徑: 12.7x99mm<br />發數: 5 + 口径: 12.7x99mm<br />发数: 5 12.7x99mm API 5Rnd Mag @@ -2182,8 +2182,8 @@ 12,7x99mm 5-lövedékes tár (páncéltörő-gyújtó) 12.7x99mm 5発入り焼夷徹甲弾 弾倉 5발들이 12.7x99mm 철갑소이탄 탄창 - 12.7x99mm 穿甲燃燒彈 5發 彈匣 - 12.7x99mm 穿甲燃烧弹 5发 弹匣 + 12.7x99mm 穿甲燃燒彈 5發 彈匣 + 12.7x99mm 穿甲燃烧弹 5发 弹匣 12.7mm API @@ -2198,8 +2198,8 @@ 12,7mm páncéltörő-gyújtó 12.7mm 焼夷徹甲弾 12.7mm 철갑소이탄 - 12.7mm 穿甲燃燒彈 - 12.7mm 穿甲燃烧弹 + 12.7mm 穿甲燃燒彈 + 12.7mm 穿甲燃烧弹 Caliber: 12.7x99mm API<br />Rounds: 5 @@ -2214,8 +2214,8 @@ Kaliber: 12,7x99mm API<br />Lövedékek: 5 口径: 12.7x99mm 焼夷徹甲弾<br />装填数: 5 구경: 12.7x99mm 철갑소이탄<br />장탄수: 5 - 口徑: 12.7x99mm 穿甲燃燒彈<br />發數: 5 - 口径: 12.7x99mm 穿甲燃烧弹<br />发数: 5 + 口徑: 12.7x99mm 穿甲燃燒彈<br />發數: 5 + 口径: 12.7x99mm 穿甲燃烧弹<br />发数: 5 12.7x99mm 5Rnd Mag (AMAX) @@ -2230,8 +2230,8 @@ 12,7x99mm 5-lövedékes tár (AMAX) 12.7x99mm 5発入り 弾倉 (AMAX) 5발들이 12.7x99mm 탄창 (AMAX) - 12.7x99mm 5發 彈匣 (AMAX 比賽專用彈) - 12.7x99mm 5发 弹匣 (AMAX 比赛专用弹) + 12.7x99mm 5發 彈匣 (AMAX 比賽專用彈) + 12.7x99mm 5发 弹匣 (AMAX 比赛专用弹) 12.7mm @@ -2246,8 +2246,8 @@ 12,7mm 12.7mm 12.7mm - 12.7mm AMAX 比賽專用彈 - 12.7mm AMAX 比赛专用弹 + 12.7mm AMAX 比賽專用彈 + 12.7mm AMAX 比赛专用弹 Caliber: 12.7x99mm (AMAX)<br />Rounds: 5 @@ -2262,8 +2262,8 @@ Kaliber: 12,7x99mm (AMAX)<br />Lövedékek: 5 口径: 12.7x99mm (AMAX)<br />装填数: 5 구경: 12.7x99mm (AMAX)<br />장탄수: 5 - 口徑: 12.7x99mm (AMAX 比賽專用彈)<br />發數: 5 - 口径: 12.7x99mm (AMAX 比赛专用弹)<br />发数: 5 + 口徑: 12.7x99mm (AMAX 比賽專用彈)<br />發數: 5 + 口径: 12.7x99mm (AMAX 比赛专用弹)<br />发数: 5 [ACE] Ammo Supply Crate @@ -2278,8 +2278,8 @@ [ACE] Cassa munizioni [ACE] 弾薬物資箱 [ACE] 탄약 보급 상자 - [ACE] 彈藥補給箱 - [ACE] 弹药补给箱 + [ACE] 彈藥補給箱 + [ACE] 弹药补给箱 diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml index 8b976754257..467d06bd830 100644 --- a/addons/captives/stringtable.xml +++ b/addons/captives/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Взять в плен 捕虜にする 사로잡기 - 逮捕俘虜 - 逮捕俘虏 + 逮捕俘虜 + 逮捕俘虏 Free Prisoner @@ -30,8 +30,8 @@ Освободить пленника 捕虜を解放する 풀어주기 - 釋放俘虜 - 释放俘虏 + 釋放俘虜 + 释放俘虏 Escort Prisoner @@ -46,8 +46,8 @@ Конвоировать пленника 捕虜を移動させる 포로 호송하기 - 護送俘虜 - 护送俘虏 + 護送俘虜 + 护送俘虏 Release Prisoner @@ -62,8 +62,8 @@ Прекратить конвоирование 捕虜を解放する 포로 풀어주기 - 停止護送俘虜 - 停止护送俘虏 + 停止護送俘虜 + 停止护送俘虏 You need to take him as prisoner first! @@ -78,8 +78,8 @@ Вы должны сначала взять его в плен! あなたは先に捕虜を取る必要があります。 먼저 포로로 만들어야합니다! - 你必須先逮捕他! - 你必须先逮捕他! + 你必須先逮捕他! + 你必须先逮捕他! Load Captive @@ -94,8 +94,8 @@ Fai salire il prigioniero 捕虜を乗せる 포로 태우기 - 將俘虜放入載具 - 将俘虏放入载具 + 將俘虜放入載具 + 将俘虏放入载具 Unload Captive @@ -110,8 +110,8 @@ Fai scendere il prigioniero 捕虜を降ろす 포로 내리기 - 將俘虜帶出載具 - 将俘虏带出载具 + 將俘虜帶出載具 + 将俘虏带出载具 Cable Tie @@ -126,8 +126,8 @@ Кабельная стяжка ケーブル タイ 케이블 타이 - 束線帶 - 束线带 + 束線帶 + 束线带 Cable ties that allow you to restrain prisoners. @@ -142,8 +142,8 @@ Кабельные стяжки позволяют связывать пленников. ケーブル タイは捕虜を制圧できます。 케이블 타이는 포로를 구류시킬때 씁니다. - 束線帶可以綁住俘虜 - 束线带可以绑住俘虏 + 束線帶可以綁住俘虜 + 束线带可以绑住俘虏 Inventory of frisked person @@ -158,8 +158,8 @@ Inventario della persona perquisita 捕虜の持ち物を確認する 검문당한 사람의 소지품 - 搜身選單 - 搜身选单 + 搜身選單 + 搜身选单 Frisk person @@ -174,8 +174,8 @@ Perquisisci la persona 捕虜の持ち物 검문당한사람 - 搜身 - 搜身 + 搜身 + 搜身 Surrender @@ -190,8 +190,8 @@ Arrenditi 投降 투항 - 投降 - 投降 + 投降 + 投降 Stop Surrendering @@ -206,8 +206,8 @@ Smetti di arrenderti 投降をやめる 투항하는것을 멈춤 - 停止投降 - 停止投降 + 停止投降 + 停止投降 Make Unit Surrender @@ -222,8 +222,8 @@ Fai arrendere l'unità ユニットを投降させる 투항시키기 - 使單位投降 - 使单位投降 + 使單位投降 + 使单位投降 Sync a unit to make them surrender. @@ -238,8 +238,8 @@ Sincronizza una unità per farla arrendere. 同期されたユニットを投降させます。 투항시키기 위해 동기화합니다. - 同步此模塊到一個單位, 使該單位投降 - 同步此模块到一个单位, 使该单位投降 + 同步此模塊到一個單位, 使該單位投降 + 同步此模块到一个单位, 使该单位投降 Make Unit Handcuffed @@ -253,8 +253,8 @@ Rendre une unité captive ユニットを拘束する 수갑을 채우기 - 使單位戴上手銬 - 使单位戴上手铐 + 使單位戴上手銬 + 使单位戴上手铐 Sync a unit to make them handcuffed. @@ -268,8 +268,8 @@ Synchronisez une unité pour la rendre captive. 同期されたユニットを拘束させます。 수갑을 채우기 위해 동기화합니다. - 使單位戴上手銬 - 使单位戴上手铐 + 使單位戴上手銬 + 使单位戴上手铐 Captives Settings @@ -284,8 +284,8 @@ Impostazioni Prigionieri 拘束の設定 포로 설정 - 俘虜設定 - 俘虏设定 + 俘虜設定 + 俘虏设定 Controls settings for surrender and cable ties @@ -300,8 +300,8 @@ Controlla le impostazioni per la resa e le manette 投降したユニットや拘束されたユニットの扱いを設定します。 투항과 케이블 타이에 관련한 설정 - 定義投降與束帶等設定 - 定义投降与束带等设定 + 定義投降與束帶等設定 + 定义投降与束带等设定 Can handcuff own side @@ -316,8 +316,8 @@ Puoi ammanettare unità alleate 自陣営への拘束を可能に 자기편에게 수갑을 채울 수 있게 합니다 - 可以銬住同陣營隊友 - 可以铐住同阵营队友 + 可以銬住同陣營隊友 + 可以铐住同阵营队友 Can players cabletie units on their own side @@ -332,8 +332,8 @@ I giocatori possono ammanettare unità alleate プレイヤーがユニットを拘束し、彼らの陣営に変更できます。 자기편에게 케이블타이를 사용할 수 있게합니다 - 玩家可以使用束線帶銬住同陣營隊友 - 玩家可以使用束线带铐住同阵营队友 + 玩家可以使用束線帶銬住同陣營隊友 + 玩家可以使用束线带铐住同阵营队友 Allow surrendering @@ -348,8 +348,8 @@ Permetti Resa 投降を許可 투항 활성화 - 允許投降 - 允许投降 + 允許投降 + 允许投降 Players can surrender after holstering their weapon @@ -364,8 +364,8 @@ I giocatori possono arrendersi dopo aver messo via le proprie armi プレイヤーは武器を収めたあとに投降できるようにします。 비무장한 플레이어가 투항할 수 있게 합니다 - 玩家能在收起自己武器後投降 - 玩家能在收起自己武器后投降 + 玩家能在收起自己武器後投降 + 玩家能在收起自己武器后投降 Require surrendering @@ -379,8 +379,8 @@ Requiert la reddition 投降を必要とする 투항 필요 - 要求目標投降 - 要求目标投降 + 要求目標投降 + 要求目标投降 Require Players to surrender before they can be arrested @@ -394,8 +394,8 @@ Requiert la capitulation des joueurs avant qu'ils ne puissent être arrêtés プレイヤーは拘束される前に、投降する必要があります。 체포하기 전에 플레이어가 투항을 먼저해야만 합니다 - 玩家須先要求目標投降, 才可以進行逮捕 - 玩家须先要求目标投降, 才可以进行逮捕 + 玩家須先要求目標投降, 才可以進行逮捕 + 玩家须先要求目标投降, 才可以进行逮捕 Surrendering only @@ -409,8 +409,8 @@ Reddition seulement 投降中のみ 투항 중에만 - 只能在投降狀態 - 只能在投降状态 + 只能在投降狀態 + 只能在投降状态 Surrendering or No weapon @@ -424,8 +424,8 @@ Capitulation ou desarmé 投降中か非武装時 투항 중 혹은 비무장 - 投降或無武器狀態 - 投降或无武器状态 + 投降或無武器狀態 + 投降或无武器状态 diff --git a/addons/cargo/stringtable.xml b/addons/cargo/stringtable.xml index 6c9e3209d3a..05c8d9bc231 100644 --- a/addons/cargo/stringtable.xml +++ b/addons/cargo/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,8 +13,8 @@ Charger 積み込む 싣기 - 裝載 - 装载 + 裝載 + 装载 Unload @@ -28,8 +28,8 @@ Décharger 下ろす 내리기 - 卸載 - 卸载 + 卸載 + 卸载 Cargo @@ -43,8 +43,8 @@ Cargaison カーゴ 화물 - 貨物 - 货物 + 貨物 + 货物 Cargo Menu @@ -58,8 +58,8 @@ Menu de cargaison カーゴ メニュー 화물 메뉴 - 貨物選單 - 货物选单 + 貨物選單 + 货物选单 Cargo space left: %1 @@ -73,8 +73,8 @@ Espace de cargaison restant : %1 カーゴの空き容量: %1 선적 공간 남음: %1 - 貨物剩餘空間: %1 - 货物剩余空间: %1 + 貨物剩餘空間: %1 + 货物剩余空间: %1 Enable Cargo @@ -88,8 +88,8 @@ Activer la mise en cargaison カーゴを有効化 화물 활성화 - 啟用貨物裝載 - 启用货物装载 + 啟用貨物裝載 + 启用货物装载 Enable the load in cargo module @@ -103,8 +103,8 @@ Active le chargement de cargaison dans un vehicule カーゴ モジュールで積み込みを有効化 화물 모듈에 싣기를 활성화합니다 - 啟用貨物裝載功能 - 启用货物装载功能 + 啟用貨物裝載功能 + 启用货物装载功能 Cargo Settings @@ -118,8 +118,8 @@ Paramètres de cargaison カーゴ設定 화물 설정 - 貨物設定 - 货物设定 + 貨物設定 + 货物设定 Configure the cargo module settings @@ -133,8 +133,8 @@ Configure les paramètres du module de cargaison カーゴ モジュールの設定を構成 화물 모듈의 환경 설정을 바꿉니다 - 配置貨物模塊設定 - 配置货物模块设定 + 配置貨物模塊設定 + 配置货物模块设定 %1<br/>loaded into<br/>%2 @@ -149,8 +149,8 @@ %1<br/>загружен в<br/>%2 %1<br/>は<br/>%2へ積み込まれた %1<br/>는<br/>%2 에 실림 - %1<br/>裝載至<br/>%2 - %1<br/>装载至<br/>%2 + %1<br/>裝載至<br/>%2 + %1<br/>装载至<br/>%2 Unloaded<br/>%1 from<br/>%2 @@ -165,8 +165,8 @@ %1<br/>разгружен из<br/>%2 <br/>%1が<br/>%2から降ろされた %1<br/>는<br/>%2 에서 내려짐 - 從<br/>%2卸載<br/>%1 - 从<br/>%2卸载<br/>%1 + 從<br/>%2卸載<br/>%1 + 从<br/>%2卸载<br/>%1 Loading Cargo @@ -180,8 +180,8 @@ Chargement de la cargaison カーゴへ積み込んでいる 화물 싣기 - 裝載貨物中 - 装载货物中 + 裝載貨物中 + 装载货物中 Unloading Cargo @@ -195,8 +195,8 @@ Déchargement de la cargaison カーゴから降ろしている 화물 내리기 - 卸載貨物中 - 卸载货物中 + 卸載貨物中 + 卸载货物中 %1<br/>could not be loaded @@ -210,8 +210,8 @@ %1<br /> n'a pas pu être chargé %1<br/>は積み込めなかった %1<br/>이 실릴 수가 없습니다 - %1<br/>無法被裝載 - %1<br/>无法被装载 + %1<br/>無法被裝載 + %1<br/>无法被装载 %1<br/>could not be unloaded @@ -225,8 +225,8 @@ %1<br /> n'a pas pu être déchargé %1<br/>は降ろせなかった %1<br/>이 내려질 수가 없습니다 - %1<br/>無法被卸載 - %1<br/>无法被卸载 + %1<br/>無法被卸載 + %1<br/>无法被卸载 Make Object Loadable @@ -240,8 +240,8 @@ Сделать объект загружаемым オブジェクトを積載可能に 물체를 화물화시키기 - 使物件可裝載 - 使物件可装载 + 使物件可裝載 + 使物件可装载 Sets the synced object as loadable by the cargo system. @@ -255,8 +255,8 @@ Делает синхронизированный объект загружаемым для модуля перевозки грузов. オブジェクトを同期させると、カーゴ システムによる積載が可能になります。 물체를 화물 시스템과 동기화시켜 실을 수 있게 합니다 - 使用同步線來使該物件可被裝載. - 使用同步线来使该物件可被装载. + 使用同步線來使該物件可被裝載. + 使用同步线来使该物件可被装载. Object's Size @@ -270,36 +270,36 @@ Размер объекта オブジェクトの大きさ 물체 크기 - 物件的大小 - 物件的大小 + 物件的大小 + 物件的大小 Cargo Space Spazio Cargo カーゴ スペース - 貨物空間 - 货物空间 + 貨物空間 + 货物空间 The cargo space available in this vehicle/container Lo spazio disponibile in questo veicolo/container この車両/コンテナでカーゴ スペースを使えるようにします - 設定此載具/集裝箱可裝載多少貨物 - 设定此载具/集装箱可装载多少货物 + 設定此載具/集裝箱可裝載多少貨物 + 设定此载具/集装箱可装载多少货物 Cargo Size Dimensioni Cargo カーゴ サイズ - 貨物的大小 - 货物的大小 + 貨物的大小 + 货物的大小 The cargo space required to hold this object (-1 for unloadable) Lo spazio del cargo necessita di mantenere questo oggetto (-1 per scaricabile) このオブジェクトを積載するのに必要なカーゴ スペース (-1 で積載不可) - 此貨物會佔掉多少空間(設定-1的話此貨物就不能被裝載) - 此货物会占掉多少空间(设定-1的话此货物就不能被装载) + 此貨物會佔掉多少空間(設定-1的話此貨物就不能被裝載) + 此货物会占掉多少空间(设定-1的话此货物就不能被装载) Airdrop @@ -309,8 +309,8 @@ 공중 투하 Largage aérien Lancio Aereo - 空投 - 空投 + 空投 + 空投 Unlevel Flight @@ -320,24 +320,24 @@ 기체가 수평이 아닙니다 Rétablir l'assiette Volo non Livellato - 此架飛機並無保持水平飛行 - 此架飞机并无保持水平飞行 + 此架飛機並無保持水平飛行 + 此架飞机并无保持水平飞行 Paradrop Time Coffecient 空中投下までの時間係数 Coefficente Tempo Lancio Paracadute Coefficient Temps de largage de cargaison - 空投時間係數 - 空投时间系数 + 空投時間係數 + 空投时间系数 Modifier for how long it takes to paradrop a cargo item. カーゴ アイテムを空中投下するまでの時間を変更します。 Modificato per quanto tempo ci impiega a paracadutare un oggetto cargo. Modifier le temps qu'il faut pour larguer la cargaison. - 設定空投所需消耗的時間. - 设定空投所需消耗的时间. + 設定空投所需消耗的時間. + 设定空投所需消耗的时间. diff --git a/addons/chemlights/stringtable.xml b/addons/chemlights/stringtable.xml index e42b949a4f5..cd3ee7c8943 100644 --- a/addons/chemlights/stringtable.xml +++ b/addons/chemlights/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -9,8 +9,8 @@ 켐라이트 Cyalumes Luce chimica - 螢光棒 - 萤光棒 + 螢光棒 + 萤光棒 Prepare %1 @@ -20,8 +20,8 @@ %1 준비 Prépare %1 Prepara %1 - 使用%1 - 使用%1 + 使用%1 + 使用%1 %1<br/>Prepared @@ -31,8 +31,8 @@ %1<br/>준비됨 %1<br/>prêt %1 <br/> Preparata - %1<br/>已使用 - %1<br/>已使用 + %1<br/>已使用 + %1<br/>已使用 No inventory space @@ -47,8 +47,8 @@ В инвентаре нет места インベントリに空きがありません 소지품 공간이 없음 - 已無存放空間 - 已无存放空间 + 已無存放空間 + 已无存放空间 [ACE] Chemlights @@ -58,8 +58,8 @@ [ACE] 켐라이트 [ACE] Cyalume [ACE] Luci chimiche - [ACE] 螢光棒 - [ACE] 萤光棒 + [ACE] 螢光棒 + [ACE] 萤光棒 Chemlight (Orange) @@ -69,8 +69,8 @@ 켐라이트 (주황) Cyalume (orange) Luce chimica (Arancione) - 螢光棒 (橘色) - 萤光棒 (橘色) + 螢光棒 (橘色) + 萤光棒 (橘色) Orange Light @@ -80,8 +80,8 @@ 주황색 Lum. orange Luce Arancione - 橘色光 - 橘色光 + 橘色光 + 橘色光 Type: Light - Orange<br />Rounds: 1<br />Used in: Hand @@ -91,8 +91,8 @@ 종류:밝은 오렌지<br />수량: 1<br />사용처: 손 Type: Lumière - orange<br />Nbre: 1<br /> À main Tipo: Luce - Arancione<br/>Rimanenti: 1<br/>Usata in: Mano - 類型: 光 - 橘色<br />發數: 1<br />使用於: 手 - 类型: 光 - 橘色<br />发数: 1<br />使用于: 手 + 類型: 光 - 橘色<br />發數: 1<br />使用於: 手 + 类型: 光 - 橘色<br />发数: 1<br />使用于: 手 Chemlight (White) @@ -102,8 +102,8 @@ 켐라이트 (하양) Cyalume (blanc) Luce chimica (Bianca) - 螢光棒 (白色) - 萤光棒 (白色) + 螢光棒 (白色) + 萤光棒 (白色) White Light @@ -113,8 +113,8 @@ 하얀색 Lum. blanche Luce Bianca - 白色光 - 白色光 + 白色光 + 白色光 Type: Light - White<br />Rounds: 1<br />Used in: Hand @@ -124,8 +124,8 @@ 종류:하얀색<br />수량: 1<br />사용처: 손 Type: Lumière - blanche<br />Nbre: 1<br /> À main Tipo: Luce - Bianca<br/>Rimanenti: 1<br/>Usata in: Mano - 類型: 光 - 白色<br />發數: 1<br />使用於: 手 - 类型: 光 - 白色<br />发数: 1<br />使用于: 手 + 類型: 光 - 白色<br />發數: 1<br />使用於: 手 + 类型: 光 - 白色<br />发数: 1<br />使用于: 手 Chemlight (Hi Red) @@ -135,8 +135,8 @@ 켐라이트 (밝은 빨간색) Cyalume (Hi rouge) Luce chimica (Hi Rossa) - 螢光棒 (超亮紅色) - 萤光棒 (超亮红色) + 螢光棒 (超亮紅色) + 萤光棒 (超亮红色) Red Hi Light @@ -146,8 +146,8 @@ 밝은 빨간색 Lum. rouge haute intensité Luce Hi Rossa - 超亮紅色光 - 超亮红色光 + 超亮紅色光 + 超亮红色光 Type: Light - Red Hi (5 minute)<br />Rounds: 1<br />Used in: Hand @@ -157,8 +157,8 @@ 종류: 밝은 빨간색 (5분)<br />수량: 1<br />사용처: 손 Type: Lumière - rouge Hi (5 minutes)<br />Nbre: 1<br /> À main Tipo: Luce - Rossa Hi (5 minuti)<br />Rimanenti: 1<br/>Usata in: Mano - 類型: 光 - 超亮紅色 (5分鐘)<br />發數: 1<br />使用於: 手 - 类型: 光 - 超亮红色 (5分钟)<br />发数: 1<br />使用于: 手 + 類型: 光 - 超亮紅色 (5分鐘)<br />發數: 1<br />使用於: 手 + 类型: 光 - 超亮红色 (5分钟)<br />发数: 1<br />使用于: 手 Chemlight (Hi Yellow) @@ -168,8 +168,8 @@ 켐라이트 (밝은 노란색) Cyalume (Hi jaune) Luce chimica (Hi Gialla) - 螢光棒 (超亮黃色) - 萤光棒 (超亮黄色) + 螢光棒 (超亮黃色) + 萤光棒 (超亮黄色) Yellow Hi Light @@ -179,8 +179,8 @@ 밝은 노란색 Lum. jaune haute intensité Luce Hi Gialla - 超亮黃色光 - 超亮黄色光 + 超亮黃色光 + 超亮黄色光 Type: Light - Yellow Hi (5 minute)<br />Rounds: 1<br />Used in: Hand @@ -190,8 +190,8 @@ 종류:밝은 노란색 (5분)<br />수량: 1<br />사용처: Hand Type: Lumière - Jaune Hi (5 minutes)Nbre: 1<br /> À main Tipo: Luce - Gialla Hi (5 minuti)<br />Rimanenti: 1<br/>Usata in: Mano - 類型: 光 - 超亮黃色 (5分鐘)<br />發數: 1<br />使用於: 手 - 类型: 光 - 超亮黄色 (5分钟)<br />发数: 1<br />使用于: 手 + 類型: 光 - 超亮黃色 (5分鐘)<br />發數: 1<br />使用於: 手 + 类型: 光 - 超亮黄色 (5分钟)<br />发数: 1<br />使用于: 手 Chemlight (Hi Orange) @@ -201,8 +201,8 @@ 켐라이트 (밝은 주황색) Cyalume (Hi orange) Luce chimica (Hi Arancione) - 螢光棒 (超亮橘色) - 萤光棒 (超亮橘色) + 螢光棒 (超亮橘色) + 萤光棒 (超亮橘色) Orange Hi Light @@ -212,8 +212,8 @@ 밝은 주황색 Lum. orange haute intensité Luce Hi Arancione - 超亮橘色光 - 超亮橘色光 + 超亮橘色光 + 超亮橘色光 Type: Light - Orange Hi (5 minute)<br />Rounds: 1<br />Used in: Hand @@ -223,8 +223,8 @@ 종류: 밝은 주황색 (5분)<br />수량: 1<br />사용처: 손 Type: Lumière - orange Hi (5 minutes)<br />Nbre: 1<br /> À main Tipo: Luce - Arancione Hi (5 minuti)<br />Rimanenti: 1<br/>Usata in: Mano - 類型: 光 - 超亮橘色 (5分鐘)<br />發數: 1<br />使用於: 手 - 类型: 光 - 超亮橘色 (5分钟)<br />发数: 1<br />使用于: 手 + 類型: 光 - 超亮橘色 (5分鐘)<br />發數: 1<br />使用於: 手 + 类型: 光 - 超亮橘色 (5分钟)<br />发数: 1<br />使用于: 手 Chemlight (Hi White) @@ -234,8 +234,8 @@ 켐라이트 (밝은 하얀색) Cyalume (Hi blanc) Luce chimica (Hi Bianca) - 螢光棒 (超亮白色) - 萤光棒 (超亮白色) + 螢光棒 (超亮白色) + 萤光棒 (超亮白色) White Hi Light @@ -245,8 +245,8 @@ 밝은 하얀색 Lum. blanche haute intensité Luce Hi Bianca - 超亮白色光 - 超亮白色光 + 超亮白色光 + 超亮白色光 Type: Light - White Hi (5 minute)<br />Rounds: 1<br />Used in: Hand @@ -256,8 +256,8 @@ 종류: 밝은 하얀색 (5분)<br />수량: 1<br />사용처: 손 Type: Lumière - blanche Hi (5 minutes)<br />Nbre: 1<br /> À main Tipo: Luce - Bianca Hi (5 minuti)<br />Rimanenti: 1<br/>Usata in: Mano - 類型: 光 - 超亮白色 (5分鐘)<br />發數: 1<br />使用於: 手 - 类型: 光 - 超亮白色 (5分钟)<br />发数: 1<br />使用于: 手 + 類型: 光 - 超亮白色 (5分鐘)<br />發數: 1<br />使用於: 手 + 类型: 光 - 超亮白色 (5分钟)<br />发数: 1<br />使用于: 手 Chemlight (IR) @@ -267,8 +267,8 @@ 켐라이트 (적외선) Cyalume (IR) Luce chimica (IR) - 螢光棒 (紅外線) - 萤光棒 (红外线) + 螢光棒 (紅外線) + 萤光棒 (红外线) IR Light @@ -278,8 +278,8 @@ 적외선 켐라이트 Lumière IR Luce IR - 紅外線光 - 红外线光 + 紅外線光 + 红外线光 Type: Light - Infrared<br />Rounds: 1<br />Used in: Hand @@ -289,8 +289,8 @@ 종류: 적외선<br />수량: 1<br />사용처: 손 Type: Lumière - infrarouge<br />Nbre: 1<br /> À main Tipo: Luce - Infrarossi<br />Usata in: Mano - 類型: 光 - 紅外線<br />發數: 1<br />使用於: 手 - 类型: 光 - 红外线<br />发数: 1<br />使用于: 手 + 類型: 光 - 紅外線<br />發數: 1<br />使用於: 手 + 类型: 光 - 红外线<br />发数: 1<br />使用于: 手 Chemlight Shield (Empty) @@ -300,8 +300,8 @@ 켐라이트 쉴드 (비어있음) Étui cyalume (vide) Scudo Luce chimica (Vuoto) - 螢光棒保護殼 (空) - 萤光棒保护壳 (空) + 螢光棒保護殼 (空) + 萤光棒保护壳 (空) Shield for chemlights. Combine with chemlight to prepare reading light. @@ -311,8 +311,8 @@ 켐라이트를 위한 가림막입니다. 켐라이트와 같이 사용하여 읽을 때 씁니다. Étui pour cyalume. Combiné avec un cyalume pour obtennir un lampe de lecture. Scudo per luci chimiche. Combina con una luce chimica per una luce da lettura. - 螢光棒的保護殼. 與螢光棒結合後可充當閱讀燈. - 萤光棒的保护壳. 与萤光棒结合后可充当阅读灯. + 螢光棒的保護殼. 與螢光棒結合後可充當閱讀燈. + 萤光棒的保护壳. 与萤光棒结合后可充当阅读灯. Chemlight Shield (Green) @@ -322,8 +322,8 @@ 켐라이트 쉴드 (초록) Étui cyalume (vert) Scudo Luce Chimica (Verde) - 螢光棒保護殼 (綠色) - 萤光棒保护壳 (绿色) + 螢光棒保護殼 (綠色) + 萤光棒保护壳 (绿色) Green reading light. @@ -333,8 +333,8 @@ 초록빛 조명 Lampe d'orientation verte. Luce da lettura Verde. - 綠色閱讀燈. - 绿色阅读灯. + 綠色閱讀燈. + 绿色阅读灯. Chemlight Shield (Red) @@ -344,8 +344,8 @@ 켐라이트 쉴드 (빨강) Étui cyalume (rouge) Scudo Luce Chimica (Rossa) - 螢光棒保護殼 (紅色) - 萤光棒保护壳 (红色) + 螢光棒保護殼 (紅色) + 萤光棒保护壳 (红色) Red reading light. @@ -355,8 +355,8 @@ 빨간색 조명 Lampe d'orientation rouge. Luce da lettura Rossa. - 紅色閱讀燈. - 红色阅读灯. + 紅色閱讀燈. + 红色阅读灯. Chemlight Shield (Blue) @@ -366,8 +366,8 @@ 켐라이트 쉴드 (파랑) Étui cyalume (bleu) Scudo Luce Chimica (Blu) - 螢光棒保護殼 (藍色) - 萤光棒保护壳 (蓝色) + 螢光棒保護殼 (藍色) + 萤光棒保护壳 (蓝色) Blue reading light. @@ -377,8 +377,8 @@ 파란색 조명 Lampe d'orientation bleue. Luce da lettura Blu. - 藍色閱讀燈. - 蓝色阅读灯. + 藍色閱讀燈. + 蓝色阅读灯. Chemlight Shield (Yellow) @@ -388,8 +388,8 @@ 켐라이트 쉴드 (노랑) Étui cyalume (jaune) Scudo Luce Chimica (Gialla) - 螢光棒保護殼 (黃色) - 萤光棒保护壳 (黄色) + 螢光棒保護殼 (黃色) + 萤光棒保护壳 (黄色) Yellow reading light. @@ -399,8 +399,8 @@ 노란색 조명 Lampe d'orientation jaune. Luce da lettura Gialla. - 黃色閱讀燈. - 黄色阅读灯. + 黃色閱讀燈. + 黄色阅读灯. Chemlight Shield (Orange) @@ -410,8 +410,8 @@ 켐라이트 쉴드 (주황) Étui cyalume (orange) Scudo Luce Chimica (Arancione) - 螢光棒保護殼 (橘色) - 萤光棒保护壳 (橘色) + 螢光棒保護殼 (橘色) + 萤光棒保护壳 (橘色) Orange reading light. @@ -421,8 +421,8 @@ 주황색 조명 Lampe d'orientation orange. Luce da lettura Arancione. - 橘色閱讀燈. - 橘色阅读灯. + 橘色閱讀燈. + 橘色阅读灯. Chemlight Shield (White) @@ -432,8 +432,8 @@ 켐라이트 쉴드 (하양) Étui cyalume (blanc) Scudo Luce Chimica (Bianca) - 螢光棒保護殼 (白色) - 萤光棒保护壳 (白色) + 螢光棒保護殼 (白色) + 萤光棒保护壳 (白色) White reading light. @@ -443,8 +443,8 @@ 주황색 조명 Lampe d'orientation blanche. Luce da lettura Bianca. - 白色閱讀燈. - 白色阅读灯. + 白色閱讀燈. + 白色阅读灯. diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index a9cac3d4c6d..94c723567f8 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ ACE-Team ACE-Team ACE-Team - ACE-製作團隊 - ACE-制作团队 + ACE-製作團隊 + ACE-制作团队 Save @@ -30,8 +30,8 @@ Salva 保存 저장 - 儲存 - 储存 + 儲存 + 储存 Cancel @@ -46,8 +46,8 @@ Annulla 中止 취소 - 取消 - 取消 + 取消 + 取消 ACE Options @@ -62,8 +62,8 @@ Opzioni ACE ACE オプション ACE 옵션 - ACE設定選項 - ACE设定选项 + ACE設定選項 + ACE设定选项 @@ -79,8 +79,8 @@ N - - + + NNE @@ -95,8 +95,8 @@ NNE 北北東 북북동 - 北北東 - 北北东 + 北北東 + 北北东 NE @@ -111,8 +111,8 @@ NE 北東 북동 - 東北 - 东北 + 東北 + 东北 ENE @@ -127,8 +127,8 @@ ENE 東北東 동북동 - 東北東 - 东北东 + 東北東 + 东北东 E @@ -143,8 +143,8 @@ E - - + + ESE @@ -159,8 +159,8 @@ ESE 東南東 동남동 - 東南東 - 东南东 + 東南東 + 东南东 SE @@ -175,8 +175,8 @@ SE 南東 남동 - 東南 - 东南 + 東南 + 东南 SSE @@ -191,8 +191,8 @@ SSE 南南東 남남동 - 南南東 - 南南东 + 南南東 + 南南东 S @@ -207,8 +207,8 @@ S - - + + SSW @@ -223,8 +223,8 @@ SSO 南南西 남남서 - 南南西 - 南南西 + 南南西 + 南南西 SW @@ -239,8 +239,8 @@ SO 南西 남서 - 西南 - 西南 + 西南 + 西南 WSW @@ -255,8 +255,8 @@ OSO 西南西 서남서 - 西南西 - 西南西 + 西南西 + 西南西 W @@ -271,8 +271,8 @@ O 西 - 西 - 西 + 西 + 西 WNW @@ -287,8 +287,8 @@ ONO 北北西 서북서 - 西北西 - 西北西 + 西北西 + 西北西 NW @@ -303,8 +303,8 @@ NO 北西 북서 - 西北 - 西北 + 西北 + 西北 NNW @@ -319,8 +319,8 @@ NNO 北北西 북북서 - 北北西 - 北北西 + 北北西 + 北北西 Action cancelled. @@ -335,8 +335,8 @@ Azione cancellata. 動作を中止した。 행동 취소됨. - 動作已被取消 - 动作已被取消 + 動作已被取消 + 动作已被取消 [ACE] Miscellaneous Items @@ -351,8 +351,8 @@ [ACE] Oggetti vari [ACE] その他のアイテム [ACE] 기타 물품. - [ACE] 雜項 - [ACE] 杂项 + [ACE] 雜項 + [ACE] 杂项 Disable Command Menu @@ -367,8 +367,8 @@ Desabilitar menu de comando 指揮メニューを無効化 지휘 메뉴 종료 - 關閉命令選單 - 关闭命令选单 + 關閉命令選單 + 关闭命令选单 Unknown @@ -383,8 +383,8 @@ Desconhecido 不明 알 수 없음 - 未知的 - 未知的 + 未知的 + 未知的 No Voice @@ -399,8 +399,8 @@ Sem voz 音声なし 무음 - 沒聲音 - 没声音 + 沒聲音 + 没声音 Accept Requests @@ -415,8 +415,8 @@ Accetta la richiesta 要求を受け入れ 요청 수락 - 接受請求 - 接受请求 + 接受請求 + 接受请求 Decline Requests @@ -431,8 +431,8 @@ Rifiuta la richiesta 要求を拒否 요청 거부 - 拒絕請求 - 拒绝请求 + 拒絕請求 + 拒绝请求 Accept Requests send by other players. These can be requests to use / share equipment, perform certain actions. @@ -447,8 +447,8 @@ Aceitar pedidos enviados por outros jogadores. Podem ser pedidos para usar/ compartilhar equipamento, realizar certas ações. 他プレイヤからの要求を許可します。他プレイヤは装備を共有し、使うなど特定の動作を行えます。 다른 플레이어가 보내온 요청을 수락합니다. 이것은 장비 사용 / 공유 요청, 특정 작업 수행 등이 될 수 있습니다. - 接受由其他玩家送出的請求. 包含使用/共享裝備與執行特定動作 - 接受由其他玩家送出的请求. 包含使用/共享装备与执行特定动作 + 接受由其他玩家送出的請求. 包含使用/共享裝備與執行特定動作 + 接受由其他玩家送出的请求. 包含使用/共享装备与执行特定动作 Decline Requests send by other players. These can be requests to use / share equipment, perform certain actions. @@ -463,8 +463,8 @@ Rejeita pedidos enviados por outros jogadores. Podem ser pedidos para usar/ compartilhar equipamento, realizar certas ações. 他プレイヤからの要求を拒否します。他プレイヤは装備を共有し、使うなど特定の動作をできません。 다른 플레이어가 보내온 요청을 거부합니다. 이것은 장비 사용 / 공유 요청, 특정 작업 수행 등이 될 수 있습니다. - 拒絕由其他玩家送出的請求. 包含使用/共享裝備與執行特定動作 - 拒绝由其他玩家送出的请求. 包含使用/共享装备与执行特定动作 + 拒絕由其他玩家送出的請求. 包含使用/共享裝備與執行特定動作 + 拒绝由其他玩家送出的请求. 包含使用/共享装备与执行特定动作 Feedback icons @@ -479,8 +479,8 @@ Ícones de Feedback フィードバック アイコン 피드백 아이콘 - 回饋圖標 - 回馈图标 + 回饋圖標 + 回馈图标 Select the position of or disable the feedback icons on your screen. These icons will show to provide extra feedback on your character status and actions performed. @@ -495,8 +495,8 @@ Selecione a posição ou disabilite a posição dos ícones de feedback na sua tela. Esses ícones irão aparecer para mostrar feedback extra do status do seu personagem e ações realizadas. 画面上に表示するフィードバック アイコンの位置や無効化を選択できます。このアイコンは自キャラクター状態や動作の状況をフィードバックするために表示されています。 피드백 아이콘의 위치를 설정하거나 비활성화합니다. 피드백 아이콘은 캐릭터의 상세정보와 행동을 보여줍니다. - 選擇位置或取消回饋圖標顯示在螢幕上. 這些圖標將顯示出你角色額外的狀態與行動等資訊. - 选择位置或取消回馈图标显示在荧幕上. 这些图标将显示出你角色额外的状态与行动等资讯. + 選擇位置或取消回饋圖標顯示在螢幕上. 這些圖標將顯示出你角色額外的狀態與行動等資訊. + 选择位置或取消回馈图标显示在荧幕上. 这些图标将显示出你角色额外的状态与行动等资讯. Progress bar location @@ -511,8 +511,8 @@ Local da barra de progresso プログレス バーの位置 진행 막대의 위치 - 進度欄位置 - 进度栏位置 + 進度欄位置 + 进度栏位置 Set the desired location of the progress bar on your screen. @@ -527,8 +527,8 @@ Define o local desejado da barra de progresso na sua tela. 画面上に表示されるプログレス バーの位置を設定できます。 진행 막대를 원하는 곳에 배치합니다. - 設定進度欄在畫面中的位置 - 设定进度栏在画面中的位置 + 設定進度欄在畫面中的位置 + 设定进度栏在画面中的位置 Hint Background color @@ -543,8 +543,8 @@ Cor do fundo da hint ヒントの背景色 힌트 배경색 - 提示的背景顏色 - 提示的背景颜色 + 提示的背景顏色 + 提示的背景颜色 The color of the background from the ACE hints. @@ -559,8 +559,8 @@ A cor de fundo das hints do ACE. ACE によるヒントの背景色を指定します。 ACE힌트의 배경색을 정합니다. - 設定ACE提示的背景顏色. - 设定ACE提示的背景颜色. + 設定ACE提示的背景顏色. + 设定ACE提示的背景颜色. Hint text font color @@ -575,8 +575,8 @@ Cor do do texto da hint ヒント文章の色 힌트 글씨색 - 提示文字的顏色 - 提示文字的颜色 + 提示文字的顏色 + 提示文字的颜色 The color of the text font from the ACE hints. This color is the default color for all text displayed through the ACE Hint system, if the hint text has no other color specified. @@ -591,8 +591,8 @@ A cor do texto das hints do ACE. Essa cor é a cor default para todos os texos exibidos pelo sistema de hints do ACE , caso o texto da hint não tem outra cor especificada. ACE によるヒントの文章へ、色を設定できます。この色は ACE ヒント システムを介して表示される全文章の色と標準でなっており、特定の色を設定していても、標準色になります。 ACE 힌트에 쓰이는 글씨 색입니다. 힌트 글씨의 색이 정해지지 않을경우 모든 힌트의 색은 기본으로 설정됩니다. - 設定ACE提示文字的顏色. 若提示字體並無指定其他顏色, 將會自動選用ACE系統的預設顏色 - 设定ACE提示文字的颜色. 若提示字体并无指定其他颜色, 将会自动选用ACE系统的预设颜色 + 設定ACE提示文字的顏色. 若提示字體並無指定其他顏色, 將會自動選用ACE系統的預設顏色 + 设定ACE提示文字的颜色. 若提示字体并无指定其他颜色, 将会自动选用ACE系统的预设颜色 Banana @@ -607,8 +607,8 @@ Banana 甘蕉 바나나 - 香蕉 - 香蕉 + 香蕉 + 香蕉 A banana is an edible fruit, botanically a berry, produced by several kinds of large herbaceous flowering plants in the genus Musa. @@ -623,8 +623,8 @@ A banana é uma fruta comestível, botanicamente uma baga, produzida por vários tipos de plantas herbáceas grandes do genero Musa. 甘蕉は食べられる果物でバショウ科バショウ属のうち、果実を食用とする品種群の総称。また、その果実のこと。いくつかの原種から育種された多年草。種によっては熟すまでは毒を持つものもある。 바나나는 식용 과일로써 식물학적으로 열매류이며 여러 종류의 개화가능한 초본의 파초과로 부터 생산됩니다. - 香蕉(學名: Musa × paradisiaca), 為芭蕉科芭蕉屬小果野蕉及野蕉的人工栽培雜交種, 為多年生草本植物. 果實長有棱; 果皮黃色, 果肉白色, 味道香甜. 主要生長在熱帶、亞熱帶地區. 原產於亞洲東南部熱帶、亞熱帶地區. - 香蕉(学名: Musa × paradisiaca), 为芭蕉科芭蕉属小果野蕉及野蕉的人工栽培杂交种, 为多年生草本植物. 果实长有棱; 果皮黄色, 果肉白色, 味道香甜. 主要生长在热带、亚热带地区. 原产于亚洲东南部热带、亚热带地区. + 香蕉(學名: Musa × paradisiaca), 為芭蕉科芭蕉屬小果野蕉及野蕉的人工栽培雜交種, 為多年生草本植物. 果實長有棱; 果皮黃色, 果肉白色, 味道香甜. 主要生長在熱帶、亞熱帶地區. 原產於亞洲東南部熱帶、亞熱帶地區. + 香蕉(学名: Musa × paradisiaca), 为芭蕉科芭蕉属小果野蕉及野蕉的人工栽培杂交种, 为多年生草本植物. 果实长有棱; 果皮黄色, 果肉白色, 味道香甜. 主要生长在热带、亚热带地区. 原产于亚洲东南部热带、亚热带地区. Check PBOs @@ -639,8 +639,8 @@ Controlla PBO PBO を検査 PBO 검사 - 檢查PBO檔 - 检查PBO档 + 檢查PBO檔 + 检查PBO档 Check addon integrity with server and do selected action if an addon is missing. @@ -654,8 +654,8 @@ Controlla l'integrità degli addon con il server ed esegui l'azione selezionata se un addon è mancante サーバがアドオンの整合性を検査し、もし不備があれば実行する動作を選択できます。 서버 에드온의 무결성을 검사하고 사라진 에드온이 있을경우 행동을 선택합니다. - 檢查客戶端與伺服器端的模組清單是否一致且完整, 並提供訊息表示遺失的模組. - 检查客户端与伺服器端的模组清单是否一致且完整, 并提供讯息表示遗失的模组. + 檢查客戶端與伺服器端的模組清單是否一致且完整, 並提供訊息表示遺失的模組. + 检查客户端与伺服器端的模组清单是否一致且完整, 并提供讯息表示遗失的模组. Action @@ -670,8 +670,8 @@ Azione 動作 작동 - 動作 - 动作 + 動作 + 动作 What to do with people who do not have the right PBOs? @@ -686,8 +686,8 @@ Cosa fare con giocatori che non hanno i PBO corretti? プレイヤーが正しい PBO を持っていない場合は? 올바르지 않는 PBO를 가진 사람을 어떻게 할까요? - 若玩家沒有正確的PBO檔時, 將採取何種動作? - 若玩家没有正确的PBO档时, 将采取何种动作? + 若玩家沒有正確的PBO檔時, 將採取何種動作? + 若玩家没有正确的PBO档时, 将采取何种动作? Warn once @@ -702,8 +702,8 @@ Avverti una volta 一度の警告 경고 한 번 - 警告 (一次) - 警告 (一次) + 警告 (一次) + 警告 (一次) Warn (permanent) @@ -718,8 +718,8 @@ Avverti (permanente) 警告(永久的) 경고 (영구적) - 警告 (持續) - 警告 (持续) + 警告 (持續) + 警告 (持续) Kick @@ -734,8 +734,8 @@ Kick 排除 추방 - 踢除 - 踢除 + 踢除 + 踢除 Check all addons @@ -750,8 +750,8 @@ Controlla tutti gli addon 全アドオンを検査 모든 에드온 검사 - 檢查所有模組 - 检查所有模组 + 檢查所有模組 + 检查所有模组 Check all addons instead of only those of ACE? @@ -766,8 +766,8 @@ Controlla tutti gli addon invece dei soli addon ACE? ACE MOD の代わりに全アドオンを検査しますか? ACE를 제외한 모든 모드를 검사할까요? - 檢查包含ACE之外的其他模組? - 检查包含ACE之外的其他模组? + 檢查包含ACE之外的其他模組? + 检查包含ACE之外的其他模组? Whitelist @@ -782,8 +782,8 @@ Lista Bianca 許可制 화이트리스트 - 白名單 - 白名单 + 白名單 + 白名单 What addons are allowed regardless? @@ -798,8 +798,8 @@ Quali addon sono permessi in ogni caso? どのようなアドオンを許可しますか? 허가되는 에드온은 어느것입니까? - 哪些模組是可被允許/忽略的? - 哪些模组是可被允许/忽略的? + 哪些模組是可被允許/忽略的? + 哪些模组是可被允许/忽略的? LSD Vehicles @@ -814,8 +814,8 @@ Veicoli LSD LSD 車両 LSD 차량 - 迷幻載具 - 迷幻载具 + 迷幻載具 + 迷幻载具 Adds LSD effect to synchronized vehicle @@ -830,8 +830,8 @@ Aggiunge effetti LSD ai veicoli sincronizzati 同期されたオブジェクトに LSD の効果を追加します 동기화된 차량에 LSD효과를 추가합니다. - 使被同步的載具產生瘋狂的迷幻效果. (後果自負) - 使被同步的载具产生疯狂的迷幻效果. (后果自负) + 使被同步的載具產生瘋狂的迷幻效果. (後果自負) + 使被同步的载具产生疯狂的迷幻效果. (后果自负) Toggle Handheld Device @@ -846,8 +846,8 @@ Apri dispositivo palmare デバイスを常に表示 휴대장치 토글 - 切換手持裝備 - 切换手持装备 + 切換手持裝備 + 切换手持装备 Close Handheld Device @@ -862,8 +862,8 @@ Chiudi dispositivo palmare デバイスを閉じる 휴대장치 닫기 - 關閉手持裝備 - 关闭手持装备 + 關閉手持裝備 + 关闭手持装备 Cycle Handheld Devices @@ -878,8 +878,8 @@ Cicla tra dispositivi palmari 表示するデバイスを変える 휴대장치 순환 - 循環切換手持裝備 - 循环切换手持装备 + 循環切換手持裝備 + 循环切换手持装备 Disabled @@ -893,8 +893,8 @@ Desactivado 無効化 비활성화 - 停用 - 停用 + 停用 + 停用 Enabled @@ -908,8 +908,8 @@ Activado 有効化 활성화 - 啟用 - 启用 + 啟用 + 启用 Yes @@ -924,8 +924,8 @@ Si はい - - + + No @@ -940,8 +940,8 @@ No いいえ 아니오 - - + + Vehicles only @@ -955,8 +955,8 @@ Vehicules seulement 車両のみ 차량 전용 - 只有載具 - 只有载具 + 只有載具 + 只有载具 Do Not Force @@ -970,8 +970,8 @@ Ne pas forcer 強制しない 강제하지 말것 - 不要強行 - 不要强行 + 不要強行 + 不要强行 ACE3 Equipment @@ -985,8 +985,8 @@ ACE3 Equipement ACE3 装備 ACE3 장비 - ACE3 裝備按鍵 - ACE3 装备按键 + ACE3 裝備按鍵 + ACE3 装备按键 ACE3 Common @@ -1000,8 +1000,8 @@ ACE3 Commun ACE3 全般 ACE3 일반 - ACE3 通用按鍵 - ACE3 通用按键 + ACE3 通用按鍵 + ACE3 通用按键 ACE3 Weapons @@ -1015,8 +1015,8 @@ ACE3 Armes ACE3 武器 ACE3 무기 - ACE3 武器按鍵 - ACE3 武器按键 + ACE3 武器按鍵 + ACE3 武器按键 ACE3 Movement @@ -1030,8 +1030,8 @@ ACE3 Mouvement ACE3 移動 ACE3 움직임 - ACE3 動作按鍵 - ACE3 动作按键 + ACE3 動作按鍵 + ACE3 动作按键 ACE3 Scope Adjustment @@ -1045,8 +1045,8 @@ ACE3 Ajustement de la lunette ACE3 スコープ調節 ACE3 조준경 조정 - ACE3 瞄準鏡調節按鍵 - ACE3 瞄准镜调节按键 + ACE3 瞄準鏡調節按鍵 + ACE3 瞄准镜调节按键 ACE3 Vehicles @@ -1060,8 +1060,8 @@ ACE3 Vehicules ACE3 車両 ACE3 차량 - ACE3 載具按鍵 - ACE3 载具按键 + ACE3 載具按鍵 + ACE3 载具按键 No Room to unload @@ -1074,8 +1074,8 @@ Sem espaço para descarregar Нет места для выгрузки 降ろすための空間がありません - 沒有空間可卸載 - 没有空间可卸载 + 沒有空間可卸載 + 没有空间可卸载 Toggle @@ -1090,8 +1090,8 @@ alternar トグル 토글 - 切換 - 切换 + 切換 + 切换 diff --git a/addons/concertina_wire/stringtable.xml b/addons/concertina_wire/stringtable.xml index 728fd9746db..6c510c56b75 100644 --- a/addons/concertina_wire/stringtable.xml +++ b/addons/concertina_wire/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Arame farpado 鉄条網 철조망 - 鐵絲網 - 铁丝网 + 鐵絲網 + 铁丝网 Concertina Wire Coil @@ -30,8 +30,8 @@ Bobina de arame farpado 鉄条網コイル 윤형 철조망 - 鐵絲網捲 - 铁丝网卷 + 鐵絲網捲 + 铁丝网卷 Dismount Concertina Wire @@ -46,8 +46,8 @@ Desmontar arame farpado 鉄条網をほどく 철조망 해체 - 卸下鐵絲網 - 卸下铁丝网 + 卸下鐵絲網 + 卸下铁丝网 Deploy Concertina Wire @@ -62,8 +62,8 @@ Colocar arame farpado 鉄条網を置く 철조망 배치 - 佈署鐵絲網 - 布署铁丝网 + 佈署鐵絲網 + 布署铁丝网 diff --git a/addons/cookoff/stringtable.xml b/addons/cookoff/stringtable.xml index c27410ef1ba..c9c04f86ddc 100644 --- a/addons/cookoff/stringtable.xml +++ b/addons/cookoff/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -11,8 +11,8 @@ Aktywuj efekty samozapłonu amunicji Active le cook-off Abilita Esplosione - 開啟殉爆效果 - 开启殉爆效果 + 開啟殉爆效果 + 开启殉爆效果 Enables cook off and related vehicle destruction effects. @@ -24,8 +24,8 @@ Aktywuje efekt samozapłonu amunicji na zniszczonych pojazdach. Active le cook-off (autocombustion des munitions) et les effets de destruction liés. Abilita l'esplosione e i relativi effetti di distruzione del veicolo. - 開啟此功能後, 將使有關載具在損毀時有殉爆的效果. - 开启此功能后, 将使有关载具在损毁时有殉爆的效果. + 開啟此功能後, 將使有關載具在損毀時有殉爆的效果. + 开启此功能后, 将使有关载具在损毁时有殉爆的效果. Wreck (Turret) @@ -40,8 +40,8 @@ Ruínas (torre) 잔해(포탑) 残骸(タレット) - 殘骸 (砲塔) - 残骸 (炮塔) + 殘骸 (砲塔) + 残骸 (炮塔) Enable ammo box cook off @@ -51,8 +51,8 @@ Aktywuj samozapłon skrzyń z amunicją Cook-off caisses de munitions Abilita esplosione cassa munizioni - 開啟彈藥箱殉爆效果 - 开启弹药箱殉爆效果 + 開啟彈藥箱殉爆效果 + 开启弹药箱殉爆效果 Enables cooking off of ammo boxes. @@ -62,8 +62,8 @@ Aktywuje samozapłon skrzyń z amunicją Active le cook-off sur toutes les caisses de munitions. Abilita l'esplosione della cassa di munizioni. - 開啟彈藥箱殉爆效果. - 开启弹药箱殉爆效果. + 開啟彈藥箱殉爆效果. + 开启弹药箱殉爆效果. Enable Ammunition cook off @@ -73,8 +73,8 @@ Aktywuj samozapłon amunicji Active le cook-off des munitions Abilita Esplosione munizioni - 開啟彈藥殉爆效果 - 开启弹药殉爆效果 + 開啟彈藥殉爆效果 + 开启弹药殉爆效果 Enables Ammunition cook off. Fires ammunition projectiles while vehicle is on fire and has ammunition. @@ -83,8 +83,8 @@ Aktywuje samozapłon amunicji. Wystrzeliwuje pociski podczas gdy pojazd płonie i posiada amunicję. Mets à feu les munitions lorsqu'un véhicule est en feu et contient des munitions. Abilita l'esplosione delle munizioni. Spara munizioni di proiettili quando il veicolo va a fuoco e contiene munizioni. - 開啟彈藥殉爆效果. 當一台載有彈藥的載具起火時, 將會有殉爆的效果. - 开启弹药殉爆效果. 当一台载有弹药的载具起火时, 将会有殉爆的效果. + 開啟彈藥殉爆效果. 當一台載有彈藥的載具起火時, 將會有殉爆的效果. + 开启弹药殉爆效果. 当一台载有弹药的载具起火时, 将会有殉爆的效果. Ammunition cook off duration @@ -92,8 +92,8 @@ 弾薬の誘爆持続時間 Durée cook-off des munitions Durata esplosione munizioni - 彈藥殉爆效果持續時間 - 弹药殉爆效果持续时间 + 彈藥殉爆效果持續時間 + 弹药殉爆效果持续时间 Multiplier for how long cook off lasts [Setting to 0 will disable ammo cookoff] @@ -101,8 +101,8 @@ Mnożnik decydujący jak długo ma trwać samozapłon amunicji [Ustawienie na 0 spowoduje wyłącznie samozapłonu] 誘爆の持続時間を乗数で設定。[0 に設定で誘爆を無効化] Moltiplicatore della durata dell'esplosione [Impostare 0 disabiliterà l'esplosione delle munizioni] - 設定彈藥殉爆效果會持續多久時間 [輸入0來關閉殉爆效果] - 设定弹药殉爆效果会持续多久时间 [输入0来关闭殉爆效果] + 設定彈藥殉爆效果會持續多久時間 [輸入0來關閉殉爆效果] + 设定弹药殉爆效果会持续多久时间 [输入0来关闭殉爆效果] diff --git a/addons/dagr/stringtable.xml b/addons/dagr/stringtable.xml index f7155562a82..51ca754a823 100644 --- a/addons/dagr/stringtable.xml +++ b/addons/dagr/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,8 +13,8 @@ DAGR DAGR DAGR - 軍用GPS接收器 - 军用GPS接收器 + 軍用GPS接收器 + 军用GPS接收器 Configure DAGR @@ -28,8 +28,8 @@ Configurer le DAGR DAGR を設定 DAGR 설정 - 軍用GPS接收器設定 - 军用GPS接收器设定 + 軍用GPS接收器設定 + 军用GPS接收器设定 Toggle DAGR @@ -43,8 +43,8 @@ Activer/Desactiver le DAGR DAGR を常に表示 DAGR 토글 - 切換軍用GPS接收器 - 切换军用GPS接收器 + 切換軍用GPS接收器 + 切换军用GPS接收器 Defense Advanced GPS Receiver @@ -58,8 +58,8 @@ Defense Advanced GPS Receiver アドバンスド DAGR の受信を定義します 국방 고급위성항법시스템 수신기 - 軍用高級防禦GPS接收器 - 军用高级防御GPS接收器 + 軍用高級防禦GPS接收器 + 军用高级防御GPS接收器 diff --git a/addons/disarming/stringtable.xml b/addons/disarming/stringtable.xml index a7fc003f653..30f9fa4b857 100644 --- a/addons/disarming/stringtable.xml +++ b/addons/disarming/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Abrir inventário インベントリを開く 소지품 열기 - 開啟裝備 - 开启装备 + 開啟裝備 + 开启装备 diff --git a/addons/disposable/stringtable.xml b/addons/disposable/stringtable.xml index 782abbd9dce..f41b2cad887 100644 --- a/addons/disposable/stringtable.xml +++ b/addons/disposable/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Tubo utilizado 使用済み 사용함 - 使用過的火箭筒 - 使用过的火箭筒 + 使用過的火箭筒 + 使用过的火箭筒 Used disposable rocket launcher @@ -30,8 +30,8 @@ Lança foguetes descartável utilizado 使い終わったロケット ランチャーの筒部分 사용한 일회용 발사관 - 使用過的一次性火箭發射器 - 使用过的一次性火箭发射器 + 使用過的一次性火箭發射器 + 使用过的一次性火箭发射器 Preloaded Missile Dummy @@ -46,8 +46,8 @@ Míssel inerte pré-carregado 仮置きのミサイルをあらかじめ装填 임시로 미사일을 미리 장전 - 預裝訓練導彈 - 预装训练导弹 + 預裝訓練導彈 + 预装训练导弹 diff --git a/addons/dogtags/stringtable.xml b/addons/dogtags/stringtable.xml index edcfa14553c..e47a0ae1b74 100644 --- a/addons/dogtags/stringtable.xml +++ b/addons/dogtags/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -11,8 +11,8 @@ 군번줄 Plaque d'identification Piastrina - 兵籍牌 - 兵籍牌 + 兵籍牌 + 兵籍牌 Check Dog Tag @@ -24,8 +24,8 @@ 군번줄 확인 Vérifier les plaques d'identification Controlla Piastrina - 檢查兵籍牌 - 检查兵籍牌 + 檢查兵籍牌 + 检查兵籍牌 Check @@ -37,8 +37,8 @@ 확인 Vérifier Controlla - 檢查 - 检查 + 檢查 + 检查 Take @@ -50,8 +50,8 @@ 회수 Prendre Prendi - 拿取 - 拿取 + 拿取 + 拿取 Dogtag taken from %1... @@ -63,8 +63,8 @@ %1로부터 군번줄을 회수했습니다... Plaque d'identification pris sur %1... Piastrina presa da %1... - 從%1身上拿取兵籍牌... - 从%1身上拿取兵籍牌... + 從%1身上拿取兵籍牌... + 从%1身上拿取兵籍牌... Somebody else has already taken the dogtag... @@ -76,8 +76,8 @@ 누군가 이미 군번줄을 회수해갔습니다... Quelqu'un d'autre a déjâ pris les plaques d'identification... Qualcun altro ha già preso la piastrina... - 已經有人把他的兵籍牌拿走了... - 已经有人把他的兵籍牌拿走了... + 已經有人把他的兵籍牌拿走了... + 已经有人把他的兵籍牌拿走了... diff --git a/addons/dragging/stringtable.xml b/addons/dragging/stringtable.xml index 8d657be92ee..767ae3fd735 100644 --- a/addons/dragging/stringtable.xml +++ b/addons/dragging/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Húzás 引きずる 끌기 - 拖拉 - 拖拉 + 拖拉 + 拖拉 Release @@ -30,8 +30,8 @@ Elengedés はなす 놓기 - 放開 - 放开 + 放開 + 放开 Drag/Release Object @@ -46,8 +46,8 @@ Húzás/Elengedés Objektum オブジェクトを引きずる/はなす 물건 끌기/놓기 - 拖拉/放開物品 - 拖拉/放开物品 + 拖拉/放開物品 + 拖拉/放开物品 Item too heavy @@ -62,8 +62,8 @@ Az objektum túl nehéz アイテムが重すぎる 물체가 너무 무겁습니다 - 此物品過重 - 此物品过重 + 此物品過重 + 此物品过重 Carry @@ -78,8 +78,8 @@ Нести 運ぶ 업기 - 背起 - 背起 + 背起 + 背起 Raise/Lower @@ -93,8 +93,8 @@ Lever/Baisser 上げる/下げる 높이기/낮추기 - 提高/下降 - 提高/下降 + 提高/下降 + 提高/下降 diff --git a/addons/explosives/stringtable.xml b/addons/explosives/stringtable.xml index 5100ea4849c..f34a160cca3 100644 --- a/addons/explosives/stringtable.xml +++ b/addons/explosives/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Взрывчатка 爆発物 폭발물 - 炸药 - 炸藥 + 炸药 + 炸藥 Place @@ -30,8 +30,8 @@ Установить 設置 설치 - 放置 - 放置 + 放置 + 放置 Detonate @@ -46,8 +46,8 @@ Подрыв 点火 폭파 - 引爆 - 引爆 + 引爆 + 引爆 Detonate All @@ -61,8 +61,8 @@ Detonar Tudo すべて点火 모두 폭파 - 引爆全部 - 引爆全部 + 引爆全部 + 引爆全部 Explosive code: %1 @@ -77,8 +77,8 @@ Codice esplosivo: %1 爆破コード: %1 폭파 코드: %1 - 炸药代码: %1 - 炸藥代碼: %1 + 炸药代码: %1 + 炸藥代碼: %1 Place @@ -93,8 +93,8 @@ Установить 設置 설치 - 放置 - 放置 + 放置 + 放置 Attach @@ -109,8 +109,8 @@ Прикрепить 取り付け 부착 - 连接 - 連接 + 连接 + 連接 Blocked @@ -124,8 +124,8 @@ Bloqué 取り付けできない 막힘 - 断开 - 斷開 + 断开 + 斷開 Cancel @@ -140,8 +140,8 @@ Отмена 中止 취소 - 取消 - 取消 + 取消 + 取消 Rotate @@ -156,8 +156,8 @@ Bращать 向きを変える 회전 - 旋转 - 旋轉 + 旋转 + 旋轉 Turn On Thor III @@ -172,8 +172,8 @@ Активировать Thor III Thor III を使う Thor III 켜기 - 开启索尔三型 - 開啟索爾三型 + 开启索尔三型 + 開啟索爾三型 Turn Off Thor III @@ -188,8 +188,8 @@ Деактивировать Thor III Thor III を止める Thor III 끄기 - 关闭索尔三型 - 關閉索爾三型 + 关闭索尔三型 + 關閉索爾三型 Cellphone @@ -204,8 +204,8 @@ Сотовый телефон 携帯電話 휴대전화 - 手机 - 手機 + 手机 + 手機 Used to remotely trigger explosives @@ -220,8 +220,8 @@ Используется для удаленной детонации СВУ 爆発物を遠隔で起爆させるのに使います 원격으로 폭발물을 폭파시킬때 씁니다. - 用于远端引爆炸药 - 用於遠端引爆炸藥 + 用于远端引爆炸药 + 用於遠端引爆炸藥 M57 Firing Device @@ -236,8 +236,8 @@ Взрыватель M57 M57 起爆装置 M57 격발기 - M57 引爆装置 - M57 引爆裝置 + M57 引爆装置 + M57 引爆裝置 Used to remotely trigger explosives @@ -252,8 +252,8 @@ Используется для удаленной детонации зарядов 爆発物を遠隔で起爆させるのに使います 원격으로 폭발물을 폭파시킬때 씁니다. - 用于远端引爆炸药 - 用於遠端引爆炸藥 + 用于远端引爆炸药 + 用於遠端引爆炸藥 M152 Firing Device @@ -268,8 +268,8 @@ Взрыватель M152 M152 起爆装置 M152 격발기 - M152 引爆装置 - M152 引爆裝置 + M152 引爆装置 + M152 引爆裝置 M152 RAMS @@ -284,8 +284,8 @@ M152 RAMS M152 RAMS M152 RAMS - M152 远端炸药引爆系统 - M152 遠端炸藥引爆系統 + M152 远端炸药引爆系统 + M152 遠端炸藥引爆系統 Defusal Kit @@ -300,8 +300,8 @@ Комплект разминирования 解除キット 해체 장비 - 拆弹工具 - 拆彈工具 + 拆弹工具 + 拆彈工具 Allows defusing of explosives @@ -316,8 +316,8 @@ Позволяет обезвреживать взрывчатку 爆発物を無力化できます 폭발물을 해체할 수 있게 해줍니다 - 可以用来拆除炸弹 - 可以用來拆除炸彈 + 可以用来拆除炸弹 + 可以用來拆除炸彈 Add to Speed Dial @@ -332,8 +332,8 @@ Добавить в быстрый вызов 短縮ダイアルに追加 단축키에 지정 - 增加到快速拨号 - 增加到快速撥號 + 增加到快速拨号 + 增加到快速撥號 Clear @@ -348,8 +348,8 @@ Очистить 消去 삭제 - 清除 - 清除 + 清除 + 清除 Dial @@ -364,8 +364,8 @@ Hабрать ダイアル 다이얼 - 拨号 - 撥號 + 拨号 + 撥號 Up @@ -380,8 +380,8 @@ Вызов 上へ - - + + Down @@ -396,8 +396,8 @@ Сброс 下へ 아래 - - + + Cancel @@ -412,8 +412,8 @@ Отмена 中止 취소 - 取消 - 取消 + 取消 + 取消 Detonate Menu @@ -428,8 +428,8 @@ Меню подрыва 点火メニュー 폭파 메뉴 - 引爆选单 - 引爆選單 + 引爆选单 + 引爆選單 Place Menu @@ -444,8 +444,8 @@ Меню установки 設置メニュー 설치 메뉴 - 放置选单 - 放置選單 + 放置选单 + 放置選單 Defuse @@ -460,8 +460,8 @@ Обезвредить 無力化 해체 - 拆除 - 拆除 + 拆除 + 拆除 Defusing Explosive... @@ -476,8 +476,8 @@ Обезвреживание... 爆発物を無力化中・・・ 폭발물 해체중... - 炸弹拆除中... - 炸彈拆除中... + 炸弹拆除中... + 炸彈拆除中... Timer @@ -492,8 +492,8 @@ Таймер タイマー 타이머 - 计时器 - 計時器 + 计时器 + 計時器 Time: %1m %2s @@ -508,8 +508,8 @@ Время: %1m %2c 設定時間: %1分 %2秒 시간: %1분 %2초 - 时间: %1分%2秒 - 時間: %1分%2秒 + 时间: %1分%2秒 + 時間: %1分%2秒 Set Time @@ -524,8 +524,8 @@ Установить время 時間を設定 시간 설정 - 设定时间 - 設定時間 + 设定时间 + 設定時間 Select a Trigger @@ -540,8 +540,8 @@ Выберите детонатор 点火装置を選択 작동방식 선택 - 选择一个触发器 - 選擇一個觸發器 + 选择一个触发器 + 選擇一個觸發器 Select @@ -556,8 +556,8 @@ Выбрать 選択 선택 - 选择 - 選擇 + 选择 + 選擇 Pressure Plate @@ -572,8 +572,8 @@ Нажимная плита 圧力感知式 압력식 - 压力盘 - 壓力盤 + 压力盘 + 壓力盤 Tripwire @@ -588,8 +588,8 @@ Растяжка 仕掛け線 인계철선 - 绊线 - 絆線 + 绊线 + 絆線 IR Sensor @@ -604,8 +604,8 @@ ИК сенсор 赤外線感知式 적외선 센서 - 红外线感应器 - 紅外線感應器 + 红外线感应器 + 紅外線感應器 No triggers available for %1 @@ -620,8 +620,8 @@ Нет доступных взрывателей для %1 %1 につかえる点火装置がありません %1(을)를 작동할 장치가 없습니다. - 没有适合%1的触发器 - 沒有適合%1的觸發器 + 没有适合%1的触发器 + 沒有適合%1的觸發器 IR Sensor (Side Attack) @@ -636,8 +636,8 @@ ИК сенсор (детонация вбок) 赤外線感知式 (横からの攻撃) 적외선 센서 (측면 공격) - 红外线感应器 (侧边攻击) - 紅外線感應器 (側邊攻擊) + 红外线感应器 (侧边攻击) + 紅外線感應器 (側邊攻擊) Magnetic Influence Sensor (Bottom Attack) @@ -652,8 +652,8 @@ Магнитный сенсор (детонация вверх) 磁気感知式 (下からの攻撃) 자기장 감지센서 (바닥 공격) - 磁性感应器 (底部攻击) - 磁性感應器 (底部攻擊) + 磁性感应器 (底部攻击) + 磁性感應器 (底部攻擊) No explosives on trigger. @@ -668,8 +668,8 @@ Взрыватель не подсоединён к взрывчатке 点火装置に爆発物がありません。 격발기에 등록된 폭발물이 없습니다. - 触发器上并没有炸药 - 觸發器上並沒有炸藥 + 触发器上并没有炸药 + 觸發器上並沒有炸藥 Dead Man's Switch @@ -684,8 +684,8 @@ Detonatore a rilascio 自爆装置 자폭 장치 - 自杀炸弹客引爆器 - 自殺炸彈客引爆器 + 自杀炸弹客引爆器 + 自殺炸彈客引爆器 Used to remotely trigger explosives when released. @@ -700,8 +700,8 @@ Usato per attivare a distanza esplosivi al momento del rilascio 点火装置を離すと遠隔で起爆したいときに使います。 압력이 해제될때 원격으로 폭발시킵니다. - 当放开按钮时, 将会引爆炸弹. - 當放開按鈕時, 將會引爆炸彈. + 当放开按钮时, 将会引爆炸弹. + 當放開按鈕時, 將會引爆炸彈. Pick up @@ -716,8 +716,8 @@ Pegar 拾う 줍기 - 捡起 - 撿起 + 捡起 + 撿起 Explosive System @@ -732,8 +732,8 @@ Sistema Esplosivi 爆発システム 폭발물 시스템 - 炸药系统 - 炸藥系統 + 炸药系统 + 炸藥系統 Require specialists? @@ -748,8 +748,8 @@ Richiedi specialisti? 特技兵を必要としますか? 전문가가 필요합니까? - 需要专家? - 需要專家? + 需要专家? + 需要專家? Require explosive specialists to disable explosives? Default: No @@ -764,8 +764,8 @@ Richiedi specialisti esplosivi per disabilitare esplosivi? Default: No 爆発物を無効化するには、爆発物の特技兵を必要としますか?標準:いいえ 폭발물을 해제하기 위해서는 전문가가 필요합니까? 기본설정: 아니요 - 需要炸弹专家才能拆除炸弹? 预设: 否 - 需要炸彈專家才能拆除炸彈? 預設: 否 + 需要炸弹专家才能拆除炸弹? 预设: 否 + 需要炸彈專家才能拆除炸彈? 預設: 否 Punish non-specialists? @@ -780,8 +780,8 @@ Punisci non-specialisti? 非特技兵へ足かせを与えますか? 비-전문가에 불이익을 줍니까? - 折磨非专业人员? - 折磨非專業人員? + 折磨非专业人员? + 折磨非專業人員? Increase the time it takes to complete actions for non-specialists? Default: Yes @@ -796,8 +796,8 @@ Aumenta il tempo richiesto per completare azioni per non-specialisti? Default: Si 非特技兵は動作を完了する必要を増加させますか?標準:はい 비-전문가가 폭발물을 해제시 더욱 많은 시간을 소요합니까? 기본설정: 예 - 增加非专业人员相关操作的时间? 预设: 是 - 增加非專業人員相關操作的時間? 預設: 是 + 增加非专业人员相关操作的时间? 预设: 是 + 增加非專業人員相關操作的時間? 預設: 是 Explode on defusal? @@ -812,8 +812,8 @@ Fai esplodere quando disarmato? 解除時に爆発させますか? 해제시 폭발합니까? - 拆除时引爆? - 拆除時引爆? + 拆除时引爆? + 拆除時引爆? Enable certain explosives to explode on defusal? Default: Yes @@ -828,8 +828,8 @@ Abilita alcuni esplosivi per esplosione al disarmo? Default: Si 特定の爆発物へ、解除時に爆発させますか?標準:はい 특정 폭발물이 해제시 폭발하게 합니까? 기본설정: 예 - 启用后, 某些炸弹会在拆除时引爆? 预设: 是 - 啟用後, 某些炸彈會在拆除時引爆? 預設: 是 + 启用后, 某些炸弹会在拆除时引爆? 预设: 是 + 啟用後, 某些炸彈會在拆除時引爆? 預設: 是 This module adjusts the settings related to explosives. @@ -844,8 +844,8 @@ Questo modulo cambia le impostazioni relative agli esplosivi このモジュールを調節し爆発物に設定を反映させます。 이 모듈은 폭발물에 관한 설정을 수정할 수 있게합니다. - 此模块用来调整炸药的相关设定 - 此模塊用來調整炸藥的相關設定 + 此模块用来调整炸药的相关设定 + 此模塊用來調整炸藥的相關設定 M6 SLAM Mine (Bottom Attack) @@ -866,8 +866,8 @@ Мина M6 SLAM (направлена вверх) M6 SLAM 地雷 (下からの攻撃) M6 SLAM 지뢰 (바닥 공격) - M6指向性反装甲地雷 (底部攻击) - M6指向性反裝甲地雷 (底部攻擊) + M6指向性反装甲地雷 (底部攻击) + M6指向性反裝甲地雷 (底部攻擊) M6 SLAM Mine (Side Attack) @@ -888,8 +888,8 @@ Мина M6 SLAM (направлена вбок) M6 SLAM 地雷 (横からの攻撃) M6 SLAM 지뢰 (측면 공격) - M6指向性反装甲地雷 (侧边攻击) - M6指向性反裝甲地雷 (側邊攻擊) + M6指向性反装甲地雷 (侧边攻击) + M6指向性反裝甲地雷 (側邊攻擊) Large IED (Urban, Pressure Plate) @@ -910,8 +910,8 @@ Большое СВУ (городское, нажимного действия) 大きな IED (市街地用、圧力感知) 대형 급조폭발물 (시가지, 압력식) - 大型简易爆炸装置 (地表上, 压力盘) - 大型簡易爆炸裝置 (地表上, 壓力盤) + 大型简易爆炸装置 (地表上, 压力盘) + 大型簡易爆炸裝置 (地表上, 壓力盤) Large IED (Dug-in, Pressure Plate) @@ -932,8 +932,8 @@ Большое СВУ (закопанное, нажимного действия) 大きな IED (埋め込み型、圧力感知) 대형 급조폭발물 (묻힘, 압력식) - 大型简易爆炸装置 (地表下, 压力盘) - 大型簡易爆炸裝置 (地表下, 壓力盤) + 大型简易爆炸装置 (地表下, 压力盘) + 大型簡易爆炸裝置 (地表下, 壓力盤) Small IED (Urban, Pressure Plate) @@ -954,8 +954,8 @@ Малое СВУ (городское, нажимного действия) 小さな IED (市街地用、圧力感知) 소형 급조폭발물 (시가지, 압력식) - 小型简易爆炸装置 (地表上, 压力盘) - 小型簡易爆炸裝置 (地表上, 壓力盤) + 小型简易爆炸装置 (地表上, 压力盘) + 小型簡易爆炸裝置 (地表上, 壓力盤) Small IED (Dug-in, Pressure Plate) @@ -976,8 +976,8 @@ Малое СВУ (закопанное, нажимного действия) 小さな IED (埋め込み型、圧力感知) 소형 급조폭발물 (묻힘, 압력식) - 小型简易爆炸装置 (地表下, 压力盘) - 小型簡易爆炸裝置 (地表下, 壓力盤) + 小型简易爆炸装置 (地表下, 压力盘) + 小型簡易爆炸裝置 (地表下, 壓力盤) Connect to %1 @@ -992,8 +992,8 @@ Conectar à %1 %1 へ接続 %1에 연결중 - 连接到%1 - 連接到%1 + 连接到%1 + 連接到%1 Tripwire Flare @@ -1004,8 +1004,8 @@ 조명지뢰 Fusée éclairante avec fil de détente Cavo d'innesco - 绊线闪光地雷 - 絆線閃光地雷 + 绊线闪光地雷 + 絆線閃光地雷 Type: Tripwire flare - Ignites a non-lethal flare when triggered.<br />Rounds: 1<br />Used on: Ground @@ -1016,8 +1016,8 @@ 종류: 조명지뢰 - 작동시 무해한 조명을 사출합니다.<br />장탄수: 1<br />사용처: 지면 Type : Fusée éclairante avec fil de détente - Allume une fusée éclairante lorsque déclenché. <br />Coups : 1<br />Utilisé sur : le sol Tipo: Cavo d'innesco - Sfocio un abbaglio non letale quanto attivato. <br />Rimanenti: 1<br />Usato: A terra - 类型: 绊线闪光地雷 - 触发后产生非致命性的强光.<br />发数: 1<br />使用于: 地面 - 類型: 絆線閃光地雷 - 觸發後產生非致命性的強光.<br />發數: 1<br />使用於: 地面 + 类型: 绊线闪光地雷 - 触发后产生非致命性的强光.<br />发数: 1<br />使用于: 地面 + 類型: 絆線閃光地雷 - 觸發後產生非致命性的強光.<br />發數: 1<br />使用於: 地面 diff --git a/addons/fastroping/stringtable.xml b/addons/fastroping/stringtable.xml index 8f1188b06ef..f3988ee14f4 100644 --- a/addons/fastroping/stringtable.xml +++ b/addons/fastroping/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,8 +13,8 @@ Десантирование по канатам FRIES を装備 FRIES 장착 - 启用快速绳降及撤离系统 - 啟用快速繩降及撤離系統 + 启用快速绳降及撤离系统 + 啟用快速繩降及撤離系統 Equips compatible helicopters with a Fast Rope Insertion Extraction System. @@ -28,8 +28,8 @@ Снаряжает совместимые вертолеты оборудованием для спуска десанта по канатам. ヘリコプターで Fast Rope Insertion Extraction System を使えるようにします 패스트로프 투입 및 탈출 시스템을 호환되는 헬리콥터에 적용합니다. - 使可相容的直升机启用快速绳降及撤离系统 - 使可相容的直升機啟用快速繩降及撤離系統 + 使可相容的直升机启用快速绳降及撤离系统 + 使可相容的直升機啟用快速繩降及撤離系統 Prepare fast roping system @@ -43,8 +43,8 @@ Подготовить канаты ファスト ロープのシステムを準備 패스트로프 준비 - 准备快速绳降系统 - 準備快速繩降系統 + 准备快速绳降系统 + 準備快速繩降系統 Deploy ropes @@ -58,8 +58,8 @@ Зацепить канаты ロープを展開 줄 배치 - 部属绳索 - 部屬繩索 + 部属绳索 + 部屬繩索 Fast rope @@ -73,8 +73,8 @@ Спуститься по канату ファスト ロープをする 강하하기 - 快速绳降 - 快速繩降 + 快速绳降 + 快速繩降 Cut ropes @@ -88,8 +88,8 @@ Обрезать канаты ロープを切断 줄 자르기 - 剪掉绳索 - 剪掉繩索 + 剪掉绳索 + 剪掉繩索 Equip helicopter with FRIES @@ -103,8 +103,8 @@ Снарядить вертолет канатами для спуска ヘリコプターへ FRIES を装備 헬리콥터에 FRIES 장착 - 启用快速绳降及撤离系统给指定的直升机 - 啟用快速繩降及撤離系統給指定的直升機 + 启用快速绳降及撤离系统给指定的直升机 + 啟用快速繩降及撤離系統給指定的直升機 Equips the selected helicopter with a Fast Rope Insertion Extraction System @@ -118,8 +118,8 @@ Снаряжает выбранный вертолет оборудованием для спуска десанта по канатам 選択されたヘリコプターで Fast Rope Insertion Extraction System を使えるようにします。 선택된 헬리콥터에 패스트로프 투입 및 탈출 시스템을 장착합니다. - 使指定的直升机启用快速绳降及撤离系统 - 使指定的直升機啟用快速繩降及撤離系統 + 使指定的直升机启用快速绳降及撤离系统 + 使指定的直升機啟用快速繩降及撤離系統 LET UNITS FAST ROPE @@ -130,8 +130,8 @@ ДЕСАНТИРОВАНИЕ ПО КАНАТУ ユニットへファスト ロープをさせる ZJAZD NA LINACH - 让单位快速绳降 - 讓單位快速繩降 + 让单位快速绳降 + 讓單位快速繩降 diff --git a/addons/fcs/stringtable.xml b/addons/fcs/stringtable.xml index 2c5cef86241..9e776f34cd8 100644 --- a/addons/fcs/stringtable.xml +++ b/addons/fcs/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Marcar com laser / Medir Distância レーザー ターゲット / 計測距離 목표까지 거리를 레이저로 취득 - 雷射指示目标 / 测量距离 - 雷射指示目標 / 測量距離 + 雷射指示目标 / 测量距离 + 雷射指示目標 / 測量距離 Zeroed To @@ -30,8 +30,8 @@ Azzeramento a 次にゼロイン 영점 조절 - 归零到 - 歸零到 + 归零到 + 歸零到 Adjust FCS Range (Up) @@ -46,8 +46,8 @@ Диапазон СУО (Выше) FCS による距離を調節 (上げ) 사통장치 거리 조정 (위로) - 调整火控系统距离 (上) - 調整火控系統距離 (上) + 调整火控系统距离 (上) + 調整火控系統距離 (上) Adjust FCS Range (Down) @@ -62,8 +62,8 @@ Диапазон СУО (Ниже) FCS による距離を調節 (下げ) 사통장치 거리 조정 (아래로) - 调整火控系统距离 (下) - 調整火控系統距離 (下) + 调整火控系统距离 (下) + 調整火控系統距離 (下) Reset FCS @@ -78,8 +78,8 @@ Обнулить СУО FCS を初期化 사통장치 초기화 - 重置火控系统 - 重置火控系統 + 重置火控系统 + 重置火控系統 FCS has been reset. @@ -94,8 +94,8 @@ СУО обнулен. FCS は初期化された 사통장치 초기화됨 - 火控系统已被重置 - 火控系統已被重置 + 火控系统已被重置 + 火控系統已被重置 diff --git a/addons/finger/stringtable.xml b/addons/finger/stringtable.xml index ef5de545c9a..b6dc3c5f87c 100644 --- a/addons/finger/stringtable.xml +++ b/addons/finger/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Mostra puntatore per te stesso 自分にポインティング表記を表示する 자신이 가리키는곳을 보여줍니다 - 显示指向指示器给自己 - 顯示指向指示器給自己 + 显示指向指示器给自己 + 顯示指向指示器給自己 Render the indicator for the pointing player. This option doesn't affect whether the other players would see the indicator @@ -30,8 +30,8 @@ Mostra puntatore per il giocatore indicato. Questa opzione non influisce la possibilità che gli altri giocatori vedano il puntatore プレイヤーへのポインティング表記を描画します。このオプションは他のプレイヤーの表記に影響しません。 대상이 가리키는곳을 보이게 합니다. - 显示指向指示器给玩家自己. 此选项设定并不影响其他玩家能否看到指示器. - 顯示指向指示器給玩家自己. 此選項設定並不影響其他玩家能否看到指示器. + 显示指向指示器给玩家自己. 此选项设定并不影响其他玩家能否看到指示器. + 顯示指向指示器給玩家自己. 此選項設定並不影響其他玩家能否看到指示器. Pointing indicator @@ -46,8 +46,8 @@ Indicatore di puntamento ポインティング表記 가리키기 표시기 - 指向指示器 - 指向指示器 + 指向指示器 + 指向指示器 Color of the pointing indicator circle @@ -62,8 +62,8 @@ Colore del cerchio dell'indicatore di puntamento ポインティング表記の円の色 가리키기의 원형 색상 - 指向指示器颜色 - 指向指示器顏色 + 指向指示器颜色 + 指向指示器顏色 Action "point a finger at" @@ -78,8 +78,8 @@ Azione "punta il dito a" "point a finger at"キー "손가락으로 가리키기"행동 - 使"手指指向在" - 使"手指指向在" + 使"手指指向在" + 使"手指指向在" Points, and shows a virtual marker of where you are looking to nearby units. Can be held down. @@ -94,8 +94,8 @@ Punta e mostra un marker virtuale di dove stai guardando alle unità vicine. Può essere tenuto premuto. ポイント、そして架空のマーカー表記は自ユニットの近くにいると表記されます。これは押しっぱなしにできます。 당신이 보는것을 가상의 마커로 표시함으로서 다른 인원이 볼 수 있게 합니다. 누른채로 유지할 수 있습니다. - 当按下此按键后, 你附近的单位即可看见一个虚拟图示, 标明你正在指向的位置. 此按键可以被按住来持续显示. - 當按下此按鍵後, 你附近的單位即可看見一個虛擬圖示, 標明你正在指向的位置. 此按鍵可以被按住來持續顯示. + 当按下此按键后, 你附近的单位即可看见一个虚拟图示, 标明你正在指向的位置. 此按键可以被按住来持续显示. + 當按下此按鍵後, 你附近的單位即可看見一個虛擬圖示, 標明你正在指向的位置. 此按鍵可以被按住來持續顯示. Pointing Settings @@ -110,8 +110,8 @@ Impostazioni puntamento ポインティング設定 가리키기 설정 - 指向设定 - 指向設定 + 指向设定 + 指向設定 Pointing Enabled @@ -126,8 +126,8 @@ Puntamento abilitato ポインティングを有効 가리키기 활성화 - 指向系统启动 - 指向系統啟動 + 指向系统启动 + 指向系統啟動 Pointing Max Range @@ -142,8 +142,8 @@ Raggio massimo puntamento ポインティングの最大範囲 가리키기 최대 범위 - 指向指示器最大显示距离 - 指向指示器最大顯示距離 + 指向指示器最大显示距离 + 指向指示器最大顯示距離 Max range between players to show the pointing indicator [default: 4 meters] @@ -158,8 +158,8 @@ Distanza massima tra giocatori per mostrare l'indicatore di puntamento [default: 4 metri] ポインティング表記が他のプレイヤーに表示される範囲を決定できます。(標準 4 メートル) 플레이어 사이에서 가리키기 표시를 보이게 하는 최대거리를 설정합니다[기본설정: 4 미터] - 设定指向指示器最大显示距离. [预设: 4公尺] - 設定指向指示器最大顯示距離. [預設: 4公尺] + 设定指向指示器最大显示距离. [预设: 4公尺] + 設定指向指示器最大顯示距離. [預設: 4公尺] diff --git a/addons/flashlights/stringtable.xml b/addons/flashlights/stringtable.xml index b6ba53aff7c..d896d3724af 100644 --- a/addons/flashlights/stringtable.xml +++ b/addons/flashlights/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,8 +13,8 @@ Fulton MX-991 Fulton MX-991 Fulton MX-991 - Fulton MX-991 - Fulton MX-991 + Fulton MX-991 + Fulton MX-991 Flashlight with red filter. For use on map. @@ -28,8 +28,8 @@ Lampe torche avec un filtre rouge. Pour utilisation sur carte. 赤色フィルタ付きのフラッシュライト。地図上でつかいます。 빨간색 필터가 달린 손전등입니다. 지도를 비출때 씁니다. - 拥有红色滤光片的手电筒. 用来照亮地图. - 擁有紅色濾光片的手電筒. 用來照亮地圖. + 拥有红色滤光片的手电筒. 用来照亮地图. + 擁有紅色濾光片的手電筒. 用來照亮地圖. Maglite XL50 @@ -43,8 +43,8 @@ Maglite XL50 Maglite XL50 Maglite XL50 - Maglite XL50 - Maglite XL50 + Maglite XL50 + Maglite XL50 White mini flashlight. For use on map. @@ -58,8 +58,8 @@ Mini lampe torche blanche. Pour utilisation sur carte. 白色光の小さなフラッシュライト。地図上でつかいます。 하얀색 조그마한 손전등. 지도를 비출때 씁니다. - 白色的迷你手电筒. 用来照亮地图. - 白色的迷你手電筒. 用來照亮地圖. + 白色的迷你手电筒. 用来照亮地图. + 白色的迷你手電筒. 用來照亮地圖. KSF-1 @@ -73,8 +73,8 @@ KSF-1 KSF-1 KSF-1 - KSF-1 - KSF-1 + KSF-1 + KSF-1 Flashlight with red filter. For use on map. @@ -88,8 +88,8 @@ Lampe torche avec un filtre rouge. Pour utilisation sur carte. 赤色フィルタ付きのフラッシュライト。地図上でつかいます。 빨간색 필터가 달린 손전등입니다. 지도를 비출때 씁니다. - 拥有红色滤光片的手电筒. 用来照亮地图. - 擁有紅色濾光片的手電筒. 用來照亮地圖. + 拥有红色滤光片的手电筒. 用来照亮地图. + 擁有紅色濾光片的手電筒. 用來照亮地圖. diff --git a/addons/flashsuppressors/stringtable.xml b/addons/flashsuppressors/stringtable.xml index 8a7bda4d55e..52563ea1c49 100644 --- a/addons/flashsuppressors/stringtable.xml +++ b/addons/flashsuppressors/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Bocacha (6,5 mm) 消炎器 (6.5 mm) 소염기 (6.5 mm) - 消光器 (6.5 mm) - 消光器 (6.5 mm) + 消光器 (6.5 mm) + 消光器 (6.5 mm) Flash Suppressor (7.62 mm) @@ -30,8 +30,8 @@ Bocacha (7,62 mm) 消炎器 (7.62 mm) 소염기 (7.62 mm) - 消光器 (7.62 mm) - 消光器 (7.62 mm) + 消光器 (7.62 mm) + 消光器 (7.62 mm) Flash Suppressor (5.56 mm) @@ -46,8 +46,8 @@ Bocacha (5,56 mm) 消炎器 (5.56 mm) 소염기 (5.56 mm) - 消光器 (5.56 mm) - 消光器 (5.56 mm) + 消光器 (5.56 mm) + 消光器 (5.56 mm) Flash Suppressor (.45 ACP) @@ -62,8 +62,8 @@ Bocacha (.45 ACP) 消炎器 (.45 ACP) 소염기 (.45 ACP) - 消光器 (.45 ACP) - 消光器 (.45 ACP) + 消光器 (.45 ACP) + 消光器 (.45 ACP) Flash Suppressor (9 mm) @@ -78,8 +78,8 @@ Bocacha (9 mm) 消炎器 (9 mm) 소염기 (9 mm) - 消光器 (9 mm) - 消光器 (9 mm) + 消光器 (9 mm) + 消光器 (9 mm) Flash Suppressor (.338) @@ -94,8 +94,8 @@ Bocacha (.338) 消炎器 (.338) 소염기 (.338) - 消光器 (.338) - 消光器 (.338) + 消光器 (.338) + 消光器 (.338) Flash Suppressor (9.3 mm) @@ -110,8 +110,8 @@ Bocacha (9,3 mm) 消炎器 (9.3 mm) 소염기 (9.3 mm) - 消光器 (9.3 mm) - 消光器 (9.3 mm) + 消光器 (9.3 mm) + 消光器 (9.3 mm) diff --git a/addons/frag/stringtable.xml b/addons/frag/stringtable.xml index 2ab13ba13d8..d74033f6a48 100644 --- a/addons/frag/stringtable.xml +++ b/addons/frag/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Simulazione Frammentazione 破片シミュレーション 조각 시뮬레이션 - 模拟碎片 - 模擬碎片 + 模拟碎片 + 模擬碎片 Fragmentation Simulation @@ -30,8 +30,8 @@ Simulazione Frammentazione 破片シミュレーション 조각 시뮬레이션 - 模拟碎片 - 模擬碎片 + 模拟碎片 + 模擬碎片 Enable the ACE Fragmentation Simulation @@ -46,8 +46,8 @@ Abilita la Simulazione Frammentazione di ACE ACE 破片シミュレーションを有効化 ACE 조각 시뮬레이션을 적용합니다. - 启用ACE模拟碎片 - 啟用ACE模擬碎片 + 启用ACE模拟碎片 + 啟用ACE模擬碎片 Spalling Simulation @@ -62,8 +62,8 @@ Simulazione Spalling 剥離シミュレーション 파편 시뮬레이션 - 模拟剥落 - 模擬剝落 + 模拟剥落 + 模擬剝落 Enable the ACE Spalling Simulation @@ -78,8 +78,8 @@ Abilita la Simulazione Spalling di ACE ACE 剥離シミュレーションを有効化 ACE 파편 시뮬레이션을 적용합니다. - 启用ACE模拟剥落 - 啟用ACE模擬剝落 + 启用ACE模拟剥落 + 啟用ACE模擬剝落 Explosion Reflections Simulation @@ -92,8 +92,8 @@ Cимуляция отражения взрывов ACE 爆発による飛翔シミュレーション 폭발 반사 시뮬레이션 - 模拟爆炸反射 - 模擬爆炸反射 + 模拟爆炸反射 + 模擬爆炸反射 Enable the ACE Explosion Reflection Simulation @@ -106,8 +106,8 @@ Включить симуляцию отражения взрывов ACE 爆発による飛翔シミュレーションを有効化 ACE 폭발 반사 시뮬레이션을 적용합니다. - 启用ACE模拟爆炸反射 - 啟用ACE模擬爆炸反射 + 启用ACE模拟爆炸反射 + 啟用ACE模擬爆炸反射 Maximum Projectiles Tracked @@ -122,8 +122,8 @@ Numero massimo di Proiettili Tracciati 最大弾頭追跡数 최대 발사체 추적수 - 最大碎片/剥落粒子追踪数量 - 最大碎片/剝落粒子追蹤數量 + 最大碎片/剥落粒子追踪数量 + 最大碎片/剝落粒子追蹤數量 This setting controls the maximum amount of projectiles the fragmentation and spalling system will track at any given time. If more projectiles are fired, they will not be tracked. Lower this setting if you do not want FPS drops at high-count projectile scenarios ( >200 rounds in the air at once) @@ -138,8 +138,8 @@ Questo parametro controlla il numero massimo di proiettili che la frammentazione e il sistema di spalling tracciano in ogni momento. Se più proiettili sono sparati, non verranno tracciati. Abbassa questo parametro se non vuoi cali di FPS in scenari con molti proiettili (>200 proiettili in aria contemporaneamente) 時間が許すかぎり、破片と剥離システムの最大数を設定できます。設定数以上の弾丸が発射された場合、それは対象になりません。もし多い弾数による FPS の低下を望まない場合は、低い数へ設定にします。( &gt;一度に空中内で200発) 이 설정은 조각 및 파편 시스템으로 인해 생긴 발사체의 수를 결정합니다. 만약 더 많은 발사체가 나올경우 정해진 수 이외에는 추적하지 않습니다. 이 설정을 낮춤으로써 파편이 많은 시나리오를 실행할때 더욱 원활히 진행할 수 있습니다 (한 번에 200개 이하) - 设定在指定时间内, 系统最大可追踪的碎片/剥落粒子数量. 如有更多的碎片在这之后产生, 这些粒子将不会被追踪. 如果你想要维持好的帧数, 此设定勿调的过高. ( >一次200颗粒子) - 設定在指定時間內, 系統最大可追蹤的碎片/剝落粒子數量. 如有更多的碎片在這之後產生, 這些粒子將不會被追蹤. 如果你想要維持好的幀數, 此設定勿調的過高. ( >一次200顆粒子) + 设定在指定时间内, 系统最大可追踪的碎片/剥落粒子数量. 如有更多的碎片在这之后产生, 这些粒子将不会被追踪. 如果你想要维持好的帧数, 此设定勿调的过高. ( >一次200颗粒子) + 設定在指定時間內, 系統最大可追蹤的碎片/剝落粒子數量. 如有更多的碎片在這之後產生, 這些粒子將不會被追蹤. 如果你想要維持好的幀數, 此設定勿調的過高. ( >一次200顆粒子) Maximum Projectiles Per Frame @@ -154,8 +154,8 @@ Numero massimo di proiettili per Frame フレームごとの最大弾頭数 프레임당 최대 발사체 수 - 每一帧数(FPS)最大碎片/剥落粒子数量 - 每一幀數(FPS)最大碎片/剝落粒子數量 + 每一帧数(FPS)最大碎片/剥落粒子数量 + 每一幀數(FPS)最大碎片/剝落粒子數量 The number of spall track calculations to perform in any given frame. This helps spread the FPS impact of tracking spall rounds across multiple frames, limiting its impact even further. @@ -170,8 +170,8 @@ Il numero di calcoli per tracciamento di spalling ad ogni frame. Questo aiuta a distribuire l'impatto del tracciamento dello spalling su più frame, limitando ancora di più l'impatto. 与えられたフレームごとに追跡する剥離の数を決定します。FPS に影響をあたえないよう、剥離を複数のフレームで追跡し、分散させています。 가능한 프레임마다 파편을 추적 및 계산합니다. 여러 프레임에 걸쳐 파편난 발사체를 추적하여 FPS에 도움을 줍니다. 이를 제한함으로써 더욱 큰 효과를 볼 수 있습니다. - 设定在每一帧数内, 系统最大可追踪的碎片/剥落粒子数量. 此设定可有效帮助系统减低计算压力. - 設定在每一幀數內, 系統最大可追蹤的碎片/剝落粒子數量. 此設定可有效幫助系統減低計算壓力. + 设定在每一帧数内, 系统最大可追踪的碎片/剥落粒子数量. 此设定可有效帮助系统减低计算压力. + 設定在每一幀數內, 系統最大可追蹤的碎片/剝落粒子數量. 此設定可有效幫助系統減低計算壓力. (SP Only) Frag/Spall Debug Tracing @@ -186,8 +186,8 @@ (Solo SP) Debug Tracciamento Frag/Spall (SP のみ) 破片/剥離のデバッグ用表示 (싱글플레이 전용) 조각/파편 디버그 추적화 - (仅在单人模式) 碎片/剥落除错追踪 - (僅在單人模式) 碎片/剝落除錯追蹤 + (仅在单人模式) 碎片/剥落除错追踪 + (僅在單人模式) 碎片/剝落除錯追蹤 (SP Only) Requires a mission/editor restart. Enables visual tracing of fragmentation and spalling rounds in SP game mode only. @@ -201,8 +201,8 @@ (Только для одиночной игры) Требует перезапуска миссии/редактора. Включает визуальные следы от осколков и обломков в режиме одиночной игры. (Solo SP) Richiede un restart editor/missione. Abilita il tracciamento visivo di schegge da frammentazione/spalling in modalità Giocatore Singolo. (SP のみ) ミッションとエディタの再起動が必要です。有効化すると、シングルプレイでのみ破片と剥離の弾頭が見えるようになります。 - (仅在单人模式) 让你在单人模式下可观察到碎片/剥落粒子的移动轨迹. - (僅在單人模式) 讓你在單人模式下可觀察到碎片/剝落粒子的移動軌跡. + (仅在单人模式) 让你在单人模式下可观察到碎片/剥落粒子的移动轨迹. + (僅在單人模式) 讓你在單人模式下可觀察到碎片/剝落粒子的移動軌跡. diff --git a/addons/gestures/stringtable.xml b/addons/gestures/stringtable.xml index 865a4709ce4..18e8883227c 100644 --- a/addons/gestures/stringtable.xml +++ b/addons/gestures/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ ACE Gestos ACE ジェスチャー ACE 수신호 - ACE 手势 - ACE 手勢 + ACE 手势 + ACE 手勢 Gestures @@ -30,8 +30,8 @@ Gesti ジェスチャー 수신호 - 手势 - 手勢 + 手势 + 手勢 Advance @@ -46,8 +46,8 @@ Avanzare 警戒 전진 - 前进 - 前進 + 前进 + 前進 Go @@ -62,8 +62,8 @@ Muoversi 進め 이동 - 出发 - 出發 + 出发 + 出發 Follow @@ -78,8 +78,8 @@ Seguire ついて来い 따라올것 - 跟进 - 跟進 + 跟进 + 跟進 Up @@ -94,8 +94,8 @@ Alzarsi 立ち上がれ - 起立 - 起立 + 起立 + 起立 Cease Fire @@ -110,8 +110,8 @@ Cessare il Fuoco 撃つな 사격 중지 - 停火 - 停火 + 停火 + 停火 Stop @@ -125,8 +125,8 @@ Detenerse 止まれ 멈춰 - 停止 - 停止 + 停止 + 停止 Freeze @@ -141,8 +141,8 @@ Fermi 動くな 정지 - 不准动 - 不准動 + 不准动 + 不准動 Cover @@ -157,8 +157,8 @@ Copertura 隠れろ 엄폐 - 掩护 - 掩護 + 掩护 + 掩護 Rally up @@ -172,8 +172,8 @@ Reunirse 集合 집결 - 集合 - 集合 + 集合 + 集合 Move forward @@ -187,8 +187,8 @@ Avanzar 前に進め 앞으로 이동 - 往前走 - 往前走 + 往前走 + 往前走 Engage @@ -202,8 +202,8 @@ Atacar 交戦しろ 교전할것 - 交战 - 交戰 + 交战 + 交戰 Point @@ -217,8 +217,8 @@ Señalar 指示 가리키기 - 指出 - 指出 + 指出 + 指出 Hold @@ -232,8 +232,8 @@ Esperar そこにいろ 기다려 - 停住 - 停住 + 停住 + 停住 Warning @@ -247,8 +247,8 @@ Atención 注意 주의 - 警告 - 警告 + 警告 + 警告 Show Gestures On Interaction Menu @@ -262,8 +262,8 @@ Показать жесты в меню взаимодействия インタラクション メニュー上でジェスチャーを表示する 수신호를 상호작용 메뉴에서 보여줍니다 - 显示手势互动选单 - 顯示手勢互動選單 + 显示手势互动选单 + 顯示手勢互動選單 Show gestures on the self interaction menu, or just use keybinds, or disable completely @@ -277,8 +277,8 @@ Показать жесты в меню взамиодейтсвия с собой или только использовать горячие клавиши, или полностью отключить キー操作や同時使用を無効化している場合はセルフ インタラクション メニュ上でジェスチャーを表示します 수신호를 상호작용 메뉴에서 보여주거나 혹은 단축키를 지정하거나 아니면 아예 사용하지 않습니다. - 显示手势选项在自己的互动选单上, 或只利用键盘来使用手势, 或完全禁用 - 顯示手勢選項在自己的互動選單上, 或只利用鍵盤來使用手勢, 或完全禁用 + 显示手势选项在自己的互动选单上, 或只利用键盘来使用手势, 或完全禁用 + 顯示手勢選項在自己的互動選單上, 或只利用鍵盤來使用手勢, 或完全禁用 Just Keybinds @@ -292,8 +292,8 @@ Только горячие клавиши キー操作のみ 오직 단축키만 - 只利用键盘 - 只利用鍵盤 + 只利用键盘 + 只利用鍵盤 Keybinds + Interaction Menu @@ -307,8 +307,8 @@ Клавиши + Меню взаимодействия キー操作とインタラクション メニュ 단축키및 상호작용 메뉴 - 键盘 + 互动选单 - 鍵盤 + 互動選單 + 键盘 + 互动选单 + 鍵盤 + 互動選單 diff --git a/addons/gforces/stringtable.xml b/addons/gforces/stringtable.xml index 717675b5589..12d3d0ba531 100644 --- a/addons/gforces/stringtable.xml +++ b/addons/gforces/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,8 +13,8 @@ Efekty przeciążeń 중력가속도 효과 Effetti forza G - G力影响 - G力影響 + G力影响 + G力影響 Only Aircraft @@ -28,8 +28,8 @@ Tylko samoloty 비행기에만 적용 Solo Aerei - 只有战斗机 - 只有戰鬥機 + 只有战斗机 + 只有戰鬥機 diff --git a/addons/goggles/stringtable.xml b/addons/goggles/stringtable.xml index 320be6950f7..309a420a46b 100644 --- a/addons/goggles/stringtable.xml +++ b/addons/goggles/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Attiva l'effetto degli occhiali in terza persona 三人称視点でもゴーグルによる効果を出す 3인칭시에도 고글 효과를 보이게 합니다 - 在第三人称视角显示护目镜效果 - 在第三人稱視角顯示護目鏡效果 + 在第三人称视角显示护目镜效果 + 在第三人稱視角顯示護目鏡效果 Wipe Goggles @@ -30,8 +30,8 @@ Pulisci gli occhiali ゴーグルを拭く 고글 닦기 - 擦拭护目镜 - 擦拭護目鏡 + 擦拭护目镜 + 擦拭護目鏡 Goggle Effects @@ -42,8 +42,8 @@ 고글 효과 Effets des lunettes Effetto Occhiali - 护目镜效果 - 護目鏡效果 + 护目镜效果 + 護目鏡效果 Tint @@ -54,8 +54,8 @@ 색조 Teinte Colore - 染色 - 染色 + 染色 + 染色 Tint + Effects @@ -66,8 +66,8 @@ 색조+효과 Teinte + effets Colore + Effetti - 染色 + 影响 - 染色 + 影響 + 染色 + 影响 + 染色 + 影響 diff --git a/addons/grenades/stringtable.xml b/addons/grenades/stringtable.xml index f0c9089aad8..fb54bed50b9 100644 --- a/addons/grenades/stringtable.xml +++ b/addons/grenades/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Alternar Modo de Granada グレネード モードを切り替え 투척 종류 전환 - 切换投掷模式 - 切換投擲模式 + 切换投掷模式 + 切換投擲模式 Normal Throw @@ -30,8 +30,8 @@ Arremesso Normal 通常で投げる 일반 던지기 - 普通投掷 - 普通投擲 + 普通投掷 + 普通投擲 High Throw @@ -46,8 +46,8 @@ Arremesso Alto 高く投げる 높이 던지기 - 高抛 - 高拋 + 高抛 + 高拋 Precise Throw @@ -62,8 +62,8 @@ Arremesso Preciso 低く投げる 정확한 던지기 - 精准投掷 - 精準投擲 + 精准投掷 + 精準投擲 Roll Grenade @@ -78,8 +78,8 @@ Rolar Granada 転がす 굴려넣기 - 地面滚抛 - 地面滾拋 + 地面滚抛 + 地面滾拋 Drop Grenade @@ -94,8 +94,8 @@ Largar Granada 落とす 떨어뜨리기 - 下丢投掷 - 下丟投擲 + 下丢投掷 + 下丟投擲 M84 Stun Grenade @@ -110,8 +110,8 @@ M84 granada de atordoamento M84 閃光手榴弾 M84 섬광 수류탄 - M84 震撼弹 - M84 震撼彈 + M84 震撼弹 + M84 震撼彈 M84 @@ -126,8 +126,8 @@ M84 M84 M84 - M84 - M84 + M84 + M84 Also known as flashbang. Causes immediate flash blindness, deafness, tinnitus, and inner ear disturbance. @@ -142,8 +142,8 @@ Também conhecida como flashbang. Causa uma clarão imediato, cegueira, surdez, zumbido e distúrbio no tímpano. フラッシュバンとも知られています。即時に失明と難聴、耳鳴り、内耳障害を引き起こします。 플래시뱅이라고도 알려져있습니다. 사용즉시 섬광으로 인한 시력장애, 청각장애, 이명, 내이기관방해를 유발합니다. - 也被称为闪光弹, 会造成暂时性失明, 耳聋, 耳鸣等效果 - 也被稱為閃光彈, 會造成暫時性失明, 耳聾, 耳鳴等效果 + 也被称为闪光弹, 会造成暂时性失明, 耳聋, 耳鸣等效果 + 也被稱為閃光彈, 會造成暫時性失明, 耳聾, 耳鳴等效果 M127A1 Hand Held Signal (White) @@ -158,8 +158,8 @@ M127A1 Feux à main (Blanc) M127A1 信号弾 (白) M127A1 신호탄 (하얀색) - M127A1 手持式信号弹 (白色) - M127A1 手持式信號彈 (白色) + M127A1 手持式信号弹 (白色) + M127A1 手持式信號彈 (白色) M127A1 Hand Held Signal (Red) @@ -174,8 +174,8 @@ M127A1 Feux à main (Rouge) M127A1 信号弾 (赤) M127A1 신호탄 (빨간색) - M127A1 手持式信号弹 (红色) - M127A1 手持式信號彈 (紅色) + M127A1 手持式信号弹 (红色) + M127A1 手持式信號彈 (紅色) M127A1 Hand Held Signal (Green) @@ -190,8 +190,8 @@ M127A1 Feux à main (Vert) M127A1 信号弾 (緑) M127A1 신호탄 (초록색) - M127A1 手持式信号弹 (绿色) - M127A1 手持式信號彈 (綠色) + M127A1 手持式信号弹 (绿色) + M127A1 手持式信號彈 (綠色) M127A1 Hand Held Signal (Yellow) @@ -206,8 +206,8 @@ M127A1 Feux à main (Jaune) M127A1 信号弾 (黄) M127A1 신호탄 (노란색) - M127A1 手持式信号弹 (黄色) - M127A1 手持式信號彈 (黃色) + M127A1 手持式信号弹 (黄色) + M127A1 手持式信號彈 (黃色) White Hand Flare @@ -222,8 +222,8 @@ Feux à main (Blanc) 白の発炎筒 하얀색 불꽃신호기 - 白色手持式信号弹 - 白色手持式信號彈 + 白色手持式信号弹 + 白色手持式信號彈 Red Hand Flare @@ -238,8 +238,8 @@ Feux à main (Rouge) 赤の発炎筒 빨간색 불꽃신호기 - 红色手持式信号弹 - 紅色手持式信號彈 + 红色手持式信号弹 + 紅色手持式信號彈 Green Hand Flare @@ -254,8 +254,8 @@ Feux à main (Vert) 緑の発炎筒 초록색 불꽃신호기 - 绿色手持式信号弹 - 綠色手持式信號彈 + 绿色手持式信号弹 + 綠色手持式信號彈 Yellow Hand Flare @@ -270,8 +270,8 @@ Feux à main (Jaune) 黄の発炎筒 노란색 불꽃신호기 - 黄色手持式信号弹 - 黃色手持式信號彈 + 黄色手持式信号弹 + 黃色手持式信號彈 M127A1 (White) @@ -286,8 +286,8 @@ M127A1 (Blanca) M127A1 (白) M127A1 (하양) - M127A1 (白色) - M127A1 (白色) + M127A1 (白色) + M127A1 (白色) M127A1 (Red) @@ -302,8 +302,8 @@ M127A1 (Roja) M127A1 (赤) M127A1 (빨강) - M127A1 (红色) - M127A1 (紅色) + M127A1 (红色) + M127A1 (紅色) M127A1 (Green) @@ -318,8 +318,8 @@ M127A1 (Verde) M127A1 (緑) M127A1 (초록) - M127A1 (绿色) - M127A1 (綠色) + M127A1 (绿色) + M127A1 (綠色) M127A1 (Yellow) @@ -334,8 +334,8 @@ M127A1 (Amarilla) M127A1 (黄) M127A1 (노랑) - M127A1 (黄色) - M127A1 (黃色) + M127A1 (黄色) + M127A1 (黃色) AN-M14 Incendiary Grenade @@ -346,8 +346,8 @@ AN-M14 소이 수류탄 Grenade incendiaire AN-M14 AN-M14 Granata Incendiaria - AN-M14 燃烧手榴弹 - AN-M14 燃燒手榴彈 + AN-M14 燃烧手榴弹 + AN-M14 燃燒手榴彈 AN-M14 @@ -358,8 +358,8 @@ AN-M14 AN-M14 AN-M14 - AN-M14 - AN-M14 + AN-M14 + AN-M14 Incendiary grenade used to destroy weapons, ammunition and other equipment. @@ -370,8 +370,8 @@ 소이 수류탄은 무기나 탄약 그리고 장비를 파괴할때 쓰입니다. Grenade incendiaire utilisé pour détruire des armes, munitions et autres équipements. Granata incendiaria usata per distruggere armi, munizioni e altri equipaggiamenti. - 燃烧手榴弹是用来摧毁武器, 弹药以及其他装备的好帮手. - 燃燒手榴彈是用來摧毀武器, 彈藥以及其他裝備的好幫手. + 燃烧手榴弹是用来摧毁武器, 弹药以及其他装备的好帮手. + 燃燒手榴彈是用來摧毀武器, 彈藥以及其他裝備的好幫手. diff --git a/addons/gunbag/stringtable.xml b/addons/gunbag/stringtable.xml index 2f7834e6bce..ab4fdf5ac72 100644 --- a/addons/gunbag/stringtable.xml +++ b/addons/gunbag/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -11,8 +11,8 @@ Torba na broń 총가방 Borsa per Armi - 枪袋 - 槍袋 + 枪袋 + 槍袋 Gunbag (Tan) @@ -24,8 +24,8 @@ Torba na broń (jasnobrązowa) 총가방 (황갈색) Borsa per Armi (Tan) - 枪袋 (黄褐色) - 槍袋 (黃褐色) + 枪袋 (黄褐色) + 槍袋 (黃褐色) Put weapon into gunbag @@ -37,8 +37,8 @@ Włóż broń do torby 무기를 총가방에 넣기 Metti l'arma nella borsa per armi - 将武器放置枪袋 - 將武器放置槍袋 + 将武器放置枪袋 + 將武器放置槍袋 Get weapon out of gunbag @@ -50,8 +50,8 @@ Wyciągnij broń z torby 무기를 총가방에서 꺼내기 Prendi l'arma dalla borsa per armi - 将武器拿出枪袋 - 將武器拿出槍袋 + 将武器拿出枪袋 + 將武器拿出槍袋 Status @@ -63,8 +63,8 @@ Status 상태 Stato - 状态 - 狀態 + 状态 + 狀態 Gunbag Empty @@ -76,8 +76,8 @@ Torba jest pusta 총가방 비어있음 Borsa per armi vuota - 枪袋为空 - 槍袋為空 + 枪袋为空 + 槍袋為空 diff --git a/addons/hearing/stringtable.xml b/addons/hearing/stringtable.xml index 0bd55c67954..e8b44833efc 100644 --- a/addons/hearing/stringtable.xml +++ b/addons/hearing/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Tappi auricolari 耳栓 귀마개 - 耳塞 - 耳塞 + 耳塞 + 耳塞 Protective Earplugs allow the wearer to be near loud weaponry without damage to his hearing. @@ -30,8 +30,8 @@ Proteggono l'apparato uditivo, permettendo a chi li indossa di resistere ai suoni particolarmente forti senza alcun danno. 着けることにより、近くの大きな銃声から聴覚を保護します。 보호용 귀마개는 화기로부터의 큰소리로부터 사용자의 청력을 보호합니다. - 配戴防护耳塞, 遇到大声的武器发射时也不会损害听力. - 配戴防護耳塞, 遇到大聲的武器發射時也不會損害聽力. + 配戴防护耳塞, 遇到大声的武器发射时也不会损害听力. + 配戴防護耳塞, 遇到大聲的武器發射時也不會損害聽力. Earplugs in @@ -46,8 +46,8 @@ Indossa i tappi auricolari 耳栓を着ける 귀마개 착용 - 塞入耳塞 - 塞入耳塞 + 塞入耳塞 + 塞入耳塞 Earplugs out @@ -62,8 +62,8 @@ Levati i tappi auricolari 耳栓を外す 귀마개 뺌 - 取出耳塞 - 取出耳塞 + 取出耳塞 + 取出耳塞 Earplugs in @@ -78,8 +78,8 @@ Indossa i tappi auricolari 耳栓を着けた 귀마개 착용 - 耳塞已塞入 - 耳塞已塞入 + 耳塞已塞入 + 耳塞已塞入 Earplugs out @@ -94,8 +94,8 @@ Levati i tappi auricolari 耳栓を外した 귀마개 뺌 - 耳塞已取出 - 耳塞已取出 + 耳塞已取出 + 耳塞已取出 You have no earplugs @@ -110,8 +110,8 @@ Non hai i tappi auricolari 耳栓を持っていません 귀마개가 없습니다 - 你没有耳塞 - 你沒有耳塞 + 你没有耳塞 + 你沒有耳塞 No inventory space @@ -126,8 +126,8 @@ Нет места в инвентаре インベントリに空きがありません。 넣을 공간이 없습니다 - 无可用空间 - 無可用空間 + 无可用空间 + 無可用空間 Disable ear ringing @@ -142,8 +142,8 @@ Desabilitar zumbido de ouvidos 耳鳴りを無効化する 이명현상 끄기 - 关闭耳鸣效果 - 關閉耳鳴效果 + 关闭耳鸣效果 + 關閉耳鳴效果 Remove tinnitus effect when the player takes hearing damage @@ -156,8 +156,8 @@ Убирает эффект звона в ушах, когда игрок получает повреждение слуха プレイヤーの聴覚が損傷をしたら耳鳴りの効果を削除します 플레이어가 청력손실을 입을때 생기는 이명현상을 제거합니다. - 关闭耳鸣效果时, 就算玩家受到相当程度的听力伤害, 也不会造成耳鸣效果. - 關閉耳鳴效果時, 就算玩家受到相當程度的聽力傷害, 也不會造成耳鳴效果. + 关闭耳鸣效果时, 就算玩家受到相当程度的听力伤害, 也不会造成耳鸣效果. + 關閉耳鳴效果時, 就算玩家受到相當程度的聽力傷害, 也不會造成耳鳴效果. Hearing @@ -172,8 +172,8 @@ Udito 聴覚 청력 - 听力设定 - 聽力設定 + 听力设定 + 聽力設定 Enable Combat Deafness @@ -188,8 +188,8 @@ Sordità da combattimento 戦闘による難聴を有効化 전투 난청 켜기 - 启用战斗性耳聋? - 啟用戰鬥性耳聾? + 启用战斗性耳聋? + 啟用戰鬥性耳聾? Reduces the hearing ability as the player takes hearing damage @@ -203,8 +203,8 @@ Réduire l'audition lorsque le joueur prend des dommages auditifs. 音による損傷をうけ、聴覚が減る可能性があります 청력에 손상을 입으면 듣는 소리가 감소합니다. - 当玩家听力受损时降低听力能力? - 當玩家聽力受損時降低聽力能力? + 当玩家听力受损时降低听力能力? + 當玩家聽力受損時降低聽力能力? Controls combat deafness and ear ringing. When activated, players can be deafened when a gun is fired in their vicinity or an explosion takes place without hearing protection @@ -219,8 +219,8 @@ Controlla la sordità da combattimento e fischio alle orecchie. Quando attivato, i giocatori possono essere assordati quando un'arma spara vicino o avviene un'esplosione senza protezione uditiva 戦闘による難聴や、耳鳴りを設定します。有効になった場合、聴覚を保護していないと近傍の銃声や爆発音により、難聴になります。 전투 난청과 이명현상을 조작합니다. 작동시 플레이어가 화기나 폭발의 주변에 있을경우 청력보호장치가 없을때 청력손실을 입습니다. - 设定战斗性耳聋和耳鸣. 当启用后, 玩家会在有武器在旁边射击或爆炸产生时造成耳鸣效果 - 設定戰鬥性耳聾和耳鳴. 當啟用後, 玩家會在有武器在旁邊射擊或爆炸產生時造成耳鳴效果 + 设定战斗性耳聋和耳鸣. 当启用后, 玩家会在有武器在旁边射击或爆炸产生时造成耳鸣效果 + 設定戰鬥性耳聾和耳鳴. 當啟用後, 玩家會在有武器在旁邊射擊或爆炸產生時造成耳鳴效果 Effect Zeus RC @@ -234,8 +234,8 @@ Effet sur le CàD du Zeus Zeus RC への効果 Zeus RC 효과 - 启用效果在宙斯远程遥控 - 啟用效果在宙斯遠程遙控 + 启用效果在宙斯远程遥控 + 啟用效果在宙斯遠程遙控 Allow zeus remote controlled units to be able to take hearing damage. @@ -249,8 +249,8 @@ Permet aux unités controlées à distance de subir des traumatismes sonores. Zeus により遠隔操作されたユニットにも、聴覚へ損傷を受けるようにします。 Zeus가 원격으로 청력손실을 입힐 수 있게 합니다. - 设定宙斯远程遥控的单位也会受到耳鸣的效果. - 設定宙斯遠程遙控的單位也會受到耳鳴的效果. + 设定宙斯远程遥控的单位也会受到耳鸣的效果. + 設定宙斯遠程遙控的單位也會受到耳鳴的效果. Add earplugs to units @@ -264,8 +264,8 @@ Ajouter des bouchons anti-bruits aux unités ユニットへ耳栓を追加 해당 인원에게 귀마개 추가 - 增加耳塞给单位 - 增加耳塞給單位 + 增加耳塞给单位 + 增加耳塞給單位 Add the `ACE_EarPlugs` item to all units that have loud weapons. Can disable if using custom loadouts. @@ -279,8 +279,8 @@ Ajoute l'objet "Ace_EarPlugs" à toutes les unités ayant des armes bruyantes. Peut être désactivé par des loadouts personalisés. 全ユニットへ`ACE_EarPlugs`アイテムをもたせます。これは変更された武装で無効化できます。 무기를 가지고 있는 모든 인원에게 'ACE_EarPlugs'를 지급합니다. 임의의 장비를 사용시 비활성화 할 수 있습니다. - 增加`ACE_EarPlugs`物品给拥有巨大噪音武器的单位. 当你想自定装备时, 此功能可被关闭. - 增加`ACE_EarPlugs`物品給擁有巨大噪音武器的單位. 當你想自定裝備時, 此功能可被關閉. + 增加`ACE_EarPlugs`物品给拥有巨大噪音武器的单位. 当你想自定装备时, 此功能可被关闭. + 增加`ACE_EarPlugs`物品給擁有巨大噪音武器的單位. 當你想自定裝備時, 此功能可被關閉. diff --git a/addons/hellfire/stringtable.xml b/addons/hellfire/stringtable.xml index d60e6ac9a8c..d01acd49b46 100644 --- a/addons/hellfire/stringtable.xml +++ b/addons/hellfire/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -20,8 +20,8 @@ Set Hellfire mode Imposta modalità Hellfire ヘルファイア モードを設定 - 设定地狱火模式 - 設定地獄火模式 + 设定地狱火模式 + 設定地獄火模式 diff --git a/addons/huntir/stringtable.xml b/addons/huntir/stringtable.xml index ed1d0058da1..3bba8c02ab5 100644 --- a/addons/huntir/stringtable.xml +++ b/addons/huntir/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Caixa de transporte do HuntIR HuntIR 輸送箱 HuntIR 수송함 - 高空战术成像器运输箱 - 高空戰術成像器運輸箱 + 高空战术成像器运输箱 + 高空戰術成像器運輸箱 HuntIR Round @@ -30,8 +30,8 @@ Cartucho HuntIR HuntIR 弾頭 HuntIR 유탄 - 高空战术成像器弹药 - 高空戰術成像器彈藥 + 高空战术成像器弹药 + 高空戰術成像器彈藥 HuntIR monitor @@ -46,8 +46,8 @@ Monitor HuntIR HuntIR モニタ HuntIR 모니터 - 高空战术成像器显示面板 - 高空戰術成像器顯示面板 + 高空战术成像器显示面板 + 高空戰術成像器顯示面板 Activate HuntIR monitor @@ -62,8 +62,8 @@ Ativar monitor do HuntIR HuntIR を起動する HuntIR 모니터 켜기 - 开启高空战术成像器显示面板 - 開啟高空戰術成像器顯示面板 + 开启高空战术成像器显示面板 + 開啟高空戰術成像器顯示面板 Camera: @@ -78,8 +78,8 @@ Câmera: カメラ: 카메라: - 摄影机: - 攝影機: + 摄影机: + 攝影機: Altitude: @@ -94,8 +94,8 @@ Altitude: 高度: 고도: - 高度: - 高度: + 高度: + 高度: Recording Time: @@ -110,8 +110,8 @@ Tempo de gravação: 録画時間: 녹화시간: - 记录时间: - 記錄時間: + 记录时间: + 記錄時間: Press ESC to quit camera @@ -126,8 +126,8 @@ Pressione ESC para sair da câmera ESC を押しカメラを抜ける ESC를 눌러 카메라 나가기 - 按下ESC退出摄影机 - 按下ESC退出攝影機 + 按下ESC退出摄影机 + 按下ESC退出攝影機 Help @@ -142,8 +142,8 @@ Ajuda ヘルプ 도움말 - 帮助 - 幫助 + 帮助 + 幫助 A/D - Cycle zoom @@ -158,8 +158,8 @@ A/D - Troca zoom A/D - 倍率の変更 A/D - 줌 전환 - A/D - 切换放大倍率 - A/D - 切換放大倍率 + A/D - 切换放大倍率 + A/D - 切換放大倍率 W/S - Select camera @@ -174,8 +174,8 @@ W/S - Seleciona câmera W/S - カメラを選択 W/S - 카메라 선택 - W/S - 切换摄影机 - W/S - 切換攝影機 + W/S - 切换摄影机 + W/S - 切換攝影機 Left/Right - Rotate camera @@ -190,8 +190,8 @@ Esquerda/Direita - Rotaciona câmera Left/Right - カメラを開店 좌/우 - 카메라 돌리기 - 左/右 - 旋转摄影机 - 左/右 - 旋轉攝影機 + 左/右 - 旋转摄影机 + 左/右 - 旋轉攝影機 Up/Down - Elevate/lower camera @@ -206,8 +206,8 @@ Acima/Abaixo - Eleva/Abaixa a câmera Up/Down - カメラ角度を変更 상/하 카메라 올리기/내리기 - 上/下 - 上升/下降摄影机 - 上/下 - 上升/下降攝影機 + 上/下 - 上升/下降摄影机 + 上/下 - 上升/下降攝影機 N - Cycle IT modes @@ -222,8 +222,8 @@ N - Troca modo IT N - IT モードを変更 N - IT모드 순환 - N - 切换热显模式 - N - 切換熱顯模式 + N - 切换热显模式 + N - 切換熱顯模式 R - Reset camera @@ -238,8 +238,8 @@ R - Redefine a câmera R - カメラを初期化 R - 카메라 초기화 - R - 重置摄影机 - R - 重置攝影機 + R - 重置摄影机 + R - 重置攝影機 Esc - Exit help @@ -254,8 +254,8 @@ Esc - Sai do Ajuda Esc - ヘルプを出る Esc - 도움말 나가기 - Esc - 离开帮助 - Esc - 離開幫助 + Esc - 离开帮助 + Esc - 離開幫助 diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index 4f5222f691b..83d9b1c31f8 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Sempre mostrar cursor para interação pessoal セルフ インタラクションへ常にカーソルを表示 자기상호작용시 항상 커서를 보이기 - 自我互动时永远显示游标 - 自我互動時永遠顯示游標 + 自我互动时永远显示游标 + 自我互動時永遠顯示游標 Always display cursor for interaction @@ -30,8 +30,8 @@ Sempre mostrar cursor para interação インタラクションへ常にカーソルを表示 상호작용시 항상 커서를 보이기 - 互动时永远显示游标 - 互動時永遠顯示游標 + 互动时永远显示游标 + 互動時永遠顯示游標 Display interaction menus as lists @@ -46,8 +46,8 @@ Mostrar menu de interação como listas 表示されるインタラクション メニューを一覧表示 상호작용메뉴를 리스트화 해서 보이기 - 以列表方式显示互动表单 - 以列表方式顯示互動表單 + 以列表方式显示互动表单 + 以列表方式顯示互動表單 Interact Key @@ -62,8 +62,8 @@ Tecla de Interação インタラクション キー 상호작용 키 - 互动键 - 互動鍵 + 互动键 + 互動鍵 Self Interaction Key @@ -78,8 +78,8 @@ Tecla de Interação Pessoal セルフ インタラクション キー 자기상호작용 키 - 自我互动键 - 自我互動鍵 + 自我互动键 + 自我互動鍵 Self Actions @@ -94,8 +94,8 @@ Ações Pessoais 自分への動作 자기 동작 - 自我动作 - 自我動作 + 自我动作 + 自我動作 Vehicle Actions @@ -110,8 +110,8 @@ Ações de Veículos 車両への動作 차량 동작 - 载具动作 - 載具動作 + 载具动作 + 載具動作 Zeus Actions @@ -126,8 +126,8 @@ Azioni Zeus Zeus への動作 Zeus 동작 - 宙斯操作 - 宙斯操作 + 宙斯操作 + 宙斯操作 Interaction - Text Max @@ -142,8 +142,8 @@ Interação - Max. de Texto インタラクション - 文字の色 상호작용 - 문자색깔 - 互动 - 文字最大化 - 互動 - 文字最大化 + 互动 - 文字最大化 + 互動 - 文字最大化 Interaction - Text Min @@ -158,8 +158,8 @@ Interação - Min. de Texto インタラクション - 文字の背景色 상호작용 - 문자배경색 - 互动 - 文字最小化 - 互動 - 文字最小化 + 互动 - 文字最小化 + 互動 - 文字最小化 Interaction - Shadow Max @@ -174,8 +174,8 @@ Interação - Max. de Sombra インタラクション - 文字への影の色 상호작용 - 문자그림자색 - 互动 - 阴影最大化 - 互動 - 陰影最大化 + 互动 - 阴影最大化 + 互動 - 陰影最大化 Interaction - Shadow Min @@ -190,8 +190,8 @@ Interação - Min. de Sombra インタラクション - 文字への影の最低色 상호작용 - 문자그림자배경색 - 互动 - 阴影最小化 - 互動 - 陰影最小化 + 互动 - 阴影最小化 + 互動 - 陰影最小化 Keep cursor centered @@ -206,8 +206,8 @@ Mantieni il cursore centrato 常にカーソルを中央にする 커서를 항상 가운데에 둡니다 - 保持游标在中心点 - 保持游標在中心點 + 保持游标在中心点 + 保持游標在中心點 Keeps cursor centered and pans the option menu around. Useful if screen size is limited. @@ -222,8 +222,8 @@ Mantieni il cursore centrato e sposta il menù intorno. Utile se lo schermo è piccolo. 常にカーソルを中央へ表示させ、オプション メニューが移動します。画面の大きさが制限されている時に使いやすくなります。 커서를 항상 가운데에 두고 메뉴를 움직입니다. 화면의 크기가 제한되있을때 유용합니다. - 保持游标在中心点并平移周遭的选项选单. 这对在荧幕尺寸有限的玩家很有用! - 保持游標在中心點並平移周遭的選項選單. 這對在螢幕尺寸有限的玩家很有用! + 保持游标在中心点并平移周遭的选项选单. 这对在荧幕尺寸有限的玩家很有用! + 保持游標在中心點並平移周遭的選項選單. 這對在螢幕尺寸有限的玩家很有用! Do action when releasing menu key @@ -238,8 +238,8 @@ Esegui l'azione quando rilasci il tasto menu メニュー キーを離したときに動作を実行します。 메뉴키를 놓을때 행동하기 - 当放开选单键后就执行动作 - 當放開選單鍵後就執行動作 + 当放开选单键后就执行动作 + 當放開選單鍵後就執行動作 Interaction Text Size @@ -254,8 +254,8 @@ Dimensione del testo d'interazione インタラクション文字の大きさ 상호작용 - 문자크기 - 互动选单文字大小 - 互動選單文字大小 + 互动选单文字大小 + 互動選單文字大小 Interaction Text Shadow @@ -270,8 +270,8 @@ Ombra del testo d'interazione インタラクション文字へ影 상호작용 - 문자그림자 - 互动选单文字阴影 - 互動選單文字陰影 + 互动选单文字阴影 + 互動選單文字陰影 Allows controlling the text's shadow. Outline ignores custom shadow colors. @@ -286,8 +286,8 @@ Permette di controllare l'ombra del testo. L'impostazione "Contorno" ignora il colore dell'ombra. 文字への影を設定します。縁取りは設定された影の色を無視します。 문자의 그림자를 조절하는것을 가능케합니다. 외각선은 임의의 그림자색을 무시합니다. - 允许控制文字阴影. 轮廓部分则会忽略自定义的阴影颜色 - 允許控制文字陰影. 輪廓部分則會忽略自定義的陰影顏色 + 允许控制文字阴影. 轮廓部分则会忽略自定义的阴影颜色 + 允許控制文字陰影. 輪廓部分則會忽略自定義的陰影顏色 Outline @@ -302,8 +302,8 @@ Contorno 縁取り 외각선 - 只显示轮廓 - 只顯示輪廓 + 只显示轮廓 + 只顯示輪廓 Interaction menu background @@ -318,8 +318,8 @@ Sfondo Menù Interazioni インタラクション メニューの背景 상호작용 메뉴 배경 - 互动选单背景 - 互動選單背景 + 互动选单背景 + 互動選單背景 Blur the background while the interaction menu is open. @@ -334,8 +334,8 @@ Sfoca lo sfondo mentre il Menù Interazioni è aperto. インタラクション メニューを開いたとき、背景にボケを与えます。 상호작용 메뉴가 열릴시 배경을 흐릿하게 처리합니다. - 当互动选单开启时, 模糊背景画面 - 當互動選單開啟時, 模糊背景畫面 + 当互动选单开启时, 模糊背景画面 + 當互動選單開啟時, 模糊背景畫面 Blur screen @@ -350,8 +350,8 @@ Sfoca schermo ボケ画面 화면 흐리게 - 模糊画面 - 模糊畫面 + 模糊画面 + 模糊畫面 Black @@ -366,8 +366,8 @@ Nero ブラック 까맣게 - 黑色 - 黑色 + 黑色 + 黑色 Show actions for buildings @@ -382,8 +382,8 @@ Mostra azioni per edifici 建物へ動作を表示 건물에 행동을 취함 - 显示建筑物可用的动作 - 顯示建築物可用的動作 + 显示建筑物可用的动作 + 顯示建築物可用的動作 Adds interaction actions for opening doors and mounting ladders on buildings. (Note: There is a performance cost when opening interaction menu, especially in towns) @@ -398,8 +398,8 @@ Aggiunge azioni interattive per l'apertura delle porte e piazzamento scale su edifici. (Nota: C'è un costo in performance quando si apre il Menù Interazioni, soprattutto in città) 建物にあるドアの開閉やラダーの昇降といった動作をインタラクションへ追加します。(街などでインタラクション メニューを開くとパフォーマンスが低下します) 건물의 문을 열거나 사다리에 오르는 상호작용 행동을 추가합니다. (주의: 상호작용 메뉴를 열경우 성능하락이 있을 수 있음, 특히 마을 내부에서) - 增加互动选单的功能在可开启的门与建筑物的梯子上. (注意: 此功能有可能会降低系统效能, 特别是在城镇区更明显) - 增加互動選單的功能在可開啟的門與建築物的梯子上. (注意: 此功能有可能會降低系統效能, 特別是在城鎮區更明顯) + 增加互动选单的功能在可开启的门与建筑物的梯子上. (注意: 此功能有可能会降低系统效能, 特别是在城镇区更明显) + 增加互動選單的功能在可開啟的門與建築物的梯子上. (注意: 此功能有可能會降低系統效能, 特別是在城鎮區更明顯) Interaction Menu @@ -413,8 +413,8 @@ Menu d'interaction インタラクション メニュー 상호작용 메뉴 - 互动选单 - 互動選單 + 互动选单 + 互動選單 Interaction Animation Speed @@ -428,8 +428,8 @@ Vitesse de l'aniamtion d'interaction インタラクションのアニメーション速度 상호작용 움직임 속도 - 互动选单动画速度 - 互動選單動畫速度 + 互动选单动画速度 + 互動選單動畫速度 Makes menu animations faster and decreases the time needed to hover to show sub actions @@ -442,8 +442,8 @@ Hace la animación del menú más rápida, reduciendo el tiempo necesario para abrir sub-acciones. Rend les animations de menu plus rapide et réduit le temps nécessaire à l'affichage des sous menus d'action サブ動作が表示されるホバーをした時に、表示されるメニューのアニメーション速度を早くしたり遅くしたりできます - 使选单的动画速度更快, 并减少子选项显现出来的时间 - 使選單的動畫速度更快, 並減少子選項顯現出來的時間 + 使选单的动画速度更快, 并减少子选项显现出来的时间 + 使選單的動畫速度更快, 並減少子選項顯現出來的時間 diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml index 7c37267ab7c..1e9367347e9 100644 --- a/addons/interaction/stringtable.xml +++ b/addons/interaction/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Interaçãoes インタラクション 상호작용 - 互动 - 互動 + 互动 + 互動 Torso @@ -30,8 +30,8 @@ Torso 胴体 몸통 - 身体 - 身體 + 身体 + 身體 Head @@ -46,8 +46,8 @@ Cabeça 頭部 머리 - 头部 - 頭部 + 头部 + 頭部 Left Arm @@ -62,8 +62,8 @@ Braço Esquerdo 左腕 왼쪽 팔 - 左手 - 左手 + 左手 + 左手 Right Arm @@ -78,8 +78,8 @@ Braço Direito 右腕 오른쪽 팔 - 右手 - 右手 + 右手 + 右手 Left Leg @@ -94,8 +94,8 @@ Perna Esquerda 左足 왼쪽 다리 - 左脚 - 左腳 + 左脚 + 左腳 Right Leg @@ -110,8 +110,8 @@ Perna Direita 右足 오른쪽 다리 - 右脚 - 右腳 + 右脚 + 右腳 Weapon @@ -126,8 +126,8 @@ Arma 武器 무기 - 武器 - 武器 + 武器 + 武器 Interaction Menu @@ -142,8 +142,8 @@ Menù interazione インタラクション メニュー 상호작용 메뉴 - 互动选单 - 互動選單 + 互动选单 + 互動選單 Interaction Menu (Self) @@ -158,8 +158,8 @@ Menù interazione (individuale) インタラクション メニュー (セルフ) 상호작용 메뉴(자신) - 互动选单 (自我) - 互動選單 (自我) + 互动选单 (自我) + 互動選單 (自我) Open / Close Door @@ -174,8 +174,8 @@ Apri / Chiudi la porta ドアの開け閉め 문 열기 / 닫기 - 打开/关上 门 - 打開/關上 門 + 打开/关上 门 + 打開/關上 門 Lock Door @@ -190,8 +190,8 @@ Zamknout dveře ドアの鍵を閉める 문 잠그기 - 锁门 - 鎖門 + 锁门 + 鎖門 Unlock Door @@ -206,8 +206,8 @@ Odemknout dveře ドアの鍵を開ける 잠긴문 열기 - 解锁门 - 解鎖門 + 解锁门 + 解鎖門 Locked Door @@ -222,8 +222,8 @@ Zamčené dveře ドアの鍵を締めた 잠긴 문 - 门已上锁 - 門已上鎖 + 门已上锁 + 門已上鎖 Unlocked Door @@ -238,8 +238,8 @@ Odemčené dveře ドアの鍵を開けられた 열린 문 - 门未上锁 - 門未上鎖 + 门未上锁 + 門未上鎖 Join group @@ -254,8 +254,8 @@ Unisciti alla squadra グループにはいる 그룹 참여 - 加入小队 - 加入小隊 + 加入小队 + 加入小隊 Leave Group @@ -270,8 +270,8 @@ Lascia la squadra グループをぬける 그룹 나가기 - 离开小队 - 離開小隊 + 离开小队 + 離開小隊 Become Leader @@ -286,8 +286,8 @@ Prendi il comando リーダーになる 리더 되기 - 成为队长 - 成為隊長 + 成为队长 + 成為隊長 DANCE! @@ -302,8 +302,8 @@ DANZA! おどれ! 춤추기! - 跳舞 - 跳舞 + 跳舞 + 跳舞 Stop Dancing @@ -318,8 +318,8 @@ Smetti di ballare 踊るのをやめる 춤 멈추기 - 停止跳舞 - 停止跳舞 + 停止跳舞 + 停止跳舞 << Back @@ -334,8 +334,8 @@ << Indietro &lt;&lt; もどる <<뒤로 - <<返回 - <<返回 + <<返回 + <<返回 Put weapon on back @@ -350,8 +350,8 @@ Metti l'arma in spalla 武器を背負う 등에 무기 메기 - 将武器放到背后 - 將武器放到背後 + 将武器放到背后 + 將武器放到背後 Tap Shoulder @@ -366,8 +366,8 @@ Dai un colpetto 肩をたたく 어깨 두드리기 - 轻拍肩膀 - 輕拍肩膀 + 轻拍肩膀 + 輕拍肩膀 You were tapped on the RIGHT shoulder @@ -382,8 +382,8 @@ Ti è stato dato un colpetto sulla spalla destra 右肩を叩かれた 누군가 오른쪽 어깨를 쳤다 - 你的右肩膀被轻拍了一下 - 你的右肩膀被輕拍了一下 + 你的右肩膀被轻拍了一下 + 你的右肩膀被輕拍了一下 You were tapped on the LEFT shoulder. @@ -398,8 +398,8 @@ Ti è stato dato un colpetto sulla spalla sinistra 左肩を叩かれた 누군가 왼쪽 어깨를 쳤다 - 你的左肩膀被轻拍了一下 - 你的左肩膀被輕拍了一下 + 你的左肩膀被轻拍了一下 + 你的左肩膀被輕拍了一下 Cancel @@ -414,8 +414,8 @@ Mégse 中止 취소 - 取消 - 取消 + 取消 + 取消 Select @@ -430,8 +430,8 @@ Kiválaszt 選択 선택 - 选择 - 選擇 + 选择 + 選擇 Go Away! @@ -446,8 +446,8 @@ Via di qui! うせろ! 저리 가! - 走开! - 走開! + 走开! + 走開! Get Down! @@ -462,8 +462,8 @@ A terra! ふせろ! 엎드려! - 趴下! - 趴下! + 趴下! + 趴下! Get Out @@ -476,8 +476,8 @@ Vystupte 降りる 나가 - 出去 - 出去 + 出去 + 出去 Team Management @@ -492,8 +492,8 @@ Csapat kezelése チーム管理 팀 설정 - 小队管理 - 小隊管理 + 小队管理 + 小隊管理 Red @@ -508,8 +508,8 @@ Piros レッド 빨강 - 红色 - 紅色 + 红色 + 紅色 Green @@ -524,8 +524,8 @@ Zöld グリーン 초록 - 绿色 - 綠色 + 绿色 + 綠色 Blue @@ -540,8 +540,8 @@ Kék ブルー 파랑 - 蓝色 - 藍色 + 蓝色 + 藍色 Yellow @@ -556,8 +556,8 @@ Sárga イエロー 노랑 - 黄色 - 黃色 + 黄色 + 黃色 Assign Red @@ -572,8 +572,8 @@ Assegna al team rosso レッドにする 빨강에 등록 - 指派为红组 - 指派為紅組 + 指派为红组 + 指派為紅組 Assign Green @@ -588,8 +588,8 @@ Assegna al team verde グリーンにする 초록에 등록 - 指派为绿组 - 指派為綠組 + 指派为绿组 + 指派為綠組 Assign Blue @@ -604,8 +604,8 @@ Assegna al team blu ブルーにする 파랑이 등록 - 指派为蓝组 - 指派為藍組 + 指派为蓝组 + 指派為藍組 Assign Yellow @@ -620,8 +620,8 @@ Assegna al team giallo イエローにする 노랑에 등록 - 指派为黄组 - 指派為黃組 + 指派为黄组 + 指派為黃組 Join Red @@ -636,8 +636,8 @@ Unirsi al team rosso レッドに入る 빨강에 참여 - 加入红组 - 加入紅組 + 加入红组 + 加入紅組 Join Green @@ -652,8 +652,8 @@ Unirsi al team verde グリーンに入る 초록에 참여 - 加入绿组 - 加入綠組 + 加入绿组 + 加入綠組 Join Blue @@ -668,8 +668,8 @@ Unirsi al team blu ブルーに入る 파랑에 참여 - 加入蓝组 - 加入藍組 + 加入蓝组 + 加入藍組 Join Yellow @@ -684,8 +684,8 @@ Unirsi al team giallo イエローに入る 노랑에 참여 - 加入黄组 - 加入黃組 + 加入黄组 + 加入黃組 You joined Team %1 @@ -700,8 +700,8 @@ Csatlakoztál a %1 csapathoz チーム %1 に入った 당신은 %1팀에 참여했습니다 - 你已加入%1组 - 你已加入%1組 + 你已加入%1组 + 你已加入%1組 Leave Team @@ -716,8 +716,8 @@ Csapat elhagyása チームを抜ける 팀 나가기 - 离开小队 - 離開小隊 + 离开小队 + 離開小隊 You left the Team @@ -732,8 +732,8 @@ Elhagytad a csapatot チームを抜けた 팀을 나갔습니다 - 你已离开小队 - 你已離開小隊 + 你已离开小队 + 你已離開小隊 Pardon @@ -748,8 +748,8 @@ Megbocsátás 許す 허용 - 原谅 - 原諒 + 原谅 + 原諒 Scroll @@ -764,8 +764,8 @@ Posunout スクロール 스크롤 - 滚动 - 滾動 + 滚动 + 滾動 Modifier Key @@ -780,8 +780,8 @@ Modifikátor キーを割り当て 키 할당하기 - 编辑按键 - 編輯按鍵 + 编辑按键 + 編輯按鍵 Not in Range @@ -796,8 +796,8 @@ Fuori limite 範囲内にありません 범위 내에 없습니다 - 不在范围内 - 不在範圍內 + 不在范围内 + 不在範圍內 Equipment @@ -812,8 +812,8 @@ Equipamento 装備 장비 - 装备 - 裝備 + 装备 + 裝備 Push @@ -828,8 +828,8 @@ Spingere 押す 밀기 - - + + Interact @@ -844,8 +844,8 @@ Interagir インタラクト 상호작용 - 互动 - 互動 + 互动 + 互動 Passengers @@ -860,8 +860,8 @@ Passageiros 後部座席 승객 - 乘客 - 乘客 + 乘客 + 乘客 Open @@ -876,8 +876,8 @@ Öffnen 開く 열기 - 打开 - 打開 + 打开 + 打開 Interaction System @@ -892,8 +892,8 @@ Sistema Interazioni インタラクション システム 상호작용 시스템 - 互动系统 - 互動系統 + 互动系统 + 互動系統 Enable Team Management @@ -908,8 +908,8 @@ Abilità Management Squadra チーム管理をつかう 팀 설정 활성화 - 启用小队管理 - 啟用小隊管理 + 启用小队管理 + 啟用小隊管理 Should players be allowed to use the Team Management Menu? Default: Yes @@ -924,8 +924,8 @@ Possono i giocatori usare il Menù Managment Squadra? Default: Si プレイヤーがチーム管理メニューを使えるようにしますか?標準:はい 플레이어들이 팀 설정하는 것을 허락합니까? 기본설정: 예 - 允许玩家使用小队管理选单? 预设: 是 - 允許玩家使用小隊管理選單? 預設: 是 + 允许玩家使用小队管理选单? 预设: 是 + 允許玩家使用小隊管理選單? 預設: 是 Team management allows color allocation for team members, taking team command and joining/leaving teams. @@ -940,8 +940,8 @@ Management Squadra permette l'assegnazione di colori per membri della squadra, prendere il comando ed entrare/uscire dalle squadre. チーム管理はチーム メンバーへ色の割り当てや指揮権を取ったり、チームの出入りを許可します。 팀 설정은 팀 멤버에게 색을 부여하거나 팀에 참여 혹은 나가게 할 수 있게 합니다. - 队伍管理系统允许将指定颜色分配到队伍成员上, 接管队长职位或加入/离开队伍. - 隊伍管理系統允許將指定顏色分配到隊伍成員上, 接管隊長職位或加入/離開隊伍. + 队伍管理系统允许将指定颜色分配到队伍成员上, 接管队长职位或加入/离开队伍. + 隊伍管理系統允許將指定顏色分配到隊伍成員上, 接管隊長職位或加入/離開隊伍. Turn on @@ -955,8 +955,8 @@ Включить 中に入る 켜기 - 开启 - 開啟 + 开启 + 開啟 Turn off @@ -970,8 +970,8 @@ Выключить 外に出す 끄기 - 关闭 - 關閉 + 关闭 + 關閉 Pass magazine @@ -985,8 +985,8 @@ Passer un chargeur 弾倉をわたす 탄창 건네기 - 给予弹匣 - 給予彈匣 + 给予弹匣 + 給予彈匣 Primary magazine @@ -1000,8 +1000,8 @@ Chargeur de l'arme principale プライマリ用弾倉 주무기 탄창 - 给予主武器弹匣 - 給予主武器彈匣 + 给予主武器弹匣 + 給予主武器彈匣 Pistol magazine @@ -1015,8 +1015,8 @@ Chargeur de pistolet 拳銃の弾倉 부무기 탄창 - 给予手枪弹匣 - 給予手槍彈匣 + 给予手枪弹匣 + 給予手槍彈匣 %1 passed you a %2 magazine. @@ -1030,8 +1030,8 @@ %1 vous a passé un chargeur de %2. %1 はあなたに %2 弾倉をわたした %1에게서 %2탄창을 받았다 - %1给你%2弹匣 - %1給你%2彈匣 + %1给你%2弹匣 + %1給你%2彈匣 Show "pass magazine" interaction @@ -1045,8 +1045,8 @@ Montrer l'interaction "Passer un chargeur" "弾倉をわたす"をインタラクションに表示する '탄창 건네기'를 상호작용에서 보여줌 - 显示"给予弹匣"互动动作 - 顯示"給予彈匣"互動動作 + 显示"给予弹匣"互动动作 + 顯示"給予彈匣"互動動作 diff --git a/addons/inventory/stringtable.xml b/addons/inventory/stringtable.xml index 4cf5a2e2e03..6009a3e479a 100644 --- a/addons/inventory/stringtable.xml +++ b/addons/inventory/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Aumentar o Tamanho da Tela do Inventário インベントリ表示を大きくする 소지품 화면을 더 크게 합니다 - 使物品显示清单更大 - 使物品顯示清單更大 + 使物品显示清单更大 + 使物品顯示清單更大 Normally inventory display is scaled by UI size. This allows scaling the Inventory UI size up, but doesn't increase font size allowing more rows displayed. @@ -30,8 +30,8 @@ Normalmente o tamanho da tela do inventário é ditada pelo tamanho da UI. Isso permite aumentar o tamanho da tela de inventário, mas não aumenta o tamanho da fonte, permitindo que mais linhas sejam visualizadas. 通常のインベントリは UI の大きさによって表示されます。これはインベントリ UI を大きくできますが、文字は大きくできません。 보통 소지품 화면은 사용자 인터페이스 크기에 비례합니다. 이 항목은 소지품의 사용자 인터페이스를 확대를 가능케하면서 글씨는 그대로 냅두게 해줍니다. - 一般来说, 物品清单尺寸是由使用者介面来决定的. 此选项能让你的物品显示清单更大但不会增加字体大小, 此举可增加更多能被显示的描述行数! - 一般來說, 物品清單尺寸是由使用者介面來決定的. 此選項能讓你的物品顯示清單更大但不會增加字體大小, 此舉可增加更多能被顯示的描述行數! + 一般来说, 物品清单尺寸是由使用者介面来决定的. 此选项能让你的物品显示清单更大但不会增加字体大小, 此举可增加更多能被显示的描述行数! + 一般來說, 物品清單尺寸是由使用者介面來決定的. 此選項能讓你的物品顯示清單更大但不會增加字體大小, 此舉可增加更多能被顯示的描述行數! Backpacks @@ -45,8 +45,8 @@ Рюкзаки バックパック 가방 - 背包 - 背包 + 背包 + 背包 Headgear @@ -60,8 +60,8 @@ Головные уборы ヘッドギア 헬멧 - 头盔 - 頭盔 + 头盔 + 頭盔 Glasses @@ -75,8 +75,8 @@ Очки メガネ 안경 - 眼镜 - 眼鏡 + 眼镜 + 眼鏡 Uniforms @@ -90,8 +90,8 @@ Униформа 戦闘服 복장 - 服装 - 服裝 + 服装 + 服裝 Vests @@ -105,8 +105,8 @@ Жилеты ベスト 조끼 - 背心 - 背心 + 背心 + 背心 Grenades @@ -120,8 +120,8 @@ Гранаты 手榴弾 수류탄 - 手榴弹 - 手榴彈 + 手榴弹 + 手榴彈 Medical @@ -135,8 +135,8 @@ Медицина 医療 의료 - 医疗 - 醫療 + 医疗 + 醫療 diff --git a/addons/javelin/stringtable.xml b/addons/javelin/stringtable.xml index ec308052a62..96dc8d33eee 100644 --- a/addons/javelin/stringtable.xml +++ b/addons/javelin/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Travar Alvo(Segurar) 目標を捕捉 (押しっぱ) 표적 획득 (누르기) - 锁定目标 (按住) - 鎖定目標 (按住) + 锁定目标 (按住) + 鎖定目標 (按住) diff --git a/addons/kestrel4500/stringtable.xml b/addons/kestrel4500/stringtable.xml index 3658d367e01..bb65f221912 100644 --- a/addons/kestrel4500/stringtable.xml +++ b/addons/kestrel4500/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Kestrel 4500NV Kestrel 4500NV Kestrel 4500NV - 猎隼4500测风仪 - 獵隼4500測風儀 + 猎隼4500测风仪 + 獵隼4500測風儀 Kestrel 4500 Pocket Weather Tracker @@ -30,8 +30,8 @@ Příruční meteostanice Kestrel 4500 Kestrel 4500 携帯型風速計 Kestrel 4500 휴대형 기상 관측기 - 猎隼4500掌上型天气追踪仪 - 獵隼4500掌上型天氣追蹤儀 + 猎隼4500掌上型天气追踪仪 + 獵隼4500掌上型天氣追蹤儀 Open Kestrel 4500 @@ -46,8 +46,8 @@ Otevřít Kestrel 4500 Kestrel 4500 を開く Kestrel 4500 열기 - 开启猎隼4500测风仪 - 開啟獵隼4500測風儀 + 开启猎隼4500测风仪 + 開啟獵隼4500測風儀 Show Kestrel 4500 @@ -62,8 +62,8 @@ Mostrar Kestrel 4500 Kestrel 4500 を見る Kestrel 4500 보이기 - 显示猎隼4500测风仪 - 顯示獵隼4500測風儀 + 显示猎隼4500测风仪 + 顯示獵隼4500測風儀 Hide Kestrel 4500 @@ -78,8 +78,8 @@ Ocultar Kestrel 4500 Kestrel 4500 を隠す Kestrel 4500 숨기기 - 隐藏猎隼4500测风仪 - 隱藏獵隼4500測風儀 + 隐藏猎隼4500测风仪 + 隱藏獵隼4500測風儀 Open Kestrel 4500 @@ -94,8 +94,8 @@ Abrir Kestrel 4500 Kestrel 4500 を開く Kestrel 4500 열기 - 开启猎隼4500测风仪 - 開啟獵隼4500測風儀 + 开启猎隼4500测风仪 + 開啟獵隼4500測風儀 Show Kestrel 4500 @@ -110,8 +110,8 @@ Mostrar Kestrel 4500 Kestrel 4500 を見る Kestrel 4500 숨기기 - 显示猎隼4500测风仪 - 顯示獵隼4500測風儀 + 显示猎隼4500测风仪 + 顯示獵隼4500測風儀 diff --git a/addons/laser/stringtable.xml b/addons/laser/stringtable.xml index 191efc75599..aa09f5de0e5 100644 --- a/addons/laser/stringtable.xml +++ b/addons/laser/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -9,8 +9,8 @@ Wskaźnik poziomu rozproszenia wiązki lasera Compte de la simulation de la dispersion du laser Contatore Simulazione Dispersione Laser - 雷射散射模拟计算 - 雷射散射模擬計算 + 雷射散射模拟计算 + 雷射散射模擬計算 Laser Code @@ -25,8 +25,8 @@ Codice laser レーザ コード 레이저 코드 - 雷射码 - 雷射碼 + 雷射码 + 雷射碼 Laser - Cycle Code Up @@ -41,8 +41,8 @@ Codice laser + レーザ - コードの数値を増やす 레이저 - 코드 순환 위 - 雷射 - 循环切换雷射码 上 - 雷射 - 循環切換雷射碼 上 + 雷射 - 循环切换雷射码 上 + 雷射 - 循環切換雷射碼 上 Laser - Cycle Code Down @@ -57,8 +57,8 @@ Codice laser - レーザ - コードの数値を減らす 레이저 - 코드 순환 아래 - 雷射 - 循环切换雷射码 下 - 雷射 - 循環切換雷射碼 下 + 雷射 - 循环切换雷射码 下 + 雷射 - 循環切換雷射碼 下 diff --git a/addons/laserpointer/stringtable.xml b/addons/laserpointer/stringtable.xml index 33706433014..88228dc289f 100644 --- a/addons/laserpointer/stringtable.xml +++ b/addons/laserpointer/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Laser (vermelho) レーザ ポインタ (赤) 레이저 지시기 (빨강) - 雷射指示器 (红色) - 雷射指示器 (紅色) + 雷射指示器 (红色) + 雷射指示器 (紅色) Laser Pointer (green) @@ -30,8 +30,8 @@ Laser (verde) レーザ ポインタ (緑) 레이저 지시기 (초록) - 雷射指示器 (绿色) - 雷射指示器 (綠色) + 雷射指示器 (绿色) + 雷射指示器 (綠色) Emits visible light. @@ -46,8 +46,8 @@ Emite luz visível. 可視光をだします。 밝은 곳에서도 보임 - 发射出可见光 - 發射出可見光 + 发射出可见光 + 發射出可見光 <t color='#9cf953'>Use: </t>Turn Laser ON/OFF @@ -62,8 +62,8 @@ <t color='#9cf953'>Használat: </t>Lézer BE/KI kapcsolása <t color='#9cf953'>つかう: </t>レーザの起動/停止 <t color='#9cf953'>사용키: </t>레이저 켜기/끄기 - <t color='#9cf953'>使用: </t>雷射开启/关闭 - <t color='#9cf953'>使用: </t>雷射開啟/關閉 + <t color='#9cf953'>使用: </t>雷射开启/关闭 + <t color='#9cf953'>使用: </t>雷射開啟/關閉 Laser @@ -78,8 +78,8 @@ Laser レーザ 레이저 - 雷射 - 雷射 + 雷射 + 雷射 IR Laser @@ -94,8 +94,8 @@ Laser IV 赤外線レーザ 적외선 레이저 - 红外线雷射 - 紅外線雷射 + 红外线雷射 + 紅外線雷射 Switch Laser / IR Laser @@ -110,8 +110,8 @@ Alternar entre Laser / Laser IV レーザ/赤外線レーザを切り替える 레이저 / 적외선 레이저 전환 - 切换雷射/红外线雷射 - 切換雷射/紅外線雷射 + 切换雷射/红外线雷射 + 切換雷射/紅外線雷射 diff --git a/addons/logistics_uavbattery/stringtable.xml b/addons/logistics_uavbattery/stringtable.xml index 1e190161601..97c709d8ddd 100644 --- a/addons/logistics_uavbattery/stringtable.xml +++ b/addons/logistics_uavbattery/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ БПЛА полностью заряжен ドローンは充電完了 드론 충전완료 - 无人载具电池已充满 - 無人載具電池已充滿 + 无人载具电池已充满 + 無人載具電池已充滿 You need a UAV Battery @@ -30,8 +30,8 @@ Требуется аккумулятор для БПЛА UAV バッテリが必要です UAV 배터리가 필요합니다 - 你需要一个无人载具电池 - 你需要一個無人載具電池 + 你需要一个无人载具电池 + 你需要一個無人載具電池 Recharge @@ -46,8 +46,8 @@ Зарядить 充電 재충전 - 充电 - 充電 + 充电 + 充電 UAV Battery @@ -62,8 +62,8 @@ Аккумулятор БПЛА UAV バッテリ UAV 배터리 - 无人载具电池 - 無人載具電池 + 无人载具电池 + 無人載具電池 Used to refuel Carried UAV's @@ -78,8 +78,8 @@ Используется для зарядки переносных БПЛА 運んでいる UAV を充電に使う UAV를 재충전 할때 씁니다. - 对可携式无人载具进行充电 - 對可攜式無人載具進行充電 + 对可携式无人载具进行充电 + 對可攜式無人載具進行充電 Recharging... @@ -93,8 +93,8 @@ In ricarica... Заряжается... 充電中 - 充电中... - 充電中... + 充电中... + 充電中... diff --git a/addons/logistics_wirecutter/stringtable.xml b/addons/logistics_wirecutter/stringtable.xml index bd7f9edc81e..53c5e21b146 100644 --- a/addons/logistics_wirecutter/stringtable.xml +++ b/addons/logistics_wirecutter/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Cortador de Arame ワイヤーカッター 절단기 - 剪铁丝网钳 - 剪鐵絲網鉗 + 剪铁丝网钳 + 剪鐵絲網鉗 Wirecutter @@ -30,8 +30,8 @@ Cortador de Arame ワイヤーカッター 절단기 - 剪铁丝网钳 - 剪鐵絲網鉗 + 剪铁丝网钳 + 剪鐵絲網鉗 Cut Fence @@ -46,8 +46,8 @@ Разрезать забор フェンスを切断する 철조망 자르기 - 剪断护栏 - 剪斷護欄 + 剪断护栏 + 剪斷護欄 Cutting Fences / Wires... @@ -62,8 +62,8 @@ Разрезаем забор / провода... フェンス/ワイヤを切断中・・・ 철망/철조망 자르는중... - 剪断护栏/刺网中... - 剪斷護欄/刺網中... + 剪断护栏/刺网中... + 剪斷護欄/刺網中... Fence cut @@ -78,8 +78,8 @@ Забор разрезан フェンスを切断した 절단됨 - 护栏已被剪断 - 護欄已被剪斷 + 护栏已被剪断 + 護欄已被剪斷 diff --git a/addons/magazinerepack/stringtable.xml b/addons/magazinerepack/stringtable.xml index 14d65eacac8..f82280961ed 100644 --- a/addons/magazinerepack/stringtable.xml +++ b/addons/magazinerepack/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Перепаковать магазины 弾倉を詰め替え 탄창 다시 채우기 - 重新整理弹匣 - 重新整理彈匣 + 重新整理弹匣 + 重新整理彈匣 Select Magazine Menu @@ -30,8 +30,8 @@ Меню выбора магазинов 弾倉メニューから選ぶ 탄창 메뉴 고르기 - 选择弹匣清单 - 選擇彈匣清單 + 选择弹匣清单 + 選擇彈匣清單 Select Mag @@ -46,8 +46,8 @@ Выбрать магазин 弾倉を選択 탄창 고르기 - 选择弹匣 - 選擇彈匣 + 选择弹匣 + 選擇彈匣 Repacking Magazines... @@ -62,8 +62,8 @@ Перепаковка магазинов... 弾倉を詰め替え中・・・ 다시 채우는중... - 重新整理弹匣中 ... - 重新整理彈匣中 ... + 重新整理弹匣中 ... + 重新整理彈匣中 ... Repacked Magazines @@ -78,8 +78,8 @@ Магазины перепакованы 弾倉の詰め替えが終わった 탄창 채워짐 - 弹匣已重新整理 - 彈匣已重新整理 + 弹匣已重新整理 + 彈匣已重新整理 %1 full mag(s) and %2 extra round(s) @@ -94,8 +94,8 @@ %1 полных магазина(ов) и %2 патрона(ов) %1 個の満杯な弾倉と入りきらなかった %2 個の弾倉 %1개의 꽉찬 탄창과 %2발의 총알이 남았다 - %1个满的弹匣与%2发额外子弹 - %1個滿的彈匣與%2發額外子彈 + %1个满的弹匣与%2发额外子弹 + %1個滿的彈匣與%2發額外子彈 Repacking Finished @@ -110,8 +110,8 @@ Reorganização Terminada 詰め替えが完了 탄창 채우기 끝남 - 重整完成 - 重整完成 + 重整完成 + 重整完成 Repacking Interrupted @@ -126,8 +126,8 @@ Reorganização Interrompida 詰め替えを中断した 탄창 채우기 방해받음 - 重整被中断 - 重整被中斷 + 重整被中断 + 重整被中斷 %1 Full and %2 Partial @@ -142,8 +142,8 @@ %1 Total e %2 Parcial %1 個の満杯で、 %2 の余分数 %1 꽉찼고 %2 부분참 - %1个满的与%2个部分的 - %1個滿的與%2個部分的 + %1个满的与%2个部分的 + %1個滿的與%2個部分的 diff --git a/addons/main/stringtable.xml b/addons/main/stringtable.xml index 93b4df27008..d312264cf62 100644 --- a/addons/main/stringtable.xml +++ b/addons/main/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -12,8 +12,8 @@ Logistica ACE ACE Logistique ACE ロジスティクス - ACE 后勤 - ACE 後勤 + ACE 后勤 + ACE 後勤 http://ace3mod.com/ @@ -27,8 +27,8 @@ http://ace3mod.com/ http://ace3mod.com/ http://ace3mod.com/ - http://ace3mod.com/ - http://ace3mod.com/ + http://ace3mod.com/ + http://ace3mod.com/ diff --git a/addons/map/stringtable.xml b/addons/map/stringtable.xml index 47cccfde829..9108f088bf4 100644 --- a/addons/map/stringtable.xml +++ b/addons/map/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Mappa 地図 지도 - 地图 - 地圖 + 地图 + 地圖 Map illumination? @@ -30,8 +30,8 @@ Illuminazione Mappa? 地図に照明? 지도에 조명? - 地图照明? - 地圖照明? + 地图照明? + 地圖照明? Simulate map lighting based on ambient lighting and player's items? @@ -45,8 +45,8 @@ Simula illuminazione della mappa in base alla luce ambientale e agli oggetti del giocatore? 環境光やプレイヤーのアイテムにより、地図へ光のシミュレーションをおこないますか? 주변 환경및 플레이어 조명에 의한 빛 변화를 지도에 반영할까요? - 透过环境光与玩家的物品来决定地图亮度? - 透過環境光與玩家的物品來決定地圖亮度? + 透过环境光与玩家的物品来决定地图亮度? + 透過環境光與玩家的物品來決定地圖亮度? Map flashlight glow? @@ -60,8 +60,8 @@ Lumière de la lampe de carte ? 地図をフラッシュライトで照らしますか? 지도 조명이 빛이 납니까? - 增加地图亮度? - 增加地圖亮度? + 增加地图亮度? + 增加地圖亮度? Add external glow to players who use flashlight on map? @@ -75,8 +75,8 @@ Aggiungi luce esterna a giocatori che usano la torcia in mappa? プレイヤが地図上でフラッシュライトを使うと、照らすようにしますか? 지도에 불빛을 비치는 플레이어를 조금 더 밝게 합니까? - 当玩家拥有手电筒时, 增加地图亮度? - 當玩家擁有手電筒時, 增加地圖亮度? + 当玩家拥有手电筒时, 增加地图亮度? + 當玩家擁有手電筒時, 增加地圖亮度? Map shake? @@ -91,8 +91,8 @@ Scuoti la mappa? 地図を揺らしますか? 지도 흔들림? - 地图震动? - 地圖震動? + 地图震动? + 地圖震動? Make map shake when walking? @@ -107,8 +107,8 @@ Far scuotere la mappa mentre cammini? 歩いているときは地図を揺らしますか? 걸을때 지도보면 흔들리게 합니까? - 走路时让地图有震动的感觉? - 走路時讓地圖有震動的感覺? + 走路时让地图有震动的感觉? + 走路時讓地圖有震動的感覺? Limit map zoom? @@ -123,8 +123,8 @@ Limita lo zoom in mappa? 地図の拡大を制限しますか? 지도 확대 제한? - 限制地图缩放倍率? - 限制地圖縮放倍率? + 限制地图缩放倍率? + 限制地圖縮放倍率? Limit the amount of zoom available for the map? @@ -139,8 +139,8 @@ Limita l'ammontare di zoom disponibile per la mappa? 地図上で利用できる拡大倍率を制限しますか? 지도 확대에 제한을 둡니까? - 限制地图上可允许缩放的倍率? - 限制地圖上可允許縮放的倍率? + 限制地图上可允许缩放的倍率? + 限制地圖上可允許縮放的倍率? Show cursor coordinates? @@ -155,8 +155,8 @@ Mostra coordinate sul cursore? カーソル先で座標を表示しますか? 커서에 좌표를 보이게 합니까? - 显示游标的座标? - 顯示游標的座標? + 显示游标的座标? + 顯示游標的座標? Show the grid coordinates on the mouse pointer? @@ -171,8 +171,8 @@ Mostra la griglia coordinate sul cursore mouse? カーソルに合わせた先の地図座標を表示しますか? 지도에서 커서 옆에 좌표가 뜨게 합니까? - 显示滑鼠游标所在的网格座标? - 顯示滑鼠游標所在的網格座標? + 显示滑鼠游标所在的网格座标? + 顯示滑鼠游標所在的網格座標? This module allows you to customize the map screen. @@ -187,8 +187,8 @@ Questo modulo ti permette di customizzare lo schermo della mappa. モジュールは地図画面をカスタマイズできます。 이 모듈은 지도 화면을 임의로 설정할 수 있게 해줍니다. - 此模块允许自定地图的相关效果. - 此模塊允許自定地圖的相關效果. + 此模块允许自定地图的相关效果. + 此模塊允許自定地圖的相關效果. Blue Force Tracking @@ -203,8 +203,8 @@ Blue Force Tracking ブルー フォース トラッキング GPS피아식별기 - 显示蓝方踪迹 - 顯示藍方蹤跡 + 显示蓝方踪迹 + 顯示藍方蹤跡 BFT Enable @@ -219,8 +219,8 @@ Abilita BFT BFT を有効化 GPS피아식별기 켜기 - 蓝方踪迹启用 - 藍方蹤跡啟用 + 蓝方踪迹启用 + 藍方蹤跡啟用 Enable Blue Force Tracking. Default: No @@ -235,8 +235,8 @@ Abilita Blue Force Tracking. Default: No ブルー フォース トラッキングを有効化します。標準:無効 GPS피아식별기 켭니다. 기본설정: 아니요 - 启用显示蓝方踪迹. 预设: 否 - 啟用顯示藍方蹤跡. 預設: 否 + 启用显示蓝方踪迹. 预设: 否 + 啟用顯示藍方蹤跡. 預設: 否 Interval @@ -251,8 +251,8 @@ Intervallo 間隔 간격 - 间隔 - 間隔 + 间隔 + 間隔 How often the markers should be refreshed (in seconds) @@ -267,8 +267,8 @@ Quanto spesso vengono aggiornati i marker (in secondi) マーカが再描画される間隔を設定できます(秒) 몇 초마다 마커를 새로 갱신합니까? - 设定每多少时间重新标示出单位位置 (秒) - 設定每多少時間重新標示出單位位置 (秒) + 设定每多少时间重新标示出单位位置 (秒) + 設定每多少時間重新標示出單位位置 (秒) Hide AI groups? @@ -283,8 +283,8 @@ Nascondere gruppi IA? AI グループを非表示にしますか? 인공지능 그룹을 숨깁니까? - 隐藏AI小队? - 隱藏AI小隊? + 隐藏AI小队? + 隱藏AI小隊? Hide markers for 'AI only' groups? @@ -299,8 +299,8 @@ Nascondi markers per gruppi di sole IA? 'AI のみ'グループのマーカを隠しますか? 인공지능만 있는 그룹의 마커를 숨깁니까? - 隐藏'AI小队'的踪迹? - 隱藏'AI小隊'的蹤跡? + 隐藏'AI小队'的踪迹? + 隱藏'AI小隊'的蹤跡? Show player names? @@ -315,8 +315,8 @@ Mostra i nomi dei giocatori? プレイヤ名を表示しますか? 플레이어 이름을 표시합니까? - 显示玩家名称? - 顯示玩家名稱? + 显示玩家名称? + 顯示玩家名稱? Show individual player names? @@ -331,8 +331,8 @@ Mostra i nomi dei giocatori singoli? プレイヤの名前を表示しますか? 각 플레이어의 이름을 표시합니까? - 显示玩家的个别名称? - 顯示玩家的個別名稱? + 显示玩家的个别名称? + 顯示玩家的個別名稱? This module allows the tracking of allied units with BFT map markers. @@ -347,8 +347,8 @@ Questo modulo permette il tracciamento di unità alleate con i marker BFT in mappa モジュールは BFT マップ マーカとともに、同勢力ユニットの追跡を許可します。 이 모듈은 아군을 지도상에서 추적할 수 있게 해줍니다. - 此模块将使你能在地图上看见友方单位的踪迹. - 此模塊將使你能在地圖上看見友方單位的蹤跡. + 此模块将使你能在地图上看见友方单位的踪迹. + 此模塊將使你能在地圖上看見友方單位的蹤跡. Flashlights @@ -362,8 +362,8 @@ Torcia フラッシュライト 손전등 - 手电筒 - 手電筒 + 手电筒 + 手電筒 NVG @@ -377,8 +377,8 @@ NVG 夜間暗視装置 야투경 - 夜视镜 - 夜視鏡 + 夜视镜 + 夜視鏡 On @@ -392,8 +392,8 @@ Acceso 起動 켜기 - 开启 - 開啟 + 开启 + 開啟 Off @@ -407,8 +407,8 @@ Spento 停止 끄기 - 关闭 - 關閉 + 关闭 + 關閉 Increase Brightness @@ -422,8 +422,8 @@ Aumenta Luminosità 感度を上げる 밝기 올리기 - 增加亮度 - 增加亮度 + 增加亮度 + 增加亮度 Decrease Brightness @@ -437,8 +437,8 @@ Diminuisci Luminosità 感度を下げる 밝기 내리기 - 降低亮度 - 降低亮度 + 降低亮度 + 降低亮度 Turn On %1 @@ -453,8 +453,8 @@ Активировать %1 %1 を点ける %1 켜기 - 开启%1 - 開啟%1 + 开启%1 + 開啟%1 Turn Off %1 @@ -469,8 +469,8 @@ Деактивировать %1 %1 を消す %1 끄기 - 关闭%1 - 關閉%1 + 关闭%1 + 關閉%1 Set Channel At Start @@ -484,8 +484,8 @@ Mettre un canal par défaut 開始時のチャンネルを決定 시작시 채널 - 设定游戏开始时的聊天频道 - 設定遊戲開始時的聊天頻道 + 设定游戏开始时的聊天频道 + 設定遊戲開始時的聊天頻道 Change the starting marker channel at mission start @@ -499,8 +499,8 @@ Change le canal de communication par défaut au début de la mission. ミッション開始時にあらかじめ設定されているマーカ チャンネルを変更します 미션시작시 마커채널을 변경합니다 - 更改任务启动时的聊天频道 - 更改任務啟動時的聊天頻道 + 更改任务启动时的聊天频道 + 更改任務啟動時的聊天頻道 Disable BFT @@ -510,8 +510,8 @@ Wyłącz BFT Désactive le BFT Disablita BFT - 关闭友军踪迹 - 關閉友軍蹤跡 + 关闭友军踪迹 + 關閉友軍蹤跡 Always disable Blue Force Tracking for this group. @@ -521,8 +521,8 @@ Zawsze wyłączaj Blue Force Tracking dla tej grupy. Désactive en permanence le Blue Force Tracking pour ce groupe. Disabilita sempre il Blue Force Tracking per questo gruppo. - 对此小队永远关闭友军踪迹显示. - 對此小隊永遠關閉友軍蹤跡顯示. + 对此小队永远关闭友军踪迹显示. + 對此小隊永遠關閉友軍蹤跡顯示. diff --git a/addons/map_gestures/stringtable.xml b/addons/map_gestures/stringtable.xml index 6c3687c2dd2..feebdb7a084 100644 --- a/addons/map_gestures/stringtable.xml +++ b/addons/map_gestures/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,8 +13,8 @@ Gestes de carte マップ ジェスチャ 지도 신호 - 地图指示器 - 地圖指示器 + 地图指示器 + 地圖指示器 Enabled @@ -28,8 +28,8 @@ Activer 有効化 켜기 - 启用 - 啟用 + 启用 + 啟用 Map Gesture Max Range @@ -43,8 +43,8 @@ Distance max. des gestes de carte マップ ジェスチャの最大範囲 지도 신호 최대 거리 - 地图指示器最大范围 - 地圖指示器最大範圍 + 地图指示器最大范围 + 地圖指示器最大範圍 Max range between players to show the map gesture indicator [default: 7 meters] @@ -58,8 +58,8 @@ Distance max. entre les joueurs pour montrer le pointage sur carte. (Défaut : 7m) プレイヤのマップ ジェスチャによる表示範囲を設定します [標準:7 メートル] 플레이어간에 지도 신호 표시거리를 설정합니다. [기본: 7 미터] - 设定地图指示器显示的最大范围距离 [预设: 7公尺] - 設定地圖指示器顯示的最大範圍距離 [預設: 7公尺] + 设定地图指示器显示的最大范围距离 [预设: 7公尺] + 設定地圖指示器顯示的最大範圍距離 [預設: 7公尺] Lead Default Color @@ -73,8 +73,8 @@ Couleur principale de commandement. リーダー用標準の色 리더 기본 색상 - 队长预设颜色 - 隊長預設顏色 + 队长预设颜色 + 隊長預設顏色 Fallback Color value for group leaders when there is no group setting. [Module: leave blank to not force on clients] @@ -87,8 +87,8 @@ Couleur par défaut pour les chefs de groupe quand il n'y a pas de réglage pour le groupe. (Module : laisser vide pour ne pas forcer chez les clients) グループ設定が存在しない場合に、グループ リーダーへ設定される色の値を設定します。[モジュール:空の場合はクライアントへ強制しません] 그룹 설정이 없는 경우 리더의 예비 색상 값입니다. [모듈: 클라이언트에서 강체치 않기 위해 공백으로 비워둘것] - 当没有设定小队颜色时, 此功能会定义队长的指示器颜色. [模块: 此栏留空来保持预设颜色] - 當沒有設定小隊顏色時, 此功能會定義隊長的指示器顏色. [模塊: 此欄留空來保持預設顏色] + 当没有设定小队颜色时, 此功能会定义队长的指示器颜色. [模块: 此栏留空来保持预设颜色] + 當沒有設定小隊顏色時, 此功能會定義隊長的指示器顏色. [模塊: 此欄留空來保持預設顏色] Default Color @@ -102,8 +102,8 @@ Couleur par défaut 標準色 기본 색상 - 预设颜色 - 預設顏色 + 预设颜色 + 預設顏色 Fallback Color value when there is no group setting. [Module: leave blank to not force on clients] @@ -116,8 +116,8 @@ 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) グループ設定が存在しない場合に、グループ リーダーへ設定される色の値を設定します。[モジュール:空の場合はクライアントへ強制しません] 그룹 설정이 없을 경우의 예비 색상입니다. [모듈: 클라이언트에서 강체치 않기 위해 공백으로 비워둘것] - 当没有设定小队颜色时, 此功能会定义玩家的指示器颜色. [模块: 此栏留空来保持预设颜色] - 當沒有設定小隊顏色時, 此功能會定義玩家的指示器顏色. [模塊: 此欄留空來保持預設顏色] + 当没有设定小队颜色时, 此功能会定义玩家的指示器颜色. [模块: 此栏留空来保持预设颜色] + 當沒有設定小隊顏色時, 此功能會定義玩家的指示器顏色. [模塊: 此欄留空來保持預設顏色] Lead Color @@ -131,8 +131,8 @@ Couleur de commandement リーダー用の色 리더 색상 - 队长颜色 - 隊長顏色 + 队长颜色 + 隊長顏色 Color value for group leaders of groups synced with this module. @@ -145,8 +145,8 @@ Couleur pour les chefs de groupe des groupes synchronisés avec le module. モジュールで同期されたグループのリーダー用に色の値を決定します。 그룹이 이 모듈에 동기화 됐을때의 리더 색상입니다. - 改变与此同步小队队长的指示器颜色. - 改變與此同步小隊隊長的指示器顏色. + 改变与此同步小队队长的指示器颜色. + 改變與此同步小隊隊長的指示器顏色. Color @@ -160,8 +160,8 @@ Couleur 색상 - 颜色 - 顏色 + 颜色 + 顏色 Color value for group members of groups synced with this module. @@ -174,8 +174,8 @@ Couleur pour les membres du groupe synchronisé avec ce module. モジュールで同期されたグループのメンバ用に色の値を決定します。 그룹이 이 모듈에 동기화 됐을때의 멤버 색상입니다. - 改变与此同步小队队员的指示器颜色 - 改變與此同步小隊隊員的指示器顏色 + 改变与此同步小队队员的指示器颜色 + 改變與此同步小隊隊員的指示器顏色 Map Gestures - Group Settings @@ -189,8 +189,8 @@ Gestes de carte - réglages de groupe マップ ジェスチャ - グループ設定 지도 신호 - 그룹 설정 - 地图指示器 - 队伍设定 - 地圖指示器 - 隊伍設定 + 地图指示器 - 队伍设定 + 地圖指示器 - 隊伍設定 Update Interval @@ -204,8 +204,8 @@ Intervalle de mise à jour 更新間隔 갱신 간격 - 更新间隔 - 更新間隔 + 更新间隔 + 更新間隔 Time between data updates. @@ -219,8 +219,8 @@ Temps entre les actualisations de données データの更新間隔 데이터 갱신 간격 - 定义每次更新数据的时间. - 定義每次更新數據的時間. + 定义每次更新数据的时间. + 定義每次更新數據的時間. Enables the Map Gestures. @@ -234,8 +234,8 @@ Activer les gestes de carte マップ ジェスチャを有効化 지도 신호 활성화 - 启用地图指示器 - 啟用地圖指示器 + 启用地图指示器 + 啟用地圖指示器 Name Text Color @@ -249,8 +249,8 @@ Couleur du texte du nom 名前への色 글 색상 명칭 - 名称文字颜色 - 名稱文字顏色 + 名称文字颜色 + 名稱文字顏色 Color of the name tag text besides the map gestures mark. @@ -263,8 +263,8 @@ Couleur des tags de nom à côté de marqueur de pointage sur carte. マップ ジェスチャに表示される、名前の色を決定します。 지도 색상에 표시되는 이름의 색상을 결정합니다. - 定义名称文字颜色. 使其与地图指示器颜色有所区别. - 定義名稱文字顏色. 使其與地圖指示器顏色有所區別. + 定义名称文字颜色. 使其与地图指示器颜色有所区别. + 定義名稱文字顏色. 使其與地圖指示器顏色有所區別. Map Gestures @@ -278,8 +278,8 @@ Gestes de carte マップ ジェスチャ 지도 신호 - 地图指示器 - 地圖指示器 + 地图指示器 + 地圖指示器 diff --git a/addons/maptools/stringtable.xml b/addons/maptools/stringtable.xml index 8f380eb8c1f..20397d70eb5 100644 --- a/addons/maptools/stringtable.xml +++ b/addons/maptools/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Инструменты карты マップ ツール 독도용 도구 - 地图工具 - 地圖工具 + 地图工具 + 地圖工具 The Map Tools allow you to measure distances and angles on the map. @@ -30,8 +30,8 @@ Картографические инструменты позволяют измерять расстояния и углы на карте. マップ ツールは地図上で距離や角度を測れます。 독도용 도구는 지도상에서 거리나 각도를 잴 수 있게 해줍니다. - 地图工具能够让你在地图上测量距离与角度 - 地圖工具能夠讓你在地圖上測量距離與角度 + 地图工具能够让你在地图上测量距离与角度 + 地圖工具能夠讓你在地圖上測量距離與角度 Map Tools @@ -46,8 +46,8 @@ Инструменты карты マップ ツール 독도용 도구 - 地图工具 - 地圖工具 + 地图工具 + 地圖工具 Hide Map Tool @@ -62,8 +62,8 @@ Скрыть инструменты マップ ツールを隠す 독도용 도구 숨기기 - 隐藏地图工具 - 隱藏地圖工具 + 隐藏地图工具 + 隱藏地圖工具 Show Normal Map Tool @@ -78,8 +78,8 @@ Показать инструменты (средн. размер) マップ ツールを表示する 보통 독도용 도구로 보기 - 显示地图工具 - 顯示地圖工具 + 显示地图工具 + 顯示地圖工具 Show Small Map Tool @@ -94,8 +94,8 @@ Показать инструменты (малый размер) 小さいマップ ツールを表示する 작은 독도용 도구로 보기 - 显示小的地图工具 - 顯示小的地圖工具 + 显示小的地图工具 + 顯示小的地圖工具 Align Map Tool to North @@ -110,8 +110,8 @@ Выровнять инструменты на север マップ ツールを北に合わせる 독도용 도구를 북쪽으로 정렬 - 地图工具对准北方 - 地圖工具對準北方 + 地图工具对准北方 + 地圖工具對準北方 Align Map Tool to Compass @@ -126,8 +126,8 @@ Выровнять инструменты по компасу マップ ツールを方位磁石に合わせる 독도용 도구를 나침반에 정렬 - 地图工具对准指北针 - 地圖工具對準指北針 + 地图工具对准指北针 + 地圖工具對準指北針 Show GPS on Map @@ -142,8 +142,8 @@ Показать GPS на карте 地図上に GPS を表示する GPS를 지도상에 꺼내기 - 在地图上显示GPS - 在地圖上顯示GPS + 在地图上显示GPS + 在地圖上顯示GPS Hide GPS on Map @@ -158,8 +158,8 @@ Скрыть GPS на карте 地図上から GPS を隠す GPS를 지도상에서 숨기기 - 在地图上隐藏GPS - 在地圖上隱藏GPS + 在地图上隐藏GPS + 在地圖上隱藏GPS Direction: %1° @@ -174,8 +174,8 @@ Direção: %1 方位:%1° 방위: %1° - 方位: %1° - 方位: %1° + 方位: %1° + 方位: %1° Rotate Map Tools Key @@ -186,8 +186,8 @@ Taste zum Drehen des Kartenwerkzeugs 독도용 도구 돌리기 키 Ruota Strumenti di Mappatura - 选转地图工具的按键 - 選轉地圖工具的按鍵 + 选转地图工具的按键 + 選轉地圖工具的按鍵 Modifier key to allow rotating map tools @@ -198,8 +198,8 @@ Steuerungstaste, um Drehung des Kartenwerkzeugs zu ermöglichen. 독도용 도구를 돌리기 위한 키를 변경할 수 있습니다. Tasto modifica per consentire strumenti di mappatura rotanti - 修改旋转地图工具的按键 - 修改旋轉地圖工具的按鍵 + 修改旋转地图工具的按键 + 修改旋轉地圖工具的按鍵 Draw straight lines with maptools @@ -209,8 +209,8 @@ Rysuj proste linie przy użyciu narzędzi nawigacyjnych Tracer des lignes droites Disegna linee dritte con gli strumenti di mappatura - 使用地图工具来绘制直线 - 使用地圖工具來繪製直線 + 使用地图工具来绘制直线 + 使用地圖工具來繪製直線 Draw on the edge of maptools to draw straight lines. Note: Must hover at midpoint to delete. @@ -220,8 +220,8 @@ Przeciągnij po krawędzi narzędzi nawigacyjnych by narysować prostą linię. Uwaga: aby usunąć linię - nalezy ustawić kursor nad jej środkiem. Utiliser le bord des outils de navigation pour tracer des lignes droites. Note: l'on doit survoler le milieu du trait pour pouvoir le supprimer. Disegna sul bordo degli strumenti di mappatura per disegnare linee dritte. Nota: Deve spostarsi al centro per essere cancellato. - 使用地图工具的边缘来绘制直线. 备注: 要删除直线时, 请把滑鼠移动到该线条的中央即可删除该线. - 使用地圖工具的邊緣來繪製直線. 備註: 要刪除直線時, 請把滑鼠移動到該線條的中央即可刪除該線. + 使用地图工具的边缘来绘制直线. 备注: 要删除直线时, 请把滑鼠移动到该线条的中央即可删除该线. + 使用地圖工具的邊緣來繪製直線. 備註: 要刪除直線時, 請把滑鼠移動到該線條的中央即可刪除該線. diff --git a/addons/markers/stringtable.xml b/addons/markers/stringtable.xml index 7d6dc2b23ae..1c87546a5eb 100644 --- a/addons/markers/stringtable.xml +++ b/addons/markers/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Direção %1 方位:%1° 방위: %1° - 方位: %1° - 方位: %1° + 方位: %1° + 方位: %1° diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 058bc9ee0ef..d94fe3ae5a0 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -14,8 +14,8 @@ FERIMENTOS 負傷 부상 - 受伤 - 受傷 + 受伤 + 受傷 No injuries on this bodypart... @@ -30,8 +30,8 @@ Nenhum ferimento nesta parte do corpo... 怪我をしていない 이 부위에는 부상이 없습니다... - 此身体部位没有受伤 - 此身體部位沒有受傷 + 此身体部位没有受伤 + 此身體部位沒有受傷 Litter Simulation Detail @@ -46,8 +46,8 @@ Počet zobrazených předmětů po použití zdravotnického materiálu 医療廃棄物を再現する詳細度 의료폐기물 재현 상세도 - 医疗废弃物模拟细节 - 醫療廢棄物模擬細節 + 医疗废弃物模拟细节 + 醫療廢棄物模擬細節 Litter simulation detail level sets the number of litter items which will be locally spawned in the client. Excessive amounts in local areas could cause FPS lag, so this is a client only setting. @@ -62,8 +62,8 @@ Počet zobrazených předmětů po použití zdravotnického materiálu ovlivňuje počet objektů, které budou zobrazeny klientovi v místě použití zdravotnického materiálu. Vyšší množství objektů může způsobovat poklesy FPS a proto je toto nastavení čistě na klientovi. 医療廃棄物再現度は各クライアントでローカルに作成される、医療廃棄物への詳細度を決定できます。ローカルで多くのアイテムがあると FPS の低下を引き起こすため、クライアント側のみの設定です。 의료폐기물 재현 상세도의 경우 얼마나 많은 수의 폐기물이 클라이언트 주변에 생성되는지를 정합니다. 매우 많은 수의 지역은 프레임드랍을 유발할 수 있습니다, 고로 이는 클라이언트 전용 설정입니다. - 设定医疗废弃物的最大产生数量, 过多的数量会导致画面更新率延迟, 因此这由用户端来设定 - 設定醫療廢棄物的最大產生數量, 過多的數量會導致畫面更新率延遲, 因此這由用戶端來設定 + 设定医疗废弃物的最大产生数量, 过多的数量会导致画面更新率延迟, 因此这由用户端来设定 + 設定醫療廢棄物的最大產生數量, 過多的數量會導致畫面更新率延遲, 因此這由用戶端來設定 Inject Adenosine @@ -77,8 +77,8 @@ Ввести аденозин アデノシンを投与 아데노신 주사 - 注射腺苷 - 注射腺苷 + 注射腺苷 + 注射腺苷 Inject Atropine @@ -93,8 +93,8 @@ Injetar Atropina アトロピンを投与 아트로핀 주사 - 注射阿托品 - 注射阿托品 + 注射阿托品 + 注射阿托品 Inject Epinephrine @@ -109,8 +109,8 @@ Inietta adrenalina アドレナリンを投与 에피네프린 주사 - 注射肾上腺素 - 注射腎上腺素 + 注射肾上腺素 + 注射腎上腺素 Inject Morphine @@ -125,8 +125,8 @@ Inietta morfina モルヒネを投与 모르핀 주사 - 注射吗啡 - 注射嗎啡 + 注射吗啡 + 注射嗎啡 Transfuse Blood @@ -141,8 +141,8 @@ Trasfusione di sangue 輸血する 혈액 수혈 - 输血液 - 輸血液 + 输血液 + 輸血液 Transfuse Plasma @@ -157,8 +157,8 @@ Transfundir Plasma 血しょうを投与 혈장 수혈 - 输血浆 - 輸血漿 + 输血浆 + 輸血漿 Transfuse Saline @@ -173,8 +173,8 @@ Transfundir Soro 生理食塩水を投与 생리식염수 수혈 - 注射生理食盐水 - 注射生理食鹽水 + 注射生理食盐水 + 注射生理食鹽水 Apply Tourniquet @@ -189,8 +189,8 @@ Érszorító alkalmazása 止血帯を巻く 지혈대 적용 - 使用军用止血带 - 使用軍用止血帶 + 使用军用止血带 + 使用軍用止血帶 Bandage @@ -205,8 +205,8 @@ Перевязать 包帯 붕대 - 绷带 - 繃帶 + 绷带 + 繃帶 Bandage Head @@ -221,8 +221,8 @@ Benda la testa 包帯を頭へ 머리에 붕대감기 - 绷带包扎 头部 - 繃帶包紮 頭部 + 绷带包扎 头部 + 繃帶包紮 頭部 Bandage Torso @@ -237,8 +237,8 @@ Benda il torso 包帯を胴体へ 몸통에 붕대감기 - 绷带包扎 身体 - 繃帶包紮 身體 + 绷带包扎 身体 + 繃帶包紮 身體 Bandage Left Arm @@ -253,8 +253,8 @@ Benda il braccio sinistro 包帯を左腕に 왼팔에 붕대감기 - 绷带包扎 左手 - 繃帶包紮 左手 + 绷带包扎 左手 + 繃帶包紮 左手 Bandage Right Arm @@ -269,8 +269,8 @@ Benda il braccio destro 包帯を右腕に 오른팔에 붕대감기 - 绷带包扎 右手 - 繃帶包紮 右手 + 绷带包扎 右手 + 繃帶包紮 右手 Bandage Left Leg @@ -285,8 +285,8 @@ Benda la gamba sinistra 包帯を左足へ 왼쪽 다리에 붕대감기 - 绷带包扎 左脚 - 繃帶包紮 左腳 + 绷带包扎 左脚 + 繃帶包紮 左腳 Bandage Right Leg @@ -301,8 +301,8 @@ Benda la gamba destra 包帯を右足へ 오른쪽 다리에 붕대감기 - 绷带包扎 右脚 - 繃帶包紮 右腳 + 绷带包扎 右脚 + 繃帶包紮 右腳 Injecting Morphine... @@ -317,8 +317,8 @@ Inietto la morfina... モルヒネを投与中・・・ 모르핀 주사중... - 吗啡注射中... - 嗎啡注射中... + 吗啡注射中... + 嗎啡注射中... Injecting Epinephrine... @@ -333,8 +333,8 @@ Inietto l'adrenalina... アドレナリンを投与中・・・ 에피네프린 주사중... - 肾上腺素注射中... - 腎上腺素注射中... + 肾上腺素注射中... + 腎上腺素注射中... Injecting Adenosine... @@ -348,8 +348,8 @@ Введение аденозина... アドネシンを投与中・・・ 아데노신 주사중... - 腺苷注射中... - 腺苷注射中... + 腺苷注射中... + 腺苷注射中... Injecting Atropine... @@ -364,8 +364,8 @@ Injetando Atropina アトロピンを投与中・・・ 아트리핀 주사중... - 阿托品注射中 ... - 阿托品注射中 ... + 阿托品注射中 ... + 阿托品注射中 ... Transfusing Blood... @@ -380,8 +380,8 @@ Effettuo la trasfusione di sangue... 輸血中・・・ 혈액 수혈중... - 输血液中 ... - 輸血液中 ... + 输血液中 ... + 輸血液中 ... Transfusing Saline... @@ -396,8 +396,8 @@ Transfundindo Soro... 生理食塩水を投与中・・・ 생리식염수 수혈중... - 施打生理食盐水中 ... - 施打生理食鹽水中 ... + 施打生理食盐水中 ... + 施打生理食鹽水中 ... Transfusing Plasma... @@ -412,8 +412,8 @@ Transfundindo Plasma... 血しょうを投与中・・・ 혈장 수혈중... - 输血浆中 ... - 輸血漿中 ... + 输血浆中 ... + 輸血漿中 ... Bandaging... @@ -428,8 +428,8 @@ Перевязывание... 包帯を巻いています・・・ 붕대감는중... - 绷带包扎中 ... - 繃帶包紮中 ... + 绷带包扎中 ... + 繃帶包紮中 ... Applying Tourniquet... @@ -444,8 +444,8 @@ Applicando Torniquete 止血帯を巻いています・・・ 지혈대 적용중... - 使用军用止血带中 ... - 使用軍用止血帶中 ... + 使用军用止血带中 ... + 使用軍用止血帶中 ... Medical @@ -460,8 +460,8 @@ Orvosi 治療 치료 - 医疗 - 醫療 + 医疗 + 醫療 Field Dressing @@ -476,8 +476,8 @@ Curativo de Campo 緊急圧迫包帯 필드 드레싱 - 基础绷带 - 基礎繃帶 + 基础绷带 + 基礎繃帶 Packing Bandage @@ -492,8 +492,8 @@ Obvaz Tlakový 弾性包帯 거즈 붕대 - 包扎绷带 - 包紮繃帶 + 包扎绷带 + 包紮繃帶 Elastic Bandage @@ -508,8 +508,8 @@ Bandagem Elástica 伸縮包帯 압박 붕대 - 弹性绷带 - 彈性繃帶 + 弹性绷带 + 彈性繃帶 QuikClot @@ -524,8 +524,8 @@ QuikClot クイッククロット 퀵 클롯 - 止血粉 - 止血粉 + 止血粉 + 止血粉 Check Pulse @@ -540,8 +540,8 @@ Checar Pulso 心拍数をはかる 맥박 확인 - 检查脉搏 - 檢查脈搏 + 检查脉搏 + 檢查脈搏 Check Blood Pressure @@ -556,8 +556,8 @@ Chegar Pressão Sanguínea 血圧をはかる 혈압 확인 - 检查血压 - 檢查血壓 + 检查血压 + 檢查血壓 Triage Card @@ -572,8 +572,8 @@ Cartão de Triagem トリアージ カード 부상자 분류 카드 - 检伤分类卡 - 檢傷分類卡 + 检伤分类卡 + 檢傷分類卡 No entries on this triage card. @@ -588,8 +588,8 @@ Nenhuma entrada neste cartão de triagem トリアージ カードには何も無い 부상자 분류 카드에 쓰여있는것이 없습니다. - 此检伤分类卡上没有任何资料 - 此檢傷分類卡上沒有任何資料 + 此检伤分类卡上没有任何资料 + 此檢傷分類卡上沒有任何資料 Tourniquet @@ -604,8 +604,8 @@ Torniquete 止血帯 지혈대 - 军用止血带 - 軍用止血帶 + 军用止血带 + 軍用止血帶 Remove Tourniquet @@ -620,8 +620,8 @@ Remover Torniquete 止血帯をはずす 지혈대 제거 - 移除军用止血带 - 移除軍用止血帶 + 移除军用止血带 + 移除軍用止血帶 Diagnose @@ -636,8 +636,8 @@ Diagnosticar 診断する 진단 - 诊断 - 診斷 + 诊断 + 診斷 Diagnosing... @@ -652,8 +652,8 @@ Diagnosticando... 診断中・・・ 진단중... - 诊断中... - 診斷中... + 诊断中... + 診斷中... CPR @@ -668,8 +668,8 @@ SBV 心肺蘇生 심폐소생술 - 心肺复苏术 - 心肺復甦術 + 心肺复苏术 + 心肺復甦術 Performing CPR... @@ -684,8 +684,8 @@ Realizando o SBV... 心肺蘇生を実行中・・・ 심폐소생중... - 进行心肺复苏术中... - 進行心肺復甦術中... + 进行心肺复苏术中... + 進行心肺復甦術中... Give Blood IV (1000ml) @@ -700,8 +700,8 @@ Administrar Sangue IV (1000ml) 血液 IV (1000ml) をあたえる IV 혈액 수혈 (1000ml) - 输血液 (1000ml) - 輸血液 (1000ml) + 输血液 (1000ml) + 輸血液 (1000ml) Give Blood IV (500ml) @@ -716,8 +716,8 @@ Administrar Sangue IV (500ml) 血液 IV (500ml) をあたえる IV 혈액 수혈 (500ml) - 输血液 (500ml) - 輸血液 (500ml) + 输血液 (500ml) + 輸血液 (500ml) Give Blood IV (250ml) @@ -732,8 +732,8 @@ Administrar Sangue IV (250ml) 血液 IV (250ml) をあたえる IV 혈액 수혈 (250ml) - 输血液 (250ml) - 輸血液 (250ml) + 输血液 (250ml) + 輸血液 (250ml) Give Plasma IV (1000ml) @@ -748,8 +748,8 @@ Administrar Plasma IV (1000ml) 血しょう IV (1000ml) をあたえる IV 혈장 수혈 (1000ml) - 输血浆 (1000ml) - 輸血漿 (1000ml) + 输血浆 (1000ml) + 輸血漿 (1000ml) Give Plasma IV (500ml) @@ -764,8 +764,8 @@ Administrar Plasma IV (500ml) 血しょう IV (500ml) をあたえる IV 혈장 수혈 (500ml) - 输血浆 (500ml) - 輸血漿 (500ml) + 输血浆 (500ml) + 輸血漿 (500ml) Give Plasma IV (250ml) @@ -780,8 +780,8 @@ Administrar Plasma IV (250ml) 血しょう IV (250ml) をあたえる IV 혈장 수혈 (250ml) - 输血浆 (250ml) - 輸血漿 (250ml) + 输血浆 (250ml) + 輸血漿 (250ml) Give Saline IV (1000ml) @@ -796,8 +796,8 @@ Administrar Soro IV (1000ml) 生理食塩水 IV (1000ml) をあたえる IV 생리식염수 수혈 (1000ml) - 注射生理食盐水 (1000ml) - 注射生理食鹽水 (1000ml) + 注射生理食盐水 (1000ml) + 注射生理食鹽水 (1000ml) Give Saline IV (500ml) @@ -812,8 +812,8 @@ Administrar Soro IV (500ml) 生理食塩水 IV (500ml) をあたえる IV 생리식염수 수혈 (500ml) - 注射生理食盐水 (500ml) - 注射生理食鹽水 (500ml) + 注射生理食盐水 (500ml) + 注射生理食鹽水 (500ml) Give Saline IV (250ml) @@ -828,8 +828,8 @@ Administrar Soro IV (250ml) 生理食塩水 IV (250ml) をあたえる IV 생리식염수 수혈 (250ml) - 注射生理食盐水 (250ml) - 注射生理食鹽水 (250ml) + 注射生理食盐水 (250ml) + 注射生理食鹽水 (250ml) Minor @@ -844,8 +844,8 @@ Leve 保留群 경미 - 轻微 - 輕微 + 轻微 + 輕微 Delayed @@ -860,8 +860,8 @@ Atrasado 待機的治療群 늦어짐 - 延后 - 延後 + 延后 + 延後 Immediate @@ -876,8 +876,8 @@ Imediato 再優先治療群 긴급 - 紧急 - 緊急 + 紧急 + 緊急 Deceased @@ -892,8 +892,8 @@ Falecido 死亡群 사망 - 死亡 - 死亡 + 死亡 + 死亡 None @@ -908,8 +908,8 @@ Nenhum なし 없음 - 未分类 - 未分類 + 未分类 + 未分類 Normal breathing @@ -924,8 +924,8 @@ Respiração normal 通常の呼吸 정상 호흡 - 呼吸正常 - 呼吸正常 + 呼吸正常 + 呼吸正常 No breathing @@ -940,8 +940,8 @@ Não respira 息をしていない 호흡 불가 - 没有呼吸 - 沒有呼吸 + 没有呼吸 + 沒有呼吸 Difficult breathing @@ -956,8 +956,8 @@ Dificuldade para respirar 呼吸が苦しそうだ 호흡 곤란 - 呼吸困难 - 呼吸困難 + 呼吸困难 + 呼吸困難 Almost no breathing @@ -972,8 +972,8 @@ Quase não respira ほとんど呼吸をしていない 호흡이 없음 - 快要没呼吸 - 快要沒呼吸 + 快要没呼吸 + 快要沒呼吸 Bleeding @@ -988,8 +988,8 @@ Sangrando 出血している 출혈 - 流血中 - 流血中 + 流血中 + 流血中 In pain @@ -1004,8 +1004,8 @@ Com dor 痛みがある 고통 - 疼痛中 - 疼痛中 + 疼痛中 + 疼痛中 Lost a lot of Blood @@ -1020,8 +1020,8 @@ Perdeu muito sangue 大量出血している 많은 양의 혈액을 잃음 - 大量失血中 - 大量失血中 + 大量失血中 + 大量失血中 Tourniquet [CAT] @@ -1036,8 +1036,8 @@ Torniquete [CAT] 止血帯 [CAT] 지혈대 [CAT] - 军用止血带 - 軍用止血帶 + 军用止血带 + 軍用止血帶 Receiving IV [%1ml] @@ -1052,8 +1052,8 @@ Recebendo IV [%1ml] IV [%1ml] を投与されている IV로 [%1ml] 수혈중 - 接收静脉注射液中 [%1ml] - 接收靜脈注射液中 [%1ml] + 接收静脉注射液中 [%1ml] + 接收靜脈注射液中 [%1ml] Bandage (Basic) @@ -1068,8 +1068,8 @@ Bandagem(Básico) 包帯 (緊急圧迫) 붕대 (기본) - 基础绷带 - 基礎繃帶 + 基础绷带 + 基礎繃帶 Used to cover a wound @@ -1084,8 +1084,8 @@ Slouží k překrytí poranění 傷口をおおう 상처를 덮을때 씁니다 - 用于覆盖伤口 - 用於覆蓋傷口 + 用于覆盖伤口 + 用於覆蓋傷口 A dressing, that is a particular material used to cover a wound, which is applied over the wound once bleeding has been stemmed. @@ -1100,8 +1100,8 @@ Obvaz je vhodným způsobem upravený sterilní materiál, určený k překrytí rány, případně k fixaci poranění. 緊急圧迫包帯は、傷口を血液凝固剤でおおうようにできていて、つかうと出血の原因を取りさります。 드레싱, 출혈을 막고서 상처를 덮기위해 쓰는 물건입니다. - 用于覆盖伤口以防止出血, 透过敷料的止血剂来让出血慢慢停止. - 用於覆蓋傷口以防止出血, 透過敷料的止血劑來讓出血慢慢停止. + 用于覆盖伤口以防止出血, 透过敷料的止血剂来让出血慢慢停止. + 用於覆蓋傷口以防止出血, 透過敷料的止血劑來讓出血慢慢停止. Packing Bandage @@ -1116,8 +1116,8 @@ Obvaz (Tlakový) 弾性包帯 거즈 붕대 - 包扎绷带 - 包紮繃帶 + 包扎绷带 + 包紮繃帶 Used to pack medium to large wounds and stem the bleeding @@ -1132,8 +1132,8 @@ Používá se k zastavení středních až silnějších krvácení 弾性包帯は粘着フィルム状で、普通から大きめなケガにつかい止血します。 중형 또는 대형 상처를 채우고 출혈을 막기위해 쓰입니다 - 用于包扎中到大型伤口, 并防止出血 - 用於包紮中到大型傷口, 並防止出血 + 用于包扎中到大型伤口, 并防止出血 + 用於包紮中到大型傷口, 並防止出血 A bandage used to pack the wound to stem bleeding and facilitate wound healing. Packing a wound is an option in large polytrauma injuries. @@ -1148,8 +1148,8 @@ Tlakový obvaz se skládá se ze sterilní krycí vrstvy, na kterou je přiložena silná vrstva savého materiálu stlačující cévu v ráně a která je přitlačována k ráně a připevněna obinadlem. Slouží k zastavení silnějších krvácení. 包帯をつかうと出血の原因を取りのぞき、それを促進させます。また大きめな多発性外傷にたいしても使えます。 출혈을 막고 상처를 치유하기 위한 붕대. 다발성외상의 경우 상처를 채우는것도 한 가지 방법입니다. - 用于包扎中到大型伤口, 并防止出血, 为在大型多处性伤口的选项之一! - 用於包紮中到大型傷口, 並防止出血, 為在大型多處性傷口的選項之一! + 用于包扎中到大型伤口, 并防止出血, 为在大型多处性伤口的选项之一! + 用於包紮中到大型傷口, 並防止出血, 為在大型多處性傷口的選項之一! Bandage (Elastic) @@ -1164,8 +1164,8 @@ Bandagem (Elástica) 包帯 (伸縮) 붕대 (압박) - 弹性绷带 - 彈性繃帶 + 弹性绷带 + 彈性繃帶 Bandage kit, Elastic @@ -1180,8 +1180,8 @@ Sada obvazů, Elastická 包帯キット (伸縮) 붕대, 압박 - 弹性绷带 - 彈性繃帶 + 弹性绷带 + 彈性繃帶 Allows an even compression and extra support to the injured area. @@ -1196,8 +1196,8 @@ Hodí se k fixačním účelům a to i v oblastech kloubů. 負傷部分へ最大の対応と止血を続けられます。 부상 부위를 골고루 압박해주면서 동시에 고정시켜 줍니다. - 可对伤口持续压迫并固定以防止伤口情况变严重. - 可對傷口持續壓迫並固定以防止傷口情況變嚴重. + 可对伤口持续压迫并固定以防止伤口情况变严重. + 可對傷口持續壓迫並固定以防止傷口情況變嚴重. Tourniquet (CAT) @@ -1212,8 +1212,8 @@ Torniquete (CAT) 止血帯 (CAT) 지혈대 [CAT] - 军用止血带 - 軍用止血帶 + 军用止血带 + 軍用止血帶 Slows down blood loss when bleeding @@ -1228,8 +1228,8 @@ Zpomaluje ztráty krve při krvácení 出血しているときに、流れ出る量をへらします。 출혈 시 혈액손실을 늦춰줍니다 - 减缓失血的速度 - 減緩失血的速度 + 减缓失血的速度 + 減緩失血的速度 A constricting device used to compress venous and arterial circulation in effect inhibiting or slowing blood flow and therefore decreasing loss of blood. @@ -1244,8 +1244,8 @@ Zařízení používané ke stlačení venózního a arteriálního oběhu. V důsledku dochází ke zpomalení toku krve a tedy i snížení ztrát krve. 止血帯は静脈や動脈へ圧力をかけ、循環を遅らせることで血液の流れをおそくし、失血を防ぎます。 정맥과 동맥을 압축시키켜 혈액순환을 억제 혹은 늦추게하여 혈액손실을 줄이는 도구입니다. - 用于压迫静脉与动脉的血液流动, 达到减缓失血速度的目的. - 用於壓迫靜脈與動脈的血液流動, 達到減緩失血速度的目的. + 用于压迫静脉与动脉的血液流动, 达到减缓失血速度的目的. + 用於壓迫靜脈與動脈的血液流動, 達到減緩失血速度的目的. Morphine autoinjector @@ -1260,8 +1260,8 @@ Auto-injetor de morfina モルヒネ 모르핀 자동주사기 - 吗啡自动注射器 - 嗎啡自動注射器 + 吗啡自动注射器 + 嗎啡自動注射器 Used to combat moderate to severe pain experiences @@ -1276,8 +1276,8 @@ Slouží k tlumení středně těžkých a těžkých bolestí 戦闘が収まったとき、痛みにたいしてつかいます。 심한 통증을 완화하는데 쓰입니다 - 减低中度至重度的疼痛感 - 減低中度至重度的疼痛感 + 减低中度至重度的疼痛感 + 減低中度至重度的疼痛感 An analgesic used to combat moderate to severe pain experiences. @@ -1292,8 +1292,8 @@ Analgetikum slouží k tlumení středně těžkých a těžkých bolestí 戦闘が収まったとき、モルヒネを痛みにたいしてつかいます。 심한 통증을 완화하기 위해 쓰이는 진통제입니다. - 止痛药的一种, 用于减低中度至重度的疼痛感. - 止痛藥的一種, 用於減低中度至重度的疼痛感. + 止痛药的一种, 用于减低中度至重度的疼痛感. + 止痛藥的一種, 用於減低中度至重度的疼痛感. Adenosine autoinjector @@ -1307,8 +1307,8 @@ Аденозин в пневмошприце アデノシン 아데노신 자동주사기 - 腺苷自动注射器 - 腺苷自動注射器 + 腺苷自动注射器 + 腺苷自動注射器 Used to counter effects of Epinephrine @@ -1322,8 +1322,8 @@ Используется для купирования эффектов адреналина アドレナリンの反対の効果としてつかいます。 에피네프린 대응책으로 쓰입니다 - 用来对付肾上腺素的影响 - 用來對付腎上腺素的影響 + 用来对付肾上腺素的影响 + 用來對付腎上腺素的影響 A drug used to counter the effects of Epinephrine @@ -1337,8 +1337,8 @@ Препарат используется для купирования эффектов адреналина つかうと、アドレナリンと反対の効果がでます。 에피네프린에 대응용으로 쓰이는 약품 - 一种药物用于减低肾上腺素的效果 - 一種藥物用於減低腎上腺素的效果 + 一种药物用于减低肾上腺素的效果 + 一種藥物用於減低腎上腺素的效果 Atropine autoinjector @@ -1353,8 +1353,8 @@ Auto-injetor de Atropina アトロピン 아트로핀 자동주사기 - 阿托品自动注射器 - 阿托品自動注射器 + 阿托品自动注射器 + 阿托品自動注射器 Used in NBC scenarios @@ -1369,8 +1369,8 @@ Používá se v přítomnosti nervových plynů 核・生物・化学兵器がつかわれている条件下にてつかいます。 핵,생물,화학 상황에 쓰입니다 - 使用于核生化污染的情况 - 使用於核生化汙染的情況 + 使用于核生化污染的情况 + 使用於核生化汙染的情況 A drug used by the Military in NBC scenarios. @@ -1385,8 +1385,8 @@ Atropin slouží jako protijed na otravu organofosfátovými insekticidy (diazinon) a nervovými plyny. 核・生物・化学兵器がつかわれている条件下にてつかいます。 핵,생물,화학 상황에 쓰이는 군용 약품 - 军用神经解毒针, 用来应付核生化污染的情况. - 軍用神經解毒針, 用來應付核生化汙染的情況. + 军用神经解毒针, 用来应付核生化污染的情况. + 軍用神經解毒針, 用來應付核生化汙染的情況. Epinephrine autoinjector @@ -1401,8 +1401,8 @@ Auto-injetor de epinefrina アドレナリン 에피네프린 자동주사기 - 肾上腺素自动注射器 - 腎上腺素自動注射器 + 肾上腺素自动注射器 + 腎上腺素自動注射器 Increase heart rate and counter effects given by allergic reactions @@ -1417,8 +1417,8 @@ Zvyšuje srdeční frekvenci a chrání před alergickými reakcemi 心拍数を増加させたり、アレルギー反応を収める効果もあります。 심박수를 높이며 알러지반응의 대응책입니다 - 增加心跳速率的一种药物 - 增加心跳速率的一種藥物 + 增加心跳速率的一种药物 + 增加心跳速率的一種藥物 A drug that works on a sympathetic response to dilate the bronchi, increase heart rate and counter such effects given by allergic reactions (anaphylaxis). Used in sudden cardiac arrest scenarios with decreasing positive outcomes. @@ -1433,8 +1433,8 @@ Zúžení periferních cév díky působení na alfa receptory a následné kontrakci hladkých svalů, tím dochází k tzv. centralizaci oběhu, krev se soustřeďuje v životně důležitých centrálních orgánech (srdce, mozek, plíce), působí také pozitivně na srdeční činnost a dochází ke zvýšení krevního tlaku a tepu. Dále se používá při náhlé srdeční zástavě. 薬は気管支を拡張するよう交感神経を拡張させ、心拍数を増加させます。それにアレルギー反応を収める効果もあります(アナフィラキシー ショック)。得られる効果は少ないですが、心停止している場合などにつかわれます。 기관지를 확장시키는 교감 신경 반응을 이끌어내는 약물로써, 심박을 높이고 알러지 효과에 대응합니다(아나필락시스). 심폐가 정지하는 경우 호전이 되지않을때 사용합니다. - 俗称强心针, 为一种支气管扩张药物, 会增加心跳速率并减缓过敏反应(过敏性休克), 在心跳骤停时有恢复心跳的效果! - 俗稱強心針, 為一種支氣管擴張藥物, 會增加心跳速率並減緩過敏反應(過敏性休克), 在心跳驟停時有恢復心跳的效果! + 俗称强心针, 为一种支气管扩张药物, 会增加心跳速率并减缓过敏反应(过敏性休克), 在心跳骤停时有恢复心跳的效果! + 俗稱強心針, 為一種支氣管擴張藥物, 會增加心跳速率並減緩過敏反應(過敏性休克), 在心跳驟停時有恢復心跳的效果! Plasma IV (1000ml) @@ -1449,8 +1449,8 @@ Krevní plazma (1000ml) 血しょう IV (1000ml) 혈장 IV (250ml) - 血浆 (1000ml) - 血漿 (1000ml) + 血浆 (1000ml) + 血漿 (1000ml) A volume-expanding blood supplement. @@ -1465,8 +1465,8 @@ Intravenózně podávaný doplněk k zvětšení objemu krve 血液量を増加させる補助です。 혈액량을 늘리기위한 보조수단 입니다. - 可快速得到血液补充 - 可快速得到血液補充 + 可快速得到血液补充 + 可快速得到血液補充 A volume-expanding blood supplement. @@ -1481,8 +1481,8 @@ Intravenózně podávaný doplněk k zvětšení objemu krve 血液量を増加させる補助です。 혈액량을 늘리기위한 보조수단 입니다. - 可快速得到血液补充 - 可快速得到血液補充 + 可快速得到血液补充 + 可快速得到血液補充 Plasma IV (500ml) @@ -1497,8 +1497,8 @@ Krevní plazma (500ml) 血しょう IV (500ml) 혈장 IV (500ml) - 血浆 (500ml) - 血漿 (500ml) + 血浆 (500ml) + 血漿 (500ml) Plasma IV (250ml) @@ -1513,8 +1513,8 @@ Krevní plazma (250ml) 血しょう IV (250ml) 혈장 IV (250ml) - 血浆 (250ml) - 血漿 (250ml) + 血浆 (250ml) + 血漿 (250ml) Blood IV (1000ml) @@ -1529,8 +1529,8 @@ Krevní transfúze (1000ml) 血液 IV (1000ml) 혈액 IV (1000ml) - 血液 (1000ml) - 血液 (1000ml) + 血液 (1000ml) + 血液 (1000ml) Blood IV, for restoring a patients blood (keep cold) @@ -1545,8 +1545,8 @@ Krevní transfuze pro doplnění pacientovi krve (skladujte v chladu) 血液 IV は、患者へ血液を補給します。(要低温保存) 혈액 IV, 환자에게 혈액을 공급합니다. (차갑게 할것) - 血液, 用于补充伤者流失的血液 (需冷藏) - 血液, 用於補充傷者流失的血液 (需冷藏) + 血液, 用于补充伤者流失的血液 (需冷藏) + 血液, 用於補充傷者流失的血液 (需冷藏) O Negative infusion blood used in strict and rare events to replenish blood supply usually conducted in the transport phase of medical care. @@ -1561,8 +1561,8 @@ 0 Rh negativní krev se používá v vzácných případech k doplnění pacientovy hladiny krve, obvykle při převozu zraněné osoby do nemocnice. O 型への輸血はまれで厳格であり、通常は治療のための輸送段階で輸血をおこないます。 O- 형 혈액 투여는 매우 엄격하고 드문 혈액보급의 경우에 쓰이는데 주로 치료의 운송단계에서 사용됩니다. - O型负值注射用血液, 在紧急情况时使用, 用于补充伤者流失的血液 - O型負值注射用血液, 在緊急情況時使用, 用於補充傷者流失的血液 + O型负值注射用血液, 在紧急情况时使用, 用于补充伤者流失的血液 + O型負值注射用血液, 在緊急情況時使用, 用於補充傷者流失的血液 Blood IV (500ml) @@ -1577,8 +1577,8 @@ Krevní transfúze (500ml) 血液 IV (500ml) 혈액 IV (500ml) - 血液 (500ml) - 血液 (500ml) + 血液 (500ml) + 血液 (500ml) Blood IV (250ml) @@ -1593,8 +1593,8 @@ Krevní transfúze (250ml) 血液 IV (250ml) 혈액 IV (250ml) - 血液 (250ml) - 血液 (250ml) + 血液 (250ml) + 血液 (250ml) Saline IV (1000ml) @@ -1609,8 +1609,8 @@ Fyziologický roztok (1000ml) 生理食塩水 IV (1000ml) 생리식염수 IV (1000ml) - 生理食盐水 (1000ml) - 生理食鹽水 (1000ml) + 生理食盐水 (1000ml) + 生理食鹽水 (1000ml) Saline IV, for restoring a patients blood @@ -1625,8 +1625,8 @@ Fyziologický roztok se aplikuje intravenózně a slouží k obnově pacientovi krve 生理食塩水 IV は、患者の血液量を補助します 생리식염수, 환자의 혈액량을 보충할때 쓰입니다 - 生理食盐水, 用于恢复伤者血液 - 生理食鹽水, 用於恢復傷者血液 + 生理食盐水, 用于恢复伤者血液 + 生理食鹽水, 用於恢復傷者血液 A medical volume-replenishing agent introduced into the blood system through an IV infusion. @@ -1641,8 +1641,8 @@ Fyziologický roztok se využívá nejčastěji jako infuze při dehydrataci organismu. 生理食塩水 IV を静脈へ投与し、血液量を増加させることができます。 혈류에 IV로 투여되는 의료 용적 대체 요법 - 利用静脉注射进入人体血液系统, 帮助伤者血液恢复 - 利用靜脈注射進入人體血液系統, 幫助傷者血液恢復 + 利用静脉注射进入人体血液系统, 帮助伤者血液恢复 + 利用靜脈注射進入人體血液系統, 幫助傷者血液恢復 Saline IV (500ml) @@ -1657,8 +1657,8 @@ Fyziologický roztok (500ml) 生理食塩水 IV (500ml) 생리식염수 IV (500ml) - 生理食盐水 (500ml) - 生理食鹽水 (500ml) + 生理食盐水 (500ml) + 生理食鹽水 (500ml) Saline IV (250ml) @@ -1673,8 +1673,8 @@ Fyziologický roztok (250ml) 生理食塩水 IV (250ml) 생리식염수 IV (250ml) - 生理食盐水 (250ml) - 生理食鹽水 (250ml) + 生理食盐水 (250ml) + 生理食鹽水 (250ml) Basic Field Dressing (QuikClot) @@ -1689,8 +1689,8 @@ Hemostatický obvaz (QuikClot) 緊急圧迫止血包帯 (クイッククロット) 필드 드레싱 (퀵 클롯) - 基本战地包扎 (止血粉) - 基本戰地包紮 (止血粉) + 基本战地包扎 (止血粉) + 基本戰地包紮 (止血粉) QuikClot bandage @@ -1705,8 +1705,8 @@ Hemostatický obvaz (QuikClot) クイッククロット 퀵 클롯 붕대 - 止血粉绷带 - 止血粉繃帶 + 止血粉绷带 + 止血粉繃帶 Hemostatic bandage with coagulant that stops bleeding. @@ -1721,8 +1721,8 @@ Hemostatický obvaz určený k zástavě krvácení 血液凝固剤をふくむ包帯により、止血できます。 지혈시 사용하는 붕대로 혈액 응고제를 포함하고있습니다. - 包含止血粉成分的止血绷带, 可用于止血 - 包含止血粉成分的止血繃帶, 可用於止血 + 包含止血粉成分的止血绷带, 可用于止血 + 包含止血粉成分的止血繃帶, 可用於止血 Personal Aid Kit @@ -1737,8 +1737,8 @@ Osobní lékárnička (PAK) 応急処置キット 개인응급키트 - 个人急救包 - 個人急救包 + 个人急救包 + 個人急救包 Includes various treatment kit needed for stitching or advanced treatment @@ -1753,8 +1753,8 @@ Osobní lékárnička obsahuje zdravotnický materiál umožňující šití a pokročilejší ošetřování raněných 縫合や高度な処置に必要とされる、さまざまな治療器具が含まれています。 봉합및 고급 조치에 필요한 다양한 치료 도구가 있습니다. - 包含各种医疗套件, 以及进阶伤口系统需要的缝合用品. - 包含各種醫療套件, 以及進階傷口系統需要的縫合用品. + 包含各种医疗套件, 以及进阶伤口系统需要的缝合用品. + 包含各種醫療套件, 以及進階傷口系統需要的縫合用品. Personal Aid Kit for in field stitching or advanced treatment @@ -1769,8 +1769,8 @@ Pronto soccorso personale da campo per mettersi i punti o per trattamenti avanzati. 戦場で縫合や高度な処置に必要とされる、さまざまな治療器具が含まれています。 야전에서 봉합및 고급 조치를 위한 개인응급키트 - 个人急救包可用于战地缝合手术或进阶伤口系统使用. - 個人急救包可用於戰地縫合手術或進階傷口系統使用. + 个人急救包可用于战地缝合手术或进阶伤口系统使用. + 個人急救包可用於戰地縫合手術或進階傷口系統使用. Use Personal Aid Kit @@ -1785,8 +1785,8 @@ Usa il pronto soccorso personale 応急処置キットをつかう 개인 응급 키트사용하기 - 使用个人急救包 - 使用個人急救包 + 使用个人急救包 + 使用個人急救包 Surgical Kit @@ -1801,8 +1801,8 @@ Chirurgická sada 縫合キット 봉합 키트 - 手术包 - 手術包 + 手术包 + 手術包 Surgical Kit for in field advanced medical treatment @@ -1817,8 +1817,8 @@ Chirurgická sada určená k pokročilejším zdravotnickým zákrokům v poli 縫合キットは戦場で高度な処置をするためにつかわれます。 야전 상황에서 고급 의료 처치를 위해 사용되는 봉합 키트 - 用于在战场上为伤口进行缝合(需要开启进阶伤口系统). - 用於在戰場上為傷口進行縫合(需要開啟進階傷口系統). + 用于在战场上为伤口进行缝合(需要开启进阶伤口系统). + 用於在戰場上為傷口進行縫合(需要開啟進階傷口系統). Surgical Kit for in field advanced medical treatment @@ -1833,8 +1833,8 @@ Chirurgická sada určená k pokročilejším zdravotnickým zákrokům v poli 縫合キットは戦場で高度な処置をするためにつかわれます。 야전 상황에서 고급 의료 처치를 위해 사용되는 봉합 키트 - 用于在战场上为伤口进行缝合(需要开启进阶伤口系统). - 用於在戰場上為傷口進行縫合(需要開啟進階傷口系統). + 用于在战场上为伤口进行缝合(需要开启进阶伤口系统). + 用於在戰場上為傷口進行縫合(需要開啟進階傷口系統). Use Surgical Kit @@ -1849,8 +1849,8 @@ Usar kit cirúrgico 縫合キットをつかう 봉합키트 사용하기 - 使用手术包 - 使用手術包 + 使用手术包 + 使用手術包 Bodybag @@ -1865,8 +1865,8 @@ Pytel na mrtvoly 死体袋 시체 가방 - 尸袋 - 屍袋 + 尸袋 + 屍袋 A bodybag for dead bodies @@ -1881,8 +1881,8 @@ Pytel na mrtvoly 死体袋は死体を入れるためにつかいます 시체를 운반할때 쓰는 가방입니다 - 用来装尸体用 - 用來裝屍體用 + 用来装尸体用 + 用來裝屍體用 A bodybag for dead bodies @@ -1897,8 +1897,8 @@ Pytel na mrtvoly 死体袋は死体を入れるためにつかいます 시체를 운반할때 쓰는 가방입니다 - 用来装尸体用 - 用來裝屍體用 + 用来装尸体用 + 用來裝屍體用 Blood Pressure @@ -1913,8 +1913,8 @@ Krevní tlak 血圧を測る 혈압 - 血压 - 血壓 + 血压 + 血壓 Checking Blood Pressure.. @@ -1929,8 +1929,8 @@ Měřím krevní tlak... 血圧を測定中・・・ 혈압 측정증... - 检查血压中... - 檢查血壓中... + 检查血压中... + 檢查血壓中... %1 checked Blood Pressure: %2 @@ -1945,8 +1945,8 @@ %1 verificou pressão arterial: %2 %1 が測った血圧は: %2 %1 (이)가 혈압을 측정했습니다: %2 - 已由%1确认血压: %2 - 已由%1確認血壓: %2 + 已由%1确认血压: %2 + 已由%1確認血壓: %2 You checked %1 @@ -1961,8 +1961,8 @@ Zkontroloval jsi %1 自分の血圧は %1 나의 혈압은 %1 이다 - 你已经检查 %1 - 你已經檢查 %1 + 你已经检查 %1 + 你已經檢查 %1 You find a blood pressure of %2/%3 @@ -1977,8 +1977,8 @@ Naměřil si krevní tlak u %2/%3 血圧は %2/%3 혈압이 %2/%3 이다 - 血压为%2/%3 - 血壓為%2/%3 + 血压为%2/%3 + 血壓為%2/%3 You find a low blood pressure @@ -1993,8 +1993,8 @@ Naměřil si nízký krevní tlak 血圧はかなり低い 혈압이 매우 낮다 - 发现到低血压 - 發現到低血壓 + 发现到低血压 + 發現到低血壓 You find a normal blood pressure @@ -2009,8 +2009,8 @@ Naměřil si normální krevní tlak 血圧は通常 혈압이 정상이다 - 发现到正常血压 - 發現到正常血壓 + 发现到正常血压 + 發現到正常血壓 You find a high blood pressure @@ -2025,8 +2025,8 @@ Naměřil si vysoký krevní tlak 血圧はかなり高い 혈압이 매우 높다 - 发现到高血压 - 發現到高血壓 + 发现到高血压 + 發現到高血壓 You find no blood pressure @@ -2041,8 +2041,8 @@ Nenaměřil si žádný krevní tlak 血圧は測れなかった 혈압이 잡히지 않는다 - 量不到血压 - 量不到血壓 + 量不到血压 + 量不到血壓 You fail to find a blood pressure @@ -2057,8 +2057,8 @@ Nedokázal si změřit krevní tlak 血圧を測るのに失敗 혈압을 잡을 수 없었다 - 检查血压的动作失败 - 檢查血壓的動作失敗 + 检查血压的动作失败 + 檢查血壓的動作失敗 Low @@ -2073,8 +2073,8 @@ Baixa 低い 낮음 - - + + Normal @@ -2089,8 +2089,8 @@ Normal 通常 보통 - 正常 - 正常 + 正常 + 正常 High @@ -2105,8 +2105,8 @@ Alta 高い 높음 - - + + No Blood Pressure @@ -2121,8 +2121,8 @@ Sem pressão arterial 血圧なし 혈압 없음 - 无血压 - 無血壓 + 无血压 + 無血壓 Pulse @@ -2137,8 +2137,8 @@ Puls 心拍数 맥박 - 脉搏 - 脈搏 + 脉搏 + 脈搏 Checking Heart Rate... @@ -2153,8 +2153,8 @@ Kontroluji srdeční tep... 心拍数を測定中・・・ 맥박 확인중... - 检查心跳中... - 檢查心跳中... + 检查心跳中... + 檢查心跳中... You checked %1 @@ -2169,8 +2169,8 @@ Zkontroloval si %1 心拍数は %1 나의 맥박은 %1 이다 - 你已经检查 %1 - 你已經檢查 %1 + 你已经检查 %1 + 你已經檢查 %1 %1 checked Heart Rate: %2 @@ -2185,8 +2185,8 @@ %1 verificou a frequência cardíaca: %2 %1 が測った心拍数は: %2 %1 (이)가 맥박을 측정했습니다: %2 - 已由%1确认心跳: %2 - 已由%1確認心跳: %2 + 已由%1确认心跳: %2 + 已由%1確認心跳: %2 None @@ -2201,8 +2201,8 @@ Niente なし 없음 - - + + Weak @@ -2217,8 +2217,8 @@ Fraca 弱い 약함 - 微弱 - 微弱 + 微弱 + 微弱 Normal @@ -2233,8 +2233,8 @@ Normal 通常 보통 - 正常 - 正常 + 正常 + 正常 Strong @@ -2249,8 +2249,8 @@ Forte 強い 강함 - 过快 - 過快 + 过快 + 過快 You find a Heart Rate of %2 @@ -2265,8 +2265,8 @@ Nahmatal jsi srdeční tep u %2 心拍数は %2 맥박이 %2 이다 - 心跳为%2 - 心跳為%2 + 心跳为%2 + 心跳為%2 You find a weak Heart Rate @@ -2281,8 +2281,8 @@ Nahmatal si slabý srdeční puls 自分の心拍数は低い 약한 맥박이다 - 心跳微弱 - 心跳微弱 + 心跳微弱 + 心跳微弱 You find a strong Heart Rate @@ -2297,8 +2297,8 @@ Nahmatal si silný srdeční puls 自分の心拍数は強い 강한 맥박이다 - 心跳过快 - 心跳過快 + 心跳过快 + 心跳過快 You find a normal Heart Rate @@ -2313,8 +2313,8 @@ Nahmatal si normální srdeční puls 自分の心拍数は通常 보통 맥박이다 - 心跳正常 - 心跳正常 + 心跳正常 + 心跳正常 You find no Heart Rate @@ -2329,8 +2329,8 @@ Žádný puls 心拍数を測れなかった 맥박을 찾을 수가 없다 - 量不到心跳 - 量不到心跳 + 量不到心跳 + 量不到心跳 Response @@ -2345,8 +2345,8 @@ Odezva 反応を見る 반응 - 反应 - 反應 + 反应 + 反應 You check response of patient @@ -2361,8 +2361,8 @@ Zkontroloval jsi reakci pacienta 患者からの反応をみる 대상의 반응 확인중 - 检查伤者的反应 - 檢查傷者的反應 + 检查伤者的反应 + 檢查傷者的反應 %1 is responsive @@ -2377,8 +2377,8 @@ %1 odpovídá %1 は反応あり %1 은 반응이있다 - %1 有反应 - %1 有反應 + %1 有反应 + %1 有反應 %1 is not responsive @@ -2393,8 +2393,8 @@ %1 neodpovídá %1 の反応なし %1 은 반응이없다 - %1 没有反应 - %1 沒有反應 + %1 没有反应 + %1 沒有反應 You checked %1 @@ -2409,8 +2409,8 @@ Zkontroloval jsi %1 %1 を見た %1 을 확인함 - 你已经检查 %1 - 你已經檢查 %1 + 你已经检查 %1 + 你已經檢查 %1 Patient %1<br/>is %2.<br/>%3.<br/>%4 @@ -2425,8 +2425,8 @@ Paciente %1<br/>é %2.<br/>%3.<br/>%4 痛み %1<br/>は %2.<br/>%3.<br/>%4 환자 %1<br/>는 %2.<br/>%3.<br/>%4 - 伤者 %1<br/>is %2.<br/>%3.<br/>%4 - 傷者 %1<br/>is %2.<br/>%3.<br/>%4 + 伤者 %1<br/>is %2.<br/>%3.<br/>%4 + 傷者 %1<br/>is %2.<br/>%3.<br/>%4 alive @@ -2441,8 +2441,8 @@ vivo 生存 생존 - 活着 - 活著 + 活着 + 活著 dead @@ -2457,8 +2457,8 @@ morto 死亡 사망 - 死亡 - 死亡 + 死亡 + 死亡 He's lost some blood @@ -2473,8 +2473,8 @@ Ele perdeu um pouco de sangue 彼は出血している 적은 양의 피를 잃었다 - 他流失一些血液 - 他流失一些血液 + 他流失一些血液 + 他流失一些血液 He's lost a lot of blood @@ -2489,8 +2489,8 @@ Ha perso molto sangue 彼は大量出血している 많은 양의 피를 잃었다 - 他流失大量血液 - 他流失大量血液 + 他流失大量血液 + 他流失大量血液 He hasn't lost blood @@ -2505,8 +2505,8 @@ Ele não perdeu sangue 彼は出血していない 피를 잃지 않았다 - 他并没有失血 - 他並沒有失血 + 他并没有失血 + 他並沒有失血 He is in pain @@ -2521,8 +2521,8 @@ Ele está com dor 彼には痛みがあるようだ 통증이 있다 - 他感到疼痛 - 他感到疼痛 + 他感到疼痛 + 他感到疼痛 He is not in pain @@ -2537,8 +2537,8 @@ Ele não está com dor 彼には痛みがないようだ 통증이 없다 - 他不会疼痛 - 他不會疼痛 + 他不会疼痛 + 他不會疼痛 Bandaged @@ -2553,8 +2553,8 @@ Obvázaný 包帯 붕대 감음 - 绷带 - 繃帶 + 绷带 + 繃帶 You bandage %1 (%2) @@ -2569,8 +2569,8 @@ Obvazuješ %1 (%2) %1 (%2) 包帯をつかった %1 (%2) 붕대를 감았다 - 你正在对 %1 (%2) 包扎绷带中 - 你正在對 %1 (%2) 包紮繃帶中 + 你正在对 %1 (%2) 包扎绷带中 + 你正在對 %1 (%2) 包紮繃帶中 %1 is bandaging you @@ -2585,8 +2585,8 @@ %1 tě obvazuje %1 は自分に包帯を巻いている %1 (이)가 나에게 붕대를 감고있다 - %1 正在对你包扎绷带中 - %1 正在對你包紮繃帶中 + %1 正在对你包扎绷带中 + %1 正在對你包紮繃帶中 You start stitching injuries from %1 (%2) @@ -2601,8 +2601,8 @@ Zašíváš rány %1 (%2) あなたは %1 (%2) の外傷へ縫合をはじめた 나는 %1(%2) 상처로부터 봉합을 시작했다 - 你正开始对 %1 (%2) 缝合伤口中 - 你正開始對 %1 (%2) 縫合傷口中 + 你正开始对 %1 (%2) 缝合伤口中 + 你正開始對 %1 (%2) 縫合傷口中 Stitching @@ -2617,8 +2617,8 @@ Šití 縫合 붕합중 - 缝合中 - 縫合中 + 缝合中 + 縫合中 You treat the airway of %1 @@ -2633,8 +2633,8 @@ Ošetřuješ dýchací cesty %1 %1 の気道を診断する %1의 기도를 확보했다 - 你治疗 %1 的呼吸道 - 你治療 %1 的呼吸道 + 你治疗 %1 的呼吸道 + 你治療 %1 的呼吸道 Airway @@ -2649,8 +2649,8 @@ Dýchací cesty 気道 기도 - 呼吸道 - 呼吸道 + 呼吸道 + 呼吸道 %1 is treating your airway @@ -2665,8 +2665,8 @@ %1 ošetřuje tvoje dýchací cesty %1 はあなたの気道を見ている %1 (이)가 나의 기도를 확보중이다 - %1 正在治疗你的呼吸道 - %1 正在治療你的呼吸道 + %1 正在治疗你的呼吸道 + %1 正在治療你的呼吸道 Drag @@ -2681,8 +2681,8 @@ Trascina 引きずる 끌다 - 拖拉 - 拖拉 + 拖拉 + 拖拉 Carry @@ -2697,8 +2697,8 @@ Trasporta 運ぶ 업다 - 背起 - 背起 + 背起 + 背起 Release @@ -2713,8 +2713,8 @@ Rrilascia 離す 내려놓기 - 放下 - 放下 + 放下 + 放下 Load Patient Into @@ -2729,8 +2729,8 @@ Carica paziente nel 患者を載せる 환자 싣기 - 将伤者放入 - 將傷者放入 + 将伤者放入 + 將傷者放入 Unload Patient @@ -2745,8 +2745,8 @@ Scarica il paziente 患者を降ろす 환자 내리기 - 将伤者背出 - 將傷者背出 + 将伤者背出 + 將傷者背出 Unload patient @@ -2761,8 +2761,8 @@ Vyložit pacienta 患者を降ろす 환자 내리기 - 将伤者背出 - 將傷者背出 + 将伤者背出 + 將傷者背出 Load patient @@ -2777,8 +2777,8 @@ Naložit pacienta 患者を載せる 환자 싣기 - 将伤者放入 - 將傷者放入 + 将伤者放入 + 將傷者放入 Place body in bodybag @@ -2793,8 +2793,8 @@ Umístni tělo do pytle na mrtvoly 死体袋に入れる 시체 가방에 담기 - 将尸体放入尸袋 - 將屍體放入屍袋 + 将尸体放入尸袋 + 將屍體放入屍袋 Placing body in bodybag... @@ -2809,8 +2809,8 @@ Umístňuji tělo do pytle na mrtvoly... 死体袋へ梱包中・・・ 시체 가방에 담는중... - 将尸体放入尸袋中... - 將屍體放入屍袋中... + 将尸体放入尸袋中... + 將屍體放入屍袋中... %1 has bandaged patient @@ -2825,8 +2825,8 @@ %1 již obvázal pacienta %1 は包帯を巻いた %1 (이)가 붕대를 감아줬다 - %1 已包扎伤者 - %1 已包紮傷者 + %1 已包扎伤者 + %1 已包紮傷者 %1 performed CPR @@ -2840,8 +2840,8 @@ %1 à fait une RCP %1 は心肺蘇生をした %1 (이)가 심폐소생술을 실시했다 - %1 已执行心肺复苏术 - %1 已執行心肺復甦術 + %1 已执行心肺复苏术 + %1 已執行心肺復甦術 %1 used %2 @@ -2856,8 +2856,8 @@ %1 použil %2 %1 は %2 をつかった %1 (이)가 %2 을 썼다 - %1 已使用 %2 - %1 已使用 %2 + %1 已使用 %2 + %1 已使用 %2 %1 has given an IV @@ -2872,8 +2872,8 @@ %1 již aplikoval IV %1 は IV を与えた %1 (이)가 IV를 실시했다 - %1 已经给予静脉注射液 - %1 已經給予靜脈注射液 + %1 已经给予静脉注射液 + %1 已經給予靜脈注射液 %1 applied a tourniquet @@ -2888,8 +2888,8 @@ %1 použil škrtidlo %1 は止血帯を巻いた %1 (이)가 지혈대를 적용했다 - %1 已经绑上止血带 - %1 已經綁上止血帶 + %1 已经绑上止血带 + %1 已經綁上止血帶 %1 used Personal Aid Kit @@ -2903,8 +2903,8 @@ %1 a utilisé une trousse %1 は応急処置キットをつかった %1 (이)가 개인응급키트를 사용했다 - %1 已使用了个人急救包 - %1 已使用了個人急救包 + %1 已使用了个人急救包 + %1 已使用了個人急救包 Heavily wounded @@ -2919,8 +2919,8 @@ Gravemente ferido 重傷 중상 - 重伤 - 重傷 + 重伤 + 重傷 Lightly wounded @@ -2935,8 +2935,8 @@ Levemente ferido 軽傷 경상 - 轻伤 - 輕傷 + 轻伤 + 輕傷 Very lightly wounded @@ -2951,8 +2951,8 @@ Muito levemente ferido かなり浅い傷 매우 가벼운 부상 - 小伤 - 小傷 + 小伤 + 小傷 Head @@ -2967,8 +2967,8 @@ Cabeça 頭部 머리 - 头部 - 頭部 + 头部 + 頭部 Torso @@ -2983,8 +2983,8 @@ Torso 胴体 몸통 - 身体 - 身體 + 身体 + 身體 Left Arm @@ -2999,8 +2999,8 @@ Braço Esquerdo 左腕 왼쪽 팔 - 左手 - 左手 + 左手 + 左手 Right Arm @@ -3015,8 +3015,8 @@ Braço Direito 右腕 오른쪽 팔 - 右手 - 右手 + 右手 + 右手 Left Leg @@ -3031,8 +3031,8 @@ Perna Esquerda 左足 왼쪽 다리 - 左脚 - 左腳 + 左脚 + 左腳 Right Leg @@ -3047,8 +3047,8 @@ Perna Direita 右足 오른쪽 다리 - 右脚 - 右腳 + 右脚 + 右腳 Heal fully bandaged hitpoints @@ -3062,8 +3062,8 @@ Heilt vollständig bandagierte Trefferpunkte 包帯は体力を完全に回復する 붕대를 감은후 체력을 회복함 - 完全医疗包扎的部位至痊愈 - 完全醫療包紮的部位至痊癒 + 完全医疗包扎的部位至痊愈 + 完全醫療包紮的部位至痊癒 Pain is only temporarily suppressed @@ -3078,8 +3078,8 @@ Dolore è soppresso solo temporaneamente 痛みは一時的な影響 고통은 일시적으로만 회복가능 - 疼痛只会暂时性压制 - 疼痛只會暫時性壓制 + 疼痛只会暂时性压制 + 疼痛只會暫時性壓制 Pain Effect Type @@ -3094,8 +3094,8 @@ Typ bolesti - efekt 痛みの種類 고통 효과 종류 - 疼痛效果类型 - 疼痛效果類型 + 疼痛效果类型 + 疼痛效果類型 Colour Flashing @@ -3110,8 +3110,8 @@ Blikající barva 色の点滅 색 반짝임 - 闪烁颜色 - 閃爍顏色 + 闪烁颜色 + 閃爍顏色 Chromatic Aberration @@ -3126,8 +3126,8 @@ Aberração Cromática 色の収差 색수차 - 色差 - 色差 + 色差 + 色差 Style of menu (Medical) @@ -3142,8 +3142,8 @@ Stile del menù (medico) メニューの表示形式 (治療) 메뉴의 스타일 (의료) - 选单样式 (医疗) - 選單樣式 (醫療) + 选单样式 (医疗) + 選單樣式 (醫療) Select the type of menu you prefer; default 3d selections or radial. @@ -3158,8 +3158,8 @@ Seleziona il tipo di menù che preferisci: selezione (3D), radiale o disabilitata. 好みに応じてメニューの表示形式を選んでください。標準では 3D 選択か円状です。 선호하는 종류의 메뉴를 고르세요; 기본 3d 선택형 혹은 다이얼형 - 选择你喜欢的选单样式; 预设为3D选项或放射状 - 選擇你喜歡的選單樣式; 預設為3D選項或放射狀 + 选择你喜欢的选单样式; 预设为3D选项或放射状 + 選擇你喜歡的選單樣式; 預設為3D選項或放射狀 Selections (3d) @@ -3174,8 +3174,8 @@ Selezione (3D) 選択 (3d) 선택 (3d) - 选择 (3D) - 選擇 (3D) + 选择 (3D) + 選擇 (3D) Radial @@ -3190,8 +3190,8 @@ Radiale 円状 다이얼형 - 放射状 - 放射狀 + 放射状 + 放射狀 Scrape @@ -3206,8 +3206,8 @@ Odřenina 擦り傷 찰과상 - 擦伤 - 擦傷 + 擦伤 + 擦傷 Minor Scrape @@ -3222,8 +3222,8 @@ Malá odřenina 小さな擦り傷 소형 찰과상 - 小擦伤 - 小擦傷 + 小擦伤 + 小擦傷 Medium Scrape @@ -3238,8 +3238,8 @@ Středně velká odřenina 中くらいの擦り傷 중형 찰과상 - 中擦伤 - 中擦傷 + 中擦伤 + 中擦傷 Large Scrape @@ -3254,8 +3254,8 @@ Velká odřenina 大きな擦り傷 대형 찰과상 - 大擦伤 - 大擦傷 + 大擦伤 + 大擦傷 Avulsion @@ -3270,8 +3270,8 @@ Avulze 剥離傷 열상 - 撕脱伤 - 撕脫傷 + 撕脱伤 + 撕脫傷 Minor Avulsion @@ -3286,8 +3286,8 @@ Malá avulze 小さな剥離傷 소형 열상 - 小撕脱伤 - 小撕脫傷 + 小撕脱伤 + 小撕脫傷 Medium Avulsion @@ -3302,8 +3302,8 @@ Střední avulze 中くらいの剥離傷 중형 열상 - 中撕脱伤 - 中撕脫傷 + 中撕脱伤 + 中撕脫傷 Large Avulsion @@ -3318,8 +3318,8 @@ Velká avulze 大きな剥離傷 대형 열상 - 大撕脱伤 - 大撕脫傷 + 大撕脱伤 + 大撕脫傷 Bruise @@ -3334,8 +3334,8 @@ Modřina 打ち傷 타박상 - 挫伤 - 挫傷 + 挫伤 + 挫傷 Minor Bruise @@ -3350,8 +3350,8 @@ Malá modřina 小さな打ち傷 소형 타박상 - 小挫伤 - 小挫傷 + 小挫伤 + 小挫傷 Medium Bruise @@ -3366,8 +3366,8 @@ Středně velká modřina 中くらいの打ち傷 중형 타박상 - 中挫伤 - 中挫傷 + 中挫伤 + 中挫傷 Large Bruise @@ -3382,8 +3382,8 @@ Velká modřina 大きな打撲傷 대형 타박상 - 大挫伤 - 大挫傷 + 大挫伤 + 大挫傷 Crushed tissue @@ -3398,8 +3398,8 @@ Zhmoždění měkkých tkání 圧挫傷 좌상 - 撞伤 - 撞傷 + 撞伤 + 撞傷 Minor crushed tissue @@ -3414,8 +3414,8 @@ Malé zhmoždění měkkých tkání 小さな圧挫傷 소형 좌상 - 小撞伤 - 小撞傷 + 小撞伤 + 小撞傷 Medium crushed tissue @@ -3430,8 +3430,8 @@ Střední zhmoždění měkkých tkání 中くらいの圧挫傷 중형 좌상 - 中撞伤 - 中撞傷 + 中撞伤 + 中撞傷 Large crushed tissue @@ -3446,8 +3446,8 @@ Velké zhmoždění měkkých tkání 大きな圧挫傷 대형 좌상 - 大撞伤 - 大撞傷 + 大撞伤 + 大撞傷 Cut @@ -3462,8 +3462,8 @@ Řezná rána 切り傷 절상 - 割伤 - 割傷 + 割伤 + 割傷 Small Cut @@ -3478,8 +3478,8 @@ Malá řezná rána 小さな切り傷 소형 절상 - 小割伤 - 小割傷 + 小割伤 + 小割傷 Medium Cut @@ -3494,8 +3494,8 @@ Střední řezná rána 中くらいの切り傷 중형 절상 - 中割伤 - 中割傷 + 中割伤 + 中割傷 Large Cut @@ -3510,8 +3510,8 @@ Velká řezná rána 大きな切り傷 대형 절상 - 大割伤 - 大割傷 + 大割伤 + 大割傷 Tear @@ -3526,8 +3526,8 @@ Tržná rána 裂傷 창상 - 撕裂伤 - 撕裂傷 + 撕裂伤 + 撕裂傷 Small Tear @@ -3542,8 +3542,8 @@ Malá tržná rána 小さな裂傷 소형 창상 - 小撕裂伤 - 小撕裂傷 + 小撕裂伤 + 小撕裂傷 Medium Tear @@ -3558,8 +3558,8 @@ Střední tržná rána 中くらいの裂傷 중형 창상 - 中撕裂伤 - 中撕裂傷 + 中撕裂伤 + 中撕裂傷 Large Tear @@ -3574,8 +3574,8 @@ Velká tržná rána 大きな裂傷 대형 창상 - 大撕裂伤 - 大撕裂傷 + 大撕裂伤 + 大撕裂傷 Velocity Wound @@ -3590,8 +3590,8 @@ Střelné poranění 銃創 총상 - 穿透伤 - 穿透傷 + 穿透伤 + 穿透傷 Small Velocity Wound @@ -3606,8 +3606,8 @@ Malé střelné poranění 小さな銃創 소형 총상 - 小穿透伤 - 小穿透傷 + 小穿透伤 + 小穿透傷 Medium Velocity Wound @@ -3622,8 +3622,8 @@ Střední střelné poranění 中くらいの銃創 중형 총상 - 中穿透伤 - 中穿透傷 + 中穿透伤 + 中穿透傷 Large Velocity Wound @@ -3638,8 +3638,8 @@ Velké střelné poranění 大きな銃創 대형 총상 - 大穿透伤 - 大穿透傷 + 大穿透伤 + 大穿透傷 Puncture Wound @@ -3654,8 +3654,8 @@ Bodná rána 刺し傷 관통상 - 穿刺伤 - 穿刺傷 + 穿刺伤 + 穿刺傷 Minor Puncture Wound @@ -3670,8 +3670,8 @@ Malá bodná rána 小さな刺し傷 소형 관통상 - 小穿刺伤 - 小穿刺傷 + 小穿刺伤 + 小穿刺傷 Medium Puncture Wound @@ -3686,8 +3686,8 @@ Střední bodná rána 中くらいの刺し傷 중형 관통상 - 中穿刺伤 - 中穿刺傷 + 中穿刺伤 + 中穿刺傷 Large Puncture Wound @@ -3702,8 +3702,8 @@ Velká bodná rána 大きな刺し傷 대형 관통상 - 大穿刺伤 - 大穿刺傷 + 大穿刺伤 + 大穿刺傷 Broken Femur @@ -3718,8 +3718,8 @@ Zlomená stehenní kost 大腿骨の骨折 대퇴골 골절 - 大腿骨骨折 - 大腿骨骨折 + 大腿骨骨折 + 大腿骨骨折 Treating... @@ -3734,8 +3734,8 @@ Curando... 治療中・・・ 치료중... - 治疗中... - 治療中... + 治疗中... + 治療中... Removing Tourniquet... @@ -3750,8 +3750,8 @@ Togliendo il laccio emostatico... 止血帯を外している・・・ 지혈대 제거중... - 移除军用止血带中... - 移除軍用止血帶中... + 移除军用止血带中... + 移除軍用止血帶中... ACE Medical @@ -3766,8 +3766,8 @@ ACE Medical ACE 医療 ACE 의료 - ACE 医疗系统 - ACE 醫療系統 + ACE 医疗系统 + ACE 醫療系統 Medical Settings [ACE] @@ -3782,8 +3782,8 @@ Impostazioni Mediche [ACE] 医療設定 [ACE] 의료 설정 [ACE] - 医疗设定 [ACE] - 醫療設定 [ACE] + 医疗设定 [ACE] + 醫療設定 [ACE] Medical Level @@ -3798,8 +3798,8 @@ Livello Medico 医療レベル 의료 수준 - 医疗等级 - 醫療等級 + 医疗等级 + 醫療等級 What is the medical simulation level? @@ -3814,8 +3814,8 @@ Qual'è il livello di simulazione medica? 治療の再現度は? 의료 시뮬레이션의 수준 - 选择需要的医疗模拟等级 - 選擇需要的醫療模擬等級 + 选择需要的医疗模拟等级 + 選擇需要的醫療模擬等級 Basic @@ -3830,8 +3830,8 @@ Basico ベーシック 기본 - 基本 - 基本 + 基本 + 基本 Advanced @@ -3846,8 +3846,8 @@ Avanzato アドバンスド 고급 - 进阶 - 進階 + 进阶 + 進階 Medics setting @@ -3862,8 +3862,8 @@ Parametri Medici 治療の設定 의료 설정 - 医护兵等级 - 醫護兵等級 + 医护兵等级 + 醫護兵等級 What is the level of detail prefered for medics? @@ -3878,8 +3878,8 @@ Qual'è il livello di dettagli preferito per i medici? >衛生兵への再現度をどのくらいに設定しますか? 의무병의 시뮬레이션 정도? - 设定医护兵的预设医疗水平(医疗兵, 军医) - 設定醫護兵的預設醫療水平(醫療兵, 軍醫) + 设定医护兵的预设医疗水平(医疗兵, 军医) + 設定醫護兵的預設醫療水平(醫療兵, 軍醫) Locations boost training @@ -3893,8 +3893,8 @@ Места ускоренного обучения 衛生兵としての能力を与える場所 교육 증가 지역 - 受所在位置影响提升医疗能力 - 受所在位置影響提升醫療能力 + 受所在位置影响提升医疗能力 + 受所在位置影響提升醫療能力 Boost medic rating in medical vehicles or near medical facilities [untrained becomes medic, medic becomes doctor] @@ -3908,8 +3908,8 @@ Улучшает медицинскую подготовку в мед. транспорте и около мед. строений [нетренированные становятся медиками, медики становятся врачами] 医療車両や医療施設の近くは衛生兵としての能力を与える場所となり、衛生兵の訓練を受けていないのに衛生兵としてなる(未訓練は衛生兵に、衛生兵は医師に) 의무병의 수준이 주변의 차량이나 의료시설에 따라 증가합니다. [비교육자가 의무병이되고, 의무병이 의사가 됩니다] - 当人员在医疗载具或是医护设施旁进行医疗时, 该员医疗能力将会有所提升 (未受训人员提升为医疗兵, 医疗兵提升为军医) - 當人員在醫療載具或是醫護設施旁進行醫療時, 該員醫療能力將會有所提升 (未受訓人員提升為醫療兵, 醫療兵提升為軍醫) + 当人员在医疗载具或是医护设施旁进行医疗时, 该员医疗能力将会有所提升 (未受训人员提升为医疗兵, 医疗兵提升为军医) + 當人員在醫療載具或是醫護設施旁進行醫療時, 該員醫療能力將會有所提升 (未受訓人員提升為醫療兵, 醫療兵提升為軍醫) Disable medics @@ -3924,8 +3924,8 @@ Disabilita medici 衛生兵を無効化 의무병 비활성화 - 关闭医护兵 - 關閉醫護兵 + 关闭医护兵 + 關閉醫護兵 Enable Litter @@ -3940,8 +3940,8 @@ Abilita Barella 医療廃棄物の表示を有効化 의료폐기물 활성화 - 启用医疗废弃物 - 啟用醫療廢棄物 + 启用医疗废弃物 + 啟用醫療廢棄物 Enable litter being created upon treatment @@ -3956,8 +3956,8 @@ Abilita la creazione della barella dopo trattamento 治療を始めると、医療廃棄物の作成を有効化する 의료폐기물이 치료중 주변에 생성되는것을 활성화 합니다 - 本功能启用后, 当每次医疗动作结束时, 地上会产生相应的医疗废弃物 - 本功能啟用後, 當每次醫療動作結束時, 地上會產生相應的醫療廢棄物 + 本功能启用后, 当每次医疗动作结束时, 地上会产生相应的医疗废弃物 + 本功能啟用後, 當每次醫療動作結束時, 地上會產生相應的醫療廢棄物 Life time of litter objects @@ -3972,8 +3972,8 @@ Tempo di vita delle barelle 医療廃棄物の作成限界数を設定 의료폐기물 시간제한 - 医疗废弃物存在时间 - 醫療廢棄物存在時間 + 医疗废弃物存在时间 + 醫療廢棄物存在時間 How long should litter objects stay? In seconds. -1 is forever. @@ -3988,8 +3988,8 @@ Per quanto devono restare le barelle? In secondi. -1 è permanente 医療廃棄物オブジェクトが表示されつづける時間を設定しますか?-1 は永遠です。 얼마동안 폐기물이 존재합니까? 초 단위. -1 은 영구적. - 定义医疗废弃物存在时间, 以秒为单位, -1为永远存在. - 定義醫療廢棄物存在時間, 以秒為單位, -1為永遠存在. + 定义医疗废弃物存在时间, 以秒为单位, -1为永远存在. + 定義醫療廢棄物存在時間, 以秒為單位, -1為永遠存在. Enable Screams @@ -4004,8 +4004,8 @@ Abilita Grida 叫びを有効化 비명 활성화 - 启用尖叫 - 啟用尖叫 + 启用尖叫 + 啟用尖叫 Enable screaming by injured units @@ -4020,8 +4020,8 @@ Abilita Grida da parte delle unità ferite 負傷したユニットが叫ぶように 부상당한 인원이 소리지르는것을 활성화합니다 - 启用伤者的尖叫声 - 啟用傷者的尖叫聲 + 启用伤者的尖叫声 + 啟用傷者的尖叫聲 Player Damage @@ -4036,8 +4036,8 @@ Danno Giocatore プレイヤーへの損傷 플레이어 부상 - 玩家伤害 - 玩家傷害 + 玩家伤害 + 玩家傷害 What is the damage a player can take before being killed? @@ -4052,8 +4052,8 @@ Quanto è il danno che un giocatore può sostenere prima di essere ucciso? プレイヤーが死に始める前に損傷を受けるようにしますか? 얼마정도의 부상을 플레이어가 죽기 전까지 버틸 수 있습니까? - 玩家死亡前所能承受的伤害程度 - 玩家死亡前所能承受的傷害程度 + 玩家死亡前所能承受的伤害程度 + 玩家死亡前所能承受的傷害程度 AI Damage @@ -4068,8 +4068,8 @@ Danno AI AI への損傷 인공지능 부상 - AI伤害 - AI傷害 + AI伤害 + AI傷害 What is the damage an AI can take before being killed? @@ -4084,8 +4084,8 @@ Quanto è il danno che un'IA può sostenere prima di essere uccisa? AI が死に始める前に損傷を受けるようにしますか? 얼마정도의 부상을 인공지능이 죽기 전까지 버틸 수 있습니까? - AI 死亡前所能承受的伤害程度 - AI 死亡前所能承受的傷害程度 + AI 死亡前所能承受的伤害程度 + AI 死亡前所能承受的傷害程度 AI Unconsciousness @@ -4100,8 +4100,8 @@ Incoscienza IA AI の気絶 인공지능 기절 - AI无意识 - AI無意識 + AI无意识 + AI無意識 Allow AI to go unconscious @@ -4116,8 +4116,8 @@ Permetti alle IA di diventare incoscienti AI が気絶をするように 인공지능도 기절에 빠지게 합니다 - 允许AI进入无意识状态 - 允許AI進入無意識狀態 + 允许AI进入无意识状态 + 允許AI進入無意識狀態 Remote Controlled AI @@ -4132,8 +4132,8 @@ IA Controllate in Remoto 遠隔操作された AI 인공지능 원격조종 - 遥控AI - 遙控AI + 遥控AI + 遙控AI Treat remote controlled units as AI not players? @@ -4148,8 +4148,8 @@ Considera le unità controllate in remoto come IA e non come giocatori? 遠隔操作された AI は、非プレイヤーとして扱いますか? 원격 조작하는 AI는 비 플레이어로 취급합니까? - 以医疗AI的方式医疗被遥控的单位 - 以醫療AI的方式醫療被遙控的單位 + 以医疗AI的方式医疗被遥控的单位 + 以醫療AI的方式醫療被遙控的單位 Prevent instant death @@ -4164,8 +4164,8 @@ Previeni morte istantanea 即死の防止 즉사 방지 - 防止当场死亡 - 防止當場死亡 + 防止当场死亡 + 防止當場死亡 Have a unit move to unconscious instead of death @@ -4180,8 +4180,8 @@ Imposta un'unità come incosciente invece di morta ユニットの即死を防止するために、気絶へ移行させます 인원의 즉사를 방지코자 즉사 대신 기절시킵니다 - 伤者最严重只会立即进入昏迷, 而非立即死亡 - 傷者最嚴重只會立即進入昏迷, 而非立即死亡 + 伤者最严重只会立即进入昏迷, 而非立即死亡 + 傷者最嚴重只會立即進入昏迷, 而非立即死亡 Bleeding coefficient @@ -4196,8 +4196,8 @@ Coefficiente sanguinamento 出血の係数 출혈 계수 - 流血系数 - 流血係數 + 流血系数 + 流血係數 Coefficient to modify the bleeding speed @@ -4212,8 +4212,8 @@ Coefficiente che modifica la velocità di sanguinamento この係数では出血速度を変更できます 출혈의 속도를 계수만큼 변경합니다 - 修改流血速度 - 修改流血速度 + 修改流血速度 + 修改流血速度 Pain coefficient @@ -4228,8 +4228,8 @@ Coefficiente dolore 痛みの係数 고통 계수 - 疼痛系数 - 疼痛係數 + 疼痛系数 + 疼痛係數 Coefficient to modify the pain intensity @@ -4244,8 +4244,8 @@ Coefficiente che modifica l'intensità del dolore この係数では痛みの強さを変更できます 고통의 정도를 계수만큼 변경합니다 - 修改疼痛强度的系数 - 修改疼痛強度的係數 + 修改疼痛强度的系数 + 修改疼痛強度的係數 Sync status @@ -4260,8 +4260,8 @@ Sincronizza stato 同期状態 상태 동기화 - 同步状态 - 同步狀態 + 同步状态 + 同步狀態 Keep unit status synced. Recommended on. @@ -4276,8 +4276,8 @@ Mantieni lo stato delle unità sincronizzato. Consigliato attivo. ユニット状態の同期を続けます。有効化を推奨。 인원의 상태를 동기화합니다. 켜기를 권장합니다. - 保持单位状态同步, 建议启用! - 保持單位狀態同步, 建議啟用! + 保持单位状态同步, 建议启用! + 保持單位狀態同步, 建議啟用! Provides a medical system for both players and AI. @@ -4292,8 +4292,8 @@ Fornisce un sistema medico sia per giocatori che IA. プレイヤーと AI の両方へ医療システムを提供します。 의료 시스템을 플레이어 및 인공지능에게 제공합니다. - 医疗系统将同时对玩家与AI发生作用 - 醫療系統將同時對玩家與AI發生作用 + 医疗系统将同时对玩家与AI发生作用 + 醫療系統將同時對玩家與AI發生作用 Basic Medical Settings [ACE] @@ -4307,8 +4307,8 @@ Настройки базовой медицины [ACE] ベーシック医療設定 [ACE] 기본 의료 설정 [ACE] - 基本医疗设定 [ACE] - 基本醫療設定 [ACE] + 基本医疗设定 [ACE] + 基本醫療設定 [ACE] Advanced Medical Settings [ACE] @@ -4323,8 +4323,8 @@ Impostazioni Mediche Avanzate [ACE] アドバンスド医療設定 [ACE] 고급 의료 설정 [ACE] - 进阶医疗设定 [ACE] - 進階醫療設定 [ACE] + 进阶医疗设定 [ACE] + 進階醫療設定 [ACE] Enabled for @@ -4339,8 +4339,8 @@ Abilitato per 次を有効化 활성 - 被启用给 - 被啟用給 + 被启用给 + 被啟用給 Select what units the advanced medical system will be enabled for @@ -4355,8 +4355,8 @@ Seleziona per quali unità verrà abilitato i sistema medico avanzato 選択されたユニットが、アドバンスド医療が使えるようになります 어느 인원에게 고급 의료 시스템을 적용시킬지 선택하십시요. - 选择进阶医疗系统影响的对象 - 選擇進階醫療系統影響的對象 + 选择进阶医疗系统影响的对象 + 選擇進階醫療系統影響的對象 Players only @@ -4371,8 +4371,8 @@ Solo giocatori プレイヤーのみ 플레이어만 - 只限玩家 - 只限玩家 + 只限玩家 + 只限玩家 Players and AI @@ -4387,8 +4387,8 @@ Giocatori ed IA プレイヤーと AI 플레이어 및 인공지능 - 玩家与AI - 玩家與AI + 玩家与AI + 玩家與AI Enable Advanced wounds @@ -4403,8 +4403,8 @@ Abilita ferite Avanzate アドバンスドな傷を有効化 고급 부상 활성화 - 启用进阶伤口系统 - 啟用進階傷口系統 + 启用进阶伤口系统 + 啟用進階傷口系統 Allow reopening of bandaged wounds? @@ -4419,8 +4419,8 @@ Permetti la riapertura di ferite bendate? 包帯で巻かれた傷を再び開くようにしますか? 붕대가 풀리는것을 활성화합니까? - 启用进阶伤口系统会使已被包扎的伤口有机率裂开 - 啟用進階傷口系統會使已被包紮的傷口有機率裂開 + 启用进阶伤口系统会使已被包扎的伤口有机率裂开 + 啟用進階傷口系統會使已被包紮的傷口有機率裂開 Vehicle Crashes @@ -4435,8 +4435,8 @@ Schianto Veicoli 車両の衝突 차량 사고 - 载具碰撞 - 載具碰撞 + 载具碰撞 + 載具碰撞 Do units take damage from a vehicle crash? @@ -4451,8 +4451,8 @@ Le unità sostengono danni da incidenti con veicoli? ユニットは車両の衝突による損傷を受けるようにしますか? 차량 사고시 인원들이 부상을 입습니까? - 设定人员是否会因为载具冲撞别的物件而产生伤害? - 設定人員是否會因為載具衝撞別的物件而產生傷害? + 设定人员是否会因为载具冲撞别的物件而产生伤害? + 設定人員是否會因為載具衝撞別的物件而產生傷害? Allow Epinephrine @@ -4466,8 +4466,8 @@ Разрешить Адреналин アドレナリンの許可 에피네프린 활성화 - 允许使用肾上腺素 - 允許使用腎上腺素 + 允许使用肾上腺素 + 允許使用腎上腺素 Who can use Epinephrine for full heal? (Basic medical only) @@ -4481,8 +4481,8 @@ Кому разрешено использовать адреналин для полного излечения? (Только для базовой медицины) 完全に回復できるよう誰しもがアドレナリンを使えるようにしますか?(ベーシック医療のみ) 완전한 체력회복을 위해 어느 인원이 에피네프린을 쓸 수 있습니까? (기본 의료 전용) - 谁可以使用肾上腺素完整医治? (仅适用于基本医疗) - 誰可以使用腎上腺素完整醫治? (僅適用於基本醫療) + 谁可以使用肾上腺素完整医治? (仅适用于基本医疗) + 誰可以使用腎上腺素完整醫治? (僅適用於基本醫療) Allow PAK @@ -4497,8 +4497,8 @@ Consenti Kit di Pronto Soccorso 応急処置キットの許可 개인응급키트 활성화 - 允许使用个人急救包 - 允許使用個人急救包 + 允许使用个人急救包 + 允許使用個人急救包 Who can use the PAK for full heal? @@ -4513,8 +4513,8 @@ Chi può usare il KPS per cura completa? 完全に回復できるよう誰しもが応急処置キットを使えるようにしますか? 완전한 체력회복을 위해 어느 인원이 개인응급키트을 쓸 수 있습니까? (기본 의료 전용) - 谁能够使用个人急救包来达到完整医疗? - 誰能夠使用個人急救包來達到完整醫療? + 谁能够使用个人急救包来达到完整医疗? + 誰能夠使用個人急救包來達到完整醫療? Anyone @@ -4529,8 +4529,8 @@ Chiunque だれでも 모두 - 任何人 - 任何人 + 任何人 + 任何人 Medics only @@ -4545,8 +4545,8 @@ Solo medici 衛生兵のみ 의무병만 - 只限医疗兵 - 只限醫療兵 + 只限医疗兵 + 只限醫療兵 Doctors only @@ -4561,8 +4561,8 @@ Solo dottori 医師のみ 의사만 - 只限军医 - 只限軍醫 + 只限军医 + 只限軍醫 Remove PAK on use @@ -4577,8 +4577,8 @@ Rimuovi Kit Pronto Soccorso dopo l'uso 応急処置キットの削除 개인응급키트 사용후 사라짐 - 在使用后删除个人急救包 - 在使用後刪除個人急救包 + 在使用后删除个人急救包 + 在使用後刪除個人急救包 Should PAK be removed on usage? @@ -4593,8 +4593,8 @@ Il Kit Pronto Soccorso dev'essere rimosso dopo l'utilizzo? 応急処置キットを使うと削除しますか? 개인응급키트를 사용하고 나서 제거합니까? - 要在使用后删除个人急救包吗? - 要在使用後刪除個人急救包嗎? + 要在使用后删除个人急救包吗? + 要在使用後刪除個人急救包嗎? Locations Epinephrine @@ -4608,8 +4608,8 @@ Место использования адреналина アドレナリンをつかう場所 에피네프린 사용 장소 - 肾上腺素使用地点 - 腎上腺素使用地點 + 肾上腺素使用地点 + 腎上腺素使用地點 Where can the Epinephrine be used? (Basic Medical) @@ -4623,8 +4623,8 @@ Где может использоваться адреналин? (Базовая медицина) どこでもアドレナリンをつかえるようにしますか?(ベーシック医療のみ) 어디에서 에피네프린을 사용할 수 있습니까? (기본 의료) - 在哪里可以使用肾上腺素? (基本医疗) - 在哪裡可以使用腎上腺素? (基本醫療) + 在哪里可以使用肾上腺素? (基本医疗) + 在哪裡可以使用腎上腺素? (基本醫療) Locations PAK @@ -4639,8 +4639,8 @@ Locazioni Kit Pronto Soccorso 応急処置キットをつかう場所 개인응급키트 사용 장소 - 个人急救包使用地点 - 個人急救包使用地點 + 个人急救包使用地点 + 個人急救包使用地點 Where can the PAK be used? @@ -4655,8 +4655,8 @@ Dove può essere usato il Kit Pronto Soccorso? どこでも応急処置キットをつかえるようにしますか? 어디에서 개인응급키트를 사용할 수 있습니까? - 在哪里可以使用个人急救包? - 在哪裡可以使用個人急救包? + 在哪里可以使用个人急救包? + 在哪裡可以使用個人急救包? Condition PAK @@ -4671,8 +4671,8 @@ Condizioni Kit Pronto Soccorso 応急処置キットの状態 개인응급키트 상태 - 个人急救包使用条件 - 個人急救包使用條件 + 个人急救包使用条件 + 個人急救包使用條件 When can the PAK be used? @@ -4687,8 +4687,8 @@ Quando può essere usato il Kit Pronto Soccorso? どこでも応急処置キットをつかえるようにしますか? 언제 개인응급키트를 사용할 수 있습니까? - 何时可以使用个人急救包? - 何時可以使用個人急救包? + 何时可以使用个人急救包? + 何時可以使用個人急救包? Anywhere @@ -4703,8 +4703,8 @@ Ovunque どこでも 어디서나 - 任何地方 - 任何地方 + 任何地方 + 任何地方 Medical vehicles @@ -4719,8 +4719,8 @@ Veicoli medici 医療車両のみ 의료차량 - 医疗载具 - 醫療載具 + 医疗载具 + 醫療載具 Medical facility @@ -4735,8 +4735,8 @@ Strutture mediche 医療施設でのみ 의료시설 - 医疗设施 - 醫療設施 + 医疗设施 + 醫療設施 Vehicles & facility @@ -4751,8 +4751,8 @@ Veicoli e Strutture 車両 & 施設 차량 및 시설 - 医疗载具 & 医疗设施 - 醫療載具 & 醫療設施 + 医疗载具 & 医疗设施 + 醫療載具 & 醫療設施 Allow Surgical Kit (Adv) @@ -4767,8 +4767,8 @@ Permetti Kit Chirurgico (Avanzato) 縫合キットの許可 (アド) 봉합키트 활성화 (고급) - 允许使用手术包 (进阶伤口) - 允許使用手術包 (進階傷口) + 允许使用手术包 (进阶伤口) + 允許使用手術包 (進階傷口) Who can use the Surgical Kit? @@ -4783,8 +4783,8 @@ Chi può usare il Kit Chirurgico? だれでも縫合キットをつかえるようにしますか? 어느 인원이 봉합키트를 사용할 수 있습니까? - 谁能够使用手术包? - 誰能夠使用手術包? + 谁能够使用手术包? + 誰能夠使用手術包? Remove Surgical Kit (Adv) @@ -4799,8 +4799,8 @@ Rimuovi Kit Chirurgico (Avanzato) 縫合キットを削除 (アド) 봉합키트 제거 (고급) - 在使用后删除手术包 (进阶伤口) - 在使用後刪除手術包 (進階傷口) + 在使用后删除手术包 (进阶伤口) + 在使用後刪除手術包 (進階傷口) Should Surgical kit be removed on usage? @@ -4815,8 +4815,8 @@ Il Kit Chirurgico dev'essere rimosso dopo l'uso? 縫合キットをつかった後に削除しますか? 봉합키트를 사용하고 나서 제거합니까? - 手术包会在使用后被删除吗? - 手術包會在使用後被刪除嗎? + 手术包会在使用后被删除吗? + 手術包會在使用後被刪除嗎? Locations Surgical Kit (Adv) @@ -4831,8 +4831,8 @@ Località Kit Chirurgico (Avanzato) 縫合キットをつかう場所 (アド) 봉합키트 사용 장소 (고급) - 手术包使用地点 (进阶伤口) - 手術包使用地點 (進階傷口) + 手术包使用地点 (进阶伤口) + 手術包使用地點 (進階傷口) Where can the Surgical Kit be used? @@ -4847,8 +4847,8 @@ Dove può essere usato il Kit Chirurgico? どこでも縫合キットをつかえるようにしますか? 어디에서 봉합키트를 사용할 수 있게 합니까? - 定义手术包可被使用的地方? - 定義手術包可被使用的地方? + 定义手术包可被使用的地方? + 定義手術包可被使用的地方? Condition Surgical Kit (Adv) @@ -4863,8 +4863,8 @@ Condizioni Kit Chirurgico (Avanzato) 縫合キットの状態 (アド) 봉합키트 상태 (고급) - 使用手术包的条件 (进阶伤口) - 使用手術包的條件 (進階傷口) + 使用手术包的条件 (进阶伤口) + 使用手術包的條件 (進階傷口) When can the Surgical Kit be used? @@ -4879,8 +4879,8 @@ Quando può essere usato il Kit Chirurgico? いつでも縫合キットをつかえるようにしますか? 언제 봉합키트를 사용할 수 있습니까? - 何时可以使用手术工具包? - 何時可以使用手術工具包? + 何时可以使用手术工具包? + 何時可以使用手術工具包? Heal hitpoints @@ -4894,8 +4894,8 @@ Soigner les blessures ヒットポイントの回復 체력 회복 - 完整治疗 - 完整治療 + 完整治疗 + 完整治療 Heal fully bandaged hitpoints @@ -4909,8 +4909,8 @@ Soigner les plaies entièrement bandées. 包帯によりヒットポイントを完全に回復する 붕대를 감아서 체력을 회복 - 完全医疗包扎的部位至痊愈 - 完全醫療包紮的部位至痊癒 + 完全医疗包扎的部位至痊愈 + 完全醫療包紮的部位至痊癒 Pain suppression @@ -4925,8 +4925,8 @@ Soppressione dolore 痛みの継続 고통 억제 - 疼痛抑制 - 疼痛抑制 + 疼痛抑制 + 疼痛抑制 Pain is only temporarily suppressed, not removed @@ -4941,8 +4941,8 @@ Dolore è solo temporaneamente soppresso, non rimosso 痛みを一時的に継続させ、取り除かない 고통은 제거가 아닌 일시적으로 억제만 가능합니다. - 疼痛只会被暂时抑制, 而不能完全消除 - 疼痛只會被暫時抑制, 而不能完全消除 + 疼痛只会被暂时抑制, 而不能完全消除 + 疼痛只會被暫時抑制, 而不能完全消除 Configure the treatment settings from ACE Basic Medical @@ -4955,8 +4955,8 @@ Настройка лечения в базовой медицинской системе ACE ACE ベーシック医療による設定で、治療を設定する ACE 기본 의료에 대한 치료 설정 수정 - 设定ACE基本医疗的规则 - 設定ACE基本醫療的規則 + 设定ACE基本医疗的规则 + 設定ACE基本醫療的規則 Configure the treatment settings from ACE Advanced Medical @@ -4971,8 +4971,8 @@ Configura le impostazioni trattamenti per ACE Medical ACE アドバンスド医療による設定で、治療を設定する ACE 고급 의료에 대한 치료 설정 수정 - 设定ACE进阶医疗的规则 - 設定ACE進階醫療的規則 + 设定ACE进阶医疗的规则 + 設定ACE進階醫療的規則 Revive Settings [ACE] @@ -4987,8 +4987,8 @@ Impostazioni Revive [ACE] リバイブ設定 [ACE] 소생 설정 [ACE] - 复苏设定 [ACE] - 復甦設定 [ACE] + 复苏设定 [ACE] + 復甦設定 [ACE] Enable Revive @@ -5003,8 +5003,8 @@ Abilita Revive リバイブを有効化 소생 활성화 - 启用复苏 - 啟用復甦 + 启用复苏 + 啟用復甦 Enable a basic revive system @@ -5019,8 +5019,8 @@ Abilita un sistema revive basico ベーシックなリバイブを有効化 기본 소생 시스템 활성화 - 启用基本复苏系统 - 啟用基本復甦系統 + 启用基本复苏系统 + 啟用基本復甦系統 Max Revive time @@ -5035,8 +5035,8 @@ Tempo massimo Revive 最大リバイブ時間 최대 소생 시간 - 最大复苏时间 - 最大復甦時間 + 最大复苏时间 + 最大復甦時間 Max amount of seconds a unit can spend in revive state @@ -5051,8 +5051,8 @@ Numero massimo di secondi che un'unità può spendere in stato revive ユニットがリバイブ状態になっている最大時間を設定できます 소생상태에서 인원이 버틸 수 있는 최대 시간을 초 단위로 정합니다 - 人员在等待复苏状态下能够等待的最大时间(秒) - 人員在等待復甦狀態下能夠等待的最大時間(秒) + 人员在等待复苏状态下能够等待的最大时间(秒) + 人員在等待復甦狀態下能夠等待的最大時間(秒) Max Revive lives @@ -5067,8 +5067,8 @@ Numero massimo Revives 最大リバイブ数 최대 소생 횟수 - 最大被救活次数 - 最大被救活次數 + 最大被救活次数 + 最大被救活次數 Max amount of lives a unit. 0 or -1 is disabled. @@ -5083,8 +5083,8 @@ Numero massimo di vite di un'unità. 0 o -1 per disabilitare. ユニットの最大リバイブ数を設定できます。0 または -1 は無効化になります 소생 가능한 횟수입니다. 0 혹은 -1 로 비활성화 합니다 - 一个人员最大可被救活次数, 0或-1为关闭 (无限救活). - 一個人員最大可被救活次數, 0或-1為關閉 (無限救活). + 一个人员最大可被救活次数, 0或-1为关闭 (无限救活). + 一個人員最大可被救活次數, 0或-1為關閉 (無限救活). Provides a medical system for both players and AI. @@ -5099,8 +5099,8 @@ Fornisce un sistema medico sia per giocatori che IA プレイヤーと AI の両方へ医療システムを提供します。 플레이어와 인공지능 모두에게 의료 시스템을 지원합니다. - 医疗系统将同时作用在玩家与AI - 醫療系統將同時作用在玩家與AI + 医疗系统将同时作用在玩家与AI + 醫療系統將同時作用在玩家與AI Set Medic Class [ACE] @@ -5115,8 +5115,8 @@ Imposta Classe Medico [ACE] 衛生兵クラスとして設定 [ACE] 의무병 보직 설정 [ACE] - 设定医疗兵单位 [ACE] - 設定醫療兵單位 [ACE] + 设定医疗兵单位 [ACE] + 設定醫療兵單位 [ACE] List @@ -5131,8 +5131,8 @@ Lista 一覧 목록 - 列表 - 列表 + 列表 + 列表 List of unit names that will be classified as medic, separated by commas. @@ -5147,8 +5147,8 @@ Lista di nomi unità che verranno classificati come medici, separati da virgole. 衛生兵として設定されるユニット名を一覧で指定でき、コンマで区切りを付けられます。 보직 이름 목록으로 의무병이 구분됩니다, 쉼표로 구분. - 列出的单位名字将被指派为医疗兵, 记得用逗号隔开! - 列出的單位名字將被指派為醫療兵, 記得用逗號隔開! + 列出的单位名字将被指派为医疗兵, 记得用逗号隔开! + 列出的單位名字將被指派為醫療兵, 記得用逗號隔開! Is Medic @@ -5163,8 +5163,8 @@ E' Medico 衛生兵として 의무병 - 是医疗兵 - 是醫療兵 + 是医疗兵 + 是醫療兵 This module allows you to assign the medic class to selected units. @@ -5179,8 +5179,8 @@ Questo modulo ti permette di assegnare la classe Medico alle unità selezionate. 選択されたユニットを衛生兵として指定します。 이 모듈은 선택한 보직이 의무병을 할 수 있게 해줍니다. - 本模块可让被同步的单位成为医疗兵. - 本模塊可讓被同步的單位成為醫療兵. + 本模块可让被同步的单位成为医疗兵. + 本模塊可讓被同步的單位成為醫療兵. None @@ -5195,8 +5195,8 @@ Nessuno なし 없음 - - + + Regular medic @@ -5211,8 +5211,8 @@ Medico Regolare 通常の衛生兵 일반 의무병 - 普通医疗兵 - 普通醫療兵 + 普通医疗兵 + 普通醫療兵 Doctor (Only Advanced Medics) @@ -5227,8 +5227,8 @@ Dottore (Solo Medici Avanzati) 医師 (アドバンスド医療のみ) 의사 (오직 고급 의료에서만) - 军医 (只限进阶医疗系统) - 軍醫 (只限進階醫療系統) + 军医 (只限进阶医疗系统) + 軍醫 (只限進階醫療系統) Doctor @@ -5243,8 +5243,8 @@ Dottore 医師 의사 - 军医 - 軍醫 + 军医 + 軍醫 Assigns the ACE medic class to a unit @@ -5259,8 +5259,8 @@ Assegna la classe medico ACE ad un'unità ユニットを ACE の衛生兵として割り当てる 인원에게 ACE 의무병 보직 선정 - 指派ACE医疗职位给该单位 - 指派ACE醫療職位給該單位 + 指派ACE医疗职位给该单位 + 指派ACE醫療職位給該單位 Set Medical Vehicle [ACE] @@ -5275,8 +5275,8 @@ Imposta Veicolo Medico [ACE] 医療車両を設定 [ACE] 의료 차랑 선정 [ACE] - 设定医疗载具 [ACE] - 設定醫療載具 [ACE] + 设定医疗载具 [ACE] + 設定醫療載具 [ACE] List @@ -5291,8 +5291,8 @@ Lista 一覧 목록 - 列表 - 列表 + 列表 + 列表 List of vehicles that will be classified as medical vehicle, separated by commas. @@ -5307,8 +5307,8 @@ Lista di veicoli che verranno classificati come veicoli medici, separati da virgole. 医療車両として設定されるクラス名を一覧で指定でき、コンマで区切りを付けられます 차량 명칭 목록으로 의료차량이 구분됩니다, 쉼표로 구분. - 列出的载具将被指定为医疗载具, 记得用逗号隔开! - 列出的載具將被指定為醫療載具, 記得用逗號隔開! + 列出的载具将被指定为医疗载具, 记得用逗号隔开! + 列出的載具將被指定為醫療載具, 記得用逗號隔開! Is Medical Vehicle @@ -5323,8 +5323,8 @@ E' Veicolo Medico 医療車両として 의료 차량 - 是医疗载具 - 是醫療載具 + 是医疗载具 + 是醫療載具 Whatever or not the objects in the list will be a medical vehicle. @@ -5339,8 +5339,8 @@ Gli oggetti nella lista verranno considerati veicoli medici o meno. どれでも、またはこの一覧にないオブジェクトを医療車両として割り当てる。 무엇이 되었던간에 이 목록에 있는 물체는 의료 차량이 됩니다. - 列表中的载具将会变成医疗载具 - 列表中的載具將會變成醫療載具 + 列表中的载具将会变成医疗载具 + 列表中的載具將會變成醫療載具 Assigns the ACE medic class to a unit @@ -5355,8 +5355,8 @@ Assegna la classe medico ACE ad un'unità ユニットを ACE の衛生兵として割り当てる 차량에 ACE 의무병 보직 선정 - 指派ACE医疗职位给该单位 - 指派ACE醫療職位給該單位 + 指派ACE医疗职位给该单位 + 指派ACE醫療職位給該單位 Set Medical Facility [ACE] @@ -5371,8 +5371,8 @@ Imposta Struttura Medica [ACE] 医療施設を設定 [ACE] 의료시설 선정 [ACE] - 设定医疗设施 [ACE] - 設定醫療設施 [ACE] + 设定医疗设施 [ACE] + 設定醫療設施 [ACE] Is Medical Facility @@ -5387,8 +5387,8 @@ E' Struttura Medica 医療施設として 의료시설 - 是医疗设施 - 是醫療設施 + 是医疗设施 + 是醫療設施 Registers an object as a medical facility @@ -5403,8 +5403,8 @@ Registra un oggetto come struttura medica オブジェクトを医療施設として割り当てる 물체를 의료시설로 등록합니다 - 指定一个物件作为医疗设施 - 指定一個物件作為醫療設施 + 指定一个物件作为医疗设施 + 指定一個物件作為醫療設施 Defines an object as a medical facility. This allows for more advanced treatments. Can be used on buildings and vehicles. @@ -5419,8 +5419,8 @@ Definisce un oggetto come struttura medica. Questo permette cure più avanzate. Può essere usato su edifici e veicoli. オブジェクトを医療施設として割り当てます。建物と車両へ割り当てられた場合、より高度な治療が可能になります。 물체를 의료시설로 정의합니다. 건물 혹은 차량이 될 수 있습니다. 이는 고급 의료 조치를 할 수 있게해줍니다. - 定义一个物件作为医疗设施, 此医疗设施将被允许使用更进阶的医疗方法. 此功能可用于建筑物或是载具上! - 定義一個物件作為醫療設施, 此醫療設施將被允許使用更進階的醫療方法. 此功能可用於建築物或是載具上! + 定义一个物件作为医疗设施, 此医疗设施将被允许使用更进阶的医疗方法. 此功能可用于建筑物或是载具上! + 定義一個物件作為醫療設施, 此醫療設施將被允許使用更進階的醫療方法. 此功能可用於建築物或是載具上! [ACE] Medical Supply Crate (Basic) @@ -5435,8 +5435,8 @@ [ACE] Cassa Rifornimenti Medici (Basico) [ACE] 医療物資箱 (ベーシック) [ACE] 의료 물자 (기본) - [ACE] 医疗补给箱(基本) - [ACE] 醫療補給箱(基本) + [ACE] 医疗补给箱(基本) + [ACE] 醫療補給箱(基本) [ACE] Medical Supply Crate (Advanced) @@ -5451,8 +5451,8 @@ [ACE] Cassa Rifornimenti Medici (Avanzato) [ACE] 医療物資箱 (アドバンスド) [ACE] 의료 물자 (고급) - [ACE] 医疗补给箱(进阶) - [ACE] 醫療補給箱(進階) + [ACE] 医疗补给箱(进阶) + [ACE] 醫療補給箱(進階) Anytime @@ -5467,8 +5467,8 @@ Sempre いつでも 언제나 - 任何时间 - 任何時間 + 任何时间 + 任何時間 Stable @@ -5483,8 +5483,8 @@ Stabile 安定 안정된 - 稳定状态下 - 穩定狀態下 + 稳定状态下 + 穩定狀態下 Medical @@ -5499,8 +5499,8 @@ Orvosi 治療 의료 - 医疗设定 - 醫療設定 + 医疗设定 + 醫療設定 Distance to %1 has become to far for treatment @@ -5514,8 +5514,8 @@ %1 est trop loin pour être soigné %1 は治療をできない所まで離れた %1 부터의 거리가 너무 멀어 치료할 수 없습니다 - 设定当距离超过%1将不能使用治疗动作 - 設定當距離超過%1將不能使用治療動作 + 设定当距离超过%1将不能使用治疗动作 + 設定當距離超過%1將不能使用治療動作 This person (%1) is awake and cannot be loaded @@ -5529,8 +5529,8 @@ %1 est conscient et ne peut être embarqué. 患者 (%1) は意識があり、積み込めない 이 사람 (%1) 은(는) 의식이 있어 태우지 못합니다 - 此人(%1)是清醒且不能被装载 - 此人(%1)是清醒且不能被裝載 + 此人(%1)是清醒且不能被装载 + 此人(%1)是清醒且不能被裝載 There is no tourniquet on this body part! @@ -5544,8 +5544,8 @@ Il n'y a pas de garrot sur ce membre ! 身体には止血帯が無い! 이 부위에는 지혈대가 없습니다! - 这部位没有止血带! - 這部位沒有止血帶! + 这部位没有止血带! + 這部位沒有止血帶! Medical training @@ -5559,8 +5559,8 @@ Медицинская подготовка 治療の訓練 의료 훈련 - 医疗训练 - 醫療訓練 + 医疗训练 + 醫療訓練 Whether or not the object will be a medical vehicle. @@ -5573,8 +5573,8 @@ Будет ли объект считаться медицинским транспортом. どれでも、またはオブジェクトを医療車両として割り当てます。 무엇이 되었던간에 이 목록에 있는 물체는 의료 차량이 됩니다. - 是否使该载具为医疗载具? - 是否使該載具為醫療載具? + 是否使该载具为医疗载具? + 是否使該載具為醫療載具? Delay cease fire of AI while player is unconscious for medical reasons. @@ -5587,8 +5587,8 @@ AI はプレイヤーが医療的な理由で気絶している場合にかぎり、撃つのをためらいます。 Opóźnij stan wstrzymania ognia u AI kiedy gracz jest nieprzytomny z powodów medycznych. 의료상의 이유로 플레이어가 기절할 경우 인공지능이 발사를 지연합니다. - 当玩家为无意识的状态时, 延长AI的停火时间 - 當玩家為無意識的狀態時, 延長AI的停火時間 + 当玩家为无意识的状态时, 延长AI的停火时间 + 當玩家為無意識的狀態時, 延長AI的停火時間 Delay cease fire of AI for unconsciousness @@ -5602,8 +5602,8 @@ Задержка прекращения огня ботами при потере сознания AI は気絶している人へ、ためらってから射撃します 기절할 경우 인공지능이 발사를 지연합니다 - 延长AI对已无意识玩家的停火时间 - 延長AI對已無意識玩家的停火時間 + 延长AI对已无意识玩家的停火时间 + 延長AI對已無意識玩家的停火時間 diff --git a/addons/medical_ai/stringtable.xml b/addons/medical_ai/stringtable.xml index 5c93be2f33d..8a8068e7d67 100644 --- a/addons/medical_ai/stringtable.xml +++ b/addons/medical_ai/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -10,8 +10,8 @@ Tylko serwer i HC Seulement sur le server ou le HC Solo Server e HC - 只在伺服器或无头客户端 - 只在伺服器或無頭客戶端 + 只在伺服器或无头客户端 + 只在伺服器或無頭客戶端 diff --git a/addons/medical_blood/stringtable.xml b/addons/medical_blood/stringtable.xml index 8a24ad79b53..1e61151d0d7 100644 --- a/addons/medical_blood/stringtable.xml +++ b/addons/medical_blood/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -9,8 +9,8 @@ Tylko gracze Joueurs seulement Solo Giocatori - 只有玩家 - 只有玩家 + 只有玩家 + 只有玩家 Enable Blood Drops @@ -20,8 +20,8 @@ Włącz ślady krwi na ziemi Active les gouttes de sang Abilita Perdite di Sangue - 开启血液滴落效果 - 開啟血液滴落效果 + 开启血液滴落效果 + 開啟血液滴落效果 Enable or disable Blood Drops created on bleeding and taking damage @@ -30,8 +30,8 @@ Włącz lub wyłącz pozostawianie śladów krwi na ziemi kiedy postać odnosi obrażenia bądź krwawi (Dés)active les gouttes de sang lors d'un saignement ou de blessure Abilita o disabilita la Perdite di Sangue create sanguinando e prendendo danno - 开启后, 会让受伤时伤口有血液滴落的效果. - 開啟後, 會讓受傷時傷口有血液滴落的效果. + 开启后, 会让受伤时伤口有血液滴落的效果. + 開啟後, 會讓受傷時傷口有血液滴落的效果. diff --git a/addons/medical_menu/stringtable.xml b/addons/medical_menu/stringtable.xml index daae65cc65b..20180d3b91e 100644 --- a/addons/medical_menu/stringtable.xml +++ b/addons/medical_menu/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,8 +13,8 @@ Menu médical 治療メニュー 의료 메뉴 - 医疗选单 - 醫療選單 + 医疗选单 + 醫療選單 Allow Medical Menu @@ -28,8 +28,8 @@ Autoriser le menu médical 治療メニューを有効化 의료 메뉴 활성화 - 允许医疗选单 - 允許醫療選單 + 允许医疗选单 + 允許醫療選單 Allow clients to use the medical menu @@ -43,8 +43,8 @@ Autoriser les clients à utiliser le menu médical すべてのクライアントが治療メニューをつかえるようにする 클라이언트가 의료 메뉴를 쓰는것을 허락합니다 - 允许客户端使用医疗选单 - 允許客戶端使用醫療選單 + 允许客户端使用医疗选单 + 允許客戶端使用醫療選單 Use Medical menu @@ -58,8 +58,8 @@ Utiliser le menu médical 治療メニューをつかう 의료 메뉴 사용 - 使用医疗选单 - 使用醫療選單 + 使用医疗选单 + 使用醫療選單 If allowed by server, enable the option to use the Medical Menu through keybinding and interaction menu @@ -73,8 +73,8 @@ Si autorisé par le serveur, active l'option d'utiliser le menu médical à travers les raccourcis clavier et le menu d'interaction. サーバーが有効化を許可している場合は、オプションから有効化でき治療メニューはキー割り当てとインタラクション メニューを無視できます 서버 허가하에 단축키와 상호작용 메뉴로 의료 메뉴사용을 허가합니다 - 如果伺服器允许, 只需透过按键即可叫出医疗选单 - 如果伺服器允許, 只需透過按鍵即可叫出醫療選單 + 如果伺服器允许, 只需透过按键即可叫出医疗选单 + 如果伺服器允許, 只需透過按鍵即可叫出醫療選單 Re-open Medical menu @@ -88,8 +88,8 @@ Ré-ouvrir le menu médical 治療メニューを再びひらく 의료 메뉴 다시 열기 - 重新开启医疗选单 - 重新開啟醫療選單 + 重新开启医疗选单 + 重新開啟醫療選單 Re-open the medical menu after succesful treatment @@ -103,8 +103,8 @@ Ré-ouvrir le menu médical après un traitement réussi 治療が終わったあと、再び治療メニューをひらく 성공적으로 치료한후에 의료 메뉴를 다시 엽니다 - 当治疗成功后重新打开医疗选单 - 當治療成功後重新打開醫療選單 + 当治疗成功后重新打开医疗选单 + 當治療成功後重新打開醫療選單 Open Medical Menu @@ -118,8 +118,8 @@ Ouvir le menu médical 治療メニューをひらく 의료 메뉴 열기 - 开起医疗选单 - 開起醫療選單 + 开起医疗选单 + 開起醫療選單 Medical Menu Settings @@ -133,8 +133,8 @@ Réglages du menu médical 治療メニューの設定 의료 메뉴 설정 - 医疗选单设定 - 醫療選單設定 + 医疗选单设定 + 醫療選單設定 Configure the usage of the Medical Menu @@ -148,8 +148,8 @@ Configurer l'utilisation du menu médical 治療メニューを使うための設定 의료 메뉴 사용의 설정 - 设置医疗选单的使用 - 設置醫療選單的使用 + 设置医疗选单的使用 + 設置醫療選單的使用 EXAMINE & TREATMENT @@ -163,8 +163,8 @@ ESAMINA & TRATTA 診断 & 治療 검사 / 치료 - 检查 & 治疗 - 檢查 & 治療 + 检查 & 治疗 + 檢查 & 治療 STATUS @@ -178,8 +178,8 @@ STATO 状態 상태 - 状态 - 狀態 + 状态 + 狀態 OVERVIEW @@ -193,8 +193,8 @@ PANORAMICA オーバービュー 개요 - 概述 - 概述 + 概述 + 概述 ACTIVITY LOG @@ -208,8 +208,8 @@ LOG ATTIVITA' 治療履歴 활동 로그 - 医疗纪录 - 醫療紀錄 + 医疗纪录 + 醫療紀錄 QUICK VIEW @@ -223,8 +223,8 @@ VISTA RAPIDA クイック ビュー 퀵 뷰 - 快速检查 - 快速檢查 + 快速检查 + 快速檢查 View triage Card @@ -238,8 +238,8 @@ Guarda Triage Card トリアージ カードを見る 부상자 카드 보기 - 查看诊断卡 - 查看診斷卡 + 查看诊断卡 + 查看診斷卡 Examine Patient @@ -253,8 +253,8 @@ Esamina Paziente 患者を調べる 환자 검사하기 - 检查伤者 - 檢查傷者 + 检查伤者 + 檢查傷者 Bandage / Fractures @@ -268,8 +268,8 @@ Bendaggi/Fratture 包帯 / 骨折 붕대 / 골절 - 绷带 / 骨折 - 繃帶 / 骨折 + 绷带 / 骨折 + 繃帶 / 骨折 Medication @@ -283,8 +283,8 @@ Medicazione 薬物による治療 약물 치료 - 药物 - 藥物 + 药物 + 藥物 Airway Management @@ -298,8 +298,8 @@ Atemwegssicherung 気道を確保 기도 관리 - 呼吸道管理 - 呼吸道管理 + 呼吸道管理 + 呼吸道管理 Advanced Treatments @@ -313,8 +313,8 @@ Trattamenti Avanzati 高度な治療 고급 치료 - 进阶治疗 - 進階治療 + 进阶治疗 + 進階治療 Drag/Carry @@ -328,8 +328,8 @@ Trascina/Trasporta 引きずる / 運ぶ 끌기 / 들기 - 拖 / 背 - 拖 / 背 + 拖 / 背 + 拖 / 背 Toggle (Self) @@ -343,8 +343,8 @@ Attiva (Te Stesso) トグル (自分) 토글 (자신) - 切换 (自己) - 切換 (自己) + 切换 (自己) + 切換 (自己) Select triage status @@ -358,8 +358,8 @@ Seleziona stato Triage トリアージによる状態を選択 부상 상태 고르기 - 选择分诊状态 - 選擇分診狀態 + 选择分诊状态 + 選擇分診狀態 Select Head @@ -373,8 +373,8 @@ Seleziona Testa 頭部を選ぶ 머리 선택 - 选择头部 - 選擇頭部 + 选择头部 + 選擇頭部 Select Torso @@ -388,8 +388,8 @@ Seleziona Torso 胴体を選ぶ 몸통 선택 - 选择身体 - 選擇身體 + 选择身体 + 選擇身體 Select Left Arm @@ -403,8 +403,8 @@ Seleziona Braccio Sinistro 左腕を選ぶ 왼쪽 팔 선택 - 选择左手 - 選擇左手 + 选择左手 + 選擇左手 Select Right Arm @@ -418,8 +418,8 @@ Seleziona Braccio Destro 右腕を選ぶ 오른쪽 팔 선택 - 选择右手 - 選擇右手 + 选择右手 + 選擇右手 Select Left Leg @@ -433,8 +433,8 @@ Seleziona Gamba Sinistra 左足を選ぶ 왼쪽 다리 선택 - 选择左脚 - 選擇左腳 + 选择左脚 + 選擇左腳 Select Right Leg @@ -448,8 +448,8 @@ Seleziona Gamba Destra 右足を選ぶ 오른쪽 다리 선택 - 选择右脚 - 選擇右腳 + 选择右脚 + 選擇右腳 Head @@ -463,8 +463,8 @@ Testa 頭部 머리 - 头部 - 頭部 + 头部 + 頭部 Torso @@ -478,8 +478,8 @@ Torso 胴体 몸통 - 身体 - 身體 + 身体 + 身體 Left Arm @@ -493,8 +493,8 @@ Braccio Sinistro 左腕 왼쪽 팔 - 左手 - 左手 + 左手 + 左手 Right Arm @@ -508,8 +508,8 @@ Braccio Destro 右腕 오른쪽 팔 - 右手 - 右手 + 右手 + 右手 Left Leg @@ -523,8 +523,8 @@ Gamba Sinistra 左足 왼쪽 다리 - 左脚 - 左腳 + 左脚 + 左腳 Right Leg @@ -538,8 +538,8 @@ Gamba Destra 右足 오른쪽 다리 - 右脚 - 右腳 + 右脚 + 右腳 Body Part: %1 @@ -553,8 +553,8 @@ Parte del Corpo: %1 身体の一部: %1 신체 부위: %1 - 身体部位: %1 - 身體部位: %1 + 身体部位: %1 + 身體部位: %1 Small @@ -568,8 +568,8 @@ Piccolo 小さい - - + + Medium @@ -583,8 +583,8 @@ Medio 中くらい - - + + Large @@ -598,8 +598,8 @@ Grande 大きい - - + + There are %2 %1 Open Wounds @@ -613,8 +613,8 @@ Ci sono %2 %1 Ferite Aperte 開いている傷口が %2 %1 ほどあるようだ 여기 %2 %1 크기의 열린 상처가 있다 - 有 %2 %1 开放性伤口 - 有 %2 %1 開放性傷口 + 有 %2 %1 开放性伤口 + 有 %2 %1 開放性傷口 There is 1 %1 Open Wound @@ -628,8 +628,8 @@ C'è 1 %1 Ferita Aperta 1 つの空いている %1 傷口 여기 %1 크기의 열린 상처가 있다 - 有 1 %1 开放性伤口 - 有 1 %1 開放性傷口 + 有 1 %1 开放性伤口 + 有 1 %1 開放性傷口 There is a partial %1 Open wound @@ -643,8 +643,8 @@ C'è 1 parziale %1 Ferita Aperta 部分的に開いている %1 の傷口がある 여기 부분적으로 %1 크기의 상처가 있다 - 有部分 %1 开放性伤口 - 有部分 %1 開放性傷口 + 有部分 %1 开放性伤口 + 有部分 %1 開放性傷口 There are %2 %1 Bandaged Wounds @@ -658,8 +658,8 @@ Ci sono %2 %1 Ferite Bendate ここには %2 %1 の処置された傷がある 여기에 붕대를 감은 %2 %1 크기의 상처가 있다 - 有 %2 %1 包扎过伤口 - 有 %2 %1 包紮過傷口 + 有 %2 %1 包扎过伤口 + 有 %2 %1 包紮過傷口 There is 1 %1 Bandaged Wound @@ -673,8 +673,8 @@ C'è 1 %1 Ferita Bendata 1 つの包帯で巻かれている %1 傷 여기에 붕대를 감은 %1 크기의 상처가 있다 - 有 1 %1 包扎过伤口 - 有 1 %1 包紮過傷口 + 有 1 %1 包扎过伤口 + 有 1 %1 包紮過傷口 There is a partial %1 Bandaged wound @@ -688,8 +688,8 @@ C'è 1 parziale %1 Ferita Bendata 患者には %1 の包帯で処置された傷がある 여기 부분적으로 붕대질한 %1 크기의 상처가 있다 - 有部分 %1 包扎过伤口 - 有部分 %1 包紮過傷口 + 有部分 %1 包扎过伤口 + 有部分 %1 包紮過傷口 Normal breathing @@ -703,8 +703,8 @@ Respirazione Normale 通常の呼吸 정상 호흡 - 正常呼吸 - 正常呼吸 + 正常呼吸 + 正常呼吸 No breathing @@ -718,8 +718,8 @@ Nessuna Respirazione 息をしていない 호흡이 없음 - 没有呼吸 - 沒有呼吸 + 没有呼吸 + 沒有呼吸 Difficult breathing @@ -733,8 +733,8 @@ Difficoltà Respiratorie 呼吸が難しそうだ 호흡 곤란 - 呼吸困难 - 呼吸困難 + 呼吸困难 + 呼吸困難 Almost no breathing @@ -748,8 +748,8 @@ Quasi nessuna Respirazione ほとんど呼吸していない 호흡이 거의 없음 - 几乎没有呼吸 - 幾乎沒有呼吸 + 几乎没有呼吸 + 幾乎沒有呼吸 Bleeding @@ -763,8 +763,8 @@ Sanguinamento 出血 출혈 - 出血中 - 出血中 + 出血中 + 出血中 in Pain @@ -778,8 +778,8 @@ in Dolore 痛みがある 고통 - 疼痛中 - 疼痛中 + 疼痛中 + 疼痛中 Lost a lot of Blood @@ -793,8 +793,8 @@ Perso molto Sangue 大量出血している 많은 피를 흘림 - 大量失血 - 大量失血 + 大量失血 + 大量失血 Tourniquet [CAT] @@ -808,8 +808,8 @@ Laccio Emostatico [CAT] 止血帯 [CAT] 지혈대 [CAT] - 军用止血带 - 軍用止血帶 + 军用止血带 + 軍用止血帶 Nasopharyngeal Tube [NPA] @@ -823,8 +823,8 @@ Tubo Nasofaringeo [NPA] 鼻咽頭チューブ [NPA] 비-인두 기도기 [NPA] - 鼻咽管 - 鼻咽管 + 鼻咽管 + 鼻咽管 diff --git a/addons/microdagr/stringtable.xml b/addons/microdagr/stringtable.xml index 44fa85c25a0..af18c39c039 100644 --- a/addons/microdagr/stringtable.xml +++ b/addons/microdagr/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ GPS MicroDAGR MicroDAGR GPS MicroDAGR GPS - 微型军用GPS接收器 - 微型軍用GPS接收器 + 微型军用GPS接收器 + 微型軍用GPS接收器 MicroDAGR advanced GPS receiver @@ -30,8 +30,8 @@ Recepitor GPS avançado MicroDAGR MicroDAGR は改良された GPS 受信機です MicroDAGR 고급 위성항법 수신기 - 微型军用高级防御GPS接收器 - 微型軍用高級防禦GPS接收器 + 微型军用高级防御GPS接收器 + 微型軍用高級防禦GPS接收器 Angular Unit: @@ -46,8 +46,8 @@ Unidade Angular: 角度の種類: 각도의 단위: - 角密位: - 角密位: + 角密位: + 角密位: Mils @@ -62,8 +62,8 @@ Mils: ミリ ラジアン - 密位 - 密位 + 密位 + 密位 Show Waypoints On Map: @@ -78,8 +78,8 @@ Mostrar Waypoints no mapa: 地図へウェイポイントを表示: 웨이포인트를 지도에 보이기: - 显示路径点在地图上: - 顯示路徑點在地圖上: + 显示路径点在地图上: + 顯示路徑點在地圖上: Degrees @@ -94,8 +94,8 @@ Graus 角度 각도 - - + + On @@ -110,8 +110,8 @@ Be 有効 켜기 - 开启 - 開啟 + 开启 + 開啟 Off @@ -126,8 +126,8 @@ Ki 無効 끄기 - 关闭 - 關閉 + 关闭 + 關閉 Enter Grid Cords: @@ -142,8 +142,8 @@ Digite as Ccords. do Grid 座標を入力: 망 좌표 입력: - 输入网格座标: - 輸入網格座標: + 输入网格座标: + 輸入網格座標: Name of [%1] @@ -158,8 +158,8 @@ Nome do [%1] [%1] の名前 [%1] 의 이름 - 名称 [%1] - 名稱 [%1] + 名称 [%1] + 名稱 [%1] MGRS-New @@ -174,8 +174,8 @@ MGRS-Novo MGRS-New MGRS-새 것 - 军事网格座标系统-新型 - 軍事網格座標系統-新型 + 军事网格座标系统-新型 + 軍事網格座標系統-新型 WGD @@ -190,8 +190,8 @@ WGD WGD WGD - 世界座标 - 世界座標 + 世界座标 + 世界座標 Range: @@ -206,8 +206,8 @@ Distância: 距離: 거리: - 范围: - 範圍: + 范围: + 範圍: Compass Direction @@ -222,8 +222,8 @@ Direção na bússula 方位磁石での方位 방위 - 指北针方位 - 指北針方位 + 指北针方位 + 指北針方位 Mark @@ -238,8 +238,8 @@ Marca マーク 표시 - 标记 - 標記 + 标记 + 標記 Waypoints @@ -254,8 +254,8 @@ Waypoints ウェイポイント 웨이포인트 - 路径点 - 路徑點 + 路径点 + 路徑點 Connect To @@ -270,8 +270,8 @@ Conectar à 次に接続 연결 - 连接到 - 連接到 + 连接到 + 連接到 Settings @@ -286,8 +286,8 @@ Opções 設定 설정 - 设定 - 設定 + 设定 + 設定 SetWP @@ -302,8 +302,8 @@ Definir WP ウェイポイント設定 웨이포인트 설정 - 设置路径点 - 設置路徑點 + 设置路径点 + 設置路徑點 Add @@ -318,8 +318,8 @@ Adicionar 追加 더하기 - 新增 - 新增 + 新增 + 新增 Delete @@ -334,8 +334,8 @@ Törlés 削除 지우기 - 删除 - 刪除 + 删除 + 刪除 Toggle MicroDAGR Display Mode @@ -350,8 +350,8 @@ Alternar Modo de Display do MicroDAGR MicroDAGR の表示モード MicroDAGR 화면 모드 토글 - 切换微型军用GPS接收器显示模式 - 切換微型軍用GPS接收器顯示模式 + 切换微型军用GPS接收器显示模式 + 切換微型軍用GPS接收器顯示模式 Show MicoDAGR @@ -366,8 +366,8 @@ Mostrar MicroDAGR MicoDAGR を表示 MicroDAGR 꺼내기 - 显示微型军用GPS接收器 - 顯示微型軍用GPS接收器 + 显示微型军用GPS接收器 + 顯示微型軍用GPS接收器 Configure MicroDAGR @@ -382,8 +382,8 @@ Configurar MicroDAGR MicroDAGR を設定 MicroDAGR 설정하기 - 设定微型军用GPS接收器 - 設定微型軍用GPS接收器 + 设定微型军用GPS接收器 + 設定微型軍用GPS接收器 Close MicroDAGR @@ -398,8 +398,8 @@ Fechar MicroDAGR MicroDAGR を閉じる MicroDAGR 집어넣기 - 关闭微型军用GPS接收器 - 關閉微型軍用GPS接收器 + 关闭微型军用GPS接收器 + 關閉微型軍用GPS接收器 MicroDAGR Map Fill @@ -414,8 +414,8 @@ Riempimento Mappa MicroDAGR MicroDAGR での地図情報 MicroDAGR - 지도채우기 - 微型军用GPS接收器地图资料 - 微型軍用GPS接收器地圖資料 + 微型军用GPS接收器地图资料 + 微型軍用GPS接收器地圖資料 MicroDAGR Map Fill @@ -430,8 +430,8 @@ Riempimento Mappa MicroDAGR MicroDAGR での地図情報 MicroDAGR - 지도채우기 - 微型军用GPS接收器地图资料 - 微型軍用GPS接收器地圖資料 + 微型军用GPS接收器地图资料 + 微型軍用GPS接收器地圖資料 How much map data is filled on MicroDAGR's @@ -446,8 +446,8 @@ Quanti dati sono trasferiti nella mappa del MicroDAGR MicroDAGR で表示する地図情報を決定します 얼마나 많은 데이터가 MicroDAGR에 있는지에 대한 정보 - 有多少地图数据会显示在微型军用GPS接收器 - 有多少地圖數據會顯示在微型軍用GPS接收器 + 有多少地图数据会显示在微型军用GPS接收器 + 有多少地圖數據會顯示在微型軍用GPS接收器 Full Satellite + Buildings @@ -462,8 +462,8 @@ Satellite Completo + Edifici 完全な衛星画像と建物 위성 사진 + 건물 - 完整卫星画面 + 建筑物位置 - 完整衛星畫面 + 建築物位置 + 完整卫星画面 + 建筑物位置 + 完整衛星畫面 + 建築物位置 Topographical + Roads @@ -478,8 +478,8 @@ Topografico + Strade 地形と道路 지형학 도표 + 도로 - 地形 + 道路 - 地形 + 道路 + 地形 + 道路 + 地形 + 道路 None (Cannot use map view) @@ -494,8 +494,8 @@ Nessuno (Non puoi usare la vista mappa) なし(地図表示を使えません) 없음 (지도를 볼 수 없음) - 无 (无法检视地图) - 無 (無法檢視地圖) + 无 (无法检视地图) + 無 (無法檢視地圖) Controls how much data is filled on the microDAGR items. Less data restricts the map view to show less on the minimap. @@ -510,8 +510,8 @@ Controlla quanti dati sono presenti negli oggetti MicroDAGR. Meno dati costringono la vista mappa a mostrare meno informazioni nella minimappa. アイテム上で表示されるデータ量を決定します。設定を減らすと地図上での情報が少なくなります。 MicroDAGR에 얼마나 많은 데이터가 들어있는지 정합니다. 적을 수록 지도상에도 비춰지는게 적어집니다. - 设定有多少数据会显示在微型军用GPS接收器上. 这些资料的多寡会反映在迷你地图的显示上. - 設定有多少數據會顯示在微型軍用GPS接收器上. 這些資料的多寡會反映在迷你地圖的顯示上. + 设定有多少数据会显示在微型军用GPS接收器上. 这些资料的多寡会反映在迷你地图的显示上. + 設定有多少數據會顯示在微型軍用GPS接收器上. 這些資料的多寡會反映在迷你地圖的顯示上. diff --git a/addons/minedetector/stringtable.xml b/addons/minedetector/stringtable.xml index 99e1c2d0bce..0e2e31e5a6c 100644 --- a/addons/minedetector/stringtable.xml +++ b/addons/minedetector/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -11,8 +11,8 @@ Metalldetektor 지뢰탐지기 Metal detector - 金属探测器 - 金屬探測器 + 金属探测器 + 金屬探測器 Metal detector @@ -24,8 +24,8 @@ Metalldetektor 지뢰탐지기 Metal detector - 金属探测器 - 金屬探測器 + 金属探测器 + 金屬探測器 Activate @@ -37,8 +37,8 @@ Aktivieren 작동 Attiva - 启用探测器 - 啟用探測器 + 启用探测器 + 啟用探測器 Deactivate @@ -50,8 +50,8 @@ Deaktivieren 끄기 Disattiva - 停用探测器 - 停用探測器 + 停用探测器 + 停用探測器 Connect Headphones @@ -63,8 +63,8 @@ 헤드폰에 연결 Connecter les écouteurs Connetti Auricolari - 连接耳机 - 連接耳機 + 连接耳机 + 連接耳機 Disconnect Headphones @@ -76,8 +76,8 @@ 헤드폰 연결끊기 Déconnecter les écouteurs Disconnetti Auricolari - 断开耳机 - 斷開耳機 + 断开耳机 + 斷開耳機 Headphones Connected @@ -89,8 +89,8 @@ 헤드폰 연결됨 Écouteurs connectés Auricolari Connessi - 已连接耳机 - 已連接耳機 + 已连接耳机 + 已連接耳機 Headphones Disconnected @@ -102,8 +102,8 @@ 헤드폰 연결끊김 Écouteurs déconnectés Auricolari Disconnessi - 已断开耳机 - 已斷開耳機 + 已断开耳机 + 已斷開耳機 diff --git a/addons/missileguidance/stringtable.xml b/addons/missileguidance/stringtable.xml index 7cf2cc30e04..72de5524220 100644 --- a/addons/missileguidance/stringtable.xml +++ b/addons/missileguidance/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Продвинутое наведение ракет 高度なミサイルの誘導 고급 미사일 유도 - 进阶飞弹制导 - 進階飛彈制導 + 进阶飞弹制导 + 進階飛彈制導 Advanced missile guidance, or AMG, provides multiple enhancements to missile locking and firing. It is also a framework required for missile weapon types. @@ -30,8 +30,8 @@ Pokočilé navádění raket (AMG) poskytuje několik vylepšení pro lepší zaměření a následnou střelbu. Je to prvek vyžadovaný u typu zbraní jako jsou rakety. 高度なミサイルの誘導、または AMG はミサイルの捕捉と発射に複数の強化をあたえます。これはミサイルの種類によって、枠組みを必要とします。 고급 미사일 유도 혹은 AMG 는 표적 획득 및 발사를 위한 여러 기능을 제공합니다. 미사일 종류에따라 체계가 필요합니다. - 进阶飞弹制导增强了多种导弹锁定和射击的能力. 此系统适用于所有飞弹类型的武器. - 進階飛彈制導增強了多種導彈鎖定和射擊的能力. 此系統適用於所有飛彈類型的武器. + 进阶飞弹制导增强了多种导弹锁定和射击的能力. 此系统适用于所有飞弹类型的武器. + 進階飛彈制導增強了多種導彈鎖定和射擊的能力. 此系統適用於所有飛彈類型的武器. Hydra-70 DAGR Missile @@ -46,8 +46,8 @@ Hydra-70 DAGR Hydra-70 DAGR ミサイル Hydra-70 DAGR 미사일 - 九头蛇-70 直接攻击导引飞弹 - 九頭蛇-70 直接攻擊導引飛彈 + 九头蛇-70 直接攻击导引飞弹 + 九頭蛇-70 直接攻擊導引飛彈 DAGR @@ -62,8 +62,8 @@ DAGR DAGR DAGR - 直接攻击导引飞弹 - 直接攻擊導引飛彈 + 直接攻击导引飞弹 + 直接攻擊導引飛彈 Hydra-70 DAGR Laser Guided Missile @@ -78,8 +78,8 @@ Управляемая ракета лазерного наведения Hydra-70 DAGR Hydra-70 DAGR レーザ誘導ミサイル Hydra-70 DAGR 레이저 유도 미사일 - 九头蛇-70 直接攻击雷射导引飞弹e - 九頭蛇-70 直接攻擊雷射導引飛彈e + 九头蛇-70 直接攻击雷射导引飞弹e + 九頭蛇-70 直接攻擊雷射導引飛彈e Hellfire II AGM-114K Missile @@ -94,8 +94,8 @@ Hellfire II AGM-114K Hellfire II AGM-114K ミサイル Hellfire II AGM-114K 미사일 - 地狱火II型 AGM-114K 导弹 - 地獄火II型 AGM-114K 導彈 + 地狱火II型 AGM-114K 导弹 + 地獄火II型 AGM-114K 導彈 AGM-114K @@ -110,8 +110,8 @@ AGM-114K AGM-114K AGM-114K - AGM-114K - AGM-114K + AGM-114K + AGM-114K Hellfire II AGM-114K Laser Guided Missile @@ -126,8 +126,8 @@ Управляемая ракета лазерного наведения Hellfire II AGM-114K Hellfire II AGM-114K レーザ誘導ミサイル Hellfire II AGM-114K 레이저 유도 미사일 - 地狱火II型 AGM-114K 雷射导引飞弹 - 地獄火II型 AGM-114K 雷射導引飛彈 + 地狱火II型 AGM-114K 雷射导引飞弹 + 地獄火II型 AGM-114K 雷射導引飛彈 Off @@ -142,8 +142,8 @@ Spento 無効 끄기 - 关闭 - 關閉 + 关闭 + 關閉 Player Only @@ -158,8 +158,8 @@ Solo Giocatore プレイヤーのみ 오직 플레이어만 - 只有玩家 - 只有玩家 + 只有玩家 + 只有玩家 Player and AI @@ -173,8 +173,8 @@ Игрок и боты Giocatore ed IA プレイヤーと AI - 玩家和AI - 玩家和AI + 玩家和AI + 玩家和AI Cycle Fire Mode @@ -189,8 +189,8 @@ Alterar Modo de Disparo 発射モード切り替え 발사 방식 순환 - 循环切换开火模式 - 循環切換開火模式 + 循环切换开火模式 + 循環切換開火模式 diff --git a/addons/missionmodules/stringtable.xml b/addons/missionmodules/stringtable.xml index d9548493db6..f69fbad1ec1 100644 --- a/addons/missionmodules/stringtable.xml +++ b/addons/missionmodules/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Moduli Missione ACE ACE ミッション モジュール ACE 미션 모듈 - ACE 任务模块 - ACE 任務模塊 + ACE 任务模块 + ACE 任務模塊 Ambiance Sounds [ACE] @@ -30,8 +30,8 @@ Souni Ambientali [ACE] 環境音 [ACE] 환경 효과음 [ACE] - 环境声音 [ACE] - 環境聲音 [ACE] + 环境声音 [ACE] + 環境聲音 [ACE] Sounds @@ -46,8 +46,8 @@ Suoni 効果音 효과음 - 声音 - 聲音 + 声音 + 聲音 Class names of the ambiance sounds to be played. Seperated by ',' @@ -61,8 +61,8 @@ Nomi classi dei suoni ambientali da eseguire. Separati da ',' 再生する環境音のクラスネームを記載。','で複数指定できます。 재생되는 환경 효과음의 단위와 이름입니다. ','로 구분됩니다. - 输入想使用的环境声音classname. 每个classname用','做区隔 - 輸入想使用的環境聲音classname. 每個classname用','做區隔 + 输入想使用的环境声音classname. 每个classname用','做区隔 + 輸入想使用的環境聲音classname. 每個classname用','做區隔 Minimal Distance @@ -77,8 +77,8 @@ Distanza Minimale 最低距離 최소 거리 - 最小距离 - 最小距離 + 最小距离 + 最小距離 Used for calculating a random position and sets the minimal distance between the players and the played sound file(s) @@ -93,8 +93,8 @@ Usati per calcolare una posizione casuale ed impostare la distanza minima tra i giocatori ed il file suono eseguito 無作為な位置への計算や、プレイヤーと再生されるファイルの間へ最低距離を設定します 무작위 위치 계산에 사용되며 플레이어와 재생 된 사운드 파일 간의 최소 거리를 설정합니다. - 声音将随机产生在玩家附近, 此选项定义该声音最近会距离玩家多少公尺. - 聲音將隨機產生在玩家附近, 此選項定義該聲音最近會距離玩家多少公尺. + 声音将随机产生在玩家附近, 此选项定义该声音最近会距离玩家多少公尺. + 聲音將隨機產生在玩家附近, 此選項定義該聲音最近會距離玩家多少公尺. Maximum Distance @@ -109,8 +109,8 @@ Distanza Massima 最大距離 최대 거리 - 最大距离 - 最大距離 + 最大距离 + 最大距離 Used for calculating a random position and sets the maximum distance between the players and the played sound file(s) @@ -125,8 +125,8 @@ Usato per calcolare una posizione casuale ed impostare la distanza massima tra giocatori e il file suono eseguito 無作為な位置への計算や、プレイヤーと再生されるファイルの間へ最大距離を設定します 무작위 위치 계산에 사용되며 플레이어와 재생 된 사운드 파일 간의 최대 거리를 설정합니다. - 声音将随机产生在玩家附近, 此选项定义该声音最远会距离玩家多少公尺. - 聲音將隨機產生在玩家附近, 此選項定義該聲音最遠會距離玩家多少公尺. + 声音将随机产生在玩家附近, 此选项定义该声音最远会距离玩家多少公尺. + 聲音將隨機產生在玩家附近, 此選項定義該聲音最遠會距離玩家多少公尺. Minimal Delay @@ -141,8 +141,8 @@ Pausa Minima 最低遅延 최소 지연 - 最小延迟 - 最小延遲 + 最小延迟 + 最小延遲 Minimal delay between sounds played @@ -157,8 +157,8 @@ Pausa Minima tra suoni eseguiti 再生されるまでの最低遅延 재생된 소리간 최소 지연시간 - 设定每个声音档案中间最少间隔多久再进行播放 - 設定每個聲音檔案中間最少間隔多久再進行播放 + 设定每个声音档案中间最少间隔多久再进行播放 + 設定每個聲音檔案中間最少間隔多久再進行播放 Maximum Delay @@ -173,8 +173,8 @@ Pausa Massima 最大遅延 최대 지연 - 最大延迟 - 最大延遲 + 最大延迟 + 最大延遲 Maximum delay between sounds played @@ -189,8 +189,8 @@ Pausa Massima tra suoni eseguiti 再生されるまでの最大遅延 재생된 소리간 최대 지연시간 - 设定每个声音档案中间最多间隔多久再进行播放 - 設定每個聲音檔案中間最多間隔多久再進行播放 + 设定每个声音档案中间最多间隔多久再进行播放 + 設定每個聲音檔案中間最多間隔多久再進行播放 Follow Players @@ -205,8 +205,8 @@ Segui Giocatori プレイヤーを追随 플레이어 따라가기 - 跟随玩家 - 跟隨玩家 + 跟随玩家 + 跟隨玩家 Follow players. If set to false, loop will play sounds only nearby logic position. @@ -221,8 +221,8 @@ Segui Giocatori. Se impostato su falso, il ciclo eseguirà i suoni solo vicino ad una posizione logica. プレイヤーを追随します。False に設定するとロジックの近くで延々と再生します。 플레이어를 따라갑니다. 거짓으로 설정될경우 오직 한 자리에서만 반복해서 소리를 재생합니다. - 设定声音是否会在玩家的附近产生. 假如关闭此功能, 声音只会在模块的位置产生. - 設定聲音是否會在玩家的附近產生. 假如關閉此功能, 聲音只會在模塊的位置產生. + 设定声音是否会在玩家的附近产生. 假如关闭此功能, 声音只会在模块的位置产生. + 設定聲音是否會在玩家的附近產生. 假如關閉此功能, 聲音只會在模塊的位置產生. Volume @@ -237,8 +237,8 @@ Volume 音量 볼륨 - 音量 - 音量 + 音量 + 音量 The volume of the sounds played @@ -253,8 +253,8 @@ Il volume dei suoni eseguiti 再生される音の大きさ 재생되는 소리의 볼륨 - 调整声音的音量 - 調整聲音的音量 + 调整声音的音量 + 調整聲音的音量 Ambiance sounds loop (synced across MP) @@ -269,8 +269,8 @@ Ciclo Suoni Ambientali (sincronizzato in MP) 環境音の繰り返し (MP 間で同期させます) 환경 효과음 반복 (멀티플레이 전반적으로 동기화됨) - 循环的环境声音 (在多人游戏中会同步所有玩家的播放状态) - 循環的環境聲音 (在多人遊戲中會同步所有玩家的播放狀態) + 循环的环境声音 (在多人游戏中会同步所有玩家的播放状态) + 循環的環境聲音 (在多人遊戲中會同步所有玩家的播放狀態) diff --git a/addons/mk6mortar/stringtable.xml b/addons/mk6mortar/stringtable.xml index e2dcfabad85..58c0af47d64 100644 --- a/addons/mk6mortar/stringtable.xml +++ b/addons/mk6mortar/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Tavola di tiro 82mm 82mm 射表 82mm 사거리표 - 82mm迫击炮射表 - 82mm迫擊炮射表 + 82mm迫击炮射表 + 82mm迫擊炮射表 Range Table for the Mk6 82mm Mortar @@ -30,8 +30,8 @@ Tavola di tiro per il mortaio calibro 82mm Mk6 Mk6 82mm 迫撃砲の射表 Mk6 82mm 박격포 사격을 위한 사거리표 - MK6 82mm迫击炮射表 - MK6 82mm迫擊炮射表 + MK6 82mm迫击炮射表 + MK6 82mm迫擊炮射表 Open 82mm Rangetable @@ -46,8 +46,8 @@ Apri la tavola di tiro 82mm 82mm 射表を開く 82mm 사거리표 열기 - 开启82mm迫击炮射表 - 開啟82mm迫擊炮射表 + 开启82mm迫击炮射表 + 開啟82mm迫擊炮射表 Charge @@ -62,8 +62,8 @@ Carica 装薬 장약 - 装药 - 裝藥 + 装药 + 裝藥 Mk6 Settings @@ -78,8 +78,8 @@ Impostazioni Mk6 Mk6 設定 Mk6 설정 - MK6设定 - MK6設定 + MK6设定 + MK6設定 Air Resistance @@ -94,8 +94,8 @@ Resistenza dell'Aria 空気抵抗 공기저항 - 空气阻力 - 空氣阻力 + 空气阻力 + 空氣阻力 For Player Shots, Model Air Resistance and Wind Effects @@ -110,8 +110,8 @@ Per Proiettili dei Giocatori, simula la Resistenza dell'Aria e gli Effetti del Vento プレイヤが射撃すると、空気抵抗モデルと風による影響をあたえます。 플레이어 사격시 공기저항과 바람에 영향을 받습니다 - 设定由玩家射击的迫击炮, 将会受到空气阻力与风力的影响 - 設定由玩家射擊的迫擊砲, 將會受到空氣阻力與風力的影響 + 设定由玩家射击的迫击炮, 将会受到空气阻力与风力的影响 + 設定由玩家射擊的迫擊砲, 將會受到空氣阻力與風力的影響 Allow Mk6 Computer @@ -126,8 +126,8 @@ Consenti Computer Mk6 Mk6 コンピュータを許可 Mk6 탄도계산컴퓨터 허가 - 允许使用MK6射控电脑 - 允許使用MK6射控電腦 + 允许使用MK6射控电脑 + 允許使用MK6射控電腦 Show the Computer and Rangefinder (these NEED to be removed if you enable air resistance) @@ -142,8 +142,8 @@ Mostra il Computer e Distaziometro (questi DEVONO essere rimossi se vuoi abilitare la resistenza dell'aria) コンピュータと距離を表示します (空気抵抗を有効化している場合は必ず削除してください) 탄도계산컴퓨터와 거리측정기를 보여줍니다(공기저항을 활성화했을경우 이 항목은 비활성화 되어야만 합니다) - 显示射控电脑和测距仪 (如果有启用空气阻力功能时, 须停用此项功能) - 顯示射控電腦和測距儀 (如果有啟用空氣阻力功能時, 須停用此項功能) + 显示射控电脑和测距仪 (如果有启用空气阻力功能时, 须停用此项功能) + 顯示射控電腦和測距儀 (如果有啟用空氣阻力功能時, 須停用此項功能) Allow Mk6 Compass @@ -158,8 +158,8 @@ Consenti Bussola Mk6 Mk6 への方位磁石を有効化 Mk6 나침반 허용 - 允许使用MK6指北针 - 允許使用MK6指北針 + 允许使用MK6指北针 + 允許使用MK6指北針 Show the Mk6 Digital Compass @@ -174,8 +174,8 @@ Mostra la Bussola Digitale Mk6 Mk6 のデジタル方位磁石を表示 Mk6 에서 전자 나침반을 보여줍니다 - 显示MK6的数位指北针 - 顯示MK6的數位指北針 + 显示MK6的数位指北针 + 顯示MK6的數位指北針 This module allows you to setup Mk6 mortar settings. @@ -189,8 +189,8 @@ Este módulo permite configurar los parámetros del mortero Mk6. Mk6 迫撃砲への設定をできます。 이 모듈은 Mk6 설치 설정을 가능케 합니다. - 这个模块允许你设定MK6迫击炮的相关功能. - 這個模塊允許你設定MK6迫擊砲的相關功能. + 这个模块允许你设定MK6迫击炮的相关功能. + 這個模塊允許你設定MK6迫擊砲的相關功能. Use Ammunition handling @@ -203,8 +203,8 @@ Использовать манипуляции с боеприпасами 弾薬の取り扱い 탄약 관리 활성화 - 使用手动弹药装卸 - 使用手動彈藥裝卸 + 使用手动弹药装卸 + 使用手動彈藥裝卸 Removes mortar magazines, requiring individual rounds to be loaded by the gunner or loader. Does not affect AI mortars. @@ -217,8 +217,8 @@ Удаляет артиллерийские магазины, требует загрузку отдельных снарядов стрелком или заряжащим. Не влияет на артиллерию ИИ. 迫撃砲から弾薬を除去します。射手か装填手により予め装填されている必要があります。AI 迫撃砲へ影響を与えません。 박격포 탄창을 제거합니다, 사수나 장전수가 개별적으로 탄환을 넣어줘야만 합니다. 인공지능은 영향을 받지 않습니다. - 开启此功能时. 迫击炮的弹药需由炮手与装填手共同合作来进行装填. 此功能并不影响由AI射击的迫击炮. - 開啟此功能時. 迫擊砲的彈藥需由砲手與裝填手共同合作來進行裝填. 此功能並不影響由AI射擊的迫擊砲. + 开启此功能时. 迫击炮的弹药需由炮手与装填手共同合作来进行装填. 此功能并不影响由AI射击的迫击炮. + 開啟此功能時. 迫擊砲的彈藥需由砲手與裝填手共同合作來進行裝填. 此功能並不影響由AI射擊的迫擊砲. Remove Round @@ -232,8 +232,8 @@ Извлечь снаряд 弾薬を除去 탄약 제거 - 卸除弹头 - 卸除彈頭 + 卸除弹头 + 卸除彈頭 Load Mortar @@ -247,8 +247,8 @@ Зарядить миномет 弾薬を装填 탄약 장전 - 装载弹头 - 裝載彈頭 + 装载弹头 + 裝載彈頭 Unloading Round @@ -261,8 +261,8 @@ Извлечение снаряда 弾薬を除去しています 탄약 제거중 - 卸除弹头中 - 卸除彈頭中 + 卸除弹头中 + 卸除彈頭中 Preparing Round @@ -276,8 +276,8 @@ Подготовка снаряда 事前に装填 탄약 준비중 - 准备弹头中 - 準備彈頭中 + 准备弹头中 + 準備彈頭中 Load HE @@ -291,8 +291,8 @@ Зарядить фугасный りゅう弾を装填 고폭탄 장전 - 装载高爆弹 - 裝載高爆彈 + 装载高爆弹 + 裝載高爆彈 Load Smoke @@ -306,8 +306,8 @@ Зарядить дымовой 煙幕弾を装填 연막탄 장전 - 装载烟雾弹 - 裝載煙霧彈 + 装载烟雾弹 + 裝載煙霧彈 Load Illumination @@ -321,8 +321,8 @@ Зарядить осветительный 照明弾を装填 조명탄 장전 - 装载照明弹 - 裝載照明彈 + 装载照明弹 + 裝載照明彈 Load Guided HE @@ -336,8 +336,8 @@ Зарядить фугасный управляемый 誘導りゅう弾を装填 유도 고폭탄 장전 - 装载导引高爆弹 - 裝載導引高爆彈 + 装载导引高爆弹 + 裝載導引高爆彈 Load Laser Guided HE @@ -351,8 +351,8 @@ Зарядить фугасный управляемый по ЛЦУ レーザ誘導りゅう弾を装填 레이저 유도 고폭탄 장전 - 装载雷射导引高爆弹 - 裝載雷射導引高爆彈 + 装载雷射导引高爆弹 + 裝載雷射導引高爆彈 82mm HE Round @@ -366,8 +366,8 @@ Фугасный снаряд 82мм 82mm りゅう弾 82mm 고폭탄 - 82mm高爆弹 - 82mm高爆彈 + 82mm高爆弹 + 82mm高爆彈 82mm Smoke Round @@ -381,8 +381,8 @@ Дымовой снаряд 82мм 82mm 煙幕弾 82mm 연막탄 - 82mm烟雾弹 - 82mm煙霧彈 + 82mm烟雾弹 + 82mm煙霧彈 82mm Illumination Round @@ -396,8 +396,8 @@ Осветительный снаряд 82мм 82mm 照明弾 82mm 조명탄 - 82mm照明弹 - 82mm照明彈 + 82mm照明弹 + 82mm照明彈 82mm Guided HE Round @@ -411,8 +411,8 @@ Фугасный снаряд управляемый 82мм 82mm 誘導りゅう弾 82mm 유도 고폭탄 - 82mm导引高爆弹 - 82mm導引高爆彈 + 82mm导引高爆弹 + 82mm導引高爆彈 82mm Laser Guided HE Round @@ -426,8 +426,8 @@ Фугасный снаряд управляемый по ЛЦУ 82мм 82mm レーザ誘導りゅう弾 82mm 레이저 유도 고폭탄 - 82mm雷射导引高爆弹 - 82mm雷射導引高爆彈 + 82mm雷射导引高爆弹 + 82mm雷射導引高爆彈 Used in Mk6 mortar @@ -441,8 +441,8 @@ Использовался в миномете Mk6 Mk6 mortar で使います Mk6 박격포에 사용됨 - 用于Mk6迫击炮 - 用於Mk6迫擊砲 + 用于Mk6迫击炮 + 用於Mk6迫擊砲 [ACE] 82mm HE Rounds Box @@ -456,8 +456,8 @@ [ACE] Ящик фугасных снарядов 82мм [ACE] 82mm りゅう弾入り弾薬箱 [ACE] 82mm 고폭탄 상자 - [ACE] 82mm高爆弹药箱 - [ACE] 82mm高爆彈藥箱 + [ACE] 82mm高爆弹药箱 + [ACE] 82mm高爆彈藥箱 [ACE] 82mm Smoke Rounds Box @@ -471,8 +471,8 @@ [ACE] Ящик дымовых снарядов 82мм [ACE] 82mm 煙幕弾入り弾薬箱 [ACE] 82mm 연막탄 상자 - [ACE] 82mm烟雾弹药箱 - [ACE] 82mm煙霧彈藥箱 + [ACE] 82mm烟雾弹药箱 + [ACE] 82mm煙霧彈藥箱 [ACE] 82mm Illumination Rounds Box @@ -486,8 +486,8 @@ [ACE] Ящик осветительных снарядов 82мм [ACE] 82mm 照明弾入り弾薬箱 [ACE] 82mm 조명탄 상자 - [ACE] 82mm照明弹药箱 - [ACE] 82mm照明彈藥箱 + [ACE] 82mm照明弹药箱 + [ACE] 82mm照明彈藥箱 [ACE] 82mm Default Loadout Box @@ -501,8 +501,8 @@ [ACE] Ящик снарядов 82мм (стандартный) [ACE] 82mm 梱包箱 [ACE] 82mm 기본 장비 상자 - [ACE] 82mm预设弹药箱 - [ACE] 82mm預設彈藥箱 + [ACE] 82mm预设弹药箱 + [ACE] 82mm預設彈藥箱 diff --git a/addons/movement/stringtable.xml b/addons/movement/stringtable.xml index eecbf9f8339..5bba66974ae 100644 --- a/addons/movement/stringtable.xml +++ b/addons/movement/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Показывать вес в фунтах ポンドで重量を表示する 무게를 파운드(lb)로 보여줍니다 - 使用磅来显示重量 - 使用磅來顯示重量 + 使用磅来显示重量 + 使用磅來顯示重量 Weight: @@ -30,8 +30,8 @@ Вес: 重量: 무게: - 重量: - 重量: + 重量: + 重量: Climb @@ -46,8 +46,8 @@ Subir 登る 오르기 - 攀爬 - 攀爬 + 攀爬 + 攀爬 Can't climb here @@ -61,8 +61,8 @@ Non puoi arrampicarti qui Não se pode subir aqui ここは登れない - 这里无法攀爬 - 這裡無法攀爬 + 这里无法攀爬 + 這裡無法攀爬 diff --git a/addons/mx2a/stringtable.xml b/addons/mx2a/stringtable.xml index ab92ad08c76..3239aef1ed2 100644 --- a/addons/mx2a/stringtable.xml +++ b/addons/mx2a/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ MX-2A MX-2A MX-2A - MX-2A - MX-2A + MX-2A + MX-2A Thermal imaging device @@ -30,8 +30,8 @@ Dispositivo di visione termica サーマル画像表示双眼鏡 열영상 장치 - 热成像装置 - 熱成像裝置 + 热成像装置 + 熱成像裝置 diff --git a/addons/nametags/stringtable.xml b/addons/nametags/stringtable.xml index ba7ba558729..fde54a86078 100644 --- a/addons/nametags/stringtable.xml +++ b/addons/nametags/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Mostrar nomes 名前の表示 이름 표시 - 显示名称 - 顯示名稱 + 显示名称 + 顯示名稱 Show player names @@ -30,8 +30,8 @@ Показывать имена игроков (включить имена) プレイヤ名を表示 플레이어 이름 표시 - 显示玩家名称 - 顯示玩家名稱 + 显示玩家名称 + 顯示玩家名稱 Show player name only on cursor (requires player names) @@ -46,8 +46,8 @@ Показать имена игроков только под курсором (при включенных именах) カーソルを合わせた時だけプレイヤ名を表示 (プレイヤ名が必要 커서로 지시할때만 플레이어 이름 표시(플레이어 이름 필요) - 仅在准心指到后显示玩家名称 (玩家必须有设定名称) - 僅在準心指到後顯示玩家名稱 (玩家必須有設定名稱) + 仅在准心指到后显示玩家名称 (玩家必须有设定名称) + 僅在準心指到後顯示玩家名稱 (玩家必須有設定名稱) Show player name only on keypress (requires player names) @@ -62,8 +62,8 @@ Mostrar nomes somente ao pressionar teclar (requer nome de jogadores) キーを押した時だけプレイヤ名を表示 (プレイヤ名が必要) 키를 누를때만 플레이어 이름 표시(플레이어 이름 필요) - 仅在按按键后显示玩家名称 (玩家必须有设定名称) - 僅在按按鍵後顯示玩家名稱 (玩家必須有設定名稱) + 仅在按按键后显示玩家名称 (玩家必须有设定名称) + 僅在按按鍵後顯示玩家名稱 (玩家必須有設定名稱) Show player ranks (requires player names) @@ -78,8 +78,8 @@ Показывать звания игроков (при вкл. именах) プレイヤの階級を表示 (プレイヤ名が必要) 플레이어 계급 표시 (플레이어 이름 필요) - 显示玩家军阶 (玩家必须有设定名称) - 顯示玩家軍階 (玩家必須有設定名稱) + 显示玩家军阶 (玩家必须有设定名称) + 顯示玩家軍階 (玩家必須有設定名稱) Show vehicle crew info @@ -94,8 +94,8 @@ Mostra l'elenco del personale a bordo 車両の乗員を表示 차량 승무원 정보 표시 - 显示载具成员信息 - 顯示載具成員信息 + 显示载具成员信息 + 顯示載具成員信息 Show name tags for AI units @@ -110,8 +110,8 @@ Mostrar nomes para unidades de IA AI ユニットの名札を表示 인공지능 인원 이름 표시 - 显示AI单位名称 - 顯示AI單位名稱 + 显示AI单位名称 + 顯示AI單位名稱 Show SoundWaves (requires player names) @@ -126,8 +126,8 @@ Mostrar onda sonora (requer nome de jogadores) 音波形を表示 (プレイヤ名が必要) 음파 표시 (플레이어 이름 필요) - 当玩家讲话时, 显示声波图案 (玩家必须有设定名称) - 當玩家講話時, 顯示聲波圖案 (玩家必須有設定名稱) + 当玩家讲话时, 显示声波图案 (玩家必须有设定名称) + 當玩家講話時, 顯示聲波圖案 (玩家必須有設定名稱) Default Nametag Color (Non Group Members) @@ -142,8 +142,8 @@ Cor padrão do nome (unidades fora do grupo) 標準の名札の色(グループ メンバ以外) 기본 이름표 색상 (비-그룹 멤버) - 预设名称颜色 (非同小队队友) - 預設名稱顏色 (非同小隊隊友) + 预设名称颜色 (非同小队队友) + 預設名稱顏色 (非同小隊隊友) Name Tags @@ -158,8 +158,8 @@ Etichette Nomi 名札 이름표 - 玩家名称 - 玩家名稱 + 玩家名称 + 玩家名稱 Player Names View Dist. @@ -174,8 +174,8 @@ Distanza Visiva Etichette Nomi プレイヤ名が見える範囲 플레이어 이름 표시 거리 - 玩家名称显示距离 - 玩家名稱顯示距離 + 玩家名称显示距离 + 玩家名稱顯示距離 Distance in meters at which player names are shown. Default: 5 @@ -190,8 +190,8 @@ Distanza in metri a cui sono visibili i nomi giocatori. Default: 5 プレイヤの周り何メートルまで名札を表示できます。標準:5 플레이어 이름이 표시되는 미터. 기본설정: 5 - 设定名称在多少距离以内显示. 预设:5公尺 - 設定名稱在多少距離以內顯示. 預設:5公尺 + 设定名称在多少距离以内显示. 预设:5公尺 + 設定名稱在多少距離以內顯示. 預設:5公尺 Show name tags for AI? @@ -206,8 +206,8 @@ Mostra etichette nomi per IA? AI の名札も表示しますか? 인공지능의 이름도 표시합니까? - 显示AI名称? - 顯示AI名稱? + 显示AI名称? + 顯示AI名稱? Show the name and rank tags for friendly AI units? Default: Do not force @@ -222,8 +222,8 @@ Mostra etichette nomi ed etichette gradi per unità IA alleate? Default: Non forzare 友軍の AI にも名前と階級を表示しますか?標準:強制しない 아군 인공지능의 계급을 표시합니까? 기본설정: 강제하지 않음 - 显示友军AI的名称和军阶? 预设: 不显示 - 顯示友軍AI的名稱和軍階? 預設: 不顯示 + 显示友军AI的名称和军阶? 预设: 不显示 + 顯示友軍AI的名稱和軍階? 預設: 不顯示 Force Hide @@ -238,8 +238,8 @@ Forza Nascosto 強制で非表示 강제로 숨기기 - 强迫隐藏 - 強迫隱藏 + 强迫隐藏 + 強迫隱藏 Force Show @@ -254,8 +254,8 @@ Forza Mostra 強制で表示 강제로 표시 - 强迫显示 - 強迫顯示 + 强迫显示 + 強迫顯示 Show crew info? @@ -270,8 +270,8 @@ Mostra informazioni equipaggio? 乗員の情報を表示 승무원 정보 표시? - 显示载具成员讯息? - 顯示載具成員訊息? + 显示载具成员讯息? + 顯示載具成員訊息? Show vehicle crew info, or by default allows players to choose it on their own. Default: Do Not Force @@ -286,8 +286,8 @@ Mostra informazioni sull'equipaggio del veicolo, oppure consenti di default di lasciare che siano i giocatori a scegliere. Default: Non Forzare 車両の乗員を表示します。標準ではプレイヤ各々が選べられます。標準:強制しない 승무원 정보를 표시하거나 플레이어가 직접 고르게 냅둡니다. 기본설정: 강제하지 않음 - 显示载具成员讯息. 在预设的情况下, 系统允许玩家自己决定开关此讯息. 预设: 不显示 - 顯示載具成員訊息. 在預設的情況下, 系統允許玩家自己決定開關此訊息. 預設: 不顯示 + 显示载具成员讯息. 在预设的情况下, 系统允许玩家自己决定开关此讯息. 预设: 不显示 + 顯示載具成員訊息. 在預設的情況下, 系統允許玩家自己決定開關此訊息. 預設: 不顯示 Show for Vehicles @@ -302,8 +302,8 @@ Mostra per Veicoli 車両への表示 차량 표시 - 显示给载具指挥官 - 顯示給載具指揮官 + 显示给载具指挥官 + 顯示給載具指揮官 Show cursor NameTag for vehicle commander (only if client has name tags enabled) Default: No @@ -317,8 +317,8 @@ Mostra il nome sul cursore per il comandante del veicolo (solo se il client ha le Etichette Nomi attive) Default: No 車長の名札をカーソルを当てて表示します (クライアント側で名札を有効化する必要があります) 標準:無効 차량의 사령관의 이름표를 표시합니다 (오직 클라이언트가 이름표를 활성화 할시에만 보입니다) 기본설정: 아니요 - 使载具指挥官能透过准心指到别的单位来显示其名称 (仅当客户端的名称功能已启用). 预设: 关闭 - 使載具指揮官能透過準心指到別的單位來顯示其名稱 (僅當客戶端的名稱功能已啟用). 預設: 關閉 + 使载具指挥官能透过准心指到别的单位来显示其名称 (仅当客户端的名称功能已启用). 预设: 关闭 + 使載具指揮官能透過準心指到別的單位來顯示其名稱 (僅當客戶端的名稱功能已啟用). 預設: 關閉 This module allows you to customize settings and range of Name Tags. @@ -333,8 +333,8 @@ Questo modulo ti consente di personalizzare le impostazioni ed il raggio delle Etichette Nomi このモジュールは名札の表示範囲と設定を変更できます。 이 모듈은 당신이 이름표의 범위를 임의로 수정할 수 있게 해줍니다. - 这个模块允许您设定名称和显示范围等设定. - 這個模塊允許您設定名稱和顯示範圍等設定. + 这个模块允许您设定名称和显示范围等设定. + 這個模塊允許您設定名稱和顯示範圍等設定. Only on Cursor @@ -349,8 +349,8 @@ Solo su Cursore カーソルでのみ 커서만 해당 - 只有准心指到时 - 只有準心指到時 + 只有准心指到时 + 只有準心指到時 Only on Keypress @@ -365,8 +365,8 @@ Solo quando Premi Tasto キー押下のみ 키를 누를경우만 - 只有按按键时 - 只有按按鍵時 + 只有按按键时 + 只有按按鍵時 Only on Cursor and Keypress @@ -381,8 +381,8 @@ Solo su Cursore e quando Premi Tasto カーソルとキー押下のみ 커서와 키를 누를경우만 - 只有在准心指到和按按键时 - 只有在準心指到和按按鍵時 + 只有在准心指到和按按键时 + 只有在準心指到和按按鍵時 Force Show Only on Cursor @@ -397,8 +397,8 @@ Forza Mostra solo su Cursore カーソルでのみに強制する 커서만 강제로 해당 - 强制仅显示在准心指到时 - 強制僅顯示在準心指到時 + 强制仅显示在准心指到时 + 強制僅顯示在準心指到時 Force Show Only on Keypress @@ -413,8 +413,8 @@ Forza Mostra solo quando Premi Tasto キー押下のみに強制する 키를 누를경우만 강제로 해당 - 强制仅显示在按按键时 - 強制僅顯示在按按鍵時 + 强制仅显示在按按键时 + 強制僅顯示在按按鍵時 Force Show Only on Cursor and Keypress @@ -429,8 +429,8 @@ Forza Mostra solo su Cursore e quando Premi Tasto カーソルとキー押下のみに強制する 커서와 키를 누를경우만 강제로 해당 - 强制显示在准心指到和按按键时 - 強制顯示在準心指到和按按鍵時 + 强制显示在准心指到和按按键时 + 強制顯示在準心指到和按按鍵時 Use Nametag settings @@ -445,8 +445,8 @@ Usa impostazioni Etichette Nomi 名札の設定 이름표 설정 사용 - 玩家名称设定 - 玩家名稱設定 + 玩家名称设定 + 玩家名稱設定 Always Show All @@ -461,8 +461,8 @@ Mostra Sempre Tutto 常に表示する 항상 모두 표시 - 永远显示全部 - 永遠顯示全部 + 永远显示全部 + 永遠顯示全部 Show player names and set their activation. Default: Enabled @@ -477,8 +477,8 @@ Mostra nomi giocatori ed imposta la loro attivazione. Default: Abilitato プレイヤ名の表示と設定を有効化します。標準:有効 플레이어 이름의 표시와 설정을 활성화합니다. 기본설정: 활성화 - 显示玩家的名称并设置其启动方式. 预设: 启用 - 顯示玩家的名稱並設置其啟動方式. 預設: 啟用 + 显示玩家的名称并设置其启动方式. 预设: 启用 + 顯示玩家的名稱並設置其啟動方式. 預設: 啟用 Effect of sound waves above the heads of speaking players after holding the PTT key. This option works with TFAR and ACRE2. @@ -493,8 +493,8 @@ Effetto delle onde sonore sopra la testa dei giocatori parlanti quando premono il tasto PTT. Questa opzione funziona con TFAR ed ACRE2 プレイヤーが PTT キーを押している間は、音波形を表示します。このオプションは TFAR と ACRE2 で動作します。 플레이어가 PTT로 말할시 머리위에 음파효과를 적용합니다. 이 옵션은 TFAR과 ACRE2가 있을때만 적용됩니다. - 当玩家使用按键发话时, 其头上的角色名称旁会显示声波的图案. 此功能可搭配TFAR、ACRE2等模组使用. - 當玩家使用按鍵發話時, 其頭上的角色名稱旁會顯示聲波的圖案. 此功能可搭配TFAR、ACRE2等模組使用. + 当玩家使用按键发话时, 其头上的角色名称旁会显示声波的图案. 此功能可搭配TFAR、ACRE2等模组使用. + 當玩家使用按鍵發話時, 其頭上的角色名稱旁會顯示聲波的圖案. 此功能可搭配TFAR、ACRE2等模組使用. Nametags Size @@ -509,8 +509,8 @@ Dimensione Etichette Nome 名札の大きさ 이름표 크기 - 玩家名称标记大小 - 玩家名稱標記大小 + 玩家名称标记大小 + 玩家名稱標記大小 Text and Icon Size Scaling @@ -525,8 +525,8 @@ Proporzione Dimensioni Testo ed Icone 文字とアイコンの大きさ 글자와 아이콘 크기 비례 - 文字和图示大小设定 - 文字和圖示大小設定 + 文字和图示大小设定 + 文字和圖示大小設定 Fade on screen border @@ -536,8 +536,8 @@ 화면 가장자리에서 사라짐 Estomper sur les bords de l'écran Sfocatura nei bordi dello schermo - 在荧幕边框旁淡出 - 在螢幕邊框旁淡出 + 在荧幕边框旁淡出 + 在螢幕邊框旁淡出 diff --git a/addons/nightvision/stringtable.xml b/addons/nightvision/stringtable.xml index 1ff3ee43fbf..8e4e1fafde2 100644 --- a/addons/nightvision/stringtable.xml +++ b/addons/nightvision/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Éjjellátó szemüveg (1. Gen.) 夜間暗視装置つきゴーグル (第1世代) 야투경 (1세대) - 夜视镜 (初代) - 夜視鏡 (初代) + 夜视镜 (初代) + 夜視鏡 (初代) NV Goggles (Gen2) @@ -30,8 +30,8 @@ Éjjellátó szemüveg (2. Gen.) 夜間暗視装置つきゴーグル (第2世代) 야투경 (2세대) - 夜视镜 (二代) - 夜視鏡 (二代) + 夜视镜 (二代) + 夜視鏡 (二代) NV Goggles (Gen3) @@ -46,8 +46,8 @@ Éjjellátó szemüveg (3. Gen.) 夜間暗視装置つきゴーグル (第3世代) 야투경 (3세대) - 夜视镜 (三代) - 夜視鏡 (三代) + 夜视镜 (三代) + 夜視鏡 (三代) NV Goggles (Gen3, Brown) @@ -62,8 +62,8 @@ Éjjellátó szemüveg (3. Gen., barna) 夜間暗視装置つきゴーグル (第3世代、ブラウン) 야투경 (3세대, 갈색) - 夜视镜 (三代, 棕色) - 夜視鏡 (三代, 棕色) + 夜视镜 (三代, 棕色) + 夜視鏡 (三代, 棕色) NV Goggles (Gen3, Green) @@ -78,8 +78,8 @@ Éjjellátó szemüveg (3. Gen., zöld) 夜間暗視装置つきゴーグル (第3世代、グリーン) 야투경 (3세대, 녹색) - 夜视镜 (三代, 绿色) - 夜視鏡 (三代, 綠色) + 夜视镜 (三代, 绿色) + 夜視鏡 (三代, 綠色) NV Goggles (Gen3, Black) @@ -94,8 +94,8 @@ Éjjellátó szemüveg (3. Gen., fekete) 夜間暗視装置つきゴーグル (第3世代、ブラック) 야투경 (3세대, 검정색) - 夜视镜 (三代, 黑色) - 夜視鏡 (三代, 黑色) + 夜视镜 (三代, 黑色) + 夜視鏡 (三代, 黑色) NV Goggles (Gen4) @@ -110,8 +110,8 @@ Éjjellátó szemüveg (4. Gen.) 夜間暗視装置つきゴーグル (第4世代) 야투경 (4세대) - 夜视镜 (四代) - 夜視鏡 (四代) + 夜视镜 (四代) + 夜視鏡 (四代) NV Goggles (Wide) @@ -126,8 +126,8 @@ Occhiali notturni (Larghi) 夜間暗視装置つきゴーグル (ワイド) 야투경 (넓음) - 夜视镜 (宽版) - 夜視鏡 (寬版) + 夜视镜 (宽版) + 夜視鏡 (寬版) Brightness: %1 @@ -142,8 +142,8 @@ Luminosità: %1 光度:%1 밝기: %1 - 亮度: %1 - 亮度: %1 + 亮度: %1 + 亮度: %1 Increase NVG Brightness @@ -158,8 +158,8 @@ Aumenta la luminosità dell'NVG 夜間暗視装置の光度を上げる 야투경 밝기 높이기 - 增加夜视镜亮度 - 增加夜視鏡亮度 + 增加夜视镜亮度 + 增加夜視鏡亮度 Decrease NVG Brightness @@ -174,8 +174,8 @@ Riduci la luminosità dell'NVG 夜間暗視装置の光度を下げる 야투경 밝기 줄이기 - 减少夜视镜亮度 - 減少夜視鏡亮度 + 减少夜视镜亮度 + 減少夜視鏡亮度 Nightvision @@ -189,8 +189,8 @@ Vision nocturne 夜間暗視装置 야간투시경 - 夜视 - 夜視 + 夜视 + 夜視 Settings for night vision. @@ -204,8 +204,8 @@ Réglage pour la vision nocturne 夜間暗視装置の設定。 야간투시경 설정 - 设定夜视选项. - 設定夜視選項. + 设定夜视选项. + 設定夜視選項. Disable NVGs in scope @@ -219,8 +219,8 @@ Desactiver les JVN dans les viseurs. スコープを覗くと夜間暗視装置を無効化 조준경 사용시 야투경 비활성화 - 使用瞄准镜时关闭夜视镜 - 使用瞄準鏡時關閉夜視鏡 + 使用瞄准镜时关闭夜视镜 + 使用瞄準鏡時關閉夜視鏡 Blocks the usage of night vision goggles whilst aiming down the sight. @@ -234,8 +234,8 @@ Bloque l'usage des JVN pendant la visée. スコープを使い狙いを付けると、夜間暗視装置を無効化します。 조준시 야투경의 사용을 제한합니다. - 此功能开启后, 当要使用瞄准镜时, 为避免夜视镜镜头碰撞到瞄准镜, 会先拿开夜视镜后再进行瞄准镜瞄准. - 此功能開啟後, 當要使用瞄準鏡時, 為避免夜視鏡鏡頭碰撞到瞄準鏡, 會先拿開夜視鏡後再進行瞄準鏡瞄準. + 此功能开启后, 当要使用瞄准镜时, 为避免夜视镜镜头碰撞到瞄准镜, 会先拿开夜视镜后再进行瞄准镜瞄准. + 此功能開啟後, 當要使用瞄準鏡時, 為避免夜視鏡鏡頭碰撞到瞄準鏡, 會先拿開夜視鏡後再進行瞄準鏡瞄準. diff --git a/addons/nlaw/stringtable.xml b/addons/nlaw/stringtable.xml index 8f7533f9e42..74de6d21d85 100644 --- a/addons/nlaw/stringtable.xml +++ b/addons/nlaw/stringtable.xml @@ -1,26 +1,26 @@ - + NLAW Track Target (Hold) NLAW Traccia Bersaglio (Mantieni) NALW 目標の追跡 (押しっぱ) - 次世代轻型反坦克导弹发射器追踪目标 (按住) - 次世代輕型反坦克導彈發射器追蹤目標 (按住) + 次世代轻型反坦克导弹发射器追踪目标 (按住) + 次世代輕型反坦克導彈發射器追蹤目標 (按住) Direct Attack Attacco Diretto ダイレクト アタック - 直射模式 - 直射模式 + 直射模式 + 直射模式 Overfly Top Attack Attacco dall'alto オーバーフライ トップ アタック - 攻顶模式 - 攻頂模式 + 攻顶模式 + 攻頂模式 diff --git a/addons/optics/stringtable.xml b/addons/optics/stringtable.xml index 903f44e60a0..377cca28bcd 100644 --- a/addons/optics/stringtable.xml +++ b/addons/optics/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ RCO (2D) RCO (2D) RCO (2D) - 步枪战斗光学瞄准镜(2D) - 步槍戰鬥光學瞄準鏡(2D) + 步枪战斗光学瞄准镜(2D) + 步槍戰鬥光學瞄準鏡(2D) RCO (PIP) @@ -30,8 +30,8 @@ RCO (PIP) RCO (PIP) RCO (PIP) - 步枪战斗光学瞄准镜(拟真版) - 步槍戰鬥光學瞄準鏡(擬真版) + 步枪战斗光学瞄准镜(拟真版) + 步槍戰鬥光學瞄準鏡(擬真版) ARCO (2D) @@ -46,8 +46,8 @@ ARCO (2D) ARCO (2D) ARCO (2D) - 先进步枪战斗光学瞄准镜(2D) - 先進步槍戰鬥光學瞄準鏡(2D) + 先进步枪战斗光学瞄准镜(2D) + 先進步槍戰鬥光學瞄準鏡(2D) ARCO (PIP) @@ -62,8 +62,8 @@ ARCO (PIP) ARCO (PIP) ARCO (PIP) - 先进步枪战斗光学瞄准镜(拟真版) - 先進步槍戰鬥光學瞄準鏡(擬真版) + 先进步枪战斗光学瞄准镜(拟真版) + 先進步槍戰鬥光學瞄準鏡(擬真版) MRCO (2D) @@ -78,8 +78,8 @@ MRCO (2D) MRCO (2D) MRCO (2D) - 多距离战斗瞄准镜(2D) - 多距離戰鬥瞄準鏡(2D) + 多距离战斗瞄准镜(2D) + 多距離戰鬥瞄準鏡(2D) MRCO (PIP) @@ -94,8 +94,8 @@ MRCO (PIP) MRCO (PIP) MRCO (PIP) - 多距离战斗瞄准镜(拟真版) - 多距離戰鬥瞄準鏡(擬真版) + 多距离战斗瞄准镜(拟真版) + 多距離戰鬥瞄準鏡(擬真版) MOS (2D) @@ -110,8 +110,8 @@ MOS (2D) MOS (2D) MOS (2D) - 精准光学瞄准镜(2D) - 精準光學瞄準鏡(2D) + 精准光学瞄准镜(2D) + 精準光學瞄準鏡(2D) MOS (PIP) @@ -126,8 +126,8 @@ MOS (PIP) MOS (PIP) MOS (PIP) - 精准光学瞄准镜(拟真版) - 精準光學瞄準鏡(擬真版) + 精准光学瞄准镜(拟真版) + 精準光學瞄準鏡(擬真版) LRPS (2D) @@ -142,8 +142,8 @@ LRPS (2D) LRPS (2D) LRPS (2D) - 长距离精确瞄准镜(2D) - 長距離精確瞄準鏡(2D) + 长距离精确瞄准镜(2D) + 長距離精確瞄準鏡(2D) LRPS (PIP) @@ -158,8 +158,8 @@ LRPS (PIP) LRPS (PIP) LRPS (PIP) - 长距离精确瞄准镜(拟真版) - 長距離精確瞄準鏡(擬真版) + 长距离精确瞄准镜(拟真版) + 長距離精確瞄準鏡(擬真版) diff --git a/addons/optionsmenu/stringtable.xml b/addons/optionsmenu/stringtable.xml index 2264d467619..5b435745617 100644 --- a/addons/optionsmenu/stringtable.xml +++ b/addons/optionsmenu/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Opzioni ACE ACE オプション ACE 옵션 - ACE 设定 - ACE 設定 + ACE 设定 + ACE 設定 Fix Animation @@ -30,8 +30,8 @@ Arrumar Animação アニメーションを修正 동작 고정 - 修复动作BUG - 修復動作BUG + 修复动作BUG + 修復動作BUG Reset All @@ -46,8 +46,8 @@ Resetar Tudo すべて初期化 모두 초기화 - 重置为预设值 - 重置為預設值 + 重置为预设值 + 重置為預設值 Colors @@ -62,8 +62,8 @@ Cores 색상 - 颜色 - 顏色 + 颜色 + 顏色 Options @@ -78,8 +78,8 @@ Opzioni オプション 옵션 - 中文化由[MR]Diss制作 - 設定 + 中文化由[MR]Diss制作 + 設定 Values @@ -94,8 +94,8 @@ Valores - 数值 - 數值 + 数值 + 數值 Setting: @@ -110,8 +110,8 @@ Opção: 設定: 설정: - 设定: - 設定: + 设定: + 設定: Export @@ -126,8 +126,8 @@ Exportar 出力 내보내기 - 输出 - 輸出 + 输出 + 輸出 Open Export Menu @@ -142,8 +142,8 @@ Abrir menu de exportação 出力メニューを開く 내보내기 메뉴 열기 - 开启输出选单 - 開啟輸出選單 + 开启输出选单 + 開啟輸出選單 String input. @@ -158,8 +158,8 @@ Input de String 文字列の入力 문자열 입력 - 输入数值 - 輸入數值 + 输入数值 + 輸入數值 Array. Seperate elements by using ,. @@ -174,8 +174,8 @@ Vetor. Separe elementos usando *,*. アライ。,を使うことで区別できます。 배열. 요소를 ,. 로 나눔 - 阵列. 使用','来做每个值的区隔. - 陣列. 使用','來做每個值的區隔. + 阵列. 使用','来做每个值的区隔. + 陣列. 使用','來做每個值的區隔. Number @@ -190,8 +190,8 @@ Número 숫자 - 数字 - 數字 + 数字 + 數字 Uknown input type @@ -206,8 +206,8 @@ Tipo desonhecido de input 不明な入力です 불분명한 입력입니다 - 未知输入类型 - 未知輸入類型 + 未知输入类型 + 未知輸入類型 Save input @@ -222,8 +222,8 @@ Salvar input 入力を保存 입력 저장 - 储存输入 - 儲存輸入 + 储存输入 + 儲存輸入 Include Client Settings @@ -238,8 +238,8 @@ Incluir opções do cliente クライアント設定を含む 클라이언트 설정 포함 - 包含客户端设定 - 包含客戶端設定 + 包含客户端设定 + 包含客戶端設定 Exclude Client Settings @@ -254,8 +254,8 @@ Excluir opções do cliente クライアント設定を実行する 클라이언트 설정 제외 - 不包含客户端设定 - 不包含客戶端設定 + 不包含客户端设定 + 不包含客戶端設定 Settings exported to clipboard @@ -270,8 +270,8 @@ Opções exportadas para o clipboard. クリップボードに設定を出力する 클립보드로 설정 내보내기 - 设定输出至剪贴簿 - 設定輸出至剪貼簿 + 设定输出至剪贴簿 + 設定輸出至剪貼簿 Option Menu UI Scaling @@ -286,8 +286,8 @@ Proporzioni della interfaccia utente オプション メニューにあるユーザ インタフェイスの大きさ 옵션메뉴 UI 비례도 - 调整设定选单视窗大小 - 調整設定選單視窗大小 + 调整设定选单视窗大小 + 調整設定選單視窗大小 Allow Config Export [ACE] @@ -302,8 +302,8 @@ Consenti Esportazione del Config [ACE] 設定の出力を許可 [ACE] 설정 내보내기 허가 [ACE] - 允许配置导出 [ACE] - 允許配置導出 [ACE] + 允许配置导出 [ACE] + 允許配置導出 [ACE] Allow @@ -318,8 +318,8 @@ Consenti 許可 허가 - 允许 - 允許 + 允许 + 允許 Allow export of all settings to a server config formatted. @@ -334,8 +334,8 @@ Consenti esportazione di tutti i parametri ad config formato per server. 全ての設定をサーバ用設定の形式へと出力できるようにします。 모든 설정을 서버 설정 형식으로 내보내는것을 허락합니다. - 允许导出所有设定成伺服器配置格式的档案. - 允許導出所有設定成伺服器配置格式的檔案. + 允许导出所有设定成伺服器配置格式的档案. + 允許導出所有設定成伺服器配置格式的檔案. When allowed, you have access to the settings modification and export in SP. Clicking export will place the formated config on your clipboard. @@ -350,8 +350,8 @@ Quando consentito, hai accesso alle modifiche delle impostazioni ed esportazione in SP. Cliccando Esporta piazzera il config formattato sul tuo Blocco Note. 許可の場合、あなたは設定の変更と出力をシングルプレイで可能です。出力をクリックすると、サーバ用設定の形式となっている設定がクリップボードに保存されます。 허락하는 경우 싱글플레이에서 설정의 변경과 내보내기가 가능해집니다. 내보내기를 눌러서 서버 형성의 설정을 클립보드로 보냅니다. - 当本功能开启时, 你将能在单人模式中调整并输出设定. 点击输出按钮后将会让相关设定参数复制到剪贴簿上. - 當本功能開啟時, 你將能在單人模式中調整並輸出設定. 點擊輸出按鈕後將會讓相關設定參數複製到剪貼簿上. + 当本功能开启时, 你将能在单人模式中调整并输出设定. 点击输出按钮后将会让相关设定参数复制到剪贴簿上. + 當本功能開啟時, 你將能在單人模式中調整並輸出設定. 點擊輸出按鈕後將會讓相關設定參數複製到剪貼簿上. Hide @@ -366,8 +366,8 @@ Nascondi 非表示 숨기기 - 隐藏 - 隱藏 + 隐藏 + 隱藏 Top right, downwards @@ -382,8 +382,8 @@ In Alto a Destra, verso il Basso 右上、下側 오른쪽 위에서 아래로 - 右上角, 向下 - 右上角, 向下 + 右上角, 向下 + 右上角, 向下 Top right, to the left @@ -398,8 +398,8 @@ In Alto a Destra, verso Sinistra 右上、左詰 오른쪽 위에서 왼쪽으로 - 右上角, 向左 - 右上角, 向左 + 右上角, 向左 + 右上角, 向左 Top left, downwards @@ -414,8 +414,8 @@ In Alto a Sinistra, verso il Basso 左上、下側 왼쪽 위에서 아래로 - 左上角, 向下 - 左上角, 向下 + 左上角, 向下 + 左上角, 向下 Top left, to the right @@ -430,8 +430,8 @@ In Alto a Sinistra, verso Destra 右上、右詰 왼쪽 위에서 오른쪽으로 - 左上角, 向右 - 左上角, 向右 + 左上角, 向右 + 左上角, 向右 Top @@ -446,8 +446,8 @@ Alto 上側 상단 - 上方 - 上方 + 上方 + 上方 Bottom @@ -462,8 +462,8 @@ Basso 下側 하단 - 下方 - 下方 + 下方 + 下方 Debug To Clipboard @@ -478,8 +478,8 @@ Debug su Blocco Note クリップボードへデバッグ 디버그를 클립보드로 - 复制除错讯息至剪贴簿 - 複製除錯訊息至剪貼簿 + 复制除错讯息至剪贴簿 + 複製除錯訊息至剪貼簿 Sends debug information to RPT and clipboard. @@ -494,8 +494,8 @@ Invia informazioni di debug all'RPT e al Blocco Note デバッグ情報の RPT とクリップボードに送ります。 디버그 정보를 보고하기 및 클립보드에 복사하기 위해 보냅니다. - 复制除错讯息至剪贴簿与RPT报告档中. - 複製除錯訊息至剪貼簿與RPT報告檔中. + 复制除错讯息至剪贴簿与RPT报告档中. + 複製除錯訊息至剪貼簿與RPT報告檔中. Headbug Fix @@ -510,8 +510,8 @@ Sistema Bug della Testa ヘッドバグ修正 헤드버그 수정 - 修复动作BUG - 修復動作BUG + 修复动作BUG + 修復動作BUG Resets your animation state. @@ -526,8 +526,8 @@ Resetta il tuo stato animazione 現在のアニメーションの状況を初期化します。 자신의 동작 상태 초기화 - 当ACE发生动作BUG时, 点此修复. - 當ACE發生動作BUG時, 點此修復. + 当ACE发生动作BUG时, 点此修复. + 當ACE發生動作BUG時, 點此修復. ACE News @@ -542,8 +542,8 @@ Novità ACE ACE からのお知らせ ACE 새소식 - ACE新闻 - ACE新聞 + ACE新闻 + ACE新聞 Show News on Main Menu @@ -558,8 +558,8 @@ Mostra News nel Menù Princinpale メイン メニュにお知らせを表示します 메인메뉴에 새소식을 표시합니다 - 显示新闻消息于主选单 - 顯示新聞消息於主選單 + 显示新闻消息于主选单 + 顯示新聞消息於主選單 All Categories @@ -573,8 +573,8 @@ Toutes les catégories 全カテゴリ 모든 카테고리 - 全局设定 - 全局設定 + 全局设定 + 全局設定 Logistics @@ -588,8 +588,8 @@ Logistique ロジスティクス 보급 - 后勤设定 - 後勤設定 + 后勤设定 + 後勤設定 diff --git a/addons/overheating/stringtable.xml b/addons/overheating/stringtable.xml index cdbe20fb4fa..37e40c2dc10 100644 --- a/addons/overheating/stringtable.xml +++ b/addons/overheating/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Visualizza testo in caso di inceppamento 弾詰りを文章で表示 탄걸림의 경우 화면에 표시 - 在卡弹时显示提示讯息 - 在卡彈時顯示提示訊息 + 在卡弹时显示提示讯息 + 在卡彈時顯示提示訊息 Display a notification whenever your weapon gets jammed @@ -30,8 +30,8 @@ Visualizza una notifica in caso la tua arma si inceppasse 持っている武器が弾詰りをすると、通知を表示します 총알이 무기에 걸릴경우 화면에 알림을 띄웁니다 - 当武器卡弹时显示提示讯息 - 當武器卡彈時顯示提示訊息 + 当武器卡弹时显示提示讯息 + 當武器卡彈時顯示提示訊息 Overheating Particle Effects @@ -45,8 +45,8 @@ Эффект частиц при перегреве 過熱の視覚効果 과열 입자 효과 - 枪管过热特效 - 槍管過熱特效 + 枪管过热特效 + 槍管過熱特效 Show particle effects when weapon overheats @@ -60,8 +60,8 @@ Zobrazit částicové efekty když se zbraň přehřije 武器を過熱すると視覚表現を表示します 무기가 과열되면 입자 효과를 보여줍니다 - 显示枪管过热特效 - 顯示槍管過熱特效 + 显示枪管过热特效 + 顯示槍管過熱特效 Overheating Particle Effects for everyone @@ -75,8 +75,8 @@ Эффект частиц при перегреве для всех 過熱の視覚表現を全体に与えます 모두에게 과열 입자 효과 적용 - 显示其他玩家的枪管过热特效 - 顯示其他玩家的槍管過熱特效 + 显示其他玩家的枪管过热特效 + 顯示其他玩家的槍管過熱特效 Show particle effects when other players weapon overheats @@ -90,8 +90,8 @@ Zobrazit částicové efekty když se zbraň přehřije jinému hráči 他のプレイヤの過熱の視覚表現を表示します 모든 인원이 무기가 과열될시 입자 효과가 나타납니다. - 当其他玩家的武器过热时显示特效 - 當其他玩家的武器過熱時顯示特效 + 当其他玩家的武器过热时显示特效 + 當其他玩家的武器過熱時顯示特效 Overheating Dispersion @@ -105,8 +105,8 @@ Důsledky přehřátí zbraně 過熱による精度の低下 과열 명중률 저하 - 过热散射 - 過熱散射 + 过热散射 + 過熱散射 Overheated weapons will be less accurate and have decreased muzzle velocity. Applys for all players. @@ -120,8 +120,8 @@ Přehřátá zbraň bude méně přesná a bude mít menší úsťovou rychlost. Platí pro všechny hráče. 過熱は精度を減少させたり、初速を低下させます、これは全プレイヤに適用します。 무기 과열시 무기의 명중률이 저하되고 총구속도가 감소합니다. 이는 모든 플레이어에게 적용됩니다. - 过热的武器将会有打不准和减少射击初速的情况. 适用于所有玩家 - 過熱的武器將會有打不準和減少射擊初速的情況. 適用於所有玩家 + 过热的武器将会有打不准和减少射击初速的情况. 适用于所有玩家 + 過熱的武器將會有打不準和減少射擊初速的情況. 適用於所有玩家 Unjam weapon on reload @@ -135,8 +135,8 @@ Исправлять клин при перезарядке 再装填による弾詰りの解消 재장전시 탄걸림 해결 - 重装弹匣以解决卡弹 - 重裝彈匣以解決卡彈 + 重装弹匣以解决卡弹 + 重裝彈匣以解決卡彈 Reloading clears a weapon jam. @@ -150,8 +150,8 @@ Перезарядка устраняет заклинивание оружия. 再装填により、弾詰りを除去します。 탄걸림이 재장전시 해결됩니다. - 利用重装弹匣来解决卡弹 - 利用重裝彈匣來解決卡彈 + 利用重装弹匣来解决卡弹 + 利用重裝彈匣來解決卡彈 Chance of unjam failing @@ -165,8 +165,8 @@ Шанс неудачи при устранении клина 弾詰りの除去を失敗する可能性 탄걸림 해결 시도 실패확률 - 解决卡弹失败机率 - 解決卡彈失敗機率 + 解决卡弹失败机率 + 解決卡彈失敗機率 Probability that an unjam action might fail, requiring to be repeated. @@ -180,8 +180,8 @@ Pravděpodobnost, že uvolnění zbraně selže, je proto nutné tuto akci opakovat. 弾詰りの除去を失敗する可能性が生まれ、もう一度動作を行う必要があります。 탄걸림 해결 시도시 실패할 확률이 있습니다. 이는 다시 탄걸림 해결을 시도해야함을 의미합니다. - 清除卡弹时有可能会失败, 需要反覆进行清枪 - 清除卡彈時有可能會失敗, 需要反覆進行清槍 + 清除卡弹时有可能会失败, 需要反覆进行清枪 + 清除卡彈時有可能會失敗, 需要反覆進行清槍 Spare barrel @@ -196,8 +196,8 @@ Canna di ricambio 予備銃身 예비 총열 - 备用枪管 - 備用槍管 + 备用枪管 + 備用槍管 Use to swap barrel. @@ -212,8 +212,8 @@ Usata per cambiare la canna. 予備銃身に交換する。 총열을 바꿀때 사용합니다. - 用来更换枪管 - 用來更換槍管 + 用来更换枪管 + 用來更換槍管 Weapon jammed! @@ -228,8 +228,8 @@ Arma inceppata! 武器が詰まった! 탄걸림! - 武器卡弹! - 武器卡彈! + 武器卡弹! + 武器卡彈! Clear jam @@ -244,8 +244,8 @@ Ripulisci l'arma 弾詰りを除去する 탄걸림 해결 - 清除卡弹 - 清除卡彈 + 清除卡弹 + 清除卡彈 Jam cleared @@ -260,8 +260,8 @@ Arma pronta al fuoco 弾詰りが除去された 탄걸림 해결됨 - 卡弹已清除 - 卡彈已清除 + 卡弹已清除 + 卡彈已清除 Jam failed to clear @@ -275,8 +275,8 @@ Не удалось исправить клин 弾詰りの除去に失敗した 탄걸림 해결 실패 - 卡弹未能清除 - 卡彈未能清除 + 卡弹未能清除 + 卡彈未能清除 Swap barrel @@ -291,8 +291,8 @@ Sostiuisci la canna 銃身を交換 총열 교체 - 换枪管 - 換槍管 + 换枪管 + 換槍管 Swapping barrel... @@ -307,8 +307,8 @@ Sostituendo la canna... 銃身を交換中・・・ 총열 교체중... - 换枪管中... - 換槍管中... + 换枪管中... + 換槍管中... Swapped barrel @@ -323,8 +323,8 @@ Canna sostituita 銃身を交換した 교체된 총열 - 完成换枪管 - 完成換槍管 + 完成换枪管 + 完成換槍管 Check weapon temperature @@ -339,8 +339,8 @@ Проверить температуру оружия 武器の温度を測る 무기 온도 확인 - 检查枪管温度 - 檢查槍管溫度 + 检查枪管温度 + 檢查槍管溫度 Check weapon temperature @@ -355,8 +355,8 @@ Controlla la temperatura della canna 武器の温度を測る 무기 온도 확인 - 检查枪管温度 - 檢查槍管溫度 + 检查枪管温度 + 檢查槍管溫度 Checking temperature... @@ -371,8 +371,8 @@ Проверка температуры... 温度を測っている・・・ 무기 온도 확인중... - 检查枪管温度中... - 檢查槍管溫度中... + 检查枪管温度中... + 檢查槍管溫度中... Check spare barrels temperatures @@ -385,8 +385,8 @@ Temperatur der Wechselläufe prüfen 총열 온도 확인 Controlla la temperatura della canna di ricambio - 检查备用枪管温度 - 檢查備用槍管溫度 + 检查备用枪管温度 + 檢查備用槍管溫度 Checking spare barrels temperatures... @@ -399,8 +399,8 @@ Prüfe Temperatur der Wechselläufe ... 총열 온도 확인중... Controllando la temperatura della canna di ricambio... - 检查枪管温度中... - 檢查槍管溫度中... + 检查枪管温度中... + 檢查槍管溫度中... Temperature @@ -415,8 +415,8 @@ Температура 温度 온도 - 温度 - 溫度 + 温度 + 溫度 Cool Spare Barrel/s @@ -429,8 +429,8 @@ Kalte Wechselläufe 차가운 예비 총열 Canna/e di Ricambio Fredda - 备用枪管温度正常 - 備用槍管溫度正常 + 备用枪管温度正常 + 備用槍管溫度正常 Warm Spare Barrel/s @@ -443,8 +443,8 @@ Warme Wechselläufe 따뜻한 예비 총열 Canna/e di Ricambio Calda - 备用枪管温度偏温 - 備用槍管溫度偏溫 + 备用枪管温度偏温 + 備用槍管溫度偏溫 Hot Spare Barrel/s @@ -457,8 +457,8 @@ Heiße Wechselläufe 뜨거운 예비 총열 Canna/e di Ricambio Molto Calda - 备用枪管温度偏热 - 備用槍管溫度偏熱 + 备用枪管温度偏热 + 備用槍管溫度偏熱 Very Hot Spare Barrel/s @@ -471,8 +471,8 @@ Sehr heiße Wechselläufe 매우 뜨거운 예비 총열 Canna/e di Ricambio Estremamente Calda - 备用枪管温度过热 - 備用槍管溫度過熱 + 备用枪管温度过热 + 備用槍管溫度過熱 Extremely Hot Spare Barrel/s @@ -485,8 +485,8 @@ Extrem heiße Wechselläufe 엄청나게 뜨거운 예비 총열 Canna/e di Ricambio Rovente - 备用枪管温度超级热 - 備用槍管溫度超級熱 + 备用枪管温度超级热 + 備用槍管溫度超級熱 Overheating Enabled @@ -500,8 +500,8 @@ Przegrzewanie włączone 과열 활성화 Surriscaldamento Abilitato - 启用过热 - 啟用過熱 + 启用过热 + 啟用過熱 Master enable for the overheating/jamming module @@ -513,8 +513,8 @@ Hauptschalter, um die Überhitzung-/Ladehemmung-Module zu aktivieren 과열/탄걸림 최종 활성화 Abilitazione master per il modulo di surriscaldamento / inceppamento - 启用枪管过热/干扰模块 - 啟用槍管過熱/干擾模塊 + 启用枪管过热/干扰模块 + 啟用槍管過熱/干擾模塊 diff --git a/addons/overpressure/stringtable.xml b/addons/overpressure/stringtable.xml index aeba1d3a51d..7a9edc06e51 100644 --- a/addons/overpressure/stringtable.xml +++ b/addons/overpressure/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -8,8 +8,8 @@ Mnożnik dystansu nadciśnienia Coéfficient de distance pour la surpression Coefficente Distanza Sovrapressione - 高压影响距离系数 - 高壓影響距離係數 + 高压影响距离系数 + 高壓影響距離係數 Scales the overpressure effect [Default: 1] @@ -18,8 +18,8 @@ Skaluje efekt nadciśnienia [Domyślne: 1] Échelonne les effets de la surpression [Par défaut : 1] Scala l'effetto di sovrapressione [Predefinito: 1] - 高压影响的范围 [预设: 1] - 高壓影響的範圍 [預設: 1] + 高压影响的范围 [预设: 1] + 高壓影響的範圍 [預設: 1] diff --git a/addons/parachute/stringtable.xml b/addons/parachute/stringtable.xml index c6eca9237de..c57f50b54fe 100644 --- a/addons/parachute/stringtable.xml +++ b/addons/parachute/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Altímetro 高度計 고도계 - 高度计 - 高度計 + 高度计 + 高度計 Altimeter Watch @@ -30,8 +30,8 @@ Relógio Altímetro 時計型高度計 고도계 시계 - 高度计手表 - 高度計手錶 + 高度计手表 + 高度計手錶 Used to show height, descent rate and the time. @@ -46,8 +46,8 @@ Usado para mostrar altura, taxa de descida e o tempo. 高度や降下率、時間を見るのに使います。 높이와, 하강속도 그리고 시간을 보여줍니다. - 用于显示高度, 下降率和时间. - 用於顯示高度, 下降率和時間. + 用于显示高度, 下降率和时间. + 用於顯示高度, 下降率和時間. Non-Steerable Parachute @@ -62,8 +62,8 @@ Para-querdas não controlável 非操作型パラシュート 비-조종 낙하산 - 非可操控降落伞 - 非可操控降落傘 + 非可操控降落伞 + 非可操控降落傘 Cut Parachute @@ -78,8 +78,8 @@ Taglia Paracadute パラシュートを切断 낙하산 자르기 - 剪断降落伞 - 剪斷降落傘 + 剪断降落伞 + 剪斷降落傘 Reserve Parachute @@ -94,8 +94,8 @@ Paracadute di Riserva 予備パラシュート 예비 낙하산 - 备用降落伞 - 備用降落傘 + 备用降落伞 + 備用降落傘 diff --git a/addons/quickmount/stringtable.xml b/addons/quickmount/stringtable.xml index a42e577bc0d..057e6482a74 100644 --- a/addons/quickmount/stringtable.xml +++ b/addons/quickmount/stringtable.xml @@ -1,12 +1,12 @@ - + Quick Mount Entrata Rapida クイック マウント - 快速搭乘 - 快速搭乘 + 快速搭乘 + 快速搭乘 Vehicle quick mount @@ -14,71 +14,71 @@ Pojazd szybkie mocowanie Entrata rapida veicolo 車両クイック マウント - 快速搭乘载具 - 快速搭乘載具 + 快速搭乘载具 + 快速搭乘載具 Quickly enter the vehicle you are directly looking at. Entra velocemente nel veicolo che stai guardando. 直接見ている車両へ迅速に搭乗します。 - 快速进入你正在看的载具之中. - 快速進入你正在看的載具之中. + 快速进入你正在看的载具之中. + 快速進入你正在看的載具之中. Vehicle Full Veicolo Pieno 車両は満員 - 载具已满 - 載具已滿 + 载具已满 + 載具已滿 Distance Distanza 距離 - 距离 - 距離 + 距离 + 距離 Maximum distance to check for vehicles. Distanza massima per controllare i veicoli. 車両を確認できる最大距離 - 最大可检查载具的距离. - 最大可檢查載具的距離. + 最大可检查载具的距离. + 最大可檢查載具的距離. Vehicle Locked Veicolo Bloccato. 車両は施錠されている - 载具已上锁 - 載具已上鎖 + 载具已上锁 + 載具已上鎖 Maximum Speed (km/h) Velocità Massima (km/h) 最高速度 (km/h) - 最高速度 (公里/小时) - 最高速度 (公里/小時) + 最高速度 (公里/小时) + 最高速度 (公里/小時) Maximum vehicle speed (km/h) allowed for player entry Velocità massima del veicolo (km/h) consentita per far salire un giocatore プレイヤーが搭乗できる限界速度 (km/h) - 设置玩家能在最高多少的速度之下进入载具. - 設置玩家能在最高多少的速度之下進入載具. + 设置玩家能在最高多少的速度之下进入载具. + 設置玩家能在最高多少的速度之下進入載具. Prioritize Seat Priorità Sedile 優先席 - 优先座位 - 優先座位 + 优先座位 + 優先座位 Seat priority on entry Priorità del sedile in entrata 搭乗の際の優先順位 - 优先想进入哪个座位. - 優先想進入哪個座位. + 优先想进入哪个座位. + 優先想進入哪個座位. diff --git a/addons/rangecard/stringtable.xml b/addons/rangecard/stringtable.xml index 8e12a259e78..5862981e16a 100644 --- a/addons/rangecard/stringtable.xml +++ b/addons/rangecard/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Tavola Balistica 射表 사거리표 - 弹道射表 - 彈道射表 + 弹道射表 + 彈道射表 50 METER increments -- MRAD/MRAD (reticle/turrets) @@ -30,8 +30,8 @@ Incrementi per 50 METRI - MRAD/MRAD (reticolo/torrette) 50 メートル増やす -- MRAD/MRAD (照準線/砲塔) 50 미터 늘리기 -- MRAD/MRAD (조준선/포탑) - 50公尺增量 -- 毫弧度/毫弧度 (瞄镜分划线/调整纽) - 50公尺增量 -- 毫弧度/毫弧度 (瞄鏡分劃線/調整紐) + 50公尺增量 -- 毫弧度/毫弧度 (瞄镜分划线/调整纽) + 50公尺增量 -- 毫弧度/毫弧度 (瞄鏡分劃線/調整紐) Open Range Card @@ -46,8 +46,8 @@ Apri Tavola Balistica 射表を開く 사거리표 열기 - 开启弹道射表 - 開啟彈道射表 + 开启弹道射表 + 開啟彈道射表 Open Range Card Copy @@ -62,8 +62,8 @@ Apri Copia Tavola Balistica 複製された射表を開く 복제 사거리표 열기 - 开启弹道射表副本 - 開啟彈道射表副本 + 开启弹道射表副本 + 開啟彈道射表副本 Open Range Card @@ -78,8 +78,8 @@ Apri Tavola Balistica 射表を開く 사거리표 열기 - 开启弹道射表 - 開啟彈道射表 + 开启弹道射表 + 開啟彈道射表 Open Range Card Copy @@ -94,8 +94,8 @@ Apri Copia Tavola Balistica 複製された射表を開く 복제 사거리표 열기 - 开启弹道射表副本 - 開啟彈道射表副本 + 开启弹道射表副本 + 開啟彈道射表副本 Copy Range Card @@ -110,8 +110,8 @@ Copia Tavola Balistica 射表を複製する 사거리표 복제 - 复制弹道射表 - 複製彈道射表 + 复制弹道射表 + 複製彈道射表 diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index b8ee9943ad3..6ea746a671a 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ XM312A XM312 XM312 - XM312重機槍 - XM312重机枪 + XM312重機槍 + XM312重机枪 XM312A @@ -30,8 +30,8 @@ XM312A XM312A XM312A - XM312A重機槍 - XM312A重机枪 + XM312A重機槍 + XM312A重机枪 XM312 (High) @@ -46,8 +46,8 @@ XM312 (Alta) XM312 (高) XM312 (높음) - XM312重機槍 (高射腳架) - XM312重机枪 (高射脚架) + XM312重機槍 (高射腳架) + XM312重机枪 (高射脚架) XM307 @@ -62,8 +62,8 @@ XM307 XM307 XM307 - XM307榴彈機槍 - XM307榴弹机枪 + XM307榴彈機槍 + XM307榴弹机枪 XM307A @@ -78,8 +78,8 @@ XM307A XM307A XM307A - XM307A榴彈機槍 - XM307A榴弹机枪 + XM307A榴彈機槍 + XM307A榴弹机枪 XM307 (High) @@ -94,8 +94,8 @@ XM307 (Alta) XM307 (高) XM307 (높음) - XM307榴彈機槍 (高射腳架) - XM307榴弹机枪 (高射脚架) + XM307榴彈機槍 (高射腳架) + XM307榴弹机枪 (高射脚架) Mini-Spike Launcher (AT) @@ -110,8 +110,8 @@ Lanciatore Mini-Spike (AC) ミニスパイク ランチャー (対戦) Mini-Spike Launcher (대전차) - "迷你長釘"導彈發射器 (反坦克) - "迷你长钉"导弹发射器 (反坦克) + "迷你長釘"導彈發射器 (反坦克) + "迷你长钉"导弹发射器 (反坦克) Mini-Spike Launcher (AA) @@ -126,8 +126,8 @@ Lanciatore Mini-Spike (AA) ミニスパイク ランチャー (対空) Mini-Spike Launcher (대공) - "迷你長釘"導彈發射器 (防空) - "迷你长钉"导弹发射器 (防空) + "迷你長釘"導彈發射器 (防空) + "迷你长钉"导弹发射器 (防空) YABHON-R3 @@ -142,8 +142,8 @@ YABHON-R3 YABHON-R3 YABHON-R3 - "亞伯罕-R3型"空中無人載具 - "亚伯罕-R3型"空中无人载具 + "亞伯罕-R3型"空中無人載具 + "亚伯罕-R3型"空中无人载具 YABHON-R3 (CAS) @@ -158,8 +158,8 @@ YABHON-R3 (CAS) YABHON-R3 (対地) YABHON-R3 (근접지원) - "亞伯罕-R3型"空中無人載具 (近空支援) - "亚伯罕-R3型"空中无人载具 (近空支援) + "亞伯罕-R3型"空中無人載具 (近空支援) + "亚伯罕-R3型"空中无人载具 (近空支援) M-ATV @@ -174,8 +174,8 @@ M-ATV M-ATV M-ATV - 防地雷反伏擊全地形車 - 防地雷反伏击全地形车 + 防地雷反伏擊全地形車 + 防地雷反伏击全地形车 M-ATV (HMG) @@ -190,8 +190,8 @@ M-ATV (HMG) M-ATV (HMG) M-ATV (HMG) - 防地雷反伏擊全地形車 (重機槍) - 防地雷反伏击全地形车 (重机枪) + 防地雷反伏擊全地形車 (重機槍) + 防地雷反伏击全地形车 (重机枪) M-ATV (GMG) @@ -206,8 +206,8 @@ M-ATV (GMG) M-ATV (GMG) M-ATV (GMG) - 防地雷反伏擊全地形車 (榴彈機槍) - 防地雷反伏击全地形车 (榴弹机枪) + 防地雷反伏擊全地形車 (榴彈機槍) + 防地雷反伏击全地形车 (榴弹机枪) Merkava Mk IV M @@ -222,8 +222,8 @@ Merkava Mk IV M メルカバ Mk IV M Merkava Mk IV M - "梅卡瓦4代"主戰坦克 - "梅卡瓦4代"主战坦克 + "梅卡瓦4代"主戰坦克 + "梅卡瓦4代"主战坦克 Merkava Mk IV LIC @@ -238,8 +238,8 @@ Merkava Mk IV LIC メルカバ Mk IV LIC Merkava Mk IV LIC - "梅卡瓦4代"主戰坦克 城市版 - "梅卡瓦4代"主战坦克 城市版 + "梅卡瓦4代"主戰坦克 城市版 + "梅卡瓦4代"主战坦克 城市版 Sholef @@ -254,8 +254,8 @@ Sholef ショルフ Sholef - "神槍"自走炮 - "神枪"自走炮 + "神槍"自走炮 + "神枪"自走炮 Seara @@ -270,8 +270,8 @@ Seara シアラ Seara - "希拉"多管火箭車 - "希拉"多管火箭车 + "希拉"多管火箭車 + "希拉"多管火箭车 Namer @@ -286,8 +286,8 @@ Namer ネイマー Namer - "花豹"裝甲運兵車 - "花豹"装甲运兵车 + "花豹"裝甲運兵車 + "花豹"装甲运兵车 Bardelas @@ -302,8 +302,8 @@ Bardelas バーラデラス Bardelas - "布萊德斯"防空車 - "布莱德斯"防空车 + "布萊德斯"防空車 + "布莱德斯"防空车 Badger IFV @@ -318,8 +318,8 @@ Badger IFV バッジ IFV Badger IFV - "蜜獾"步兵戰車 - "蜜獾"步兵战车 + "蜜獾"步兵戰車 + "蜜獾"步兵战车 Nemmera @@ -334,8 +334,8 @@ Nemmera ネマラ Nemmera - "雌豹"戰鬥工程車 - "雌豹"战斗工程车 + "雌豹"戰鬥工程車 + "雌豹"战斗工程车 HEMTT Transport @@ -350,8 +350,8 @@ HEMTT da trasporto HEMTT 輸送型 HEMTT 수송 - 重型增程機動戰術卡車 (運輸) - 重型增程机动战术卡车 (运输) + 重型增程機動戰術卡車 (運輸) + 重型增程机动战术卡车 (运输) HEMTT Transport (covered) @@ -366,8 +366,8 @@ HEMTT da trasporto (coperto) HEMTT 輸送型 (幌) HEMTT 수송 (덮개) - 重型增程機動戰術卡車 (運輸, 棚布) - 重型增程机动战术卡车 (运输, 棚布) + 重型增程機動戰術卡車 (運輸, 棚布) + 重型增程机动战术卡车 (运输, 棚布) HEMTT @@ -382,8 +382,8 @@ HEMTT HEMTT HEMTT - 重型增程機動戰術卡車 - 重型增程机动战术卡车 + 重型增程機動戰術卡車 + 重型增程机动战术卡车 HEMTT Container @@ -398,8 +398,8 @@ HEMTT portacontainer HEMTT コンテナ型 HEMTT 컨테이너 - 重型增程機動戰術卡車 (貨櫃) - 重型增程机动战术卡车 (货柜) + 重型增程機動戰術卡車 (貨櫃) + 重型增程机动战术卡车 (货柜) HEMTT Medical @@ -414,8 +414,8 @@ HEMTT Medico HEMTT 救急車 HEMTT 의료 - 重型增程機動戰術卡車 (醫療) - 重型增程机动战术卡车 (医疗) + 重型增程機動戰術卡車 (醫療) + 重型增程机动战术卡车 (医疗) HEMTT Ammo @@ -430,8 +430,8 @@ HEMTT di rifornimento munizioni HEMTT 弾薬給弾型 HEMTT 탄약 - 重型增程機動戰術卡車 (彈藥) - 重型增程机动战术卡车 (弹药) + 重型增程機動戰術卡車 (彈藥) + 重型增程机动战术卡车 (弹药) HEMTT Fuel @@ -446,8 +446,8 @@ HEMTT di rifornimento carburante HEMTT 燃料給油車 HEMTT 연료 - 重型增程機動戰術卡車 (燃油) - 重型增程机动战术卡车 (燃油) + 重型增程機動戰術卡車 (燃油) + 重型增程机动战术卡车 (燃油) HEMTT Repair @@ -462,8 +462,8 @@ HEMTT Riparatore HEMTT 修理型 HEMTT 수리 - 重型增程機動戰術卡車 (維修) - 重型增程机动战术卡车 (维修) + 重型增程機動戰術卡車 (維修) + 重型增程机动战术卡车 (维修) Fennek @@ -478,8 +478,8 @@ Fennek フェネック Fennek - "非洲小狐"防地雷反伏擊車 - "非洲小狐"防地雷反伏击车 + "非洲小狐"防地雷反伏擊車 + "非洲小狐"防地雷反伏击车 Fennek (HMG) @@ -494,8 +494,8 @@ Fennek (HMG) フェネック (HMG) Fennek (HMG) - "非洲小狐"防地雷反伏擊車 (重機槍) - "非洲小狐"防地雷反伏击车 (重机枪) + "非洲小狐"防地雷反伏擊車 (重機槍) + "非洲小狐"防地雷反伏击车 (重机枪) Fennek (GMG) @@ -510,8 +510,8 @@ Fennek (GMG) フェネック (GMG) Fennek (GMG) - "非洲小狐"防地雷反伏擊車 (榴彈機槍) - "非洲小狐"防地雷反伏击车 (榴弹机枪) + "非洲小狐"防地雷反伏擊車 (榴彈機槍) + "非洲小狐"防地雷反伏击车 (榴弹机枪) Leopard 2SG @@ -526,8 +526,8 @@ Leopard 2SG レオパルド 2SG Leopard 2SG - "豹2型新加坡版"主戰坦克 - "豹2型新加坡版"主战坦克 + "豹2型新加坡版"主戰坦克 + "豹2型新加坡版"主战坦克 FV510 Warrior @@ -542,8 +542,8 @@ FV510 Warrior FV510 ウォーリアー FV510 Warrior - FV510"戰士"步兵戰車 - FV510"战士"步兵战车 + FV510"戰士"步兵戰車 + FV510"战士"步兵战车 Pandur II @@ -558,8 +558,8 @@ Pandur II パンデュール II Pandur II - "潘德2型"裝甲運兵車 - "潘德2型"装甲运兵车 + "潘德2型"裝甲運兵車 + "潘德2型"装甲运兵车 KamAZ Transport @@ -574,8 +574,8 @@ KamAZ da trasporto KamAZ 輸送型 KamAZ 수송 - "卡瑪斯"卡車 (運輸) - "卡玛斯"卡车 (运输) + "卡瑪斯"卡車 (運輸) + "卡玛斯"卡车 (运输) KamAZ Transport (covered) @@ -590,8 +590,8 @@ KamAZ da trasporto (coperto) KamAZ 輸送型 (幌) KamAZ 수송 (덮개) - "卡瑪斯"卡車 (運輸, 棚布) - "卡玛斯"卡车 (运输, 棚布) + "卡瑪斯"卡車 (運輸, 棚布) + "卡玛斯"卡车 (运输, 棚布) KamAZ Ammo @@ -606,8 +606,8 @@ KamAZ di rifornimento munizioni KamAZ 弾薬給弾型 KamAZ 탄약 - "卡瑪斯"卡車 (彈藥) - "卡玛斯"卡车 (弹药) + "卡瑪斯"卡車 (彈藥) + "卡玛斯"卡车 (弹药) KamAZ Fuel @@ -622,8 +622,8 @@ KamAZ di rifornimento carburante KamzAZ 燃料給油車 KamAZ 연료 - "卡瑪斯"卡車 (燃油) - "卡玛斯"卡车 (燃油) + "卡瑪斯"卡車 (燃油) + "卡玛斯"卡车 (燃油) KamAZ Repair @@ -638,8 +638,8 @@ KamAZ riparatore KamzAZ 修理型 KamAZ 수리 - "卡瑪斯"卡車 (維修) - "卡玛斯"卡车 (维修) + "卡瑪斯"卡車 (維修) + "卡玛斯"卡车 (维修) KamAZ Medical @@ -654,8 +654,8 @@ KamAZ Medico KamAZ 救急車 KamAZ 의료 - "卡瑪斯"卡車 (醫療) - "卡玛斯"卡车 (医疗) + "卡瑪斯"卡車 (醫療) + "卡玛斯"卡车 (医疗) Punisher @@ -670,8 +670,8 @@ Punisher パニッシャー Punisher - "懲罰者"防地雷反伏擊車 - "惩罚者"防地雷反伏击车 + "懲罰者"防地雷反伏擊車 + "惩罚者"防地雷反伏击车 Punisher (HMG) @@ -686,8 +686,8 @@ Punisher (HMG) パニッシャー (HMG) Punisher (HMG) - "懲罰者"防地雷反伏擊車 (重機槍) - "惩罚者"防地雷反伏击车 (重机枪) + "懲罰者"防地雷反伏擊車 (重機槍) + "惩罚者"防地雷反伏击车 (重机枪) Punisher (GMG) @@ -702,8 +702,8 @@ Punisher (GMG) パニッシャー (GMG) Punisher (GMG) - "懲罰者"防地雷反伏擊車 (榴彈機槍) - "惩罚者"防地雷反伏击车 (榴弹机枪) + "懲罰者"防地雷反伏擊車 (榴彈機槍) + "惩罚者"防地雷反伏击车 (榴弹机枪) T100 Black Eagle @@ -718,8 +718,8 @@ T100 Black Eagle T100 ブラック イーグル T100 Black Eagle - T100"黑鷹"主戰坦克 - T100"黑鹰"主战坦克 + T100"黑鷹"主戰坦克 + T100"黑鹰"主战坦克 2S9 Sochor @@ -734,8 +734,8 @@ 2S9 Sochor 2S9 ソーカー 2S9 Sochor - 2S9"薩克爾"自走砲 - 2S9"萨克尔"自走炮 + 2S9"薩克爾"自走砲 + 2S9"萨克尔"自走炮 BM-2T Stalker @@ -750,8 +750,8 @@ BM-2T Stalker BM-2T ストーカー BM-2T Stalker - BM-2T"潛行者"步兵戰車 - BM-2T"潜行者"步兵战车 + BM-2T"潛行者"步兵戰車 + BM-2T"潜行者"步兵战车 ZSU-35 Tigris @@ -766,8 +766,8 @@ ZSU-35 Tigris ZSU-35 ZSU-35 Tigris - ZSU-35"虎式"防空車 - ZSU-35"虎式"防空车 + ZSU-35"虎式"防空車 + ZSU-35"虎式"防空车 Otokar ARMA @@ -782,8 +782,8 @@ Otokar ARMA ティグリスOtokar アルマ Otokar ARMA - "奧托卡-阿爾默"裝甲運兵車 - "奥托卡-阿尔默"装甲运兵车 + "奧托卡-阿爾默"裝甲運兵車 + "奥托卡-阿尔默"装甲运兵车 Typhoon Transport @@ -798,8 +798,8 @@ Typhoon da trasporto Typhoon 輸送型 Typhoon 수송 - "颱風"卡車 (運輸) - "台风"卡车 (运输) + "颱風"卡車 (運輸) + "台风"卡车 (运输) Typhoon Transport (covered) @@ -814,8 +814,8 @@ Typhoon da trasporto (coperto) Typhoon 輸送型 (幌) Typhoon 수송 (덮개) - "颱風"卡車 (運輸, 棚布) - "台风"卡车 (运输, 棚布) + "颱風"卡車 (運輸, 棚布) + "台风"卡车 (运输, 棚布) Typhoon Device @@ -830,8 +830,8 @@ Typhoon per dispositivo Typhoon デバイス型 Typhoon 장치 - "颱風"卡車 (精密設備) - "台风"卡车 (精密设备) + "颱風"卡車 (精密設備) + "台风"卡车 (精密设备) Typhoon Ammo @@ -846,8 +846,8 @@ Typhoon di rifornimento munizioni Typhoon 弾薬給弾型 Typhoon 탄약 - "颱風"卡車 (彈藥) - "台风"卡车 (弹药) + "颱風"卡車 (彈藥) + "台风"卡车 (弹药) Typhoon Fuel @@ -862,8 +862,8 @@ Typhoon di rifornimento carburante Typhoon 燃料給油車 Typhoon 연료 - "颱風"卡車 (燃油) - "台风"卡车 (燃油) + "颱風"卡車 (燃油) + "台风"卡车 (燃油) Typhoon Repair @@ -878,8 +878,8 @@ Typhoon riparatore Typhoon 修理型 Typhoon 수리 - "颱風"卡車 (維修) - "台风"卡车 (维修) + "颱風"卡車 (維修) + "台风"卡车 (维修) Typhoon Medical @@ -894,8 +894,8 @@ Typhoon medico Typhoon 救急車 Typhoon 의료 - "颱風"卡車 (醫療) - "台风"卡车 (医疗) + "颱風"卡車 (醫療) + "台风"卡车 (医疗) RAH-66 Comanche @@ -910,8 +910,8 @@ RAH-66 Comanche RAH-66 コマンチ RAH-66 Comanche - RAH-66"卡曼契"攻擊直升機 - RAH-66"卡曼契"攻击直升机 + RAH-66"卡曼契"攻擊直升機 + RAH-66"卡曼契"攻击直升机 MH-6 Little Bird @@ -926,8 +926,8 @@ MH-6 Little Bird MH-6 リトル バード MH-6 Little Bird - MH-6"小鳥"運輸直升機 - MH-6"小鸟"运输直升机 + MH-6"小鳥"運輸直升機 + MH-6"小鸟"运输直升机 AH-6 Little Bird @@ -942,8 +942,8 @@ AH-6 Little Bird AH-6 リトル バード AH-6 Little Bird - AH-6"小鳥"武裝直升機 - AH-6"小鸟"武装直升机 + AH-6"小鳥"武裝直升機 + AH-6"小鸟"武装直升机 CH-47I Chinook @@ -958,8 +958,8 @@ CH-47I Chinook CH-47I チヌーク CH-47I Chinook - CH-47I"契努克"運輸直升機 - CH-47I"契努克"运输直升机 + CH-47I"契努克"運輸直升機 + CH-47I"契努克"运输直升机 CH-47I Chinook (unarmed) @@ -974,8 +974,8 @@ CH-47I Chinook (desarmado) CH-47I チヌーク (非武装) CH-47I Chinook (비무장) - CH-47I"契努克"運輸直升機 (無武裝) - CH-47I"契努克"运输直升机 (无武装) + CH-47I"契努克"運輸直升機 (無武裝) + CH-47I"契努克"运输直升机 (无武装) A-10D Thunderbolt II @@ -990,8 +990,8 @@ A-10D Thunderbolt II A-10D サンダーボルト II A-10D Thunderbolt II - A-10D"雷霆二式"攻擊機 - A-10D"雷霆二式"攻击机 + A-10D"雷霆二式"攻擊機 + A-10D"雷霆二式"攻击机 AW159 Wildcat @@ -1006,8 +1006,8 @@ AW159 Wildcat AW159 ワイルドキャット AW159 Wildcat - AW159"野貓"直升機 - AW159"野猫"直升机 + AW159"野貓"直升機 + AW159"野猫"直升机 AW159 Wildcat (unarmed) @@ -1022,8 +1022,8 @@ AW159 Wildcat (disarmato) AW159 ワイルドキャット (非武装) AW159 Wildcat (비무장) - AW159"野貓"直升機 (無武裝) - AW159"野猫"直升机 (无武装) + AW159"野貓"直升機 (無武裝) + AW159"野猫"直升机 (无武装) AW101 Merlin @@ -1038,8 +1038,8 @@ AW101 Merlin AW101 マーリン AW101 Merlin - AW101"灰背隼"運輸直升機 - AW101"灰背隼"运输直升机 + AW101"灰背隼"運輸直升機 + AW101"灰背隼"运输直升机 L-159 ALCA @@ -1054,8 +1054,8 @@ L-159 ALCA L-159 アルカ L-159 ALCA - L-159先進輕型戰鬥機 - L-159先进轻型战斗机 + L-159先進輕型戰鬥機 + L-159先进轻型战斗机 L-159 ALCA (CAS) @@ -1070,8 +1070,8 @@ L-159 ALCA (CAS) L-159 アルカ (対地) L-159 ALCA (근접지원) - L-159先進輕型戰鬥機 (近空支援) - L-159先进轻型战斗机 (近空支援) + L-159先進輕型戰鬥機 (近空支援) + L-159先进轻型战斗机 (近空支援) L-159 ALCA (AA) @@ -1086,8 +1086,8 @@ L-159 ALCA (AA) L-159 アルカ (対空) L-159 ALCA (대공) - L-159先進輕型戰鬥機 (空對空) - L-159先进轻型战斗机 (空对空) + L-159先進輕型戰鬥機 (空對空) + L-159先进轻型战斗机 (空对空) Ka-60 Kasatka @@ -1102,8 +1102,8 @@ Ka-60 Kasatka Ka-60 カサートカ Ka-60 Kasatka - Ka-60"逆戟鯨"直升機 - Ka-60"逆戟鲸"直升机 + Ka-60"逆戟鯨"直升機 + Ka-60"逆戟鲸"直升机 Ka-60 Kasatka (Black & White) @@ -1117,8 +1117,8 @@ Ka-60 Kasatka (blanco y negro) Ka-60 カサートカ (黒&白) Ka-60 Kasatka (검정 및 하양) - Ka-60"逆戟鯨"直升機 (黑&白) - Ka-60"逆戟鲸"直升机 (黑&白) + Ka-60"逆戟鯨"直升機 (黑&白) + Ka-60"逆戟鲸"直升机 (黑&白) Ka-60 Kasatka (unarmed) @@ -1133,8 +1133,8 @@ Ka-60 Kasatka (disarmato) Ka-60 カサートカ (非武装) Ka-60 Kasatka (비무장) - Ka-60"逆戟鯨"直升機 (無武裝) - Ka-60"逆戟鲸"直升机 (无武装) + Ka-60"逆戟鯨"直升機 (無武裝) + Ka-60"逆戟鲸"直升机 (无武装) Yak-130 @@ -1149,8 +1149,8 @@ Yak-130 Yak-130 ミトン Yak-130 - Yak-130"手套"攻擊機 - Yak-130"手套"攻击机 + Yak-130"手套"攻擊機 + Yak-130"手套"攻击机 MD 500 @@ -1165,8 +1165,8 @@ MD 500 MD 500 MD 500 - MD 500"防衛者"直升機 - MD 500"防卫者"直升机 + MD 500"防衛者"直升機 + MD 500"防卫者"直升机 M4A1 SLAM @@ -1181,8 +1181,8 @@ M4A1 SLAM M4A1 SLAM M4A1 SLAM - M4A1指向性反裝甲地雷 - M4A1指向性反装甲地雷 + M4A1指向性反裝甲地雷 + M4A1指向性反装甲地雷 M18A1 Claymore @@ -1197,8 +1197,8 @@ M18A1 Claymore Mina antiuomo M18A1 クレイモア M18A1 클레이모어 - M18A1"闊刀"地雷 - M18A1"阔刀"地雷 + M18A1"闊刀"地雷 + M18A1"阔刀"地雷 M183 Demolition Charge Assembly @@ -1213,8 +1213,8 @@ M183 Demolition Charge Assembly M183 梱包爆薬 M183 폭파 장약 조립 - M183炸藥包 - M183炸药包 + M183炸藥包 + M183炸药包 M112 Demolition Block @@ -1229,8 +1229,8 @@ M112 Demolition Block M113 爆薬ブロック M112 폭파 블럭 - M112塑性炸藥 - M112塑性炸药 + M112塑性炸藥 + M112塑性炸药 M67 Fragmentation Grenade @@ -1245,8 +1245,8 @@ M67 Granata a frammentazione M67 破片手榴弾 M67 세열 수류탄 - M67破片手榴彈 - M67破片手榴弹 + M67破片手榴彈 + M67破片手榴弹 M83 Smoke Grenade (White) @@ -1261,8 +1261,8 @@ M83 Granata fumogena (Bianco) M18 煙幕手榴弾 (白) M83 연막탄 (하양) - M83煙霧彈 (白色) - M83烟雾弹 (白色) + M83煙霧彈 (白色) + M83烟雾弹 (白色) M18 Smoke Grenade (Blue) @@ -1277,8 +1277,8 @@ M18 Granata fumogena (Blu) M18 煙幕手榴弾 (青) M18 연막탄 (파랑) - M18煙霧彈 (藍色) - M18烟雾弹 (蓝色) + M18煙霧彈 (藍色) + M18烟雾弹 (蓝色) M18 Smoke Grenade (Green) @@ -1293,8 +1293,8 @@ M18 Granata fumogena (Verde) M18 煙幕手榴弾 (緑) M18 연막탄 (초록) - M18煙霧彈 (綠色) - M18烟雾弹 (绿色) + M18煙霧彈 (綠色) + M18烟雾弹 (绿色) M18 Smoke Grenade (Orange) @@ -1309,8 +1309,8 @@ M18 Granata fumogena (Arancione) M18 煙幕手榴弾 (橙) M18 연막탄 (주황) - M18煙霧彈 (橘色) - M18烟雾弹 (橘色) + M18煙霧彈 (橘色) + M18烟雾弹 (橘色) M18 Smoke Grenade (Purple) @@ -1325,8 +1325,8 @@ M18 Granata fumogena (Viola) M18 煙幕手榴弾 (紫) M18 연막탄 (보라) - M18煙霧彈 (紫色) - M18烟雾弹 (紫色) + M18煙霧彈 (紫色) + M18烟雾弹 (紫色) M18 Smoke Grenade (Red) @@ -1341,8 +1341,8 @@ M18 Granata fumogena (Rosso) M18 煙幕手榴弾 (赤) M18 연막탄 (빨강) - M18煙霧彈 (紅色) - M18烟雾弹 (红色) + M18煙霧彈 (紅色) + M18烟雾弹 (红色) M18 Smoke Grenade (Yellow) @@ -1357,8 +1357,8 @@ M18 Granata fumogena (Giallo) M18 煙幕手榴弾 (黄) M18 연막탄 (노랑) - M18煙霧彈 (黃色) - M18烟雾弹 (黄色) + M18煙霧彈 (黃色) + M18烟雾弹 (黄色) M15 Anti-Tank Mine @@ -1373,8 +1373,8 @@ M15 Mine anticarro M15 対戦車地雷 M15 대전차지뢰 - M15反坦克地雷 - M15反坦克地雷 + M15反坦克地雷 + M15反坦克地雷 VS-50 Anti-Personnel Mine @@ -1389,8 +1389,8 @@ VS-50 Mine antiuomo VS-50 対人地雷 VS-50 대인지뢰 - VS-50反人員地雷 - VS-50反人员地雷 + VS-50反人員地雷 + VS-50反人员地雷 M26 Anti-Personnel Bounding Mine @@ -1405,8 +1405,8 @@ M26 Mine saltanti antiuomo M26 対人跳躍地雷 M26 대인도약지뢰 - M26反人員彈跳雷 - M26反人员弹跳雷 + M26反人員彈跳雷 + M26反人员弹跳雷 PMR-3 Anti-Personnel Tripwire Mine @@ -1421,8 +1421,8 @@ PMR-3 Mine antiuomo PMR-3 仕掛け型対人地雷 PMR-3 대인인계철선지뢰 - PMR-3反人員絆線雷 - PMR-3反人员绊线雷 + PMR-3反人員絆線雷 + PMR-3反人员绊线雷 P99 @@ -1437,8 +1437,8 @@ P99 P99 P99 - P99手槍 - P99手枪 + P99手槍 + P99手枪 MP-443 Grach @@ -1453,8 +1453,8 @@ MP-443 Grach MP-433 グラッチ MP-443 Grach - MP-443"烏鴉"手槍 - MP-443"乌鸦"手枪 + MP-443"烏鴉"手槍 + MP-443"乌鸦"手枪 Custom Covert II @@ -1469,8 +1469,8 @@ ACP-C2 カスタム コンバート II Custom Covert II - 特裝隱蔽Ⅱ型手槍 - 特装隐蔽Ⅱ型手枪 + 特裝隱蔽Ⅱ型手槍 + 特装隐蔽Ⅱ型手枪 FNX-45 Tactical @@ -1485,8 +1485,8 @@ FNX-45 Tactical FNX-45 タクティカル FNX-45 Tactical - FNX-45戰術型手槍 - FNX-45战术型手枪 + FNX-45戰術型手槍 + FNX-45战术型手枪 Chiappa Rhino 60DS @@ -1501,8 +1501,8 @@ Chiappa Rhino 6DS チアッパ ライノ 60DS Chiappa Rhino 60DS - 齊亞帕"犀牛"60DS左輪手槍 - 齐亚帕"犀牛"60DS左轮手枪 + 齊亞帕"犀牛"60DS左輪手槍 + 齐亚帕"犀牛"60DS左轮手枪 Taurus Judge @@ -1517,8 +1517,8 @@ Taurus Judge タウルス ジャッジ Taurus Judge - 金牛座"法官"信號槍 - 金牛座"法官"信号枪 + 金牛座"法官"信號槍 + 金牛座"法官"信号枪 NLAW @@ -1533,8 +1533,8 @@ NLAW NLAW NLAW - 次世代輕型反坦克導彈發射器 - 次世代轻型反坦克导弹发射器 + 次世代輕型反坦克導彈發射器 + 次世代轻型反坦克导弹发射器 RPG-32 @@ -1549,8 +1549,8 @@ RPG-32 RPG-32 RPG-32 - RPG-32"哈希姆"火箭發射器 - RPG-32"哈希姆"火箭发射器 + RPG-32"哈希姆"火箭發射器 + RPG-32"哈希姆"火箭发射器 Mini-Spike (AA) @@ -1565,8 +1565,8 @@ Mini-Spike (AA) ミニスパイク (対空) Mini-Spike (대공) - "迷你長釘"導彈發射器 (防空) - "迷你长钉"导弹发射器 (防空) + "迷你長釘"導彈發射器 (防空) + "迷你长钉"导弹发射器 (防空) Mini-Spike (AT) @@ -1581,8 +1581,8 @@ Mini-Spike (AT) ミニスパイク (対地) Mini-Spike (대전차) - "迷你長釘"導彈發射器 (反坦克) - "迷你长钉"导弹发射器 (反坦克) + "迷你長釘"導彈發射器 (反坦克) + "迷你长钉"导弹发射器 (反坦克) MX @@ -1597,8 +1597,8 @@ MX MX MX - MX突擊步槍 - MX突击步枪 + MX突擊步槍 + MX突击步枪 MX (Black) @@ -1613,8 +1613,8 @@ MX (Nero) MX (黒) MX (검정) - MX突擊步槍 (黑色) - MX突击步枪 (黑色) + MX突擊步槍 (黑色) + MX突击步枪 (黑色) MXC @@ -1629,8 +1629,8 @@ MXC MXC MXC - MXC卡賓步槍 - MXC卡宾步枪 + MXC卡賓步槍 + MXC卡宾步枪 MXC (Black) @@ -1645,8 +1645,8 @@ MXC (Nero) MXC (黒) MXC (검정) - MXC卡賓步槍 (黑色) - MXC卡宾步枪 (黑色) + MXC卡賓步槍 (黑色) + MXC卡宾步枪 (黑色) MX 3GL @@ -1661,8 +1661,8 @@ MX 3GL MX 3GL MX 3GL - MX突擊步槍 (3連裝榴彈) - MX突击步枪 (3连装榴弹) + MX突擊步槍 (3連裝榴彈) + MX突击步枪 (3连装榴弹) MX 3GL (Black) @@ -1677,8 +1677,8 @@ MX 3GL (Nero) MX 3GL (黒) MX 3GL (검정) - MX突擊步槍 (3連裝榴彈-黑色) - MX突击步枪 (3连装榴弹-黑色) + MX突擊步槍 (3連裝榴彈-黑色) + MX突击步枪 (3连装榴弹-黑色) MX LSW @@ -1693,8 +1693,8 @@ MX LSW MX LSW MX LSW - MX輕型機槍 - MX轻型机枪 + MX輕型機槍 + MX轻型机枪 MX LSW (Black) @@ -1709,8 +1709,8 @@ MX LSW (Nero) MX LSW (黒) MX LSW (검정) - MX輕型機槍 (黑色) - MX轻型机枪 (黑色) + MX輕型機槍 (黑色) + MX轻型机枪 (黑色) MXM @@ -1725,8 +1725,8 @@ MXM MXM MXM - MXM精準步槍 - MXM精准步枪 + MXM精準步槍 + MXM精准步枪 MXM (Black) @@ -1741,8 +1741,8 @@ MXM (Nero) MXM (黒) MXM (검정) - MXM精準步槍 (黑色) - MXM精准步枪 (黑色) + MXM精準步槍 (黑色) + MXM精准步枪 (黑色) KH2002 Sama @@ -1757,8 +1757,8 @@ KT2002 Katiba KH2002 サマ KH2002 Sama - KH2002"海白爾"突擊步槍 - KH2002"海白尔"突击步枪 + KH2002"海白爾"突擊步槍 + KH2002"海白尔"突击步枪 KH2002C Sama @@ -1773,8 +1773,8 @@ KT2002C Katiba KH2002C サマ KH2002C Sama - KH2002C"海白爾"卡賓步槍 - KH2002C"海白尔"卡宾步枪 + KH2002C"海白爾"卡賓步槍 + KH2002C"海白尔"卡宾步枪 KH2002 Sama KGL @@ -1789,8 +1789,8 @@ KT2002 Katiba KGL KH2002 サマ KGL KH2002 Sama KGL - KH2002"海白爾"突擊步槍 (榴彈) - KH2002"海白尔"突击步枪 (榴弹) + KH2002"海白爾"突擊步槍 (榴彈) + KH2002"海白尔"突击步枪 (榴弹) F2000 (Camo) @@ -1805,8 +1805,8 @@ F2000 (Camo) F2000 (迷彩) F2000 (위장) - F2000突擊步槍 (迷彩) - F2000突击步枪 (迷彩) + F2000突擊步槍 (迷彩) + F2000突击步枪 (迷彩) F2000 @@ -1821,8 +1821,8 @@ F2000 F2000 F2000 - F2000突擊步槍 - F2000突击步枪 + F2000突擊步槍 + F2000突击步枪 F2000 Tactical (Camo) @@ -1837,8 +1837,8 @@ F2000 Tactical (Camo) F2000 タクティカル (迷彩) F2000 Tactical (위장) - F2000戰術型突擊步槍 (迷彩) - F2000战术型突击步枪 (迷彩) + F2000戰術型突擊步槍 (迷彩) + F2000战术型突击步枪 (迷彩) F2000 Tactical @@ -1853,8 +1853,8 @@ F2000 Tactical F2000 タクティカル F2000 Tactical - F2000戰術型突擊步槍 - F2000战术型突击步枪 + F2000戰術型突擊步槍 + F2000战术型突击步枪 F2000 EGLM (Camo) @@ -1869,8 +1869,8 @@ F2000 EGLM (Camo) F2000 EGLM (迷彩) F2000 EGLM (위장) - F2000突擊步槍 (榴彈-迷彩) - F2000突击步枪 (榴弹-迷彩) + F2000突擊步槍 (榴彈-迷彩) + F2000突击步枪 (榴弹-迷彩) F2000 EGLM @@ -1885,8 +1885,8 @@ F2000 EGLM F2000 EGLM F2000 EGLM - F2000突擊步槍 (榴彈) - F2000突击步枪 (榴弹) + F2000突擊步槍 (榴彈) + F2000突击步枪 (榴弹) TAR-21 @@ -1901,8 +1901,8 @@ TAR-21 TAR-21 TAR-21 - TAR-21突擊步槍 - TAR-21突击步枪 + TAR-21突擊步槍 + TAR-21突击步枪 CTAR-21 @@ -1917,8 +1917,8 @@ CTAR-21 CTAR-21 CTAR-21 - CTAR-21卡賓步槍 - CTAR-21卡宾步枪 + CTAR-21卡賓步槍 + CTAR-21卡宾步枪 TAR-21 EGLM @@ -1933,8 +1933,8 @@ TAR-21 EGLM TAR-21 EGLM TAR-21 EGLM - TAR-21突擊步槍 (榴彈) - TAR-21突击步枪 (榴弹) + TAR-21突擊步槍 (榴彈) + TAR-21突击步枪 (榴弹) Vector SMG @@ -1949,8 +1949,8 @@ Vector SMG ベクター SMG Vector SMG - "維克特"衝鋒槍 - "维克特"冲锋枪 + "維克特"衝鋒槍 + "维克特"冲锋枪 Scorpion Evo 3 A1 @@ -1965,8 +1965,8 @@ Scorpion Evo 3 A1 スコーピオン エボ 3 A1 Scorpion Evo 3 A1 - "蠍式"Evo 3 A1衝鋒槍 - "蝎式"Evo 3 A1冲锋枪 + "蠍式"Evo 3 A1衝鋒槍 + "蝎式"Evo 3 A1冲锋枪 CPW @@ -1981,8 +1981,8 @@ CPW CPW CPW - 緊湊型個人衝鋒槍 - 紧凑型个人冲锋枪 + 緊湊型個人衝鋒槍 + 紧凑型个人冲锋枪 RFB SDAR @@ -1997,8 +1997,8 @@ RFB SDAR RFB SDAR RFB SDAR - 犢牛式水陸兩用步槍 - 犊牛式水陆两用步枪 + 犢牛式水陸兩用步槍 + 犊牛式水陆两用步枪 Stoner 99 LMG @@ -2013,8 +2013,8 @@ Stoner 99 LMG ストーナー 99 LMG Stoner 99 LMG - 斯通納99輕機槍 - 斯通纳99轻机枪 + 斯通納99輕機槍 + 斯通纳99轻机枪 Negev NG7 @@ -2029,8 +2029,8 @@ Negev NG7 ネゲフ NG7 Negev NG7 - 內蓋夫NG7機槍 - 内盖夫NG7机枪 + 內蓋夫NG7機槍 + 内盖夫NG7机枪 Mk14 Mod 1 EBR @@ -2045,8 +2045,8 @@ Mk14 Mod 1 EBR Mk14 Mod 1 EBR Mk14 Mod 1 EBR - Mk14一型增強型戰鬥步槍 - Mk14一型增强型战斗步枪 + Mk14一型增強型戰鬥步槍 + Mk14一型增强型战斗步枪 GM6 Lynx @@ -2061,8 +2061,8 @@ GM6 Lynx GM6 リンクス GM6 Lynx - GM6"天貓"反器材狙擊步槍 - GM6"天猫"反器材狙击步枪 + GM6"天貓"反器材狙擊步槍 + GM6"天猫"反器材狙击步枪 GM6 Lynx (Camo) @@ -2077,8 +2077,8 @@ GM6 Lynx (Camo) GM6 リンクス (迷彩) GM6 Lynx (위장) - GM6"天貓"反器材狙擊步槍 (迷彩) - GM6"天猫"反器材狙击步枪 (迷彩) + GM6"天貓"反器材狙擊步槍 (迷彩) + GM6"天猫"反器材狙击步枪 (迷彩) M200 Intervention @@ -2093,8 +2093,8 @@ M200 Intervention M200 インターベンション M200 Intervention - M200干預型狙擊步槍 - M200干预型狙击步枪 + M200干預型狙擊步槍 + M200干预型狙击步枪 M200 Intervention (Camo) @@ -2109,8 +2109,8 @@ M200 Intervention (Camo) M200 インターベンション (迷彩) M200 Intervention (위장) - M200干預型狙擊步槍 (迷彩) - M200干预型狙击步枪 (迷彩) + M200干預型狙擊步槍 (迷彩) + M200干预型狙击步枪 (迷彩) VS-121 @@ -2125,8 +2125,8 @@ VS-121 VS-121 VS-121 - VS-121狙擊步槍 - VS-121狙击步枪 + VS-121狙擊步槍 + VS-121狙击步枪 Noreen "Bad News" ULR @@ -2141,8 +2141,8 @@ Noreen "Bad News" ULR ノレーン "バッド ニュース" ULR Noreen "Bad News" ULR - 諾琳"壞消息"極距狙擊步槍 - 诺琳"坏消息"极距狙击步枪 + 諾琳"壞消息"極距狙擊步槍 + 诺琳"坏消息"极距狙击步枪 Noreen "Bad News" ULR (Black) @@ -2157,8 +2157,8 @@ Noreen "Bad News" ULR (Preto) ノレーン "バッド ニュース" ULR (黒) Noreen "Bad News" ULR (검정) - 諾琳"壞消息"極距狙擊步槍 (黑色) - 诺琳"坏消息"极距狙击步枪 (黑色) + 諾琳"壞消息"極距狙擊步槍 (黑色) + 诺琳"坏消息"极距狙击步枪 (黑色) Noreen "Bad News" ULR (Camo) @@ -2173,8 +2173,8 @@ Noreen "Bad News" ULR (Camuflagem) ノレーン "バッド ニュース" ULR (迷彩) Noreen "Bad News" ULR (위장) - 諾琳"壞消息"極距狙擊步槍 (迷彩) - 诺琳"坏消息"极距狙击步枪 (迷彩) + 諾琳"壞消息"極距狙擊步槍 (迷彩) + 诺琳"坏消息"极距狙击步枪 (迷彩) Noreen "Bad News" ULR (Sand) @@ -2189,8 +2189,8 @@ Noreen "Bad News" ULR (Deserto) ノレーン "バッド ニュース" ULR (砂地) Noreen "Bad News" ULR (모래) - 諾琳"壞消息"極距狙擊步槍 (沙色) - 诺琳"坏消息"极距狙击步枪 (沙色) + 諾琳"壞消息"極距狙擊步槍 (沙色) + 诺琳"坏消息"极距狙击步枪 (沙色) SIG 556 @@ -2205,8 +2205,8 @@ SIG 556 SIG 556 SIG 556 - SIG 556精準步槍 - SIG 556精准步枪 + SIG 556精準步槍 + SIG 556精准步枪 SIG 556 (Black) @@ -2221,8 +2221,8 @@ SIG 556 (Preto) SIG 556 (黒) SIG 556 (검정) - SIG 556精準步槍 (黑色) - SIG 556精准步枪 (黑色) + SIG 556精準步槍 (黑色) + SIG 556精准步枪 (黑色) SIG 556 (Khaki) @@ -2237,8 +2237,8 @@ SIG 556 (Caqui) SIG 556 (土埃) SIG 556 (카키) - SIG 556精準步槍 (卡其色) - SIG 556精准步枪 (卡其色) + SIG 556精準步槍 (卡其色) + SIG 556精准步枪 (卡其色) SIG 556 (Sand) @@ -2253,8 +2253,8 @@ SIG 556 (Deserto) SIG 556 (砂地) SIG 556 (모래) - SIG 556精準步槍 (沙色) - SIG 556精准步枪 (沙色) + SIG 556精準步槍 (沙色) + SIG 556精准步枪 (沙色) SIG 556 (Camo) @@ -2269,8 +2269,8 @@ SIG 556 (Camuflagem) SIG 556 (迷彩) SIG 556 (위장) - SIG 556精準步槍 (迷彩) - SIG 556精准步枪 (迷彩) + SIG 556精準步槍 (迷彩) + SIG 556精准步枪 (迷彩) SIG 556 (Woodland) @@ -2285,8 +2285,8 @@ SIG 556 (Floresta) SIG 556 (森林) SIG 556 (우드랜드) - SIG 556精準步槍 (森林迷彩) - SIG 556精准步枪 (森林迷彩) + SIG 556精準步槍 (森林迷彩) + SIG 556精准步枪 (森林迷彩) SIG 556 (provisional) spotter @@ -2301,8 +2301,8 @@ SIG 556 (provisional) observador SIG 556 (仮) スポッター SIG 556 (임시) spotter - SIG 556精準步槍 (暫定) 觀測手 - SIG 556精准步枪 (暂定) 观测手 + SIG 556精準步槍 (暫定) 觀測手 + SIG 556精准步枪 (暂定) 观测手 ASP-1 Kir @@ -2317,8 +2317,8 @@ ASP-1 Kir ASP-1 Kir ASP-1 Kir - ASP-1"基爾"消音狙擊步槍 - ASP-1"基尔"消音狙击步枪 + ASP-1"基爾"消音狙擊步槍 + ASP-1"基尔"消音狙击步枪 ASP-1 Kir (Black) @@ -2333,8 +2333,8 @@ ASP-1 Kir (Preto) ASP-1 Kir (黒) ASP-1 Kir (검정) - ASP-1"基爾"消音狙擊步槍 (黑色) - ASP-1"基尔"消音狙击步枪 (黑色) + ASP-1"基爾"消音狙擊步槍 (黑色) + ASP-1"基尔"消音狙击步枪 (黑色) ASP-1 Kir (Tan) @@ -2349,8 +2349,8 @@ ASP-1 Kir (Deserto) ASP-1 Kir (黄褐) ASP-1 Kir (황갈) - ASP-1"基爾"消音狙擊步槍 (黃褐色) - ASP-1"基尔"消音狙击步枪 (黄褐色) + ASP-1"基爾"消音狙擊步槍 (黃褐色) + ASP-1"基尔"消音狙击步枪 (黄褐色) Cyrus @@ -2365,8 +2365,8 @@ Cyrus サイラス Cyrus - "居鲁士"狙擊步槍 - "居鲁士"狙击步枪 + "居鲁士"狙擊步槍 + "居鲁士"狙击步枪 Cyrus (Black) @@ -2381,8 +2381,8 @@ Cyrus (Preto) サイラス (黒) Cyrus (검정) - "居鲁士"狙擊步槍 (黑色) - "居鲁士"狙击步枪 (黑色) + "居鲁士"狙擊步槍 (黑色) + "居鲁士"狙击步枪 (黑色) Cyrus (Hex) @@ -2397,8 +2397,8 @@ Cyrus (Hex) サイラス (蜂巣) Cyrus (육각) - "居鲁士"狙擊步槍 (數位蜂巢迷彩) - "居鲁士"狙击步枪 (数位蜂巢迷彩) + "居鲁士"狙擊步槍 (數位蜂巢迷彩) + "居鲁士"狙击步枪 (数位蜂巢迷彩) Cyrus (Tan) @@ -2413,8 +2413,8 @@ Cyrus (Deserto) サイラス (黄褐) Cyrus (황갈) - "居鲁士"狙擊步槍 (黃褐色) - "居鲁士"狙击步枪 (黄褐色) + "居鲁士"狙擊步槍 (黃褐色) + "居鲁士"狙击步枪 (黄褐色) M14 @@ -2429,8 +2429,8 @@ M14 M14 M14 - M14精準步槍 - M14精准步枪 + M14精準步槍 + M14精准步枪 M14 (Camo) @@ -2445,8 +2445,8 @@ M14 (Camuflagem) M14 (迷彩) M14 (위장) - M14精準步槍 (迷彩) - M14精准步枪 (迷彩) + M14精準步槍 (迷彩) + M14精准步枪 (迷彩) M14 (Olive) @@ -2461,8 +2461,8 @@ M14 (Oliva) M14 (オリーブド ラブ) M14 (올리브) - M14精準步槍 (橄欖色) - M14精准步枪 (橄榄色) + M14精準步槍 (橄欖色) + M14精准步枪 (橄榄色) HK121 @@ -2477,8 +2477,8 @@ HK121 HK 121 HK121 - HK121中型機槍 - HK121中型机枪 + HK121中型機槍 + HK121中型机枪 HK121 (Hex) @@ -2493,8 +2493,8 @@ HK121 (Hex) HK 121 (蜂巣) HK121 (육각) - HK121中型機槍 (數位蜂巢迷彩) - HK121中型机枪 (数位蜂巢迷彩) + HK121中型機槍 (數位蜂巢迷彩) + HK121中型机枪 (数位蜂巢迷彩) HK121 (Tan) @@ -2509,8 +2509,8 @@ HK121 (Deserto) HK 121 (黄褐) HK121 (황갈) - HK121機槍 (黃褐色) - HK121机枪 (黄褐色) + HK121機槍 (黃褐色) + HK121机枪 (黄褐色) LWMMG @@ -2525,8 +2525,8 @@ LWMMG LWMMG LWMMG - 輕量化中型機槍 - 轻量化中型机枪 + 輕量化中型機槍 + 轻量化中型机枪 LWMMG (MTP) @@ -2541,8 +2541,8 @@ LWMMG (MTP) LWMMG (マルチカモ) LWMMG (MTP) - 輕量化中型機槍 (多地形迷彩) - 轻量化中型机枪 (多地形迷彩) + 輕量化中型機槍 (多地形迷彩) + 轻量化中型机枪 (多地形迷彩) LWMMG (Black) @@ -2557,8 +2557,8 @@ LWMMG (Preto) LWMMG (黒) LWMMG (검정) - 輕量化中型機槍 (黑色) - 轻量化中型机枪 (黑色) + 輕量化中型機槍 (黑色) + 轻量化中型机枪 (黑色) LWMMG (Sand) @@ -2573,8 +2573,8 @@ LWMMG (Deserto) LWMMG (砂地) LWMMG (모래) - 輕量化中型機槍 (沙色) - 轻量化中型机枪 (沙色) + 輕量化中型機槍 (沙色) + 轻量化中型机枪 (沙色) Jeep Wrangler @@ -2589,8 +2589,8 @@ Jeep Wrangler ジープ ラングラー Jeep Wrangler - "牧馬人"吉普車 - "牧马人"吉普车 + "牧馬人"吉普車 + "牧马人"吉普车 Jeep Wrangler (Black) @@ -2605,8 +2605,8 @@ Jeep Wrangler (Preto) ジープ ラングラー (黒) Jeep Wrangler (검정) - "牧馬人"吉普車 (黑色) - "牧马人"吉普车 (黑色) + "牧馬人"吉普車 (黑色) + "牧马人"吉普车 (黑色) Jeep Wrangler (Blue) @@ -2621,8 +2621,8 @@ Jeep Wrangler (Blu) ジープ ラングラー (青) Jeep Wrangler (파랑) - "牧馬人"吉普車 (藍色) - "牧马人"吉普车 (蓝色) + "牧馬人"吉普車 (藍色) + "牧马人"吉普车 (蓝色) Jeep Wrangler (Green) @@ -2637,8 +2637,8 @@ Jeep Wrangler (Verde) ジープ ラングラー (緑) Jeep Wrangler (초록) - "牧馬人"吉普車 (綠色) - "牧马人"吉普车 (绿色) + "牧馬人"吉普車 (綠色) + "牧马人"吉普车 (绿色) Jeep Wrangler (Orange) @@ -2653,8 +2653,8 @@ Jeep Wrangler (Arancione) ジープ ラングラー (橙) Jeep Wrangler (주황) - "牧馬人"吉普車 (橘色) - "牧马人"吉普车 (橘色) + "牧馬人"吉普車 (橘色) + "牧马人"吉普车 (橘色) Jeep Wrangler (Red) @@ -2669,8 +2669,8 @@ Jeep Wrangler (Rosso) ジープ ラングラー (赤) Jeep Wrangler (빨강) - "牧馬人"吉普車 (紅色) - "牧马人"吉普车 (红色) + "牧馬人"吉普車 (紅色) + "牧马人"吉普车 (红色) Jeep Wrangler (White) @@ -2685,8 +2685,8 @@ Jeep Wrangler (Bianco) ジープ ラングラー (白) Jeep Wrangler (하양) - "牧馬人"吉普車 (白色) - "牧马人"吉普车 (白色) + "牧馬人"吉普車 (白色) + "牧马人"吉普车 (白色) Cessna TTx @@ -2701,8 +2701,8 @@ Cessna TTx セスナ TTx Cessna TTx - "賽斯納"TTx單引擎飛機 - "赛斯纳"TTx单引擎飞机 + "賽斯納"TTx單引擎飛機 + "赛斯纳"TTx单引擎飞机 Cessna TTx (Racing) @@ -2717,8 +2717,8 @@ Cessna TTx (Racing) セスナ TTx (レース仕様) Cessna TTx (경주용) - "賽斯納"TTx單引擎飛機 (競速) - "赛斯纳"TTx单引擎飞机 (竞速) + "賽斯納"TTx單引擎飛機 (競速) + "赛斯纳"TTx单引擎飞机 (竞速) Burraq UCAV @@ -2733,8 +2733,8 @@ Burraq UCAV ブラーク UCAV Burraq UCAV - "柏拉格"空中無人戰鬥載具 - "柏拉格"空中无人战斗载具 + "柏拉格"空中無人戰鬥載具 + "柏拉格"空中无人战斗载具 QBZ-95-1 (Black) @@ -2749,8 +2749,8 @@ QBZ-95-1 (Preto) QBZ-95-1 (黒) QBZ-95-1 (검정) - QBZ-95-1式自動步槍 (黑色) - QBZ-95-1式自动步枪 (黑色) + QBZ-95-1式自動步槍 (黑色) + QBZ-95-1式自动步枪 (黑色) QBZ-95-1 (Green Hex) @@ -2765,8 +2765,8 @@ QBZ-95-1 (Hex Verde) QBZ-95-1 (緑蜂巣) QBZ-95-1 (초록육각) - QBZ-95-1式自動步槍 (綠色數位蜂巢迷彩) - QBZ-95-1式自动步枪 (绿色数位蜂巢迷彩) + QBZ-95-1式自動步槍 (綠色數位蜂巢迷彩) + QBZ-95-1式自动步枪 (绿色数位蜂巢迷彩) QBZ-95-1 (Hex) @@ -2781,8 +2781,8 @@ QBZ-95-1 (Hex) QBZ-95-1 (蜂巣) QBZ-95-1 (육각) - QBZ-95-1式自動步槍 (數位蜂巢迷彩) - QBZ-95-1式自动步枪 (数位蜂巢迷彩) + QBZ-95-1式自動步槍 (數位蜂巢迷彩) + QBZ-95-1式自动步枪 (数位蜂巢迷彩) QBZ-95-1 GL (Black) @@ -2797,8 +2797,8 @@ QBZ-95-1 GL (Preto) QBZ-95-1 GL (黒) QBZ-95-1 GL (검정) - QBZ-95-1式自動步槍 (榴彈-黑色) - QBZ-95-1式自动步枪 (榴弹-黑色) + QBZ-95-1式自動步槍 (榴彈-黑色) + QBZ-95-1式自动步枪 (榴弹-黑色) QBZ-95-1 GL (Green Hex) @@ -2813,8 +2813,8 @@ QBZ-95-1 GL (Hex Verde) QBZ-95-1 GL (緑蜂巣) QBZ-95-1 GL (초록육각) - QBZ-95-1式自動步槍 (榴彈-綠色數位蜂巢迷彩) - QBZ-95-1式自动步枪 (榴弹-绿色数位蜂巢迷彩) + QBZ-95-1式自動步槍 (榴彈-綠色數位蜂巢迷彩) + QBZ-95-1式自动步枪 (榴弹-绿色数位蜂巢迷彩) QBZ-95-1 GL (Hex) @@ -2829,8 +2829,8 @@ QBZ-95-1 GL (Hex) QBZ-95-1 GL (蜂巣) QBZ-95-1 GL (육각) - QBZ-95-1式自動步槍 (榴彈-數位蜂巢迷彩) - QBZ-95-1式自动步枪 (榴弹-数位蜂巢迷彩) + QBZ-95-1式自動步槍 (榴彈-數位蜂巢迷彩) + QBZ-95-1式自动步枪 (榴弹-数位蜂巢迷彩) QBZ-95-1 LSW (Black) @@ -2845,8 +2845,8 @@ QBZ-95-1 LSW (Preto) QBZ-95-1 LSW (黒) QBZ-95-1 LSW (검정) - QBZ-95-1式輕機槍 (黑色) - QBZ-95-1式轻机枪 (黑色) + QBZ-95-1式輕機槍 (黑色) + QBZ-95-1式轻机枪 (黑色) QBZ-95-1 LSW (Green Hex) @@ -2861,8 +2861,8 @@ QBZ-95-1 LSW (Hex Verde) QBZ-95-1 LSW (緑蜂巣) QBZ-95-1 LSW (초록육각) - QBZ-95-1式輕機槍 (綠色數位蜂巢迷彩) - QBZ-95-1式轻机枪 (绿色数位蜂巢迷彩) + QBZ-95-1式輕機槍 (綠色數位蜂巢迷彩) + QBZ-95-1式轻机枪 (绿色数位蜂巢迷彩) QBZ-95-1 LSW (Hex) @@ -2877,8 +2877,8 @@ QBZ-95-1 LSW (Hex) QBZ-95-1 LSW (蜂巣) QBZ-95-1 LSW (육각) - QBZ-95-1式輕機槍 (數位蜂巢迷彩) - QBZ-95-1式轻机枪 (数位蜂巢迷彩) + QBZ-95-1式輕機槍 (數位蜂巢迷彩) + QBZ-95-1式轻机枪 (数位蜂巢迷彩) QBU-88 (Black) @@ -2893,8 +2893,8 @@ QBU-88 (Preto) QBU-88 (黒) QBU-88 (검정) - QBU-88式狙擊步槍 (黑色) - QBU-88式狙击步枪 (黑色) + QBU-88式狙擊步槍 (黑色) + QBU-88式狙击步枪 (黑色) QBU-88 (Green Hex) @@ -2909,8 +2909,8 @@ QBU-88 (Hex Verde) QBU-88 (緑蜂巣) QBU-88 (초록육각) - QBU-88式狙擊步槍 (綠色數位蜂巢迷彩) - QBU-88式狙击步枪 (绿色数位蜂巢迷彩) + QBU-88式狙擊步槍 (綠色數位蜂巢迷彩) + QBU-88式狙击步枪 (绿色数位蜂巢迷彩) QBU-88 (Hex) @@ -2925,8 +2925,8 @@ QBU-88 (Hex) QBU-88 (蜂巣) QBU-88 (육각) - QBU-88式狙擊步槍 (數位蜂巢迷彩) - QBU-88式狙击步枪 (数位蜂巢迷彩) + QBU-88式狙擊步槍 (數位蜂巢迷彩) + QBU-88式狙击步枪 (数位蜂巢迷彩) GM6 Lynx (Green Hex) @@ -2941,8 +2941,8 @@ GM6 Lynx (Hex Verde) GM6 リンクス (緑蜂巣) GM6 Lynx (초록육각) - GM6"天貓"反器材狙擊步槍 (綠色數位蜂巢迷彩) - GM6"天猫"反器材狙击步枪 (绿色数位蜂巢迷彩) + GM6"天貓"反器材狙擊步槍 (綠色數位蜂巢迷彩) + GM6"天猫"反器材狙击步枪 (绿色数位蜂巢迷彩) M249 SPW @@ -2957,8 +2957,8 @@ M249 SPW M249 SPW M249 SPW - M249班用自動機槍 - M249班用自动机枪 + M249班用自動機槍 + M249班用自动机枪 M200 Intervention (Tropic) @@ -2973,8 +2973,8 @@ M200 Intervention (Tropico) M200 インターベンション (熱帯) M200 Intervention (열대) - M200干預型狙擊步槍 (熱帶迷彩) - M200干预型狙击步枪 (热带迷彩) + M200干預型狙擊步槍 (熱帶迷彩) + M200干预型狙击步枪 (热带迷彩) MP5K @@ -2989,8 +2989,8 @@ MP5K MP5K MP5K - MP5K衝鋒槍 - MP5K冲锋枪 + MP5K衝鋒槍 + MP5K冲锋枪 HK416A5 11" (Black) @@ -3005,8 +3005,8 @@ HK416A5 11" (Preto) HK416A5 11" (黒) HK416A5 11" (검정) - HK416A5 11"突擊步槍 (黑色) - HK416A5 11"突击步枪 (黑色) + HK416A5 11"突擊步槍 (黑色) + HK416A5 11"突击步枪 (黑色) HK416A5 11" (Khaki) @@ -3021,8 +3021,8 @@ HK416A5 11" (Caqui) HK416A5 11" (土埃) HK416A5 11" (카키) - HK416A5 11"突擊步槍 (卡其色) - HK416A5 11"突击步枪 (卡其色) + HK416A5 11"突擊步槍 (卡其色) + HK416A5 11"突击步枪 (卡其色) HK416A5 11" (Sand) @@ -3037,8 +3037,8 @@ HK416A5 11" (Deserto) HK416A5 11" (砂地) HK416A5 11" (모래) - HK416A5 11"突擊步槍 (沙色) - HK416A5 11"突击步枪 (沙色) + HK416A5 11"突擊步槍 (沙色) + HK416A5 11"突击步枪 (沙色) HK416A5 11" GL (Black) @@ -3053,8 +3053,8 @@ HK416A5 11" GL (Preto) HK416A5 11" GL (黒) HK416A5 11" GL (검정) - HK416A5 11"突擊步槍 (榴彈-黑色) - HK416A5 11"突击步枪 (榴弹-黑色) + HK416A5 11"突擊步槍 (榴彈-黑色) + HK416A5 11"突击步枪 (榴弹-黑色) HK416A5 11" GL (Khaki) @@ -3069,8 +3069,8 @@ HK416A5 11" GL (Caqui) HK416A5 11" GL (土埃) HK416A5 11" GL (카키) - HK416A5 11"突擊步槍 (榴彈-卡其色) - HK416A5 11"突击步枪 (榴弹-卡其色) + HK416A5 11"突擊步槍 (榴彈-卡其色) + HK416A5 11"突击步枪 (榴弹-卡其色) HK416A5 11" GL (Sand) @@ -3085,8 +3085,8 @@ HK416A5 11" GL (Deserto) HK416A5 11" GL (砂地) HK416A5 11" GL (모래) - HK416A5 11"突擊步槍 (榴彈-沙色) - HK416A5 11"突击步枪 (榴弹-沙色) + HK416A5 11"突擊步槍 (榴彈-沙色) + HK416A5 11"突击步枪 (榴弹-沙色) HK416A5 14.5" (Black) @@ -3101,8 +3101,8 @@ HK416A5 14.5" (Preto) HK416A5 14.5" (黒) HK416A5 14.5" (검정) - HK416A5 14.5"突擊步槍 (黑色) - HK416A5 14.5"突击步枪 (黑色) + HK416A5 14.5"突擊步槍 (黑色) + HK416A5 14.5"突击步枪 (黑色) HK416A5 14.5" (Khaki) @@ -3117,8 +3117,8 @@ HK416A5 14.5" (Caqui) HK416A5 14.5" (土埃) HK416A5 14.5" (카키) - HK416A5 14.5"突擊步槍 (卡其色) - HK416A5 14.5"突击步枪 (卡其色) + HK416A5 14.5"突擊步槍 (卡其色) + HK416A5 14.5"突击步枪 (卡其色) HK416A5 14.5" (Sand) @@ -3133,8 +3133,8 @@ HK416A5 14.5" (Deserto) HK416A5 14.5" (砂地) HK416A5 14.5" (모래) - HK416A5 14.5"突擊步槍 (沙色) - HK416A5 14.5"突击步枪 (沙色) + HK416A5 14.5"突擊步槍 (沙色) + HK416A5 14.5"突击步枪 (沙色) HK417A2 20" (Black) @@ -3149,8 +3149,8 @@ HK417A2 20" (Preto) HK417A2 20" (黒) HK417A2 20" (검정) - HK417A2 20"突擊步槍 (黑色) - HK417A2 20"突击步枪 (黑色) + HK417A2 20"突擊步槍 (黑色) + HK417A2 20"突击步枪 (黑色) HK417A2 20" (Khaki) @@ -3165,8 +3165,8 @@ HK417A2 20" (Caqui) HK417A2 20" (土埃) HK417A2 20" (카키) - HK417A2 20"突擊步槍 (卡其色) - HK417A2 20"突击步枪 (卡其色) + HK417A2 20"突擊步槍 (卡其色) + HK417A2 20"突击步枪 (卡其色) HK417A2 20" (Sand) @@ -3181,8 +3181,8 @@ HK417A2 20" (Deserto) HK417A2 20" (砂地) HK417A2 20" (모래) - HK417A2 20"突擊步槍 (沙色) - HK417A2 20"突击步枪 (沙色) + HK417A2 20"突擊步槍 (沙色) + HK417A2 20"突击步枪 (沙色) RPG-32 (Green Hex) @@ -3197,8 +3197,8 @@ RPG-32 (Hex Verde) RPG-32 (緑蜂巣) RPG-32 (초록육각) - RPG-32火箭發射器 (綠色數位蜂巢迷彩) - RPG-32火箭发射器 (绿色数位蜂巢迷彩) + RPG-32火箭發射器 (綠色數位蜂巢迷彩) + RPG-32火箭发射器 (绿色数位蜂巢迷彩) P99 (Khaki) @@ -3213,8 +3213,8 @@ P99 (Caqui) P99 (カーキ) P99 (카키) - P99半自動手槍 (卡其色) - P99半自动手枪 (卡其色) + P99半自動手槍 (卡其色) + P99半自动手枪 (卡其色) Makarov PM @@ -3229,8 +3229,8 @@ Makarov PM マカロフ PM Makarov PM - "馬卡洛夫"手槍 - "马卡洛夫"手枪 + "馬卡洛夫"手槍 + "马卡洛夫"手枪 diff --git a/addons/rearm/stringtable.xml b/addons/rearm/stringtable.xml index 1995bfec819..05aecd1102f 100644 --- a/addons/rearm/stringtable.xml +++ b/addons/rearm/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,8 +13,8 @@ Options de réarmement 再武装設定 재보급 설정 - 整装设定 - 整裝設定 + 整装设定 + 整裝設定 This module allows you to tweak rearm system settings. @@ -28,8 +28,8 @@ Ce module autorise l'amélioration du système de réarmement. 再武装システムの設定を微調整します。 이 모듈은 재보급시의 설정을 바꿀수 있게해줍니다. - 此模块允许你调整整装系统设定 - 此模塊允許你調整整裝系統設定 + 此模块允许你调整整装系统设定 + 此模塊允許你調整整裝系統設定 Rearm Amount @@ -43,8 +43,8 @@ Quantité à réarmer 再武装できる量 재보급 양 - 整装所需时间 - 整裝所需時間 + 整装所需时间 + 整裝所需時間 How fast should a vehicle be rearmed? @@ -58,8 +58,8 @@ A quelle vitesse devrait être réarmé un véhicule ? 車両を再武装する速さを設定しますか? 차량을 얼마나 빨리 재보급 시킵니까? - 载具多快会整装完毕? - 載具多快會整裝完畢? + 载具多快会整装完毕? + 載具多快會整裝完畢? Entire Vehicle @@ -73,8 +73,8 @@ Véhicule entier 対象の車両 모든 차량 - 整个载具 - 整個載具 + 整个载具 + 整個載具 Entire Magazine @@ -88,8 +88,8 @@ Chargeur entier 対象の弾薬 모든 탄창 - 整个弹匣 - 整個彈匣 + 整个弹匣 + 整個彈匣 Amount based on caliber @@ -103,88 +103,88 @@ Quantité basée sur le calibre 口径に基づいた量 구경에 따라 수량 설정 - 基于口径决定所耗时间 - 基於口徑決定所耗時間 + 基于口径决定所耗时间 + 基於口徑決定所耗時間 Ammunition supply Munitionsvorat Scorta munizioni 弾薬の供給 - 弹药补给 - 彈藥補給 + 弹药补给 + 彈藥補給 How much ammunition does an ammo truck carry? Wie viel Munition transportiert ein Munitionslaster? Quante munizioni può trasportare un camion? 弾薬トラックがどの位の弾薬を供給できるようにしますか? - 弹药卡车会携带多少的弹药? - 彈藥卡車會攜帶多少的彈藥? + 弹药卡车会携带多少的弹药? + 彈藥卡車會攜帶多少的彈藥? Unlimited ammo supply Unbegrenzter Munitionsvorat Scorta munizioni infinita 無制限供給 - 无限弹药 - 無限彈藥 + 无限弹药 + 無限彈藥 Limited ammo supply based on caliber Begrenzter, kaliberabhängiger Munitionsvorat Scorta munizioni limitata in base al calibro 口径に基づいた限定的供給 - 基于口径限制弹药数量 - 基於口徑限制彈藥數量 + 基于口径限制弹药数量 + 基於口徑限制彈藥數量 Only specific Magazines Nur bestimmte Magazine Solo specifici caricatori 特定の弾薬のみ - 只有指定的弹药 - 只有指定的彈藥 + 只有指定的弹药 + 只有指定的彈藥 Check remaining ammunition Verbleibende Munition prüfen Controlla munizioni rimanenti 残弾薬を確認 - 检查剩余的弹药 - 檢查剩餘的彈藥 + 检查剩余的弹药 + 檢查剩餘的彈藥 Checking remaining ammunition... Überprüfe verbleibende Munition... Controllando le munizioni rimanenti 残弾薬を確認しています・・・ - 正在检查剩余的弹药中... - 正在檢查剩餘的彈藥中... + 正在检查剩余的弹药中... + 正在檢查剩餘的彈藥中... There is ammunition worth %1 points left. Es ist noch Munition für %1 Punkte übrig. E' presente una penalità delle munizioni %1 punti rimanenti. この弾薬は%1残っている - 还剩下%1多的弹药. - 還剩下%1多的彈藥. + 还剩下%1多的弹药. + 還剩下%1多的彈藥. The following ammunition is left:%1 Folgende Munition ist übrig:%1 Mancano le seguenti:%1 この弾薬の残りは:%1 - 以下剩余的弹药:%1 - 以下剩餘的彈藥:%1 + 以下剩余的弹药:%1 + 以下剩餘的彈藥:%1 There is no ammunition left. Es ist keine Munition übrig. Non ci sono munizioni rimanenti. 弾薬は残っていません。 - 已经没有剩余的弹药了. - 已經沒有剩餘的彈藥了. + 已经没有剩余的弹药了. + 已經沒有剩餘的彈藥了. Rearm @@ -198,8 +198,8 @@ Réarmer 再武装 재보급 - 整装 - 整裝 + 整装 + 整裝 Rearming %1 with %2... @@ -213,8 +213,8 @@ Réarmement de %1 avec %2... %1を%2により再武装する。 %2을 %1에 재보급중... - %2正整装到%1中... - %2正整裝到%1中... + %2正整装到%1中... + %2正整裝到%1中... Rearming %1... @@ -228,8 +228,8 @@ Réarmement de %1... %1を再武装中・・・ %1 재보급중... - 整装%1中... - 整裝%1中... + 整装%1中... + 整裝%1中... Taking %1 for %2... @@ -243,8 +243,8 @@ Prend %1 pour %2... %1を%2のために取得しています・・・ %2를 위해 %1 가져오는중... - 拿取%1给%2中... - 拿取%1給%2中... + 拿取%1给%2中... + 拿取%1給%2中... Take ammo @@ -258,8 +258,8 @@ Prendre la munition 弾薬をとる 탄약 가지기 - 取得弹药 - 取得彈藥 + 取得弹药 + 取得彈藥 Pick up ammo @@ -273,8 +273,8 @@ Ramasser la munition 弾薬を拾う 탄약 줍기 - 捡起弹药 - 撿起彈藥 + 捡起弹药 + 撿起彈藥 Store ammo @@ -288,8 +288,8 @@ Stocker la munition 弾薬を戻す 탄약 보관하기 - 储存弹药 - 儲存彈藥 + 储存弹药 + 儲存彈藥 Storing %1 in %2... @@ -303,8 +303,8 @@ Stocke %1 dans %2... %1を%2へ戻しています・・・ %2에 %1 보관중... - 储存%1到%2中... - 儲存%1到%2中... + 储存%1到%2中... + 儲存%1到%2中... Picking up ammo... @@ -317,8 +317,8 @@ Ramassage des munitions... 弾薬を拾っている・・・ 탄약 줍는중... - 捡起弹药中... - 撿起彈藥中... + 捡起弹药中... + 撿起彈藥中... Rearmed %1 rounds of %2 on %3 @@ -332,8 +332,8 @@ %1 balles réarmées de %2 dans %3 %1発の%2を%3から装填した %3에 2%의 %1 탄약 재보급 - 整装了%1发%2到%3上 - 整裝了%1發%2到%3上 + 整装了%1发%2到%3上 + 整裝了%1發%2到%3上 Smoke Screen @@ -347,8 +347,8 @@ Pantalla de humo 煙幕弾 연막 차장 - 烟幕弹 - 煙幕彈 + 烟幕弹 + 煙幕彈 Flares @@ -362,8 +362,8 @@ Bengalas フレア 기만체 - 热焰弹 - 熱焰彈 + 热焰弹 + 熱焰彈 30mm HEI @@ -377,8 +377,8 @@ 30mm HEI 30mm 焼夷りゅう弾 30mm 고폭소이탄 - 30mm 高爆燃烧弹 - 30mm 高爆燃燒彈 + 30mm 高爆燃烧弹 + 30mm 高爆燃燒彈 30mm HEI-T @@ -392,8 +392,8 @@ 30mm HEI-T 30mm 焼夷曳光りゅう弾 30mm 고폭소이예광탄 - 30mm 高爆燃烧曳光弹 - 30mm 高爆燃燒曳光彈 + 30mm 高爆燃烧曳光弹 + 30mm 高爆燃燒曳光彈 AIM-9 Sidewinder @@ -407,8 +407,8 @@ AIM-9 Sidewinder AIM-9 サイドワインダー AIM-9 Sidewinder - AIM-9 响尾蛇 - AIM-9 響尾蛇 + AIM-9 响尾蛇 + AIM-9 響尾蛇 Wympel R-73 @@ -422,8 +422,8 @@ Wympel R-73 ヴィンペル R-73 Vympel R-73 - Wympel R-73 - Wympel R-73 + Wympel R-73 + Wympel R-73 AGM-65 Maverick @@ -437,8 +437,8 @@ AGM-65 Maverick AGM-65 マーベリック AGM-65 Maverick - AGM-65 小牛 - AGM-65 小牛 + AGM-65 小牛 + AGM-65 小牛 Kh-25MTP @@ -452,8 +452,8 @@ Kh-25MTP Kh-25MTP Kh-25MTP - Kh-25MTP - Kh-25MTP + Kh-25MTP + Kh-25MTP Hydra 70 HE @@ -467,8 +467,8 @@ Hydra 70 HE ハイドラ 70 りゅう弾 Hydra 70 고폭탄 - 九头蛇 70 高爆弹 - 九頭蛇 70 高爆彈 + 九头蛇 70 高爆弹 + 九頭蛇 70 高爆彈 S-8 HE @@ -482,8 +482,8 @@ S-8 HE S-8 りゅう弾 S-8 고폭탄 - S-8 高爆弹 - S-8 高爆彈 + S-8 高爆弹 + S-8 高爆彈 Hydra 70 AP @@ -497,8 +497,8 @@ Hydra 70 AP ハイドラ 70 徹甲弾 Hydra 70 철갑탄 - 九头蛇 70 反人员弹 - 九頭蛇 70 反人員彈 + 九头蛇 70 反人员弹 + 九頭蛇 70 反人員彈 S-8 AP @@ -512,8 +512,8 @@ S-8 AP S-8 徹甲弾 S-8 철갑탄 - S-8 反人员弹 - S-8 反人員彈 + S-8 反人员弹 + S-8 反人員彈 GBU-12 @@ -527,8 +527,8 @@ GBU-12 GBU-12 GBU-12 - GBU-12 - GBU-12 + GBU-12 + GBU-12 FAB-250M-54 @@ -542,8 +542,8 @@ FAB-250M-54 FAB-250M-54 FAB-250M-54 - FAB-250M-54 - FAB-250M-54 + FAB-250M-54 + FAB-250M-54 diff --git a/addons/refuel/stringtable.xml b/addons/refuel/stringtable.xml index 6d44a90db7a..e2a4c45cd3f 100644 --- a/addons/refuel/stringtable.xml +++ b/addons/refuel/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,8 +13,8 @@ Réglages de ravitaillement 給油設定 재급유 설정 - 加油设定 - 加油設定 + 加油设定 + 加油設定 Flow Rate @@ -28,8 +28,8 @@ Vitesse du ravitaillement 流量 주유량 - 油料流量 - 油料流量 + 油料流量 + 油料流量 How fast should a vehicle be refueled? @@ -43,8 +43,8 @@ A quelle vitesse devrait être ravitaillé un véhicule ? どのくらいの速さで車両へ給油しますか? 차량이 얼마나 빨리 재급유될 수 있습니까? - 载具多快会加油完毕? - 載具多快會加油完畢? + 载具多快会加油完毕? + 載具多快會加油完畢? Refuel @@ -58,8 +58,8 @@ Ravitaillement 給油 재급유 - 加油 - 加油 + 加油 + 加油 Take fuel nozzle @@ -73,8 +73,8 @@ Prendre la pompe 給油ノズルを取る 주유기 획득 - 拿取燃料喷嘴 - 拿取燃料噴嘴 + 拿取燃料喷嘴 + 拿取燃料噴嘴 Taking fuel nozzle... @@ -88,8 +88,8 @@ Prise de la pompe... 給油ノズルを取っている・・・ 주유기 획득중... - 拿取燃料喷嘴中... - 拿取燃料噴嘴中... + 拿取燃料喷嘴中... + 拿取燃料噴嘴中... Connect fuel nozzle @@ -103,8 +103,8 @@ Connecter la pompe 給油ノズルを接続する 주유기 꼽기 - 连接燃料喷嘴 - 連接燃料噴嘴 + 连接燃料喷嘴 + 連接燃料噴嘴 Connecting fuel nozzle... @@ -118,8 +118,8 @@ Connection de la pompe... 給油ノズルを接続している・・・ 주유기 꼽는중... - 连结燃料喷嘴中... - 連結燃料噴嘴中... + 连结燃料喷嘴中... + 連結燃料噴嘴中... Disconnect fuel nozzle @@ -133,8 +133,8 @@ Déconnecter la pompe 給油ノズルを外した 주유기 뽑기 - 断开燃料喷嘴 - 斷開燃料噴嘴 + 断开燃料喷嘴 + 斷開燃料噴嘴 Connect @@ -148,8 +148,8 @@ Connecter 接続 꼽기 - 连结 - 連結 + 连结 + 連結 Check remaining fuel @@ -163,8 +163,8 @@ Vérifier le carburant restant 残燃料を見る 남은 연료 확인 - 检查剩余燃料 - 檢查剩餘燃料 + 检查剩余燃料 + 檢查剩餘燃料 Checking remaining fuel... @@ -178,8 +178,8 @@ Vérifie le carburant restant... 残燃料を見ている・・・ 남은 연료 확인중... - 检查剩余燃料中... - 檢查剩餘燃料中... + 检查剩余燃料中... + 檢查剩餘燃料中... There are %1 liters left. @@ -193,8 +193,8 @@ Il reste %1 litres. 後 %1 リットル残っている。 %1 리터 남음 - 剩下%1公升的燃料. - 剩下%1公升的燃料. + 剩下%1公升的燃料. + 剩下%1公升的燃料. There is no fuel left. @@ -208,8 +208,8 @@ Il n'y a plus de carburant. もう燃料は残っていない。 연료 없음. - 没有剩余的燃料 - 沒有剩餘的燃料 + 没有剩余的燃料 + 沒有剩餘的燃料 Cancel @@ -223,8 +223,8 @@ Annuler 中止 취소 - 取消 - 取消 + 取消 + 取消 Failed @@ -238,8 +238,8 @@ Echoué 失敗 실패 - 失败 - 失敗 + 失败 + 失敗 Stop fueling @@ -253,8 +253,8 @@ Arrêter le ravitaillement 給油をやめる 그만 재급유하기 - 停止加油 - 停止加油 + 停止加油 + 停止加油 Stopping fueling... @@ -268,8 +268,8 @@ Arrête le ravitaillement... 給油をやめている・・・ 재급유 그만하는중... - 停止加油中... - 停止加油中... + 停止加油中... + 停止加油中... Start fueling @@ -283,8 +283,8 @@ Débute le ravitaillement 給油を始める 재급유 시작 - 开始加油 - 開始加油 + 开始加油 + 開始加油 Starting fueling... @@ -298,8 +298,8 @@ Début du ravitaillement... 給油を始めている・・・ 재급유 시작중... - 开始加油中... - 開始加油中... + 开始加油中... + 開始加油中... %1 Liters fueled @@ -313,8 +313,8 @@ %1 litres ravitaillés %1 リッターを給油した %1 리터 재급유됨 - 已加入%1公升的燃料 - 已加入%1公升的燃料 + 已加入%1公升的燃料 + 已加入%1公升的燃料 The fuel source is empty. @@ -328,8 +328,8 @@ La source de carburant est vide. 給油元は空です。 재급유처가 비었음. - 燃料来源已空. - 燃料來源已空. + 燃料来源已空. + 燃料來源已空. Maximum fuel hose length reached. @@ -343,8 +343,8 @@ Tuyau tendu au maximum 給油ホースはもうこれ以上届かない。 주유기 호스 최대 거리에 도달함. - 已加满至最大油量. - 已加滿至最大油量. + 已加满至最大油量. + 已加滿至最大油量. Fueling completed @@ -358,8 +358,8 @@ Ravitaillement terminé 給油完了 재급유 완료함 - 加油完毕 - 加油完畢 + 加油完毕 + 加油完畢 Fueling stopped @@ -373,8 +373,8 @@ Ravitaillement stoppé 給油を止めた 재급유 멈춤 - 已停止加油 - 已停止加油 + 已停止加油 + 已停止加油 Fueling started @@ -388,8 +388,8 @@ Ravitaillement débuté 給油を始めた 재급유 시작함 - 已开始加油 - 已開始加油 + 已开始加油 + 已開始加油 Return fuel nozzle @@ -403,8 +403,8 @@ Retourner la pompe 給油ノズルを戻す 주유기 반환 - 放回燃料喷嘴 - 放回燃料噴嘴 + 放回燃料喷嘴 + 放回燃料噴嘴 Returning fuel nozzle... @@ -418,8 +418,8 @@ Retourne la pompe 給油ノズルを戻している・・・ 주유기 반환중 - 放回燃料喷嘴中... - 放回燃料噴嘴中... + 放回燃料喷嘴中... + 放回燃料噴嘴中... Check fuel counter @@ -433,8 +433,8 @@ Vérifier le compteur 燃料計を見る 연로카운터 확인 - 检查燃料表 - 檢查燃料表 + 检查燃料表 + 檢查燃料表 Checking fuel counter... @@ -448,8 +448,8 @@ Vérification du compteur... 燃料計を見ている・・・ 연료카운터 확인중... - 检查燃料表中... - 檢查燃料表中... + 检查燃料表中... + 檢查燃料表中... %1 liters have been fueled. @@ -463,8 +463,8 @@ %1 litres ont été écoulés. %1 リッターがある %1 리터가 재급유되었습니다. - 已加入%1公升. - 已加入%1公升. + 已加入%1公升. + 已加入%1公升. Refuel hose length @@ -472,8 +472,8 @@ Reabastecer longitud de manguera Rifiuta lungezza tubo 給油ホースの長さ - 加油软管长度 - 加油軟管長度 + 加油软管长度 + 加油軟管長度 diff --git a/addons/reload/stringtable.xml b/addons/reload/stringtable.xml index eb5e46bcce5..5cdbe3e9ba3 100644 --- a/addons/reload/stringtable.xml +++ b/addons/reload/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Conferir munição ao recarregar a arma 再装填された武器の弾薬を確認 재장전시 장탄수 확인 - 在重新装填时检查弹药 - 在重新裝填時檢查彈藥 + 在重新装填时检查弹药 + 在重新裝填時檢查彈藥 Check the ammo in your new magazine on magazine reload. @@ -30,8 +30,8 @@ Confere a munição no seu novo carregador ao recarregar a arma あたらしく装填された弾倉の弾薬を確認します。 재장전시 새탄창에 있는 탄약을 확인합니다. - 在重新装填时检查新弹匣上的弹药. - 在重新裝填時檢查新彈匣上的彈藥. + 在重新装填时检查新弹匣上的弹药. + 在重新裝填時檢查新彈匣上的彈藥. Check Ammo @@ -46,8 +46,8 @@ Проверить боеприпасы 弾薬を確認 장탄수 확인 - 检查弹药 - 檢查彈藥 + 检查弹药 + 檢查彈藥 Ammo @@ -62,8 +62,8 @@ Боеприпасы 弾薬 장탄수 - 弹药 - 彈藥 + 弹药 + 彈藥 Link belt @@ -78,8 +78,8 @@ Ligar cintos de munição ベルト リンク 벨트 연결 - 连接弹链 - 連接彈鏈 + 连接弹链 + 連接彈鏈 Linking belt... @@ -94,8 +94,8 @@ Ligando cintos... ベルトをつなげている・・・ 벨트 연결중... - 连接弹链中... - 連接彈鏈中... + 连接弹链中... + 連接彈鏈中... diff --git a/addons/reloadlaunchers/stringtable.xml b/addons/reloadlaunchers/stringtable.xml index 6096f362be2..ccbca809f02 100644 --- a/addons/reloadlaunchers/stringtable.xml +++ b/addons/reloadlaunchers/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Recarregar lançador ランチャーを装填 무기 재장전 - 装载发射器 - 裝載發射器 + 装载发射器 + 裝載發射器 Loading launcher... @@ -30,8 +30,8 @@ Recarregando lançador... ランチャーを装填している・・・ 무기 재장전중... - 装载发射器中... - 裝載發射器中... + 装载发射器中... + 裝載發射器中... Launcher loaded @@ -46,8 +46,8 @@ Lançador Carregado ランチャーの装填完了 무기 재장전됨 - 发射器装载完毕 - 發射器裝載完畢 + 发射器装载完毕 + 發射器裝載完畢 Load %1 @@ -62,8 +62,8 @@ Recarregar %1 %1 へ装填 %1 장전 - 装载%1 - 裝載%1 + 装载%1 + 裝載%1 diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index 45a6bf622b9..7ab77887789 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Запасная гусеница 予備履帯 예비 궤도 - 备用履带 - 備用履帶 + 备用履带 + 備用履帶 Spare Wheel @@ -30,8 +30,8 @@ Запасное колесо 予備タイヤ 예비 바퀴 - 备用轮胎 - 備用輪胎 + 备用轮胎 + 備用輪胎 Change Wheel @@ -46,8 +46,8 @@ Vyměnit kolo タイヤを変える 바퀴 교체 - 更换轮胎 - 更換輪胎 + 更换轮胎 + 更換輪胎 Replacing Wheel... @@ -61,8 +61,8 @@ Remplacement de la roue... タイヤを交換中・・・ 바퀴 교체중... - 更换轮胎中... - 更換輪胎中... + 更换轮胎中... + 更換輪胎中... Wheel replaced @@ -76,8 +76,8 @@ Roue remplacée タイヤを履き替え 바퀴 교체됨 - 轮胎更换完毕 - 輪胎更換完畢 + 轮胎更换完毕 + 輪胎更換完畢 Remove Wheel @@ -92,8 +92,8 @@ Снять колесо タイヤを外す 바퀴 제거 - 卸下轮胎 - 卸下輪胎 + 卸下轮胎 + 卸下輪胎 Removing Wheel... @@ -107,8 +107,8 @@ Démontage de la roue... タイヤを外している・・ 바퀴 제거중... - 卸下轮胎中... - 卸下輪胎中... + 卸下轮胎中... + 卸下輪胎中... Wheel removed @@ -122,8 +122,8 @@ Roue démontée タイヤを外した 바퀴 제거됨 - 轮胎卸下完毕 - 輪胎卸下完畢 + 轮胎卸下完毕 + 輪胎卸下完畢 Change Track @@ -137,8 +137,8 @@ Changer la chenille 履帯を変える 궤도 교체 - 更换履带 - 更換履帶 + 更换履带 + 更換履帶 Replacing Track... @@ -152,8 +152,8 @@ Remplacement de la chenille... 履帯を交換中・・・ 궤도 교체중... - 更换履带中... - 更換履帶中... + 更换履带中... + 更換履帶中... Track replaced @@ -167,8 +167,8 @@ Chenille remplacée 履帯を交換した 궤도 교체됨 - 履带更换完毕 - 履帶更換完畢 + 履带更换完毕 + 履帶更換完畢 Remove Track @@ -182,8 +182,8 @@ Enlever la chenille 履帯を外す 궤도 제거 - 卸下履带 - 卸下履帶 + 卸下履带 + 卸下履帶 Removing Track... @@ -197,8 +197,8 @@ Enlèvement de la chenille... 履帯を外している・・・ 궤도 제거중... - 卸下履带中... - 卸下履帶中... + 卸下履带中... + 卸下履帶中... Track removed @@ -212,8 +212,8 @@ Chenille enlevée 履帯を外した 궤도 제거됨 - 履带卸下完毕 - 履帶卸下完畢 + 履带卸下完毕 + 履帶卸下完畢 Full Repair @@ -227,8 +227,8 @@ Réparations complètes 完全に修理 완전수리 - 完整维修 - 完整維修 + 完整维修 + 完整維修 Repairing Vehicle... @@ -242,8 +242,8 @@ Réparation du véhicule... 車両を修理中・・・ 차량 수리중... - 维修载具中... - 維修載具中... + 维修载具中... + 維修載具中... Full Repair Locations @@ -257,8 +257,8 @@ Lieu de réparation complète 完全修理をできる場所 완전수리 구역 - 完整维修地点 - 完整維修地點 + 完整维修地点 + 完整維修地點 At what locations can a vehicle be fully repaired? @@ -272,8 +272,8 @@ Où peuvent être réparés complètement les véhicules ? どのような場所で車両の完全な修理を出来るようにしますか? 어느 구역에서 차량을 완전히 수리할 수 있게 합니까? - 什么位置可以完整维修载具? - 什麼位置可以完整維修載具? + 什么位置可以完整维修载具? + 什麼位置可以完整維修載具? Allow Full Repair @@ -287,8 +287,8 @@ Autoriser les réparations complètes. 完全な修理をさせる 완전 수리 활성화 - 允许完整维修 - 允許完整維修 + 允许完整维修 + 允許完整維修 Who can perform a full repair on a vehicle? @@ -302,8 +302,8 @@ Qui peut faire une réparation complète ? 誰が車両の完全な修理を出来るようにしますか? 누가 완전 수리를 할 수 있습니까? - 谁可以完整维修载具? - 誰可以完整維修載具? + 谁可以完整维修载具? + 誰可以完整維修載具? Add Spare Parts @@ -317,8 +317,8 @@ Ajouter des pièces de rechange 予備部品を追加 예비 부품 더하기 - 添加备件 - 添加備件 + 添加备件 + 添加備件 Add spare parts to vehicles (requires Cargo component)? @@ -332,8 +332,8 @@ Ajouter des pièces de rechage aux véhicules ? (à besoin du système de cargaison) 車両へ予備部品を追加しますか(カーゴ コンポーネントが必要)? 차량에 예비 부품을 더합니까?(짐칸 요소 필요) - 添加载具备件 (需相关货物组件)? - 添加載具備件 (需相關貨物組件)? + 添加载具备件 (需相关货物组件)? + 添加載具備件 (需相關貨物組件)? Repair @@ -348,8 +348,8 @@ Ремонт 修理 수리 - 维修 - 維修 + 维修 + 維修 Display text on repair @@ -363,8 +363,8 @@ Afficher du texte pendant la réparation 修理時に文章で通知する 수리시 화면에 글자 표시 - 显示维修文本 - 顯示維修文本 + 显示维修文本 + 顯示維修文本 Display a notification whenever you repair a vehicle @@ -378,8 +378,8 @@ Afficher une notification lorsque l'on répare un véhicule あなたが車両の修理を始めると、画面に通知を出します 수리시 화면에 글자로 알림이 뜹니다 - 每当维修载具时显示通知 - 每當維修載具時顯示通知 + 每当维修载具时显示通知 + 每當維修載具時顯示通知 Repairing... @@ -394,8 +394,8 @@ Ремонтируем... 修理中・・・ 수리중... - 维修中... - 維修中... + 维修中... + 維修中... Repairing %1... @@ -410,8 +410,8 @@ Ремонтируем %1... %1 を修理中・・・ %1 수리중... - 维修%1中... - 維修%1中... + 维修%1中... + 維修%1中... Repaired %1 @@ -426,8 +426,8 @@ %1 отремонтирован %1 を修理した %1 수리됨 - 已维修%1 - 已維修%1 + 已维修%1 + 已維修%1 Fully repaired part @@ -441,8 +441,8 @@ Pièce entièrement réparée 部分的な完全な修理 부분 완벽히 수리됨 - 完整维修部分 - 完整維修部分 + 完整维修部分 + 完整維修部分 Partially repaired %1 @@ -456,8 +456,8 @@ %1 pratiquement réparée %1 を部分的に修理した %1 부분적으로 수리됨 - %1已完成部分维修 - %1已完成部分維修 + %1已完成部分维修 + %1已完成部分維修 Fully repaired %1 @@ -471,8 +471,8 @@ %1 entièrement réparée %1 を完全に修理した %1 완전히 수리됨 - %1已完整维修 - %1已完整維修 + %1已完整维修 + %1已完整維修 Partially repaired %1 @@ -486,8 +486,8 @@ %1 pratiquement réparée %1 を部分的に修理した %1 부분적으로 수리됨 - %1已完成部分维修 - %1已完成部分維修 + %1已完成部分维修 + %1已完成部分維修 Body @@ -502,8 +502,8 @@ Кузов 車体 몸체 - 车身 - 車身 + 车身 + 車身 Hull @@ -518,8 +518,8 @@ Корпус 機体 선체 - 车壳 - 車殼 + 车壳 + 車殼 Engine @@ -534,8 +534,8 @@ Двигатель エンジン 엔진 - 引擎 - 引擎 + 引擎 + 引擎 Left Horizontal Stabilizer @@ -549,8 +549,8 @@ Linkes Höhenleitwerk 左側の水平安定機 왼쪽 수평안정판 - 左侧悬挂稳定 - 左側懸掛穩定 + 左侧悬挂稳定 + 左側懸掛穩定 Right Horizontal Stabilizer @@ -564,8 +564,8 @@ Rechtes Höhenleitwerk 右側の水平安定機 오른쪽 수평안정판 - 右侧悬挂稳定 - 右側懸掛穩定 + 右侧悬挂稳定 + 右側懸掛穩定 Vertical Stabilizer @@ -579,8 +579,8 @@ Seitenleitwerk 車両安定器 수직 안정판 - 垂直稳定 - 垂直穩定 + 垂直稳定 + 垂直穩定 Fuel Tank @@ -595,8 +595,8 @@ Топливный бак 燃料タンク 연료 탱크 - 油箱 - 油箱 + 油箱 + 油箱 Transmission @@ -610,8 +610,8 @@ Instruments 変速機 변속기 - 变速箱 - 變速箱 + 变速箱 + 變速箱 Gear @@ -625,8 +625,8 @@ Trains d'attérissage ギア 기어 - 齿轮 - 齒輪 + 齿轮 + 齒輪 Starter @@ -640,8 +640,8 @@ Démarreur スターター 점화기 - 发动机 - 發動機 + 发动机 + 發動機 Tail @@ -655,8 +655,8 @@ Queue 尾翼 꼬리 - 尾翼 - 尾翼 + 尾翼 + 尾翼 Pitot Tube @@ -670,8 +670,8 @@ Sonde pitot ピトー管 동압관 - 空速管 - 空速管 + 空速管 + 空速管 Static Port @@ -685,8 +685,8 @@ Port statique スタティック ポート 정압공 - 静态端口 - 靜態端口 + 静态端口 + 靜態端口 Ammo @@ -700,8 +700,8 @@ Munitions 弾薬 탄약 - 弹药 - 彈藥 + 弹药 + 彈藥 Turret @@ -716,8 +716,8 @@ Башню 砲塔 포탑 - 炮塔 - 砲塔 + 炮塔 + 砲塔 Gun @@ -732,8 +732,8 @@ Пушку - - + + Missiles @@ -747,8 +747,8 @@ Missiles ミサイル 미사일 - 导弹 - 導彈 + 导弹 + 導彈 Left Track @@ -763,8 +763,8 @@ Левую гусеницу 左の履帯 왼쪽 궤도 - 左履带 - 左履帶 + 左履带 + 左履帶 Right Track @@ -779,8 +779,8 @@ Правую гусеницу 右の履帯 오른쪽 궤도 - 右履带 - 右履帶 + 右履带 + 右履帶 Left Front Wheel @@ -795,8 +795,8 @@ Левое переднее колесо 左の前輪 왼쪽 앞바퀴 - 左前轮 - 左前輪 + 左前轮 + 左前輪 Right Front Wheel @@ -811,8 +811,8 @@ Правое переднее колесо 右の前輪 오른쪽 앞바퀴 - 右前轮 - 右前輪 + 右前轮 + 右前輪 Second Left Front Wheel @@ -827,8 +827,8 @@ Второе переднее левое колесо 左の 2 つめの前輪 왼쪽 두번째 바퀴 - 第二左前轮 - 第二左前輪 + 第二左前轮 + 第二左前輪 Second Right Front Wheel @@ -843,8 +843,8 @@ Второе правое переднее колесо 右の 2 つめの前輪 오른쪽 두번째 바퀴 - 第二右前轮 - 第二右前輪 + 第二右前轮 + 第二右前輪 Left Middle Wheel @@ -859,8 +859,8 @@ Левое среднее колесо 左の中央の前輪 왼쪽 가운데 바퀴 - 左中轮 - 左中輪 + 左中轮 + 左中輪 Right Middle Wheel @@ -875,8 +875,8 @@ Правое среднее колесо 右の中央の前輪 오른족 가운데 바퀴 - 右中轮 - 右中輪 + 右中轮 + 右中輪 Left Rear Wheel @@ -891,8 +891,8 @@ Левое заднее колесо 左の後輪 왼쪽 뒤쪽 바퀴 - 左后轮 - 左後輪 + 左后轮 + 左後輪 Right Rear Wheel @@ -907,8 +907,8 @@ Правое заднее колесо 右の後 오른쪽 뒤쪽 바퀴 - 右后轮 - 右後輪 + 右后轮 + 右後輪 Avionics @@ -923,8 +923,8 @@ Авионику アビオニクス 항공 전자 - 航电系统 - 航電系統 + 航电系统 + 航電系統 Main Rotor @@ -939,8 +939,8 @@ Несущий винт 主翼 주 로터 - 主旋翼 - 主旋翼 + 主旋翼 + 主旋翼 Tail Rotor @@ -955,8 +955,8 @@ Рулевой винт 尾翼ローター 꼬리 로터 - 尾桨 - 尾槳 + 尾桨 + 尾槳 Winch @@ -970,8 +970,8 @@ Treuil ウィンチ 윈치 - 绞盘 - 絞盤 + 绞盘 + 絞盤 Glass (right) @@ -986,8 +986,8 @@ Стекло (справа) ガラス (右) 유리 (오른쪽) - 玻璃 (右) - 玻璃 (右) + 玻璃 (右) + 玻璃 (右) Glass (left) @@ -1002,8 +1002,8 @@ Стекло (слава) ガラス (左) 유리 (왼쪽) - 玻璃 (左) - 玻璃 (左) + 玻璃 (左) + 玻璃 (左) Glass @@ -1018,8 +1018,8 @@ Стекло ガラス 유리 - 玻璃 - 玻璃 + 玻璃 + 玻璃 ERA @@ -1033,8 +1033,8 @@ ДЗ 爆発反応装甲 폭발반응장갑 - 爆炸式反应装甲 - 爆炸式反應裝甲 + 爆炸式反应装甲 + 爆炸式反應裝甲 Repair Settings @@ -1048,8 +1048,8 @@ Réglages de réparation 修理設定 수리 설정 - 修复设定 - 修復設定 + 修复设定 + 修復設定 Provides a repair system for all types of vehicles. @@ -1063,8 +1063,8 @@ Fournit un système de réparation pour tous les types de véhicules. 車両の全種類に修理システムを適用しますか? 모든 차량에 대해 수리 시스템을 제공합니다. - 提供修复系统给所有载具. - 提供修復系統給所有載具. + 提供修复系统给所有载具. + 提供修復系統給所有載具. Anyone @@ -1078,8 +1078,8 @@ Tout le monde だれでも 모두 - 任何人 - 任何人 + 任何人 + 任何人 Engineer only @@ -1093,15 +1093,15 @@ Ingénieurs seulement 工兵のみ 오직 정비공만 - 只有工兵 - 只有工兵 + 只有工兵 + 只有工兵 Advanced Engineer only Solo Geniere avanzato 上級工兵のみ - 只有维修专精兵 - 只有維修專精兵 + 只有维修专精兵 + 只有維修專精兵 Allow Wheel @@ -1115,8 +1115,8 @@ Autoriser les roues タイヤを許可 바퀴 허가 - 允许轮胎 - 允許輪胎 + 允许轮胎 + 允許輪胎 Who can remove and replace wheels? @@ -1130,8 +1130,8 @@ Qui peut enlever et remplacer les roues ? 誰がタイヤの除去と交換を出来るようにしますか? 누가 바퀴를 제거 및 교체할 수 있습니까? - 谁可维修轮胎? - 誰可維修輪胎? + 谁可维修轮胎? + 誰可維修輪胎? Allow Repair @@ -1145,8 +1145,8 @@ Autoriser les réparations 修理を許可 수리 허가 - 允许维修 - 允許維修 + 允许维修 + 允許維修 Who can perform repair actions? @@ -1160,8 +1160,8 @@ Qui peut réparer ? 誰が修理を出来るようににしますか? 누가 수리를 할 수 있습니까? - 谁可以进行维修操作? - 誰可以進行維修操作? + 谁可以进行维修操作? + 誰可以進行維修操作? Repair Threshold @@ -1175,8 +1175,8 @@ Seuil de réparation 修理のしきい値 정비 한계치 - 维修门槛 - 維修門檻 + 维修门槛 + 維修門檻 What is the maximum damage that can be repaired with a toolkit? @@ -1190,8 +1190,8 @@ Quel est le maximum de dommages réparable par une trousse à outils ? ツールキットで修理できる、最大の損傷許容範囲を設定しますか? 어느정도의 피해까지 툴킷으로 수리가 가능합니까? - 工具包可以修复的最大损坏值? - 工具包可以修復的最大損壞值? + 工具包可以修复的最大损坏值? + 工具包可以修復的最大損壞值? Repair Threshold (Engineer) @@ -1205,8 +1205,8 @@ Seuil de réparatoin (ingénieur) 修理のしきい値 (工兵) 정비 한계치 (정비공) - 维修门槛 (工兵) - 維修門檻 (工兵) + 维修门槛 (工兵) + 維修門檻 (工兵) What is the maximum damage that can be repaired by an engineer? @@ -1220,8 +1220,8 @@ Quel est le maximum de dommages qui peuvent être réparés par un ingénieur ? 工兵が修理できる、最大の損傷許容範囲を設定しますか? 정비공은 어느정도의 피해까지 수리할 수 있습니까? - 工兵可以修复的最大损坏值? - 工兵可以修復的最大損壞值? + 工兵可以修复的最大损坏值? + 工兵可以修復的最大損壞值? Remove toolkit on use @@ -1235,8 +1235,8 @@ Enlever la trousse à outils après usage ツールキットを使うと削除 툴킷 사용후 제거 - 使用后删除工具包 - 使用後刪除工具包 + 使用后删除工具包 + 使用後刪除工具包 Should the toolkit be removed on usage? @@ -1250,8 +1250,8 @@ La trousse à outils devrait-elle être enlevée après usage ? ツールキットを使うと削除しますか? 툴킷을 사용하면 제거를 합니까? - 要在使用后删除工具包吗? - 要在使用後刪除工具包嗎? + 要在使用后删除工具包吗? + 要在使用後刪除工具包嗎? Anywhere @@ -1265,8 +1265,8 @@ N'importe où だれでも 어디서나 - 任何地点 - 任何地點 + 任何地点 + 任何地點 Repair Vehicle only @@ -1280,8 +1280,8 @@ Véhicule de réparation seulement 修理車両のみ 오직 수리 차량만 - 维修载具旁 - 維修載具旁 + 维修载具旁 + 維修載具旁 Repair Facility only @@ -1295,8 +1295,8 @@ Installation de réparation seulement 修理施設のみ 오직 수리 시설만 - 维修设施旁 - 維修設施旁 + 维修设施旁 + 維修設施旁 Repair Facility or Vehicle @@ -1310,8 +1310,8 @@ Installations ou véhicule de réparation 修理施設または車両のみ 수리 시설혹은 차량 - 维修设施或载具旁 - 維修設施或載具旁 + 维修设施或载具旁 + 維修設施或載具旁 Assign Engineer @@ -1325,8 +1325,8 @@ Assigner le rôle d'ingénieur 工兵にする 정비공 등록 - 指派工兵 - 指派工兵 + 指派工兵 + 指派工兵 List @@ -1340,8 +1340,8 @@ Liste 一覧 목록 - 名单 - 名單 + 名单 + 名單 List of unit names that will be classified as engineer, separated by commas. @@ -1355,8 +1355,8 @@ Liste des noms d'unités qui seront considérées ingénieurs. Séparé par des virgules 一覧に記載されたユニット名を、工兵として指定します。コンマで複数を指定できます。 목록내 보직이름은 정비공으로 분류됩니다. 쉼표로 구분합니다. - 工兵名单, 把单位名称输入在这边即可定义其为工兵. 每个单位使用逗号以做区隔. - 工兵名單, 把單位名稱輸入在這邊即可定義其為工兵. 每個單位使用逗號以做區隔. + 工兵名单, 把单位名称输入在这边即可定义其为工兵. 每个单位使用逗号以做区隔. + 工兵名單, 把單位名稱輸入在這邊即可定義其為工兵. 每個單位使用逗號以做區隔. Is Engineer @@ -1370,8 +1370,8 @@ Est ingénieur 工兵とする 은 정비공이다 - 是工兵 - 是工兵 + 是工兵 + 是工兵 Select the engineering skill level of the unit @@ -1385,8 +1385,8 @@ Sélectionner le niveau d'habilité en réparation de l'unité ユニットへの工兵スキルを選択 선택한 인원의 정비 실력을 고르십시요 - 选择工兵的技术水平 - 選擇工兵的技術水平 + 选择工兵的技术水平 + 選擇工兵的技術水平 None @@ -1400,8 +1400,8 @@ Aucun 工兵 없음 - - + + Engineer @@ -1415,16 +1415,16 @@ Ingénieur 専門兵 정비공 - 工兵 - 工兵 + 工兵 + 工兵 Adv. Engineer Adv. Geniere 上級工兵 - 专精 - 專精 + 专精 + 專精 Assign one or multiple units as an engineer @@ -1438,8 +1438,8 @@ Assigner un ou plusieurs unités comme ingénieur 修理車両として指定 하나 혹은 여러 인원을 정비공으로 등록합니다 - 指定一个或多个单位为工兵 - 指定一個或多個單位為工兵 + 指定一个或多个单位为工兵 + 指定一個或多個單位為工兵 Assign Repair Vehicle @@ -1453,8 +1453,8 @@ Assigner en tant que véhicule de réparation 修理車両として指定 정비 차량 등록 - 指定维修载具 - 指定維修載具 + 指定维修载具 + 指定維修載具 List @@ -1468,8 +1468,8 @@ Liste 一覧 목록 - 名单 - 名單 + 名单 + 名單 List of vehicles that will be classified as repair vehicle, separated by commas. @@ -1483,8 +1483,8 @@ Liste de véhicules qui seront considérés comme véhicules de réparation. Séparé par des virgules. 一覧に記載されたユニット名を、修理車両として指定します。コンマで複数を指定できます。 목록내 차량은 정비 차량으로 분류됩니다. 쉼표로 구분합니다. - 载具名单, 把载具名称输入在这边即可定义其为维修载具. 每个载具使用逗号以做区隔. - 載具名單, 把載具名稱輸入在這邊即可定義其為維修載具. 每個載具使用逗號以做區隔. + 载具名单, 把载具名称输入在这边即可定义其为维修载具. 每个载具使用逗号以做区隔. + 載具名單, 把載具名稱輸入在這邊即可定義其為維修載具. 每個載具使用逗號以做區隔. Is Repair Vehicle @@ -1498,8 +1498,8 @@ Est un véhicule de réparation 修理車両とする 은 정비 차량이다 - 是维修载具 - 是維修載具 + 是维修载具 + 是維修載具 Is the vehicle classified as a repair vehicle? @@ -1513,8 +1513,8 @@ Le véhicule est-il considéré comme un véhicule de réparation ? 車両を修理車両と指定しますか? 이 차량을 정비 차량으로 분류합니까? - 此载具是维修载具吗? - 此載具是維修載具嗎? + 此载具是维修载具吗? + 此載具是維修載具嗎? Assign one or multiple vehicles as a repair vehicle @@ -1528,8 +1528,8 @@ Assigner un ou plusieurs véhicules en tant que véhicule de réparation 単体、または複数の車両を修理車両とします 하나 혹은 여러 차량을 정비 차량으로 등록합니다 - 指定一个或多个载具作为维修载具 - 指定一個或多個載具作為維修載具 + 指定一个或多个载具作为维修载具 + 指定一個或多個載具作為維修載具 Assign Repair Facility @@ -1543,8 +1543,8 @@ Assigner en tant qu'installation de réparation 修理施設とする 정비 시설 등록 - 指定维修设施 - 指定維修設施 + 指定维修设施 + 指定維修設施 List @@ -1558,8 +1558,8 @@ Liste 一覧 목록 - 名单 - 名單 + 名单 + 名單 List of objects that will be classified as repair Facility, separated by commas. @@ -1573,8 +1573,8 @@ Liste des objets considérés comme installations de réparation. Séparé par des virgules 一覧に記載されたユニット名を、修理施設として指定します。コンマで複数を指定できます。 목록내 시설은 정비 시설으로 분류됩니다. 쉼표로 구분합니다. - 设施名单, 把设施名称输入在这边即可定义其为维修设施. 每个设施使用逗号以做区隔. - 設施名單, 把設施名稱輸入在這邊即可定義其為維修設施. 每個設施使用逗號以做區隔. + 设施名单, 把设施名称输入在这边即可定义其为维修设施. 每个设施使用逗号以做区隔. + 設施名單, 把設施名稱輸入在這邊即可定義其為維修設施. 每個設施使用逗號以做區隔. Is Repair Facility @@ -1588,8 +1588,8 @@ Est une installation de réparation 修理施設とする 은 정비 시설이다 - 是维修设施 - 是維修設施 + 是维修设施 + 是維修設施 Is the object classified as a repair Facility? @@ -1603,8 +1603,8 @@ L'objet est-il considéré comme une installation de réparation ? オブジェクトを修理施設として指定しますか? 이 시설을 정비 시설로 분류합니까? - 此设施是维修设施吗? - 此設施是維修設施嗎? + 此设施是维修设施吗? + 此設施是維修設施嗎? Assign one or multiple objects as a repair Facility @@ -1618,8 +1618,8 @@ Assigner un ou plusieurs objets en tant que véhicule de réparation ひとつ、または複数オブジェクトに予備部品を追加 하나 혹은 여러 시설을 정비 시설로 등록합니다 - 指定一个或多个对象作为维修设施 - 指定一個或多個對象作為維修設施 + 指定一个或多个对象作为维修设施 + 指定一個或多個對象作為維修設施 Add Spare Parts @@ -1633,8 +1633,8 @@ Ajouter des pièces de rechange 予備部品を追加 예비 부품 더하기 - 添加备件 - 添加備件 + 添加备件 + 添加備件 Add spare parts to one or multiple objects @@ -1648,8 +1648,8 @@ Ajouter des pièces de rechange à un ou plusieurs objets 一覧に追加されたオブジェクトへ予備部品を与えます。コンマで複数を指定できます。 하나 혹은 여러 물체가 예비 부품을 더합니다 - 添加备件到一个或多个对象上 - 添加備件到一個或多個對象上 + 添加备件到一个或多个对象上 + 添加備件到一個或多個對象上 List @@ -1663,8 +1663,8 @@ Liste 一覧 목록 - 名单 - 名單 + 名单 + 名單 List of objects that will get spare parts added, separated by commas. @@ -1678,8 +1678,8 @@ Liste des objets qui recevront des pièces de réparation en plus. Séparé par des virgules 一覧に追加されたオブジェクトへ予備部品を与えます。コンマで複数を指定できます。 목록내 물체는 예비 부품을 받습니다, 쉼표로 구분합니다. - 添加备件到名单的载具上. 每个载具使用逗号以做区隔. - 添加備件到名單的載具上. 每個載具使用逗號以做區隔. + 添加备件到名单的载具上. 每个载具使用逗号以做区隔. + 添加備件到名單的載具上. 每個載具使用逗號以做區隔. Part @@ -1693,8 +1693,8 @@ Pièce 部品 부품 - 零件 - 零件 + 零件 + 零件 Spare part. @@ -1708,8 +1708,8 @@ Pièce de rechange 予備部品 예비 부품 - 备用零件 - 備用零件 + 备用零件 + 備用零件 Amount @@ -1723,8 +1723,8 @@ Quantité 수량 - 数量 - 數量 + 数量 + 數量 Number of selected spare parts. @@ -1738,8 +1738,8 @@ Nombre de pièces de rechange séléctionnées 選択された予備部品の数を選択します。 선택한 부품의 수 - 选择的备件数量 - 選擇的備件數量 + 选择的备件数量 + 選擇的備件數量 Wheel repair requirements @@ -1753,8 +1753,8 @@ Exigences de réparation de roue タイヤの修理を必要 바퀴 교체 요구사항 - 维修轮胎限制 - 維修輪胎限制 + 维修轮胎限制 + 維修輪胎限制 Items required to remove/replace wheels @@ -1768,8 +1768,8 @@ Items exigés pour enlever/remplacer les roues タイヤの除去と交換にアイテムを必要としますか? 바퀴를 제거/교체하는데 필요한 물건 - 需要特定物品来移除/更换车轮 - 需要特定物品來移除/更換車輪 + 需要特定物品来移除/更换车轮 + 需要特定物品來移除/更換車輪 Engine must be off to repair @@ -1783,8 +1783,8 @@ Silnik musi być wyłączony w celu naprawy 수리를 위해서는 엔진을 꺼야만 합니다 Il motore deve essere spento per poter riparare - 引擎必须先关闭才能开始进行维修 - 引擎必須先關閉才能開始進行維修 + 引擎必须先关闭才能开始进行维修 + 引擎必須先關閉才能開始進行維修 diff --git a/addons/respawn/stringtable.xml b/addons/respawn/stringtable.xml index 6d3b3d805dd..d298ef804ad 100644 --- a/addons/respawn/stringtable.xml +++ b/addons/respawn/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Será posicionado em 5 segundos... 設置まであと 5 秒・・・ 5초 후 재배치... - 5秒后完成布署... - 5秒後完成佈署... + 5秒后完成布署... + 5秒後完成佈署... Rallypoint deployed @@ -30,8 +30,8 @@ Rallypoints posicionado ラリーポイントを設置した 집결지 배치됨 - 集合点布署完成 - 集合點佈署完成 + 集合点布署完成 + 集合點佈署完成 Teleport to Base @@ -46,8 +46,8 @@ Teleporta alla base ベースへ移動 기지로 순간이동 - 传送至基地 - 傳送至基地 + 传送至基地 + 傳送至基地 Teleport to Rallypoint @@ -62,8 +62,8 @@ Teleporta al rallypoint ラリーポイントへ移動 집결지로 순간이동 - 传送至集合点 - 傳送至集合點 + 传送至集合点 + 傳送至集合點 Teleported to Base @@ -78,8 +78,8 @@ Teletransportado para a Base ベースへ移動した 기지로 순간이동함 - 已传送至基地 - 已傳送至基地 + 已传送至基地 + 已傳送至基地 Teleported to Rallypoint @@ -94,8 +94,8 @@ Teletransportado para o Rallypoints ラリーポイントへ移動した 집결지로 순간이동함 - 已传送至集合点 - 已傳送至集合點 + 已传送至集合点 + 已傳送至集合點 Rallypoint West (Base) @@ -110,8 +110,8 @@ Ponto de encontro Oeste (Base) ラリーポイント ウエスト (ベース) 서쪽 집결지 (기지) - 蓝方集合点 (基地) - 藍方集合點 (基地) + 蓝方集合点 (基地) + 藍方集合點 (基地) Rallypoint East (Base) @@ -126,8 +126,8 @@ Ponto de encontro Lest (Base) ラリーポイント イースト (ベース) 동쪽 집결지 (기지) - 红方集合点 (基地) - 紅方集合點 (基地) + 红方集合点 (基地) + 紅方集合點 (基地) Rallypoint Independent (Base) @@ -142,8 +142,8 @@ Ponto de encontro Independente (Base) ラリーポイント インデペンデント (ベース) 독립 집결지 (기지) - 独立方集合点 (基地) - 獨立方集合點 (基地) + 独立方集合点 (基地) + 獨立方集合點 (基地) Rallypoint West @@ -158,8 +158,8 @@ Ponto de encontro Oeste ラリーポイント ウエスト 서쪽 집결지 - 蓝方集合点 - 藍方集合點 + 蓝方集合点 + 藍方集合點 Rallypoint East @@ -174,8 +174,8 @@ Ponto de encontro Leste ラリーポイント イースト 동쪽 집결지 - 红方集合点 - 紅方集合點 + 红方集合点 + 紅方集合點 Rallypoint Independent @@ -190,8 +190,8 @@ Ponto de encontro Independente ラリーポイント インデペンデント 독립 집결지 - 独立方集合点 - 獨立方集合點 + 独立方集合点 + 獨立方集合點 Respawn System @@ -206,8 +206,8 @@ Sistema Respawn リスポン システム 재배치 시스템 - 重生系统 - 重生系統 + 重生系统 + 重生系統 Save Gear? @@ -222,8 +222,8 @@ Salva Equipaggiamento? 装備を保存? 장비를 저장합니까? - 储存装备? - 儲存裝備? + 储存装备? + 儲存裝備? Respawn with the gear a soldier had just before his death? @@ -238,8 +238,8 @@ Respawna con l'equipaggiamento che il soldato aveva appena prima di morire? ユニットが死ぬ前に持っていた装備でリスポンしますか? 죽기 전에 가지고 있던 장비로 재배치합니까? - 是否在重生时载入死亡前的装备? - 是否在重生時載入死亡前的裝備? + 是否在重生时载入死亡前的装备? + 是否在重生時載入死亡前的裝備? Remove bodies? @@ -254,8 +254,8 @@ Rimuovi corpi? 死体を削除? 시체를 제거합니까? - 删除尸体? - 刪除屍體? + 删除尸体? + 刪除屍體? Remove player bodies after disconnect? @@ -270,8 +270,8 @@ Rimuovi i corpi dei giocatori quando si disconnettono? 切断後はプレイヤーの死体を削除しますか? 접속이 끊긴 플레이어의 시체를 제거합니까? - 要删除已离线的玩家尸体吗? - 要刪除已離線的玩家屍體嗎? + 要删除已离线的玩家尸体吗? + 要刪除已離線的玩家屍體嗎? This module enables you to configure ACE functionality specific to respawns. @@ -285,8 +285,8 @@ Este módulo permite configurar parámetros relacionados con la reaparición あなたが設定した ACE 機能をリスポンへ設定できます。 이 모듈은 ACE 재배치의 자세한 설정을 변결할 수 있게 해줍니다. - 该模块使您可以设定ACE的重生功能. - 該模塊使您可以設定ACE的重生功能. + 该模块使您可以设定ACE的重生功能. + 該模塊使您可以設定ACE的重生功能. Friendly Fire Messages @@ -301,8 +301,8 @@ Messaggi Fuoco Amico 友軍誤射の表示 아군사격 메세지 - 友军误击讯息 - 友軍誤擊訊息 + 友军误击讯息 + 友軍誤擊訊息 Using this module in your mission will make it so any friendly fire kills will be displayed in form of a message in chat. @@ -316,8 +316,8 @@ El usar este módulo, todas las muertes por fuego amigo serán indicadas en el chat. もし友軍誤射による死者が出た場合は、チャットにてその旨を表示します。 이 모듈은 미션 중 아군사격으로 인한 사망자 발생시 채팅창에 메세지를 표시해줍니다. - 摆放此模块后, 当有发生友军误击致死的事件, 会显示提示讯息在聊天视窗中. - 擺放此模塊後, 當有發生友軍誤擊致死的事件, 會顯示提示訊息在聊天視窗中. + 摆放此模块后, 当有发生友军误击致死的事件, 会显示提示讯息在聊天视窗中. + 擺放此模塊後, 當有發生友軍誤擊致死的事件, 會顯示提示訊息在聊天視窗中. Rallypoint System @@ -332,8 +332,8 @@ Sistema Punto di Raccolta ラリーポイント システム 집결지 시스템 - 集合点系统 - 集合點系統 + 集合点系统 + 集合點系統 This module allows you to use rally points in missions, to which you can quickly teleport from base flag. Requires placing special objects on map - base and flag. Both available in category Empty -> ACE Respawn. @@ -347,8 +347,8 @@ Ce module vous permet d'utiliser les "rally points" auxquels vous pouvez vous téléporter rapidement depuis un drapeau à la base. Il nécessite le placement d'objets spéciaux sur la carte - base et drapeau, disponibles dans la catégorie Vide -> ACE Respawn. ミッションでベースから素早く移動できるラリーポイントを使えるようにします。ゲーム内に専用オブジェクトとなるベースとフラッグを設置している必要があります。両オブジェクトは Empty 下の ACE リスポンから設置できます。 이 모듈은 미션 중에 기지 깃발에서 집결지로 빠르게 텔레포트 시켜주는 역활을 합니다. 지도 상에 기지 및 깃발이 필요합니다. 두 가지 모두 Empty->ACE Respawn 카테고리에서 찾을 수 있습니다. - 摆放此模块后, 你将能在任务中布署集合点, 使你可以快速往返基地与前线. 要使用本功能, 请记得放上空物件->ACE 重生里面的基地与旗帜. - 擺放此模塊後, 你將能在任務中佈署集合點, 使你可以快速往返基地與前線. 要使用本功能, 請記得放上空物件->ACE 重生裡面的基地與旗幟. + 摆放此模块后, 你将能在任务中布署集合点, 使你可以快速往返基地与前线. 要使用本功能, 请记得放上空物件->ACE 重生里面的基地与旗帜. + 擺放此模塊後, 你將能在任務中佈署集合點, 使你可以快速往返基地與前線. 要使用本功能, 請記得放上空物件->ACE 重生裡面的基地與旗幟. Move Rallypoint @@ -363,8 +363,8 @@ Sposta Punto di Raccolta ラリーポイントを移動 집결지 이동 - 移动集合点 - 移動集合點 + 移动集合点 + 移動集合點 ACE Respawn @@ -379,8 +379,8 @@ Rigenerazione ACE ACE リスポン ACE 재배치 - ACE 重生 - ACE 重生 + ACE 重生 + ACE 重生 diff --git a/addons/safemode/stringtable.xml b/addons/safemode/stringtable.xml index bb8ce63b60a..fa9b951908f 100644 --- a/addons/safemode/stringtable.xml +++ b/addons/safemode/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Modo de segurança 安全装置 안전 모드 - 保险模式 - 保險模式 + 保险模式 + 保險模式 Take off Safety @@ -30,8 +30,8 @@ Tirar segurança 安全装置を外す 안전장치 해제 - 开保险 - 開保險 + 开保险 + 開保險 Put on Safety @@ -46,8 +46,8 @@ Colocar Segurança 安全装置を掛けた 안전장치 적용 - 关保险 - 關保險 + 关保险 + 關保險 Took off Safety @@ -62,8 +62,8 @@ Tirou Segurança 安全装置を外した 안전장치 해제됨 - 已开保险 - 已開保險 + 已开保险 + 已開保險 diff --git a/addons/sandbag/stringtable.xml b/addons/sandbag/stringtable.xml index a0dc9d592fb..555dcab4168 100644 --- a/addons/sandbag/stringtable.xml +++ b/addons/sandbag/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Saco de Areia 土のう 모래주머니 - 沙包 - 沙包 + 沙包 + 沙包 Sandbag (empty) @@ -30,8 +30,8 @@ Saco de Areia (vazio) 土のう (空) 모래주머니(비어있음) - 沙包 (空) - 沙包 (空) + 沙包 (空) + 沙包 (空) Cannot build here @@ -46,8 +46,8 @@ Não pode contruir aqui ここでは作れない 여기에 지을 수 없습니다 - 无法放置在此 - 無法放置在此 + 无法放置在此 + 無法放置在此 Pick up Sandbag @@ -62,8 +62,8 @@ Pegar saco de areia 土のうを拾う 모래주머니 줍기 - 捡起沙包 - 撿起沙包 + 捡起沙包 + 撿起沙包 Carry Sandbag @@ -78,8 +78,8 @@ Carregar saco de areia 土のうを運ぶ 모래주머니 옮기기 - 搬运沙包 - 搬運沙包 + 搬运沙包 + 搬運沙包 End Carrying @@ -94,8 +94,8 @@ Parar de carregar 下ろす 그만 옮기기 - 停止搬运 - 停止搬運 + 停止搬运 + 停止搬運 Drop Sandbag @@ -110,8 +110,8 @@ Derrubar saco de areia 土のうを落とす 여기에 놓기 - 放下沙包 - 放下沙包 + 放下沙包 + 放下沙包 Confirm Deployment @@ -126,8 +126,8 @@ Confirmar implantação ここで作る 설치 확인 - 确认布署 - 確認佈署 + 确认布署 + 確認佈署 Cancel Deployment @@ -142,8 +142,8 @@ Cancelar implantação 作るのをやめる 설치 취소 - 取消布署 - 取消佈署 + 取消布署 + 取消佈署 Deploy Sandbag @@ -158,8 +158,8 @@ Implantar saco de areia 土のうを設置 모래주머니 설치 - 布署沙包 - 佈署沙包 + 布署沙包 + 佈署沙包 Sandbag Box @@ -174,8 +174,8 @@ Caixa de saco de areia 土のう入れ 모래주머니 상자 - 沙包箱 - 沙包箱 + 沙包箱 + 沙包箱 Here is no sand @@ -190,8 +190,8 @@ Aqui não tem areia ここに土は無い 흙이 없습니다 - 这里没有沙 - 這裡沒有沙 + 这里没有沙 + 這裡沒有沙 Rotate @@ -206,8 +206,8 @@ Bращать 回転 돌리기 - 旋转 - 旋轉 + 旋转 + 旋轉 diff --git a/addons/scopes/stringtable.xml b/addons/scopes/stringtable.xml index 66a9729b28a..16898757fde 100644 --- a/addons/scopes/stringtable.xml +++ b/addons/scopes/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -8,8 +8,8 @@ Celowniki optyczne Scopes Mirini - 瞄准镜 - 瞄準鏡 + 瞄准镜 + 瞄準鏡 Enable ACE Scope adjustment @@ -18,8 +18,8 @@ Włącz ustawienia celowników optycznych ACE Active ACE Scope adjustment Abilita Regolazione mirino ACE - 开启ACE瞄准镜归零调节 - 開啟ACE瞄準鏡歸零調節 + 开启ACE瞄准镜归零调节 + 開啟ACE瞄準鏡歸零調節 Enable adjustmet turrets on high powered scopes @@ -28,8 +28,8 @@ Włącz pokrętła regulacyjne Permet de régler la hausse et la dérive sur les optiques de visée à fort grossissement Abilita la regolazione delle torrette nei mirini a lunga gittata - 开启高倍率瞄准镜归零调节 - 開啟高倍率瞄準鏡歸零調節 + 开启高倍率瞄准镜归零调节 + 開啟高倍率瞄準鏡歸零調節 Force adjustment turrets @@ -38,8 +38,8 @@ Wymuś użycie pokręteł regulacyjnych Impose le réglage de la hausse/dérive Forza la regolazione delle torrette - 强制使用归零调节 - 強制使用歸零調節 + 强制使用归零调节 + 強制使用歸零調節 Force usage of adjustmet turrets on high powered scopes @@ -48,8 +48,8 @@ Wymuś użycie pokręteł regulacyjnych dla celowników o dużym powiększeniu Impose le réglage de la hausse/dérive sur les optiques de visée à fort grossissement Forza l'uso della regolazione nei mirini a lunga gittata - 强制为高倍率瞄准镜开启归零调节 - 強制為高倍率瞄準鏡開啟歸零調節 + 强制为高倍率瞄准镜开启归零调节 + 強制為高倍率瞄準鏡開啟歸零調節 Correct zeroing @@ -58,8 +58,8 @@ Poprawka zerowania Corrige le zérotage Correggi azzeramento - 修正归零 - 修正歸零 + 修正归零 + 修正歸零 Corrects the zeroing of all small arms sights @@ -68,8 +68,8 @@ Poprawia zerowanie wszystkich celowników broni ręcznej Corrige le zérotage des optiques de visée des petites armes Corregge l'azzeramento di tutti i mirini di bassa portata - 为所有小口径武器修正归零 - 為所有小口徑武器修正歸零 + 为所有小口径武器修正归零 + 為所有小口徑武器修正歸零 Overwrite zero distance @@ -78,8 +78,8 @@ Nadpisuje ustawienie dla zerowego dystansu Remplace la distance de zérotage Sovrascrivi la distanza zero - 覆写归零距离 - 覆寫歸零距離 + 覆写归零距离 + 覆寫歸零距離 Uses the 'defaultZeroRange' setting to overwrite the zero range of high power scopes @@ -88,8 +88,8 @@ Używa 'defaultZeroRange' zamiast ustawionej odległości zerowania dla celowników o duzym przybliżeniu Utilise le paramètre 'defaultZeroRange' pour remplacer la distance de zérotage sur les optiques de visée à fort grossissement Usa le impostazioni di "defaultZeroRange" (Portata Zero Predefinita) per sovrascrivere la portata zero dei mirini a lunga gittata - 使用'defaultZeroRange'来为高倍率瞄准镜覆写预设归零距离 - 使用'defaultZeroRange'來為高倍率瞄準鏡覆寫預設歸零距離 + 使用'defaultZeroRange'来为高倍率瞄准镜覆写预设归零距离 + 使用'defaultZeroRange'來為高倍率瞄準鏡覆寫預設歸零距離 Default zero distance @@ -98,8 +98,8 @@ Domyślne zerowanie Distance de zérotage par défaut Distanza zero predefinita - 预设归零距离 - 預設歸零距離 + 预设归零距离 + 預設歸零距離 High power scopes will be zeroed at this distance @@ -108,8 +108,8 @@ Celowniki o dużym powiększeniu będą zerowane dla tej odległości Distance de zérotage par défaut des optiques de visée à fort grossissement I mirini a lunga gittata verranno azzerrati a questa distanza - 高倍率瞄准镜将归零在这个距离上 - 高倍率瞄準鏡將歸零在這個距離上 + 高倍率瞄准镜将归零在这个距离上 + 高倍率瞄準鏡將歸零在這個距離上 Reference temperature @@ -118,8 +118,8 @@ Referencyjna temperatura Température de référence Temperatura di riferimento - 参考温度 - 參考溫度 + 参考温度 + 參考溫度 Temperature at which the scope was zeroed @@ -128,8 +128,8 @@ Temperatura, przy której celownik został wyzerowany Température de référence pour le zérotage des optiques Temperatura a cui è stato azzerato il mirino - 武器参考多少温度来进行归零. - 武器參考多少溫度來進行歸零. + 武器参考多少温度来进行归零. + 武器參考多少溫度來進行歸零. Reference barometric pressure @@ -138,8 +138,8 @@ Referencyjne ciśnienie barometryczne Pression barométrique de référence Pressione barometrica di riferimento - 参考大气压力 - 參考大氣壓力 + 参考大气压力 + 參考大氣壓力 Barometric pressure at which the scope was zeroed @@ -148,8 +148,8 @@ Ciśnienie barometryczne, przy którym celownik został wyzerowany Pression barométrique de référence pour le zérotage des optiques Pressione barometrica a cui è stato azzerato il mirino - 武器参考多少大气压力来进行归零. - 武器參考多少大氣壓力來進行歸零. + 武器参考多少大气压力来进行归零. + 武器參考多少大氣壓力來進行歸零. Reference humidity @@ -158,8 +158,8 @@ Referencyjna wilgotność Humidité de référence Umidità di riferimento - 参考湿度 - 參考濕度 + 参考湿度 + 參考濕度 Humidity at which the scope was zeroed @@ -168,8 +168,8 @@ Wilgotność powietrza, przy której celownik został wyzerowany Taux d'humidité de référence pour le zérotage des optiques Umidità a cui è stato azzerato il mirino - 武器参考多少湿度来进行归零. - 武器參考多少濕度來進行歸零. + 武器参考多少湿度来进行归零. + 武器參考多少濕度來進行歸零. Deduce pressure from altitude @@ -178,8 +178,8 @@ Ciśnienie określone na podstawie wysokości Pression selon l'altitude Ricava la pressione dall'altitudine - 高度影响大气压力 - 高度影響大氣壓力 + 高度影响大气压力 + 高度影響大氣壓力 Deduce the barometric pressure from the terrain altitude @@ -188,8 +188,8 @@ Określ ciśnienie barometryczne na podstawie wysokości terenu Détermine la pression barométrique selon l'altitude du terrain Ricava la pressione barometrica dall'altitudine del terreno - 在不同高度上会有不同的大气压力 - 在不同高度上會有不同的大氣壓力 + 在不同高度上会有不同的大气压力 + 在不同高度上會有不同的大氣壓力 Minor adjustment up @@ -204,8 +204,8 @@ Korekce nahoru (mírně) 僅かに上へ調節 위로 조절 - 向上微调 - 向上微調 + 向上微调 + 向上微調 Minor adjustment down @@ -220,8 +220,8 @@ Korekce dolů (mírně) 僅かに下へ調節 아래로 조절 - 向下微调 - 向下微調 + 向下微调 + 向下微調 Minor adjustment right @@ -236,8 +236,8 @@ Korekce doprava (mírně) 僅かに右へ調節 오론쪽으로 조절 - 向右微调 - 向右微調 + 向右微调 + 向右微調 Minor adjustment left @@ -252,8 +252,8 @@ Korekce doleva (mírně) 僅かに左へ調節 왼쪽으로 조절 - 向左微调 - 向左微調 + 向左微调 + 向左微調 Major adjustment up @@ -268,8 +268,8 @@ Korekce nahoru 大きく上へ調節 크게 위로 조절 - 向上调整 - 向上調整 + 向上调整 + 向上調整 Major adjustment down @@ -284,8 +284,8 @@ Korekce dolů 大きく下へ調節 크게 아래로 조절 - 向下调整 - 向下調整 + 向下调整 + 向下調整 Major adjustment right @@ -300,8 +300,8 @@ Korekce doprava 大きく右へ調節 크게 오른쪽으로 조절 - 向右调整 - 向右調整 + 向右调整 + 向右調整 Major adjustment left @@ -316,8 +316,8 @@ Korekce doleva 大きく左へ調節 크게 왼쪽으로 조절 - 向左调整 - 向左調整 + 向左调整 + 向左調整 Set zero adjustment @@ -332,8 +332,8 @@ Vynulovat korekci ゼロインを調節 영점 초기화 - 设定归零 - 設定歸零 + 设定归零 + 設定歸零 This module adds windage and elevation adjustment turrets on high power rifle scopes. @@ -342,8 +342,8 @@ Ten moduł włącza pokrętła kalibracyjne poprawki na wiatr oraz poprawki wysokości dla celowników o dużym powiększeniu. Ce module ajoute les tambours de correction de la hausse et de dérive sur les optiques de visée à fort grossissement. Questo modulo aggiunge lo spostamento dell'aria e la regolazione dell'elevazione delle torrette in mirini a lunga gittata - 此模块可为高倍率瞄准镜新增归零风偏, 距离用的调整纽. - 此模塊可為高倍率瞄準鏡新增歸零風偏, 距離用的調整紐. + 此模块可为高倍率瞄准镜新增归零风偏, 距离用的调整纽. + 此模塊可為高倍率瞄準鏡新增歸零風偏, 距離用的調整紐. diff --git a/addons/slideshow/stringtable.xml b/addons/slideshow/stringtable.xml index 68d0f9d5893..f563e62e536 100644 --- a/addons/slideshow/stringtable.xml +++ b/addons/slideshow/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Mostra Diapositive スライドショー 슬라이드 쇼 - 幻燈片 - 幻灯片 + 幻燈片 + 幻灯片 This module allows you to set up slide-shows on different objects. One module per image list. Only objects with hiddenSelection 0 are supported. @@ -30,8 +30,8 @@ Questo modulo ti permette di creare una presentazione con diapositive su vari oggetti. Un modulo per lista immagini. Solo oggetti con hiddenSelection 0 sono supportati. さまざまなオブジェクトへスライドショーを設定することができます。1つのモジュールは各画像リストになっています。オブジェクトが hiddenSelection 0へ対応している必要があります。 이 모듈은 다른 물체에 대해 슬라이드 쇼를 놓을 수 있게 해줍니다. 한 모듈당 한 이미지목록만 가능합니다. 또한 물체가 hiddenSelection 0 를 지원해야만합니다. - 此模塊可讓圖片以幻燈片的形式顯示在物件上. 每個模塊都能設定一串幻燈片清單. 被設定的物件不能有隱藏部位(hiddenSelection). - 此模块可让图片以幻灯片的形式显示在物件上. 每个模块都能设定一串幻灯片清单. 被设定的物件不能有隐藏部位(hiddenSelection). + 此模塊可讓圖片以幻燈片的形式顯示在物件上. 每個模塊都能設定一串幻燈片清單. 被設定的物件不能有隱藏部位(hiddenSelection). + 此模块可让图片以幻灯片的形式显示在物件上. 每个模块都能设定一串幻灯片清单. 被设定的物件不能有隐藏部位(hiddenSelection). Objects @@ -46,8 +46,8 @@ Oggetti オブジェクト 물체 - 物件 - 物件 + 物件 + 物件 Object names (can also be synchronized objects) slide-show will be displayed on, separated by commas if multiple. @@ -62,8 +62,8 @@ Nomi di oggetti (possono anche essere oggetti sincronizzati) che verranno usati per la presentazione di diapositive, separato da virgole se più di uno. スライドショーを表示するオブジェクト名 (オブジェクトとの同期も可)。複数ある場合はコンマで区切れます 슬라이드 쇼가 보여질 물체(동기화 되는 물체도 가능합니다) 명칭, 다수의 경우 쉼표로 구분합니다. - 物件名稱 (也可使用同步線來設定), 幻燈片將會顯示在該物件上, 如有多個物件, 請以逗號作區隔. - 物件名称 (也可使用同步线来设定), 幻灯片将会显示在该物件上, 如有多个物件, 请以逗号作区隔. + 物件名稱 (也可使用同步線來設定), 幻燈片將會顯示在該物件上, 如有多個物件, 請以逗號作區隔. + 物件名称 (也可使用同步线来设定), 幻灯片将会显示在该物件上, 如有多个物件, 请以逗号作区隔. Controllers @@ -78,8 +78,8 @@ Controllori コントローラ 조종 장치 - 控制器 - 控制器 + 控制器 + 控制器 Controller object names, separated by commas if multiple. @@ -93,8 +93,8 @@ Nomi di oggetti controllori, separati da virgole se multipli. コントローラに指定するオブジェクト名を記入し、複数ある場合はコンマで区切れます。 조종 장치 물체 명칭, 다수의 경우 쉼표로 구분됩니다. - 指定是控制器的物件名稱, 如有多個物件, 請以逗號作區隔. - 指定是控制器的物件名称, 如有多个物件, 请以逗号作区隔. + 指定是控制器的物件名稱, 如有多個物件, 請以逗號作區隔. + 指定是控制器的物件名称, 如有多个物件, 请以逗号作区隔. Images @@ -109,8 +109,8 @@ Immagini 画像 사진 - 圖片 - 图片 + 圖片 + 图片 List of images that will be used for the slide-show, separated by commas, with full path correctly formatted (eg. images\image.paa). @@ -125,8 +125,8 @@ Lista di immagini che verranno usate durante la presentazione, separati da virgole, con il formato completo del percorso (es. images\image.paa) 完全なパスでスライドショーに使う画像一覧を入力してください。コンマで区別できます。(例: images\image.paa) 슬라이드 쇼에 쓰일 사진목록입니다, 쉼표로 구분됩니다, 경로설정을 정확히 하십시요. (예: 사진\사진.ppa) - 要做為幻燈片的圖片清單, 每個圖片請已逗號區隔, 並輸入完整路徑位址 (例如:images\image.paa). - 要做为幻灯片的图片清单, 每个图片请已逗号区隔, 并输入完整路径位址 (例如:images\image.paa). + 要做為幻燈片的圖片清單, 每個圖片請已逗號區隔, 並輸入完整路徑位址 (例如:images\image.paa). + 要做为幻灯片的图片清单, 每个图片请已逗号区隔, 并输入完整路径位址 (例如:images\image.paa). Interaction Names @@ -141,8 +141,8 @@ Interaktionsnamen インタラクション名 상호작용 명칭 - 互動鍵名稱 - 互动键名称 + 互動鍵名稱 + 互动键名称 List of names that will be used for interaction entries, separated by commas, in order of images. @@ -156,8 +156,8 @@ Liste aller Namen, die für Interaktionseinträge genutzt werden. Mit Kommata getrennt, in Reihenfolge der Bilder. 画像を操作できるインタラクション エントリ名の一覧を入力してください。コンマで区切り複数を指定できます。 상호작용 메세지에 쓰일 명칭입니다, 쉼표로 구분합니다, 이미지의 순서입니다. - 設定互動鍵切換圖片時的按鈕名稱, 多個按鈕請以逗號做區隔, 有多少圖片就輸入多少個按鈕, 以利切換圖片. - 设定互动键切换图片时的按钮名称, 多个按钮请以逗号做区隔, 有多少图片就输入多少个按钮, 以利切换图片. + 設定互動鍵切換圖片時的按鈕名稱, 多個按鈕請以逗號做區隔, 有多少圖片就輸入多少個按鈕, 以利切換圖片. + 设定互动键切换图片时的按钮名称, 多个按钮请以逗号做区隔, 有多少图片就输入多少个按钮, 以利切换图片. Set Name @@ -165,8 +165,8 @@ 名前設定 Définir le nom Imposta Nome - 設定名稱 - 设定名称 + 設定名稱 + 设定名称 Name that will be used for main interaction entry (to distinguish multiple slideshows). Default: "Slides" @@ -174,8 +174,8 @@ メイン インタラクション エントリで使われる名前を設定します。(複数のスライドショーを区別するため)。標準: "Slides" Un nom qui sera utilisé pour interagir avec plusieurs diaporamas. Par défaut : "Slides" Nome che sarà utilizzato per le principali interazioni (per distinguere le multiple diapositive). Predefinito: "Slides" - 設定該幻燈片的標題名稱 (用來區分多個不同標題的幻燈片.) 預設名稱: "幻燈片" - 设定该幻灯片的标题名称 (用来区分多个不同标题的幻灯片.) 预设名称: "幻灯片" + 設定該幻燈片的標題名稱 (用來區分多個不同標題的幻燈片.) 預設名稱: "幻燈片" + 设定该幻灯片的标题名称 (用来区分多个不同标题的幻灯片.) 预设名称: "幻灯片" Slide Duration @@ -190,8 +190,8 @@ Länge der Diavorführung pro Bild スライドの持続時間 슬라이드 지속시간 - 幻燈片顯示時間 - 幻灯片显示时间 + 幻燈片顯示時間 + 幻灯片显示时间 Duration of each slide. Default: 0 (Automatic Transitions Disabled) @@ -206,8 +206,8 @@ Länge der Diavorführung pro Bild. Standard: 0 (Automatischer Wechsel deaktiviert) 各スライドの持続時間。標準:0 (自動的な切り替えは無効) 매 슬라이드의 지속시간. 기본설정: 0 (자동 전환 비활성화) - 每張幻燈片顯示的時間. 預設:0 (自動換圖已禁用) - 每张幻灯片显示的时间. 预设:0 (自动换图已禁用) + 每張幻燈片顯示的時間. 預設:0 (自動換圖已禁用) + 每张幻灯片显示的时间. 预设:0 (自动换图已禁用) Slides @@ -222,8 +222,8 @@ Dias スライド 슬라이드 - 幻燈片 - 幻灯片 + 幻燈片 + 幻灯片 diff --git a/addons/spectator/stringtable.xml b/addons/spectator/stringtable.xml index 1dc7fe26557..ae65487d233 100644 --- a/addons/spectator/stringtable.xml +++ b/addons/spectator/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -6,8 +6,8 @@ ACE スペクテイター Spettatore ACE Spectateur ACE - ACE 旁观者 - ACE 旁觀者 + ACE 旁观者 + ACE 旁觀者 Spectator Settings @@ -21,8 +21,8 @@ Réglages de spectateur スペクテイター設定 관전자 설정 - 旁观者设定 - 旁觀者設定 + 旁观者设定 + 旁觀者設定 Configure how the spectator system will operate by default. @@ -36,8 +36,8 @@ Configure comment le système de spectateurs opère par défaut. スペクテイター システムが標準でどのように動作するか設定できます。 어떻게 관전자 시스템이 기본적으로 작동되는지 설정합니다 - 设定旁观者系统相关配置. - 設定旁觀者系統相關配置. + 设定旁观者系统相关配置. + 設定旁觀者系統相關配置. Unit filter @@ -51,8 +51,8 @@ Filtre d'unités ユニット フィルタ 인원 필터 - 单位过滤器 - 單位過濾器 + 单位过滤器 + 單位過濾器 Method of filtering spectatable units. @@ -66,8 +66,8 @@ Méthode de filtration des unités regardables. 観察できるユニットへのフィルタ設定ができます。 관전할 수 있는 인원을 고릅니다 - 过滤哪些单位可以使用旁观者系统. - 過濾哪些單位可以使用旁觀者系統. + 过滤哪些单位可以使用旁观者系统. + 過濾哪些單位可以使用旁觀者系統. No units @@ -81,8 +81,8 @@ Pas d'unités ユニットなし 인원 없음 - 无单位 - 無單位 + 无单位 + 無單位 Only players @@ -96,8 +96,8 @@ Joueurs seulements プレイヤのみ 플레이어만 - 只有玩家 - 只有玩家 + 只有玩家 + 只有玩家 Playable Units @@ -111,8 +111,8 @@ Unités jouables プレイ可能なユニットのみ 플레이 가능한 인원 - 可扮演单位 - 可扮演單位 + 可扮演单位 + 可扮演單位 All units @@ -126,8 +126,8 @@ Toutes les unités 全てのユニット 모든 인원 - 所有单位 - 所有單位 + 所有单位 + 所有單位 Side filter @@ -141,8 +141,8 @@ Filtre de faction 勢力フィルタ 진영 필터 - 阵营过滤器 - 陣營過濾器 + 阵营过滤器 + 陣營過濾器 Method of filtering spectatable sides. @@ -156,8 +156,8 @@ Méthode de filtration des factions regardables 観察できる勢力へのフィルタ設定ができます。 관전할 수 있는 진영을 고릅니다 - 过滤可旁观的阵营. - 過濾可旁觀的陣營. + 过滤可旁观的阵营. + 過濾可旁觀的陣營. Player side @@ -171,8 +171,8 @@ Faction du joueur プレイヤーと同じ勢力 플레이어 진영 - 玩家 - 玩家 + 玩家 + 玩家 Friendly sides @@ -186,8 +186,8 @@ Factions amies 友軍勢力 아군 진영 - 友军 - 友軍 + 友军 + 友軍 Hostile sides @@ -201,8 +201,8 @@ Factions hostiles 敵対勢力 적군 진영 - 敌方 - 敵方 + 敌方 + 敵方 All sides @@ -216,8 +216,8 @@ Toutes les factions 全ての勢力 모든 진영 - 所有阵营 - 所有陣營 + 所有阵营 + 所有陣營 Camera modes @@ -231,8 +231,8 @@ Mode de caméra カメラ モード 카메라 모드 - 摄影机模式 - 攝影機模式 + 摄影机模式 + 攝影機模式 Camera modes that can be used. @@ -246,8 +246,8 @@ Modes de caméra qui peuvent être utilisés カメラ モードを使えます。 사용할 수 있는 카메라 모드들 입니다 - 设定可使用的摄影机模式. - 設定可使用的攝影機模式. + 设定可使用的摄影机模式. + 設定可使用的攝影機模式. All @@ -261,8 +261,8 @@ Tous 全て 모두 - 所有 - 所有 + 所有 + 所有 Free only @@ -276,17 +276,17 @@ Libre seulement 自由視点のみ 오직 자유만 - 只有自由模式 - 只有自由模式 + 只有自由模式 + 只有自由模式 Internal only Erste Person //Bitte überprüfen! - Tylko wewnętrznaSomente internaТолько внутренняяPouze pohled z první osobySolo internaSolo internaInterne seulement一人称視点のみ오직 내부만只有第一人称只有第一人稱 + Tylko wewnętrznaSomente internaТолько внутренняяPouze pohled z první osobySolo internaSolo internaInterne seulement一人称視点のみ오직 내부만只有第一人称只有第一人稱 External only Dritte Person //Bitte überpfüfen! - Tylko zewnętrznaSomente externaТолько внешняяPouze pohled z třetí osobySolo externaSolo esternaExterne seulement三人称視点のみ오직 외부만只有第三人称只有第三人稱 + Tylko zewnętrznaSomente externaТолько внешняяPouze pohled z třetí osobySolo externaSolo esternaExterne seulement三人称視点のみ오직 외부만只有第三人称只有第三人稱 Internal and external Erste und dritte Person @@ -299,8 +299,8 @@ Interne et externe 一人称と三人称視点 외부 및 내부 - 第一和第三人称 - 第一和第三人稱 + 第一和第三人称 + 第一和第三人稱 Vision modes @@ -314,8 +314,8 @@ Modes de vision ビジョン モード 시야 모드 - 视觉模式 - 視覺模式 + 视觉模式 + 視覺模式 Vision modes that can be used. @@ -329,8 +329,8 @@ Modes de visions qui peuvent être utilisés ビジョン モードを使えます。 사용할 수 있는 시야 모드들 입니다 - 设定可使用的视觉模式. - 設定可使用的視覺模式. + 设定可使用的视觉模式. + 設定可使用的視覺模式. Night vision @@ -344,8 +344,8 @@ Vision nocturne 夜間暗視 야간투시경 - 夜视 - 夜視 + 夜视 + 夜視 Thermal imaging @@ -359,8 +359,8 @@ Vision thermique 熱源画像 열화상 - 热成像 - 熱成像 + 热成像 + 熱成像 @@ -375,8 +375,8 @@ Unités spectatrices スペクテイター ユニット 관전 인원 - 旁观者单位 - 旁觀者單位 + 旁观者单位 + 旁觀者單位 Spectator Controls @@ -390,8 +390,8 @@ Contrôles de spectateur スペクテイター操作 관전 조작 - 旁观者控制 - 旁觀者控制 + 旁观者控制 + 旁觀者控制 Free @@ -405,17 +405,17 @@ Libre 自由視点 자유 - 自由模式 - 自由模式 + 自由模式 + 自由模式 Internal Erste Person //Bitte überprüfen! - WewnętrznaInternaВнутренняяPohled z první osobyInternaInternaInterne一人称視点내부第一人称第一人稱 + WewnętrznaInternaВнутренняяPohled z první osobyInternaInternaInterne一人称視点내부第一人称第一人稱 External Dritte Person //Bitte überprüfen! - ZewnętrznaExternaВнешняяPohled z třetí osobyExternaEsternaExterne三人称視点외부第三人称第三人稱 + ZewnętrznaExternaВнешняяPohled z třetí osobyExternaEsternaExterne三人称視点외부第三人称第三人稱 Normal Normal @@ -428,8 +428,8 @@ Normale 通常 정상 - 正常 - 正常 + 正常 + 正常 Night @@ -443,8 +443,8 @@ Nuit 暗視装置 야간 - 夜视 - 夜視 + 夜视 + 夜視 Thermal @@ -458,8 +458,8 @@ Thermique 熱源画像 열상 - 热成像 - 熱成像 + 热成像 + 熱成像 @@ -474,8 +474,8 @@ Caméra libre 自由視点 자유 카메라 - 自由摄影机 - 自由攝影機 + 自由摄影机 + 自由攝影機 Camera Forward @@ -489,8 +489,8 @@ Caméra en avant カメラを前に 카메라 앞으로 - 摄影机往前 - 攝影機往前 + 摄影机往前 + 攝影機往前 Camera Backward @@ -504,8 +504,8 @@ Caméra en arrière カメラを後ろに 카메라 뒤로 - 摄影机往后 - 攝影機往後 + 摄影机往后 + 攝影機往後 Camera Left @@ -519,8 +519,8 @@ Caméra à gauche カメラを左に 카메라 왼쪽으로 - 摄影机往左 - 攝影機往左 + 摄影机往左 + 攝影機往左 Camera Right @@ -534,8 +534,8 @@ Caméra à droite カメラを右に 카메라 오른쪽으로 - 摄影机往右 - 攝影機往右 + 摄影机往右 + 攝影機往右 Camera Up @@ -549,8 +549,8 @@ Caméra en haut カメラを上に 카메라 위로 - 摄影机往上 - 攝影機往上 + 摄影机往上 + 攝影機往上 Camera Down @@ -564,8 +564,8 @@ Caméra en bas カメラを下に 카메라 아래로 - 摄影机往下 - 攝影機往下 + 摄影机往下 + 攝影機往下 Pan Camera @@ -579,8 +579,8 @@ Tourner la caméra カメラを振る 카메라 돌리기 - 平移摄影机 - 平移攝影機 + 平移摄影机 + 平移攝影機 Dolly Camera @@ -594,8 +594,8 @@ Bouger la caméra カメラを動かす 카메라 추적 - 移动摄影机 - 移動攝影機 + 移动摄影机 + 移動攝影機 Lock Camera to Target @@ -609,8 +609,8 @@ Verrouiller la caméra sur la cible カメラを目標に固定 목표에 카메라 고정 - 锁定摄影机观察单一目标 - 鎖定攝影機觀察單一目標 + 锁定摄影机观察单一目标 + 鎖定攝影機觀察單一目標 Speed Boost @@ -624,8 +624,8 @@ Boost de vitesse 速度の増加 속도 증가 - 速度提升 - 速度提升 + 速度提升 + 速度提升 Interface @@ -639,8 +639,8 @@ Interface インターフェイス 인터페이스 - 介面 - 介面 + 介面 + 介面 Toggle Interface @@ -654,8 +654,8 @@ Bascule de l'interface インターフェイスをトグル 인터페이스 토글 - 切换介面 - 切換介面 + 切换介面 + 切換介面 Toggle Unit Icons @@ -669,8 +669,8 @@ Bascule des icônes des unités ユニット アイコンをトグル 인원 아이콘 토글 - 切换单位图示 - 切換單位圖示 + 切换单位图示 + 切換單位圖示 Toggle Unit List @@ -684,8 +684,8 @@ Bascule de la liste des unités ユニット一覧をトグル 인원 목록 토글 - 切换单位名单 - 切換單位名單 + 切换单位名单 + 切換單位名單 Toggle Toolbar @@ -699,8 +699,8 @@ Bascule de la barre d'outils ツールバーをトグル 툴바 토글 - 切换工具栏 - 切換工具欄 + 切换工具栏 + 切換工具欄 Toggle Compass @@ -714,8 +714,8 @@ Basculer le compas 方位磁石をトグル 나침반 토글 - 切换指北针 - 切換指北針 + 切换指北针 + 切換指北針 Toggle Map @@ -729,8 +729,8 @@ Basculer la carte 地図をトグル 지도 토글 - 切换地图 - 切換地圖 + 切换地图 + 切換地圖 Toggle Help @@ -744,8 +744,8 @@ Basculer l'aide ヘルプをトグル 도움 토글 - 切换帮助 - 切換幫助 + 切换帮助 + 切換幫助 Camera Attributes @@ -759,8 +759,8 @@ Propriétés de la caméra カメラ高度 카메라 속성 - 摄影机属性 - 攝影機屬性 + 摄影机属性 + 攝影機屬性 Next Camera @@ -774,8 +774,8 @@ Caméra suivante 次のカメラ 다음 카메라 - 下个镜头 - 下個鏡頭 + 下个镜头 + 下個鏡頭 Previous Camera @@ -789,8 +789,8 @@ Caméra précédente 前のカメラ 이전 카메라 - 上个镜头 - 上個鏡頭 + 上个镜头 + 上個鏡頭 Next Unit @@ -804,8 +804,8 @@ Unité suivante 次のユニット 다음 인원 - 下个单位 - 下個單位 + 下个单位 + 下個單位 Previous Unit @@ -819,8 +819,8 @@ Unité précédente 前のユニット 이전 인원 - 上个单位 - 上個單位 + 上个单位 + 上個單位 Next Vision Mode @@ -834,8 +834,8 @@ Mode de vision suivant 次のビジョン モード 다음 시야 모드 - 下个视觉模式 - 下個視覺模式 + 下个视觉模式 + 下個視覺模式 Previous Vision Mode @@ -849,8 +849,8 @@ Mode de vision précédent 前のビジョン モード 이전 시야 모드 - 上个视觉模式 - 上個視覺模式 + 上个视觉模式 + 上個視覺模式 Adjust Zoom @@ -864,8 +864,8 @@ Ajuster le zoom 拡大倍率を調節 줌 조절 - 调整倍率 - 調整倍率 + 调整倍率 + 調整倍率 Adjust Speed @@ -879,8 +879,8 @@ Ajuster la vitesse 速度を調節 속도 조절 - 调整速度 - 調整速度 + 调整速度 + 調整速度 Increment Zoom @@ -894,8 +894,8 @@ Augmenter le zoom 拡大倍率を増やす 줌 증가 - 增加放大 - 增加放大 + 增加放大 + 增加放大 Increment Speed @@ -909,8 +909,8 @@ Augmenter la vitesse 速度を増やす 속도 증가 - 增加速度 - 增加速度 + 增加速度 + 增加速度 Reset Zoom @@ -924,8 +924,8 @@ RAZ zoom 拡大倍率を初期化 줌 초기화 - 重置缩放 - 重置縮放 + 重置缩放 + 重置縮放 Reset Speed @@ -939,8 +939,8 @@ RAZ vitesse 速度を初期化 속도 초기화 - 重置速度 - 重置速度 + 重置速度 + 重置速度 diff --git a/addons/spottingscope/stringtable.xml b/addons/spottingscope/stringtable.xml index cfdbaa05f75..fdf621a29e7 100644 --- a/addons/spottingscope/stringtable.xml +++ b/addons/spottingscope/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Luneta de observador 観測用スコープ 감적 망원경 - 观测镜 - 觀測鏡 + 观测镜 + 觀測鏡 Pick up Spotting Scope @@ -30,8 +30,8 @@ Pegar luneta de observador 観測用スコープを拾う 감적 망원경 줍기 - 捡起观测镜 - 撿起觀測鏡 + 捡起观测镜 + 撿起觀測鏡 Place Spotting Scope @@ -46,8 +46,8 @@ Colocar luneta de observador 観測用スコープを置く 감적 망원경 배치 - 放置观测镜 - 放置觀測鏡 + 放置观测镜 + 放置觀測鏡 diff --git a/addons/switchunits/stringtable.xml b/addons/switchunits/stringtable.xml index d33ab11bbbf..b601d7bd120 100644 --- a/addons/switchunits/stringtable.xml +++ b/addons/switchunits/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Trocado de unidade ユニットを切り替え 인원으로 전환 - 切换单位 - 切換單位 + 切换单位 + 切換單位 Trying to switch @@ -29,8 +29,8 @@ Попытка переключения 切り替えを試す 전환 시도중 - 尝试切换中 - 嘗試切換中 + 尝试切换中 + 嘗試切換中 This unit is too close to the enemy. @@ -45,8 +45,8 @@ Essa unidade está muito perto do inimigo. このユニットは敵に近すぎます。 그 인원은 적과 너무 가깝습니다. - 这单位太接近敌人了. - 這單位太接近敵人了. + 这单位太接近敌人了. + 這單位太接近敵人了. SwitchUnits System @@ -61,8 +61,8 @@ Sistema Cambio Unità SwitchUnits システム 인원전환 시스템 - 切换单位系统 - 切換單位系統 + 切换单位系统 + 切換單位系統 Switch to West? @@ -77,8 +77,8 @@ Cambia per BLUFOR? ウエストへ切り替えますか? 서방으로 전환합니까? - 切换至蓝方? - 切換至藍方? + 切换至蓝方? + 切換至藍方? Allow switching to west units? @@ -93,8 +93,8 @@ Consenti passaggio ad unità BLUFOR? ウエスト側ユニットへ切り替えられるようにしますか? 서방 인원으로 전환합니까? - 允许切换至蓝方? - 允許切換至藍方? + 允许切换至蓝方? + 允許切換至藍方? Switch to East? @@ -109,8 +109,8 @@ Cambia per OPFOR? イースト側へ切り替えますか? 동방으로 전환합니까? - 切换至红方? - 切換至紅方? + 切换至红方? + 切換至紅方? Allow switching to east units? @@ -125,8 +125,8 @@ Consenti passaggio ad unità OPFOR? イースト側ユニットへ切り替えられるようにしますか? 동방인원으로 전환합니까? - 允许切换至红方? - 允許切換至紅方? + 允许切换至红方? + 允許切換至紅方? Switch to Independent? @@ -141,8 +141,8 @@ Cambia per INDFOR? インデペンデントへ切り替えますか? 중립으로 전환합니까? - 切换至独立方? - 切換至獨立方? + 切换至独立方? + 切換至獨立方? Allow switching to independent units? @@ -157,8 +157,8 @@ Consenti passaggio ad unità INDFOR? インデペンデント側ユニットへ切り替えられるようにしますか? 중립 인원으로 전환합니까? - 允许切换至独立方? - 允許切換至獨立方? + 允许切换至独立方? + 允許切換至獨立方? Switch to Civilian? @@ -173,8 +173,8 @@ Cambia per Civili? シビリアンへ切り替えますか? 민간인으로 전환합니까? - 切换至平民方? - 切換至平民方? + 切换至平民方? + 切換至平民方? Allow switching to civilian units? @@ -189,8 +189,8 @@ Consenti passaggio ad unità civili? シビリアン側ユニットへ切り替えられるようにしますか? 민간인으로 전환하는걸 허가합니까? - 允许切换至平民方? - 允許切換至平民方? + 允许切换至平民方? + 允許切換至平民方? Enable Safe Zone? @@ -205,8 +205,8 @@ Abilita Zona Sicura? 安全地帯を有効にしますか? 안전 지대 활성화? - 启用安全区? - 啟用安全區? + 启用安全区? + 啟用安全區? Enable a safe zone around enemy units? Players can't switch to units inside of the safe zone. @@ -221,8 +221,8 @@ Abilita una zona sicura attorno ad unità nemiche? I giocatori non possono cambiare ad unità dentro la zona sicura. 敵ユニットから逃れる安全地帯を有効にしますか?プレイヤーは安全地帯内のユニットへ切り替えできません。 적 주위로 안전 지대를 활성화합니까? 안전 지대 내에서는 플레이어가 인원 전환을 할 수 없습니다. - 启用敌方周围安全地带? 玩家不能切换到安全区内的单位. - 啟用敵方周圍安全地帶? 玩家不能切換到安全區內的單位. + 启用敌方周围安全地带? 玩家不能切换到安全区内的单位. + 啟用敵方周圍安全地帶? 玩家不能切換到安全區內的單位. Safe Zone Radius @@ -237,8 +237,8 @@ Raggio Zona Sicura 安全地帯の半径 안전 지대 반경 - 安全区半径 - 安全區半徑 + 安全区半径 + 安全區半徑 The safe zone around players from a different team. Default: 200 @@ -253,8 +253,8 @@ La zona sicura attorno ai giocatori di un team diverso. Default: 200 別のチームへのプレイヤーの周囲にある安全地帯の範囲。標準:200 다른 진영으로 부터의 플레이어 안전 지대. 기본설정: 200 - 安全区的范围. 预设值:200 - 安全區的範圍. 預設值:200 + 安全区的范围. 预设值:200 + 安全區的範圍. 預設值:200 Module allows you to switch side during the game. @@ -268,8 +268,8 @@ El módulo permite a las unidades cambiar de bando durante el juego. モジュールはゲームにおいて、陣営の切り替えを有効にします。 이 모듈은 당신을 게임 중에 진영을 바꿀 수 있게 해줍니다. - 此模块允许你在游戏中切换至另一方. - 此模塊允許你在遊戲中切換至另一方. + 此模块允许你在游戏中切换至另一方. + 此模塊允許你在遊戲中切換至另一方. diff --git a/addons/tacticalladder/stringtable.xml b/addons/tacticalladder/stringtable.xml index af9ca6ef5f9..e94a292bc14 100644 --- a/addons/tacticalladder/stringtable.xml +++ b/addons/tacticalladder/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Escada telescópica タクティカル ラダー 로프 사다리 - 伸缩梯子 - 伸縮梯子 + 伸缩梯子 + 伸縮梯子 Deploy ladder @@ -30,8 +30,8 @@ Implantar escada ラダーを設置 사다리 배치 - 布署梯子 - 佈署梯子 + 布署梯子 + 佈署梯子 Drop ladder @@ -46,8 +46,8 @@ Derrubar escada ラダーを落とす 사다리 놓기 - 降下梯子 - 降下梯子 + 降下梯子 + 降下梯子 Extend @@ -61,8 +61,8 @@ Déployer 伸ばす 늘리기 - 伸长梯子 - 伸長梯子 + 伸长梯子 + 伸長梯子 +Ctrl tilt @@ -76,8 +76,8 @@ +Ctrl per inclinare +Ctrl で傾ける +컨트롤키 기울이기 - +Ctrl 倾斜 - +Ctrl 傾斜 + +Ctrl 倾斜 + +Ctrl 傾斜 Position ladder @@ -92,8 +92,8 @@ Posicionar escada ラダーの位置 사다리 위치 - 梯子位置 - 梯子位置 + 梯子位置 + 梯子位置 Pickup ladder @@ -108,8 +108,8 @@ Pegar escada ラダーを拾う 사다리 줍기 - 捡起梯子 - 撿起梯子 + 捡起梯子 + 撿起梯子 diff --git a/addons/tagging/stringtable.xml b/addons/tagging/stringtable.xml index 0af736e11be..4bf5707dcf4 100644 --- a/addons/tagging/stringtable.xml +++ b/addons/tagging/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -10,8 +10,8 @@ 뿌리기 Marquage Marcamento - 喷漆 - 噴漆 + 喷漆 + 噴漆 Configure how the tagging system will operate by default. @@ -22,8 +22,8 @@ 뿌리기 시스템의 기본사항을 설정합니다. Configure le fonctionnement par défaut du système de marquage. Configura quanto il sistema di marcamento agirà da se. - 定义喷漆系统预设设定. - 定義噴漆系統預設設定. + 定义喷漆系统预设设定. + 定義噴漆系統預設設定. Quick Tag @@ -34,8 +34,8 @@ 빠른 뿌리기 Marquage rapide Marcamento Rapido - 快速喷漆 - 快速噴漆 + 快速喷漆 + 快速噴漆 Action performed on main tag interaction point. @@ -46,8 +46,8 @@ 이 동작은 상호작용에서 뿌리기를 할 수 있게 해준다 Action réalisé au point de marquage principal. Azione eseguita sul punto di interazione dei tag principali. - 直接喷漆在互动选单瞄准的点上. - 直接噴漆在互動選單瞄準的點上. + 直接喷漆在互动选单瞄准的点上. + 直接噴漆在互動選單瞄準的點上. Last Used @@ -58,8 +58,8 @@ 최근 사용 Dernier utilisé Ultimo Usato - 上次最后使用 - 上次最後使用 + 上次最后使用 + 上次最後使用 Random X @@ -70,8 +70,8 @@ 무작위 X Aléatoire X Random X - 随机X标记 - 隨機X標記 + 随机X标记 + 隨機X標記 Random @@ -82,8 +82,8 @@ 무작위 Aléatoire Random - 随机 - 隨機 + 随机 + 隨機 Tag @@ -97,8 +97,8 @@ タグ 뿌리기 Tag - 喷漆 - 噴漆 + 喷漆 + 噴漆 X black @@ -112,8 +112,8 @@ Черный Х 黒の X印 검정 X - 黑色X标记 - 黑色X標記 + 黑色X标记 + 黑色X標記 X red @@ -127,8 +127,8 @@ Красный Х 赤の X印 빨간 X - 红色X标记 - 紅色X標記 + 红色X标记 + 紅色X標記 X green @@ -142,8 +142,8 @@ Зеленый Х 緑の X印 초록 X - 绿色X标记 - 綠色X標記 + 绿色X标记 + 綠色X標記 X blue @@ -157,8 +157,8 @@ Синий Х 青の X印 파랑 X - 蓝色X标记 - 藍色X標記 + 蓝色X标记 + 藍色X標記 Black spray paint @@ -172,8 +172,8 @@ Черный спрей 黒のスプレー缶 검정 스프레이 - 黑色喷漆 - 黑色噴漆 + 黑色喷漆 + 黑色噴漆 Red spray paint @@ -187,8 +187,8 @@ Красный спрей 赤のスプレー缶 빨강 스프레이 - 红色喷漆 - 紅色噴漆 + 红色喷漆 + 紅色噴漆 Green spray paint @@ -202,8 +202,8 @@ Зеленый спрей 緑のスプレー缶 초록 스프레이 - 绿色喷漆 - 綠色噴漆 + 绿色喷漆 + 綠色噴漆 Blue spray paint @@ -217,8 +217,8 @@ Синий спрей 青のスプレー缶 파랑 스프레이 - 蓝色喷漆 - 藍色噴漆 + 蓝色喷漆 + 藍色噴漆 A can of spray paint for tagging walls. @@ -232,8 +232,8 @@ Балончик спрея для рисования маркеров на стенах. スプレー缶は壁にタグ付できます。 벽에 뿌릴 수 있는 스프레이캔 입니다. - 喷漆可喷涂在墙壁上. - 噴漆可噴塗在牆壁上. + 喷漆可喷涂在墙壁上. + 噴漆可噴塗在牆壁上. diff --git a/addons/trenches/stringtable.xml b/addons/trenches/stringtable.xml index 3c21da92418..161e3eae399 100644 --- a/addons/trenches/stringtable.xml +++ b/addons/trenches/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -13,8 +13,8 @@ Саперная лопата シャベル 야전삽 - 战备锹 - 戰備鍬 + 战备锹 + 戰備鍬 Entrenching Tool @@ -28,8 +28,8 @@ Саперная лопата シャベル 야전용 삽. 군인들의 영원한 친구 - 战备锹 - 戰備鍬 + 战备锹 + 戰備鍬 Envelope - Small @@ -42,8 +42,8 @@ Окоп - Малый 塹壕 - 小型 참호 - 소형 - 掩体 - 小 - 掩體 - 小 + 掩体 - 小 + 掩體 - 小 Small Personal Trench @@ -57,8 +57,8 @@ Малый персональный окоп 小型の個人用塹壕 소형 개인참호 - 小型个人掩体 - 小型個人掩體 + 小型个人掩体 + 小型個人掩體 Dig Small Trench @@ -72,8 +72,8 @@ Вырыть малый окоп 小型塹壕を掘る 소형참호 파기 - 盖小掩体 - 蓋小掩體 + 盖小掩体 + 蓋小掩體 Envelope - Big @@ -86,8 +86,8 @@ Окоп - Большой 塹壕 - 大型 참호 - 대형 - 掩体 - 大 - 掩體 - 大 + 掩体 - 大 + 掩體 - 大 Large Personal Trench @@ -101,8 +101,8 @@ Большой персональный окоп 大型の塹壕を掘る 대형 참호 - 大型个人掩体 - 大型個人掩體 + 大型个人掩体 + 大型個人掩體 Dig Big Trench @@ -116,8 +116,8 @@ Вырыть большой окоп 大型の塹壕を掘る 대형참호 파기 - 盖大掩体 - 蓋大掩體 + 盖大掩体 + 蓋大掩體 Confirm Dig @@ -131,8 +131,8 @@ Копать ここに掘る 여기에 파기 - 确认开工 - 確認開工 + 确认开工 + 確認開工 Cancel Dig @@ -146,8 +146,8 @@ Отменить копание 掘るのを中止 취소하기 - 取消动作 - 取消動作 + 取消动作 + 取消動作 Rotate @@ -162,8 +162,8 @@ Bращать 回転 돌리기 - 旋转 - 旋轉 + 旋转 + 旋轉 Digging Trench @@ -177,8 +177,8 @@ Копание окопа 塹壕を掘っている 참호 파는중 - 正在盖掩体中 - 正在蓋掩體中 + 正在盖掩体中 + 正在蓋掩體中 Continue Digging Trench @@ -191,8 +191,8 @@ Graben fortsetzen 계속해서 참호파기 Continua a Scavare la Trincea - 继续盖掩体 - 繼續蓋掩體 + 继续盖掩体 + 繼續蓋掩體 Remove Trench @@ -205,8 +205,8 @@ Schützengraben entfernen 참호 제거 Rimuove Trincea - 移除掩体 - 移除掩體 + 移除掩体 + 移除掩體 Removing Trench @@ -219,8 +219,8 @@ Entferne Schützengraben 참호 제거중... Rimuovendo la Trincea - 移除掩体中 - 移除掩體中 + 移除掩体中 + 移除掩體中 diff --git a/addons/tripod/stringtable.xml b/addons/tripod/stringtable.xml index 1647e397460..a63bda06b01 100644 --- a/addons/tripod/stringtable.xml +++ b/addons/tripod/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Kit SSWT SSWT キット SSWT 키트 - 狙击手专用三脚架 - 狙擊手專用三腳架 + 狙击手专用三脚架 + 狙擊手專用三腳架 Place SSWT Kit @@ -30,8 +30,8 @@ Colocar kit SSWT SSWT キットを置く SSWT 키트 배치 - 放置狙击手专用三脚架 - 放置狙擊手專用三腳架 + 放置狙击手专用三脚架 + 放置狙擊手專用三腳架 Pick up SSWT Kit @@ -46,8 +46,8 @@ Prendi Kit SSWT SSWT キットを拾う SSWT 키트 줍기 - 捡起狙击手专用三脚架 - 撿起狙擊手專用三腳架 + 捡起狙击手专用三脚架 + 撿起狙擊手專用三腳架 Adjust SSWT Kit @@ -62,8 +62,8 @@ Aggiusta Kit SSWT SSWT キットを調節 SSWT 키트 조절 - 调整狙击手专用三脚架 - 調整狙擊手專用三腳架 + 调整狙击手专用三脚架 + 調整狙擊手專用三腳架 Done @@ -78,8 +78,8 @@ Fatto 完了 완료 - 完成 - 完成 + 完成 + 完成 adjust @@ -94,8 +94,8 @@ aggiusta 調節 조절 - 调整 - 調整 + 调整 + 調整 diff --git a/addons/ui/stringtable.xml b/addons/ui/stringtable.xml index 4d2c24c645b..6f3a3ecc2dd 100644 --- a/addons/ui/stringtable.xml +++ b/addons/ui/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -12,8 +12,8 @@ Benutzeroberfläche 사용자 인터페이스 Interfaccia Utente - 使用者介面 - 使用者介面 + 使用者介面 + 使用者介面 User Interface @@ -26,8 +26,8 @@ Benutzeroberfläche 사용자 인터페이스 Interfaccia Utente - 使用者介面 - 使用者介面 + 使用者介面 + 使用者介面 This module allows toggling visible user interface parts. @@ -39,8 +39,8 @@ Dieses Modul erlaubt es, Teile der Benutzeroberfläche (UI) an- oder auszuschalten. 이 모듈은 사용자 인터페이스의 부분을 토글하는것을 가능케 해줍니다. Questo modulo consente di commutare parti di interfaccia utente visibili. - 此模块允许你调整使用者介面的任何一个元件. - 此模塊允許你調整使用者介面的任何一個元件. + 此模块允许你调整使用者介面的任何一个元件. + 此模塊允許你調整使用者介面的任何一個元件. Allow Selective UI @@ -53,8 +53,8 @@ Erlaube selektives UI 선택적 사용자 인터페이스 허가 Permette l'UI Selettiva - 允许调整使用者介面 - 允許調整使用者介面 + 允许调整使用者介面 + 允許調整使用者介面 Allow client to modify their UI. @@ -67,8 +67,8 @@ Erlaube Clients, ihr UI zu modifizieren. 클라이언트가 선택적 사용자 인터페이스 사용하는것을 허가합니다 Permette al client di modificare la propria UI. - 允许客户端自行调整使用者介面. - 允許客戶端自行調整使用者介面. + 允许客户端自行调整使用者介面. + 允許客戶端自行調整使用者介面. Soldier/Vehicle/Weapon Information @@ -81,8 +81,8 @@ Soldat/Fahrzeug/Waffe Information 병사/차량/무기 정보 Informazioni Soldato/Veicolo/Arma - 士兵/载具/武器资讯栏 - 士兵/載具/武器資訊欄 + 士兵/载具/武器资讯栏 + 士兵/載具/武器資訊欄 Vehicle Radar @@ -95,8 +95,8 @@ Fahrzeugradar 차량 레이더 Rada Veicolo - 载具雷达 - 載具雷達 + 载具雷达 + 載具雷達 Vehicle Compass @@ -109,8 +109,8 @@ Fahrzeugkompass 차량 나침반 Bussola Veicolo - 载具指北针 - 載具指北針 + 载具指北针 + 載具指北針 Command Menu @@ -123,8 +123,8 @@ Kommandomenü 지휘 메뉴 Menù di Comando - 指挥选单 - 指揮選單 + 指挥选单 + 指揮選單 Group Bar @@ -137,8 +137,8 @@ Gruppenleiste 그룹 막대 Barra del Gruppo - 小队状态栏 - 小隊狀態欄 + 小队状态栏 + 小隊狀態欄 Weapon Name @@ -151,8 +151,8 @@ Waffenname 무기 이름 Nome Arma - 武器名称 - 武器名稱 + 武器名称 + 武器名稱 Weapon Name Background @@ -165,8 +165,8 @@ Waffenname Hintergrund 무기 이름 배경 Nome Sfondo Arma - 武器名称背景 - 武器名稱背景 + 武器名称背景 + 武器名稱背景 Firing Mode @@ -179,8 +179,8 @@ Feuermodus 사격 모드 Modalità di Fuoco - 射击模式 - 射擊模式 + 射击模式 + 射擊模式 Ammo Type @@ -193,8 +193,8 @@ Munitionstyp 탄종 Tipo Munizioni - 弹药类型 - 彈藥類型 + 弹药类型 + 彈藥類型 Ammo Count @@ -207,8 +207,8 @@ Munitionsanzahl 탄약수 Contatore Munizioni - 弹药数量 - 彈藥數量 + 弹药数量 + 彈藥數量 Magazine Count @@ -221,8 +221,8 @@ Magazinanzahl 탄창수 Contatore Caricatore - 弹匣数量 - 彈匣數量 + 弹匣数量 + 彈匣數量 Throwable Type @@ -235,8 +235,8 @@ Wurfobjekt-Typ 투척물 종류 Tipo Lanciabile - 投掷物类型 - 投擲物類型 + 投掷物类型 + 投擲物類型 Throwable Count @@ -249,8 +249,8 @@ Wurfobjekt-Anzahl 투척물 개수 Contatore Lanciabili - 投掷物数量 - 投擲物數量 + 投掷物数量 + 投擲物數量 Zeroing @@ -263,8 +263,8 @@ Nullung 영점 Azzeramento - 归零距离 - 歸零距離 + 归零距离 + 歸零距離 Weapon Lower Info Background @@ -276,8 +276,8 @@ Hintergrund der unteren Waffen-Info-Leiste 무기 상세 정보 배경 Informazioni Sfondo Arma Bassa - 武器底部资讯栏背景 - 武器底部資訊欄背景 + 武器底部资讯栏背景 + 武器底部資訊欄背景 Stance @@ -290,8 +290,8 @@ Haltung 자세 Postura - 姿态 - 姿態 + 姿态 + 姿態 Stamina Bar @@ -304,8 +304,8 @@ Ausdaueranzeige 체력 막대 Barra Stamina - 体力栏 - 體力欄 + 体力栏 + 體力欄 Gunner Weapon Name @@ -317,8 +317,8 @@ Richtschütze Waffenname 사수 무기 명칭 Nome Arma Artigliere - 炮手武器名称 - 砲手武器名稱 + 炮手武器名称 + 砲手武器名稱 Gunner Weapon Name Background @@ -330,8 +330,8 @@ Richtschütze Waffenname Hintergrund 사수 무기 명칭 배경 Nome Sfondo Arma Artigliere - 炮手武器名称背景 - 砲手武器名稱背景 + 炮手武器名称背景 + 砲手武器名稱背景 Gunner Firing Mode @@ -343,8 +343,8 @@ Richtschütze Feuermodus 사수 사격 모드 Modalità di Fuoco Artigliere - 炮手射击模式 - 砲手射擊模式 + 炮手射击模式 + 砲手射擊模式 Gunner Ammo Type @@ -356,8 +356,8 @@ Richtschütze Munitionstyp 사수 탄종 Tipo Munizioni Artigliere - 炮手弹药类型 - 砲手彈藥類型 + 炮手弹药类型 + 砲手彈藥類型 Gunner Ammo Count @@ -369,8 +369,8 @@ Richtschütze Munitionsanzahl 사수 탄약 수량 Contatore Munizioni Artigliere - 炮手弹药数量 - 砲手彈藥數量 + 炮手弹药数量 + 砲手彈藥數量 Gunner Magazine Count @@ -382,8 +382,8 @@ Richtschütze Magazinanzahl 사수 탄창 수량 Contatore Caricatore Artigliere - 炮手弹匣数量 - 砲手彈匣數量 + 炮手弹匣数量 + 砲手彈匣數量 Gunner Launchable Type @@ -395,8 +395,8 @@ Richtschütze Raketentyp 사수 발사체 종류 Tipo Lanciabile Artigliere - 炮手发射物类型 - 砲手發射物類型 + 炮手发射物类型 + 砲手發射物類型 Gunner Launchable Count @@ -408,8 +408,8 @@ Richtschütze Raketenanzahl 사수 발사체 수량 Contatore Lanciabili Artigliere - 炮手发射物数量 - 砲手發射物數量 + 炮手发射物数量 + 砲手發射物數量 Gunner Zeroing @@ -421,8 +421,8 @@ Richtschütze Nullung 사수 영점 Azzeramento Artigliere - 炮手归零距离 - 砲手歸零距離 + 炮手归零距离 + 砲手歸零距離 Gunner Weapon Lower Info Background @@ -434,8 +434,8 @@ Hintergrund der unteren Waffen-Info-Leiste (Richtschütze) 사수 무기 상세 정보 배경 Informazioni Sfondo Arma Artigliere Bassa - 炮手武器底部资讯栏背景 - 砲手武器底部資訊欄背景 + 炮手武器底部资讯栏背景 + 砲手武器底部資訊欄背景 Vehicle Name @@ -448,8 +448,8 @@ Fahrzeugname 차량 명칭 Nome Veicolo - 载具名称 - 載具名稱 + 载具名称 + 載具名稱 Vehicle Name Background @@ -462,8 +462,8 @@ Fahrzeugname Hintergrund 차량 명칭 배경 Nome Sfondo Veicolo - 载具名称背景 - 載具名稱背景 + 载具名称背景 + 載具名稱背景 Vehicle Fuel Bar @@ -476,8 +476,8 @@ Fahrzeug-Treibstoffleiste 차량 연료 막대 Barra Carburante Veicolo - 载具燃料栏 - 載具燃料欄 + 载具燃料栏 + 載具燃料欄 Vehicle Speed @@ -490,8 +490,8 @@ Fahrzeuggeschwindigkeit 차량 속도 Velocità Veicolo - 载具速度 - 載具速度 + 载具速度 + 載具速度 Vehicle Altitude @@ -504,8 +504,8 @@ Fahrzeughöhe 차량 고도 Altitudine Veicolo - 载具高度 - 載具高度 + 载具高度 + 載具高度 Vehicle Damage @@ -518,8 +518,8 @@ Fahrzeugschaden 차량 피해 Danno Veicolo - 载具伤害 - 載具傷害 + 载具伤害 + 載具傷害 Vehicle Info Background @@ -532,8 +532,8 @@ Fahrzeug Info Hintergrund 차량 정보 배경 Informazioni Sfondo Veicolo - 载具资讯栏背景 - 載具資訊欄背景 + 载具资讯栏背景 + 載具資訊欄背景 Requires Soldier/Vehicle/Weapon Information. @@ -546,8 +546,8 @@ Benötigt Soldat/Fahrzeug/Waffe Information. 병사/차량/무기의 정보가 필요합니다. Richiede informazione Soldato/Veicolo/Arma. - 需要士兵/载具/武器的资讯. - 需要士兵/載具/武器的資訊. + 需要士兵/载具/武器的资讯. + 需要士兵/載具/武器的資訊. Modifying User Interface is disabled. @@ -560,8 +560,8 @@ Die Modifizierung des UI ist deaktiviert. 사용자 인터페이스 변경이 비활성화 되어있습니다. La modifica dell'Interfaccia Utente è disabilitata. - 自定使用者介面功能已关闭. - 自定使用者介面功能已關閉. + 自定使用者介面功能已关闭. + 自定使用者介面功能已關閉. Cannot modify a forced User Interface element. @@ -573,8 +573,8 @@ Gesperrte UI-Elemente können nicht modifiziert werden. 강제 사용자 인터페이스는 변경하실 수 없습니다. Impossibile modificare un elemento forzato d' Interfaccia Utente. - 无法编辑已被锁定的使用者介面元件. - 無法編輯已被鎖定的使用者介面元件. + 无法编辑已被锁定的使用者介面元件. + 無法編輯已被鎖定的使用者介面元件. diff --git a/addons/vector/stringtable.xml b/addons/vector/stringtable.xml index 278938e1b34..76feaa2b5cd 100644 --- a/addons/vector/stringtable.xml +++ b/addons/vector/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Vector 21 Nite ベクター 21 ナイト Vector 21 Nite - Vector 21 Nite - Vector 21 Nite + Vector 21 Nite + Vector 21 Nite Vector 21 @@ -30,8 +30,8 @@ Vector 21 ベクター 21 Vector 21 - Vector 21 - Vector 21 + Vector 21 + Vector 21 Rangefinder @@ -46,8 +46,8 @@ Дальномер 測距機器 거리측정기 - 测距仪 - 測距儀 + 测距仪 + 測距儀 Vector - Azimuth Key @@ -62,8 +62,8 @@ Vector – Азимут ベクター - 方位角キー Vector - 방위각 키 - Vector - 方位按键 - Vector - 方位按鍵 + Vector - 方位按键 + Vector - 方位按鍵 Vector - Distance Key @@ -78,8 +78,8 @@ Vector – Расстояние ベクター - 距離キー Vector - 거리 키 - Vector - 距离按键 - Vector - 距離按鍵 + Vector - 距离按键 + Vector - 距離按鍵 diff --git a/addons/vehiclelock/stringtable.xml b/addons/vehiclelock/stringtable.xml index 245f318e200..7b39b616de6 100644 --- a/addons/vehiclelock/stringtable.xml +++ b/addons/vehiclelock/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Destravar veículo 車両の鍵を開ける 차량 잠금열기 - 载具解锁 - 載具解鎖 + 载具解锁 + 載具解鎖 Lock Vehicle @@ -30,8 +30,8 @@ Travar Veículo 車両を施錠 차량 잠그기 - 载具上锁 - 載具上鎖 + 载具上锁 + 載具上鎖 Lockpick Vehicle @@ -46,8 +46,8 @@ Usar mixa no Veículo 鍵をこじ開ける 차량 문따기 - 解锁载具 - 解鎖載具 + 解锁载具 + 解鎖載具 Picking Lock... @@ -62,8 +62,8 @@ Usando Mixa... 鍵をこじ開けている・・・ 문따는중... - 解锁中... - 解鎖中... + 解锁中... + 解鎖中... A custom key that will open a specific vehicle. @@ -78,8 +78,8 @@ Uma chave específica que abre um veículo específico. カスタム キーは特定車両を開けられます。 특정 차량을 여는 특수 열쇠 - 使用指定的钥匙来开启特定的载具. - 使用指定的鑰匙來開啟特定的載具. + 使用指定的钥匙来开启特定的载具. + 使用指定的鑰匙來開啟特定的載具. A Master Key will open any lock, no matter what! @@ -94,8 +94,8 @@ Uma chave mestre irá abrir qualquer fechadura, não importa qual! マスター キーは全ての鍵を開けられます。 어떤 차량도 열 수 있는 마스터키 입니다! - 万用解锁钥匙, 能解锁任何载具. - 萬用解鎖鑰匙, 能解鎖任何載具. + 万用解锁钥匙, 能解锁任何载具. + 萬用解鎖鑰匙, 能解鎖任何載具. A lockpick set that can pick the locks of most vehicles. @@ -110,8 +110,8 @@ Um set de chave mixas que pode abrir a maioria dos veículos. ピッキング ツールでは多くの車両をこじ開けられます。 거의 모든 차량을 열 수 있게 해주는 해정도구 모음입니다. - 一组解锁钥匙 (可解锁大部份载具). - 一組解鎖鑰匙 (可解鎖大部份載具). + 一组解锁钥匙 (可解锁大部份载具). + 一組解鎖鑰匙 (可解鎖大部份載具). A key that should open most WEST vehicles. @@ -126,8 +126,8 @@ Uma chave que abre a maioria dos veículos ocidentais このキーは多くの WEST 車両を開けられます。 거의 모든 서방진영 차량을 여는 열쇠입니다. - 一组解锁钥匙 (可解锁大部份蓝方载具). - 一組解鎖鑰匙 (可解鎖大部份藍方載具). + 一组解锁钥匙 (可解锁大部份蓝方载具). + 一組解鎖鑰匙 (可解鎖大部份藍方載具). A key that should open most EAST vehicle. @@ -142,8 +142,8 @@ Uma chave que abre a maioria dos veículos orientais このキーは多くの EAST 車両を開けられます。 거의 모든 동방진영 차량을 여는 열쇠입니다. - 一组解锁钥匙 (可解锁大部份红方载具). - 一組解鎖鑰匙 (可解鎖大部份紅方載具). + 一组解锁钥匙 (可解锁大部份红方载具). + 一組解鎖鑰匙 (可解鎖大部份紅方載具). A key that should open most INDEP vehicle. @@ -158,8 +158,8 @@ Uma chave que abre a maioria dos veículos independentes このキーは多くの INDEP 車両を開けられます。 거의 모든 중립진영 차량을 여는 열쇠입니다. - 一组解锁钥匙 (可解锁大部份独立方载具). - 一組解鎖鑰匙 (可解鎖大部份獨立方載具). + 一组解锁钥匙 (可解锁大部份独立方载具). + 一組解鎖鑰匙 (可解鎖大部份獨立方載具). A key that should open most CIV vehicle. @@ -174,8 +174,8 @@ Uma chave que abre a maioria dos veículos civis. このキーは多くの CIV 車両を開けられます。 거의 모든 민간인 차량을 여는 열쇠입니다 - 一组解锁钥匙 (可解锁大部份平民载具). - 一組解鎖鑰匙 (可解鎖大部份平民載具). + 一组解锁钥匙 (可解锁大部份平民载具). + 一組解鎖鑰匙 (可解鎖大部份平民載具). Vehicle Lock Setup @@ -190,8 +190,8 @@ Impostazioni Blocco Veicolo 車両の施錠の設定 차량 잠금 설정 - 载具上锁设置 - 載具上鎖設置 + 载具上锁设置 + 載具上鎖設置 Lock Vehicle Inventory @@ -206,8 +206,8 @@ Blocca Inventario Veicolo 施錠されている車両のインベントリ 차량 소지품 잠금 - 上锁载具的车箱 - 上鎖載具的車箱 + 上锁载具的车箱 + 上鎖載具的車箱 Locks the inventory of locked vehicles @@ -222,8 +222,8 @@ Blocca l'inventario di un veicolo bloccato 施錠されている車両の、開けないインベントリ 잠긴 차량의 소지품을 뒤지지못하게 합니다. - 上锁载具的车箱, 使玩家不能拿取/查看载具内的装备 - 上鎖載具的車箱, 使玩家不能拿取/查看載具內的裝備 + 上锁载具的车箱, 使玩家不能拿取/查看载具内的装备 + 上鎖載具的車箱, 使玩家不能拿取/查看載具內的裝備 Vehicle Starting Lock State @@ -238,8 +238,8 @@ Stato Iniziale del Blocco per Veicoli 開始時における車両の鍵の状態 시작시 차량 잠금 상태 - 载具初始上锁状态 - 載具初始上鎖狀態 + 载具初始上锁状态 + 載具初始上鎖狀態 Set lock state for all vehicles (removes ambiguous lock states) @@ -254,8 +254,8 @@ Imposta lo stato di blocco per tutti i veicoli (rimuove stati di blocco ambigui) 全車両への鍵の状態を設定します。(あいまいな鍵の状態を削除) 모든 차량의 잠금 상태를 정합니다. (애매한 잠금 상태는 모두 없앱니다.) - 设定所有载具的初始上锁状态 (移除不明确的锁定状态) - 設定所有載具的初始上鎖狀態 (移除不明確的鎖定狀態) + 设定所有载具的初始上锁状态 (移除不明确的锁定状态) + 設定所有載具的初始上鎖狀態 (移除不明確的鎖定狀態) As Is @@ -270,8 +270,8 @@ Com'è そのまま 그대로 - 无变化 - 無變化 + 无变化 + 無變化 Locked @@ -286,8 +286,8 @@ Bloccato 施錠ずみ 잠김 - 上锁 - 上鎖 + 上锁 + 上鎖 Unlocked @@ -302,8 +302,8 @@ Sbloccato 開錠ずみ 열림 - 解锁 - 解鎖 + 解锁 + 解鎖 Default Lockpick Strength @@ -318,8 +318,8 @@ Durabilità Default del Grimaldello ピッキング ツールの標準の有効度 기본 해정도구 설정 - 预设开锁能力 - 預設開鎖能力 + 预设开锁能力 + 預設開鎖能力 Default Time to lockpick (in seconds). Default: 10 @@ -334,8 +334,8 @@ Tempo Default richiesto per forzare serrature (in secondi). Default: 10 ピッキング ツールに標準の時間を設定。(秒) 標準:10 해정을 위해 들이는 기본시간입니다(초 단위). 기본설정: 10 - 开锁时间(秒). 预设:10 - 開鎖時間(秒). 預設:10 + 开锁时间(秒). 预设:10 + 開鎖時間(秒). 預設:10 Settings for lockpick strength and initial vehicle lock state. Removes ambiguous lock states. @@ -350,8 +350,8 @@ Impostazioni per resistenza iniziale delle serrature e stato di blocco dei veicoli. Rimuove stati di blocco ambigui. ピッキング ツールの強さと車両の鍵の初期状態を設定できます。あいまいな鍵の状態を削除します。 해정도구 설정과 시작시 차량의 잠금 상태 그리고 애매한 잠금 상태를 지우는 설정입니다. - 设定开锁能力和初始载具上锁状态. 移除不明确的锁定状态. - 設定開鎖能力和初始載具上鎖狀態. 移除不明確的鎖定狀態. + 设定开锁能力和初始载具上锁状态. 移除不明确的锁定状态. + 設定開鎖能力和初始載具上鎖狀態. 移除不明確的鎖定狀態. Vehicle Key Assign @@ -366,8 +366,8 @@ Assegna Chiavi Veicoli 車両の鍵を割り当て 차량 열쇠 등록 - 指定载具钥匙 - 指定載具鑰匙 + 指定载具钥匙 + 指定載具鑰匙 Sync with vehicles and players. Will handout custom keys to players for every synced vehicle. Only valid for objects present at mission start. @@ -382,8 +382,8 @@ Sincronizza con veicoli e giocatori. Distribuirà chiavi ai giocatori per ogni veicolo sincronizzato. Valido solo per oggetti presenti ad inizio missione. 車両とプレイヤへ同期します。プレイヤへ同期された車両のカスタム キーを作ります。これはミッション開始時に作成されたオブジェクトでのみ有効です。 차량과 플레이어에게 동기화됩니다. 동기화된 차량은 플레이어에게 열쇠를 지급합니다. 오직 미션 시작시에 생긴 물체들만 유효합니다. - 可同步在载具与玩家身上. 将使被同步的玩家掌握其他被同步载具的钥匙. 此模块只会在任务刚开始时触发. - 可同步在載具與玩家身上. 將使被同步的玩家掌握其他被同步載具的鑰匙. 此模塊只會在任務剛開始時觸發. + 可同步在载具与玩家身上. 将使被同步的玩家掌握其他被同步载具的钥匙. 此模块只会在任务刚开始时触发. + 可同步在載具與玩家身上. 將使被同步的玩家掌握其他被同步載具的鑰匙. 此模塊只會在任務剛開始時觸發. diff --git a/addons/vehicles/stringtable.xml b/addons/vehicles/stringtable.xml index b50666e8324..36ff7f99e6f 100644 --- a/addons/vehicles/stringtable.xml +++ b/addons/vehicles/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Limitatore Attivo 速度制限を有効化 속도 제한기 켜짐 - 启用速度限制 - 啟用速度限制 + 启用速度限制 + 啟用速度限制 Speed Limiter off @@ -30,8 +30,8 @@ Limitatore Non Attivo 速度制限を無効化 속도 제한기 꺼짐 - 停用速度限制 - 停用速度限制 + 停用速度限制 + 停用速度限制 Speed Limiter @@ -46,8 +46,8 @@ Limitatore di Velocità 速度制限 속도 제한기 - 速度限制器 - 速度限制器 + 速度限制器 + 速度限制器 diff --git a/addons/viewdistance/stringtable.xml b/addons/viewdistance/stringtable.xml index 5d9560338ae..99857074221 100644 --- a/addons/viewdistance/stringtable.xml +++ b/addons/viewdistance/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Limitatore Distanza Visiva 視界距離の制限 시야 제한기 - 视野距离限制器 - 視野距離限制器 + 视野距离限制器 + 視野距離限制器 Allows limiting maximum view distance that can be set by players. @@ -30,8 +30,8 @@ Consente di limitare la distanza visiva massima che può essere impostata dai giocatori. プレイヤーへ最大の視界距離を制限できます。 플레이어가 볼 수 있는 최대 시야를 제한합니다. - 允许玩家最大的可视距离. - 允許玩家最大的可視距離. + 允许玩家最大的可视距离. + 允許玩家最大的可視距離. Enable ACE viewdistance @@ -46,8 +46,8 @@ Abilita distanza visiva ACE ACE 視界距離を有効化 ACE 시야 활성화 - 启用ACE视距 - 啟用ACE視距 + 启用ACE视距 + 啟用ACE視距 Enables ACE viewdistance @@ -62,8 +62,8 @@ Abilita distanza visiva ACE ACE 視界距離を有効化 ACE 시야 활성화 - 启用ACE视距 - 啟用ACE視距 + 启用ACE视距 + 啟用ACE視距 View Distance Limit @@ -78,8 +78,8 @@ Limite Distanza Visiva 視界距離の制限 시야 제한기 - 视野距离限制 - 視野距離限制 + 视野距离限制 + 視野距離限制 Sets the limit for how high clients can raise their view distance (up to 10000) @@ -94,8 +94,8 @@ Imposta il limite massimo a cui i client possono alzare la propria distanza visiva (massimo 10000) 各クライアントが最大まで設定できる視界距離を設定します。(最大 10000) 클라이언트가 최대 얼마나 멀리 볼 수 있는지 제한을 둡니다 (10000 까지 가능) - 设定客户端最高可显示的视野距离 (最高至10000) - 設定客戶端最高可顯示的視野距離 (最高至10000) + 设定客户端最高可显示的视野距离 (最高至10000) + 設定客戶端最高可顯示的視野距離 (最高至10000) Limit for client's view distance set here and can overridden by module @@ -110,8 +110,8 @@ Limite per la distanza visiva del client impostato qui e può essere scavalcato dal modulo クライアントへの視界距離の設定や、それをモジュールにより上書きできます 클라이언트의 시야를 이 모듈로 치환할 수 있습니다. - 玩家的视距限制可在此设定, 也可透过模块改写 - 玩家的視距限制可在此設定, 也可透過模塊改寫 + 玩家的视距限制可在此设定, 也可透过模块改写 + 玩家的視距限制可在此設定, 也可透過模塊改寫 Client View Distance (On Foot) @@ -126,8 +126,8 @@ Distanza Visiva Client (a Piedi) クライアント側視界距離 (地上) 클라이언트 시야 (보병) - 客户端视野距离 (步行) - 客戶端視野距離 (步行) + 客户端视野距离 (步行) + 客戶端視野距離 (步行) Changes in game view distance when the player is on foot. @@ -142,8 +142,8 @@ Cambia la distanza visiva in gioco quando il giocatore è a piedi. プレイヤーが地上にいる時の視界距離を変更します。 플레이어가 보병일 경우의 시야를 바꿀 수 있습니다. - 改变玩家步行时的视野距离. - 改變玩家步行時的視野距離. + 改变玩家步行时的视野距离. + 改變玩家步行時的視野距離. Client View Distance (Land Vehicle) @@ -158,8 +158,8 @@ Distanza Visiva Client (Veicolo Terrestre) クライアント側視界距離 (車両) 클라이언트 시야 (차량) - 客户端视野距离 (地面载具) - 客戶端視野距離 (地面載具) + 客户端视野距离 (地面载具) + 客戶端視野距離 (地面載具) Changes in game view distance when the player is in a land vehicle. @@ -174,8 +174,8 @@ Cambia la distanza visiva in gioco quando il giocatore è in un veicolo terrestre. プレイヤーが車両の時の視界距離を変更します。 플레이어가 차량 내부일 경우의 시야를 바꿀 수 있습니다. - 改变玩家于地面载具内时的视野距离. - 改變玩家於地面載具內時的視野距離. + 改变玩家于地面载具内时的视野距离. + 改變玩家於地面載具內時的視野距離. Client View Distance (Air Vehicle) @@ -190,8 +190,8 @@ Distanza Visiva Client (Veicoli d'Aria) クライアント側視界距離 (航空機) 클라이언트 시야 (항공기) - 客户端视野距离 (空中载具) - 客戶端視野距離 (空中載具) + 客户端视野距离 (空中载具) + 客戶端視野距離 (空中載具) Changes in game view distance when the player is in an air vehicle. @@ -206,8 +206,8 @@ Cambia la distanza visiva in gioco quando il giocatore è in un mezzo aereo. プレイヤーが航空機に乗っている時の視界距離を変更します。 플레이어가 항공기 내부일 경우의 시야를 바꿀 수 있습니다. - 改变玩家于空中载具内时的视野距离. - 改變玩家於空中載具內時的視野距離. + 改变玩家于空中载具内时的视野距离. + 改變玩家於空中載具內時的視野距離. Dynamic Object View Distance @@ -222,8 +222,8 @@ Distanza Visiva Oggetti Dinamica 動的なオブジェクトの描画距離 동적 물체 시야 - 动态物件的视野距离 - 動態物件的視野距離 + 动态物件的视野距离 + 動態物件的視野距離 Sets the object view distance as a coefficient of the view distance or based on field of view. FoV Based's lowest and highest value is the value which is set when enabling the option. @@ -238,8 +238,8 @@ Imposta la distanza visiva degli oggetti come un coefficiente basato sulla distanza visiva oppure basato sul campo visivo. 視野角を元にするか、視界距離によるオブジェクト描画距離を決定します。視野角を元にするオプションを有効化した場合、視野角により最低と最高値が変動します。 설정된 시야 혹은 시계(FoV)에 계수를 적용해 물체 시야를 적용합니다. 시계를 바탕으로 하는 옵션을 활성화할 경우 시계에 의한 최저와 최고치가 변동됩니다. - 设定物件可被观察的距离, 透过视野距离或是视野角度来决定. - 設定物件可被觀察的距離, 透過視野距離或是視野角度來決定. + 设定物件可被观察的距离, 透过视野距离或是视野角度来决定. + 設定物件可被觀察的距離, 透過視野距離或是視野角度來決定. Off @@ -254,8 +254,8 @@ Disabilitato 無効 끄기 - 关闭 - 關閉 + 关闭 + 關閉 Very Low @@ -270,8 +270,8 @@ Molto Basso 最低 매우 낮음 - 非常低 - 非常低 + 非常低 + 非常低 Low @@ -286,8 +286,8 @@ Basso 낮음 - - + + Medium @@ -302,8 +302,8 @@ Medio 通常 중간 - - + + High @@ -318,8 +318,8 @@ Alto 높음 - - + + Very High @@ -334,8 +334,8 @@ Molto Alto 最高 매우 높음 - 非常高 - 非常高 + 非常高 + 非常高 FoV Based @@ -349,8 +349,8 @@ Champ de vision basé 視野角を元にする 시계(FoV) - 由视野角度决定 - 由視野角度決定 + 由视野角度决定 + 由視野角度決定 View Distance: @@ -365,8 +365,8 @@ Distanza Visiva: 視界距離: 시야: - 视野距离: - 視野距離: + 视野距离: + 視野距離: Object View Distance is @@ -381,8 +381,8 @@ Distanza Visiva Oggetti è オブジェクト描画距離は 동적 물체 시야는 - 物件视野距离为 - 物件視野距離為 + 物件视野距离为 + 物件視野距離為 That option is invalid! The limit is @@ -397,8 +397,8 @@ Questa opzione è invalida! Il limite è このオプションは無効です!制限は 이 옵션은 불가능합니다! 제한은 - 该选项是无效的! 限制是 - 該選項是無效的! 限制是 + 该选项是无效的! 限制是 + 該選項是無效的! 限制是 Video Settings @@ -413,8 +413,8 @@ Impostazioni Video 映像設定 영상 설정 - 影像设定 - 影像設定 + 影像设定 + 影像設定 diff --git a/addons/weaponselect/stringtable.xml b/addons/weaponselect/stringtable.xml index cccd10d33c9..94f80158f9d 100644 --- a/addons/weaponselect/stringtable.xml +++ b/addons/weaponselect/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Mostrat texto ao lançar granada 手榴弾を投げるときに通知 수류탄 투척시 화면에 문자 표시 - 投掷手榴弹时显示提示讯息 - 投擲手榴彈時顯示提示訊息 + 投掷手榴弹时显示提示讯息 + 投擲手榴彈時顯示提示訊息 Display a hint or text on grenade throw. @@ -30,8 +30,8 @@ Mostra um hint ou texto ao lançar uma granada 手榴弾を投げるときに、ヒントか文で通知します。 수류탄 투척시 화면에 문자나 힌트를 표시합니다. - 投掷手榴弹时显示提示讯息. - 投擲手榴彈時顯示提示訊息. + 投掷手榴弹时显示提示讯息. + 投擲手榴彈時顯示提示訊息. Select Pistol @@ -46,8 +46,8 @@ Seleziona la Pistola 拳銃を選択 권총 선택 - 选择手枪 - 選擇手槍 + 选择手枪 + 選擇手槍 Select Rifle @@ -62,8 +62,8 @@ Seleziona il fucile 小銃を選択 소총 선택 - 选择步枪 - 選擇步槍 + 选择步枪 + 選擇步槍 Select Launcher @@ -78,8 +78,8 @@ Seleziona il lanciamissili ランチャーを選択 발사기 선택 - 选择发射器 - 選擇發射器 + 选择发射器 + 選擇發射器 Select Grenade Launcher @@ -94,8 +94,8 @@ Seleziona il lanciagranate グレネード ランチャーを選択 유탄발사기 선택 - 选择榴弹发射器 - 選擇榴彈發射器 + 选择榴弹发射器 + 選擇榴彈發射器 Select Binoculars @@ -110,8 +110,8 @@ Seleziona il Binocolo 双眼鏡を選択 망원경 선택 - 选择望远镜 - 選擇望遠鏡 + 选择望远镜 + 選擇望遠鏡 Holster Weapon @@ -126,8 +126,8 @@ Nascondi l'arma 武器をしまう 무기 집어넣기 - 武器套 - 武器套 + 武器套 + 武器套 Engine on @@ -142,8 +142,8 @@ Включить двигатель エンジン始動 엔진 켜기 - 引擎发动 - 引擎發動 + 引擎发动 + 引擎發動 Engine off @@ -158,8 +158,8 @@ Выключить двигатель エンジン停止 엔진 끄기 - 引擎熄火 - 引擎熄火 + 引擎熄火 + 引擎熄火 Select Main Gun @@ -174,8 +174,8 @@ Выбрать основное оружие 主砲を選択 주포 선택 - 选择主武器 - 選擇主武器 + 选择主武器 + 選擇主武器 Select Machine Gun @@ -190,8 +190,8 @@ Выбрать пулемёт 機関砲を選択 기관총 선택 - 选择机枪 - 選擇機槍 + 选择机枪 + 選擇機槍 Select Missiles @@ -206,8 +206,8 @@ Выбрать ракеты ミサイルを選択 미사일 선택 - 选择导弹 - 選擇導彈 + 选择导弹 + 選擇導彈 Grenade %1 @@ -222,8 +222,8 @@ Granada %1 %1 手榴弾 %1 수류탄 - 手榴弹 %1 - 手榴彈 %1 + 手榴弹 %1 + 手榴彈 %1 Ready Grenade @@ -238,8 +238,8 @@ Granada pronta 投てきよし 투척물 준비 - 准备手榴弹 - 準備手榴彈 + 准备手榴弹 + 準備手榴彈 Select Frag Grenade @@ -254,8 +254,8 @@ Выбрать осколочную гранату 破片手榴弾を選択 살상 투척물 선택 - 选择破片手榴弹 - 選擇破片手榴彈 + 选择破片手榴弹 + 選擇破片手榴彈 Select Non-Frag Grenade @@ -270,8 +270,8 @@ Выбрать гранату その他の手榴弾を選択 비살상 투척물 선택 - 选择非破片手榴弹 - 選擇非破片手榴彈 + 选择非破片手榴弹 + 選擇非破片手榴彈 Throw Selected Grenade @@ -286,8 +286,8 @@ Бросить выбранную гранату 選択された手榴弾を投げる 선택된 투척물 투척 - 投掷选择的手榴弹 - 投擲選擇的手榴彈 + 投掷选择的手榴弹 + 投擲選擇的手榴彈 No grenades left @@ -302,8 +302,8 @@ Sem mais granadas もう手榴弾は無い 투척물 없음 - 已无手榴弹 - 已無手榴彈 + 已无手榴弹 + 已無手榴彈 No frags left @@ -318,8 +318,8 @@ Осколочных гранат нет もう破片手榴弾は無い 세열 수류탄 없음 - 已无破片手榴弹 - 已無破片手榴彈 + 已无破片手榴弹 + 已無破片手榴彈 No misc. grenades left @@ -334,8 +334,8 @@ Нелетальные гранаты закончились もうその他の手榴弾は無い 기타 투척물 없음 - 已无其他手榴弹 - 已無其他手榴彈 + 已无其他手榴弹 + 已無其他手榴彈 No grenade selected @@ -350,8 +350,8 @@ Нет выбранной гранаты 手榴弾は選択されていない 선택된 수류탄 없음 - 未选择手榴弹 - 未選擇手榴彈 + 未选择手榴弹 + 未選擇手榴彈 Fire Smoke Launcher @@ -366,8 +366,8 @@ Lançador de fumaça 煙幕発射機を発射 연막발사기 박사 - 发射烟雾发射器 - 發射煙霧發射器 + 发射烟雾发射器 + 發射煙霧發射器 diff --git a/addons/weather/stringtable.xml b/addons/weather/stringtable.xml index 5da2961d570..3849a49b07e 100644 --- a/addons/weather/stringtable.xml +++ b/addons/weather/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Mostrar informação do vento 風速を表示 바람 정보 표시 - 显示风力资讯 - 顯示風力資訊 + 显示风力资讯 + 顯示風力資訊 Show Wind Info (Toggle) @@ -30,8 +30,8 @@ Mostrar informação do vento (alternar) 風速を表示 (トグル) 바람 정보 표시 (토글) - 显示风力资讯(切换) - 顯示風力資訊(切換) + 显示风力资讯(切换) + 顯示風力資訊(切換) Weather @@ -46,8 +46,8 @@ Meteo 天候 기후 - 天气 - 天氣 + 天气 + 天氣 Multiplayer synchronized ACE weather module @@ -62,8 +62,8 @@ Modulo Sincronizzazione Meteo ACE Multiplayer ACE 天候モジュールではマルチプレイで同期します。 ACE 기후 모듈과 멀티플레이가 동기화됩니다. - 使用ACE天气模块来同步所有客户端的天气状态(多人游戏) - 使用ACE天氣模塊來同步所有客戶端的天氣狀態(多人遊戲) + 使用ACE天气模块来同步所有客户端的天气状态(多人游戏) + 使用ACE天氣模塊來同步所有客戶端的天氣狀態(多人遊戲) Weather propagation @@ -78,8 +78,8 @@ Propagazione Meteo 天候の統一 기후 전파 - 天气状态广播 - 天氣狀態廣播 + 天气状态广播 + 天氣狀態廣播 Enables server side weather propagation @@ -94,8 +94,8 @@ Abilita propagazione meteo lato server サーバ側による天候の統一を有効化 서버의 기후를 전파합니다 - 启用伺服器的天气状态广播 - 啟用伺服器的天氣狀態廣播 + 启用伺服器的天气状态广播 + 啟用伺服器的天氣狀態廣播 ACE Weather @@ -110,8 +110,8 @@ Meteo ACE ACE 天候 ACE 기후 - ACE 天气 - ACE 天氣 + ACE 天气 + ACE 天氣 Overrides the default weather (editor, mission settings) with ACE weather (map based) @@ -126,8 +126,8 @@ Scavalca il meteo default (editor, parametri missione) con il meteo ACE (basato su mappa) ACE 天候 (マップを元) による標準の天候 (エディタやミッション設定) を上書きします。 기존의 기후(에디터, 임무 설정)를 ACE 기후로 치환합니다. (지도에 따라) - 使ACE天气覆盖预设的天气 (编辑任务设置) - 使ACE天氣覆蓋預設的天氣 (編輯任務設置) + 使ACE天气覆盖预设的天气 (编辑任务设置) + 使ACE天氣覆蓋預設的天氣 (編輯任務設置) Sync Rain @@ -142,8 +142,8 @@ Sincronizza Pioggia 降雨の同期 비 동기화 - 同步雨 - 同步雨 + 同步雨 + 同步雨 Synchronizes rain @@ -158,8 +158,8 @@ Sincronizza Pioggia 降雨の同期 비를 동기화 합니다 - 同步雨 - 同步雨 + 同步雨 + 同步雨 Sync Wind @@ -174,8 +174,8 @@ Sincronizza Vento 風を同期 바람 동기화 - 同步风 - 同步風 + 同步风 + 同步風 Synchronizes wind @@ -190,8 +190,8 @@ Sincronizza Vento 風を同期 바람을 동기화 합니다 - 同步风 - 同步風 + 同步风 + 同步風 Sync Misc @@ -206,8 +206,8 @@ Sincronizza Misto その他を同期 기타 동기화 - 同步杂项 - 同步雜項 + 同步杂项 + 同步雜項 Synchronizes lightnings, rainbow, fog,... @@ -222,8 +222,8 @@ Sincronizza lampi, arcobaleni, nebbia,... ライティングや虹、霧などを同期 번개라던가, 무지개, 안개등을 동기화 합니다 - 同步闪电, 彩虹, 雾等等... - 同步閃電, 彩虹, 霧等等... + 同步闪电, 彩虹, 雾等等... + 同步閃電, 彩虹, 霧等等... Update Interval @@ -238,8 +238,8 @@ Intervallo Aggiornamenti 更新間隔 갱신 간격 - 更新间隔 - 更新間隔 + 更新间隔 + 更新間隔 Defines the interval (seconds) between weather updates @@ -254,8 +254,8 @@ Definisce l'intervallo (in secondi) tra aggiornamenti del meteo 天候を更新する間隔を定義します。(秒) 기후를 갱신 하는 간격을 초 단위로 정합니다. - 设定天气更新的时间间隔(秒) - 設定天氣更新的時間間隔(秒) + 设定天气更新的时间间隔(秒) + 設定天氣更新的時間間隔(秒) diff --git a/addons/winddeflection/stringtable.xml b/addons/winddeflection/stringtable.xml index 3bbdf868ded..a9290c8ab07 100644 --- a/addons/winddeflection/stringtable.xml +++ b/addons/winddeflection/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Informação do vento 風の情報 바람 정보 - 风力资讯 - 風力資訊 + 风力资讯 + 風力資訊 Direction: %1 @@ -30,8 +30,8 @@ Direção: %1 風向: %1 방향: %1 - 风向: %1 - 風向: %1 + 风向: %1 + 風向: %1 Speed: %1 m/s @@ -46,8 +46,8 @@ Velocidade: %1 m/s 風速: %1 m/s 풍속: %1 m/s - 风速: %1 m/s - 風速: %1 m/s + 风速: %1 m/s + 風速: %1 m/s Weather Information @@ -62,8 +62,8 @@ Informação Meteorológica 天候の情報 기상 정보 - 天气资讯 - 天氣資訊 + 天气资讯 + 天氣資訊 Humidity: %1% @@ -78,8 +78,8 @@ Humidade: %1% 湿度: %1% 습도: %1% - 湿度: %1% - 濕度: %1% + 湿度: %1% + 濕度: %1% Wind Deflection @@ -94,8 +94,8 @@ Deviazione del Vento 風向による変化 풍향 변화 - 风偏 - 風偏 + 风偏 + 風偏 Wind Deflection @@ -110,8 +110,8 @@ Deviazione del Vento 風向による変化 풍향 변화 - 风偏 - 風偏 + 风偏 + 風偏 Enables wind deflection @@ -126,8 +126,8 @@ Abilita deviazione del vento 風向による変化を有効化 풍향 변화를 적용합니다 - 开启风偏效果 - 開啟風偏效果 + 开启风偏效果 + 開啟風偏效果 Vehicle Enabled @@ -142,8 +142,8 @@ Abilita per Veicoli 車両へ有効化 차량 적용 - 启用风偏给载具 - 啟用風偏給載具 + 启用风偏给载具 + 啟用風偏給載具 Enables wind deflection for static/vehicle gunners @@ -158,8 +158,8 @@ Abilita deviazione del vento per artiglieri di statiche/veicoli 重火器や車両へ、風による変化を有効化 차량이나 거치식 무기 사수에게 풍향 변화를 적용합니다 - 使风偏作用在固定式武器与载具炮手身上 - 使風偏作用在固定式武器與載具砲手身上 + 使风偏作用在固定式武器与载具炮手身上 + 使風偏作用在固定式武器與載具砲手身上 Simulation Interval @@ -174,8 +174,8 @@ Intervallo Simulazione シミュレーションの間隔 재현 간격 - 模拟间隔 - 模擬間隔 + 模拟间隔 + 模擬間隔 Defines the interval between every calculation step @@ -190,8 +190,8 @@ Definisce l'intervallo tra ogni passaggio di calcolo 各計算に適用させる間隔を定義します 매 계산마다의 간격을 정의합니다 - 定义每个计算之间的时间间隔 - 定義每個計算之間的時間間隔 + 定义每个计算之间的时间间隔 + 定義每個計算之間的時間間隔 Simulation Radius @@ -206,8 +206,8 @@ Raggio Simulazione シミュレーション半径 재현 범위 - 模拟半径 - 模擬半徑 + 模拟半径 + 模擬半徑 Defines the radius around the player (in meters) at which projectiles are wind deflected @@ -222,8 +222,8 @@ Definisce il raggio attorno al giocatore (in metri) dove viene applicata la deviazione del vento ai proiettili プレイヤーの周囲に適用させる風による弾道の変化の半径を定義します (メートル) 플레이어 주위로 발사체가 풍향 변화의 영향을 받는 범위를 정합니다 (미터) - 定义玩家多少半径范围内(单位公尺)子弹会受到风偏的引响 - 定義玩家多少半徑範圍內(單位公尺)子彈會受到風偏的引響 + 定义玩家多少半径范围内(单位公尺)子弹会受到风偏的引响 + 定義玩家多少半徑範圍內(單位公尺)子彈會受到風偏的引響 Wind influence on projectiles trajectory @@ -238,8 +238,8 @@ Influenza del vento sulla traiettoria dei proiettili 風が弾道へ影響させます 발사체의 궤도에 풍향 변화를 줍니다. - 风力的大小会引响到弹道的轨迹 - 風力的大小會引響到彈道的軌跡 + 风力的大小会引响到弹道的轨迹 + 風力的大小會引響到彈道的軌跡 diff --git a/addons/yardage450/stringtable.xml b/addons/yardage450/stringtable.xml index fe43a21b9ab..6ab95aff7f4 100644 --- a/addons/yardage450/stringtable.xml +++ b/addons/yardage450/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Yardage 450 ヤードエイジ 450 Yardage 450 - Yardage 450 - Yardage 450 + Yardage 450 + Yardage 450 Laser Rangefinder @@ -30,8 +30,8 @@ Télémètre laser レーザー測距機 레이저 거리측정기 - 雷射测距仪 - 雷射測距儀 + 雷射测距仪 + 雷射測距儀 Yardage 450 - Power Button @@ -46,8 +46,8 @@ Yardage 450 - bouton d'alimentation ヤードエイジ 450 - 起動ボタン Yardage 450 - 전원 버튼 - Yardage 450 - 电源按钮 - Yardage 450 - 電源按鈕 + Yardage 450 - 电源按钮 + Yardage 450 - 電源按鈕 diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index ec8d660235e..9cd71c135bb 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -14,8 +14,8 @@ Impostazioni Zeus Zeus 設定 Zeus 설정 - 宙斯设定 - 宙斯設定 + 宙斯设定 + 宙斯設定 Provides control over various aspects of Zeus. @@ -30,8 +30,8 @@ Fornisce controllo su vari aspetti di Zeus. Zeus のさまざまな側面を強化します。 Zeus에게 다양한 방면의 조작을 제공해줍니다 - 提供宙斯各个方面的控制权. - 提供宙斯各個方面的控制權. + 提供宙斯各个方面的控制权. + 提供宙斯各個方面的控制權. Ascension Messages @@ -46,8 +46,8 @@ Messaggi di Ascesa 転生表示 재림 메세지 - 上任宙斯讯息 - 上任宙斯訊息 + 上任宙斯讯息 + 上任宙斯訊息 Display global popup messages when a player is assigned as Zeus. @@ -62,8 +62,8 @@ Mostra messaggi popup globali quando un giocatore viene assegnato come Zeus. プレイヤーが Zeus になるとき、全体へポップアップ表示をおこないます。 플레이어가 Zeus 될 시 서버에 이를 알리는 팝업이 등장합니다. - 当一位玩家被指定为宙斯时显示全球讯息. - 當一位玩家被指定為宙斯時顯示全球訊息. + 当一位玩家被指定为宙斯时显示全球讯息. + 當一位玩家被指定為宙斯時顯示全球訊息. Zeus Eagle @@ -78,8 +78,8 @@ Aquila Zeus Zeus イーグル Zeus 독수리 - 宙斯鹰眼模式 - 宙斯鷹眼模式 + 宙斯鹰眼模式 + 宙斯鷹眼模式 Spawn an eagle that follows the Zeus camera. @@ -94,8 +94,8 @@ Crea un'aquila che segue la camera Zeus. Zeus カメラを追うイーグルを出現します。 Zeus의 카메라를 따라다니는 독수리를 생성합니다. - 生成一个老鹰跟着宙斯的摄影机 - 生成一個老鷹跟著宙斯的攝影機 + 生成一个老鹰跟着宙斯的摄影机 + 生成一個老鷹跟著宙斯的攝影機 Wind Sounds @@ -110,8 +110,8 @@ Suoni del Vento 風の音 바람 소리 - 风声 - 風聲 + 风声 + 風聲 Play wind sounds when Zeus remote controls a unit. @@ -126,8 +126,8 @@ Esegui rumori di vento quando Zeus controlla un'unità in remoto. ユニットが Zeus 遠隔操作になったとき、風の音がします。 Zeus가 유닛을 조작할 때 바람소리가 납니다. - 当宙斯开始控制单位时利用风的声音提示 - 當宙斯開始控制單位時利用風的聲音提示 + 当宙斯开始控制单位时利用风的声音提示 + 當宙斯開始控制單位時利用風的聲音提示 Ordnance Warning @@ -142,8 +142,8 @@ Allarme Esplosivi 砲撃の警告 폭격 경고 - 武装警告 - 武裝警告 + 武装警告 + 武裝警告 Play a radio warning when Zeus uses ordnance. @@ -158,8 +158,8 @@ Riproduci un messaggio radio quando Zeus usa esplosivi. Zeus が砲撃をつかうときに、無線で警告を流します。 Zeus가 폭격시 경고 무전을 재생합니다. - 当宙斯开始攻击时使用无线电警告 - 當宙斯開始攻擊時使用無線電警告 + 当宙斯开始攻击时使用无线电警告 + 當宙斯開始攻擊時使用無線電警告 Reveal Mines @@ -174,8 +174,8 @@ Rivela Mine 地雷の表示 지뢰 표시 - 显示地雷 - 顯示地雷 + 显示地雷 + 顯示地雷 Reveal mines to allies and place map markers. @@ -190,8 +190,8 @@ Rivela mine ad alleati e piazza marcatori in mappa. 友軍に地雷と地図へ設置マーカーを表示します。 아군에게 지도 상의 모든 지뢰를 표시합니다. - 地图将标记队友放置的地雷 - 地圖將標記隊友放置的地雷 + 地图将标记队友放置的地雷 + 地圖將標記隊友放置的地雷 Reveal to Allies @@ -206,8 +206,8 @@ Rivela ad Alleati 友軍へ表示 모든 아군에게 표시 - 透露给盟军 - 透露給盟軍 + 透露给盟军 + 透露給盟軍 Allies + Map Markers @@ -222,8 +222,8 @@ Alleati + Marcatori Mappa 友軍と地図マーカー 아군 + 지도 마커 - 显示盟军+地图标记 - 顯示盟軍+地圖標記 + 显示盟军+地图标记 + 顯示盟軍+地圖標記 Toggle Captive @@ -238,8 +238,8 @@ Attivatore Prigioniero 捕虜としてトグル 포로 토글 - 切换俘虏 - 切換俘虜 + 切换俘虏 + 切換俘虜 Defend Area @@ -251,8 +251,8 @@ Verteidige Gebiet 지역 방어 Difendi Area - 防御区域 - 防禦區域 + 防御区域 + 防禦區域 Update Editable Objects @@ -261,8 +261,8 @@ 수정 가능한 물체 갱신 Màj les objets éditables Aggiorna Oggetti Modificabili - 更新可编辑的物件 - 更新可編輯的物件 + 更新可编辑的物件 + 更新可編輯的物件 All Curators @@ -271,8 +271,8 @@ Wszyscy kuratorzy Tous curateurs Tutti i Moderatori - 所有编辑者 - 所有編輯者 + 所有编辑者 + 所有編輯者 Apply changes to all curators @@ -281,8 +281,8 @@ Zatwierdź zmiany dla wszystkich kuratorów Applique les changements à tous les curateurs Applica i cambiamenti a tutti i moderatori - 确认变更给所有编辑者 - 確認變更給所有編輯者 + 确认变更给所有编辑者 + 確認變更給所有編輯者 Remove Objects @@ -291,8 +291,8 @@ Usuń obiekty Enlève les objets Rimuovi Oggetti - 移除物件 - 移除物件 + 移除物件 + 移除物件 Remove existing instead of adding new @@ -301,8 +301,8 @@ Usuń istniejące zamiast dodawać nowe Enlève les objets existants au lieu d'en ajouter de nouveaux Rimuove gli esistenti e li sostituisce con i nuovi - 移除已存在的物件来新增新的物件 - 移除已存在的物件來新增新的物件 + 移除已存在的物件来新增新的物件 + 移除已存在的物件來新增新的物件 Global AI Skill @@ -314,8 +314,8 @@ Globale KI-Fähigkeit 서버 인공지능 실력 Abilità AI Globale - AI技巧设定 - AI技巧設定 + AI技巧设定 + AI技巧設定 General Skill @@ -327,8 +327,8 @@ Allgemeine Fähigkeit 전반적 실력 Abilità Generale - 总体技巧 - 總體技巧 + 总体技巧 + 總體技巧 Changes: general, commanding, courage @@ -340,8 +340,8 @@ Ändert: general, commanding, courage 변화: 전반적, 지휘, 사기 Cambia: generale, comando, - 改变: 战斗技巧, 指挥技巧, 勇气大小 - 改變: 戰鬥技巧, 指揮技巧, 勇氣大小 + 改变: 战斗技巧, 指挥技巧, 勇气大小 + 改變: 戰鬥技巧, 指揮技巧, 勇氣大小 Accuracy @@ -353,8 +353,8 @@ Genauigkeit 명중률 Precisione - 精确度 - 精確度 + 精确度 + 精確度 Changes: aimingAccuracy @@ -366,8 +366,8 @@ Ändert: aimingAccuracy 변화: 조준 명중률 Cambia: aimingAccuracy - 改变: 瞄准精确度 - 改變: 瞄準精確度 + 改变: 瞄准精确度 + 改變: 瞄準精確度 Weapon Handling @@ -379,8 +379,8 @@ Waffenhandhabung 무기 조작 Uso dell'Arma - 武器掌握 - 武器掌握 + 武器掌握 + 武器掌握 Changes: aimingShake, aimingSpeed, reloadSpeed @@ -392,8 +392,8 @@ Ändert: aimingShake, aimingSpeed, reloadSpeed 변화: 조준시 흔들림, 조준 속도, 재장전 속도 Cambia: aimingShake, aimingSpeed, reloadSpeed - 改变: 手晃幅度, 瞄准速度, 重新装填速度 - 改變: 手晃幅度, 瞄準速度, 重新裝填速度 + 改变: 手晃幅度, 瞄准速度, 重新装填速度 + 改變: 手晃幅度, 瞄準速度, 重新裝填速度 Spotting @@ -405,8 +405,8 @@ Aufklärung 탐지 Ricognizione - 索敌能力 - 索敵能力 + 索敌能力 + 索敵能力 Changes: spotDistance, spotTime @@ -418,8 +418,8 @@ Ändert: spotDistance, spotTime 변화: 탐지 거리, 탐지까지의 시간 Cambia: spotDistance, spotTime - 改变: 搜索距离, 发现时间 - 改變: 搜索距離, 發現時間 + 改变: 搜索距离, 发现时间 + 改變: 搜索距離, 發現時間 Seek Cover @@ -431,8 +431,8 @@ Deckungssuche 엄폐물 찾기 Cerca Copertura - 寻找掩护 - 尋找掩護 + 寻找掩护 + 尋找掩護 Should AI seek cover @@ -444,8 +444,8 @@ Soll KI nach Deckung suchen 인공지능이 엄폐물을 찾아갑니다 Le AI dovrebbero cercare una copertura - 决定AI是否会寻找掩护 - 決定AI是否會尋找掩護 + 决定AI是否会寻找掩护 + 決定AI是否會尋找掩護 Auto Combat @@ -457,8 +457,8 @@ Automatischer Kampfmodus 자동 교전 Combattimento Automatico - 自动交战 - 自動交戰 + 自动交战 + 自動交戰 Should AI automatically switch to combat mode @@ -470,8 +470,8 @@ Soll KI automatisch in Kampfmodus umschalten 인공지능이 자동적으로 교전 상태에 돌입합니다 Le AI dovrebbero passare in modalità di combattimento automaticamente - 决定AI是否会自动与敌人交战 - 決定AI是否會自動與敵人交戰 + 决定AI是否会自动与敌人交战 + 決定AI是否會自動與敵人交戰 Group Side @@ -483,8 +483,8 @@ Gruppenseite 진영 측 Fazione del Gruppo - 小队阵营 - 小隊陣營 + 小队阵营 + 小隊陣營 Patrol Area @@ -496,8 +496,8 @@ Patrouillengebiet 정찰 구역 Area di Pattugliamento - 巡逻区域 - 巡邏區域 + 巡逻区域 + 巡邏區域 Toggle Surrender @@ -512,8 +512,8 @@ Attivatore Resa 捕虜としてトグル 항복 토글 - 切换投降 - 切換投降 + 切换投降 + 切換投降 Add/Remove FRIES @@ -522,8 +522,8 @@ Dodaj/usuń FRIES Aj./Enlève FRIES Aggiungi/Rimuovi FRIES - 增加/移除快速垂降进场撤离系统 - 增加/移除快速垂降進場撤離系統 + 增加/移除快速垂降进场撤离系统 + 增加/移除快速垂降進場撤離系統 %1 is not fastrope compatible. @@ -532,8 +532,8 @@ %1 nie jest kompatybilny ze zjazdem linowym. %1 n'est pas compatible. %1 non è compatibile con il fastrope. - %1无法使用快速绳降系统. - %1無法使用快速繩降系統. + %1无法使用快速绳降系统. + %1無法使用快速繩降系統. Unable to remove FRIES, ropes are deployed. @@ -542,8 +542,8 @@ Nie można usunąć FRIES, liny są wypuszczone. Pas en mesure d'enlever le FRIES, les cordes ne sont pas déployées. Impossibile rimuovere le FRIES, le corde sono ancora dispiegate - 无法移除快速绳降系统, 因为绳索已被释放出来. - 無法移除快速繩降系統, 因為繩索已被釋放出來. + 无法移除快速绳降系统, 因为绳索已被释放出来. + 無法移除快速繩降系統, 因為繩索已被釋放出來. Teleport Players @@ -555,8 +555,8 @@ Spieler teleportieren 플레이어 순간이동 Teletrasporta Giocatori - 传送玩家 - 傳送玩家 + 传送玩家 + 傳送玩家 Player @@ -568,8 +568,8 @@ Spieler 플레이어 Giocatore - 玩家 - 玩家 + 玩家 + 玩家 Teleport selected player to module position @@ -581,8 +581,8 @@ Teleportiert ausgewählten Spieler zur Position des Moduls 모듈의 위치로 플레이어 순간이동 Teletrasporta il giocatore selezionato nella posizione del modulo - 传送选定的玩家至模块位置 - 傳送選定的玩家至模塊位置 + 传送选定的玩家至模块位置 + 傳送選定的玩家至模塊位置 Teleport Group @@ -594,8 +594,8 @@ Gruppe teleportieren 그룹 순간이동 Teletrasporta Gruppo - 传送小队 - 傳送小隊 + 传送小队 + 傳送小隊 Teleports all units in group @@ -607,8 +607,8 @@ Teleportiert alle Einheiten der Gruppe 그룹내에 모든 인원을 순간이동 시킵니다 Teletrasporta tutte le unità del gruppo - 传送全部小队成员 - 傳送全部小隊成員 + 传送全部小队成员 + 傳送全部小隊成員 Toggle Unconscious @@ -623,8 +623,8 @@ Attivatore Incoscienza 気絶をトグル 기절 토글 - 切换昏迷 - 切換昏迷 + 切换昏迷 + 切換昏迷 Search Area @@ -636,8 +636,8 @@ Durchsuche Gebiet 지역 수색 Area di Ricerca - 搜索区域 - 搜索區域 + 搜索区域 + 搜索區域 Search Nearby Building @@ -649,8 +649,8 @@ Durchsuche nahegelegenes Gebäude 근처 건물 수색 Cerca Edifici nelle Vicinanze - 搜索附近的建筑物 - 搜索附近的建築物 + 搜索附近的建筑物 + 搜索附近的建築物 Assign Medic @@ -664,8 +664,8 @@ Assigner médecin 衛生兵に割り当て 의무병 임명 - 指定医疗兵 - 指定醫療兵 + 指定医疗兵 + 指定醫療兵 Assign Medical Vehicle @@ -679,8 +679,8 @@ Assigner véhicule médical 医療車両として割り当て 의무 차량 임명 - 指定医疗载具 - 指定醫療載具 + 指定医疗载具 + 指定醫療載具 Assign Medical Facility @@ -694,8 +694,8 @@ Assigner installation médicale 医療施設として割り当て 의무 시설 임명 - 指定医疗设施 - 指定醫療設施 + 指定医疗设施 + 指定醫療設施 Toggle Simulation @@ -704,8 +704,8 @@ 재현 토글 Bascule Simulation Attivatore Simulazione - 切换模拟 - 切換模擬 + 切换模拟 + 切換模擬 Add Spare Wheel @@ -719,8 +719,8 @@ Ajouter pièce de rechange 予備タイヤを追加 예비 바퀴 추가 - 增加备用轮胎 - 增加備用輪胎 + 增加备用轮胎 + 增加備用輪胎 Add Spare Track @@ -734,8 +734,8 @@ Ajouter une chenille de secours 車両へ予備タイヤを追加します。 예비 궤도 추가 - 增加备用履带 - 增加備用履帶 + 增加备用履带 + 增加備用履帶 Unit must be alive @@ -750,8 +750,8 @@ Usar somente em unidades vivas ユニットを生存させます 대상이 반드시 살아있어야 합니다 - 单位必须是活着 - 單位必須是活著 + 单位必须是活着 + 單位必須是活著 Unit must be infantry @@ -766,8 +766,8 @@ Usar somente em infantaria desmontada ユニットを歩兵にさせます 대상이 반드시 보병이어야 합니다 - 单位必须是步兵 - 單位必須是步兵 + 单位必须是步兵 + 單位必須是步兵 Unit must be a structure @@ -781,8 +781,8 @@ L'unité doit être une structure ユニットを構造物とします 대상이 반드시 건축물이어야만 합니다 - 单位必须是建筑 - 單位必須是建築 + 单位必须是建筑 + 單位必須是建築 Unit must be a vehicle @@ -796,8 +796,8 @@ L'unité doit être un véhicule ユニットを車両とします 대상이 반드시 차량이어야만 합니다 - 单位必须是载具 - 單位必須是載具 + 单位必须是载具 + 單位必須是載具 Unit must be a vehicle with cargo space @@ -811,8 +811,8 @@ L'unité doit être un véhicule avec de l'espace de cargaison ユニットをカーゴ スペースがある車両にします 대상이 반드시 화물을 실을 수 있는 차량이어야 합니다 - 单位必须是载具且有载货空间 - 單位必須是載具且有載貨空間 + 单位必须是载具且有载货空间 + 單位必須是載具且有載貨空間 Unit must have cargo space left @@ -826,8 +826,8 @@ L'unité doit avoir de l'espace libre en cargaison ユニットへカーゴ スペースを与えます 대상의 화물공간이 남아있어야합니다 - 单位必须有剩余的载货空间 - 單位必須有剩餘的載貨空間 + 单位必须有剩余的载货空间 + 單位必須有剩餘的載貨空間 Unit must not be captive @@ -842,8 +842,8 @@ L'unità non dev'essere un prigioniero ユニットを捕虜にさせません 대상이 포로면 안됩니다 - 单位不能被俘虏 - 單位不能被俘虜 + 单位不能被俘虏 + 單位不能被俘虜 Unit must belong to an appropriate side @@ -855,8 +855,8 @@ Einheit muss einer passenden Seite angehören 대상이 적절한 진영에 속해야만합니다 L'unità deve appartenere ad una fazione coerente - 单位必须属于一个合适的一边 - 單位必須屬於一個合適的一邊 + 单位必须属于一个合适的一边 + 單位必須屬於一個合適的一邊 Nearest building is too far away @@ -868,8 +868,8 @@ Nächstgelegenes Gebäude ist zu weit entfernt 가장가까운 건물이 너무 멈 L'edificio più vicino è troppo lontano - 最近的房子离太远了 - 最近的房子離太遠了 + 最近的房子离太远了 + 最近的房子離太遠了 Place on a unit @@ -884,8 +884,8 @@ Piazza su una unità ユニットの上に設置 대상에 배치하기 - 放置在一个单位上 - 放置在一個單位上 + 放置在一个单位上 + 放置在一個單位上 Requires an addon that is not present @@ -900,8 +900,8 @@ Richiede un addon che non è presente 要求されたアドオンは存在していません 현재 없는 에드온을 필요로 합니다 - 需要一个不存在的插件 - 需要一個不存在的插件 + 需要一个不存在的插件 + 需要一個不存在的插件 Add Objects to Curator @@ -915,8 +915,8 @@ Fügt Objekte zum Kurator hinzu キュレーターにオブジェクトを追加 큐레이터에 물체 추가 - 增加物件给任务策划人 - 增加物件給任務策劃人 + 增加物件给任务策划人 + 增加物件給任務策劃人 Adds any spawned object to all curators in the mission @@ -930,8 +930,8 @@ Fügt jedes gespawnte Objekt allen Kuratoren der Mission hinzu ミッション内で作成されたオブジェクトに全キュレーターを追加 미션 내 큐레이터에 모든 생성 물체 추가 - 在任务中生成物件给所有的任务策划人 - 在任務中生成物件給所有的任務策劃人 + 在任务中生成物件给所有的任务策划人 + 在任務中生成物件給所有的任務策劃人 Cargo: @@ -943,8 +943,8 @@ Ladung: 화물: Cargo: - 货物: - 貨物: + 货物: + 貨物: Task Position @@ -956,8 +956,8 @@ Position der Aufgabe 작업 위치 Posizione Incarico - 目标位置 - 目標位置 + 目标位置 + 目標位置 Select a position to perform the task at @@ -968,8 +968,8 @@ Wähle eine Position, an der die Aufgabe ausgeführt werden soll 작업을 할 위치를 선택하십시요 Seleziona una posizione per eseguire l'incarico - 选择要执行目标的位置 - 選擇要執行目標的位置 + 选择要执行目标的位置 + 選擇要執行目標的位置 Task Radius @@ -980,8 +980,8 @@ Radius der Aufgabe 작업 반경 Raggio Incarico - 目标半径 - 目標半徑 + 目标半径 + 目標半徑 Radius to perform the task within @@ -992,8 +992,8 @@ Radius, in dem die Aufgabe ausgeführt werden soll 다음 반경 내에서 작업 Raggio per eseguire un incarico - 设定目标范围半径 - 設定目標範圍半徑 + 设定目标范围半径 + 設定目標範圍半徑 Invalid radius entered @@ -1005,32 +1005,32 @@ Ungültiger Radius eingegeben 알 수 없는 반경 입력됨 Raggio Invalido Inserito - 错误的半径值 - 錯誤的半徑值 + 错误的半径值 + 錯誤的半徑值 Suppressive Fire Fuoco di Soppressione Tir de suppression 制圧射撃 - 火力压制 - 火力壓制 + 火力压制 + 火力壓制 Add full arsenal to object Ajouter arsenal complet à l'objet Aggiunge arsenale completo all'oggetto オブジェクトに完全なアーセナルを追加 - 增加完整的虚拟军火库到物件上 - 增加完整的虛擬軍火庫到物件上 + 增加完整的虚拟军火库到物件上 + 增加完整的虛擬軍火庫到物件上 Remove arsenal from object Retirer arsenal de l'objet Rimuove arsenale completo dall'oggetto オブジェクトからアーセナルを削除 - 移除物件上的虚拟军火库 - 移除物件上的虛擬軍火庫 + 移除物件上的虚拟军火库 + 移除物件上的虛擬軍火庫 From 59add40db6220f04be1735833922b780b8367441 Mon Sep 17 00:00:00 2001 From: Joko Date: Sat, 8 Jul 2017 16:52:25 +0200 Subject: [PATCH 167/198] Fix the issue that SFX variants are not global (#5335) * Fix the issue that SFX variants are not global what means that different players can get different pressure Cookoff sounds to prevent that i split up the sounds in 3 types and used a Weighted select to have the befor used values back * add todo for 1.74 * inherit in CfgSFX from 1 class --- addons/cookoff/CfgSFX.hpp | 19 ++++++++++++------- addons/cookoff/CfgVehicles.hpp | 11 +++++++++-- addons/cookoff/functions/fnc_cookOff.sqf | 3 ++- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/addons/cookoff/CfgSFX.hpp b/addons/cookoff/CfgSFX.hpp index 1b2d5408afe..0d670ead863 100644 --- a/addons/cookoff/CfgSFX.hpp +++ b/addons/cookoff/CfgSFX.hpp @@ -1,13 +1,18 @@ class CfgSFX { - class GVAR(CookOff) { - name = QGVAR(cookoff); - // Index 4 is percentage chance to play, in theory high pressure is way more likely - variant0[] = {PATHTOF(sounds\cookoff_low_pressure.ogg),6,1,400,0.1,0,0,0}; - variant1[] = {PATHTOF(sounds\cookoff_mid_pressure.ogg),6,1,400,0.25,0,0,0}; - variant2[] = {PATHTOF(sounds\cookoff_high_pressure.ogg),6,1,400,0.65,0,0,0}; - sounds[] = {"variant0","variant1","variant2"}; + class GVAR(CookOff_low) { + name = QGVAR(cookoff_low); + sound[] = {QPATHTOF(sounds\cookoff_low_pressure.ogg),6,1,400,1,0,0,0}; + sounds[] = {"sound"}; titles[] = {}; empty[] = {"",0,0,0,0,0,0,0}; }; + class GVAR(CookOff_mid): GVAR(CookOff_low) { + name = QGVAR(cookoff_mid); + sound[] = {QPATHTOF(sounds\cookoff_mid_pressure.ogg),6,1,400,1,0,0,0}; + }; + class GVAR(CookOff_high): GVAR(CookOff_low) { + name = QGVAR(cookoff_high); + sound[] = {QPATHTOF(sounds\cookoff_high_pressure.ogg),6,1,400,1,0,0,0}; + }; }; diff --git a/addons/cookoff/CfgVehicles.hpp b/addons/cookoff/CfgVehicles.hpp index 1155b9ba52c..7d82d97c12b 100644 --- a/addons/cookoff/CfgVehicles.hpp +++ b/addons/cookoff/CfgVehicles.hpp @@ -1,11 +1,18 @@ class CfgVehicles { class Sound; - class GVAR(Sound): Sound { + class GVAR(Sound_low): Sound { author = ECSTRING(common,ACETeam); _generalMacro = QGVAR(Sound); scope = 1; - sound = QGVAR(CookOff); + sound = QGVAR(CookOff_low); + }; + + class GVAR(Sound_mid): GVAR(Sound_low) { + sound = QGVAR(CookOff_mid); + }; + class GVAR(Sound_high): GVAR(Sound_low) { + sound = QGVAR(CookOff_high); }; class ThingX; diff --git a/addons/cookoff/functions/fnc_cookOff.sqf b/addons/cookoff/functions/fnc_cookOff.sqf index 99a901649f7..8154217e9dd 100644 --- a/addons/cookoff/functions/fnc_cookOff.sqf +++ b/addons/cookoff/functions/fnc_cookOff.sqf @@ -91,8 +91,9 @@ if (local _vehicle) then { } forEach _positions; if (isServer) then { + private _soundName = [QGVAR(Sound_low), 0.1, QGVAR(Sound_mid), 0.25, QGVAR(Sound_high), 0.65] call BIS_fnc_selectRandomWeighted; // TODO: replace with script Command in 1.74 // TODO - Players in the vehicle hear no sound (even after exiting the vehicle) - private _sound = createSoundSource [QGVAR(Sound), position _vehicle, [], 0]; + private _sound = createSoundSource [_soundName, position _vehicle, [], 0]; _effects pushBack _sound; }; From 6acd61a68e9dbb80ab53cde52fbc3817c0f02191 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 8 Jul 2017 13:23:06 -0500 Subject: [PATCH 168/198] Fix broken fonts for map gps display (#5337) EtelkaNarrowMediumPro broke with 1.72 hotfix --- addons/maptools/MapGpsUI.hpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/addons/maptools/MapGpsUI.hpp b/addons/maptools/MapGpsUI.hpp index c5b230f1634..cd0a4184653 100644 --- a/addons/maptools/MapGpsUI.hpp +++ b/addons/maptools/MapGpsUI.hpp @@ -40,7 +40,8 @@ class RscTitles { colorBackground[] = {0,0,0,0}; colorText[] = {0.247,0.251,0.157,1}; shadowColo[] = {0,0,0,0}; - font = "EtelkaNarrowMediumPro"; + // EtelkaNarrowMediumPro broke with 1.72 hotfix, can revert back to that font if fixed (following 3 uses of PuristaSemibold) + font = "PuristaSemibold"; shadow = 0; sizeEx = 0.042; }; @@ -55,7 +56,7 @@ class RscTitles { colorBackground[] = {0,0,0,0}; colorText[] = {0.247,0.251,0.157,1}; shadowColo[] = {0,0,0,0}; - font = "EtelkaNarrowMediumPro"; + font = "PuristaSemibold"; shadow = 0; sizeEx = 0.042; }; @@ -70,7 +71,7 @@ class RscTitles { colorBackground[] = {0,0,0,0}; colorText[] = {0.247,0.251,0.157,1}; shadowColo[] = {0,0,0,0}; - font = "EtelkaNarrowMediumPro"; + font = "PuristaSemibold"; shadow = 0; sizeEx = 0.1; }; From 01c17271bc73e9898c3a4c44560c65ec05e7b8ba Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 8 Jul 2017 13:23:28 -0500 Subject: [PATCH 169/198] Handle locked doors (#5345) --- addons/interaction/functions/fnc_openDoor.sqf | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/addons/interaction/functions/fnc_openDoor.sqf b/addons/interaction/functions/fnc_openDoor.sqf index 039974baa2f..7d94a5c4a15 100644 --- a/addons/interaction/functions/fnc_openDoor.sqf +++ b/addons/interaction/functions/fnc_openDoor.sqf @@ -19,20 +19,25 @@ private _info = [MACRO_DOOR_REACH_DISTANCE] call FUNC(getDoor); _info params ["_house", "_door"]; +TRACE_2("openDoor",_house,_door); if (isNull _house) exitWith {}; private _getDoorAnimations = [_house, _door] call FUNC(getDoorAnimations); -_getDoorAnimations params ["_animations", "_lockedVariable"]; +_getDoorAnimations params ["_animations"]; if (_animations isEqualTo []) exitWith {}; +private _lockedVariable = format ["bis_disabled_%1", _door]; + //Check if the door can be locked aka have locked variable, otherwhise cant lock it -if (!(isNil (_lockedVariable select 0))) then { - if ((_house animationPhase (_animations select 0) <= 0) && {_house getVariable [_lockedVariable select 0, 0] == 1}) exitWith { - _lockedVariable set [0, _house]; - _lockedVariable call BIS_fnc_LockedDoorOpen; +if ((_house animationPhase (_animations select 0) <= 0) && {_house getVariable [_lockedVariable, 0] == 1}) exitWith { + private _lockedAnimation = format ["%1_locked_source", _door]; + TRACE_3("locked",_house,_lockedAnimation,isClass (configfile >> "CfgVehicles" >> (typeOf _house) >> "AnimationSources" >> _lockedAnimation)); + if (isClass (configfile >> "CfgVehicles" >> (typeOf _house) >> "AnimationSources" >> _lockedAnimation)) then { + // from: a3\structures_f\scripts\fn_door.sqf: - wiggles the door handle (A3 buildings) + _house animateSource [_lockedAnimation, (1 - (_house animationSourcePhase _lockedAnimation))]; }; }; From ef90a069b7e2c196c5dfd7e16a64c963eeb59859 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 9 Jul 2017 16:15:14 -0500 Subject: [PATCH 170/198] Rallypoints- Don't modify setVar if already set (#5347) --- addons/respawn/functions/fnc_handleInitPostServer.sqf | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/addons/respawn/functions/fnc_handleInitPostServer.sqf b/addons/respawn/functions/fnc_handleInitPostServer.sqf index e8f4f1d110c..107fbe444b9 100644 --- a/addons/respawn/functions/fnc_handleInitPostServer.sqf +++ b/addons/respawn/functions/fnc_handleInitPostServer.sqf @@ -39,7 +39,9 @@ _leaderVarName = _groupUnit getVariable [QGVAR(leaderVarName), ""]; if (_leaderVarName != "") exitWith { // assign JIP unit as rallypoint leader if (str _unit == _leaderVarName) then { - _unit setVariable ["ACE_canMoveRallypoint", true, true]; + if (isNil {_unit getVariable "ACE_canMoveRallypoint"}) then { + _unit setVariable ["ACE_canMoveRallypoint", true, true]; + }; }; }; @@ -61,4 +63,6 @@ if (_leaderVarName == "") then { // prevent group from getting multiple leaders; use this to assign rallypoint moving ability on JIP _groupUnit setVariable [QGVAR(leaderVarName), _leaderVarName]; -_unit setVariable ["ACE_canMoveRallypoint", true, true]; +if (isNil {_unit getVariable "ACE_canMoveRallypoint"}) then { + _unit setVariable ["ACE_canMoveRallypoint", true, true]; +}; From 597f439654ee85d5dba8ad90cf7df785b6155730 Mon Sep 17 00:00:00 2001 From: Tim Beswick Date: Fri, 23 Jun 2017 17:32:48 +0100 Subject: [PATCH 171/198] Changed hellfire interaction check & added N variant (#5294) * Changed weapon check for interaction to generic ace_hellfire_enabled value * Added November hellfire variant * Cleanup * +1 --- addons/hellfire/CfgAmmo.hpp | 15 ++++++- addons/hellfire/CfgMagazines.hpp | 40 +++++++++++++++++++ addons/hellfire/CfgWeapons.hpp | 6 ++- .../hellfire/functions/fnc_setupVehicle.sqf | 2 +- addons/hellfire/stringtable.xml | 15 ------- 5 files changed, 60 insertions(+), 18 deletions(-) diff --git a/addons/hellfire/CfgAmmo.hpp b/addons/hellfire/CfgAmmo.hpp index b5df3994f2d..c8900459ad5 100644 --- a/addons/hellfire/CfgAmmo.hpp +++ b/addons/hellfire/CfgAmmo.hpp @@ -19,7 +19,7 @@ class CfgAmmo { laserLock = 0; manualControl = 0; maxSpeed = 450; - + thrustTime = 2.5; // motor burn 2-3 sec thrust = 250; timeToLive = 40; @@ -54,4 +54,17 @@ class CfgAmmo { attackProfiles[] = {"hellfire", "hellfire_hi", "hellfire_lo"}; }; }; + class ACE_Hellfire_AGM114N: ACE_Hellfire_AGM114K { + displayName = "AGM-114N"; + displayNameShort = "AGM-114N"; + description = "AGM-114N"; + descriptionShort = "AGM-114N"; + hit = 1100; + indirectHit = 200; + indirectHitRange = 10; + explosionEffects = "BombExplosion"; + class ace_missileguidance: ace_missileguidance { + enabled = 1; // Missile Guidance must be explicitly enabled + }; + }; }; diff --git a/addons/hellfire/CfgMagazines.hpp b/addons/hellfire/CfgMagazines.hpp index 6f636c2c878..79c5b5016ca 100644 --- a/addons/hellfire/CfgMagazines.hpp +++ b/addons/hellfire/CfgMagazines.hpp @@ -1,6 +1,7 @@ class CfgMagazines { class 12Rnd_PG_missiles; + // Kilo - tandem shaped charge HEAT (anti-tank) class 6Rnd_ACE_Hellfire_AGM114K: 12Rnd_PG_missiles { // Old style vehicle magazine count = 6; ammo = "ACE_Hellfire_AGM114K"; @@ -44,4 +45,43 @@ class CfgMagazines { model = "\A3\Weapons_F\DynamicLoadout\PylonPod_4x_Missile_LG_scalpel_F.p3d"; mirrorMissilesIndexes[] = {2, 1, 4, 3}; }; + + // November - Metal augmented charge (Thermobaric) (Enclosures, ships, urban targets, air defense units) + class 6Rnd_ACE_Hellfire_AGM114N: 6Rnd_ACE_Hellfire_AGM114K { // Old style vehicle magazine + count = 6; + ammo = "ACE_Hellfire_AGM114N"; + displayName = "AGM-114N [ACE]"; + displayNameShort = "AGM-114N"; + descriptionShort = "AGM-114N"; + }; + + // 1.70 pylon magazines: + class PylonMissile_1Rnd_ACE_Hellfire_AGM114N: PylonMissile_1Rnd_ACE_Hellfire_AGM114K { // Bare missle + displayName = "1x AGM-114N [ACE]"; + displayNameShort = "AGM-114N"; + descriptionShort = "AGM-114N"; + ammo = "ACE_Hellfire_AGM114N"; + pylonWeapon = QGVAR(launcher_N); + }; + class PylonRack_1Rnd_ACE_Hellfire_AGM114N: PylonRack_1Rnd_ACE_Hellfire_AGM114K { // 1x Launcher Support Rack + displayName = "1x AGM-114N [ACE]"; + displayNameShort = "AGM-114N"; + descriptionShort = "AGM-114N"; + ammo = "ACE_Hellfire_AGM114N"; + pylonWeapon = QGVAR(launcher_N); + }; + class PylonRack_3Rnd_ACE_Hellfire_AGM114N: PylonRack_3Rnd_ACE_Hellfire_AGM114K { // 3x Launcher Support Rack + displayName = "3x AGM-114N [ACE]"; + displayNameShort = "AGM-114N"; + descriptionShort = "AGM-114N"; + ammo = "ACE_Hellfire_AGM114N"; + pylonWeapon = QGVAR(launcher_N); + }; + class PylonRack_4Rnd_ACE_Hellfire_AGM114N: PylonRack_4Rnd_ACE_Hellfire_AGM114K { // 4x Launcher Support Rack + displayName = "4x AGM-114N [ACE]"; + displayNameShort = "AGM-114N"; + descriptionShort = "AGM-114N"; + ammo = "ACE_Hellfire_AGM114N"; + pylonWeapon = QGVAR(launcher_N); + }; }; diff --git a/addons/hellfire/CfgWeapons.hpp b/addons/hellfire/CfgWeapons.hpp index 1b9a76352e0..483f1dd0a70 100644 --- a/addons/hellfire/CfgWeapons.hpp +++ b/addons/hellfire/CfgWeapons.hpp @@ -1,7 +1,7 @@ class CfgWeapons { class missiles_SCALPEL; class GVAR(launcher): missiles_SCALPEL { - displayName = CSTRING(Hellfire); + displayName = "AGM-114K Hellfire II"; GVAR(enabled) = 1; // show attack profile / lock on hud EGVAR(laser,canSelect) = 1; // can ace_laser lock (allows switching laser code) canLock = 0; @@ -10,4 +10,8 @@ class CfgWeapons { lockingTargetSound[] = {"",0,1}; lockedTargetSound[] = {"",0,1}; }; + class GVAR(launcher_N): GVAR(launcher) { + displayName = "AGM-114N Hellfire II"; + magazines[] = {"6Rnd_ACE_Hellfire_AGM114N", "PylonMissile_1Rnd_ACE_Hellfire_AGM114N", "PylonRack_1Rnd_ACE_Hellfire_AGM114N", "PylonRack_3Rnd_ACE_Hellfire_AGM114N", "PylonRack_4Rnd_ACE_Hellfire_AGM114N"}; + }; }; diff --git a/addons/hellfire/functions/fnc_setupVehicle.sqf b/addons/hellfire/functions/fnc_setupVehicle.sqf index bec56d52a76..811e6c6f3f5 100644 --- a/addons/hellfire/functions/fnc_setupVehicle.sqf +++ b/addons/hellfire/functions/fnc_setupVehicle.sqf @@ -61,7 +61,7 @@ private _fnc_condition = { params ["_target", "_player", "_attackProfile"]; private _turretPath = if (ACE_player == (driver _target)) then {[-1]} else {ACE_player call CBA_fnc_turretPath}; - private _hasWeapon = ({QGVAR(launcher) == _x} count (_target weaponsTurret _turretPath)) > 0; + private _hasWeapon = ({(isNumber (configFile >> "CfgWeapons" >> _x >> QGVAR(enabled))) && {getNumber (configFile >> "CfgWeapons" >> _x >> QGVAR(enabled)) > 0}} count (_target weaponsTurret _turretPath)) > 0; (_hasWeapon) && {(_target getVariable [QEGVAR(missileguidance,attackProfile), "hellfire"]) != _attackProfile}; diff --git a/addons/hellfire/stringtable.xml b/addons/hellfire/stringtable.xml index d01acd49b46..8afbad9bd83 100644 --- a/addons/hellfire/stringtable.xml +++ b/addons/hellfire/stringtable.xml @@ -1,21 +1,6 @@ - - Hellfire - Hellfire - Hellfire - Hellfire - Hellfire - Hellfire - Hellfire - Hellfire - Hellfire - Hellfire - ヘルファイア - 地狱火 - 地獄火 - Set Hellfire mode Imposta modalità Hellfire From c28628aed2391ad9c40059ae49f02879767037a3 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 10 Jul 2017 10:17:44 -0500 Subject: [PATCH 172/198] Fix rearm turret events (#5307) --- addons/rearm/XEH_postInit.sqf | 2 ++ .../rearm/functions/fnc_rearmEntireVehicleSuccess.sqf | 10 ++++------ addons/rearm/functions/fnc_rearmSuccess.sqf | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/rearm/XEH_postInit.sqf b/addons/rearm/XEH_postInit.sqf index 50ab97cb073..59920be498a 100644 --- a/addons/rearm/XEH_postInit.sqf +++ b/addons/rearm/XEH_postInit.sqf @@ -19,7 +19,9 @@ if (isServer) then { }; [QGVAR(makeDummyEH), LINKFUNC(makeDummy)] call CBA_fnc_addEventHandler; +[QGVAR(rearmEntireVehicleSuccessEH), LINKFUNC(rearmEntireVehicleSuccess)] call CBA_fnc_addEventHandler; [QGVAR(rearmEntireVehicleSuccessLocalEH), LINKFUNC(rearmEntireVehicleSuccessLocal)] call CBA_fnc_addEventHandler; +[QGVAR(rearmSuccessEH), LINKFUNC(rearmSuccess)] call CBA_fnc_addEventHandler; [QGVAR(rearmSuccessLocalEH), LINKFUNC(rearmSuccessLocal)] call CBA_fnc_addEventHandler; diff --git a/addons/rearm/functions/fnc_rearmEntireVehicleSuccess.sqf b/addons/rearm/functions/fnc_rearmEntireVehicleSuccess.sqf index a2a23d73577..dda3ff9ca79 100644 --- a/addons/rearm/functions/fnc_rearmEntireVehicleSuccess.sqf +++ b/addons/rearm/functions/fnc_rearmEntireVehicleSuccess.sqf @@ -18,21 +18,19 @@ #include "script_component.hpp" params ["_args"]; -_args params [ - ["_truck", objNull, [objNull]], - ["_vehicle", objNull, [objNull]] -]; +_args params [["_truck", objNull, [objNull]], ["_vehicle", objNull, [objNull]]]; +TRACE_2("rearmEntireVehicleSuccess",_truck,_vehicle); if (isServer) then { { private _turretOwnerID = _vehicle turretOwner _x; if (_turretOwnerID == 0) then { - [QGVAR(rearmEntireVehicleSuccessLocalEH), [_truck, _vehicle, _x], _truck] call CBA_fnc_targetEvent; + [QGVAR(rearmEntireVehicleSuccessLocalEH), [_truck, _vehicle, _x], [_vehicle]] call CBA_fnc_targetEvent; } else { [QGVAR(rearmEntireVehicleSuccessLocalEH), [_truck, _vehicle, _x], _turretOwnerID] call CBA_fnc_ownerEvent; }; false } count REARM_TURRET_PATHS; } else { - [QGVAR(rearmEntireVehicleSuccessLocalEH), _this] call CBA_fnc_serverEvent; + [QGVAR(rearmEntireVehicleSuccessEH), _this] call CBA_fnc_serverEvent; }; diff --git a/addons/rearm/functions/fnc_rearmSuccess.sqf b/addons/rearm/functions/fnc_rearmSuccess.sqf index e49a236ea22..c6091170022 100644 --- a/addons/rearm/functions/fnc_rearmSuccess.sqf +++ b/addons/rearm/functions/fnc_rearmSuccess.sqf @@ -38,5 +38,5 @@ if (isServer) then { [QGVAR(rearmSuccessLocalEH), _this, _turretOwnerID] call CBA_fnc_ownerEvent; }; } else { - [QGVAR(rearmSuccessLocalEH), _this] call EFUNC(common,serverEvent); + [QGVAR(rearmSuccessEH), _this] call CBA_fnc_serverEvent; }; From ddd14d933ddc75f59aa10f6411797b6215cdcd46 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 10 Jul 2017 10:17:44 -0500 Subject: [PATCH 173/198] Fix rearm turret events (#5307) --- addons/rearm/XEH_postInit.sqf | 2 ++ .../rearm/functions/fnc_rearmEntireVehicleSuccess.sqf | 10 ++++------ addons/rearm/functions/fnc_rearmSuccess.sqf | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/rearm/XEH_postInit.sqf b/addons/rearm/XEH_postInit.sqf index 50ab97cb073..59920be498a 100644 --- a/addons/rearm/XEH_postInit.sqf +++ b/addons/rearm/XEH_postInit.sqf @@ -19,7 +19,9 @@ if (isServer) then { }; [QGVAR(makeDummyEH), LINKFUNC(makeDummy)] call CBA_fnc_addEventHandler; +[QGVAR(rearmEntireVehicleSuccessEH), LINKFUNC(rearmEntireVehicleSuccess)] call CBA_fnc_addEventHandler; [QGVAR(rearmEntireVehicleSuccessLocalEH), LINKFUNC(rearmEntireVehicleSuccessLocal)] call CBA_fnc_addEventHandler; +[QGVAR(rearmSuccessEH), LINKFUNC(rearmSuccess)] call CBA_fnc_addEventHandler; [QGVAR(rearmSuccessLocalEH), LINKFUNC(rearmSuccessLocal)] call CBA_fnc_addEventHandler; diff --git a/addons/rearm/functions/fnc_rearmEntireVehicleSuccess.sqf b/addons/rearm/functions/fnc_rearmEntireVehicleSuccess.sqf index a2a23d73577..dda3ff9ca79 100644 --- a/addons/rearm/functions/fnc_rearmEntireVehicleSuccess.sqf +++ b/addons/rearm/functions/fnc_rearmEntireVehicleSuccess.sqf @@ -18,21 +18,19 @@ #include "script_component.hpp" params ["_args"]; -_args params [ - ["_truck", objNull, [objNull]], - ["_vehicle", objNull, [objNull]] -]; +_args params [["_truck", objNull, [objNull]], ["_vehicle", objNull, [objNull]]]; +TRACE_2("rearmEntireVehicleSuccess",_truck,_vehicle); if (isServer) then { { private _turretOwnerID = _vehicle turretOwner _x; if (_turretOwnerID == 0) then { - [QGVAR(rearmEntireVehicleSuccessLocalEH), [_truck, _vehicle, _x], _truck] call CBA_fnc_targetEvent; + [QGVAR(rearmEntireVehicleSuccessLocalEH), [_truck, _vehicle, _x], [_vehicle]] call CBA_fnc_targetEvent; } else { [QGVAR(rearmEntireVehicleSuccessLocalEH), [_truck, _vehicle, _x], _turretOwnerID] call CBA_fnc_ownerEvent; }; false } count REARM_TURRET_PATHS; } else { - [QGVAR(rearmEntireVehicleSuccessLocalEH), _this] call CBA_fnc_serverEvent; + [QGVAR(rearmEntireVehicleSuccessEH), _this] call CBA_fnc_serverEvent; }; diff --git a/addons/rearm/functions/fnc_rearmSuccess.sqf b/addons/rearm/functions/fnc_rearmSuccess.sqf index e49a236ea22..c6091170022 100644 --- a/addons/rearm/functions/fnc_rearmSuccess.sqf +++ b/addons/rearm/functions/fnc_rearmSuccess.sqf @@ -38,5 +38,5 @@ if (isServer) then { [QGVAR(rearmSuccessLocalEH), _this, _turretOwnerID] call CBA_fnc_ownerEvent; }; } else { - [QGVAR(rearmSuccessLocalEH), _this] call EFUNC(common,serverEvent); + [QGVAR(rearmSuccessEH), _this] call CBA_fnc_serverEvent; }; From 980e3d255edcb68632e9d6883a5d9ae299d64e2f Mon Sep 17 00:00:00 2001 From: jonpas Date: Mon, 10 Jul 2017 17:19:50 +0200 Subject: [PATCH 174/198] Update homepage version numbers [ci skip] --- docs/_config.yml | 4 ++-- docs/_config_dev.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/_config.yml b/docs/_config.yml index 54ee5ad6d3b..8c73e551f6d 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -9,8 +9,8 @@ ace: version: major: 3 minor: 10 - patch: 1 - build: 21 + patch: 2 + build: 22 acex: githubUrl: https://github.com/acemod/ACEX diff --git a/docs/_config_dev.yml b/docs/_config_dev.yml index 83046e74c0e..30263a0285a 100644 --- a/docs/_config_dev.yml +++ b/docs/_config_dev.yml @@ -11,8 +11,8 @@ ace: version: major: 3 minor: 10 - patch: 1 - build: 21 + patch: 2 + build: 22 acex: githubUrl: https://github.com/acemod/ACEX From 6253ec091544e532fe2f66eb216110af46be6c97 Mon Sep 17 00:00:00 2001 From: jonpas Date: Mon, 10 Jul 2017 21:41:23 +0200 Subject: [PATCH 175/198] Prevent taking nozzle if already carried (#5352) --- addons/refuel/functions/fnc_canTakeNozzle.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/refuel/functions/fnc_canTakeNozzle.sqf b/addons/refuel/functions/fnc_canTakeNozzle.sqf index b7ed8f0cb14..d3852a668ce 100644 --- a/addons/refuel/functions/fnc_canTakeNozzle.sqf +++ b/addons/refuel/functions/fnc_canTakeNozzle.sqf @@ -23,6 +23,7 @@ if (isNull _unit || {!local _unit} || {!alive _target} || {!isNull (_unit getVariable [QGVAR(nozzle), objNull])} || + {typeOf _target == QGVAR(fuelNozzle) && {!isNull (attachedTo _target)}} || // Not carried by someone else {([_unit, _target] call EFUNC(interaction,getInteractionDistance)) > REFUEL_ACTION_DISTANCE}) exitWith {false}; !(_target getVariable [QGVAR(isConnected), false]) && {!(_unit getVariable [QGVAR(isRefueling), false])} From 84061cb593aee91c439dccbed1c8f5a0e95b052a Mon Sep 17 00:00:00 2001 From: jonpas Date: Mon, 10 Jul 2017 21:41:37 +0200 Subject: [PATCH 176/198] Add support for Tanoa and Malden Fuel Pumps, Flexible Tanks and Fuel Canister (#5353) * Add support for Tanoan fuel pumps, Flexible Tanks and Fuel Canister (as jerry can) * Add to Land_FuelStation_01_pump_malevil_F * Add Malden/Jets to required addons * REQUIRED_VERSION 1.72 --- addons/main/config.cpp | 13 ++++++++++ addons/main/script_mod.hpp | 2 +- addons/refuel/CfgEventHandlers.hpp | 11 +++++++-- addons/refuel/CfgVehicles.hpp | 39 ++++++++++++++++++++++++++---- addons/refuel/XEH_postInit.sqf | 11 +++++++++ addons/refuel/script_component.hpp | 3 ++- 6 files changed, 70 insertions(+), 9 deletions(-) diff --git a/addons/main/config.cpp b/addons/main/config.cpp index 5d485b6fd9e..cf387471480 100644 --- a/addons/main/config.cpp +++ b/addons/main/config.cpp @@ -7,6 +7,19 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = { + "A3_Data_F_Loadorder", + "A3_Data_F_Curator_Loadorder", + "A3_Data_F_Kart_Loadorder", + "A3_Data_F_Bootcamp_Loadorder", + "A3_Data_F_Heli_Loadorder", + "A3_Data_F_Mark_Loadorder", + "A3_Data_F_Exp_A_Loadorder", + "A3_Data_F_Exp_B_Loadorder", + "A3_Data_F_Exp_Loadorder", + "A3_Data_F_Jets_Loadorder", + "A3_Data_F_Argo_Loadorder", + "A3_Data_F_Patrol_Loadorder", + // Vanilla "a3_3den", "a3_3den_language", diff --git a/addons/main/script_mod.hpp b/addons/main/script_mod.hpp index a21034f2773..7b2f6a92cdf 100644 --- a/addons/main/script_mod.hpp +++ b/addons/main/script_mod.hpp @@ -9,7 +9,7 @@ #define VERSION_AR MAJOR,MINOR,PATCHLVL,BUILD // MINIMAL required version for the Mod. Components can specify others.. -#define REQUIRED_VERSION 1.70 +#define REQUIRED_VERSION 1.72 #define REQUIRED_CBA_VERSION {3,3,1} #ifdef COMPONENT_BEAUTIFIED diff --git a/addons/refuel/CfgEventHandlers.hpp b/addons/refuel/CfgEventHandlers.hpp index c6f26efe1a0..20f482c8ca8 100644 --- a/addons/refuel/CfgEventHandlers.hpp +++ b/addons/refuel/CfgEventHandlers.hpp @@ -1,4 +1,3 @@ - class Extended_PreStart_EventHandlers { class ADDON { init = QUOTE(call COMPILE_FILE(XEH_preStart)); @@ -31,4 +30,12 @@ class Extended_Killed_EventHandlers { killed = QUOTE(_this call FUNC(handleKilled)); }; }; -}; \ No newline at end of file +}; + +class Extended_InitPost_EventHandlers { + class Land_CanisterFuel_F { + class ADDON { + init = QUOTE(_this call DFUNC(makeJerryCan)); + }; + }; +}; diff --git a/addons/refuel/CfgVehicles.hpp b/addons/refuel/CfgVehicles.hpp index 3a28762b794..de361a68168 100644 --- a/addons/refuel/CfgVehicles.hpp +++ b/addons/refuel/CfgVehicles.hpp @@ -146,9 +146,7 @@ class CfgVehicles { class NonStrategic: Building {}; class HouseBase: NonStrategic {}; class House: HouseBase {}; - class House_F: House {}; - - class House_Small_F: House_F { + class House_F: House { class ACE_Actions { class ACE_MainActions { displayName = ECSTRING(interaction,MainAction); @@ -158,6 +156,7 @@ class CfgVehicles { }; }; }; + class House_Small_F: House_F {}; class AllVehicles: All { GVAR(flowRate) = 1; @@ -480,7 +479,7 @@ class CfgVehicles { GVAR(fuelCargo) = 10000; }; - + // Vanilla fuel objects class StorageBladder_base_F: NonStrategic { class ACE_Actions { class ACE_MainActions { @@ -496,12 +495,29 @@ class CfgVehicles { class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {}; }; - MACRO_REFUEL_ACTIONS transportFuel = 0; //60k + MACRO_REFUEL_ACTIONS GVAR(hooks)[] = {{-3.35,2.45,0.17}}; GVAR(fuelCargo) = 60000; }; + class FlexibleTank_base_F: ThingX { + class ACE_Actions { + class ACE_MainActions { + displayName = ECSTRING(interaction,MainAction); + position = "[0, 0, 0.5]"; + distance = 4; + condition = "true"; + }; + }; + }; + class Land_FlexibleTank_01_F: FlexibleTank_base_F { + transportFuel = 0; //300 + MACRO_REFUEL_ACTIONS + GVAR(hooks)[] = {{0, 0, 0.5}}; + GVAR(fuelCargo) = 300; + }; + // Vanilla buildings class Land_Fuelstation_Feed_F: House_Small_F { transportFuel = 0; //50k @@ -517,6 +533,19 @@ class CfgVehicles { GVAR(fuelCargo) = REFUEL_INFINITE_FUEL; }; + class Land_FuelStation_01_pump_F: House_F { + transportFuel = 0; //50k + MACRO_REFUEL_ACTIONS + GVAR(hooks)[] = {{0, 0.4, -0.5}, {0, -0.4, -0.5}}; + GVAR(fuelCargo) = REFUEL_INFINITE_FUEL; + }; + class Land_FuelStation_01_pump_malevil_F: House_F { + transportFuel = 0; //50k + MACRO_REFUEL_ACTIONS + GVAR(hooks)[] = {{0, 0.4, -0.5}, {0, -0.4, -0.5}}; + GVAR(fuelCargo) = REFUEL_INFINITE_FUEL; + }; + // Helper object for non-AllVehicles objects class GVAR(helper): Helicopter_Base_F { scope = 1; diff --git a/addons/refuel/XEH_postInit.sqf b/addons/refuel/XEH_postInit.sqf index 3f20e5d30d7..5d56e388e92 100644 --- a/addons/refuel/XEH_postInit.sqf +++ b/addons/refuel/XEH_postInit.sqf @@ -37,3 +37,14 @@ private _fuelTrucks = configProperties [configFile >> "CfgVehicles", "(isClass _ }; } forEach _fuelTrucks; #endif + +#ifdef DRAW_HOOKS_POS +addMissionEventHandler ["Draw3D", { + private _target = cursorObject; + private _cfgPos = getArray (configFile >> "CfgVehicles" >> typeOf _target >> QGVAR(hooks)); + private _dynPos = _target getVariable [QGVAR(dev_hooks), []]; + { + drawIcon3D ["\a3\ui_f\data\gui\cfg\hints\icon_text\group_1_ca.paa", [1,1,1,1], _target modelToWorldVisual _x, 1, 1, 0, format ["Hook %1", _forEachIndex]]; + } forEach ([_dynPos, _cfgPos] select (_dynPos isEqualTo [])); +}]; +#endif diff --git a/addons/refuel/script_component.hpp b/addons/refuel/script_component.hpp index 3f85277a998..a4d6f6df317 100644 --- a/addons/refuel/script_component.hpp +++ b/addons/refuel/script_component.hpp @@ -2,10 +2,11 @@ #define COMPONENT_BEAUTIFIED Refuel #include "\z\ace\addons\main\script_mod.hpp" +// #define FAST_PROGRESSBARS +// #define DRAW_HOOKS_POS // #define DEBUG_MODE_FULL // #define DISABLE_COMPILE_CACHE // #define ENABLE_PERFORMANCE_COUNTERS -// #define FAST_PROGRESSBARS #ifdef DEBUG_ENABLED_REFUEL #define DEBUG_MODE_FULL From 13d7de9c92216eec9cbf5be2a3cd8e504a66375e Mon Sep 17 00:00:00 2001 From: jonpas Date: Mon, 10 Jul 2017 21:41:23 +0200 Subject: [PATCH 177/198] Prevent taking nozzle if already carried (#5352) --- addons/refuel/functions/fnc_canTakeNozzle.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/refuel/functions/fnc_canTakeNozzle.sqf b/addons/refuel/functions/fnc_canTakeNozzle.sqf index b7ed8f0cb14..d3852a668ce 100644 --- a/addons/refuel/functions/fnc_canTakeNozzle.sqf +++ b/addons/refuel/functions/fnc_canTakeNozzle.sqf @@ -23,6 +23,7 @@ if (isNull _unit || {!local _unit} || {!alive _target} || {!isNull (_unit getVariable [QGVAR(nozzle), objNull])} || + {typeOf _target == QGVAR(fuelNozzle) && {!isNull (attachedTo _target)}} || // Not carried by someone else {([_unit, _target] call EFUNC(interaction,getInteractionDistance)) > REFUEL_ACTION_DISTANCE}) exitWith {false}; !(_target getVariable [QGVAR(isConnected), false]) && {!(_unit getVariable [QGVAR(isRefueling), false])} From 8f494e08ae3e99cf5ea2c8c1c63080fe86fb1994 Mon Sep 17 00:00:00 2001 From: jonpas Date: Mon, 10 Jul 2017 21:41:37 +0200 Subject: [PATCH 178/198] Add support for Tanoa and Malden Fuel Pumps, Flexible Tanks and Fuel Canister (#5353) * Add support for Tanoan fuel pumps, Flexible Tanks and Fuel Canister (as jerry can) * Add to Land_FuelStation_01_pump_malevil_F * Add Malden/Jets to required addons * REQUIRED_VERSION 1.72 --- addons/main/config.cpp | 13 ++++++++++ addons/main/script_mod.hpp | 2 +- addons/refuel/CfgEventHandlers.hpp | 11 +++++++-- addons/refuel/CfgVehicles.hpp | 39 ++++++++++++++++++++++++++---- addons/refuel/XEH_postInit.sqf | 11 +++++++++ addons/refuel/script_component.hpp | 3 ++- 6 files changed, 70 insertions(+), 9 deletions(-) diff --git a/addons/main/config.cpp b/addons/main/config.cpp index 5d485b6fd9e..cf387471480 100644 --- a/addons/main/config.cpp +++ b/addons/main/config.cpp @@ -7,6 +7,19 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = { + "A3_Data_F_Loadorder", + "A3_Data_F_Curator_Loadorder", + "A3_Data_F_Kart_Loadorder", + "A3_Data_F_Bootcamp_Loadorder", + "A3_Data_F_Heli_Loadorder", + "A3_Data_F_Mark_Loadorder", + "A3_Data_F_Exp_A_Loadorder", + "A3_Data_F_Exp_B_Loadorder", + "A3_Data_F_Exp_Loadorder", + "A3_Data_F_Jets_Loadorder", + "A3_Data_F_Argo_Loadorder", + "A3_Data_F_Patrol_Loadorder", + // Vanilla "a3_3den", "a3_3den_language", diff --git a/addons/main/script_mod.hpp b/addons/main/script_mod.hpp index a21034f2773..7b2f6a92cdf 100644 --- a/addons/main/script_mod.hpp +++ b/addons/main/script_mod.hpp @@ -9,7 +9,7 @@ #define VERSION_AR MAJOR,MINOR,PATCHLVL,BUILD // MINIMAL required version for the Mod. Components can specify others.. -#define REQUIRED_VERSION 1.70 +#define REQUIRED_VERSION 1.72 #define REQUIRED_CBA_VERSION {3,3,1} #ifdef COMPONENT_BEAUTIFIED diff --git a/addons/refuel/CfgEventHandlers.hpp b/addons/refuel/CfgEventHandlers.hpp index c6f26efe1a0..20f482c8ca8 100644 --- a/addons/refuel/CfgEventHandlers.hpp +++ b/addons/refuel/CfgEventHandlers.hpp @@ -1,4 +1,3 @@ - class Extended_PreStart_EventHandlers { class ADDON { init = QUOTE(call COMPILE_FILE(XEH_preStart)); @@ -31,4 +30,12 @@ class Extended_Killed_EventHandlers { killed = QUOTE(_this call FUNC(handleKilled)); }; }; -}; \ No newline at end of file +}; + +class Extended_InitPost_EventHandlers { + class Land_CanisterFuel_F { + class ADDON { + init = QUOTE(_this call DFUNC(makeJerryCan)); + }; + }; +}; diff --git a/addons/refuel/CfgVehicles.hpp b/addons/refuel/CfgVehicles.hpp index 3a28762b794..de361a68168 100644 --- a/addons/refuel/CfgVehicles.hpp +++ b/addons/refuel/CfgVehicles.hpp @@ -146,9 +146,7 @@ class CfgVehicles { class NonStrategic: Building {}; class HouseBase: NonStrategic {}; class House: HouseBase {}; - class House_F: House {}; - - class House_Small_F: House_F { + class House_F: House { class ACE_Actions { class ACE_MainActions { displayName = ECSTRING(interaction,MainAction); @@ -158,6 +156,7 @@ class CfgVehicles { }; }; }; + class House_Small_F: House_F {}; class AllVehicles: All { GVAR(flowRate) = 1; @@ -480,7 +479,7 @@ class CfgVehicles { GVAR(fuelCargo) = 10000; }; - + // Vanilla fuel objects class StorageBladder_base_F: NonStrategic { class ACE_Actions { class ACE_MainActions { @@ -496,12 +495,29 @@ class CfgVehicles { class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {}; }; - MACRO_REFUEL_ACTIONS transportFuel = 0; //60k + MACRO_REFUEL_ACTIONS GVAR(hooks)[] = {{-3.35,2.45,0.17}}; GVAR(fuelCargo) = 60000; }; + class FlexibleTank_base_F: ThingX { + class ACE_Actions { + class ACE_MainActions { + displayName = ECSTRING(interaction,MainAction); + position = "[0, 0, 0.5]"; + distance = 4; + condition = "true"; + }; + }; + }; + class Land_FlexibleTank_01_F: FlexibleTank_base_F { + transportFuel = 0; //300 + MACRO_REFUEL_ACTIONS + GVAR(hooks)[] = {{0, 0, 0.5}}; + GVAR(fuelCargo) = 300; + }; + // Vanilla buildings class Land_Fuelstation_Feed_F: House_Small_F { transportFuel = 0; //50k @@ -517,6 +533,19 @@ class CfgVehicles { GVAR(fuelCargo) = REFUEL_INFINITE_FUEL; }; + class Land_FuelStation_01_pump_F: House_F { + transportFuel = 0; //50k + MACRO_REFUEL_ACTIONS + GVAR(hooks)[] = {{0, 0.4, -0.5}, {0, -0.4, -0.5}}; + GVAR(fuelCargo) = REFUEL_INFINITE_FUEL; + }; + class Land_FuelStation_01_pump_malevil_F: House_F { + transportFuel = 0; //50k + MACRO_REFUEL_ACTIONS + GVAR(hooks)[] = {{0, 0.4, -0.5}, {0, -0.4, -0.5}}; + GVAR(fuelCargo) = REFUEL_INFINITE_FUEL; + }; + // Helper object for non-AllVehicles objects class GVAR(helper): Helicopter_Base_F { scope = 1; diff --git a/addons/refuel/XEH_postInit.sqf b/addons/refuel/XEH_postInit.sqf index 3f20e5d30d7..5d56e388e92 100644 --- a/addons/refuel/XEH_postInit.sqf +++ b/addons/refuel/XEH_postInit.sqf @@ -37,3 +37,14 @@ private _fuelTrucks = configProperties [configFile >> "CfgVehicles", "(isClass _ }; } forEach _fuelTrucks; #endif + +#ifdef DRAW_HOOKS_POS +addMissionEventHandler ["Draw3D", { + private _target = cursorObject; + private _cfgPos = getArray (configFile >> "CfgVehicles" >> typeOf _target >> QGVAR(hooks)); + private _dynPos = _target getVariable [QGVAR(dev_hooks), []]; + { + drawIcon3D ["\a3\ui_f\data\gui\cfg\hints\icon_text\group_1_ca.paa", [1,1,1,1], _target modelToWorldVisual _x, 1, 1, 0, format ["Hook %1", _forEachIndex]]; + } forEach ([_dynPos, _cfgPos] select (_dynPos isEqualTo [])); +}]; +#endif diff --git a/addons/refuel/script_component.hpp b/addons/refuel/script_component.hpp index 3f85277a998..a4d6f6df317 100644 --- a/addons/refuel/script_component.hpp +++ b/addons/refuel/script_component.hpp @@ -2,10 +2,11 @@ #define COMPONENT_BEAUTIFIED Refuel #include "\z\ace\addons\main\script_mod.hpp" +// #define FAST_PROGRESSBARS +// #define DRAW_HOOKS_POS // #define DEBUG_MODE_FULL // #define DISABLE_COMPILE_CACHE // #define ENABLE_PERFORMANCE_COUNTERS -// #define FAST_PROGRESSBARS #ifdef DEBUG_ENABLED_REFUEL #define DEBUG_MODE_FULL From dd3a66a643e9451a282bd5dfa438e506e392f3a9 Mon Sep 17 00:00:00 2001 From: Dystopian Date: Mon, 10 Jul 2017 22:44:02 +0300 Subject: [PATCH 179/198] Fix adv. throw key handling when reloading (#5336) * Fix throw key handling when reloading * Consider UGL reload to ace_common_isReloading var * Fix if space, change private var assign * Shorten UGL check --- addons/advanced_throwing/XEH_postInit.sqf | 1 + addons/advanced_throwing/functions/fnc_canPrepare.sqf | 1 - addons/common/XEH_postInit.sqf | 4 +++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/advanced_throwing/XEH_postInit.sqf b/addons/advanced_throwing/XEH_postInit.sqf index 0f5cb6983ed..96cb92801e8 100644 --- a/addons/advanced_throwing/XEH_postInit.sqf +++ b/addons/advanced_throwing/XEH_postInit.sqf @@ -21,6 +21,7 @@ GVAR(ammoMagLookup) = call CBA_fnc_createNamespace; ["ACE3 Weapons", QGVAR(prepare), localize LSTRING(Prepare), { // Condition if (!([ACE_player] call FUNC(canPrepare))) exitWith {false}; + if (EGVAR(common,isReloading)) exitWith {true}; // Statement [ACE_player] call FUNC(prepare); diff --git a/addons/advanced_throwing/functions/fnc_canPrepare.sqf b/addons/advanced_throwing/functions/fnc_canPrepare.sqf index 2e9547fd353..92569937889 100644 --- a/addons/advanced_throwing/functions/fnc_canPrepare.sqf +++ b/addons/advanced_throwing/functions/fnc_canPrepare.sqf @@ -32,6 +32,5 @@ GVAR(enabled) && #endif {!(call EFUNC(common,isFeatureCameraActive))} && -{!EGVAR(common,isReloading)} && {[_unit, objNull, ["isNotInside", "isNotSitting"/*, "isNotOnLadder"*/]] call EFUNC(common,canInteractWith)} && // Ladder needs positioning fixes on throw {_unit call CBA_fnc_canUseWeapon} // Disable in non-FFV seats due to surface detection issues diff --git a/addons/common/XEH_postInit.sqf b/addons/common/XEH_postInit.sqf index ebfbd31ef44..51baec47f94 100644 --- a/addons/common/XEH_postInit.sqf +++ b/addons/common/XEH_postInit.sqf @@ -373,7 +373,9 @@ GVAR(isReloading) = false; private _weapon = currentWeapon ACE_player; if (_weapon != "") then { - private _gesture = getText (configfile >> "CfgWeapons" >> _weapon >> "reloadAction"); + private _muzzle = currentMuzzle ACE_player; + private _wpnConfig = configFile >> "CfgWeapons" >> _weapon; + private _gesture = getText ([_wpnConfig >> _muzzle, _wpnConfig] select (_weapon isEqualTo _muzzle) >> "reloadAction"); if (_gesture == "") exitWith {}; //Ignore weapons with no reload gesture (binoculars) private _isLauncher = _weapon isKindOf ["Launcher", configFile >> "CfgWeapons"]; private _config = ["CfgGesturesMale", "CfgMovesMaleSdr"] select _isLauncher; From fdaa5891f684a8add68a760bb0996c14305aa08f Mon Sep 17 00:00:00 2001 From: Dystopian Date: Mon, 10 Jul 2017 22:44:02 +0300 Subject: [PATCH 180/198] Fix adv. throw key handling when reloading (#5336) * Fix throw key handling when reloading * Consider UGL reload to ace_common_isReloading var * Fix if space, change private var assign * Shorten UGL check --- addons/advanced_throwing/XEH_postInit.sqf | 1 + addons/advanced_throwing/functions/fnc_canPrepare.sqf | 1 - addons/common/XEH_postInit.sqf | 4 +++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/advanced_throwing/XEH_postInit.sqf b/addons/advanced_throwing/XEH_postInit.sqf index 0f5cb6983ed..96cb92801e8 100644 --- a/addons/advanced_throwing/XEH_postInit.sqf +++ b/addons/advanced_throwing/XEH_postInit.sqf @@ -21,6 +21,7 @@ GVAR(ammoMagLookup) = call CBA_fnc_createNamespace; ["ACE3 Weapons", QGVAR(prepare), localize LSTRING(Prepare), { // Condition if (!([ACE_player] call FUNC(canPrepare))) exitWith {false}; + if (EGVAR(common,isReloading)) exitWith {true}; // Statement [ACE_player] call FUNC(prepare); diff --git a/addons/advanced_throwing/functions/fnc_canPrepare.sqf b/addons/advanced_throwing/functions/fnc_canPrepare.sqf index 2e9547fd353..92569937889 100644 --- a/addons/advanced_throwing/functions/fnc_canPrepare.sqf +++ b/addons/advanced_throwing/functions/fnc_canPrepare.sqf @@ -32,6 +32,5 @@ GVAR(enabled) && #endif {!(call EFUNC(common,isFeatureCameraActive))} && -{!EGVAR(common,isReloading)} && {[_unit, objNull, ["isNotInside", "isNotSitting"/*, "isNotOnLadder"*/]] call EFUNC(common,canInteractWith)} && // Ladder needs positioning fixes on throw {_unit call CBA_fnc_canUseWeapon} // Disable in non-FFV seats due to surface detection issues diff --git a/addons/common/XEH_postInit.sqf b/addons/common/XEH_postInit.sqf index ebfbd31ef44..51baec47f94 100644 --- a/addons/common/XEH_postInit.sqf +++ b/addons/common/XEH_postInit.sqf @@ -373,7 +373,9 @@ GVAR(isReloading) = false; private _weapon = currentWeapon ACE_player; if (_weapon != "") then { - private _gesture = getText (configfile >> "CfgWeapons" >> _weapon >> "reloadAction"); + private _muzzle = currentMuzzle ACE_player; + private _wpnConfig = configFile >> "CfgWeapons" >> _weapon; + private _gesture = getText ([_wpnConfig >> _muzzle, _wpnConfig] select (_weapon isEqualTo _muzzle) >> "reloadAction"); if (_gesture == "") exitWith {}; //Ignore weapons with no reload gesture (binoculars) private _isLauncher = _weapon isKindOf ["Launcher", configFile >> "CfgWeapons"]; private _config = ["CfgGesturesMale", "CfgMovesMaleSdr"] select _isLauncher; From 23cf08c237f805a72072bb6c931efeb48818893e Mon Sep 17 00:00:00 2001 From: jonpas Date: Tue, 11 Jul 2017 00:21:09 +0200 Subject: [PATCH 181/198] Prepare release 3.10.2 --- README.md | 2 +- addons/main/script_version.hpp | 4 ++-- docs/README_DE.md | 2 +- docs/README_PL.md | 2 +- mod.cpp | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 2c0c22de37d..747d01bb428 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

    - ACE3 Version + ACE3 Version ACE3 Issues diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index eb701f7f48e..d10bb0eaf4c 100644 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -1,4 +1,4 @@ #define MAJOR 3 #define MINOR 10 -#define PATCHLVL 1 -#define BUILD 21 +#define PATCHLVL 2 +#define BUILD 22 diff --git a/docs/README_DE.md b/docs/README_DE.md index b18759b3cd3..966cfcaca66 100644 --- a/docs/README_DE.md +++ b/docs/README_DE.md @@ -4,7 +4,7 @@

    - ACE3 Version + ACE3 Version ACE3 Fehlermeldungen diff --git a/docs/README_PL.md b/docs/README_PL.md index 248627a6f14..e23c373e11c 100644 --- a/docs/README_PL.md +++ b/docs/README_PL.md @@ -3,7 +3,7 @@

    - ACE3 Wersja + ACE3 Wersja ACE3 Zagadnienia diff --git a/mod.cpp b/mod.cpp index c877d06dd0a..15484d2db41 100644 --- a/mod.cpp +++ b/mod.cpp @@ -1,8 +1,8 @@ -name = "Advanced Combat Environment 3.10.1"; +name = "Advanced Combat Environment 3.10.2"; picture = "logo_ace3_ca.paa"; actionName = "GitHub"; action = "https://github.com/acemod/ACE3"; -description = "ACE3 - Version 3.10.1"; +description = "ACE3 - Version 3.10.2"; logo = "logo_ace3_ca.paa"; logoOver = "logo_ace3_ca.paa"; tooltip = "ACE3"; From 2c97865e024f2ee6abfc2d7156029b7daf2d72d3 Mon Sep 17 00:00:00 2001 From: Wakbub Date: Tue, 11 Jul 2017 19:50:35 +0200 Subject: [PATCH 182/198] Correct typos ("enginer" to "engineer") (#5355) * Update ACE_Settings.hpp Correction of typos. * Update CfgVehicles.hpp Correction of typos. * Update stringtable.xml Correction of typos. * Update AUTHORS.txt In accordance with your process of merging pull requests. --- AUTHORS.txt | 1 + addons/repair/ACE_Settings.hpp | 8 ++++---- addons/repair/CfgVehicles.hpp | 8 ++++---- addons/repair/stringtable.xml | 8 ++++---- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/AUTHORS.txt b/AUTHORS.txt index a23275317f8..193870c711d 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -40,6 +40,7 @@ Aleksey EpMAK Yermakov Alganthe Andrea "AtixNeon" Verano Anthariel +Anton Arkhir Asgar Serran BaerMitUmlaut diff --git a/addons/repair/ACE_Settings.hpp b/addons/repair/ACE_Settings.hpp index 0c05bc84597..5abb46f6107 100644 --- a/addons/repair/ACE_Settings.hpp +++ b/addons/repair/ACE_Settings.hpp @@ -8,16 +8,16 @@ class ACE_Settings { category = ECSTRING(OptionsMenu,CategoryLogistics); }; class GVAR(engineerSetting_repair) { - displayName = CSTRING(enginerSetting_Repair_name); - description = CSTRING(enginerSetting_Repair_description); + displayName = CSTRING(engineerSetting_Repair_name); + description = CSTRING(engineerSetting_Repair_description); typeName = "SCALAR"; value = 1; values[] = {CSTRING(engineerSetting_anyone), CSTRING(engineerSetting_EngineerOnly), CSTRING(engineerSetting_AdvancedOnly)}; category = ECSTRING(OptionsMenu,CategoryLogistics); }; class GVAR(engineerSetting_wheel) { - displayName = CSTRING(enginerSetting_Wheel_name); - description = CSTRING(enginerSetting_Wheel_description); + displayName = CSTRING(engineerSetting_Wheel_name); + description = CSTRING(engineerSetting_Wheel_description); typeName = "SCALAR"; value = 0; values[] = {CSTRING(engineerSetting_anyone), CSTRING(engineerSetting_EngineerOnly), CSTRING(engineerSetting_AdvancedOnly)}; diff --git a/addons/repair/CfgVehicles.hpp b/addons/repair/CfgVehicles.hpp index e06c18115bd..832312b2c35 100644 --- a/addons/repair/CfgVehicles.hpp +++ b/addons/repair/CfgVehicles.hpp @@ -32,8 +32,8 @@ class CfgVehicles { author = ECSTRING(Common,ACETeam); class Arguments { class engineerSetting_Repair { - displayName = CSTRING(enginerSetting_Repair_name); - description = CSTRING(enginerSetting_Repair_description); + displayName = CSTRING(engineerSetting_Repair_name); + description = CSTRING(engineerSetting_Repair_description); typeName = "NUMBER"; class values { class anyone { name = CSTRING(engineerSetting_anyone); value = 0; }; @@ -42,8 +42,8 @@ class CfgVehicles { }; }; class engineerSetting_Wheel { - displayName = CSTRING(enginerSetting_Wheel_name); - description = CSTRING(enginerSetting_Wheel_description); + displayName = CSTRING(engineerSetting_Wheel_name); + description = CSTRING(engineerSetting_Wheel_description); typeName = "NUMBER"; class values { class anyone { name = CSTRING(engineerSetting_anyone); value = 0; default = 1; }; diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index 7ab77887789..530c76d9887 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -1103,7 +1103,7 @@ 只有维修专精兵 只有維修專精兵 - + Allow Wheel Erlaube Radwechsel Wymiana kół @@ -1118,7 +1118,7 @@ 允许轮胎 允許輪胎 - + Who can remove and replace wheels? Wer kann Radwechsel durchführern? Kto może zdejmować i zmieniać koła? @@ -1133,7 +1133,7 @@ 谁可维修轮胎? 誰可維修輪胎? - + Allow Repair Erlaube Reperatur Możliwość naprawy @@ -1148,7 +1148,7 @@ 允许维修 允許維修 - + Who can perform repair actions? Wer kann eine Reperatur durchführen? Kto może wykonywać czynności związane z naprawą pojazdów? From ac1c0cc850cda28d311675354b74cd94159bee44 Mon Sep 17 00:00:00 2001 From: Jo David Date: Fri, 14 Jul 2017 18:14:10 +0200 Subject: [PATCH 183/198] add new acerep (#5356) * add new acerep * fix typos * change date --- docs/_posts/2017-07-14-ace3-version3100.md | 77 +++++++++++++++++++++ docs/img/news/170714_jet_rearm.jpg | Bin 0 -> 283641 bytes docs/img/news/170714_logo-intercept.png | Bin 0 -> 3402 bytes 3 files changed, 77 insertions(+) create mode 100644 docs/_posts/2017-07-14-ace3-version3100.md create mode 100644 docs/img/news/170714_jet_rearm.jpg create mode 100644 docs/img/news/170714_logo-intercept.png diff --git a/docs/_posts/2017-07-14-ace3-version3100.md b/docs/_posts/2017-07-14-ace3-version3100.md new file mode 100644 index 00000000000..08cecb455a8 --- /dev/null +++ b/docs/_posts/2017-07-14-ace3-version3100.md @@ -0,0 +1,77 @@ +--- +title: ACEREP #00009 +description: Status report on ACE3 version 3.10.0 +parent: posts +image: /img/news/170714_jet_rearm.jpg +author: bux +layout: post +--- + +Last week we have released another big update to ACE3 (and a little hotfix too). ACE3 v3.10.0 (and v3.10.1) brought a numerous amount of additions, changes, fixes and improved translations. Following the release of [Jets DLC](https://arma3.com/dlc/jets) for Arma 3 a lot of things have changed on how we need to handle certain situations in the code and configuration. + + + +With Jets DLC focusing primarily on ... Jets ... this update we also focused a little bit more on aircraft. As an example we added rearm features to the new pylon system introduced with Jets DLC, we added settings to increase the fuel hose's length (for refueling on the carrier) and removed our custom flight model changes in favour of the constantly improved one's from vanilla Arma 3. + +

    + +Secondly Zeus has received new toys and improvements. One of which is to use AI to suppress positions and direct it using a slick new UI component we have developed for the Zeus interface. + + + + +
    + +### Intercept + +Back in [ACEREP #00004]({{site.baseUrl}}/2016/03/02/ace3-version350.html) we last spoke about Intercept a project that hooks into the Arma 3 game engine and calls scripting commands on an engine level (in C++) thus circumventing the SQF interpreter and saving valuable time executing the commands. + +
    +
    + The intercept project's logo. +
    +
    + +Though in June 2016 progress on Intercept had become stagnant as the main developer got started on his new job and time for intercept had become rather sparse. In may 2017 [@dedmen](https://github.com/dedmen){:target="_blank"} joined the project and Intercept has made a lot of progress since then. + +It has now reached a milestone where **100% of Arma 3 script commands** are available to be used and a lot of the core code was redesigned and refactored which also removed the latest hurdle in getting Intercept **whitelisted by BattlEye**. + +Besides just improving on existing code also new features have been added. The most notable being the ability to register one's own SQF commands so one can easily move small parts of one's SQF code directly to Intercept:, + +* [https://github.com/intercept/intercept/issues/10](https://github.com/intercept/intercept/issues/10){:target="_blank"} +* [https://github.com/intercept/intercept/wiki/Registered-Functions](https://github.com/intercept/intercept/wiki/Registered-Functions){:target="_blank"} + +64bit support and Linux server compatibility have been added to Intercept which was also important because now Intercept can use its full potential even on a server. + +The latest features currently in active development are cross plugin communication and a [rework of the eventhandler system](https://github.com/intercept/intercept/issues/3){:target="_blank"}. It allows doing the following: + +```cpp +// showing a message when a unit is being hit +// of who did the damage and how much damage has been inflicted +void intercept::post_init() { + static auto hitEH = addEventHandler(sqf::player(), + [](object unit, object causedBy, float damage, object instigator) { + sqf::system_chat(sqf::format({ "Ouch! %1 Hit me for %2!", causedBy, damage })); + }); +} +``` + +Thanks to [@senfo's](https://github.com/RZSenfo){:target="_blank"} ongoing investigations we might also be able to get real multi threading to SQF/Intercept. Making it possible to run some scripts in parallel. + +Intercept is already being used to create new scripting mods. [@dedmen is working on bringing LUA scripting to Arma](https://www.reddit.com/r/arma/comments/6dy7vg/lua_scripting_in_arma/){:target="_blank"}. +@overfl0, [@zakant](https://github.com/zakant){:target="_blank"} and @KoffeinFlummi are starting to bring Python scripting to life. + +What Intercept needs most right now are people trying it out, finding bugs and give ideas, and maybe even contribute to Intercept or any of the great child projects that are growing all around it. + +### The End Things +The change log for ACE3 v3.10.0 can be found here: [https://github.com/acemod/ACE3/releases/v3.10.0](https://github.com/acemod/ACE3/releases/v3.10.0){:target="_blank"} + +The change log for ACE3 v3.10.1 can be found here: [https://github.com/acemod/ACE3/releases/v3.10.1](https://github.com/acemod/ACE3/releases/v3.10.1){:target="_blank"} + +We are still in need for translations for some languages within the ACE3 project. Please have a look at [this GitHub issue to track the progress and what languages lack translations](https://github.com/acemod/ACE3/issues/367){:target="_blank"}. Any and all help with this is very appreciated. + +Make sure to [follow us on twitter](https://twitter.com/intent/follow?screen_name=ace3mod&tw_p=followbutton){:target="_blank"} and to [like our facebook page](https://www.facebook.com/ACE3Mod/){:target="_blank"}. diff --git a/docs/img/news/170714_jet_rearm.jpg b/docs/img/news/170714_jet_rearm.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4c1de1ba42e8d55c55d8c4230b4b2aa49534ed0b GIT binary patch literal 283641 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℘BZ3`!T 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 _c7Qv2JgWjR}6>`)wtjm%4Q!XbEkM@s2 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 literal 0 HcmV?d00001 diff --git a/docs/img/news/170714_logo-intercept.png b/docs/img/news/170714_logo-intercept.png new file mode 100644 index 0000000000000000000000000000000000000000..a2791957509679740a48a092e5e8584137520259 GIT binary patch literal 3402 zcmeH}^;Z)P7sjW6AkAoHgrif!0%U+2?MMmf776J|3Gzj{Q&3=|ky5&mt`S3GjF?D` zQGx>$iI?|>_n&yr_de%7_dGw|&pG#;8>0tTr=z|_4FCY>G&P_GSM&6$rK!lSyblC@ z4FFu<)6+46UB%1G%Par4{w45#Pr!m`M{~90A72BwApmggIvF{|4N9t;)HJko^bCwl zKxP(JHg*oqTerDD+&sK|cfkAtfFw(u7#tcN8AXqcPfTK_zD>`}&SB?q3yVw3`0pz}R@c@y zHVIqA?Va7d{htSizeq>NC%^xk{yjUtpocxo1ORRVHK8g-FP3+60!*L5SiWv{QpQp# zDx)ptS?XmHj{A#;(6k1!{r5#AwB4<%SagDOwA1H_Q+7rr+2#7-+ICKHv9XF!12G*Y zasj#Q%T{NnJ#mD}kBWUm8zl%n_mT5BdVk!1!yYt@d<0pPrfNW z@SE}}J3xXFDXNJF)QtSKX!AEWT&F+2{D|t8E71>S`e5Ma%osA_J@5Nbe@*0UT2t|; zGcZ0-xe1HKmetWVz)Ttp<<*57i~X8a}-HTb0T6ANkB znAFWHKUBAcoV}K}ktbZPD`pb5SL4hXXhN7)p;&T;bzOs&!Y-U12MH*qJB_`B65IvW zz^tUED9L6kQJx~#)(2Y*{UTL*t14YlWSPevAekH7v4B?@yqC-QF9t}v#A-aoKN0Ed z-Qy{2S_4sZK)=$U^e>iKKIPfkq&j{6kC&v#@9V2oKie?E@Y#ngKTfqKE<6myvW5v7 zGl;+Qw{0PkX(FLnnoE;MJ_is zStC8uiof+pltr-u&pMjWOOc8vA0DE7YXNfMt9WOlTmLzYf#cTZ379 z$+D-}&UG^@s99u13DHHzpTU6_{jnY2K)INd|Q1&f6tYa@dEF3aF5&3za*Pt z{)U2z?lMwqP`_M49zUVl7x-Mf;_+^@l_`~Wpf#pD%}6#YTGFyE7F%icMN1dofMVT4 zie@M*=YIJ00hLG|C?B-Ylw9C2>+cS8;qJKt_m!v60((+=^fu+$h}U^w}l`Cc(A z$R*&$y51Ddo|w#lv3kg8lVrtwhc-o`W3g(zwmMV6ZzeV%enJvn9e+fvDly|7w%DGt-^>EEH3$AF3&Q z!u!PW0a3+Sji=10nMhj*Hvraoe^QmsiMU`UfsZXEjjN^9vT)31$g$5&p2`zUgc0ci zIuvC{E(|tRQZLh&=ozxGPf+y!wMJc3Qww@>m$Ze| zrOo#DcS7{YCTrvhovBY2bI=62z}mq*i%Ty44z6$*dB=SVYQ2cwdmQ)xwX2)7bb#eg zCF}1~WaH6q|G10NdP8*`oAgn*6(E}g%H-aHR0+D+>`n{;>M^Xuo$|Hfyli`K%#-Fc zh)#up4e!aAz`>N|{bkxh^%_Ebj4<@%m8IRECaK;O=v4TkNr{$!>RkDWU$X{>(isi^ zB_DH>K$^S}y}d}eW8}^AnMkCoqav35Zm#@FA680{>o8d2V)n(N3=vmYzuV4+rkmZb zYEbD>?|!7n@sMFPDgAFN2cmEM)BVW3`+L9tba>qU*#?90Eb)@E>$f|=C3D~D`*wun za#A4jXjb2aTi)@(J8~;2jfs|XCsILP2Wc>y@~Bo&IQ-=D$Y9Vj4Xem zDU>6m^G$x98F(i8d}&h*ok5N3WVkj_Xl=#YNk^WDRo<{T>a29-hxlosCQJ^Ij)xRW z4cR-H>kuU_6n9VF-zF}BgX#_%VDgrQE@mGQgYUL7Xb7oXKW10r31?cLznPey3N6nk zJ?f)~=~reP9=fMPF?ll7{32=CO=HvJ0JD2GGaGH$27le^8<#}eAg=wp5MT+MnRWMb zF%Y)%4c3WpYD%L}8|aTP8$a@StVuXJ|0mUn^gsDfhB%}_btlHgmVE8gpqE)&JW?7$ VHX~ngzyA9NYr^2rYE_%?{{X^RJE8yp literal 0 HcmV?d00001 From a53dfe1f3b555fa21ab0a5f11190ce0ed1e60100 Mon Sep 17 00:00:00 2001 From: Tim Beswick Date: Sat, 15 Jul 2017 21:05:17 +0100 Subject: [PATCH 184/198] Updated gitbot labels (#5368) --- .gibot.yml | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/.gibot.yml b/.gibot.yml index 194d376713f..3d96a9960db 100644 --- a/.gibot.yml +++ b/.gibot.yml @@ -2,13 +2,12 @@ stages: mark_for_closing: days: 30 labels: - - need more info - - invalid - - can't reproduce - - wontfix - - information required + - status/need more info + - status/invalid + - status/can't reproduce + - status/wontfix exclude: - - marked for cleanup + - status/marked for cleanup comment: - 'Hello @{author}! There has been no activity on this ticket for over a period of {days} days. I am automatically replying to let you know we will close this ticket within 1 week due to inactivity and consider this resolved.' - 'If you believe this is in error, please reply with the requested information.' @@ -17,11 +16,11 @@ stages: close: false comment: true assign_label: - - marked for cleanup + - status/marked for cleanup clean_up: days: 7 labels: - - marked for cleanup + - status/marked for cleanup comment: - 'Hello @{author}! We have detected no activity for {days} days on this ticket. We therefore assume that the original reporter has lost interest or the issue has been resolved.' - 'Since we have marked this ticket for deletion, we will be closing it.' @@ -31,25 +30,24 @@ stages: close: true comment: true assign_label: - - closed by bot + - status/closed by bot remove_label: - - marked for cleanup + - status/marked for cleanup remind_about_old_ticket: days: 160 labels: - - bug - - critical bug + - kind/bug + - kind/critical bug exclude: - - need more info - - invalid - - can't reproduce - - wontfix - - information required - - marked for cleanup - - inactive + - status/need more info + - status/invalid + - status/can't reproduce + - status/wontfix + - status/marked for cleanup + - status/inactive comment: - 'Hello @acemod/maintainers. This ticket has been open for over {days} days without any activity.' action: comment: true assign_label: - - inactive + - status/inactive From 548b02ff8a46e653acec88d9288017e19c5a9cde Mon Sep 17 00:00:00 2001 From: Glowbal Date: Sun, 16 Jul 2017 08:55:44 +0200 Subject: [PATCH 185/198] Ingore issues and PRs marked as stale (#5369) --- .gibot.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gibot.yml b/.gibot.yml index 3d96a9960db..442f0a9ea3a 100644 --- a/.gibot.yml +++ b/.gibot.yml @@ -45,6 +45,7 @@ stages: - status/wontfix - status/marked for cleanup - status/inactive + - status/stale comment: - 'Hello @acemod/maintainers. This ticket has been open for over {days} days without any activity.' action: From 0538647604b567e7517d32ce4cc26b46fd3b3c8e Mon Sep 17 00:00:00 2001 From: Pawel W Date: Mon, 17 Jul 2017 06:14:59 +0200 Subject: [PATCH 186/198] Add missing polish translations (#5370) --- addons/cargo/stringtable.xml | 8 +++++++- addons/hellfire/stringtable.xml | 3 ++- addons/nlaw/stringtable.xml | 5 ++++- addons/quickmount/stringtable.xml | 14 ++++++++++++-- addons/rearm/stringtable.xml | 12 +++++++++++- addons/refuel/stringtable.xml | 3 ++- addons/repair/stringtable.xml | 4 +++- addons/spectator/stringtable.xml | 3 ++- addons/zeus/stringtable.xml | 5 ++++- 9 files changed, 47 insertions(+), 10 deletions(-) diff --git a/addons/cargo/stringtable.xml b/addons/cargo/stringtable.xml index 05c8d9bc231..89744ee37b2 100644 --- a/addons/cargo/stringtable.xml +++ b/addons/cargo/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -279,6 +279,7 @@ カーゴ スペース 貨物空間 货物空间 + Przestrzeń ładunkowa The cargo space available in this vehicle/container @@ -286,6 +287,7 @@ この車両/コンテナでカーゴ スペースを使えるようにします 設定此載具/集裝箱可裝載多少貨物 设定此载具/集装箱可装载多少货物 + Dostępna przestrzeń ładunkowa w tym pojeździe/kontenerze Cargo Size @@ -293,6 +295,7 @@ カーゴ サイズ 貨物的大小 货物的大小 + Wielkość ładunku The cargo space required to hold this object (-1 for unloadable) @@ -300,6 +303,7 @@ このオブジェクトを積載するのに必要なカーゴ スペース (-1 で積載不可) 此貨物會佔掉多少空間(設定-1的話此貨物就不能被裝載) 此货物会占掉多少空间(设定-1的话此货物就不能被装载) + Wymagana przestrzeń ładunkowa dla tego obiektu (-1 dla niemożliwych do załadowania) Airdrop @@ -330,6 +334,7 @@ Coefficient Temps de largage de cargaison 空投時間係數 空投时间系数 + Współczynnik czasu zrzutu Modifier for how long it takes to paradrop a cargo item. @@ -338,6 +343,7 @@ Modifier le temps qu'il faut pour larguer la cargaison. 設定空投所需消耗的時間. 设定空投所需消耗的时间. + Modyfikator wskazujący jak dużo czasu potrzeba by zrzucić przedmiot na spadochronie. diff --git a/addons/hellfire/stringtable.xml b/addons/hellfire/stringtable.xml index 8afbad9bd83..4f4a478e73b 100644 --- a/addons/hellfire/stringtable.xml +++ b/addons/hellfire/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -7,6 +7,7 @@ ヘルファイア モードを設定 设定地狱火模式 設定地獄火模式 + Ustaw tryb pocisku Hellfire diff --git a/addons/nlaw/stringtable.xml b/addons/nlaw/stringtable.xml index 74de6d21d85..666661e8a70 100644 --- a/addons/nlaw/stringtable.xml +++ b/addons/nlaw/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -7,6 +7,7 @@ NALW 目標の追跡 (押しっぱ) 次世代轻型反坦克导弹发射器追踪目标 (按住) 次世代輕型反坦克導彈發射器追蹤目標 (按住) + Śledzenie Celu NLAW (Przytrzymaj) Direct Attack @@ -14,6 +15,7 @@ ダイレクト アタック 直射模式 直射模式 + Bezpośredni atak Overfly Top Attack @@ -21,6 +23,7 @@ オーバーフライ トップ アタック 攻顶模式 攻頂模式 + Atak z góry diff --git a/addons/quickmount/stringtable.xml b/addons/quickmount/stringtable.xml index 057e6482a74..04adaab5c06 100644 --- a/addons/quickmount/stringtable.xml +++ b/addons/quickmount/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -7,11 +7,12 @@ クイック マウント 快速搭乘 快速搭乘 + Szybkie wsiadanie Vehicle quick mount Fahrzeug schnell montieren - Pojazd szybkie mocowanie + Szybkie wsiadanie do pojazdu Entrata rapida veicolo 車両クイック マウント 快速搭乘载具 @@ -23,6 +24,7 @@ 直接見ている車両へ迅速に搭乗します。 快速进入你正在看的载具之中. 快速進入你正在看的載具之中. + Szybko wsiądź do pojazdu, na który patrzysz. Vehicle Full @@ -30,6 +32,7 @@ 車両は満員 载具已满 載具已滿 + Pojazd pełny Distance @@ -37,6 +40,7 @@ 距離 距离 距離 + Odległość Maximum distance to check for vehicles. @@ -44,6 +48,7 @@ 車両を確認できる最大距離 最大可检查载具的距离. 最大可檢查載具的距離. + Maksymalna odległość do pojazdu. Vehicle Locked @@ -51,6 +56,7 @@ 車両は施錠されている 载具已上锁 載具已上鎖 + Pojazd zablokowany Maximum Speed (km/h) @@ -58,6 +64,7 @@ 最高速度 (km/h) 最高速度 (公里/小时) 最高速度 (公里/小時) + Maksymalna prędkość (km/h) Maximum vehicle speed (km/h) allowed for player entry @@ -65,6 +72,7 @@ プレイヤーが搭乗できる限界速度 (km/h) 设置玩家能在最高多少的速度之下进入载具. 設置玩家能在最高多少的速度之下進入載具. + Maksymalna prędkość pojazdu (km/h) pozwalająca graczowi wsiąść. Prioritize Seat @@ -72,6 +80,7 @@ 優先席 优先座位 優先座位 + Priorytet zajmowanych pozycji Seat priority on entry @@ -79,6 +88,7 @@ 搭乗の際の優先順位 优先想进入哪个座位. 優先想進入哪個座位. + Priorytet pozycji w pojeździe diff --git a/addons/rearm/stringtable.xml b/addons/rearm/stringtable.xml index 05aecd1102f..802e1645555 100644 --- a/addons/rearm/stringtable.xml +++ b/addons/rearm/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -113,6 +113,7 @@ 弾薬の供給 弹药补给 彈藥補給 + Zapas amunicji How much ammunition does an ammo truck carry? @@ -121,6 +122,7 @@ 弾薬トラックがどの位の弾薬を供給できるようにしますか? 弹药卡车会携带多少的弹药? 彈藥卡車會攜帶多少的彈藥? + Ile amunicji przewozi ciężarówka? Unlimited ammo supply @@ -129,6 +131,7 @@ 無制限供給 无限弹药 無限彈藥 + Nielimitowany zapas amunicji Limited ammo supply based on caliber @@ -137,6 +140,7 @@ 口径に基づいた限定的供給 基于口径限制弹药数量 基於口徑限制彈藥數量 + Zapas amunicji zależny od kalibru Only specific Magazines @@ -145,6 +149,7 @@ 特定の弾薬のみ 只有指定的弹药 只有指定的彈藥 + Tylko konkretne magazynki Check remaining ammunition @@ -153,6 +158,7 @@ 残弾薬を確認 检查剩余的弹药 檢查剩餘的彈藥 + Sprawdź ilość amunicji Checking remaining ammunition... @@ -161,6 +167,7 @@ 残弾薬を確認しています・・・ 正在检查剩余的弹药中... 正在檢查剩餘的彈藥中... + Sprawdzanie ilości amunicji... There is ammunition worth %1 points left. @@ -169,6 +176,7 @@ この弾薬は%1残っている 还剩下%1多的弹药. 還剩下%1多的彈藥. + Pozostało %1 punktów amunicji. The following ammunition is left:%1 @@ -177,6 +185,7 @@ この弾薬の残りは:%1 以下剩余的弹药:%1 以下剩餘的彈藥:%1 + Pozostała amunicja: %1 There is no ammunition left. @@ -185,6 +194,7 @@ 弾薬は残っていません。 已经没有剩余的弹药了. 已經沒有剩餘的彈藥了. + Brak amunicji w zapasie. Rearm diff --git a/addons/refuel/stringtable.xml b/addons/refuel/stringtable.xml index e2a4c45cd3f..0ac782113bd 100644 --- a/addons/refuel/stringtable.xml +++ b/addons/refuel/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -474,6 +474,7 @@ 給油ホースの長さ 加油软管长度 加油軟管長度 + Długość węża paliwowego diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index 530c76d9887..6f09efc604c 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -1102,6 +1102,7 @@ 上級工兵のみ 只有维修专精兵 只有維修專精兵 + Tylko zaawansowani mechanicy Allow Wheel @@ -1425,6 +1426,7 @@ 上級工兵 专精 專精 + Zaaw. mechanik Assign one or multiple units as an engineer diff --git a/addons/spectator/stringtable.xml b/addons/spectator/stringtable.xml index ae65487d233..9c68942f4c5 100644 --- a/addons/spectator/stringtable.xml +++ b/addons/spectator/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -8,6 +8,7 @@ Spectateur ACE ACE 旁观者 ACE 旁觀者 + Obserwator ACE Spectator Settings diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index 9cd71c135bb..76defc6b1e1 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -1015,6 +1015,7 @@ 制圧射撃 火力压制 火力壓制 + Ogień zaporowy Add full arsenal to object @@ -1023,6 +1024,7 @@ オブジェクトに完全なアーセナルを追加 增加完整的虚拟军火库到物件上 增加完整的虛擬軍火庫到物件上 + Dodaj Wirtualny Arsenał do obiektu Remove arsenal from object @@ -1031,6 +1033,7 @@ オブジェクトからアーセナルを削除 移除物件上的虚拟军火库 移除物件上的虛擬軍火庫 + Usuń Wirtualny Arsenał z obiektu From a18eec6bc0933681e1f34011e882b4c2c6dfbf1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brostr=C3=B6m=2EA=20=7C=20Evul?= Date: Wed, 19 Jul 2017 11:22:54 +0200 Subject: [PATCH 187/198] Fixed a spelling error (#5373) Change have have to have --- docs/wiki/development/setting-up-the-development-environment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/wiki/development/setting-up-the-development-environment.md b/docs/wiki/development/setting-up-the-development-environment.md index c845b3efa23..580552aaa46 100644 --- a/docs/wiki/development/setting-up-the-development-environment.md +++ b/docs/wiki/development/setting-up-the-development-environment.md @@ -131,6 +131,6 @@ class CfgSettings { Files must exist in the built PBOs for file patching to work. If you create a new file you must rebuild the PBO or Arma will not find it in your file paths. -Configs are not patched during run time, only at load time. You do not have have to rebuild a PBO to make config changes, just restart Arma. You can get around this though if you are on the dev branch of Arma 3 and running the [diagnostic exe](https://community.bistudio.com/wiki/Arma_3_Diagnostics_Exe). That includes `diag_mergeConfigFile` which takes a full system path (as in `diag_mergeConfigFile ["p:\z\ace\addons\my_module\config.cpp"]`) and allows you selectively reload config files. +Configs are not patched during run time, only at load time. You do not have to rebuild a PBO to make config changes, just restart Arma. You can get around this though if you are on the dev branch of Arma 3 and running the [diagnostic exe](https://community.bistudio.com/wiki/Arma_3_Diagnostics_Exe). That includes `diag_mergeConfigFile` which takes a full system path (as in `diag_mergeConfigFile ["p:\z\ace\addons\my_module\config.cpp"]`) and allows you selectively reload config files. If you need to add/remove files, then you'll need to run `build.py` again without the game running, and restart. That is all that is required to add new files for further use in testing. From a7954368f42e4c231a3ec02dea9b9e0c695f3092 Mon Sep 17 00:00:00 2001 From: Dissyu Date: Thu, 20 Jul 2017 02:57:20 +0800 Subject: [PATCH 188/198] Fix Chinese content & missing string (#5375) * Fix missing string with stringtable Fix Advanced Fatigue & QuickMount * Fix Chinese content & missing string * Fix Gestures & DAGR missing string * Fix quickmount string with vanilla string * Remove adr97 unnecessary string --- addons/advanced_ballistics/stringtable.xml | 6 +- addons/advanced_fatigue/ACE_Settings.hpp | 12 ++-- addons/advanced_fatigue/CfgVehicles.hpp | 2 +- addons/advanced_fatigue/stringtable.xml | 31 ++++++---- addons/advanced_throwing/stringtable.xml | 26 ++++---- addons/attach/stringtable.xml | 6 +- addons/captives/stringtable.xml | 10 +-- addons/cookoff/stringtable.xml | 14 ++--- addons/dagr/initKeybinds.sqf | 4 +- addons/dagr/stringtable.xml | 4 +- addons/finger/stringtable.xml | 10 +-- addons/flashlights/stringtable.xml | 6 +- addons/gestures/XEH_postInit.sqf | 2 + addons/gestures/stringtable.xml | 16 +++++ addons/hearing/stringtable.xml | 18 +++--- addons/interaction/stringtable.xml | 6 +- addons/map/stringtable.xml | 10 +-- addons/maptools/stringtable.xml | 6 +- addons/medical/stringtable.xml | 42 ++++++------- addons/medical_blood/stringtable.xml | 6 +- addons/microdagr/stringtable.xml | 6 +- addons/missileguidance/stringtable.xml | 10 +-- addons/missionmodules/stringtable.xml | 10 +-- addons/mk6mortar/stringtable.xml | 10 +-- addons/nametags/stringtable.xml | 10 +-- addons/nightvision/stringtable.xml | 6 +- addons/optionsmenu/stringtable.xml | 12 ++-- addons/parachute/stringtable.xml | 6 +- addons/quickmount/ACE_Settings.hpp | 2 +- addons/quickmount/stringtable.xml | 6 +- addons/refuel/stringtable.xml | 6 +- addons/repair/stringtable.xml | 18 +++--- addons/respawn/stringtable.xml | 14 ++--- addons/scopes/stringtable.xml | 6 +- addons/slideshow/stringtable.xml | 30 ++++----- addons/spectator/stringtable.xml | 22 +++---- addons/switchunits/stringtable.xml | 14 ++--- addons/tagging/stringtable.xml | 10 +-- addons/ui/stringtable.xml | 18 +++--- addons/vehiclelock/stringtable.xml | 38 ++++++------ addons/viewdistance/stringtable.xml | 18 +++--- addons/zeus/stringtable.xml | 18 +++--- optionals/compat_adr_97/stringtable.xml | 72 +++++++++++----------- 43 files changed, 311 insertions(+), 288 deletions(-) diff --git a/addons/advanced_ballistics/stringtable.xml b/addons/advanced_ballistics/stringtable.xml index 631acc92c76..1beff014f34 100644 --- a/addons/advanced_ballistics/stringtable.xml +++ b/addons/advanced_ballistics/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -414,8 +414,8 @@ Questo modulo abilita la simulazione della Balistica Avanzata - cioè la traiettoria dei proiettili è influenzata da variabili come la temperatura dell'aria, pressione atmosferica, umidità, gravità, il tipo di munizione e l'arma da cui è sparata このモジュールはアドバンスド バリスティックスを有効化します。弾道は気温や気圧、湿度、重力、弾薬の種類、発射する武器から影響を受けるようになります。 이 모듈은 고급 탄도학을 적용시킵니다 - 이는 발사체의 궤적이 기온, 대기압, 습도, 중력, 탄환의 종류와 어느 무기에서 발사되는지에 따라 영향을 받습니다. - 該模塊實現先進的彈道仿真 - 這意味著子彈的軌跡是由空氣溫度、大氣壓力、濕度、重力、彈藥類型以及射擊的武器所影響. - 该模块实现先进的弹道仿真 - 这意味着子弹的轨迹是由空气温度、大气压力、湿度、重力、弹药类型以及射击的武器所影响. + 該模塊實現先進的彈道仿真 - 這意味著子彈的軌跡是由空氣溫度、大氣壓力、濕度、重力、彈藥類型以及射擊的武器所影響 + 该模块实现先进的弹道仿真 - 这意味着子弹的轨迹是由空气温度、大气压力、湿度、重力、弹药类型以及射击的武器所影响 diff --git a/addons/advanced_fatigue/ACE_Settings.hpp b/addons/advanced_fatigue/ACE_Settings.hpp index 8242e161111..8abdcc5865b 100644 --- a/addons/advanced_fatigue/ACE_Settings.hpp +++ b/addons/advanced_fatigue/ACE_Settings.hpp @@ -1,13 +1,13 @@ class ACE_Settings { class GVAR(enabled) { - category = "Advanced Fatigue"; + category = CSTRING(DisplayName); displayName = CSTRING(Enabled); description = CSTRING(Enabled_Description); typeName = "BOOL"; value = 1; }; class GVAR(enableStaminaBar) { - category = "Advanced Fatigue"; + category = CSTRING(DisplayName); displayName = CSTRING(EnableStaminaBar); description = CSTRING(EnableStaminaBar_Description); typeName = "BOOL"; @@ -15,28 +15,28 @@ class ACE_Settings { isClientSettable = 1; }; class GVAR(performanceFactor) { - category = "Advanced Fatigue"; + category = CSTRING(DisplayName); displayName = CSTRING(PerformanceFactor); description = CSTRING(PerformanceFactor_Description); typeName = "SCALAR"; value = 1; }; class GVAR(recoveryFactor) { - category = "Advanced Fatigue"; + category = CSTRING(DisplayName); displayName = CSTRING(RecoveryFactor); description = CSTRING(RecoveryFactor_Description); typeName = "SCALAR"; value = 1; }; class GVAR(loadFactor) { - category = "Advanced Fatigue"; + category = CSTRING(DisplayName); displayName = CSTRING(LoadFactor); description = CSTRING(LoadFactor_Description); typeName = "SCALAR"; value = 1; }; class GVAR(terrainGradientFactor) { - category = "Advanced Fatigue"; + category = CSTRING(DisplayName); displayName = CSTRING(TerrainGradientFactor); description = CSTRING(TerrainGradientFactor_Description); typeName = "SCALAR"; diff --git a/addons/advanced_fatigue/CfgVehicles.hpp b/addons/advanced_fatigue/CfgVehicles.hpp index 922322b5884..83026e2167a 100644 --- a/addons/advanced_fatigue/CfgVehicles.hpp +++ b/addons/advanced_fatigue/CfgVehicles.hpp @@ -3,7 +3,7 @@ class CfgVehicles { class GVAR(moduleSettings): ACE_Module { author = ECSTRING(common,ACETeam); category = "ACE"; - displayName = "Advanced Fatigue"; + displayName = CSTRING(DisplayName); function = QFUNC(moduleSettings); scope = 2; isGlobal = 1; diff --git a/addons/advanced_fatigue/stringtable.xml b/addons/advanced_fatigue/stringtable.xml index 9aba5d1a04d..bda9a42230b 100644 --- a/addons/advanced_fatigue/stringtable.xml +++ b/addons/advanced_fatigue/stringtable.xml @@ -1,6 +1,11 @@ - + + + Advanced Fatigue + 進階疲勞 + 进阶疲劳 + Performance Factor Leistungsfaktor @@ -20,8 +25,8 @@ 모든 성능이 임의로 설정된 값 없이 영향받습니다. 값이 클수록 더 나은 성능을 발휘합니다 Influence les performances générales de tous les joueurs sans facteurs personalisés. Une valeur plus élevée implique de meilleures performances. Influenza qualsiasi prestazione di tutti i giocatori smuniti di un fattore personalizzato. Maggiore significa migliore. - 影響所有玩家的體力表現. 值越高代表體力越好. - 影响所有玩家的体力表现. 值越高代表体力越好. + 影響所有玩家的體力表現,值越高代表體力越好 + 影响所有玩家的体力表现,值越高代表体力越好 Influences the overall performance of this unit. Higher means better. @@ -31,8 +36,8 @@ 모든 성능이 이 단위로 영향을 받습니다. 값이 클수록 더 나은 성능을 발휘합니다 Influence les performances générales de cette unité. Une valeur plus élevée implique de meilleures performances. Influenza qualsiasi prestazione di questa unità. Maggiore significa migliore. - 影響這個單位的體力表現. 值越高代表體力越好. - 影响这个单位的体力表现. 值越高代表体力越好. + 影響這個單位的體力表現,值越高代表體力越好 + 影响这个单位的体力表现,值越高代表体力越好 Recovery Factor @@ -53,8 +58,8 @@ 얼마나 빨리 회복하는지를 바꿉니다. 값이 클수록 더 나은 성능을 발휘합니다 Change la vitesse à laquelle les joueurs récupèrent leur endurance lorsqu'ils se reposent. Une valeur plus élevée implique une récupération plus rapide. Determina in quanto tempo il giocatore recupera quando rilassato. Maggiore significa migliore. - 決定玩家休息多久就能回復體力. 值越高恢復越快. - 决定玩家休息多久就能回复体力. 值越高恢复越快. + 決定玩家休息多久就能回復體力,值越高恢復越快 + 决定玩家休息多久就能回复体力,值越高恢复越快 Load Factor @@ -75,8 +80,8 @@ 플레이어가 무게에 따라 얼마나 영향받는지를 증가시키거나 감소시킵니다. 0의 경우 플레이어가 장비 무게에 영향받지 않습니다. Augmente ou réduit l'influence que le poids à sur les performances des joueurs. Zéro implique que le poids de l'équipement n'a pas d'influence sur les performances. Incrementa o decrementa quanto il peso influenza le prestazioni dei giocatori. Zero significa che il peso dell'equipaggiamento non ha alcuna influenza nelle prestazioni. - 增加或降低玩家所能承受的負重量. 如設定值為0, 代表裝備的重量將不會影響到玩家的體力表現. - 增加或降低玩家所能承受的负重量. 如设定值为0, 代表装备的重量将不会影响到玩家的体力表现. + 增加或降低玩家所能承受的負重量. 如設定值為0, 代表裝備的重量將不會影響到玩家的體力表現 + 增加或降低玩家所能承受的负重量. 如设定值为0, 代表装备的重量将不会影响到玩家的体力表现 Terrain Gradient Factor @@ -97,8 +102,8 @@ 경사도에 따라 얼마나 피로해지는지를 정합니다. 값이 클수록 더 많은 피로를 유발합니다. Configure l'influence de l'inclinaison du terrain sur la perte d'endurance. Une valeur plus élevée implique une perte d'endurance plus importante. Stabilisce quanto la pendenza del terreno incrementa la perdita della stamina. Maggiore significa più stamina persa. - 設定陡峭的地形將會影響多少體力的流失. 值越高代表體力流失越快. - 设定陡峭的地形将会影响多少体力的流失. 值越高代表体力流失越快. + 設定陡峭的地形將會影響多少體力的流失,值越高代表體力流失越快 + 设定陡峭的地形将会影响多少体力的流,失值越高代表体力流失越快 Enabled @@ -141,8 +146,8 @@ 피로도 막대를 보여줍니다. Affiche la barre d'endurance. Mostra la barra della stamina. - 顯示體力條. - 显示体力条. + 顯示體力條 + 显示体力条 diff --git a/addons/advanced_throwing/stringtable.xml b/addons/advanced_throwing/stringtable.xml index 66dbd8e5003..d197f15eb9e 100644 --- a/addons/advanced_throwing/stringtable.xml +++ b/addons/advanced_throwing/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -22,8 +22,8 @@ 고급 투척 행위를 허가합니다 Permet de changer la configuration du lancé amélioré. Permette il cambiamento della modalità di tiro. - 允許使用更多不同的投擲方式. - 允许使用更多不同的投掷方式. + 允許使用更多不同的投擲方式 + 允许使用更多不同的投掷方式 Enable Advanced Throwing @@ -46,8 +46,8 @@ 고급 투척을 활성화 합니다 Active le système de lancé amélioré. Abilita il sistema di lancio avanzato. - 啟用進階投擲系統. - 启用进阶投掷系统. + 啟用進階投擲系統 + 启用进阶投掷系统 Show Throw Arc @@ -70,8 +70,8 @@ 투척 궤도를 시각화 합니다(투척물이 어디로 갈지) Active la visualisation de l'arc de lancé (où l'objet lancé va atterrir). Abilita la visualizzazione dell'arco del tiro (dove l'oggetto lanciabile volerà). - 顯示投擲軌道幫助投擲. - 显示投掷轨道帮助投掷. + 顯示投擲軌道幫助投擲 + 显示投掷轨道帮助投掷 Show Throwing Mouse Controls @@ -94,8 +94,8 @@ 투척물을 준비시 마우스 조작을 시각화해서 보여줍니다 Active les aides visuels pour les controles à la souris lorsqu'un lancé est préparé. Abilita la visualizzazione dei controlli del mouse quando l'oggetto lanciabile è pronto. - 開啟後會在準備投擲時, 顯示滑鼠相關操作. - 开启后会在准备投掷时, 显示滑鼠相关操作. + 開啟後會在準備投擲時, 顯示滑鼠相關操作 + 开启后会在准备投掷时, 显示滑鼠相关操作 Enable Throwables Pick Up @@ -118,8 +118,8 @@ 땅에 떨어진 투척물을 주울 수 있게 해줍니다. Active la capacité de récupérer les objets lancés sur le sol. Abilita la possibilità di raccogliere un oggetto lanciabile da terra. - 啟用後, 可撿取地面上的投擲物. - 启用后, 可捡取地面上的投掷物. + 啟用後, 可撿取地面上的投擲物 + 启用后, 可捡取地面上的投掷物 Enable Attached Throwables Pick Up @@ -142,8 +142,8 @@ 부착된 투척물을 주울 수 있게 해줍니다. Active la capacité à ramasser les objets lançables attaché à d'autres objets. Abilita la possibilità di raccogliere gli oggetti lanciabili dagli altri oggetti. - 啟用後, 可撿取附著在物件上的投擲物. - 启用后, 可捡取附着在物件上的投掷物. + 啟用後, 可撿取附著在物件上的投擲物 + 启用后, 可捡取附着在物件上的投掷物 Prepare/Change Throwable diff --git a/addons/attach/stringtable.xml b/addons/attach/stringtable.xml index 39455dedcf3..a8e8c23cdf9 100644 --- a/addons/attach/stringtable.xml +++ b/addons/attach/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -190,8 +190,8 @@ ИК-маяк позволяет сигнализировать о своём местоположении через пульсирующий свет, видимый только через ПНВ. 赤外線ストロボはあなたの位置を知らせますが、夜間暗視装置を介してでしか見れません。 적외선 스트로브는 자신의 위치를 반짝이면서 표시합니다. 이는 야간투시경으로 밖에 보지 못합니다. - 紅外線閃頻器,藉由紅外線閃頻信號來辨識你的位置,僅能使用夜視系統來辨識紅外線信號 - 红外线闪频器,藉由红外线闪频信号来辨识你的位置,仅能使用夜视系统来辨识红外线信号 + 紅外線閃頻器,藉由紅外線閃頻信號來辨識你的位置,僅能使用夜視系統來辨識紅外線信號 + 红外线闪频器,藉由红外线闪频信号来辨识你的位置,仅能使用夜视系统来辨识红外线信号 Place diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml index 467d06bd830..ebd11a2bb5c 100644 --- a/addons/captives/stringtable.xml +++ b/addons/captives/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -238,8 +238,8 @@ Sincronizza una unità per farla arrendere. 同期されたユニットを投降させます。 투항시키기 위해 동기화합니다. - 同步此模塊到一個單位, 使該單位投降 - 同步此模块到一个单位, 使该单位投降 + 同步此模塊到一個單位,使該單位投降 + 同步此模块到一个单位,使该单位投降 Make Unit Handcuffed @@ -394,8 +394,8 @@ Requiert la capitulation des joueurs avant qu'ils ne puissent être arrêtés プレイヤーは拘束される前に、投降する必要があります。 체포하기 전에 플레이어가 투항을 먼저해야만 합니다 - 玩家須先要求目標投降, 才可以進行逮捕 - 玩家须先要求目标投降, 才可以进行逮捕 + 玩家須先要求目標投降,才可以進行逮捕 + 玩家须先要求目标投降,才可以进行逮捕 Surrendering only diff --git a/addons/cookoff/stringtable.xml b/addons/cookoff/stringtable.xml index c9c04f86ddc..47f3eb66407 100644 --- a/addons/cookoff/stringtable.xml +++ b/addons/cookoff/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -24,8 +24,8 @@ Aktywuje efekt samozapłonu amunicji na zniszczonych pojazdach. Active le cook-off (autocombustion des munitions) et les effets de destruction liés. Abilita l'esplosione e i relativi effetti di distruzione del veicolo. - 開啟此功能後, 將使有關載具在損毀時有殉爆的效果. - 开启此功能后, 将使有关载具在损毁时有殉爆的效果. + 開啟此功能後, 將使有關載具在損毀時有殉爆的效果 + 开启此功能后, 将使有关载具在损毁时有殉爆的效果 Wreck (Turret) @@ -62,8 +62,8 @@ Aktywuje samozapłon skrzyń z amunicją Active le cook-off sur toutes les caisses de munitions. Abilita l'esplosione della cassa di munizioni. - 開啟彈藥箱殉爆效果. - 开启弹药箱殉爆效果. + 開啟彈藥箱殉爆效果 + 开启弹药箱殉爆效果 Enable Ammunition cook off @@ -83,8 +83,8 @@ Aktywuje samozapłon amunicji. Wystrzeliwuje pociski podczas gdy pojazd płonie i posiada amunicję. Mets à feu les munitions lorsqu'un véhicule est en feu et contient des munitions. Abilita l'esplosione delle munizioni. Spara munizioni di proiettili quando il veicolo va a fuoco e contiene munizioni. - 開啟彈藥殉爆效果. 當一台載有彈藥的載具起火時, 將會有殉爆的效果. - 开启弹药殉爆效果. 当一台载有弹药的载具起火时, 将会有殉爆的效果. + 開啟彈藥殉爆效果. 當一台載有彈藥的載具起火時, 將會有殉爆的效果 + 开启弹药殉爆效果. 当一台载有弹药的载具起火时, 将会有殉爆的效果 Ammunition cook off duration diff --git a/addons/dagr/initKeybinds.sqf b/addons/dagr/initKeybinds.sqf index 74a522e87fb..b862f5914d2 100644 --- a/addons/dagr/initKeybinds.sqf +++ b/addons/dagr/initKeybinds.sqf @@ -1,5 +1,5 @@ -["ACE3 Equipment", QGVAR(MenuKey), "Configure DAGR", +["ACE3 Equipment", QGVAR(MenuKey), localize LSTRING(ConfigureDAGR), { // Conditions: canInteract if !([ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {false}; @@ -16,7 +16,7 @@ {false}, [0, [false, true, false]], false] call CBA_fnc_addKeybind; // (empty default key) -["ACE3 Equipment", QGVAR(ToggleKey), "Toggle DAGR", +["ACE3 Equipment", QGVAR(ToggleKey), localize LSTRING(ToggleDAGR), { // Conditions: canInteract if !([ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {false}; diff --git a/addons/dagr/stringtable.xml b/addons/dagr/stringtable.xml index 51ca754a823..c364eedabec 100644 --- a/addons/dagr/stringtable.xml +++ b/addons/dagr/stringtable.xml @@ -28,8 +28,8 @@ Configurer le DAGR DAGR を設定 DAGR 설정 - 軍用GPS接收器設定 - 军用GPS接收器设定 + 設定軍用GPS接收器 + 设定军用GPS接收器 Toggle DAGR diff --git a/addons/finger/stringtable.xml b/addons/finger/stringtable.xml index b6dc3c5f87c..b165185358f 100644 --- a/addons/finger/stringtable.xml +++ b/addons/finger/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -30,8 +30,8 @@ Mostra puntatore per il giocatore indicato. Questa opzione non influisce la possibilità che gli altri giocatori vedano il puntatore プレイヤーへのポインティング表記を描画します。このオプションは他のプレイヤーの表記に影響しません。 대상이 가리키는곳을 보이게 합니다. - 显示指向指示器给玩家自己. 此选项设定并不影响其他玩家能否看到指示器. - 顯示指向指示器給玩家自己. 此選項設定並不影響其他玩家能否看到指示器. + 显示指向指示器给玩家自己. 此选项设定并不影响其他玩家能否看到指示器 + 顯示指向指示器給玩家自己. 此選項設定並不影響其他玩家能否看到指示器 Pointing indicator @@ -94,8 +94,8 @@ Punta e mostra un marker virtuale di dove stai guardando alle unità vicine. Può essere tenuto premuto. ポイント、そして架空のマーカー表記は自ユニットの近くにいると表記されます。これは押しっぱなしにできます。 당신이 보는것을 가상의 마커로 표시함으로서 다른 인원이 볼 수 있게 합니다. 누른채로 유지할 수 있습니다. - 当按下此按键后, 你附近的单位即可看见一个虚拟图示, 标明你正在指向的位置. 此按键可以被按住来持续显示. - 當按下此按鍵後, 你附近的單位即可看見一個虛擬圖示, 標明你正在指向的位置. 此按鍵可以被按住來持續顯示. + 当按下此按键后, 你附近的单位即可看见一个虚拟图示, 标明你正在指向的位置. 此按键可以被按住来持续显示 + 當按下此按鍵後, 你附近的單位即可看見一個虛擬圖示, 標明你正在指向的位置. 此按鍵可以被按住來持續顯示 Pointing Settings diff --git a/addons/flashlights/stringtable.xml b/addons/flashlights/stringtable.xml index d896d3724af..3623ef67bad 100644 --- a/addons/flashlights/stringtable.xml +++ b/addons/flashlights/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -28,8 +28,8 @@ Lampe torche avec un filtre rouge. Pour utilisation sur carte. 赤色フィルタ付きのフラッシュライト。地図上でつかいます。 빨간색 필터가 달린 손전등입니다. 지도를 비출때 씁니다. - 拥有红色滤光片的手电筒. 用来照亮地图. - 擁有紅色濾光片的手電筒. 用來照亮地圖. + 拥有红色滤光片的手电筒. 用来照亮地图 + 擁有紅色濾光片的手電筒. 用來照亮地圖 Maglite XL50 diff --git a/addons/gestures/XEH_postInit.sqf b/addons/gestures/XEH_postInit.sqf index b2d5de86ef1..935b81aa612 100644 --- a/addons/gestures/XEH_postInit.sqf +++ b/addons/gestures/XEH_postInit.sqf @@ -20,6 +20,8 @@ if (!hasInterface) exitWith {}; TRACE_4("Adding KeyBind",_currentName,_signalName,_code,_key); + ["ACE3 Gestures", localize LSTRING(ACEKeybindCategoryGestures)] call CBA_fnc_registerKeybindModPrettyName; + [ "ACE3 Gestures", _currentName, diff --git a/addons/gestures/stringtable.xml b/addons/gestures/stringtable.xml index 18e8883227c..7cc5107e8e5 100644 --- a/addons/gestures/stringtable.xml +++ b/addons/gestures/stringtable.xml @@ -1,6 +1,22 @@ + + ACE3 Gestures + ACE3 Gesten + ACE3 Gesty + ACE3 Posunky + ACE3 Gestes + ACE3 Kézjelek + Gesti ACE3 + ACE3 Gestos + ACE3 Жесты + ACE3 Gestos + ACE3 ジェスチャー + ACE3 수신호 + ACE3 手势 + ACE3 手勢 + ACE Gestures ACE Gesten diff --git a/addons/hearing/stringtable.xml b/addons/hearing/stringtable.xml index e8b44833efc..5683a191efa 100644 --- a/addons/hearing/stringtable.xml +++ b/addons/hearing/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -30,8 +30,8 @@ Proteggono l'apparato uditivo, permettendo a chi li indossa di resistere ai suoni particolarmente forti senza alcun danno. 着けることにより、近くの大きな銃声から聴覚を保護します。 보호용 귀마개는 화기로부터의 큰소리로부터 사용자의 청력을 보호합니다. - 配戴防护耳塞, 遇到大声的武器发射时也不会损害听力. - 配戴防護耳塞, 遇到大聲的武器發射時也不會損害聽力. + 配戴防护耳塞, 遇到大声的武器发射时也不会损害听力 + 配戴防護耳塞, 遇到大聲的武器發射時也不會損害聽力 Earplugs in @@ -156,8 +156,8 @@ Убирает эффект звона в ушах, когда игрок получает повреждение слуха プレイヤーの聴覚が損傷をしたら耳鳴りの効果を削除します 플레이어가 청력손실을 입을때 생기는 이명현상을 제거합니다. - 关闭耳鸣效果时, 就算玩家受到相当程度的听力伤害, 也不会造成耳鸣效果. - 關閉耳鳴效果時, 就算玩家受到相當程度的聽力傷害, 也不會造成耳鳴效果. + 关闭耳鸣效果时, 就算玩家受到相当程度的听力伤害, 也不会造成耳鸣效果 + 關閉耳鳴效果時, 就算玩家受到相當程度的聽力傷害, 也不會造成耳鳴效果 Hearing @@ -249,8 +249,8 @@ Permet aux unités controlées à distance de subir des traumatismes sonores. Zeus により遠隔操作されたユニットにも、聴覚へ損傷を受けるようにします。 Zeus가 원격으로 청력손실을 입힐 수 있게 합니다. - 设定宙斯远程遥控的单位也会受到耳鸣的效果. - 設定宙斯遠程遙控的單位也會受到耳鳴的效果. + 设定宙斯远程遥控的单位也会受到耳鸣的效果 + 設定宙斯遠程遙控的單位也會受到耳鳴的效果 Add earplugs to units @@ -279,8 +279,8 @@ Ajoute l'objet "Ace_EarPlugs" à toutes les unités ayant des armes bruyantes. Peut être désactivé par des loadouts personalisés. 全ユニットへ`ACE_EarPlugs`アイテムをもたせます。これは変更された武装で無効化できます。 무기를 가지고 있는 모든 인원에게 'ACE_EarPlugs'를 지급합니다. 임의의 장비를 사용시 비활성화 할 수 있습니다. - 增加`ACE_EarPlugs`物品给拥有巨大噪音武器的单位. 当你想自定装备时, 此功能可被关闭. - 增加`ACE_EarPlugs`物品給擁有巨大噪音武器的單位. 當你想自定裝備時, 此功能可被關閉. + 增加`ACE_EarPlugs`物品给拥有巨大噪音武器的单位. 当你想自定装备时, 此功能可被关闭 + 增加`ACE_EarPlugs`物品給擁有巨大噪音武器的單位. 當你想自定裝備時, 此功能可被關閉 diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml index 1e9367347e9..7068a125253 100644 --- a/addons/interaction/stringtable.xml +++ b/addons/interaction/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -940,8 +940,8 @@ Management Squadra permette l'assegnazione di colori per membri della squadra, prendere il comando ed entrare/uscire dalle squadre. チーム管理はチーム メンバーへ色の割り当てや指揮権を取ったり、チームの出入りを許可します。 팀 설정은 팀 멤버에게 색을 부여하거나 팀에 참여 혹은 나가게 할 수 있게 합니다. - 队伍管理系统允许将指定颜色分配到队伍成员上, 接管队长职位或加入/离开队伍. - 隊伍管理系統允許將指定顏色分配到隊伍成員上, 接管隊長職位或加入/離開隊伍. + 队伍管理系统允许将指定颜色分配到队伍成员上,接管队长职位或加入/离开队伍 + 隊伍管理系統允許將指定顏色分配到隊伍成員上,接管隊長職位或加入/離開隊伍 Turn on diff --git a/addons/map/stringtable.xml b/addons/map/stringtable.xml index 9108f088bf4..1ee3717b194 100644 --- a/addons/map/stringtable.xml +++ b/addons/map/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -347,8 +347,8 @@ Questo modulo permette il tracciamento di unità alleate con i marker BFT in mappa モジュールは BFT マップ マーカとともに、同勢力ユニットの追跡を許可します。 이 모듈은 아군을 지도상에서 추적할 수 있게 해줍니다. - 此模块将使你能在地图上看见友方单位的踪迹. - 此模塊將使你能在地圖上看見友方單位的蹤跡. + 此模块将使你能在地图上看见友方单位的踪迹 + 此模塊將使你能在地圖上看見友方單位的蹤跡 Flashlights @@ -521,8 +521,8 @@ Zawsze wyłączaj Blue Force Tracking dla tej grupy. Désactive en permanence le Blue Force Tracking pour ce groupe. Disabilita sempre il Blue Force Tracking per questo gruppo. - 对此小队永远关闭友军踪迹显示. - 對此小隊永遠關閉友軍蹤跡顯示. + 对此小队永远关闭友军踪迹显示 + 對此小隊永遠關閉友軍蹤跡顯示 diff --git a/addons/maptools/stringtable.xml b/addons/maptools/stringtable.xml index 20397d70eb5..caf2268ba8e 100644 --- a/addons/maptools/stringtable.xml +++ b/addons/maptools/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -220,8 +220,8 @@ Przeciągnij po krawędzi narzędzi nawigacyjnych by narysować prostą linię. Uwaga: aby usunąć linię - nalezy ustawić kursor nad jej środkiem. Utiliser le bord des outils de navigation pour tracer des lignes droites. Note: l'on doit survoler le milieu du trait pour pouvoir le supprimer. Disegna sul bordo degli strumenti di mappatura per disegnare linee dritte. Nota: Deve spostarsi al centro per essere cancellato. - 使用地图工具的边缘来绘制直线. 备注: 要删除直线时, 请把滑鼠移动到该线条的中央即可删除该线. - 使用地圖工具的邊緣來繪製直線. 備註: 要刪除直線時, 請把滑鼠移動到該線條的中央即可刪除該線. + 使用地图工具的边缘来绘制直线. 备注: 要删除直线时, 请把滑鼠移动到该线条的中央即可删除该线 + 使用地圖工具的邊緣來繪製直線. 備註: 要刪除直線時, 請把滑鼠移動到該線條的中央即可刪除該線 diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index d94fe3ae5a0..ff304546d96 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -1100,8 +1100,8 @@ Obvaz je vhodným způsobem upravený sterilní materiál, určený k překrytí rány, případně k fixaci poranění. 緊急圧迫包帯は、傷口を血液凝固剤でおおうようにできていて、つかうと出血の原因を取りさります。 드레싱, 출혈을 막고서 상처를 덮기위해 쓰는 물건입니다. - 用于覆盖伤口以防止出血, 透过敷料的止血剂来让出血慢慢停止. - 用於覆蓋傷口以防止出血, 透過敷料的止血劑來讓出血慢慢停止. + 用于覆盖伤口以防止出血, 透过敷料的止血剂来让出血慢慢停止 + 用於覆蓋傷口以防止出血, 透過敷料的止血劑來讓出血慢慢停止 Packing Bandage @@ -1196,8 +1196,8 @@ Hodí se k fixačním účelům a to i v oblastech kloubů. 負傷部分へ最大の対応と止血を続けられます。 부상 부위를 골고루 압박해주면서 동시에 고정시켜 줍니다. - 可对伤口持续压迫并固定以防止伤口情况变严重. - 可對傷口持續壓迫並固定以防止傷口情況變嚴重. + 可对伤口持续压迫并固定以防止伤口情况变严重 + 可對傷口持續壓迫並固定以防止傷口情況變嚴重 Tourniquet (CAT) @@ -1244,8 +1244,8 @@ Zařízení používané ke stlačení venózního a arteriálního oběhu. V důsledku dochází ke zpomalení toku krve a tedy i snížení ztrát krve. 止血帯は静脈や動脈へ圧力をかけ、循環を遅らせることで血液の流れをおそくし、失血を防ぎます。 정맥과 동맥을 압축시키켜 혈액순환을 억제 혹은 늦추게하여 혈액손실을 줄이는 도구입니다. - 用于压迫静脉与动脉的血液流动, 达到减缓失血速度的目的. - 用於壓迫靜脈與動脈的血液流動, 達到減緩失血速度的目的. + 用于压迫静脉与动脉的血液流动, 达到减缓失血速度的目的 + 用於壓迫靜脈與動脈的血液流動, 達到減緩失血速度的目的 Morphine autoinjector @@ -1292,8 +1292,8 @@ Analgetikum slouží k tlumení středně těžkých a těžkých bolestí 戦闘が収まったとき、モルヒネを痛みにたいしてつかいます。 심한 통증을 완화하기 위해 쓰이는 진통제입니다. - 止痛药的一种, 用于减低中度至重度的疼痛感. - 止痛藥的一種, 用於減低中度至重度的疼痛感. + 止痛药的一种, 用于减低中度至重度的疼痛感 + 止痛藥的一種, 用於減低中度至重度的疼痛感 Adenosine autoinjector @@ -1753,8 +1753,8 @@ Osobní lékárnička obsahuje zdravotnický materiál umožňující šití a pokročilejší ošetřování raněných 縫合や高度な処置に必要とされる、さまざまな治療器具が含まれています。 봉합및 고급 조치에 필요한 다양한 치료 도구가 있습니다. - 包含各种医疗套件, 以及进阶伤口系统需要的缝合用品. - 包含各種醫療套件, 以及進階傷口系統需要的縫合用品. + 包含各种医疗套件, 以及进阶伤口系统需要的缝合用品 + 包含各種醫療套件, 以及進階傷口系統需要的縫合用品 Personal Aid Kit for in field stitching or advanced treatment @@ -1769,8 +1769,8 @@ Pronto soccorso personale da campo per mettersi i punti o per trattamenti avanzati. 戦場で縫合や高度な処置に必要とされる、さまざまな治療器具が含まれています。 야전에서 봉합및 고급 조치를 위한 개인응급키트 - 个人急救包可用于战地缝合手术或进阶伤口系统使用. - 個人急救包可用於戰地縫合手術或進階傷口系統使用. + 个人急救包可用于战地缝合手术或进阶伤口系统使用 + 個人急救包可用於戰地縫合手術或進階傷口系統使用 Use Personal Aid Kit @@ -1817,8 +1817,8 @@ Chirurgická sada určená k pokročilejším zdravotnickým zákrokům v poli 縫合キットは戦場で高度な処置をするためにつかわれます。 야전 상황에서 고급 의료 처치를 위해 사용되는 봉합 키트 - 用于在战场上为伤口进行缝合(需要开启进阶伤口系统). - 用於在戰場上為傷口進行縫合(需要開啟進階傷口系統). + 用于在战场上为伤口进行缝合(需要开启进阶伤口系统) + 用於在戰場上為傷口進行縫合(需要開啟進階傷口系統) Surgical Kit for in field advanced medical treatment @@ -1833,8 +1833,8 @@ Chirurgická sada určená k pokročilejším zdravotnickým zákrokům v poli 縫合キットは戦場で高度な処置をするためにつかわれます。 야전 상황에서 고급 의료 처치를 위해 사용되는 봉합 키트 - 用于在战场上为伤口进行缝合(需要开启进阶伤口系统). - 用於在戰場上為傷口進行縫合(需要開啟進階傷口系統). + 用于在战场上为伤口进行缝合(需要开启进阶伤口系统) + 用於在戰場上為傷口進行縫合(需要開啟進階傷口系統) Use Surgical Kit @@ -5083,8 +5083,8 @@ Numero massimo di vite di un'unità. 0 o -1 per disabilitare. ユニットの最大リバイブ数を設定できます。0 または -1 は無効化になります 소생 가능한 횟수입니다. 0 혹은 -1 로 비활성화 합니다 - 一个人员最大可被救活次数, 0或-1为关闭 (无限救活). - 一個人員最大可被救活次數, 0或-1為關閉 (無限救活). + 一个人员最大可被救活次数, 0或-1为关闭 (无限救活) + 一個人員最大可被救活次數, 0或-1為關閉 (無限救活) Provides a medical system for both players and AI. @@ -5179,8 +5179,8 @@ Questo modulo ti permette di assegnare la classe Medico alle unità selezionate. 選択されたユニットを衛生兵として指定します。 이 모듈은 선택한 보직이 의무병을 할 수 있게 해줍니다. - 本模块可让被同步的单位成为医疗兵. - 本模塊可讓被同步的單位成為醫療兵. + 本模块可让被同步的单位成为医疗兵 + 本模塊可讓被同步的單位成為醫療兵 None diff --git a/addons/medical_blood/stringtable.xml b/addons/medical_blood/stringtable.xml index 1e61151d0d7..0db56b0871a 100644 --- a/addons/medical_blood/stringtable.xml +++ b/addons/medical_blood/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -30,8 +30,8 @@ Włącz lub wyłącz pozostawianie śladów krwi na ziemi kiedy postać odnosi obrażenia bądź krwawi (Dés)active les gouttes de sang lors d'un saignement ou de blessure Abilita o disabilita la Perdite di Sangue create sanguinando e prendendo danno - 开启后, 会让受伤时伤口有血液滴落的效果. - 開啟後, 會讓受傷時傷口有血液滴落的效果. + 开启后, 会让受伤时伤口有血液滴落的效果 + 開啟後, 會讓受傷時傷口有血液滴落的效果 diff --git a/addons/microdagr/stringtable.xml b/addons/microdagr/stringtable.xml index af18c39c039..023c92d7a75 100644 --- a/addons/microdagr/stringtable.xml +++ b/addons/microdagr/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -510,8 +510,8 @@ Controlla quanti dati sono presenti negli oggetti MicroDAGR. Meno dati costringono la vista mappa a mostrare meno informazioni nella minimappa. アイテム上で表示されるデータ量を決定します。設定を減らすと地図上での情報が少なくなります。 MicroDAGR에 얼마나 많은 데이터가 들어있는지 정합니다. 적을 수록 지도상에도 비춰지는게 적어집니다. - 设定有多少数据会显示在微型军用GPS接收器上. 这些资料的多寡会反映在迷你地图的显示上. - 設定有多少數據會顯示在微型軍用GPS接收器上. 這些資料的多寡會反映在迷你地圖的顯示上. + 设定有多少数据会显示在微型军用GPS接收器上. 这些资料的多寡会反映在迷你地图的显示上 + 設定有多少數據會顯示在微型軍用GPS接收器上. 這些資料的多寡會反映在迷你地圖的顯示上 diff --git a/addons/missileguidance/stringtable.xml b/addons/missileguidance/stringtable.xml index 72de5524220..f2052d88b93 100644 --- a/addons/missileguidance/stringtable.xml +++ b/addons/missileguidance/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -30,8 +30,8 @@ Pokočilé navádění raket (AMG) poskytuje několik vylepšení pro lepší zaměření a následnou střelbu. Je to prvek vyžadovaný u typu zbraní jako jsou rakety. 高度なミサイルの誘導、または AMG はミサイルの捕捉と発射に複数の強化をあたえます。これはミサイルの種類によって、枠組みを必要とします。 고급 미사일 유도 혹은 AMG 는 표적 획득 및 발사를 위한 여러 기능을 제공합니다. 미사일 종류에따라 체계가 필요합니다. - 进阶飞弹制导增强了多种导弹锁定和射击的能力. 此系统适用于所有飞弹类型的武器. - 進階飛彈制導增強了多種導彈鎖定和射擊的能力. 此系統適用於所有飛彈類型的武器. + 进阶飞弹制导增强了多种导弹锁定和射击的能力. 此系统适用于所有飞弹类型的武器 + 進階飛彈制導增強了多種導彈鎖定和射擊的能力. 此系統適用於所有飛彈類型的武器 Hydra-70 DAGR Missile @@ -78,8 +78,8 @@ Управляемая ракета лазерного наведения Hydra-70 DAGR Hydra-70 DAGR レーザ誘導ミサイル Hydra-70 DAGR 레이저 유도 미사일 - 九头蛇-70 直接攻击雷射导引飞弹e - 九頭蛇-70 直接攻擊雷射導引飛彈e + 九头蛇-70 直接攻击雷射导引飞弹 + 九頭蛇-70 直接攻擊雷射導引飛彈 Hellfire II AGM-114K Missile diff --git a/addons/missionmodules/stringtable.xml b/addons/missionmodules/stringtable.xml index f69fbad1ec1..63e6c1a5afa 100644 --- a/addons/missionmodules/stringtable.xml +++ b/addons/missionmodules/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -93,8 +93,8 @@ Usati per calcolare una posizione casuale ed impostare la distanza minima tra i giocatori ed il file suono eseguito 無作為な位置への計算や、プレイヤーと再生されるファイルの間へ最低距離を設定します 무작위 위치 계산에 사용되며 플레이어와 재생 된 사운드 파일 간의 최소 거리를 설정합니다. - 声音将随机产生在玩家附近, 此选项定义该声音最近会距离玩家多少公尺. - 聲音將隨機產生在玩家附近, 此選項定義該聲音最近會距離玩家多少公尺. + 声音将随机产生在玩家附近, 此选项定义该声音最近会距离玩家多少公尺 + 聲音將隨機產生在玩家附近, 此選項定義該聲音最近會距離玩家多少公尺 Maximum Distance @@ -125,8 +125,8 @@ Usato per calcolare una posizione casuale ed impostare la distanza massima tra giocatori e il file suono eseguito 無作為な位置への計算や、プレイヤーと再生されるファイルの間へ最大距離を設定します 무작위 위치 계산에 사용되며 플레이어와 재생 된 사운드 파일 간의 최대 거리를 설정합니다. - 声音将随机产生在玩家附近, 此选项定义该声音最远会距离玩家多少公尺. - 聲音將隨機產生在玩家附近, 此選項定義該聲音最遠會距離玩家多少公尺. + 声音将随机产生在玩家附近, 此选项定义该声音最远会距离玩家多少公尺 + 聲音將隨機產生在玩家附近, 此選項定義該聲音最遠會距離玩家多少公尺 Minimal Delay diff --git a/addons/mk6mortar/stringtable.xml b/addons/mk6mortar/stringtable.xml index 58c0af47d64..3355636476b 100644 --- a/addons/mk6mortar/stringtable.xml +++ b/addons/mk6mortar/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -189,8 +189,8 @@ Este módulo permite configurar los parámetros del mortero Mk6. Mk6 迫撃砲への設定をできます。 이 모듈은 Mk6 설치 설정을 가능케 합니다. - 这个模块允许你设定MK6迫击炮的相关功能. - 這個模塊允許你設定MK6迫擊砲的相關功能. + 这个模块允许你设定MK6迫击炮的相关功能 + 這個模塊允許你設定MK6迫擊砲的相關功能 Use Ammunition handling @@ -217,8 +217,8 @@ Удаляет артиллерийские магазины, требует загрузку отдельных снарядов стрелком или заряжащим. Не влияет на артиллерию ИИ. 迫撃砲から弾薬を除去します。射手か装填手により予め装填されている必要があります。AI 迫撃砲へ影響を与えません。 박격포 탄창을 제거합니다, 사수나 장전수가 개별적으로 탄환을 넣어줘야만 합니다. 인공지능은 영향을 받지 않습니다. - 开启此功能时. 迫击炮的弹药需由炮手与装填手共同合作来进行装填. 此功能并不影响由AI射击的迫击炮. - 開啟此功能時. 迫擊砲的彈藥需由砲手與裝填手共同合作來進行裝填. 此功能並不影響由AI射擊的迫擊砲. + 开启此功能时. 迫击炮的弹药需由炮手与装填手共同合作来进行装填. 此功能并不影响由AI射击的迫击炮 + 開啟此功能時. 迫擊砲的彈藥需由砲手與裝填手共同合作來進行裝填. 此功能並不影響由AI射擊的迫擊砲 Remove Round diff --git a/addons/nametags/stringtable.xml b/addons/nametags/stringtable.xml index fde54a86078..0630e46c958 100644 --- a/addons/nametags/stringtable.xml +++ b/addons/nametags/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -333,8 +333,8 @@ Questo modulo ti consente di personalizzare le impostazioni ed il raggio delle Etichette Nomi このモジュールは名札の表示範囲と設定を変更できます。 이 모듈은 당신이 이름표의 범위를 임의로 수정할 수 있게 해줍니다. - 这个模块允许您设定名称和显示范围等设定. - 這個模塊允許您設定名稱和顯示範圍等設定. + 这个模块允许您设定名称和显示范围等设定 + 這個模塊允許您設定名稱和顯示範圍等設定 Only on Cursor @@ -493,8 +493,8 @@ Effetto delle onde sonore sopra la testa dei giocatori parlanti quando premono il tasto PTT. Questa opzione funziona con TFAR ed ACRE2 プレイヤーが PTT キーを押している間は、音波形を表示します。このオプションは TFAR と ACRE2 で動作します。 플레이어가 PTT로 말할시 머리위에 음파효과를 적용합니다. 이 옵션은 TFAR과 ACRE2가 있을때만 적용됩니다. - 当玩家使用按键发话时, 其头上的角色名称旁会显示声波的图案. 此功能可搭配TFAR、ACRE2等模组使用. - 當玩家使用按鍵發話時, 其頭上的角色名稱旁會顯示聲波的圖案. 此功能可搭配TFAR、ACRE2等模組使用. + 当玩家使用按键发话时, 其头上的角色名称旁会显示声波的图案. 此功能可搭配TFAR、ACRE2等模组使用 + 當玩家使用按鍵發話時, 其頭上的角色名稱旁會顯示聲波的圖案. 此功能可搭配TFAR、ACRE2等模組使用 Nametags Size diff --git a/addons/nightvision/stringtable.xml b/addons/nightvision/stringtable.xml index 8e4e1fafde2..4f3e7c58a0b 100644 --- a/addons/nightvision/stringtable.xml +++ b/addons/nightvision/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -234,8 +234,8 @@ Bloque l'usage des JVN pendant la visée. スコープを使い狙いを付けると、夜間暗視装置を無効化します。 조준시 야투경의 사용을 제한합니다. - 此功能开启后, 当要使用瞄准镜时, 为避免夜视镜镜头碰撞到瞄准镜, 会先拿开夜视镜后再进行瞄准镜瞄准. - 此功能開啟後, 當要使用瞄準鏡時, 為避免夜視鏡鏡頭碰撞到瞄準鏡, 會先拿開夜視鏡後再進行瞄準鏡瞄準. + 此功能开启后, 当要使用瞄准镜时, 为避免夜视镜镜头碰撞到瞄准镜, 会先拿开夜视镜后再进行瞄准镜瞄准 + 此功能開啟後, 當要使用瞄準鏡時, 為避免夜視鏡鏡頭碰撞到瞄準鏡, 會先拿開夜視鏡後再進行瞄準鏡瞄準 diff --git a/addons/optionsmenu/stringtable.xml b/addons/optionsmenu/stringtable.xml index 5b435745617..c52683c41a8 100644 --- a/addons/optionsmenu/stringtable.xml +++ b/addons/optionsmenu/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -78,7 +78,7 @@ Opzioni オプション 옵션 - 中文化由[MR]Diss制作 + 设定 設定 @@ -174,8 +174,8 @@ Vetor. Separe elementos usando *,*. アライ。,を使うことで区別できます。 배열. 요소를 ,. 로 나눔 - 阵列. 使用','来做每个值的区隔. - 陣列. 使用','來做每個值的區隔. + 阵列. 使用','来做每个值的区隔 + 陣列. 使用','來做每個值的區隔 Number @@ -350,8 +350,8 @@ Quando consentito, hai accesso alle modifiche delle impostazioni ed esportazione in SP. Cliccando Esporta piazzera il config formattato sul tuo Blocco Note. 許可の場合、あなたは設定の変更と出力をシングルプレイで可能です。出力をクリックすると、サーバ用設定の形式となっている設定がクリップボードに保存されます。 허락하는 경우 싱글플레이에서 설정의 변경과 내보내기가 가능해집니다. 내보내기를 눌러서 서버 형성의 설정을 클립보드로 보냅니다. - 当本功能开启时, 你将能在单人模式中调整并输出设定. 点击输出按钮后将会让相关设定参数复制到剪贴簿上. - 當本功能開啟時, 你將能在單人模式中調整並輸出設定. 點擊輸出按鈕後將會讓相關設定參數複製到剪貼簿上. + 当本功能开启时, 你将能在单人模式中调整并输出设定. 点击输出按钮后将会让相关设定参数复制到剪贴簿上 + 當本功能開啟時, 你將能在單人模式中調整並輸出設定. 點擊輸出按鈕後將會讓相關設定參數複製到剪貼簿上 Hide diff --git a/addons/parachute/stringtable.xml b/addons/parachute/stringtable.xml index c57f50b54fe..25a08af45fe 100644 --- a/addons/parachute/stringtable.xml +++ b/addons/parachute/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -46,8 +46,8 @@ Usado para mostrar altura, taxa de descida e o tempo. 高度や降下率、時間を見るのに使います。 높이와, 하강속도 그리고 시간을 보여줍니다. - 用于显示高度, 下降率和时间. - 用於顯示高度, 下降率和時間. + 用于显示高度, 下降率和时间 + 用於顯示高度, 下降率和時間 Non-Steerable Parachute diff --git a/addons/quickmount/ACE_Settings.hpp b/addons/quickmount/ACE_Settings.hpp index bcb45f8c433..b4e07be4b46 100644 --- a/addons/quickmount/ACE_Settings.hpp +++ b/addons/quickmount/ACE_Settings.hpp @@ -36,6 +36,6 @@ class ACE_Settings { description = CSTRING(PriorityDescription); isClientSettable = 1; force = 0; - values[] = {"Driver", "Gunner", "Commander", "Passenger"}; + values[] = {"$str_getin_pos_driver", "$str_getin_pos_gunn", "$str_getin_pos_comm", "$STR_GETIN_POS_PASSENGER"}; }; }; diff --git a/addons/quickmount/stringtable.xml b/addons/quickmount/stringtable.xml index 19d0ce6a745..49bf1117729 100644 --- a/addons/quickmount/stringtable.xml +++ b/addons/quickmount/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -22,8 +22,8 @@ Quickly enter the vehicle you are directly looking at. Entra velocemente nel veicolo che stai guardando. 直接見ている車両へ迅速に搭乗します。 - 快速进入你正在看的载具之中. - 快速進入你正在看的載具之中. + 快速进入你正在看的载具之中 + 快速進入你正在看的載具之中 Szybko wsiądź do pojazdu, na który patrzysz. diff --git a/addons/refuel/stringtable.xml b/addons/refuel/stringtable.xml index ada365b7018..53ead6b4bc5 100644 --- a/addons/refuel/stringtable.xml +++ b/addons/refuel/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -463,8 +463,8 @@ %1 litres ont été écoulés. %1 リッターがある %1 리터가 재급유되었습니다. - 已加入%1公升. - 已加入%1公升. + 已加入%1公升 + 已加入%1公升 Refuel hose length diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index 7bb2d8a7626..693e6be47ad 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -1063,8 +1063,8 @@ Fournit un système de réparation pour tous les types de véhicules. 車両の全種類に修理システムを適用しますか? 모든 차량에 대해 수리 시스템을 제공합니다. - 提供修复系统给所有载具. - 提供修復系統給所有載具. + 提供修复系统给所有载具 + 提供修復系統給所有載具 Anyone @@ -1485,8 +1485,8 @@ Liste de véhicules qui seront considérés comme véhicules de réparation. Séparé par des virgules. 一覧に記載されたユニット名を、修理車両として指定します。コンマで複数を指定できます。 목록내 차량은 정비 차량으로 분류됩니다. 쉼표로 구분합니다. - 载具名单, 把载具名称输入在这边即可定义其为维修载具. 每个载具使用逗号以做区隔. - 載具名單, 把載具名稱輸入在這邊即可定義其為維修載具. 每個載具使用逗號以做區隔. + 载具名单, 把载具名称输入在这边即可定义其为维修载具. 每个载具使用逗号以做区隔 + 載具名單, 把載具名稱輸入在這邊即可定義其為維修載具. 每個載具使用逗號以做區隔 Is Repair Vehicle @@ -1575,8 +1575,8 @@ Liste des objets considérés comme installations de réparation. Séparé par des virgules 一覧に記載されたユニット名を、修理施設として指定します。コンマで複数を指定できます。 목록내 시설은 정비 시설으로 분류됩니다. 쉼표로 구분합니다. - 设施名单, 把设施名称输入在这边即可定义其为维修设施. 每个设施使用逗号以做区隔. - 設施名單, 把設施名稱輸入在這邊即可定義其為維修設施. 每個設施使用逗號以做區隔. + 设施名单, 把设施名称输入在这边即可定义其为维修设施. 每个设施使用逗号以做区隔 + 設施名單, 把設施名稱輸入在這邊即可定義其為維修設施. 每個設施使用逗號以做區隔 Is Repair Facility @@ -1680,8 +1680,8 @@ Liste des objets qui recevront des pièces de réparation en plus. Séparé par des virgules 一覧に追加されたオブジェクトへ予備部品を与えます。コンマで複数を指定できます。 목록내 물체는 예비 부품을 받습니다, 쉼표로 구분합니다. - 添加备件到名单的载具上. 每个载具使用逗号以做区隔. - 添加備件到名單的載具上. 每個載具使用逗號以做區隔. + 添加备件到名单的载具上. 每个载具使用逗号以做区隔 + 添加備件到名單的載具上. 每個載具使用逗號以做區隔 Part diff --git a/addons/respawn/stringtable.xml b/addons/respawn/stringtable.xml index d298ef804ad..fff46036f8d 100644 --- a/addons/respawn/stringtable.xml +++ b/addons/respawn/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -285,8 +285,8 @@ Este módulo permite configurar parámetros relacionados con la reaparición あなたが設定した ACE 機能をリスポンへ設定できます。 이 모듈은 ACE 재배치의 자세한 설정을 변결할 수 있게 해줍니다. - 该模块使您可以设定ACE的重生功能. - 該模塊使您可以設定ACE的重生功能. + 该模块使您可以设定ACE的重生功能 + 該模塊使您可以設定ACE的重生功能 Friendly Fire Messages @@ -316,8 +316,8 @@ El usar este módulo, todas las muertes por fuego amigo serán indicadas en el chat. もし友軍誤射による死者が出た場合は、チャットにてその旨を表示します。 이 모듈은 미션 중 아군사격으로 인한 사망자 발생시 채팅창에 메세지를 표시해줍니다. - 摆放此模块后, 当有发生友军误击致死的事件, 会显示提示讯息在聊天视窗中. - 擺放此模塊後, 當有發生友軍誤擊致死的事件, 會顯示提示訊息在聊天視窗中. + 摆放此模块后, 当有发生友军误击致死的事件, 会显示提示讯息在聊天视窗中 + 擺放此模塊後, 當有發生友軍誤擊致死的事件, 會顯示提示訊息在聊天視窗中 Rallypoint System @@ -347,8 +347,8 @@ Ce module vous permet d'utiliser les "rally points" auxquels vous pouvez vous téléporter rapidement depuis un drapeau à la base. Il nécessite le placement d'objets spéciaux sur la carte - base et drapeau, disponibles dans la catégorie Vide -> ACE Respawn. ミッションでベースから素早く移動できるラリーポイントを使えるようにします。ゲーム内に専用オブジェクトとなるベースとフラッグを設置している必要があります。両オブジェクトは Empty 下の ACE リスポンから設置できます。 이 모듈은 미션 중에 기지 깃발에서 집결지로 빠르게 텔레포트 시켜주는 역활을 합니다. 지도 상에 기지 및 깃발이 필요합니다. 두 가지 모두 Empty->ACE Respawn 카테고리에서 찾을 수 있습니다. - 摆放此模块后, 你将能在任务中布署集合点, 使你可以快速往返基地与前线. 要使用本功能, 请记得放上空物件->ACE 重生里面的基地与旗帜. - 擺放此模塊後, 你將能在任務中佈署集合點, 使你可以快速往返基地與前線. 要使用本功能, 請記得放上空物件->ACE 重生裡面的基地與旗幟. + 摆放此模块后, 你将能在任务中布署集合点, 使你可以快速往返基地与前线. 要使用本功能, 请记得放上空物件->ACE 重生里面的基地与旗帜 + 擺放此模塊後, 你將能在任務中佈署集合點, 使你可以快速往返基地與前線. 要使用本功能, 請記得放上空物件->ACE 重生裡面的基地與旗幟 Move Rallypoint diff --git a/addons/scopes/stringtable.xml b/addons/scopes/stringtable.xml index 16898757fde..9f618e56702 100644 --- a/addons/scopes/stringtable.xml +++ b/addons/scopes/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -342,8 +342,8 @@ Ten moduł włącza pokrętła kalibracyjne poprawki na wiatr oraz poprawki wysokości dla celowników o dużym powiększeniu. Ce module ajoute les tambours de correction de la hausse et de dérive sur les optiques de visée à fort grossissement. Questo modulo aggiunge lo spostamento dell'aria e la regolazione dell'elevazione delle torrette in mirini a lunga gittata - 此模块可为高倍率瞄准镜新增归零风偏, 距离用的调整纽. - 此模塊可為高倍率瞄準鏡新增歸零風偏, 距離用的調整紐. + 此模块可为高倍率瞄准镜新增归零风偏, 距离用的调整纽 + 此模塊可為高倍率瞄準鏡新增歸零風偏, 距離用的調整紐 diff --git a/addons/slideshow/stringtable.xml b/addons/slideshow/stringtable.xml index f563e62e536..0b39c384bc9 100644 --- a/addons/slideshow/stringtable.xml +++ b/addons/slideshow/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -30,8 +30,8 @@ Questo modulo ti permette di creare una presentazione con diapositive su vari oggetti. Un modulo per lista immagini. Solo oggetti con hiddenSelection 0 sono supportati. さまざまなオブジェクトへスライドショーを設定することができます。1つのモジュールは各画像リストになっています。オブジェクトが hiddenSelection 0へ対応している必要があります。 이 모듈은 다른 물체에 대해 슬라이드 쇼를 놓을 수 있게 해줍니다. 한 모듈당 한 이미지목록만 가능합니다. 또한 물체가 hiddenSelection 0 를 지원해야만합니다. - 此模塊可讓圖片以幻燈片的形式顯示在物件上. 每個模塊都能設定一串幻燈片清單. 被設定的物件不能有隱藏部位(hiddenSelection). - 此模块可让图片以幻灯片的形式显示在物件上. 每个模块都能设定一串幻灯片清单. 被设定的物件不能有隐藏部位(hiddenSelection). + 此模塊可讓圖片以幻燈片的形式顯示在物件上,每個模塊都能設定一串幻燈片清單,被設定的物件不能有隱藏部位(hiddenSelection) + 此模块可让图片以幻灯片的形式显示在物件上,每个模块都能设定一串幻灯片清单,被设定的物件不能有隐藏部位(hiddenSelection) Objects @@ -62,8 +62,8 @@ Nomi di oggetti (possono anche essere oggetti sincronizzati) che verranno usati per la presentazione di diapositive, separato da virgole se più di uno. スライドショーを表示するオブジェクト名 (オブジェクトとの同期も可)。複数ある場合はコンマで区切れます 슬라이드 쇼가 보여질 물체(동기화 되는 물체도 가능합니다) 명칭, 다수의 경우 쉼표로 구분합니다. - 物件名稱 (也可使用同步線來設定), 幻燈片將會顯示在該物件上, 如有多個物件, 請以逗號作區隔. - 物件名称 (也可使用同步线来设定), 幻灯片将会显示在该物件上, 如有多个物件, 请以逗号作区隔. + 物件名稱 (也可使用同步線來設定),幻燈片將會顯示在該物件上,如有多個物件,請以逗號作區隔 + 物件名称 (也可使用同步线来设定),幻灯片将会显示在该物件上,如有多个物件,请以逗号作区隔 Controllers @@ -93,8 +93,8 @@ Nomi di oggetti controllori, separati da virgole se multipli. コントローラに指定するオブジェクト名を記入し、複数ある場合はコンマで区切れます。 조종 장치 물체 명칭, 다수의 경우 쉼표로 구분됩니다. - 指定是控制器的物件名稱, 如有多個物件, 請以逗號作區隔. - 指定是控制器的物件名称, 如有多个物件, 请以逗号作区隔. + 指定是控制器的物件名稱,如有多個物件,請以逗號作區隔 + 指定是控制器的物件名称,如有多个物件,请以逗号作区隔 Images @@ -125,8 +125,8 @@ Lista di immagini che verranno usate durante la presentazione, separati da virgole, con il formato completo del percorso (es. images\image.paa) 完全なパスでスライドショーに使う画像一覧を入力してください。コンマで区別できます。(例: images\image.paa) 슬라이드 쇼에 쓰일 사진목록입니다, 쉼표로 구분됩니다, 경로설정을 정확히 하십시요. (예: 사진\사진.ppa) - 要做為幻燈片的圖片清單, 每個圖片請已逗號區隔, 並輸入完整路徑位址 (例如:images\image.paa). - 要做为幻灯片的图片清单, 每个图片请已逗号区隔, 并输入完整路径位址 (例如:images\image.paa). + 要做為幻燈片的圖片清單,每個圖片請已逗號區隔,並輸入完整路徑位址 (例如:images\image.paa) + 要做为幻灯片的图片清单,每个图片请已逗号区隔,并输入完整路径位址 (例如:images\image.paa) Interaction Names @@ -156,8 +156,8 @@ Liste aller Namen, die für Interaktionseinträge genutzt werden. Mit Kommata getrennt, in Reihenfolge der Bilder. 画像を操作できるインタラクション エントリ名の一覧を入力してください。コンマで区切り複数を指定できます。 상호작용 메세지에 쓰일 명칭입니다, 쉼표로 구분합니다, 이미지의 순서입니다. - 設定互動鍵切換圖片時的按鈕名稱, 多個按鈕請以逗號做區隔, 有多少圖片就輸入多少個按鈕, 以利切換圖片. - 设定互动键切换图片时的按钮名称, 多个按钮请以逗号做区隔, 有多少图片就输入多少个按钮, 以利切换图片. + 設定互動鍵切換圖片時的按鈕名稱,多個按鈕請以逗號做區隔,有多少圖片就輸入多少個按鈕,以利切換圖片 + 设定互动键切换图片时的按钮名称,多个按钮请以逗号做区隔,有多少图片就输入多少个按钮,以利切换图片 Set Name @@ -174,8 +174,8 @@ メイン インタラクション エントリで使われる名前を設定します。(複数のスライドショーを区別するため)。標準: "Slides" Un nom qui sera utilisé pour interagir avec plusieurs diaporamas. Par défaut : "Slides" Nome che sarà utilizzato per le principali interazioni (per distinguere le multiple diapositive). Predefinito: "Slides" - 設定該幻燈片的標題名稱 (用來區分多個不同標題的幻燈片.) 預設名稱: "幻燈片" - 设定该幻灯片的标题名称 (用来区分多个不同标题的幻灯片.) 预设名称: "幻灯片" + 設定該幻燈片的標題名稱 (用來區分多個不同標題的幻燈片) 預設名稱: "幻燈片" + 设定该幻灯片的标题名称 (用来区分多个不同标题的幻灯片) 预设名称: "幻灯片" Slide Duration @@ -206,8 +206,8 @@ Länge der Diavorführung pro Bild. Standard: 0 (Automatischer Wechsel deaktiviert) 各スライドの持続時間。標準:0 (自動的な切り替えは無効) 매 슬라이드의 지속시간. 기본설정: 0 (자동 전환 비활성화) - 每張幻燈片顯示的時間. 預設:0 (自動換圖已禁用) - 每张幻灯片显示的时间. 预设:0 (自动换图已禁用) + 每張幻燈片顯示的時間 預設:0 (自動換圖已禁用) + 每张幻灯片显示的时间 预设:0 (自动换图已禁用) Slides diff --git a/addons/spectator/stringtable.xml b/addons/spectator/stringtable.xml index 616c0e44a2b..3cc6a3098d4 100644 --- a/addons/spectator/stringtable.xml +++ b/addons/spectator/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -37,8 +37,8 @@ Configure comment le système de spectateurs opère par défaut. スペクテイター システムが標準でどのように動作するか設定できます。 어떻게 관전자 시스템이 기본적으로 작동되는지 설정합니다 - 设定旁观者系统相关配置. - 設定旁觀者系統相關配置. + 设定旁观者系统相关配置 + 設定旁觀者系統相關配置 Unit filter @@ -67,8 +67,8 @@ Méthode de filtration des unités regardables. 観察できるユニットへのフィルタ設定ができます。 관전할 수 있는 인원을 고릅니다 - 过滤哪些单位可以使用旁观者系统. - 過濾哪些單位可以使用旁觀者系統. + 过滤哪些单位可以使用旁观者系统 + 過濾哪些單位可以使用旁觀者系統 No units @@ -157,8 +157,8 @@ Méthode de filtration des factions regardables 観察できる勢力へのフィルタ設定ができます。 관전할 수 있는 진영을 고릅니다 - 过滤可旁观的阵营. - 過濾可旁觀的陣營. + 过滤可旁观的阵营 + 過濾可旁觀的陣營 Player side @@ -247,8 +247,8 @@ Modes de caméra qui peuvent être utilisés カメラ モードを使えます。 사용할 수 있는 카메라 모드들 입니다 - 设定可使用的摄影机模式. - 設定可使用的攝影機模式. + 设定可使用的摄影机模式 + 設定可使用的攝影機模式 All @@ -330,8 +330,8 @@ Modes de visions qui peuvent être utilisés ビジョン モードを使えます。 사용할 수 있는 시야 모드들 입니다 - 设定可使用的视觉模式. - 設定可使用的視覺模式. + 设定可使用的视觉模式 + 設定可使用的視覺模式 Night vision diff --git a/addons/switchunits/stringtable.xml b/addons/switchunits/stringtable.xml index b601d7bd120..081fed6cdd5 100644 --- a/addons/switchunits/stringtable.xml +++ b/addons/switchunits/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -45,8 +45,8 @@ Essa unidade está muito perto do inimigo. このユニットは敵に近すぎます。 그 인원은 적과 너무 가깝습니다. - 这单位太接近敌人了. - 這單位太接近敵人了. + 这单位太接近敌人了 + 這單位太接近敵人了 SwitchUnits System @@ -221,8 +221,8 @@ Abilita una zona sicura attorno ad unità nemiche? I giocatori non possono cambiare ad unità dentro la zona sicura. 敵ユニットから逃れる安全地帯を有効にしますか?プレイヤーは安全地帯内のユニットへ切り替えできません。 적 주위로 안전 지대를 활성화합니까? 안전 지대 내에서는 플레이어가 인원 전환을 할 수 없습니다. - 启用敌方周围安全地带? 玩家不能切换到安全区内的单位. - 啟用敵方周圍安全地帶? 玩家不能切換到安全區內的單位. + 启用敌方周围安全地带? 玩家不能切换到安全区内的单位 + 啟用敵方周圍安全地帶? 玩家不能切換到安全區內的單位 Safe Zone Radius @@ -268,8 +268,8 @@ El módulo permite a las unidades cambiar de bando durante el juego. モジュールはゲームにおいて、陣営の切り替えを有効にします。 이 모듈은 당신을 게임 중에 진영을 바꿀 수 있게 해줍니다. - 此模块允许你在游戏中切换至另一方. - 此模塊允許你在遊戲中切換至另一方. + 此模块允许你在游戏中切换至另一方 + 此模塊允許你在遊戲中切換至另一方 diff --git a/addons/tagging/stringtable.xml b/addons/tagging/stringtable.xml index 4bf5707dcf4..7b76826b239 100644 --- a/addons/tagging/stringtable.xml +++ b/addons/tagging/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -22,8 +22,8 @@ 뿌리기 시스템의 기본사항을 설정합니다. Configure le fonctionnement par défaut du système de marquage. Configura quanto il sistema di marcamento agirà da se. - 定义喷漆系统预设设定. - 定義噴漆系統預設設定. + 定义喷漆系统预设设定 + 定義噴漆系統預設設定 Quick Tag @@ -232,8 +232,8 @@ Балончик спрея для рисования маркеров на стенах. スプレー缶は壁にタグ付できます。 벽에 뿌릴 수 있는 스프레이캔 입니다. - 喷漆可喷涂在墙壁上. - 噴漆可噴塗在牆壁上. + 喷漆可喷涂在墙壁上 + 噴漆可噴塗在牆壁上 diff --git a/addons/ui/stringtable.xml b/addons/ui/stringtable.xml index 6f3a3ecc2dd..f6a9f20f845 100644 --- a/addons/ui/stringtable.xml +++ b/addons/ui/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -39,8 +39,8 @@ Dieses Modul erlaubt es, Teile der Benutzeroberfläche (UI) an- oder auszuschalten. 이 모듈은 사용자 인터페이스의 부분을 토글하는것을 가능케 해줍니다. Questo modulo consente di commutare parti di interfaccia utente visibili. - 此模块允许你调整使用者介面的任何一个元件. - 此模塊允許你調整使用者介面的任何一個元件. + 此模块允许你调整使用者介面的任何一个元件 + 此模塊允許你調整使用者介面的任何一個元件 Allow Selective UI @@ -67,8 +67,8 @@ Erlaube Clients, ihr UI zu modifizieren. 클라이언트가 선택적 사용자 인터페이스 사용하는것을 허가합니다 Permette al client di modificare la propria UI. - 允许客户端自行调整使用者介面. - 允許客戶端自行調整使用者介面. + 允许客户端自行调整使用者介面 + 允許客戶端自行調整使用者介面 Soldier/Vehicle/Weapon Information @@ -560,8 +560,8 @@ Die Modifizierung des UI ist deaktiviert. 사용자 인터페이스 변경이 비활성화 되어있습니다. La modifica dell'Interfaccia Utente è disabilitata. - 自定使用者介面功能已关闭. - 自定使用者介面功能已關閉. + 自定使用者介面功能已关闭 + 自定使用者介面功能已關閉 Cannot modify a forced User Interface element. @@ -573,8 +573,8 @@ Gesperrte UI-Elemente können nicht modifiziert werden. 강제 사용자 인터페이스는 변경하실 수 없습니다. Impossibile modificare un elemento forzato d' Interfaccia Utente. - 无法编辑已被锁定的使用者介面元件. - 無法編輯已被鎖定的使用者介面元件. + 无法编辑已被锁定的使用者介面元件 + 無法編輯已被鎖定的使用者介面元件 diff --git a/addons/vehiclelock/stringtable.xml b/addons/vehiclelock/stringtable.xml index 7b39b616de6..d19feb621c1 100644 --- a/addons/vehiclelock/stringtable.xml +++ b/addons/vehiclelock/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -78,8 +78,8 @@ Uma chave específica que abre um veículo específico. カスタム キーは特定車両を開けられます。 특정 차량을 여는 특수 열쇠 - 使用指定的钥匙来开启特定的载具. - 使用指定的鑰匙來開啟特定的載具. + 使用指定的钥匙来开启特定的载具 + 使用指定的鑰匙來開啟特定的載具 A Master Key will open any lock, no matter what! @@ -94,8 +94,8 @@ Uma chave mestre irá abrir qualquer fechadura, não importa qual! マスター キーは全ての鍵を開けられます。 어떤 차량도 열 수 있는 마스터키 입니다! - 万用解锁钥匙, 能解锁任何载具. - 萬用解鎖鑰匙, 能解鎖任何載具. + 万用解锁钥匙, 能解锁任何载具 + 萬用解鎖鑰匙, 能解鎖任何載具 A lockpick set that can pick the locks of most vehicles. @@ -110,8 +110,8 @@ Um set de chave mixas que pode abrir a maioria dos veículos. ピッキング ツールでは多くの車両をこじ開けられます。 거의 모든 차량을 열 수 있게 해주는 해정도구 모음입니다. - 一组解锁钥匙 (可解锁大部份载具). - 一組解鎖鑰匙 (可解鎖大部份載具). + 一组解锁钥匙 (可解锁大部份载具) + 一組解鎖鑰匙 (可解鎖大部份載具) A key that should open most WEST vehicles. @@ -126,8 +126,8 @@ Uma chave que abre a maioria dos veículos ocidentais このキーは多くの WEST 車両を開けられます。 거의 모든 서방진영 차량을 여는 열쇠입니다. - 一组解锁钥匙 (可解锁大部份蓝方载具). - 一組解鎖鑰匙 (可解鎖大部份藍方載具). + 一组解锁钥匙 (可解锁大部份蓝方载具) + 一組解鎖鑰匙 (可解鎖大部份藍方載具) A key that should open most EAST vehicle. @@ -142,8 +142,8 @@ Uma chave que abre a maioria dos veículos orientais このキーは多くの EAST 車両を開けられます。 거의 모든 동방진영 차량을 여는 열쇠입니다. - 一组解锁钥匙 (可解锁大部份红方载具). - 一組解鎖鑰匙 (可解鎖大部份紅方載具). + 一组解锁钥匙 (可解锁大部份红方载具) + 一組解鎖鑰匙 (可解鎖大部份紅方載具) A key that should open most INDEP vehicle. @@ -158,8 +158,8 @@ Uma chave que abre a maioria dos veículos independentes このキーは多くの INDEP 車両を開けられます。 거의 모든 중립진영 차량을 여는 열쇠입니다. - 一组解锁钥匙 (可解锁大部份独立方载具). - 一組解鎖鑰匙 (可解鎖大部份獨立方載具). + 一组解锁钥匙 (可解锁大部份独立方载具) + 一組解鎖鑰匙 (可解鎖大部份獨立方載具) A key that should open most CIV vehicle. @@ -174,8 +174,8 @@ Uma chave que abre a maioria dos veículos civis. このキーは多くの CIV 車両を開けられます。 거의 모든 민간인 차량을 여는 열쇠입니다 - 一组解锁钥匙 (可解锁大部份平民载具). - 一組解鎖鑰匙 (可解鎖大部份平民載具). + 一组解锁钥匙 (可解锁大部份平民载具) + 一組解鎖鑰匙 (可解鎖大部份平民載具) Vehicle Lock Setup @@ -350,8 +350,8 @@ Impostazioni per resistenza iniziale delle serrature e stato di blocco dei veicoli. Rimuove stati di blocco ambigui. ピッキング ツールの強さと車両の鍵の初期状態を設定できます。あいまいな鍵の状態を削除します。 해정도구 설정과 시작시 차량의 잠금 상태 그리고 애매한 잠금 상태를 지우는 설정입니다. - 设定开锁能力和初始载具上锁状态. 移除不明确的锁定状态. - 設定開鎖能力和初始載具上鎖狀態. 移除不明確的鎖定狀態. + 设定开锁能力和初始载具上锁状态. 移除不明确的锁定状态 + 設定開鎖能力和初始載具上鎖狀態. 移除不明確的鎖定狀態 Vehicle Key Assign @@ -382,8 +382,8 @@ Sincronizza con veicoli e giocatori. Distribuirà chiavi ai giocatori per ogni veicolo sincronizzato. Valido solo per oggetti presenti ad inizio missione. 車両とプレイヤへ同期します。プレイヤへ同期された車両のカスタム キーを作ります。これはミッション開始時に作成されたオブジェクトでのみ有効です。 차량과 플레이어에게 동기화됩니다. 동기화된 차량은 플레이어에게 열쇠를 지급합니다. 오직 미션 시작시에 생긴 물체들만 유효합니다. - 可同步在载具与玩家身上. 将使被同步的玩家掌握其他被同步载具的钥匙. 此模块只会在任务刚开始时触发. - 可同步在載具與玩家身上. 將使被同步的玩家掌握其他被同步載具的鑰匙. 此模塊只會在任務剛開始時觸發. + 可同步在载具与玩家身上. 将使被同步的玩家掌握其他被同步载具的钥匙. 此模块只会在任务刚开始时触发 + 可同步在載具與玩家身上. 將使被同步的玩家掌握其他被同步載具的鑰匙. 此模塊只會在任務剛開始時觸發 diff --git a/addons/viewdistance/stringtable.xml b/addons/viewdistance/stringtable.xml index 99857074221..7653db4ce47 100644 --- a/addons/viewdistance/stringtable.xml +++ b/addons/viewdistance/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -30,8 +30,8 @@ Consente di limitare la distanza visiva massima che può essere impostata dai giocatori. プレイヤーへ最大の視界距離を制限できます。 플레이어가 볼 수 있는 최대 시야를 제한합니다. - 允许玩家最大的可视距离. - 允許玩家最大的可視距離. + 允许玩家最大的可视距离 + 允許玩家最大的可視距離 Enable ACE viewdistance @@ -174,8 +174,8 @@ Cambia la distanza visiva in gioco quando il giocatore è in un veicolo terrestre. プレイヤーが車両の時の視界距離を変更します。 플레이어가 차량 내부일 경우의 시야를 바꿀 수 있습니다. - 改变玩家于地面载具内时的视野距离. - 改變玩家於地面載具內時的視野距離. + 改变玩家于地面载具内时的视野距离 + 改變玩家於地面載具內時的視野距離 Client View Distance (Air Vehicle) @@ -206,8 +206,8 @@ Cambia la distanza visiva in gioco quando il giocatore è in un mezzo aereo. プレイヤーが航空機に乗っている時の視界距離を変更します。 플레이어가 항공기 내부일 경우의 시야를 바꿀 수 있습니다. - 改变玩家于空中载具内时的视野距离. - 改變玩家於空中載具內時的視野距離. + 改变玩家于空中载具内时的视野距离 + 改變玩家於空中載具內時的視野距離 Dynamic Object View Distance @@ -238,8 +238,8 @@ Imposta la distanza visiva degli oggetti come un coefficiente basato sulla distanza visiva oppure basato sul campo visivo. 視野角を元にするか、視界距離によるオブジェクト描画距離を決定します。視野角を元にするオプションを有効化した場合、視野角により最低と最高値が変動します。 설정된 시야 혹은 시계(FoV)에 계수를 적용해 물체 시야를 적용합니다. 시계를 바탕으로 하는 옵션을 활성화할 경우 시계에 의한 최저와 최고치가 변동됩니다. - 设定物件可被观察的距离, 透过视野距离或是视野角度来决定. - 設定物件可被觀察的距離, 透過視野距離或是視野角度來決定. + 设定物件可被观察的距离, 透过视野距离或是视野角度来决定 + 設定物件可被觀察的距離, 透過視野距離或是視野角度來決定 Off diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index c9a4041fc57..449d495ee4b 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -30,8 +30,8 @@ Fornisce controllo su vari aspetti di Zeus. Zeus のさまざまな側面を強化します。 Zeus에게 다양한 방면의 조작을 제공해줍니다 - 提供宙斯各个方面的控制权. - 提供宙斯各個方面的控制權. + 提供宙斯各个方面的控制权 + 提供宙斯各個方面的控制權 Ascension Messages @@ -62,8 +62,8 @@ Mostra messaggi popup globali quando un giocatore viene assegnato come Zeus. プレイヤーが Zeus になるとき、全体へポップアップ表示をおこないます。 플레이어가 Zeus 될 시 서버에 이를 알리는 팝업이 등장합니다. - 当一位玩家被指定为宙斯时显示全球讯息. - 當一位玩家被指定為宙斯時顯示全球訊息. + 当一位玩家被指定为宙斯时显示全球讯息 + 當一位玩家被指定為宙斯時顯示全球訊息 Zeus Eagle @@ -532,8 +532,8 @@ %1 nie jest kompatybilny ze zjazdem linowym. %1 n'est pas compatible. %1 non è compatibile con il fastrope. - %1无法使用快速绳降系统. - %1無法使用快速繩降系統. + %1无法使用快速绳降系统 + %1無法使用快速繩降系統 Unable to remove FRIES, ropes are deployed. @@ -542,8 +542,8 @@ Nie można usunąć FRIES, liny są wypuszczone. Pas en mesure d'enlever le FRIES, les cordes ne sont pas déployées. Impossibile rimuovere le FRIES, le corde sono ancora dispiegate - 无法移除快速绳降系统, 因为绳索已被释放出来. - 無法移除快速繩降系統, 因為繩索已被釋放出來. + 无法移除快速绳降系统, 因为绳索已被释放出来 + 無法移除快速繩降系統, 因為繩索已被釋放出來 Teleport Players diff --git a/optionals/compat_adr_97/stringtable.xml b/optionals/compat_adr_97/stringtable.xml index 52e08de2b18..02d76d08e28 100644 --- a/optionals/compat_adr_97/stringtable.xml +++ b/optionals/compat_adr_97/stringtable.xml @@ -13,8 +13,8 @@ P90 TR (Fekete) P90 TR (Preto) P90 TR (黒) - P90 TR (黑色) - P90 TR (黑色) + P90 TR (黑色) + P90 TR (黑色) P90 TR (Khaki) @@ -28,8 +28,8 @@ P90 TR (Khaki) P90 TR (Caqui) P90 TR (土埃) - P90 TR (卡其色) - P90 TR (卡其色) + P90 TR (沙色) + P90 TR (沙色) P90 TR (Camo) @@ -43,8 +43,8 @@ P90 TR (Terepmintás) P90 TR (Camuflagem) P90 TR (迷彩) - P90 TR (迷彩) - P90 TR (迷彩) + P90 TR (迷彩) + P90 TR (迷彩) P90 TR (Hex) @@ -58,8 +58,8 @@ P90 TR (Hex) P90 TR (Hex) P90 TR (蜂巣) - P90 TR (數位蜂巢迷彩) - P90 TR (数位蜂巢迷彩) + P90 TR (數位蜂巢迷彩) + P90 TR (数位蜂巢迷彩) P90 (Black) @@ -73,8 +73,8 @@ P90 (Fekete) P90 (Preto) P90 (黒) - P90 (黑色) - P90 (黑色) + P90 (黑色) + P90 (黑色) P90 (Khaki) @@ -88,8 +88,8 @@ P90 (Khaki) P90 (Caqui) P90 (土埃) - P90 (卡其色) - P90 (卡其色) + P90 (沙色) + P90 (沙色) P90 (Camo) @@ -103,8 +103,8 @@ P90 (Terepmintás) P90 (Camuflagem) P90 (迷彩) - P90 (迷彩) - P90 (迷彩) + P90 (迷彩) + P90 (迷彩) P90 (Hex) @@ -118,8 +118,8 @@ P90 (Hex) P90 (Hex) P90 (蜂巣) - P90 (數位蜂巢迷彩) - P90 (数位蜂巢迷彩) + P90 (數位蜂巢迷彩) + P90 (数位蜂巢迷彩) PS90 TR (Black) @@ -133,8 +133,8 @@ PS90 TR (Fekete) PS90 TR (Preto) PS90 TR (黒) - PS90 TR (黑色) - PS90 TR (黑色) + PS90 TR (黑色) + PS90 TR (黑色) PS90 TR (Khaki) @@ -148,8 +148,8 @@ PS90 TR (Khaki) PS90 TR (Caqui) PS90 TR (土埃) - PS90 TR (卡其色) - PS90 TR (卡其色) + PS90 TR (沙色) + PS90 TR (沙色) PS90 TR (Camo) @@ -163,8 +163,8 @@ PS90 TR (Terepmintás) PS90 TR (Camuflagem) PS90 TR (迷彩) - PS90 TR (迷彩) - PS90 TR (迷彩) + PS90 TR (迷彩) + PS90 TR (迷彩) PS90 TR (Hex) @@ -178,8 +178,8 @@ PS90 TR (Hex) PS90 TR (Hex) PS90 TR (蜂巣) - PS90 TR (數位蜂巢迷彩) - PS90 TR (数位蜂巢迷彩) + PS90 TR (數位蜂巢迷彩) + PS90 TR (数位蜂巢迷彩) PS90 (Black) @@ -193,8 +193,8 @@ PS90 (Fekete) PS90 (Preto) PS90 (黒) - PS90 (黑色) - PS90 (黑色) + PS90 (黑色) + PS90 (黑色) PS90 (Khaki) @@ -208,8 +208,8 @@ PS90 (Khaki) PS90 (Caqui) PS90 (土埃) - PS90 (卡其色) - PS90 (卡其色) + PS90 (沙色) + PS90 (沙色) PS90 (Camo) @@ -223,8 +223,8 @@ PS90 (Terepmintás) PS90 (Camuflagem) PS90 (迷彩) - PS90 (迷彩) - PS90 (迷彩) + PS90 (迷彩) + PS90 (迷彩) PS90 (Hex) @@ -238,8 +238,8 @@ PS90 (Hex) PS90 (Hex) PS90 (蜂巣) - PS90 (數位蜂巢迷彩) - PS90 (数位蜂巢迷彩) + PS90 (數位蜂巢迷彩) + PS90 (数位蜂巢迷彩) 5.7mm 50Rnd Mag @@ -253,8 +253,8 @@ Caricatore 5.7mm 50Rnd Магазин из 50-ти 5,7 мм 5.7mm 50 発入り弾倉 - 5.7mm 50發 彈匣 - 5.7mm 50发 弹匣 + 5.7mm 50發 彈匣 + 5.7mm 50发 弹匣 Caliber: 5.7mm<br />Rounds: 50<br />Used in: P90 @@ -268,8 +268,8 @@ Calibre: 5.7mm<br />Cartuchos: 50<br />Usado em: P90 Kaliber: 5,7mm<br />Lövedékek: 50<br />Használható: P90 口径: 5.7mm<br />装弾数: 50<br />次で使用: P90 - 口徑: 5.7mm<br />發數: 50<br />使用於: P90 - 口径: 5.7mm<br />发数: 50<br />使用于: P90 + 口徑: 5.7mm<br />發數: 50<br />使用於: P90 + 口径: 5.7mm<br />发数: 50<br />使用于: P90 From 13293ee7aacbdb50f615272ca12ad6bf86f1dba2 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 19 Jul 2017 13:59:23 -0500 Subject: [PATCH 189/198] Add hellfire support to CUP vehicles (#5367) --- addons/hellfire/CfgMagazines.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/hellfire/CfgMagazines.hpp b/addons/hellfire/CfgMagazines.hpp index 79c5b5016ca..c5278e42648 100644 --- a/addons/hellfire/CfgMagazines.hpp +++ b/addons/hellfire/CfgMagazines.hpp @@ -24,7 +24,7 @@ class CfgMagazines { count = 1; mass = 85; pylonWeapon = QGVAR(launcher); - hardpoints[] = {"B_MISSILE_PYLON", "SCALPEL_1RND_EJECTOR", "B_ASRRAM_EJECTOR", "UNI_SCALPEL"}; + hardpoints[] = {"B_MISSILE_PYLON", "SCALPEL_1RND_EJECTOR", "B_ASRRAM_EJECTOR", "UNI_SCALPEL", "CUP_NATO_HELO_SMALL", "CUP_NATO_HELO_LARGE"}; model = "\A3\Weapons_F\DynamicLoadout\PylonPod_1x_Missile_AA_04_F.p3d"; }; class PylonRack_3Rnd_ACE_Hellfire_AGM114K: 6Rnd_ACE_Hellfire_AGM114K { // 3x Launcher Support Rack @@ -32,7 +32,7 @@ class CfgMagazines { count = 3; mass = 250; pylonWeapon = QGVAR(launcher); - hardpoints[] = {"B_MISSILE_PYLON", "UNI_SCALPEL"}; + hardpoints[] = {"B_MISSILE_PYLON", "UNI_SCALPEL", "CUP_NATO_HELO_LARGE"}; model = "\A3\Weapons_F\DynamicLoadout\PylonPod_3x_Missile_LG_scalpel_F.p3d"; mirrorMissilesIndexes[] = {2, 1, 3}; }; @@ -41,7 +41,7 @@ class CfgMagazines { count = 4; mass = 340; pylonWeapon = QGVAR(launcher); - hardpoints[] = {"UNI_SCALPEL"}; + hardpoints[] = {"UNI_SCALPEL", "CUP_NATO_HELO_LARGE"}; model = "\A3\Weapons_F\DynamicLoadout\PylonPod_4x_Missile_LG_scalpel_F.p3d"; mirrorMissilesIndexes[] = {2, 1, 4, 3}; }; From fd48c7fba94f33f4253f0601622cea94f8a6f937 Mon Sep 17 00:00:00 2001 From: Wakbub Date: Wed, 19 Jul 2017 21:01:25 +0200 Subject: [PATCH 190/198] Update the Wiki for the Settings Framework (#5363) * Update settings-framework.md Modifications and extensions. * Update settings-framework.md Replacement of the bulleted list with a numbered list, as the steps are in chronological order. Removal of superfluous text. --- docs/wiki/framework/settings-framework.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/wiki/framework/settings-framework.md b/docs/wiki/framework/settings-framework.md index 47ad8ceb18f..0da3186e38d 100644 --- a/docs/wiki/framework/settings-framework.md +++ b/docs/wiki/framework/settings-framework.md @@ -71,14 +71,15 @@ The server config setting entries are done through our optional `ace_server.pbo` ACE3 contains a lot of settings, for that reason tweaking everything to your liking manually can be quite a task. We have provided the option to export all settings in the editor (single-player). For this, follow these simple steps: -- Open the editor (single-player). -- Under modules (F7), find ACE, `Allow Config Export [ACE]`. -- Place down the module, ensure that the `Allow` parameter is set to `Yes`. -- Press preview, once in the game, press Esc and open the ACE3 Options dialog (top left) -- This is the dialog where you can modify client side settings. On the bottom left of it, you will now see a button called `Config Export`. Press it and a new dialog opens. -- You are now in the dialog that allows you to adjust all settings from ACE3. Tweak this to your liking. -- Once you are done tweaking, press the `Export` button and all settings will be copied to your clipboard. -- Paste the settings in your `serverconfig.hpp` file and you're done. +1. Open the `Eden Editor`. +1. Place a playable character. +1. Click `Systems` (F5) > `Modules` > `ACE`. +1. Place the `Allow Config Export [ACE]` module. Ensure that its `Allow` parameter is set to `Yes`. +1. Click `Play` > `Play in Singleplayer (SP)` (Enter). +1. Once in the game, press Esc, and click `ACE OPTIONS` (in the top-left corner) to open the `ACE Options` dialog. Here you can modify client-side settings. +1. Click `Open Export Menu` at the bottom of the dialog to open another dialog. Here you can adjust all `ACE3 settings`, both client-side and server-side. Tweak them to your liking. +1. Once you are done tweaking, click `Export` to copy all server-side settings to the clipboard. +1. Paste the settings in your copy of `serverconfig.hpp` and save the file. Please note that in the `serverconfig.hpp` file there is no need for adding the `ACE_Settings` class. From 7655c837e8b648db61ea269f7eb231f514a79130 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Sun, 23 Jul 2017 13:15:35 +0200 Subject: [PATCH 191/198] replace http urls by https --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 747d01bb428..55ba2379b72 100644 --- a/README.md +++ b/README.md @@ -18,8 +18,8 @@ ACE3 License - - ACE3 Slack + + ACE3 Slack ACE3 Build Status @@ -28,7 +28,7 @@

    Requires the latest version of CBA A3.
    - Visit us on Twitter | Facebook | YouTube | Reddit
    + Visit us on Twitter | Facebook | YouTube | Reddit

    **ACE3** is a joint effort by the teams behind **ACE2**, **AGM** and **CSE** to improve the realism and authenticity of Arma 3. @@ -74,16 +74,16 @@ The mod is **built modularly**, so almost any included PBO can be easily removed ### Guides & how-tos If you installed ACE3 but have trouble understanding how it all works, or where to start, read this first: -- [Installation guide](http://ace3mod.com/wiki/user/installation-guide.html) -- [Information center](http://ace3mod.com/wiki/user/information-center.html) +- [Installation guide](https://ace3mod.com/wiki/user/installation-guide.html) +- [Information center](https://ace3mod.com/wiki/user/information-center.html) #### Contributing You can help out with the ongoing development by looking for potential bugs in our code base, or by contributing new features. To contribute something to ACE3, simply fork this repository and submit your pull requests for review by other collaborators. Remember to add yourself to the author array of any PBO you will be editing and the [`AUTHORS.txt`](https://github.com/acemod/ACE3/blob/master/AUTHORS.txt) file; including a valid email address. Please, use our [Issue Tracker](https://github.com/acemod/ACE3/issues) to report a bug, propose a feature, or suggest changes to the existing ones. See also: -- [How to report an issue](http://ace3mod.com/wiki/user/how-to-report-an-issue.html) -- [How to make a feature request](http://ace3mod.com/wiki/user/how-to-make-a-feature-request.html) +- [How to report an issue](https://ace3mod.com/wiki/user/how-to-report-an-issue.html) +- [How to make a feature request](https://ace3mod.com/wiki/user/how-to-make-a-feature-request.html) #### Testing & building To help us test the latest development changes, download our master branch ([directly](https://github.com/acemod/ACE3/archive/master.zip), or [with git](https://help.github.com/articles/fetching-a-remote/)), then assemble a test build: -- [Setting up the development environment](http://ace3mod.com/wiki/development/setting-up-the-development-environment.html) – step-by-step instructions on how to properly setup and build a version of ACE3 for testing purposes. +- [Setting up the development environment](https://ace3mod.com/wiki/development/setting-up-the-development-environment.html) – step-by-step instructions on how to properly setup and build a version of ACE3 for testing purposes. From 8b7a8626118ee4add77b1bb38727dde7fb9bbfa6 Mon Sep 17 00:00:00 2001 From: classic Date: Sun, 23 Jul 2017 21:27:50 +0900 Subject: [PATCH 192/198] Update the Jpn translate fd48c7f (#5381) * Update the Jpn translation Support to new entry * Update the Jpn translation for more Natural words. * Update the Jpn translation Unification of words. * Update the Jpn translation tweaks to words. * Update the Jpn translation Fix to wrong translation. * Update the Jpn translation added translation to Proper noun * Update to Jpn translation Fix to wrong translation. --- addons/advanced_fatigue/stringtable.xml | 1 + addons/finger/stringtable.xml | 20 ++++++++++---------- addons/kestrel4500/stringtable.xml | 10 +++++----- addons/medical/stringtable.xml | 6 +++--- addons/medical_menu/stringtable.xml | 2 +- addons/microdagr/stringtable.xml | 12 ++++++------ addons/missileguidance/stringtable.xml | 8 ++++---- 7 files changed, 30 insertions(+), 29 deletions(-) diff --git a/addons/advanced_fatigue/stringtable.xml b/addons/advanced_fatigue/stringtable.xml index bda9a42230b..523b7adaa85 100644 --- a/addons/advanced_fatigue/stringtable.xml +++ b/addons/advanced_fatigue/stringtable.xml @@ -5,6 +5,7 @@ Advanced Fatigue 進階疲勞 进阶疲劳 + アドバンスド疲労 Performance Factor diff --git a/addons/finger/stringtable.xml b/addons/finger/stringtable.xml index b165185358f..47a306ef86c 100644 --- a/addons/finger/stringtable.xml +++ b/addons/finger/stringtable.xml @@ -12,7 +12,7 @@ Mostrar el indicador de señalado a uno mismo Zobrazit ukázání směru pro sebe Mostra puntatore per te stesso - 自分にポインティング表記を表示する + 自分に指差し表記を表示する 자신이 가리키는곳을 보여줍니다 显示指向指示器给自己 顯示指向指示器給自己 @@ -28,7 +28,7 @@ Muestra el indicador para el jugador que apunta. Esta opción no afecta si los otros jugadores verían el indicador Zobrazit infikátor, když ukážete prstem. Tato volba nemá vliv, zda ostatní hráči uvidí indikátor nebo ne. Mostra puntatore per il giocatore indicato. Questa opzione non influisce la possibilità che gli altri giocatori vedano il puntatore - プレイヤーへのポインティング表記を描画します。このオプションは他のプレイヤーの表記に影響しません。 + プレイヤーへの指差し表記を描画します。このオプションは他のプレイヤーの表記に影響しません。 대상이 가리키는곳을 보이게 합니다. 显示指向指示器给玩家自己. 此选项设定并不影响其他玩家能否看到指示器 顯示指向指示器給玩家自己. 此選項設定並不影響其他玩家能否看到指示器 @@ -44,7 +44,7 @@ Indicador de señalado Ukazování směru Indicatore di puntamento - ポインティング表記 + 指差し表記 가리키기 표시기 指向指示器 指向指示器 @@ -60,7 +60,7 @@ Color del círculo indicador que señala Barva kruhu pro ukázání směru Colore del cerchio dell'indicatore di puntamento - ポインティング表記の円の色 + 指差し表記の円の色 가리키기의 원형 색상 指向指示器颜色 指向指示器顏色 @@ -76,7 +76,7 @@ Acción "apuntar con el dedo a" Akce "ukázat prstem na" Azione "punta il dito a" - "point a finger at"キー + "指差し"キー "손가락으로 가리키기"행동 使"手指指向在" 使"手指指向在" @@ -92,7 +92,7 @@ Señala y muestra un marcador virtual donde ustás apuntando para las unidades cercanas. Puede ser mantenido. Ukazuje virtuální značku kruhu ve směru, kterým se díváte pro všechny blízké jednotky. Punta e mostra un marker virtuale di dove stai guardando alle unità vicine. Può essere tenuto premuto. - ポイント、そして架空のマーカー表記は自ユニットの近くにいると表記されます。これは押しっぱなしにできます。 + 指差しが出すマーカー表記は自ユニットの近くにいると表記されます。これは押しっぱなしにできます。 당신이 보는것을 가상의 마커로 표시함으로서 다른 인원이 볼 수 있게 합니다. 누른채로 유지할 수 있습니다. 当按下此按键后, 你附近的单位即可看见一个虚拟图示, 标明你正在指向的位置. 此按键可以被按住来持续显示 當按下此按鍵後, 你附近的單位即可看見一個虛擬圖示, 標明你正在指向的位置. 此按鍵可以被按住來持續顯示 @@ -108,7 +108,7 @@ Ajustes de señalado Nastavení ukázování směru Impostazioni puntamento - ポインティング設定 + 指差し設定 가리키기 설정 指向设定 指向設定 @@ -124,7 +124,7 @@ Señalado habilitado Ukazování povoleno Puntamento abilitato - ポインティングを有効 + 指差しを有効 가리키기 활성화 指向系统启动 指向系統啟動 @@ -140,7 +140,7 @@ Distancia máxima de señalado Maximální dosah pro ukazování směru Raggio massimo puntamento - ポインティングの最大範囲 + 指差しの最大範囲 가리키기 최대 범위 指向指示器最大显示距离 指向指示器最大顯示距離 @@ -156,7 +156,7 @@ Distancia máxima entre los jugadores para mostrar el indicador que señala [por defecto: 4 metros] Maximální vzdálenost mezi hráči pro ukázání směru [výchozí: 4 metry] Distanza massima tra giocatori per mostrare l'indicatore di puntamento [default: 4 metri] - ポインティング表記が他のプレイヤーに表示される範囲を決定できます。(標準 4 メートル) + 指差し表記が他のプレイヤーに表示される範囲を決定できます。(標準 4 メートル) 플레이어 사이에서 가리키기 표시를 보이게 하는 최대거리를 설정합니다[기본설정: 4 미터] 设定指向指示器最大显示距离. [预设: 4公尺] 設定指向指示器最大顯示距離. [預設: 4公尺] diff --git a/addons/kestrel4500/stringtable.xml b/addons/kestrel4500/stringtable.xml index bb65f221912..f83c875d579 100644 --- a/addons/kestrel4500/stringtable.xml +++ b/addons/kestrel4500/stringtable.xml @@ -12,7 +12,7 @@ Kestrel 4500NV Kestrel 4500NV Kestrel 4500NV - Kestrel 4500NV + ケストレル 4500NV Kestrel 4500NV 猎隼4500测风仪 獵隼4500測風儀 @@ -28,7 +28,7 @@ Kestrel 4500 Medidor Balístico Ativo Kestrel 4500 kézi szél-és időjárásmérő Příruční meteostanice Kestrel 4500 - Kestrel 4500 携帯型風速計 + ケストレル 4500 携帯型風速計 Kestrel 4500 휴대형 기상 관측기 猎隼4500掌上型天气追踪仪 獵隼4500掌上型天氣追蹤儀 @@ -60,7 +60,7 @@ Kestrel 4500 mutatása Zobrazit Kestrel 4500 Mostrar Kestrel 4500 - Kestrel 4500 を見る + ケストレル 4500 を見る Kestrel 4500 보이기 显示猎隼4500测风仪 顯示獵隼4500測風儀 @@ -92,7 +92,7 @@ Kestrel 4500 elővétele Otevřít Kestrel 4500 Abrir Kestrel 4500 - Kestrel 4500 を開く + ケストレル 4500 を開く Kestrel 4500 열기 开启猎隼4500测风仪 開啟獵隼4500測風儀 @@ -108,7 +108,7 @@ Kestrel 4500 mutatása Zobrazit Kestrel 4500 Mostrar Kestrel 4500 - Kestrel 4500 を見る + ケストレル 4500 を見る Kestrel 4500 숨기기 显示猎隼4500测风仪 顯示獵隼4500測風儀 diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index ff304546d96..b0e0b6c611b 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -1018,7 +1018,7 @@ Sok vért vesztett Ha perso parecchio sangue Perdeu muito sangue - 大量出血している + 大量失血している 많은 양의 혈액을 잃음 大量失血中 大量失血中 @@ -2487,7 +2487,7 @@ Ztratil hodně krve Ele perdeu muito sangue Ha perso molto sangue - 彼は大量出血している + 彼は大量失血している 많은 양의 피를 잃었다 他流失大量血液 他流失大量血液 @@ -2503,7 +2503,7 @@ Nem vesztett vért Neztratil žádnou krev Ele não perdeu sangue - 彼は出血していない + 彼は失血していない 피를 잃지 않았다 他并没有失血 他並沒有失血 diff --git a/addons/medical_menu/stringtable.xml b/addons/medical_menu/stringtable.xml index 20180d3b91e..5cf2bdca6b7 100644 --- a/addons/medical_menu/stringtable.xml +++ b/addons/medical_menu/stringtable.xml @@ -791,7 +791,7 @@ Perdeu muito sangue Ztratil hodně krve Perso molto Sangue - 大量出血している + 大量失血している 많은 피를 흘림 大量失血 大量失血 diff --git a/addons/microdagr/stringtable.xml b/addons/microdagr/stringtable.xml index 023c92d7a75..03de6a72d14 100644 --- a/addons/microdagr/stringtable.xml +++ b/addons/microdagr/stringtable.xml @@ -44,7 +44,7 @@ Szögmértékegység: Unità angolare: Unidade Angular: - 角度の種類: + 角度の種類: 각도의 단위: 角密位: 角密位: @@ -60,7 +60,7 @@ Mil Mils Mils: - ミリ ラジアン + ミル 密位 密位 @@ -76,7 +76,7 @@ Útvonalpontok mutatása a térképen: Mostra waypoint sulla mappa: Mostrar Waypoints no mapa: - 地図へウェイポイントを表示: + 地図へウェイポイントを表示: 웨이포인트를 지도에 보이기: 显示路径点在地图上: 顯示路徑點在地圖上: @@ -140,7 +140,7 @@ Add meg a rácskoordinátákat: Introduci griglia coordinate: Digite as Ccords. do Grid - 座標を入力: + 座標を入力: 망 좌표 입력: 输入网格座标: 輸入網格座標: @@ -204,7 +204,7 @@ Távolság: Distanza: Distância: - 距離: + 距離: 거리: 范围: 範圍: @@ -300,7 +300,7 @@ UP Beállítása Definisci WayPoints Definir WP - ウェイポイント設定 + ウェイポイント設定 웨이포인트 설정 设置路径点 設置路徑點 diff --git a/addons/missileguidance/stringtable.xml b/addons/missileguidance/stringtable.xml index f2052d88b93..b95e6a4dee2 100644 --- a/addons/missileguidance/stringtable.xml +++ b/addons/missileguidance/stringtable.xml @@ -44,7 +44,7 @@ Míssil Hydra-70 DAGR Hydra-70 DAGR rakéta Hydra-70 DAGR - Hydra-70 DAGR ミサイル + ハイドラ-70 DAGR ミサイル Hydra-70 DAGR 미사일 九头蛇-70 直接攻击导引飞弹 九頭蛇-70 直接攻擊導引飛彈 @@ -76,7 +76,7 @@ Míssil guiado a laser Hydra-70 DAGR Hydra-70 DAGR lézer-irányított rakéta Управляемая ракета лазерного наведения Hydra-70 DAGR - Hydra-70 DAGR レーザ誘導ミサイル + ハイドラ-70 DAGR レーザ誘導ミサイル Hydra-70 DAGR 레이저 유도 미사일 九头蛇-70 直接攻击雷射导引飞弹 九頭蛇-70 直接攻擊雷射導引飛彈 @@ -92,7 +92,7 @@ Míssil Hellfire II AGM-114K Hellfire II AGM-114K rakéta Hellfire II AGM-114K - Hellfire II AGM-114K ミサイル + ヘルファイア II AGM-114K ミサイル Hellfire II AGM-114K 미사일 地狱火II型 AGM-114K 导弹 地獄火II型 AGM-114K 導彈 @@ -124,7 +124,7 @@ Míssil guiado a laser Hellfire II AGM-114K Hellfire II AGM-114K lézer-irányított rakéta Управляемая ракета лазерного наведения Hellfire II AGM-114K - Hellfire II AGM-114K レーザ誘導ミサイル + ヘルファイア II AGM-114K レーザ誘導ミサイル Hellfire II AGM-114K 레이저 유도 미사일 地狱火II型 AGM-114K 雷射导引飞弹 地獄火II型 AGM-114K 雷射導引飛彈 From 20e50176e66f8d8611a5b7dbaf913cb75d5f8417 Mon Sep 17 00:00:00 2001 From: Dystopian Date: Thu, 27 Jul 2017 09:26:24 +0300 Subject: [PATCH 193/198] Add addon template and fast recompiling descriptions to wiki (#5388) * Add addon template mention * Add fast function recompiling mention * Add LINKFUNC macro description * Update coding-guidelines.md --- docs/wiki/development/coding-guidelines.md | 6 ++++++ .../development/setting-up-the-development-environment.md | 2 ++ 2 files changed, 8 insertions(+) diff --git a/docs/wiki/development/coding-guidelines.md b/docs/wiki/development/coding-guidelines.md index 79214e4ecdf..53363ba312f 100644 --- a/docs/wiki/development/coding-guidelines.md +++ b/docs/wiki/development/coding-guidelines.md @@ -58,6 +58,9 @@ class ACE_Settings { }; ``` +#### 1.2.5 Addon template +Addon template is at [extras/blank](https://github.com/acemod/ACE3/tree/master/extras/blank){:target="_blank"} repo directory. + ### 1.3 Stringtable All text that shall be displayed to a user shall be defined in a `stringtable.xml` file for multi-language support. @@ -87,6 +90,7 @@ There also exists the `FUNC` family of Macros: |`EFUNC(leg,face)` | `ace_leg_fnc_face` or the call trace wrapper for that function. | |`DFUNC(face)` | `ace_balls_fnc_face` and will ALWAYS be the function global variable. | |`DEFUNC(leg,face)` | `ace_leg_fnc_face` and will ALWAYS be the function global variable. | +|`LINKFUNC(face)` | `FUNC(face)` or "pass by reference" `{_this call FUNC(face)}` | |`QFUNC(face)` | `"ace_balls_fnc_face"` | |`QEFUNC(leg,face)` | `"ace_leg_fnc_face"` | |`QQFUNC(face)` | `""ace_balls_fnc_face""` used inside `QUOTE` macros where double quotation is required. | @@ -96,6 +100,8 @@ The `FUNC` and `EFUNC` macros shall NOT be used inside `QUOTE` macros if the int Using `FUNC` or `EFUNC` inside a `QUOTE` macro is fine if the intention is for it to be executed as a function. +`LINKFUNC` macro allows to recompile function used in event handler code when function cache is disabled. E.G. `player addEventHandler ["Fired", LINKFUNC(firedEH)];` will run updated code after each recompile. + #### 2.1.1 `FUNC` Macros, Call Tracing, and Non-ACE3/Anonymous Functions ACE3 implements a basic call tracing system that can dump the call stack on errors or wherever you want. To do this the `FUNC` macros in debug mode will expand out to include metadata about the call including line numbers and files. This functionality is automatic with the use of calls via `FUNC` and `EFUNC`, but any calls to other functions need to use the following macros: diff --git a/docs/wiki/development/setting-up-the-development-environment.md b/docs/wiki/development/setting-up-the-development-environment.md index 580552aaa46..e081f934819 100644 --- a/docs/wiki/development/setting-up-the-development-environment.md +++ b/docs/wiki/development/setting-up-the-development-environment.md @@ -127,6 +127,8 @@ class CfgSettings { #define DISABLE_COMPILE_CACHE ``` +All functions with disabled caching can be recompiled with `[] call ACE_PREP_RECOMPILE;` command without mission restart. You can add a addAction/keybind/pfeh with this code and use it for fast recompiling. + ### 7.2 Restrictions Files must exist in the built PBOs for file patching to work. If you create a new file you must rebuild the PBO or Arma will not find it in your file paths. From 03b51a6c5033bae80cd3e3ff5159937299bebf6b Mon Sep 17 00:00:00 2001 From: Dystopian Date: Sun, 30 Jul 2017 20:29:23 +0300 Subject: [PATCH 194/198] Add CBA Keybinding link to Shortcuts wiki (#5394) --- docs/wiki/user/shortcuts.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/wiki/user/shortcuts.md b/docs/wiki/user/shortcuts.md index 6b507ee1064..dc6578f7765 100644 --- a/docs/wiki/user/shortcuts.md +++ b/docs/wiki/user/shortcuts.md @@ -7,6 +7,8 @@ order: 5 parent: wiki --- +Refer to [CBA Keybinding wiki](https://github.com/CBATeam/CBA_A3/wiki/Keybinding){:target="_blank"} on how to change ACE shortcuts. + From a0b5f9f2d5a2212c34bf8f468444ddc8e8d473f0 Mon Sep 17 00:00:00 2001 From: Tim Beswick Date: Thu, 3 Aug 2017 18:50:29 +0100 Subject: [PATCH 195/198] Laser seeker range improvements (#5365) * Workaround for laser max range. Made laser hud seeker use ammo values. * Nested ifs for optimization of check --- addons/hellfire/functions/fnc_showHud.sqf | 5 ++++- addons/laser/functions/fnc_seekerFindLaserSpot.sqf | 6 +++--- addons/laser/functions/fnc_shootRay.sqf | 7 +++++++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/addons/hellfire/functions/fnc_showHud.sqf b/addons/hellfire/functions/fnc_showHud.sqf index c79780c3feb..380a31b0817 100644 --- a/addons/hellfire/functions/fnc_showHud.sqf +++ b/addons/hellfire/functions/fnc_showHud.sqf @@ -91,9 +91,12 @@ GVAR(pfID) = [{ private _ctrlIcon = (uiNamespace getVariable [QGVAR(display), displayNull]) displayCtrl IDC_LASERICON; // Do Laser Scan: + private _ammo = getText (configFile >> "CfgMagazines" >> _vehicle currentMagazineTurret _turretPath >> "ammo"); private _laserSource = AGLtoASL (_vehicle modelToWorld (_vehicle selectionPosition _seekerSource)); private _laserCode = _vehicle getVariable [QEGVAR(laser,code), ACE_DEFAULT_LASER_CODE]; - private _laserResult = [_laserSource, vectorDir _vehicle, 70, 5000, [ACE_DEFAULT_LASER_WAVELENGTH,ACE_DEFAULT_LASER_WAVELENGTH], _laserCode, _vehicle] call EFUNC(laser,seekerFindLaserSpot); + private _seekerAngle = getNumber (configFile >> "CfgAmmo" >> _ammo >> "ace_missileguidance" >> "seekerAngle"); + private _seekerMaxRange = getNumber (configFile >> "CfgAmmo" >> _ammo >> "ace_missileguidance" >> "seekerMaxRange"); + private _laserResult = [_laserSource, vectorDir _vehicle, _seekerAngle, _seekerMaxRange, [ACE_DEFAULT_LASER_WAVELENGTH,ACE_DEFAULT_LASER_WAVELENGTH], _laserCode, _vehicle] call EFUNC(laser,seekerFindLaserSpot); private _foundTargetPos = _laserResult select 0; private _haveLock = !isNil "_foundTargetPos"; diff --git a/addons/laser/functions/fnc_seekerFindLaserSpot.sqf b/addons/laser/functions/fnc_seekerFindLaserSpot.sqf index 460add1c742..3c144b0eae5 100644 --- a/addons/laser/functions/fnc_seekerFindLaserSpot.sqf +++ b/addons/laser/functions/fnc_seekerFindLaserSpot.sqf @@ -25,15 +25,15 @@ BEGIN_COUNTER(seekerFindLaserSpot); -params ["_posASL", "_dir", "_seekerFov", "_seekerMaxDistnace", "_seekerWavelengths", "_seekerCode", ["_ignoreObj1", objNull]]; +params ["_posASL", "_dir", "_seekerFov", "_seekerMaxDistance", "_seekerWavelengths", "_seekerCode", ["_ignoreObj1", objNull]]; _dir = vectorNormalized _dir; _seekerWavelengths params ["_seekerWavelengthMin", "_seekerWavelengthMax"]; private _seekerCos = cos _seekerFov; -private _seekerMaxDistSq = _seekerMaxDistnace ^ 2; +private _seekerMaxDistSq = _seekerMaxDistance ^ 2; -TRACE_6("",_posASL,_dir,_seekerFov,_seekerMaxDistnace,_seekerWavelengths,_seekerCode); +TRACE_6("",_posASL,_dir,_seekerFov,_seekerMaxDistance,_seekerWavelengths,_seekerCode); private _spots = []; private _finalPos = nil; diff --git a/addons/laser/functions/fnc_shootRay.sqf b/addons/laser/functions/fnc_shootRay.sqf index ceae27fe77c..88844c5c957 100644 --- a/addons/laser/functions/fnc_shootRay.sqf +++ b/addons/laser/functions/fnc_shootRay.sqf @@ -28,6 +28,13 @@ private _resultPos = nil; private _farPoint = _posASL vectorAdd (_dir vectorMultiply 10000); private _intersects = lineIntersectsSurfaces [_posASL, _farPoint, _ignoreVehicle1, _ignoreVehicle2]; +// workaround for lineIntersectsSurfaces using a hardcoded max distance of 5000m. New max distance 15000m +if (_intersects isEqualTo []) then { + _intersects = lineIntersectsSurfaces [_posASL vectorAdd (_dir vectorMultiply 5000), _farPoint vectorAdd (_dir vectorMultiply 5000), _ignoreVehicle1, _ignoreVehicle2]; + if (_intersects isEqualTo []) then { + _intersects = lineIntersectsSurfaces [_posASL vectorAdd (_dir vectorMultiply 10000), _farPoint vectorAdd (_dir vectorMultiply 10000), _ignoreVehicle1, _ignoreVehicle2]; + }; +}; if (!(_intersects isEqualTo [])) then { (_intersects select 0) params ["_intersectPosASL", "", "_intersectObject"]; From 292844690aeed48509e1db9b28fd3ebc1da4e7cf Mon Sep 17 00:00:00 2001 From: SilentSpike Date: Wed, 9 Aug 2017 11:34:35 +0100 Subject: [PATCH 196/198] Add Pentolite Gurney constant to wiki (#5413) Hard to find a reference for this, but figure it is useful to others as it's fairly common in older HEAT shells (WW2 stuff is why this even came to my attention) and modern fast-acting explosives. It's a bit of an approximation as I had to interpolate the value of the first reference so that it was correct relative to the other values on our wiki (by using two other explosives common to both tables). The second reference in fps converts to roughly the same value in m/s so I'm content to call it good. References: http://axpro.mines.edu/documents/MNGN%20444_Fragmentation%20and%20Safety%20Distances%20_Examples.pdf, p.3 http://dtic.mil/dtic/tr/fulltext/u2/783941.pdf, p.25 --- docs/wiki/framework/frag-framework.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/wiki/framework/frag-framework.md b/docs/wiki/framework/frag-framework.md index 1ec5ebed976..07c59764f58 100644 --- a/docs/wiki/framework/frag-framework.md +++ b/docs/wiki/framework/frag-framework.md @@ -70,6 +70,7 @@ LX-14 | 2970 m/s Octol 75/25 | 2800 m/s PBX 9404 | 2900 m/s PBX 9502 | 2377 m/s +Pentolite | 2750 m/s PETN | 2930 m/s RDX | 2830 m/s Tetryl | 2500 m/s From ff1247daef6791723bbe6e7f73b66c5723f5054b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ozan=20E=C4=9Fitmen?= Date: Thu, 10 Aug 2017 14:32:55 +0300 Subject: [PATCH 197/198] Change "Remove Wheel" Action's Color Based on Damage (#5415) * Change repair action's colors on wheels * Add dots. --- addons/repair/XEH_PREP.hpp | 1 + .../repair/functions/fnc_addRepairActions.sqf | 8 ++--- addons/repair/functions/fnc_doFullRepair.sqf | 2 +- .../repair/functions/fnc_getClaimObjects.sqf | 2 +- .../functions/fnc_modifyInteraction.sqf | 4 +-- .../fnc_modifySelectionInteraction.sqf | 32 ++++++++++++++++++ .../functions/fnc_setHitPointDamage.sqf | 2 +- addons/repair/ui/repair_0_ca.paa | Bin 0 -> 5625 bytes addons/repair/ui/repair_1_ca.paa | Bin 0 -> 5625 bytes addons/repair/ui/repair_2_ca.paa | Bin 0 -> 5625 bytes addons/repair/ui/repair_3_ca.paa | Bin 0 -> 5625 bytes addons/repair/ui/repair_4_ca.paa | Bin 0 -> 5625 bytes addons/repair/ui/repair_5_ca.paa | Bin 0 -> 5625 bytes addons/repair/ui/repair_6_ca.paa | Bin 0 -> 5625 bytes addons/repair/ui/repair_7_ca.paa | Bin 0 -> 5625 bytes addons/repair/ui/repair_8_ca.paa | Bin 0 -> 5625 bytes 16 files changed, 41 insertions(+), 10 deletions(-) create mode 100644 addons/repair/functions/fnc_modifySelectionInteraction.sqf create mode 100644 addons/repair/ui/repair_0_ca.paa create mode 100644 addons/repair/ui/repair_1_ca.paa create mode 100644 addons/repair/ui/repair_2_ca.paa create mode 100644 addons/repair/ui/repair_3_ca.paa create mode 100644 addons/repair/ui/repair_4_ca.paa create mode 100644 addons/repair/ui/repair_5_ca.paa create mode 100644 addons/repair/ui/repair_6_ca.paa create mode 100644 addons/repair/ui/repair_7_ca.paa create mode 100644 addons/repair/ui/repair_8_ca.paa diff --git a/addons/repair/XEH_PREP.hpp b/addons/repair/XEH_PREP.hpp index 692bee6112c..7c2e5a1f159 100644 --- a/addons/repair/XEH_PREP.hpp +++ b/addons/repair/XEH_PREP.hpp @@ -24,6 +24,7 @@ PREP(isInRepairFacility); PREP(isNearRepairVehicle); PREP(isRepairVehicle); PREP(modifyInteraction); +PREP(modifySelectionInteraction); PREP(moduleAddSpareParts); PREP(moduleAssignEngineer); PREP(moduleAssignRepairVehicle); diff --git a/addons/repair/functions/fnc_addRepairActions.sqf b/addons/repair/functions/fnc_addRepairActions.sqf index 398083a080a..2fd191ff039 100644 --- a/addons/repair/functions/fnc_addRepairActions.sqf +++ b/addons/repair/functions/fnc_addRepairActions.sqf @@ -39,6 +39,7 @@ _hitPointsAddedNames = []; _hitPointsAddedStrings = []; _hitPointsAddedAmount = []; _processedHitpoints = []; +_icon = QPATHTOF(ui\repair_0_ca.paa); { _selection = _x; @@ -48,8 +49,6 @@ _processedHitpoints = []; // Wheels should always be unique if (_hitpoint in _processedHitpoints) exitWith {TRACE_3("Duplicate Wheel",_hitpoint,_forEachIndex,_selection);}; - _icon = "A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; - _position = compile format ["_target selectionPosition ['%1', 'HitPoints'];", _selection]; TRACE_3("Adding Wheel Actions",_hitpoint,_forEachIndex,_selection); @@ -59,7 +58,7 @@ _processedHitpoints = []; private _text = localize LSTRING(RemoveWheel); _condition = {[_this select 1, _this select 0, _this select 2 select 0, "RemoveWheel"] call DFUNC(canRepair)}; _statement = {[_this select 1, _this select 0, _this select 2 select 0, "RemoveWheel"] call DFUNC(repair)}; - _action = [_name, _text, _icon, _statement, _condition, {}, [_hitpoint], _position, 2] call EFUNC(interact_menu,createAction); + _action = [_name, _text, _icon, _statement, _condition, {}, [_hitpoint], _position, 2, nil, FUNC(modifySelectionInteraction)] call EFUNC(interact_menu,createAction); [_type, 0, [], _action] call EFUNC(interact_menu,addActionToClass); // An action to replace the wheel is required @@ -121,7 +120,6 @@ _processedHitpoints = []; // Prepair the repair action _name = format ["Repair_%1_%2", _forEachIndex, _selection]; - _icon = "A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; // Find localized string and track those added for numerization ([_hitpoint, "%1", _hitpoint, [_hitPointsAddedNames, _hitPointsAddedStrings, _hitPointsAddedAmount]] call FUNC(getHitPointString)) params ["_text", "_trackArray"]; @@ -161,7 +159,7 @@ _processedHitpoints = []; _condition = {[_this select 1, _this select 0, "", "fullRepair"] call DFUNC(canRepair)}; _statement = {[_this select 1, _this select 0, "", "fullRepair"] call DFUNC(repair)}; -_action = [QGVAR(fullRepair), localize LSTRING(fullRepair), "A3\ui_f\data\igui\cfg\actions\repair_ca.paa", _statement, _condition, {}, [], "", 4] call EFUNC(interact_menu,createAction); +_action = [QGVAR(fullRepair), localize LSTRING(fullRepair), _icon, _statement, _condition, {}, [], "", 4] call EFUNC(interact_menu,createAction); [_type, 0, ["ACE_MainActions", QGVAR(Repair)], _action] call EFUNC(interact_menu,addActionToClass); // set class as initialized diff --git a/addons/repair/functions/fnc_doFullRepair.sqf b/addons/repair/functions/fnc_doFullRepair.sqf index ed67a69e995..492ceb01a02 100644 --- a/addons/repair/functions/fnc_doFullRepair.sqf +++ b/addons/repair/functions/fnc_doFullRepair.sqf @@ -1,6 +1,6 @@ /* * Author: Glowbal - * Fully repairs vehicle + * Fully repairs vehicle. * * Arguments: * 0: Unit that does the repairing (not used) diff --git a/addons/repair/functions/fnc_getClaimObjects.sqf b/addons/repair/functions/fnc_getClaimObjects.sqf index c2311a467f9..18b2e9f7ef9 100644 --- a/addons/repair/functions/fnc_getClaimObjects.sqf +++ b/addons/repair/functions/fnc_getClaimObjects.sqf @@ -1,6 +1,6 @@ /* * Author: PabstMirror - * Returns array of required nearby repair objects (wheels/tracks) + * Returns array of required nearby repair objects (wheels/tracks). * * Arguments: * 0: Unit that does the repairing diff --git a/addons/repair/functions/fnc_modifyInteraction.sqf b/addons/repair/functions/fnc_modifyInteraction.sqf index f1956ee384e..5288d102112 100644 --- a/addons/repair/functions/fnc_modifyInteraction.sqf +++ b/addons/repair/functions/fnc_modifyInteraction.sqf @@ -1,6 +1,6 @@ /* * Author: PabstMirror - * Modifies the base interaction point for repair items to show it's current damage + * Modifies the base interaction point for repair items to show it's current damage. * * Arguments: * 0: Target @@ -12,7 +12,7 @@ * None * * Example: - * [cursorObject, player, [], []] call ace_repair_fnc_modifyInteraction; + * [cursorObject, ace_player, [], []] call ace_repair_fnc_modifyInteraction; * * Public: No */ diff --git a/addons/repair/functions/fnc_modifySelectionInteraction.sqf b/addons/repair/functions/fnc_modifySelectionInteraction.sqf new file mode 100644 index 00000000000..cf776a18312 --- /dev/null +++ b/addons/repair/functions/fnc_modifySelectionInteraction.sqf @@ -0,0 +1,32 @@ +/* + * Author: 654wak654 + * Modifies interaction color of vehicle selection to show it's current damage. + * + * Arguments: + * 0: Target + * 1: Player + * 2: Args + * 3: Action Data + * + * Return Value: + * None + * + * Example: + * [cursorObject, ace_player, [], []] call ace_repair_fnc_modifySelectionInteraction; + * + * Public: No + */ +#include "script_component.hpp" + +params ["_target", "_player", "_args", "_actionData"]; +TRACE_4("params",_target,_player,_args,_actionData); + +// Interaction wrenches numbered 0..8, white to red. +// Convert damage to number (rounding up), so that even slight damage can bee seen + +private _fileName = format [ + QPATHTOF(ui\repair_%1_ca.paa), + ceil (linearConversion [0, 1, _target getHitPointDamage (_args select 0), 0, 8, true]) +]; + +_actionData set [2, _fileName]; diff --git a/addons/repair/functions/fnc_setHitPointDamage.sqf b/addons/repair/functions/fnc_setHitPointDamage.sqf index 57c65d14074..9fd036b3809 100644 --- a/addons/repair/functions/fnc_setHitPointDamage.sqf +++ b/addons/repair/functions/fnc_setHitPointDamage.sqf @@ -1,7 +1,7 @@ /* * Author: commy2 * Set the hitpoint damage and change the structural damage acordingly, requires local vehicle. - * Handles the ace_repair_setVehicleHitPointDamage event + * Handles the ace_repair_setVehicleHitPointDamage event. * * Arguments: * 0: Local Vehicle to Damage diff --git a/addons/repair/ui/repair_0_ca.paa b/addons/repair/ui/repair_0_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..edb6c3681d7812e420611c71d32c6e2780df8491 GIT binary patch literal 5625 zcmeHLUr19?7(a6+1}lB2Nyt?p?WNKu?}HNC2&RjyheCo7{8LiacHewzZ2b}U)I^Pl z5E%x(1ZlMEqn0t>tg8{53$qf1lGc!xvU|Oqv+X<63vtz1cMl!z#ryMoe}3P0&e=KN z*(cZ4SuUQgYqaDdgyQk|@dUnPX&_j}jo>=VSu4Rh{1SY@YCUhp-){VN7b0~35JC?Q zBlH2kJ8NcSMhII-HR2Gy$=}^#qmQ>=W?NUOz903J%F$Aa)%^L9+qC8-;t4+3-pTN7 z=Nw?*n5~!*tly=jhzR^}5IJS|0j$PfM!G`sfIK4caT zlBH5PF&z@)SsUW*;d@dc#8X2so4=IC8(w*xpyc@XMP1^QNty(#b$n|6jlw*)7;_8( zUszSU#YRCECkC5>ps(g%>;6h)>nXSOmIL1sLGo?{T8jaz<)cK9<3&ddVUVvx^}U|BpX8LNLFT`N;P1%aoroUM0@dezxl?<5l8p=btG*WxPt9seP^W z@%~5lt6W&$MuBfR@%1BtiSv&#UL`IOMh0HGqT?W+w0DQ@r&`CS=HDo@*Q%^-6~JE^ z-%hbn=#oPC2n_br{A=Cc9}RFD_y`PqYh+vR6I;(~ih~7~AU^T}t_?Li?rz4iZKk~b zGac{#s7ai~M_`cGIzBc3j4;h@;3F{b&Ak3`iL>|!4EEIgYu#`3vD{JqDji?s$Hniu zj@EOk{QS81UDH$fBHu6*e4d^!s`@E`?dGctl_5lK7?SNzY6cJAQp-DNS#NfCNkOkf z%M!Dj?O5(~EQ7wmGs1))?p@i=csjXN)=>-g+1OyRhQ$9M%&TLugNYh4g&EH?=Ug|F z9tM^8Qr$G|N^DS+HI2S?PKWs5btEjOT3-k?yx*8~L+<$#2)_Nn| e|Dq}Q=oFm|x%d|q=d=FGxtkMtD|GKqdixD#!sg5X literal 0 HcmV?d00001 diff --git a/addons/repair/ui/repair_1_ca.paa b/addons/repair/ui/repair_1_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..bb6d85eca98cf7710d3a0c2efd9b6733ca4b89d3 GIT binary patch literal 5625 zcmeHLUr1YL6#rtpwquKNEFllAC{)%G#yX{mLXlh<#5vY^VfQY5$jEA;w%bhZlTU`k z!sy$gjxoj{~9k5@?pH{FG^KP6ip^8WT=6zH8AXQ zmeedOe}%+-TL~D3`BS1umdG3AWvz-~tKC-AvF!W;!+wpoZu-OdRW*nD27zExs~X`# z>;y8?pAt(QUdS&3wQkyTk7N3M#2$~wbiSGVy&j*;PpG-o2-vTo{=wcX)f?zK^QUuK zk}l6C`xXcFBREcoJ<~e_*n5@n6QYHBv-t$gqW8f5fF%8rkLB*i^t;Fp+vnM9{VSF4 zPAx}r-pC2mKNys?;;GW;D*X;32u#=M4Yb?3L=b*YicvHPqBK(nRS7K4CT|aX2rA6eQ&a_)a^43UE9=-&Nv|s1D()G>kuT=g)pMPk- z;h}QxgM;qBO7%PR|DpeJ2mY_|5BU%CRW;^6Fq3zuk{7h`>#Uwp20{U|_-{+!jNXZ9 zKFojC_RO>)?<&iuAg`1H4{H8%|LX18yr=4@za~TdTj(mv`P*#Vof?cT_;Qa?p55j- z@b%wh{+@~@FxIOj4rze1^g7*A zS-eP6K%C6`a5_*!}>Q_QwUjs<~M6$*y(f?rm)iQ_$I;uCrLtUX|MH@KB)L z@^2$)Bm}=O7*tNIYb<%;Y%&aeoJti%mihRgK9|s0TfzbHac|F){_qnV7l2%2H|rO_ zj4mLyT5T1#?JZ;8$htRtmdTf8MVJ`H9ui2UTtEtI@4gjaFDDdDS{ z;9~m${wUhGUHf**|6i{U`~Q!$`XcS`IeC7P*((U4K&=9s?_2X3_GhLI{@qKPr@l{K z`~yM|1-1mFk8xFm&yma$vWIS4`Ihw!i1A1;XhKa&@ap*#qG zg^$DGOBkO8jPnPFuRqK_JFxS2V>CK{%f{jn!rwIh>+n-xskkT|i{^Aq-%L0K*<7Q? z9aCa+`qihCZ|grJKI3qievRUW{o!ZH$TL(s$n!imY#&&>9c5~HESA!O<-(L3fyqfD zo51uSHw=?+8`%J+n`VRN^lz&FQr{!gSDbPjZ(gQ1re5#6gV^bEoOwR%kCLPKS=2I~ zymZ?8(bvc(2r_RO|NNWzPtSqc8s#{f1;(#@yV3J8VqO*m%lHo;%zf29kJw`4xN3N# V!hUvLdG`~g=IKxPw*$yn?QiL3ZX5sr literal 0 HcmV?d00001 diff --git a/addons/repair/ui/repair_2_ca.paa b/addons/repair/ui/repair_2_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..e5ed37905ab6037d20114042adfad4846014b216 GIT binary patch literal 5625 zcmeHLUr1YL6#uUA+LkTGv4lLdqEJ~yx^I)V7<+ee%hW zSQvd<)H22x!-qWxvy2W(`nXFw+Je+>*8jTgVTom~G!d6-Xl}lp^Ia2IAzZuEDZ|6P z_S3az`0H-F^x&1w!1>{*D(h2RGvPz1}VX zo}+MIt|8fu7{05a2`60Qa>oG$^jtlM%ABKjS~E|<%c-%S2?k5A?&Qn|+=X1^pUN>7&Rb##sS z(=jc}=V#-+iv#*Tw1*H|re_AQ`x2W^NIKAy&BtgKy$AODW%=iPBzGsG-=ee=_s_N6 z`j;!eDX|>NxkHChe??K#g;RBrHqvi_o)HC+Bw7jR$ICHZ8yI}e1i?X;RZ^t zPyrTeO=e@cs?b5y-yi7L%!F3QJ(DR~4w=q5h>Fy80XHFU!-8o|#C^9F)9>Gf>T)pS>G8yom#8z*#y% zH&QHKWZ5rGmSMR)>+`Cl+Va=*FAR(&K$#HK$ee>jfNL4 z*Ro^ATdl=?!x;rz@pr4(@l0D&tz~WbCn2_;KOlcGqxUB2<8sUkPti*iYYucR$gp9{q@a+kuSL{sxcX9I^la literal 0 HcmV?d00001 diff --git a/addons/repair/ui/repair_3_ca.paa b/addons/repair/ui/repair_3_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..24940192f4088a534cdd7034d30d44f5ac43efd0 GIT binary patch literal 5625 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 literal 0 HcmV?d00001 diff --git a/addons/repair/ui/repair_7_ca.paa b/addons/repair/ui/repair_7_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..4cf28c97e42f7663c7b5a1a20fba6e8cc2ff2e4d GIT binary patch literal 5625 zcmeHLZ)jUp6u+n56}YC=A2rGXVUia1-Av@l9u6;dnCKJY!W4^QG+SU0uF`_xYj zNe8lTrmcvG$UgX?V25lV*+(CnY=g2+yZ&$04<;Sdv82?jP4<%OIrlXI2jQ(|wMBY( zA@9dM_uO;tIp>{wE>AlGvY}TZr9mx9NN{`8z#6RhUfa4@1m;P+#fG(tHD5 z2X}z|GqQYcF5bU1ls|x&5L>2i7O>|6<0m8?=*t#jG>hH?`~9-~OCh4)isWyw`3{GB zr}eK?ep6y4q5w@Boz(V{&32o`C#^1IUY&FrsK z{$8KIZ@=N8a^Hi!?!QX)+xP#z|8WQYukjD{59?Jm);};)XiCJ-q$e)1^Ncna@SDYd zTk=ZydL-?|`e$j+%oy@6uzCveN+ocw*1x7-Jv|#YQ+d=sttyI{y=LQ0iJ|bKSHFky zY*zQ4KmSb?Zl>@EjQT2Y0EY7~_0qN95zF$7qi;4+HxEZ%#2GlvotwKIImn{f@P@&la$=q1@iQmmLFnULIZablAv%X*I@FCw;BtQEKIE#schx+i#&$yZfPoE*a*63CU~GqT)$#}k8`V^|Exa?AKw zc=2LAOEcbTE$tg}6m7--r^SvZ+L~G|Yb!hovGx1`QLNSI`pZA&x7rq-ckFQ6LdkQ( z_!Re>5}~RQ9=0FgkD`rFYu|SH|LgT(|Nl`|pQi&oM^8^Ndqpweuhn4ly=z{>{>+TQ z|Ln@K zXT0|i%7gINgeW9m%(xaX@(+@4AjqyASpHoe3ol%?vUr5>H;w-~yb3HGE=p<9oUG}e z4JM$PzmYp^pO%`FuRNG~JAW7P3A@wuHi{qd1s}&lk5O$!5Cne2Hn?;x%+zvoTxr2_ zVakufgZy)u1j95@bk(>D8gZZ!8 e7Z7t+p09>4D(q+1`FB6jY99QAtJ#5!)&2(jy9JE^ literal 0 HcmV?d00001 diff --git a/addons/repair/ui/repair_8_ca.paa b/addons/repair/ui/repair_8_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..1db3809543e0347a0c8047cb0098ddbfe8cdbed2 GIT binary patch literal 5625 zcmeHLU1%Fe5Z<$VPD*>0n@Z>*F*d|B!IY*pk!%P?X9{v%np)7iDi2qbI1ndoE!~r! zEF=d?-Xhzjlu}9_`rrqLl0Z=&d&DIPn7FND`M>EyB?sIP$+(J7Sf}gEo+M~MoE=A1 zC>~DSecIXCncbP4on`f&o^IjYo{zh02_c6L<=&$BO!sNTIuPQX?hibO8TcXo$m8kb z;X4AqD-DEPwGr}_osd=d?T&cD69N(ngaa18@%`L*m5{TMn!iDsN|dxr*2!p-zR^Un z!(LLeto(HnajQ|(MkRBCKvu~+qo{h+=ykkz#&eUq-I zJuZqD7h;1eBiaG9hY)LKU>>mRGUX>E?H|bIqk5LEo+|i6@wa?9cQ>p}73R-bY5n&q zzcsNI%(;R`QC~@t)9^M(MSC%>c86ONZf$C!aS`P?ot(AM`}yOuAfQt5A&}nDmfrCe zUB9}`!&sfkY&2IFJdFDL{KJZw{hdjD^T4s!R**lQ>9Ppqz44+v+yskMDg7%g-^~6> zk6&&1`}P-Bpv-zy5Rv{-^#A`496|E#^P4lW$GL&ZVcXLAoNUGVJ%6 z`G05fM(B1p?M8k}S0--AyG-*b$SbA5mo@*j{_g7Ex|7mS|FkSgX7-x3wdx>`w#E z>eqBNMg2t-eZp+som+q-F!DQhP(KuQm#Uo)JGN$0`L$pI^%bB1+I#&I&Mmk#JU6O# zD1fSMpXvCky!AM#gZU?_oK^@~hvGNOP;9q5irvev&pH&ps)h0k!W>lgCmI+Fts7L% z3Lgb}QSskQnhC)h27}6pbxg+2or(pZj)QGXk!3zIqAf->T9&Xte8koNXejUq+r2=J z$s3I;Ux$_vTP)n3%l7t3S8&r6I7Q{lvf`bYz#0;Ws9Z)A`|i7<5OWmEeo<_noCqyn zX{2Gsa$ITNC`Zv)c<&V3pDAnVm8>=YG)Twu`MutHMc;hmC#_Jnu&lkpWs6Q;8O5hK z-#X!ITHry9>rpgur}piZ|Gyp|=Ko)5^;LbS|Ja#XYOmMp_th&f`R)z3VSgrW@V~gU zdHjdi`9Hx0Q9ii8x9>j8Y*?oLEs7b=I|KNh(JqR9xqb3xXc1fx`N947ydDnl|G#4A z52HMAe}#`g@I{Sl0VDn(_=W=X+JVO3^@-5ZO^*5_xWB3YH{exZ>2OgBi?(Fl;CvuK zv-uI*oYaBbRTBNpz|#w8$kCiGq-I^K1_Ko4E~DaOLMj(ZEO1Vxwi*zBX&A$C!g(qkQ~Ho zQD!=J;e_kcZ*_eNb~Bl0roa4d>5J2#_7p@H$3Xj~@1OR6hM1SVUS|5oPZq!FT0+cl aEL#gZD$Hl^r4K(>>K^}$f7^hJ(f$GSKDqV) literal 0 HcmV?d00001 From 606e9c088d1a5d7aee68572f1a2615ccdc2e80d2 Mon Sep 17 00:00:00 2001 From: Dystopian Date: Thu, 10 Aug 2017 14:34:39 +0300 Subject: [PATCH 198/198] Fix fast recompiling documentation (#5409) it can be used for MACRO way only --- docs/wiki/development/setting-up-the-development-environment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/wiki/development/setting-up-the-development-environment.md b/docs/wiki/development/setting-up-the-development-environment.md index e081f934819..e8b44b5e409 100644 --- a/docs/wiki/development/setting-up-the-development-environment.md +++ b/docs/wiki/development/setting-up-the-development-environment.md @@ -127,7 +127,7 @@ class CfgSettings { #define DISABLE_COMPILE_CACHE ``` -All functions with disabled caching can be recompiled with `[] call ACE_PREP_RECOMPILE;` command without mission restart. You can add a addAction/keybind/pfeh with this code and use it for fast recompiling. +All functions in module with `DISABLE_COMPILE_CACHE` line can be recompiled without mission restart with `[] call ACE_PREP_RECOMPILE;` command. You can add a addAction/keybind/pfeh with this code and use it for fast recompiling. ### 7.2 Restrictions

    ~!^r)gFFdK9;#fZenuq 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