mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge branch 'master' of github.com:KoffeinFlummi/ACE3
This commit is contained in:
commit
4f6fa74690
@ -8,7 +8,7 @@ class Cfg3DEN {
|
||||
control = "Checkbox";
|
||||
displayName = CSTRING(ModuleHandcuffed_DisplayName);
|
||||
tooltip = CSTRING(ModuleHandcuffed_Description);
|
||||
expression = QUOTE([ARR_2(_this,_value)]call FUNC(setHandcuffed));
|
||||
expression = QUOTE(if (_value) then {[ARR_3(objNull,[_this],true)] call FUNC(moduleHandcuffed)});
|
||||
typeName = "BOOL";
|
||||
condition = "objectBrain";
|
||||
defaultValue = false;
|
||||
@ -18,7 +18,7 @@ class Cfg3DEN {
|
||||
control = "Checkbox";
|
||||
displayName = CSTRING(ModuleSurrender_DisplayName);
|
||||
tooltip = CSTRING(ModuleSurrender_Description);
|
||||
expression = QUOTE([ARR_2(_this,_value)]call FUNC(setSurrendered));
|
||||
expression = QUOTE(if (_value) then {[ARR_3(objNull,[_this],true)] call FUNC(moduleSurrender)});
|
||||
typeName = "BOOL";
|
||||
condition = "objectBrain";
|
||||
defaultValue = false;
|
||||
|
@ -1,6 +1,7 @@
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Module Function to make a unit handcuffed (can be called from editor)
|
||||
* Also used for threeden attribute expression with dummy Logic Object
|
||||
*
|
||||
* Arguments:
|
||||
* 0: The Module Logic <OBJECT>
|
||||
@ -11,7 +12,7 @@
|
||||
* Nothing
|
||||
*
|
||||
* Example:
|
||||
* Called from module
|
||||
* [objNull, [player], true] call ace_captives_fnc_moduleHandcuffed
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
@ -28,8 +29,11 @@ if (!isServer) exitWith {};
|
||||
[{
|
||||
params ["_units"];
|
||||
{
|
||||
TRACE_2("event",_x,local _x);
|
||||
["SetHandcuffed", [_x], [_x, true]] call EFUNC(common,targetEvent);
|
||||
} forEach _units;
|
||||
}, [_units], 0.05] call EFUNC(common,waitAndExecute);
|
||||
|
||||
deleteVehicle _logic;
|
||||
if (!isNull _logic) then {
|
||||
deleteVehicle _logic;
|
||||
};
|
||||
|
@ -1,6 +1,7 @@
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Module Function to make a unit surrender (can be called from editor)
|
||||
* Also used for threeden attribute expression with dummy Logic Object
|
||||
*
|
||||
* Arguments:
|
||||
* 0: The Module Logic <OBJECT>
|
||||
@ -11,7 +12,7 @@
|
||||
* Nothing
|
||||
*
|
||||
* Example:
|
||||
* Called from module
|
||||
* [objNull, [player], true] call ace_captives_fnc_moduleSurrender
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
@ -28,8 +29,11 @@ if (!isServer) exitWith {};
|
||||
[{
|
||||
params ["_units"];
|
||||
{
|
||||
TRACE_2("event",_x,local _x);
|
||||
["SetSurrendered", [_x], [_x, true]] call EFUNC(common,targetEvent);
|
||||
} forEach _units;
|
||||
}, [_units], 0.05] call EFUNC(common,waitAndExecute);
|
||||
|
||||
deleteVehicle _logic;
|
||||
if (!isNull _logic) then {
|
||||
deleteVehicle _logic;
|
||||
};
|
||||
|
@ -24,7 +24,7 @@
|
||||
["UnloadCargo", {
|
||||
(_this select 0) params ["_item","_vehicle", ["_unloader", objNull]];
|
||||
TRACE_3("UnloadCargo EH",_item,_vehicle,_unloader);
|
||||
|
||||
|
||||
private _unloaded = [_item, _vehicle, _unloader] call FUNC(unloadItem); //returns true if sucessful
|
||||
|
||||
private _itemClass = if (_item isEqualType "") then {_item} else {typeOf _item};
|
||||
@ -43,3 +43,10 @@
|
||||
|
||||
// TOOO maybe drag/carry the unloaded item?
|
||||
}] call EFUNC(common,addEventHandler);
|
||||
|
||||
["ServerUnloadCargo", {
|
||||
params ["_item", "_emptyPosAGL"];
|
||||
|
||||
_item hideObjectGlobal false;
|
||||
_item setPosASL (AGLtoASL _emptyPosAGL);
|
||||
}] call EFUNC(common,addEventHandler);
|
||||
|
@ -50,8 +50,9 @@ _vehicle setVariable [QGVAR(space), (_space + _itemSize), true];
|
||||
|
||||
if (_item isEqualType objNull) then {
|
||||
detach _item;
|
||||
_item setPosASL (AGLtoASL _emptyPosAGL);
|
||||
["hideObjectGlobal", [_item, false]] call EFUNC(common,serverEvent);
|
||||
// hideObjectGlobal must be executed before setPos to ensure light objects are rendered correctly
|
||||
// do both on server to ensure they are executed in the correct order
|
||||
["ServerUnloadCargo", [_item, _emptyPosAGL]] call EFUNC(common,serverEvent);
|
||||
} else {
|
||||
private _newItem = createVehicle [_item, _emptyPosAGL, [], 0, ""];
|
||||
_newItem setPosASL (AGLtoASL _emptyPosAGL);
|
||||
|
@ -33,7 +33,7 @@ class GVAR(menu) {
|
||||
w = "13 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
style = ST_LEFT + ST_SHADOW;
|
||||
font = "PuristaMedium";
|
||||
font = "RobotoCondensed";
|
||||
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
|
||||
colorText[] = {0.95, 0.95, 0.95, 0.75};
|
||||
colorBackground[] = {"(profilenamespace getVariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getVariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getVariable ['GUI_BCG_RGB_B',0.5])", "(profilenamespace getVariable ['GUI_BCG_RGB_A',0.9])"};
|
||||
@ -67,7 +67,7 @@ class GVAR(menu) {
|
||||
colorSelectBackground[] = {0.3, 0.3, 0.3, 1.0};
|
||||
colorSelectBackground2[] = {0.3, 0.3, 0.3, 1.0};
|
||||
};
|
||||
class btnUnload: ACE_gui_buttonBase {
|
||||
class btnCancel: ACE_gui_buttonBase {
|
||||
text = "Cancel";
|
||||
idc = 11;
|
||||
x = "13.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
@ -93,7 +93,7 @@ class GVAR(menu) {
|
||||
periodOver = 1;
|
||||
action = QUOTE(closeDialog 0);
|
||||
};
|
||||
class btnCancel: btnUnload {
|
||||
class btnUnload: btnCancel {
|
||||
text = CSTRING(unloadObject);
|
||||
idc = 12;
|
||||
x = "20.9 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
|
@ -241,6 +241,7 @@ PREP(fixCrateContent);
|
||||
PREP(globalEvent);
|
||||
PREP(_handleNetEvent);
|
||||
PREP(addEventHandler);
|
||||
PREP(objectEvent);
|
||||
PREP(targetEvent);
|
||||
PREP(serverEvent);
|
||||
PREP(localEvent);
|
||||
|
@ -149,6 +149,9 @@ if (isServer) then {
|
||||
["setSpeaker", {(_this select 0) setSpeaker (_this select 1)}] call FUNC(addEventhandler);
|
||||
["selectLeader", {(_this select 0) selectLeader (_this select 1)}] call FUNC(addEventHandler);
|
||||
["setVelocity", {(_this select 0) setVelocity (_this select 1)}] call FUNC(addEventHandler);
|
||||
["playMove", {(_this select 0) playMove (_this select 1)}] call FUNC(addEventHandler);
|
||||
["playMoveNow", {(_this select 0) playMoveNow (_this select 1)}] call FUNC(addEventHandler);
|
||||
["switchMove", {(_this select 0) switchMove (_this select 1)}] call FUNC(addEventHandler);
|
||||
|
||||
if (isServer) then {
|
||||
["hideObjectGlobal", {(_this select 0) hideObjectGlobal (_this select 1)}] call FUNC(addEventHandler);
|
||||
|
@ -1,6 +1,5 @@
|
||||
/*
|
||||
* Author: commy2
|
||||
*
|
||||
* Execute an animation. This is used to not break things like the unconsciousness animation.
|
||||
*
|
||||
* Arguments:
|
||||
@ -10,15 +9,20 @@
|
||||
* 0 = PlayMove
|
||||
* 1 = PlayMoveNow
|
||||
* 2 = SwitchMove (no transitional animation, doesn't overwrite priority 1)
|
||||
* 3: Force overwritting unconscious (default: false) <BOOL>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [player, "AmovPercMstpSnonWnonDnon_exerciseKata", 1] call ace_common_fnc_doAnimation
|
||||
*
|
||||
* Public: Yes
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_unit", "_animation", ["_priority", 0], ["_force", false]];
|
||||
TRACE_4("params",_unit,_animation,_priority,_force);
|
||||
|
||||
// don't overwrite more important animations
|
||||
if (_unit getVariable ["ACE_isUnconscious", false] && {(_animation != "Unconscious")} && {!_force}) exitWith {};
|
||||
@ -33,36 +37,38 @@ if (_animation == "") then {
|
||||
|
||||
//if (_animation == animationState _unit) exitWith {};
|
||||
|
||||
TRACE_2("",local _unit,vehicle _unit);
|
||||
switch (_priority) do {
|
||||
case 0: {
|
||||
if (_unit == vehicle _unit) then {
|
||||
[_unit, format ["{_this playMove '%1'}", _animation], _unit] call FUNC(execRemoteFnc);
|
||||
["playMove", _unit, [_unit, _animation]] call FUNC(objectEvent);
|
||||
} else {
|
||||
// Execute on all machines. PlayMove and PlayMoveNow are bugged: They have no global effects when executed on remote machines inside vehicles.
|
||||
[_unit, format ["{_this playMove '%1'}", _animation]] call FUNC(execRemoteFnc);
|
||||
["playMove", [_unit, _animation]] call FUNC(globalEvent);
|
||||
};
|
||||
};
|
||||
case 1: {
|
||||
if (_unit == vehicle _unit) then {
|
||||
[_unit, format ["{_this playMoveNow '%1'}", _animation], _unit] call FUNC(execRemoteFnc);
|
||||
["playMoveNow", _unit, [_unit, _animation]] call FUNC(objectEvent);
|
||||
} else {
|
||||
// Execute on all machines. PlayMove and PlayMoveNow are bugged: They have no global effects when executed on remote machines inside vehicles.
|
||||
[_unit, format ["{_this playMoveNow '%1'}", _animation]] call FUNC(execRemoteFnc);
|
||||
// Execute on all machines. PlayMove and PlayMoveNow are bugged: They have no global effects when executed on remote machines inside vehicles.
|
||||
["playMoveNow", [_unit, _animation]] call FUNC(globalEvent);
|
||||
};
|
||||
};
|
||||
case 2: {
|
||||
// try playMoveNow first
|
||||
if (_unit == vehicle _unit) then {
|
||||
[_unit, format ["{_this playMoveNow '%1'}", _animation], _unit] call FUNC(execRemoteFnc);
|
||||
["playMoveNow", _unit, [_unit, _animation]] call FUNC(objectEvent);
|
||||
} else {
|
||||
// Execute on all machines. PlayMove and PlayMoveNow are bugged: They have no global effects when executed on remote machines inside vehicles.
|
||||
[_unit, format ["{_this playMoveNow '%1'}", _animation]] call FUNC(execRemoteFnc);
|
||||
// Execute on all machines. PlayMove and PlayMoveNow are bugged: They have no global effects when executed on remote machines inside vehicles.
|
||||
["playMoveNow", [_unit, _animation]] call FUNC(globalEvent);
|
||||
};
|
||||
|
||||
// if animation doesn't respond, do switchMove
|
||||
if (animationState _unit != _animation) then {
|
||||
TRACE_1("did not respond to playMoveNow",animationState _unit);
|
||||
// Execute on all machines. SwitchMove has local effects.
|
||||
[_unit, format ["{_this switchMove '%1'}", _animation]] call FUNC(execRemoteFnc);
|
||||
["switchMove", [_unit, _animation]] call FUNC(globalEvent);
|
||||
};
|
||||
};
|
||||
default {};
|
||||
|
34
addons/common/functions/fnc_objectEvent.sqf
Normal file
34
addons/common/functions/fnc_objectEvent.sqf
Normal file
@ -0,0 +1,34 @@
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Execute an event where object is local.
|
||||
* If local there is no network traffic/delay (Unlike targetEvent)
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Event name (STRING)
|
||||
* 1: Event target <OBJECT>
|
||||
* 2: Event args <ANY>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* ["doThing", vehicle player, []] call ace_common_fnc_objectEvent
|
||||
*
|
||||
* Public: Yes
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_eventName", "_eventTarget", "_eventArgs"];
|
||||
|
||||
#ifdef DEBUG_EVENTS
|
||||
ACE_LOGINFO_2("* Object Event: %1 - %2",_eventName,_eventTarget);
|
||||
ACE_LOGINFO_1(" args=%1",_eventArgs);
|
||||
#endif
|
||||
|
||||
if (local _eventTarget) then {
|
||||
[_eventName, _eventArgs] call FUNC(localEvent);
|
||||
} else {
|
||||
_this call FUNC(targetEvent);
|
||||
};
|
||||
|
||||
nil
|
@ -6,6 +6,8 @@ class CfgPatches {
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {
|
||||
// Vanilla
|
||||
"3den",
|
||||
"a3_air_f",
|
||||
"a3_air_f_beta",
|
||||
"a3_air_f_beta_heli_attack_01",
|
||||
@ -49,6 +51,7 @@ class CfgPatches {
|
||||
"a3_anims_f_config_sdr",
|
||||
"a3_anims_f_epa",
|
||||
"a3_anims_f_epc",
|
||||
"a3_anims_f_exp_a",
|
||||
"a3_anims_f_heli",
|
||||
"a3_anims_f_kart",
|
||||
"a3_anims_f_mark_deployment",
|
||||
@ -106,6 +109,9 @@ class CfgPatches {
|
||||
"a3_data_f_curator_misc",
|
||||
"a3_data_f_curator_respawn",
|
||||
"a3_data_f_curator_virtual",
|
||||
"a3_data_f_exp_a",
|
||||
"a3_data_f_exp_a_virtual",
|
||||
"a3_data_f_exp_b",
|
||||
"a3_data_f_heli",
|
||||
"a3_data_f_hook",
|
||||
"a3_data_f_kart",
|
||||
@ -119,6 +125,7 @@ class CfgPatches {
|
||||
"a3_functions_f_curator",
|
||||
"a3_functions_f_epa",
|
||||
"a3_functions_f_epc",
|
||||
"a3_functions_f_exp_a",
|
||||
"a3_functions_f_heli",
|
||||
"a3_functions_f_mark",
|
||||
"a3_functions_f_mp_mark",
|
||||
@ -129,6 +136,7 @@ class CfgPatches {
|
||||
"a3_language_f_epa",
|
||||
"a3_language_f_epb",
|
||||
"a3_language_f_epc",
|
||||
"a3_language_f_exp_a",
|
||||
"a3_language_f_gamma",
|
||||
"a3_language_f_heli",
|
||||
"a3_language_f_kart",
|
||||
@ -154,6 +162,7 @@ class CfgPatches {
|
||||
"a3_missions_f_epa",
|
||||
"a3_missions_f_epb",
|
||||
"a3_missions_f_epc",
|
||||
"a3_missions_f_exp_a",
|
||||
"a3_missions_f_gamma",
|
||||
"a3_missions_f_heli",
|
||||
"a3_missions_f_kart",
|
||||
@ -186,6 +195,7 @@ class CfgPatches {
|
||||
"a3_modules_f_epb",
|
||||
"a3_modules_f_epb_misc",
|
||||
"a3_modules_f_events",
|
||||
"a3_modules_f_exp_a",
|
||||
"a3_modules_f_groupmodifiers",
|
||||
"a3_modules_f_hc",
|
||||
"a3_modules_f_heli",
|
||||
@ -215,6 +225,9 @@ class CfgPatches {
|
||||
"a3_music_f_heli",
|
||||
"a3_music_f_mark",
|
||||
"a3_plants_f_bush",
|
||||
"a3_props_f_exp_a",
|
||||
"a3_props_f_exp_a_military",
|
||||
"a3_props_f_exp_a_military_equipment",
|
||||
"a3_roads_f",
|
||||
"a3_rocks_f",
|
||||
"a3_signs_f",
|
||||
@ -253,6 +266,8 @@ class CfgPatches {
|
||||
"a3_sounds_f_bootcamp",
|
||||
"a3_sounds_f_epb",
|
||||
"a3_sounds_f_epc",
|
||||
"a3_sounds_f_exp_a",
|
||||
"a3_sounds_f_mark",
|
||||
"a3_static_f",
|
||||
"a3_static_f_beta_mortar_01",
|
||||
"a3_static_f_gamma",
|
||||
@ -337,6 +352,9 @@ class CfgPatches {
|
||||
"a3_structures_f_epc_items_documents",
|
||||
"a3_structures_f_epc_items_electronics",
|
||||
"a3_structures_f_epc_walls",
|
||||
"a3_structures_f_exp_a",
|
||||
"a3_structures_f_exp_a_vr_blocks",
|
||||
"a3_structures_f_exp_a_vr_helpers",
|
||||
"a3_structures_f_furniture",
|
||||
"a3_structures_f_heli_civ_accessories",
|
||||
"a3_structures_f_heli_civ_constructions",
|
||||
@ -446,6 +464,7 @@ class CfgPatches {
|
||||
"a3_ui_f",
|
||||
"a3_ui_f_bootcamp",
|
||||
"a3_ui_f_curator",
|
||||
"a3_ui_f_exp_a",
|
||||
"a3_ui_f_heli",
|
||||
"a3_ui_f_kart",
|
||||
"a3_ui_f_mark",
|
||||
@ -541,7 +560,12 @@ class CfgPatches {
|
||||
"a3_weapons_f_vests",
|
||||
"a3data",
|
||||
"map_vr",
|
||||
"extended_eventhandlers", "cba_ui", "cba_xeh", "cba_xeh_a3", "cba_jr"
|
||||
// CBA
|
||||
"extended_eventhandlers",
|
||||
"cba_ui",
|
||||
"cba_xeh",
|
||||
"cba_xeh_a3",
|
||||
"cba_jr"
|
||||
};
|
||||
author[] = {ECSTRING(common,ACETeam)};
|
||||
authorUrl = "http://ace3mod.com/";
|
||||
@ -564,10 +588,3 @@ class CfgMods {
|
||||
|
||||
#include "CfgModuleCategories.hpp"
|
||||
#include "CfgVehicleClasses.hpp"
|
||||
|
||||
// @todo delete this after CBA update, defines undefined global variable
|
||||
class Extended_PreStart_EventHandlers {
|
||||
class ADDON {
|
||||
init = "with uiNamespace do {SLX_XEH_COMPILE_NEW = CBA_fnc_compileFunction};";
|
||||
};
|
||||
};
|
||||
|
@ -84,7 +84,7 @@
|
||||
#ifdef DISABLE_COMPILE_CACHE
|
||||
#define PREP(fncName) DFUNC(fncName) = compile preprocessFileLineNumbers QUOTE(PATHTOF(functions\DOUBLES(fnc,fncName).sqf))
|
||||
#else
|
||||
#define PREP(fncName) [QUOTE(PATHTOF(functions\DOUBLES(fnc,fncName).sqf)), QFUNC(fncName)] call SLX_XEH_COMPILE_NEW
|
||||
#define PREP(fncName) [QUOTE(PATHTOF(functions\DOUBLES(fnc,fncName).sqf)), QFUNC(fncName)] call CBA_fnc_compileFunction
|
||||
#endif
|
||||
|
||||
#define PREP_MODULE(folder) [] call compile preprocessFileLineNumbers QUOTE(PATHTOF(folder\__PREP__.sqf))
|
||||
|
@ -12,4 +12,4 @@
|
||||
#define VERSION_AR MAJOR,MINOR,PATCHLVL,BUILD
|
||||
|
||||
// MINIMAL required version for the Mod. Components can specify others..
|
||||
#define REQUIRED_VERSION 1.54
|
||||
#define REQUIRED_VERSION 1.56
|
||||
|
@ -1,23 +1,45 @@
|
||||
class ctrlToolbox;
|
||||
|
||||
class Cfg3DEN {
|
||||
class Attributes {
|
||||
class Default;
|
||||
class Title: Default {
|
||||
class Controls {
|
||||
class Title;
|
||||
};
|
||||
};
|
||||
class GVAR(isMedicControl): Title {
|
||||
attributeLoad = "(_this controlsGroupCtrl 100) lbsetcursel (((_value + 1) min 3) max 0);";
|
||||
attributeSave = "(missionnamespace getvariable ['ace_isMeidc_temp',0]) - 1;";
|
||||
class Controls: Controls {
|
||||
class Title: Title{};
|
||||
class Value: ctrlToolbox {
|
||||
idc = 100;
|
||||
style = "0x02";
|
||||
x = "48 * (pixelW * 1.25 * 4)";
|
||||
w = "82 * (pixelW * 1.25 * 4)";
|
||||
h = "5 * (pixelH * 1.25 * 4)";
|
||||
rows = 1;
|
||||
columns = 4;
|
||||
strings[] = {"$STR_3DEN_Attributes_Lock_Default_text", CSTRING(AssignMedicRoles_role_none), CSTRING(AssignMedicRoles_role_medic), CSTRING(AssignMedicRoles_role_doctorShort)};
|
||||
onToolboxSelChanged = "missionnamespace setvariable ['ace_isMeidc_temp',_this select 1];";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
class Object {
|
||||
class AttributeCategories {
|
||||
class ace_attributes {
|
||||
class Attributes {
|
||||
class ace_isMedic {
|
||||
property = QUOTE(ace_isMedic);
|
||||
value = 0;
|
||||
control = "Combo";
|
||||
control = QGVAR(isMedicControl);
|
||||
displayName = CSTRING(AssignMedicRoles_role_DisplayName);
|
||||
tooltip = CSTRING(Attributes_isMedic_Description);
|
||||
expression = QUOTE(_this setVariable [ARR_2(QUOTE(QGVAR(medicClass)),_value)];);
|
||||
expression = QUOTE(if (_value != -1) then {_this setVariable [ARR_3(QUOTE(QGVAR(medicClass)),_value, true)];};);
|
||||
typeName = "NUMBER";
|
||||
condition = "objectBrain";
|
||||
defaultValue = 0;
|
||||
class values {
|
||||
class none {name = CSTRING(AssignMedicRoles_role_none); value = 0; default = 1;};
|
||||
class medic {name = CSTRING(AssignMedicRoles_role_medic); value = 1; default = 0;};
|
||||
class doctor {name = CSTRING(AssignMedicRoles_role_doctor); value = 2; default = 0;};
|
||||
};
|
||||
defaultValue = "-1";
|
||||
};
|
||||
class ace_isMedicalVehicle {
|
||||
property = QUOTE(ace_isMedicalVehicle);
|
||||
@ -25,7 +47,7 @@ class Cfg3DEN {
|
||||
control = "CheckboxNumber";
|
||||
displayName = CSTRING(AssignMedicVehicle_enabled_DisplayName);
|
||||
tooltip = CSTRING(Attributes_isMedicalVehicle_Description);
|
||||
expression = QUOTE(_this setVariable [ARR_2(QUOTE(QGVAR(medicClass)),_value)];);
|
||||
expression = QUOTE(_this setVariable [ARR_3(QUOTE(QGVAR(medicClass)),_value, true)];);
|
||||
typeName = "NUMBER";
|
||||
condition = "objectVehicle";
|
||||
defaultValue = 0;
|
||||
@ -36,7 +58,7 @@ class Cfg3DEN {
|
||||
control = "Checkbox";
|
||||
displayName = CSTRING(AssignMedicalFacility_enabled_DisplayName);
|
||||
tooltip = CSTRING(AssignMedicalFacility_enabled_Description);
|
||||
expression = QUOTE(_this setVariable [ARR_2(QUOTE(QGVAR(isMedicalFacility)),_value)];);
|
||||
expression = QUOTE(_this setVariable [ARR_3(QUOTE(QGVAR(isMedicalFacility)),_value, true)];);
|
||||
typeName = "BOOL";
|
||||
condition = "(1 - objectBrain) * (1 - objectVehicle)";
|
||||
defaultValue = "false";
|
||||
|
@ -3815,6 +3815,18 @@
|
||||
<Hungarian>Doktor (csak fejlett orvosok)</Hungarian>
|
||||
<Italian>Dottore (Solo Medici Avanzati)</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_AssignMedicRoles_role_doctorShort">
|
||||
<English>Doctor</English>
|
||||
<Russian>Врач</Russian>
|
||||
<Polish>Doktor</Polish>
|
||||
<Spanish>Doctor</Spanish>
|
||||
<German>Arzt</German>
|
||||
<Czech>Doktor</Czech>
|
||||
<Portuguese>Doutor</Portuguese>
|
||||
<French>Médecin</French>
|
||||
<Hungarian>Doktor</Hungarian>
|
||||
<Italian>Dottore</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_AssignMedicRoles_Module_Description">
|
||||
<English>Assigns the ACE medic class to a unit</English>
|
||||
<Russian>Задает юниту класс медика</Russian>
|
||||
|
@ -145,66 +145,87 @@
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Mk6Mortar_useAmmoHandling_DisplayName">
|
||||
<English>Use Ammunition handling</English>
|
||||
<German>Aktiviere Munitionshandhabung</German>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Mk6Mortar_useAmmoHandling_Description">
|
||||
<English>Removes mortar magazines, requiring individual rounds to be loaded by the gunner or loader. Does not affect AI mortars.</English>
|
||||
<German>Enfernt das Magzin des Mörsers. Es ist nun erforderlich, die einzelnen Patronen manuell zu laden. Dies beeinflusst nicht die KI-Truppen.</German>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Mk6Mortar_unloadMortar">
|
||||
<English>Remove Round</English>
|
||||
<German>Entferne Patrone</German>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Mk6Mortar_loadMortar">
|
||||
<English>Load Mortar</English>
|
||||
<German>Lade Mörser</German>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Mk6Mortar_unloadingMortar">
|
||||
<English>Unloading Round</English>
|
||||
<German>Mörser entladen</German>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Mk6Mortar_loadingMortar">
|
||||
<English>Preparing Round</English>
|
||||
<German>Patrone vorbereiten</German>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Mk6Mortar_loadMagazine_HE">
|
||||
<English>Load HE</English>
|
||||
<German>Lade Sprengpatrone</German>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Mk6Mortar_loadMagazine_Smoke">
|
||||
<English>Load Smoke</English>
|
||||
<German>Lade Nebelpatrone</German>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Mk6Mortar_loadMagazine_Illum">
|
||||
<English>Load Illumination</English>
|
||||
<German>Lade Leuchtpatrone</German>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Mk6Mortar_loadMagazine_HE_Guided">
|
||||
<English>Load Guided HE</English>
|
||||
<German>Lade gelenkte Sprengpatrone</German>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Mk6Mortar_loadMagazine_HE_LaserGuided">
|
||||
<English>Load Laser Guided HE</English>
|
||||
<German>Lade lasergelenkte Sprengpatrone</German>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Mk6Mortar_magazine_HE_displayName">
|
||||
<English>82mm HE Round</English>
|
||||
<German>82mm Sprengpatrone</German>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Mk6Mortar_magazine_Smoke_displayName">
|
||||
<English>82mm Smoke Round</English>
|
||||
<German>82mm Nebelpatrone</German>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Mk6Mortar_magazine_Illum_displayName">
|
||||
<English>82mm Illumination Round</English>
|
||||
<German>82mm Leuchtpatrone</German>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Mk6Mortar_magazine_HE_Guided_displayName">
|
||||
<English>82mm Guided HE Round</English>
|
||||
<German>82mm gelenkte Sprengpatrone</German>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Mk6Mortar_magazine_HE_LaserGuided_displayName">
|
||||
<English>82mm Laser Guided HE Round</English>
|
||||
<German>82mm lasergelenkte Sprengpatrone</German>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Mk6Mortar_magazine_descriptionShort">
|
||||
<English>Used in Mk6 mortar</English>
|
||||
<German>Wird im Mk6 Mörser verwendet</German>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Mk6Mortar_HEBox_DisplayName">
|
||||
<English>[ACE] 82mm HE Rounds Box</English>
|
||||
<German>[ACE] 82mm Sprengpatronenkiste</German>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Mk6Mortar_SmokeBox_DisplayName">
|
||||
<English>[ACE] 82mm Smoke Rounds Box</English>
|
||||
<German>[ACE] 82mm Nebelpatronenkiste</German>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Mk6Mortar_IllumBox_DisplayName">
|
||||
<English>[ACE] 82mm Illumination Rounds Box</English>
|
||||
<German>[ACE] 82mm Leuchtpatronenkiste</German>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Mk6Mortar_ComboBox_DisplayName">
|
||||
<English>[ACE] 82mm Default Loadout Box</English>
|
||||
<German>[ACE] 82mm Standardkiste</German>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -1,23 +1,46 @@
|
||||
class ctrlToolbox;
|
||||
|
||||
class Cfg3DEN {
|
||||
class Attributes {
|
||||
class Default;
|
||||
class Title: Default {
|
||||
class Controls {
|
||||
class Title;
|
||||
};
|
||||
};
|
||||
class GVAR(isEngineerControl): Title {
|
||||
attributeLoad = "(_this controlsGroupCtrl 100) lbsetcursel (((_value + 1) min 3) max 0);";
|
||||
attributeSave = "(missionnamespace getvariable ['ace_isEng_temp',0]) - 1;";
|
||||
class Controls: Controls {
|
||||
class Title: Title{};
|
||||
class Value: ctrlToolbox {
|
||||
idc = 100;
|
||||
style = "0x02";
|
||||
x = "48 * (pixelW * 1.25 * 4)";
|
||||
w = "82 * (pixelW * 1.25 * 4)";
|
||||
h = "5 * (pixelH * 1.25 * 4)";
|
||||
rows = 1;
|
||||
columns = 4;
|
||||
strings[] = {"$STR_3DEN_Attributes_Lock_Default_text", CSTRING(AssignEngineerRole_role_none), CSTRING(AssignEngineerRole_role_engineer), CSTRING(AssignEngineerRole_role_specialist)};
|
||||
onToolboxSelChanged = "missionnamespace setvariable ['ace_isEng_temp',_this select 1];";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Object {
|
||||
class AttributeCategories {
|
||||
class ace_attributes {
|
||||
class Attributes {
|
||||
class ace_isEngineer {
|
||||
property = QUOTE(ace_isEngineer);
|
||||
value = 0;
|
||||
control = "Combo";
|
||||
displayName = CSTRING(AssignEngineerRole_role_DisplayName);
|
||||
tooltip = CSTRING(AssignEngineerRole_role_Description);
|
||||
expression = "_this setVariable ['%s',_value];";
|
||||
expression = "if (_value != -1) then {_this setVariable ['%s',_value, true];}";
|
||||
typeName = "NUMBER";
|
||||
condition = "objectBrain";
|
||||
defaultValue = 0;
|
||||
class values {
|
||||
class none {name = CSTRING(AssignEngineerRole_role_none); value = 0; default = 1;};
|
||||
class engineer {name = CSTRING(AssignEngineerRole_role_engineer); value = 1; default = 0;};
|
||||
class specialist {name = CSTRING(AssignEngineerRole_role_specialist); value = 2; default = 0;};
|
||||
};
|
||||
defaultValue = "-1";
|
||||
control = QGVAR(isEngineerControl);
|
||||
};
|
||||
class ace_isRepairVehicle {
|
||||
property = QUOTE(ace_isRepairVehicle);
|
||||
@ -25,7 +48,7 @@ class Cfg3DEN {
|
||||
control = "CheckboxNumber";
|
||||
displayName = CSTRING(AssignRepairVehicle_role_DisplayName);
|
||||
tooltip = CSTRING(AssignRepairVehicle_role_Description);
|
||||
expression = "_this setVariable ['%s',_value];";
|
||||
expression = "_this setVariable ['%s',_value, true];";
|
||||
typeName = "NUMBER";
|
||||
condition = "objectVehicle";
|
||||
defaultValue = 0;
|
||||
@ -36,7 +59,7 @@ class Cfg3DEN {
|
||||
control = "CheckboxNumber";
|
||||
displayName = CSTRING(AssignRepairFacility_role_DisplayName);
|
||||
tooltip = CSTRING(AssignRepairFacility_role_Description);
|
||||
expression = "_this setVariable ['%s',_value];";
|
||||
expression = "_this setVariable ['%s',_value, true];";
|
||||
typeName = "NUMBER";
|
||||
condition = "(1 - objectBrain) * (1 - objectVehicle)";
|
||||
defaultValue = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user