Advertisement
intersys

Untitled

Mar 26th, 2018
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 11.22 KB | None | 0 0
  1. alias rconstart { var %x = 1 | while ($data(%x)) { sourcercon $data($v1).server | inc %x } }
  2. alias sourcercon {
  3.   if (!$1) { echo -ag Invalid parameters. | return }
  4.   var %sockname = $+($srcon.prefix,$1)
  5.   if ($sock(%sockname)) { sockclose %sockname | unset %rcon.id. [ $+ [ %sockname ] ] }
  6.   srcon_echo $1 12 CS:GO RCON control window. Establishing the connection to server $1 $+ $chr(44) please wait...!
  7.   sockopen %sockname $gettok($1,1,58) $gettok($1,2,58) | sockmark %sockname $data($1).rconpass
  8. }
  9.  
  10. on *:SOCKOPEN:$($+($srcon.prefix,*)): {
  11.   var %check = $+($sock($sockname).saddr,:,$sock($sockname).sport), %ipp = $remove($sockname,$srcon.prefix)
  12.   if ($sock($sockname).status == active) {
  13.     set %srcon.id. [ $+ [ $sockname ] ] 0
  14.     srcon.getrequest &srcon.auth %srcon.id. [ $+ [ $sockname ] ] $srcon.req.auth $sock($sockname).mark
  15.     sockwrite $sockname &srcon.auth
  16.     srcon_echo %ipp 12 Connection established successfully to server %ipp $+ .
  17.     .timerlogstart. [ $+ [ %ipp ] ] 1 1 rconlogstart %ipp
  18.   }
  19.   else {
  20.     srcon_echo %ipp 04 Error: Socket is dead: Connection timed out. | srcon.clear %ipp
  21.   }
  22. }
  23. on *:SOCKCLOSE:$($+($srcon.prefix, *)): {
  24.   var %srcon.window = $+(@, $remove($sockname, $srcon.prefix))
  25.   if (($window(%srcon.window)) && (%srcon.id. [ $+ [ $sockname ] ])) {
  26.     %srcon.name = $sockname
  27.     %srcon.ip = $sock($sockname).ip
  28.     %srcon.port = $sock($sockname).port
  29.     %srcon.pass = $sock($sockname).mark
  30.     sockclose $sockname
  31.     sockopen %srcon.name %srcon.ip %srcon.port
  32.     sockmark %srcon.name %srcon.pass
  33.   }
  34. }
  35. on *:INPUT:@: {
  36.   var %srcon.socket = $+($srcon.prefix, $remove($target, @))
  37.   if ($($+(%, srcon.id., %srcon.socket), 2) == $null) { return }
  38.   if (!$sock(%srcon.socket)) {
  39.     aline 04 $target * Error: Socket is dead. Close the window and try again.
  40.     return
  41.   }
  42.   inc %srcon.id. $+ %srcon.socket
  43.   srcon.getrequest &srcon.cmd %srcon.id. [ $+ [ %srcon.socket ] ] $srcon.req.execcmd $1-
  44.   aline $target -> $1-
  45.   sockwrite %srcon.socket &srcon.cmd
  46. }
  47. on *:CLOSE:@: {
  48.   srcon.clear $+($srcon.prefix, $remove($target, @))
  49. }
  50. alias -l srcon.getrequest {
  51.   bunset $1
  52.   bset $1 5 $srcon.inttobytes($2)
  53.   bset $1 9 $srcon.inttobytes($3)
  54.   bset -t $1 13 $4-
  55.   bset $1 $calc($bvar($1,0) + 1) 00 00
  56.   bset $1 1 $srcon.inttobytes($calc($bvar($1, 0) - 4))
  57. }
  58.  
  59. alias -l srcon.clear {
  60.   var %ipp = $remove($1,$srcon.prefix,$log.prefix), %srcon = $+($srcon.prefix,%ipp), %log = $+($log.prefix,%ipp)
  61.   if ($sock(%srcon)) {
  62.     rconsend %ipp logaddress_delall | .timer -o 1 2 sockclose %srcon | unset %rcon.id. [ $+ [ %srcon ] ]
  63.   }
  64.   if ($sock(%log)) { .timer -o 1 2 sockclose %log }
  65. }
  66. alias logcheck {
  67.   var %ipp = $1, %logsocket = $+($log.prefix,%ipp), %rconsocket = $+($srcon.prefix,%ipp)
  68.   if ($sock(%rconsocket)) { .timerlogstart. [ $+ [ %ipp ] ] 1 0 rconlogstart %ipp } | elseif ($sock(%logsocket)) { sockclose %logsocket }
  69. }
  70. alias rconlogstart { set -u2 %logstart. [ $+ [ $1 ] ] 1 | rconlogstart2 $1 }
  71. alias rconlogstart2 {
  72.   var %ipp = $1, %rconsocket = $+($srcon.prefix, $1), %logsocket = $+($log.prefix, $1)
  73.   if ($sock(%rconsocket)) {
  74.     if ($sock(%logsocket)) { sockclose %logsocket }
  75.     sockudp -k %logsocket
  76.     var %port = $iif($sock(%logsocket).port,$ifmatch,$+(100,$rand(1,9),$rand(1,9)))
  77.     rconsend %ipp logaddress_delall | rconsend %ipp logaddress_add $+($ip,:,%port)
  78.     if (%startup. [ $+ [ %ipp ] ]) { rconsend %ipp log on | .timer -o 1 2 rconset %ipp } | else { rconsend %ipp log on }
  79.     set -u10 %check. [ $+ [ %ipp ] ] 1 | .timer -o 1 1 rconsend %ipp status
  80.   }
  81.   elseif ($sock(%logsocket)) { sockclose %logsocket }
  82. }
  83.  
  84. alias rconsend {
  85.   var %rconsocket = $+($srcon.prefix, $1), %logsocket = $+($log.prefix, $1)
  86.   if (!$sock(%rconsocket)) {
  87.     if ($sock(%logsocket)) { sockclose %logsocket }
  88.     srcon_echo $1 04 $time * Error: Socket is dead. $+($chr(40),Cmd: $2-,$chr(41))
  89.     return
  90.   }
  91.   if ($sock(%rconsocket).status != active) { .timer -o 1 1 rconsend $1- | return }
  92.   inc %srcon.id. $+ %rconsocket
  93.   srcon.getrequest &srcon.cmd %srcon.id. [ $+ [ %rconsocket ] ] $srcon.req.execcmd $2-
  94.   if ($2 != echo) { srcon_echo $1 $time -> $2- }
  95.   if ($2 == changelevel) { .timerrecheck. [ $+ [ $1 ] ] 1 3 rechecksocket $1 }
  96.   sockwrite %rconsocket &srcon.cmd
  97. }
  98. alias rechecksocket {
  99.   var %rconsocket = $+($srcon.prefix, $1), %logsocket = $+($log.prefix, $1)
  100.   if (!$sock(%rconsocket)) {
  101.     if ($sock(%logsocket)) { sockclose %logsocket }
  102.     if (!%rechecksocket. [ $+ [ $1 ] ]) { set -u5 %rechecksocket. [ $+ [ $1 ] ] 1 | .timerrecheck. [ $+ [ $1 ] ] 1 2 rechecksocket $1 | sourcercon $replace($1,$chr(58),$chr(32)) %rcona }
  103.     else { set %retry. [ $+ [ $1 ] ] 1 | .timerretry. $+ $1 1 10 rconretry $1 | sourcercon $replace($1,$chr(58),$chr(32)) %rcona }
  104.   }
  105.   elseif (!$sock(%logsocket)) { .timerlogstart. [ $+ [ $1 ] ] 1 1 rconlogstart $1 }
  106. }
  107. alias srcon_echo {
  108.   var %ipp = $1, %srcon.window = $+(@,%ipp)
  109.   if (!$window(%srcon.window)) { window -aek0x %srcon.window sourcercon.execcmd }
  110.   echo %srcon.window $iif($2 isnum 1-15,$+(,$iif($len($2) > 1,$2,$+(0,$2)))) $+ $time * $iif($2 isnum 1-15,$3-,$2-)
  111. }
  112. alias srcon_send {
  113.   var %ipp = $1, %srcon.window = $+(@,%ipp)
  114.   if (!$window(%srcon.window)) { window -aek0x %srcon.window sourcercon.execcmd }
  115.   echo %srcon.window $iif($2 isnum 1-15,$+(,$iif($len($2) > 1,$2,$+(0,$2)))) $+ $time -> $iif($2 isnum 1-15,$3-,$2-)
  116. }
  117. alias keepalive {
  118.   if ($sock($+($srcon.prefix, $1))) { rconsend $1 echo Keep connection alive.. | .timerrecheck. [ $+ [ $1 ] ] 1 2 rechecksocket $1 }
  119.   if (!%retry. [ $+ [ $1 ] ]) { set %retry. [ $+ [ $1 ] ] 1 }
  120.   .timerretry. $+ $1 1 10 rconretry $1 | sourcercon $replace($1,$chr(58),$chr(32)) %rcona
  121.   elseif ($timer(keepalive. [ $+ [ $1 ] ])) { .timerkeepalive. [ $+ [ $1 ] ] off }
  122. }
  123. alias rconretry {
  124.   echo -s aa223
  125.   var %rconsocket = $+($srcon.prefix, $1)
  126.   if (%retry. [ $+ [ $1 ] ]) {
  127.     if (%retry. [ $+ [ $1 ] ] > 2) {
  128.       unset %retry. [ $+ [ $1 ] ]
  129.     }
  130.     else {
  131.       if ($sock(%rconsocket)) { sockclose %rconsocket }
  132.       .timerretry. $+ $1 1 10 rconretry $1 | sourcercon $replace($1,$chr(58),$chr(32)) %rcona
  133.     }
  134.     inc %retry. [ $+ [ $1 ] ]
  135.   }
  136. }
  137.  
  138. on *:SOCKREAD:$($+($srcon.prefix, *)): {
  139.   var %check = $+($sock($sockname).saddr,:,$sock($sockname).sport), %ipp = $remove($sockname,$srcon.prefix), %logip = $remove($sockname,$srcon.prefix)
  140.   if (!$sock($sockname).mark) { srcon_echo %ipp 04 NO SOCK MARK ON $sockname | sockmark $sockname %rcona }
  141.   if ($sockerr) { srcon_echo %ipp 04 Error: Reading from socket (SockERR): $sock($sockname).wsmsg | return }
  142.   if ($hget($sockname)) {
  143.     var %srcon.pckt.size = $hget($sockname, size)
  144.     var %srcon.pckt.left = $hget($sockname, left)
  145.     var %srcon.pckt.id = $hget($sockname, id)
  146.     var %srcon.pckt.cmd = $hget($sockname, cmd)
  147.     var %noop = $hget($sockname, string1, &srcon.pckt.string1)
  148.     sockread %srcon.pckt.left &srcon.pckt.rest
  149.     dec %srcon.pckt.left $sockbr
  150.     bcopy &srcon.pckt.string1 $calc($bvar(&srcon.pckt.string1, 0) + 1) &srcon.pckt.rest 1 -1
  151.     hfree $sockname
  152.   }
  153.   else {
  154.     sockread 4 &srcon.pckt.size
  155.     var %srcon.pckt.size = $bvar(&srcon.pckt.size, 1).long
  156.     var %srcon.pckt.left = %srcon.pckt.size
  157.     sockread 4 &srcon.pckt.id
  158.     var %srcon.pckt.id = $bvar(&srcon.pckt.id, 1).long
  159.     dec %srcon.pckt.left $sockbr
  160.     if ($srcon.inttobytes(%srcon.pckt.id) == 255 255 255 255) {
  161.       srcon_echo %ipp 04 Error: Failed authentication (probably wrong rcon password).
  162.       ;.timermixteams 1 2 resetall %ipp | writeini -n $gfile(gatherservers.ini) %ipp error Wrong RCON PW
  163.       ;if ($gatherinfo(schat)) { schatsend $+(0,$chr(44),%idd,Server) $+($chr(35),%idd,:,$col(end)) Wrong RCON password, the gather is therefor stopped }
  164.       return
  165.     }
  166.     sockread 4 &srcon.pckt.cmd
  167.     var %srcon.pckt.cmd = $bvar(&srcon.pckt.cmd, 1).long
  168.     dec %srcon.pckt.left $sockbr
  169.     sockread %srcon.pckt.left &srcon.pckt.string1
  170.     dec %srcon.pckt.left $sockbr
  171.   }
  172.   if (%srcon.pckt.left > 0) {
  173.     hmake $sockname
  174.     hadd $sockname size %srcon.pckt.size
  175.     hadd $sockname left %srcon.pckt.left
  176.     hadd $sockname id %srcon.pckt.id
  177.     hadd $sockname cmd %srcon.pckt.cmd
  178.     hadd -b $sockname string1 &srcon.pckt.string1
  179.   }
  180.   elseif (%srcon.pckt.left == 0) {
  181.     if (%srcon.pckt.cmd == $srcon.res.auth) {
  182.       if (!$sock($+($log.prefix,%ipp))) && (!%logstart. [ $+ [ %ipp ] ]) { .timerlogstart. [ $+ [ %ipp ] ] 1 1 rconlogstart %ipp }
  183.     }
  184.     elseif (%srcon.pckt.cmd == $srcon.res.cmd) {
  185.       if (!$sock($+($log.prefix,%ipp))) && (!%logstart. [ $+ [ %ipp ] ]) { .timerlogstart. [ $+ [ %ipp ] ] 1 1 rconlogstart %ipp }
  186.       var %i = 1, %next, %last | while (%i <= $bvar(&srcon.pckt.string1,0)) {
  187.         if ($bvar(&srcon.pckt.string1,%i) == $asc($lf)) {
  188.           if (*L * - *: * !iswm %next) { srcon_sockread %ipp %next }
  189.           var %next, %last
  190.         }
  191.         else { var %next = $+(%next,$iif(%last == 32,$chr(32)),$bvar(&srcon.pckt.string1,%i).text), %last = $bvar(&srcon.pckt.string1,%i) }
  192.         inc %i
  193.       }
  194.       if (%next) { srcon_sockread %ipp %next }
  195.       return
  196.       var %bytes = $bvar(&srcon.pckt.string1, 0), %bytes.max = 300, %bytes.x = 1, %bytes.now = %bytes.max, %bvar.chr = $asc($lf), %bvar.text
  197.       while (%bytes.x <= %bytes) {
  198.         var %bvar.text = $+(%bvar.text,$bvar(&srcon.pckt.string1, %bytes.x, %bytes.now).text), %bytes.x = $calc(%bytes.now +1), %bytes.send
  199.         while ($numtok(%bvar.text,%bvar.chr) > 1) {
  200.           var %bytes.send = 1, %temp = $gettok(%bvar.text,1,%bvar.chr), %bvar.text = $gettok(%bvar.text,2-,%bvar.chr) | srcon_sockread %ipp %temp
  201.         }
  202.         if (%bytes.send) { var %bytes.now = $calc(%bytes.now + %bytes.max) } | else { var %bytes.now = $calc(%bytes.now + (%bytes.max / 5)) }
  203.       }
  204.       var %i = 1 | while ($gettok(%bvar.text,%i,%bvar.chr)) { var %temp = $ifmatch | srcon_sockread %ipp %temp | inc %i }
  205.     }
  206.   }
  207. }
  208.  
  209. on *:UDPREAD:$($+($log.prefix,*)):{
  210.   :nextread
  211.   if (!$sock($sockname)) { return }
  212.   var %check = $+($sock($sockname).saddr,:,$sock($sockname).sport), %ipp = $remove($sockname,$log.prefix), %temp. [ $+ [ %ipp ] ]
  213.   if ($sockerr) { srcon_echo %ipp 04 Error: Reading from socket (SockERR): $sock($sockname).wsmsg | return }
  214.   %temp. [ $+ [ %ipp ] ] = $gettok(%temp. [ $+ [ %ipp ] ],1-,32)
  215.   sockread -f %temp. [ $+ [ %ipp ] ]
  216.   if ($sockbr == 0) { return }
  217.   if (%temp. [ $+ [ %ipp ] ]) { .timerlogcheck. [ $+ [ %ipp ] ] 1 20 logcheck %ipp | srcon_sockread %ipp %temp. [ $+ [ %ipp ] ] }
  218.   goto nextread
  219. }
  220. alias logit2 {
  221.   var %txt = $+(rcon_,$replace($1,$chr(58),$chr(45)),.log), %id = $+($chr(35),$serverid($1))
  222.   .timer -o 1 0 write %txt $+($chr(91),$date,$chr(93),$chr(91),$time,$chr(93),$chr(91),%id,$chr(93)) $iif($2-,$ifmatch,---------------)
  223. }
  224.  
  225. alias rl {
  226.   noop $regex($1-,/"(.+?)<(.+?)><(.+?)>/i)
  227.   if ($prop == Steam) return $regml(3)
  228. }
  229. alias srcon_sockread {
  230.   var %ipp = $1, %logip = %ipp, %temp. [ $+ [ %ipp ] ] $replace($2-,$chr(124),>|<)
  231.   if (%temp. [ $+ [ %ipp ] ]) {
  232.     tokenize 32 %temp. [ $+ [ %ipp ] ] | srcon_echo %ipp $1-
  233.     logit2 %ipp $1-
  234.     if (%retry. [ $+ [ %ipp ] ]) {
  235.       unset %retry. [ $+ [ %ipp ] ]
  236.     }
  237.     if (say isin $gettok(%temp. [ $+ [ %ipp ] ],3,34)) || (say_team isin $gettok(%temp. [ $+ [ %ipp ] ],3,34)) {
  238.       var %say = $gettok(%temp. [ $+ [ %ipp ] ],4,34)
  239.       ;if (%say == !rr) { set -u3 %fld. [ $+ [ %ipp ] ] 1 | rconsend %ipp mp_restartgame 2 }
  240.       if (%say == !rr) && ($rl($1-).steam == STEAM_0:0:61161104) { rconsend %ipp mp_restartgame 2 }
  241.     }
  242.     ;echo -s $rl($1-).steam
  243.   }
  244.   return
  245. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement