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.

Difference between revisions of "User:Bellamoon"

From A Tale in the Desert
Jump to navigationJump to search
(New page: *My macros: // This line is necessary to select the proper window SetActiveWindow Asheron's Call //Charcoal Hearth // // I've made some improvements to the Hearth macro. Depending on y...)
 
(Removing all content from page)
Line 1: Line 1:
*My macros:
 
// This line is necessary to select the proper window
 
SetActiveWindow Asheron's Call
 
  
//Charcoal Hearth
 
//
 
//  I've made some improvements to the Hearth macro.  Depending on your resolution,
 
//  the macro will run up to 12 guilded hearths.  I've tested it in 1280x960
 
//  resolution without any need to change values.  It may work in other resolutions
 
//  also but I have not been able to test it.  If you are using personal hearths,
 
//  it will run up to 10 in 1280x960.  Maximum number in 1024x768 is 8.
 
//
 
// Setup:  I've added a setup routine to the macro.  Pin the windows on top of each
 
//        other in the top left corner.  I suggest at least 200 wood per hearth
 
//        and about 15 water per hearth to be safe.  All hearths are slightly
 
//        different but I suggest that you put your fastest burning hearths first
 
//        in line.  You can tweak the settings in the built in menu.
 
//
 
//        Hearths: Total number of hearths you are running.
 
//        Hearths Across: How many Hearths on the top row of windows.  Make sure
 
//                        you set this each time even if you are running 1 hearth.
 
//                        Variables in the macro are set off of this number.
 
//        Guilded?: Check this box if you are using guilded hearths.
 
//        Need Setup?: Check this box if you need the macro to position your
 
//                      windows that are stacked in top left corner.  This is
 
//                      usefull if you run another round on the hearths and your
 
//                      windows are set up already.  Check if needed or not.
 
//        Stealth Mouse: Check this if you don't want to see the mouse move around
 
//                        on the hearth windows.  When checked, it will save your
 
//                        mouse position, move to the spot it needs, perform its
 
//                        action then return the pointer to where it started.  Alows
 
//                        you to change chat windows are dig in chest while the
 
//                        macro is running :)
 
//        Heat: Threshold for Heat bar, increase or decrease as needed. If heat
 
//              reaches this lvl, water will be added.
 
//        Wood: Wood threshold, adds wood up to this point.
 
//        Water: Alowable water level, not much play here. If the water lvl is above
 
//                this lvl, water will not be added. Prevents drowning the hearth.
 
//        RGBGreen: Used to detect completion bar. If the macro adds a bunch of water
 
//                  before the macro is done then moves to the next hearth, increase
 
//                  this number. Or lower it if it doesnt see green.
 
//        RGBBlue: Works just like RGBGreen but for blue bars.  If the macro keeps
 
//                  adding wood till the hearth is full, it's not seeing blue.  If
 
//                  this happens, lower this number.  Other problem may be that the
 
//                  mouse pointer is not lining up over the bar correctly.  Run the
 
//                  Mouse Test.
 
//        Check Bars Interval: This is the pause time between bar checks.  The
 
//                              default value of 4000 works well for 1-8 hearths
 
//                              but you may need to decrease this number if you
 
//                              are running more than 8.
 
//        Mouse Test: This is to test if the mouse pointer is lining up correctly
 
//                    with your windows.  Run 1 hearth manually and start the macro
 
//                    with this option checked.  You don't need to worry about any
 
//                    other option.  It will move over the Heat, Wood, Water, Danger,
 
//                    and Status bar then over the Wood and Water buttons 10 times
 
//                    before it stops.  If these positions are off a bit, you can
 
//                    change the Y coordinates below in the constants section.
 
//
 
//        The macro doesn't watch Oxygen.  I was going to add a vent option but this
 
//        macro runs very well and never fails for me.  If your oxygen is getting too
 
//        high, try adding more wood.  But, by adding more wood, you add more heat
 
//        which may require you adding more water.  A small amount of water in the
 
//        presence of heat evaporates producing more Oxygen. :)  Find the balance
 
//        you want.
 
//
 
//  ENJOY! :)  Come visit me in LE :) 780, 6956  I have a large bar with tasting
 
//            tables and hookahs.
 
//  Anka
 
//
 
Constants
 
  //User Definable variables
 
  Hearths = 4
 
  HeatX = 165
 
  WoodX = 107
 
  WaterX = 76
 
  DangerX = 165
 
  RGBBlue = 220
 
  RGBGreen = 240
 
  Guild = 1
 
 
 
  // Y Coordinates - Don't change unless you are having a problem.
 
  RegY = 74      // Y coord for Regulator button
 
  BeginY = 245  // Y coord for Begin Button
 
  HeatY = 156    // Y coord for Heat Bar
 
  WoodY = 180    // Y coord for Wood Bar
 
  WaterY = 192  // Y coord for Water Bar
 
  DangerY = 204  // Y coord for Danger Bar
 
  StatusY = 216  // Y coord for Status Bar
 
  WoodBY = 250  // Y coord for Wood and Water buttons
 
  //End User variables
 
 
 
  Hrow = 0
 
  Hrow1 = 0
 
  AddX = 226
 
  Add2X = 15
 
  Add1Y = 65
 
  Add2Y = 17
 
  Add3Y = 250
 
  RegX = 47
 
  BeginX = 111
 
  NewX = 0
 
  New2X = 0
 
  New2Y = 0
 
  NewY = 0
 
  Heat = 0
 
  Wood = 0
 
  Water = 0
 
  Danger = 0
 
  Status = 0
 
  OxyY = 168
 
  StatusX = 167
 
  WoodBX = 35
 
  WaterBX = 85
 
  Num = 0
 
  Jump = 5
 
  JumpM = 0
 
  Jumped = 0
 
  Used = 0
 
  MDelay = 250
 
  SDelay = 200
 
  S1Delay = 100
 
  Count = 0
 
  CountM = 0
 
  MouseX = 0
 
  MouseY = 0
 
  CheckDelay = 0
 
  Setup = 0
 
  SetX = 10
 
  SetY = 40
 
  SetAddX = 227
 
  SetAddY = 250
 
  SetLoop = 0
 
  Mouse = 1
 
  OrigX = 0
 
  OrigY = 0
 
End
 
 
Form ccHearth, Settings
 
  ed1=Combobox:Hearths:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
 
  ed13=Editbox:Hearths Across:4
 
  ed2=CheckBox:Guilded?:True
 
  ed14=Checkbox:Need Setup?:True
 
  ed15=Checkbox:Stealth Mouse:True
 
  ed3=Editbox:Heat                  (75-188):165
 
  //ed10=Editbox:HeatMin            (75-188):116
 
  //ed11=Editbox:HeatMax          (75-188):184
 
  //ed4=Editbox:Low Oxy            (75-188):82
 
  //ed5=Editbox:High Oxy          (75-188):134
 
  ed6=Editbox:Wood                (75-188):107
 
  ed7=Editbox:Water                (75-188):76
 
  ed8=Editbox:RGBGreen:240
 
  ed9=Editbox:RGBBlue:220
 
  ed12=Editbox:Check Bars Interval  (miliseconds):4000
 
  ed16=Checkbox:Mouse Check:False
 
end
 
 
FormLoad ccHearth, ccHearth.frm
 
 
if ShowForm ccHearth
 
  SetConst Hearths = ccHearth[ed1]
 
  If ccHearth[ed2] = True
 
    SetConst Guild = 1
 
  Else
 
    SetConst Guild = 0
 
  End
 
  SetConst HeatX = ccHearth[ed3]
 
  //SetConst Oxy1X = ccHearth[ed4]
 
  //SetConst Oxy2X = ccHearth[ed5]
 
  SetConst WoodX = ccHearth[ed6]
 
  SetConst WaterX = ccHearth[ed7]
 
  SetConst RGBGreen = ccHearth[ed8]
 
  SetConst RGBBlue = ccHearth[ed9]
 
  //SetConst HeatMin = ccHearth[ed10]
 
  //SetConst HeatMax = ccHearth[ed11]
 
  SetConst CheckDelay = ccHearth[ed12]
 
  Set HRow = ccHearth[ed13]
 
  Compute SetLoop = $Hearths - 1
 
  Compute HRow1 = $Hrow + 1
 
  If ccHearth[ed15] = True
 
    Set Mouse = 0
 
  End
 
else
 
  Stop
 
end
 
 
FormSave ccHearth, ccHearth.frm
 
 
MousePos 100, 20  //Activates eGenesis window.. Don't run ACTool maximized.
 
Delay $MDelay
 
LeftClick
 
Delay 2000
 
 
If $Guild = 1
 
  Call Guild
 
End
 
if ccHearth[ed16] = True
 
  Call HearthTest
 
End
 
If ccHearth[ed14] = True
 
  Call Setup
 
End
 
 
Call SetReg
 
SetConst NewX = $BeginX
 
SetConst NewY = $BeginY
 
SetConst Count = 1
 
Loop $Hearths
 
  If $Count = $HRow1 //$Jump
 
    SetConst NewX = $BeginX
 
    Compute NewY = $BeginY + $Add3Y
 
  End
 
  MousePos $NewX, $NewY
 
  Delay $MDelay
 
  Rightclick
 
  Delay $MDelay
 
  Compute NewX = $NewX + $AddX
 
  Compute Count = $Count + 1
 
End
 
SetConst NewX = $BeginX  //Dont remember why this is here :)
 
Call Main
 
 
Procedure Setup
 
  Set NewX = $SetX
 
  Set NewY = $SetY
 
  Loop $SetLoop
 
    Mousepos $SetX, $SetY
 
    if {loopno} = $HRow
 
      Set NewX = $SetX
 
      Compute NewY = $SetY + $SetAddY
 
    else
 
      Compute NewX = $NewX + $SetAddX
 
    End
 
    Dragto $NewX, $NewY
 
  End
 
End
 
 
Procedure Main
 
  SetConst CountM = 1
 
  SetConst Status = 0
 
  Compute JumpM = $HRow1 - 1 //$Jump - 1
 
  Loop $Hearths
 
    If $CountM = $HRow1 //$Jump
 
      // may have to use New Newx and newy variables in Main
 
      SetConst NewX = $StatusX
 
      Compute NewY = $StatusY + $Add3Y
 
      SetConst New2X = $WaterBX
 
      Compute New2Y = $WoodBY + $Add3Y
 
    End
 
   
 
    While $Status = 0
 
      Call CheckBars
 
      If $Status = 1
 
        Call Snuff
 
        //code to advance to next hearth
 
        Compute Used = $Used + 1
 
        If $Used = $JumpM
 
          Compute HeatX = $HeatX - (($Used - 1) * $AddX)
 
          Compute HeatY = $HeatY + $Add3Y
 
          Compute WoodX = $WoodX - (($Used - 1) * $AddX)
 
          Compute WoodY = $WoodY + $Add3Y
 
          Compute WaterX = $WaterX - (($Used - 1) * $AddX)
 
          Compute WaterY = $WaterY + $Add3Y
 
          Compute DangerX = $DangerX - (($Used - 1) * $AddX)
 
          Compute DangerY = $DangerY + $Add3Y
 
          Compute StatusX = $StatusX - (($Used - 1) * $AddX)
 
          Compute StatusY = $StatusY + $Add3Y
 
          //Compute WaterBX = $WaterBX - (($Used -1) * $AddX)
 
          //Compute WoodBX = $WoodBX - (($Used - 1 ) * $AddX)
 
          //Compute WoodBY = $WoodBY + $Add3Y
 
          SetConst Jumped = 1
 
          Continue
 
        Else
 
          Compute HeatX = $HeatX + $AddX
 
          Compute WoodX = $WoodX + $AddX
 
          Compute WaterX = $WaterX + $AddX
 
          Compute DangerX = $DangerX + $AddX
 
          Compute StatusX = $StatusX + $AddX
 
          //Compute WaterBX = $WaterBX + $AddX
 
          //Compute WoodBX = $WoodBX + $AddX
 
        End
 
        Continue
 
      End
 
      If $Heat = 0 and $Danger = 0 and $Wood = 0
 
        Call Wood
 
      Else
 
        If $Heat = 1 or $Danger = 1
 
          If $Water = 0
 
            Call Water
 
          End
 
        End
 
      End
 
     
 
      Delay $CheckDelay
 
    End
 
    Compute CountM = $CountM + 1
 
    SetConst Status = 0
 
  End
 
End
 
 
Procedure CheckBars
 
  If $Mouse = 1
 
    MousePos $HeatX, $HeatY
 
    Delay $SDelay
 
  end
 
  LoadRGB $HeatX, $HeatY
 
  if {RGBBlue} > $RGBBlue
 
    SetConst Heat = 1
 
  Else
 
    SetConst Heat = 0
 
  End
 
  If $Mouse = 1
 
    MousePos $WoodX, $WoodY
 
    Delay $S1Delay
 
  end
 
  LoadRGB $WoodX, $WoodY
 
  if {RGBBlue} > $RGBBlue
 
    SetConst Wood = 1
 
  Else
 
    SetConst Wood = 0
 
  End
 
  If $Mouse = 1
 
    MousePos $WaterX, $WaterY
 
    Delay $S1Delay
 
  End
 
  LoadRGB $WaterX, $WaterY
 
  if {RGBBlue} > $RGBBlue
 
    SetConst Water = 1
 
  Else
 
    SetConst Water = 0
 
  End
 
  If $Mouse = 1
 
    MousePos $DangerX, $DangerY
 
    Delay $S1Delay
 
  End
 
  LoadRGB $DangerX, $DangerY
 
  if {RGBBlue} > $RGBBlue
 
    SetConst Danger = 1
 
  Else
 
    SetConst Danger = 0
 
  End
 
  If $Mouse = 1
 
    MousePos $StatusX, $StatusY
 
  End
 
  LoadRGB $StatusX, $StatusY
 
  if {RGBGreen} > $RGBGreen
 
    SetConst Status = 1
 
  Else
 
    SetConst Status = 0
 
  End
 
End
 
 
Procedure Water
 
  SetConst NewX = $WaterBX
 
  SetConst NewY = $WoodBY
 
  Loop $Hearths
 
    IF {loopno} = $HRow1 //$Jump
 
      SetConst NewX = $WaterBX
 
      Compute NewY = $WoodBY + $Add3Y
 
    End
 
    If {loopno} > $Used
 
      If $Mouse = 0
 
        Set OrigX = {mousex}
 
        Set OrigY = {mousey}
 
      End
 
      MousePos $NewX, $NewY
 
      Delay $SDelay
 
      Rightclick
 
      Delay $SDelay
 
      If $Mouse = 0
 
        Mousepos $OrigX, $OrigY
 
      End
 
    End
 
    Compute NewX = $NewX + $AddX
 
  End
 
  SetConst NewX = $WaterBX
 
End
 
 
Procedure Snuff
 
  SetConst New2X = $WaterBX
 
  SetConst New2Y = $WoodBY
 
  Compute Num = $Used + 1
 
  Loop $Hearths
 
    IF {loopno} = $Hrow1 //$Jump
 
      SetConst New2X = $WaterBX
 
      Compute New2Y = $WoodBY + $Add3Y
 
    End
 
    If {loopno} = $Num
 
      If $Mouse = 0
 
        Set OrigX = {mousex}
 
        Set OrigY = {mousey}
 
      End
 
      MousePos $New2X, $New2Y
 
      Loop 8
 
        Rightclick
 
      End
 
      If $Mouse = 0
 
        Mousepos $OrigX, $OrigY
 
      End
 
    End
 
    Compute New2X = $New2X + $AddX
 
  End
 
End
 
 
Procedure Wood
 
  SetConst NewX = $WoodBX
 
  SetConst NewY = $WoodBY
 
  Loop $Hearths
 
    IF {loopno} = $HRow1 //$Jump
 
      SetConst NewX = $WoodBX
 
      Compute NewY = $WoodBY + $Add3Y
 
    End
 
    If {loopno} > $Used
 
      If $Mouse = 0
 
        Set OrigX = {mousex}
 
        Set OrigY = {mousey}
 
      End
 
      MousePos $NewX, $NewY
 
      Delay $SDelay
 
      Rightclick
 
      Delay $SDelay
 
      If $Mouse = 0
 
        MousePos $OrigX, $OrigY
 
      End
 
    End
 
    Compute NewX = $NewX + $AddX
 
  End
 
  SetConst NewX = $WoodBX
 
End
 
 
Procedure SetReg
 
  SetConst NewX = $RegX
 
  SetConst Count = 1
 
  Loop $Hearths
 
    If $Count = $HRow1
 
      SetConst NewX = $RegX
 
      Compute RegY = $RegY + $Add3Y
 
    End
 
    MousePos $NewX, $RegY
 
    Delay $MDelay
 
    Rightclick
 
    Compute NewX = $NewX + $Add2X
 
    If $Count > $HRow
 
      Compute NewY = $RegY + $Add2Y
 
    else
 
      Compute NewY = $RegY + $Add1Y
 
    end
 
    MousePos $NewX, $NewY
 
    Delay $MDelay
 
    Rightclick
 
    Delay $MDelay
 
    Compute NewX = $NewX + $AddX
 
    Compute Count = $Count + 1
 
  End
 
  SetConst NewX = $RegX
 
  SetConst Count = 1
 
End
 
 
Procedure Guild
 
  Compute BeginX = $BeginX - 7
 
  Compute BeginY = $BeginY + 16
 
  Compute RegY = $RegY + 16
 
  Compute RegX = $RegX - 14
 
  Compute AddX = $AddX - 15
 
  Compute Add3Y = $Add3Y + 16
 
  Compute Add1Y = $Add1Y - 16
 
  Compute WoodBY = $WoodBY + 16
 
  Compute HeatX = $HeatX - 4
 
  Compute HeatY = $HeatY + 16
 
  Compute WoodX = $WoodX - 1
 
  Compute WoodY = $WoodY + 16
 
  Compute WaterY = $WaterY + 16
 
  Compute DangerX = $DangerX - 4
 
  Compute DangerY = $DangerY + 16
 
  Compute StatusX = $StatusX - 5
 
  Compute StatusY = $StatusY + 16
 
  Set SetAddX = 212
 
  Set SetAddY = 266
 
End
 
 
Procedure HearthTest
 
  Loop 10
 
    MousePos $HeatX, $HeatY
 
    Delay 2000
 
   
 
    MousePos $WoodX, $WoodY
 
    Delay 2000
 
   
 
    MousePos $WaterX, $WaterY
 
    Delay 2000
 
   
 
    MousePos $DangerX, $DangerY
 
    Delay 2000
 
   
 
    MousePos $StatusX, $StatusY
 
    Delay 2000
 
   
 
    MousePos $WoodBX, $WoodBY
 
    Delay 2000
 
   
 
    MousePos $WaterBX, $WoodBY
 
    Delay 2000
 
  end
 
  Stop
 
End
 
//Written with ACTool 5.3.0 by Anka
 
Bell Asterisk
 
________________________________________
 
Constants
 
  Loops = 25  //Number of rounds you want to plant
 
  Water = 5
 
  P1Delay = 0
 
  MoveDelay = 0
 
  WDelay = 0
 
  Num = 4
 
  NewX = 0
 
  NewY = 0
 
  varOriginalMouseX = 0
 
  varOriginalMouseY = 0
 
  Ox = 476
 
  Oy = 380
 
  ODragX = 4
 
  ODragY = 90
 
  OWX = 50
 
  OWY = 120
 
  Onion = 1
 
  WaterX = 0
 
  WaterY = 0
 
  Plants = 0
 
End
 
 
Set WaterX = {MouseX}
 
Set WaterY = {MouseY}
 
 
Form Onions, Settings
 
  ed1=Editbox:Batch:1
 
  ed2=Combobox:# of Plants:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
 
ed3=Editbox:Plant 1 wait time:1300
 
ed4=Editbox:Move wait time:900
 
ed5=Editbox:Time between Waterings:800
 
end
 
 
FormLoad Onions, Onions.frm
 
 
if ShowForm Onions
 
  Set Loops = Onions[ed1]
 
  Set Plants = Onions[ed2]
 
  Set P1Delay = Onions[ed3]
 
  Set MoveDelay = Onions[ed4]
 
  Set WDelay = Onions[ed5]
 
Else
 
  stop
 
end
 
 
FormSave Onions, Onions.frm
 
 
//Activate ATITD Window
 
MousePos 100, 10
 
Delay 250
 
Leftclick
 
Delay 2000
 
 
Call Onion   
 
 
Procedure Onion
 
  Loop $Loops
 
    Loop $Plants  //Number of plants
 
      MousePos 50, 40
 
      Delay 400
 
      Rightclick
 
     
 
      Compute Num = $Onion * 2 - 1
 
      MousePos 37, 101
 
      Delay 400
 
      Loop $Num
 
        Rightclick
 
      End
 
     
 
      Compute Onion = $Onion + 1
 
     
 
      MousePos 32, 162
 
      Delay 400
 
      Rightclick
 
    End
 
   
 
    SetConst Onion = 1
 
    Loop $Plants  //Find and Pin Plants
 
      Mousepos $Ox, $Oy
 
      Delay 200
 
      Call CheckOnions
 
      Compute Ox = $Ox - 38
 
    End
 
   
 
    SetConst Onion = 1
 
    Loop 5
 
      Loop $Plants  // Number of plants
 
        If $Onion = 5
 
          Compute OWX = {mousex} + 168
 
          SetConst OWY = 120
 
        End
 
        If $Onion = 9
 
          Compute OWX = {mousex} + 168
 
          SetConst OWY = 120
 
        End
 
       
 
        Compute NewY = $OWY - 20
 
        MousePos $OWX, $NewY
 
        Delay 200
 
        Rightclick
 
        Delay 300
 
        Mousepos $OWX, $OWY
 
        Delay 200
 
        Rightclick
 
        Compute OWY = {MouseY} + 60
 
        If $Onion = 1
 
          Delay 1300  //Plant 1 time
 
        Else
 
          Delay 900  //Move Time
 
        End
 
        Compute Onion = $Onion + 1
 
      End
 
      Delay $WDelay  //Pause between waterings
 
      SetConst Onion = 1
 
      Compute OWX = 50
 
      Compute OWY = 120
 
    End
 
   
 
    Compute NewX = 489
 
    Compute NewY = 270
 
    Loop 3
 
      Loop 4
 
        MousePos $NewX, $NewY
 
        Delay 250
 
        Rightclick
 
        Compute NewY = $NewY - 60
 
      End
 
      Compute NewX = $NewX - 168
 
      Compute NewY = 270
 
    End
 
    Mousepos 930, 385
 
    Leftclick
 
    Delay 3000
 
//    Mousepos 473, 397
 
//    Delay 250
 
//    Leftclick
 
//    Delay 2000
 
//    MousePos $WaterX, $WaterY
 
//    Delay 250
 
//    Leftclick
 
//    MousePos 512,423
 
//    Delay 250
 
//    Leftclick
 
//    Delay 5000
 
    Compute Onion = 1
 
    Compute ODragX = 4
 
    Compute ODragY = 90
 
    Compute Ox = 476
 
    Compute Oy = 380
 
    Compute OWX = 50
 
    Compute OWY = 120
 
  End
 
End
 
 
 
Procedure CheckOnions
 
  setconst varOriginalMouseX = {mousex}
 
  setconst varOriginalMouseY = {mousey}
 
  Compute NewY = $varOriginalMouseY
 
  Loop 15
 
    RightClick
 
    Delay 400
 
    LoadRGB {MouseX}, {MouseY}
 
    if {RGBBlue} > 220
 
      Compute NewX = {mousex} + 148
 
      Compute NewY = {mousey} - 23
 
      MousePos $NewX, $NewY
 
      Delay 200
 
      Leftclick
 
      Compute NewX = {mousex} - 145
 
      MousePos $NewX, $NewY
 
     
 
      if $Onion > 8
 
        Dragto $ODragX, $ODragY
 
        Compute ODragY = $ODragY + 60
 
      End
 
      if $Onion = 5 or $Onion = 6 or $Onion = 7 or $Onion = 8
 
        Dragto $ODragX, $ODragY
 
        Compute ODragY = $ODragY + 60
 
      End
 
      If $Onion = 2 or $Onion = 3 or $Onion = 4
 
        Dragto $ODragX, $ODragY
 
        Compute ODragY = $ODragY + 60
 
      End
 
      if $Onion = 1
 
        Dragto $ODragX, $ODragY
 
        Compute ODragY = $ODragY + 60
 
      End
 
      Compute Onion = $Onion + 1
 
      If $Onion = 5
 
        SetConst ODragY = 90
 
        Compute ODragX = $ODragX + 168
 
      End
 
      If $Onion = 9
 
        SetConst ODragY = 90
 
        Compute ODragX = $ODragX + 168
 
      END
 
      Break
 
    Else
 
      Compute Oy = $Oy + 1
 
      MousePos $varOriginalMouseX, $Oy
 
      Delay 200
 
    End
 
  End
 
End
 
________________________________________
 
// This line is necessary to select the proper window
 
SetActiveWindow Asheron's Call
 
 
//  Multi Tool
 
//
 
//  This macro does Digs, Mining , Limestone, Dirt, Loom, Hackling Rake.
 
//  This macro also does not work on timers and will watch your End, Str and Per
 
//  timers.  It will do the next action as soon as the timers have expired.
 
//  Resolution 1024x768.  If you have problems with the macro detecting colors, run
 
//  ColorTest.
 
//
 
//INSTRUCTIONS
 
//
 
//          I use small action icons in Utility>Interface>Action icons appear in
 
//          smaller size.  Have not tried with large icons.
 
//  ColorTest - Run this if you are having problems with the macro detecting colors.
 
//              Once the macro starts, it will ring a bell.  You have 5 seconds
 
//              to place your mouse pointer over the spot you want to color test.
 
//              A bell will ring again when the macro is done.  Look in the test
 
//              log to retrieve your RGB values for that color.  You can use
 
//              these values for the Dirt and Limestone proceedures if needed.
 
//
 
//  Dig  -  Pin the "Dig Deeper" window where ever you want it.
 
//          Put the mouse pointer over the "Dig Deeper" button.
 
//          Alt tab to ACTool(Don't move the mouse) and press F2
 
//          It will then dig whenever the END timer expires.
 
//
 
// Dirt -    This one is a bit more automated.
 
//          Have a shovel in inventory and stand over dirt.
 
//          Start the macro.
 
//          This one will find the dirt icon on it's own and dig whenever
 
//          the timer is ready.
 
//
 
// Firepit - This one will run 1 firepit.  The firepit has to have a certain
 
//          orientation so I'll be posting a screenshot on my user page.  The
 
//          initial pointer position is crucial also.  Pin the firepit window to
 
//          the top left corner.  Place the pointer in the position expained on
 
//          my user page.  Don't move the mouse and alt tab to ACTool.  Press Start
 
//          or F2 to start the macro.  It will switch to the ATITD client and after
 
//          a few seconds will ring a bell.  All that is happened so far is that the
 
//          mouse position has been stored and the macro is paused.  At this point,
 
//          put everything you want in your fire, have an iron poker in your
 
//          inventory.  This is run on a guilded firepit, if you need one for a
 
//          personal firepit, chat me and I'll add that feature.  Once the fire
 
//          starts, Alt tab to ACTool once again and press the resume button
 
//          (Next to start button).  I'm not claiming this to be 100% but once you
 
//          get the pointer in the right spot, it hasn't failed any test so far.
 
//
 
// Hackling Rake - Have rotten flax on hand
 
//                Make sure rake is on step 1
 
//                Pin Rake window to top left corner.
 
//                Put mouse pointer over step 1 option.
 
//                Alt tab to windows (Don't touch mouse) Press F2
 
//                This also will watch the end timer and act when ready.
 
//
 
// Hookah - Simple macro that will smoke the hookah for you.  Put the window any place
 
//          you want it.  Place pointer over the smoke option.  It will keep trying to
 
//          smoke even when the hookah is empty.  I'll add in a safeguard soon.
 
//
 
// Limestone - Simply start this macro.
 
//            It will gather limestone when the timer is ready.
 
//
 
// Loom - Load the loom
 
//        Pin Loom window to top left corner.
 
//        Put the mouse pointer over the item you want to create.
 
//        Alt tab to windows (Dont touch mouse) Press F2
 
//        This will work the loom when the End timer is gone.
 
//
 
//  Mine -  Pin 18 crystals and put the windows stacked on top of each other
 
//          in the top left corner.  Make sure the mine is empty (no Take
 
//          option).  If you end up stopping the macro and want to restart
 
//          without going through the setup section, uncheck Mine Setup
 
//          when able.  It will position the windows and randomly pull from a
 
//          window whenever the PerStr timers are gone.  X Coord Work is there
 
//          if your mouse pointer is missing the work button.  If the mouse is too
 
//          far to the right, decrease the number.
 
//
 
// Anka
 
 
Include Objects.mac
 
 
Constants
 
  Rounds = 0
 
  YWork = 163 //95  //75
 
  XWork = 89
 
  XOrig = 0
 
  YOrig = 0
 
  AddX = 249  //100
 
  AddY = 63 //95 //63
 
  MouseX = 0
 
  MouseY = 0
 
  FireX = 23
 
  FireY = 93
 
  Fire1 = 423,644
 
  Fire2 = 0
 
  Fire3 = 0
 
  Fire4 = 0
 
  Fire5 = 0
 
  Fire1X = 88
 
  Fire1Y = 32
 
  Fire2X = 74
 
  Fire2Y = 58
 
  Fire3X = 90
 
  Fire3Y = 65
 
  Fire4X = 107
 
  Fire4Y = 58
 
  Fire5X = 105
 
  Fire5Y = 44
 
  Red = 0
 
  Green = 0
 
  Blue = 0
 
  ButtonX = 1010
 
  ButtonY = 32
 
  SubX = 31
 
  Button = 0
 
 
 
  Num = 0
 
  First = 0
 
  WinX = 3
 
  WinY = 29 //625  //593
 
  DragX = 3
 
  DragY = 115  //49 //29
 
  NewX = 0
 
  NewY = 0
 
  Minval = 1
 
  Maxval = 18
 
  RanX = 0
 
  RanY = 0
 
  Setup = 0
 
  Guild = 0
 
  Done = 0
 
  SDelay = 100
 
  MDelay = 250
 
End
 
 
SetConst MouseX = {MouseX}
 
SetConst MouseY = {MouseY}
 
 
Form MultiTool, Choose your Job
 
  ed1=EditBox:Rounds:1
 
  ed2=Combobox:Which Job?:Dig,Dirt,FirePit,Hackling,Hookah,Limestone,Loom,Mine,ColorTest
 
  ed3=Checkbox:Guilded Mine:False
 
  ed4=Checkbox:Mine Setup:True
 
  ed5=Checkbox:StokeBell:True
 
  ed6=Checkbox:Mine Repaired:False
 
  ed7=EditBox:X Coord Work:240
 
end
 
 
FormLoad MultiTool, MultiTool.frm
 
 
if ShowForm MultiTool
 
  Set Rounds = MultiTool[ed1]
 
  Set XWork = MultiTool[ed7]
 
  If MultiTool[ed4] = True
 
    setConst Setup = 0
 
  else
 
    setConst Setup = 1
 
  End
 
else
 
  Stop
 
end
 
FormSave MultiTool, MultiTool.frm
 
 
MousePos 100, 20
 
Delay 250
 
LeftClick
 
MousePos 25, 60
 
Delay 5000
 
 
Loop $Rounds
 
  Call MultiTool[ed2]
 
  Call Checkforlostfocus
 
End
 
 
Procedure FirePit
 
  If $Setup = 0
 
    Bell Asterisk
 
    Pause
 
    SetConst Setup = 1
 
  End
 
 
 
  MousePos 100, 20
 
  Delay 250
 
  LeftClick
 
  Delay 1000
 
 
 
  MousePos 15, 45
 
  Delay 100
 
  Rightclick
 
  SetConst Done = 0
 
 
 
  If $Button = 0
 
    Compute NewX = $MouseX + $Fire1X
 
    Compute NewY = $MouseY + $Fire1Y
 
    SetConst Fire1 = $NewX,$NewY
 
    Compute NewX = $MouseX + $Fire2X
 
    Compute NewY = $MouseY + $Fire2Y
 
    SetConst Fire2 = $NewX,$NewY
 
    Compute NewX = $MouseX + $Fire3X
 
    Compute NewY = $MouseY + $Fire3Y
 
    SetConst Fire3 = $NewX,$NewY
 
    Compute NewX = $MouseX + $Fire4X
 
    Compute NewY = $MouseY + $Fire4Y
 
    SetConst Fire4 = $NewX,$NewY
 
    Compute NewX = $MouseX + $Fire5X
 
    Compute NewY = $MouseY + $Fire5Y
 
    SetConst Fire5 = $NewX,$NewY
 
    Inc Button
 
  End
 
 
 
  While $Done = 0
 
    Mousepos $Fire1
 
    Delay 100
 
    LoadRGB {mousex},{mousey}
 
    IF {RGBGreen} = 255
 
      MousePos $Fire2
 
      Delay 100
 
      LoadRGB {mousex},{mousey}
 
      IF {RGBGreen} = 255
 
        MousePos $Fire3
 
        Delay 100
 
        LoadRGB {mousex},{mousey}
 
        IF {RGBGreen} = 255
 
          MousePos $Fire4
 
          Delay 100
 
          LoadRGB {mousex},{mousey}
 
          IF {RGBGreen} = 255
 
            MousePos $Fire5
 
            Delay 100
 
            LoadRGB {mousex},{mousey}
 
            IF {RGBGreen} = 255
 
              //Stoke
 
              MousePos 37, 93
 
              Delay 200
 
              Rightclick
 
              If MultiTool[ed5] = True
 
                bell asterisk
 
              End
 
              Delay 26000
 
              MousePos 28, 61
 
              Delay 200
 
              Rightclick
 
              SetConst Done = 1
 
            End
 
          End
 
        End
 
      End
 
    End
 
  End
 
End
 
 
Procedure Dig
 
  SetConst Button = 0
 
  While $Button = 0
 
    IsObject Endur at 973, 79
 
      Delay 500
 
    Else
 
      SetConst XOrig = {mousex}
 
      SetConst YOrig = {mousey}
 
      MousePos $MouseX, $MouseY
 
      Delay 200
 
      Rightclick
 
      Delay 500
 
    End
 
  End
 
  SetConst Button = 1
 
End
 
 
Procedure Hookah
 
  SetConst Button = 0
 
  While $Button = 0
 
    IsObject Con at 975, 79
 
      Delay 500
 
    Else
 
      SetConst XOrig = {mousex}
 
      SetConst YOrig = {mousey}
 
      MousePos $MouseX, $MouseY
 
      Delay 200
 
      Rightclick
 
    End
 
  End
 
  SetConst Button = 1
 
End
 
 
Procedure Hackling
 
  Loop Num = 1 to 4
 
    SetConst Button = 0
 
    While $Button = 0
 
      IsObject Endur at 973, 79
 
        Delay 500
 
      Else
 
        SetConst XOrig = {mousex}
 
        SetConst YOrig = {mousey}
 
        MousePos 5, 32
 
        Delay 200
 
        Rightclick
 
        Delay 200
 
        If $Num < 2 or $Num > 3
 
          MousePos $MouseX, $MouseY
 
          Delay 250
 
          Rightclick
 
          Delay 200
 
        Else
 
          Compute MouseY = $MouseY + 15
 
          MousePos $MouseX, $MouseY
 
          Delay 250
 
          Rightclick
 
          Delay 200
 
          Compute MouseY = $MouseY - 15
 
        End
 
        Mousepos $XOrig, $YOrig
 
        SetConst Button = 1
 
      End
 
    End
 
  End
 
End
 
 
Procedure Loom
 
  SetConst Button = 0
 
  While $Button = 0
 
    IsObject Endur at 973, 79
 
      Delay 500
 
    Else
 
      SetConst XOrig = {mousex}
 
      SetConst YOrig = {mousey}
 
      MousePos $MouseX, $MouseY
 
      Delay 250
 
      Rightclick
 
      Delay 200
 
      Mousepos $XOrig, $YOrig
 
      SetConst Button = 1
 
    End
 
  End
 
End
 
 
Procedure Mine
 
  If $Guild = 0
 
    If MultiTool[ed3] = True
 
      Call GuildMine
 
    End
 
    if MultiTool[ed6] = true
 
      Call Guildmine
 
    End
 
  End
 
  If $Setup = 0
 
    Call Minesetup
 
  End
 
 
 
  SetConst Button = 0
 
  While $Button = 0
 
    IsObject PerStr at 924, 80
 
      Delay 500
 
    Else
 
      SetConst Num = $Random
 
      Timestamp $Num
 
      Case
 
      When $Num > 15 //12
 
        Compute NewY = $YWork + $AddY * 5 //2
 
        Compute NewX = $AddX * ($Num - 16) + $XWork
 
      When $Num > 12
 
        Compute NewY = $YWork + $AddY * 4
 
        Compute NewX = $AddX * ($Num - 13) + $XWork
 
      When $Num > 9
 
        Compute NewY = $YWork + $AddY * 3
 
        Compute NewX = $AddX * ($Num - 10) + $XWork
 
      When $Num > 6
 
        Compute NewY = $YWork + $AddY * 2
 
        Compute NewX = $AddX * ($Num - 7) + $XWork
 
      When $Num > 3
 
        Compute NewY = $YWork + $AddY
 
        Compute NewX = $AddX * ($Num - 4) + $XWork
 
      Else
 
        Compute NewX = $AddX * ($Num - 1) + $XWork
 
        Compute NewY = $YWork
 
      End
 
      MousePos $NewX, $NewY
 
      Timestamp $NewX, $NewY
 
      Delay 250
 
      Rightclick
 
      Delay 2250
 
      SetConst Button = 1
 
    End
 
  End
 
End
 
 
Procedure Limestone
 
  If $Button = 0
 
    SetConst Red = 113
 
    SetConst Green = 146
 
    SetConst Blue = 100
 
    Call FindButton
 
  End
 
  SetConst Button = 1
 
  While $Button = 1
 
    IsObject Endur at 973, 79
 
      Delay 200
 
    Else
 
      SetConst XOrig = {mousex}
 
      SetConst YOrig = {mousey}
 
      MousePos $ButtonX, $ButtonY
 
      Delay 150
 
      Rightclick
 
      Delay 100
 
      Mousepos $XOrig, $YOrig
 
      Delay 1000
 
      SetConst Button = 2
 
    End
 
  End
 
End
 
 
Procedure Dirt
 
  If $Button = 0
 
    SetConst Red = 91 //104
 
    SetConst Green = 138 //149
 
    SetConst Blue = 184 //192
 
    Call FindButton
 
  End
 
  SetConst Button = 1
 
  While $Button = 1
 
    IsObject Endur at 973, 79
 
      Delay 500
 
    Else
 
      SetConst XOrig = {mousex}
 
      SetConst YOrig = {mousey}
 
      MousePos $ButtonX, $ButtonY
 
      Delay 250
 
      Rightclick
 
      Delay 200
 
      Mousepos $XOrig, $YOrig
 
      Delay 10000
 
      SetConst Button = 2
 
    End
 
  End
 
End
 
 
Procedure Pull
 
  SetConst XOrig = {MouseX}
 
  SetConst YOrig = {MouseY}
 
  MousePos $RanX, $RanY
 
  Delay 200
 
  Rightclick
 
  Delay 100
 
  Compute RanX = $RanX + 14
 
  Compute RanY = $RanY - 3
 
  MousePos $RanX, $RanY
 
  Delay 250
 
  Rightclick
 
  Delay 100
 
  MousePos $XOrig, $YOrig
 
  Delay 100
 
End
 
 
Procedure FindButton
 
  MousePos $ButtonX, $ButtonY
 
  Delay 200
 
  LoadRGB {mousex}, {mousey}
 
  While {rgbred} <> $Red and {rgbgreen} <> $Green and {rgbblue} <> $Blue
 
    Compute ButtonX = $ButtonX - $SubX
 
    MousePos $ButtonX, $ButtonY
 
    Delay 200
 
    LoadRGB {mousex}, {mousey}
 
  End
 
  SetConst ButtonX = {mousex}
 
  SetConst ButtonY = {mousey}
 
  SetConst Button = 1
 
End
 
 
Procedure MineSetup
 
  Loop 6
 
    Loop 3
 
      MousePos $WinX, $WinY
 
      Delay $MDelay
 
      Dragto $DragX, $DragY
 
      Compute DragX = $DragX + $AddX
 
      Call Checkforlostfocus
 
    End
 
    SetConst DragX = 3
 
    Compute DragY = $DragY + $AddY
 
  End
 
  SetConst Setup = 1
 
End
 
 
Procedure Generate
 
  Compute Minval = $MouseX - 49
 
  Compute Maxval = $MouseX + 50
 
  SetConst RanX = $Random
 
  Compute Minval = $MouseY - 57
 
  Compute Maxval = $MouseY + 83
 
  SetConst RanY = $Random
 
End
 
 
Procedure GuildMine
 
  //Compute WinY = $WinY - 16
 
  Compute AddY = $AddY + 16
 
  Compute YWork = $YWork + 16
 
  //Compute DragY = $DragY + 16
 
  Set Guild = 1
 
End
 
 
Procedure ColorTest
 
  Bell Asterisk
 
  Delay 5000
 
  LoadRGB {mousex},{mousey}
 
  Timestamp RGB - {rgbred}, {rgbgreen}, {rgbblue}
 
End
 
 
Procedure CheckforLostFocus
 
  if {activewindow} contains eGenesis
 
    Exit
 
  Else
 
    Stop
 
  End
 
End
 
 
Function Random
 
  Compute Result = int(($Maxval - $Minval + 1) * rnd(1)) + $Minval
 
End
 
Bell Asterisk
 
//Written with ACTool 5.3.0 by Anka
 
_____________________________________
 
Limestone
 
 
// This line is necessary to select the proper window
 
SetActiveWindow Asheron's Call
 
 
delay 10000 // 10 second delay
 
MousePos 116, 103 // Change this to the location of the limestone icon
 
 
loop 10000 // Run this x times
 
 
loop 3
 
delay 1000
 
leftclick
 
end
 
 
delay 42500
 
 
end
 

Revision as of 15:46, 16 January 2009