NICK SCAN SUR TOUT LES SALONS :)

ExtenZ93 Messages postés 23 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 4 mars 2009 - 5 oct. 2008 à 19:11
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011 - 12 oct. 2008 à 03:26
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/48123-nick-scan-sur-tout-les-salons

uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
12 oct. 2008 à 03:26
Salut les potes (ahah...)
Je trouve ça bien que la source soit en anglais, malgré la petite faute.
C tjr mieu 1fote dan 1text kle mek a fé lefor dékrir en anglé pluto kune fote a la kon, en francé.
Bref, en effet les hashtables n'ont rien de variables locales, bla bla, mais tout a déjà été dit, en fait.
Et ce n'est pas parce-que tu découvres les hashtables, que c'est du niveau initié.
30 lignes de code en mIRC scripting, qui mélange boucles, variables et hashtables, j'appelle pas ça du initié ^^.

Bonne continuation tout de même.
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
10 oct. 2008 à 08:26
Y'a des lois comme ça dans la nature, il y a par exemple la gravité, puis tu as toujours autant de commentaire sur les sources de ce genre, déja vu, pas super bien codé, etc...
Et pour que mon commentaire reste dans l'esprit :

"et si tu mets "0" et tu clic OK ? il va te dire tjr reserch cancelled!! :/ c'est moche
tu dois utiliser "if (%i == $null)" c'est mieux "

ta pas du réfléchir bien longtemp pour écrire ça =)
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
8 oct. 2008 à 15:55
merci c'est gentil de ta part en tout cas chaqun parle selon son education :)

pour ce que j'ai dis c'est pas trop important c'est juste pour ne pas avoir un resultat zero pour un pseudo qui n'est meme pas connecté ou exsiste pas mais bon j'ai dejà retiré depuis mon 2eme code
ne regarde pas trop ce point mais regarde ton code et le mien (le 2eme) c'est le meme resultat alors que le mien est trop moin compliqué pour rien

mais bon a toi de voir @+
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
7 oct. 2008 à 22:53
vous ne voulez pas commencer ma source sur les sorties des séries sinon ? :/
j'sais pas pourquoi j'ai jamais beaucoup de commentaires sur mes sources ... :(
ExtenZ93 Messages postés 23 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 4 mars 2009
7 oct. 2008 à 22:35
mais t'es idiot ou quoi ? O.o
Le nick est forcement CONNECTER, puisqu'il le cherche sur les chan ou on est.

Paye ton QI :/
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
7 oct. 2008 à 21:01
pardon pas "existe" mais plutot connecté
dsl pour la faute
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
7 oct. 2008 à 20:58
si c'est pour verifier si le nick existe ou pas ça sera une autre procedure avoir avec ison et raw 303 a toi de voir c'est pas si compliqué pour un niveau inité non :)
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
7 oct. 2008 à 20:45
tu raconte quoi là mdr... c'est un code pas une blague je ne vois pas là ou c'est délirant!! en tout cas ce que tu a ecrit j'ai du mal a comprendre mais bref ne cherche pas des ptites detail pour rien ton code ne verifie meme pas si le nick existe ou pas
et ce que je t'ai donné c'est pareil mais au moin c'est pas un codage compliqué avec 2 while pour rien celui ci est avec 1 seul while et ça marche intact :)
ExtenZ93 Messages postés 23 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 4 mars 2009
7 oct. 2008 à 20:32
Délirant ton code WorldDMT ...
et tu dis m'aider ?

Elle est passé ou la condition, qui vérifie si ce que l'on a tapé est dans le nick que le script scan ?
Enfin c'est vraiment délirant
usurpateur Messages postés 9 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 24 janvier 2011
6 oct. 2008 à 22:49
un /whois me suffit perso ;-)
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
6 oct. 2008 à 19:51
j'ai pas testé le code en tout cas mais si je met ma tete là dedans c'est simple
et pour mon code ok laisse la 2eme condition et teste le t'a pas besoin de 2 while pour rien
voilà alors si tu veux

alias recherche {
if ($1 == $null) {
echo -ae 1=======[13 veuillez mettre un pseudo 1]=======
echo -ae 1=======[13 Recherche annulée 1]=======
return
}
echo -ae 1=======[13 Recherche pour :14 $1 1]=======
var %a $chan(0),%b 1
while (%a >= %b) {
if ($1 ison $chan(%b)) var %final %final $chan(%b),%b %b + 1
else var %b = %b + 1
}
if (%final) {
echo -ae 1=======[13 Resultat trouvé: $matchtok(%final,$chr(35),0,32) 1]=======
echo -ae 1=======[13 ce pseudo est dans %final 1]=======
}
else echo -ae 1=======[13 Resultat trouvé: 0 1]=======
}

