Compare commits
72 Commits
293a050027
...
4.1.2
| Author | SHA1 | Date | |
|---|---|---|---|
| af7600ac16 | |||
|
|
fac86f18f0 | ||
|
|
87b6f359c1 | ||
|
|
cbd8b5963e | ||
|
|
09ee014912 | ||
|
|
5b482b022f | ||
|
|
8afe420527 | ||
| ff98546907 | |||
| 5a1e6dd1a1 | |||
|
|
0524af05b9 | ||
|
|
023550743d | ||
|
|
ab28ed4e50 | ||
|
|
8794dc226d | ||
|
|
2bfaaacfc6 | ||
| 8a4f161df9 | |||
| cc5b8bbf45 | |||
|
eb4959a2ba
|
|||
|
643a7f212b
|
|||
| 6c4740dd1f | |||
|
|
f128e0fec8 | ||
|
|
32dda56f69 | ||
|
|
90f3caf1f9 | ||
| 706794a114 | |||
|
|
ee43868a32 | ||
|
|
e7af2f115e | ||
| c1aeace994 | |||
| d9beb44c72 | |||
|
|
44b842ad33 | ||
| d9b5dd66a8 | |||
| d6549fc040 | |||
|
|
073f5ffd63 | ||
|
|
53a8b782e6 | ||
|
737f1ef7ee
|
|||
|
|
3e4eda2843 | ||
|
|
34c36f58e2 | ||
| 1279503743 | |||
| 35dd63cbab | |||
| 3c0124070e | |||
|
|
77c3b0d67a | ||
|
|
2a776718c0 | ||
|
5d50375256
|
|||
|
6917db3b7d
|
|||
|
d2b8e10baf
|
|||
|
496fd21830
|
|||
|
f3c95322e9
|
|||
|
7d10d2622d
|
|||
|
a20f477ee0
|
|||
|
c29e46d5f7
|
|||
|
de074b62f2
|
|||
|
|
40ee46ea98 | ||
|
|
10ef37cb80 | ||
|
|
74b630bfaa | ||
|
|
e64b29479d | ||
|
|
d25e67182a | ||
|
|
2218898ff7 | ||
|
|
4976aa51b8 | ||
|
|
ddf0fe91d4 | ||
|
|
72bac32219 | ||
|
|
21dbb725ac | ||
|
|
57c012195a | ||
|
|
d71ba9e3bd | ||
|
|
32491da46f | ||
|
|
94814b6d07 | ||
|
|
d2a557dda1 | ||
|
|
81f4bb4d48 | ||
|
|
6f5a0ca523 | ||
|
|
4eae553c6d | ||
|
|
3194409192 | ||
|
|
8e10819b92 | ||
|
|
68f35a9b44 | ||
|
|
f11cadbd06 | ||
|
|
a00f6cb0da |
37
.gitea/ISSUE_TEMPLATE/bug_report.yaml
Normal file
37
.gitea/ISSUE_TEMPLATE/bug_report.yaml
Normal 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
|
||||
1
.gitea/ISSUE_TEMPLATE/config.yaml
Normal file
1
.gitea/ISSUE_TEMPLATE/config.yaml
Normal file
@@ -0,0 +1 @@
|
||||
blank_issues_enabled: true
|
||||
34
.gitea/ISSUE_TEMPLATE/feature_request.yaml
Normal file
34
.gitea/ISSUE_TEMPLATE/feature_request.yaml
Normal 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
|
||||
@@ -41,7 +41,7 @@ jobs:
|
||||
run: |
|
||||
$headers = @{
|
||||
"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
|
||||
|
||||
@@ -49,7 +49,7 @@ jobs:
|
||||
run: |
|
||||
$headers = @{
|
||||
"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
|
||||
|
||||
@@ -57,12 +57,12 @@ jobs:
|
||||
run: |
|
||||
$headers = @{
|
||||
"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 }}`"}"
|
||||
|
||||
- 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:
|
||||
tag_name: 'testing-release'
|
||||
name: 'testing-release'
|
||||
70
.gitea/workflows/on-release.yaml
Normal file
70
.gitea/workflows/on-release.yaml
Normal 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
|
||||
38
CHANGELOG.md
38
CHANGELOG.md
@@ -4,6 +4,44 @@ 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).
|
||||
|
||||
## [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
|
||||
|
||||
Version 4 marks a massive rewrite due in whole to @IndigoFox by updating the internals of the framework into CBA macros and functions.
|
||||
|
||||
24
README.md
24
README.md
@@ -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.
|
||||
|
||||
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:
|
||||
```markdown
|
||||
├── aaFrameworkUtils/
|
||||
```
|
||||
├── defines/
|
||||
├── framework/
|
||||
├── images/
|
||||
@@ -14,13 +13,17 @@ Once copied, the final structure should appear similar to the following:
|
||||
├── sounds/
|
||||
├── textures/
|
||||
├── CHANGELOG.md
|
||||
├── custom_leaflets.hpp
|
||||
├── custom_scripts.hpp
|
||||
├── CHANGELOG.md
|
||||
├── description.ext
|
||||
├── mission_settings.hpp
|
||||
├── mission.jpg
|
||||
├── 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.
|
||||
|
||||
@@ -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 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
|
||||
|
||||
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
|
||||
|
||||
## 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/
|
||||
|
||||
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.
|
||||
- Flags are defined in `defines/VehicleFlags.hpp`.
|
||||
|
||||
c
|
||||
39
custom_leaflets.hpp
Normal file
39
custom_leaflets.hpp
Normal file
@@ -0,0 +1,39 @@
|
||||
// This contains custom definitions for leaflets. It is not required to set this up, but you're welcome to if you want to use them.
|
||||
|
||||
// To use this, configure one or more of the below. Then use the pylon editor of a drone in EDEN to add the appropriate magazine type (like 1Rnd_Leaflets_Custom_01_F) to the drone. Then, when the drone is flying, do `drone1 fire "1Rnd_Leaflets_Custom_01_F";` to drop the leaflets. The leaflet will then be shown in the world, and can be picked up by players to read the text and see the image.
|
||||
|
||||
class Custom_01 // configuration for 1Rnd_Leaflets_Custom_01_F
|
||||
{
|
||||
text = "Leaflet text"; // text shown when previewing the leaflet full-screen. Ideally should be localized, so even player who cannot read the image can get the information
|
||||
texture = "images\leaflets\leaflet_custom_01.paa"; // leaflet texture shown when previewing the leaflet full-screen
|
||||
};
|
||||
|
||||
class Custom_02 // configuration for 1Rnd_Leaflets_Custom_02_F
|
||||
{
|
||||
text = "Leaflet text"; // text shown when previewing the leaflet full-screen. Ideally should be localized, so even player who cannot read the image can get the information
|
||||
texture = "images\leaflets\leaflet_custom_02.paa"; // leaflet texture shown when previewing the leaflet full-screen
|
||||
};
|
||||
|
||||
class Custom_03 // configuration for 1Rnd_Leaflets_Custom_03_F
|
||||
{
|
||||
text = "Leaflet text"; // text shown when previewing the leaflet full-screen. Ideally should be localized, so even player who cannot read the image can get the information
|
||||
texture = "images\leaflets\leaflet_custom_03.paa"; // leaflet texture shown when previewing the leaflet full-screen
|
||||
};
|
||||
|
||||
class Custom_04 // configuration for 1Rnd_Leaflets_Custom_04_F
|
||||
{
|
||||
text = "Leaflet text"; // text shown when previewing the leaflet full-screen. Ideally should be localized, so even player who cannot read the image can get the information
|
||||
texture = "images\leaflets\leaflet_custom_04.paa"; // leaflet texture shown when previewing the leaflet full-screen
|
||||
};
|
||||
|
||||
class Custom_05 // configuration for 1Rnd_Leaflets_Custom_05_F
|
||||
{
|
||||
text = "Leaflet text"; // text shown when previewing the leaflet full-screen. Ideally should be localized, so even player who cannot read the image can get the information
|
||||
texture = "images\leaflets\leaflet_custom_05.paa"; // leaflet texture shown when previewing the leaflet full-screen
|
||||
};
|
||||
|
||||
class Custom_06 // configuration for 1Rnd_Leaflets_Custom_06_F
|
||||
{
|
||||
text = "Leaflet text"; // text shown when previewing the leaflet full-screen. Ideally should be localized, so even player who cannot read the image can get the information
|
||||
texture = "images\leaflets\leaflet_custom_06.paa"; // leaflet texture shown when previewing the leaflet full-screen
|
||||
};
|
||||
11
custom_scripts.hpp
Normal file
11
custom_scripts.hpp
Normal file
@@ -0,0 +1,11 @@
|
||||
// This file's contents will be included in the mission's CfgFunctions section, and serves to give you a place to define custom functions from files you've placed in /scripts.
|
||||
|
||||
class milsim_scripts {
|
||||
class functions {
|
||||
file = "scripts";
|
||||
// Add your custom functions here, like so:
|
||||
// class init {postInit = 1;}; // refers to scripts/fn_init.sqf. postInit=1 means it will be run on each machine when they're done loading the mission.
|
||||
// class customFunction1 {}; // refers to the file scripts/fn_customFunction1.sqf, and is called as milsim_scripts_fnc_customFunction1
|
||||
// class customFunction2 {}; // refers to the file scripts/fn_customFunction2.sqf, and is called as milsim_scripts_fnc_customFunction2
|
||||
};
|
||||
};
|
||||
@@ -7,7 +7,7 @@
|
||||
#define COMMAND_CALLSIGN SPARTAN
|
||||
#define RRC_CALLSIGN TIGER
|
||||
#define MEDIC_CALLSIGN LIFELINE
|
||||
#define ALPHA_CALLSIGN BLACKJACK
|
||||
#define ALPHA_CALLSIGN ROGUE
|
||||
#define ECHO_CALLSIGN FIREBRAND
|
||||
#define WPN_CALLSIGN BLACKFOOT
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ class DisallowedEquipment {
|
||||
items[] = {
|
||||
"17BN_ANPVS14", // NVG AN/PVS-14
|
||||
"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_F", //Mk200 Series
|
||||
"rhs_weap_g36c", // G36 Series
|
||||
@@ -34,11 +34,6 @@ class DisallowedEquipment {
|
||||
"rhs_weap_m14_wd", // M14 Series
|
||||
"rhs_weap_m14_weap_m14ebrri", // 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", // M27 Series
|
||||
"rhsusf_ANPVS_14", // NVG AN/PVS-14
|
||||
@@ -100,12 +95,6 @@ class DisallowedEquipment {
|
||||
"UK3CB_M14DMR_Railed_BLK", // M14 Series
|
||||
"UK3CB_M14DMR_Railed", // 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_15" // NVG AN/PVS-15
|
||||
};
|
||||
@@ -132,10 +121,9 @@ class DisallowedEquipment {
|
||||
"optic_lrps_tna_F", //Nightforce Series Optic
|
||||
"optic_lrps", //Nightforce Series Optic
|
||||
"optic_Nightstalker", // Thermal Optic
|
||||
"optic_tws_mg", // Thermal Optic
|
||||
"optic_tws", // Thermal Optic
|
||||
"rhsusf_acc_anpas13gv1", // Thermal Optic
|
||||
"rhsusf_acc_anpvs27", // Thermal Optic
|
||||
"optic_tws_mg", // Thermal Optic
|
||||
"Tier1_ANPVS10_Tan", // Thermal Optic
|
||||
"Tier1_ATACR18_ADM_Black_Vanilla", //Nightforce Series Optic
|
||||
"Tier1_ATACR18_ADM_Black", //Nightforce Series Optic
|
||||
@@ -160,6 +148,7 @@ class DisallowedEquipment {
|
||||
label = "TABBED WEAPON";
|
||||
description = "Items that are allowed for individuals with Ranger Tab.";
|
||||
items[] = {
|
||||
"optic_tws", // Thermal Optic
|
||||
"arifle_MX_black_F", // MX Series
|
||||
"arifle_MX_F", // MX 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", // 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
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -21,18 +21,14 @@ class SupplyCrates {
|
||||
{"rhsusf_200Rnd_556x45_mixed_soft_pouch_coyote",25},
|
||||
{"rhsusf_20Rnd_762x51_m993_Mag",25},
|
||||
{"SmokeShell",12},
|
||||
{"rhs_mag_m67",12},
|
||||
{"rhs_mag_m67",24},
|
||||
{"1Rnd_Smoke_Grenade_shell",24},
|
||||
{"1Rnd_SmokeRed_Grenade_shell",24},
|
||||
{"1Rnd_SmokeGreen_Grenade_shell",24},
|
||||
{"1Rnd_SmokeYellow_Grenade_shell",12},
|
||||
{"Tier1_30Rnd_556x45_M856A1_EMag",25},
|
||||
{"Tier1_30Rnd_556x45_Mk318Mod0_EMag",75},
|
||||
{"ACE_30Rnd_65_Creedmor_mag",25},
|
||||
{"rhs_mag_30Rnd_556x45_M855A1_Stanag",25},
|
||||
{"ACE_30Rnd_556x45_Stanag_M995_AP_mag",75},
|
||||
{"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},
|
||||
@@ -42,8 +38,6 @@ class SupplyCrates {
|
||||
{"ACE_20Rnd_762x51_M993_AP_Mag",25},
|
||||
{"rhsusf_20Rnd_762x51_SR25_m993_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}
|
||||
};
|
||||
items[] = {};
|
||||
@@ -56,13 +50,15 @@ class SupplyCrates {
|
||||
icon = "\A3\ui_f\data\map\vehicleicons\iconCrateWpns_ca.paa";
|
||||
|
||||
backpacks[] = {};
|
||||
weapons[] = {};
|
||||
weapons[] = {
|
||||
{"launch_MRAWS_green_F",2}
|
||||
};
|
||||
magazines[] = {
|
||||
{"MRAWS_HEAT_F",35},
|
||||
{"MRAWS_HE_F",15},
|
||||
{"Tier1_250Rnd_762x51_Belt_M993_AP",50},
|
||||
{"Tier1_30Rnd_556x45_M856A1_EMag",25},
|
||||
{"Tier1_30Rnd_556x45_Mk318Mod0_EMag",50},
|
||||
{"rhs_mag_30Rnd_556x45_M855A1_Stanag",25},
|
||||
{"ACE_30Rnd_556x45_Stanag_M995_AP_mag",50},
|
||||
{"Titan_AA",10},
|
||||
{"Titan_AT",10},
|
||||
{"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";
|
||||
|
||||
backpacks[] = {};
|
||||
weapons[] = {};
|
||||
weapons[] = {
|
||||
{"rhs_weap_M136",2},
|
||||
{"twc_2inch_bag",3}
|
||||
};
|
||||
magazines[] = {
|
||||
{"twc_2inch_he_1rnd",70},
|
||||
{"twc_2inch_smoke_1rnd",15},
|
||||
{"twc_2inch_illum_1rnd",15},
|
||||
{"Tier1_30Rnd_556x45_Mk318Mod0_EMag",20}
|
||||
{"ACE_30Rnd_556x45_Stanag_M995_AP_mag",20}
|
||||
};
|
||||
items[] = {};
|
||||
};
|
||||
|
||||
@@ -89,17 +89,16 @@ minPlayerDistance = 500;
|
||||
|
||||
//-------------------------------------------BASE SETTINGS---------------------------------------------------------------//
|
||||
|
||||
class Params
|
||||
{
|
||||
};
|
||||
class Params {};
|
||||
|
||||
|
||||
// CfgFunctions
|
||||
class CfgFunctions {
|
||||
#include "framework\CfgFunctions.hpp"
|
||||
#include "custom_scripts.hpp"
|
||||
};
|
||||
|
||||
|
||||
class CfgLeaflets {
|
||||
#include "custom_leaflets.hpp"
|
||||
};
|
||||
|
||||
class CfgDebriefingSections {
|
||||
class acex_killTracker {
|
||||
|
||||
@@ -24,15 +24,16 @@ class DOUBLES(PREFIX,client) {
|
||||
class functions {
|
||||
file = "framework\client\functions";
|
||||
class initClient {};
|
||||
class addDraw3DPFH {};
|
||||
class addGetNearMenPFH {};
|
||||
class addMicroDAGRWaypoints {};
|
||||
class addZenModules {};
|
||||
class bindEventHandlers {};
|
||||
class bindUnconsciousListener {};
|
||||
class bindVehicleActions {};
|
||||
class addGetNearMenPFH {};
|
||||
class addDraw3DPFH {};
|
||||
class registerPFHCode {};
|
||||
class clearPFHCode {};
|
||||
class logRespawnButtonUse {};
|
||||
class registerPFHCode {};
|
||||
class staticLineProtection {};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -2,31 +2,6 @@
|
||||
|
||||
if ( !hasInterface ) exitWith {};
|
||||
|
||||
player addEventHandler["Respawn",
|
||||
{
|
||||
params ["_unit", "_corpse"];
|
||||
private _killer = _corpse getVariable ["ace_medical_causeOfDeath", "#scripted"];
|
||||
if (_killer == "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];
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
[
|
||||
{
|
||||
params ["_unit", "_object", "_cost"];
|
||||
|
||||
@@ -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];
|
||||
}] 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];
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
@@ -29,39 +29,6 @@ _unflip =
|
||||
["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";
|
||||
|
||||
nil;
|
||||
@@ -8,13 +8,17 @@ call FUNC(addZenModules);
|
||||
call FUNC(bindEventHandlers);
|
||||
call FUNC(bindVehicleActions);
|
||||
|
||||
// add core getNearMenPFH handler
|
||||
localNamespace setVariable [QGVAR(nearMen), []];
|
||||
call FUNC(addGetNearMenPFH);
|
||||
// add core draw3dPFH handler
|
||||
localNamespace setVariable [QGVAR(pfhCode), []];
|
||||
call FUNC(addDraw3DPFH);
|
||||
|
||||
// add listener that tracks when the player goes unconscious and saves a variable with time
|
||||
call FUNC(bindUnconsciousListener);
|
||||
// add listener that tracks using the respawn button while unconscious
|
||||
call FUNC(logRespawnButtonUse);
|
||||
// add conditional eject-from-vehicle handler to apply temp invincibility when static line jumping
|
||||
call FUNC(staticLineProtection);
|
||||
|
||||
[
|
||||
LEVEL_DEBUG,
|
||||
|
||||
56
framework/client/functions/fn_logRespawnButtonUse.sqf
Normal file
56
framework/client/functions/fn_logRespawnButtonUse.sqf
Normal 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;
|
||||
40
framework/client/functions/fn_staticLineProtection.sqf
Normal file
40
framework/client/functions/fn_staticLineProtection.sqf
Normal 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;
|
||||
}];
|
||||
@@ -14,6 +14,13 @@ call EFUNC(common,logMissionInfo);
|
||||
call EFUNC(fbcb2_assets,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
|
||||
missionNamespace setVariable [QGVARMAIN(complete), true, true];
|
||||
|
||||
|
||||
@@ -10,9 +10,39 @@
|
||||
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;
|
||||
} 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;
|
||||
@@ -39,6 +69,3 @@ GVAR(emptyGroupCleanupPFH) = [
|
||||
{ not (missionNamespace getVariable [QGVAR(emptyGroupCleanup_enable), false]) },
|
||||
[]
|
||||
] call CBA_fnc_createPerFrameHandlerObject;
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
// log to RPT
|
||||
[
|
||||
|
||||
{_this call EFUNC(common,log);},
|
||||
{_this remoteExec [QEFUNC(common,log), 2]},
|
||||
[
|
||||
LEVEL_INFO,
|
||||
QUOTE(COMPONENT),
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
|
||||
private _rawCPS = _counter / (diag_frameNo - _frameNo);
|
||||
missionNamespace setVariable [QGVAR(server_raw_cps), _rawCPS];
|
||||
publicVariable QGVAR(server_raw_cps);
|
||||
|
||||
// with suspension
|
||||
private _counter = 0;
|
||||
@@ -26,7 +25,6 @@
|
||||
|
||||
private _serverCPS = _counter / (diag_frameNo - _frameNo);
|
||||
missionNamespace setVariable [QGVAR(server_cps), _counter / (diag_frameNo - _frameNo)];
|
||||
publicVariable QGVAR(server_cps);
|
||||
|
||||
// log to RPT
|
||||
[
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#define MAJOR 4
|
||||
#define MINOR 0
|
||||
#define PATCHLVL 0
|
||||
#define MINOR 1
|
||||
#define PATCHLVL 2
|
||||
#define BUILD 0
|
||||
|
||||
2
images/leaflets/.gitkeep
Normal file
2
images/leaflets/.gitkeep
Normal file
@@ -0,0 +1,2 @@
|
||||
# Auto detect text files and perform LF normalization
|
||||
* text=auto
|
||||
BIN
images/leaflets/leaflet_template.jpg
Normal file
BIN
images/leaflets/leaflet_template.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 306 KiB |
@@ -1,4 +1,4 @@
|
||||
author = "MISSION AUTHOR";
|
||||
author = "MISSION AUTHOR";
|
||||
onLoadName = "THIS APPEARS ON TOP OF THE LOADING SCREEN IMAGE";
|
||||
loadScreen = "mission.jpg";
|
||||
onLoadMission = "THIS APPEARS BELOW THE LOADING SCREEN IMAGE";
|
||||
@@ -9,6 +9,13 @@ overviewText = "THIS IS WHERE YOU DESCRIBE THE MISSION IN THE #MISSION LIST";
|
||||
// The name for the series of missions of your campaign. Used for organizational and search purposes
|
||||
missionSeries = "MY SERIES NAME";
|
||||
|
||||
// What kind of mission is this? (Use only one)
|
||||
missionGroup = "17thSaturdayOp";
|
||||
// missionGroup = "17thFridayOp";
|
||||
// missionGroup = "17thWednesdayOp";
|
||||
// missionGroup = "17thFTX";
|
||||
// missionGroup = "17thTraining";
|
||||
|
||||
|
||||
// Add waypoints to players' MicroDAGR devices
|
||||
// respawn locations (bases) are added by default, don't put them here
|
||||
|
||||
Reference in New Issue
Block a user