LOGCHAN BY DIIMS :: POUR BOT :: TOTALEMENT CONFIGURABLE

ACoZz Messages postés 2 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 10 novembre 2008 - 10 nov. 2008 à 11:43
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 - 15 nov. 2008 à 12:52
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/48413-logchan-by-diims-pour-bot-totalement-configurable

WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
15 nov. 2008 à 12:52
re
pas besoin de faire ça

on *:dialog:logchan:*:*: {
if ($devent = init) {
did -a $dname 4 %logchan.salon
did -a $dname 10 %logchan.couleur.event
did -a $dname 12 %logchan.couleur.deco
did -a $dname 14 %logchan.couleur.text
did -a $dname 20 %logchan.status
did -a $dname 21 Status Actuel :
}

supprime tout les did -a %var dans init et met les plutot dans le dialog comme ça

dialog logchan {
size -1 -1 183 280
title "'=[ LogChan ]='"
box "Configurations :",1, 8 7 167 265
box "Général :",2, 15 22 152 75
text "Salon :",3, 30 39 100 20
edit %logchan.salon,4, 77 38 80 17, autohs

donc en gros tu enleve les "" et tu met la variable sois l'identifier ect..
pour ton ON/OFF utilise un check c'est plus beau et tu a oublié de mettre dans init "did -c $dname $iif(%logchan.status == On,6,7)" pour que ça coche le on ou off selon le cas et comme ça tu n'aura plus besoin de cette condition
if (%logchan.status == $null) { echo -a [[ $+ $time $+ ]] 07'=[ 04LogChan by Diims 07]=' 04ERREUR : Aucun status des log n'est présisé. Cliquez sur 07On 04ou 07Off }


les edit son grande pour les codes couleur t'a pas besoin du autohs et tu devrait ajouté une codition pour que ça sois entre 0 et 15

pourquoi tout ces if ($did == 19) && blabla met juste une seul condition comme ceque tu a fait a la derniere

pour
echo -a [[ $+ $time $+ ]] 07'=[ 04LogChan by Diims 07]=' 04--------------------------------------------------------------------------------

utilise $str()

echo -a [[ $+ $time $+ ]] 07'=[ 04LogChan by Diims 07]=' 04 $str($chr(45),80)

bref je ne sais pas si j'ai loupé quelque chose mais bon dejà voilà une partie
cs_PosTiCh Messages postés 53 Date d'inscription mercredi 12 novembre 2008 Statut Membre Dernière intervention 24 novembre 2008
14 nov. 2008 à 21:59
sur ton dialog, if ($devent == sclick) { blabla if ($deven == bla) tu devrais mettre des elseif
if ($devent == sclick) {
bla bla
}
Elseif ($devent == init) {
blabla
}
} jprend un exemple sur un de t'es évenement !

# On *:JOIN:#:{
# if ($chan == %logchan.salon) { halt }
# if (%logchan.status == On) {
# msg %logchan.salon  $+ %logchan.couleur.event $+ Join  $+ %logchan.couleur.deco $+ : $+ %logchan.couleur.text $nick entre sur $chan ( $+ $nick($chan,0) Users)
# }
# }

devient :

On *:Join:#:{ if ($chan !%logchan.salon) && (%logchan.status on) {
msg %logchan.salon  $+ %logchan.couleur.event $+ Join  $+ %logchan.couleur.deco $+ : $+ %logchan.couleur.text $nick entre sur $chan ( $+ $nick($chan,0) Users)
}
}
dans ton on TEXT aussi passe au elseif
aprés tu veut encore amélioré ta sources passe au hash table
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
14 nov. 2008 à 17:17
De quoi post de Wims ? jolie le 'conne continuation'
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
14 nov. 2008 à 16:23
J'ai pas testé non plus le code mais pour un premier dialog je dirais que c'est plutôt pas mal (si si !) comparé à d'autres postés sur ce site.
Bon, on peut largement optimiser mais je me souviens pu tellement les détails (attendons un post de wims ou autre ^^)

Juste un truc, PosTiCh :
alias logchan $iif((!$dialog(logchan)),dialog -m logchan logchan,dialog -v logchan))
revient à faire :
alias logchan dialog $iif(!$dialog(logchan),-m logchan,-v) logchan
Ca nous fait économiser 2 mots :D
(en plus, tu avais mis une parenthèse fermante de trop).
Bon bref, conne continuation.
cs_PosTiCh Messages postés 53 Date d'inscription mercredi 12 novembre 2008 Statut Membre Dernière intervention 24 novembre 2008
14 nov. 2008 à 01:29
j'ai vus dans ton On load dialog -m logchan logchan je te conseille de faire ca :
alias logchan $iif((!$dialog(logchan)),dialog -m logchan logchan,dialog -v logchan))

