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.

Iron macro

From A Tale in the Desert
Revision as of 11:29, 29 December 2008 by Coyan (talk | contribs) (New page: <pre> // 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 s...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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
	CrysColorR=List
	CrysColorG=List
	CrysColorB=List
	OEOffset=List
END
Constants
	OELevel = 1  // change this to your Ore Extraction level
	totalpulls = 100 // How many times do you want it to pull the mine
	colordiff = 30
	diffRA = 0
	diffRB = 0
	diffGA = 0
	diffGB = 0
	diffBA = 0
	diffBB = 0
	DIFFFOUND = 0
	loopcnt = 1 
	Mousecnt = 1
	MouseXN = 0
	MouseYN = 0
	ColorRS = 0
	ColorGS = 0
	ColorBS = 0
	found = 0
	OElistcnt = 0
	OELvlset = 1
End

// 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 CrysColorR
	ListClear CrysColorG
	ListClear CrysColorB
	loop 7
		mousepos MouseX[$loopcnt], MouseY[$loopcnt]
		LoadRGB MouseX[$loopcnt], MouseY[$loopcnt]

		Call CALCCOLOR
		Compute loopcnt = $loopcnt + 1
		Delay 100
	END
	
	CALL FindtheOdd
	
	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
	
	ListCount OEOffset, $OElistcnt
	IF $OELevel > $OElistcnt
		Compute OELvlset = OEOffset[$OElistcnt]
	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] - 5 // 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 CALCCOLOR // This procedure grabs the color of the crystal
	Listadd CrysColorR, {RGBRed}
	Listadd CrysColorG, {RGBGreen}
	Listadd CrysColorB, {RGBBlue}

	//Saypaste {RGBRed} {RGBGreen} {RGBBlue}
END

Procedure FindtheOdd
	Compute ColorRS = CrysColorR[1]
	Compute ColorGS = CrysColorG[1]
	Compute ColorBS = CrysColorB[1]
	Compute DIFFFOUND = 0
	//Saypaste $ColorRS $ColorGS $ColorBS
	Compute loopcnt = 2
	CALL computediff	
	
	IF $DIFFFOUND = 1

		Compute loopcnt = 3
		CALL computediff	
		
		IF $DIFFFOUND = 1
			Compute found = 1
			Compute Mousecnt = 1
			//Saypaste first one is it $DiffRA $DiffRB $DiffGA $DiffGB $DiffBA $DiffBB
		ELSE
			Compute found = 1
			Compute Mousecnt = 2
			//Saypaste second one is it
		END
	ELSE
		Compute loopcnt = 3
		CALL computediff	

		IF $DIFFFOUND = 1
			Compute found = 1
			Compute Mousecnt = 3
			//Saypaste third one is it
		ELSE
			Compute found = 0
			Compute Mousecnt = 4
			//Saypaste not found yet
		END
	
	END
	IF $found = 0
		Compute loopcnt = 4
		While $found = 0
			CALL computediff
			
		IF $DIFFFOUND = 1
				Compute found = 1
				Compute Mousecnt = $loopcnt
				//Saypaste $loopcnt is it
			END
			IF $loopcnt = 7 AND $found = 0
				Compute found = 1
				Compute Mousecnt = 1
				//Saypaste couldnt find it
			ELSE
				Compute loopcnt = $loopcnt + 1
			END
		END
	END
	
END

Procedure computediff
	Compute DIFFFOUND = 0
	Compute DiffRA = CrysColorR[$loopcnt] - $ColorRS
	Compute DiffRB = $ColorRS - CrysColorR[$loopcnt]
	Compute DiffGA = CrysColorG[$loopcnt] - $ColorGS
	Compute DiffGB = $ColorGS - CrysColorG[$loopcnt]
	Compute DiffBA = CrysColorB[$loopcnt] - $ColorBS
	Compute DiffBB = $ColorBS - CrysColorB[$loopcnt]

	IF $DiffRA > $colordiff OR $DiffRB > $colordiff OR $DiffGA > $colordiff OR $DiffGB > $colordiff OR $DiffBA > $colordiff OR $DiffBB > $colordiff
		Compute DIFFFOUND = 1
	END
END

back to Macro list:[Mosaic Macros]