Ase Filter For Reserved Slots
verbose
Join Date: 2002-11-25 Member: 9968Members, Constellation
<div class="IPBDescription">colorize servers that are "full"</div> Here's my ASE (<a href='http://udpsoft.com/eye/' target='_blank'>The All-Seeing Eye</a>) filter to colorize servers that are actually full due to reserved slots, but appear as "not full" according to players/max_players:
<!--c1--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>CODE</b> </td></tr><tr><td id='CODE'><!--ec1-->10 if admin_mod_version > "2" goto 100
20 if clanmod_version > "1" goto 200
30 if nsa_gamename ~== "NSAdmin" goto 300
40 if clients >= maxclients remove
50 keep
100 if public_slots_free > "0" keep
110 remove
200 if cm_publicslotsleft > "0" keep
210 remove
300 if nsa_public_slots > "0" keep
310 remove
<!--c2--></td></tr></table><span class='postcolor'><!--ec2-->(Handles AdminMod, ClanMod, and Voogru's NSAdmin)
(*Edit* I posted a version later in this thread that also works with AMXMod)
Create a new filter with that as the contents. Name it whatever you want; I use "HL no public slots". Check "modifier" in the lower-left (this controls checkbox-filter vs. folder-filter). Hit "OK". Now, you can either check the box next to the filter name, and it will filter all servers that are "full" out of your normal listing, or you can make a "color filter" out of it.
To make it a color filter:
uncheck it
right-click it and select "Make color filter"
Select the "Name" column for what will be altered, and pick a nice contrasting color.
Select "Unless" Server passes this filter.
Now it will color all servers that are full. Handy in combination with your Favorites list.
Be warned: ASE seems to update the player count more freqeuntly than it reads the server vars, so sometimes you'll need to rescan a server for the coloring to be current.
<!--c1--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>CODE</b> </td></tr><tr><td id='CODE'><!--ec1-->10 if admin_mod_version > "2" goto 100
20 if clanmod_version > "1" goto 200
30 if nsa_gamename ~== "NSAdmin" goto 300
40 if clients >= maxclients remove
50 keep
100 if public_slots_free > "0" keep
110 remove
200 if cm_publicslotsleft > "0" keep
210 remove
300 if nsa_public_slots > "0" keep
310 remove
<!--c2--></td></tr></table><span class='postcolor'><!--ec2-->(Handles AdminMod, ClanMod, and Voogru's NSAdmin)
(*Edit* I posted a version later in this thread that also works with AMXMod)
Create a new filter with that as the contents. Name it whatever you want; I use "HL no public slots". Check "modifier" in the lower-left (this controls checkbox-filter vs. folder-filter). Hit "OK". Now, you can either check the box next to the filter name, and it will filter all servers that are "full" out of your normal listing, or you can make a "color filter" out of it.
To make it a color filter:
uncheck it
right-click it and select "Make color filter"
Select the "Name" column for what will be altered, and pick a nice contrasting color.
Select "Unless" Server passes this filter.
Now it will color all servers that are full. Handy in combination with your Favorites list.
Be warned: ASE seems to update the player count more freqeuntly than it reads the server vars, so sometimes you'll need to rescan a server for the coloring to be current.
Comments
Clanmod servers really **** me off when they have tons of reserved slots.
When you create a filter, it should show up inside the "My Filters" folder. Make sure you set the filter type (bottom left corner of filter edit window) to "modifier". Make sure that the filter is then unchecked (in the main filter window) and follow my instructions to make it a color filter. As a color filter, it will apply itself to all server categories. Just select your "Favorites 4" folder, and if the filter was created correctly, full servers will be colored differently.
We all know that people are gonna constantly ask
"where's that ASE filters topic"
I have a question : Since I often pick servers for me and my friends to play on, some of them connects and run into reserved slots thing. Is it possible to make a filter to insure that there is, let say, at least 3 free slots ? Would it look like that ?
<!--c1--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>CODE</b> </td></tr><tr><td id='CODE'><!--ec1-->10 if admin_mod_version > "2" goto 100
20 if clanmod_version > "1" goto 200
30 if nsa_gamename ~== "NSAdmin" goto 300
40 if clients >= maxclients remove
50 keep
100 if public_slots_free > "2" keep
110 remove
200 if cm_publicslotsleft > "2" keep
210 remove
300 if nsa_public_slots > "2" keep
310 remove
<!--c2--></td></tr></table><span class='postcolor'><!--ec2-->
Please light me up on this, and 101 more thanks to you !!! <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html/emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif'><!--endemo-->
It would partially work. It'd work perfectly on AdminMod, ClanMod, and NSAdmin servers, but it wouldn't mark an unmodified server correctly; you'd have to verify available slots by hand. If ASE supported basic arithmetic in filters, you could change line 40 to:
<!--c1--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>CODE</b> </td></tr><tr><td id='CODE'><!--ec1-->if (maxclients - clients) < "3" remove<!--c2--></td></tr></table><span class='postcolor'><!--ec2-->
but it doesn't. You can fake it with a lot of GOTOs though, with something like this:
<!--c1--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>CODE</b> </td></tr><tr><td id='CODE'><!--ec1-->40 if maxclients == "16" goto 400
41 if maxclients == "17" goto 410
42 if maxclients == "18" goto 420
...
400 if clients > "13" remove
401 keep
410 if clients > "14" remove
411 keep
420 if clients > "15" remove
421 keep<!--c2--></td></tr></table><span class='postcolor'><!--ec2-->
Hrm...based on that theory, I should be able to get a filter working for AMX mod using amx_real_res_slots. It'll be a mighty long filter...need to sleep first, then I'll write it.
<ul><li>Only servers hosting 6 to 32 max players have their reserved slots figured in.
<li>If a server has 6 or more reserved slots, the calculations assume 6 reserved slots (to save lines of code).</ul>Even with those conditions, the code still comes to about 300 lines!
<!--c1--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>CODE</b> </td></tr><tr><td id='CODE'><!--ec1-->10 if admin_mod_version > "2" goto 100
20 if clanmod_version > "1" goto 200
30 if nsa_gamename ~== "NSAdmin" goto 300
40 if clients >= maxclients remove
50 if amx_version > "0" goto 400
60 keep
100 if public_slots_free > "0" keep
110 remove
200 if cm_publicslotsleft > "0" keep
210 remove
300 if nsa_public_slots > "0" keep
310 remove
400 if maxclients == "6" goto 600
401 if maxclients == "7" goto 700
402 if maxclients == "8" goto 800
403 if maxclients == "9" goto 900
404 if maxclients == "10" goto 1000
405 if maxclients == "11" goto 1100
406 if maxclients == "12" goto 1200
407 if maxclients == "13" goto 1300
408 if maxclients == "14" goto 1400
409 if maxclients == "15" goto 1500
410 if maxclients == "16" goto 1600
411 if maxclients == "17" goto 1700
412 if maxclients == "18" goto 1800
413 if maxclients == "19" goto 1900
414 if maxclients == "20" goto 2000
415 if maxclients == "21" goto 2100
416 if maxclients == "22" goto 2200
417 if maxclients == "23" goto 2300
418 if maxclients == "24" goto 2400
419 if maxclients == "25" goto 2500
420 if maxclients == "26" goto 2600
421 if maxclients == "27" goto 2700
422 if maxclients == "28" goto 2800
423 if maxclients == "29" goto 2900
424 if maxclients == "30" goto 3000
425 if maxclients == "31" goto 3100
426 if maxclients == "32" goto 3200
450 keep
600 if amx_real_res_slots > "4" goto 5010
601 if amx_real_res_slots > "3" goto 5020
602 if amx_real_res_slots > "2" goto 5030
603 if amx_real_res_slots > "1" goto 5040
604 if amx_real_res_slots > "0" goto 5050
606 keep
700 if amx_real_res_slots > "5" goto 5010
701 if amx_real_res_slots > "4" goto 5020
702 if amx_real_res_slots > "3" goto 5030
703 if amx_real_res_slots > "2" goto 5040
704 if amx_real_res_slots > "1" goto 5050
705 if amx_real_res_slots > "0" goto 5060
706 keep
800 if amx_real_res_slots > "5" goto 5020
801 if amx_real_res_slots > "4" goto 5030
802 if amx_real_res_slots > "3" goto 5040
803 if amx_real_res_slots > "2" goto 5050
804 if amx_real_res_slots > "1" goto 5060
805 if amx_real_res_slots > "0" goto 5070
806 keep
900 if amx_real_res_slots > "5" goto 5030
901 if amx_real_res_slots > "4" goto 5040
902 if amx_real_res_slots > "3" goto 5050
903 if amx_real_res_slots > "2" goto 5060
904 if amx_real_res_slots > "1" goto 5070
905 if amx_real_res_slots > "0" goto 5080
906 keep
1000 if amx_real_res_slots > "5" goto 5040
1001 if amx_real_res_slots > "4" goto 5050
1002 if amx_real_res_slots > "3" goto 5060
1003 if amx_real_res_slots > "2" goto 5070
1004 if amx_real_res_slots > "1" goto 5080
1005 if amx_real_res_slots > "0" goto 5090
1006 keep
1100 if amx_real_res_slots > "5" goto 5050
1101 if amx_real_res_slots > "4" goto 5060
1102 if amx_real_res_slots > "3" goto 5070
1103 if amx_real_res_slots > "2" goto 5080
1104 if amx_real_res_slots > "1" goto 5090
1105 if amx_real_res_slots > "0" goto 5100
1106 keep
1200 if amx_real_res_slots > "5" goto 5060
1201 if amx_real_res_slots > "4" goto 5070
1202 if amx_real_res_slots > "3" goto 5080
1203 if amx_real_res_slots > "2" goto 5090
1204 if amx_real_res_slots > "1" goto 5100
1205 if amx_real_res_slots > "0" goto 5110
1206 keep
1300 if amx_real_res_slots > "5" goto 5070
1301 if amx_real_res_slots > "4" goto 5080
1302 if amx_real_res_slots > "3" goto 5090
1303 if amx_real_res_slots > "2" goto 5100
1304 if amx_real_res_slots > "1" goto 5110
1305 if amx_real_res_slots > "0" goto 5120
1306 keep
1400 if amx_real_res_slots > "5" goto 5080
1401 if amx_real_res_slots > "4" goto 5090
1402 if amx_real_res_slots > "3" goto 5100
1403 if amx_real_res_slots > "2" goto 5110
1404 if amx_real_res_slots > "1" goto 5120
1405 if amx_real_res_slots > "0" goto 5130
1406 keep
1500 if amx_real_res_slots > "5" goto 5090
1501 if amx_real_res_slots > "4" goto 5100
1502 if amx_real_res_slots > "3" goto 5110
1503 if amx_real_res_slots > "2" goto 5120
1504 if amx_real_res_slots > "1" goto 5130
1505 if amx_real_res_slots > "0" goto 5140
1506 keep
1600 if amx_real_res_slots > "5" goto 5100
1601 if amx_real_res_slots > "4" goto 5110
1602 if amx_real_res_slots > "3" goto 5120
1603 if amx_real_res_slots > "2" goto 5130
1604 if amx_real_res_slots > "1" goto 5140
1605 if amx_real_res_slots > "0" goto 5150
1606 keep
1700 if amx_real_res_slots > "5" goto 5110
1701 if amx_real_res_slots > "4" goto 5120
1702 if amx_real_res_slots > "3" goto 5130
1703 if amx_real_res_slots > "2" goto 5140
1704 if amx_real_res_slots > "1" goto 5150
1705 if amx_real_res_slots > "0" goto 5160
1706 keep
1800 if amx_real_res_slots > "5" goto 5120
1801 if amx_real_res_slots > "4" goto 5130
1802 if amx_real_res_slots > "3" goto 5140
1803 if amx_real_res_slots > "2" goto 5150
1804 if amx_real_res_slots > "1" goto 5160
1805 if amx_real_res_slots > "0" goto 5170
1806 keep
1900 if amx_real_res_slots > "5" goto 5130
1901 if amx_real_res_slots > "4" goto 5140
1902 if amx_real_res_slots > "3" goto 5150
1903 if amx_real_res_slots > "2" goto 5160
1904 if amx_real_res_slots > "1" goto 5170
1905 if amx_real_res_slots > "0" goto 5180
1906 keep
2000 if amx_real_res_slots > "5" goto 5140
2001 if amx_real_res_slots > "4" goto 5150
2002 if amx_real_res_slots > "3" goto 5160
2003 if amx_real_res_slots > "2" goto 5170
2004 if amx_real_res_slots > "1" goto 5180
2005 if amx_real_res_slots > "0" goto 5190
2006 keep
2100 if amx_real_res_slots > "5" goto 5150
2101 if amx_real_res_slots > "4" goto 5160
2102 if amx_real_res_slots > "3" goto 5170
2103 if amx_real_res_slots > "2" goto 5180
2104 if amx_real_res_slots > "1" goto 5190
2105 if amx_real_res_slots > "0" goto 5200
2106 keep
2200 if amx_real_res_slots > "5" goto 5160
2201 if amx_real_res_slots > "4" goto 5170
2202 if amx_real_res_slots > "3" goto 5180
2203 if amx_real_res_slots > "2" goto 5190
2204 if amx_real_res_slots > "1" goto 5200
2205 if amx_real_res_slots > "0" goto 5210
2206 keep
2300 if amx_real_res_slots > "5" goto 5170
2301 if amx_real_res_slots > "4" goto 5180
2302 if amx_real_res_slots > "3" goto 5190
2303 if amx_real_res_slots > "2" goto 5200
2304 if amx_real_res_slots > "1" goto 5210
2305 if amx_real_res_slots > "0" goto 5220
2306 keep
2400 if amx_real_res_slots > "5" goto 5180
2401 if amx_real_res_slots > "4" goto 5190
2402 if amx_real_res_slots > "3" goto 5200
2403 if amx_real_res_slots > "2" goto 5210
2404 if amx_real_res_slots > "1" goto 5220
2405 if amx_real_res_slots > "0" goto 5230
2406 keep
2500 if amx_real_res_slots > "5" goto 5190
2501 if amx_real_res_slots > "4" goto 5200
2502 if amx_real_res_slots > "3" goto 5210
2503 if amx_real_res_slots > "2" goto 5220
2504 if amx_real_res_slots > "1" goto 5230
2505 if amx_real_res_slots > "0" goto 5240
2506 keep
2600 if amx_real_res_slots > "5" goto 5200
2601 if amx_real_res_slots > "4" goto 5210
2602 if amx_real_res_slots > "3" goto 5220
2603 if amx_real_res_slots > "2" goto 5230
2604 if amx_real_res_slots > "1" goto 5240
2605 if amx_real_res_slots > "0" goto 5250
2606 keep
2700 if amx_real_res_slots > "5" goto 5210
2701 if amx_real_res_slots > "4" goto 5220
2702 if amx_real_res_slots > "3" goto 5230
2703 if amx_real_res_slots > "2" goto 5240
2704 if amx_real_res_slots > "1" goto 5250
2705 if amx_real_res_slots > "0" goto 5260
2706 keep
2800 if amx_real_res_slots > "5" goto 5220
2801 if amx_real_res_slots > "4" goto 5230
2802 if amx_real_res_slots > "3" goto 5240
2803 if amx_real_res_slots > "2" goto 5250
2804 if amx_real_res_slots > "1" goto 5260
2805 if amx_real_res_slots > "0" goto 5270
2806 keep
2900 if amx_real_res_slots > "5" goto 5230
2901 if amx_real_res_slots > "4" goto 5240
2902 if amx_real_res_slots > "3" goto 5250
2903 if amx_real_res_slots > "2" goto 5260
2904 if amx_real_res_slots > "1" goto 5270
2905 if amx_real_res_slots > "0" goto 5280
2906 keep
3000 if amx_real_res_slots > "5" goto 5240
3001 if amx_real_res_slots > "4" goto 5250
3002 if amx_real_res_slots > "3" goto 5260
3003 if amx_real_res_slots > "2" goto 5270
3004 if amx_real_res_slots > "1" goto 5280
3005 if amx_real_res_slots > "0" goto 5290
3006 keep
3100 if amx_real_res_slots > "5" goto 5250
3101 if amx_real_res_slots > "4" goto 5260
3102 if amx_real_res_slots > "3" goto 5270
3103 if amx_real_res_slots > "2" goto 5280
3104 if amx_real_res_slots > "1" goto 5290
3105 if amx_real_res_slots > "0" goto 5300
3106 keep
3200 if amx_real_res_slots > "5" goto 5260
3201 if amx_real_res_slots > "4" goto 5270
3202 if amx_real_res_slots > "3" goto 5280
3203 if amx_real_res_slots > "2" goto 5290
3204 if amx_real_res_slots > "1" goto 5300
3205 if amx_real_res_slots > "0" goto 5310
3206 keep
5010 if clients < "1" keep
5011 remove
5020 if clients < "2" keep
5021 remove
5030 if clients < "3" keep
5031 remove
5040 if clients < "4" keep
5041 remove
5050 if clients < "5" keep
5051 remove
5060 if clients < "6" keep
5061 remove
5070 if clients < "7" keep
5071 remove
5080 if clients < "8" keep
5081 remove
5090 if clients < "9" keep
5091 remove
5100 if clients < "10" keep
5101 remove
5110 if clients < "11" keep
5111 remove
5120 if clients < "12" keep
5121 remove
5130 if clients < "13" keep
5131 remove
5140 if clients < "14" keep
5141 remove
5150 if clients < "15" keep
5151 remove
5160 if clients < "16" keep
5161 remove
5170 if clients < "17" keep
5171 remove
5180 if clients < "18" keep
5181 remove
5190 if clients < "19" keep
5191 remove
5200 if clients < "20" keep
5201 remove
5210 if clients < "21" keep
5211 remove
5220 if clients < "22" keep
5221 remove
5230 if clients < "23" keep
5231 remove
5240 if clients < "24" keep
5241 remove
5250 if clients < "25" keep
5251 remove
5260 if clients < "26" keep
5261 remove
5270 if clients < "27" keep
5271 remove
5280 if clients < "28" keep
5281 remove
5290 if clients < "29" keep
5291 remove
5300 if clients < "30" keep
5301 remove
5310 if clients < "31" keep
5311 remove
5320 if clients < "32" keep
5321 remove<!--c2--></td></tr></table><span class='postcolor'><!--ec2-->