Quelques questions pour apprendre à programmer en IRC. [Résolu]

Messages postés
211
Date d'inscription
mercredi 5 juin 2002
Statut
Membre
Dernière intervention
14 août 2007
- - Dernière réponse : BenXbox
Messages postés
211
Date d'inscription
mercredi 5 juin 2002
Statut
Membre
Dernière intervention
14 août 2007
- 18 août 2005 à 18:28
Salut à tous,
Voila je voudrais sa apprendre à programmer en IRC.

Donc j'aurais voulue commencer doucement, avec des exemples :

- Comment envoyer un message à un user.
- Comment lister les users d'un salon ou d'un serveur.
- Comment affiché l'heur actuelle.
- Et un petit répondeur pour la fin :)

Merci d'avance.
Afficher la suite 

20/24 réponses

Meilleure réponse
Messages postés
840
Date d'inscription
vendredi 28 janvier 2005
Statut
Membre
Dernière intervention
25 février 2009
3
Merci
on ne peux pas recuprer la liste de tous les users d'un serveur comme ça

il doit y avoir un raw pour ça , car quand on se connecte , le serveur
nous indique le nombre d'users (je dis peut etre n'importe quoi , chui
pas un pro de l'irc -_-' )

mais dans tous les cas, tu ne peut pas recuperer tous les nicks d'un
serveur (amoins d'aller dans tous les chans les uns a la suite des
autres lol)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 212 internautes nous ont dit merci ce mois-ci

Commenter la réponse de fjxokt
Messages postés
840
Date d'inscription
vendredi 28 janvier 2005
Statut
Membre
Dernière intervention
25 février 2009
0
Merci
-envoyer un message a un user ? il suffit de taper /msg user ton message

-la liste des users d'un salon ? il faut pour cela se trouver dans le salon que tu veux lister

la commande $nick(#chan,0) retourne le nombre d'user dans #chan

$nick(#chan,1) retourne le nick du premier user , $nick(#chan,2) du 2eme etc...

si tu veux la liste il suffit de faire une boucle et de stocker les noms dans une variable

par ex



alias nbusers {

var %i 1 , %max $nick($chan,0)

while (%i <= %max) {

var %users = %users $nick($chan,%i)

inc %i

}

echo -a %users

}



voila c'est un exemple simple pour realiser ce code , a l'aide d'une
boucle while (pour le tester, tape /nbusers dans un salon apres avoir
prealablement mis ce code dans tes remotes)



pour plus d'infos , tape /help $nick



-l'heure s'affiche a l'aide de la commande $time



-et enfin, pour un repondeur tu peux regarder les sources presentes sur
ircfr , sinon tu aura besoin de savoir utiliser les events on text , et
la gestion des variables (tout depend de ce que tu veux faire comme
genre de repondeur)

/help on text , /help /set



dans tous les cas n'oublie pas de regarder l'aide ( si tu ne l'a pas en francais va ici )
Commenter la réponse de fjxokt
Messages postés
211
Date d'inscription
mercredi 5 juin 2002
Statut
Membre
Dernière intervention
14 août 2007
0
Merci
Salut et merci pour ta réponse, mais j'ai un pb :
Quant j'essaye ton code dans un salon il me dit : BenXbox ciel[busy] Fred Hoax
Commenter la réponse de BenXbox
Messages postés
840
Date d'inscription
vendredi 28 janvier 2005
Statut
Membre
Dernière intervention
25 février 2009
0
Merci
bah c'est normal

je vais t'expliquer le code



alias nbusers { > nom de l'alias

var %i 1 , %max $nick($chan,0) > je definis 2 variables (%i vaut 1 et %max vaut le nombre d'users sur le chan)

while (%i <= %max) { >"tant que %i est inferieur a %max je continu la boucle

var %users = %users
$nick($chan,%i) > la je defini une var %users qui est egale a elle
meme (afin de recuperer les infos deja existantes) et je rajoute a la
fin de cette var le nick $nick(#chan,%i) (le i nieme nick du chan)

inc %i > j'incremente %i de 1 et la boucle recommence

} > fin de la boucle

echo -a %users > je dis en echo tous les nicks du chan

}



dans ton cas il t'a listé les users de ton chan

BenXbox

ciel[busy]

Fred

Hoax

en les mettant cote a cote dans la var (voir la ligne bleue)
Commenter la réponse de fjxokt
Messages postés
211
Date d'inscription
mercredi 5 juin 2002
Statut
Membre
Dernière intervention
14 août 2007
0
Merci
à ok jviens de comprendre, merci beaucoup, et par exemple je suis sur mon salon, et je veut envoyé un message a tout le monde avec le code que tu viens de faire de fais :
/nbusers /msg Bonjour à tous
Commenter la réponse de BenXbox
Messages postés
840
Date d'inscription
vendredi 28 janvier 2005
Statut
Membre
Dernière intervention
25 février 2009
0
Merci
nop ce code ne sertt qu'a lister les nicks, mais tu peux le transformer rapidement

ex:



alias allnicks {

var %i 1 , %max $nick($chan,0)

while (%i <= %max) {

msg $nick($chan,%i) $1- > j'ai juste changé cette ligne. a la
place de stocker les nicks dans ma var j'envoie le message que tu a
tapé au i nieme nick du chan

inc %i > j'incremente %i et je recommence

}

}



a utiliser comme ça

/allnicks salut copin ça va ? (dans le code $1- represente le message "salut copin etc.." )



dans une chaine de mots ex : salut ça va $1 vaut 'salut' , $2 vaut 'ça' et $3 vaut 'va'

et $2- vaut 'ça va' , $1-2 vaut 'salut ça' etc etc...

en faite $x = le xieme mot de la phrase

$x- = du xieme mot a la fin de la phrase

$x-y = du xieme au yieme mot de la phrase



cet identifieur est tres utilise dans les event on text
Commenter la réponse de fjxokt
Messages postés
211
Date d'inscription
mercredi 5 juin 2002
Statut
Membre
Dernière intervention
14 août 2007
0
Merci
Donc j'ai mit ce code dans le remote :

alias allnicks
{
var %i 1 , %max $nick($chan,0)
while (%i <= %max)
{
msg $nick($chan,%i) $1- >
inc %i >
}
}

Puit j'ai tapé dans mon salon :
/allnicks teste du salon

Mais rien ne se passe.
Commenter la réponse de BenXbox
Messages postés
840
Date d'inscription
vendredi 28 janvier 2005
Statut
Membre
Dernière intervention
25 février 2009
0
Merci
les '>' etaient juste la pour l'explication

pour ecrire des commentaires dans du code il faut utiliser le point virgule ';'

essaye



alias allnicks

{

var %i 1 , %max $nick($chan,0)

while (%i <= %max)

{

msg $nick($chan,%i) $1-

inc %i

}

}
Commenter la réponse de fjxokt
Messages postés
211
Date d'inscription
mercredi 5 juin 2002
Statut
Membre
Dernière intervention
14 août 2007
0
Merci
Je viens d'essayer sa ne marche pas non plus.
Commenter la réponse de BenXbox
Messages postés
840
Date d'inscription
vendredi 28 janvier 2005
Statut
Membre
Dernière intervention
25 février 2009
0
Merci
bon c'est au niveau du nom de l'alias

la ça devrait marcher



alias trala {

var %i 1 , %max $nick($chan,0)

while (%i <= %max) {

msg $nick($chan,%i) $1-

inc %i

}

}



tape /trala ton message sur un chan



une chose, l'acolade du while doit etre sur la meme ligne que le while,
sinon tu aura une erreur du type * /while: insufficient parameters
Commenter la réponse de fjxokt
Messages postés
211
Date d'inscription
mercredi 5 juin 2002
Statut
Membre
Dernière intervention
14 août 2007
0
Merci
A sa marche merci.
Donc si je comprend bien le principe du remote de mirc, pour affiché les users d'un serveur sa donne :

alias nbusers {
var %i 1 , %max $nick($serv,0)
while (%i <= %max) {
var %users = %users $nick($serv,%i)
inc %i
}
echo -a %users
}
Commenter la réponse de BenXbox
Messages postés
976
Date d'inscription
lundi 16 juin 2003
Statut
Membre
Dernière intervention
1 juillet 2012
1
0
Merci
Sinon...

tu séléctionnes les nicks dans la NickList et:



//say Salut $snicks
Commenter la réponse de COOLMAN002
Messages postés
211
Date d'inscription
mercredi 5 juin 2002
Statut
Membre
Dernière intervention
14 août 2007
0
Merci
A ok, bas merci pour ton aide sa ma bien aider :)
A parcontre quant j'essaye d'affiché tout les users d'un serveur avec :
alias UsersServeur
{
var %i 1 , %max $nick($server,0)
while (%i <= %max)
{
var %users = %users $nick($server,%i)
inc %i
}
echo -a %users
}

Je tape dans le status : /UsersServeur

Bas sa ne m'affiche rien du tout, meme pas un message d'erreur.
Commenter la réponse de BenXbox
Messages postés
211
Date d'inscription
mercredi 5 juin 2002
Statut
Membre
Dernière intervention
14 août 2007
0
Merci
Oki l'amis, bas merci pour tout :)
Commenter la réponse de BenXbox
Messages postés
1804
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
22 septembre 2009
1
0
Merci
http://mhc.magnetik.org , le meilleur site pour débuter :)
PaDa
Commenter la réponse de cs_PaDa
Messages postés
976
Date d'inscription
lundi 16 juin 2003
Statut
Membre
Dernière intervention
1 juillet 2012
1
0
Merci
Tu peux voir le nombre de personne connecté (ceux qui ne sont pas en usermode +i), via /who *
Commenter la réponse de COOLMAN002
Messages postés
1804
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
22 septembre 2009
1
0
Merci
Ouch... Tu vas avoir un Error, /who limit of NNN exceeded ou un truc dans le genre...

Pour le nombre d'users connectés mieux vaut faire un /lusers non ?

Je n'ai pas lu toute la discussion, désolé si je suis a coté de la plaque :x

PaDa
Commenter la réponse de cs_PaDa
Messages postés
211
Date d'inscription
mercredi 5 juin 2002
Statut
Membre
Dernière intervention
14 août 2007
0
Merci
Nom je veut pas affiché le nombres d'users du seveur, mais les pseudos des users.
Commenter la réponse de BenXbox
Messages postés
976
Date d'inscription
lundi 16 juin 2003
Statut
Membre
Dernière intervention
1 juillet 2012
1
0
Merci
ça dépend du serveur la limite du who...



Sur powanet c'est bloqué à 1

Sur voila à 200

sur epik ... ça se bloque quand t'es déco :\



L'avantage de "/who *" c'est de voir les pseudos, alors que /luser renvoit juste le nombre
Commenter la réponse de COOLMAN002
Messages postés
211
Date d'inscription
mercredi 5 juin 2002
Statut
Membre
Dernière intervention
14 août 2007
0
Merci
Oué mais avec cette fonction, je doit modifier quoi pour que sa marche :

alias nbusers {
var %i 1 , %max $nick($serv,0)
while (%i <= %max) {
var %users = %users $nick($serv,%i)
inc %i
}
echo -a %users
}
Commenter la réponse de BenXbox