Compare commits

..

39 Commits

Author SHA1 Message Date
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
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
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
f3c95322e9 change respawn button use warning to use ace_killed CBA event
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 41s
2024-02-19 16:11:42 -08:00
7d10d2622d adds leaflet support and missionGroup param for missionProfileNamespace 2024-02-19 16:11:10 -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
19 changed files with 349 additions and 73 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: |
$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'

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,20 @@ 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.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.

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.
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
View 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
};

View File

@@ -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},
{"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},
{"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[] = {};
};

View File

@@ -89,18 +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 {

View File

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

View File

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

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

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

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

2
images/leaflets/.gitkeep Normal file
View File

@@ -0,0 +1,2 @@
# Auto detect text files and perform LF normalization
* text=auto

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 KiB

View File

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