Bonjour
Pour ceux qui voudraient obtenir des réponses du bot a des émoticones, voici le résultat final des explications données par Cédric ( à rajouter sur un nouveau fichier remote)
CITATION
P.S.
Je rappelle simplement que pour enregistrer une variable dans mIRC, il suffit d'entrer dans la ligne de commande (en bas) //set %truc bidule !!!
Ainsi %truc retournera bidule !!!
--------------------------------------------------------------------------------
Le but est de créer les variables, et de vérifier leurs présences à chaque démarrage.
Donc au final, pour utiliser des emoticons (je résume une dernière fois cette méthode de variable correctement):
1 - Je crée ce code dans un script: (vous pouvez ajouter vos propres variables...)
2 - Je redémarre le script (important pour passer sur le On Start !)
3 - Je peux créer mes codes On TEXT à partir des variables créées:
... etc.
--------------------------------------------------------------------------------
C•Dryk
Je rappelle simplement que pour enregistrer une variable dans mIRC, il suffit d'entrer dans la ligne de commande (en bas) //set %truc bidule !!!
Ainsi %truc retournera bidule !!!
--------------------------------------------------------------------------------
Le but est de créer les variables, et de vérifier leurs présences à chaque démarrage.
Donc au final, pour utiliser des emoticons (je résume une dernière fois cette méthode de variable correctement):
1 - Je crée ce code dans un script: (vous pouvez ajouter vos propres variables...)
CODE
On *:START: {
if (!%triste) set %triste :'(
if (!%vener) set %vener :@
if (!%felix) set %felix (@)
if (!%pascontent) set %pascontent :(
if (!%content) set %content :)
if (!%langue) set %langue :p
}
if (!%triste) set %triste :'(
if (!%vener) set %vener :@
if (!%felix) set %felix (@)
if (!%pascontent) set %pascontent :(
if (!%content) set %content :)
if (!%langue) set %langue :p
}
2 - Je redémarre le script (important pour passer sur le On Start !)
3 - Je peux créer mes codes On TEXT à partir des variables créées:
CODE
on *:TEXT:%triste:#:/msg # ne pleure pas $nick :o
on *:TEXT:%langue:#:/msg # ne tire pas la langue $nick !!!
on *:TEXT:%pascontent:#:/msg # qu'est-ce qui ne va pas $nick ?
on *:TEXT:%langue:#:/msg # ne tire pas la langue $nick !!!
on *:TEXT:%pascontent:#:/msg # qu'est-ce qui ne va pas $nick ?
... etc.
--------------------------------------------------------------------------------
C•Dryk
Pour ceux qui souhaiteraient en savoir plus concernant les bases du scripting, je joins ici d'autres explications de Cédric.
Vous y comprendrez pourquoi le bot ne réagit pas a l'émoticone : ) par exemple.
Et beaucoup d'autres explication de bases.
CITATION
Message de réponse sur emoticons
Alors observons la commande qui sert à répondre sur quelque chose en général...
On *:TEXT:déclancheur:#: { /privmsg # la réponse }
Vous remarquerez que j'ai volontairement mis en rouge les :
On TEXT est constitué de plusieurs éléments, séparés par des :
1 - On * > signifie le niveau ou l'utilisateur attendu (* = tout le monde)
Peut-être précisé: On owner, On host (pour marteaux jaunes et bruns)
ou On adminlevel, On proplevel, On animlevel (pour les listes du bot)
ou On 1 (tous le monde sauf les marteaux et les listes du bot)
2 - TEXT > Type de données attendues (existe aussi JOIN, PART, KICK, ...)
3 - Déclancheur > Le texte qui déclanche. Vous pouvez utiliser des * (wildcard).
xx* = xx + n'importe quoi / *xx = n'importe quoi + xx
xx * = xx + espace + n'importe quoi
* xx = n'importe quoi + espace + xx
x*y = x + n'importe quoi + y (exp c*c pour CédriC, CoC, ...)
4 - Emplacement > Définie d'où viens le déclancheur attendu
# = de la salle / ? = en PV au bot / * = de n'importe où
5 - Le code à effectuer > exp: /privmsg # ... ou /msg # ... ou /kick ....
Voilà pour le détail... donc revenons à la fonction:
On *:TEXT:déclancheur:#: { /privmsg # la réponse }
Comme vous l'avez compris, les : délimitent pour mIRC si nous en somme à l'information 1,2,3,4 ou 5 ...
Donc quand vous testez les emoticons de cette manière, vous faites une erreur lorsqu'ils ont : car vous trompez mIRC. Vous pensez faire :
On *:TEXT::-p:#: { /privmsg # la réponse }
mais mIRC comprend :
On *:TEXT::-p:# { /privmsg # la réponse }
Donc tout est décalé d'un rang, est le déclancheur devient nul (vide), la fonction n'a plus de sens...
Donc il faut soit l'écrire autrement, soit faire preuve d'imagination !
On peut par exemple n'utiliser que '( pour attendre l'emoticon :'( ... Exp:
On *:TEXT:'( :#: { /privmsg # la réponse }
Cependant si quelqu'un n'entre que '( le script réagira aussi...
Pour :-p c'est autre chose... On pourrais n'attendre que -p mais beaucoup ne mettent pas le - non obligatoire, et font
donc il faut trouver mieux...
On peut donc écrire le code comme ceci:
On *:TEXT:*:#: {
if (*
iswm $$1-) { /privmsg # la réponse }
}
Car dans la condition if, je peux sans problème mettre des :
Pour le déclancheur, j'utilise ici * = n'importe quel texte.
pour chercher en utilisant les * on utilise iswm sinon, sans *, on utilise isin
(*
* iswm $$1-) / (
isin $$1-)
Deux Choses IMPORTANTES ...
avec
On *:TEXT:déclancheur:#: { /privmsg # la réponse }
on attend déjà un texte précis donc on peut en mettre plusieurs dans le même script:
On *:TEXT:déclancheur1:#: { /privmsg # la réponse1 }
On *:TEXT:déclancheur2:#: { /privmsg # la réponse2 }
On *:TEXT:déclancheur3:#: { /privmsg # la réponse3 }
On *:TEXT:déclancheur4:#: { /privmsg # la réponse4 }
...
MAIS avec
On *:TEXT:*:#: {
if (*déclancheur* iswm $$1-) { /privmsg # la réponse }
}
On attend ici déjà tous les textes (*) ! Donc on ne peut mettre cela que une seule fois par scripts. Dans ce cas, pour plusieurs déclancheurs, on peut faire comme suit:
On *:TEXT:*:#: {
if (*déclancheur1* iswm $$1-) { /privmsg # la réponse1 }
if (*déclancheur2* iswm $$1-) { /privmsg # la réponse2 }
if (*déclancheur3* iswm $$1-) { /privmsg # la réponse3 }
if (*déclancheur4* iswm $$1-) { /privmsg # la réponse4 }
}
De plus, si vous ne pouvez pas utiliser pour les raisons vues plus haut de : dans le déclancheur de:
On *:TEXT:déclancheur:#: { /privmsg # la réponse }
Comprenez bien que vous ne pouvez pas non plus utiliser de ( ou ) dans le déclancheur de:
On *:TEXT:*:#: {
if (*déclancheur* iswm $$1-) { /privmsg # la réponse }
}
car sinon mIRC comprendrait:
On *:TEXT:*:#: {
if (*déclancheur)* iswm $$1-) { /privmsg # la réponse }
}
La ) serait annulée par celle du déclancheur )
Donc pour réagir sur
c'est à dire le on peut utiliser la 2e possibilité, mais en écrivant le n° du caratère ASCII de la ). Ainsi, on remplacera réspectivement ( par $chr(40) et ). par $chr(41) .
On utilise $+ pour coller le tout comme suit:
On *:TEXT:*:#: {
if (*: $+ $chr(41) $+ * iswm $$1-) { /privmsg # la réponse }
}
ici avec les * ; ou sinon sans les * comme suit:
On *:TEXT:*:#: {
if (: $+ $chr(41) isin $$1-) { /privmsg # la réponse }
}
Voilà, now vous avez les armes en main, réfléchissez à tout cela vous verrez, c'est logique ! Bon scripts...
--------------------------------------------------------------------------------
C•Dryk™
Alors observons la commande qui sert à répondre sur quelque chose en général...
On *:TEXT:déclancheur:#: { /privmsg # la réponse }
Vous remarquerez que j'ai volontairement mis en rouge les :
On TEXT est constitué de plusieurs éléments, séparés par des :
1 - On * > signifie le niveau ou l'utilisateur attendu (* = tout le monde)
Peut-être précisé: On owner, On host (pour marteaux jaunes et bruns)
ou On adminlevel, On proplevel, On animlevel (pour les listes du bot)
ou On 1 (tous le monde sauf les marteaux et les listes du bot)
2 - TEXT > Type de données attendues (existe aussi JOIN, PART, KICK, ...)
3 - Déclancheur > Le texte qui déclanche. Vous pouvez utiliser des * (wildcard).
xx* = xx + n'importe quoi / *xx = n'importe quoi + xx
xx * = xx + espace + n'importe quoi
* xx = n'importe quoi + espace + xx
x*y = x + n'importe quoi + y (exp c*c pour CédriC, CoC, ...)
4 - Emplacement > Définie d'où viens le déclancheur attendu
# = de la salle / ? = en PV au bot / * = de n'importe où
5 - Le code à effectuer > exp: /privmsg # ... ou /msg # ... ou /kick ....
Voilà pour le détail... donc revenons à la fonction:
On *:TEXT:déclancheur:#: { /privmsg # la réponse }
Comme vous l'avez compris, les : délimitent pour mIRC si nous en somme à l'information 1,2,3,4 ou 5 ...
Donc quand vous testez les emoticons de cette manière, vous faites une erreur lorsqu'ils ont : car vous trompez mIRC. Vous pensez faire :
On *:TEXT::-p:#: { /privmsg # la réponse }
mais mIRC comprend :
On *:TEXT::-p:# { /privmsg # la réponse }
Donc tout est décalé d'un rang, est le déclancheur devient nul (vide), la fonction n'a plus de sens...
Donc il faut soit l'écrire autrement, soit faire preuve d'imagination !
On peut par exemple n'utiliser que '( pour attendre l'emoticon :'( ... Exp:
On *:TEXT:'( :#: { /privmsg # la réponse }
Cependant si quelqu'un n'entre que '( le script réagira aussi...
Pour :-p c'est autre chose... On pourrais n'attendre que -p mais beaucoup ne mettent pas le - non obligatoire, et font
On peut donc écrire le code comme ceci:
On *:TEXT:*:#: {
if (*
}
Car dans la condition if, je peux sans problème mettre des :
Pour le déclancheur, j'utilise ici * = n'importe quel texte.
pour chercher en utilisant les * on utilise iswm sinon, sans *, on utilise isin
(*
Deux Choses IMPORTANTES ...
avec
On *:TEXT:déclancheur:#: { /privmsg # la réponse }
on attend déjà un texte précis donc on peut en mettre plusieurs dans le même script:
On *:TEXT:déclancheur1:#: { /privmsg # la réponse1 }
On *:TEXT:déclancheur2:#: { /privmsg # la réponse2 }
On *:TEXT:déclancheur3:#: { /privmsg # la réponse3 }
On *:TEXT:déclancheur4:#: { /privmsg # la réponse4 }
...
MAIS avec
On *:TEXT:*:#: {
if (*déclancheur* iswm $$1-) { /privmsg # la réponse }
}
On attend ici déjà tous les textes (*) ! Donc on ne peut mettre cela que une seule fois par scripts. Dans ce cas, pour plusieurs déclancheurs, on peut faire comme suit:
On *:TEXT:*:#: {
if (*déclancheur1* iswm $$1-) { /privmsg # la réponse1 }
if (*déclancheur2* iswm $$1-) { /privmsg # la réponse2 }
if (*déclancheur3* iswm $$1-) { /privmsg # la réponse3 }
if (*déclancheur4* iswm $$1-) { /privmsg # la réponse4 }
}
De plus, si vous ne pouvez pas utiliser pour les raisons vues plus haut de : dans le déclancheur de:
On *:TEXT:déclancheur:#: { /privmsg # la réponse }
Comprenez bien que vous ne pouvez pas non plus utiliser de ( ou ) dans le déclancheur de:
On *:TEXT:*:#: {
if (*déclancheur* iswm $$1-) { /privmsg # la réponse }
}
car sinon mIRC comprendrait:
On *:TEXT:*:#: {
if (*déclancheur)* iswm $$1-) { /privmsg # la réponse }
}
La ) serait annulée par celle du déclancheur )
Donc pour réagir sur
On utilise $+ pour coller le tout comme suit:
On *:TEXT:*:#: {
if (*: $+ $chr(41) $+ * iswm $$1-) { /privmsg # la réponse }
}
ici avec les * ; ou sinon sans les * comme suit:
On *:TEXT:*:#: {
if (: $+ $chr(41) isin $$1-) { /privmsg # la réponse }
}
Voilà, now vous avez les armes en main, réfléchissez à tout cela vous verrez, c'est logique ! Bon scripts...
--------------------------------------------------------------------------------
C•Dryk™