Avant-propos

Qu'est-ce qu'une config?

Alors une config c'est un fichier texte qui contient toutes les informations à propos de votre nom, vos touches pour jouer, les graphismes, et bien plus ;)

Où puis-je me procurrer une config ?

Vous procurrez ? Mais le but de ce tutorial est de vous montrez comment la faire vous même :)

Mais alors quels logiciels me faut-il pour arriver à un tel miracle ?

Mais juste l'éditeur de texte de votre choix.
Pour l'exemple on utilisera le bloc note de windows.

Existe-t-il une config par défault ?

Biensûr, vous pouvez la trouver dans etmain/etconfig.cfg

C'est quoi .cfg ? Notepad peut lire ce genre de fichier ?

Le .cfg est l'extension de fichier pour config (pas très dûr hein ^_^ )
Biensûr que notepad peut l'ouvrir, il suffit de faire bouton droit-->ouvrir avec...-->notepad

Ouah mais il y a trop de lignes !

Oui c'est votre configuration dans le jeu.
Mais ne vous inquiétez pas, on va voir tout ça en détail plus tard.
Retenez juste qu'une fois votre config terminée, il ne faudra plus toucher à ce fichier :)
PS: pour une meilleur mise en page ouvrez avec worpad

Les bases

Le vocabulaire

Avant d'en venir directement dans le vif du sujet, commençons pas apprendre le vocabulaire.

Bind = Cette commande est l'une des principales à retenir, elle va vous permettre d'associer une action à une touche de votre clavier ou souris.
Unbind = Cette commande est l'inverse de bind, elle permet de libérer une touche en lui enlevant la commande qu'on lui a associé.
Unbindall = Cette commande va voir le même effet que Unbind, sauf que ça va libérer toutes les touches.
Set (ou seta) = Cette commande va permettre de créer ce qu'on appelle une variable et de lui associer une ou plusieurs commandes. Ne vous inquiétez pas on va revenir plus en détails dessus après.
vstr = Permet d'executer les variables créée par la commande set.
Toggle = Permet d'alterner des valeurs entre 0 et 1 (seulement si la commande accepte uniquement 0 et 1)
Cycle = Permet d'augmenter des valeurs selon un certain nombre à chaque pression. On verra ça en détail plus tard.
script = C'est un ensemble de commandes, executé dans un certain ordre. On verra ça en détail plus tard.
Fps = En anglais FPS signifie frame per seconds, en français cela signifie Image par Seconde. Plus les FPS sont élevés, plus votre machine traitera aisément les données, plus votre jeux sera fluide.

Les binds

Commençons par le plus important ^_^
Donc le bind permet d'assigner une commande à une touche. Ca se présente sour la forme bind touche commande.
On commence ?
Alors pour l'exemple j'ai choisis: bind z "+forward"
Oulà ça commence déjà fort ? Ne vous inquiétez pas c'est pour l'exemple.
Alors examinons tout ça:
Donc bind assigne une commande à une touche
Z c'est la touche
"+forward" c'est la commande (ici cette commande veut dire avancer).

Alors vous vous doutez bien, les touches des fois on des noms spéciaux, alors voici les noms de chaque touche:

Touches / Nom à mettre dans la config :

Touches de fonctions

F1 / f1
F2 / f2
F3 / f3
F4 / f4
F5 / f5
F6 / f6
F7 / f7
F8 / f8
F9 / f9
F10 / f10
F11 / f11
F12 / f12

Touches de navigations

Inser / ins
Home / home
Page Up / pgup
Page Down / pgdn
Suppr / del
Fin / end

Touches de direction

haut / uparrow
bas / downarrow
gauche / leftarrow
droite / rightarrow

Pavé numérique

