vip.tcl
#1
Bonjour tout le monde , alors voila j'ai recuperé une tcl pour voicer mes vip mais j'aurrais voulu que sa kickban ceux qui ne sont pas vip . Si il étais possible de m'aider à trouver ça serais sympa . J'ai cherché a modifier le vipscan sans succès . Merci d'avance .

########################################################################
#
# BlackVIP TCL 1.0
#
# !vip on/off
# !addvip nick
# !listvip
# !remvip number ( take it from the list )
#
#A TCL used to add VIP`s foreach chan.And if the nicks joins on the specific
#chan they receive VOICE + a message.It has also a timer for scan if all the VIP`S
#have VOICE.
# BLaCkShaDoW ProductionS
#######################################################################

#Set here the time for scan if all the VIP`S has VOICE (minutes)

set viptime "2"

#If you want the VIP to receive a message set here "1"
#or else set here "0"

set viphowmsg "0"

#If you set "1" set here the message

set vipmsg "YOu received VOICE because you are a VIP member of this chan Smile"

#Set here the flags that can add VIP`S

set vipwho "Nmn|MN"


########################################################################
#
# The ENd
#
########################################################################

bind pub $vipwho !vip vipstatus
bind pub $vipwho !addvip addvip
bind pub $vipwho !remvip remvip
bind pub $vipwho !listvip listvip
bind join - * vipscan
setudef flag vip


if {![info exists vips_running]} {
timer $viptime vips
set vips_running 1
}

proc vipstatus {nick host hand chan arg} {
set flag "vip"
set why [lindex [split $arg] 0]
if {$why == "" } { puthelp "NOTICE $nick :use .vip <on> / <off>"
return 0
}
if {$why == "on"} {
channel set $chan +$flag
puthelp "NOTICE $nick :VIP active sur $chan"
return 0
}
if {$why == "off"} {
channel set $chan -$flag
puthelp "NOTICE $nick :VIP desactiver sur $chan"
return 0
}
}

proc addvip {nick host hand chan arg} {
set dir "/scripts/logs/vip($chan).txt"
set vip [join [lindex [split $arg] 0]]
if {$vip == ""} { puthelp "NOTICE $nick :Faire .addvip <nick>"
return 0
}

if {[file exists $dir] == 0} {
set file [open $dir a]
close $file
}

set file [open $dir a]
puts $file $vip
close $file
puthelp "NOTICE $nick :VIP - $vip - ajouter dans la database"
}

proc listvip {nick host hand chan arg} {
set dir "/scripts/logs/vip($chan).txt"
if {[file exists $dir] == 0} {
set file [open $dir a]
close $file
}
set file [open $dir "r"]
set w [read -nonewline $file]
close $file
set data [split $w "\n"]
set i 0
if {$data == ""} { puthelp "NOTICE $nick :Il y'a aucun VIP`S !"
return 0
}

foreach vip $data {
set i [expr $i +1]
lappend vipnumber $i.$vip
}
foreach txt [wordwrap [join $vipnumber " "] 200] {
puthelp "NOTICE $nick :Les VIP`S sont :"
puthelp "NOTICE $nick :$txt"
}
}

proc remvip {nick host hand chan arg} {
set dir "/scripts/logs/vip($chan).txt"
set number [join [lindex [split $arg] 0]]
if {$number == ""} { puthelp "NOTICE $nick :Faire .remvip <number> (take`it from the list)"
return 0
}
if {[file exists $dir] == 0} {
set file [open $dir a]
close $file
}
set file [open $dir "r"]
set data [read -nonewline $file]
close $file
set lines [split $data "\n"]
set i [expr $number - 1]
set delete [lreplace $lines $i $i]
set files [open $dir "w"]
puts $files [join $delete "\n"]
close $files
puthelp "NOTICE $nick :Supprimer de la liste le pseudo avec le nombre $number.Pour verifier ,faire .listvip"
}

proc vipscan {nick host hand chan} {
global vipmsg viphowmsg
set dir "/home/raziel/eggdrop1/scripts/logs/vip($chan).txt"
if {[file exists $dir] == 0} {
set file [open $dir a]
close $file
}
set file [open $dir "r"]
set w [read -nonewline $file]
close $file
set data [split $w "\n"]
if {$data == ""} {
return 0
}
foreach vip $data {
if {[string match -nocase $nick $vip]} {
pushmode $chan +v $vip
}
}
}

proc vips { } {
global viptime
foreach chan [channels] {
set dir "/scripts/logs/vip($chan).txt"
if {[channel get $chan vip]} {
putlog "Recherche VIP`S sur le salon $chan.."
set file [open $dir "r"]
set w [read -nonewline $file]
close $file
set data [split $w "\n"]
foreach vip $data {
if {[onchan $vip $chan]} {
if {![isvoice $vip $chan]} {
pushmode $chan +v $vip
}
}
}
}
}
timer $viptime vips
return 1
}


proc wordwrap {str {len 100} {splitChr { }}} {
set out [set cur {}]; set i 0
foreach word [split [set str][unset str] $splitChr] {
if {[incr i [string len $word]]>$len} {
lappend out [join $cur $splitChr]
set cur [list $word]
set i [string len $word]
} {
lappend cur $word
}
incr i
}
lappend out [join $cur $splitChr]
}



putlog "BlackVIP TCL by BLaCkShaDoW Loaded"
Répondre Avertir
#2
Bonjour , on ma dit que c'étais pas possible sans refaire tout le code . Merci quand meme et bonne continuation à tous .
Donc sujet résolu Smile
Répondre Avertir
#3
Bonsoir à tous , je revien vers vous pour voir ce que vous pensez de ma tcl pour faire un systeme de vip par flags . J'avoue être nouveau dans la création de tcl , avant je ne fesais qu'en modifier et d'en traduire .Merci d'avance pour vos conseils et remaques .
Répondre Avertir
#4
Il y a déjà une chose qui me choque: toute personne qui n'est pas VIP est bannie du canal, mais pour l'ajouter dans les VIP elle doit être sur le canal... Comment cela peut-il fonctionner ?
Répondre
#5
Bonjour , en ce qui conscerne :
1) Il y a déjà une chose qui me choque: toute personne qui n'est pas VIP est bannie du canal <---
rep: c'est bien mieux qu'une BL , seul ceux qui sont ajoutés dans la vip peuvent rester sur le salon et (spam , boulets etc ) dehors .
2) mais pour l'ajouter dans les VIP elle doit être sur le canal... <----
rep: j'avoue que j'ai peut être fais des erreurs comme le onchan dans le addvip .

3) j'avoue aussi que j'ai laissé des fautes dans le tcl pour les raisons etc, mais je devais avoir quelqu'un a m'aider pour le faire et j'ai eu personne . Donc je vien sur el forum c'est aussi pour trouver un peut d'aide et de conseils .
Et donc pour ma tcl voir comment l'améliorer quoi .
Répondre Avertir


Atteindre :


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