Jump to content

freezing on one function


Recommended Posts

okay working on something

here's my code (its still in setup phase)

#include <Array.au3>
#include <GUIConstantsEx.au3>

;initialization crap
Opt("MouseCoordMode", 0) ;DO NOT CHANGE!!!! will break _MouseClickPlus()

$ini =                  "countrylife.ini"
Dim $go =               0
$pause =                0
$resetting =            0
$farm =                 0

Dim $plot =             0
dim $cow =              0
dim $cheese_maker =     0
;below commented out for testing of INI writing
;$setup_done = IniRead($ini, "Setup_Done", "0_1", "Not found")
;if $setup_done = 0 then _Setup()

;HotKeySet("{F1}", "StartMine")
;HotKeySet("{F2}", "SetPause")
;HotKeySet("{F3}", "StopMine")
;HotKeySet("{F4}", "ResetMine")

;======================================================================
;reads into an array each section from the ini file (preps the array)
Global $plot_array =    IniReadSection($ini, "plots")
Global $cow_array =     IniReadSection($ini, "coww")
Global $cheese_array =  IniReadSection($ini, "cheese_maker")
;======================================================================


;======================================================================
;.ini reading
$plot =                 IniRead($ini, "setup", "plots", "0")
$plot_done =            IniRead($ini, "setup", "plots", "0")
;Global $plot_array[$plot]
$cow =                  IniRead($ini, "setup", "cow", "0")
$cow_feed =             IniRead($ini, "setup", "cow_feed", "0")
$cow_done =             IniRead($ini, "setup", "cow_done", "0")
;Global $cow_array[$cow]
$cheese_maker =         IniRead($ini, "setup", "cheese_maker", "0")
$cheese_maker_feed =    IniRead($ini, "setup", "cheese_maker_feed", "0")
;Global $cheeze_array[$cheese_maker]
$cheese_maker_done =    IniRead($ini, "setup", "cheese_maker_done", "0")
;end .ini reading
;======================================================================


;======================================================================
;debug section
$debug_mode =           IniRead($ini,"debug","debug_mode","not found")
$debug_mode =           0 ;0 won't show 1 will show dialog's verifying locations and other debugging information
;======================================================================

