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 a écrit :
snip74 a écrit :Bonjour all Smile
Je recherche un code similaire sur google et je suis tombé sur votre forum Smile
profil a écrit :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
Répondre Avertir
#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.
Répondre
#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.
Répondre Avertir
#34
Bonjour CrazyCat,
Merci de ta réponse Wink

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 a écrit :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 a écrit :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
Répondre Avertir
#35
Bonjour alias_angelius,
Merci de ton aide Smile

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 a écrit :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
Répondre Avertir
#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 ?
Répondre Avertir
#37
Bonjour alias_angelius,
Encore merci pour ton aide Smile
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 Smile

alias_angelius a écrit :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
Répondre Avertir
#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 Smile.

Bonne soirée à bientôt.
Répondre Avertir
#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 Wink
Répondre Avertir
#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
Répondre Avertir
#41
Bonsoir djkenny,
Merci beaucoup pour se code je ne le voyer pas si long Smile

par contre y a une erreur de variable :
Citation : [20:44] Tcl error [av:Razzvoice]: can't read "linges": no such variable
et donc fonctionne pas Smile
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é Smile


djkenny a écrit :
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 Smile

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 Smile

alias_angelius a écrit :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
Répondre Avertir
#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.
Répondre Avertir
#43
Bonsoir DnS,
encore merci Smile
Vraiment super sa fonctionne Wink

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 Smile

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 Smile
Citation :[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 a écrit :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
Répondre Avertir
#44
alias_angelius a écrit :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 Wink
Répondre Avertir
#45
Citation :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 Smile
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 Wink
Répondre Avertir


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté