Jump to content
Sign in to follow this  
-----jayjayc-----

Graphical SITREP Script

Recommended Posts

Can anyone help me improve a graphical SITREP script that I've put together?

I felt that it would be useful to get a quick visual representation of squad location and strength - particularly when using HC or Rydiger's HAC for instance - and so put this pretty clunky script together that places three markers per squad - one label, one light and one solid circle the latter two sized proportionally to initial squad strength and current strength when the script is executed...

arma2oa%202012-02-06%2023-10-00-69.jpg

Script:

//BLUFOR_SITREP.sqf

_MarkerA_ID = createMarker ["MarkerA_ID",getpos leader HQ];

"MarkerA_ID" setMarkerType "b_hq";

"MarkerA_ID" setMarkerColor "ColorBlue";

"MarkerA_ID" setMarkerText "HQ";

_MarkerA_Outline = createMarker ["MarkerA_Outline",getpos leader HQ];

"MarkerA_Outline" setMarkerDir 180;

"MarkerA_Outline" setMarkerColor "ColorBlue";

"MarkerA_Outline" setMarkerShape "ELLIPSE";

"MarkerA_Outline" setMarkerSize [40,40];

"MarkerA_Outline" setMarkerAlpha 0.25;

_MarkerA = createMarker ["MarkerA",getpos leader HQ];

"MarkerA" setMarkerDir 180;

"MarkerA" setMarkerColor "ColorBlue";

"MarkerA" setMarkerShape "ELLIPSE";

"MarkerA" setMarkerSize [({alive _x} count (units HQ)) * 10,({alive _x} count (units HQ)) * 10];

"MarkerA" setMarkerAlpha 0.8;

//

_MarkerB_ID = createMarker ["MarkerB_ID",getpos leader Inf1];

"MarkerB_ID" setMarkerType "b_inf";

"MarkerB_ID" setMarkerColor "ColorBlue";

"MarkerB_ID" setMarkerText "Inf. Section 1";

_MarkerB_Outline = createMarker ["MarkerB_Outline",getpos leader Inf1];

"MarkerB_Outline" setMarkerDir 180;

"MarkerB_Outline" setMarkerColor "ColorBlue";

"MarkerB_Outline" setMarkerShape "ELLIPSE";

"MarkerB_Outline" setMarkerSize [80,80];

"MarkerB_Outline" setMarkerAlpha 0.25;

_MarkerB = createMarker ["MarkerB",getpos leader Inf1];

"MarkerB" setMarkerDir 180;

"MarkerB" setMarkerColor "ColorBlue";

"MarkerB" setMarkerShape "ELLIPSE";

"MarkerB" setMarkerSize [({alive _x} count (units Inf1)) * 10,({alive _x} count (units Inf1)) * 10];

"MarkerB" setMarkerAlpha 0.8;

//

_MarkerC_ID = createMarker ["MarkerC_ID",getpos leader Inf2];

"MarkerC_ID" setMarkerType "b_inf";

"MarkerC_ID" setMarkerColor "ColorBlue";

"MarkerC_ID" setMarkerText "Inf. Section 2";

_MarkerC_Outline = createMarker ["MarkerC_Outline",getpos leader Inf2];

"MarkerC_Outline" setMarkerDir 180;

"MarkerC_Outline" setMarkerColor "ColorBlue";

"MarkerC_Outline" setMarkerShape "ELLIPSE";

"MarkerC_Outline" setMarkerSize [80,80];

"MarkerC_Outline" setMarkerAlpha 0.25;

_MarkerC = createMarker ["MarkerC",getpos leader Inf2];

"MarkerC" setMarkerDir 180;

"MarkerC" setMarkerColor "ColorBlue";

"MarkerC" setMarkerShape "ELLIPSE";

"MarkerC" setMarkerSize [({alive _x} count (units Inf2)) * 10,({alive _x} count (units Inf2)) * 10];

"MarkerC" setMarkerAlpha 0.8;

//

