sNeaksieGarrett on 15/7/2013 at 22:01
I can't remember to be honest Larry. Probably. But RobotSteam is a particle, not an emitter like BreathSpout is. So, I just tried ParticleAttachment with the Breath instead, but it shows on the guard's helmet instead of in front of his mouth.
Edit:
I actually tried doing a breathspout ParticleAttachment link and it just stays at origin instead of following the guard.
I looked at robotsteam and it has Particles: Activated: FALSE for one thing. ALso, there's a Script>Timing: 250, which I find interesting. So apparently it's supposed to pulse on and off, but when I try this on mine nothing happens. If I put Activated back to On, then it just stays on and emits breath indefinitely with no gaps so it looks more like a funnel of smoke or something.
But back to my last question, what is BreathOn? Is that something I put in the Design Note?
LarryG on 15/7/2013 at 23:00
Quote Posted by sNeaksieGarrett
But back to my last question, what is BreathOn? Is that something I put in the Design Note?
On the marker attached to the guard:
S>Scripts:{TrigRoomObj; NVRelayTrap; NVCreateAndLink; ; True}
Editor>Design Note: NVRelayTrapTOn="BreathOn"; NVRelayTrapTOff="BreathOff"; NVRelayTrapTDest="[Me]"; NVRelayTrapRepeatOnly=1; NVRelayTrapRepeat=-1; NVRelayTrapOnDelay=2500; NVRelayTrapOnDelayMax=4000; NVRelayTrapExclusiveDelay=1; NVCreateAndLinkOn="BreathOn"; NVCreateAndLinkOff="BreathOff"; NVCreateAndLinkCreate="Breath"; NVCreateAndLinkLinkType="Contains"; NVLinkBuilderLinkData#Field="Alternate"; NVCreateAndLinkLinkSource="whatever the ai's name is"
So ... when TrigRoomObj sends a TurnOn to the marker, the marker's NVRelayTrap starts sending "BreathOn" to itself every 2.5-4.0 seconds. When it gets a "BreathOn" NVCreateAndLink creates a breath particle effect attached to the AI's mouth. When the marker's TrigRoomObj sends a TurnOff to the marker, the marker's NVRelayTrap sends a "BreathOff" message to itself and stops sending the "BreathOn" messages, so NVCreateAndLinkLink stops creating and linking the breath puffs. Simple. :erg:
We still need an answer from NV about how to specify "Alternate" as the Data for a Contains link.
sNeaksieGarrett on 15/7/2013 at 23:26
Quote Posted by LarryG
Simple :erg:
I'm sorry if I'm causing you frustration, I just didn't know what the hell BreathOn was supposed to be. I thought you were trying to tell me I had to create something in dromed called BreathOn, I didn't know you could create a TurnOn Link with NameOfObjectOn so I was confused.
How do you propose we do that? Should I pm NV then?
edit: Okay, so I need to be more careful and read things more thoroughly. I see that quote about RoboSteam. Does that mean I can put RoboSteam into the Script box and utilize this for my Breath? Or maybe I can just modify the RoboSteam to act more like breath instead. Inspecting the robosteam object I don't see any scripts attached to it, though.
Back to the marker:
I don't get it. I put everything into the marker and still nothing happens. I'm either so completely incompetent or something else is wrong. Sigh.
Update:
I looked more in depth into the roboSteam. I see that the combatbot has the RoboSteam script, whereas the RoboSteam has the timing. I was able to modify the Launch info on the RoboSteam and ParticleAttached it to the AI, but I can't quite get the same effect as my other method with the Contains link. If only the AlLinkLocation worked when using ParticleAttachment links. :/ I guess what I can do is use ParticleAttachment but fiddle with the launch info until I can get it in a good spot. The script to where you can turn it on and of would definitely be useful, The Watcher. I'm going to see if I can do it with NVScript at the moment.
LarryG on 16/7/2013 at 00:28
Quote Posted by sNeaksieGarrett
I'm sorry if I'm causing you frustration, I just didn't know what the hell BreathOn was supposed to be. I thought you were trying to tell me I had to create something in dromed called BreathOn, I didn't know you could create a TurnOn Link with NameOfObjectOn so I was confused.
TurnOn is a message not a link. Messages get sent to objects along links. They can also be sent to objects by scripts directly. NVScripts do that. TrigRoomObject sends a TurnOn message to ControlDevice linked objects. So you will need a CD link from the marker to itself in order for it to get the TurnOn that it sends.
Quote Posted by LarryG
We still need an answer from NV about how to specify "Alternate" as the Data for a Contains link.
Quote Posted by sNeaksieGarrett
How do you propose we do that? Should I pm NV then?
That or wait for him to drop by. He might. I'm surprised he hasn't chirped up yet on this.
Quote Posted by sNeaksieGarrett
edit: Okay, so I need to be more careful and read things more thoroughly. I see that quote about RoboSteam. Does that mean I can put RoboSteam into the Script box and utilize this for my Breath? Or maybe I can just modify the RoboSteam to act more like breath instead. Inspecting the robosteam object I don't see any scripts attached to it, though.
Look at a robot to see how it is setup. It uses a flicker tweq together with this script to turn the steam puffs on and off. There is nothing on the SFX itself that I recall. The problem with RoboSteam is that it is always on. Always puffing while the AI is conscious. Thing is, you want your AIs to breath while unconscious too. Just to stop breathing when dead. You also want them to stop making puff inside where it is warm. RoboSteam won't allow that either. It's also hardwired to the RoboSteam particle effect.
Quote Posted by sNeaksieGarrett
Back to the marker:
I don't get it. I put everything into the marker and still nothing happens. I'm either so completely incompetent or something else is wrong. Sigh.
1. You probably didn't have the CD link on the marker to itself.
2. We still don't know about how to do the data for a Contains link.
3. Try putting NVSpy on the marker and watch the messages in monolog.
sNeaksieGarrett on 16/7/2013 at 01:32
Right, a message not a link. My bad.
I came up with another possible solution that could be a fall-back, but I still have to figure out how to turn it off when the guard walks inside:
Create Tweq>Emit on guard himself.
CD link guard to a relaytrap>CD>inverter>CD>back to guard.
Scripts>TrigBrainDead.
That way, when the guard dies or gets knocked out, his breath disappears. (To be honest, I hadn't even thought of having it still show when he's only knocked out versus actually dead.) This works without the problem of a stray breath object being created. (I think?) However, I don't know how to force it on and off depending on what room he's in, because he's a different case compared to how I have it set up for Garrett.
-----------------------------------------------------------------------------------------
About robosteam: Yeah, I tried modifying the robotsteam to work like a breathspout, but I had to change it to Launched Continously, but the problem with doing that is exactly what that implies. If I set it to launched one-shot, then you see it for a moment and then it's gone. I thought using the Timing/RoboSteam script would allow it to turn itself back on, but that didn't seem to work. I ended up giving up trying that approach to go with the above solution.
1. You're right I didn't.
2. That's true. I think a PM is in order. However, I've tried PM'ing him in the past and never got a response. He's in contact with Yandros (or at least was) and I ended up asking Yandros to talk to NV for me.
3. NVSpy reports this:
NVSpy: "BeginScript" on Marker (515) from (0)
NVSpy: "Sim" on Marker (515) from (0)
NVSpy: "ObjRoomTransit" on Marker (515) from (0)
Failed to load palette intrface\synch
Using D3D device: AMD Radeon HD 6570
NVSpy: "DarkGameModeChange" on Marker (515) from (0)
NVSpy: "DarkGameModeChange" on Marker (515) from (0)
NVSpy: "EndScript" on Marker (515) from (0)
NVSpy: "Sim" on Marker (515) from (0)
LarryG on 16/7/2013 at 01:42
I'm not seeing the TurnOn script message which you should be getting from the TrigRoomObject script. If you don't see that on the marker, then nothing will happen. If the AI starts out in the cold, you may need a 2nd NVRelayTrap to fire off a "BreathOn" message at Sim one time at game start. I don't know if TrigRoomObject only fires when crossing the room boundary or not. You could try walking the AI into the warm and back out again just to see if a TurnOff and TurnOn get sent.
sNeaksieGarrett on 16/7/2013 at 01:52
Tried walking him inside and then back out, but I don't see any change.
LarryG on 16/7/2013 at 03:11
How did you attach the marker to the AI?
sNeaksieGarrett on 16/7/2013 at 03:14
Mesh Attach. When I wrote that post I hadn't messed with trying a second marker. I tried that later but I probably didn't set that up correctly. Made second marker and mesh attached it as well, with Design Note: NVRelayTrapTOn="BreathOn"; NVRelayTrapTDest="[Me]"; and CD link to itself.
edit:
I tried a different way just to try something fresh since i"m having trouble with the current system we're trying. I created a breathspout, but this time instead of a contains link I did mesh attach and then I CD linked from the guard to the breathspout. I also created a Route link from the breathspout to the outside room. I added TrigRoomObject to the guard. So, when the guard awakes he triggers the breathspout to turn on. I also CD linked to a lever so I could see that something was indeed happening. After the guard turns the corner, shortly after the lever gets frobbed.
If I come from where the archer is and walk all the way around to where the guard hits a certain point, I see a stray breathspout. The reason this is significant this time is because I usually see it at the guard's spawn point with the old method. I don't know why this never occurred to me, but where it appears now with this method suggests it's right around the point when he switches room brushes. In fact, the lever triggers when he goes around the corner, and NVSpy just around that point notes a room transit. So, I think what is happening is that the breathspout is being told to turn on when it's already on outside and it makes a second breathspout because of the room change. (Actually, my thought here may be wrong, because in the old method it starts where the guard spawns, and he hadn't changed rooms yet.)
I can't make it one large room brush either if that's the case, because that'd incorporate the inside of the manor as well. So, there goes this test too. Maybe if I could somehow force the breathspout to only have a TurnOn message once in one room brush, and then when he goes inside it turns it off like usual.
LarryG on 16/7/2013 at 14:14
I would try breaking the problem into pieces:
1) There is the TurnOn/TurnOff when you go outside & then go inside piece.
2) There is the "emit" syncopated breath puffs piece.
3) there is the keep the breath puffs attached to the AI piece.
Right now you are not getting any breath puffs, right? So let's try a Lever or Switch CD linked to the marker to make sure that it gets a TurnOn /TurnOff and watch the messages on the marker. You should see
* TurnOn
* BreathOn
* BreathOn
* BreathOn
* etc.
* TurnOff
* BreathOff
If you see that (or something like that) then the NVRelayTrap part is working.
If that's working, then test the NVCreateAndLink part, by using a different link flavor. Maybe a ScriptParams link with no Data specified. That should let you see the breath puffs getting created, just not attached to the AI yet. You can use the NVCreateAndLinkLoc parameter to specify the location at which to create the breath so you can see it.