TARGET Script Editor

Joysticks, throttles, palonniers, MFD...
Avatar de l’utilisateur
Pappyboyington
Réserviste
Messages : 885
Inscription : 11 avr. 2015, 00:27

Re: TARGET Script Editor

#31

Message par Pappyboyington »

de se faire plaisir en ayant tout a porté de main, nah!
Avatar de l’utilisateur
Musky
Messages : 54
Inscription : 19 mai 2016, 22:58

Re: TARGET Script Editor

#32

Message par Musky »

Quelqu'un sait s'il est possible de mettre toutes les actions (MapKey et/ou MapAxis) dans un fichier séparé qui serait appelé depuis le script principal (comme on le fait pour les "define" qu'on place dans le fichier macros et qu'on appelle avec un "include") ?
C'est juste un question de lisibilité, rien de fondamental, mais je n'y arrive pas.
Avatar de l’utilisateur
Biluf
Réserviste
Messages : 5063
Inscription : 03 mai 2015, 19:59

Re: TARGET Script Editor

#33

Message par Biluf »

J'ai déjà vu un truc comme ça il me semble.
Je rechercherai dans mon historique au taf ;)
Avatar de l’utilisateur
Biluf
Réserviste
Messages : 5063
Inscription : 03 mai 2015, 19:59

Re: TARGET Script Editor

#34

Message par Biluf »

Chose promise, chose due.
Jette un coup d'oeil à ça.
http://www.digitalcombatsimulator.com/en/files/54276/
Avatar de l’utilisateur
Musky
Messages : 54
Inscription : 19 mai 2016, 22:58

Re: TARGET Script Editor

#35

Message par Musky »

Nickel.

Pour résumer à ceux que ça intéresse :

Objectif : utiliser des fichiers séparés pour les mappings de touches

- creer vos fichiers *.tmc contenant les mappings. Ceux-ci doivent commencer par la déclaration d'une variable permettant ensuite d'appeler le contenu du fichier

Code : Tout sélectionner

int config_joystick()
{
//Gachette (TG1)
   MapKeyIOUMD(&Joystick, TG1, 
   armes_mitrailleuses,		// IU 
   armes_mitrailleuses, 	// OU
   armes_mitrailleuses, 	// IM
   armes_mitrailleuses, 	// OM
   0, 						// ID
   0)						// OD
;
// et toutes les autres en dessous
} 
- dans votre fichier principal, vous déclarez les fichiers (include "monfichier.tmc") et plus loin, dans le corps du script (main), vous appelez la variable définie dans le fichier

Code : Tout sélectionner

include "target.tmh"
include "map/joystick.tmc"

int main() 
{
 	if(Init(&EventHandle)) return 1;

	config_joystick();		// Appel des commandes du joystick
}
int EventHandle(int type, alias o, int x)
{
	DefaultMapping(&o, x);
}
Avatar de l’utilisateur
Biluf
Réserviste
Messages : 5063
Inscription : 03 mai 2015, 19:59

Re: TARGET Script Editor

#36

Message par Biluf »

Merci Musky.
Je me permettrai de mettre à jour mon tuto si ça te dérange pas (un jour).
Avatar de l’utilisateur
Musky
Messages : 54
Inscription : 19 mai 2016, 22:58

Re: TARGET Script Editor

#37

Message par Musky »

Je ne joue pas beaucoup en ce moment, mais je trifouille du script target à tout va, aussi je me permets de poster l'avancée de mes trouvailles si ça peut servir à quelqu'un. Le premier exemple de valeurs dans le SetSCurve est tiré de cet excellent guide, déjà cité ici http://www.checksix-fr.com/Files/matos/ ... ipt_FR.pdf

1er Objectif : changer la sensibilité du manche à la volée

Le changement des courbes peut se faire en cours de jeu via les commandes SetSCurve (courbe en S pour le manche), SetJCurve (Courbe en J pour les gaz) ou SetCustomCurve (courbe en S personnalisée)

Ainsi, la commande suivante effectue des réglages sur l'axe des X (roulis) du joystick

Code : Tout sélectionner

SetSCurve(&Joystick, JOYX,
5, //Zone neutre de 5% sur la gauche
2, //Zone neutre de 2% au centre
5, //Zone neutre de 5% sur la droite
3, //Réglage de la courbe à 3
0 //Scale/zoom à 0
);
Les valeurs peuvent être prélevées grâce à l'interface GUI en créant sa courbe, puis en utilisant le bouton "View Script"

Cette fonction peut être affectée à un bouton, et on peut donc facilement basculer entre deux configurations d'axes. Il faut par contre utiliser la commande EXEC et mettre les commandes suivantes entre guillemets, ce qui complique la syntaxe.
Exemple en utilisant le switch EAC :

Code : Tout sélectionner

MapKey(&Throttle, EACON,					//enclenchement du switch EAC vers le haut
	EXEC(									// ouverture de la fonction EXEC. La suite des commandes doit être mise entre guillemets
		"SetSCurve(&Joystick, JOYX,5,2,5,3,0);"	// Affectation de la courbe sur l'axe X
		)									// fin de la fonction EXEC
	)
;												

MapKey(&Throttle, EACOFF,					// affectation d'une courbe différente quand le switch EAC est vers le bas
	EXEC(
		"SetSCurve(&Joystick, JOYX,0,0,0,0,0);"
		)
	)
;
Si on veut utiliser l'appui sur un bouton, on utilisera la fonction SEQ qui lance l'action suivante de la liste à chaque nouvel appui sur le bouton. Ainsi, par exemple avec le bouton de l'autopilote :

Code : Tout sélectionner

MapKey(&Joystick, APENG,
	SEQ(
		EXEC("SetSCurve(&Joystick, JOYX,5,2,5,3,0);")
		,
		EXEC("SetSCurve(&Joystick, JOYX,0,0,0,0,0);")
		)
	)
;
On notera par contre que l'on ne modifie ici que l'axe des X (roulis) du joystick. Si on veut aussi modifier l'axe des Y (tangage), on rajoute juste une ligne. Bien sûr, rien n'empêche d'utiliser des réglages différents pour X et Y.

Code : Tout sélectionner

MapKey(&Throttle, EACON,						//enclenchement du switch EAC vers le haut
	EXEC(									// ouverture de la fonction EXEC. La suite des commandes doit être mise entre guillemets
		"SetSCurve(&Joystick, JOYX,0,0,0,0,0);"		// Affectation de la courbe sur l'axe X
		"SetSCurve(&Joystick, JOYY,0,0,0,4,0);"		// Affectation d'une courbe différente sur l'axe Y
		)										// fin de la fonction EXEC
	)
;

MapKey(&Throttle, EACOFF,						// affectation d'une courbe différente quand le switch EAC est vers le bas
	EXEC(
		"SetSCurve(&Joystick, JOYX,5,2,5,0,0);"
		"SetSCurve(&Joystick, JOYY,5,2,5,0,0);"
		)
	)
;
Rien qu'avec ça, on définit donc deux comportement différents du manche. Mais on peut s'amuser beaucoup plus

2ème objectif : utiliser des courbes personnalisées

Intéressons nous tout d'abord à la fonction SetCustomCurve
Elle débute par l'énonciation du périphérique (&Throttle ou &Joystick), puis l'axe (JOYX ou JOYY) puis une liste de coordonnées relative à un graphique allant de 0 à 100 en abscisses et en ordonnées. La syntaxe est de ce type
SetCustomCurve(&Joystick, JOYX, LIST(0,0, 50,50, 100,100)) qui correspond alors à une courbe linéaire formée de trois points.

L'important est d'abord de créer une liste de points correspondant à la courbe voulue. Le plus simple étant encore de se servir d'un papier et d'un crayon.

Graphique correspondant à la liste de points LIST(0,0, 50,50, 100,100)
graph_lineaire.png
Graphique correspondant à la liste de points LIST(0,0, 10,30, 50,50, 90,70, 100,100)
graph_S.png

Problème : la fonction EXEC ne permet pas d'utiliser une liste, et donc on ne peut pas directement utiliser la fonction SetCustomCurve comme on l'avait fait précédemment avec la fonction SetSCurve. Il faut alors ruser :

-- 1 : déclarer une variable qui contiendra notre liste au début du script principal
int axe_lineaire;

-- 2 : peupler cette variable avec notre liste de coordonnées
axe_lineaire=LIST(0,0, 50,50, 100,100);

-- 3 : utiliser cette variable lors de l'appel à la fonction SetCustomCurve
SetCustomCurve(&Joystick, JOYX, axe_lineaire);

On obtient alors

Code : Tout sélectionner

include "target.tmh"

// déclaration des variables
// -------------------------
int axe_lineaire;	
int axe_courbeS;
// -------------------------

