on *:load:{
  set %msn.login1 messenger.hotmail.com 1863
  if ($version < 6.03) {
    unload -rs $scriptdir\msnmsg.mrc
    echo -a Vous devez changer votre version de mIRC. Allez à www.mirc.com Vous avez besoin de mIRC version 6.03 ou plus pour pouvoir utiliser cet addon.
  }
  run $scriptdir\msnhelp.html
}

dialog msnmsg {
  title "MSN Messenger pour mIRC"
  size -1 -1 186 148
  option dbu
  tab "Connectés", 12, 3 2 178 142
  list 4, 7 19 170 99, tab 12 size hsbar vsbar
  edit "", 16, 7 121 116 10, tab 12 read
  edit "", 17, 124 121 53 10, tab 12 read
  edit "", 18, 7 132 170 10, tab 12 read
  tab "Toute la liste", 13
  list 5, 7 19 170 110, tab 13 size hsbar vsbar
  button "Enlever", 57, 100 132 37 10, tab 13
  button "Ajouter", 56, 140 132 37 10, tab 13
  edit "", 55, 7 132 93 10, tab 13 autohs
  tab "Bloqués", 14
  list 6, 7 19 170 110, tab 14 size hsbar vsbar
  edit "", 24, 7 132 93 10, tab 14 autohs
  button "Débloquer", 25, 100 132 37 10, tab 14
  button "Bloquer", 26, 140 132 37 10, tab 14
  tab "Autres", 27
  box "Email", 28, 7 19 46 27, tab 27
  text "Vous avez", 9, 10 26 27 8, tab 27
  text "0", 10, 39 26 13 8, tab 27
  text "nouveau email.", 11, 10 34 42 8, tab 27
  box "Mon statut", 32, 52 19 125 27, tab 27
  edit "", 21, 55 29 50 10, tab 27 read
  combo 22, 111 29 60 60, tab 27 drop
  box "Pseudo", 35, 7 42 170 34, tab 27
  edit "", 36, 11 50 161 10, tab 27 read
  edit "", 37, 11 61 134 10, tab 27 autohs
  button "Changer", 38, 145 61 27 10, tab 27
  box "À propos", 39, 7 72 170 69, tab 27
  text "MSN Messenger pour mIRC, addon créé par Artwerks.", 40, 10 82 164 8, tab 27
  text "Version 0.2 beta publiée le 20 janvier 2003.", 41, 10 91 164 9, tab 27
  text "Email: ppnadeau@hotmail.com", 43, 10 101 164 8, tab 27
  text "Pour toute question, suggestion ou commentaire, vous pouvez  m'écrire un email, ou bien laisser un commentaire sur la page où vous avez téléchargé cet addon.", 46, 10 109 164 22, tab 27 center
  link "Aide?", 15, 85 131 14 8, tab 27
  menu "Menu", 111
  item "Ajouter contact", 112, 111
  item "Bloquer un contact", 113, 111
  item break, 110, 111
  item "Déconnecter", 114, 111, cancel
  menu "Aide?", 115
  item "Aide?", 116, 115
}

dialog msnlogin {
  title "MSN Messenger - Login"
  size -1 -1 140 67
  option dbu
  box "Nom d'utilisateur", 1, 2 2 136 34
  box "Options", 10, 2 32 136 20
  box "Status", 2, 2 48 103 17
  text "Adresse email", 3, 5 12 38 8
  text "Mot de passe", 4, 5 23 38 8
  edit "", 5, 45 11 90 10, autohs
  edit "", 6, 45 21 59 10, autohs pass
  check "Apparaître hors ligne à la connexion", 7, 5 54 97 10
  check "Voir quand l'autre utilisateur tape un message", 11, 5 39 127 10
  button "Connecter", 8, 104 21 31 10, ok
  button "Fermer", 9, 108 54 30 11, cancel
}

