Aide - Recherche - Membres - Calendrier
Version complète : [TARGET SCRIPT] Système de trim identique au KA 50.
3rd-Wing · Escadre virtuelle DCS > DCS (& LockOn) > 3rd Wing devs' zone
hon0
Bonjour bonjour smile.gif

Ca fait un moment déjà que je me suis bricoler quelques lignes de script pour pouvoir trimmer directement via Direct X.

J'ai un hat qui fonctionne tres bien.
J'ai aussi la méthode "Electronique"? Comme dans le KA50, sauf que dans le script que j'ai ecrit, il n'y a pas de delai entre l'acquisition du nouveau "centre" et l'application de celui ci. En gros si mon stick est 33% à droite et que j'appuie sur le bouton il va instantanément se retrouver à 66%.

Je demande votre aide pour ajouter ... Un delay? Deux petites parenthèse? Au bonne endroit? Non je ne pense pas que ce soit si simple..

Voici les lignes de codes en question :

//L'aquisition du "nouveau centre".
MapKeyIOUMD(&T16000, H1U,
EXEC("TrimDXAxis(DX_X_AXIS, CURRENT);TrimDXAxis(DX_Y_AXIS, CURRENT);"),


//Le Reset Trim
MapKeyIOUMD(&T16000, H1D,
EXEC("TrimDXAxis(DX_X_AXIS, SET(0));TrimDXAxis(DX_Y_AXIS, SET(0));"),


Cela fonctionne mais il faut rapidement que je recentre mon stick, qui n'est pas à retour de force.

Merci d'avance pour votre aide. thumbsup.gif russieflag.gif wub.gif usflag.gif
etcher
Est-ce que ça fonctionnerait en stockant la position des axes dans une variable puis en les assignant au trim via un DeferCall ?
hon0
Uhmm je vais regarder ça de plus prêt. scratch.gif

Merci
hon0
Muarf, je bloque. J'ai crée deux variables, ElecTrimX et ElecTrimY, je trimS sur celle ci pour ensuite venir les appliquer avec le deferCall. Je pense que l'idée est bonne et que cela devrait fonctionner. Seulement je n'arrive pas à fermer la boucle scratch.gif doh.gif


MapKey(&T16000, H1U, EXEC("TrimDXAxis(DX_X_AXIS, ElecTrimX);TrimDXAxis(DX_Y_AXIS, ElecTrimY);"); DeferCall(500, &ActKey, EXEC("TrimDXAxis(DX_X_AXIS, SET ElecTrimX);TrimDXAxis(DX_Y_AXIS, SET ElecTrimY);"));

SyntaX err0r crash.gif

Edit: J'ai réussi à faire fonctionner cette ligne mais cela ne fonctionne pas car le difere call doit etre à l'interieur du 1er Exec. Je continu.. helpsmilie.gif

Edit :

MapKey(&T16000, H1U, EXEC("TrimDXAxis(DX_X_AXIS, ElecTrimX);TrimDXAxis(DX_Y_AXIS, ElecTrimY);", DeferCall(500, &ActKey, EXEC("TrimDXAxis(DX_X_AXIS, SET ElecTrimX);TrimDXAxis(DX_Y_AXIS, SET ElecTrimY);"))));


Ça se lance, mais ne fonctionne pas. &Actkey je ne connais pas..
etcher
CITATION(hon0 @ 9 Aug 2015, 13:22) *

Muarf, je bloque. J'ai crée deux variables, ElecTrimX et ElecTrimY, je trimS sur celle ci pour ensuite venir les appliquer avec le deferCall. Je pense que l'idée est bonne et que cela devrait fonctionner. Seulement je n'arrive pas à fermer la boucle scratch.gif doh.gif
MapKey(&T16000, H1U, EXEC("TrimDXAxis(DX_X_AXIS, ElecTrimX);TrimDXAxis(DX_Y_AXIS, ElecTrimY);"); DeferCall(500, &ActKey, EXEC("TrimDXAxis(DX_X_AXIS, SET ElecTrimX);TrimDXAxis(DX_Y_AXIS, SET ElecTrimY);"));

SyntaX err0r crash.gif

Edit: J'ai réussi à faire fonctionner cette ligne mais cela ne fonctionne pas car le difere call doit etre à l'interieur du 1er Exec. Je continu.. helpsmilie.gif

Edit :

MapKey(&T16000, H1U, EXEC("TrimDXAxis(DX_X_AXIS, ElecTrimX);TrimDXAxis(DX_Y_AXIS, ElecTrimY);", DeferCall(500, &ActKey, EXEC("TrimDXAxis(DX_X_AXIS, SET ElecTrimX);TrimDXAxis(DX_Y_AXIS, SET ElecTrimY);"))));
Ça se lance, mais ne fonctionne pas. &Actkey je ne connais pas..


&ActKey est un pointeur vers l'adresse de la fonction ActKey. Dans ce cas-ci, tu utiliserais &TrimDXAxis, je pense, mais j'ai jamais utilisé TARGET donc pour ce que ça vaut ...
Empaleur
CODE
int Trim_DirectX_X;
int Trim_DirectX_Y;

MapKey (&Joystick, S4, TEMPO(EXEC("Axis[DX_X_AXIS].trim = 0;Axis[DX_Y_AXIS].trim = 0;Trim_DirectX_X=0;Trim_DirectX_Y=0;"),
    CHAIN(
        EXEC("LockAxis(&Joystick, JOYX, 1);LockAxis(&Joystick, JOYY, 1);"),
        EXEC("Trim_DirectX_X=Axis[DX_X_AXIS].pos;Trim_DirectX_Y=Axis[DX_Y_AXIS].pos;")
        ), 333)
    );
        
    MapKeyR (&Joystick, S4, CHAIN(
        EXEC("Axis[DX_X_AXIS].trim = Trim_DirectX_X + Axis[DX_X_AXIS].trim;Axis[DX_Y_AXIS].trim = Trim_DirectX_Y + Axis[DX_Y_AXIS].trim;"),
        EXEC("LockAxis(&Joystick, JOYX, 0);LockAxis(&Joystick, JOYY, 0);")
        )        
    );



Appui court = reset trim
Appui long (maintien) = sauvegarde position du stick
Release = application de la trim

Entre l'appui et le release, le stick est désactivé.

Voilà wink.gif
hon0
Merci encore, super agréable à l'usage wink.gif

Image IPB
etcher
Nice !
oeil de faucon
Bonjour

C'est dans quel fichier qu'il faut faire la modification ?
pour bénéficier de vos recherchesi
merci
A+i
hon0
Il s'agit d'un script de configuration T.A.R.G.E.T.
Voici le manuel de Thrustmaster.

Je vois que travail sur un magnifique pit et que tu as modé ton stick! Pour pouvoir profiter de TARGET et de ses possibilités il faut un joystick compatible, à savoir le T16000, Cougar ou Warthog. Ou n'importe quel autre stick monté sur la base de l'un d'eux.
oeil de faucon
CITATION(hon0 @ 16 Aug 2015, 12:40) *

Pour pouvoir profiter de TARGET et de ses possibilités il faut un joystick compatible, à savoir le T16000, Cougar ou Warthog. Ou n'importe quel autre stick monté sur la base de l'un d'eux.

Bonjour,
Pas de chance j'ai un saitek X52 que j'ai transformé en ajoutant quelques boutons et gachettes
je pouvais toujours chercher à travers les fichiers de DCS
merci de m'avoir renseigné
pas d'adaptation possible à partir de cette base ?
A+
Cliquez pour voir le fichier-joint Cliquez pour voir le fichier-joint Cliquez pour voir le fichier-joint
hon0
Ce bout de script permet de trimmer à la façon du Ka50 sur n'importe quel appareil, même un Bf109 par exemple, donc pour toi qui vole en Ka50 il n'y a pas besoin normalement.

Il est certainement possible de faire en sorte qu'un X52 fonctionne sous target. Mais je n'ai pas les connaissances pour faire ça. crash.gif
C'est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquez ici.