//program startup
int main()
{
    if(Init(&EventHandle)) return 1; // declare the event handler, return on error
	
	//add initialization code here

// peuplement des variables
// ------------------------
axe_lineaire=LIST(0,0, 50,50, 100,100);
axe_courbeS=LIST(0,0, 10,30, 50,50, 90,70, 100,100);
// ------------------------

// Affectation des axes du joystick au dispositif virtuel crée par target
// ------------------------
MapAxis(&Joystick, JOYX, DX_X_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
MapAxis(&Joystick, JOYY, DX_Y_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
// ------------------------

// affectation des touches
// ------------------------
MapKey(&Throttle, EACON,					
	EXEC(										
		"SetCustomCurve(&Joystick, JOYX, axe_lineaire);"	
		"SetCustomCurve(&Joystick, JOYY, axe_lineaire);"	
		)											
	)
;											

MapKey(&Throttle, EACOFF,					
	EXEC(
		"SetCustomCurve(&Joystick, JOYX, axe_courbeS);"	
		"SetCustomCurve(&Joystick, JOYY, axe_courbeS);"	
		)
	)
;
// ------------------------

}


//event handler
int EventHandle(int type, alias o, int x)
{
    DefaultMapping(&o, x);
	
	//add event handling code here
}

3eme objectif : alterner entre 3 configurations d'axes personnalisés en utilisant un switch 3 positions

On commence d'abord par créer ses courbes. Pour exemple:

courbes correspondant à une sensibilité faible:
en bleu: LIST(0,36, 10,40, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,60, 100,64)
en orange: LIST(0,30, 10,37, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,63, 100,70)
en jaune: LIST(0,20, 10,35, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,65, 100,80)
graph_faible.png
Pour pouvoir utiliser ces listes dans une fonctions EXEC, il faut qu'elles aient préalablement été stockées dans des variables, et que ces variables aient elles-mêmes été déclarées. De plus, pour permettre ultérieurement une dissociation des courbes pour l'axe des X (roulis) et pour l'axe des Y (tangage), nous allons déclarer deux variables pour chaque courbe. En tout, nous aurons donc 6 variables à déclarer et à peupler.

Code : Tout sélectionner

// déclaration des variables
// code à insérer en début de script, juste après les include et avant la fonction main
//-------------------------------------------------------------
int axeX_sensibilite_faible_1; // courbe faible niveau 1 --> courbe bleue, axe des X
int axeX_sensibilite_faible_2; // courbe faible niveau 2 --> courbe orange, axe des X
int axeX_sensibilite_faible_3; // courbe faible niveau 3 --> courbe jaune, axe des X

int axeY_sensibilite_faible_1;
int axeY_sensibilite_faible_2;
int axeY_sensibilite_faible_3;

//-------------------------------------------------------------
On peuple ensuite ces variables, dans la boucle main (mais j'imagine qu'il est possible de les décentrer dans un autre fichier). Dans cet exemple, les courbes X et Y sont identiques.

Code : Tout sélectionner

// peuplement des variables avec les valeurs de LIST
// à insérer dans la fonction principale (main)
//-------------------------------------------------------------
axeX_sensibilite_faible_1=LIST(0,36, 10,40, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,60, 100,64);
axeY_sensibilite_faible_1=LIST(0,36, 10,40, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,60, 100,64);

axeX_sensibilite_faible_2=LIST(0,30, 10,36, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,64, 100,70);
axeY_sensibilite_faible_2=LIST(0,30, 10,36, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,64, 100,70);

axeX_sensibilite_faible_3=LIST(0,20, 10,36, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,64, 100,80);
axeY_sensibilite_faible_3=LIST(0,20, 10,36, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,64, 100,80);
//-------------------------------------------------------------
La déclaration d'une courbe sur un switch se ferait alors de la façon suivante, par exemple en utilisant le Pinky Switch

Code : Tout sélectionner

// affectation des touches
// ----------------------------------------------------
//PINKY SWITCH (gauche)
{
//PSB (Off/down/back)
	MapKey(&Throttle, PSB, 					
		EXEC(										
			"SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_faible_1);"
			"SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_faible_1);"	
			)											
		)
	;


//PSM (middle/center)
	MapKey(&Throttle, PSM, 					
		EXEC(										
			"SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_faible_2);"
			"SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_faible_2);"	
			)											
		)
	;

//PSF (on/up/front)
	MapKey(&Throttle, PSF, 					
		EXEC(										
			"SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_faible_3);"
			"SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_faible_3);"	
			)											
		)
	;

}
// ----------------------------------------------------
Et le code complet

Code : Tout sélectionner

include "target.tmh"

// déclaration des variables
// code à insérer en début de script, juste après les include et avant la fonction main
//-------------------------------------------------------------
int axeX_sensibilite_faible_1; // courbe faible niveau 1 --> courbe bleu, premier schema, axe des X
int axeX_sensibilite_faible_2; // courbe faible niveau 2 --> courbe orange, premier schema, axe des X
int axeX_sensibilite_faible_3; // courbe faible niveau 3 --> courbe jaune, premier schema, axe des X

int axeY_sensibilite_faible_1;
int axeY_sensibilite_faible_2;
int axeY_sensibilite_faible_3;
//------------------------------------------------------------


//program startup
int main()
{
    if(Init(&EventHandle)) return 1; // declare the event handler, return on error
	
	//add initialization code here
MapAxis(&Joystick, JOYX, DX_X_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
MapAxis(&Joystick, JOYY, DX_Y_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);

// peuplement des variables avec les valeurs de LIST
// à insérer dans la fonction principale (main)
//-------------------------------------------------------------
axeX_sensibilite_faible_1=LIST(0,36, 10,40, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,60, 100,64);
axeY_sensibilite_faible_1=LIST(0,36, 10,40, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,60, 100,64);

axeX_sensibilite_faible_2=LIST(0,30, 10,36, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,64, 100,70);
axeY_sensibilite_faible_2=LIST(0,30, 10,36, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,64, 100,70);

axeX_sensibilite_faible_3=LIST(0,20, 10,36, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,64, 100,80);
axeY_sensibilite_faible_3=LIST(0,20, 10,36, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,64, 100,80);
//-------------------------------------------------------------


// affectation des touches
// ------------------------
//PINKY SWITCH (gauche)
{
//PSB (Off/down/back)
	MapKey(&Throttle, PSB, 					
		EXEC(										
			"SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_faible_1);"
			"SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_faible_1);"	
			)											
		)
	;


//PSM (middle/center)
	MapKey(&Throttle, PSM, 					
		EXEC(										
			"SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_faible_2);"
			"SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_faible_2);"	
			)											
		)
	;

//PSF (on/up/front)
	MapKey(&Throttle, PSF, 					
		EXEC(										
			"SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_faible_3);"
			"SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_faible_3);"	
			)											
		)
	;

}

// ------------------------

}


//event handler
int EventHandle(int type, alias o, int x)
{
    DefaultMapping(&o, x);
	
	//add event handling code here
}

4eme objectif : alterner entre 6 configurations d'axes personnalisés différentes en utilisant deux switchs
(oui, je sais, c'est inutile, mais c'est rigolo et ça permet de mieux comprendre le fonctionnement de T.A.R.G.E.T. script)

Puisqu'on veut 6 courbes, il nous faudra d'abord créer 3 nouvelles courbes, et donc 3 nouvelles listes de points.

courbes correspondant à une sensibilité moyenne
en bleu: LIST(0,20, 10,30, 20,35, 30,40, 40,45, 50,50, 60,55, 70,60, 80,65, 90,70, 100,80)
en orange : LIST(0,10, 10,35, 20,35, 30,40, 40,45, 50,50, 60,55, 70,60, 80,65, 90,75, 100,90)
en jaune : LIST(0,0, 10,35, 20,35, 30,40, 40,45, 50,50, 60,55, 70,60, 80,65, 90,75, 100,100)
graph_moyen.png
Si on veut garder la possibilité de différencier l'axe des X et des Y, on aura alors 12 variables à déclarer et à peupler.

Code : Tout sélectionner

// déclaration des variables
// code à insérer en début de script, juste après les include et avant la fonction main
//-------------------------------------------------------------
int axeX_sensibilite_faible_1; // courbe faible niveau 1 --> courbe bleu, premier schema, axe des X
int axeX_sensibilite_faible_2; // courbe faible niveau 2 --> courbe orange, premier schema, axe des X
int axeX_sensibilite_faible_3; // courbe faible niveau 3 --> courbe jaune, premier schema, axe des X
int axeX_sensibilite_moyenne_1; // courbe moyenne niveau 1 --> courbe bleu, deuxième schema, axe des X
int axeX_sensibilite_moyenne_2; // courbe moyenne niveau 2 --> courbe orange, deuxième schema, axe des X
int axeX_sensibilite_moyenne_3; // courbe moyenne niveau 3 --> courbe jaune, deuxième schema, axe des X

int axeY_sensibilite_faible_1;
int axeY_sensibilite_faible_2;
int axeY_sensibilite_faible_3;
int axeY_sensibilite_moyenne_1;
int axeY_sensibilite_moyenne_2;
int axeY_sensibilite_moyenne_3;
//-------------------------------------------------------------
On peuple ensuite ces variables.

Code : Tout sélectionner

// peuplement des variables avec les valeurs de LIST
// à insérer dans la fonction principale (main)
//-------------------------------------------------------------
axeX_sensibilite_faible_1=LIST(0,36, 10,40, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,60, 100,64);
axeY_sensibilite_faible_1=LIST(0,36, 10,40, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,60, 100,64);

axeX_sensibilite_faible_2=LIST(0,30, 10,36, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,64, 100,70);
axeY_sensibilite_faible_2=LIST(0,30, 10,36, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,64, 100,70);

axeX_sensibilite_faible_3=LIST(0,20, 10,36, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,64, 100,80);
axeY_sensibilite_faible_3=LIST(0,20, 10,36, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,64, 100,80);

axeX_sensibilite_moyenne_1=LIST(0,20, 10,30, 20,35, 30,40, 40,45, 50,50, 60,55, 70,60, 80,65, 90,70, 100,80);
axeY_sensibilite_moyenne_1=LIST(0,20, 10,30, 20,35, 30,40, 40,45, 50,50, 60,55, 70,60, 80,65, 90,70, 100,80);

axeX_sensibilite_moyenne_2=LIST(0,10, 10,25, 20,35, 30,40, 40,45, 50,50, 60,55, 70,60, 80,65, 90,75, 100,90);
axeY_sensibilite_moyenne_2=LIST(0,10, 10,25, 20,35, 30,40, 40,45, 50,50, 60,55, 70,60, 80,65, 90,75, 100,90);

axeX_sensibilite_moyenne_3=LIST(0,0, 10,25, 20,35, 30,40, 40,45, 50,50, 60,55, 70,60, 80,65, 90,75, 100,100);
axeY_sensibilite_moyenne_3=LIST(0,0, 10,25, 20,35, 30,40, 40,45, 50,50, 60,55, 70,60, 80,65, 90,75, 100,100);
//-------------------------------------------------------------
Mais, comme vous l'aurez deviné, il nous faut alors 2 switchs ayant chacun 3 positions pour pouvoir affecter les 6 courbes. On va donc procéder autrement en utilisant 1 switch 2 positions (pour choisir le niveau faible ou moyen) et 1 switch 3 positions (pour affecter les niveaux 1, 2 et 3 des courbes). Et là, les choses se compliquent puisqu'il va falloir utiliser des conditions if ... else et des drapeaux (flags).
Mon code ici pourrait certainement être plus propre, mais l'utilisation des fonctions de T.A.R.G.E.T. entraîne une interaction avec le langage C qui est semble-t-il particulière. Il faudrait pour faire mieux passer entièrement en programmation C, ce qui est possible, mais bien au delà de mes capacités. Ceux qui sont intéressés se tourneront vers les explications de ivanwfr sur les forums de checksix

La notion de drapeaux (flags) est assez bien documentée, mais j'ai eu plus de difficulté pour les conditions if...else, en particulier avec leur interaction avec la fonction EXEC de T.A.R.G.E.T.

A propos des drapeaux

Les drapeaux doivent être déclarés comme variables de type char en début de script.
En théorie, elles peuvent prendre n'importe quelle valeur, même de type chaîne de caractères, mais je n'ai pas réussi ensuite à faire des tests logiques avec. Je me contenterai donc de leur donner des valeurs numériques.

Pour la première étape, nous considérerons une variable appelée sensibilité qui prendra pour valeur 0 quand on veut les courbes de sensibilité faible, et comme valeur 1 quand on veut les courbes de sensibilité moyenne. Le switch FUEL NORM RIGHT (EFRNORM / EFROVER) sera utilisé pour basculer la valeur de la variable.

On déclare le drapeau en début de script

Code : Tout sélectionner

char sensibilite;
Dès lors qu'on utilise des conditions et des drapeaux, il peut être utile d'avoir un message visible pour le débogage. On utilise la fonction printf, mais la syntaxe en est compliquée puisqu'elle se situe à l'intérieur de guillemets.

La déclaration des touches EFROVER et EFRNORM devient alors

Code : Tout sélectionner

//EFROVER (Off/down/back)
	MapKey(&Throttle, EFROVER,
		EXEC(
			"sensibilite=0;"
			"printf(\"\\xa sensibilite=faible\");"
			)
		)
	;

//EFRNORM (On/up/front)
	MapKey(&Throttle, EFRNORM,
		EXEC(
			"sensibilite=1;"
			"printf(\"\\xa sensibilite=moyenne\");"
			)
		)
	;
A propos des conditions if ... else

Le but étant que, selon la position du switch FUEL NORM RIGHT(et donc selon la valeur du drapeau), le switch PINKIE SWITCH nous assigne la valeur de la courbe demandée
-- EFROVER --> drapeau sensibilite = 0 --> sensibilité faible
--> PSB (pinkie switch back) = sensibilité faible niveau 1
--> PSM (pinkie switch middle) = sensibilité faible niveau 2
--> PSF (pinkie switch front) = sensibilité faible niveau 3

-- EFRNORM --> drapeau sensibilite = 1 --> sensibilité moyenne
--> PSB (pinkie switch back) = sensibilité moyenne niveau 1
--> PSM (pinkie switch middle) = sensibilité moyenne niveau 2
--> PSF (pinkie switch front) = sensibilité moyenne niveau 3

Basiquement, pour le premier cas, on a la syntaxe suivante sur PSB

Code : Tout sélectionner

//PSB (Off/down/back)
	MapKey(&Throttle, PSB, 
		EXEC(
			"if(sensibilite==1) SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_moyenne_1);"
			"else if(sensibilite==0) SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_faible_1);"
			)
		)
	;

Le principal souci que j'ai rencontré avec ces boucles if, c'est que je n'ai pas trouvé comment effectuer deux actions distinctes avec la même condition. Je dois donc, pour chaque axe, créer une condition, ce qui complique la syntaxe et oblige à utiliser la fonction CHAIN (qui permet d'effectuer plusieurs actions)

L'exemple devient alors, avec une autre syntaxe pour le test logique et pour chaque valeur du pinkie switch

Code : Tout sélectionner

//PSB (Off/down/back)
	MapKey(&Throttle, PSB, 
		CHAIN(
			EXEC(
				"if(sensibilite) SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_moyenne_1);"
				"else SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_faible_1);"
				),
			EXEC(
				"if(sensibilite) SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_moyenne_1);"
				"else SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_faible_1);"
				),
			EXEC(
				"if(sensibilite) printf(\"\\xa sensibilite reglee sur moyen niveau 1\");"
				"else printf(\"\\xa sensibilite reglee sur faible niveau 1\");"
				)
			)
		)
	;
	
//PSM (Middle/center)
	MapKey(&Throttle, PSM, 
		CHAIN(
			EXEC(
				"if(sensibilite) SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_moyenne_2);"
				"else SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_faible_2);"
				),
			EXEC(
				"if(sensibilite) SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_moyenne_2);"
				"else SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_faible_2);"
				),
			EXEC(
				"if(sensibilite) printf(\"\\xa sensibilite reglee sur moyen niveau 2\");"
				"else printf(\"\\xa sensibilite reglee sur faible niveau 2\");"
				)
			)
		)
	;
	
//PSF (On/up/front)
	MapKey(&Throttle, PSF, 
		CHAIN(
			EXEC(
				"if(sensibilite) SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_moyenne_3);"
				"else SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_faible_3);"
				),
			EXEC(
				"if(sensibilite) SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_moyenne_3);"
				"else SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_faible_3);"
				),
			EXEC(
				"if(sensibilite) printf(\"\\xa sensibilite reglee sur moyen niveau 3\");"
				"else printf(\"\\xa sensibilite reglee sur faible niveau 3\");"
				)
			)
		)
	;
5ème objectif : switcher automatiquement dans la bonne courbe selon la position de chaque switch

Si je ne vous ai pas trop perdus, vous aurez remarqué que mes commandes précédentes occasionnaient le problème suivant :

Si je suis dans une courbe faible niveau 1 et que je veux utiliser une courbe moyenne niveau 1, il faut:
1) basculer le switch EFROVER vers EFRNORM (pour changer le drapeau sensibilite de 0 vers 1)
2) basculer le switch PSB vers PSM (ce qui a pour effet de nous mettre en courbe moyen niveau 2, alors que ce n'est pas souhaité)
3) basculer le switch PSM vers PSB (pour enfin affecter la courbe moyen niveau 1)

