Advertisement
cromulator

PoE BonesAndProfane V1

Dec 20th, 2024 (edited)
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;============================================================
  2. ;Auto initialisation, non-user configurable stuff usually
  3. ;============================================================
  4.  
  5. #NoEnv
  6. #SingleInstance, Force
  7. SendMode, Input
  8. SetBatchLines, -1
  9. SetWorkingDir, %A_ScriptDir%
  10.  
  11.  
  12. ;============================================================
  13. ;configurable stuff, remember that variables need to be global if you want to set them this far from the function
  14. ;============================================================
  15. global sWindowString:="ahk_exe PathOfExile.exe"
  16.  
  17.  
  18. ;============================================================
  19. ;Hotkeys
  20. ;============================================================
  21.  
  22.  
  23. Numpad1:: ;your key of choice to fire this macro
  24. {
  25.     BonesAndProfane()
  26.     return
  27. }
  28.  
  29.  
  30.  
  31.  
  32. ;============================================================
  33. ;Main process or loop
  34. ;============================================================
  35.  
  36. BonesAndProfane()
  37. {
  38.  
  39.     ;fire bones then fire the debuff
  40.     SuperSend("f","both",1000,1200,,sWindowString) ;bones
  41.     SuperSend("q","both",35,1200,,sWindowString) ;profane
  42.  
  43. /*
  44.     The one-line SuperSend function largely replaces the need to do a series of
  45.     commends for key combos with ideal timing
  46.  
  47.     Here's is how I had previously written the above for just 2 skils;
  48.  
  49.     send {t down}
  50.     rsleep(35)
  51.     send {t up}
  52.     rsleep(840)
  53.     send {q down
  54.     rsleep(50)
  55.     send {q up}
  56.     rsleep(1050)
  57. */
  58.  
  59. }
  60.  
  61. ;============================================================
  62. ;Functions and classes etc
  63. ;============================================================
  64.  
  65.  
  66.     SuperSend(key,direction,delay:=50,postdelay:=0,repetition:=1, winactiveString:=0)
  67.     {
  68.     ;A way to do more repeat sends when the application is flaky with just a single send. Don't go big on the repetitions.
  69.            
  70.     ;First three parameters must be enclosed in quotes ""
  71.        
  72.     ;The key is the key you want to send
  73.     ;The direction should be "up" or "down" for partial keys, "both" for a regular down then up
  74.        
  75.     ;The following paramters are optinoal:
  76.     ;Delay is how many ms between the up and the down, only applies to normal key presses
  77.     ;postdelay is a delay that will occur after the key press. for "both" it occurs after the up, otherwise occurs after the part key press
  78.     ;Reptition is how many loops, defaulting to 1
  79.     ;winactiveString is the string to pass to ifwinactive and can be the normal paramters acceptable by that function, e.g. "ahk_exe PathOfExile.exe"
  80.        
  81.        
  82.         if delay<1
  83.             delay:=0
  84.        
  85.         if (direction = "both") ;do this for normal key sends
  86.         {
  87.             sStringDown:=(key . " down")
  88.             sStringUp:=(key . " up")
  89.  
  90.             Loop, %repetition%
  91.             {
  92.  
  93.                 Send {%sStringDown%}
  94.                 RSleep(delay)
  95.                 Send {%sStringUp%}
  96.  
  97.                 if postdelay>0
  98.                     {
  99.                         RSleep(postdelay)
  100.                     }
  101.             }
  102.            
  103.         }
  104.         else ;do this when you just want key up or key down, such when applications aren't handle single key down reliably.
  105.         {
  106.             sString:=(key . " " . direction)
  107.            
  108.             Loop, %repetition%
  109.             {
  110.                 ifwinactive, %winactiveString%
  111.                 {
  112.                     Send {%sString%}
  113.  
  114.                     if postdelay>0
  115.                         {
  116.                             RSleep(postdelay)
  117.                         }
  118.                 }
  119.             }
  120.         }
  121.          
  122.     }
  123.  
  124.  
  125.     RSleep(duration,variance:=10)
  126.     {
  127.         min:=duration
  128.         max:=min+variance
  129.         random,RND,min,max
  130.         sleep %RND%
  131.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement