All pastes #386948 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-03-09 00:10 UTC
rendered paste body
;########################################################
;#########################################################
;### Lagbar v2.0
;###  - Rob ( rob@argetech.com ) ; #blah @ irc.icq.com
;#######################################################
;######################################################
;# Aliases
alias lagbartemplate {
  if ($1 == 1) {
    %clr.bord = 7
    %clr.prim = 4
    %clr.seco = 5
    %clr.temp = 1
  }
  if ($1 == 2) {
    %clr.bord = 8
    %clr.prim = 9
    %clr.seco = 3
    %clr.temp = 2
  }
  if ($1 == 3) {
    %clr.bord = 1
    %clr.prim = 14
    %clr.seco = 15
    %clr.temp = 3
  }
  if ($1 == 4) {
    %clr.bord = 1
    %clr.prim = 13
    %clr.seco = 6
    %clr.temp = 4
  }
  if ($1 == 5) {
    %clr.bord = 1
    %clr.prim = 4
    %clr.seco = 7
    %clr.temp = 5
  }
  if ($1 == 6) {
    %clr.bord = 1
    %clr.prim = 12
    %clr.seco = 2
    %clr.temp = 6
  }
  if ($1 == 7) {
    %clr.bord = 1
    %clr.prim = 7
    %clr.seco = 14
    %clr.temp = 7
  }
}
alias lagbar { 
  if ($1 == set) {
    if ($2 == autostart) {
      if ($3 == on) { %lagbar.autostart = $true | echo -a lagbar.autostart = on }
      if ($3 == off) { %lagbar.autostart = $false | echo -a lagbar.autostart = off }
    }
    if ($2 == interval) { 
      if ($3 < 0) { return }
      if ($3 == %lagbar.interval) { echo -a lagbar.interval = %lagbar.interval | return }
      %lagbar.interval = $3 | echo -a lagbar.interval = %lagbar.interval 
    }
    return
  }
  if (%lagbar.x == $null) %lagbar.x = 50
  if (%lagbar.y == $null) %lagbar.y = 50
  %lagbar.lastpos = $lbpos
  if ((%lagbar.interval == $null) || (%lagbar.interval == 0)) { %lagbar.interval = 10 }
  if (%lagbar.exp == 1) {
    if (%lagbar.lock == 1) { window -fdokh +dL @lag: $lbpos 250 25 "courier new" 18 | goto skip }
    else { window -fdokh +dL @lag: %lagbar.x %lagbar.y 250 25 "courier new" 18 | goto skip }

  }
  window -hoadk0 @Lag: %lagbar.x %lagbar.y 270 50 "courier new" 18
  :skip
  %lagpending = %lagbar.interval | dec -z %lagpending
  if (%lagbar.exp != 1) { titlebar @lag: Startingg Up.. [[ $+ %lagpending $+ ]] }
  %pingtimestart = 20
  iline @lag: 1 1, $+ %clr.bord $+ (1, $+ %clr.prim $+ $str($barlines,%pingtimestart) $+ 1, $+ %clr.seco $+ $str($barlines,$calc(20- %pingtimestart)) $+ 1, $+ %clr.bord $+ )
  .timerpingtest 0 %lagbar.interval dopingtest
  .timerlagpend 0 1 lagpend
  .timerlagstartup %lagbar.interval 1 lagstartup
}
alias lagstartup {
  %lagdiv = $round($calc((%lagpending / %lagbar.interval) * 20),0)
  %pingtimestart = $calc(20 / %lagbar.interval)
  rline @lag: 1 1, $+ %clr.bord $+ (1, $+ %clr.prim $+ $str($barlines,%lagdiv) $+ 1, $+ %clr.seco $+ $str($barlines,$calc(20- %lagdiv)) $+ 1, $+ %clr.bord $+ )
}
alias dopingtest {
  .timerlagstartup off
  if (%lagpending == $null) { %lagpending = 0 }
  if (%lagpending == 0) { .ctcp $me LAGTEST $ctime | inc -c %lagpending }
}
alias lagpend { 
  ;  unset %t
  if ($line(@Lag:,0) > 1) { dline @lag: 2 }
  if (%lagpending >= 180) { echo -a *** Over 180 seconds lagged: You are either disconnected, or there is a lagbar malfunction (Your Script Blocks CTCPs) | set %lagpending 0 }
  if (($appactive != $true) && (%lagbar.autohide == 1)) { window -h @Lag: }
  if (($appactive == $true) && ($window(@Lag:).state == hidden)) { 
    %t = $active 
    window -fdokh +dL @Lag: | 
    if ($window(%t) == Status Window) { return }
    if ($window(%t) != $null) { window -a %t }
  }
  %lpc = $calc(7 + $len(%lagpending) + $len($timer(pingtest).secs))
  if ($len($timer(pingtest).secs) == 1) { inc %lpc }
  if (%lagbar.exp != 1) { titlebar @lag: $remove($window(@lag:).title,$right($window(@lag:).title,%lpc)) [[ $+ $timer(pingtest).secs $+ s] [[ $+ %lagpending $+ s]  } 
  if (%lagbar.exp == 1) { 
    if (%lagbar.lock == 1) { 
      if (%lagbar.lastpos != $lbpos) { window -fdokh +dL @lag: $lbpos 250 25 "courier new" 18 | set %lagbar.lastpos $lbpos }
    }
  }
}
alias dolagalert {
  %^ = $?!="You are over %lagbar.alertlvl secs lagged, reconnect?"
  if (%^ == $true) { server }
}
alias updatelagtest { 
  inc %lagbar.totalpings | inc %lagbar.totallag %pingtime
  if ((%lagbar.alert == 1) && (%pingtime < %lagbar.alertlvl)) { set %lagbar.shit 0 }
  if ((%lagbar.alert == 1) && (%pingtime > %lagbar.alertlvl)) { 
    if (%lagbar.shit == 0) {
      set %lagbar.shit 1
      .timer 1 1 dolagalert
    }
  }
  if (%lag.bigchange == 1) {
    if (%pingold == $null) return
    if ($abs($calc(%pingold - %pingtime)) > %lag.bigchangesetting) { 
      echo -s *** Alert: Dramatic Change In Lag: $calc((%pingold - %pingtime) * -1) seconds
      beep 3 80
    }
  }
  lsupdate %pingtime
  if (%pingtime > %lagbar.maxlag) { %lagbar.maxlag = %pingtime }
  if (%pingtime < %lagbar.minlag) { %lagbar.minlag = %pingtime }
  %pingtimeold = %pingtime
  if (%pingtime > 20) { %pingtime = 20  }
  if (%lagbar.x == $null) %lagbar.x = 50
  if (%lagbar.y == $null) %lagbar.y = 50
  if ((%lagbar.exp == 1) && ($window(@Lag:) == $null)) { window -fdokh +dL @lag: $lbpos 250 25 "courier new" 18 | goto skip2 }
  if ($window(@Lag:) == $null) { window -hoadk0 @Lag: %lagbar.x %lagbar.y 270 50 "courier new" 18 }
  :skip2
  if ($line(@Lag:,1) != $null) { rline @Lag: 1 1, $+ %clr.bord $+ (1, $+ %clr.prim $+ $str($barlines,%pingtime) $+ 1, $+ %clr.seco $+ $str($barlines,$calc(20- %pingtime)) $+ 1, $+ %clr.bord $+ ) }
  if ($line(@lag:,1) == $null) { iline @Lag: 1 1, $+ %clr.bord $+ (1, $+ %clr.prim $+ $str($barlines,%pingtime) $+ 1, $+ %clr.seco $+ $str($barlines,$calc(20- %pingtime)) $+ 1, $+ %clr.bord $+ ) }
  ;  if (%lagbar.exp != 1) { titlebar @Lag: %pingtime $+ s [[ $+ $lbrate(%pingtime) $+ ]] [[ $+ $timer(pingtest).secs $+ s] [[ $+ %lagpending $+ s] | goto end }
  if (%lagbar.exp != 1) { titlebar @Lag: %pingtime $+ s [[ $+ $timer(pingtest).secs $+ s] [[ $+ %lagpending $+ s] | goto end }

  :end
  set %pingold %pingtimeold
  unset %pingtime | unset %pingnick
}
alias lbrate {
  if ($1 < 2) { return Excellent }
  if ($1 < 4) { return Good }
  if ($1 < 6) { return Average }
  if ($1 < 10) { return Lagged }
  if ($1 < 20) { return Very Lagged }
  if ($1 >= 20) { return Horrible }
}
;# Events
on *:CTCPREPLY:LAGTEST*: { 
  if (!$window(@Lag:)) haltdef
  if ($nick != $me) { return }
  %pingtime = $calc($ctime - $2) 
  updatelagtest | %lagpending = 0 
  if ($window(@lagstats)) { clear @lagstats | laggraph }
  haltdef
}
ctcp *:LAGTEST:?:{ 
  if ($nick != $me) { return }
  .ctcpreply $nick LAGTEST $ctime
  halt
}
on *:CLOSE:*:{ 
  if ($target == @Lag:) { 
    %lagbar.x = $window(@Lag:).x
    %lagbar.y = $window(@Lag:).y
    .timerlagpend off | .timerpingtest off
  }
}
on *:EXIT:{ 
  if ($window(@Lag:) != $null) {
    %lagbar.x = $window(@Lag:).x
    %lagbar.y = $window(@Lag:).y
  }
}
on *:load:{
  %blvers = v2.0
  %lagbar.maxlag = 0
  %lagbar.minlag = 1337
  %lag.crosshair = 4
  %lagbar.exp = 1
  %lagbar.lock = 1
  %clr.temp = 7
  lagbartemplate 7
  .flood -c
  %6 = $?!="Lagbar %blvers - Configuration"
  %lagbar.autostart = $?!="Autostart On Connect?"
  %lagbar.interval = $?="Ping Interval (seconds)? [default: 10]"
  %7 = $?!="Do you want a popup alert message when lag is more than X? (You set X) - Can be annoying"
  if (%7 == $true) { 
    %lagbar.alert = 1
    %lagbar.alertlvl = $?="What amount of lag (in seconds) is required for an alert to show? (don't put to low)"
  }
  unset %6
  %6 = $?="Enter Character For Barlines(Leave Empty For None)"
  if (%6 == $null) { set %barline1 160 }
  if (%6 != $null) {
    %barline1 = $asc($left(%6,1))
  }
  %7 = $?!="Autohide Lagbar When mIRC is Minimized?"
  if (%7 == $true) { %lagbar.autohide = 1 }
  %6 = $?!="Need Instructions?"
  if (%6 == $true) {
    lagshowhelp
  }
  if ($server != $null) lagbar
}
alias lsupdate {
  if (%lagstat == $null) { %lagstat = 1 }
  if (%lagstat > 20) { %lagstat = 1 }
  hadd -m lagstats lag [ $+ [ %lagstat ] ] $$1
  inc %lagstat
}
alias lag.avg {
  %ii = 1 | %lgavg = 0
  while (%ii <= 20) {
    set %lgavg $calc(%lgavg + $hget(lagstats,lag [ $+ [ %ii ] ])) 
    inc %ii
  }
  return $calc(%lgavg / 20)
}
alias notenuff { %5 = $?!="Error: Please wait until >20 pings have been completed. ( There has been $hmatch(lagstats,*,0) )" }
alias laggraph {
  if ($hget(lagstats) == $null) { return } 
  if ($hmatch(lagstats,*,0) < 20) { .timer 1 1 notenuff | return }
  if (!$window(@lagstats)) window -pfdC @lagstats 10 10 1028 225
  %^ = 1 | %maxscale = 1
  drawfill @lagstats 1 1 5 5
  while (%^ <= 20) {
    %a = lag [ $+ [ %^ ] ]
    if ($calc($hget(lagstats,%a) + 1) > %maxscale) { %maxscale = $calc($hget(lagstats,%a) + 1) }
    inc %^ 
  }
  %^ = 1
  while (%^ <= %maxscale) {
    drawline @lagstats 14 1 25 $calc(210 - (200 / %maxscale) * %^) 2000 $calc(210 - (200 / %maxscale) * %^)
    drawtext @lagstats 0 arial 11 5 $calc(205 - (200 / %maxscale) * %^) %^ $+ s
    inc %^
  }
  drawline @lagstats 15 2 0 210 1500 210
  drawline @lagstats 15 2 25 210 25 -100
  %^ = 1
  while (%^ <= 20) { 
    %a = lag [ $+ [ %^ ] ]
    %a2 = lag [ $+ [ $calc(%^ - 1) ] ]
    if (%a2 == lag0) { 
      drawline @lagstats %clr.prim 2 $calc(50 * %^) $calc(211 - (200 / %maxscale) * ($hget(lagstats,%a))) 25 $calc(211 - (200 / %maxscale) * ($hget(lagstats,lag1))) ) 
    }
    if (%a2 != lag0) { 
      drawline @lagstats %clr.prim 2 $calc(50 * %^) $calc(211 - (200 / %maxscale) * ($hget(lagstats,%a))) $calc(50 * (%^ - 1)) $calc(211 - (200 / %maxscale) * ($hget(lagstats,%a2)))
    }
    if (%^ = $calc(%lagstat - 1)) {
      drawdot  @lagstats %clr.prim 8 $calc(50 * %^) $calc(211 - (200 / %maxscale) * ($hget(lagstats,%a))) ) 
      drawline @lagstats %lag.crosshair 1 $calc(50 * %^) 0 $calc(50 * %^) 500
      drawline @lagstats %lag.crosshair 1 25 $calc(211 - (200 / %maxscale) * ($lag.avg)) 2000 $calc(211 - (200 / %maxscale) * ($lag.avg))
      drawrect -c @lagstats 4 2 $calc((50 * %^) - 5) $calc((211 - (200 / %maxscale) * ($lag.avg)) - 5) 10 10 
      drawrect @lagstats 4 1 $calc((50 * %^) - 6) $calc((211 - (200 / %maxscale) * ($lag.avg)) - 6) 12 12 
      ;drawdot @lagstats %clr.seco 1 0 $calc(211 - (200 / %maxscale) * ($lag.avg)) 2000 $calc(211 - (200 / %maxscale) * ($lag.avg))
    }
    drawdot  @lagstats %clr.seco 6 $calc(50 * %^) $calc(211 - (200 / %maxscale) * ($hget(lagstats,%a))) ) 
    drawtext @lagstats 15 arial 11 $calc(50 * %^) 210 %^
    drawline @lagstats %clr.prim 2 $calc(50 * 20) $calc(211 - (200 / %maxscale) * ($hget(lagstats,lag20))) 2000 $calc(211 - (200 / %maxscale) * ($hget(lagstats,lag20)))
    inc %^
  }
  drawtext -b @lagstats fixedsys 14 30 5 Current Lag: %pingtimeold $+ s
  drawtext -b @lagstats fixedsys 14 30 25 Average Lag: $round($lag.avg,2) $+ s
}
on *:CONNECT:{ if (%lagbar.autostart == $true) { lagbar } | unset %lagstat | unset %lagbar.totalpings | unset %lagbar.totallag }
on *:DISCONNECT:{ close -@ @lag: | .timerlagpend off | .timerpingtest off | hfree lagstats }
alias lbpos {
  set %lagbar.x $calc($calc($window(-2).x + $window(-2).w) - 280)
  set %lagbar.y $calc($window(-2).y + 51) 
  return $calc($calc($window(-2).x + $window(-2).w) - 280) $calc($window(-2).y + 51) 

}
alias lagshowhelp {
  echo -a ---
  echo -a Lagbar %blvers $+ : Instructions
  if (%lagbar.autostart == $true) { echo -a - Lagbar will start each time you connect to a server. }
  echo -a - Type /lagbar to launch the lagbar, close it to stop it.
  echo -a - Settings: /lagbar set <autostart[on/off]/interval[1-99]> <setting>
  echo -a - - Example: /lagbar set interval 5 
  echo -a - - Example: /lagbar set autostart on
  echo -a - All settings can also be modified by clicking on the lagbar 
  echo -a - Colors are customizable; there are (bad) templates and you can make your own.
  echo -a - There are two different modes; The New Version, & The Old Version
  echo -a - - The new one is better, but you can try the old version too.
  echo -a - * To move the lagbar, click on it, and use your arrow keys to move.
  echo -a - - * HINT: To move the lagbar faster, use the "F" key to turn on fast mode, push again to turn off.
  echo -a - The lock to mIRC window is turned on by default, but may be positioned badly on your script. You have two options (Because I'm Lazy)
  echo -a - - 1. Search for "alias lbpos" in $script in your remote editor, and edit the coordinates by trial and error.
  echo -a - - 2. Live with it; A) Stop Complaining B) Don't use the lock to mIRC feature.
  echo -a - 1,4 Make Sure To Right Click On The Lagbar For Lots Of Options!
  echo -a ---
}
menu @Lag: {
  Lag $+ $chr(58) %pingtimeold $+ s
  ..-> Graph <- : laggraph
  ..max lag $+ $chr(58) %lagbar.maxlag $+ s :return
  ..avg lag $+ $chr(58) $round($lag.avg,2) $+ s :return
  ..min lag $+ $chr(58) %lagbar.minlag $+ s :return
  ..total pings $+ $chr(58) %lagbar.totalpings :return
  Design
  .STYLE 
  ..OLD Look:{ 
    close -@ @lag: | .timerlagpend off | .timerpingtest off
    %lagbar.exp = 0 | lagbar
  }
  ..NEW Slim + Locked:{
    close -@ @lag: | .timerlagpend off | .timerpingtest off
    %lagbar.exp = 1 | lagbar | %lagbar.lock = 1
  }
  .Colors
  ..Templates ( $+ %clr.temp $+ )
  ...1:lagbartemplate 1
  ...2:lagbartemplate 2
  ...3:lagbartemplate 3
  ...4:lagbartemplate 4
  ...5:lagbartemplate 5
  ...6:lagbartemplate 6
  ...7:lagbartemplate 7
  ..Custom
  ...border color: %clr.bord = $?="Pick a color (1-15)" | set %clr.temp custom
  ...primary color: %clr.prim = $?="Pick a color (1-15)"  | set %clr.temp custom
  ...secondary color: %clr.seco = $?="Pick a color (1-15)" | set %clr.temp custom
  .Bar Lines
  ..Set:{
    %^ = $?="Enter a One Character BarLine"
    %barline1 = $asc($left(%^,1))
  }
  ..None:{ set %barline1 160 }
  .Graph Crosshair
  ..Set:{
    %^ = $?="Enter A mIRC Color 1-15"
    %lag.crosshair = %^
  }
  ..Default:{ set %lag.crosshair 4 }
  ..None:{ set %lag.crosshair 1 }
  Settings
  .Autostart
  ..on: set %lagbar.autostart $true
  ..off: set %lagbar.autostart $false
  .Interval
  ..5s: set %lagbar.interval 5 | .timerpingtest 0 %lagbar.interval dopingtest
  ..10s: set %lagbar.interval 10 | .timerpingtest 0 %lagbar.interval dopingtest
  ..15s: set %lagbar.interval 15 | .timerpingtest 0 %lagbar.interval dopingtest
  ..20s: set %lagbar.interval 20 | .timerpingtest 0 %lagbar.interval dopingtest
  ..1m: set %lagbar.interval 60 | .timerpingtest 0 %lagbar.interval dopingtest
  ..5m: set %lagbar.interval 300 | .timerpingtest 0 %lagbar.interval dopingtest
  ..Custom: set %lagbar.interval $?="Enter Interval (Seconds)" | .timerpingtest 0 %lagbar.interval dopingtest
  .Extreme Lag Alert
  ..on: set %lagbar.alert 1
  ..off: set %lagbar.alert 0
  ..alert level: set %lagbar.alertlvl $?="When lag is more than X, show an alert"
  .Autohide 
  ..on: %lagbar.autohide = 1
  ..off: %lagbar.autohide = 0
  .Big Change Notification ( $+ %lag.bigchangesetting $+ ) 
  ..on:{
    set %lag.bigchange 1 
    if (%lag.bigchangesetting == $null) set %lag.bigchangesetting 10 
  }
  ..off: set %lag.bigchange 0
  ..Set Change In Lag For Notification: set %lag.bigchangesetting $?="When your lag changed by X seconds, you will be notified"  
  Stop:{ close -@ @lag: | .timerlagpend off | .timerpingtest off }
  About:{
    %PeekABoo,NosyBeetch! = $?!="Lagbar %blvers made by Rob; #blah @ irc.icq.com. Go there?"
    if (%PeekABoo,NosyBeetch! == $true) { if ($network == IrCQNet) { join #blah | .timer 1 5 .msg #blah ( Using Lagbar %blvers $+ ) } }
  }
}
menu channel,query,menu {
  Lagbar $+ ( $+ $+(%pingtimeold,s) $+ ) : 
  ..-> Start <-:lagbar
  ..Show Lag ( $+ $active $+ ): SAY  $+ %clr.prim $+ , $+ %clr.seco Current Lag: $+(%pingtimeold,s) - Average Lag: $+($lag.avg,s) 
  ..Show Lag ( $+ All $chan(0) Channels $+ ): amsg  $+ %clr.prim $+ , $+ %clr.seco Current Lag: $+(%pingtimeold,s) - Average Lag: $+($lag.avg,s) 

}
alias barlines { return $chr( %barline1 ) }
;;
alias -l lagmove {
  set %lagbar.lock 0
  if ((%lagbar.exp == 1) && ($active == @lag:)) { window -fdaokh +dL @lag: $1 $2 250 25 "courier new" 18 }
  else { window -hoadk0 @Lag: $1 $2 270 50 "courier new" 18 }
}
on *:KEYDOWN:@Lag?:*:{ 
  if ($keychar == F) { 
    if (%lagfm == 1) { set %lagfm 0 }
    else { set %lagfm 1 }
  }
  if ($keyval == 40) { set %lagbar.y $calc(%lagbar.y + $lagd) | lagmove %lagbar.x %lagbar.y }
  if ($keyval == 37) { set %lagbar.x $calc(%lagbar.x - $lagd) | lagmove %lagbar.x %lagbar.y }
  if ($keyval == 38) { set %lagbar.y $calc(%lagbar.y - $lagd) | lagmove %lagbar.x %lagbar.y }
  if ($keyval == 39) { set %lagbar.x $calc(%lagbar.x + $lagd) | lagmove %lagbar.x %lagbar.y }
}
alias lagd {
  if (%lagfm == 1) { return 10 }
  else return 1
}