_MarkerD_ID = createMarker ["MarkerD_ID",getpos leader MotInf1];

"MarkerD_ID" setMarkerType "b_mech_inf";

"MarkerD_ID" setMarkerColor "ColorBlue";

"MarkerD_ID" setMarkerText "Mech. Inf. Section 1";

_MarkerD_Outline = createMarker ["MarkerD_Outline",getpos leader MotInf1];

"MarkerD_Outline" setMarkerDir 180;

"MarkerD_Outline" setMarkerColor "ColorBlue";

"MarkerD_Outline" setMarkerShape "ELLIPSE";

"MarkerD_Outline" setMarkerSize [90,90];

"MarkerD_Outline" setMarkerAlpha 0.25;

_MarkerD = createMarker ["MarkerD",getpos leader MotInf1];

"MarkerD" setMarkerDir 180;

"MarkerD" setMarkerColor "ColorBlue";

"MarkerD" setMarkerShape "ELLIPSE";

"MarkerD" setMarkerSize [({alive _x} count (units MotInf1)) * 10,({alive _x} count (units MotInf1)) * 10];

"MarkerD" setMarkerAlpha 0.8;

//

_MarkerE_ID = createMarker ["MarkerE_ID",getpos leader MotInf2];

"MarkerE_ID" setMarkerType "b_mech_inf";

"MarkerE_ID" setMarkerColor "ColorBlue";

"MarkerE_ID" setMarkerText "Mech. Inf. Section 2";

_MarkerE_Outline = createMarker ["MarkerE_Outline",getpos leader MotInf2];

"MarkerE_Outline" setMarkerDir 180;

"MarkerE_Outline" setMarkerColor "ColorBlue";

"MarkerE_Outline" setMarkerShape "ELLIPSE";

"MarkerE_Outline" setMarkerSize [90,90];

"MarkerE_Outline" setMarkerAlpha 0.25;

_MarkerE = createMarker ["MarkerE",getpos leader MotInf2];

"MarkerE" setMarkerDir 180;

"MarkerE" setMarkerColor "ColorBlue";

"MarkerE" setMarkerShape "ELLIPSE";

"MarkerE" setMarkerSize [({alive _x} count (units MotInf2)) * 10,({alive _x} count (units MotInf2)) * 10];

"MarkerE" setMarkerAlpha 0.8;

//

_MarkerF_ID = createMarker ["MarkerF_ID",getpos leader AT];

"MarkerF_ID" setMarkerType "b_inf";

"MarkerF_ID" setMarkerColor "ColorBlue";

"MarkerF_ID" setMarkerText "AT Squad";

_MarkerF_Outline = createMarker ["MarkerF_Outline",getpos leader AT];

"MarkerF_Outline" setMarkerDir 180;

"MarkerF_Outline" setMarkerColor "ColorBlue";

"MarkerF_Outline" setMarkerShape "ELLIPSE";

"MarkerF_Outline" setMarkerSize [40,40];

"MarkerF_Outline" setMarkerAlpha 0.25;

_MarkerF = createMarker ["MarkerF",getpos leader AT];

"MarkerF" setMarkerDir 180;

"MarkerF" setMarkerColor "ColorBlue";

"MarkerF" setMarkerShape "ELLIPSE";

"MarkerF" setMarkerSize [({alive _x} count (units AT)) * 10,({alive _x} count (units AT)) * 10];

"MarkerF" setMarkerAlpha 0.8;

//

_MarkerG_ID = createMarker ["MarkerG_ID",getpos leader Recon];

"MarkerG_ID" setMarkerType "b_recon";

"MarkerG_ID" setMarkerColor "ColorBlue";

"MarkerG_ID" setMarkerText "Recon Squad";

_MarkerG_Outline = createMarker ["MarkerG_Outline",getpos leader Recon];

"MarkerG_Outline" setMarkerDir 180;

"MarkerG_Outline" setMarkerColor "ColorBlue";

"MarkerG_Outline" setMarkerShape "ELLIPSE";

