The Wiki for Tale 5 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.
Difference between revisions of "Takhetu/Code"
From ATITD5
Jump to navigationJump to searchLine 1: | Line 1: | ||
<pre> | <pre> | ||
− | + | ;Ctrl+R to reload | |
− | + | ;Ctrl+P to pause | |
− | + | ||
− | |||
− | |||
− | |||
− | |||
;~ Info | ;~ Info | ||
− | |||
WinActivate, eGenesis Client | WinActivate, eGenesis Client | ||
WinGetActiveStats, win_Title, Xmax, Ymax, win_Xpos, win_Ypos | WinGetActiveStats, win_Title, Xmax, Ymax, win_Xpos, win_Ypos | ||
Line 14: | Line 9: | ||
StartYGUI := win_Ypos+35 | StartYGUI := win_Ypos+35 | ||
Gui, +AlwaysOnTop +ToolWindow -Border +Background | Gui, +AlwaysOnTop +ToolWindow -Border +Background | ||
− | Gui, Add, Text,, | + | Gui, Add, Text,x10 y10,Crematory Macro Running |
− | Gui, Add, Text, x10 | + | Gui, Add, Text,x10 y25,CTRL+R - Restart macro |
− | Gui, Add, | + | Gui, Add, Text,x10 y40,CTRL+P - Pause macro |
− | Gui, Add, Text, | + | Gui, Add, Text,x10 y55 vMyText,CTRL+A - Turn ON Auto mode |
− | + | Gui, Add, Text,x10 y75,Keep the crematory window away from popups. | |
− | Gui, Add, | ||
Gui, Add, Button, x200 y5 gClose, Close | Gui, Add, Button, x200 y5 gClose, Close | ||
Gui, Show, X%StartXGUI% Y%StartYGUI% w240 h100, New GUI Window | Gui, Show, X%StartXGUI% Y%StartYGUI% w240 h100, New GUI Window | ||
− | |||
− | + | gosub, Setup | |
− | + | ||
− | + | WinActivate, eGenesis Client | |
− | + | lastTimeSlidersMoved := A_Now | |
− | + | autoMode := false | |
− | + | Loop | |
− | |||
− | |||
− | |||
− | |||
− | |||
{ | { | ||
− | + | If (autoMode=true) | |
− | |||
− | |||
− | |||
− | |||
{ | { | ||
− | + | ;~ check if completed | |
− | } | + | ImageSearch, BarX,BarY,ProgressSX,ProgressSY,ProgressEX,ProgressEY,*40 BitRed.png |
+ | if ErrorLevel=1 | ||
+ | { | ||
+ | ;~ Knobs not moving - Finished | ||
+ | gosub, unload | ||
+ | gosub, load | ||
+ | } else { | ||
+ | currentTime := A_Now | ||
+ | tempLast := LastTimeSlidersMoved | ||
+ | EnvSub, tempLast,,Seconds | ||
+ | If (tempLast<-300) | ||
+ | { | ||
+ | gosub, unload | ||
+ | gosub, load | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | ;~ Check to make sure the window wasn't moved | ||
+ | WindowMoved := false | ||
+ | ImageSearch, NewLimeX,NewLimeY,0,0,Xmax,Ymax,*40 Lime.png | ||
+ | If ErrorLevel<1 | ||
+ | { | ||
+ | If (NewLimeX<>LimeX) | ||
+ | { | ||
+ | WindowMoved := true | ||
+ | } else { | ||
+ | If (NewLimeY<>LimeY) | ||
+ | { | ||
+ | WindowMoved := True | ||
+ | } | ||
+ | } | ||
+ | If WindowMoved=True | ||
+ | { | ||
+ | gosub, Setup | ||
+ | } | ||
+ | } else { | ||
+ | gosub, Setup | ||
+ | } | ||
+ | |||
+ | |||
+ | ImageSearch, KnobX,KnobY1,SliderSearchSX1,SliderSearchSY,SliderSearchEX1,SliderSearchEY,*40 SliderKnob.png | ||
+ | ImageSearch, KnobX,KnobY2,SliderSearchSX2,SliderSearchSY,SliderSearchEX2,SliderSearchEY,*40 SliderKnob.png | ||
+ | ImageSearch, KnobX,KnobY3,SliderSearchSX3,SliderSearchSY,SliderSearchEX3,SliderSearchEY,*40 SliderKnob.png | ||
+ | ImageSearch, KnobX,KnobY4,SliderSearchSX4,SliderSearchSY,SliderSearchEX4,SliderSearchEY,*40 SliderKnob.png | ||
+ | ImageSearch, KnobX,KnobY5,SliderSearchSX5,SliderSearchSY,SliderSearchEX5,SliderSearchEY,*40 SliderKnob.png | ||
+ | ImageSearch, KnobX,KnobY6,SliderSearchSX6,SliderSearchSY,SliderSearchEX6,SliderSearchEY,*40 SliderKnob.png | ||
+ | ImageSearch, KnobX,KnobY7,SliderSearchSX7,SliderSearchSY,SliderSearchEX7,SliderSearchEY,*40 SliderKnob.png | ||
+ | Knob1 := SliderM-KnobY1-1 | ||
+ | Knob2 := SliderM-KnobY2-1 | ||
+ | Knob3 := SliderM-KnobY3-1 | ||
+ | Knob4 := SliderM-KnobY4-1 | ||
+ | Knob5 := SliderM-KnobY5-1 | ||
+ | Knob6 := SliderM-KnobY6-1 | ||
+ | Knob7 := SliderM-KnobY7-1 | ||
+ | |||
+ | NoKnobsMoved := True | ||
+ | ;~ Reverse Direction Sliders | ||
+ | If (Knob3<>oldKnob3) ;knob moved | ||
+ | { | ||
+ | NoKnobsMoved := False | ||
+ | If (Knob3>oldKnob3) ;knob rose | ||
+ | { | ||
+ | If (Knob3>Knob7) ;Knob3 is above knob7, knobs are spreading out | ||
+ | { | ||
+ | MouseClick,Left,ButtonX2,ButtonY | ||
+ | } | ||
+ | } else { | ||
+ | If (Knob3<Knob7) ;Knob3 is bellow knob7, knobs are spreading out | ||
+ | { | ||
+ | MouseClick,Left,ButtonX2,ButtonY | ||
+ | } | ||
+ | } | ||
+ | oldKnob3 := Knob3 | ||
+ | oldKnob7 := Knob7 | ||
+ | } | ||
+ | |||
+ | ;~ Reverse Direction Sliders | ||
+ | If (Knob5<>oldKnob5) ;knob moved | ||
+ | { | ||
+ | NoKnobsMoved := False | ||
+ | If (Knob5>oldKnob5) ;knob rose | ||
+ | { | ||
+ | If (Knob5>Knob6) ;Knob5 is above Knob6, knobs are spreading out | ||
+ | { | ||
+ | MouseClick,Left,ButtonX5,ButtonY | ||
+ | } | ||
+ | } else { | ||
+ | If (Knob5<Knob6) ;Knob5 is bellow Knob6, knobs are spreading out | ||
+ | { | ||
+ | MouseClick,Left,ButtonX5,ButtonY | ||
+ | } | ||
+ | } | ||
+ | oldKnob5 := Knob5 | ||
+ | oldKnob6 := Knob6 | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | ;~ ******************** | ||
+ | ;~ COMMENTED SECTION, USE THIS FOR DOUBLE SLIDERS THAT TRAVEL IN THE SAME DIRECTION | ||
+ | ;~ ******************** | ||
+ | ;~ Same Direction Sliders | ||
+ | ;~ If (Knob4<>oldKnob4) ;knob moved | ||
+ | ;~ { | ||
+ | ;~ NoKnobsMoved := False | ||
+ | ;~ averagePos := floor((Knob4+Knob6)/2) | ||
+ | ;~ If (Knob4>oldKnob4) ;knobs are going up | ||
+ | ;~ { | ||
+ | ;~ If averagePos>0 ;averageposition is above center | ||
+ | ;~ { | ||
+ | ;~ MouseClick,Left,ButtonX4,ButtonY | ||
+ | ;~ } | ||
+ | ;~ } else { ;knobs are going down | ||
+ | ;~ If averagePos<0 ;averageposition is bellow center | ||
+ | ;~ { | ||
+ | ;~ MouseClick,Left,ButtonX4,ButtonY | ||
+ | ;~ } | ||
+ | ;~ } | ||
+ | ;~ oldKnob4 := Knob4 | ||
+ | ;~ oldKnob6 := Knob6 | ||
+ | ;~ } | ||
+ | |||
+ | |||
+ | |||
+ | NumAbove := 0 | ||
+ | NumBellow := 0 | ||
+ | If Knob3<0 | ||
+ | { | ||
+ | NumBellow++ | ||
+ | } Else { | ||
+ | NumAbove++ | ||
+ | } | ||
+ | If Knob7<0 | ||
+ | { | ||
+ | NumBellow++ | ||
+ | } Else { | ||
+ | NumAbove++ | ||
+ | } | ||
+ | If Knob5<0 | ||
+ | { | ||
+ | NumBellow++ | ||
+ | } Else { | ||
+ | NumAbove++ | ||
+ | } | ||
+ | If Knob6<0 | ||
+ | { | ||
+ | NumBellow++ | ||
+ | } Else { | ||
+ | NumAbove++ | ||
+ | } | ||
+ | |||
+ | Axis4 := 0 | ||
+ | Axis2 := 0 | ||
+ | If NumAbove=1 | ||
+ | { | ||
+ | Axis4 := 5 | ||
+ | } else { | ||
+ | If NumAbove=0 | ||
+ | { | ||
+ | Axis4 := 5 | ||
+ | Axis2 := 5 | ||
+ | } else { | ||
+ | If NumBellow=1 | ||
+ | { | ||
+ | Axis4 := -5 | ||
+ | } else { | ||
+ | If NumBellow=0 | ||
+ | { | ||
+ | Axis4 := -5 | ||
+ | Axis2 := -5 | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | ;~ First Single Slider | ||
+ | If (Knob4>oldKnob4) ;knob Rose | ||
+ | { | ||
+ | NoKnobsMoved := False | ||
+ | oldKnob4 := Knob4 | ||
+ | If (Knob4>Axis4) ;knob Over Line | ||
+ | { | ||
+ | MouseClick,Left,ButtonX1,ButtonY | ||
+ | } | ||
+ | } else { | ||
+ | If (Knob4<oldKnob4) ;knob Fell | ||
+ | { | ||
+ | NoKnobsMoved := False | ||
+ | oldKnob4 := Knob4 | ||
+ | If (Knob4<Axis4) ;knob Bellow Line | ||
+ | { | ||
+ | MouseClick,Left,ButtonX1,ButtonY | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | ;~ Second Single Slider | ||
+ | If (Knob2>oldKnob2) ;knob Rose | ||
+ | { | ||
+ | NoKnobsMoved := False | ||
+ | oldKnob2 := Knob2 | ||
+ | If Knob2>0 ;knob Over Line | ||
+ | { | ||
+ | MouseClick,Left,ButtonX3,ButtonY | ||
+ | } | ||
+ | } else { | ||
+ | If (Knob2<oldKnob2) ;knob Fell | ||
+ | { | ||
+ | NoKnobsMoved := False | ||
+ | oldKnob2 := Knob2 | ||
+ | If Knob2<0 ;knob Bellow Line | ||
+ | { | ||
+ | MouseClick,Left,ButtonX3,ButtonY | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | ;~ Third Single Slider | ||
+ | If (Knob1>oldKnob1) ;knob Rose | ||
+ | { | ||
+ | NoKnobsMoved := False | ||
+ | oldKnob1 := Knob1 | ||
+ | If Knob1>0 ;knob Over Line | ||
+ | { | ||
+ | MouseClick,Left,ButtonX4,ButtonY | ||
+ | } | ||
+ | } else { | ||
+ | If (Knob1<oldKnob1) ;knob Fell | ||
+ | { | ||
+ | NoKnobsMoved := False | ||
+ | oldKnob1 := Knob1 | ||
+ | If Knob1 < 0 ;knob Bellow Line | ||
+ | { | ||
+ | MouseClick,Left,ButtonX4,ButtonY | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | } | ||
+ | |||
+ | Setup: | ||
+ | IfWinExist eGenesis Client | ||
+ | { | ||
+ | WinGet, GameWinHandle, ID, eGenesis Client | ||
+ | } else { | ||
+ | Msgbox, eGenesis client not running, exiting... | ||
+ | Exit | ||
} | } | ||
− | |||
− | + | ;~ Base | |
− | + | OriX := 625 | |
− | ; | + | OriY := 342 |
− | + | ||
− | + | ;~ Offsets | |
− | + | offRedLineStartX := OriX-625 | |
− | + | offRedLineStartY := OriY-333 | |
+ | offSliderT := OriY-364 | ||
+ | offSliderM := OriY-424 | ||
+ | offSliderB := OriY-483 | ||
+ | offSliderX1 := OriX-618 | ||
+ | offSliderX2 := OriX-654 | ||
+ | offSliderX3 := OriX-690 | ||
+ | offSliderX4 := OriX-726 | ||
+ | offSliderX5 := OriX-762 | ||
+ | offSliderX6 := OriX-798 | ||
+ | offSliderX7 := OriX-834 | ||
+ | offButtonY := OriY-503 | ||
+ | offButtonX1 := OriX-647 | ||
+ | offButtonX2 := OriX-688 | ||
+ | offButtonX3 := OriX-729 | ||
+ | offButtonX4 := OriX-769 | ||
+ | offButtonX5 := OriX-809 | ||
+ | |||
− | + | ;~ Locate Word Lime | |
+ | WinActivate eGenesis Client | ||
+ | ImageSearch, LimeX,LimeY,0,0,Xmax,Ymax,*40 Lime.png | ||
+ | If ErrorLevel=2 | ||
{ | { | ||
− | + | MsgBox,,,Couldn't Find Lime.png | |
− | + | } | |
− | + | If ErrorLevel<1 | |
− | + | { | |
− | + | GuiControl, Text, Label, Found Crematory Window | |
+ | } else { | ||
+ | If ErrorLevel<2 | ||
{ | { | ||
− | + | ;Didn't find the Word Lime | |
+ | MsgBox,,Crematory Macro,Crematory Window not Found, closing macro | ||
+ | ExitApp | ||
} | } | ||
} | } | ||
+ | |||
+ | RedLineStartX := LimeX-offRedLineStartX | ||
+ | RedLineStartY := LimeY-offRedLineStartY | ||
+ | SliderX1 := LimeX-offSliderX1 | ||
+ | SliderX2 := LimeX-offSliderX2 | ||
+ | SliderX3 := LimeX-offSliderX3 | ||
+ | SliderX4 := LimeX-offSliderX4 | ||
+ | SliderX5 := LimeX-offSliderX5 | ||
+ | SliderX6 := LimeX-offSliderX6 | ||
+ | SliderX7 := LimeX-offSliderX7 | ||
+ | SliderT := LimeY-offSliderT | ||
+ | SliderM := LimeY-offSliderM | ||
+ | SliderB := LimeY-offSliderB | ||
+ | ButtonY := LimeY-offButtonY | ||
+ | ButtonX1 := LimeX-offButtonX1 | ||
+ | ButtonX2 := LimeX-offButtonX2 | ||
+ | ButtonX3 := LimeX-offButtonX3 | ||
+ | ButtonX4 := LimeX-offButtonX4 | ||
+ | ButtonX5 := LimeX-offButtonX5 | ||
+ | ProgressSX := LimeX-2 | ||
+ | ProgressSY := LimeY-12 | ||
+ | ProgressEX := LimeX+3 | ||
+ | ProgressEY := LimeY+5 | ||
+ | SliderSearchSX1 := SliderX1-2 | ||
+ | SliderSearchSX2 := SliderX2-2 | ||
+ | SliderSearchSX3 := SliderX3-2 | ||
+ | SliderSearchSX4 := SliderX4-2 | ||
+ | SliderSearchSX5 := SliderX5-2 | ||
+ | SliderSearchSX6 := SliderX6-2 | ||
+ | SliderSearchSX7 := SliderX7-2 | ||
+ | SliderSearchEX1 := SliderX1+7 | ||
+ | SliderSearchEX2 := SliderX2+7 | ||
+ | SliderSearchEX3 := SliderX3+7 | ||
+ | SliderSearchEX4 := SliderX4+7 | ||
+ | SliderSearchEX5 := SliderX5+7 | ||
+ | SliderSearchEX6 := SliderX6+7 | ||
+ | SliderSearchEX7 := SliderX7+7 | ||
+ | SliderSearchSY := SliderT-10 | ||
+ | SliderSearchEY := SliderB+10 | ||
+ | oldKnob1 := 100 | ||
+ | oldKnob2 := 100 | ||
+ | oldKnob3 := 100 | ||
+ | oldKnob4 := 100 | ||
+ | oldKnob5 := 100 | ||
+ | oldKnob6 := 100 | ||
+ | oldKnob7 := 100 | ||
return | return | ||
− | + | Unload: ;Unload | |
− | + | ;~ Knobs not moving - Finished | |
− | ;~ | + | ;~ Refresh |
− | ;~ | + | MouseClick,Left,LimeX,LimeY |
− | + | sleep, 100 | |
− | + | ;~ Find Take | |
− | + | ImageSearch,LoadX,LoadY,LimeX-29,LimeY-136,LimeX+49,LimeY-40,*40 Take.png | |
− | + | If ErrorLevel<1 | |
− | |||
− | |||
{ | { | ||
− | + | MouseClick,Left,LoadX,LoadY | |
− | + | sleep,300 | |
− | + | ImageSearch,EveX,EveY,LoadX,LoadY-50,LoadX+133,LoadY+50,*90 Everything.png | |
+ | If ErrorLevel<1 | ||
+ | { | ||
+ | MouseClick,Left,EveX,EveY | ||
+ | sleep, 300 | ||
+ | } | ||
} | } | ||
− | + | return | |
− | + | ||
− | ;~ | + | Load: |
− | + | ;~ Knobs not moving - Finished | |
− | + | ;~ Refresh | |
− | + | MouseClick,Left,LimeX,LimeY | |
− | + | sleep, 100 | |
+ | ;~ Find Load | ||
+ | ImageSearch,LoadX,LoadY,LimeX-29,LimeY-136,LimeX+49,LimeY-40,*40 Load.png | ||
+ | If ErrorLevel<1 | ||
{ | { | ||
− | + | ;load Limestone | |
− | + | sleep,100 | |
− | + | MouseClick,Left,LoadX,LoadY | |
− | + | sleep,100 | |
− | + | MouseClick,Left,LoadX+14,LoadY-33 | |
− | + | sleep,200 | |
− | + | MouseClick,Left,floor(Xmax/2),floor(Ymax/2)+44 | |
− | + | sleep,200 | |
− | + | ;load Leeks | |
− | + | sleep,100 | |
− | + | MouseClick,Left,LoadX,LoadY | |
− | + | sleep,100 | |
− | + | MouseClick,Left,LoadX+14,LoadY-17 | |
− | + | sleep,200 | |
− | + | MouseClick,Left,floor(Xmax/2),floor(Ymax/2)+44 | |
− | + | sleep,200 | |
− | + | ;load Flax | |
− | + | sleep,100 | |
− | + | MouseClick,Left,LoadX,LoadY | |
− | + | sleep,100 | |
− | + | MouseClick,Left,LoadX+14,LoadY | |
+ | sleep,200 | ||
+ | MouseClick,Left,floor(Xmax/2),floor(Ymax/2)+44 | ||
+ | sleep,200 | ||
+ | ;load Papyrus | ||
+ | sleep,100 | ||
+ | MouseClick,Left,LoadX,LoadY | ||
+ | sleep,100 | ||
+ | MouseClick,Left,LoadX+14,LoadY+17 | ||
+ | sleep,200 | ||
+ | MouseClick,Left,floor(Xmax/2),floor(Ymax/2)+44 | ||
+ | sleep,200 | ||
+ | ;load Wood | ||
+ | sleep,100 | ||
+ | MouseClick,Left,LoadX,LoadY | ||
+ | sleep,100 | ||
+ | MouseClick,Left,LoadX+14,LoadY+33 | ||
+ | sleep,200 | ||
+ | MouseClick,Left,floor(Xmax/2),floor(Ymax/2)+44 | ||
+ | sleep,200 | ||
+ | ;Fire | ||
+ | MouseClick,Left,LoadX,LoadY-17 | ||
sleep, 100 | sleep, 100 | ||
} | } | ||
− | + | return | |
− | + | ||
+ | Close: | ||
+ | ExitApp | ||
− | + | ^a:: ;automode | |
+ | if (autoMode=True) | ||
{ | { | ||
− | + | autoMode := False | |
− | + | GuiControl,,myText,CTRL+A - Auto Mode is OFF | |
− | + | } else { | |
− | + | autoMode := True | |
− | + | GuiControl,,myText,CTRL+A - Auto Mode is ON | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
+ | return | ||
− | + | ^p::pause | |
− | |||
− | |||
^r::reload | ^r::reload | ||
− | |||
</pre> | </pre> |
Revision as of 03:50, 31 October 2010
;Ctrl+R to reload ;Ctrl+P to pause ;~ Info WinActivate, eGenesis Client WinGetActiveStats, win_Title, Xmax, Ymax, win_Xpos, win_Ypos StartXGUI := Xmax+win_Xpos-255 StartYGUI := win_Ypos+35 Gui, +AlwaysOnTop +ToolWindow -Border +Background Gui, Add, Text,x10 y10,Crematory Macro Running Gui, Add, Text,x10 y25,CTRL+R - Restart macro Gui, Add, Text,x10 y40,CTRL+P - Pause macro Gui, Add, Text,x10 y55 vMyText,CTRL+A - Turn ON Auto mode Gui, Add, Text,x10 y75,Keep the crematory window away from popups. Gui, Add, Button, x200 y5 gClose, Close Gui, Show, X%StartXGUI% Y%StartYGUI% w240 h100, New GUI Window gosub, Setup WinActivate, eGenesis Client lastTimeSlidersMoved := A_Now autoMode := false Loop { If (autoMode=true) { ;~ check if completed ImageSearch, BarX,BarY,ProgressSX,ProgressSY,ProgressEX,ProgressEY,*40 BitRed.png if ErrorLevel=1 { ;~ Knobs not moving - Finished gosub, unload gosub, load } else { currentTime := A_Now tempLast := LastTimeSlidersMoved EnvSub, tempLast,,Seconds If (tempLast<-300) { gosub, unload gosub, load } } } ;~ Check to make sure the window wasn't moved WindowMoved := false ImageSearch, NewLimeX,NewLimeY,0,0,Xmax,Ymax,*40 Lime.png If ErrorLevel<1 { If (NewLimeX<>LimeX) { WindowMoved := true } else { If (NewLimeY<>LimeY) { WindowMoved := True } } If WindowMoved=True { gosub, Setup } } else { gosub, Setup } ImageSearch, KnobX,KnobY1,SliderSearchSX1,SliderSearchSY,SliderSearchEX1,SliderSearchEY,*40 SliderKnob.png ImageSearch, KnobX,KnobY2,SliderSearchSX2,SliderSearchSY,SliderSearchEX2,SliderSearchEY,*40 SliderKnob.png ImageSearch, KnobX,KnobY3,SliderSearchSX3,SliderSearchSY,SliderSearchEX3,SliderSearchEY,*40 SliderKnob.png ImageSearch, KnobX,KnobY4,SliderSearchSX4,SliderSearchSY,SliderSearchEX4,SliderSearchEY,*40 SliderKnob.png ImageSearch, KnobX,KnobY5,SliderSearchSX5,SliderSearchSY,SliderSearchEX5,SliderSearchEY,*40 SliderKnob.png ImageSearch, KnobX,KnobY6,SliderSearchSX6,SliderSearchSY,SliderSearchEX6,SliderSearchEY,*40 SliderKnob.png ImageSearch, KnobX,KnobY7,SliderSearchSX7,SliderSearchSY,SliderSearchEX7,SliderSearchEY,*40 SliderKnob.png Knob1 := SliderM-KnobY1-1 Knob2 := SliderM-KnobY2-1 Knob3 := SliderM-KnobY3-1 Knob4 := SliderM-KnobY4-1 Knob5 := SliderM-KnobY5-1 Knob6 := SliderM-KnobY6-1 Knob7 := SliderM-KnobY7-1 NoKnobsMoved := True ;~ Reverse Direction Sliders If (Knob3<>oldKnob3) ;knob moved { NoKnobsMoved := False If (Knob3>oldKnob3) ;knob rose { If (Knob3>Knob7) ;Knob3 is above knob7, knobs are spreading out { MouseClick,Left,ButtonX2,ButtonY } } else { If (Knob3<Knob7) ;Knob3 is bellow knob7, knobs are spreading out { MouseClick,Left,ButtonX2,ButtonY } } oldKnob3 := Knob3 oldKnob7 := Knob7 } ;~ Reverse Direction Sliders If (Knob5<>oldKnob5) ;knob moved { NoKnobsMoved := False If (Knob5>oldKnob5) ;knob rose { If (Knob5>Knob6) ;Knob5 is above Knob6, knobs are spreading out { MouseClick,Left,ButtonX5,ButtonY } } else { If (Knob5<Knob6) ;Knob5 is bellow Knob6, knobs are spreading out { MouseClick,Left,ButtonX5,ButtonY } } oldKnob5 := Knob5 oldKnob6 := Knob6 } ;~ ******************** ;~ COMMENTED SECTION, USE THIS FOR DOUBLE SLIDERS THAT TRAVEL IN THE SAME DIRECTION ;~ ******************** ;~ Same Direction Sliders ;~ If (Knob4<>oldKnob4) ;knob moved ;~ { ;~ NoKnobsMoved := False ;~ averagePos := floor((Knob4+Knob6)/2) ;~ If (Knob4>oldKnob4) ;knobs are going up ;~ { ;~ If averagePos>0 ;averageposition is above center ;~ { ;~ MouseClick,Left,ButtonX4,ButtonY ;~ } ;~ } else { ;knobs are going down ;~ If averagePos<0 ;averageposition is bellow center ;~ { ;~ MouseClick,Left,ButtonX4,ButtonY ;~ } ;~ } ;~ oldKnob4 := Knob4 ;~ oldKnob6 := Knob6 ;~ } NumAbove := 0 NumBellow := 0 If Knob3<0 { NumBellow++ } Else { NumAbove++ } If Knob7<0 { NumBellow++ } Else { NumAbove++ } If Knob5<0 { NumBellow++ } Else { NumAbove++ } If Knob6<0 { NumBellow++ } Else { NumAbove++ } Axis4 := 0 Axis2 := 0 If NumAbove=1 { Axis4 := 5 } else { If NumAbove=0 { Axis4 := 5 Axis2 := 5 } else { If NumBellow=1 { Axis4 := -5 } else { If NumBellow=0 { Axis4 := -5 Axis2 := -5 } } } } ;~ First Single Slider If (Knob4>oldKnob4) ;knob Rose { NoKnobsMoved := False oldKnob4 := Knob4 If (Knob4>Axis4) ;knob Over Line { MouseClick,Left,ButtonX1,ButtonY } } else { If (Knob4<oldKnob4) ;knob Fell { NoKnobsMoved := False oldKnob4 := Knob4 If (Knob4<Axis4) ;knob Bellow Line { MouseClick,Left,ButtonX1,ButtonY } } } ;~ Second Single Slider If (Knob2>oldKnob2) ;knob Rose { NoKnobsMoved := False oldKnob2 := Knob2 If Knob2>0 ;knob Over Line { MouseClick,Left,ButtonX3,ButtonY } } else { If (Knob2<oldKnob2) ;knob Fell { NoKnobsMoved := False oldKnob2 := Knob2 If Knob2<0 ;knob Bellow Line { MouseClick,Left,ButtonX3,ButtonY } } } ;~ Third Single Slider If (Knob1>oldKnob1) ;knob Rose { NoKnobsMoved := False oldKnob1 := Knob1 If Knob1>0 ;knob Over Line { MouseClick,Left,ButtonX4,ButtonY } } else { If (Knob1<oldKnob1) ;knob Fell { NoKnobsMoved := False oldKnob1 := Knob1 If Knob1 < 0 ;knob Bellow Line { MouseClick,Left,ButtonX4,ButtonY } } } } Setup: IfWinExist eGenesis Client { WinGet, GameWinHandle, ID, eGenesis Client } else { Msgbox, eGenesis client not running, exiting... Exit } ;~ Base OriX := 625 OriY := 342 ;~ Offsets offRedLineStartX := OriX-625 offRedLineStartY := OriY-333 offSliderT := OriY-364 offSliderM := OriY-424 offSliderB := OriY-483 offSliderX1 := OriX-618 offSliderX2 := OriX-654 offSliderX3 := OriX-690 offSliderX4 := OriX-726 offSliderX5 := OriX-762 offSliderX6 := OriX-798 offSliderX7 := OriX-834 offButtonY := OriY-503 offButtonX1 := OriX-647 offButtonX2 := OriX-688 offButtonX3 := OriX-729 offButtonX4 := OriX-769 offButtonX5 := OriX-809 ;~ Locate Word Lime WinActivate eGenesis Client ImageSearch, LimeX,LimeY,0,0,Xmax,Ymax,*40 Lime.png If ErrorLevel=2 { MsgBox,,,Couldn't Find Lime.png } If ErrorLevel<1 { GuiControl, Text, Label, Found Crematory Window } else { If ErrorLevel<2 { ;Didn't find the Word Lime MsgBox,,Crematory Macro,Crematory Window not Found, closing macro ExitApp } } RedLineStartX := LimeX-offRedLineStartX RedLineStartY := LimeY-offRedLineStartY SliderX1 := LimeX-offSliderX1 SliderX2 := LimeX-offSliderX2 SliderX3 := LimeX-offSliderX3 SliderX4 := LimeX-offSliderX4 SliderX5 := LimeX-offSliderX5 SliderX6 := LimeX-offSliderX6 SliderX7 := LimeX-offSliderX7 SliderT := LimeY-offSliderT SliderM := LimeY-offSliderM SliderB := LimeY-offSliderB ButtonY := LimeY-offButtonY ButtonX1 := LimeX-offButtonX1 ButtonX2 := LimeX-offButtonX2 ButtonX3 := LimeX-offButtonX3 ButtonX4 := LimeX-offButtonX4 ButtonX5 := LimeX-offButtonX5 ProgressSX := LimeX-2 ProgressSY := LimeY-12 ProgressEX := LimeX+3 ProgressEY := LimeY+5 SliderSearchSX1 := SliderX1-2 SliderSearchSX2 := SliderX2-2 SliderSearchSX3 := SliderX3-2 SliderSearchSX4 := SliderX4-2 SliderSearchSX5 := SliderX5-2 SliderSearchSX6 := SliderX6-2 SliderSearchSX7 := SliderX7-2 SliderSearchEX1 := SliderX1+7 SliderSearchEX2 := SliderX2+7 SliderSearchEX3 := SliderX3+7 SliderSearchEX4 := SliderX4+7 SliderSearchEX5 := SliderX5+7 SliderSearchEX6 := SliderX6+7 SliderSearchEX7 := SliderX7+7 SliderSearchSY := SliderT-10 SliderSearchEY := SliderB+10 oldKnob1 := 100 oldKnob2 := 100 oldKnob3 := 100 oldKnob4 := 100 oldKnob5 := 100 oldKnob6 := 100 oldKnob7 := 100 return Unload: ;Unload ;~ Knobs not moving - Finished ;~ Refresh MouseClick,Left,LimeX,LimeY sleep, 100 ;~ Find Take ImageSearch,LoadX,LoadY,LimeX-29,LimeY-136,LimeX+49,LimeY-40,*40 Take.png If ErrorLevel<1 { MouseClick,Left,LoadX,LoadY sleep,300 ImageSearch,EveX,EveY,LoadX,LoadY-50,LoadX+133,LoadY+50,*90 Everything.png If ErrorLevel<1 { MouseClick,Left,EveX,EveY sleep, 300 } } return Load: ;~ Knobs not moving - Finished ;~ Refresh MouseClick,Left,LimeX,LimeY sleep, 100 ;~ Find Load ImageSearch,LoadX,LoadY,LimeX-29,LimeY-136,LimeX+49,LimeY-40,*40 Load.png If ErrorLevel<1 { ;load Limestone sleep,100 MouseClick,Left,LoadX,LoadY sleep,100 MouseClick,Left,LoadX+14,LoadY-33 sleep,200 MouseClick,Left,floor(Xmax/2),floor(Ymax/2)+44 sleep,200 ;load Leeks sleep,100 MouseClick,Left,LoadX,LoadY sleep,100 MouseClick,Left,LoadX+14,LoadY-17 sleep,200 MouseClick,Left,floor(Xmax/2),floor(Ymax/2)+44 sleep,200 ;load Flax sleep,100 MouseClick,Left,LoadX,LoadY sleep,100 MouseClick,Left,LoadX+14,LoadY sleep,200 MouseClick,Left,floor(Xmax/2),floor(Ymax/2)+44 sleep,200 ;load Papyrus sleep,100 MouseClick,Left,LoadX,LoadY sleep,100 MouseClick,Left,LoadX+14,LoadY+17 sleep,200 MouseClick,Left,floor(Xmax/2),floor(Ymax/2)+44 sleep,200 ;load Wood sleep,100 MouseClick,Left,LoadX,LoadY sleep,100 MouseClick,Left,LoadX+14,LoadY+33 sleep,200 MouseClick,Left,floor(Xmax/2),floor(Ymax/2)+44 sleep,200 ;Fire MouseClick,Left,LoadX,LoadY-17 sleep, 100 } return Close: ExitApp ^a:: ;automode if (autoMode=True) { autoMode := False GuiControl,,myText,CTRL+A - Auto Mode is OFF } else { autoMode := True GuiControl,,myText,CTRL+A - Auto Mode is ON } return ^p::pause ^r::reload