0 / kp_ins
1 / kp_end
2 / kp_downarrow
3 / kp_pgdn
4 / kp_leftarrow
5 / kp_5
6 / kp_rightarrow
7 / kp_home
8 / kp_uparrow
9 / kp_pgup
Point / kp_del
Entre / kp_enter
Plus / kp_plus
Moins / kp_minus
Asterisk / *
Slash / kp_slash

Souris

Bouton gauche / mouse1
Bouton droit / mouse2
Boutton milieu / mouse3
Si il y a d'autres boutons sur votre souris c'est mouse4 et mouse5, cepandant pas toutes les souris acceptent.
Roulette Scroll Up / mwheelup
Roulette Scroll Down / mwheeldown

Touches alphabétiques

a / a
b / b
c / c
d / d
e / e
f / f
g / g
h / h
i / i
j / j
k / k
l / l
m / m
n / n
o / o
p / p
q / q
r / r
s / s
t / t
u / u
v / v
w / w
x / x
y / y
z / z

Touches numériques

0 / 0
1 / 1
2 / 2
3 / 3
4 / 4
5 / 5
6 / 6
7 / 7
8 / 8
9 / 9

Passons maintenant aux commandes de bases:

+forward /Avancer
+back /Reculer
+moveleft /Pas chassés à gauche
+moveright /Pas chassés à droite
+leanleft /Se pencher à gauche
+leanright /Se pencher à droite
+moveup /Sauter
+movedown /S’accroupir
+attack /Tirer (utiliser l’arme sélectionnée)
+prone /Se coucher
+sprint /Faire un sprint
+speed /Mode courir-marcher
+activate /Active un bouton-Ouvre une porte-Pousse un joueur
+zoom /Utilise vos jumelles sans changer d’arme
+mapexpand /Affiche la mini carte (que si vous êtes en vie ou spectateur)
+scores /Affiche le tableau des points d’expérience par joueur
+stats /Affiche les statistiques d’un joueur (précision, frags, morts,…)
+topshots /Affiche par arme le joueur ayant la meilleure précision
weapalt /Action alternative de l’arme sélectionnée (avec le sniper à lunette)
weaponbank X /Sélectionne une arme (X est un numéro de 1 à 9)
kill /Vous tue
forcetapout /Quand vous êtes tué, cette commande vous met dans la liste des renforts
toggleconsole /Affiche la console
togglemenu /Affiche le menu (serveur info, options, disconnect, quit)
openlimbomenu /Affiche le menu de choix (équipe, classe, arme)
mvactivate /Active le multiview si le serveur le prend en charge
mapzoomout /Enlève le zoom sur la boussole
mapzoomin /Zoom sur la boussole
zoomin /Zoom en visée sniper ou avec les jumelles
zoomout /Enlève le zoom en visée de sniper ou avec les jumelles
messagemode /Ouvre la fenêtre de chat global
messagemode2 /Ouvre la fenêtre de chat d’équipe
messagemode3 /Ouvre la fenêtre de chat de fireteam
mp_quickmessage /Ouvre le menu des chats vocaux
mp_fireteammsg /Ouvre le menu des chats vocaux de la fireteam

Donc si vous avez bien compris le principe, si je vous demande de me donner la commande qui me permet de dire que quand j'appuis sur s mon joueur recule.

Attention ! Réflichissez....

La réponse est bind s "+back"
Un autre exemple ? Ok alors j'aimerais savoir la commande qui me permet de dire que quand j'appuis sur z, ça affiche mes statistiques.

Attention ! Réfléchissez....

La réponse est bind z "+stats"
Voilà je pense que pour les commandes de bases vous avez compris. Mais attention, des fois le jeu prends en compte le clavier américain, ainsi par exemple "a" deviendra "q". Faîtes des test avant de dire que ça ne marche pas.
Attention numéro 2, la dernière fonction prise en compte pour une touche et la dernière fonction tapée.
Par exemple dans le cas précédent je veux enlever la commande "+stats" à la touche z, il faudra alors que je fasse unbind z
Ok ? Bon ben alors si tout va comme vous le voulez on peut passer à la suite = )

Les set (ou seta)

Bon c'est sûrement la partie la plus longue ^^ Pourquoi ? En fait set (ou seta) à 2 fonctions, la première étant de créer une variable, mais on utilisera cette fonction plus tard, pour l'instant on va s'interesser à la 2eme fonction, qui sert à écrire dans etconfig.
Je sens que ça commence à s'embrouiller chez vous, alors pour éclaircir un peu tout ça on va faire un exemple:

seta r_fullscreen 1

Alors si on examine tout ça, cette ligne nous dit : Je veux que le jeu soit en plein écran. Je m'explique, r_fullscreen est une commande qui permet de dire si on met le jeu en grand écran ou en mode fenêtre. Comme beaucoup de commandes, on peut seulement mettre 0 ou 1. 0 signifie non, et 1 signifie oui. Donc là r_fullscreen 1 veut dire "oui plein écran". Et alors à quoi sert le seta ? Tout simplement à fixer la commande. Ca correspond en quelque sorte à mon "Je veux que". J'éspère que c'est plus clair. Quoi ? Vous voulez une liste de tout les seta du jeu ? Hum je m'occuperais de ça plus tard, c'est une liste très très très longue (et encore on ne connait pas toutes les seta du jeu ^_^ ).

Bon un petit break dans toute la théorie, pour vous expliquer comment on enregistrer une config et on la lance dans le jeu.

Alors ça n'est pas très compliqué, vous faîtes avec le bloc note de windows, fichier-->Enregistrer sous. Dans type vous choisissez "tous les fichiers", puis vous enregistrer votre config sous forme de "nom_de_votre_config.cfg". Et vous placez ce fichier .cfg dans le dossier etmain.
Ensuite pour la lancer dans le jeu ? Alors d'abord ouvrez le jeu ^_^
Ensuite ouvrez la console avec le ² qui se situe sous echap, vous effacez ce qu'il y a d'écrit, et vous marquez /exec nom_de_votre_config
Donc si on analye exec veut dire executer, et donc on execute la config créée auparavant.
Pour votre information, exec est aussi une commande du jeu, ce qui veut dire qu'on peut l'assigner à une touche.
Par exemple bind x exec nomdevotreconfig aura pour effet que quand on appuit sur la touche x ça execute votre config. Ok ? (Je vais arrettez de dire Ok ? car vous pouvez pas me répondre ^_^ ).

Alors si on a pu faire une commande dans le jeu, on peut faire les autres ?

Mais biensûr, vous pouvez faire les commandes que vous voulez directement dans le jeu. La procédure à suivre est simple:
² sous echap, on efface ce qu'il y a d'écrit, et on marque la commande avec un / devant. Par exemple pour bind z "+forward" on va taper: /bind z "+forward" .

Alors dans ce cas à quoi ça sert de créer une config si on peut faire ça directement dans le jeu ?

Alors d'abord un petit extrait qui vous expliquera mieux que moi:

" Avant la 2.60 :
Il (etconfig) ne pouvait dépasser 15,9 Ko (16 347 octets), s'il venait à le faire il se ré-initialiserai et donc tout les réglages reviennent par défaut. La config et les scripts pour fonctionner correctement doivent être exécuter à chaque démarrage et utiliser set pour les variables."

Parce que ça serait trop beau. Quand vous faîtes une commande dans le jeux, la commande ne marchera que sur le server sur lequel vous avez tapé la commande, ou parfois elle s'effacera à la fermeture du jeu. En créant une config rien ne peut se perdre, tout est écrit noit sur blanc, et si sur un server vous perdez vos commandes, il suffira de faire /exec nom_de_votre_config pour les retrouver.
C'est l'intérêt des configs, mais attention la console est très utile, il faut savoir utiliser les 2.

Les scirpts - set (ou seta) + vstr - Variables