dialog msnuserbl {
  title "MSN - Bloquer un contact"
  size -1 -1 117 26
  option dbu
  text "Choisir le contact à bloquer.", 1, 2 2 69 8
  combo 3, 2 12 87 138, size drop
  button "Bloquer", 2, 89 12 25 10, ok
}

dialog msnuseradd {
  title "MSN - Ajouter un contact"
  size -1 -1 117 32
  option dbu
  text "Entrer l'adresse complète de l'utilisateur que vous voulez ajouter à votre liste de contact.", 3, 4 3 109 15, center
  edit "", 1, 3 19 87 10, autohs
  button "Ajouter", 2, 90 19 24 10, ok
}

dialog msnevent {
  title "MSN Messenger - Évènements"
  size -1 -1 183 76
  option dbu
  box "Évènements", 1, 2 1 179 61
  list 2, 4 9 174 50, size hsbar vsbar
  button "Fermer", 3, 2 64 179 10, cancel
}

alias msnuser {
  if ($dialog(msnlogin) != msnlogin) dialog -md msnlogin msnlogin
}
alias msnevent {
  if ($dialog(msnevent) != msnevent) dialog -md msnevent msnevent
}

on 1:dialog:msnlogin:init:0:{
  did -a msnlogin 5 %msn.user
  did -a msnlogin 6 %msn.pass
  if (%msn.offline == offline) did -c msnlogin 7
  if (%msn.typing == on) did -c msnlogin 11
}

on *:dialog:msnuseradd:sclick:2:{
  if ($did(1) != $null) {
    set %msn.useradd $did(1)
    sockwrite -n msnlogin2 ADD 40 AL %msn.useradd %msn.useradd
  }
}

on *:dialog:msnlogin:sclick:*:{
  if ($did == 8) {
    set %msn.user $did(5)
    set %msn.pass $did(6)
    if ($did(7).state == 1) set %msn.offline offline
    if ($did(7).state == 0) set %msn.offline online
    if ($did(11).state == 1) set %msn.typing on
    if ($did(11).state == 0) set %msn.typing off
    msnlogin
  }
}

alias msnmsg {
  if ($dialog(msnmsg) != msnmsg) dialog -md msnmsg msnmsg
  else { dialog -c msnmsg msnmsg | timer 1 0 dialog -md msnmsg msnmsg }
}

on 1:dialog:msnmsg:init:0:{
  did -a msnmsg 22 Online
  did -a msnmsg 22 BRB
  did -a msnmsg 22 Occupé
  did -a msnmsg 22 Absent
  did -a msnmsg 22 Manger
  did -a msnmsg 22 Tel
  did -a msnmsg 22 Appar.Offline
}
on *:dialog:msnmsg:menu:*:{
  if ($did == 112) { dialog -m msnuseradd msnuseradd }
  if ($did == 113) { dialog -m msnuserbl msnuserbl }
  if ($did == 114) { sockwrite -n msnlogin2 OUT }
  if ($did == 116) { run $scriptdir\msnhelp.html }
}
on *:dialog:msnmsg:sclick:*:{
  if ($did == 4) {
    did -ra msnmsg 16 $gettok($did(4).seltext,2,32)
    did -ra msnmsg 17 $remove($gettok($did(4).seltext,1,32),[,])
    did -ra msnmsg 18 $gettok($did(4).seltext,4-,32)
  }
  if ($did == 5) {
    did -ra msnmsg 55 $did(5).seltext
  }
  if ($did == 6) {
    did -ra msnmsg 24 $did(6).seltext
  }
  if ($did == 22) {
    if ($did(22).seltext == Online) { sockwrite -n msnlogin2 CHG 20 NLN }
    if ($did(22).seltext == Tel) { sockwrite -n msnlogin2 CHG 20 PHN }
    if ($did(22).seltext == Absent) { sockwrite -n msnlogin2 CHG 20 AWY }
    if ($did(22).seltext == Manger) { sockwrite -n msnlogin2 CHG 20 LUN }
    if ($did(22).seltext == Occupé) { sockwrite -n msnlogin2 CHG 20 BSY }
    if ($did(22).seltext == BRB) { sockwrite -n msnlogin2 CHG 20 BRB }
    if ($did(22).seltext == Appar.Offline) { sockwrite -n msnlogin2 CHG 20 HDN }
  }
  if ($did == 25) && ($did(24) != $null) {
    set %msn.userunb $did(24)
    sockwrite -n msnlogin2 REM 46 BL %msn.userunb
  }
  if ($did == 26) {
    dialog -m msnuserbl msnuserbl
    sockwrite -n msnlogin2 LST 9 FL
  }
  if ($did == 56) {
    if (!$dialog(msnuseradd)) { dialog -m msnuseradd msnuseradd }
  }
  if ($did == 57) && ($did(55) != $null) {
    set %msn.userem $did(55)
    sockwrite -n msnlogin2 REM 42 AL %msn.userem
  }
  if ($did == 38) { sockwrite -n msnlogin2 REA 25 %msn.user $replace($did(37),$chr(32),$+($chr(37),20),é,Ã©,è,Ã¨,à,$+(Ã,$chr(160)),ç,Ã§,ê,Ãª,ù,Ã¹,ë,Ã«,ï,Ã¯,É,Ã‰,À,Ã€,È,Ãˆ,ô,Ã´,â,Ã¢) }
  if ($did == 15) { run $scriptdir\msnhelp.html }
}

