Macros

From GIMX
Jump to: navigation, search

This page is a translated version of the page Macros and the translation is 100% complete.


Other languages:
English • ‎français

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.

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.