The Corsair User Forums  

Go Back   The Corsair User Forums > Corsair Product Discussion > Keyboards and Mice

Reply
 
Thread Tools Search this Thread Rating: Thread Rating: 208 votes, 5.00 average. Display Modes
  #1  
Old 09-16-2012, 07:19 AM
Laufer's Avatar
Laufer Laufer is offline
Registered User
 
Join Date: Feb 2012
Location: Moscow
Posts: 149
POST ID # = 602859
Laufer Reputation: 10
Important AutoHotkey "Hard Macro" macro tool for M60 and M90

Hard Macro v1.11
macro tool for Corsair Vengeance M60 and M90
Content
1. Installing Hard Macro (look below)
2. Using Hard Macro (example for Battlefield Heroes game)
3. Macro coding basics



Good news, everyone!
I'm glad to present you my work. This script based on AuotHotkey script language allows you to program various actions and assign them to mouse buttons.



Here are the advantages of the script:
+ Unlimited quantity of profiles (Corsair software for M60 allows only 1 profile, for M90 - 6) (in "Hardware playback" mode)
+ Automatic switch between profiles. (for M60 Corsair soft must be launched, switched to profile via interface and reloaded to mouse memory, for M90 you have to press "Switch profile" button on a mouse)
+ Application assignment. Profile will work in applications requested (Corsair soft can't recognize most of games)
+ Functionality of macros limited only with your imagination (Corsair soft not allows if...then constructions, timers, cycles, pre-pressing, post-pressing and so on)
- But this script requires some patience! So, go on and get some and welcome to the club!

Let's begin!


Step 1. Install script software

1. Install AutoHotkey_L
2. Download and unpack anywhere my HardMacro package (script, images, sounds, sample macros)
3. Download SciTE4AutoHotkey - delux macro editor. (This download is optional, Windows Notepad will be enough)


Step 2. Assign extended mouse buttons

You need to assign them to hardcoded buttons (listed below). Its a bit lame, but you have to do it only once. Just import profile M60_Default.xml or M90_Default.xml from package using Corsair software. Also set mouse to Hardware playback mode!

Corsair Vengeance M60
1. Mouse button 4 assign to F13
2. Mouse button 5 assign to F14
3. Mouse button 8 assign to F15

Corsair Vengeance M90
1. Mouse button 4 assign to F13
2. Mouse button 5 assign to F14
3. Mouse button 6 assign to F15
4. Mouse button 9 assign to F16
5. Mouse button 10 assign to F17
6. Mouse button 11 assign to F18
7. Mouse button 12 assign to F19
8. Mouse button 13 assign to F20
9. Mouse button 14 assign to F21
10. Mouse button 15 assign to F22
(example on screen below)



If you still want to use some specific mouse button don't assign it. It will be ignored by the script. I personally don't assign mouse button 5 of M60, I set it to DPI Select


Step 3. Create new profile

1. Run script from previously downloaded Hard Macro package: HardMacro_M60.ahk for M60 and HardMacro_M90.ahk for M90



2. Press button "Create profile" and input name of new profile.


Step 4. Assign application

1. Press "Assign application" button.
2. Select application exe-file
Leave Application field empty and profile will work in all applications that not assigned in other profiles (also on Desktop)


Step 5. Customize sound for profile

Profile will automatically switch on assigned application you opened. But what if you use several profiles for one application? You can switch between them by pressing Win+Z but you can't see tool tip balloon indicating current profile (in most of games). For that case you may customize sound that script will play when you switch to specified profile. To do so:
1. Press "Customize sound" button.
2. Select sound wav-file. You will hear that sound immediately.
3. If you want default sound back select ProfileSwitch.wav from \Sounds folder.


Step 6. Edit macros

1. Press button "Edit macro" on the right of drop-down lists with macro names. Macro will be open for editing.
2. When you finish editing just save script and close editor.
3. If you want to create new macro click on "Edit macro" when blank macro selected. Input new script name and click Ok. New script will be created in \Macros folder.
4. Press "Save" button. Profile will be saved to Profiles.cfg.
5. Press "Launch" button. Hard Macro will generate and run script MacroScript.ahk. Icon will be shown in your system tray. If you want to stop script press right mouse button on that icon and select "Exit" or just press Win+F4
You don't have to open HardMacro_M60.ahk or HardMacro_M90.ahk and press "Launch" button every time you want to play game. Just double click on MacroScript.ahk and it will run previously generated macro script. You may even put it to Windows Autorun folder!

Thats it!
Thank you for attention. Have fun!


p.s. If you found a bug or have some ideas about my program - please, let me know! I will update my thread as soon as possible.

_________________
To Do list:
1. List of templates so will be easier to create new macro.
2. Keyboard macros for K60 and K90.

Last edited by Laufer; 05-23-2017 at 03:16 AM.
Reply With Quote


  #2  
Old 09-16-2012, 07:19 AM
Laufer's Avatar
Laufer Laufer is offline
Registered User
 
Join Date: Feb 2012
Location: Moscow
Posts: 149
POST ID # = 605661
Laufer Reputation: 10
Important Using Hard Macro in Battlefield Heroes game

Using Hard Macro
example for Battlefield Heroes game
Creating macros seems too complicated. But lets walk through one live example.
Game: Battlefield Heroes
Class: Gunner
Mouse: Corsair Vengeance M60
Software: Hard Macro 1.10

1. Open HardMacro_M60.ahk with double mouse click (Autohotkey should be installed already)
2. Select profile "BFH: National Gunner" (this is sample profile from HardMacro package). You will see this page:



Here you see a lot of macros assigned to mouse buttons but before we proceed with explanation take a look at my hero. Awesome, isn't he?



I show you this picture not only to brag, but also to show weapons and abilities I will use in example:
"Key 1" Machine gun (primary weapon)
"Key 2" Explosive Keg (ability, some sort of grenade)
"Key 3" Rocket launcher (anti-vehicle weapon)
"Key 4" Shotgun (secondary weapon)
"Key 5" Leg It (fast run ability)
"Key 6" Eat Greandes (ability to eat all nearby explosives)
"Key 8" Shield (defensive ability)
"Key 9" Medical kit (heal yourself)
"Key 0" Repair kit (repair vehicle you drive)

Keys from "1" to "3" may be used on a keyboard, but others are way too far and must be assigned to a mouse. Note that M60 mouse doesn't have many buttons so we have to use them wisely. Also I want make some tricks that will make my life easier (and make life of my enemies harder )


Macros explained

Button 2: 4LMB_Switch4RapidFire. This one assigned to Right Mouse Button (RMB). It switches to shotgun (key "4") than press Left Mouse Button (LMB) repeatedly while I hold RMB. This trick let me switch to shotgun and shot from it as fast as game can just holding down one button!
Code:
; 4 + [LMB]
;
; Switch 4 + Fire Rapidly in cycle
4LMB_Switch4RapidFire:
	Send {4 down} 				; press "4"
	Sleep, 50 				; wait 50 ms
	Send {4 up} 				; release "4"
	Key := % A_ThisHotKey 			; check if this hot key still pressed
	StringReplace, Key, Key, *$, , All
	while GetKeyState(Key, "P") 		; while hot key pressed do... 
	{
		Send {LButton down} 		; press LMB
		Sleep, 50 			; wait 50 ms
		Send {LButton up} 		; release LMB
		Sleep, 50 			; wait 50 ms
	}
return
Button 3: 8_Shield_Hide_BS. This macro I assigned to Middle Mouse Button (MMB). Its simply presses "8" - activates shield. Why it has name 8_Shield_Hide_BS? This script I use also for other classes that have other abilities on key "8".
Code:
; 8
;
; Shield / Hide / Blasting Strike
8_Shield_Hide_BS:
	Send {8 down}	; press "8"
	Sleep, 50	; wait 50 ms
	Send {8 up}	; release "8"
return
Button 4: 90_BandageRepair. This macro activates Heal and Repair actions on one button! It just press "9" and then "0".
If you are driving a vehicle - you can't heal yourself, only repair vehicle, and if you are not in vehicle - you won't waste repair kit.
Code:
; 9 + 0
;
; Use bandage + Use repair kit (Activates only one of it. Depends on in-game context)
90_BandageRepair:
	Send {9 down}	; press "9"
	Sleep, 50	; wait 50 ms
	Send {9 up}	; release "9"
	Send {0 down}	; press "0"
	Sleep, 50	; wait 50 ms
	Send {0 up}	; release "0"
return
Button 6: 5_Run_Heal. This one activates Leg It ability (fast run). It simply press key "5".
Code:
; 5
;
; Run / Heal
5_Run_Heal:
	Send {5 down}	; press "5"
	Sleep, 50	; wait 50 ms
	Send {5 up}	; release "5"
return
Button 7: 6_Mark_EatGrenades. This one activates Eat Grenades ability. It simply press key "6".
Code:
; 6
;
; Eat grenades / Mark target
6_Mark_EatGrenades:
	Send {6 down}	; press "6"
	Sleep, 50	; wait 50 ms
	Send {6 up}	; release "6"
return
Button 8: 2_Switch2. This one presses key "2" to activate Explosive Keg ability (throw big grenade). Its not hard to press "2" on keyboard, but in the heat of battle sometimes you can miss and switch to something else
Code:
; 2
;
; Switch to weapon 2
2_Switch2:
	Send {2 down}	; press "2"
	Sleep, 50	; wait 50 ms
	Send {2 up}	; release "2"
return
Button 9 (mouse wheel up): r1_ReloadSwitch1. This one assigned to mouse wheel. Roll it up (away from you) and macro will reload current weapon and switch to weapon at key "1" (machine gun).
When you press "R" to reload you may switch to another weapon immediately! Weapon will keep reloading while in your pocket
Code:
; r + 1
;
; Reload current weapon + Switch to weapon 1
r1_ReloadSwitch1:
	Send {r down}	; press "R"
	Sleep, 50	; wait 50 ms
	Send {r up}	; release "R"
	Send {1 down}	; press "1"
	Sleep, 50	; wait 50 ms
	Send {1 up}	; release "1"
return
Button 10 (mouse wheel down): r4_ReloadSwitch4. This one assigned to mouse wheel too. Roll it down (to yourself) and macro will reload current weapon and switch to weapon at key "4" (shotgun).
Code:
; r + 4
;
; Reload current weapon + Switch to weapon 4
r4_ReloadSwitch4:
	Send {r down}	; press "R"
	Sleep, 50	; wait 50 ms
	Send {r up}	; release "R"
	Send {4 down}	; press "4"
	Sleep, 50	; wait 50 ms
	Send {4 up}	; release "4"
return
Thats it! Let me know if you have problems with creating macros and understanding this article.

See you on the battlefield, hero!

Last edited by Laufer; 02-20-2015 at 06:34 AM.
Reply With Quote


  #3  
Old 09-16-2012, 07:19 AM
Laufer's Avatar
Laufer Laufer is offline
Registered User
 
Join Date: Feb 2012
Location: Moscow
Posts: 149
POST ID # = 609190
Laufer Reputation: 10
Default Using HardMacro for multimedia control

Using Hard Macro 2
example for Winamp and other media players
HardMacro is a very useful thing but not only for games. It also may be handy multimedia tool. It may switch song, wind it forward to most awesome part and make it louder, while you browsing Internet pages or working in office software.
Today I will show you how to gain total control over your media player with your mouse. For example we will use popular player - Winamp but most of keys will work in other players (Winamp simply gives more control: toggle shuffle mode, rewind melody).

First of all download latest HardMacro version. It has example profile MultiMedia Control.

Second step - set up special Winamp settings:
1. Open Preferences form (Global Hotkeys tab).
2. Enable Global Hotkeys
3. Add action "Playback: Toggle shuffle" on hotkey Ctrl+Alt+S



Third and the last: start HardMacro for your mouse (M60 or M90 version), and press "Launch" button.



Thats all. Now lets talk about this profile features.

Browser control
Button 6 = Browser forward
Button 7 = Browser backward
Button 8 = Browser refresh page

Volume control
Ctrl + Button 3 (middle mouse button) = Mute
Ctrl + Wheel Up = Global Volume Up
Ctrl + Wheel Down = Global Volume Down
Shift + Wheel Up = Winamp Volume Up
Shift + Wheel Down = Winamp Volume Down

Playback control
Ctrl + Button 6 = Play next media file
Ctrl + Button 7 = Play previous media file
Ctrl + Button 8 = Play/Pause
Shift + Button 8 = Toggle shuffle mode (Winamp abillity)
Alt + Wheel Up = Forward 5 seconds (Winamp abillity)
Alt + Wheel Down = Backward 5 seconds (Winamp abillity)

All of that actions except Winamp special will work in any browser and media player.
If you like it - use it. If not - you can change macros. Use this button to open macro associated with specified button and try to edit it. Refer this page if you want add some new multimedia command.

Having problem with creating your own macro? Feel free to leave comment here and I will help you!

Last edited by Technobeard; 10-23-2012 at 05:34 PM.
Reply With Quote


  #4  
Old 09-16-2012, 07:19 AM
Laufer's Avatar
Laufer Laufer is offline
Registered User
 
Join Date: Feb 2012
Location: Moscow
Posts: 149
POST ID # = 602860
Laufer Reputation: 10
Default

Macro coding basics
Basic macro examples
So lets go a bit further to the forest of Knowledge! I'll give you some simple examples in order to get the main idea of macro coding.

1. Single key press

Lets make first small step and make the same thing that you can do in every mouse software. Single key press!



Push "Record macro" button and press some key (in our case key "Q"). The result is on the screen above. Three lines show:
1. Press Q button
2. Wait 0,050 seconds
3. Depress Q button

How it looks in macro code? Create file q_PressOnce.ahk in folder \Macros and input there something like that:
Code:
; Text to the right from semicolon is commentary
;
; Single key press
q_PressOnce:     ; Subroutine name. It must be the same as filename!
	Send {q down} ; Press Q button
	Sleep, 50     ; Wait 50 milliseconds
	Send {q up}   ; Depress Q button
return           ; Every subroutine must be finished with that command
Important! Macro filename must be same as macro subroutine name. In example above subroutine name is q_PressOnce and macro filename is q_PressOnce.ahk.

Here I use Send command to emulate key pressing and Sleep command for pause. If you want to make a macro for another key, replace "q" with some other letter or number. If you want a key to be pressed longer replace Sleep parameter "50" with some other value.

2. Number of key presses

Where are two ways to make a number of key presses.
First: copy code. Below follows the example:
Code:
; Press Space three times by coping
;
Space_KeyPressByCoping:
	Send {Space down} ; press first time
	Sleep, 50
	Send {Space up}
	Sleep, 50
	Send {Space down} ; press second time
	Sleep, 50
	Send {Space up}
	Sleep, 50
	Send {Space down} ; press third time
	Sleep, 50
	Send {Space up}
	Sleep, 50
	Send {Space down} ; press fourth time
	Sleep, 50
	Send {Space up}
	Sleep, 50
return
Second: make cycle.
Code:
; Press Space three times by cycle
;
Space_KeyPressByCycle:
	Loop, 4 ; loop count
	{
		Send {Space down}
		Sleep, 50
		Send {Space up}
		Sleep, 50
	}
return
In the last example I used Loop command for cycle.

3. Repeat while pressed

There are two ways to process a key press while pressed.
First: broken presses.
Code:
; Press Left Mouse Button (LMB) repeatedly while Right Mouse Button (RMB) is pressed
;
LMB_Intermittent:
	while GetKeyState("RButton", "P") ; while RMB pressed
	{
		Send {LButton down}            ; press LMB
		Sleep, 50
		Send {LButton up}
		Sleep, 50
	}
return
Here I used While command for conditional cycle and GetKeyState to find out if key pressed or not.

Second: continuous pressing.
Code:
; Press Left Mouse Button repeatedly while Right Mouse Button is pressed
;
LMB_Continuous:
	Send {LButton down}               ; press LMB
	while GetKeyState("RButton", "P") ; hold LMB pressed while RMB pressed
	{
	}
	Send {LButton up}                 ; depress LMB
return
4. Toggle key press

Next example shows If-Else construction and new command: SetTimer. It calls subroutine v_ToggleTimer every 75 ms. Also we implicitly declare variable ToggleFlag. Macro seems hard to understand so just replace parameter of Send command.
This macro may be useful for voice programs to toggle Push-to-Talk mode:
Code:
; Press assigned button to toggle key "V" state
;
v_Toggle:
	If ToggleFlag ; If variable contents are blank (by default) or 0, it is considered false. Otherwise, it is true.
	{
		SetTimer, v_ToggleTimer, Off ; Turn off timer if button's been pressed second time
	}
	else
	{
		SetTimer, v_ToggleTimer, 75  ; Set timer to run every 75 milliseconds
	}
	ToggleFlag := not ToggleFlag    ; Invert variable (if it has true make it false and vice versa)
return

v_ToggleTimer:
	Send {v down} ; Send key press
return

Conclusion
This four examples covers mostly all of your needs in macros. Simply replace key notation in the code and rename subroutines (don't forget to keep them the same as macro filenames!). Try to combine this methods and will get more impressive results! For example, can you do it with any user-friendly mouse software?:

Code:
; Macro: "1" + (LMB) + BB`1 + Heal`4
;
; + Switch to weapon "1"d
; + Fire holding LMB
; + Turn on Burning Bullets (press "7") after 1 second holding (after time passed push BB button every 0.5 sec)
; + Heal (press "5") after 4 second holding (after time passed push Heal button every 0.5 sec)
1LMB75_Switch1FireBBHeal:
	Send {1 down}              ; Press "1"
	Sleep, 50
	Send {1 up}
	SetTimer, BB_on, -1000     ; Set BB timer for 1 second
	SetTimer, Heal_on, -4000   ; Set Heal timer for 4 seconds
	Key := % A_ThisHotKey      ; Use that construction to make macro universal. Guess why! ;)
	StringReplace, Key, Key, *$, , All
	Send {LButton down}        ; Push and hold LMB
	while GetKeyState(Key, "P")
	{
	}
	Send {LButton up}          ; Release LMB
	SetTimer, BB_on, Off       ; Turn off timers
	SetTimer, Heal_on, Off
return

; Burning Bullets timer activated
BB_On:
	Send {7 down} ; Press "7"
	Sleep, 50
	Send {7 up}
	SetTimer, BB_on, -500
return

; Heal timer activated
Heal_On:
	Send {5 down} ; Press "5"
	Sleep, 50
	Send {5 up}
	SetTimer, Heal_On, -500
return
Still want more? Read fine AutoHotkey_L manual, read this forum, experiment, be curious!

May the Force be with you!

Last edited by Laufer; 02-14-2013 at 01:49 AM.
Reply With Quote


  #5  
Old 09-19-2012, 01:58 AM
Boar Boar is offline
Registered User
 
Join Date: Jul 2012
Location: Russia
Posts: 15
POST ID # = 603363
Boar Reputation: 10
Default

That's cool, when users create a normal software faster than developers.
Reply With Quote


  #6  
Old 09-19-2012, 05:00 AM
Laufer's Avatar
Laufer Laufer is offline
Registered User
 
Join Date: Feb 2012
Location: Moscow
Posts: 149
POST ID # = 603379
Laufer Reputation: 10
Default

Quote:
Originally Posted by Boar View Post
That's cool, when users create a normal software faster than developers.
Thanks for reply, Boar. I hope my humble software will be useful
Reply With Quote


  #7  
Old 09-20-2012, 12:52 AM
robertp's Avatar
robertp robertp is offline
Corsair Employee
 
Join Date: Sep 2012
Posts: 11
POST ID # = 603531
robertp Reputation: 10
Default

Hi Boar!
Glad you found this thread. Laufer had posted this a while back and I thought it was a good idea. While we continue to work on improvements for our software it's a painfully slow process. I thought this would be a good tool to provide to the community while we keep working to make our software better.

So, I approached Laufer about supporting the thread. He thought it was a good idea so I stuck it up here for everyone to see and experiment with.

Hopefully this helps you with a feature or function we weren't able to get into our initial release and rest assured we're working hard to make our own better. =)
Reply With Quote


  #8  
Old 09-20-2012, 03:29 AM
Boar Boar is offline
Registered User
 
Join Date: Jul 2012
Location: Russia
Posts: 15
POST ID # = 603550
Boar Reputation: 10
Default

It is very encouraging to hear. But I have already returned the M90 to the store and exchanged for Logitech G600. I came here just to make fun of. Although I'm still stuck here with the K90.
Reply With Quote


  #9  
Old 09-21-2012, 01:23 AM
robertp's Avatar
robertp robertp is offline
Corsair Employee
 
Join Date: Sep 2012
Posts: 11
POST ID # = 603727
robertp Reputation: 10
Default

Sorry to hear you had a bad experience. =(
Reply With Quote


  #10  
Old 09-21-2012, 01:25 AM
robertp's Avatar
robertp robertp is offline
Corsair Employee
 
Join Date: Sep 2012
Posts: 11
POST ID # = 603728
robertp Reputation: 10
Default

Laufer,
How would you do a multiple simultaneous key press? One that is active while you're holding the button down then releases once you release the button?

For instance, right click, and "c" (crouch)?

Last edited by robertp; 09-21-2012 at 01:28 AM.
Reply With Quote


  #11  
Old 09-21-2012, 01:44 AM
Laufer's Avatar
Laufer Laufer is offline
Registered User
 
Join Date: Feb 2012
Location: Moscow
Posts: 149
POST ID # = 603729
Laufer Reputation: 10
Default

Quote:
Originally Posted by robertp View Post
Laufer,
How would you do a multiple simultaneous key press? One that is active while you're holding the button down then releases once you release the button?

For instance, right click, and "c" (crouch)?
Can't get the idea. Is it about pressing two buttons in one script? If so they have to be one after another.
Or is it about two different buttons with two different scripts? If so - autohotkey itself separates key pressings on low level (send them to keyboard buffer)
If you are about holding keys down while mouse button pressed - take a look at 3. Repeat while pressed section here, second example: continuous pressing.

Please, explain what you mean.

Last edited by Laufer; 09-21-2012 at 01:47 AM.
Reply With Quote


  #12  
Old 09-23-2012, 09:30 AM
Nosisab Ken Kel Nosisab Ken Kel is offline
Registered User
Nosisab Ken Kel's PC Specs
 
Join Date: Sep 2012
Posts: 8
POST ID # = 604081
Nosisab Ken Kel Reputation: 10
Default

PS: I see now the real question, introducing a second key down can be done keeping the first key pressed while pressing the second, or easier yet at editing the macro. Editing a macro is somewhat easier than creating one once you get the gist of it. To do so just right click at the position you want to include/edit/delete something (at the Assign Buttons tab).


One have total control of the key status with autohotkey, so is just send the key down and then send another key down (or more if needed), do whatever needed, like specifying the sleep time and then send them up.

lets have a small example I use to emergency heal using simultaneous two hands casting the same spell in Skyrim.

Sadly this game does not allow setting alternative keyboard keys to LMB and RMB, so I used Autohotkey to do it:
Code:
$[::
MouseClick, left,,, 1, 0, D  ; Hold down the left mouse button.
Loop
{
    Sleep, 20
    GetKeyState, state, [, P
    if state = U  ; The key has been released, so break out of the loop.
        break
    ; ... insert here any other actions you want repeated.
}
MouseClick, left,,, 1, 0, U  ; Release the mouse button.
return

$]::
MouseClick, right,,, 1, 0, D  ; Hold down the right mouse button.
Loop
{
    Sleep, 20
    GetKeyState, state, ], P
    if state = U  ; The key has been released, so break out of the loop.
        break
    ; ... insert here any other actions you want repeated.
}
MouseClick, right,,, 1, 0, U  ; Release the mouse button.
return
then bond a macro in both M90 and K90:
(notice two keys are pressed in sequence before the first being released, this mean both are seen as pressed at that time... so would be the same if the first was Ctrl or Alt or whatever)
Code:
4 down
50 mseg
4 up
50ms
4 down
50 mseg
4 up
50ms
[ down
] down
50 ms
[ up
] up
100 ms
[ down
] down
560 ms
[ up
] up
Explanation: I always bind the heal spell to the key 4 in that game... of course the above macro will power cast any spell bond to that key (just some spells may need a greater wait time to complete the animation.

Is possible to assign a sequence of actions, just keep in mind than most spells have a charge time and then you need to give it enough time after actually releasing the emulated mouse button press to the spell animation to terminate before assign a new spell (a new Skyrim hotkey I mean); 400 ms seems enough to all spells I tested.

Besides casting this macro will leave bot hands loaded with the heal spell, a tad more complex macro could be done, for example a prebattle buffer where after casting the desired (Skyrim hotkeyed spells) spells the macro changes the hands to be loaded to whatever default offensive spell or weapon... the procedure is always the same, just bind the desired spells/weapons to desired keys.

Edit: in the above macro I repeated the [ and ] keystroke instead giving longer wait time because I found it is quicker than the almost 2 seconds needed to grant the spell is cast when loading from different spells/weapons assigned to the hands... a second call of the macro (with the heal spell already loaded) does not need that longer wait time.

Edit 2: Understanding charge and wait times in Skyrim
Many spells need a time before the mouse button can be released (or the spell will fail) - that is known as the charge time, it is that 560 ms in the above macro.
After the mouse button is released the spell need a time to actually complete it's animation, it is the wait time (not shown in the above macro).

That wait time becomes very important if the macro is continued, lets say reloading the weapon assigned to key 1 (for example)... to the spell to work a waiting time of something between 300 and 400 ms should be included before including the 1 keystroke... the macro would end this way:
Code:
.
.
.
[ down
] down
560 ms   ; spell charge time
[ up
] up
400 ms   ; spell animation wait time
1 down
50 ms
1 up       ; weapon/offensive spell loaded
this effectively would load whatever weapon assigned to the numeric key 1 (or an offensive spell) and yet grant the heal spell is cast.

Last edited by Nosisab Ken Kel; 09-23-2012 at 10:37 AM. Reason: Include explanation to repeating the keystrokes instead giving longer wait time
Reply With Quote


  #13  
Old 09-24-2012, 04:48 AM
Laufer's Avatar
Laufer Laufer is offline
Registered User
 
Join Date: Feb 2012
Location: Moscow
Posts: 149
POST ID # = 604153
Laufer Reputation: 10
Lightbulb

Nice post, Ken!
BTW, if you'd use HardMacro you could just add your keyboard bindings $[:: and $]:: to one of the scripts assigned to a mouse. It will work because scripts in Macro folder added to MacroScript file when you press "Launch" button.
Give it a try
Reply With Quote


  #14  
Old 09-24-2012, 05:29 AM
Nosisab Ken Kel Nosisab Ken Kel is offline
Registered User
Nosisab Ken Kel's PC Specs
 
Join Date: Sep 2012
Posts: 8
POST ID # = 604157
Nosisab Ken Kel Reputation: 10
Default

Quote:
Originally Posted by Laufer View Post
Nice post, Ken!
BTW, if you'd use HardMacro you could just add your keyboard bindings $[:: and $]:: to one of the scripts assigned to a mouse. It will work because scripts in Macro folder added to MacroScript file when you press "Launch" button.
Give it a try
Actually you are the responsible for a very nice thread :) your original script already has a way to bind the LMB and RMB to the macros what is useful to the m90 and K90 as well.

Edit: I use a specific script for Skyrim (the game itself is launched by it, skse in the specific case), mainly because it deals with a few important little things, one being the ability to block the system cursor in game, preventing it appearing when Alt Tab, making things really confuse and awkward.

other than that, to date Corsair application for M90 and K90 (I don't know the versions for the 60 series) already implement most things I need in that game and all the other, the lack of LMB and RMB control being the most sore lack in Corsair mice and keyboards. Making them accessible should be the top priority for the developers at this point.

Last edited by Nosisab Ken Kel; 09-24-2012 at 06:14 AM.
Reply With Quote


  #15  
Old 09-24-2012, 05:45 AM
Laufer's Avatar
Laufer Laufer is offline
Registered User
 
Join Date: Feb 2012
Location: Moscow
Posts: 149
POST ID # = 604160
Laufer Reputation: 10
Default

Thats why I did it! Thank you
BTW, I will update my program soon. I made tons of changes. Feel free to offer some new features.

Last edited by Laufer; 09-24-2012 at 05:54 AM.
Reply With Quote


Reply

Tags
autohotkey, m60, macro

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 09:43 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, vBulletin Solutions, Inc.