<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://script.quakenet.org/wiki/index.php?action=history&amp;feed=atom&amp;title=IAL-Update</id>
	<title>IAL-Update - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://script.quakenet.org/wiki/index.php?action=history&amp;feed=atom&amp;title=IAL-Update"/>
	<link rel="alternate" type="text/html" href="https://script.quakenet.org/wiki/index.php?title=IAL-Update&amp;action=history"/>
	<updated>2026-05-14T14:24:34Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://script.quakenet.org/wiki/index.php?title=IAL-Update&amp;diff=4336&amp;oldid=prev</id>
		<title>Saturn: scon -at1, not scon -am1</title>
		<link rel="alternate" type="text/html" href="https://script.quakenet.org/wiki/index.php?title=IAL-Update&amp;diff=4336&amp;oldid=prev"/>
		<updated>2006-08-21T17:26:27Z</updated>

		<summary type="html">&lt;p&gt;scon -at1, not scon -am1&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:26, 21 August 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l69&quot;&gt;Line 69:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 69:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; LOAD EVENT ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; LOAD EVENT ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  [[On_load|on *:load:]]{ ![[scon]] -&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;am1 &lt;/del&gt;.!timer $!+ $!cid $!+ .ial-update.update 1 $$delay.who ial-update.update }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  [[On_load|on *:load:]]{ ![[scon]] -&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;at1 &lt;/ins&gt;.!timer $!+ $!cid $!+ .ial-update.update 1 $$delay.who ial-update.update }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS IALUPDATE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS IALUPDATE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  alias ialupdate { !echo -a IAL-update: $ial-update.update }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  alias ialupdate { !echo -a IAL-update: $ial-update.update }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Saturn</name></author>
	</entry>
	<entry>
		<id>https://script.quakenet.org/wiki/index.php?title=IAL-Update&amp;diff=1456&amp;oldid=prev</id>
		<title>Vliedel: bug: $len(%chan) while %chan isn&#039;t used</title>
		<link rel="alternate" type="text/html" href="https://script.quakenet.org/wiki/index.php?title=IAL-Update&amp;diff=1456&amp;oldid=prev"/>
		<updated>2006-08-15T17:40:36Z</updated>

		<summary type="html">&lt;p&gt;bug: $len(%chan) while %chan isn&amp;#039;t used&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:40, 15 August 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l144&quot;&gt;Line 144:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 144:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   ; loop through the channels, as long as %l smaller then $2, increase %l for the length of the  channel&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   ; loop through the channels, as long as %l smaller then $2, increase %l for the length of the  channel&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   while (%x &amp;lt;= $numtok(%c,32)) &amp;amp;&amp;amp; (%l &amp;lt; $2) {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   while (%x &amp;lt;= $numtok(%c,32)) &amp;amp;&amp;amp; (%l &amp;lt; $2) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     !inc %l $len(%&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;chan&lt;/del&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     !inc %l $len&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;($comchan($me,[[$gettok]]&lt;/ins&gt;(%&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;c,%x,32))&lt;/ins&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     ; %l greater then $2, stop the loop&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     ; %l greater then $2, stop the loop&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if (%l &amp;gt; $2) { !break }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if (%l &amp;gt; $2) { !break }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Vliedel</name></author>
	</entry>
	<entry>
		<id>https://script.quakenet.org/wiki/index.php?title=IAL-Update&amp;diff=1454&amp;oldid=prev</id>
		<title>Doomie: added Category:Script_Archive</title>
		<link rel="alternate" type="text/html" href="https://script.quakenet.org/wiki/index.php?title=IAL-Update&amp;diff=1454&amp;oldid=prev"/>
		<updated>2005-11-21T20:37:22Z</updated>

		<summary type="html">&lt;p&gt;added Category:Script_Archive&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:37, 21 November 2005&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l266&quot;&gt;Line 266:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 266:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  [[On_disconnect|on *:disconnect:]]{ if ($hget($+(ial-update.,$cid))) { ![[hfree]] $+(ial-update.,$cid) } }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  [[On_disconnect|on *:disconnect:]]{ if ($hget($+(ial-update.,$cid))) { ![[hfree]] $+(ial-update.,$cid) } }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:IAL]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:IAL&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]][[Category:Script_Archive&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Doomie</name></author>
	</entry>
	<entry>
		<id>https://script.quakenet.org/wiki/index.php?title=IAL-Update&amp;diff=959&amp;oldid=prev</id>
		<title>Doomie at 20:35, 21 November 2005</title>
		<link rel="alternate" type="text/html" href="https://script.quakenet.org/wiki/index.php?title=IAL-Update&amp;diff=959&amp;oldid=prev"/>
		<updated>2005-11-21T20:35:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;To have your [[:Category:IAL|IAL]] always up-to-date, you can use the following script (you can find more detailed explanations in the script).&lt;br /&gt;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IAL-UPDATE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
 ;info:&lt;br /&gt;
 ;&lt;br /&gt;
 ;  by wiebe @ QuakeNet&lt;br /&gt;
 ;  version 1.0  (written and tested on mIRC 6.15)&lt;br /&gt;
 ;&lt;br /&gt;
 ;  last edit: Sun Jun 06 2004&lt;br /&gt;
 ;&lt;br /&gt;
 ;&lt;br /&gt;
 ;What does this script do?&lt;br /&gt;
 ;&lt;br /&gt;
 ;  updates the IAL by doing /who chan1,chan2,chan3 etc&lt;br /&gt;
 ;  if a channel is too big, /who nick1,nick2,nick3 etc is done untill the IAL for the channel is   updated &lt;br /&gt;
 ;  script updates from smallest to the biggest channel&lt;br /&gt;
 ;&lt;br /&gt;
 ;&lt;br /&gt;
 ;How to use this script?&lt;br /&gt;
 ;&lt;br /&gt;
 ;  config the options below&lt;br /&gt;
 ;  /ialupdate can be used to make the script update the IAL without waiting for the timer to  trigger it&lt;br /&gt;
 ;&lt;br /&gt;
 ;&lt;br /&gt;
 ;Why is this script good?&lt;br /&gt;
 ;&lt;br /&gt;
 ;  sending /who chan for every channel is not needed and goes slow (lag)&lt;br /&gt;
 ;  sending /who chan on join may cause Excess Flood or Max sendQ exceeded&lt;br /&gt;
 ;  sending /who chan1,chan2,chan3 can be much faster, but only if there are not too many results  (Max sendQ exceeded) &lt;br /&gt;
 ;&lt;br /&gt;
 ;&lt;br /&gt;
 ;  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS MAX.WHO ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
 [[alias]] -l max.who {&lt;br /&gt;
  ; maximum number of replies in a WHO, too big may cause &amp;#039;Max sendQ exceeded&amp;#039; disconnection&lt;br /&gt;
  ; too low may take the script a long time to update the IAL, 500 or 400 should be fine for most situations&lt;br /&gt;
  ![[return]] 700&lt;br /&gt;
 }&lt;br /&gt;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS LEN.WHO ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
 alias -l len.who {&lt;br /&gt;
  ; maximum length of the /who &amp;lt;string&amp;gt;, too long may cause the server to ignore the command&lt;br /&gt;
  ; too low may slow things down, 400 should be fine in most cases&lt;br /&gt;
  !return 400&lt;br /&gt;
 }&lt;br /&gt;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS DELAY.WHO ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
 alias -l delay.who {&lt;br /&gt;
  ; N seconds after the first join, the script starts to update the IAL&lt;br /&gt;
  !return 120&lt;br /&gt;
 }&lt;br /&gt;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS REPEAT.WHO ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
 alias -l repeat.who {&lt;br /&gt;
  ; wait N seconds after doing /who to do the next check and /who&lt;br /&gt;
  !return 30&lt;br /&gt;
 }&lt;br /&gt;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS SHOW ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
 alias -l show.who {&lt;br /&gt;
  ; set this to 1 if you want the script to echo when the IAL is updated&lt;br /&gt;
  ; shows number of opers, number of users that are away, number of users that are deaf (+d),&lt;br /&gt;
  ; number of users that have fake host (+x)&lt;br /&gt;
  ; may slow things down, needs some checks / loops etc&lt;br /&gt;
  ; only shows when a whole channel is being who&amp;#039;d&lt;br /&gt;
  !return 1&lt;br /&gt;
 }&lt;br /&gt;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; JOIN EVENT ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
 on *:join:#:{&lt;br /&gt;
  ; we join, IAL not updated, timer does not run, start a timer&lt;br /&gt;
  [[if]] ([[$nick]] == [[$me]]) &amp;amp;&amp;amp; (![[$timer]]([[DollarPlus|$+]]([[$cid]],.ial-update.update))) {&lt;br /&gt;
    .![[timer]] $+ $cid $+ .ial-update.update 1 $$delay.who ial-update.update&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; LOAD EVENT ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
 [[On_load|on *:load:]]{ ![[scon]] -am1 .!timer $!+ $!cid $!+ .ial-update.update 1 $$delay.who ial-update.update }&lt;br /&gt;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS IALUPDATE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
 alias ialupdate { !echo -a IAL-update: $ial-update.update }&lt;br /&gt;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS IAL-UPDATE.UPDATE   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
 alias -l ial-update.update {&lt;br /&gt;
  !var %c, %n&lt;br /&gt;
  ; IAL is set on&lt;br /&gt;
  if ($ial) {&lt;br /&gt;
    ; hash table does not exist, set a var with the channels we need to who&lt;br /&gt;
    if (![[$hget]]($+(ial-update.,$cid))) { ![[var]] %c = $ial-update.chan($max.who,$len.who)&lt;br /&gt;
      ; something is in there, send it to the hash alias, send the who request&lt;br /&gt;
      if (%c) { ial-update.hash %c | .!quote WHO %c }&lt;br /&gt;
      ; else no channels to who, set a var with the nicks we need to who&lt;br /&gt;
      else { !var %n = $ial-update.nick($max.who,$len.who)&lt;br /&gt;
        ; something is in there, send it to the hash alias, send the who request&lt;br /&gt;
        if (%n) { ial-update.hash %n | .!quote WHO %n  }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    ; we did a who or the hash table was not empty, start a timer to run this alias again&lt;br /&gt;
    if (%c) || (%n) || ($hget($+(ial-update.,$cid))) {&lt;br /&gt;
      .!timer $+ $cid $+ .ial-update.update 1 $$repeat.who ial-update.update&lt;br /&gt;
    }&lt;br /&gt;
    ; return some info&lt;br /&gt;
    if (%c) || (%n) { !return updating }&lt;br /&gt;
    elseif ($hget($+(ial-update.,$cid))) { !return already in progress }&lt;br /&gt;
    else { !return nothing to update }&lt;br /&gt;
  }&lt;br /&gt;
  ; ial is off return some info&lt;br /&gt;
  else { !return ERROR, IAL is turned off, /IAL on to enable }&lt;br /&gt;
 }&lt;br /&gt;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS IAL-UPDATE.SORT  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
 ; $ial-update.sort&lt;br /&gt;
 ; sorts channels where the IAL is not updated&lt;br /&gt;
 ; &amp;lt;number of nicks&amp;gt;.&amp;lt;channel number&amp;gt;&lt;br /&gt;
 ; 127.1 &amp;lt;= means 127 users on channel 1&lt;br /&gt;
 alias -l ial-update.sort {&lt;br /&gt;
  !var %x = 1, %c&lt;br /&gt;
   ; loop through all common channels that we have with ourself&lt;br /&gt;
  ; $chan(0) returns the number of open channel windows,&lt;br /&gt;
  ; which does not mean you are on it (&amp;quot;keep channels open&amp;quot; option)&lt;br /&gt;
  [[while]] (%x &amp;lt;= $comchan($me,0)) {&lt;br /&gt;
    ; check if the ial is not updated or busy, add it to a var&lt;br /&gt;
    if ([[$chan]]($comchan($me,%x)).ial == [[$false]]) { !var %c =  [[$addtok]](%c,$+($nick([[$comchan]]($me,%x),0),.,%x),32) }&lt;br /&gt;
    !inc %x&lt;br /&gt;
  }&lt;br /&gt;
  ; return it sorted&lt;br /&gt;
  !return [[$sorttok]](%c,32,n)&lt;br /&gt;
 }&lt;br /&gt;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS IAL-UPDATE.MAX ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
 ; $ial-update.max(N)&lt;br /&gt;
 ; N maximum number of nicks to request at once&lt;br /&gt;
 ; this alias returns the channels to ial based on the info provided by $ial-update.sort&lt;br /&gt;
 ; #chan1,#chan2,#chan3&lt;br /&gt;
 alias -l ial-update.max {&lt;br /&gt;
  !var %x = 1, %t = 0, %c = $ial-update.sort, %w&lt;br /&gt;
  ; loop through the channels and as long as %t smaller then $1, increase %t&lt;br /&gt;
  while (%x &amp;lt;= [[$numtok]](%c,32)) &amp;amp;&amp;amp; (%t &amp;lt; $1) {&lt;br /&gt;
    !inc %t $gettok($gettok(%c,%x,32),1,46)&lt;br /&gt;
    ; if %t is greater then $1, stop the loop&lt;br /&gt;
    if (%t &amp;gt; $1) { !break }&lt;br /&gt;
    ; add it to a var&lt;br /&gt;
    !var %w = $addtok(%w,$gettok($gettok(%c,%x,32),2,46),32)&lt;br /&gt;
    !inc %x&lt;br /&gt;
  }&lt;br /&gt;
  !return %w&lt;br /&gt;
 }&lt;br /&gt;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS IAL-UPDATE.CHAN ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
 ; $ial-update.chan(N,L)&lt;br /&gt;
 ; N maximum number of nicks to request at once&lt;br /&gt;
 ; L maximum length of the WHO request&lt;br /&gt;
 ; this alias is used to WHO channels&lt;br /&gt;
 alias -l ial-update.chan {&lt;br /&gt;
  !var %x = 1, %l = 0, %c = $ial-update.max($1), %w&lt;br /&gt;
  ; loop through the channels, as long as %l smaller then $2, increase %l for the length of the  channel&lt;br /&gt;
  while (%x &amp;lt;= $numtok(%c,32)) &amp;amp;&amp;amp; (%l &amp;lt; $2) {&lt;br /&gt;
    !inc %l $len(%chan)&lt;br /&gt;
    ; %l greater then $2, stop the loop&lt;br /&gt;
    if (%l &amp;gt; $2) { !break }&lt;br /&gt;
    ; add it to the var&lt;br /&gt;
    !var %w = $addtok(%w,$comchan($me,[[$gettok]](%c,%x,32)),44)&lt;br /&gt;
    !inc %x&lt;br /&gt;
  }&lt;br /&gt;
  !return %w&lt;br /&gt;
 }&lt;br /&gt;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS IAL-UPDATE.NICK ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
 ; $ial-update.nick(N,L)&lt;br /&gt;
 ; N maximum number of nicks to request at once&lt;br /&gt;
 ; L maximum length of the WHO request&lt;br /&gt;
 ; this alias is used to WHO nicks&lt;br /&gt;
 alias -l ial-update.nick {&lt;br /&gt;
  !var %x = 1&lt;br /&gt;
  ; loop through the channels untill we found one where the IAL isnt updated&lt;br /&gt;
  while ($chan($comchan($me,%x)).ial != $false) &amp;amp;&amp;amp; (%x &amp;lt;= $comchan($me,0)) {&lt;br /&gt;
    ![[inc]] %x&lt;br /&gt;
  }&lt;br /&gt;
  ; ial is not updated, set vars&lt;br /&gt;
  if ($chan($comchan($me,%x)).ial == $false) { !var %y = 1, %t = 0, %l = 0, %w&lt;br /&gt;
    ; loop &lt;br /&gt;
    while (%t &amp;lt;= $1) &amp;amp;&amp;amp; (%l &amp;lt; $2) &amp;amp;&amp;amp; (%y &amp;lt;= $nick($comchan($me,%x),0)) {&lt;br /&gt;
      ; ial for that nick isnt updated, increase %l&lt;br /&gt;
      if (!$ial($nick($comchan($me,%x),%y))) {&lt;br /&gt;
        !inc %l $len($nick($comchan($me,%x),%y))&lt;br /&gt;
        ; if greater then $2, stop the loop&lt;br /&gt;
        if (%l &amp;gt; $2) { !break }&lt;br /&gt;
        ; add it to the var&lt;br /&gt;
        !var %w = $addtok(%w,$nick($comchan($me,%x),%y),44)&lt;br /&gt;
      }&lt;br /&gt;
      !inc %y&lt;br /&gt;
    }&lt;br /&gt;
    !return %w&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS IAL-UPDATE.HASH ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
 ; /ial-update.hash &amp;lt;things&amp;gt; -remove&lt;br /&gt;
 alias -l ial-update.hash {&lt;br /&gt;
  ; $2 is not there, set a var&lt;br /&gt;
  if ($2 == $null) { !var %x = $numtok($1,44)&lt;br /&gt;
    ; loop through each part seperated with a comma, add it to a hash table&lt;br /&gt;
    while (%x) { !hadd -m $+(ial-update.,$cid) $gettok($1,%x,44) 1 | !dec %x }&lt;br /&gt;
    ; add mask&lt;br /&gt;
    !hadd -m $+(ial-update.,$cid) -mask $1&lt;br /&gt;
  }&lt;br /&gt;
  ; $2 is -remove, set a var&lt;br /&gt;
  elseif ($2 == -remove) { !var %x = $numtok($1,44)&lt;br /&gt;
    ; loop through each part seperated with a comma, remove it from the hash table&lt;br /&gt;
    while (%x) { if ($hget($+(ial-update.,$cid))) { !hdel $+(ial-update.,$cid) $gettok($1,%x,44) } | !dec %x }&lt;br /&gt;
    ; del mask&lt;br /&gt;
    !hdel $+(ial-update.,$cid) -mask&lt;br /&gt;
    ; check hash table, free hash table&lt;br /&gt;
    if ($hget($+(ial-update.,$cid),0).item == 0) &amp;amp;&amp;amp; ($hget($+(ial-update.,$cid))) { !hfree $+(ial-update.,$cid) }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RAW 352 WHO ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
 ; 352 &amp;lt;you&amp;gt; &amp;lt;channel&amp;gt; &amp;lt;user&amp;gt; &amp;lt;host&amp;gt; &amp;lt;server&amp;gt; &amp;lt;nick&amp;gt; &amp;lt;flags&amp;gt; :&amp;lt;distance&amp;gt; &amp;lt;realname&amp;gt;&lt;br /&gt;
 [[Raw_352|raw 352]]:&amp;amp; &amp;amp; &amp;amp; &amp;amp; &amp;amp; &amp;amp; &amp;amp; &amp;amp; *: {&lt;br /&gt;
  ; chan or nick are in the hash table&lt;br /&gt;
  if ($hget($+(ial-update.,$cid),$2)) || ($hget($+(ial-update.,$cid),$6)) {&lt;br /&gt;
    ; check setting, set a var&lt;br /&gt;
    if ($show.who == 1) &amp;amp;&amp;amp; ($hget($+(ial-update.,$cid),$2)) &amp;amp;&amp;amp; ($comchan($6,0)) { !var %x = $comchan($6,0)&lt;br /&gt;
      ; loop, set a var&lt;br /&gt;
      while (%x) { !var %c = $comchan($6,%x)&lt;br /&gt;
        ; check has table&lt;br /&gt;
        if ($hget($+(ial-update.,$cid),%c)) {&lt;br /&gt;
          ; * meaning oper isin $7, increase&lt;br /&gt;
          if (* isin $7) { !hinc $+(ial-update.,$cid) $+(%c,$chr(44),oper) }&lt;br /&gt;
          ; G meaning Gone isin $7, increase&lt;br /&gt;
          if (G isincs $7) { !hinc $+(ial-update.,$cid) $+(%c,$chr(44),away) }&lt;br /&gt;
          ; d meaning deaf isin $7, increase&lt;br /&gt;
          if (d isincs $7) { !hinc $+(ial-update.,$cid) $+(%c,$chr(44),deaf) }&lt;br /&gt;
          ; x meaning fake host isin $7, increase&lt;br /&gt;
          if (x isincs $7) { !hinc $+(ial-update.,$cid) $+(%c,$chr(44),xhost) }&lt;br /&gt;
        }&lt;br /&gt;
        !dec %x&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    ; stop mirc from showing this raw&lt;br /&gt;
    ![[haltdef]]&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RAW 315 WHO END ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
 ; raw 315 &amp;lt;you&amp;gt; &amp;lt;requested&amp;gt; :End of /who list.&lt;br /&gt;
 [[Raw_315|raw 315]]:&amp;amp; &amp;amp; end of /WHO list.: {&lt;br /&gt;
  ; check -mask in hash table&lt;br /&gt;
  if ($hget($+(ial-update.,$cid),-mask) == $2) {&lt;br /&gt;
    ; check setting, set a var&lt;br /&gt;
    if ($show.who == 1) { !var %x = $numtok($2,44)&lt;br /&gt;
      ; loop, we are on the channel, set var&lt;br /&gt;
      while (%x) { if ($me ison $gettok($2,%x,44)) { !var %c = $gettok($2,%x,44)&lt;br /&gt;
          ; oper info&lt;br /&gt;
          !var %oper = $iif($hget($+(ial-update.,$cid),$+(%c,$chr(44),oper)),$ifmatch,0)&lt;br /&gt;
          !var %oper = %oper / $round($calc(%oper / $nick(%c,0) * 100),1) $+ % Oper&lt;br /&gt;
          ; away info&lt;br /&gt;
          !var %away = $iif($hget($+(ial-update.,$cid),$+(%c,$chr(44),away)),$ifmatch,0)&lt;br /&gt;
          !var %away = %away / $round($calc(%away / $nick(%c,0) * 100),1) $+ % Away&lt;br /&gt;
          ; deaf info&lt;br /&gt;
          !var %deaf = $iif($hget($+(ial-update.,$cid),$+(%c,$chr(44),deaf)),$ifmatch,0)&lt;br /&gt;
          !var %deaf = %deaf / $round($calc(%deaf / $nick(%c,0) * 100),1) $+ % deaf&lt;br /&gt;
          ; xhost info&lt;br /&gt;
          !var %xhost = $iif($hget($+(ial-update.,$cid),$+(%c,$chr(44),xhost)),$ifmatch,0)&lt;br /&gt;
          !var %xhost = %xhost / $round($calc(%xhost / $nick(%c,0) * 100),1) $+ % x-host&lt;br /&gt;
          ; echo&lt;br /&gt;
          !echo -t $gettok($2,%x,44) * IAL updated ( $+ %oper ---- %away ---- %deaf ---- %xhost $+ )&lt;br /&gt;
        }&lt;br /&gt;
        ; remove from hash table&lt;br /&gt;
        ![[hdel]] $+(ial-update.,$cid) $+(%c,$chr(44),oper) | !hdel $+(ial-update.,$cid) $+(%c,$chr(44),away)&lt;br /&gt;
        !hdel $+(ial-update.,$cid) $+(%c,$chr(44),deaf) | !hdel $+(ial-update.,$cid) $+(%c,$chr(44),xhost)&lt;br /&gt;
        !dec %x&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    ; remove the items from the hash table&lt;br /&gt;
    ial-update.hash $2 -remove&lt;br /&gt;
    !haltdef&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DISCONNECT EVENT ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
 [[On_disconnect|on *:disconnect:]]{ if ($hget($+(ial-update.,$cid))) { ![[hfree]] $+(ial-update.,$cid) } }&lt;br /&gt;
&lt;br /&gt;
[[Category:IAL]]&lt;/div&gt;</summary>
		<author><name>Doomie</name></author>
	</entry>
</feed>