on *:dialog:msnuserbl:sclick:2:{
  if ($did(3).seltext != $null) {
    set %msn.userbl $did(3).seltext
    sockwrite -n msnlogin2 REM 44 AL %msn.userbl
  }
}

on *:dialog:msnmsg:dclick:4:{
  sockwrite -n msnlogin2 XFR 11 SB
  set %msn.call $gettok($did(4).seltext,2,32)
}

alias msnlogin { msnmsg | sockclose msnlogin | sockopen msnlogin %msn.login1 }
alias msnlogin2 { sockclose msnlogin2 | sockopen msnlogin2 %msn.login2 }

alias msnsockclose {
  while ($sock(board*) != $null) {
    sockclose $sock(board*)
  }
}

on *:sockopen:msnlogin:{ sockwrite -n $sockname VER 0 MSNP7 MSNP6 MSNP5 MSNP4 CVRO }

on *:sockread:msnlogin:{
  sockread %msn.temp
  if (%msn.temp == VER 0 MSNP7 MSNP6 MSNP5 MSNP4) { sockwrite  -n $sockname INF 1 }
  if (%msn.temp == INF 1 MD5) { sockwrite -n $sockname USR 2  MD5  I  %msn.user }
  if (XFR 2 NS isin %msn.temp) {
    set %msn.login2 $replace($gettok(%msn.temp,4,32),:,$chr(32))
    msnlogin2
  }
}

on *:sockclose:msnlogin2:{
  if ($dialog(msnmsg) == msnmsg) { dialog -c msnmsg }
  msnsockclose
  msnuser
  echo -a Vous avez été déconnecté des serveurs de MSN Messenger.
}

on *:sockopen:msnlogin2:{ sockwrite -n $sockname VER 3 MSNP7 MSNP6 MSNP5 MSNP4 CVRO }

