diff --git a/.hemtt/missions/test.Stratis/mission.sqm b/.hemtt/missions/test.Stratis/mission.sqm index 9a37e6b..a6dbd89 100644 --- a/.hemtt/missions/test.Stratis/mission.sqm +++ b/.hemtt/missions/test.Stratis/mission.sqm @@ -20,10 +20,10 @@ class EditorData }; class Camera { - pos[]={2115.6221,61.299213,5696.2256}; - dir[]={-0.35770744,-0.57448208,-0.73621982}; - up[]={-0.25105935,0.81851542,-0.51672125}; - aside[]={-0.89945447,1.6298145e-09,0.43701831}; + pos[]={2103.7285,49.199692,5677.5742}; + dir[]={-0.24344152,-0.74140024,-0.6253494}; + up[]={-0.26895773,0.67106307,-0.69089508}; + aside[]={-0.93187869,-1.4901161e-08,0.36276996}; }; }; binarizationWanted=0; @@ -124,18 +124,18 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2095.22,6.6758265,5649.3877}; + position[]={2093.6479,6.6836753,5649.085}; angles[]={0,3.8437212,0}; }; side="West"; flags=7; class Attributes { + name="zeus"; isPlayer=1; }; id=75; type="B_Soldier_SL_F"; - atlOffset=4.7683716e-07; class CustomAttributes { class Attribute0 @@ -173,7 +173,6 @@ class Mission name="respawn_group"; }; id=74; - atlOffset=4.7683716e-07; }; class Item1 { @@ -345,11 +344,11 @@ class Mission dataType="Logic"; class PositionInfo { - position[]={2030.7878,6.2922206,5623.8281}; + position[]={2030.788,6.292222,5623.8281}; }; id=83; type="ModuleCurator_F"; - atlOffset=-4.7683716e-07; + atlOffset=4.7683716e-07; class CustomAttributes { class Attribute0 @@ -361,7 +360,7 @@ class Mission class data { singleType="STRING"; - value=""; + value="zeus"; }; }; }; @@ -400,7 +399,7 @@ class Mission class data { singleType="SCALAR"; - value=2; + value=3; }; }; }; diff --git a/addons/respawn/CfgVehicles.hpp b/addons/respawn/CfgVehicles.hpp index 271c074..d254164 100644 --- a/addons/respawn/CfgVehicles.hpp +++ b/addons/respawn/CfgVehicles.hpp @@ -16,7 +16,7 @@ class CfgVehicles { class GVAR(moduleRespawn): Module_F { scope = 2; - displayName = "$$$ RESPAWN $$$"; + displayName = CSTRING(ModuleRespawn_DisplayName); category = QUOTE(PREFIX); icon = "\a3\Modules_f\data\iconRespawn_ca.paa"; portrait = "\a3\Modules_f\data\portraitRespawn_ca.paa"; @@ -29,7 +29,7 @@ class CfgVehicles { class Attributes: AttributesBase { class GVAR(applyTo): Combo { - displayName = "Apply to"; + displayName = CSTRING(ModuleRespawn_Attribute_ApplyTo_DisplayName); property = QGVAR(applyTo); typeName = "NUMBER"; @@ -52,8 +52,8 @@ class CfgVehicles { }; class GVAR(filter): EGVAR(common,codeSmall) { - displayName = "Filter units code"; - tooltip = "\nparams [""_unit""]"; + displayName = CSTRING(ModuleRespawn_Attribute_Filter_DisplayName); + tooltip = "params [""_unit""]"; property = QGVAR(filter); defaultValue = "'true'"; @@ -64,8 +64,8 @@ class CfgVehicles { class ModuleDescription: ModuleDescription { description[] = { - "Synchronize the module with a trigger to respawn players of the selected side once it's activated.", - "List of the players can be filtered with optional condition code." + CSTRING(ModuleRespawn_Description_0), + CSTRING(ModuleRespawn_Description_1), }; sync[] = {"EmptyDetector"}; diff --git a/addons/respawn/functions/fnc_addZeusModules.sqf b/addons/respawn/functions/fnc_addZeusModules.sqf index e4b1a21..e499d98 100644 --- a/addons/respawn/functions/fnc_addZeusModules.sqf +++ b/addons/respawn/functions/fnc_addZeusModules.sqf @@ -10,13 +10,15 @@ if (isNil "zen_custom_modules_fnc_register" || !isMultiplayer) exitWith {}; LOG("Adding ZEN modules"); -[ELSTRING(Main,Category), "Respawn side", { +private _iconRespawn = getText (configFile >> "CfgVehicles" >> QGVAR(moduleRespawn) >> "portrait"); + +[ELSTRING(Main,Category), LSTRING(ModuleRespawn_ZEN_Sides_DisplayName), { [ - "Respawn side", + LSTRING(ModuleRespawn_ZEN_Sides_DisplayName), [ [ "SIDES", - "Sides to respawn", + LSTRING(ModuleRespawn_ZEN_Sides_AttributeSides_DisplayName), [], false ] @@ -28,21 +30,26 @@ LOG("Adding ZEN modules"); private _players = allPlayers select {side group _x in _sides && !alive _x}; - format ["Respawning %1 players", count _players] call CBA_fnc_notify; + format [LLSTRING(ModuleRespawn_Notification_RespawningMany), count _players] call CBA_fnc_notify; [QGVAR(force), nil, _players] call CBA_fnc_targetEvent; } ] call zen_dialog_fnc_create; -}, getText (configFile >> "CfgVehicles" >> QGVAR(moduleRespawn) >> "portrait")] call zen_custom_modules_fnc_register; +}, _iconRespawn] call zen_custom_modules_fnc_register; -[ELSTRING(Main,Category), "Respawn player", { +[ELSTRING(Main,Category), LSTRING(ModuleRespawn_ZEN_Player_DisplayName), { private _deadPlayers = allPlayers select {!alive _x}; private _deadPlayersNames = _deadPlayers apply {format ["%1 (%2)", name _x, side group _x]}; + + if (_deadPlayers isEqualTo []) exitWith { + [objNull, LLSTRING(ModuleRespawn_Notification_NoDead)] call BIS_fnc_showCuratorFeedbackMessage; + }; + [ - "Respawn player", + LSTRING(ModuleRespawn_ZEN_Player_DisplayName), [ [ "LIST", - "Dead players:", + LSTRING(ModuleRespawn_ZEN_Player_AttributeDead_DisplayName), [ _deadPlayers, _deadPlayersNames, @@ -57,11 +64,11 @@ LOG("Adding ZEN modules"); _dialogValues params ["_selected"]; TRACE_1("",_dialogValues); - format ["Respawning %1", name _selected] call CBA_fnc_notify; + format [LLSTRING(ModuleRespawn_Notification_RespawningSingle), name _selected] call CBA_fnc_notify; [QGVAR(force), nil, _selected] call CBA_fnc_targetEvent; }, {}, _deadPlayers ] call zen_dialog_fnc_create; -}, getText (configFile >> "CfgVehicles" >> QGVAR(moduleRespawn) >> "portrait")] call zen_custom_modules_fnc_register; +}, _iconRespawn] call zen_custom_modules_fnc_register; diff --git a/addons/respawn/stringtable.xml b/addons/respawn/stringtable.xml index 8d0ecb5..35862e6 100644 --- a/addons/respawn/stringtable.xml +++ b/addons/respawn/stringtable.xml @@ -21,5 +21,58 @@ How much time must pass before player will respawn (if respawn is enabled). Jak dużo czasu musi upłynąć by gracz mógł się odrodzić (jeśli odrodzenie jest włączone). + + + Force respawn + Wymuś odrodzenie + + + Apply to + Zastosuj do + + + Filter units code + Kod filtru jednostek + + + Synchronize the module with a trigger to respawn players of the selected side once it's activated. + Zsynchronizuj moduł z triggerem aby odrodzić graczy po jego aktywacji. + + + List of the players can be filtered with filter code. + Lista graczy może zostać odfiltrowana za pomocą kodu filtru. + + + + Respawn sides + Odródź strony + + + Sides to respawn + Strony do odrodzenia + + + + Respawn player + Odródź gracza + + + Dead players: + Martwi gracze: + + + + Respawning %1 + Odradzanie %1 + + + Respawning %1 players + Odradzanie %1 graczy + + + No dead players + Brak martwych graczy + +