;######################################################## ;######################################################### ;### 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 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 }