begin process at 2010 03 19 02:15:34
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Bots

 > UN BOT XDCC EN MIRC

UN BOT XDCC EN MIRC


 Information sur la source

Note :
8,91 / 10 - par 11 personnes
8,91 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Bots Classé sous :bot, xdcc, transfert, packet Niveau :Débutant Date de création :21/08/2005 Date de mise à jour :23/08/2005 00:00:24 Vu / téléchargé :16 504 / 946

Auteur : roomsmush

Ecrire un message privé
Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Bon voila c'est mon tout premier code en irc, il permet d'etre soi meme un bot xdcc qui reagit aux commandes xdcc list, send #pack, remove , donc pour le faire marcher il faut creer un fichier c:\program files\mirc\xdcc.mrc et taper /load -rs xdcc.mrc ds une fenetre qqconque
donc tout n'est pas parametrable (le nb de slot et la liste d'attente) mais j'attend toutes vos suggestions pour pouvoir ameliorer mon code

Source

  • on *:LOAD:{ echo Script Loaded!
  • write -c pack.txt
  • dialog -md xdcc_ xdcc_
  • }
  • ;=================================================================================
  • menu channel,menubar {
  • XDCC bot
  • .gestion du xdcc:dialog -md xdcc_ xdcc_
  • }
  • ;=================================================================================
  • On *:CONNECT: { write -c list.txt }
  • On *:TEXT:!list:*:{
  • notice $nick $me (XDCC) 2 slots d'envoie, liste d'attente de max 10 personnes, $lines(pack.txt) fichiers partagés
  • }
  • On *:TEXT:*xdcc*:?:{
  • if ( $2 == list ) { listpack $nick }
  • elseif ( $2 == send ) {
  • if ( $3 <= $lines(pack.txt) ) addtoqueu $nick $3
  • else notice $nick pack non existant
  • }
  • elseif ( $2 == remove ) { remfrqueu $nick }
  • }
  • On *:SENDFAIL:*: {
  • var %lign = 1, %nblines = $lines(list.txt)
  • while ( %lign <= %nblines && $gettok($read(list.txt,%lign),1,32) != $nick ) {
  • inc %lign
  • }
  • if ( %lign <= %nblines ) {
  • notice $nick transfert de $deltok($read(pack.txt,$gettok($read(list.txt,%lign),2,32),1,124) interrompu ... dsl :(
  • write -dl %lign list.txt
  • dcc send $gettok($read(list.txt,2),1,124)) $gettok($read(pack.txt,$gettok($read(list.txt,2),2,32))),1,124)
  • }
  • }
  • on *:FILESENT:*: {
  • var %lign = 1, %nblines = $lines(list.txt)
  • while ( %lign <= %nblines && $gettok($read(list.txt,%lign),1,32) != $nick ) {
  • inc %lign
  • }
  • if ( %lign <= %nblines ) {
  • notice $nick transfert de $deltok($read(pack.txt,$gettok($read(list.txt,%lign),2,32)),1,124) accompli
  • write -dl %lign list.txt
  • dcc send $gettok($read(list.txt,2),1,124)) $gettok($read(pack.txt,$gettok($read(list.txt,2),2,32))),1,124)
  • }
  • }
  • alias listpack {
  • var %lign = 1, %nblines = $lines(pack.txt)
  • notice $1 anime-team's XDCC, 2 slot d'envoie , liste d'attentes $calc( 12 - $lines(pack.txt) )/12
  • notice $1 pour avoir un pack, tapez /msg $me xdcc send numero_du_pack
  • while ( %lign <= %nblines ) {
  • notice $1 pack %lign : $deltok($read(pack.txt,%lign),1,124)
  • inc %lign
  • }
  • notice $1 %nblines fichiers partagés
  • }
  • alias addtoqueu {
  • if ( $lines(list.txt) < 12 ) {
  • if ( $read(list.txt, w, $1) != $1 ) {
  • write list.txt $1 $2
  • notice $1 vouz avez été ajouté en position $lines(list.txt)
  • if ( $lines(list.txt) < 3 ) {
  • notice $1 envoi du pack : $deltok($read(pack.txt,$2),1,124)
  • dcc send $1 $gettok($read(pack.txt,$2),1,124)
  • }
  • }
  • else { notice $1 vous ete deja present dans la liste d'attente }
  • }
  • else { notice $1 liste pleine }
  • }
  • alias remfrqueu {
  • var %lign = 1, %nblines = $lines(list.txt)
  • while ( %lign <= %nblines && $gettok($read(list.txt,%lign),1,124) != $1 ) {
  • inc %lign
  • }
  • if ( %lign <= %nblines ) {
  • write -dl %lign list.txt
  • notice $1 vous avez bien été enlevé de la liste d'attente :)
  • }
  • else { notice $1 dsl zetes pas dans la liste d'attente :( }
  • }
  • ;========================================================================================
  • dialog xdcc_ {
  • title "Xdcc"
  • size -1 -1 412 129
  • option dbu
  • button "Ajouter un fichier", 2, 334 11 65 15
  • list 1, 9 11 312 105, size
  • box "Gestion de votre Xdcc", 7, 3 4 405 116
  • button "Supprimer un fichier", 3, 334 32 65 15
  • button "Move Up", 5, 334 75 65 15
  • button "Modifier une description", 4, 334 53 65 15
  • button "Move Down", 6, 334 97 65 15
  • }
  • On *:DIALOG:xdcc_:*:*: {
  • if ( $devent == init ) {
  • var %lign = 1, %nblines = $lines(pack.txt)
  • while ( %lign <= %nblines ) {
  • did -a xdcc_ 1 $read(pack.txt,%lign)
  • inc %lign
  • }
  • }
  • elseif ( $devent == sclick ) {
  • if ( $did == 2 ) {
  • var %nam = $sfile(C:\,Ajouter un fichier,Ajouter)
  • if ( %nam ) {
  • write pack.txt %nam
  • did -a xdcc_ 1 %nam
  • }
  • }
  • elseif ( $did == 3 ) {
  • if ( $did(1).sel ) {
  • write -dl $did(1).sel pack.txt
  • did -d xdcc_ 1 $did(1).sel
  • }
  • }
  • elseif ( $did == 4 ) {
  • if ( $did(1).sel ) {
  • var %temp = $read(pack.txt,$gettok($did(1).sel,1,124))
  • write -l $did(1).sel pack.txt $+(%temp,|,$?=" $+(entrez une description pour le fichier,$chr(32),%temp) ")
  • did -o xdcc_ 1 $did(1).sel $read(pack.txt,$did(1).sel)
  • }
  • }
  • elseif ( $did == 5 ) {
  • if ( $did(1).sel ) {
  • if ( $calc( $did(1).sel - 1 ) > 0 ) {
  • var %temp = $read(pack.txt,$did(1).sel) , %did_ = $did(1).sel , %didm_ = $calc( $did(1).sel - 1 )
  • did -o xdcc_ 1 %didm_ %temp
  • did -o xdcc_ 1 %did_ $read(pack.txt,%didm_)
  • write -l %did_ pack.txt $read(pack.txt,%didm_)
  • write -l %didm_ pack.txt %temp
  • }
  • }
  • }
  • elseif ( $did == 6 ) {
  • if ( $did(1).sel ) {
  • if ( $calc( $did(1).sel + 1 ) <= $lines(pack.txt) ) {
  • var %temp = $read(pack.txt,$did(1).sel) , %did_ = $did(1).sel , %didm_ = $calc( $did(1).sel + 1 )
  • did -o xdcc_ 1 %didm_ %temp
  • did -o xdcc_ 1 %did_ $read(pack.txt,%didm_)
  • write -l %did_ pack.txt $read(pack.txt,%didm_)
  • write -l %didm_ pack.txt %temp
  • }
  • }
  • }
  • }
  • }
on *:LOAD:{ echo Script Loaded! 
write -c pack.txt
dialog -md xdcc_ xdcc_
}
;=================================================================================
menu channel,menubar {
  XDCC bot
  .gestion du xdcc:dialog -md xdcc_ xdcc_
}
;=================================================================================
On *:CONNECT: { write -c list.txt } 

On *:TEXT:!list:*:{
notice $nick $me (XDCC) 2 slots d'envoie, liste d'attente de max 10 personnes, $lines(pack.txt) fichiers partagés
}

On *:TEXT:*xdcc*:?:{ 
  if ( $2 == list ) { listpack $nick } 
  elseif ( $2 == send ) { 
    if ( $3 <= $lines(pack.txt) ) addtoqueu $nick $3 
    else notice $nick pack non existant 
  } 
  elseif ( $2 == remove ) { remfrqueu $nick } 
} 

On *:SENDFAIL:*: { 
  var %lign = 1, %nblines = $lines(list.txt) 
  while ( %lign <= %nblines && $gettok($read(list.txt,%lign),1,32) != $nick ) { 
    inc %lign 
  } 
  if ( %lign <= %nblines ) { 
    notice $nick transfert de $deltok($read(pack.txt,$gettok($read(list.txt,%lign),2,32),1,124) interrompu ... dsl :( 
    write -dl %lign list.txt 
    dcc send $gettok($read(list.txt,2),1,124)) $gettok($read(pack.txt,$gettok($read(list.txt,2),2,32))),1,124) 
  } 
} 

on *:FILESENT:*: { 
  var %lign = 1, %nblines = $lines(list.txt) 
  while ( %lign <= %nblines && $gettok($read(list.txt,%lign),1,32) != $nick ) { 
    inc %lign 
  } 
  if ( %lign <= %nblines ) { 
    notice $nick transfert de $deltok($read(pack.txt,$gettok($read(list.txt,%lign),2,32)),1,124) accompli 
    write -dl %lign list.txt 
    dcc send $gettok($read(list.txt,2),1,124)) $gettok($read(pack.txt,$gettok($read(list.txt,2),2,32))),1,124) 
  } 
} 

alias listpack { 
  var %lign = 1, %nblines = $lines(pack.txt) 
  notice $1 anime-team's XDCC, 2 slot d'envoie , liste d'attentes $calc( 12 - $lines(pack.txt) )/12
  notice $1 pour avoir un pack, tapez /msg $me xdcc send numero_du_pack 
  while ( %lign <= %nblines ) { 
    notice $1 pack %lign : $deltok($read(pack.txt,%lign),1,124) 
    inc %lign 
  } 
  notice $1 %nblines fichiers partagés 
} 

alias addtoqueu { 
  if ( $lines(list.txt) < 12 ) { 
    if ( $read(list.txt, w, $1) != $1 ) { 
      write list.txt $1 $2 
      notice $1 vouz avez été ajouté en position $lines(list.txt) 
      if ( $lines(list.txt) < 3 ) { 
        notice $1 envoi du pack : $deltok($read(pack.txt,$2),1,124) 
        dcc send $1 $gettok($read(pack.txt,$2),1,124) 
      } 
    } 
    else { notice $1 vous ete deja present dans la liste d'attente } 
  } 
  else { notice $1 liste pleine } 
} 


alias remfrqueu { 
  var %lign = 1, %nblines = $lines(list.txt) 
  while ( %lign <= %nblines && $gettok($read(list.txt,%lign),1,124) != $1 ) { 
    inc %lign 
  } 
  if ( %lign <= %nblines ) { 
    write -dl %lign list.txt 
    notice $1 vous avez bien été enlevé de la liste d'attente :) 
  } 
  else { notice $1 dsl zetes pas dans la liste d'attente :( } 
} 

;======================================================================================== 
dialog xdcc_ { 
  title "Xdcc" 
  size -1 -1 412 129 
  option dbu 
  button "Ajouter un fichier", 2, 334 11 65 15 
  list 1, 9 11 312 105, size 
  box "Gestion de votre Xdcc", 7, 3 4 405 116 
  button "Supprimer un fichier", 3, 334 32 65 15 
  button "Move Up", 5, 334 75 65 15 
  button "Modifier une description", 4, 334 53 65 15 
  button "Move Down", 6, 334 97 65 15 
} 

On *:DIALOG:xdcc_:*:*: { 
  if ( $devent == init ) { 
    var %lign = 1, %nblines = $lines(pack.txt) 
    while ( %lign <= %nblines ) { 
      did -a xdcc_ 1 $read(pack.txt,%lign) 
      inc %lign 
    } 
  } 
  elseif ( $devent == sclick ) { 
    if ( $did == 2 ) { 
      var %nam = $sfile(C:\,Ajouter un fichier,Ajouter) 
      if ( %nam ) { 
        write pack.txt %nam 
        did -a xdcc_ 1 %nam 
      } 
    } 
    elseif ( $did == 3 ) { 
      if ( $did(1).sel ) { 
        write -dl $did(1).sel pack.txt 
        did -d xdcc_ 1 $did(1).sel 
      } 
    } 
    elseif ( $did == 4 ) { 
      if ( $did(1).sel ) { 
        var %temp = $read(pack.txt,$gettok($did(1).sel,1,124)) 
        write -l $did(1).sel pack.txt $+(%temp,|,$?=" $+(entrez une description pour le fichier,$chr(32),%temp) ") 
        did -o xdcc_ 1 $did(1).sel $read(pack.txt,$did(1).sel) 
      } 
    } 
    elseif ( $did == 5 ) { 
      if ( $did(1).sel ) { 
        if ( $calc( $did(1).sel - 1 ) > 0 ) { 
          var %temp = $read(pack.txt,$did(1).sel) , %did_ = $did(1).sel , %didm_ = $calc( $did(1).sel - 1 ) 
          did -o xdcc_ 1 %didm_ %temp 
          did -o xdcc_ 1 %did_ $read(pack.txt,%didm_) 
          write -l %did_ pack.txt $read(pack.txt,%didm_) 
          write -l %didm_ pack.txt %temp 
        } 
      } 
    } 
    elseif ( $did == 6 ) { 
      if ( $did(1).sel ) { 
        if ( $calc( $did(1).sel + 1 ) <= $lines(pack.txt) ) { 
          var %temp = $read(pack.txt,$did(1).sel) , %did_ = $did(1).sel , %didm_ = $calc( $did(1).sel + 1 ) 
          did -o xdcc_ 1 %didm_ %temp 
          did -o xdcc_ 1 %did_ $read(pack.txt,%didm_) 
          write -l %did_ pack.txt $read(pack.txt,%didm_) 
          write -l %didm_ pack.txt %temp 
        } 
      } 
    } 
  } 
}

 Conclusion

donc y'a pê des erreurs etc et j'attend vraiment vraiment vraiment vraiment impatiemment toutes vos suggestions pour l'ameliorer , l'optimiser etc ...
merci infiniment pour tout vos commentaires !

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

21 août 2005 17:15:38 :
eu j'av oublié un truc lol dsl
21 août 2005 18:37:08 :
code eclairci variable locale ds certain remote
21 août 2005 18:54:16 :
remplacement des variables inutiles par des arguments pour fonction
21 août 2005 21:22:03 :
des optimisations ds les boucles
22 août 2005 20:19:33 :
ajout d'un dialogue pour parametrer les fichiers partagées !
22 août 2005 22:10:42 :
correction de bugs / mise sous forme *.mrc / ajout d'un zip & d'un apercu
23 août 2005 00:00:24 :
rajout du !list

 Sources de la même categorie

Source avec Zip SERVICE GEOFRONT (PERL) par iZyTeHPariaH
Source avec Zip TCL EGGDROP par aliassangelius
ANIMATION POUR BOT par michounou
RECORD AFFLUENCE MULTI-SALON par extarsik
Source avec Zip Source avec une capture LOGCHAN BY DIIMS :: POUR BOT :: TOTALEMENT CONFIGURABLE par sodims

 Sources en rapport avec celle ci

Source avec Zip SERVICE GEOFRONT (PERL) par iZyTeHPariaH
LA CONFIGURATION D'UN EGGDROP QUI ENLÈVE LES BANS APRÈS X ... par Atok
Source avec Zip Source avec une capture SERVEUR DE FICHIERS XDCC par donkishock
Source avec Zip Source avec une capture LOGCHAN BY DIIMS :: POUR BOT :: TOTALEMENT CONFIGURABLE par sodims
Source avec Zip BIOTECH [V1.0] par kassak1

Commentaires et avis

Commentaire de COOLMAN002 le 21/08/2005 17:20:39

Pk tu SET avant de faire une while ? un VAR est mieux...

Tu dis qui faut créer un fichier.. pk tu le ferais pas via un event ON LOAD ?

Dans ton event ON TEXT, tu utilises "%nam" mais, pk tu mets pas directement "$nick" après l'alias, et dans l'alias tu renvois le "$nick" via "$1"

(Exemple:
  if ( $2 == list ) { listpack $nick }
..
  notice $1 anime-team's XDCC, 2 slot d'envoie , max liste d'attente = 10 personnes
)

Idem pour ton "%pack"

Ton code est pas très clair (N'hésite pas à retourner a la ligne pour que se soit plus lisible)

Perso j'aime pas ça :\ Je note pas.

Commentaire de roomsmush le 21/08/2005 18:55:17

voila g fait tout comme t'as dit ...
c mieu ?

Commentaire de COOLMAN002 le 21/08/2005 19:16:16

Oui c'est mieux :)

Dan ton evenement ON TEXT, (send) faudrais que tu vérifies si "$3" existe.

Pour tes whiles, faut pas mettre d'identifieur ($machin) dedans..
   var %lign = 1
   while ( %lign <= $lines(list.txt)..

<devient>

var %lign = 1, %lign2 =  $lines(list.txt)
whil %lign <= %lign2 ...


Tes alias, tu peux les mettre en local (alias -l <Nom de l'alias>).

Commentaire de roomsmush le 22/08/2005 20:22:50

maieuu qui c qui m'as mis un 1 ? ...
bon voila g rajouté un dialogue pour parametrer les fichiers partagées ... pfiou ct cho kan mm

...
bon sinon y'a personne qui peut me dire ce que je pourrais optimiser d'autres ?
ou bien si qqun l'a testé , si y'a des bugs ou autres !!
merci infiniment d'avance !!

Commentaire de kickeur le 26/08/2005 16:13:28

comment on s'en sert ? les commandes sont ... ?

Commentaire de tempusus le 28/08/2005 12:07:54 administrateur CS

bonjour,

personnelement je n'aime pas les mauvaises notes sans justification. les 1 etant mises "gratuitement", ils sont supprimés.

Tempusus
Admin CS

Commentaire de kickeur le 28/08/2005 19:00:03

dsl jai lu le code et j'ia compris merci tres bon remote !!

Commentaire de koma92 le 01/04/2006 15:04:07

c ce que je cherchais, merci pour le script ;p

Commentaire de DblK le 08/06/2006 10:19:26

J'ai un problème avec cette source. Tout marche correctement sauf que quand j'ai plusieurs slot en attente, lorsque je télécharge je télécharge toujours le dernier slot. Ce qui m'a fois est assez embettant. Mais sinon la source marche nickel j'adore. J'espère avoir bientôt le patch de la nouvelle version corrigeant ce bug.

Merci à toi.

Commentaire de bakaman le 04/08/2006 17:40:05

Bonjour ! J'aimerais bien savoir si quelqu'un pourrait modifié le script de façon à ce qu'il n'y ait qu'un seul slot d'envoi. Car vu qu'il y a 2 slots d'envois... le débit est donc divisé en 2. Je ne voudrais qu'il n'y en ait qu'un seul pour profiter pleinement de la bande passant. Merci à l'âme généreuse qui pourra modifié ceci ou me dire comment le modifié.

Commentaire de gon288 le 24/11/2006 17:57:15

bonjour! peut-on modifier le chemin d'acces du dossier du xdcc en le remplacent par un chemin ftp?

Commentaire de narutosuki le 30/07/2007 00:09:08

Merci pour ce script, mais je voudrai savoir. Comment on fait pour que quand on tappel !list le bot nous donne la liste des fichiers au lieux de : name 2 slots d'envoie, liste d'attente 10 personnes max, 4 fichiers partagés ?

Commentaire de kadoucijetaime le 16/11/2007 01:53:20

bonjour.
Merci pour ce script qui est fort sympa.
Personellemnt il y a 2 modifications qui me semblent assez vitales. Pourquoi 2 slots et pas 3 ou 1 ?
C'est un peu dommage ce choix arbitraire qu'on peut vouloir faire varier selon les connections.
Comme bakaman j'aimerai beaucoup 1 seul slot.

Et deuxièmement (mais là ç'est peut etre très complexe, j'y connais pas grand chose) ce serait bien si on pouvait activer ce script sur des chans bien définis, autrement dit qu'il ne marche que sur tel ou tel chan choisi et non pas sur tous les chans ou je me trouve car sur pas mal de chans ce genre de script me fera ban ni plus ni moins.

Commentaire de griffondorr le 30/10/2008 14:11:42

j'ai le meme problème que DblK , faudrais vérifier sa svp le plus rapidement possible, car sa m'empeche de retélécharger le fichier à cause des slots sans cesse en attente.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

installer un bot sur son canal [ par BlackWizzard ] salut! tt le monde!je voudrais savoir comment instaler et administrer un bot sur un channel (le mien C #hackz sur irc.respublica.fr)...G deja un bot m créer un bot sous quakenet [ par benlesurvivant ] est-ce que kkun pourrais m'epliquer comment créer un bot sous quakenet. Merci d'avance :-) Améliorer un bot pour un chan de clan counter-strike [ par JeKto ] Salut !Je voudrai améliorer mon bot pour mon clan j'ai dejà quelsues commandes TEXT mais je voudrai par exemple que le bot guarde en memoire le nick d Serveur IRC [ par Delirium ] Hello :)J'ai crée un nouveau petit reseau IRC dont le but est^la convivialité !!pour le moment il n'est pas encore "super" fréquanté mais avec des gen BoT Tid@m (NB s'abstenir ;) [ par Tidam ] Voila C tre simple meme la reponse doit etre simple mais j'arrive po a trouver Tout ce que je ve c'est que quand qq'un me dit qqe chose le bot crée un bot pickup [ par Goofa ] Salut, je souhaite creer ou trouver un bot irc afin d'organiser des pickup , si qqn pouvais m'expliquer comment faire, thx. xdcc [ par usher ] bonjour je voudrais savoir comment on pourrais prendre des xdcc abandonnés si vous savez merci bien de me repondre -= Access à un Bot =- [ par Nancy ] Salut la gang! Bon, j'ai un tit probleme :( J'aimerais faire une ligne de commande à mon bot pour ajouter quelqun automatiquement à mon Bot .Qqn pourr voila wandoo bot www.demande-gev.fr.st [ par HatMan ] vous avez fait une demande d'irix mais il ne veut pas de votre salon sur sont whoisfaite une demande de Gevwww.demande-gev.fr.stvoila alors si vous vo Un léger problème de $ial [ par KaRiLLe ] Bonjour tout le monde :))Je me permets d'écrire parce que j'ai un léger problème dans une de mes lignes de code mirc pour mon bot! En fait, je voudrai


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,640 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales