ESPION EN ECHO ET SUR SALON HAVE FUN

devorZ Messages postés 46 Date d'inscription dimanche 27 juillet 2008 Statut Membre Dernière intervention 21 février 2009 - 27 juil. 2008 à 07:21
 opignion - 26 juin 2016 à 10:45
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/47421-espion-en-echo-et-sur-salon-have-fun

Menu menubar {
mouchard:mouchard
}
alias mouchard dialog -m sentc sentc

dialog sentc {
title "Mouchard Par DhCp"
size -1 -1 580 360
text "Veillez mettre les pseudos à espionner dans les cases ci-dessous ." ,1,10 10 450 40,style(left)
box "Please fill in your sentences: ",50,10 53 530 275,style
text "Sentence 1:",2,20 70 65 20,style(left)
combo 3,85 70 445 20,style(edit)
text "Sentence 2:",4,20 95 65 20,style(left)
combo 5,85 95 445 20,style(edit)
text "Sentence 3:",6,20 120 65 20,style(left)
combo 7,85 120 445 20,style(edit)
text "Sentence 4:",8,20 145 65 20,style(left)
combo 9,85 145 445 20,style(edit)
text "Sentence 5:",10,20 170 65 20,style(left)
combo 11,85 170 445 20,style(edit)
text "Sentence 6:",12,20 195 65 20,style(left)
combo 13,85 195 445 20,style(edit)
text "Sentence 7:",14,20 220 65 20,style(left)
combo 15,85 220 445 20,style(edit)
text "Sentence 8:",16,20 245 65 20,style(left)
combo 17,85 245 445 20,style(edit)
text "Sentence 9:",18,20 270 65 20,style(left)
combo 19,85 270 445 20,style(edit)
text "Sentence 10:",20,20 295 65 20,style(left)
combo 21,85 295 445 20,style(edit)
button "Clear all",82,310 335 70 20,style(edit)
button "Save",80,390 335 70 20,style(ok)
button "Cancel",81,470 335 70 20,style(cancel)
}
on *:dialog:sentc:init:*:{
if (%spy1 == NotSet) did -ci sentc 3 1 Tapez le pseudo concerné
if (%spy2 == NotSet) did -ci sentc 5 1 Tapez le pseudo concerné
if (%spy3 == NotSet) did -ci sentc 7 1 Tapez le pseudo concerné
if (%spy4 == NotSet) did -ci sentc 9 1 Tapez le pseudo concerné
if (%spy5 == NotSet) did -ci sentc 11 1 Tapez le pseudo concerné
if (%spy6 == NotSet) did -ci sentc 13 1 Tapez le pseudo concerné
if (%spy7 == NotSet) did -ci sentc 15 1 Tapez le pseudo concerné
if (%spy8 == NotSet) did -ci sentc 17 1 Tapez le pseudo concerné
if (%spy9 == NotSet) did -ci sentc 19 1 Tapez le pseudo concerné
if (%spy10 == NotSet) did -ci sentc 21 1 Tapez le pseudo concerné
if (%spy1 != NotSet) did -ci sentc 3 1 %spy1
if (%spy2 != NotSet) did -ci sentc 5 1 %spy2
if (%spy3 != NotSet) did -ci sentc 7 1 %spy3
if (%spy4 != NotSet) did -ci sentc 9 1 %spy4
if (%spy5 != NotSet) did -ci sentc 11 1 %spy5
if (%spy6 != NotSet) did -ci sentc 13 1 %spy6
if (%spy7 != NotSet) did -ci sentc 15 1 %spy7
if (%spy8 != NotSet) did -ci sentc 17 1 %spy8
if (%spy9 != NotSet) did -ci sentc 19 1 %spy9
if (%spy10 != NotSet) did -ci sentc 21 1 %spy10
did -t sentc 80 1
}
on *:dialog:sentc:sclick:80:{
if ($did(sentc,3).text != Tapez le pseudo concerné) set %spy1 $did(sentc,3).text
if ($did(sentc,5).text != Tapez le pseudo concerné) set %spy2 $did(sentc,5).text
if ($did(sentc,7).text != Tapez le pseudo concerné) set %spy3 $did(sentc,7).text
if ($did(sentc,9).text != Tapez le pseudo concerné) set %spy4 $did(sentc,9).text
if ($did(sentc,11).text != Tapez le pseudo concerné) set %spy5 $did(sentc,11).text
if ($did(sentc,13).text != Tapez le pseudo concerné) set %spy6 $did(sentc,13).text
if ($did(sentc,15).text != Tapez le pseudo concerné) set %spy7 $did(sentc,15).text
if ($did(sentc,17).text != Tapez le pseudo concerné) set %spy8 $did(sentc,17).text
if ($did(sentc,19).text != Tapez le pseudo concerné) set %spy9 $did(sentc,19).text
if ($did(sentc,20).text != Tapez le pseudo concerné) set %spy10 $did(sentc,21).text
if ($did(sentc,3).text == Tapez le pseudo concerné) set %spy1 NotSet
if ($did(sentc,5).text == Tapez le pseudo concerné) set %spy2 NotSet
if ($did(sentc,7).text == Tapez le pseudo concerné) set %spy3 NotSet
if ($did(sentc,9).text == Tapez le pseudo concerné) set %spy4 NotSet
if ($did(sentc,11).text == Tapez le pseudo concerné) set %spy5 NotSet
if ($did(sentc,13).text == Tapez le pseudo concerné) set %spy6 NotSet
if ($did(sentc,15).text == Tapez le pseudo concerné) set %spy7 NotSet
if ($did(sentc,17).text == Tapez le pseudo concerné) set %spy8 NotSet
if ($did(sentc,19).text == Tapez le pseudo concerné) set %spy9 NotSet
if ($did(sentc,21).text == Tapez le pseudo concerné) set %spy10 NotSet
}
on *:dialog:sentc:sclick:79:userinfo
on *:dialog:sentc:sclick:82:{
set %spy1 NotSet
set %spy2 NotSet
set %spy3 NotSet
set %spy4 NotSet
set %spy5 NotSet
set %spy6 NotSet
set %spy7 NotSet
set %spy8 NotSet
set %spy9 NotSet
set %spy10 NotSet
did -ci sentc 3 1 Tapez le pseudo concerné
did -ci sentc 5 1 Tapez le pseudo concerné
did -ci sentc 7 1 Tapez le pseudo concerné
did -ci sentc 9 1 Tapez le pseudo concerné
did -ci sentc 11 1 Tapez le pseudo concerné
did -ci sentc 13 1 Tapez le pseudo concerné
did -ci sentc 15 1 Tapez le pseudo concerné
did -ci sentc 17 1 Tapez le pseudo concerné
did -ci sentc 19 1 Tapez le pseudo concerné
did -ci sentc 21 1 Tapez le pseudo concerné
}

