Project

Profile

Help

Alias » History » Sprint/Milestone 3

Vincent Le Goff, 12/02/2016 11:02 PM

1 1 Vincent Le Goff
h1. Les alias dans CocoMUD
2
3
Les alias sont une fonctionnalité des clients MUD afin d'abréger une ou plusieurs commandes. Un alias est en vérité une commande, mais au lieu d'être envoyée au serveur, elle est d'abord analysée par le client, qui peut la modifier et la transmettre au serveur si besoin. Il est même possible de créer des alias qui n'ont de sens que pour le client et ne sont pas envoyés au serveur du tout.
4
5
Ce document décrit le concept d'alias et explique la façon de les créer et les gérer dans CocoMUD.
6
7
{{toc}}
8
9
h2. Ajouter un alias
10
11
Vous pouvez créer un alias via l'interface ou en utilisant la [[#Syntaxe-du-SharpScript|syntaxe du SharpScript]].  L'interface étant plus intuitive, elle sera décrite en premier.
12
13
h3. Création grâce à l'interface
14
15 2 Vincent Le Goff
Dans la barre de menu, sélectionnez Jeu -> Alias.  Vous vous trouverez dans une boîte de dialogue listant les alias existants pour cet univers. Notez que les alias sont généralement propres à un univers et partagés par les personnages de cet univers, ce qui changera dans les prochaines versions.
16 1 Vincent Le Goff
17
Dans cette boîte de dialogue, vous pouvez ajouter, éditer et supprimer des alias. Par défaut, la liste des alias de cet univers sera probablement vide, vous pouvez cliquer sur *Ajouter* pour en ajouter un.
18
19
Vous devrez ensuite choisir le nom de l'alias que vous voulez créer. C'est le nom de la commande que vous devrez entrer pour exécuter l'alias. Dans cet exemple, nous allons créer un alias "tts" qui permet d'activer ou de désactiver le TTS (text-to-speech).
20
21
Entrez donc "tts" dans ce champ de texte, puis appuyez sur la tabulation. Vous vous trouvez ensuite dans une liste d'actions possibles à lier à cet alias. Par exemple, vous pourriez vouloir créer un alias "rs" qui envoie deux commandes au serveur quand exécuté : "reload" et "shoot". Dans ce cas, vous devrez sélectionner l'action "Envoie une ou plusieurs commandes au serveur".
22
23 2 Vincent Le Goff
Poursuivant notre exemple, nous devrons choisir "Active/Désactive le TTS", puisque c'est ce que devrait faire notre alias "tts" quand exécuté. Sélectionnez donc ce choix et faites tabulation pour cliquer sur le bouton *Ajouter l'action*.
24 1 Vincent Le Goff
25 2 Vincent Le Goff
Vous vous trouverez dans une nouvelle boîte de dialogue vous demandant des informations supplémentaires. Dans le cas de cette action, il n'y en a aucune, appuyez donc sur "OK" pour ajouter l'action.
26 1 Vincent Le Goff
27
La nouvelle action a bien été ajoutée. Le curseur se trouvera sur la liste des actions actuellement liées à cet alias. Vous pouvez lier un alias à plusieurs actions, si besoin lier un alias à la même action plusieurs fois (pour par exemple jouer différents sons en même temps, même si cela n'est peut-être pas bien utile).
28
29 3 Vincent Le Goff
La liste des actions liées à cet alias fait un peu peur. Elle ne contient que les informations en résumé. Si vous avez choisi "Active/Désactive le TTS", la ligne d'action @#tts@ sera créée. C'est un raccourci, une ligne d'action décrite en utilisant la syntaxe du SharpScript. Vous n'avez pas vraiment besoin de vous en inquiéter, à moins de vouloir toucher au scripting dans CocoMUD.
30
31 1 Vincent Le Goff
Pour résumer le contenu de cette boîte de dialogue quand vous ajoutez ou éditez un alias, vous avez:
32
33 3 Vincent Le Goff
* Le nom de l'alias (un champ de texte).
34
* La liste des actions liées à cet alias. Si l'alias n'est lié à aucune action, cette liste n'apparaîtra pas.
35
* Un bouton pour éditer la ligne d'action sélectionnée. Si l'alias n'est lié à aucune action, ce bouton n'apparaîtra pas.
36
* Un bouton pour supprimer la liste d'action sélectionnée. Si l'alias n'est lié à aucune action, ce bouton n'apparaîtra pas.
37 1 Vincent Le Goff
* Une liste d'actions que vous pouvez relier à cet alias.
38
* Le bouton pour ajouter une de ces actions.
39
40
Vous devriez vous habituer autant que possible à cette boîte de dialogue, car elle sera présente pour la plupart des fonctionnalités incluant du SharpScript dans CocoMUD. Il s'agit en fait de l'éditeur de SharpScript, qui vous permet d'éditer la configuration avancée du client sans ouvrir le fichier de configuration. Vous verrez bien d'autres exemples dans le reste de la documentation.
41
42
Pour enregistrer cet alias, n'oubliez pas de sélectionner "OK" plusieurs fois pour bien refermer toutes les boîtes de dialogues ouvertes.
43
44
Si dans le client, vous entrez "tts", vous devriez voir :
45
46
<pre>
47
TTS off.
48
</pre>
49
50 2 Vincent Le Goff
Entrez cette commande de nouveau pour l'activer. Le TTS (text-to-speech) sera donc activé ou désactivé en entrant cet alias.
51 1 Vincent Le Goff
52
h3. Syntaxe du SharpScript
53
54
Vous pouvez aussi ajouter un alias en éditant un fichier de configuration. Cette solution sera peut-être préférée par certains.
55
56
Le fichier de configuration lié à cet univers se trouve dans le dossier "worlds", sous-dossier portant le nom de votre univers, fichier "config.set". Vous pouvez ouvrir ce fichier avec un éditeur simple, comme bloc-notes.
57
58
Pour ajouter un alias, utilisez l'action @#alias@ avec deux paramètres :
59
60
* Le nom de l'alias.
61
* Les actions liées à cet alias.
62
63
Si vous voulez créer un alias "tts" qui active ou désactive le TTS (text-to-speech), écrivez dans votre fichier de configuration :
64
65
<pre>
66
#alias tts #tts
67
</pre>
68
69
Si vous voulez lier votre alias à plusieurs actions, n'hésitez pas à l'écrire sur plusieurs lignes :
70
71
<pre>
72
#alias go {
73
    #play sounds/go.wav
74
    #say {C'est parti !}
75
}
76
</pre>
77
78
Pour une explication plus détaillée de la syntaxe du SharpScript, référez-vous à [[SharpScript|la section consacrée au SharpScript]].
79
80
h2. Editer un alias
81
82
A tout moment, que vous ayez créé l'alias depuis l'interface ou depuis le fichier de configuration, vous pouvez l'éditer. Si vous l'avez créé via le fichier de configuration, vous pouvez l'éditer via l'interface, et réciproquement.
83
84 2 Vincent Le Goff
Souvenez-vous : la configuration est chargée quand l'univers est sélectionnée, vraisemblablement à l'ouverture du programme. Si vous modifiez le fichier de configuration, redémarrez le programme pour voir ces modifications.
85 1 Vincent Le Goff
86
h2. Supprimer un alias
87
88
Vous pouvez retirer un alias depuis l'interface ou le fichier de configuration. Souvenez-vous de bien quitter l'interface en cliquant sur "OK" même après avoir supprimé un alias, sans quoi la modification ne sera pas sauvegardée.
89 3 Vincent Le Goff
90
h2. Les alias avec variables
91
92
CocoMUD offre une gestion des variables. On peut les utiliser n'importe où dans les scripts du client, incluant dans toutes les fonctionnalités qui utilisent le moteur du SharpScript (comme les alias, macros ou triggers).
93
94
Les variables peuvent être très utiles pour les alias, pour créer des raccourcis de commande avec des paramètres inconnus. Par exemple :
95
96
bq. Je voudrais créer un alias qui commence par @=@. Ce qui vient après le signe égal doit être envoyé au serveur comme une commande @say@. Si j'entre "=coucou !", la commande "say coucou !" devrait être envoyée au serveur.
97
98
Dans ce cas, on devra utiliser des variables. L'alias doit commencer par un signe égal (@=@), mais on ne sait pas ce qui vient après. Comment l'indiquer au client ? On va utiliser le signe @*@ dans notre alias qui veut dire "n'importe quoi, de n'importe quelle longueur".
99
100
Si on entre *=*@ comme alias, CocoMUD l'interprétera comme "n'importe quelle commande commençant par un signe égal".
101
102
Cependant, on n'a pas seulement besoin de déclencher cet alias. On doit récupérer ce que l'utilisateur a entré après le signe égal. Voici le détail de la création de cet alias, pas à pas, en utilisant l'interface :
103
104
* Dans la barre de menu, sélectionnez *Jeu* puis *Alias*.
105
* Cliquez sur le bouton *Ajouter* pour ajouter un nouvel alias.
106
* Dans le champ de texte contenant l'alias, entrez @=*@ (le signe égal et un signe astérisque).
107
* Appuyez sur tab pour vous déplacer sur la liste d'actions pouvant être liées à cet alias.
108
* Sélectionnez "envoie une ou plusieurs commandes au serveur", appuyez sur tab et cliquez sur *Ajouter l'action*.
109
* Le client vous demande de configurer cette action. Appuyez sur tab jusqu'à entendre "Commandes à envoyer au serveur". Dans ce champ de texte, entrez @say $1@ (le @$1@ est expliqué plus bas).
110
* Appuyez sur *OK*. L'action devrait être ajoutée, et vous devriez la voir dans la liste :
111
<pre>
112
#send {say $1}
113
</pre>
114
La syntaxe est expliquée plus bas.
115
* Appuyez sur tab jusqu'à trouver le bouton *OK* et cliquez dessus. Vous vous retrouvez dans la liste d'alias, appuyez sur "OK" une nouvelle fois pour fermer cette boîte de dialogue en sauvegardant les modifications.
116
117
Si vous écrivez dans le client :
118
119
<pre>
120
=Coucou !
121
</pre>
122
123
L'alias enverra "say Coucou !" au serveur.
124
125
Ce qui se passe est assez simple :
126
127
* Vous entrez "=quelque chose".
128
* CocoMUD trouve un alias correspondant à cette commande.
129
* Ce que vous avez entré après le signe égal ("quelque chose", dans notre exemple) est capturé dans la variable @$1@.
130
* Quand vous envoyez @$1@ au serveur, le @$1@ sera remplacé par "quelque chose".
131
132
La variable s'appelle @$1@ car vous pouvez créer de nombreuses variables. Si vous entrez l'alias :
133
134
<pre>
135
-*+*
136
</pre>
137
138
Vous pourrez entrer comme actions liés à cet alias :
139
140
<pre>
141
remove $1
142
wear $2
143
</pre>
144
145
Et utiliser cet alias ainsi :
146
147
<pre>
148
-cape+armure
149
</pre>
150
151
Les variables en SharpScript sont davantage expliquées dans [[SharpScript|la documentation consacrée au SharpScript]].