Mirc ftp

Contenu du snippet

cette addon vous permet de cree un server xftp en dcc
il a un system d'adminstration avec des droit d'access read write delet et admin et une reconnaissance par login et pass

Source / Exemple :

;mIRC-FTP V1.5 par aerith "aeris_vallee@hotmail.com"
;Votre DCC chat et send doit fonctionner
;Pour une utilisation partiel ou complette dans un script conacter moi
;Ne jamais activer d'away si le ftp tourne ca va bien flooder sinon

;##########MENU##########
menu channel,menubar {
  -
  mIRC FTP 
  .run: if (!$window(@mIRC-FTP)) ftpstart
  .configure: if (!$dialog(ftpconfig)) dialog -m ftpconfig ftpconfig
}

;##########CONFIG##########
dialog ftpconfig {
  title "mIRC-FTP -=Config=-"
  size -1 -1 164 91
  option dbu
  box "Access", 1, 1 0 120 39
  text "Login", 2, 3 7 15 10
  edit "", 3, 18 7 40 10, autohs
  text "Password", 4, 59 7 25 10
  edit "", 5, 84 7 35 10, autohs
  check "lire", 6, 3 17 25 10
  check "ecrire", 7, 33 17 25 10
  check "suprimer", 8, 60 17 30 10
  check "admin", 9, 93 17 25 10
  text "Repertoire", 10, 3 27 25 10
  edit "", 11, 29 27 70 10, autohs
  button "choix", 18, 99 27 20 10
  list 12, 1 40 120 50, size vsbar
  button "ajouter", 13, 124 3 37 10
  button "suprimer", 14, 124 14 37 10
  check "Loger action", 15, 122 25 45 10
  check "Auto run", 16, 122 35 45 10
  check "Lancer avec", 19, 122 45 45 10
  text "viewer", 20, 130 55 37 10
  button "Lancer FTP", 21, 124 69 37 10
  button "Sortir", 17, 124 80 37 10, ok cancel
}
on *:dialog:ftpconfig:init:*:{
  if ($mircftp(option,log) == on ) did -c ftpconfig 15
  if ($mircftp(option,autorun) == on ) did -c ftpconfig 16
  if ($mircftp(option,viewer) == on ) did -c ftpconfig 19
  ftploginlist
}
on *:dialog:ftpconfig:sclick:*:{
  ;##ajouter login##
  if ($did == 13) {
    if (!$did(3)) { set %ftperror manque un login | $dialog(ftperror,ftperror) | halt }
    if (!$did(5)) { set %ftperror manque un password | $dialog(ftperror,ftperror) | halt }
    if (!$did(11)) { set %ftperror manque un repertoire | $dialog(ftperror,ftperror) | halt }
    if ($mircftp($did(3),login)) {
      set %ftperror login existe deja, confirmer modification
      $dialog(ftperror,ftperror)
      if (%ftpok == no) halt
    }
    var %a = +
    if ($did(6).state == 1) var %a = %a $+ r
    if ($did(7).state == 1) var %a = %a $+ w
    if ($did(8).state == 1) var %a = %a $+ d
    if ($did(9).state == 1) var %a = %a $+ a
    $mircftp($did(3),login,$did(3))
    $mircftp($did(3),pass,$did(5))
    $mircftp($did(3),access,%a)
    $mircftp($did(3),directory,$did(11))
    ftpaline addlogin par 4 consol 7 $did(3) $did(5) %a $did(11)
    ftploginlist
  }
  ;##suprimer login##
  elseif ($did == 14) {
    if (!$did(3)) { set %ftperror manque un login | $dialog(ftperror,ftperror) | halt }
    if ($mircftp($did(3),login)) {
      set %ftperror confirmer supression pour $did(3)
      $dialog(ftperror,ftperror)
      if (%ftpok == no) halt
    }
    else {
      set %ftperror $did(3) pas dans la database
      $dialog(ftperror,ftperror)
      halt
    }
    $mircftp(del,$did(3))
    ftpaline dellogin par 4 consol 7 $did(3) $did(5) %a $did(11)
    ftploginlist
  }
  ;##action log##
  elseif ($did == 15) {
    if (($mircftp(option,log) == on) && ($did(15).state != 1)) {
      ftpaline log mi sur 7 OFF
      $mircftp(option,log,off)
    } 
    else {
      ftpaline log mi sur 7 ON
      $mircftp(option,log,on)

    }
  }
  ;##auto run##
  elseif ($did == 16) {
    if (($mircftp(option,autorun) == on) && ($did(16).state != 1)) {
      $mircftp(option,autorun,off)
      ftpaline autorun mi sur 7 OFF
    } 
    else {
      $mircftp(option,autorun,on)
      ftpaline autorun mi sur 7 ON
    }
  }
  ;##choix repertoire##
  elseif ($did == 18) {
    var %a = $sdir(C:,choisir repertoir maison)
    did -ra ftpconfig 11 %a
  }
  ;##start avec viewer##
  elseif ($did == 19) {
    if (($mircftp(option,viewer) == on) && ($did(19).state != 1)) {
      $mircftp(option,viewer,off)
      ftpaline viewer mi sur 7 OFF
    } 
    else {
      $mircftp(option,viewer,on)
      ftpaline viewer mi sur 7 ON
    }
  }
  ;##lancer ftp##
  elseif ($did == 21) {
    if (!$window(@mIRC-FTP)) ftpstart
  }
}
;##double clik dans la liste##
on *:dialog:ftpconfig:dclick:12:{
  var %a = $ini(mircftplogin.ini,$did(12).sel)
  if (r isin $mircftp(%a,access)) did -c ftpconfig 6
  else did -u ftpconfig 6
  if (w isin $mircftp(%a,access)) did -c ftpconfig 7
  else did -u ftpconfig 7
  if (d isin $mircftp(%a,access)) did -c ftpconfig 8
  else did -u ftpconfig 8
  if (a isin $mircftp(%a,access)) did -c ftpconfig 9
  else did -u ftpconfig 9
  did -ra ftpconfig 3 $mircftp(%a,login)
  did -ra ftpconfig 5 $mircftp(%a,pass)
  did -ra ftpconfig 11 $mircftp(%a,directory)
}

;##########ERROR DIALOG#########
dialog ftperror {
  title "mIRC-FTP -=Erreur=-"
  size -1 -1 100 50
  option dbu
  text %ftperror, 1, 0 0 100 40, center
  button "OK", 2, 0 40 100 10, ok
}
on *:ftperror:init:*:{
  set %ftpok no
}
on *:ftperror:sclick:2:{
  set %ftpok ok
}

;##########MSG COMMANDES##########
on *:text:*:?: {
  if ($window(@mIRC-FTP)) {
    ;##msg help##
    if ($1 == ftphelp) {
      notice $nick auth, /msg $me ftpauth <login> <pass>
      notice $nick help : voir help user
      notice $nick adminhelp : voir help admin
    }
    ;##ftpauth <login> <pass>##
    elseif ($1 == ftpauth) {
      ftpaline ftpauth par 4 $nick 7 $2-
      if ($mircftp($2,login)) {
        if ($mircftp($2,auth) != ok) {
          if ($mircftp($2,pass) == $3) {
            if (!$chat($nick)) dcc chat $nick
            writeini -n mircftp/nick.ini nick $2 $nick
            writeini -n mircftp/nick.ini anick $nick $2
          }
          else notice $nick pass incorect
        }
        else notice $nick deja identifier
      }
      else notice $nick login incorect, /msg $me ftpauth <login> <pass>
    }
    ftpviewerlist

    ;retirer si non utiliser dans un script
    ;close -m $nick
  }
}