on *:text:*:#:{
if ( %spy1 isin $nick) || ( %spy2 isin $nick) || ( %spy3 isin $nick) || ( %spy4 isin $nick) || ( %spy5 isin $nick) || ( %spy6 isin $nick) || ( %spy7 isin $nick) || ( %spy8 isin $nick) || ( %spy9 isin $nick) || ( %spy10 isin $nick) {
if ($window(@Mouchard)) {
aline -ph @Mouchard [ $time ] 11 $nick a dit sur 8 $chan  $1-
}
elseif (!$window(@Mouchard)) {
window -mk0ne @Mouchard
aline -ph 4 @Mouchard [ $time ] 11 $nick a dit sur 8 $chan  $1-
}
}
}



peut être sa ? mouchard: jusqua 10 nick a votre guise d en métre plus
loulouzou Messages postés 58 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 7 mars 2009
7 mars 2009 à 11:21
BOULET7612,
slt, ta question ma intéroger, vut que j'ai eu la meme idée, genre éspioner une seul persone a sa connection a un serveur ou une conversation entre2 usager.. sa pourait mieux porter son nom de espion,
++
je notrai si amélioration ..
boulet7612 Messages postés 8 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 6 octobre 2008
6 oct. 2008 à 14:06
pourquoi ne pas pousser le vice un peut plus loin.style le paramettrer pour espionner ce que dis une seule personne.ou pouvoir filtrer les discution style enlever le spam ou des chose du genre la ca ferait une remote qui peut avoir du style
djul51 Messages postés 44 Date d'inscription lundi 24 septembre 2007 Statut Membre Dernière intervention 17 avril 2009
2 août 2008 à 06:39
Par contre j'ai beau chercher, je ne vois pas l'intérêt de se balancer les données en echo ...
Et juste pour parler du code, moi j'avais codé la possibilité d'afficher ou non les événements, ce qui permettait d'anticiper (et donc éviter) certains excess flood, genre dans les heures de 'pointe', tout les événements étaient sur OFF, et seulement le on text fonctionnait... te voila une idée pour update ton code devorz ^^ (Ne m'oblige pas à dépoussiérer le mien pour le poster ici)
Autre chose aussi en ce qui concerne les codes couleur, évite les ctrl+k 1, pense à ceux qui comme moi ont un fond noir ...ctrl+o fait l'affaire puisqu'il fait du blanc sur fond noir et du noir sur fond blanc.
Pourquoi aussi ne pas inclure des commandes inputs permettant aux autres personnes profitant du spy de pouvoir effectuer différents 'réglages' du bot en ton absence ?
Et le must, c'est une boucle qui te permet te récupérer la liste des users @ et des voices (si tu ajoutes les regular ca va ptet flooder un poil)
Tu as maintenant presque toutes les clés en main pour faire une copie du mien ;]

