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.

can u make count script on join

Requests for complete scripts or modifications/fixes for scripts you didn't write. Response not guaranteed, and no thread bumping!
Post Reply
User avatar
4mirc
Voice
Posts: 37
Joined: Fri May 16, 2008 11:11 pm
Contact:

can u make count script on join

Post by 4mirc »

hi all

can any 1 make script for my bot to count users on join

i mean when any user join chan let the bot notice him

hi 4mirc You are the user nuber 1 joining this chan

and for example next user join her nick sara

let the bot notice her

hi sara You are the user nuber 2 joining this chan

im waiting and thx
t
tueb
Halfop
Posts: 76
Joined: Thu Oct 04, 2007 6:09 am
Location: #quiz.de @ irc.gamesurge.net
Contact:

Post by tueb »

hi,

this might work:

Code: Select all

bind join - * chan_on_joined

proc chan_on_joined {nick host handle channel} {

 set fname "count.txt"

 ## 
 if {![file exists $fname]} {
    set file [open $fname w]
    puts $file "0"
    close $file
 }
 ##


 set file [open $fname "r"]
 set data [read -nonewline $file]
 close $file

 set newdata [incr data]

 set greet_text "Hi $nick! You are the user number $newdata joining $channel."
 puthelp "PRIVMSG $channel :$greet_text"

 set file [open $fname w]
 puts $file $newdata
 close $file
}
this part could be deleted after the first try. it only creates the count.txt once:

Code: Select all

 ## 
 if {![file exists $fname]} {
    set file [open $fname w]
    puts $file "0"
    close $file
 }
 ##
tueb
#Quiz.de @ irc.GameSurge.net
JavaChat
User avatar
4mirc
Voice
Posts: 37
Joined: Fri May 16, 2008 11:11 pm
Contact:

Post by 4mirc »

thx tueb

its working 100%
User avatar
Sir_Fz
Revered One
Posts: 3794
Joined: Sun Apr 27, 2003 3:10 pm
Location: Lebanon
Contact:

Post by Sir_Fz »

Such a script already exists. Search the Tcl Archive.
B
Bahasa
Voice
Posts: 19
Joined: Sun Jul 27, 2008 11:22 am
Contact:

Post by Bahasa »

4mirc wrote:thx tueb

its working 100%
maybe you need this either for kick/ban counter

Code: Select all

#This is a basic kick and join counter. This script requires that 
#userinfo1.0.tcl is loaded before this script is. And also that KICKS is a 
#field in the userinfo1.0.tcl script. I would appreciate it, if you left my 
#nick in the putlog. Any changes, improvements, or problems plz don't hesitate
#to email me at abodnar@mail.utexas.edu
# --Neuromancer

#New to v2.0
#------------------------------------------------------------------------------
#- Added cmds to let you find out the total amount of joins to a channel by doing 
#either .totaljoins [#channel] in the bot or !totaljoins [#channel] in the
#channel, #channel is optional.
#- Added cmds to let you find out the total amount of kicks for a channel 
#or a person by doing either .totalkicks [nick] in the bot or 
#!totalkicks [nick] in the channel, nick is optional. 
#- Cleaned up some of the code dealing w/ the files
#- Made the # given when someone joins have the proper ending...
#ie. 1 = 1st, 2 = 2nd, 263 = 263rd


if {![info exists userinfover] } {
 putlog "*** Can't load Counter 2.0 -- Userinfo v1.01 required"
 return 0
}

bind pub f|f !totaljoins pub:totaljoins
bind dcc f|f totaljoins dcc:totaljoins
bind join -|- * joincounter
bind pub f|f !totalkicks pub:totalkicks
bind dcc f|f totalkicks dcc:totalkicks
bind kick -|- * kickcounter
set khits 0
set jhits 0

proc convert {number} {
 set one st
 set two nd
 set three rd
 set others th
 set numlength [string length $number]
 incr numlength -2
 set num2ndchar [string index $number $numlength]
 switch $num2ndchar {
  1 { set number $number$others }
  default {
   incr numlength
   set numchar [string index $number $numlength]
   switch $numchar {
    1 { set number $number$one }
    2 { set number $number$two }
    3 { set number $number$three }
    default { set number $number$others }
   }
  }
 }
 return $number
}

proc dcc:totaljoins {hand idx arg} {
 if {$arg == ""} {
  set temp 0
  set chan [lindex [console $idx] 0]
  set rchan [string tolower $chan]
  if {[file exists ./scripts/$rchan.jcount.txt]} {
   set o_fid [open "./scripts/$rchan.jcount.txt" "RDONLY"]
   gets $o_fid temp
   close $o_fid
   putdcc $idx "$temp orang yang sudah berkunjung ke $rchan"
   return 0
  } else {
   putdcc $idx "Sorry, no one has visited $rchan yet"
  }
 } else {
  set temp 0
  set rchan [string tolower $arg]
  if {[file exists ./scripts/$rchan.jcount.txt]} {
   set o_fid [open "./scripts/$rchan.jcount.txt" "RDONLY"]
   gets $o_fid temp
   close $o_fid
   putdcc $idx "$temp orang yang sudah berkunjung ke $rchan"
   return 0
  } else {
   putdcc $idx "Sorry, no one has visited $rchan yet"
  }
 }
}

