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.

Cuivre reparé

From A Tale in the Desert
Jump to navigationJump to search

// 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
 OEOffset=List

END Constants

 OELevel = 3  // change this to your Ore Extraction level
 totalpulls = 1500 // How many times do you want it to pull the mine
 loopcnt = 1 
 Mousecnt = 1
 MouseXN = 0
 MouseYN = 0
 ColorN = 0
 ColorS = 0
 Minval = 0
 Maxval = 255
 CONSTVAL = 0
 Tmpval = 0
 OElistcnt = 0

OELvlset = 1

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 loopcnt = 1
 loop 7
   mousepos MouseX[$loopcnt], MouseY[$loopcnt]
   LoadRGB MouseX[$loopcnt], MouseY[$loopcnt]
   Call CALCSATCOLOR
   IF $ColorN > $ColorS

Compute ColorS = $ColorN Compute Mousecnt = $loopcnt

   END
   Compute loopcnt = $loopcnt + 1
   Delay 100
 END	

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 
 leftclick
 Compute MouseXN = MouseX[$OELvlset] + 20 // adjust this if you need to for the menu click
 Compute MouseYN = MouseY[$OELvlset] - 5 // adjust this if you need to for the menu click
 Mousepos $MouseXN, $MouseYN
 Delay 200
 Leftclick
 Compute ColorS = 0 //resets the color satuation for each sampling
 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

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