Changes for page Mission Director Guide
Last modified by Klaus Meyer on 2025/03/31 16:39
From version 32970.10
edited by Heinrich Unrau
on 2024/10/17 12:54
on 2024/10/17 12:54
Change comment:
There is no comment for this version
To version 32972.2
edited by Heinrich Unrau
on 2024/10/17 13:10
on 2024/10/17 13:10
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1007,13 +1007,31 @@ 1007 1007 1008 1008 * MD scripts and cues are identified by their names. So a script can only be refreshed if it has the same script name as before (file name is irrelevant). 1009 1009 * If there are new script files or new cue nodes (i.e. scripts/cues with new names) they are created and added properly. If you remove script files or cue nodes, the corresponding scripts/cues are removed from the game, including instances. 1010 -** If you remove a cue and then later add another cue with the same name, old save files will not know that the cue has been removed inbetween.{{code language="xml"}} <cue [...] version="42"> 1011 - <conditions> [...] </conditions> 1012 - <actions> [...] </actions> 1013 - <patch sinceversion="42"> 1014 - [patch actions] 1015 - </patch> 1016 - </cue>{{/code}} 1010 +** (!) Pitfall: Cue Removal 1011 +If you remove a cue and then later add another cue with the same name, old save files will not know that the cue has been removed inbetween. In the following example the first cue was created setting $val_1 and the game is saved. 1012 +{{code language="xml"}}<cue name="Deprecated_Test1" namespace="this"> 1013 + <actions> 1014 + <set_value name="$val_1" exact="'old value'"/> 1015 + <debug_text text="$val_1"/> 1016 + </actions> 1017 +</cue>{{/code}} 1018 +\\If the Cue is deleted and years later a new cue with the same name appears, the old save will consider the new cue as already completed without executing its actions. The Cue PrintValue will fail to find a variable set up in its parent. 1019 +{{code language="xml"}}<cue name="Deprecated_Test1" namespace="this"> 1020 + <actions> 1021 + <set_value name="$val_2" exact="'new value'"/> 1022 + <debug_text text="$val_2"/> 1023 + </actions> 1024 + <cues> 1025 + <cue name="PrintValue"> 1026 + <actions> 1027 + <debug_text text="parent.$val_2"/> 1028 + </actions> 1029 + </cue> 1030 + </cues> 1031 +</cue>{{/code}} 1032 +\\To avoid this, do not delete any cues (once they are public for save game compatibility), but empty them out and mark them as deprecated. This will prevent new cues with the same name in the script. 1033 +{{code language="xml"}}<!-- Deprecated Cues, kept to not duplicate names in future cues --> 1034 +<cue name="Deprecated_Test1" comment="deprecated"></cue>{{/code}} 1017 1017 * As a consequence, you CANNOT rename scripts or cues if you want to refresh them. Doing so would remove the old script or cue and add a new one with the new name. 1018 1018 * You CANNOT change a <cue> to a <library> or vice versa. 1019 1019 * You CANNOT add, remove, or change the "ref" attribute of a cue. But it is possible to remove the whole cue. (If all references to a library are removed you can also remove the library itself.)