mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Added cse_sys_groups source
This commit is contained in:
parent
1a9b572850
commit
a0f98b2e11
7
TO_MERGE/cse/sys_groups/CfgAddons.h
Normal file
7
TO_MERGE/cse/sys_groups/CfgAddons.h
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
class CfgAddons {
|
||||||
|
class PreloadAddons {
|
||||||
|
class cse_sys_groups {
|
||||||
|
list[] = {"cse_sys_groups"};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
15
TO_MERGE/cse/sys_groups/CfgFunctions.h
Normal file
15
TO_MERGE/cse/sys_groups/CfgFunctions.h
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
class CfgFunctions {
|
||||||
|
class CSE {
|
||||||
|
class Groups {
|
||||||
|
file = "cse\cse_sys_groups\functions";
|
||||||
|
class unitJoinGroup_GRP { recompile = 1; };
|
||||||
|
class unitLeaveGroup_GRP { recompile = 1; };
|
||||||
|
class unitsInGroupLeft_GRP { recompile = 1; };
|
||||||
|
class unitCanJoinTargetGroup_GRP { recompile = 1; };
|
||||||
|
class setGroupFormation_GRP { recompile = 1; };
|
||||||
|
class setUnitGroupLeader_GRP { recompile = 1; };
|
||||||
|
class canTapShoulder_GRP;
|
||||||
|
class tapShoulder_GRP;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
41
TO_MERGE/cse/sys_groups/CfgVehicles.h
Normal file
41
TO_MERGE/cse/sys_groups/CfgVehicles.h
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
class CfgVehicles {
|
||||||
|
class Logic;
|
||||||
|
class Module_F: Logic {
|
||||||
|
class ArgumentsBaseUnits {
|
||||||
|
};
|
||||||
|
};
|
||||||
|
class cse_sys_groups: Module_F {
|
||||||
|
scope = 2;
|
||||||
|
displayName = "Groups [CSE]";
|
||||||
|
icon = "\cse\cse_main\data\cse_groups_module.paa";
|
||||||
|
category = "cseModules";
|
||||||
|
function = "cse_fnc_initalizeModule_F";
|
||||||
|
functionPriority = 1;
|
||||||
|
isGlobal = 1;
|
||||||
|
isTriggerActivated = 0;
|
||||||
|
class Arguments {
|
||||||
|
class allowGroupSwitch {
|
||||||
|
displayName = "Group switch";
|
||||||
|
description = "Allow players to join and leave groups";
|
||||||
|
typeName = "BOOL";
|
||||||
|
defaultValue = true;
|
||||||
|
};
|
||||||
|
class allowFormationSwitch {
|
||||||
|
displayName = "Formation actions";
|
||||||
|
description = "Group leaders can order formation changes through the action menu";
|
||||||
|
typeName = "BOOL";
|
||||||
|
defaultValue = true;
|
||||||
|
};
|
||||||
|
class allowShoulderTap {
|
||||||
|
displayName = "Shoulder Tap";
|
||||||
|
description = "Allow usage of shoulder taps";
|
||||||
|
typeName = "BOOL";
|
||||||
|
defaultValue = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
class ModuleDescription {
|
||||||
|
description = "Provides players a serie of actions to join or leave their group, as well as formation changes";
|
||||||
|
sync[] = {};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
27
TO_MERGE/cse/sys_groups/Combat_Space_Enhancement.h
Normal file
27
TO_MERGE/cse/sys_groups/Combat_Space_Enhancement.h
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#define MENU_KEYBINDING 1
|
||||||
|
#define ACTION_KEYBINDING 2
|
||||||
|
#define CLIENT_SETTING 3
|
||||||
|
|
||||||
|
class Combat_Space_Enhancement {
|
||||||
|
class cfgModules {
|
||||||
|
class cse_sys_groups {
|
||||||
|
init = "call compile preprocessFile 'cse\cse_sys_groups\init_sys_groups.sqf';";
|
||||||
|
name = "Groups";
|
||||||
|
|
||||||
|
class Configurations {
|
||||||
|
class actionTapShoulder_GRP {
|
||||||
|
type = ACTION_KEYBINDING;
|
||||||
|
title = $STR_CSE_SHOULDER_TAP_TITLE;
|
||||||
|
description = $STR_CS_SHOULDER_TAP_DESC;
|
||||||
|
value[] = {0,0,0,0};
|
||||||
|
onPressed = "if ([player, cursorTarget] call cse_fnc_canTapShoulder_GRP) then {[player, cursorTarget] call cse_fnc_tapShoulder_GRP;};";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
class CustomEventHandlers {
|
||||||
|
class shoulderTapped {}; // [_caller, _target]
|
||||||
|
class groupJoined {}; // [_unit, _targetUnit]
|
||||||
|
};
|
||||||
|
};
|
19
TO_MERGE/cse/sys_groups/config.cpp
Normal file
19
TO_MERGE/cse/sys_groups/config.cpp
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#define _ARMA_
|
||||||
|
class CfgPatches
|
||||||
|
{
|
||||||
|
class cse_sys_groups
|
||||||
|
{
|
||||||
|
units[] = {};
|
||||||
|
weapons[] = {};
|
||||||
|
requiredVersion = 0.1;
|
||||||
|
requiredAddons[] = {"cse_f_eh","cse_main"};
|
||||||
|
version = "0.10.0_rc";
|
||||||
|
author[] = {"Combat Space Enhancement"};
|
||||||
|
authorUrl = "http://csemod.com";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
#include "CfgAddOns.h"
|
||||||
|
#include "CfgFunctions.h"
|
||||||
|
#include "CfgVehicles.h"
|
||||||
|
#include "Combat_Space_Enhancement.h"
|
BIN
TO_MERGE/cse/sys_groups/data/icons/icon_column.paa
Normal file
BIN
TO_MERGE/cse/sys_groups/data/icons/icon_column.paa
Normal file
Binary file not shown.
BIN
TO_MERGE/cse/sys_groups/data/icons/icon_diamond.paa
Normal file
BIN
TO_MERGE/cse/sys_groups/data/icons/icon_diamond.paa
Normal file
Binary file not shown.
BIN
TO_MERGE/cse/sys_groups/data/icons/icon_ech_l.paa
Normal file
BIN
TO_MERGE/cse/sys_groups/data/icons/icon_ech_l.paa
Normal file
Binary file not shown.
BIN
TO_MERGE/cse/sys_groups/data/icons/icon_ech_r.paa
Normal file
BIN
TO_MERGE/cse/sys_groups/data/icons/icon_ech_r.paa
Normal file
Binary file not shown.
BIN
TO_MERGE/cse/sys_groups/data/icons/icon_group.paa
Normal file
BIN
TO_MERGE/cse/sys_groups/data/icons/icon_group.paa
Normal file
Binary file not shown.
BIN
TO_MERGE/cse/sys_groups/data/icons/icon_line.paa
Normal file
BIN
TO_MERGE/cse/sys_groups/data/icons/icon_line.paa
Normal file
Binary file not shown.
BIN
TO_MERGE/cse/sys_groups/data/icons/icon_stag_column.paa
Normal file
BIN
TO_MERGE/cse/sys_groups/data/icons/icon_stag_column.paa
Normal file
Binary file not shown.
BIN
TO_MERGE/cse/sys_groups/data/icons/icon_vee.paa
Normal file
BIN
TO_MERGE/cse/sys_groups/data/icons/icon_vee.paa
Normal file
Binary file not shown.
BIN
TO_MERGE/cse/sys_groups/data/icons/icon_wedge.paa
Normal file
BIN
TO_MERGE/cse/sys_groups/data/icons/icon_wedge.paa
Normal file
Binary file not shown.
21
TO_MERGE/cse/sys_groups/functions/fn_canTapShoulder_GRP.sqf
Normal file
21
TO_MERGE/cse/sys_groups/functions/fn_canTapShoulder_GRP.sqf
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
/**
|
||||||
|
* fn_canTapShoulder_GRP.sqf
|
||||||
|
* @Descr: Check if caller can tap targets shoulder.
|
||||||
|
* @Author: Glowbal
|
||||||
|
*
|
||||||
|
* @Arguments: [caller OBJECT, target OBJECT]
|
||||||
|
* @Return: BOOL true if caller can tab target shoulder
|
||||||
|
* @PublicAPI: true
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
private ["_caller", "_target"];
|
||||||
|
_caller = _this select 0;
|
||||||
|
_target = _this select 1;
|
||||||
|
|
||||||
|
if (isnil "CSE_SYS_GROUPS_ALLOW_SHOULDER_TAPS_GRP") then {
|
||||||
|
CSE_SYS_GROUPS_ALLOW_SHOULDER_TAPS_GRP = false;
|
||||||
|
};
|
||||||
|
if !(CSE_SYS_GROUPS_ALLOW_SHOULDER_TAPS_GRP) exitwith { false };
|
||||||
|
|
||||||
|
(_target isKindOf "CAManBase" && {[_target] call cse_fnc_isAwake} && {[_caller] call cse_fnc_canInteract} && {_caller distance _target < 3} && {_caller != _target})
|
@ -0,0 +1,21 @@
|
|||||||
|
/**
|
||||||
|
* fn_setGroupFormation_GRP.sqf
|
||||||
|
* @Descr: N/A
|
||||||
|
* @Author: Glowbal
|
||||||
|
*
|
||||||
|
* @Arguments: []
|
||||||
|
* @Return:
|
||||||
|
* @PublicAPI: false
|
||||||
|
*/
|
||||||
|
|
||||||
|
private ["_unit", "_formation", "_groupUnits"];
|
||||||
|
_unit = [_this, 0, objNull, [objNull]] call BIS_fnc_Param;
|
||||||
|
_formation = [_this, 1, "", [""]] call BIS_fnc_Param;
|
||||||
|
|
||||||
|
|
||||||
|
if (([_unit] call cse_fnc_canInteract) && (formationLeader _unit == _unit)) then {
|
||||||
|
(group _unit) setFormation _formation;
|
||||||
|
[format["Setting formation of group %1 to %2",group _unit, _formation]] call cse_fnc_debug;
|
||||||
|
} else {
|
||||||
|
[format["cant set formation of group %1 to %2 because: %3 %4",group _unit, _formation, ([_unit] call cse_fnc_canInteract), (formationLeader _unit == _unit)]] call cse_fnc_debug;
|
||||||
|
};
|
@ -0,0 +1,28 @@
|
|||||||
|
/**
|
||||||
|
* fn_setUnitGroupLeader_GRP.sqf
|
||||||
|
* @Descr: Sets unit as the leader of units group.
|
||||||
|
* @Author: Glowbal
|
||||||
|
*
|
||||||
|
* @Arguments: [unit OBJECT]
|
||||||
|
* @Return: void
|
||||||
|
* @PublicAPI: true
|
||||||
|
*/
|
||||||
|
|
||||||
|
private ["_unit","_groupMembers"];
|
||||||
|
_unit = _this select 0;
|
||||||
|
if !(_unit isKindOf "CAManBase") exitwith {};
|
||||||
|
|
||||||
|
_groupMembers = units group _unit;
|
||||||
|
{
|
||||||
|
if (_x != _unit) then {
|
||||||
|
[_x] call cse_fnc_unitLeaveGroup_GRP;
|
||||||
|
};
|
||||||
|
}foreach _groupMembers;
|
||||||
|
|
||||||
|
{
|
||||||
|
if (_x != _unit) then {
|
||||||
|
[_x, _unit] call cse_fnc_unitJoinGroup_GRP;
|
||||||
|
};
|
||||||
|
}foreach _groupMembers;
|
||||||
|
|
||||||
|
true;
|
27
TO_MERGE/cse/sys_groups/functions/fn_tapShoulder_GRP.sqf
Normal file
27
TO_MERGE/cse/sys_groups/functions/fn_tapShoulder_GRP.sqf
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
/**
|
||||||
|
* fn_tapShoulder_GRP.sqf
|
||||||
|
* @Descr: Tap units shoulder.
|
||||||
|
* @Author: Glowbal
|
||||||
|
*
|
||||||
|
* @Arguments: [caller OBJECT, target OBJECT (Unit that will be tapped)]
|
||||||
|
* @Return: void
|
||||||
|
* @PublicAPI: true
|
||||||
|
*/
|
||||||
|
|
||||||
|
private ["_caller", "_target"];
|
||||||
|
_caller = _this select 0;
|
||||||
|
_target = _this select 1;
|
||||||
|
|
||||||
|
// If the target isn't local, we need to execute this function on the targets locality.
|
||||||
|
if (!local _target) exitwith {
|
||||||
|
[[_caller, _target], "cse_fnc_tapShoulder_GRP", _target] call BIS_fnc_MP;
|
||||||
|
};
|
||||||
|
[[_caller, _target],"shoulderTapped"] call cse_fnc_customEventHandler_F;
|
||||||
|
|
||||||
|
// No need to execute this for non player units. We exit here for non player units, because we do want to execute the custom eventhandler.
|
||||||
|
if (!isPlayer _target) exitwith {};
|
||||||
|
|
||||||
|
// Display information for player to indicate that players should was tapped.
|
||||||
|
// This is done through a camShake and a display Message on the screen.
|
||||||
|
addCamShake [4, 0.5, 4];
|
||||||
|
[_target,localize "STR_CS_SHOULDER_TAP_GRP",format[localize "STR_CSE_SHOULDER_TAPPED_GRP", [_caller] call cse_fnc_getName]] call cse_fnc_sendDisplayMessageTo;
|
@ -0,0 +1,27 @@
|
|||||||
|
/**
|
||||||
|
* fn_unitCanJoinTargetGroup_GRP.sqf
|
||||||
|
* @Descr: Check if a unit can join the target group
|
||||||
|
* @Author: Glowbal
|
||||||
|
*
|
||||||
|
* @Arguments: [unit OBJECT, target OBJECT]
|
||||||
|
* @Return: BOOL True if unit can join the targets group
|
||||||
|
* @PublicAPI: true
|
||||||
|
*/
|
||||||
|
|
||||||
|
private ["_unit", "_targetUnit", "_currentGroup", "_targetGroup", "_return"];
|
||||||
|
_unit = [_this, 0, objNull, [objNull]] call BIS_fnc_Param;
|
||||||
|
_targetUnit = [_this, 1, objNull, [objNull]] call BIS_fnc_Param;
|
||||||
|
|
||||||
|
_return = false;
|
||||||
|
if (_unit != _targetUnit) then {
|
||||||
|
if (_unit iskindof "CaManBase" && (_targetUnit isKindOf "CAManBase")) then {
|
||||||
|
if (side _unit == side _targetUnit) then {
|
||||||
|
_currentGroup = group _unit;
|
||||||
|
_targetGroup = group _targetUnit;
|
||||||
|
if (_currentGroup != _targetGroup) then {
|
||||||
|
_return = true
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
_return
|
27
TO_MERGE/cse/sys_groups/functions/fn_unitJoinGroup_GRP.sqf
Normal file
27
TO_MERGE/cse/sys_groups/functions/fn_unitJoinGroup_GRP.sqf
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
/**
|
||||||
|
* fn_unitJoinGroup_GRP.sqf
|
||||||
|
* @Descr: unit joins target group and removes old group if no members are left.
|
||||||
|
* @Author: Glowbal
|
||||||
|
*
|
||||||
|
* @Arguments: [unit OBJECT, target OBJECT]
|
||||||
|
* @Return: void
|
||||||
|
* @PublicAPI: true
|
||||||
|
*/
|
||||||
|
|
||||||
|
private ["_unit", "_targetUnit", "_currentGroup", "_targetGroup"];
|
||||||
|
_unit = [_this, 0, objNull, [objNull]] call BIS_fnc_Param;
|
||||||
|
_targetUnit = [_this, 1, objNull, [objNull]] call BIS_fnc_Param;
|
||||||
|
|
||||||
|
if ([_unit, _targetUnit] call cse_fnc_unitCanJoinTargetGroup_GRP) then {
|
||||||
|
_currentGroup = group _unit;
|
||||||
|
_targetGroup = group _targetUnit;
|
||||||
|
|
||||||
|
if (_currentGroup != _targetGroup) then {
|
||||||
|
[_unit] joinSilent _targetGroup;
|
||||||
|
if (count (units _currentGroup) == 0) then {
|
||||||
|
deleteGroup _currentGroup;
|
||||||
|
};
|
||||||
|
|
||||||
|
[[_unit, _targetUnit],"groupJoined"] call cse_fnc_customEventHandler_F;
|
||||||
|
};
|
||||||
|
};
|
21
TO_MERGE/cse/sys_groups/functions/fn_unitLeaveGroup_GRP.sqf
Normal file
21
TO_MERGE/cse/sys_groups/functions/fn_unitLeaveGroup_GRP.sqf
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
/**
|
||||||
|
* fn_unitLeaveGroup_GRP.sqf
|
||||||
|
* @Descr: unit leaves current group and joins an empty group.
|
||||||
|
* @Author: Glowbal
|
||||||
|
*
|
||||||
|
* @Arguments: [unit OBJECT]
|
||||||
|
* @Return: void
|
||||||
|
* @PublicAPI: true
|
||||||
|
*/
|
||||||
|
|
||||||
|
private ["_unit", "_currentGroup", "_newgroup"];
|
||||||
|
_unit = [_this, 0, objNull, [objNull]] call BIS_fnc_Param;
|
||||||
|
if (_unit iskindof "CaManBase" && [_unit] call cse_fnc_canInteract) then {
|
||||||
|
_currentGroup = group _unit;
|
||||||
|
_newgroup = createGroup (side _unit);
|
||||||
|
[_unit] joinSilent _newgroup;
|
||||||
|
|
||||||
|
if (count (units _currentGroup) == 0) then {
|
||||||
|
deleteGroup _currentGroup;
|
||||||
|
};
|
||||||
|
};
|
@ -0,0 +1,17 @@
|
|||||||
|
/**
|
||||||
|
* fn_unitsInGroupLeft_GRP.sqf
|
||||||
|
* @Descr: Check if the group has more as one member
|
||||||
|
* @Author: Glowbal
|
||||||
|
*
|
||||||
|
* @Arguments: [unit OBJECT]
|
||||||
|
* @Return: BOOL Returns true if group of unit contains more units as 1
|
||||||
|
* @PublicAPI: true
|
||||||
|
*/
|
||||||
|
|
||||||
|
private ["_unit", "_currentGroup", "_newgroup"];
|
||||||
|
_unit = [_this, 0, objNull, [objNull]] call BIS_fnc_Param;
|
||||||
|
if (_unit iskindof "CaManBase") then {
|
||||||
|
(count (units (group _unit)) > 1)
|
||||||
|
} else {
|
||||||
|
false;
|
||||||
|
};
|
80
TO_MERGE/cse/sys_groups/init_sys_groups.sqf
Normal file
80
TO_MERGE/cse/sys_groups/init_sys_groups.sqf
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
|
||||||
|
private ["_args", "_entries"];
|
||||||
|
_args = _this;
|
||||||
|
if (!hasInterface) exitwith {};
|
||||||
|
CSE_SYS_GROUPS_ALLOW_GROUPSWITCH_GRP = false;
|
||||||
|
CSE_SYS_GROUPS_ALLOW_FORMATIONSWITCH_GRP = false;
|
||||||
|
CSE_SYS_GROUPS_ALLOW_SHOULDER_TAPS_GRP = false;
|
||||||
|
|
||||||
|
{
|
||||||
|
if (_x select 0 == "allowGroupSwitch") then {
|
||||||
|
CSE_SYS_GROUPS_ALLOW_GROUPSWITCH_GRP = (_x select 1);
|
||||||
|
};
|
||||||
|
if (_x select 0 == "allowFormationSwitch") then {
|
||||||
|
CSE_SYS_GROUPS_ALLOW_FORMATIONSWITCH_GRP = (_x select 1);
|
||||||
|
};
|
||||||
|
if (_x select 0 == "allowShoulderTap") then {
|
||||||
|
CSE_SYS_GROUPS_ALLOW_SHOULDER_TAPS_GRP = (_x select 1);
|
||||||
|
};
|
||||||
|
}foreach _args;
|
||||||
|
waituntil {!isnil "cse_gui"};
|
||||||
|
|
||||||
|
if (CSE_SYS_GROUPS_ALLOW_GROUPSWITCH_GRP) then {
|
||||||
|
_entries = [
|
||||||
|
[localize "STR_CSE_GROUP_LEAVEGRP_SHORT", {([player] call cse_fnc_unitsInGroupLeft_GRP)}, "cse\cse_sys_groups\data\icons\icon_group.paa", {closeDialog 0; [player] call cse_fnc_unitLeaveGroup_GRP}, localize "STR_CSE_GROUP_LEAVEGRP_TOOLTIP"],
|
||||||
|
|
||||||
|
[localize "STR_CSE_GROUP_REQUESTJOINGRP_SHORT", {(([_this select 0, _this select 1] call cse_fnc_unitCanJoinTargetGroup_GRP))}, "cse\cse_sys_groups\data\icons\icon_group.paa", {
|
||||||
|
closeDialog 0;
|
||||||
|
[player, _this select 1, "cse_sys_Groups_requestJoinGrp", "STR_CSE_GROUP_REQUESTJOINGRP_MESSAGE", "if !(_this select 2) exitwith {}; [player, _this select 1] call cse_fnc_unitJoinGroup_GRP;"] call cse_fnc_sendRequest_f;
|
||||||
|
}, localize "STR_CSE_GROUP_REQUESTJOINGRP_TOOLTIP"]
|
||||||
|
];
|
||||||
|
["ActionMenu","group_actions", _entries ] call cse_fnc_addMultipleEntriesToRadialCategory_F;
|
||||||
|
};
|
||||||
|
|
||||||
|
if (CSE_SYS_GROUPS_ALLOW_GROUPSWITCH_GRP) then {
|
||||||
|
cse_displaygroupActions_switchFormationMenu_GRP = {
|
||||||
|
[ _this select 3,
|
||||||
|
[
|
||||||
|
[localize "STR_CSE_GROUP_FORM_COLUMN_SHORT", "cse\cse_sys_groups\data\icons\icon_column.paa", {closeDialog 0; [player, "COLUMN"] call CSE_fnc_setGroupFormation_GRP}, true, localize "STR_CSE_GROUP_FORM_COLUMN_TOOLTIP"],
|
||||||
|
[localize "STR_CSE_GROUP_FORM_STAG_SHORT","cse\cse_sys_groups\data\icons\icon_stag_column.paa", {closeDialog 0; [player, "STAG COLUMN"] call CSE_fnc_setGroupFormation_GRP}, true, localize "STR_CSE_GROUP_FORM_STAG_TOOLTIP"],
|
||||||
|
[localize "STR_CSE_GROUP_FORM_WEDGE_SHORT", "cse\cse_sys_groups\data\icons\icon_wedge.paa", {closeDialog 0; [player, "WEDGE"] call CSE_fnc_setGroupFormation_GRP}, true, localize "STR_CSE_GROUP_FORM_WEDGE_TOOLTIP"],
|
||||||
|
[localize "STR_CSE_GROUP_FORM_ECHL_SHORT", "cse\cse_sys_groups\data\icons\icon_ech_l.paa", {closeDialog 0; [player, "ECH LEFT"] call CSE_fnc_setGroupFormation_GRP}, true, localize "STR_CSE_GROUP_FORM_ECHL_TOOLTIP"],
|
||||||
|
[localize "STR_CSE_GROUP_FORM_ECHR_SHORT", "cse\cse_sys_groups\data\icons\icon_ech_r.paa", {closeDialog 0; [player, "ECH RIGHT"] call CSE_fnc_setGroupFormation_GRP}, true, localize "STR_CSE_GROUP_FORM_ECHR_TOOLTIP"],
|
||||||
|
[localize "STR_CSE_GROUP_FORM_VEE_SHORT", "cse\cse_sys_groups\data\icons\icon_vee.paa", {closeDialog 0; [player, "VEE"] call CSE_fnc_setGroupFormation_GRP}, true, localize "STR_CSE_GROUP_FORM_VEE_TOOLTIP"],
|
||||||
|
[localize "STR_CSE_GROUP_FORM_LINE_SHORT", "cse\cse_sys_groups\data\icons\icon_line.paa", {closeDialog 0; [player, "LINE"] call CSE_fnc_setGroupFormation_GRP}, true, localize "STR_CSE_GROUP_FORM_LINE_TOOLTIP"],
|
||||||
|
[localize "STR_CSE_GROUP_FORM_FILE_SHORT", "cse\cse_sys_groups\data\icons\icon_column.paa", {closeDialog 0; [player, "FILE"] call CSE_fnc_setGroupFormation_GRP}, true, localize "STR_CSE_GROUP_FORM_FILE_TOOLTIP"],
|
||||||
|
[localize "STR_CSE_GROUP_FORM_DIAMOND_SHORT", "cse\cse_sys_groups\data\icons\icon_diamond.paa", {closeDialog 0; [player, "DIAMOND"] call CSE_fnc_setGroupFormation_GRP}, true, localize "STR_CSE_GROUP_FORM_DIAMOND_TOOLTIP"]
|
||||||
|
],
|
||||||
|
_this select 1, CSE_SELECTED_RADIAL_OPTION_N_GUI, true
|
||||||
|
] call cse_fnc_openRadialSecondRing_GUI;
|
||||||
|
};
|
||||||
|
|
||||||
|
_entries = [
|
||||||
|
[localize "STR_CSE_GROUP_SWITCHFORMATION_SHORT", {(([player] call cse_fnc_canInteract) && (formationLeader player == player))}, "cse\cse_sys_groups\data\icons\icon_group.paa", cse_displaygroupActions_switchFormationMenu_GRP, localize "STR_CSE_GROUP_SWITCHFORMATION_TOOLTIP"]
|
||||||
|
];
|
||||||
|
|
||||||
|
["ActionMenu","group_actions", _entries ] call cse_fnc_addMultipleEntriesToRadialCategory_F;
|
||||||
|
|
||||||
|
|
||||||
|
_requestGroupLeader = {
|
||||||
|
closeDialog 0;
|
||||||
|
[player, leader (group player), "cse_sys_Groups_requestLeader", "STR_CSE_GROUP_REQUESTLEADER_MESSAGE", "if !(_this select 2) exitwith {};
|
||||||
|
[player] call cse_fnc_setUnitGroupLeader_GRP;
|
||||||
|
"] call cse_fnc_sendRequest_f;
|
||||||
|
};
|
||||||
|
|
||||||
|
_entries = [
|
||||||
|
[localize "STR_CSE_GROUP_REQUESTLEADER_SHORT", {(([player] call cse_fnc_canInteract) && (leader (group player) != player))}, "cse\cse_sys_groups\data\icons\icon_group.paa", _requestGroupLeader, localize "STR_CSE_GROUP_REQUESTLEADER_TOOLTIP"]
|
||||||
|
];
|
||||||
|
|
||||||
|
["ActionMenu","group_actions", _entries ] call cse_fnc_addMultipleEntriesToRadialCategory_F;
|
||||||
|
};
|
||||||
|
|
||||||
|
if (CSE_SYS_GROUPS_ALLOW_SHOULDER_TAPS_GRP) then {
|
||||||
|
|
||||||
|
_entries = [
|
||||||
|
[localize "STR_CSE_SHOULDER_TAP_TITLE", {(([player, _this select 1] call cse_fnc_canTapShoulder_GRP) && (isPlayer (_this select 1)))}, CSE_ICON_PATH + "icon_interact.paa", {closeDialog 0; [player, _this select 1] call cse_fnc_tapShoulder_GRP;}, localize "STR_CSE_SHOULDER_TAP_TITLE"]
|
||||||
|
];
|
||||||
|
|
||||||
|
["ActionMenu","interaction", _entries ] call cse_fnc_addMultipleEntriesToRadialCategory_F;
|
||||||
|
};
|
251
TO_MERGE/cse/sys_groups/stringtable.xml
Normal file
251
TO_MERGE/cse/sys_groups/stringtable.xml
Normal file
@ -0,0 +1,251 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<Project name="Combat Space Enhancement">
|
||||||
|
<Package name="cse_sys_groups">
|
||||||
|
<Container ID="Groups">
|
||||||
|
<Key ID="STR_CSE_GROUP_FORM_COLUMN_SHORT">
|
||||||
|
<Original>Column</Original>
|
||||||
|
<English>Column</English>
|
||||||
|
<German>Kolonne</German>
|
||||||
|
<Polish>Kolumna</Polish>
|
||||||
|
<Spanish>Columna</Spanish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_CSE_GROUP_FORM_STAG_SHORT">
|
||||||
|
<Original>Stag Column</Original>
|
||||||
|
<English>Stag Column</English>
|
||||||
|
<German>Gest.Kolonne</German>
|
||||||
|
<Polish>Kolumna rozpr.</Polish>
|
||||||
|
<Spanish>Columna Esc.</Spanish>
|
||||||
|
</Key>
|
||||||
|
|
||||||
|
<Key ID="STR_CSE_GROUP_FORM_WEDGE_SHORT">
|
||||||
|
<Original>Wedge</Original>
|
||||||
|
<English>Wedge</English>
|
||||||
|
<German>Keil</German>
|
||||||
|
<Polish>Klin</Polish>
|
||||||
|
<Spanish>Cuña</Spanish>
|
||||||
|
</Key>
|
||||||
|
|
||||||
|
<Key ID="STR_CSE_GROUP_FORM_ECHL_SHORT">
|
||||||
|
<Original>Echelon L</Original>
|
||||||
|
<English>Echelon L</English>
|
||||||
|
<German>Staffel L</German>
|
||||||
|
<Polish>Eszelon L</Polish>
|
||||||
|
<Spanish>Escalón Izq.</Spanish>
|
||||||
|
</Key>
|
||||||
|
|
||||||
|
<Key ID="STR_CSE_GROUP_FORM_ECHR_SHORT">
|
||||||
|
<Original>Echelon R</Original>
|
||||||
|
<English>Echelon R</English>
|
||||||
|
<German>Staffel R</German>
|
||||||
|
<Polish>Eszelon P</Polish>
|
||||||
|
<Spanish>Escalon Der.</Spanish>
|
||||||
|
</Key>
|
||||||
|
|
||||||
|
<Key ID="STR_CSE_GROUP_FORM_VEE_SHORT">
|
||||||
|
<Original>Vee</Original>
|
||||||
|
<English>Vee</English>
|
||||||
|
<German>V-Form.</German>
|
||||||
|
<Polish>Formacja V</Polish>
|
||||||
|
<Spanish>Formación V</Spanish>
|
||||||
|
</Key>
|
||||||
|
|
||||||
|
<Key ID="STR_CSE_GROUP_FORM_LINE_SHORT">
|
||||||
|
<Original>Line</Original>
|
||||||
|
<English>Line</English>
|
||||||
|
<German>Linie</German>
|
||||||
|
<Polish>Tyraliera</Polish>
|
||||||
|
<Spanish>Línea</Spanish>
|
||||||
|
</Key>
|
||||||
|
|
||||||
|
<Key ID="STR_CSE_GROUP_FORM_FILE_SHORT">
|
||||||
|
<Original>File</Original>
|
||||||
|
<English>File</English>
|
||||||
|
<German>Komp.Kolonne</German>
|
||||||
|
<Polish>Plik</Polish>
|
||||||
|
<Spanish>Hilera</Spanish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_CSE_GROUP_FORM_DIAMOND_SHORT">
|
||||||
|
<Original>Diamond</Original>
|
||||||
|
<English>Diamond</English>
|
||||||
|
<German>Raute</German>
|
||||||
|
<Polish>Diament</Polish>
|
||||||
|
<Spanish>Diamante</Spanish>
|
||||||
|
</Key>
|
||||||
|
|
||||||
|
<Key ID="STR_CSE_GROUP_FORM_COLUMN_TOOLTIP">
|
||||||
|
<Original>Column</Original>
|
||||||
|
<English>Column</English>
|
||||||
|
<German>Kolonnenformation</German>
|
||||||
|
<Polish>Formacja kolumna/Polish></Polish>
|
||||||
|
<Spanish>Columna</Spanish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_CSE_GROUP_FORM_STAG_TOOLTIP">
|
||||||
|
<Original>Staggered Column</Original>
|
||||||
|
<English>Staggered Column</English>
|
||||||
|
<German>Gestaffelte Kolonne</German>
|
||||||
|
<Polish>Formacja rozproszona kolumna</Polish>
|
||||||
|
<Spanish>Columna Escalonada</Spanish>
|
||||||
|
</Key>
|
||||||
|
|
||||||
|
<Key ID="STR_CSE_GROUP_FORM_WEDGE_TOOLTIP">
|
||||||
|
<Original>Wedge formation</Original>
|
||||||
|
<English>Wedge formation</English>
|
||||||
|
<German>Keilformation</German>
|
||||||
|
<Polish>Formacja klin</Polish>
|
||||||
|
<Spanish>Formación Cuña</Spanish>
|
||||||
|
</Key>
|
||||||
|
|
||||||
|
<Key ID="STR_CSE_GROUP_FORM_ECHL_TOOLTIP">
|
||||||
|
<Original>Echelon Left</Original>
|
||||||
|
<English>Echelon Left</English>
|
||||||
|
<German>Staffel Links</German>
|
||||||
|
<Polish>Formacja eszelon lewy</Polish>
|
||||||
|
<Spanish>Escalón Izquierda</Spanish>
|
||||||
|
</Key>
|
||||||
|
|
||||||
|
<Key ID="STR_CSE_GROUP_FORM_ECHR_TOOLTIP">
|
||||||
|
<Original>Echelon Right</Original>
|
||||||
|
<English>Echelon Right</English>
|
||||||
|
<German>Staffel Rechts</German>
|
||||||
|
<Polish>Formacja eszelon prawy</Polish>
|
||||||
|
<Spanish>Escalón Derecha</Spanish>
|
||||||
|
</Key>
|
||||||
|
|
||||||
|
<Key ID="STR_CSE_GROUP_FORM_VEE_TOOLTIP">
|
||||||
|
<Original>Vee formation</Original>
|
||||||
|
<English>Vee formation</English>
|
||||||
|
<German>V-Formation</German>
|
||||||
|
<Polish>Formacja w kształcie litery 'V'</Polish>
|
||||||
|
<Spanish>Formación V</Spanish>
|
||||||
|
</Key>
|
||||||
|
|
||||||
|
<Key ID="STR_CSE_GROUP_FORM_LINE_TOOLTIP">
|
||||||
|
<Original>Line formation</Original>
|
||||||
|
<English>Line formation</English>
|
||||||
|
<German>Linienformation</German>
|
||||||
|
<Polish>Formacja linia</Polish>
|
||||||
|
<Spanish>Formación Línea</Spanish>
|
||||||
|
</Key>
|
||||||
|
|
||||||
|
<Key ID="STR_CSE_GROUP_FORM_FILE_TOOLTIP">
|
||||||
|
<Original>File formation</Original>
|
||||||
|
<English>File formation</English>
|
||||||
|
<German>Kompakte Kolonnenformation</German>
|
||||||
|
<Polish>Formacja kompaktowa kolumna</Polish>
|
||||||
|
<Spanish>Formación Hilera</Spanish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_CSE_GROUP_FORM_DIAMOND_TOOLTIP">
|
||||||
|
<Original>Diamond formation</Original>
|
||||||
|
<English>Diamond formation</English>
|
||||||
|
<German>Rautenformation</German>
|
||||||
|
<Polish>Formacja obrona okrężna</Polish>
|
||||||
|
<Spanish>Formación Diamante</Spanish>
|
||||||
|
</Key>
|
||||||
|
|
||||||
|
|
||||||
|
<Key ID="STR_CSE_GROUP_SWITCHFORMATION_SHORT">
|
||||||
|
<Original>Formations</Original>
|
||||||
|
<English>Formations</English>
|
||||||
|
<German>Formationen</German>
|
||||||
|
<Polish>Formacje</Polish>
|
||||||
|
<Spanish>Formaciones</Spanish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_CSE_GROUP_SWITCHFORMATION_TOOLTIP">
|
||||||
|
<Original>Order Formation</Original>
|
||||||
|
<English>Order Formation</English>
|
||||||
|
<German>Formationsbefehl</German>
|
||||||
|
<Polish>Zmień formację</Polish>
|
||||||
|
<Spanish>Ordenar Formaciones</Spanish>
|
||||||
|
</Key>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<Key ID="STR_CSE_GROUP_REQUESTLEADER_SHORT">
|
||||||
|
<Original>Lead Group</Original>
|
||||||
|
<English>Lead Group</English>
|
||||||
|
<German>Gruppe anführen</German>
|
||||||
|
<Polish>Przejmij dowodzenie</Polish>
|
||||||
|
<Spanish>Grupo de cabeza</Spanish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_CSE_GROUP_REQUESTLEADER_TOOLTIP">
|
||||||
|
<Original>Request group leader to take over group leader</Original>
|
||||||
|
<English>Request group leader to take over group leader</English>
|
||||||
|
<German>Gruppenführerschaft anfordern</German>
|
||||||
|
<Polish>Poproś aktualnego dowódcę o przejęcie roli dowodzenia</Polish>
|
||||||
|
<Spanish>Requerir un lider para que tome el control del grupo</Spanish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_CSE_GROUP_REQUESTLEADER_MESSAGE">
|
||||||
|
<Original>%1 requests to be leader of this group</Original>
|
||||||
|
<English>%1 requests to be leader of this group</English>
|
||||||
|
<German>%1 bittet um Gruppenführerschaft</German>
|
||||||
|
<Polish>%1 prosi o przejęcie dowodzenia nad tą grupą</Polish>
|
||||||
|
<Spanish>%1 pide liderazgo de grupo</Spanish>
|
||||||
|
</Key>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<Key ID="STR_CSE_SHOULDER_TAPPED_GRP">
|
||||||
|
<Original>Your shoulder was tapped!</Original>
|
||||||
|
<English>Your shoulder was tapped!</English>
|
||||||
|
<German>Jemand hat dich angestupst!</German>
|
||||||
|
<Polish>Zostałeś klepnięty w ramię!</Polish>
|
||||||
|
<Spanish>Te han tocado el hombro¡</Spanish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_CSE_SHOULDER_TAP_GRP">
|
||||||
|
<Original>Shoulder Tap</Original>
|
||||||
|
<English>Shoulder Tap</English>
|
||||||
|
<German>Schultergriff</German>
|
||||||
|
<Polish>Klepnij w ramię</Polish>
|
||||||
|
<Spanish>Toque en el hombro</Spanish>
|
||||||
|
</Key>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<Key ID="STR_CSE_SHOULDER_TAP_TITLE">
|
||||||
|
<Original>Shoulder Tap</Original>
|
||||||
|
<English>Shoulder Tap</English>
|
||||||
|
<German>Schultergriff</German>
|
||||||
|
<Polish>Klepanie w ramię</Polish>
|
||||||
|
<Spanish>Toque en el hombro</Spanish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_CS_SHOULDER_TAP_DESC">
|
||||||
|
<Original>When pressed, you tap the shoulder of the unit in front of you. This depends on the Shoulder Tap settings from the Groups Module.</Original>
|
||||||
|
<English>When pressed, you tap the shoulder of the unit in front of you. This depends on the Shoulder Tap settings from the Groups Module.</English>
|
||||||
|
<German>Stupst die Einheit vor dir an der Schulter an. Dies hängt von den Schulter-Check Einstellungen im Gruppenmodul ab.</German>
|
||||||
|
<Polish>Przy użyciu klepniesz w ramię osobę przed tobą. Ta opcja zależna jest od ustawień klepania w ramię w module grupy.</Polish>
|
||||||
|
<Spanish>Cuando se selecciona, tocas el hombro de la unidad que tengas en frente. Depende de la configuración del Módulo Grupos.</Spanish>
|
||||||
|
</Key>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<Key ID="STR_CSE_GROUP_REQUESTJOINGRP_SHORT">
|
||||||
|
<Original>Join Group</Original>
|
||||||
|
<Polish>Dołącz do grupy</Polish>
|
||||||
|
<Spanish>Unirse al Grupo</Spanish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_CSE_GROUP_REQUESTJOINGRP_TOOLTIP">
|
||||||
|
<Original>Join target Group</Original>
|
||||||
|
<Polish>Dołączasz do wybranej grupy</Polish>
|
||||||
|
<Spanish>Unirse al Grupo</Spanish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_CSE_GROUP_REQUESTJOINGRP_MESSAGE">
|
||||||
|
<Original>%1 requests to join your group</Original>
|
||||||
|
<Polish>%1 pragnie dołączyć do twojej grupy</Polish>
|
||||||
|
<Spanish>%1 pide unirse a su grupo</Spanish>
|
||||||
|
</Key>
|
||||||
|
|
||||||
|
|
||||||
|
<Key ID="STR_CSE_GROUP_LEAVEGRP_SHORT">
|
||||||
|
<Original>Leave Group</Original>
|
||||||
|
<Polish>Opuść grupę</Polish>
|
||||||
|
<Spanish>Salir del Grupo</Spanish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_CSE_GROUP_LEAVEGRP_TOOLTIP">
|
||||||
|
<Original>Leave Current Group</Original>
|
||||||
|
<Polish>Opuszczasz aktualną grupę</Polish>
|
||||||
|
<Spanish>Salir del Grupo</Spanish>
|
||||||
|
</Key>
|
||||||
|
|
||||||
|
</Container>
|
||||||
|
</Package>
|
||||||
|
</Project>
|
Loading…
Reference in New Issue
Block a user