The Wiki for Tale 6 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.
Guilds/Gaia/Autohotkey
Karedas
Faire pousser du lin
J'utilise une macro d'Iggys (Macros/Iggys/Flax) que j'ai légèrement modifier pour la rendre utilisable sur une faible résolution en hauteur.
Epinglez le menu planter un lin en haut a gauche de la fenetre, ayez au moins 15 graines et 15 cruches d'eau (si vous faites pousser) et lancez la macro
Mettez vous en camera F8+F8 (vu de haut) zoomée a fond et bloquez le zoom avec ALT+L
Appuyez sur CTRL+ALT+E pour faire des graines Appuyez sur CTRL+ATT+F pour faire pousser le lin
Un fenêtre vous demande le nombre de passages, je vous conseille de pas être trop gourmands, parfois la macro se vautre sur un lin et on se met a se promener au lieu de récolter. Je les lance 1 par 1 ça me permet de surveiller que tout marche bien.
Vous pouvez mettre la macro en pause (si un menu ne s'est pas bien épinglé vous pouvez comme ça le mettre au bon endroit) avec CTRL+ALT+SHIFT+P
Téléchargez ce fichier et décompressez le Flax macro v0.801 Last update
Puis remplacez le code dans Flax_v1.0en par le code qui suit.
SetDefaultMouseSpeed, 2 ; MouseSpeed 2 it's too fast, MouseSpeed 3 too slow. SetMouseDelay, 21 ; As there is no 2,5 then we need a little pause for the mouse movement. ;Global Constants ;Location of the Flax: ? planting button (assumes far top left of screen, atm.) plantButtonX:=50 plantButtonY:=44 ;Flax Bed Size: flaxBed:=319 ;Flax Popup Box Size flaxBoxX:=176 flaxBoxY:=100 ;Grid Layout ;XY|Xx|Xx|Xx ;Yy|UL|UM|UR ;Yy|ML|MM|MR ;Yy|LL|LM|LR ;Yy|AL|AM|AR ;Yy|BL|BM|BR ;all positions are based off of ULxy ULx:=4 ULy:=55 UMx:=ULx + flaxBoxX UMy:=ULy URx:=UMx + flaxBoxX URy:=ULy MLx:=ULx MLy:=ULy + flaxBoxY MMx:=MLx + flaxBoxX MMy:=MLy MRx:=MMx + flaxBoxX MRy:=MLy LLx:=ULx LLy:=MLy + flaxBoxY LMx:=LLx + flaxBoxX LMy:=LLy LRx:=LMx + flaxBoxX LRy:=LLy ALx:=ULx ALy:=LLy + flaxBoxY AMx:=ULx + flaxBoxX AMy:=ALy ARx:=UMx + flaxBoxX ARy:=ALy BLx:=ULx BLy:=ALy + flaxBoxY BMx:=ULx + flaxBoxX BMy:=BLy BRx:=UMx + flaxBoxX BRy:=BLy ^!+p::Pause ;Pause Script Ctrl+Alt+Shift+P ;Move the popup menu box to the specified topleft corner by posX,posy ;(assumes the menu was just opend and the mouse hasn't moved) moveMenu(posX, posY) { Click up MouseGetPos , MX, MY MXv:=MX+50 MYv:=MY-35 MouseMove , MX+50, MY-35 Click down MXv:=posX+50 MYv:=posY+15 MouseMove , posX+50, posY+15 Click up return } refreshMenu(TCx,TCy) { ;Relative location to click Rx:=TCx+95 Ry:=TCy+30 click %Rx% , %Ry% return } ;UnPin menu with topleft corner at TCx,TCy unPinMenu(TCx,TCy) { ;offset pin from top left corner pinLocX:=TCx+150 pinLocY:=TCy+17 msgbox , 0 , unpinning menu, "Unpinning Menu at %TCx% _ %TCy% pin at %pinLocX% _ %pinLocY%" Click %pinLocX% , %pinLocY% return 1 } ;Process the top left corner of the flax menu at TCx,TCy processFlax(TCx,TCy) { ;Action item Relative Location actionX:=TCx+50 actionY:=TCy+50 ;Search Area Adjustment SATCx:=TCx+174 SATCy:=TCy+100 ;Search Area Adjustment for Rip out RPTCx:=TCx+174 RPTCy:=TCy+120 refreshMenu(TCx,TCy) sleep 230 ;Msgbox , 0 , Searchbox, "Search area is %TCx% _ %TCy% by %SATCx% _ %SATCy%" ImageSearch, Px, Py, TCx, TCy, SATCx, SATCy, *50 Find_Weed_this.png if (ErrorLevel < 1) { Click %actionX% , %actionY% ;Click Weed This return 1 ; found the "weed this" } ImageSearch, Px, Py, TCx, TCy, SATCx, SATCy, *50 Find_Weed_and.png if (ErrorLevel < 1) { Click %actionX% , %actionY% ;Click Weed and Water This return 1 ; found the "weed and" } ImageSearch, Px, Py, TCx, TCy, SATCx, SATCy, *50 Find_Harvest_this.png if (ErrorLevel < 1) { Click %actionX% , %actionY% ;Click Harvest This ;unPinMenu(TCx,TCy) ;pinLocX:=TCx+155 ;pinLocY:=TCy+17 ;Click %pinLocX% , %pinLocY% ImageSearch, Px, Py, TCx, TCy, SATCx, SATCy, *50 Pinned.png if (ErrorLevel < 1) { utilx:=Px+10 utily:=Py+10 Click %utilx%, %utily% ; Unpin window } return 0 ; found the "Harvest this", menu removed } ImageSearch, Px, Py, TCx, TCy, SATCx, SATCy, *50 Find_Harvest_seeds.png if (ErrorLevel < 1) { ;ripOutFlax(TCx,TCy) Click %actionX% , %actionY% ;Click Harvest seeds utilX:=TCx+35 utilY:=TCy+82 Click %utilX%, %utilY% ;click Utilities ImageSearch, Px, Py, TCx, TCy, RPTCx, RPTCy, *50 Find_Rip_out.png if (ErrorLevel < 1) { utilx:=Px+10 utily:=Py+10 Click %utilx%, %utily% ; Click Rip out } ;unPinMenu(TCx,TCy) ;pinLocX:=TCx+150 ;pinLocY:=TCy+17 ;Click %pinLocX% , %pinLocY% ImageSearch, Px, Py, TCx, TCy, SATCx, SATCy, *50 Pinned.png if (ErrorLevel < 1) { utilx:=Px+10 utily:=Py+10 Click %utilx%, %utily% ; Unpin window } return 0 ; found the "harvest seeds", menu removed } return 1 ; no clicks here } ;Process the top left corner of the flax menu at TCx,TCy processFlaxSeeds(TCx,TCy,seedCount) { ;Action item Relative Location actionX:=TCx+50 actionY:=TCy+50 ;Search Area Adjustment SATCx:=TCx+174 SATCy:=TCy+100 ;Search Area Adjustment for Rip out RPTCx:=TCx+174 RPTCy:=TCy+120 refreshMenu(TCx,TCy) sleep 230 ImageSearch, Px, Py, TCx, TCy, SATCx, SATCy, *50 Find_Harvest_seeds.png if (ErrorLevel < 1) { ;ripOutFlax(TCx,TCy) Click %actionX% , %actionY% ;Click Harvest seeds if (seedCount >= 5) { utilX:=TCx+35 utilY:=TCy+82 Click %utilX%, %utilY% ;click Utilities ImageSearch, Px, Py, TCx, TCy, RPTCx, RPTCy, *50 Find_Rip_out.png if (ErrorLevel < 1) { utilx:=Px+10 utily:=Py+10 Click %utilx%, %utily% ; Click Rip out } ;pinLocX:=TCx+150 ;pinLocY:=TCy+17 ;Click %pinLocX% , %pinLocY% ImageSearch, Px, Py, TCx, TCy, SATCx, SATCy, *50 Pinned.png if (ErrorLevel < 1) { utilx:=Px+10 utily:=Py+10 Click %utilx%, %utily% ; Unpin window } return 99 } return 1 ; found the "harvest seeds", menu removed } return 0 ; no clicks here } ;Rip out the flax bed of the box with top left corner at TCx,TCy ripOutFlax(TCx,TCy) { ;Utilities menu relative location utilX:=TCx+35 utilY:=TCy+82 Click %utilX%, %utilY% ;click Utilities ;adjust for new popup menu MouseGetPos , MX, MY ROFx:=MX+50 ;Rip Out Flax button X ROFy:=MY-18 ;Rip Out Flax button Y clickItem(ROFx,ROFy) ; click Rip out Flax return } ;Pin menu assuming that it was just brought up pinMenu() { mouseGetPos , MX , MY ;Pin icon relative location pinX:=MX+155 pinY:=MY-33 click %pinX% , %pinY% ;Click the pin button MouseMove , MX, MY, 0 ;put back the mouse return } ;Plant the flax seed plantSeed() { pBX:=50 pBY:=44 ;click on the flax seed button Click %pbX% , %pbY% return } ;Move avatar to location specified AvX, AvY moveAvatar(AvX, AvY) { Click %AvX%, %AvY% sleep 500 return } ;Bring up the Flax bed's popup menu provided the avatars current location AvX,AvY flaxMenu(AvX,AvY) { ;MouseGetPos , MX, MY ;Use above and to the right of the avatar to bring up menu flaxMenuX:= AvX+50 flaxMenuY:= AvY-50 click %flaxMenuX% , %flaxMenuY% pinMenu() ;MouseMove , MX, MY return } ;;Click the resource at X,Y then return the pointer clickItem(X, Y) { oldMouseDelay:= A_MouseDelay setMouseDelay , 1 Click up MouseGetPos , MX, MY Click , %X%, %Y% MouseMove , MX, MY setMouseDelay , A_MouseDelay return } ^!f:: WinWait, eGenesis Client, IfWinNotActive, eGenesis Client, , WinActivate, eGenesis Client, WinWaitActive, eGenesis Client, WinGetActiveStats, win_Title, win_Width, win_Height, win_Xpos, win_Ypos InputBox, flaxNum, Flaxing time!, How many passes do you want? ;some local constants ;msgBox " UL= %ULx%,%ULy% _ UM= %UMx%,%UMy% _ UR= %URx%,%URy% _ ML= %MLx%,%MLy% _ MM= %MMx%,%MMy% _ MR= %MRx%,%MRy% _ LL= %LLx%,%LLy% _ LM= %LMx%,%LMy% _ LR= %LRx%,%LRy% _ AL= %ALx%,%ALy% _ AM= %AMx%,%AMy% _ AR= %ARx%,%ARy% _ BL= %BLx%,%BLy% _ BM= %BMx%,%BMy% _ BR= %BRx%,%BRy%" ;middle of the window where the avatar is located avatarX:=win_Width/2 avatarY:=win_Height/2 + 28 ;add a little for title-bar adjustment moveDist:=flaxBed + 8 ;Move one plot plus a little ;Change camera to Cartogropher mode, zoom in and lock camera MouseMove %avatarX%, %avatarY% ;standard movement values moveLeft:= avatarX - moveDist moveRight:= avatarX + moveDist moveUp:= avatarY - moveDist moveDown:= avatarY + moveDist loop { SetMouseDelay, 21 ;Left Rigth Flipper moveLR:=1 ;0 for left, 1 for right TrayTip Planting, still %flaxNum% passes to go,15,1 if (flaxNum<=0) { TrayTip, Done, Enjoy your flax!, 15, 1 soundPlay *64,1 Sleep 360 exit } flaxNum:=flaxNum-1 if (A_Index==1) { moveAvatar(avatarX,moveUp) moveAvatar(moveRight,avatarY) } else { moveAvatar(avatarX,moveUp) moveAvatar(avatarX,moveUp) moveAvatar(avatarX,moveUp) moveAvatar(avatarX,moveUp) moveAvatar(moveRight,avatarY) moveAvatar(moveRight,AvatarY) } ;Set all grid boxes to non moved values ( 0 ) UL:=0 UM:=0 UR:=0 ML:=0 MM:=0 MR:=0 LL:=0 LM:=0 LR:=0 AL:=0 AM:=0 AR:=0 BL:=0 BM:=0 BR:=0 gridXCounter:=3 gridYCounter:=5 loop { if (gridYCounter > 0) { gridYCounter:=gridYCounter-1 if (moveLR==1) { moveLR:=0 } else { moveLR:=1 } gridXCounter:=3 loop { if (gridXCounter > 0) { gridXCounter:=gridXCounter-1 plantSeed() flaxMenu(avatarX, avatarY) if (gridYCounter==4) { if (UL==0) { moveMenu(ULx,ULy) UL:=1 } else if (UM==0) { moveMenu(UMx,UMy) UM:=1 } else if (UR==0) { moveMenu(URx,URy) UR:=1 } } if (gridYCounter==3) { if (ML==0) { moveMenu(MLx,MLy) ML:=1 } else if (MM==0) { moveMenu(MMx,MMy) MM:=1 } else if (MR==0) { moveMenu(MRx,MRy) MR:=1 } } if (gridYCounter==2) { if (LL==0) { moveMenu(LLx,LLy) LL:=1 } else if (LM==0) { moveMenu(LMx,LMy) LM:=1 } else if (LR==0) { moveMenu(LRx,LRy) LR:=1 } } if (gridYCounter==1) { if (AL==0) { moveMenu(ALx,ALy) AL:=1 } else if (AM==0) { moveMenu(AMx,AMy) AM:=1 } else if (AR==0) { moveMenu(ARx,ARy) AR:=1 } } if (gridYCounter==0) { if (BL==0) { moveMenu(BLx,BLy) BL:=1 } else if (BM==0) { moveMenu(BMx,BMy) BM:=1 } else if (BR==0) { moveMenu(BRx,BRy) BR:=1 } } if (moveLR==0 && gridXCounter > 0) { moveAvatar(moveLeft,avatarY) } else if (moveLR==1 && gridXCounter > 0) { moveAvatar(moveRight,avatarY) } } else { break } } } else { break } if (gridYCounter>0) moveAvatar(avatarX, moveDown) } ;start harvest loops loop { if (UL==0 && UM==0 && UR==0 && ML==0 && MM==0 && MR==0 && LL==0 && LM==0 && LR==0 && AL==0 && AM==0 && AR==0 && BL==0 && BM==0 && BR==0) break if UL UL:=processFlax(ULx,ULy) if UM UM:=processFlax(UMx,UMy) if UR UR:=processFlax(URx,URy) if ML ML:=processFlax(MLx,MLy) if MM MM:=processFlax(MMx,MMy) if MR MR:=processFlax(MRx,MRy) if LL LL:=processFlax(LLx,LLy) if LM LM:=processFlax(LMx,LMy) if LR LR:=processFlax(LRx,LRy) if AL AL:=processFlax(ALx,ALy) if AM AM:=processFlax(AMx,AMy) if AR AR:=processFlax(ARx,ARy) if BL BL:=processFlax(BLx,BLy) if BM BM:=processFlax(BMx,BMy) if BR BR:=processFlax(BRx,BRy) } SoundPlay *-1, 1 } SoundPlay *64,1 ^!e:: WinWait, eGenesis Client, IfWinNotActive, eGenesis Client, , WinActivate, eGenesis Client, WinWaitActive, eGenesis Client, WinGetActiveStats, win_Title, win_Width, win_Height, win_Xpos, win_Ypos MsgBox ,48,Let's Flax!, Make sure your plant menu is pinned on top left corner.`n Items and skills menu minimized.`n The half side of the screen should be totally free of menus or icons.`n Ctrl+Alt+E for seeding. Ctrl+Alt+F for flaxing.`n Ctrl+Alt+Shift+P for pause/unpause macro. InputBox, flaxNum, Seeding time!, How many passes do you want? ;some local constants ;msgBox " UL= %ULx%,%ULy% _ UM= %UMx%,%UMy% _ UR= %URx%,%URy% _ ML= %MLx%,%MLy% _ MM= %MMx%,%MMy% _ MR= %MRx%,%MRy% _ LL= %LLx%,%LLy% _ LM= %LMx%,%LMy% _ LR= %LRx%,%LRy%" _ AL= %ALx%,%ALy% _ AM= %AMx%,%AMy% _ AR= %ARx%,%ARy% _ BL= %BLx%,%BLy% _ BM= %BMx%,%BMy% _ BR= %BRx%,%BRy% ;middle of the window where the avatar is located avatarX:=win_Width/2 avatarY:=win_Height/2 + 28 ;add a little for title-bar adjustment moveDist:=flaxBed + 5 ;Move one plot plus a little ;Change camera to Cartogropher mode, zoom in and lock camera MouseMove %avatarX%, %avatarY% ;standard movement values moveLeft:= avatarX - moveDist moveRight:= avatarX + moveDist moveUp:= avatarY - moveDist moveDown:= avatarY + moveDist loop { SetMouseDelay, 21 ;Left Rigth Flipper moveLR:=1 ;0 for left, 1 for right TrayTip Flaxing, still %flaxNum% passes to go,15,1 if (flaxNum<=0) { TrayTip, Done, Enjoy your flax!, 15, 1 soundPlay *64,1 Sleep 360 exit } flaxNum:=flaxNum-1 if (A_Index==1) { moveAvatar(avatarX,moveUp) moveAvatar(moveRight,avatarY) } else { moveAvatar(avatarX,moveUp+50) moveAvatar(avatarX,moveUp) moveAvatar(avatarX,moveUp) moveAvatar(avatarX,moveUp) moveAvatar(moveRight-50,avatarY) moveAvatar(moveRight,AvatarY) } ;Set all grid boxes to non moved values ( 0 ) UL:=0 UM:=0 UR:=0 ML:=0 MM:=0 MR:=0 LL:=0 LM:=0 LR:=0 AL:=0 AM:=0 AR:=0 BL:=0 BM:=0 BR:=0 gridXCounter:=3 gridYCounter:=5 loop { if (gridYCounter > 0) { gridYCounter:=gridYCounter-1 if (moveLR==1) { moveLR:=0 } else { moveLR:=1 } gridXCounter:=3 loop { if (gridXCounter > 0) { gridXCounter:=gridXCounter-1 plantSeed() flaxMenu(avatarX, avatarY) if (gridYCounter==4) { if (UL==0) { moveMenu(ULx,ULy) UL:=1 } else if (UM==0) { moveMenu(UMx,UMy) UM:=1 } else if (UR==0) { moveMenu(URx,URy) UR:=1 } } if (gridYCounter==3) { if (ML==0) { moveMenu(MLx,MLy) ML:=1 } else if (MM==0) { moveMenu(MMx,MMy) MM:=1 } else if (MR==0) { moveMenu(MRx,MRy) MR:=1 } } if (gridYCounter==2) { if (LL==0) { moveMenu(LLx,LLy) LL:=1 } else if (LM==0) { moveMenu(LMx,LMy) LM:=1 } else if (LR==0) { moveMenu(LRx,LRy) LR:=1 } } if (gridYCounter==1) { if (AL==0) { moveMenu(ALx,ALy) AL:=1 } else if (AM==0) { moveMenu(AMx,AMy) AM:=1 } else if (AR==0) { moveMenu(ARx,ARy) AR:=1 } } if (gridYCounter==0) { if (BL==0) { moveMenu(BLx,BLy) BL:=1 } else if (BM==0) { moveMenu(BMx,BMy) BM:=1 } else if (BR==0) { moveMenu(BRx,BRy) BR:=1 } } if (moveLR==0 && gridXCounter > 0) { moveAvatar(moveLeft,avatarY) } else if (moveLR==1 && gridXCounter > 0) { moveAvatar(moveRight,avatarY) } } else { break } } } else { break } if (gridYCounter>0) moveAvatar(avatarX, moveDown) } ;start gather loops loop { if (UL>6 && UM>6 && UR>6 && ML>6 && MM>6 && MR>6 && LL>6 && LM>6 && LR>6 && AL>6 && AM>6 && AR>6 && BL>6 && BM>6 && BR>6) break if UL<6 UL+=processFlaxSeeds(ULx,ULy,UL) if UM<6 UM+=processFlaxSeeds(UMx,UMy,UM) if UR<6 UR+=processFlaxSeeds(URx,URy,UR) if ML<6 ML+=processFlaxSeeds(MLx,MLy,ML) if MM<6 MM+=processFlaxSeeds(MMx,MMy,MM) if MR<6 MR+=processFlaxSeeds(MRx,MRy,MR) if LL<6 LL+=processFlaxSeeds(LLx,LLy,LL) if LM<6 LM+=processFlaxSeeds(LMx,LMy,LM) if LR<6 LR+=processFlaxSeeds(LRx,LRy,LR) if AL<6 AL+=processFlaxSeeds(ALx,ALy,AL) if AM<6 AM+=processFlaxSeeds(AMx,AMy,AM) if AR<6 AR+=processFlaxSeeds(ARx,ARy,AR) if BL<6 BL+=processFlaxSeeds(BLx,BLy,BL) if BM<6 BM+=processFlaxSeeds(BMx,BMy,BM) if BR<6 BR+=processFlaxSeeds(BRx,BRy,BR) } SoundPlay *1, 1 }