All pastes #149104 Raw Edit

Unnamed

public text v1 · immutable
#149104 ·published 2006-08-25 15:54 UTC
rendered paste body
#l2.stats.check on
alias l2chk.chktime {
  if (%l2.check.time) && (!$1) { return %l2.check.time }
  return 300
}
alias l2chk.timeout {
  return 5
}
alias l2.chk {
  ;Format:
  ;order_id - order from lower (cannot use duplicate digits or skip any digits)
  ;Correct: 1 2 3 4 5 6
  ;Incorect: 2 4 5 6 7 8
  ;IP - Server IP
  ;Port - Server port
  ;Name - Name, that will be displayed
  ;l2.chk.returnlist order_id IP Port Name
  ;
  ;  l2.chk.opensock 1 127.0.0.1 80 Web Server
  ;  l2.chk.opensock 2 192.168.0.2 80 Other PC

  l2.chk.opensock 1  193.219.74.107  2106  Login Serv
  l2.chk.opensock 2  193.219.74.105  8686  Eternal Serv
  l2.chk.opensock 3  193.219.74.107  2106  Reborn Serv
  l2.chk.opensock 4  bfdr.eu         80    Web Serv
}

alias l2.chk.opensock {
  sockclose l2.statcheck. $+ $1
  sockopen l2.statcheck. $+ $1 $2 $3
  sockmark l2.statcheck. $+ $1 $1 $+ _ $+ $ticks
  .timerl2chk.timeout. $+ $1 1 $l2chk.timeout set % $+ l2chk. $+ $1 0 $chr(124) sockclose l2.statcheck. $+ $1
  set %l2chk.name. [ $+ [ $1 ] ] $4-
}
on *:sockopen:l2.statcheck.*: {
  if ($sockerr) { 
    .timerl2chk.timeout. $+ $gettok($sock($sockname).mark,1,95) off
    set %l2chk. [ $+ [ $gettok($sock($sockname).mark,1,95) ] ] 0
    halt
  }
  else {
    .timerl2chk.timeout. $+ $gettok($sock($sockname).mark,1,95) off
    set %l2chk. [ $+ [ $gettok($sock($sockname).mark,1,95) ] ] 1
    set %l2chk.png. [ $+ [ $gettok($sock($sockname).mark,1,95) ] ] $calc($calc($ticks - $gettok($sock($sockname).mark,2,95)) / 1000) $+ s
  }
  sockclose $sockname
}
alias l2chk.status {
  if (!%l2chk.name. [ $+ [ $1 ] ]) { return }
  if (%l2chk. [ $+ [ $1 ] ] == 1) { return %l2chk.name. [ $+ [ $1 ] ] - ON - %l2chk.png. [ $+ [ $1 ] ] $+ :return }
  elseif ($sock(l2.statcheck. $+ $1)) { return %l2chk.name. [ $+ [ $1 ] ] - Refreshing:return }
  else { return %l2chk.name. [ $+ [ $1 ] ] - OFF:return }
}
alias l2.chk.all {
  .unset -s %l2chk.*
  l2.chk
  if ($1 = -r) {
    .timerl2statschk 0 $l2chk.chktime(1) l2.chk.all
  }
}
on *:appactive: {
  if ($appactive) { 
    if (!$timer(l2statschk)) {
      ;if (!$sock(l2.statcheck.*,0)) { l2.chk.all }
      .timerl2statschk 1 $l2chk.chktime l2.chk.all -r
    }
  }
  else {
    if ($timer(l2statschk)) {
      set %l2.check.time $timer(l2statschk).secs
      .timerl2statschk off
    }
  }
}
on *:load: {
  echo -a BFD Server status by Vycka_xxx loaded!
  l2.chk.all -r 
  .timerl2statschk 0 $l2chk.chktime l2.chk.all

}
on *:start: {
  l2.chk.all -r
  .timerl2statschk 0 $l2chk.chktime l2.chk.all
}
on *:unload: {
  echo -a Disabling timers...
  timerl2statschk off
  echo -a Done
  echo -a Unseting Variables...
  unset -s %l2chk*
  echo -a Done
  echo -a BFD Server status by Vycka_xxx unloaded!
}
menu status,channel,query,menubar {
  BFD Status
  .-=BFD Status=-:return
  .-  
  .$submenu($l2chk.status($1))
  .-
  .$iif($sock(l2.statcheck.*,0) > 0,$style(2) Refreshing,Refresh):l2.chk.all -r
  .Until refresh  $+ $chr(58) $iif($timer(l2statschk).secs == $null,N/A,$v1) $+ s :return
  .-
  ;.$iif($sock(l2.statcheck.*,0) > 0,$style(2),) Say status:say Login Serv: $l2chk.status(login) .:. Game Serv: $l2chk.status(game) .:. PTS Serv: $l2chk.status(pts) .:. HTTP Serv: $l2chk.status(stats)
  .$iif($sock(l2.statcheck.*,0) > 0,$style(2),) Say status:say Login Serv: $l2chk.status(login) .:. Game Serv: $l2chk.status(game) .:. HTTP Serv: $l2chk.status(stats)
}
#l2.stats.check end