Macros
Il est possible de configurer des macros clavier/souris/joystick : une touche ou un bouton peut déclencher une série d'événements clavier/souris/joystick, avec un certain timing.
Contents
Répertoire
Les macros doivent être définies dans des fichiers sauvés sous :
- Ubuntu : le répertoire ~/.gimx/macros. ~ est le dossier personnel, et .gimx est un dossier caché (dans le gestionnaire de fichiers, appuyer sur ctrl+h pour afficher les dossiers cachés).
- Windows : le répertoire C:\Users\<username>\AppData\Roaming\gimx\macros..
GIMX 1.12 et antérieur :
- Ubuntu : le répertoire ~/.emuclient/macros. ~ est le dossier personnel, et .emuclient est un dossier caché (dans le gestionnaire de fichiers, appuyer sur ctrl+h pour afficher les dossiers cachés).
- Windows : le répertoire C:\Users\<username>\AppData\Roaming\emuclient\macros..
GIMX 0.51 et version précédentes :
- Windows 32bits : le répertoire C:\Program Files\GIMX\macros.
- Windows 64bits : le répertoire C:\Program Files (x86)\GIMX\macros.
Syntaxe
MACRO <DEVICE EVENT> <ID> <RANGE> <DEVICE EVENT> <ID> <VALUE> DELAY <MS> #<COMMENT>
<DEVICE EVENT>: KEY, KEYDOWN, KEYUP, MBUTTON, MBUTTONDOWN, MBUTTONUP, JBUTTON, JBUTTONDOWN, JBUTTONUP, MAXIS, JAXIS
<ID> : l'id de l’événement (sensible à la casse) tel qu'affiché dans gimx-config <VALUE> : la valeur de l'axe (seulement pour MAXIS et JAXIS)
<RANGE> : la plage de l'axe (seulement pour MAXIS et JAXIS) ; la syntaxe est [min,max] avec min et max dans [-32768,32767] ; exemple : [8192,16384]
<MS> : une valeur entière en millisecondes <COMMENT> : un commentaire, non interprété ('#' est le premier caractère de la ligne)
Commandes
- KEYDOWN : touche du clavier enfoncée
- KEYUP : touche du clavier relâchée
- KEY : KEYDOWN + DELAY 50 + KEYUP
- MBUTTONDOWN : bouton de la souris enfoncé
- MBUTTONUP : bouton de la souris relâché
- MBUTTON: MBUTTONDOWN + DELAY 50 + MBUTTONUP
- JBUTTONDOWN : bouton du joystick enfoncé
- JBUTTONUP : bouton du joystick relâché
- JBUTTON: JBUTTONDOWN + DELAY 50 + JBUTTONUP
- DELAY : un délai en millisecondes
- MAXIS : axe de la souris déplacé ; ID : 0 pour l'axe x, et 1 pour l'axe y ; VALUE : valeurs positives pour droite et bas
- JAXIS : axe de joystick déplacé ; ID : l'id de l'axe, comme affiché dans gimx-config ; VALUE : dans [-32768 .. 32767] pour les axes centrés, et dans [0 .. 32767] pour les axes non centrés
Activation des macros
Cette section n'est applicable qu'à partir de GIMX 1.00.
Il est possible de spécifier quels fichiers de macros doivent être lus pour chaque configuration.
Ceci peut se configurer dans un fichier nommé "configs.txt" situé dans le répertoire macros.
Exemple :
#Si config1.xml est chargée, macro1.txt est lu. config1.xml/macro1.txt #Si config1.xml est chargée, macro2.txt est lu. config1.xml/macro2.txt #Si config2.xml est chargée, macro2.txt est lu. config2.xml/macro2.txt
Les lignes commençant par # ne sont pas interprétées.
Depuis GIMX 4.0 le séparateur est une barre oblique, pour permettre l'utilisation de noms de fichiers avec des espaces.
Il est aussi possible de définir des évènements d'activation dans la définition des macros.
La syntaxe est la suivante :
TRIGGER <event>
Exemple :
MACRO F1 #contenu MACRO F2 TRIGGER F5 #contenu MACRO F3 TRIGGER F6 #contenu MACRO F4 TRIGGER F5 #contenu
Avec GIMX 1.12 et plus ancien, l'exemple ci-dessus fonctionne de la manière suivante :
F1 reste actif tout le temps car il n'a pas de trigger.
F2 et F4 sont actif par défaut. Si F6 est pressé, F3 devient actif, et F2 et F4 deviennent inactifs.
Depuis GIMX 2.00 :
Les macros avec un trigger sont par défaut inactives. Pour rendre une macro avec trigger active par défaut, ajouter la ligne "INIT ON" après la ligne "TRIGGER <event>".
Les macros avec un trigger peuvent fonctionner avec un mode toggle, qui permet d'activer et de désactiver la macro de manière autonome : l'activation d'une macro avec mode toggle n'a pas d'impact sur les autres macros, et l'activation d'autres macros n'a pas d'impact sur une macro avec mode toggle. Ceci peut être configuré en ajoutant la ligne "TOGGLE YES" après la ligne "TRIGGER <event>".
Exemple:
MACRO F1 TRIGGER 1 INIT ON TOGGLE YES #contenu
Notes
Précision du délai
La précision du délai dépend de la période de mise à jour du contrôleur :
- ds3/bluetooth = 11.25ms
- ds3/usb = 10ms
- ds4/bluetooth = 10ms
- ds4/usb = 10ms
- 360 pad = 8ms
- XOne pad = 4ms
Si vous spécifiez un délai qui n'est pas un multiple de la précision, le délai résultant sera le plus petit multiple de la précision plus grand que le délai spécifié.
Par exemple, si la précision est de 11.25ms et que le délai est de 12ms, le délai résultant sera de 22.50ms (=2*11.25ms).
Boucle
Pour qu'une macro boucle, ajouter simplement une commande KEYDOWN ou MBUTTONDOWN ou JBUTTONDOWN à la fin de la macro.
Exemple:
MACRO MBUTTONDOWN BUTTON_LEFT #content MBUTTONDOWN BUTTON_LEFT
La macro est déclenchée en appuyant sur 'BUTTON_LEFT'.
La dernière commande de la macro redémarre la macro, créant de ce fait une boucle.
Pour arrêter une macro, appuyer une nouvelle fois sur le déclencheur. La macro est arrêtée immédiatement et l'état du contrôleur n'est pas modifié.
Claviers/souris/joysticks multiples
Dans le cas où plusieurs claviers ou souris ou joysticks sont utilisés, il n'est pas possible de spécifier pour quel périphérique les événements seront générés.
Les événements sont générés pour le premier clavier/souris/joystick trouvé dans la configuration.
Exemples
Macro rapid fire
MACRO MBUTTONDOWN BUTTON_LEFT KEYDOWN p #Set delay no less than the maximum rate of fire #10 rounds per second (600 rpm) DELAY 100 KEYUP p #~Do not set delay after keyup or it will negatively impact automatic weapons MBUTTONDOWN BUTTON_LEFT MACRO MBUTTONUP BUTTON_LEFT MBUTTONDOWN BUTTON_LEFT #Sometimes the fire key can be stuck down after the macro ends this releases it after the macro has been terminated KEYUP p
Dans gimx-config, 'p' est mappé à r1 dans les profils 1 (vue normale) et 2 (visée).
'BUTTON_LEFT' n'est PAS mappé à r1 dans les profils 1 et 2.
Cette macro est déclenchée en appuyant sur le bouton gauche de la souris.
La dernière commande de la première macro redémarre la macro, créant une boucle.
Lorsque le bouton gauche de la souris est relâché, la seconde macro stoppe la première macro.
Macro anti-recul
MACRO KEYDOWN o MAXIS 1 25 KEYDOWN o MACRO MBUTTONDOWN BUTTON_LEFT KEYDOWN o MACRO MBUTTONUP BUTTON_LEFT KEYDOWN o
Changer '25' par la valeur qui annule le recul.