Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


recherche d'eggdrop
#31
Bonjour CrazyCat,
et ou et le rapport vue que je suis un noob en tcl et que je ne c'est pas comment codé le tcl ?

Je poste des messages pour trouvé une aide pas pour avoir des remarques


CrazyCat Wrote:
snip74 Wrote:Bonjour all :)
Je recherche un code similaire sur google et je suis tombé sur votre forum :)
profil Wrote:snip74
Junior Member
Messages : 45
Inscription : Jul 2009
J'ai raté un épisode ? Tu découvres alors que tu es inscris depuis plus de 2 ans et que tu as déjà posté 44 messages ?

Cordialement Stéphane
hésitez pas de visité http://www.tchat-fusion.org/
ou part irc /server -m irc.tchat-fusion.org
#32
En fait ton post précédent est assez incompréhensible, on ne sait pas trop de quel tcl tu parles (à l'origine, le demandeur voulait 4 tcls).

Crée donc une nouvelle discussion en demandant à ce qu'on t'aide à faire ton script, en nous expliquant bien le fonctionnement que tu désires avoir.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#33
Salut,

Heu peut-être montré le code que tu as modifié par exemple nous aiderais à comprendre.
Et lorsque tu auras poster la modification du tcl que tu as apporter, nous pourrons voir ce que l'ont peut faire pour toi.
#34
Bonjour CrazyCat,
Merci de ta réponse ;)

Je ne voulez pas polluer le forum vue qu'il y avais déjà se poste :$.
Je m'excuse si vous avais pas compris mais comme j'ai vue que 3 codes qui parler de idle pour devoice un user après X minute et que dans mon poste :
Je parler de devoice en idel et de voice aprés x phrase que sa aller être claire :$

snip74 Wrote:Je suis intéressé pour le code idle qui voice a partie de 20 lignes et qui devoice après 15mn sans activité.

Mes excuse pour m'avoir certainement mal exprimé et s'il le faut j'ouvrirai un nouveau post.

CrazyCat Wrote:En fait ton post précédent est assez incompréhensible, on ne sait pas trop de quel tcl tu parles (à l'origine, le demandeur voulait 4 tcls).

Crée donc une nouvelle discussion en demandant à ce qu'on t'aide à faire ton script, en nous expliquant bien le fonctionnement que tu désires avoir.
Cordialement Stéphane
hésitez pas de visité http://www.tchat-fusion.org/
ou part irc /server -m irc.tchat-fusion.org
#35
Bonjour alias_angelius,
Merci de ton aide :)

Bah pour le code j'ai testé un truc dans se style avec cette partie de code :

Code:
#######################################################################
################# Auto deop & devoice sur idle ########################
#######################################################################
#                                                   #
#                                              #
#               Ce TCL fonctionne avec deux robots :                #
#                                              #
#                                              #
#                                              #      
# idle_do_dv_spy.tcl      : A installer sur le robot spy          #
#                                              #  
# idle_do_dv_principal.tcl   : A installer sur le robot modérateur   #
#                                              #        
#                                              #        
#                                              #
#######################################################################
########################### Configuration. ############################
#######################################################################

bind EVNT - init-server proc:initidle
proc proc:initidle { type } {


set ::spy_bot "Robot-Moderator"

}

bind MSG - idle_voice proc:idledv
proc proc:idledv { nick uhost hand text } {
if [string match -nocase $nick $::spy_bot] {
  putserv "mode [lindex $text 0] -vvvvvv [join [lrange $text 1 end]]"
  foreach listdeop [lrange $text 1 end] {
    putserv "NOTICE $listdeop :Votre idle sur [lindex $text 0] est trop important : Vous venez d'être devoice !"
  }
}
}
#######################################################################
############################# Fin du TCL ##############################
#######################################################################
J'ai essayer de le modifier comme sa pour devoicé un user :


Code:
bind EVNT - init-server proc:initidle
proc proc:initidle { type } {


set ::spy_bot " $botnick "

}

