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.

User:Cegaiel/Macros/Glassbench/Code

From A Tale in the Desert
< User:Cegaiel‎ | Macros‎ | Glassbench
Revision as of 07:55, 2 June 2010 by Cegaiel (talk | contribs) (New page: ; Glass Bench ; Date: 5/29/2010 ; Author: Cegaiel ; Ctrl+P (once to Pause, again to resume ; Ctrl+R to reload/reset script ; Note: The timer adds 6 seconds to your project (ie a 60s proj...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search
Glass Bench
Date
5/29/2010
Author
Cegaiel
Ctrl+P (once to Pause, again to resume
Ctrl+R to reload/reset script
Note
The timer adds 6 seconds to your project (ie a 60s project will take 66s).
This is to ensure teppy time and lag doesn't make it click too soon.
If you want to adjust this extra 6 seconds, scroll down, half way down the script and look for
seconds := (seconds + 6)
Change the + 6 to however many seconds you want to offset the default project timer.


This is the location of the heat bar (the first bar). Use my GetMouse Position macro to determine the coordinates
at your resolution if you are changing it. The below 106 and 138 is correct for 1024x768 resolution (pinned uppper left corner).
You are only configuring the X position, the Y position is gathered while the script runs (it asks you to click the bar to get Y)
Configuration
========

curHeatMinX = 106 ; Around 1600-1650 curHeatMaxX = 138 ;Around 2200 degrees

=======================


Gui, Add, Text,, Choose amount of seconds for your project: Gui, Add, Text,, ( LTrim 60s: Glass Rod 90s: Glass Pipe, Find Glass Pipe, Fine Glass Rod 120s: Glass Blade, Sheet Glass

)

Gui, Add, DropDownList, vSeconds Choose1, 60|90|120

Gui, Add, Text,, How many? Gui, Add, Edit, vQty wp number

Gui, Add, Button, gSubmit, Next Step Gui, Show return


Submit: Gui, Submit

if (Qty < 0) { Msgbox, You did not enter a Qty!`n`nTry again... RELOAD PAUSE }


Gui, Destroy Gui, +AlwaysOnTop +ToolWindow Gui, Font, normal Gui, Add, Text, vRefresh, ( LTrim Now middle click (click mouse-wheel) a spot on pinup to refresh screen.

(Hover over around where it says "This is a/your Glazier's Bench"

) Gui, Show

WinGet, GameWinHandle, ID, eGenesis Client WinActivate, eGenesis Client


loop { WinActivate, eGenesis Client CoordMode, Mouse, Relative KeyWait, MButton, D KeyWait, MButton MouseGetPos, TestX, TestY, WinHandle if (WinHandle = GameWinHandle) {

Gosub, Record } else { Gui, Destroy break } } return

MineNum1 = Refresh
MineNum2 = Project Location
MineNum3 = Temperature Bar Y Position


Record: MineNum++ MouseGetPos, MineX%MineNum%, MineY%MineNum%


if (MineNum = 1) { GuiControl, Text, Refresh, Step 2: Middle click Glass Project on Menu (ie Make a Glass Jar)`n`n`n return


} else if (MineNum = 2) { GuiControl, Text, Refresh, Step 3: Click Y position of the Heat bar`n`nIt is the first bar (above Temperature: 0)`n`nClick anywhere in the bar... return


} else { Gui, Destroy }


Gui, +AlwaysOnTop +ToolWindow Gui, Add, Text, vMineNumText, Stand by, the macro will begin very shortly...`n`n`n`n`n`n`n Gui, Font, norm Gui, Show


seconds := (seconds + 6) gseconds = 0 cseconds = 0 counter = 0


GuiControl, Text, MineNumText, Press F2 when the heat is at operating`ntemperature and has stopped spiking.`n`nThe macro will then take over.`n`nIdea range to hit F2 is 1800-2000. KeyWait, F2, D



SetDefaultMouseSpeed, 0

#Persistent SetTimer, MakeGlass, %gseconds%


Loop {


WinActivate, eGenesis Client

;curHeatMin := FindRed(curHeatMinX, MineY3) curHeatMax := FindRed(curHeatMaxX, MineY3)

if (curHeatMax = 1) { MouseGetPos, OldMX, OldMY ImageSearch, OutputX, OutputY, 9, 42, 283, 299, *50 add2cc.PNG OutputX := OutputX +50 OutputY := OutputY + 2 Click, %OutputX%, %OutputY% ;Add 2 cc MouseMove, %OldMX%, %OldMY%, 0 cseconds = 100 Sleep 98000

} else if (curHeatMax = 0) { GuiControl, Text, MineNumText, %gseconds%s remaining for next project`n%cseconds%s until next 2cc add.`n`nMaking %counter% of %qty% glass projects`n`nHeat too high, cooling down! }

}


FindRed(TX, TY) { PixelSearch, PX, PY, TX, TY, TX+1, TY+1, 0x830605, 55, Fast|RGB return ErrorLevel }

MakeGlass:

if (gseconds = 0) { WinActivate, eGenesis Client curHeatMin := FindRed(curHeatMinX, MineY3) curHeatMax := FindRed(curHeatMaxX, MineY3) }

if (gseconds = 0) and (curHeatMin = 0) and (curHeatMax = 1)

if (gseconds = 0) and (curHeatMin = 1) and (curHeatMax = 1) { WinActivate, eGenesis Client MouseGetPos, OldMX, OldMY Click, %MineX1%, %MineY1% ;Refresh Sleep 100 Click %MineX2%, %MineY2% ;Make glass project gseconds := seconds MouseMove, %OldMX%, %OldMY%, 0


if (counter = qty) and (cseconds = 0) { Msgbox, All done!`n`nExiting script... EXIT } else { counter ++ }

}

gseconds -- ;glass timer cseconds -- ;cc timer

if (cseconds < 0) cseconds = 0

if (gseconds < 0) gseconds = 0


if (curHeatMin = 0) and (curHeatMax = 1) { GuiControl, Text, MineNumText, %gseconds%s remaining for next project`n%cseconds%s until next 2cc add.`n`nMaking %counter% of %qty% glass projects

} else if (curHeatMin = 1) { GuiControl, Text, MineNumText, %gseconds%s remaining for next project`n%cseconds%s until next 2cc add.`n`nMaking %counter% of %qty% glass projects`n`nHeat too low, standby while the temp increases. }


sleep 1000 return

^r::reload ^p::Pause