Vos identifiants
Bienvenue
Voir tous les scripts
Pour mirc 6.1 et moins
Pour mirc 6.2
Pour mirc 6.3
Pour mirc 7.1
Top 10
Vous aimez ou détestez
Soumettre un script
Foire aux questions
Forum de discussion



Les bases du Scripting
Le virus "irc.worm.gen"
Le mIRC D'Or
Snippets
ScreenShots
Tag-moi-ça
Le Pire de l'IRC
L'IRC pour les nuls
Tutoriaux
Configurer UnrealIRCD
Configurer votre box
Attention à l'arnaque!
Usenet et les News
Arrêter de fumer
Un peu d'orthographe
Unreal/Anope Admin
mIRC Script Server
Proxy Web Chat
Magneto for Unreal
Super Poupées
Tour de cartes
L'Equipe
Partenariat
Administration

Web Of Trust
www.chat.exolia.net (Francophone)
fantasya.org (Francophone)
hiersay (francophone)
JhdScript

                                            

Résultats du défi du 23/5/5: Un détecteur de Net-splits

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





  • Cliquer ici pour connaître le gagnant (ou la gagnante)




    Liste des participants (3)

    Nom du script Auteur Commentaire
    AFNS Ag2X
    Points forts:

  • Satisfait aux contraintes du defi
  • Code le plus court: 629 octets


  • Points faibles:

  • Affichage moins soigné que ses concurrents
  • Netsplit imploder Snow_AngeL
    Points forts:

  • Rien à dire: ça marche


  • Points faibles:

    Netsplit spotted Sorn_Drixer
    Points forts:

  • Satisfait pleinement au défi


  • Points faibles:

  • Code un peu gros (1022 octets sans les commentaires)


  • Le gagnant du défi: AFNS de Ag2X

    Pas de surprise pour ce defi qui était relativement facile: tous les concurrents ont fait un code qui fonctionne. Le gagnant (d'une courte tête) est celui qui a fait le code le plus court, et le plus compact.



    Autres défis archivés
    Titre Date Participants
    Un convertisseur binaire 20/02/02 5
    Client Mail mIRC 25/3/2 1
    Un jeu graphique sous mirc 18/7/2 3
    Un nettoyeur d'emails 24/10/2 1
    Un colorieur de nicks 15/12/2 3
    Un Log Viewer 18/01/3 1
    récupérateur de couleurs 15/2/3 2
    SmilesViewer 29/3/3 0
    Animation 8/5/3 2
    Résolveur d'Équations 30/06/03 3
    Calculateur Algébrique 01/08/03 7
    Reproduction de $base 20/09/03 4
    /picfindtext 24/01/04 2
    /breplacestring 28/02/04 2
    Un notifieur de privates 1/12/4 3
    Un détecteur de Net-splits 23/5/5 3


    Retour au défi du moment