bind MSG - idle_voice proc:idledv
proc proc:idledv { nick uhost hand text } {
if [string match -nocase $nick $botnick] {
  putserv "mode [lindex $text 0] -vvvvvv [join [lrange $text 1 end]]"
  foreach listdeop [lrange $text 1 end] {
    putserv "NOTICE $listdeop :Votre idle sur [lindex $text 0] est trop important : Vous venez d'être devoice !"
  }
}
}

Se qui et logique que sa fonctionne pas vue que j'ai voulue modifier c'est 2 lignes la :

Code:
set ::spy_bot " $botnick "
et
if [string match -nocase $nick $botnick] {
Car je pense pas que long puisse récupéré le pseudo qui et par defaux du eggdrop.

Par contre pour le idle voice après 20 phrase que sa voice l'user bah la j'ai aucune idée :/



alias_angelius Wrote:Salut,

Heu peut-être montré le code que tu as modifié par exemple nous aiderais à comprendre.
Et lorsque tu auras poster la modification du tcl que tu as apporter, nous pourrons voir ce que l'ont peut faire pour toi.

Cordialement Stéphane
hésitez pas de visité http://www.tchat-fusion.org/
ou part irc /server -m irc.tchat-fusion.org
#36
re,


tcl
set ::spy_bot


C'est la ou tu doit entrée le pseudo du bot.
Donc tu met $botnick dans une variable qui ne va pas fonctionné comme ça.

Ensuite :


tcl
if [string match -nocase $nick $botnick] {


Pour savoir vraiment si ta variable fonctionne :

.tcl set ::spy_bot
Tape ceci en PL si je me trompe pas sa devrais te retourner le resultat de la variable qui devrait être : $botnick
Si celà il prend en compte.

et ta recherche que tu désire et de faire un système de devoice par idle plus court en un seul tcl dans un seul eggdrop non ?
#37
Bonjour alias_angelius,
Encore merci pour ton aide :)
Oui effectivement y bien une erreur.
sinon oui je recherche a créer un morceau de code le plus simple que possible tu parle beaucoup tu te fait voice par l'eggdrop tu ne parle plus le bot te devoice au boue de 15mn.
Mais bon pas facile :/
donc vais gardé l'auto devoice et continuer a voice les gens a la main :)

alias_angelius Wrote:re,


tcl
set ::spy_bot


C'est la ou tu doit entrée le pseudo du bot.
Donc tu met $botnick dans une variable qui ne va pas fonctionné comme ça.

Ensuite :


tcl
if [string match -nocase $nick $botnick] {


Pour savoir vraiment si ta variable fonctionne :

.tcl set ::spy_bot
Tape ceci en PL si je me trompe pas sa devrais te retourner le resultat de la variable qui devrait être : $botnick
Si celà il prend en compte.

et ta recherche que tu désire et de faire un système de devoice par idle plus court en un seul tcl dans un seul eggdrop non ?

cordialement Stéphane
hésitez pas de visité http://www.tchat-fusion.org/
ou part irc /server -m irc.tchat-fusion.org
#38
Dès que je pourrais je regarderais ça de plus près.
Je te tiendrais au courant et essayé de voir ce que je peut faire pour t'aider :).

Bonne soirée à bientôt.
#39

tcl
namespace eval ::av {
	variable salon #tonsalon
	variable time 15
	variable lignes 5
 
 
	bind time - "* * * * *" av::Vvoice
	proc Vvoice {1 2 3 4 5} {
		variable idle
		variable salon
		variable time
		foreach nick [chanlist $salon] {
			if {[isbotnick $nick] || [isop $nick $salon]} continue
			if [info exists idle($nick)] {
				set t1 [lindex $idle($nick) 1]
				set t [unixtime]
				if {[expr $t-$t1]>[expr $time*60] && [isvoice $nick $salon]} {
					pushmode $salon -v $nick
				}
				if {[expr $t-$t1]>300} {
					set idle($nick) "0 $t1"
				}
			} else {
				set idle($nick) "0 [unixtime]"
			}
		}
		flushmode $salon
	}
 
	bind pubm - * av::Pvoice
 
	proc Pvoice {nick host hand chan arg} {
		variable lignes
		variable salon
		if {![string equal -nocase $chan $salon] || [isbotnick $nick]} return
		variable idle
		if ![info exists idle($nick)] {set idle($nick) "1 [unixtime]";return}
		set i [lindex $idle($nick) 0]
		set idle($nick) "[incr i] [unixtime]"
		if {$i>=$lignes} {pushmode $chan +v $nick}
	}
 
	bind join - * av::joinC
 
	proc joinC {nick host hand chan} {
		variable salon
		if {![string equal -nocase $chan $salon] || [isbotnick $nick]} return
		variable idle
		set idle($nick) "0 [unixtime]"
	}
 
	bind nick - * av::chgn
 
	proc chgn {nick host hand chan new} {
		variable salon
		if {![string equal -nocase $chan $salon] || [isbotnick $nick]} return
		variable idle
		if ![info exists idle($nick)] {
			set idle($new) "0 [unixtime]"
		} else {
			set idle($new) $idle($nick)
			unset idle($nick)
		}
	}
 
}

C'est en reconnaissant ses erreurs que l'on progresse ;)
Away
#40
j'aurais plus utilisé getchanidle pour utilisé ce genre de système moi perso.
Et lors de cette utilisation tu évite d'utilisé un bind join
#41
Bonsoir djkenny,
Merci beaucoup pour se code je ne le voyer pas si long :)

