Aide: Bot en sockets

Résolu
Mc_AbBeR Messages postés 301 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 19 février 2007 - 6 oct. 2005 à 13:08
talking Messages postés 343 Date d'inscription dimanche 30 novembre 2003 Statut Membre Dernière intervention 19 août 2006 - 7 oct. 2005 à 20:41
Voila,
J'ai fait un bot en socket, il est connecter et tout.
Mais, je me demande si il est possible de faire des commande genre je dit !lolz, et le bot (en sockets) répond Lolz $nick !!!
Si oui, pouvez vous écrire le code ici ?
Merci d'avance.

10 réponses

fjxokt Messages postés 840 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 25 février 2009 1
6 oct. 2005 à 22:25
On 1:Sockread:mech:{

sockread %mech.read | tokenize 32 %mech.read

if ($2 == PING) sockwrite -n mech PONG $remove($1,:)

elseif ($2 == PRIVMSG) {

if ($4 == !lol) {

var %nick $remove($gettok($1,1,33),:)

sockwrite -n mech PRIVMSG $3 :Lolllzz %nick

}

}

unset %mech.read

}



j'ai pas testé mais normalement ça devrait marcher

3
Mc_AbBeR Messages postés 301 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 19 février 2007
7 oct. 2005 à 07:03
Sa marche pas tout à fait!
J'ai rajouter
elseif ($2 == PRIVMSG) {
if ($4 == :!lol) {
var %nick $remove($gettok($1,1,33),:)
sockwrite -n irc PRIVMSG $3 :Lolllzz %nick
}
}
Pis sa marche
thx
3
S333 Messages postés 266 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 26 juin 2008
6 oct. 2005 à 13:29
Oui, tu recrée le on text en fait...

dans ton sockread, tu aura différent truc, PRIVMSG #CHAN :message

Suffit de récupérer le #chan et le :message.

Si tu veux voir à quoi ressemblent tous les messages, fait un /debug.


-----------------------------
Signature des parents :
0
COOLMAN002 Messages postés 969 Date d'inscription lundi 16 juin 2003 Statut Membre Dernière intervention 1 juillet 2012 1
6 oct. 2005 à 13:59
Comme l'a signalé S333, suffit de récuperer les données de ton sockread et de prendre ce que tu as besoin.



Lors d'un PRIVMSG, en socket tu reçois:



:pseudo!ident@adresse PRIVMSG #salon :message



via ton event sockread (on *:sockread:BOT:), tu recuperes les données (variable par exemple), tu /TOKENIZE 32 VARIABLE.



Ensuite, "$1" sera égal à :pseudo!ident@adresse

$2 = PRIVMSG

$3 = #Salon

$4 = :message

Si tu $gettok($1,1,33) (33 = valeur ASC de "!"), tu auras: :pseudo tu auras juste besoin de faire un p'tit $right avec comme valeur "1-" pour retourner le "$nick" en socket.



Si tu veux un exemple:

http://CM002.no-ip.biz/Socket.php
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mc_AbBeR Messages postés 301 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 19 février 2007
6 oct. 2005 à 18:47
Je comprend pas trop...
j'ai essayer
On 1:Sockread:mech:{
sockread %mech.read
if ($gettok(%mech.read,1,32) == PING) sockwrite -n mech PONG $remove($gettok(%mech.read,2,32),:)
elseif ($2 == PRIVMSG) {
if ($gettok(%mech.read,1,32) == PRIVMSG) sockwrite -n mech PRIVMSG #e.n.e.m.y :Lolzzz
}
unset %mech.read
}
mais sa marche pas:/
0
COOLMAN002 Messages postés 969 Date d'inscription lundi 16 juin 2003 Statut Membre Dernière intervention 1 juillet 2012 1
6 oct. 2005 à 20:12
euh...



On 1:Sockread:mech:{

sockread %mech.read

if ($gettok(%mech.read,1,32) = = PING) sockwrite -n mech PONG $remove($gettok(%mech.read,2,32),:)

elseif ($2 == PRIVMSG) {

if ($gettok(%mech.read,1,32) == PRIVMSG) sockwrite -n mech PRIVMSG #e.n.e.m.y :Lolzzz

}

unset %mech.read

}



Où se trouve ton TOKENIZE 32 %mech.read ?

Si tu n'as pas de TOKENIZE, tu as pas de "$N"



elseif ($2 == PRIVMSG) {

if ($gettok(%mech.read,1,32) == PRIVMSG) ...



Ce qui donne:



elseif ($2 == PRIVMSG) {

if ($1 == PRIVMSG) ...



Vois-tu tes erreurs ?



PS:

$1 = :pseudo!ident@adresse

$2 = PRIVMSG

$3 = #SALON

$4- = :message



ne l'oublie pas.
0
Mc_AbBeR Messages postés 301 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 19 février 2007
6 oct. 2005 à 20:58
Je comprend toujours pas...
Peux tu me "faire" le code stp?
0
Mc_AbBeR Messages postés 301 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 19 février 2007
7 oct. 2005 à 19:19
vous pouvez me dire comment op quelqu'un en sockets?
exemple:
if ($4 == :!op) {
var %nick $remove($gettok($1,1,33),:)
if %acces. [ $+ [ $address($nick,2) ] ] >= 300 sockwrite -n mech MODE $3 +o $nick
}
}

Sa marcherai?
0
fjxokt Messages postés 840 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 25 février 2009 1
7 oct. 2005 à 19:53
et si tu essayais par toi même ?

n'oublie pas que pour voir les commandes coté serveur, tu peux faire un /debug @win
0
talking Messages postés 343 Date d'inscription dimanche 30 novembre 2003 Statut Membre Dernière intervention 19 août 2006 1
7 oct. 2005 à 20:41
en socket le $nick n'est pas évalué. Faut que tu le récupéres comme l'a évoqué CoolMan avec $N . Ca doit être $remove($gettok($1,1,33),:)
0
Rejoignez-nous