On va ici essayer de rendre cela automatique, et donc faire en sorte que n'importe quel changement dans la position d'un des switchs nous mette automatiquement la courbe désirée. Il nous faudra pour cela utiliser un autre drapeau appelé sensibilite_niveau qui prendra comme valeur 1, 2 ou 3 selon le niveau de sensibilité désiré. Elle sera affectée selon les positions respectives PSB, PSM et PSF.

Pour schématiser, le comportement de chacun des switchs sera le suivant :

-- bascule sur EFROVER
--> affectation du drapeau sensibilite à la valeur 0
--> test de la valeur du drapeau sensibilite_niveau et affectation de la courbe faible de niveau correspondante

-- bascule sur EFRNORM
--> affectation du drapeau sensibilite à la valeur 1
--> test de la valeur du drapeau sensibilite_niveau et affectation de la courbe moyenne de niveau correspondante

-- bascule sur PSB
--> affectation du drapeau sensibilite_valeur à la valeur 1
--> test de la valeur du drapeau sensibilite et affectation de la courbe correspondante de niveau 1 (faible ou moyenne)

-- bascule sur PSM
--> affectation du drapeau sensibilite_valeur à la valeur 2
--> test de la valeur du drapeau sensibilite et affectation de la courbe correspondante de niveau 2 (faible ou moyenne)

