LOLESKE88
Messages postés70Date d'inscriptiondimanche 18 décembre 2005StatutMembreDernière intervention25 février 2007
-
27 févr. 2006 à 00:12
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011
-
21 févr. 2007 à 00:00
Bonsoir,
Aujourd'hui, j'ai un nouveau probleme avec mes timers. Mais je ne suis
pas sur que le probleme vienne de la commande timer, mais plus de la
facon dont je lance son exécution.
Voila a quoi ressemble mon code.
on *:TEXT:*Julien*terminé*:#channel1:{
var %nick1 $strip($1, burc)
var %channel1 $strip($3, burc)
timertransfer 3 5 transfer %channel1 COMPLETé %nick
}
on *:TEXT:*Julia*finie*:#channel2:{
var %nick1 $strip($1, burc)
var %channel2 $strip($3, burc)
timertransfer 3 5 transfer %channe2 FINIE %nick
}
on *:TEXT:*Robert*aboutit*:#channel3:{
var %nick1 $strip($1, burc)
var %channel3 $strip($3, burc)
timertransfer 3 5 transfer %channel3 ABOUTIT %nick
J'vois pas trop pourquoi les commandes ne s'execute deux fois au lieu
de trois pour ton exemple , l'alias execute juste deux commande qui
n'influent pas sur les timers.
LOLESKE88
Messages postés70Date d'inscriptiondimanche 18 décembre 2005StatutMembreDernière intervention25 février 2007 27 févr. 2006 à 01:26
Salut wims, merci de pour ton aide.
Enfin, j'aurais aimé gardé les on *text séparé pour chaque channels, garder la meme structure.
on *:TEXT:*Julien*terminé*:#channel1:{
var %nick1 $strip($1, burc)
var %channel1 $strip($3, burc)
timertransfer 3 5 transfer %channel1 COMPLETé %nick
}
on *:TEXT:*Julia*finie*:#channel2:{
var %nick1 $strip($1, burc)
var %channel2 $strip($3, burc)
timertransfer 3 5 transfer %channe2 FINIE %nick
}
On va prendre l'exemple avec deux channels.
Et on va garder l'alias mais on ve laisser plus que l'echo dedans. Comme ceci
alias transfer {
echo @TEST $timestamp $3 a $2 $1
}
Mais pour pouvoir faire des tests, on va faire des alias a la place des on*text.
Comme ceci. Et on tt simplifier au maximum, pour faire apparaitre mon probleme.
alias channel1 {
var %nick1 = Alain
var %text1 = lalala
timertransfering 3 5 transfering %nick1 %text1
}
alias channel2 {
var %nick2 = Julia
var %text2 = lilili
timertransfering 3 5 transfering %nick2 %text2
}
alias transfer {
echo @TEST $1 $2
}
En gros la j'ai tout simplifié.
Fais /channel1
Puis 7-8 secondes plus tard /channel2
On voit que ca commence comme ca
;channel1 commence son echo
@Test Alain lala
;on vient de démarrer /channel2
@Test Julia lili
@Test Julia lili
@Test Julia lili
En gros on remarque donc bien que qd on lance /channel2 ca coupe
/channel1 parce qu'il utilise le meme alias. Comment remedier a cela ?
En gardant la meme structure. Qu'est ce qui est faux dans mon code ?
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 27 févr. 2006 à 01:42
Non mais en fait j'suis fatigué ce soir :(
C'est tout a fait normal que tu n'est pas le reste des echo ( ou de nimporte quelle action ).
Cela viens du fait que tes nom de timer sont identique donc :
on text ou alias channel1 declenché
/timertransfering > il se declenche
autre on text ou channel2 declenché
/timertransfering > comme il est deja enclenché , mirc le ferme et le reouvre automatiquement
pour resoudre se probleme il suffit de renommer le nom du timer par rapport au pseudo :)
.timer $+ %nick
ou %nick est le pseudo de celui qui a declenché l'evenement
si le meme pseudo declenche deux fois les on text par contre meme
probleme donc fait gaffe en verifiant que un pseudo n'est pas acces a
une command s'il a deja un timer a son nom ce qui donne sa :
on *:TEXT:*Julia*finie*:#channel2:{
var %nick1 $strip($1, burc)
var %channel2 $strip($3, burc)
if (!$timer(transfering $+ %nick)) timertransfer 3 5 transfer %channe2 FINIE %nick
}
pense a modifier pour les 3 on text ( ou un seul si tu prend ma methode :) )