begin process at 2008 07 06 07:18:06
1 205 472 membres
51 nouveaux aujourd'hui
14 119 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

BOT SE CONNECTANT EN SOCKET


Information sur la source

Catégorie :AddOns Niveau : Débutant Date de création : 23/12/2003 Date de mise à jour : 23/12/2003 12:08:21 Vu : 5 495

Note :
7,5 / 10 - par 4 personnes
7,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

Description

bonjour je me presente midiebold certain d'entre vou me connaisse sous le nom de dielau je suis debutant en scripting mirc donc voila je voulai savoi se que vous pensez de mon add on,il sagit d'un bot se connectant par socket
les commandes ne sont pas tres avancé est fonctionne toujours par on text ect mai voila j'ai pas trouver le moyen de faire autrement et j'ai pourtant chercher de tuto il me disait juste comment lancer une connection en sock
donc voila si quelqun pouvai m'aider pour ameliorer les commandes yara qua laisser un message

Source

  • alias bot-on {
  • window -ae @ClientServeur
  • sockclose irc-bot
  • ;j'ai etabli la connexion avec le nom "irc-bot" sur la valeur de la variable(%serveur)
  • sockopen irc-bot %serveur
  • echo @ClientServeur 4BOT connecter sur %serveur ,pour voir la liste des commandes tapez /botcommands !
  • }
  • ;connexion
  • on *:sockopen:irc-bot:{
  • ;stoper la connexion lors d'un erreure
  • if ($sockerr) { echo @ClientServeur Erreur ,vous avez été deconecter | return }
  • ;on crée une variable %nick-bot et on rajoute dans la
  • ;partie dialog ".exemple:/set %nick-bot $$?=" entrez la valeur de
  • ;%nick-bot "qui consistera a changer le nick par default par la suite
  • sockwrite -n irc-bot NICK %nick-bot
  • sockwrite -n irc-bot USER sdb sdb sdb :Bot de dielau (connecter en socket)
  • }
  • on *:sockread:irc-bot:{
  • sockread %a
  • ;sa j'ai pomper sa sert a dire pong et eviter le ping timeout
  • if ($gettok(%a,1,32) == PING) sockwrite -n irc PONG $remove($gettok(%a,2,32),:)
  • echo @ClientServeur %a
  • unset %a
  • }
  • on *:sockclose:irc-bot:{ echo @ClientServeur 4BOT deconnecter de %serveur }
  • ;voila les commandes du bot
  • on*:join:$me:#:{ sockwrite -n irc-bot PRIVMSG $chan : liste des commandes: !bonjour <nick>,!heure ! }
  • on *:text:!list:#:{ sockwrite -n irc-bot PRIVMSG $chan : liste des commandes: !bonjour <nick>,!heure ! }
  • on *:text:!heure:#:{ sockwrite -n irc-bot PRIVMSG $chan : il est $time ! }
  • on 1:TEXT:!bonjour*:#:{
  • if ($2 == $nick) { sockwrite -n irc-bot PRIVMSG $chan : 12 ya $nick qui te dis bonjour $2- ! }
  • elseif ($2 == %me-bot) { sockwrite -n irc-bot PRIVMSG $chan : 12 bonjour a toi ossi!!!!! }
  • elseif ($2 == $nul) { sockwrite -n irc-bot PRIVMSG $chan : 12 tu dis bonjour a qui $nick ??? }
  • else { sockwrite -n irc-bot PRIVMSG $chan : 12 $nick te dis bonjour $2 $3 $4 $5 $6 $7 $8 $9 $10 !!! }
  • }
  • ;controle du bot
  • alias botcommands { echo -a 7liste des commandes :/join-bot (dans le canal ou vous etes acutélement),/part-bot (dans le canal ou vous etes acutélment),/nick-bot <ancien-nick> <nouveau-nick>,/parle-bot <texte> ,/bot-off (pour deconnecter le bot) }
  • alias join-bot { if (!$1) { sockwrite -n irc-bot join $chan } | else { sockwrite -n irc-bot join $1 $+(,$2-) } }
  • alias part-bot { sockwrite -n irc-bot part $chan } | else { sockwrite -n irc-bot part $1 $+(,$2-) } }
  • alias nick-bot { sockwrite -n irc-bot nick $2 | set %me-bot $2 }
  • alias bot-parle { sockwrite -n irc-bot privmsg $chan : $1 $+(,$2-) }
  • alias bot-off { sockclose irc-bot } { echo @ClientServeur 4BOT deconnecter de %serveur }