par contre y a une erreur de variable :
Quote: [20:44] Tcl error [av::Pvoice]: can't read "linges": no such variable
et donc fonctionne pas :)
et pour le mettre sur plusieurs salon je doit mettre une virgule ?
variable salon #salon1, #salon2, #salon3 etc... ?

Pour le moment je les mis que sur un seule salon pour le testé :)


djkenny Wrote:
tcl
namespace eval ::av {
	variable salon #tonsalon
	variable time 15
	variable lignes 5
 
 
	bind time - "* * * * *" av::Vvoice
	proc Vvoice {1 2 3 4 5} {
		variable idle
		variable salon
		variable time
		foreach nick [chanlist $salon] {
			if {[isbotnick $nick] || [isop $nick $salon]} continue
			if [info exists idle($nick)] {
				set t1 [lindex $idle($nick) 1]
				set t [unixtime]
				if {[expr $t-$t1]>[expr $time*60] && [isvoice $nick $salon]} {
					pushmode $salon -v $nick
				}
				if {[expr $t-$t1]>300} {
					set idle($nick) "0 $t1"
				}
			} else {
				set idle($nick) "0 [unixtime]"
			}
		}
		flushmode $salon
	}
 
	bind pubm - * av::Pvoice
 
	proc Pvoice {nick host hand chan arg} {
		variable lignes
		variable salon
		if {![string equal -nocase $chan $salon] || [isbotnick $nick]} return
		variable idle
		if ![info exists idle($nick)] {set idle($nick) "1 [unixtime]";return}
		set i [lindex $idle($nick) 0]
		set idle($nick) "[incr i] [unixtime]"
		if {$i>=$linges} {pushmode $chan +v $nick}
	}
 
	bind join - * av::joinC
 
	proc joinC {nick host hand chan} {
		variable salon
		if {![string equal -nocase $chan $salon] || [isbotnick $nick]} return
		variable idle
		set idle($nick) "0 [unixtime]"
	}
 
	bind nick - * av::chgn
 
	proc chgn {nick host hand chan new} {
		variable salon
		if {![string equal -nocase $chan $salon] || [isbotnick $nick]} return
		variable idle
		if ![info exists idle($nick)] {
			set idle($new) "0 [unixtime]"
		} else {
			set idle($new) $idle($nick)
			unset idle($nick)
		}
	}
 
}