djul.

Ps: désolé pour les deux mails de plus UAIP, mais je pense avoir fourni deux commentaires constructifs pour le code et non avoir alimenté des débats qui ont plus leur place sur un salon irc par exemple plutôt que sur ce genre de forum. :]
djul51 Messages postés 44 Date d'inscription lundi 24 septembre 2007 Statut Membre Dernière intervention 17 avril 2009
2 août 2008 à 06:23
Même pas besoin de 30 personnes, il suffit d'une dizaine de lignes en autant de secondes pour excess flood... peut être qu'un bon réglage de l' "antiflood" de base du mIRC peut résoudre le soucis.
En ce qui concerne l'intérêt du code, perso j'ai codé ce genre de chose aussi à l'époque ou on était une bonne dizaine ban à vue d'un salon, plutôt que de se connecter à 10 chacun derrière un proxy, un seul y va et fait partager les autres sur le salon #farai au lieu de #rastafarai (ceci n'est qu'un exemple de salon au hasard :D). D'ailleurs faudrait trouver un salon pour renvoyer ce qui se passe sur #aide vu que le taux de ban à vue y est très fort actuellement..sacré serveur Orange n'est ce pas..
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
29 juil. 2008 à 18:25
Euh personnellement ce post ne m'a rien apporté d'utile étant donné que tous mes commentaires étaient des explications, et non des questions :)

Allez hop, nous ne dirons plus rien avant la prochaine modification du code...
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
29 juil. 2008 à 18:11
ça t'a été quand meme utile l'ami ;)
mais bof je pense qu'il n'y a plus rien a dire sur ce code
a lui de changer ce qu'on a donné comme idée s'il le veu bien
:)
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
29 juil. 2008 à 18:06
Bon on s'en fout. Perso j'en ai ma claque, j'ai reçu plus de 110 mails en quelques jours à cause des 3 dernières sources.
Si vous voulez faire un débat, faites le ailleurs, ça devient lourd là... (même en décochant l'option, je reçois encore les mails).
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
29 juil. 2008 à 17:56
"lors d'un away ou quand quelqu'un se fait ban pour aider l'autre"

ça lui sert a quoi exactement dans ce cas?? explique moi stp
devorZ Messages postés 46 Date d'inscription dimanche 27 juillet 2008 Statut Membre Dernière intervention 21 février 2009 1
29 juil. 2008 à 17:36
non sa peut toujours servir lors d'un away ou quand quelqu'un se fait ban pour aider l'autre tu peut trouver plein d'utilité puis sur le site j'en est pas vu a part un truck qui date de jérusalem..
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
29 juil. 2008 à 17:24
ah donc tu poste des choses qui servait a une epoque :/ ok
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
29 juil. 2008 à 17:14
lol la guerre sur IRC... on aura tout vu.
devorZ Messages postés 46 Date d'inscription dimanche 27 juillet 2008 Statut Membre Dernière intervention 21 février 2009 1
29 juil. 2008 à 17:10
worldDMT "d'ailleur pk espionné un chan t'a cas etre present c'est encore plus simple :p " perso a une epoque sur orange on faisait la guerre entre team et le spy sert pr les autre a voir exemple un pote a toi te dit a jsuis ban jveut trop voir se que sa raconte ba voila mais dans ton contexte c'est vrai ce n'est pas vraiment utile..
bakhcha Messages postés 11 Date d'inscription dimanche 26 février 2006 Statut Membre Dernière intervention 26 mars 2010
29 juil. 2008 à 16:39
merci WORLDDMT j'aimerai bien lire ces conversation et porquoi pas débuté en scripting mais j'ai le niveau -5/80 j'espère que vous m'acceptez parmi vous pour voir ce que vous discuter et apprendre en meme temps et j'aimerai bien que vous me guider vers les chemins rapide et sur pour apprendre efficacement ce script
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
29 juil. 2008 à 15:45
peu etre il a essayé en echo pas en msg #
d'ailleur pk espionné un chan t'a cas etre present c'est encore plus simple :p
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
29 juil. 2008 à 15:40
Non mais si si, il excess flood...
Sur un salon de 30 personnes, les 30 personnes font un netsplit, elles rejoignent le salon en même temps, toi tu /msg 30 fois en 1 seconde.Et si tu me dis non, je prend le même exemple avec 300 personnes.C'est facile de dire d'avoir testé sur un salon de 800 personne si il n'y a pas de chose particulière.
cs_ISoKa Messages postés 435 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 17 octobre 2008
29 juil. 2008 à 15:06
ha oué ca excess flood pas ? bin c'est super alors ça m'étonne bcp mais bon ma foi pk pas. mais avec un chan de 400 personnes qui parlent ça me semble quand même étonnant.
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
29 juil. 2008 à 09:49
<hors-sujet> Ne confonds pas 'programmeur' et 'scripteur' </hors-sujet>
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
29 juil. 2008 à 09:36
cool j'ai déjà un fan c'est un bon debut les gar :D
merci bakhcha c'est gentil moi aussi je debute en scripting faut juste avoir envi d'apprendre et tu sera plus fort que moi :)
bakhcha Messages postés 11 Date d'inscription dimanche 26 février 2006 Statut Membre Dernière intervention 26 mars 2010
29 juil. 2008 à 04:44
je m'excuse DEVORZ je vise rien de ce que tu penses , seulement je veux remercie WORLDMT de ma façon peut etre j'ai pas bien choisi les mots mais je l'jure j'ai pas d'arrière pensées je te remercie amicalement pour ton code c'est puissant
enfin je m'excuse .................merci et je vous souhaite la réussite programmeur DEVORZ
devorZ Messages postés 46 Date d'inscription dimanche 27 juillet 2008 Statut Membre Dernière intervention 21 février 2009 1
29 juil. 2008 à 04:18
si j'ai posté cette source pour avoir des avis de ta vie on s'en fou tu crois pas ..
bakhcha Messages postés 11 Date d'inscription dimanche 26 février 2006 Statut Membre Dernière intervention 26 mars 2010
29 juil. 2008 à 01:12
quand les grands parlent les petits écoutent
vraiment j'ai rien à dire avec monsieur WORLDMT "tu es fort fort fort je suis débutant en vb6 mais j'aime tous les langages de programmation
devorZ Messages postés 46 Date d'inscription dimanche 27 juillet 2008 Statut Membre Dernière intervention 21 février 2009 1
28 juil. 2008 à 23:42
Hello, eu isoka j'ai testé sur des gros channel, perso j'ai pas excess flood lorsque j'ai testé sa sur quakenet la ou on excess flood vite enfin perso j'ai pas excess ..
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
28 juil. 2008 à 22:40
Oui, mais tu ne m'apprend pas le mot lol :], dailleurs avant, c'étais possible nativement en mirc, maintenant c'est seulement possible en utilisant deux alias :)
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
28 juil. 2008 à 20:14
Alors wims dans ton cas ne l'utilise pas ^^.
Je n'ai jamais dit que le return était très utilisé en mIRC et chaque fois je précise que je ne sais pas exactement comment fonctionne le mIRC mais je base sur mes expériences (plusieurs langages).

