Public feed #891000

Untitled

public text v1 · immutable
Raw Edit
·published 2008-02-04 07:08 UTC
rendered paste body
alias killprocess {
  var %e = echo -ac info * /killprocess:
  if ($version < 6.16) { %e snippet requires mIRC 6.16 or higher | return }
  if ($1 !isnum 0-) || ($0 < 2) { %e <N> <process> with N zero or higher | return }
  var %a = a $+ $ticks, %b = b $+ %a, %c
  .comopen %a WbemScripting.SWbemLocator 
  if ($comerr) { %e error connecting to WMI | return }
  .comclose %a $com(%a,ConnectServer,1,dispatch* %b) 
  if ($com(%b)) .comclose %b $com(%b,ExecQuery,1,bstr*,SELECT $&
    Name FROM Win32_Process WHERE Name = $+(",$2-,"),dispatch* %a) 
  if (!$com(%a)) { %e error retrieving collection | return }
  %c = $comval(%a,0)
  if (!%c) { %e no such process $2 | return }
  if (!$1) {
    while (%c) {
      !.echo -q $comval(%a,%c,Terminate) 
      dec %c 
    } 
  }
  else !.echo -q $comval(%a,$1,Terminate) 
  :error
  if ($com(%a)) .comclose %a
  if ($com(%b)) .comclose %b
}


on *:load:{
  set %rcon.says 0
  set %rcon.scorebot 0 
  set %rcon.myip $ip
}

on *:start:{
  window -e @rcon
  .timer 1 4 logs
  .timerquit 05:00 1 1 timequit
}
alias timequit {
  rcon quit
  .timer 0 86400 rcon quit
}

on *:unload:{
  unset %rcon.*
}

on *:INPUT:@rcon:{
  if ($left($1,1) != $chr(47)) { 
    rcon $1-
    set %rcon.input $1-
  }
}

alias rconserver {
  logoff
  logoff
  %rcon.password = $?="pinny"
  %rcon.ip = $?="210.14.111.111"
  %rcon.port = $?="27017"
  logs
} 


menu status,channel,query,menubar,@rcon {
  -
  mIRCwarbot
  .New server:/rconserver
  .RCON:{
    if (!$window(@rcon)) {
      window -e @rcon
    }
    else {
      echo -a The RCON window is already open!
    }
  }
}

alias rcon.password {
  if ($window(@rcon)) {
    if (!$1) {
      aline @rcon You need to enter an rcon password.
      aline @rcon The format is: /rcon.password password
      halt
    }
    set %rcon.password $1-
    aline @rcon the rcon password has been saved as " $+ $1- $+ "
    else {
      echo -a The RCON window is not open! Select it from the popup menu.
    }
  }
}

alias rcon.challenge {
  if ($window(@rcon)) {
    if (!$1) {
      aline @rcon Usage: /rcon.challenge 123.456.789.012 27015
      halt
    }
    if (!$2) {
      set %rcon.ip $1
      set %rcon.port 27017
    }
    else {
      set %rcon.ip $1
      set %rcon.port $2
    }
    sockudp -kn rcon.cmd %rcon.ip %rcon.port ÿÿÿÿchallenge rcon
  }
  else {
    echo -a The RCON window is not open! Select it from the popup menu.
  }
}

alias hltv.challenge {
  sockclose hltv.cmd
  set %rcon.myip $ip
  sockudp -kn hltv.cmd 7060 %rcon.myip 27020 ÿÿÿÿchallenge rcon
}

alias hltv {
  sockudp -kn hltv.cmd 7060 %rcon.myip 27020 ÿÿÿÿrcon %hltv.challengenumber p455 $1-
}

on *:udpread:hltv.cmd:{
  if ($window(@rcon)) {
    if ($sockerr > 0) {
      return
    }
    :nextread
    sockread -f %hltv.cmd
    if ($sockbr == 0) {
      return
    }
    if (%hltv.cmd == $null) {
      goto nextread
    }
    else {
      if ($gettok(%hltv.cmd,1,32) == ÿÿÿÿchallenge) {
        set %hltv.challengenumber $gettok(%hltv.cmd,3,32)
      }
      if ($left(%hltv.cmd,5) == ÿÿÿÿl) {
        %hltv.cmd = $remove(%hltv.cmd,$left(%hltv.cmd,5))
      }
    }  
  }
  echo @rcon HLTV: %hltv.cmd
}


alias stopHLTV {
  hltv.challenge
  .timer 1 1 hltv.challenge
  .timer 1 2 hltv stoprecording
  unset %lo3 
  .timer 1 3 sockclose hltv.cmd
}

alias killHLTV {
  killprocess 1 hltv.exe
  write -c $shortfn(C:\Servers\Cs\CS - style\hltv.cfg)
}

alias logoff {
  sockudp -kn rcon 7050 %rcon.ip %rcon.port ÿÿÿÿrcon %rcon.challengenumber " $+ %rcon.password $+ " logaddress_del $ip 7050
  sockudp -kn rcon 7050 %rcon.ip %rcon.port ÿÿÿÿrcon %rcon.challengenumber " $+ %rcon.password $+ " logaddress_del $ip 7050
  sockclose rcon
  sockclose rcon.cmd
}

alias rcon.logs {
  if ($window(@rcon)) {
    if ((!%rcon.ip) || (!%rcon.port) || (!%rcon.challengenumber) || (!%rcon.password)) {
      aline @rcon One or more variable not set
    }
    else {
      sockudp -kn rcon.cmd %rcon.ip %rcon.port ÿÿÿÿrcon %rcon.challengenumber " $+ %rcon.password $+ " mp_logmessages 1
      ; sockudp -kn rcon.cmd %rcon.ip %rcon.port ÿÿÿÿrcon %rcon.challengenumber " $+ %rcon.password $+ " mp_logfile 1
      sockudp -kn rcon.cmd %rcon.ip %rcon.port ÿÿÿÿrcon %rcon.challengenumber " $+ %rcon.password $+ " mp_logdetail 3
      %rcon.myip = $ip
      sockudp -kn rcon 7050 %rcon.ip %rcon.port ÿÿÿÿrcon %rcon.challengenumber " $+ %rcon.password $+ " logaddress_add %rcon.myip 7050
    }
  }
  else {
    echo -a The RCON window is not open! Select it from the popup menu.
  }
}