proc pub:totaljoins {nick host hand chan arg} {
 if { $arg == "" } {
  set temp 0
  set rchan [string tolower $chan]
  if {[file exists ./scripts/$rchan.jcount.txt]} {
   set o_fid [open "./scripts/$rchan.jcount.txt" "RDONLY"]
   gets $o_fid temp
   close $o_fid
   putserv "PRIVMSG $chan :$temp orang yang sudah berkunjung ke $chan"
   return 0
  } else {
   putserv "PRIVMSG $chan :Sorry, no one has visited $rchan yet"
  }
 } else {
  set temp 0
  set rchan [string tolower $arg]
  if {[file exists ./scripts/$rchan.jcount.txt]} {
   set o_fid [open "./scripts/$rchan.jcount.txt" "RDONLY"]
   gets $o_fid temp
   close $o_fid
   putserv "PRIVMSG $chan :$temp orang yang sudah berkunjung ke $rchan"
   return 0
  } else {
   putserv "PRIVMSG $chan :Sorry, no one has visited $rchan yet"
  }
 }
} 

proc joincounter {nick host hand chan} {
 global jhits
 set temp 0
 set rchan [string tolower $chan]
 if {[file exists ./scripts/$rchan.jcount.txt]} {
  set o_fid [open "./scripts/$rchan.jcount.txt" "RDONLY"]
  gets $o_fid temp
  close $o_fid
 } else {
  set o_fid [open "./scripts/$rchan.jcount.txt" "CREAT RDWR"]
  puts $o_fid temp
  close $o_fid
 }
 set jhits $temp
 incr jhits
 putserv "NOTICE $nick :selamat datang. kamu adalah orang ke [convert $jhits] yang sudah berkunjung ke $chan"
 set o_id [open "./scripts/$rchan.jcount.txt" "WRONLY"]
 puts $o_id $jhits
 close $o_id
}


proc dcc:totalkicks {hand idx arg} {
 if {$arg == ""} {
  set temp 0
  set chan [lindex [console $idx] 0]
  set rchan [string tolower $chan]
  if {[file exists ./scripts/$rchan.kcount.txt]} {
   set o_fid [open "./scripts/$rchan.kcount.txt" "RDONLY"]
   gets $o_fid temp
   close $o_fid
   putdcc $idx "$temp people have been kicked from $rchan"
   return 0
  } else {
   putdcc $idx "Sorry, no one has been kicked from $rchan yet"
  }
 } else {
  set temp 0
  set nick [string tolower $arg]
  if {[validuser $nick]} {
   if {[getuser $nick XTRA KICKS] == ""} {
    putdcc $idx "$arg hasn't kicked anyone yet"
   } else {
    set tkicks [getuser $nick XTRA KICKS]
    putdcc $idx "$arg has kicked $tkicks lamers"
   }
  } else {
   putdcc $idx "I do not know who $arg is"
  }
 }
}        

proc pub:totalkicks {nick host hand chan arg} {
 if {$arg == ""} {
  set temp 0
  set rchan [string tolower $chan]
  if {[file exists ./scripts/$rchan.kcount.txt]} {
   set o_fid [open "./scripts/$rchan.kcount.txt" "RDONLY"]
   gets $o_fid temp
   close $o_fid
   putserv "PRIVMSG $chan :$temp people have been kicked from $rchan"
   return 0
  } else {
   putserv "PRIVMSG $chan :Sorry, no one has been kicked from $rchan yet"
  }
 } else {
  set temp 0
  set nick [string tolower $arg]
  if {[validuser $nick]} {
   if {[getuser $nick XTRA KICKS] == ""} {
    putserv "PRIVMSG $chan :$arg hasn't kicked anyone yet"
   } else {
    set tkicks [getuser $nick XTRA KICKS]
    putserv "PRIVMSG $chan :$arg has kicked $tkicks lamers"
   }
  } else {
   putserv "PRIVMSG $chan :I do not know who $arg is"
  }
 }
}

proc kickcounter {nick host hand chan knick reason} {
 global khits
 set temp 0
 set rchan [string tolower $chan]
 if {[file exists ./scripts/$rchan.kcount.txt]} {
  set o_fid [open "./scripts/$rchan.kcount.txt" "RDONLY"]
  gets $o_fid temp
  close $o_fid
 } else {
  set o_fid [open "./scripts/$rchan.kcount.txt" "CREAT RDWR"]
  puts $o_fid temp
  close $o_fid
 }
 set khits $temp
 incr khits
 if {[validuser [nick2hand $nick $chan]]} {
  if {[getuser $hand XTRA KICKS] == ""} {
   setuser $hand XTRA KICKS 0 
  }
  set tkicks [getuser $hand XTRA KICKS]
  incr tkicks
  setuser $hand XTRA KICKS $tkicks
  putserv "PRIVMSG $chan :$nick udah ngekick $tkicks nickname. siapa selanjutnya? hehehe"
 }
 putserv "NOTICE $knick :kamu adalah orang ke [convert $khits] yang sudah di kick dari $chan"
 putserv "PRIVMSG $chan :$knick adalah orang ke [convert $khits] yang sudah di kick dari $chan"
 set o_id [open "./scripts/$rchan.kcount.txt" "WRONLY"]
 puts $o_id $khits
 close $o_id
}

putlog "Join & Kick Counter v2.1 by Neuromancer"
Post Reply