ça donne ton result 0 et alors ?
"Au moin je sais qu'il ne faut pas poster de source sur ce site, puisque il n'y a que des gens de mauvaise foie"

personne est de mauvaise foi mais on parle de verité de se qu'on vois on appel ça commentaires on a rien contre toi ici

moi je suis debutant et j'aprend des commentaire des autres ou est le probleme?

tu veu pas de commentaire ne poste pas tu as besoin d'aide tu as le forum

@+
ExtenZ93 Messages postés 23 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 4 mars 2009
6 oct. 2008 à 19:43
""""et si le pseudo n'existe pas ou il n'est pas connecté au serveur???
ou le pseudo n'est sur aucun de tes chans???
ou tu as eus envie de mettre du n'importe quoi tu auras quoi a ton avis ?

tu auras des lignes avec des résultats vides :/ c'est moche aussi non ? """"

Et pour info, non il n'affiche pas de ligne, il affiche seulement: result: 0
basta :)
Et apres ca vient parler de niveau initié =/
ExtenZ93 Messages postés 23 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 4 mars 2009
6 oct. 2008 à 19:41
Verifier si le mec est connecté sur le serveur, c'est completement inutile.

Puisque c'est principal fait pour rechercher un bout de pseudo.
Donc si tu recherche fabz0r, et que le pseudo du mec c'est TEAMPOUET|fabz0r ben il dira toujours qu'il n'est pas connecter...
Le but est de rechercher un pseudo sur les chan ou l'on est. D'ou on connais le nom mais ne sait on pas si il a un tag.

Donc remarque completement bidon.
Les chan commun ... c'est un peu normal que ca les marques... Puisque il verifier que sur les chans ou on est.

"Vous et vous ne vous trouvez pas dans un chan commun "

Encore une chose fausse...

Enfin bref, juste pour dire. Un peu de jujote.

De plus c'est ma premiere source sur ce site, j'ai deja fait des bot performante sur plus de 3000 lignes...

Alors les commentaires inutiles du genre :

"pour moi les variables global sont %variable
et local, ce sont les hashtable.
Si je me trompe corrige moi"

bah pour moi en voyant ça je pense que t'es au niveau débutant et de classe inferieur aussi
si non tape /help /set et /help /var
--------
Si je connais pas le nom exacte, c'est simplement parce que je me debrouille seul. Et pour moi il y a 2 groupes, variable et hashtable.

Thx :) Au moin je sais qu'il ne faut pas poster de source sur ce site, puisque il n'y a que des gens de mauvaise foie, a part RCA ArKanis.

Sur ceux a+.
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
6 oct. 2008 à 19:31
salut

pour ce que tu as dis

"pour moi les variables global sont %variable
et local, ce sont les hashtable.
Si je me trompe corrige moi"

bah pour moi en voyant ça je pense que t'es au niveau débutant et de classe inferieur aussi
si non tape /help /set et /help /var

et pour

"alias research {
var %i $?="Nick to search ?"
if (!%i) { echo -a 1=======[13 Research cancelled 1]======= | halt }"

et si tu mets "0" et tu clic OK ? il va te dire tjr reserch cancelled!! :/ c'est moche
tu dois utiliser "if (%i == $null)" c'est mieux

et si le pseudo n'existe pas ou il n'est pas connecté au serveur???
ou le pseudo n'est sur aucun de tes chans???
ou tu as eus envie de mettre du n'importe quoi tu auras quoi a ton avis ?

tu auras des lignes avec des résultats vides :/ c'est moche aussi non ?

je ne sais pas pourquoi compliqué la vie pour rien
voilà ce que tes 32 lignes (avec possibilité de désordre) deviennent rien que
24 lignes et avec tout les conditions possible et sans les double "while" qui risqueront un bug


