Reddit community and fansite for the free-to-play third-person co-op action shooter, Warframe. The game is currently in open beta on PC, PlayStation 4|5, Xbox One/Series X|S, Nintendo Switch, and iOS!
So, I'm sharing this and hoping it will come useful to someone looking to use Macros to ease the annoyances that you face everyday with super high speed attacks and melee. E.g:
The tedious Maiming Strike spam for min-maxing.
Excalibur exalted blade spams
Any really fast melee weapon
I haven't found any macro that suits my requirements. This one works very nicely to my tastes :)
Anyway, let me know if you like this and if you have any suggestions to improve this I'll be happy to listen.
EDIT: Wow the comments, I was expecting some controversy but not as much. Anyway, long long story short, the macro only sends inputs without reading any feedback from the game. I have a few accessibility issues using my hand so I find this macro eases the tension a lot.
In a non-competitive environment, macros of this nature in general "SHOULD BE OK" in terms of reasonable judgement. I don't see any significant advantage to using a macro like this other than convenience and reduction of stress on the hands. The same advantage you would get by having an ergonomic desk and ergonomic mouse and keyboard, i.e. convenience.
That said, use this at your own risk.
Finally and in my personal opinion. I really wish maiming strike would be more usable, as my min-maxing genes are itching to use it as often as humanly possible.
Finally finally, sorry for creating a mess of controversy...
One button melee spam and melee spin, and user friendly
Adjustable melee spin speed while in-game, with tooltip messages
Easy to configure
Adjust Key Settings (Lines 9-11):
melee: The button to start the macro (Default is XButton1)
meleeKey: The button mapped in game to do melee attack (Default is 0 key)
slideKey: The button mapped in game to slide (Default is Shift)
Lines 61 onwards: Adjust hotkeys as needed, especially the XButton1 in case you changed the melee button variable.
Press melee attack once = normal attack
Press melee and hold = rapid fire attack
Slide and melee = normal spin attack
Slide and HOLD melee = automatic spin attack START
Press any movement key = STOP automatic spin attack
F2 = Toggle macro (Default is ON).
PgUp = Reduce spin attack delay (Faster spin) and display current value
PgDown = Increase spin attack delay (Slower spin) and display current value
There's a small internal delay added while holding button before the macro starts, to separate intent if you were trying to do a single attack or rapid attack.
Advanced configuration for adjusting the relative delay rates that happen in a spin attack
I'm using the "Send Blind" feature to make spin attacks function very nicely in case Shift or Ctrl were used as the slide key
Tooltip may cause issues. If that happens you can comment out lines 35, 42, 43. (Comments start with semicolon (;) character)
I don't know how to use a variable as a hotkey.
I don't know if there's a way to save the melee spin speed after adjustment. You can simply adjust the variable spinTime (Line 73) after you find the suitable speed.
For editing and creating your own, I recommend installing Sublime Text 3 + Package Control + Autohotkey package
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. #Warn ; Enable warnings to assist with detecting common errors. SendMode Input ; Recommended for new scripts due to its superior speed and reliability. SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. #MaxHotkeysPerInterval 20000 ;---- KEY SETTINGS ---- melee= XButton1 ; -- NOTE: You have to change HotKeys below as well (E.g. change XButton1) meleeKey= 0 slideKey= Shift ;---- TIME SETTINGS ---- spinTime = 480 waitBS = 400 meleeDelay = 100 ;----------------------- ;-- CALC STUFF ratei := 5.0 ;0.045454545 rateii := 30.0 ;0.303030303 rateiii := 65.0 ;0.651515152 startloop := 0 meleeRapid := 1 speedRate := 10 CalcTimes() ;-- FUNCTIONS STUFF RemoveToolTip: { SetTimer, RemoveToolTip, Off ToolTip ;return } Msg(s) { ToolTip, %s%, 140, 140 SetTimer, RemoveToolTip, 1000 return } CalcTimes() { global spini := (spinTime * ratei / 100.0) spinii := (spinTime * rateii / 100.0) spiniii := (spinTime * rateiii / 100.0) Msg(spinTime) return } ;----------------------- #IfWinActive, WARFRAME { #If, meleeRapid=1 XButton1:: Send {Blind}%meleeKey% Sleep, waitBS While GetKeyState(melee, "P"){ Send {Blind}%meleeKey% Sleep, meleeDelay ; milliseconds } return +XButton1:: Send {Blind}%meleeKey% Sleep, spinii Send {%slideKey% Up} Sleep, waitBS GetKeyState, state1, XButton1, P if state1 = D { startloop:=1 Msg("Spinning ON!") While(startloop=1) { Send {W down} Send {%slideKey% Down} Sleep, spini Send {Blind}%meleeKey% Sleep, spinii Send {%slideKey% Up} Sleep, spiniii Send {W up} } } return ;return #If #If, meleeRapid="0" *XButton1:: Send {Blind}{%meleeKey% Down} return *XButton1 UP:: Send {Blind}{%meleeKey% Up} return ;return #If ~F2:: if(meleeRapid=0){ meleeRapid:=1 msg("Melee rapid mode ON") } else{ meleeRapid:=0 msg("Melee rapid mode OFF") } return ~PgUp:: spinTime := (spinTime - speedRate) CalcTimes() return ~PgDn:: spinTime := (spinTime + speedRate) CalcTimes() return } #If, startloop=1 *~W:: *~Space:: *~S:: *~A:: *~D:: startloop:=0 Msg("Stop spin") return #If
Archived post. New comments cannot be posted and votes cannot be cast.