Ah ! cette fois on y est ! On va rentrer dans les scripts, et par la même occasion découvrir set pour créer les variables et vstr pour les éxecuter.

Parlons d'abord de set, il se présente sous la fome " set nom_de_la_variable commande".
A quoi ça sert concrètement ? Alors simplifions au maximum ! Déjà qu'est-ce qu'une variable? On va dire que c'est une sorte de dossier qui contient pleins de commandes à éxecuter dans un ordre précis. Par exemple si dans la vie de tout les jours je pouvais créer des variables je dirais que ça fasse ceci :" Le soir quand je rentre chez moi, dès que j'ouvre la porte les lumières s'allument et les volets descendent. Dès que je vais dans mon lit les lumières s'éteignent et la porte se ferme à clé. Le matin dès que je me reveille mes volets s'ouvrent, la porte se déverouille, mon petit déjeuner se prépare. Une fois sortit de chez moi la porte se ferme à clé, si il y a des lumières allumées, elles s'éteignent." Vous l'aurez compris, ça aurait été bien utile ^_^
Biensûr j'ai très simplifié pour vous montrer à quoi servent les variables. C'est vraiment utile. Dans le jeu, on peut créer des variables (quelle chance), mais on peut même enchainer plusieurs variables !
C'est là qu'intervient la commande vstr. La commande vstr permet de dire "Je veux executer telle variable, et si il y en a une autre, telle variable juste après".
Mais c'est de la magie !
Reprenons l'exemple de la vie courante, ça pourrait donner ceci:

set dodo "étteindre les lumières; fermer la porte à clé; me chanter une berceuse"

Bind x "vstr dodo"

Alors examinons un peu, si vous avez bien compris, je créé une variable du nom de dodo, cette variable me dit que je dois étteindre les lumières, puis fermer la porte à clé, puis enfin me chanter une berceuse. Bind x me dit que quand j'appuis sur x, je vais lancer la variable dodo.


Je sens que vous êtes pret pour la suite là ! Non ?
Bon ben on va chercher un exemple dans le jeu à analyser, mais comme je suis un peu fatigué on va prendre un exemple trouvé sur enemyterritory.fr

FFE (direct)

Set FFE "+zoom; +attack; -attack; -zoom"
Bind X "vstr FFE"

