Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; Sacred seasons bot by Shakesphere
- ; v0.002 - attacks all in Tsulas and BW A3 - 08/27/2010
- ; v0.003 - put in your own coordinates and it should work on SS and Kong
- ; v0.004 - added UW E4
- ; v0.005 - code cleanup - added UW D2
- ; v0.006 - first attempt at generic dungeon grinder
- ; v0.007 - added UW F4
- ; v0.008 - generic grinder working well - lets try entire arena grind!
- ; v0.009 - cleaning up code - ff arena grind works
- ; v0.010 - SVA arena grind works
- ; v0.011 - changes I made for arena grind didn't work with dungeon grind
- ; fixed
- ; generic grinder didn't work at all
- ; fixed - but only lightly tested
- ; v0.012 - adding BRA grind and making BRA repeat after you die
- ; v0.013 - making SVA repeat after you die (gotta level my alt!)
- ; v0.014 - added FF repeat after you die - I'm not sure why you would want
- ; to do that but oh well - also some code cleanup (09/01/10)
- ; v0.015 - added BWA grind and repeat
- ; v0.016 - added more safeguards against server delay in displaying
- ; battle and exit pads
- ; v0.017 - not sure previous fixes work but adding DFA anyway
- ; v0.018 - added display timer to show how long each iteration took -
- ; good for figuring out how much XP/min you're getting (09/02)
- ; v0.019 - removing some death checks and seeing if it still works -
- ; found a tricky bug that would hang program while walking across map
- ; v0.020 - Trying to calculate XP/Min stats for each grind choice
- ; v0.021 - still getting XP/Min stats
- ; v0.022 - added CWA, UWA,
- ; v0.023 - added WaitForPads to dungeon grinds
- ; v0.024 - adding HP checking to Tsulas
- ; v0.025 - adding HP checking to UW_D2 - no improvement
- ; v0.026 - testing attack speed improvements
- ; v0.027 - tracked down a bug - might be coincidence but I think SS changed
- ; something to try and stop my script - fixed!
- ; v0.900 - automatically finds window coordinates
- ; v0.901 - starting work on GUI
- ; v0.902 - displays window coordinates - allows update
- ; v0.903 - fixing 902
- ; v0.904 - updated coordinates - testing
- ; v0.905 - redoing all coordinates
- ; v0.906 - more GUI work
- ; v0.907 - fixing window coordinates
- ; v0.908 - redoing find battle menu code
- ; v0.909 - adding low level character grind - not working well yet
- ; v0.910 - Adding UW A3, B4, A4
- ; v0.911 - making Arena grinds repeat when finished
- ; v0.912 - small update to newbie grind
- ; v0.913 - bugfixes to arena grind (only on DFA) - redid death check
- ; redid battle icon find and exit find
- ; v0.914 - testing new death check on BRA
- ; v0.915 - minor change in waitforpads - less color sensitive
- ; v0.916 - minor update to stats display
- ; v0.917 - additional checks so it will never click below the game area
- ; added -119 to $bottomRight[1]
- ; v0.918 - replacing deathcheck in all arenas
- ; v0.919 - fixing arena grinds repeat
- ; v0.920 - putting DFA fixes in all arenas
- ; v0.921 - rewrite/consolidation of arena code
- ; v0.922 - updating newbie grind
- ; v0.923 - redoing arena room exits
- ; v0.924 - undoing some 923 changes
- ; v0.925 - newbie grind update - repeating one battle in BR A2
- ; v0.926 - fixing generic
- ; v0.927 - I broke waitforpads - hopefully fixed it now
- ; v0.928 - Oops - I broke arena repeat - this should fix it
- ; v0.928 - cataloging battle coordinates
- ; v0.929 - adding Underworld C2
- ; v0.930 - arena exits only worked on ss site, fixed
- ; v0.931 - one line change in findattack2
- ; v0.932 - trying to add astral travel III buff, fixed error in UW_C2
- ; v0.933 - updating GUI - trying to add buffs
- ; v0.934 - can select limit on times spell is cast
- ; v0.935 - (12/03) checks to see if you clicked on a friend - lets multi-bot!
- ; v0.936 - (12/04) fixing errors from 935
- ; v0.937 - (12/06) 'turbo' mode option - gets rid of most pauses in bot
- ; - may negatively affect stability
- ; v0.938 - (12/06) changed text in 'maximum times to cast spell'
- ; - 0 for unlimited didn't work and probably isn't even useful
- ; v0.939 - change in timer so it starts after GUI selections
- ; v0.940 - modified battle order in DD_E3, UW_C2,
- ; v0.941 - (12/12) adding attack spell option
- ; v0.942 - (12/12) first attempt at auto-heal spells
- ; v0.943 - (12/13) making hp and spell level selectable
- ; v0.944 - (12/20) repeating attacks when it hangs
- ; v0.945 - (12/26) going after bugs - more fixes for hanging while attacking
- ; v0.946 - (12/26) fixes for server delay in waiting for pads to appear
- ; v0.947 - (01/12) fixing Grimalkin issues in BRA
- ; v0.948 - (01/28) additional battle pad check in arenas for server delay
- ; v0.949 - (01/28) fix for trying to exit battles too soon
- ; usually caused by Barrier Golem explosions
- ; v0.950 - (01/28) added small delay in findattack2
- ; should help with stability
- ; v0.951 - (01/28) fixed small error in DD_A5
- ; v0.952 - (02/02) adding more character click checks
- ; fixed click checks in dungeonpad
- ; added checks for moving away from dungeon and other spots
- ; v0.953 - for multi-botting - checks to see if battle is already done
- ; v0.954 - if battle doesn't start after a few seconds - maybe bot didn't
- ; click on battle pad - so it clicks it again
- ; v0.955 - (02/09) updates to fix coordinates on new Sacred Seasons site
- ; v0.956 - (02/10) finally fixing XP amounts for dungeons
- ; - started work on PGA (and realized I haven't unlocked it yet)
- ; - finally fixed the last section of the newbie grind
- ; v0.957 - (02/10) tidying up the code - hope I didn't break anything
- ;
- ;
- ; todo - PGA - add silver info, finish checking XP info
- ; CWA and UWA might not be working right now - (11/06/10)
- ; - will examine more later
- ;
- ; Misc documentation:
- ; This is a work in progress - lots of ugly code, commented debugging
- ; code and other nonsense.
- ;
- ; For arena runs - checking to see if you died occurs in multiple places and
- ; can result in multiple 'you died!' messages once you actually die. It's
- ; not a bug - it's a feature. Comment them out if they annoy you.
- ;
- ; I'm thinking that running arenas is less conspicuous than running a
- ; dungeon over and over. Figuring out which arena gets you the best XP/min
- ; is up to you. But make sure you can finish the first room of the arena
- ; or else the script will bomb. I should fix that - but it's a low
- ; priority right now.
- ;
- ; Script will calculate and display XP/Min that you are getting.
- ; These numbers assume that you are grinding solo - if not, the numbers
- ; are wrong. Also, numbers will be completely wrong if you are using
- ; the generic dungeon grind function.
- ;
- ; There are many ways to slightly increase the speed of this script but I
- ; went for stability instead of speed. It still glitches sometimes but its
- ; also run for over 10 hours unattended - your mileage may vary
- ;
- ; This is an AutoIT3 script
- ; Get AutoIT at http://www.autoitscript.com/autoit3/index.shtml
- ;
- ; As the script runs, it will pop up a window telling you how many times it
- ; has run that section and how long it took. This is purely informative and
- ; can be commented out if you don't like it.
- Global $topLeft[2]
- Global $bottomRight[2]
- Global $paused
- HotKeySet("{ESC}", "Terminate")
- HotKeySet("{PAUSE}","_pause")
- Func _pause()
- $paused = NOT $paused
- While $paused
- Sleep(100)
- Wend
- EndFunc
- Global $coord[2]
- Global $coord2[2]
- Global $exitCoord[2]
- Global $ArenaCoord[2]
- Global $battleCoord[2]
- Global $genericCoord[2]
- Global $GenericEntrance[2]
- Global $newGenCoord[2]
- Global $waitCoord[2]
- Global $TotalRunCount
- Global $AttackColor1
- Global $AttackColor2
- Global $BlankColor1
- Global $BlankPixel
- ; checks HP for Tsulas2 grind - about 66%
- Global $BlankPixel2
- ; checks HP for NewbGrind - about 90%
- Global $BlankPixel3
- ; checks HP for NewbGrind - about 99%
- Global $xCoord
- Global $yCoord
- Global $AttackLoop
- Global $AttackPixel
- Global $AttackPixelCount
- Global $BattleCheckSum
- Global $DungeonCheckSum
- Global $xPos
- Global $yPos
- Global $checkPixel
- Global $battleCheck
- Global $GenericContinue
- Global $ArenaContinue
- Global $NumberOfBattles
- Global $TsulasHP
- Global $TotalXP
- Global $EntireXP
- Global $startTime
- Global $entireTime
- Global $timeElapsed
- Global $CheckTimer
- ; CWA
- Global $CWACoord[2]
- Global $CWAContinue
- Global $NewCWACoord[2]
- ; UWA
- Global $UWACoord[2]
- Global $UWAContinue
- Global $NewUWACoord[2]
- ; Death check
- Global $DeathColor
- Global $DeathPixel
- Global $ArenaXP[10][100]
- ; FF, SVA, BWA, DFA, BRA, CWA, UWA, PGA, BI3
- Global $ArenaNumberOfBattles[10]=[0,96,96,97,94,89,22,33,87,33]
- ; FFXP - correct values and placement
- Global $FFXP[97]=[0,21,1,11,14,4,40,12,20,24,44,150,12,28,17,150,151,2,10,24,10,10,182,36,158,42,3,15,37,27,44,15,300,152,23,38,27,19,39,160,24,22,199,13,29,47,15,24,12,311,28,33,25,20,39,18,45,60,72,51,60,200,56,210,150,80,80,66,66,440,120,105,60,110,147,40,105,150,360,95,155,180,120,160,120,66,150,132,190,74,32,100,110,70,76,126,540]
- ; SVAXP - correct values and placement
- Global $SVAXP[97]=[0,72,75,90,40,117,66,76,87,111,156,66,90,60,120,190,99,213,180,50,240,130,190,244,224,50,105,150,19,100,270,330,180,80,205,150,88,149,179,386,501,320,243,510,305,350,225,510,895,380,320,330,570,450,610,190,400,900,900,910,430,1065,520,900,390,745,1500,1530,1950,1100,1700,830,1180,1300,1760,452,2400,800,3075,1950,1100,1315,930,1350,3060,1315,1250,1550,830,1350,2925,4,950,490,980,1425,160]
- ; BWAXP - correct values and placement
- Global $BWAXP[98]=[0,110,110,150,140,70,100,180,200,320,99,80,220,100,270,270,550,1750,825,938,1360,54,397,1375,150,1845,1800,180,775,300,1300,2138,900,1300,830,1200,450,921,475,2000,600,950,1350,998,65,160,465,240,650,490,80,1560,1720,1130,400,1695,500,160,80,1260,1560,500,480,2400,1300,690,2720,1490,1380,500,2235,500,1440,2980,1050,1440,720,1220,500,1490,2160,1220,2235,500,1000,3450,2930,1360,3480,1200,1560,3120,2400,1000,2340,2160,2235,3000]
- ; DFAXP - correct values and placement
- Global $DFAXP[95]=[0,300,205,102,305,535,410,525,494,220,540,700,170,230,190,180,422,430,265,500,750,735,285,740,355,855,975,765,780,745,1020,1410,1175,675,287,305,1600,520,856,375,825,1249,1540,1234,1825,1005,1145,1430,330,725,1665,1360,1300,870,610,970,1310,1290,1285,3260,2875,906,7200,270,1979,2660,1320,3342,1194,1756,2046,4076,7426,992,4450,504,5972,2912,6916,2200,5432,968,6363,1300,3300,3257,1761,5824,7524,4354,6614,12848,7624,3801,11452]
- ; BRAXP - correct values - placement checked to here ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
- Global $BRAXP[90]=[0,905,605,1150,280,3020,950,500,2390,1800,4125,730,3725,2340,465,3014,2016,2634,1920,3008,1560,2218,3240,1500,828,4410,1512,3020,450,1756,360,1844,2994,992,1560,2040,1386,500,3588,1630,1331,700,585,4278,1264,3584,7155,2528,306,2235,3534,4002,3792,5724,3400,3792,90,4416,270,3830,4293,2862,1996,6075,5924,6140,2862,4342,1245,5602,8476,2994,1242,5528,9204,7119,3764,15056,5500,4308,2307,10596,15518,11292,11340,6000,12132,5184,9030,6792]
- ; CWAXP - correct values - placement not checked
- Global $CWAXP[23]=[0,1800,1800,1800,6350,5950,5850,7000,6700,6200,6700,7500,7850,7250,8000,12500,12500,15500,13333,13333,4444,9222,3472]
- ; UWAXP - correct values - placement not checked
- Global $UWAXP[34]=[0,2373,2373,2373,2373,2373,2373,2373,2373,2373,2373,7573,10400,13000,13000,15600,7573,10606,9574,10606,11514,6807,11200,11200,12432,8433,14000,16800,19000,25000,26400,14000,9464,36032]
- ; PGAXP - correct values - placement not checked
- Global $PGAXP[88]=[0,4800,3800,7884,8164,5210,7064,6400,2000,7000,10898,11146,7350,2600,5950,8850,9100,10100,8900,6900,11264,8100,6400,7500,8500,6273,5824,5996,6160,9900,11250,13400,13400,13600,8800,6650,8973,7673,13400,13110,16044,15664,8776,13368,13408,12465,14514,9941,10785,15947,12114,12233,14467,7885,20406,17318,14383,12088,15320,18066,15905,13379,13138,15980,14033,13300,16550,18227,15021,15236,11643,14526,13879,14537,19600,17707,18637,17386,25338,30117,12956,17530,15747,30888,32238,45038,56138,62138]
- Global $guiExit
- Global $ArenaExit[15]=[0, 225, 90, 130, 401, 417, 186, 586, 126, 705, 185, 705, 450, 633, 102]
- Global $ArenaRoomCount
- Global $BuffCoords[43]=[0, 86, 219, 86, 240, 86, 263, 86, 287, 86, 308, 86, 331, 233, 219, 233, 240, 233, 263, 233, 287, 233, 308, 233, 331, 379, 219, 379, 240, 379, 263, 379, 287, 379, 308, 379, 331, 526, 219, 526, 240, 526, 263]
- Global $grind_choice
- Global $battleTextFind[2]
- Global $BattleFound
- $AttackColor1 = Dec("FFFFFF")
- $AttackColor2 = Dec("FFFEFF")
- $BlankColor1 = Dec("333333")
- $BattleTextColor = 0xFFFFFF
- $PadColor1 = 0xFC4744
- $PadColor2 = 0xFD4743
- $ExitColor1 = 0xF8F6EA
- $DeathColor = Dec("86A89C")
- $UWEXitColor1 = 0x6DFCF6
- Opt("WinTitleMatchMode", 2)
- ;IE7/8
- WinActivate("[CLASS:IEFrame]", "")
- ;Firefox3
- WinActivate("Play Sacred Seasons MMORPG, a free online game on Kongregate - Mozilla Firefox[CLASS:MozillaUIWindowClass]", "")
- ;Firefox4
- WinActivate("[CLASS:MozillaWindowClass]", "")
- ;Opera
- WinActivate("[CLASS:aPluginWinClass]", "")
- ;Opera
- WinActivate("[CLASS:OperaWindowClass]", "")
- ;Chrome
- WinActivate("[CLASS:Chrome_WidgetWin_0]", "")
- ; generic coordinate finder
- $GCF1 = PixelSearch(1, 1, 3000, 3000, 0x0099CC, 10)
- $GCF1 = PixelSearch(1, 1, 3000, 3000, 0x0099CC, 10)
- $topLeft[0] = $GCF1[0]-1
- $topLeft[1] = $GCF1[1]-481
- $bottomRight[0] = $topLeft[0] + 739
- $bottomRight[1] = $topLeft[1] + 599
- ;populate XP values
- For $xloop = 1 to 96
- $ArenaXP[1][$xloop]=$FFXP[$xloop]
- Next
- For $xloop = 1 to 96
- $ArenaXP[2][$xloop]=$SVAXP[$xloop]
- Next
- For $xloop = 1 to 97
- $ArenaXP[3][$xloop]=$BWAXP[$xloop]
- Next
- For $xloop = 1 to 94
- $ArenaXP[4][$xloop]=$DFAXP[$xloop]
- Next
- For $xloop = 1 to 89
- $ArenaXP[5][$xloop]=$BRAXP[$xloop]
- Next
- For $xloop = 1 to 22
- $ArenaXP[6][$xloop]=$CWAXP[$xloop]
- Next
- For $xloop = 1 to 33
- $ArenaXP[7][$xloop]=$UWAXP[$xloop]
- Next
- For $xloop = 1 to 87
- $ArenaXP[8][$xloop]=$PGAXP[$xloop]
- Next
- $TotalRunCount=0
- $screenWidth = $bottomRight[0] - $topLeft[0]
- $screenHeight = $bottomRight[1] - $topLeft[1]
- $repeatagain = 1
- ; GUI starts here
- #include <GUIConstantsEx.au3>
- #include <EditConstants.au3>
- GUICreate("Sacred Seasons bot / grind script - http://madscripter.wordpress.com", 800, 600)
- GUICtrlCreateLabel("Top Left", 10, 10)
- $InputSize1 = GUICtrlCreateInput($topLeft[0], 10, 25, 100, 20)
- GUICtrlCreateLabel("Top Left", 140, 10)
- $InputSize2 = GUICtrlCreateInput($topLeft[1], 140, 25, 100, 20)
- GUICtrlCreateLabel("Bottom Right", 10, 50)
- $InputSize3 = GUICtrlCreateInput($bottomRight[0], 10, 65, 100, 20)
- GUICtrlCreateLabel("Bottom Right", 140, 50)
- $InputSize4 = GUICtrlCreateInput($bottomRight[1], 140, 65, 100, 20)
- GUICtrlCreateLabel("Window width", 10, 90)
- $InputSize5 = GUICtrlCreateInput($screenWidth, 10, 105, 100, 20, $ES_READONLY)
- GUICtrlCreateLabel("Window height", 140, 90)
- $InputSize6 = GUICtrlCreateInput($screenHeight, 140, 105, 100, 20, $ES_READONLY)
- GUICtrlCreateLabel("The above coordinates are what the script found automatically. If the values are zero or blank, you need to enter the values yourself using AutoIT Window Info." & @CRLF & "The width should be 740 and the height should be 600. (Automatically finding the coordinates should work in all browsers - IE7, IE8, Firefox 3, and Firefox 4, Opera, and Chrome. If it doesn't work - please let me know.)", 10, 145, 260, 120)
- GUICtrlCreateLabel("Make sure that Sacred Seasons is underneath this window, the coordinates are correct, select a section to grind and press continue.", 200, 510, 400, 40)
- $ContinueButton1 = GUICtrlCreateButton("Continue", 300, 550, 100)
- GUICtrlCreateGroup("Select a section to grind:", 310, 10, 480, 250)
- $choice_1 = GUICtrlCreateRadio("Newbie Grind", 330, 25, 210, 20)
- $choice_2 = GUICtrlCreateRadio("Bleakwoods D4 (Tsulas)", 330, 45, 210, 20)
- $choice_3 = GUICtrlCreateRadio("Bleakwoods A3 (Flo)", 330, 65, 210, 20)
- $choice_4 = GUICtrlCreateRadio("Dunes F1", 330, 105, 210, 20)
- $choice_5 = GUICtrlCreateRadio("Underworld D2 (Worm/Octogum/Frogs)", 330, 125, 210, 20)
- $choice_6 = GUICtrlCreateRadio("Underworld F4 (Charlotte / Choppers)", 330, 145, 210, 20)
- $choice_7 = GUICtrlCreateRadio("Underworld A3 (Green Dragons / Bubblers)", 330, 165, 240, 20)
- $choice_8 = GUICtrlCreateRadio("Dunes E3 (Mumma)", 330, 185, 210, 20)
- $choice_9 = GUICtrlCreateRadio("Dunes A5", 330, 205, 210, 20)
- $choice_10 = GUICtrlCreateRadio("Generic", 330, 225, 210, 20)
- $choice_11 = GUICtrlCreateRadio("Arena - FF", 600, 25, 180, 20)
- $choice_12 = GUICtrlCreateRadio("Arena - SVA", 600, 45, 180, 20)
- $choice_13 = GUICtrlCreateRadio("Arena - BWA", 600, 65, 180, 20)
- $choice_14 = GUICtrlCreateRadio("Arena - DFA", 600, 85, 180, 20)
- $choice_15 = GUICtrlCreateRadio("Arena - BRA", 600, 105, 180, 20)
- $choice_16 = GUICtrlCreateRadio("Arena - CWA", 600, 125, 180, 20)
- $choice_17 = GUICtrlCreateRadio("Arena - UWA", 600, 145, 180, 20)
- $choice_18 = GUICtrlCreateRadio("Dunes D3 (Scrabs)", 330, 85, 240, 20)
- $choice_text = GUICtrlCreateLabel("", 310, 270, 450, 60)
- $grind_choice = 0
- $BuffBox = GUICtrlCreateCheckbox("Check to use buff at start of battle", 10, 325, 200, 20)
- GUICtrlCreateLabel("Buff Spell to use first in battle (1 - 21) ", 55, 355)
- $BuffSpell1 = GUICtrlCreateInput("", 10, 350, 40, 20)
- GUICtrlCreateLabel("Maximum times to cast spell", 55, 380)
- $BuffCast1 = GUICtrlCreateInput("0", 10, 375, 40, 20)
- $AttackBox = GUICtrlCreateCheckbox("Check to use attack at start of battle", 260, 325, 200, 20)
- GUICtrlCreateLabel("Attack Spell to use first in battle (1 - 21) ", 305, 355)
- $AttackSpell1 = GUICtrlCreateInput("", 260, 350, 40, 20)
- GUICtrlCreateLabel("Maximum times to cast spell", 305, 380)
- $AttackCast1 = GUICtrlCreateInput("0", 260, 375, 40, 20)
- $HealBox = GUICtrlCreateCheckbox("Check to use healing spell when HP is low", 510, 325, 250, 20)
- GUICtrlCreateLabel("Healing spell to use in battle (1 - 21) ", 555, 355)
- $HealSpell1 = GUICtrlCreateInput("", 510, 350, 40, 20)
- GUICtrlCreateLabel("Cast spell when HP falls below %", 555, 380)
- $HealHPCast1 = GUICtrlCreateInput("33", 510, 375, 40, 20)
- GUICtrlCreateLabel("Only cast when SP is above %", 555, 405)
- $HealSPCast1 = GUICtrlCreateInput("33", 510, 400, 40, 20)
- $TurboBox = GUICtrlCreateCheckBox("Check to use 'turbo' mode - can speed up script but may affect stability", 10, 450, 400, 20)
- GUICtrlCreateGroup("", -99, -99, 1, 1)
- GUISetState(@SW_SHOW)
- While $guiExit <> 1
- $msg = GUIGetMsg()
- If $msg = $GUI_EVENT_CLOSE Then
- Exit
- EndIF
- If $msg = $InputSize1 Then
- $topLeft[0] = GUICtrlRead($InputSize1)
- $screenWidth = $bottomRight[0] - $topLeft[0]
- $screenHeight = $bottomRight[1] - $topLeft[1]
- GUICtrlSetData($InputSize5, $screenWidth)
- EndIf
- If $msg = $InputSize2 Then
- $topLeft[1] = GUICtrlRead($InputSize2)
- $screenWidth = $bottomRight[0] - $topLeft[0]
- $screenHeight = $bottomRight[1] - $topLeft[1]
- GUICtrlSetData($InputSize6, $screenHeight)
- EndIf
- If $msg = $InputSize3 Then
- $bottomRight[0] = GUICtrlRead($InputSize3)
- $screenWidth = $bottomRight[0] - $topLeft[0]
- $screenHeight = $bottomRight[1] - $topLeft[1]
- GUICtrlSetData($InputSize5, $screenWidth)
- EndIf
- If $msg = $InputSize4 Then
- $bottomRight[1] = GUICtrlRead($InputSize4)
- $screenWidth = $bottomRight[0] - $topLeft[0]
- $screenHeight = $bottomRight[1] - $topLeft[1]
- GUICtrlSetData($InputSize6, $screenHeight)
- EndIf
- If $msg = $choice_1 Then
- GUICtrlSetData($choice_text, "Takes a low level character through increasingly harder dungeons. Good for level 1 alts. Start with your character in Shikaakwa by Jona. Only lightly tested - please give me suggestions on how to improve this.")
- $grind_choice=1
- EndIf
- If $msg = $choice_2 Then
- GUICtrlSetData($choice_text, "Move your character to Bleakwoods D4 (Tsulas) away from the entrance. Your character must be able to complete both battles once without dying or the script will fail.")
- $grind_choice=2
- EndIf
- If $msg = $choice_3 Then
- GUICtrlSetData($choice_text, "Move your character to Bleakwoods A3 (Flo) away from the entrance. Your character must be able to complete the battles without dying or the script will fail.")
- $grind_choice=3
- EndIf
- If $msg = $choice_4 Then
- GUICtrlSetData($choice_text, "Move your character to Dunes F1 (Hector / Choppers) away from the entrance. Your character must be able to complete the battles without dying or the script will fail.")
- $grind_choice=4
- EndIf
- If $msg = $choice_5 Then
- GUICtrlSetData($choice_text, "Move your character to Underworld D2 (Worms / Octogums / Frogs) away from the entrance. Your character must be able to complete the battles without dying or the script will fail.")
- $grind_choice=5
- EndIf
- If $msg = $choice_6 Then
- GUICtrlSetData($choice_text, "Move your character to Underworld F4 (Charlotte / Choppers) away from the entrance. Your character must be able to complete the battles without dying or the script will fail.")
- $grind_choice=6
- EndIf
- If $msg = $choice_7 Then
- GUICtrlSetData($choice_text, "Move your character to Underworld A3 (Octogums / Green Dragons / Bubblers) away from the entrance. Your character must be able to complete the battles without dying or the script will fail.")
- $grind_choice=7
- EndIf
- If $msg = $choice_8 Then
- GUICtrlSetData($choice_text, "Move your character to Underworld B4 (William / Skeletons / Pirates) away from the entrance. Your character must be able to complete the battles without dying or the script will fail.")
- $grind_choice=8
- EndIf
- If $msg = $choice_9 Then
- GUICtrlSetData($choice_text, "Move your character to Underworld A4 (Elementals) away from the entrance. Your character must be able to complete the battles without dying or the script will fail.")
- $grind_choice=9
- EndIf
- If $msg = $choice_10 Then
- GUICtrlSetData($choice_text, "Generic grinder. Move your character near any dungeon entrance. This routine is only lightly tested and may not work on all dungeons. Your character must be able to complete the battles without dying or the script will fail.")
- $grind_choice=10
- EndIf
- If $msg = $choice_11 Then
- GUICtrlSetData($choice_text, "Arena - FF. Move your character to the first room in the arena with battles (not the lobby). Your character must be able to complete the battles in the first room without dying or the script will fail. If your character dies after that, it will return to the arena and start it again.")
- $grind_choice=11
- EndIf
- If $msg = $choice_12 Then
- GUICtrlSetData($choice_text, "Arena - SVA. Move your character to the first room in the arena with battles (not the lobby). Your character must be able to complete the battles in the first room without dying or the script will fail. If your character dies after that, it will return to the arena and start it again.")
- $grind_choice=12
- EndIf
- If $msg = $choice_13 Then
- GUICtrlSetData($choice_text, "Arena - BWA. Move your character to the first room in the arena with battles (not the lobby). Your character must be able to complete the battles in the first room without dying or the script will fail. If your character dies after that, it will return to the arena and start it again.")
- $grind_choice=13
- EndIf
- If $msg = $choice_14 Then
- GUICtrlSetData($choice_text, "Arena - DFA. Move your character to the first room in the arena with battles (not the lobby). Your character must be able to complete the battles in the first room without dying or the script will fail. If your character dies after that, it will return to the arena and start it again.")
- $grind_choice=14
- EndIf
- If $msg = $choice_15 Then
- GUICtrlSetData($choice_text, "Arena - BRA. Move your character to the first room in the arena with battles (not the lobby). Your character must be able to complete the battles in the first room without dying or the script will fail. If your character dies after that, it will return to the arena and start it again. (The script will probably hang if you reach the 7th floor rooms with no battles.)")
- $grind_choice=15
- EndIf
- If $msg = $choice_16 Then
- GUICtrlSetData($choice_text, "Arena - CWA. Move your character to the first room in the arena with battles (not the lobby). Your character DOES NOT need to be able to complete the battles in the first room without dying. If your character dies, it will return to the arena and start it again.")
- $grind_choice=16
- EndIf
- If $msg = $choice_17 Then
- GUICtrlSetData($choice_text, "Arena - UWA. Move your character to the first room in the arena with battles (not the lobby). Your character DOES NOT need to be able to complete the battles in the first room without dying. If your character dies, it will return to the arena and start it again.")
- $grind_choice=17
- EndIf
- If $msg = $choice_18 Then
- GUICtrlSetData($choice_text, "Move your character to Underworld C2 (Octogums / Water Worms) away from the entrance. Your character must be able to complete the battles without dying or the script will fail.")
- $grind_choice=18
- EndIf
- ; If $msg = $choice_19 Then
- ; GUICtrlSetData($choice_text, "Arena - PGA. Move your character to the first room in the arena with battles (not the lobby). Your character must be able to complete the battles in the first room without dying or the script will fail. If your character dies after that, it will return to the arena and start it again.")
- ; $grind_choice=19
- ; EndIf
- If ($msg = $ContinueButton1) AND ($grind_choice <> 0) Then
- ; check if buff is checked
- $BuffCheck = BitAnd(GUICtrlRead($BuffBox),$GUI_CHECKED)
- If $BuffCheck = 1 Then
- ; check to make sure spell # is between 1 - 21
- $BuffSpellNumber = GUICtrlRead($BuffSpell1)
- If ($BuffSpellNumber > 0) AND ($BuffSpellNumber < 22) Then
- $guiExit = 1
- Else
- ; need to display some sort of error - NOT DONE YET
- $BuffDisplayError = 1
- EndIf
- Else
- $guiExit = 1
- EndIf
- ; check if attack is checked
- $AttackCheck = BitAnd(GUICtrlRead($AttackBox),$GUI_CHECKED)
- If $AttackCheck = 1 Then
- ; check to make sure spell # is between 1 - 21
- $AttackSpellNumber = GUICtrlRead($AttackSpell1)
- If ($AttackSpellNumber > 0) AND ($AttackSpellNumber < 22) Then
- $guiExit = 1
- Else
- ; need to display some sort of error - NOT DONE YET
- $BuffDisplayError = 1
- EndIf
- Else
- $guiExit = 1
- EndIf
- ; check if heal is checked
- $HealCheck = BitAnd(GUICtrlRead($HealBox),$GUI_CHECKED)
- If $HealCheck = 1 Then
- ; check to make sure spell # is between 1 - 21
- $HealSpellNumber = GUICtrlRead($HealSpell1)
- If ($HealSpellNumber > 0) AND ($HealSpellNumber < 22) Then
- $guiExit = 1
- Else
- ; need to display some sort of error - NOT DONE YET
- $BuffDisplayError = 1
- EndIf
- ; check that HP level is between 1 - 100
- $HealHPCast = GUICtrlRead($HealHPCast1)
- If ($HealHPCast > 0) AND ($HealHPCast < 100) Then
- $guiExit = 1
- Else
- ; need to display some sort of error - NOT DONE YET
- $BuffDisplayError = 1
- EndIf
- ; check that SP level is between 1 - 100
- $HealSPCast = GUICtrlRead($HealSPCast1)
- If ($HealSPCast > 0) AND ($HealSPCast < 100) Then
- $guiExit = 1
- Else
- ; need to display some sort of error - NOT DONE YET
- $BuffDisplayError = 1
- EndIf
- Else
- $guiExit = 1
- EndIf
- EndIf
- Sleep(50)
- WEnd
- GUISetState(@SW_HIDE)
- ; 0 if not checked, 1 if checked
- $BuffCheck = BitAnd(GUICtrlRead($BuffBox),$GUI_CHECKED)
- $AttackCheck = BitAnd(GUICtrlRead($AttackBox),$GUI_CHECKED)
- $HealCheck = BitAnd(GUICtrlRead($HealBox),$GUI_CHECKED)
- $TurboCheck = BitAnd(GUICtrlRead($TurboBox),$GUI_CHECKED)
- $BuffMaxCast = GUICtrlRead($BuffCast1)
- $AttackMaxCast = GUICtrlRead($AttackCast1)
- $HealHPCast = GUICtrlRead($HealHPCast1)
- $HealSPCast = GUICtrlRead($HealSPCast1)
- $HealHPCoord = int ((($topLeft[0] + (139 * ($HealHPCast * .01))) + 88))
- $HealSPCoord = int ((($topLeft[0] + (139 * ($HealSPCast * .01))) + 245))
- WinActivate ("[CLASS:IEFrame]", "")
- WinActivate ("[CLASS:MozillaUIWindowClass]", "")
- WinActivate ("[CLASS:MozillaWindowClass]", "")
- $entireTime = TimerInit()
- While $repeatagain < 6000
- $startTime = TimerInit()
- $TotalXP=0
- ; for casting spells only a certain number of times
- $BuffRemain = $BuffMaxCast
- $AttackRemain = $AttackMaxCast
- If $grind_choice=1 Then
- NewbGrind()
- EndIf
- If $grind_choice=2 Then
- GrindTsulas2()
- EndIf
- If $grind_choice=3 Then
- GrindBW_A3()
- EndIf
- If $grind_choice=4 Then
- GrindDD_F1()
- EndIf
- If $grind_choice=5 Then
- GrindUW_D2()
- EndIf
- If $grind_choice=6 Then
- GrindUW_F4()
- EndIf
- If $grind_choice=7 Then
- GrindDD_E3()
- EndIf
- If $grind_choice=8 Then
- GrindUW_B4()
- EndIf
- If $grind_choice=9 Then
- GrindDD_A5()
- EndIf
- If $grind_choice=10 Then
- Generic()
- EndIf
- If $grind_choice=11 Then
- $ArenaNumber = 1
- ArenaGrind2()
- EndIf
- If $grind_choice=12 Then
- $ArenaNumber = 2
- ArenaGrind2()
- EndIf
- If $grind_choice=13 Then
- $ArenaNumber = 3
- ArenaGrind2()
- EndIf
- If $grind_choice=14 Then
- $ArenaNumber = 4
- ArenaGrind2()
- EndIf
- If $grind_choice=15 Then
- $ArenaNumber = 5
- ArenaGrind2()
- EndIf
- If $grind_choice=16 Then
- $ArenaNumber = 6
- ArenaCWA()
- EndIf
- If $grind_choice=17 Then
- $ArenaNumber = 7
- ArenaUWA()
- EndIf
- If $grind_choice=18 Then
- GrindDD_D3()
- EndIf
- If $grind_choice=19 Then
- $ArenaNumber = 8
- ArenaGrind2()
- EndIf
- $EntireXP = $EntireXP + $TotalXP
- $timeElapsed = TimerDiff($startTime)
- $entireTimeElapsed = TimerDiff($entireTime)
- $TotalRunCount = $TotalRunCount + 1
- ;ConsoleWrite("Total Runs=" & $TotalRunCount & @CRLF & "Run Time=" & int($timeElapsed/1000) & " seconds" & @CRLF & "Run XP/Min=" & int($TotalXP / ($timeElapsed / 60000)) & @CRLF & "Total Run Time=" & int($entireTimeElapsed / 1000) & @CRLF & "Total XP/Min=" & int($EntireXP / ($entireTimeElapsed / 60000)) & @CRLF)
- ;ConsoleWrite("TotalXP=" & $TotalXP & @CRLF)
- ;ConsoleWrite("EntireXP=" & $EntireXP & @CRLF & @CRLF)
- If $TurboCheck = 0 Then
- MsgBox(160, "Total Runs " & $TotalRunCount, "Total Runs=" & $TotalRunCount & @CRLF & "Run Time=" & int($timeElapsed/1000) & " seconds" & @CRLF & "Run XP/Min=" & int($TotalXP / ($timeElapsed / 60000)) & @CRLF & @CRLF & "Total Run Time=" & int($entireTimeElapsed/1000) & @CRLF & "Total XP/Min=" & int($EntireXP / ($entireTimeElapsed / 60000)) & @CRLF & @CRLF & "TotalXP=" & $TotalXP & @CRLF & "EntireXP=" & $EntireXP & @CRLF, 5)
- Else
- MsgBox(160, "Total Runs " & $TotalRunCount, "Total Runs=" & $TotalRunCount & @CRLF & "Run Time=" & int($timeElapsed/1000) & " seconds" & @CRLF & "Run XP/Min=" & int($TotalXP / ($timeElapsed / 60000)) & @CRLF & @CRLF & "Total Run Time=" & int($entireTimeElapsed/1000) & @CRLF & "Total XP/Min=" & int($EntireXP / ($entireTimeElapsed / 60000)) & @CRLF & @CRLF & "TotalXP=" & $TotalXP & @CRLF & "EntireXP=" & $EntireXP & @CRLF, 2)
- EndIf
- $repeatagain = $repeatagain + 1
- WEnd
- Func AttackGrid()
- ; bottom left
- MouseMove (($topLeft[0] + 548), ($topLeft[1] + 390), 1)
- MouseClick("left")
- ; bottom right
- MouseMove (($topLeft[0] + 703), ($topLeft[1] + 385), 1)
- MouseClick("left")
- ; middle right
- MouseMove (($topLeft[0] + 667), ($topLeft[1] + 300), 1)
- MouseClick("left")
- ; additional one for BRA Grimalkins
- MouseMove (($topLeft[0] + 667), ($topLeft[1] + 330), 1)
- MouseClick("left")
- ; middle left
- MouseMove (($topLeft[0] + 500), ($topLeft[1] + 290), 1)
- MouseClick("left")
- ; top right
- MouseMove (($topLeft[0] + 616), ($topLeft[1] + 205), 1)
- MouseClick("left")
- ; additional one for BRA Grimalkins
- MouseMove (($topLeft[0] + 616), ($topLeft[1] + 225), 1)
- MouseClick("left")
- ; top left
- MouseMove (($topLeft[0] + 449), ($topLeft[1] + 190), 1)
- MouseClick("left")
- EndFunc
- Func findAttack2()
- $coord2 = PixelSearch($topLeft[0]+333, $topLeft[1]+200, $topLeft[0]+338, $topLeft[1]+343, $AttackColor1, 10)
- If @error=1 Then
- $coord[0]=1
- $coord[1]=1
- If $TurboCheck = 0 Then
- Sleep(200)
- Else
- Sleep(20)
- EndIf
- Return ($coord)
- EndIf
- ; search again in case it found pixels in mid-search
- Sleep(300)
- $coord2 = PixelSearch($topLeft[0]+333, $topLeft[1]+200, $topLeft[0]+338, $topLeft[1]+343, $AttackColor1, 10)
- If @error=1 Then
- $coord[0]=1
- $coord[1]=1
- If $TurboCheck = 0 Then
- Sleep(200)
- Else
- Sleep(20)
- EndIf
- Return ($coord)
- EndIf
- $coord[0] = $topLeft[0] + 345
- $coord[1] = $coord2[1] + 30
- Return($coord)
- EndFunc
- Func Terminate()
- Exit
- EndFunc
- Func Battle($x, $y)
- ; first - make sure pad is there
- $padwait = 0
- While $padwait = 0
- $waitCoord = PixelSearch($x - 10,$y - 10,$x + 10,$y + 10,$PadColor1, 5)
- If @error <> 1 Then
- $padwait=1
- EndIf
- Sleep(100)
- WEnd
- ; get section to check for screen change
- $BattleCheckSum = PixelChecksum(($topLeft[0]+658),($topLeft[1]+478),($topLeft[0]+725),($topLeft[1]+493))
- ; now enter battle
- MouseMove($x, $y, 3)
- ; this helps with lag stability - 11/06
- If $TurboCheck = 0 Then
- Sleep(1000)
- Else
- Sleep(50)
- EndIf
- MouseClick("left")
- If $TurboCheck = 0 Then
- Sleep(100)
- Else
- Sleep(10)
- EndIf
- ; click on character check
- While CharClickCheck() = 1
- MouseMove($x, $y ,3)
- If $TurboCheck = 0 Then
- Sleep(100)
- EndIf
- MouseClick("left")
- If $TurboCheck = 0 Then
- Sleep(100)
- EndIf
- WEnd
- ; if battle hasn't started after 3 seconds, maybe battle pad
- ; wasn't clicked - click it again
- $EnterBattleCheck = 0
- While $BattleCheckSum = PixelChecksum(($topLeft[0]+658),($topLeft[1]+478),($topLeft[0]+725),($topLeft[1]+493))
- Sleep(100)
- $EnterBattleCheck = $EnterBattleCheck + 1
- If $EnterBattleCheck > 40 Then
- ; search for pad in vicinity of where you previously clicked
- $BattleCheckCoord = PixelSearch($x-50,$y-40,$x+5,$y+5,$PadColor2, 5)
- ;Battle($ArenaCoord[0]+3, $ArenaCoord[1]+13)
- MouseMove($BattleCheckCoord[0]+3, $BattleCheckCoord[1]+13, 3)
- Sleep(100)
- MouseClick("left")
- Sleep(500)
- EndIf
- WEnd
- ; this section checks to see if you immediately exit a battle
- ; for multiplayer - the battle is already over
- ; sleep is necessary so we skip screen change to blank
- Sleep(1000)
- If $BattleCheckSum = PixelChecksum(($topLeft[0]+658),($topLeft[1]+478),($topLeft[0]+725),($topLeft[1]+493)) Then
- $NumberOfBattles=$NumberOfBattles+1
- Return
- EndIf
- ; kill all creatures
- ;$BattleCheckSum = PixelCheckSum(186,400,205,414)
- $BattleCheckSum = PixelCheckSum(($topLeft[0]+75),($topLeft[1]+253),($topLeft[0]+94),($topLeft[1]+267))
- ; buff spells
- $BuffRemain = $BuffRemain - 1
- If ($BuffCheck = 1) AND ($BuffRemain >= 0) Then
- ; do findattack2 until battlecoord > 1
- $battleCoord[0] = 1
- While $battleCoord[0] = 1
- $battleCoord = findAttack2()
- WEnd
- $battleCoord[1] = $battleCoord[1] + 22
- ; click on skill
- MouseMove($battleCoord[0], $battleCoord[1], 1)
- If $TurboCheck = 0 Then
- Sleep(200)
- Else
- Sleep(20)
- EndIf
- MouseClick("left")
- ; click on astral travel 3 / skill of choice
- If $TurboCheck = 0 Then
- Sleep(500)
- Else
- Sleep(50)
- EndIf
- MouseMove($topLeft[0]+$BuffCoords[(($BuffSpellNumber*2)-1)],$topLeft[1]+$BuffCoords[(($BuffSpellNumber*2))], 1)
- If $TurboCheck = 0 Then
- Sleep(200)
- Else
- Sleep(20)
- EndIf
- MouseClick("left")
- ; click on character
- If $TurboCheck = 0 Then
- Sleep(200)
- Else
- Sleep(20)
- EndIf
- MouseMove($topLeft[0]+213, $topLeft[1]+200, 1)
- If $TurboCheck = 0 Then
- Sleep(200)
- Else
- Sleep(20)
- EndIf
- MouseClick("left")
- ; click on cancel (if not enough sp)
- MouseMove($topLeft[0]+368, $topLeft[1]+415, 1)
- If $TurboCheck = 0 Then
- Sleep(200)
- Else
- Sleep(20)
- EndIf
- MouseClick("left")
- If $TurboCheck = 0 Then
- Sleep(200)
- Else
- Sleep(20)
- EndIf
- ; end buff
- EndIf
- ; attack spells
- $AttackRemain = $AttackRemain - 1
- If ($AttackCheck = 1) AND ($AttackRemain >= 0) Then
- ; do findattack2 until battlecoord > 1
- $battleCoord[0] = 1
- While $battleCoord[0] = 1
- $battleCoord = findAttack2()
- WEnd
- $battleCoord[1] = $battleCoord[1] + 22
- ; click on skill
- MouseMove($battleCoord[0], $battleCoord[1], 1)
- If $TurboCheck = 0 Then
- Sleep(200)
- Else
- Sleep(20)
- EndIf
- MouseClick("left")
- ; click on attack skill of choice
- If $TurboCheck = 0 Then
- Sleep(500)
- Else
- Sleep(50)
- EndIf
- MouseMove($topLeft[0]+$BuffCoords[(($AttackSpellNumber*2)-1)],$topLeft[1]+$BuffCoords[(($AttackSpellNumber*2))], 1)
- If $TurboCheck = 0 Then
- Sleep(200)
- Else
- Sleep(20)
- EndIf
- MouseClick("left")
- ; click on enemies
- If $TurboCheck = 0 Then
- Sleep(200)
- Else
- Sleep(20)
- EndIf
- AttackGrid()
- ; click on cancel (if not enough sp)
- MouseMove($topLeft[0]+368, $topLeft[1]+415, 1)
- If $TurboCheck = 0 Then
- Sleep(200)
- Else
- Sleep(20)
- EndIf
- MouseClick("left")
- If $TurboCheck = 0 Then
- Sleep(200)
- Else
- Sleep(20)
- EndIf
- ; end buff
- EndIf
- $AttackPanic1Time = TimerInit()
- ; $BattleIsDone - set to 1 if BattleCheckSum confirms battle is over
- $BattleIsDone = 0
- ;While $BattleCheckSum = PixelCheckSum(($topLeft[0]+75),($topLeft[1]+253),($topLeft[0]+94),($topLeft[1]+267))
- While $BattleIsDone = 0
- ; first check for healing
- ; check for health below HealHPCoord
- If ($HealCheck = 1) Then
- $HealCheckPixel = PixelGetColor(($HealHPCoord), ($topLeft[1]+458))
- $SpellCheckPixel = PixelGetColor(($HealSPCoord), ($topLeft[1]+458))
- If $HealCheckPixel = $BlankColor1 Then
- If $SpellCheckPixel <> $BlankColor1 Then
- ; do findattack2 until battlecoord > 1
- $battleCoord[0] = 1
- While $battleCoord[0] = 1
- $battleCoord = findAttack2()
- WEnd
- $battleCoord[1] = $battleCoord[1] + 22
- ; click on skill
- MouseMove($battleCoord[0], $battleCoord[1], 1)
- If $TurboCheck = 0 Then
- Sleep(200)
- Else
- Sleep(20)
- EndIf
- MouseClick("left")
- ; click on heal skill of choice
- If $TurboCheck = 0 Then
- Sleep(500)
- Else
- Sleep(50)
- EndIf
- MouseMove($topLeft[0]+$BuffCoords[(($HealSpellNumber*2)-1)],$topLeft[1]+$BuffCoords[(($HealSpellNumber*2))], 1)
- If $TurboCheck = 0 Then
- Sleep(200)
- Else
- Sleep(20)
- EndIf
- MouseClick("left")
- ; click on character
- If $TurboCheck = 0 Then
- Sleep(200)
- Else
- Sleep(20)
- EndIf
- MouseMove($topLeft[0]+213, $topLeft[1]+200, 1)
- If $TurboCheck = 0 Then
- Sleep(200)
- Else
- Sleep(20)
- EndIf
- MouseClick("left")
- ; getting lag problems so lets click twice
- Sleep (100)
- MouseClick("left")
- ; click on cancel (if not enough sp)
- MouseMove($topLeft[0]+368, $topLeft[1]+415, 1)
- If $TurboCheck = 0 Then
- Sleep(200)
- Else
- Sleep(20)
- EndIf
- MouseClick("left")
- If $TurboCheck = 0 Then
- Sleep(200)
- Else
- Sleep(20)
- EndIf
- ; end heal
- EndIf
- EndIf
- EndIf
- ; then do attack
- $battleCoord = findAttack2()
- If $battleCoord[0] > 1 Then
- MouseMove($battleCoord[0], $battleCoord[1], 1)
- ; Attack every possible position.
- If $TurboCheck = 0 Then
- Sleep(200)
- Else
- Sleep(20)
- EndIf
- MouseClick("left")
- If $TurboCheck = 0 Then
- Sleep(200)
- Else
- Sleep(20)
- EndIf
- AttackGrid()
- $AttackPanic1Time = TimerInit()
- EndIf
- $AttackPanic2Time = TimerDiff($AttackPanic1Time)
- If $AttackPanic2Time > 12000 Then
- ; first - click on cancel
- MouseMove($topLeft[0]+368, $topLeft[1]+415, 1)
- Sleep(200)
- MouseClick("left")
- ; then attack again
- AttackGrid()
- $AttackPanic1Time = TimerInit()
- EndIf
- ;$BattleCheckSum = PixelCheckSum(($topLeft[0]+75),($topLeft[1]+253),($topLeft[0]+94),($topLeft[1]+267))
- If $BattleCheckSum <> PixelCheckSum(($topLeft[0]+75),($topLeft[1]+253),($topLeft[0]+94),($topLeft[1]+267)) Then
- Sleep(500)
- If $BattleCheckSum <> PixelCheckSum(($topLeft[0]+75),($topLeft[1]+253),($topLeft[0]+94),($topLeft[1]+267)) Then
- $BattleIsDone=1
- EndIf
- EndIf
- WEnd
- ; fight over - click box
- ; check HP first
- $BlankPixel = PixelGetColor(($topLeft[0]+182), ($topLeft[1]+458))
- $BlankPixel2 = PixelGetColor(($topLeft[0]+216), ($topLeft[1]+458))
- $BlankPixel3 = PixelGetColor(($topLeft[0]+226), ($topLeft[1]+458))
- MouseMove(($topLeft[0]+372),($topLeft[1]+364),1)
- ; a little pause to see your stats
- If $TurboCheck = 0 Then
- Sleep(2000)
- Else
- Sleep(100)
- EndIf
- $BattleCheckSum = PixelCheckSum(($topLeft[0]+75),($topLeft[1]+253),($topLeft[0]+94),($topLeft[1]+267))
- MouseClick("left")
- ; another death check
- If (DeathCheck() = 1) Then
- $continue=2
- MsgBox(8192, "You died! (battle check)", "You died!", 1)
- Else
- While $BattleCheckSum = PixelCheckSum(($topLeft[0]+75),($topLeft[1]+253),($topLeft[0]+94),($topLeft[1]+267))
- Sleep(100)
- WEnd
- ; this helps with lag stability - 11/06
- If $TurboCheck = 0 Then
- Sleep(500)
- Else
- Sleep(50)
- EndIf
- EndIf
- $NumberOfBattles=$NumberOfBattles+1
- EndFunc
- Func DungeonPad($x, $y)
- ; checks for changes in bottom right corner
- MouseMove($x, $y ,3)
- Sleep(100)
- $DungeonCheckSum = PixelChecksum(($topLeft[0]+658),($topLeft[1]+474),($topLeft[0]+725),($topLeft[1]+493))
- MouseClick("left")
- Sleep(100)
- While CharClickCheck() = 1
- MouseMove($x, $y, 3)
- Sleep(100)
- MouseClick("left")
- Sleep(100)
- WEnd
- While $DungeonCheckSum = PixelChecksum(($topLeft[0]+658),($topLeft[1]+474),($topLeft[0]+725),($topLeft[1]+493))
- If $TurboCheck = 0 Then
- Sleep(1000)
- Else
- Sleep(50)
- EndIf
- WEnd
- EndFunc
- Func DungeonPad2($x, $y)
- ; checks for changes in top right corner
- MouseMove($x, $y ,3)
- Sleep(100)
- $DungeonCheckSum = PixelChecksum(($topLeft[0]+673),($topLeft[1]+63),($topLeft[0]+709),($topLeft[1]+83))
- MouseClick("left")
- Sleep(100)
- While CharClickCheck() = 1
- MouseMove($x, $y, 3)
- Sleep(100)
- MouseClick("left")
- Sleep(100)
- WEnd
- While $DungeonCheckSum = PixelChecksum(($topLeft[0]+673),($topLeft[1]+63),($topLeft[0]+709),($topLeft[1]+83))
- If $TurboCheck = 0 Then
- Sleep(1000)
- Else
- Sleep(50)
- EndIf
- WEnd
- EndFunc
- Func WaitForPads()
- $padwait=1
- While $padwait < 2
- ; death check
- If (DeathCheck() = 1) Then
- $continue = 2
- $padwait=$padwait+1
- MsgBox(8192, "You died! (Padcheck)", "You died!", 1)
- EndIf
- ; 117 avoids the non play area, 177 avoids entrance in arenas
- ; these should probably be 117?
- ; UW needs to be 117 for DD_E3
- $waitCoord = PixelSearch($topLeft[0],$topLeft[1],$bottomRight[0],$bottomRight[1]-177,$ExitColor1, 5)
- If @error <> 1 Then
- $padwait=$padwait+1
- EndIf
- $waitCoord = PixelSearch($topLeft[0],$topLeft[1],$bottomRight[0],$bottomRight[1]-177,$PadColor1, 5)
- If @error <> 1 Then
- $padwait=$padwait+1
- EndIf
- $waitCoord = PixelSearch($topLeft[0],$topLeft[1],$bottomRight[0],$bottomRight[1]-117,$UWExitColor1, 5)
- If @error <> 1 Then
- $padwait=$padwait+1
- EndIf
- If $TurboCheck = 0 Then
- Sleep(500)
- Else
- Sleep(50)
- EndIf
- WEnd
- EndFunc
- Func GrindTsulas2()
- $TsulasHP = 1
- While $TsulasHP = 1
- ; enter Tsulas
- DungeonPad(($topLeft[0]+369),($topLeft[1]+283))
- WaitForPads()
- ; enter first battle - bottom - 4 creatures
- Battle(($topLeft[0]+278),($topLeft[1]+410))
- WaitForPads()
- $TotalXP=$TotalXP+950
- ;$BlankPixel = PixelGetColor(($topLeft[0]+176), ($topLeft[1]+455))
- If ($BlankPixel = $BlankColor1) Then
- $TsulasHP = 2
- Else
- ; click to exit Tsulas
- ;DungeonPad(676, 316)
- DungeonPad(($topLeft[0]+565),($topLeft[1]+169))
- ; move away from Tsulas
- CharMove(($topLeft[0]+444),($topLeft[1]+406))
- If $TurboCheck = 0 Then
- Sleep(1000)
- Else
- Sleep(50)
- EndIf
- EndIf
- WEnd
- ; enter second battle - 4 creatures
- Battle(($topLeft[0]+228),($topLeft[1]+217))
- WaitForPads()
- ; click to exit Tsulas
- DungeonPad(($topLeft[0]+565),($topLeft[1]+169))
- ; move away from Tsulas
- CharMove(($topLeft[0]+444),($topLeft[1]+406))
- If $TurboCheck = 0 Then
- Sleep(1000)
- Else
- Sleep(50)
- EndIf
- $TotalXP=$TotalXP+550
- EndFunc
- Func GrindBW_A3()
- ; enter Bleakwoods A3
- DungeonPad(($topLeft[0]+490),($topLeft[1]+251))
- WaitForPads()
- ; enter first battle - right
- Battle(($topLeft[0]+514),($topLeft[1]+263))
- WaitForPads()
- ; enter second battle - left
- Battle(($topLeft[0]+225),($topLeft[1]+215))
- WaitForPads()
- ; click to exit Bleakwoods A3
- DungeonPad(($topLeft[0]+609),($topLeft[1]+407))
- WaitForPads()
- ; move away from Bleakwoods A3
- CharMove(($topLeft[0]+396),($topLeft[1]+296))
- If $TurboCheck = 0 Then
- Sleep(1000)
- Else
- Sleep(50)
- EndIf
- $TotalXP=$TotalXP+1617
- EndFunc
- Func GrindDD_F1()
- ; enter Dunes F1
- Battle(($topLeft[0]+466),($topLeft[1]+264))
- WaitForPads()
- ; enter first battle
- Battle(($topLeft[0]+321),($topLeft[1]+263))
- WaitForPads()
- ; enter second battle
- Battle(($topLeft[0]+418),($topLeft[1]+192))
- WaitForPads()
- ; enter third battle
- DungeonPad(($topLeft[0]+370),($topLeft[1]+120))
- WaitForPads()
- ; exit Dunes F1
- DungeonPad(($topLeft[0]+202),($topLeft[1]+433))
- WaitForPads()
- ; move away from Dunes F1
- CharMove(($topLeft[0]+362),($topLeft[1]+164))
- If $TurboCheck = 0 Then
- Sleep(1000)
- Else
- Sleep(50)
- EndIf
- $TotalXP=$TotalXP+3750
- EndFunc
- Func GrindUW_D2()
- ; enter Underworld D2
- DungeonPad(($topLeft[0]+369),($topLeft[1]+431))
- WaitForPads()
- ; enter third battle
- Battle(($topLeft[0]+562),($topLeft[1]+263))
- WaitForPads()
- ; enter first battle
- Battle(($topLeft[0]+395),($topLeft[1]+347))
- WaitForPads()
- ; enter second battle
- Battle(($topLeft[0]+203),($topLeft[1]+180))
- WaitForPads()
- ; exit Underworld D2
- DungeonPad(($topLeft[0]+57),($topLeft[1]+467))
- ; move away from Underworld D2
- CharMove(($topLeft[0]+279),($topLeft[1]+377))
- If $TurboCheck = 0 Then
- Sleep(1000)
- Else
- Sleep(50)
- EndIf
- $TotalXP=$TotalXP+3610
- EndFunc
- Func GrindUW_F4()
- ; enter Underworld F4
- DungeonPad(($topLeft[0]+657), ($topLeft[1]+335))
- WaitForPads()
- ; enter first battle
- Battle(($topLeft[0]+394), ($topLeft[1]+203))
- WaitForPads()
- ; enter second battle
- Battle(($topLeft[0]+514), ($topLeft[1]+287))
- WaitForPads()
- ; enter third battle
- Battle(($topLeft[0]+466), ($topLeft[1]+311))
- WaitForPads()
- ; exit Underworld F4
- DungeonPad(($topLeft[0]+177), ($topLeft[1]+382))
- ; move away from Underworld F4
- CharMove(($topLeft[0]+540), ($topLeft[1]+309))
- If $TurboCheck = 0 Then
- Sleep(1000)
- Else
- Sleep(50)
- EndIf
- $TotalXP=$TotalXP+4787
- EndFunc
- Func Generic()
- ; enter dungeon
- ; Find pad
- $GenericContinue = 1
- $genericCoord = PixelSearch($topLeft[0],$topLeft[1],$bottomRight[0],$bottomRight[1]-119,$PadColor2, 5)
- If @error=1 Then
- MouseMove(($topLeft[0]+433), ($topLeft[1]+390), 1)
- If $TurboCheck = 0 Then
- Sleep(100)
- Else
- Sleep(20)
- EndIf
- MouseClick("left")
- If $TurboCheck = 0 Then
- Sleep(1000)
- Else
- Sleep(50)
- EndIf
- $genericCoord = PixelSearch($topLeft[0],$topLeft[1],$bottomRight[0],$bottomRight[1]-119,$PadColor2, 5)
- EndIf
- $GenericEntrance[0] = $genericCoord[0]
- $GenericEntrance[1] = $genericCoord[1]
- DungeonPad($genericCoord[0]+3, $genericCoord[1]+13)
- WaitForPads()
- ; Find Battle
- While $GenericContinue = 1
- sleep(500)
- $genericCoord = PixelSearch($topLeft[0],$topLeft[1],$bottomRight[0],$bottomRight[1]-119,$PadColor2, 5)
- $CheckPixel = PixelSearch($genericCoord[0],$genericCoord[1]+29,$genericCoord[0],$genericCoord[1]+38,0xFFFFFF, 5)
- If @error = 0 Then
- Battle($genericCoord[0]+3, $genericCoord[1]+13)
- WaitForPads()
- Else
- $newGenCoord[0]=$genericCoord[0]
- $newGenCoord[1]=$genericCoord[1]
- $genericCoord = PixelSearch($topLeft[0],$newGenCoord[1]+40,$bottomRight[0],$bottomRight[1]-119,$PadColor2, 5)
- If @error=1 Then
- $GenericContinue = 2
- Else
- Battle($genericCoord[0]+3, $genericCoord[1]+13)
- WaitForPads()
- EndIf
- EndIf
- WEnd
- ; exit dungeon
- $genericCoord = PixelSearch($topLeft[0],$topLeft[1],$bottomRight[0],$bottomRight[1]-119,$PadColor2, 5)
- DungeonPad($genericCoord[0]+3, $genericCoord[1]+13)
- WaitForPads()
- ; move away from dungeon
- CharMove(($GenericEntrance[0]+50), ($GenericEntrance[1]))
- CharMove(($GenericEntrance[0]), ($GenericEntrance[1]-50))
- CharMove(($GenericEntrance[0]-50), ($GenericEntrance[1]))
- CharMove(($GenericEntrance[0]-50), ($GenericEntrance[1]+50))
- If $TurboCheck = 0 Then
- Sleep(1000)
- Else
- Sleep(50)
- EndIf
- $TotalXP=$TotalXP+1
- EndFunc
- Func ArenaCWA()
- ; start script in arena in first room with battles (not in lobby)
- ; if you die, you will return to the arena and start over
- ; if you make it through, you need to stop the script!
- ; this one is different so you do NOT need to be able to
- ; survive through the first room!
- ;
- ; ability to repeat this arena not working yet
- $continue = 1
- ; Find Battle
- While $continue = 1
- ; **** This section may need some work
- CharMove(($topLeft[0]+374), ($topLeft[1]+256))
- CharMove(($topLeft[0]+389), ($topLeft[1]+313))
- ; find white pad
- WaitForPads()
- $arenaCoord = PixelSearch($topLeft[0],$topLeft[1],$bottomRight[0],$bottomRight[1]-119,$ExitColor1)
- If @error=1 Then
- $exitCoord[0] = $topLeft[0]
- $exitCoord[1] = $topLeft[1]
- Else
- $exitCoord[0]=$arenaCoord[0]
- $exitCoord[1]=$arenaCoord[1]
- EndIf
- $battleCheck = 1
- While $battleCheck = 1
- ; next search for battle pads
- WaitForPads()
- $arenaCoord = PixelSearch($topLeft[0],$topLeft[1],$bottomRight[0],$bottomRight[1]-119,$PadColor1)
- If @error=1 Then
- $battleCheck = 2
- Else
- Battle($arenaCoord[0], $arenaCoord[1])
- WaitForPads()
- $TotalXP=$TotalXP+$CWAXP[$NumberOfBattles]
- EndIf
- Wend
- WaitForPads()
- ; death check
- If (DeathCheck() = 1) Then
- $continue = 2
- MsgBox(8192, "You died! (arena check 1)", "You died!", 1)
- Else
- $arenaCoord = PixelSearch($topLeft[0],$topLeft[1],$bottomRight[0],$bottomRight[1]-119,$ExitColor1)
- If (($arenaCoord[0] = $exitCoord[0]) and ($arenaCoord[1] = $exitCoord[1])) Then
- $arenaCoord = PixelSearch($topLeft[0],$exitCoord[1]+3,$bottomRight[0],$bottomRight[1]-119,$ExitColor1)
- DungeonPad($arenaCoord[0],$arenaCoord[1])
- Else
- DungeonPad($arenaCoord[0],$arenaCoord[1])
- EndIf
- EndIf
- ; might need to check more than once
- If (DeathCheck() = 1) Then
- $continue = 2
- MsgBox(8192, "You died! (arena check 2)", "You died!", 1)
- EndIf
- WEnd
- ; died - remove last battle XP
- $TotalXP=$TotalXP-$CWAXP[$NumberOfBattles]
- ReturnToArena()
- EndFunc
- Func ArenaUWA()
- ; start script in arena in first room with battles (not in lobby)
- ; if you die, you will return to the arena and start over
- ; if you make it through, you need to stop the script!
- ; this one is different so you do NOT need to be able to
- ; survive through the first room!
- ;
- ; first room
- ; ability to repeat this arena not working yet
- $continue = 1
- ; Find Battle
- While $continue = 1
- ; **** This section may need some work
- CharMove(($topLeft[0]+374), ($topLeft[1]+256))
- CharMove(($topLeft[0]+389), ($topLeft[1]+313))
- ; find white pad
- WaitForPads()
- $arenaCoord = PixelSearch($topLeft[0],$topLeft[1],$bottomRight[0],$bottomRight[1]-119,$ExitColor1)
- If @error=1 Then
- $exitCoord[0] = $topLeft[0]
- $exitCoord[1] = $topLeft[1]
- Else
- $exitCoord[0]=$arenaCoord[0]
- $exitCoord[1]=$arenaCoord[1]
- EndIf
- $battleCheck = 1
- While $battleCheck = 1
- ; next search for battle pads
- WaitForPads()
- $arenaCoord = PixelSearch($topLeft[0],$topLeft[1],$bottomRight[0],$bottomRight[1]-119,$PadColor1)
- If @error=1 Then
- $battleCheck = 2
- Else
- Battle($arenaCoord[0], $arenaCoord[1])
- WaitForPads()
- $TotalXP=$TotalXP+$UWAXP[$NumberOfBattles]
- EndIf
- Wend
- WaitForPads()
- ; death check
- If (DeathCheck() = 1) Then
- $continue = 2
- MsgBox(8192, "You died! (arena check 1)", "You died!", 1)
- Else
- $arenaCoord = PixelSearch($topLeft[0],$topLeft[1],$bottomRight[0],$bottomRight[1]-119,$ExitColor1)
- If (($arenaCoord[0] = $exitCoord[0]) and ($arenaCoord[1] = $exitCoord[1])) Then
- $arenaCoord = PixelSearch($topLeft[0],$exitCoord[1]+3,$bottomRight[0],$bottomRight[1]-119,$ExitColor1)
- DungeonPad($arenaCoord[0],$arenaCoord[1])
- Else
- DungeonPad($arenaCoord[0],$arenaCoord[1])
- EndIf
- EndIf
- ; might need to check more than once
- If (DeathCheck() = 1) Then
- $continue = 2
- MsgBox(8192, "You died! (arena check 2)", "You died!", 1)
- EndIf
- WEnd
- ; died - remove last battle XP
- $TotalXP=$TotalXP-$UWAXP[$NumberOfBattles]
- ReturnToArena()
- EndFunc
- Func NewbGrind()
- ; start script in Shikaakwa
- ;
- DungeonPad2(($topLeft[0]+706),($topLeft[1]+432))
- ;go to A3
- DungeonPad2(($topLeft[0]+154),($topLeft[1]+106))
- ;go to A2
- DungeonPad2(($topLeft[0]+226),($topLeft[1]+95))
- ; grind A2 until HP is 100% when done
- $NewbHP=2
- While $NewbHP > 1
- $NewbHP = 1
- ; enter Bellroot A2
- DungeonPad(($topLeft[0]+201),($topLeft[1]+372))
- WaitForPads()
- ; enter first battle - left
- Battle(($topLeft[0]+178),($topLeft[1]+336))
- WaitForPads()
- If ($BlankPixel3 = $BlankColor1) Then
- $NewbHP = $NewbHP + 1
- EndIf
- ; enter 2nd battle - middle
- Battle(($topLeft[0]+297),($topLeft[1]+227))
- WaitForPads()
- If ($BlankPixel3 = $BlankColor1) Then
- $NewbHP = $NewbHP + 1
- EndIf
- ; enter 3rd battle - right
- Battle(($topLeft[0]+513),($topLeft[1]+287))
- WaitForPads()
- If ($BlankPixel3 = $BlankColor1) Then
- $NewbHP = $NewbHP + 1
- EndIf
- ; click to exit A2
- DungeonPad(($topLeft[0]+609),($topLeft[1]+408))
- ; move away from A2
- CharMove(($topLeft[0]+431),($topLeft[1]+361))
- If $TurboCheck = 0 Then
- Sleep(1000)
- Else
- Sleep(50)
- EndIf
- WEnd
- ; go to A1
- DungeonPad2(($topLeft[0]+417),($topLeft[1]+95))
- ; grind A1 until HP is 100% when done
- $NewbHP=2
- While $NewbHP > 1
- $NewbHP = 1
- ; enter Bellroot A1
- DungeonPad(($topLeft[0]+585),($topLeft[1]+181))
- WaitForPads()
- ; enter first battle
- Battle(($topLeft[0]+250),($topLeft[1]+276))
- WaitForPads()
- If ($BlankPixel2 = $BlankColor1) Then
- $NewbHP = $NewbHP + 1
- EndIf
- ; enter 2nd battle
- Battle(($topLeft[0]+465),($topLeft[1]+264))
- WaitForPads()
- If ($BlankPixel2 = $BlankColor1) Then
- $NewbHP = $NewbHP + 1
- EndIf
- ; enter 3rd battle
- Battle(($topLeft[0]+442),($topLeft[1]+348))
- WaitForPads()
- If ($BlankPixel3 = $BlankColor1) Then
- $NewbHP = $NewbHP + 1
- EndIf
- ; click to exit A1
- DungeonPad(($topLeft[0]+177),($topLeft[1]+408))
- ; move away from A1
- CharMove(($topLeft[0]+684),($topLeft[1]+172))
- If $TurboCheck = 0 Then
- Sleep(1000)
- Else
- Sleep(50)
- EndIf
- WEnd
- ; go to B2
- DungeonPad2(($topLeft[0]+585),($topLeft[1]+467))
- DungeonPad2(($topLeft[0]+704),($topLeft[1]+383))
- ; grind B2 until HP is 100% when done
- $NewbHP = 2
- While $NewbHP > 1
- $NewbHP = 1
- ; grind 2nd battle until HP is low
- $RepeatB2 = 1
- While $RepeatB2 = 1
- ; enter Bellroot B2
- DungeonPad(($topLeft[0]+418),($topLeft[1]+358))
- WaitForPads()
- ; enter 2nd battle
- Battle(($topLeft[0]+466),($topLeft[1]+264))
- WaitForPads()
- If ($BlankPixel3 <> $BlankColor1) Then
- $RepeatB2 = 2
- Else
- If ($BlankPixel = $BlankColor1) Then
- $RepeatB2 = 2
- Else
- ; click to exit B2
- DungeonPad(($topLeft[0]+177),($topLeft[1]+407))
- ; move away from B2
- CharMove(($topLeft[0]+525),($topLeft[1]+322))
- If $TurboCheck = 0 Then
- Sleep(1000)
- Else
- Sleep(50)
- EndIf
- EndIf
- EndIf
- WEnd
- ; enter first battle
- Battle(($topLeft[0]+226),($topLeft[1]+312))
- WaitForPads()
- If ($BlankPixel3 = $BlankColor1) Then
- $NewbHP = $NewbHP + 1
- EndIf
- ; enter 3rd battle
- Battle(($topLeft[0]+442),($topLeft[1]+347))
- WaitForPads()
- If ($BlankPixel3 = $BlankColor1) Then
- $NewbHP = $NewbHP + 1
- EndIf
- ; click to exit B2
- DungeonPad(($topLeft[0]+177),($topLeft[1]+407))
- ; move away from B2
- CharMove(($topLeft[0]+525),($topLeft[1]+322))
- If $TurboCheck = 0 Then
- Sleep(1000)
- Else
- Sleep(50)
- EndIf
- WEnd
- ;return to Shik
- DungeonPad(($topLeft[0]+33),($topLeft[1]+262))
- DungeonPad(($topLeft[0]+346),($topLeft[1]+467))
- DungeonPad(($topLeft[0]+346),($topLeft[1]+467))
- DungeonPad(($topLeft[0]+32),($topLeft[1]+455))
- ; go to Summerville
- DungeonPad(($topLeft[0]+226),($topLeft[1]+142))
- DungeonPad(($topLeft[0]+249),($topLeft[1]+466))
- DungeonPad(($topLeft[0]+34),($topLeft[1]+334))
- ; grind D1 until HP is 100% when done
- $NewbHP=2
- While $NewbHP > 1
- $NewbHP = 1
- ; enter Summerville D1
- DungeonPad(($topLeft[0]+514),($topLeft[1]+240))
- WaitForPads()
- ; enter first battle
- Battle(($topLeft[0]+297),($topLeft[1]+251))
- WaitForPads()
- If ($BlankPixel3 = $BlankColor1) Then
- $NewbHP = $NewbHP + 1
- EndIf
- ; enter 2nd battle
- Battle(($topLeft[0]+514),($topLeft[1]+216))
- WaitForPads()
- If ($BlankPixel3 = $BlankColor1) Then
- $NewbHP = $NewbHP + 1
- EndIf
- ; enter 3rd battle
- Battle(($topLeft[0]+442),($topLeft[1]+324))
- WaitForPads()
- If ($BlankPixel3 = $BlankColor1) Then
- $NewbHP = $NewbHP + 1
- EndIf
- ; click to exit D1
- DungeonPad(($topLeft[0]+225),($topLeft[1]+382))
- ; move away from D1
- CharMove(($topLeft[0]+447),($topLeft[1]+324))
- If $TurboCheck = 0 Then
- Sleep(1000)
- Else
- Sleep(50)
- EndIf
- WEnd
- ; go to C4
- DungeonPad(($topLeft[0]+394),($topLeft[1]+466))
- DungeonPad(($topLeft[0]+538),($topLeft[1]+467))
- DungeonPad(($topLeft[0]+346),($topLeft[1]+468))
- DungeonPad(($topLeft[0]+33),($topLeft[1]+334))
- ; grind C4 until HP is 100% when done
- $NewbHP=2
- While $NewbHP > 1
- $NewbHP = 1
- ; enter Summerville C4
- DungeonPad(($topLeft[0]+298),($topLeft[1]+323))
- WaitForPads()
- ; enter first battle
- Battle(($topLeft[0]+274),($topLeft[1]+264))
- WaitForPads()
- If ($BlankPixel3 = $BlankColor1) Then
- $NewbHP = $NewbHP + 1
- EndIf
- ; enter 2nd battle
- Battle(($topLeft[0]+441),($topLeft[1]+204))
- WaitForPads()
- If ($BlankPixel3 = $BlankColor1) Then
- $NewbHP = $NewbHP + 1
- EndIf
- ; click to exit C4
- DungeonPad(($topLeft[0]+177),($topLeft[1]+407))
- ; move away from C4
- CharMove(($topLeft[0]+173),($topLeft[1]+296))
- If $TurboCheck = 0 Then
- Sleep(1000)
- Else
- Sleep(50)
- EndIf
- WEnd
- ; go to West Hills E1
- DungeonPad2(($topLeft[0]+273),($topLeft[1]+97))
- DungeonPad2(($topLeft[0]+705),($topLeft[1]+240))
- DungeonPad2(($topLeft[0]+321),($topLeft[1]+95))
- DungeonPad2(($topLeft[0]+369),($topLeft[1]+95))
- DungeonPad2(($topLeft[0]+705),($topLeft[1]+215))
- DungeonPad2(($topLeft[0]+321),($topLeft[1]+95))
- DungeonPad2(($topLeft[0]+370),($topLeft[1]+95))
- DungeonPad2(($topLeft[0]+57),($topLeft[1]+106))
- DungeonPad2(($topLeft[0]+33),($topLeft[1]+234))
- DungeonPad(($topLeft[0]+129),($topLeft[1]+89))
- DungeonPad2(($topLeft[0]+369),($topLeft[1]+90))
- DungeonPad2(($topLeft[0]+465),($topLeft[1]+89))
- DungeonPad2(($topLeft[0]+369),($topLeft[1]+90))
- DungeonPad2(($topLeft[0]+705),($topLeft[1]+379))
- ; grind E1 until HP is 100% when done
- $NewbHP=2
- While $NewbHP > 1
- $NewbHP = 1
- ; enter West Hills E1
- DungeonPad(($topLeft[0]+416),($topLeft[1]+312))
- WaitForPads()
- ; enter first battle
- Battle(($topLeft[0]+250),($topLeft[1]+203))
- WaitForPads()
- If ($BlankPixel3 = $BlankColor1) Then
- $NewbHP = $NewbHP + 1
- EndIf
- ; enter 2nd battle
- Battle(($topLeft[0]+608),($topLeft[1]+263))
- WaitForPads()
- If ($BlankPixel3 = $BlankColor1) Then
- $NewbHP = $NewbHP + 1
- EndIf
- ; click to exit E1
- DungeonPad(($topLeft[0]+201),($topLeft[1]+396))
- ; move away from E1
- CharMove(($topLeft[0]+305),($topLeft[1]+310))
- If $TurboCheck = 0 Then
- Sleep(1000)
- Else
- Sleep(50)
- EndIf
- WEnd
- ; go to bleakwoods H3
- DungeonPad2(($topLeft[0]+34),($topLeft[1]+330))
- DungeonPad2(($topLeft[0]+585),($topLeft[1]+463))
- DungeonPad2(($topLeft[0]+153),($topLeft[1]+462))
- DungeonPad2(($topLeft[0]+393),($topLeft[1]+463))
- DungeonPad2(($topLeft[0]+81),($topLeft[1]+450))
- DungeonPad(($topLeft[0]+706),($topLeft[1]+209))
- DungeonPad2(($topLeft[0]+704),($topLeft[1]+330))
- DungeonPad(($topLeft[0]+705),($topLeft[1]+312))
- DungeonPad(($topLeft[0]+345),($topLeft[1]+106))
- DungeonPad(($topLeft[0]+514),($topLeft[1]+94))
- DungeonPad(($topLeft[0]+416),($topLeft[1]+95))
- DungeonPad(($topLeft[0]+416),($topLeft[1]+95))
- DungeonPad(($topLeft[0]+416),($topLeft[1]+95))
- DungeonPad(($topLeft[0]+416),($topLeft[1]+95))
- DungeonPad(($topLeft[0]+657),($topLeft[1]+94))
- DungeonPad(($topLeft[0]+33),($topLeft[1]+383))
- DungeonPad(($topLeft[0]+369),($topLeft[1]+96))
- ; grind H3 until HP is 80% when done
- $NewbHP=2
- While $NewbHP > 1
- $NewbHP = 1
- ; enter Bleakwoods H3
- DungeonPad(($topLeft[0]+177),($topLeft[1]+359))
- WaitForPads()
- ; enter first battle
- Battle(($topLeft[0]+225),($topLeft[1]+286))
- WaitForPads()
- If ($BlankPixel2 = $BlankColor1) Then
- $NewbHP = $NewbHP + 1
- EndIf
- ; enter 2nd battle
- Battle(($topLeft[0]+441),($topLeft[1]+203))
- WaitForPads()
- If ($BlankPixel2 = $BlankColor1) Then
- $NewbHP = $NewbHP + 1
- EndIf
- ; enter 3rd battle
- Battle(($topLeft[0]+394),($topLeft[1]+395))
- WaitForPads()
- If ($BlankPixel2 = $BlankColor1) Then
- $NewbHP = $NewbHP + 1
- EndIf
- ; click to exit H3
- DungeonPad(($topLeft[0]+176),($topLeft[1]+407))
- ; move away from H3
- CharMove(($topLeft[0]+269),($topLeft[1]+423))
- If $TurboCheck = 0 Then
- Sleep(1000)
- Else
- Sleep(50)
- EndIf
- WEnd
- ; go to Tsulas
- DungeonPad(($topLeft[0]+346),($topLeft[1]+467))
- DungeonPad(($topLeft[0]+33),($topLeft[1]+384))
- DungeonPad(($topLeft[0]+32),($topLeft[1]+382))
- DungeonPad(($topLeft[0]+33),($topLeft[1]+407))
- DungeonPad(($topLeft[0]+154),($topLeft[1]+275))
- ; this should start Tsulas grind
- $grind_choice=2
- EndFunc
- Func GrindDD_E3()
- ; enter Dunes E3
- DungeonPad(($topLeft[0]+226), ($topLeft[1]+287))
- WaitForPads()
- ; move in centre of the duegon
- CharMove(($topLeft[0]+316), ($topLeft[1]+230))
- ; enter third battle
- Battle(($topLeft[0]+442), ($topLeft[1]+178))
- WaitForPads()
- ; enter second battle
- Battle(($topLeft[0]+395), ($topLeft[1]+227))
- WaitForPads()
- ; enter fourth battle
- Battle(($topLeft[0]+514), ($topLeft[1]+286))
- WaitForPads()
- ; enter first battle
- Battle(($topLeft[0]+370), ($topLeft[1]+263))
- WaitForPads()
- ; exit Dunes E3
- DungeonPad(($topLeft[0]+202), ($topLeft[1]+396))
- WaitForPads()
- ; move away from Dunes E3
- CharMove(($topLeft[0]+220), ($topLeft[1]+355))
- If $TurboCheck = 0 Then
- Sleep(1000)
- Else
- Sleep(50)
- EndIf
- $TotalXP=$TotalXP+5756
- EndFunc
- Func GrindUW_B4()
- ; enter Underworld B4
- DungeonPad(($topLeft[0]+82), ($topLeft[1]+193))
- WaitForPads()
- ; enter first battle
- Battle(($topLeft[0]+321), ($topLeft[1]+383))
- WaitForPads()
- ; enter second battle
- Battle(($topLeft[0]+273), ($topLeft[1]+239))
- WaitForPads()
- ; enter third battle
- Battle(($topLeft[0]+465), ($topLeft[1]+288))
- WaitForPads()
- ; enter fourth battle
- Battle(($topLeft[0]+513), ($topLeft[1]+311))
- WaitForPads()
- ; exit Underworld B4
- DungeonPad(($topLeft[0]+562), ($topLeft[1]+408))
- WaitForads()
- ; move away from Underworld B4
- CharMove(($topLeft[0]+244), ($topLeft[1]+173))
- If $TurboCheck = 0 Then
- Sleep(1000)
- Else
- Sleep(50)
- EndIf
- $TotalXP=$TotalXP+7559
- EndFunc
- Func GrindDD_A5()
- ; enter Dunes A5
- DungeonPad(($topLeft[0]+369), ($topLeft[1]+263))
- WaitForPads()
- ; enter first battle
- Battle(($topLeft[0]+297), ($topLeft[1]+179))
- WaitForPads()
- ; enter second battle
- Battle(($topLeft[0]+417), ($topLeft[1]+167))
- WaitForPads()
- ; enter third battle
- Battle(($topLeft[0]+537), ($topLeft[1]+115))
- WaitForPads()
- ; exit Dunes A5
- DungeonPad(($topLeft[0]+201), ($topLeft[1]+433))
- WaitForPads()
- ; move away from Dunes A5
- CharMove (($topLeft[0]+297), ($topLeft[1]+336))
- If $TurboCheck = 0 Then
- Sleep(1000)
- Else
- Sleep(50)
- EndIf
- $TotalXP=$TotalXP+8102
- EndFunc
- Func GrindDD_D3()
- ; enter Dunes D3
- DungeonPad(($topLeft[0]+299), ($topLeft[1]+372))
- WaitForPads()
- ; enter first battle
- Battle(($topLeft[0]+250), ($topLeft[1]+251))
- WaitForPads()
- ; enter second battle
- Battle(($topLeft[0]+418), ($topLeft[1]+167))
- WaitForPads()
- ; enter third battle
- Battle(($topLeft[0]+562), ($topLeft[1]+264))
- WaitForPads()
- ; exit Dunes D3
- DungeonPad(($topLeft[0]+202), ($topLeft[1]+395))
- ; move away from Dunes D3
- CharMove(($topLeft[0]+238), ($topLeft[1]+431))
- If $TurboCheck = 0 Then
- Sleep(1000)
- Else
- Sleep(50)
- EndIf
- $TotalXP=$TotalXP+9370
- EndFunc
- Func DeathCheck()
- $DeathYes=0
- $DeathNo=0
- ;$chimneycheck = 0xE2D6C3
- $chimneycheck = PixelGetColor($topLeft[0]+267, $topLeft[1]+311)
- If $chimneycheck < 0xB00000 Then
- Return(0)
- EndIf
- For $DeathX = 267 to 277
- For $DeathY = 311 to 321
- $chimneycheck2 = PixelGetColor($topLeft[0]+$DeathX, $topLeft[1]+$DeathY)
- If $chimneycheck2 = $chimneycheck Then
- $DeathYes=$DeathYes+1
- Else
- $DeathNo=$DeathNo+1
- ; not chimney - not dead - return 0
- If $DeathNo > 10 Then
- Return(0)
- EndIf
- EndIf
- Next
- Next
- ; thats the chimney - they dead
- Return(1)
- EndFunc
- Func ArenaGrind2()
- ; start script in arena in first room with battles (not in lobby)
- ; if you die, you will return to the arena and start over
- $NumberOfBattles=0
- $ArenaContinue = 1
- $RoomsCleared = 0
- $ArenaRoomCount = 1
- $continue = 1
- ; Find Battle
- While $continue = 1
- ; need to move away from pad first - maybe not necessary?
- ; 09/01 - I decided this is necessary again
- ; 11/06 - good delay while we wait for pads
- MouseMove(($topLeft[0]+374), ($topLeft[1]+256), 3)
- MouseClick("left")
- sleep(500)
- ; click on character check
- While CharClickCheck() = 1
- MouseMove(($topLeft[0]+374), ($topLeft[1]+256), 3)
- Sleep(100)
- MouseClick("left")
- Sleep(100)
- WEnd
- ; find white pad
- WaitForPads()
- $battleCheck = 1
- While $battleCheck = 1
- ; next search for battle pads
- WaitForPads()
- ; need this code so it doesn't think 7-7 exit is a battle
- If $NumberOfBattles < $ArenaNumberOfBattles[$ArenaNumber] Then
- ; -177 avoids the non play area and the entrance at the start of an arena
- $ArenaCoord = PixelSearch($topLeft[0],$topLeft[1],$bottomRight[0],$bottomRight[1]-177,$PadColor2, 5)
- If @error=1 Then
- ; for battle pad server delay - lets check twice
- Sleep(500)
- EndIf
- $ArenaCoord = PixelSearch($topLeft[0],$topLeft[1],$bottomRight[0],$bottomRight[1]-177,$PadColor2, 5)
- If @error=1 Then
- $battleCheck = 2
- Else
- Battle($ArenaCoord[0]+3, $ArenaCoord[1]+13)
- WaitForPads()
- $TotalXP=$TotalXP+$ArenaXP[$ArenaNumber][$NumberOfBattles]
- EndIf
- Else
- $battleCheck = 2
- EndIf
- Wend
- WaitForPads()
- ; keep count of rooms cleared - when arena is done - exit and repeat
- $RoomsCleared = $RoomsCleared + 1
- If $RoomsCleared = 49 Then
- ; find exit
- DungeonPad(($ArenaExit[$ArenaRoomCount])+$topLeft[0],($ArenaExit[$ArenaRoomCount+1])+$topLeft[1])
- CharMove(($topLeft[0]+320), ($topLeft[1]+239))
- If $TurboCheck = 0 Then
- Sleep(2000)
- Else
- Sleep(20)
- EndIf
- DungeonPad(($topLeft[0]+82),($topLeft[1]+97))
- Return
- EndIf
- ; death check
- If (DeathCheck() = 1) Then
- $continue = 2
- MsgBox(8192, "You died! (arena check 1)", "You died!", 1)
- Else
- ; find exit
- DungeonPad(($ArenaExit[$ArenaRoomCount])+$topLeft[0],($ArenaExit[$ArenaRoomCount+1])+$topLeft[1])
- $ArenaRoomCount = $ArenaRoomCount + 2
- If $ArenaRoomCount = 15 Then
- $ArenaRoomCount = 1
- EndIf
- EndIf
- ; might need to check more than once
- If (DeathCheck() = 1) Then
- $continue = 2
- MsgBox(8192, "You died! (arena check 2)", "You died!", 1)
- EndIf
- WEnd
- ; died - remove last battle XP
- $TotalXP=$TotalXP-$ArenaXP[$ArenaNumber][$NumberOfBattles]
- ReturnToArena()
- EndFunc
- Func ReturnToArena()
- If $ArenaNumber = 1 Then
- ; starting from Shikaakwa - return to FF
- DungeonPad(($topLeft[0]+224),($topLeft[1]+141))
- DungeonPad(($topLeft[0]+370),($topLeft[1]+91))
- DungeonPad(($topLeft[0]+57),($topLeft[1]+105))
- DungeonPad(($topLeft[0]+369),($topLeft[1]+87))
- DungeonPad(($topLeft[0]+202),($topLeft[1]+266))
- DungeonPad(($topLeft[0]+81),($topLeft[1]+93))
- EndIf
- If $ArenaNumber = 2 Then
- ; starting from Shikaakwa - return to SVA
- DungeonPad(($topLeft[0]+224),($topLeft[1]+141))
- DungeonPad(($topLeft[0]+251),($topLeft[1]+465))
- DungeonPad(($topLeft[0]+705),($topLeft[1]+237))
- DungeonPad(($topLeft[0]+706),($topLeft[1]+140))
- DungeonPad(($topLeft[0]+322),($topLeft[1]+380))
- DungeonPad(($topLeft[0]+81),($topLeft[1]+94))
- EndIf
- If $ArenaNumber = 3 Then
- ; starting from Shikaakwa - return to BWA
- DungeonPad(($topLeft[0]+321),($topLeft[1]+92))
- DungeonPad(($topLeft[0]+346),($topLeft[1]+103))
- DungeonPad(($topLeft[0]+513),($topLeft[1]+91))
- DungeonPad(($topLeft[0]+416),($topLeft[1]+91))
- DungeonPad(($topLeft[0]+417),($topLeft[1]+92))
- DungeonPad(($topLeft[0]+416),($topLeft[1]+91))
- DungeonPad(($topLeft[0]+416),($topLeft[1]+92))
- DungeonPad(($topLeft[0]+657),($topLeft[1]+92))
- DungeonPad(($topLeft[0]+321),($topLeft[1]+92))
- DungeonPad(($topLeft[0]+370),($topLeft[1]+92))
- DungeonPad(($topLeft[0]+273),($topLeft[1]+91))
- DungeonPad(($topLeft[0]+298),($topLeft[1]+320))
- DungeonPad(($topLeft[0]+81),($topLeft[1]+91))
- EndIf
- If $ArenaNumber = 4 Then
- ; starting from Shikaakwa - return to DFA
- DungeonPad2(($topLeft[0]+705),($topLeft[1]+429))
- DungeonPad2(($topLeft[0]+586),($topLeft[1]+465))
- DungeonPad2(($topLeft[0]+705),($topLeft[1]+453))
- DungeonPad(($topLeft[0]+705),($topLeft[1]+260))
- DungeonPad(($topLeft[0]+704),($topLeft[1]+140))
- DungeonPad(($topLeft[0]+497),($topLeft[1]+440))
- DungeonPad(($topLeft[0]+391),($topLeft[1]+461))
- DungeonPad(($topLeft[0]+392),($topLeft[1]+461))
- DungeonPad(($topLeft[0]+439),($topLeft[1]+461))
- DungeonPad(($topLeft[0]+199),($topLeft[1]+462))
- DungeonPad(($topLeft[0]+704),($topLeft[1]+306))
- DungeonPad(($topLeft[0]+703),($topLeft[1]+233))
- DungeonPad2(($topLeft[0]+704),($topLeft[1]+401))
- DungeonPad(($topLeft[0]+704),($topLeft[1]+232))
- DungeonPad2(($topLeft[0]+711),($topLeft[1]+401))
- DungeonPad(($topLeft[0]+344),($topLeft[1]+221))
- DungeonPad(($topLeft[0]+81),($topLeft[1]+94))
- EndIf
- If $ArenaNumber = 5 Then
- ; starting from Shikaakwa - return to BRA
- DungeonPad2(($topLeft[0]+705),($topLeft[1]+429))
- DungeonPad2(($topLeft[0]+586),($topLeft[1]+465))
- DungeonPad2(($topLeft[0]+705),($topLeft[1]+453))
- DungeonPad(($topLeft[0]+705),($topLeft[1]+260))
- DungeonPad(($topLeft[0]+704),($topLeft[1]+140))
- DungeonPad(($topLeft[0]+706),($topLeft[1]+284))
- DungeonPad(($topLeft[0]+154),($topLeft[1]+176))
- DungeonPad(($topLeft[0]+81),($topLeft[1]+93))
- EndIf
- If $ArenaNumber = 6 Then
- ; starting from Shikaakwa - return to CWA
- DungeonPad(($topLeft[0]+321),($topLeft[1]+94))
- DungeonPad(($topLeft[0]+347),($topLeft[1]+105))
- DungeonPad2(($topLeft[0]+31),($topLeft[1]+384))
- DungeonPad2(($topLeft[0]+32),($topLeft[1]+214))
- DungeonPad2(($topLeft[0]+33),($topLeft[1]+359))
- DungeonPad(($topLeft[0]+465),($topLeft[1]+96))
- DungeonPad(($topLeft[0]+201),($topLeft[1]+300))
- DungeonPad(($topLeft[0]+57),($topLeft[1]+251))
- EndIf
- If $ArenaNumber = 7 Then
- ; starting from Shikaakwa - return to UWA
- DungeonPad2(($topLeft[0]+705),($topLeft[1]+430))
- DungeonPad2(($topLeft[0]+585),($topLeft[1]+467))
- DungeonPad2(($topLeft[0]+705),($topLeft[1]+453))
- DungeonPad(($topLeft[0]+705),($topLeft[1]+263))
- DungeonPad(($topLeft[0]+704),($topLeft[1]+142))
- DungeonPad(($topLeft[0]+705),($topLeft[1]+287))
- DungeonPad(($topLeft[0]+705),($topLeft[1]+215))
- DungeonPad(($topLeft[0]+177),($topLeft[1]+95))
- DungeonPad(($topLeft[0]+705),($topLeft[1]+166))
- DungeonPad(($topLeft[0]+538),($topLeft[1]+82))
- DungeonPad(($topLeft[0]+33),($topLeft[1]+376))
- DungeonPad(($topLeft[0]+33),($topLeft[1]+351))
- DungeonPad2(($topLeft[0]+32),($topLeft[1]+400))
- DungeonPad(($topLeft[0]+33),($topLeft[1]+257))
- DungeonPad2(($topLeft[0]+489),($topLeft[1]+460))
- DungeonPad(($topLeft[0]+33),($topLeft[1]+280))
- DungeonPad(($topLeft[0]+273),($topLeft[1]+88))
- DungeonPad(($topLeft[0]+32),($topLeft[1]+311))
- EndIf
- If $ArenaNumber = 8 Then
- ; starting from Shikaakwa - return to PGA
- ; 137, 121
- ; dungeonpad - bottom right
- ; dungeonpad2 - top right
- ;DungeonPad2(458, 216)
- ;DungeonPad2(482, 228)
- ;DungeonPad2(841, 578)
- ;DungeonPad2(457, 216)
- ;DungeonPad2(842, 505)
- ;DungeonPad2(601, 217)
- ;DungeonPad2(338, 276)
- ;DungeonPad2(842, 407)
- ;DungeonPad2(842, 384)
- ;DungeonPad2(841, 504)
- ;DungeonPad2(506, 216)
- ;DungeonPad2(554, 217)
- ;DungeonPad2(697, 217)
- ;DungeonPad2(602, 216)
- ;DungeonPad2(506, 217)
- ;DungeonPad2(171, 385)
- ;DungeonPad2(482, 589)
- ;DungeonPad2(530, 324)
- EndIf
- EndFunc
- Func CharClickCheck()
- ; if character box is found, clicks on cancel, returns 1
- ; if no box found, returns 0
- $cccCount = 0
- For $cccx = 40 to 90
- For $cccy = 297 to 337
- $ClickCheck = PixelGetColor($topLeft[0]+$cccx, $topLeft[1]+$cccy)
- If $ClickCheck < 15728640 Then
- $cccCount = $cccCount + 1
- If $cccCount > 5 Then
- Return (0)
- ;$cccy = 454
- ;$cccx = 98
- EndIf
- EndIf
- Next
- Next
- ; Click to cancel window
- MouseMove ($topLeft[0]+318,$topLeft[1]+95,1)
- MouseClick("left")
- Return (1)
- EndFunc
- Func CharMove($x, $y)
- ; clicks on a non-pad area
- ; checks for character click check
- MouseMove($x, $y, 3)
- If $TurboCheck = 0 Then
- Sleep(100)
- Else
- Sleep(20)
- EndIf
- MouseClick("left")
- While CharClickCheck() = 1
- MouseMove($x, $y, 3)
- Sleep(100)
- MouseClick("left")
- Sleep(100)
- WEnd
- EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement