Page 1 of 4 123 ... LastLast
Results 1 to 15 of 50
  1. #1
    HaHaItsJake's Avatar
    Join Date
    Jan 2013
    Gender
    male
    Posts
    164
    Reputation
    10
    Thanks
    483

    Thumbs up Trove Fishing Bot v2

    WARNING:
    https://forums.trovegame.com/showthread.php?15338-A-reminder-about-botting

    They will be patching this this week! Once the games up-dates DON'T USE IT! Until then, you're safe.


    Thank You!: Takeon for shorting the ReadMemory codes and Lava Pointer's.

    Background botting (Don't minimize it!)


    What's been added:
    Lava Fishing
    Mutli-Accounting (Easy)
    Auto Lure Find (Reads Slot #1 for the lure amount!)

    1. Downlaod AHK if you haven't!
    2. Create a New Desktop Folder! (Folder can be named what ever you want and placed anywhere on computer)
    3. Copy the main script code into a new file that's inside the folder you just created (File can be named anything but ends with .ahk). You Can compile this code if you want.
     

    Code:
    #NoEnv
    SendMode Input
    SetWorkingDir %A_ScriptDir%
    CoordMode, ToolTip, Screen
    SetTitleMatchMode, 3
    SetKeyDelay, 0, 2
    
    
    Numpad9::
        FileDelete, %A_ScriptDir%\tmp\break.txt
        FileAppend, 0, %A_ScriptDir%\tmp\break.txt
        GetWindowsHandle()
    return
    
    
    !Numpad9::
        FileDelete, %A_ScriptDir%\tmp\break.txt
        FileAppend, 1, %A_ScriptDir%\tmp\break.txt
    return
    
    
    Numpad7::
    ExitApp
    
    
    
    
    GetWindowsHandle()
    {
        Global
        AccNum := 0
        WinGet, id, list, Trove
        Loop, %id%
        {    
            AccNum := AccNum + 1
            ids := id%A_Index%
            SetWindowHandle(AccNum, ids)
        }
    }
    
    
    SetWindowHandle(AccNumF, this_id)
    {
        Global
            If (AccNumF = 1)
            {
                1Handle = %this_id%
                WinGet, pid1, PID, ahk_id %1Handle%
                pid1 := pid1
                Lure1 := GetLureAmmount(1Handle, pid1)
                FileDelete, %A_ScriptDir%\tmp\lure1.txt
                FileAppend, %Lure1%, %A_ScriptDir%\tmp\lure1.txt
                FileDelete, %A_ScriptDir%\tmp\pid1.txt
                FileAppend, %pid1%, %A_ScriptDir%\tmp\pid1.txt
                FileDelete,  %A_ScriptDir%\tmp\handle1.txt
                FileAppend, %1Handle%, %A_ScriptDir%\tmp\handle1.txt
                Run, %A_ScriptDir%\Thread1.exe
            }
            else If (AccNumF = 2)
            {
                2Handle = %this_id%
                WinGet, pid2, PID, ahk_id %2Handle%
                pid2 := pid2
                Lure2 := GetLureAmmount(2Handle, pid2)
                FileDelete, %A_ScriptDir%\tmp\lure2.txt
                FileAppend, %Lure2%, %A_ScriptDir%\tmp\lure2.txt
                FileDelete, %A_ScriptDir%\tmp\pid2.txt
                FileAppend, %pid2%, %A_ScriptDir%\tmp\pid2.txt
                FileDelete,  %A_ScriptDir%\tmp\handle2.txt
                FileAppend, %2Handle%, %A_ScriptDir%\tmp\handle2.txt
                Run, %A_ScriptDir%\Thread2.exe
            }
            else If (AccNumF = 3)
            {
                3Handle = %this_id%
                WinGet, pid3, PID, ahk_id %3Handle%
                pid3 := pid3
                Lure3 := GetLureAmmount(3Handle, pid3)
                FileDelete, %A_ScriptDir%\tmp\lure3.txt
                FileAppend, %Lure3%, %A_ScriptDir%\tmp\lure3.txt
                FileDelete, %A_ScriptDir%\tmp\pid3.txt
                FileAppend, %pid3%, %A_ScriptDir%\tmp\pid3.txt
                FileDelete,  %A_ScriptDir%\tmp\handle3.txt
                FileAppend, %3Handle%, %A_ScriptDir%\tmp\handle3.txt
                Run, %A_ScriptDir%\Thread3.exe
            }
            else If (AccNumF = 4)
            {
                4Handle = %this_id%
                WinGet, pid4, PID, ahk_id %4Handle%
                pid4 := pid4
                Lure4 := GetLureAmmount(4Handle, pid4)
                FileDelete, %A_ScriptDir%\tmp\lure4.txt
                FileAppend, %Lure4%, %A_ScriptDir%\tmp\lure4.txt
                FileDelete, %A_ScriptDir%\tmp\pid4.txt
                FileAppend, %pid4%, %A_ScriptDir%\tmp\pid4.txt
                FileDelete,  %A_ScriptDir%\tmp\handle4.txt
                FileAppend, %4Handle%, %A_ScriptDir%\tmp\handle4.txt
                Run, %A_ScriptDir%\Thread4.exe
            }
            else If (AccNumF = 5)
            {
                5Handle = %this_id%
                WinGet, pid5, PID, ahk_id %5Handle%
                pid5 := pid5
                Lure5 := GetLureAmmount(5Handle, pid5)
                FileDelete, %A_ScriptDir%\tmp\lure5.txt
                FileAppend, %Lure5%, %A_ScriptDir%\tmp\lure5.txt
                FileDelete, %A_ScriptDir%\tmp\pid5.txt
                FileAppend, %pid5%, %A_ScriptDir%\tmp\pid5.txt
                FileDelete,  %A_ScriptDir%\tmp\handle5.txt
                FileAppend, %5Handle%, %A_ScriptDir%\tmp\handle5.txt
                Run, %A_ScriptDir%\Thread5.exe
            }
            else If (AccNumF = 6)
            {
                6Handle = %this_id%
                WinGet, pid6, PID, ahk_id %6Handle%
                pid6 := pid6
                Lure6 := GetLureAmmount(6Handle, pid6)
                FileDelete, %A_ScriptDir%\tmp\lure6.txt
                FileAppend, %Lure6%, %A_ScriptDir%\tmp\lure6.txt
                FileDelete, %A_ScriptDir%\tmp\pid6.txt
                FileAppend, %pid6%, %A_ScriptDir%\tmp\pid6.txt
                FileDelete,  %A_ScriptDir%\tmp\handle6.txt
                FileAppend, %6Handle%, %A_ScriptDir%\tmp\handle6.txt
                Run, %A_ScriptDir%\Thread6.exe
            }
            else If (AccNumF = 7)
            {
                7Handle = %this_id%
                WinGet, pid7, PID, ahk_id %7Handle%
                pid7 := pid7
                Lure7 := GetLureAmmount(7Handle, pid7)
                FileDelete, %A_ScriptDir%\tmp\lure7.txt
                FileAppend, %Lure7%, %A_ScriptDir%\tmp\lure7.txt
                FileDelete, %A_ScriptDir%\tmp\pid7.txt
                FileAppend, %pid7%, %A_ScriptDir%\tmp\pid7.txt
                FileDelete,  %A_ScriptDir%\tmp\handle7.txt
                FileAppend, %7Handle%, %A_ScriptDir%\tmp\handle7.txt
                Run, %A_ScriptDir%\Thread7.exe
            }
            else If (AccNumF = 8)
            {
                8Handle = %this_id%
                WinGet, pid8, PID, ahk_id %8Handle%
                pid8 := pid8
                Lure8 := GetLureAmmount(8Handle, pid8)
                FileDelete, %A_ScriptDir%\tmp\lure8.txt
                FileAppend, %Lure8%, %A_ScriptDir%\tmp\lure8.txt
                FileDelete, %A_ScriptDir%\tmp\pid8.txt
                FileAppend, %pid8%, %A_ScriptDir%\tmp\pid8.txt
                FileDelete,  %A_ScriptDir%\tmp\handle8.txt
                FileAppend, %8Handle%, %A_ScriptDir%\tmp\handle8.txt
                Run, %A_ScriptDir%\Thread8.exe
            }
    }
    
    
    GetLureAmmount(HandleL, pidL)
    {
        base := getProcessBaseAddress(HandleL)
        pointerBase := base + 0x008E8E18
        y1 := ReadMemory(pointerBase, pidL)
        y2 := ReadMemory(y1 + 0x9c, pidL)
        y3 := ReadMemory(y2 + 0x78, pidL)
        y4 := ReadMemory(y3 + 0x0, pidL)
        y5 := y4 + 0x58
        Return Lure := ReadMemory(y5, pidL)    
    }
    
    
    getProcessBaseAddress(HandleUse)
    {
        return DllCall( A_PtrSize = 4
                                ? "GetWindowLong"
                                : "GetWindowLongPtr"
                            , "Ptr", HandleUse
                            , "Int", -6
                            , "Int64") ; Use Int64 to prevent negative overflow when AHK is 32 bit and target process is 64bit
         ; If DLL call fails, returned value will = 0
    }   
    
    
    ReadMemory(MADDRESS, PIDUse)
    {
        VarSetCapacity(MVALUE,4,0)
        ProcessHandle := DllCall("OpenProcess", "Int", 24, "Char", 0, "UInt", PIDUse, "UInt")
        ;DllCall("ReadProcessMemory","UInt",ProcessHandle,"UInt",MADDRESS,"Str",MVALUE,"UInt",4,"UInt *",0)
        DllCall("ReadProcessMemory", "UInt", ProcessHandle, "Ptr", MADDRESS, "Ptr", &MVALUE, "Uint",4)
        Loop 4
            result += *(&MVALUE + A_Index-1) << 8*(A_Index-1)
        return, result
    }


    4. How many accounts do you want? 8 is the limit for this. Copy the following code(s) for each account. Inside the folder you made. Name then the following for each account! Thread1.ahk Thread2.ahk , etc NOTE: If you're using 2 accounts, use only 1, 2 thread code. (Can put all 8 in, doesn't matter)
     

    Code:
    #NoEnv
    SendMode Input
    SetWorkingDir %A_ScriptDir%
    CoordMode, ToolTip, Screen
    SetTitleMatchMode, 3
    SetKeyDelay, 0, 2
    
    
    FileRead, Lure, %A_ScriptDir%\tmp\lure1.txt
    FileRead, pid, %A_ScriptDir%\tmp\pid1.txt
    FileRead, Handle, %A_ScriptDir%\tmp\handle1.txt
    FileDelete, %A_ScriptDir%\tmp\lure1.txt
    FileDelete,  %A_ScriptDir%\tmp\handle1.txt
    FileDelete, %A_ScriptDir%\tmp\pid1.txt
    FileRead, Break, %A_ScriptDir%\tmp\break.txt
    
    
    LureCount := 0
    Loop %Lure%
    {
        FileRead, Break, %A_ScriptDir%\tmp\break.txt
        If (Break = 1)
        {
            break
        }
        else
        {
                
        }
        LureCount := LureCount +1
        ControlSend, , {f down}, ahk_pid %pid%
        Sleep, 86
        ControlSend, , {f up}, ahk_pid %pid%
        Catch := 0
        Loop  
        {
            If (Catch = 1)
            {    
                break
            }
                else
            {
                Base := getProcessBaseAddress() 
                CaughtWater := ReadMemory((ReadMemory(base + 0x008E5360) + 0xBD150))
                CaughtLava := ReadMemory(((ReadMemory(base + 0x008E5360) + 0xBD150) + 0x4A4))
                If (CaughtWater = 1 or CaughtLava = 1)
                {
                    ControlSend, , {f down}, ahk_pid %pid%
                    Sleep, 86
                    ControlSend, , {f up}, ahk_pid %pid%
                    Random, Wait, 2000, 3500
                    Sleep, %Wait%
                    Catch := 1
                }
                else 
                {
                    Sleep, 500
                }
            }
        }
    }
    ExitApp
    
    
    getProcessBaseAddress()
    {
        Global Handle
        return DllCall( A_PtrSize = 4
                                ? "GetWindowLong"
                                : "GetWindowLongPtr"
                            , "Ptr", Handle
                            , "Int", -6
                            , "Int64") ; Use Int64 to prevent negative overflow when AHK is 32 bit and target process is 64bit
         ; If DLL call fails, returned value will = 0
    }   
    
    
    ReadMemory(MADDRESS)
    {
        Global pid
        VarSetCapacity(MVALUE,4,0)
        ProcessHandle := DllCall("OpenProcess", "Int", 24, "Char", 0, "UInt", pid, "UInt")
        ;DllCall("ReadProcessMemory","UInt",ProcessHandle,"UInt",MADDRESS,"Str",MVALUE,"UInt",4,"UInt *",0)
        DllCall("ReadProcessMemory", "UInt", ProcessHandle, "Ptr", MADDRESS, "Ptr", &MVALUE, "Uint",4)
        Loop 4
            result += *(&MVALUE + A_Index-1) << 8*(A_Index-1)
        return, result
    }


     

    Code:
    #NoEnv
    SendMode Input
    SetWorkingDir %A_ScriptDir%
    CoordMode, ToolTip, Screen
    SetTitleMatchMode, 3
    SetKeyDelay, 0, 2
    
    
    FileRead, Lure, %A_ScriptDir%\tmp\lure2.txt
    FileRead, pid, %A_ScriptDir%\tmp\pid2.txt
    FileRead, Handle, %A_ScriptDir%\tmp\handle2.txt
    FileDelete, %A_ScriptDir%\tmp\lure2.txt
    FileDelete,  %A_ScriptDir%\tmp\handle2.txt
    FileDelete, %A_ScriptDir%\tmp\pid2.txt
    FileRead, Break, %A_ScriptDir%\tmp\break.txt
    
    
    LureCount := 0
    Loop %Lure%
    {
        FileRead, Break, %A_ScriptDir%\tmp\break.txt
        If (Break = 1)
        {
            break
        }
        else
        {
                
        }
        LureCount := LureCount +1
        ControlSend, , {f down}, ahk_pid %pid%
        Sleep, 86
        ControlSend, , {f up}, ahk_pid %pid%
        Catch := 0
        Loop  
        {
            If (Catch = 1)
            {    
                break
            }
                else
            {
                Base := getProcessBaseAddress() 
                CaughtWater := ReadMemory((ReadMemory(base + 0x008E5360) + 0xBD150))
                CaughtLava := ReadMemory(((ReadMemory(base + 0x008E5360) + 0xBD150) + 0x4A4))
                If (CaughtWater = 1 or CaughtLava = 1)
                {
                    ControlSend, , {f down}, ahk_pid %pid%
                    Sleep, 86
                    ControlSend, , {f up}, ahk_pid %pid%
                    Random, Wait, 2000, 3500
                    Sleep, %Wait%
                    Catch := 1
                }
                else 
                {
                    Sleep, 500
                }
            }
        }
    }
    ExitApp
    
    
    getProcessBaseAddress()
    {
        Global Handle
        return DllCall( A_PtrSize = 4
                                ? "GetWindowLong"
                                : "GetWindowLongPtr"
                            , "Ptr", Handle
                            , "Int", -6
                            , "Int64") ; Use Int64 to prevent negative overflow when AHK is 32 bit and target process is 64bit
         ; If DLL call fails, returned value will = 0
    }   
    
    
    ReadMemory(MADDRESS)
    {
        Global pid
        VarSetCapacity(MVALUE,4,0)
        ProcessHandle := DllCall("OpenProcess", "Int", 24, "Char", 0, "UInt", pid, "UInt")
        ;DllCall("ReadProcessMemory","UInt",ProcessHandle,"UInt",MADDRESS,"Str",MVALUE,"UInt",4,"UInt *",0)
        DllCall("ReadProcessMemory", "UInt", ProcessHandle, "Ptr", MADDRESS, "Ptr", &MVALUE, "Uint",4)
        Loop 4
            result += *(&MVALUE + A_Index-1) << 8*(A_Index-1)
        return, result
    }


     

    Code:
    #NoEnv
    SendMode Input
    SetWorkingDir %A_ScriptDir%
    CoordMode, ToolTip, Screen
    SetTitleMatchMode, 3
    SetKeyDelay, 0, 2
    
    
    FileRead, Lure, %A_ScriptDir%\tmp\lure3.txt
    FileRead, pid, %A_ScriptDir%\tmp\pid3.txt
    FileRead, Handle, %A_ScriptDir%\tmp\handle3.txt
    FileDelete, %A_ScriptDir%\tmp\lure3.txt
    FileDelete,  %A_ScriptDir%\tmp\handle3.txt
    FileDelete, %A_ScriptDir%\tmp\pid3.txt
    FileRead, Break, %A_ScriptDir%\tmp\break.txt
    
    
    LureCount := 0
    Loop %Lure%
    {
        FileRead, Break, %A_ScriptDir%\tmp\break.txt
        If (Break = 1)
        {
            break
        }
        else
        {
                
        }
        LureCount := LureCount +1
        ControlSend, , {f down}, ahk_pid %pid%
        Sleep, 86
        ControlSend, , {f up}, ahk_pid %pid%
        Catch := 0
        Loop  
        {
            If (Catch = 1)
            {    
                break
            }
                else
            {
                Base := getProcessBaseAddress() 
                CaughtWater := ReadMemory((ReadMemory(base + 0x008E5360) + 0xBD150))
                CaughtLava := ReadMemory(((ReadMemory(base + 0x008E5360) + 0xBD150) + 0x4A4))
                If (CaughtWater = 1 or CaughtLava = 1)
                {
                    ControlSend, , {f down}, ahk_pid %pid%
                    Sleep, 86
                    ControlSend, , {f up}, ahk_pid %pid%
                    Random, Wait, 2000, 3500
                    Sleep, %Wait%
                    Catch := 1
                }
                else 
                {
                    Sleep, 500
                }
            }
        }
    }
    ExitApp
    
    
    getProcessBaseAddress()
    {
        Global Handle
        return DllCall( A_PtrSize = 4
                                ? "GetWindowLong"
                                : "GetWindowLongPtr"
                            , "Ptr", Handle
                            , "Int", -6
                            , "Int64") ; Use Int64 to prevent negative overflow when AHK is 32 bit and target process is 64bit
         ; If DLL call fails, returned value will = 0
    }   
    
    
    ReadMemory(MADDRESS)
    {
        Global pid
        VarSetCapacity(MVALUE,4,0)
        ProcessHandle := DllCall("OpenProcess", "Int", 24, "Char", 0, "UInt", pid, "UInt")
        ;DllCall("ReadProcessMemory","UInt",ProcessHandle,"UInt",MADDRESS,"Str",MVALUE,"UInt",4,"UInt *",0)
        DllCall("ReadProcessMemory", "UInt", ProcessHandle, "Ptr", MADDRESS, "Ptr", &MVALUE, "Uint",4)
        Loop 4
            result += *(&MVALUE + A_Index-1) << 8*(A_Index-1)
        return, result
    }


     

    Code:
    #NoEnv
    SendMode Input
    SetWorkingDir %A_ScriptDir%
    CoordMode, ToolTip, Screen
    SetTitleMatchMode, 3
    SetKeyDelay, 0, 2
    
    
    FileRead, Lure, %A_ScriptDir%\tmp\lure4.txt
    FileRead, pid, %A_ScriptDir%\tmp\pid4.txt
    FileRead, Handle, %A_ScriptDir%\tmp\handle4.txt
    FileDelete, %A_ScriptDir%\tmp\lure4.txt
    FileDelete,  %A_ScriptDir%\tmp\handle4.txt
    FileDelete, %A_ScriptDir%\tmp\pid4.txt
    FileRead, Break, %A_ScriptDir%\tmp\break.txt
    
    
    LureCount := 0
    Loop %Lure%
    {
        FileRead, Break, %A_ScriptDir%\tmp\break.txt
        If (Break = 1)
        {
            break
        }
        else
        {
                
        }
        LureCount := LureCount +1
        ControlSend, , {f down}, ahk_pid %pid%
        Sleep, 86
        ControlSend, , {f up}, ahk_pid %pid%
        Catch := 0
        Loop  
        {
            If (Catch = 1)
            {    
                break
            }
                else
            {
                Base := getProcessBaseAddress() 
                CaughtWater := ReadMemory((ReadMemory(base + 0x008E5360) + 0xBD150))
                CaughtLava := ReadMemory(((ReadMemory(base + 0x008E5360) + 0xBD150) + 0x4A4))
                If (CaughtWater = 1 or CaughtLava = 1)
                {
                    ControlSend, , {f down}, ahk_pid %pid%
                    Sleep, 86
                    ControlSend, , {f up}, ahk_pid %pid%
                    Random, Wait, 2000, 3500
                    Sleep, %Wait%
                    Catch := 1
                }
                else 
                {
                    Sleep, 500
                }
            }
        }
    }
    ExitApp
    
    
    getProcessBaseAddress()
    {
        Global Handle
        return DllCall( A_PtrSize = 4
                                ? "GetWindowLong"
                                : "GetWindowLongPtr"
                            , "Ptr", Handle
                            , "Int", -6
                            , "Int64") ; Use Int64 to prevent negative overflow when AHK is 32 bit and target process is 64bit
         ; If DLL call fails, returned value will = 0
    }   
    
    
    ReadMemory(MADDRESS)
    {
        Global pid
        VarSetCapacity(MVALUE,4,0)
        ProcessHandle := DllCall("OpenProcess", "Int", 24, "Char", 0, "UInt", pid, "UInt")
        ;DllCall("ReadProcessMemory","UInt",ProcessHandle,"UInt",MADDRESS,"Str",MVALUE,"UInt",4,"UInt *",0)
        DllCall("ReadProcessMemory", "UInt", ProcessHandle, "Ptr", MADDRESS, "Ptr", &MVALUE, "Uint",4)
        Loop 4
            result += *(&MVALUE + A_Index-1) << 8*(A_Index-1)
        return, result
    }


     

    Code:
    #NoEnv
    SendMode Input
    SetWorkingDir %A_ScriptDir%
    CoordMode, ToolTip, Screen
    SetTitleMatchMode, 3
    SetKeyDelay, 0, 2
    
    
    FileRead, Lure, %A_ScriptDir%\tmp\lure5.txt
    FileRead, pid, %A_ScriptDir%\tmp\pid5.txt
    FileRead, Handle, %A_ScriptDir%\tmp\handle5.txt
    FileDelete, %A_ScriptDir%\tmp\lure5.txt
    FileDelete,  %A_ScriptDir%\tmp\handle5.txt
    FileDelete, %A_ScriptDir%\tmp\pid5.txt
    FileRead, Break, %A_ScriptDir%\tmp\break.txt
    
    
    LureCount := 0
    Loop %Lure%
    {
        FileRead, Break, %A_ScriptDir%\tmp\break.txt
        If (Break = 1)
        {
            break
        }
        else
        {
                
        }
        LureCount := LureCount +1
        ControlSend, , {f down}, ahk_pid %pid%
        Sleep, 86
        ControlSend, , {f up}, ahk_pid %pid%
        Catch := 0
        Loop  
        {
            If (Catch = 1)
            {    
                break
            }
                else
            {
                Base := getProcessBaseAddress() 
                CaughtWater := ReadMemory((ReadMemory(base + 0x008E5360) + 0xBD150))
                CaughtLava := ReadMemory(((ReadMemory(base + 0x008E5360) + 0xBD150) + 0x4A4))
                If (CaughtWater = 1 or CaughtLava = 1)
                {
                    ControlSend, , {f down}, ahk_pid %pid%
                    Sleep, 86
                    ControlSend, , {f up}, ahk_pid %pid%
                    Random, Wait, 2000, 3500
                    Sleep, %Wait%
                    Catch := 1
                }
                else 
                {
                    Sleep, 500
                }
            }
        }
    }
    ExitApp
    
    
    getProcessBaseAddress()
    {
        Global Handle
        return DllCall( A_PtrSize = 4
                                ? "GetWindowLong"
                                : "GetWindowLongPtr"
                            , "Ptr", Handle
                            , "Int", -6
                            , "Int64") ; Use Int64 to prevent negative overflow when AHK is 32 bit and target process is 64bit
         ; If DLL call fails, returned value will = 0
    }   
    
    
    ReadMemory(MADDRESS)
    {
        Global pid
        VarSetCapacity(MVALUE,4,0)
        ProcessHandle := DllCall("OpenProcess", "Int", 24, "Char", 0, "UInt", pid, "UInt")
        ;DllCall("ReadProcessMemory","UInt",ProcessHandle,"UInt",MADDRESS,"Str",MVALUE,"UInt",4,"UInt *",0)
        DllCall("ReadProcessMemory", "UInt", ProcessHandle, "Ptr", MADDRESS, "Ptr", &MVALUE, "Uint",4)
        Loop 4
            result += *(&MVALUE + A_Index-1) << 8*(A_Index-1)
        return, result
    }


     

    Code:
    #NoEnv
    SendMode Input
    SetWorkingDir %A_ScriptDir%
    CoordMode, ToolTip, Screen
    SetTitleMatchMode, 3
    SetKeyDelay, 0, 2
    
    
    FileRead, Lure, %A_ScriptDir%\tmp\lure6.txt
    FileRead, pid, %A_ScriptDir%\tmp\pid6.txt
    FileRead, Handle, %A_ScriptDir%\tmp\handle6.txt
    FileDelete, %A_ScriptDir%\tmp\lure6.txt
    FileDelete,  %A_ScriptDir%\tmp\handle6.txt
    FileDelete, %A_ScriptDir%\tmp\pid6.txt
    FileRead, Break, %A_ScriptDir%\tmp\break.txt
    
    
    LureCount := 0
    Loop %Lure%
    {
        FileRead, Break, %A_ScriptDir%\tmp\break.txt
        If (Break = 1)
        {
            break
        }
        else
        {
                
        }
        LureCount := LureCount +1
        ControlSend, , {f down}, ahk_pid %pid%
        Sleep, 86
        ControlSend, , {f up}, ahk_pid %pid%
        Catch := 0
        Loop  
        {
            If (Catch = 1)
            {    
                break
            }
                else
            {
                Base := getProcessBaseAddress() 
                CaughtWater := ReadMemory((ReadMemory(base + 0x008E5360) + 0xBD150))
                CaughtLava := ReadMemory(((ReadMemory(base + 0x008E5360) + 0xBD150) + 0x4A4))
                If (CaughtWater = 1 or CaughtLava = 1)
                {
                    ControlSend, , {f down}, ahk_pid %pid%
                    Sleep, 86
                    ControlSend, , {f up}, ahk_pid %pid%
                    Random, Wait, 2000, 3500
                    Sleep, %Wait%
                    Catch := 1
                }
                else 
                {
                    Sleep, 500
                }
            }
        }
    }
    ExitApp
    
    
    getProcessBaseAddress()
    {
        Global Handle
        return DllCall( A_PtrSize = 4
                                ? "GetWindowLong"
                                : "GetWindowLongPtr"
                            , "Ptr", Handle
                            , "Int", -6
                            , "Int64") ; Use Int64 to prevent negative overflow when AHK is 32 bit and target process is 64bit
         ; If DLL call fails, returned value will = 0
    }   
    
    
    ReadMemory(MADDRESS)
    {
        Global pid
        VarSetCapacity(MVALUE,4,0)
        ProcessHandle := DllCall("OpenProcess", "Int", 24, "Char", 0, "UInt", pid, "UInt")
        ;DllCall("ReadProcessMemory","UInt",ProcessHandle,"UInt",MADDRESS,"Str",MVALUE,"UInt",4,"UInt *",0)
        DllCall("ReadProcessMemory", "UInt", ProcessHandle, "Ptr", MADDRESS, "Ptr", &MVALUE, "Uint",4)
        Loop 4
            result += *(&MVALUE + A_Index-1) << 8*(A_Index-1)
        return, result
    }


     

    Code:
    #NoEnv
    SendMode Input
    SetWorkingDir %A_ScriptDir%
    CoordMode, ToolTip, Screen
    SetTitleMatchMode, 3
    SetKeyDelay, 0, 2
    
    
    FileRead, Lure, %A_ScriptDir%\tmp\lure7.txt
    FileRead, pid, %A_ScriptDir%\tmp\pid7.txt
    FileRead, Handle, %A_ScriptDir%\tmp\handle7.txt
    FileDelete, %A_ScriptDir%\tmp\lure7.txt
    FileDelete,  %A_ScriptDir%\tmp\handle7.txt
    FileDelete, %A_ScriptDir%\tmp\pid7.txt
    FileRead, Break, %A_ScriptDir%\tmp\break.txt
    
    
    LureCount := 0
    Loop %Lure%
    {
        FileRead, Break, %A_ScriptDir%\tmp\break.txt
        If (Break = 1)
        {
            break
        }
        else
        {
                
        }
        LureCount := LureCount +1
        ControlSend, , {f down}, ahk_pid %pid%
        Sleep, 86
        ControlSend, , {f up}, ahk_pid %pid%
        Catch := 0
        Loop  
        {
            If (Catch = 1)
            {    
                break
            }
                else
            {
                Base := getProcessBaseAddress() 
                CaughtWater := ReadMemory((ReadMemory(base + 0x008E5360) + 0xBD150))
                CaughtLava := ReadMemory(((ReadMemory(base + 0x008E5360) + 0xBD150) + 0x4A4))
                If (CaughtWater = 1 or CaughtLava = 1)
                {
                    ControlSend, , {f down}, ahk_pid %pid%
                    Sleep, 86
                    ControlSend, , {f up}, ahk_pid %pid%
                    Random, Wait, 2000, 3500
                    Sleep, %Wait%
                    Catch := 1
                }
                else 
                {
                    Sleep, 500
                }
            }
        }
    }
    ExitApp
    
    
    getProcessBaseAddress()
    {
        Global Handle
        return DllCall( A_PtrSize = 4
                                ? "GetWindowLong"
                                : "GetWindowLongPtr"
                            , "Ptr", Handle
                            , "Int", -6
                            , "Int64") ; Use Int64 to prevent negative overflow when AHK is 32 bit and target process is 64bit
         ; If DLL call fails, returned value will = 0
    }   
    
    
    ReadMemory(MADDRESS)
    {
        Global pid
        VarSetCapacity(MVALUE,4,0)
        ProcessHandle := DllCall("OpenProcess", "Int", 24, "Char", 0, "UInt", pid, "UInt")
        ;DllCall("ReadProcessMemory","UInt",ProcessHandle,"UInt",MADDRESS,"Str",MVALUE,"UInt",4,"UInt *",0)
        DllCall("ReadProcessMemory", "UInt", ProcessHandle, "Ptr", MADDRESS, "Ptr", &MVALUE, "Uint",4)
        Loop 4
            result += *(&MVALUE + A_Index-1) << 8*(A_Index-1)
        return, result
    }


     

    Code:
    #NoEnv
    SendMode Input
    SetWorkingDir %A_ScriptDir%
    CoordMode, ToolTip, Screen
    SetTitleMatchMode, 3
    SetKeyDelay, 0, 2
    
    
    FileRead, Lure, %A_ScriptDir%\tmp\lure8.txt
    FileRead, pid, %A_ScriptDir%\tmp\pid8.txt
    FileRead, Handle, %A_ScriptDir%\tmp\handle8.txt
    FileDelete, %A_ScriptDir%\tmp\lure8.txt
    FileDelete,  %A_ScriptDir%\tmp\handle8.txt
    FileDelete, %A_ScriptDir%\tmp\pid8.txt
    FileRead, Break, %A_ScriptDir%\tmp\break.txt
    
    
    LureCount := 0
    Loop %Lure%
    {
        FileRead, Break, %A_ScriptDir%\tmp\break.txt
        If (Break = 1)
        {
            break
        }
        else
        {
                
        }
        LureCount := LureCount +1
        ControlSend, , {f down}, ahk_pid %pid%
        Sleep, 86
        ControlSend, , {f up}, ahk_pid %pid%
        Catch := 0
        Loop  
        {
            If (Catch = 1)
            {    
                break
            }
                else
            {
                Base := getProcessBaseAddress() 
                CaughtWater := ReadMemory((ReadMemory(base + 0x008E5360) + 0xBD150))
                CaughtLava := ReadMemory(((ReadMemory(base + 0x008E5360) + 0xBD150) + 0x4A4))
                If (CaughtWater = 1 or CaughtLava = 1)
                {
                    ControlSend, , {f down}, ahk_pid %pid%
                    Sleep, 86
                    ControlSend, , {f up}, ahk_pid %pid%
                    Random, Wait, 2000, 3500
                    Sleep, %Wait%
                    Catch := 1
                }
                else 
                {
                    Sleep, 500
                }
            }
        }
    }
    ExitApp
    
    
    getProcessBaseAddress()
    {
        Global Handle
        return DllCall( A_PtrSize = 4
                                ? "GetWindowLong"
                                : "GetWindowLongPtr"
                            , "Ptr", Handle
                            , "Int", -6
                            , "Int64") ; Use Int64 to prevent negative overflow when AHK is 32 bit and target process is 64bit
         ; If DLL call fails, returned value will = 0
    }   
    
    
    ReadMemory(MADDRESS)
    {
        Global pid
        VarSetCapacity(MVALUE,4,0)
        ProcessHandle := DllCall("OpenProcess", "Int", 24, "Char", 0, "UInt", pid, "UInt")
        ;DllCall("ReadProcessMemory","UInt",ProcessHandle,"UInt",MADDRESS,"Str",MVALUE,"UInt",4,"UInt *",0)
        DllCall("ReadProcessMemory", "UInt", ProcessHandle, "Ptr", MADDRESS, "Ptr", &MVALUE, "Uint",4)
        Loop 4
            result += *(&MVALUE + A_Index-1) << 8*(A_Index-1)
        return, result
    }


    5. Create folder "tmp" inside the Trove folder you made.
    6. You'll need to right click, hit "Compile" on each Thread#.ahk you have. They need to be Thread#.exe (Thread1.exe)
    Folder Should like the the following;

    7. Launch the Trove Fishing Bot v2.0.0.ahk (or .exe if you complied it too).
    8. Log-in all your accounts and align them in front of the water/lava! (Characters can be in different worlds/hubs. 1 can be at lava, others can be at water!)
    9. Put all Lures into slot 1 of bags for all accounts before running!
    10. Hit "NumPad9" the script will launch the threads and start fishing all at once. No need to highlight/activate any windows.
    11. To Stop The Bot(s): Alt+NumPad9 (will send a break file, threads will read the file and stop after they catch the next fish)


    NOTE:
    Start: NumPad9
    Stop: Alt+NumPad9
    Exit Main Script: NumPad7 (Send Stop First!)

    Want to bot while playing on your main?
    Start the bots first, once your bots are running, run another Trove and log in with your main. Bots will run while you have control of your main.
    If you Stop the bot, hit Numpad9 again you need to close your main first. Welcome to add a SetWinTitle command for your main so it doesn't bot.
    Last edited by HaHaItsJake; 04-05-2015 at 02:36 PM. Reason: 8/8 Working Now
    Tell me and I forget. Teach me and I remember. Involve me and I learn.
    Benjamin Franklin

  2. The Following 8 Users Say Thank You to HaHaItsJake For This Useful Post:

    Agrius (04-07-2015),blapanda (04-05-2015),CyberstormXo (04-05-2015),MacacadaGamerBr (08-26-2015),ragecrysux (04-04-2015),Ricoo77 (04-05-2015),Trove (04-05-2015),yoyoemmy (04-05-2015)

  3. #2
    ragecrysux's Avatar
    Join Date
    Dec 2012
    Gender
    female
    Posts
    202
    Reputation
    10
    Thanks
    6
    Have 8 accounts, have 8 threads, only 7 work, and they only cast the pole and reel once, and stop working.

  4. #3
    HaHaItsJake's Avatar
    Join Date
    Jan 2013
    Gender
    male
    Posts
    164
    Reputation
    10
    Thanks
    483
    Quote Originally Posted by ragecrysux View Post
    Have 8 accounts, have 8 threads, only 7 work, and they only cast the pole and reel once, and stop working.


    o.O Wtff. Got 6 up and all are botting just fine. Do you have your lures in slot 1?
    For only 7 working, do you have skype so I can debug it real fast with 8 accounts?


    EDIT: Code edit, edit main script Line: 139 change "6" to "8" so it's 8Handle = %this_id%
    Last edited by HaHaItsJake; 04-04-2015 at 10:44 PM. Reason: edit main script Line: 139 change "6" to "8" so it's 8Handle = %this_id%
    Tell me and I forget. Teach me and I remember. Involve me and I learn.
    Benjamin Franklin

  5. #4
    ragecrysux's Avatar
    Join Date
    Dec 2012
    Gender
    female
    Posts
    202
    Reputation
    10
    Thanks
    6
    Quote Originally Posted by HaHaItsJake View Post
    o.O Wtff. Got 6 up and all are botting just fine. Do you have your lures in slot 1?
    For only 7 working, do you have skype so I can debug it real fast with 8 accounts?
    Sent you pm, and i think max limit is 7 only? because threads 1-7 are running, thread 8 is not

  6. #5
    jacce's Avatar
    Join Date
    Aug 2008
    Gender
    male
    Location
    Location Unknown, but Canada's nice too
    Posts
    14
    Reputation
    10
    Thanks
    0
    My Mood
    Amused
    If I just want to use the script for 1 account like v1 I just follow the same steps as v1 on the other thread with this script?
    [IMG]https://i915.photobucke*****m/albums/ac351/dSketch/Forum%20Signatures/Ninjaa.png[/IMG]




    They Never Learn How Careless [IMG]https://i217.photobucke*****m/albums/cc11/Nothingtodo4now/NinjaAnimation.gif[/IMG] They Never Learn How Careless

  7. #6
    HaHaItsJake's Avatar
    Join Date
    Jan 2013
    Gender
    male
    Posts
    164
    Reputation
    10
    Thanks
    483
    Quote Originally Posted by jacce View Post
    If I just want to use the script for 1 account like v1 I just follow the same steps as v1 on the other thread with this script?
    No, the v1.0.2 is the old one. It doesn't have any Lava fishing. That hasn't changed at all.

    For this one, with a single account - Just follow the steps and just create the Thread1.exe instead of all 8.

    I'll be waiting to see what the patch is going to do and decide if I should continue this project or not.
    Tell me and I forget. Teach me and I remember. Involve me and I learn.
    Benjamin Franklin

  8. #7
    tsubasaak's Avatar
    Join Date
    Mar 2015
    Gender
    female
    Posts
    7
    Reputation
    10
    Thanks
    0
    Couldn't get this to work, but took the lava code from this and put it in the old code.

    EDIT: O_o

    Ohhhh Default settings!

    Got it working. Forgot to change key binds.

    Also can only get it to work on 3 accounts. Forth account just poops out.
    Last edited by tsubasaak; 04-05-2015 at 10:20 AM.

  9. #8
    blapanda's Avatar
    Join Date
    Apr 2013
    Gender
    male
    Posts
    47
    Reputation
    10
    Thanks
    0
    My Mood
    Innocent
    Working fine with 3 bots (atm, going to test more accounts soon).

    Multi fishing at once - works.
    Lava fishing *cry* 9 scales for 3 bots *cry* xD - works.
    Main account as "main" if not running while bot activation - works.


    Another rep+!
    Nice work.
    Last edited by blapanda; 04-05-2015 at 08:35 AM.

  10. #9
    pasi123's Avatar
    Join Date
    Apr 2015
    Gender
    male
    Posts
    18
    Reputation
    10
    Thanks
    1
    HaHaItsJake me and my friend from europe have those "delay" problems where sometimes the fishes dont get caught at the right moment and then it doesnt want do throw out the Fishing Rod again.. Can you make it that as long as it isnt out it always try to throw it out again so no bugs can happen?

  11. #10
    jacce's Avatar
    Join Date
    Aug 2008
    Gender
    male
    Location
    Location Unknown, but Canada's nice too
    Posts
    14
    Reputation
    10
    Thanks
    0
    My Mood
    Amused
    I can't get this to work, how can i just take the lava code and use the first script?
    [IMG]https://i915.photobucke*****m/albums/ac351/dSketch/Forum%20Signatures/Ninjaa.png[/IMG]




    They Never Learn How Careless [IMG]https://i217.photobucke*****m/albums/cc11/Nothingtodo4now/NinjaAnimation.gif[/IMG] They Never Learn How Careless

  12. #11
    Trove's Avatar
    Join Date
    Jan 2015
    Gender
    male
    Posts
    108
    Reputation
    10
    Thanks
    1,376
    My Mood
    Angelic

    Fisg Bot 32 and 64 Bits.

    i have created 32 and 64 Bits Fish Bots Executables.

    Download and Execute "Fish Bot 32 Bits" or "Fish Bot 64 Bits"

    (max account running is possible in this folder is 4 )

    How to use in txt...

    https://www.virustotal.com/en/file/5...is/1428258980/
    https://virusscan.jotti.org/en/scanre...41bc7e28751a7c
    <b>Downloadable Files</b> Downloadable Files
    Last edited by Cataclypse; 04-05-2015 at 12:42 PM.

  13. The Following 73 Users Say Thank You to Trove For This Useful Post:

    12qwaszx34fd (08-11-2015),Adeees (04-07-2015),Albertoser (08-18-2015),az18 (04-06-2015),BackSl1de (06-07-2015),bakuspl (08-18-2015),benasxx (09-06-2015),BoberScratch (07-15-2015),Cafercan09 (08-01-2015),Candycatty (08-01-2015),Csumika (10-17-2015),cubanoloco (04-05-2015),dankim933 (12-21-2017),Darquessetr (07-15-2015),dexis18 (09-02-2015),dirtiescrows (04-06-2015),edycyklo (04-07-2015),Fakeson1234 (07-25-2017),Fin07 (07-07-2017),ganon98 (07-26-2015),Geeka (06-30-2015),goofitale (08-29-2015),Gregush (07-14-2015),Grosslukass (08-31-2015),HaHaItsJake (04-07-2015),heisesd (08-01-2015),higgorjosse (04-07-2016),hobstaw (08-31-2015),Jacek54321 (07-18-2015),jhhsb (11-27-2018),juntti244 (12-18-2015),JustSmyle (08-12-2015),kameleon985 (07-31-2015),kdp1999 (08-05-2015),KUYHEAT (04-06-2015),l793146825lu (10-07-2015),Lamre D. Ni (04-05-2015),LeAnh4 (04-06-2015),Lenti89 (09-07-2015),leviath369 (04-05-2015),liam44D (12-06-2015),mahavir111 (04-05-2015),manaxwolf (10-31-2016),Manchete (04-07-2015),matbor193 (06-26-2015),Melih45 (07-22-2015),muboyy (07-31-2015),mystic21 (08-27-2015),Newbrin (04-12-2015),noobcoco (07-19-2016),oOJaydonOo (04-06-2015),pasi123 (04-05-2015),Peteye99 (04-06-2015),pizdukas (03-01-2017),playerplay123 (04-22-2015),ppich101 (08-12-2015),roadkiller120 (08-12-2015),saika0056 (08-21-2016),samrockandmrbean (05-03-2015),Saralot (04-06-2015),shax710 (08-25-2015),SkandayLP (01-05-2016),SkaZZ99 (08-07-2015),smamblez (08-30-2015),SokratesPL (07-16-2015),sparador (08-15-2015),Swagger96 (08-23-2015),trez25 (08-28-2015),tsubasaak (04-05-2015),VaLenTin91 (06-26-2015),venturashin (02-19-2020),watersilver (07-19-2015),zveas (08-14-2015)

  14. #12
    blapanda's Avatar
    Join Date
    Apr 2013
    Gender
    male
    Posts
    47
    Reputation
    10
    Thanks
    0
    My Mood
    Innocent
    Well, the script is working - if people are not interacting with the Keyboard at all.
    I notice, while using secondary keys like ALT, CTRL, SHIFT, etc. may be blocked due to the Catch/Throw process, and this will most likely cause one or multiple trove chars being stuck at pulling/throwing and gets bugged afterall.

    Otherwise, currently using 6 accounts, works flawless. 3 on lava, 3 on water.

  15. #13
    sam3333's Avatar
    Join Date
    Dec 2011
    Gender
    male
    Posts
    62
    Reputation
    10
    Thanks
    6
    My Mood
    Amused
    Quote Originally Posted by blapanda View Post
    Well, the script is working - if people are not interacting with the Keyboard at all.
    I notice, while using secondary keys like ALT, CTRL, SHIFT, etc. may be blocked due to the Catch/Throw process, and this will most likely cause one or multiple trove chars being stuck at pulling/throwing and gets bugged afterall.

    Otherwise, currently using 6 accounts, works flawless. 3 on lava, 3 on water.
    first account works i keep pressing open on 2nd thread but nothing happens please help
    moaiedking - 2 Minutes Ago View Conversation Report [/QUOTE]
    he is trustworthy he traded guns with me and did not hack my account i vouch for him

  16. #14
    HaHaItsJake's Avatar
    Join Date
    Jan 2013
    Gender
    male
    Posts
    164
    Reputation
    10
    Thanks
    483
    Quote Originally Posted by pasi123 View Post
    HaHaItsJake me and my friend from europe have those "delay" problems where sometimes the fishes dont get caught at the right moment and then it doesnt want do throw out the Fishing Rod again.. Can you make it that as long as it isnt out it always try to throw it out again so no bugs can happen?
    I will add in a if statement if the pole is "0" it will fish again and only if it's value is "0".
    On your EACH Threads1-8.ahk
    Line: 16 to 60 change to the following code:
     

    Code:
    LureCount := 0
    Loop %Lure%
    {
    	
    	base := getProcessBaseAddress()
    	pointerBase := base + 0x008E8E18
    	y1 := ReadMemory(pointerBase)
    	y2 := ReadMemory(y1 + 0x9c)
    	y3 := ReadMemory(y2 + 0x78)
    	y4 := ReadMemory(y3 + 0x0)
    	y5 := y4 + 0x58
    	Lure := ReadMemory(y5)	
    	
    	FileRead, Break, %A_ScriptDir%\tmp\break.txt
    	If (Break = 1)
    	{
    		break
    	}
    	else
    	{
    			
    	}
    	LureCount := LureCount +1
    	CaughtWater := ReadMemory((ReadMemory(base + 0x008E5360) + 0xBD150))
    	CaughtLava := ReadMemory(((ReadMemory(base + 0x008E5360) + 0xBD150) + 0x4A4))
    	If (CaughtWater = 0 or CaughtLava = 0)
    	{
    		ControlSend, , {f down}, ahk_pid %pid%
    		Sleep, 86
    		ControlSend, , {f up}, ahk_pid %pid%
    		Catch := 0
    		Loop  
    		{
    			If (Catch = 1)
    			{	
    				break
    			}
    				else
    			{
    				Base := getProcessBaseAddress() 
    				CaughtWater := ReadMemory((ReadMemory(base + 0x008E5360) + 0xBD150))
    				CaughtLava := ReadMemory(((ReadMemory(base + 0x008E5360) + 0xBD150) + 0x4A4))
    				If (CaughtWater = 1 or CaughtLava = 1)
    				{
    					ControlSend, , {f down}, ahk_pid %pid%
    					Sleep, 86
    					ControlSend, , {f up}, ahk_pid %pid%
    					Random, Wait, 2000, 3500
    					Sleep, %Wait%
    					Catch := 1
    				}
    				else 
    				{
    					Sleep, 500
    				}
    			}
    		}
    	}
    	Else 
    	{
    		Random, Wait, 1000, 2500
    		Sleep, %Wait%
    	}
    }
    ExitApp


    I haven't tested it, but it should check to see if the pole has a fish, if it does it will wait another 1-2.5 seconds. If it waits, it will check the lures again and fix the extra loop(s) that it does.

    Quote Originally Posted by jacce View Post
    I can't get this to work, how can i just take the lava code and use the first script?
    If you follow the steps correctly it will work. If you want to use the first version, You'll have to click the window and activate it before starting. Lava Code added;
     

    Code:
    #NoEnv
    SendMode Input
    CoordMode, ToolTip, Screen
    SetTitleMatchMode, 3
    SetKeyDelay, 0, 2
    
    Numpad9::
    	WinGet, pidn, PID, A
    	pid := pidn
    	WinGet, hwnds, ID, A
    	Handle := hwnds
    	Break := 0
    	InputBox, Lure, Lure's, How many Lure's do you have in inventory?
    	LureCount := 0
    	Loop %Lure%
    	{
    		LureCount := LureCount +1
    		ControlSend, , {f down}, ahk_pid %pid%
    		Sleep, 86
    		ControlSend, , {f up}, ahk_pid %pid%
    		Catch := 0
    		Loop  
    		{
    			If (Break = 1 or Catch = 1)
    			{	
    				break
    			}
    			else
    			{
    				Base := getProcessBaseAddress()
    				pointerBase := base + 0x008E5360
    				y1 := ReadMemory(pointerBase)
    				y2 := ReadMemory(y1 + 0x20)
    				y3 := ReadMemory(y2 + 0x4)
    				y4 := y3 + 0x320
    				CameraY := ReadMemory(y4)
    				If (CameraY = 1)
    				{
    					ToolTips = 1
    					SetTimer, ToolTip, 500
    					ControlSend, , {f down}, ahk_pid %pid%
    					Sleep, 86
    					ControlSend, , {f up}, ahk_pid %pid%
    					Random, Wait, 2000, 3500
    					Sleep, %Wait%
    					Catch := 1
    				}
    				else 
    				{
    					ToolTips = 0
    					SetTimer, ToolTip, 500
    					Sleep, 500
    				}
    			}
    		}
    	}
    	Break := 1
    	ToolTips = 2
    	SetTimer, ToolTip, 500
    return
    
    !Numpad9::
    	Break := 1
    	ToolTip
    return
    
    Numpad7::
    ExitApp
    
    
    ToolTip:
    	If (ToolTips = 0)
    		ToolTip, Waiting.. %LureCount%/%Lure% Lures used, 0, 0
    	Else If (ToolTips = 1)
    		ToolTip, Catching Fish! %LureCount%/%Lure% Lures used, 0, 0
    	Else If (ToolTips = 2)
    		ToolTip, !!All Lure's Have Been Used!!, 0, 0
    Return
    
    getProcessBaseAddress()
    {
    	Global Handle
    	return DllCall( A_PtrSize = 4
                                ? "GetWindowLong"
                                : "GetWindowLongPtr"
                            , "Ptr", Handle
                            , "Int", -6
                            , "Int64") ; Use Int64 to prevent negative overflow when AHK is 32 bit and target process is 64bit
         ; If DLL call fails, returned value will = 0
    }   
    
    ReadMemory(MADDRESS)
    {
    	Global pid
    	VarSetCapacity(MVALUE,4,0)
    	ProcessHandle := DllCall("OpenProcess", "Int", 24, "Char", 0, "UInt", pid, "UInt")
    	;DllCall("ReadProcessMemory","UInt",ProcessHandle,"UInt",MADDRESS,"Str",MVALUE,"UInt",4,"UInt *",0)
    	DllCall("ReadProcessMemory", "UInt", ProcessHandle, "Ptr", MADDRESS, "Ptr", &MVALUE, "Uint",4)
    	Loop 4
    		result += *(&MVALUE + A_Index-1) << 8*(A_Index-1)
    	return, result
    }


    Quote Originally Posted by blapanda View Post
    Well, the script is working - if people are not interacting with the Keyboard at all.
    I notice, while using secondary keys like ALT, CTRL, SHIFT, etc. may be blocked due to the Catch/Throw process, and this will most likely cause one or multiple trove chars being stuck at pulling/throwing and gets bugged afterall.

    Otherwise, currently using 6 accounts, works flawless. 3 on lava, 3 on water.
    Yes, forgot to mention that like how I did in the first version. Since the control send only works that way as I know of, it will stop any typing on certain windows. Holding any other keys while the bot(s) send the "f" key will make it not catch that fish, but will send it back out.

    Quote Originally Posted by sam3333 View Post
    first account works i keep pressing open on 2nd thread but nothing happens please help
    Keep pressing "open"?
    Should have a Thread#.ahk for each account. If you use 2, there should be the Thread1.ahk and Thread2.ahk, don't forget to compile them and copy the code from the Thread1-8.ahk from above.
    Last edited by HaHaItsJake; 04-05-2015 at 03:16 PM.
    Tell me and I forget. Teach me and I remember. Involve me and I learn.
    Benjamin Franklin

  17. #15
    pasi123's Avatar
    Join Date
    Apr 2015
    Gender
    male
    Posts
    18
    Reputation
    10
    Thanks
    1
    Do i need to wait till you update the code above or should i change it manually??? (Or have you already?)

Page 1 of 4 123 ... LastLast

Similar Threads

  1. [Patched] Trove Fishing Bot v2.2 (Update)
    By HaHaItsJake in forum Trove Hacks & Cheats
    Replies: 110
    Last Post: 04-18-2015, 02:04 PM
  2. [Patched] Trove Fishing Bot (AHK Background)
    By HaHaItsJake in forum Trove Hacks & Cheats
    Replies: 54
    Last Post: 04-07-2015, 02:27 PM
  3. [Help] Is It Possible To Get Fish Bots And Auto Bots?
    By mystery2k10 in forum Metin 2 Hacks
    Replies: 0
    Last Post: 04-20-2011, 06:12 AM
  4. [Request] Oz world Fishing bot
    By devase in forum Hack Requests
    Replies: 2
    Last Post: 03-18-2011, 08:07 PM
  5. Is there a fish bot?
    By DRT94 in forum World of Warcraft Hacks / Bots
    Replies: 2
    Last Post: 03-17-2010, 10:26 AM

Tags for this Thread