Compare commits

..

119 Commits

Author SHA1 Message Date
eb3e08e14a Update defines/SupplyCrates.hpp
Change rhs_weap_m72a7 with JPSP_weap_m72ecmk1
2025-11-09 15:28:01 -06:00
8532ec5786 Update defines/BattalionInfo.hpp
Call Sign Updates for ACO / BCO
2025-11-09 13:28:42 -06:00
6b33680e77 Merge pull request '4.2.3 release' (#65) from develop into main
All checks were successful
Pack Release files / Dispatch MissionZGM build job (release) Successful in 1m33s
Pack Release files / Publish cleaned template (release) Successful in 1m47s
Reviewed-on: #65
2025-05-27 20:46:28 -05:00
hizumi
3db6191e0d Update script_version.hpp
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 2m17s
2025-05-27 20:33:29 -05:00
hizumi
fef05fa153 Update CHANGELOG.md 2025-05-27 20:33:23 -05:00
hizumi
2bd8a16079 Update fn_bindEventHandlers.sqf
correct logic for handling chat messages based on allowed channel cba settings
2025-05-25 22:48:53 -05:00
1fbda6ac95 Merge pull request 'aj-campaign-update-5-17-2025' (#64) from aj-campaign-update-5-17-2025 into develop
Some checks failed
Generate testing snapshot / Create testing release (push) Has been cancelled
Reviewed-on: #64
2025-05-19 16:32:08 -05:00
dbc380c6af Merge branch 'develop' into aj-campaign-update-5-17-2025 2025-05-19 16:31:58 -05:00
22c1f1a21a revert 05936d9213
revert Update defines/DisallowedEquipment.hpp

Added AJ's T-Shirts to the Tabbed Weapons
2025-05-19 16:31:42 -05:00
hizumi
3f4d4147a3 Warlord emblem addition
add new texture for warlord flag and add it to vehicle flag list
2025-05-19 16:31:24 -05:00
c9c15681ce Merge pull request 'Tabbed-Shirt-Update-3-25-2025' (#63) from Tabbed-Shirt-Update-3-25-2025 into develop
Some checks failed
Generate testing snapshot / Create testing release (push) Has been cancelled
Reviewed-on: #63
2025-05-19 16:18:17 -05:00
840652f853 Update defines/SupplyCrates.hpp
Added new resupply Mags for KAR and JCA
2025-05-18 19:12:45 -05:00
05936d9213 Update defines/DisallowedEquipment.hpp
Added AJ's T-Shirts to the Tabbed Weapons
2025-05-05 23:44:21 -05:00
84ab6a1ca7 Update defines/BattalionInfo.hpp
Updated Alpha Callsign
2025-05-04 15:11:46 -05:00
175988efe6 Removed PVS14 and PVS15 from Blacklist 2025-05-04 00:04:36 -05:00
b60f7922f3 Update defines/DisallowedEquipment.hpp
Added T-Shirt Items
2025-03-25 20:44:01 -05:00
hizumi
071a056dc8 Update script_version.hpp
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 2m58s
2024-12-23 00:21:25 -06:00
hizumi
c31e5cf9ac Update CHANGELOG.md 2024-12-23 00:21:21 -06:00
69aed97ce3 Merge pull request '4.2.2 release' (#62) from develop into main
Reviewed-on: #62
2024-12-23 00:21:15 -06:00
5cf3ea5c1f Merge pull request 'Campaign-Updates-Nov-13-2024' (#61) from Campaign-Updates-Nov-13-2024 into develop
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 2m56s
Reviewed-on: #61
2024-12-23 00:09:37 -06:00
38d03353b3 Merge branch 'develop' into Campaign-Updates-Nov-13-2024 2024-12-23 00:09:22 -06:00
ca478ab08d Merge pull request 'ingame_chat_options' (#59) from ingame_chat_options into develop
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 2m55s
Reviewed-on: #59
2024-12-23 00:07:53 -06:00
f6703e7dd4 Merge branch 'develop' into ingame_chat_options 2024-12-23 00:07:10 -06:00
hizumi
ea64f8e63c Update fn_logRespawnButtonUse.sqf
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 3m6s
add triagelevel status to respawn message
2024-12-23 00:01:43 -06:00
3308cdc5ba Update defines/DisallowedEquipment.hpp
Added Restricted Item Check for MRH Satcom / Satellite
2024-11-16 17:42:14 -06:00
a35c39721e Update defines/BattalionInfo.hpp
Commented out unused Units
Updated Command Callsigns
2024-11-13 19:53:11 -06:00
dba0a0e57c Update framework/client/functions/fn_bindEventHandlers.sqf
Added Chat Handler Mission Space Variable Checks
2024-08-11 12:01:01 -05:00
888a688f56 Update framework/common/functions/fn_addCBASettings.sqf
Added CBA Settings for Chat Handler as well as Defaults
2024-08-11 11:57:29 -05:00
c94f660682 Merge pull request '4.2.1 release' (#56) from develop into main
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 41s
Reviewed-on: #56
2024-06-23 23:35:59 -05:00
hizumi
7e93ebfbfd Update script_version.hpp
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 41s
prep 4.2.1 release
2024-06-23 23:33:23 -05:00
hizumi
e0c8f3c952 Update CHANGELOG.md
version 4.2.0 release notes
2024-06-23 23:33:07 -05:00
hizumi
d200f83375 Update DisallowedEquipment.hpp 2024-06-23 23:32:24 -05:00
51c5da44ce Merge pull request '4.2.0 release' (#55) from develop into main
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 36s
Reviewed-on: #55
2024-06-20 23:51:06 -05:00
0f5569c5ba Merge branch 'main' into develop
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 36s
2024-06-20 23:49:29 -05:00
hizumi
448fad1ee0 Update script_version.hpp
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 41s
prep 4.2.0 release
2024-06-20 23:24:08 -05:00
hizumi
2210dc1a70 Update CHANGELOG.md
version 4.2.0 release notes
2024-06-20 23:23:50 -05:00
hizumi
7e5e7e26af Update SupplyCrates.hpp
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 40s
add ability to pull tires and tracks out of the arsenal boxes for loading into vehicles
2024-06-19 22:20:49 -05:00
hizumi
7c6130891a update custom remainsCollector event handlers
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 39s
add extra verbose debug logging to determine owner, time, and whether or not the custom garbage collector is who processed the body
2024-06-19 20:55:12 -05:00
hizumi
eee4ac1b83 Update fn_initClient.sqf
temporarily remove pilot ability to check re-insertion queue
2024-06-19 20:53:19 -05:00
faf84a0bf2 Merge pull request 'Campaign-Updates-6-9-2024' (#54) from Campaign-Updates-6-9-2024 into develop
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 39s
Reviewed-on: #54
2024-06-19 19:55:03 -05:00
68d793a519 Merge branch 'develop' into Campaign-Updates-6-9-2024 2024-06-19 19:54:49 -05:00
2e67e0e932 Merge pull request 'flag_simpleshape_variety' (#53) from flag_simpleshape_variety into develop
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 45s
Reviewed-on: #53
2024-06-19 19:53:39 -05:00
04546e49f7 Update defines/SupplyCrates.hpp
Increased White Smokes in Squad Ammo Crate
Added M84 tun Grenade to Squad Ammo Crate
2024-06-19 00:36:21 -05:00
8cfebeef10 Update defines/SupplyCrates.hpp
Added Pain Killers to Medical Resupply
2024-06-19 00:32:04 -05:00
8c6c1f6a62 Update defines/SupplyCrates.hpp
Added SIG MCX AMMO
Created a Squad Utility Box with Chems / Smokes / Breaching Items / Cable Ties / Radios
2024-06-19 00:30:56 -05:00
1fea46355a Merge remote-tracking branch 'origin/develop' into flag_simpleshape_variety 2024-06-18 19:07:56 -07:00
de91b61fcc some updates 2024-06-18 19:05:54 -07:00
fedc6f1432 Merge pull request 'wip' (#51) from flag_simpleshape_variety into develop
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 37s
Reviewed-on: #51
2024-06-16 15:45:24 -05:00
b34928c0c3 wip 2024-06-16 15:45:12 -05:00
2d9e5aabef Merge pull request 'Campaign-Updates-6-9-2024' (#50) from Campaign-Updates-6-9-2024 into develop
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 38s
Reviewed-on: #50
2024-06-16 15:41:23 -05:00
87ebbae31c Update defines/ApprovedAssets.hpp
Updated Approved assets.
2024-06-16 15:41:06 -05:00
408228f07b Added Black Hornet Restricted Item 2024-06-16 15:41:06 -05:00
736e90e305 Removed SMA Resupply Items
Removed the following Items from resupply
{"SMA_30Rnd_762x35_BLK_EPR",25}, 
{"SMA_20Rnd_762x51mm_M80A1_EPR",25},
{"SMA_20Rnd_762x51mm_M80A1_EPR_Tracer",25},
{"SMA_20Rnd_762x51mm_Mk316_Mod_0_Special_Long_Range",25},
{"SMA_20Rnd_762x51mm_Mk316_Mod_0_Special_Long_Range_Tracer",25},
2024-06-16 15:41:06 -05:00
f17fff8363 Asset Change
Removed Athena and Homer, Changed Armed VTOL callsign
2024-06-16 15:41:06 -05:00
64bc303893 Update defines/BattalionInfo.hpp
Updated ECO Callsign
2024-06-16 15:41:06 -05:00
80247a01d0 Update defines/BattalionInfo.hpp
Updated ACO and BCO Callsign
2024-06-16 15:41:06 -05:00
7c8cd6104b wip 2024-06-15 20:01:48 -07:00
7322799b78 add custom sounds support
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 42s
2024-06-15 16:43:56 -07:00
8f89283ceb Added Black Hornet Restricted Item 2024-06-12 00:13:04 -05:00
hizumi
db7bdf1ecd Update fn_createBox.sqf
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 37s
fix incorrect ace variable name. fixes #47.
2024-05-26 16:36:47 -05:00
hizumi
0f8783ffa9 add initial dead unit garbage collection
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 40s
2024-05-23 21:21:10 -05:00
af7600ac16 Merge pull request 'develop' (#46) from develop into main
Reviewed-on: #46
2024-04-25 21:41:04 -05:00
hizumi
fac86f18f0 Update CHANGELOG.md
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 42s
version 4.1.2 release notes
2024-04-25 21:36:48 -05:00
hizumi
87b6f359c1 Update fn_addEmptyGroupCleanupPFH.sqf
fix logic order and update logging output
2024-04-25 21:34:34 -05:00
hizumi
cbd8b5963e Update fn_addEmptyGroupCleanupPFH.sqf
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 37s
add more logging as to where the empty group is owned to track down deletion issues
2024-04-21 19:44:19 -05:00
hizumi
09ee014912 Merge branch 'develop' of https://gitea.iceberg-gaming.com/17th-Ranger-Battalion-ORG/MissionTemplate into develop
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 32s
2024-04-21 18:43:09 -05:00
hizumi
5b482b022f Update SupplyCrates.hpp
swap Tier1 5.56 mags to rhs 5.56 mags for mod compatability
2024-04-21 18:42:47 -05:00
hizumi
8afe420527 versioning update
4.1.2
2024-04-21 18:42:25 -05:00
ff98546907 Merge pull request 'main' (#45) from main into develop
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 37s
Reviewed-on: #45
2024-04-21 18:34:12 -05:00
5a1e6dd1a1 Merge pull request '4.1.1 release' (#43) from develop into main
Reviewed-on: #43
2024-04-19 00:31:43 -05:00
hizumi
0524af05b9 Update CHANGELOG.md
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 33s
4.1.1 release
2024-04-19 00:28:31 -05:00
hizumi
023550743d Update BattalionInfo.hpp
alpha callsign change
2024-04-19 00:23:01 -05:00
hizumi
ab28ed4e50 Update fn_bindVehicleActions.sqf
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 38s
remove now unneeded custom tire patching ace interaction
2024-04-19 00:01:14 -05:00
hizumi
8794dc226d Update fn_calculateServerStats.sqf
remove unneeded publicVariable declaration to reduce network traffic
2024-04-18 23:59:27 -05:00
hizumi
2bfaaacfc6 Update fn_initServer.sqf
disable zeus lightning bolt functionality first pass
2024-04-18 23:58:42 -05:00
8a4f161df9 Merge pull request 'authorized_gear_april_update' (#42) from authorized_gear_april_update into develop
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 6m1s
Reviewed-on: #42
2024-04-14 00:07:48 -05:00
cc5b8bbf45 Update defines/DisallowedEquipment.hpp
Updated Defines / Allowed Items for Tabbed Weapons to align with new announcement 

https://www.guilded.gg/Iceberg-gaming/groups/v3j2vAP3/channels/06d0c762-6a54-4657-9ed0-9d73763fcd1e/announcements/16nPOKxR
2024-04-14 00:07:48 -05:00
eb4959a2ba Merge branch 'develop' of https://gitea.iceberg-gaming.com/17th-Ranger-Battalion-ORG/MissionTemplate into develop
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 40s
2024-03-16 20:22:38 -07:00
643a7f212b log client performance to server RPT 2024-03-16 20:22:27 -07:00
6c4740dd1f Merge pull request 'develop' (#37) from develop into main
Reviewed-on: #37
2024-03-02 01:08:33 -06:00
hizumi
f128e0fec8 Update on-release.yaml 2024-03-02 01:08:33 -06:00
hizumi
32dda56f69 Update on-release.yaml
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 36s
2024-03-02 01:06:28 -06:00
hizumi
90f3caf1f9 Merge branch 'develop' of https://gitea.iceberg-gaming.com/17th-Ranger-Battalion-ORG/MissionTemplate into develop 2024-03-02 01:06:17 -06:00
706794a114 Merge pull request 'Update on-release.yaml' (#36) from develop into main
Reviewed-on: #36
2024-03-02 00:49:54 -06:00
hizumi
ee43868a32 Update on-release.yaml
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 31s
2024-03-02 00:49:41 -06:00
hizumi
e7af2f115e Update on-release.yaml
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 31s
2024-03-02 00:48:47 -06:00
c1aeace994 Merge pull request 'Update on-release.yaml' (#35) from develop into main
Reviewed-on: #35
2024-03-02 00:23:31 -06:00
d9beb44c72 Merge branch 'main' into develop
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 30s
2024-03-02 00:23:08 -06:00
hizumi
44b842ad33 Update on-release.yaml
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 30s
2024-03-02 00:18:05 -06:00
d9b5dd66a8 Merge pull request 'develop' (#34) from develop into main
Reviewed-on: #34
2024-03-01 23:59:30 -06:00
d6549fc040 Merge branch 'main' into develop
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 30s
2024-03-01 23:56:55 -06:00
hizumi
073f5ffd63 Update CHANGELOG.md
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 36s
2024-03-01 23:49:35 -06:00
hizumi
53a8b782e6 Update README.md
newer file structure, release link, and new file purposes
2024-03-01 23:49:25 -06:00
737f1ef7ee skip respawn button log if no last uncon timer registered
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 37s
2024-02-24 19:45:55 -08:00
hizumi
3e4eda2843 Update on-push-devel.yaml
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 32s
2024-02-22 23:23:12 -06:00
hizumi
34c36f58e2 Delete create-testing-snapshot.yaml 2024-02-22 23:20:25 -06:00
1279503743 Delete .gitea/workflows/create-testing-snapshot.yaml
Some checks failed
Generate testing snapshot / Create testing release (push) Failing after 28s
2024-02-22 23:19:28 -06:00
35dd63cbab Merge pull request 'main' (#33) from main into develop
Some checks failed
Generate testing snapshot / Create testing release (push) Failing after 28s
Reviewed-on: hizumi/MissionTemplate#33
2024-02-22 23:16:24 -06:00
3c0124070e Merge branch 'develop' into main 2024-02-22 23:15:09 -06:00
hizumi
77c3b0d67a update workflows with new formatting and urls 2024-02-22 23:12:27 -06:00
hizumi
2a776718c0 add issue templates
Some checks failed
Pack ZGM mission PBO files / Get ZGM mission list (push) Failing after 37s
Pack ZGM mission PBO files / Create PBO files (push) Failing after 13m41s
2024-02-22 22:17:40 -06:00
5d50375256 improve static line protection logic
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 37s
2024-02-22 08:28:18 -08:00
6917db3b7d add missionGroup op for mission type, supply crate updates
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 32s
2024-02-21 16:11:28 -08:00
d2b8e10baf fix uncon respawn button use, add static line protection
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 38s
2024-02-21 08:23:54 -08:00
496fd21830 adds static line jump 5s invincibility
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 39s
2024-02-20 19:51:51 -08:00
hizumi
40ee46ea98 Update pack-zgm-pbo-files.yaml
Some checks failed
Pack ZGM mission PBO files / Get ZGM mission list (push) Failing after 5s
Pack ZGM mission PBO files / Create PBO files (push) Failing after 13s
2024-02-15 19:10:48 -06:00
hizumi
10ef37cb80 Update pack-zgm-pbo-files.yaml
Some checks failed
Pack ZGM mission PBO files / Get ZGM mission list (push) Failing after 5s
Pack ZGM mission PBO files / Create PBO files (push) Failing after 7s
2024-02-15 19:09:01 -06:00
hizumi
74b630bfaa Update pack-zgm-pbo-files.yaml
Some checks failed
Pack ZGM mission PBO files / GetMissionList (push) Failing after 4s
Pack ZGM mission PBO files / CreatePboFiles (push) Successful in 2m13s
2024-02-15 18:59:45 -06:00
hizumi
e64b29479d Update pack-zgm-pbo-files.yaml
Some checks failed
Pack ZGM mission PBO files / GetMissionList (push) Successful in 4s
Pack ZGM mission PBO files / CreatePboFiles (push) Failing after 11s
2024-02-15 18:56:15 -06:00
hizumi
d25e67182a Update pack-zgm-pbo-files.yaml
Some checks failed
Pack ZGM mission PBO files / GetMissionList (push) Failing after 3s
Pack ZGM mission PBO files / CreatePboFiles (push) Failing after 17s
2024-02-15 18:50:30 -06:00
hizumi
2218898ff7 Update pack-zgm-pbo-files.yaml
Some checks failed
Pack ZGM mission PBO files / GetMissionList (push) Failing after 1s
Pack ZGM mission PBO files / CreatePboFiles (push) Failing after 2s
2024-02-15 18:49:36 -06:00
hizumi
4976aa51b8 Update pack-zgm-pbo-files.yaml 2024-02-15 18:47:30 -06:00
hizumi
ddf0fe91d4 Update pack-zgm-pbo-files.yaml 2024-02-15 18:46:51 -06:00
hizumi
72bac32219 create release workflow 2024-02-15 18:40:28 -06:00
hizumi
21dbb725ac sync develop workflow 2024-02-15 18:40:13 -06:00
hizumi
8e10819b92 Update create-testing-snapshot.yaml 2024-02-14 01:51:52 -06:00
hizumi
68f35a9b44 Update create-testing-snapshot.yaml
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 31s
add environment diagnostics and update webrequest url to use built in environment variables
2024-02-13 22:46:39 -06:00
hizumi
f11cadbd06 Update create-testing-snapshot.yaml
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 31s
correct api url
2024-02-13 19:58:21 -06:00
hizumi
a00f6cb0da create testing release workflow
Some checks failed
Generate testing snapshot / Create testing release (push) Failing after 27s
2024-02-13 19:50:30 -06:00
62 changed files with 1209 additions and 289 deletions

View File

@@ -0,0 +1,37 @@
name: Bug Report
about: File a bug report to help us improve
title: ""
labels: "Kind/Bug"
ref: main
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: textarea
id: what-happened
attributes:
label: Describe the bug!
description: What did you see, and what did you expect to happen.
render: markdown
value: "A bug happened!"
validations:
required: true
- type: textarea
id: reproduce-steps
attributes:
label: How can we reproduce this?
description: "Steps to reproduce the behavior, and attach full log here if needed."
value: |
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant log output?
description: Please copy and paste any relevant log output. This will be automatically formatted into code.
render: shell

View File

@@ -0,0 +1 @@
blank_issues_enabled: true

View File

@@ -0,0 +1,34 @@
name: Feature Request
about: Suggest an idea for this project
title: ""
labels: "Kind/Feature"
ref: main
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to suggest an idea to us!
- type: textarea
id: feature-description
attributes:
label: Is your feature request related to a problem?
description: A clear and concise description of what the problem is.
render: markdown
value: " I'm always frustrated when [...]"
- type: textarea
id: feature-solution
attributes:
label: Describe the solution you would like.
description: "A clear and concise description of what you want to happen. Context and screenshots welcome!"
value: |
1. Go to '...'
2. Look at '....'
3. Change to '....'
validations:
required: true
- type: textarea
id: feature-references
attributes:
label: Describe the alternatives you have considered.
description: "A clear and concise description of any alternative solutions or features you've considered."
render: markdown

View File

@@ -41,7 +41,7 @@ jobs:
run: | run: |
$headers = @{ $headers = @{
"accept" = "application/json" "accept" = "application/json"
"Authorization" = "token ${{secrets.RELEASE_TOKEN}}" "Authorization" = "token ${{ gitea.token }}"
} }
Invoke-WebRequest -Uri "${{ gitea.api_url }}/repos/${{ gitea.repository }}/releases/tags/testing-release" -Method Delete -Headers $headers Invoke-WebRequest -Uri "${{ gitea.api_url }}/repos/${{ gitea.repository }}/releases/tags/testing-release" -Method Delete -Headers $headers
@@ -49,7 +49,7 @@ jobs:
run: | run: |
$headers = @{ $headers = @{
"accept" = "application/json" "accept" = "application/json"
"Authorization" = "token ${{secrets.RELEASE_TOKEN}}" "Authorization" = "token ${{ gitea.token }}"
} }
Invoke-WebRequest -Uri "${{ gitea.api_url }}/repos/${{ gitea.repository }}/tags/testing-release" -Method Delete -Headers $headers Invoke-WebRequest -Uri "${{ gitea.api_url }}/repos/${{ gitea.repository }}/tags/testing-release" -Method Delete -Headers $headers
@@ -57,12 +57,12 @@ jobs:
run: | run: |
$headers = @{ $headers = @{
"accept" = "application/json" "accept" = "application/json"
"Authorization" = "token ${{secrets.RELEASE_TOKEN}}" "Authorization" = "token ${{ gitea.token }}"
} }
Invoke-WebRequest -Uri "${{ gitea.api_url }}/repos/${{ gitea.repository }}/tags" -Method Post -Headers $headers -ContentType "application/json" -Body "{`"message`": `"testing-release`", `"tag_name`": `"testing-release`", `"target`": `"${{ gitea.sha }}`"}" Invoke-WebRequest -Uri "${{ gitea.api_url }}/repos/${{ gitea.repository }}/tags" -Method Post -Headers $headers -ContentType "application/json" -Body "{`"message`": `"testing-release`", `"tag_name`": `"testing-release`", `"target`": `"${{ gitea.sha }}`"}"
- name: Create new testing-release - name: Create new testing-release
uses: https://gitea.com/actions/gitea-release-action@v1.1.6 uses: https://gitea.com/actions/gitea-release-action@v1.3.0
with: with:
tag_name: 'testing-release' tag_name: 'testing-release'
name: 'testing-release' name: 'testing-release'

View File

@@ -0,0 +1,70 @@
name: Pack Release files
on:
release:
types: [published]
jobs:
DispatchZGMBuild:
name: Dispatch MissionZGM build job
runs-on: windows
steps:
- name: Diagnostics
run: |
echo "repository: ${{ gitea.repository }}"
echo "ref: ${{ gitea.ref }}"
echo "ref_name: ${{ gitea.ref_name }}"
echo "sha: ${{ gitea.sha }}"
echo "api_url: ${{ gitea.api_url }}"
echo "workflow: ${{ gitea.workflow }}"
- name: Publish remote issue
run: |
$headers = @{
"accept" = "application/json"
"Authorization" = "token ${{ secrets.RUNNER_ISSUE_TOKEN }}"
}
$response = Invoke-RestMethod -Uri "${{ gitea.api_url }}/repos/17th-Ranger-Battalion-ORG/MissionsForZGM/issues" -Method Post -Headers $headers -ContentType "application/json" -Body "{`"title`": `"publish-release`"}"
CreateRelease:
name: Publish cleaned template
runs-on: windows
steps:
- name: Diagnostics
run: |
echo "repository: ${{ gitea.repository }}"
echo "ref: ${{ gitea.ref }}"
echo "ref_name: ${{ gitea.ref_name }}"
echo "sha: ${{ gitea.sha }}"
echo "api_url: ${{ gitea.api_url }}"
echo "workflow: ${{ gitea.workflow }}"
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
ref: 'main'
path: release
- name: Prepare template
run: |
mkdir MissionTemplate
cd MissionTemplate
Get-ChildItem ..\release\ | Copy-Item -Recurse
Remove-Item -Recurse aaFrameworkUtils
Remove-Item -Recurse framework\x
Remove-Item -Recurse .git*
Get-ChildItem
- name: Create archive
run: |
cd release
$revision = git rev-parse --short=10 HEAD
$tag = git describe --abbrev=0 --tags
cd ..
Compress-Archive MissionTemplate mission-maker-template-v$tag-$revision.zip
- name: Add archive to release
uses: https://gitea.com/actions/gitea-release-action@v1.3.0
with:
files: |-
mission-maker-template*.zip

2
.gitignore vendored
View File

@@ -2,3 +2,5 @@
# Notepad++ backups # # Notepad++ backups #
*.bak *.bak
.vscode/

View File

@@ -4,6 +4,103 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project badly attempts [Semantic Versioning](https://semver.org/spec/v2.0.0.html). The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project badly attempts [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [4.2.3] - 2025-05-24
### Added
- Warlord Vehicle Flag
### Changed
- Campaign Callsigns
- Equipment Changes
- Supply Crate contents
### Fixed
- Update chat logic handler for new cba settings
## [4.2.2] - 2024-12-23
### Added
- CBA settings to allow disabling of remaining text chat channels
### Changed
- Log triage level on player respawn
- Campaign Callsigns
### Fixed
- Equipment typos
## [4.2.1] - 2024-06-23
### Changed
- Allowed Equipment Definition typo
## [4.2.0] - 2024-06-20
### Added
- Custom remainsCollector script to replace and supplement the built in arma remainsCollector function
- New Resupply Boxes
- Ability to spawn spare tires and tracks at the arsenal and via Zeus module
### Changed
- Split vehicle flags into colors and shapes for additional options
- Battalion Callsigns
- Allowed Equipment Definitions
- Resupply Box Contents
- Fixed incorrect ace carry variable setting
### Removed
- SMA mod references
- Extraneous server performance calculation broadcast to all clients
- Ability for pilots to check re-insertion queue
## [4.1.2] - 2024-04-25
### Changed
- Fix internal versioning
- Swap resupply box 5.56 magazines due to mod conflict
- Group deletion handler now properly processes empty groups and logs errors
## [4.1.1] - 2024-04-19
### Added
- Function to remove lightning bolt from zeus
### Changed
- Alpha Callsign
- Allowed Equipment Definitions
### Removed
- Custom tire patch code
- Extraneous server performance calculation broadcast to all clients
## [4.1.0] - 2024-03-01
### Added
- Added ability for mission maker to use custom leaflets
- Added ability for mission maker to define points of interested to be automatically added as MicroDAGR waypoints
- Added `missionGroup` variable in `description.ext` for backend grouping of mission
- Added custom script support via `CfgFunctions`
- Added 5 second invulnerability on ejection of air vehicle when parachute equipped
### Changed
- Track unconsciousness time
## [4.0.0] - 2024-02-07 ## [4.0.0] - 2024-02-07
Version 4 marks a massive rewrite due in whole to @IndigoFox by updating the internals of the framework into CBA macros and functions. Version 4 marks a massive rewrite due in whole to @IndigoFox by updating the internals of the framework into CBA macros and functions.

View File

@@ -2,11 +2,10 @@
The only file which should be pre-existing in your mission folder is `mission.sqm`, once freshly saved from Arma 3's EDEN Editor. The only file which should be pre-existing in your mission folder is `mission.sqm`, once freshly saved from Arma 3's EDEN Editor.
Download the latest mission template zip from the [latest release](https://17th-gs.iceberg-gaming.com:5443/hizumi/MissionTemplate/releases/latest) and copy its contents to the folder where your mission file lives. Download the latest mission template zip from the [latest release](https://gitea.iceberg-gaming.com/17th-Ranger-Battalion-ORG/MissionTemplate/releases/latest) and copy its contents to the folder where your mission file lives.
Once copied, the final structure should appear similar to the following: Once copied, the final structure should appear similar to the following:
```markdown ```
├── aaFrameworkUtils/
├── defines/ ├── defines/
├── framework/ ├── framework/
├── images/ ├── images/
@@ -14,13 +13,17 @@ Once copied, the final structure should appear similar to the following:
├── sounds/ ├── sounds/
├── textures/ ├── textures/
├── CHANGELOG.md ├── CHANGELOG.md
├── custom_leaflets.hpp
├── custom_scripts.hpp
├── CHANGELOG.md
├── description.ext ├── description.ext
├── mission_settings.hpp
├── mission.jpg ├── mission.jpg
├── mission.sqm ├── mission.sqm
├── mission_settings.hpp
├── README.md
``` ```
> **Note:** If you're building a mission for use and not actively developing code, the `aaFrameworkUtils` and `framework\x` directories **should be deleted**. *These are for the purposes of development and add size bloat to the mission download when players connect to your mission.* > **Note:** If you're building a mission for use and not actively developing code, you should download the `mission-maker-template` zip file which is a cleaned version of this framework. The `aaFrameworkUtils` and `framework\x` directories in the source tree are for the purposes of development and would only add size bloat to the mission download when players connect to your mission.
After the requisite configuration file edits have been made, your mission is ready to be packed into a pbo for deployment. After the requisite configuration file edits have been made, your mission is ready to be packed into a pbo for deployment.
@@ -38,13 +41,21 @@ Almost none of the template files should be edited in anyway as they have been f
The contents of this file must be edited to reflect the naming of your mission for display purposes. All variables are self-documented inside the file to clearly identify the purpose of each piece of required text The contents of this file must be edited to reflect the naming of your mission for display purposes. All variables are self-documented inside the file to clearly identify the purpose of each piece of required text
The contents of the lower half of the file are where the mission maker is able to add/replace/modify the built in `#ace-fortify` preset The contents of the lower half of the file contain templated declaration blocks where the mission maker can define custom waypoints to be automatically added to the ACE MicroDAGR, and define/edit the custom built in `#ace-fortify` preset.
## mission.jpg ## mission.jpg
This file will be displayed the client mission loading screen. This file will be displayed the client mission loading screen.
File should remain small *(under 300KiB)* and should optimally be `1024px by 512px` in resolution File should remain small *(under 300KiB)* and should optimally be `1024px by 512px` in resolution
## custom_leaflets.hpp
This file contains the temeplate block for declaring custom leaflets to be used within missions.
## custom_scripts.hpp
This file contains an accessbile `CfgFunctions` declaration block for custom functions which require setup in this manner.
## defines/ ## defines/
This directory contains the definition files use by the framework in various places. *Contents should not be edited* This directory contains the definition files use by the framework in various places. *Contents should not be edited*
@@ -124,3 +135,4 @@ This directory contains a number of hpp files used to define constants throughou
- Provides an ACE3 interaction menu that allows players to attach and remove flags from vehicles. - Provides an ACE3 interaction menu that allows players to attach and remove flags from vehicles.
- Flags are defined in `defines/VehicleFlags.hpp`. - Flags are defined in `defines/VehicleFlags.hpp`.
c

8
custom_sounds.hpp Normal file
View File

@@ -0,0 +1,8 @@
// EXAMPLE
// class uncon_alarm
// {
// name = "uncon_alarm";
// sound[] = {"AJ_CBRN_V2\sounds\AJ_warning_1.ogg", 0.9, 1, 5}; //directory, volume, pitch, range
// titles[]={};
// };

View File

@@ -1,22 +1,74 @@
// Lists approved fixed-wing and rotary vehicle types that mission makers can use in their missions. // Lists approved fixed-wing and rotary vehicle types that mission makers can use in their missions.
class ApprovedAssets { class ApprovedAssets {
// Fixed-wing aircraft // APC
class USAF_A10 {callsign = "Ares";}; class rhsusf_stryker_m1126_m2_d {callsign = "Katana"; category = "APC";};
class RHSGREF_A29B_HIDF {callsign = "Odyssey";}; class rhsusf_stryker_m1126_mk19_d {callsign = "Katana"; category = "APC";};
class USAF_C130J {callsign = "Hercules";}; class rhsusf_stryker_m1127_m2_wd {callsign = "Katana"; category = "APC";};
// Rotary aircraft class rhsusf_stryker_m1132_m2_wd {callsign = "Katana"; category = "APC";};
class RHS_MELB_MH6M {callsign = "Apollo";}; class rhsusf_stryker_m1134_wd {callsign = "Katana"; category = "APC";};
class RHS_MELB_AH6M {callsign = "Artemis";}; class B_APC_Wheeled_01_cannon_F {callsign = "Rapier"; category = "APC";};
class RHS_MELB_H6M {callsign = "Icarus";}; class B_APC_Tracked_01_CRV_F {callsign = "DuctTape"; category = "APC";};
class RHS_CH_47F {callsign = "Achilles";}; // Rotary
class ej_MH60MDAP4 {callsign = "Hades";}; class TF373_SOAR_MH47G_No_Rear_Guns {callsign = "Achilles"; category = "Rotary";};
class RHS_UH60M {callsign = "Griffin";}; class TF373_SOAR_MH47G_No_Rear_Guns_EasyActions {callsign = "Achilles"; category = "Rotary";};
class RHS_UH60M_MEV2 {callsign = "Dustoff";}; class TF373_SOAR_MH47G {callsign = "Achilles"; category = "Rotary";};
class B_T_VTOL_01_INFANTRY_F {callsign = "Pegasus";}; class TF373_SOAR_MH47G_EasyActions {callsign = "Achilles"; category = "Rotary";};
class B_T_VTOL_01_ARMED_F {callsign = "Spartan";}; class RHS_CH_47F_10 {callsign = "Achilles"; category = "Rotary";};
class RHS_AH64D {callsign = "Orion";}; class RHS_MELB_AH6M {callsign = "Artemis"; category = "Rotary";};
class RHS_AH1Z {callsign = "Athena";}; class RHS_MELB_MH6M {callsign = "Apollo"; category = "Rotary";};
class RHS_UH1Y {callsign = "Homer";}; class RHS_MELB_H6M {callsign = "Icarus"; category = "Rotary";};
class rhsusf_CH53E_USMC {callsign = "Atlas";}; class RHS_UH60M {callsign = "Griffin"; category = "Rotary";};
class RHS_UH60M2 {callsign = "Griffin"; category = "Rotary";};
class RHS_UH60M_MEV {callsign = "Dustoff"; category = "Rotary";};
class ej_MH60MDAP {callsign = "Hades"; category = "Rotary";};
class ej_MH60MDAP16H {callsign = "Hades"; category = "Rotary";};
class ej_MH60MDAP8H {callsign = "Hades"; category = "Rotary";};
class ej_MH60MDAP4 {callsign = "Hades"; category = "Rotary";};
class RHS_AH64DGrey {callsign = "Orion"; category = "Rotary";};
// Air
// Truck
class rhsusf_M1078A1R_SOV_M2_D_fmtv_socom {callsign = "DuctTape"; category = "Truck";};
class rhsusf_M1084A1R_SOV_M2_D_fmtv_socom {callsign = "DuctTape"; category = "Truck";};
class rhsusf_M1078A1P2_B_WD_CP_fmtv_usarmy {callsign = ""; category = "Truck";};
// Boats
class rhsusf_mkvsoc {callsign = "Poseidon"; category = "Boats";};
class B_Boat_Armed_01_minigun_F {callsign = "Neptune"; category = "Boats";};
// MRAP
class rhsusf_M1238A1_M2_socom_d {callsign = "Tanto"; category = "MRAP";};
class rhsusf_M1238A1_Mk19_socom_d {callsign = "Tanto"; category = "MRAP";};
class rhsusf_M1239_M2_socom_d {callsign = "DuctTape"; category = "MRAP";};
class rhsusf_M1239_MK19_socom_d {callsign = "DuctTape"; category = "MRAP";};
class rhsusf_m1245_m2crows_socom_d {callsign = "Dagger"; category = "MRAP";};
class rhsusf_m1245_mk19crows_socom_d {callsign = "Dagger"; category = "MRAP";};
class rhsusf_M1239_M2_Deploy_socom_d {callsign = "DuctTape"; category = "MRAP";};
// TiltRotor
class B_T_VTOL_01_infantry_F {callsign = "Pegasus"; category = "TiltRotor";};
class B_T_VTOL_01_armed_F {callsign = "Chimera"; category = "TiltRotor";};
// Water
// Ground Vehicle
// Cars
class rhsusf_m1165a1_gmv_m134d_m240_socom_d {callsign = "Dagger"; category = "Cars";};
class rhsusf_m1165a1_gmv_m2_m240_socom_d {callsign = "Dagger"; category = "Cars";};
class rhsusf_m1165a1_gmv_mk19_m240_socom_d {callsign = "Dagger"; category = "Cars";};
class rhsusf_mrzr4_d {callsign = ""; category = "Cars";};
class UK3CB_B_M1030_NATO {callsign = ""; category = "Cars";};
class B_T_LSV_01_AT_F {callsign = ""; category = "Cars";};
class B_T_LSV_01_armed_F {callsign = ""; category = "Cars";};
class C_Quadbike_01_F {callsign = ""; category = "Cars";};
// Fixed-Wing
class B_Plane_CAS_01_dynamicLoadout_F {callsign = "Ares"; category = "Fixed-Wing";};
class RHS_A10 {callsign = "Ares"; category = "Fixed-Wing";};
class USAF_AC130U {callsign = "Odin"; category = "Fixed-Wing";};
class USAF_C130J {callsign = "Hercules"; category = "Fixed-Wing";};
class B_Plane_Fighter_01_F {callsign = "Xerxes"; category = "Fixed-Wing";};
// Artillery
class rhsusf_M142_usarmy_WD {callsign = "Halberd"; category = "Artillery";};
class UK3CB_B_M270_MLRS_HE_DES {callsign = "Halberd"; category = "Artillery";};
class rhsusf_m109d_usarmy {callsign = "Glaive"; category = "Artillery";};
class RHS_M119_D {callsign = "Mailman"; category = "Artillery";};
class B_Mortar_01_F {callsign = "Hammer"; category = "Artillery";};
// Armor
class B_AFV_Wheeled_01_cannon_F {callsign = "Gladius"; category = "Armor";};
class B_AFV_Wheeled_01_up_cannon_F {callsign = "Gladius"; category = "Armor";};
}; };

View File

@@ -4,11 +4,11 @@
// Define the callsigns for the Battalion // Define the callsigns for the Battalion
#define COMMAND_CALLSIGN SPARTAN #define COMMAND_CALLSIGN ONI
#define RRC_CALLSIGN TIGER //#define RRC_CALLSIGN TIGER
#define MEDIC_CALLSIGN LIFELINE //#define MEDIC_CALLSIGN LIFELINE
#define ALPHA_CALLSIGN BLACKJACK #define ALPHA_CALLSIGN GLACIER
#define ECHO_CALLSIGN FIREBRAND #define ECHO_CALLSIGN WARLORD
#define WPN_CALLSIGN BLACKFOOT #define WPN_CALLSIGN BLACKFOOT
// Define the frequencies for the Battalion // Define the frequencies for the Battalion
@@ -73,26 +73,26 @@ class BattalionInfo {
}; };
class RRC { // WIP // class RRC { // WIP
callsign = RRC_CALLSIGN; // callsign = RRC_CALLSIGN;
shortDescription = "RRC"; // shortDescription = "RRC";
textColor = LVL2_TEXT_COLOR; // textColor = LVL2_TEXT_COLOR;
frequencies[] = { // frequencies[] = {
{"Contact", {}, {FREQ_BATTALION}}, // {"Contact", {}, {FREQ_BATTALION}},
{"Actual", {}, {FREQ_BATTALION, FREQ_ECHO_FLIGHT_CAS}} // {"Actual", {}, {FREQ_BATTALION, FREQ_ECHO_FLIGHT_CAS}}
}; // };
}; // };
class BattalionMedical { // WIP // class BattalionMedical { // WIP
callsign = MEDIC_CALLSIGN; // callsign = MEDIC_CALLSIGN;
shortDescription = "Battalion Medical"; // shortDescription = "Battalion Medical";
textColor = LVL2_TEXT_COLOR; // textColor = LVL2_TEXT_COLOR;
frequencies[] = { // frequencies[] = {
{"Contact", {FREQ_ALL_MEDICAL_SR}, {FREQ_BATTALION}}, // {"Contact", {FREQ_ALL_MEDICAL_SR}, {FREQ_BATTALION}},
{"Actual", {FREQ_BATTALION_MEDICAL_INTERCOM, FREQ_ALL_MEDICAL_SR}, {FREQ_BATTALION, FREQ_ECHO_FLIGHT_LOGISTICS}}, // {"Actual", {FREQ_BATTALION_MEDICAL_INTERCOM, FREQ_ALL_MEDICAL_SR}, {FREQ_BATTALION, FREQ_ECHO_FLIGHT_LOGISTICS}},
{"General", {FREQ_BATTALION_MEDICAL_INTERCOM, FREQ_ALL_MEDICAL_SR}, {}} // {"General", {FREQ_BATTALION_MEDICAL_INTERCOM, FREQ_ALL_MEDICAL_SR}, {}}
}; // };
}; // };
class WeaponsSquad { // WIP class WeaponsSquad { // WIP
callsign = WPN_CALLSIGN; callsign = WPN_CALLSIGN;

View File

@@ -11,9 +11,9 @@ class DisallowedEquipment {
label = "BLACKLISTED WEAPON OR ITEM"; label = "BLACKLISTED WEAPON OR ITEM";
description = "Items that NO member is allowed to use."; description = "Items that NO member is allowed to use.";
items[] = { items[] = {
"17BN_ANPVS14", // NVG AN/PVS-14 //"17BN_ANPVS14", // NVG AN/PVS-14
"ej_PVS15D", // NVG AN/PVS-15 //"ej_PVS15D", // NVG AN/PVS-15
"ej_VPS15", // NVG AN/PVS-15 //"ej_PVS15", // NVG AN/PVS-15
"LMG_Mk200_black_F", //Mk200 Series "LMG_Mk200_black_F", //Mk200 Series
"LMG_Mk200_F", //Mk200 Series "LMG_Mk200_F", //Mk200 Series
"rhs_weap_g36c", // G36 Series "rhs_weap_g36c", // G36 Series
@@ -34,11 +34,6 @@ class DisallowedEquipment {
"rhs_weap_m14_wd", // M14 Series "rhs_weap_m14_wd", // M14 Series
"rhs_weap_m14_weap_m14ebrri", // M14 Series "rhs_weap_m14_weap_m14ebrri", // M14 Series
"rhs_weap_m14", // M14 Series "rhs_weap_m14", // M14 Series
"rhs_weap_m16a4_carryhandle_M203", // M16 Series
"rhs_weap_m16a4_carryhandle", // M16 Series
"rhs_weap_m16a4_imod_M203", // M16 Series
"rhs_weap_m16a4_imod", // M16 Series
"rhs_weap_m16a4", // M16 Series
"rhs_weap_m27iar_grip", // M27 Series "rhs_weap_m27iar_grip", // M27 Series
"rhs_weap_m27iar", // M27 Series "rhs_weap_m27iar", // M27 Series
"rhsusf_ANPVS_14", // NVG AN/PVS-14 "rhsusf_ANPVS_14", // NVG AN/PVS-14
@@ -100,14 +95,8 @@ class DisallowedEquipment {
"UK3CB_M14DMR_Railed_BLK", // M14 Series "UK3CB_M14DMR_Railed_BLK", // M14 Series
"UK3CB_M14DMR_Railed", // M14 Series "UK3CB_M14DMR_Railed", // M14 Series
"UK3CB_M14DMR", // M14 Series "UK3CB_M14DMR", // M14 Series
"UK3CB_M16_Carbine", // M16 Series //"USP_PVS_14", // NVG AN/PVS-14
"UK3CB_M16A1_LSW", // M16 Series //"USP_PVS_15" // NVG AN/PVS-15
"UK3CB_M16A1", // M16 Series
"UK3CB_M16A2_UGL", // M16 Series
"UK3CB_M16A2", // M16 Series
"UK3CB_M16A3", // M16 Series
"USP_PVS_14", // NVG AN/PVS-14
"USP_PVS_15" // NVG AN/PVS-15
}; };
}; };
@@ -132,10 +121,9 @@ class DisallowedEquipment {
"optic_lrps_tna_F", //Nightforce Series Optic "optic_lrps_tna_F", //Nightforce Series Optic
"optic_lrps", //Nightforce Series Optic "optic_lrps", //Nightforce Series Optic
"optic_Nightstalker", // Thermal Optic "optic_Nightstalker", // Thermal Optic
"optic_tws_mg", // Thermal Optic
"optic_tws", // Thermal Optic
"rhsusf_acc_anpas13gv1", // Thermal Optic "rhsusf_acc_anpas13gv1", // Thermal Optic
"rhsusf_acc_anpvs27", // Thermal Optic "rhsusf_acc_anpvs27", // Thermal Optic
"optic_tws_mg", // Thermal Optic
"Tier1_ANPVS10_Tan", // Thermal Optic "Tier1_ANPVS10_Tan", // Thermal Optic
"Tier1_ATACR18_ADM_Black_Vanilla", //Nightforce Series Optic "Tier1_ATACR18_ADM_Black_Vanilla", //Nightforce Series Optic
"Tier1_ATACR18_ADM_Black", //Nightforce Series Optic "Tier1_ATACR18_ADM_Black", //Nightforce Series Optic
@@ -152,14 +140,18 @@ class DisallowedEquipment {
"Tier1_ATACR18_Geissele_Docter_Black_Vanilla", //Nightforce Series Optic "Tier1_ATACR18_Geissele_Docter_Black_Vanilla", //Nightforce Series Optic
"Tier1_ATACR18_Geissele_Docter_Black", //Nightforce Series Optic "Tier1_ATACR18_Geissele_Docter_Black", //Nightforce Series Optic
"Tier1_ATACR18_Geissele_Docter_Desert_Vanilla", //Nightforce Series Optic "Tier1_ATACR18_Geissele_Docter_Desert_Vanilla", //Nightforce Series Optic
"Tier1_ATACR18_Geissele_Docter_Desert" //Nightforce Series Optic "Tier1_ATACR18_Geissele_Docter_Desert", //Nightforce Series Optic
"sps_black_hornet_01_Static_F", // Black Hornet Drone Mod
"MRH_TacticalDisplay", //MRH Satellite Display Tablet
"MRH_FoldedSatcomAntenna" //MRH Satellite Satcom
}; };
}; };
class tabbedItems { // Items that are allowed for individuals with Ranger Tab class tabbedItems { // Items that are allowed for individuals with Ranger Tab
label = "TABBED WEAPON"; label = "TABBED ITEM";
description = "Items that are allowed for individuals with Ranger Tab."; description = "Items that are allowed for individuals with Ranger Tab.";
items[] = { items[] = {
"optic_tws", // Thermal Optic
"arifle_MX_black_F", // MX Series "arifle_MX_black_F", // MX Series
"arifle_MX_F", // MX Series "arifle_MX_F", // MX Series
"arifle_MX_GL_black_F", // MX 3GL Series "arifle_MX_GL_black_F", // MX 3GL Series
@@ -208,7 +200,105 @@ class DisallowedEquipment {
"Tier1_SR25_ec_tan", // SR-25 Series "Tier1_SR25_ec_tan", // SR-25 Series
"Tier1_SR25_ec", // SR-25 Series "Tier1_SR25_ec", // SR-25 Series
"Tier1_SR25_tan", // SR-25 Series "Tier1_SR25_tan", // SR-25 Series
"Tier1_SR25" // SR-25 Series "Tier1_SR25", // SR-25 Series
"rhsusf_weap_MP7A2", //MP7 Series
"rhsusf_weap_MP7A2_aor1", //MP7 Series
"rhsusf_weap_MP7A2_desert", //MP7 Series
"rhsusf_weap_MP7A2_folded", //MP7 Series
"rhsusf_weap_MP7A2_folded_aor1", //MP7 Series
"rhsusf_weap_MP7A2_folded_winter", //MP7 Series
"rhsusf_weap_MP7A2_folded_desert", //MP7 Series
"rhsusf_weap_MP7A2_winter", //MP7 Series
"UK3CB_MP510", //MP5 Series
"UK3CB_MP5A2", //MP5 Series
"UK3CB_MP5A3", //MP5 Series
"UK3CB_MP5A4", //MP5 Series
"UK3CB_MP5K", //MP5 Series
"UK3CB_MP5K_PDW", //MP5 Series
"UK3CB_MP5N", //MP5 Series
"UK3CB_MP5N_UGL", //MP5 Series
"UK3CB_MP5SD5", //MP5 Series
"UK3CB_MP5SD6", //MP5 Series
"SMG_03C_black", //P90 Series
"SMG_03C_camo", //P90 Series
"SMG_03C_hex", //P90 Series
"SMG_03C_khaki", //P90 Series
"SMG_03C_TR_black", //P90 Series
"SMG_03C_TR_camo", //P90 Series
"SMG_03C_TR_hex", //P90 Series
"SMG_03C_TR_khaki", //P90 Series
"UK3CB_P90C_black", //P90 Series
"UK3CB_P90C_camo", //P90 Series
"UK3CB_P90C_hex", //P90 Series
"UK3CB_P90C_khaki", //P90 Series
"UK3CB_P90C_TR_black", //P90 Series
"UK3CB_P90C_TR_camo", //P90 Series
"UK3CB_P90C_TR_hex", //P90 Series
"UK3CB_P90C_TR_khaki", //P90 Series
"UK3CB_P90_black", //P90 Series
"UK3CB_P90_camo", //P90 Series
"UK3CB_P90_hex", //P90 Series
"UK3CB_P90_khaki", //P90 Series
"UK3CB_P90_TR_black", //P90 Series
"UK3CB_P90_TR_camo", //P90 Series
"UK3CB_P90_TR_hex", //P90 Series
"UK3CB_P90_TR_khaki", //P90 Series
"UK3CB_M16_Carbine", //M16 Series
"UK3CB_M16_Carbine_eotech_552", //M16 Series
"UK3CB_M16_Carbine_sup", //M16 Series
"UK3CB_M16A1", //M16 Series
"UK3CB_M16A1_LSW", //M16 Series
"UK3CB_M16A2", //M16 Series
"UK3CB_M16A2_sup", //M16 Series
"UK3CB_M16A2_UGL", //M16 Series
"UK3CB_M16A2_UGL_eotech_552", //M16 Series
"UK3CB_M16A2_UGL_sup", //M16 Series
"UK3CB_M16A3", //M16 Series
"UK3CB_M16A3_eotech_552", //M16 Series
"UK3CB_M16A3_eotech_552_sup", //M16 Series
"UK3CB_M16A3_sup", //M16 Series
"UK3CB_M16A3_UGL", //M16 Series
"rhs_weap_m16a4", //M16 Series
"rhs_weap_m16a4_grip", //M16 Series
"rhs_weap_m16a4_grip_acog", //M16 Series
"rhs_weap_m16a4_grip2", //M16 Series
"rhs_weap_m16a4_grip3", //M16 Series
"rhs_weap_m16a4_bipod", //M16 Series
"rhs_weap_m16a4_acog_usmc", //M16 Series
"rhs_weap_m16a4_carryhandle", //M16 Series
"rhs_weap_m16a4_carryhandle_bipod", //M16 Series
"rhs_weap_m16a4_carryhandle_grip", //M16 Series
"rhs_weap_m16a4_carryhandle_M203", //M16 Series
"rhs_weap_m16a4_carryhandle_M203_grip", //M16 Series
"rhs_weap_m16a4_m203_acog_usmc", //M16 Series
"uk3cb_weap_m16a4_m203s_eotech_552_anpeq15_sup", //M16 Series
"rhs_weap_m16a4_imod", //M16 Series
"rhs_weap_m16a4_imod_grip", //M16 Series
"rhs_weap_m16a4_imod_grip2", //M16 Series
"rhs_weap_m16a4_imod_grip3", //M16 Series
"rhs_weap_m16a4_imod_M203", //M16 Series
"rhs_weap_m16a4_imod_M203_grip", //M16 Series
"rhs_weap_m16a4_carryhandle_grip2", //M16 Series
"rhs_weap_m16a4_carryhandle_grip3", //M16 Series
"rhs_weap_m16a4_grip_acog_usmc", //M16 Series
"rhs_weap_m16a4_grip_acog2_usmc", //M16 Series
"rhs_weap_m32", //M32/MGL Series
"rhs_weap_m32_usmc", //M32/MGL Series
"G3_Multicam_Tee_WARLORD", //Tabbed T-Shirt
"G3_M81_Tee_WARLORD", //Tabbed T-Shirt
"G3_TGR_Tee_WARLORD", //Tabbed T-Shirt
"G3_Multicam_Tee_BLK", //Tabbed T-Shirt
"G3_M81_Tee_BLK", //Tabbed T-Shirt
"G3_TGR_Tee_BLK", //Tabbed T-Shirt
"G3_Multicam_Tee_Tan", //Tabbed T-Shirt
"G3_M81_Tee_Tan", //Tabbed T-Shirt
"G3_TGR_Tee_Tan", //Tabbed T-Shirt
"G3_Multicam_Tee_Gray", //Tabbed T-Shirt
"G3_M81_Tee_Gray", //Tabbed T-Shirt
"G3_TGR_Tee_Gray", //Tabbed T-Shirt
"G3_Multicam_Tee_Green", //Tabbed T-Shirt
"G3_M81_Tee_Green", //Tabbed T-Shirt
"G3_TGR_Tee_Green" //Tabbed T-Shirt
}; };
}; };

View File

@@ -9,7 +9,8 @@ class SupplyCrates {
weapons[] = { weapons[] = {
{"rhs_weap_M136",4}, {"rhs_weap_M136",4},
{"rhs_weap_M136_hp",4}, {"rhs_weap_M136_hp",4},
{"rhs_weap_m72a7",2} //{"rhs_weap_m72a7",2}
{"JPSP_weap_m72ecmk1",2}
}; };
magazines[] = { magazines[] = {
{"1Rnd_SmokePurple_Grenade_shell",12}, {"1Rnd_SmokePurple_Grenade_shell",12},
@@ -20,31 +21,25 @@ class SupplyCrates {
{"ACE_40mm_Flare_ir",12}, {"ACE_40mm_Flare_ir",12},
{"rhsusf_200Rnd_556x45_mixed_soft_pouch_coyote",25}, {"rhsusf_200Rnd_556x45_mixed_soft_pouch_coyote",25},
{"rhsusf_20Rnd_762x51_m993_Mag",25}, {"rhsusf_20Rnd_762x51_m993_Mag",25},
{"SmokeShell",12}, {"SmokeShell",24},
{"rhs_mag_m67",12}, {"ACE_M84",24},
{"rhs_mag_m67",24},
{"1Rnd_Smoke_Grenade_shell",24}, {"1Rnd_Smoke_Grenade_shell",24},
{"1Rnd_SmokeRed_Grenade_shell",24}, {"1Rnd_SmokeRed_Grenade_shell",24},
{"1Rnd_SmokeGreen_Grenade_shell",24}, {"1Rnd_SmokeGreen_Grenade_shell",24},
{"1Rnd_SmokeYellow_Grenade_shell",12}, {"1Rnd_SmokeYellow_Grenade_shell",12},
{"Tier1_30Rnd_556x45_M856A1_EMag",25}, {"rhs_mag_30Rnd_556x45_M855A1_Stanag",25},
{"Tier1_30Rnd_556x45_Mk318Mod0_EMag",75}, {"ACE_30Rnd_556x45_Stanag_M995_AP_mag",75},
{"ACE_30Rnd_65_Creedmor_mag",25},
{"SMA_30Rnd_762x35_BLK_EPR",25},
{"Tier1_30Rnd_762x35_300BLK_SMK_PMAG",25},
{"SMA_30Rnd_68x43_SPC_FMJ",25},
{"SMA_30Rnd_68x43_SPC_FMJ_Tracer",25},
{"SMA_20Rnd_762x51mm_M80A1_EPR",25},
{"SMA_20Rnd_762x51mm_M80A1_EPR_Tracer",25},
{"SMA_20Rnd_762x51mm_Mk316_Mod_0_Special_Long_Range",25},
{"SMA_20Rnd_762x51mm_Mk316_Mod_0_Special_Long_Range_Tracer",25},
{"Tier1_250Rnd_762x51_Belt_M993_AP",15}, {"Tier1_250Rnd_762x51_Belt_M993_AP",15},
{"ACE_20Rnd_762x51_Mag_Tracer",25}, {"ACE_20Rnd_762x51_Mag_Tracer",25},
{"ACE_20Rnd_762x51_M993_AP_Mag",25}, {"ACE_20Rnd_762x51_M993_AP_Mag",25},
{"rhsusf_20Rnd_762x51_SR25_m993_Mag",25}, {"rhsusf_20Rnd_762x51_SR25_m993_Mag",25},
{"Tier1_20Rnd_762x51_M993_SR25_Mag",25}, {"Tier1_20Rnd_762x51_M993_SR25_Mag",25},
{"Tier1_20Rnd_65x48_Creedmoor_SR25_Mag",25}, {"KAR_20Rnd_Fury_blk",25},
{"rhssaf_30rnd_556x45_EPR_G36", 25}, {"rhsusf_m112_mag",25},
{"DemoCharge_Remote_Mag",16} {"JCA_20Rnd_762x51_PMAG",25},
{"JCA_20Rnd_762x51_Tracer_Red_PMAG",25},
{"KAR_100Rnd_Fury_blk",25},
}; };
items[] = {}; items[] = {};
}; };
@@ -56,16 +51,19 @@ class SupplyCrates {
icon = "\A3\ui_f\data\map\vehicleicons\iconCrateWpns_ca.paa"; icon = "\A3\ui_f\data\map\vehicleicons\iconCrateWpns_ca.paa";
backpacks[] = {}; backpacks[] = {};
weapons[] = {}; weapons[] = {
{"launch_MRAWS_green_F",2}
};
magazines[] = { magazines[] = {
{"MRAWS_HEAT_F",35}, {"MRAWS_HEAT_F",35},
{"MRAWS_HE_F",15}, {"MRAWS_HE_F",15},
{"Tier1_250Rnd_762x51_Belt_M993_AP",50}, {"Tier1_250Rnd_762x51_Belt_M993_AP",50},
{"Tier1_30Rnd_556x45_M856A1_EMag",25}, {"rhs_mag_30Rnd_556x45_M855A1_Stanag",25},
{"Tier1_30Rnd_556x45_Mk318Mod0_EMag",50}, {"ACE_30Rnd_556x45_Stanag_M995_AP_mag",50},
{"Titan_AA",10}, {"Titan_AA",10},
{"Titan_AT",10}, {"Titan_AT",10},
{"200Rnd_65x39_cased_Box_Tracer_Red",50} {"200Rnd_65x39_cased_Box_Tracer_Red",50},
{"KAR_100Rnd_Fury_RT_blk",50}
}; };
items[] = {}; items[] = {};
}; };
@@ -86,6 +84,7 @@ class SupplyCrates {
{"ACE_splint",48}, {"ACE_splint",48},
{"ACE_morphine",50}, {"ACE_morphine",50},
{"ACE_epinephrine",50}, {"ACE_epinephrine",50},
{"ACE_painkillers",20},
{"ACE_bloodIV",75}, {"ACE_bloodIV",75},
{"ACE_bloodIV_500",50}, {"ACE_bloodIV_500",50},
{"ACE_bloodIV_250",25}, {"ACE_bloodIV_250",25},
@@ -136,6 +135,42 @@ class SupplyCrates {
items[] = {}; items[] = {};
}; };
class SquadUtility {
boxClass = "Box_Syndicate_Ammo_F";
displayName = "Squad Utility Supply Crate";
tooltip = "A crate containing Flairs, Smokes, Breaching Charges";
icon = "\A3\ui_f\data\map\vehicleicons\iconCrateAmmo_ca.paa";
backpacks[] = {};
weapons[] = {};
magazines[] = {};
items[] = {
{"ACE_Chemlight_HiYellow",20},
{"ACE_Chemlight_HiBlue",20},
{"ACE_Chemlight_HiGreen",20},
{"ACE_Chemlight_HiRed",20},
{"ACE_Chemlight_UltraHiOrange",20},
{"ACE_HandFlare_Yellow",20},
{"ACE_HandFlare_White",20},
{"ACE_HandFlare_Red",20},
{"ACE_HandFlare_Green",20},
{"ACE_Chemlight_IR",20},
{"ACE_IR_Strobe_Item",20},
{"SmokeShellYellow",20},
{"SmokeShellBlue",20},
{"SmokeShellPurple",20},
{"SmokeShellOrange",20},
{"SmokeShellGreen",20},
{"SmokeShellRed",20},
{"tsp_popperCharge_auto_mag",10},
{"tsp_frameCharge_mag",20},
{"tsp_stickCharge_auto_mag",10},
{"ACE_CableTie",25},
{"DemoCharge_Remote_Mag",15},
{"TFAR_anprc152",3},
};
};
class MortarMk6Resupply { class MortarMk6Resupply {
boxClass = "Box_NATO_WpsSpecial_F"; boxClass = "Box_NATO_WpsSpecial_F";
displayName = "Mortar MK6 Supply Crate"; displayName = "Mortar MK6 Supply Crate";
@@ -168,13 +203,40 @@ class SupplyCrates {
icon = "\A3\ui_f\data\igui\cfg\simpleTasks\types\scout_ca.paa"; icon = "\A3\ui_f\data\igui\cfg\simpleTasks\types\scout_ca.paa";
backpacks[] = {}; backpacks[] = {};
weapons[] = {}; weapons[] = {
{"rhs_weap_M136",2},
{"twc_2inch_bag",3}
};
magazines[] = { magazines[] = {
{"twc_2inch_he_1rnd",70}, {"twc_2inch_he_1rnd",70},
{"twc_2inch_smoke_1rnd",15}, {"twc_2inch_smoke_1rnd",15},
{"twc_2inch_illum_1rnd",15}, {"twc_2inch_illum_1rnd",15},
{"Tier1_30Rnd_556x45_Mk318Mod0_EMag",20} {"ACE_30Rnd_556x45_Stanag_M995_AP_mag",20}
}; };
items[] = {}; items[] = {};
}; };
class ResupplyTire {
boxClass = "ACE_Wheel";
displayName = "Vehicle Tire";
tooltip = "A single tire for replacement";
icon = "A3\ui_f\data\igui\cfg\simpletasks\types\repair_ca.paa";
backpacks[] = {};
weapons[] = {};
magazines[] = {};
items[] = {};
};
class ResupplyTrack {
boxClass = "ACE_Track";
displayName = "Vehicle Track";
tooltip = "A single track for replacement";
icon = "z\ace\addons\repair\ui\patch_ca.paa";
backpacks[] = {};
weapons[] = {};
magazines[] = {};
items[] = {};
};
}; };

View File

@@ -84,30 +84,159 @@ class VehicleFlags {
actionID = "flag_simpleshape"; actionID = "flag_simpleshape";
actionTitle = "Simple Shapes"; actionTitle = "Simple Shapes";
class GreenOctagon { class Blue {
actionID = "flag_simpleshape_greenoctagon"; actionID = "flags_simpleshape_blue";
actionTitle = "Green Octagon"; actionTitle = "Blue";
texture = "textures\simple_shape\flag_simpleshape_greenoctagon_co.paa";
class BlueCircle {
actionID = "flag_simpleshape_bluecircle";
actionTitle = "Blue Circle";
texture = "textures\simple_shape\flag_simpleshape_bluecircle_co.paa";
};
class BlueOctagon {
actionID = "flag_simpleshape_blueoctagon";
actionTitle = "Blue Octagon";
texture = "textures\simple_shape\flag_simpleshape_blueoctagon_co.paa";
};
class BluePentagon {
actionID = "flag_simpleshape_bluepentagon";
actionTitle = "Blue Pentagon";
texture = "textures\simple_shape\flag_simpleshape_bluepentagon_co.paa";
};
class BlueSquare {
actionID = "flag_simpleshape_bluesquare";
actionTitle = "Blue Square";
texture = "textures\simple_shape\flag_simpleshape_bluesquare_co.paa";
};
class BlueTriangle {
actionID = "flag_simpleshape_bluetriangle";
actionTitle = "Blue Triangle";
texture = "textures\simple_shape\flag_simpleshape_bluetriangle_co.paa";
};
}; };
class BlueCircle {
actionID = "flag_simpleshape_bluecircle"; class Green {
actionTitle = "Blue Circle"; actionID = "flags_simpleshape_green";
texture = "textures\simple_shape\flag_simpleshape_bluecircle_co.paa"; actionTitle = "Green";
class GreenCircle {
actionID = "flag_simpleshape_greencircle";
actionTitle = "Green Circle";
texture = "textures\simple_shape\flag_simpleshape_greencircle_co.paa";
};
class GreenOctagon {
actionID = "flag_simpleshape_greenoctagon";
actionTitle = "Green Octagon";
texture = "textures\simple_shape\flag_simpleshape_greenoctagon_co.paa";
};
class GreenPentagon {
actionID = "flag_simpleshape_greenpentagon";
actionTitle = "Green Pentagon";
texture = "textures\simple_shape\flag_simpleshape_greenpentagon_co.paa";
};
class GreenSquare {
actionID = "flag_simpleshape_greensquare";
actionTitle = "Green Square";
texture = "textures\simple_shape\flag_simpleshape_greensquare_co.paa";
};
class GreenTriangle {
actionID = "flag_simpleshape_greentriangle";
actionTitle = "Green Triangle";
texture = "textures\simple_shape\flag_simpleshape_greentriangle_co.paa";
};
}; };
class OrangeSquare {
actionID = "flag_simpleshape_orangesquare"; class Orange {
actionTitle = "Orange Square"; actionID = "flags_simpleshape_orange";
texture = "textures\simple_shape\flag_simpleshape_orangesquare_co.paa"; actionTitle = "Orange";
class OrangeCircle {
actionID = "flag_simpleshape_orangecircle";
actionTitle = "Orange Circle";
texture = "textures\simple_shape\flag_simpleshape_orangecircle_co.paa";
};
class OrangeOctagon {
actionID = "flag_simpleshape_orangeoctagon";
actionTitle = "Orange Octagon";
texture = "textures\simple_shape\flag_simpleshape_orangeoctagon_co.paa";
};
class OrangePentagon {
actionID = "flag_simpleshape_orangepentagon";
actionTitle = "Orange Pentagon";
texture = "textures\simple_shape\flag_simpleshape_orangepentagon_co.paa";
};
class OrangeSquare {
actionID = "flag_simpleshape_orangesquare";
actionTitle = "Orange Square";
texture = "textures\simple_shape\flag_simpleshape_orangesquare_co.paa";
};
class OrangeTriangle {
actionID = "flag_simpleshape_orangetriangle";
actionTitle = "Orange Triangle";
texture = "textures\simple_shape\flag_simpleshape_orangetriangle_co.paa";
};
}; };
class PinkTriangle {
actionID = "flag_simpleshape_pinktriangle"; class Pink {
actionTitle = "Pink Triangle"; actionID = "flags_simpleshape_pink";
texture = "textures\simple_shape\flag_simpleshape_pinktriangle_co.paa"; actionTitle = "Pink";
class PinkCircle {
actionID = "flag_simpleshape_pinkcircle";
actionTitle = "Pink Circle";
texture = "textures\simple_shape\flag_simpleshape_pinkcircle_co.paa";
};
class PinkOctagon {
actionID = "flag_simpleshape_pinkoctagon";
actionTitle = "Pink Octagon";
texture = "textures\simple_shape\flag_simpleshape_pinkoctagon_co.paa";
};
class PinkPentagon {
actionID = "flag_simpleshape_pinkpentagon";
actionTitle = "Pink Pentagon";
texture = "textures\simple_shape\flag_simpleshape_pinkpentagon_co.paa";
};
class PinkSquare {
actionID = "flag_simpleshape_pinksquare";
actionTitle = "Pink Square";
texture = "textures\simple_shape\flag_simpleshape_pinksquare_co.paa";
};
class PinkTriangle {
actionID = "flag_simpleshape_pinktriangle";
actionTitle = "Pink Triangle";
texture = "textures\simple_shape\flag_simpleshape_pinktriangle_co.paa";
};
}; };
class RedPentagon {
actionID = "flag_simpleshape_redpentagon"; class Red {
actionTitle = "Red Pentagon"; actionID = "flags_simpleshape_red";
texture = "textures\simple_shape\flag_simpleshape_redpentagon_co.paa"; actionTitle = "Red";
class RedCircle {
actionID = "flag_simpleshape_redcircle";
actionTitle = "Red Circle";
texture = "textures\simple_shape\flag_simpleshape_redcircle_co.paa";
};
class RedOctagon {
actionID = "flag_simpleshape_redoctagon";
actionTitle = "Red Octagon";
texture = "textures\simple_shape\flag_simpleshape_redoctagon_co.paa";
};
class RedPentagon {
actionID = "flag_simpleshape_redpentagon";
actionTitle = "Red Pentagon";
texture = "textures\simple_shape\flag_simpleshape_redpentagon_co.paa";
};
class RedSquare {
actionID = "flag_simpleshape_redsquare";
actionTitle = "Red Square";
texture = "textures\simple_shape\flag_simpleshape_redsquare_co.paa";
};
class RedTriangle {
actionID = "flag_simpleshape_redtriangle";
actionTitle = "Red Triangle";
texture = "textures\simple_shape\flag_simpleshape_redtriangle_co.paa";
};
}; };
}; };
@@ -119,6 +248,11 @@ class VehicleFlags {
actionTitle = "17th Emblem"; actionTitle = "17th Emblem";
texture = "textures\flags_misc\flag_17th_emblem_co.paa"; texture = "textures\flags_misc\flag_17th_emblem_co.paa";
}; };
class WarlordEmblem {
actionID = "flag_17th_warlord";
actionTitle = "Warlord Emblem";
texture = "textures\flags_misc\flag_17th_warlord_co.paa";
};
class RedCross { class RedCross {
actionID = "flag_redcross"; actionID = "flag_redcross";
actionTitle = "Red Cross"; actionTitle = "Red Cross";

View File

@@ -96,6 +96,10 @@ class CfgFunctions {
#include "custom_scripts.hpp" #include "custom_scripts.hpp"
}; };
class CfgSounds {
#include "custom_sounds.hpp"
};
class CfgLeaflets { class CfgLeaflets {
#include "custom_leaflets.hpp" #include "custom_leaflets.hpp"
}; };

View File

@@ -24,15 +24,16 @@ class DOUBLES(PREFIX,client) {
class functions { class functions {
file = "framework\client\functions"; file = "framework\client\functions";
class initClient {}; class initClient {};
class addDraw3DPFH {};
class addGetNearMenPFH {};
class addMicroDAGRWaypoints {}; class addMicroDAGRWaypoints {};
class addZenModules {}; class addZenModules {};
class bindEventHandlers {}; class bindEventHandlers {};
class bindUnconsciousListener {};
class bindVehicleActions {}; class bindVehicleActions {};
class addGetNearMenPFH {};
class addDraw3DPFH {};
class registerPFHCode {};
class clearPFHCode {}; class clearPFHCode {};
class logRespawnButtonUse {};
class registerPFHCode {};
class staticLineProtection {};
}; };
}; };
@@ -119,6 +120,7 @@ class DOUBLES(PREFIX,performance) {
class addServerStatsPFH {}; class addServerStatsPFH {};
class calculateServerStats {}; class calculateServerStats {};
class addEmptyGroupCleanupPFH {}; class addEmptyGroupCleanupPFH {};
class addDeadUnitCleanupPFH {};
}; };
}; };
@@ -173,6 +175,8 @@ class DOUBLES(PREFIX,vehicleFlags) {
class addFlagActions {}; class addFlagActions {};
class draw3D {}; class draw3D {};
class getActionsFlagCategories {}; class getActionsFlagCategories {};
class compileFlagAction {};
class compileFlagCategoryAction {};
class getVehicleFlagsCfg {}; class getVehicleFlagsCfg {};
class isClassExcluded {}; class isClassExcluded {};
}; };

View File

@@ -2,31 +2,6 @@
if ( !hasInterface ) exitWith {}; if ( !hasInterface ) exitWith {};
["ace_killed", {
params ["_unit", "_causeOfDeath", "_killer", "_instigator"];
if (!local _unit) exitWith {};
if (_causeOfDeath == "respawn_button") then {
private _timeWentUnconscious = _corpse getVariable [QGVARMAIN(lastTimeKnockedOut), -1];
private _durationSpentUnconscious = -1;
if (_timeWentUnconscious > -1) then {
_durationSpentUnconscious = diag_tickTime - _timeWentUnconscious;
};
[
LEVEL_INFO,
QUOTE(COMPONENT),
"RESPAWNED WHILE UNCONSCIOUS",
[_unit, [
["durationSpentUnconscious", _durationSpentUnconscious]
]] call EFUNC(common,addPlayerInfoToArray)
] remoteExec [QEFUNC(common,log), 2];
// format["%1 was unconscious then clicked the respawn button", name _unit] remoteExec["systemChat", 0];
};
}] call CBA_fnc_addEventHandler;
[ [
{ {
params ["_unit", "_object", "_cost"]; params ["_unit", "_object", "_cost"];
@@ -39,15 +14,18 @@ if ( !hasInterface ) exitWith {};
addMissionEventHandler ["HandleChatMessage", addMissionEventHandler ["HandleChatMessage",
{ {
params ["_channel", "_owner", "_from", "_text", "_person", "_name", "_strID", "_forcedDisplay", "_isPlayerMessage", "_sentenceType", "_chatMessageType"]; params ["_channel", "_owner", "_from", "_text", "_person", "_name", "_strID", "_forcedDisplay", "_isPlayerMessage", "_sentenceType", "_chatMessageType"];
if ( missionNamespace getVariable ["milsim_sideChat", false] ) exitWith{ false };
if (_channel != 1) exitWith { false };
if ( ( admin _owner ) != 0 ) exitWith { false }; if ( ( admin _owner ) != 0 ) exitWith { false };
if ( !isNull ( getAssignedCuratorLogic _person ) ) exitWith { false }; if ( !isNull ( getAssignedCuratorLogic _person ) ) exitWith { false };
if ( (missionNamespace getVariable ["milsim_globalChat", false] ) && ( _channel == 0 ) ) exitWith{ false };
if ( (missionNamespace getVariable ["milsim_sideChat", false] ) && ( _channel == 1 ) ) exitWith{ false };
if ( (missionNamespace getVariable ["milsim_commandChat", false] && ( _channel == 2 ) ) ) exitWith{ false };
if ( (missionNamespace getVariable ["milsim_groupChat", false] ) && ( _channel == 3 ) ) exitWith{ false };
if ( (missionNamespace getVariable ["milsim_vehicleChat", false] && ( _channel == 4 ) ) ) exitWith{ false };
if ( (missionNamespace getVariable ["milsim_directChat", false] ) && ( _channel == 5 ) ) exitWith{ false };
true; true;
} }
]; ];

View File

@@ -1,13 +0,0 @@
#include "..\script_component.hpp"
if (!hasInterface) exitWith {};
["ace_medical_knockOut", { // local event that's also used directly by the ACE medical statemachine
private _unit = _this;
_this setVariable [QGVARMAIN(lastTimeKnockedOut), diag_tickTime, true];
}] call CBA_fnc_addEventHandler;
["ace_medical_WakeUp", { // local event that's also used directly by the ACE medical statemachine
private _unit = _this;
_this setVariable [QGVARMAIN(lastTimeKnockedOut), nil, true];
}] call CBA_fnc_addEventHandler;

View File

@@ -29,39 +29,6 @@ _unflip =
["LandVehicle", 0, ["ACE_MainActions"], _unflip, true] call ace_interact_menu_fnc_addActionToClass; ["LandVehicle", 0, ["ACE_MainActions"], _unflip, true] call ace_interact_menu_fnc_addActionToClass;
_patchTire =
[
"patchTire",
"Patch Tire",
"\a3\ui_f\data\IGUI\Cfg\Actions\repair_ca.paa",
{
[_player, "AinvPknlMstpSnonWnonDr_medic5", 0] call ace_common_fnc_doAnimation;
[
30,
[_player, _target],
{
params ["_args"];
_args params ["_player", "_target"];
hint "Tire Patched";
_target setDamage 0.2;
_target setVariable["milsim_ace_repair_wheel_canPatch", false];
},
{
params ["_args"];
_args params ["_player", "_target"];
hint "Stopped repair";
[_player, "", 0] call ace_common_fnc_doAnimation;
},
"Patching"
] call ace_common_fnc_progressBar
},
{ ( alive _target ) && ( [_player, "ToolKit"] call ace_common_fnc_hasItem ) && ( damage _target > 0.2 ) && ( _target getVariable["milsim_ace_repair_wheel_canPatch", true] ) }
] call ace_interact_menu_fnc_createAction;
["ACE_Wheel", 0, ["ACE_MainActions"], _patchTire, true] call ace_interact_menu_fnc_addActionToClass;
diag_log text "[MILSIM] (client) vehicle actions bound"; diag_log text "[MILSIM] (client) vehicle actions bound";
nil; nil;

View File

@@ -8,13 +8,17 @@ call FUNC(addZenModules);
call FUNC(bindEventHandlers); call FUNC(bindEventHandlers);
call FUNC(bindVehicleActions); call FUNC(bindVehicleActions);
// add core getNearMenPFH handler
localNamespace setVariable [QGVAR(nearMen), []]; localNamespace setVariable [QGVAR(nearMen), []];
call FUNC(addGetNearMenPFH); call FUNC(addGetNearMenPFH);
// add core draw3dPFH handler
localNamespace setVariable [QGVAR(pfhCode), []]; localNamespace setVariable [QGVAR(pfhCode), []];
call FUNC(addDraw3DPFH); call FUNC(addDraw3DPFH);
// add listener that tracks when the player goes unconscious and saves a variable with time // add listener that tracks using the respawn button while unconscious
call FUNC(bindUnconsciousListener); call FUNC(logRespawnButtonUse);
// add conditional eject-from-vehicle handler to apply temp invincibility when static line jumping
call FUNC(staticLineProtection);
[ [
LEVEL_DEBUG, LEVEL_DEBUG,

View File

@@ -0,0 +1,57 @@
#include "..\script_component.hpp"
if ( !hasInterface ) exitWith {};
["ace_killed", {
params ["_unit", "_causeOfDeath", "_killer", "_instigator"];
if (not (local _unit)) exitWith {};
private _causeOfDeath = _unit getVariable ["ace_medical_causeOfDeath", "#scripted"];
private _triageLevel = _unit call ace_medical_treatment_fnc_getTriageStatus;
if (_causeOfDeath != "respawn_button") exitWith {};
private _timeWentUnconscious = _unit getVariable [QGVARMAIN(lastTimeKnockedOut), -1];
private _durationSpentUnconscious = -1;
if (_timeWentUnconscious isEqualTo -1) exitWith {};
_durationSpentUnconscious = diag_tickTime - _timeWentUnconscious;
[
LEVEL_INFO,
QUOTE(COMPONENT),
"RESPAWNED WHILE UNCONSCIOUS",
[_unit, [
["durationSpentUnconscious", _durationSpentUnconscious],
["triageLevel", _triageLevel#1]
]] call EFUNC(common,addPlayerInfoToArray)
] remoteExec [QEFUNC(common,log), 2];
// format["%1 was unconscious then clicked the respawn button", name _unit] remoteExec["systemChat", 0];
}] call CBA_fnc_addEventHandler;
["ace_medical_knockOut", { // local event for module & epi event
// systemChat format["ace_medical_knockOut: %1", _this];
private _unit = _this;
if (not (local _unit)) exitWith {};
_this setVariable [QGVARMAIN(lastTimeKnockedOut), diag_tickTime];
}] call CBA_fnc_addEventHandler;
["ace_medical_WakeUp", { // local event for module & epi event
// systemChat format["ace_medical_WakeUp: %1", _this];
private _unit = _this;
if (not (local _unit)) exitWith {};
_this setVariable [QGVARMAIN(lastTimeKnockedOut), nil];
}] call CBA_fnc_addEventHandler;
["ace_unconscious", { // used when applying damage
params ["_unit", "_isUnconscious"];
if (not (local _unit)) exitWith {};
if (_isUnconscious && isNil {_unit getVariable QGVARMAIN(lastTimeKnockedOut)}) then {
// systemChat format["%1 is unconscious", _unit];
_unit setVariable [QGVARMAIN(lastTimeKnockedOut), diag_tickTime];
} else {
// systemChat format["%1 is conscious", _unit];
_unit setVariable [QGVARMAIN(lastTimeKnockedOut), nil];
};
}] call CBA_fnc_addEventHandler;

View File

@@ -0,0 +1,40 @@
#include "..\script_component.hpp"
if ( !hasInterface ) exitWith {};
// Add GetOutMan event handler to grant temporary invincibility to players ejecting from vehicles
// Only for players who have "hooked up" using VS static line
// and are ejecting from a plane or helicopter above 100m
player addEventHandler ["GetOutMan", {
params ["_unit", "_role", "_vehicle", "_turret", "_isEject"];
if (!isEject) exitWith {};
if (isNil {_unit getVariable "VS_Jump"}) exitWith {};
if (
not (_vehicle isKindOf "Plane" || _vehicle isKindOf "Helicopter") ||
((getPosATL _vehicle)#2) < 100
) exitWith {};
// disable damage for the unit to avoid collision damage
_unit allowDamage false;
// tested - vehicle _unit is the _unit, as this EH runs when they have left the vehicle
[
{!isNull (objectParent _this)}, // condition - wait until player re-enters vehicle (chute)
{
// if they enter a chute within 5 seconds, disable chute damage
(vehicle _this) allowDamage false;
// then wait X seconds and re-enable damage for both
[{
_this allowDamage true;
(vehicle _this) allowDamage true;
}, _this, 5] call CBA_fnc_waitAndExecute;
},
_unit, // args
2, // timeout
{ // run on timeout, if for some reason they don't enter a chute
// re-enable damage for unit
_this allowDamage true;
}
] call CBA_fnc_waitUntilAndExecute;
}];

View File

@@ -1,15 +1,33 @@
#include "..\script_component.hpp" #include "..\script_component.hpp"
//---------------------
// Global Chat
//---------------------
[
QGVARMAIN(globalChat),
"CHECKBOX",
"Global Chat Text Enabled",
[QUOTE(SETTINGS_GROUP_NAME), QUOTE(COMPONENT_BEAUTIFIED)],
true, // default value
true, // requires restart
{
params ["_value"];
[
QGVARMAIN(globalChat),
_value
] call EFUNC(common,logSettingChanged);
}
] call CBA_fnc_addSetting;
//--------------------- //---------------------
// Side Chat // Side Chat
//--------------------- //---------------------
[ [
QGVARMAIN(sideChat), QGVARMAIN(sideChat),
"CHECKBOX", "CHECKBOX",
"Side Chat Text Enabled", "Side Chat Text Enabled",
[QUOTE(SETTINGS_GROUP_NAME), QUOTE(COMPONENT_BEAUTIFIED)], [QUOTE(SETTINGS_GROUP_NAME), QUOTE(COMPONENT_BEAUTIFIED)],
false, // default value true, // default value
true, // requires restart true, // requires restart
{ {
params ["_value"]; params ["_value"];
@@ -20,7 +38,92 @@
} }
] call CBA_fnc_addSetting; ] call CBA_fnc_addSetting;
//---------------------
// Command Chat
//---------------------
[
QGVARMAIN(commandChat),
"CHECKBOX",
"Command Chat Text Enabled",
[QUOTE(SETTINGS_GROUP_NAME), QUOTE(COMPONENT_BEAUTIFIED)],
true, // default value
true, // requires restart
{
params ["_value"];
[
QGVARMAIN(commandChat),
_value
] call EFUNC(common,logSettingChanged);
}
] call CBA_fnc_addSetting;
//---------------------
// Group Chat
//---------------------
[
QGVARMAIN(groupChat),
"CHECKBOX",
"Group Chat Text Enabled",
[QUOTE(SETTINGS_GROUP_NAME), QUOTE(COMPONENT_BEAUTIFIED)],
true, // default value
true, // requires restart
{
params ["_value"];
[
QGVARMAIN(groupChat),
_value
] call EFUNC(common,logSettingChanged);
}
] call CBA_fnc_addSetting;
//---------------------
// Vehicle Chat
//---------------------
[
QGVARMAIN(vehicleChat),
"CHECKBOX",
"Vehicle Chat Text Enabled",
[QUOTE(SETTINGS_GROUP_NAME), QUOTE(COMPONENT_BEAUTIFIED)],
true, // default value
true, // requires restart
{
params ["_value"];
[
QGVARMAIN(vehicleChat),
_value
] call EFUNC(common,logSettingChanged);
}
] call CBA_fnc_addSetting;
//---------------------
// Vehicle Chat
//---------------------
[
QGVARMAIN(directChat),
"CHECKBOX",
"Direct Chat Text Enabled",
[QUOTE(SETTINGS_GROUP_NAME), QUOTE(COMPONENT_BEAUTIFIED)],
true, // default value
true, // requires restart
{
params ["_value"];
[
QGVARMAIN(directChat),
_value
] call EFUNC(common,logSettingChanged);
}
] call CBA_fnc_addSetting;
[QGVARMAIN(globalChat), false] call CBA_settings_fnc_set;
[QGVARMAIN(sideChat), false] call CBA_settings_fnc_set; [QGVARMAIN(sideChat), false] call CBA_settings_fnc_set;
[QGVARMAIN(commandChat), false] call CBA_settings_fnc_set;
[QGVARMAIN(groupChat), false] call CBA_settings_fnc_set;
[QGVARMAIN(vehicleChat), false] call CBA_settings_fnc_set;
[QGVARMAIN(directChat), false] call CBA_settings_fnc_set;
diag_log text "[MILSIM] (settings) Custom CBA settings initialized"; diag_log text "[MILSIM] (settings) Custom CBA settings initialized";

View File

@@ -14,6 +14,44 @@ call EFUNC(common,logMissionInfo);
call EFUNC(fbcb2_assets,initServer); call EFUNC(fbcb2_assets,initServer);
call EFUNC(reinsert,initServer); call EFUNC(reinsert,initServer);
// globally disable zeus lightning bolt functionality
_curators = allMissionObjects "ModuleCurator_F";
{
_x removeCuratorAddons ["CuratorOnly_Modules_F_Curator_Lightning"];
_x removeCuratorAddons ["A3_Modules_F_Curator_Lightning"];
} foreach _curators;
// add dead unit time marking for custom garbage cleanup function
addMissionEventHandler ["EntityKilled", {
params ["_unit", "_killer", "_instigator", "_useEffects"];
if not (_unit isKindOf "CAManBase") exitWith {};
_unit setVariable["milsim_death_time", time];
_unit addEventHandler ["Deleted", {
params ["_entity"];
_remainsCollector = _entity getVariable["milsim_garbage_collected", false];
_decayTime = time - (_entity getVariable ["milsim_death_time", time]);
_i = allUsers select { (getUserInfo _x)#1 isEqualTo _ownerId;};
_owner = if ( _i isEqualTo []) then [ { "server" }, { (getUserInfo (_i#0))#3 }];
diag_log format["isServer: %5, deleted object owned by: %1 via remainsCollector: %2 after %3 seconds of type: %4", _owner, str (not _remainsCollector), _decayTime, _entity, isServer];
}];
}];
// add zeus deletion logging to curator objects
{
_x addEventHandler ["CuratorObjectDeleted", {
params ["_curator", "_entity"];
_decayTime = time - (_entity getVariable ["milsim_death_time", time]);
diag_log format["deleted object: %1 via curator: %2 after %3 seconds", _entity, name _curator, _decayTime];
}];
} foreach _curators;
// declare init complete to other modules // declare init complete to other modules
missionNamespace setVariable [QGVARMAIN(complete), true, true]; missionNamespace setVariable [QGVARMAIN(complete), true, true];

View File

@@ -1,5 +1,9 @@
#include "..\script_component.hpp" #include "..\script_component.hpp"
//---------------------
// Garbage Collection
//---------------------
[ [
QGVAR(emptyGroupCleanup_enable), QGVAR(emptyGroupCleanup_enable),
"CHECKBOX", "CHECKBOX",
@@ -22,6 +26,28 @@
} }
] call CBA_fnc_addSetting; ] call CBA_fnc_addSetting;
[
QGVAR(deadUnitCleanup_enable),
"CHECKBOX",
"Dead Unit Cleanup Enabled",
[QUOTE(SETTINGS_GROUP_NAME), QUOTE(COMPONENT_BEAUTIFIED)],
true,
true,
{
params ["_value"];
[
QGVAR(deadUnitCleanup_enable),
_value
] call EFUNC(common,logSettingChanged);
if (!isNull (missionNamespace getVariable [QGVAR(deadUnitCleanupPFH), locationNull])) then {
deleteLocation GVAR(deadUnitCleanupPFH);
};
call FUNC(addDeadUnitCleanupPFH);
}
] call CBA_fnc_addSetting;
//--------------------- //---------------------
// Server CPS // Server CPS
//--------------------- //---------------------

View File

@@ -0,0 +1,55 @@
#include "..\script_component.hpp"
[
LEVEL_INFO,
QUOTE(COMPONENT),
"Initializing dead unit deletion PFH",
[]
] call EFUNC(common,log);
GVAR(deadUnitCleanupPFH) = [
{
_maxTime = getMissionConfigValue ["corpseRemovalMaxTime", 300] * 1.5;
_maxDead = getMissionConfigValue ["corpseLimit", 80];
// _dead = allDead select { (_x isKindOf "CAManBase") and ( ( (time - (_x getVariable ["milsim_death_time", time] ) ) > (_maxTime * 1.5) ) ) };
// _dead = _dead apply { [ (time - (_x getVariable ["milsim_death_time", time] ) ), _x ] };
_dead = [];
{
if not (_x isKindOf "CAManBase") then { continue };
if not (isInRemainsCollector _x) then { continue };
_dead pushBack [time - (_x getVariable ["milsim_death_time", time] ), _x];
} forEach allDead;
_dead sort false;
_toDelete = 0 max ( (count _dead ) - _maxDead );
_dead = _dead select [0, _toDelete];
{
_unit = _x#1;
_unit setVariable ["milsim_garbage_collected", true];
deleteVehicle (_unit);
} foreach _dead;
},
450,
[],
{ // on creation
[
LEVEL_INFO,
QUOTE(COMPONENT),
"dead unit deletion PFH loaded",
[]
] call EFUNC(common,log);
},
{ // on deletion
[
LEVEL_INFO,
QUOTE(COMPONENT),
"dead unit deletion PFH unloaded",
[]
] call EFUNC(common,log);
},
{ (missionNamespace getVariable [QGVAR(deadUnitCleanup_enable), false]) },
{ false },
[]
] call CBA_fnc_createPerFrameHandlerObject;

View File

@@ -10,9 +10,39 @@
GVAR(emptyGroupCleanupPFH) = [ GVAR(emptyGroupCleanupPFH) = [
{ {
{ {
if (local _x) then { if ((count units _x) == 0) then {
if ((count units _x) == 0) then { if (local _x) then {
[
LEVEL_INFO,
QUOTE(COMPONENT),
"DELETING EMPTY GROUP",
[
["groupId", groupId _x],
["netId", netId _x]
]
] call EFUNC(common,log);
deleteGroup _x; deleteGroup _x;
} else {
if (isServer) then {
[
LEVEL_INFO,
QUOTE(COMPONENT),
"NON LOCAL EMPTY GROUP",
[
["groupId", groupId _x],
["groupOwner", groupOwner _x]
]
] call EFUNC(common,log);
} else {
[
LEVEL_INFO,
QUOTE(COMPONENT),
"EMPTY REMOTE GROUP",
[
["groupId", groupId _x]
]
] call EFUNC(common,log);
};
}; };
}; };
} forEach allGroups; } forEach allGroups;
@@ -39,6 +69,3 @@ GVAR(emptyGroupCleanupPFH) = [
{ not (missionNamespace getVariable [QGVAR(emptyGroupCleanup_enable), false]) }, { not (missionNamespace getVariable [QGVAR(emptyGroupCleanup_enable), false]) },
[] []
] call CBA_fnc_createPerFrameHandlerObject; ] call CBA_fnc_createPerFrameHandlerObject;

View File

@@ -29,7 +29,7 @@
// log to RPT // log to RPT
[ [
{_this call EFUNC(common,log);}, {_this remoteExec [QEFUNC(common,log), 2]},
[ [
LEVEL_INFO, LEVEL_INFO,
QUOTE(COMPONENT), QUOTE(COMPONENT),

View File

@@ -12,7 +12,6 @@
private _rawCPS = _counter / (diag_frameNo - _frameNo); private _rawCPS = _counter / (diag_frameNo - _frameNo);
missionNamespace setVariable [QGVAR(server_raw_cps), _rawCPS]; missionNamespace setVariable [QGVAR(server_raw_cps), _rawCPS];
publicVariable QGVAR(server_raw_cps);
// with suspension // with suspension
private _counter = 0; private _counter = 0;
@@ -26,7 +25,6 @@
private _serverCPS = _counter / (diag_frameNo - _frameNo); private _serverCPS = _counter / (diag_frameNo - _frameNo);
missionNamespace setVariable [QGVAR(server_cps), _counter / (diag_frameNo - _frameNo)]; missionNamespace setVariable [QGVAR(server_cps), _counter / (diag_frameNo - _frameNo)];
publicVariable QGVAR(server_cps);
// log to RPT // log to RPT
[ [

View File

@@ -14,7 +14,7 @@ localNamespace setVariable [QGVAR(checkReinsertQueueClassesAdded), []];
localNamespace setVariable [QGVAR(lastReinsertQueueCheck), diag_tickTime]; localNamespace setVariable [QGVAR(lastReinsertQueueCheck), diag_tickTime];
// add actions to pilot classes, and don't apply to child classes // add actions to pilot classes, and don't apply to child classes
[["B_Helipilot_F", "B_helicrew_F"], false] call FUNC(addCheckQueueSelfAction); // [["B_Helipilot_F", "B_helicrew_F"], false] call FUNC(addCheckQueueSelfAction);
///////////////////////////////////////////////////// /////////////////////////////////////////////////////

View File

@@ -162,7 +162,7 @@ if (isNil "_items") exitWith {
[_box,1] call ace_cargo_fnc_setSize; [_box,1] call ace_cargo_fnc_setSize;
// ignore weight restrictions for carry/drag // ignore weight restrictions for carry/drag
_box setVariable ["ace_ignoreWeightCarry", true, true]; _box setVariable ["ace_dragging_ignoreWeightCarry", true, true];
// Return the box // Return the box
_box; _box;

View File

@@ -1,4 +1,4 @@
#define MAJOR 4 #define MAJOR 4
#define MINOR 0 #define MINOR 2
#define PATCHLVL 0 #define PATCHLVL 3
#define BUILD 0 #define BUILD 0

View File

@@ -0,0 +1,40 @@
#include "..\script_component.hpp"
params ["_target", "_player", "_params", "_flagOptionCfg"];
_params params ["_rootActionID", "_flagCategoryActionID", "_flagSubclassesCfgs"];
private _flagOptionID = getText(_flagOptionCfg >> "actionID");
private _flagOptionTitle = getText(_flagOptionCfg >> "actionTitle");
private _flagOptionTexture = getText(_flagOptionCfg >> "texture");
// if the texture doesn't exist at the config path, skip this flag option
if (not (fileExists _flagOptionTexture)) then {
diag_log format ["WARN: Flag option texture not found: %1", _flagOptionTexture];
continue
};
// diag_log format ["NewFlagOption: %1 %2", _flagOptionID, _flagOptionData];
private _newFlagOption = [
_rootActionID + "_" + _flagCategoryActionID + "_" + _flagOptionID, // id
_flagOptionTitle, // displayed title
_flagOptionTexture, // flag icon
{
params ["_target", "_player", "_params"];
_params params ["_flagOptionTexture"];
_target forceFlagTexture _flagOptionTexture;
}, // statement
{
params ["_target", "_player", "_params"];
alive _target;
// true;
}, // condition
nil, // child code
[_flagOptionTexture], // params
nil, // position
4, // distance
[false, false, false, false, false] // other params
] call ace_interact_menu_fnc_createAction;
_newFlagOption;

View File

@@ -0,0 +1,54 @@
#include "..\script_component.hpp"
// diag_log format ["NewFlagCategory: %1 %2", _flagCategory, _flagOptions];
params ["_rootActionID", "_flagCategoryCfg"];
private _flagCategoryActionID = getText(_flagCategoryCfg >> "actionID");
private _flagCategoryTitle = getText(_flagCategoryCfg >> "actionTitle");
private _flagSubclassesCfgs = _flagCategoryCfg call BIS_fnc_returnChildren;
private _flagCategoryAction = [
_rootActionID + "_" + _flagCategoryActionID, // id
_flagCategoryTitle, // displayed title
getText((_flagSubclassesCfgs#0) >> "texture"), // flag icon for category - use first flag option
{true}, // statement
{
params ["_target", "_player", "_params"];
alive _target;
// true;
}, // condition
{
// generate child code under category
// this is the level where actual flag options will be displayed
params ["_target", "_player", "_params"];
// these params are passed from the parent action
_params params ["_rootActionID", "_flagCategoryActionID", "_flagSubclassesCfgs"];
private _individualFlagActions = [];
{ // forEach _flagSubclassesCfgs; // we'll generate flag options for each category
private _flagOptionCfg = _x;
// generate flag option for this flag option
private _newFlagOption = [
_target,
_player,
_params,
_flagOptionCfg
] call FUNC(compileFlagAction);
// add flag option to category subactions
_individualFlagActions pushBack [_newFlagOption, [], _target];
} forEach _flagSubclassesCfgs;
// return the generated flag options to the category as child actions
_individualFlagActions;
}, // child code
[_rootActionID, _flagCategoryActionID, _flagSubclassesCfgs], // params
nil, // position
4, // distance
[false, false, false, false, false], // other params
nil // modifier function code
] call ace_interact_menu_fnc_createAction;
_flagCategoryAction;

View File

@@ -5,86 +5,25 @@
0: STRING - Parent action ID 0: STRING - Parent action ID
1: ARRAY - Flag category configs 1: ARRAY - Flag category configs
*/ */
#include "..\script_component.hpp"
params ["_rootActionID", "_flagCategoryCfgs"]; params ["_rootActionID", "_flagCategoryCfgs"];
private _allCategoryActions = []; private _allCategoryActions = [];
{ {
// diag_log format ["NewFlagCategory: %1 %2", _flagCategory, _flagOptions]; _flagCategoryActions = [];
if (configName _x == "SimpleShapes") then {
private _flagCategoryCfg = _x;
private _flagCategoryActionID = getText(_flagCategoryCfg >> "actionID");
private _flagCategoryTitle = getText(_flagCategoryCfg >> "actionTitle");
private _flagSubclassesCfgs = _flagCategoryCfg call BIS_fnc_returnChildren;
private _flagCategoryAction = [
_rootActionID + "_" + _flagCategoryActionID, // id
_flagCategoryTitle, // displayed title
getText((_flagSubclassesCfgs#0) >> "texture"), // flag icon for category - use first flag option
{true}, // statement
{ {
params ["_target", "_player", "_params"]; _flagCategoryActions pushBack ([_rootActionID, _x] call FUNC(compileFlagCategoryAction));
alive _target; } forEach (_x call BIS_fnc_returnChildren);
// true; } else {
}, // condition _flagCategoryActions pushBack ([_rootActionID, _x] call FUNC(compileFlagCategoryAction));
{ };
// generate child code under category
// this is the level where actual flag options will be displayed
params ["_target", "_player", "_params"];
_params params ["_rootActionID", "_flagCategoryActionID", "_flagSubclassesCfgs"];
private _individualFlagActions = [];
{ // forEach _flagSubclassesCfgs;
private _flagOptionCfg = _x;
private _flagOptionID = getText(_flagOptionCfg >> "actionID");
private _flagOptionTitle = getText(_flagOptionCfg >> "actionTitle");
private _flagOptionTexture = getText(_flagOptionCfg >> "texture");
// if the texture doesn't exist at the config path, skip this flag option
if (not (fileExists _flagOptionTexture)) then {continue};
// diag_log format ["NewFlagOption: %1 %2", _flagOptionID, _flagOptionData];
private _newFlagOption = [
_rootActionID + "_" + _flagCategoryActionID + "_" + _flagOptionID, // id
_flagOptionTitle, // displayed title
_flagOptionTexture, // flag icon
{
params ["_target", "_player", "_params"];
_params params ["_flagOptionTexture"];
_target forceFlagTexture _flagOptionTexture;
}, // statement
{
params ["_target", "_player", "_params"];
alive _target;
// true;
}, // condition
nil, // child code
[_flagOptionTexture], // params
nil, // position
4, // distance
[false, false, false, false, false] // other params
] call ace_interact_menu_fnc_createAction;
// add flag option to category subactions
_individualFlagActions pushBack [_newFlagOption, [], _target];
} forEach _flagSubclassesCfgs;
// return the generated flag options to the category as child actions
_individualFlagActions;
}, // child code
[_rootActionID, _flagCategoryActionID, _flagSubclassesCfgs], // params
nil, // position
4, // distance
[false, false, false, false, false], // other params
nil // modifier function code
] call ace_interact_menu_fnc_createAction;
// add category to all category actions array // add category to all category actions array
_allCategoryActions pushBack [_flagCategoryAction, [], _target]; {
_allCategoryActions pushBack [_x, [], _target];
} forEach _flagCategoryActions;
} forEach _flagCategoryCfgs; } forEach _flagCategoryCfgs;
_allCategoryActions; _allCategoryActions;

View File

@@ -10,11 +10,11 @@ overviewText = "THIS IS WHERE YOU DESCRIBE THE MISSION IN THE #MISSION LIST";
missionSeries = "MY SERIES NAME"; missionSeries = "MY SERIES NAME";
// What kind of mission is this? (Use only one) // What kind of mission is this? (Use only one)
missionGroup = "Saturday Op"; missionGroup = "17thSaturdayOp";
// missionGroup = "Friday Op"; // missionGroup = "17thFridayOp";
// missionGroup = "Wednesday Op"; // missionGroup = "17thWednesdayOp";
// missionGroup = "FTX"; // missionGroup = "17thFTX";
// missionGroup = "Training"; // missionGroup = "17thTraining";
// Add waypoints to players' MicroDAGR devices // Add waypoints to players' MicroDAGR devices

Binary file not shown.