The Wiki for Tale 4 is in read-only mode and is available for archival and reference purposes only. Please visit the current Tale 11 Wiki in the meantime.
If you have any issues with this Wiki, please post in #wiki-editing on Discord or contact Brad in-game.
Silver Macro
From A Tale in the Desert
Jump to navigationJump to search// Written by: Coyan/Mosaic Guild // This is what I suggest for setting up for this macro // First align your view so you can see all 7 crystals clearly // second use Alt-L to lock your camera angle // Third before starting this, I suggest you have your mouse sitting over // the first crystal. // You will have 3 seconds between the recording of each crystal's location // place your mouse over the darkest part of each crystal in turn // Once it has identified the 7 crystals, it will run the mine 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 CrystalSat=List // array of crystal Saturation OEOffset=List END Constants totalpulls = 100 // number of pulls OELevel = 4 // With Silver this will allow you to pull up to 4 a go, it will fail a few times // initially, I'm still working on why OElistcnt = 0 OELvlset = 2 loopcnt = 1 mnloopcnt = 1 Mousecnt = 1 MouseXN = 0 MouseYN = 0 ColorN = 0 ColorS = 0 Color2S = 0 Minval = 0 Maxval = 255 CONSTVAL = 0 Tmpval = 0 End Compute CONSTVAL = 100/255 // constant being set for saturation calculation // 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 mnloopcnt = 1 ListClear CrystalSat loop 7 mousepos MouseX[$mnloopcnt], MouseY[$mnloopcnt] LoadRGB MouseX[$mnloopcnt], MouseY[$mnloopcnt] Call CALCSATCOLOR Compute mnloopcnt = $mnloopcnt + 1 END Call Findsecondsat CALL OreExtractionstore ListCount OEOffset, $OElistcnt IF $OELevel > $OElistcnt Compute OELvlset = OEOffset[$OElistcnt] ELSE Compute OELvlset = OEOffset[$OELevel] END mousepos MouseX[$OELvlset], MouseY[$OELvlset] Delay 200 leftclick Compute MouseXN = MouseX[$OELvlset] + 15 // adjust this if you need to for the menu click Compute MouseYN = MouseY[$OELvlset] - 10// adjust this if you need to for the menu click Mousepos $MouseXN, $MouseYN Delay 200 Leftclick Delay 4200 // Delay to manage the str/perc timer on mining, adjust as needed end Procedure CALCSATCOLOR // This procedure calculates the saturation of the crystal Compute Minval = 0 Compute Maxval = 255 IF {RGBRed} > {RGBGreen} Compute Minval = {RGBGreen} Compute Maxval = {RGBRed} Else Compute Maxval = {RGBGreen} Compute Minval = {RGBRed} END IF {RGBBlue} < $Minval Compute Minval = {RGBBlue} ELSE IF {RGBBlue} > $Maxval Compute Maxval = {RGBBlue} END END Compute Tmpval = $Maxval - $Minval Compute Tmpval = $Tmpval / $Maxval Compute ColorN = $Tmpval * $CONSTVAL Listadd CrystalSat, $ColorN END Procedure Findsecondsat // find the second most saturated crystal, Silver mining Compute ColorS = 0 Compute Color2S = 0 Compute loopcnt = 1 loop 7 IF CrystalSat[$loopcnt] > $ColorS Compute ColorS = CrystalSat[$loopcnt] END Compute loopcnt = $loopcnt + 1 END Compute loopcnt = 1 loop 7 IF CrystalSat[$loopcnt] > $Color2S AND $ColorS > CrystalSat[$loopcnt] Compute Color2S = CrystalSat[$loopcnt] Compute Mousecnt = $loopcnt END Compute loopcnt = $loopcnt + 1 END END Procedure OreExtractionstore 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
back to Macro list:[Mosaic Macros]