[Demande] Script TCL de mode #Salon
#1
Hello la compagnie,

Je poste ici un sujet car j'aimerais créer un tcl de "gestion" des modes des salons. Je m'explique, mon salon est mode +m pour des raisons personnelles comme la simplicité de mettre out un utilisateur par exemple. Sur cet eggdrop j'utilise donc un script de silence. Dès que le délais est passé, il enlève le mode +m et j'aimerais avoir un tcl qui le remette automatiquement.
Je suis tombé sur un script de mcdeffice que j'ai tenté de bidouiller et que voici :

TCL
bind pub - "+modo" ban
proc ban { nick host hand chan arg } {
	# McDeffice: ![llength $arg] -> permet de connaitre la longueur d'$arg. Ici il est vrai si la valeur ne vaut 1 (qui ai que +b)
	# McDeffice: ![isvoice $nick $chan] -> ici l'utilisateur qui tape +b ne doit pas être en +v (voice)sur le channel où il le tape
	if { ![llength $arg] && ![isvoice $chan] } {
		# McDeffice: Si ces deux conditions sont réunis, alors tu ban du chan le gars qui a taper la commande
		putquick "MODE $chan +modo "
	# McDeffice: Si ses deux conditions ne sont pas reunis :
	} else {
		# McDeffice: alors verifie si +b n'ai pas un nick present sur le chan ?!
		if { ![onchan [lindex $arg 0] $chan] } {
			# McDeffice: si Mr +b n'ai pas sur le chan tu le banni :
			putquick "MODE $chan +modo \ [lindex $arg 0]"
			# McDeffice: ici tu arrete le script pour que le reste ne s'execute pas si Mr +b n'ai pas sur le chan 
			return 0
		}
		# McDeffice: et ici si Mr +b est sur le chan, ben tu le banni quand meme :
		putquick "MODE $chan +modo [lindex $arg 0]"
	}
}
putlog "Le +m activé"



Cependant, j'aimerais y rajouter un timer de 3 minutes équivalant au temps du silence impose. C'est là que je rame un peu...

Pouvez-vous me venir en aide svp ?
Répondre Avertir
#2
Bonsoir j'ai déjà un code pour cela :)
TCL
bind mode -|- * mode:ban
proc mode:ban { nick host hand chan mode victim } {
 if { $chan == "#Charme" } {
   if { $mode == "-b" } {
     pushmode $chan +b ~r:10_*_*
     pushmode $chan +b ~r:11_*_*
     pushmode $chan +b ~r:12_*_*
     pushmode $chan +b ~r:13_*_*
     pushmode $chan +b ~r:14_*_*
     pushmode $chan +b ~r:15_*_*
     pushmode $chan +b ~r:16_*_*
     pushmode $chan +b ~r:17_*_*
     pushmode $chan +b ~c:#-18ans
   }
}


Voila a toi de l'adapter pour tes besoins.
Sur mon serv il fonctionne parfaitement.
Code :
[19:11:54] [-b] Vous avez Débanni: ~r:17_*_*
[19:11:54] [-b] Vous avez Débanni: ~r:16_*_*
[19:11:54] [-b] Vous avez Débanni: ~r:15_*_*
[19:11:54] [-b] Vous avez Débanni: ~r:14_*_*
[19:11:54] [-b] Vous avez Débanni: ~r:13_*_*
[19:11:54] [-b] Vous avez Débanni: ~r:12_*_*
[19:11:54] [-b] Vous avez Débanni: ~r:11_*_*
[19:11:54] [-b] Vous avez Débanni: ~r:10_*_*
[19:11:54] [-b] Vous avez Débanni: ~c:#-18ans
[19:11:54] [+b] Jarvis viens de Bannir: ~r:17_*_*
[19:11:55] [+b] Jarvis viens de Bannir: ~r:16_*_*
[19:11:56] [+b] Jarvis viens de Bannir: ~r:15_*_*
[19:11:57] [+b] Jarvis viens de Bannir: ~r:14_*_*
[19:11:59] [+b] Jarvis viens de Bannir: ~r:13_*_*
[19:12:01] ⓘ LimitServ met le mode » +l 17
[19:12:01] [+b] Jarvis viens de Bannir: ~r:12_*_*
[19:12:03] [+b] Jarvis viens de Bannir: ~r:11_*_*
[19:12:05] [+b] Jarvis viens de Bannir: ~r:10_*_*
[19:12:07] [+b] Jarvis viens de Bannir: ~c:#-18ans
Bien à toi.
Répondre Avertir
#3
Je ne comprends pas bien la demande...
Ton canal est en +m et tu veux que lorsque ce mode est retiré, l'eggdrop le remette 3 minutes plus tard ? Il suffit donc de mettre un bind sur MODE et si le mode est -m sur ton canal, déclencher le timer
TCL
set mychan "#salon"
bind MODE - * unmode
proc unmode {nick uhost hand chan mode {target ""}} {
    if { [string tolower $chan] != [string tolower $::mychan]} { return 0 }
    if { $mode != '-m' } { return 0 }
    timer 3 [list pushmode $chan +m]
   return 1
}


Répondre


Atteindre :


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