Outputs cancelling out

Avatar
Idolon
417 Posts
Posted Jun 01, 2011
I've run into a problem with my contest map, and that is that it is possible to get an output to cancel another out. A floor button turns on an excursion funnel, and a laser receptacle will invert it.

However, as someone discovered, it is possible to step off of the button and activate the laser, cancelling the "off" output and leaving the excursion funnel on even though nobody is on the button.

I'm turning the funnel on and off with Enable/Disable, and changing the direction with SetLinearForce. How can I go about ironing this out?

Advertisement
Registered users don’t see ads! Register now!
Avatar
msleeper
4,136 Posts
Admin
Posted Jun 01, 2011
Replied 33 minutes later
Instead of Enable/Disabling the funnel, try setting it's linearforce to 0. This disables it without, well, disabling it.
Avatar
Idolon
417 Posts
Posted Jun 01, 2011
Replied 11 minutes later
This makes the problem even worse, because now you can turn on the funnel without the button at all. The problem is that the OnPressed output for the button is getting ignored since the laser receptacle is also sending an output. Thus, the Disable output never reaches the excursion funnel and it just stays on.
Avatar
Welsh Mullet
23 Posts
Posted Jun 01, 2011
Replied 19 minutes later
You need a logic so that the invert is only sent if the laser and the cube are sending outputs at the same time.
Avatar
msleeper
4,136 Posts
Admin
Posted Jun 01, 2011
Replied 5 minutes later
I have kind of a similar situation in my contest map, try using logic_case to determine what the hell it should be really doing. There's no incredibly clean method of doing this that I am aware of. I have a timer that fires 0.1 seconds after either object is triggered to double check what state things are in.
Avatar
iWork925
1,080 Posts
Posted Jun 01, 2011
Replied 8 minutes later

post35439.html?hilit=http://www.megaupload.com/?d=1L955XIG#p35439

I have provided an example which solves this problem in this thread.

Avatar
Idolon
417 Posts
Posted Jun 01, 2011
Replied 1 hour later
Your map didn't solve the problem, but that thread did. Thanks for pointing me toward it, though: the math_counter and logic_case solution worked fine. I haven't been able to reproduce the bug, so I'm just going to assume it's solved until proven otherwise.
Avatar
ChickenMobile
2,460 Posts
Posted Jun 01, 2011
Replied 1 hour later
There is a way using logic_auto's and use the CancelPending output leading to your other logic_auto.

There probably is a better way to do it from your description also.

EDIT: Just realised you solved it. Soz for continuiing xD

Avatar
WinstonSmith
940 Posts
Posted Jun 01, 2011
Replied 12 minutes later
You could also always have the button disable the laser catcher when it's unpressed and enable it when pressed. I'm not sure if it would bug out if you 1) pressed the button, 2) activated the laser, 3) unpressed the button, 4) removed the laser, and 5) repressed the button, but it's worth a shot and it's a fair bit simpler than a math_counter.
Advertisement
Registered users don’t see ads! Register now!
Avatar
Idolon
417 Posts
Posted Jun 02, 2011
Replied 11 hours later
Math_counter and logic_case is the best way to go. It lets you control the output based on the on/off state of up to 4 different objects.