alias recherche {

;on verifie si le pseudo a été ecrit ou pas

if ($1 == $null) {
echo -ae 1=======[13 veuillez mettre un pseudo 1]=======
echo -ae 1=======[13 Recherche annulée 1]=======
return
}

;on verifie si le pseudo est connecté ou pas

ison $1
if (!$1) {
echo -ae 1=======[13 ce pseudo n'est pas connecté sur $network 1]=======
echo -ae 1=======[13 Recherche annulée 1]=======
return
}

;calcules et resultat

echo -ae 1=======[13 Recherche pour :14 $1 1]=======
var %a $chan(0),%b 1
while (%a >= %b) {
if ($1 ison $chan(%b)) var %final %final $chan(%b),%b %b + 1
else var %b = %b + 1
}

;on verifie si le pseudo se trouve dans un des chan là ou tu te trouve ou pas

if (%final) {
echo -ae 1=======[13 Resultat trouvé: $matchtok(%final,$chr(35),0,32) 1]=======
echo -ae 1=======[13 ce pseudo est dans %final 1]=======
}
else echo -ae 1=======[13 Vous et $1 vous ne vous trouvez pas dans un chan commun 1]=======
}


là tu tape /recherche
si tu ne tape pas de pseudo il te demande de mettre un pseudo
si le pseudo que t'a mis n'est pas connecté sur le serveur il te le dit aussi
si non il va t'écrire

si vous êtes dans un/des chans commun

résultat trouvé <le nombre>
ce pseudo est dans chan1 chan2 chan3

ou

Vous et vous ne vous trouvez pas dans un chan commun

et bien sur ce sont des chans là ou tu te trouve aussi
même si il est dans 100 chan et un seul chan vous regroupe
rien que ce chan sera affiché dans le résultat

tu pourras faire un dialog ça sera encore mieux au lieu de mélanger le chat avec le résultat
comme ça au lieu de faire echo -ae tu feras did -a $dname
ExtenZ93 Messages postés 23 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 4 mars 2009
6 oct. 2008 à 18:47
Pour l'alias vide, c'était juste une erreur de copier coller. J'comprend pas qu'une personne scandalise pour cela, alors que si on a un minimum de respect, on voit directement que c'est une erreur. Enfin passons...

Pour le echo -ae je ne connaissais pas.

Je ne comprend pas que certaine dise, ca peut bugger, ca marche pas ...
Alors que chez moi ca reste fonctionnel.

Pour le %nij je suis d'accord, je vais le modifier en hashtable. Car a plus de 350 info dans la variable, il ne veux pas afficher.
cs_ISoKa Messages postés 435 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 17 octobre 2008
6 oct. 2008 à 00:21
Bonjour,
pour un niveau initié c'est un peu léger faudrait au moins un dialog et plus d'options pour y prétendre, genre avoir des critères plus précis possible via l'utilisation de regex genre le pseudo commence par ceci ou fini par cela ou l'inverse.

Ensuite au niveau de la structure du code:
- pourquoi stocker les pseudos dans une htable si c'est pour balancer tel quel en bouclant sur les items et la hfree derrière ? T'as cas echo direct ca sera exactement la même chose pour l'utilisateur vu la vitesse d'exécution c'est complètement transparent là.
-Ce bout de code pose probleme :
# if (* $+ %i $+ * iswm $nick($chan(%b),%f)) && ($nick($chan(%b),%f) != $me) {
# /hadd -m $nick($chan(%b),%f) $chan(%b)
# if ($nick($chan(%b),%f) !isin %nij) { var %nij %nij $nick($chan(%b),%f) | inc %h }
# }
si tu as beaucoup de hit ça va bugué avec %nij puisque qu'une variable n'a pas une longueur infini de caractères (environ 940 je crois). surtout que c'est idiot de te faire une liste comme ça avec les pseudos dans une var alors qu'il te suffit de boucler sur le nombre d'item contenu dans ta htable
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
5 oct. 2008 à 23:02
tu te trompes
globale : /set %variable valeur
locale : /var %variable valeur

hashtable, c'est la solution qui remplace les variables globales

pour ta première double boucle, c'est pareil, mets l'initialisation de la 2e boucle entre la première et la 2e, ça t'évite d'initialiser la 2e boucle avant la première et après la deuxième (comme ce que tu fais en ce moment)
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
5 oct. 2008 à 22:58
salut
ce codage au niveau inité?????? :/
c'est quoi es echo -a vide tu veux des espaces tu fais echo -ae
et c'est quoi cet alias a la fin vide aussi????

je ne sais pas s'il n'y a pas de bug comme je vois 2 loop while
ExtenZ93 Messages postés 23 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 4 mars 2009
5 oct. 2008 à 22:31
Je pense qu'on ne parle pas de la même chose alors ^^
pour moi les variables global sont %variable
et local, ce sont les hashtable.
Si je me trompe corrige moi, c'est peut être pour cela que je n'ai pas compris ton dernier post. mais concernant les variable je l'ai maitrise parfaitement (a part pour l'optimisation que je ne connaissais pas). J'ai d'ailleur fait un bot assez performant donc ... j'ai eu le temps de m'initier. Ce post était surtout pour mon debut de hashtable ^^
Et je compte remodifier ma source, pour transformer mon %final par une hashtable :)
Mais comme je travail toute la semaine et que je dors a l'hotel, je n'aurais surement pas le temps.
Sur ceux je te remercie de ta futur réponse et de ton aide ;)

bonne soirée.
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
5 oct. 2008 à 22:04
le $addtok, c'est pour manier une liste. Ca t'évite entres autres d'avoir un espace au tout début, et c'est plus propre
et oui, effectivement j'ai oublié un argument dans l'ident $addtok, mais tu as toi-même trouvé la solution ;)

