Changes for page Mission Director Guide
Last modified by Klaus Meyer on 2025/03/31 16:39
From version 31075.1
edited by Daniel Turner
on 2023/04/14 17:13
on 2023/04/14 17:13
Change comment:
There is no comment for this version
To version 31071.1
edited by Daniel Turner
on 2023/04/14 17:02
on 2023/04/14 17:02
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -80,26 +80,13 @@ 80 80 81 81 (% style="color: rgb(0,0,0);text-decoration: none;" %)The XML root node of an MD file is called “mdscript” and looks like this: 82 82 83 -{{code language="xml"}} 84 -<?xml version="1.0" encoding="utf-8"?> 85 -<mdscript name="ScriptName" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="md.xsd"> 86 -{{/code}} 83 +{{code}}<?xml version="1.0" encoding="utf-8"?><mdscript name="ScriptName" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="md.xsd">{{/code}} 87 87 88 88 (% style="color: rgb(0,0,0);text-decoration: none;" %)“ScriptName” is the name used for this script regardless of the file name. It (%%)**(% style="color: rgb(0,0,0);text-decoration: none;" %)has to start with an upper case letter and must be unique(%%)**(% style="color: rgb(0,0,0);text-decoration: none;" %) among all MD script names. It also should not contain spaces, so other MD scripts can use it as an identifier to access this script’s contents easily. 89 89 90 90 (% style="color: rgb(0,0,0);text-decoration: none;" %)The only allowed sub-node of <mdscript> is <cues>, which can only contain <cue> sub-nodes: 91 91 92 -{{code language="xml"}} 93 -<?xml version="1.0" encoding="utf-8"?> 94 -<mdscript name="ScriptName" ...> 95 - <cues> 96 - <cue name="RootCue1"> [...] 97 - </cue> 98 - <cue name="RootCue2"> [...] 99 - </cue> 100 - </cues> 101 -</mdscript> 102 -{{/code}} 89 +{{code}}<?xml version="1.0" encoding="utf-8"?><mdscript name="ScriptName" ...>  <cues>    <cue name="RootCue1"> [...]    </cue>    <cue name="RootCue2"> [...]    </cue>  </cues></mdscript>{{/code}} 103 103 104 104 (% style="color: rgb(0,0,0);text-decoration: none;" %)  105 105 ... ... @@ -160,35 +160,15 @@ 160 160 161 161 (% style="color: rgb(0,0,0);text-decoration: none;" %)Example for an event condition: 162 162 163 -{{code language="xml"}} 164 -<conditions> 165 - <event_object_destroyed object="$target"/> 166 -</conditions> 167 -{{/code}} 150 +{{code}}<conditions>  <event_object_destroyed object="$target"/></conditions>{{/code}} 168 168 169 169 (% style="color: rgb(0,0,0);text-decoration: none;" %)Example for an event condition with an additional (non-event) check: 170 170 171 -{{code language="xml"}} 172 -<conditions> 173 - <event_player_killed_object/> 174 - <check_value value="event.param.isclass.turret"/> 175 -</conditions> 176 -{{/code}} 154 +{{code}}<conditions>  <event_player_killed_object/>  <check_value value="event.param.isclass.turret"/></conditions>{{/code}} 177 177 178 178 (% style="color: rgb(0,0,0);text-decoration: none;" %)Example for an event condition with two alternative events and a common additional check: 179 179 180 -{{code language="xml"}} 181 -<conditions> 182 - <check_any> 183 - <event_cue_completed cue="Cue1"/> 184 - <check_all> 185 - <event_player_killed_object/> 186 - <check_value value="event.param.isclass.turret"/> 187 - </check_all> 188 - </check_any> 189 - <check_age min="$starttime"/> 190 -</conditions> 191 -{{/code}} 158 +{{code}}<conditions>  <check_any>    <event_cue_completed cue="Cue1"/>    <check_all>      <event_player_killed_object/>      <check_value value="event.param.isclass.turret"/>    </check_all>  </check_any>  <check_age min="$starttime"/></conditions>{{/code}} 192 192 193 193 (% style="color: rgb(0,0,0);text-decoration: none;" %)For more information about expressions and event parameters, see below. 194 194 ... ... @@ -206,21 +206,11 @@ 206 206 207 207 (% style="color: rgb(0,0,0);text-decoration: none;" %)Check conditions every 5 seconds, but start checking only 1 hour after game start. 208 208 209 -{{code language="xml"}} 210 -<cue name="Foo" checktime="1h" checkinterval="5s"> 211 - <conditions> 212 - [...] 213 -</cue> 214 -{{/code}} 176 +{{code}}<cue name="Foo" checktime="1h" checkinterval="5s">  <conditions>  [...]</cue>{{/code}} 215 215 216 216 (% style="color: rgb(0,0,0);text-decoration: none;" %)Check conditions 3 seconds after the cue is enabled, and cancel the cue in case of failure. 217 217 218 -{{code language="xml"}} 219 -<cue name="Foo" checktime="player.age + 3s" onfail="cancel"> 220 - <conditions> 221 - [...] 222 -</cue> 223 -{{/code}} 180 +{{code}}<cue name="Foo" checktime="player.age + 3s" onfail="cancel">  <conditions>  [...]</cue>{{/code}} 224 224 225 225 (% style="color: rgb(0,0,0);text-decoration: none;" %)(% style="color: rgb(0,0,0);text-decoration: none;" %)(% style="color: rgb(0,0,0);text-decoration: none;" %)The attributes //onfail//, //checkinterval//, //checktime// are not allowed for cues with event conditions. 226 226 ... ... @@ -240,15 +240,11 @@ 240 240 241 241 (% style="color: rgb(0,0,0);text-decoration: none;" %)The <actions> node contains the actions that are performed one after another, without any delay inbetween. You can enforce a delay after activation of the cue and actual action performance, using a <delay> node right before the <actions>: 242 242 243 -{{code language="xml"}} 244 -<delay min="10s" max="30s"/> 245 -{{/code}} 200 +{{code}}<delay min="10s" max="30s"/>{{/code}} 246 246 247 247 (% style="color: rgb(0,0,0);text-decoration: none;" %)Note that during the delay the cue is already in the active state, and the sub-cues have been enabled! If you want to make sure that a sub-cue only becomes active after this cue is complete, there is a useful event condition for that: 248 248 249 -{{code language="xml"}} 250 -<event_cue_completed cue="parent"/> 251 -{{/code}} 204 +{{code}}<event_cue_completed cue="parent"/>{{/code}} 252 252 253 253 (% style="color: rgb(0,0,0);text-decoration: none;" %)<actions> is optional. Leaving it out may be useful if you only want to enable sub-cues after the cue’s condition check. The state transition from active to complete will still take the <delay> node into account. 254 254 ... ... @@ -256,18 +256,8 @@ 256 256 257 257 (% style="color: rgb(0,0,0);text-decoration: none;" %)Example, which selects one of the three texts randomly: 258 258 259 -{{code language="xml"}} 260 -<actions> 261 - <do_any> 262 - <debug_text text="'Hello world'"/> 263 - <debug_text text="'Welcome to the MD'"/> 264 - <debug_text text="'And now for something completely different'"/> 265 - </do_any> 266 -<actions> 267 -{{/code}} 212 +{{code}}<actions> <do_any>   <debug_text text="'Hello world'"/>   <debug_text text="'Welcome to the MD'"/>   <debug_text text="'And now for something completely different'"/> </do_any><actions>{{/code}} 268 268 269 - 270 - 271 271 {{note body="<span style=~"color: rgb(0,0,0);text-decoration: none;~">Messages printed with <debug_text> are usually only visible when the “scripts” debug filter is enabled, see [[NULL|Script debug output]].</span>"/}} 272 272 273 273