"MarkerG_Outline" setMarkerSize [30,30];

"MarkerG_Outline" setMarkerAlpha 0.25;

_MarkerG = createMarker ["MarkerG",getpos leader Recon];

"MarkerG" setMarkerDir 180;

"MarkerG" setMarkerColor "ColorBlue";

"MarkerG" setMarkerShape "ELLIPSE";

"MarkerG" setMarkerSize [({alive _x} count (units Recon)) * 10,({alive _x} count (units Recon)) * 10];

"MarkerG" setMarkerAlpha 0.8;

//

_MarkerH_ID = createMarker ["MarkerH_ID",getpos leader Jackal1];

"MarkerH_ID" setMarkerType "b_motor_inf";

"MarkerH_ID" setMarkerColor "ColorBlue";

"MarkerH_ID" setMarkerText "Jackal 1";

_MarkerH_Outline = createMarker ["MarkerH_Outline",getpos leader Jackal1];

"MarkerH_Outline" setMarkerDir 180;

"MarkerH_Outline" setMarkerColor "ColorBlue";

"MarkerH_Outline" setMarkerShape "ELLIPSE";

"MarkerH_Outline" setMarkerSize [30,30];

"MarkerH_Outline" setMarkerAlpha 0.25;

_MarkerH = createMarker ["MarkerH",getpos leader Jackal1];

"MarkerH" setMarkerDir 180;

"MarkerH" setMarkerColor "ColorBlue";

"MarkerH" setMarkerShape "ELLIPSE";

"MarkerH" setMarkerSize [({alive _x} count (units Jackal1)) * 10,({alive _x} count (units Jackal1)) * 10];

"MarkerH" setMarkerAlpha 0.8;

//

_MarkerJ_ID = createMarker ["MarkerJ_ID",getpos leader Jackal2];

"MarkerJ_ID" setMarkerType "b_motor_inf";

"MarkerJ_ID" setMarkerColor "ColorBlue";

"MarkerJ_ID" setMarkerText "Jackal 2";

_MarkerJ_Outline = createMarker ["MarkerJ_Outline",getpos leader Jackal2];

"MarkerJ_Outline" setMarkerDir 180;

"MarkerJ_Outline" setMarkerColor "ColorBlue";

"MarkerJ_Outline" setMarkerShape "ELLIPSE";

"MarkerJ_Outline" setMarkerSize [30,30];

"MarkerJ_Outline" setMarkerAlpha 0.25;

_MarkerJ = createMarker ["MarkerJ",getpos leader Jackal2];

"MarkerJ" setMarkerDir 180;

"MarkerJ" setMarkerColor "ColorBlue";

"MarkerJ" setMarkerShape "ELLIPSE";

"MarkerJ" setMarkerSize [({alive _x} count (units Jackal2)) * 10,({alive _x} count (units Jackal2)) * 10];

"MarkerJ" setMarkerAlpha 0.8;

//

_MarkerK_ID = createMarker ["MarkerK_ID",getpos leader Air];

"MarkerK_ID" setMarkerType "b_air";

"MarkerK_ID" setMarkerColor "ColorBlue";

"MarkerK_ID" setMarkerText "Air";

_MarkerK_Outline = createMarker ["MarkerK_Outline",getpos leader Air];

"MarkerK_Outline" setMarkerDir 180;

"MarkerK_Outline" setMarkerColor "ColorBlue";

"MarkerK_Outline" setMarkerShape "ELLIPSE";

"MarkerK_Outline" setMarkerSize [20,20];

"MarkerK_Outline" setMarkerAlpha 0.25;

_MarkerK = createMarker ["MarkerK",getpos leader Air];

"MarkerK" setMarkerDir 180;

"MarkerK" setMarkerColor "ColorBlue";

"MarkerK" setMarkerShape "ELLIPSE";

"MarkerK" setMarkerSize [({alive _x} count (units Air)) * 10,({alive _x} count (units Air)) * 10];

"MarkerK" setMarkerAlpha 0.8;

