[AIDE] Projet ambitieux pour un noob !

Résolu
k3nny815 Messages postés 24 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 19 avril 2005 - 6 avril 2005 à 18:28
cs_SornDrixer Messages postés 2084 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 30 janvier 2011 - 19 avril 2005 à 08:38
Salut.

Je cherche a faire un bot irc multichan (style "Tartagl" pour les connaisseurs) mais personnalisé avec mon propre code a moi :)

Le but premier est d'apprendre irc, aussi ai-je des lacunes en terme de programmation (je connais aucun language).



J'avais 2 questions :

- Est ce qu'il est possible de récupérer un morceau de chaine de
caractere a partir de $chan (la fin).Je m'explique : J'aimerai que le
bot affiche un notice avec "bienvenue sur le chan Q3" par exemple, en
ayant récupérer "Q3" dans le nom du chan qui serait "LZ.Q3". L'intérèt
est que le bot dira bienvenue sur le chan ## quelquesoit le chan que
j'aurai voulu créér (arrivée de nouveaux jeux, situations spéciales...)



- Est ce qu'il est possible de nommer une variable en fonction d'autres
variables. J'avais penser a faire quelquechose comme "%%jeu%type" qui
pourrait donner "%q3ctf" dans le cas ou " %jeu "q3" et %type"ctf" "
mais ca a pas l'air d'etre aussi simple :p



Merci de m'aider, j'espere me mettre au travail le plus tôt possible
mais je sens que je vais avoir pas mal de questions a vous poser !

20 réponses

cs_SornDrixer Messages postés 2084 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 30 janvier 2011 8
19 avril 2005 à 08:38
k3nny815 : Si tu juges ta source intéréssante, tu peux la poster en passant par le menu :

Mon compte > Ajouter une source

Remplis proprement chaque info demandée, et vlà


<hr>
Cordialement
, Sorn_Drixer (Admin CodeS-SourceS)
3
MaX_62 Messages postés 879 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 29 juin 2007
6 avril 2005 à 19:06
Pour récupérer la fin de ta chaine utilises $gettok . Dans ton cas ce sera $gettok(LZ.Q3,2,46) -> 46 est la valeur ascii de point

Pour ton histoire de variable je sais pas si t'as bien compris la syntaxe, etc..

Tu peux poser des questions mais oublies pas l' /help

Bon courage
0
talking Messages postés 343 Date d'inscription dimanche 30 novembre 2003 Statut Membre Dernière intervention 19 août 2006 1
6 avril 2005 à 19:38
sinon pour récupérer la fin du chaîne de caractère mais sans connaître le nombre de caractères présents dans la chaîne tu peux faire :
$gettok(Chaine,$numtok(Chaine,Ascii),Ascii)

et pour ta deuxiéme question je n'ai pas compris ce que tu souhaites faire

En tout cas bon courage pour la suite
0
fjxokt Messages postés 840 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 25 février 2009 1
6 avril 2005 à 19:49
pour la deuxieme question il faut te servir des crochets % $+ [ %variable ]

% $+ [ %nomjeu ] $+ [ %typejeu ]
0

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

Posez votre question
k3nny815 Messages postés 24 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 19 avril 2005
6 avril 2005 à 20:01
Merci pour le $gettok ! Si j'ai bien compris j'peux faire %game = $
gettok($chan,$numtok($chan,46),46) ?



j'ai plusieurs channels tels que LZ.q3 LZ.UT LZ.WAR3 et il faudrait que je sache de quel channel le bot me parle !



pour le truc des variable ben fait j'aimerai que le nom de la variable soit créé grace au contenu de 2 autreq variable



%game = "q3"

%type = "CTF"



j'aimerai qu'une variable %q3CTF soit créé grace au contenu des variables %game et %type
0
MaX_62 Messages postés 879 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 29 juin 2007
6 avril 2005 à 20:06
tu peux faire $+(%,%game,%type) pour faire ça
0
cs_SornDrixer Messages postés 2084 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 30 janvier 2011 8
6 avril 2005 à 20:33
Bonsoir,



Un simple conseil au passage :

Oublie les variables pour ce genre de système, tu vas + t'embêter qu'autre chose.

Un système de fichier .INI serait plus simple à utiliser et beaucoup plus pratique.

Renseigne toi sur la commande /writeini, et l'identifieur $readini (C'est expliqué dans l'aide de mIRC)


<hr>
Cordialement
, Sorn_Drixer (Admin CodeS-SourceS)
0
k3nny815 Messages postés 24 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 19 avril 2005
6 avril 2005 à 21:01
merci bien. j'vais me renseigner sur les writeini !
0
k3nny815 Messages postés 24 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 19 avril 2005
7 avril 2005 à 00:34
coucou c'est encore moi !



J'ai un bete probleme pour démarrer (noob inside) :



j'aurai aimé pouvoir récupérer "ctf" quand quelqu'un dit !add ctf



j'ai essayé

on 1:TEXT:!add $1*:#:/set %type $1

mais ca a pas l'air de marcher des masses :S

help !
0
k3nny815 Messages postés 24 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 19 avril 2005
7 avril 2005 à 00:46
j'ai réussi :D !!!

on 1:TEXT:*!add*:#:/msg $chan tu viens de dire $1 $2 !
0
k3nny815 Messages postés 24 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 19 avril 2005
7 avril 2005 à 07:19
des nouvelles fraiches !



j'avance assez vite a mon gout, pour quelqu'un qui n'avait pas du tout
programmé de sa vie a part sur une TI89 j'suis content d'avoir sorti
les fonctions primaires de mon bot dans la nuit :)



J'arrive maintenant a faire les trucs de ouf que je voulais !



