home *** CD-ROM | disk | FTP | other *** search
/ napalm.napnet.hu / 2015-02-12.napalm.napnet.hu.tar / napalm.napnet.hu / programok / kommunikacio / mpp700.exe / arenascout.mrc < prev    next >
Text File  |  2003-10-15  |  65KB  |  1,689 lines

  1. ;// ArenaScout by fuel
  2.  
  3. on *:load {
  4.   if $version < 6.0 {
  5.     echo $colour(other) -a *** Your version of mIRC ( $+ $version $+ ) is outdated. Visit www.mirc.com to get the latest copy.
  6.     echo $colour(other) -a *** This script will now self destruct.
  7.     .timer -m 1 1 unload -rs $script
  8.     halt
  9.   }
  10.   else {
  11.     echo $colour(other) -a *** Welcome to ArenaScout by fuel (fuel@seascape.ns.ca)
  12.     echo $colour(other) -a *** You can find the controls for ArenaScout under your popups as "ArenaScout"
  13.     if $exists($as.l) == $false { write -c $as.l }
  14.     if $exists($as.f) == $false { write -c $as.f }
  15.     write -c " $+ $scriptdirrecent.as $+ "
  16.     if $exists($as.ini) == $false {
  17.       write -c $as.ini
  18.       as.w s away 0
  19.       as.w s sping 1
  20.       as.w s follow 1
  21.       as.w s pingcorrection 0
  22.       as.w s autogame 1
  23.       as.w s desktop ""
  24.       as.w s autoclose 1
  25.       as.w s shortnames 0
  26.       as.w s focus 1
  27.       as.w s nick 0
  28.       as.w s flood 0
  29.       as.w s col1 n
  30.       as.w s col2 n
  31.     }
  32.     as.w s title ArenaScout
  33.     as.w s sh 1
  34.   }
  35. }
  36. on *:start {
  37.   unset %as-follow %as-fflood %as_* %as.*
  38.   .remove " $+ $scriptdirtemp.as $+ "
  39.   .remove " $+ $scriptdirmaster.as $+ "
  40.   .remove " $+ $scriptdirupdate.q $+ "
  41.   .remove $as.p
  42.   while $findfile($scriptdir,master.m*,0) > 0 {
  43.     var %as.m = " $+ $findfile($scriptdir,master.m*,1) $+ "
  44.     if $exists(%as.m) { .remove %as.m }
  45.     if $exists(%as.m) == $false { break }
  46.   }
  47. }
  48. on *:connect { unset %as-fflood %as_sp* }
  49.  
  50.  
  51. menu none {
  52.   -
  53.   $iif($as.i(title) == $null,ArenaScout,$as.i(title))
  54.   .launch:arenascout
  55.   .-
  56.   .configure:arenascout | did -c arenascout 5
  57.   .servers:arenascout | did -c arenascout 3
  58.   .search:arenascout | did -c arenascout 4
  59.   .friends:arenascout | did -c arenascout 89
  60.   .master:arenascout | did -c arenascout 97
  61.   .help:arenascout | did -c arenascout 6
  62.   .-
  63.   .recent
  64.   ..$as.rs(1):as.cx 1
  65.   ..$as.rs(2):as.cx 2
  66.   ..$as.rs(3):as.cx 3
  67.   ..$as.rs(4):as.cx 3
  68.   ..$as.rs(5):as.cx 3
  69.   ..$as.rs(6):as.cx 3
  70.   ..$as.rs(7):as.cx 3
  71.   ..$as.rs(8):as.cx 3
  72.   ..$as.rs(9):as.cx 3
  73.   ..$as.rs(10):as.cx 3
  74.   ..-
  75.   ..clear:write -c $scriptdirrecent.as
  76.   .display
  77.   ..alter ( $+ $iif($as.i(title) == $null,ArenaScout,$as.i(title)) $+ ):as.w s title $$input(Change the ArenaScout menu popup displayed to...,129)
  78.   .bind to
  79.   ..$as.c(F1):as.nf F1
  80.   ..$as.c(F2):as.nf F2
  81.   ..$as.c(F3):as.nf F3
  82.   ..$as.c(F4):as.nf F4
  83.   ..$as.c(F5):as.nf F5
  84.   ..$as.c(F6):as.nf F6
  85.   ..$as.c(F7):as.nf F7
  86.   ..$as.c(F8):as.nf F8
  87.   ;.-
  88.   ;.unload:as.unload
  89. }
  90.  
  91. dialog arenascout {
  92.   title "ArenaScout Q3:A Server Browser by fuel"
  93.   size -1 -1 450 450
  94.   icon $shortfn($scriptdirextensions\arenascout.ico), index
  95.   icon 1, 0 0 450 45, $shortfn($scriptdirextensions\arenascout.jpg)
  96.  
  97.   tab "scout", 2, 1 55 448 394
  98.   tab "servers", 3
  99.   tab "search", 4
  100.   tab "setup", 5
  101.   tab "friends", 89
  102.   tab "master list", 97
  103.   tab "help", 6
  104.  
  105.   text "servers", 83, 7 85 45 14, tab 2
  106.   edit "", 84, 52 83 244 20, autohs tab 2
  107.   list 7, 5 109 292 115, vsbar tab 2
  108.   icon 8, 302 98 140 105, $as.m(_default), tab 2
  109.   text "ArenaScout", 9, 302 83 140 14, right tab 2
  110.   text "players", 10, 7 212 50 14, tab 2
  111.   list 11, 5 227 127 220, autovs extsel tab 2
  112.   text "frags", 12, 134 212 25 14, tab 2
  113.   list 13, 131 227 50 220, autovs extsel tab 2
  114.   text "ping", 14, 183 212 25 14, tab 2
  115.   list 15, 180 227 50 220, autovs extsel tab 2
  116.   button "add red", 16, 233 227 60 19, tab 2
  117.   button "add blue", 17, 233 247 60 19, tab 2
  118.   button "remove", 18, 233 267 60 19, tab 2
  119.   button "add friend", 124, 233 287 60 19, tab 2
  120.   text "red", 19, 233 327 30 12, tab 2
  121.   text "score", 20, 233 339 30 12, tab 2
  122.   text "ping", 21, 233 351 30 14, tab 2
  123.   text "players", 136, 233 365 35 13, tab 2
  124.   text "0", 22, 262 339 26 12, right tab 2
  125.   text "0", 23, 262 351 26 12, right tab 2
  126.   text "0", 134, 268 365 20 12, right tab 2
  127.   text "blue", 24, 233 388 30 12, tab 2
  128.   text "score", 25, 233 400 30 12, tab 2
  129.   text "ping", 26, 233 412 30 13, tab 2
  130.   text "players", 137, 233 426 35 13, tab 2
  131.   text "0", 27, 262 400 26 12, right tab 2
  132.   text "0", 28, 262 412 26 12, right tab 2
  133.   text "0", 135, 268 426 20 12, right tab 2
  134.   text "ping", 29, 304 212 55 13, tab 2
  135.   edit "", 32, 302 225 70 19, read autohs center tab 2
  136.   text "players t/m/p", 31, 376 212 65 13, tab 2
  137.   edit "", 30, 374 225 70 19, read autohs center tab 2
  138.   text "timelimit", 33, 304 244 55 13, tab 2
  139.   edit "", 34, 302 257 70 19, read autohs center tab 2
  140.   text "fraglimit", 35, 376 244 55 13, tab 2
  141.   edit "", 36, 374 257 70 19, read autohs center tab 2
  142.   text "gametype", 37, 304 276 55 13, tab 2
  143.   edit "", 38, 302 289 70 19, read autohs center tab 2
  144.   text "gamename", 39, 376 276 55 13, tab 2
  145.   edit "", 40, 374 289 70 19, read autohs center tab 2
  146.   text "version info", 121, 304 308 55 13, tab 2
  147.   edit "", 122, 302 321 142 19, read autohs left tab 2
  148.   text "password", 41, 304 348 70 13, tab 2
  149.   edit "", 42, 302 361 140 20, tab 2
  150.   button "connect", 43, 302 387 46 24, tab 2
  151.   button "refresh", 44, 348 387 47 24, default tab 2
  152.   button "report", 45, 395 387 46 24, tab 2
  153.   button "clip", 127, 302 414 46 24, tab 2
  154.   check "auto ref", 125, 348 414 47 24, push tab 2
  155.   button "exit", 128, 395 414 46 24, tab 2
  156.   text "", 47, -100 -100 10 10, hide
  157.   text "", 48, -100 -100 10 10, hide
  158.  
  159.   list 49, 5 82 440 292, extsel size tab 3
  160.   button "add server", 50, 5 380 80 26, tab 3
  161.   button "delete server", 51, 5 410 80 26, tab 3
  162.   button "move up", 52, 90 380 80 26, tab 3
  163.   button "move down", 53, 90 410 80 26, tab 3
  164.   button "refresh all", 120, 175 380 80 26, tab 3
  165.   button "clear all", 54, 175 410 80 26, tab 3
  166.   check "Auto delete time outs", 118, 265 385 180 20, tab 3
  167.   check "Move time outs to the list's end", 117, 265 415 180 20, tab 3
  168.  
  169.   combo 126, 102 122 208 300, drop tab 4
  170.   check "population", 55, 102 162 75 15, tab 4
  171.   combo 56, 190 160 120 100, drop disabled tab 4
  172.   check "gametype", 57, 102 187 75 15, tab 4
  173.   combo 58, 190 185 120 100, drop disabled tab 4
  174.   check "gamename", 59, 102 212 75 15, tab 4
  175.   edit "", 60, 189 210 122 22, disabled tab 4
  176.   check "player", 61, 102 237 75 15, tab 4
  177.   combo 62, 190 235 120 170, drop edit disabled tab 4
  178.   button "search", 63, 314 235 55 22, tab 4
  179.   text "results (double click to query the server)", 64, 9 275 200 15, tab 4
  180.   list 65, 5 295 440 145, size tab 4
  181.   text "Fill in any of the fields (or any combination of fields) and click search. The results of your search will be displayed in the lower listbox.", 77, 20 84 400 32, center tab 4
  182.   button "", 94, 430 280 14 14, tab 4
  183.  
  184.   text "quake 3 executable", 66, 32 95 120 14, tab 5
  185.   edit "", 67, 30 108 297 22, read autohs tab 5
  186.   button "browse", 68, 330 108 80 22, tab 5
  187.   text "extra launch parameters", 75, 32 133 120 14, autohs tab 5
  188.   combo 76, 30 148 297 100, drop edit tab 5
  189.   button "save", 103, 330 147 39 22, tab 5
  190.   button "delete", 104, 371 147 39 22, tab 5
  191.   check "Listen for and react to -q3ping in channels", 85, 30 180 350 20, tab 5
  192.   check "Respond with server info when a user types ''?q3'' in a channel", 91, 30 200 350 20, tab 5
  193.   check "Set away on connection to a server", 90, 30 220 350 20, tab 5
  194.   check "Enable extra ping correction - if you find your ping is reporting too high", 105, 30 240 354 20, tab 5
  195.   check "Automatically try to set fs_game", 108, 30 260 350 20, tab 5
  196.   check "Launch as a desktop window", 96, 30 280 350 20, tab 5
  197.   check "Automatically close upon game launch", 92, 30 300 350 20, tab 5
  198.   check "Use shortened display names in info report", 106, 30 320 350 20, tab 5
  199.   check "Automatically focus on the scout tab when updating a server", 119, 30 340 350 20, tab 5
  200.   check "Append ''|Q3'' to your nick when launching a game", 116, 30 360 350 20, tab 5
  201.   check "Override/disable flood protection settings", 138, 30 380 350 20, tab 5
  202.   text "color 1", 110, 30 413 33 14, tab 5
  203.   combo 111, 75 410 80 100, drop tab 5
  204.   text "color 2", 112, 280 413 33 14, tab 5
  205.   combo 113, 325 410 80 100, drop tab 5
  206.  
  207.   box "friends list", 69, 70 88 298 337, tab 89
  208.   list 70, 87 110 200 310, vsbar tab 89
  209.   button "add", 71, 290 110 60 23, tab 89
  210.   button "edit", 72, 290 135 60 23, tab 89
  211.   button "delete", 73, 290 160 60 23, tab 89
  212.   button "clear", 74, 290 390 60 23, tab 89
  213.  
  214.   list 98, 5 82 440 295, sort size autohs extsel vsbar tab 97
  215.   button "add to favorites", 99, 5 412 90 25, tab 97
  216.   button "save list", 102, 100 412 90 25, tab 97
  217.   button "filter servers", 100, 100 382 90 25, disabled tab 97
  218.   button "get new list", 101, 5 382 90 25, tab 97
  219.   text "filters:", 129, 236 388 55 15, tab 97
  220.   text "gametype", 130, 275 388 55 15, tab 97
  221.   combo 131, 335 385 110 100, drop tab 97
  222.   text "gamename", 132, 275 417 55 15, tab 97
  223.   edit "", 133, 334 414 111 22, tab 97
  224.  
  225.   text "help topics", 78, 7 90 100 14, tab 6
  226.   list 79, 5 105 126 300, size tab 6
  227.   text "content", 80, 137 90 100 14, tab 6
  228.   edit "Click on any of the topics on the left and read about it in this box.", 81, 135 105 305 300, multi tab 6
  229.   button "exit", 82, 379 411 60 26, ok tab 6
  230.   button "readme", 86, 5 411 62 26, tab 6
  231.   button "email", 87, 70 411 62 26, tab 6
  232.   button "notes", 88, 135 411 62 26, tab 6
  233.   button "versions", 95, 200 411 62 26, tab 6
  234.   button "website", 109, 265 411 62 26, tab 6
  235. }
  236.  
  237. on *:dialog:arenascout:*:* {
  238.   if $devent == init {
  239.     var %as.loadtime = $ticks
  240.     if $exists($as.p) { .remove $as.p }
  241.     as.serverload
  242.     if %as.ip && %as.port { as.d 84 %as.ip $+ : $+ %as.port }
  243.     as.d 126 -> predefined searches...
  244.     as.d 126 á
  245.     as.d 111,113 no color
  246.     as.d 56 populated
  247.     as.d 56 empty
  248.     as.d 67 $as.i(quake3)
  249.     as.d 131 all
  250.     var %x = 1
  251.     while %x > 0 {
  252.       if $calc(%x - 1) < 16 { as.d 111,113 $calc(%x - 1) $+ . $replace($calc(%x - 1),10,cyan,11,lightcyan,12,lightblue,13,pink,14,grey,15,lightgrey,0,white,1,black,2,blue,3,green,4,red,5,brown,6,purple,7,orange,8,yellow,9,lightgreen) }
  253.       if $calc(%x - 1) < 11 { as.d 58,131 $calc(%x - 1) $as.type($calc(%x - 1),asinit,b) }
  254.       if %x <= $lines($as.l) { as.d 76 $read($as.l,n,%x) }
  255.       if %x <= $lines($as.f) { as.d 62,70 $read($as.f,n,%x) }
  256.       if $left($read($scriptdirhelp.ini,%x),1) == $chr(59) && !%as.helpi && $as.i(sh) == 1 { as.d 79 $remove($read($scriptdirhelp.ini,%x),$chr(59)) }
  257.       else { var %as.helpi = %x }
  258.       if $readini($scriptdirsearch.ini,searches,%x) != $null && !%as.searches { as.d 126 $remove($gettok($readini($scriptdirsearch.ini,searches,%x),1,43),$chr(9)) }
  259.       else { var %as.searches = %x }
  260.       inc %x
  261.       if %x > $lines($as.l) && %x > $lines($as.f) && %as.helpi && %as.searches { .break }
  262.     }
  263.     as.d 62 !áanyáfriend
  264.     as.u sping 85
  265.     as.u away 90
  266.     as.u follow 91
  267.     as.u pingcorrection 105
  268.     as.u autogame 108
  269.     did $iif(d isin $as.i(desktop),-c,-u) $dname 96
  270.     as.u autoclose 92
  271.     as.u shortnames 106
  272.     as.u nick 116
  273.     as.u focus 119
  274.     as.u flood 138
  275.     did -c $dname 111 $iif($as.i(col1) == n,1,$calc($as.i(col1) + 2)) 
  276.     did -c $dname 113 $iif($as.i(col2) == n,1,$calc($as.i(col2) + 2))
  277.     if $exists($scriptdirextensions\scout.dll) == $false { did -b $dname 100,101 }
  278.     did -c $dname 56,58,76,126,131 1
  279.     dialog -t $dname $as.t - load time: $round($calc(($ticks - %as.loadtime) / 1000),3) seconds
  280.     .timer 1 2 $ $+ iif($dialog(arenascout),dialog -t arenascout $as.t )
  281.     if $exists($as.i(quake3)) == $false { as.selectq3 }
  282.   }
  283.   if $devent == dclick {
  284.     if $did == 7 { as.scout $gettok($did(7,1).seltext,1,32) }
  285.     if $did == 49 { as.scout $gettok($did(49,1).seltext,1,32) }
  286.     if $did == 65 { as.scout $gettok($did(65,1).seltext,1,32) }
  287.     if $did == 98 && $did(98,0).sel == 1 {
  288.       if $gettok($did(98,1).seltext,0,32) == 1 { as.scout $did(98,1).seltext }
  289.       else { as.scout $remove($gettok($did(98,1).seltext,2,62),$chr(160)) }
  290.     }
  291.   }
  292.   if $devent == edit {
  293.     if $did == 42 && $did(7,1).seltext {
  294.       var %as.pass = $did(42).text
  295.       as.w passwords $gettok($gettok($did(7,1).seltext,1,32),1,160) $iif(%as.pass,%as.pass,"")
  296.     }
  297.   }
  298.   if $devent == sclick {
  299.     if $did == 7 || $did == 49 {
  300.       var %a = $dname, %as = $gettok($gettok($did($did,1).seltext,1,160),1,32)
  301.       if $left(%as,2) == // { halt }
  302.       did -ra %a 84 %as
  303.       if $readini($as.ini,passwords,%as) != $null { did -ra %a 42 $ifmatch }
  304.       else { did -ra %a 42 }
  305.     }
  306.     if $did == 7 { did -c $dname 49 $did(7).sel }
  307.     if $did == 8 {
  308.       if $lock(run) == $true {
  309.         .timer -m 1 1 var %as.j = $input($as.e(1,view the ArenaScout website),68)
  310.         halt
  311.       }
  312.       else { run http://www.clan-dna.com/fuel/arenascout/index.html#Levelshots }
  313.     }
  314.     if $did == 11 || $did == 13 || $did == 15 {
  315.       var %as._ = 11,13,15
  316.       var %as._ = $remtok(%as._,$did,1,44)
  317.       did -u $dname %as._ 0
  318.       var %x = 0
  319.       while %x < $did($did,0).sel {
  320.         inc %x
  321.         did -ck $dname %as._ $did($did,%x).sel
  322.       }
  323.     }
  324.     if $did == 16 {
  325.       if $did(11,0).sel == $null || $did(11,0).sel == 0 { halt }
  326.       var %x = 0
  327.       unset %as.clients
  328.       set %as.rtm $chr(181)
  329.       set %as.btm $chr(181)
  330.       while %x < $did(11).lines {
  331.         inc %x
  332.         var %as.temp = $did(13,%x).text $+ $chr(182) $+ $did(15,%x).text $+ $chr(182) $+ $gettok($did(11,%x).text,2-,32)
  333.         set %as.clients $addtok(%as.clients,%as.temp,181)
  334.         if <r> isin $gettok($did(11,%x).text,1,32) {
  335.           set %as.rtm $addtok(%as.rtm,$gettok($did(11,%x).text,2-,32),181)
  336.           set %as.btm $remtok(%as.btm,$gettok($did(11,%x).text,2-,32),1,181)
  337.         }
  338.         elseif <b> isin $gettok($did(11,%x).text,1,32) {
  339.           set %as.btm $addtok(%as.btm,$gettok($did(11,%x).text,2-,32),181)
  340.           set %as.rtm $remtok(%as.rtm,$gettok($did(11,%x).text,2-,32),1,181)
  341.         }
  342.       }
  343.       var %x = 0
  344.       while %x < $did(11,0).sel {
  345.         inc %x
  346.         set %as.rtm $addtok(%as.rtm,$gettok($did(11,$did(11,%x).sel).text,2-,32),181)
  347.         set %as.btm $remtok(%as.btm,$gettok($did(11,$did(11,%x).sel).text,2-,32),1,181)
  348.       }
  349.       write -c $as.p
  350.       write $as.p $gettok($did(48).text,1,32) $crlf
  351.       write $as.p %as.rtm $crlf
  352.       write $as.p %as.btm
  353.       as.sortplayers
  354.     }
  355.     if $did == 17 {
  356.       if $did(11,0).sel == $null || $did(11,0).sel == 0 { halt }
  357.       var %x = 0
  358.       unset %as.clients
  359.       set %as.rtm $chr(181)
  360.       set %as.btm $chr(181)
  361.       while %x < $did(11).lines {
  362.         inc %x
  363.         var %as.temp = $did(13,%x).text $+ $chr(182) $+ $did(15,%x).text $+ $chr(182) $+ $gettok($did(11,%x).text,2-,32)
  364.         set %as.clients $addtok(%as.clients,%as.temp,181)
  365.         if <r> isin $gettok($did(11,%x).text,1,32) {
  366.           set %as.rtm $addtok(%as.rtm,$gettok($did(11,%x).text,2-,32),181)
  367.           set %as.btm $remtok(%as.btm,$gettok($did(11,%x).text,2-,32),1,181)
  368.         }
  369.         elseif <b> isin $gettok($did(11,%x).text,1,32) {
  370.           set %as.btm $addtok(%as.btm,$gettok($did(11,%x).text,2-,32),181)
  371.           set %as.rtm $remtok(%as.rtm,$gettok($did(11,%x).text,2-,32),1,181)
  372.         }
  373.       }
  374.       var %x = 0
  375.       while %x < $did(11,0).sel {
  376.         inc %x
  377.         set %as.btm $addtok(%as.btm,$gettok($did(11,$did(11,%x).sel).text,2-,32),181)
  378.         set %as.rtm $remtok(%as.rtm,$gettok($did(11,$did(11,%x).sel).text,2-,32),1,181)
  379.       }
  380.       write -c $as.p
  381.       write $as.p $gettok($did(48).text,1,32) $crlf
  382.       write $as.p %as.rtm $crlf
  383.       write $as.p %as.btm
  384.       as.sortplayers
  385.     }
  386.     if $did == 18 {
  387.       if $did(11,0).sel == $null || $did(11,0).sel == 0 { halt }
  388.       var %x = 0
  389.       unset %as.clients
  390.       set %as.rtm $chr(181)
  391.       set %as.btm $chr(181)
  392.       while %x < $did(11).lines {
  393.         inc %x
  394.         var %as.t = $did(13,%x).text $+ $chr(182) $+ $did(15,%x).text $+ $chr(182) $+ $gettok($did(11,%x).text,2-,32)
  395.         set %as.clients $addtok(%as.clients,%as.t,181)
  396.         if <r> isin $gettok($did(11,%x).text,1,32) {
  397.           set %as.rtm $addtok(%as.rtm,$gettok($did(11,%x).text,2-,32),181)
  398.           set %as.btm $remtok(%as.btm,$gettok($did(11,%x).text,2-,32),1,181)
  399.         }
  400.         elseif <b> isin $gettok($did(11,%x).text,1,32) {
  401.           set %as.btm $addtok(%as.btm,$gettok($did(11,%x).text,2-,32),181)
  402.           set %as.rtm $remtok(%as.rtm,$gettok($did(11,%x).text,2-,32),1,181)
  403.         }
  404.       }
  405.       var %x = 0
  406.       while %x < $did(11,0).sel {
  407.         inc %x
  408.         set %as.btm $remtok(%as.btm,$gettok($did(11,$did(11,%x).sel).text,2-,32),1,181)
  409.         set %as.rtm $remtok(%as.rtm,$gettok($did(11,$did(11,%x).sel).text,2-,32),1,181)
  410.       }
  411.       write -c $as.p
  412.       write $as.p $gettok($did(48).text,1,32) $crlf
  413.       write $as.p %as.rtm $crlf
  414.       write $as.p %as.btm
  415.       as.sortplayers
  416.     }
  417.     if $did == 43 && $did(48).text != $null {
  418.  
  419. /killemall
  420.  
  421.       var %as. = $remove($as.rc($gettok($did(48).text,2-,32)),$chr(160))
  422.       if $as.i(away) == 1 {
  423.         if $isalias(away) == $true {
  424.           ame is away_ Q3:  $+ $gettok($did(48).text,1,32) $+  %as. $+ 
  425.            .timer -m 1 1 away Q3:  $+ $gettok($did(48).text,1,32) $+  %as. $+ 
  426. }
  427.         else {
  428.           ame is away_ Q3:  $+ $gettok($did(48).text,1,32) $+  %as. $+ 
  429.           raw -q away : $+ Q3:  $+ $gettok($did(48).text,1,32) $+  %as. $+ 
  430.         }
  431.       }
  432.       if $as.i(follow) == 1 {
  433.         tokenize 32 $did(48).text
  434.         set %as-follow $1 $ticks $2-
  435.         .timer_asun off
  436.         .timer_asun 1 21600 .unset $chr(37) $+ as-follow
  437.       }
  438.       else { unset %as-follow }
  439.       if $lock(run) == $true {
  440.         .timer -m 1 1 var %as.j = $input($as.e(1,run Quake 3),68)
  441.         halt
  442.       }
  443.       if $as.i(autoclose) == 1 { .timer 1 1 dialog -x $dname }
  444.       if $as.i(nick) == 1 && $right($me,3) != |Q3 { nick $me $+ |Q3 }
  445.       var %as.r = $as.i(quake3)
  446.       var %as.g = $iif($as.i(autogame) == 1,+set fs_game " $+ $did(40) $+ ")
  447.       var %as.c = $gettok($did(48),1,32)
  448.       var %as.z = $scriptdirrecent.as
  449.       write -il1 %as.z %as.c $iif($did(42),$did(42),$chr(160)) %as.
  450.       write -dl11 %as.z 
  451.       run -p %as.r -nointro +set password " $+ $did(42) $+ " %as.g $did(76) +connect %as.c
  452.     }
  453.     if $did == 44 {
  454.       var %as.` = $did(84)
  455.       if $remove(%as.`,.,:) !isnum && %as.` != $null {
  456.         set %as.dnshl %as.`
  457.         .dns $gettok(%as.`,1,58)
  458.         return
  459.       }
  460.       if %as.` { var %as.co = %as.` }
  461.       else { var %as.co = $gettok($did(7,1).seltext,1,32) }
  462.       as.scout %as.co
  463.     }
  464.     if $did == 45 { msg $active $as.dm($dname) }
  465.     if $did == 124 && $did(11).seltext != $null { .timer -m 1 1 as.friend addfromlist $left($replace($gettok($did(11,1).seltext,2-,32),$chr(160),$chr(32)),$calc($len($gettok($did(11,1).seltext,2-,32)) - 1)) }
  466.     if $did == 125 {
  467.       if $did(125).state == 0 {
  468.         .timer_AS.autoupdate off
  469.         halt
  470.       }
  471.       if $did(125).state == 1 && $did(7,1).seltext != $null {
  472.         as.autoscout $gettok($did(7,1).seltext,1,32)
  473.         .timer_AS.autoupdate 0 2 as.autoscout $gettok($did(7,1).seltext,1,32)
  474.         halt
  475.       }
  476.     }
  477.     if $did == 127 { clipboard $as.dm($dname) }
  478.     if $did == 128 { dialog -x arenascout }
  479.     if $did == 49 { did -c $dname 7 $did(49).sel }
  480.     if $did == 50 { .timer -m 1 1 as.addserver }
  481.     if $did == 51 && $did(49,1).sel != $null {
  482.       var %x = $did(49,0).sel
  483.       while %x > 0 {
  484.         write -dl $+ $did(49,%x).sel $as.list
  485.         dec %x
  486.       }
  487.       while $did(49,0).sel > 0 { did -d $dname 7,49 $did(49,1).sel }
  488.     }
  489.     if $did == 52 && $did(49).sel {
  490.       var %x = 0, %as._tmp = ""
  491.       while %x < $did(49,0).sel {
  492.         inc %x
  493.         var %as.mt = $read($as.list,n,$did(49,%x).sel)
  494.         var %as.we = $calc($did(49,%x).sel - 1)
  495.         var %as.ds = $did(49,$did(49,%x).sel).text
  496.         if %as.we <= 0 { halt }
  497.         var %as._tmp = %as.mt $+   $+ %as.we $+   $+ %as.ds
  498.         write " $+ $scriptdirarrange.tmp $+ " %as._tmp $+ $crlf
  499.         write -dl $+ $did(49,%x).sel $as.list
  500.         write -il $+ %as.we $as.list $remove(%as.mt,$chr(160))
  501.       }
  502.       var %x = 0
  503.       while %x < $lines($scriptdirarrange.tmp) {
  504.         inc %x
  505.         var %as._t = $read($scriptdirarrange.tmp,n,%x)
  506.         did -i $dname 7,49 $gettok(%as._t,2,255) $gettok(%as._t,3-,255)
  507.         did -ck $dname 7,49 $gettok(%as._t,2,255)
  508.         did -d $dname 7,49 $calc($gettok(%as._t,2,255) + 2)
  509.       }
  510.       .remove " $+ $scriptdirarrange.tmp $+ "
  511.     }
  512.     if $did == 53 && $did(49).sel {
  513.       var %x = $did(49,0).sel, %as._tmp = ""
  514.       while %x > 0 {
  515.         var %as.mt = $read($as.list,n,$did(49,%x).sel)
  516.         var %as.we = $calc($did(49,%x).sel + 1)
  517.         var %as.ds = $did(49,$did(49,%x).sel).text
  518.         if %as.we > $lines($as.list) { halt }
  519.         var %as._tmp = %as.mt $+   $+ %as.we $+   $+ %as.ds
  520.         write " $+ $scriptdirarrange.tmp $+ " %as._tmp $+ $crlf
  521.         write -dl $+ $did(49,%x).sel $as.list
  522.         write -il $+ %as.we $as.list $remove(%as.mt,$chr(160))
  523.         dec %x
  524.       }
  525.       var %x = 0
  526.       while %x < $lines($scriptdirarrange.tmp) {
  527.         inc %x
  528.         var %as._t = $read($scriptdirarrange.tmp,n,%x)
  529.         did -i $dname 7,49 $calc($gettok(%as._t,2,255) + 1) $gettok(%as._t,3-,255)
  530.         did -ck $dname 7,49 $calc($gettok(%as._t,2,255) + 1)
  531.         did -d $dname 7,49 $calc($gettok(%as._t,2,255) - 1)
  532.       }
  533.       .remove " $+ $scriptdirarrange.tmp $+ "
  534.     }
  535.     if $did == 54 { .timer -m 1 1 as.clearcheck }
  536.     if $did == 117 {
  537.       if $did(117).state == 1 { did -ub $dname 118 }
  538.       else { did -e $dname 118 }
  539.     }
  540.     if $did == 118 {
  541.       if $did(118).state == 1 { did -ub $dname 117 }
  542.       else { did -e $dname 117 }
  543.     }
  544.     if $did == 120 {
  545.       var %x = 0
  546.       while %x < $lines($as.list) {
  547.         inc %x
  548.         var %as.t_ = $gettok($read($as.list,n,%x),1,32)
  549.         if $left(%as.t_,1) == $chr(59) { goto 120 }
  550.         sockudp -k ASmassupdate $+ %x $gettok(%as.t_,1,58) $gettok(%as.t_,2,58)     getstatus
  551.         .timer_as.ASmassupdate $+ %x 1 1 as.massupdateremcheck %as.t_
  552.         dialog -t $dname $as.t - Refreshing servers $chr(40) $+ $int($calc(%x / $lines($as.list) * 100)) $+ $chr(37) $+ $chr(41)
  553.         :120
  554.       }
  555.       dialog -t $dname $as.t - Sorting servers...
  556.       .timer 1 2 as.serverload
  557.       .timer 1 2 dialog -t $dname $as.t
  558.     }
  559.     if $did == 55 { did $replace($did(55).state,1,-e,0,-b) $dname 56 }
  560.     if $did == 57 { did $replace($did(57).state,1,-e,0,-b) $dname 58 }
  561.     if $did == 59 { did $replace($did(59).state,1,-e,0,-b) $dname 60 }
  562.     if $did == 61 { did $replace($did(61).state,1,-e,0,-b) $dname 62 }
  563.     if $did == 63 {
  564.       if $did(55).state != 1 && $did(57).state != 1 && $did(59).state != 1 && $did(61).state != 1 { halt }
  565.       unset %as.parsing
  566.       did -ra $dname 65 Searching...
  567.       var %as.search = $chr(181) $+ $iif($did(55).state > 0,$did(56).text,0) $+ $chr(181) $+ $iif($did(57).state > 0,$gettok($did(58).text,1,32),0) $+ $chr(181)
  568.       .timer -m 1 1 as.search %as.search $+ $iif($did(59).state > 0,$did(60).text,0) $+ $chr(181) $+ $iif($did(61).state > 0,$did(62).text,0) $+ $chr(181) 
  569.     }
  570.     if $did == 94 { did -r $dname 65 }
  571.     if $did == 126 && $did(126).sel != 1 && $did(126).text != $chr(160) {
  572.       var %as.ps = $readini($scriptdirsearch.ini,searches,$calc($did(126).sel - 2))
  573.       var %as.ps1 = $gettok(%as.ps,2,43)
  574.       did -u $dname 61
  575.       did -b $dname 62
  576.       if $gettok(%as.ps1,1,44) != $null {
  577.         did -e $dname 56
  578.         did -c $dname 55
  579.         did -c $dname 56 $gettok(%as.ps1,1,44)
  580.       }
  581.       if $gettok(%as.ps1,1,44) == null {
  582.         did -b $dname 56
  583.         did -u $dname 55
  584.       }
  585.       if $gettok(%as.ps1,2,44) != null {
  586.         did -e $dname 58
  587.         did -c $dname 57
  588.         did -c $dname 58 $calc($gettok(%as.ps1,2,44) + 1)
  589.       }
  590.       if $gettok(%as.ps1,2,44) == null {
  591.         did -b $dname 58
  592.         did -u $dname 57
  593.       }
  594.       if $gettok(%as.ps1,3,44) != null {
  595.         did -e $dname 60
  596.         did -c $dname 59
  597.         did -ra $dname 60 $gettok(%as.ps1,3,44)
  598.       }
  599.       if $gettok(%as.ps1,3,44) == null {
  600.         did -b $dname 60
  601.         did -u $dname 59
  602.       }
  603.     }
  604.     if $did == 68 { .timer -m 1 1 as.selectq3 }
  605.     if $did == 85 { as.w s sping $did(85).state }
  606.     if $did == 90 { as.w s away $did(90).state }
  607.     if $did == 91 { as.w s follow $did(91).state }
  608.     if $did == 92 { as.w s autoclose $did(92).state }
  609.     if $did == 96 {
  610.       as.w s desktop " $+ $replace($did(96).state,1,d) $+ "
  611.       dialog -x $dname
  612.       arenascout
  613.       did -c arenascout 5
  614.     }
  615.     if $did == 103 && $did(76).text != $null {
  616.       write $as.l $did(76).text
  617.       as.d 76 $did(76).text
  618.     }
  619.     if $did == 104 && $did(76).sel != 0 && $did(76).sel != $null {
  620.       write -dl $+ $did(76).sel $as.l
  621.       did -d $dname 76 $did(76).sel
  622.     }
  623.     if $did == 105 { as.w s pingcorrection $did(105).state }
  624.     if $did == 106 { as.w s shortnames $did(106).state }
  625.     if $did == 108 { as.w s autogame $did(108).state }
  626.     if $did == 111 {
  627.       var %as.c = $did(111).sel
  628.       if %as.c == 1 { var %as.c = n }
  629.       else { var %as.c = $calc(%as.c - 2) }
  630.       as.w s col1 %as.c
  631.     }
  632.     if $did == 113 {
  633.       var %as.c = $did(113).sel
  634.       if %as.c == 1 { var %as.c = n }
  635.       else { var %as.c = $calc(%as.c - 2) }
  636.       as.w s col2 %as.c
  637.     }
  638.     if $did == 116 { as.w s nick $did(116).state }
  639.     if $did == 119 { as.w s focus $did(119).state }
  640.     if $did == 138 { as.w s flood $did(138).state }
  641.     if $did == 71 { .timer -m 1 1 as.friend add }
  642.     if $did == 72 && $did(70).sel { .timer -m 1 1 as.friend edit }
  643.     if $did == 73 && $did(70).sel { .timer -m 1 1 as.friend del }
  644.     if $did == 74 { .timer -m 1 1 as.friend clear }
  645.     if $did == 99 {
  646.       if $did(98,0).sel > 0 {
  647.         if $gettok($did(98,1).seltext,0,32) < 2 {
  648.           var %x = 0
  649.           while %x < $did(98,0).sel {
  650.             inc %x
  651.             as.addserver $did(98,$did(98,%x).sel).text
  652.           }
  653.           halt
  654.         }
  655.         else {
  656.           var %x = 0
  657.           while %x < $did(98,0).sel {
  658.             inc %x
  659.             var %as.ns = $did(98,$did(98,%x).sel).text, %as.ns2 = $gettok($gettok(%as.ns,2,160),2,32)
  660.             write $as.list $remove(%as.ns2,$chr(160)) >> $remove($gettok($gettok(%as.ns,4,160),2-,32),$chr(160)) $+ $crlf
  661.             var %as.l = $width(%as.ns2,ms sans serif,11), %as.s = %as.ns2 $+ $str($chr(160),$int($calc((114 - %as.l) / 3)))
  662.             as.d 7,49 %as.s >> $gettok($gettok(%as.ns,4,160),2-,32)
  663.           }
  664.         }
  665.       }
  666.       else { halt }
  667.     }
  668.     if $did == 100 {
  669.       if $chr(62) isin $did(98,1).text { halt }
  670.       if $did(98).lines < 11 { halt }
  671.       did -b $dname 100,101,131,133
  672.       as.master refresh
  673.     }
  674.     if $did == 101 { as.master update }
  675.     if $did == 102 {
  676.       if $did(98).lines > 6 { .timer -m 1 1 as.ssl }
  677.     }
  678.     if $did == 79 {
  679.       var %as.h = $readini($scriptdirhelp.ini,$did(79,1).seltext,head)
  680.       if %as.h == $null { halt }
  681.       did -ra $dname 81 %as.h $crfl $crlf
  682.       as.d 81 $crlf $+ $readini($scriptdirhelp.ini,$did(79,1).seltext,text)
  683.     }
  684.     if $did == 86 {
  685.       if $lock(run) == $true {
  686.         .timer -m 1 1 var %as.j = $input($as.e(1,view the readme),68)
  687.         halt
  688.       }
  689.       else { run notepad " $+ $scriptdirreadme.txt $+ " }
  690.     }
  691.     if $did == 87 {
  692.       if $lock(run) == $true {
  693.         .timer -m 1 1 var %as.j = $input($as.e(1,email fuel),68)
  694.         halt
  695.       }
  696.       else { run mailto:fuel@seascape.ns.ca?subject=ArenaScout }
  697.     }
  698.     if $did == 88 {
  699.       if $lock(run) == $true {
  700.         .timer -m 1 1 var %as.j = $input($as.e(1,view the notes),68)
  701.         halt
  702.       }
  703.       else { run notepad " $+ $scriptdirnotes.txt $+ " }
  704.     }
  705.     if $did == 95 {
  706.       if $lock(run) == $true {
  707.         .timer -m 1 1 var %as.j = $input($as.e(1,view the version history),68)
  708.         halt
  709.       }
  710.       else { run notepad " $+ $scriptdirversions.txt $+ " }
  711.     }
  712.     if $did == 109 {
  713.       if $lock(run) == $true {
  714.         .timer -m 1 1 var %as.j = $input($as.e(1,view the ArenaScout website),68)
  715.         halt
  716.       }
  717.       else { run http://www.clan-dna.com/fuel/arenascout/ }
  718.     }
  719.   }
  720. }
  721.  
  722.  
  723. alias arenascout {
  724.   $decode(YXMuY2hlY2s=,m)
  725.   if !$dialog(arenascout) {
  726.     unset %as-follow
  727.     if $exists($as.p) { .remove $as.p }
  728.     dialog -m $+ $as.i(desktop) arenascout arenascout
  729.   }
  730. }
  731. alias asback {
  732.   if $right($me,3) == |Q3 { nick $left($me,$calc($len($me) - 3)) }
  733.   if %as-follow != $null {
  734.     echo $colour(other) -a $timestamp *** ArenaScout server log has been cleared.
  735.     unset %as-follow
  736.   }
  737.   if $away == $true {
  738.     if $isalias(back) == $true { $iif($show == $true,back,.back) }
  739.     else {
  740.       if $show == $true && $left($active,1) == $chr(35) { me is back from playing quake 3... }
  741.       .raw -q away
  742.     }
  743.   }
  744. }
  745. alias playingq3 { as.p2 q }
  746. alias asplaying { as.p2 a }
  747. alias as.p2 {
  748.   if $left($active,1) == $chr(35) && %as-follow {
  749.     tokenize 32 %as-follow
  750.     describe $active has been playing quake3 at  $+ $1 $+  " $+ $3- $+ " for the last $duration($calc(($ticks - $2) / 1000)) $+ .
  751.   }
  752.   else {
  753.     if !%as-follow { echo $colour(other) -a $timestamp * $iif($1 == a,/asplaying,/playingq3) error: There is no connection log. | halt }
  754.   }
  755. }
  756. alias as.ssl {
  757.   var %as.sslf = $$input(Input the filename & ext. for the server list,133), %as.ssl = $$sdir($scriptdir,Save to the following directory), %as.ss = %as.ssl $+ %as.sslf
  758.   var %x = 0
  759.   while %x < $did(arenascout,98).lines {
  760.     inc %x
  761.     write " $+ %as.ss $+ " $remove($did(arenascout,98,%x).text,$chr(160))
  762.   }
  763.   run notepad " $+ %as.ss $+ "
  764. }
  765. alias as.rs {
  766.   var %a = $1 $+ .
  767.   tokenize 32 $read($scriptdirrecent.as,n,$1)
  768.   return $iif($1,%a) $3-
  769. }
  770. alias as.cx {
  771.   tokenize 32 $read($scriptdirrecent.as,n,$1)
  772.   run -p $as.i(quake3) -nointro +set password " $+ $iif($2 != $chr(160),$2) $+ " %as.g +connect $1
  773. }
  774. alias as.dm {
  775.   if $did($1,48).text == $null { halt }
  776.   if $as.i(shortnames) == 1 { var %as.ms = $left($as.rc($gettok($did($1,48),2-,32)),20) }
  777.   else { var %as.ms = $as.rc($gettok($did($1,48),2-,32))) }
  778.   return $as.cola([)  $+ $as.colb($gettok($did($1,48),1,32)) $+  $as.cola(]) $as.cola(ping:) $+ $as.colb($did($1,32) $+ ms) $as.cola(map:) $+ $as.colb($did($1,9)) $as.cola(players:) $+ $as.colb($did($1,30)) $&
  779.     $as.cola([) $as.colb($remove(%as.ms,$chr(160))) $as.cola(])
  780. }
  781. alias as.scout {
  782.   if !$1 { halt }
  783.   sockclose ArenaScout
  784.   if $chr(58) isin $1- && $1 != -n { var %as.s = $gettok($1,1,58) $gettok($1,2,58) }
  785.   else { var %as.s = $1 27960 }
  786.   var %as.s = $remove(%as.s,$chr(160))
  787.   if $remove(%as.s,$chr(46),$chr(32)) !isnum { halt }
  788.   if $exists($as.p) {
  789.     var %as.ipcheck = $replace(%as.s,$chr(32),$chr(58))
  790.     if %as.ipcheck != $read($as.p,1) { .remove $as.p }
  791.   }
  792.   arenascout
  793.   set %as.ip $gettok(%as.s,1,32)
  794.   set %as.port $remove($gettok(%as.s,2,32),$chr(160))
  795.   if !%as.port { set %as.port 27960 }
  796.   if $dialog(arenascout) { did -ra arenascout 84 %as.ip $+ : $+ %as.port }
  797.   if $gettok(%as.s,0,32) != 2 { var %as.s = %as.ip %as.port }
  798.   set %as.players 0
  799.   set %as.teamed 0
  800.   set %as.clients ""
  801.   dialog -t arenascout $as.t - Querying server
  802.   set %as.ticks $ticks
  803.   sockudp -k ArenaScout %as.s     getstatus
  804.   .timer_as.timeout 1 1 as.timeout
  805. }
  806. alias as.unload {
  807.   var %as.j = $input(Are you sure you wish to unload ArenaScout?,136)
  808.   if %as.j == $true {
  809.     echo $colour(other) -a *** Unloaded Arena Scout.
  810.     echo $colour(other) -a *** To reload it type /load -rs " $+ $script $+ "
  811.     .timer -m 1 1 .unload -rs $script
  812.   }
  813. }
  814. alias as.serverload {
  815.   did -r arenascout 7,49
  816.   var %x = 0
  817.   while %x < $lines($as.list) {
  818.     inc %x
  819.     var %as.r = $read($as.list(s),n,%x)
  820.     tokenize 32 %as.r
  821.     if á isin $1- { write -l $+ %x $as.list $remove($1-,á) }
  822.     if $len($gettok($1,2,58)) > 5 { write -l $+ %x $as.list $mid($1,1,$calc($len($1) - 1)) }
  823.     var %as.l = $width($1,ms sans serif,11), %as.s = $1 $+ $str($chr(160),$int($calc((114 - %as.l) / 3))) $2-
  824.     if $left(%as.s,1) == $chr(59) { as.d 7,49 // $remove($right(%as.s,$calc($len(%as.s) - 1)),$chr(160)) }
  825.     else { as.d 7,49 %as.s }
  826.   }
  827. }
  828. alias as.w { writeini $as.ini $iif($1 == s,settings $2-,$1-) }
  829. alias as.i { return $readini($as.ini,n,settings,$1-) }
  830. alias as.d { did -a arenascout $1- }
  831. alias as.o { did -o arenascout $1- }
  832. alias as.m { return " $+ $mircdirsystem\multibrowser\mappics\ $+ $1 $+ .jpg $+ " }
  833. alias as.f { return " $+ $scriptdirfriends.as $+ " }
  834. alias as.p { return " $+ $scriptdirplayers.as $+ " }
  835. alias as.l { return " $+ $scriptdirlaunch.as $+ " }
  836. alias as.t { return ArenaScout Q3:A Server Browser by fuel }
  837. alias as.u { did $iif($as.i($1) == 1,-c,-u) arenascout $2- }
  838. alias as.ini { return " $+ $scriptdirarena.ini $+ " }
  839. alias as.e {
  840.   if $1 == 1 { return mIRC's /run command is disabled. In order to $2- you will need enable it. $crlf $crlf $+ To do so click on File -> Options -> General -> Lock and then uncheck /run. }
  841.   if $1 == 2 { return mIRC's /dll command is disabled. In order to parse the information from the id q3 master server you will need enable it. $crlf $crlf $+ To do so click on File -> Options -> General -> Lock and then uncheck /dll. }
  842. }
  843. alias as.c {
  844.   if $group(#as. $+ $1) == on { return $style(1) $1 }
  845.   if !$isalias($1) { return $1 }
  846. }
  847. alias as.nf {
  848.   .disable #as.F1 #as.F2 #as.F3 #as.F4 #as.F5 #as.F6 #as.F7 #as.F8
  849.   .enable #as. $+ $1
  850.   echo $colour(other) -a $timestamp *** ArenaScout has been bound to $1 $+ .
  851. }
  852. alias as.list {
  853.   var %as.l = $scriptdirservers.as
  854.   if $1 == s { return $shortfn(%as.l) }
  855.   else { return " $+ %as.l $+ " }
  856. }
  857. alias as.selectq3 {
  858.   var %as.q3 = $sfile($left($mircdir,3),Browse for your quake 3 executable)
  859.   if %as.q3 {
  860.     writeini $as.ini settings quake3 " $+ %as.q3 $+ "
  861.     did -ra arenascout 67 %as.q3
  862.   }
  863. }
  864. alias as.timeout {
  865.   var %a = arenascout
  866.   sockclose %a
  867.   if !$dialog(%a) { halt }
  868.   dialog -t %a $as.t
  869.   did -ra %a 32 999
  870.   if $as.i(focus) == 1 {
  871.     did -c %a 2
  872.     did -f %a 7
  873.   }
  874.   var %as.s = %as.ip $+ : $+ %as.port, %as.s = $remove(%as.s,$chr(160))
  875.   if %as.s == $chr(58) { var %as.s = $remove($gettok($did(%a,7,1).seltext,1,32),$chr(160)) }
  876.   var %as.st = $did(%a,7).sel
  877.   if $read($as.list(s),sn,%as.s) != $null { var %as.st = $readn }
  878.   else {
  879.     set %as.st $calc($lines($as.list) + 1)
  880.     as.d 7,49 %as.s
  881.   }
  882.   did -c %a 7 %as.st
  883.   var %as.l = $width(%as.s,ms sans serif,11), %as.sv = %as.s $str($chr(160),$int($calc((114 - %as.l) / 3)))
  884.   write -l $+ %as.st $as.list(s) %as.s >> Timed Out
  885.   tokenize 32 $read($as.list(s),%as.st)
  886.   var %as.len = $width($1,ms sans serif,11), %as.sv = $1 $+ $str($chr(160),$int($calc((114 - %as.l) / 3))) >> Timed Out
  887.   as.o 7 %as.st %as.sv
  888.   as.o 49 %as.st %as.sv
  889.   did -c %a 7,49 %as.st
  890.   did -g %a 8 $as.m(_timedout)
  891.   did -ra %a 9 timed out
  892.   did -ra %a 22,23,27,28,30,34,36,38,47,134,135 0
  893.   did -ra %a 40 0/0
  894.   did -ra %a 48 %as.s Timed out
  895.   did -r %a 11,13,15,42
  896.   unset %as.*
  897. }
  898. alias as.rc {
  899.   var %as.n = $replace($1-,^1,,^2,,^3,,^4,,^5,,^6,,^7,,^8,,^9,,^0,,^^0,,^!,,^@,,^#,,^$,,^%,,^&,,^*,,^_,,^-,,^\,,^/,,^=,,^",,^',,^+,,^.,,^+,,^a,,^b,,^c,,^d,,^e,,^f,,^g,,^h,,^i,,^j,,^k,,^l,,^m,,^n,,^o,, $&
  900.     ^p,,^q,,^r,,^s,,^t,,^u,,^v,,^w,,^y,,^z,,^ñ,,^ $+ $chr(40),,^ $+ $chr(41),)
  901.   var %as.n = $strip(%as.n) $+ $chr(160)
  902.   if $did(arenascout,40).text == osp || OSP isincs $did(arenascout,122).text {
  903.     if ^x isin %as.n {
  904.       var %x = 0
  905.       var %as.on = %as.n
  906.       while %x < $len(%as.n) {
  907.         inc %x
  908.         if $mid(%as.on,%x,2) == ^x { var %as.on = $strip($replace(%as.on,$mid(%as.on,%x,8),)) }
  909.         if $mid(%as.on,%x,2) == ^x { var %as.on = $strip($replace(%as.on,$mid(%as.on,%x,8),)) }
  910.       }
  911.       var %as.n = %as.on
  912.     }
  913.   }
  914.   return %as.n
  915. }
  916. alias as.parse {
  917.   var %as.ft = $findtok($2-,$1,1,92), %as.gt = $gettok($2-,$calc(%as.ft + 1),92)
  918.   if $right(%as.gt,2) == ^M { return $left(%as.gt,$calc($len(%as.gt) - 2)) }
  919.   return %as.gt
  920. }
  921. alias as.sortplayers {
  922.   if !$dialog(arenascout) { unset %as.* | halt }
  923.   var %a = arenascout
  924.   did -r %a 11,13,15
  925.   var %x = 0, %as.rtc = $read($as.p,n,2), %as.btc = $read($as.p,3)
  926.   while %x < $gettok(%as.rtc,0,181) {
  927.     inc %x
  928.     var %as.c = $gettok(%as.rtc,%x,181)
  929.     set %as.rtm $addtok(%as.rtm,%as.c,181)
  930.     set %as.btm $remtok(%as.btm,%as.c,1,181)
  931.   }
  932.   var %x = 0
  933.   while %x < $gettok(%as.btc,0,181) {
  934.     inc %x
  935.     var %as.c = $gettok(%as.btc,%x,181)
  936.     set %as.btm $addtok(%as.btm,%as.c,181)
  937.     set %as.rtm $remtok(%as.rtm,%as.c,1,181)
  938.   }
  939.   var %x = 0, %as.p = $gettok(%as.clients,0,181)
  940.   set %as.clients $sorttok(%as.clients,181,nr)
  941.   var %as.rping = 0, %as.bping = 0, %as.rtemp = 0, %as.btemp = 0, %as.rscore = 0, %as.bscore = 0
  942.   while %x < $gettok(%as.clients,0,181) {
  943.     inc %x
  944.     tokenize 182 $gettok(%as.clients,%x,181)
  945.     if $istok(%as.rtm,$3-,181) {
  946.       var %as.icon = <r>á
  947.       inc %as.rping $2
  948.       inc %as.rtemp 1
  949.       inc %as.rscore $1
  950.     }
  951.     elseif $istok(%as.btm,$3-,181) {
  952.       var %as.icon = <b>
  953.       inc %as.bping $2
  954.       inc %as.btemp 1
  955.       inc %as.bscore $1
  956.     }
  957.     else { var %as.icon = <n> }
  958.     as.d 11 %as.icon $3-
  959.     as.d 13 $1
  960.     as.d 15 $2
  961.   }
  962.   var %as.sp = $iif($gettok($did(%a,30).text,0,47) == 3,$did(%a,30).text,$iif(%as.p == $null,0,%as.p) $+ / $+ $did(%a,30).text)
  963.   did -ra %a 30 %as.sp
  964.   var %as.redping_ = $int($calc(%as.rping / %as.rtemp))
  965.   did -ra %a 23 $iif(%as.redping_,%as.redping_,0)
  966.   did -ra %a 134 %as.rtemp
  967.   did -ra %a 135 %as.btemp
  968.   var %as.blueping_ = $int($calc(%as.bping / %as.btemp))
  969.   did -ra %a 28 $iif(%as.blueping_,%as.blueping_,0)
  970.   if $gettok($did(%a,38).text,2,32) !isin (ctf)(ca)(tdm) {
  971.     did -ra %a 22 %as.rscore
  972.     did -ra %a 27 %as.bscore
  973.   }
  974.   unset %as.*
  975. }
  976. alias as.clearcheck {
  977.   var %as.c = $$input(Are you sure you want to clear your entire servers list?,264)
  978.   if %as.c == $true { write -c $as.list }
  979.   as.serverload
  980. }
  981. alias as.addserver {
  982.   if $1 {
  983.     write $as.list $remove($1,$chr(160))
  984.     as.d 7,49 $1
  985.     return
  986.   }
  987.   var %as.as = $remove($$input(Enter the server name and port in this format: 127.0.0.1:27960 or my.q3server.com:27960. You can also enter a comment by starting the line with a semi colon (;) followed by your comment.,1),$chr(124))
  988.   if $left(%as.as,1) == $chr(59) {
  989.     write $as.list $remove(%as.as,$chr(160))
  990.     as.d 7,49 // $right(%as.as,$calc($len(%as.as) - 1))
  991.     halt
  992.   }
  993.   if $remove(%as.as,$chr(46),$chr(58),$chr(32)) !isnum && $chr(46) isin %as.as {
  994.     if $gettok(%as.as,0,58) > 1 { set %as.dns %as.as }
  995.     else { set %as.dns %as.as $+ : $+ 27960 }
  996.     .dns $gettok(%as.dns,1,58)
  997.     halt
  998.   }
  999.   if $remove(%as.as,$chr(46),$chr(58),$chr(32)) isnum {
  1000.     if $chr(58) isin %as.as {
  1001.       if $gettok(%as.as,2,58) isnum {
  1002.         var %as.ap = $gettok(%as.as,2,58)
  1003.         goto ip
  1004.       }
  1005.       else {
  1006.         var %as.ap = 27960
  1007.         goto ip
  1008.       }
  1009.     }
  1010.     if $gettok(%as.as,2,32) != $null && $gettok(%as.as,2,32) isnum { var %as.ap = $gettok(%as.as,2,32), %as.ai = $gettok(%as.as,1,32) }
  1011.     else { var %as.ai = $gettok(%as.as,1,32), %as.ap = 27960 }
  1012.     :ip
  1013.     var %as.ai = $gettok($gettok(%as.as,1,32),1,58)
  1014.     write $as.list %as.ai $+ : $+ %as.ap
  1015.     as.d 7,49 %as.ai $+ : $+ %as.ap
  1016.   }
  1017.   else {
  1018.     var %as.j = $$input(An error has been encountered. Please re-enter what you wish to add.,516)
  1019.     halt
  1020.   }
  1021. }
  1022. alias as.autoscout {
  1023.   if !$dialog(arenascout) {
  1024.     .timer_AS.autoupdate off
  1025.     halt
  1026.   }
  1027.   if $1 { as.scout $1 }
  1028. }
  1029. alias as.friend {
  1030.   if $1 == add {
  1031.     var %as.af = $$input(Enter the users name or part of a name and wildcard $+ $chr(40) $+ s $+ $chr(41) $chr(40) $+ ie: *dna* or fuel $+ $chr(41),129)
  1032.     if %as.af {
  1033.       write $as.f %as.af
  1034.       as.d 70 %as.af
  1035.       did -i arenascout 62 $lines($as.f) %as.af
  1036.       halt
  1037.     }
  1038.     else { halt }
  1039.   }
  1040.   if $1 == del {
  1041.     write -dl $+ $did(arenascout,70,1).sel $as.f
  1042.     did -d arenascout 62,70 $did(arenascout,70,1).sel
  1043.     halt
  1044.   }
  1045.   if $1 == edit {
  1046.     var %as.ef = $$input(Edit your friend's name,129,mIRC,$did(arenascout,70).seltext)
  1047.     if %as.ef {
  1048.       write -l $+ $did(arenascout,70,1).sel $as.f %as.ef
  1049.       as.o 62,70 $did(arenascout,70,1).sel %as.ef
  1050.     }
  1051.   }
  1052.   if $1 == clear {
  1053.     var %as.c = $$input(Are you sure you want to clear your friends list?,136)
  1054.     if %as.c == $true {
  1055.       write -c $as.f
  1056.       did -r arenascout 62,70
  1057.       halt
  1058.     }
  1059.     else { halt }
  1060.   }
  1061.   if $1 == addfromlist {
  1062.     var %as.ef = $$input(Add your friend,129,mIRC,$2-)
  1063.     if %as.ef {
  1064.       write $as.f %as.ef
  1065.       as.d 70 $did(arenascout,70,1).sel %as.ef
  1066.       did -i arenascout 62 $lines($as.f) %as.af
  1067.     }
  1068.   }
  1069. }
  1070. alias as.type {
  1071.   if $2 == asinit { var %as.type = $replace($1,10,cctf,0,ffa,1,tourney,2,single,3,tdm,4,ctf,5,ca,6,null,7,null,8,ra3,9,cs) }
  1072.   elseif $2 == baseq3 || $2 == osp || $2 == cpma || $2 == threewave { var %as.type = $replace($1,10,cctf,0,ffa,1,tourney,2,single,3,tdm,4,ctf,5,ca,9,cs,8,portal) }
  1073.   elseif $2 == arena { var %as.type = $replace($1,8,ra3) }
  1074.   elseif $2 == q3ut2 { var %as.type = $replace($1,0,ffa,1,ffa,2,ffa,3,tdm,4,ts,5,ftl,6,cnh,7,ctf) }
  1075.   else { var %as.type = $replace($1,0,ffa,1,tourney,2,single,3,tdm,4,ctf) }
  1076.   if $3 == b {
  1077.     if %as.type == null { return }
  1078.     return $chr(40) $+ %as.type $+ $chr(41)
  1079.   }
  1080. }
  1081. alias as.massupdateremcheck {
  1082.   var %as.readn = $read($as.list(s),sn,$1)
  1083.   if $readn == $null { halt }
  1084.   if $did(arenascout,101).state == 1 {
  1085.     aline -a @ASm 999 >> $1 >> Timed Out
  1086.   }
  1087.   write -l $+ $readn $as.list(s) $1 >> Timed Out
  1088.   if $did(arenascout,117).state == 1 {
  1089.     write -dl $+ $readn $as.list(s)
  1090.     write $as.list(s) $1 >> Timed Out
  1091.     halt
  1092.   }
  1093.   if $did(arenascout,118).state == 1 { write -dl $+ $readn $as.list(s) }
  1094. }
  1095. alias as.check {
  1096.   if $encode($crc($scriptdirextensions\scout.dll),m) != M0VCNzFFMzc= {
  1097.     echo $colour(other) -a *** The scout.dll crc does not match that of the original scout.dll. It is being removed for your protection.
  1098.     .remove $scriptdirextensions\scout.dll
  1099.   }
  1100.   else return
  1101. }
  1102. alias as.search {
  1103.   set %as.searchmatch $1-
  1104.   var %x = 0
  1105.   while %x < $lines($as.list) {
  1106.     inc %x
  1107.     var %as.qserver = $gettok($gettok($read($as.list,n,%x),1,32),1,58) $gettok($gettok($read($as.list,n,%x),1,32),2,58)
  1108.     if $left(%as.qserver,1) == $chr(59) || %as.qserver == $null { goto n }
  1109.     else {
  1110.       sockudp -k ASsearch $+ %x %as.qserver     getstatus
  1111.       sockmark ASsearch $+ %x ╡
  1112.     }
  1113.     :n
  1114.   }
  1115.   .timer_asresults 1 1 as.searchparse
  1116. }
  1117. alias as.searchparse {
  1118.   if !$dialog(arenascout) { sockclose ASsearch* }
  1119.   var %a = arenascout
  1120.   dialog -t %a $as.t
  1121.   set %as.parsing 1
  1122.   var %x = 0
  1123.   did -r %a 65
  1124.   while %x < $lines($as.list) {
  1125.     inc %x
  1126.     if $left($read($as.list(s),n,%x),1) == $chr(59) { goto n }
  1127.     var %as.sparse = $sock(ASsearch $+ %x).mark
  1128.     if $remove(%as.sparse,$chr(181)) == $null { goto n }
  1129.     if $did(%a,55).state == 1 && $did(%a,56).seltext == empty && $istok(%as.sparse,populated,181) == $false { goto next }
  1130.     if $did(%a,55).state == 1 && $istok(%as.sparse,$did(%a,56).seltext,181) == $false { goto n }
  1131.     :next
  1132.     if $did(%a,57).state == 1 && $istok(%as.sparse,$gettok($did(%a,58).seltext,1,32),181) == $false { goto n }
  1133.     if $did(%a,59).state == 1 && $istok(%as.sparse,$did(%a,60).text,181) == $false { goto n }
  1134.     if $did(%a,61).state == 1 && $istok(%as.sparse,found,181) == $false { goto n }
  1135.     tokenize 32 $read($as.list(s),n,%x)
  1136.     var %as.len = $width($1,ms sans serif,11), %as.serv = $1 $+ $str($chr(160),$int($calc((114 - %as.len) / 3))) $2-
  1137.     as.d 65 %as.serv
  1138.     sockclose ASSearch $+ %x
  1139.     :n
  1140.   }
  1141.   if $did(%a,65).lines == 0 {
  1142.     as.d 65 No matches for: $gettok($replace(%as.searchmatch,$chr(181),$chr(44) $+ $chr(32)),1-4,44) $+ .
  1143.   }
  1144.   unset %as.searchmatch
  1145. }
  1146. alias as.spingtimeout {
  1147.   inc %as_sp_lp 1
  1148.   inc %as_sp_sp 1
  1149.   if %as_sp_sp < 10 {
  1150.     sockclose ASSPing
  1151.     set %as_sping_ping $ticks
  1152.     sockudp -k ASSPing %as_sp_ip %as_sp_pt     getstatus
  1153.     .timer_spingtimeout 1 1 as.spingtimeout
  1154.     halt
  1155.   }
  1156.   elseif %as_sp_sp >= 10 {
  1157.     var %as.flux = $iif(%as_sp_lp == 10,N/A,$calc(%as_sp_f+ - %as_sp_f-) $+ ms), %as.flux = $remove(%as.flux,-)
  1158.     msg %as_sping_chan [  $+ %as_sp_ip $+ : $+ %as_sp_pt $+  ] ping: $+ $iif(%as_sp_rp == 0,N/A,$int($calc(%as_sp_rp / (%as_sp_sp - %as_sp_lp))) $+ ms) flux: $+ %as.flux $&
  1159.       lost: $+ %as_sp_lp $+ / $+ %as_sp_sp $chr(40) $+ $calc(%as_sp_lp / %as_sp_sp * 100) $+ $chr(37) $+ $chr(41) [ ArenaScout ]
  1160.     unset %as_sping_* %as_sp_*
  1161.     sockclose ASSPing
  1162.     .timer_spingtimeout off
  1163.   }
  1164. }
  1165. alias as.cola {
  1166.   var %as.k = $as.i(col1)
  1167.   if %as.k = n || c isin $gettok($chan($active).mode,1,32) { return $1- }
  1168.   else { return  $+ %as.k $+  $+ $1- $+  }
  1169. }
  1170. alias as.colb {
  1171.   var %as.k = $as.i(col2)
  1172.   if %as.k = n || c isin $gettok($chan($active).mode,1,32) { return $1- }
  1173.   else { return  $+ %as.k $+  $+ $1- $+  }
  1174. }
  1175. alias as.mastertimeout {
  1176.   sockclose ASidmaster
  1177.   if !$dialog(arenascout) { halt }
  1178.   did -ra arenascout 98 Error! Connection could not be established.
  1179.   did -b arenascout 100
  1180.   did -e arenascout 101
  1181.   halt
  1182. }
  1183. alias as.sortmaster {
  1184.   did -e arenascout 100,101
  1185.   var %x = 0
  1186.   write -c " $+ $scriptdirmaster.as $+ " 
  1187.   while $findfile($scriptdir,master.m*,0) > 0 {
  1188.     if $exists(%as.m) { .remove %as.m }
  1189.     var %as.m = " $+ $findfile($scriptdir,master.m*,1) $+ "
  1190.     if $exists(%as.m) == $false { break }
  1191.     bread %as.m 23 $lof(%as.m) &as.master
  1192.     var %as.m2 = 0
  1193.     while %as.m2 < $calc($lof(%as.m) - 22) {
  1194.       var %as.m3 = $bvar(&as.master,%as.m2,7).text
  1195.       if $left(%as.m3,1) == $chr(92) && $len(%as.m3) == 7 {
  1196.         var %as.mip = $asc($mid(%as.m3,2,1)) $+ . $+ $asc($mid(%as.m3,3,1)) $+ . $+ $asc($mid(%as.m3,4,1)) $+ . $+ $asc($mid(%as.m3,5,1))
  1197.         var %as.mport = $dll($scriptdirextensions\scout.dll,port,$mid(%as.m3,6,2))
  1198.         var %as.mnew = %as.mip $+ : $+ %as.mport
  1199.         var %as.readn = $read($scriptdirmaster.as,s,%as.mnew)
  1200.         if $left(%as.mport,1) != $chr(45) && $readn == 0 { write " $+ $scriptdirmaster.as $+ " %as.mnew $+ $crlf }
  1201.       }
  1202.       inc %as.m2 7
  1203.     }
  1204.   }
  1205.   var %x = 0
  1206.   did -r arenascout 98
  1207.   while %x < $lines($scriptdirmaster.as) {
  1208.     inc %x
  1209.     as.d 98 $read($scriptdirmaster.as,n,%x)
  1210.   }
  1211.   .remove " $+ $scriptdirmaster.as $+ "
  1212. }
  1213. alias as.master {
  1214.   if $1 == update {
  1215.     if $lock(dll) == $true {
  1216.       .timer -m 1 1 var %as.j = $input($as.e(2),68)
  1217.       halt
  1218.     }
  1219.     did -b arenascout 100,101
  1220.     did -ra arenascout 98 Requesting list from id master server...
  1221.     sockclose ASidmaster
  1222.     sockudp -k ASidmaster 192.246.40.56 27950     getservers 67 empty full
  1223.     sockudp -k ASidmaster 
  1224.     sockmark ASidmaster 1
  1225.     .timer_asmastertimeout 1 5 as.mastertimeout
  1226.   }
  1227.   if $1 == refresh {
  1228.     did -b arenascout 100,101,131,133
  1229.     if $did(arenascout,98).lines < 6 { halt }
  1230.     dialog -t arenascout $as.t - Pinging Servers
  1231.     var %x = 0, %z = 0, %y = 0
  1232.     while %x < $did(arenascout,98).lines {
  1233.       inc %x 10
  1234.       inc %y
  1235.       var %a = 0, %as.msq2 = ""
  1236.       while %a < 10 {
  1237.         inc %z
  1238.         inc %a
  1239.         var %as.msq = %z $+ : $+ $did(arenascout,98,%z).text
  1240.         var %as.msq2 = $addtok(%as.msq2,%as.msq,44)
  1241.       }
  1242.       write " $+ $scriptdirupdate.q $+ " %as.msq2 $+ $crlf
  1243.     }
  1244.     write " $+ $scriptdirupdate.q $+ " as.master uref
  1245.     write " $+ $scriptdirupdate.q $+ " %y
  1246.     .timer_as.update.queue 0 3 as.mqueue
  1247.   }
  1248.   if $1 == uref {
  1249.     if !$dialog(arenascout) {
  1250.       sockclose ASmasterquery*
  1251.       halt
  1252.     }
  1253.     did -e arenascout 101,131,133
  1254.     dialog -t arenascout $as.t
  1255.     sockclose ASmasterquery*
  1256.     did -r arenascout 98
  1257.     var %x = 0
  1258.     while %x < $lines($scriptdirtemp.as) {
  1259.       inc %x
  1260.       as.d 98 $read($scriptdirtemp.as,n,%x)
  1261.     }
  1262.     if !$exists($scriptdirtemp.as) { as.d 98 No matches found. }
  1263.     .remove " $+ $scriptdirtemp.as $+ "
  1264.   }
  1265.   else { halt }
  1266. }
  1267. alias as.mqueue {
  1268.   if $dialog(arenascout) == $null {
  1269.     .timer_as.update.queue off
  1270.     .remove " $+ $scriptdirupdate.q $+ "
  1271.     .remove " $+ $scriptdirtemp.as $+ "
  1272.     halt
  1273.   }
  1274.   var %x = 0
  1275.   if $read($scriptdirupdate.q,n,1) == as.master uref {
  1276.     .timer_as.update.queue off
  1277.     .remove " $+ $scriptdirupdate.q $+ "
  1278.     as.master uref
  1279.     halt
  1280.   }
  1281.   sockclose ASmasterquery*
  1282.   tokenize 44 $read($scriptdirupdate.q,n,1)
  1283.   write -dl1 " $+ $scriptdirupdate.q $+ "
  1284.   while %x < $gettok($1-,0,32) {
  1285.     inc %x 
  1286.     var %as.randomized = %x $+ $rand(a,z) $+ $rand(a,z) $+ $rand(a,z) $+ $rand(0,9) $+ $rand(0,9) $+ $rand(a,z)
  1287.     if $gettok($gettok($1-,%x,32),0,58) > 1 {
  1288.       sockudp -k ASmasterquery $+ %as.randomized $gettok($gettok($1-,%x,32),2,58) $gettok($gettok($1-,%x,32),3,58)     getstatus
  1289.       sockmark ASmasterquery $+ %as.randomized $gettok($gettok($1-,%x,32),1,58) $ticks $gettok($gettok($1-,%x,32),2-,58) 
  1290.     }
  1291.     dialog -t arenascout $as.t - Pinging Servers ( $+ $int($calc(100 - (($lines($scriptdirupdate.q) - 2) / $read($scriptdirupdate.q,n,$lines($scriptdirupdate.q)) * 100))) $+ $chr(37) $+ )
  1292.   }
  1293. }
  1294. alias as.timeparse {
  1295.   if $1 == osp {
  1296.     if Paused isin $4 { return Paused }
  1297.     if Timeout isin $4 { return $remove($lower($4),Timeout: ) pause }
  1298.     if waiting isin $4- { return Waiting }
  1299.     if $2 == 5 && $4 == starting { return Starting }
  1300.     if $2 == 5 { return round $gettok($4-,2-,32) }
  1301.     if OT isincs $3- { return $4 $+ / $+ $3 }
  1302.     if $remove($3,$chr(58)) isnum && $remove($4,$chr(58)) isnum { return $4 $+ / $+ $3 }
  1303.     if $3 isnum { return $3 }
  1304.     else { return unknown }
  1305.   }
  1306.   if OT isincs $3- { return $4 $+ / $+ $3 }
  1307.   if $4- == waiting for players { return Waiting }
  1308.   if $remove($3,:) isnum && $remove($4,:) isnum { return $4 $+ / $+ $3 }
  1309.   if $3 isnum { return $3 }
  1310.   else { return unknown }
  1311. }
  1312. alias as.q3ping {
  1313.   if $gettok($gettok($2,1,58),1-2,46) == 127.0 { halt }
  1314.   unset %as_sping_*
  1315.   set %as_sp_lp 0
  1316.   set %as_sp_rp 0
  1317.   set %as_sp_pt 27960
  1318.   set %as_sp_f+ 0
  1319.   set %as_sp_f- 999
  1320.   set %as_sping_chan %as^temp
  1321.   unset %as^temp
  1322.   set %as_sp_ip $gettok($2,1,58)
  1323.   if $gettok($2,2,58) { set %as_sp_pt $gettok($2,2,58) }
  1324.   elseif $3 isnum { set %as_sp_pt $3 }
  1325.   else { set %as_sp_pt 27960 }
  1326.   if $remove($gettok($gettok($1-,2,32),1,58),.) !isnum {
  1327.     set %as.dnsping . %as_sp_ip %as_sp_pt
  1328.     set %as^temp %as_sping_chan
  1329.     .dns $gettok($gettok(%as.dnsping,2,32),1,58)
  1330.     return
  1331.   }
  1332.   sockudp -k ASsping %as_sp_ip %as_sp_pt     getstatus
  1333.   set %as_sping_ping $ticks
  1334.   .timer_spingtimeout 1 1 as.spingtimeout
  1335.   return
  1336. }
  1337.  
  1338.  
  1339. on *:udpread:ArenaScout {
  1340.   var %as.ping = $remove($calc($ticks - %as.ticks),$chr(45))
  1341.   if $as.i(pingcorrection) == 1 { var %as.ping = $calc(%as.ping - 10) }
  1342.   if $timer(_as.timeout) { .timer_as.timeout off }
  1343.   var %as.udp
  1344.   sockread %as.udp
  1345.   var %a = arenascout
  1346.   if !$dialog(%a) {
  1347.     sockclose %a
  1348.     halt
  1349.   }
  1350.   if $left(%as.udp,4) ==      {
  1351.     dialog -t %a $as.t
  1352.     if $as.i(focus) == 1 {
  1353.       did -c %a 2
  1354.       did -f %a 7
  1355.     }
  1356.     did -ra %a 32 $iif(%as.ping > 999,999,%as.ping)
  1357.     unset %as.ticks
  1358.     .timer -m 1 100 as.sortplayers
  1359.   }
  1360.   if $left(%as.udp,1) == $chr(92) {
  1361.     var %as.server = $sock($sockname).saddr $+ : $+ $sock($sockname).sport, %as.seltemp = $did(%a,7).sel
  1362.     if $remove(%as.server,$chr(58)) == $null { set %as.server $gettok($did(%a,7).seltext,1,32) }
  1363.     if $read($as.list(s),sn,%as.server) != $null { set %as.seltemp $readn }
  1364.     else {
  1365.       set %as.seltemp $calc($lines($as.list) + 1)
  1366.       as.d 7,49 %as.server
  1367.     }
  1368.     did -c %a 7,49 %as.seltemp
  1369.     write -l $+ %as.seltemp $as.list(s) %as.server >> $remove($as.rc($as.parse(sv_hostname,%as.udp)),$chr(160))
  1370.     tokenize 32 $read($as.list(s),n,%as.seltemp)
  1371.     var %as.len = $width($1,ms sans serif,11), %as.serv = $1 $+ $str($chr(160),$int($calc((114 - %as.len) / 3))) >> $remove($as.rc($as.parse(sv_hostname,%as.udp)),$chr(160))
  1372.     as.o 7 %as.seltemp %as.serv
  1373.     as.o 49 %as.seltemp %as.serv
  1374.     did -c %a 7,49 %as.seltemp
  1375.     did -ra %a 40 $as.parse(gamename,%as.udp)
  1376.     did -ra %a 47 $as.parse(g_needpass,%as.udp)
  1377.     did -ra %a 48 %as.server $as.parse(sv_hostname,%as.udp)
  1378.     did -ra %a 122 $iif($istok(%as.udp,gameversion,92),$gettok($as.parse(version,%as.udp),1-2,32) / $as.parse(gameversion,%as.udp),$gettok($as.parse(version,%as.udp),2-,32))
  1379.     if $as.parse(players_red,%as.udp) != $null {
  1380.       set %as.redplayers $as.parse(players_red,%as.udp)
  1381.       set %as.blueplayers $as.parse(players_blue,%as.udp)
  1382.     }
  1383.     did -g %a 8 $iif($exists($as.m($as.parse(mapname,%as.udp))),$as.m($as.parse(mapname,%as.udp)),$as.m(_unknown))
  1384.     did -ra %a 9 $iif($lower($as.parse(mapname,%as.udp)) != gamename,$ifmatch,unknown)
  1385.     did -ra %a 38 $iif($as.parse(g_gametype,%as.udp) isnum,$ifmatch $as.type($as.parse(g_gametype,%as.udp),$did(arenascout,40),b),unknown)
  1386.     did -ra %a 34 $as.timeparse($as.parse(gamename,%as.udp),$as.parse(g_gametype,%as.udp),$as.parse(timelimit,%as.udp),$as.parse(score_time,%as.udp))
  1387.     did -ra %a 36 $iif($as.parse(fraglimit,%as.udp) != $null && $as.parse(fraglimit,%as.udp) isnum,$ifmatch,$iif($as.parse(fraglimit,%as.udp) isnum,$ifmatch,unknown))
  1388.     did -ra %a 30 $iif($as.parse(sv_maxclients,%as.udp) isnum,$ifmatch,unknown) $+ / $+ $iif($as.parse(sv_privateclients,%as.udp) isnum,$ifmatch,??)
  1389.     did -ra %a 22 $iif($as.parse(score_red,%as.udp) isnum,$ifmatch,0)
  1390.     did -ra %a 27 $iif($as.parse(score_blue,%as.udp) isnum,$ifmatch,0)
  1391.     if $did(%a,47) == 1 {
  1392.       if $readini($as.ini,passwords,%as.server) != $null { did -ra %a 42 $ifmatch }
  1393.       else { did -ra %a 42 required }
  1394.     }
  1395.     else { did -r %a 42 }
  1396.     if $readini($as.ini,passwords,%as.server) != $null { did -ra %a 42 $ifmatch }
  1397.     unset %as.ip %as.port
  1398.     did -r %a 11,13,15
  1399.   }
  1400.   if $gettok(%as.udp,1,32) isnum {
  1401.     inc %as.teamed
  1402.     var %as.p = $replace($as.rc($gettok(%as.udp,2,34)),$null,noname,$chr(32),$chr(160))
  1403.     var %as.pl = $gettok($gettok(%as.udp,1,34),1,32) $gettok($gettok(%as.udp,1,34),2,32) $iif(%as.p == $null || %as.p == $chr(160),UnnamedPlayer,%as.p)
  1404.     tokenize 32 %as.pl
  1405.     if $istok(%as.redplayers,%as.teamed,32) { set %as.rtm $addtok(%as.rtm,$3-,181) }
  1406.     if $istok(%as.blueplayers,%as.teamed,32) { set %as.btm $addtok(%as.btm,$3-,181) }
  1407.     var %as.client = $1 $+ $chr(182) $+ $2 $+ $chr(182) $+ $3-
  1408.     set %as.clients $addtok(%as.clients,%as.client,181)
  1409.   }
  1410. }
  1411. on *:udpread:ASsearch* {
  1412.   if !$dialog(arenascout) {
  1413.     sockclose ASsearch*
  1414.     halt
  1415.   }
  1416.   var %a = arenascout
  1417.   if %as.parsing || >> isin $did(%a,65,1).text { return }
  1418.   did -ra %a 65 Reading replies...
  1419.   var %as.sr
  1420.   sockread %as.sr
  1421.   tokenize 181 %as.searchmatch
  1422.   if $left(%as.sr,1) == \ {
  1423.     sockmark $sockname $addtok($sock($sockname).mark,$as.parse(g_gametype,%as.sr),181)
  1424.     sockmark $sockname $addtok($sock($sockname).mark,$as.parse(gamename,%as.sr),181)
  1425.     return
  1426.   }
  1427.   elseif $gettok(%as.sr,1,32) isnum {
  1428.     var %as.k = $len($gettok($dialog(%a).title,9,32))
  1429.     if %as.k == $null { var %as.k = 0 }
  1430.     sockmark $sockname $addtok($sock($sockname).mark,populated,181)
  1431.     dialog -t %a $as.t - Searching $iif(%as.k == 0,.,$iif(%as.k == 1,..,$iif(%as.k == 2,...,$iif(%as.k == 3,$chr(32)))))
  1432.     if $4 != 0 && $istok($sock($sockname).mark,found,181) != $true {
  1433.       if $4- == !áanyáfriend {
  1434.         var %x = 0
  1435.         while %x < $lines($as.f) {
  1436.           inc %x
  1437.           var %as.r = $read($as.f,n,%x) 
  1438.           if %as.r iswm $as.rc($gettok(%as.sr,2,34)) || %as.r == $remove($as.rc($gettok(%as.sr,2,34)),$chr(160)) {
  1439.             sockmark $sockname $addtok($sock($sockname).mark,found,181)
  1440.             .break
  1441.           }
  1442.         }
  1443.         return
  1444.       }
  1445.       else {
  1446.         if $4- iswm $as.rc($gettok(%as.sr,2,34)) || $4- == $remove($as.rc($gettok(%as.sr,2,34)),$chr(160)) { sockmark $sockname $addtok($sock($sockname).mark,found,181) }
  1447.         else { return }
  1448.       }
  1449.     }
  1450.   }
  1451.   else { return }
  1452. }
  1453. on *:udpread:ASsping {
  1454.   var %as_sp
  1455.   sockread %as_sp
  1456.   if $left(%as_sp,4) ==      {
  1457.     .timer_spingtimeout off
  1458.     inc %as_sp_sp 1
  1459.     set %as_sp_rp $calc($ticks - %as_sping_ping + %as_sp_rp)
  1460.     var %as_flx = $calc($ticks - %as_sping_ping)
  1461.     if %as_sp_f+ < %as_flx { set %as_sp_f+ %as_flx }
  1462.     if %as_sp_f- > %as_flx { set %as_sp_f- %as_flx }
  1463.     if $len(%as_flx) > 3 { set %as_sp_f- 999 }
  1464.     if %as_sp_sp < 10 {
  1465.       set %as_sping_ping $ticks
  1466.       sockclose ASsping
  1467.       sockudp -k ASsping %as_sp_ip %as_sp_pt     getstatus
  1468.       .timer_spingtimeout 1 1 as.spingtimeout
  1469.       halt
  1470.     }
  1471.     elseif %as_sp_sp >= 10 { 
  1472.       .timer_spingtimeout off
  1473.       var %as.flux = $iif(%as_sp_lp == 10,N/A,$calc(%as_sp_f+ - %as_sp_f-) $+ ms), %as.flux = $remove(%as.flux,-)
  1474.       msg %as_sping_chan [  $+ %as_sp_ip $+ : $+ %as_sp_pt $+  ] ping: $+ $iif(%as_sp_rp == 0,N/A,$int($calc(%as_sp_rp / (%as_sp_sp - %as_sp_lp))) $+ ms) flux: $+ %as.flux $&
  1475.         lost: $+ %as_sp_lp $+ / $+ %as_sp_sp $chr(40) $+ $calc(%as_sp_lp / %as_sp_sp * 100) $+ $chr(37) $+ $chr(41) [ ArenaScout ]
  1476.       unset %as_sp_* %as_sping_*
  1477.     }
  1478.   }
  1479. }
  1480. on *:udpread:ASidmaster {
  1481.   .timer_asmastertimeout off
  1482.   .timer_asmasterparse off
  1483.   if !$dialog(arenascout) {
  1484.     sockclose ASidmaster
  1485.     halt
  1486.   }
  1487.   did -r arenascout 98
  1488.   as.d 98 á 
  1489.   as.d 98 á
  1490.   as.d 98 á
  1491.   as.d 98 á
  1492.   as.o 98 1 Socket connected $+ $chr(44) receiving data.
  1493.   as.o 98 3 Please be patient while the data is being sorted.
  1494.   as.o 98 4 mIRC will temporarily lock while this is happening.
  1495.   if $sockerr {
  1496.     did -ra arenascout 98 Socket error: $sockerr
  1497.     sockclose $sockname
  1498.     return
  1499.   }
  1500.   var &binvar
  1501.   sockread &binvar
  1502.   var %as.binaryfile = $scriptdirmaster.m $+ $sock($sockname).mark
  1503.   bwrite " $+ %as.binaryfile $+ " -1 -1 $bvar(&binvar,1,8192).text $crlf
  1504.   sockmark $sockname $calc($sock($sockname).mark + 1)
  1505.   .timer_asmasterparse 1 1 as.sortmaster
  1506. }
  1507. on *:udpread:ASmasterquery* {
  1508.   var %as.udp
  1509.   sockread %as.udp
  1510.   if !$dialog(arenascout) {
  1511.     sockclose ASmasterquery*
  1512.     halt
  1513.   }
  1514.   if $left(%as.udp,4) ==      { sockmark $sockname $gettok($sock($sockname).mark,1,32) $remove($calc($ticks - $gettok($sock($sockname).mark,2,32) - 10),$chr(45)) $gettok($sock($sockname).mark,3,32) }
  1515.   if $left(%as.udp,1) == $chr(92) {
  1516.     tokenize 32 $sock($sockname).mark
  1517.     if $2 > 999 { var %as.qmp = 999 }
  1518.     else { var %as.qmp = $2 }
  1519.     if $len(%as.qmp) == 2 { var %as.qmp = 0 $+ %as.qmp }
  1520.     if $len(%as.qmp) == 1 { var %as.qmp = 00 $+ %as.qmp }
  1521.     var %as.len = $width($3,ms sans serif,11), %as.serv = $3 $+ $str($chr(160),$int($calc((114 - %as.len) / 3))) á>> $remove($as.rc($as.parse(sv_hostname,%as.udp)),$chr(160))
  1522.     var %as.len2 = $width(%as.qmp,ms sans serif,11), %as.len3 = $str($chr(160),$int($calc((17 - %as.len2) / 3)))
  1523.     var %a = arenascout
  1524.     if $gettok($did(%a,131).text,1,32) == all || $as.parse(g_gametype,%as.udp) == $gettok($did(%a,131).text,1,32) {
  1525.       if !$did(%a,133).text || $as.parse(gamename,%as.udp) == $did(%a,133).text { write " $+ $scriptdirtemp.as $+ " %as.qmp %as.len3 á>> %as.serv }
  1526.     }
  1527.     sockclose $sockname
  1528.   }
  1529. }
  1530. on *:udpread:ASmassupdate* {
  1531.   if $timer(_as. $+ $sockname ) { .timer_as. $+ $sockname off }
  1532.   var %as.udp_
  1533.   sockread %as.udp_
  1534.   if !$dialog(arenascout) {
  1535.     sockclose ASmassupdate*
  1536.     halt
  1537.   }
  1538.   if $left(%as.udp_,1) == $chr(92) {
  1539.     var %as.s_ = $sock($sockname).saddr $+ : $+ $sock($sockname).sport
  1540.     var %as.j = $read($as.list(s),sn,%as.s_)
  1541.     if $read($as.list(s),sn,%as.s_) != $null { var %as.sl_ = $readn }
  1542.     else {
  1543.       sockclose $sockname
  1544.       halt
  1545.     }
  1546.     var %as._ = %as.s_ >> $remove($as.rc($as.parse(sv_hostname,%as.udp_)),$chr(160))
  1547.     write -l $+ %as.sl_ $as.list %as._
  1548.     tokenize 32 $read($as.list(s),n,%as.sl_)
  1549.     var %as.l_ = $width($1,ms sans serif,11), %as.sv_ = $1 $+ $str($chr(160),$int($calc((114 - %as.l_) / 3))) >> $gettok(%as._,3-,32)
  1550.   }
  1551. }
  1552.  
  1553. #mpp.arenascout off
  1554. on ^*:hotlink:*.*.*.*:* {
  1555.   if $right($gettok($strip($1),1,46),1) isnum && $gettok($strip($1),2,46) isnum 0-255 && $gettok($strip($1),3,46) isnum 0-255 && / !isin $gettok($strip($1),1,46) { return }
  1556.   else { halt }
  1557. }
  1558. on *:hotlink:*.*.*.*:* {
  1559.   if $gettok($strip($1),0,58) == 2 {
  1560.     var %as.t = $gettok($strip($1),1,58) $+ : $+ $left($gettok($strip($1),2,58),5)
  1561.     if $left(%as.t,1) !isnum { var %as.t = $right(%as.t,$calc($len(%as.t) - 1)) }
  1562.     as.scout %as.t
  1563.   }
  1564.   elseif $gettok($strip($1),0,58) > 2 {
  1565.     var %as.t = $gettok($strip($1),3,58) $+ : $+ $left($gettok($strip($1),4,58),5)
  1566.     if $left(%as.t,1) !isnum { var %as.t = $right(%as.t,$calc($len(%as.t) - 1)) }
  1567.     as.scout %as.t
  1568.   }
  1569.   elseif $remove($strip($1),$chr(46)) isnum && $gettok($strip($hotline),$calc($findtok($strip($hotline),$strip($1),1,32) + 1),32) isnum { as.scout $strip($1) $+ : $+ $gettok($strip($hotline),$calc($findtok($strip($hotline),$strip($1),1,32) + 1),32) }
  1570.   else {
  1571.     var %as.t = $strip($1)
  1572.     var %as.t2 = $right($gettok(%as.t,1,46),3) $+ . $+ $gettok(%as.t,2-3,46) $+ . $+ $left($gettok(%as.t,4,46),3)
  1573.     var %as.q = $calc($len(%as.t2) - 1)
  1574.     if $left(%as.t2,1) !isnum { var %as.t2 = $right(%as.t2,%as.q) }
  1575.     if $left(%as.t2,1) !isnum { var %as.t2 = $right(%as.t2,%as.q) }
  1576.     if $right(%as.t2,1) !isnum { var %as.t2 = $left(%as.t2,%as.q) }
  1577.     if $right(%as.t2,1) !isnum { var %as.t2 = $left(%as.t2,%as.q) }
  1578.     as.scout $remove(%as.t2,$chr(58))
  1579.   }
  1580. }
  1581. #mpp.arenascout end
  1582.  
  1583. on ^*:hotlink:*ArenaScout*:* {
  1584.   if $lock(run) == $true { halt }
  1585.   else { return }
  1586. }
  1587. on *:hotlink:*ArenaScout*:* { run http://www.clan-dna.com/fuel/arenascout }
  1588.  
  1589. on *:text:*:# {
  1590.   if ($istok($as.i(ft),$1,44)) && !$2 && (%as-fflood == $null || $as.i(flood) != 0) {
  1591.     if $as.i(follow) == 1 && %as-follow {
  1592.       set %as-fflood 1
  1593.       .timer 1 $r(0,5) describe $chan connected, $duration($calc(($ticks - $gettok(%as-follow,2,32)) / 1000)) ago, to  $+ $gettok(%as-follow,1,32) $+  $gettok(%as-follow,3-,32)
  1594.       if $as.i(flood) == 0 { .timer_as-fflood 1 60 unset %as-fflood }
  1595.     }
  1596.   }
  1597.   if ($1 == -q3ping && $2) || ($1 == $me && $2 == ping && $3) {
  1598.     if %as-fflood != $null && $as.i(flood) != 1 { halt }
  1599.     set %as-fflood 1
  1600.     .timer_as-fflood 1 30 unset %as-fflood
  1601.     if $as.i(sping) != 1 { return }
  1602.     if %as_sp_sp { return }
  1603.     var %as.p = $2-
  1604.     if $1 == $me { tokenize 32 %as.p }
  1605.     set %as^temp $chan
  1606.     if $gettok($2,1,46) isnum 0-255 && $gettok($2,2,46) isnum 0-255 && $gettok($2,3,46) isnum 0-255 {
  1607.       as.q3ping $1-
  1608.       halt
  1609.     }
  1610.     if $gettok($2,0,46) > 1 {
  1611.       as.q3ping $1-
  1612.       halt
  1613.     }
  1614.   }
  1615. }
  1616. on *:input:# {
  1617.   if %as_sp_sp { goto end }
  1618.   if ($1 == -q3ping && $2) || ($1 == $me && $2 == ping && $3) {
  1619.     if $as.i(sping) != 1 { goto end }
  1620.     var %as.sp = $2-
  1621.     if $1 == $me { tokenize 32 %as.sp }
  1622.     set %as^temp $active
  1623.     if $gettok($2,1,46) isnum 0-255 && $gettok($2,2,46) isnum 0-255 && $gettok($2,3,46) isnum 0-255 { as.q3ping $1- | goto end }
  1624.     if $gettok($2,0,46) > 1 { as.q3ping $1- }
  1625.     :end
  1626.   }
  1627. }
  1628.  
  1629. ctcp *:ver510n*:* { .ctcpreply $nick $1 ArenaScout 1.3 by fuel }
  1630.  
  1631. on *:dns {
  1632.   if %as.dns {
  1633.     if $raddress {
  1634.       var %as.dds = $iaddress $+ : $+ $gettok(%as.dns,2,58)
  1635.       write $as.list %as.dds
  1636.       unset %as.dns
  1637.       as.d 7,49 %as.dds
  1638.       var %as.j = $$input(%as.dds has been added to your favorites.,68)
  1639.       halt
  1640.     }
  1641.     else {
  1642.       unset %as.dns
  1643.       var %as.j = $$input(Unable to resolve $naddress,68)
  1644.       halt
  1645.     }
  1646.   }
  1647.   if %as.dnsping {
  1648.     if $raddress {
  1649.       var %as.dnsp2 = $iaddress $+ : $+ $gettok(%as.dnsping,3,32)
  1650.       unset %as.dnsping
  1651.       as.q3ping . %as.dnsp2
  1652.       halt
  1653.     }
  1654.     else {
  1655.       tokenize 32 %as.dnsping
  1656.       msg %as^temp [  $+ $2 $+ : $+ $3 $+  ] Unable to resolve host. [ ArenaScout ]
  1657.       unset %as.dnsping %as^temp
  1658.       halt
  1659.     }
  1660.   }
  1661. }
  1662.  
  1663. #as.F1 off
  1664. alias F1 { arenascout }
  1665. #as.F1 end
  1666. #as.F2 off
  1667. alias F2 { arenascout }
  1668. #as.F2 end
  1669. #as.F3 off
  1670. alias F3 { arenascout }
  1671. #as.F3 end
  1672. #as.F4 off
  1673. alias F4 { arenascout }
  1674. #as.F4 end
  1675. #as.F4 off
  1676. alias F4 { arenascout }
  1677. #as.F4 end
  1678. #as.F5 off
  1679. alias F5 { arenascout }
  1680. #as.F5 end
  1681. #as.F6 off
  1682. alias F6 { arenascout }
  1683. #as.F6 end
  1684. #as.F7 off
  1685. alias F7 { arenascout }
  1686. #as.F7 end
  1687. #as.F8 on
  1688. alias F8 { arenascout }
  1689.