Sinon à moi de t'apprendre un petit mot de vocabulaire: une routine qui s'auto-appelle s'appelle une fonction récursive (j'ai bon, hein ?) :p
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
28 juil. 2008 à 19:02
Moi j'ai pas testé le code j'ai juste parlé de codage :p
j'ai meme pas vus l'interret de faire un espionnage sur un autre chan
c'est pas mon gou peut etre ça plais au autres mais moi perso ça m'interrese pas trop
mais si le but est de codé et faire de nouvelles truc je suis a 100% avec

voilà les commentaires qui nous ont appris plein de truc meme si ça parle pas tout droit du code en question :)
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
28 juil. 2008 à 16:12
Fatigué, mais très bonne remarque quand même.
cs_ISoKa Messages postés 435 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 17 octobre 2008
28 juil. 2008 à 16:06
oups, suis fatigué moi j'me suis pas remis du week end, devorZ pas WorldDMT
cs_ISoKa Messages postés 435 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 17 octobre 2008
28 juil. 2008 à 15:58
coucou

question con et très terre à terre, il y a que moi qui m'inquiète de l'excess flood causé par ce code ?
WorldDMT tu aurais ptete itéré à t'en occupé pck sur un salon vivant j'voi pas comment tu peux faire autrement que excess flood
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
28 juil. 2008 à 15:48
Le parser de mIRC est plus chelou que vous le croyez...
Dès qu'il voit un {, c'est pas forcément une command, derrière ça peut être considéré comme du texte brut.Il y a aussi ce genre de truc : //Echo -a Ga } echo -a ok
Y'en a des centaines des trucs comme ça : à cause du parser
tu peux pas crée d'alias commençant par + car derrière dans $+nom_dalias, le $+ est detecté comme un mot clé $+(). les $regsubex utilise les $N en interne pour pouvoir retourné les (\N) différent match, ya plein de trucs de merde, ça a déja été reporté, mais ça ne risque pas d'être modifié tout simplement parce que ça a tjs été comme ça, et que changé un truc fait tout planté apparement (voir le bug des /if sur la 6.33, c'est suite a un changement du parseur sur les if/while..)

Et j'vais ajouter ma petite remarque concernant les /if et les return :

"Et WorlDMT, non il y a une subtile différence. Si tu mets un return dès le début, la "machine" (du moins le "truc" qui lit le code, je n'ai jamais su lui donner un nom :-° ...) bref, la machine va passer directement à la routine suivante (événement suivant, dans ce cas).
Or si tu mets un "if", elle va voir qu'il retourne un échec, et va donc aller chercher un "elseif" toujours dans cette même routine, au lieu de passer directement à la routine suivante."

Avec un return, ça stop simplement la routine en cours, (on ne peut pas dire que ça passe a la routine suivante..)
Avec un "if", tu dis qu'il va allé chercher un elseif, ce qui n'est pas faux mais donc dans c'est cas là, le but n'est tout simplement pas le même, tu peux pas clamer que if (!%var) return est mieux/plus utilisé que if (%var) { reste de la fonction } parce que c'est tout simplement pas la même chose.Et enfin mon dernier point, moi actuelement je fais un mario en mirc comme pas mal de monde sait, le code qui "gère" ce que fait mario se compose d'un alias apellé une fois, qui s'auto apelle a la fin (methode conseillé..), comment je fais avec ton return, faudrait que je fasse un goto pour allé directement rapellé le timer, moi j'suis pas fan, je préfere nettement un if :p
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
28 juil. 2008 à 12:24
ok merci je demandais juste car je ne connais pas encore trop en C/C++ je debut depuis une sem :p
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
28 juil. 2008 à 12:05
Bah "if / elseif / else" c'est presque la base de tous les langages ^^. (en C, c'est "else if" et pas "elseif").
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
28 juil. 2008 à 12:02
oui je vois ce que tu dis mais en C/C++ il y a aussi des elseif??
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
28 juil. 2008 à 11:57
"if / elseif / else" c'est pour détecter par exemple un événement dans une liste. Par exemple, soit si le pseudo est "Pouet" ça dit "salut", soit si le pseudo est "Kiki" ça dit "prout", soit si le pseudo est "Tala" ça dit "cucu" sinon ca dit "rien":

