Custom Macros - PoE-TradeMacro/POE-TradeMacro GitHub Wiki
The Custom Macros folder in %USERPROFILE%\Documents\PoE-TradeMacro\
is a place for you to add your own macros/code. It will never be removed/overwritten or modified by TradeMacro. All .txt
and .ahk
files in this folder will be appended to TradeMacro after AdditionalMacros.ahk
.
The file customMacros_example.txt
not only has some examples and instructions on how to add your own code and reassign previously assigned hotkeys, but also is an important file to actually use yourself.
Executing your own code
The reason is a bit technical. AHK has two ways to execute code, the "normal" way by simply writing it down in the script or via function/label call. AdditionalMacros and all custom macros are included in ItemInfo/TradeMacro after at least one Return
was written in the script. This means that "normal" code execution is not possible anymore. All code after this point has to be executed via label/function call.
Labels can only be called in two ways. Via hotkey or from inside other labels/functions. This means you either have to add your own hotkeys or add your code inside a label that is being called by TradeMacro/AdditionalMacros. Such a label exists in this example file.
This label is called CM_ExecuteCustomMacrosCode_Label
:
; Label gets executed by AdditionalMacros at script start.
CM_ExecuteCustomMacrosCode_Label:
Return
Remember: All code that you want to be executed at script start has to be placed here.
Assigning / reassigning hotkeys
Every hotkey assigned in AdditionalMacros will be assigned no matter if it's set to ON or OFF. It simply won't be triggered if it's off. If you want to use one of those hotkeys for your own macro you have to reassign it via the Hotkey command. Use the CM_ExecuteCustomMacrosCode_Label
label in the example file for this.
Examples
Declaring a global variable for further use in your macros
To avoid any conflicts with global variables defined elsewhere it is suggested to prefix your variable, for example cm
.
CM_ExecuteCustomMacrosCode_Label:
global cmMyVar1 := false
global cmMyVar2 := "false"
Return
Reassigning the F4 hotkey that is already assigned in AdditionalMacros
F4 is already being used in the script but you want to use it for something else.
CM_ExecuteCustomMacrosCode_Label:
Hotkey, F4, CM_MyHotkey_Label
Return
CM_MyHotkey_Label:
SendInput {Ctrl Down}{Enter}{Ctrl Up}Thx, have a nice day.{Enter}
Return
Hotkey, created without the Hotkey command
Overwriting previously assigned hotkeys is not possible this way, resulting in a "duplicate key" error.
CM_ExecuteCustomMacrosCode_Label:
Return
F2::SendInput {Ctrl Down}{Enter}{Ctrl Up}Thx, have a nice day.{Enter}
AutoHotkey IDE's and Editor setups (NotePad++, Sublime, Vim):
https://github.com/ahkscript/awesome-AutoHotkey#integrated-development-environment
Curated list of awesome AHK libs, lib distributions, scripts, tools and resources:
https://github.com/ahkscript/awesome-AutoHotkey