Wow Fishing Macro 100% Undetectable

It works great for me but it takes a lil to understand it's still not any hard at all but can take you a while before you will get use to it. Why it is 100% undetectable? Cose its just a macro basically and so far noone catched me.

First of all you will have to download AC tool 5.4.0.

Here is the link -->> AC Tool Home Page

This is the macro which let you to fishbot. You will have to copy, paste it to actool:

// This line is necessary to select the proper window

SetActiveWindow Asheron's Call

// WoW Fishing Bot v1.1

// Made by QuietKnight

// Changes

// v1.1

// + Added in the option to turn off AFK Killer

// + Added in changes log

//

// v1.0

// + Initial version

// Special instructions:

// - Put your fishing skill in slot '0'

// - Zoom into 1st person mode

// - Under Video Options, uncheck 'Hardware Cursor'

SetActiveWindow World of Warcraft

Constants

/////////////////////////

// CHANGABLE CONSTANTS //

/////////////////////////

// Run count

// How many times the script should try to fish

runCount = 1000000

// Speed

// This is the initial scan speed. The lower the number, the faster the scan goes,

// and the higher the number, the slower the scan goes. If you're having problems

// where the initial scan isnt finding the bobber and just scanning right over it,

// try increasing this number slowly.

scanSpeed = 50

// Scan box distances

// These are the distances away from the sides of the screen to scan for a lure

// These are measured as percentages of the screen in the appropriate direction

scanLeftDist = .3

scanRightDist = .3

scanTopDist = .4

scanBottomDist = .25

// Brightness range

// This is the number of RGB values over and under the 'bright spot' that is the

// lure to look for. Basically, if you're getting the message 'No fish to hook',

// try increasing both numbers a bit, and if the bobber bobs but you dont catch

// anything, try decreasing both numbers a bit. This can change from environment

// to environment. Also, generally speaking brightRangeUp shouldnt be very high.

brightRangeDown = 47

brightRangeUp = 7

// Brightness distance

// Doesnt matter what it does, but basically, leave it alone unless you're having

// problems actually catching the fish. If you're having problems and you want

// to tweak it, general rule is, the higher the resolution, the higher the number,

// the but number range should only be anywhere from 2 MIN to 6 MAX. If you start

// getting too out of wack with this, you'll never catch a fish

brightDist = 3

// AFK Away

// Set to 1 to use AFK Away (which presses Enter twice before every cast) or

// to 0 to disable AFK Away entirely. This comes in useful if you like to

// chat on WoW while fishing.

afkAway = 1

/////////////////////////////

// NON-CHANGABLE CONSTANTS //

/////////////////////////////

// Optimal scan step ratios

widthToWindowRatio = 0.056

heightToWindowRatio = 0.075

// Scanbox

scanTop = 0

scanBottom = 0

scanLeft = 0

scanRight = 0

scanStepX = 0

scanStepY = 0

scanSuccess = 0

// THE Box

boxMinX = 0

boxMaxX = 0

boxMinY = 0

boxMaxY = 0

boxCenterY = 0

boxCenterX = 0

boxScanStep = 4

boxAvgWidth = 0

boxAvgHeight = 0

// Misc vars

x = 0

y = 0

i = 0

j = 0

// Mouse vars

isMouseOrange = 0

mouseX = 0

mouseY = 0

// Lure location

lureInitLocX = 0

lureInitLocY = 0

// RGB Info

brightX = 0

brightY = 0

brightTotal = 0

brightR = 0

brightG = 0

brightB = 0

brightRMin = 0

brightRMax = 0

brightGMin = 0

brightGMax = 0

brightBMin = 0

brightBMax = 0

curTotal = 0

// Splash

splashed = 0

End

///////////////

// Main Proc //

///////////////

Delay 1000

Call CalculateScanBoxConstants

Loop $runCount

Keys 0

Delay 1000

Call FindLureInitial

Call FindBoxCenter

Compute x = $boxMaxX-10

MousePos $x, $boxCenterY

Delay $scanSpeed

Call GetRGBValue

Call WaitForSplash

If $afkAway = 1

Delay 2500

KeyDown {RETURN} 250

KeyDown {RETURN} 250

Delay 2000

Else

Delay 5000

End

End

////////////////

// Procedures //

////////////////

Procedure CalculateScanBoxConstants

Compute scanTop = {WindowTop} + Trunc( {WindowHeight} * $scanTopDist )

Compute scanBottom = ( {WindowTop} + {WindowHeight} ) - Trunc( {WindowHeight} * $scanBottomDist )

Compute scanLeft = {WindowLeft} + Trunc( {WindowWidth} * $scanLeftDist )

Compute scanRight = ( {WindowLeft} + {WindowWidth} ) - Trunc( {WindowWidth} * $scanRightDist )

Compute boxAvgWidth = Trunc( {WindowWidth} * $widthToWindowRatio )

Compute boxAvgHeight = Trunc( {WindowHeight} * $heightToWindowRatio )