donc ton dialog s'ouvrira si tu tape /logchan , bon aprés j'ai pas testé ton code la fléme

bonne chance pour la suite (:

cordialement PosTiCh
cs_PosTiCh Messages postés 53 Date d'inscription mercredi 12 novembre 2008 Statut Membre Dernière intervention 24 novembre 2008
14 nov. 2008 à 01:25
Non du tout uaip justement je me refaisait un bot comme ca, donc je lui montré ce que j'avais fais, pour donner des idée ^^
sodims Messages postés 3 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 31 août 2009
14 nov. 2008 à 00:18
Merci PosTiCh de vouloir m'aider ..

Seulement je suis ici pour apprendre .. Je suis novice .. peut-être .. mais .. vous l'avez aussi été un jours non ?

Alors je pense .. que le mieux .. pour moi .. c'est de changer au fure et à mesure mon code .. avec les conseils et remarques de personnes plus douées que moi.

En plus je n'aime pas prendre les sources des autres.

Enfin bon ceci dis .. Je viens d'ajouter un Dialog (mon tout premier) .. j'imagine qu'il y a pleins de choses à dire dessus .. j'ai surment fais pleins d'erreurs.

@++
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
13 nov. 2008 à 23:43
Hmm... plein de trucs à modifier ^^ notamment la suite abusive de if () (répétitifs, qui plus est), ou la présence de fautes d'orthographe ^^

Mais genre des :
if (!$hget(spy,state)) { ... }
if ($hget(spy,state)) { ... }
Pourquoi pas un else ? Là, il doit évaluer la condition 2fois...
Idem pour les $strip() etc...

Mais sinon je comprends pas trop... une personne poste une source, et une autre personne lui refait sa source ?
cs_PosTiCh Messages postés 53 Date d'inscription mercredi 12 novembre 2008 Statut Membre Dernière intervention 24 novembre 2008
13 nov. 2008 à 23:35
Bon j'lé finis tiens si ca peut t'aider, par contre j'ai pas fait en dialog..

http://tagx.nirc.fr/tagx.php?page=TagX&file=codes/code13112008231928.txt

cordialement PosTiCh
cs_PosTiCh Messages postés 53 Date d'inscription mercredi 12 novembre 2008 Statut Membre Dernière intervention 24 novembre 2008
13 nov. 2008 à 03:41
tiens pour te donner un exemple j'lé commencé ya 1h00 donc c'est pas du tout finis juste un exemple :

On *:TEXT:*:#:{
if ($1 == !spy) && (!$regex($2,off|on)) {
if ($2 == $hget(spy,espion)) { spylogs (Infos-Spy) Salon: $2  , est déjà espionner. | halt }
if ($me ison $hget(spy,espion)) part $hget(spy,espion) leaving
join $2
hadd -m Spy espion $2
}
elseif ($1 == !logspy) {
hadd -m Spy logs $2
notice $nick (Logs-Spy) Le salon des logs est maintenant: $2 
spylogs (Logs-Spy) Le salon des logs est maintenant: $2 
} elseif ($1 !spy) && ($2 on) {
if ($hget(spy,state)) { notice $nick (Infos-Spy) Le Spy est déjà activé. | spylogs (Infos-Spy) Le Spy est déjà activé. 14- $nick }
if (!$hget(spy,state)) { hadd -m Spy state On | notice $nick (Infos-Spy) Spy activé. | spylogs (Infos-Spy) Spy activé. 14- $nick }
} elseif ($1 !spy) && ($2 off) {
if (!$hget(spy,state)) { notice $nick (Infos-Spy) Le Spy est déja désactivé. | spylogs (Infos-Spy) Le Spy est déjà désactivé. 14- $nick }
if ($hget(spy,state)) { hdel Spy state On | notice $nick (Infos-Spy) Spy désactivé. | spylogs (Infos-Spy) Spy désactivé. 14- $nick }
}
}
raw 366:*:{
msg $hget(spy,logs) (Infos-Spy) Salon Espionné: $hget(spy,espion) 4| Nombre d'user(s): $nick($hget(spy,espion),0) 4| Etat Spy:  $+ $iif(($hget(spy,state)),On,Off) $+ 
if ($hget(spy,state) == on) topic $hget(spy,logs) $chan($2).topic
}
raw 471:*:{ spylogs (4Erreur-Spy) Je ne peut joindre  $2 Il est Complet/Full ( +l ) | HALT }
raw 473:*:{ spylpgs (4Erreur-Spy) Tu ne peut rejoindre $2 $+ , il faut y être Invité(+i). | HALT }
raw 474:*:{ spylogs (4Erreur-Spy) Tu ne peut Joindre $2 tu y es banni(+b). | HALT }
raw 520:*:{ spylogs (4Erreur-Spy) Seuls les IRCop(s) peuvent joindre ce channel. | halt }
alias spylogs if ($hget(spy,state) == on) msg $hget(spy,logs) $1-

