Communauté sur les Eggdrops - Community about Eggdrops
[Demande] Script TCL de mode #Salon - Printable Version

+- Communauté sur les Eggdrops - Community about Eggdrops (https://forum.eggdrop.fr)
+-- Forum: Eggdrop et TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=8)
+--- Forum: Scripts TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=4)
+--- Thread: [Demande] Script TCL de mode #Salon (/showthread.php?tid=1663)



Script TCL de mode #Salon - KeeViiNou - 24/02/2017

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 ZarTek que j'ai tenté de bidouiller et que voici :


tcl
bind pub - "+modo" ban
proc ban { nick host hand chan arg } {
	# ZarTek: ![llength $arg] -> permet de connaitre la longueur d'$arg. Ici il est vrai si la valeur ne vaut 1 (qui ai que +b)
	# ZarTek: ![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] } {
		# ZarTek: Si ces deux conditions sont réunis, alors tu ban du chan le gars qui a taper la commande
		putquick "MODE $chan +modo "
	# ZarTek: Si ses deux conditions ne sont pas reunis :
	} else {
		# ZarTek: alors verifie si +b n'ai pas un nick present sur le chan ?!
		if { ![onchan [lindex $arg 0] $chan] } {
			# ZarTek: si Mr +b n'ai pas sur le chan tu le banni :
			putquick "MODE $chan +modo \ [lindex $arg 0]"
			# ZarTek: ici tu arrete le script pour que le reste ne s'execute pas si Mr +b n'ai pas sur le chan 
			return 0
		}
		# ZarTek: 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 ?


RE: Script TCL de mode #Salon - Alucard`68 - 24/02/2017

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.


RE: Script TCL de mode #Salon - CrazyCat - 26/02/2017

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
}