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 : 6 526

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
 

Commentaires et avis

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



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 8,190 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é.