Giter Site home page Giter Site logo

co10_escape's Introduction

Arma 3 Mission: Co10 Escape

This Arma3 mission is the official successor of the original Escape mission from Arma 2, which was the first of its kind. The name is always prefixed with "co10" to differentiate it from the "Escape from XXX" missions that were released with Arma 3 by Bohemia Interactive.

Overview

In this mission, you and your squad have been captured by enemy forces during a covert operation to gather intelligence on their presence ahead of a planned invasion. You're now being held captive and awaiting interrogation by high ranking enemy officers. However, loyal locals have hidden a stash of weapons in your prison, and it's up to you to retrieve them, overcome your guards, and escape. Once you're out, your objective is to find a map of the area, make contact with friendly forces, and reach the designated evacuation zone.

The mission is fully dynamic, meaning that every playthrough will be different. It's also quite challenging and designed to be played more than once.

About the Mission

Escape was originally developed by Engima of Östgöta Ops for ArmA2. When ArmA3 was released, Vormulac and HyperZ made the effort to port the mission over to ArmA3. From that point on, Captain P. Star and Scruffy improved and fixed the mission to its current state. Most of the scripts have been replaced and updated to A3 standards and many new features and submodules where added. At this point Escape is mostly rewritten

The last official release was 1.10.

Available Versions

The mission is available with the following mod configurations:

  • Vanilla
  • Vanilla Apex
  • CUP
  • GM
  • SOGPF
  • RHS (outdated)

The mission is available on the following terrains (with the mods above when applicable):

  • Altis
  • Stratis
  • Tanoa
  • Malden 2035
  • Bornholm
  • Chernarus
  • Chernarus (Summer)
  • Podagorsk
  • Panthera
  • Panthera (Winter)
  • Isla Duala
  • Lingor
  • Dingor
  • Abramia
  • Sahrani
  • United Sahrani
  • Celle
  • Takistan
  • Porto
  • Thirsk
  • Thirsk (Winter)
  • Capraia
  • Clafghan
  • Al Rayak
  • Lythium
  • Fallujah
  • Esseker
  • Australia
  • Everon (CUP)
  • Malden (CUP)
  • Kolgujev (CUP)
  • Nogova (CUP)
  • Beketov
  • Isles of Cumbrae
  • Schwemlitz
  • Diyala
  • Kastellorizo
  • Valtatie 5
  • and more...

Installation

Warning: This repository is bleeding edge development. While it is most up-to-date with new features, there may be bugs or some versions may even be unplayable.

You can find the newest packed version ready for use on your server mpmissions-folder here: http://co10esc.anzp.de/

To pack and install the mission on your own, follow these steps:

  1. Clone the repository with git clone <repo_url>
  2. Run git submodule update --init --recursive in the repository folder to fetch the revive submodule
  3. Navigate to subfolder "Editing_and_Porting\Tools\Compiler" of the repository.
  4. Start "EscapeCompiler.exe"
  5. Select the repository folder (the folder with "Editing_and_Porting", "Code", "Configs",... folders in it).
  6. Select the output folder.
  7. Wait until all mission pbos are extracted to that folder (takes a few seconds as there are above 1000 individual missions in escape).
  8. After completion the build folder will open. Copy all relevant missions to your local or server's mpmissions folder.

Note: Make sure that the server and all clients have the corresponding mods and terrains installed in order to play the mission.

For the old compilation method you may run compile.py from the main folder but this fole is depreciated

Credits

  • Original Mission (Arma2) by Engima of Östgöta Ops.
  • Mission ported to Arma3 by Vormulac and HyperZ.
  • Continued development, rewrite of codebase and new features by Captain P. Star and Scruffy.
  • (most) Island ports and unit configs by Scruffy.
  • Mission-compiler by Captain P. Star
  • Additional scripting and fixing by abelian, dystopian1, FrozenLiquidity, Cyprus, DPM.
  • Magrepack by outlawed.
  • Additional ports and configs by SurvivorOfZeds (IFA3+LEN), Nils5940 (IFA3), CRCError1970 (Malden and Kolgujev), and supercereal4 (Malden 2035).
  • Testing: Maikeks, Darcy, Memphis Belle, Aurelia, Freshman, Roy, and many more.

License

This mission is released under the APL-SA license with the addition to release forks of this mission clearly marked as such. For this it is sufficient to rename your mission by adding your tag or server and changing the version string in define.hpp.

Feedback

Please post bugs and feedback in our Gitlab at the Github bugtracker
You can join us at our Discord server at https://discord.gg/0kV3JvVEhmnMfmq1

co10_escape's People

Contributors

askanio avatar aussie-battler avatar belkon avatar bobmoretti avatar bradon avatar captainpstar avatar dystopian avatar floriansw avatar invrecon avatar jaj22 avatar kuroneko avatar punlsher avatar qerbas avatar scruffyat avatar veteran29 avatar xbelanch avatar zix99 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

co10_escape's Issues

Wartorn mode infantry spawning

This is possibly intentional but I will report anyway.

CUP mission, Wartorn mode on, RU v US Army v ION.

US Army and ION will spawn in right on top of each other, with ION typically loosing the fight that ensues. It appears to be the village patrol spawns as I have never really noticed the distinct piles of bodies that it leaves behind outside of village patrol areas. I have been noticing these piles for a while now but I finally saw it happening while using Zeus to check for vehicles related to fn_MilitaryTraffic.sqf.

Script Errors in DEV version

Mission & Version
Running the co10_Escape_CUP_Woodland_USMC_vs_RU_and_NAPA compiled by the EscapeDevPacker 1.7.
Downloaded on 2021-04-11.

Mods & Players
Used modlist available here: https://armapresetcreator.com/2346613458
Was running the mission with 10 Players, including some join in progress players.

Script Errors
All errors which were logged in the RPT over the duration of 2.5 hours.

5 times:

23:02:41 Error in expression <n (units _group select 0);
_lastPos = + _currentPos;
_lastMoveTime = diag_tickTi>
23:02:41   Error position: <_currentPos;
_lastMoveTime = diag_tickTi>
23:02:41   Error Undefined variable in expression: _currentpos
23:02:41 File functions\DRN\fn_SearchGroup.sqf [drn_fnc_SearchGroup]..., line 160

3 times:

23:15:41 Error in expression <n {
systemchat ("Delaying rain by "+str _time + " seconds");
params["_rain","_ti>
23:15:41   Error position: <_time + " seconds");
params["_rain","_ti>
23:15:41   Error Undefined variable in expression: _time
23:15:41 File functions\Server\fn_weather.sqf [A3E_fnc_weather]..., line 82

2 times:

23:34:14 Error in expression < units _this select 0;
while {!(isNull _unit)} do {
_enemyUnit = _unit findNear>
23:34:14   Error position: <_unit)} do {
_enemyUnit = _unit findNear>
23:34:14   Error Undefined variable in expression: _unit
23:34:14 File functions\Server\fn_initServer.sqf [A3E_fnc_initServer]..., line 294

Add a parameter that allows players adds flashlights to all units.

Escaping in the middle of night is a very fun idea and fits the theme of the mission, however in it's current state it isn't really possible. At night taking out the prison guards can be nearly impossible. They can spot you easily because of the lights in the prison lighting you up, and if they spawn away from the prison without flashlights it can be nearly impossible to see them. Not only that, but if you do manage to take out the prison guards they probably won't have flashlights and neither will most of the random patrols, so starting at night isn't really an option. Starting at dusk and trying to horde NVGs is the only viable way, but doing that somewhat defeats the point of playing at night. It would be nice to play escape with the no NVGs option while being able to navigate the environment easily. It would also add a nice bit of variety to the mission.

A binary parameter that adds the default flashlight to all primary weapons carried by enemies would be a good way to do this, and nearly every weapon in Vanilla, CUP, and RHS are can use the default flashlight. Some mods, like IFA3, don't work but editing the parameter to say something like "Add flashlights to all units (does not work with all weapons/mods)" to inform the player will help. In addition to this, the parameter should also add a couple regular flashlights and pistol flashlights to the backpack to help the players. By default the parameter would off, and if the player wants to play at night they can enable it if they desire.

CAS

Separate the CAS spawn from Artillery and give it an ajustable parameter setting.

Village patrol spawns break when war torn is enabled

There's seems to be two main issues.

  1. The first is that INDEP squads in village patrol spawns will attack members of their own squad immediately when spawning. Since they spawn so close this usually results in the squad wiping themselves out. They don't seem to engage other INDEP squads, just their own, although it's difficult to tell. OPFOR village patrol spawns do not do this.

  2. The second is that village patrol spawns are sometimes mixed squads of INDEP and OPFOR units which further adds to the chaos. Since INDEP squads shoot their own members the CSAT unit(s) that spawn usually are the only ones that survive.

Random patrols do not seem to suffer from either issue.

It seems that this bug has been in here for since the beginning because I tested 1.9, 1.8.1, 1.7.5, and 1.7.4 and it happened on them too.

Tested using the vanilla version both on a local host in the editor with the latest dev build and for the older versions I tested with a dedicated server with no mods running on the server and client so it isn't an AI mod issue.

I always wondered why I saw piles of dead bodies in such tight clusters, and I guess this is the explanation.

Here's a recording of the issues: https://www.youtube.com/watch?v=Jj_x6ajOh-A

Add support for Faces of War and IFA3_AIO_LITE

Would be amazing to be able to run escape with these new updates on these maps and with this content, is there any easy way to implement these on your own? If not could we see support for these in the near by future?

CAS does not work on dedicated server

A few months ago the CAS script was updated, and while it does work on a local host, I've noticed in the past few months I've never seen CAS when playing on a dedicated server. I retested the script by making CAS attack frequently on a local host and it worked fine, however when I tested the same changes on a dedicated server it still doesn't work.

I tried changing the createVehicleLocal line in fn_CallCAS to just createVehicle but that doesn't seem to work.

To test this I've attached the sqf files with the fast respawning CAS
edited scripts.zip

Backpack frequently spawns empty when the mission cycles

I have a dedicated server running that cycles escape missions on different maps and theres probably a 20% chance that the guns will spawn in the backpack. Server is running on linux and i get this output

 1:58:32 "Escape: Bootstrapping mission..."
 1:58:32 ../lib/Network/networkServer.cpp OnClientStateChanged:NOT IMPLEMENTED - briefing!
 1:58:32 "Escape Diaglog: No parameters found or params were updated, loading default."
 1:58:32 "Parameters:<br/><br/>==================== Difficulty Settings ====================<br/><br/>Enemy Skill:<br/>Current: Easy<br/>Default: Easy<br/><br/><br/>Enemy Groupsize:<br/>Current: Some (3-5)<br/>Default: Some (3-5)<br/><br/><br/>Enemy Spawn Distance:<br/>Current: Medium<br/>Default: Medium<br/><br/><br/>Village Patrol Spawns:<br/>Current: Low (better performance)<br/>Default: Low (better performance)<br/><br/><br/>Search Chopper Type:<br/>Current: Standard<br/>Default: Standard<br/><br/><br/>==================== Environment Settings ====================<br/><br/>Time Of Day:<br/>Current: 08:00<br/>Default: 08:00<br/><br/><br/>Time Multiplier (Fasttime):<br/>Current: 1:6 (Day = 4 Hours)<br/>Default: 1:6 (Day = 4 Hours)<br/><br/><br/>Weather:<br/>Current: Clear<br/>Default: Clear<br/><br/><br/>Dynamic Weather:<br/>Current: Random<br/>Default: Random<br/><br/><br/>Grass Visibility:<br/>Current: Normal<br/>Default: Normal<br/><br/><br/>==================== Gameplay Settings ====================<br/><br/>D
Attempt to override final function - bis_fnc_storeparamsvalues_data
 1:58:32 Weather was forced to change
 1:58:32 Land_TinWall_01_m_gate_v1_closed_F: door_1_locked_rot - unknown animation source door_1_locked_source
 1:58:32 Land_TinWall_01_m_gate_v1_closed_F: door_2_locked_rot - unknown animation source door_2_locked_source
Duplicate HitPoint name 'HitGun' in 'O_GMG_01_high_F'
Duplicate HitPoint name 'HitTurret' in 'O_GMG_01_high_F'
 1:58:33 Dimensions in class O_GMG_01_high_F should be an array of size 2.
soldier[O_Soldier_AA_F]:Some of magazines weren't stored in soldier Vest or Uniform?
soldier[O_Soldier_AA_F]:Some of magazines weren't stored in soldier Vest or Uniform?
soldier[O_soldier_UAV_06_medical_F]:Some of magazines weren't stored in soldier Vest or Uniform?
 1:58:33 O_LSV_02_armed_F: unarmed_main_turret_hide - unknown animation source turrethide
 1:58:33 O_LSV_02_armed_F: unarmed_doors_hide - unknown animation source doorshide
 1:58:33 O_LSV_02_armed_F: magazine_reload_hide_1 - unknown animation source voronamuzzle_reloadmagazine
Duplicate HitPoint name 'HitGun' in 'O_HMG_01_high_F'
Duplicate HitPoint name 'HitTurret' in 'O_HMG_01_high_F'
 1:58:34 Dimensions in class O_HMG_01_high_F should be an array of size 2.
soldier[O_Soldier_AA_F]:Some of magazines weren't stored in soldier Vest or Uniform?
soldier[O_Soldier_AA_F]:Some of magazines weren't stored in soldier Vest or Uniform?
soldier[O_soldier_UAV_F]:Some of magazines weren't stored in soldier Vest or Uniform?
 1:58:49  Mission id: 921031ce2146f947ca7c18a1191bc0938cf63900
 1:58:49 Game started.
 1:58:50 "fn_initPlayer run for Pathoz"
 1:58:50 "Escape debug: Pathoz is waiting for prison creation."
 1:58:50 Warning: Convex component representing Slide not found
soldier[O_Soldier_AR_F]:Some of magazines weren't stored in soldier Vest or Uniform?
 1:58:50 "Escape debug: Player Pathoz is ready and will be placed by the server."
 1:58:50 "Escape debug: Pathoz placed at prison."
 1:58:51 "Escape debug: Pathoz is now ready (serverside)."
Duplicate HitPoint name 'HitTurret' in 'I_MRAP_03_hmg_F'
Duplicate HitPoint name 'HitGun' in 'I_MRAP_03_hmg_F'
soldier[O_Soldier_AR_F]:Some of magazines weren't stored in soldier Vest or Uniform?
soldier[O_Soldier_AR_F]:Some of magazines weren't stored in soldier Vest or Uniform?
soldier[I_Soldier_AA_F]:Some of magazines weren't stored in soldier Vest or Uniform?
soldier[I_Soldier_AA_F]:Some of magazines weren't stored in soldier Vest or Uniform?
soldier[I_Soldier_GL_F]:Some of magazines weren't stored in soldier Vest or Uniform?
 1:58:52 Land_PipeFence_01_m_gate_v2_closed_F: door_1_locked_rot - unknown animation source door_1_locked_source
 1:58:52 Land_PipeFence_01_m_gate_v2_closed_F: door_2_locked_rot - unknown animation source door_2_locked_source
 1:58:52 Land_PipeFence_01_m_gate_v1_closed_F: door_1_locked_rot - unknown animation source door_1_locked_source
soldier[I_Soldier_AT_F]:Some of magazines weren't stored in soldier Vest or Uniform?
soldier[I_Soldier_AT_F]:Some of magazines weren't stored in soldier Vest or Uniform?
soldier[I_Soldier_AT_F]:Some of magazines weren't stored in soldier Vest or Uniform?
soldier[I_Soldier_AT_F]:Some of magazines weren't stored in soldier Vest or Uniform?
soldier[I_Soldier_AR_F]:Some of magazines weren't stored in soldier Vest or Uniform?
soldier[I_Soldier_AA_F]:Some of magazines weren't stored in soldier Vest or Uniform?
soldier[I_Soldier_AA_F]:Some of magazines weren't stored in soldier Vest or Uniform?
 1:58:53 Land_NetFence_02_m_gate_v1_closed_F: door_1_locked_rot - unknown animation source door_1_locked_source
soldier[I_Soldier_AT_F]:Some of magazines weren't stored in soldier Vest or Uniform?
soldier[I_Soldier_AT_F]:Some of magazines weren't stored in soldier Vest or Uniform?
 1:58:54 C_Truck_02_covered_F: rear_hide - unknown animation source rear_hide
Ref to nonnetwork object 7f13ccb28000# 627231: c_paramedic_01_f.p3d
 1:58:55 No speaker given for 'Giannis Tavoularis'
Road not found
 1:58:57 "fn_CrashSite: Camp created at [6816.02,10310.6,0.000511169]"
 1:58:57 Warning Message: You cannot play/edit this mission; it is dependent on downloadable content that has been deleted.
a3_props_f_tank_military_wrecks
 1:58:57 "fn_CrashSite: Camp created at [6134,11220.7,0.00139999]"
 1:58:58 C_Truck_02_transport_F: rear_hide - unknown animation source rear_hide
Duplicate HitPoint name 'HitGun' in 'O_static_AA_F'
Duplicate HitPoint name 'HitTurret' in 'O_static_AA_F'
 1:58:58 Dimensions in class O_static_AA_F should be an array of size 2.
Duplicate HitPoint name 'HitGun' in 'O_static_AT_F'
Duplicate HitPoint name 'HitTurret' in 'O_static_AT_F'
 1:58:58 Dimensions in class O_static_AT_F should be an array of size 2.
 1:58:58 "fn_CrashSite: Camp created at [4737.91,5463.71,0.0110474]"
soldier[O_HeavyGunner_F]:Some of magazines weren't stored in soldier Vest or Uniform?
soldier[I_Soldier_AT_F]:Some of magazines weren't stored in soldier Vest or Uniform?
soldier[I_Soldier_AT_F]:Some of magazines weren't stored in soldier Vest or Uniform?
 1:58:59 O_LSV_02_unarmed_F: unarmed_main_turret_hide - unknown animation source turrethide
 1:58:59 O_LSV_02_unarmed_F: unarmed_doors_hide - unknown animation source doorshide
 1:58:59 O_LSV_02_unarmed_F: mainturret - unknown animation source mainturret
 1:58:59 O_LSV_02_unarmed_F: maingun - unknown animation source maingun
 1:58:59 O_LSV_02_unarmed_F: maingunner - unknown animation source maingun
 1:58:59 O_LSV_02_unarmed_F: opticsfix - unknown animation source maingun
 1:58:59 O_LSV_02_unarmed_F: magazine_reload_hide_1 - unknown animation source voronamuzzle_reloadmagazine
soldier[I_Soldier_LAT2_F]:Some of magazines weren't stored in soldier Vest or Uniform?
soldier[I_Soldier_LAT2_F]:Some of magazines weren't stored in soldier Vest or Uniform?
soldier[O_Soldier_AT_F]:Some of magazines weren't stored in soldier Vest or Uniform?
soldier[O_Soldier_AT_F]:Some of magazines weren't stored in soldier Vest or Uniform?
 1:59:01 Server: Object 0:0 not found (message Type_184)
 1:59:01 Server: Object 0:0 not found (message Type_184)
soldier[O_Soldier_AT_F]:Some of magazines weren't stored in soldier Vest or Uniform?
soldier[O_Soldier_AT_F]:Some of magazines weren't stored in soldier Vest or Uniform?
Duplicate HitPoint name 'HitGun' in 'O_Mortar_01_F'
Duplicate HitPoint name 'HitTurret' in 'O_Mortar_01_F'
 1:59:03 Dimensions in class O_Mortar_01_F should be an array of size 2.
 1:59:04 Strange convex component127 in a3\structures_f\mil\cargo\cargo_tower_v2_ruins_f.p3d:geometryView
 1:59:32 Land_NetFence_02_m_gate_v1_closed_F: door_1_locked_rot - unknown animation source door_1_locked_source```

Split players into separate squads

This mission is great already, however, because every player (up to 10) is grouped into the same unit squad (Alpha 1-1), it's hard to actually form different, smaller groups of players in order to improve communication (in Group and Side channel, when using VON, e.g.).

My suggestion is:
Split up the current one 10 players squad into separate squads, e.g. one 4, and two 3 player squads.

I already tried to "implement" this, however, I'm a noob when it gets to mission editing in Arma 3 :(

Prison improvement progress tracking and recommendations

The ongoing prison improvements have been going well and I'd like to document some of the current issues and recommendations I would make. I'll start with the current prison spawning method and how it's been functioning.

fn_BuildPrison works reasonably well and the door is only slightly misaligned.
Prison

fn_BuildPrison1 still has some door misalignment issues that are consistent.
Prison 1
Prison 1 (2)

fn_BuildPrison2 still has significant issues with objects spawning inside until all clients are synced with the server, making spawning outside of the prison extremely likely.
Prison 2

fn_BuildPrison3 works very well and you can only see the door move into place if you pay very close attention. I don't think this one needs further changes unless you're a perfectionist.
Prison 3

fn_BuildPrison4 has some minor prison misalignment issues but still has a much more serious issue that I've been tracking for a while where guards will open the door and walk into the prison even if the players are still inside and haven't picked up weapons.
Here's a recording of that: https://www.youtube.com/watch?v=fiZ0r-u5tU8
Prison 4

fn_BuildPrison5 has some significant issues with objects spawning inside until all clients are synced, and I've already captured one instance of spawning outside of the prison.
Here's a recording of that: https://www.youtube.com/watch?v=i7kIaJB027g
Prison 5

Gameplay wise, I think fn_BuildPrison, fn_BuildPrison1, and fn_BuildPrison3 are the best because they are large and give ample cover to the players, so that they can pick up weapons without being seen. They also allow players to peak out through cracks to spot enemies to better plan an attack. Lastly, they also have wide doors so that multiple players can attack simultaneously and cover different angles.

However, I think that fn_BuildPrison2, fn_BuildPrison4, and fn_BuildPrison5, have some serious gameplay issues that would exist regardless of their bugs being fixed. fn_BuildPrison2 and fn_BuildPrison4 have no way to look outside and only one small door making attacking very difficult on these prison. fn_BuildPrison5 has 2 doors and a window which helps, however it's nearly impossible to avoid being seen when picking up the weapons since the prison is so small and the window has a good view of the entire inside.

In light of these issues, I would strongly recommend removing fn_BuildPrison2, fn_BuildPrison4, and fn_BuildPrison5. I, don't think that they can work with the new prison spawning method because the doors can't spawn separately from the rest of the prison, so the entire object needs to be sent across the network, making the client sided prison spawning pointless. Even if they can be fixed, their gameplay issues make them not worthwhile to keep in either. I've already removed them on my own build and it's greatly improved the starting experience for me and my players.

Village Patrol Spawns Parameter not functioning properly

After the rework of the village patrol spawns I've noticed that markers are spawning a lot more AI than usual. I tested the different settings and it looks like there is minimal difference between the three different settings on the new system, whereas there are dramatic differences in the old system.
The scaling really needs to be dialed back and ideally should be made to be more linear than the old system. There's a massive difference between medium and high but not much between low and medium.

Here's some screenshots that demonstrate this:

NEW SYSTEM

Village Patrol Spawn High spawns about 17
ArmA 3 Screenshot 2019 12 22 - 12 02 03 03

Village Patrol Spawn Medium spawns about 15
ArmA 3 Screenshot 2019 12 22 - 11 59 40 67

Village Patrol Spawn Low spawns about 13 squads for this marker
ArmA 3 Screenshot 2019 12 22 - 11 48 22 57

OLD SYSTEM

Village Patrol Spawn High spawns about 12
ArmA 3 Screenshot 2019 12 22 - 12 10 53 43

Village Patrol Spawn Medium spawns about 4
ArmA 3 Screenshot 2019 12 22 - 12 09 34 26

Village Patrol Spawn Low spawns about 2
ArmA 3 Screenshot 2019 12 22 - 12 07 26 32

BONUS

Old system Mid city on fallujah Village Patrol Spawn Low spawns a couple dozen patrols
ArmA 3 Screenshot 2019 12 22 - 12 18 08 58

New system Mid city on fallujah Village Patrol Spawn Low spawns at least a hundred patrols
ArmA 3 Screenshot 2019 12 22 - 12 23 08 39

Earplugs within the mission

In the Co10 Escape mission files for my server (go2tech.de) I've integrated some more scripts to support both administrating it as well as some functionality.

One of them is a earplugs script, which, when the F1 key is pressed, will reduce the surrounding sound by some percentage. It also shows a little icon (builtin) to indicate that earplugs are indicated.

I wrote this script (which is pretty simple tbh), as I don't want to require people to install a mod for such an easy functionality. As maintaining to import a script into the mission files is making it harder to update the mission files, I'm considering upstreaming this earplugs script here. However, with this issue I would clarify some things before doing so:

  • Is such a script within the scope of the mission?
  • Given I'm relatively new to ArmA mission scripting: Can you help me once I'm stuck at some point? :D

Dystopian's Remove HMD from inventory fix no longer works.

There's an issue where on certain CUP versions they add NVGs to the vest or uniform on units. These should be removed, especially when the "No NVG" parameter is selected, to prevent cheating. Dystopian made a fix with these commits, however they have not worked for a while. It is not related to the recent parameter refactoring since I tested a version without those new changes and the issue still occurs. I'm not sure exactly when the issue started, but I believe it was at least a few months ago.

You can test by going to any unit (except for the prison guards) and checking the uniform/vest/backpack for an NVG.

I tried just copy pasting Dystopian's fix into the new fn_onEnemySoldierSpawn.sqf file, however it doesn't work and I get an error. Here's a screenshot of that error.

ArmA 3 Screenshot 2021 02 09 - 00 00 46 85

Ace still doesnt work with escape

I ran a dedicated server on my machine and connected to it. I was kind of excited to test escape with ace, but once i got killed (i was the only person playing so, even in regular escape this would have been a fail state) there was a timer, and once it ran out, i respawned with full gear. I saw a similar issue before, but i was hoping maybe this new update that says it imporved ace medical support would fix it, and it didnt. Could there be a way to force ai not to shoot you when youre down or just end the missions once you die instead of respawning

supported islands for escape

Hi all
just want tell you :

The mission is available on the following terrains (with the mods above when applicable):
Altis
Stratis
Tanoa
Livonia
Malden 2035
Beketov
Bornholm
Chernarus (CUP)
Chernarus (Summer) (CUP)
Chernarus (Winter) (CUP)
Chernarus 2020 (CUP)
Podagorsk
Isla Duala
Lingor
Dingor
Abramia
Panthera
Panthera (Winter)
Sahrani (CUP)
United Sahrani (CUP)
Celle
Takistan (CUP)
Zargabad (CUP)
Porto (CUP)
Thirsk
Thirsk (Winter)
Capraia
Kastellorizo
Kerama
Kujari
Clafghan
Al Rayak
Lythium
Fallujah
Esseker
Australia
Everon (CUP)
Malden (CUP)
Kolgujev (CUP)
Nogova (CUP)
Beketov
Isles of Cumbrae
Schwemlitz
Diyala
Kastellorizo
Valtatie 5
Vidda
Khmaoch Luong
Reshmaan
Isles_of_cumbrae
Rosche
Ruha
Schwemlitz
Tembelan
Yellowstone
Vinjesvingen
Vis NOT SUPPORTED no missions in the zip file !!!!!!
Weferlingen
Weferlingen (Winter)

regards
Hanso

Misc Script Errors

Occasionally when I test on a local host I run into script errors that pop up. I'll put them here so anyone interested can take a look.

'...n { systemchat ("Delaying rain by "+str |#|_time + " seconds"); params["_rain","_ti...' File functions\Server\fn_weather.sqf [A3E_fnc_weather]..., line 82 Error Undefined variable in expression: _time

'...(crew _boat) select 0)); if(count(units |#|_group)==0) then {_flag = false;}: { File functions\DRN\fn_DepopulateAquaticPatrol.sqf [drn+fnc_DepopulateAquaticPatrol]..., line 23 if(...' Error Undefined variable in expression: _group

ArmA 3 Screenshot 2020 05 14 - 13 36 20 30
ArmA 3 Screenshot 2020 05 20 - 16 23 56 91

Prevent prison from spawning near the airfield.

The porting instructions indicate that the prison is supposed to spawn away from airfields, however the prison can and will spawn directly on the airfield. While this can be funny sometimes, it greatly increases the difficulty of the mission and makes dodging the scout helicopter almost impossible. Having it so the prison can't spawn with around 1KM should do the trick without affecting smaller maps too much. Porto being the only exception, but it'll still be playable.

ArmA 3 Screenshot 2019 08 26 - 13 25 53 50

ArmA 3 Screenshot 2019 08 26 - 13 26 01 16

Headless Client testing results

This is a long read, but bear with me. I'm not asking for a feature, just reporting my experience from some testing I did and looking for your thoughts.

We're a small group (3-5 players usually) and play on a dedicated server. I like to grab the latest source and compile the missions, so we're pretty much on the bleeding edge. I noticed that recently the performance seems to have worsened a bit. It usually manifests in the AI moving in a laggy way and dying with quite a bit of delay after being shot, and actions like transferring items between inventories taking longer. Naturally, all of this was caused by the server FPS dropping badly during these moments (to about 1-2 for a couple of seconds, then going up to a measly 10-15 before stabilizing at around 30). It seems especially bad on the Livonia terrain, but is generally observable everywhere.

So I went looking through the code for anything that might cause it. My first guess was a bad while loop somewhere that doesn't sleep between iterations, but I didn't find a single one, the code is very solid. The second option I looked into was AI. To verify that theory, I commented out the initialization of ambient infantry, traffic and so on. This resulted in excellent performance with server FPS at 50. So it looks like there's just too much infantry active at some points in the mission and whenever a group spawns or is "triggered" by an engagement, the server gets overloaded. The main issue is that all the AI computation in Arma seems to be done in a single thread. That's also something I can observe on my server, because a single core is working at a 100% while the remaining ones are barely doing anything in comparison. At that point I thought I had hit a dead end, because we can't lower the number of simultaneously active AI without affecting the gameplay, all of their operations running in a single thread is an engine limitation, and I didn't see how this could be easily offloaded to a HC, because AI spawning is not handled by a single script, but several.

After a while I figured that we wouldn't need to offload all AI, just the most impactful. So I tried to add a HC unit to the mission and remotely execute the DRN fn_AmbientInfantry.sqf only on that. To my surprise, it worked and the infantry still spawned, though performance still wasn't where I wanted it. After doing the same for fn_MilitaryTraffic.sqf, which is responsible for both civilian and military traffic, it was much better. Looks like driving is really hard for the AI (surprise) and therefore the server too.

I experimented only with the built Livonia mission (from Build/missionfiles) and the only changes I made were to add a HC unit to mission.sqm (with the editor) and the following:

diff --git a/functions/DRN/fn_AmbientInfantry.sqf b/functions/DRN/fn_AmbientInfantry.sqf
index 6305454..c52091d 100644
--- a/functions/DRN/fn_AmbientInfantry.sqf
+++ b/functions/DRN/fn_AmbientInfantry.sqf
@@ -15,17 +15,19 @@
  *   [_garbageCollectDistance]: Dead units at this distance from _referenceGroup will be deleted.
  *   [_fnc_OnSpawnUnit]: Code run once for every spawned unit (after the whole group is created). The unit can be accessed through "_this". Default value is {}.
  *   [_fnc_OnSpawnGroup]: Code run once for every spawned group (after the whole group is created). The group can be accessed through "_this". Default value is {};
+ *   [_enemyFrequency]: Only required for calling UnitClasses.sqf.
  *   [A3E_Debug]: true if debugmessages and areas will be shown for player. Default false.
  * Dependencies: CommonLib v1.01
  */
 
-if (!isServer) exitWith {};
+if (isServer || hasInterface) exitWith {};
 
 private ["_referenceGroup", "_side", "_groupsCount", "_minSpawnDistance", "_maxSpawnDistance", "_infantryClasses", "_minSkill", "_maxSkill", "_garbageCollectDistance"];
 private ["_activeGroups", "_activeUnits", "_spawnPos", "_group", "_possibleInfantryTypes", "_infantryType", "_minDistance", "_skill", "_vehicleVarName", "_factionsArray"];
 private ["_minUnitsInGroup", "_maxUnitsInGroup", "_i", "_atScriptStartUp", "_currentEntityNo", "_DebugMsg", "_farAwayUnits", "_farAwayUnitsCount", "_unitsToDeleteCount", "_groupsToDeleteCount"];
 private ["_DebugMarkers", "_DebugMarkerNo", "_DebugMarkerName", "_isFaction", "_unitsToDelete", "_groupsToDelete", "_tempGroups", "_tempGroupsCount"];
 private ["_fnc_OnSpawnUnit", "_fnc_OnSpawnGroup"];
+private ["_enemyFrequency"];
 
 _referenceGroup = _this select 0;
 _side = _this select 1;
@@ -40,7 +42,10 @@ if (count _this > 9) then {_maxSkill = _this select 9;} else {_maxSkill = 0.6;};
 if (count _this > 10) then {_garbageCollectDistance = _this select 10;} else {_garbageCollectDistance = 750;};
 if (count _this > 11) then {_fnc_OnSpawnUnit = _this select 11;} else {_fnc_OnSpawnUnit = {};};
 if (count _this > 12) then {_fnc_OnSpawnGroup = _this select 12;} else {_fnc_OnSpawnGroup = {};};
+if (count _this > 13) then {_enemyFrequency = _this select 13;} else {_enemyFrequency = 2;};
 
+// Need to do this again, because we need its global variables and it is only executed on the server
+[_enemyFrequency] call compile preprocessFileLineNumbers "Units\UnitClasses.sqf";
 
 //WHY!?!?!?!?!
 _factionsArray = [A3E_VAR_Side_Ind , A3E_VAR_Side_Ind , A3E_VAR_Side_Ind , A3E_VAR_Side_Ind , A3E_VAR_Side_Ind , A3E_VAR_Side_Ind , A3E_VAR_Side_Opfor , A3E_VAR_Side_Opfor , A3E_VAR_Side_Opfor , A3E_VAR_Side_Opfor ,A3E_VAR_Side_Opfor];
diff --git a/functions/DRN/fn_MilitaryTraffic.sqf b/functions/DRN/fn_MilitaryTraffic.sqf
index 5f9b1bd..2c477b7 100644
--- a/functions/DRN/fn_MilitaryTraffic.sqf
+++ b/functions/DRN/fn_MilitaryTraffic.sqf
@@ -1,3 +1,5 @@
+if (isServer || hasInterface) exitWith {};
+
 private ["_activeVehiclesAndGroup", "_vehiclesGroup", "_spawnSegment", "_vehicle", "_group", "_result", "_possibleVehicles", "_vehicleType", "_vehiclesCrew", "_skill", "_minDistance", "_tries", "_trafficLocation"];
 private ["_currentEntityNo", "_vehicleVarName", "_tempVehiclesAndGroup", "_deletedVehiclesCount", "_firstIteration", "_roadSegments", "_destinationSegment", "_destinationPos", "_direction"];
 private ["_roadSegmentDirection", "_testDirection", "_facingAway", "_posX", "_posY", "_pos"];
diff --git a/functions/Server/fn_initServer.sqf b/functions/Server/fn_initServer.sqf
index d3066ac..f24111a 100644
--- a/functions/Server/fn_initServer.sqf
+++ b/functions/Server/fn_initServer.sqf
@@ -327,7 +327,7 @@ private _UseMotorPools = Param_MotorPools;
 	_radius = (_enemySpawnDistance + 500) / 1000;
 	_infantryGroupsCount = round (_groupsPerSqkm * _radius * _radius * 3.141592);
 	
-	[_playerGroup, A3E_VAR_Side_Opfor, a3e_arr_Escape_InfantryTypes, _infantryGroupsCount, _enemySpawnDistance + 200, _enemySpawnDistance + 500, _minEnemiesPerGroup, _maxEnemiesPerGroup, _enemyMinSkill, _enemyMaxSkill, 750, _fnc_OnSpawnAmbientInfantryUnit, _fnc_OnSpawnAmbientInfantryGroup, A3E_Debug] spawn drn_fnc_AmbientInfantry;
+	[_playerGroup, A3E_VAR_Side_Opfor, a3e_arr_Escape_InfantryTypes, _infantryGroupsCount, _enemySpawnDistance + 200, _enemySpawnDistance + 500, _minEnemiesPerGroup, _maxEnemiesPerGroup, _enemyMinSkill, _enemyMaxSkill, 750, _fnc_OnSpawnAmbientInfantryUnit, _fnc_OnSpawnAmbientInfantryGroup, _enemyFrequency, A3E_Debug] remoteExec ["drn_fnc_AmbientInfantry"];
 
     
     // Initialize the Escape military and civilian traffic
@@ -417,7 +417,7 @@ private _UseMotorPools = Param_MotorPools;
 		};
 	};
 	
-	[civilian, [], _vehiclesCount, _enemySpawnDistance, _radius, 0.5, 0.5, _fnc_onSpawnCivilian, A3E_Debug] spawn drn_fnc_MilitaryTraffic;
+	[civilian, [], _vehiclesCount, _enemySpawnDistance, _radius, 0.5, 0.5, _fnc_onSpawnCivilian, A3E_Debug] remoteExec ["drn_fnc_MilitaryTraffic"];
 
 	
 	// Enemy military traffic
@@ -443,8 +443,8 @@ private _UseMotorPools = Param_MotorPools;
 	[_vehiclesCount,_enemySpawnDistance,_radius,_enemyMinSkill, _enemyMaxSkill] spawn {
 		params["_vehiclesCount","_enemySpawnDistance","_radius","_enemyMinSkill", "_enemyMaxSkill"];
 		sleep 60*15; //Wait 15 Minutes before heavy vehicles may arrive 
-		[A3E_VAR_Side_Opfor, [], _vehiclesCount/2, _enemySpawnDistance, _radius, _enemyMinSkill, _enemyMaxSkill, drn_fnc_Escape_TrafficSearch, A3E_Debug] spawn drn_fnc_MilitaryTraffic;
-		[A3E_VAR_Side_Ind, [], _vehiclesCount/2, _enemySpawnDistance, _radius, _enemyMinSkill, _enemyMaxSkill, drn_fnc_Escape_TrafficSearch, A3E_Debug] spawn drn_fnc_MilitaryTraffic;
+		[A3E_VAR_Side_Opfor, [], _vehiclesCount/2, _enemySpawnDistance, _radius, _enemyMinSkill, _enemyMaxSkill, drn_fnc_Escape_TrafficSearch, A3E_Debug] remoteExec ["drn_fnc_MilitaryTraffic"];
+		[A3E_VAR_Side_Ind, [], _vehiclesCount/2, _enemySpawnDistance, _radius, _enemyMinSkill, _enemyMaxSkill, drn_fnc_Escape_TrafficSearch, A3E_Debug] remoteExec ["drn_fnc_MilitaryTraffic"];
     };
 
 	private ["_areaPerRoadBlock", "_maxEnemySpawnDistanceKm", "_roadBlockCount"];

So basically in the server init file replacing the spawn for the mentioned functions with remoteExec on all machines, and in the files themselves making sure they terminate if they run anywhere other than the HC. That was the easiest way I found to make them run on the HC. I also had to pass in another variable to run a script again that is otherwise only executed on the server and generates a couple of global variables that the ambient infantry & military traffic script also need, which I therefore also have to execute on the HC. That's basically it, and it runs with almost no additional errors. Just something in the function call that equips the spawned soldiers, but with a bit of effort I could probably figure out which global variable (or similar) is missing on the HC and causes this.

I noticed no adverse effects on gameplay so far, and performance is simply fantastic. The server now runs consistently at 48-50 FPS, with a few drops down to 30 in some situations, but never below that. But since most of the AI now runs on the HC, server FPS aren't relevant to their performance anymore, now it's how busy the HC is that determines this. And it's looking really good. Instead of seeing a single core scrambling to keep up, the load is much more balanced now.

load

It's still possible to overload it slightly and make the AI lag for an instant when driving at speed, but only in very few instances. And that makes sense, because as long as whatever core currently does the computation is not overloaded, we get our 50 server/HC FPS.

Now for the disclaimer: this needs much more testing to make sure it doesn't introduce any other issues. I don't have any easy to reproduce benchmarks for the improvements, it's all based on my observations. My main question here is if you think something like this could work in the mission. The difficulties I see are:

  1. Adding one (or several) HC entities to the mission.sqm, for every single terrain (unless you have a better way of making changes to this, I haven't looked into it)
  2. Some additional scripting to make sure the mission works with an HC connected and without
  3. In the case of adding several HC, distributing the load over them. Something relatively simple would be to say "put ambient infantry on one, and military traffic on the other". But that's not a priority, even one HC makes a dramatic difference.

fn_addIntel.sqf needs edit

_chance is always 10%!

private _chance = missionnamespace getvariable ["A3_Param_IntelChance",10];

needs changing to

private _chance = missionnamespace getvariable ["Param_IntelChance",10];

also does the } and the end of the script need to be };

the above changes work ok for me.

Issues when resuming game mode from saved game

As mentioned in the title, resuming from a save state, whether after the whole party died, or because we intend to resume the game later exhibits the following issues:

  1. Everyone except the host loses their weapons
  2. Everyone except the host can't grab certain enemy equipment such as enemy uniforms, or items inside enemy uniforms
  3. When you resume from one of the towers, everyone except the host spawns outside of the towers if the a save state was created inside the tower.

I recorded some of those issues while playing the mode, let me know which is the best way to share those clips so it can be used for debugging.

Thank you.

Add option to hide all enemy markers and add information collection from insurgency

In my insurgency mission enemy randomly drop info caches that can be collected.
This added to escape could pose an interesting new gameplay opportunity.
If the markers are not set to be always visible, collecting info could do one of these things:

  • Reveal a formerly invisible marker on the map
  • Change a questionmark to the correct location symbol

This would make engaging patrols beyond collecting map and ammo much more intresting.
Information collection could also be added to comcenter or a new type of outpost.

Additional input and ideas are highly appreciated!

Inmission dialog for options

While the CBA settings is a handy way to edit persistent options Escape already stored mission params in it's own profile space and via params. Adding CBA settings when CBA is available and otherwise fallback to old system seems like a duplication of the system.

So without making CBA mandatory for the mission we (@ScruffyAT ) and me find it a better way too add a dialog too edit the Escape settings from ingame. This is easily done with stuff already at hand.

new Earplugs function fails if not using CBA

i am aware this is a dev version, but the new Earplugs function fails for non CBA users.

i amended my fn_initlocalplayer.sqf for a CBA check and used alternative config if not found.

If (isclass (configfile >> "CfgPatches" >> "cba_main")) then { [] spawn { disableSerialization; ["A3E Earplugs", "toggle_earplugs_key", localize "STR_A3E_initLocalPlayer_toggleEarplugs", {_this call A3E_fnc_toggleEarplugs}, ""] call CBA_fnc_addKeybind;}; } else { [] spawn { disableSerialization; waitUntil {!isNull(findDisplay 46)}; systemChat "Push INSERT key to toggle earplugs"; (findDisplay 46) displayAddEventHandler [ "KeyDown",{ params ["_display","_key","_shift","_ctrl","_alt"]; private _handled = false; if (_key isEqualTo 210) then // INSERT KEY { _this call A3E_fnc_toggleEarplugs; _handled = true; }; _handled } ]; }; };

Flagpost textures in fn_BuildPrison templates

Hi, I remember talking about that when I was still working with 1.9 and it seems that this issue perhaps carried over to 1.10 now.

Looking at the fn_BuildPrison templates, I noticed that for prison templates 1-2-3 the line _obj setflagtexture A3E_VAR_Flag_Ind; is missing at the end of the "FlagPole_F" creation i.e. currently there is a flag post but no flag is shown. The line mentioned is currently only included in the "fn_BuildPrison.sqf" file but not in any of the numbered ones.

Not sure if it's the same issue for prison templates 4-5 as for them it seems to be done differently i.e. "Flag_Altis_F" is used instead of "FlagPole_F"...

General remark: Should the flag texture at the prison not be A3E_VAR_Flag_Opfor instead of A3E_VAR_Flag_Ind so that the enemy (opfor) flag would be shown on the prison?

Thank you.

Triggerinterval

With the new engine update setTriggerInterval should be incorporated to ease load on server in Escape.

Added: Script commands triggerInterval and setTriggerInterval to make it possible to alter the trigger condition check frequency of detectors

Overhaul Weather System

For some time the weather system has not worked properly, which reduces a lot of the variety that the Escape missions are known for along with the improved ambiance that different weather settings add.

Firstly, there doesn't seem to be much, if any, difference between the Rain and Storm settings, and all settings seem to vary based on map. For example, some maps like Altis always seem to have rain at the beginning when the "Rain" setting is on, however Stratis almost never does, nor does rain ever seem to actually start. Fog is especially different between different maps.

More importantly, any setting with cloud cover doesn't seem to be using the forceweatherchange command properly because when initially spawning on a map with the Rain, Storm, or Overcast setting, the sky will always look like this:
Rain-Constant-Stale- Vars-Altis

It will stay that way until the player switches their cloud settings from their current setting to any other setting in the video options and then the clouds will render properly.

The forceweatherchange command must be applied at the wrong time or in the wrong way because in my testing using a test mission with just the lines 0 setovercast x; forceweatherchange; (where x is any value between 0 and 1) in initserver.sqf the clouds always rendered properly for all clients on a dedicated server.

Not only that, but the weather settings are not properly overriding the weather parameters set in the mission.sqm because on Tembelan Island, the map spawns with extremely thick fog around 90% of the time no matter what weather parameters are selected. I had to remove the startFogBase=250; line from the mission.sqm to fix that issue. This is most likely the same issue that is causing the inconsistency between maps that I noticed with the Rain setting.

These issues make it so that functionally escape can really only be played with the "Clear" setting because it seems to be the only parameter that works close to how it's intended. It's a shame because Arma 3's volumetric clouds look really nice and the sound effects, especially for lightning are excellent.

I've done some research on the weather parameters and it seems that gradually shifting weather may not be possible without incredibly long time scales. It may just be more efficient for now just to have fixed weather options until feasibility of dynamic weather can be determined. I'll do some more testing on that. At least at the moment, the current dynamic weather system is effectively broken.

So for now, I think there should just be fixed lobby parameters and the settings I would recommend as options would be Clear, Light Clouds, Medium Clouds, Overcast, Rain, Storm, Light Fog, Medium Fog, Heavy Fog, Light Fog with Rain, Medium Fog with Rain, Heavy Fog with Rain, and Heavy Fog with Storm. The main difference between "Rain" and "Storm" would be Storm would have the lightning values set to max and wind set to a high value. All values should be set manually by script (except for fogbase and fogdecay which is better set on a per map basis in the editor) with the "Manual Override" option set for Rain, Lightnings, Waves, and Winds to ensure that Arma doesn't override the scripted values. It's especially important for lightning and waves, since those settings don't work at all unless the Manual Override option is selected.

Data terminal Broken

Been playing co10 escape cup and regardless of the map I do not get any interaction options on the data terminal

mods I use are: ACE, CBA and the CUP mods.

I see the data terminal but I get no option to interact with the arma scroll function nor either ACE interaction menu.

AD9DB043-C1A0-4A20-86C3-3EAB7920FC91

fallujah is not working properly

description:
prison and ai are spawning above ground or below ground.

steps to reproduce:

  1. download Fallujah 1.2 https://steamcommunity.com/sharedfiles/filedetails/?id=908733096&searchtext=fallujah
  2. run CSAT vs NATO ( or NATO vs CSAT Fallujah ).

expected result:
mission works :)
actual result:
20210324211619_1
sometimes AI and prison building is about 20m above ground, sometimes it seems that it's on the right level, but the building has no walls ( it has only the sandbag wall ) and backpack is missing ( perhaps below ground ? ).

Server restart does not help, it happens to all clients connected to that serever.

a3e_arr_AmmoDepotOrdnance frequently doesn't spawn.

I've noticed in testing that this box doesn't spawn almost half of the time. I'm unsure how long this has been the case, but it's highly consistent. This occurs both in editor testing and on a dedicated server. I've attached a few examples of this happening.

ArmA 3 Screenshot 2019 08 15 - 16 14 50 30
ArmA 3 Screenshot 2019 08 15 - 17 22 19 90
ArmA 3 Screenshot 2019 08 15 - 17 13 42 02
ArmA 3 Screenshot 2019 08 15 - 17 14 39 29

\functions\Templates\fn_AmmoDepot2.sqf

Line 297 & 298 should read

_box = createVehicle [a3e_additional_weapon_box_1, [(_Pos select 0) + 0, (_Pos select 1) + 3, 0], [], 0, "CAN_COLLIDE"]; _box = createVehicle [a3e_additional_weapon_box_2, [(_Pos select 0) + 3, (_Pos select 1) + 3, 0], [], 0, "CAN_COLLIDE"];

I get this error in the logs:

File functions\Templates\fn_AmmoDepot2.sqf [A3E_fnc_AmmoDepot2], line 297
Error in expression <Vehicle [a3e_additional_weapon_box_1, [(_middlePos select 0) + 0, (_middlePos se>
Error position: <_middlePos select 0) + 0, (_middlePos se>
Error Undefined variable in expression: _middlepos

IsoTemplates

Implementation of the new Isotemplate system started and I need some input from the community.

How to template work right now

In the past templates were scripts, that handled the creation and implementation of all location functionaltity (except patrols).
The server started a script locating all locations for e.g. comcenters and this script called the template script multiple times for every one of these locations. The called script then constructed very object, placed ammoboxes/vehicles, backpacks, comterminals with linked action etc.
This system worked good and reliable but was not very exendable. Creating a new template required writing createvehicle commands for every object in a template-script, adding the creation of vehicles, etc
For example changing th way of static gun creation would require editing every single template one by one.

What is the IsoTemplate-System

The IsoTemplate system works different, but is much more flexible and much easier to configure.
The system works like this:
Base compositions are created in 3DEN editor and exported by calling a trigger (this is the same as with the old system) but instead of a callable template script it dumps all objects, with their position, direction, pitch and special attribute (I will come to the attributes later) in a array which is written to a file. The array contains additional data about the composition like type ("comcenter","Ammodepot",...), author, escape version, mods used, etc. When escape is loaded a set of templates for each type of base is configured and when one should be spawned a construction script loops through every obejct in the array and creates it at the desired position. So instead of hundreds of createvehicle there is now only one for base construction in the whole codebase. This has a lot of advantages, for example there is only a single line where problems with object creations (think of the roadbarriers and wrongly rotated comcenters) can be fixed.

Attribute system

The Attribute system is what makes this new system a huge improvement to expanding Escape and to gameplay itself. When creating a new composition/template, the creator can add key-value pars to the objects and the template creation will use these attributes to do certain thinks with the objects from the template. Maybe the simplest example:
this setvariable ["A3E_IsoAttribute",["Terminal",true]]; will mark an object in a composition as a hackable terminal. So with this simple addition it would be possible to add multiple terminals to a comcenter or simply use a different object as terminal (for example for Global Mobilization which features a custom radioterminal).
Some other examples I already came up with
["VarName","MyObject"] -> Object will have a unique variable name (stored in a object/array unique for every instance of the template).
["Show",false] -> Object will not be spawned but the location, direction and type is stored and accessible in the templatecreation
["Ammobox","Launcher"] -> Defines object as ammobox that is filled with launchers (or e.g. "special","gear",...), used for ammodepots but in theory can be added to every other base aswell. If combined with ["Show",false] can be used to create mod specific ammoboxes (e.g. german boxes in GM or takistan boxes in CUP). But if you need exactly the box from the template, because it looks cool to the rest, you can force the specific box by leaving ["Show",false] out.
["Static","StaticHigh"]/["Static","StaticLow"]/["Static","AA"]/["Static","All"] -> Will be used to specify if an object is the position of a static and if, what type of static: No more low profile launchers behind hesco barriers ;)
["ParkedVehicle","Typeof(Car/Truck/Tank/All)"] -> Position is used for spawning a parked vehicle.
["BoundingBox",boundingbox this] -> Limits the spawn of vehicles to vehicles smaller than the object placed in editor. useful if you want to make sure nothing large is spawned at a position
["Probability",50] -> this object is spawned with a 50:50 chance
["DisableSimulation",5] -> Disables simulation for x seconds after spawn.

Input wanted

The system described above is in development and will hit devbranch soon. But in the meantime I need further input of what I could add to the attribute system. If someboy has any ideas or wishes what to customize when creating a new template, please tell me below in the comments.

Village patrol spawn recommendations

Towns are very fun and exciting to fight in, however I feel that at the moment they lack a bit of a incentive to go into them besides stealing a few weapons early on if you happen to spawn near a town. If you don't spawn near one, it makes a lot more sense just to head to an ammo base.

I think one way to incentivize players to go into towns would be to add random vehicle patrols in the city, separate from the normal military traffic. These vehicles would stay within the boundaries of the towns and randomly patrol the streets. Players could then try to steal the vehicles in towns with the right plan and gear. Ideally, new entries to unitclasses.sqf filled with just armed vehicles would be made, which I'd be happy to make. However, to save some time, the classnames could be pulled from a3e_arr_ComCenDefence_lightArmorClasses for small towns and a3e_arr_ComCenDefence_heavyArmorClasses for larger ones which would work, but wouldn't be so great for variety. Pulling from a3e_arr_Escape_MilitaryTraffic_EnemyVehicleClasses wouldn't be a good idea since those classes have a lot of unarmed vehicles. It doesn't make sense for those to patrol the towns.

This leads to my next recommendation, related to war torn. While the new village patrol spawning system fixes the two key bugs with the previous version, unfortunately Wartorn mode feels a lot less lively now. The vast majority of the distant gunfights occurred because of the mixed spawning and even the indep squads shooting at each other. It really removes a lot of the atmosphere that playing on wartorn gives, along with the reduced difficulty which helps players.

What I would suggest would be to add a new type of patrol that spawns units of the opposite faction just outside the city that tries to attack the units inside. They will still attack players, but won't be part of the normal random patrols that are re-routed to the players when the players are spotted. Have the number of patrols attacking the city be scaled based on the marker size. Perhaps even have armored vehicles attacking the towns, which would definitely need to have their own variable in unitclasses.sqf since the attacking vehicles would be from any faction, and no current variable is suitable for this. Again, I'd be happy to make these.

Coupled with the village patrol vehicles, towns will now become much more exciting and full of action on Wartorn, and players will have a strong incentive to try to steal a disabled vehicle or try to steal one themselves while it's distracted with the other AI.

weapon choices

I run an ARMA3 escape server . I have the mod SMA weapons installed and correctly in the command line but the guards still start with vanilla weapons.
After a non specific time 2-10 mins or so the weapons change in the guards hands.
How do I force the guards to carry SMA weapons. (or any other weapon pack)?

Many thanks

Change compile.py and compile_local.py to account for removal of cpbo.exe

The python script no longer runs when cpbo.exe is not inserted. Inserting the file makes the script run again. Here's the error from the console:
Traceback (most recent call last): File "C:\Github Stuff\co10_Escape\compile_local_original.py", line 77, in <module> subprocess.call(["cpbo.exe", "-p", missiondir]) File "C:\Programs\Python27\lib\subprocess.py", line 172, in call return Popen(*popenargs, **kwargs).wait() File "C:\Programs\Python27\lib\subprocess.py", line 394, in __init__ errread, errwrite) File "C:\Programs\Python27\lib\subprocess.py", line 644, in _execute_child startupinfo) WindowsError: [Error 2] The system cannot find the file specified

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.