Compare commits

...

96 Commits

Author SHA1 Message Date
Christian 89d338be62
Merge pull request #723 from DjHaski/master
Translation fixes
2020-01-22 20:38:30 +01:00
Christian 1df06a6bf5
Merge pull request #720 from Eogos/v0.96.7-CUP-ChernarusA3
Chernarus 2020
2020-01-22 20:36:21 +01:00
Eogos 03f3acb40f fixed indents and added line end
Changes:
- Fixed Chernarus 2020 building ignore list was using tabs rather than spaces
- Fixed Chernarus 2020 building ignore list missing line at end of file
2020-01-22 14:31:09 -05:00
Eogos 02a2f54f69 Update README.md 2020-01-22 14:25:54 -05:00
Daniil c2660f96ee
Merge branch 'v.0.96.7' into master 2020-01-22 22:11:23 +03:00
Daniil ce078c3266
Update README.md 2020-01-22 22:04:33 +03:00
Eogos 493f22afe0 changed date of Chernarus 2020 mission
Changes:
- Set Chernarus 2020 mission date to 2020
2020-01-22 13:25:18 -05:00
Daniil Irkhin 9d5e69ad6c
Fixed typos and translations 2020-01-21 18:56:59 +03:00
Eogos 707cf7697a Chernarus 2020
Changes:
- Added Chernarus 2020 Mission file
- Added Chernarus 2020 ignore list
2020-01-06 12:11:06 -05:00
Filip Maciejewski 6d80f5503d
Merge pull request #718 from Dahlgren/feature/cba-disposable-launchers
Add support for disposable launchers
2020-01-01 16:27:10 +01:00
Björn Dahlgren 87409978b5 Add support for disposable launchers 2020-01-01 02:34:41 +01:00
Wyqer 555b2802de
Added terrain config name `pja310` to readme 2019-11-24 09:21:46 +01:00
Christian 7a2ab40b52
Merge pull request #709 from KillahPotatoes/v0.96.7-more_tweaks
V0.96.7 battlegroup tweaks
2019-11-24 09:17:56 +01:00
Wyqer e15001cc7a
`getpos` to `getPos` in battlegroup_ai 2019-11-24 09:12:17 +01:00
Christian bc5d9008c8
Merge pull request #711 from KillahPotatoes/0.96.7-update-changelog
Add RHS transport config fixes to change-log
2019-11-23 22:15:38 +01:00
Filip Maciejewski 5a4b31452d
Add RHS transport config fixes to change-log 2019-11-23 21:44:00 +01:00
Filip Maciejewski eda1efa426
Merge pull request #710 from FatRefrigerator/v.0.96.7
Fixes for RHS transport configs
2019-11-23 21:40:55 +01:00
FatRefrigerator 6fe4f99935 Fixes for RHS transport configs`
Fixes for CH53 and C130J transport configs for the Nov 20, 2019 update
2019-11-22 22:59:19 -08:00
Wyqer 3affa39a46
Missed adding turkish translation update 2019-11-22 23:30:41 +01:00
Wyqer 2d3c7d8691
Update README.md 2019-11-22 23:21:22 +01:00
Wyqer d3e6ef7841
destination pos for paratroopers in battlegroup 2019-11-22 23:17:58 +01:00
Wyqer 6e7405e4a9
unload distance down to 500 2019-11-22 22:50:31 +01:00
Wyqer 150513683a
Update README.md 2019-11-22 22:12:57 +01:00
Wyqer ff2b52b778
Transporthelis in battlegroups drop paratroopers 2019-11-22 22:05:41 +01:00
Wyqer 153b41d2e0
Spawn transported troops closer to target
closes #622
2019-11-22 22:04:22 +01:00
Wyqer 3d6ec00155
Format tweaks to troup_transport 2019-11-22 22:02:42 +01:00
Wyqer f19f9f3c99
Format tweaks to battlegroup_ai 2019-11-22 21:25:19 +01:00
Wyqer 0261bd1060
Indentation to space in battlegroup_ai 2019-11-22 21:01:52 +01:00
Wyqer 2d8c30deff
Indentation to spaces in troup_transport 2019-11-22 20:58:16 +01:00
Wyqer c91255da11
Format tweaks to spawn_battlegroup 2019-11-22 20:57:30 +01:00
Wyqer d9320b96e2
Format tweaks to random_battlegroup 2019-11-22 20:50:01 +01:00
Wyqer 4f69f32e9b
Indentation to space in random_battlegroups 2019-11-22 20:45:32 +01:00
Wyqer 7f473430f7
indentation to space in spawn_battlegroup 2019-11-22 20:35:57 +01:00
Christian 87db8f8367
Merge pull request #708 from KillahPotatoes/v0.96.7-Wyqer2
V0.96.7 wyqer2
2019-11-22 20:30:30 +01:00
Wyqer 67d2652369
`()` needed instead of `{}` 2019-11-21 18:53:13 +01:00
Wyqer 40fd1af4ef
Automatic OS detection for server restart 2019-11-21 17:35:11 +01:00
Wyqer 1a2c24fc45
Readme update 2019-11-21 16:24:27 +01:00
Wyqer c4cb9a4f1f
Parameter value output in server rpt 2019-11-21 16:24:22 +01:00
Wyqer 486732e490
Default blacklist just with static backpacks and tents 2019-11-21 16:23:47 +01:00
Christian d719097beb
Merge pull request #706 from KillahPotatoes/v0.96.7-Wyqer
Small additions for 0.96.7
2019-11-20 22:56:37 +01:00
Wyqer 42a47a9243
Steam UID whitelist for commander actions
Closes #661
2019-11-14 00:09:17 +01:00
Wyqer d3793232cf
Correctly hide error message in sector build
Closes #671
2019-11-13 22:50:09 +01:00
Wyqer 8be9a575e9
save interval as config setting
Closes #692
2019-11-13 22:41:40 +01:00
Christian 9b18557353
Merge pull request #700 from Eogos/v0.96.7-USAF
V0.96.7 USAF preset intergration
2019-11-06 08:22:02 +01:00
Christian 2815e8a2f4
Update README.md 2019-11-06 08:20:20 +01:00
Christian 6e593c8e9d
Merge pull request #701 from Eogos/v0.96.7-CUP-USMC-Fix
Small fix for CUP USMC Woodland Preset
2019-11-06 08:18:34 +01:00
Eogos 2a7954750c fixed USMC Woodland preset having the wrong boat
Changes:
- USMC Woodland preset had the wrong boat compared to Desert version
2019-10-31 20:22:22 -04:00
Eogos f3fead3d42 updated changelog 2019-10-31 20:16:13 -04:00
Eogos 0ce37485f1 added attachTo data for USAF vehicles and adjusted some planes prices
Changes:
- Added attachTo data so USAF C-17, C-130, and CUP C-130 can use Liberation's cargo system
- Adjusted ammo cost for aircraft with pylons vs without
2019-10-31 20:06:44 -04:00
Eogos 527d216a0a added USAF mod vehicles to US themed presets 2019-10-29 20:08:22 -04:00
Filip Maciejewski 3162afb14d
Merge pull request #697 from Eogos/v0.96.7-CUPdate
CUPdate for October 2019
2019-10-25 01:01:09 +02:00
Eogos a225b8943c
Merge branch 'v.0.96.7' into v0.96.7-CUPdate 2019-10-24 13:04:21 -04:00
Eogos 64fb4ee1cd changed Igla AA Pod price
Changes:
- Increased Igla AA Pod static to cost 200 ammo rather than 150
2019-10-24 11:23:02 -04:00
Filip Maciejewski c78cf4b6ef Update changelog 2019-10-23 11:14:17 +02:00
Filip Maciejewski d8a0fa189b Update changelog 2019-10-23 11:13:30 +02:00
Filip Maciejewski 0979da1e4d Ignore objNull when checking attached objects in recycle manager 2019-10-23 11:10:00 +02:00
Filip Maciejewski d8fee01026
Merge pull request #689 from KillahPotatoes/v0.96.7-save-mines
v0.96.7 - Save mines placed around FOBs
2019-10-22 21:14:46 +02:00
Filip Maciejewski 764d24c1f9 Reveal only mines that were known before save 2019-10-22 21:14:11 +02:00
Filip Maciejewski 40cb0084cc
Merge pull request #698 from 654wak654/tr-translations
Update Turkish Translations Part 1
2019-10-22 21:05:50 +02:00
Filip Maciejewski 029ca722d9
Merge pull request #686 from KillahPotatoes/v0.96.7-object-inits
v0.96.7 - Hotfix - Object inits improvements
2019-10-22 20:54:32 +02:00
Eogos 75fafef376 updated CUP ACR preset and removed Titan turrets from CUP BAF preset
Changes:
- Added BRDM (HQ), RM-70, and Humvee Ambulance to ACR factions
- Removed static Titan AT/AA turrets from BAF presets
2019-10-19 15:21:35 -04:00
Ozan Eğitmen fe3a82792c Part 1 2019-10-18 11:00:44 +03:00
Eogos 4c1e48832f Updated README.md 2019-10-17 16:21:54 -04:00
Eogos 6c628e4db7 October 2019 CUP stable build update
Changes:
- Added boats to USMC and BAF Woodland presets
- Added MEV helicopters and Ambulances to BAF Woodland, CDF, US Army, and USMC presets
- Added Igla AA Pod to CDF preset
2019-10-17 16:16:02 -04:00
Eogos 4531184404 Fixed arsenal box price in BLUFOR CUP Presets
Changes:
- Arsenal box in all BLUFOR CUP presets except for ACR were free.
2019-10-17 11:58:27 -04:00
Filip Maciejewski 063b6c3db0
Merge pull request #690 from KillahPotatoes/v0.96.7-build-tool-commit-hash
v0.96.7 - Add version hash to PR built PBOs
2019-10-17 09:41:23 +02:00
Filip Maciejewski e1a9acffae
Fix is nil check in F_addObjectInit.sqf 2019-10-16 18:14:26 +02:00
Filip Maciejewski 5cc2846c20 Fix version replacement 2019-10-16 17:00:15 +02:00
Filip Maciejewski e72a4d127b Add hash to version not version in mission name, mark as dev 2019-10-16 11:01:47 +02:00
Wyqer c786da322c
Todo tree settings update 2019-10-14 20:35:41 +02:00
Wyqer c7d2a871b1
Added vs code workspace settings 2019-10-14 20:06:46 +02:00
Filip Maciejewski 23282845b0 Add caching to objectInits 2019-10-11 11:38:00 +02:00
Filip Maciejewski 5fdc36877f
Fix hash not being applied to version number 2019-10-11 00:25:35 +02:00
Filip Maciejewski de359ef575
Fix typo 2019-10-11 00:10:25 +02:00
Filip Maciejewski 05a4d38e33
Unit creation in F_createManagedUnit in unscheduled 2019-10-11 00:08:13 +02:00
Filip Maciejewski 3b13e0a6a5
Add version hash to PR built PBOs 2019-10-10 23:26:23 +02:00
Filip Maciejewski 48a6dae8a7
Fix saved mines array structure 2019-10-09 20:56:34 +02:00
Filip Maciejewski 197f1b64d5
Create Ammo mines via createVehicle 2019-10-09 20:47:36 +02:00
Filip Maciejewski 62538b1d0f
Remove duplicate semicolons from save_manger.sqf 2019-10-09 20:25:03 +02:00
Filip Maciejewski a2efefea40
Fix syntax error in mine saving 2019-10-09 20:24:22 +02:00
Filip Maciejewski 5a7d47e23a
Fix F_createManagedUnit changing side of target group 2019-10-09 20:04:49 +02:00
Filip Maciejewski 17ae30bfc4 Reveal saved mines to player side 2019-10-08 11:32:28 +02:00
Filip Maciejewski d921748c8d Save mines around FOBs 2019-10-08 11:30:21 +02:00
Filip Maciejewski 979105a05e
Simplify vanilla Helipads class list for objectInits 2019-10-07 22:30:25 +02:00
Filip Maciejewski dcc80d2fbf
Add support for inheritance in KP_objectInits, improve example 2019-10-07 22:00:18 +02:00
Filip Maciejewski f971b74829
Add missing comma and missing argument 2019-10-07 21:53:17 +02:00
Filip Maciejewski 4f36159e9f Fix accidental copy paste in F_createManagedUnit 2019-10-07 20:34:09 +02:00
Filip Maciejewski 754732b1c7 Replace rest of createUnit with F_createManagedUnit 2019-10-07 20:33:54 +02:00
Filip Maciejewski 3aa06587ad Replace more of createUnit with F_createManagedUnit 2019-10-05 14:45:33 +02:00
Filip Maciejewski f2bd5ae71a Replace createUnit with F_createManagedUnit
TODO replace rest of them
2019-10-04 11:51:19 +02:00
Filip Maciejewski 6a0db6c5eb Add F_createManagedUnit function 2019-10-04 11:46:46 +02:00
Filip Maciejewski be4a8adeac Call object inits on spawned crates 2019-10-04 11:46:29 +02:00
Filip Maciejewski ed045c9344
Merge pull request #681 from KillahPotatoes/v0.96.7-mobile-respawn-fix
v0.96.7 - Fix mobile respawn flickering
2019-10-04 11:03:28 +02:00
Filip Maciejewski a2bdcee716
Merge branch 'master' into v.0.96.7 2019-10-03 21:23:36 +02:00
Filip Maciejewski b76f6e0ef7
Fix mobile respawn flickering 2019-10-01 03:51:43 +02:00
Filip Maciejewski ee00bcd730
Add v0.96.7 hotfix entry to changelog 2019-10-01 03:47:22 +02:00
59 changed files with 33338 additions and 542 deletions

65
.vscode/settings.json vendored Normal file
View File

@ -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

View File

@ -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";

View File

@ -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",

View File

@ -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];}],

View File

@ -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

View File

@ -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

View File

@ -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],

View File

@ -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)

View File

@ -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],

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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>",

View File

@ -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)

View File

@ -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;

View File

@ -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;

View File

@ -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;
};

View File

@ -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;
};

View File

@ -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;
};
};

View File

@ -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;
};

View File

@ -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;

View File

@ -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};

View File

@ -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"
];

View File

@ -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"};

View File

@ -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;

View File

@ -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;
};

View File

@ -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

View File

@ -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
{

View File

@ -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));
};
};

View File

@ -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);
};
};
};

View File

@ -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;

View File

@ -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 ];

View File

@ -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);};

View File

@ -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);

View File

@ -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";
};

View File

@ -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";
};

View File

@ -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]

View File

@ -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

View File

@ -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";
};
};

View File

@ -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
};

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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,31 @@ 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)
* 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.

View File

@ -72,13 +72,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, }))