WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 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
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és53Date d'inscriptionmercredi 12 novembre 2008StatutMembreDernière intervention24 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és2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 14 nov. 2008 à 17:17
De quoi post de Wims ? jolie le 'conne continuation'
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDerniè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és53Date d'inscriptionmercredi 12 novembre 2008StatutMembreDernière intervention24 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és53Date d'inscriptionmercredi 12 novembre 2008StatutMembreDernière intervention24 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és3Date d'inscriptionmardi 23 octobre 2007StatutMembreDernière intervention31 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és1466Date d'inscriptionmardi 20 février 2007StatutMembreDerniè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és53Date d'inscriptionmercredi 12 novembre 2008StatutMembreDernière intervention24 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..
cs_PosTiCh
Messages postés53Date d'inscriptionmercredi 12 novembre 2008StatutMembreDernière intervention24 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és2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 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és3Date d'inscriptionmardi 23 octobre 2007StatutMembreDernière intervention31 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és1466Date d'inscriptionmardi 20 février 2007StatutMembreDerniè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és871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 11 nov. 2008 à 20:36
repetition dans les events
if ($chan == %logchan.salon) { halt }
if ) {
msg %logchan.salon .....
}
en plus comme acozz disait un dialog sera mieux
et le plus important que tu va acces flood
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 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és2Date d'inscriptionmercredi 5 novembre 2008StatutMembreDernière intervention10 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...
15 nov. 2008 à 12:52
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
14 nov. 2008 à 21:59
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
14 nov. 2008 à 17:17
14 nov. 2008 à 16:23
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.
14 nov. 2008 à 01:29
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
14 nov. 2008 à 01:25
14 nov. 2008 à 00:18
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.
@++
13 nov. 2008 à 23:43
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 ?
13 nov. 2008 à 23:35
http://tagx.nirc.fr/tagx.php?page=TagX&file=codes/code13112008231928.txt
cordialement PosTiCh
13 nov. 2008 à 03:41
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é ^^
12 nov. 2008 à 18:24
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:".
12 nov. 2008 à 12:54
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.
12 nov. 2008 à 10:35
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.
11 nov. 2008 à 20:36
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
11 nov. 2008 à 20:01
j'ai pas encore vu le code mais deja le com de acozz
if (%logchan.salon == $null) { deviens if (!%logchan.salon) {
c'est faut
10 nov. 2008 à 11:43
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...