on *:sockread:msnlogin2:{
  sockread %msn.temp

  if (%msn.temp == VER 3 MSNP7 MSNP6 MSNP5 MSNP4) { 
    sockwrite  -n $sockname INF 4 
  }


  if (%msn.temp == INF 4 MD5) { 
    sockwrite -n $sockname USR 5  MD5  I %msn.user
  }


  if (USR 5 == $left(%msn.temp,5)) { 
    var %msn.passw $gettok(%msn.temp,5,32) $+ %msn.pass
    sockwrite -n $sockname USR 6 MD5 S $md5(%msn.passw) 
  }


  if (USR 6 OK == $left(%msn.temp,8)) { 
    sockwrite -n $sockname CVR 8 0x0409 win 4.10 i386 MSMSGS 4.5.0127 MSMSGS
    if (%msn.offline != offline) { sockwrite -n $sockname CHG 7 NLN }
    if (%msn.offline == offline) { sockwrite -n $sockname CHG 7 HDN }
    did -ra msnmsg 36 $replace($gettok(%msn.temp,5,32),$+($chr(37),20),$chr(160),Ã©,é,Ã¨,è,$+(Ã,$chr(160)),à,Ã§,ç,Ãª,ê,Ã¹,ù,Ã«,ë,Ã¯,ï,Ã‰,É,Ã€,À,Ãˆ,È,Ã´,ô,Ã¢,â)
  }


  if (CVR == $gettok(%msn.temp,1,32)) {
    sockwrite -n $sockname LST 9 FL
    sockwrite -n $sockname LST 9 BL
  }


  if (Inbox-Unread: == $gettok(%msn.temp,1,32)) {
    if ($dialog(msnmsg) == msnmsg) { 
      did -ra msnmsg 10 $gettok(%msn.temp,2,32) 
      if ($gettok(%msn.temp,2,32) > 1) did -ra msnmsg 11 nouveaux emails
    }
  }


  if (ILN == $gettok(%msn.temp,1,32)) {
    if ($dialog(msnmsg) == msnmsg) {
      if ($gettok(%msn.temp,3,32) == NLN) { did -za msnmsg 4 [Online] $gettok(%msn.temp,4,32) »Pseudo» $replace($gettok(%msn.temp,5-,32),$chr(37) $+ 20,$chr(32),Ãª,ê,Ã¨,è,Ã©,é) }
      elseif ($gettok(%msn.temp,3,32) == IDL) { did -za msnmsg 4 [Idle] $gettok(%msn.temp,4,32) »Pseudo» $replace($gettok(%msn.temp,5-,32),$chr(37) $+ 20,$chr(32),Ãª,ê,Ã¨,è,Ã©,é) }
      elseif ($gettok(%msn.temp,3,32) == AWY) { did -za msnmsg 4 [Absent] $gettok(%msn.temp,4,32) »Pseudo» $replace($gettok(%msn.temp,5-,32),$chr(37) $+ 20,$chr(32),Ãª,ê,Ã¨,è,Ã©,é) }
      elseif ($gettok(%msn.temp,3,32) == BSY) { did -za msnmsg 4 [Occupé] $gettok(%msn.temp,4,32) »Pseudo» $replace($gettok(%msn.temp,5-,32),$chr(37) $+ 20,$chr(32),Ãª,ê,Ã¨,è,Ã©,é) }
      elseif ($gettok(%msn.temp,3,32) == BRB) { did -za msnmsg 4 [BRB] $gettok(%msn.temp,4,32) »Pseudo» $replace($gettok(%msn.temp,5-,32),$chr(37) $+ 20,$chr(32),Ãª,ê,Ã¨,è,Ã©,é) }
      elseif ($gettok(%msn.temp,3,32) == PHN) { did -za msnmsg 4 [Téléphone] $gettok(%msn.temp,4,32) »Pseudo» $replace($gettok(%msn.temp,5-,32),$chr(37) $+ 20,$chr(32),Ãª,ê,Ã¨,è,Ã©,é) }
      elseif ($gettok(%msn.temp,3,32) == LUN) { did -za msnmsg 4 [Mange] $gettok(%msn.temp,4,32) »Pseudo» $replace($gettok(%msn.temp,5-,32),$chr(37) $+ 20,$chr(32),Ãª,ê,Ã¨,è,Ã©,é) }
      else { did -za msnmsg 4 Aucun utilisateur en ligne. }
    }
  }


  if (LST == $gettok(%msn.temp,1,32)) {
    if ($dialog(msnmsg) == msnmsg) && ($gettok(%msn.temp,3,32) == FL) {
      if ($dialog(msnuserbl) != $null) { did -a msnuserbl 3 $gettok(%msn.temp,7,32) }
      else {
        if ($gettok(%msn.temp,7,32) != $null) { did -za msnmsg 5 $gettok(%msn.temp,7,32) }
        else { did -za msnmsg 5 Aucun utilisateur hors ligne. }
      }
    }
    if ($dialog(msnmsg) == msnmsg) && ($gettok(%msn.temp,3,32) == BL) { 
      if ($gettok(%msn.temp,7,32) != $null) { did -za msnmsg 6 $gettok(%msn.temp,7,32) }
      else { did -za msnmsg 6 Aucun utilisateur bloqué. }
    }
  }


  if ($gettok(%msn.temp,1,32) == CHL) {
    sockwrite -n $sockname QRY 10 msmsgs@msnmsgr.com 32
    sockwrite $sockname $md5($gettok(%msn.temp,3,32) $+ Q1P7W2E4J9R8U3S5)
  }


  if ($gettok(%msn.temp,1,32) == QRY) { echo -a Tous les challenges de MSN Messenger ont été passés avec succès. Bon tchat. }
  if ($gettok(%msn.temp,1,32) == CHG) {
    if ($gettok(%msn.temp,3,32) == NLN) { did -ra msnmsg 21 Online }
    if ($gettok(%msn.temp,3,32) == IDL) { did -ra msnmsg 21 Idle }
    if ($gettok(%msn.temp,3,32) == AWY) { did -ra msnmsg 21 Absent }
    if ($gettok(%msn.temp,3,32) == BSY) { did -ra msnmsg 21 Occupé }
    if ($gettok(%msn.temp,3,32) == BRB) { did -ra msnmsg 21 BRB }
    if ($gettok(%msn.temp,3,32) == PHN) { did -ra msnmsg 21 Téléphone }
    if ($gettok(%msn.temp,3,32) == LUN) { did -ra msnmsg 21 Mange }
    if ($gettok(%msn.temp,3,32) == HDN) { did -ra msnmsg 21 Appear.Offline }
  }


  if ($gettok(%msn.temp,1,32) == XFR) { 
    set %msn.switchserv $replace($gettok(%msn.temp,4,32),:,$chr(32))
    set %cikno $gettok(%msn.temp,6,32)
    set %msn.how invite
    sockclose board $+ %msn.call
    sockopen board $+ %msn.call %msn.switchserv
  }


  if ($gettok(%msn.temp,1,32) == RNG) { 
    set %msn.switchserv $replace($gettok(%msn.temp,3,32),:,$chr(32))
    set %cikno $gettok(%msn.temp,5,32)
    set %rngno $gettok(%msn.temp,2,32)
    set %msn.how join
    sockclose board $+ $gettok(%msn.temp,6,32)
    sockopen board $+ $gettok(%msn.temp,6,32) %msn.switchserv
  }


  if ($gettok(%msn.temp,1,32) == NLN) {
    if ($dialog(msnmsg) == msnmsg) {
      if ($gettok(%msn.temp,2,32) == NLN) {
        if (0 != $didwm(msnmsg,4,* $+ $gettok(%msn.temp,3,32) $+ *)) {
          did -o msnmsg 4 $didwm(msnmsg,4,* $+ $gettok(%msn.temp,3,32) $+ *) [Online] $gettok(%msn.temp,3,32) »Pseudo» $replace($gettok(%msn.temp,4-,32),$chr(37) $+ 20,$chr(32),Ãª,ê,Ã¨,è,Ã©,é,Ã©,é)
        }
        else { did -za msnmsg 4 [Online] $gettok(%msn.temp,3,32) »Pseudo» $replace($gettok(%msn.temp,4-,32),$chr(37) $+ 20,$chr(32),Ãª,ê,Ã¨,è,Ã©,é) }
        msnevent
        did -za msnevent 2 $time » $gettok(%msn.temp,3,32) vient de se connecter.
      }

      if ($gettok(%msn.temp,2,32) == IDL) {
        if (0 != $didwm(msnmsg,4,* $+ $gettok(%msn.temp,3,32) $+ *)) {
          did -o msnmsg 4 $didwm(msnmsg,4,* $+ $gettok(%msn.temp,3,32) $+ *) [Idle] $gettok(%msn.temp,3,32) »Pseudo» $replace($gettok(%msn.temp,4-,32),$chr(37) $+ 20,$chr(32),Ãª,ê,Ã¨,è,Ã©,é,Ã©,é)
        }
        else { did -za msnmsg 4 [Idle] $gettok(%msn.temp,3,32) »Pseudo» $replace($gettok(%msn.temp,4-,32),$chr(37) $+ 20,$chr(32),Ãª,ê,Ã¨,è,Ã©,é) }
      }

      if ($gettok(%msn.temp,2,32) == AWY) {
        if (0 != $didwm(msnmsg,4,* $+ $gettok(%msn.temp,3,32) $+ *)) {
          did -o msnmsg 4 $didwm(msnmsg,4,* $+ $gettok(%msn.temp,3,32) $+ *) [Absent] $gettok(%msn.temp,3,32) »Pseudo» $replace($gettok(%msn.temp,4-,32),$chr(37) $+ 20,$chr(32),Ãª,ê,Ã¨,è,Ã©,é,Ã©,é)
        }
        else { did -za msnmsg 4 [Absent] $gettok(%msn.temp,3,32) »Pseudo» $replace($gettok(%msn.temp,4-,32),$chr(37) $+ 20,$chr(32),Ãª,ê,Ã¨,è,Ã©,é) }
      }

      if ($gettok(%msn.temp,2,32) == BSY) {
        if (0 != $didwm(msnmsg,4,* $+ $gettok(%msn.temp,3,32) $+ *)) {
          did -o msnmsg 4 $didwm(msnmsg,4,* $+ $gettok(%msn.temp,3,32) $+ *) [Occupé] $gettok(%msn.temp,3,32) »Pseudo» $replace($gettok(%msn.temp,4-,32),$chr(37) $+ 20,$chr(32),Ãª,ê,Ã¨,è,Ã©,é,Ã©,é)
        }
        else { did -za msnmsg 4 [Occupé] $gettok(%msn.temp,3,32) »Pseudo» $replace($gettok(%msn.temp,4-,32),$chr(37) $+ 20,$chr(32),Ãª,ê,Ã¨,è,Ã©,é) }
      }

      if ($gettok(%msn.temp,2,32) == BRB) {
        if (0 != $didwm(msnmsg,4,* $+ $gettok(%msn.temp,3,32) $+ *)) {
          did -o msnmsg 4 $didwm(msnmsg,4,* $+ $gettok(%msn.temp,3,32) $+ *) [BRB] $gettok(%msn.temp,3,32) »Pseudo» $replace($gettok(%msn.temp,4-,32),$chr(37) $+ 20,$chr(32),Ãª,ê,Ã¨,è,Ã©,é,Ã©,é)
        }
        else { did -za msnmsg 4 [BRB] $gettok(%msn.temp,3,32) »Pseudo» $replace($gettok(%msn.temp,4-,32),$chr(37) $+ 20,$chr(32),Ãª,ê,Ã¨,è,Ã©,é) }
      }

      if ($gettok(%msn.temp,2,32) == PHN) { 
        if (0 != $didwm(msnmsg,4,* $+ $gettok(%msn.temp,3,32) $+ *)) {
          did -o msnmsg 4 $didwm(msnmsg,4,* $+ $gettok(%msn.temp,3,32) $+ *) [Téléphone] $gettok(%msn.temp,3,32) »Pseudo» $replace($gettok(%msn.temp,4-,32),$chr(37) $+ 20,$chr(32),Ãª,ê,Ã¨,è,Ã©,é,Ã©,é)
        }
        else { did -za msnmsg 4 [Téléphone] $gettok(%msn.temp,3,32) »Pseudo» $replace($gettok(%msn.temp,4-,32),$chr(37) $+ 20,$chr(32),Ãª,ê,Ã¨,è,Ã©,é) }
      }

      if ($gettok(%msn.temp,2,32) == LUN) { 
        if (0 != $didwm(msnmsg,4,* $+ $gettok(%msn.temp,3,32) $+ *)) {
          did -o msnmsg 4 $didwm(msnmsg,4,* $+ $gettok(%msn.temp,3,32) $+ *) [Mange] $gettok(%msn.temp,3,32) »Pseudo» $replace($gettok(%msn.temp,4-,32),$chr(37) $+ 20,$chr(32),Ãª,ê,Ã¨,è,Ã©,é,Ã©,é)
        }
        else { did -za msnmsg 4 [Mange] $gettok(%msn.temp,3,32) »Pseudo» $replace($gettok(%msn.temp,4-,32),$chr(37) $+ 20,$chr(32),Ãª,ê,Ã¨,è,Ã©,é) }
      }
    }
  }

  if ($gettok(%msn.temp,1,32) == FLN) {
    if ($dialog(msnmsg) == msnmsg) {
      did -d msnmsg 4 $didwm(msnmsg,4,* $+ $gettok(%msn.temp,2,32) $+ *)
    }
    msnevent
    did -za msnevent 2 $time » $gettok(%msn.temp,2,32) vient de se déconnecter.
  }

  if ($gettok(%msn.temp,1,32) == REA) { did -ra msnmsg 36 $replace($gettok(%msn.temp,5-,32),$+($chr(37),20),$chr(160),Ã©,é,Ã¨,è,$+(Ã,$chr(160)),à,Ã§,ç,Ãª,ê,Ã¹,ù,Ã«,ë,Ã¯,ï,Ã‰,É,Ã€,À,Ãˆ,È,Ã´,ô,Ã¢,â) }

  if ($gettok(%msn.temp,1,32) == ADD) {
    if ($gettok(%msn.temp,2,32) == 40) { sockwrite -n $sockname ADD 41 FL %msn.useradd %msn.useradd 0 }
    if ($gettok(%msn.temp,2,32) == 41) {
      if (!$dialog(msnmsg)) { msnmsg }
      else {
        did -r msnmsg 5
        sockwrite -n $sockname LST 9 FL
        echo -a %msn.useradd a été ajouté à votre liste de contact.
      }
    }
    if ($gettok(%msn.temp,2,32) == 45) {
      echo -a %msn.userbl a été ajouté à votre liste de contacts bloqués.
      did -r msnmsg 6
      sockwrite -n $sockname LST 9 BL
    }
    if ($gettok(%msn.temp,2,32) == 47) {
      echo -a %msn.userunb a été ajouté à votre liste de contact et a été débloqué.
      did -r msnmsg 6
      sockwrite -n $sockname LST 9 BL
    }
  }

  if ($gettok(%msn.temp,1,32) == REM) {
    if ($gettok(%msn.temp,2,32) == 42) { sockwrite -n $sockname REM 43 FL %msn.userem 0 }
    if ($gettok(%msn.temp,2,32) == 43) {
      did -r msnmsg 5
      sockwrite -n $sockname LST 9 FL
      echo -a %msn.useradd a été enlevé à votre liste de contact.
    }
    if ($gettok(%msn.temp,2,32) == 44) {
      did -r msnmsg 5
      sockwrite -n $sockname LST 9 FL
      sockwrite -n $sockname ADD 45 BL %msn.userbl %msn.userbl
    }
    if ($gettok(%msn.temp,2,32) == 46) { sockwrite -n $sockname ADD 47 AL %msn.userunb %msn.userunb }
  }
}