-- bascule sur PSF
--> affectation du drapeau sensibilite_valeur à la valeur 3
--> test de la valeur du drapeau sensibilite et affectation de la courbe correspondante de niveau 3 (faible ou moyenne)

En code, ça donne ça :

On déclare les variables et les drapeaux dans le début du script

Code : Tout sélectionner

int axeX_sensibilite_faible_1;
int axeX_sensibilite_faible_2;
int axeX_sensibilite_faible_3;
int axeX_sensibilite_moyenne_1;
int axeX_sensibilite_moyenne_2;
int axeX_sensibilite_moyenne_3;

int axeY_sensibilite_faible_1;
int axeY_sensibilite_faible_2;
int axeY_sensibilite_faible_3;
int axeY_sensibilite_moyenne_1;
int axeY_sensibilite_moyenne_2;
int axeY_sensibilite_moyenne_3;

char sensibilite;
char sensibilite_niveau;
On affecte les valeurs des listes aux variables correspondantes

Code : Tout sélectionner

axeX_sensibilite_faible_1=LIST(0,37, 10,40, 20,43, 30,45, 40,47, 50,50, 60,53, 70,55, 80,57, 90,60, 100,63);
axeY_sensibilite_faible_1=LIST(0,37, 10,40, 20,43, 30,45, 40,47, 50,50, 60,53, 70,55, 80,57, 90,60, 100,63);