alias bot-on {
  window -ae @ClientServeur
  sockclose irc-bot
 ;j'ai etabli la connexion avec le nom "irc-bot" sur la valeur de la variable(%serveur)
  sockopen irc-bot %serveur 
  echo @ClientServeur 4BOT connecter sur %serveur ,pour voir la liste des commandes tapez /botcommands !
}

;connexion

on *:sockopen:irc-bot:{
  ;stoper la connexion lors d'un erreure
  if ($sockerr) { echo @ClientServeur Erreur ,vous avez été deconecter | return }
  ;on crée une variable %nick-bot et on rajoute dans la 
  ;partie dialog ".exemple:/set %nick-bot $$?=" entrez la valeur de 
  ;%nick-bot "qui consistera a changer le nick par default par la suite
  sockwrite -n irc-bot NICK %nick-bot

  sockwrite -n irc-bot USER sdb sdb sdb :Bot de dielau (connecter en socket)

}

on *:sockread:irc-bot:{
  sockread %a
;sa j'ai pomper sa sert a dire pong et eviter le ping timeout
  if ($gettok(%a,1,32) == PING) sockwrite -n irc PONG $remove($gettok(%a,2,32),:)
  echo @ClientServeur %a
  unset %a
}
on *:sockclose:irc-bot:{ echo @ClientServeur 4BOT deconnecter de %serveur }
;voila les commandes du bot
on*:join:$me:#:{ sockwrite -n irc-bot PRIVMSG $chan : liste des commandes: !bonjour <nick>,!heure ! }
on *:text:!list:#:{ sockwrite -n irc-bot PRIVMSG $chan : liste des commandes: !bonjour <nick>,!heure ! }
on *:text:!heure:#:{ sockwrite -n irc-bot PRIVMSG $chan : il est $time ! }
on 1:TEXT:!bonjour*:#:{
  if ($2 == $nick) { sockwrite -n irc-bot PRIVMSG $chan :  12 ya $nick qui te dis bonjour $2- ! }
  elseif ($2 == %me-bot) { sockwrite -n irc-bot PRIVMSG $chan :  12 bonjour a toi ossi!!!!!  }
  elseif ($2 == $nul) { sockwrite -n irc-bot PRIVMSG $chan :  12  tu dis bonjour a qui $nick ??? }
  else { sockwrite -n irc-bot PRIVMSG $chan : 12 $nick te dis bonjour $2 $3 $4 $5 $6 $7 $8 $9 $10 !!! }
}


;controle du bot
alias botcommands { echo -a 7liste des commandes :/join-bot (dans le canal ou vous etes acutélement),/part-bot (dans le canal ou vous etes acutélment),/nick-bot <ancien-nick> <nouveau-nick>,/parle-bot <texte> ,/bot-off (pour deconnecter le bot) }
alias join-bot { if (!$1) { sockwrite -n irc-bot join $chan } | else { sockwrite -n irc-bot join $1 $+(,$2-) } }
alias part-bot { sockwrite -n irc-bot part $chan } | else { sockwrite -n irc-bot part $1 $+(,$2-) } }
alias nick-bot { sockwrite -n irc-bot nick $2 | set %me-bot $2 }
alias bot-parle { sockwrite -n irc-bot privmsg $chan : $1 $+(,$2-) }
alias bot-off { sockclose irc-bot } { echo @ClientServeur 4BOT deconnecter de %serveur }

Conclusion

pour crée se bot je me suis aider du site scriptsdb.org et j'ai obtenu de l'aide de sertaine personnes que je remerci beaucoup mai en aucun cas j'ai pomper du moin j'ai tout modifier par la suite
  • signaler à un administrateur
    Commentaire de SornDrixer le 23/12/2003 12:19:47 administrateur CS

    Pas super évolué.
    Ton bot en socket ne fait que gèrer ping, obligatoire si tu ne veux pas être déconnecté, et sinon, il envoie juste des données au serveur.
    Un dialog n'aurait pas été de trop également pour pouvoir configurer le bot.

    Tu aurais pu faire par exemple que le bot gère des commandes du style !op, dès qu'on tape !op, il op la personne qui a tapé la commande. ( qu'il gère les commandes directement par l'événement SOCKREAD et non en passant par TEXT )

    Va voir ma source, aussi un bot en socket, mais un peu plus évolué.
    http://www.ircfr.com/code.aspx?ID=14992

    Dernier point : apprends les tokens, essentiel pour bien maitriser les sockets à mon avis.

    5/10, a la limite ta source aurait pu servir de tutorial si tu l'aurais commenté, mais là, pas trop d'utilité.

  • signaler à un administrateur
    Commentaire de MIDIEBOLD le 23/12/2003 12:44:38

    merci pour les conseils

  • signaler à un administrateur
    Commentaire de ChAnG-Fu le 23/12/2003 13:38:58

    Même avis que Sorn. Utilise LE socket et non le mIRC
    Il faudrait aussi mettre plus de commandes et les compilé dans un seul alias style :
    irc-cmd {
      goto $1
      :op | sockwrite -n ....
      :listuser | sockwrite -n ...
      :etc......
    }
    Pour les variables, utilise les hash table
    Mais pour un debut c acceptable: 5,5/10 :)
                                                                  Bonne continuation

  • signaler à un administrateur
    Commentaire de Kolibot le 23/12/2003 14:48:54

    Même remarque que Sorn ....

  • signaler à un administrateur
    Commentaire de tofu le 23/12/2003 21:11:34

    je comprends pas pkoi les gens s'obstinent à rajouter des "on text" alors que on peut tout mettre ds le sockread et que dans tout les tutoriaux que les sockets que j'ai lu, ils préconisent de tout mettre dans le sockread...
    l'event: "on*:join:$me:#:{" n'existe pas à ma connaissance.
    la seule commande est pour afficher l'heure...pas très utile..
    -
    alias bot-parle { sockwrite -n irc-bot privmsg $chan : $1 $+(,$2-) }
    cette ligne n'est pas correcte du fait que l'identifieur $chan va prendre en compte la fenetre active et non le chan sur lequel tu veux que le bot parle. met plutot:
    sockwrite -n $sockname $1 $+(:,$2-)
    -
    de plus jss du meme avis que chang-fu les hashtables seraient plus utiles que les variables

  • signaler à un administrateur
    Commentaire de MIDIEBOLD le 23/12/2003 21:19:32

    tofu deja c ke je c pas comment faire pour les sockread et je cherche la doc pour sinon pour l'alias pour l'instant c voulu je le modifirai quand j'aurai trouver par koi repmplacer on text

    enfin merci du conseil

  • signaler à un administrateur
    Commentaire de tofu le 23/12/2003 21:23:55

    "c'est voulu" tu fais exprès de poster un code mal fait? oO
    la doc: http://www.scriptsdb.org/tutar.php?id=349

  • signaler à un administrateur
    Commentaire de Diabl0 le 30/12/2003 16:27:55

    Bof 4/10 !

  • signaler à un administrateur
    Commentaire de Womby le 11/01/2004 02:24:22

    Il y a une faute dans ton code :

        if ($gettok(%a,1,32) == PING) sockwrite -n irc PONG


    le nom de socket est mauvais c'est pas irc mais irc-bot

    sinon c'est tres basique mais j'avais franchement pas besoin de plus meme besoin de moins en fait ^^ )

Ajouter un commentaire

Pub



Appels d'offres

Plugin Dialer outlook
Budget : 2 000€
Travail graphique- ill...
Budget : 1 000€
creation de marque et ...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS