Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : timers [ Archives / Scripting ] (LOLESKE88)

lundi 27 février 2006 à 00:12:47 | timers

LOLESKE88

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
}

alias transfer {
  /dll nomt_urc.dll nomt_urc( 0 , ' $+ $2 $+ ', ', ' $+ $1 $+ ', ' $+ $3 $+ ', ', ' $+ $1 $+ ','', '', '', 0, 0, , 0, 0);
  echo @TEST $timestamp $3 a $2 $1
}

Imaginons dans le cas sur #channel 1,

l'echo me dirait : Julien a complété xxxxxxxxx
L'echo me permet de vérifier si toutes les choses se passent bien, et me permet de voir si les parametres ont bien été envoyés a la .dll

Le probleme, c'est que j'ai remarqué que j'utilise des timer. A chaque fois, la manip est faite 3 fois, car timertransfer 3 5 .....
Imaginons 2 choses se terminent a 5 secodnes d'intervales sur #channel1 et #channel2

Channel 1 va commencer a s'executer a sa tache

ainsi

Seconde3 : echo Julien a Complété xxxxx
Seconde8 : echo Julien a Complété xxxxx
Seconde8 (vu que %channel2 a terminé 5 secondes plus tard, et que le timer commence 3 secodnes apres l'execution 3 + 5 = 8 ) Julia a finie xxxxx
Seconde13 : Julia a finie xxxxx
Seconde18 : Julia a finie xxxxx

Ainsi, on remarque que #channel1 n'a pas pu s'éxecuter 3 fois parce que #channel2 l'a coupé.
En gros, mon probleme, comment faire, ( en gardant mon code pareil, en faisaitn appel a un second alias ), pour que les channel ne se coupent pas.

Le probleme doit se situer au moment ou j'éxecute un alias

        timertransfer 3 5 transfer %channe2 FINIE %nick

Merci d'avance pour votre aide.

Cordialement.







lundi 27 février 2006 à 00:57:46 | Re : timers

wims

Réponse acceptée !
Déja reunis les on text et optimise un peu :

on *:TEXT:*:#channel1,#channel2,#channel3:{
if ($istok(Julien terminé.Julia finie.Robert aboutit,$1-2,46)) {
      var %nick1 = $strip($1) ,%channel1 = $strip($3)
      .timertransfer 3 5 transfer %channel1 $replace($2,terminé,COMPLETÉ,finie,FINIE,aboutit,ABOUTIT) %nick
  }
}
J'suis pas sur que la comparaison ( $istok ) sois celle que tu veux  mais il me semble que c'est ca.
Que vaux $3 ?

Essaye un echo au debut de l'alias au cas ou la command avec la dll marche pas

alias transfer {
echo @Test debut $timestamp $3 a $2 $1
  /dll nomt_urc.dll nomt_urc( 0 , ' $+ $2 $+ ', ', ' $+ $1 $+ ', ' $+ $3 $+ ', ', ' $+ $1 $+ ','', '', '', 0, 0, , 0, 0);
  echo @TEST fin $timestamp $3 a $2 $1
}

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.


lundi 27 février 2006 à 01:26:35 | Re : timers

LOLESKE88

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 ?

Merci d'avance pour votre aide.








lundi 27 février 2006 à 01:42:12 | Re : timers

wims

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 :) )




jeudi 2 mars 2006 à 19:53:14 | Re : timers

Mc_AbBeR

Et au fait, j'en ai marre que tout le monde pose cette question "timers"... Regardez sur l'help ou sur les archives du forum !

mercredi 21 février 2007 à 00:00:59 | Re : timers

uaip

nn mais ya qu'un event text pour chaque remote, si t'en veux pr chaque chan, tu fais plusieurs remotes, mais c'est inutile, mets les chans en condit



Cette discussion est classé dans : probleme, var, strip, burc, finie


Répondre à ce message

Sujets en rapport avec ce message

probleme de variable [ par Virtuallllll ] depuis aujourd'hui plus aucun script qui utilise des variables ne marche ... a chaque fois ds le status il me met "%cmd Unknown command"et qd j'essaye probleme de if et de fichier texte [ par jeremy6381 ] bonjour tout le monde, comme le sujet l'indique, j'ai un ptit probleme avec les if...En gros, ma variable ce repercute de cette facon:  var %var_tmp = Auto ===> Unknown Command [ par Kaori_87 ] Kikoo a tous !   Voilou, je suis une petite nouvelle dans le monde d'IRC...Je suis sur un MAC OS X 10.3.9 Powerbook G4 et j'utilise X-Chat Aqua 0.15.2 Bots [ par aln31 ] voila j'ai un petit probleme... j'ai cree un chat sur le web par Fly-irc, mais le probleme est que 1) Je ne suis pas OP, donc on m'a dt qu'il fallait probleme remplacement variable auto [ par lebaronrouge ] hello :)Je fais un sound manager pour mon script et je bute sur un petit problème.Dans celui-ci je propose un bouton qui correspond à : set %sound1 $$ probleme avec "on *:TEXT" [ par mr_orus1 ] hello, voici un alias et une commande on text,  ..Si quelqu'un a une idée.alias rep {  /msg $active blabla est %oppr  /unset %oppr ici, si je tape /re Probleme de Remote Hightlights persos [ par Benjamin37 ] Bonjour à tous , Voici  la remote : On *:text:*:#:{  if Ben isin $strip($1-){ echo -at 4[HIGHLIGHT]  1sur 4# 1: $+(‹,$nick,›) $1- | splay hig probleme de if :/ [ par nokia3200 ] bonjour j'ai fait un code d'highlight il marche bien et tout mais sa me met sans cesse sa dans le statut:* /if: invalid format (line 12, script1.mrc)l probleme avec un mechant IF [ par hisoka2501 ] voila j'explique le probleme:if ($calc($ctime - $gettok($hget(%table2,$gettok(%item,1,64)),8,32)) ca c ma vilaine li RFC probleme [ par yohan49 ] Salut les gars , j'ai fouillé dens les RFC, je ne trouve pas la description de tous les raws numerics comme par exemple le 520 !!!!Qui pourrait me dir


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,265 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.