This is the new home of the egghelp.org community forum.
All data has been migrated (including user logins/passwords) to a new phpBB version.


For more information, see this announcement post. Click the X in the top right-corner of this box to dismiss this message.

The script

Old posts that have not been replied to for several years.
Locked
j
joshprice

Post by joshprice »

Code: Select all

set av_dtime 23
set av_nodevoiceflag "2gb"
set av_novoiceflag "1"
set av_partylog 0
set av_delay 23
set av_opvoice 1
if {$numversion < "1050000"} {
 putlog "you need eggdrop version >1.5 for autovoice on pubmsg script to work"
 return 0
}

setudef flag av.pubmsg
setudef flag av.devoice
setudef int av.dtime

proc av_main {nik uhost hand chan text} { 
 global av_delay av_novoiceflag

 set delay [expr 1 + [rand $av_delay]] 

 if {![string match *av_devoice* [timers]]} {timer [expr 3 + [rand 5]] av_devoice}
 set chan [string tolower $chan] 
 if {[av_fcheck $chan] == 0} {return 0}
 if {[matchattr $hand $av_novoiceflag] || [matchattr $hand |$av_novoiceflag $chan]} { 
	return 0
 }
 if {![isvoice $nik $chan]} { 
	utimer $delay [split "av_doit $chan $nik"] 
 }
}

proc av_doit {vchan vnick} { 
global av_opvoice
 if {![isvoice $vnick $vchan]} {
  if {($av_opvoice == 0) && [isop $vnick $vchan]} { return 0 }
  pushmode $vchan +v $vnick 
 } 
} 

proc av_devoice {} {
global av_dtime av_nodevoiceflag av_partylog
if {![string match *av_devoice* [timers]]} {timer [expr 1 + [rand 3]] av_devoice}
 foreach chan [channels] {
  set dtime $av_dtime
  if {[av_cdtime $chan] != 0} {
   set dtime [av_cdtime $chan]
  }
  set av_deoplist ""
  if {[av_dcheck $chan] == 1} {
   foreach user [chanlist $chan] {
    set hand [nick2hand $user]
    if {[matchattr $hand $av_nodevoiceflag] || [matchattr $hand |$av_nodevoiceflag $chan]} {
	continue
    }
    if {([getchanidle $user $chan] > $dtime) && [isvoice $user $chan]} {
	pushmode $chan -v $user
	set av_deoplist "$av_deoplist $user"
    }
   }
   if {$av_partylog == 1} {
    set count 0
    foreach u $av_deoplist {
	set count [expr $count + 1]
    }
    if {($count != 0)} {
     putlog "-[ av.pubmsg ]- devoicing $count users in $chan: $av_deoplist"
    }
   }
  }
 }
}

proc av_cdtime {chan} {
 foreach info [string tolower [channel info $chan]] {
  if {[lindex $info 0] == "av.dtime"} {
   return [lindex $info 1]
  }
 }
}

proc av_fcheck {chan} {
 foreach info [channel info $chan] {
  if {[string tolower [string range $info 1 e]] == "av.pubmsg"} {
   if {[string index $info 0] == "-"} {
    return 0
   } else {
    return 1
   }
  }
 }
 return 0
}

proc av_dcheck {chan} {
 foreach info [channel info $chan] {
  if {[string tolower [string range $info 1 e]] == "av.devoice"} {
   if {[string index $info 0] == "-"} {
    return 0
   } else {
    return 1
   }
  }
 }
 return 0
}

set autovoice_chans ""

foreach chan [channels] {
 if {[av_fcheck $chan] == 1} {
	set autovoice_chans "$autovoice_chans $chan"
 }
}

if {![string match *av_devoice* [timers]]} {timer [expr 3 + [rand 5]] av_devoice}

bind pubm - * av_main

putlog "-[ voice on pubmsg script v1.2 by aerosoul active on: $autovoice_chans ]-"

<font size=-1>[ This Message was edited by: joshprice on 2001-10-21 16:03 ]</font>
Locked