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 !

SOCK BOT DE BASE


Information sur la source

Catégorie :Scripts Niveau : Initié Date de création : 10/10/2003 Date de mise à jour : 12/10/2003 04:59:01 Vu : 3 335

Note :
8,5 / 10 - par 2 personnes
8,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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

Description

Voici un sockbot de base... en fait c'est un bot que jutilisait sur mon serveur mais je n'ais laisser que la base de la connexion c'est surtout pour apprendre
 

Source

  • alias bot { dialog -m sockbot sockbot }
  • dialog sockbot {
  • size -1 -1 138 80
  • title "SockBot"
  • text "Serveur",1,2 2 50 17
  • text "Port",2,2 22 50 17
  • text "Pseudo",3,2 42 50 17
  • edit "",4,47 0 87 22
  • edit "",5,47 20 87 22
  • edit "",6,47 40 87 22
  • button "Connect",7,1 62 133 16
  • }
  • on *:dialog:sockbot:sclick:7:{ botconnexion $+($did(4),:,$did(5)) $did(6) }
  • alias botconnexion {
  • ;;Ici on ouvre le sock et on enregistre Serveur, Port et pseudo qui peuvent servire plus tard
  • sockopen connexion $gettok($1,1,$asc(:)) $gettok($1,2,$asc(:))
  • set %sockserv $gettok($1,1,$asc(:))
  • set %sockport $gettok($1,2,$asc(:))
  • set %socknick $2
  • }
  • ;; Quand le sock ouvre : on envoie l'info pour s'enregistrer et le pseudo
  • on *:SOCKOPEN:connexion:{ window -e @bot | sockwrite connexion USER %socknick 0 * : $+ %socknick $+ $crlf $+ NICK %socknick $+ $crlf }
  • ;;L'info reçue par le serveur et linterpretation de l'info reçue
  • on *:SOCKREAD:*connexion*:{ var %r | sockread %r | tokenize 32 %r
  • if ($2 == 432) { sockwrite -n connexion NICK $r(A,Z) $+ $r(a,z) $+ $r(a,z) $+ $r(a,z) $+ $r(11,99) }
  • if ($2 == 433) { sockwrite -n connexion NICK $r(A,Z) $+ $r(a,z) $+ $r(a,z) $+ $r(a,z) $+ $r(11,99) }
  • if ($2 == 498) { sockwrite -n connexion NICK $r(A,Z) $+ $r(a,z) $+ $r(a,z) $+ $r(a,z) $+ $r(11,99) }
  • ;;Tres important de repondre au ping pour ne pas etre déconnecter
  • if (PING* iswm %r) { sockwrite connexion PONG $2 $+ $crlf | echo @bot 4 $+ $1- | halt }
  • if (*NOTICE* iswm %r) { echo @bot %r | halt }
  • if (*VERSION* iswm %r) { echo @bot 9 $+ %r | halt }
  • if (*FINGER* iswm %r) { echo @bot 9 $+ %r | halt }
  • if (*PING* iswm %r) { echo @bot 9 $+ %r | halt }
  • if (*TIME* iswm %r) { echo @bot 9 $+ %r | halt }
  • if (*PRIVMSG* iswm %r) { echo @bot 15< $+ $gettok(%r,3,32) $+ >< $+ $right($gettok(%r,1,32),$calc($len($gettok(%r,1,32)) - 1)) $+ > $+ $4- | halt }
  • if (*KICK* iswm %r) { echo @bot 7 $+ %r | halt }
  • if (*MODE* iswm %r) { echo @bot 7 $+ %r | halt }
  • else { echo @bot 4 $+ %r }
  • }
  • ;;Si le Sock ferme on le sais...
  • on *:SOCKCLOSE:*connexion*:{ echo @bot Connexion Fermée }
  • ;;Les alias des commandes de bases avec b. en avant pour ne pas les melanger avec ceux par defaut de mIRC
  • alias b.join { sockwrite connexion join $1 $+ $crlf }
  • alias b.part { sockwrite connexion part $1 $+ $crlf }
  • alias b.hop { b.part $1 | b.join $1 }
  • alias b.kick { sockwrite connexion kick $1 $2 : $+ $3- $+ $crlf }
  • alias b.quit { sockwrite -n connexion quit $1- }
  • alias b.mode { sockwrite connexion mode $1 $2 $3 $+ $crlf }
  • alias b.nick { sockwrite connexion NICK $1 $+ $crlf }
  • alias b.msg { sockwrite connexion PRIVMSG $1 : $+ $2- $+ $crlf }
  • alias b.send { sockwrite -n connexion $1- }
