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.

ping script

Requests for complete scripts or modifications/fixes for scripts you didn't write. Response not guaranteed, and no thread bumping!
Post Reply
B
BhasIRC
Voice
Posts: 27
Joined: Sat Jan 02, 2010 7:05 am
Location: south africa
Contact:

ping script

Post by BhasIRC »

Hi guys..

i need some help i hope i am posting this request in the right place

i have this ping script it works fine but i need it to work like my mirc script i will show u the tcl 1 i have now and my old mirc script with the mirc 1 if i typ !ping or !ping me it pings me and if i typ !ping user it pings the users nick i give and gives me and the user the ping reply here is both my codes

Code: Select all

### You can change these settings if you want ###

# Public triggers, seperated by spaces.
set pingpubwords "ping pingme .ping .pingme !ping !pingme"

# If you want to restrict ping requests to users with certain flags, change this.
set pingreqdflags "-|-"

# If you only want the bot to respond to requests from specific channels,
# set them here, separated by spaces, e.g. "#foo #bar #baz".  Setting one
# or more channels here makes the bot ignore the disabled chans setting.
set pingenabledchans ""

# If there are channels where you don't want the bot to listen for !ping
# requests, set them here, seperated by spaces, e.g. "#lame #lamer #lamest".
# This setting is meaningless if a specific list of channels have been given
# in the enabled chans setting.
set pingdisabledchans ""

# Do you want to calculate ping replies in milliseconds (1) or not (0)?
# Millisecond calculation only works on Tcl 8.3 and above, but you can safely
# leave this enabled, the script will detect your Tcl version and disable this
# if necessary.
set pingmilli 1


### YOU SHOULDN'T NEED TO EDIT ANYTHING BEYOND THIS POINT! ###
# Misc. stuff
set pingver "1.0.6"
set pingnver "100006"
putlog "Loading eggping.tcl $pingver by Souperman..."
if { ([info tclversion] < 8.3) && ($pingmilli == 1) } {
	set pingmilli 0
	putlog " eggping.tcl: warning: cannot calculate PINGs in milliseconds (requires Tcl 8.3 or higher). PINGs will be calculated in seconds."
}

# binds
foreach trigger [split $pingpubwords] { bind pub $pingreqdflags $trigger pingnickpub }
bind ctcr $pingreqdflags PING pingreply

# triggered by ping command on channel
proc pingnickpub {nick uhost hand chan text} {
	if {$::pingenabledchans != ""} {
		foreach channel [split $::pingenabledchans] {
			if {[string tolower $channel] == [string tolower $chan]} {
				global pingchan
				set pingchan $chan
				pingnick $nick
				return 1
			}
		}
		return 0
	} else {
		foreach channel [split $::pingdisabledchans] {
			if {[string tolower $channel] == [string tolower $chan]} {
				return 0
			}
		}
		global pingchan
		set pingchan $chan
		pingnick $nick
		return 1
	}
}

# called by pingnickpub or pingnickmsg, sends a CTCP PING to $nick.
proc pingnick {nick} {
	if {$::pingmilli} {
		putquick "PRIVMSG $nick :\001PING [expr {abs([clock clicks -milliseconds])}]\001"
	} else {
		putquick "PRIVMSG $nick :\001PING [unixtime]\001"
	}
}

# processes a CTCP PING reply.
proc pingreply {nick uhost hand dest key args} {
	global pingchan
	set pingnum [lindex $args 0]
	set pingserver [lindex [split $::server :] 0]
	# sanity check -- only processes the CTCP PING reply if it's value is a number
	if {[regexp -- {^-?[0-9]+$} $pingnum]} {
		if {$::pingmilli} {
			putquick "PRIVMSG $pingchan $nick: The lag between us is [expr {abs([expr [expr {abs([clock clicks -milliseconds])} - $pingnum] / 1000.000])}] seconds"
		} else {
			putquick "PRIVMSG $pingchan $nick: The lag between us is [expr [unixtime] - $pingnum] seconds"
		}
	}
}

and here is the mirc code

Code: Select all

on *:text:!ping*:*:  { 
  if (!$2) { 
    ctcp $nick ping 
    notice $nick Please Wait one sec for your ping ! 
    set -u5 %ping $nick 
  }
  if ($2 != $null) && ($2 == me) { 
    ctcp $nick ping 
    notice $nick Please Wait one sec for your ping ! 
    set -u5 %ping $nick 
  }
  if ($2 != $null) && ($2 != $me) { 
    if ($2 ison $chan) {
      ctcp $2 ping 
      notice $nick Please Wait one sec for $2 `s ping !
      notice $2 Please Wait one sec for your ping ! Requested by $nick 
      set -u5 %pingnick $2 
      set -u5 %pingrequested $nick
    }
  }
}
on *:CtcpReply:ping*: { 
  if (%ping != $null)   notice %ping Done Your Ping is  4 $calc($ctime - $2) $+ sec   8,1 <<Zainul`s Ping Script>>
  if (%pingnick != $null)  notice %pingnick Done Your Ping is  4 $calc($ctime - $2) $+ sec   8,1<<Zainul`s Ping Script>>
  if (%pingrequested != $null)  notice %pingrequested Done %pingnick $+ `s Ping is  4 $calc($ctime - $2) $+ sec     8,1<<Zainul`s Ping Script>>
}
Thanks in advance
Zainul
Post Reply