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:Quin/Macros

From A Tale in the Desert
< User:Quin
Revision as of 06:43, 9 January 2009 by Quin (talk | contribs) (New page: I primarily use [http://www.autohotkey.com/ AutoHotKey] on my PC. However, I will shortly be experimenting with Applescript, as I usually play the game on my Mac Laptop. = AutoHotKey Scr...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

I primarily use AutoHotKey on my PC. However, I will shortly be experimenting with Applescript, as I usually play the game on my Mac Laptop.

AutoHotKey Scripts

Charcoal

Description & Usage

This is an edited version of a macro Tesuji of T3 wrote. I rewrote it in T3 for operating my 10 charcoal ovens, but it actually can support 12 ovens. You must be in full-screen (not window) mode for this macro to work properly. It has settings to make the mouse move super-fast, so I typically don't have this macro always running in the background.

Controls are as follows:

  • Setup
    • Ctrl+Shift+Z: Add a window and position it. Hover the mouse over the window and press this key. Do not move a window after it has been placed.
    • Ctrl+Shift+X: Clear all window settings. You must set them up again by using Ctrl+Shift-Z on each window.
    • Ctrl+Shift+R: Begin recalibrating relative button positions.
  • Buttons
    • Ctrl+Shift+Q: Press Begin on all windows.
    • Ctrl+Shift+W: Add wood to all windows.
    • Ctrl+Shift+E: Add water to all windows.
    • Ctrl+Shift+A: Close all vents.
    • Ctrl+Shift+S: Set all vents to partially open.
    • Ctrl+Shift+D: Open all vents.

Macro

#SingleInstance force

SendMode Play
SetMouseDelay, 10, Play

; Number of columns before going to next row
ColumnCount := 4

; Relative positions of each location.
; Set here permanently or recalibrate every time.
SizeX := 222
SizeY := 239
BeginX := 105
BeginY := 215
WoodX := 34
WoodY := 222
WaterX := 76
WaterY := 222
CloseX := 128
CloseY := 222
MiddleX := 155
MiddleY := 222
OpenX := 179
OpenY := 222

WindowCount := 0
IsCalibrating := false

BaseX(Index)
{
  global ColumnCount
  global SizeX
  return (Floor(Mod(Index, ColumnCount))) * SizeX
}

BaseY(Index)
{
  global ColumnCount
  global SizeY
  return (Floor(Index / ColumnCount)) * SizeY
}

ClickAll(RelX, RelY)
{
  global WindowCount
  Loop %WindowCount%
  {
    x := BaseX(A_Index - 1) + RelX
    y := BaseY(A_Index - 1) + RelY
    ControlClick, X%x% Y%y%, ahk_class eGenesis Client,,,, NA
;    Click %x%, %y%
  }
}

+^z::
if IsCalibrating
{
  return
}
; else
  x := 0
  y := 0
  MouseGetPos, x, y
  MouseClickDrag, Left, %x%, %y%, 1, 1
  MouseClickDrag, Left, 1, 1, % BaseX(WindowCount) , % BaseY(WindowCount)
  WindowCount := WindowCount + 1
return

+^x::
WindowCount := 0
MsgBox, 0, , % "Clearing Window Positions"
return

+^r::
if IsCalibrating
{
  IsCalibrating := false
  MsgBox, 0, , % "Ending Recalibration Mode"
  return
}
; else
  IsCalibrating := true
  MsgBox, 0, , % "Beginning Recalibration Mode. Press Control-h for help."
return

+^h::
if IsCalibrating
{
  MsgBox, 0, % "Calibration Mode", % "Calibrate each button hotkey. First, move a Charcoal Oven window to the upper-left corner of the screen. Then move the mouse over each kind of button and press the associated hotkey. Current status:`n"
  . "Begin (q): (" . BeginX . ", " . BeginY . ")`n"
  . "Wood (w): (" . WoodX . ", " . WoodY . ")`n"
  . "Water(e): (" . WaterX . ", " . WaterY . ")`n"
  . "Close(a): (" . CloseX . ", " . CloseY . ")`n"
  . "Middle(s): (" . MiddleX . ", " . MiddleY . ")`n"
  . "Open (d): (" . OpenX . ", " . OpenY . ")`n`n"
  . "To finish calibrating, press Control-R`n"
  . "Change the appropriate variables in the script to make calibration permanent."
  return
}
; else
  MsgBox, 0, % "Run Mode", % WindowCount . " windows active.`n"
  . "Keys:`n"
  . "Control+Shift-z: Add a window and position it. Hover the mouse over the window and press this key. Do not move a window after it has been placed.`n"
  . "Control+Shift-x: Clear all window settings. You must set them up again by using control-a on each window.`n"
  . "Control+Shift-r: Begin recalibrating relative button positions`n"
  . "Control+Shift-q: Press Begin on all windows`n"
  . "Control+Shift-w: Add wood to all windows`n"
  . "Control+Shift-e: Add water to all windows`n"
  . "Control+Shift-a: Close all vents`n"
  . "Control+Shift-s: Set all vents to partially open`n"
  . "Control+Shift-d: Open all vents"
return

+^q::
if IsCalibrating
{
  MouseGetPos, BeginX, BeginY
  return
}
; else
  ClickAll(BeginX, BeginY)
return

+^w::
if IsCalibrating
{
  MouseGetPos, WoodX, WoodY
  return
}
; else
  ClickAll(WoodX, WoodY)
return

+^e::
if IsCalibrating
{
  MouseGetPos, WaterX, WaterY
  return
}
; else
  ClickAll(WaterX, WaterY)
return

+^a::
if IsCalibrating
{
  MouseGetPos, CloseX, CloseY
  return
}
; else
  ClickAll(CloseX, CloseY)
return

+^s::
if IsCalibrating
{
  MouseGetPos, MiddleX, MiddleY
  return
}
; else
  ClickAll(MiddleX, MiddleY)
return

+^d::
if IsCalibrating
{
  MouseGetPos, OpenX, OpenY
  return
}
; else
  ClickAll(OpenX, OpenY)
return


Carpentry Blades

Description & Usage

This script is meant to automate the manufacturing of carpentry blades! It will *not* load or unload the blades, so you have a chance to make sure quality is to your standards.

Get overhead view (F8 twice) and zoom in completely. Position mouse directly over upper-left point of carpentry blade, then press Ctrl+Shift+G. This script will plot your future hammer hits.

Have your chat minimized! Then press Ctrl+Shift+H to use the numbers generated above on the carp blade. If you move at all, or it doesn't quite work right, you will need to reset the numbers (Ctrl+Shift+G).

Be sure to turn on "Chat appears above player's head" in "Chat-related Options" so you can easily see the Quality at the end of the macro.


Macro


;This script is meant to automate the manufacturing of carpentry blades!

;  Get overhead view (F8 twice) and zoom in completely.
;  Position mouse directly over upper-left point of carpentry blade,
;  then press Ctrl+Shift+G.  This script will plot your hammer hits.

^+G::
MouseGetPos, xpos, ypos

  x9 = %xpos%
  x9 += 9
 x20 = %xpos%
 x20 += 20
 x26 = %xpos%
 x26 += 26
 x33 = %xpos%
 x33 += 33
 x39 = %xpos%
 x39 += 39
 x51 = %xpos%
 x51 += 51
 x58 = %xpos%
 x58 += 58
 x71 = %xpos%
 x71 += 71
 x84 = %xpos%
 x84 += 84
 x90 = %xpos%
 x90 += 90
 x97 = %xpos%
 x97 += 97
x110 = %xpos%
x110 += 110
x123 = %xpos%
x123 += 123
x129 = %xpos%
x129 += 129
x141 = %xpos%
x141 += 141
x148 = %xpos%
x148 += 148
x154 = %xpos%
x154 += 154
x161 = %xpos%
x161 += 161
x172 = %xpos%
x172 += 172

  y2 = %ypos%
  y2 += 2
 y12 = %ypos%
 y12 += 12
 y38 = %ypos%
 y38 += 38
 y54 = %ypos%
 y54 += 54
 y64 = %ypos%
 y64 += 64
 y77 = %ypos%
 y77 += 77
 y92 = %ypos%
 y92 += 92
y114 = %ypos%
y114 += 114

return


;  This command will use the stored numbers to make a carpentry blade.
;  If you moved at all, you'll need to use the command above first to
;  allign everything.  
;  Be sure to have your chat window closed before you start!
;  When ready, press Ctrl+Shift+H.

^+H::

MouseMove %x90%, %y64%

Send s9
  Click %x9%, %y114%
  Click %x172%, %y114%
  Click %x33%, %y114%
  Click %x148%, %y114%
  Click %x58%, %y114%
  Click %x123%, %y114%
  Click %x84%, %y114%
  Click %x97%, %y114%

Send c9
  Click %x20%, %y114%
  Click %x161%, %y114%
  Click %x71%, %y114%
  Click %x110%, %y114%

Send c4
  Click %x90%, %y64%
  Click %x58%,  %y64%
  Click %x123%, %y64%

Send b9
  Click %x26%,  %y54%
  Click %x154%, %y54%
  Click %x26%,  %y2%
  Click %x154%, %y2%
  Click %x33%,  %y12%
  Click %x148%, %y12%
  Click %x39%,  %y2%
  Click %x141%, %y2%

MouseMove %x90%, %y64%

Send c5
  Click %x51%, %y77%
  Click %x129%, %y77%

Send b3
  Click %x58%, %y92%
  Click %x123%, %y92%
  Click %x33%, %y92%
  Click %x148%, %y92%
  Click %x20%, %y92%
  Click %x161%, %y92%
  Click %x9%, %y92%
  Click %x172%, %y92%

Send s3
  Click %x51%, %y54%
  Click %x129%, %y54%
  Click %x71%, %y38%
  Click %x110%, %y38%

Send q

return


^+=::
InputBox, Input, Carp Blade Count, How many blades will you make?,, 220, 120

Loop %Input% 
{
Click 800, 80
  Sleep 100
Click 800, 80
  Sleep 500
MouseMove %x90%, %y64%

Send s9
  Click %x9%, %y114%
  Click %x172%, %y114%
  Click %x33%, %y114%
  Click %x148%, %y114%
  Click %x58%, %y114%
  Click %x123%, %y114%
  Click %x84%, %y114%
  Click %x97%, %y114%

Send c9
  Click %x20%, %y114%
  Click %x161%, %y114%
  Click %x71%, %y114%
  Click %x110%, %y114%

Send c4
  Click %x90%, %y64%
  Click %x58%,  %y64%
  Click %x123%, %y64%

Send b9
  Click %x26%,  %y54%
  Click %x154%, %y54%
  Click %x26%,  %y2%
  Click %x154%, %y2%
  Click %x33%,  %y12%
  Click %x148%, %y12%
  Click %x39%,  %y2%
  Click %x141%, %y2%

MouseMove %x90%, %y64%

Send c5
  Click %x51%, %y77%
  Click %x129%, %y77%

Send b3
  Click %x58%, %y92%
  Click %x123%, %y92%
  Click %x33%, %y92%
  Click %x148%, %y92%
  Click %x20%, %y92%
  Click %x161%, %y92%
  Click %x9%, %y92%
  Click %x172%, %y92%

Send s3
  Click %x51%, %y54%
  Click %x129%, %y54%
  Click %x71%, %y38%
  Click %x110%, %y38%

Send q

Click 900, 195
Keywait, y, D T10
  if ErrorLevel
    return
Click 475, 435
}