Appui sur une touche fonctionne a moitié

Vous voulez de l'aide ? Postez ici :)
Post Reply
UncNone
Posts: 1
Joined: 19 Sep 2013, 14:28

Appui sur une touche fonctionne a moitié

Post by UncNone »

Bonjour,
Dans mon FPS préféré, une touche permet de signaler un ennemi à ses équipiers.
N'ayant pas assez de doigts et n'étant pas contorsionniste pour laisser appuyé continuellement sur cette touche, je recherche une méthode pratique pour le faire à ma place :)
Même si ça fonctionne je souhaite éviter le chewing-gum/cure-dent ou autre système qui bloquerait mécaniquement la touche.
Je viens de découvrir ce petit logiciel qui m'a l'air de répondre à mes attentes.
Mais...parce qu'il y a toujours un mais:
- lorsque j'ouvre le bloc-note mon code fonctionne mais pas dans le jeu
- j'ai essayé de rajouter une condition de fenêtre mais il ne fonctionne toujours pas dans le jeu
- j'ai modifié dans les paramètres d'entrée le "type" de touche et passé de W32 en DirectX, pas mieux.

En gros, je souhaite appuyer sur la touche w pendant 2 secondes, la relacher, puis recommencer indéfiniment tant que cette fenêtre est ouverte.
Voila mon code:

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<scriptfile>
    <settings program="actionaz" version="3.7.0" scriptVersion="1.0.0" os="Windows"/>
    <actions>
        <action name="ActionGoto" version="1.0.0"/>
        <action name="ActionKey" version="1.0.0"/>
        <action name="ActionWindowCondition" version="1.0.0"/>
    </actions>
    <parameters/>
    <script pauseBefore="0" pauseAfter="0">
        <action name="ActionWindowCondition">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="width">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="title">
                <subParameter name="value" code="0">AA Game (32-bit, DX9)</subParameter>
            </parameter>
            <parameter name="condition">
                <subParameter name="value" code="0">exists</subParameter>
            </parameter>
            <parameter name="size">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="processId">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="height">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="position">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="ifTrue">
                <subParameter name="line" code="0">002</subParameter>
                <subParameter name="action" code="0">goto</subParameter>
            </parameter>
            <parameter name="ifFalse">
                <subParameter name="line" code="0">001</subParameter>
                <subParameter name="action" code="0">goto</subParameter>
            </parameter>
            <parameter name="yCoordinate">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="xCoordinate">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
        </action>
        <action name="ActionKey">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <exception id="32" action="0" line=""/>
            <exception id="33" action="0" line=""/>
            <parameter name="alt">
                <subParameter name="value" code="0">false</subParameter>
            </parameter>
            <parameter name="action">
                <subParameter name="value" code="0">press</subParameter>
            </parameter>
            <parameter name="amount">
                <subParameter name="value" code="0">1</subParameter>
            </parameter>
            <parameter name="meta">
                <subParameter name="value" code="0">false</subParameter>
            </parameter>
            <parameter name="key">
                <subParameter name="key" code="0">W</subParameter>
                <subParameter name="isQtKey" code="0">true</subParameter>
            </parameter>
            <parameter name="ctrl">
                <subParameter name="value" code="0">false</subParameter>
            </parameter>
            <parameter name="shift">
                <subParameter name="value" code="0">false</subParameter>
            </parameter>
            <parameter name="type">
                <subParameter name="value" code="0">win32</subParameter>
            </parameter>
            <parameter name="pause">
                <subParameter name="value" code="0">2000</subParameter>
            </parameter>
        </action>
        <action name="ActionKey">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <exception id="32" action="0" line=""/>
            <exception id="33" action="0" line=""/>
            <parameter name="alt">
                <subParameter name="value" code="0">false</subParameter>
            </parameter>
            <parameter name="action">
                <subParameter name="value" code="0">release</subParameter>
            </parameter>
            <parameter name="amount">
                <subParameter name="value" code="0">1</subParameter>
            </parameter>
            <parameter name="meta">
                <subParameter name="value" code="0">false</subParameter>
            </parameter>
            <parameter name="key">
                <subParameter name="key" code="0">W</subParameter>
                <subParameter name="isQtKey" code="0">true</subParameter>
            </parameter>
            <parameter name="ctrl">
                <subParameter name="value" code="0">false</subParameter>
            </parameter>
            <parameter name="shift">
                <subParameter name="value" code="0">false</subParameter>
            </parameter>
            <parameter name="type">
                <subParameter name="value" code="0">win32</subParameter>
            </parameter>
            <parameter name="pause">
                <subParameter name="value" code="0">10</subParameter>
            </parameter>
        </action>
        <action name="ActionGoto">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="line">
                <subParameter name="value" code="0">001</subParameter>
            </parameter>
        </action>
    </script>
</scriptfile>
J'ai remarqué que la touche sur laquelle je souhaite appuyer se met en majuscule dans le script, même si je la met en minuscule lorsque je prepare le script.
Si une ame charitable pourait m'indiquer ou je fais fausse route, ça serait sympa.
Merci d'avance
User avatar
Jmgr
Admin
Posts: 1649
Joined: 07 Dec 2005, 15:45
Contact:

Re: Appui sur une touche fonctionne a moitié

Post by Jmgr »

C'est un problème connu mais à part tester si le focus est bien sur la fenêtre du jeu (cliquer dessus par exemple) il n'y a pas vraiment de solution, surtout si tu as déjà testé l'option "DirectX" de l'action Touche. Certains moteurs de jeu empêchent volontairement la simulation de clics/touches, et dans ce cas là on ne peut rien faire*.

* La seule solution en fait serait de développer un pilote de souris/clavier virtuel, mais c'est très complexe et ça nécessiterait d'installer ce pilote avec Actionaz.
"My software never has bugs. It just develops random features."
Aangrod
Posts: 35
Joined: 30 Jun 2013, 10:02

Re: Appui sur une touche fonctionne a moitié

Post by Aangrod »

Je vois plusieurs possibilités qui dépendent de la façon dont tu lances le script.
Comment procèdes-tu exactement? Lances-tu le script avant le jeu, ou tout du moins avant de le mettre en plein écran/premier plan? Ou utilises-tu le raccourci clavier pour lancer l'exécution du script Actionaz une fois dans le jeu?

Peut-être que rajouter une vérification de la position de la fenêtre (premier plan ou non) puis ajouter une courte pause (200 ms par exemple) avant de commencer à appuyer sur la touche résoudrait ton problème. Si la touche est pressée dès que le jeu se lance, il est possible que cela empêche le bon déroulement de l'action de cette touche.
Post Reply