Nameless Voice on 12/6/2011 at 11:25
Quote Posted by LarryG
The documentation is missing for
NVPhysMessages.
<h1><a name="NVPhysMessages" id="NVPhysMessages"></a> NVPhysMessages</h1>
<p>The object with this script will receive physics-related messages: <u>PhysMadeNonPhysical</u>, <u>PhysMadePhysical</u>, <u>PhysCollision</u>, <u>PhysContactCreate</u>, <u>PhysContactDestroy</u>, <u>PhysEnter</u>, <u>PhysExit</u>, <u>PhysFellAsleep</u>, <u>PhysWokeUp</u>.</p>
Haplo on 18/8/2011 at 22:35
Another suggestion: It seems NVDeleteTrap only works with the control device links and TDest parameter is ignored. Would it be too much work to add this feature?
I find NVDeleteTrap very useful; it is not affected by DeathStage12 bug whereas TrapDestroy and NVSlayMeTrap are. In my case there is a junk object that is created on the fly and given to the player, and I want it to be deleted when the player frobs it. I have given the archtype the NVDeleteTrap script and the following design note, but it doesn't work:
Code:
NVDeleteTrapOn="FrobInvEnd";NVDeleteTrapTDest="[Me]"
R Soul on 18/8/2011 at 23:29
TDest only applies to triggers, not traps (NVRelayTrap is both).
For traps we can set a Target parameter, e.g.
NVDeleteTrapTarget="[me]"
However, it might be simpler to set the FrobInfo property: InvAction: Delete.
Haplo on 19/8/2011 at 00:05
Quote Posted by R Soul
TDest only applies to triggers, not traps (NVRelayTrap is both).
For traps we can set a Target parameter, e.g.
NVDeleteTrapTarget="[me]"
However, it might be simpler to set the FrobInfo property: InvAction: Delete.
Yes, you are right. Thanks.
Haplo on 19/8/2011 at 08:50
I put NVDeleteTrapTarget="[me]" on the archetype but it didn't work. If I replace "[me]" with the object ID of a nearby table the table gets deleted fine. It looks like the problem only occurs when "[me]" is used.
LarryG on 19/8/2011 at 11:06
I suspect the problem is with the fact that item is in inventory at the time you are trying to delete it. Try NVDeleteTrapTarget="[me]" with something that isn't in inventory.
Haplo on 19/8/2011 at 12:50
Ok, I created two tables, gave table1 the NVDeleteTrap script, the NVDeleteTrapTarget="[me]" design note and connected a button to it. Pushing the button did not delete the table.
Then I replaced "[Me]" with the object ID of table2 and pushed the button. Table2 disappeared.
It seems NVDeleteTrap does not like [Me].
Nameless Voice on 19/8/2011 at 18:00
NVDeleteTrap is actually (apparently!) coded specifically to not delete itself.
Maybe to prevent it from deleting itself before it's finished deleting the other linked objects, or something?
Use the NVDeleteTrapDeleteSelf=1 parameter to get it to delete itself instead.
Added to documentation!
Quote:
Note that an NVDeleteTrap will not delete itself even if it is specified as the target. Use NVDeleteTrapDeleteSelf=1 to have the trap delete itself after it has finished deleting other objects.
Haplo on 20/8/2011 at 07:25
Thanks for the clarification.
I have two suggestions:
1. Is it possible to make NVSlayMeTrap check its object (or its target object(s) if NVSlayMeTrapTarget is a valid parameter) and remove DeathStage12 if it exists before the slaying?
2. Assuming NVSlayMeTrapTarget="&ControlDevice" is not a valid parameter, can you please add a new script NVSlayTrap or extend NVDeleteTrap with a parameter that would slay instead of destroy (such as NVDeleteTrapSlay=1), along with the DeathStage enhancement mentioned above? This will not only provide a better alternative over TrapDestroy because it will have the NVScript flexibility, but also it will not be prone to the DeathStage12 bug.
Thanks.
Nameless Voice on 20/8/2011 at 18:03
Have you tried NVDeathStageFix? That was supposed to prevent the death stage 12 bug, but I don't think it was ever proven if it worked or not.