Code: Select all
menu channel {
.start monitor : servermonitor $$?="Enter a server ip:" $$?="Enter the server port: (default 27910)" $$?="Enter name of Team 1: (one word)" $$?="Enter name of Team 2: (one word)"
.stop monitor : servermonitor off
.set channel : relaychan $$?="Enter channel where the Server Monitor has to give the scores:"
.set autorelay on/off : autorelaytoggle
.set trigger : monitortrigger $$?="Enter the trigger:"
}
alias monitortrigger {
if $1 == $null {
break
}
set %monitortrigger $1
}
alias relaychan {
if %relaychan == $null {
break
}
set %relaychan $1
echo Set the Autorelay channel to: $1
}
alias autorelaytoggle {
set %autorelay
if %autorelay == 1 {
set %autorelay 0
echo Turned Autorelay Off
break
}
set %autorelay 1
echo Turned Autorelay On
}
on *:udpread:AQ2Server: {
var %temp
var %aq2token
set %scorerequest 0
sockread %temp
if $left(%temp, 1) == \ {
;finding the mapname
%aq2token = $findtok(%temp,mapname,1,92)
inc %aq2token
%map = $gettok(%temp,%aq2token,92)
;finding the hostname
%aq2token = $findtok(%temp,hostname,1,92)
inc %aq2token
%svhost = $gettok(%temp,%aq2token,92)
; team 1 score
%aq2token = $findtok(%temp,t1,1,92)
inc %aq2token
%score1 = $gettok(%temp,%aq2token,92)
; team 2 score
%aq2token = $findtok(%temp,t2,1,92)
inc %aq2token
%score2 = $gettok(%temp,%aq2token,92)
; team 3 score
%aq2token = $findtok(%temp,t3,1,92)
inc %aq2token
%score3 = $gettok(%temp,%aq2token,92)
set %mapname %map
set %hostname %svhost
set %team1score %score1
set %team2score %score2
set %team3score %score3
}
}
on 1:text:!showscores:*: {
if %servermonitor == 1 {
if %scorerequest == 0 {
timerscorerequest 1 30 set %scorerequest 0
set %scorerequest 1
serverstatus
}
}
}
alias aq2socktimeout {
timertimeout off
sockclose AQ2Server
}
alias servermonitor {
if $1 == $null {
echo Usage: servermonitor [ip] [port] [team1name] [team2name] [team3name]
break
}
elseif $1 == off {
echo Shutting Server Monitor Down
.timerservermonitor off
set %servermonitor 0
unset %serverip
unset %serverport
unset %mapname
unset %hostname
unset %team1score
unset %team2score
unset %team3score
unset %team1name
unset %team2name
unset %team3name
unset %3teams
unset %prevmap
unset %prevt1s
unset %prevt2s
unset %prevt3s
}
else {
set %servermonitor 1
set %serverip $1
if $2 != $NULL {
set %serverport $2
}
else {
set %serverport 27910
}
if $3 != $NULL {
set %team1name $3
}
else {
set %team1name Team 1
}
if $4 != $NULL {
set %team2name $4
}
else {
set %team2name Team 2
}
if $5 != $NULL {
set %team3name $3
set %3teams 1
}
else {
set %team3name Team 3
set %3teams 0
}
echo Activating Server Monitor for server: %serverip $+ : $+ %serverport
checkaq2server
.timerservermonitor 0 5 checkaq2server
}
}
alias checkaq2server {
set %scorechanged 0
sockudp -k AQ2Server %serverip %serverport ÿÿÿÿ $+ status
.timertimeout 1 1 aq2socktimeout
if %prevmap == %mapname {
if %team1score != %prevt1s {
set %prevt1s %team1score
set %scorechanged 1
}
if %team2score != %prevt2s {
set %prevt2s %team2score
set %scorechanged 1
}
}
else {
set %prevmap %mapname
set %prevt1s %team1score
set %prevt2s %team2score
set %scorechanged 1
}
if %autorelay == 1 {
autorelayresults %relaychan
}
}
alias serverstatus {
if %servermonitor == 1 {
if %3teams != 1 {
msg $chan Score between %team1name and %team2name is %team1score - %team2score at %mapname
}
else {
say On server %hostname ( $+ %serverip $+ : $+ %serverport $+ ), the score for the match %team1name vs %team2name vs %team3name is %team1score - %team2score - %team3score on %mapname
}
}
}
alias autorelayresults {
if %relaychan == $null {
break
}
if %scorechanged == 1 {
msg %relaychan Score between %team1name and %team2name is %team1score - %team2score at %mapname
set %scorechanged 0
}
}
!server ip:port
!team1 name
!team2 name
!start/!stop
this scripts idea is to tell a live score from q2 server to irc
if someone could help me i will be very happy =)... and keep up the good work guys