Normalement si vous avez bien compris ce qui a été dit plus haut, vous devez pouvoir trouver ce que ça veut dire mais je vous le dit pour être sûr que ce soit clair.
Alors set FFE --> je créé une variable que j'appelle FFE
Dans cette variable je dis que quand elle est executée "ça zoom, attaque, arrette l'attaque, puis dézoom"
Bind X "vstr FFE" ---> j'attribue à la touche X, l'execution de la variable FFE (et oui vstr = execution d'une variable). Ce script est très pratique quand on est field ops, car en appuyant seulement sur une touche on va créer une artillerie. En effet, quand on est fields ops, attaquer quand on est en zoom a pour but de créer une artillerie, et ici, on n'a même pas besoin de changer d'arme ou d'appuyer sur zoom, il nous suffit juste d'appuyer sur X pour faire tout ça, ce qui est un gain de temps qui n'est pas négligeable dans une partie. Ca se reproche de mon exemple "dodo" non ?

Un autre ?
Ok, voyons voir, je cherche un peu plus dûr et je vous laisse chercher un peu.

Palmarès (Stats + topshot)

Set Stats_1 "+stats; +topshots"
Set Stats_0 "-stats; -topshots"
Bind X "+vstr Stats_1 Stats_0"

 

 

 

Allez! Cherchez!

 

 

 

Bon ok solution:
Set stats_1 --->créer une variable nommée stats_1
"+stats; +topshots" ---> Ne me dîtes pas que vous ne saviez pas ce que c'était je l'ai dit dans commandes de base, allez voir ^_^
Set Stats_0 ---> créer une variable nommée stats_0
"-stats; -topshots" --> inverse de +stats et de +topshots, c'est à dire enlève les statistiques et le topshots
Bind X "+vstr Stats_1 Stats_0" ---> j'associe à la touche X l'éxecution de la variable Stats_1, et au relachement de X l'éxecution de la variable Stats_0

 

Petit détail qui a son importance: Vous vous demandez surement à quoi sert le - puisque le + marche très bien ?
En fait le - s'effectue tout seul au relachement d'une touche quand une action est seule dans une variable, mais là, dans l'exemple 1, nous avons un zoom + une attaque, l'action n'est donc pas seule.
Si on ne met pas de -, l'action serait infinis, elle se répeterait en boucle. Du coup on est obligé de mettre un - pour dire qu'on veut que l'action s'arrette.

 

Attention, TOUTES les notions vues précédement sont les bases, il est impératif de bien les connaître pour comprendre la suite, il est d'ailleurs conseillé de relire plusieurs fois ce qui n'a pas été compris. Dans la suite de ce tuto je ne reviendrais plus sur ces notions, je n'expliquerai plus ce que veut dire BIND ou SET ou encore VSTR.
Bon bon vous inquiétez pas, il suffit de bien relire, et si vous ne comprenez pas, n'hésitez pas à demande de l'aide sur le forum ( http://tiwbythebest34.kanak.fr/ ) dans la section SOS, je répondrais à vos questions avec plaisir (si je ne suis pas trop fatigué =D )

 

Notions un peu plus avancées

 

Si vous êtes ici c'est que vous avez suivis mon conseil et que vous savez donc les notions de base. Si ce n'est pas le cas je vous renvoie vers ce qui a été dit plus haut.
On va donc pousser notre étude de scripts un peu plus loin avec les notions de toggle, de cycle, de wait. Généralement, cycle et wait ne sont pas trop utilisées car c'est plus pour des scripts avancées dont on ne voit pas trop l'utilisation dans le jeu de tout les jours. Par exemple je n'ai aucun wait dans ma config, car j'en ai pas besoin pour ceux que je demande. Ce qui m'amène à un point important sur les configs. Au départ je vous conseille de tripoter un peu et d'essayer pleins de choses, de créer vos scripts, ou de testez des scripts d'autres personnes, mais en comprenant comment sa fonctionne, pas en simplement et bêtement le copier, il vous est d'ailleurs conseillé d'apporter votre touche personnel. Mais quand vous aurez compris le système et que vous vous serez familiarisé avec les scripts, ne mettez pas n'importe quoi dans votre config, par exemple vous trouvez un script qui est très jolie, très pratique, mais qui ne vous sert pas à grand chose, dans ce cas ne le mettez pas dans votre config. Mettez dans votre config que ce dont vous avez besoin, et qui vous semble vraiment utile voir indispensable. Par exemple, le fait de dire reload quand on recharge, est-ce utile ? A quoi ça vous sert ? Vous ne savez pas quand vous rechargez ? Vous voulez en faire profiter tout le monde alors qu'on s'en fout ?
Pleins de questions sans réponses de mon côté.

Alors commençons, on va commencer par la notion de toggle.
Cette notion, ou plutôt ce mot, va permettre de changer une valeur entre 0 et 1. Si la commande que vous voulez changez ne fonctionne pas sur le système 0-1, alors toggle est inutile.
Et en fait c'est très simple, par exemple la commande qui permet d'afficher l'arme quand on tire, c'est cg_drawgun 0/1, 0 pour non et 1 pour oui. Il me faudrait 2 binds ou alors un script pour faire à la fois 1 et 0 sur la même touche. Quelque chose dans le genre bind x cg_drawgun 0 et bind y cg_drawgun 1. Alors qu'avec toggle il suffit de faire:

bind x "toggle cg_drawgun"

Ainsi, à chaque pression de la touche X, l'arme s'affichera ou disparaîtra. Pratique non ?