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