on *:sockopen:board*:{ 
  if (%msn.how == invite) sockwrite -n $sockname USR 1 %msn.user %cikno
  if (%msn.how == join) sockwrite -n $sockname ANS 1 %msn.user %cikno %rngno
}

on *:sockread:board*:{
  sockread %msn.temp

  if ($gettok(%msn.temp,1,32) == USR) { sockwrite -n $sockname CAL 2 %msn.call }

  if ($gettok(%msn.temp,1,32) == JOI) { 
    window -ek0z @ $+ $gettok(%msn.temp,2,32)
    aline @ $+ $gettok(%msn.temp,2,32) Vous êtes maintenant connecté avec $gettok(%msn.temp,2,32)
    aline @ $+ $gettok(%msn.temp,2,32) Son nom est: $replace($gettok(%msn.temp,3-,32),$chr(37) $+ 20,$chr(32),Ãª,ê,Ã¨,è,Ã©,é))
    aline @ $+ $gettok(%msn.temp,2,32) -
  }

  if ($gettok(%msn.temp,1,32) == IRO) { echo -a $gettok(%msn.temp,5,32) vient d'ouvrir une fenêtre de conversation avec vous. }

  if ( $gettok(%msn.temp,1,32) == MSG ) {
    window -ek0z @ $+ $gettok(%msn.temp,2,32)
    set %msn.msgname $gettok(%msn.temp,2,32)
    set %msn.count 1
    :loop
    if ( %msn.count == 6 ) {
      if ( %msn.temp == $null ) {
        if (%msn.typing == on) aline -p @ $+ %msn.msgname En train de taper un message: %msn.msgname
        halt
      }
      aline -p @ $+ %msn.msgname < $+ %msn.msgname $+ > $replace(%msn.temp,Ã©,é,Ã¨,è,$+(Ã,$chr(160)),à,Ã§,ç,Ãª,ê,Ã¹,ù,Ã«,ë,Ã¯,ï,Ã‰,É,Ã€,À,Ãˆ,È,Ã´,ô,Ã¢,â)
      halt
    }
    sockread -f %msn.temp
    inc %msn.count 1
    goto loop
  }

  if ($gettok(%msn.temp,1,32) == BYE) { sockwrite -n $sockname CAL 2 $gettok(%msn.temp,2,32) }
}