////////////////////////////

_MarkerOPFOR_ID = createMarker ["MarkerOPFOR_ID",[2040,7668,0]];

"MarkerOPFOR_ID" setMarkerType "o_unknown";

"MarkerOPFOR_ID" setMarkerColor "ColorRed";

"MarkerOPFOR_ID" setMarkerText "OPFOR";

_MarkerOPFOR_Outline = createMarker ["MarkerOPFOR_Outline",[2040,7668,0]];

"MarkerOPFOR_Outline" setMarkerDir 180;

"MarkerOPFOR_Outline" setMarkerColor "ColorRed";

"MarkerOPFOR_Outline" setMarkerShape "ELLIPSE";

"MarkerOPFOR_Outline" setMarkerSize [OPFOR_count * 10 , OPFOR_count * 10];

"MarkerOPFOR_Outline" setMarkerAlpha 0.25;

_MarkerOPFOR = createMarker ["MarkerOPFOR",[2040,7668,0]];

"MarkerOPFOR" setMarkerDir 180;

"MarkerOPFOR" setMarkerColor "ColorRed";

"MarkerOPFOR" setMarkerShape "ELLIPSE";

"MarkerOPFOR" setMarkerSize [({alive _x && side _x == east} count allunits) * 10,({alive _x && side _x == east} count allunits) * 10];

"MarkerOPFOR" setMarkerAlpha 0.6;

////////////////////////////

sleep 10;

//

deleteMarker "MarkerA_ID";

deleteMarker "MarkerA_Outline";

deleteMarker "MarkerA";

deleteMarker "MarkerB_ID";

deleteMarker "MarkerB_Outline";

deleteMarker "MarkerB";

deleteMarker "MarkerC_ID";

deleteMarker "MarkerC_Outline";

deleteMarker "MarkerC";

deleteMarker "MarkerD_ID";

deleteMarker "MarkerD_Outline";

deleteMarker "MarkerD";

deleteMarker "MarkerE_ID";

deleteMarker "MarkerE_Outline";

deleteMarker "MarkerE";

deleteMarker "MarkerF_ID";

deleteMarker "MarkerF_Outline";

deleteMarker "MarkerF";

deleteMarker "MarkerG_ID";

deleteMarker "MarkerG_Outline";

deleteMarker "MarkerG";

deleteMarker "MarkerH_ID";

deleteMarker "MarkerH_Outline";

deleteMarker "MarkerH";

deleteMarker "MarkerJ_ID";

deleteMarker "MarkerJ_Outline";

deleteMarker "MarkerJ";

deleteMarker "MarkerK_ID";

deleteMarker "MarkerK_Outline";

deleteMarker "MarkerK";

deleteMarker "MarkerOPFOR_ID";

deleteMarker "MarkerOPFOR_Outline";

deleteMarker "MarkerOPFOR";

Does exactly what I want, but the problem is that it's pretty inflexible at the moment relying on individual group names and sizes being set in editor then entered individually in the script - I imagine there must be a clever way of using 'allGroups' to return an array and create markers for all BLUFOR groups to make this more adaptable for quick use in different missions, etc. but my scripting/syntax knowledge isn't up to it... I guess the steps would be:

1. On init establish an initial group size value for each group

2. Execute the SITREP script (by radio is ok) and get current strength, create markers

3. Delete all markers after given time period

Can anyone offer any pointers?

Share this post


Link to post
Share on other sites
Can anyone offer any pointers?

I suggest you start with a function that will create markers for you and returning a string, which is the reference to the marker. Keep them in an array, then you can easily delete them all in one go, once you're done with them.

Then it's only about reading and interpreting allUnits, from which you can aswell get all the groups, by iterating over allUnits and saving new groups you encounter... Maybe you wanna mark some locations too.

You might take a look at the RUBE library, which includes the following functions for convenient map drawings: RUBE_mapDrawMarker (for symbols or areas) and RUBE_mapDrawLine (from point to point with narrow rectangles).

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×