J4Gu4R
Messages postés385Date d'inscriptionsamedi 7 août 2004StatutMembreDernière intervention 3 juillet 2007
-
17 août 2004 à 14:50
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 2009
-
18 août 2004 à 23:07
voila j'apprend petit a petit les scripting, et maintenant j'voudrait passer aux variables. G chercher des tas de tuto mais j'suis toujours incapable de faire un truc par exemple :
j'voulais faire en sorte k'un echo me prévienne quand chaque nick arrive dans mon salon mais seulement jusqu'au 20ème nick après ça s'arrete.
on *:join:#: {
if $active !ischan { halt }
;vérifie ke la fenetre est bien un salon
var %join = 0
;variable initialisé à 0
:debut
inc %join
; valeur donnée
if $nick($chan,%join) == $me { goto debut }
;si nick ki rejont c moi retour au début
echo $me($chan,%join) $1-
;sinon le script continue l'echo $1-
if %join = 20 { goto debut }
;ensuite si la boucle est inférieur a 20 elle continue sinon à 20 ou + elle s'arrête
}
probleme j'ai du mélanger quelque chose en tout cas ça marche pas...
ps : je sais que ça sers a rien mais bon pour apprendre C toujours bien d'essayé des truc voila
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 17 août 2004 à 15:10
ca peut pas etre bon
décortiques ce que tu fais :
a chaque fois que quelqu'un rejoins un salon , tu remets la variable a zéro :
var %join = 0
;variable initialisé à 0
:debut
inc %join
puis tu incrémentes
de plus if $active !ischan { halt } < je pige rien a ce que tu fais ; tu cherches a savoir si la fenêtre ou tu es , l'active est un salon ? :(
sincèrement je pige pas trop ton code je t'en fais un que tu pourras ptet adapter :
On *:Join:#:{
;tu mets la var globale a 0 si c'est toi qui rejoint
if ($nick == $me) { set %join [ $+ ( $chan ] ] 0 }
if (%join [ $+ ( $chan ] ] <= 20) { echo $chan : $nick a rejoint $chan }
}
j'ai mis une variable par salon je pense que c'est mieux , les crochets sont ptet pas très compréhensibles j'avoue ...
tu ne peux pas te servir de "var %x gnagna" ici car ce genre de variables , dites locales , sont effacées a la fin du "on join" et donc ca marcherait pas pour deux plusieurs nicks de suite ...
en espérant t'avoir éclairé un peu
Pada
;ensuite tu incrémentes si ce n'est pas toi
else { inc %join [ $+ ( $chan ] ] }
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 17 août 2004 à 15:11
RAH j'ai poliotté : voici le code sans polio :
On *:Join:#:{
;tu mets la var globale a 0 si c'est toi qui rejoint
if ($nick == $me) { set %join [ $+ ( $chan ] ] 0 }
;ensuite tu incrémentes si ce n'est pas toi
else { inc %join [ $+ ( $chan ] ] }
if (%join [ $+ ( $chan ] ] <= 20) { echo $chan : $nick a rejoint $chan }
}
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 17 août 2004 à 15:13
bon allé je désespère pas ...
On *:Join:#:{
;tu mets la var globale a 0 si c'est toi qui rejoint
if ($nick == $me) { set %join [ $+ [ $chan ] ] 0 }
;ensuite tu incrémentes si ce n'est pas toi
else { inc %join [ $+ [ $chan ] ] }
if (%join [ $+ [ $chan ] ] <= 20) { echo $chan : $nick a rejoint $chan }
}
J4Gu4R
Messages postés385Date d'inscriptionsamedi 7 août 2004StatutMembreDernière intervention 3 juillet 2007 17 août 2004 à 16:50
mdrrrrrrr t'a pas bien dormi cette nuit??
ok dac' j'avais cru comprendre que les variables locales était effacée une fois le script terminé donc j'm'étais dit dans mon code après 20 nick, bon ok G pigé maintenant.
et en fait ske tu pigeais tout a l'heure c'est ke j'essayais de faire comprendre au script ke sur deux salon le code ne ferai pas 10 personnes sur un et 10 sur l'autre mais bien 20 nick sur chacun des deux :-)
et puis t'inkiète pas continue de scripté comment on ferai après si les bons arrete hein?? lol
ps : si tu connait un bon tuto j'suis preneur parce ke pour l'instant j'pige pas trop ceux ke j'ai vu ou trop incomplet... merci a toi PaDa pou ton aide précieuse
-J4Gu4R-
Vous n’avez pas trouvé la réponse que vous recherchez ?
J4Gu4R
Messages postés385Date d'inscriptionsamedi 7 août 2004StatutMembreDernière intervention 3 juillet 2007 17 août 2004 à 17:33
Genre :
#messages4 off
On *:Join:#:{
if ($nick == $me) { set %join [ $+ [ $chan ] ] 0 }
else { inc %join [ $+ [ $chan ] ] }
if (%join [ $+ [ $chan ] ] <= 20) { echo -s 4 $chan : $nick a rejoint $chan | ( goto fin ) }
:fin
}
#messages4 end
marche pas en plus si j'ai le salon J4Gu4R et le salon J4Gu4R94 ça marche ke pour le salon avec le chiffre mais bon C pas trop ça le probleme lol, Ctai juste un coup d'essai comme ça
j'sais meme pas pourquoi j'poste le message...
j'doit etre fatigué aussi :-)
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 17 août 2004 à 17:40
Evite les goto dans la mesure du possible . Ce n'est que mon avis mais ca permet pas de bien voir ce qu'on fait
Ensuite tu n'as pas de boucle : une boucle c'est dans un remote ou un évènement si tu faisais plein de fois la même chose ...
Exemple j'affiche les nombres de 1 a 10:
Alias unadix {
var %i 1
while (%i <= 10) {
echo -a >> %i !
inc %i
}
echo -a >> Fini !
}
Ca c'est une boucle .
mon truc n'arrête pas d'incrémenter %join#salon , il arrête de faire l'echo .
tu peux faire ca pour que ca arrête aussi d'incrémenter :
On *:Join:#:{
;tu mets la var globale a 0 si c'est toi qui rejoint
if ($nick == $me) { set %join [ $+ [ $chan ] ] 0 }
;ensuite tu incrémentes si ce n'est pas toi
elseif (%join [ $+ [ $chan ] ] <= 20) {
inc %join [ $+ [ $chan ] ]
echo $chan : $nick a rejoint $chan
}
}
cs_tiot
Messages postés83Date d'inscriptionsamedi 9 novembre 2002StatutMembreDernière intervention18 août 2004 18 août 2004 à 22:34
"Evite les goto dans la mesure du possible ."
Il ne faut pas les éviter, mais plutôt les bannir ! Cela rend les sources complètements illisible ! Et c'est contraire à la notion de langage struturé !
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 18 août 2004 à 23:07
Lol . ya eu un long débat la dessus sur scriptsdb je vais pas m'étendre et je compte pas relancer ce genre de polémique , mais bon c'est surtout paske toua humain tu trouves pas ca joli . Une fois compilés les scripts donnent parfois (souvent?)strictement la même chose avec un goto ou un while et ya beaucoup d'autres choses complexes et intéressantes sur lesquelles se prendre la tête plutot que ce genre de règle stériles que s'infligent certains soit disant puristes...
Un code propre ne souffrira pas d'un goto au milieu s'il est de très bonne qualité , et ce quelque soit le langage...
Je vais cependant dans ton sens par habitude et pour une optimisation supposée et une lisibilité accrue dans la plupart des cas mais bon prends pas des boutons , regarde , t'en perds déja ton francais sur les deux dernières lignes loul
Pada