Merge branch 'v0.97S13' into v0.97S13-530
This commit is contained in:
commit
7dc6fa9b87
|
@ -10,9 +10,9 @@
|
|||
"_thisId",
|
||||
"_thisType",
|
||||
"BIS_fnc_reviveInit",
|
||||
"CBA_Settings_fnc_init",
|
||||
"CBA_fnc_compatibleMagazines",
|
||||
"CBA_fnc_notify",
|
||||
"CBA_Settings_fnc_init",
|
||||
"KPLIB_eden_boxspawn",
|
||||
"KPLIB_eden_potatospawn",
|
||||
"KPLIB_eden_startbase",
|
||||
|
@ -30,6 +30,7 @@
|
|||
"KPLIB_param_crateVolume",
|
||||
"KPLIB_param_damageInfluence",
|
||||
"KPLIB_param_debug",
|
||||
"KPLIB_param_enemyDebug",
|
||||
"KPLIB_param_fobRange",
|
||||
"KPLIB_param_fuelInfluence",
|
||||
"KPLIB_param_limitedZeusCeiling",
|
||||
|
@ -45,9 +46,9 @@
|
|||
"KPLIB_param_presetF",
|
||||
"KPLIB_param_presetR",
|
||||
"KPLIB_param_recycleFactor",
|
||||
"KPLIB_param_refundSupply",
|
||||
"KPLIB_param_refundAmmo",
|
||||
"KPLIB_param_refundFuel",
|
||||
"KPLIB_param_refundSupply",
|
||||
"KPLIB_param_resupplyAmmoCost",
|
||||
"KPLIB_param_resupplyFuelCost",
|
||||
"KPLIB_param_resupplyGallCost",
|
||||
|
@ -117,13 +118,13 @@
|
|||
"KPLIB_preset_lockedVehPlF",
|
||||
"KPLIB_preset_logiBuildingE",
|
||||
"KPLIB_preset_logiBuildingF",
|
||||
"KPLIB_preset_logiTruckE",
|
||||
"KPLIB_preset_logiTruckF",
|
||||
"KPLIB_preset_logisticE",
|
||||
"KPLIB_preset_logisticF",
|
||||
"KPLIB_preset_logisticPlC",
|
||||
"KPLIB_preset_logisticPlE",
|
||||
"KPLIB_preset_logisticPlF",
|
||||
"KPLIB_preset_logiTruckE",
|
||||
"KPLIB_preset_logiTruckF",
|
||||
"KPLIB_preset_mortarE",
|
||||
"KPLIB_preset_mortarF",
|
||||
"KPLIB_preset_nameC",
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
* Added: Mission configuration completely via CBA Settings.
|
||||
* Added: Logistic station with cratefiller, vehicle resupply and recycle functionality.
|
||||
* Added: Garrison dialog for the commander to manage his own sector garrisons.
|
||||
* Added: Enemy Commander decision making and (re)action triggering via a FSM.
|
||||
* Updated: Traditional Chinese Localization. Thanks to [dustin902001](https://github.com/dustin902001)
|
||||
* Removed: Mission configuration via mission parameters.
|
||||
* Tweaked: License changed from MIT to GPLv3.
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
File: KPGUI_classes.hpp
|
||||
Author: Wyqer - https://github.com/KillahPotatoes
|
||||
Date: 2018-09-13
|
||||
Last Update: 2019-05-04
|
||||
Last Update: 2019-05-19
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
Description:
|
||||
|
@ -57,7 +57,6 @@ class KPGUI_PRE_ScrollBar {
|
|||
class KPGUI_PRE_Title {
|
||||
deletable = 0;
|
||||
fade = 0;
|
||||
access = 0;
|
||||
type = 0;
|
||||
idc = -1;
|
||||
colorBackground[] = KP_COLOR_PLAYERDEFINE;
|
||||
|
@ -83,7 +82,6 @@ class KPGUI_PRE_Title {
|
|||
class KPGUI_PRE_CloseCross {
|
||||
deletable = 0;
|
||||
fade = 0;
|
||||
access = 0;
|
||||
type = 11;
|
||||
style = 48 + 2048;
|
||||
color[] = {1, 1, 1, 0.75};
|
||||
|
@ -124,7 +122,6 @@ class KPGUI_PRE_VersionIcon: KPGUI_PRE_CloseCross {
|
|||
class KPGUI_PRE_Background {
|
||||
deletable = 0;
|
||||
fade = 0;
|
||||
access = 0;
|
||||
type = 0;
|
||||
idc = -1;
|
||||
colorBackground[] = KP_COLOR_BACKGROUND;
|
||||
|
@ -150,7 +147,6 @@ class KPGUI_PRE_Background {
|
|||
class KPGUI_PRE_Text {
|
||||
deletable = 0;
|
||||
fade = 0;
|
||||
access = 0;
|
||||
type = 0;
|
||||
idc = -1;
|
||||
colorBackground[] = {0, 0, 0, 0};
|
||||
|
@ -182,7 +178,6 @@ class KPGUI_PRE_InlineTitle: KPGUI_PRE_Text {
|
|||
class KPGUI_PRE_ActiveText {
|
||||
deletable = 0;
|
||||
fade = 0;
|
||||
access = 0;
|
||||
type = 11;
|
||||
style = 2;
|
||||
color[] = {0, 0, 0, 1};
|
||||
|
@ -234,7 +229,6 @@ class KPGUI_PRE_PictureRatio: KPGUI_PRE_Picture {
|
|||
class KPGUI_PRE_Button {
|
||||
deletable = 0;
|
||||
fade = 0;
|
||||
access = 0;
|
||||
type = 1;
|
||||
text = "";
|
||||
colorText[] = {1, 1, 1, 1};
|
||||
|
@ -316,7 +310,6 @@ class KPGUI_PRE_ControlsGroupNoScrollbars: KPGUI_PRE_ControlsGroup
|
|||
class KPGUI_PRE_Combo {
|
||||
deletable = 0;
|
||||
fade = 0;
|
||||
access = 0;
|
||||
type = 4;
|
||||
colorSelect[] = {0, 0, 0, 1};
|
||||
colorText[] = {1, 1, 1, 1};
|
||||
|
@ -401,7 +394,6 @@ class KPGUI_PRE_CheckBox {
|
|||
class KPGUI_PRE_ListBox {
|
||||
deletable = 0;
|
||||
fade = 0;
|
||||
access = 0;
|
||||
type = 5;
|
||||
rowHeight = 0;
|
||||
colorText[] = {1, 1, 1, 1};
|
||||
|
@ -451,7 +443,6 @@ class KPGUI_PRE_ListBox {
|
|||
class KPGUI_PRE_ListNBox {
|
||||
deletable = 0;
|
||||
fade = 0;
|
||||
access = 0;
|
||||
type = 102;
|
||||
rowHeight = 0;
|
||||
colorText[] = {1, 1, 1, 1};
|
||||
|
@ -553,7 +544,6 @@ class KPGUI_PRE_Slider {
|
|||
class KPGUI_PRE_EditBox {
|
||||
deletable = 0;
|
||||
fade = 0;
|
||||
access = 0;
|
||||
type = 2;
|
||||
x = 0;
|
||||
y = 0;
|
||||
|
@ -595,7 +585,6 @@ class KPGUI_PRE_ProgressBar
|
|||
class KPGUI_PRE_MapControl {
|
||||
deletable = 0;
|
||||
fade = 0;
|
||||
access = 0;
|
||||
type = 101;
|
||||
idc = 51;
|
||||
style = 16 + 32;
|
||||
|
@ -1195,7 +1184,7 @@ class KPGUI_PRE_DialogTitleSR: KPGUI_PRE_Title {
|
|||
|
||||
// Cross symbol
|
||||
class KPGUI_PRE_DialogCrossSR: KPGUI_PRE_CloseCross {
|
||||
x = safeZoneX + safeZoneW * (KP_X_VAL_SR + KP_WIDTH_VAL_SR - 0.02)
|
||||
x = safeZoneX + safeZoneW * (KP_X_VAL_SR + KP_WIDTH_VAL_SR - 0.02);
|
||||
y = KP_GETY_CROSS(KP_Y_VAL_SR);
|
||||
};
|
||||
|
||||
|
@ -1219,7 +1208,7 @@ class KPGUI_PRE_DialogButtonSR: KPGUI_PRE_Button {
|
|||
*/
|
||||
|
||||
class KPGUI_PRE_LogoRightCorner: KPGUI_PRE_PictureRatio {
|
||||
text = "KPGUI\res\kp512_CA.paa";
|
||||
text = "KPGUI\res\kp512_ca.paa";
|
||||
x = "safezoneX + safezoneW - 5.3 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
y = "safezoneY + safezoneH - 4.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
w = "3.5 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
File: KPGUI_defines.hpp
|
||||
Author: Wyqer - https://github.com/KillahPotatoes
|
||||
Date: 2018-07-10
|
||||
Last Update: 2019-05-05
|
||||
Last Update: 2019-06-08
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
Description:
|
||||
|
@ -148,7 +148,7 @@
|
|||
(X from 0.7975 - 0.9975, Y from 0.0025 - 0.9975)
|
||||
*/
|
||||
|
||||
#define KP_X_VAL_RP 0.7975
|
||||
#define KP_X_VAL_RP 0.7975
|
||||
#define KP_Y_VAL_RP 0.0025
|
||||
|
||||
#define KP_WIDTH_VAL_RP 0.2
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
File: fn_init_loadData.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2017-10-16
|
||||
Last Update: 2019-04-22
|
||||
Last Update: 2019-06-08
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: No
|
||||
|
||||
|
@ -35,8 +35,8 @@ if (_moduleData isEqualTo []) then {
|
|||
private _nextVehicle = "";
|
||||
private _nextBase = "";
|
||||
while {((count _assignedVehicles) < (count KPLIB_preset_lockedVehPlF)) && ((count _assignedBases) < (count KPLIB_sectors_military))} do {
|
||||
_nextVehicle = selectRandom (KPLIB_preset_lockedVehPlF select {!(_x in _assignedVehicles)});
|
||||
_nextBase = selectRandom (KPLIB_sectors_military select {!(_x in _assignedBases)});
|
||||
_nextVehicle = selectRandom (KPLIB_preset_lockedVehPlF - _assignedVehicles);
|
||||
_nextBase = selectRandom (KPLIB_sectors_military - _assignedBases);
|
||||
_assignedVehicles pushBack _nextVehicle;
|
||||
_assignedBases pushBack _nextBase;
|
||||
KPLIB_sectors_lockedVeh pushBack [_nextVehicle, _nextBase];
|
||||
|
@ -75,8 +75,8 @@ if (_moduleData isEqualTo []) then {
|
|||
} forEach KPLIB_sectors_lockedVeh;
|
||||
|
||||
while {((count _assignedVehicles) < (count KPLIB_preset_lockedVehPlF)) && ((count _assignedBases) < (count KPLIB_sectors_military))} do {
|
||||
_nextVehicle = selectRandom (KPLIB_preset_lockedVehPlF select {!(_x in _assignedVehicles)});
|
||||
_nextBase = selectRandom (KPLIB_sectors_military select {!(_x in _assignedBases)});
|
||||
_nextVehicle = selectRandom (KPLIB_preset_lockedVehPlF - _assignedVehicles);
|
||||
_nextBase = selectRandom (KPLIB_sectors_military - _assignedBases);
|
||||
_assignedVehicles pushBack _nextVehicle;
|
||||
_assignedBases pushBack _nextBase;
|
||||
KPLIB_sectors_lockedVeh pushBack [_nextVehicle, _nextBase];
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
File: fn_init_settings.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2018-11-09
|
||||
Last Update: 2019-04-27
|
||||
Last Update: 2019-06-15
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: No
|
||||
|
||||
|
@ -18,7 +18,6 @@
|
|||
Function reached the end [BOOL]
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
----- GENERAL SETTINGS -----
|
||||
*/
|
||||
|
@ -119,7 +118,6 @@
|
|||
----- PRESET SETTINGS -----
|
||||
*/
|
||||
|
||||
|
||||
// KPLIB_param_presetF
|
||||
// Selection for the units, vehicles, etc. for the player side.
|
||||
// Default: Custom West Army
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
KPLIB_fnc_common_fps
|
||||
|
||||
File: fn_common_fps.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2019-06-08
|
||||
Last Update: 2019-06-08
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: Yes
|
||||
|
||||
Description:
|
||||
Returns the current FPS or, if a number is given, if the FPS are above or equal given number.
|
||||
|
||||
Parameter(s):
|
||||
_fps - Value to check if FPS are equal or above. -1 to get current FPS. [NUMBER, defaults to -1]
|
||||
|
||||
Returns:
|
||||
Current FPS above given number or current FPS value [BOOL or NUMBER]
|
||||
*/
|
||||
|
||||
params [
|
||||
["_fps", -1, [0]]
|
||||
];
|
||||
|
||||
if (_fps > -1) then {
|
||||
diag_fps >= _fps
|
||||
} else {
|
||||
parseNumber (diag_fps toFixed 2)
|
||||
};
|
|
@ -4,7 +4,7 @@
|
|||
File: fn_common_getPresetClass.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2018-12-08
|
||||
Last Update: 2019-04-22
|
||||
Last Update: 2019-06-09
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: Yes
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
|||
|
||||
Parameter(s):
|
||||
_type - Preset type name [STRING, defaults to ""]
|
||||
_side - Preset side [SIDE, defaults to KPLIB_preset_sideEnemy]
|
||||
_side - Preset side [SIDE, defaults to KPLIB_preset_sideE]
|
||||
_isArray - Array of classnames (true) or single classname (false) [BOOL, defaults to false]
|
||||
|
||||
Returns:
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
File: functions.hpp
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2018-09-15
|
||||
Last Update: 2019-04-22
|
||||
Last Update: 2019-06-08
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
Description:
|
||||
|
@ -38,6 +38,9 @@ class common {
|
|||
// Creates a vehicle at given position with given direction
|
||||
class common_createVehicle {};
|
||||
|
||||
// Check current FPS or if they are higher or equal than given number
|
||||
class common_fps {};
|
||||
|
||||
// Generate positions in circle
|
||||
class common_getCirclePositions {};
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
File: fn_core_getNearestMarker.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2017-11-26
|
||||
Last Update: 2019-04-22
|
||||
Last Update: 2019-06-08
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: Yes
|
||||
|
||||
|
@ -27,8 +27,8 @@ params [
|
|||
];
|
||||
|
||||
|
||||
private _markersWithinRange = _markers select {((markerPos _x) distance _centerPos) < _range};
|
||||
private _markersAscByRange = [_markersWithinRange, [_centerPos], {(markerPos _x) distance _input0}, "ASCEND"] call BIS_fnc_sortBy;
|
||||
private _markersWithinRange = _markers select {((markerPos _x) distance2D _centerPos) < _range};
|
||||
private _markersAscByRange = [_markersWithinRange, [_centerPos], {(markerPos _x) distance2D _input0}, "ASCEND"] call BIS_fnc_sortBy;
|
||||
// Return nearest marker
|
||||
if !(_markersAscByRange isEqualTo []) then {
|
||||
_markersAscByRange select 0
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
File: fn_core_settings.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2018-11-11
|
||||
Last Update: 2019-04-22
|
||||
Last Update: 2019-06-15
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: No
|
||||
|
||||
|
@ -18,7 +18,6 @@
|
|||
Function reached the end [BOOL]
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
----- SECTOR SETTINGS -----
|
||||
*/
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
File: fn_respawn_settings.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2018-11-11
|
||||
Last Update: 2019-04-22
|
||||
Last Update: 2019-06-15
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: No
|
||||
|
||||
|
@ -18,6 +18,10 @@
|
|||
Function reached the end [BOOL]
|
||||
*/
|
||||
|
||||
/*
|
||||
----- RESPAWN SETTINGS -----
|
||||
*/
|
||||
|
||||
// KPLIB_param_mobileRespawn
|
||||
// Enables/Disables the mobile respawn functionality of certain vehicles.
|
||||
// Default: true
|
||||
|
|
|
@ -28,6 +28,9 @@ params [
|
|||
["_fuel", 0, [0]]
|
||||
];
|
||||
|
||||
// Can always pay if there is no price
|
||||
if ([_supplies, _ammo, _fuel] isEqualTo [0,0,0]) exitWith {true};
|
||||
|
||||
// Exit if no location is given
|
||||
if (_location isEqualTo "") exitWith {false};
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
File: fn_resources_preInit.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2018-12-13
|
||||
Last Update: 2019-04-22
|
||||
Last Update: 2019-06-08
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: No
|
||||
|
||||
|
@ -147,10 +147,7 @@ if (isServer) then {
|
|||
]] call KPLIB_fnc_init_filterMods;
|
||||
|
||||
// Plain transport vehicle classnames array
|
||||
KPLIB_resources_transportVehicles = [];
|
||||
{
|
||||
KPLIB_resources_transportVehicles pushBack (_x select 0);
|
||||
} forEach KPLIB_resources_transportConfigs;
|
||||
KPLIB_resources_transportVehicles = KPLIB_resources_transportConfigs apply {_x select 0};
|
||||
|
||||
// Send filtered lists to clients
|
||||
publicVariable "KPLIB_resources_transportConfigs";
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
File: fn_resources_settings.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2018-12-14
|
||||
Last Update: 2019-05-04
|
||||
Last Update: 2019-06-15
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: No
|
||||
|
||||
|
@ -18,7 +18,6 @@
|
|||
Function reached the end [BOOL]
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
----- RESOURCES SETTINGS -----
|
||||
*/
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
# KP Liberation Module Description
|
||||
|
||||
## Permission Module
|
||||
The permission module provides a permission framework with a dynamic dialog.
|
||||
There are functions to create and check the permissions.
|
||||
The permission module provides a dynamic permission framework with a permission overview dialog.
|
||||
It contains functions to check player permissions and add new permissions to the framework.
|
||||
Additionally it contains some pre defined permissions.
|
||||
|
||||
### Dependencies
|
||||
* Init
|
||||
* Common
|
||||
|
||||
### Consumed events
|
||||
**KPLIB_doLoad** (server side)
|
||||
|
@ -14,9 +16,18 @@ Calls KPLIB_fnc_permission_loadData to process saved module data
|
|||
**KPLIB_doSave** (server side)
|
||||
Calls KPLIB_fnc_permission_saveData to add the module data to the save array
|
||||
|
||||
**KPLIB_permission_newPH** (server side)
|
||||
Calls KPLIB_fnc_permission_initDefault to add the permission to the default permissions
|
||||
|
||||
**GetInMan** (client side)
|
||||
Calls KPLIB_fnc_permission_checkVehiclePermission and checks the player permission for the entered vehicle
|
||||
|
||||
**SeatSwitchedMan** (client side)
|
||||
Calls KPLIB_fnc_permission_checkVehiclePermission and checks the player permission for the entered vehicle
|
||||
|
||||
### Emitted events
|
||||
**KPLIB_permission_newPH** (servere side)
|
||||
EMitted when a new permission handler is registered
|
||||
**KPLIB_permission_newPH** (server side)
|
||||
Emitted when a new permission handler is registered
|
||||
|
||||
### Functions
|
||||
* KPLIB_fnc_permission_addPermissionHandler
|
||||
|
@ -39,10 +50,18 @@ EMitted when a new permission handler is registered
|
|||
|
||||
*Ejects the player and creates a hint.*
|
||||
|
||||
* KPLIB_fnc_permission_export
|
||||
|
||||
*Export the permission list to profileNamespace.*
|
||||
|
||||
* KPLIB_fnc_permission_getPermission
|
||||
|
||||
*Checks the given permission and returns the result.*
|
||||
|
||||
* KPLIB_fnc_permission_import
|
||||
|
||||
*Import the permission list from profileNamespace.*
|
||||
|
||||
* KPLIB_fnc_permission_initDefault
|
||||
|
||||
*Initializes the default permissions.*
|
||||
|
@ -75,31 +94,31 @@ EMitted when a new permission handler is registered
|
|||
|
||||
*Fetches data which is bound to this module and send it to the global save data array.*
|
||||
|
||||
* KPLIB_fnc_permission_settings
|
||||
|
||||
*CBA Settings initialization for this module.*
|
||||
|
||||
* KPLIB_fnc_permission_setupPermissionControls
|
||||
|
||||
*Reads the player permissions and applies them to the dialog controls.*
|
||||
|
||||
* KPLIB_fnc_permission_setupplayerActions
|
||||
* KPLIB_fnc_permission_setupPlayerActions
|
||||
|
||||
*Initialization of actions availible to players.*
|
||||
|
||||
* KPLIB_fnc_permission_syncClients
|
||||
|
||||
*Receive client variables and send them to all clients.*
|
||||
|
||||
### Scripts
|
||||
No scripts will be started by this module
|
||||
|
||||
### Example Permission Array
|
||||
KPLIB_permission_data getVariable ["permissionList", []]; = [
|
||||
["SteamID64", "PlayerName", [
|
||||
["AVehicle", true],
|
||||
["BVehicle", false],
|
||||
["CVehicle", false]
|
||||
]],
|
||||
["SteamID64", "PlayerName", [
|
||||
["AVehicle", true],
|
||||
["BVehicle", false],
|
||||
["CVehicle", false]
|
||||
]],
|
||||
];
|
||||
### Implemented permissions
|
||||
* Commander slot
|
||||
* Sub-Commander slot
|
||||
* Light vehicles
|
||||
* Transport vehicles
|
||||
* Heavy vehicles
|
||||
* Anti-Air vehicles
|
||||
* Artillery vehicles
|
||||
* Transport helicopter
|
||||
* Attack helicopter
|
||||
* Transport plane
|
||||
* Attack jets
|
||||
* Logistic vehicles
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
File: fn_permission_addPermission.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2018-12-09
|
||||
Last Update: 2019-05-04
|
||||
Last Update: 2019-05-16
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: Yes
|
||||
|
||||
|
@ -73,7 +73,7 @@ if !(_string isEqualTo "") then {
|
|||
PSVAR(_permission, _data);
|
||||
|
||||
// Emit permissions added event
|
||||
["KPLIB_permission_newPH", [_permission, _default]] call CBA_fnc_globalEvent;
|
||||
["KPLIB_permission_newPH", [_permission, _default]] call CBA_fnc_serverEvent;
|
||||
|
||||
// Set data in namespace
|
||||
PSVAR("permissionTypes", _types);
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
File: KPLIB_permission.hpp
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2018-12-07
|
||||
Last Update: 2019-05-03
|
||||
Last Update: 2019-05-19
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
Description:
|
||||
|
@ -50,14 +50,14 @@ class KPLIB_permission {
|
|||
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,22,24);
|
||||
w = KP_GETW(KP_WIDTH_VAL_C,2);
|
||||
h = KP_GETH(KP_HEIGHT_VAL_C,24);
|
||||
tooltip = "$STR_KPLIB_DIALOG_PERMISSION_EXPORT_TT"
|
||||
tooltip = "$STR_KPLIB_DIALOG_PERMISSION_EXPORT_TT";
|
||||
onButtonClick = "[] call KPLIB_fnc_permission_export";
|
||||
};
|
||||
|
||||
class KPLIB_ButtonImport: KPLIB_ButtonExport {
|
||||
text = "$STR_KPLIB_DIALOG_PERMISSION_IMPORT";
|
||||
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,23,24);
|
||||
tooltip = "$STR_KPLIB_DIALOG_PERMISSION_IMPORT_TT"
|
||||
tooltip = "$STR_KPLIB_DIALOG_PERMISSION_IMPORT_TT";
|
||||
onButtonClick = "[] call KPLIB_fnc_permission_import";
|
||||
};
|
||||
|
||||
|
|
|
@ -5,7 +5,27 @@ The arsenal module provides the arsenal dialog and several functions.
|
|||
It defines the arsenal items and gives the ability to access the arsenal, define default loadouts and copy loadouts from other players.
|
||||
|
||||
### Dependencies
|
||||
This module uses no data or functions from other modules.
|
||||
* Common
|
||||
|
||||
### Consumed events
|
||||
**arsenalOpened** (client side)
|
||||
Saves the players backpack to ensure a correct search for blacklisted items
|
||||
|
||||
**arsenalClosed** (client side)
|
||||
Calls KPLIB_fnc_arsenal_checkGear to search the player inventory for blacklisted items
|
||||
|
||||
**ace_arsenal_displayOpened** (client side)
|
||||
Saves the players backpack to ensure a correct search for blacklisted items
|
||||
|
||||
**ace_arsenal_displayClosed** (client side)
|
||||
Calls KPLIB_fnc_arsenal_checkGear to search the player inventory for blacklisted items
|
||||
|
||||
**KPLIB_player_redeploy** (client side)
|
||||
Calls KPLIB_fnc_arsenal_checkGear to search the player inventory for blacklisted items
|
||||
|
||||
### Emitted events
|
||||
**KPLIB_arsenal_newLists** (server side)
|
||||
Emitted when the arsenal white- and blacklist are (re)initialized
|
||||
|
||||
### Functions
|
||||
* KPLIB_fnc_arsenal_applyLoadout
|
||||
|
@ -14,7 +34,7 @@ This module uses no data or functions from other modules.
|
|||
|
||||
* KPLIB_fnc_arsenal_checkGear
|
||||
|
||||
*Check player gear against blacklist.*
|
||||
*Checks the players gear for blacklisted items and report these items.*
|
||||
|
||||
* KPLIB_fnc_arsenal_copyLoadout
|
||||
|
||||
|
@ -34,7 +54,7 @@ This module uses no data or functions from other modules.
|
|||
|
||||
* KPLIB_fnc_arsenal_openDialog
|
||||
|
||||
*Open the dialog.*
|
||||
*Open the arsenal dialog.*
|
||||
|
||||
* KPLIB_fnc_arsenal_postInit
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
File: fn_virtual_preInit.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2018-11-18
|
||||
Last Update: 2019-04-29
|
||||
Last Update: 2019-05-19
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: No
|
||||
|
||||
|
@ -60,7 +60,7 @@ if (hasInterface) then {
|
|||
["KPLIB_curatorOpen", {
|
||||
[{
|
||||
private _watermarkCtrl = (findDisplay 312) displayCtrl 15717;
|
||||
_watermarkCtrl ctrlSetText "KPGUI\res\kp512_CA.paa";
|
||||
_watermarkCtrl ctrlSetText "KPGUI\res\kp512_ca.paa";
|
||||
}] call CBA_fnc_execNextFrame;
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
File: fn_virtual_settings.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2018-11-18
|
||||
Last Update: 2019-04-23
|
||||
Last Update: 2019-06-15
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: No
|
||||
|
||||
|
@ -18,7 +18,6 @@
|
|||
Function reached the end [BOOL]
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
----- ZEUS SETTINGS -----
|
||||
*/
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
File: fn_build_confirmSingle.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2018-11-29
|
||||
Last Update: 2019-05-04
|
||||
Last Update: 2019-05-09
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: No
|
||||
|
||||
|
@ -31,7 +31,7 @@ _createParams params ["_className", "_pos", "_dir", "_justBuild"];
|
|||
private _fob = _player getVariable ["KPLIB_fob", ""];
|
||||
|
||||
if !(([_fob] + _price) call KPLIB_fnc_resources_pay) exitWith {
|
||||
[format ["Not enough resources to build: %1 at: %2", _className, _fob], "BUILD"] call KPLIB_fnc_common_log;
|
||||
[format ["Not enough resources to build: %1 at: '%2', price: %3", _className, _fob, _price], "BUILD"] call KPLIB_fnc_common_log;
|
||||
["KPLIB_build_not_enough_resources", [_className], _player] call CBA_fnc_targetEvent;
|
||||
};
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ class KPLIB_ToolboxContainer: KPGUI_PRE_ControlsGroup {
|
|||
// !TODO! move toolbox items creation to script
|
||||
class KPLIB_Toolbox_MoveItems: KPGUI_PRE_ActiveText {
|
||||
text = "$STR_KPLIB_DIALOG_BUILD_MODE_BUILD";
|
||||
tooltip = "$STR_KPLIB_DIALOG_BUILD_MODE_TT"
|
||||
tooltip = "$STR_KPLIB_DIALOG_BUILD_MODE_TT";
|
||||
idc = KPLIB_IDC_BUILD_TOOLBOX_MOVEITEMS;
|
||||
|
||||
colorActive[] = {1, 1, 1, 1};
|
||||
|
|
|
@ -1,20 +1,82 @@
|
|||
# KP Liberation Module Description
|
||||
|
||||
## Logistic Module
|
||||
|
||||
The permission module handles the resupply and recycle functionalities and contains the ability to add new menus to the logistic station.
|
||||
All provided menus will be added to the logistic main menus.
|
||||
|
||||
### Dependencies
|
||||
* Init
|
||||
* Common
|
||||
* Permission
|
||||
|
||||
### Consumed events
|
||||
|
||||
|
||||
### Emitted events
|
||||
|
||||
**KPLIB_vehicle_spawned** (server side)
|
||||
Calls KPLIB_fnc_logistic_addActions which will check the vehicle type and add the logistic actions to it
|
||||
|
||||
### Functions
|
||||
* KPLIB_fnc_logistic_addActions
|
||||
|
||||
*Adds all actions to the spawned logistic building.*
|
||||
|
||||
* KPLIB_fnc_logistic_addMenu
|
||||
|
||||
*Adds a new menu to the logistic main menu.*
|
||||
|
||||
* KPLIB_fnc_logistic_calcCosts
|
||||
|
||||
*Calculates the costs of the resupply action.*
|
||||
|
||||
* KPLIB_fnc_logistic_openDialog
|
||||
|
||||
*Opens the logistic main dialog.*
|
||||
|
||||
* KPLIB_fnc_logistic_openRecycleDialog
|
||||
|
||||
*Opens the logistic recycle dialog.*
|
||||
|
||||
* KPLIB_fnc_logistic_openResupplyDialog
|
||||
|
||||
*Opens the logistic resupply dialog.*
|
||||
|
||||
* KPLIB_fnc_logistic_postInit
|
||||
|
||||
*Module post initialization.*
|
||||
|
||||
* KPLIB_fnc_logistic_preInit
|
||||
|
||||
*Module pre initialization.*
|
||||
|
||||
* KPLIB_fnc_logistic_recycleTarget
|
||||
|
||||
*Recycles the selected vehicle.*
|
||||
|
||||
* KPLIB_fnc_logistic_refreshTargets
|
||||
|
||||
*Refreshes the vehicle list for the given dialog.*
|
||||
|
||||
* KPLIB_fnc_logistic_resupplyTarget
|
||||
|
||||
*Resupplies the given vehicle.*
|
||||
|
||||
* KPLIB_fnc_logistic_selectRecycleTarget
|
||||
|
||||
*Selects the vehicle from the combo cox and fills the dialog.*
|
||||
|
||||
* KPLIB_fnc_logistic_selectResupplyTarget
|
||||
|
||||
*Selects the vehicle from the combo cox and fills the dialog.*
|
||||
|
||||
* KPLIB_fnc_logistic_settings
|
||||
|
||||
*CBA Settings initialization for this module.*
|
||||
|
||||
### Scripts
|
||||
No scripts will be started by this module
|
||||
|
||||
### Implemented permissions
|
||||
* Recycle
|
||||
* Resupply
|
||||
|
||||
### Implemented logistic menus
|
||||
* Recycle
|
||||
* Resupply
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
File: fn_logistic_postInit.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2019-01-16
|
||||
Last Update: 2019-05-04
|
||||
Last Update: 2019-05-18
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: No
|
||||
|
||||
|
@ -72,22 +72,6 @@ if (isServer) then {
|
|||
"STR_KPLIB_LOGISTIC_RESUPPLY"
|
||||
] call KPLIB_fnc_logistic_addMenu;
|
||||
|
||||
[
|
||||
"Cratefiller",
|
||||
{
|
||||
if (["Cratefiller"] call KPLIB_fnc_permission_checkPermission && KPLIB_param_cratefiller) then {
|
||||
closeDialog 0;
|
||||
[] call KPLIB_fnc_cratefiller_openDialog;
|
||||
} else {
|
||||
[
|
||||
["a3\3den\data\controlsgroups\tutorial\close_ca.paa", 1, [1,0,0]],
|
||||
[[localize "STR_KPLIB_HINT_NOCRATEFILLER", localize "STR_KPLIB_HINT_NOPERMISSION"] select KPLIB_param_cratefiller]
|
||||
] call CBA_fnc_notify;
|
||||
};
|
||||
},
|
||||
"STR_KPLIB_LOGISTIC_CRATEFILLER"
|
||||
] call KPLIB_fnc_logistic_addMenu;
|
||||
|
||||
private _vehicles = [];
|
||||
{
|
||||
_vehicles append (missionNamespace getVariable [format ["KPLIB_preset_%1F", _x], ""]);
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
File: fn_logistic_refreshTargets.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2019-01-25
|
||||
Last Update: 2019-05-14
|
||||
Last Update: 2019-05-19
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: No
|
||||
|
||||
|
@ -88,7 +88,7 @@ if (_dialogId isEqualTo KPLIB_IDC_LOGISTIC_RECYCLE_DIALOG) then {
|
|||
_ctrlVehicleList lbSetData [_index, netId _x];
|
||||
_picture = getText (_cfgVeh >> _type >> "picture");
|
||||
if (_picture isEqualTo "pictureThing") then {
|
||||
_ctrlVehicleList lbSetPicture [_index, "KPGUI\res\kp512_CA.paa"];
|
||||
_ctrlVehicleList lbSetPicture [_index, "KPGUI\res\kp512_ca.paa"];
|
||||
} else {
|
||||
_ctrlVehicleList lbSetPicture [_index, _picture];
|
||||
};
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
File: fn_logistic_settings.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2019-01-28
|
||||
Last Update: 2019-04-03
|
||||
Last Update: 2019-06-15
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: No
|
||||
|
||||
|
@ -113,6 +113,7 @@
|
|||
{}
|
||||
] call CBA_Settings_fnc_init;
|
||||
|
||||
|
||||
/*
|
||||
----- RESUPPLY SETTINGS -----
|
||||
*/
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -4,7 +4,7 @@
|
|||
File: fn_enemy_loadData.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2019-02-02
|
||||
Last Update: 2019-04-23
|
||||
Last Update: 2019-06-15
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: No
|
||||
|
||||
|
@ -21,17 +21,21 @@
|
|||
if (KPLIB_param_debug) then {["Enemy module loading...", "SAVE"] call KPLIB_fnc_common_log;};
|
||||
|
||||
private _moduleData = ["enemy"] call KPLIB_fnc_init_getSaveData;
|
||||
private _state = "unaware";
|
||||
|
||||
// Check if there is a new campaign
|
||||
if (_moduleData isEqualTo []) then {
|
||||
if (KPLIB_param_debug) then {["Enemy module data empty, creating new data...", "SAVE"] call KPLIB_fnc_common_log;};
|
||||
// Nothing to do here
|
||||
} else {
|
||||
// Otherwise start applying the saved data
|
||||
if (KPLIB_param_debug) then {["Enemy module data found, applying data...", "SAVE"] call KPLIB_fnc_common_log;};
|
||||
|
||||
KPLIB_enemy_strength = _moduleData select 0;
|
||||
KPLIB_enemy_awareness = _moduleData select 1;
|
||||
_state = _moduleData select 2;
|
||||
};
|
||||
|
||||
// Start commander FSM
|
||||
[_state] call KPLIB_fnc_enemy_commanderLogic;
|
||||
|
||||
true
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
File: fn_enemy_preInit.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2019-02-02
|
||||
Last Update: 2019-04-23
|
||||
Last Update: 2019-06-09
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: No
|
||||
|
||||
|
@ -24,11 +24,12 @@ if (isServer) then {["Module initializing...", "PRE] [ENEMY", true] call KPLIB_f
|
|||
----- Module Globals -----
|
||||
*/
|
||||
|
||||
// Strength of the enemy (0-1000)
|
||||
KPLIB_enemy_strength = 500;
|
||||
|
||||
// Awareness of the enemy (0-100)
|
||||
KPLIB_enemy_awareness = 0;
|
||||
// All enemy patrols
|
||||
KPLIB_enemy_patrols = [];
|
||||
// Strength of the enemy (0-1000)
|
||||
KPLIB_enemy_strength = 500;
|
||||
|
||||
/*
|
||||
----- Module Initialization -----
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
File: fn_enemy_reinforceGarrison.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2019-02-18
|
||||
Last Update: 2019-04-23
|
||||
Last Update: 2019-06-15
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: Yes
|
||||
|
||||
|
@ -36,7 +36,7 @@ if (_base isEqualTo "" || !(_base in KPLIB_sectors_military) || _destination isE
|
|||
private _costs = _troops * 2 + (count _vehicleClasses) * 10;
|
||||
if (_costs > KPLIB_enemy_strength) exitWith {[]};
|
||||
|
||||
if (KPLIB_param_debug) then {[format ["Reinfore garrison of %1 (%2) for %3 strength with [%4, %5]", markerText _destination, _destination, _costs, _troops, _vehicleClasses], "ENEMY"] call KPLIB_fnc_common_log;};
|
||||
if (KPLIB_param_enemyDebug) then {[format ["Reinfore garrison of %1 (%2) for %3 strength with [%4, %5]", markerText _destination, _destination, _costs, _troops, _vehicleClasses], "ENEMY"] call KPLIB_fnc_common_log;};
|
||||
|
||||
[-_costs] call KPLIB_fnc_enemy_addStrength;
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
File: fn_enemy_saveData.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2019-02-02
|
||||
Last Update: 2019-04-23
|
||||
Last Update: 2019-06-08
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: No
|
||||
|
||||
|
@ -24,7 +24,8 @@ if (KPLIB_param_savedebug) then {["Enemy module saving...", "SAVE"] call KPLIB_f
|
|||
["enemy",
|
||||
[
|
||||
KPLIB_enemy_strength,
|
||||
KPLIB_enemy_awareness
|
||||
KPLIB_enemy_awareness,
|
||||
(diag_activeMissionFSMs select (diag_activeMissionFSMs findIf {(_x select 0) isEqualTo "KPLIB_enemyCommander"})) select 1
|
||||
]
|
||||
] call KPLIB_fnc_init_setSaveData;
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
File: fn_enemy_settings.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2019-02-02
|
||||
Last Update: 2019-04-23
|
||||
Last Update: 2019-06-15
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: No
|
||||
|
||||
|
@ -18,4 +18,21 @@
|
|||
Function reached the end [BOOL]
|
||||
*/
|
||||
|
||||
/*
|
||||
----- ENEMY COMMANDER SETTINGS -----
|
||||
*/
|
||||
|
||||
// KPLIB_param_enemyDebug
|
||||
// Enables/Disables debug mode for this module.
|
||||
// Default: true
|
||||
[
|
||||
"KPLIB_param_enemyDebug",
|
||||
"CHECKBOX",
|
||||
[localize "STR_KPLIB_SETTINGS_ENEMY_DEBUG", localize "STR_KPLIB_SETTINGS_ENEMY_DEBUG_TT"],
|
||||
localize "STR_KPLIB_SETTINGS_ENEMY",
|
||||
true,
|
||||
1,
|
||||
{}
|
||||
] call CBA_Settings_fnc_init;
|
||||
|
||||
true
|
||||
|
|
|
@ -0,0 +1,112 @@
|
|||
/*
|
||||
KPLIB_fnc_enemy_spawnPatrol
|
||||
|
||||
File: fn_enemy_spawnPatrol.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2019-06-08
|
||||
Last Update: 2019-06-22
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: Yes
|
||||
|
||||
Description:
|
||||
Spawns a (motorized) patrol at nearest sector of given position. Random sector if no position is given.
|
||||
Destination of the patrol will be nearest enemy sector.
|
||||
|
||||
Parameter(s):
|
||||
_spawnPos - Position look for nearest sector to spawn patrol from. If empty, random sector selection [ARRAY, defaults to []]
|
||||
_motorized - Bool to select if the patrol should be motorized [BOOL, defaults to false]
|
||||
_unitCount - Amount of infantry units, when not motorized [NUMBER, defaults to 4]
|
||||
|
||||
Returns:
|
||||
Spawned patrol [GROUP]
|
||||
*/
|
||||
|
||||
params [
|
||||
["_spawnPos", [], [[]]],
|
||||
["_motorized", false, [false]],
|
||||
["_unitCount", 4, [0]]
|
||||
];
|
||||
|
||||
// Only inactive opfor sectors
|
||||
private _sectors = (KPLIB_sectors_all - KPLIB_sectors_blufor - KPLIB_sectors_active);
|
||||
private _patrolSectors = [];
|
||||
private _grp = grpNull;
|
||||
private _veh = objNull;
|
||||
|
||||
// Get random sector, when no position given. Otherwise get nearest sector
|
||||
if (_spawnPos isEqualTo []) then {
|
||||
_patrolSectors pushBack (_sectors deleteAt (floor random count _sectors));
|
||||
} else {
|
||||
_patrolSectors pushBack ([1200, _spawnPos, _sectors] call KPLIB_fnc_core_getNearestMarker);
|
||||
_sectors = _sectors - _patrolSectors;
|
||||
};
|
||||
|
||||
// Exit if no sector was found
|
||||
if ((_patrolSectors select 0) isEqualTo "") exitWith {
|
||||
private _text = format ["Spawn patrol couldn't find a sector within 1200m distance of given position: %1", _spawnPos];
|
||||
[_text, "ENEMY"] call KPLIB_fnc_common_log
|
||||
};
|
||||
|
||||
// Fetch some nearby patrol sectors
|
||||
_patrolSectors append ((_sectors select {((getMarkerPos (_patrolSectors select 0)) distance2D (getMarkerPos _x)) < 2000}) call BIS_fnc_arrayShuffle);
|
||||
|
||||
// Exit if sector is too far away from other sectors for a patrol route
|
||||
if ((count _patrolSectors) < 2) exitWith {
|
||||
private _text = format ["Spawn patrol couldn't find sectors within 2000m distance for patrol from sector: %1 (%2)", markerText (_patrolSectors select 0), _patrolSectors select 0];
|
||||
[_text, "ENEMY"] call KPLIB_fnc_common_log
|
||||
};
|
||||
|
||||
// Take a maximum of 4 sectors
|
||||
if ((count _patrolSectors) > 4) then {_patrolSectors resize 4;};
|
||||
|
||||
// Spawn infantry or motorized patrol
|
||||
if (_motorized) then {
|
||||
// Get spawnpos on road
|
||||
_spawnPos = [getMarkerPos (_patrolSectors select 0)] call KPLIB_fnc_garrison_getVehSpawnPos;
|
||||
// Spawn vehicle with crew
|
||||
_veh = [selectRandom (["vehLightArmed", KPLIB_preset_sideE, true] call KPLIB_fnc_common_getPresetClass), _spawnPos, random 360, false, true] call KPLIB_fnc_common_createVehicle;
|
||||
_grp = group ((crew _veh) select 0);
|
||||
} else {
|
||||
// Get spawn und destination pos in vicinity of sector
|
||||
_spawnPos = (getMarkerPos (_patrolSectors select 0)) getPos [random 100, random 360];
|
||||
|
||||
// Gather infantry classnames
|
||||
private _soldierArray = [] call KPLIB_fnc_common_getSoldierArray;
|
||||
private _units = [];
|
||||
for "_i" from 1 to _unitCount do {
|
||||
_units pushBack (selectRandom _soldierArray);
|
||||
};
|
||||
|
||||
// Create group
|
||||
_grp = [_units, _spawnPos] call KPLIB_fnc_common_createGroup;
|
||||
};
|
||||
|
||||
// Set waypoints
|
||||
private _waypoint = [];
|
||||
{
|
||||
if (_forEachIndex > 0) then {
|
||||
_waypoint = _grp addWaypoint [getMarkerPos _x, 50];
|
||||
_waypoint setWaypointType "MOVE";
|
||||
_waypoint setWaypointSpeed "LIMITED";
|
||||
_waypoint setWaypointBehaviour "SAFE";
|
||||
_waypoint setWaypointCombatMode "YELLOW";
|
||||
_waypoint setWaypointCompletionRadius 30;
|
||||
};
|
||||
} forEach _patrolSectors;
|
||||
|
||||
// Add cycle waypoint at spawnpoint
|
||||
_waypoint = _grp addWaypoint [_spawnPos, 0];
|
||||
_waypoint setWaypointType "CYCLE";
|
||||
_waypoint setWaypointCompletionRadius 30;
|
||||
|
||||
// Add group to patrols array
|
||||
KPLIB_enemy_patrols pushBack _grp;
|
||||
|
||||
// !DEBUG! Add patrol to Zeus
|
||||
if (KPLIB_param_enemyDebug) then {
|
||||
{
|
||||
_x addCuratorEditableObjects [(units _grp) + [_veh], true];
|
||||
} forEach allCurators;
|
||||
};
|
||||
|
||||
_grp
|
|
@ -4,7 +4,7 @@
|
|||
File: fn_enemy_strengthInc.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2019-02-18
|
||||
Last Update: 2019-04-23
|
||||
Last Update: 2019-06-15
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: No
|
||||
|
||||
|
@ -19,15 +19,15 @@
|
|||
*/
|
||||
|
||||
// Increase strength by remaining enemy military bases
|
||||
private _increase = (count (KPLIB_sectors_military select {!(_x in KPLIB_sectors_blufor)})) * 10;
|
||||
private _increase = (count (KPLIB_sectors_military - KPLIB_sectors_blufor)) * 10;
|
||||
[_increase] call KPLIB_fnc_enemy_addStrength;
|
||||
|
||||
// Enforce cap for strength
|
||||
if (KPLIB_enemy_strength > 1000) then {
|
||||
KPLIB_enemy_strength = 1000;
|
||||
if (KPLIB_param_debug) then {["Strength reached cap of 1000", "ENEMY"] call KPLIB_fnc_common_log;};
|
||||
if (KPLIB_param_enemyDebug) then {["Strength reached cap of 1000", "ENEMY"] call KPLIB_fnc_common_log;};
|
||||
} else {
|
||||
if (KPLIB_param_debug) then {[format ["Strength increased from %1 to %2", KPLIB_enemy_strength - _increase, KPLIB_enemy_strength], "ENEMY"] call KPLIB_fnc_common_log;};
|
||||
if (KPLIB_param_enemyDebug) then {[format ["Strength increased from %1 to %2", KPLIB_enemy_strength - _increase, KPLIB_enemy_strength], "ENEMY"] call KPLIB_fnc_common_log;};
|
||||
};
|
||||
|
||||
// Schedule the next call
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
File: fn_enemy_transferGarrison.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2019-02-18
|
||||
Last Update: 2019-04-23
|
||||
Last Update: 2019-06-15
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: Yes
|
||||
|
||||
|
@ -40,7 +40,7 @@ if (_origin isEqualTo "" || _destination isEqualTo "") exitWith {[]};
|
|||
// Exit, if origin sector is currently active
|
||||
if (_origin in KPLIB_garrison_active) exitWith {[]};
|
||||
|
||||
if (KPLIB_param_debug) then {[format ["Transferring garrison from %1 (%2) to %3 (%4) with [%5, %6]", markerText _origin, _origin, markerText _destination, _destination, _troops, _vehicleClasses], "ENEMY"] call KPLIB_fnc_common_log;};
|
||||
if (KPLIB_param_enemyDebug) then {[format ["Transferring garrison from %1 (%2) to %3 (%4) with [%5, %6]", markerText _origin, _origin, markerText _destination, _destination, _troops, _vehicleClasses], "ENEMY"] call KPLIB_fnc_common_log;};
|
||||
|
||||
["KPLIB_transferConvoy_start", [_origin, _destination]] call CBA_fnc_localEvent;
|
||||
|
||||
|
@ -122,7 +122,7 @@ if !(_troops > (_garrison select 2)) then {
|
|||
} forEach allCurators;
|
||||
};
|
||||
} else {
|
||||
if (KPLIB_param_debug) then {[format ["%1 exceeds garrison strength of %2 (%3) for transfer", _troops, markerText _origin, _origin], "ENEMY"] call KPLIB_fnc_common_log;};
|
||||
if (KPLIB_param_enemyDebug) then {[format ["%1 exceeds garrison strength of %2 (%3) for transfer", _troops, markerText _origin, _origin], "ENEMY"] call KPLIB_fnc_common_log;};
|
||||
};
|
||||
|
||||
// Handle requested vehicles
|
||||
|
@ -137,7 +137,7 @@ if !(_troops > (_garrison select 2)) then {
|
|||
private _spawnData = [markerPos _origin] call _getPosDir;
|
||||
_vehicles pushBack ([_x, _spawnData select 0, _spawnData select 1, false, true] call KPLIB_fnc_common_createVehicle);
|
||||
} else {
|
||||
if (KPLIB_param_debug) then {[format ["%1 not available at garrison of %2 (%3)", _x, markerText _origin, _origin], "ENEMY"] call KPLIB_fnc_common_log;};
|
||||
if (KPLIB_param_enemyDebug) then {[format ["%1 not available at garrison of %2 (%3)", _x, markerText _origin, _origin], "ENEMY"] call KPLIB_fnc_common_log;};
|
||||
};
|
||||
} forEach _vehicleClasses;
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
File: functions.hpp
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2019-02-02
|
||||
Last Update: 2019-02-24
|
||||
Last Update: 2019-06-08
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
Description:
|
||||
|
@ -20,6 +20,11 @@ class enemy {
|
|||
// Add/Remove strength amount
|
||||
class enemy_addStrength {};
|
||||
|
||||
// Enemy commander FSM for decision making
|
||||
class enemy_commanderLogic {
|
||||
ext = ".fsm";
|
||||
};
|
||||
|
||||
// Get valid transport vehicle for given amount of soldiers
|
||||
class enemy_getTransportClasses {};
|
||||
|
||||
|
@ -57,6 +62,9 @@ class enemy {
|
|||
// CBA Settings for this module
|
||||
class enemy_settings {};
|
||||
|
||||
// Spawns an enemy patrol
|
||||
class enemy_spawnPatrol {};
|
||||
|
||||
// Strength increase event function
|
||||
class enemy_strengthInc {};
|
||||
|
||||
|
|
|
@ -1,14 +1,118 @@
|
|||
# KP Liberation Module Description
|
||||
|
||||
## Example Module
|
||||
This is an example module description.
|
||||
Used as template for new modules. Make sure to replace the `example` everywhere accordingly.
|
||||
## Cratefiller Module
|
||||
This module provides the cratefiller functionalities from the original [KP Cratefiller](https://github.com/KillahPotatoes/dubjunks-scripts) by Dubjunk.
|
||||
It provides a dialog with the ability to manage several inventories.
|
||||
|
||||
### Dependencies
|
||||
* None
|
||||
* Common
|
||||
* Permission
|
||||
* Logistic
|
||||
|
||||
### Consumed events
|
||||
**KPLIB_arsenal_newLists** (server side)
|
||||
Calls KPLIB_fnc_cratefiller_presets to process the new white- and blacklist
|
||||
|
||||
### Functions
|
||||
* KPLIB_fnc_cratefiller_addEquipment
|
||||
|
||||
*Adds the given amount of the selected item to the inventory.*
|
||||
|
||||
* KPLIB_fnc_cratefiller_createEquipmentList
|
||||
|
||||
*Changes the shown equipment category.*
|
||||
|
||||
* KPLIB_fnc_cratefiller_createSubList
|
||||
|
||||
*Creates a list with valueable magazines or attachments.*
|
||||
|
||||
* KPLIB_fnc_cratefiller_deletePreset
|
||||
|
||||
*Deletes the selected preset.*
|
||||
|
||||
* KPLIB_fnc_cratefiller_export
|
||||
|
||||
*Exports the active inventory.*
|
||||
|
||||
* KPLIB_fnc_cratefiller_getConfigPath
|
||||
|
||||
*Gets the config path / type of the given classname.*
|
||||
|
||||
* KPLIB_fnc_cratefiller_getGroups
|
||||
|
||||
*Gets all player groups.*
|
||||
|
||||
* KPLIB_fnc_cratefiller_getInventory
|
||||
|
||||
*Gets all inventory items of the storage.*
|
||||
|
||||
* KPLIB_fnc_cratefiller_getNearStorages
|
||||
|
||||
*Scans the fob for possible storages.*
|
||||
|
||||
* KPLIB_fnc_cratefiller_getPlayerInventory
|
||||
|
||||
*Gets all weapons of the selected player.*
|
||||
|
||||
* KPLIB_fnc_cratefiller_getPlayers
|
||||
|
||||
*Gets all players from the selected group.*
|
||||
|
||||
* KPLIB_fnc_cratefiller_getStorage
|
||||
|
||||
*Returns the active storage.*
|
||||
|
||||
* KPLIB_fnc_cratefiller_import
|
||||
|
||||
*Imports the selected inventory.*
|
||||
|
||||
* KPLIB_fnc_cratefiller_openDialog
|
||||
|
||||
*Opens the cratefiller dialog.*
|
||||
|
||||
* KPLIB_fnc_cratefiller_postInit
|
||||
|
||||
*Module post initialization.*
|
||||
|
||||
* KPLIB_fnc_cratefiller_preInit
|
||||
|
||||
*Module pre initialization.*
|
||||
|
||||
* KPLIB_fnc_cratefiller_presets
|
||||
|
||||
*Creates the different categories of the whitelisted items.*
|
||||
|
||||
* KPLIB_fnc_cratefiller_removeEquipment
|
||||
|
||||
*Removes the given amount of the selected item from the storage.*
|
||||
|
||||
* KPLIB_fnc_cratefiller_search
|
||||
|
||||
*Search for a weapon with the name entered in the search bar.*
|
||||
|
||||
* KPLIB_fnc_cratefiller_setInventory
|
||||
|
||||
*Adds the items to the active storage.*
|
||||
|
||||
* KPLIB_fnc_cratefiller_settings
|
||||
|
||||
*CBA Settings initialization for this module.*
|
||||
|
||||
* KPLIB_fnc_cratefiller_showInventory
|
||||
|
||||
*Displays the items of the active storage.*
|
||||
|
||||
* KPLIB_fnc_cratefiller_showOverview
|
||||
|
||||
*Shows the cratefiller overview display.*
|
||||
|
||||
* KPLIB_fnc_cratefiller_showPresets
|
||||
|
||||
*Reads all saved presets and lists them.*
|
||||
|
||||
* KPLIB_fnc_cratefiller_sortList
|
||||
|
||||
*Sorts the displaynames of the given item array.*
|
||||
|
||||
### Scripts
|
||||
No scripts will be started by this module
|
||||
|
|
|
@ -30,6 +30,23 @@ if (isServer) then {
|
|||
"GroupLogistics"
|
||||
] call KPLIB_fnc_permission_addPermissionHandler;
|
||||
|
||||
// Cratefiller logistic menu
|
||||
[
|
||||
"Cratefiller",
|
||||
{
|
||||
if (["Cratefiller"] call KPLIB_fnc_permission_checkPermission && KPLIB_param_cratefiller) then {
|
||||
closeDialog 0;
|
||||
[] call KPLIB_fnc_cratefiller_openDialog;
|
||||
} else {
|
||||
[
|
||||
["a3\3den\data\controlsgroups\tutorial\close_ca.paa", 1, [1,0,0]],
|
||||
[[localize "STR_KPLIB_HINT_NOCRATEFILLER", localize "STR_KPLIB_HINT_NOPERMISSION"] select KPLIB_param_cratefiller]
|
||||
] call CBA_fnc_notify;
|
||||
};
|
||||
},
|
||||
"STR_KPLIB_LOGISTIC_CRATEFILLER"
|
||||
] call KPLIB_fnc_logistic_addMenu;
|
||||
|
||||
// create cratefiller presets on startup
|
||||
[] call KPLIB_fnc_cratefiller_presets;
|
||||
};
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
KPLIB_fnc_example_preInit
|
||||
KPLIB_fnc_cratefiller_preInit
|
||||
|
||||
File: fn_example_preInit.sqf
|
||||
File: fn_cratefiller_preInit.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2019-02-02
|
||||
Last Update: 2019-06-21
|
||||
|
@ -24,6 +24,9 @@ if (isServer) then {
|
|||
// Register arsenal filled event handler
|
||||
["KPLIB_arsenal_newLists", {[] call KPLIB_fnc_cratefiller_presets;}] call CBA_fnc_addEventHandler;
|
||||
|
||||
// Register arsenal filled event handler
|
||||
["KPLIB_arsenal_newLists", {[] call KPLIB_fnc_cratefiller_presets;}] call CBA_fnc_addEventHandler;
|
||||
|
||||
KPLIB_cratefiller_data = true call CBA_fnc_createNamespace;
|
||||
publicVariable "KPLIB_cratefiller_data";
|
||||
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
File: fn_cratefiller_settings.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2019-04-05
|
||||
Last Update: 2019-05-04
|
||||
Last Update: 2019-05-19
|
||||
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
|
||||
Public: No
|
||||
|
||||
Description:
|
||||
CBA Settings initialization for this module
|
||||
CBA Settings initialization for this module.
|
||||
|
||||
Parameter(s):
|
||||
NONE
|
||||
|
|
|
@ -16,12 +16,12 @@ The different categories are listed below.
|
|||
### Core Modules
|
||||
Modules which are vital for the mission to run properly. All of these modules need to be loaded to ensure the general functionalities of the mission.
|
||||
```
|
||||
00 init
|
||||
01 common
|
||||
02 core
|
||||
03 persistence
|
||||
04 respawn
|
||||
05 admin menu
|
||||
00 Init
|
||||
01 Common
|
||||
02 Core
|
||||
03 Persistence
|
||||
04 Respawn
|
||||
05 Admin menu
|
||||
```
|
||||
### Basic Modules
|
||||
These modules provide the basic CTI gameplay experience and should therefore also be loaded completely. The mission should be able to work without the modules (respecting possible dependencies) but would lack most of the essential content.
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 27 KiB |
Binary file not shown.
|
@ -28,7 +28,7 @@
|
|||
|
||||
Localization contributors:
|
||||
|
||||
English | Updated: 2019-04-27
|
||||
English | Updated: 2019-06-15
|
||||
KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
|
||||
Chinese Simplified | Updated: pre 0.97
|
||||
|
@ -41,7 +41,7 @@
|
|||
French | Updated: pre 0.97
|
||||
zbug - https://github.com/GreuhZbug
|
||||
|
||||
German | Updated: 2019-04-27
|
||||
German | Updated: 2019-06-15
|
||||
Dubjunk - https://github.com/Dubjunk
|
||||
Wyqer - https://github.com/Wyqer
|
||||
|
||||
|
@ -1375,6 +1375,21 @@
|
|||
<German>ACE Arsenal</German>
|
||||
</Key>
|
||||
|
||||
<!-- ENEMY CATEGORY -->
|
||||
<Key ID="STR_KPLIB_SETTINGS_ENEMY">
|
||||
<English>KPLIB - Enemy Commander</English>
|
||||
<German>KPLIB - Feindlicher Kommandant</German>
|
||||
</Key>
|
||||
<Key ID="STR_KPLIB_SETTINGS_ENEMY_DEBUG">
|
||||
<English>Enable Debug Mode</English>
|
||||
<Chinese>啟動除錯模式</Chinese>
|
||||
<German>Debug Modus aktivieren</German>
|
||||
</Key>
|
||||
<Key ID="STR_KPLIB_SETTINGS_ENEMY_DEBUG_TT">
|
||||
<English>Enables/Disables debug mode for this module.</English>
|
||||
<German>Aktiviert/Deaktiviert den Debug Modus dieses Moduls.</German>
|
||||
</Key>
|
||||
|
||||
<!-- GENERAL CATEGORY -->
|
||||
<Key ID="STR_KPLIB_SETTINGS_GENERAL">
|
||||
<English>KPLIB - General</English>
|
||||
|
@ -1864,7 +1879,7 @@
|
|||
<English>Enable cratefiller equipment overview</English>
|
||||
<German>Kistenfüller Ausrüstungsübersicht aktivieren</German>
|
||||
</Key>
|
||||
<Key ID="STR_KPLIB_SETTINGS_CRATEFILLER_ACTIVATEROOLS_TT">
|
||||
<Key ID="STR_KPLIB_SETTINGS_CRATEFILLER_ACTIVATEOVERVIEW_TT">
|
||||
<English>Enables/Disables the Liberation cratefiller equipment overview.</English>
|
||||
<German>Aktiviert/Deaktiviert die Liberation Kistenfüller Ausrüstungsübersicht.</German>
|
||||
</Key>
|
||||
|
|
Loading…
Reference in New Issue