Dcs lua tool (#66)
* custom drawings and animations for video * wip * Work in progress refactor for toolkit * wip * Refactored everything for Lua Compile Tool * Trying out the github action * updated the github action ref * initial working version --------- Co-authored-by: ex61wi <tim.rorije@ing.com> Co-authored-by: dutchie031 <dutchie031>
This commit is contained in:
committed by
GitHub
co-authored by
ex61wi
dutchie031 <dutchie031>
parent
c027921527
commit
128aed1d2b
@@ -37,10 +37,8 @@
|
||||
Even though, at the time of writing this, I've written every single line of code myself, I could not have done it without the help of these members.<br>
|
||||
Therefore it's something WE created.
|
||||
|
||||
Our goal was very simple, make it possible to make big dynamic missions, without having to either give away all controll or having to get knee deep into scripting. <br>
|
||||
We struck a balance.
|
||||
|
||||
|
||||
Our goal was very simple, make it possible to make big dynamic missions, without having to either give away all control or having to get knee deep into scripting. <br>
|
||||
We struck a balance.
|
||||
|
||||
</p>
|
||||
|
||||
@@ -63,5 +61,4 @@
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
```
|
||||
</html>
|
||||
@@ -220,5 +220,4 @@
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
```
|
||||
</html>
|
||||
@@ -0,0 +1,85 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" data-theme="dark">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Spearhead Missions</title>
|
||||
<link rel="stylesheet" href="/style/style.css">
|
||||
<script src="/js/site.js"></script>
|
||||
<style>
|
||||
.side-nav a.active {
|
||||
font-weight: bold;
|
||||
color: #4fc3f7;
|
||||
}
|
||||
</style>
|
||||
<script type="module" src="/js/components.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header>
|
||||
<app-header></app-header>
|
||||
</header>
|
||||
<main>
|
||||
<div class="reference-container">
|
||||
<app-sidebar></app-sidebar>
|
||||
|
||||
<div class="content-wrapper">
|
||||
<h1>Map Markings</h1>
|
||||
|
||||
<p>
|
||||
Drawings can be very powerful in DCS missions. <br>
|
||||
They can guide players towards the right objectives or warn them of dangers ahead. <br>
|
||||
In Spearhead, we have both automatic markers and drawings as well as the possibility to integrate custom drawings.<br>
|
||||
</p>
|
||||
|
||||
<h2 id="automatic_drawings">Automated</h2>
|
||||
|
||||
|
||||
<h3 id="stage_drawings">Stages</h3>
|
||||
<p>
|
||||
Spearhead automatically draws stage markings on the map for players to see. <br>
|
||||
These are drawn when a stage becomes active and removed when the stage is completed. <br>
|
||||
This gives players a clear visual indication of where they need to go next. <br>
|
||||
<br>
|
||||
These can however be disabled in the configuration if desired. <br>
|
||||
<code-inline>SpearheadConfig.StageConfig.drawStages</code-inline> <br>
|
||||
<code-inline>SpearheadConfig.StageConfig.drawPreActived</code-inline> <br>
|
||||
</p>
|
||||
|
||||
<h3 id="lastcontact_markings">Last Contact</h3>
|
||||
<p>
|
||||
If enabled, Spearhead will draw a marker on the map where the enemy was last killed. <br>
|
||||
This might help in big multiplayer missions where players log off without sharing intel. <br>
|
||||
This can be enabled or disabled in the configuration. <br>
|
||||
<code-inline>SpearheadConfig.StageConfig.markLastContact</code-inline>
|
||||
</p>
|
||||
|
||||
<h2 id="custom_drawings">Custom</h2>
|
||||
<p>
|
||||
Adding a custom drawing is easy. <br>
|
||||
Simply create the drawing and then name it according to the following convention: <br>
|
||||
<code-inline>DRAWING_[a]:[b]_[FreeForm]</starting></code-inline> <br>
|
||||
Where:
|
||||
<ul>
|
||||
<li><code-inline>[a]</code-inline> is the stage number at which the drawing should appear.</li>
|
||||
<li><code-inline>[b]</code-inline> is the stage number at which the drawing should be removed again.</li>
|
||||
<li><code-inline>[FreeForm]</code-inline> is any name you want to make it unique or findables.</li>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<note-box type="warning" title="Author Layer">
|
||||
The custom drawings need to be in the "Author" layer of the mission editor to be managed by Spearhead.
|
||||
This is due to other layers being visible by default and cannot be as easily removed when not needed.
|
||||
The author layer is not visible by default in multiplayer, making it perfect for this use case.
|
||||
</note-box>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<footer>
|
||||
<p>© 2025 Spearhead Project</p>
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -68,5 +68,4 @@
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
```
|
||||
</html>
|
||||
@@ -0,0 +1,208 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" data-theme="dark">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Spearhead Tutorials</title>
|
||||
|
||||
<link rel="stylesheet" href="/style/prism.css">
|
||||
<link rel="stylesheet" href="/style/style.css">
|
||||
|
||||
<script src="/js/prism.js"></script>
|
||||
<script src="/js/site.js"></script>
|
||||
<style>
|
||||
.side-nav a.active {
|
||||
font-weight: bold;
|
||||
color: #4fc3f7;
|
||||
}
|
||||
</style>
|
||||
<script type="module" src="../js/components.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header>
|
||||
<app-header></app-header>
|
||||
</header> <main>
|
||||
<div class="reference-container">
|
||||
<app-sidebar></app-sidebar>
|
||||
|
||||
<div class="content-wrapper">
|
||||
<h1>Tutorials</h1>
|
||||
<p>
|
||||
This guide is to get you started building your first Spearhead mission. <br />
|
||||
Spearhead was created to enable the mission maker to worry as little about the running, timing and scripting
|
||||
and most about the setting and looks and feel of the mission. <br />
|
||||
In the example we'll show how you can create a simple island hopping mission
|
||||
</p>
|
||||
|
||||
<h2>Include the script</h2>
|
||||
<p>
|
||||
Read <a href="/pages/include-script.html">here</a> how to include the Spearhead script in your mission first. <br />
|
||||
</p>
|
||||
|
||||
<h2 id="stages">Stages</h2>
|
||||
|
||||
<p>
|
||||
In general, stages are the backbone of a Spearhead mission. <br>
|
||||
They define the flow of the mission and what is active at what time. <br>
|
||||
|
||||
Don't worry, it can be changed and adapted later on, but it's best to translate your mission idea into stages first. <br>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Stages are defined by trigger zones. <br>
|
||||
They'll be picked up by Spearhead when named according to the naming convention: <br>
|
||||
<code-inline>MISSIONSTAGE_[OrderNumber]_[FreeForm]</code-inline> <br>
|
||||
<br>
|
||||
Stages are divided in primary stages: <code-inline>MISSIONSTAGE_[number]</code-inline> <br>
|
||||
or secondary stages: <code-inline>MISSIONSTAGE_x[number]</code-inline> <br>
|
||||
Note the x before the number. This marks it as "extra" <br>
|
||||
Secondary stages will follow the order number, but are not required to be completed before moving on to the next stage numbers. <br>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
For this Demo mission we'll create 3 stages. <br>
|
||||
<code-inline>MissionStage_1_start</code-inline><br>
|
||||
<code-inline>MissionStage_2_continuation</code-inline><br>
|
||||
<code-inline>MissionStage_3_finale</code-inline> <br>
|
||||
Each stage will have it's own trigger zone. <br/>
|
||||
</p>
|
||||
<img src="../img/first-start/1.png" alt="The first stages displayed" style="width: 100%;"></img>
|
||||
|
||||
<p>
|
||||
There's 3 stages now. <br>
|
||||
The first <code-inline>MissionStage_1_start</code-inline> is the first stage and will be active at mission start. <br>
|
||||
The second <code-inline>MissionStage_2_continuation</code-inline> will be pre-activated when stage 1 is active. <br>
|
||||
But will be fully activated when stage 1 is complete. <br>
|
||||
Pre-activated means that the SAM missions and Airbase units will be activated. <br>
|
||||
This is the difference between SAM and DEAD missions, but let's not get into too much detail at this time. <br>
|
||||
|
||||
You can ofcourse create as many stages as you want. <br>
|
||||
You can also change the amount of stages that get pre-activated. <br>
|
||||
By default Spearhead will pre-activate 1 stage ahead. <br/>
|
||||
This can be changed in the configuration. <br/>
|
||||
</p>
|
||||
|
||||
<h2 id="create-missions">Create Missions</h2>
|
||||
<p>
|
||||
Now that we've created the stages we can start adding missions to them. <br>
|
||||
Missions are also defined by trigger zones. <br>
|
||||
They'll be picked up by Spearhead when named according to the naming convention: <br>
|
||||
<code-inline>MISSION_[Type]_[FreeForm]</code-inline> <br>
|
||||
Where <code-inline>[Type]</code-inline> is the type of mission. <a href="./reference.html#mission-zones">See all</a><br>
|
||||
|
||||
</p>
|
||||
|
||||
<h3 id="mission-cas">CAS</h3>
|
||||
<p>
|
||||
Personally CAS is one of my favorite mission types. <br>
|
||||
Mostly because it's easy to set up and creates a truly immersive experience. <br>
|
||||
|
||||
</p>
|
||||
|
||||
<h3 id="mission-sam">SAM</h3>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
|
||||
<h3 id="mission-strike">STRIKE</h3>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
|
||||
|
||||
<h2 id="setting-up-cap">Setting up CAP</h2>
|
||||
<p>
|
||||
If you don't want to use the CAP managers withing Spearhead you can skip this and continue to <a href="#setting-up-the-missions">Setting up Missions</a>. <br />
|
||||
However CAP is one of the painpoints in a lot of missions and setting up a dynamic feeling airspace can be
|
||||
quite the challenge. <br />
|
||||
With the CAP managers we've tried to make this a lot easier. <br />
|
||||
|
||||
A CAP group needs to follow the following naming convention: <code-inline>CAP_[A|B][CONFIG]_[Free Form]</code-inline>
|
||||
|
||||
For details on config read this: <code-inline>CAP Group Config</code-inline>
|
||||
|
||||
For now I set up 3 groups with the following names. <code-inline>CAP_A[1]1_Rota1</code-inline>, <code-inline>CAP_A[1]1_Rota1-1</code-inline>,
|
||||
<code-inline>CAP_B[1]1_Rota1</code-inline> <br />
|
||||
The first two are marked with <code-inline>A</code-inline> and will therefore be primary CAP units. They will be
|
||||
scheduled and make up for the total count. <br />
|
||||
Meaning that for this airbase there is 2 CAP units max at a time flying out. <br />
|
||||
In this case all groups have <code-inline>[1]1</code-inline> in the name, (This would be the same as <code-inline>[1]A</code-inline>) which means
|
||||
that when stage 1 is active the groups will activate and fly out to stage 1.
|
||||
|
||||
I also set up a few groups further back. One example: <code-inline>CAP_A[1-3]3_Group1</code-inline>. This group will
|
||||
protect zone 3 when zones 1 through 3 are active.
|
||||
|
||||
CAP units fly out, fly their CAP zone for x amount of minutes and will then RTB. <br />
|
||||
Before they actually RTB an event is triggered 10 minutes before the actual RTB task. This event
|
||||
will trigger a backup unit to startup and fly out to take over. <br />
|
||||
</p>
|
||||
|
||||
<note-box type="info" title="Tip">
|
||||
You can start a mission, speed up the simulation and make the CAP fly out to see what happens
|
||||
</note-box>
|
||||
|
||||
<h3 id="creating-cap-routes">Creating CAP Routes</h3>
|
||||
<p>
|
||||
Creating CAP routes is not needed per se, but with a multi-stage stage (we have 2 stages with <code-inline>_1_</code-inline>) it is recommended. <br/>
|
||||
Similarly with huge stages. <br/>
|
||||
If there is multiple zones it will "round-robin" over them. <br/>
|
||||
</p>
|
||||
<p>
|
||||
If no CAP route is present the unit will fly a route generated differently per zone: <br/>
|
||||
<code-inline>quad zone</code-inline> => race-track between the corner closest to the origin airbase to the center point of the zone <br/>
|
||||
<code-inline>circle zone</code-inline> => race-track between the closest point on circle to the origin airbase to the center <br/>
|
||||
</p>
|
||||
<p>
|
||||
If you want to create your own CAP Routes you can! <br/>
|
||||
For this example I created 2 CAP routes inside of the 2 <code-inline>_1_</code-inline> stages. <br/>
|
||||
</p>
|
||||
<p>
|
||||
As you can see below there's a nice feature you can exploit. As long as the <code-inline>X</code-inline> of the zone is inside of the the <code-inline>CAPROUTE</code-inline> will be used for that stage!
|
||||
</p>
|
||||
<img src="../img/cap_routes.png" alt="CAP Routes Image" style="width: 100%;"></img>
|
||||
|
||||
<p>
|
||||
Well, nice, we're done setting up the initial CAP effort. <br/>
|
||||
If you want to change values for the CAP routes please read about how to configure it here: <a href="./Reference.html#cap-config">Cap Config</a>
|
||||
</p>
|
||||
|
||||
<h2 id="mission-briefings">Mission Briefings</h2>
|
||||
<p>
|
||||
So now we've created some missions we also want to add briefings to them. This is pretty easy with Spearhead. <br/>
|
||||
</p>
|
||||
<p>
|
||||
To do so click on <code-inline>draw</code-inline> on the left hand pane in the mission editor. This opens up the drawing tools in the editor. <br/>
|
||||
On the right click <code-inline>TextBox</code-inline> and click somewhere inside the zone to which you want to add the briefing. <br/>
|
||||
Give the briefing a name (It's not used, but can be nice to use to reference the briefing later) and add the briefing. <br/>
|
||||
The text box is quite small, but can have a lot of text. Easiest is to edit the text in an editor of choice and paste it into the box afterwards. <br/>
|
||||
</p>
|
||||
<p>
|
||||
Keep the binding layer to "Author" only. That way it doesn't show up for anyone other than in the mission editor.
|
||||
</p>
|
||||
<p>
|
||||
See the two images below. The left shows the <code-inline>Text Box</code-inline> drawing. The right shows the briefing as shown in the mission.
|
||||
</p>
|
||||
<div style="display: flex">
|
||||
<div style="flex: 50%">
|
||||
<img src="../img/briefing_me.png"/>
|
||||
</div>
|
||||
<div style="flex: 50%">
|
||||
<img src="../img/briefing_mission.png"/>
|
||||
</div>
|
||||
</div>
|
||||
<p>
|
||||
We are now done creating a first mission. Hit fly and test it. <br/>
|
||||
Check all references for way more features and keep up to date with the latest changes as they come along! <br/>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
<footer>
|
||||
<p>© 2025 Spearhead Project</p>
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,69 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" data-theme="dark">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Spearhead Tutorials</title>
|
||||
|
||||
<link rel="stylesheet" href="/style/prism.css">
|
||||
<link rel="stylesheet" href="/style/style.css">
|
||||
|
||||
<script src="/js/prism.js"></script>
|
||||
<script src="/js/site.js"></script>
|
||||
<style>
|
||||
.side-nav a.active {
|
||||
font-weight: bold;
|
||||
color: #4fc3f7;
|
||||
}
|
||||
</style>
|
||||
<script type="module" src="../js/components.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header>
|
||||
<app-header></app-header>
|
||||
</header> <main>
|
||||
<div class="reference-container">
|
||||
<app-sidebar></app-sidebar>
|
||||
|
||||
<div class="content-wrapper">
|
||||
<h1>Include the Spearhead Script</h1>
|
||||
|
||||
<h2 id="include-the-script">Include the Script</h2>
|
||||
<p>
|
||||
Download the latest version of Spearhead. You can choose which version you feel comfortable with. <br />
|
||||
Versions that end in -rc are not stable. Versions that do not have the "release candidate" (rc) tag are. <br>
|
||||
Stable does not mean bug-free, so if you find any issues let us know!
|
||||
<br />
|
||||
Here is the latest stable version:
|
||||
<download-spearhead></download-spearhead>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Then run the script in the mission. <br />
|
||||
Please do exactly as it's done below. <br />
|
||||
</p>
|
||||
<div style="width: 100%;">
|
||||
<img style="width: 100%;" src="../img/script_install.png"></img>
|
||||
</div>
|
||||
|
||||
<note-box type="info" title="Note">
|
||||
Spearhead does not require any dependencies (eg. MIST or MOOSE). Compatibility with other frameworks is
|
||||
not tested at this time, so cannot be guaranteed, but there should be no conflicts if they are not
|
||||
controlling the same units.
|
||||
</note-box>
|
||||
|
||||
<div class="next-steps">
|
||||
<a href="/pages/first-start.html">Next: Getting started with Spearhead →</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
<footer>
|
||||
<p>© 2025 Spearhead Project</p>
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -123,4 +123,3 @@
|
||||
</body>
|
||||
|
||||
</html>
|
||||
```
|
||||
@@ -80,11 +80,22 @@
|
||||
<strong>Example:</strong> <code-inline>MISSION_DEAD_BYRON</code-inline>
|
||||
</p>
|
||||
<p>
|
||||
Missions are completable objectives with specific types, such as DEAD, BAI, STRIKE, or SAM. <br />
|
||||
Missions are completable objectives with specific types. <br />
|
||||
Randomized missions can be defined using the format: <span
|
||||
class="inline-lua"><span class="lua-variable">RANDOMMISSION_[Type]_[Name]_[Index]</span></span>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Valid Types:
|
||||
<ul>
|
||||
<li>SAM</li>
|
||||
<li>DEAD</li>
|
||||
<li>BAI</li>
|
||||
<li>CAS</li>
|
||||
<li>STRIKE</li>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<h3 id="cap-routes">CAP Routes</h3>
|
||||
<p>
|
||||
<strong>Format:</strong> <code-inline>CAPROUTE_[routeID]_[Name]</code-inline> <br />
|
||||
|
||||
+35
-37
@@ -66,24 +66,23 @@
|
||||
These are logically ordered zones that will activate one by one based on the mission status in them. <br />
|
||||
There is a little more to it, but you'll find out. <br />
|
||||
|
||||
Stages need to be named according to the convention: <span class="inline-lua"><span class="lua-variable">MISSIONSTAGE_[OrderNumber]_[FreeForm]</span></span> <br />
|
||||
The first stage will be called <span class="inline-lua"><span class="lua-variable">MISSIONSTAGE_1</span></span> or <span class="inline-lua"><span class="lua-variable">MISSIONSTAGE_1_EAST</span></span> for example. <br />
|
||||
Stages need to be named according to the convention: <code-inline>MISSIONSTAGE_[OrderNumber]_[FreeForm]</code-inline> <br />
|
||||
The first stage will be called <code-inline>MISSIONSTAGE_1</code-inline> or <code-inline>MISSIONSTAGE_1_EAST</code-inline> for example. <br />
|
||||
<br /><br />
|
||||
Stages are divided in primary stages: <span class="inline-lua"><span class="lua-variable">MISSIONSTAGE_[number]</span></span> <br />
|
||||
or secondary stages: <span class="inline-lua"><span class="lua-variable">MISSIONSTAGE_x[number]</span></span> <br />
|
||||
Stages are divided in primary stages: <code-inline>MISSIONSTAGE_[number]</code-inline> <br />
|
||||
or secondary stages: <code-inline>MISSIONSTAGE_x[number]</code-inline> <br />
|
||||
Note the x before the number. This marks it as "extra"
|
||||
</p>
|
||||
|
||||
<p>
|
||||
For this mission we started with the three stages: <span class="inline-lua"><span class="lua-variable">MISSIONSTAGE_1_GROUND</span></span>,
|
||||
<span class="inline-lua"><span class="lua-variable">MISSIONSTAGE_2_WATER</span></span> and <span
|
||||
class="inline-lua"><span class="lua-variable">MISSIONSTAGE_1_AIRBASE</span></span> as you see in the image.
|
||||
For this mission we started with the three stages: <code-inline>MISSIONSTAGE_1_GROUND</code-inline>,
|
||||
<code-inline>MISSIONSTAGE_2_WATER</code-inline> and <code-inline>MISSIONSTAGE_1_AIRBASE</code-inline> as you see in the image.
|
||||
</p>
|
||||
<img src="../img/starting_stages.png" style="width: 100%;"></img>
|
||||
<p>
|
||||
<span class="inline-lua"><span class="lua-variable">MISSIONSTAGE_1_GROUND</span></span> will be activated when the mission starts <br />
|
||||
<span class="inline-lua"><span class="lua-variable">MISSIONSTAGE_1_WATER</span></span> will be also be activated <br />
|
||||
<span class="inline-lua"><span class="lua-variable">MISSIONSTAGE_2_AIRBASE</span></span> will be activated when the player enters the zone.
|
||||
<code-inline>MISSIONSTAGE_1_GROUND</code-inline>will be activated when the mission starts <br />
|
||||
<code-inline>MISSIONSTAGE_1_WATER</code-inline> will be also be activated <br />
|
||||
<code-inline>MISSIONSTAGE_2_AIRBASE</code-inline> will be activated when the player enters the zone.
|
||||
<br />
|
||||
</p>
|
||||
|
||||
@@ -94,20 +93,19 @@
|
||||
quite the challenge. <br />
|
||||
With the CAP managers we've tried to make this a lot easier. <br />
|
||||
|
||||
A CAP group needs to follow the following naming convention: <span
|
||||
class="inline-lua"><span class="lua-variable">CAP_[A|B][CONFIG]_[Free Form]</span></span>
|
||||
A CAP group needs to follow the following naming convention: <code-inline>CAP_[A|B][CONFIG]_[Free Form]</code-inline>
|
||||
|
||||
For details on config read this: <span class="inline-ref">CAP Group Config</span>
|
||||
For details on config read this: <code-inline>CAP Group Config</code-inline>
|
||||
|
||||
For now I set up 3 groups with the following names. <span class="inline-lua"><span class="lua-variable">CAP_A[1]1_Rota1</span></span>, <span class="inline-lua"><span class="lua-variable">CAP_A[1]1_Rota1-1</span></span>,
|
||||
<span class="inline-lua"><span class="lua-variable">CAP_B[1]1_Rota1</span></span> <br />
|
||||
The first two are marked with <span class="inline-lua"><span class="lua-variable">A</span></span> and will therefore be primary CAP units. They will be
|
||||
For now I set up 3 groups with the following names. <code-inline>CAP_A[1]1_Rota1</code-inline>, <code-inline>CAP_A[1]1_Rota1-1</code-inline>,
|
||||
<code-inline>CAP_B[1]1_Rota1</code-inline> <br />
|
||||
The first two are marked with <code-inline>A</code-inline> and will therefore be primary CAP units. They will be
|
||||
scheduled and make up for the total count. <br />
|
||||
Meaning that for this airbase there is 2 CAP units max at a time flying out. <br />
|
||||
In this case all groups have <span class="inline-lua"><span class="lua-variable">[1]1</span></span> in the name, (This would be the same as <span class="inline-lua"><span class="lua-variable">[1]A</span></span>) which means
|
||||
In this case all groups have <code-inline>[1]1</code-inline> in the name, (This would be the same as <code-inline>[1]A</code-inline>) which means
|
||||
that when stage 1 is active the groups will activate and fly out to stage 1.
|
||||
|
||||
I also set up a few groups further back. One example: <span class="inline-lua"><span class="lua-variable">CAP_A[1-3]3_Group1</span></span>. This group will
|
||||
I also set up a few groups further back. One example: <code-inline>CAP_A[1-3]3_Group1</code-inline>. This group will
|
||||
protect zone 3 when zones 1 through 3 are active.
|
||||
|
||||
CAP units fly out, fly their CAP zone for x amount of minutes and will then RTB. <br />
|
||||
@@ -121,21 +119,21 @@
|
||||
|
||||
<h3 id="creating-cap-routes">Creating CAP Routes</h3>
|
||||
<p>
|
||||
Creating CAP routes is not needed per se, but with a multi-stage stage (we have 2 stages with <span class="inline-lua"><span class="lua-variable">_1_</span></span>) it is recommended. <br/>
|
||||
Creating CAP routes is not needed per se, but with a multi-stage stage (we have 2 stages with <code-inline>_1_</code-inline>) it is recommended. <br/>
|
||||
Similarly with huge stages. <br/>
|
||||
If there is multiple zones it will "round-robin" over them. <br/>
|
||||
</p>
|
||||
<p>
|
||||
If no CAP route is present the unit will fly a route generated differently per zone: <br/>
|
||||
<span class="inline-lua"><span class="lua-variable">quad zone</span></span> => race-track between the corner closest to the origin airbase to the center point of the zone <br/>
|
||||
<span class="inline-lua"><span class="lua-variable">circle zone</span></span> => race-track between the closest point on circle to the origin airbase to the center <br/>
|
||||
<code-inline>quad zone</code-inline> => race-track between the corner closest to the origin airbase to the center point of the zone <br/>
|
||||
<code-inline>circle zone</code-inline> => race-track between the closest point on circle to the origin airbase to the center <br/>
|
||||
</p>
|
||||
<p>
|
||||
If you want to create your own CAP Routes you can! <br/>
|
||||
For this example I created 2 CAP routes inside of the 2 <span class="inline-lua"><span class="lua-variable">_1_</span></span> stages. <br/>
|
||||
For this example I created 2 CAP routes inside of the 2 <code-inline>_1_</code-inline> stages. <br/>
|
||||
</p>
|
||||
<p>
|
||||
As you can see below there's a nice feature you can exploit. As long as the <span class="inline-lua"><span class="lua-variable">X</span></span> of the zone is inside of the the <span class="inline-lua"><span class="lua-variable">CAPROUTE</span></span> will be used for that stage!
|
||||
As you can see below there's a nice feature you can exploit. As long as the <code-inline>X</code-inline> of the zone is inside of the the <code-inline>CAPROUTE</code-inline> will be used for that stage!
|
||||
</p>
|
||||
<img src="../img/cap_routes.png" alt="CAP Routes Image" style="width: 100%;"></img>
|
||||
|
||||
@@ -155,7 +153,7 @@
|
||||
By default DCS will always keep 1 static object in 1 groups.
|
||||
</note-box>
|
||||
<p>
|
||||
For this example I'll set up two missions. The first one is <span class="inline-lua"><span class="lua-variable">DEAD</span></span> mission and will consist of an SA-2 site with an additional "control center".
|
||||
For this example I'll set up two missions. The first one is <code-inline>DEAD</code-inline> mission and will consist of an SA-2 site with an additional "control center".
|
||||
</p>
|
||||
|
||||
<h3 id="mission-1-dead">Mission: DEAD</h3>
|
||||
@@ -173,32 +171,32 @@
|
||||
</div>
|
||||
</div>
|
||||
<p>
|
||||
Important to note. It's all inside the triggerzone <span class="inline-lua"><span class="lua-variable">MISSION_DEAD_BYRON</span></span>. Which means it's a <span class="inline-lua"><span class="lua-variable">MISSION</span></span> of type <span class="inline-lua"><span class="lua-variable">DEAD</span></span> and with name <span class="inline-lua"><span class="lua-variable">BYRON</span></span>. <br/>
|
||||
Important to note. It's all inside the triggerzone <code-inline>MISSION_DEAD_BYRON</code-inline>. Which means it's a <code-inline>MISSION</code-inline> of type <code-inline>DEAD</code-inline> and with name <code-inline>BYRON</code-inline>. <br/>
|
||||
At the start Spearhead will detect the triggerzone, take all units and despawn them and only spawn when needed for better performance. <br/>
|
||||
</p>
|
||||
<p>
|
||||
The current list of mission types are:
|
||||
<span class="inline-lua"><span class="lua-variable">DEAD</span></span>
|
||||
<span class="inline-lua"><span class="lua-variable">STRIKE</span></span>
|
||||
<span class="inline-lua"><span class="lua-variable">BAI</span></span>
|
||||
<span class="inline-lua"><span class="lua-variable">SAM</span></span> <br/>
|
||||
<code-inline>DEAD</code-inline>
|
||||
<code-inline>STRIKE</code-inline>
|
||||
<code-inline>BAI</code-inline>
|
||||
<code-inline>SAM</code-inline> <br/>
|
||||
For specific differences, please check the reference page.
|
||||
</p>
|
||||
<p>
|
||||
Each type has some additional completion logic to it. <br/>
|
||||
<span class="inline-lua"><span class="lua-variable">DEAD</span></span> and <span class="inline-lua"><span class="lua-variable">SAM</span></span> missions will be marked complete when all air defences are destroyed. This includes Tracking Radars, Self tracking launchers and AAA guns if they are inside the zone. <br/>
|
||||
If you want to add the Search radar or another random unit like the command tent to the target list you can add a <span class="inline-lua"><span class="lua-variable">TGT_</span></span> prefix to the unit or group you want destroyed. <br/>
|
||||
Please be aware that adding <span class="inline-lua"><span class="lua-variable">TGT_</span></span> to a group will make the entire group a target and therefore each unit needs to be destroyed. <br/>
|
||||
<code-inline>DEAD</code-inline> and <code-inline>SAM</code-inline> missions will be marked complete when all air defences are destroyed. This includes Tracking Radars, Self tracking launchers and AAA guns if they are inside the zone. <br/>
|
||||
If you want to add the Search radar or another random unit like the command tent to the target list you can add a <code-inline>TGT_</code-inline> prefix to the unit or group you want destroyed. <br/>
|
||||
Please be aware that adding <code-inline>TGT_</code-inline> to a group will make the entire group a target and therefore each unit needs to be destroyed. <br/>
|
||||
</p>
|
||||
|
||||
<h3 id="mission-2-strike">Mission: STRIKE</h3>
|
||||
<p>
|
||||
To show the power of <span class="inline-lua"><span class="lua-variable">TGT_</span></span> targets I'll create a strike mission next.
|
||||
To show the power of <code-inline>TGT_</code-inline> targets I'll create a strike mission next.
|
||||
</p>
|
||||
<p>
|
||||
A nice supply strike mission will do. Add a ship, some containers and some additional units. <br/>
|
||||
Even some SHORADS to spice the whole thing up. <br/>
|
||||
In the picture below all units that are selected and who show up as white (they are actually red) have the prefix <span class="inline-lua"><span class="lua-variable">TGT_</span></span> in front of their name. <br/>
|
||||
In the picture below all units that are selected and who show up as white (they are actually red) have the prefix <code-inline>TGT_</code-inline> in front of their name. <br/>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -261,8 +259,8 @@
|
||||
So now we've created some missions we also want to add briefings to them. This is pretty easy with Spearhead. <br/>
|
||||
</p>
|
||||
<p>
|
||||
To do so click on <span class="inline-ref">draw</span> on the left hand pane in the mission editor. This opens up the drawing tools in the editor. <br/>
|
||||
On the right click <span class="inline-ref">TextBox</span> and click somewhere inside the zone to which you want to add the briefing. <br/>
|
||||
To do so click on <code-inline>draw</code-inline> on the left hand pane in the mission editor. This opens up the drawing tools in the editor. <br/>
|
||||
On the right click <code-inline>TextBox</code-inline> and click somewhere inside the zone to which you want to add the briefing. <br/>
|
||||
Give the briefing a name (It's not used, but can be nice to use to reference the briefing later) and add the briefing. <br/>
|
||||
The text box is quite small, but can have a lot of text. Easiest is to edit the text in an editor of choice and paste it into the box afterwards. <br/>
|
||||
</p>
|
||||
@@ -270,7 +268,7 @@
|
||||
Keep the binding layer to "Author" only. That way it doesn't show up for anyone other than in the mission editor.
|
||||
</p>
|
||||
<p>
|
||||
See the two images below. The left shows the <span class="inline-ref">Text Box</span> drawing. The right shows the briefing as shown in the mission.
|
||||
See the two images below. The left shows the <code-inline>Text Box</code-inline> drawing. The right shows the briefing as shown in the mission.
|
||||
</p>
|
||||
<div style="display: flex">
|
||||
<div style="flex: 50%">
|
||||
|
||||
Reference in New Issue
Block a user