for now, you can do something like this (ripped out of larger scripts):

Code:
ctcp ^*:*: {
  elseif ($1 == ping) {
    if ($calc(($2 - $ctime)/1000) >= 0) { var %pt = $calc(($2 - $ctime)/1000) | goto display }
    if ($calc(($ctime - $2)/1000) >= 0) { var %pt = $calc(($ctime - $2)/1000) | goto display }
    :display
    rest of code here
  }
}


I had to add a line cause for some reason I could get negative replies. I know I know, "must be faulty coding" LOL

Code:
on *:ctcpreply:*: {
  if ($1 == ping) {
    if (($nick == $me) || (!$2) || ($2 !isnum)) { halt }
    var %pt = $calc(($ticks - $2)/1000)
    rest of code here
  }
}


These are just examples, but it has always worked for me smile In case you wanna know why I have it in both places, the reason is simple, when somebody pings, all they care about is how long it takes a message to get from you to me. nobody really cares about the return trip, so one of those scripts intercepts their ping request and just displays the lag from their request to my recieve. it cuts down on a trip. Think of it this way:

Trip 1) They request a ping
Trip 2) You send them the reply
Trip 3) They issue the custom display with milliseconds

So it goes from them to you (trip 1), you to them (trip 2) and them back to you (trip 3). With the other way, it does:

Trip 1) they request a ping
Trip 2) you recieve their request which includes a time you can utilize and send them back the one way lag check. See if that works for you in the meantime


Those who fail history are doomed to repeat it