l'explication est dans l'aide de mIRC, je ne peux pas être plus précis que cette aide ...

Il n'y a rien de complexe avec les variables locales. Il suffit juste de savoir qu'elles s'effacent à la fin du code et qu'elles sont propres à l'alias appelé (enfin il me semble ...)

je t'ai donné l'exemple avec %l et %final (en fait %nb et %final)

si tu veux une variable vide, ne mets pas "" mais laisse tel quel :
var %exemple
ou même : var %exemple, %l = 1

corrige le canceLLed
t'as vu, ta source a déjà gagné pas mal de lignes de code !
ExtenZ93 Messages postés 23 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 4 mars 2009
5 oct. 2008 à 21:11
var %final = $addtok(%final,14 $+ $hget($gettok(%nij,%l,32),%nb).item 1|,32)

J'ai fais comme cela pour le addtok. Mais je ne vois pas en quoi cela l'optimise ^^

Je met à jour ma source.
ExtenZ93 Messages postés 23 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 4 mars 2009
5 oct. 2008 à 21:09
pour les variables %l %final ... de ta dernière double boucle, pourquoi tu ne fais pas l'initialisation à l'intérieur de la première ?

Pour cette instruction, c'est réglé... me manque seulements les explications du addtok ...
ExtenZ93 Messages postés 23 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 4 mars 2009
5 oct. 2008 à 21:06
Pour info, je n'ai pas pu faire ta consigne suivante:

while (%nb <= $hget($gettok(%nij,%l,32),0).item) {
mets le 2e membre dans une variable pour éviter de le recalculer à chaque itération

Car cela génère un bug au niveau de l'echo.

Et concernant les variable local. Comme je l'ai dis, c'est mon premier script ou je l'ai utilise... donc si tu trouve que je les maitrise bien, c'est surement du tape a l'oeil lol.
ExtenZ93 Messages postés 23 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 4 mars 2009
5 oct. 2008 à 21:01
---------------------------------------
set %final %final 14 $+ $hget($gettok(%nij,%l,32),%nb).item 1 |
utilise $addtok : var %final = $addtok(%final,32)
---------------------------------------
pour les variables %l %final ... de ta dernière double boucle, pourquoi tu ne fais pas l'initialisation à l'intérieur de la première ?
----------------------------------------

Je n'ai pas compris ces deux explications, pourrais tu me corriger mon script pour que je puisse comprendre ? ( parce que avec l'essai que j'ai fais avec ce que j'ai compris, ca n'a pas marché )
Je te remercie d'avance.
ExtenZ93 Messages postés 23 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 4 mars 2009
5 oct. 2008 à 20:49
Merci des conseils, je m'y pencherais quand j'en aurais le temps, et je relirais ton commentaire car je n'ai pas tout compris :p
J'ai des problèmes avec les optimisations parce que je ne connais pas les syntaxes c'est tout ^^
Mais je vais voir ca ;)

Je te remercie
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
5 oct. 2008 à 20:46
pourquoi l'avoir fait en anglais ? Si tu veux le faire en anglais, ne fais pas de fautes d'orthographe au moins :p
canceLLed

var %a = 1var %b 2> var %a = 1, %b = 2
tu gagnes au moins 20 lignes ^^

set %final %final 14 $+ $hget($gettok(%nij,%l,32),%nb).item 1 |
utilise $addtok : var %final = $addtok(%final,32)
au passage, oui, tu n'as pas besoin de variable globale, donc pourquoi en utiliser alors que vraisemblablement tu sais très bien utiliser les variables locales
tu devrais mettre $chr(124) plutôt que ta |, on ne sait jamais ^^

while (%nb <= $hget($gettok(%nij,%l,32),0).item) {
mets le 2e membre dans une variable pour éviter de le recalculer à chaque itération

pour les variables %l %final ... de ta dernière double boucle, pourquoi tu ne fais pas l'initialisation à l'intérieur de la première ? ça t'éviterait d'avoir à le redéclarer après avoir fait la deuxième boucle

exemple :var %l 1, %m1 "max"
while (%l <= %m1) { var %nb 1, %final, %m2 "max"
while (%nb <= %m2) {
...
inc %nb
}
inc %l
}

etc ... plein d'optimisations à faire partout :D
ExtenZ93 Messages postés 23 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 4 mars 2009
5 oct. 2008 à 19:17
A si, oula c'est ma premiere source je suis un peu perdu :] Dsl du flood :s
ExtenZ93 Messages postés 23 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 4 mars 2009
5 oct. 2008 à 19:11
oups, j'ai mal placé ma source ^^
Rejoignez-nous