Jump to content

TheNorwegianUser

Active Members
  • Posts

    74
  • Joined

  • Last visited

Everything posted by TheNorwegianUser

  1. Thanks, didn't notice that. It worked fine with a desktop resolution of 1600x900, but not of 1920x1080, so guess the easiest way out is to just change the resolution before running the script.
  2. I don't get why the images I take turns up like this, but it seems to me like the screenshot doesn't go from the actual positions specified. It's weird, cause what happends is that when I for example move the mouse over the number 25 on SciTE, the image shows that it's over 19... Anyone knows what I'm doing wrong? #include <screencapture.au3> #include <WindowsConstants.au3> Hotkeyset("{ESC}", "Terminate") $gui = GUICreate("", 100, 800, 100, 0, $WS_POPUP, $WS_EX_TOPMOST) _GDIPlus_Startup() $graphics = _GDIPlus_GraphicsCreateFromHWND($gui) GUISetState(@SW_SHOW, $gui) While 1 $scr = _ScreenCapture_Capture("", 0, 0, 100, 800) $bitmap = _GDIPlus_BitmapCreateFromHBITMAP($scr) _WinAPI_DeleteObject($scr) _GDIPlus_GraphicsDrawImage($graphics, $bitmap, 0, 0) WEnd Func Terminate() _GDIPlus_GraphicsDispose($graphics) _GDIPlus_BitmapDispose($bitmap) _GDIPlus_Shutdown() Exit EndFunc
  3. No? It also recieves error 10054 from TcpRecv every 15 minutes of inactivity. No idea why.
  4. Nobody has experienced anything like it? I think it's very odd, at least...
  5. Okay, so I have a TCP connection set up over some computers, no problem. I recieve the messages without problem, and when I get a specific message over the server, it runs some program. No problem at first. But then, after the whole script has ran for a while, it won't open any program, not even a web page like ShellExecute("www.google.com"). It just returns @error=1. It's nothing wrong with the path, FileExists makes sure of that (Always returns 1). When I then try using Run instead of ShellExecute, I still get an error. Any idea why it just works at first, but then starts to fail every time? Relevant for opening a specific file: ShellExecute(@DesktopDir & "\Fireplace.mp4") If @error Then FileWrite(@DesktopDir & "\MultiClientMainLog.txt", @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN & " - ShellExecute Error: " & @error & " & Extended: " & @extended & @CRLF) $Exists=FileExists(@DesktopDir & "\Fireplace.mp4") FileWrite(@DesktopDir & "\MultiClientMainLog.txt", @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN & " - Exists: " & $Exists & " & exists error: " & @error & " & Extended: " & @extended & @CRLF);;;;;;;;;;; Run(@DesktopDir & "\Fireplace.mp4") If @error Then FileWrite(@DesktopDir & "\MultiClientMainLog.txt", @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN & " - Run Bål Error: " & @error & " & Extended: " & @extended & @CRLF) EndIfWhole client: #Include <_AudioEndpointVolume.au3> #include <Process.au3> TCPStartup() OnAutoItExitRegister("Terminate") $IPAdress="My personal IP..." $Port= Some IP... Local $Socket Connect() While 1 Sleep(50) Recv() If _IsInternetConnected()=False Then Connect(2) WEnd Func Recv() $Recv=TCPRecv($Socket, 2048) If @error>0 Then Connect(@error & " " & @extended) If $Recv="" Then Return FileWrite(@DesktopDir & "\MultiClientMainLog.txt", @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN & " - Recieved " & $Recv & @CRLF);;;;;;;;;;; $Recv=StringReplace($Recv, @CR, "") CheckForAction($Recv) EndFunc Func Connect($Conn=0) TCPCloseSocket($Socket) FileWrite(@DesktopDir & "\MultiClientMainLog.txt", @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN & " - Connection mode " & $Conn & @CRLF);;;;;;;;;;; TraySetIcon(@ScriptDir & "\icons\offline.ico") Do Sleep(1000) $Socket=TCPConnect($IPAdress, $Port) Until Not @error TraySetIcon(@ScriptDir & "\icons\online.ico") TCPSend($Socket, "ImMain") EndFunc Func CheckForAction($_Recv) If $_Recv="vg" Then ShellExecute("www.vg.no") Return True EndIf If $_Recv="bål" Or $_Recv="bÃ¥l" Then ShellExecute(@DesktopDir & "\Fireplace.mp4") If @error Then FileWrite(@DesktopDir & "\MultiClientMainLog.txt", @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN & " - ShellExecute Error: " & @error & " & Extended: " & @extended & @CRLF) $Exists=FileExists(@DesktopDir & "\Fireplace.mp4") FileWrite(@DesktopDir & "\MultiClientMainLog.txt", @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN & " - Exists: " & $Exists & " & exists error: " & @error & " & Extended: " & @extended & @CRLF);;;;;;;;;;; Run(@DesktopDir & "\Fireplace.mp4") If @error Then FileWrite(@DesktopDir & "\MultiClientMainLog.txt", @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN & " - Run Bål Error: " & @error & " & Extended: " & @extended & @CRLF) EndIf Sleep(1000) Send("f") Return True EndIf If $_Recv="exit" Then Send("{ALTDOWN}{F4}{ALTUP}") Return True EndIf If $_Recv="opp" Then Send("{PGUP}") Return True EndIf If $_Recv="ned" Then Send("{PGDN}") Return True EndIf If $_Recv="endc" Then FileWrite(@TempDir & "\endc.txt", "ok") Return True EndIf If $_Recv="startc" Then FileWrite(@TempDir & "\startc.txt", "ok") Return True EndIf If $_Recv="cbål" Or $_Recv="cbÃ¥l" Then FileWrite(@TempDir & "\endc.txt", "ok") Sleep(3000) ShellExecute(@DesktopDir & "\Fireplace.mp4") Sleep(1000) Send("f") Return True EndIf If StringLeft($_Recv, 3)="cmd" Then _RunDOS(StringTrimLeft($_Recv, 4)) Return True EndIf If StringLeft($_Recv, 3)="au3" Then If FileExists(@TempDir & "\Run.au3") Then FileDelete(@TempDir & "\Run.au3") FileWrite(@TempDir & "\Run.au3", StringTrimLeft($_Recv, 4)) ShellExecute(@TempDir & "\Run.au3") Return True EndIf If Stringleft($_Recv, 10)="set volume" Then _SetMasterVolumeLevelScalar(StringTrimLeft($_Recv, 11)) Return True EndIf If StringLeft($_Recv, 4)="send" Then Send(StringTrimLeft($_Recv, 5)) Return True EndIf If StringLeft($_Recv, 4)="www." Then ShellExecute($_Recv) Return True EndIf Return False EndFunc Func _IsInternetConnected() Local $aReturn = DllCall('connect.dll', 'long', 'IsInternetConnected') If @error Then Return SetError(1, 0, False) Return $aReturn[0] = 0 EndFunc ;==>_IsInternetConnected Func Terminate() TCPShutdown() Exit EndFunc
  6. Hey! I have made one of my games so that it can be played multiplayer over a TCP connection, but it seems like TCPRecv() takes too much time, and creates an unwanted delay. I searched around in the forums, and all I found someone with the same problem, but I can't get their solution to work. Anyone knows a faster option than TCPRecv()? This is what they came up with: Func _TCPRecv($iSock, $iLen) Local $structBuffer = DllStructCreate("char[" & $iLen & "]") Local $aRet = DllCall("Ws2_32.dll", "int", "recv", "int", $iSock, "ptr", DllStructGetPtr($structBuffer), "int", $iLen, "int", 0) If @error Then SetError(1, 0, "") Return SetError(0, $aRet[0], DllStructGetData($structBuffer, 1)) EndFunc
  7. I have never used dlls before, so I have no idea what I can do to get it to work. It seems to get stuck on DllCall. Func _TCPRecv($iSock, $iLen) Local $structBuffer = DllStructCreate("char[" & $iLen & "]") Local $aRet = DllCall("Ws2_32.dll", "int", "recv", "int", $iSock, "ptr", DllStructGetPtr($structBuffer), "int", $iLen, "int", 0) If @error Then SetError(1, 0, "") Return SetError(0, $aRet[0], DllStructGetData($structBuffer, 1)) EndFunc
  8. To be able to play with friends, i set up a TCP connection, but TCPRecv seems to make it run very slow. Is there a faster way to recieve a message from the server than using TCPRecv? Tried searching, but the best I could find was this, which I can't get to work.
  9. The enter key was alredy set to restart, just wasn't written anywhere I think the hotkey problem is fixed now
  10. Well, thanks for all the help! I've gotten a lot further, and this is my progress so far. For pictures to be displayed in the buttons simply press the prnt scrn button while playing a level. Any further suggestion of any sort would be appreciated #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Add_Constants=n #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <WindowsConstants.au3> #Include <GuiconstantsEx.au3> #Include <GDIPlus.au3> #include <WinAPIGdi.au3> #include <Screencapture.au3> #Include <ButtonConstants.au3> #include <File.au3> #include <GuiConstants.au3> #Include <Crypt.au3> HotKeySet("{ESC}", "Terminate") #Region Gui $PictureDir=@ScriptDir & "\JuegoData\" $WinWidth=500 $WinHeight=400 $hGUI=GUICreate("", $WinWidth, $WinHeight, -1, -1, $WS_POPUPWINDOW) GUISetState() Dim $Button[17] #EndRegion #Region Graphics $GDI_QUALITY=2 _GDIPlus_Startup() $GDI_GRAPHICS=_GDIPlus_GraphicsCreateFromHWND($hGUI) $GDI_BITMAP=_GDIPlus_BitmapCreateFromGraphics($WinWidth, $WinHeight, $GDI_GRAPHICS) $GDI_BACKBUFFER=_GDIPlus_ImageGetGraphicsContext($GDI_BITMAP) _GDIPlus_GraphicsSetSmoothingMode($GDI_BACKBUFFER, $GDI_QUALITY) _GDIPlus_GraphicsClear($GDI_BACKBUFFER) $GDI_BRUSH_BALL=_GDIPlus_BrushCreateSolid() #EndRegion #Region GraphicObjects Dim $Obj[1][14] Dim $Text[1][5] $Text_Num=0 $Obj_Num=0 Dim $Obj_DirectionX[1] Dim $Obj_DirectionY[1] Dim $SolidBrush[20] $SolidBrush[0]=_GDIPlus_BrushCreateSolid() $SolidBrush[1]=_GDIPlus_BrushCreateSolid(0xFF00FF00) $SolidBrush[2]=_GDIPlus_BrushCreateSolid(0xFFFF0000) $SolidBrush[3]=_GDIPlus_BrushCreateSolid(0xFF00FFFF) $SolidBrush[4]=_GDIPlus_BrushCreateSolid(0xFFddad19) $SolidBrush[5]=_GDIPlus_BrushCreateSolid(0xFF004400) $SolidBrush[11]=_GDIPlus_BrushCreateSolid(0xFFFF9900) $SolidBrush[12]=_GDIPlus_BrushCreateSolid(0xFF00FFFF) $SolidBrush[13]=_GDIPlus_BrushCreateSolid(0xFF0000FF) $SolidBrush[14]=_GDIPlus_BrushCreateSolid(0xFF734021) Dim $VanishBrush[1] Dim $EpicBrush[3] $Brush=1 $EpicBrush[0]=_GDIPlus_BrushCreateSolid(0xFFc03430) $EpicBrush[1]=_GDIPlus_BrushCreateSolid(0xFFf8cf46) $EpicBrush[2]=_GDIPlus_BrushCreateSolid(0xFF367341) #EndRegion #Region GameVars Dim $FileLineData[0] $TakeScreenshot=False $GoToMenu=False $WinActive=True Dim $Vanish[1] $BrownStopCount=0 $BrownStop=False $BallDirection=1 $BallWidth=20 $BallHeight=20 $BallSpeed=1 $BallSpeedY=0 $BallPosX_0=0 $BallPosX=$BallPosX_0 $BallPosY_Start=$WinHeight-$BallHeight $BallPosY_0=375 $BallPosY=$BallPosY_0 $SurfaceCount=0 $Jump=False $JumpHeight=350 $JumpSoon=False $JumpSoonTimer=TimerInit() $IsSqueezed=0 $SurfaceMove=0 $Level=1 $BallPosYDiff=0 $LastBallPosY=$BallPosY $ActivePowerup=0 $ExtraJumpActive=0 $TeleTimer=TimerInit() Dim $VanishTimer[1] #EndRegion Menu() #Region Quality $QualityTimer=TimerInit() $QualityCount=0 $QualityFPS=60 $QualitySleep=2000 $USleepTimer=TimerInit() #EndRegion While 1 CheckActive() GetNewBallPos() _GDIPlus_GraphicsClear($GDI_BACKBUFFER, 0xFFFFFFFF) CheckVanish() DrawText() DrawObjects() MoveBall() _GDIPlus_GraphicsDrawImageRect($GDI_GRAPHICS, $GDI_BITMAP, 0, 0, $WinWidth, $WinHeight) If $TakeScreenshot=True Then TakeSnapShot() Gravity() QualityCheck() $ScriptPos=0 If $GoToMenu=True Then GoToMenu() USleep($QualitySleep) $ScriptPos=1 WEnd ;================================================================================= ;============================== OBJECT DESCRIPTION =============================== ;==============================--------------------=============================== ;============ Solid( Type, X, Y, [Width, Height, X2, Y2, Speed) ================== ;==============================--------------------=============================== ;============================== TYPES ============================== ;============================== 0 = Black Solid ============================== ;============================== 1 = Green Goal ============================== ;============================== 2 = Red Fail ============================== ;============================== 3 = Cyan Lock ============================== ;============================== 4 = Gold Sticky ============================== ;============================== 5 = Green Vanish ============================== ;============================== 11 = Extra Jump ============================== ;============================== 12 = Cyan Key ============================== ;============================== 13 = Blue Teleport ============================== ;============================== 14 = Brown Stop ============================== ;================================================================================= Func LevelFromTxt($_Level) $Level=$_Level $FileDir=@ScriptDir & "\JuegoData\Level" & $_Level & ".txt" $FileLines=_FileCountLines($FileDir) $FileOpen=FileOpen($FileDir) For $1=1 To $FileLines $FileData=FileReadLine($FileOpen, $1) StringReplace($FileData, ",", ",") $FileDataLen=@extended If StringLeft($FileData, 5)="Solid" Then $FileMode=1 If StringLeft($FileData, 4)="Text" Then $FileMode=0 $FileData=StringTrimLeft($FileData, 5+$FileMode) ReDim $FileLineData[0] ReDim $FileLineData[9] For $2=0 To $FileDataLen $FileLen=StringInStr($FileData, ",") $FileLineData[$2]=StringLeft($FileData, $FileLen-1) $FileData=StringTrimLeft($FileData, $FileLen) Next $FileLineData[$FileDataLen]=StringTrimRight($FileData, 1) If $FileMode=1 Then If $FileLineData[3]="" Then $FileLineData[3]=25 If $FileLineData[4]="" Then $FileLineData[4]=25 If $FileLineData[5]="" Then $FileLineData[5]=$FileLineData[1] If $FileLineData[6]="" Then $FileLineData[6]=$FileLineData[2] If $FileLineData[7]="" Then $FileLineData[7]=100 If $FileLineData[8]="" Then $FileLineData[8]=$SolidBrush[$FileLineData[0]] Solid($FileLineData[0], $FileLineData[1], $FileLineData[2], $FileLineData[3], $FileLineData[4], $FileLineData[5], $FileLineData[6], $FileLineData[7], $FileLineData[8]) ElseIf $FileMode=0 Then If $FileLineData[3]="" Then $FileLineData[3]=10 If $FileLineData[4]="" Then $FileLineData[4]="Arial" Text($FileLineData[0], $FileLineData[1], $FileLineData[2], $FileLineData[3], $FileLineData[4]) EndIf Next EndFunc Func Level8() $Level=8 Solid(0, 100, -50, 25, 450) Solid(0, 225, -50, 25, 425) Solid(0, 350, -50, 25, 425) Solid(3, 225, 375, 25) Solid(3, 350, 375, 25) Solid(13, 0, 310, 25, 15, 75, 310, 400) Solid(13, 0, 200, 25, 15, 75, 200, 200) Solid(2, 0, 290, 100, 15) Solid(13, 0, 270, 25, 15, 75) Solid(13, 0, 100, 25, 15) Solid(0, 0, 150, 50, 10, 50, 150, 80) Solid(0, 0, 85, 25, 15) Solid(13, 80, 0, 15, 25, 80, 25) Solid(13, 130, 0, 15, 25) Solid(2, 50, 75, 50, 15) Solid(2, 125, 50) Solid(0, 150, 50) Solid(2, 200, 50) Solid(0, 200, 128) Solid(2, 170, 128, 30) Solid(0, 125, 75, 10, 90) Solid(0, 150, 200, 50) Solid(2, 200, 200) Solid(0, 150, 250) Solid(11, 200, 275, 20, 20) Solid(2, 150, 275) Solid(2, 125, 300, 100) Solid(13, 125, 285, 25, 15) Solid(13, 250, 275, 25, 15) Solid(5, 250, 325, 50) Solid(2, 250, 350, 100) Solid(0, 275, 265, 25, 32) Solid(2, 250, 250, 50, 15) Solid(5, 325, 275) Solid(5, 250, 225) Solid(5, 250, 170) Solid(5, 325, 180) Solid(5, 300, 100) Solid(5, 325, 115) Solid(5, 250, 50) Solid(13, 335, 0, 15, 25) Solid(13, 375, 0, 15, 25) Solid(2, 375, 75, 40) Solid(5, 415, 75) Solid(2, 440, 75, 60) Solid(14, 425, 0, 20, 20) Solid(11, 450, 25, 20, 20) Solid(5, 375, 190, 25, 20) Solid(2, 400, 190, 40, 20) Solid(0, 440, 100, 20, 110) Solid(11, 417, 125, 20, 20) Solid(14, 375, 105, 20, 20) Solid(14, 375, 160, 20, 20) Solid(2, 375, 275) Solid(11, 400, 275, 20, 20) Solid(11, 450, 250, 20, 20) Solid(11, 472, 200, 20, 20) Solid(14, 472, 150, 20, 20) Solid(12, 472, 100, 20, 20) Solid(11, 472, 310, 20, 20) Solid(2, 425, 350, 75) Solid(1, 150, 350, 50) EndFunc Func Level7() $Level=7 ;~ $BallPosX_0=0 ;~ $BallPosX=225 ;~ $BallPosY_0=0 ;~ $BallPosY=$BallPosY_0 ;~ $BallDirection=2 Solid(2, 0, 225, 75) Solid(2, 75, 225, 25, 50) Solid(0, 75, 275, 25, 75) Solid(1, 0, 250, 75) Solid(2, 150, 325, 100) Solid(2, 275, 375) Solid(2, 250, 300) Solid(2, 275, 275, 50) Solid(2, 325, 300) Solid(2, 350, 375) Solid(2, 350, 275, 50) Solid(2, 400, 275, 25, 50) Solid(2, 450, 375) Solid(0, 475, 375) Solid(11, 475, 350, 20, 20) Solid(2, 425, 250, 75) Solid(3, 0, 325, 75) Solid(0, 150, 300, 100) Solid(2,100, 225, 125) Solid(0, 300, 250) Solid(0, 400, 250) Solid(2, 400, 125, 25, 75) Solid(0, 475, 200) Solid(0, 425, 150) Solid(0, 375, 125) Solid(11, 325, 125, 20, 20) Solid(2, 250, 75, 25, 75) Solid(2, 200, 150, 25, 75) Solid(0, 150, 200, 50) Solid(11, 50, 200, 20, 20) Solid(11, 0, 125, 20, 20) Solid(11, 50, 75, 20, 20) Solid(11, 100, 75, 20, 20) Solid(11, 225, 75, 20, 20) Solid(11, 300, 50, 20, 20) Solid(11, 450, 50, 20, 20) Solid(11, 450, 0, 20, 20) Solid(12, 475, 0, 20, 20) Solid(11, 400, 0, 20, 20) EndFunc Func Level6() $Level=6 Solid(0, 100, 100, 25, 300) Solid(0, 75, 375) Solid(0, 0, 325) Solid(0, 50, 275) Solid(0, 50, 200) Solid(0, 0, 225) Solid(0, 50, 140) Solid(0, 50, 75, 75) Solid(0, 0, 75) Solid(2, 75, 0, 25, 75) Solid(13, 55, 25, 15, 25) Solid(13, 105, 25, 15, 25) Solid(0, 150, -25, 25, 375) Solid(0, 300, 50, 25, 350) Solid(4, 225, 300, 75, 25, 225, 400, 400) Solid(0, 175, 200, 50, 25, 175, 300, 200) Solid(0, 225, 225, 75) Solid(0, 175, 100, 50, 25, 175, 200, 200) Solid(0, 225, 50, 75, 25, 225, 125, 400) Solid(0, 325, 50, 150) Solid(2, 350, 25, 25, 25, 425, 25, 200) Solid(0, 375, 175, 75) Solid(4, 450, 175, 50) Solid(2, 325, 75, 25, 25, 425) Solid(2, 375, 150, 25, 25, 400) Solid(0, 450, 75, 25, 50) Solid(0, 325, 225, 50, 50) Solid(0, 375, 250, 50) Solid(4, 425, 250) Solid(0, 450, 250, 50) Solid(13, 425, 200, 25, 15) Solid(13, 325, 275, 25, 15, 475) Solid(2, 325, 385, 175, 15) Solid(1, 325, 365, 50, 15, 450, 365, 200) EndFunc Func Level5() $Level=5 Solid(2, 100, 375) Solid(2, 225, 375) Solid(0, 250, 375, 50) Solid(2, 300, 375, 50) Solid(0, 350, 375) Solid(2, 375, 375) Solid(0, 400, 350, 100, 50) Solid(0, 450, 300, 25) Solid(0, 350, 250, 50) Solid(11, 363, 225, 20, 20) Solid(2, 300, 250, 50) Solid(0, 250, 275, 50) Solid(2, 175, 250, 75) Solid(2, 175, 225, 50) Solid(0, 125, 250, 50) Solid(2, 100, 100, 25, 100) Solid(11, 125, 225, 20, 20) Solid(11, 25, 225, 20, 20) Solid(11, 25, 175, 20, 20) Solid(11, 50, 125, 20, 20) Solid(11, 50, 75, 20, 20) Solid(0, 175, 100, 50) Solid(11, 300, 100, 20, 20) Solid(11, 375, 100, 20, 20) Solid(11, 425, 75, 20, 20) Solid(1, 475, 50) EndFunc Func Level4() $Level=4 Solid(0, 0, 400, 500) Solid(0, 125, 375, 125) Solid(0, 200, 350, 50, 25) Solid(0, 300, 325, 50, 50) Solid(0, 375, 325, 25, 50) Solid(0, 425, 300, 75, 50) Solid(0, 300, 225, 150, 25) Solid(0, 450, 250) Solid(0, 225, 250) Solid(0, 150, 200) Solid(0, 0, 300, 100) Solid(0, 50, 150, 25, 100) Solid(0, 25, 250) Solid(0, 0, 200) Solid(0, 425, 175, 75) Solid(0, 425, 125) Solid(0, 350, 125, 50) Solid(0, 275, 125) Solid(0, 150, 100, 75) Solid(0, 0, 100) Solid(0, 50, 50) Solid(0, 100, 0, 50) Solid(0, 150, 25, 75) Solid(0, 275, 25, 50) Solid(0, 375, 25, 125) Solid(1, 475, 0) EndFunc Func Level3() $Level=3 Text("Blocks can move!", 25, 300) Solid(4, 100, 375, 100) Solid(2, 200, 375, 175) Solid(0, 200, 350, 75, 25, 300, 350, 200) Solid(0, 375, 175, 125, 25, 375, 375, 200) Solid(0, 275, 175, 100) Solid(3, 75, 175, 200) Solid(0, 0, 175, 75) Solid(12, 0, 150, 20, 20) Solid(0, 100, 225, 75) Solid(1, 225, 200, 50) EndFunc Func Level2() $Level=2 Solid(0, 50, 375, 50) Solid(0, 125, 325, 100, 50) Solid(0, 250, 325, 100, 50) Solid(0, 400, 325, 75, 50) Solid(0, 0, 275, 100) Solid(0, 150, 225, 50) Solid(0, 250, 175, 75) Solid(0, 400, 200, 75) Solid(1, 475, 200) Text("Hit enter to restart. Hit esc to exit.", 300, 0, 8) EndFunc Func Level1() $Level=1 Solid(0, 100, 375, 100) Solid(2, 200, 375) Solid(0, 225, 375, 75) Solid(4, 300, 375, 125) Solid(13, 425, 385, 75, 15) Solid(13, 0, 125, 75, 15) Solid(0, 0, 250, 175) Solid(11, 100, 225, 20, 20) Solid(2, 175, 250, 75) Solid(0, 250, 250, 175) Solid(12, 320, 225, 20, 20) Solid(3, 375, 125, 50, 125) Solid(13, 425, 255, 75, 15) Solid(13, 0, 0, 75, 15) Solid(0, 0, 100, 125) Solid(5, 125, 100) Solid(5, 150, 100) Solid(5, 175, 100) Solid(5, 200, 100) Solid(0, 225, 100, 275) Solid(14, 300, 75, 20, 20) Solid(1, 450, 50, 50, 50) Text("Press up to jump", 0, 325, 8) Text("Avoid red", 180, 325, 8) Text("Sticky", 335, 325, 8) Text("Teleport", 435, 325, 8) Text("Jump in the air! Hit space to use", 15, 200, 8) Text("Lock and key", 285, 200, 8) Text("These vanish!", 130, 50, 8) Text("Use to pause moving", 240, 50, 8) Text("Hit to win!", 435, 20, 8) EndFunc Func Solid($_SolidType, $_SolidPosX, $_SolidPosY, $_SolidWidth=25, $_SolidHeight=25, $_SolidPosX_2=$_SolidPosX, $_SolidPosY_2=$_SolidPosY, $_SolidSpeed=100, $_SolidBrush=$SolidBrush[$_SolidType]) ReDim $Obj[$Obj_Num+1][14] ReDim $VanishTimer[$Obj_Num+1] ReDim $VanishBrush[$Obj_Num+1] ReDim $Vanish[$Obj_Num+1] $Obj[$Obj_Num][0]=$_SolidPosX $Obj[$Obj_Num][1]=$_SolidPosY $Obj[$Obj_Num][2]=$_SolidWidth $Obj[$Obj_Num][3]=$_SolidHeight $Obj[$Obj_Num][4]=$_SolidPosX_2 $Obj[$Obj_Num][5]=$_SolidPosY_2 $Obj[$Obj_Num][6]=Sqrt(($_SolidPosX_2-$_SolidPosX)^2+($_SolidPosY_2-$_SolidPosY)^2)/$_SolidSpeed If $_SolidPosX_2<>$_SolidPosX Then $Obj[$Obj_Num][7]=1 If $_SolidPosY_2<>$_SolidPosY Then $Obj[$Obj_Num][8]=1 If $_SolidPosX_2<>$_SolidPosX Then $Obj[$Obj_Num][9]=$_SolidPosX If $_SolidPosY_2<>$_SolidPosY Then $Obj[$Obj_Num][10]=$_SolidPosY $Obj[$Obj_Num][11]=$_SolidBrush $Obj[$Obj_Num][12]=$_SolidType $Obj[$Obj_Num][13]=1 If $_SolidType=5 Then $VanishBrush[$Obj_Num]=_GDIPlus_BrushCreateSolid(0xFF004400) If $_SolidType=5 Then $Vanish[$Obj_Num]=99 ReDim $Obj_DirectionX[$Obj_Num+1] ReDim $Obj_DirectionY[$Obj_Num+1] $Obj_DirectionX[$Obj_Num]=1 $Obj_DirectionY[$Obj_Num]=1 $Obj_Num+=1 EndFunc Func Text($_TextData, $_TextPosX, $_TextPosY, $_TextSize=10, $_TextFont="Arial") ReDim $Text[$Text_Num+1][5] $Text[$Text_Num][0]=$_TextData $Text[$Text_Num][1]=$_TextPosX $Text[$Text_Num][2]=$_TextPosY $Text[$Text_Num][3]=$_TextSize $Text[$Text_Num][4]=$_TextFont $Text_Num+=1 EndFunc Func DrawText() For $1=0 To $Text_Num-1 _GDIPlus_GraphicsDrawString($GDI_BACKBUFFER, $Text[$1][0], $Text[$1][1], $Text[$1][2], $Text[$1][4], $Text[$1][3]) Next EndFunc Func DrawObjects() For $1=0 To $Obj_Num-1 If $Obj[$1][7]=1 Then ;;;Turn Object Vertically $Obj[$1][0]+=$Obj[$1][6]*$Obj_DirectionX[$1] If $Obj[$1][0]=$Obj[$1][4] Then $Obj_DirectionX[$1]*=-1 If $Obj[$1][0]=$Obj[$1][9] Then $Obj_DirectionX[$1]*=-1 EndIf If $Obj[$1][8]=1 Then ;;;Turn Object Horisontally $Obj[$1][1]+=$Obj[$1][6]*$Obj_DirectionY[$1] If $Obj[$1][1]=$Obj[$1][5] Then $Obj_DirectionY[$1]*=-1 If $Obj[$1][1]=$Obj[$1][10] Then $Obj_DirectionY[$1]*=-1 EndIf If $Obj[$1][12]>10 Then If $Obj[$1][13]<>0 Then _GDIPlus_GraphicsFillEllipse($GDI_BACKBUFFER, $Obj[$1][0], $Obj[$1][1], $Obj[$1][2], $Obj[$1][3], $Obj[$1][11]) Else If $Obj[$1][13]<>0 Then _GDIPlus_GraphicsFillRect($GDI_BACKBUFFER, $Obj[$1][0], $Obj[$1][1], $Obj[$1][2], $Obj[$1][3], $Obj[$1][11]) EndIf Next EndFunc Func GetNewBallPos() If $BrownStop=True Then ;;;Brown Stop $BrownStopCount+=1 If $BrownStopCount>50 Then $BrownStop=False Return EndIf $IsSqueezed=0 If SurfaceRight() Then $BallDirection=2 If SurfaceLeft() Then $BallDirection=1 If $IsSqueezed=2 Then LoseGame() Switch $BallDirection Case 1 $BallPosX+=$BallSpeed Case 2 $BallPosX-=$BallSpeed EndSwitch EndFunc Func CheckVanish() For $1=0 To $Obj_Num-1 If $Obj[$1][12]=5 Then If $Obj[$1][13]=2 Then $Vanish[$1]-=2 _GDIPlus_BrushSetSolidColor($VanishBrush[$1], '0x' & $Vanish[$1] & '004400') $Obj[$1][11]=$VanishBrush[$1] If $Vanish[$1]<10 Then $Obj[$1][13]=0 $Vanish[$1]=99 $VanishTimer[$1]=TimerInit() EndIf ElseIf $Obj[$1][13]=0 And TimerDiff($VanishTimer[$1])>2000 Then $VanishTimer[$1]=TimerInit() If PointInSquare($BallPosX+$BallWidth, $BallPosY, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3], -2, 1, 0) = False Then If PointInSquare($BallPosX+$BallWidth, $BallPosY+$BallHeight, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3], -2, 1, 0) = False Then If PointInSquare($BallPosX, $BallPosY+$BallHeight, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3], -2, 1, 0) = False Then If PointInSquare($BallPosX, $BallPosY, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3], -2, 1, 0) = False Then _GDIPlus_BrushSetSolidColor($VanishBrush[$1], 0xFF004400) $Obj[$1][13]=1 $Obj[$1][11]=$SolidBrush[5] EndIf EndIf EndIf EndIf EndIf EndIf Next EndFunc Func MoveBall() Switch $Brush Case 1 _GDIPlus_GraphicsFillEllipse($GDI_BACKBUFFER, $BallPosX, $BallPosY, $BallWidth, $BallHeight, $GDI_BRUSH_BALL) Case 2 _GDIPlus_GraphicsFillEllipse($GDI_BACKBUFFER, $BallPosX, $BallPosY, $BallWidth, $BallHeight, $EpicBrush[0]) _GDIPlus_GraphicsFillEllipse($GDI_BACKBUFFER, $BallPosX+$BallWidth/8, $BallPosY+$BallHeight/8, $BallWidth-$BallWidth/4, $BallHeight-$BallHeight/4, $EpicBrush[1]) _GDIPlus_GraphicsFillEllipse($GDI_BACKBUFFER, $BallPosX+$BallWidth/4, $BallPosY+$BallHeight/4, $BallWidth-$BallWidth/2, $BallHeight-$BallHeight/2, $EpicBrush[2]) EndSwitch EndFunc Func WinGame() $Level+=1 $CryptKey="Juego" If $Level<9 And _Crypt_DecryptData(IniRead(@ScriptDir & "\JuegoData\CL.ini", "1", "1", ""), "Juego", $CALG_AES_256)<$Level Then IniWrite(@ScriptDir & "\JuegoData\CL.ini", "1", "1", _Crypt_EncryptData($Level, $CryptKey, $CALG_AES_256)) $ActivePowerup=0 $ExtraJumpActive=1 _GDIPlus_BrushSetSolidColor($GDI_BRUSH_BALL, 0xFF000000) $Jump=0 $JumpSoon=0 $SurfaceCount=0 $BallPosY=$BallPosY_Start $BallPosX=$BallPosX_0 ReDim $Obj[0][0] ReDim $Obj[1][14] ReDim $Text[0][0] ReDim $Text[1][5] $Obj_Num=0 $Text_Num=0 If $Level<9 Then RunLevel($Level) Else GoToMenu() EndIf $QualityCount=0 $QualityTimer=TimerInit() EndFunc Func LoseGame() For $1=1 To $Obj_Num-1 $Obj[$1][13]=1 $Vanish[$1]=99 _GDIPlus_BrushSetSolidColor($VanishBrush[$1], 0xFF004400) Next $ActivePowerup=0 $ExtraJumpActive=1 $Jump=0 _GDIPlus_BrushSetSolidColor($GDI_BRUSH_BALL, 0xFF000000) $BallPosY=$BallPosY_Start $BallPosX=$BallPosX_0 $SurfaceCount=0 $QualityCount=0 $QualityTimer=TimerInit() EndFunc Func SurfaceRight() If $BallPosX>=$WinWidth-$BallWidth Then Return True For $1=0 To $Obj_Num-1 If PointInSquare($BallPosX+$BallWidth, $BallPosY+$BallHeight/2, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3], $Obj[$1][12], $Obj[$1][13], $1) Then If CheckForPowerup($1, $Obj[$1][12], $Obj[$1][13])= True Then Return False If $Obj[$1][7]=1 And $Obj[$1][6]>$BallSpeed Then $BallPosX=$Obj[$1][0]-$BallWidth If $Obj[$1][12]=2 Then LoseGame() If $Obj[$1][12]=1 Then WinGame() $IsSqueezed+=1 Return True EndIf Next EndFunc Func SurfaceLeft() If $BallPosX<=$BallPosX_0 Then Return True For $1=0 To $Obj_Num-1 If PointInSquare($BallPosX, $BallPosY+$BallHeight/2, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3], $Obj[$1][12], $Obj[$1][13], $1) Then If CheckForPowerup($1, $Obj[$1][12], $Obj[$1][13])= True Then Return False If $Obj[$1][7]=1 And $Obj[$1][6]>$BallSpeed Then $BallPosX=$Obj[$1][0]+$Obj[$1][2] If $Obj[$1][12]=2 Then LoseGame() If $Obj[$1][12]=1 Then WinGame() $IsSqueezed+=1 Return True EndIf Next EndFunc Func SurfaceUnder() If $ExtraJumpActive=1 Or $ExtraJumpActive=2 Then If $ExtraJumpActive=2 Then $ExtraJumpActive=-1 $ExtraJumpActive+=1 Return True EndIf For $1=0 To $Obj_Num-1 If PointInSquare($BallPosX+$BallWidth-3, $BallPosY+$BallHeight+1, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3], $Obj[$1][12], $Obj[$1][13], $1) Or PointInSquare($BallPosX+3, $BallPosY+$BallHeight+1, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3], $Obj[$1][12], $Obj[$1][13], $1) Then If CheckForPowerup($1, $Obj[$1][12], $Obj[$1][13])= True Then Return False If $Obj[$1][12]=4 Then ;;;Gold Sticky If $BallDirection=1 Then $BallPosX-=0.75 If $BallDirection=2 Then $BallPosX+=0.75 EndIf $BallPosY=$Obj[$1][1]-$BallHeight $BallPosY_0=$BallPosY If $Obj[$1][12]=2 Then LoseGame() If $Obj[$1][12]=1 Then WinGame() Return True EndIf Next If $BallPosY+$BallHeight>=$WinHeight Then $BallPosY=$WinHeight-$BallHeight $BallPosY_0=$WinHeight-$BallHeight Return True EndIf EndFunc Func SurfaceOver() For $1=0 To $Obj_Num-1 If PointInSquare($BallPosX+$BallWidth-5, $BallPosY, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3], $Obj[$1][12], $Obj[$1][13], $1) Or PointInSquare($BallPosX+5, $BallPosY, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3], $Obj[$1][12], $Obj[$1][13], $1) Then If CheckForPowerup($1, $Obj[$1][12], $Obj[$1][13])= True Then Return False $SurfaceMove=0 If $Obj[$1][12]=2 Then LoseGame() If $Obj[$1][8]=1 Then $BallPosY=$Obj[$1][1]+$Obj[$1][3] $SurfaceMove=1 $SurfaceCount=5 ElseIf $BallPosY<$Obj[$1][1]+$Obj[$1][3]-2 Then $BallPosY=$Obj[$1][1]+$Obj[$1][3] EndIf If $Obj[$1][12]=1 Then WinGame() Return True EndIf Next EndFunc Func CheckForPowerup($__PowerupObjNum, $__PowerupObj, $__PowerupActive) If $__PowerupObj>10 Then If $__PowerupActive=0 Then Return True If $__PowerupObj<>13 Then $Obj[$__PowerupObjNum][13]=0 ActivatePowerup($__PowerupObj, $__PowerupObjNum) Return True EndIf Return False EndFunc Func ActivatePowerup($_PowerupType, $_PowerupObjNum) Switch $_PowerupType Case 11;;Superjump _GDIPlus_BrushSetSolidColor($GDI_BRUSH_BALL, 0xFFFF9900) Case 12;;Cyan Key For $1=0 To $Obj_Num-1 If $Obj[$1][12]=3 And $Obj[$1][13]=1 Then $Obj[$1][13]=0 Next $_PowerupType=$ActivePowerup Case 13;;Teleport If TimerDiff($TeleTimer)>500 Then $TeleLink=-1 If $Obj[$_PowerupObjNum-1][12]<>13 Then $TeleLink=1 $TeleDiffY=$BallPosY-$BallPosY_0 $BallPosX=$Obj[$_PowerupObjNum+$TeleLink][0]+$Obj[$_PowerupObjNum+$TeleLink][2]/2-$BallWidth/2 $BallPosY=$Obj[$_PowerupObjNum+$TeleLink][1]+$Obj[$_PowerupObjNum+$TeleLink][3]/2-$BallHeight/2 $BallPosY_0=$BallPosY-$TeleDiffY $TeleTimer=TimerInit() EndIf $_PowerupType=$ActivePowerup Case 14 _GDIPlus_BrushSetSolidColor($GDI_BRUSH_BALL, 0xFF734021) EndSwitch $ActivePowerup=$_PowerupType EndFunc Func SpendPowerup() Switch $ActivePowerup Case 0 Return Case 11 ;;;EXTRA JUMP $ActivePowerup=0 $ExtraJumpActive=1 $SurfaceCount=0 StartJump() Case 14 ;;;Brown Stop $BrownStop=True $BrownStopCount=0 EndSwitch _GDIPlus_BrushSetSolidColor($GDI_BRUSH_BALL, 0xFF000000) EndFunc Func StartJump() If SurfaceUnder() Then $Jump=True $BallPosY_0=$BallPosY ;~ $BallSpeedY=$JumpHeight $JumpSoon=False Else $JumpSoonTimer=TimerInit() $JumpSoon=True EndIf EndFunc Func Gravity() If SurfaceOver() = True Then $BallSpeedY=0 If $SurfaceMove=0 Then $SurfaceCount=2 $BallPosY_0=$BallPosY EndIf If SurfaceUnder() Then $SurfaceCount=0 $BallSpeedY=0 $BallPosY_0=$BallPosY If $JumpSoon=False And $Jump=False Then Return Else If $JumpSoon=True And TimerDiff($JumpSoonTimer)>150 Then Return $BallSpeedY=$JumpHeight StartJump() $Jump=False EndIf EndIf $SurfaceCount+=1 $BallPosY=$BallPosY_0-($BallSpeedY*$SurfaceCount+1/2*-9.81*$SurfaceCount^2)*0.01 EndFunc Func QualityCheck() $QualityCount+=1 If $QualityCount=$QualityFPS Then $QualitySleep+=(950-TimerDiff($QualityTimer))/$QualityFPS*100 $QualityCount=0 $QualityTimer=TimerInit() EndIf EndFunc Func USleep($iUsec, $hDLL = "ntdll.dll") $iUsec-=TimerDiff($USleepTimer)*100 If $iUsec<0 Then $iUsec=0 Local $hStruct = DllStructCreate("int64") DllStructSetData($hStruct, 1, -1 * ($iUsec * 10)) DllCall($hDLL, "dword", "ZwDelayExecution", "int", 0, "ptr", DllStructGetPtr($hStruct)) $USleepTimer=TimerInit() EndFunc Func PointInSquare($_PointX, $_PointY, $_SquareTopX, $_SquareTopY, $_SquareBottomX, $_SquareBottomY, $_SquareType, $_SquareActive, $_SquareObjNum) If $_SquareActive=0 Then Return False $_SquareDiff=0 If $_SquareType=2 Then $_SquareDiff=2 If $_SquareType>10 Then $_SquareDiff=2 If $_PointX<$_SquareTopX+$_SquareDiff Then Return False If $_PointX>$_SquareBottomX-$_SquareDiff Then Return False If $_PointY<$_SquareTopY+$_SquareDiff Then Return False If $_PointY>$_SquareBottomY-$_SquareDiff Then Return False If $_SquareType = 5 Then $Obj[$_SquareObjNum][13]=2 Return True EndFunc Func TakeSnapShot() If Not FileExists($PictureDir) Then DirCreate($PictureDir) _ScreenCapture_CaptureWnd($PictureDir & "\Temp.bmp", $hGUI, 0, 0, -1, -1, False) $___SnapShotImage = _GDIPlus_ImageLoadFromFile($PictureDir & "\Temp.bmp") $___GC = _GDIPlus_ImageGetGraphicsContext($___SnapShotImage) $___NewBmp = _GDIPlus_BitmapCreateFromGraphics(115,87,$___GC) $___newGC = _GDIPlus_ImageGetGraphicsContext($___NewBmp) _GDIPlus_GraphicsDrawImageRect($___newGC,$___SnapShotImage,0,0,115,87) _GDIPlus_ImageSaveToFile($___newBmp,$PictureDir & "\Level" & $Level & ".bmp") _GDIPlus_GraphicsDispose($___GC) _GDIPlus_GraphicsDispose($___newGC) _GDIPlus_BitmapDispose($___newBmp) _GDIPlus_ImageDispose($___SnapShotImage) FileDelete($PictureDir & "\Temp.bmp") $TakeScreenshot=False EndFunc Func Menu() $Level=0 $ButtonPosX=2 $ButtonPosY=2 For $1=1 To 16 $Button[$1]=GUICtrlCreateButton("", $ButtonPosX, $ButtonPosY, 120, 95, $BS_BITMAP) $ButtonPosX+=125 If $ButtonPosX>500 Then $ButtonPosX=2 $ButtonPosY+=100 EndIf GUICtrlSetImage($Button[$1], $PictureDir & "\Level" & $1 & ".bmp") If _Crypt_DecryptData(IniRead(@ScriptDir & "\JuegoData\CL.ini", "1", "1", ""), "Juego", $CALG_AES_256)<$1 And $1<9 And $1>1 Then GUICtrlSetState($Button[$1], 128) Next While 1 $msg=GUIGetMsg() For $1=1 To 16 Switch $msg ;~ Case $Button[1] ;~ DeleteMenu() ;~ Level1() ;~ Return Case $Button[$1] DeleteMenu() RunLevel($1) Return EndSwitch Next WEnd EndFunc Func RunLevel($_RunLevel) HotKeySet("{UP}", "StartJump") HotKeySet("{SPACE}", "SpendPowerup") HotKeySet("{PRINTSCREEN}", "TakeSnapShot") HotKeySet("{ENTER}", "LoseGame") Switch $_RunLevel Case 1 Level1() Case 2 Level2() Case 3 Level3() Case 4 Level4() Case 5 Level5() Case 6 Level6() Case 7 Level7() Case 8 Level8() Case 9 To 16 $Level=-1 LevelFromTxt($_RunLevel) EndSwitch $TakeScreenshot=True EndFunc Func DeleteMenu() For $1=1 To 16 GUICtrlDelete($Button[$1]) Next $QualityCount=0 $QualityTimer=TimerInit() EndFunc Func GoToMenu() If $ScriptPos=1 Then $GoToMenu=True Return EndIf $GoToMenu=False HotKeySet("{UP}") HotKeySet("{SPACE}") HotKeySet("{PRINTSCREEN}") HotKeySet("{ENTER}") _GDIPlus_GraphicsClear($GDI_BACKBUFFER, 0xFFFFFFFF) _GDIPlus_GraphicsDrawImageRect($GDI_GRAPHICS, $GDI_BITMAP, 0, 0, $WinWidth, $WinHeight) $ActivePowerup=0 $ExtraJumpActive=1 _GDIPlus_BrushSetSolidColor($GDI_BRUSH_BALL, 0xFF000000) $Jump=0 $JumpSoon=0 $SurfaceCount=0 $BallPosY=$BallPosY_Start $BallPosX=$BallPosX_0 ReDim $Obj[0][0] ReDim $Obj[1][14] ReDim $Text[0][0] ReDim $Text[1][5] $Obj_Num=0 $Text_Num=0 $QualityCount=0 $QualityTimer=TimerInit() Menu() EndFunc Func CheckActive() If WinActive($hGUI) Then If $WinActive=False Then HotKeySet("{UP}", "StartJump") HotKeySet("{SPACE}", "SpendPowerup") HotKeySet("{PRINTSCREEN}", "TakeSnapShot") HotKeySet("{ENTER}", "LoseGame") EndIf $WinActive=True Else If $WinActive=True Then HotKeySet("{UP}") HotKeySet("{SPACE}") HotKeySet("{PRINTSCREEN}") HotKeySet("{ENTER}") EndIf $WinActive=False EndIf EndFunc Func Terminate() If $Level<>0 Then GoToMenu() Return EndIf _GDIPlus_BrushDispose($SolidBrush[0]) _GDIPlus_BrushDispose($SolidBrush[1]) _GDIPlus_BrushDispose($SolidBrush[2]) _GDIPlus_BrushDispose($SolidBrush[3]) _GDIPlus_BrushDispose($SolidBrush[4]) _GDIPlus_BrushDispose($SolidBrush[5]) _GDIPlus_BrushDispose($SolidBrush[11]) _GDIPlus_BrushDispose($SolidBrush[12]) _GDIPlus_BrushDispose($SolidBrush[13]) _GDIPlus_BrushDispose($GDI_BRUSH_BALL) _GDIPlus_BrushDispose($VanishBrush) _GDIPlus_GraphicsDispose($GDI_GRAPHICS) _GDIPlus_ImageDispose($GDI_BITMAP) _GDIPlus_Shutdown() Exit EndFunc
  11. Tried using _WinAPI_PtInRectEx, and it's a lot less buggy, but it's making the game laggy. I'll look into that when I have more time, lots to do this week. #Include <GuiconstantsEx.au3> #Include <GDIPlus.au3> #include <WinAPIGdi.au3> HotKeySet("{ESC}", "Terminate") HotKeySet("{SPACE}", "StartJump") #Region Gui $WinWidth=500 $WinHeight=400 $hGUI=GUICreate("", $WinWidth, $WinHeight) GUISetState() #EndRegion #Region Graphics $GDI_QUALITY=2 _GDIPlus_Startup() $GDI_GRAPHICS=_GDIPlus_GraphicsCreateFromHWND($hGUI) $GDI_BITMAP=_GDIPlus_BitmapCreateFromGraphics($WinWidth, $WinHeight, $GDI_GRAPHICS) $GDI_BACKBUFFER=_GDIPlus_ImageGetGraphicsContext($GDI_BITMAP) _GDIPlus_GraphicsSetSmoothingMode($GDI_BACKBUFFER, $GDI_QUALITY) _GDIPlus_GraphicsClear($GDI_BACKBUFFER) $GDI_BRUSH_BALL=_GDIPlus_BrushCreateSolid() #EndRegion #Region GraphicObjects Dim $Obj[1][13] $Obj_Num=0 Dim $Obj_DirectionX[1] Dim $Obj_DirectionY[1] Dim $SolidBrush[2] $SolidBrush[0]=_GDIPlus_BrushCreateSolid() $SolidBrush[1]=_GDIPlus_BrushCreateSolid(0xFF00FF00) #EndRegion #Region GameVars $BallDirection=1 $BallWidth=20 $BallHeight=20 $BallSpeed=1 $BallSpeedY=0 $BallPosX_0=0 $BallPosX=$BallPosX_0 $BallPosY_Start=$WinHeight-$BallHeight $BallPosY_0=350 $BallPosY=$BallPosY_0 $SurfaceCount=0 $Jump=False $JumpHeight=350 $JumpSoon=False $JumpSoonTimer=TimerInit() $IsSqueezed=0 $SurfaceMove=0 #EndRegion #Region Quality $QualityTimer=TimerInit() $QualityCount=0 $QualityFPS=60 $QualitySleep=2000 $USleepTimer=TimerInit() #EndRegion Level2() While 1 GetNewBallPos() _GDIPlus_GraphicsClear($GDI_BACKBUFFER, 0xFFFFFFFF) DrawObjects() MoveBall() _GDIPlus_GraphicsDrawImageRect($GDI_GRAPHICS, $GDI_BITMAP, 0, 0, $WinWidth, $WinHeight) Gravity() QualityCheck() USleep($QualitySleep) WEnd Func Level3() Solid(0, 100, 375) EndFunc Func Level2() Solid(0, 125, 375, 125) Solid(0, 200, 350, 50, 25) Solid(0, 300, 325, 50, 50) Solid(0, 375, 325, 25, 50) Solid(0, 425, 300, 75, 50) Solid(0, 300, 225, 150, 25) Solid(0, 450, 250) Solid(0, 225, 250) Solid(0, 150, 200) Solid(0, 0, 300, 100) Solid(0, 50, 150, 25, 100) Solid(0, 25, 250) Solid(0, 0, 200) Solid(0, 425, 175, 75) Solid(0, 425, 125) Solid(0, 350, 125, 50) Solid(0, 275, 125) Solid(0, 150, 100, 75) Solid(0, 0, 100) Solid(0, 50, 50) Solid(0, 100, 0, 50) Solid(0, 150, 25, 75) Solid(0, 275, 25, 50) Solid(0, 375, 25, 125) Solid(1, 475, 0) EndFunc Func Level1() ;~ Solid(0, 0, 375, 25, 25, 300, 375, 400) Solid(0, 0, 200, 500, 25, 0, 400, 400) ;~ Solid(0, 0, 200, 500, 25, 0, 375, 200) EndFunc Func Solid($_SolidType, $_SolidPosX, $_SolidPosY, $_SolidWidth=25, $_SolidHeight=25, $_SolidPosX_2=$_SolidPosX, $_SolidPosY_2=$_SolidPosY, $_SolidSpeed=100, $_SolidBrush=$SolidBrush[$_SolidType]) ReDim $Obj[$Obj_Num+1][13] $Obj[$Obj_Num][0]=$_SolidPosX $Obj[$Obj_Num][1]=$_SolidPosY $Obj[$Obj_Num][2]=$_SolidWidth $Obj[$Obj_Num][3]=$_SolidHeight $Obj[$Obj_Num][4]=$_SolidPosX_2 $Obj[$Obj_Num][5]=$_SolidPosY_2 $Obj[$Obj_Num][6]=Sqrt(($_SolidPosX_2-$_SolidPosX)^2+($_SolidPosY_2-$_SolidPosY)^2)/$_SolidSpeed If $_SolidPosX_2<>$_SolidPosX Then $Obj[$Obj_Num][7]=1 If $_SolidPosY_2<>$_SolidPosY Then $Obj[$Obj_Num][8]=1 If $_SolidPosX_2<>$_SolidPosX Then $Obj[$Obj_Num][9]=$_SolidPosX If $_SolidPosY_2<>$_SolidPosY Then $Obj[$Obj_Num][10]=$_SolidPosY $Obj[$Obj_Num][11]=$_SolidBrush $Obj[$Obj_Num][12]=$_SolidType ReDim $Obj_DirectionX[$Obj_Num+1] ReDim $Obj_DirectionY[$Obj_Num+1] $Obj_DirectionX[$Obj_Num]=1 $Obj_DirectionY[$Obj_Num]=1 _GDIPlus_GraphicsDrawRect($GDI_GRAPHICS, $_SolidPosX, $_SolidPosY, $_SolidWidth, $_SolidHeight, $_SolidBrush) _GDIPlus_GraphicsDrawImageRect($GDI_GRAPHICS, $GDI_BITMAP, 0, 0, $WinWidth, $WinHeight) $Obj_Num+=1 EndFunc Func DrawObjects() For $1=0 To $Obj_Num-1 If $Obj[$1][7]=1 Then $Obj[$1][0]+=$Obj[$1][6]*$Obj_DirectionX[$1] If $Obj[$1][0]=$Obj[$1][4] Then $Obj_DirectionX[$1]*=-1 If $Obj[$1][0]=$Obj[$1][9] Then $Obj_DirectionX[$1]*=-1 EndIf If $Obj[$1][8]=1 Then $Obj[$1][1]+=$Obj[$1][6]*$Obj_DirectionY[$1] If $Obj[$1][1]=$Obj[$1][5] Then $Obj_DirectionY[$1]*=-1 If $Obj[$1][1]=$Obj[$1][10] Then $Obj_DirectionY[$1]*=-1 EndIf _GDIPlus_GraphicsFillRect($GDI_BACKBUFFER, $Obj[$1][0], $Obj[$1][1], $Obj[$1][2], $Obj[$1][3], $Obj[$1][11]) Next EndFunc Func GetNewBallPos() $IsSqueezed=0 If SurfaceRight() Then $BallDirection=2 If SurfaceLeft() Then $BallDirection=1 If $IsSqueezed=2 Then LoseGame() Switch $BallDirection Case 1 $BallPosX+=$BallSpeed Case 2 $BallPosX-=$BallSpeed EndSwitch EndFunc Func MoveBall() _GDIPlus_GraphicsFillEllipse($GDI_BACKBUFFER, $BallPosX, $BallPosY, $BallWidth, $BallHeight, $GDI_BRUSH_BALL) EndFunc Func WinGame() ReDim $Obj[0][0] ReDim $Obj[1][13] $Obj_Num=0 If $Level=2 Then Level2() If $Level=3 Then Level3() EndFunc Func LoseGame() ;~ MsgBox(0, "", "You Lost!") EndFunc Func SurfaceRight() If $BallPosX>=$WinWidth-$BallWidth Then Return True For $1=0 To $Obj_Num-1 ;~ If $Obj[$1][0]+$Obj[$1][2]/10>$BallPosX+$BallWidth And $BallPosX+$BallWidth>=$Obj[$1][0] And $Obj[$1][1]<$BallPosY+$BallHeight And $BallPosY<$Obj[$1][1]+$Obj[$1][3] Then If _WinAPI_PtInRectEx($BallPosX+$BallWidth, $BallPosY+$BallHeight/2, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3]) Then If $Obj[$1][7]=1 And $Obj[$1][6]>$BallSpeed Then $BallPosX=$Obj[$1][0]-$BallWidth If $Obj[$1][12]=1 Then WinGame() $IsSqueezed+=1 Return True EndIf Next EndFunc Func SurfaceLeft() If $BallPosX<=$BallPosX_0 Then Return True For $1=0 To $Obj_Num-1 ;~ If $Obj[$1][0]+$Obj[$1][2]>=$BallPosX And $BallPosX>=$Obj[$1][0]+$Obj[$1][2]-$Obj[$1][2]/10 And $Obj[$1][1]<$BallPosY+$BallHeight And $BallPosY<$Obj[$1][1]+$Obj[$1][3] Then If _WinAPI_PtInRectEx($BallPosX, $BallPosY+$BallHeight/2, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3]) Then If $Obj[$1][7]=1 And $Obj[$1][6]>$BallSpeed Then $BallPosX=$Obj[$1][0]+$Obj[$1][2] If $Obj[$1][12]=1 Then WinGame() $IsSqueezed+=1 Return True EndIf Next EndFunc Func SurfaceUnder() ;~ If $Jump=True Then Return False For $1=0 To $Obj_Num-1 ;~ If $BallPosX+$BallWidth>=$Obj[$1][0] And $BallPosX<=$Obj[$1][0]+$Obj[$1][2] And $BallPosY+$BallHeight>=$Obj[$1][1] And $BallPosY+$BallHeight<$Obj[$1][1]+$Obj[$1][3]/10 Then If _WinAPI_PtInRectEx($BallPosX+$BallWidth-3, $BallPosY+$BallHeight, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3]) Or _WinAPI_PtInRectEx($BallPosX+3, $BallPosY+$BallHeight, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3]) Then $BallPosY=$Obj[$1][1]-$BallHeight $BallPosY_0=$BallPosY If $Obj[$1][12]=1 Then WinGame() Return True EndIf Next If $BallPosY+$BallHeight>=$WinHeight Then $BallPosY=$WinHeight-$BallHeight $BallPosY_0=$WinHeight-$BallHeight Return True EndIf EndFunc Func SurfaceOver() For $1=0 To $Obj_Num-1 ;~ If $BallPosX+$BallWidth>=$Obj[$1][0] And $BallPosX<=$Obj[$1][0]+$Obj[$1][2] And $BallPosY<=$Obj[$1][1]+$Obj[$1][3] And $BallPosY>$Obj[$1][1]+$Obj[$1][3]-$Obj[$1][3]/10 Then If _WinAPI_PtInRectEx($BallPosX+$BallWidth-5, $BallPosY, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3]) Or _WinAPI_PtInRectEx($BallPosX+5, $BallPosY, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3]) Then $SurfaceMove=0 If $Obj[$1][12]=1 Then WinGame() If $Obj[$1][8]=1 Then $BallPosY=$Obj[$1][1]+$Obj[$1][3] $SurfaceMove=1 $SurfaceCount=5 EndIf Return True EndIf Next EndFunc Func StartJump() If SurfaceUnder() Then $Jump=True $BallPosY_0=$BallPosY ;~ $BallSpeedY=$JumpHeight $JumpSoon=False Else $JumpSoonTimer=TimerInit() $JumpSoon=True EndIf EndFunc Func Gravity() If SurfaceOver() = True Then $BallSpeedY=0 If $SurfaceMove=0 Then $SurfaceCount=2 $BallPosY_0=$BallPosY EndIf If SurfaceUnder() Then $SurfaceCount=0 $BallSpeedY=0 $BallPosY_0=$BallPosY If $JumpSoon=False And $Jump=False Then Return Else If $JumpSoon=True And TimerDiff($JumpSoonTimer)>300 Then Return $BallSpeedY=$JumpHeight StartJump() $Jump=False EndIf EndIf $SurfaceCount+=1 ;~ $Jump=False $BallPosY=$BallPosY_0-($BallSpeedY*$SurfaceCount+1/2*-9.81*$SurfaceCount^2)*0.01 EndFunc Func QualityCheck() $QualityCount+=1 If $QualityCount=$QualityFPS Then $QualitySleep+=(1000-TimerDiff($QualityTimer))/$QualityFPS*100 $QualityCount=0 $QualityTimer=TimerInit() EndIf EndFunc Func USleep($iUsec, $hDLL = "ntdll.dll") ;~ $iUsec-=TimerDiff($USleepTimer) ;~ If $iUsec<0 Then $iUsec=0 Local $hStruct = DllStructCreate("int64") DllStructSetData($hStruct, 1, -1 * ($iUsec * 10)) DllCall($hDLL, "dword", "ZwDelayExecution", "int", 0, "ptr", DllStructGetPtr($hStruct)) $USleepTimer=TimerInit() EndFunc Func Terminate() _GDIPlus_BrushDispose($SolidBrush) _GDIPlus_BrushDispose($GDI_BRUSH_BALL) _GDIPlus_GraphicsDispose($GDI_GRAPHICS) _GDIPlus_ImageDispose($GDI_BITMAP) _GDIPlus_Shutdown() Exit EndFunc
  12. Hey! Yesterday I started making a small game just 4 fun, but it's very buggy. The way I made it check the collisions and jump off blocks etc is probably not the best way to do it, so it would be great if anyone got any suggestions as to how to improve the collision checks, and/or just what's making it buggy. #Include <GuiconstantsEx.au3> #Include <GDIPlus.au3> HotKeySet("{ESC}", "Terminate") HotKeySet("{SPACE}", "StartJump") #Region Gui $WinWidth=500 $WinHeight=400 $hGUI=GUICreate("", $WinWidth, $WinHeight) GUISetState() #EndRegion #Region Graphics $GDI_QUALITY=2 _GDIPlus_Startup() $GDI_GRAPHICS=_GDIPlus_GraphicsCreateFromHWND($hGUI) $GDI_BITMAP=_GDIPlus_BitmapCreateFromGraphics($WinWidth, $WinHeight, $GDI_GRAPHICS) $GDI_BACKBUFFER=_GDIPlus_ImageGetGraphicsContext($GDI_BITMAP) _GDIPlus_GraphicsSetSmoothingMode($GDI_BACKBUFFER, $GDI_QUALITY) _GDIPlus_GraphicsClear($GDI_BACKBUFFER) $GDI_BRUSH_BALL=_GDIPlus_BrushCreateSolid() #EndRegion #Region GraphicObjects Dim $Obj[1][4] $Obj_Num=0 $SolidBrush=_GDIPlus_BrushCreateSolid() Solid(125, 375, 125) Solid(200, 350, 50, 25) Solid(300, 325, 50, 50) Solid(375, 325, 25, 50) Solid(425, 300, 75, 50) Solid(300, 225, 150, 25) Solid(450, 250) #EndRegion #Region GameVars $BallDirection=1 $BallWidth=20 $BallHeight=20 $BallSpeed=1 $BallSpeedY=0 $BallPosX_0=0 $BallPosX=$BallPosX_0 $BallPosY_Start=$WinHeight-$BallHeight $BallPosY_0=300 $BallPosY=$BallPosY_0 $SurfaceCount=0 $Jump=False $JumpHeight=350 $JumpSoon=False #EndRegion #Region Quality $QualityTimer=TimerInit() $QualityCount=0 $QualityFPS=60 $QualitySleep=2000 #EndRegion While 1 GetNewBallPos() _GDIPlus_GraphicsClear($GDI_BACKBUFFER, 0xFFFFFFFF) DrawObjects() MoveBall() _GDIPlus_GraphicsDrawImageRect($GDI_GRAPHICS, $GDI_BITMAP, 0, 0, $WinWidth, $WinHeight) Gravity() QualityCheck() USleep($QualitySleep) WEnd Func Solid($_SolidPosX, $_SolidPosY, $_SolidWidth=25, $_SolidHeight=25, $_SolidBrush=$SolidBrush) ReDim $Obj[$Obj_Num+1][4] $Obj[$Obj_Num][0]=$_SolidPosX $Obj[$Obj_Num][1]=$_SolidPosY $Obj[$Obj_Num][2]=$_SolidWidth $Obj[$Obj_Num][3]=$_SolidHeight _GDIPlus_GraphicsDrawRect($GDI_GRAPHICS, $_SolidPosX, $_SolidPosY, $_SolidWidth, $_SolidHeight, $_SolidBrush) _GDIPlus_GraphicsDrawImageRect($GDI_GRAPHICS, $GDI_BITMAP, 0, 0, $WinWidth, $WinHeight) $Obj_Num+=1 EndFunc Func DrawObjects() For $1=0 To $Obj_Num-1 _GDIPlus_GraphicsFillRect($GDI_BACKBUFFER, $Obj[$1][0], $Obj[$1][1], $Obj[$1][2], $Obj[$1][3], $SolidBrush) Next EndFunc Func GetNewBallPos() If $BallDirection=1 And SurfaceRight() Then $BallDirection=2 If $BallDirection=2 And SurfaceLeft() Then $BallDirection=1 Switch $BallDirection Case 1 $BallPosX+=$BallSpeed Case 2 $BallPosX-=$BallSpeed EndSwitch EndFunc Func MoveBall() _GDIPlus_GraphicsFillEllipse($GDI_BACKBUFFER, $BallPosX, $BallPosY, $BallWidth, $BallHeight, $GDI_BRUSH_BALL) EndFunc Func SurfaceRight() If $BallPosX>=$WinWidth-$BallWidth Then Return True For $1=0 To $Obj_Num-1 If $Obj[$1][0]+$Obj[$1][2]/10>$BallPosX+$BallWidth And $BallPosX+$BallWidth>=$Obj[$1][0] And $Obj[$1][1]<$BallPosY+$BallHeight And $BallPosY<$Obj[$1][1]+$Obj[$1][3] Then Return True Next EndFunc Func SurfaceLeft() If $BallPosX<=$BallPosX_0 Then Return True For $1=0 To $Obj_Num-1 If $Obj[$1][0]+$Obj[$1][2]>=$BallPosX And $BallPosX>=$Obj[$1][0]+$Obj[$1][2]-$Obj[$1][2]/10 And $Obj[$1][1]<$BallPosY+$BallHeight And $BallPosY<$Obj[$1][1]+$Obj[$1][3] Then Return True Next EndFunc Func SurfaceUnder() If $Jump=True Then Return False If $BallPosY>=$WinHeight-$BallHeight Then $BallPosY=$WinHeight-$BallHeight $BallPosY_0=$WinHeight-$BallHeight Return True EndIf For $1=0 To $Obj_Num-1 If $BallPosX+$BallWidth>=$Obj[$1][0] And $BallPosX<=$Obj[$1][0]+$Obj[$1][2] And $BallPosY+$BallHeight>=$Obj[$1][1] And $BallPosY+$BallHeight<$Obj[$1][1]+$Obj[$1][3]/10 Then $BallPosY_0=$BallPosY Return True EndIf Next EndFunc Func SurfaceOver() For $1=0 To $Obj_Num-1 If $BallPosX+$BallWidth>=$Obj[$1][0] And $BallPosX<=$Obj[$1][0]+$Obj[$1][2] And $BallPosY<=$Obj[$1][1]+$Obj[$1][3] And $BallPosY>$Obj[$1][1]+$Obj[$1][3]-$Obj[$1][3]/10 Then Return True Next EndFunc Func StartJump() If SurfaceUnder() Then $Jump=True $BallPosY_0=$BallPosY $BallSpeedY=$JumpHeight $JumpSoon=False Else $JumpSoon=True EndIf EndFunc Func Gravity() If $BallSpeedY>0 And SurfaceOver() = True Then $BallSpeedY=0 $SurfaceCount=0 $BallPosY_0=$BallPosY EndIf If SurfaceUnder() Then $SurfaceCount=0 $BallSpeedY=0 $BallPosY_0=$BallPosY If Not $JumpSoon=True Then Return Else StartJump() EndIf EndIf $SurfaceCount+=1 $Jump=False $BallPosY=$BallPosY_0-($BallSpeedY*$SurfaceCount+1/2*-9.81*$SurfaceCount^2)*0.01 EndFunc Func QualityCheck() $QualityCount+=1 If $QualityCount=$QualityFPS Then $QualitySleep+=(1000-TimerDiff($QualityTimer))/$QualityFPS*100 $QualityCount=0 $QualityTimer=TimerInit() EndIf EndFunc Func USleep($iUsec, $hDLL = "ntdll.dll") Local $hStruct = DllStructCreate("int64") DllStructSetData($hStruct, 1, -1 * ($iUsec * 10)) DllCall($hDLL, "dword", "ZwDelayExecution", "int", 0, "ptr", DllStructGetPtr($hStruct)) EndFunc Func Terminate() _GDIPlus_BrushDispose($SolidBrush) _GDIPlus_BrushDispose($GDI_BRUSH_BALL) _GDIPlus_GraphicsDispose($GDI_GRAPHICS) _GDIPlus_ImageDispose($GDI_BITMAP) _GDIPlus_Shutdown() Exit EndFunc Edit: Current progress: #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Add_Constants=n #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <WindowsConstants.au3> #Include <GuiconstantsEx.au3> #Include <GDIPlus.au3> #include <WinAPIGdi.au3> #include <Screencapture.au3> #Include <ButtonConstants.au3> #include <File.au3> #include <GuiConstants.au3> #Include <Crypt.au3> HotKeySet("{ESC}", "Terminate") #Region Gui $PictureDir=@ScriptDir & "\JuegoData\" $WinWidth=500 $WinHeight=400 $hGUI=GUICreate("", $WinWidth, $WinHeight, -1, -1, $WS_POPUPWINDOW) GUISetState() Dim $Button[17] #EndRegion #Region Graphics $GDI_QUALITY=2 _GDIPlus_Startup() $GDI_GRAPHICS=_GDIPlus_GraphicsCreateFromHWND($hGUI) $GDI_BITMAP=_GDIPlus_BitmapCreateFromGraphics($WinWidth, $WinHeight, $GDI_GRAPHICS) $GDI_BACKBUFFER=_GDIPlus_ImageGetGraphicsContext($GDI_BITMAP) _GDIPlus_GraphicsSetSmoothingMode($GDI_BACKBUFFER, $GDI_QUALITY) _GDIPlus_GraphicsClear($GDI_BACKBUFFER) $GDI_BRUSH_BALL=_GDIPlus_BrushCreateSolid() #EndRegion #Region GraphicObjects Dim $Obj[1][14] Dim $Text[1][5] $Text_Num=0 $Obj_Num=0 Dim $Obj_DirectionX[1] Dim $Obj_DirectionY[1] Dim $SolidBrush[20] $SolidBrush[0]=_GDIPlus_BrushCreateSolid() $SolidBrush[1]=_GDIPlus_BrushCreateSolid(0xFF00FF00) $SolidBrush[2]=_GDIPlus_BrushCreateSolid(0xFFFF0000) $SolidBrush[3]=_GDIPlus_BrushCreateSolid(0xFF00FFFF) $SolidBrush[4]=_GDIPlus_BrushCreateSolid(0xFFddad19) $SolidBrush[5]=_GDIPlus_BrushCreateSolid(0xFF004400) $SolidBrush[11]=_GDIPlus_BrushCreateSolid(0xFFFF9900) $SolidBrush[12]=_GDIPlus_BrushCreateSolid(0xFF00FFFF) $SolidBrush[13]=_GDIPlus_BrushCreateSolid(0xFF0000FF) $SolidBrush[14]=_GDIPlus_BrushCreateSolid(0xFF734021) Dim $VanishBrush[1] Dim $EpicBrush[3] $Brush=1 $EpicBrush[0]=_GDIPlus_BrushCreateSolid(0xFFc03430) $EpicBrush[1]=_GDIPlus_BrushCreateSolid(0xFFf8cf46) $EpicBrush[2]=_GDIPlus_BrushCreateSolid(0xFF367341) #EndRegion #Region GameVars Dim $FileLineData[0] $TakeScreenshot=False $GoToMenu=False $WinActive=True Dim $Vanish[1] $BrownStopCount=0 $BrownStop=False $BallDirection=1 $BallWidth=20 $BallHeight=20 $BallSpeed=1 $BallSpeedY=0 $BallPosX_0=0 $BallPosX=$BallPosX_0 $BallPosY_Start=$WinHeight-$BallHeight $BallPosY_0=375 $BallPosY=$BallPosY_0 $SurfaceCount=0 $Jump=False $JumpHeight=350 $JumpSoon=False $JumpSoonTimer=TimerInit() $IsSqueezed=0 $SurfaceMove=0 $Level=1 $BallPosYDiff=0 $LastBallPosY=$BallPosY $ActivePowerup=0 $ExtraJumpActive=0 $TeleTimer=TimerInit() Dim $VanishTimer[1] #EndRegion Menu() #Region Quality $QualityTimer=TimerInit() $QualityCount=0 $QualityFPS=60 $QualitySleep=2000 $USleepTimer=TimerInit() #EndRegion While 1 CheckActive() GetNewBallPos() _GDIPlus_GraphicsClear($GDI_BACKBUFFER, 0xFFFFFFFF) CheckVanish() DrawText() DrawObjects() MoveBall() _GDIPlus_GraphicsDrawImageRect($GDI_GRAPHICS, $GDI_BITMAP, 0, 0, $WinWidth, $WinHeight) If $TakeScreenshot=True Then TakeSnapShot() Gravity() QualityCheck() $ScriptPos=0 If $GoToMenu=True Then GoToMenu() USleep($QualitySleep) $ScriptPos=1 WEnd ;================================================================================= ;============================== OBJECT DESCRIPTION =============================== ;==============================--------------------=============================== ;============ Solid( Type, X, Y, [Width, Height, X2, Y2, Speed) ================== ;==============================--------------------=============================== ;============================== TYPES ============================== ;============================== 0 = Black Solid ============================== ;============================== 1 = Green Goal ============================== ;============================== 2 = Red Fail ============================== ;============================== 3 = Cyan Lock ============================== ;============================== 4 = Gold Sticky ============================== ;============================== 5 = Green Vanish ============================== ;============================== 11 = Extra Jump ============================== ;============================== 12 = Cyan Key ============================== ;============================== 13 = Blue Teleport ============================== ;============================== 14 = Brown Stop ============================== ;================================================================================= Func LevelFromTxt($_Level) $Level=$_Level $FileDir=@ScriptDir & "\JuegoData\Level" & $_Level & ".txt" $FileLines=_FileCountLines($FileDir) $FileOpen=FileOpen($FileDir) For $1=1 To $FileLines $FileData=FileReadLine($FileOpen, $1) StringReplace($FileData, ",", ",") $FileDataLen=@extended If StringLeft($FileData, 5)="Solid" Then $FileMode=1 If StringLeft($FileData, 4)="Text" Then $FileMode=0 $FileData=StringTrimLeft($FileData, 5+$FileMode) ReDim $FileLineData[0] ReDim $FileLineData[9] For $2=0 To $FileDataLen $FileLen=StringInStr($FileData, ",") $FileLineData[$2]=StringLeft($FileData, $FileLen-1) $FileData=StringTrimLeft($FileData, $FileLen) Next $FileLineData[$FileDataLen]=StringTrimRight($FileData, 1) If $FileMode=1 Then If $FileLineData[3]="" Then $FileLineData[3]=25 If $FileLineData[4]="" Then $FileLineData[4]=25 If $FileLineData[5]="" Then $FileLineData[5]=$FileLineData[1] If $FileLineData[6]="" Then $FileLineData[6]=$FileLineData[2] If $FileLineData[7]="" Then $FileLineData[7]=100 If $FileLineData[8]="" Then $FileLineData[8]=$SolidBrush[$FileLineData[0]] Solid($FileLineData[0], $FileLineData[1], $FileLineData[2], $FileLineData[3], $FileLineData[4], $FileLineData[5], $FileLineData[6], $FileLineData[7], $FileLineData[8]) ElseIf $FileMode=0 Then If $FileLineData[3]="" Then $FileLineData[3]=10 If $FileLineData[4]="" Then $FileLineData[4]="Arial" Text($FileLineData[0], $FileLineData[1], $FileLineData[2], $FileLineData[3], $FileLineData[4]) EndIf Next EndFunc Func Level8() $Level=8 Solid(0, 100, -50, 25, 450) Solid(0, 225, -50, 25, 425) Solid(0, 350, -50, 25, 425) Solid(3, 225, 375, 25) Solid(3, 350, 375, 25) Solid(13, 0, 310, 25, 15, 75, 310, 400) Solid(13, 0, 200, 25, 15, 75, 200, 200) Solid(2, 0, 290, 100, 15) Solid(13, 0, 270, 25, 15, 75) Solid(13, 0, 100, 25, 15) Solid(0, 0, 150, 50, 10, 50, 150, 80) Solid(0, 0, 85, 25, 15) Solid(13, 80, 0, 15, 25, 80, 25) Solid(13, 130, 0, 15, 25) Solid(2, 50, 75, 50, 15) Solid(2, 125, 50) Solid(0, 150, 50) Solid(2, 200, 50) Solid(0, 200, 128) Solid(2, 170, 128, 30) Solid(0, 125, 75, 10, 90) Solid(0, 150, 200, 50) Solid(2, 200, 200) Solid(0, 150, 250) Solid(11, 200, 275, 20, 20) Solid(2, 150, 275) Solid(2, 125, 300, 100) Solid(13, 125, 285, 25, 15) Solid(13, 250, 275, 25, 15) Solid(5, 250, 325, 50) Solid(2, 250, 350, 100) Solid(0, 275, 265, 25, 32) Solid(2, 250, 250, 50, 15) Solid(5, 325, 275) Solid(5, 250, 225) Solid(5, 250, 170) Solid(5, 325, 180) Solid(5, 300, 100) Solid(5, 325, 115) Solid(5, 250, 50) Solid(13, 335, 0, 15, 25) Solid(13, 375, 0, 15, 25) Solid(2, 375, 75, 40) Solid(5, 415, 75) Solid(2, 440, 75, 60) Solid(14, 425, 0, 20, 20) Solid(11, 450, 25, 20, 20) Solid(5, 375, 190, 25, 20) Solid(2, 400, 190, 40, 20) Solid(0, 440, 100, 20, 110) Solid(11, 417, 125, 20, 20) Solid(14, 375, 105, 20, 20) Solid(14, 375, 160, 20, 20) Solid(2, 375, 275) Solid(11, 400, 275, 20, 20) Solid(11, 450, 250, 20, 20) Solid(11, 472, 200, 20, 20) Solid(14, 472, 150, 20, 20) Solid(12, 472, 100, 20, 20) Solid(11, 472, 310, 20, 20) Solid(2, 425, 350, 75) Solid(1, 150, 350, 50) EndFunc Func Level7() $Level=7 ;~ $BallPosX_0=0 ;~ $BallPosX=225 ;~ $BallPosY_0=0 ;~ $BallPosY=$BallPosY_0 ;~ $BallDirection=2 Solid(2, 0, 225, 75) Solid(2, 75, 225, 25, 50) Solid(0, 75, 275, 25, 75) Solid(1, 0, 250, 75) Solid(2, 150, 325, 100) Solid(2, 275, 375) Solid(2, 250, 300) Solid(2, 275, 275, 50) Solid(2, 325, 300) Solid(2, 350, 375) Solid(2, 350, 275, 50) Solid(2, 400, 275, 25, 50) Solid(2, 450, 375) Solid(0, 475, 375) Solid(11, 475, 350, 20, 20) Solid(2, 425, 250, 75) Solid(3, 0, 325, 75) Solid(0, 150, 300, 100) Solid(2,100, 225, 125) Solid(0, 300, 250) Solid(0, 400, 250) Solid(2, 400, 125, 25, 75) Solid(0, 475, 200) Solid(0, 425, 150) Solid(0, 375, 125) Solid(11, 325, 125, 20, 20) Solid(2, 250, 75, 25, 75) Solid(2, 200, 150, 25, 75) Solid(0, 150, 200, 50) Solid(11, 50, 200, 20, 20) Solid(11, 0, 125, 20, 20) Solid(11, 50, 75, 20, 20) Solid(11, 100, 75, 20, 20) Solid(11, 225, 75, 20, 20) Solid(11, 300, 50, 20, 20) Solid(11, 450, 50, 20, 20) Solid(11, 450, 0, 20, 20) Solid(12, 475, 0, 20, 20) Solid(11, 400, 0, 20, 20) EndFunc Func Level6() $Level=6 Solid(0, 100, 100, 25, 300) Solid(0, 75, 375) Solid(0, 0, 325) Solid(0, 50, 275) Solid(0, 50, 200) Solid(0, 0, 225) Solid(0, 50, 140) Solid(0, 50, 75, 75) Solid(0, 0, 75) Solid(2, 75, 0, 25, 75) Solid(13, 55, 25, 15, 25) Solid(13, 105, 25, 15, 25) Solid(0, 150, -25, 25, 375) Solid(0, 300, 50, 25, 350) Solid(4, 225, 300, 75, 25, 225, 400, 400) Solid(0, 175, 200, 50, 25, 175, 300, 200) Solid(0, 225, 225, 75) Solid(0, 175, 100, 50, 25, 175, 200, 200) Solid(0, 225, 50, 75, 25, 225, 125, 400) Solid(0, 325, 50, 150) Solid(2, 350, 25, 25, 25, 425, 25, 200) Solid(0, 375, 175, 75) Solid(4, 450, 175, 50) Solid(2, 325, 75, 25, 25, 425) Solid(2, 375, 150, 25, 25, 400) Solid(0, 450, 75, 25, 50) Solid(0, 325, 225, 50, 50) Solid(0, 375, 250, 50) Solid(4, 425, 250) Solid(0, 450, 250, 50) Solid(13, 425, 200, 25, 15) Solid(13, 325, 275, 25, 15, 475) Solid(2, 325, 385, 175, 15) Solid(1, 325, 365, 50, 15, 450, 365, 200) EndFunc Func Level5() $Level=5 Solid(2, 100, 375) Solid(2, 225, 375) Solid(0, 250, 375, 50) Solid(2, 300, 375, 50) Solid(0, 350, 375) Solid(2, 375, 375) Solid(0, 400, 350, 100, 50) Solid(0, 450, 300, 25) Solid(0, 350, 250, 50) Solid(11, 363, 225, 20, 20) Solid(2, 300, 250, 50) Solid(0, 250, 275, 50) Solid(2, 175, 250, 75) Solid(2, 175, 225, 50) Solid(0, 125, 250, 50) Solid(2, 100, 100, 25, 100) Solid(11, 125, 225, 20, 20) Solid(11, 25, 225, 20, 20) Solid(11, 25, 175, 20, 20) Solid(11, 50, 125, 20, 20) Solid(11, 50, 75, 20, 20) Solid(0, 175, 100, 50) Solid(11, 300, 100, 20, 20) Solid(11, 375, 100, 20, 20) Solid(11, 425, 75, 20, 20) Solid(1, 475, 50) EndFunc Func Level4() $Level=4 Solid(0, 0, 400, 500) Solid(0, 125, 375, 125) Solid(0, 200, 350, 50, 25) Solid(0, 300, 325, 50, 50) Solid(0, 375, 325, 25, 50) Solid(0, 425, 300, 75, 50) Solid(0, 300, 225, 150, 25) Solid(0, 450, 250) Solid(0, 225, 250) Solid(0, 150, 200) Solid(0, 0, 300, 100) Solid(0, 50, 150, 25, 100) Solid(0, 25, 250) Solid(0, 0, 200) Solid(0, 425, 175, 75) Solid(0, 425, 125) Solid(0, 350, 125, 50) Solid(0, 275, 125) Solid(0, 150, 100, 75) Solid(0, 0, 100) Solid(0, 50, 50) Solid(0, 100, 0, 50) Solid(0, 150, 25, 75) Solid(0, 275, 25, 50) Solid(0, 375, 25, 125) Solid(1, 475, 0) EndFunc Func Level3() $Level=3 Text("Blocks can move!", 25, 300) Solid(4, 100, 375, 100) Solid(2, 200, 375, 175) Solid(0, 200, 350, 75, 25, 300, 350, 200) Solid(0, 375, 175, 125, 25, 375, 375, 200) Solid(0, 275, 175, 100) Solid(3, 75, 175, 200) Solid(0, 0, 175, 75) Solid(12, 0, 150, 20, 20) Solid(0, 100, 225, 75) Solid(1, 225, 200, 50) EndFunc Func Level2() $Level=2 Solid(0, 50, 375, 50) Solid(0, 125, 325, 100, 50) Solid(0, 250, 325, 100, 50) Solid(0, 400, 325, 75, 50) Solid(0, 0, 275, 100) Solid(0, 150, 225, 50) Solid(0, 250, 175, 75) Solid(0, 400, 200, 75) Solid(1, 475, 200) Text("Hit enter to restart. Hit esc to exit.", 300, 0, 8) EndFunc Func Level1() $Level=1 Solid(0, 100, 375, 100) Solid(2, 200, 375) Solid(0, 225, 375, 75) Solid(4, 300, 375, 125) Solid(13, 425, 385, 75, 15) Solid(13, 0, 125, 75, 15) Solid(0, 0, 250, 175) Solid(11, 100, 225, 20, 20) Solid(2, 175, 250, 75) Solid(0, 250, 250, 175) Solid(12, 320, 225, 20, 20) Solid(3, 375, 125, 50, 125) Solid(13, 425, 255, 75, 15) Solid(13, 0, 0, 75, 15) Solid(0, 0, 100, 125) Solid(5, 125, 100) Solid(5, 150, 100) Solid(5, 175, 100) Solid(5, 200, 100) Solid(0, 225, 100, 275) Solid(14, 300, 75, 20, 20) Solid(1, 450, 50, 50, 50) Text("Press up to jump", 0, 325, 8) Text("Avoid red", 180, 325, 8) Text("Sticky", 335, 325, 8) Text("Teleport", 435, 325, 8) Text("Jump in the air! Hit space to use", 15, 200, 8) Text("Lock and key", 285, 200, 8) Text("These vanish!", 130, 50, 8) Text("Use to pause moving", 240, 50, 8) Text("Hit to win!", 435, 20, 8) EndFunc Func Solid($_SolidType, $_SolidPosX, $_SolidPosY, $_SolidWidth=25, $_SolidHeight=25, $_SolidPosX_2=$_SolidPosX, $_SolidPosY_2=$_SolidPosY, $_SolidSpeed=100, $_SolidBrush=$SolidBrush[$_SolidType]) ReDim $Obj[$Obj_Num+1][14] ReDim $VanishTimer[$Obj_Num+1] ReDim $VanishBrush[$Obj_Num+1] ReDim $Vanish[$Obj_Num+1] $Obj[$Obj_Num][0]=$_SolidPosX $Obj[$Obj_Num][1]=$_SolidPosY $Obj[$Obj_Num][2]=$_SolidWidth $Obj[$Obj_Num][3]=$_SolidHeight $Obj[$Obj_Num][4]=$_SolidPosX_2 $Obj[$Obj_Num][5]=$_SolidPosY_2 $Obj[$Obj_Num][6]=Sqrt(($_SolidPosX_2-$_SolidPosX)^2+($_SolidPosY_2-$_SolidPosY)^2)/$_SolidSpeed If $_SolidPosX_2<>$_SolidPosX Then $Obj[$Obj_Num][7]=1 If $_SolidPosY_2<>$_SolidPosY Then $Obj[$Obj_Num][8]=1 If $_SolidPosX_2<>$_SolidPosX Then $Obj[$Obj_Num][9]=$_SolidPosX If $_SolidPosY_2<>$_SolidPosY Then $Obj[$Obj_Num][10]=$_SolidPosY $Obj[$Obj_Num][11]=$_SolidBrush $Obj[$Obj_Num][12]=$_SolidType $Obj[$Obj_Num][13]=1 If $_SolidType=5 Then $VanishBrush[$Obj_Num]=_GDIPlus_BrushCreateSolid(0xFF004400) If $_SolidType=5 Then $Vanish[$Obj_Num]=99 ReDim $Obj_DirectionX[$Obj_Num+1] ReDim $Obj_DirectionY[$Obj_Num+1] $Obj_DirectionX[$Obj_Num]=1 $Obj_DirectionY[$Obj_Num]=1 $Obj_Num+=1 EndFunc Func Text($_TextData, $_TextPosX, $_TextPosY, $_TextSize=10, $_TextFont="Arial") ReDim $Text[$Text_Num+1][5] $Text[$Text_Num][0]=$_TextData $Text[$Text_Num][1]=$_TextPosX $Text[$Text_Num][2]=$_TextPosY $Text[$Text_Num][3]=$_TextSize $Text[$Text_Num][4]=$_TextFont $Text_Num+=1 EndFunc Func DrawText() For $1=0 To $Text_Num-1 _GDIPlus_GraphicsDrawString($GDI_BACKBUFFER, $Text[$1][0], $Text[$1][1], $Text[$1][2], $Text[$1][4], $Text[$1][3]) Next EndFunc Func DrawObjects() For $1=0 To $Obj_Num-1 If $Obj[$1][7]=1 Then ;;;Turn Object Vertically $Obj[$1][0]+=$Obj[$1][6]*$Obj_DirectionX[$1] If $Obj[$1][0]=$Obj[$1][4] Then $Obj_DirectionX[$1]*=-1 If $Obj[$1][0]=$Obj[$1][9] Then $Obj_DirectionX[$1]*=-1 EndIf If $Obj[$1][8]=1 Then ;;;Turn Object Horisontally $Obj[$1][1]+=$Obj[$1][6]*$Obj_DirectionY[$1] If $Obj[$1][1]=$Obj[$1][5] Then $Obj_DirectionY[$1]*=-1 If $Obj[$1][1]=$Obj[$1][10] Then $Obj_DirectionY[$1]*=-1 EndIf If $Obj[$1][12]>10 Then If $Obj[$1][13]<>0 Then _GDIPlus_GraphicsFillEllipse($GDI_BACKBUFFER, $Obj[$1][0], $Obj[$1][1], $Obj[$1][2], $Obj[$1][3], $Obj[$1][11]) Else If $Obj[$1][13]<>0 Then _GDIPlus_GraphicsFillRect($GDI_BACKBUFFER, $Obj[$1][0], $Obj[$1][1], $Obj[$1][2], $Obj[$1][3], $Obj[$1][11]) EndIf Next EndFunc Func GetNewBallPos() If $BrownStop=True Then ;;;Brown Stop $BrownStopCount+=1 If $BrownStopCount>50 Then $BrownStop=False Return EndIf $IsSqueezed=0 If SurfaceRight() Then $BallDirection=2 If SurfaceLeft() Then $BallDirection=1 If $IsSqueezed=2 Then LoseGame() Switch $BallDirection Case 1 $BallPosX+=$BallSpeed Case 2 $BallPosX-=$BallSpeed EndSwitch EndFunc Func CheckVanish() For $1=0 To $Obj_Num-1 If $Obj[$1][12]=5 Then If $Obj[$1][13]=2 Then $Vanish[$1]-=2 _GDIPlus_BrushSetSolidColor($VanishBrush[$1], '0x' & $Vanish[$1] & '004400') $Obj[$1][11]=$VanishBrush[$1] If $Vanish[$1]<10 Then $Obj[$1][13]=0 $Vanish[$1]=99 $VanishTimer[$1]=TimerInit() EndIf ElseIf $Obj[$1][13]=0 And TimerDiff($VanishTimer[$1])>2000 Then $VanishTimer[$1]=TimerInit() If PointInSquare($BallPosX+$BallWidth, $BallPosY, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3], -2, 1, 0) = False Then If PointInSquare($BallPosX+$BallWidth, $BallPosY+$BallHeight, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3], -2, 1, 0) = False Then If PointInSquare($BallPosX, $BallPosY+$BallHeight, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3], -2, 1, 0) = False Then If PointInSquare($BallPosX, $BallPosY, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3], -2, 1, 0) = False Then _GDIPlus_BrushSetSolidColor($VanishBrush[$1], 0xFF004400) $Obj[$1][13]=1 $Obj[$1][11]=$SolidBrush[5] EndIf EndIf EndIf EndIf EndIf EndIf Next EndFunc Func MoveBall() Switch $Brush Case 1 _GDIPlus_GraphicsFillEllipse($GDI_BACKBUFFER, $BallPosX, $BallPosY, $BallWidth, $BallHeight, $GDI_BRUSH_BALL) Case 2 _GDIPlus_GraphicsFillEllipse($GDI_BACKBUFFER, $BallPosX, $BallPosY, $BallWidth, $BallHeight, $EpicBrush[0]) _GDIPlus_GraphicsFillEllipse($GDI_BACKBUFFER, $BallPosX+$BallWidth/8, $BallPosY+$BallHeight/8, $BallWidth-$BallWidth/4, $BallHeight-$BallHeight/4, $EpicBrush[1]) _GDIPlus_GraphicsFillEllipse($GDI_BACKBUFFER, $BallPosX+$BallWidth/4, $BallPosY+$BallHeight/4, $BallWidth-$BallWidth/2, $BallHeight-$BallHeight/2, $EpicBrush[2]) EndSwitch EndFunc Func WinGame() $Level+=1 $CryptKey="Juego" If $Level<9 And _Crypt_DecryptData(IniRead(@ScriptDir & "\JuegoData\CL.ini", "1", "1", ""), "Juego", $CALG_AES_256)<$Level Then IniWrite(@ScriptDir & "\JuegoData\CL.ini", "1", "1", _Crypt_EncryptData($Level, $CryptKey, $CALG_AES_256)) $ActivePowerup=0 $ExtraJumpActive=1 _GDIPlus_BrushSetSolidColor($GDI_BRUSH_BALL, 0xFF000000) $Jump=0 $JumpSoon=0 $SurfaceCount=0 $BallPosY=$BallPosY_Start $BallPosX=$BallPosX_0 ReDim $Obj[0][0] ReDim $Obj[1][14] ReDim $Text[0][0] ReDim $Text[1][5] $Obj_Num=0 $Text_Num=0 If $Level<9 Then RunLevel($Level) Else GoToMenu() EndIf $QualityCount=0 $QualityTimer=TimerInit() EndFunc Func LoseGame() For $1=1 To $Obj_Num-1 $Obj[$1][13]=1 $Vanish[$1]=99 _GDIPlus_BrushSetSolidColor($VanishBrush[$1], 0xFF004400) Next $ActivePowerup=0 $ExtraJumpActive=1 $Jump=0 _GDIPlus_BrushSetSolidColor($GDI_BRUSH_BALL, 0xFF000000) $BallPosY=$BallPosY_Start $BallPosX=$BallPosX_0 $SurfaceCount=0 $QualityCount=0 $QualityTimer=TimerInit() EndFunc Func SurfaceRight() If $BallPosX>=$WinWidth-$BallWidth Then Return True For $1=0 To $Obj_Num-1 If PointInSquare($BallPosX+$BallWidth, $BallPosY+$BallHeight/2, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3], $Obj[$1][12], $Obj[$1][13], $1) Then If CheckForPowerup($1, $Obj[$1][12], $Obj[$1][13])= True Then Return False If $Obj[$1][7]=1 And $Obj[$1][6]>$BallSpeed Then $BallPosX=$Obj[$1][0]-$BallWidth If $Obj[$1][12]=2 Then LoseGame() If $Obj[$1][12]=1 Then WinGame() $IsSqueezed+=1 Return True EndIf Next EndFunc Func SurfaceLeft() If $BallPosX<=$BallPosX_0 Then Return True For $1=0 To $Obj_Num-1 If PointInSquare($BallPosX, $BallPosY+$BallHeight/2, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3], $Obj[$1][12], $Obj[$1][13], $1) Then If CheckForPowerup($1, $Obj[$1][12], $Obj[$1][13])= True Then Return False If $Obj[$1][7]=1 And $Obj[$1][6]>$BallSpeed Then $BallPosX=$Obj[$1][0]+$Obj[$1][2] If $Obj[$1][12]=2 Then LoseGame() If $Obj[$1][12]=1 Then WinGame() $IsSqueezed+=1 Return True EndIf Next EndFunc Func SurfaceUnder() If $ExtraJumpActive=1 Or $ExtraJumpActive=2 Then If $ExtraJumpActive=2 Then $ExtraJumpActive=-1 $ExtraJumpActive+=1 Return True EndIf For $1=0 To $Obj_Num-1 If PointInSquare($BallPosX+$BallWidth-3, $BallPosY+$BallHeight+1, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3], $Obj[$1][12], $Obj[$1][13], $1) Or PointInSquare($BallPosX+3, $BallPosY+$BallHeight+1, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3], $Obj[$1][12], $Obj[$1][13], $1) Then If CheckForPowerup($1, $Obj[$1][12], $Obj[$1][13])= True Then Return False If $Obj[$1][12]=4 Then ;;;Gold Sticky If $BallDirection=1 Then $BallPosX-=0.75 If $BallDirection=2 Then $BallPosX+=0.75 EndIf $BallPosY=$Obj[$1][1]-$BallHeight $BallPosY_0=$BallPosY If $Obj[$1][12]=2 Then LoseGame() If $Obj[$1][12]=1 Then WinGame() Return True EndIf Next If $BallPosY+$BallHeight>=$WinHeight Then $BallPosY=$WinHeight-$BallHeight $BallPosY_0=$WinHeight-$BallHeight Return True EndIf EndFunc Func SurfaceOver() For $1=0 To $Obj_Num-1 If PointInSquare($BallPosX+$BallWidth-5, $BallPosY, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3], $Obj[$1][12], $Obj[$1][13], $1) Or PointInSquare($BallPosX+5, $BallPosY, $Obj[$1][0], $Obj[$1][1], $Obj[$1][0]+$Obj[$1][2], $Obj[$1][1]+$Obj[$1][3], $Obj[$1][12], $Obj[$1][13], $1) Then If CheckForPowerup($1, $Obj[$1][12], $Obj[$1][13])= True Then Return False $SurfaceMove=0 If $Obj[$1][12]=2 Then LoseGame() If $Obj[$1][8]=1 Then $BallPosY=$Obj[$1][1]+$Obj[$1][3] $SurfaceMove=1 $SurfaceCount=5 ElseIf $BallPosY<$Obj[$1][1]+$Obj[$1][3]-2 Then $BallPosY=$Obj[$1][1]+$Obj[$1][3] EndIf If $Obj[$1][12]=1 Then WinGame() Return True EndIf Next EndFunc Func CheckForPowerup($__PowerupObjNum, $__PowerupObj, $__PowerupActive) If $__PowerupObj>10 Then If $__PowerupActive=0 Then Return True If $__PowerupObj<>13 Then $Obj[$__PowerupObjNum][13]=0 ActivatePowerup($__PowerupObj, $__PowerupObjNum) Return True EndIf Return False EndFunc Func ActivatePowerup($_PowerupType, $_PowerupObjNum) Switch $_PowerupType Case 11;;Superjump _GDIPlus_BrushSetSolidColor($GDI_BRUSH_BALL, 0xFFFF9900) Case 12;;Cyan Key For $1=0 To $Obj_Num-1 If $Obj[$1][12]=3 And $Obj[$1][13]=1 Then $Obj[$1][13]=0 Next $_PowerupType=$ActivePowerup Case 13;;Teleport If TimerDiff($TeleTimer)>500 Then $TeleLink=-1 If $Obj[$_PowerupObjNum-1][12]<>13 Then $TeleLink=1 $TeleDiffY=$BallPosY-$BallPosY_0 $BallPosX=$Obj[$_PowerupObjNum+$TeleLink][0]+$Obj[$_PowerupObjNum+$TeleLink][2]/2-$BallWidth/2 $BallPosY=$Obj[$_PowerupObjNum+$TeleLink][1]+$Obj[$_PowerupObjNum+$TeleLink][3]/2-$BallHeight/2 $BallPosY_0=$BallPosY-$TeleDiffY $TeleTimer=TimerInit() EndIf $_PowerupType=$ActivePowerup Case 14 _GDIPlus_BrushSetSolidColor($GDI_BRUSH_BALL, 0xFF734021) EndSwitch $ActivePowerup=$_PowerupType EndFunc Func SpendPowerup() Switch $ActivePowerup Case 0 Return Case 11 ;;;EXTRA JUMP $ActivePowerup=0 $ExtraJumpActive=1 $SurfaceCount=0 StartJump() Case 14 ;;;Brown Stop $BrownStop=True $BrownStopCount=0 EndSwitch _GDIPlus_BrushSetSolidColor($GDI_BRUSH_BALL, 0xFF000000) EndFunc Func StartJump() If SurfaceUnder() Then $Jump=True $BallPosY_0=$BallPosY ;~ $BallSpeedY=$JumpHeight $JumpSoon=False Else $JumpSoonTimer=TimerInit() $JumpSoon=True EndIf EndFunc Func Gravity() If SurfaceOver() = True Then $BallSpeedY=0 If $SurfaceMove=0 Then $SurfaceCount=2 $BallPosY_0=$BallPosY EndIf If SurfaceUnder() Then $SurfaceCount=0 $BallSpeedY=0 $BallPosY_0=$BallPosY If $JumpSoon=False And $Jump=False Then Return Else If $JumpSoon=True And TimerDiff($JumpSoonTimer)>150 Then Return $BallSpeedY=$JumpHeight StartJump() $Jump=False EndIf EndIf $SurfaceCount+=1 $BallPosY=$BallPosY_0-($BallSpeedY*$SurfaceCount+1/2*-9.81*$SurfaceCount^2)*0.01 EndFunc Func QualityCheck() $QualityCount+=1 If $QualityCount=$QualityFPS Then $QualitySleep+=(950-TimerDiff($QualityTimer))/$QualityFPS*100 $QualityCount=0 $QualityTimer=TimerInit() EndIf EndFunc Func USleep($iUsec, $hDLL = "ntdll.dll") $iUsec-=TimerDiff($USleepTimer)*100 If $iUsec<0 Then $iUsec=0 Local $hStruct = DllStructCreate("int64") DllStructSetData($hStruct, 1, -1 * ($iUsec * 10)) DllCall($hDLL, "dword", "ZwDelayExecution", "int", 0, "ptr", DllStructGetPtr($hStruct)) $USleepTimer=TimerInit() EndFunc Func PointInSquare($_PointX, $_PointY, $_SquareTopX, $_SquareTopY, $_SquareBottomX, $_SquareBottomY, $_SquareType, $_SquareActive, $_SquareObjNum) If $_SquareActive=0 Then Return False $_SquareDiff=0 If $_SquareType=2 Then $_SquareDiff=2 If $_SquareType>10 Then $_SquareDiff=2 If $_PointX<$_SquareTopX+$_SquareDiff Then Return False If $_PointX>$_SquareBottomX-$_SquareDiff Then Return False If $_PointY<$_SquareTopY+$_SquareDiff Then Return False If $_PointY>$_SquareBottomY-$_SquareDiff Then Return False If $_SquareType = 5 Then $Obj[$_SquareObjNum][13]=2 Return True EndFunc Func TakeSnapShot() If Not FileExists($PictureDir) Then DirCreate($PictureDir) _ScreenCapture_CaptureWnd($PictureDir & "\Temp.bmp", $hGUI, 0, 0, -1, -1, False) $___SnapShotImage = _GDIPlus_ImageLoadFromFile($PictureDir & "\Temp.bmp") $___GC = _GDIPlus_ImageGetGraphicsContext($___SnapShotImage) $___NewBmp = _GDIPlus_BitmapCreateFromGraphics(115,87,$___GC) $___newGC = _GDIPlus_ImageGetGraphicsContext($___NewBmp) _GDIPlus_GraphicsDrawImageRect($___newGC,$___SnapShotImage,0,0,115,87) _GDIPlus_ImageSaveToFile($___newBmp,$PictureDir & "\Level" & $Level & ".bmp") _GDIPlus_GraphicsDispose($___GC) _GDIPlus_GraphicsDispose($___newGC) _GDIPlus_BitmapDispose($___newBmp) _GDIPlus_ImageDispose($___SnapShotImage) FileDelete($PictureDir & "\Temp.bmp") $TakeScreenshot=False EndFunc Func Menu() $Level=0 $ButtonPosX=2 $ButtonPosY=2 For $1=1 To 16 $Button[$1]=GUICtrlCreateButton("", $ButtonPosX, $ButtonPosY, 120, 95, $BS_BITMAP) $ButtonPosX+=125 If $ButtonPosX>500 Then $ButtonPosX=2 $ButtonPosY+=100 EndIf GUICtrlSetImage($Button[$1], $PictureDir & "\Level" & $1 & ".bmp") If _Crypt_DecryptData(IniRead(@ScriptDir & "\JuegoData\CL.ini", "1", "1", ""), "Juego", $CALG_AES_256)<$1 And $1<9 And $1>1 Then GUICtrlSetState($Button[$1], 128) Next While 1 $msg=GUIGetMsg() For $1=1 To 16 Switch $msg ;~ Case $Button[1] ;~ DeleteMenu() ;~ Level1() ;~ Return Case $Button[$1] DeleteMenu() RunLevel($1) Return EndSwitch Next WEnd EndFunc Func RunLevel($_RunLevel) HotKeySet("{UP}", "StartJump") HotKeySet("{SPACE}", "SpendPowerup") HotKeySet("{PRINTSCREEN}", "TakeSnapShot") HotKeySet("{ENTER}", "LoseGame") Switch $_RunLevel Case 1 Level1() Case 2 Level2() Case 3 Level3() Case 4 Level4() Case 5 Level5() Case 6 Level6() Case 7 Level7() Case 8 Level8() Case 9 To 16 $Level=-1 LevelFromTxt($_RunLevel) EndSwitch $TakeScreenshot=True EndFunc Func DeleteMenu() For $1=1 To 16 GUICtrlDelete($Button[$1]) Next $QualityCount=0 $QualityTimer=TimerInit() EndFunc Func GoToMenu() If $ScriptPos=1 Then $GoToMenu=True Return EndIf $GoToMenu=False HotKeySet("{UP}") HotKeySet("{SPACE}") HotKeySet("{PRINTSCREEN}") HotKeySet("{ENTER}") _GDIPlus_GraphicsClear($GDI_BACKBUFFER, 0xFFFFFFFF) _GDIPlus_GraphicsDrawImageRect($GDI_GRAPHICS, $GDI_BITMAP, 0, 0, $WinWidth, $WinHeight) $ActivePowerup=0 $ExtraJumpActive=1 _GDIPlus_BrushSetSolidColor($GDI_BRUSH_BALL, 0xFF000000) $Jump=0 $JumpSoon=0 $SurfaceCount=0 $BallPosY=$BallPosY_Start $BallPosX=$BallPosX_0 ReDim $Obj[0][0] ReDim $Obj[1][14] ReDim $Text[0][0] ReDim $Text[1][5] $Obj_Num=0 $Text_Num=0 $QualityCount=0 $QualityTimer=TimerInit() Menu() EndFunc Func CheckActive() If WinActive($hGUI) Then If $WinActive=False Then HotKeySet("{UP}", "StartJump") HotKeySet("{SPACE}", "SpendPowerup") HotKeySet("{PRINTSCREEN}", "TakeSnapShot") HotKeySet("{ENTER}", "LoseGame") EndIf $WinActive=True Else If $WinActive=True Then HotKeySet("{UP}") HotKeySet("{SPACE}") HotKeySet("{PRINTSCREEN}") HotKeySet("{ENTER}") EndIf $WinActive=False EndIf EndFunc Func Terminate() If $Level<>0 Then GoToMenu() Return EndIf _GDIPlus_BrushDispose($SolidBrush[0]) _GDIPlus_BrushDispose($SolidBrush[1]) _GDIPlus_BrushDispose($SolidBrush[2]) _GDIPlus_BrushDispose($SolidBrush[3]) _GDIPlus_BrushDispose($SolidBrush[4]) _GDIPlus_BrushDispose($SolidBrush[5]) _GDIPlus_BrushDispose($SolidBrush[11]) _GDIPlus_BrushDispose($SolidBrush[12]) _GDIPlus_BrushDispose($SolidBrush[13]) _GDIPlus_BrushDispose($GDI_BRUSH_BALL) _GDIPlus_BrushDispose($VanishBrush) _GDIPlus_GraphicsDispose($GDI_GRAPHICS) _GDIPlus_ImageDispose($GDI_BITMAP) _GDIPlus_Shutdown() Exit EndFunc
  13. I'm having some difficulties with a game. It's kinda like CurveFever (Achtung Die Kurve), but I just want it for personal 1P usage. The problem is just that I can't figure out a way to check if the line is colliding with any point of where it has been before. I know there are lots of ways to do it, but I always end up with the game running slow because of bad methods such as searching for pixels etc. Any suggestions on a faster method? (You would probably have to test the code yourself to know what I'm saying if you want to help :/ ) #include <misc.au3> #include <GDIPlus.au3> HotKeySet("{ESC}", "Terminate") #Region Win $WinWidth=895 $WinHeight=895 $hGUI=GUICreate("", $WinWidth, $WinHeight, -1, -1) GUISetBkColor(0x000000, $hGUI) GUISetState() #EndRegion #Region GDIPLUS _GDIPlus_Startup() $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI) _GDIPlus_GraphicsSetSmoothingMode($hGraphic, $GDIP_SMOOTHINGMODE_HIGHQUALITY) $hPen = _GDIPlus_PenCreate(0x9900FF00, 5) $hPenBorder = _GDIPlus_PenCreate(0xFFFFFFFF, 5) _GDIPlus_GraphicsDrawRect($hGraphic, 0, 0, $WinWidth-1, $WinHeight-1, $hPenBorder) #EndRegion #Region Vars $Width=56 $SpeedTime=100 $Switch=1 $x=5 $y=5 $VektorX=0 $VektorY=Sqrt($Width^2-($VektorX^2)) $Hole_Count=1 $Hole_MakeHole=Random(10, 1000, 1) Global $SpeedTime _GDIPlus_GraphicsDrawEllipse($hGraphic, $x, $y, 2.4, 2.4, $hPen) #EndRegion Sleep(1000) $Timer=TimerInit() While 1 If _IsPressed(25) Then TurnLeft() EndIf If _IsPressed(27) Then TurnRight() EndIf $x+=$VektorX/30 $y+=$VektorY/30 DrawLine() While TimerDiff($Timer)<$SpeedTime/6 WEnd $Timer=TimerInit() WEnd Func DrawLine() ;~ $Hole_Count+=1 If $Hole_Count>$Hole_MakeHole Then If $Hole_Count>$Hole_MakeHole+15 Then $Hole_Count=0 $Hole_MakeHole=Random(10, 1000, 1) EndIf Else _GDIPlus_GraphicsDrawEllipse($hGraphic, $x, $y, 2.4, 2.4, $hPen) EndIf EndFunc Func TurnLeft() If $Switch>0 Then $VektorX+=(2.5*$VektorY*$Switch)/$Width+0.0005 If $Switch<0 Then $VektorX-=(2.5*$VektorY*$Switch)/$Width+0.0005 If $VektorX>=$Width Then $Switch*=-1 $VektorX=$Width EndIf If $VektorX<=-$Width Then $Switch*=-1 $VektorX=-$Width EndIf $VektorY=Sqrt($Width^2-($VektorX^2))*$Switch EndFunc Func TurnRight() If $Switch>0 Then $VektorX-=(2.5*$VektorY*$Switch)/$Width+0.0005 If $Switch<0 Then $VektorX+=(2.5*$VektorY*$Switch)/$Width+0.0005 If $VektorX>=$Width Then $Switch*=-1 $VektorX=$Width EndIf If $VektorX<=-$Width Then $Switch*=-1 $VektorX=-$Width EndIf $VektorY=Sqrt($Width^2-($VektorX^2))*$Switch EndFunc Func Terminate() _GDIPlus_GraphicsDispose($hGraphic) _GDIPlus_PenDispose($hPen) _GDIPlus_Shutdown() Exit EndFunc
  14. Thanks, got that working. But I got another problem... My antivirus program reacts because of something with iniwrite or iniread, at least I think that's the problem. Cause when I compile and run it with the things that have ;~ in front of it in the script now, it deleted the program, but when I compiled and ran it like it is now, it didn't... EDIT: I'm currently on my school computer, seems like they have locked the settings for my virusprogram, so can't really do much about it from there. Anything I can change in the script instead? #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Add_Constants=n #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <Misc.au3> FileInstall("C:\Users\elias-stokland\Documents\Autoit\Bad1.jpg", @ScriptDir & "\Bad1.jpg") FileInstall("C:\Users\elias-stokland\Documents\Autoit\Bad2.jpg", @ScriptDir & "\Bad2.jpg") FileInstall("C:\Users\elias-stokland\Documents\Autoit\Bad3.jpg", @ScriptDir & "\Bad3.jpg") FileInstall("C:\Users\elias-stokland\Documents\Autoit\Bad4.jpg", @ScriptDir & "\Bad4.jpg") Local $Timer=0, $CurrentState=0 $Gui=GUICreate("Spillet", 1200, 800) #region Stage 0 Local $HorizontalBad1x=-100 Local $HorizontalBad2x=1200 Local $HorizontalBad3x=-100 Local $HorizontalBad4x=1200 Local $HorizontalBad5x=-100 Local $HorizontalBad6x=1200 Local $HorizontalBad7x=-100 Local $HorizontalBad8x=1200 $HorizontalBad1=GUICtrlCreatePic(@ScriptDir & "\Bad2.jpg", -100, 0, 100, 100) $HorizontalBad2=GUICtrlCreatePic(@ScriptDir & "\Bad2.jpg", 1200, 100, 100, 100) $HorizontalBad3=GUICtrlCreatePic(@ScriptDir & "\Bad2.jpg", -100, 200, 100, 100) $HorizontalBad4=GUICtrlCreatePic(@ScriptDir & "\Bad2.jpg", 1200, 300, 100, 100) $HorizontalBad5=GUICtrlCreatePic(@ScriptDir & "\Bad2.jpg", -100, 400, 100, 100) $HorizontalBad6=GUICtrlCreatePic(@ScriptDir & "\Bad2.jpg", 1200, 500, 100, 100) $HorizontalBad7=GUICtrlCreatePic(@ScriptDir & "\Bad2.jpg", -100, 600, 100, 100) $HorizontalBad8=GUICtrlCreatePic(@ScriptDir & "\Bad2.jpg", 1200, 700, 100, 100) Local $VerticalBad1y=-100 Local $VerticalBad2y=800 Local $VerticalBad3y=-100 Local $VerticalBad4y=800 Local $VerticalBad5y=-100 Local $VerticalBad6y=800 Local $VerticalBad7y=-100 Local $VerticalBad8y=800 Local $VerticalBad9y=-100 Local $VerticalBad10y=800 Local $VerticalBad11y=-100 Local $VerticalBad12y=800 $VerticalBad1=GUICtrlCreatePic(@ScriptDir & "\Bad1.jpg", 0, -100, 100, 100) $VerticalBad2=GUICtrlCreatePic(@ScriptDir & "\Bad1.jpg", 0, 800, 100, 100) $VerticalBad3=GUICtrlCreatePic(@ScriptDir & "\Bad1.jpg", 0, -100, 100, 100) $VerticalBad4=GUICtrlCreatePic(@ScriptDir & "\Bad1.jpg", 0, 800, 100, 100) $VerticalBad5=GUICtrlCreatePic(@ScriptDir & "\Bad1.jpg", 0, -100, 100, 100) $VerticalBad6=GUICtrlCreatePic(@ScriptDir & "\Bad1.jpg", 0, 800, 100, 100) $VerticalBad7=GUICtrlCreatePic(@ScriptDir & "\Bad1.jpg", 0, -100, 100, 100) $VerticalBad8=GUICtrlCreatePic(@ScriptDir & "\Bad1.jpg", 0, 800, 100, 100) $VerticalBad9=GUICtrlCreatePic(@ScriptDir & "\Bad1.jpg", 0, -100, 100, 100) $VerticalBad10=GUICtrlCreatePic(@ScriptDir & "\Bad1.jpg", 0, 800, 100, 100) $VerticalBad11=GUICtrlCreatePic(@ScriptDir & "\Bad1.jpg", 0, -100, 100, 100) $VerticalBad12=GUICtrlCreatePic(@ScriptDir & "\Bad1.jpg", 0, 800, 100, 100) $PointLabel=GUICtrlCreateLabel("", 50, 330, 1150, 300) GUICtrlSetFont(-1, 35, 0, 0, "Comic Sans MS") GUICtrlSetState($PointLabel, $GUI_HIDE) $ContinueLabel=GUICtrlCreateLabel("Click to continue", 100, 700, 300, 50) GUICtrlSetFont(-1, 20, 0, 0, "Comic Sans MS") GUICtrlSetState($ContinueLabel, $GUI_HIDE) $Highscorelabel=GUICtrlCreateLabel("", 50, 0, 1150, 300) GUICtrlSetFont(-1, 25, 0, 0, "Comic Sans MS") GUICtrlSetState($Highscorelabel, $GUI_HIDE) #endregion Stage 0 #region Stage 1 $ResizeBads=0 $ResizeBads2=100 $ResizeBad1x=50 $ResizeBad1y=50 $ResizeBad2x=50 $ResizeBad2y=50 $ResizeBad3x=50 $ResizeBad3y=50 $ResizeBad4x=50 $ResizeBad4y=50 $ResizeBad5x=50 $ResizeBad5y=50 $ResizeBad6x=50 $ResizeBad6y=50 $ResizeBad7x=50 $ResizeBad7y=50 $ResizeBad8x=50 $ResizeBad8y=50 $ResizeBad9x=50 $ResizeBad9y=50 $ResizeBad10x=50 $ResizeBad10y=50 $ResizeBad11x=50 $ResizeBad11y=50 $ResizeBad12x=50 $ResizeBad12y=50 $ResizeBad13x=50 $ResizeBad13y=50 $ResizeBad14x=50 $ResizeBad14y=50 $ResizeBad15x=50 $ResizeBad15y=50 $ResizeBad16x=50 $ResizeBad16y=50 $ResizeBad17x=50 $ResizeBad17y=50 $ResizeBad18x=50 $ResizeBad18y=50 $ResizeBad19x=50 $ResizeBad19y=50 $ResizeBad20x=50 $ResizeBad20y=50 $ResizeBad21x=50 $ResizeBad21y=50 $ResizeBad22x=50 $ResizeBad22y=50 $ResizeBad23x=50 $ResizeBad23y=50 $ResizeBad24x=50 $ResizeBad24y=50 $ResizeBad25x=50 $ResizeBad25y=50 $ResizeBad26x=50 $ResizeBad26y=50 $ResizeBad27x=50 $ResizeBad27y=50 $ResizeBad28x=50 $ResizeBad28y=50 $ResizeBad29x=50 $ResizeBad29y=50 $ResizeBad30x=50 $ResizeBad30y=50 $ResizeBad31x=50 $ResizeBad31y=50 $ResizeBad32x=50 $ResizeBad32y=50 $ResizeBad33x=50 $ResizeBad33y=50 $ResizeBad34x=50 $ResizeBad34y=50 $ResizeBad35x=50 $ResizeBad35y=50 $ResizeBad36x=50 $ResizeBad36y=50 $ResizeBad37x=50 $ResizeBad37y=50 $ResizeBad38x=50 $ResizeBad38y=50 $ResizeBad39x=50 $ResizeBad39y=50 $ResizeBad40x=50 $ResizeBad40y=50 $Random1=0 $Random1b=0 $Random2=0 $Random2b=0 $Random3=0 $Random3b=0 $Random4=0 $Random4b=0 $Random5=0 $Random5b=0 $Random6=0 $Random6b=0 $Random7=0 $Random7b=0 $Random8=0 $Random8b=0 $Random9=0 $Random9b=0 $Random10=0 $Random10b=0 $Random11=0 $Random11b=0 $Random12=0 $Random12b=0 $Random13=0 $Random13b=0 $Random14=0 $Random14b=0 $Random15=0 $Random15b=0 $Random16=0 $Random16b=0 $Random17=0 $Random17b=0 $Random18=0 $Random18b=0 $Random19=0 $Random19b=0 $Random20=0 $Random20b=0 $Random21=0 $Random21b=0 $Random22=0 $Random22b=0 $Random23=0 $Random23b=0 $Random24=0 $Random24b=0 $Random25=0 $Random25b=0 $Random26=0 $Random26b=0 $Random27=0 $Random27b=0 $Random28=0 $Random28b=0 $Random29=0 $Random29b=0 $Random30=0 $Random30b=0 $Random31=0 $Random31b=0 $Random32=0 $Random32b=0 $Random33=0 $Random33b=0 $Random34=0 $Random34b=0 $Random35=0 $Random35b=0 $Random36=0 $Random36b=0 $Random37=0 $Random37b=0 $Random38=0 $Random38b=0 $Random39=0 $Random39b=0 $Random40=0 $Random40b=0 $1=1 $ResizeBad1_Direction=0 $ResizeBad2_Direction=0 $ResizeBad3_Direction=0 $ResizeBad4_Direction=0 $ResizeBad5_Direction=0 $ResizeBad6_Direction=0 $ResizeBad7_Direction=0 $ResizeBad8_Direction=0 $ResizeBad9_Direction=0 $ResizeBad10_Direction=0 $ResizeBad11_Direction=0 $ResizeBad12_Direction=0 $ResizeBad13_Direction=0 $ResizeBad14_Direction=0 $ResizeBad15_Direction=0 $ResizeBad16_Direction=0 $ResizeBad17_Direction=0 $ResizeBad18_Direction=0 $ResizeBad19_Direction=0 $ResizeBad20_Direction=0 $ResizeBad21_Direction=0 $ResizeBad22_Direction=0 $ResizeBad23_Direction=0 $ResizeBad24_Direction=0 $ResizeBad25_Direction=0 $ResizeBad26_Direction=0 $ResizeBad27_Direction=0 $ResizeBad28_Direction=0 $ResizeBad29_Direction=0 $ResizeBad30_Direction=0 $ResizeBad31_Direction=0 $ResizeBad32_Direction=0 $ResizeBad33_Direction=0 $ResizeBad34_Direction=0 $ResizeBad35_Direction=0 $ResizeBad36_Direction=0 $ResizeBad37_Direction=0 $ResizeBad38_Direction=0 $ResizeBad39_Direction=0 $ResizeBad40_Direction=0 $ResizeBad1Active=False $ResizeBad2Active=False $ResizeBad3Active=False $ResizeBad4Active=False $ResizeBad5Active=False $ResizeBad6Active=False $ResizeBad7Active=False $ResizeBad8Active=False $ResizeBad9Active=False $ResizeBad10Active=False $ResizeBad11Active=False $ResizeBad12Active=False $ResizeBad13Active=False $ResizeBad14Active=False $ResizeBad15Active=False $ResizeBad16Active=False $ResizeBad17Active=False $ResizeBad18Active=False $ResizeBad19Active=False $ResizeBad20Active=False $ResizeBad21Active=False $ResizeBad22Active=False $ResizeBad23Active=False $ResizeBad24Active=False $ResizeBad25Active=False $ResizeBad26Active=False $ResizeBad27Active=False $ResizeBad28Active=False $ResizeBad29Active=False $ResizeBad30Active=False $ResizeBad31Active=False $ResizeBad32Active=False $ResizeBad33Active=False $ResizeBad34Active=False $ResizeBad35Active=False $ResizeBad36Active=False $ResizeBad37Active=False $ResizeBad38Active=False $ResizeBad39Active=False $ResizeBad40Active=False $ResizeBad1=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad2=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad3=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad4=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad5=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad6=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad7=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad8=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad9=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad10=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad11=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad12=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad13=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad14=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad15=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad16=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad17=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad18=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad19=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad20=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad21=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad22=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad23=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad24=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad25=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad26=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad27=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad28=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad29=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad30=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad31=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad32=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad33=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad34=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad35=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad36=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad37=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad38=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad39=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) $ResizeBad40=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", 0, 0, 0, 0) GUICtrlSetState($ResizeBad1, $GUI_HIDE) GUICtrlSetState($ResizeBad2, $GUI_HIDE) GUICtrlSetState($ResizeBad3, $GUI_HIDE) GUICtrlSetState($ResizeBad4, $GUI_HIDE) GUICtrlSetState($ResizeBad5, $GUI_HIDE) GUICtrlSetState($ResizeBad6, $GUI_HIDE) GUICtrlSetState($ResizeBad7, $GUI_HIDE) GUICtrlSetState($ResizeBad8, $GUI_HIDE) GUICtrlSetState($ResizeBad9, $GUI_HIDE) GUICtrlSetState($ResizeBad10, $GUI_HIDE) GUICtrlSetState($ResizeBad11, $GUI_HIDE) GUICtrlSetState($ResizeBad12, $GUI_HIDE) GUICtrlSetState($ResizeBad13, $GUI_HIDE) GUICtrlSetState($ResizeBad14, $GUI_HIDE) GUICtrlSetState($ResizeBad15, $GUI_HIDE) GUICtrlSetState($ResizeBad16, $GUI_HIDE) GUICtrlSetState($ResizeBad17, $GUI_HIDE) GUICtrlSetState($ResizeBad18, $GUI_HIDE) GUICtrlSetState($ResizeBad19, $GUI_HIDE) GUICtrlSetState($ResizeBad20, $GUI_HIDE) GUICtrlSetState($ResizeBad21, $GUI_HIDE) GUICtrlSetState($ResizeBad22, $GUI_HIDE) GUICtrlSetState($ResizeBad23, $GUI_HIDE) GUICtrlSetState($ResizeBad24, $GUI_HIDE) GUICtrlSetState($ResizeBad25, $GUI_HIDE) GUICtrlSetState($ResizeBad26, $GUI_HIDE) GUICtrlSetState($ResizeBad27, $GUI_HIDE) GUICtrlSetState($ResizeBad28, $GUI_HIDE) GUICtrlSetState($ResizeBad29, $GUI_HIDE) GUICtrlSetState($ResizeBad30, $GUI_HIDE) GUICtrlSetState($ResizeBad31, $GUI_HIDE) GUICtrlSetState($ResizeBad32, $GUI_HIDE) GUICtrlSetState($ResizeBad33, $GUI_HIDE) GUICtrlSetState($ResizeBad34, $GUI_HIDE) GUICtrlSetState($ResizeBad35, $GUI_HIDE) GUICtrlSetState($ResizeBad36, $GUI_HIDE) GUICtrlSetState($ResizeBad37, $GUI_HIDE) GUICtrlSetState($ResizeBad38, $GUI_HIDE) GUICtrlSetState($ResizeBad39, $GUI_HIDE) GUICtrlSetState($ResizeBad40, $GUI_HIDE) #endregion Stage 1 #region Stage 2 Local $Random Local $CurrentlyYellowx, $CurrentlyYellowy Local $CurrentlyOpenx1, $CurrentlyOpeny1, $CurrentlyOpenx2, $CurrentlyOpeny2 Local $Posx2, $Posy2, $Posx, $Posy Local $Stage2Timer Local $Stage2Goal Local $Stage2HOF $FirstStage2Timer=True $FirstStage2=True $Stage2Count=0 $Stage2Status=0 $Stage2button1=GUICtrlCreateButton("Sprint - 30", 0, 0, 400, 800) GUICtrlSetFont(-1, 25, 0, 0, "Comic Sans MS") $Stage2button2=GUICtrlCreateButton("Normal - 100", 400, 0, 400, 800) GUICtrlSetFont(-1, 25, 0, 0, "Comic Sans MS") $Stage2button3=GUICtrlCreateButton("Intolerable - 500", 800, 0, 400, 800) GUICtrlSetFont(-1, 25, 0, 0, "Comic Sans MS") GUICtrlSetState($Stage2button1, $GUI_HIDE) GUICtrlSetState($Stage2button2, $GUI_HIDE) GUICtrlSetState($Stage2button3, $GUI_HIDE) Dim $FloorBlack[12][8] Dim $FloorYellow[12][8] $Floory=0 $Floorx=0 For $3=0 To 11 For $2=0 To 7 $FloorYellow[$3][$2]=GUICtrlCreatePic(@ScriptDir & "\Bad4.jpg", $Floorx, $Floory, 100, 100) $FloorBlack[$3][$2]=GUICtrlCreatePic(@ScriptDir & "\Bad3.jpg", $Floorx, $Floory, 100, 100) GUICtrlSetState($FloorYellow[$3][$2], $GUI_HIDE) GUICtrlSetState($FloorBlack[$3][$2], $GUI_HIDE) $Floory+=100 Next $Floorx+=100 $Floory=0 Next #endregion $Stage0=GUICtrlCreateButton("Stage 0", 0, 0, 400, 800) GUICtrlSetFont(-1, 60, 0, 0, "Comic Sans MS") $Stage1=GUICtrlCreateButton("Stage 1", 400, 0, 400, 800) GUICtrlSetFont(-1, 60, 0, 0, "Comic Sans MS") $Stage2=GUICtrlCreateButton("Stage 2", 800, 0, 400, 800) GUICtrlSetFont(-1, 60, 0, 0, "Comic Sans MS") GUISetState() GameMenu() While 1 $MousePos=GUIGetCursorInfo($Gui) If $CurrentState=0 Then If $MousePos[0]<0 or $MousePos[1]<0 or $MousePos[0]>1200 or $MousePos[1]>800 Then Restartgame0() If $MousePos[4]<>0 and TimerDiff($Timer)>100 Then Restartgame0() EndIf If $CurrentState=1 Then If $MousePos[0]<0 or $MousePos[1]<0 or $MousePos[0]>1200 or $MousePos[1]>800 Then Restartgame1() If $MousePos[4]<>0 and TimerDiff($Timer)>100 Then Restartgame1() EndIf If $CurrentState=2 Then If $MousePos[0]<0 or $MousePos[1]<0 or $MousePos[0]>1200 or $MousePos[1]>800 Then Restartgame2() If $MousePos[4]<>0 and TimerDiff($Timer)>100 Then Restartgame2() EndIf $msg=GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE Exit EndSwitch Switch $CurrentState Case 0 Case0() Case 1 Case1() Case 2 Case2() EndSwitch WEnd Func StartState2() GUICtrlSetState($Stage0, $GUI_HIDE) GUICtrlSetState($Stage1, $GUI_HIDE) GUICtrlSetState($Stage2, $GUI_HIDE) GUICtrlSetState($Stage2button1, $GUI_SHOW) GUICtrlSetState($Stage2button2, $GUI_SHOW) GUICtrlSetState($Stage2button3, $GUI_SHOW) While 1 $msg=GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE Exit Case $Stage2button1 $Stage2Goal=30 $Stage2HOF=1 ExitLoop Case $Stage2button2 $Stage2Goal=100 $Stage2HOF=2 ExitLoop Case $Stage2button3 $Stage2Goal=500 $Stage2HOF=3 ExitLoop EndSwitch WEnd GUICtrlSetState($Stage2button1, $GUI_HIDE) GUICtrlSetState($Stage2button2, $GUI_HIDE) GUICtrlSetState($Stage2button3, $GUI_HIDE) For $3=0 To 11 For $2=0 To 7 GUICtrlSetState($FloorBlack[$3][$2], $GUI_SHOW) GUICtrlSetState($FloorYellow[$3][$2], $GUI_SHOW) Next Next $Stage2Status=0 $Stage2Count=0 $FirstStage2=True $FirstStage2Timer=True $Timer=TimerInit() EndFunc Func Restartgame2() $FinalTime=TimerDiff($Timer) For $3=0 To 11 For $2=0 To 7 GUICtrlSetState($FloorBlack[$3][$2], $GUI_HIDE) GUICtrlSetState($FloorYellow[$3][$2], $GUI_HIDE) Next Next GUICtrlSetData($PointLabel, "Score: " & $Stage2Count & " moves in " & $FinalTime & " milliseconds") ;~ If $Stage2Status=1 Then ;~ $ReadIni1=IniRead(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 1st", "Score", "99999999") ;~ $ReadIni2=IniRead(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 2nd", "Score", "99999999") ;~ $ReadIni3=IniRead(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 3rd", "Score", "99999999") ;~ $ReadIni1Name=IniRead(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 1st", "Name", "") ;~ $ReadIni2Name=IniRead(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 2nd", "Name", "") ;~ $ReadIni3Name=IniRead(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 3rd", "Name", "") ;~ If $ReadIni1<>"0" Then ;~ If $ReadIni1>$FinalTime Then ;~ $Name=InputBox("New High Score!", "What's your name?") ;~ If Not @error=1 Then ;~ IniWrite(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 1st", "Score", $FinalTime) ;~ IniWrite(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 1st", "Name", $Name) ;~ IniWrite(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 2nd", "Score", $ReadIni1) ;~ IniWrite(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 2nd", "Name", $ReadIni1Name) ;~ IniWrite(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 3rd", "Score", $ReadIni2) ;~ IniWrite(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 3rd", "Name", $ReadIni2Name) ;~ EndIf ;~ ElseIf $ReadIni2>$FinalTime Then ;~ $Name=InputBox("Second Place!", "What's your name?") ;~ If Not @error=1 Then ;~ IniWrite(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 2nd", "Score", $FinalTime) ;~ IniWrite(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 2nd", "Name", $Name) ;~ IniWrite(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 3rd", "Score", $ReadIni2) ;~ IniWrite(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 3rd", "Name", $ReadIni2Name) ;~ EndIf ;~ ElseIf $ReadIni3>$FinalTime Then ;~ $Name=InputBox("Third Place!", "What's your name?") ;~ If Not @error=1 Then ;~ IniWrite(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 3rd", "Score", $FinalTime) ;~ IniWrite(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 3rd", "Name", $Name) ;~ EndIf ;~ EndIf ;~ Else ;~ $Name=InputBox("New High Score!", "What's your name?") ;~ If Not @error=1 Then ;~ IniWrite(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 1st", "Score", $FinalTime) ;~ IniWrite(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 1st", "Name", $Name) ;~ EndIf ;~ EndIf ;~ EndIf ;~ $ReadIni1=IniRead(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 1st", "Score", "99999999") ;~ $ReadIni1Name=IniRead(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 1st", "Name", "") ;~ $ReadIni2=IniRead(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 2nd", "Score", "99999999") ;~ $ReadIni2Name=IniRead(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 2nd", "Name", "") ;~ $ReadIni3=IniRead(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 3rd", "Score", "99999999") ;~ $ReadIni3Name=IniRead(@ScriptDir & "\Score.ini", "Stage 2-" & $Stage2HOF & " 3rd", "Name", "") ;~ GUICtrlSetData($Highscorelabel, $ReadIni1Name & ": " & $ReadIni1 & @CRLF & $ReadIni2Name & ": " & $ReadIni2 & @CRLF & $ReadIni3Name & ": " & $ReadIni3) ;~ GUICtrlSetState($PointLabel, $GUI_SHOW) ;~ GUICtrlSetState($Highscorelabel, $GUI_SHOW) ;~ GUICtrlSetState($ContinueLabel, $GUI_SHOW) While 1 $msg=GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE Exit EndSwitch If _IsPressed(01) Then $MousePos=GUIGetCursorInfo($Gui) If $MousePos[1]<800 and $MousePos[1]>0 and $MousePos[0]>0 and $MousePos[0]<1200 Then ExitLoop EndIf WEnd While _IsPressed(01) WEnd GUICtrlSetState($PointLabel, $GUI_HIDE) GUICtrlSetState($ContinueLabel, $GUI_HIDE) GUICtrlSetState($Highscorelabel, $GUI_HIDE) $Stage2Count=0 GameMenu() EndFunc Func Case2() If $FirstStage2=True Then While 1 $MousePos=GUIGetCursorInfo($Gui) If $MousePos[0]>0 And $MousePos[0]<100 Then $Posx=0 If $MousePos[0]>100 And $MousePos[0]<200 Then $Posx=1 If $MousePos[0]>200 And $MousePos[0]<300 Then $Posx=2 If $MousePos[0]>300 And $MousePos[0]<400 Then $Posx=3 If $MousePos[0]>400 And $MousePos[0]<500 Then $Posx=4 If $MousePos[0]>500 And $MousePos[0]<600 Then $Posx=5 If $MousePos[0]>600 And $MousePos[0]<700 Then $Posx=6 If $MousePos[0]>700 And $MousePos[0]<800 Then $Posx=7 If $MousePos[0]>800 And $MousePos[0]<900 Then $Posx=8 If $MousePos[0]>900 And $MousePos[0]<1000 Then $Posx=9 If $MousePos[0]>1000 And $MousePos[0]<1100 Then $Posx=10 If $MousePos[0]>1100 And $MousePos[0]<1200 Then $Posx=11 If $MousePos[0]=0 Or $MousePos[0]=100 Or $MousePos[0]=200 Or $MousePos[0]=300 Or $MousePos[0]=400 Or $MousePos[0]=500 Or $MousePos[0]=600 Or $MousePos[0]=700 Or $MousePos[0]=800 Or $MousePos[0]=900 Or $MousePos[0]=1000 Or $MousePos[0]=11000 Or $MousePos[0]=12000 Then Else ExitLoop EndIf WEnd While 1 $MousePos=GUIGetCursorInfo($Gui) If $MousePos[1]>0 And $MousePos[1]<100 Then $Posy=0 If $MousePos[1]>100 And $MousePos[1]<200 Then $Posy=1 If $MousePos[1]>200 And $MousePos[1]<300 Then $Posy=2 If $MousePos[1]>300 And $MousePos[1]<400 Then $Posy=3 If $MousePos[1]>400 And $MousePos[1]<500 Then $Posy=4 If $MousePos[1]>500 And $MousePos[1]<600 Then $Posy=5 If $MousePos[1]>600 And $MousePos[1]<700 Then $Posy=6 If $MousePos[1]>700 And $MousePos[1]<800 Then $Posy=7 If $MousePos[1]=0 Or $MousePos[1]=100 Or $MousePos[1]=200 Or $MousePos[1]=300 Or $MousePos[1]=400 Or $MousePos[1]=500 Or $MousePos[1]=600 Or $MousePos[1]=700 Or $MousePos[1]=800 Then Else ExitLoop EndIf WEnd GUICtrlSetState($FloorBlack[$Posx][$Posy], $GUI_HIDE) GUICtrlSetState($FloorYellow[$Posx][$Posy], $GUI_HIDE) $FirstStage2=False $CurrentlyOpenx1=$Posx $CurrentlyOpeny1=$Posy While 1 $Random=Random(1, 4, 1) If $Random=1 And $Posx<>0 Then $Posx-=1 If $Posx=$CurrentlyOpenx2 Then $Posx+=1 Else ExitLoop EndIf ElseIf $Random=2 And $Posy<>0 Then $Posy-=1 If $Posy=$CurrentlyOpeny2 Then $Posy+=1 Else ExitLoop EndIf ElseIf $Random=3 And $Posx<>11 Then $Posx+=1 If $Posx=$CurrentlyOpenx2 Then $Posx-=1 Else ExitLoop EndIf ElseIf $Random=4 And $Posy<>7 Then $Posy+=1 If $Posy=$CurrentlyOpeny2 Then $Posy-=1 Else ExitLoop EndIf EndIf WEnd If $Posx>11 Then $Posx=11 If $Posy>7 Then $Posy=7 GUICtrlSetState($FloorBlack[$Posx][$Posy],$GUI_HIDE) GUICtrlSetState($FloorYellow[$Posx][$Posy], $GUI_HIDE) $CurrentlyOpenx2=$Posx $CurrentlyOpeny2=$Posy While 1 $Random=Random(1, 4, 1) If $Random=1 And $Posx<>0 Then $Posx-=1 If $Posx=$CurrentlyOpenx1 Then $Posx+=1 Else ExitLoop EndIf ElseIf $Random=2 And $Posy<>0 Then $Posy-=1 If $Posy=$CurrentlyOpeny1 Then $Posy+=1 Else ExitLoop EndIf ElseIf $Random=3 And $Posx<>11 Then $Posx+=1 If $Posx=$CurrentlyOpenx1 Then $Posx-=1 Else ExitLoop EndIf ElseIf $Random=4 And $Posy<>7 Then $Posy+=1 If $Posy=$CurrentlyOpeny1 Then $Posy-=1 Else ExitLoop EndIf EndIf WEnd If $Posx>11 Then $Posx=11 If $Posy>7 Then $Posy=7 GUICtrlSetState($FloorBlack[$Posx][$Posy],$GUI_HIDE) $CurrentlyYellowx=$Posx $CurrentlyYellowy=$Posy EndIf If $MousePos[0]>0 And $MousePos[0]<100 Then $Posx2=0 If $MousePos[0]>100 And $MousePos[0]<200 Then $Posx2=1 If $MousePos[0]>200 And $MousePos[0]<300 Then $Posx2=2 If $MousePos[0]>300 And $MousePos[0]<400 Then $Posx2=3 If $MousePos[0]>400 And $MousePos[0]<500 Then $Posx2=4 If $MousePos[0]>500 And $MousePos[0]<600 Then $Posx2=5 If $MousePos[0]>600 And $MousePos[0]<700 Then $Posx2=6 If $MousePos[0]>700 And $MousePos[0]<800 Then $Posx2=7 If $MousePos[0]>800 And $MousePos[0]<900 Then $Posx2=8 If $MousePos[0]>900 And $MousePos[0]<1000 Then $Posx2=9 If $MousePos[0]>1000 And $MousePos[0]<1100 Then $Posx2=10 If $MousePos[0]>1100 And $MousePos[0]<1200 Then $Posx2=11 If $MousePos[1]>0 And $MousePos[1]<100 Then $Posy2=0 If $MousePos[1]>100 And $MousePos[1]<200 Then $Posy2=1 If $MousePos[1]>200 And $MousePos[1]<300 Then $Posy2=2 If $MousePos[1]>300 And $MousePos[1]<400 Then $Posy2=3 If $MousePos[1]>400 And $MousePos[1]<500 Then $Posy2=4 If $MousePos[1]>500 And $MousePos[1]<600 Then $Posy2=5 If $MousePos[1]>600 And $MousePos[1]<700 Then $Posy2=6 If $MousePos[1]>700 And $MousePos[1]<800 Then $Posy2=7 If $Posx2<>$CurrentlyOpenx1 Or $Posy2<>$CurrentlyOpeny1 Then If $FirstStage2Timer=True Then $Timer=TimerInit() $FirstStage2Timer=False EndIf GUICtrlSetState($FloorYellow[$CurrentlyOpenx1][$CurrentlyOpeny1], $GUI_SHOW) GUICtrlSetState($FloorBlack[$CurrentlyOpenx1][$CurrentlyOpeny1], $GUI_SHOW) GUICtrlSetState($FloorYellow[$CurrentlyYellowx][$CurrentlyYellowy], $GUI_HIDE) While 1 $Random=Random(1, 4, 1) If $Random=1 And $Posx<>0 Then $Posx-=1 If $Posx=$CurrentlyOpenx2 Then $Posx+=1 Else ExitLoop EndIf ElseIf $Random=2 And $Posy<>0 Then $Posy-=1 If $Posy=$CurrentlyOpeny2 Then $Posy+=1 Else ExitLoop EndIf ElseIf $Random=3 And $Posx<>11 Then $Posx+=1 If $Posx=$CurrentlyOpenx2 Then $Posx-=1 Else ExitLoop EndIf ElseIf $Random=4 And $Posy<>7 Then $Posy+=1 If $Posy=$CurrentlyOpeny2 Then $Posy-=1 Else ExitLoop EndIf EndIf WEnd If $Posx>11 Then $Posx=11 If $Posy>7 Then $Posy=7 GUICtrlSetState($FloorBlack[$Posx][$Posy],$GUI_HIDE) $CurrentlyOpenx1=$CurrentlyOpenx2 $CurrentlyOpeny1=$CurrentlyOpeny2 $CurrentlyOpenx2=$CurrentlyYellowx $CurrentlyOpeny2=$CurrentlyYellowy $CurrentlyYellowx=$Posx $CurrentlyYellowy=$Posy $Stage2Count+=1 $Stage2Status=0 If $Stage2Count>=$Stage2Goal Then $Stage2Status=1 Restartgame2() EndIf EndIf EndFunc Func StartState1() $ResizeBads=0 $ResizeBads2=100 $1=1 $ResizeBad1_Direction=0 $ResizeBad2_Direction=0 $ResizeBad3_Direction=0 $ResizeBad4_Direction=0 $ResizeBad5_Direction=0 $ResizeBad6_Direction=0 $ResizeBad7_Direction=0 $ResizeBad8_Direction=0 $ResizeBad9_Direction=0 $ResizeBad10_Direction=0 $ResizeBad11_Direction=0 $ResizeBad12_Direction=0 $ResizeBad13_Direction=0 $ResizeBad14_Direction=0 $ResizeBad15_Direction=0 $ResizeBad16_Direction=0 $ResizeBad17_Direction=0 $ResizeBad18_Direction=0 $ResizeBad19_Direction=0 $ResizeBad20_Direction=0 $ResizeBad21_Direction=0 $ResizeBad22_Direction=0 $ResizeBad23_Direction=0 $ResizeBad24_Direction=0 $ResizeBad25_Direction=0 $ResizeBad26_Direction=0 $ResizeBad27_Direction=0 $ResizeBad28_Direction=0 $ResizeBad29_Direction=0 $ResizeBad30_Direction=0 $ResizeBad31_Direction=0 $ResizeBad32_Direction=0 $ResizeBad33_Direction=0 $ResizeBad34_Direction=0 $ResizeBad35_Direction=0 $ResizeBad36_Direction=0 $ResizeBad37_Direction=0 $ResizeBad38_Direction=0 $ResizeBad39_Direction=0 $ResizeBad40_Direction=0 $ResizeBad1x=1 $ResizeBad1y=1 $ResizeBad2x=1 $ResizeBad2y=1 $ResizeBad3x=1 $ResizeBad3y=1 $ResizeBad4x=1 $ResizeBad4y=1 $ResizeBad5x=1 $ResizeBad5y=1 $ResizeBad6x=1 $ResizeBad6y=1 $ResizeBad7x=1 $ResizeBad7y=1 $ResizeBad8x=1 $ResizeBad8y=1 $ResizeBad9x=1 $ResizeBad9y=1 $ResizeBad10x=1 $ResizeBad10y=1 $ResizeBad11x=1 $ResizeBad11y=1 $ResizeBad12x=1 $ResizeBad12y=1 $ResizeBad13x=1 $ResizeBad13y=1 $ResizeBad14x=1 $ResizeBad14y=1 $ResizeBad15x=1 $ResizeBad15y=1 $ResizeBad16x=1 $ResizeBad16y=1 $ResizeBad17x=1 $ResizeBad17y=1 $ResizeBad18x=1 $ResizeBad18y=1 $ResizeBad19x=1 $ResizeBad19y=1 $ResizeBad20x=1 $ResizeBad20y=1 $ResizeBad21x=1 $ResizeBad21y=1 $ResizeBad22x=1 $ResizeBad22y=1 $ResizeBad23x=1 $ResizeBad23y=1 $ResizeBad24x=1 $ResizeBad24y=1 $ResizeBad25x=1 $ResizeBad25y=1 $ResizeBad26x=1 $ResizeBad26y=1 $ResizeBad27x=1 $ResizeBad27y=1 $ResizeBad28x=1 $ResizeBad28y=1 $ResizeBad29x=1 $ResizeBad29y=1 $ResizeBad30x=1 $ResizeBad30y=1 $ResizeBad31x=1 $ResizeBad31y=1 $ResizeBad32x=1 $ResizeBad32y=1 $ResizeBad33x=1 $ResizeBad33y=1 $ResizeBad34x=1 $ResizeBad34y=1 $ResizeBad35x=1 $ResizeBad35y=1 $ResizeBad36x=1 $ResizeBad36y=1 $ResizeBad37x=1 $ResizeBad37y=1 $ResizeBad38x=1 $ResizeBad38y=1 $ResizeBad39x=1 $ResizeBad39y=1 $ResizeBad40x=1 $ResizeBad40y=1 $Timer=TimerInit() GUICtrlSetState($ResizeBad1, $GUI_SHOW) EndFunc Func Restartgame1() $ResizeBad1_Direction=0 $ResizeBad2_Direction=0 $ResizeBad3_Direction=0 $ResizeBad4_Direction=0 $ResizeBad5_Direction=0 $ResizeBad6_Direction=0 $ResizeBad7_Direction=0 $ResizeBad8_Direction=0 $ResizeBad9_Direction=0 $ResizeBad10_Direction=0 $ResizeBad11_Direction=0 $ResizeBad12_Direction=0 $ResizeBad13_Direction=0 $ResizeBad14_Direction=0 $ResizeBad15_Direction=0 $ResizeBad16_Direction=0 $ResizeBad17_Direction=0 $ResizeBad18_Direction=0 $ResizeBad19_Direction=0 $ResizeBad20_Direction=0 $ResizeBad21_Direction=0 $ResizeBad22_Direction=0 $ResizeBad23_Direction=0 $ResizeBad24_Direction=0 $ResizeBad25_Direction=0 $ResizeBad26_Direction=0 $ResizeBad27_Direction=0 $ResizeBad28_Direction=0 $ResizeBad29_Direction=0 $ResizeBad30_Direction=0 $ResizeBad31_Direction=0 $ResizeBad32_Direction=0 $ResizeBad33_Direction=0 $ResizeBad34_Direction=0 $ResizeBad35_Direction=0 $ResizeBad36_Direction=0 $ResizeBad37_Direction=0 $ResizeBad38_Direction=0 $ResizeBad39_Direction=0 $ResizeBad40_Direction=0 $ResizeBad1Active=False $ResizeBad2Active=False $ResizeBad3Active=False $ResizeBad4Active=False $ResizeBad5Active=False $ResizeBad6Active=False $ResizeBad7Active=False $ResizeBad8Active=False $ResizeBad9Active=False $ResizeBad10Active=False $ResizeBad11Active=False $ResizeBad12Active=False $ResizeBad13Active=False $ResizeBad14Active=False $ResizeBad15Active=False $ResizeBad16Active=False $ResizeBad17Active=False $ResizeBad18Active=False $ResizeBad19Active=False $ResizeBad20Active=False $ResizeBad21Active=False $ResizeBad22Active=False $ResizeBad23Active=False $ResizeBad24Active=False $ResizeBad25Active=False $ResizeBad26Active=False $ResizeBad27Active=False $ResizeBad28Active=False $ResizeBad29Active=False $ResizeBad30Active=False $ResizeBad31Active=False $ResizeBad32Active=False $ResizeBad33Active=False $ResizeBad34Active=False $ResizeBad35Active=False $ResizeBad36Active=False $ResizeBad37Active=False $ResizeBad38Active=False $ResizeBad39Active=False $ResizeBad40Active=False GUICtrlSetState($ResizeBad1, $GUI_HIDE) GUICtrlSetState($ResizeBad2, $GUI_HIDE) GUICtrlSetState($ResizeBad3, $GUI_HIDE) GUICtrlSetState($ResizeBad4, $GUI_HIDE) GUICtrlSetState($ResizeBad5, $GUI_HIDE) GUICtrlSetState($ResizeBad6, $GUI_HIDE) GUICtrlSetState($ResizeBad7, $GUI_HIDE) GUICtrlSetState($ResizeBad8, $GUI_HIDE) GUICtrlSetState($ResizeBad9, $GUI_HIDE) GUICtrlSetState($ResizeBad10, $GUI_HIDE) GUICtrlSetState($ResizeBad11, $GUI_HIDE) GUICtrlSetState($ResizeBad12, $GUI_HIDE) GUICtrlSetState($ResizeBad13, $GUI_HIDE) GUICtrlSetState($ResizeBad14, $GUI_HIDE) GUICtrlSetState($ResizeBad15, $GUI_HIDE) GUICtrlSetState($ResizeBad16, $GUI_HIDE) GUICtrlSetState($ResizeBad17, $GUI_HIDE) GUICtrlSetState($ResizeBad18, $GUI_HIDE) GUICtrlSetState($ResizeBad19, $GUI_HIDE) GUICtrlSetState($ResizeBad20, $GUI_HIDE) GUICtrlSetState($ResizeBad21, $GUI_HIDE) GUICtrlSetState($ResizeBad22, $GUI_HIDE) GUICtrlSetState($ResizeBad23, $GUI_HIDE) GUICtrlSetState($ResizeBad24, $GUI_HIDE) GUICtrlSetState($ResizeBad25, $GUI_HIDE) GUICtrlSetState($ResizeBad26, $GUI_HIDE) GUICtrlSetState($ResizeBad27, $GUI_HIDE) GUICtrlSetState($ResizeBad28, $GUI_HIDE) GUICtrlSetState($ResizeBad29, $GUI_HIDE) GUICtrlSetState($ResizeBad30, $GUI_HIDE) GUICtrlSetState($ResizeBad31, $GUI_HIDE) GUICtrlSetState($ResizeBad32, $GUI_HIDE) GUICtrlSetState($ResizeBad33, $GUI_HIDE) GUICtrlSetState($ResizeBad34, $GUI_HIDE) GUICtrlSetState($ResizeBad35, $GUI_HIDE) GUICtrlSetState($ResizeBad36, $GUI_HIDE) GUICtrlSetState($ResizeBad37, $GUI_HIDE) GUICtrlSetState($ResizeBad38, $GUI_HIDE) GUICtrlSetState($ResizeBad39, $GUI_HIDE) GUICtrlSetState($ResizeBad40, $GUI_HIDE) Local $ReadIni1="" Local $ReadIni2="" Local $ReadIni3="" $FinalTime=TimerDiff($Timer) $ReadIni1=IniRead(@ScriptDir & "\Score.ini", "Stage 1 1st", "Score", "0") $ReadIni2=IniRead(@ScriptDir & "\Score.ini", "Stage 1 2nd", "Score", "0") $ReadIni3=IniRead(@ScriptDir & "\Score.ini", "Stage 1 3rd", "Score", "0") $ReadIni1Name=IniRead(@ScriptDir & "\Score.ini", "Stage 1 1st", "Name", "") $ReadIni2Name=IniRead(@ScriptDir & "\Score.ini", "Stage 1 2nd", "Name", "") $ReadIni3Name=IniRead(@ScriptDir & "\Score.ini", "Stage 1 3rd", "Name", "") GUICtrlSetData($PointLabel, "Score: " & $FinalTime & " milliseconds") If $ReadIni1<>"0" Then If $ReadIni1<$FinalTime Then $Name=InputBox("New High Score!", "What's your name?") If Not @error=1 Then IniWrite(@ScriptDir & "\Score.ini", "Stage 1 1st", "Score", $FinalTime) IniWrite(@ScriptDir & "\Score.ini", "Stage 1 1st", "Name", $Name) IniWrite(@ScriptDir & "\Score.ini", "Stage 1 2nd", "Score", $ReadIni1) IniWrite(@ScriptDir & "\Score.ini", "Stage 1 2nd", "Name", $ReadIni1Name) IniWrite(@ScriptDir & "\Score.ini", "Stage 1 3rd", "Score", $ReadIni2) IniWrite(@ScriptDir & "\Score.ini", "Stage 1 3rd", "Name", $ReadIni2Name) EndIf ElseIf $ReadIni2<$FinalTime Then $Name=InputBox("Second Place!", "What's your name?") If Not @error=1 Then IniWrite(@ScriptDir & "\Score.ini", "Stage 1 2nd", "Score", $FinalTime) IniWrite(@ScriptDir & "\Score.ini", "Stage 1 2nd", "Name", $Name) IniWrite(@ScriptDir & "\Score.ini", "Stage 1 3rd", "Score", $ReadIni2) IniWrite(@ScriptDir & "\Score.ini", "Stage 1 3rd", "Name", $ReadIni2Name) EndIf ElseIf $ReadIni3<$FinalTime Then $Name=InputBox("Third Place!", "What's your name?") If Not @error=1 Then IniWrite(@ScriptDir & "\Score.ini", "Stage 1 3rd", "Score", $FinalTime) IniWrite(@ScriptDir & "\Score.ini", "Stage 1 3rd", "Name", $Name) EndIf EndIf Else $Name=InputBox("New High Score!", "What's your name?") If Not @error=1 Then IniWrite(@ScriptDir & "\Score.ini", "Stage 1 1st", "Score", $FinalTime) IniWrite(@ScriptDir & "\Score.ini", "Stage 1 1st", "Name", $Name) EndIf EndIf $ReadIni1=IniRead(@ScriptDir & "\Score.ini", "Stage 1 1st", "Score", "0") $ReadIni1Name=IniRead(@ScriptDir & "\Score.ini", "Stage 1 1st", "Name", "") $ReadIni2=IniRead(@ScriptDir & "\Score.ini", "Stage 1 2nd", "Score", "0") $ReadIni2Name=IniRead(@ScriptDir & "\Score.ini", "Stage 1 2nd", "Name", "") $ReadIni3=IniRead(@ScriptDir & "\Score.ini", "Stage 1 3rd", "Score", "0") $ReadIni3Name=IniRead(@ScriptDir & "\Score.ini", "Stage 1 3rd", "Name", "") GUICtrlSetData($Highscorelabel, $ReadIni1Name & ": " & $ReadIni1 & @CRLF & $ReadIni2Name & ": " & $ReadIni2 & @CRLF & $ReadIni3Name & ": " & $ReadIni3) GUICtrlSetState($PointLabel, $GUI_SHOW) GUICtrlSetState($Highscorelabel, $GUI_SHOW) GUICtrlSetState($ContinueLabel, $GUI_SHOW) While 1 $msg=GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE Exit EndSwitch If _IsPressed(01) Then $MousePos=GUIGetCursorInfo($Gui) If $MousePos[1]<800 and $MousePos[1]>0 and $MousePos[0]>0 and $MousePos[0]<1200 Then ExitLoop EndIf WEnd While _IsPressed(01) WEnd GUICtrlSetState($PointLabel, $GUI_HIDE) GUICtrlSetState($ContinueLabel, $GUI_HIDE) GUICtrlSetState($Highscorelabel, $GUI_HIDE) GameMenu() EndFunc Func Case1() Sleep(1) If TimerDiff($Timer)>41000 Then ElseIf TimerDiff($Timer)>40000 Then $ResizeBad40Active=True $ResizeBad40x=1 $ResizeBad40y=1 GUICtrlSetState($ResizeBad40, $GUI_SHOW) ElseIf TimerDiff($Timer)>39000 Then $ResizeBad39Active=True $ResizeBad39x=1 $ResizeBad39y=1 GUICtrlSetState($ResizeBad39, $GUI_SHOW) ElseIf TimerDiff($Timer)>38000 Then $ResizeBad38Active=True $ResizeBad38x=1 $ResizeBad38y=1 GUICtrlSetState($ResizeBad38, $GUI_SHOW) ElseIf TimerDiff($Timer)>37000 Then $ResizeBad37Active=True $ResizeBad37x=1 $ResizeBad37y=1 GUICtrlSetState($ResizeBad37, $GUI_SHOW) ElseIf TimerDiff($Timer)>36000 Then $ResizeBad36Active=True $ResizeBad36x=1 $ResizeBad36y=1 GUICtrlSetState($ResizeBad36, $GUI_SHOW) ElseIf TimerDiff($Timer)>35000 Then $ResizeBad35Active=True $ResizeBad35x=1 $ResizeBad35y=1 GUICtrlSetState($ResizeBad35, $GUI_SHOW) ElseIf TimerDiff($Timer)>34000 Then $ResizeBad34Active=True $ResizeBad34x=1 $ResizeBad34y=1 GUICtrlSetState($ResizeBad34, $GUI_SHOW) ElseIf TimerDiff($Timer)>33000 Then $ResizeBad33Active=True $ResizeBad33x=1 $ResizeBad33y=1 GUICtrlSetState($ResizeBad33, $GUI_SHOW) ElseIf TimerDiff($Timer)>32000 Then $ResizeBad32Active=True $ResizeBad32x=1 $ResizeBad32y=1 GUICtrlSetState($ResizeBad32, $GUI_SHOW) ElseIf TimerDiff($Timer)>31000 Then $ResizeBad31Active=True $ResizeBad31x=1 $ResizeBad31y=1 GUICtrlSetState($ResizeBad31, $GUI_SHOW) ElseIf TimerDiff($Timer)>30000 Then $ResizeBad30Active=True $ResizeBad30x=1 $ResizeBad30y=1 GUICtrlSetState($ResizeBad30, $GUI_SHOW) ElseIf TimerDiff($Timer)>29000 Then $ResizeBad29Active=True $ResizeBad29x=1 $ResizeBad29y=1 GUICtrlSetState($ResizeBad29, $GUI_SHOW) ElseIf TimerDiff($Timer)>28000 Then $ResizeBad28Active=True $ResizeBad28x=1 $ResizeBad28y=1 GUICtrlSetState($ResizeBad28, $GUI_SHOW) ElseIf TimerDiff($Timer)>27000 Then $ResizeBad27Active=True $ResizeBad27x=1 $ResizeBad27y=1 GUICtrlSetState($ResizeBad27, $GUI_SHOW) ElseIf TimerDiff($Timer)>26000 Then $ResizeBad26Active=True $ResizeBad26x=1 $ResizeBad26y=1 GUICtrlSetState($ResizeBad26, $GUI_SHOW) ElseIf TimerDiff($Timer)>25000 Then $ResizeBad25Active=True $ResizeBad25x=1 $ResizeBad25y=1 GUICtrlSetState($ResizeBad25, $GUI_SHOW) ElseIf TimerDiff($Timer)>24000 Then $ResizeBad24Active=True $ResizeBad24x=1 $ResizeBad24y=1 GUICtrlSetState($ResizeBad24, $GUI_SHOW) ElseIf TimerDiff($Timer)>23000 Then $ResizeBad23Active=True $ResizeBad23x=1 $ResizeBad23y=1 GUICtrlSetState($ResizeBad23, $GUI_SHOW) ElseIf TimerDiff($Timer)>22000 Then $ResizeBad22Active=True $ResizeBad22x=1 $ResizeBad22y=1 GUICtrlSetState($ResizeBad22, $GUI_SHOW) ElseIf TimerDiff($Timer)>21000 Then $ResizeBad21Active=True $ResizeBad21x=1 $ResizeBad21y=1 GUICtrlSetState($ResizeBad21, $GUI_SHOW) ElseIf TimerDiff($Timer)>20000 Then $ResizeBad20Active=True $ResizeBad20x=1 $ResizeBad20y=1 GUICtrlSetState($ResizeBad20, $GUI_SHOW) ElseIf TimerDiff($Timer)>19000 Then $ResizeBad19Active=True $ResizeBad19x=1 $ResizeBad19y=1 GUICtrlSetState($ResizeBad19, $GUI_SHOW) ElseIf TimerDiff($Timer)>18000 Then $ResizeBad18Active=True $ResizeBad18x=1 $ResizeBad18y=1 GUICtrlSetState($ResizeBad18, $GUI_SHOW) ElseIf TimerDiff($Timer)>17000 Then $ResizeBad17Active=True $ResizeBad17x=1 $ResizeBad17y=1 GUICtrlSetState($ResizeBad17, $GUI_SHOW) ElseIf TimerDiff($Timer)>16000 Then $ResizeBad16Active=True $ResizeBad16x=1 $ResizeBad16y=1 GUICtrlSetState($ResizeBad16, $GUI_SHOW) ElseIf TimerDiff($Timer)>15000 Then $ResizeBad15Active=True $ResizeBad15x=1 $ResizeBad15y=1 GUICtrlSetState($ResizeBad15, $GUI_SHOW) ElseIf TimerDiff($Timer)>14000 Then $ResizeBad14Active=True $ResizeBad14x=1 $ResizeBad14y=1 GUICtrlSetState($ResizeBad14, $GUI_SHOW) ElseIf TimerDiff($Timer)>13000 Then $ResizeBad13Active=True $ResizeBad13x=1 $ResizeBad13y=1 GUICtrlSetState($ResizeBad13, $GUI_SHOW) ElseIf TimerDiff($Timer)>12000 Then $ResizeBad12Active=True $ResizeBad12x=1 $ResizeBad12y=1 GUICtrlSetState($ResizeBad12, $GUI_SHOW) ElseIf TimerDiff($Timer)>11000 Then $ResizeBad11Active=True $ResizeBad11x=1 $ResizeBad11y=1 GUICtrlSetState($ResizeBad11, $GUI_SHOW) ElseIf TimerDiff($Timer)>10000 Then $ResizeBad10Active=True $ResizeBad10x=1 $ResizeBad10y=1 GUICtrlSetState($ResizeBad10, $GUI_SHOW) ElseIf TimerDiff($Timer)>9000 Then $ResizeBad9Active=True $ResizeBad9x=1 $ResizeBad9y=1 GUICtrlSetState($ResizeBad9, $GUI_SHOW) ElseIf TimerDiff($Timer)>8000 Then $ResizeBad8Active=True $ResizeBad8x=1 $ResizeBad8y=1 GUICtrlSetState($ResizeBad8, $GUI_SHOW) ElseIf TimerDiff($Timer)>7000 Then $ResizeBad7Active=True $ResizeBad7x=1 $ResizeBad7y=1 GUICtrlSetState($ResizeBad7, $GUI_SHOW) ElseIf TimerDiff($Timer)>6000 Then $ResizeBad6Active=True $ResizeBad6x=1 $ResizeBad6y=1 GUICtrlSetState($ResizeBad6, $GUI_SHOW) ElseIf TimerDiff($Timer)>5000 Then $ResizeBad5Active=True $ResizeBad5x=1 $ResizeBad5y=1 GUICtrlSetState($ResizeBad5, $GUI_SHOW) ElseIf TimerDiff($Timer)>4000 Then $ResizeBad4Active=True $ResizeBad4x=1 $ResizeBad4y=1 GUICtrlSetState($ResizeBad4, $GUI_SHOW) ElseIf TimerDiff($Timer)>3000 Then $ResizeBad3Active=True $ResizeBad3x=1 $ResizeBad3y=1 GUICtrlSetState($ResizeBad3, $GUI_SHOW) ElseIf TimerDiff($Timer)>2000 Then $ResizeBad2Active=True $ResizeBad2x=1 $ResizeBad2y=1 GUICtrlSetState($ResizeBad2, $GUI_SHOW) ElseIf TimerDiff($Timer)>1000 Then $ResizeBad1Active=True GUICtrlSetState($ResizeBad1, $GUI_SHOW) EndIf $1+=1 If $ResizeBad1Active=True Then $ResizeBad1_Direction+=1 If $ResizeBad2Active=True Then $ResizeBad2_Direction+=1 If $ResizeBad3Active=True Then $ResizeBad3_Direction+=1 If $ResizeBad4Active=True Then $ResizeBad4_Direction+=1 If $ResizeBad5Active=True Then $ResizeBad5_Direction+=1 If $ResizeBad6Active=True Then $ResizeBad6_Direction+=1 If $ResizeBad7Active=True Then $ResizeBad7_Direction+=1 If $ResizeBad8Active=True Then $ResizeBad8_Direction+=1 If $ResizeBad9Active=True Then $ResizeBad9_Direction+=1 If $ResizeBad10Active=True Then $ResizeBad10_Direction+=1 If $ResizeBad11Active=True Then $ResizeBad11_Direction+=1 If $ResizeBad12Active=True Then $ResizeBad12_Direction+=1 If $ResizeBad13Active=True Then $ResizeBad13_Direction+=1 If $ResizeBad14Active=True Then $ResizeBad14_Direction+=1 If $ResizeBad15Active=True Then $ResizeBad15_Direction+=1 If $ResizeBad16Active=True Then $ResizeBad16_Direction+=1 If $ResizeBad17Active=True Then $ResizeBad17_Direction+=1 If $ResizeBad18Active=True Then $ResizeBad18_Direction+=1 If $ResizeBad19Active=True Then $ResizeBad19_Direction+=1 If $ResizeBad20Active=True Then $ResizeBad20_Direction+=1 If $ResizeBad21Active=True Then $ResizeBad21_Direction+=1 If $ResizeBad22Active=True Then $ResizeBad22_Direction+=1 If $ResizeBad23Active=True Then $ResizeBad23_Direction+=1 If $ResizeBad24Active=True Then $ResizeBad24_Direction+=1 If $ResizeBad25Active=True Then $ResizeBad25_Direction+=1 If $ResizeBad26Active=True Then $ResizeBad26_Direction+=1 If $ResizeBad27Active=True Then $ResizeBad27_Direction+=1 If $ResizeBad28Active=True Then $ResizeBad28_Direction+=1 If $ResizeBad29Active=True Then $ResizeBad29_Direction+=1 If $ResizeBad30Active=True Then $ResizeBad30_Direction+=1 If $ResizeBad31Active=True Then $ResizeBad31_Direction+=1 If $ResizeBad32Active=True Then $ResizeBad32_Direction+=1 If $ResizeBad33Active=True Then $ResizeBad33_Direction+=1 If $ResizeBad34Active=True Then $ResizeBad34_Direction+=1 If $ResizeBad35Active=True Then $ResizeBad35_Direction+=1 If $ResizeBad36Active=True Then $ResizeBad36_Direction+=1 If $ResizeBad37Active=True Then $ResizeBad37_Direction+=1 If $ResizeBad38Active=True Then $ResizeBad38_Direction+=1 If $ResizeBad39Active=True Then $ResizeBad39_Direction+=1 If $ResizeBad40Active=True Then $ResizeBad40_Direction+=1 If $ResizeBad1_Direction>Random(60, 200, 1) Then $ResizeBad1_Direction=0 If $MousePos[0]<$ResizeBad1x Then $Random1=Random(-10, 1, 1) Else $Random1=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad1y Then $Random1b=Random(-10, 1, 1) Else $Random1b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad2_Direction>Random(60, 200, 1) Then $ResizeBad2_Direction=0 If $MousePos[0]<$ResizeBad2x Then $Random2=Random(-10, 1, 1) Else $Random2=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad2y Then $Random2b=Random(-10, 1, 1) Else $Random2b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad3_Direction>Random(60, 200, 1) Then $ResizeBad3_Direction=0 If $MousePos[0]<$ResizeBad3x Then $Random3=Random(-10, 1, 1) Else $Random3=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad3y Then $Random3b=Random(-10, 1, 1) Else $Random3b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad4_Direction>Random(60, 200, 1) Then $ResizeBad4_Direction=0 If $MousePos[0]<$ResizeBad4x Then $Random4=Random(-10, 1, 1) Else $Random4=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad4y Then $Random4b=Random(-10, 1, 1) Else $Random4b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad5_Direction>Random(60, 200, 1) Then $ResizeBad5_Direction=0 If $MousePos[0]<$ResizeBad5x Then $Random5=Random(-10, 1, 1) Else $Random5=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad5y Then $Random5b=Random(-10, 1, 1) Else $Random5b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad6_Direction>Random(60, 200, 1) Then $ResizeBad6_Direction=0 If $MousePos[0]<$ResizeBad6x Then $Random6=Random(-10, 1, 1) Else $Random6=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad6y Then $Random6b=Random(-10, 1, 1) Else $Random6b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad7_Direction>Random(60, 200, 1) Then $ResizeBad7_Direction=0 If $MousePos[0]<$ResizeBad7x Then $Random7=Random(-10, 1, 1) Else $Random7=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad7y Then $Random7b=Random(-10, 1, 1) Else $Random7b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad8_Direction>Random(60, 200, 1) Then $ResizeBad8_Direction=0 If $MousePos[0]<$ResizeBad8x Then $Random8=Random(-10, 1, 1) Else $Random8=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad8y Then $Random8b=Random(-10, 1, 1) Else $Random8b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad9_Direction>Random(60, 200, 1) Then $ResizeBad9_Direction=0 If $MousePos[0]<$ResizeBad9x Then $Random9=Random(-10, 1, 1) Else $Random9=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad9y Then $Random9b=Random(-10, 1, 1) Else $Random9b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad10_Direction>Random(60, 200, 1) Then $ResizeBad10_Direction=0 If $MousePos[0]<$ResizeBad10x Then $Random10=Random(-10, 1, 1) Else $Random10=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad10y Then $Random10b=Random(-10, 1, 1) Else $Random10b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad11_Direction>Random(60, 200, 1) Then $ResizeBad11_Direction=0 If $MousePos[0]<$ResizeBad11x Then $Random11=Random(-10, 1, 1) Else $Random11=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad11y Then $Random11b=Random(-10, 1, 1) Else $Random11b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad12_Direction>Random(60, 200, 1) Then $ResizeBad12_Direction=0 If $MousePos[0]<$ResizeBad12x Then $Random12=Random(-10, 1, 1) Else $Random12=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad12y Then $Random12b=Random(-10, 1, 1) Else $Random12b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad13_Direction>Random(60, 200, 1) Then $ResizeBad13_Direction=0 If $MousePos[0]<$ResizeBad13x Then $Random13=Random(-10, 1, 1) Else $Random13=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad13y Then $Random13b=Random(-10, 1, 1) Else $Random13b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad14_Direction>Random(60, 200, 1) Then $ResizeBad14_Direction=0 If $MousePos[0]<$ResizeBad14x Then $Random14=Random(-10, 1, 1) Else $Random14=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad14y Then $Random14b=Random(-10, 1, 1) Else $Random14b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad15_Direction>Random(60, 200, 1) Then $ResizeBad15_Direction=0 If $MousePos[0]<$ResizeBad15x Then $Random15=Random(-10, 1, 1) Else $Random15=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad15y Then $Random15b=Random(-10, 1, 1) Else $Random15b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad16_Direction>Random(60, 200, 1) Then $ResizeBad16_Direction=0 If $MousePos[0]<$ResizeBad16x Then $Random16=Random(-10, 1, 1) Else $Random16=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad16y Then $Random16b=Random(-10, 1, 1) Else $Random16b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad17_Direction>Random(60, 200, 1) Then $ResizeBad17_Direction=0 If $MousePos[0]<$ResizeBad17x Then $Random17=Random(-10, 1, 1) Else $Random17=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad17y Then $Random17b=Random(-10, 1, 1) Else $Random17b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad18_Direction>Random(60, 200, 1) Then $ResizeBad18_Direction=0 If $MousePos[0]<$ResizeBad18x Then $Random18=Random(-10, 1, 1) Else $Random18=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad18y Then $Random18b=Random(-10, 1, 1) Else $Random18b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad19_Direction>Random(60, 200, 1) Then $ResizeBad19_Direction=0 If $MousePos[0]<$ResizeBad19x Then $Random19=Random(-10, 1, 1) Else $Random19=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad19y Then $Random19b=Random(-10, 1, 1) Else $Random19b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad20_Direction>Random(60, 200, 1) Then $ResizeBad20_Direction=0 If $MousePos[0]<$ResizeBad20x Then $Random20=Random(-10, 1, 1) Else $Random20=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad20y Then $Random20b=Random(-10, 1, 1) Else $Random20b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad21_Direction>Random(60, 200, 1) Then $ResizeBad21_Direction=0 If $MousePos[0]<$ResizeBad21x Then $Random21=Random(-10, 1, 1) Else $Random21=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad21y Then $Random21b=Random(-10, 1, 1) Else $Random21b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad22_Direction>Random(60, 200, 1) Then $ResizeBad22_Direction=0 If $MousePos[0]<$ResizeBad22x Then $Random22=Random(-10, 1, 1) Else $Random22=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad22y Then $Random22b=Random(-10, 1, 1) Else $Random22b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad23_Direction>Random(60, 200, 1) Then $ResizeBad23_Direction=0 If $MousePos[0]<$ResizeBad23x Then $Random23=Random(-10, 1, 1) Else $Random23=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad23y Then $Random23b=Random(-10, 1, 1) Else $Random23b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad24_Direction>Random(60, 200, 1) Then $ResizeBad24_Direction=0 If $MousePos[0]<$ResizeBad24x Then $Random24=Random(-10, 1, 1) Else $Random24=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad24y Then $Random24b=Random(-10, 1, 1) Else $Random24b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad25_Direction>Random(60, 200, 1) Then $ResizeBad25_Direction=0 If $MousePos[0]<$ResizeBad25x Then $Random25=Random(-10, 1, 1) Else $Random25=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad25y Then $Random25b=Random(-10, 1, 1) Else $Random25b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad26_Direction>Random(60, 200, 1) Then $ResizeBad26_Direction=0 If $MousePos[0]<$ResizeBad26x Then $Random26=Random(-10, 1, 1) Else $Random26=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad26y Then $Random26b=Random(-10, 1, 1) Else $Random26b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad27_Direction>Random(60, 200, 1) Then $ResizeBad27_Direction=0 If $MousePos[0]<$ResizeBad27x Then $Random27=Random(-10, 1, 1) Else $Random27=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad27y Then $Random27b=Random(-10, 1, 1) Else $Random27b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad28_Direction>Random(60, 200, 1) Then $ResizeBad28_Direction=0 If $MousePos[0]<$ResizeBad28x Then $Random28=Random(-10, 1, 1) Else $Random28=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad28y Then $Random28b=Random(-10, 1, 1) Else $Random28b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad29_Direction>Random(60, 200, 1) Then $ResizeBad29_Direction=0 If $MousePos[0]<$ResizeBad29x Then $Random29=Random(-10, 1, 1) Else $Random29=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad29y Then $Random29b=Random(-10, 1, 1) Else $Random29b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad30_Direction>Random(60, 200, 1) Then $ResizeBad30_Direction=0 If $MousePos[0]<$ResizeBad30x Then $Random30=Random(-10, 1, 1) Else $Random30=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad30y Then $Random30b=Random(-10, 1, 1) Else $Random30b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad31_Direction>Random(60, 200, 1) Then $ResizeBad31_Direction=0 If $MousePos[0]<$ResizeBad31x Then $Random31=Random(-10, 1, 1) Else $Random31=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad31y Then $Random31b=Random(-10, 1, 1) Else $Random31b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad32_Direction>Random(60, 200, 1) Then $ResizeBad32_Direction=0 If $MousePos[0]<$ResizeBad32x Then $Random32=Random(-10, 1, 1) Else $Random32=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad32y Then $Random32b=Random(-10, 1, 1) Else $Random32b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad33_Direction>Random(60, 200, 1) Then $ResizeBad33_Direction=0 If $MousePos[0]<$ResizeBad33x Then $Random33=Random(-10, 1, 1) Else $Random33=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad33y Then $Random33b=Random(-10, 1, 1) Else $Random33b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad34_Direction>Random(60, 200, 1) Then $ResizeBad34_Direction=0 If $MousePos[0]<$ResizeBad34x Then $Random34=Random(-10, 1, 1) Else $Random34=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad34y Then $Random34b=Random(-10, 1, 1) Else $Random34b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad35_Direction>Random(60, 200, 1) Then $ResizeBad35_Direction=0 If $MousePos[0]<$ResizeBad35x Then $Random35=Random(-10, 1, 1) Else $Random35=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad35y Then $Random35b=Random(-10, 1, 1) Else $Random35b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad36_Direction>Random(60, 200, 1) Then $ResizeBad36_Direction=0 If $MousePos[0]<$ResizeBad36x Then $Random36=Random(-10, 1, 1) Else $Random36=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad36y Then $Random36b=Random(-10, 1, 1) Else $Random36b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad37_Direction>Random(60, 200, 1) Then $ResizeBad37_Direction=0 If $MousePos[0]<$ResizeBad37x Then $Random37=Random(-10, 1, 1) Else $Random37=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad37y Then $Random37b=Random(-10, 1, 1) Else $Random37b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad38_Direction>Random(60, 200, 1) Then $ResizeBad38_Direction=0 If $MousePos[0]<$ResizeBad38x Then $Random38=Random(-10, 1, 1) Else $Random38=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad38y Then $Random38b=Random(-10, 1, 1) Else $Random38b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad39_Direction>Random(60, 200, 1) Then $ResizeBad39_Direction=0 If $MousePos[0]<$ResizeBad39x Then $Random39=Random(-10, 1, 1) Else $Random39=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad39y Then $Random39b=Random(-10, 1, 1) Else $Random39b=Random(-1, 10, 1) EndIf EndIf If $ResizeBad40_Direction>Random(60, 200, 1) Then $ResizeBad40_Direction=0 If $MousePos[0]<$ResizeBad40x Then $Random40=Random(-10, 1, 1) Else $Random40=Random(-1, 10, 1) EndIf If $MousePos[1]<$ResizeBad40y Then $Random40b=Random(-10, 1, 1) Else $Random40b=Random(-1, 10, 1) EndIf EndIf $ResizeBad1x+=$Random1 $ResizeBad1y+=$Random1b $ResizeBad2x+=$Random2 $ResizeBad2y+=$Random2b $ResizeBad3x+=$Random3 $ResizeBad3y+=$Random3b $ResizeBad4x+=$Random4 $ResizeBad4y+=$Random4b $ResizeBad5x+=$Random5 $ResizeBad5y+=$Random5b $ResizeBad6x+=$Random6 $ResizeBad6y+=$Random6b $ResizeBad7x+=$Random7 $ResizeBad7y+=$Random7b $ResizeBad8x+=$Random8 $ResizeBad8y+=$Random8b $ResizeBad9x+=$Random9 $ResizeBad9y+=$Random9b $ResizeBad10x+=$Random10 $ResizeBad10y+=$Random10b $ResizeBad11x+=$Random11 $ResizeBad11y+=$Random11b $ResizeBad12x+=$Random12 $ResizeBad12y+=$Random12b $ResizeBad13x+=$Random13 $ResizeBad13y+=$Random13b $ResizeBad14x+=$Random14 $ResizeBad14y+=$Random14b $ResizeBad15x+=$Random15 $ResizeBad15y+=$Random15b $ResizeBad16x+=$Random16 $ResizeBad16y+=$Random16b $ResizeBad17x+=$Random17 $ResizeBad17y+=$Random17b $ResizeBad18x+=$Random18 $ResizeBad18y+=$Random18b $ResizeBad19x+=$Random19 $ResizeBad19y+=$Random19b $ResizeBad20x+=$Random20 $ResizeBad20y+=$Random20b $ResizeBad21x+=$Random21 $ResizeBad21y+=$Random21b $ResizeBad22x+=$Random22 $ResizeBad22y+=$Random22b $ResizeBad23x+=$Random23 $ResizeBad23y+=$Random23b $ResizeBad24x+=$Random24 $ResizeBad24y+=$Random24b $ResizeBad25x+=$Random25 $ResizeBad25y+=$Random25b $ResizeBad26x+=$Random26 $ResizeBad26y+=$Random26b $ResizeBad27x+=$Random27 $ResizeBad27y+=$Random27b $ResizeBad28x+=$Random28 $ResizeBad28y+=$Random28b $ResizeBad29x+=$Random29 $ResizeBad29y+=$Random29b $ResizeBad30x+=$Random30 $ResizeBad30y+=$Random30b $ResizeBad31x+=$Random31 $ResizeBad31y+=$Random31b $ResizeBad32x+=$Random32 $ResizeBad32y+=$Random32b $ResizeBad33x+=$Random33 $ResizeBad33y+=$Random33b $ResizeBad34x+=$Random34 $ResizeBad34y+=$Random34b $ResizeBad35x+=$Random35 $ResizeBad35y+=$Random35b $ResizeBad36x+=$Random36 $ResizeBad36y+=$Random36b $ResizeBad37x+=$Random37 $ResizeBad37y+=$Random37b $ResizeBad38x+=$Random38 $ResizeBad38y+=$Random38b $ResizeBad39x+=$Random39 $ResizeBad39y+=$Random39b $ResizeBad40x+=$Random40 $ResizeBad40y+=$Random40b If $ResizeBad1x<0 Then $ResizeBad1x=1 If $ResizeBad1x>1200 Then $ResizeBad1x=1199 If $ResizeBad1y<0 Then $ResizeBad1y=1 If $ResizeBad1y>800 Then $ResizeBad1y=799 If $ResizeBad2x<0 Then $ResizeBad2x=1 If $ResizeBad2x>1200 Then $ResizeBad2x=1199 If $ResizeBad2y<0 Then $ResizeBad2y=1 If $ResizeBad2y>800 Then $ResizeBad2y=799 If $ResizeBad3x<0 Then $ResizeBad3x=1 If $ResizeBad3x>1200 Then $ResizeBad3x=1199 If $ResizeBad3y<0 Then $ResizeBad3y=1 If $ResizeBad3y>800 Then $ResizeBad3y=799 If $ResizeBad4x<0 Then $ResizeBad4x=1 If $ResizeBad4x>1200 Then $ResizeBad4x=1199 If $ResizeBad4y<0 Then $ResizeBad4y=1 If $ResizeBad4y>800 Then $ResizeBad4y=799 If $ResizeBad5x<0 Then $ResizeBad5x=1 If $ResizeBad5x>1200 Then $ResizeBad5x=1199 If $ResizeBad5y<0 Then $ResizeBad5y=1 If $ResizeBad5y>800 Then $ResizeBad5y=799 If $ResizeBad6x<0 Then $ResizeBad6x=1 If $ResizeBad6x>1200 Then $ResizeBad6x=1199 If $ResizeBad6y<0 Then $ResizeBad6y=1 If $ResizeBad6y>800 Then $ResizeBad6y=799 If $ResizeBad7x<0 Then $ResizeBad7x=1 If $ResizeBad7x>1200 Then $ResizeBad7x=1199 If $ResizeBad7y<0 Then $ResizeBad7y=1 If $ResizeBad7y>800 Then $ResizeBad7y=799 If $ResizeBad8x<0 Then $ResizeBad8x=1 If $ResizeBad8x>1200 Then $ResizeBad8x=1199 If $ResizeBad8y<0 Then $ResizeBad8y=1 If $ResizeBad8y>800 Then $ResizeBad8y=799 If $ResizeBad9x<0 Then $ResizeBad9x=1 If $ResizeBad9x>1200 Then $ResizeBad9x=1199 If $ResizeBad9y<0 Then $ResizeBad9y=1 If $ResizeBad9y>800 Then $ResizeBad9y=799 If $ResizeBad10x<0 Then $ResizeBad10x=1 If $ResizeBad10x>1200 Then $ResizeBad10x=1199 If $ResizeBad10y<0 Then $ResizeBad10y=1 If $ResizeBad10y>800 Then $ResizeBad10y=799 If $ResizeBad11x<0 Then $ResizeBad11x=1 If $ResizeBad11x>1200 Then $ResizeBad11x=1199 If $ResizeBad11y<0 Then $ResizeBad11y=1 If $ResizeBad11y>800 Then $ResizeBad11y=799 If $ResizeBad12x<0 Then $ResizeBad12x=1 If $ResizeBad12x>1200 Then $ResizeBad12x=1199 If $ResizeBad12y<0 Then $ResizeBad12y=1 If $ResizeBad12y>800 Then $ResizeBad12y=799 If $ResizeBad13x<0 Then $ResizeBad13x=1 If $ResizeBad13x>1200 Then $ResizeBad13x=1199 If $ResizeBad13y<0 Then $ResizeBad13y=1 If $ResizeBad13y>800 Then $ResizeBad13y=799 If $ResizeBad14x<0 Then $ResizeBad14x=1 If $ResizeBad14x>1200 Then $ResizeBad14x=1199 If $ResizeBad14y<0 Then $ResizeBad14y=1 If $ResizeBad14y>800 Then $ResizeBad14y=799 If $ResizeBad15x<0 Then $ResizeBad15x=1 If $ResizeBad15x>1200 Then $ResizeBad15x=1199 If $ResizeBad15y<0 Then $ResizeBad15y=1 If $ResizeBad15y>800 Then $ResizeBad15y=799 If $ResizeBad16x<0 Then $ResizeBad16x=1 If $ResizeBad16x>1200 Then $ResizeBad16x=1199 If $ResizeBad16y<0 Then $ResizeBad16y=1 If $ResizeBad16y>800 Then $ResizeBad16y=799 If $ResizeBad17x<0 Then $ResizeBad17x=1 If $ResizeBad17x>1200 Then $ResizeBad17x=1199 If $ResizeBad17y<0 Then $ResizeBad17y=1 If $ResizeBad17y>800 Then $ResizeBad17y=799 If $ResizeBad18x<0 Then $ResizeBad18x=1 If $ResizeBad18x>1200 Then $ResizeBad18x=1199 If $ResizeBad18y<0 Then $ResizeBad18y=1 If $ResizeBad18y>800 Then $ResizeBad18y=799 If $ResizeBad19x<0 Then $ResizeBad19x=1 If $ResizeBad19x>1200 Then $ResizeBad19x=1199 If $ResizeBad19y<0 Then $ResizeBad19y=1 If $ResizeBad19y>800 Then $ResizeBad19y=799 If $ResizeBad20x<0 Then $ResizeBad20x=1 If $ResizeBad20x>1200 Then $ResizeBad20x=1199 If $ResizeBad20y<0 Then $ResizeBad20y=1 If $ResizeBad20y>800 Then $ResizeBad20y=799 If $ResizeBad21x<0 Then $ResizeBad21x=1 If $ResizeBad21x>1200 Then $ResizeBad21x=1199 If $ResizeBad21y<0 Then $ResizeBad21y=1 If $ResizeBad21y>800 Then $ResizeBad21y=799 If $ResizeBad22x<0 Then $ResizeBad22x=1 If $ResizeBad22x>1200 Then $ResizeBad22x=1199 If $ResizeBad22y<0 Then $ResizeBad22y=1 If $ResizeBad22y>800 Then $ResizeBad22y=799 If $ResizeBad23x<0 Then $ResizeBad23x=1 If $ResizeBad23x>1200 Then $ResizeBad23x=1199 If $ResizeBad23y<0 Then $ResizeBad23y=1 If $ResizeBad23y>800 Then $ResizeBad23y=799 If $ResizeBad24x<0 Then $ResizeBad24x=1 If $ResizeBad24x>1200 Then $ResizeBad24x=1199 If $ResizeBad24y<0 Then $ResizeBad24y=1 If $ResizeBad24y>800 Then $ResizeBad24y=799 If $ResizeBad25x<0 Then $ResizeBad25x=1 If $ResizeBad25x>1200 Then $ResizeBad25x=1199 If $ResizeBad25y<0 Then $ResizeBad25y=1 If $ResizeBad25y>800 Then $ResizeBad25y=799 If $ResizeBad26x<0 Then $ResizeBad26x=1 If $ResizeBad26x>1200 Then $ResizeBad26x=1199 If $ResizeBad26y<0 Then $ResizeBad26y=1 If $ResizeBad26y>800 Then $ResizeBad26y=799 If $ResizeBad27x<0 Then $ResizeBad27x=1 If $ResizeBad27x>1200 Then $ResizeBad27x=1199 If $ResizeBad27y<0 Then $ResizeBad27y=1 If $ResizeBad27y>800 Then $ResizeBad27y=799 If $ResizeBad28x<0 Then $ResizeBad28x=1 If $ResizeBad28x>1200 Then $ResizeBad28x=1199 If $ResizeBad28y<0 Then $ResizeBad28y=1 If $ResizeBad28y>800 Then $ResizeBad8y=799 If $ResizeBad29x<0 Then $ResizeBad29x=1 If $ResizeBad29x>1200 Then $ResizeBad29x=1199 If $ResizeBad29y<0 Then $ResizeBad29y=1 If $ResizeBad29y>800 Then $ResizeBad29y=799 If $ResizeBad30x<0 Then $ResizeBad30x=1 If $ResizeBad30x>1200 Then $ResizeBad30x=1199 If $ResizeBad30y<0 Then $ResizeBad30y=1 If $ResizeBad30y>800 Then $ResizeBad30y=799 If $ResizeBad31x<0 Then $ResizeBad31x=1 If $ResizeBad31x>1200 Then $ResizeBad31x=1199 If $ResizeBad31y<0 Then $ResizeBad31y=1 If $ResizeBad31y>800 Then $ResizeBad31y=799 If $ResizeBad32x<0 Then $ResizeBad32x=1 If $ResizeBad32x>1200 Then $ResizeBad32x=1199 If $ResizeBad32y<0 Then $ResizeBad32y=1 If $ResizeBad32y>800 Then $ResizeBad32y=799 If $ResizeBad33x<0 Then $ResizeBad33x=1 If $ResizeBad33x>1200 Then $ResizeBad33x=1199 If $ResizeBad33y<0 Then $ResizeBad33y=1 If $ResizeBad33y>800 Then $ResizeBad33y=799 If $ResizeBad34x<0 Then $ResizeBad34x=1 If $ResizeBad34x>1200 Then $ResizeBad34x=1199 If $ResizeBad34y<0 Then $ResizeBad34y=1 If $ResizeBad34y>800 Then $ResizeBad34y=799 If $ResizeBad35x<0 Then $ResizeBad35x=1 If $ResizeBad35x>1200 Then $ResizeBad35x=1199 If $ResizeBad35y<0 Then $ResizeBad35y=1 If $ResizeBad35y>800 Then $ResizeBad35y=799 If $ResizeBad36x<0 Then $ResizeBad36x=1 If $ResizeBad36x>1200 Then $ResizeBad36x=1199 If $ResizeBad36y<0 Then $ResizeBad36y=1 If $ResizeBad36y>800 Then $ResizeBad36y=799 If $ResizeBad37x<0 Then $ResizeBad37x=1 If $ResizeBad37x>1200 Then $ResizeBad37x=1199 If $ResizeBad37y<0 Then $ResizeBad37y=1 If $ResizeBad37y>800 Then $ResizeBad37y=799 If $ResizeBad38x<0 Then $ResizeBad38x=1 If $ResizeBad38x>1200 Then $ResizeBad38x=1199 If $ResizeBad38y<0 Then $ResizeBad38y=1 If $ResizeBad38y>800 Then $ResizeBad38y=799 If $ResizeBad39x<0 Then $ResizeBad39x=1 If $ResizeBad39x>1200 Then $ResizeBad39x=1199 If $ResizeBad39y<0 Then $ResizeBad39y=1 If $ResizeBad39y>800 Then $ResizeBad39y=799 If $ResizeBad40x<0 Then $ResizeBad40x=1 If $ResizeBad40x>1200 Then $ResizeBad40x=1199 If $ResizeBad40y<0 Then $ResizeBad40y=1 If $ResizeBad40y>800 Then $ResizeBad40y=799 If $1>210 Then $1=0 If $1>107 Then $ResizeBads-=1 If $1<105 Then $ResizeBads+=1 If $1>102 Then $ResizeBads2+=1 If $1<105 Then $ResizeBads2-=1 GUICtrlSetPos($ResizeBad1, $ResizeBad1x-$ResizeBads/1.9, $ResizeBad1y-$ResizeBads/1.9, $ResizeBads, $ResizeBads) GUICtrlSetPos($ResizeBad2, $ResizeBad2x-$ResizeBads/1.9, $ResizeBad2y-$ResizeBads/1.9, $ResizeBads, $ResizeBads) GUICtrlSetPos($ResizeBad3, $ResizeBad3x-$ResizeBads/1.9, $ResizeBad3y-$ResizeBads/1.9, $ResizeBads, $ResizeBads) GUICtrlSetPos($ResizeBad4, $ResizeBad4x-$ResizeBads/1.9, $ResizeBad4y-$ResizeBads/1.9, $ResizeBads, $ResizeBads) GUICtrlSetPos($ResizeBad5, $ResizeBad5x-$ResizeBads/1.9, $ResizeBad5y-$ResizeBads/1.9, $ResizeBads, $ResizeBads) GUICtrlSetPos($ResizeBad6, $ResizeBad6x-$ResizeBads2/1.9, $ResizeBad6y-$ResizeBads2/1.9, $ResizeBads2, $ResizeBads2) GUICtrlSetPos($ResizeBad7, $ResizeBad7x-$ResizeBads2/1.9, $ResizeBad7y-$ResizeBads2/1.9, $ResizeBads2, $ResizeBads2) GUICtrlSetPos($ResizeBad8, $ResizeBad8x-$ResizeBads2/1.9, $ResizeBad8y-$ResizeBads2/1.9, $ResizeBads2, $ResizeBads2) GUICtrlSetPos($ResizeBad9, $ResizeBad9x-$ResizeBads2/1.9, $ResizeBad9y-$ResizeBads2/1.9, $ResizeBads2, $ResizeBads2) GUICtrlSetPos($ResizeBad10, $ResizeBad10x-$ResizeBads2/1.9, $ResizeBad10y-$ResizeBads2/1.9, $ResizeBads2, $ResizeBads2) GUICtrlSetPos($ResizeBad11, $ResizeBad11x-$ResizeBads/1.9, $ResizeBad11y-$ResizeBads/1.9, $ResizeBads, $ResizeBads) GUICtrlSetPos($ResizeBad12, $ResizeBad12x-$ResizeBads/1.9, $ResizeBad12y-$ResizeBads/1.9, $ResizeBads, $ResizeBads) GUICtrlSetPos($ResizeBad13, $ResizeBad13x-$ResizeBads/1.9, $ResizeBad13y-$ResizeBads/1.9, $ResizeBads, $ResizeBads) GUICtrlSetPos($ResizeBad14, $ResizeBad14x-$ResizeBads/1.9, $ResizeBad14y-$ResizeBads/1.9, $ResizeBads, $ResizeBads) GUICtrlSetPos($ResizeBad15, $ResizeBad15x-$ResizeBads/1.9, $ResizeBad15y-$ResizeBads/1.9, $ResizeBads, $ResizeBads) GUICtrlSetPos($ResizeBad16, $ResizeBad16x-$ResizeBads2/1.9, $ResizeBad16y-$ResizeBads2/1.9, $ResizeBads2, $ResizeBads2) GUICtrlSetPos($ResizeBad17, $ResizeBad17x-$ResizeBads2/1.9, $ResizeBad17y-$ResizeBads2/1.9, $ResizeBads2, $ResizeBads2) GUICtrlSetPos($ResizeBad18, $ResizeBad18x-$ResizeBads2/1.9, $ResizeBad18y-$ResizeBads2/1.9, $ResizeBads2, $ResizeBads2) GUICtrlSetPos($ResizeBad19, $ResizeBad19x-$ResizeBads2/1.9, $ResizeBad19y-$ResizeBads2/1.9, $ResizeBads2, $ResizeBads2) GUICtrlSetPos($ResizeBad20, $ResizeBad20x-$ResizeBads2/1.9, $ResizeBad20y-$ResizeBads2/1.9, $ResizeBads2, $ResizeBads2) GUICtrlSetPos($ResizeBad21, $ResizeBad21x-$ResizeBads/1.9, $ResizeBad21y-$ResizeBads/1.9, $ResizeBads, $ResizeBads) GUICtrlSetPos($ResizeBad22, $ResizeBad22x-$ResizeBads/1.9, $ResizeBad22y-$ResizeBads/1.9, $ResizeBads, $ResizeBads) GUICtrlSetPos($ResizeBad23, $ResizeBad23x-$ResizeBads/1.9, $ResizeBad23y-$ResizeBads/1.9, $ResizeBads, $ResizeBads) GUICtrlSetPos($ResizeBad24, $ResizeBad24x-$ResizeBads/1.9, $ResizeBad24y-$ResizeBads/1.9, $ResizeBads, $ResizeBads) GUICtrlSetPos($ResizeBad25, $ResizeBad25x-$ResizeBads/1.9, $ResizeBad25y-$ResizeBads/1.9, $ResizeBads, $ResizeBads) GUICtrlSetPos($ResizeBad26, $ResizeBad26x-$ResizeBads2/1.9, $ResizeBad26y-$ResizeBads2/1.9, $ResizeBads2, $ResizeBads2) GUICtrlSetPos($ResizeBad27, $ResizeBad27x-$ResizeBads2/1.9, $ResizeBad27y-$ResizeBads2/1.9, $ResizeBads2, $ResizeBads2) GUICtrlSetPos($ResizeBad28, $ResizeBad28x-$ResizeBads2/1.9, $ResizeBad28y-$ResizeBads2/1.9, $ResizeBads2, $ResizeBads2) GUICtrlSetPos($ResizeBad29, $ResizeBad29x-$ResizeBads2/1.9, $ResizeBad29y-$ResizeBads2/1.9, $ResizeBads2, $ResizeBads2) GUICtrlSetPos($ResizeBad30, $ResizeBad30x-$ResizeBads2/1.9, $ResizeBad30y-$ResizeBads2/1.9, $ResizeBads2, $ResizeBads2) GUICtrlSetPos($ResizeBad31, $ResizeBad31x-$ResizeBads/1.9, $ResizeBad31y-$ResizeBads/1.9, $ResizeBads, $ResizeBads) GUICtrlSetPos($ResizeBad32, $ResizeBad32x-$ResizeBads/1.9, $ResizeBad32y-$ResizeBads/1.9, $ResizeBads, $ResizeBads) GUICtrlSetPos($ResizeBad33, $ResizeBad33x-$ResizeBads/1.9, $ResizeBad33y-$ResizeBads/1.9, $ResizeBads, $ResizeBads) GUICtrlSetPos($ResizeBad34, $ResizeBad34x-$ResizeBads/1.9, $ResizeBad34y-$ResizeBads/1.9, $ResizeBads, $ResizeBads) GUICtrlSetPos($ResizeBad35, $ResizeBad35x-$ResizeBads/1.9, $ResizeBad35y-$ResizeBads/1.9, $ResizeBads, $ResizeBads) GUICtrlSetPos($ResizeBad36, $ResizeBad36x-$ResizeBads2/1.9, $ResizeBad36y-$ResizeBads2/1.9, $ResizeBads2, $ResizeBads2) GUICtrlSetPos($ResizeBad37, $ResizeBad37x-$ResizeBads2/1.9, $ResizeBad37y-$ResizeBads2/1.9, $ResizeBads2, $ResizeBads2) GUICtrlSetPos($ResizeBad38, $ResizeBad38x-$ResizeBads2/1.9, $ResizeBad38y-$ResizeBads2/1.9, $ResizeBads2, $ResizeBads2) GUICtrlSetPos($ResizeBad39, $ResizeBad39x-$ResizeBads2/1.9, $ResizeBad39y-$ResizeBads2/1.9, $ResizeBads2, $ResizeBads2) GUICtrlSetPos($ResizeBad40, $ResizeBad40x-$ResizeBads2/1.9, $ResizeBad40y-$ResizeBads2/1.9, $ResizeBads2, $ResizeBads2) EndFunc Func Case0() $Steps=1 If TimerDiff($Timer)>10000 Then $Steps=2 If TimerDiff($Timer)>20000 Then $Steps=3 If TimerDiff($Timer)>40000 Then $Steps=4 If TimerDiff($Timer)>80000 Then $Steps=5 If TimerDiff($Timer)>120000 Then $Steps=6 Sleep(1) If $MousePos[1]<100 and $MousePos[1]>0 Then If $MousePos[0]-50>$HorizontalBad1x Then $HorizontalBad1x+=$Steps If $MousePos[0]-50<$HorizontalBad1x Then $HorizontalBad1x-=$Steps GUICtrlSetPos($HorizontalBad1, $HorizontalBad1x, 0) EndIf If $MousePos[1]<200 and $MousePos[1]>100 Then If $MousePos[0]-50>$HorizontalBad2x Then $HorizontalBad2x+=$Steps If $MousePos[0]-50<$HorizontalBad2x Then $HorizontalBad2x-=$Steps GUICtrlSetPos($HorizontalBad2, $HorizontalBad2x, 100) EndIf If $MousePos[1]<300 and $MousePos[1]>200 Then If $MousePos[0]-50>$HorizontalBad3x Then $HorizontalBad3x+=$Steps If $MousePos[0]-50<$HorizontalBad3x Then $HorizontalBad3x-=$Steps GUICtrlSetPos($HorizontalBad3, $HorizontalBad3x, 200) EndIf If $MousePos[1]<400 and $MousePos[1]>300 Then If $MousePos[0]-50>$HorizontalBad4x Then $HorizontalBad4x+=$Steps If $MousePos[0]-50<$HorizontalBad4x Then $HorizontalBad4x-=$Steps GUICtrlSetPos($HorizontalBad4, $HorizontalBad4x, 300) EndIf If $MousePos[1]<500 and $MousePos[1]>400 Then If $MousePos[0]-50>$HorizontalBad5x Then $HorizontalBad5x+=$Steps If $MousePos[0]-50<$HorizontalBad5x Then $HorizontalBad5x-=$Steps GUICtrlSetPos($HorizontalBad5, $HorizontalBad5x, 400) EndIf If $MousePos[1]<600 and $MousePos[1]>500 Then If $MousePos[0]-50>$HorizontalBad6x Then $HorizontalBad6x+=$Steps If $MousePos[0]-50<$HorizontalBad6x Then $HorizontalBad6x-=$Steps GUICtrlSetPos($HorizontalBad6, $HorizontalBad6x, 500) EndIf If $MousePos[1]<700 and $MousePos[1]>600 Then If $MousePos[0]-50>$HorizontalBad7x Then $HorizontalBad7x+=$Steps If $MousePos[0]-50<$HorizontalBad7x Then $HorizontalBad7x-=$Steps GUICtrlSetPos($HorizontalBad7, $HorizontalBad7x, 600) EndIf If $MousePos[1]<800 and $MousePos[1]>700 Then If $MousePos[0]-50>$HorizontalBad8x Then $HorizontalBad8x+=$Steps If $MousePos[0]-50<$HorizontalBad8x Then $HorizontalBad8x-=$Steps GUICtrlSetPos($HorizontalBad8, $HorizontalBad8x, 700) EndIf If $MousePos[0]<100 and $MousePos[0]>0 Then If $MousePos[1]-50>$VerticalBad1y Then $VerticalBad1y+=$Steps If $MousePos[1]-50<$VerticalBad1y Then $VerticalBad1y-=$Steps GUICtrlSetPos($VerticalBad1, 0, $VerticalBad1y) EndIf If $MousePos[0]<200 and $MousePos[0]>100 Then If $MousePos[1]-50>$VerticalBad2y Then $VerticalBad2y+=$Steps If $MousePos[1]-50<$VerticalBad2y Then $VerticalBad2y-=$Steps GUICtrlSetPos($VerticalBad2, 100, $VerticalBad2y) EndIf If $MousePos[0]<300 and $MousePos[0]>200 Then If $MousePos[1]-50>$VerticalBad3y Then $VerticalBad3y+=$Steps If $MousePos[1]-50<$VerticalBad3y Then $VerticalBad3y-=$Steps GUICtrlSetPos($VerticalBad3, 200, $VerticalBad3y) EndIf If $MousePos[0]<400 and $MousePos[0]>300 Then If $MousePos[1]-50>$VerticalBad4y Then $VerticalBad4y+=$Steps If $MousePos[1]-50<$VerticalBad4y Then $VerticalBad4y-=$Steps GUICtrlSetPos($VerticalBad4, 300, $VerticalBad4y) EndIf If $MousePos[0]<500 and $MousePos[0]>400 Then If $MousePos[1]-50>$VerticalBad5y Then $VerticalBad5y+=$Steps If $MousePos[1]-50<$VerticalBad5y Then $VerticalBad5y-=$Steps GUICtrlSetPos($VerticalBad5, 400, $VerticalBad5y) EndIf If $MousePos[0]<600 and $MousePos[0]>500 Then If $MousePos[1]-50>$VerticalBad6y Then $VerticalBad6y+=$Steps If $MousePos[1]-50<$VerticalBad6y Then $VerticalBad6y-=$Steps GUICtrlSetPos($VerticalBad6, 500, $VerticalBad6y) EndIf If $MousePos[0]<700 and $MousePos[0]>600 Then If $MousePos[1]-50>$VerticalBad7y Then $VerticalBad7y+=$Steps If $MousePos[1]-50<$VerticalBad7y Then $VerticalBad7y-=$Steps GUICtrlSetPos($VerticalBad7, 600, $VerticalBad7y) EndIf If $MousePos[0]<800 and $MousePos[0]>700 Then If $MousePos[1]-50>$VerticalBad8y Then $VerticalBad8y+=$Steps If $MousePos[1]-50<$VerticalBad8y Then $VerticalBad8y-=$Steps GUICtrlSetPos($VerticalBad8, 700, $VerticalBad8y) EndIf If $MousePos[0]<900 and $MousePos[0]>800 Then If $MousePos[1]-50>$VerticalBad9y Then $VerticalBad9y+=$Steps If $MousePos[1]-50<$VerticalBad9y Then $VerticalBad9y-=$Steps GUICtrlSetPos($VerticalBad9, 800, $VerticalBad9y) EndIf If $MousePos[0]<1000 and $MousePos[0]>900 Then If $MousePos[1]-50>$VerticalBad10y Then $VerticalBad10y+=$Steps If $MousePos[1]-50<$VerticalBad10y Then $VerticalBad10y-=$Steps GUICtrlSetPos($VerticalBad10, 900, $VerticalBad10y) EndIf If $MousePos[0]<1100 and $MousePos[0]>1000 Then If $MousePos[1]-50>$VerticalBad11y Then $VerticalBad11y+=$Steps If $MousePos[1]-50<$VerticalBad11y Then $VerticalBad11y-=$Steps GUICtrlSetPos($VerticalBad11, 1000, $VerticalBad11y) EndIf If $MousePos[0]<1200 and $MousePos[0]>1100 Then If $MousePos[1]-50>$VerticalBad12y Then $VerticalBad12y+=$Steps If $MousePos[1]-50<$VerticalBad12y Then $VerticalBad12y-=$Steps GUICtrlSetPos($VerticalBad12, 1100, $VerticalBad12y) EndIf EndFunc Func GameMenu() GUICtrlSetState($Stage0, $GUI_SHOW) GUICtrlSetState($Stage1, $GUI_SHOW) GUICtrlSetState($Stage2, $GUI_SHOW) While 1 $msg=GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE Exit Case $Stage0 $CurrentState=0 StartState0() ExitLoop Case $Stage1 $CurrentState=1 StartState1() ExitLoop Case $Stage2 $CurrentState=2 StartState2() ExitLoop EndSwitch WEnd GUICtrlSetState($Stage0, $GUI_HIDE) GUICtrlSetState($Stage1, $GUI_HIDE) GUICtrlSetState($Stage2, $GUI_HIDE) $Timer=TimerInit() EndFunc Func StartState0() $HorizontalBad1x=-100 $HorizontalBad2x=1200 $HorizontalBad3x=-100 $HorizontalBad4x=1200 $HorizontalBad5x=-100 $HorizontalBad6x=1200 $HorizontalBad7x=-100 $HorizontalBad8x=1200 $VerticalBad1y=-100 $VerticalBad2y=800 $VerticalBad3y=-100 $VerticalBad4y=800 $VerticalBad5y=-100 $VerticalBad6y=800 $VerticalBad7y=-100 $VerticalBad8y=800 $VerticalBad9y=-100 $VerticalBad10y=800 $VerticalBad11y=-100 $VerticalBad12y=800 $Timer=TimerInit() EndFunc Func Restartgame0() Local $ReadIni1="" Local $ReadIni2="" Local $ReadIni3="" $FinalTime=TimerDiff($Timer) GUICtrlSetPos($HorizontalBad1, -100, 0) GUICtrlSetPos($HorizontalBad2, 1200, 100) GUICtrlSetPos($HorizontalBad3, -100, 200) GUICtrlSetPos($HorizontalBad4, 1200, 300) GUICtrlSetPos($HorizontalBad5, -100, 400) GUICtrlSetPos($HorizontalBad6, 1200, 500) GUICtrlSetPos($HorizontalBad7, -100, 600) GUICtrlSetPos($HorizontalBad8, 1200, 700) GUICtrlSetPos($VerticalBad1, 0, -100) GUICtrlSetPos($VerticalBad2, 0, 800) GUICtrlSetPos($VerticalBad3, 0, -100) GUICtrlSetPos($VerticalBad4, 0, 800) GUICtrlSetPos($VerticalBad5, 0, -100) GUICtrlSetPos($VerticalBad6, 0, 800) GUICtrlSetPos($VerticalBad7, 0, -100) GUICtrlSetPos($VerticalBad8, 0, 800) GUICtrlSetPos($VerticalBad9, 0, -100) GUICtrlSetPos($VerticalBad10, 0, 800) GUICtrlSetPos($VerticalBad11, 0, -100) GUICtrlSetPos($VerticalBad12, 0, 800) $ReadIni1=IniRead(@ScriptDir & "\Score.ini", "Stage 0 1st", "Score", "0") $ReadIni2=IniRead(@ScriptDir & "\Score.ini", "Stage 0 2nd", "Score", "0") $ReadIni3=IniRead(@ScriptDir & "\Score.ini", "Stage 0 3rd", "Score", "0") $ReadIni1Name=IniRead(@ScriptDir & "\Score.ini", "Stage 0 1st", "Name", "") $ReadIni2Name=IniRead(@ScriptDir & "\Score.ini", "Stage 0 2nd", "Name", "") $ReadIni3Name=IniRead(@ScriptDir & "\Score.ini", "Stage 0 3rd", "Name", "") GUICtrlSetData($PointLabel, "Score: " & $FinalTime & " milliseconds") If $ReadIni1<>"0" Then If $ReadIni1<$FinalTime Then $Name=InputBox("New High Score!", "What's your name?") If Not @error=1 Then IniWrite(@ScriptDir & "\Score.ini", "Stage 0 1st", "Score", $FinalTime) IniWrite(@ScriptDir & "\Score.ini", "Stage 0 1st", "Name", $Name) IniWrite(@ScriptDir & "\Score.ini", "Stage 0 2nd", "Score", $ReadIni1) IniWrite(@ScriptDir & "\Score.ini", "Stage 0 2nd", "Name", $ReadIni1Name) IniWrite(@ScriptDir & "\Score.ini", "Stage 0 3rd", "Score", $ReadIni2) IniWrite(@ScriptDir & "\Score.ini", "Stage 0 3rd", "Name", $ReadIni2Name) EndIf ElseIf $ReadIni2<$FinalTime Then $Name=InputBox("Second Place!", "What's your name?") If Not @error=1 Then IniWrite(@ScriptDir & "\Score.ini", "Stage 0 2nd", "Score", $FinalTime) IniWrite(@ScriptDir & "\Score.ini", "Stage 0 2nd", "Name", $Name) IniWrite(@ScriptDir & "\Score.ini", "Stage 0 3rd", "Score", $ReadIni2) IniWrite(@ScriptDir & "\Score.ini", "Stage 0 3rd", "Name", $ReadIni2Name) EndIf ElseIf $ReadIni3<$FinalTime Then $Name=InputBox("Third Place!", "What's your name?") If Not @error=1 Then IniWrite(@ScriptDir & "\Score.ini", "Stage 0 3rd", "Score", $FinalTime) IniWrite(@ScriptDir & "\Score.ini", "Stage 0 3rd", "Name", $Name) EndIf EndIf Else $Name=InputBox("New High Score!", "What's your name?") If Not @error=1 Then IniWrite(@ScriptDir & "\Score.ini", "Stage 0 1st", "Score", $FinalTime) IniWrite(@ScriptDir & "\Score.ini", "Stage 0 1st", "Name", $Name) EndIf EndIf $ReadIni1=IniRead(@ScriptDir & "\Score.ini", "Stage 0 1st", "Score", "0") $ReadIni1Name=IniRead(@ScriptDir & "\Score.ini", "Stage 0 1st", "Name", "") $ReadIni2=IniRead(@ScriptDir & "\Score.ini", "Stage 0 2nd", "Score", "0") $ReadIni2Name=IniRead(@ScriptDir & "\Score.ini", "Stage 0 2nd", "Name", "") $ReadIni3=IniRead(@ScriptDir & "\Score.ini", "Stage 0 3rd", "Score", "0") $ReadIni3Name=IniRead(@ScriptDir & "\Score.ini", "Stage 0 3rd", "Name", "") GUICtrlSetData($Highscorelabel, $ReadIni1Name & ": " & $ReadIni1 & @CRLF & $ReadIni2Name & ": " & $ReadIni2 & @CRLF & $ReadIni3Name & ": " & $ReadIni3) GUICtrlSetState($PointLabel, $GUI_SHOW) GUICtrlSetState($Highscorelabel, $GUI_SHOW) GUICtrlSetState($ContinueLabel, $GUI_SHOW) While 1 $msg=GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE Exit EndSwitch If _IsPressed(01) Then $MousePos=GUIGetCursorInfo($Gui) If $MousePos[1]<800 and $MousePos[1]>0 and $MousePos[0]>0 and $MousePos[0]<1200 Then ExitLoop EndIf WEnd While _IsPressed(01) WEnd GUICtrlSetState($PointLabel, $GUI_HIDE) GUICtrlSetState($ContinueLabel, $GUI_HIDE) GUICtrlSetState($Highscorelabel, $GUI_HIDE) GameMenu() EndFunc
  15. Hmm, can't figure it out :S It first checks if it beat 1st, then 2nd, and then 3rd, writes it in the .ini, and then it reads the ini again to get the current score and puts it with 1st first and 3rd last? Is that why it doesn't work? If not it isn't really that important, it leaves the correct number as far as I can see :S
  16. Oh, I usually just set an esc hotkey for unfinished stuff Hmm, still didn't work fine, got 1666, and it didn't get on the list when another was 176, and 992 got on 1st when I alredy had 3157. (Small numbers cause I just test it..)
  17. Because it's in the same string as the name of the one that scored it from the .ini, and to remove the numbers behind the . from the timer, so it's just milliseconds
  18. #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <Misc.au3> HotKeySet("{ESC}", "Terminate") HotKeySet("{F5}", "ChangeScreenSize") Local $Timer=0, $CurrentState=0 $Gui=GUICreate("", 1200, 800) #region Stage 1 Local $HorizontalBad1x=-100 Local $HorizontalBad2x=1200 Local $HorizontalBad3x=-100 Local $HorizontalBad4x=1200 Local $HorizontalBad5x=-100 Local $HorizontalBad6x=1200 Local $HorizontalBad7x=-100 Local $HorizontalBad8x=1200 $HorizontalBad1=GUICtrlCreatePic(@ScriptDir & "\Bad2.jpg", -100, 0, 100, 100) $HorizontalBad2=GUICtrlCreatePic(@ScriptDir & "\Bad2.jpg", 1200, 100, 100, 100) $HorizontalBad3=GUICtrlCreatePic(@ScriptDir & "\Bad2.jpg", -100, 200, 100, 100) $HorizontalBad4=GUICtrlCreatePic(@ScriptDir & "\Bad2.jpg", 1200, 300, 100, 100) $HorizontalBad5=GUICtrlCreatePic(@ScriptDir & "\Bad2.jpg", -100, 400, 100, 100) $HorizontalBad6=GUICtrlCreatePic(@ScriptDir & "\Bad2.jpg", 1200, 500, 100, 100) $HorizontalBad7=GUICtrlCreatePic(@ScriptDir & "\Bad2.jpg", -100, 600, 100, 100) $HorizontalBad8=GUICtrlCreatePic(@ScriptDir & "\Bad2.jpg", 1200, 700, 100, 100) Local $VerticalBad1y=-100 Local $VerticalBad2y=800 Local $VerticalBad3y=-100 Local $VerticalBad4y=800 Local $VerticalBad5y=-100 Local $VerticalBad6y=800 Local $VerticalBad7y=-100 Local $VerticalBad8y=800 Local $VerticalBad9y=-100 Local $VerticalBad10y=800 Local $VerticalBad11y=-100 Local $VerticalBad12y=800 $VerticalBad1=GUICtrlCreatePic(@ScriptDir & "\Bad1.jpg", 0, -100, 100, 100) $VerticalBad2=GUICtrlCreatePic(@ScriptDir & "\Bad1.jpg", 0, 800, 100, 100) $VerticalBad3=GUICtrlCreatePic(@ScriptDir & "\Bad1.jpg", 0, -100, 100, 100) $VerticalBad4=GUICtrlCreatePic(@ScriptDir & "\Bad1.jpg", 0, 800, 100, 100) $VerticalBad5=GUICtrlCreatePic(@ScriptDir & "\Bad1.jpg", 0, -100, 100, 100) $VerticalBad6=GUICtrlCreatePic(@ScriptDir & "\Bad1.jpg", 0, 800, 100, 100) $VerticalBad7=GUICtrlCreatePic(@ScriptDir & "\Bad1.jpg", 0, -100, 100, 100) $VerticalBad8=GUICtrlCreatePic(@ScriptDir & "\Bad1.jpg", 0, 800, 100, 100) $VerticalBad9=GUICtrlCreatePic(@ScriptDir & "\Bad1.jpg", 0, -100, 100, 100) $VerticalBad10=GUICtrlCreatePic(@ScriptDir & "\Bad1.jpg", 0, 800, 100, 100) $VerticalBad11=GUICtrlCreatePic(@ScriptDir & "\Bad1.jpg", 0, -100, 100, 100) $VerticalBad12=GUICtrlCreatePic(@ScriptDir & "\Bad1.jpg", 0, 800, 100, 100) $PointLabel=GUICtrlCreateLabel("", 50, 330, 1150, 300) GUICtrlSetFont(-1, 35, 0, 0, "Comic Sans MS") GUICtrlSetState($PointLabel, $GUI_HIDE) $ContinueLabel=GUICtrlCreateLabel("Click to continue", 100, 700, 300, 50) GUICtrlSetFont(-1, 20, 0, 0, "Comic Sans MS") GUICtrlSetState($ContinueLabel, $GUI_HIDE) $Highscorelabel=GUICtrlCreateLabel("", 50, 0, 1150, 300) GUICtrlSetFont(-1, 25, 0, 0, "Comic Sans MS") GUICtrlSetState($Highscorelabel, $GUI_HIDE) #endregion Stage 1 $Label1=GUICtrlCreateLabel("Click to start!", 230, 330, 1000, 200) GUICtrlSetFont(-1, 60, 0, 0, "Comic Sans MS") GUISetState() GameMenu() While 1 $MousePos=GUIGetCursorInfo($Gui) If $MousePos[0]<0 or $MousePos[1]<0 or $MousePos[0]>1200 or $MousePos[1]>800 Then Restartgame() If $MousePos[4]<>0 Then Restartgame() $msg=GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE Exit EndSwitch Switch $CurrentState Case 0 Case0() EndSwitch WEnd Func Case0() $Steps=1 If TimerDiff($Timer)>10000 Then $Steps=2 If TimerDiff($Timer)>20000 Then $Steps=3 If TimerDiff($Timer)>40000 Then $Steps=4 If TimerDiff($Timer)>80000 Then $Steps=5 If TimerDiff($Timer)>120000 Then $Steps=6 Sleep(1) If $MousePos[1]<100 and $MousePos[1]>0 Then If $MousePos[0]-50>$HorizontalBad1x Then $HorizontalBad1x+=$Steps If $MousePos[0]-50<$HorizontalBad1x Then $HorizontalBad1x-=$Steps GUICtrlSetPos($HorizontalBad1, $HorizontalBad1x, 0) EndIf If $MousePos[1]<200 and $MousePos[1]>100 Then If $MousePos[0]-50>$HorizontalBad2x Then $HorizontalBad2x+=$Steps If $MousePos[0]-50<$HorizontalBad2x Then $HorizontalBad2x-=$Steps GUICtrlSetPos($HorizontalBad2, $HorizontalBad2x, 100) EndIf If $MousePos[1]<300 and $MousePos[1]>200 Then If $MousePos[0]-50>$HorizontalBad3x Then $HorizontalBad3x+=$Steps If $MousePos[0]-50<$HorizontalBad3x Then $HorizontalBad3x-=$Steps GUICtrlSetPos($HorizontalBad3, $HorizontalBad3x, 200) EndIf If $MousePos[1]<400 and $MousePos[1]>300 Then If $MousePos[0]-50>$HorizontalBad4x Then $HorizontalBad4x+=$Steps If $MousePos[0]-50<$HorizontalBad4x Then $HorizontalBad4x-=$Steps GUICtrlSetPos($HorizontalBad4, $HorizontalBad4x, 300) EndIf If $MousePos[1]<500 and $MousePos[1]>400 Then If $MousePos[0]-50>$HorizontalBad5x Then $HorizontalBad5x+=$Steps If $MousePos[0]-50<$HorizontalBad5x Then $HorizontalBad5x-=$Steps GUICtrlSetPos($HorizontalBad5, $HorizontalBad5x, 400) EndIf If $MousePos[1]<600 and $MousePos[1]>500 Then If $MousePos[0]-50>$HorizontalBad6x Then $HorizontalBad6x+=$Steps If $MousePos[0]-50<$HorizontalBad6x Then $HorizontalBad6x-=$Steps GUICtrlSetPos($HorizontalBad6, $HorizontalBad6x, 500) EndIf If $MousePos[1]<700 and $MousePos[1]>600 Then If $MousePos[0]-50>$HorizontalBad7x Then $HorizontalBad7x+=$Steps If $MousePos[0]-50<$HorizontalBad7x Then $HorizontalBad7x-=$Steps GUICtrlSetPos($HorizontalBad7, $HorizontalBad7x, 600) EndIf If $MousePos[1]<800 and $MousePos[1]>700 Then If $MousePos[0]-50>$HorizontalBad8x Then $HorizontalBad8x+=$Steps If $MousePos[0]-50<$HorizontalBad8x Then $HorizontalBad8x-=$Steps GUICtrlSetPos($HorizontalBad8, $HorizontalBad8x, 700) EndIf If $MousePos[0]<100 and $MousePos[0]>0 Then If $MousePos[1]-50>$VerticalBad1y Then $VerticalBad1y+=$Steps If $MousePos[1]-50<$VerticalBad1y Then $VerticalBad1y-=$Steps GUICtrlSetPos($VerticalBad1, 0, $VerticalBad1y) EndIf If $MousePos[0]<200 and $MousePos[0]>100 Then If $MousePos[1]-50>$VerticalBad2y Then $VerticalBad2y+=$Steps If $MousePos[1]-50<$VerticalBad2y Then $VerticalBad2y-=$Steps GUICtrlSetPos($VerticalBad2, 100, $VerticalBad2y) EndIf If $MousePos[0]<300 and $MousePos[0]>200 Then If $MousePos[1]-50>$VerticalBad3y Then $VerticalBad3y+=$Steps If $MousePos[1]-50<$VerticalBad3y Then $VerticalBad3y-=$Steps GUICtrlSetPos($VerticalBad3, 200, $VerticalBad3y) EndIf If $MousePos[0]<400 and $MousePos[0]>300 Then If $MousePos[1]-50>$VerticalBad4y Then $VerticalBad4y+=$Steps If $MousePos[1]-50<$VerticalBad4y Then $VerticalBad4y-=$Steps GUICtrlSetPos($VerticalBad4, 300, $VerticalBad4y) EndIf If $MousePos[0]<500 and $MousePos[0]>400 Then If $MousePos[1]-50>$VerticalBad5y Then $VerticalBad5y+=$Steps If $MousePos[1]-50<$VerticalBad5y Then $VerticalBad5y-=$Steps GUICtrlSetPos($VerticalBad5, 400, $VerticalBad5y) EndIf If $MousePos[0]<600 and $MousePos[0]>500 Then If $MousePos[1]-50>$VerticalBad6y Then $VerticalBad6y+=$Steps If $MousePos[1]-50<$VerticalBad6y Then $VerticalBad6y-=$Steps GUICtrlSetPos($VerticalBad6, 500, $VerticalBad6y) EndIf If $MousePos[0]<700 and $MousePos[0]>600 Then If $MousePos[1]-50>$VerticalBad7y Then $VerticalBad7y+=$Steps If $MousePos[1]-50<$VerticalBad7y Then $VerticalBad7y-=$Steps GUICtrlSetPos($VerticalBad7, 600, $VerticalBad7y) EndIf If $MousePos[0]<800 and $MousePos[0]>700 Then If $MousePos[1]-50>$VerticalBad8y Then $VerticalBad8y+=$Steps If $MousePos[1]-50<$VerticalBad8y Then $VerticalBad8y-=$Steps GUICtrlSetPos($VerticalBad8, 700, $VerticalBad8y) EndIf If $MousePos[0]<900 and $MousePos[0]>800 Then If $MousePos[1]-50>$VerticalBad9y Then $VerticalBad9y+=$Steps If $MousePos[1]-50<$VerticalBad9y Then $VerticalBad9y-=$Steps GUICtrlSetPos($VerticalBad9, 800, $VerticalBad9y) EndIf If $MousePos[0]<1000 and $MousePos[0]>900 Then If $MousePos[1]-50>$VerticalBad10y Then $VerticalBad10y+=$Steps If $MousePos[1]-50<$VerticalBad10y Then $VerticalBad10y-=$Steps GUICtrlSetPos($VerticalBad10, 900, $VerticalBad10y) EndIf If $MousePos[0]<1100 and $MousePos[0]>1000 Then If $MousePos[1]-50>$VerticalBad11y Then $VerticalBad11y+=$Steps If $MousePos[1]-50<$VerticalBad11y Then $VerticalBad11y-=$Steps GUICtrlSetPos($VerticalBad11, 1000, $VerticalBad11y) EndIf If $MousePos[0]<1200 and $MousePos[0]>1100 Then If $MousePos[1]-50>$VerticalBad12y Then $VerticalBad12y+=$Steps If $MousePos[1]-50<$VerticalBad12y Then $VerticalBad12y-=$Steps GUICtrlSetPos($VerticalBad12, 1100, $VerticalBad12y) EndIf EndFunc Func GameMenu() GUICtrlSetState($Label1, $GUI_SHOW) While 1 If _IsPressed(01) Then $MousePos=GUIGetCursorInfo($Gui) If $MousePos[1]<800 and $MousePos[1]>0 and $MousePos[0]>0 and $MousePos[0]<1200 Then ExitLoop EndIf WEnd GUICtrlSetState($Label1, $GUI_HIDE) $CurrentState=0 $HorizontalBad1x=-100 $HorizontalBad2x=1200 $HorizontalBad3x=-100 $HorizontalBad4x=1200 $HorizontalBad5x=-100 $HorizontalBad6x=1200 $HorizontalBad7x=-100 $HorizontalBad8x=1200 $VerticalBad1y=-100 $VerticalBad2y=800 $VerticalBad3y=-100 $VerticalBad4y=800 $VerticalBad5y=-100 $VerticalBad6y=800 $VerticalBad7y=-100 $VerticalBad8y=800 $VerticalBad9y=-100 $VerticalBad10y=800 $VerticalBad11y=-100 $VerticalBad12y=800 $Timer=TimerInit() EndFunc Func Restartgame() $FinalTime=TimerDiff($Timer) GUICtrlSetPos($HorizontalBad1, -100, 0) GUICtrlSetPos($HorizontalBad2, 1200, 100) GUICtrlSetPos($HorizontalBad3, -100, 200) GUICtrlSetPos($HorizontalBad4, 1200, 300) GUICtrlSetPos($HorizontalBad5, -100, 400) GUICtrlSetPos($HorizontalBad6, 1200, 500) GUICtrlSetPos($HorizontalBad7, -100, 600) GUICtrlSetPos($HorizontalBad8, 1200, 700) GUICtrlSetPos($VerticalBad1, 0, -100) GUICtrlSetPos($VerticalBad2, 0, 800) GUICtrlSetPos($VerticalBad3, 0, -100) GUICtrlSetPos($VerticalBad4, 0, 800) GUICtrlSetPos($VerticalBad5, 0, -100) GUICtrlSetPos($VerticalBad6, 0, 800) GUICtrlSetPos($VerticalBad7, 0, -100) GUICtrlSetPos($VerticalBad8, 0, 800) GUICtrlSetPos($VerticalBad9, 0, -100) GUICtrlSetPos($VerticalBad10, 0, 800) GUICtrlSetPos($VerticalBad11, 0, -100) GUICtrlSetPos($VerticalBad12, 0, 800) $TimerDiff=TimerDiff($Timer) $ReadIni1=IniRead(@ScriptDir & "\Score.ini", "Stage 1", "1st.", "0") $ReadIni2=IniRead(@ScriptDir & "\Score.ini", "Stage 1", "2nd.", "0") $ReadIni3=IniRead(@ScriptDir & "\Score.ini", "Stage 1", "3rd.", "0") While Not StringIsDigit($FinalTime) $FinalTime=StringTrimRight($FinalTime, 1) WEnd GUICtrlSetData($PointLabel, "Score: " & $FinalTime & " seconds") If $ReadIni1<>"0" Then $CheckTime=$ReadIni1 $CheckTime2=$ReadIni2 $CheckTime3=$ReadIni3 While Not StringIsDigit($CheckTime) $CheckTime=StringTrimLeft($CheckTime, 1) WEnd While Not StringIsDigit($CheckTime2) $CheckTime2=StringTrimLeft($CheckTime2, 1) WEnd While Not StringIsDigit($CheckTime3) $CheckTime3=StringTrimLeft($CheckTime3, 1) WEnd If $CheckTime<$FinalTime Then $Name=InputBox("New High Score!", "What's your name?") IniWrite(@ScriptDir & "\Score.ini", "Stage 1", "1st.", $Name & " " & $FinalTime) IniWrite(@ScriptDir & "\Score.ini", "Stage 1", "2nd.", $ReadIni1) IniWrite(@ScriptDir & "\Score.ini", "Stage 1", "3rd.", $ReadIni2) ElseIf $CheckTime2<$FinalTime Then $Name=InputBox("Second Place!", "What's your name?") IniWrite(@ScriptDir & "\Score.ini", "Stage 1", "2nd.", $Name & " " & $FinalTime) IniWrite(@ScriptDir & "\Score.ini", "Stage 1", "3rd.", $ReadIni2) ElseIf $CheckTime3<$FinalTime Then $Name=InputBox("Third Place!", "What's your name?") IniWrite(@ScriptDir & "\Score.ini", "Stage 1", "3rd.", $Name & " " & $FinalTime) EndIf Else $Name=InputBox("New High Score!", "What's your name?") IniWrite(@ScriptDir & "\Score.ini", "Stage 1", "1st.", $Name & " " & $FinalTime) EndIf $ReadIni1=IniRead(@ScriptDir & "\Score.ini", "Stage 1", "1st.", "0") $ReadIni2=IniRead(@ScriptDir & "\Score.ini", "Stage 1", "2nd.", "0") $ReadIni3=IniRead(@ScriptDir & "\Score.ini", "Stage 1", "3rd.", "0") GUICtrlSetData($Highscorelabel, $ReadIni1 & @CRLF & $ReadIni2 & @CRLF & $ReadIni3) GUICtrlSetState($PointLabel, $GUI_SHOW) GUICtrlSetState($Highscorelabel, $GUI_SHOW) GUICtrlSetState($ContinueLabel, $GUI_SHOW) MsgBox(0, "", $CheckTime & @CRLF & $CheckTime2 & @CRLF & $CheckTime3 & @CRLF & $FinalTime) While 1 If _IsPressed(01) Then $MousePos=GUIGetCursorInfo($Gui) If $MousePos[1]<800 and $MousePos[1]>0 and $MousePos[0]>0 and $MousePos[0]<1200 Then ExitLoop EndIf WEnd While _IsPressed(01) WEnd GUICtrlSetState($PointLabel, $GUI_HIDE) GUICtrlSetState($ContinueLabel, $GUI_HIDE) GUICtrlSetState($Highscorelabel, $GUI_HIDE) GameMenu() EndFunc Func Terminate() Exit EndFunc Func ChangeScreenSize() EndFunc I'm having trouble getting the hall of fame thing for my small game to work, at this place, it continues even though it isn't smaller..: If $CheckTime<$FinalTime Then When I get more than 10 seconds it usually doesn't come in neither... To test it, just get some pictures and call them Bad1 and Bad2 in the same directory as the script. EDIT::: I got that stuff to work, see post #10 for my other problem.
  19. Thanks, it works now! Just had to modify it a bit Func UpdateInfo() Local $sData2 = "" Local $sData3 = "" If $ListActive = 1 Then $Dir = @ScriptDir & "\Food Planner Data\Breakfast\" If $ListActive = 2 Then $Dir = @ScriptDir & "\Food Planner Data\Lunch\" If $ListActive = 3 Then $Dir = @ScriptDir & "\Food Planner Data\Dinner\" If $ListActive = 4 Then $Dir = @ScriptDir & "\Food Planner Data\Supper\" $sData2 &= @CRLF $sData3 &= @CRLF GUICtrlSetData($list2, "") GUICtrlSetData($list3, "") GUICtrlSetData($Label_Name, "") $GetChosen = GUICtrlRead($list1) $Line = 1 While 1 $ReadFile = FileReadLine($Dir & $GetChosen & "\ingredients.txt", $Line) If @error Then ExitLoop If $ReadFile = "" Then $sData2 &= "|" & @CRLF Else FileReadLine($Dir & $GetChosen & "\ingredients.txt", $Line+1) If @error then $sData2 &= $ReadFile Else $sData2 &= $ReadFile & "|" & @CRLF EndIf EndIf $Line += 1 WEnd $Line = 1 While 1 $ReadFile = FileReadLine($Dir & $GetChosen & "\Recipe.txt", $Line) If @error Then ExitLoop If $ReadFile = "" Then $sData3 &= "|" & @CRLF Else FileReadLine($Dir & $GetChosen & "\ingredients.txt", $Line+1) If @error then $sData3 &= $ReadFile Else $sData3 &= $ReadFile & "|" & @CRLF EndIf EndIf $Line += 1 WEnd $ReadFile = FileRead($Dir & $GetChosen & "\Name.txt") GUICtrlSetData($Label_Name, $ReadFile) GUICtrlSetData($list2, $sData2) GUICtrlSetData($list3, $sData3) EndFunc ;==>UpdateInfo
  20. It's a bit harder to add it in the real script. Check the function UpdateInfo(), that's where it is. #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=C:\Users\Elias\Documents\Autoit\Food.ico #AutoIt3Wrapper_Add_Constants=n #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <APIConstants.au3> #include <GUIConstantsEx.au3> #include <guiconstants.au3> #Include <_FileListToArray.au3> #include <WindowsConstants.au3> #include <DateTimeConstants.au3> #include <GuiListBox.au3> LagDirs() $Error=False $ListActive=1 local $AllFiles, $OldName, $Chosen GUICreate("Food Planner", 500, 525, -1, -1, $WS_SIZEBOX + $WS_MAXIMIZEBOX + $WS_MINIMIZEBOX) GUISetBkColor(0xCCFFFF) $New_Maaltid=GUICtrlCreateButton("New Meal", 5, 5, 120, 50) GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetFont(-1, 14, 0, 0, "Comic Sans MS") GUICtrlSetBkColor(-1, 0xCCCCFF) GUICtrlSetResizing(-1, 1) $Show_Maaltid=GUICtrlCreateButton("Show Meals", 5, 60, 120, 50) GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetFont(-1, 14, 0, 0, "Comic Sans MS") GUICtrlSetBkColor(-1, 0xCCCCFF) GUICtrlSetResizing(-1, 1) $Plan=GUICtrlCreateButton("Plan", 5, 115, 120, 50) GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetFont(-1, 14, 0, 0, "Comic Sans MS") GUICtrlSetBkColor(-1, 0xCCCCFF) GUICtrlSetResizing(-1, 1) #region Plan $Cancel_Save_Plan=GUICtrlCreateButton("Cancel", 200, 50, 200, 35) GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetFont(-1, 13, 0, 0, "Comic Sans MS") GUICtrlSetBkColor(-1, 0xCCCCFF) GUICtrlSetResizing(-1, 1) $Save_Plan=GUICtrlCreateButton("Save", 200, 90, 200, 35) GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetFont(-1, 13, 0, 0, "Comic Sans MS") GUICtrlSetBkColor(-1, 0xCCCCFF) GUICtrlSetResizing(-1, 1) $date=GUICtrlCreateDate("", 200, 140, 200, 30, $DTS_SHORTDATEFORMAT) GUICtrlSetResizing(-1, 1) $List_Breakfast=GUICtrlCreateList("", 8, 200, 117, 300) GUICtrlSetResizing(-1, 1) $List_Lunch=GUICtrlCreateList("", 130, 200, 117, 300) GUICtrlSetResizing(-1, 1) $List_Dinner=GUICtrlCreateList("", 252, 200, 117, 300) GUICtrlSetResizing(-1, 1) $List_Supper=GUICtrlCreateList("", 374, 200, 117, 300) GUICtrlSetResizing(-1, 1) $Label_Breakfast=GUICtrlCreateLabel("Breakfast", 8, 180, 200, 20) GUICtrlSetFont(-1, 11, 0, 0, "Comic Sans MS") GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetResizing(-1, 1) $Label_Lunch=GUICtrlCreateLabel("Lunch", 130, 180, 200, 20) GUICtrlSetFont(-1, 11, 0, 0, "Comic Sans MS") GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetResizing(-1, 1) $Label_Dinner=GUICtrlCreateLabel("Dinner", 252, 180, 200, 20) GUICtrlSetFont(-1, 11, 0, 0, "Comic Sans MS") GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetResizing(-1, 1) $Label_Supper=GUICtrlCreateLabel("Supper", 374, 180, 200, 20) GUICtrlSetFont(-1, 11, 0, 0, "Comic Sans MS") GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetResizing(-1, 1) $Edit_Plan=GUICtrlCreateButton("Edit Plan", 200, 5, 200, 40) GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetFont(-1, 13, 0, 0, "Comic Sans MS") GUICtrlSetBkColor(-1, 0xCCCCFF) GUICtrlSetResizing(-1, 1) #endregion Plan #region Edit $Cancel_Edit=GUICtrlCreateButton("Cancel", 5, 400, 150, 40) GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetFont(-1, 11, 0, 0, "Comic Sans MS") GUICtrlSetBkColor(-1, 0xCCCCFF) GUICtrlSetResizing(-1, 1) $Save_Edit=GUICtrlCreateButton("Save", 5, 450, 150, 40) GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetFont(-1, 11, 0, 0, "Comic Sans MS") GUICtrlSetBkColor(-1, 0xCCCCFF) GUICtrlSetResizing(-1, 1) #endregion Edit #region Info $Label_Name=GUICtrlCreateLabel("", 5, 330, 490, 30) GUICtrlSetFont(-1, 14, 0, 0, "Comic Sans MS") GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetResizing(-1, 1) $Label_ingredients=GUICtrlCreateLabel("Ingredients", 5, 350, 120, 30) GUICtrlSetFont(-1, 14, 0, 0, "Comic Sans MS") GUICtrlSetResizing(-1, 1) $list2=GUICtrlCreateList("", 5, 380, 200, 120, BitOR($WS_BORDER, $WS_VSCROLL)) GUICtrlSetResizing(-1, 1) $list3=GUICtrlCreateList("", 250, 380, 200, 120, BitOR($WS_BORDER, $WS_VSCROLL)) GUICtrlSetResizing(-1, 1) $Label_Recipe=GUICtrlCreateLabel("Recipe", 250, 350, 145, 30) GUICtrlSetResizing(-1, 1) GUICtrlSetFont(-1, 14, 0, 0, "Comic Sans MS") #endregion Info #region List $Label_List=GUICtrlCreateLabel("____________________________________________________________________________________", 0, 170, 200, 20) GUICtrlSetResizing(-1, 1) $list1=GUICtrlCreateList("", 140, 25, 355, 310) GUICtrlSetResizing(-1, 1) AddItemsToList() $Delete_Maaltid=GUICtrlCreateButton("Delete", 5, 230, 120, 30) GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetFont(-1, 14, 0, 0, "Comic Sans MS") GUICtrlSetBkColor(-1, 0xCCCCFF) GUICtrlSetResizing(-1, 1) $Hide_Maaltid=GUICtrlCreateButton("Hide", 5, 300, 120, 30) GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetFont(-1, 14, 0, 0, "Comic Sans MS") GUICtrlSetBkColor(-1, 0xCCCCFF) GUICtrlSetResizing(-1, 1) $Edit_Maaltid=GUICtrlCreateButton("Edit", 5, 265, 120, 30) GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetFont(-1, 14, 0, 0, "Comic Sans MS") GUICtrlSetBkColor(-1, 0xCCCCFF) GUICtrlSetResizing(-1, 1) $Get_Random=GUICtrlCreateButton("Get Random", 5, 195, 120, 30) GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetFont(-1, 14, 0, 0, "Comic Sans MS") GUICtrlSetBkColor(-1, 0xCCCCFF) GUICtrlSetResizing(-1, 1) $Radio_Breakfast=GUICtrlCreateRadio("Breakfast", 140, 5, 70, 20) GUICtrlSetResizing(-1, 1) $Radio_Lunch=GUICtrlCreateRadio("Lunch", 210, 5, 70, 20) GUICtrlSetResizing(-1, 1) $Radio_Dinner=GUICtrlCreateRadio("Dinner", 280, 5, 70, 20) GUICtrlSetResizing(-1, 1) $Radio_Supper=GUICtrlCreateRadio("Supper", 350, 5, 70, 20) GUICtrlSetResizing(-1, 1) GUICtrlSetState($Radio_Breakfast, $GUI_CHECKED) #endregion List #Region New Meal $Label_New_Maaltid=GUICtrlCreateLabel("__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________", 0, 330, 510, 20) GUICtrlSetResizing(-1, 1) $KindOfMeal=GUICtrlCreateCombo("Breakfast", 5, 400, 150, 50) GUICtrlSetFont(-1, 11, 0, 2, "Comic Sans MS") GUICtrlSetData(-1, "Lunch|Dinner|Supper|") GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetResizing(-1, 1) $Maaltidets_Name=GUICtrlCreateInput("", 5, 370, 150, 20) $Maaltidets_Name_Label=GUICtrlCreateLabel("Meal Name", 5, 350, 150, 15) GUICtrlSetFont(-1, 11, 0, 0, "Comic Sans MS") GUICtrlSetResizing(-1, 1) $ingredients=GUICtrlCreateEdit("", 170, 370, 155, 120) GUICtrlSetColor(-1, 0x0000FF) $ingredients_Label=GUICtrlCreateLabel("Ingredients", 170, 350, 155, 20) GUICtrlSetFont(-1, 11, 0, 0, "Comic Sans MS") GUICtrlSetResizing(-1, 1) $Andre_Recipe=GUICtrlCreateEdit("", 340, 370, 155, 120) GUICtrlSetColor(-1, 0x0000FF) $Andre_Recipe_Label=GUICtrlCreateLabel("Recipe", 340, 350, 155, 20) GUICtrlSetFont(-1, 11, 0, 0, "Comic Sans MS") GUICtrlSetResizing(-1, 1) $Legg_Til=GUICtrlCreateButton("Add", 5, 435, 150, 25) GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetFont(-1, 11, 0, 0, "Comic Sans MS") GUICtrlSetBkColor(-1, 0xCCCCFF) GUICtrlSetResizing(-1, 1) $Cancel_New_Maaltid=GUICtrlCreateButton("Cancel", 5, 465, 150, 25) GUICtrlSetColor(-1, 0x0000FF) GUICtrlSetFont(-1, 11, 0, 0, "Comic Sans MS") GUICtrlSetBkColor(-1, 0xCCCCFF) GUICtrlSetResizing(-1, 1) #endregion New Meal HideNewMaaltid() HideList() HideInfo() HideEdit() HideViewPlan() HidePlan() HideEditPlan() GUISetState() While 1 $msg=GUIGetMsg() switch $msg Case $GUI_EVENT_CLOSE Exit Case $Cancel_Save_Plan() GetPlan() HideEditPlan() Case $Save_Plan SavePlanUpdate() GetPlan() HideEditPlan() Case $date() GetPlan() Case $Edit_Plan ShowEditPlan() EditPlanUpdate() Case $Plan() HideEditPlan() HideList() HideInfo() HideNewMaaltid() HideEdit() GetPlan() ShowViewPlan() ShowPlan() Case $Cancel_Edit() HideEdit() Case $Edit_Maaltid() HideEditPlan() HidePlan() HideViewPlan() HideNewMaaltid() HideInfo() ShowEdit() ReadToEdit() Case $Save_Edit EditList1() Case $Delete_Maaltid() DeleteMaaltid() Case $Hide_Maaltid HideList() Case $Show_Maaltid HideEditPlan() HidePlan() HideViewPlan() ShowList() Case $New_Maaltid HideEditPlan() HidePlan() HideViewPlan() HideInfo() HideEdit() ShowNewMaaltid() Case $Cancel_New_Maaltid HideNewMaaltid() Case $Legg_Til LeggTilNewMaaltid() Case $list1 HideEditPlan() HidePlan() HideViewPlan() HideNewMaaltid() HideEdit() ShowInfo() UpdateInfo() Case $Get_Random GetRandomMeal() Case $Radio_Breakfast $ListActive=1 AddItemsToList() Case $Radio_Lunch $ListActive=2 AddItemsToList() Case $Radio_Dinner $ListActive=3 AddItemsToList() Case $Radio_Supper $ListActive=4 AddItemsToList() EndSwitch WEnd Func GetRandomMeal() If $ListActive=1 Then $Dir=@ScriptDir & "\Food Planner Data\Breakfast\" If $ListActive=2 Then $Dir=@ScriptDir & "\Food Planner Data\Lunch\" If $ListActive=3 Then $Dir=@ScriptDir & "\Food Planner Data\Dinner\" If $ListActive=4 Then $Dir=@ScriptDir & "\Food Planner Data\Supper\" $Files=_Filelisttoarrayex($Dir) If $Files<>0 Then $count=0 For $1=1 to $Files[0] If StringInStr($Files[$1], "Name") Then $count+=1 Next $Random=Random(0, $count, 1) _GUICtrlListBox_ClickItem($list1, $Random) ShowInfo() EndIf EndFunc Func GetPlan() GUICtrlSetData($List_Breakfast, "") GUICtrlSetData($List_Lunch, "") GUICtrlSetData($List_Dinner, "") GUICtrlSetData($List_Supper, "") $Dir=@ScriptDir & "\Food Planner Data\Plandata\" & GUICtrlRead($date) If FileExists($Dir & "\Breakfast.txt") Then GUICtrlSetData($List_Breakfast, FileRead($Dir & "\Breakfast.txt")) If FileExists($Dir & "\Lunch.txt") Then GUICtrlSetData($List_Lunch, FileRead($Dir & "\Lunch.txt")) If FileExists($Dir & "\Dinner.txt") Then GUICtrlSetData($List_Dinner, FileRead($Dir & "\Dinner.txt")) If FileExists($Dir & "\Supper.txt") Then GUICtrlSetData($List_Supper, FileRead($Dir & "\Supper.txt")) EndFunc Func SavePlanUpdate() $Dir=@ScriptDir & "\Food Planner Data\Plandata\" & GUICtrlRead($date) & "\" If FileExists($Dir) Then DirRemove($Dir, 1) DirCreate($Dir) If GUICtrlRead($List_Breakfast)<>"" then FileWrite($Dir & "\Breakfast.txt", GUICtrlRead($List_Breakfast)) If GUICtrlRead($List_Lunch)<>"" then FileWrite($Dir & "\Lunch.txt", GUICtrlRead($List_Lunch)) If GUICtrlRead($List_Dinner)<>"" then FileWrite($Dir & "\Dinner.txt", GUICtrlRead($List_Dinner)) If GUICtrlRead($List_Supper)<>"" then FileWrite($Dir & "\Supper.txt", GUICtrlRead($List_Supper)) EndFunc Func EditPlanUpdate() GUICtrlSetData($List_Breakfast, "") GUICtrlSetData($List_Lunch, "") GUICtrlSetData($List_Dinner, "") GUICtrlSetData($List_Supper, "") $Dir=@ScriptDir & "\Food Planner Data\Breakfast\" $Files=_Filelisttoarrayex($Dir) If $Files<>0 Then For $1=1 to $Files[0] If StringInStr($Files[$1], "Name") Then $ReadFile=FileRead($Files[$1]) GUICtrlSetData($List_Breakfast, $ReadFile) EndIf Next EndIf $Dir=@ScriptDir & "\Food Planner Data\Lunch\" $Files=_Filelisttoarrayex($Dir) If $Files<>0 Then For $1=1 to $Files[0] If StringInStr($Files[$1], "Name") Then $ReadFile=FileRead($Files[$1]) GUICtrlSetData($List_Lunch, $ReadFile) EndIf Next EndIf $Dir=@ScriptDir & "\Food Planner Data\Dinner\" $Files=_Filelisttoarrayex($Dir) If $Files<>0 Then For $1=1 to $Files[0] If StringInStr($Files[$1], "Name") Then $ReadFile=FileRead($Files[$1]) GUICtrlSetData($List_Dinner, $ReadFile) EndIf Next EndIf $Dir=@ScriptDir & "\Food Planner Data\Supper\" $Files=_Filelisttoarrayex($Dir) If $Files<>0 Then For $1=1 to $Files[0] If StringInStr($Files[$1], "Name") Then $ReadFile=FileRead($Files[$1]) GUICtrlSetData($List_Supper, $ReadFile) EndIf Next EndIf EndFunc Func HideEditPlan() GUICtrlSetState($Save_Plan, $GUI_HIDE) GUICtrlSetState($Cancel_Save_Plan, $GUI_HIDE) EndFunc Func ShowEditPlan() GUICtrlSetState($Save_Plan, $GUI_SHOW) GUICtrlSetState($Cancel_Save_Plan, $GUI_SHOW) EndFunc Func HidePlan() GUICtrlSetState($date, $GUI_HIDE) GUICtrlSetState($Edit_Plan, $GUI_HIDE) GUICtrlSetState($Label_Breakfast, $GUI_HIDE) GUICtrlSetState($Label_Lunch, $GUI_HIDE) GUICtrlSetState($Label_Dinner, $GUI_HIDE) GUICtrlSetState($Label_Supper, $GUI_HIDE) EndFunc Func ShowPlan() GUICtrlSetState($date, $GUI_SHOW) GUICtrlSetState($Edit_Plan, $GUI_SHOW) GUICtrlSetState($Label_Breakfast, $GUI_SHOW) GUICtrlSetState($Label_Lunch, $GUI_SHOW) GUICtrlSetState($Label_Dinner, $GUI_SHOW) GUICtrlSetState($Label_Supper, $GUI_SHOW) EndFunc Func HideViewPlan() GUICtrlSetData($List_Breakfast, "") GUICtrlSetData($List_Lunch, "") GUICtrlSetData($List_Dinner, "") GUICtrlSetData($List_Supper, "") GUICtrlSetState($List_Breakfast, $GUI_HIDE) GUICtrlSetState($List_Lunch, $GUI_HIDE) GUICtrlSetState($List_Dinner, $GUI_HIDE) GUICtrlSetState($List_Supper, $GUI_HIDE) EndFunc Func ShowViewPlan() GUICtrlSetState($List_Breakfast, $GUI_SHOW) GUICtrlSetState($List_Lunch, $GUI_SHOW) GUICtrlSetState($List_Dinner, $GUI_SHOW) GUICtrlSetState($List_Supper, $GUI_SHOW) EndFunc Func ReadToEdit() If $ListActive=1 Then $Dir=@ScriptDir & "\Food Planner Data\Breakfast\" If $ListActive=2 Then $Dir=@ScriptDir & "\Food Planner Data\Lunch\" If $ListActive=3 Then $Dir=@ScriptDir & "\Food Planner Data\Dinner\" If $ListActive=4 Then $Dir=@ScriptDir & "\Food Planner Data\Supper\" $Line=1 $WriteToIng="" $WriteToNot="" $WriteToName=FileRead($Dir & $Chosen & "\Name.txt") While 1 $ReadFile=FileReadLine($Dir & $Chosen & "\Ingredients.txt", $Line) If @error then ExitLoop $WriteToIng=$WriteToIng & $ReadFile& @CRLF $Line+=1 WEnd $Line=1 While 1 $ReadFile=FileReadLine($Dir & $Chosen & "\Recipe.txt", $Line) If @error then ExitLoop $WriteToNot=$WriteToNot & $ReadFile & @CRLF $Line+=1 WEnd GUICtrlSetData($ingredients, $WriteToIng) GUICtrlSetData($Maaltidets_Name, $WriteToName) GUICtrlSetData($Andre_Recipe, $WriteToNot) $OldName=$WriteToName EndFunc Func ShowEdit() GUICtrlSetState($Andre_Recipe, $GUI_SHOW) GUICtrlSetState($Andre_Recipe_Label, $GUI_SHOW) GUICtrlSetState($ingredients, $GUI_SHOW) GUICtrlSetState($ingredients_Label, $GUI_SHOW) GUICtrlSetState($Maaltidets_Name, $GUI_SHOW) GUICtrlSetState($Maaltidets_Name_Label, $GUI_SHOW) GUICtrlSetState($Label_New_Maaltid, $GUI_SHOW) GUICtrlSetState($Cancel_Edit, $GUI_SHOW) GUICtrlSetState($Save_Edit, $GUI_SHOW) $Chosen=GUICtrlRead($list1) EndFunc Func HideEdit() GUICtrlSetState($Andre_Recipe, $GUI_HIDE) GUICtrlSetState($Andre_Recipe_Label, $GUI_HIDE) GUICtrlSetState($ingredients, $GUI_HIDE) GUICtrlSetState($ingredients_Label, $GUI_HIDE) GUICtrlSetState($Maaltidets_Name, $GUI_HIDE) GUICtrlSetState($Maaltidets_Name_Label, $GUI_HIDE) GUICtrlSetState($Label_New_Maaltid, $GUI_HIDE) GUICtrlSetState($Cancel_Edit, $GUI_HIDE) GUICtrlSetState($Save_Edit, $GUI_HIDE) EndFunc Func EditList1() $Error=False If GUICtrlRead($Maaltidets_Name)="" Then MsgBox(0, "ERROR", "The meal må ha et Name!") $Error=True EndIf If GUICtrlRead($ingredients)="" Then MsgBox(0, "ERROR", "The meal må inneholde noe!") $Error=True EndIf $CheckForSigns=GUICtrlRead($Maaltidets_Name) $CheckForSigns=StringStripWS($CheckForSigns, 8) If not StringRegExp($CheckForSigns, "(?i)^[0-9a-z]+$") Then MsgBox(0, "ERROR", "The name contains illegal characters!") $Error=True EndIf If $Error=False Then If $ListActive=1 Then $Dir=@ScriptDir & "\Food Planner Data\Breakfast\" If $ListActive=2 Then $Dir=@ScriptDir & "\Food Planner Data\Lunch\" If $ListActive=3 Then $Dir=@ScriptDir & "\Food Planner Data\Dinner\" If $ListActive=4 Then $Dir=@ScriptDir & "\Food Planner Data\Supper\" DirRemove($Dir & $Chosen, 1) While 1 $CheckForSpace=StringRight(GUICtrlRead($Maaltidets_Name), 1) If $CheckForSpace=" " Then GUICtrlSetData($Maaltidets_Name, StringTrimRight(GUICtrlRead($Maaltidets_Name), 1)) Else ExitLoop EndIf WEnd $Dir=$Dir & GUICtrlRead($Maaltidets_Name) DirCreate($Dir) FileWrite($Dir & "\" & "Name.txt", GUICtrlRead($Maaltidets_Name)) FileWrite($Dir & "\" & "Ingredients.txt", GUICtrlRead($ingredients)) If GUICtrlRead($Andre_Recipe) <> "" Then FileWrite($Dir & "\" & "Recipe.txt", GUICtrlRead($Andre_Recipe)) EndIf $Dir=@ScriptDir & "\Food Planner Data\Plandata\" $Files=_Filelisttoarrayex($Dir) If $Files<>0 Then For $1=1 to $Files[0] $ReadFile=FileRead($Files[$1]) If StringInStr($ReadFile, $OldName) Then FileDelete($Files[$1]) FileWrite($Files[$1], GUICtrlRead($Maaltidets_Name)) EndIf Next EndIf ResetNewMaaltidData() HideEdit() AddItemsToList() EndIf EndFunc Func HideInfo() GUICtrlSetState($list2, $GUI_HIDE) GUICtrlSetState($list3, $GUI_HIDE) GUICtrlSetState($Label_ingredients, $GUI_HIDE) GUICtrlSetState($Label_Name, $GUI_HIDE) GUICtrlSetState($Label_Recipe, $GUI_HIDE) EndFunc Func ShowInfo() GUICtrlSetState($list2, $GUI_SHOW) GUICtrlSetState($list3, $GUI_SHOW) GUICtrlSetState($Label_ingredients, $GUI_SHOW) GUICtrlSetState($Label_Name, $GUI_SHOW) GUICtrlSetState($Label_Recipe, $GUI_SHOW) EndFunc Func UpdateInfo() If $ListActive=1 Then $Dir=@ScriptDir & "\Food Planner Data\Breakfast\" If $ListActive=2 Then $Dir=@ScriptDir & "\Food Planner Data\Lunch\" If $ListActive=3 Then $Dir=@ScriptDir & "\Food Planner Data\Dinner\" If $ListActive=4 Then $Dir=@ScriptDir & "\Food Planner Data\Supper\" GUICtrlSetData($list2, "") GUICtrlSetData($list3, "") GUICtrlSetData($Label_Name, "") $GetChosen=GUICtrlRead($list1) $Line=1 While 1 $ReadFile=FileReadLine($Dir & $GetChosen & "\ingredients.txt", $Line) If @error then ExitLoop If $ReadFile="" Then GUICtrlSetData($list2, @CRLF) Else GUICtrlSetData($list2, $ReadFile) EndIf $Line+=1 WEnd $Line=1 While 1 $ReadFile=FileReadLine($Dir & $GetChosen & "\Recipe.txt", $Line) If @error then ExitLoop If $ReadFile="" Then GUICtrlSetData($list3, @CRLF) Else GUICtrlSetData($list3, $ReadFile) EndIf $Line+=1 WEnd $ReadFile=FileRead($Dir & $GetChosen & "\Name.txt") GUICtrlSetData($Label_Name, $ReadFile) EndFunc Func ShowList() GUICtrlSetState($list1, $GUI_SHOW) GUICtrlSetState($Delete_Maaltid, $GUI_SHOW) GUICtrlSetState($Radio_Breakfast, $GUI_SHOW) GUICtrlSetState($Radio_Lunch, $GUI_SHOW) GUICtrlSetState($Radio_Dinner, $GUI_SHOW) GUICtrlSetState($Radio_Supper, $GUI_SHOW) GUICtrlSetState($Label_List, $GUI_SHOW) GUICtrlSetState($Hide_Maaltid, $GUI_SHOW) GUICtrlSetState($Edit_Maaltid, $GUI_SHOW) GUICtrlSetState($Get_Random, $GUI_SHOW) EndFunc Func DeleteMaaltid() If MsgBox(52, "ADVARSEL", "Er du sikker på at du vil Deletee dette The meal?") <> 7 Then If $ListActive=1 Then $Dir=@ScriptDir & "\Food Planner Data\Breakfast\" If $ListActive=2 Then $Dir=@ScriptDir & "\Food Planner Data\Lunch\" If $ListActive=3 Then $Dir=@ScriptDir & "\Food Planner Data\Dinner\" If $ListActive=4 Then $Dir=@ScriptDir & "\Food Planner Data\Supper\" $read=GUICtrlRead($list1) DirRemove($Dir & $read, 1) AddItemsToList() EndIf EndFunc Func LeggTilNewMaaltid() $Error=False If GUICtrlRead($Maaltidets_Name)="" Then MsgBox(0, "ERROR", "The meal must have a name!") $Error=True EndIf $CheckForSigns=GUICtrlRead($Maaltidets_Name) $CheckForSigns=StringStripWS($CheckForSigns, 8) If not StringRegExp($CheckForSigns, "(?i)^[0-9a-z]+$") Then MsgBox(0, "ERROR", "The name contains illegal characters!") $Error=True EndIf If GUICtrlRead($ingredients)="" Then MsgBox(0, "ERROR", "The meal must consist of something!") $Error=True EndIf If $Error=False Then $Dir=@ScriptDir & "\Food Planner Data\" & GUICtrlRead($KindOfMeal) & "\" & GUICtrlRead($Maaltidets_Name) DirCreate($Dir) If @error then $Error=True If FileExists($Dir & "\" & "Name.txt") Then FileDelete($Dir & "\" & "Name.txt") If FileExists($Dir & "\" & "Ingredients.txt") Then FileDelete($Dir & "\" & "Ingredients.txt") If FileExists($Dir & "\" & "Recipe.txt") Then FileDelete($Dir & "\" & "Recipe.txt") FileWrite($Dir & "\" & "Name.txt", GUICtrlRead($Maaltidets_Name)) If @error then $Error=True FileWrite($Dir & "\" & "Ingredients.txt", GUICtrlRead($ingredients)) If @error then $Error=True If GUICtrlRead($Andre_Recipe) <> "" Then FileWrite($Dir & "\" & "Recipe.txt", GUICtrlRead($Andre_Recipe)) If @error then $Error=True If $Error=True then MsgBox(0, "ERROR", "Could not add the new meal.") If $Error=False then ResetNewMaaltidData() If $Error=False then AddItemsToList() EndIf EndFunc Func HideNewMaaltid() GUICtrlSetState($KindOfMeal, $GUI_HIDE) GUICtrlSetState($Andre_Recipe, $GUI_HIDE) GUICtrlSetState($Andre_Recipe_Label, $GUI_HIDE) GUICtrlSetState($Cancel_New_Maaltid, $GUI_HIDE) GUICtrlSetState($Legg_Til, $GUI_HIDE) GUICtrlSetState($ingredients, $GUI_HIDE) GUICtrlSetState($ingredients_Label, $GUI_HIDE) GUICtrlSetState($Maaltidets_Name, $GUI_HIDE) GUICtrlSetState($Maaltidets_Name_Label, $GUI_HIDE) GUICtrlSetState($Label_New_Maaltid, $GUI_HIDE) ResetNewMaaltidData() EndFunc Func HideList() GUICtrlSetState($list1, $GUI_HIDE) GUICtrlSetState($Delete_Maaltid, $GUI_HIDE) GUICtrlSetState($Radio_Breakfast, $GUI_HIDE) GUICtrlSetState($Radio_Lunch, $GUI_HIDE) GUICtrlSetState($Radio_Dinner, $GUI_HIDE) GUICtrlSetState($Radio_Supper, $GUI_HIDE) GUICtrlSetState($Label_List, $GUI_HIDE) GUICtrlSetState($Hide_Maaltid, $GUI_HIDE) GUICtrlSetState($Edit_Maaltid, $GUI_HIDE) GUICtrlSetState($Get_Random, $GUI_HIDE) EndFunc Func ResetNewMaaltidData() GUICtrlSetData($Andre_Recipe, "") GUICtrlSetData($ingredients, "") GUICtrlSetData($Maaltidets_Name, "") EndFunc Func ShowNewMaaltid() GUICtrlSetState($KindOfMeal, $GUI_SHOW) GUICtrlSetState($Andre_Recipe, $GUI_SHOW) GUICtrlSetState($Andre_Recipe_Label, $GUI_SHOW) GUICtrlSetState($Cancel_New_Maaltid, $GUI_SHOW) GUICtrlSetState($Legg_Til, $GUI_SHOW) GUICtrlSetState($ingredients, $GUI_SHOW) GUICtrlSetState($ingredients_Label, $GUI_SHOW) GUICtrlSetState($Maaltidets_Name, $GUI_SHOW) GUICtrlSetState($Maaltidets_Name_Label, $GUI_SHOW) GUICtrlSetState($Label_New_Maaltid, $GUI_SHOW) ResetNewMaaltidData() EndFunc Func LagDirs() If not FileExists(@ScriptDir & "\Food Planner Data") Then DirCreate(@ScriptDir & "\Food Planner Data") If not FileExists(@ScriptDir & "\Food Planner Data\Breakfast") Then DirCreate(@ScriptDir & "\Food Planner Data\Breakfast") If not FileExists(@ScriptDir & "\Food Planner Data\Lunch") Then DirCreate(@ScriptDir & "\Food Planner Data\Lunch") If not FileExists(@ScriptDir & "\Food Planner Data\Dinner") Then DirCreate(@ScriptDir & "\Food Planner Data\Dinner") If not FileExists(@ScriptDir & "\Food Planner Data\Supper") Then DirCreate(@ScriptDir & "\Food Planner Data\Supper") If not FileExists(@ScriptDir & "\Food Planner Data\Plandata") Then DirCreate(@ScriptDir & "\Food Planner Data\Plandata") EndFunc Func AddItemsToList() If $ListActive=1 Then $Dir=@ScriptDir & "\Food Planner Data\Breakfast\" If $ListActive=2 Then $Dir=@ScriptDir & "\Food Planner Data\Lunch\" If $ListActive=3 Then $Dir=@ScriptDir & "\Food Planner Data\Dinner\" If $ListActive=4 Then $Dir=@ScriptDir & "\Food Planner Data\Supper\" $AllFiles=_Filelisttoarrayex($Dir) GUICtrlSetData($list1, "") If $AllFiles<>0 Then For $1=1 To $AllFiles[0] If StringInStr($AllFiles[$1], "Name") Then GUICtrlSetData($list1, FileRead($AllFiles[$1])) EndIf Next EndIf EndFunc
  21. Why does only the first @crlf come in the list? #include <WindowsConstants.au3> #include <guiconstants.au3> $GUI=GUICreate("", 200, 200) $list1=GUICtrlCreateList("", 5, 5, 190, 190, BitOR($WS_BORDER, $WS_VSCROLL)) GUISetState() GUICtrlSetData($list1, "Justsomerandomdata") GUICtrlSetData($list1, @CRLF) GUICtrlSetData($list1, "Moredansomness") GUICtrlSetData($list1, @CRLF) GUICtrlSetData($list1, "okaythatsit") WHile 1 $msg=GUIGetMsg() If $msg=$GUI_EVENT_CLOSE then ExitLoop WEnd
  22. Oh, thanks! Also, which filetypes can it play?
  23. In this sort of a music player I made, the timer starts before the music starts. Because of that, it also is a couple of seconds left that it doesn't play, because it ends when _soundgetpos and _soundgetlength is equal. I even made it wait 5 seconds before ending the song after they're equal. How can I get it more accurate? Whole code, you probably don't have all the includes, so use the second one. (I think you have most includes that are in the 2nd.) #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=C:\Users\Elias\Documents\Autoit\Laptop\Shutdown\peace.ico #AutoIt3Wrapper_Add_Constants=n #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <Sound.au3> #include <INet.au3> #include <GUIConstantsEx.au3> #include <Date.au3>#Include <_FileListToArray.au3> #include <GUICtrlOnHover.au3> #include <_AudioEndpointVolume.au3> If not FileExists(@ScriptDir & "\Songs") Then DirCreate(@ScriptDir & "\Songs") MsgBox(0, "Get Started!", "Move songs into the 'Songs' folder to listen to them before falling asleep!" & @CRLF & @CRLF & "Add at least 5 songs!") EndIf local $Dir="" $FindFolders=_FileListToArray(@ScriptDir & "\Songs","*",2) if not @error then $Dir=FileSelectFolder("Select the folder you want your songs played from. Using the 'Songs' folder will play a random song from every folder!", @ScriptDir & "\Songs") If @error = 1 then Exit EndIf If $Dir = "" Then $Dir = @ScriptDir & "\Songs" Local $last, $2ndlast, $3rdlast, $4thlast, $random, $open, $DisplayTime, $Timeleft, $length, $sFormattedTime, $do, $timer, $MakeToolTip, $ToolTip, $GetNewTimer, $GetNewSoon, $volumetimer $Getnew=1 $Pause=1 $Nosong=0 $firstvolume=True If @HOUR<>23 Then If @MIN>39 Then $time = @HOUR+1 & ":" & @MIN-30 If @MIN>29 And @MIN<40 Then $time = @HOUR+1 & ":0" & @MIN-30 If @MIN<30 Then $time = @Hour & ":" & @MIN+30 If @MIN>39 Then $1 = @HOUR+1 & ":" & @MIN-30 If @MIN>29 And @MIN<40 Then $1 = @HOUR+1 & ":0" & @MIN-30 If @MIN<30 Then $1 = @Hour & ":" & @MIN+30 EndIf If @HOUR=23 Then If @MIN>39 Then $time = @HOUR-23 & "0:" & @MIN-30 If @MIN>29 And @MIN<40 Then $time = @HOUR+1 & ":0" & @MIN-30 If @MIN<30 Then $time = @Hour & ":" & @MIN+30 If @MIN>39 Then $1 = @HOUR-23 & "0:" & @MIN-30 If @MIN>29 And @MIN<40 Then $1 = @HOUR+1 & ":0" & @MIN-30 If @MIN<30 Then $1 = @Hour & ":" & @MIN+30 EndIf $Files=_Filelisttoarrayex($Dir) if @error Then MsgBox(0, "Error:", "Error: Add at least 5 songs in the 'Songs' directory before trying again!") ShellExecute(@ScriptDir & "\Songs") Exit EndIf GUICreate("", 150, 225) $SDType=GUICtrlCreateCombo("Shutdown", 10, 175, 130, 20) GUICtrlSetData($SDType, "Logoff|Reboot|Standby|Hibernate|Exit Program", "Shutdown") _GUICtrl_OnHoverRegister($SDType, "StartSDTypeToolTip", "HideToolTip") $Turnofftime=GUICtrlCreateInput($time, 50, 10, 35, 20) $Apply=GUICtrlCreateButton("Applied", 90, 10, 50, 20) _GUICtrl_OnHoverRegister($Apply, "StartApplyToolTip", "HideToolTip") $Undo=GUICtrlCreateButton("Undo", 10, 10, 35, 20) _GUICtrl_OnHoverRegister($Undo, "StartUndoToolTip", "HideToolTip") $Start=GUICtrlCreateButton("Start", 10, 40, 130, 20) _GUICtrl_OnHoverRegister($Start, "StartStartToolTip", "HideToolTip") $Next=GUICtrlCreateButton("Next Song", 10, 70, 130, 20) _GUICtrl_OnHoverRegister($Next, "StartNextToolTip", "HideToolTip") $Help=GUICtrlCreateButton("?", 10, 100, 130, 20) _GUICtrl_OnHoverRegister($Help, "StartHelpToolTip", "HideToolTip") $DecreaseSound=GUICtrlCreateCheckbox("Decrease Sound?", 10, 128) _GUICtrl_OnHoverRegister($DecreaseSound, "StartDecreaseSoundToolTip", "HideToolTip") $AnyKey=GUICtrlCreateCheckbox("TouchShutdown?", 10, 145) _GUICtrl_OnHoverRegister($AnyKey, "StartAnyKeyToolTip", "HideToolTip") $label=GUICtrlCreateLabel("", 10, 205, 60, 20) $label4=GUICtrlCreateLabel("-", 40, 205, 10, 20) $label2=GUICtrlCreateLabel("", 46, 205, 60, 20) $label3=GUICtrlCreateLabel("", 95, 205, 60, 20) GUICtrlCreateGroup("", 5, 0, 140, 35) GUICtrlCreateGroup("", 5, 30, 140, 65) GUICtrlCreateGroup("", 5, 90, 140, 35) GUICtrlCreateGroup("", 5, 120, 140, 49) GUICtrlCreateGroup("", 5, 164, 140, 36) GUICtrlCreateGroup("", 5, 195, 140, 28) GUISetState() $o1=GUICtrlRead($Turnofftime) $o2=GUICtrlRead($Turnofftime) $o3=GUICtrlRead($Turnofftime) $AllFiles=_Filelisttoarrayex($Dir) WHile 1 If $Pause=1 and $1=@HOUR & ":" & @MIN Then ExitLoop If GUICtrlRead($AnyKey)=1 and _IsAnyKeyPressed() Then ExitLoop CheckStuff() $msg=GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE Exit Case $Undo If GUICtrlRead($Apply)="Apply" Then GUICtrlSetData($Turnofftime, $o2) If GUICtrlRead($Apply)="Applied" Then GUICtrlSetData($Turnofftime, $o3) Case $Next If $Nosong=1 Then $Getnew=1 _SoundClose($open) $4thlast=$3rdlast $3rdlast=$2ndlast $2ndlast=$last $last=$random EndIf Case $Help MsgBox(0, "Help", "This program is made so your computer turns itself off at a given time." & @CRLF & @CRLF & "Add songs in the 'Songs' directory, and the program will play a random one when you've pressed start." & @crlf & "Supported filetypes: .mp3" & @CRLF & "The songs can be separated into folders within the 'Songs' folder." & @crlf & "Add at least 5 songs to each folder!" & @CRLF & @CRLF & "It won't shutdown if you have any unsaved data on your computer!") Case $Apply $1=GUICtrlRead($Turnofftime) $o3=$o2 $o2=$1 GUICtrlSetData($Apply, "Applied") Case $Start If $Pause=1 Then If $Getnew=0 Then _SoundResume($open) EndIf $MakePause=0 GUICtrlSetData($Start, "Pause") EndIf If $Pause=0 Then _SoundPause($open) $MakePause=1 GUICtrlSetData($Start, "Start") EndIf If $MakePause=0 Then $Pause=0 If $MakePause=1 Then $Pause=1 EndSwitch If $1=@HOUR & ":" & @MIN Then $do="Shutdown" If $Pause=0 Then If $GetNewSoon=1 And TimerDiff($GetNewTimer)>5000 Then $Getnew=1 $4thlast=$3rdlast $3rdlast=$2ndlast $2ndlast=$last $last=$random $GetNewSoon=0 EndIf If $Getnew=1 Then If $do="Shutdown" Then ExitLoop $random=Random(1, $AllFiles[0], 1) $FileDir=$AllFiles[$random] $type = stringRight($FileDir, 4) If $type<>".mp3" Then $Nosong=1 Else If $random<>$last and $random<>$2ndlast and $random<>$3rdlast and $random<>$4thlast Then _SoundClose($open) $open=_SoundOpen($FileDir) $length=_SoundLength($open, 2) _SoundPlay($open, 0) $Getnew=0 $Nosong=1 EndIf EndIf EndIf If _SoundPos($open, 2) > $length-1 Then $GetNewTimer=TimerInit() $GetNewSoon=1 EndIf EndIf GetAllTimes() WEnd _SoundClose($open) $SD=GUICtrlRead($SDType) If $SD = "Shutdown" Then $SD = 1 If $SD = "Logoff" Then $SD = 0 If $SD = "Reboot" Then $SD = 2 If $SD = "Standby" Then $SD = 32 If $SD = "Hibernate" Then $SD = 64 If $SD = "Exit Program" Then Exit Shutdown($SD) Func CheckStuff() If GUICtrlRead($DecreaseSound)=1 Then DecreaseVolume() EndIf If TimerDiff($Timer)>1400 and $MakeToolTip=True Then ToolTip($ToolTip) $MakeToolTip=False EndIf If $o1<>GUICtrlRead($Turnofftime) Then $o1=GUICtrlRead($Turnofftime) GUICtrlSetData($Apply, "Apply") EndIf If $o2=GUICtrlRead($Turnofftime) And GUICtrlRead($Apply)="Apply" Then GUICtrlSetData($Apply, "Applied") EndIf EndFunc Func DecreaseVolume() If $Pause=0 Then if $firstvolume=True then $volumetimer=TimerInit() $firstvolume = False EndIf If TimerDiff($volumetimer)>120000 Then $getvolume=_GetMasterVolumeLevelScalar() If $getvolume<1 Then $getvolume=1 _SetMasterVolumeLevelScalar($getvolume-1) $volumetimer=TimerInit() EndIf EndIf EndFunc Func GetAllTimes() $2=@HOUR & ":" & @MIN & ":" & @SEC $11=$1 & ":00" $1TrimLeft=StringTrimLeft($11, 6) $1TrimRight=StringTrimRight($11, 6) $2TrimLeft=StringTrimLeft($2, 6) $2TrimRight=StringTrimRight($2, 6) $1GetMiddle1=StringTrimLeft($11, 3) $1GetMiddle2=StringTrimRight($1GetMiddle1, 3) $2GetMiddle1=StringTrimLeft($2, 3) $2GetMiddle2=StringTrimRight($2GetMiddle1, 3) $1Trim=$1GetMiddle2*60+$1TrimLeft+$1TrimRight*3600 $2Trim=$2GetMiddle2*60+$2TrimLeft+$2TrimRight*3600 $sOldFormattedTime=$sFormattedTime If $1Trim>$2Trim Then $Trim=($1Trim-$2Trim)*1000 $sFormattedTime = _TimeReadable2($Trim) EndIf If $1Trim<$2Trim Then $sEndDT = _DateAdd("D", 1, _NowCalcDate()) & " " & $1 & ":00" $iDiff = _DateDiff("s", _NowCalc(), $sEndDT) $iHours = Int($iDiff / 3600) $iMinutes = Int(($iDiff - ($iHours * 3600)) / 60) $iSeconds = $iDiff - (($iHours * 3600) + ($iMinutes * 60)) $sFormattedTime = StringRight("0" & $iHours, 2) & ":" & StringRight("0" & $iMinutes, 2) & ":" & StringRight("0" & $iSeconds, 2) EndIf If $do="Shutdown" Then $sFormattedTime="00:00:00" If $sOldFormattedTime<>$sFormattedTime Then GUICtrlSetData($label3, $sFormattedTime) $OldDisplayTime=$DisplayTime $OldTimeleft=$Timeleft $DisplayTime = _SoundPos($open, 2) $Timeleft = $length-$DisplayTime $Timeleft = _TimeReadable($Timeleft) $DisplayTime = _TimeReadable($DisplayTime) If $OldDisplayTime <> $DisplayTime Then GUICtrlSetData($label, $DisplayTime) If $OldTimeleft <> $Timeleft Then GUICtrlSetData($label2, $Timeleft) EndFunc Func _IsAnyKeyPressed($vDLL = 'user32.dll') If __KeyPressCheck(1, 221, -1, $vDLL) Then Return 1 Return 0 EndFunc Func __KeyPressCheck($iStart, $iFinish, $iHexKey = -1, $vDLL = 'user32.dll') Local $ikey, $ia_R For $ikey = $iStart To $iFinish If $iHexKey == -1 Then $ia_R = DllCall($vDLL, 'int', 'GetAsyncKeyState', 'int', '0x' & Hex($ikey, 2)) If $iHexKey <> -1 Then $ia_R = DllCall($vDLL, 'int', 'GetAsyncKeyState', 'int', '0x' & $iHexKey) If Not @error And BitAND($ia_R[0], 0x8000) = 0x8000 Then Return 1 Next Return 0 EndFunc Func _TimeReadable($mili) $TotalSeconds = Int($mili / 1000) $Hours = Int($TotalSeconds / 3600) $Minutes = Int(($TotalSeconds - ($Hours * 3600)) / 60) $Seconds = $TotalSeconds - (($Hours * 3600) + ($Minutes * 60)) If $Hours < 10 Then $Hours = "0" & $Hours If $Minutes < 10 Then $Minutes = "0" & $Minutes If $Seconds < 10 Then $Seconds = "0" & $Seconds $FormattedTime = $Minutes & ":" & $Seconds Return $FormattedTime EndFunc Func _TimeReadable2($mili) $TotalSeconds = Int($mili / 1000) $Hours = Int($TotalSeconds / 3600) $Minutes = Int(($TotalSeconds - ($Hours * 3600)) / 60) $Seconds = $TotalSeconds - (($Hours * 3600) + ($Minutes * 60)) If $Hours < 10 Then $Hours = "0" & $Hours If $Minutes < 10 Then $Minutes = "0" & $Minutes If $Seconds < 10 Then $Seconds = "0" & $Seconds $FormattedTime = $Hours & ":" & $Minutes & ":" & $Seconds Return $FormattedTime EndFunc Func StartHelpToolTip() $MakeToolTip=True $timer=TimerInit() $ToolTip="Need Help? Click Here!" EndFunc Func StartNextToolTip() $MakeToolTip=True $timer=TimerInit() $ToolTip="Open the next song" EndFunc Func StartAnyKeyToolTip() $MakeToolTip=True $timer=TimerInit() $ToolTip="Shuts down if any key is pressed" EndFunc Func StartUndoToolTip() $MakeToolTip=True $timer=TimerInit() $ToolTip="Undo current time" EndFunc Func StartStartToolTip() $MakeToolTip=True $timer=TimerInit() If GUICtrlRead($Start)="Start" Then $ToolTip="Start playing songs" If GUICtrlRead($Start)="Pause" Then $ToolTip="Pause current song" EndFunc Func StartSDTypeToolTip() $MakeToolTip=True $timer=TimerInit() $ToolTip="What kind of shutdown?" EndFunc Func StartDecreaseSoundToolTip() $MakeToolTip=True $timer=TimerInit() $ToolTip="Decreases sound one step every 2 minutes" EndFunc Func StartApplyToolTip() $MakeToolTip=True $timer=TimerInit() If GUICtrlRead($Apply)="Applied" Then $ToolTip="Inserted time is alredy applied" If GUICtrlRead($Apply)="Apply" Then $ToolTip="Apply inserted time" EndFunc Func HideToolTip() $MakeToolTip=False ToolTip("") EndFunc #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=C:\Users\Elias\Documents\Autoit\Laptop\Shutdown\peace.ico #AutoIt3Wrapper_Add_Constants=n #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <Sound.au3> #include <INet.au3> #include <GUIConstantsEx.au3> #include <Date.au3> ;~ #Include <_FileListToArray.au3> ;~ #include <GUICtrlOnHover.au3> ;~ #include <_AudioEndpointVolume.au3> If not FileExists(@ScriptDir & "\Songs") Then DirCreate(@ScriptDir & "\Songs") MsgBox(0, "Get Started!", "Move songs into the 'Songs' folder to listen to them before falling asleep!" & @CRLF & @CRLF & "Add at least 5 songs!") EndIf local $Dir="" $FindFolders=_FileListToArray(@ScriptDir & "\Songs","*",2) if not @error then $Dir=FileSelectFolder("Select the folder you want your songs played from. Using the 'Songs' folder will play a random song from every folder!", @ScriptDir & "\Songs") If @error = 1 then Exit EndIf If $Dir = "" Then $Dir = @ScriptDir & "\Songs" Local $last, $2ndlast, $3rdlast, $4thlast, $random, $open, $DisplayTime, $Timeleft, $length, $sFormattedTime, $do, $timer, $MakeToolTip, $ToolTip, $GetNewTimer, $GetNewSoon, $volumetimer $Getnew=1 $Pause=1 $Nosong=0 $firstvolume=True If @HOUR<>23 Then If @MIN>39 Then $time = @HOUR+1 & ":" & @MIN-30 If @MIN>29 And @MIN<40 Then $time = @HOUR+1 & ":0" & @MIN-30 If @MIN<30 Then $time = @Hour & ":" & @MIN+30 If @MIN>39 Then $1 = @HOUR+1 & ":" & @MIN-30 If @MIN>29 And @MIN<40 Then $1 = @HOUR+1 & ":0" & @MIN-30 If @MIN<30 Then $1 = @Hour & ":" & @MIN+30 EndIf If @HOUR=23 Then If @MIN>39 Then $time = @HOUR-23 & "0:" & @MIN-30 If @MIN>29 And @MIN<40 Then $time = @HOUR+1 & ":0" & @MIN-30 If @MIN<30 Then $time = @Hour & ":" & @MIN+30 If @MIN>39 Then $1 = @HOUR-23 & "0:" & @MIN-30 If @MIN>29 And @MIN<40 Then $1 = @HOUR+1 & ":0" & @MIN-30 If @MIN<30 Then $1 = @Hour & ":" & @MIN+30 EndIf $Files=_Filelisttoarrayex($Dir) if @error Then MsgBox(0, "Error:", "Error: Add at least 5 songs in the 'Songs' directory before trying again!") ShellExecute(@ScriptDir & "\Songs") Exit EndIf GUICreate("", 150, 225) $SDType=GUICtrlCreateCombo("Shutdown", 10, 175, 130, 20) GUICtrlSetData($SDType, "Logoff|Reboot|Standby|Hibernate|Exit Program", "Shutdown") $Turnofftime=GUICtrlCreateInput($time, 50, 10, 35, 20) $Apply=GUICtrlCreateButton("Applied", 90, 10, 50, 20) $Undo=GUICtrlCreateButton("Undo", 10, 10, 35, 20) $Start=GUICtrlCreateButton("Start", 10, 40, 130, 20) $Next=GUICtrlCreateButton("Next Song", 10, 70, 130, 20) $Help=GUICtrlCreateButton("?", 10, 100, 130, 20) $DecreaseSound=GUICtrlCreateCheckbox("Decrease Sound?", 10, 128) $AnyKey=GUICtrlCreateCheckbox("TouchShutdown?", 10, 145) $label=GUICtrlCreateLabel("", 10, 205, 60, 20) $label4=GUICtrlCreateLabel("-", 40, 205, 10, 20) $label2=GUICtrlCreateLabel("", 46, 205, 60, 20) $label3=GUICtrlCreateLabel("", 95, 205, 60, 20) GUICtrlCreateGroup("", 5, 0, 140, 35) GUICtrlCreateGroup("", 5, 30, 140, 65) GUICtrlCreateGroup("", 5, 90, 140, 35) GUICtrlCreateGroup("", 5, 120, 140, 49) GUICtrlCreateGroup("", 5, 164, 140, 36) GUICtrlCreateGroup("", 5, 195, 140, 28) GUISetState() $o1=GUICtrlRead($Turnofftime) $o2=GUICtrlRead($Turnofftime) $o3=GUICtrlRead($Turnofftime) $AllFiles=_Filelisttoarrayex($Dir) WHile 1 If $Pause=1 and $1=@HOUR & ":" & @MIN Then ExitLoop If GUICtrlRead($AnyKey)=1 and _IsAnyKeyPressed() Then ExitLoop CheckStuff() $msg=GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE Exit Case $Undo If GUICtrlRead($Apply)="Apply" Then GUICtrlSetData($Turnofftime, $o2) If GUICtrlRead($Apply)="Applied" Then GUICtrlSetData($Turnofftime, $o3) Case $Next If $Nosong=1 Then $Getnew=1 _SoundClose($open) $4thlast=$3rdlast $3rdlast=$2ndlast $2ndlast=$last $last=$random EndIf Case $Help MsgBox(0, "Help", "This program is made so your computer turns itself off at a given time." & @CRLF & @CRLF & "Add songs in the 'Songs' directory, and the program will play a random one when you've pressed start." & @crlf & "Supported filetypes: .mp3" & @CRLF & "The songs can be separated into folders within the 'Songs' folder." & @crlf & "Add at least 5 songs to each folder!" & @CRLF & @CRLF & "It won't shutdown if you have any unsaved data on your computer!") Case $Apply $1=GUICtrlRead($Turnofftime) $o3=$o2 $o2=$1 GUICtrlSetData($Apply, "Applied") Case $Start If $Pause=1 Then If $Getnew=0 Then _SoundResume($open) EndIf $MakePause=0 GUICtrlSetData($Start, "Pause") EndIf If $Pause=0 Then _SoundPause($open) $MakePause=1 GUICtrlSetData($Start, "Start") EndIf If $MakePause=0 Then $Pause=0 If $MakePause=1 Then $Pause=1 EndSwitch If $1=@HOUR & ":" & @MIN Then $do="Shutdown" If $Pause=0 Then If $GetNewSoon=1 And TimerDiff($GetNewTimer)>5000 Then $Getnew=1 $4thlast=$3rdlast $3rdlast=$2ndlast $2ndlast=$last $last=$random $GetNewSoon=0 EndIf If $Getnew=1 Then If $do="Shutdown" Then ExitLoop $random=Random(1, $AllFiles[0], 1) $FileDir=$AllFiles[$random] $type = stringRight($FileDir, 4) If $type<>".mp3" Then $Nosong=1 Else If $random<>$last and $random<>$2ndlast and $random<>$3rdlast and $random<>$4thlast Then _SoundClose($open) $open=_SoundOpen($FileDir) $length=_SoundLength($open, 2) _SoundPlay($open, 0) $Getnew=0 $Nosong=1 EndIf EndIf EndIf If _SoundPos($open, 2) > $length-1 Then $GetNewTimer=TimerInit() $GetNewSoon=1 EndIf EndIf GetAllTimes() WEnd _SoundClose($open) $SD=GUICtrlRead($SDType) If $SD = "Shutdown" Then $SD = 1 If $SD = "Logoff" Then $SD = 0 If $SD = "Reboot" Then $SD = 2 If $SD = "Standby" Then $SD = 32 If $SD = "Hibernate" Then $SD = 64 If $SD = "Exit Program" Then Exit Shutdown($SD) Func CheckStuff() If GUICtrlRead($DecreaseSound)=1 Then DecreaseVolume() EndIf If TimerDiff($Timer)>1400 and $MakeToolTip=True Then ToolTip($ToolTip) $MakeToolTip=False EndIf If $o1<>GUICtrlRead($Turnofftime) Then $o1=GUICtrlRead($Turnofftime) GUICtrlSetData($Apply, "Apply") EndIf If $o2=GUICtrlRead($Turnofftime) And GUICtrlRead($Apply)="Apply" Then GUICtrlSetData($Apply, "Applied") EndIf EndFunc Func DecreaseVolume() If $Pause=0 Then ;~ Do stuff you cant do without audioendpointvolume EndIf EndFunc Func GetAllTimes() $2=@HOUR & ":" & @MIN & ":" & @SEC $11=$1 & ":00" $1TrimLeft=StringTrimLeft($11, 6) $1TrimRight=StringTrimRight($11, 6) $2TrimLeft=StringTrimLeft($2, 6) $2TrimRight=StringTrimRight($2, 6) $1GetMiddle1=StringTrimLeft($11, 3) $1GetMiddle2=StringTrimRight($1GetMiddle1, 3) $2GetMiddle1=StringTrimLeft($2, 3) $2GetMiddle2=StringTrimRight($2GetMiddle1, 3) $1Trim=$1GetMiddle2*60+$1TrimLeft+$1TrimRight*3600 $2Trim=$2GetMiddle2*60+$2TrimLeft+$2TrimRight*3600 $sOldFormattedTime=$sFormattedTime If $1Trim>$2Trim Then $Trim=($1Trim-$2Trim)*1000 $sFormattedTime = _TimeReadable2($Trim) EndIf If $1Trim<$2Trim Then $sEndDT = _DateAdd("D", 1, _NowCalcDate()) & " " & $1 & ":00" $iDiff = _DateDiff("s", _NowCalc(), $sEndDT) $iHours = Int($iDiff / 3600) $iMinutes = Int(($iDiff - ($iHours * 3600)) / 60) $iSeconds = $iDiff - (($iHours * 3600) + ($iMinutes * 60)) $sFormattedTime = StringRight("0" & $iHours, 2) & ":" & StringRight("0" & $iMinutes, 2) & ":" & StringRight("0" & $iSeconds, 2) EndIf If $do="Shutdown" Then $sFormattedTime="00:00:00" If $sOldFormattedTime<>$sFormattedTime Then GUICtrlSetData($label3, $sFormattedTime) $OldDisplayTime=$DisplayTime $OldTimeleft=$Timeleft $DisplayTime = _SoundPos($open, 2) $Timeleft = $length-$DisplayTime $Timeleft = _TimeReadable($Timeleft) $DisplayTime = _TimeReadable($DisplayTime) If $OldDisplayTime <> $DisplayTime Then GUICtrlSetData($label, $DisplayTime) If $OldTimeleft <> $Timeleft Then GUICtrlSetData($label2, $Timeleft) EndFunc Func _IsAnyKeyPressed($vDLL = 'user32.dll') If __KeyPressCheck(1, 221, -1, $vDLL) Then Return 1 Return 0 EndFunc Func __KeyPressCheck($iStart, $iFinish, $iHexKey = -1, $vDLL = 'user32.dll') Local $ikey, $ia_R For $ikey = $iStart To $iFinish If $iHexKey == -1 Then $ia_R = DllCall($vDLL, 'int', 'GetAsyncKeyState', 'int', '0x' & Hex($ikey, 2)) If $iHexKey <> -1 Then $ia_R = DllCall($vDLL, 'int', 'GetAsyncKeyState', 'int', '0x' & $iHexKey) If Not @error And BitAND($ia_R[0], 0x8000) = 0x8000 Then Return 1 Next Return 0 EndFunc Func _TimeReadable($mili) $TotalSeconds = Int($mili / 1000) $Hours = Int($TotalSeconds / 3600) $Minutes = Int(($TotalSeconds - ($Hours * 3600)) / 60) $Seconds = $TotalSeconds - (($Hours * 3600) + ($Minutes * 60)) If $Hours < 10 Then $Hours = "0" & $Hours If $Minutes < 10 Then $Minutes = "0" & $Minutes If $Seconds < 10 Then $Seconds = "0" & $Seconds $FormattedTime = $Minutes & ":" & $Seconds Return $FormattedTime EndFunc Func _TimeReadable2($mili) $TotalSeconds = Int($mili / 1000) $Hours = Int($TotalSeconds / 3600) $Minutes = Int(($TotalSeconds - ($Hours * 3600)) / 60) $Seconds = $TotalSeconds - (($Hours * 3600) + ($Minutes * 60)) If $Hours < 10 Then $Hours = "0" & $Hours If $Minutes < 10 Then $Minutes = "0" & $Minutes If $Seconds < 10 Then $Seconds = "0" & $Seconds $FormattedTime = $Hours & ":" & $Minutes & ":" & $Seconds Return $FormattedTime EndFunc Func _FileListToArrayEx($s_path, $s_mask = "*.*", $i_flag = 0, $s_exclude = -1, $f_recurse = True, $f_full_path = True) If FileExists($s_path) = 0 Then Return SetError(1, 1, 0) ; Strip trailing backslash, and add one after to make sure there's only one $s_path = StringRegExpReplace($s_path, "[\\/]+\z", "") & "\" ; Set all defaults If $s_mask = -1 Or $s_mask = Default Then $s_mask = "*.*" If $i_flag = -1 Or $i_flag = Default Then $i_flag = 0 If $s_exclude = -1 Or $s_exclude = Default Then $s_exclude = "" ; Look for bad chars If StringRegExp($s_mask, "[/:><\|]") Or StringRegExp($s_exclude, "[/:><\|]") Then Return SetError(2, 2, 0) EndIf ; Strip leading spaces between semi colon delimiter $s_mask = StringRegExpReplace($s_mask, "\s*;\s*", ";") If $s_exclude Then $s_exclude = StringRegExpReplace($s_exclude, "\s*;\s*", ";") ; Confirm mask has something in it If StringStripWS($s_mask, 8) = "" Then Return SetError(2, 2, 0) If $i_flag < 0 Or $i_flag > 2 Then Return SetError(3, 3, 0) ; Validate and create path + mask params Local $a_split = StringSplit($s_mask, ";"), $s_hold_split = "" For $i = 1 To $a_split[0] If StringStripWS($a_split[$i], 8) = "" Then ContinueLoop If StringRegExp($a_split[$i], "^\..*?\..*?\z") Then $a_split[$i] &= "*" & $a_split[$i] EndIf $s_hold_split &= '"' & $s_path & $a_split[$i] & '" ' Next $s_hold_split = StringTrimRight($s_hold_split, 1) If $s_hold_split = "" Then $s_hold_split = '"' & $s_path & '*.*"' Local $i_pid, $s_stdout, $s_hold_out, $s_dir_file_only = "", $s_recurse = "/s " If $i_flag = 1 Then $s_dir_file_only = ":-d" If $i_flag = 2 Then $s_dir_file_only = ":D" If Not $f_recurse Then $s_recurse = "" $i_pid = Run(@ComSpec & " /c dir /b " & $s_recurse & "/a" & $s_dir_file_only & " " & $s_hold_split, "", @SW_HIDE, 4 + 2) While 1 $s_stdout = StdoutRead($i_pid) If @error Then ExitLoop $s_hold_out &= $s_stdout WEnd $s_hold_out = StringRegExpReplace($s_hold_out, "\v+\z", "") If Not $s_hold_out Then Return SetError(4, 4, 0) ; Parse data and find matches based on flags Local $a_fsplit = StringSplit(StringStripCR($s_hold_out), @LF), $s_hold_ret $s_hold_out = "" If $s_exclude Then $s_exclude = StringReplace(StringReplace($s_exclude, "*", ".*?"), ";", "|") For $i = 1 To $a_fsplit[0] If $s_exclude And StringRegExp(StringRegExpReplace( _ $a_fsplit[$i], "(.*?[\\/]+)*(.*?\z)", "\2"), "(?i)\Q" & $s_exclude & "\E") Then ContinueLoop If StringRegExp($a_fsplit[$i], "^\w:[\\/]+") = 0 Then $a_fsplit[$i] = $s_path & $a_fsplit[$i] If $f_full_path Then $s_hold_ret &= $a_fsplit[$i] & Chr(1) Else $s_hold_ret &= StringRegExpReplace($a_fsplit[$i], "((?:.*?[\\/]+)*)(.*?\z)", "$2") & Chr(1) EndIf Next $s_hold_ret = StringTrimRight($s_hold_ret, 1) If $s_hold_ret = "" Then Return SetError(5, 5, 0) Return StringSplit($s_hold_ret, Chr(1)) EndFunc
  24. Noone have any ideas on how to fix this? Sorry for bumping so much, this is the last time.
  25. Game automation? That script is a little game itself. It has nothing to do with game automation. Its just that when an item-box thingy is on one of the lines, then gets removed cause it has been taken, the graphics gets removed instead of showing up where the box was.
×
×
  • Create New...