While Loops ?

Résolu
LOLESKE88 Messages postés 70 Date d'inscription dimanche 18 décembre 2005 Statut Membre Dernière intervention 25 février 2007 - 16 janv. 2006 à 14:49
LOLESKE88 Messages postés 70 Date d'inscription dimanche 18 décembre 2005 Statut Membre Dernière intervention 25 février 2007 - 17 janv. 2006 à 08:55
Bonjour,

Tout d'abord, avant de poser ma question, je voudrais remercier tous les membres du forum qui m'aide à résoudre mes problèmes :)



Aujourd'hui, j'ai une autre question :



J'ai un script qui vérifie quelque chose :



on *:TEXT:*!new*serveur*:#maison:{

/var %serveur $strip($5, burc)

if ( $xxx1(%serveur) == 1 ) {

echo @Autotrade $timestamp Ca marche

.......

}

}



on *:TEXT:*!new*serveur*:#Pickup_B:{


/var %serveur $strip($5, burc)


if ( $xxx2(%serveur) == 1 ) {


echo @Autotrade $timestamp Ca marche


}


}



alias xxx1 {

if (-A1- isin $1 || -A3- isin $1 || -A4- isin $1 || -4A- isin $1 || -3A- isin $1 || -2A- isin $1) { return 0 }

if (-B1- isin $1 || -B2- isin $1 || -B3- isin $1 || -B4- isin $1
|| -4B- isin $1 || -3B- isin $1 || -2B- isin $1) { return 0 }


.....

}



alias xxx2 {


if (-A1- isin $1 || -A2- isin $1 || -A3- isin $1
|| -A4- isin $1 || -4A- isin $1 || -3A- isin $1 || -2A- isin $1) {
return 0 }

if (-B1- isin $1 || -B2- isin $1 || -B4- isin $1 || -4B- isin $1 || -3B- isin $1 || -2B- isin $1) { return 0 }



.....


}



Donc en fait, je vous explique, j'ai plusieurs channels IRC et dessus
j'ai des serveurs IRC qui listent des IP régulièrement quand une partie
est finie :

Du genre :



on #maison : Pickup_B says : !new serveur added here - IP_Du_Serveur

ou encore

on #Pickup_B : Pickup_B says : !new serveur added here - IP_Du_Serveur



En fait, pour certains channels, si dans l'IP du serveur ils y a A1 ou A2 ou A3 ... ben il faut tout arreter

C'est ce que je fais avec ca : if ( $xxx1(%serveur) == 1 ) {

ou encore ca :
if ( $xxx2(%serveur) == 1 ) {

Mais le truc, c'est que ca me fait énormément de ligne, a chaque fois de créer un alias Filtre pour chaque serveur.

Donc je voudrais créer un alias avec tous les filtres dedans, et que
pour la vérification a chaque fois ( ex : if ( $xxx2(%serveur) == 1 ) {
) et ben j'utilise tjrs le mm alias, contenant donc tous les filtres et
que je disent, meme si -A1- se trouve dans %serveur, continue. Parce
que la j'ai vraiment beaucoup de lignes.

j'ai etendu dire que c'était possible, avec While Loops a ce qu'on m'a dis, mais je ne vois pas trop comment ca marche.

Genre faire

on *:TEXT:*!new*serveur*:#maison:{


/var %serveur $strip($5, burc)


if ( $xxx(%serveur) == 1 ) {


echo @Autotrade $timestamp Ca marche


}


}





on *:TEXT:*!new*serveur*:#Pickup_B:{



/var %serveur $strip($5, burc)



if ( $xxx(%serveur) == 1 ) {



echo @Autotrade $timestamp Ca marche



}



}





alias xxx{


ici tous les filtres ....... ex

if (-A1- isin $1 || -A2- isin $1 || -A3- isin $1 || -A4- isin $1
|| -4A- isin $1 || -3A- isin $1 || -2A- isin $1) { return 0 }

if (-B1- isin $1 || -B2- isin $1 || -B3- isin $1 || -B4- isin $1
|| -4B- isin $1 || -3B- isin $1 || -2B- isin $1) { return 0 }



.....


}



Voila, j'éspère que vous avez compris ce que je voulais dire,

Sur ce, bonne journée

Merci d'avance pour votre aide,

Cordialement

4 réponses

cs_tofu Messages postés 1726 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 13 juin 2009 1
16 janv. 2006 à 15:34
je suis pas sur d'avoir compris, pour tout ce qui est multiserveur il faut utiliser $scon/$scid et les commandes /scon /scid avec une boucle pour "scanner" chaque serveur où t'es connecté..

donc ça donne un truc style:

var %nbserveur = $scon(0)
// $scon(0) retourne le nombre de serveurs où t'es connecté

while %nbserveur { // on boucle sur le nombre de serveurs
/scon %nbserveur // on met le focus sur le serveur n° "%nbserveur"
/action à faire
/action à faire
etc...
dec %nbserveur //on décrémente %nbserveur pour qu'à la prochaine itération de la boucle, on mette le focus sur un autre serveur où on est connecté.. et lorsque %nbserveur arrive à zero la boucle s'arrête
}


