Compare commits
104 Commits
master
...
build-tool
Author | SHA1 | Date |
---|---|---|
Filip Maciejewski | 20450b03d0 | |
Filip Maciejewski | 523e3880ee | |
Filip Maciejewski | a2e6731b9f | |
Filip Maciejewski | 0da8f21107 | |
Filip Maciejewski | a0a0339f5d | |
Filip Maciejewski | 89514a2e94 | |
Filip Maciejewski | 55eb02c93c | |
Filip Maciejewski | 4f6ab1188a | |
Christian | 89d338be62 | |
Christian | 1df06a6bf5 | |
Eogos | 03f3acb40f | |
Eogos | 02a2f54f69 | |
Daniil | c2660f96ee | |
Daniil | ce078c3266 | |
Eogos | 493f22afe0 | |
Daniil Irkhin | 9d5e69ad6c | |
Eogos | 707cf7697a | |
Filip Maciejewski | 6d80f5503d | |
Björn Dahlgren | 87409978b5 | |
Wyqer | 555b2802de | |
Christian | 7a2ab40b52 | |
Wyqer | e15001cc7a | |
Christian | bc5d9008c8 | |
Filip Maciejewski | 5a4b31452d | |
Filip Maciejewski | eda1efa426 | |
FatRefrigerator | 6fe4f99935 | |
Wyqer | 3affa39a46 | |
Wyqer | 2d3c7d8691 | |
Wyqer | d3e6ef7841 | |
Wyqer | 6e7405e4a9 | |
Wyqer | 150513683a | |
Wyqer | ff2b52b778 | |
Wyqer | 153b41d2e0 | |
Wyqer | 3d6ec00155 | |
Wyqer | f19f9f3c99 | |
Wyqer | 0261bd1060 | |
Wyqer | 2d8c30deff | |
Wyqer | c91255da11 | |
Wyqer | d9320b96e2 | |
Wyqer | 4f69f32e9b | |
Wyqer | 7f473430f7 | |
Christian | 87db8f8367 | |
Wyqer | 67d2652369 | |
Wyqer | 40fd1af4ef | |
Wyqer | 1a2c24fc45 | |
Wyqer | c4cb9a4f1f | |
Wyqer | 486732e490 | |
Christian | d719097beb | |
Wyqer | 42a47a9243 | |
Wyqer | d3793232cf | |
Wyqer | 8be9a575e9 | |
Christian | 9b18557353 | |
Christian | 2815e8a2f4 | |
Christian | 6e593c8e9d | |
Eogos | 2a7954750c | |
Eogos | f3fead3d42 | |
Eogos | 0ce37485f1 | |
Eogos | 527d216a0a | |
Filip Maciejewski | 3162afb14d | |
Eogos | a225b8943c | |
Eogos | 64fb4ee1cd | |
Filip Maciejewski | c78cf4b6ef | |
Filip Maciejewski | d8a0fa189b | |
Filip Maciejewski | 0979da1e4d | |
Filip Maciejewski | d8fee01026 | |
Filip Maciejewski | 764d24c1f9 | |
Filip Maciejewski | 40cb0084cc | |
Filip Maciejewski | 029ca722d9 | |
Eogos | 75fafef376 | |
Ozan Eğitmen | fe3a82792c | |
Eogos | 4c1e48832f | |
Eogos | 6c628e4db7 | |
Eogos | 4531184404 | |
Filip Maciejewski | 063b6c3db0 | |
Filip Maciejewski | e1a9acffae | |
Filip Maciejewski | 5cc2846c20 | |
Filip Maciejewski | e72a4d127b | |
Wyqer | c786da322c | |
Wyqer | c7d2a871b1 | |
Filip Maciejewski | 23282845b0 | |
Filip Maciejewski | 5fdc36877f | |
Filip Maciejewski | de359ef575 | |
Filip Maciejewski | 05a4d38e33 | |
Filip Maciejewski | 3b13e0a6a5 | |
Filip Maciejewski | 48a6dae8a7 | |
Filip Maciejewski | 197f1b64d5 | |
Filip Maciejewski | 62538b1d0f | |
Filip Maciejewski | a2efefea40 | |
Filip Maciejewski | 5a7d47e23a | |
Filip Maciejewski | 17ae30bfc4 | |
Filip Maciejewski | d921748c8d | |
Filip Maciejewski | 979105a05e | |
Filip Maciejewski | dcc80d2fbf | |
Filip Maciejewski | f971b74829 | |
Filip Maciejewski | 4f36159e9f | |
Filip Maciejewski | 754732b1c7 | |
Filip Maciejewski | 3aa06587ad | |
Filip Maciejewski | f2bd5ae71a | |
Filip Maciejewski | 6a0db6c5eb | |
Filip Maciejewski | be4a8adeac | |
Filip Maciejewski | ed045c9344 | |
Filip Maciejewski | a2bdcee716 | |
Filip Maciejewski | b76f6e0ef7 | |
Filip Maciejewski | ee00bcd730 |
|
@ -48,3 +48,7 @@ Temporary Items
|
|||
|
||||
# Build directory
|
||||
build/
|
||||
|
||||
# KP-Steam
|
||||
steam_appid.txt
|
||||
kp_steam*.log
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
{
|
||||
"sqf.enableCBA": true,
|
||||
"sqf.enableACE3": true,
|
||||
"files.associations": {
|
||||
"*.hpp": "sqf"
|
||||
},
|
||||
"sqflint.ignoredVariables": [
|
||||
"_input0",
|
||||
"_thisArgs",
|
||||
"_thisId",
|
||||
"_thisType"
|
||||
],
|
||||
"psi-header.lang-config": [
|
||||
{
|
||||
"license": "Custom",
|
||||
"language": "sqf",
|
||||
"rootDirFileName": "description.ext",
|
||||
"begin": "/*",
|
||||
"prefix": " ",
|
||||
"end": "*/",
|
||||
"forceToTop": true
|
||||
}
|
||||
],
|
||||
"psi-header.changes-tracking": {
|
||||
"isActive": true,
|
||||
"include": ["sqf"],
|
||||
"modDate": "Last Update:",
|
||||
"modDateFormat": "YYYY-MM-DD",
|
||||
"autoHeader": "manualSave"
|
||||
},
|
||||
"psi-header.license-text": [
|
||||
"MIT License - http://www.opensource.org/licenses/MIT"
|
||||
],
|
||||
"psi-header.templates": [
|
||||
{
|
||||
"language": "sqf",
|
||||
"template": [
|
||||
"File: <<filename>>",
|
||||
"Author: KP Liberation Dev Team - https://github.com/KillahPotatoes",
|
||||
"Date: <<filecreated('YYYY-MM-DD')>>",
|
||||
"Last Update:",
|
||||
"License: MIT License - http://www.opensource.org/licenses/MIT",
|
||||
"",
|
||||
"Description:",
|
||||
" No description added yet.",
|
||||
"",
|
||||
"Parameter(s):",
|
||||
" _localVariable - Description [DATATYPE, defaults to DEFAULTVALUE]",
|
||||
"",
|
||||
"Returns:",
|
||||
" Function reached the end [BOOL]"
|
||||
]
|
||||
}
|
||||
],
|
||||
"todo-tree.highlights.defaultHighlight": {
|
||||
"type": "tag",
|
||||
"foreground": "yellow",
|
||||
"background": "red",
|
||||
"opacity": 50,
|
||||
"iconColour": "green"
|
||||
},
|
||||
"todo-tree.general.statusBar": "tags",
|
||||
"todo-tree.tree.showCountsInTree": true,
|
||||
"todo-tree.tree.flat": true
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -8,6 +8,7 @@ if (!isServer) then {waitUntil {!isNil "KP_serverParamsFetched"};};
|
|||
[] call compileFinal preprocessFileLineNumbers "scripts\shared\fetch_params.sqf";
|
||||
[] call compileFinal preprocessFileLineNumbers "kp_liberation_config.sqf";
|
||||
[] call compileFinal preprocessFileLineNumbers "presets\init_presets.sqf";
|
||||
KPLIB_objectInitsCache = createSimpleObject ["a3\weapons_f\empty.p3d", [-7580, -7580, 0], true];
|
||||
[] call compileFinal preprocessFileLineNumbers "kp_objectInits.sqf";
|
||||
|
||||
[] execVM "GREUH\scripts\GREUH_activate.sqf";
|
||||
|
|
|
@ -15,6 +15,13 @@ KP_liberation_medical_vehicles = [
|
|||
"CUP_B_LR_Ambulance_CZ_W",
|
||||
"CUP_B_LR_Ambulance_GB_D",
|
||||
"CUP_B_LR_Ambulance_GB_W",
|
||||
"CUP_B_FV432_GB_Ambulance",
|
||||
"CUP_B_S1203_Ambulance_CDF",
|
||||
"CUP_B_UH1Y_MEV_USMC",
|
||||
"CUP_B_UH60M_Unarmed_FFV_MEV_US",
|
||||
"CUP_B_BMP2_AMB_CZ",
|
||||
"CUP_B_BMP2_AMB_CZ_Des",
|
||||
"CUP_B_HMMWV_Ambulance_ACR",
|
||||
"gm_gc_army_ural375d_medic_win",
|
||||
"gm_gc_army_ural375d_medic",
|
||||
"gm_ge_army_u1300l_medic_win_rc",
|
||||
|
@ -166,6 +173,8 @@ KP_liberation_fuel_max = 45;
|
|||
Name of the savegame namespace inside of the [ServerProfileName].vars.Arma3Profile file. */
|
||||
GRLIB_save_key = "KP_LIBERATION_" + (toUpper worldName) + "_SAVEGAME";
|
||||
|
||||
KP_liberation_save_interval = 20; // Interval in seconds for automatic save.
|
||||
|
||||
GRLIB_side_friendly = WEST; // Friendly side.
|
||||
GRLIB_side_enemy = EAST; // Enemy side.
|
||||
GRLIB_side_resistance = RESISTANCE; // Resistance side.
|
||||
|
@ -230,6 +239,18 @@ KP_liberation_battlegroup_clearance = [
|
|||
"song_bin_tanh"
|
||||
];
|
||||
|
||||
/* Slot independent commander action access.
|
||||
The Steam UIDs entered in this array will allow corresponding players to access the commander actions (rights, production, etc.),
|
||||
even if they are not in the commander slot. */
|
||||
KP_liberation_commander_actions = [
|
||||
/*
|
||||
Example:
|
||||
"1324678",
|
||||
"5468711",
|
||||
"2156347"
|
||||
*/
|
||||
];
|
||||
|
||||
/* - Default arsenal blacklist method.
|
||||
Useless if you're using anything other than "kp_liberation_arsenal = 0;" above. A whitelisted arsenal is always more performance friendly then a blacklisted arsenal.
|
||||
REMEMBER: All static turret and UAV bags should be defined here, to stop players from exploiting free resources via the virtual arsenal. */
|
||||
|
@ -314,9 +335,6 @@ blacklisted_from_arsenal = [
|
|||
"O_UAV_06_medical_backpack_F",
|
||||
"O_UGV_02_Demining_backpack_F",
|
||||
"O_UGV_02_Science_backpack_F",
|
||||
"optic_Nightstalker",
|
||||
"optic_tws_mg",
|
||||
"optic_tws",
|
||||
"RHS_AGS30_Gun_Bag",
|
||||
"RHS_AGS30_Tripod_Bag",
|
||||
"RHS_DShkM_Gun_Bag",
|
||||
|
@ -499,6 +517,7 @@ box_transport_config = [
|
|||
["C_Van_02_service_F", -5, [0,0.5,0], [0,-1.75,0]],
|
||||
["C_Van_02_transport_F", -5, [0,-1.75,0]],
|
||||
["C_Van_02_vehicle_F", -5, [0,0.5,0], [0,-1.75,0]],
|
||||
["CUP_B_C130J_Cargo_USMC",-10,[0,0.6,-3.76],[0,-0.9,-3.76],[0,-2.5,-3.76],[0,-4.2,-3.76],[0,2.2,-3.76],[0,3.8,-3.76],[0,5.5,-3.76]],
|
||||
["CUP_B_CH47F_GB", -8, [0,-3.535,-1.9], [0,-1.819,-1.9], [0,0.98,-1.9], [0,3.037,-1.9]],
|
||||
["CUP_B_CH47F_USA", -8, [0,-3.535,-1.9], [0,-1.819,-1.9], [0,0.98,-1.9], [0,3.037,-1.9]],
|
||||
["CUP_B_CH53E_USMC", -8, [0,7.566,-3], [0,5.749,-3], [0,3.847,-3], [0,2,-3], [0,0.338,-3]],
|
||||
|
@ -571,7 +590,7 @@ box_transport_config = [
|
|||
["O_T_Truck_03_transport_ghex_F", -6.5, [0,-0.8,0.4], [0,-2.4,0.4], [0,-4.0,0.4]],
|
||||
["O_Truck_03_covered_F", -6.5, [0,-0.8,0.4], [0,-2.4,0.4], [0,-4.0,0.4]],
|
||||
["O_Truck_03_transport_F", -6.5, [0,-0.8,0.4], [0,-2.4,0.4], [0,-4.0,0.4]],
|
||||
["RHS_C130J", -9.5, [-0.8,4.5,1.9], [0.8,4.5,1.9], [-0.8,4.5,3.1], [0.8,4.5,3.1], [-0.8,3.0,1.9], [0.8,3.0,1.9], [-0.8,3.0,3.1], [0.8,3.0,3.1], [-0.8,2.0,1.9], [0.8,2.0,1.9], [-0.8,2.0,3.1], [0.8,2.0,3.1], [-0.8,1.0,1.9], [0.8,1.0,1.9], [-0.8,1.0,3.1], [0.8,1.0,3.1], [-0.8,0.0,1.9], [0.8,0.0,1.9], [-0.8,0.0,3.1], [0.8,0.0,3.1], [-0.8,-1.0,1.9], [0.8,-1.0,1.9], [-0.8,-1.0,3.1], [0.8,-1.0,3.1]],
|
||||
["RHS_C130J", -9.5, [-0.8,8.0,-4.0], [0.8,8.0,-4.0], [-0.8,8.0,-2.8], [0.8,8.0,-2.8], [-0.8,6.5,-4.0], [0.8,6.5,-4.0], [-0.8,6.5,-2.8], [0.8,6.5,-2.8], [-0.8,5.0,-4.0], [0.8,5.0,-4.0], [-0.8,5.0,-2.8], [0.8,5.0,-2.8], [-0.8,3.5,-4.0], [0.8,3.5,-4.0], [-0.8,3.5,-2.8], [0.8,3.5,-2.8], [-0.8,2.0,-4.0], [0.8,2.0,-4.0], [-0.8,2.0,-2.8], [0.8,2.0,-2.8], [-0.8,0.5,-4.0], [0.8,0.5,-4.0], [-0.8,0.5,-2.8], [0.8,0.5,-2.8]],
|
||||
["RHS_CH_47F_10", -8, [0,2.2,-1.7], [0,0.5,-1.7], [0,-1.2,-1.7]],
|
||||
["RHS_CH_47F_light", -8, [0,2.2,-1.7], [0,0.5,-1.7], [0,-1.2,-1.7]],
|
||||
["RHS_CH_47F", -8, [0,2.2,-1.7], [0,0.5,-1.7], [0,-1.2,-1.7]],
|
||||
|
@ -587,8 +606,8 @@ box_transport_config = [
|
|||
["RHS_Ural_Open_MSV_01", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]],
|
||||
["RHS_Ural_Open_VDV_01", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]],
|
||||
["RHS_Ural_VDV_01", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]],
|
||||
["rhsusf_CH53E_USMC_D", -11.0, [0,2.5,1.4], [0,2.5,2.6], [0,1.0,1.4], [0,1.0,2.6], [0,-0.5,1.4], [0,-0.5,2.6], [0,-0.5,1.4], [0,-0.5,2.6], [0,-2.0,1.4], [0,-2.5,2.6], [0,-3.5,1.4], [0,-3.5,2.6]],
|
||||
["rhsusf_CH53E_USMC", -11.0, [0,2.5,1.4], [0,2.5,2.6], [0,1.0,1.4], [0,1.0,2.6], [0,-0.5,1.4], [0,-0.5,2.6], [0,-0.5,1.4], [0,-0.5,2.6], [0,-2.0,1.4], [0,-2.5,2.6], [0,-3.5,1.4], [0,-3.5,2.6]],
|
||||
["rhsusf_CH53E_USMC_D", -11.0, [0,7,-3.2], [0,7,-2.0], [0,5.5,-3.2], [0,5.5,-2.0], [0,4,-3.2], [0,4,-2.0], [0,2.5,-3.2], [0,2.5,-2.0], [0,1.0,-3.2], [0,1.0,-2.0], [0,-0.5,-3.2], [0,-0.5,-2.0]],
|
||||
["rhsusf_CH53E_USMC", -11.0, [0,7,-3.2], [0,7,-2.0], [0,5.5,-3.2], [0,5.5,-2.0], [0,4,-3.2], [0,4,-2.0], [0,2.5,-3.2], [0,2.5,-2.0], [0,1.0,-3.2], [0,1.0,-2.0], [0,-0.5,-3.2], [0,-0.5,-2.0]],
|
||||
["rhsusf_M1078A1P2_B_D_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]],
|
||||
["rhsusf_M1078A1P2_B_D_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]],
|
||||
["rhsusf_M1078A1P2_B_M2_D_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]],
|
||||
|
@ -631,6 +650,9 @@ box_transport_config = [
|
|||
["UK3CB_BAF_Merlin_HC4_18_GPMG_Arctic", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]],
|
||||
["UK3CB_BAF_Merlin_HC4_32_Arctic", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]],
|
||||
["UK3CB_BAF_Merlin_HC4_CSAR_Arctic", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]],
|
||||
["USAF_C17",-10,[-1.2,14.4,-0.43],[-1.2,12.8,-0.43],[-1.2,11.1,-0.43],[-1.2,9.5,-0.43],[-1.2,7.9,-0.43],[-1.2,6.3,-0.43],[-1.2,4.6,-0.43],[-1.2,3,-0.43],[-1.2,1.4,-0.43],[-1.2,-0.1,-0.43],[-1.2,-1.8,-0.43],[1.2,14.4,-0.43],[1.2,12.8,-0.43],[1.2,11.2,-0.43],[1.2,9.6,-0.43],[1.2,7.9,-0.43],[1.2,6.3,-0.43],[1.2,4.7,-0.43],[1.2,3.1,-0.43],[1.2,1.5,-0.43],[1.2,0,-0.43],[1.2,-1.7,-0.43],[-1.2,14.5,1.22],[-1.2,12.8,1.22],[-1.2,11.2,1.2],[-1.2,9.5,1.22],[-1.2,7.9,1.22],[-1.2,6.3,1.22],[-1.2,4.7,1.22],[-1.2,3,1.22],[-1.2,1.4,1.22],[-1.2,-0.1,1.22],[-1.2,-1.7,1.22],[1.2,14.5,1.22],[1.2,12.8,1.22],[1.2,11.2,1.22],[1.2,9.6,1.22],[1.2,8,1.22],[1.2,6.3,1.22],[1.2,4.7,1.22],[1.2,3.1,1.22],[1.2,1.5,1.22],[1.2,0,1.22],[1.2,-1.6,1.22]],
|
||||
["USAF_C130J",-10,[0,3.6,2.08],[0,2,2.08],[0,0.3,2.08],[0,-1.3,2.08]],
|
||||
["USAF_C130J_Cargo",-10,[0,3.6,2.08],[0,2,2.08],[0,0.3,2.08],[0,-1.3,2.08],[0,5.3,2.08],[0,7,2.08]],
|
||||
["uns_M35A2_Open", -5, [0,-0.6,0.1], [0,-2.3,0.1]],
|
||||
["uns_M35A2", -5, [0,-0.6,0.1], [0,-2.3,0.1]],
|
||||
["uns_m37b1", -5, [0,-1.8,0.15]],
|
||||
|
@ -814,6 +836,10 @@ boats_names = [
|
|||
"O_Boat_Transport_01_F",
|
||||
"O_T_Boat_Armed_01_hmg_F",
|
||||
"O_T_Boat_Transport_01_F",
|
||||
"CUP_B_MK10_GB",
|
||||
"CUP_B_RHIB_USMC",
|
||||
"CUP_B_RHIB2Turret_USMC",
|
||||
"CUP_B_LCU1600_USMC",
|
||||
"rhsusf_mkvsoc",
|
||||
"sfp_gruppbat",
|
||||
"sfp_rbb_norrkoping",
|
||||
|
|
|
@ -1,13 +1,23 @@
|
|||
/* - Specific object init codes depending on classnames.
|
||||
Format = [Array of classnames as strings, Code to apply]
|
||||
_this is the reference to the object with the classname */
|
||||
/*
|
||||
Specific object init codes depending on classnames.
|
||||
|
||||
Format = [Array of classnames as strings <ARRAY>, Code to apply <CODE>, Allow inheritance <BOOL>]
|
||||
_this is the reference to the object with the classname
|
||||
|
||||
Example:
|
||||
KPLIB_objectInits = [
|
||||
[["O_soldierU_F"], {systemChat "CSAT urban soldier was spawned!"}],
|
||||
[["CAManBase"], {systemChat format ["Some human named '%1' was spawned!", name _this]}, true]
|
||||
];
|
||||
];
|
||||
*/
|
||||
|
||||
KPLIB_objectInits = [
|
||||
// Set KP logo on white flag
|
||||
[["Flag_White_F"], {_this setFlagTexture "res\flag_kp_co.paa";}],
|
||||
|
||||
// Add helipads to zeus, as they can't be recycled after built
|
||||
[["Land_HelipadSquare_F", "Land_HelipadCircle_F", "Land_HelipadRescue_F", "LAND_uns_Heli_pad", "Helipad", "LAND_uns_evac_pad", "LAND_uns_Heli_H"], {{[_x, [[_this], true]] remoteExecCall ["addCuratorEditableObjects", 2]} forEach allCurators;}],
|
||||
[["Helipad_base_F", "LAND_uns_Heli_pad", "Helipad", "LAND_uns_evac_pad", "LAND_uns_Heli_H"], {{[_x, [[_this], true]] remoteExecCall ["addCuratorEditableObjects", 2]} forEach allCurators;}, true],
|
||||
|
||||
// Add ViV action to FOB box
|
||||
[[FOB_box_typename], {_this call F_setFobMass; [_this] remoteExecCall ["F_setLoadableViV", 0, _this];}],
|
||||
|
|
|
@ -79,6 +79,7 @@ light_vehicles = [
|
|||
["CUP_B_LR_Transport_CZ_D",200,0,50], // Land Rover 110 (Transport) Desert
|
||||
["CUP_B_LR_MG_CZ_D",200,40,50], // Land Rover 110 (M2) Desert
|
||||
["CUP_B_LR_Special_CZ_D",250,100,50], // Land Rover 110 (Special) Desert
|
||||
["CUP_B_HMMWV_Ambulance_ACR",225,0,50], // HMMWV (Ambulance)
|
||||
["CUP_B_HMMWV_DSHKM_GPK_ACR",225,60,50], // HMMWV M1114 DSHKM
|
||||
["CUP_B_HMMWV_M2_GPK_ACR",225,60,50], // HMMWV M1114 M2
|
||||
["CUP_B_HMMWV_AGS_GPK_ACR",225,80,50], // HMMWV M1114 AGS
|
||||
|
@ -91,10 +92,12 @@ light_vehicles = [
|
|||
];
|
||||
|
||||
heavy_vehicles = [
|
||||
["CUP_B_BRDM2_HQ_CZ_Des",200,25,200], // BRDM-2 (HQ) (Desert)
|
||||
["CUP_B_BRDM2_CZ_Des",200,200,200], // BRDM-2 (Desert)
|
||||
["I_APC_Wheeled_03_cannon_F",500,400,300], // Pandur II
|
||||
["CUP_I_BMP1_TK_GUE",300,300,200], // BVP-1
|
||||
["CUP_B_BMP2_CZ_Des",400,350,200], // BVP-2
|
||||
["CUP_B_BMP2_AMB_CZ_Des",350,0,200], // BVP-2 Ambulance
|
||||
["B_APC_Tracked_01_AA_F",500,450,400], // IFV-6a Cheetah
|
||||
["CUP_O_T72_RU",600,500,400], // T-72
|
||||
["CUP_B_T72_CZ",800,500,450] // T-72M4CZ
|
||||
|
|
|
@ -88,10 +88,13 @@ light_vehicles = [
|
|||
];
|
||||
|
||||
heavy_vehicles = [
|
||||
["CUP_B_BRDM2_HQ_CZ",200,25,200], // BRDM-2 (HQ)
|
||||
["CUP_B_BRDM2_CZ",200,200,200], // BRDM-2
|
||||
["CUP_B_RM70_CZ",300,750,175], // RM-70
|
||||
["I_APC_Wheeled_03_cannon_F",500,400,300], // Pandur II
|
||||
["CUP_I_BMP1_TK_GUE",300,300,200], // BVP-1
|
||||
["CUP_B_BMP2_CZ",400,350,200], // BVP-2
|
||||
["CUP_B_BMP2_AMB_CZ",350,0,200], // BVP-2 Ambulance
|
||||
["B_APC_Tracked_01_AA_F",500,450,400], // IFV-6a Cheetah
|
||||
["CUP_O_T72_RU",600,500,400], // T72
|
||||
["CUP_B_T72_CZ",800,500,450] // T-72M4CZ
|
||||
|
@ -316,6 +319,7 @@ elite_vehicles = [
|
|||
"CUP_B_Dingo_GL_CZ_Wdl", // Dingo 2 (GL) (Woodland)
|
||||
"QIN_Titus_WDL", // Nexter Titus
|
||||
"QIN_Titus_arx20_WDL", // Nexter Titus ARX20
|
||||
"CUP_B_RM70_CZ", // RM-70
|
||||
"I_APC_Wheeled_03_cannon_F", // Pandur II
|
||||
"CUP_B_BMP2_CZ", // BVP-2
|
||||
"B_APC_Tracked_01_AA_F", // IFV-6a Cheetah
|
||||
|
|
|
@ -117,8 +117,6 @@ air_vehicles = [
|
|||
static_vehicles = [
|
||||
["CUP_B_L111A1_BAF_DDPM",25,40,0], // L111A1 Machine Gun
|
||||
["CUP_B_L111A1_MiniTripod_BAF_DDPM",25,40,0], // L111A1 Minitripod
|
||||
["B_static_AT_F",50,100,0], // Static Titan Launcher (AT)
|
||||
["B_static_AA_F",50,100,0], // Static Titan Launcher (AA)
|
||||
["CUP_WV_B_CRAM",500,500,0], // C-RAM
|
||||
["CUP_WV_B_SS_Launcher",750,500,0], // Mk-29 GMLS
|
||||
["CUP_WV_B_RAM_Launcher",750,750,0], // Mk-49 GMLS
|
||||
|
@ -206,7 +204,7 @@ buildings = [
|
|||
];
|
||||
|
||||
support_vehicles = [
|
||||
[Arsenal_typename,0,0,0],
|
||||
[Arsenal_typename,100,200,0],
|
||||
[Respawn_truck_typename,200,0,100],
|
||||
[FOB_box_typename,300,500,0],
|
||||
[FOB_truck_typename,300,500,75],
|
||||
|
|
|
@ -18,7 +18,7 @@ FOB_typename = "Land_Cargo_HQ_V3_F"; // This
|
|||
FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container.
|
||||
FOB_truck_typename = "CUP_B_MTVR_Repair_USA"; // This is the FOB as a vehicle.
|
||||
Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates.
|
||||
Respawn_truck_typename = "CUP_B_LR_Ambulance_GB_W"; // This is the mobile respawn (and medical) truck.
|
||||
Respawn_truck_typename = "CUP_B_FV432_GB_Ambulance"; // This is the mobile respawn (and medical) truck.
|
||||
huron_typename = "CUP_B_CH47F_GB"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter.
|
||||
crewman_classname = "CUP_B_BAF_Soldier_Crew_DPM"; // This defines the crew for vehicles.
|
||||
pilot_classname = "CUP_B_BAF_Soldier_Helipilot_DPM"; // This defines the pilot for helicopters.
|
||||
|
@ -76,6 +76,7 @@ infantry_units = [
|
|||
|
||||
light_vehicles = [
|
||||
["CUP_B_LR_Transport_GB_W",75,0,50], // Land Rover 110 (Transport) Woodland
|
||||
["CUP_B_LR_Ambulance_GB_W",75,0,50], // Land Rover 110 (Ambulance) Woodland
|
||||
["CUP_B_LR_MG_GB_W",75,50,50], // Land Rover 110 (M2) Woodland
|
||||
["CUP_B_LR_Special_M2_GB_W",100,80,50], // Land Rover 110 (M2 Special) Woodland
|
||||
["CUP_B_LR_Special_GMG_GB_W",100,100,50], // Land Rover 110 (GMG Special) Woodland
|
||||
|
@ -93,6 +94,7 @@ light_vehicles = [
|
|||
heavy_vehicles = [
|
||||
["CUP_B_FV432_Bulldog_GB_W",300,100,150], // FV432 Bulldog M240 [Woodland]
|
||||
["CUP_B_FV432_Bulldog_GB_W_RWS",300,250,150], // FV432 Bulldog M2 RWS [Woodland]
|
||||
["CUP_B_FV432_Mortar",350,500,150], // FV432 Mortar
|
||||
["CUP_B_MCV80_GB_W",300,450,275], // MCV-80 Warrior (Woodland)
|
||||
["CUP_B_MCV80_GB_W_SLAT",400,450,275], // MCV-80 Warrior (SLAT - Woodland)
|
||||
["CUP_B_FV510_GB_W",350,550,275], // FV510 Warrior (Woodland)
|
||||
|
@ -117,8 +119,6 @@ air_vehicles = [
|
|||
static_vehicles = [
|
||||
["CUP_B_L111A1_BAF_DPM",25,40,0], // L111A1 Machine Gun
|
||||
["CUP_B_L111A1_MiniTripod_BAF_DPM",25,40,0], // L111A1 Minitripod
|
||||
["B_static_AT_F",50,100,0], // Static Titan Launcher (AT)
|
||||
["B_static_AA_F",50,100,0], // Static Titan Launcher (AA)
|
||||
["CUP_WV_B_CRAM",500,500,0], // C-RAM
|
||||
["CUP_WV_B_SS_Launcher",750,500,0], // Mk-29 GMLS
|
||||
["CUP_WV_B_RAM_Launcher",750,750,0], // Mk-49 GMLS
|
||||
|
@ -206,7 +206,7 @@ buildings = [
|
|||
];
|
||||
|
||||
support_vehicles = [
|
||||
[Arsenal_typename,0,0,0],
|
||||
[Arsenal_typename,100,200,0],
|
||||
[Respawn_truck_typename,200,0,100],
|
||||
[FOB_box_typename,300,500,0],
|
||||
[FOB_truck_typename,300,500,75],
|
||||
|
@ -222,6 +222,7 @@ support_vehicles = [
|
|||
["ACE_Box_82mm_Mo_Illum",50,10,0],
|
||||
["ACE_Wheel",10,0,0],
|
||||
["ACE_Track",10,0,0],
|
||||
["CUP_B_MK10_GB",100,0,50], // LCU Mk.10
|
||||
["CUP_B_TowingTractor_GB",50,0,25], // Towing Tractor
|
||||
["CUP_B_MTVR_Repair_USMC",425,0,75], // MTVR Repair
|
||||
["CUP_B_MTVR_Refuel_USMC",125,0,375], // MTVR Refuel
|
||||
|
@ -324,6 +325,7 @@ blufor_squad_para = [
|
|||
*/
|
||||
elite_vehicles = [
|
||||
"CUP_B_MCV80_GB_W_SLAT", // MCV-80 Warrior (SLAT - Woodland)
|
||||
"CUP_B_FV432_Mortar", // FV432 Mortar
|
||||
"CUP_B_FV510_GB_W", // FV510 Warrior (Woodland)
|
||||
"CUP_B_FV510_GB_W_SLAT", // FV510 Warrior (SLAT - Woodland)
|
||||
"CUP_B_Challenger2_Woodland_BAF", // FV4034 Challenger 2 (Woodland)
|
||||
|
|
|
@ -69,6 +69,7 @@ infantry_units = [
|
|||
];
|
||||
|
||||
light_vehicles = [
|
||||
["CUP_B_S1203_Ambulance_CDF",75,0,50], // Škoda S1203 (Ambulance)
|
||||
["CUP_B_UAZ_Unarmed_CDF",75,0,50], // UAZ
|
||||
["CUP_B_UAZ_MG_CDF",100,60,50], // UAZ (DShKM)
|
||||
["CUP_B_UAZ_AGS30_CDF",100,80,50], // UAZ (AGS-30)
|
||||
|
@ -106,6 +107,7 @@ static_vehicles = [
|
|||
["CUP_B_DSHkM_MiniTripod_CDF",25,40,0], // DShKM Minitripod
|
||||
["CUP_B_AGS_CDF",25,60,0], // AGS-30
|
||||
["CUP_B_SPG9_CDF",50,100,0], // SPG-9
|
||||
["CUP_B_Igla_AA_pod_CDF",100,200,0], // Igla AA Pod
|
||||
["CUP_B_ZU23_CDF",100,300,0], // ZU-23
|
||||
["B_Mortar_01_F",80,150,0], // Mk6 Mortar
|
||||
["CUP_B_2b14_82mm_CDF",80,150,0], // Podnos 2B14
|
||||
|
@ -193,7 +195,7 @@ buildings = [
|
|||
];
|
||||
|
||||
support_vehicles = [
|
||||
[Arsenal_typename,0,0,0],
|
||||
[Arsenal_typename,100,200,0],
|
||||
[Respawn_truck_typename,200,0,100],
|
||||
[FOB_box_typename,300,500,0],
|
||||
[FOB_truck_typename,300,500,75],
|
||||
|
|
|
@ -5,7 +5,9 @@
|
|||
- CUP Units
|
||||
|
||||
Optional Mods:
|
||||
- None
|
||||
- USAF Main Pack
|
||||
- USAF Fighters Pack
|
||||
- USAF Utility Pack
|
||||
*/
|
||||
|
||||
/*
|
||||
|
@ -98,16 +100,30 @@ heavy_vehicles = [
|
|||
];
|
||||
|
||||
air_vehicles = [
|
||||
["CUP_B_AH6M_USA",200,100,100], // AH-6M
|
||||
["CUP_B_UH60M_Unarmed_FFV_MEV_US",300,0,200], // UH-60M MEDVAC (Unarmed/FFV)
|
||||
["CUP_B_UH60M_US",300,25,200], // UH-60M
|
||||
["CUP_B_UH60M_FFV_US",300,50,200], // UH-60M (FFV)
|
||||
["USAF_C130J",200,0,250], // C-130J Super Hercules
|
||||
["USAF_C130J_Cargo",200,0,250], // C-130J Super Hercules (Cargo)
|
||||
["USAF_C17",500,0,400], // C-17 Globemaster III
|
||||
["usaf_kc135",600,0,2500], // KC-135 Stratotanker
|
||||
["CUP_B_AH6M_USA",200,100,100], // AH-6M
|
||||
["CUP_B_MH60L_DAP_2x_US",400,250,225], // MH-60L DAP (2 Stores)
|
||||
["CUP_B_MH60L_DAP_4x_US",400,500,225], // MH-60L DAP (4 Stores)
|
||||
["CUP_B_AH64_DL_USA",500,600,300], // AH-64
|
||||
["CUP_B_AH64D_DL_USA",700,600,200], // AH-64D
|
||||
["CUP_B_AH6X_USA",300,0,100], // AH-6X Littlebird ULB
|
||||
["USAF_RQ4A",500,0,200], // RQ-4A Global Hawk
|
||||
["USAF_MQ9",500,750,200], // MQ-9 Reaper
|
||||
["CUP_B_A10_DYN_USA",1000,800,400], // A-10A Thunderbolt II
|
||||
["CUP_B_MH47E_USA",250,100,200] // MH-47E
|
||||
["USAF_A10",1500,1000,400], // A-10C Thunderbolt II
|
||||
["USAF_F22",1800,2000,500], // F-22A Raptor
|
||||
["USAF_F22_EWP_AA",1800,2100,500], // F-22A Raptor (EWP-AA)
|
||||
["USAF_F22_EWP_AG",1800,2100,500], // F-22A Raptor (EWP-AG)
|
||||
["USAF_F22_Heavy",1800,2250,500], // F-22A Raptor (Heavy)
|
||||
["USAF_F35A_STEALTH",2250,2000,750], // F-35A Lightning II
|
||||
["USAF_F35A",2250,2250,750], // F-35A Lightning II (Heavy)
|
||||
["CUP_B_AH6X_USA",300,0,100] // AH-6X Littlebird ULB
|
||||
];
|
||||
|
||||
static_vehicles = [
|
||||
|
@ -202,7 +218,7 @@ buildings = [
|
|||
];
|
||||
|
||||
support_vehicles = [
|
||||
[Arsenal_typename,0,0,0],
|
||||
[Arsenal_typename,100,200,0],
|
||||
[Respawn_truck_typename,200,0,100],
|
||||
[FOB_box_typename,300,500,0],
|
||||
[FOB_truck_typename,300,500,75],
|
||||
|
@ -218,6 +234,19 @@ support_vehicles = [
|
|||
["ACE_Box_82mm_Mo_Illum",50,10,0],
|
||||
["ACE_Wheel",10,0,0],
|
||||
["ACE_Track",10,0,0],
|
||||
["USAF_missileCart_W_AGM114",50,150,0], // Missile Cart (AGM-114)
|
||||
["USAF_missileCart_AGMMix",50,150,0], // Missile Cart (AGM-65 Mix)
|
||||
["USAF_missileCart_AGM1",50,150,0], // Missile Cart (AGM-65D)
|
||||
["USAF_missileCart_AGM2",50,150,0], // Missile Cart (AGM-65E)
|
||||
["USAF_missileCart_AGM3",50,150,0], // Missile Cart (AGM-65K)
|
||||
["USAF_missileCart_AA1",50,150,0], // Missile Cart (AIM-9M/AIM-120)
|
||||
["USAF_missileCart_AA2",50,150,0], // Missile Cart (AIM-9X/AIM-120)
|
||||
["USAF_missileCart_GBU12_green",50,150,0], // Missile Cart (GBU12 Green)
|
||||
["USAF_missileCart_GBU12_maritime",50,150,0], // Missile Cart (GBU12 Maritime)
|
||||
["USAF_missileCart_GBU12",50,150,0], // Missile Cart (GBU12)
|
||||
["USAF_missileCart_Gbu31",50,150,0], // Missile Cart (GBU31)
|
||||
["USAF_missileCart_GBU39",50,150,0], // Missile Cart (GBU39)
|
||||
["USAF_missileCart_Mk82",50,150,0], // Missile Cart (Mk82)
|
||||
["CUP_B_TowingTractor_USA",50,0,75], // Towing Tractor
|
||||
["CUP_B_MTVR_Repair_USA",425,0,75], // MTVR Repair
|
||||
["CUP_B_MTVR_Refuel_USA",125,0,375], // MTVR Refuel
|
||||
|
@ -323,6 +352,14 @@ elite_vehicles = [
|
|||
"CUP_WV_B_SS_Launcher", // Mk-29 GMLS
|
||||
"CUP_WV_B_RAM_Launcher", // Mk-49 GMLS
|
||||
"CUP_B_A10_DYN_USA", // A-10A Thunderbolt II
|
||||
"USAF_MQ9", // MQ-9 Reaper
|
||||
"USAF_A10", // A-10C Thunderbolt II
|
||||
"USAF_F22", // F-22A Raptor
|
||||
"USAF_F22_EWP_AA", // F-22A Raptor (EWP-AA)
|
||||
"USAF_F22_EWP_AG", // F-22A Raptor (EWP-AG)
|
||||
"USAF_F22_Heavy", // F-22A Raptor (Heavy)
|
||||
"USAF_F35A_STEALTH", // F-35A Lightning II
|
||||
"USAF_F35A", // F-35A Lightning II (Heavy)
|
||||
"CUP_B_AH64D_DL_USA", // AH-64D
|
||||
"CUP_B_MH60L_DAP_2x_US", // MH-60L DAP (2 Stores)
|
||||
"CUP_B_MH60L_DAP_4x_US", // MH-60L DAP (4 Stores)
|
||||
|
|
|
@ -5,7 +5,9 @@
|
|||
- CUP Units
|
||||
|
||||
Optional Mods:
|
||||
- None
|
||||
- USAF Main Pack
|
||||
- USAF Fighters Pack
|
||||
- USAF Utility Pack
|
||||
*/
|
||||
|
||||
/*
|
||||
|
@ -99,17 +101,31 @@ heavy_vehicles = [
|
|||
];
|
||||
|
||||
air_vehicles = [
|
||||
["CUP_B_AH6M_USA",200,100,100], // AH-6M
|
||||
["CUP_B_UH60M_Unarmed_FFV_MEV_US",300,0,200], // UH-60M MEDVAC (Unarmed/FFV)
|
||||
["CUP_B_UH60M_US",300,25,200], // UH-60M
|
||||
["CUP_B_UH60M_FFV_US",300,50,200], // UH-60M (FFV)
|
||||
["USAF_C130J",200,0,250], // C-130J Super Hercules
|
||||
["USAF_C130J_Cargo",200,0,250], // C-130J Super Hercules (Cargo)
|
||||
["USAF_C17",500,0,400], // C-17 Globemaster III
|
||||
["usaf_kc135",600,0,2500], // KC-135 Stratotanker
|
||||
["CUP_B_AH6M_USA",200,100,100], // AH-6M
|
||||
["CUP_B_MH60L_DAP_2x_US",400,250,225], // MH-60L DAP (2 Stores)
|
||||
["CUP_B_MH60L_DAP_4x_US",400,500,225], // MH-60L DAP (4 Stores)
|
||||
["CUP_B_AH64_DL_USA",500,600,300], // AH-64
|
||||
["CUP_B_AH64D_DL_USA",700,600,200], // AH-64D
|
||||
["CUP_B_AH6X_USA",300,0,100], // AH-6X Littlebird ULB
|
||||
["CUP_B_A10_DYN_USA",1000,800,400], // A-10A Thunderbolt II
|
||||
["USAF_RQ4A",500,0,200], // RQ-4A Global Hawk
|
||||
["USAF_MQ9",500,750,200], // MQ-9 Reaper
|
||||
["CUP_B_AC47_Spooky_USA",600,300,400], // AC-47D Spooky
|
||||
["CUP_B_MH47E_USA",250,100,200] // MH-47E
|
||||
["CUP_B_A10_DYN_USA",1000,800,400], // A-10A Thunderbolt II
|
||||
["USAF_A10",1500,1000,400], // A-10C Thunderbolt II
|
||||
["USAF_F22",1800,2000,500], // F-22A Raptor
|
||||
["USAF_F22_EWP_AA",1800,2100,500], // F-22A Raptor (EWP-AA)
|
||||
["USAF_F22_EWP_AG",1800,2100,500], // F-22A Raptor (EWP-AG)
|
||||
["USAF_F22_Heavy",1800,2250,500], // F-22A Raptor (Heavy)
|
||||
["USAF_F35A_STEALTH",2250,2000,750], // F-35A Lightning II
|
||||
["USAF_F35A",2250,2250,750], // F-35A Lightning II (Heavy)
|
||||
["CUP_B_AH6X_USA",300,0,100] // AH-6X Littlebird ULB
|
||||
];
|
||||
|
||||
static_vehicles = [
|
||||
|
@ -204,7 +220,7 @@ buildings = [
|
|||
];
|
||||
|
||||
support_vehicles = [
|
||||
[Arsenal_typename,0,0,0],
|
||||
[Arsenal_typename,100,200,0],
|
||||
[Respawn_truck_typename,200,0,100],
|
||||
[FOB_box_typename,300,500,0],
|
||||
[FOB_truck_typename,300,500,75],
|
||||
|
@ -220,6 +236,19 @@ support_vehicles = [
|
|||
["ACE_Box_82mm_Mo_Illum",50,10,0],
|
||||
["ACE_Wheel",10,0,0],
|
||||
["ACE_Track",10,0,0],
|
||||
["USAF_missileCart_W_AGM114",50,150,0], // Missile Cart (AGM-114)
|
||||
["USAF_missileCart_AGMMix",50,150,0], // Missile Cart (AGM-65 Mix)
|
||||
["USAF_missileCart_AGM1",50,150,0], // Missile Cart (AGM-65D)
|
||||
["USAF_missileCart_AGM2",50,150,0], // Missile Cart (AGM-65E)
|
||||
["USAF_missileCart_AGM3",50,150,0], // Missile Cart (AGM-65K)
|
||||
["USAF_missileCart_AA1",50,150,0], // Missile Cart (AIM-9M/AIM-120)
|
||||
["USAF_missileCart_AA2",50,150,0], // Missile Cart (AIM-9X/AIM-120)
|
||||
["USAF_missileCart_GBU12_green",50,150,0], // Missile Cart (GBU12 Green)
|
||||
["USAF_missileCart_GBU12_maritime",50,150,0], // Missile Cart (GBU12 Maritime)
|
||||
["USAF_missileCart_GBU12",50,150,0], // Missile Cart (GBU12)
|
||||
["USAF_missileCart_Gbu31",50,150,0], // Missile Cart (GBU31)
|
||||
["USAF_missileCart_GBU39",50,150,0], // Missile Cart (GBU39)
|
||||
["USAF_missileCart_Mk82",50,150,0], // Missile Cart (Mk82)
|
||||
["CUP_B_TowingTractor_USA",50,0,75], // Towing Tractor
|
||||
["CUP_B_MTVR_Repair_USMC",425,0,75], // MTVR Repair
|
||||
["CUP_B_MTVR_Refuel_USMC",125,0,375], // MTVR Refuel
|
||||
|
@ -325,6 +354,14 @@ elite_vehicles = [
|
|||
"CUP_WV_B_SS_Launcher", // Mk-29 GMLS
|
||||
"CUP_WV_B_RAM_Launcher", // Mk-49 GMLS
|
||||
"CUP_B_A10_DYN_USA", // A-10A Thunderbolt II
|
||||
"USAF_MQ9", // MQ-9 Reaper
|
||||
"USAF_A10", // A-10C Thunderbolt II
|
||||
"USAF_F22", // F-22A Raptor
|
||||
"USAF_F22_EWP_AA", // F-22A Raptor (EWP-AA)
|
||||
"USAF_F22_EWP_AG", // F-22A Raptor (EWP-AG)
|
||||
"USAF_F22_Heavy", // F-22A Raptor (Heavy)
|
||||
"USAF_F35A_STEALTH", // F-35A Lightning II
|
||||
"USAF_F35A", // F-35A Lightning II (Heavy)
|
||||
"CUP_B_AH64D_DL_USA", // AH-64D
|
||||
"CUP_B_MH60L_DAP_2x_US", // MH-60L DAP (2 Stores)
|
||||
"CUP_B_MH60L_DAP_4x_US", // MH-60L DAP (4 Stores)
|
||||
|
|
|
@ -5,7 +5,9 @@
|
|||
- CUP Units
|
||||
|
||||
Optional Mods:
|
||||
- None
|
||||
- USAF Main Pack
|
||||
- USAF Fighters Pack
|
||||
- USAF Utility Pack
|
||||
*/
|
||||
|
||||
/*
|
||||
|
@ -23,7 +25,7 @@ huron_typename = "CUP_B_CH53E_USMC"; // This
|
|||
crewman_classname = "CUP_B_USMC_Crewman_FROG_DES"; // This defines the crew for vehicles.
|
||||
pilot_classname = "CUP_B_USMC_Pilot"; // This defines the pilot for helicopters.
|
||||
KP_liberation_little_bird_classname = "CUP_B_UH1Y_UNA_USMC"; // These are the little birds which spawn on the Freedom or at Chimera base.
|
||||
KP_liberation_boat_classname = "CUP_B_RHIB2Turret_USMC"; // These are the boats which spawn at the stern of the Freedom.
|
||||
KP_liberation_boat_classname = "CUP_B_Zodiac_USMC"; // These are the boats which spawn at the stern of the Freedom.
|
||||
KP_liberation_truck_classname = "CUP_B_MTVR_USA"; // These are the trucks which are used in the logistic convoy system.
|
||||
KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources.
|
||||
KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources.
|
||||
|
@ -77,7 +79,9 @@ light_vehicles = [
|
|||
["CUP_B_RG31_M2_OD_USA",100,50,50], // RG-31 M2
|
||||
["CUP_B_RG31E_M2_OD_USA",100,50,50], // RG-31 Mk5E M2
|
||||
["CUP_B_RG31_Mk19_OD_USA",100,80,50], // RG-31 Mk.19
|
||||
["CUP_B_MTVR_USA",125,0,75] // MTVR
|
||||
["CUP_B_MTVR_USA",125,0,75], // MTVR
|
||||
["CUP_B_RHIB_USMC",150,100,100], // RHIB
|
||||
["CUP_B_RHIB2Turret_USMC",250,200,100] // RHIB (Mk19)
|
||||
];
|
||||
|
||||
heavy_vehicles = [
|
||||
|
@ -94,15 +98,28 @@ heavy_vehicles = [
|
|||
];
|
||||
|
||||
air_vehicles = [
|
||||
["CUP_B_UH1Y_MEV_USMC",200,0,100], // UH-1Y Venom (MEDVAC)
|
||||
["CUP_B_UH1Y_Gunship_Dynamic_USMC",200,100,100], // UH-1Y Venom (Gunship)
|
||||
["CUP_B_MH60S_FFV_USMC",250,25,200], // MH-60S Seahawk (FFV)
|
||||
["CUP_B_UH60S_USN",250,50,200], // MH-60S Seahawk (M3M)
|
||||
["CUP_B_C130J_USMC",200,0,250], // C-130J
|
||||
["CUP_B_C130J_Cargo_USMC",200,0,250], // C-130J (VIV)
|
||||
["USAF_C17",500,0,400], // C-17 Globemaster III
|
||||
["usaf_kc135",600,0,2500], // KC-135 Stratotanker
|
||||
["CUP_B_AH1Z_Dynamic_USMC",500,500,200], // AH-1Z
|
||||
["CUP_B_MH60L_DAP_2x_USN",450,400,250], // MH-60S Knighthawk (ESSS x2)
|
||||
["USAF_RQ4A",500,0,200], // RQ-4A Global Hawk
|
||||
["CUP_B_USMC_DYN_MQ9",500,500,200], // MQ-9 Reaper
|
||||
["CUP_B_AV8B_DYN_USMC",1000,800,400], // AV-8B Harrier II
|
||||
["CUP_B_F35B_Stealth_USMC",1000,1200,400], // F-35B Lightning II (Stealth)
|
||||
["CUP_B_F35B_USMC",1500,1750,450], // F-35B Lightning II
|
||||
["USAF_A10",1500,1000,400], // A-10C Thunderbolt II
|
||||
["USAF_F22",1800,2000,500], // F-22A Raptor
|
||||
["USAF_F22_EWP_AA",1800,2100,500], // F-22A Raptor (EWP-AA)
|
||||
["USAF_F22_EWP_AG",1800,2100,500], // F-22A Raptor (EWP-AG)
|
||||
["USAF_F22_Heavy",1800,2250,500], // F-22A Raptor (Heavy)
|
||||
["USAF_F35A_STEALTH",2250,2000,750], // F-35A Lightning II
|
||||
["USAF_F35A",2250,2250,750], // F-35A Lightning II (Heavy)
|
||||
["CUP_B_F35B_Stealth_USMC",2500,2000,750], // F-35B Lightning II (Stealth)
|
||||
["CUP_B_F35B_USMC",2500,2250,750], // F-35B Lightning II
|
||||
["CUP_B_MV22_USMC_RAMPGUN",750,100,500], // MV-22B Osprey (Ramp Gun)
|
||||
["CUP_B_MV22_USMC",750,0,500], // MV-22B Osprey
|
||||
["CUP_B_MV22_VIV_USMC",750,0,500] // MV-22B Osprey (VIV)
|
||||
|
@ -200,7 +217,7 @@ buildings = [
|
|||
];
|
||||
|
||||
support_vehicles = [
|
||||
[Arsenal_typename,0,0,0],
|
||||
[Arsenal_typename,100,200,0],
|
||||
[Respawn_truck_typename,200,0,100],
|
||||
[FOB_box_typename,300,500,0],
|
||||
[FOB_truck_typename,300,500,75],
|
||||
|
@ -216,6 +233,20 @@ support_vehicles = [
|
|||
["ACE_Box_82mm_Mo_Illum",50,10,0],
|
||||
["ACE_Wheel",10,0,0],
|
||||
["ACE_Track",10,0,0],
|
||||
["USAF_missileCart_W_AGM114",50,150,0], // Missile Cart (AGM-114)
|
||||
["USAF_missileCart_AGMMix",50,150,0], // Missile Cart (AGM-65 Mix)
|
||||
["USAF_missileCart_AGM1",50,150,0], // Missile Cart (AGM-65D)
|
||||
["USAF_missileCart_AGM2",50,150,0], // Missile Cart (AGM-65E)
|
||||
["USAF_missileCart_AGM3",50,150,0], // Missile Cart (AGM-65K)
|
||||
["USAF_missileCart_AA1",50,150,0], // Missile Cart (AIM-9M/AIM-120)
|
||||
["USAF_missileCart_AA2",50,150,0], // Missile Cart (AIM-9X/AIM-120)
|
||||
["USAF_missileCart_GBU12_green",50,150,0], // Missile Cart (GBU12 Green)
|
||||
["USAF_missileCart_GBU12_maritime",50,150,0], // Missile Cart (GBU12 Maritime)
|
||||
["USAF_missileCart_GBU12",50,150,0], // Missile Cart (GBU12)
|
||||
["USAF_missileCart_Gbu31",50,150,0], // Missile Cart (GBU31)
|
||||
["USAF_missileCart_GBU39",50,150,0], // Missile Cart (GBU39)
|
||||
["USAF_missileCart_Mk82",50,150,0], // Missile Cart (Mk82)
|
||||
["CUP_B_LCU1600_USMC",250,0,175], // LCU-1610
|
||||
["CUP_B_TowingTractor_USMC",50,0,75], // Towing Tractor
|
||||
["CUP_B_MTVR_Repair_USA",425,0,75], // MTVR Repair
|
||||
["CUP_B_MTVR_Refuel_USA",125,0,375], // MTVR Refuel
|
||||
|
@ -323,6 +354,13 @@ elite_vehicles = [
|
|||
"CUP_WV_B_RAM_Launcher", // Mk-49 GMLS
|
||||
"CUP_B_F35B_Stealth_USMC", // F-35B Lightning II (Stealth)
|
||||
"CUP_B_AV8B_DYN_USMC", // AV-8B Harrier II
|
||||
"USAF_A10", // A-10C Thunderbolt II
|
||||
"USAF_F22", // F-22A Raptor
|
||||
"USAF_F22_EWP_AA", // F-22A Raptor (EWP-AA)
|
||||
"USAF_F22_EWP_AG", // F-22A Raptor (EWP-AG)
|
||||
"USAF_F22_Heavy", // F-22A Raptor (Heavy)
|
||||
"USAF_F35A_STEALTH", // F-35A Lightning II
|
||||
"USAF_F35A", // F-35A Lightning II (Heavy)
|
||||
"CUP_B_AH1Z_Dynamic_USMC", // AH-1Z
|
||||
"CUP_B_MH60L_DAP_2x_USN", // MH-60S Knighthawk (ESSS x2)
|
||||
"CUP_B_M1A1_DES_USMC", // M1A1 Abrams (Desert)
|
||||
|
|
|
@ -5,7 +5,9 @@
|
|||
- CUP Units
|
||||
|
||||
Optional Mods:
|
||||
- None
|
||||
- USAF Main Pack
|
||||
- USAF Fighters Pack
|
||||
- USAF Utility Pack
|
||||
*/
|
||||
|
||||
/*
|
||||
|
@ -23,7 +25,7 @@ huron_typename = "CUP_B_CH53E_USMC"; // This
|
|||
crewman_classname = "CUP_B_USMC_Crewman_FROG_WDL"; // This defines the crew for vehicles.
|
||||
pilot_classname = "CUP_B_USMC_Pilot"; // This defines the pilot for helicopters.
|
||||
KP_liberation_little_bird_classname = "CUP_B_UH1Y_UNA_USMC"; // These are the little birds which spawn on the Freedom or at Chimera base.
|
||||
KP_liberation_boat_classname = "CUP_B_RHIB2Turret_USMC"; // These are the boats which spawn at the stern of the Freedom.
|
||||
KP_liberation_boat_classname = "CUP_B_Zodiac_USMC"; // These are the boats which spawn at the stern of the Freedom.
|
||||
KP_liberation_truck_classname = "CUP_B_MTVR_USMC"; // These are the trucks which are used in the logistic convoy system.
|
||||
KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources.
|
||||
KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources.
|
||||
|
@ -78,7 +80,9 @@ light_vehicles = [
|
|||
["CUP_B_RG31_M2_OD_USMC",100,50,50], // RG-31 M2
|
||||
["CUP_B_RG31E_M2_OD_USMC",100,50,50], // RG-31 Mk5E M2
|
||||
["CUP_B_RG31_Mk19_OD_USMC",100,80,50], // RG-31 Mk.19
|
||||
["CUP_B_MTVR_USMC",125,0,75] // MTVR
|
||||
["CUP_B_MTVR_USMC",125,0,75], // MTVR
|
||||
["CUP_B_RHIB_USMC",150,100,100], // RHIB
|
||||
["CUP_B_RHIB2Turret_USMC",250,200,100] // RHIB (Mk19)
|
||||
];
|
||||
|
||||
heavy_vehicles = [
|
||||
|
@ -95,15 +99,28 @@ heavy_vehicles = [
|
|||
];
|
||||
|
||||
air_vehicles = [
|
||||
["CUP_B_UH1Y_MEV_USMC",200,0,100], // UH-1Y Venom (MEDVAC)
|
||||
["CUP_B_UH1Y_Gunship_Dynamic_USMC",200,100,100], // UH-1Y Venom (Gunship)
|
||||
["CUP_B_MH60S_FFV_USMC",250,25,200], // MH-60S Seahawk (FFV)
|
||||
["CUP_B_UH60S_USN",250,50,200], // MH-60S Seahawk (M3M)
|
||||
["USAF_C130J",200,0,250], // C-130J Super Hercules
|
||||
["USAF_C130J_Cargo",200,0,250], // C-130J Super Hercules (Cargo)
|
||||
["USAF_C17",500,0,400], // C-17 Globemaster III
|
||||
["usaf_kc135",600,0,2500], // KC-135 Stratotanker
|
||||
["CUP_B_AH1Z_Dynamic_USMC",500,500,200], // AH-1Z
|
||||
["CUP_B_MH60L_DAP_2x_USN",450,400,250], // MH-60S Knighthawk (ESSS x2)
|
||||
["USAF_RQ4A",500,0,200], // RQ-4A Global Hawk
|
||||
["CUP_B_USMC_DYN_MQ9",500,500,200], // MQ-9 Reaper
|
||||
["CUP_B_AV8B_DYN_USMC",1000,800,400], // AV-8B Harrier II
|
||||
["CUP_B_F35B_Stealth_USMC",1000,1200,400], // F-35B Lightning II (Stealth)
|
||||
["CUP_B_F35B_USMC",1500,1750,450], // F-35B Lightning II
|
||||
["USAF_A10",1500,1000,400], // A-10C Thunderbolt II
|
||||
["USAF_F22",1800,2000,500], // F-22A Raptor
|
||||
["USAF_F22_EWP_AA",1800,2100,500], // F-22A Raptor (EWP-AA)
|
||||
["USAF_F22_EWP_AG",1800,2100,500], // F-22A Raptor (EWP-AG)
|
||||
["USAF_F22_Heavy",1800,2250,500], // F-22A Raptor (Heavy)
|
||||
["USAF_F35A_STEALTH",2250,2000,750], // F-35A Lightning II
|
||||
["USAF_F35A",2250,2250,750], // F-35A Lightning II (Heavy)
|
||||
["CUP_B_F35B_Stealth_USMC",2500,2000,750], // F-35B Lightning II (Stealth)
|
||||
["CUP_B_F35B_USMC",2500,2250,750], // F-35B Lightning II
|
||||
["CUP_B_MV22_USMC_RAMPGUN",750,100,500], // MV-22B Osprey (Ramp Gun)
|
||||
["CUP_B_MV22_USMC",750,0,500], // MV-22B Osprey
|
||||
["CUP_B_MV22_VIV_USMC",750,0,500] // MV-22B Osprey (VIV)
|
||||
|
@ -201,7 +218,7 @@ buildings = [
|
|||
];
|
||||
|
||||
support_vehicles = [
|
||||
[Arsenal_typename,0,0,0],
|
||||
[Arsenal_typename,100,200,0],
|
||||
[Respawn_truck_typename,200,0,100],
|
||||
[FOB_box_typename,300,500,0],
|
||||
[FOB_truck_typename,300,500,75],
|
||||
|
@ -217,6 +234,20 @@ support_vehicles = [
|
|||
["ACE_Box_82mm_Mo_Illum",50,10,0],
|
||||
["ACE_Wheel",10,0,0],
|
||||
["ACE_Track",10,0,0],
|
||||
["USAF_missileCart_W_AGM114",50,150,0], // Missile Cart (AGM-114)
|
||||
["USAF_missileCart_AGMMix",50,150,0], // Missile Cart (AGM-65 Mix)
|
||||
["USAF_missileCart_AGM1",50,150,0], // Missile Cart (AGM-65D)
|
||||
["USAF_missileCart_AGM2",50,150,0], // Missile Cart (AGM-65E)
|
||||
["USAF_missileCart_AGM3",50,150,0], // Missile Cart (AGM-65K)
|
||||
["USAF_missileCart_AA1",50,150,0], // Missile Cart (AIM-9M/AIM-120)
|
||||
["USAF_missileCart_AA2",50,150,0], // Missile Cart (AIM-9X/AIM-120)
|
||||
["USAF_missileCart_GBU12_green",50,150,0], // Missile Cart (GBU12 Green)
|
||||
["USAF_missileCart_GBU12_maritime",50,150,0], // Missile Cart (GBU12 Maritime)
|
||||
["USAF_missileCart_GBU12",50,150,0], // Missile Cart (GBU12)
|
||||
["USAF_missileCart_Gbu31",50,150,0], // Missile Cart (GBU31)
|
||||
["USAF_missileCart_GBU39",50,150,0], // Missile Cart (GBU39)
|
||||
["USAF_missileCart_Mk82",50,150,0], // Missile Cart (Mk82)
|
||||
["CUP_B_LCU1600_USMC",250,0,175], // LCU-1610
|
||||
["CUP_B_TowingTractor_USMC",50,0,75], // Towing Tractor
|
||||
["CUP_B_MTVR_Repair_USMC",425,0,75], // MTVR Repair
|
||||
["CUP_B_MTVR_Refuel_USMC",125,0,375], // MTVR Refuel
|
||||
|
@ -324,6 +355,13 @@ elite_vehicles = [
|
|||
"CUP_WV_B_RAM_Launcher", // Mk-49 GMLS
|
||||
"CUP_B_F35B_Stealth_USMC", // F-35B Lightning II (Stealth)
|
||||
"CUP_B_AV8B_DYN_USMC", // AV-8B Harrier II
|
||||
"USAF_A10", // A-10C Thunderbolt II
|
||||
"USAF_F22", // F-22A Raptor
|
||||
"USAF_F22_EWP_AA", // F-22A Raptor (EWP-AA)
|
||||
"USAF_F22_EWP_AG", // F-22A Raptor (EWP-AG)
|
||||
"USAF_F22_Heavy", // F-22A Raptor (Heavy)
|
||||
"USAF_F35A_STEALTH", // F-35A Lightning II
|
||||
"USAF_F35A", // F-35A Lightning II (Heavy)
|
||||
"CUP_B_AH1Z_Dynamic_USMC", // AH-1Z
|
||||
"CUP_B_MH60L_DAP_2x_USN", // MH-60S Knighthawk (ESSS x2)
|
||||
"CUP_B_M1A1_Woodland_USMC", // M1A1 Abrams (Woodland)
|
||||
|
|
|
@ -9,6 +9,9 @@
|
|||
- F/A-18
|
||||
- CUP Weapons
|
||||
- CUP Vehicles
|
||||
- USAF Main Pack
|
||||
- USAF Fighters Pack
|
||||
- USAF Utility Pack
|
||||
*/
|
||||
|
||||
/*
|
||||
|
@ -169,18 +172,31 @@ air_vehicles = [
|
|||
["rhsusf_CH53E_USMC",300,0,175], // CH-53E Super Stallion
|
||||
["rhsusf_CH53E_USMC_GAU21",300,100,175], // CH-53E Super Stallion (GAU-21)
|
||||
["B_Heli_Transport_03_F",300,80,175], // CH-67 Huron (Armed)
|
||||
["USAF_C130J",200,0,250], // C-130J Super Hercules
|
||||
["USAF_C130J_Cargo",200,0,250], // C-130J Super Hercules (Cargo)
|
||||
["USAF_C17",500,0,400], // C-17 Globemaster III
|
||||
["usaf_kc135",600,0,2500], // KC-135 Stratotanker
|
||||
["B_UAV_02_dynamicLoadout_F",400,300,200], // MQ-4A Greyhawk
|
||||
["B_T_UAV_03_dynamicLoadout_F",450,500,250], // MQ-12 Falcon
|
||||
["B_UAV_05_F",500,500,200], // UCAV Sentinel
|
||||
["USAF_RQ4A",500,0,200], // RQ-4A Global Hawk
|
||||
["USAF_MQ9",500,750,200], // MQ-9 Reaper
|
||||
["I_Plane_Fighter_03_dynamicLoadout_F",500,400,350], // A-143 Buzzard (AA)
|
||||
["B_Plane_CAS_01_dynamicLoadout_F",1000,800,400], // A-164 Wipeout (CAS)
|
||||
["RHS_A10",1000,1000,400], // A-10A (CAS)
|
||||
["USAF_A10",1500,1000,400], // A-10C Thunderbolt II
|
||||
["I_Plane_Fighter_04_F",1000,1200,400], // A-149 Gryphon
|
||||
["FIR_F15C",1250,1250,450], // F-15C Eagle
|
||||
["FIR_F15D",1250,1250,450], // F-15D Eagle
|
||||
["FIR_F15E",1250,1500,450], // F-15E Strike Eagle
|
||||
["JS_JC_FA18E",1500,1750,450], // F/A-18 E Super Hornet
|
||||
["JS_JC_FA18F",1500,1750,450], // F/A-18 F Super Hornet
|
||||
["USAF_F22",1800,2000,500], // F-22A Raptor
|
||||
["USAF_F22_EWP_AA",1800,2100,500], // F-22A Raptor (EWP-AA)
|
||||
["USAF_F22_EWP_AG",1800,2100,500], // F-22A Raptor (EWP-AG)
|
||||
["USAF_F22_Heavy",1800,2250,500], // F-22A Raptor (Heavy)
|
||||
["USAF_F35A_STEALTH",2250,2000,750], // F-35A Lightning II
|
||||
["USAF_F35A",2250,2250,750], // F-35A Lightning II (Heavy)
|
||||
["B_Plane_Fighter_01_F",1500,1750,450], // F/A-181 Black Wasp II
|
||||
["B_Plane_Fighter_01_Stealth_F",1500,1750,450], // F/A-181 Black Wasp II (Stealth)
|
||||
["B_T_VTOL_01_armed_F",750,1500,500], // V-44 X Blackfish (Armed)
|
||||
|
@ -298,6 +314,19 @@ support_vehicles = [
|
|||
["ACE_Box_82mm_Mo_Illum",50,10,0],
|
||||
["ACE_Wheel",10,0,0],
|
||||
["ACE_Track",10,0,0],
|
||||
["USAF_missileCart_W_AGM114",50,150,0], // Missile Cart (AGM-114)
|
||||
["USAF_missileCart_AGMMix",50,150,0], // Missile Cart (AGM-65 Mix)
|
||||
["USAF_missileCart_AGM1",50,150,0], // Missile Cart (AGM-65D)
|
||||
["USAF_missileCart_AGM2",50,150,0], // Missile Cart (AGM-65E)
|
||||
["USAF_missileCart_AGM3",50,150,0], // Missile Cart (AGM-65K)
|
||||
["USAF_missileCart_AA1",50,150,0], // Missile Cart (AIM-9M/AIM-120)
|
||||
["USAF_missileCart_AA2",50,150,0], // Missile Cart (AIM-9X/AIM-120)
|
||||
["USAF_missileCart_GBU12_green",50,150,0], // Missile Cart (GBU12 Green)
|
||||
["USAF_missileCart_GBU12_maritime",50,150,0], // Missile Cart (GBU12 Maritime)
|
||||
["USAF_missileCart_GBU12",50,150,0], // Missile Cart (GBU12)
|
||||
["USAF_missileCart_Gbu31",50,150,0], // Missile Cart (GBU31)
|
||||
["USAF_missileCart_GBU39",50,150,0], // Missile Cart (GBU39)
|
||||
["USAF_missileCart_Mk82",50,150,0], // Missile Cart (Mk82)
|
||||
["CUP_B_TowingTractor_NATO",50,0,25], // Towing Tractor
|
||||
["B_T_APC_Tracked_01_CRV_F",500,250,350], // CRV-6e Bobcat
|
||||
["B_T_Truck_01_Repair_F",325,0,75], // HEMTT Repair
|
||||
|
@ -421,6 +450,14 @@ elite_vehicles = [
|
|||
"B_Plane_CAS_01_dynamicLoadout_F", // A-164 Wipeout (CAS)
|
||||
"I_Plane_Fighter_04_F", // A-149 Gryphon
|
||||
"RHS_A10", // A-10A (CAS)
|
||||
"USAF_MQ9", // MQ-9 Reaper
|
||||
"USAF_A10", // A-10C Thunderbolt II
|
||||
"USAF_F22", // F-22A Raptor
|
||||
"USAF_F22_EWP_AA", // F-22A Raptor (EWP-AA)
|
||||
"USAF_F22_EWP_AG", // F-22A Raptor (EWP-AG)
|
||||
"USAF_F22_Heavy", // F-22A Raptor (Heavy)
|
||||
"USAF_F35A_STEALTH", // F-35A Lightning II
|
||||
"USAF_F35A", // F-35A Lightning II (Heavy)
|
||||
"FIR_F15C", // F-15C Eagle
|
||||
"FIR_F15D", // F-15D Eagle
|
||||
"FIR_F15E", // F-15E Strike Eagle
|
||||
|
|
|
@ -9,6 +9,9 @@
|
|||
- F/A-18
|
||||
- CUP Weapons
|
||||
- CUP Vehicles
|
||||
- USAF Main Pack
|
||||
- USAF Fighters Pack
|
||||
- USAF Utility Pack
|
||||
*/
|
||||
|
||||
/*
|
||||
|
@ -175,18 +178,31 @@ air_vehicles = [
|
|||
["rhsusf_CH53E_USMC",300,0,175], // CH-53E Super Stallion
|
||||
["rhsusf_CH53E_USMC_GAU21_D",300,100,175], // CH-53E Super Stallion (GAU-21)
|
||||
["B_Heli_Transport_03_F",300,80,175], // CH-67 Huron (Armed)
|
||||
["USAF_C130J",200,0,250], // C-130J Super Hercules
|
||||
["USAF_C130J_Cargo",200,0,250], // C-130J Super Hercules (Cargo)
|
||||
["USAF_C17",500,0,400], // C-17 Globemaster III
|
||||
["usaf_kc135",600,0,2500], // KC-135 Stratotanker
|
||||
["B_UAV_02_dynamicLoadout_F",400,400,200], // MQ-4A Greyhawk
|
||||
["B_T_UAV_03_dynamicLoadout_F",450,500,250], // MQ-12 Falcon
|
||||
["B_UAV_05_F",500,500,200], // UCAV Sentinel
|
||||
["USAF_RQ4A",500,0,200], // RQ-4A Global Hawk
|
||||
["USAF_MQ9",500,750,200], // MQ-9 Reaper
|
||||
["I_Plane_Fighter_03_dynamicLoadout_F",500,400,350], // A-143 Buzzard
|
||||
["B_Plane_CAS_01_dynamicLoadout_F",1000,800,400], // A-164 Wipeout (CAS)
|
||||
["RHS_A10",1000,1000,400], // A-10A (CAS)
|
||||
["USAF_A10",1500,1000,400], // A-10C Thunderbolt II
|
||||
["I_Plane_Fighter_04_F",1000,1200,400], // A-149 Gryphon
|
||||
["FIR_F15C",1250,1250,450], // F-15C Eagle
|
||||
["FIR_F15D",1250,1250,450], // F-15D Eagle
|
||||
["FIR_F15E",1250,1500,450], // F-15E Strike Eagle
|
||||
["JS_JC_FA18E",1500,1750,450], // F/A-18 E Super Hornet
|
||||
["JS_JC_FA18F",1500,1750,450], // F/A-18 F Super Hornet
|
||||
["USAF_F22",1800,2000,500], // F-22A Raptor
|
||||
["USAF_F22_EWP_AA",1800,2100,500], // F-22A Raptor (EWP-AA)
|
||||
["USAF_F22_EWP_AG",1800,2100,500], // F-22A Raptor (EWP-AG)
|
||||
["USAF_F22_Heavy",1800,2250,500], // F-22A Raptor (Heavy)
|
||||
["USAF_F35A_STEALTH",2250,2000,750], // F-35A Lightning II
|
||||
["USAF_F35A",2250,2250,750], // F-35A Lightning II (Heavy)
|
||||
["B_Plane_Fighter_01_F",1500,1750,450], // F/A-181 Black Wasp II
|
||||
["B_Plane_Fighter_01_Stealth_F",1500,1750,450], // F/A-181 Black Wasp II (Stealth)
|
||||
["B_T_VTOL_01_armed_F",750,1500,500], // V-44 X Blackfish (Armed)
|
||||
|
@ -304,6 +320,19 @@ support_vehicles = [
|
|||
["ACE_Box_82mm_Mo_Illum",50,10,0],
|
||||
["ACE_Wheel",10,0,0],
|
||||
["ACE_Track",10,0,0],
|
||||
["USAF_missileCart_W_AGM114",50,150,0], // Missile Cart (AGM-114)
|
||||
["USAF_missileCart_AGMMix",50,150,0], // Missile Cart (AGM-65 Mix)
|
||||
["USAF_missileCart_AGM1",50,150,0], // Missile Cart (AGM-65D)
|
||||
["USAF_missileCart_AGM2",50,150,0], // Missile Cart (AGM-65E)
|
||||
["USAF_missileCart_AGM3",50,150,0], // Missile Cart (AGM-65K)
|
||||
["USAF_missileCart_AA1",50,150,0], // Missile Cart (AIM-9M/AIM-120)
|
||||
["USAF_missileCart_AA2",50,150,0], // Missile Cart (AIM-9X/AIM-120)
|
||||
["USAF_missileCart_GBU12_green",50,150,0], // Missile Cart (GBU12 Green)
|
||||
["USAF_missileCart_GBU12_maritime",50,150,0], // Missile Cart (GBU12 Maritime)
|
||||
["USAF_missileCart_GBU12",50,150,0], // Missile Cart (GBU12)
|
||||
["USAF_missileCart_Gbu31",50,150,0], // Missile Cart (GBU31)
|
||||
["USAF_missileCart_GBU39",50,150,0], // Missile Cart (GBU39)
|
||||
["USAF_missileCart_Mk82",50,150,0], // Missile Cart (Mk82)
|
||||
["CUP_B_TowingTractor_NATO",50,0,25], // Towing Tractor
|
||||
["B_APC_Tracked_01_CRV_F",500,250,350], // CRV-6e Bobcat
|
||||
["B_Truck_01_Repair_F",325,0,75], // HEMTT Repair
|
||||
|
@ -426,6 +455,14 @@ elite_vehicles = [
|
|||
"B_Plane_CAS_01_dynamicLoadout_F", // A-164 Wipeout (CAS)
|
||||
"I_Plane_Fighter_04_F", // A-149 Gryphon
|
||||
"RHS_A10", // A-10A (CAS)
|
||||
"USAF_MQ9", // MQ-9 Reaper
|
||||
"USAF_A10", // A-10C Thunderbolt II
|
||||
"USAF_F22", // F-22A Raptor
|
||||
"USAF_F22_EWP_AA", // F-22A Raptor (EWP-AA)
|
||||
"USAF_F22_EWP_AG", // F-22A Raptor (EWP-AG)
|
||||
"USAF_F22_Heavy", // F-22A Raptor (Heavy)
|
||||
"USAF_F35A_STEALTH", // F-35A Lightning II
|
||||
"USAF_F35A", // F-35A Lightning II (Heavy)
|
||||
"FIR_F15C", // F-15C Eagle
|
||||
"FIR_F15D", // F-15D Eagle
|
||||
"FIR_F15E", // F-15E Strike Eagle
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
Optional Mods:
|
||||
- F-15C
|
||||
- F/A-18
|
||||
- USAF Main Pack
|
||||
- USAF Fighters Pack
|
||||
- USAF Utility Pack
|
||||
*/
|
||||
|
||||
/*
|
||||
|
@ -136,15 +139,28 @@ air_vehicles = [
|
|||
["RHS_CH_47F_10",275,80,175], // CH-47 Chinook (Armed)
|
||||
["rhsusf_CH53E_USMC_D",300,0,175], // CH-53E Super Stallion
|
||||
["rhsusf_CH53E_USMC_GAU21_D",300,100,175], // CH-53E Super Stallion (GAU-21)
|
||||
["USAF_C130J",200,0,250], // C-130J Super Hercules
|
||||
["USAF_C130J_Cargo",200,0,250], // C-130J Super Hercules (Cargo)
|
||||
["USAF_C17",500,0,400], // C-17 Globemaster III
|
||||
["usaf_kc135",600,0,2500], // KC-135 Stratotanker
|
||||
["B_UAV_02_dynamicLoadout_F",400,300,200], // MQ-4A Greyhawk
|
||||
["B_T_UAV_03_dynamicLoadout_F",450,500,250], // MQ-12 Falcon
|
||||
["B_UAV_05_F",500,500,200], // UCAV Sentinel
|
||||
["USAF_RQ4A",500,0,200], // RQ-4A Global Hawk
|
||||
["USAF_MQ9",500,750,200], // MQ-9 Reaper
|
||||
["RHS_A10",1000,1000,400], // A-10A (CAS)
|
||||
["USAF_A10",1500,1000,400], // A-10C Thunderbolt II
|
||||
["FIR_F15C",1250,1250,450], // F-15C Eagle
|
||||
["FIR_F15D",1250,1250,450], // F-15D Eagle
|
||||
["FIR_F15E",1250,1500,450], // F-15E Strike Eagle
|
||||
["JS_JC_FA18E",1500,1750,450], // F/A-18 E Super Hornet
|
||||
["JS_JC_FA18F",1500,1750,450], // F/A-18 F Super Hornet
|
||||
["USAF_F22",1800,2000,500], // F-22A Raptor
|
||||
["USAF_F22_EWP_AA",1800,2100,500], // F-22A Raptor (EWP-AA)
|
||||
["USAF_F22_EWP_AG",1800,2100,500], // F-22A Raptor (EWP-AG)
|
||||
["USAF_F22_Heavy",1800,2250,500], // F-22A Raptor (Heavy)
|
||||
["USAF_F35A_STEALTH",2250,2000,750], // F-35A Lightning II
|
||||
["USAF_F35A",2250,2250,750], // F-35A Lightning II (Heavy)
|
||||
["B_Plane_Fighter_01_F",1500,1750,450], // F/A-181 Black Wasp II
|
||||
["B_Plane_Fighter_01_Stealth_F",1500,1750,450], // F/A-181 Black Wasp II (Stealth)
|
||||
["B_T_VTOL_01_armed_F",750,1500,500], // V-44 X Blackfish (Armed)
|
||||
|
@ -259,6 +275,19 @@ support_vehicles = [
|
|||
["ACE_Box_82mm_Mo_Illum",50,10,0],
|
||||
["ACE_Wheel",10,0,0],
|
||||
["ACE_Track",10,0,0],
|
||||
["USAF_missileCart_W_AGM114",50,150,0], // Missile Cart (AGM-114)
|
||||
["USAF_missileCart_AGMMix",50,150,0], // Missile Cart (AGM-65 Mix)
|
||||
["USAF_missileCart_AGM1",50,150,0], // Missile Cart (AGM-65D)
|
||||
["USAF_missileCart_AGM2",50,150,0], // Missile Cart (AGM-65E)
|
||||
["USAF_missileCart_AGM3",50,150,0], // Missile Cart (AGM-65K)
|
||||
["USAF_missileCart_AA1",50,150,0], // Missile Cart (AIM-9M/AIM-120)
|
||||
["USAF_missileCart_AA2",50,150,0], // Missile Cart (AIM-9X/AIM-120)
|
||||
["USAF_missileCart_GBU12_green",50,150,0], // Missile Cart (GBU12 Green)
|
||||
["USAF_missileCart_GBU12_maritime",50,150,0], // Missile Cart (GBU12 Maritime)
|
||||
["USAF_missileCart_GBU12",50,150,0], // Missile Cart (GBU12)
|
||||
["USAF_missileCart_Gbu31",50,150,0], // Missile Cart (GBU31)
|
||||
["USAF_missileCart_GBU39",50,150,0], // Missile Cart (GBU39)
|
||||
["USAF_missileCart_Mk82",50,150,0], // Missile Cart (Mk82)
|
||||
["B_APC_Tracked_01_CRV_F",500,250,350], // CRV-6e Bobcat
|
||||
["rhsusf_M1239_M2_Deploy_socom_d",450,200,300], // M1239 AUV (Deploy, M2)
|
||||
["rhsusf_M1239_MK19_Deploy_socom_d",450,250,300], // M1239 AUV (Deploy, Mk19)
|
||||
|
@ -371,6 +400,14 @@ elite_vehicles = [
|
|||
"B_UAV_02_dynamicLoadout_F", // MQ-4A Greyhawk
|
||||
"B_T_UAV_03_dynamicLoadout_F", // MQ-12 Falcon
|
||||
"B_UAV_05_F", // UCAV Sentinel
|
||||
"USAF_MQ9", // MQ-9 Reaper
|
||||
"USAF_A10", // A-10C Thunderbolt II
|
||||
"USAF_F22", // F-22A Raptor
|
||||
"USAF_F22_EWP_AA", // F-22A Raptor (EWP-AA)
|
||||
"USAF_F22_EWP_AG", // F-22A Raptor (EWP-AG)
|
||||
"USAF_F22_Heavy", // F-22A Raptor (Heavy)
|
||||
"USAF_F35A_STEALTH", // F-35A Lightning II
|
||||
"USAF_F35A", // F-35A Lightning II (Heavy)
|
||||
"RHS_A10", // A-10A (CAS)
|
||||
"FIR_F15C", // F-15C Eagle
|
||||
"FIR_F15D", // F-15D Eagle
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
Optional Mods:
|
||||
- F-15C
|
||||
- F/A-18
|
||||
- USAF Main Pack
|
||||
- USAF Fighters Pack
|
||||
- USAF Utility Pack
|
||||
*/
|
||||
|
||||
/*
|
||||
|
@ -129,15 +132,28 @@ air_vehicles = [
|
|||
["RHS_CH_47F_10",275,80,175], // CH-47 Chinook (Armed)
|
||||
["rhsusf_CH53E_USMC",300,0,175], // CH-53E Super Stallion
|
||||
["rhsusf_CH53E_USMC_GAU21",300,100,175], // CH-53E Super Stallion (GAU-21)
|
||||
["USAF_C130J",200,0,250], // C-130J Super Hercules
|
||||
["USAF_C130J_Cargo",200,0,250], // C-130J Super Hercules (Cargo)
|
||||
["USAF_C17",500,0,400], // C-17 Globemaster III
|
||||
["usaf_kc135",600,0,2500], // KC-135 Stratotanker
|
||||
["B_UAV_02_dynamicLoadout_F",400,300,200], // MQ-4A Greyhawk
|
||||
["B_T_UAV_03_dynamicLoadout_F",450,500,250], // MQ-12 Falcon
|
||||
["B_UAV_05_F",500,500,200], // UCAV Sentinel
|
||||
["USAF_RQ4A",500,0,200], // RQ-4A Global Hawk
|
||||
["USAF_MQ9",500,750,200], // MQ-9 Reaper
|
||||
["RHS_A10",1000,1000,400], // A-10A (CAS)
|
||||
["USAF_A10",1500,1000,400], // A-10C Thunderbolt II
|
||||
["FIR_F15C",1250,1250,450], // F-15C Eagle
|
||||
["FIR_F15D",1250,1250,450], // F-15D Eagle
|
||||
["FIR_F15E",1250,1500,450], // F-15E Strike Eagle
|
||||
["JS_JC_FA18E",1500,1750,450], // F/A-18 E Super Hornet
|
||||
["JS_JC_FA18F",1500,1750,450], // F/A-18 F Super Hornet
|
||||
["USAF_F22",1800,2000,500], // F-22A Raptor
|
||||
["USAF_F22_EWP_AA",1800,2100,500], // F-22A Raptor (EWP-AA)
|
||||
["USAF_F22_EWP_AG",1800,2100,500], // F-22A Raptor (EWP-AG)
|
||||
["USAF_F22_Heavy",1800,2250,500], // F-22A Raptor (Heavy)
|
||||
["USAF_F35A_STEALTH",2250,2000,750], // F-35A Lightning II
|
||||
["USAF_F35A",2250,2250,750], // F-35A Lightning II (Heavy)
|
||||
["B_Plane_Fighter_01_F",1500,1750,450], // F/A-181 Black Wasp II
|
||||
["B_Plane_Fighter_01_Stealth_F",1500,1750,450], // F/A-181 Black Wasp II (Stealth)
|
||||
["B_T_VTOL_01_armed_F",750,1500,500], // V-44 X Blackfish (Armed)
|
||||
|
@ -252,6 +268,19 @@ support_vehicles = [
|
|||
["ACE_Box_82mm_Mo_Illum",50,10,0],
|
||||
["ACE_Wheel",10,0,0],
|
||||
["ACE_Track",10,0,0],
|
||||
["USAF_missileCart_W_AGM114",50,150,0], // Missile Cart (AGM-114)
|
||||
["USAF_missileCart_AGMMix",50,150,0], // Missile Cart (AGM-65 Mix)
|
||||
["USAF_missileCart_AGM1",50,150,0], // Missile Cart (AGM-65D)
|
||||
["USAF_missileCart_AGM2",50,150,0], // Missile Cart (AGM-65E)
|
||||
["USAF_missileCart_AGM3",50,150,0], // Missile Cart (AGM-65K)
|
||||
["USAF_missileCart_AA1",50,150,0], // Missile Cart (AIM-9M/AIM-120)
|
||||
["USAF_missileCart_AA2",50,150,0], // Missile Cart (AIM-9X/AIM-120)
|
||||
["USAF_missileCart_GBU12_green",50,150,0], // Missile Cart (GBU12 Green)
|
||||
["USAF_missileCart_GBU12_maritime",50,150,0], // Missile Cart (GBU12 Maritime)
|
||||
["USAF_missileCart_GBU12",50,150,0], // Missile Cart (GBU12)
|
||||
["USAF_missileCart_Gbu31",50,150,0], // Missile Cart (GBU31)
|
||||
["USAF_missileCart_GBU39",50,150,0], // Missile Cart (GBU39)
|
||||
["USAF_missileCart_Mk82",50,150,0], // Missile Cart (Mk82)
|
||||
["B_APC_Tracked_01_CRV_F",500,250,350], // CRV-6e Bobcat
|
||||
["rhsusf_M977A4_REPAIR_BKIT_usarmy_wd",325,0,75], // M977A4 Repair
|
||||
["rhsusf_M978A4_BKIT_usarmy_wd",125,0,275], // M978A4 Fuel
|
||||
|
@ -361,6 +390,14 @@ elite_vehicles = [
|
|||
"B_UAV_02_dynamicLoadout_F", // MQ-4A Greyhawk
|
||||
"B_T_UAV_03_dynamicLoadout_F", // MQ-12 Falcon
|
||||
"B_UAV_05_F", // UCAV Sentinel
|
||||
"USAF_MQ9", // MQ-9 Reaper
|
||||
"USAF_A10", // A-10C Thunderbolt II
|
||||
"USAF_F22", // F-22A Raptor
|
||||
"USAF_F22_EWP_AA", // F-22A Raptor (EWP-AA)
|
||||
"USAF_F22_EWP_AG", // F-22A Raptor (EWP-AG)
|
||||
"USAF_F22_Heavy", // F-22A Raptor (Heavy)
|
||||
"USAF_F35A_STEALTH", // F-35A Lightning II
|
||||
"USAF_F35A", // F-35A Lightning II (Heavy)
|
||||
"RHS_A10", // A-10A (CAS)
|
||||
"FIR_F15C", // F-15C Eagle
|
||||
"FIR_F15D", // F-15D Eagle
|
||||
|
|
|
@ -33,12 +33,19 @@ waitUntil {!isNil "one_eco_done"};
|
|||
waitUntil {one_synchro_done};
|
||||
waitUntil {one_eco_done};
|
||||
|
||||
private _nearfob = [] call F_getNearestFob;
|
||||
private _fobdistance = 9999;
|
||||
private _nearest_sector = [GRLIB_fob_range] call F_getNearestSector;
|
||||
private _prod_sector = [];
|
||||
private _directAccess = (getPlayerUID player) in KP_liberation_commander_actions || {player == ([] call F_getCommander)} || {[] call F_isAdmin};
|
||||
|
||||
while {true} do {
|
||||
|
||||
private _nearfob = [] call F_getNearestFob;
|
||||
private _fobdistance = 9999;
|
||||
private _nearest_sector = [GRLIB_fob_range] call F_getNearestSector;
|
||||
private _prod_sector = [];
|
||||
_nearfob = [] call F_getNearestFob;
|
||||
_fobdistance = 9999;
|
||||
_nearest_sector = [GRLIB_fob_range] call F_getNearestSector;
|
||||
_prod_sector = [];
|
||||
|
||||
{
|
||||
if ((_x select 1) == _nearest_sector) exitWith {_prod_sector = _x};
|
||||
} forEach KP_liberation_production;
|
||||
|
@ -123,7 +130,7 @@ while {true} do {
|
|||
};
|
||||
};
|
||||
|
||||
if (_fobdistance < _distfob && alive player && vehicle player == player && (([ player, 3] call F_fetchPermission) || (player == ([] call F_getCommander) || [] call F_isAdmin))) then {
|
||||
if (_fobdistance < _distfob && alive player && vehicle player == player && (([ player, 3] call F_fetchPermission) || _directAccess)) then {
|
||||
if (_idact_build == -1) then {
|
||||
_idact_build = player addAction ["<t color='#FFFF00'>" + localize "STR_BUILD_ACTION" + "</t> <img size='2' image='res\ui_build.paa'/>","scripts\client\build\open_build_menu.sqf","",-985,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
|
@ -134,7 +141,7 @@ while {true} do {
|
|||
};
|
||||
};
|
||||
|
||||
if ((count _nearfobbox != 0) && (alive player) && (vehicle player == player) && !(surfaceIsWater getpos player) && ((player distance startbase) > 1000) && (([player, 3] call F_fetchPermission) || (player == ([] call F_getCommander) || [] call F_isAdmin)) && !FOB_build_in_progress) then {
|
||||
if ((count _nearfobbox != 0) && (alive player) && (vehicle player == player) && !(surfaceIsWater getpos player) && ((player distance startbase) > 1000) && (([player, 3] call F_fetchPermission) || _directAccess) && !FOB_build_in_progress) then {
|
||||
if (_idact_buildfob == -1) then {
|
||||
_idact_buildfob = player addAction ["<t color='#FFFF00'>" + localize "STR_FOB_ACTION" + "</t> <img size='2' image='res\ui_deployfob.paa'/>","scripts\client\build\do_build_fob.sqf","",-990,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
|
@ -145,7 +152,7 @@ while {true} do {
|
|||
};
|
||||
};
|
||||
|
||||
if (_fobdistance < _distredeploy && alive player && vehicle player == player && (player == ([] call F_getCommander) || [] call F_isAdmin)) then {
|
||||
if (_fobdistance < _distredeploy && alive player && vehicle player == player && _directAccess) then {
|
||||
if (_idact_repackage == -1) then {
|
||||
_idact_repackage = player addAction ["<t color='#FFFF00'>" + localize "STR_FOB_REPACKAGE" + "</t> <img size='2' image='res\ui_deployfob.paa'/>","scripts\client\actions\do_repackage_fob.sqf","",-991,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
|
@ -156,7 +163,7 @@ while {true} do {
|
|||
};
|
||||
};
|
||||
|
||||
if ((count GRLIB_all_fobs > 0) && (GRLIB_endgame == 0) && (_fobdistance < _distredeploy || (player distance startbase) < 200) && alive player && vehicle player == player && (([player, 5] call F_fetchPermission) || (player == ([] call F_getCommander) || [] call F_isAdmin))) then {
|
||||
if ((count GRLIB_all_fobs > 0) && (GRLIB_endgame == 0) && (_fobdistance < _distredeploy || (player distance startbase) < 200) && alive player && vehicle player == player && (([player, 5] call F_fetchPermission) || _directAccess)) then {
|
||||
if (_idact_secondary == -1) then {
|
||||
_idact_secondary = player addAction ["<t color='#FFFF00'>" + localize "STR_SECONDARY_OBJECTIVES" + "</t>","scripts\client\ui\secondary_ui.sqf","",-992,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
|
@ -168,7 +175,7 @@ while {true} do {
|
|||
};
|
||||
|
||||
if ((count _prod_sector) == 12) then {
|
||||
if (alive player && vehicle player == player && ([player, 3] call F_fetchPermission) && ((count (_prod_sector select 3)) == 0)) then {
|
||||
if (alive player && vehicle player == player && ([player, 3] call F_fetchPermission || _directAccess) && ((count (_prod_sector select 3)) == 0)) then {
|
||||
if (_idact_sectorstorage == -1) then {
|
||||
_idact_sectorstorage = player addAction ["<t color='#FFFF00'>" + localize "STR_SECSTORAGEBUILD_ACTION" + "</t>","scripts\client\build\do_sector_build.sqf",[KP_liberation_small_storage_building, _prod_sector],-993,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
|
@ -178,7 +185,7 @@ while {true} do {
|
|||
_idact_sectorstorage = -1;
|
||||
};
|
||||
};
|
||||
if (alive player && vehicle player == player && ([player, 3] call F_fetchPermission) && ((count (_prod_sector select 3)) == 3) && !(_prod_sector select 4)) then {
|
||||
if (alive player && vehicle player == player && ([player, 3] call F_fetchPermission || _directAccess) && ((count (_prod_sector select 3)) == 3) && !(_prod_sector select 4)) then {
|
||||
if (_idact_supplyfacility == -1) then {
|
||||
_idact_supplyfacility = player addAction ["<t color='#FFFF00'>" + localize "STR_SECSUPPLYBUILD_ACTION" + "</t>","scripts\client\build\do_sector_build.sqf",["supply", _prod_sector],-994,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
|
@ -188,7 +195,7 @@ while {true} do {
|
|||
_idact_supplyfacility = -1;
|
||||
};
|
||||
};
|
||||
if (alive player && vehicle player == player && ([player, 3] call F_fetchPermission) && ((count (_prod_sector select 3)) == 3) && !(_prod_sector select 5)) then {
|
||||
if (alive player && vehicle player == player && ([player, 3] call F_fetchPermission || _directAccess) && ((count (_prod_sector select 3)) == 3) && !(_prod_sector select 5)) then {
|
||||
if (_idact_ammofacility == -1) then {
|
||||
_idact_ammofacility = player addAction ["<t color='#FFFF00'>" + localize "STR_SECAMMOBUILD_ACTION" + "</t>","scripts\client\build\do_sector_build.sqf",["ammo", _prod_sector],-995,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
|
@ -198,7 +205,7 @@ while {true} do {
|
|||
_idact_ammofacility = -1;
|
||||
};
|
||||
};
|
||||
if (alive player && vehicle player == player && ([player, 3] call F_fetchPermission) && ((count (_prod_sector select 3)) == 3) && !(_prod_sector select 6)) then {
|
||||
if (alive player && vehicle player == player && ([player, 3] call F_fetchPermission || _directAccess) && ((count (_prod_sector select 3)) == 3) && !(_prod_sector select 6)) then {
|
||||
if (_idact_fuelfacility == -1) then {
|
||||
_idact_fuelfacility = player addAction ["<t color='#FFFF00'>" + localize "STR_SECFUELBUILD_ACTION" + "</t>","scripts\client\build\do_sector_build.sqf",["fuel", _prod_sector],-996,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
|
@ -238,7 +245,7 @@ while {true} do {
|
|||
};
|
||||
};
|
||||
|
||||
if (((_fobdistance < _distfob) || ((count _prod_sector) == 12)) && (player == ([] call F_getCommander) || [] call F_isAdmin) && alive player && vehicle player == player && ((count KP_liberation_production) > 0)) then {
|
||||
if (((_fobdistance < _distfob) || ((count _prod_sector) == 12)) && _directAccess && alive player && vehicle player == player && ((count KP_liberation_production) > 0)) then {
|
||||
if (_idact_production == -1) then {
|
||||
_idact_production = player addAction ["<t color='#FF8000'>" + localize "STR_PRODUCTION_ACTION" + "</t>","scripts\client\commander\open_production.sqf","",-998,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
|
@ -250,7 +257,7 @@ while {true} do {
|
|||
};
|
||||
|
||||
if (KP_liberation_ailogistics) then {
|
||||
if ((_fobdistance < _distfob) && (player == ([] call F_getCommander) || [] call F_isAdmin) && alive player && vehicle player == player && (((count GRLIB_all_fobs) + (count KP_liberation_production)) > 1)) then {
|
||||
if ((_fobdistance < _distfob) && _directAccess && alive player && vehicle player == player && (((count GRLIB_all_fobs) + (count KP_liberation_production)) > 1)) then {
|
||||
if (_idact_logistic == -1) then {
|
||||
_idact_logistic = player addAction ["<t color='#FF8000'>" + localize "STR_LOGISTIC_ACTION" + "</t>","scripts\client\commander\open_logistic.sqf","",-999,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
|
@ -262,7 +269,7 @@ while {true} do {
|
|||
};
|
||||
};
|
||||
|
||||
if ((player == ([] call F_getCommander) || [] call F_isAdmin) && alive player && vehicle player == player && GRLIB_permissions_param) then {
|
||||
if (_directAccess && alive player && vehicle player == player && GRLIB_permissions_param) then {
|
||||
if (_idact_commander == -1) then {
|
||||
_idact_commander = player addAction ["<t color='#FF8000'>" + localize "STR_COMMANDER_ACTION" + "</t> <img size='2' image='\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\modeGroups_ca.paa'/>","scripts\client\commander\open_permissions.sqf","",-1001,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
|
@ -284,7 +291,7 @@ while {true} do {
|
|||
};
|
||||
};
|
||||
|
||||
if (_fobdistance < _distfob && alive player && vehicle player == player && (player == ([] call F_getCommander) || [] call F_isAdmin)) then {
|
||||
if (_fobdistance < _distfob && alive player && vehicle player == player && _directAccess) then {
|
||||
if (_idact_clearance == -1) then {
|
||||
_idact_clearance = player addAction [
|
||||
"<t color='#FFFF00'>" + localize "STR_CLEARANCE_ACTION" + "</t>",
|
||||
|
|
|
@ -29,7 +29,12 @@ while {true} do {
|
|||
((typeOf _x) in KP_liberation_upgrade_buildings) ||
|
||||
((typeOf _x) in KP_liberation_ace_crates)) &&
|
||||
(alive _x) &&
|
||||
((count(attachedObjects _x) == 0) || ((typeOf _x) == "rhsusf_mkvsoc")) &&
|
||||
(
|
||||
// ignore null objects left by Advanced Towing
|
||||
// see https://github.com/sethduda/AdvancedTowing/pull/46
|
||||
(((attachedObjects _x) select {!isNull _X}) isEqualTo [])
|
||||
|| ((typeOf _x) == "rhsusf_mkvsoc")
|
||||
) &&
|
||||
(_x distance startbase > 1000) &&
|
||||
(_x distance ( [] call F_getNearestFob) < GRLIB_fob_range) &&
|
||||
(getObjectType _x >= 8)
|
||||
|
|
|
@ -7,7 +7,7 @@ if (((_this select 3) select 0) == KP_liberation_small_storage_building) then {
|
|||
build_confirmed = 1;
|
||||
build_invalid = 0;
|
||||
KP_vector = true;
|
||||
|
||||
|
||||
_sectorpos = getMarkerPos ([GRLIB_fob_range] call F_getNearestSector);
|
||||
|
||||
_idactcancel = player addAction ["<t color='#B0FF00'>" + localize "STR_CANCEL" + "</t> <img size='2' image='res\ui_cancel.paa'/>",{build_confirmed = 3;},"",-725,false,true,"","build_confirmed == 1"];
|
||||
|
@ -36,7 +36,7 @@ if (((_this select 3) select 0) == KP_liberation_small_storage_building) then {
|
|||
if ((surfaceIsWater _truepos) || (surfaceIsWater getpos player) || ((_truepos distance _sectorpos) > GRLIB_fob_range)) then {
|
||||
_building setpos _ghost_spot;
|
||||
build_invalid = 1;
|
||||
|
||||
|
||||
if(((surfaceIsWater _truepos) || (surfaceIsWater getpos player))) then {
|
||||
GRLIB_ui_notif = localize "STR_BUILD_ERROR_WATER";
|
||||
};
|
||||
|
@ -54,12 +54,18 @@ if (((_this select 3) select 0) == KP_liberation_small_storage_building) then {
|
|||
_building setVectorUp surfaceNormal position _building;
|
||||
};
|
||||
|
||||
if (build_invalid == 1) then {
|
||||
GRLIB_ui_notif = "";
|
||||
};
|
||||
|
||||
build_invalid = 0;
|
||||
};
|
||||
|
||||
sleep 0.05;
|
||||
};
|
||||
|
||||
|
||||
GRLIB_ui_notif = "";
|
||||
|
||||
if (!alive player || build_confirmed == 3) then {
|
||||
deleteVehicle _building;
|
||||
};
|
||||
|
@ -90,7 +96,7 @@ if (((_this select 3) select 0) == KP_liberation_small_storage_building) then {
|
|||
player removeAction _idactcancel;
|
||||
player removeAction _idactplace;
|
||||
player removeAction _idactvector;
|
||||
|
||||
|
||||
remoteExec ["check_sector_ress_remote_call",2];
|
||||
|
||||
build_confirmed = 0;
|
||||
|
|
|
@ -26,6 +26,24 @@ if (KP_liberation_arsenalUsePreset) then {
|
|||
KP_liberation_allowed_items append GRLIB_arsenal_weapons;
|
||||
};
|
||||
|
||||
// Support for CBA disposable launchers, https://github.com/CBATeam/CBA_A3/wiki/Disposable-Launchers
|
||||
if (isClass (configFile >> "cfgPatches" >> "cba_disposable")) then {
|
||||
private _disposableLaunchers = ["CBA_FakeLauncherMagazine"];
|
||||
{
|
||||
private _loadedLauncher = cba_disposable_LoadedLaunchers getVariable _x;
|
||||
if (!isNil "_loadedLauncher") then {
|
||||
_disposableLaunchers pushBack _loadedLauncher;
|
||||
};
|
||||
|
||||
private _normalLauncher = cba_disposable_NormalLaunchers getVariable _x;
|
||||
if (!isNil "_normalLauncher") then {
|
||||
_normalLauncher params ["_loadedLauncher"];
|
||||
_disposableLaunchers pushBack _loadedLauncher;
|
||||
};
|
||||
} forEach KP_liberation_allowed_items;
|
||||
KP_liberation_allowed_items append _disposableLaunchers;
|
||||
};
|
||||
|
||||
if ((count GRLIB_arsenal_magazines) == 0) then {
|
||||
if ((count blacklisted_from_arsenal) == 0) then {
|
||||
_virtualMagazines = _virtualCargo select 1;
|
||||
|
|
|
@ -1,54 +1,53 @@
|
|||
_grp = _this select 0;
|
||||
_infantry = false;
|
||||
params [
|
||||
["_grp", grpNull, [grpNull]]
|
||||
];
|
||||
|
||||
if ( count _this == 2 ) then {
|
||||
_infantry = true;
|
||||
if (isNull _grp) exitWith {};
|
||||
if (isNil "reset_battlegroups_ai") then {reset_battlegroups_ai = false};
|
||||
|
||||
sleep (5 + (random 5));
|
||||
|
||||
private _objPos = ([getPos (leader _grp)] call F_getNearestBluforObjective) select 0;
|
||||
|
||||
[_objPos] remoteExec ["remote_call_incoming"];
|
||||
|
||||
private _startpos = getPos (leader _grp);
|
||||
|
||||
private _waypoint = [];
|
||||
while {((getPos (leader _grp)) distance _startpos) < 100} do {
|
||||
|
||||
while {!((waypoints _grp) isEqualTo [])} do {deleteWaypoint ((waypoints _grp) select 0);};
|
||||
{_x doFollow leader _grp} forEach units _grp;
|
||||
|
||||
_startpos = getPos (leader _grp);
|
||||
|
||||
_waypoint = _grp addWaypoint [_objPos, 100];
|
||||
_waypoint setWaypointType "MOVE";
|
||||
_waypoint setWaypointSpeed "NORMAL";
|
||||
_waypoint setWaypointBehaviour "SAFE";
|
||||
_waypoint setWaypointCombatMode "YELLOW";
|
||||
_waypoint setWaypointCompletionRadius 30;
|
||||
|
||||
_waypoint = _grp addWaypoint [_objPos, 100];
|
||||
_waypoint setWaypointType "SAD";
|
||||
_waypoint = _grp addWaypoint [_objPos, 100];
|
||||
_waypoint setWaypointType "SAD";
|
||||
_waypoint = _grp addWaypoint [_objPos, 100];
|
||||
_waypoint setWaypointType "SAD";
|
||||
_waypoint = _grp addWaypoint [_objPos, 100];
|
||||
_waypoint setWaypointType "CYCLE";
|
||||
|
||||
sleep 90;
|
||||
};
|
||||
|
||||
if (isNil "reset_battlegroups_ai" ) then { reset_battlegroups_ai = false };
|
||||
waitUntil {
|
||||
sleep 5;
|
||||
(((units _grp) select {alive _x}) isEqualTo []) || reset_battlegroups_ai
|
||||
};
|
||||
|
||||
sleep (3 + (random 3));
|
||||
sleep (5 + (random 5));
|
||||
reset_battlegroups_ai = false;
|
||||
|
||||
while { ( count units _grp != 0 ) && ( GRLIB_endgame == 0 ) } do {
|
||||
|
||||
sleep (5 + (random 5));
|
||||
|
||||
private _objectivepos = ([getpos (leader _grp)] call F_getNearestBluforObjective) select 0;
|
||||
|
||||
[_objectivepos] remoteExec ["remote_call_incoming"];
|
||||
|
||||
private _startpos = getpos (leader _grp);
|
||||
|
||||
while { ((getpos (leader _grp)) distance _startpos) < 100 } do {
|
||||
|
||||
while {(count (waypoints _grp)) != 0} do {deleteWaypoint ((waypoints _grp) select 0);};
|
||||
{_x doFollow leader _grp} foreach units _grp;
|
||||
|
||||
_startpos = getpos (leader _grp);
|
||||
|
||||
private _waypoint = _grp addWaypoint [_objectivepos, 100];
|
||||
_waypoint setWaypointType "MOVE";
|
||||
_waypoint setWaypointSpeed "NORMAL";
|
||||
_waypoint setWaypointBehaviour "SAFE";
|
||||
_waypoint setWaypointCombatMode "YELLOW";
|
||||
_waypoint setWaypointCompletionRadius 30;
|
||||
|
||||
_waypoint = _grp addWaypoint [_objectivepos, 100];
|
||||
_waypoint setWaypointType "SAD";
|
||||
_waypoint = _grp addWaypoint [_objectivepos, 100];
|
||||
_waypoint setWaypointType "SAD";
|
||||
_waypoint = _grp addWaypoint [_objectivepos, 100];
|
||||
_waypoint setWaypointType "SAD";
|
||||
_waypoint = _grp addWaypoint [_objectivepos, 100];
|
||||
_waypoint setWaypointType "CYCLE";
|
||||
|
||||
sleep 180;
|
||||
};
|
||||
|
||||
waitUntil {
|
||||
sleep 5;
|
||||
( { alive _x } count (units _grp) == 0) || reset_battlegroups_ai;
|
||||
};
|
||||
sleep (5 + (random 5));
|
||||
reset_battlegroups_ai = false;
|
||||
};
|
||||
if (!((units _grp) isEqualTo []) && (GRLIB_endgame == 0)) then {
|
||||
[_grp] spawn battlegroup_ai;
|
||||
};
|
||||
|
|
|
@ -1,65 +1,74 @@
|
|||
_troup_transport = _this select 0;
|
||||
_transport_group = (group (driver _troup_transport));
|
||||
_start_pos = getpos _troup_transport;
|
||||
_dat_objective = ([getpos _troup_transport] call F_getNearestBluforObjective) select 0;
|
||||
_unload_distance = 1000;
|
||||
params [
|
||||
["_transVeh", objNull, [objNull]]
|
||||
];
|
||||
|
||||
if (isNull _transVeh) exitWith {};
|
||||
sleep 1;
|
||||
_initial_crewcount = count crew _troup_transport;
|
||||
|
||||
waitUntil { sleep 0.2; !(alive _troup_transport) || !(alive (driver _troup_transport)) || (((_troup_transport distance _dat_objective) < _unload_distance) && (!(surfaceIsWater (getpos _troup_transport)))) };
|
||||
private _transGrp = (group (driver _transVeh));
|
||||
private _start_pos = getpos _transVeh;
|
||||
private _objPos = ([getpos _transVeh] call F_getNearestBluforObjective) select 0;
|
||||
private _unload_distance = 500;
|
||||
private _crewcount = count crew _transVeh;
|
||||
|
||||
if ((alive _troup_transport) && (alive (driver _troup_transport))) then {
|
||||
_troupgrp = createGroup [GRLIB_side_enemy, true];
|
||||
waitUntil {
|
||||
sleep 0.2;
|
||||
!(alive _transVeh) ||
|
||||
!(alive (driver _transVeh)) ||
|
||||
(((_transVeh distance _objPos) < _unload_distance) && !(surfaceIsWater (getpos _transVeh)))
|
||||
};
|
||||
|
||||
while {(count (waypoints _troupgrp)) != 0} do {deleteWaypoint ((waypoints _troupgrp) select 0);};
|
||||
if ((alive _transVeh) && (alive (driver _transVeh))) then {
|
||||
_infGrp = createGroup [GRLIB_side_enemy, true];
|
||||
|
||||
{
|
||||
_x createUnit [_start_pos, _troupgrp,"this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]", 0.5, "private"];
|
||||
} foreach (["army"] call F_getAdaptiveSquadComp);
|
||||
{
|
||||
[_x, _start_pos, _infGrp, "PRIVATE", 0.5] call F_createManagedUnit;
|
||||
} foreach (["army"] call F_getAdaptiveSquadComp);
|
||||
|
||||
{ _x moveInCargo _troup_transport } foreach (units _troupgrp);
|
||||
while {(count (waypoints _troupgrp)) != 0} do {deleteWaypoint ((waypoints _troupgrp) select 0);};
|
||||
{_x moveInCargo _transVeh} forEach (units _infGrp);
|
||||
|
||||
sleep 3;
|
||||
while {(count (waypoints _infGrp)) != 0} do {deleteWaypoint ((waypoints _infGrp) select 0);};
|
||||
|
||||
_transport_waypoint = _transport_group addWaypoint [getpos _troup_transport, 0,0];
|
||||
_transport_waypoint setWaypointType "TR UNLOAD";
|
||||
_transport_waypoint setWaypointCompletionRadius 200;
|
||||
sleep 3;
|
||||
|
||||
_troops_waypoint = _troupgrp addWaypoint [getpos _troup_transport, 0];
|
||||
_troops_waypoint setWaypointType "GETOUT";
|
||||
_troops_waypoint setWaypointCompletionRadius 200;
|
||||
private _transVehWp = _transGrp addWaypoint [getpos _transVeh, 0,0];
|
||||
_transVehWp setWaypointType "TR UNLOAD";
|
||||
_transVehWp setWaypointCompletionRadius 200;
|
||||
|
||||
_troops_waypoint synchronizeWaypoint [_transport_waypoint];
|
||||
private _infWp = _infGrp addWaypoint [getpos _transVeh, 0];
|
||||
_infWp setWaypointType "GETOUT";
|
||||
_infWp setWaypointCompletionRadius 200;
|
||||
|
||||
{ unassignVehicle _troup_transport } forEach (units _troupgrp);
|
||||
_troupgrp leaveVehicle _troup_transport;
|
||||
(units _troupgrp) allowGetIn false;
|
||||
_infWp synchronizeWaypoint [_transVehWp];
|
||||
|
||||
_troops_waypoint_2 = _troupgrp addWaypoint [getpos _troup_transport, 250];
|
||||
_troops_waypoint_2 setWaypointType "MOVE";
|
||||
_troops_waypoint_2 setWaypointCompletionRadius 5;
|
||||
{unassignVehicle _transVeh} forEach (units _infGrp);
|
||||
_infGrp leaveVehicle _transVeh;
|
||||
(units _infGrp) allowGetIn false;
|
||||
|
||||
waitUntil { sleep 0.3; _initial_crewcount >= count crew _troup_transport };
|
||||
private _infWp_2 = _infGrp addWaypoint [getpos _transVeh, 250];
|
||||
_infWp_2 setWaypointType "MOVE";
|
||||
_infWp_2 setWaypointCompletionRadius 5;
|
||||
|
||||
sleep 5;
|
||||
waitUntil {sleep 0.5; _crewcount >= count crew _transVeh};
|
||||
|
||||
while {(count (waypoints _transport_group)) != 0} do {deleteWaypoint ((waypoints _transport_group) select 0);};
|
||||
sleep 5;
|
||||
|
||||
_waypoint2 = _transport_group addWaypoint [_dat_objective, 100];
|
||||
_waypoint2 setWaypointType "SAD";
|
||||
_waypoint2 setWaypointSpeed "NORMAL";
|
||||
_waypoint2 setWaypointBehaviour "COMBAT";
|
||||
_waypoint2 setWaypointCombatMode "RED";
|
||||
_waypoint2 setWaypointCompletionRadius 30;
|
||||
while {(count (waypoints _transGrp)) != 0} do {deleteWaypoint ((waypoints _transGrp) select 0);};
|
||||
|
||||
_waypoint2 = _transport_group addWaypoint [_dat_objective, 100];
|
||||
_waypoint2 setWaypointType "SAD";
|
||||
_transVehWp = _transGrp addWaypoint [_objPos, 100];
|
||||
_transVehWp setWaypointType "SAD";
|
||||
_transVehWp setWaypointSpeed "NORMAL";
|
||||
_transVehWp setWaypointBehaviour "COMBAT";
|
||||
_transVehWp setWaypointCombatMode "RED";
|
||||
_transVehWp setWaypointCompletionRadius 30;
|
||||
|
||||
_waypoint2 = _transport_group addWaypoint [_dat_objective, 100];
|
||||
_waypoint2 setWaypointType "CYCLE";
|
||||
_transVehWp = _transGrp addWaypoint [_objPos, 100];
|
||||
_transVehWp setWaypointType "SAD";
|
||||
|
||||
sleep 10;
|
||||
_transVehWp = _transGrp addWaypoint [_objPos, 100];
|
||||
_transVehWp setWaypointType "CYCLE";
|
||||
|
||||
[_troupgrp, true] spawn battlegroup_ai;
|
||||
};
|
||||
sleep 10;
|
||||
|
||||
[_infGrp] spawn battlegroup_ai;
|
||||
};
|
||||
|
|
|
@ -1,22 +1,29 @@
|
|||
private [ "_sleeptime", "_countplayers" ];
|
||||
private ["_sleeptime"];
|
||||
|
||||
sleep ( 900 / GRLIB_csat_aggressivity );
|
||||
uiSleep (900 / GRLIB_csat_aggressivity);
|
||||
while {GRLIB_csat_aggressivity > 0.9 && GRLIB_endgame == 0} do {
|
||||
|
||||
while { GRLIB_csat_aggressivity > 0.9 && GRLIB_endgame == 0 } do {
|
||||
_sleeptime = (2100 + (random 2100)) / (([] call F_adaptiveOpforFactor) * GRLIB_csat_aggressivity);
|
||||
|
||||
_sleeptime = (2100 + (random 2100)) / (([] call F_adaptiveOpforFactor) * GRLIB_csat_aggressivity);
|
||||
if (combat_readiness >= 80) then {_sleeptime = _sleeptime * 0.75};
|
||||
if (combat_readiness >= 90) then {_sleeptime = _sleeptime * 0.75};
|
||||
if (combat_readiness >= 95) then {_sleeptime = _sleeptime * 0.75};
|
||||
|
||||
if ( combat_readiness >= 80 ) then { _sleeptime = _sleeptime * 0.75 };
|
||||
if ( combat_readiness >= 90 ) then { _sleeptime = _sleeptime * 0.75 };
|
||||
if ( combat_readiness >= 95 ) then { _sleeptime = _sleeptime * 0.75 };
|
||||
uiSleep _sleeptime;
|
||||
|
||||
sleep _sleeptime;
|
||||
if (!isNil "GRLIB_last_battlegroup_time") then {
|
||||
waitUntil {
|
||||
uiSleep 5;
|
||||
diag_tickTime > (GRLIB_last_battlegroup_time + (2100 / GRLIB_csat_aggressivity))
|
||||
};
|
||||
};
|
||||
|
||||
if ( !isNil "GRLIB_last_battlegroup_time" ) then {
|
||||
waitUntil { sleep 5; time > ( GRLIB_last_battlegroup_time + ( 2100 / GRLIB_csat_aggressivity ) ) };
|
||||
};
|
||||
|
||||
if ((count (allPlayers - entities "HeadlessClient_F") >= (10 / GRLIB_csat_aggressivity)) && ([] call F_opforCap < GRLIB_battlegroup_cap) && (combat_readiness >= 70) && (diag_fps > 15.0)) then {
|
||||
[] spawn spawn_battlegroup;
|
||||
};
|
||||
if (
|
||||
(count (allPlayers - entities "HeadlessClient_F") >= (10 / GRLIB_csat_aggressivity)) &&
|
||||
([] call F_opforCap < GRLIB_battlegroup_cap) &&
|
||||
(combat_readiness >= 70) &&
|
||||
(diag_fps > 15.0)
|
||||
) then {
|
||||
[] spawn spawn_battlegroup;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,74 +1,78 @@
|
|||
if ( GRLIB_endgame == 1 ) exitWith {};
|
||||
params [
|
||||
["_spawn_marker", "", [""]]
|
||||
];
|
||||
|
||||
private [ "_bg_groups", "_target_size", "_vehicle_pool" ];
|
||||
_bg_groups = [];
|
||||
if (GRLIB_endgame == 1) exitWith {};
|
||||
|
||||
last_battlegroup_size = 0;
|
||||
_spawn_marker = "";
|
||||
if ( count _this == 1 ) then {
|
||||
_spawn_marker = [ 2000, 10000, false, _this select 0 ] call F_findOpforSpawnPoint;
|
||||
if !(_spawn_marker isEqualTo "") then {
|
||||
_spawn_marker = [2000, 10000, false, _spawn_marker] call F_findOpforSpawnPoint;
|
||||
} else {
|
||||
_spawn_marker = [ 2000, 10000, false ] call F_findOpforSpawnPoint;
|
||||
_spawn_marker = [2000, 10000, false] call F_findOpforSpawnPoint;
|
||||
};
|
||||
|
||||
if !(_spawn_marker isEqualTo "") then {
|
||||
|
||||
_vehicle_pool = opfor_battlegroup_vehicles;
|
||||
if ( combat_readiness < 50 ) then {
|
||||
_vehicle_pool = opfor_battlegroup_vehicles_low_intensity;
|
||||
};
|
||||
GRLIB_last_battlegroup_time = diag_tickTime;
|
||||
|
||||
if ( _spawn_marker != "" ) then {
|
||||
private _bg_groups = [];
|
||||
private _battlegroup_size = 0;
|
||||
private _vehicle_pool = [opfor_battlegroup_vehicles, opfor_battlegroup_vehicles_low_intensity] select (combat_readiness < 50);
|
||||
private _selected_opfor_battlegroup = [];
|
||||
|
||||
GRLIB_last_battlegroup_time = time;
|
||||
private _target_size = GRLIB_battlegroup_size * ([] call F_adaptiveOpforFactor) * (sqrt GRLIB_csat_aggressivity);
|
||||
if (_target_size >= 16) then {_target_size = 16;};
|
||||
if (combat_readiness < 60) then {_target_size = round (_target_size * 0.65);};
|
||||
|
||||
_selected_opfor_battlegroup = [];
|
||||
_target_size = GRLIB_battlegroup_size * ([] call F_adaptiveOpforFactor) * (sqrt GRLIB_csat_aggressivity);
|
||||
if ( _target_size >= 16 ) then { _target_size = 16; };
|
||||
if ( combat_readiness < 60 ) then { _target_size = round (_target_size * 0.65) };
|
||||
while { count _selected_opfor_battlegroup < _target_size } do {
|
||||
_selected_opfor_battlegroup pushback (selectRandom _vehicle_pool);
|
||||
};
|
||||
while {count _selected_opfor_battlegroup < _target_size} do {
|
||||
_selected_opfor_battlegroup pushback (selectRandom _vehicle_pool);
|
||||
};
|
||||
|
||||
[_spawn_marker] remoteExec ["remote_call_battlegroup"];
|
||||
[_spawn_marker] remoteExec ["remote_call_battlegroup"];
|
||||
|
||||
if (worldName in KP_liberation_battlegroup_clearance) then {
|
||||
[markerpos _spawn_marker, 15] call F_createClearance;
|
||||
};
|
||||
|
||||
{
|
||||
_nextgrp = createGroup [GRLIB_side_enemy, true];
|
||||
_vehicle = [markerpos _spawn_marker, _x] call F_libSpawnVehicle;
|
||||
sleep 0.5;
|
||||
(crew _vehicle) joinSilent _nextgrp;
|
||||
[_nextgrp] spawn battlegroup_ai;
|
||||
_bg_groups pushback _nextgrp;
|
||||
if ( ( _x in opfor_troup_transports ) && ( [] call F_opforCap < GRLIB_battlegroup_cap ) ) then {
|
||||
[_vehicle] spawn troup_transport;
|
||||
};
|
||||
last_battlegroup_size = last_battlegroup_size + 1;
|
||||
} foreach _selected_opfor_battlegroup;
|
||||
private ["_nextgrp", "_vehicle"];
|
||||
{
|
||||
_nextgrp = createGroup [GRLIB_side_enemy, true];
|
||||
_vehicle = [markerpos _spawn_marker, _x] call F_libSpawnVehicle;
|
||||
|
||||
if ( GRLIB_csat_aggressivity > 0.9 ) then {
|
||||
[([markerpos _spawn_marker] call F_getNearestBluforObjective) select 0] spawn spawn_air;
|
||||
};
|
||||
sleep 0.5;
|
||||
|
||||
sleep 5;
|
||||
(crew _vehicle) joinSilent _nextgrp;
|
||||
[_nextgrp] spawn battlegroup_ai;
|
||||
_bg_groups pushback _nextgrp;
|
||||
|
||||
combat_readiness = combat_readiness - (round ((last_battlegroup_size / 2) + (random (last_battlegroup_size / 2))));
|
||||
if ( combat_readiness < 0 ) then { combat_readiness = 0 };
|
||||
if ((_x in opfor_troup_transports) && ([] call F_opforCap < GRLIB_battlegroup_cap)) then {
|
||||
if (_vehicle isKindOf "Air") then {
|
||||
[([markerPos _spawn_marker] call F_getNearestBluforObjective) select 0, _vehicle] spawn send_paratroopers;
|
||||
} else {
|
||||
[_vehicle] spawn troup_transport;
|
||||
};
|
||||
};
|
||||
|
||||
stats_hostile_battlegroups = stats_hostile_battlegroups + 1;
|
||||
_battlegroup_size = _battlegroup_size + 1;
|
||||
} forEach _selected_opfor_battlegroup;
|
||||
|
||||
{
|
||||
if ( local _x ) then {
|
||||
_headless_client = [] call F_lessLoadedHC;
|
||||
if ( !isNull _headless_client ) then {
|
||||
_x setGroupOwner ( owner _headless_client );
|
||||
};
|
||||
};
|
||||
sleep 3;
|
||||
if (GRLIB_csat_aggressivity > 0.9) then {
|
||||
[([markerpos _spawn_marker] call F_getNearestBluforObjective) select 0] spawn spawn_air;
|
||||
};
|
||||
|
||||
} foreach _bg_groups;
|
||||
sleep 5;
|
||||
|
||||
combat_readiness = combat_readiness - (round ((_battlegroup_size / 2) + (random (_battlegroup_size / 2))));
|
||||
if (combat_readiness < 0) then {combat_readiness = 0};
|
||||
|
||||
stats_hostile_battlegroups = stats_hostile_battlegroups + 1;
|
||||
|
||||
{
|
||||
if (local _x) then {
|
||||
_headless_client = [] call F_lessLoadedHC;
|
||||
if (!isNull _headless_client) then {
|
||||
_x setGroupOwner (owner _headless_client);
|
||||
};
|
||||
};
|
||||
sleep 3;
|
||||
} forEach _bg_groups;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -20,10 +20,9 @@ while {true} do {
|
|||
private _house = (nearestObjects [[((getMarkerPos _sector select 0) - 100 + (random 200)), ((getMarkerPos _sector select 1) - 100 + (random 200))],["House", "Building"], 100]) select 0;
|
||||
|
||||
private _grp = createGroup [GRLIB_side_civilian, true];
|
||||
private _informant = _grp createUnit [(selectRandom civilians), getMarkerPos _sector, [], 0, "NONE"];
|
||||
private _informant = [selectRandom civilians, getMarkerPos _sector, _grp] call F_createManagedUnit;
|
||||
private _waiting_time = KP_liberation_civinfo_duration;
|
||||
|
||||
_informant addMPEventHandler ["MPKilled", {_this spawn kill_manager}];
|
||||
_informant setPos (selectRandom (_house buildingPos -1));
|
||||
_informant setUnitPos "UP";
|
||||
sleep 1;
|
||||
|
|
|
@ -14,9 +14,10 @@ _veh setDir (getDir _roadObj);
|
|||
} forEach ((getAllHitPointsDamage _veh) select 0);
|
||||
|
||||
private _grp = createGroup [GRLIB_side_enemy, true];
|
||||
private _hvt = _grp createUnit [opfor_officer, getPos _roadObj, [], 30, "NONE"];
|
||||
private _hvt = [opfor_officer, getPos _roadObj, _grp, "CAPTAIN", 30] call F_createManagedUnit;
|
||||
|
||||
for "_i" from 1 to 4 do {
|
||||
(selectRandom militia_squad) createUnit [_grp, _grp, "this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]"];
|
||||
[selectRandom militia_squad, _grp, _grp] call F_createManagedUnit;
|
||||
sleep 0.1;
|
||||
};
|
||||
|
||||
|
@ -46,7 +47,7 @@ private _marker_pos = [((((getPos _roadObj) select 0) + 200) - random 400),((((g
|
|||
private _time_remaining = KP_liberation_civinfo_task_duration;
|
||||
|
||||
while {(alive _hvt) && _time_remaining > 0} do {
|
||||
uiSleep 1;
|
||||
uiSleep 1;
|
||||
private _player_near = false;
|
||||
{
|
||||
if (((_x distance _veh) < 1000) && (alive _x)) exitWith {_player_near = true};
|
||||
|
|
|
@ -0,0 +1,159 @@
|
|||
KP_liberation_cr_ign_buildings = [
|
||||
"Land_A_Crane_02a",
|
||||
"Land_popelnice",
|
||||
"Land_fuel_tank_small",
|
||||
"Land_A_Crane_02b",
|
||||
"Land_A_FuelStation_Shed",
|
||||
"Land_BoatSmall_1",
|
||||
"Land_BoatSmall_2a",
|
||||
"Land_BoatSmall_2b",
|
||||
"Land_Brana02nodoor",
|
||||
"Land_Company3_2",
|
||||
"Land_D_Mlyn_Vys",
|
||||
"Land_D_Pec_Vez1",
|
||||
"Land_D_Pec_Vez2",
|
||||
"Land_D_Vez_Mlyn",
|
||||
"Land_Farm_WTower",
|
||||
"Land_Gate_Wood1_5",
|
||||
"Land_Gate_wood2_5",
|
||||
"Land_Ind_BoardsPack1",
|
||||
"Land_Ind_BoardsPack2",
|
||||
"Land_Ind_Expedice_1",
|
||||
"Land_Ind_Expedice_2",
|
||||
"Land_Ind_Expedice_3",
|
||||
"Land_Ind_IlluminantTower",
|
||||
"Land_Ind_Mlyn_01",
|
||||
"Land_Ind_Mlyn_02",
|
||||
"Land_Ind_Mlyn_03",
|
||||
"Land_Ind_Mlyn_04",
|
||||
"Land_Ind_Mlyn_D1",
|
||||
"Land_Ind_Mlyn_D2",
|
||||
"Land_Ind_SawMillPen",
|
||||
"Land_Ind_Shed_01_end",
|
||||
"Land_Ind_Shed_01_main",
|
||||
"Land_Ind_Shed_02_end",
|
||||
"Land_Ind_Shed_02_main",
|
||||
"Land_Ind_SiloVelke_most",
|
||||
"Land_Ind_TankSmall",
|
||||
"Land_Ind_TankSmall2",
|
||||
"Land_Ind_Timbers",
|
||||
"Land_IndPipe1_stair",
|
||||
"Land_IndPipe2_big_18",
|
||||
"Land_IndPipe2_big_18ladder",
|
||||
"Land_IndPipe2_big_9",
|
||||
"Land_IndPipe2_big_ground1",
|
||||
"Land_IndPipe2_big_ground2",
|
||||
"Land_IndPipe2_big_support",
|
||||
"Land_IndPipe2_bigBuild1_R",
|
||||
"Land_IndPipe2_bigBuild2_L",
|
||||
"Land_IndPipe2_bigL_L",
|
||||
"Land_IndPipe2_bigL_R",
|
||||
"Land_IndPipe2_Small_9",
|
||||
"Land_IndPipe2_Small_ground1",
|
||||
"Land_IndPipe2_Small_ground2",
|
||||
"Land_IndPipe2_SmallBuild1_R",
|
||||
"Land_IndPipe2_SmallBuild2_R",
|
||||
"Land_IndPipe2_SmallL_L",
|
||||
"Land_IndPipe2_SmallL_R",
|
||||
"Land_IndPipe2_T_L",
|
||||
"Land_IndPipe2_T_R",
|
||||
"Land_KBud",
|
||||
"Land_Kontejner",
|
||||
"Land_Lampa_ind",
|
||||
"Land_Lampa_ind_zebr",
|
||||
"Land_Lampa_sidl",
|
||||
"Land_Lampa_sidl_2",
|
||||
"Land_Lampa_sidl_3",
|
||||
"Land_loco_742_blue",
|
||||
"Land_Misc_Cargo1Ao",
|
||||
"Land_Misc_Cargo1B",
|
||||
"Land_Misc_Cargo1Bo",
|
||||
"Land_Misc_Cargo1C",
|
||||
"Land_Misc_Cargo1D",
|
||||
"Land_Misc_Cargo2B",
|
||||
"Land_Misc_Cargo2C",
|
||||
"Land_Misc_Cargo2D",
|
||||
"Land_Misc_Cargo2E",
|
||||
"Land_Misc_deerstand",
|
||||
"Land_Misc_GContainer_Big",
|
||||
"Land_Misc_Scaffolding",
|
||||
"Land_Molo_drevo_bs",
|
||||
"Land_Molo_drevo_end",
|
||||
"Land_Nasypka",
|
||||
"Land_Nav_Boathouse_PierT",
|
||||
"land_nav_pier_c",
|
||||
"land_nav_pier_c_270",
|
||||
"land_nav_pier_c_90",
|
||||
"land_nav_pier_c_big",
|
||||
"land_nav_pier_C_L10",
|
||||
"land_nav_pier_C_R10",
|
||||
"land_nav_pier_C_R30",
|
||||
"land_nav_pier_c_t15",
|
||||
"land_nav_pier_c_t20",
|
||||
"land_nav_pier_c2",
|
||||
"land_nav_pier_c2_end",
|
||||
"land_nav_pier_F_17",
|
||||
"land_nav_pier_F_23",
|
||||
"Land_nav_pier_m_2",
|
||||
"land_nav_pier_m_end",
|
||||
"Land_Plot_green_branka",
|
||||
"Land_Plot_green_vrata",
|
||||
"Land_Plot_rust_branka",
|
||||
"Land_Plot_rust_vrata",
|
||||
"Land_PowLines_ConcL",
|
||||
"Land_PowLines_WoodL",
|
||||
"Land_Psi_bouda",
|
||||
"Land_Pumpa",
|
||||
"Land_Rail_Semafor",
|
||||
"Land_Rail_Zavora",
|
||||
"Land_ruin_wall",
|
||||
"Land_seno_balik",
|
||||
"Land_Shed_M02",
|
||||
"Land_sign_altar",
|
||||
"Land_sign_balota",
|
||||
"Land_Sign_Bar_RU",
|
||||
"Land_sign_berezino",
|
||||
"Land_Sign_BES",
|
||||
"Land_sign_chernogorsk",
|
||||
"Land_sign_elektrozavodsk",
|
||||
"Land_sign_kamenka",
|
||||
"Land_sign_kamyshovo",
|
||||
"Land_sign_komarovo",
|
||||
"Land_sign_solnichnyi",
|
||||
"Land_SignB_Gov",
|
||||
"Land_SignB_GovPolice",
|
||||
"Land_SignB_GovSchool",
|
||||
"Land_SignB_GovSign",
|
||||
"Land_SignB_Hotel_CZ2",
|
||||
"Land_SignB_PostOffice",
|
||||
"Land_SignB_Pub_CZ1",
|
||||
"Land_SignB_Pub_CZ2",
|
||||
"Land_SignB_Pub_CZ3",
|
||||
"Land_SignB_Pub_RU1",
|
||||
"Land_SignB_Pub_RU2",
|
||||
"Land_SignB_Pub_RU3",
|
||||
"Land_sloup_vn",
|
||||
"Land_sloup_vn_drat",
|
||||
"Land_sloup_vn_drat_d",
|
||||
"Land_sloup_vn_dratZ",
|
||||
"Land_Stoplight02",
|
||||
"Land_Tec",
|
||||
"Land_Trafostanica_velka",
|
||||
"Land_Trafostanica_velka_draty",
|
||||
"Land_Vez",
|
||||
"Land_Vez_Pec",
|
||||
"Land_wagon_box",
|
||||
"Land_Wall_CBrk_5_D",
|
||||
"Land_Wall_CGry_5_D",
|
||||
"Land_Wall_Gate_Ind1_L",
|
||||
"Land_Wall_Gate_Ind1_R",
|
||||
"Land_Wall_Gate_Ind2A_L",
|
||||
"Land_Wall_Gate_Ind2A_R",
|
||||
"Land_Wall_Gate_Ind2B_L",
|
||||
"Land_Wall_Gate_Ind2B_R",
|
||||
"Land_Wall_Gate_Ind2Rail_L",
|
||||
"Land_Wall_Gate_Ind2Rail_R",
|
||||
"Land_Wall_Gate_Kolchoz",
|
||||
"Land_Wall_Gate_Village",
|
||||
"Land_Wall_Gate_Wood1"
|
||||
];
|
|
@ -2,6 +2,7 @@ if (KP_liberation_civrep_debug > 0) then {diag_log format ["[KP LIBERATION] [CIV
|
|||
|
||||
switch (worldName) do {
|
||||
case "Chernarus": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\chernarus.sqf"};
|
||||
case "cup_chernarus_A3": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\chernarus2020.sqf"};
|
||||
case "Enoch": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\enoch.sqf"};
|
||||
case "gm_weferlingen_summer": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\gm_weferlingen_summer.sqf"};
|
||||
case "gm_weferlingen_winter": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\gm_weferlingen_winter.sqf"};
|
||||
|
|
|
@ -14,8 +14,7 @@ for "_i" from 1 to _count do {
|
|||
while {(surfaceIsWater _pos) || ((count ([_pos, 30] call F_getNearbyPlayers)) > 0)} do {
|
||||
_pos = (markerPos _sector) getPos [(50 + (random 200)), (random 360)];
|
||||
};
|
||||
private _civ = _grp createUnit [(selectRandom civilians), _pos, [], 0, "NONE"];
|
||||
_civ addMPEventHandler ["MPKilled", {_this spawn kill_manager}];
|
||||
private _civ = [selectRandom civilians, _pos, _grp] call F_createManagedUnit;
|
||||
_civ setDir (random 360);
|
||||
{_civ disableAI _x} forEach ["ANIM", "TARGET", "AUTOTARGET", "MOVE"];
|
||||
removeAllItems _civ;
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
_save_interval = 20;
|
||||
|
||||
while { GRLIB_endgame == 0 } do {
|
||||
sleep _save_interval;
|
||||
doSaveTrigger = true;
|
||||
while {GRLIB_endgame == 0} do {
|
||||
sleep KP_liberation_save_interval;
|
||||
doSaveTrigger = true;
|
||||
};
|
||||
|
|
|
@ -34,6 +34,8 @@ private _resourceStorages = [];
|
|||
private _stats = [];
|
||||
// Collection array for the enemy weights
|
||||
private _weights = [];
|
||||
// All mines around FOBs
|
||||
private _allMines = [];
|
||||
|
||||
/*
|
||||
--- Globals ---
|
||||
|
@ -168,6 +170,7 @@ if (!isNil "greuh_liberation_savegame") then {
|
|||
KP_liberation_production = greuh_liberation_savegame select 16;
|
||||
KP_liberation_production_markers = greuh_liberation_savegame select 17;
|
||||
resources_intel = greuh_liberation_savegame select 18;
|
||||
_allMines = greuh_liberation_savegame param [19, []];
|
||||
|
||||
stats_ammo_produced = _stats select 0;
|
||||
stats_ammo_spent = _stats select 1;
|
||||
|
@ -372,6 +375,22 @@ if (!isNil "greuh_liberation_savegame") then {
|
|||
|
||||
if (KP_liberation_savegame_debug > 0) then {diag_log "[KP LIBERATION] [SAVE] Saved buildings placed";};
|
||||
|
||||
{
|
||||
_x params ["_minePos", "_dirAndUp", "_class", "_known"];
|
||||
|
||||
private _mine = createVehicle [_class, _minePos, [], 0];
|
||||
_mine setPosWorld _minePos;
|
||||
_mine setVectorDirAndUp _dirAndUp;
|
||||
|
||||
// reveal mine to player side if it was detected
|
||||
if (_known) then {
|
||||
GRLIB_side_friendly revealMine _mine;
|
||||
};
|
||||
|
||||
} forEach _allMines;
|
||||
|
||||
if (KP_liberation_savegame_debug > 0) then {diag_log "[KP LIBERATION] [SAVE] Saved mines placed";};
|
||||
|
||||
// Spawn saved resource storages and their content
|
||||
{
|
||||
_x params ["_class", "_pos", "_vecDir", "_vecUp", "_supply", "_ammo", "_fuel"];
|
||||
|
@ -380,7 +399,7 @@ if (!isNil "greuh_liberation_savegame") then {
|
|||
if (_class in _classnamesToSave) then {
|
||||
|
||||
// Create object without damage handling and simulation
|
||||
private _object = createVehicle [_class, _pos, [], 0, "CAN_COLLIDE"];;
|
||||
private _object = createVehicle [_class, _pos, [], 0, "CAN_COLLIDE"];
|
||||
_object allowdamage false;
|
||||
_object enableSimulation false;
|
||||
|
||||
|
@ -443,7 +462,7 @@ if (!isNil "greuh_liberation_savegame") then {
|
|||
_x params ["_spawnPos", "_units"];
|
||||
private _grp = createGroup [GRLIB_side_friendly, true];
|
||||
{
|
||||
_x createUnit [[_spawnPos, _grp] select (_forEachIndex > 0), _grp, 'this addMPEventHandler ["MPKilled", {_this spawn kill_manager}]'];
|
||||
[_x, [_spawnPos, _grp] select (_forEachIndex > 0), _grp] call F_createManagedUnit;
|
||||
} forEach _units;
|
||||
} forEach _aiGroups;
|
||||
} else {
|
||||
|
@ -455,7 +474,7 @@ if (!isNil "greuh_liberation_savegame") then {
|
|||
private _unit = _x;
|
||||
private _pos = [(_unit select 1) select 0, (_unit select 1) select 1, ((_unit select 1) select 2) + 0.2];
|
||||
private _dir = _unit select 2;
|
||||
(_unit select 0) createUnit [ _pos, _grp, 'this addMPEventHandler ["MPKilled", {_this spawn kill_manager}]'];
|
||||
[(_unit select 0), _pos, _grp] call F_createManagedUnit;
|
||||
private _nextobj = ((units _grp) select ((count (units _grp)) - 1));
|
||||
_nextobj setDir _dir;
|
||||
_nextobj setPosATL _pos;
|
||||
|
@ -532,6 +551,7 @@ while {true} do {
|
|||
|
||||
private _allObjects = [];
|
||||
private _allStorages = [];
|
||||
private _allMines = [];
|
||||
|
||||
// Get all blufor groups
|
||||
private _allBlueGroups = allGroups select {
|
||||
|
@ -565,6 +585,15 @@ while {true} do {
|
|||
// Add to save array
|
||||
_aiGroups pushBack [getPosATL (leader _x), (_grpUnits apply {typeOf _x})];
|
||||
} forEach (_allBlueGroups select {(_fobPos distance2D (leader _x)) < (GRLIB_fob_range * 2)});
|
||||
|
||||
// Save all mines around FOB
|
||||
private _fobMines = allMines inAreaArray [_fobPos, GRLIB_fob_range * 2, GRLIB_fob_range * 2];
|
||||
_allMines append (_fobMines apply {[
|
||||
getPosWorld _x,
|
||||
[vectorDirVisual _x, vectorUpVisual _x],
|
||||
typeOf _x,
|
||||
_x mineDetectedBy GRLIB_side_friendly
|
||||
]});
|
||||
} forEach GRLIB_all_fobs;
|
||||
|
||||
// Save all fetched objects
|
||||
|
@ -572,7 +601,7 @@ while {true} do {
|
|||
// Position data
|
||||
private _savedpos = getPosWorld _x;
|
||||
private _savedvecdir = vectorDirVisual _x;
|
||||
private _savedvecup = vectorUpVisual _x;;
|
||||
private _savedvecup = vectorUpVisual _x;
|
||||
private _class = typeOf _x;
|
||||
private _hascrew = false;
|
||||
|
||||
|
@ -592,9 +621,9 @@ while {true} do {
|
|||
// Save all storages and resources
|
||||
{
|
||||
// Position data
|
||||
private _savedpos = getPosWorld _x;;
|
||||
private _savedpos = getPosWorld _x;
|
||||
private _savedvecdir = vectorDirVisual _x;
|
||||
private _savedvecup = vectorUpVisual _x;;
|
||||
private _savedvecup = vectorUpVisual _x;
|
||||
private _class = typeof _x;
|
||||
|
||||
// Resource variables
|
||||
|
@ -686,7 +715,8 @@ while {true} do {
|
|||
KP_liberation_logistics,
|
||||
KP_liberation_production,
|
||||
KP_liberation_production_markers,
|
||||
resources_intel
|
||||
resources_intel,
|
||||
_allMines
|
||||
];
|
||||
|
||||
// Write data in the severs profileNamespace
|
||||
|
|
|
@ -1,18 +1,17 @@
|
|||
if (!isDedicated) exitWith {};
|
||||
|
||||
private ["_serverDuration","_timeStart","_timeSinceStart","_shutdownSuccess","_timeUntilRestart","_30minspassed","_15minspassed","_5minspassed","_60secondspassed"];
|
||||
|
||||
_serverDuration = (KP_liberation_restart * 60 * 60);
|
||||
|
||||
diag_log format ["[KP LIBERATION] [RESTART] Restart Timer Set To %1", _serverDuration];
|
||||
|
||||
_30minspassed = false;
|
||||
_15minspassed = false;
|
||||
_5minspassed = false;
|
||||
_60secondspassed = false;
|
||||
private _30minspassed = false;
|
||||
private _15minspassed = false;
|
||||
private _5minspassed = false;
|
||||
private _60secondspassed = false;
|
||||
|
||||
_timeStart = diag_tickTime;
|
||||
private _timeStart = diag_tickTime;
|
||||
|
||||
private ["_timeSinceStart","_timeUntilRestart"];
|
||||
while{true} do
|
||||
{
|
||||
_timeSinceStart = diag_tickTime - _timeStart;
|
||||
|
@ -57,8 +56,8 @@ while{true} do
|
|||
diag_log "[KP LIBERATION] [RESTART] Restart timeout elapsed, attempting server shutdown.";
|
||||
sleep 5;
|
||||
|
||||
_myPass = call compile preprocessFileLineNumbers "\userconfig\restart\myPass.hpp";
|
||||
_shutdownSuccess = _myPass serverCommand "#restart";//you can change with #restartserver if you want to restart the server process(Windows Dedicated Only).
|
||||
private _myPass = call compile preprocessFileLineNumbers "\userconfig\restart\myPass.hpp";
|
||||
private _shutdownSuccess = _myPass serverCommand (["#restart", "#restartserver"] select ((productVersion select 6) isEqualTo "Windows"));
|
||||
|
||||
if(_shutdownSuccess) then
|
||||
{
|
||||
|
|
|
@ -26,7 +26,7 @@ while { GRLIB_endgame == 0 } do {
|
|||
if ( random 100 < 33) then {
|
||||
_civnumber = 1 + (floor (random 2));
|
||||
while { count units _grp < _civnumber } do {
|
||||
(selectRandom civilians) createUnit [ markerpos _spawnsector, _grp, "this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]", 0.5, "private"];
|
||||
[selectRandom civilians, markerPos _spawnsector, _grp, "PRIVATE", 0.5] call F_createManagedUnit;
|
||||
};
|
||||
_grpspeed = "LIMITED";
|
||||
} else {
|
||||
|
@ -39,7 +39,7 @@ while { GRLIB_endgame == 0 } do {
|
|||
|
||||
_spawnpos = getpos _nearestroad;
|
||||
|
||||
(selectRandom civilians) createUnit [_spawnpos, _grp, "this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]", 0.5, "private"];
|
||||
[selectRandom civilians, _spawnpos, _grp, "PRIVATE", 0.5] call F_createManagedUnit;
|
||||
_civveh = (selectRandom civilian_vehicles) createVehicle _spawnpos;
|
||||
_civveh setpos _spawnpos;
|
||||
_civveh addMPEventHandler ['MPKilled', {_this spawn kill_manager}];
|
||||
|
@ -117,4 +117,4 @@ while { GRLIB_endgame == 0 } do {
|
|||
};
|
||||
|
||||
sleep 150 + (random (150));
|
||||
};
|
||||
};
|
||||
|
|
|
@ -30,7 +30,7 @@ while { GRLIB_endgame == 0 } do {
|
|||
_grp = createGroup [GRLIB_side_enemy, true];
|
||||
_squad = ["army"] call F_getAdaptiveSquadComp;
|
||||
{
|
||||
_x createUnit [_sector_spawn_pos, _grp,"this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]", 0.5, "private"];
|
||||
[_x, _sector_spawn_pos, _grp, "PRIVATE", 0.5] call F_createManagedUnit;
|
||||
} foreach _squad;
|
||||
} else {
|
||||
|
||||
|
@ -80,4 +80,4 @@ while { GRLIB_endgame == 0 } do {
|
|||
sleep (600.0 / GRLIB_difficulty_modifier);
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,27 +1,42 @@
|
|||
params ["_targetsector"];
|
||||
private _targetpos = getMarkerPos _targetsector;
|
||||
private _spawnsector = ([sectors_airspawn, [_targetpos], {(markerpos _x) distance _input0}, "ASCEND"] call BIS_fnc_sortBy) select 0;
|
||||
params [
|
||||
["_targetsector", "", ["",[]]],
|
||||
["_chopper_type", objNull, [objNull]]
|
||||
];
|
||||
|
||||
private _chopper_type = selectRandom opfor_choppers;
|
||||
if (_targetsector isEqualTo "") exitWith {};
|
||||
|
||||
while {!(_chopper_type in opfor_troup_transports)} do {
|
||||
_chopper_type = selectRandom opfor_choppers;
|
||||
private _targetpos = _targetsector;
|
||||
if (_targetpos isEqualType "") then {
|
||||
_targetpos = getMarkerPos _targetsector;
|
||||
};
|
||||
private _spawnsector = ([sectors_airspawn, [_targetpos], {(markerpos _x) distance _input0}, "ASCEND"] call BIS_fnc_sortBy) select 0;
|
||||
private _newvehicle = objNull;
|
||||
private _pilot_group = grpNull;
|
||||
if (isNull _chopper_type) then {
|
||||
_chopper_type = selectRandom opfor_choppers;
|
||||
|
||||
private _newvehicle = createVehicle [_chopper_type, markerpos _spawnsector, [], 0, "FLY"];
|
||||
createVehicleCrew _newvehicle;
|
||||
sleep 0.1;
|
||||
while {!(_chopper_type in opfor_troup_transports)} do {
|
||||
_chopper_type = selectRandom opfor_choppers;
|
||||
};
|
||||
|
||||
private _pilot_group = createGroup [GRLIB_side_enemy, true];
|
||||
(crew _newvehicle) joinSilent _pilot_group;
|
||||
_newvehicle = createVehicle [_chopper_type, markerpos _spawnsector, [], 0, "FLY"];
|
||||
createVehicleCrew _newvehicle;
|
||||
sleep 0.1;
|
||||
|
||||
_pilot_group = createGroup [GRLIB_side_enemy, true];
|
||||
(crew _newvehicle) joinSilent _pilot_group;
|
||||
|
||||
_newvehicle addMPEventHandler ["MPKilled", {_this spawn kill_manager}];
|
||||
{_x addMPEventHandler ["MPKilled", {_this spawn kill_manager}];} forEach (crew _newvehicle);
|
||||
} else {
|
||||
_newvehicle = _chopper_type;
|
||||
_pilot_group = group _newvehicle;
|
||||
};
|
||||
|
||||
private _para_group = createGroup [GRLIB_side_enemy, true];
|
||||
|
||||
_newvehicle addMPEventHandler ["MPKilled", {_this spawn kill_manager}];
|
||||
{_x addMPEventHandler ["MPKilled", {_this spawn kill_manager}];} forEach (crew _newvehicle);
|
||||
|
||||
while {(count (units _para_group)) < 8} do {
|
||||
opfor_paratrooper createUnit [getmarkerpos _spawnsector, _para_group, "this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]"];
|
||||
[opfor_paratrooper, markerPos _spawnsector, _para_group] call F_createManagedUnit;
|
||||
};
|
||||
|
||||
{removeBackpack _x; _x addBackPack "B_parachute"; _x moveInCargo _newvehicle;} forEach (units _para_group);
|
||||
|
@ -72,15 +87,15 @@ _pilot_group setCurrentWaypoint [_para_group, 1];
|
|||
_newvehicle flyInHeight 100;
|
||||
|
||||
waitUntil {sleep 1;
|
||||
!(alive _newvehicle) || (damage _newvehicle > 0.2 ) || (_newvehicle distance _targetpos < 400 )
|
||||
!(alive _newvehicle) || (damage _newvehicle > 0.2 ) || (_newvehicle distance _targetpos < 400)
|
||||
};
|
||||
|
||||
_newvehicle flyInHeight 100;
|
||||
|
||||
{
|
||||
unassignVehicle _x;
|
||||
moveout _x;
|
||||
sleep 0.5;
|
||||
unassignVehicle _x;
|
||||
moveout _x;
|
||||
sleep 0.5;
|
||||
} forEach (units _para_group);
|
||||
|
||||
_newvehicle flyInHeight 100;
|
||||
|
|
|
@ -76,7 +76,9 @@ _waypoint setWaypointType "CYCLE";
|
|||
_waypoint setWaypointCompletionRadius 50;
|
||||
|
||||
private _troops_group = createGroup [GRLIB_side_enemy, true];
|
||||
{_x createUnit [_spawnpos, _troops_group,"this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]", 0.5, "private"];} foreach (["army"] call F_getAdaptiveSquadComp);
|
||||
{
|
||||
[_x, _spawnpos, _troops_group, "PRIVATE", 0.5] call F_createManagedUnit;
|
||||
} foreach (["army"] call F_getAdaptiveSquadComp);
|
||||
{_x moveInCargo _troop_vehicle} foreach (units _troops_group);
|
||||
|
||||
private _convoy_marker = createMarkerLocal [ format [ "convoymarker%1", round time], getpos _transport_vehicle ];
|
||||
|
|
|
@ -85,10 +85,10 @@ while {(count _idxselected) < _defenders_amount && (count _idxselected) < (count
|
|||
];
|
||||
|
||||
_nextpos = [((_base_position select 0) + (_nextpos select 0)), ((_base_position select 1) + (_nextpos select 1)), (_nextpos select 2)];
|
||||
_nextclass createUnit [_nextpos, _grpdefenders, "nextdefender = this; this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]", 0.5, "private"];
|
||||
nextdefender setdir _nextdir;
|
||||
nextdefender setpos _nextpos;
|
||||
[nextdefender] spawn building_defence_ai;
|
||||
private _nextDefender = [_nextclass, _nextpos, _grpdefenders, "PRIVATE", 0.5] call F_createManagedUnit;
|
||||
_nextDefender setdir _nextdir;
|
||||
_nextDefender setpos _nextpos;
|
||||
[_nextDefender] spawn building_defence_ai;
|
||||
} forEach _idxselected;
|
||||
|
||||
private _sentryMax = ceil ((3 + (floor (random 4))) * (sqrt (GRLIB_unitcap)));
|
||||
|
@ -96,7 +96,7 @@ private _sentryMax = ceil ((3 + (floor (random 4))) * (sqrt (GRLIB_unitcap)));
|
|||
_grpsentry = createGroup [GRLIB_side_enemy, true];
|
||||
_base_sentry_pos = [(_base_position select 0) + ((_base_corners select 0) select 0), (_base_position select 1) + ((_base_corners select 0) select 1), 0];
|
||||
for [{_idx=0}, {_idx < _sentryMax}, {_idx=_idx+1}] do {
|
||||
opfor_sentry createUnit [_base_sentry_pos, _grpsentry,"this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]", 0.5, "private"];
|
||||
[opfor_sentry, _base_sentry_pos, _grpsentry, "PRIVATE", 0.5] call F_createManagedUnit;
|
||||
};
|
||||
|
||||
while {(count (waypoints _grpsentry)) != 0} do {deleteWaypoint ((waypoints _grpsentry) select 0);};
|
||||
|
|
|
@ -17,10 +17,13 @@ _helofire setpos (getpos _helowreck);
|
|||
|
||||
private _pilotsGrp = createGroup [GRLIB_side_enemy, true];
|
||||
private _pilotsPos = (getpos _helowreck) getPos [25, random 360];
|
||||
pilot_classname createUnit [ _pilotsPos, _pilotsGrp,"this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]", 0.5, "private"];
|
||||
|
||||
[pilot_classname, _pilotsPos, _pilotsGrp, "PRIVATE", 0.5] call F_createManagedUnit;
|
||||
sleep 0.2;
|
||||
pilot_classname createUnit [_pilotsPos getPos [1, random 360], _pilotsGrp,"this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]", 0.5, "private"];
|
||||
|
||||
[pilot_classname, _pilotsPos getPos [1, random 360], _pilotsGrp, "PRIVATE", 0.5] call F_createManagedUnit;
|
||||
sleep 2;
|
||||
|
||||
private _pilotUnits = units _pilotsGrp;
|
||||
{
|
||||
[ _x, true ] spawn prisonner_ai;
|
||||
|
@ -36,7 +39,9 @@ private _patrolcorners = [
|
|||
[ (getpos _helowreck select 0) - 40, (getpos _helowreck select 1) + 40, 0 ]
|
||||
];
|
||||
|
||||
{ _x createUnit [ _patrolcorners select 0, _grppatrol,"this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]", 0.5, "private"]; } foreach (["army"] call F_getAdaptiveSquadComp);
|
||||
{
|
||||
[_x, _patrolcorners select 0, _grppatrol, "PRIVATE", 0.5] call F_createManagedUnit;
|
||||
} foreach (["army"] call F_getAdaptiveSquadComp);
|
||||
|
||||
while {(count (waypoints _grppatrol)) != 0} do {deleteWaypoint ((waypoints _grppatrol) select 0);};
|
||||
{
|
||||
|
@ -56,7 +61,7 @@ private _grpsentry = createGroup [GRLIB_side_enemy, true];
|
|||
private _nbsentry = 2 + (floor (random 3));
|
||||
|
||||
for [ {_idx=0},{_idx < _nbsentry},{_idx=_idx+1} ] do {
|
||||
opfor_sentry createUnit [_pilotsPos getPos [1, random 360], _grpsentry,"this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]", 0.5, "private"];
|
||||
[opfor_sentry, _pilotsPos getPos [1, random 360], _grpsentry, "PRIVATE", 0.5] call F_createManagedUnit;
|
||||
};
|
||||
|
||||
(leader _grpsentry) setDir (random 360);
|
||||
|
|
|
@ -8,7 +8,9 @@ if ( _ownership != GRLIB_side_enemy ) exitWith {};
|
|||
|
||||
if ( GRLIB_blufor_defenders ) then {
|
||||
_grp = creategroup [GRLIB_side_friendly, true];
|
||||
{ _x createUnit [ _thispos, _grp,'this addMPEventHandler ["MPKilled", {_this spawn kill_manager}]']; } foreach blufor_squad_inf;
|
||||
{
|
||||
[_x, _thispos, _grp] call F_createManagedUnit;
|
||||
} foreach blufor_squad_inf;
|
||||
sleep 3;
|
||||
_grp setBehaviour "COMBAT";
|
||||
};
|
||||
|
|
|
@ -13,7 +13,9 @@ if ( _sector in sectors_military ) then {
|
|||
|
||||
if ( GRLIB_blufor_defenders ) then {
|
||||
_grp = creategroup [GRLIB_side_friendly, true];
|
||||
{ _x createUnit [ markerpos _sector, _grp,'this addMPEventHandler ["MPKilled", {_this spawn kill_manager}]']; } foreach _squad_type;
|
||||
{
|
||||
[_x, markerPos _sector, _grp] call F_createManagedUnit;
|
||||
} foreach _squad_type;
|
||||
sleep 3;
|
||||
_grp setBehaviour "COMBAT";
|
||||
};
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
|
||||
/*
|
||||
Methods
|
||||
*/
|
||||
|
||||
// Get parameter
|
||||
#define GET_PARAM(outVar, paramName, paramDefault) outVar = [paramName,paramDefault] call F_getSaveableParam;\
|
||||
publicVariable #outVar
|
||||
#define GET_PARAM(outVar, paramName, paramDefault) outVar = [paramName,paramDefault] call F_getSaveableParam;\
|
||||
publicVariable #outVar;\
|
||||
diag_log format ["[KP LIBERATION] [PARAM] %1: %2", paramName, outVar]
|
||||
|
||||
// Get parameter and convert to bool
|
||||
#define GET_PARAM_BOOL(outVar, paramName, paramDefault) outVar = [paramName,paramDefault] call F_getSaveableParam;\
|
||||
if (outVar == 1) then {outVar = true} else {outVar = false};\
|
||||
publicVariable #outVar
|
||||
#define GET_PARAM_BOOL(outVar, paramName, paramDefault) outVar = [paramName,paramDefault] call F_getSaveableParam;\
|
||||
if (outVar == 1) then {outVar = true} else {outVar = false};\
|
||||
publicVariable #outVar;\
|
||||
diag_log format ["[KP LIBERATION] [PARAM] %1: %2", paramName, outVar]
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#include "defines.hpp"
|
||||
|
||||
// Check if ACE is running
|
||||
if (isClass (configfile >> "CfgPatches" >> "ace_common")) then {KP_liberation_ace = true; diag_log "[KP LIBERATION] ACE detected. Deactivating resupply and weather scripts from Liberation."} else {KP_liberation_ace = false};
|
||||
if (isClass (configfile >> "CfgPatches" >> "ace_common")) then {KP_liberation_ace = true; diag_log "[KP LIBERATION] ACE detected. Deactivating resupply script from Liberation."} else {KP_liberation_ace = false};
|
||||
|
||||
/* Not saveable params */
|
||||
GRLIB_param_wipe_savegame_1 = ["WipeSave1",0] call bis_fnc_getParamValue;
|
||||
|
@ -19,11 +19,26 @@ KP_load_params = ["LoadSaveParams", 1] call BIS_fnc_getParamValue;
|
|||
|
||||
if(isServer) then {
|
||||
/* Saveable params */
|
||||
diag_log format ["[KP LIBERATION] [PARAM] ----- Server starts parameter initialization - time: %1", diag_ticktime];
|
||||
switch (KP_load_params) do {
|
||||
case 0: {
|
||||
diag_log "[KP LIBERATION] [PARAM] Save/Load is set to SAVE";
|
||||
};
|
||||
case 1: {
|
||||
diag_log "[KP LIBERATION] [PARAM] Save/Load is set to LOAD";
|
||||
};
|
||||
case 2: {
|
||||
diag_log "[KP LIBERATION] [PARAM] Save/Load is set to USE SELECTED";
|
||||
};
|
||||
default {
|
||||
diag_log "[KP LIBERATION] [PARAM] Save/Load has no valid value";
|
||||
};
|
||||
};
|
||||
|
||||
// Deactivate BI Revive when ACE Medical is running
|
||||
if (isClass (configfile >> "CfgPatches" >> "ace_medical")) then {
|
||||
bis_reviveParam_mode = 0; publicVariable "bis_reviveParam_mode";
|
||||
diag_log "[KP LIBERATION] ACE Medical detected. Deactivating BI Revive System."
|
||||
diag_log "[KP LIBERATION] [PARAM] ACE Medical detected. Deactivating BI Revive System."
|
||||
} else {
|
||||
GET_PARAM(bis_reviveParam_mode, "ReviveMode", 1);
|
||||
};
|
||||
|
@ -40,7 +55,7 @@ if(isServer) then {
|
|||
GET_PARAM(GRLIB_time_factor, "DayDuration", 12);
|
||||
GET_PARAM(GRLIB_resources_multiplier, "ResourcesMultiplier", 3);
|
||||
GET_PARAM(GRLIB_unitcap, "Unitcap", 2);
|
||||
GET_PARAM(GRLIB_civilian_activity, "civilians", 1);
|
||||
GET_PARAM(GRLIB_civilian_activity, "Civilians", 1);
|
||||
GET_PARAM(GRLIB_halo_param, "HaloJump", 1);
|
||||
GET_PARAM(GRLIB_cleanup_vehicles, "CleanupVehicles", 2);
|
||||
GET_PARAM(GRLIB_csat_aggressivity, "Aggressivity", 2);
|
||||
|
@ -86,7 +101,7 @@ if(isServer) then {
|
|||
KP_serverParamsFetched = true;
|
||||
publicVariable "KP_serverParamsFetched";
|
||||
|
||||
diag_log "[KP LIBERATION] [PARAM] Server finished parameters initialization.";
|
||||
diag_log format ["[KP LIBERATION] [PARAM] ----- Server finished parameter initialization - time: %1", diag_ticktime];
|
||||
};
|
||||
|
||||
// Fix for not working float values in mission params
|
||||
|
|
|
@ -9,7 +9,7 @@ if ( count crew _veh > 0 ) then {
|
|||
|
||||
_grp = createGroup [GRLIB_side_friendly, true];
|
||||
while { count units _grp < 3 } do {
|
||||
crewman_classname createUnit [ getPos _veh, _grp, 'this addMPEventHandler ["MPKilled", {_this spawn kill_manager}] '];
|
||||
[crewman_classname, getPos _veh, _grp] call F_createManagedUnit;
|
||||
};
|
||||
((units _grp) select 0) moveInDriver _veh;
|
||||
((units _grp) select 1) moveInGunner _veh;
|
||||
|
@ -18,4 +18,4 @@ if ( count crew _veh > 0 ) then {
|
|||
{ if ( vehicle _x == _x ) then { deleteVehicle _x }; } foreach (units _grp);
|
||||
};
|
||||
(group ((crew _veh) select 0)) setBehaviour "SAFE";
|
||||
};
|
||||
};
|
||||
|
|
|
@ -2,7 +2,7 @@ private _respawn_trucks_unsorted = vehicles select {
|
|||
(typeof _x == Respawn_truck_typename || typeof _x == huron_typename ) &&
|
||||
_x distance2d startbase > 500 &&
|
||||
!surfaceIsWater (getpos _x) &&
|
||||
isTouchingGround _x &&
|
||||
(isTouchingGround _x || {5 > ((getPos _x) select 2)}) &&
|
||||
alive _x &&
|
||||
speed _x < 5
|
||||
};
|
||||
|
|
|
@ -18,7 +18,26 @@
|
|||
|
||||
params [["_object", objNull, [objNull]]];
|
||||
|
||||
private _elements = KPLIB_objectInits select {(toLower (typeOf _object)) in ((_x select 0) apply {toLower _x})};
|
||||
private _elements = KPLIB_objectInitsCache getVariable typeOf _object;
|
||||
|
||||
// Find and cache matching objectInits
|
||||
if (isNil "_elements") then {
|
||||
_elements = KPLIB_objectInits select {
|
||||
_x params ["_classes", "", ["_inheritance", false]];
|
||||
|
||||
if (_inheritance) then {
|
||||
{
|
||||
if (_object isKindOf _x) exitWith {true};
|
||||
false
|
||||
} forEach _classes // return
|
||||
} else {
|
||||
// return
|
||||
(toLower (typeOf _object)) in (_classes apply {toLower _x})
|
||||
};
|
||||
};
|
||||
|
||||
KPLIB_objectInitsCache setVariable [typeOf _object, _elements];
|
||||
};
|
||||
|
||||
if (_elements isEqualTo []) exitWith {
|
||||
false
|
||||
|
|
|
@ -33,4 +33,7 @@ clearItemCargoGlobal _crate;
|
|||
|
||||
if(KP_liberation_ace) then {[_crate, true, [0, 1.5, 0], 0] remoteExec ["ace_dragging_fnc_setCarryable"];};
|
||||
|
||||
// Process KP object init
|
||||
[_crate] call F_addObjectInit;
|
||||
|
||||
_crate
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
/*
|
||||
F_createManagedUnit
|
||||
|
||||
File: F_kp_createManagedUnit.sqf
|
||||
Author: veteran29 - https://github.com/veteran29
|
||||
Date: 2019-10-04
|
||||
Last Update: 2019-10-04
|
||||
|
||||
Description:
|
||||
Creates unit managed by kill tracker.
|
||||
|
||||
Parameter(s):
|
||||
0: STRING - Type of unit. (Default "")
|
||||
1: ARRAY|OBJECT|GROUP - Where to spawn. (Default [0,0,0])
|
||||
2: GROUP - Group to add the unit to. (Default objNull)
|
||||
3: STRING - Unit rank. (Default "PRIVATE")
|
||||
4: NUMBER - Placement radius. (Default 0)
|
||||
|
||||
Example:
|
||||
|
||||
|
||||
Returns:
|
||||
OBJECT - Created unit
|
||||
*/
|
||||
params [
|
||||
["_type", "", [""]],
|
||||
["_spawnPos", [0,0,0], [[], objNull, grpNull], [2,3]],
|
||||
["_group", grpNull, [grpNull]],
|
||||
["_rank", "PRIVATE", [""]],
|
||||
["_placement", 0, [0]]
|
||||
];
|
||||
|
||||
private "_unit";
|
||||
isNil {
|
||||
// Create temp group, as we need to let the unit join the "correct side group".
|
||||
// If we use the "correct side group" for the createUnit, the group would switch to the side of the unit written in the config.
|
||||
private _groupTemp = createGroup [CIVILIAN, true];
|
||||
|
||||
_unit = _groupTemp createUnit [_type, _spawnPos, [], _placement, "FORM"];
|
||||
_unit addMPEventHandler ["MPKilled", {_this spawn kill_manager}];
|
||||
_unit setRank _rank;
|
||||
|
||||
// Join to target group to preserve Side
|
||||
[_unit] joinSilent _group;
|
||||
deleteGroup _groupTemp;
|
||||
|
||||
// Process KP object init
|
||||
[_unit] call F_addObjectInit;
|
||||
};
|
||||
|
||||
_unit // return
|
|
@ -26,8 +26,8 @@ private _vests = missionNamespace getVariable ("KP_liberation_guerilla_vests_" +
|
|||
private _headgear = missionNamespace getVariable ("KP_liberation_guerilla_headgear_" + str _tier);
|
||||
|
||||
while {(count (units _grp) < _amount)} do {
|
||||
private _unit = _grp createUnit [(selectRandom KP_liberation_guerilla_units), _pos, [], 5, "NONE"];
|
||||
_unit addMPEventHandler ["MPKilled", {_this spawn kill_manager}];
|
||||
private _unit = [selectRandom KP_liberation_guerilla_units, _pos, _grp, "PRIVATE", 5] call F_createManagedUnit;
|
||||
|
||||
private _weapon = selectRandom _weapons;
|
||||
|
||||
removeAllWeapons _unit;
|
||||
|
|
|
@ -3,7 +3,7 @@ params ["_vehicle"];
|
|||
private _grp = createGroup [GRLIB_side_enemy, true];
|
||||
private _vehcrew = [];
|
||||
while {count units _grp < 3} do {
|
||||
(selectRandom militia_squad) createUnit [getpos _vehicle, _grp,"this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]"];
|
||||
[selectRandom militia_squad, getPos _vehicle, _grp] call F_createManagedUnit;
|
||||
};
|
||||
((units _grp) select 0) moveInDriver _vehicle;
|
||||
((units _grp) select 1) moveInGunner _vehicle;
|
||||
|
|
|
@ -25,9 +25,8 @@ while {count _position_indexes < count _squadtospawn} do {
|
|||
private _grp = createGroup [GRLIB_side_enemy, true];
|
||||
private _idxposit = 0;
|
||||
{
|
||||
_x createUnit [_sectorpos, _grp];
|
||||
private _nextunit = (units _grp) select ((count (units _grp)) -1);
|
||||
_nextunit addMPEventHandler ["MPKilled", {_this spawn kill_manager}];
|
||||
private _nextunit = [_x, _sectorpos, _grp] call F_createManagedUnit;
|
||||
|
||||
_nextunit setdir (random 360);
|
||||
_nextunit setpos (_buildingpositions select (_position_indexes select _idxposit));
|
||||
[_nextunit, _sector] spawn building_defence_ai;
|
||||
|
|
|
@ -16,8 +16,8 @@ _nbcivs = _nbcivs * (sqrt (GRLIB_unitcap));
|
|||
while {_idx < _nbcivs} do {
|
||||
private _spawnpos = [(((_sectorpos select 0) + (75 * _spread)) - (random (150 * _spread))),(((_sectorpos select 1) + (75 * _spread)) - (random (150 * _spread))),0];
|
||||
private _grp = createGroup [GRLIB_side_civilian, true];
|
||||
(civilians select (floor (random (count civilians)))) createUnit [_spawnpos, _grp,"this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]"];
|
||||
private _nextciv = ((units _grp) select 0);
|
||||
|
||||
private _nextciv = [selectRandom civilians, _spawnpos, _grp] call F_createManagedUnit;
|
||||
_createdcivs pushBack _nextciv;
|
||||
[_grp] call add_civ_waypoints;
|
||||
_idx = _idx + 1;
|
||||
|
|
|
@ -9,13 +9,14 @@ if (count _allposts > 0) then {
|
|||
{
|
||||
private _building_positions = [_x] call BIS_fnc_buildingPositions;
|
||||
private _unitclasspost = opfor_marksman;
|
||||
nextunit_post = objNull;
|
||||
|
||||
if (random 100 > 60) then {
|
||||
_unitclasspost = opfor_machinegunner;
|
||||
};
|
||||
_unitclasspost createUnit [_squadpos, _grp, "nextunit_post = this; this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]"];
|
||||
nextunit_post setdir (180 + (getdir _x));
|
||||
nextunit_post setpos (_building_positions select 1);
|
||||
|
||||
private _nextunit_post = [_unitclasspost, _squadpos, _grp] call F_createManagedUnit;
|
||||
_nextunit_post setdir (180 + (getdir _x));
|
||||
_nextunit_post setpos (_building_positions select 1);
|
||||
|
||||
} forEach _allposts;
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ private _grp = createGroup [GRLIB_side_enemy, true];
|
|||
|
||||
{
|
||||
if ((count (units _grp)) < _corrected_amount) then {
|
||||
_x createUnit [_spawnpos, _grp, "this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]"];
|
||||
[_x, _spawnpos, _grp] call F_createManagedUnit;
|
||||
};
|
||||
sleep 0.1;
|
||||
} forEach _squadies_to_spawn;
|
||||
|
|
|
@ -57,6 +57,7 @@ F_cr_ace_action = compileFinal preprocessFileLineNumbers "scripts\shared\functio
|
|||
F_getResistanceTier = compileFinal preprocessFileLineNumbers "scripts\shared\functions\F_kp_getResistanceTier.sqf";
|
||||
F_spawnGuerillaGroup = compileFinal preprocessFileLineNumbers "scripts\shared\functions\F_kp_spawnGuerillaGroup.sqf";
|
||||
F_createCrate = compileFinal preprocessFileLineNumbers "scripts\shared\functions\F_kp_createCrate.sqf";
|
||||
F_createManagedUnit = compileFinal preprocessFileLineNumbers "scripts\shared\functions\F_kp_createManagedUnit.sqf";
|
||||
F_isClassUAV = compileFinal preprocessFileLineNumbers "scripts\shared\functions\F_kp_isClassUAV.sqf";
|
||||
F_getWeaponComponents = compileFinal preprocessFileLineNumbers "scripts\shared\functions\F_kp_getWeaponComponents.sqf";
|
||||
F_removeWeaponCargo = compileFinal preprocessFileLineNumbers "scripts\shared\functions\F_kp_removeWeaponCargo.sqf";
|
||||
|
|
File diff suppressed because it is too large
Load Diff
28
README.md
28
README.md
|
@ -42,7 +42,7 @@ The area has fallen to the enemy, and it is up to you to take it back. Embark on
|
|||
## Needed Mods
|
||||
These mods are needed if you want to use the prepackaged missionfiles from the release tab or Steam Workshop.
|
||||
You can play every map without any mods (only the maps themself) if you set the preset to custom in the file `kp_liberation_config`.
|
||||
* Al Rayak
|
||||
* Al Rayak (pja310)
|
||||
* [CUP Terrains - Core](http://steamcommunity.com/sharedfiles/filedetails/?id=583496184)
|
||||
* [CUP Terrains - Maps](http://steamcommunity.com/sharedfiles/filedetails/?id=583544987)
|
||||
* [G.O.S Al Rayak](http://steamcommunity.com/sharedfiles/filedetails/?id=648172507)
|
||||
|
@ -187,6 +187,32 @@ class Missions
|
|||
|
||||
## Changelog
|
||||
|
||||
### 0.96.7 (TBD)
|
||||
* Added: Mines and explosives will be saved around FOBs.
|
||||
* Added: Inheritance support to object inits. (3rd array element, bool)
|
||||
* Added: USAF mod support for all US based preset. Thanks to [Eogos](https://github.com/Eogos)
|
||||
* Added: Save interval setting in config file.
|
||||
* Added: Steam UID whitelist in config to grant access to commander actions even if not in that slot.
|
||||
* Added: Applied mission parameters are logged in server rpt.
|
||||
* Added: [Chernarus 2020](https://steamcommunity.com/sharedfiles/filedetails/?id=1913961235) basefile. Thanks to [Eogos](https://github.com/Eogos)
|
||||
* Added: [Chernarus 2020](https://steamcommunity.com/sharedfiles/filedetails/?id=1913961235) building ignore list. Thanks to [Eogos](https://github.com/Eogos)
|
||||
* Added: Steam Workshop upload to build tools
|
||||
* Updated: Updated CUP presets to be inline with October 2019 stable build of CUP mods. Thanks to [Eogos](https://github.com/Eogos)
|
||||
* Updated: Turkish translation. Thanks to [654wak654](https://github.com/654wak654)
|
||||
* Updated: Russian localization. Thanks to [Dj_Haski](https://github.com/DjHaski)
|
||||
* Tweaked: Default blacklist now only holds the static and tent backpacks.
|
||||
* Tweaked: Scripted server restart now automatically recognizes the OS of the server. More info in the [Wiki article](https://github.com/KillahPotatoes/KP-Liberation/wiki/EN_FAQ#how-does-the-scripted-server-restart-work)
|
||||
* Tweaked: Infantry for battlegroup transport vehicles are now spawned closer to the objective.
|
||||
* Tweaked: Transport helicopters in battlegroups are now correctly dropping paratroopers.
|
||||
* Fixed: Some CUP presets had free buildable arsenals. Thanks to [Eogos](https://github.com/Eogos)
|
||||
* Fixed: Wrong boat in CUP USMC Woodland preset. Thanks to [Eogos](https://github.com/Eogos)
|
||||
* Fixed: Object inits will fire on units not only vehicles.
|
||||
* Fixed: Objects will be recyclable after being towed with Advanced Towing.
|
||||
* Fixed: Flickering/disappearing of mobile respawn.
|
||||
* Fixed: Error message when trying to build a sector storage on water didn't vanished.
|
||||
* Fixed: RHS CH53 and RHS C130J transport configs after RHS 0.5.0 update. Thanks to [FatRefrigerator](https://github.com/FatRefrigerator)
|
||||
* Fixed: Support for CBA disposable launchers. Thanks to [Dahlgren](https://github.com/Dahlgren)
|
||||
|
||||
### 0.96.6 (09th September 2019)
|
||||
* Added: [Swedish Forces Pack](https://steamcommunity.com/sharedfiles/filedetails/?id=826911897) transport configs. Thanks to [Dahlgren](https://github.com/Dahlgren)
|
||||
* Added: Parameter to enable/disable the vanilla A3 dynamic fog behavior. Default enabled, so `fucking_set_fog.sqf` isn't running by default.
|
||||
|
|
|
@ -10,6 +10,9 @@ nodejs version >=7.
|
|||
# Install dependencies
|
||||
npm install
|
||||
|
||||
# Install gulp globally to prevent reinstallation every time
|
||||
npm install -g gulp
|
||||
|
||||
# Run mission build
|
||||
npm run build
|
||||
|
||||
|
@ -27,6 +30,7 @@ gulp <task_name>
|
|||
| build | assembles missionfolder and sets config values |
|
||||
| pbo | packs missionfolders into PBOs |
|
||||
| zip | creates release ZIPs |
|
||||
| workshop | uploads built PBOs to Steam workshop |
|
||||
| __default__ | runs _build_, _pbo_ and _zip_ |
|
||||
|
||||
Build files will be outputted to `build/` dir.
|
||||
|
@ -81,4 +85,4 @@ const paths: FolderStructureInfo = {
|
|||
// Output directory
|
||||
workDir: resolve("./build")
|
||||
};
|
||||
```
|
||||
```
|
||||
|
|
|
@ -10,7 +10,8 @@
|
|||
"KP_liberation_preset_resistance": 0,
|
||||
"KP_liberation_preset_civilians": 0,
|
||||
"KP_liberation_arsenal": 0
|
||||
}
|
||||
},
|
||||
"workshopId": "1578862234"
|
||||
},
|
||||
{
|
||||
"sourceFolder": "kp_liberation.Chernarus",
|
||||
|
@ -23,7 +24,8 @@
|
|||
"KP_liberation_preset_resistance": 0,
|
||||
"KP_liberation_preset_civilians": 0,
|
||||
"KP_liberation_arsenal": 0
|
||||
}
|
||||
},
|
||||
"workshopId": "880462893"
|
||||
},
|
||||
{
|
||||
"sourceFolder": "kp_liberation.Chernarus_Winter",
|
||||
|
@ -37,7 +39,8 @@
|
|||
"KP_liberation_preset_resistance": 0,
|
||||
"KP_liberation_preset_civilians": 0,
|
||||
"KP_liberation_arsenal": 0
|
||||
}
|
||||
},
|
||||
"workshopId": "1598002157"
|
||||
},
|
||||
{
|
||||
"sourceFolder": "kp_liberation.Enoch",
|
||||
|
@ -51,7 +54,8 @@
|
|||
"KP_liberation_preset_resistance": 0,
|
||||
"KP_liberation_preset_civilians": 0,
|
||||
"KP_liberation_arsenal": 0
|
||||
}
|
||||
},
|
||||
"workshopId": "1816049282"
|
||||
},
|
||||
{
|
||||
"sourceFolder": "kp_liberation.gm_weferlingen_summer",
|
||||
|
@ -65,7 +69,8 @@
|
|||
"KP_liberation_preset_resistance": 5,
|
||||
"KP_liberation_preset_civilians": 4,
|
||||
"KP_liberation_arsenal": 7
|
||||
}
|
||||
},
|
||||
"workshopId": "1737367431"
|
||||
},
|
||||
{
|
||||
"sourceFolder": "kp_liberation.gm_weferlingen_winter",
|
||||
|
@ -79,7 +84,8 @@
|
|||
"KP_liberation_preset_resistance": 5,
|
||||
"KP_liberation_preset_civilians": 4,
|
||||
"KP_liberation_arsenal": 7
|
||||
}
|
||||
},
|
||||
"workshopId": "1737368152"
|
||||
},
|
||||
{
|
||||
"sourceFolder": "kp_liberation.lythium",
|
||||
|
@ -93,7 +99,8 @@
|
|||
"KP_liberation_preset_resistance": 3,
|
||||
"KP_liberation_preset_civilians": 2,
|
||||
"KP_liberation_arsenal": 0
|
||||
}
|
||||
},
|
||||
"workshopId": "1226882826"
|
||||
},
|
||||
{
|
||||
"sourceFolder": "kp_liberation.Malden",
|
||||
|
@ -106,7 +113,8 @@
|
|||
"KP_liberation_preset_resistance": 0,
|
||||
"KP_liberation_preset_civilians": 0,
|
||||
"KP_liberation_arsenal": 0
|
||||
}
|
||||
},
|
||||
"workshopId": "1737370963"
|
||||
},
|
||||
{
|
||||
"sourceFolder": "kp_liberation.panthera3",
|
||||
|
@ -120,7 +128,8 @@
|
|||
"KP_liberation_preset_resistance": 8,
|
||||
"KP_liberation_preset_civilians": 7,
|
||||
"KP_liberation_arsenal": 0
|
||||
}
|
||||
},
|
||||
"workshopId": "1816045062"
|
||||
},
|
||||
{
|
||||
"sourceFolder": "kp_liberation.pja310",
|
||||
|
@ -134,7 +143,8 @@
|
|||
"KP_liberation_preset_resistance": 0,
|
||||
"KP_liberation_preset_civilians": 0,
|
||||
"KP_liberation_arsenal": 0
|
||||
}
|
||||
},
|
||||
"workshopId": "934734065"
|
||||
},
|
||||
{
|
||||
"sourceFolder": "kp_liberation.Sara",
|
||||
|
@ -148,7 +158,8 @@
|
|||
"KP_liberation_preset_resistance": 0,
|
||||
"KP_liberation_preset_civilians": 0,
|
||||
"KP_liberation_arsenal": 0
|
||||
}
|
||||
},
|
||||
"workshopId": "930514473"
|
||||
},
|
||||
{
|
||||
"sourceFolder": "kp_liberation.song_bin_tanh",
|
||||
|
@ -162,7 +173,8 @@
|
|||
"KP_liberation_preset_resistance": 6,
|
||||
"KP_liberation_preset_civilians": 5,
|
||||
"KP_liberation_arsenal": 10
|
||||
}
|
||||
},
|
||||
"workshopId": "1816042577"
|
||||
},
|
||||
{
|
||||
"sourceFolder": "kp_liberation.Takistan",
|
||||
|
@ -175,7 +187,8 @@
|
|||
"KP_liberation_preset_resistance": 3,
|
||||
"KP_liberation_preset_civilians": 2,
|
||||
"KP_liberation_arsenal": 0
|
||||
}
|
||||
},
|
||||
"workshopId": "878715681"
|
||||
},
|
||||
{
|
||||
"sourceFolder": "kp_liberation.Tanoa",
|
||||
|
@ -188,7 +201,8 @@
|
|||
"KP_liberation_preset_resistance": 1,
|
||||
"KP_liberation_preset_civilians": 1,
|
||||
"KP_liberation_arsenal": 0
|
||||
}
|
||||
},
|
||||
"workshopId": "884703460"
|
||||
},
|
||||
{
|
||||
"sourceFolder": "kp_liberation.xcam_taunus",
|
||||
|
@ -202,7 +216,8 @@
|
|||
"KP_liberation_preset_resistance": 0,
|
||||
"KP_liberation_preset_civilians": 0,
|
||||
"KP_liberation_arsenal": 0
|
||||
}
|
||||
},
|
||||
"workshopId": "884705418"
|
||||
},
|
||||
{
|
||||
"sourceFolder": "kp_liberation.gm_weferlingen_summer",
|
||||
|
@ -216,7 +231,8 @@
|
|||
"KP_liberation_preset_resistance": 5,
|
||||
"KP_liberation_preset_civilians": 4,
|
||||
"KP_liberation_arsenal": 8
|
||||
}
|
||||
},
|
||||
"workshopId": ""
|
||||
},
|
||||
{
|
||||
"sourceFolder": "kp_liberation.gm_weferlingen_winter",
|
||||
|
@ -230,7 +246,8 @@
|
|||
"KP_liberation_preset_resistance": 5,
|
||||
"KP_liberation_preset_civilians": 4,
|
||||
"KP_liberation_arsenal": 8
|
||||
}
|
||||
},
|
||||
"workshopId": ""
|
||||
},
|
||||
{
|
||||
"sourceFolder": "kp_liberation.Takistan",
|
||||
|
@ -243,6 +260,7 @@
|
|||
"KP_liberation_preset_resistance": 3,
|
||||
"KP_liberation_preset_civilians": 2,
|
||||
"KP_liberation_arsenal": 0
|
||||
}
|
||||
},
|
||||
"workshopId": ""
|
||||
}
|
||||
]
|
||||
|
|
|
@ -8,7 +8,7 @@ import * as del from "del";
|
|||
|
||||
import { resolve } from "path";
|
||||
|
||||
import { MissionPaths } from "./src";
|
||||
import { MissionPaths, uploadLegacy } from "./src";
|
||||
import { Preset, FolderStructureInfo } from "./src";
|
||||
|
||||
|
||||
|
@ -30,6 +30,7 @@ const paths: FolderStructureInfo = {
|
|||
let taskNames: string[] = [];
|
||||
let taskNamesPbo: string[] = [];
|
||||
let taskNamesZip: string[] = [];
|
||||
let taskNamesWorkshop: string[] = [];
|
||||
|
||||
for (let preset of presets) {
|
||||
const mission = new MissionPaths(preset, paths);
|
||||
|
@ -72,13 +73,20 @@ for (let preset of presets) {
|
|||
function stringTableReplace () {
|
||||
// I know, replacing XML with regex... :|
|
||||
// https://regex101.com/r/TSfish/2
|
||||
const versionRegex = /<Key ID="STR_MISSION_VERSION">\s*<Original>(?<version>.+)<\/Original>/;
|
||||
const versionRegex = /(<Key ID="STR_MISSION_VERSION">\s*<Original>)(?<version>.+)(<\/Original>)/;
|
||||
const nameRegex = /(<Key ID="STR_MISSION_TITLE">\s*<Original>)(?<name>.+)(<\/Original>)/;
|
||||
|
||||
return gulp.src(mission.getFrameworkPath().concat('/stringtable.xml'))
|
||||
.pipe(gulpModify((content: string) => {
|
||||
const version: string = content.match(versionRegex)['groups']['version'];
|
||||
let version: string = content.match(versionRegex)['groups']['version'];
|
||||
|
||||
// append commit hash and mark as dev version in PRs
|
||||
if ('pull_request' === process.env.GITHUB_EVENT_NAME) {
|
||||
content = content.replace(versionRegex, `$1${version}-${process.env.GITHUB_SHA}$3`);
|
||||
version = version.concat('-dev');
|
||||
}
|
||||
|
||||
// add version number and map name to mission name
|
||||
return content.replace(nameRegex, `$1CTI 34 KP Liberation ${preset.mapDisplay || preset.map} ${version}$3`);
|
||||
}))
|
||||
.pipe(gulp.dest(mission.getOutputDir(), { overwrite: true, }))
|
||||
|
@ -132,6 +140,18 @@ for (let preset of presets) {
|
|||
.pipe(gulp.dest(mission.getWorkDir()))
|
||||
});
|
||||
|
||||
if (!!preset.workshopId) {
|
||||
|
||||
taskNamesWorkshop.push('workshop_' + taskName);
|
||||
|
||||
gulp.task('workshop_' + taskName, async () => {
|
||||
const pboPath = resolve(mission.getWorkDir(), 'pbo', mission.getFullName() + '.pbo');
|
||||
console.log(pboPath);
|
||||
|
||||
await uploadLegacy(preset.workshopId, pboPath);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -147,6 +167,8 @@ gulp.task('pbo', gulp.series(taskNamesPbo));
|
|||
|
||||
gulp.task('zip', gulp.series(taskNamesZip));
|
||||
|
||||
gulp.task('workshop', gulp.series(taskNamesWorkshop));
|
||||
|
||||
gulp.task('default',
|
||||
gulp.series(
|
||||
gulp.task('build'),
|
||||
|
|
|
@ -33,6 +33,11 @@ export interface Preset {
|
|||
* @see {VariablesReplacements}
|
||||
*/
|
||||
readonly variables: VariablesReplacements;
|
||||
|
||||
/**
|
||||
* Steam Workshop Id
|
||||
*/
|
||||
readonly workshopId: string;
|
||||
}
|
||||
|
||||
export interface VariablesReplacements {
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
import { spawn, SpawnOptions } from 'child_process';
|
||||
|
||||
const BINARY = 'kpsteam';
|
||||
const ARMA_APPID = '107410';
|
||||
|
||||
function promisifySpawn(command: string, args?: string[], options?: SpawnOptions) {
|
||||
return new Promise<number>((resolve, reject) => {
|
||||
const process = spawn(command, args, options);
|
||||
|
||||
process.stdout.on( 'data', data => console.log(`${data}`));
|
||||
process.stderr.on( 'data', data => console.error(`${data}`));
|
||||
|
||||
process.on('close', code => {
|
||||
console.log( `child process exited with code ${code}` );
|
||||
if (code !== 0) {
|
||||
return reject(code);
|
||||
}
|
||||
|
||||
resolve(code);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
export function uploadLegacy(itemId: string, path: string): Promise<number> {
|
||||
return promisifySpawn(BINARY, [
|
||||
`upload`,
|
||||
`--app=${ARMA_APPID}`,
|
||||
`--item=${itemId}`,
|
||||
`--path=${path}`,
|
||||
`--legacy`,
|
||||
]);
|
||||
}
|
|
@ -2,3 +2,5 @@
|
|||
export * from "./MissionPaths";
|
||||
|
||||
export * from "./Config";
|
||||
|
||||
export * from "./KpSteam";
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
"strictNullChecks": true,
|
||||
"module": "commonjs",
|
||||
"target": "es6",
|
||||
"moduleResolution": "node",
|
||||
"noUnusedParameters": true,
|
||||
"noUnusedLocals": true,
|
||||
"noImplicitAny": true
|
||||
|
@ -12,4 +13,4 @@
|
|||
"include": [
|
||||
"./src/"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue