|
Trouver une ressource
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
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
Sources de la même categorie
Commentaires et avis
|
|