|
|
Line 1: |
Line 1: |
− | <pre>
| |
− | // ATITD Tin Ore Mining Macro for ACTool
| |
− | // RELEASE: Jan-9-2009
| |
− | // Original Mining Script by Coyan
| |
− | // Adapted for Tin by Xyrrus
| |
− | //
| |
− | // SETUP
| |
− | //
| |
− | // First align your view so you can see all 7 crystals clearly
| |
− | // second use Alt-L to lock your camera angle
| |
− | //
| |
− | // You will have 3 seconds between the recording of each crystal's location
| |
− | // place your mouse over a spot of average gem color for each crystal in turn
| |
− | // Once it has identified the 7 crystals, it will run the mine
| |
− | //
| |
− | // ** FOR TIN ** Place your cursor over the **DARKEST PART* of each particular gem or
| |
| | | |
− | //you will experience higher failure rates.
| |
− | // This is often the base/corner of the crystal.
| |
− | //
| |
− | // Method:
| |
− | // Script mines the gem with the lowest blue component value.
| |
− | //
| |
− | // Accuracy:
| |
− | // Tested 50 pulls, 3 errors. - Xyrrus Jan-9-2009
| |
− | // Incidently, this is better than many players report by hand.
| |
− |
| |
− | Constructs
| |
− | MouseX=List // this is an array of mouse X coords for gem sample points
| |
− | MouseY=List // this is an array of mouse X coords for gem sample points
| |
− | CrysBlue=List
| |
− | OEOffset=List
| |
− | END
| |
− |
| |
− | Constants
| |
− | OELevel = 3 // ** SET THIS ** to the 'depth' you want the memory game to
| |
− |
| |
− | //play. A higher number will mean that you will achieve higher quantities per pull. However, a
| |
− |
| |
− | //failure means that the sequence is reset and you will get "failed" messages equal to this
| |
− |
| |
− | //number. Set this higher if you're very confident in your ability to place the cursor on the
| |
− |
| |
− | //darkest part of each gem. Set it lower if you're less accurate. 3 is a good starting number. If
| |
− |
| |
− | //you consistently see low-error performance, set it higher. Note that this number *for tin ore*
| |
− |
| |
− | //does not appear to rely on ore extraction skill level (?)
| |
− | totalpulls = 600 // How many times do you want it to pull the mine.
| |
− | //colordiff = 10 // this is used to find a base for comparison, shouldn't need
| |
− |
| |
− | //adjusting
| |
− | //CDiff = 0
| |
− | RepairAdjust = 15 // ** SET THIS ** to adjust the vertical positining of the
| |
− |
| |
− | //mouse if the mine is not being worked. Increase / decrease by 15 per line as needed. "This
| |
− |
| |
− | //mine has been repaired" text and custom mine labels will result in adjustments being required:
| |
− | // 15 - No Repairs or Text
| |
− | // 0 - Repair or Text
| |
− |
| |
− |
| |
− | Compare = 0
| |
− | Currcrys = 0
| |
− | LowestCrystal = 0
| |
− | CurrentLow = 0
| |
− | //DIFFFOUND = 0
| |
− | //Minval = 0
| |
− | //Maxval = 0
| |
− | Tmpval = 0
| |
− | loopcnt = 1
| |
− | Mousecnt = 1
| |
− | MouseXN = 0
| |
− | MouseYN = 0
| |
− | //ColorHS = 0
| |
− | OElistcnt = 0
| |
− | OELvlset = 1
| |
− | CurrCrysBlue = 0
| |
− | End
| |
− |
| |
− |
| |
− | Compute LowestCrystal = 0
| |
− | Compute CurrentLow = 255
| |
− |
| |
− | // First part that requires a detailed explanation
| |
− | // this loop will pause for 3 seconds then grab the current mouse location
| |
− | // its purpose is to identify the 7 sampling locations for the crystals
| |
− | // when it grabs the sampling spot, it will then echo a . to the chat window
| |
− | // make sure you are in your main chat tab.
| |
− |
| |
− | Loop 7
| |
− | Delay 3000
| |
− | Listadd MouseX, {MouseX}
| |
− | Listadd MouseY, {MouseY}
| |
− | SayPaste .
| |
− | END
| |
− |
| |
− | ListClear OEOffset
| |
− |
| |
− | loop $totalpulls
| |
− | Compute loopcnt = 1
| |
− | ListClear CrysBlue
| |
− | loop 7
| |
− | mousepos MouseX[$loopcnt], MouseY[$loopcnt]
| |
− | LoadRGB MouseX[$loopcnt], MouseY[$loopcnt]
| |
− |
| |
− | // Setup the List
| |
− | Call GetBlueValues
| |
− |
| |
− | Compute loopcnt = $loopcnt + 1
| |
− | Delay 100
| |
− | END
| |
− | //Delay 100000 for testing
| |
− | CALL FindTinOre
| |
− |
| |
− | CALL OreExtractionstore
| |
− |
| |
− | ListCount OEOffset, $OElistcnt
| |
− | IF $OELevel >= $OElistcnt
| |
− | Compute OELvlset = OEOffset[1] // work the current crystal until we are at our OE Level
| |
− | ELSE
| |
− | Compute OELvlset = OEOffset[$OELevel]
| |
− | END
| |
− | //Saypaste $OELevel $OElistcnt $OELvlset
| |
− |
| |
− | mousepos MouseX[$OELvlset], MouseY[$OELvlset]
| |
− | Delay 200 //200
| |
− | leftclick
| |
− | Compute MouseXN = MouseX[$OELvlset] + 15 // adjust this if you need to for the menu click
| |
− | Compute MouseYN = MouseY[$OELvlset] - $repairadjust // adjust this if you need to for the menu click
| |
− | Mousepos $MouseXN, $MouseYN
| |
− | Delay 200
| |
− | Leftclick
| |
− |
| |
− | Delay 5000 // Delay to manage the str/perc timer on mining, adjust as needed
| |
− |
| |
− | end
| |
− |
| |
− | Procedure GetBlueValues
| |
− | // Find the 'blueness' of each crystal, add it to the list. The gem with tin is the gem
| |
− |
| |
− | //with the lowest blue component.
| |
− | Compute CurrCrysBlue = {RGBBlue}
| |
− | Listadd CrysBlue, $CurrCrysBlue
| |
− | END
| |
− |
| |
− | Procedure FindTinOre
| |
− | // Find which element in the list has the least amount of blue in it.
| |
− | Compute LowestCrystal = 0
| |
− | Compute CurrentLow = 255
| |
− | Compute Currcrys = 1
| |
− | loop 7
| |
− | If CrysBlue[$CurrCrys] < $CurrentLow
| |
− | compute lowestCrystal = $currCrys
| |
− | compute currentLow = crysblue[$currcrys]
| |
− | END
| |
− |
| |
− | Compute Currcrys = $Currcrys + 1
| |
− | END //loop
| |
− |
| |
− | Compute Mousecnt = $LowestCrystal
| |
− | END
| |
− |
| |
− | Procedure OreExtractionstore
| |
− | // Memory game storage
| |
− | ListCount OEOffset, $OElistcnt
| |
− | IF $OElistcnt = 0
| |
− | Listadd OEOffset, $Mousecnt
| |
− | ELSE
| |
− | IF $OElistcnt = 1
| |
− | Listadd OEOffset, OEOffset[1]
| |
− | END
| |
− | IF $OElistcnt = 2
| |
− | Listadd OEOffset, OEOffset[2]
| |
− | Compute OEOffset[2] = OEOffset[1]
| |
− | END
| |
− | IF $OElistcnt = 3
| |
− | Listadd OEOffset, OEOffset[3]
| |
− | Compute OEOffset[3] = OEOffset[2]
| |
− | Compute OEOffset[2] = OEOffset[1]
| |
− | END
| |
− | IF $OElistcnt = 4
| |
− | Listadd OEOffset, OEOffset[4]
| |
− | Compute OEOffset[4] = OEOffset[3]
| |
− | Compute OEOffset[3] = OEOffset[2]
| |
− | Compute OEOffset[2] = OEOffset[1]
| |
− | END
| |
− | IF $OElistcnt = 5
| |
− | Listadd OEOffset, OEOffset[5]
| |
− | Compute OEOffset[5] = OEOffset[4]
| |
− | Compute OEOffset[4] = OEOffset[3]
| |
− | Compute OEOffset[3] = OEOffset[2]
| |
− | Compute OEOffset[2] = OEOffset[1]
| |
− | END
| |
− | IF $OElistcnt = 6
| |
− | Listadd OEOffset, OEOffset[6]
| |
− | Compute OEOffset[6] = OEOffset[5]
| |
− | Compute OEOffset[5] = OEOffset[4]
| |
− | Compute OEOffset[4] = OEOffset[3]
| |
− | Compute OEOffset[3] = OEOffset[2]
| |
− | Compute OEOffset[2] = OEOffset[1]
| |
− | END
| |
− | IF $OElistcnt = 7
| |
− | Compute OEOffset[7] = OEOffset[6]
| |
− | Compute OEOffset[6] = OEOffset[5]
| |
− | Compute OEOffset[5] = OEOffset[4]
| |
− | Compute OEOffset[4] = OEOffset[3]
| |
− | Compute OEOffset[3] = OEOffset[2]
| |
− | Compute OEOffset[2] = OEOffset[1]
| |
− | END
| |
− |
| |
− | Compute OEOffset[1] = $Mousecnt
| |
− | END
| |
− |
| |
− | END
| |
− | </pre>
| |