alias bot { dialog -m sockbot sockbot }
dialog sockbot {
  size -1 -1 138 80
  title "SockBot"
  text "Serveur",1,2 2 50 17
  text "Port",2,2 22 50 17
  text "Pseudo",3,2 42 50 17
  edit "",4,47 0 87 22
  edit "",5,47 20 87 22
  edit "",6,47 40 87 22
  button "Connect",7,1 62 133 16
}
on *:dialog:sockbot:sclick:7:{ botconnexion $+($did(4),:,$did(5)) $did(6) }
alias botconnexion {
  ;;Ici on ouvre le sock et on enregistre Serveur, Port et pseudo qui peuvent servire plus tard
  sockopen connexion $gettok($1,1,$asc(:)) $gettok($1,2,$asc(:))
  set %sockserv $gettok($1,1,$asc(:))
  set %sockport $gettok($1,2,$asc(:))
  set %socknick $2
}
;; Quand le sock ouvre : on envoie l'info pour s'enregistrer et le pseudo
on *:SOCKOPEN:connexion:{ window -e @bot | sockwrite connexion USER %socknick 0 * : $+ %socknick $+ $crlf $+ NICK %socknick $+ $crlf }
;;L'info reçue par le serveur et linterpretation de l'info reçue
on *:SOCKREAD:*connexion*:{ var %r | sockread %r | tokenize 32 %r
  if ($2 == 432) { sockwrite -n connexion NICK $r(A,Z) $+ $r(a,z) $+ $r(a,z) $+ $r(a,z) $+ $r(11,99) }
  if ($2 == 433) { sockwrite -n connexion NICK $r(A,Z) $+ $r(a,z) $+ $r(a,z) $+ $r(a,z) $+ $r(11,99) }
  if ($2 == 498) { sockwrite -n connexion NICK $r(A,Z) $+ $r(a,z) $+ $r(a,z) $+ $r(a,z) $+ $r(11,99) }
  ;;Tres important de repondre au ping pour ne pas etre déconnecter
  if (PING* iswm %r) { sockwrite connexion PONG $2 $+ $crlf | echo @bot 4 $+ $1- | halt }
  if (*NOTICE* iswm %r) { echo @bot %r | halt }
  if (*VERSION* iswm %r) { echo @bot 9 $+ %r | halt }
  if (*FINGER* iswm %r) { echo @bot 9 $+ %r | halt }
  if (*PING* iswm %r) { echo @bot 9 $+ %r | halt }
  if (*TIME* iswm %r) { echo @bot 9 $+ %r | halt }
  if (*PRIVMSG* iswm %r) { echo @bot 15< $+ $gettok(%r,3,32) $+ >< $+ $right($gettok(%r,1,32),$calc($len($gettok(%r,1,32)) - 1)) $+ > $+ $4- | halt }
  if (*KICK* iswm %r) { echo @bot 7 $+ %r | halt }
  if (*MODE* iswm %r) { echo @bot 7 $+ %r | halt }
  else { echo @bot 4 $+ %r }
}
;;Si le Sock ferme on le sais...
on *:SOCKCLOSE:*connexion*:{ echo @bot Connexion Fermée }
;;Les alias des commandes de bases avec b. en avant pour ne pas les melanger avec ceux par defaut de mIRC
alias b.join { sockwrite connexion join $1 $+ $crlf }
alias b.part { sockwrite connexion part $1 $+ $crlf }
alias b.hop { b.part $1 | b.join $1 }
alias b.kick { sockwrite connexion kick $1 $2 : $+ $3- $+ $crlf }
alias b.quit { sockwrite -n connexion quit $1- }
alias b.mode { sockwrite connexion mode $1 $2 $3 $+ $crlf }
alias b.nick { sockwrite connexion NICK $1 $+ $crlf }
alias b.msg { sockwrite connexion PRIVMSG $1 : $+ $2- $+ $crlf }
alias b.send { sockwrite -n connexion $1- }

Conclusion

Je vien de faire un update maintenant suffi de tapper /bot pour que le dialog s'ouvre

Un autre update... Un alias et des lignes de commentaires
 

Commentaires et avis

signaler à un administrateur
Commentaire de d0wn le 10/10/2003 23:41:46

Mouai, c'est pas mal, il faudrai juste un peu compléter, comme tu le dit toi même, tu n'a mi que la base de la connection... moi je trouve ça en effet pas mal pour apprendre :)!
Bah bien jouer ;)
++

signaler à un administrateur
Commentaire de Paper183 le 10/10/2003 23:46:31

Merci :)
Ouais bon je ferai peut-etre un update avec une version plus complete et mieu codée si certain en ont besoin

signaler à un administrateur
Commentaire de thyb le 10/10/2003 23:47:40

bah c les base, c pas trop mal, ( ca change des //timer 1 10800 /say bonjour ) lol
mais faudrai compliquer un peu

ca pe etre un debut de tuto pour les n00bs des socket ;)

signaler à un administrateur
Commentaire de Paper183 le 12/10/2003 04:00:51

Voila jai fait un petit update tout bête... c'est que se qui etait en dessou de :
if (:* iswm %r) { ....... }
netait pas interpreter car presque tout les messages du serveur commencent par ":"
et il supporte maintenant les erreure de pseudo a la connexion il en met un au hasard du genre Pzaw66

signaler à un administrateur
Commentaire de Paper183 le 12/10/2003 04:27:43

Je vien d'ajouter un petit dialog car je n'avait rien a faire :) lol

signaler à un administrateur
Commentaire de Paper183 le 12/10/2003 05:08:48

Le bot a un probleme sur le b.join b.part et p-e les autres mais je ne trouve pas d'ou il vien !!!!! :S chui sur que c'est con comme erreure :$

signaler à un administrateur
Commentaire de Paper183 le 12/10/2003 05:11:43

HEEUUUUUU Vraiment désolé chui fatigué c'etait dans mes variables le probleme :$ je vais pas recommencer :$

signaler à un administrateur
Commentaire de Paper183 le 12/10/2003 05:12:50

Meme pas je me trompe entre variable et alias :'( enfin bon :$

signaler à un administrateur
Commentaire de lilmax le 12/10/2003 18:13:32

salut moi ques sa fait quand je fait : /bot je veut entrer le nom du serv ou je veut quil se connect mais jai pas assez despace ques faudrais je change

signaler à un administrateur
Commentaire de lilmax le 12/10/2003 18:17:33

ah oui et pour le faire join un channel c quoi

signaler à un administrateur
Commentaire de Paper183 le 13/10/2003 00:14:54

ok c'est vrai les dialog on un probleme avec sa je n'y avait pas penser...
tu na qu'a ecrire /botconnexion serv:port pseudo
et pour la salle c'est /b.join #salle

signaler à un administrateur
Commentaire de talking le 16/12/2003 21:50:45

ouais pas mal ton bot de base le probléme et juste au niveau du dialog agrandi le serveur voila sinon c'est pas mal pour apprendre

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.