Compare commits

...

50 Commits

Author SHA1 Message Date
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
21 changed files with 413 additions and 123 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

View File

@@ -4,6 +4,36 @@ 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.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

View File

@@ -7,7 +7,7 @@
#define COMMAND_CALLSIGN SPARTAN #define COMMAND_CALLSIGN SPARTAN
#define RRC_CALLSIGN TIGER #define RRC_CALLSIGN TIGER
#define MEDIC_CALLSIGN LIFELINE #define MEDIC_CALLSIGN LIFELINE
#define ALPHA_CALLSIGN BLACKJACK #define ALPHA_CALLSIGN ROGUE
#define ECHO_CALLSIGN FIREBRAND #define ECHO_CALLSIGN FIREBRAND
#define WPN_CALLSIGN BLACKFOOT #define WPN_CALLSIGN BLACKFOOT

View File

@@ -13,7 +13,7 @@ class DisallowedEquipment {
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,12 +95,6 @@ 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
"UK3CB_M16A1_LSW", // M16 Series
"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_14", // NVG AN/PVS-14
"USP_PVS_15" // NVG AN/PVS-15 "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
@@ -160,6 +148,7 @@ class DisallowedEquipment {
label = "TABBED WEAPON"; label = "TABBED WEAPON";
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 +197,90 @@ 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
}; };
}; };

View File

@@ -21,18 +21,14 @@ class SupplyCrates {
{"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",12},
{"rhs_mag_m67",12}, {"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}, {"Tier1_30Rnd_556x45_M856A1_EMag",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}, {"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",25},
{"SMA_20Rnd_762x51mm_M80A1_EPR_Tracer",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",25},
@@ -42,8 +38,6 @@ class SupplyCrates {
{"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},
{"rhssaf_30rnd_556x45_EPR_G36", 25},
{"DemoCharge_Remote_Mag",16} {"DemoCharge_Remote_Mag",16}
}; };
items[] = {}; items[] = {};
@@ -56,13 +50,15 @@ 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}, {"Tier1_30Rnd_556x45_M856A1_EMag",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}
@@ -168,12 +164,15 @@ 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[] = {};
}; };

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

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

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

@@ -14,6 +14,13 @@ 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;
// 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

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

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