c'est pas finis, mais bon ca pourras peut-être t'aidé ou t'inspiré ^^
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
12 nov. 2008 à 18:24
Faudra me montrer ou c'est que quelqu'un a dis que ! et $null etaient equivalent...
C'est juste une optimisation a faire, parce que la variable dont on parle ne prendra jamais la valeur $null ni $false, ni 0, mais bien un nom de salon, donc l'usage du ! n'est pas inutile ici.
Je trouve le code assez degeulasse, peu utile et deja vu mais sinon :

la condition sur le on text :
if ($address($nick,2) == $address($me,2)) {
C'est bof bof pour le control du truc, mais $address($nick,2) peut etre remplacer par $wildsite

l'evenement on quit et on nick ne prenne pas de parametre salon donc $chan est $null
Faudrait ajouter des condition sur l'event on quit parce que si c'est toi qui quit, tu vas avoir du mal a faire des /msg derriere ^^
Pense a utilise elseif quand tu le peux

Pour la remarque de Uaip sur la securite (etre sur qu'il met bien un nom de salon), on peut utilise #$?="Entrez un canal:".
sodims Messages postés 3 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 31 août 2009
12 nov. 2008 à 12:54
Merci pour vos commentaire ..

Je travail en se moment sur un dialog.
Comme je n'en ai jamais fais, j'apprend avec les tutos à ma disponibilité.

Je vais aussi modifier les remarques dont vous avez fait part.

Merci à tous. à très bientôt.
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
12 nov. 2008 à 10:35
Exact, le commentaire de ACoZz est faux, $null et ! ne sont pas identiques.
Sinon, tu peux remplacer tes if | if par des if | elseif.
Dans l'ensemble c'est pas trop mal pour une première source.
SI on veut être pointilleux, on pourrait te dire de remplacer tes halt par des return, et éventuellement de sécuriser un peu plus la source, par exemple

set %logchan.salon $$?"Choisisez le Salon où le Bot affichera les logs. Exemple : #LogChan"
join %logchan.Salon

Si le mec tape "pouet pistache" (je ne me rappelle plus si /msg pouet est toléré).
Enfin bref, faut penser à toutes les conneries que peut faire l'utiliser pour pas faire "planter" le code.

L'ajout d'une dialog box est en effet une bonne idée.
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
11 nov. 2008 à 20:36
repetition dans les events



if ($chan == %logchan.salon) { halt }
if ) {
msg %logchan.salon .....
}


ça devient

if (%logchan.salon !#) && (%logchan.status On) {
msg %logchan.salon .....
}

en plus comme acozz disait un dialog sera mieux
et le plus important que tu va acces flood
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
11 nov. 2008 à 20:01
salut
j'ai pas encore vu le code mais deja le com de acozz

if (%logchan.salon == $null) { deviens if (!%logchan.salon) {

c'est faut
ACoZz Messages postés 2 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 10 novembre 2008
10 nov. 2008 à 11:43
coucou, j'appelle plutôt ça un spy comme j'avais déjà fait sur ce site : http://www.ircfr.com/codes/ESPION-ECHO-SUR-SALON-HAVE-FUN_47421.aspx , je te conseille
exemple :if (%logchan.salon == $null) { deviens if (!%logchan.salon) { , tu aurrais pus faire ca en dialog et rendre ton add-on configurable et de passer au hash table a la place de toutes ces variables globales, enfin...
Rejoignez-nous