;make program create and read in positions from .ini file  (make dynamic so it changes as the amount of plots ect... changes

;program flow
Main_Execution() ;main execution of the program
;end program flow

;ini creation for setup

func Main_Execution()
    WinWaitActive("Country Life on Facebook")
    Setup()                     ;setup functions/routines
    Prep_Work()                 ;ini file reads, doublechecks for proper information and that variables have obtained correct data.
    Prepare_Screen()            ;zooms out screen
    Check_Plots()               ;checks plots to see if they are ready to harvest
    Harvest_Plots()             ;harvests plots 
    Check_Cows()                ;checks cows for harvest
    Harvest_Cows()              ;harvests cows
    Check_Cheese()              ;checks cheese for harvest
    Harvest_Cheese()            ;harvests cheese
    
EndFunc


Func Setup()
    MouseClick("left", 974, 731)
    Sleep(500)
    MouseClick("left", 974, 731)
    Sleep(500)
    MouseClick("left", 974, 731)
    Sleep(500)
    MouseClick("left", 974, 731)
    Sleep(500)
    if $plot = 0 then 
        $plot= InputBox("Crop Amount", "How many crop plots do you have?.", "", " M3")
        INIWrite($ini, "setup", "plot", $plot)
    EndIf
    if $cow = 0 then 
        $cow = InputBox("Cow Amount", "How many cows do you have?.", "", " M3")
        $cow_feed = $cow
        INIWrite($ini, "setup", "cow", $cow)
        IniWrite($ini, "setup", "cow_feed", $cow)
    EndIf
    if $cheese_maker = 0 then 
        $cheese_maker = InputBox("Cheese Makers", "How many cheese makers do you have?.", "", " M3")
        $cheese_maker_feed = $cheese_maker
        INIWrite($ini, "setup", "cheese_maker", $cheese_maker)
        IniWrite($ini, "setup", "cheese_maker_feed", $cheese_maker)
    EndIf
    
    if $plot_done = 0 Then
        Plot_Setup()
    EndIf
    if $cow_done = 0 Then
        Cow_Setup()
    EndIf
    if $cheese_maker_done = 0 Then
        Cheese_Maker_Setup()
    EndIf
EndFunc

;plot setup
Func Plot_Setup()
    $current = 0
    while $current <= $plot ;plot location setup
        Global $spot1 = 0;reset position indicator
        HotKeySet("{ENTER}", "getSpot1");set ENTER hotkey
        While $spot1 = 0;does the loop while the coordinates have not been set
            ToolTip("Move mouse to plot location and press ENTER. Continue till all plots have been clicked!!!!")
            Sleep(50)
        WEnd
        ToolTip("");remove the tooltip
        HotKeySet("{ENTER}");turn off the hotkey
        If $debug_mode = 1 Then
            MsgBox("", "Spot 1", 'X:'&$spot1[0]&' Y:'&$spot1[1])
        EndIf
        IniWrite($ini,"plotsX",$current,$spot1[0])
        IniWrite($ini,"plotsY",$current,$spot1[1])
        if $current = $plot Then
            ToolTip("All plot locations recorded!!!")
            IniWrite($ini,"setup","plot_done", "1")
            $plot_done = 1
            Sleep(5000)
        Else
            $current = $current + 1
        EndIf
    WEnd
EndFunc

    
Func Cow_Setup()
    $current =0
    while $current <= $cow ;cow location setup
        Global $spot1 = 0;reset position indicator
        HotKeySet("{ENTER}", "getSpot1");set ENTER hotkey
        While $spot1 = 0;does the loop while the coordinates have not been set
            ToolTip("Move mouse to the location of a cow and press ENTER.")
            Sleep(50)
        WEnd
        ToolTip("");remove the tooltip
        HotKeySet("{ENTER}");turn off the hotkey
        if $debug_mode = 1 Then
            MsgBox("", "Spot 1", 'X:'&$spot1[0]&' Y:'&$spot1[1])
        EndIf
        IniWrite($ini,"cowX",$current,$spot1[0])
        IniWrite($ini,"cowY",$current,$spot1[1])
        while $current <= $cow_feed ;cow location setup
            Global $spot1 = 0;reset position indicator
            HotKeySet("{ENTER}", "getSpot1");set ENTER hotkey
            While $spot1 = 0;does the loop while the coordinates have not been set
                ToolTip("Move mouse to the location of where you feed the cow and press ENTER.")
                Sleep(50)
            WEnd
            ToolTip("");remove the tooltip
            HotKeySet("{ENTER}");turn off the hotkey
            if $debug_mode = 1 Then
                MsgBox("", "Spot 1", 'X:'&$spot1[0]&' Y:'&$spot1[1])
            EndIf
            IniWrite($ini,"cow_feedX",$current,$spot1[0])
            IniWrite($ini,"cow_feedY",$current,$spot1[1])
            if $current = $cow_feed Then
                ToolTip("All cow feed locations recorded!!!")
                Sleep(5000)
            EndIf
        WEnd
        If $current = $cow Then
            ToolTip("All cow locations recorded!!!")
            IniWrite($ini,"setup","cow_done", "1")
            Sleep(5000)
            $cow_done=1
        Else
            $current = $current + 1
        EndIf
    WEnd
EndFunc


Func Cheese_Maker_Setup()
    $current =0
    While $current <= $cheese_maker ;cheese maker location setup
        Global $spot1 = 0;reset position indicator
        HotKeySet("{ENTER}", "getSpot1");set ENTER hotkey
        While $spot1 = 0;does the loop while the coordinates have not been set
            ToolTip("Move mouse to the location of a cheese maker and press ENTER.")
            Sleep(50)
        WEnd
        ToolTip("");remove the tooltip
        HotKeySet("{ENTER}");turn off the hotkey
        if $debug_mode = 1 Then
            MsgBox("", "Spot 1", 'X:'&$spot1[0]&' Y:'&$spot1[1])
        EndIf
        IniWrite($ini,"cheese_makerX",$current,$spot1[0])
        IniWrite($ini,"cheese_makerY",$current,$spot1[1])
        while $current <= $cheese_maker_feed ;cheese maker feed location setup
            Global $spot1 = 0;reset position indicator
            HotKeySet("{ENTER}", "getSpot1");set ENTER hotkey
            While $spot1 = 0;does the loop while the coordinates have not been set
                ToolTip("Move mouse to the location of where you feed the cheese maker and press ENTER.")
                Sleep(50)
            WEnd
            ToolTip("");remove the tooltip
            HotKeySet("{ENTER}");turn off the hotkey
            if $debug_mode = 1 Then
                MsgBox("", "Spot 1", 'X:'&$spot1[0]&' Y:'&$spot1[1])
            EndIf
            IniWrite($ini,"cheese_maker_feedX",$current,$spot1[0])
            IniWrite($ini,"cheese_maker_feedY",$current,$spot1[1])
            if $current = $cheese_maker_feed Then
                ToolTip("All cheese maker feed locations recorded!!!")
                Sleep(5000)
            EndIf
            If $current = $cheese_maker Then
                ToolTip("All cheese maker locations recorded!!!")
                IniWrite($ini,"setup","cow_done", "1")
                Sleep(5000)
                $cheese_maker_done = 1
            Else
                $current = $current + 1 
            EndIf
        WEnd
    WEnd
EndFunc

    

func Prep_Work()
EndFunc

func Prepare_Screen()
EndFunc

func Check_Plots()
EndFunc

func Harvest_Plots()
EndFunc

func Check_Cows()
EndFunc

func Harvest_Cows()
EndFunc

func Check_Cheese()
EndFunc

func Harvest_Cheese()
EndFunc

func Clean_Up()
EndFunc

func getSpot1();get mining spot 1
 $spot1 = MouseGetPos()
EndFunc

;Tray Control Functions (start/stop/pause bot operations)
Func StartMine()
    $go = 1
    $pause = 0
    $farm = 1
    ;MsgBox("", "Current Stats", '$go:'&$go&' Pause:'&$pause)
EndFunc  

Func End()
    Exit
EndFunc   

func SetPause()
    $pause = 1
    $farm = 0
EndFunc

func PauseMine()
    sleep (10)
EndFunc

func StopMine()
    $farm = 0
EndFunc

Func ExitScript()
    Exit
EndFunc

Func _MouseClick($hWnd, $button, $x, $y, $times = 1, $delay = 0)
    Local $ret, $ix
    $ret = DllCall("user32.dll", "int", "PostMessage", "hwnd", $hWnd, "int", 0x200, "int", 0, "long", _MakeLong($x, $y))
    If $ret[0] = 0 Then
        SetError(-1)
        Return
    EndIf
    $button = StringLower($button)
    If $button = "left" Then
        For $ix = 1 To $times
            $ret = DllCall("user32.dll", "int", "PostMessage", "hwnd", $hWnd, "int", 0x201, "int", 1, "long", _MakeLong($x, $y))
            If $ret[0] = 0 Then
                SetError(-2)
                Return
            Else
                $ret = DllCall("user32.dll", "int", "PostMessage", "hwnd", $hWnd, "int", 0x202, "int", 0, "long", _MakeLong($x, $y))
                If $ret[0] = 0 Then
                    SetError(-3)
                    Return
                EndIf
            EndIf
            Sleep($delay)
        Next
    ElseIf $button = "right" Then
        For $ix = 1 To $times
            $ret = DllCall("user32.dll", "int", "PostMessage", "hwnd", $hWnd, "int", 0x204, "int", 2, "long", _MakeLong($x, $y))
            If $ret[0] = 0 Then
                SetError(-4)
                Return
            Else
                $ret = DllCall("user32.dll", "int", "PostMessage", "hwnd", $hWnd, "int", 0x205, "int", 0, "long", _MakeLong($x, $y))
                If $ret[0] = 0 Then
                    SetError(-5)
                    Return
                EndIf
            EndIf
            Sleep($delay)
        Next
    Else
        SetError(-6)
        Return
    EndIf
EndFunc 

Func _MakeLong($LoWord, $HiWord)
    Return BitOR($HiWord * 0x10000, BitAND($LoWord, 0xFFFF))
EndFunc  ;==>_MakeLong

now its looping thru the Setup_Plot() function and its not going to the Setup_Cow() function

its seeing that its reached the pre-set (thru dialog box) amount of locations, but not leaving the function.....

(I apologize if this is a noob question but I can't see why it won't leave the function and just keeps looping)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...