Compute scanStepX = $boxAvgWidth

Compute scanStepY = Trunc( $boxAvgHeight / 2 )

End

Procedure FindLureInitial

SetConst scanSuccess = 0

Compute y = $scanTop

While $y <= $scanBottom AND $scanSuccess = 0

Compute i = {LoopNo} MOD 2

If $i = 0

Timestamp In Even

Compute x = $scanLeft

Else

Timestamp In Odd

Compute x = $scanLeft + Trunc( $boxAvgWidth / 2 )

End

While $x <= $scanRight AND $scanSuccess = 0

// Move the mouse and wait a second (wait is required!)

MousePos $x, $y

Delay $scanSpeed

Call isMouseOrange

// If the mouse is orange

If $isMouseOrange = 1

SetConst lureInitLocX = $x

SetConst lureInitLocY = $y

SetConst scanSuccess = 1

End

Compute x=$x + $scanStepX

End

Compute y=$y + $scanStepY

End

End

Procedure FindBoxCenter

// Find X min

SetConst scanSuccess = 0

Compute x = $lureInitLocX

Compute y = $lureInitLocY

While $scanSuccess = 0

// Move the mouse and wait a second (wait is required!)

MousePos $x, $y

Delay $scanSpeed

Call isMouseOrange

If $isMouseOrange = 0

SetConst boxMinX = $x

SetConst scanSuccess = 1

Else

Compute x= $x - $boxScanStep

End

End

// Find X max

SetConst scanSuccess = 0

Compute x = $lureInitLocX

Compute y = $lureInitLocY

While $scanSuccess = 0

// Move the mouse and wait a second (wait is required!)

MousePos $x, $y

Delay $scanSpeed

Call isMouseOrange

If $isMouseOrange = 0

SetConst boxMaxX = $x

SetConst scanSuccess = 1

Else

Compute x= $x + $boxScanStep

End

End

// Find Y min

SetConst scanSuccess = 0

Compute x = $lureInitLocX

Compute y = $lureInitLocY

While $scanSuccess = 0

// Move the mouse and wait a second (wait is required!)

MousePos $x, $y

Delay $scanSpeed

Call isMouseOrange

If $isMouseOrange = 0

SetConst boxMinY = $y

SetConst scanSuccess = 1

Else

Compute y= $y - $boxScanStep

End

End

// Find Y max

SetConst scanSuccess = 0

Compute x = $lureInitLocX

Compute y = $lureInitLocY

While $scanSuccess = 0

// Move the mouse and wait a second (wait is required!)

MousePos $x, $y

Delay $scanSpeed

Call isMouseOrange

If $isMouseOrange = 0

SetConst boxMaxY = $y

SetConst scanSuccess = 1

Else

Compute y= $y + $boxScanStep

End

End

Compute boxCenterX = Trunc(( $boxMinX + $boxMaxX ) / 2)

Compute boxCenterY = Trunc(( $boxMinY + $boxMaxY ) / 2)

SetConst lureInitLocX = $boxCenterX

SetConst lureInitLocY = $boxCenterY

End

Procedure GetRGBValue

SetConst $brightTotal = 0

Compute y = $boxCenterY

Compute i = $boxCenterY + Trunc( ($boxMaxY - $boxCenterY) / 3 )

While $y <= $i

Compute x = $boxMinX

While $x <= $boxCenterX

LoadRGB $x, $y

Compute curTotal = {RGBRed} + {RGBGreen} + {RGBBlue}

If $curTotal > $brightTotal

Compute brightTotal = $curTotal

SetConst brightR = {RGBRed}

SetConst brightG = {RGBGreen}

SetConst brightB = {RGBBlue}

Compute brightRMin = $brightR - $brightRangeDown

Compute brightRMax = $brightR + $brightRangeUp

Compute brightGMin = $brightG - $brightRangeDown

Compute brightGMax = $brightG + $brightRangeUp

Compute brightBMin = $brightB - $brightRangeDown

Compute brightBMax = $brightB + $brightRangeUp

SetConst brightX = $x

SetConst brightY = $y

End

Compute x=$x + 2

End

Compute y=$y + 2

End

End

Procedure WaitForSplash

SetConst $splashed = 0

Call isMouseOrange

While $splashed = 0 AND $isMouseOrange = 1

Delay 100

// Check current spot

LoadRGB $brightX, $brightY

If {RGBRed} > $brightRMax OR {RGBRed} < $brightRMin OR {RGBGreen} > $brightGMax OR {RGBGreen} < $brightGMin OR {RGBBlue} > $brightBMax OR {RGBBlue} < $brightBMin

// Check top left

Compute x=$brightX-$brightDist

Compute y=$brightY-$brightDist

LoadRGB $x, $y

If {RGBRed} > $brightRMax OR {RGBRed} < $brightRMin OR {RGBGreen} > $brightGMax OR {RGBGreen} < $brightGMin OR {RGBBlue} > $brightBMax OR {RGBBlue} < $brightBMin

// Check top right

