Checking if Multiple Statements are True
elanana
03 Feb 2021, 23:57Hello. I'm trying to make a fake login page for my Squiffy game. I want to make it so that the game will check if both untry=username and pwtry=password are true. If they are, the game takes them to the homepage. If they aren't, text appears telling the player "Invalid Credentials" then returns them to the login page.
This is my code for that event:
{if untry=@username:{if pwtry=@password:[[HELLO, WORLD...]](homepage)}{else:Invalid Credentials. Return to [[login]] and try again.}}{else:Invalid Credentials. Return to [[login]] and try again.}
I thought I was being really big brain with this one. Guess not cause it ain't working.
elanana
03 Feb 2021, 23:59{if untry=@username:[[HELLO, WORLD...]](homepage)}{else:Invalid Credentials. Return to [[login]] and try again.}
That works just fine. But I wanted to check BOTH values.
mrangel
04 Feb 2021, 00:04Are you sure that the attributes untry
and pwtry
contain the text @username
and @password
respectively? If could be failing because of an extra space somewhere, or something like that.
How are you setting those attributes? Have you tried displaying them to make sure they contain what you expect?
elanana
04 Feb 2021, 00:32Not sure what you mean by that first sentence, mrangel, but i used @username
and @password
to call upon the attribute. It works when I'm calling just one, like {if untry=@username:[[HELLO, WORLD...]](homepage)}
.
One attribute shows up as intended here:
[[homepage]]:
@clear
###### Not Secure | livenet.com/homepage/user?id=N-OrlsTICEGEtgyjHoLVRg
[[Log Out]](login)
# Welcome back, {username}!
This is when username and password are set:
[[first]]:
## Login to join millions others!
Username
<input type="text" id="username"/>
<p>Password
<input type="text" id="password"/>
<p>
#### [[Go]](new section)
[[new section]]:
squiffy.set("username", jQuery("#username").val());
squiffy.set("password", jQuery("#password").val());
setTimeout(function(){ squiffy.story.go("homepage");}, 2000);
HELLO, WORLD...
For when untry and pwtry are set:
[[login]]:
## Login to join millions others!
Username
<input type="text" id="untry"/>
<p>Password
<input type="text" id="pwtry"/>
<p>
#### [[Go]](auth)
[[auth]]:
squiffy.set("untry", jQuery("#untry").val());
squiffy.set("pwtry", jQuery("#pwtry").val());
elanana
04 Feb 2021, 00:34I did see a thread about something similar, so that was I tried, but it didn't work.
http://textadventures.co.uk/forum/squiffy/topic/a0fzuidemkimyn_hhmeibw/checking-two-attributes-for-conditions
mrangel
04 Feb 2021, 01:35OK, I keep on trying that, and it seems to be working.
But, when you say it's not working, what do you mean?
Does it show the else condition when you entered the right details?
Does it let you in when it shouldn't?
Does it just display nothing?
elanana
05 Feb 2021, 21:29no matter what i put the second time, it shows nothing
mrangel
05 Feb 2021, 23:34OK… I pasted your code into a new game, with a couple of dummy pages in between, and it works fine for me (except for the link to [[auth]]
not appearing… but that doesn't sound like the problem you're having, so I won't bother investigating that further)
Can you show a game that demonstrates this problem?