Page 1 sur 1

Thrustmaster TARGET "Script Editor" : besoin d'aide

Publié : mar. avr. 18, 2023 3:53 pm
par Mamy la Puce
Bonjour à tous !!

Encore un sujet autour de Thrustmaster et de son logiciel TARGET je sais ^^ mais le Script Editor cette fois-ci. Je me suis lancé dessus il y a peu et j'apprécie énormément les possibilités de configuration déjà du soft dit 'graphique' (GUI). J'ai lu le manuel en entier, très bien fait, on y parle à la fin du Script Editor (SE) et j'y ai donc forcément fourré mon nez dedans. Il y a également un manuel, en anglais, pour apprendre et comprendre le langage de script du soft qui est codé en C si je me trompe pas.

Mon sujet porte sur le jeu X4 Foundations et non sur une simu. d'aviation, mais les principes de paramétrages restent les mêmes, voilà pourquoi je suis venu sur ce forum car sur le forum officiel d'Egosoft je ne trouve pas spécialement de réponses à ma problématique, bon nombre de joueurs ne s’embêtent pas autant que moi faut croire ^^

Je fais donc appel à celles et ceux qui auraient des connaissances dans le langage C et/ou qui auraient déjà utilisé le Script Editor de Thrustmaster. Je suis en train de créer un profil pour le T16000M + le Throttle TWCS, j'ai le Joystick et je compte me procurer le TWCS bientôt, cela n’empêche pas de créer un profil quand même. Voilà ce que je souhaiterais :


CE QUE J'AI COMPRIS ET FAIS :
  • J'ai donc créé un profil dans le GUI, un profil de type 'Avancé' pour pouvoir paramétrer les différentes couches permettant d'associer jusqu'à 6 commandes différentes par touche (I/O et U/M/D pour ceux qui connaissent).
  • Pour le moment, seul le T16000M est terminé dans le GUI, le TWCS je vais m'y atteler mais pas avant d'avoir les infos que je cherche.
  • J'ai exporté le script de mon profil, celui proposé dans le GUI, de manière à l'utiliser dans le SE, en effet, comme le dit le manuel cette méthode est bien pratique pour apprendre à l'utiliser et à le comprendre graduellement.
  • Pour factoriser le code, j'ai créé un fichier .tmc qui est donc le main file du profil, son contenu n'est autre que le script généré par le GUI et que je vais modifier pour l'améliorer,
  • Un fichier .ttm pour y regrouper toutes les macros du profil,
  • Un fichier .tmh pour regrouper les différentes fonctions qu'il me faut générer.

CE QUE JE VOUDRAIS FAIRE OU COMPRENDRE
  • Je voudrais plus globalement trouver un moyen simple de tester mes fonctions, de vérifier mes variables lors du lancement du script, j'ai essayé avec printf() mais sans succès, mes connaissances en codages et surtout en C sont insuffisantes... pour le moment je passe par le Device Analyzer proposé par le SE, c'est la seule solution qui me dépanne pour l'instant mais s'il y a moyen de faire plus simple je prends !!
  • Je souhaiterais savoir aussi comment concaténer des chaînes de caractères en C !! Il est clair qu'on est pas sur la simplicité d'un PHP avec un simple '.' ou JS avec un '+' non ça marche pas comme ça en C ^^ J'ai farfouillé des choses sur le net mais alors je suis encore bien perdu !! On utilise souvent strcpy() ou strcat() comme méthodes mais j'ai pas encore saisi le concept... pourquoi faire simple quand on peut faire compliqué ^^

CE QUE J'AIMERAIS FAIRE BIENTÔT
  • Une fois que j'aurais compris et maitrisé au moins les 2 choses citées plus haut, mon but serait ensuite de parvenir à faire lire le fichier 'inputmap.xml' par le script, c'est le fichier de X4 dans : Mes Documents/Egosoft/X4, regroupant les paramètres de contrôles actuels en jeu.
  • Via des fonctions qu'il me faudra construire bien sûr, de cette façon le script ira chercher lui-même les paramètres de contrôle pour chaque joueur du coup plus besoin de venir faire de modif manuelles dans le profil en cas de changement et cela s'adaptera à tout personne souhaitant en profiter ;-)

Les langages bas niveau sont effectivement complexes, C et C++ en font partie, bien que considérés autant bas niveau que haut niveau, ils sont bien loin de ce que je connais en tout cas... :crying:

Re: Thrustmaster TARGET "Script Editor" : besoin d'aide

Publié : mar. avr. 18, 2023 6:13 pm
par cerealk
salut, alors la première partie de création du script est correct, ensuite pour tester les macros moi j'utilises l'EventTester , tu peux créer un raccourci dessus directement dans le répertoire Target , par contre pour le reste je n'ai pas les compétences en C pour t'aiguiller, mais je te souhaites bon courage pour ton projet :yes:

Re: Thrustmaster TARGET "Script Editor" : besoin d'aide

Publié : mar. avr. 18, 2023 7:04 pm
par BeR1
Salut
Pour afficher la valeur d'une variable dans la console voila un exemple pour du int (très proche du C):
printf("Avion:%d ",AVION_COUR);
rajoute un \xa pour un retour ligne, exemple plus complet :
printf("Courbe:%d(1-lineaire/5-platcentre) Saturation:%d (0 total -4 reduit)\xa",BerJoyCourbe,BerJoySaturation);