Compute x=$brightX+$brightDist

Compute y=$brightY-$brightDist

LoadRGB $x, $y

If {RGBRed} > $brightRMax OR {RGBRed} < $brightRMin OR {RGBGreen} > $brightGMax OR {RGBGreen} < $brightGMin OR {RGBBlue} > $brightBMax OR {RGBBlue} < $brightBMin

// Check bottom left

Compute x=$brightX-$brightDist

Compute y=$brightY+$brightDist

LoadRGB $x, $y

If {RGBRed} > $brightRMax OR {RGBRed} < $brightRMin OR {RGBGreen} > $brightGMax OR {RGBGreen} < $brightGMin OR {RGBBlue} > $brightBMax OR {RGBBlue} < $brightBMin

// Check bottom right

Compute x=$brightX+$brightDist

Compute y=$brightY+$brightDist

LoadRGB $x, $y

If {RGBRed} > $brightRMax OR {RGBRed} < $brightRMin OR {RGBGreen} > $brightGMax OR {RGBGreen} < $brightGMin OR {RGBBlue} > $brightBMax OR {RGBBlue} < $brightBMin

// Check top left (extended)

Compute x=$brightX-($brightDist*2)

Compute y=$brightY-($brightDist*2)

LoadRGB $x, $y

If {RGBRed} > $brightRMax OR {RGBRed} < $brightRMin OR {RGBGreen} > $brightGMax OR {RGBGreen} < $brightGMin OR {RGBBlue} > $brightBMax OR {RGBBlue} < $brightBMin

// Check top right (extended)

Compute x=$brightX+($brightDist*2)

Compute y=$brightY-($brightDist*2)

LoadRGB $x, $y

If {RGBRed} > $brightRMax OR {RGBRed} < $brightRMin OR {RGBGreen} > $brightGMax OR {RGBGreen} < $brightGMin OR {RGBBlue} > $brightBMax OR {RGBBlue} < $brightBMin

// Check bottom left (extended)

Compute x=$brightX-($brightDist*2)

Compute y=$brightY+($brightDist*2)

LoadRGB $x, $y

If {RGBRed} > $brightRMax OR {RGBRed} < $brightRMin OR {RGBGreen} > $brightGMax OR {RGBGreen} < $brightGMin OR {RGBBlue} > $brightBMax OR {RGBBlue} < $brightBMin

// Check bottom right (extended)

Compute x=$brightX+($brightDist*2)

Compute y=$brightY+($brightDist*2)

LoadRGB $x, $y

If {RGBRed} > $brightRMax OR {RGBRed} < $brightRMin OR {RGBGreen} > $brightGMax OR {RGBGreen} < $brightGMin OR {RGBBlue} > $brightBMax OR {RGBBlue} < $brightBMin

SetConst splashed = 1

RightClick Shift

Delay 500

End

End

End

End

End

End

End

End

End

Call isMouseOrange

End

End

Procedure isMouseOrange

SetConst $isMouseOrange = 0

// Get the mouse color

Compute mouseX= {MouseX} + 4

Compute mouseY= {MouseY} + 4

LoadRGB $mouseX, $mouseY

// If the mouse is orange (variance added just for good measure..)

If {RGBRed} >= 210 AND {RGBRed} <= 218 AND {RGBGreen} >= 160 AND {RGBGreen} <= 168 AND {RGBBlue} >= 84 AND {RGBBlue} <= 92

SetConst $isMouseOrange = 1

End

End

And that one is to put lure on your fishing rod:

SetActiveWindow World of Warcraft

Constants

/////////////////////////

// CHANGABLE CONSTANTS //

/////////////////////////

bobberCount = 1

/////////////////////////////

// NON-CHANGABLE CONSTANTS //

/////////////////////////////

// Optimal scan step ratios

widthToWindowRatio = 0.056

heightToWindowRatio = 0.075

// Scanbox

scanTop = 0

scanBottom = 0

scanLeft = 0

scanRight = 0

scanStepX = 0

scanStepY = 0

scanSuccess = 0

// THE Box

boxMinX = 0

boxMaxX = 0

boxMinY = 0

boxMaxY = 0

boxCenterY = 0

boxCenterX = 0

boxScanStep = 4

boxAvgWidth = 0

boxAvgHeight = 0

// Misc vars

x = 0

y = 0

i = 0

j = 0

// Mouse vars

isMouseOrange = 0

mouseX = 0

mouseY = 0

// Lure location

lureInitLocX = 0

lureInitLocY = 0

// RGB Info

brightX = 0

brightY = 0

brightTotal = 0

brightR = 0

brightG = 0

brightB = 0

brightRMin = 0

brightRMax = 0

brightGMin = 0

brightGMax = 0

brightBMin = 0

brightBMax = 0

curTotal = 0

// Splash

splashed = 0

End

///////////////

// Main Proc //

///////////////

Loop $bobberCount

Keys -

Keys 1

End

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Delay 9999

Remember to read instruction first. Hope it will work great for you ;D

:worthless: