https://github.com/freghar/arma-additions/tree/46ee20d7ae/addons/editor_extensions/validate_mission is currently still unreleased, but I figured we should collect some ideas what to check to help out MMT in reviewing missions.
First of all, there are the existing checks from a3aa:
- Overloaded units
- Bad MP lobby ordering
- Unique ACRE2 radios with
_ID_1234 instead of generic ones
But I figured https://community.bistudio.com/wiki/Eden_Editor:_Setting_Attributes could give some other ideas, ie.
GameType being either Coop or PvP, anything else might indicate broken / missing module composition
Respawn set to custom position (whichever number is that)
while at it, for coop, filter playableUnits to get all sides of players, check that each side has its appropriate respawn marker (in all3DENEntities select 5 - markers), don't forget to accept all valid variations on respawn_guer[r]il[l]a
- will do this in A3AA directly, since it's not specific to CNTO
also check that the marker is invisible, alpha attribute value
also check that it's within 100m of the Player unit (or any playable unit if you wish) - doesn't have to always PASS, but it's a good catch if the MM moves units in 3D space, but forgets to select the marker
Some mission info basics the MM might have forgotten to fill
In addition, list (in an always-PASSing check) all mission-modified CBA settings: (allVariables CBA_settings_mission) select { ([_x] call CBA_settings_fnc_priority) isEqualTo "mission" }; (you could theoretically use just allVariables cba_settings_mission, but that would include mission-modified-but-not-enforced settings)
Extend respawn marker check to check for duplicates - this can be valid, but more likely is a result of a MM placing faction composition, deleting it in 3D space, and placing it again
Then maybe
check if count playableUnits > 10, just in case
- check for some known-good role description in
playableUnits? ..
persistent callsigns have been restored (for all all3DENEntities select 1, check if the a3aa_ee_persistent_callsign attribute exists and if it's non-empty string, then the groupId attribute must match it) -- I will do that in A3AA directly, seems generic enough // done
- viscom/scopebox/telestation/whatever additional compositions were placed - search for them in
all3DENEntities select 0 using Role Description (_obj get3DENAttribute "description" select 0)
- check that their respective markers (get marker text to figure out which one is which) are within 5m of the object, in case the MM moved all objects in 3D space
- report FAIL if they're not found - to detect composition bugs (empty role description on these objects)
- viscom/scopebox are on their tables, not above or under
- maybe try
lineIntersectsSurfaces pointing down - if you get ground while on the table as well, try starting from the center of the laptop/scopebox model
- if the mission time of day is between 21h and 04h (or so), check for NVGs or flares -- use
dayTime, get3DENMissionAttribute is broken for anything in Environment
- check if there are multiple map markers with text "VISCOM" or "Telestation" or so, catching an issue where MM places down a composition, deletes it in 3d, and leaves the old markers behind
- check if all units have skill == 0.5, because some mods (3CB) change this and some AI mods (ie. mine) detect that as a user change and avoid dynamically assigned skill because of it
I'm out of ideas, ... anything else reasonably checkable? .. Most of the items on MMT checklist (headless client, etc.) are already indirectly covered by some of the things above.
Any volunteers wanting to implement this? .. I can push an example of 2 checks or something to get started.
PS: this is deferred to a time when the compositions have a new sniper team in place of the old DMT
- If a playable unit with "DMT Shooter" (or something like that)
roleDescription has a ACE-compatible magnified scope
https://github.com/freghar/arma-additions/tree/46ee20d7ae/addons/editor_extensions/validate_mission is currently still unreleased, but I figured we should collect some ideas what to check to help out MMT in reviewing missions.
First of all, there are the existing checks from a3aa:
_ID_1234instead of generic onesBut I figured https://community.bistudio.com/wiki/Eden_Editor:_Setting_Attributes could give some other ideas, ie.
GameTypebeing eitherCooporPvP, anything else might indicate broken / missing module compositionRespawnset to custom position (whichever number is that)while at it, for coop, filterplayableUnitsto get all sides of players, check that each side has its appropriate respawn marker (inall3DENEntities select 5- markers), don't forget to accept all valid variations onrespawn_guer[r]il[l]aalso check that the marker is invisible, alpha attribute valuealso check that it's within 100m of the Player unit (or any playable unit if you wish) - doesn't have to always PASS, but it's a good catch if the MM moves units in 3D space, but forgets to select the markerSome mission info basics the MM might have forgotten to fillIn addition, list (in an always-PASSing check) all mission-modified CBA settings:(allVariables CBA_settings_mission) select { ([_x] call CBA_settings_fnc_priority) isEqualTo "mission" };(you could theoretically use justallVariables cba_settings_mission, but that would include mission-modified-but-not-enforced settings)Extend respawn marker check to check for duplicates - this can be valid, but more likely is a result of a MM placing faction composition, deleting it in 3D space, and placing it againThen maybe
check ifcount playableUnits > 10, just in caseplayableUnits? ..persistent callsigns have been restored (for all-- I will do that in A3AA directly, seems generic enough // doneall3DENEntities select 1, check if thea3aa_ee_persistent_callsignattribute exists and if it's non-empty string, then the groupId attribute must match it)all3DENEntities select 0using Role Description (_obj get3DENAttribute "description" select 0)lineIntersectsSurfacespointing down - if you get ground while on the table as well, try starting from the center of the laptop/scopebox modeldayTime,get3DENMissionAttributeis broken for anything in EnvironmentI'm out of ideas, ... anything else reasonably checkable? .. Most of the items on MMT checklist (headless client, etc.) are already indirectly covered by some of the things above.
Any volunteers wanting to implement this? .. I can push an example of 2 checks or something to get started.
PS: this is deferred to a time when the compositions have a new sniper team in place of the old DMT
roleDescriptionhas a ACE-compatible magnified scopeACE_ScopeAdjust_*attributes need to be defined for it inCfgWeapons