Vu le faible nombre de participants, je rallonge le délai de 15 jours.. de plus je vais être bientot absent dans une semaine, alors, autant que vous en profitiez pour peaufiner vos défis!
Ce mois ci, il s'agit de créer un détecteur de Net-splits. Un net-split se produit lorsque deux serveurs d'un même réseau se déconnectent. Chaque partie (celle dépendante de chaque serveur) voit alors les occupants de la partie adverse quitter avec un message de
quit particulier:
Untel has quit irc (irc.serveurA.org irc.serveurB.org)
Pour simplifier, on va dire que le message de quit comporte deux chaînes de caractères séparées par un espace, chaque chaîne contenant au moins deux points.
Le flood engendré par la série de
quit messages est alors remplacé par une ou plusieurs lignes commencant par le mot
Netsplit: suivi par la liste des pseudos qui quittent en netsplit. Un exemple de détecteur de Netsplit (non optimisé) se trouve sur
la page des timers (je vous exhorte à la consulter).
Comme le défi est relativement facile,
j'y met quelques conditions (voir réglement ci-dessous) à savoir:
1) Pour que deux événements de
quit soient compris dans le netsplit, il faut, en plus de la condition de la double paire de points dans le
quit message,
qu'il s'ecoule 3 secondes au plus entre ces deux evenements. Cela signifie que la notification de Net-split ne sera affichée que 3 secondes après le dernier événement de quit détecté.
2) La liste des noms devra être
séparée par des virgules (pas par des espaces, comme dans mon exemple).
3) Il ne devra pas y avoir de limitation sur le nombre de pseudos quittant en netsplit. En clair,
je ne veux pas de message d'erreur si 3000 pseudos quittent d'un coup. Le script que je propose est très limité; je conseille l'utilisation d'une htable pour vous en sortir.
4) Si une ligne de netsplit possède plus de 800 caracteres (espaces et virgules comprises) alors on pourra passer a la ligne en réécrivant le mot
Netsplit: devant la liste des pseudos suivants,
etc. jusqu'au dernier pseudo. Ceci à l'image de la série des lignes de
NAMES affichées par mirc dans la fenêtre status lorsque vous joignez un gros channel (pour ceux qui ont coché cette option).
5) La derniere ligne donnera le nombre effectif de pseudos partis en split, et les noms des serveurs splittés.
6) La liste des pseudos partis en netsplit doit être affichée dans la fenêtre du channel ou chattaient les pseudos avant le netsplit. Il faudra donc créer une liste par channel ouvert dans votre mirc. Cette liste ne devra pas être écrite (ni reportée) sur la fenêtre status, que personne ne regarde.
7) Je mettrai le maximum de la note au script satisfaisant à la fois aux contraintes du défi,
et au code le plus COURT (commentaires non compris)!
Conseil: Pour créer de beaux netsplits afin de tester votre défi, je vous suggère le couple Magneto/Mirc script server ou Magneto/UnrealIRCd.
Vous avez jusqu'au 22 mai inclus pour participer au défi. Bonne chance :)
|
|
Règlement |
Doit fonctionner sous mirc 6.16
Doit etre le plus leger possible, tout en restant fonctionnel
Un événement de split sera détecté par un message de quit comportant deux chaines séparées par un espace, chaque chaine comportant au moins deux points.
La liste des pseudos splittés devra utiliser la virgule comme séparateur. Pas de virgule finale!
Pas de limitation sur le nombre de pseudos partant en split
La derniere ligne indiquera le nombre de pseudos partis en split, ainsi que les noms des deux serveurs splittés.
Un seul script par personne
pas de DLL
|
| |
|