Pour les chaines de caractères, je t'avoue ne pas avoir eu le besoin donc pas d'exemple dans mon code.
Mais vas jeter un coup d'oeil ici (et dans tout le sujet), je suis sur que tu vas y trouver tes réponses : https://forum.dcs.world/topic/60448-tar ... ng/page/6/



A+

Re: Thrustmaster TARGET "Script Editor" : besoin d'aide

Publié : mar. avr. 18, 2023 9:14 pm
par Mamy la Puce
Merci cerealk, oui j'utilise aussi l'Event Tester avec le Device Analyzer, finalement ça convient bien et pour le moment comme ça me permet de savoir si mes macros sont bien prises en charge ça va, je m'en accommode. Le plus utile et urgent réside dans la suite : la compréhension du codage pour savoir faire des fonctions perso et les faire fonctionner bien sûr dans le SE.
Salut
Pour afficher la valeur d'une variable dans la console voila un exemple pour du int (très proche du C):
printf("Avion:%d ",AVION_COUR);
rajoute un \xa pour un retour ligne, exemple plus complet :
printf("Courbe:%d(1-lineaire/5-platcentre) Saturation:%d (0 total -4 reduit)\xa",BerJoyCourbe,BerJoySaturation);

Pour les chaines de caractères, je t'avoue ne pas avoir eu le besoin donc pas d'exemple dans mon code.
Je vais plutôt illustrer avec exemples, ça sera plus simple car j'ai encore du mal à déchiffrer ces lignes dans la fonction printf(). Pour la touche TS3 du T16000M par exemple, lorsque le joueur est en mode FPS, donc à pieds, en-dehors du vaisseau dans les stations, j'ai paramétré la touche TS3 du Joystick avec une macro séquentielle pour (dés)activer l'accroupissement du joueur en mode FPS :

1er appui : active la lettre 'c' du clavier et la maintient pour garder le joueur accroupi
2ème appui : relâche la lettre 'c' pour libérer le joueur en position debout

Le script s'avère être :

SEQ(DOWN+'c', UP+'c')

J'ai créé ma macro dans le .ttm comme ceci : (j'ai rajouté des points ci-dessous juste pour la lisibilité)

define Toggle_Crouch ............... SEQ(DOWN+'c', UP+'c')

Et voilà le résultat dans le .tmc (main) :

Image

Là dans l'image je parle bien de synthétisation, il est clair que le code entouré en orange ne correspond pas à celui du dessus entouré en jaune, je voudrais obtenir le même type de simplification et c'est surtout ça que les indications dans l'image veulent dire.

Et ça marche très bien, aucun souci ^^ En gros il me faut continuer dans ce sens pour toutes les macros que j'ai créé, mais je tiens à aller un peu plus loin. Maintenant dans mon fichier header .tmh sensé regrouper tout ce qui est déclarations de fonctions et variables, si j'ajoute :

char crouch = 'c';

Et que dans le .ttm je modifie ma macro comme ceci :

define Toggle_Crouch ............... SEQ(DOWN+crouch, UP+crouch)

Et bien ça aussi ça marche très bien ^^ Et maintenant je souhaite pousser encore plus loin, voilà mon idée dans le header (.tmh) :

Image

Et bien sûr il me faut modifier la macro dans le .ttm :

define Toggle_Crouch ............... func_crouch

Et boum, là ça bloque... l'idée est de construire la macro via une fonction et de renvoyer la chaîne de caractère construite à stocker dans une variable (donc de type char si je me trompe pas), ensuite il suffit de la lier à la macro 'Toggle_Crouch'.

Pourquoi je voudrais faire ça ? C'est simple, bon nombre de macros que j'ai paramétré sont constituées d'une association de touches type SHIFT + lettre ou CTRL + lettre, il est bien plus simple de passer par une fonction plutôt que devoir écrire pour chaque macro toute la syntaxe...

Plus tard, si je trouve le moyen de lire le fichier 'inputmap.xml' des contrôles du jeu, je tenterais de remplacer les lettres écrites pour chaque ligne comme par exemple :
char crouch = 'c'; par une ou des fonctions qui s'occuperont de décortiquer/déchiffrer le document pour aller chercher le bon paramètre... mais j'en suis encore loin tant que j'arrive même pas à faire fonctionner et comprendre mes propres fonctions dans ce soft et ce langage, et pourtant celles-ci sont assez simples au final ^^

Re: Thrustmaster TARGET "Script Editor" : besoin d'aide

Publié : mar. avr. 18, 2023 10:26 pm
par lefuneste
Je me demande si chatGPT te ferait un script qui marche...

Re: Thrustmaster TARGET "Script Editor" : besoin d'aide

Publié : mar. avr. 18, 2023 11:52 pm
par Mamy la Puce
Ah punaise j'y avais pas pensé à lui... mais en même temps ça me sert à apprendre, j'ai eu ma formation Dev Web y'a pas longtemps, alors le C n'est pas du tout un langage que j'ai abordé mais j'ai rien contre le fait d'apprendre, bien au contraire même ^^