Attribution de variable pour scanner

Signaler
Messages postés
37
Date d'inscription
samedi 18 novembre 2000
Statut
Membre
Dernière intervention
25 avril 2006
-
Messages postés
37
Date d'inscription
samedi 18 novembre 2000
Statut
Membre
Dernière intervention
25 avril 2006
-
Bonjour : )
Je me permet de poster pour un truc que je comprend pas trop. Je me suis crée un scanner qui compare les pseudos d'une nicklist par rapport à certains criteres avec un raccourci en popup. Ce raccourci appel directement l'alias puis aprés dans l'alias ca attribut les variables tout ca pas de probs quand je fai comme ca ca marche impec. mais j'aimerai faire l'attribution des variables de facon externe c'est dire une commande genre !scan #salon pour que ca le scanne evidement je suis présent su le salon à scan dc en faite j'aurai besoin d'attribué mes variables en dehors de mon alias. Mais dés que j'essai systematiquement mon script freez et suis obligé d'le relancé je vous montre comment j'ai fai mon truc.
dans le menu channel j'ai :
scan:{
var %chan-a-scan $chan
var %nombre-nick $nick(%chan-a-scan,0)
scannernicklist
}
et en alias :
alias scannernicklist {
var %nombre-i 1
:debut
var %pseudonicklist = $nick(%chan-a-scan,%nombre-i)
if (%nombre-i > %nombre-nick) { goto stop }
TRAITEMENT ( avec if machin etc..)
inc %nombre-i
goto debut
:stop
}
voila quand il est comme ca il freez à tout les coups mais quand les 2 variables que j'attribu dans mon menu channel j'les mets dans l'alias ca marche impec. Or je pensai que ca revenai au meme. Si quelqu'un voyait ou est mon probleme ca m'aiderai : )
Merci d'avance : )

7 réponses

Messages postés
343
Date d'inscription
dimanche 30 novembre 2003
Statut
Membre
Dernière intervention
19 août 2006
1
C'est simple, il faut faire la distinction entre var et set



var : Va déclarer une variable c'est à dire qui va être effacée à la fin du bloc d'instruction

set : Va déclarer une varable "globale" utilisable partout du moment qu'on ne l'unset pas



prenons un exemple



alias test {

var %i = 1

while (%i < 5) {

echo 1 %i

inc %i

}

}



ici, à la fin de l'éxécution de l'alias test, la variable %i va être effacée, si on avait fait set, elle serait restée.



Donc dans ton popup, utilise set et non var



De plus, pourquoi utilises tu des labels (goto) c'est pas trés propre. Utilise plutôt une boucle while
Messages postés
37
Date d'inscription
samedi 18 novembre 2000
Statut
Membre
Dernière intervention
25 avril 2006

bin deja merci pour ta reponse je vai tester ca et pour ce qui est du while bin en faite c'est juste que quand j'ai fai ca c'est la premiere idée qui m'est venue :x lol mais en tout cas merci une nouvelle fois de tes lumieres : )
Messages postés
37
Date d'inscription
samedi 18 novembre 2000
Statut
Membre
Dernière intervention
25 avril 2006

je vien remplacé mes var par les set comme tu m'as di et apparement c'est toujours le mm prob ca freez cash :/
Messages postés
343
Date d'inscription
dimanche 30 novembre 2003
Statut
Membre
Dernière intervention
19 août 2006
1
Fait voir le code que tu as mis
Messages postés
37
Date d'inscription
samedi 18 novembre 2000
Statut
Membre
Dernière intervention
25 avril 2006

En entier ? parceque le traitement est assez lourd fin il prend de la place quoi sinon j'ai juste remplacé les var par des set
Messages postés
343
Date d'inscription
dimanche 30 novembre 2003
Statut
Membre
Dernière intervention
19 août 2006
1
Essaye avec une while pour voir :

alias scannernicklist {
var %nombre-i 1
while($nick(%chan-a-scan,%nombre-i)) {
if ($v1 == Machintruc) { .... }
inc %nombre-i
}
}
Messages postés
37
Date d'inscription
samedi 18 novembre 2000
Statut
Membre
Dernière intervention
25 avril 2006

j'ai essayé oui mais apparement c'est que via le menu channel mes set, set rien du tout j'ai matté et ca laisse ems variables vides :/