J'ai toutefois un soucis majeur ! Pour situer et simplifier, quand un
utilisateur s'ajoute a un jeu, son nick est enregistré dans une
variable.

Vous savez tous qu'on change de nick comme de chemise, ne serait ce que pour aller manger.



J'aimerai que mon bot détecte le changement de nick d'un joueur, qu'il
compare son ancien nom avec les listes de joueurs inscrits aux jeux, et
qu'il le change au nécéssaire.



J'ai aucune idée de comment récupérer l'ancien nick, ni de comment déclencher l'évènement.



Merci de vos réponses !



PS:suite a vos nombreuses aides, j'ai décidé qu'a la fin du developpement, ce bot sera open source.
0
fjxokt Messages postés 840 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 25 février 2009 1
7 avril 2005 à 08:08
tu doit te servir de l'event ON NICK

exemple

on *:NICK:/echo -a $nick a changé de nom pour $newnick

t'as juste a inclure une comparaison avec ta liste et a changer si un pseudo est dans celle ci
0
talking Messages postés 343 Date d'inscription dimanche 30 novembre 2003 Statut Membre Dernière intervention 19 août 2006 1
7 avril 2005 à 16:04
Sinon tu peux aussi relever l'adresse des pseudos avec $address($nick,2) et comparer si c'est la même lorsque quelqu'un change de nick
0
k3nny815 Messages postés 24 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 19 avril 2005
7 avril 2005 à 16:27
Merci beaucoup je n'avais pas connaissance de ce magnifique event.

Est ce que quelqu'un peut jeter un
oeil sur le début de ma fonction add et me dire si ya pas une maniere
plus simple de faire, je pense que non, mais étant noob (premiere fois
que je programme) je n'ai aucune idée d'autres commandes plus simples
qui me simplifierai la vie :



//ON JOIN = [WORKING 100%]

on 1:JOIN:#:{

notice $nick 14Bienvenue
sur le chan 7 $+ $gettok($chan,$numtok($chan,46),46)) $+ 14 de la
7L@N-ZoNe 14[4http://www.lan-zone.org14]

notice $nick Les fichiers
indispensables sont dispo sur 3 $+ $readini(data.ini, urls,
$gettok($chan,$numtok($chan,46),46))

}



//ON ADD

on 1:TEXT:*!add*:#:{

set %numgametype $numtok($readini(data.ini, gametype, $gettok($chan,$numtok($chan,46),46)),46)

set %w 1

while (%w <= %numgametype) {

if ($2 == $gettok($readini(data.ini, gametype, $gettok($chan,$numtok($chan,46),46)),%w,46)) {

notice $nick ca a marché !

goto add

}

inc %w

}

notice $nick $2 does not match !

return



:add {

notice $nick maintenant il faut t'ajouter dans la playerlist

}

}
0
talking Messages postés 343 Date d'inscription dimanche 30 novembre 2003 Statut Membre Dernière intervention 19 août 2006 1
7 avril 2005 à 16:56
euh je ne comprend pas pourquoi tu utilises un identifieur sur $chan car $chan est un identifieur te retournant le channel sur lequel se déclance l'action. donc que cherches tu à faire ?
0
Utilisateur anonyme
7 avril 2005 à 17:22
Il cherche bien une partie du nom de son chan
0
k3nny815 Messages postés 24 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 19 avril 2005
7 avril 2005 à 17:52
yep tout a fait !

En fait le bot est multichan, et chaque channel a un nom formaté ! Ceci
étant dit, le projet a été massivement refusé car trop compliqué pour
des lans, donc je vais quand meme continuer ce projet pour la postérité
et pour mon ego mais il ne servira a rien. Je vous tiens au courant si
j'éprouve d'autres difficultés !
0
k3nny815 Messages postés 24 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 19 avril 2005
16 avril 2005 à 02:13
salut a tous !



J'ai pas laché mon projet, j'suis encore dessus.



J'éprouve juste quelques lourdeurs dans le code et j'aimerai que
quelqu'un me donne la solution psk je cherche comme un fou mais je
trouve pas :



j'ai créé une "fonction" qui revient très fréquemment dans le code,
seulement je sais pas comment faire pour l'appeler a chaque fois que
j'en ai besoin (les seules lignes de code que j'ai sont sur des events
"ON")



J'illustre ma requete : a quasi-chaque commande de l'utilisateur, il y
a un rafraichissement assez complexe du topic. Pour l'instant cette
fonction que j'ai baptisée "topicrefresh" est copiée/collée a chaque
endroit ou elle est nécéssaire, mais j'aimerai créér cette fonction a
part entiere et l'appeler quand j'en ai besoin par un /exec
topicrefresh ou un truc du genre.



Merci pour les infos !!!
0
k3nny815 Messages postés 24 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 19 avril 2005
16 avril 2005 à 03:27
j'ai trouvé la solution tout simplement en mattant un script server via mirc !

avec alias on créé des nouvelles fonctions :D



par contre j'essaie de rendre plus clair mon travail (et plus éditable)
mais mirc bloque sur certaines reconnaissance de variable :



alias init {

hop

set %INInoticejoin1 $readini(data1.ini, notice, join1)

set %INInoticejoin2 $readini(data1.ini, notice, join2)

}

on 1:JOIN:#:{

notice $nick %INInoticejoin1

notice $nick %INInoticejoin2

}





le résultat n'est pas les chaines de caracteres contenues dans le
data1.ini mais les chaines de caracteres contenues dans les variables
elles memes :(



Quelqu'un pour me corriger ?



Merci d'avance
0
k3nny815 Messages postés 24 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 19 avril 2005
19 avril 2005 à 01:36
j'ai fini un bot monopickup, j'aimerai savoir ou et comment il faut faire pour le poster ?
0
Rejoignez-nous