on *:sockclose:board*:if ($dialog(msnmsg) == msnmsg) {
  sockwrite -n msnlogin2 XFR 11 SB
  set %msn.call $remove($sockname,$left($sockname,5))
}

on *:input:@*:{
  if ($sock(board $+ $remtok($active,@,1,64)) != $null) {
    var %msn.msgsend $replace($1-,é,Ã©,è,Ã¨,à,$+(Ã,$chr(160)),ç,Ã§,ê,Ãª,ù,Ã¹,ë,Ã«,ï,Ã¯,É,Ã‰,À,Ã€,È,Ãˆ,ô,Ã´,â,Ã¢)
    sockwrite -n board $+ $remtok($active,@,1,64) MSG  2  N $calc($len($1-) + 132)
    sockwrite -n board $+ $remtok($active,@,1,64) MIME-Version: 1.0
    sockwrite -n board $+ $remtok($active,@,1,64) Content-Type: text/plain; charset=UTF-8
    sockwrite -n board $+ $remtok($active,@,1,64) X-MMS-IM-Format: FN=Microsoft%20Sans%20Serif; EF=; CO=0; CS=0; PF=22
    sockwrite -n board $+ $remtok($active,@,1,64)
    sockwrite board $+ $remtok($active,@,1,64) %msn.msgsend
    aline -p $active %msn.lines < $+ %msn.user $+ > $1-
  }
  else {
    echo -a Erreur ... reconnexion avec $remtok($active,@,1,64) ... le message suivant n'a pu être envoyé: $1-
    sockwrite -n msnlogin2 XFR 11 SB
    set %msn.call $remtok($active,@,1,64)
  }
}

menu @* {
  Effacer cette fenêtre:clear
  Effacer toutes les fenêtres:clearall
  -
  Fermer cette fenêtre:{ window -c $active | sockclose board $+ $remtok($active,@,1,64) }
}
