Town efficiency, Speed town macro menu

These ads disappear when you log in.

User Tag List

Results 1 to 10 of 10
  1. #1
    scarocean's Avatar Member
    Reputation
    3
    Join Date
    Feb 2018
    Posts
    9
    Thanks G/R
    0/2
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Town efficiency, Speed town macro

    Here is a tool which will allow you to do a much faster town rotation... Free to use. Will not cost you 2.50/month or 20 life time as other macros I Have seen.

    Any questions with it please post here.


    GitHub - GodKingAlgiz/MOAM: Mother of all macros...

    it has:
    MOAM — imgbb.com

    Also
    here is a separate macro for the cube. I personally use it for upgrade items or converting whites to blues/yellow mats. You can obviously use it in any cube page.
    Coordinates based on 1920x1080 monitor resolution, if any other, XY positions will need to be changed, you can use MousePos (google it)

    Cube-Converter
    Last edited by scarocean; 10-21-2019 at 11:55 PM.

    These ads disappear when you log in.

  2. #2
    r47's Avatar Member
    Reputation
    1
    Join Date
    Aug 2018
    Posts
    1
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    can you just make to cube one f1 start for 2 slot items/f2 start for 1 slot item, f3 to stop, i try to do it on your script but get some errors

  3. #3
    Saico's Avatar Member
    Reputation
    10
    Join Date
    Apr 2019
    Posts
    261
    Thanks G/R
    19/9
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by scarocean View Post
    Here is a tool which will allow you to do a much faster town rotation... Free to use. Will not cost you 2.50/month or 20 life time as other macros I Have seen.

    Any questions with it please post here.


    GitHub - GodKingAlgiz/MOAM: Mother of all macros...

    it has:
    MOAM — imgbb.com

    Also
    here is a separate macro for the cube. I personally use it for upgrade items or converting whites to blues/yellow mats. You can obviously use it in any cube page.
    Coordinates based on 1920x1080 monitor resolution, if any other, XY positions will need to be changed, you can use MousePos (google it)

    Cube-Converter
    Hhm, nice macro, I have a question, how can I assign my mouse side buttons ? (XButton1 Xbutton2) etc ? Or .ahk does not support mouse keys

  4. #4
    Pe1a0's Avatar Member
    Reputation
    2
    Join Date
    Mar 2017
    Posts
    43
    Thanks G/R
    3/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    or any chance to adapt to 2560x1440p resolution?

  5. #5
    Disaster99's Avatar Member
    Reputation
    10
    Join Date
    Feb 2018
    Posts
    17
    Thanks G/R
    3/8
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hhm, nice macro, I have a question, how can I assign my mouse side buttons ? (XButton1 Xbutton2) etc ? Or .ahk does not support mouse keys
    - List of Keys (Keyboard, Mouse and Joystick) | AutoHotkey

    or any chance to adapt to 2560x1440p resolution?
    - I made one for fast salvage and cube stuff that will work on any resolution
    - default keys (can edit the script to change)
    - fast left click to pick up items fast (alt + left mouse button)
    - fast right-click to buy blood shards fast (alt + reight mouse button)
    - salvage inventory (double-tap the F10 key)
    - cube converter 1 slot items ( ctrl + windows key + left mouse button)
    - cube converter 2 slot items ( ctrl + windows key + right mouse button)
    - stop script ( ctrl + windows key + mouse scroll wheel up/down)


    Code:
    ; ===============================================================
    ; Edit hotkeys in this section
    ; ===============================================================
    
        salvageDelay := 1           ; Set delay when using auto salvage (lower = faster | higher = slower)
        SetMouseDelay, -1           ; Sets the delay that will occur after each mouse movement or click.
        SetKeyDelay, -1             ; Sets the delay that will occur after each keystroke
        
        ^#LButton::cubeOneSlot()    ; Hotkey to go threw cube for one slot items
        ^#RButton::cubeTwoSlots()   ; Hotkey to go threw cube for two slot items
        
        ^#WheelUp::stopScript()     ; Hotkey to stop script
        ^#WheelDown::stopScript()   ; Hotkey to stop script
        
        !LButton::fastLeftClick()   ; Hotkey to click fast with left mouse button
        !RButton::fastRightClick()  ; Hotkey to click fast with right mouse button
        
        $F10::                       ; Hotkey to salvage inventory
            If (A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey < 500)
                salvageStuff()
            return
            
    ; ===============================================================
    ; Information - READ THIS BEFORE ASKING QUESTIONS
    ; ===============================================================
        ; NOTE: In Diablo Goto Option > Key Bindings > Then check to make sure none of them are set to the above hotkeys keys
    
        ; To use cube
        ; 1st step - Open cube to which ever page you need to use
        ; 2nd step - Press required hotkey depeneding on if its 1-slot or 2-slot items
    
        ; When using fast salvage: go to blacksmith and enter salvage tab first  (salavge hotkey is double tap by default)
        
        ; If you find it is skipping items when converting with the cube try setting the  mouse/key dealys to a higher number
    
        ; INFO - setting hotkeys
        ; set the hotkey by changing the text BEFORE the double colons
        ; example>>>       HOTKEY_HERE::randomText()       <<<example
        ; ! = alt key
        ; + = shift key
        ; ^ = crtl key
        ; # = windows key
        ; EXAMPLE      ^!f::randomText()     would activate macro by pressing crtl + alt + f at the same time
        ; EXAMPLE      q::randomText()       would actiavte macro by just pressing the q key
    
    ; ===============================================================
    ; cube - one slot
    ; ===============================================================
        cubeOneSlot()
        {       
            setResUtilities()
            
            SetMouseDelay, 4
            SetKeyDelay, 2  
            
            Global inventoryX, inventoryY
            Global cubeBookFillX, cubeBookFillY
            Global cubeTransmuteX, cubeTransmuteY
            Global cubeBookArrowRightX, cubeBookArrowRightY
            Global cubeBookArrowLeftX, cubeBookArrowLeftY
            Global nextItem, startItem
                
            Sleep 100
        
            Loop, 54 
            {   
                MouseClick, Right, inventoryX, inventoryY
                MouseClick, Left, cubeBookFillX, cubeBookFillY
                MouseClick, Left, cubeTransmuteX, cubeTransmuteY
                MouseClick, Left, cubeBookArrowRightX, cubeBookArrowRightY
                MouseClick, Left, cubeBookArrowLeftX, cubeBookArrowLeftY
    
                inventoryX := inventoryX + nextItem
                
                if (A_Index == 9)
                {
                    inventoryY := inventoryY + nextItem
                    inventoryX := startItem
                }
                if (A_Index == 18)
                {
                    inventoryY := inventoryY + nextItem
                    inventoryX := startItem
                }
                if (A_Index == 27)
                {
                    inventoryY := inventoryY + nextItem
                    inventoryX := startItem
                }
                if (A_Index == 36)
                {
                    inventoryY := inventoryY + nextItem
                    inventoryX := startItem
                }
                if (A_Index == 45)
                {
                    inventoryY := inventoryY + nextItem
                    inventoryX := startItem
                }
            }
            Reload
        }
        
    ; ===============================================================
    ; cube - two slots
    ; ===============================================================
        cubeTwoSlots()
        {
            setResUtilities()
            
            SetMouseDelay, 4
            SetKeyDelay, 2  
            
            Global inventoryX, inventoryY
            Global cubeBookFillX, cubeBookFillY
            Global cubeTransmuteX, cubeTransmuteY
            Global cubeBookArrowRightX, cubeBookArrowRightY
            Global cubeBookArrowLeftX, cubeBookArrowLeftY
            Global nextItem, startItem
            
            Sleep 100
            
            Loop, 27 
            {   
                MouseClick, Right, inventoryX, inventoryY
                MouseClick, Left, cubeBookFillX, cubeBookFillY
                MouseClick, Left, cubeTransmuteX, cubeTransmuteY
                MouseClick, Left, cubeBookArrowRightX, cubeBookArrowRightY
                MouseClick, Left, cubeBookArrowLeftX, cubeBookArrowLeftY
                
                inventoryX := inventoryX + nextItem
                
                if (A_Index == 9)
                {
                    inventoryY := inventoryY + (nextItem * 2)
                    inventoryX := startItem
                }
                if (A_Index == 18)
                {
                    inventoryY := inventoryY + (nextItem * 2)
                    inventoryX := startItem
                }   
                
            }
            Reload
        }
        
    ; ===============================================================   
    ; salvage inventory
    ; ===============================================================
        salvageStuff()
        {
            setResUtilities()
            
            SendMode, Input
            
            Global salvageX, salvageY
            Global inventoryX, inventoryY
            Global nextItem, startItem, salvageDelay
            
            MouseClick, Left, salvageX, salvageY
            
            Loop, 54 
            {   
                MouseClick, Left, inventoryX, inventoryY
                ; Sleep %salvageDelay%
                
                SendInput {Enter Down}
                SendInput {Enter Up}
                Sleep %salvageDelay%
                
                SendInput {Enter Down}
                SendInput {Enter Up}
                Sleep %salvageDelay%
    
                inventoryX := inventoryX + nextItem
                
                if (A_Index == 9)
                {
                    inventoryY := inventoryY + nextItem
                    inventoryX := startItem
                }
                if (A_Index == 18)
                {
                    inventoryY := inventoryY + nextItem
                    inventoryX := startItem
                }
                if (A_Index == 27)
                {
                    inventoryY := inventoryY + nextItem
                    inventoryX := startItem
                }
                if (A_Index == 36)
                {
                    inventoryY := inventoryY + nextItem
                    inventoryX := startItem
                }
                if (A_Index == 45)
                {
                    inventoryY := inventoryY + nextItem
                    inventoryX := startItem
                }       
            }
            
            SendInput, {Esc}
    
            Reload  
        }
        
    ; ===============================================================
    ; fast click - Left
    ; ===============================================================
        fastLeftClick()
        {
            Loop                
            {
                GetKeyState, var, LButton, P
                If var = U
                    Break
                
                MouseClick, Left
                Sleep 5
            }   
            Return
        }
        
    ; ===============================================================
    ; fast click - Right
    ; ===============================================================
        fastRightClick()
        {
            Loop                
            {
                GetKeyState, var, RButton, P
                If var = U
                    Break
                
                MouseClick, Right
                Sleep 5
            }   
            Return
        }
        
    ; ===============================================================
    ; break loop
    ; ===============================================================
        stopScript()
        {   
            Reload
            ExitApp
        }
        
    ; ===============================================================
    ; set resolution coordinates 
    ; ===============================================================
        setResUtilities()
        { 
            Global cubeBookX            := 577
            Global cubeBookY            := 1100
            Global cubeBookArrowRightX  := 1137
            Global cubeBookArrowRightY  := 1121
            Global cubeBookArrowLeftX   := 777
            Global cubeBookArrowLeftY   := 1123
            Global cubeBookFillX        := 969
            Global cubeBookFillY        := 1114
            Global cubeTransmuteX       := 314
            Global cubeTransmuteY       := 1100
            Global inventoryX           := 1975
            Global inventoryY           := 780
            Global nextItem             := 64
            Global startItem            := 1975
            Global salvageX             := 221
            Global salvageY             := 339
            Global exitgameX            := 344
            Global exitgameY            := 647
            Global mapbackX             := 1198
            Global mapbackY             := 173
            Global actoneX              := 980
            Global actoneY              := 822
            Global actonehomeX          := 1358
            Global actonehomeY          := 643
            Global obeliskX             := 2406
            Global obelisky             := 813
            Global grX                  := 363
            Global grY                  := 633
            Global gracceptX            := 372
            Global gracceptY            := 1128
            Global yellowItemCountX     := 165
            Global yellowItemCountY     := 1043
            Global yellowItemCraftX     := 419
            Global yellowItemCraftY     := 1043
        
            SysGet, screenSizeX, 0
            SysGet, screenSizeY, 1
        
            if (screenSizeX != 2560 || screenSizeY != 1440)
            {
                Global cubeX                *= (screenSizeX / 2560)
                Global cubeY                *= (screenSizeY / 1440)
                Global cubeBookX            *= (screenSizeX / 2560)
                Global cubeBookY            *= (screenSizeY / 1440)
                Global cubeBookArrowRightX  *= (screenSizeX / 2560)
                Global cubeBookArrowRightY  *= (screenSizeY / 1440)
                Global cubeBookArrowLeftX   *= (screenSizeX / 2560)
                Global cubeBookArrowLeftY   *= (screenSizeY / 1440)
                Global cubeBookFillX        *= (screenSizeX / 2560)
                Global cubeBookFillY        *= (screenSizeY / 1440)
                Global cubeTransmuteX       *= (screenSizeX / 2560)
                Global cubeTransmuteY       *= (screenSizeY / 1440)
                Global inventoryX           *= (screenSizeX / 2560)
                Global inventoryY           *= (screenSizeY / 1440)
                Global nextItem             *= (screenSizeX / 2560)
                Global startItem            *= (screenSizeX / 2560)
                Global salvageX             *= (screenSizeX / 2560)
                Global salvageY             *= (screenSizeY / 1440)
                Global exitgameX            *= (screenSizeY / 1440)
                Global exitgameY            *= (screenSizeY / 1440)
                Global actoneX              *= (screenSizeX / 2560)
                Global actoneY              *= (screenSizeY / 1440)
                Global actonehomeX          *= (screenSizeX / 2560)
                Global actonehomeY          *= (screenSizeY / 1440)
                Global obeliskX             *= (screenSizeX / 2560)
                Global obelisky             *= (screenSizeY / 1440)
                Global grX                  *= (screenSizeX / 2560)
                Global grY                  *= (screenSizeY / 1440)
                Global gracceptX            *= (screenSizeX / 2560)
                Global gracceptY            *= (screenSizeY / 1440)
                Global yellowItemCountX     *= (screenSizeX / 2560)
                Global yellowItemCountY     *= (screenSizeY / 1440)
                Global yellowItemCraftX     *= (screenSizeX / 2560)
                Global yellowItemCraftY     *= (screenSizeY / 1440)
            }
            return
        }

  6. #6
    laurens362's Avatar Member
    Reputation
    1
    Join Date
    Jun 2012
    Posts
    36
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Is it possible to make key combos? Ex: crtl+1 = act1?

  7. #7
    Sadhir's Avatar Member
    Reputation
    1
    Join Date
    Feb 2020
    Posts
    1
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    thank you for your efforts! I really needed a quick disposal function! you saved my finger! )))

  8. #8
    WyrmKin's Avatar Member
    Reputation
    4
    Join Date
    Mar 2017
    Posts
    32
    Thanks G/R
    8/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Is there a way to add a toggle function to this? Would be a lot more convenient to be able to turn it on and off.

  9. #9
    fL0per's Avatar Member
    Reputation
    1
    Join Date
    Jun 2015
    Posts
    1
    Thanks G/R
    14/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Pe1a0 View Post
    or any chance to adapt to 2560x1440p resolution?
    GitHub - fL0per/MOAM: Mother of all macros...
    There you have a working copy of the macro for 1440p resolution. It may require minor polish, but it works for me (I don't use the whole set of 18 hotkeys).

  10. #10
    Pe1a0's Avatar Member
    Reputation
    2
    Join Date
    Mar 2017
    Posts
    43
    Thanks G/R
    3/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by fL0per View Post
    GitHub - fL0per/MOAM: Mother of all macros...
    There you have a working copy of the macro for 1440p resolution. It may require minor polish, but it works for me (I don't use the whole set of 18 hotkeys).
    how u stop the scrip from infinite loop? like the TurboLeftClick?

Similar Threads

  1. [Release] [Town Efficiency] GodTool (Salvage, Gem Up, Open GR, Inventory Drop, Gamble Macro)
    By Godly_D3 in forum Diablo 3 Bots and Programs
    Replies: 21
    Last Post: 01-08-2020, 09:29 PM
  2. Efficient Speed Hack?
    By desemos in forum WoW Bots Questions & Requests
    Replies: 1
    Last Post: 02-23-2011, 11:05 PM
  3. Killing people in towns with everyones faviort spell mind control
    By hannible in forum World of Warcraft Exploits
    Replies: 4
    Last Post: 10-13-2006, 12:14 PM
  4. Incomplete Town in Dun Morogh/Wetlands?
    By garymce in forum World of Warcraft General
    Replies: 4
    Last Post: 08-11-2006, 01:22 AM
  5. Ganking Alliance in atari highlands in there own town
    By hannible in forum World of Warcraft Exploits
    Replies: 6
    Last Post: 07-08-2006, 01:24 AM
All times are GMT -5. The time now is 09:48 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2020 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search