et sinon pour ton alias xxx, perso j'ai fais ça:
alias xxx return $iif($regex($1,^([-][1-4-A-Z]{2}[-])),0,1)

ça retourne 0 pour tout ce qui est de la forme:
-CN- ou -NC-

avec C de A à Z et N de 1 à 4..

en espérant avoir comprit..
3
LOLESKE88 Messages postés 70 Date d'inscription dimanche 18 décembre 2005 Statut Membre Dernière intervention 25 février 2007
16 janv. 2006 à 18:31
Bonsoir,

Tout d'abord merci pour votre réponse.

Mais je crois qu'on ne s'est pas bien compris.

En ce qui concerne les serveurs ce n'ets aps ca que je voulais dire. je
parle d'un serveur de jeux qui inscris des messages sur différents
channels.

Donc je pense que dans ce cas, que els commandes /scon /scid ne sont pas utiles.

je veux juste appliquer un parametre a un alias :

En loccurence l'alias " xxx ".

Mais en ce qui concerne le regex, il peut y avoir tout types de groupes
de mots a scanner pas uniquement -A1- ou -A2- ... je les avais mis a
titre d'exemple.

je pense que l'alias de base, XXX doit rester le meme non ?

Et apliquer un parametres qui fasses en sorte, que meme si un groupe de
mots se trouve dans le nom du serveur, mais également dans l'alias XXX,
le script ne { return pas 0 } .

J'éspère que vous m'avez compris.



on *:TEXT:*!new*serveur*:#Pickup_B:{

/var %serveur $strip($5, burc)

if ( $xxx(%serveur) == 1 ) { ; dans cette ligne dire
par exemple que meme si -A1- se trouve dans %serveur continuer.

echo @blabla $timestamp Ca marche

}

}



alias xxx{

ici tous les filtres ....... ex

if (-A1- isin $1 || -A2- isin $1 || -A3- isin $1 || -A4- isin $1 ||
-4A- isin $1 || -3A- isin $1 || -2A- isin $1) { return 0 }
if
(-B1- isin $1 || -B2- isin $1 || -B3- isin $1 || -B4- isin $1 || -4B-
isin $1 || -3B- isin $1 || -2B- isin $1) { return 0 }


.....

}



Merci d'avance pour votre aide.

Cordialement.
3
fjxokt Messages postés 840 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 25 février 2009 1
16 janv. 2006 à 18:42
tu n'aurais pas un exemple concret d'ip de serveur qui contiendrait des paramètres A1 et compagnie ?

sinon, même si le code de l'alias xxx est très moche, je ne vois pas ou est le pb
ton alias retourne 0 si un de tes 'mots' se trouve à l'interieur de l'ip $1 (et je ne vois pas pourquoi créer deux alias xxx)
alias xxx {
if (blibli isin $1 etc...) return 0
else return 1
}
3
LOLESKE88 Messages postés 70 Date d'inscription dimanche 18 décembre 2005 Statut Membre Dernière intervention 25 février 2007
17 janv. 2006 à 08:55
Bonjour, en fait je mets dans mon exemple d'alias -A1- -A2- -A3- ... mais en réalité ceux sont des mots genre

blabla.cstrikes.net ou encore cs1.counter-strike.com.ar . En gros tout
types de mots/partie de mots très différent les uns des autres. C'est
pourquoi je fais mon alias de cette facon. Je mettais -A1- -A2- à titre
d'exemple.



Et je crée deux alias car sur certains channels, telle ou telle IP est
acceptée alors que sur un autre channel elle ne l'est pas.

Les différents alias servent de filtres pour chaque channels.





on *:TEXT:*!new*serveur*:#Pickup_A:{

/var %serveur $strip($5, burc)

if ( $xxx_a(%serveur) == 1 ) {

...

}

alias xxx_a {

if ( cs1.counter-strike.com.ar isin $1 ||
blabla.cstrikes.net isisn $1 ................. ) { return 0 }

}



on *:TEXT:*!new*serveur*:#Pickup_B:{


/var %serveur $strip($5, burc)


if ( $xxx_b(%serveur) == 1 ) {


...


}






alias xxx_b {


if ( de_dust.counter-strike.com.ar isin $1 || cs_inferno.cstrikes.net isisn $1 || cs1.counter-strike.com.ar isin $1 ||
blabla.cstrikes.net isisn $1 ................. ) { return 0 }

}



Voici comment je procède pour le moment, j'ai un alias pour chaque serveur.

Je voudrais faire un alias qui contiendrait tous les filtres. ( tous les if .... isin $1 ) ....

ex :

alias xxx {

if ( de_dust.counter-strike.com.ar isin $1 || cs_inferno.cstrikes.net isisn $1 || cs1.counter-strike.com.ar isin $1 ||
blabla.cstrikes.net isisn $1 || aaa.cstrikes.net isin $1 || bbb.strikes.net................. ) { return 0 }



et apres selon mes serveurs, au moment ou je dirais ca :


if ( $xxx(%serveur) == 1 ) {

Je voudrias rajouter, un truc qui ferais en sorte que mm si "
aaa.cstrikes.net isin $1 " isin %serveur, continue et pas return 0.



J'éspère que vous m'aurez compris.

Bonne journée.

Cordialement
3
Rejoignez-nous