ÇÁ·Î±×·¡¹Ö

 3206, 9/161 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   magic0214
   ÀÌ°Å ¹«½¼¾ð¾î¿¹¿ä?

http://www.hackerschool.org/HS_Boards/zboard.php?id=QNA_programming&no=2012 [º¹»ç]


C ³ª ÀÚ¹Ùº¸´Ù »ç¿ëÀÚÀ§ÁÖ·Î ½±°Ô ÇÁ·Î±×·¡¹ÖµÇÀִµ¥
¹«½¼¾ð¾îÀÎÁö ±Ã±ÝÇØ¿ä ÀÌ°Å µð¹ö±ëµµ ÇÏ°í½Í¾î¿ä

// 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

Constants

/////////////////////////
// CHANGABLE CONSTANTS //
/////////////////////////

// Run count
// How many times the script should try to fish
runCount = 100000

// 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 = 60

// 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 = .03
scanRightDist = .03
scanTopDist = .04
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 = 50
brightRangeUp = 10

// 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 = 0

/////////////////////////////
// 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
Delay 1000

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

  Hit : 2633     Date : 2009/05/11 03:23



    
3046   ÀÌ°Å Âü...-_-[3]     sagelord
09/23 4469
3045   ÀÌ°Å Ãƴµ¥ warning ³ª¿À³×¿ä[1]     °í´¢´¢¸¶½ºÅÍ
04/06 3129
3044   ÀÌ°Å Á» ¾Ë ¼ö ÀÖÀ»±î¿ä ` `;[3]     boyscrew
04/18 3090
3043   ÀÌ°Å c¾ð¾î ÄÚµå·Î ÀÛ¼ºÁ» ÇØÁÖ¼¼¿ë[4]     rardar
03/11 2933
3042   ÀÌ°Å Èñ±ÍÇÑ Çö»óÀΰ¡¿ä?[8]     rmatoa2
02/28 3216
3041   ÀÌ°Å °£´ÜÇÏ°ÔÁ» ºÎŹµå¸³´Ï´Ù.[1]     ys9658
04/06 3366
3040   ÀÌ°Å ¶§¹®¿¡ Áøµµ°¡ ¾È³ª°¡¿ä...[3]     mookhone
01/18 3580
3039   ÀÌ°Å ¹«½¼³»¿ëÀÎÁö ¸ð¸£°Ú¾î¿ä ¤Ð.¤Ð[1]     yhh0813
09/15 2506
  ÀÌ°Å ¹«½¼¾ð¾î¿¹¿ä?     magic0214
05/11 2632
3037   ÀÌ°Å ¹®¹ý¸Â³ª¿ä??[4]     saelly
10/21 2762
3036   ÀÌ°Å º¸½Ã°í °íÃÄÁÖ¼¼¿ä[7]     rain48
10/15 3228
3035   ÀÌ°Å ¾î¶»°Ô ÇؾßÇϳª...[2]     dkdkfjgh
11/03 2745
3034   ÀÌ°Å ¾î¶»°Ô ÄÚµùÀ» ÇؾßÇÒÁö..;;;[1]     chun4foryou
09/22 2565
3033   ÀÌ°Å ¾î¶»°ÔÇؾßÇÏÁÒ? °³³äÀâ¾ÆÁÖ¼¼¿ä     ½È¾î ³»°¡ÇÒ²¨¾ß
02/07 3074
3032   ÀÌ°Å ¿Ö ÀÛµ¿ÀÌ ¾ÈµÉ±î¿ä .... ¿À·ùÁ»¾Ë·ÁÁÖ¼¼¿ä[3]     djrwotlsehd
09/27 2704
3031   ÀÌ°Å ¿Ö °æ°í°¡ ¶ß´ÂÁö¾Ë¼öÀÖÀ»±î¿ä? c¾ð¾î·Î ¸¸µé¾ú½À´Ï´Ù[2]     Opportunity
02/16 3930
3030   ÀÌ°Å ¿Ö ¾ÈµÇ³ª¿ä ¤Ð¤Ð[2]     ysp0530
09/08 8719
3029   ÀÌ°Å ¿Ö ¾ÈµÇ³ª¿©?(Windows ÇÁ·Î±×·¡¹Ö)[2]     ysp0530
09/06 2873
3028   ÀÌ°Å. C#±âÃÊ ¤Ð_¤Ð ¹«ÇÑ·çÇÁÁ» µµ¿ÍÁÖ¼¼¿è ¤Ð_¤Ð[1]     alex127
08/22 4751
3027   ÀÌ°ÅÀÌ°Å ¹®Á¦°¡ °è¼Ó ³ª¿À´Â±º¿ä.¤Ð¤Ð[13]     skwksk
10/25 3180
[1][2][3][4][5][6][7][8] 9 [10]..[161]

Copyright 1999-2024 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org