ÇÁ·Î±×·¡¹Ö

 3204, 1/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 : 2642     Date : 2009/05/11 03:23



    
3204   Ä¡Æ®¿£Áø °í¼öºÐ °è½Ç±î¿ä[1]     rjsdudals123
02/15 225
3203   ¿À·ù Á» ã¾ÆÁÖ¼¼¿ä [1]     marunim
05/30 953
3202   c¾ð¾î segmentation fault:11 ¿À·ù Áú¹®µå¸³´Ï´Ù![2]     leebk1124
05/21 2032
3201   C++ÇÔ¼ö°ü·Ã Áú¹®ÀÌ¿¡¿ë!![3]     1999dylee
05/11 1859
3200   ÆÄÀ̽ã Áö¹® µå¸³´Ï´Ù.[1]     kksh1107
04/24 1599
3199   ¸®¹ö½ÌÀÇ ¼¼¹ø¤Š ²É - ¿ª¶û-     nninni79
04/20 2307
3198   ´Þ°í³ª ¹®¼­ ½©ÄÚµå[1]     ghjk645
03/24 1621
3197 ºñ¹Ð±ÛÀÔ´Ï´Ù  c¾ð¾î ¼Ò¼ö °ª     adwefq
04/29 1
3196   C¾ð¾î ¼Ò½ºÁú¹®ÀÔ´Ï´Ù![5]     an0088
01/05 5178
3195   C++ /// ºôµå ¿¡·¯ ¤Ð¤Ð[1]     guichanta
08/23 2411
3194 ºñ¹Ð±ÛÀÔ´Ï´Ù  c¾ð¾î µµ¿ÍÁÖ¼¼¿ä¤Ð¤Ð     su6339
04/06 0
3193   ÇØÅ·À» ¹è¿ì·Á°íÇϴµ¥[3]     zoodem04
03/26 4188
3192   c¾ð¾î¸¦ ¹è¿ì°í½Í¾î¿ä ![7]     dwc07238
02/11 4098
3191   ½ºÅÃÀÌ ½×ÀÌ´Â ¹æÇâ¿¡ °üÇؼ­!![1]     hackxx123
12/10 3535
3190   ÇØÅ·Åø¿¡¼­ ip ¾øÀÌ Çϵ忡 ½É´Â°Å¿¡´Â ¾î¶²°Ô ÀÖÀ»±î¿ä?[2]     aowlrgmlals
11/27 4325
3189   C¾ð¾î Çϴµ¥ double ½Ç¼ö¸¦ ³ÖÀºµ¥ ÀÚ²Ù 0.0ÀÌ ³ª¿Í¿ä[2]     fatou10336
11/20 3786
3188   dumpcode.h ÀÌÇØÁ» µµ¿ÍÁÖ¼¼¿ä .[1]     cm6418
11/06 3759
3187   c¾ð¾î ¾Ë°í¸®Áò Áú¹®ÀÔ´Ï´Ù.[3]     alstn8150
10/12 3770
3186     [re] c¾ð¾î ¾Ë°í¸®Áò Áú¹®ÀÔ´Ï´Ù.     dafher
05/13 1597
3185   c¾ð¾î ¼Ò½º Áú¹® ¹¹°¡ ¹®Á¦ÀÎÁö¤Ì¤Ì¤Ì¤Ì[2]     sjjh96
05/23 4307
1 [2][3][4][5][6][7][8][9][10]..[161]

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