All pastes #503327 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-05-22 20:50 UTC
rendered paste body
on *:load: {
  /check
}
on *:start: {
  check
  .timercheck 0 200 /check
}
alias check {
  if (!%status) {
    if ($window(@lagmeter)) {
      set %status Off
    }
    else {
      set %status On
    }
  }
}
menu * {
  .Oliver's Lagmeter 
  ..%status {
    start
  }
  ..Set Refresh Time {
    dialog -md lagmeter lagmeter
  }
  ..Help {
    dialog -md help help
  }
}
alias start {
  if (!$window(@lagmeter)) {
    if ($window(@lagmeter)) {
      window -c @lagmeter
    }
    window -odp +dL @lagmeter 546 44 220 20
    var %x = 0 
    while (%x <= 15) { 
      drawreplace @lagmeter $iif(%x < 10,0 $+ %x,%x) 15
      inc %x 
    }
    drawrect -f @lagmeter 0 1 5 4 150 10
    drawrect @lagmeter 14 1 4 3 152 12 
    update
    if (%repeat == $null) {
      set %repeat 2
    }
    .timerlagmeter 0 %repeat /update
    set %status Off
  }
  else {
    window -c @lagmeter
    .timerlagmeter off
    set %status On
  }
}
alias update {
  set %ticks $ticks 
  .raw ping lagmeter
}
alias box {
  /drawreplace @lagmeter 12 0
  if (%lagtime == 0) { 
    halt
  }
  elseif (%lagtime <= 0.1) {
    gradien 10
  }
  elseif (%lagtime <= 0.2) {
    gradient 45  
  }
  elseif (%lagtime <= 0.22) {
    gradient 50 
  }
  elseif (%lagtime <= 0.24) {
    gradient 55 
  }
  elseif (%lagtime <= 0.25) {
    gradient 60  
  }
  elseif (%lagtime <= 0.26) {
    gradient 65 
  }
  elseif (%lagtime <= 0.27) {
    gradient 70 
  }
  elseif (%lagtime <= 0.29) {
    gradient 75 
  }
  elseif (%lagtime <= 0.3) {
    gradient 80 
  }
  elseif (%lagtime <= 0.4) {
    gradient 90
  }
  elseif (%lagtime <= 0.5) {
    gradient 100  
  }
  elseif (%lagtime <= 0.6) {
    gradient 105 
  }
  elseif (%lagtime <= 0.7) {
    gradient 110  
  }
  elseif (%lagtime <= 0.8) {
    gradient 115  
  }
  elseif (%lagtime <= 0.9) {
    gradient 120 
  }
  elseif (%lagtime <= 1) {
    gradient 125
  }
  elseif (%lagtime <= 1.1) {
    gradient 130 
  }
  elseif (%lagtime <= 1.2) {
    gradient 135 
  }
  elseif (%lagtime <= 1.3) {
    gradient 140 
  }
  elseif (%lagtime <= 1.4) {
    gradient 145 
  }
  elseif (%lagtime <= 1.5) {
    gradient 150 
  }
  elseif (%lagtime >= 1.5) {
    gradient 150 
  }
}
alias gradient {
  var %t = 1
  var %r = 25
  while (%t <= 10) {
    drawline -f @lagmeter $rgb($calc(255 - %r),0,0) 1 5 %t $calc(5 + $1) %t 
    inc %t 1
    inc %r 25
  }
}
alias box2 {
  /drawrect -f @lagmeter 12 1 4 4 %laglength 10
}
on ^*:PONG: {
  if (!$window(@lagmeter)) { halt }
  if ($2 == lagmeter) {
    set %lagtime $calc(($ticks - %ticks) / 1000)
    unset %ticks
    drawreplace @lagmeter 1 15
    drawtext @lagmeter 1 170 2 %lagtime
    box
    haltdef
  }
}
on *:CLOSE:@lagmeter: {
  .timerlagmeter off
  set %status On
}
dialog lagmeter {
  title "Oliver's LagMeter"
  size -1 -1 82 52
  option dbu
  box "Set Refresh Rate", 1, 3 2 77 48
  button "Set", 2, 23 35 37 12
  edit "", 3, 33 13 17 10
  text "(in seconds)", 4, 26 23 30 8
}
on *:dialog:lagmeter:init:*:{
  /did -ra lagmeter 3 %repeat
}
on *:dialog:lagmeter:sclick:2:{
  if (!$did($dname,3)) {
    halt
  }
  else {
    set %repeat $did($dname,3)
    /dialog -x lagmeter lagmeter
    if ($window(@lagmeter)) {
      .timerlagmeter off
      /update
      .timerlagmeter 0 %repeat /update
    }
  }
}
dialog help {
  title "LagMeter Help File"
  size -1 -1 208 191
  option dbu
  box "Help", 2, 4 3 201 166
  button "Close", 3, 85 174 37 12, ok cancel
  list 4, 10 14 189 149, size hsbar
}
on *:dialog:help:init:*:{
  did -a help 4 .:Moving The Window Around:.
  did -a help 4 $chr(160)
  did -a help 4 You can move the window around the screen with the arrow keys. Simply 
  did -a help 4 click on the meter and then move away!
  did -a help 4 $chr(160)
  did -a help 4 $chr(160)
  did -a help 4 $chr(160)
  did -a help 4 .:Setting The Refresh Rate:.
  did -a help 4 $chr(160)
  did -a help 4 You can change how long before it refreshes your ping by right clicking > 
  did -a help 4 Oliver's LagMeter > Set Refresh Rate. Then you enter the amount of 
  did -a help 4 seconds before it refreshes and click set. It will automatically reload the
  did -a help 4 LagMeter with the new time
  did -a help 4 $chr(160)
  did -a help 4 $chr(160)
  did -a help 4 $chr(160)
  did -a help 4 .:General Info:.
  did -a help 4 $chr(160)
  did -a help 4 The LagMeter outputs everything in seconds. However, it calculates 
  did -a help 4 everything in milliseconds.  Due to a computer $!tick not being exactly   
  did -a help 4 equal to a millisecond, there may be very slight inaccuracies. 
  did -a help 4 $chr(160)
  did -a help 4 $chr(160)
  did -a help 4 $chr(160)
  did -a help 4 .:Suggestions/Contact:.
  did -a help 4 $chr(160)
  did -a help 4 Any suggestions? Contact me on oliverwoodings@hotmail.com or on 
  did -a help 4 irc.swiftirc.net in #mirc. Enjoy the LagMeter!
} 
on *:APPACTIVE: {
  if (!$appactive) {
    if ($window(@lagmeter)) {
      window -c @lagmeter
      set %appactive on
    }
  }
  else {
    if (%appactive == on) {
      start
    }
  }
}
on *:KEYDOWN:@lagmeter:*: {
  if ($keyval == 40) { window -s @lagmeter $window(@lagmeter).x $calc($window(@lagmeter).y + 2) }
  elseif ($keyval == 39) { window -s @lagmeter $calc($window(@lagmeter).x + 2) $window(@lagmeter).y }
  elseif ($keyval == 38) { window -s @lagmeter $window(@lagmeter).x $calc($window(@lagmeter).y - 2) }
  elseif ($keyval == 37) { window -s @lagmeter $calc($window(@lagmeter).x - 2) $window(@lagmeter).y }
}