trefoilknot on 7/9/2017 at 02:28
Just like it sounds: I want to make an item (call it X) go from being FrobInert to frobbable when another item (call it Y) is frobbed. (I don't want to toggle X's frobability, just set it to frobbable after the first time Y is frobbed.)
I'm pretty sure there's a simple S&R solution, but it eludes me. Give X a receptron property that removes the FrobInert meta property from itself---easy. It's trivial to make it become frobbable from getting bashed, slashed, water arrowed, "poked," holy watered, etc... But how do I make it respond to another object (object Y) being frobbed?
LarryG on 7/9/2017 at 04:56
[Off the top of my head. Actual implementation details will vary according to your needs.]
1. Use NVRelayTrap to convert the "FrobWorldEnd" message into a stim:
[INDENT]NVRelayTrapOn="FrobWorldEnd"; NVRelayTrapOff="Null"; NVRelayTrapTDest="[Me]"; NVRelayTrapTOn="[5.00]YourStim"[/INDENT]
This will send a YourStim (whatever your custom stim is called) stimulus to itself so that you can then do what comes naturally to use a property set to change the FrobInfo or play around with metaprops.
2. Put FrobInert on X (assuming that it doesn't have FrobInfo explicitly set) Use NVMetaTrap to remove the metaprop:
[INDENT]NVMetaTrapOff="FrobWorldEnd"; NVMetaTrapOn="Null"; NVMetaTrapTarget="ObjectX"; NVMetaTrapMeta="FrobInert"[/INDENT]
You can use another instance of NVMetaTrap, NVMetaTrap2 to put a metaprop onto X with whatever FrobInfo You want:
[INDENT]NVMetaTrap2On="FrobWorldEnd"; NVMetaTrapOff="Null"; NVMetaTrapTarget="ObjectX"; NVMetaTrapMeta="M-FrobNotInert"[/INDENT]
john9818a on 7/9/2017 at 05:55
I started to answer this question at shalesbridgecradle but then I came here to reference something.
Larry IIRC the metaproperty is FrobInert without the M- but I could be wrong.
Yandros on 7/9/2017 at 10:30
1. Load NVScript
2. Put NVMetaTrap on the object that you frob to make the other frobbable. Give it an Editor > Design note of NVMetaTrapOn=null; NVMetaTrapOff="FrobWorldEnd"; NVMetaTrapMeta="FrobInert"; NVMetaTrapTarget="<name of object to make frobbable>";
3. On the object that becomes frobbable, add the FrobInert metaprop.
trefoilknot on 7/9/2017 at 18:08
Thanks all! I'll see what I can do :)