axeX_sensibilite_faible_2=LIST(0,30, 10,37, 20,43, 30,45, 40,47, 50,50, 60,53, 70,55, 80,57, 90,63, 100,70);
axeY_sensibilite_faible_2=LIST(0,30, 10,37, 20,43, 30,45, 40,47, 50,50, 60,53, 70,55, 80,57, 90,63, 100,70);

axeX_sensibilite_faible_3=LIST(0,20, 10,35, 20,43, 30,45, 40,47, 50,50, 60,53, 70,55, 80,57, 90,65, 100,80);
axeY_sensibilite_faible_3=LIST(0,20, 10,35, 20,43, 30,45, 40,47, 50,50, 60,53, 70,55, 80,57, 90,65, 100,80);

axeX_sensibilite_moyenne_1=LIST(0,20, 10,30, 20,35, 30,40, 40,45, 50,50, 60,55, 70,60, 80,65, 90,70, 100,80);
axeY_sensibilite_moyenne_1=LIST(0,20, 10,30, 20,35, 30,40, 40,45, 50,50, 60,55, 70,60, 80,65, 90,70, 100,80);

axeX_sensibilite_moyenne_2=LIST(0,10, 10,25, 20,35, 30,40, 40,45, 50,50, 60,55, 70,60, 80,65, 90,75, 100,90);
axeY_sensibilite_moyenne_2=LIST(0,10, 10,25, 20,35, 30,40, 40,45, 50,50, 60,55, 70,60, 80,65, 90,75, 100,90);

axeX_sensibilite_moyenne_3=LIST(0,0, 10,25, 20,35, 30,40, 40,45, 50,50, 60,55, 70,60, 80,65, 90,75, 100,100);
axeY_sensibilite_moyenne_3=LIST(0,0, 10,25, 20,35, 30,40, 40,45, 50,50, 60,55, 70,60, 80,65, 90,75, 100,100);
On déclare les actions pour chaque bouton.
D'abord EFROVER et EFRNORM

Code : Tout sélectionner

// FUEL NORM RIGHT
{
//EFROVER (Off/down/back)
	MapKey(&Throttle, EFROVER,
		CHAIN(
			EXEC(
				"sensibilite=0;"
				"printf(\"\\xa sensibilite=faible\");"
				),
			EXEC(
				 "if (sensibilite_niveau==1) SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_faible_1);"
				"else if (sensibilite_niveau==2) SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_faible_2);"
				"else if (sensibilite_niveau==3) SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_faible_3);"
				),
			EXEC(
				 "if (sensibilite_niveau==1) SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_faible_1);"
				"else if (sensibilite_niveau==2) SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_faible_2);"
				"else if (sensibilite_niveau==3) SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_faible_3);"
				),
			EXEC(
				 "if (sensibilite_niveau==1) printf(\"\\xa sensibilite reglee sur faible niveau 1\");"
				"else if (sensibilite_niveau==2) printf(\"\\xa sensibilite reglee sur faible niveau 2\");"
				"else if (sensibilite_niveau==3) printf(\"\\xa sensibilite reglee sur faible niveau 3\");"
				)
			)
		)
	;
			
//EFRNORM (On/up/front)
	MapKey(&Throttle, EFRNORM,
		CHAIN(
			EXEC(
				"sensibilite=1;printf(\"\\xa sensibilite=moyenne\");"
				),
			EXEC(
				 "if (sensibilite_niveau==1) SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_moyenne_1);"
				"else if (sensibilite_niveau==2) SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_moyenne_2);"
				"else if (sensibilite_niveau==3) SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_moyenne_3);"
				),
			EXEC(
				 "if (sensibilite_niveau==1) SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_moyenne_1);"
				"else if (sensibilite_niveau==2) SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_moyenne_2);"
				"else if (sensibilite_niveau==3) SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_moyenne_3);"
				),
			EXEC(
				 "if (sensibilite_niveau==1) printf(\"\\xa sensibilite reglee sur moyenne niveau 1\");"
				"else if (sensibilite_niveau==2) printf(\"\\xa sensibilite reglee sur moyenne niveau 2\");"
				"else if (sensibilite_niveau==3) printf(\"\\xa sensibilite reglee sur moyenne niveau 3\");"
				)
			)
		)
	;
}
Puis PSB, PSM et PSF

Code : Tout sélectionner

//PINKY SWITCH (gauche)
{
//PSB (Off/down/back)
	MapKey(&Throttle, PSB, 
		CHAIN(
			EXEC(
				"if(sensibilite) SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_moyenne_1);"
				"else SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_faible_1);"
				),
			EXEC(
				"if(sensibilite) SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_moyenne_1);"
				"else SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_faible_1);"
				),
			EXEC(
				"sensibilite_niveau=1;"
				),
			EXEC(
				"if(sensibilite) printf(\"\\xa sensibilite reglee sur moyen niveau 1\");"
				"else printf(\"\\xa sensibilite reglee sur faible niveau 1\");"
				)
			)
		)
	;
                
		
//PSM (middle/center)
	MapKey(&Throttle, PSM, 
		CHAIN(
			EXEC(
				"if(sensibilite) SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_moyenne_2);"
				"else SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_faible_2);"
				),
			EXEC(
				"if(sensibilite) SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_moyenne_2);"
				"else SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_faible_2);"
				),
			EXEC(
				"sensibilite_niveau=2;"
				),
			EXEC(
				"if(sensibilite) printf(\"\\xa sensibilite reglee sur moyen niveau 2\");"
				"else printf(\"\\xa sensibilite reglee sur faible niveau 2\");"
				)
			)
		)
	;
		
//PSF (On/up/front)
	MapKey(&Throttle, PSF, 
		CHAIN(
			EXEC(
				"if(sensibilite) SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_moyenne_3);"
				"else SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_faible_3);"
				),
			EXEC(
				"if(sensibilite) SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_moyenne_3);"
				"else SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_faible_3);"
				),
			EXEC(
				"sensibilite_niveau=3;"
				),
			EXEC(
				"if(sensibilite) printf(\"\\xa sensibilite reglee sur moyen niveau 3\");"
				"else printf(\"\\xa sensibilite reglee sur faible niveau 3\");"
				)
			)
		)
	;
}
Et finalement un code complet à copier/coller

Code : Tout sélectionner

include "target.tmh"

// déclaration des variables
// code à insérer en début de script, juste après les include et avant la fonction main
//-------------------------------------------------------------
int axeX_sensibilite_faible_1; // courbe faible niveau 1 --> courbe bleu, premier schema, axe des X
int axeX_sensibilite_faible_2; // courbe faible niveau 2 --> courbe orange, premier schema, axe des X
int axeX_sensibilite_faible_3; // courbe faible niveau 3 --> courbe jaune, premier schema, axe des X
int axeX_sensibilite_moyenne_1;
int axeX_sensibilite_moyenne_2;
int axeX_sensibilite_moyenne_3;

int axeY_sensibilite_faible_1;
int axeY_sensibilite_faible_2;
int axeY_sensibilite_faible_3;
int axeY_sensibilite_moyenne_1;
int axeY_sensibilite_moyenne_2;
int axeY_sensibilite_moyenne_3;
//------------------------------------------------------------

char sensibilite;
char sensibilite_niveau;


//program startup
int main()
{
    if(Init(&EventHandle)) return 1; // declare the event handler, return on error
	
	//add initialization code here
MapAxis(&Joystick, JOYX, DX_X_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);
MapAxis(&Joystick, JOYY, DX_Y_AXIS, AXIS_NORMAL, MAP_ABSOLUTE);

// peuplement des variables avec les valeurs de LIST
// à insérer dans la fonction principale (main)
//-------------------------------------------------------------
axeX_sensibilite_faible_1=LIST(0,36, 10,40, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,60, 100,64);
axeY_sensibilite_faible_1=LIST(0,36, 10,40, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,60, 100,64);

axeX_sensibilite_faible_2=LIST(0,30, 10,36, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,64, 100,70);
axeY_sensibilite_faible_2=LIST(0,30, 10,36, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,64, 100,70);

axeX_sensibilite_faible_3=LIST(0,20, 10,36, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,64, 100,80);
axeY_sensibilite_faible_3=LIST(0,20, 10,36, 20,43, 30,46, 40,48, 50,50, 60,52, 70,54, 80,57, 90,64, 100,80);

axeX_sensibilite_moyenne_1=LIST(0,20, 10,30, 20,35, 30,40, 40,45, 50,50, 60,55, 70,60, 80,65, 90,70, 100,80);
axeY_sensibilite_moyenne_1=LIST(0,20, 10,30, 20,35, 30,40, 40,45, 50,50, 60,55, 70,60, 80,65, 90,70, 100,80);

axeX_sensibilite_moyenne_2=LIST(0,10, 10,25, 20,35, 30,40, 40,45, 50,50, 60,55, 70,60, 80,65, 90,75, 100,90);
axeY_sensibilite_moyenne_2=LIST(0,10, 10,25, 20,35, 30,40, 40,45, 50,50, 60,55, 70,60, 80,65, 90,75, 100,90);

axeX_sensibilite_moyenne_3=LIST(0,0, 10,25, 20,35, 30,40, 40,45, 50,50, 60,55, 70,60, 80,65, 90,75, 100,100);
axeY_sensibilite_moyenne_3=LIST(0,0, 10,25, 20,35, 30,40, 40,45, 50,50, 60,55, 70,60, 80,65, 90,75, 100,100);
//-------------------------------------------------------------

// FUEL NORM RIGHT
{
//EFROVER (Off/down/back)
	MapKey(&Throttle, EFROVER,
		CHAIN(
			EXEC(
				"sensibilite=0;"
				"printf(\"\\xa sensibilite=faible\");"
				),
			EXEC(
				 "if (sensibilite_niveau==1) SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_faible_1);"
				"else if (sensibilite_niveau==2) SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_faible_2);"
				"else if (sensibilite_niveau==3) SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_faible_3);"
				),
			EXEC(
				 "if (sensibilite_niveau==1) SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_faible_1);"
				"else if (sensibilite_niveau==2) SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_faible_2);"
				"else if (sensibilite_niveau==3) SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_faible_3);"
				),
			EXEC(
				 "if (sensibilite_niveau==1) printf(\"\\xa sensibilite reglee sur faible niveau 1\");"
				"else if (sensibilite_niveau==2) printf(\"\\xa sensibilite reglee sur faible niveau 2\");"
				"else if (sensibilite_niveau==3) printf(\"\\xa sensibilite reglee sur faible niveau 3\");"
				)
			)
		)
	;
			
//EFRNORM (On/up/front)
	MapKey(&Throttle, EFRNORM,
		CHAIN(
			EXEC(
				"sensibilite=1;printf(\"\\xa sensibilite=moyenne\");"
				),
			EXEC(
				 "if (sensibilite_niveau==1) SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_moyenne_1);"
				"else if (sensibilite_niveau==2) SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_moyenne_2);"
				"else if (sensibilite_niveau==3) SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_moyenne_3);"
				),
			EXEC(
				 "if (sensibilite_niveau==1) SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_moyenne_1);"
				"else if (sensibilite_niveau==2) SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_moyenne_2);"
				"else if (sensibilite_niveau==3) SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_moyenne_3);"
				),
			EXEC(
				 "if (sensibilite_niveau==1) printf(\"\\xa sensibilite reglee sur moyenne niveau 1\");"
				"else if (sensibilite_niveau==2) printf(\"\\xa sensibilite reglee sur moyenne niveau 2\");"
				"else if (sensibilite_niveau==3) printf(\"\\xa sensibilite reglee sur moyenne niveau 3\");"
				)
			)
		)
	;
}


//PINKY SWITCH (gauche)
{
//PSB (Off/down/back)
	MapKey(&Throttle, PSB, 
		CHAIN(
			EXEC(
				"if(sensibilite) SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_moyenne_1);"
				"else SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_faible_1);"
				),
			EXEC(
				"if(sensibilite) SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_moyenne_1);"
				"else SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_faible_1);"
				),
			EXEC(
				"sensibilite_niveau=1;"
				),
			EXEC(
				"if(sensibilite) printf(\"\\xa sensibilite reglee sur moyen niveau 1\");"
				"else printf(\"\\xa sensibilite reglee sur faible niveau 1\");"
				)
			)
		)
	;
                
		
//PSM (middle/center)
	MapKey(&Throttle, PSM, 
		CHAIN(
			EXEC(
				"if(sensibilite) SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_moyenne_2);"
				"else SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_faible_2);"
				),
			EXEC(
				"if(sensibilite) SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_moyenne_2);"
				"else SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_faible_2);"
				),
			EXEC(
				"sensibilite_niveau=2;"
				),
			EXEC(
				"if(sensibilite) printf(\"\\xa sensibilite reglee sur moyen niveau 2\");"
				"else printf(\"\\xa sensibilite reglee sur faible niveau 2\");"
				)
			)
		)
	;
		
//PSF (On/up/front)
	MapKey(&Throttle, PSF, 
		CHAIN(
			EXEC(
				"if(sensibilite) SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_moyenne_3);"
				"else SetCustomCurve(&Joystick, JOYX, axeX_sensibilite_faible_3);"
				),
			EXEC(
				"if(sensibilite) SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_moyenne_3);"
				"else SetCustomCurve(&Joystick, JOYY, axeY_sensibilite_faible_3);"
				),
			EXEC(
				"sensibilite_niveau=3;"
				),
			EXEC(
				"if(sensibilite) printf(\"\\xa sensibilite reglee sur moyen niveau 3\");"
				"else printf(\"\\xa sensibilite reglee sur faible niveau 3\");"
				)
			)
		)
	;
}

}


