Vindicator209 Posted October 13, 2006 Share Posted October 13, 2006 (edited) I have a button that if you click it before it changes, you will lose, but it wont stop!, itll count you as 0 seconds anyway! can someone help me? expandcollapse popup#include <GuiConstants.au3> GuiCreate("GUI", 115, 52,-1, -1 , BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS)) $Button_1 = GuiCtrlCreateButton("<DONT CLICK>", 10, 10, 90, 30) GuiSetState(@SW_SHOW) GuiSetState() $allow=0 $2=Random(5000,10000,1) Sleep($2) GUICtrlSetData($Button_1,"<CLICK>") $allow=1 $time = TimerInit() While 1 $msg = GuiGetMsg() Select Case $msg = $Button_1 If $allow=1 Then MsgBox(0,"STOP!","You clicked too soon! try again!") Exit EndIf $timer = TimerDiff($time) $seconds = Round($timer/1000,2) MsgBox(0,"Your Reflex time!","Your reflex time is:" & $seconds) If $seconds < .1 Then MsgBox(0,"Your Reflex time!","GREAT! You are ranked: CHAMPION") Exit EndIf If $seconds < .2 Then MsgBox(0,"Your Reflex time!","WOW... You are ranked: FAST") Exit EndIf If $seconds < .3 Then MsgBox(0,"Your Reflex time!","Wow! You are ranked: SPEEDY") Exit EndIf If $seconds < .4 Then MsgBox(0,"Your Reflex time!","Great! You are ranked: OKAY") Exit EndIf If $seconds < .5 Then MsgBox(0,"Your Reflex time!","HORRIBLE! You are ranked: S L O W") Exit EndIf If $seconds > .5 Then MsgBox(0,"Your Reflex time!","HORRIBLE! You are so slow, I wont even give you a rank!") Exit EndIf Case $msg = $GUI_EVENT_CLOSE ExitLoop Case Else ;;; EndSelect WEnd Exit Edited October 13, 2006 by MethodZero [center]"When you look at old, classic games like Snake, you often put it off because it's such a simple game, but it's only when you actually try and create your own unique game from scratch, do you finally appreciate those games."[/center][center]Don't ask for answers if you haven't TRIED yet![/center][center]Most answers can be answered in the help file! Use it![/center] Link to comment Share on other sites More sharing options...
Moderators SmOke_N Posted October 13, 2006 Moderators Share Posted October 13, 2006 (edited) Your if statement logic seems completely off. If someone clicks it in .1 second, they'll get 5 message boxes. If Number($seconds) < .5 And Number($seconds) > .4 Then ... is something you might look at. Edit: Had Int() instead of Number() Edited October 13, 2006 by SmOke_N Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer. Link to comment Share on other sites More sharing options...
SkiFreak Posted October 13, 2006 Share Posted October 13, 2006 Try something like this . . . expandcollapse popup#include <GuiConstants.au3> Dim $seconds, $allow, $time, $timer GuiCreate("GUI", 115, 52,-1, -1 , BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS)) $Button_1 = GuiCtrlCreateButton("<DONT CLICK>", 10, 10, 90, 30) GuiSetState(@SW_SHOW) GuiSetState() $allow=1 $2=Random(5000,10000,1) AdlibEnable("_EnableButton",$2) While 1 $msg = GuiGetMsg() Select Case $msg = $Button_1 Switch GuiCtrlRead($Button_1) Case $allow=1 MsgBox(0,"STOP!","You clicked too soon! try again!",5) Case $allow = 0 $timer = TimerDiff($time) $seconds = Round($timer/1000,2) MsgBox(0,"Your Reflex time!","Your reflex time is:" & $seconds) If $seconds < .1 Then MsgBox(0,"Your Reflex time!","GREAT! You are ranked: CHAMPION") Exit EndIf If $seconds < .2 Then MsgBox(0,"Your Reflex time!","WOW... You are ranked: FAST") Exit EndIf If $seconds < .3 Then MsgBox(0,"Your Reflex time!","Wow! You are ranked: SPEEDY") Exit EndIf If $seconds < .4 Then MsgBox(0,"Your Reflex time!","Great! You are ranked: OKAY") Exit EndIf If $seconds < .5 Then MsgBox(0,"Your Reflex time!","HORRIBLE! You are ranked: S L O W") Exit EndIf If $seconds > .5 Then MsgBox(0,"Your Reflex time!","HORRIBLE! You are so slow, I wont even give you a rank!") Exit EndIf EndSwitch Case $msg = $GUI_EVENT_CLOSE ExitLoop Case Else ;;; EndSelect WEnd Func _EnableButton() GUICtrlSetData($Button_1,"<CLICK>") $allow=0 $time = TimerInit() EndFunc Using "Sleep" is not the best option here. Link to comment Share on other sites More sharing options...
Moderators SmOke_N Posted October 13, 2006 Moderators Share Posted October 13, 2006 @SkiFreak, your logic is also flawed. Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer. Link to comment Share on other sites More sharing options...
SkiFreak Posted October 13, 2006 Share Posted October 13, 2006 @SkiFreak, your logic is also flawed.As is my brAin... :"> I must admit to not looking too closely at the If conditions; just the fact that it did not work using "sleep". Link to comment Share on other sites More sharing options...
Vindicator209 Posted October 13, 2006 Author Share Posted October 13, 2006 (edited) are you sure? it seems his DOES work, and I twitched the script a little to test your theory on the5 boxes coming up, they dont, because I had noticedthat a while ago, and the script will actually exit itself before the other boxes come up, but thanks for bringing that up. @SkiFreak Thanks, both of you I dont see how you changed the variable $allow to 0 without using anothr command.. EDIT: ok, now I see the function Edited October 13, 2006 by MethodZero [center]"When you look at old, classic games like Snake, you often put it off because it's such a simple game, but it's only when you actually try and create your own unique game from scratch, do you finally appreciate those games."[/center][center]Don't ask for answers if you haven't TRIED yet![/center][center]Most answers can be answered in the help file! Use it![/center] Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now