if ($nick == Pouet) say salut
elseif ($nick == Kiki) say prout
elseif ($nick == Tala) say cucu
else say rien

Dans ce cas là c'est utile, mais si tu n'as qu'une seule condition à vérifier, par exemple si la variable %pouet doit être égale à "oui" pour que la routine continue sinon ça ne fait rien, autant mettre:

if (%pouet != oui) return
;code ici
Si tu fais des recherches un peu dans d'autres langages (je pense notamment au C/C++ :$) tu verras que cette méthode est très utilisée, sachant que les routine sont en général très longues (par exemple, le simple fait d'ouvrir un fichier texte dans un edit multiligne en mIRC qui se fait donc en une ou deux lignes, doit se faire en une quinzaine de lignes en C).
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
28 juil. 2008 à 09:56
bonjour
peut atre tu peux avoir raison UAIP mais il reste tjr quelque chose qui existe qu'il faut tenir compte

si "if/elseif/else" sont pas trop actif par raport a "if / return" dans ce cas ya plus d'existance pour les "elseif" alors pourquoi avoir fait?

j'explique avec un exemple et je met des points pour etre plus clair

je tape : pass jimjim

if ($1 == pass) {
. if (%status == on) {
. . if ($2 != $null) {
. . . if ($2 == jimjim) {
<comande> ;au cas que tout est ok avec les conditions passé
}
. . . else <comande> ;au cas que $2 != pass (si t'a rien tu peu mettre "return" ou tu laisse vide)

}
. . else <comande> ;au cas que $2 == $null (pareil comme avant avec "return" ou vide)
}
. else <comande> ;au cas que %status != on (pareil)
}

là je reste sur la 1ere condition

if ($1 == pass) {
if (%status == on) {

dans ce cas si c'est pas pass ça passe a la suivante qui est sur la meme colone (meme nombre de point) comme precisé avec les pointier en haut

et

if ($1 != pass) return
if (%status == on) {

dans ce cas ausi si c'est pas pass ça passe a la suivante qui est sur la meme colone comme precisé avec les pointier en haut

si non ça serait curieu pour quoi avoir fais des "elseif" si avec return on peut faire et le system sera plus rapide ???

j'ai juste donné mon avis a propos je suis nouveau dans ce domaine
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
28 juil. 2008 à 00:38
Interpréteur, peut-être.
(mais je parlais de "machine" dans le sens "ordinateur" (en familier, quoi ^^)).
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
27 juil. 2008 à 22:11
"Interpréteur" ? ("machine virtuelle" me parait un peu exagéré pour mIRC :D)
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
27 juil. 2008 à 19:00
Boah, ce n'est qu'une opinion que je me suis faite, mais j'ai peut-être tord.

Et WorlDMT, non il y a une subtile différence. Si tu mets un return dès le début, la "machine" (du moins le "truc" qui lit le code, je n'ai jamais su lui donner un nom :-° ...) bref, la machine va passer directement à la routine suivante (événement suivant, dans ce cas).
Or si tu mets un "if", elle va voir qu'il retourne un échec, et va donc aller chercher un "elseif" toujours dans cette même routine, au lieu de passer directement à la routine suivante.
Là encore ce n'est qu'une question de quelques micro-secondes, mais bon...
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
27 juil. 2008 à 17:22
@uaip: tiens je n'avais jamais réfléchi à cela, en effet c'est un bon argument qui va à l'opposé de ce que je dis. Si on perd trop en perf en effet, mieux vaut éviter de mettre des accollades inutiles sur des parties sensibles du code où l'on a besoin de perf... Enfin en mIRC ça peut faire rire mais ce n'est pas toujours le cas, ça va dépendre des langages je suppose. Il y a du pour et du contre dans tous les choix de toute façon, tout dépend de ce que l'on veut ! Merci de l'info ;-)
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
27 juil. 2008 à 17:05
UAIP
"Ensuite, ton événement TEXT.....je la vérifie dès le début et stoppe le code si elle n'est pas vérifiée."

mais comme ça ça stop au cas que %state != on

si %state == on il continu et se trouve chez %espion.salon si c'est le cas il continu si non "elsif" il verifie la suite donc il a a verifié rien qu'une seul fois chaque etape et sans halt ou return rien qu'avec if/elseif
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
27 juil. 2008 à 16:32
Et zut.. j'ai eu beau me relire, encore des erreurs qui m'ont échappé...

[1er code]
on *:text:*:%spr:{
if (%state != on) return
;ton code
}

[2eme code]
on *:text:*:%spr:{
if (%state != on) {
;ton code
}
}

(bien que je me sois trompé deux fois dessus, "%espion.echo" est a oublier dans mes codes ^^)
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
27 juil. 2008 à 16:27
Yop.
En effet, mIRC ne prend que la première commande après le if () si aucune accolade n'est ouverte (comme la plupart des langage je pense (php, javascript, Perl, c/c++, etc).
Je suis entièrement d'accord avec PaDa. Bien que je ne sois qu'amateur encore, j'ai un peu touché à tout, donc au niveau de lisibilité des codes, oublis éventuels des subtilités de tel ou tel langage, etc... je suis d'accord.

Si je peux juste faire une suggestion. Là encore je ne sais pas du tout comment "fonctionne" le mIRC, mais pour ce qui est des langages compilés, j'ai lu quelques tutos de yacc et lex (ou bison et flex sous Windows). Et pour ce qui est des langages interprétés je pense avoir un peu compris le fonctionnement des parsers. Donc (toujours d'après mon expérience personnelle, donc rien de fiable) je me suis dit que, si besoin, ne pas mettre d'accolade était mieux qu'en mettre pour rien.

Mon raisonnement: la machine, lorsque elle détecte le '{' se dit "attention, je vais recevoir une suite de commandes, je dois donc me préparer pour les recevoir toutes" et cette procédure de préparation peut prendre un peu plus de temps que si les accolades n'étaient pas là.
Bon... c'est aussi peut-être les medocs qui me montent à la tête -_-

Ensuite, ton événement TEXT, je l'aurais aussi optimisé, mais pas de la même façon que WorldDMT.Je ne sais pas si c'est la bonne méthode, mais lorsque je me retrouve avec plusieurs conditions à évaluer dont une par exemple qui revient pour chaque if (tes "%state on" et "%espion.Echo on" par exemple) je la vérifie dès le début et stoppe le code si elle n'est pas vérifiée.

[1er code]
on *:text:*:%spr:{
if ((%state != on) || (%echo.espion != on) return
;ton code
}

Je trouve cette méthode mieux que:

[2eme code]
on *:text:*:%spr:{
if ((%state != on) {
;ton code
}
}

pour la simple et bonne raison que la procédure s'arrête immédiatement en cas d'échec de la condition [1er code] au lieu d'aller chercher un elseif un peu plus bas dans le code [2eme code].
devorZ Messages postés 46 Date d'inscription dimanche 27 juillet 2008 Statut Membre Dernière intervention 21 février 2009 1
27 juil. 2008 à 15:08
pour info j'ai améliorer la sources niveau dialog ^^
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
27 juil. 2008 à 15:07
"ta phrase est pas très française" je ne suis pas français dsl j'ai pas pus bien m'exprimé :)

"on est passé par 8 ou 10 langages on finit par oublier un peu les subtilités de chacun "
on peu oublié meme si on ne connait qu'une seul langue, il y a une differance entre oublié et ignoré de ma part quand je doute je teste avant de dire du n'importe quoi et au cas que j'ai mal dis d'autre vont le voir, et il vont me corrigé, je ne suis pas seul sur net :)
comme le cas de la parentheses dans le 1er commentaire j'avais pas fais attention et tu l'a vu c'est simple
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
27 juil. 2008 à 14:55
"tu n'aura pas la possiblilité de repondre a quelque question dans ce cas on va croire que ça vien pas de chez toi " : le jour où tu feras de l'info en milieu professionnel tu te rendras compte que la question n'est pas du tout là. Quand je reprends des codes qui ont plus de 10 ans et dont l'auteur est parti à la retraite personne me demande d'expliquer le code, on s'en fout un peu, on veut juste que ça fonctionne. Ici l'optique est différente, on est sur un site pour que les gens s'entraident et apprennent, mais je ne parlais pas du contexte d'ircfr, je parlais plus en général.

"je vois ce que tu dis mais ce n'ai pas une condition d'oublié sinon ne code plus" : ta phrase est pas très française, mais quand tu auras un tout petit peu d'expérience en programmation, tu te rendras compte que quand on est passé par 8 ou 10 langages on finit par oublier un peu les subtilités de chacun :-)

Pouah les réflexions de roxxor, ça m'apprendra à essayer d'élever le débat...
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
27 juil. 2008 à 14:39
j'ai pas demandé que tu me raconte ta vie juste ce que tu dis pour les guillemets si tu va faire apres 2 ans un code que tu ne saura pas les details parceque tu l'a fais depuis et tu a oublié tu n'aura pas la possiblilité de repondre a quelque question dans ce cas on va croire que ça vien pas de chez toi

et je suis avec toi pour un code soit bien lisible et bien classé

"Autre exemple typique :
if (condition) action1 | action2"

quand il y a plus d'une commande apres une condition il va falloir les accolades pour determiné la zone de la condition

pour tes codes j'ai jetté un coup d'oeuil

je vois ce que tu dis mais ce n'ai pas une condition d'oublié sinon ne code plus
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
27 juil. 2008 à 14:03
Tiens si tu veux des exemples, je prends sur moi un peu :
- un de mes mauvais codes : http://www.ircfr.com/codes/SNIPPET-ICALC-CALCUL-COMPLEXE_25481.aspx (si demain tu trouves un bug personne ne saura corriger, c'est illisible)
- un de mes bons codes : http://www.ircfr.com/codes/GEOTOOLS-GESTION-UWORLD_46819.aspx (les aliases parlent d'eux mêmes, le cheminement est facile à suivre sur un alias, les aliases utilisateurs sont modifiables sans bouger les aliases locaux, les vars ont une convention unique, etc)
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
27 juil. 2008 à 13:57
Sans vouloir raconter ma vie, je bosse un peu dans l'informatique, et une chose primordiale à mes yeux est qu'un code soit *maintenable*, c'est à dire qu'on puisse le retoucher 3 ans après pour s'adapter à un nouveau contexte, corriger un bug, réaliser une évolution, ...

Et pour qu'un code soit maintenable, il faut qu'il soit lisible facilement, et donc que tu aies des conventions de nommage et de coding assez carrées. Tu remarqueras que les "bons" codeurs ici font toujours des sources où les aliases sont bien organisés, où les noms suivent tous la même convention, où ils ne font pas un coup sans accollades un coup avec, etc...

Là c'est pareil : ces guillemets ne gênent pas et au contraire, si tu reprends ce code dans deux ans sans avoir fait de mirc scripting entre temps, et que tu veux rajouter une virgule dans le texte, tu le fais et ca marche. Si on enlève les guillemets, et que tu rajoutes une virgule après avoir arrêter de scripter pendant deux ans, tu vas te prendre la tête une demie heure pour trouver pourquoi ça marche pas.

Autre exemple typique :
if (condition) action1 | action2

mIRC a un comportement par défaut (je serais bien incapable de dire lequel) qui va faire que action2 sera exécuté ou pas. Je ne fais plus assez de mIRC pour me souvenir si après un pipe la 2e action est conditionnée au "if" ou pas. Mais si tu mets des accollades, tout le monde est gagnant, parce que tu n'as pas à réfléchir en lisant : tu sais que le "if" va s'appliquer uniquement au bloc entre accollades et que la suite est indépendante.

My 2 cents...
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
27 juil. 2008 à 13:19
oui PADA tu parle de

alias espion if (!$dialog(spy) dialog -m spy spy

je voulais mettre

alias espion if (!$dialog(spy)) dialog -m spy spy

il peut aussi mettre

alias espion if !$dialog(spy) dialog -m spy spy

c'est pas question de faire plus court ou plus long mais tu a la possibilité de faire de nouvelles choses en scripting et l'essenciel que ça marche avant tout et puisque ça cause pas de problemes pourquoi ne pas changer?

"2-a." c'etait juste pour une nouvelle vision si non j'ai pas dis que ça marchait pas :)


sauf si tu a quelque chose que je connais pas encore tu pourra me l'eclairsir je suis qu'un debutant ;)
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
27 juil. 2008 à 13:05
@WorldDMT :

1. Tu as une parenthèse en trop
2.a. Le but en coding ce n'est pas toujours de mettre le truc le plus court hein ;-) J'ai l'impression qu'aucun mIRC-scripteur ne réfléchit aux bonnes pratiques pour pouvoir être relu...

Pour les autres critiques ça me parait bien, donc je plussoie !

@devorZ : Bonne continuation
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
27 juil. 2008 à 11:38
salut
j'ai pas testé ton code pour te faire un commentaire sur le fonctionnement mais déjà sur le codage

1- tu n'a pas precisé qu'il faut taper "/espion" tu pouvais aussi faire en menu

alias espion dialog -m spy spy | .splay %son.module

si tu ouvre 2 fois tu aurra un msg d'erreur alors il faut verifié l'ouverture
et le splay %son.modul est peut etre chez toi mais pas chez tout le monde alors ça sert a rien

donc ça devient

alias espion if (!$dialog(spy) dialog -m spy spy

2- Dialog
a. je ne sais pas si tu a utilisé un dialog editeur mais si non t'a pas besoin de mettre les "" si le text ne contien pas de virgules

exp:
title "- Espion - /Espion" tu peu faire title - Espion - /Espion
text "Salon a Espioner :", 2, 55 2 44 8 tu peu faire text Salon a Espioner :, 2, 55 2 44 8
ect...

b. le bouton "fermer" pk ok cancel? met juste ok

c. pour le check pourquoi check"" et tu ajoute un text "echo"???
met tout simplement check echo et check salon

d. evenement
on *:Dialog:spy:sclick:*:{
on *:Dialog:spy:init:*:{
...

met juste

on *:Dialog:spy:*:*:{
if (devent == sclick) {
...
}
elseif ($devent == init) {
...
}
}

3- c'est quoi ça??

if ($did(7).state == 1) { set %espion.salon ON | unset %espion.echo }
else { unset %echo.salon }
if ($did(8).state == 1) { set %Espion.echo ON | unset %espion.salon }
else { unset %espion.echo }

si c'est pour ne pas que les 2 soient coché fais en radio au lieu de check

4- on join on part tout ces event, les syntaxe de if il fau encore des parentèses

met le syntaxe comme ça regarde les parentèses

if ((%state on) && (%espion.salon on)) {


5- on *:text:*:%spr:{
if (%state == on) && .....

pourquoi tout ces "if", "halt", et repetition de "%state == on" et autre utilise if/elseif

met plutot

on *:text:*:%spr:{
if (%state == on) {
if (%espion.salon == on) {
if (($nick isop $chan) && ($nick !isvo $chan)) { msg %logr ... $1- }
elseif (($nick !isop $chan) && ($nick isvo $chan)) { msg %logr ... $1- }
elseif (($nick isop $chan) && ($nick isvo $chan)) { msg %logr ... $1- }
elseif ($nick !isop $chan) { msg %logr ... $1- }
}
elseif (%espion.echo == on) {
if (($nick isop $chan) && ($nick !isvo $chan)) { echo -a ... $1- }
elseif (($nick !isop $chan) && ($nick isvo $chan)) { echo -a ... $1- }
elseif (($nick isop $chan) && ($nick isvo $chan)) { echo -a ... $1- }
elseif ($nick !isop $chan) { echo -a ... $1- }
}
}
}
devorZ Messages postés 46 Date d'inscription dimanche 27 juillet 2008 Statut Membre Dernière intervention 21 février 2009 1
27 juil. 2008 à 07:21
j'ais surtout poser cette sources pour avoir l'avis des bon codeurs ce qu'ils pensent du codage et m'expliquer se qui va pas donc voila :]
Rejoignez-nous