//event handler
int EventHandle(int type, alias o, int x)
{
    DefaultMapping(&o, x);
	
	//add event handling code here
}
Voilà voilà, je sais que cela n'est guère utile in-game, mais, sait-on jamais, cela pourra tout de même servir à quelqu'un. Si quelqu'un souhaite utiliser / modifier / distribuer ceci, grand bien lui fasse, tout est libre de droit :mrgreen:
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Avatar de l’utilisateur
Golgoth21
Réserviste
Messages : 857
Inscription : 09 avr. 2015, 21:28

Re: TARGET Script Editor

#38

Message par Golgoth21 »

Hum !!!!! c'est dense !!!!

Où sont mes aspirine ?
Avatar de l’utilisateur
Musky
Messages : 54
Inscription : 19 mai 2016, 22:58

Re: TARGET Script Editor

#39

Message par Musky »

J'ai fini la boîte en écrivant le pavé :shock:
Avatar de l’utilisateur
Bed
Guest
Messages : 121
Inscription : 08 avr. 2015, 20:57

Re: TARGET Script Editor

#40

Message par Bed »

Hello tous, je dépoussière ce sujet figé depuis 4 ans.

2 ans que je ne vole plus trop sur BoX, mais la période dernièrement vécue m'a permis d'y retoucher un peu et me donne surtout l'envie de me refaire un Simpit maison plus "accueillant" :roll:

Je me suis pris le chou avec mon Warthog, du coup je reconsidère le Script Editor de Target.
Je viens de relire les précédents messages et regarder en détail, Biluf, tes fichiers ttm et ttc.
L'utilisation de ttm (macro) est un réel plus, je le vois pourtant rarement utilisé dans les configs dispo sur le web (quelque soit le simu).

Questions:
Etant donné l'évolution de BoX depuis quatre ans et l'apparition de nouvelles commandes/avions, accepterais-tu de partager à nouveau tes fichiers updatés (je présume) ttm et ttc ?
Sur la version de 2016, j'ai remarqué que pas mal de touches sur le Throttle restaient vacantes.
Ces affectations de touches sont forcément en relation avec le fichier de config de touches dans BoX, c'est la config par défaut qui est utilisée ? (à quelques modifications près)

Merci et bon vols à tous ! ;)
Avatar de l’utilisateur
Biluf
Réserviste
Messages : 5063
Inscription : 03 mai 2015, 19:59

Re: TARGET Script Editor

#41

Message par Biluf »

Ah désolé je n'utilise plus de Warthog et n'ai plus accès à ce matos. Va falloir le faire à la mimine ;)
Avatar de l’utilisateur
Golgoth21
Réserviste
Messages : 857
Inscription : 09 avr. 2015, 21:28

Re: TARGET Script Editor

#42

Message par Golgoth21 »

Je peux aider si tu veux. J'ai 3 modes sur ma conf...
Avatar de l’utilisateur
Bed
Guest
Messages : 121
Inscription : 08 avr. 2015, 20:57

Re: TARGET Script Editor

#43

Message par Bed »

Merci pour ta réponse Biluf, c'était le risque sur un sujet qui date de 4 ans :roll:
Peu d'exemples ou de Post sur ce sujet concernant BoX, sans doute plus nécessaire pour des simus comme DCS ou BMS.

Salut Golgoth, je suis preneur si ca ne te gene pas, histoire d'avoir une base à jour pour comprendre et adapter au besoin.
Merci ;)
Répondre