;##########DCC CHAT COMMANDES##########
on *:chat:*: {
  if ($window(@mIRC-FTP)) {
    ;##.access##
    if ($1 == .access) {
      if (a isin $mircftp($ftpnick($nick),access)) {
        if ($mircftp($ftpnick($nick),auth) == ok) {
          msg =$nick $ini(mircftp/login.ini,0) login dans la database
          var %a = 1
          while (%a <= $ini(mircftp/login.ini,0)) {
            var %b = $ini(mircftp/login.ini,%a)
            if (%b) msg =$nick 4 $mircftp(%b,login) 7 $mircftp(%b,access) 14 $mircftp(%b,directory)
            inc %a 1
          }
          ftpaline access par 4 $nick
        }
        else msg =$nick utiliser ftpauth
      }
      else msg =$nick un access admin est necessaire
    }
    ;##.addlogin <login> <pass> +rwd <repertoire>##
    elseif ($1 == .addlogin) {
      if (a isin $mircftp($ftpnick($nick),access)) {
        if ($mircftp($ftpnick($nick),auth) == ok) {
          if (($2) && ($3) && ($4) && ($5) $$ ($chr(43) isin $4)) {
            if (a !isin $4) {
              if ($exists($5-)) {
                if (!$mircftp($2,login)) {
                  if ($mircftp($ftpnick($nick),directory) isin $5) {
                    $mircftp($2,login,$2)
                    $mircftp($2,pass,$3)
                    $mircftp($2,access,$4)
                    $mircftp($2,directory,$5-)
                    msg =$nick login ( $+ $mircftp($2,login) $+ )( $+ $mircftp($2,access) $+ )( $+ $mircftp($2,directory) $+ )
                    ftpaline addlogin par 4 $nick 7 $2-
                  }
                  else msg =$nick vous ne pouvez metre en repertoire de base que la ou vous avez access
                }
                else msg =$nick access existant
              }
              else msg =$nick manque un repertoire
            }
            else msg =$nick un admin ne peut pas crée d'admin
          }
          else msg =$nick erreur syntax, .addlogin <login> <pass> -rwd <directory>
        }
        else msg =$nick utiliser ftpauth
      }
      else msg =$nick un access admin est necessaire
    }
    ;##.dellogin <login>##
    elseif ($1 == .dellogin) {
      if (a isin $mircftp($ftpnick($nick),access)) {
        if ($mircftp($ftpnick($nick),auth) == ok) {
          if ($2) {
            if (a !isin $mircftp($2,access)) {
              if ($mircftp($2,login)) {
                $mircftp(del,$2)
                msg =$nick login $2 suprimer
                ftpaline dellogin par 4 $nick 7 $2
              }
              else msg =$nick login non existant
            }
            else msg =$nick un admin ne peut pas suprimer d'access admin
          }
          else msg =$nick erreur syntax, .dellogin <login>
        }
        else msg =$nick utiliser ftpauth
      }
      else msg =$nick un access admin est necessaire
    }
    ;##.newpass <login> <new_pass>##
    elseif ($1 == .newpass) {
      if (a isin $mircftp($ftpnick($nick),access)) {
        if ($mircftp($ftpnick($nick),auth) == ok) {
          if (($2) && ($3)) {
            if (a !isin $mircftp($2,access) {
              if ($mircftp($2,login)) {
                $mircftp($2,pass,$3)
                msg =$nick pass de $2 changer pour $3
                ftpaline newpass par 4 $nick 7 $2-
              }
              else msg =$nick login non existant
            }
            else msg =$nick un admin ne peut pas modifier un pass admin
          }
          else msg =$nick erreur syntax, .newpass <login> <new_pass>
        }
        else msg =$nick utiliser ftpauth
      }
      else msg =$nick un access admin est necessaire
    }
    ;##.newlogin <login> <new_login>##
    elseif ($1 == .newlogin) {
      if (a isin $mircftp($ftpnick($nick),access)) {
        if ($mircftp($ftpnick($nick),auth) == ok) {
          if (($2) && ($3) $$ ($4)) {
            if (a !isin $mircftp($2,access) {
              if ($mircftp($2,login)) {
                $mircftp($3,login,$3)
                $mircftp($3,pass,$mircftp($2,pass))
                $mircftp($3,access,$mircftp($2,access))
                $mircftp($3,directory,$mircftp($2,directory))
                $mircftp(del,$2)
                msg =$nick login de $2 changer pour $3
                ftpaline newlogin par 4 $nick 7 $2-
              }
              else msg =$nick login non existant
            }
            else msg =$nick un admin ne peut pas modifier un access admin
          }
          else msg =$nick erreur syntax, .newlogin <login> <new_login>
        }
        else msg =$nick utiliser ftpauth
      }
      else msg =$nick admin access required
    }
    ;##.newaccess <login> +rwd##
    elseif ($1 == .newaccess) {
      if (a isin $mircftp($ftpnick($nick),access)) {
        if ($mircftp($ftpnick($nick),auth) == ok) {
          if (($2) && ($3)) {
            if (a !isin $mircftp($2,access) {
              if ($mircftp($2,login)) {
                $mircftp($2,access,$3)
                msg =$nick access de $2 changer pour $3
                ftpaline newaccess par 4 $nick 7 $2-
              }
              else msg =$nick login non existant
            }
            else msg =$nick un admin ne peut pas modifier un access admin
          }
          else msg =$nick erreur syntax, .newaccess <login> +rwd
        }
        else msg =$nick utiliser ftpauth
      }
      else msg =$nick un access admin est necessaire
    }
    ;##.newdirectory <login> <directory>##
    elseif ($1 == .newdirectory) {
      if (a isin $mircftp($ftpnick($nick),access)) {
        if ($mircftp($ftpnick($nick),auth) == ok) {
          if (($2) && ($3)) {
            if (a !isin $mircftp($2,access) {
              if ($mircftp($2,login)) {
                $mircftp($2,directory,$3-)
                msg =$nick repertoire de $2 changer pour $3
                ftpaline newdirectory par 4 $nick 7 $2-
              }
              else msg =$nick login non existant
            }
            else msg =$nick un admin ne peut pas modifier un access admin
          }
          else msg =$nick erreur syntax, .newdirectory <login> <directory>
        }
        else msg =$nick utiliser ftpauth
      }
      else msg =$nick un access admin est necessaire
    }
    ;##.cd <repertoire>##
    if ($1 == .cd) {
      if ($mircftp($ftpnick($nick),auth) == ok) {
        if ($2 == ..) {
          var %a = $mircftp($ftpnick($nick),curent)
          var %a = $left(%a,$calc($len(%a) - $len($gettok(%a,$numtok(%a,92),92)) - 1))
          if ($exists(%a)) {
            if ($mircftp($ftpnick($nick),directory) isin %a) {
              $mircftp($ftpnick($nick),curent,%a)
            }
            else msg =$nick pas autoriser pour ce repertoire
          }
        }
        else {
          if ($2) {
            var %a = $mircftp($ftpnick($nick),curent) $+ $2- $+ 
            if ($exists(%a)) {
              if ($mircftp($ftpnick($nick),directory) isin %a) {
                $mircftp($ftpnick($nick),curent,%a)
              }
              else msg =$nick pas autoriser pour ce repertoire
            }
            else msg =$nick repertoire %a non existant
          }
          else msg =$nick repertoire %a non existant
        }
        msg =$nick courant: 12 $mircftp($ftpnick($nick),curent)
        ftpaline cd 14 $mircftp($ftpnick($nick),curent) 1 par 4 $nick
      }
      else msg =$nick utiliser ftpauth
    }
    ;##.get <fichier>##
    if ($1 == .get) {
      if (r isin $mircftp($ftpnick($nick),access)) {
        if ($mircftp($ftpnick($nick),auth) == ok) {
          var %a = $mircftp($ftpnick($nick),curent) $+ $2-
          if ($exists(%a)) {
            dcc send -c $nick %a
            $mircftp($ftpnick($nick),send,%a)
            ftpaline get 14 $mircftp($ftpnick($nick),send) 1 pour 4 $nick
          }
          else msg =$nick fichier   %a   non existant
        }
        else msg =$nick utiliser ftpauth
      }
      else msg =$nick un droit de lecture est necessaire
    }
    ;##.delete <fichier>##
    if ($1 == .delete) {
      if (d isin $mircftp($ftpnick($nick),access)) {
        if ($mircftp($ftpnick($nick),auth) == ok) {
          var %a = $mircftp($ftpnick($nick),curent) $+ $2-
          rename %a mircftpdeleted $+ $2-
          msg =$nick %a  suprimer
          ftpaline delete 14 %a 1 par 4 $nick
        }
        else msg =$nick utiliser ftpauth
      }
      else msg =$nick un droit de supression est necessaire
    }
    ;##.cut <fichier>##
    if ($1 == .cut) {
      if ((r isin $mircftp($ftpnick($nick),access)) && (d isin $mircftp($ftpnick($nick),access))) {
        if ($mircftp($ftpnick($nick),auth) == ok) {
          var %a = $mircftp($ftpnick($nick),curent) $+ $2-
          if ($exists(%a)) {
            rename " $+ %a $+ " "mircftpcut $+ $2- $+ "
            $mircftp($ftpnick($nick),copy,mircftpcut $+ $2-)
            msg =$nick %a  couper
            ftpaline cut 14 %a 1 par 4 $nick
          }
          else msg =$nick fichier  %a  non existant
        }
        else msg =$nick utiliser ftpauth
      }
      else msg =$nick un droit de supression et de lecture est necessaire
    }
    ;##.copy <fichier>##
    if ($1 == .copy) {
      if (w isin $mircftp($ftpnick($nick),access)) {
        if ($mircftp($ftpnick($nick),auth) == ok) {
          var %a = $mircftp($ftpnick($nick),curent) $+ $2-
          if ($exists(%a)) {
            $mircftp($ftpnick($nick),copy,%a)
            msg =$nick %a  copier
            ftpaline copy 14 %a 1 par 4 $nick
          }
          else msg =$nick fichier  %a  non existant
        }
        else msg =$nick utiliser ftpauth
      }
      else msg =$nick un droit de lecture est necessaire
    }
    ;##.paste##
    if ($1 == .paste) {
      if (w isin $mircftp($ftpnick($nick),access)) {
        if ($mircftp($ftpnick($nick),auth) == ok) {
          var %a = $mircftp($ftpnick($nick),copy) 
          if ($exists(%a)) {
            msg =$nick attender, copie en cour...
            if (mircftpcut isin %a) rename " $+ %a $+ " " $+ $mircftp($ftpnick($nick),curent) $+ $nopath(%a) $+ "
            else copy " $+ %a $+ " " $+ $mircftp($ftpnick($nick),curent) $+ "
            msg =$nick $nopath(%a)  coller
            ftpaline paste 14 $nopath(%a) 1 par 4 $nick
          }
          else msg =$nick fichier  %a  non existant
        }
        else msg =$nick utiliser ftpauth
      }
      else msg =$nick un droit d'ecriture est necessaire
    }
    ;##.dir##
    if ($1 == .dir) {
      if ($mircftp($ftpnick($nick),auth) == ok) {
        var %a = $finddir($mircftp($ftpnick($nick),curent),*,0,0,msg =$nick $gettok($1-,$numtok($1-,92),92))
        var %b = $findfile($mircftp($ftpnick($nick),curent),*,0,0,msg =$nick $gettok($1-,$numtok($1-,92),92) - $octet($file($1-).size) - $asctime($file($1-).mtime,dd/mm/yy hh:ss))
        msg =$nick  %a  repertoires trouvés
        msg =$nick  %b  fichiers trouvés
        ftpaline dir 1 par 4 $nick
      }
      else msg =$nick utiliser ftpauth
    }
    ;##.ftphelp##
    elseif ($1 == .ftphelp) {
      ftphelp
    }
    ;##.ftpadminhelp##
    elseif ($1 == .adminhelp) {
      ftpahelp
    }
    if ($dialog(ftpconfig)) ftploginlist
    ftpviewerlist
  }
}

;##########ALIAS##########
;##retourne une variable##
alias mircftp {
  if ($1 == del) remini mircftp/login.ini $2-
  elseif ($1 == option) {
    if (!$3) return $readini mircftp/option.ini option $2
    else writeini -n mircftp/option.ini option $2-
  }
  else {
    if (!$3) return $readini mircftp/login.ini $1 $2
    else writeini -n mircftp/login.ini $1 $2 $3-
  }
}
;##retourn un nick##
alias ftpnick {
  return $readini mircftp/nick.ini anick $1
}
;##convertie en uniter d'octet##
alias octet {
  var %a = $1
  if (%a < 1024) return %a o
  else var %a = $round($calc(%a / 1024),2)
  if (%a < 1024) return %a Ko
  else var %a = $round($calc(%a / 1024),2)
  if (%a < 1024) return %a Mo
  else var %a = $round($calc(%a / 1024),2)
  if (%a < 1024) return %a Go
  else var %a = $round($calc(%a / 1024),2)
  if (%a < 1024) return %a To
  else var %a = $round($calc(%a / 1024),2)
}
;##user help##
alias ftphelp {
  msg =$nick 7 FTP user help 4 (en DCC chat)
  msg =$nick 12 .cd <repertoire> : vous place dans le repertoire
  msg =$nick 12 .cd .. : retourne dans le repertoire parent
  msg =$nick 12 .get <fichier> : vous envoie le fichier
  msg =$nick 12 .delete <fichier> : suprime le fichier
  msg =$nick 12 .cut <fichier> : couper un fichier
  msg =$nick 12 .copy <fichier> : copier un fichier
  msg =$nick 12 .paste : coller un fichier que vous avez couper/copier dans le repertoire courant
  msg =$nick 12 .dir : liste tous les repertoires et fichiers dans le repertoire courant
  msg =$nick 12 .ftphelp : vous donne cette aide
  msg =$nick 12 .ftpadminhelp : vous donne l'aide admin
  msg =$nick 12 pour m'envoyer un fichier si vous avez le flag w, faite moi un DCC send
}
;##admin help##
alias ftpahelp {
  msg =$nick 7 FTP admin help 4 (en DCC chat)
  msg =$nick 12 .access : voir toi les access
  msg =$nick 12 .addlogin <login> <pass> +rwd <repertoire> : ajoute un login
  msg =$nick 12 - les droit : r : lire, w : ecrire, d : suprimer
  msg =$nick 12 .dellogin <login> : suprime un login
  msg =$nick 12 .newpass <login> <new_pass> : change un pass user
  msg =$nick 12 .newlogin <login> <new_login> : change un login user
  msg =$nick 12 .newaccess <login> +rwd : change un access user
  msg =$nick 12 .newdirectory <login> <repertoire> : change un repertoire user
}
;##start ftp##
alias ftpstart {
  remove mircftp/nick.ini
  if (!$exists(mircftp)) mkdir mircftp
  if (!$exists(mircftp/cut)) mkdir mircftp/cut
  if (!$exists(mircftp/deleted)) mkdir mircftp/deleted
  if ($version < 6) { echo -a 4 ERREUR 1 version de mirc $version  trop veille, vous devez en avoir une superieur a 6.01 | halt }
  window -adg0 $+ $iif($mircftp(option,viewer) == on,l30) +lst @mIRC-FTP -1 -1 600 300
  localinfo -u
  creq +m auto
  ; sreq +m auto
  pdcc off
  dcc ignore off
  if (*.*.*.* !iswm $ip) {
    ftpaline 4 ERREUR 1 host local non resolu
    ftpaline mIRC-FTP doit se fermer
    close -@ @mIRC-FTP
    halt
  }
  var %a = 1
  while (%a <= $ini(mircftp/login.ini,0)) {
    var %b = $ini(mircftp/login.ini,%a)
    if ($mircftp(%b,login)) $mircftp(%b,auth,no)
    inc %a 1
  }
  ftpaline 2 ----------------------------------------------------------------------
  ftpaline mIRC-FTP lancer
  ftpaline votre host : 4 $host
  ftpaline votre IP : 7 $ip
  ftpaline 2 ----------------------------------------------------------------------
  var %a = $finddir(mircftp/deleted,*,0,0,ftpaline $gettok($1-,$numtok($1-,92),92))
  ftpaline  %a  fichiers suprimer
  var %b = $findfile(mircftp/cut,*,0,0,ftpaline $gettok($1-,$numtok($1-,92),92))
  ftpaline  %b  fichiers couper, veilliez a verifier

  if ($mircftp(option,viewer) == on) ftpviewerlist
}
;##actions loging##
alias ftpaline {
  if ($mircftp(option,log) == on) write mircftp/log.txt $date $+ - $+ $time $1-
  if ($window(@mIRC-FTP)) aline @mIRC-FTP $1-
}
;##liste tout les login dans le dialog##
alias ftploginlist {
  if ($dialog(ftpconfig)) {
    var %a = 1
    did -r ftpconfig 12
    while (%a <= $ini(mircftp/login.ini,0)) {
      var %b = $ini(mircftp/login.ini,%a)
      if ($mircftp(%b,login)) did -za ftpconfig 12 $mircftp(%b,login) : $mircftp(%b,access) ( $mircftp(%b,directory) )
      inc %a 1
    }
  }
}
;##liste les auther dans le viewer##
alias ftpviewerlist {
  if ($mircftp(option,viewer) == on) {
    dline -l @mIRC-FTP 1-
    var %a = 1
    while (%a <= $ini(mircftp/login.ini,0)) {
      var %b = $ini(mircftp/login.ini,%a)
      if ($mircftp(%b,auth) == ok) {
        aline -l @mIRC-FTP $mircftp(%b,login) ( $+ $readini mircftp/nick.ini nick %b $+ ) : $mircftp(%b,access) 
        aline -l @mIRC-FTP - $mircftp(%b,curent) 
        aline -l @mIRC-FTP - Send : $mircftp(%b,send) , Recive : $mircftp(%b,recive)
        aline -l @mIRC-FTP - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      }
      inc %a 1
    }
  }
}
;##########DIVERS##########
;##a l'ouverture d'un dcc chat##
on *:open:=: {
  if ($window(@mIRC-FTP)) {
    $mircftp($ftpnick($nick),seen,$date $time)
    $mircftp($ftpnick($nick),auth,ok)
    $mircftp(del,$ftpnick($nick),recive)
    $mircftp(del,$ftpnick($nick),send)
    ftpaline access autoriser pour 4 $nick
    msg =$nick 12 bienvenu dans le 7 mIRC-FTP 12 de 4 $me 12 cree par 8,1 aerith
    msg =$nick 2 ----------------------------------------------------------------------
    ftphelp
    if (a isin $mircftp($ftpnick($nick),access)) {
      msg =$nick 2 ----------------------------------------------------------------------
      ftpahelp
    }
    msg =$nick 2 ----------------------------------------------------------------------
    $mircftp($ftpnick($nick),curent,$mircftp($ftpnick($nick),directory))
    msg =$nick courant: 12 $mircftp($ftpnick($nick),directory)
    ftpaline cd 14 $mircftp($ftpnick($nick),directory) 1 par 4 $nick
    ftpviewerlist
  }
}
;##a la fermeture d'un dcc chat##
on *:close:=: {
  if ($window(@mIRC-FTP)) {
    $mircftp($ftpnick($nick),auth,no)
    ftpaline quit 14 $ftpnick($nick) 1 par 4 $nick
    ftpviewerlist
  }
}
;##auto run##
on *:connect: {
  if ($mircftp(option,autorun) == on) timer 1 60 ftpstart
}
;##send ok##
on *:filesent:*: {
  if ($window(@mIRC-FTP)) {
    msg =$nick $filename 4 envoyer
    $mircftp(del,$ftpnick($nick),send)
    ftpaline sended 14 $filename 1 pour 4 $nick
  }
}
;##recive ok##
on *:filecvd:*: {
  if ($window(@mIRC-FTP)) {
    msg =$nick $filename 4 recue
    rename $filename $mircftp($ftpnick($nick),recive)
    msg =$nick $filename deplacer pour $mircftp($ftpnick($nick),recive)
    $mircftp(del,$ftpnick($nick),recive)
    ftpaline recived 14 $filename 1 par 4 $nick
  }
}
;##send fail##
on *:sendfail:*: {
  if ($window(@mIRC-FTP)) {
    msg =$nick $filename 4 erreur d'envoie
    $mircftp(del,$ftpnick($nick),send)
    ftpaline sendfail 14 $filename 1 par 4 $nick
  }
}
;##recive fail##
on *:getfail:*: {
  if ($window(@mIRC-FTP)) {
    msg =$nick $filename 4 erreur de reception
    $mircftp(del,$ftpnick($nick),recive)
    ftpaline recivefail 14 $filename 1 pour 4 $nick
  }
}

;##dcc request##
ctcp ^*:dcc send *:*: {
  if ($window(@mIRC-FTP)) {
    if (w isin $mircftp($ftpnick($nick),access)) {
      if ($mircftp($ftpnick($nick),auth) == ok) {
        dcc get mircftp/temp
        dccallow + $+ $nick
        $mircftp($ftpnick($nick),recive,$mircftp($ftpnick($nick),curent))
        msg =$nick fichier autoriser
        ftpaline sending 14 $mircftp($ftpnick($nick),recive) 1 par 4 $nick
      }
      else msg =$nick utiliser ftpauth
    }
    else msg =$nick  non autoriser a envoyer se fichier, un droit d'ecriture est necessaire
  }
}
;##stop le ftp si la fenetre est fermer##
on *:close:@mIRC-FTP: {
  var %a = 1
  while (%a <= $ini(mircftp/login.ini,0)) {
    var %b = $ini(mircftp/login.ini,%a)
    if ($mircftp(%b,login)) { 
      $mircftp(%b,auth,no)
      $mircftp(del,%b,curent)
      $mircftp(del,%b,recive)
      $mircftp(del,%b,send)
      $mircftp(del,%b,copy)
    }
    inc %a 1
  }
  creq -m ask
  sreq -m ask
  echo -a On Send request : Show get dialog, On Chat request : Show get dialog
  ftpaline stop
}
;##enregistre anick##
on *:nick: {
  var %nick = $ftpnick($nick)
  if (%nick) {
    writeini -n mircftp/nick.ini nick %nick $newnick
    remini mircftp/nick.ini anick $nick
    writeini -n mircftp/nick.ini anick $newnick %nick
    ftpviewerlist
    ftpaline   nick 4 $nick 1 changer en 7 $newnick 1( $+ 14 %nick 1 $+ )
  }
}


Conclusion :

Votre DCC chat et send doit fonctionner
Pour une utilisation partiel ou complette dans un script conacter moi
Ne jamais activer d'away si le ftp tourne ca va bien flooder sinon

#installation#
1) loader l'addon sur un script
2) il vous sufit ensuite de lancer le ftp soit via la console "run mirc-ftp"de configuration
ou depuis les menu channel et menubarre
normalement le ftp configure seul votre dcc

#cree un access#
depuis la console
completer correctement les cases
puis un clik sur ajouter
-> vous pouvez cree que ici les access admin

depuis le dcc chat
.addlogin <login> <pass> +rwd <repertoire> : ajoute un login
les droit : r : lire, w : ecrire, d : suprimer

#pour se connecter aux ftp#
les user doivent utiliser /msg <nick> ftpauth <login> <pass>
toutes les commandes son ensuite donner dans l'aide
elle ressemble a celle sous DOS

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.