Crafticus

Minecraft AHK Script

Oct 6th, 2020 (edited)
4,198
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; # Windows Logo Key
  2. ; ! Alt
  3. ; ^ Control
  4. ; + Shift
  5. ; * Fire hotkey even if extra modifiers are held
  6. ; ~ Don't block native function
  7.  
  8. ;==================================================================================================
  9. ; AHK setting
  10. #NoEnv
  11. SetBatchLines -1
  12. SetTitleMatchMode 2
  13. #SingleInstance Force
  14. SetWorkingDir %A_ScriptDir%
  15.  
  16.  
  17. ; Initialize SoundPlay to remove delay
  18. SoundPlay, ""
  19. ;==================================================================================================
  20. ; Globle values
  21. wintitle := Minecraft X-AHK V0.4
  22. targettitle := none
  23. TARGET_WIN_CLASS := GLFW30 ; Class of a Java program
  24. ModeText := Empty
  25. id := 0
  26.  
  27. ProgState := 0
  28. autoSwing := 0
  29. switchClickEnabled := 0
  30.  
  31. ;===================================================================================================
  32. ;Shortcuts
  33. ;===================================================================================================
  34. Hotkey  !^s,    Stop
  35. Hotkey  !^w,    SelectWindow    ; Allows user to select active window
  36. Hotkey  F8,     KillScript
  37.  
  38. Return
  39.  
  40. KillScript:
  41. {
  42.     ExitApp
  43. }
  44.  
  45. ;===================================================================================================
  46. ; Called when Ctrl+Alt+W is pressed and captures target window information, checks its a java prog
  47. ;and then creates the first window.
  48. SelectWindow:
  49. {
  50.     ;Get mouse pos on screen and grab details of program
  51.     MouseGetPos, , , id, control
  52.     WinGetTitle, targettitle, ahk_id %id%
  53.     WinGetClass, targetclass, ahk_id %id%
  54.     ;MsgBox, ahk_id %id%`nahk_class %targetclass%`n%targettitle%`nControl: %control%
  55.    
  56.     ;Check is Class of program is a Minecraft Java Class
  57.     if InStr(targetclass, TARGET_WIN_CLASS)
  58.     {
  59.         ;Target window found
  60.         ProgState = 2
  61.  
  62.         ; Add some hotkeys that are specific to this window handle
  63.         ; Hotkey  XButton1,   RightClickThrough
  64.  
  65.         Hotkey, IfWinActive, ahk_id %id%
  66.         Hotkey  XButton1,   HoldLeftMouseDown
  67.         Hotkey  XButton2,   HoldRightMouseDown
  68.         Hotkey  F1,         AutoRun
  69.         Hotkey  F4,         SwitchClick
  70.         Hotkey  F5,         EnableSwitchTimer
  71.         Hotkey  ~*s,        AutoRunStop
  72.         Hotkey  ^b,         TowerBuilder
  73.         Hotkey  !^m,        MobGrind
  74.  
  75.         ; clear mouse clicks to target by sending UP to the keys
  76.         ; ControlClick, , ahk_id %id%, ,Right, , NAU
  77.         ; ControlClick, , ahk_id %id%, ,Left, ,NAU
  78.  
  79.         ; Indicate success
  80.         SoundBeep 100
  81.         sleep 500
  82.     }
  83.     Else
  84.     {
  85.         ;Class of target program not a match so give warning message
  86.         MsgBox, You do not seam to have selected a Minecraft window. Please check before you continue.
  87.     }
  88.     Return
  89. }
  90.  
  91. SwitchClick:
  92. {
  93.     ; SoundBeep 400
  94.  
  95.     if (GetKeyState("RButton"))
  96.     {
  97.         Click Right Up
  98.         Sleep 50
  99.         Click Left Down
  100.     }
  101.     Else
  102.     {
  103.         if GetKeyState("LButton")
  104.         {
  105.             Click Left Up
  106.             Sleep 50
  107.         }
  108.  
  109.         Click Right Down
  110.     }
  111.  
  112.     Return
  113. }
  114.  
  115. TowerBuilder:
  116. {
  117.     Click Down Right
  118.     Sleep 50
  119.     Send {Space Down}
  120.     Return
  121. }
  122.  
  123. ; F1
  124. AutoRun:
  125. {
  126.     Send {w down}
  127.     Return
  128. }
  129.  
  130. ; ~*s
  131. AutoRunStop:
  132. {
  133.     if GetKeyState("w")
  134.     {
  135.         Send {w up}
  136.         Send {Click up}
  137.     }
  138.     Return
  139. }
  140.  
  141. ; XButton1
  142. HoldLeftMouseDown:
  143. {
  144.     if GetKeyState("RButton")
  145.     {
  146.         Click Right Up
  147.     }
  148.  
  149.     if (!GetKeyState("LButton"))
  150.         Click Left Down
  151.    
  152.     Return
  153. }
  154.  
  155.  
  156. ; XButton2
  157. HoldRightMouseDown:
  158. {
  159.     if GetKeyState("LButton")
  160.         Click Left Up
  161.  
  162.     if (!GetKeyState("RButton"))
  163.         Click Right Down
  164.  
  165.     Return
  166. }
  167.  
  168.  
  169. ; F5
  170. EnableSwitchTimer:
  171. {
  172.     if (switchClickEnabled > 0)
  173.     {
  174.         switchClickEnabled := 0
  175.     }
  176.     Else
  177.     {
  178.         switchClickEnabled := 1
  179.         heartbeatCount := 0
  180.         SetTimer, Heartbeat, 1000
  181.  
  182.         SoundBeep 200
  183.         SoundBeep 250
  184.         SoundBeep 300
  185.     }
  186.  
  187.     Return
  188. }
  189.  
  190. ;==================================================================================================
  191. ; CTRL+ALT+M
  192. MobGrind:
  193. {
  194.     if (MobGrindActive)
  195.     {
  196.         SoundBeep, 100
  197.     }
  198.     Else
  199.     {
  200.         MobGrindActive := True
  201.         SetTimer, MobGrindTimer, 750 ; 1000 = 1s
  202.  
  203.         SoundBeep 200
  204.         SoundBeep 250
  205.         SoundBeep 300
  206.     }
  207.  
  208.     Return
  209. }
  210.  
  211.  
  212. Heartbeat:
  213. {
  214.     heartbeatCount := heartbeatCount + 1
  215.  
  216.     maxValue := 90
  217.  
  218.     if (GetKeyState("RButton"))
  219.     {
  220.         maxValue := 120
  221.     }
  222.  
  223.     if (heartbeatCount >= maxValue) and (switchClickEnabled > 0)
  224.     {
  225.         heartbeatCount := 0
  226.  
  227.         if (GetKeyState("RButton"))
  228.         {
  229.             Click Right Up
  230.             Sleep 50
  231.             Click Left Down
  232.         }
  233.         Else
  234.         {
  235.             if GetKeyState("LButton")
  236.             {
  237.                 Click Left Up
  238.                 Sleep 50
  239.             }
  240.  
  241.             Click Right Down
  242.         }
  243.     }
  244.  
  245.     Return
  246. }
  247.  
  248.  
  249. MobGrindTimer:
  250. {
  251.     Random, r, 1, 100
  252.     if (r <= 15) or (autoSwing >= 2)
  253.     {
  254.         autoSwing := 0
  255.         ControlClick, , ahk_id %id%, ,Left, ,NAD
  256.         Sleep 50
  257.         ControlClick, , ahk_id %id%, ,Left, ,NAU
  258.     }
  259.     Else
  260.     {
  261.         autoSwing := autoSwing + 1
  262.     }
  263.  
  264.     Return
  265. }
  266.  
  267.  
  268. ;==================================================================================================
  269. ; CTRL+ALT+S
  270. ; Due to mouse loss of focus, STOP will also force mouse keys UP.
  271. Stop:
  272. {
  273.     BreakLoop := 1
  274.    
  275.     MobGrindActive := False
  276.     SetTimer, MobGrindTimer, Off
  277.  
  278.     ControlClick, , ahk_id %id%, ,Right, , NAU
  279.     ControlClick, , ahk_id %id%, ,Left, ,NAU
  280.  
  281.     Sleep 500
  282.  
  283.     Return
  284. }
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×