Unna Oertdottir on 18/9/2019 at 08:24
Since I need to create many new objects to fix FMs in a dml. The oldschool setup with S+R is tedious, so I switched to NVCreateAndLink and put a huge design note on objects, which is working fine.
The objects are barrels and crates, stuff like that. The old object will be destroyed by NVSlayMeTrap, new ones will be created. Then I encountered "barrel" -137 objects.
Objects of this archetype refuse to work. The settings are the same as always, but it doesn't work. I can't create new -137 barrels or any other barrel on -137 objects.
Other barrels or crates archetypes seem to have no issues like that. They can be always replaced by NVCreateAndLink.
What is so special about barrel -137?
voodoo47 on 18/9/2019 at 10:31
post the level and the dml, I'll take a look.
Unna Oertdottir on 18/9/2019 at 11:00
Just for Show
(
https://thiefmissions.com/m/show)
Code:
DML1//
#script nvscript
+ObjProp 471 "DesignNote"
{
"" NVCreateAndLinkCreate=-137;NVLinkType=~ControlDevice;NVCreateAndLinkLoc="0.0,0.0,1.0";NVCreateAndLinkOn="Sim";NVRelayTrapOnDelay=500;NVRelayTrapTDest="[me]":NVRelaytrapon="DarkGameModeChange";NVSlayMeTrapOn="sim"
}
+ObjProp 471 "Scripts"
{
"Script 0" NVCreateAndLink
"Script 1" NVRelayTrap
"Script 2" NVSlayMeTrap
}
Yandros on 18/9/2019 at 11:28
Barrel 0 (-138) has the same model and has the proper HP and Flinderize links, so why couldn't you just use that archetype?
Unna Oertdottir on 18/9/2019 at 11:37
I'm not using this archetype, someone else did ;)
You mean, why not replacing -137 barrel with -138. I already tried this, it didn't work. It's the original barrel -137 which has issues for some reasons.
Replacing -138 barrel with -138 barrel or something else always works.
voodoo47 on 18/9/2019 at 12:09
the DesignNote is a mess, bad syntax and missing params. I'm guessing this is what you wanted to do;
Quote:
NVCreateAndLinkOn="BeginScript"; NVCreateAndLinkCreate="-137"; NVCreateAndLinkLinkType="~ControlDevice"; NVCreateAndLinkLoc="0.0,0.0,1.0"; NVRelayTrapOn="BeginScript"; NVRelayTrapOnDelay=500; NVRelayTrapTDest="[me]"; NVRelayTrapTOn="killself"; NVSlayMeTrapOn="killself";
this pops a new barrel slightly higher than the original and kills the original after half a second.
also, do not use "Sim" for activation, use "BeginScript", as some missions have been saved after being simmed, and won't send the signal anymore as result (this one is an example).
//and btw, (
https://www.systemshock.org/index.php?topic=6623) NVRelayTrap for Dummies
R Soul on 18/9/2019 at 17:55
NVLinkType may still be valid, but when the 'multiple copies' feature was added to many of these scripts the standard became to have every parameter name prefixed with the full script name.
NVCreateAndLinkLinkType
Also, the flavour needs to be surrounded with double quotes because it's a string.
Unna Oertdottir on 18/9/2019 at 18:23
Quote Posted by R Soul
NVCreateAndLinkLinkType
Also, the flavour needs to be surrounded with double quotes because it's a string.
NVCreateAndLinkLinkType="~ControlDevice";
is working. Thanks :)
voodoo47 on 18/9/2019 at 18:36
it will work without quotes (and with just NVLinkType) as well, but yeah, using quotes and proper params is better, for the sake of consistency if nothing else (edited previous post).