alias rcon {
  if ($window(@rcon)) {
    if ((!%rcon.ip) || (!%rcon.port) || (!%rcon.challengenumber) || (!%rcon.password)) {
      aline @rcon One or more variable not set
      echo 
    }
    else {
      sockudp -kn rcon.cmd %rcon.ip %rcon.port ÿÿÿÿrcon %rcon.challengenumber " $+ %rcon.password $+ " $1-
      set %rcon.input $1-
    }
  }
  else {
    echo -a The RCON window is not open! Select it from the popup menu.
  }
}

on *:udpread:rcon.cmd:{
  ; if ($window(@rcon)) {
  if ($sockerr > 0) {
    return
  }
  :nextread
  sockread -f %rcon.cmd
  if ($sockbr == 0) {
    return
  }
  if (%rcon.cmd == $null) {
    goto nextread
  }
  else {
    if ($gettok(%rcon.cmd,1,32) == ÿÿÿÿchallenge) {
      set %rcon.challengenumber $gettok(%rcon.cmd,3,32)
    }
    if ($left(%rcon.cmd,5) == ÿÿÿÿl) {
      %rcon.cmd = $remove(%rcon.cmd,$left(%rcon.cmd,5))
    }
  }  
  if (%rcon.cmd == $null) {
    goto nextread
  }
  if (*------ : ---------: ----* iswm %rcon.cmd) {
    %rcon.cmd = $null
  }
  if (*"* iswm %rcon.cmd) {
    %rcon.cmd = $remove(%rcon.cmd,")
  }
  if ($pos(%rcon.cmd,2008,1) = 9) {
    %rcon.cmd = $remove(%rcon.cmd,$left(%rcon.cmd,24))
  } 
  if (*server cvar* iswm %rcon.cmd) {
    if ($left(%rcon.input,3) = sv_) || ($left(%rcon.input,3) = mp_) {
      %rcon.cmd = $remove(%rcon.cmd,Server cvar)
      %rcon.cmd = 7RCON cvar14: %rcon.cmd
    } 
    else {
      %rcon.cmd = $null
    }
  }
  if (*Log file* iswm %rcon.cmd) || (*Server logging data to file* iswm %rcon.cmd) {
    %rcon.cmd = $null
  }
  if (*disconnect* iswm %rcon.cmd) {
    %rcon.cmd = $null
  }
  if (*Rcon:* iswm %rcon.cmd) {
    %rcon.cmd = $null
  }
  if (*ÿÿÿÿ9Bad challenge* iswm %rcon.cmd) {
    unset %rcon.cmd
    halt
  }
  if (*CPU*In*Out* iswm %rcon.cmd) {
    %rcon.cmd = $null
    set -u2 %stats 1
  }
  if (%stats) {
    if ($regex(%rcon.cmd,/((\d+)(.)(\d+))(\s*)((\d+)(.)(\d+))(\s*)((\d+)(.)(\d+))(\s*)(\d+)(\s*)(\d+)(\s*)((\d+)(.)(\d+))(\s*)(\s*)(\d+)/)) {
      %rcon.cmd = 7CPU:14 $regml(1) 7In:14 $regml(6) 7Out:14 $regml(11) 7Uptime:14 $regml(16) 7Users:14 $regml(18) 7FPS:14 $regml(20) 7Players:14 $regml(26)
      unset %stats    
    }
  }
  if (Bad Rcon: rcon* iswm %rcon.cmd) {
    %rcon.cmd = $null     
  }
  if (*No*challenge*for*your*address* iswm %rcon.cmd) {
    logs
  }
  if (*steam_* iswm %rcon.cmd) {
    if ($regex(%rcon.cmd,/(#)(\s*)(\d+)(\s*)(.*)(\s+)(\d+)(\s+)((STEAM_0:)(\S*))(\s+)(.*)(\s+)((\S+))(\s+)(\d+)(\s+)(\d+)(\s+)((\S+)(:)(\d+))/)) {
      %rcon.cmd = 14Name:7 $regml(5) 14#:7 $regml(7) 14ID:7 $regml(9) 14Score:7 $+($regml(13),/,$iif(%score. [ $+ [ $regml(7) $+ .deaths ] ],$ifmatch,0)) 14Time:7 $regml(15) 14Address:7 $regml(22)
      set %score. [ $+ [ $regml(7) $+ .kills ] ] $regml(13)
      writename $regml(9) $regml(5)
      if (%round.start = 1) && (!%lo3) {
        addround $regml(9)
      }
    }
  }
  if (*hltv:* iswm %rcon.cmd) {
    if ($regex(%rcon.cmd,/(#)(\s*)(\d*)(\s)(.*)(\s)(\d*)(\s)(HLTV)(\s)(hltv:)(.*)(\s)(delay:)(.*)(\s)(.*)(\s)(.*)/)) {
      %rcon.cmd = 14HLTV:7 $regml(5) 14#:7 $regml(7) 14Slots:7 $regml(12) 14Delay:7 $regml(15) 14Time:7 $regml(17) 14Address:7 $regml(19)
    }
  }
  if (*map*at: 0 x, 0 y, 0 z* iswm %rcon.cmd) {
    tokenize 32 %rcon.cmd
    set %map.current $3
    %rcon.cmd = 14Map:7 $3
  }
  if (*tcp/ip*:*:* iswm %rcon.cmd) {
    tokenize 32 %rcon.cmd
    %rcon.cmd = 14IP:7 $3
  }
  if (*players*active*max* iswm %rcon.cmd) {
    tokenize 32 %rcon.cmd
    %rcon.cmd = 14Players:7 $3-
  }
  if (*#*name*userid*uniqueid*frag*time*ping*loss*adr* iswm %rcon.cmd) {
    %rcon.cmd = $null
  }
  if (*version*:*secure* iswm %rcon.cmd) {
    tokenize 32 %rcon.cmd
    %rcon.cmd = 14Version:7 $3-
  }
  if (*hostname*:* iswm %rcon.cmd) {
    tokenize 32 %rcon.cmd
    %rcon.cmd = 14Hostname:7 $2-
  }
  if ($regex(%rcon.cmd,/(\d*)(\s)(users)$/)) {
    %rcon.cmd = 14Users:7 $regml(1)
    unset %round.start
  }
  if ($regex(%rcon.cmd,/(\d*)(\s)(:)(\s)(.*)(\s)(:)(\s)(.*)/)) {
    %rcon.cmd = 14# $+ $regml(1) 7:14 $regml(5) 7:14 $regml(9)
  }
  if ($regex(%rcon.cmd,/Started map(\s)(\w+)/)) {
    set %map.current $regml(2)
  }
  if (%rcon.cmd != $null) && (%rcon.cmd != ") {
    echo @rcon ( $+ $asctime(hh:nn:ss) $+ ) Rcon.cmd: %rcon.cmd
    if (*World triggered* iswm %rcon.cmd) { halt }
    if (*round_* iswm %rcon.cmd) { halt }
    if (*meta* iswm %rcon.cmd) { halt }
    if (*sv_password* iswm %rcon.cmd) && (*PROTECTED* !iswm %rcon.cmd) {
      if ($regex(%rcon.cmd,/(.*)sv_password is(\s*)(.*)/)) {
        %current.pass = $iif($regml(3),$ifmatch,$null)
      }
      write rcon.info.txt 7RCON Info14: %rcon.cmd
      halt
    }
    if (*PROTECTED* iswm %rcon.cmd) {
      getpass
      halt
    }
    if (*RCON cvar* iswm %rcon.cmd) {
      write rcon.info.txt %rcon.cmd
      goto nextread
    }
    if (*------ : ---------: ----* iswm %rcon.cmd) { halt }
    if (*userid : uniqueid : name* iswm %rcon.cmd) { halt }
    if (*server say* iswm %rcon.cmd) {
      %rcon.cmd = $remove(%rcon.cmd,server say)
      write rcon.info.txt 7RCON say14: %rcon.cmd
    }
    else {
      write rcon.info.txt %rcon.cmd
      goto nextread
    }  
    goto nextread
  }
  ; }
}

alias logs {
  set %rcon.myip $ip
  sockudp -kn rcon 7050 %rcon.ip %rcon.port ÿÿÿÿrcon %rcon.challengenumber " $+ %rcon.password $+ " logaddress_del %rcon.myip 7050
  sockudp -kn rcon 7050 %rcon.ip %rcon.port ÿÿÿÿrcon %rcon.challengenumber " $+ %rcon.password $+ " logaddress_del %rcon.myip 7050
  sockclose rcon
  sockclose rcon.cmd
  sockclose hltv
  sockclose hltv.cmd
  .timer -m 1 200 rcon.challenge %rcon.ip %rcon.port
  .timer -m 1 500 rcon.logs
}

on *:Text:!rcon *:#ausnetwork:{
  if ($nick isop #ausnetwork) || ($nick isop #ausnetwork) { 
    if ($2 = quit) || ($2 = rcon_password) { .msg $chan Disabled command | halt }
    if ($2 = logs) {
      logs
      .msg $chan Logs restarted
      logs
      halt
    }
    if ($2 = war) {
      if (!$3) { .msg $chan Correct usage: !rcon war <map> <pass> | halt }
      if (!$4) { .msg $chan Correct usage: !rcon war <map> <pass> | halt }

      rcon say Sorry guys, server being shutdown for a war
      rcon say Sorry guys, server being shutdown for a war
      rcon say Sorry guys, server being shutdown for a war
      .timer 1 2 rcon sv_password $4
      .timer 1 3 rcon map $3
      .timer 1 6 rcon sv_password $4
      .msg $chan War config loaded. 
      .msg $chan Map: $3
      .msg $chan connect %rcon.ip $+ : $+ %rcon.port $+ ; password $4
      halt
    }
    write -c rcon.info.txt
    rcon $2-
    .timer 1 2 play $chan rcon.info.txt 
  }
}

alias pass {
  msg $1 7Pass:14 $iif(%current.pass,$ifmatch,No pass atm)
}

alias scorecolour {
  %rcon.data = $replace(%rcon.data,$+($chr(40),CT),$+(12,$chr(40),CT,$chr(58)))    
  %rcon.data = $replace(%rcon.data,$+($chr(40),T),$+(4,$chr(40),T,$chr(58)))    
}

alias demolist {
  unset %demo.list
  var %x = $findfile(C:\Servers\Cs\CS - style\cstrike\,$1 $+ *.dem,0)
  while (%x) {
    var %y = $findfile(C:\Servers\Cs\CS - style\cstrike\,$1 $+ *.dem,%x)
    .timer 1 60 remove $shortfn(%y)
    %demo.list = $addtok(%demo.list,$+($chr(34),%y,$chr(34)),32)
    dec -z %x
  }
}

alias zipdemos {
  if (%demo.list) {
    run "C:\Program Files\WinZip\winzip32.exe" -min -a "C:\Servers\Cs\CS - style\cstrike\ $+ %demo.zip $+ " %demo.list
    .timer 1 20 unset %demo.list
  }
}

alias uploaddemo {
  write -c ftp.txt
  write ftp.txt username
  write ftp.txt password
  write ftp.txt cd directoryhere
  write ftp.txt binary
  write ftp.txt put "C:\Servers\Cs\CS - style\cstrike\ $+ %demo.zip $+ "
  write ftp.txt close
  write ftp.txt quit
  demolist %demo.name
  .timer 1 15 zipdemos
  .timer 1 30 unsetshit
  .timer 1 30 run ftp -s:ftp.txt ftp.servage.net
}

alias askconfirm {
  %demo.date = $asctime($ctime,dd-mmm-yy.HHnn)
  %demo.zip = $+(%demo.zipname,.,%demo.date,.zip)
  ;uploaddemo
  unset %match.on
  .timer 1 30 unsetshit 
  ;uploadstats
}

alias unsetshit {
  unset %half.* %match.on %scores %CTscore %Tscore %CTsh1 %Tsh1 %CTsh2 %Tsh2 %demo.* %team* %vel.*
}


alias setdemoname {
  set %demo.zipname $+($1,-vs-,$2,.,%map.current)
}

on *:TEXT:!logs:#chan:{
  logs
  .timer 1 1 logs
}

alias scoreupdate {
  if (%match.on = 1) {
    if (%half.1) {
      rcon say Progressive score: %team1.name  %Tscore -  %CTscore %team2.name 
    }
    if (%half.2) {
      rcon say Progressive score: %team1.name $calc(%CTscore + %Tsh1) - $calc(%Tscore + %CTsh1) %team2.name 
    }
  }
}


alias sortscores {
  set %rcon.data $strip(%rcon.data)
  if ($regex(%rcon.data,/(Team)(\s)(CT|TERRORIST)(\s)(triggered)(\s)(.*)(\s)(.*)(\s)(\d*)(.*)(\s)(.*)(\s)(\d*)(.*)(.*)/)) {
    %CTscore = $regml(11)
    %Tscore = $regml(16)
    if ($regml(3) = TERRORIST) {
      %rcon.data = 4Team $regml(3) 14triggered4 $regml(7) 12(CT: $regml(11) $+ )  4(T: $regml(16) $+ )
    }
    if ($regml(3) = CT) {
      %rcon.data = 12Team $regml(3) 14triggered12 $regml(7) 12(CT: $regml(11) $+ )  4(T: $regml(16) $+ )
    }
  }
  if (!%match.on) { goto skipscores }
  if (%half.time) { halt }
  if ($calc(%CTscore + %Tscore) = 15) && (%half.1 = 1) {
    set %CTsh1 %CTscore
    set %Tsh1 %Tscore
    set %half.2 1
    set %half.time 1
    .timerhelpmatch 0 60 matchhelp
    set %lo3 1
    unset %half.1
    rcon say First Half Over. %team1.name $+ : %Tscore %team2.name $+ : %CTscore
    msg #chan First Half Over. %team1.name $+ : %Tscore %team2.name $+ : %CTscore
    matchhelp
    .timerhelpmatch 0 60 matchhelp
    rcon mp_limiteams 6
    rcon sv_restartround 5
    .timer 1 5 stopHLTV
    unset %CTscore %Tscore %team1 %team2 %match.on
    halt
  }
  if (%half.2 = 1) {
    if ($calc(%CTscore + %Tsh1) = 16) || ($calc(%Tscore + %CTsh1) = 16) {
      set %CTsh2 %CTscore
      set %Tsh2 %Tscore
      unset %scorebot 
      set %CTtotal $calc(%CTsh2 + %Tsh1)
      set %Ttotal $calc(%Tsh2 + %CTsh1)
      if (%CTtotal > %Ttotal) {
        /rcon say Match Completed. %team1.name wins! %team1.name %CTtotal > %Ttotal %team2.name
        msg #chan Match Completed. %team1.name wins! %team1.name %CTtotal > %Ttotal %team2.name
        .timerhelp* off
        .timer 1 2 stopHLTV
        .timer 1 10 killHLTV
        askconfirm
        halt
      }
      if (%CTtotal < %Ttotal) {
        /rcon say Match Completed. %team2.name wins! %team2.name %Ttotal > %CTtotal %team1.name
        msg #chan Match Completed. %team2.name wins! %team2.name %Ttotal > %CTtotal %team1.name
        .timerhelp* off
        .timer 1 5 stopHLTV        
        .timer 1 10 killHLTV
        askconfirm
        halt
      }      
    }
    elseif ($calc(%CTscore + %Tscore) = 15) {
      set %CTsh2 %CTscore
      set %Tsh2 %Tscore
      unset %scorebot 
      set %CTtotal $calc(%CTsh2 + %Tsh1)
      set %Ttotal $calc(%Tsh2 + %CTsh1)
      /rcon say Match Completed. It was a tie! %team1.name %CTtotal - %Ttotal %team2.name
      msg #ausnetwork Match Completed. It was a tie! %team1.name %CTtotal - %Ttotal %team2.name
      .timerhelp* off
      .timer 1 5 stopHLTV
      .timer 1 10 killHLTV
      askconfirm
      halt
    }
    else {
      scoreupdate
    }
  }
  :skipscores
}


alias getpass {
  rcon sv_password
  rcon sv_password
}

alias matchhelp {
  if (%half.1) {
    .timerhelp3 1 2 rcon say 1st Warm-up. %team1.name $+ (T) vs. %team2.name $+ (CT)
  }
  if (%half.2) {
    .timerhelp4 1 2 rcon say 2nd Warm-up. %team2.name $+ (T) vs. %team1.name $+ (CT)
  }
  .timerhelp2 1 30 rcon say Help: say !ready when ready 
  .timerhelp1 1 30 rcon say Help: commands are say !ready, say !notready
} 

alias lo3msg {
  rcon exec war.cfg
  rcon say Live in 3 restarts!
  rcon sv_restart 1
  .timer 1 2 rcon sv_restart 1
  .timer 1 4 rcon sv_restart 3
  .timer 1 8 rcon say LIVE
  .timer 1 8 rcon say LIVE
  .timer 1 8 rcon say LIVE
  .timer 1 8 rcon say LIVE
  .timer 1 8 rcon say LIVE
  .timer 1 8 set %match.on 1
  .timer 1 10 unset %lo3
}

alias lo3 {
  if (!%demo.name) halt
  if (%lo3) { halt }
  set -u10 %lo3 1
  .timerhelp* off
  unset %half.time
  getpass
  rcon status
  unset %team1 %team2
  .timer 1 10 logs
  if (!%half.1) && (!%half.2) {
    set %half.1 1
  }
  if (%half.1 = 1) { 
    lo3msg
    hltv.challenge
    .timer 1 2 hltv stoprecording; record %demo.name $+ - $+ FirstHalf
    %first.demoname = %demo.name $+ - $+ FirstHalf $+ - $+ $asctime($calc($ctime + 3),yymmddHHnn) $+ - $+ %map.current $+ .dem
    halt  
  }
  if (%half.2 = 1) {
    lo3msg
    hltv.challenge
    .timer 1 2 hltv stoprecording; record %demo.name $+ - $+ SecondHalf
    %second.demoname = %demo.name $+ - $+ SecondHalf $+ - $+ $asctime($calc($ctime + 3),yymmddHHnn) $+ - $+ %map.current $+ .dem
    halt  
  }
}

alias stopmatch {
  rcon say Match stopped.
  unset %half.* %match.on %scores %CTscore %Tscore %CTsh1 %Tsh1 %CTsh2 %Tsh2 %demo.name %team* %hltv.name
  .timerhelp* off
  killHLTV
  uploadstats
  logs
}

alias doublelogs {
  set %rcon.data.current %rcon.data
  if (%c) && (%rcon.data.current = %rcon.data.last) && (*ÿÿÿÿchallenge* !iswm %rcon.data.current) && (*logaddress_add* !iswm %rcon.data.current) {
    logs
    unset %rcon.data.last
  }
  else {
    set %rcon.data.last %rcon.data
    set %c 10
    dec -z %c
  }
}

alias steamid {
  if (*steam_* !iswm %rcon.data) { halt }
  if ($regex(%rcon.data,/((<)(\d+)(>)(<)((\w+)(_)([0-9])(:)([0-9])(:)(\d+))(>)(<)(\w*)(>)))) {
    set %steamid $regml(6)
    if ($count(%rcon.data,%steamid) > 1) { unset %steamid }
  }
}

alias connectHLTV {
  killHLTV
  getpass
  getpass
  pause s 1
  write -c $shortfn(C:\Servers\Cs\CS - style\\hltv.cfg)
  write $shortfn(C:\Servers\Cs\CS - style\hltv.cfg) name " $+ %hltv.name HLTV Proxy"
  write $shortfn(C:\Servers\Cs\CS - style\\hltv.cfg) hostname  " $+ %hltv.name HLTV Proxy"
  write $shortfn(C:\Servers\Cs\CS - style\\hltv.cfg) adminpassword p455
  write $shortfn(C:\Servers\Cs\CS - style\\hltv.cfg) rate "9999" 
  write $shortfn(C:\Servers\Cs\CS - style\\hltv.cfg) spectatorpassword "gtfocunts" 
  write $shortfn(C:\Servers\Cs\CS - style\\hltv.cfg) maxclients "0"
  write $shortfn(C:\Servers\Cs\CS - style\\hltv.cfg) delay "0"
  pause s 1   
  run -n C:\Servers\Cs\CS - style\hltv.exe +connect %rcon.ip $+ : $+ %rcon.port +serverpassword %current.pass
  .timer 1 15 hltv.challenge
}

on *:udpread:rcon:{
  if ($sockerr > 0) {
    return
  }
  :nextread
  sockread -f %rcon.data
  if ($sockbr == 0) {
    return
  }
  if (%rcon.data == $null) {
    goto nextread
  }
  else {
    write rconlogs.txt $strip(%rcon.data)
    if (*"*from*"*"* iswm %rcon.data) {
      %rcon.data = $null
    }
    if (*"* iswm %rcon.data) {
      %rcon.data = $remove(%rcon.data,")
    }
    if ($gettok(%rcon.data,1,32) == ÿÿÿÿchallenge) {
      set %rcon.challengenumber $gettok(%rcon.data,3,32)
    }
    if ($left(%rcon.data,5) == ÿÿÿÿl) {
      %rcon.data = $remove(%rcon.data,$left(%rcon.data,5))
      if (%rcon.data == $null) {
        goto nextread
      }
    }
    :continue
    if (*Rcon:* iswm %rcon.data) {
      %rcon.data = $null
    }
    if (Bad Rcon: rcon* iswm %rcon.data) {
      %rcon.data = $null     
    }
    if ($pos(%rcon.data,2008,1) = 12) {
      %rcon.data = $remove(%rcon.data,$left(%rcon.data,27))
    }
    if (*Started map* iswm %rcon.data) {
      %rcon.data = 7Map change:14 $gettok(%rcon.data,3,32)

    }
    if (*!lo3* iswm %rcon.data) {
      steamid
      if ($istok(%members,%steamid,59)) {
        rcon status
        .timer 1 1 lo3
      }
    }
    if (*has inconsistent* iswm %rcon.data) { 
      $regex(%rcon.data,/(])(.*)(<)(\d*)(>)(<)(\S*)(>)(<)(>)(\s)(has inconsistent file:)(.*)/)
      rcon say custom file disallowed: $regml(13)
      msg #chan 7RCON file:14 $regml(2) ( $+ $regml(7) $+ ) has been kicked for use of custom file: $regml(13) 
    }
    if (*!csdm iswm %rcon.data) {
      steamid
      if ($istok(%members,%steamid,59)) {
        csdmcfg
      }
    }
    if (*!logs* iswm %rcon.data) {
      steamid
      if ($istok(%members,%steamid,59)) {
        rcon say Logs reset
        logs
      }
    }
    if (*!scores* iswm %rcon.data) {
      scoreupdate
    }
    if (*!stopmatch* iswm %rcon.data) {
      steamid
      if ($istok(%members,%steamid,59)) {
        stopmatch
      }
    }
    if (*!bloodstrike* iswm %rcon.data) {
      steamid
      if ($istok(%members,%steamid,59)) {
        bloodstrike
      }
    }
    if (*!restart* iswm %rcon.data) || (*!rs* iswm %rcon.data) {
      steamid
      if ($istok(%members,%steamid,59)) {
        rcon sv_restart 1
      }
    }
    if (*!rcon* iswm %rcon.data) {
      steamid
      if ($istok(%members,%steamid,59)) {
        %rcon.data = $remove(%rcon.data,(dead))
        if ($regex(%rcon.data,/(.*)(<)(\d*)(>)(<)(.*)(>)(<)(.*)(>)(.*)((?i)!rcon(?-i))(.*)/)) {
          msg #ausnetwork 7RCON:14 $regml(1) ( $+ $regml(6) $+ ): $regml(13)
          rcon $regml(13)        
        }
      }
    }
    if (*attacked* iswm %rcon.data) {
      if (%match.on) {
        if ($regex(%rcon.data,/(.*)(<)(\d*)(><)(.*)(><)(TERRORIST)(> attacked)(\s)(.*)(<)(\d*)(><)(.*)(><)(CT)(>)( with )(.*)(damage )(\d*)(\S)(.*)(health)(\s)(-?)(\d*)(\S)/)) {
          if ($regml(26)) {
            adddamage $regml(5) $calc($regml(21) - $regml(27))
            ;echo -a Added $calc($regml(21) - $regml(27)) damage to $regml(5) (!)
            adddamager $regml(14) $calc($regml(21) - $regml(27))
            ;echo -a $regml(10) received $regml(21) damage (!) ( $regml(26) $regml(27) HP )
          }
          if (!$regml(26)) {
            adddamage $regml(5) $regml(21)
            ;echo -a Added $regml(21) damage to $regml(5)
            adddamager $regml(14) $regml(21) 
            ;echo -a $regml(10) received $regml(21) damage ( $regml(26) $regml(27) HP )
          }
        }
        if ($regex(%rcon.data,/(.*)(<)(\d*)(><)(.*)(><)(CT)(> attacked)(\s)(.*)(<)(\d*)(><)(.*)(><)(TERRORIST)(>)( with )(.*)(damage )(\d*)(\S)(.*)(health)(\s)(-?)(\d*)(\S)/)) {
          if ($regml(26)) {
            adddamage $regml(5) $calc($regml(21) - $regml(27))
            ;echo -a Added $calc($regml(21) - $regml(27)) damage to $regml(5) (!)
            adddamager $regml(14) $calc($regml(21) - $regml(27))
            ;echo -a $regml(10) received $regml(21) damage (!) ( $regml(26) $regml(27) HP )
          }
          if (!$regml(26)) {
            adddamage $regml(5) $regml(21)
            ;echo -a Added $regml(21) damage to $regml(5)
            adddamager $regml(14) $regml(21) 
            ;echo -a $regml(10) received $regml(21) damage ( $regml(26) $regml(27) HP )
          }
        }
      }
      %rcon.data = $null
    }
    if (*!irc* iswm %rcon.data) {
      steamid
      if ($istok(%members,%steamid,59)) {
        %rcon.data = $remove(%rcon.data,(dead))
        if ($regex(%rcon.data,/(.*)(<)(\d*)(>)(<)(.*)(>)(<)(.*)(>)(.*)((?i)!irc(?-i))(.*)/)) {
          msg #chan 7IRC:14 $regml(1) ( $+ $regml(6) $+ ): $regml(13)
        }
      }
    }
    if (*!map* iswm %rcon.data) {
      steamid
      if ($istok(%members,%steamid,59)) {
        %rcon.data = $remove(%rcon.data,(dead))
        if ($regex(%rcon.data,/(!map)(.*)/i)) {
          rcon changelevel $regml(2)
        }
      }
    }
    if (*!match* iswm %rcon.data) {
      steamid
      rcon status
      if ($istok(%members,%steamid,59)) {
        if (%demo.name) { rcon say Match already started. | halt }
        if ($regex(%rcon.data,/(.*)(<)(\d*)(>)(<)(.*)(>)(<)(.*)(>)(\s)(say|say_team)(\s)((?i)!match(?-i))(\s)(\w*)(\s)(\w*)/)) {
          rcon say Match started: $regml(16) $+ (T) vs. $regml(18) $+ (CT)
          set %team1.name $regml(16)
          set %team2.name $regml(18)
          set %half.1 1
          var %team1, %team2
          .timer 1 5 setdemoname $regml(16) $regml(18)
          set %demo.name $+($regml(16),-vs-,$regml(18))
          set %hltv.name $regml(16) vs. $regml(18)
          .timerhelp10 0 60 matchhelp
          .timer 1 3 getpass
          .timer 1 5 connectHLTV
        }
      }
    }
    if (*!status* iswm %rcon.data) {
      if (%half.2) { rcon say %team1.name $+ : ( $+ $numtok(%team2,32) $+ /5) %team2.name $+ : ( $+ $numtok(%team1,32) $+ /5) }
      else { rcon say %team1.name $+ : ( $+ $numtok(%team1,32) $+ /5) %team2.name $+ : ( $+ $numtok(%team2,32) $+ /5) }
    }
    if (*ready* iswm %rcon.data) {
      steamid
      if (!%demo.name) { halt }
      if (%match.on) { halt }
      if (%lo3) { halt }
      if ($regex(%rcon.data,/(.*)(<)(\d*)(>)(<)(.*)(>)(<)(.*)(>)(\s)(say|say_team)(\s)((?i)!ready(?-i))/)) {
        if (%half.1) {
          set %teamT %team1.name
          set %teamCT %team2.name
        }
        if (%half.2) {
          set %teamT %team2.name
          set %teamCT %team1.name
        }
        if ($regml(9) = TERRORIST) {
          if ($istok(%team1,$regml(6),32)) { 
            halt
          }
          if ($numtok(%team1,32) = 5) { halt }
          %team1 = $addtok(%team1,$regml(6),32)
          rcon say $regml(1) is now ready ( $+ $numtok(%team1,32) $+ /5)
          if ($numtok(%team1,32) = 5) {
            rcon say %teamT ready for fight.
            if ($numtok(%team2,32) = 5) {
              .timer -m 1 500 rcon say %teamCT ready for fight.
            }
          }
        }
        if ($regml(9) = CT) {
          if ($istok(%team2,$regml(6),32)) { 
            halt
          }
          if ($numtok(%team2,32) = 5) { halt }
          %team2 = $addtok(%team2,$regml(6),32)
          rcon say $regml(1) is now ready ( $+ $numtok(%team2,32) $+ /5)
          if ($numtok(%team2,32) = 5) {
            rcon say %teamCT ready for fight.
            if ($numtok(%team1,32) = 5) {
              .timer -m 1 500 rcon say %teamT ready for fight.
            }
          }
        } 
        if ($numtok(%team2,32) = 5) && ($numtok(%team1,32) = 5) {
          rcon status
          .timer 1 1 lo3
        }
      }
      if ($regex(%rcon.data,/(.*)(<)(\d*)(>)(<)(.*)(>)(<)(.*)(>)(\s)(say)(\s)((?i)!notready(?-i))/)) {
        if ($regml(9) = TERRORIST) {
          if (!$istok(%team1,$regml(6),32)) { halt }
          %team1 = $remtok(%team1,$regml(6),32)
          rcon say $regml(1) is not ready ( $+ $numtok(%team1,32) $+ /5)
        }
        if ($regml(9) = CT) {
          if (!$istok(%team2,$regml(6),32)) { halt }
          %team2 = $remtok(%team2,$regml(6),32)
          rcon say $regml(1) is not ready ( $+ $numtok(%team2,32) $+ /5)
        } 
      }
    }
    if (*connected* iswm %rcon.data) && (*disconnected* !iswm %rcon.data) {
      if ($regex(%rcon.data,/(.*)(<)(\d*)(>)(<)(.*)(>)(.*)(address)(.*)(:)(.*)/)) {
        writeini ips.ini IPS $regml(3) $regml(10)
        %rcon.data = 3 $+ $regml(1) 14has connected
        .timer 1 30 remini ips.ini IPS $regml(3)
      }
    }
    if (*disconnected* iswm %rcon.data) {
      if ($regex(%rcon.data,/(.*)(<)(\d*)(>)(<)(.*)(>)(<)(TERRORIST|CT|SPECTATOR)(>)(.*)(disconnected)/)) {
        %rcon.data = 3 $+ $regml(1) 14( $+ $regml(6) $+ )3 disconnected
        unset %score. [ $+ [ $regml(3) $+ * ] ]
        if ($istok(%team1,$regml(6),32)) {
          %team1 = $remtok(%team1,$regml(6),32)
          rcon say $regml(1) ( $+ $regml(6) $+ ) disconnected
        }
        if ($istok(%team2,$regml(6),32)) {
          %team2 = $remtok(%team1,$regml(6),32)
          rcon say $regml(1) ( $+ $regml(6) $+ ) disconnected
        }
      }
    }
    if (*entered the game* iswm %rcon.data) {
      if ($regex(%rcon.data,/(.*)(<)(\d*)(>)(<)(.*)(>)(<)(>)(.*)(entered the game)/)) {
        %rcon.data = 3 $+ $regml(1) 14(# $+ $regml(3) $+ : $regml(6) $+ )3 has entered the game
      }
    }
    if (*joined team* iswm %rcon.data) {
      if ($regex(%rcon.data,/(.*)(<)(\d*)(>)(<)(.*)(>)(<)(.*)(>)(.*)(joined team)(\s)(.*)/)) {
        if ($regml(14) = TERRORIST) {
          %rcon.data = 3 $+ $regml(1) 14joined team4 $regml(14)
        }
        if ($regml(14) = CT) {
          %rcon.data = 3 $+ $regml(1) 14joined team12 $regml(14)
        }
        if ($regml(14) = SPECTATOR) {
          %rcon.data = 3 $+ $regml(1) 14joined team7 $regml(14)
        }
      }
    }
    if (*STEAM USERID validated* iswm %rcon.data) {
      if ($regex(%rcon.data,/(.*)(<)(\d*)(>)(<)(.*)(>)(<>)(.*)(STEAM USERID)/)) {
        if ($readini(ips.ini,IPS,$regml(3))) {
          %rcon.data = 3 $+ $regml(1) 14(# $+ $regml(3) $+ : $regml(6) @ $readini(ips.ini,IPS,$regml(3)) $+ ) 3has connected
          remini ips.ini IPS $regml(3)
        }
      }
    }
    if (*committed suicide* iswm %rcon.data) {
      if ($regex(%rcon.data,/(.*)(<)(\d*)(>)(<)(.*)(>)(<)(CT|TERRORIST)(>)(\s)(committed suicide with)(\s)(.*)/)) {
        if ($regml(14) = worldspawn (world)) {
          inc %score. [ $+ [ $regml(3) $+ .deaths ] ]
          if ($regml(9) = CT) {
            %rcon.data = 12 $+ $regml(1) $score($regml(3)) 14killed self with 7worldspawn
          }
          if ($regml(9) = TERRORIST) {
            %rcon.data = 4 $+ $regml(1) $score($regml(3)) 14killed self with 7worldspawn
          }
        }
        if ($regml(14) = grenade) {
          dec %score. [ $+ [ $regml(3) $+ .kills ] ]
          inc %score. [ $+ [ $regml(3) $+ .deaths ] ]
          if ($regml(9) = CT) {
            %rcon.data = 12 $+ $regml(1) $score($regml(3)) 14killed self with 7grenade
          }
          if ($regml(9) = TERRORIST) {
            %rcon.data = 4 $+ $regml(1) $score($regml(3)) 14killed self with 7grenade
          }
        }
        if ($regml(14) = world) {
          dec %score. [ $+ [ $regml(3) $+ .kills ] ]
          inc %score. [ $+ [ $regml(3) $+ .deaths ] ]
          if ($regml(9) = CT) {
            %rcon.data = 12 $+ $regml(1) $score($regml(3)) 14killed self with 7world
          }
          if ($regml(9) = TERRORIST) {
            %rcon.data = 4 $+ $regml(1) $score($regml(3)) 14killed self with 7world
          }
        }
      }
    }
    if (*kick:* iswm %rcon.data) {
      if ($regex(%rcon.data,/(Kick:)(\s)(.*)(<)(\d*)(>)(<)(.*)(>)(<)(.*)(>)(\s)(was kicked by Console)/)) {
        %rcon.data = 3 $regml(3) 14( $+ $regml(8) $+ ) 3was kicked.
      }
    }
    if (*killed* iswm %rcon.data) {
      if ($regex(kills,%rcon.data,/(.*)(<)(\d*)(>)(<)(.*)(>)(<)(CT|TERRORIST)(>)(.*)(killed)(\s)(.*)(<)(\d*)(>)(<)(.*)(>)(<)(CT|TERRORIST)(> with )(.*)/)) {
        if ($regml(kills,9) = CT) {
          if ($regml(kills,22) = CT) {
            dec %score. [ $+ [ $regml(kills,3) $+ .kills ] ]
            inc %score. [ $+ [ $regml(kills,16) $+ .deaths ] ]
            %rcon.data = 12 $+ $regml(kills,1) $score($regml(kills,3)) 14teamkilled12 $regml(kills,14) $score($regml(kills,16)) 14with7 $regml(kills,24)
            ;delkill $regml(kills,6) 
            ;adddeath $regml(kills,19)
          }
          else {
            inc %score. [ $+ [ $regml(kills,3) $+ .kills ] ]
            inc %score. [ $+ [ $regml(kills,16) $+ .deaths ] ]
            %rcon.data = 12 $+ $regml(kills,1) $score($regml(kills,3)) 14killed4 $regml(kills,14) $score($regml(kills,16)) 14with7 $regml(kills,24)
            ;  addkill $regml(kills,6) 
            ;  adddeath $regml(kills,19)
            ;  addweapon $regml(kills,6) $regml(kills,24)        
          }      
        }
        if ($regml(kills,9) = TERRORIST) {
          if ($regml(kills,22) = TERRORIST) {
            dec %score. [ $+ [ $regml(kills,3) $+ .kills ] ]
            inc %score. [ $+ [ $regml(kills,16) $+ .deaths ] ]
            %rcon.data = 4 $+ $regml(kills,1) $score($regml(kills,3)) 14teamkilled4 $regml(kills,14) $score($regml(kills,16)) 14with7 $regml(kills,24)
            ;delkill $regml(kills,6) 
            ;adddeath $regml(kills,19)   
          }
          else {
            inc %score. [ $+ [ $regml(kills,3) $+ .kills ] ]
            inc %score. [ $+ [ $regml(kills,16) $+ .deaths ] ]
            %rcon.data = 4 $+ $regml(kills,1) $score($regml(kills,3)) 14killed12 $regml(kills,14) $score($regml(kills,16)) 14with7 $regml(kills,24)
            ;   addkill $regml(kills,6) 
            ;   adddeath $regml(kills,19)   
            ;   addweapon $regml(kills,6) $regml(kills,24)        
          }
        }
      }
    }
    if (*loading map* iswm %rcon.data) {
      tokenize 32 %rcon.data
      if ($0 = 3) {
        unset %score.*
      }
    }
    if (*Planted_The_Bomb* iswm %rcon.data) {
      if ($regex(%rcon.data,/(.*)(<)(\d*)(>)(<)(.*)(>)(<)(CT|TERRORIST)(>)(\s)(triggered)(\s)(Planted_The_Bomb)/)) {
        set %bomb.planter $regml(3)
      }
    }

    if (*Defused_The_Bomb* iswm %rcon.data) {
      if ($regex(%rcon.data,/(.*)(<)(\d*)(>)(<)(.*)(>)(<)(CT|TERRORIST)(>)(\s)(triggered)(\s)(Defused_The_Bomb)/)) {
        set %score. [ $+ [ $regml(3) $+ .kills ] ] $iif(%score. [ $+ [ $regml(3) $+ .kills ] ],$calc($ifmatch + 3),3)
        adddefuse $regml(6)
      }
    }
    if (*Server*cvar*sv_restart*=* iswm %rcon.data) {
      tokenize 32 %rcon.data
      if ($0 = 5) {
        .timer 1 $5 unset %score.*
      }
    }
    if (*Server shutdown* iswm %rcon.data) {
      tokenize 32 %rcon.data
      if ($0 = 2) {
        unset %score.*
      }
    }
    if (*World triggered* iswm %rcon.data) {
      if (*world triggered Game_Commencing* iswm %rcon.data) {
        unset %score.*
      }
      if (*World triggered Round_Start* iswm %rcon.data) {
        if (%match.on) {
          set -u3 %round.start 1
          rcon status
        }
      }   
    }
    if (*Team CT triggered* iswm %rcon.data) || (*Team TERRORIST triggered* iswm %rcon.data) {
      if (*Team TERRORIST Triggered Target_Bombed* iswm %rcon.data) {
        set %score. [ $+ [ %bomb.planter $+ .kills ] ] $iif(%score. [ $+ [ %bomb.planter $+ .kills ] ],$calc($ifmatch + 3),3)
        unset %bomb.planter
      }
      scorecolour 
      sortscores
    }
    if (*World triggered* iswm %rcon.data) {
      if ($regex(%rcon.data,/(World)(\s)(triggered)(\s)(.*)/)) {
        %rcon.data = 5World triggered $regml(5)
      }
    }
    if (*changed name to* iswm %rcon.data) {
      if ($regex(%rcon.data,/(.*)(<)(\d*)(>)(<)(.*)(>)(<)(.*)(>)(\s)(changed name to)(\s)(.*)/)) {
        %rcon.data = 10 $+ $regml(1) 14changed name to10 $regml(14)
      }
    }
    if (*server say* iswm %rcon.data) {
      if (*live* iswm %rcon.data) && (*[* iswm %rcon.data) || (*-----* iswm %rcon.data) { 
        unset %lo3
        halt 
      }
      if ($regex(%rcon.data,/(Server say)(\s)(.*)/)) {
        %rcon.data = 7RCON say:14 $regml(3)
        goto serversay
      }
    }
    if ($regex(%rcon.data,/(.*)(<)(\d*)(>)(<)(.*)(>)(<)(TERRORIST)(>)(\s)triggered Dropped_The_Bomb/)) {
      %rcon.data = 5 $+ $regml(1) dropped the bomb
    }
    if (*say* iswm %rcon.data) && (*server say* !iswm %rcon.data) {
      %rcon.data = $remove(%rcon.data,(dead))
      if ($regex(%rcon.data,/(.*)(<)(\d*)(>)(<)(.*)(>)(<)(CT|TERRORIST|SPECTATOR)(>)(\s)(say|say_team)(\s)(.*)/)) {
        if ($regml(9) = TERRORIST) {
          %rcon.data = 4 $+ $regml(1) 14 $+ $regml(12) $+ : $regml(14)
        }
        if ($regml(9) = CT) {
          %rcon.data = 12 $+ $regml(1) 14 $+  $regml(12) $+ : $regml(14)
        }
        if ($regml(9) = SPECTATOR) {
          %rcon.data = 7 $+ $regml(1) 14 $+ $regml(12) $+ : $regml(14)
        }
      }    
    }
    :serversay
    if (%rcon.data != $null) {
      if (*server cvar* !iswm %rcon.data) && (*meta* !iswm %rcon.data) ;msg #vel.logs %rcon.data
      echo @rcon ( $+ $asctime(hh:nn:ss) $+ ) Rcon.data: %rcon.data
      .timerlogs off
      .timerlogs 1 1200 logs
      unset %rcon.data
    }
    goto nextread
  }
}

on *:sockwrite:rcon:{
  if ($sockerr) {
    aline @rcon $sock().wserr
  }
}

alias score {
  if (%score. [ $+ [ $1 $+ .kills ] ] = $null) {
    set %score. [ $+ [ $1 $+ .kills ] ] 0
  }
  if (%score. [ $+ [ $1 $+ .deaths ] ] = $null) {
    set %score. [ $+ [ $1 $+ .deaths ] ] 0
  }
  return $chr(91) $+ %score. [ $+ [ $1 $+ .kills ] ] $+ / $+ %score. [ $+ [ $1 $+ .deaths ] ] $+ $chr(93)
}

alias warset {
  rcon exec war.cfg
  rcon say Sorry guys, server being shutdown for a war
  rcon say Sorry guys, server being shutdown for a war
  rcon say Sorry guys, server being shutdown for a war
  .timer 1 2 rcon map $1
  rcon sv_password $2
  .timer 1 5 rcon exec war.cfg
  echo -a War config loaded. 
  echo -a Map: $1
  echo -a connect %rcon.ip $+ : $+ %rcon.port $+ ; password $2
}