Player "cheating the puzzle" detection?

Avatar
MissStabby
160 Posts
Posted May 27, 2011
I'm currently designing a testchamber,
And in a recent playtest i found a different, wrong way to solve the puzzle.

Though instead of removing the possibility completely, i want to make Glados respond angry and some panels doing some funny things to mess with the "wrong" solution.

I managed to get it running from a button, though i cant seem to get any logic system to detect it.

The trigger would be that lasercatcher02 would be activated while lasercatcher01 isn't activated yet.
Also it needs to detect a certain prop at a certain location (to trigger the right panel popping up)

Has anyone a idea on how to approach this?

(here is a picture of the chamber with the panel messing with the player)
http://img26.imageshack.us/img26/9728/2011052800004.jpg

Advertisement
Registered users don’t see ads! Register now!
Avatar
kwp21 pitts
260 Posts
Posted May 27, 2011
Replied 1 hour later
So what you want to do is to have an event triggered ONLY if lasercatcher02 is activated before lasercatcher01. This case you may have to have that particular event in a logic_relay (lets call it "Special Event") and have an output on lasercatcher01 that disables the "special Event" relay. While have lasercatcher02 trigger it.
Avatar
MissStabby
160 Posts
Posted May 27, 2011
Replied 1 hour later
Sounds interesting, though im not really sure how to apply this to the chamber.
Also the trigger should go off when lasercatcher01 was activated, but since has been deactivated before activating lasercatcher02

Also i am wondering on how to play a animation backwards, since i have a nice animation with the panel popping up, but the animation doesnt come with a "backwards" version.

Avatar
kwp21 pitts
260 Posts
Posted May 27, 2011
Replied 27 minutes later
Trust me there are a lot of animations with those panels. I'm sure that there is a backwards version.
Avatar
Croolsby
29 Posts
Posted May 27, 2011
Replied 37 minutes later
also I think you can make a logic_relay with an output like "OnTrigger, prop, SetPlaybackRate, -1". I think that makes the animation play backwards.
Avatar
kwp21 pitts
260 Posts
Posted May 27, 2011
Replied 3 minutes later

Croolsby wrote:
also I think you can make a logic_relay with an output like "OnTrigger, prop, SetPlaybackRate, -1". I think that makes the animation play backwards.

That is actually not true, Frame rate cannot have negative values.

Avatar
MrTwoVideoCards
584 Posts
Posted May 28, 2011
Replied 47 minutes later

kwp21 pitts wrote:
Croolsby wrote:

also I think you can make a logic_relay with an output like "OnTrigger, prop, SetPlaybackRate, -1". I think that makes the animation play backwards.

That is actually not true, Frame rate cannot have negative values.

Incorrect, you can set negative playback rates.

Anyways with this situation you'll want to set up a logic_compare, and have your second catcher set a value to it. If your first catcher turns on, compare the value, and if it's "untrue" then you don't play the special event, if the value is true (in this case compare the value when the second catcher turns on) then play the event.

Avatar
kwp21 pitts
260 Posts
Posted May 28, 2011
Replied 24 minutes later

MrTwoVideoCards wrote:
kwp21 pitts wrote:

Croolsby wrote:

also I think you can make a logic_relay with an output like "OnTrigger, prop, SetPlaybackRate, -1". I think that makes the animation play backwards.

That is actually not true, Frame rate cannot have negative values.

Incorrect, you can set negative playback rates.

Anyways with this situation you'll want to set up a logic_compare, and have your second catcher set a value to it. If your first catcher turns on, compare the value, and if it's "untrue" then you don't play the special event, if the value is true (in this case compare the value when the second catcher turns on) then play the event.

Ok my bad missed some of the details on the developer site.

Avatar
Croolsby
29 Posts
Posted May 29, 2011
Replied 1 day later
I need help with a similar situation. I want to create a special event for if the player gets stuck in a room. Basically, it's like the player walks into a room and the door closes behind them. If the player placed a portal before entering, then no special event happens since the player isn't stuck. Otherwise, it happens. Also, the portal I'm talking about needs to have been placed in a specific spot.

What do I use to detect if that portal was placed?

Advertisement
Registered users don’t see ads! Register now!
Avatar
MissStabby
160 Posts
Posted May 29, 2011
Replied 2 hours later
You can use the "info_placementhelper" to both check for a portal in a specific area, aswell as influencing where and at what angle the portal is placed on the wall.
Anywhere you shoot in the radius of the sphere (i used 96 on a 128x128 panel), the portal gets opened at the center location of the placement helper

I used it to simplify the puzzle and prevent (some) cheating methods.
theres a option that adds angle control, its off by default.
You need to rotate it like this:
(Big)Red arrow points out perpendicular from the surface
Green arrows pointing left and right
Blue arrow poining to the "bottom" of the portal

Also you could just use a portal cleaning trigger to get rid of the player's portal...

Also for what i did with the determining of the "being cheated" state is, i had every item in the puzzle add a value to a math counter.

And to avoid getting mixups (2+1 = 3+0 = 1+1+1 ect.) i inputted some binary numbers.
Like portalcatcher 1 adds/substracts 10 and portalcatcher 2 adds/substracts 100 (when they activate/deactivate)

That way 110 would mean the puzzle is correctly solved, and 10 would be a incomplete puzzle, and 100 a cheated puzzle.

The logic_case can then add all the events you need, since you can specify a value for every "case"
so if the logic case gets a value of 100 it applies to case nr 3, with the output of "OnCase3" being some panels activating.