rendered paste body;########################################################
;#########################################################
;### Lagbar v2.0
;### - Dyno Leslie-Heron@hotmail.com ON server: irc.thekewl.net
;#######################################################
;######################################################
;# 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
}