Bonjour alias_angelius,
Merci de ton aide :)

Euh heureusement que c'est pas adressé a moi car je n'est rien capter :bete: lol mais bon je vous lit et sa me permet de recherche se que sa veut dire sur google :)

alias_angelius Wrote:j'aurais plus utilisé getchanidle pour utilisé ce genre de système moi perso.
Et lors de cette utilisation tu évite d'utilisé un bind join

Cordialement Stéphane
hésitez pas de visité http://www.tchat-fusion.org/
ou part irc /server -m irc.tchat-fusion.org
#42
modifie

tcl
if {$i>=$linges} {pushmode $chan +v $nick}


par

tcl
if {$i>=$lignes} {pushmode $chan +v $nick}

La différence entre Linux et Windows ,c'est que Linux c'est comme une belle fille , il faut l'apprivoiser , la comprendre , la séduire tandis que Windows , c'est comme une prostitué , il faut payer et surtout bien se protéger.
#43
Bonsoir DnS,
encore merci :)
Vraiment super sa fonctionne ;)

J'ai fait un teste sa me voice bien et devoice ni quel suivant la variable pour mais teste j'ai mis 5 lignes et 1mn :)


Code:
(variable salon #teste22
variable time 1
variable lignes 5)
Donc plus aucun souci mis a par si tu veut améliorer pour toi ou un autre ou même pour moi sans abusé de ta sympathie quand la personne se fait devoicé et se re mais a parler de suite après le devoice sa le re voice directe.

Regarde bien les secondes dans mon exemple pour comprendre :)
Quote:[21:11:58] <12snip74> zzedczeczec
[21:11:59] <12snip74> zczeczc
[21:12:00] <12snip74> zczczec
[21:12:01] <12snip74> zczczec
[21:12:02] <12snip74> zczcze
[21:12:03] * Eggdrop sets mode: +v snip74
[21:12:04] <14snip74> zeczeczec
[21:13:34] * Eggdrop sets mode: -v snip74
[21:13:40] <12snip74> zdzdczecze
[21:13:41] * Eggdrop sets mode: +v snip74
[21:15:34] * Eggdrop sets mode: -v snip74



DnS Wrote:modifie

tcl
if {$i>=$linges} {pushmode $chan +v $nick}


par

tcl
if {$i>=$lignes} {pushmode $chan +v $nick}


Cordialement Stéphane
hésitez pas de visité http://www.tchat-fusion.org/
ou part irc /server -m irc.tchat-fusion.org
#44
alias_angelius Wrote:j'aurais plus utilisé getchanidle pour utilisé ce genre de système moi perso.
Et lors de cette utilisation tu évite d'utilisé un bind join

en fait non car le getchanidle prend en compte la moindre action qui est effectué même le changement de pseudo, j'ai testé comme ça mais ça fonctionnait vraiment très mal
@DnS: merci pour la correction, erreur d'inattention
C'est en reconnaissant ses erreurs que l'on progresse ;)
Away
#45
Quote:Donc plus aucun souci mis a par si tu veut améliorer pour toi ou un autre ou même pour moi sans abusé de ta sympathie quand la personne se fait devoicé et se re mais a parler de suite après le devoice sa le re voice directe.

Regarde bien les secondes dans mon exemple pour comprendre :)
en fait c est normal, le temps de mise a zéro du nombre de lignes est de 5 minutes donc forcement si tu mets une minutes pour le dévoice ça ne peut pas fonctionner correctement
C'est en reconnaissant ses erreurs que l'on progresse ;)
Away


Possibly Related Threads…
Thread Author Replies Views Last Post
  Recherche uno pour eggdrop MRVOLKANO 2 4,438 03/12/2010, 23:45
Last Post: Mrvolks

Forum Jump:


Users browsing this thread: 1 Guest(s)