Advanced Scripting Tips — File Browser

AdvancedScriptingTipsv1.0 / AdvancedScriptingTipsv1.0 / Advanced Scripting Tips.htm

Advanced Scripting Tips.htm — 135.83 KB — Download this file

<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns:st1="urn:schemas-microsoft-com:office:smarttags"
xmlns="http://www.w3.org/TR/REC-html40">
<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 10">
<meta name=Originator content="Microsoft Word 10">
<link rel=File-List href="Advanced%20Scripting%20Tips.files/filelist.xml">
<title>Adcanced Scripting Tips</title>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="City"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="place"/>
<!--[if gte mso 9]><xml>
 <o:DocumentProperties>
  <o:Subject>Advanced scripting</o:Subject>
  <o:Author>Yochai Timmer</o:Author>
  <o:LastAuthor>Yochai Timmer</o:LastAuthor>
  <o:Revision>21</o:Revision>
  <o:TotalTime>119</o:TotalTime>
  <o:Created>2005-04-17T21:12:00Z</o:Created>
  <o:LastSaved>2005-05-03T18:39:00Z</o:LastSaved>
  <o:Pages>1</o:Pages>
  <o:Words>3103</o:Words>
  <o:Characters>15515</o:Characters>
  <o:Category>mIRC scripting</o:Category>
  <o:Company>Dorot</o:Company>
  <o:Lines>129</o:Lines>
  <o:Paragraphs>37</o:Paragraphs>
  <o:CharactersWithSpaces>18581</o:CharactersWithSpaces>
  <o:Version>10.3501</o:Version>
 </o:DocumentProperties>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:Zoom>90</w:Zoom>
  <w:SpellingState>Clean</w:SpellingState>
  <w:GrammarState>Clean</w:GrammarState>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]--><!--[if !mso]><object
 classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui></object>
<style>
st1\:*{behavior:url(#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	text-align:right;
	mso-pagination:widow-orphan;
	direction:rtl;
	unicode-bidi:embed;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
span.postbody1
	{mso-style-name:postbody1;
	mso-ansi-font-size:10.0pt;
	mso-bidi-font-size:10.0pt;}
span.SpellE
	{mso-style-name:"";
	mso-spl-e:yes;}
span.GramE
	{mso-style-name:"";
	mso-gram-e:yes;}
@page Section1
	{size:595.3pt 841.9pt;
	margin:1.0in 1.25in 1.0in 1.25in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;
	mso-gutter-direction:rtl;}
div.Section1
	{page:Section1;}
-->
</style>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"\05D8\05D1\05DC\05D4 \05E8\05D2\05D9\05DC\05D4";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";}
table.a
	{mso-style-name:"èáìä øâéìä";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";}
</style>
<![endif]--><!--[if gte mso 9]><xml>
 <u1:DocumentProperties>
  <u1:Subject>Scripting tips</u1:Subject>
  <u1:Author>Yochai Timmer</u1:Author>
  <u1:LastAuthor>Yochai Timmer</u1:LastAuthor>
  <u1:Revision>17</u1:Revision>
  <u1:TotalTime>234</u1:TotalTime>
  <u1:Created>2005-04-04T12:48:00Z</u1:Created>
  <u1:LastSaved>2005-04-05T23:12:00Z</u1:LastSaved>
  <u1:Pages>1</u1:Pages>
  <u1:Words>2193</u1:Words>
  <u1:Characters>10967</u1:Characters>
  <u1:Company>Dorot</u1:Company>
  <u1:Lines>91</u1:Lines>
  <u1:Paragraphs>26</u1:Paragraphs>
  <u1:CharactersWithSpaces>13134</u1:CharactersWithSpaces>
  <u1:Version>10.3501</u1:Version>
 </u1:DocumentProperties>
</xml><![endif]-->
<meta http-equiv=Content-Language content=en-us>
</head>

<body lang=EN-US style='tab-interval:.5in'>

<div class=Section1 dir=RTL>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'>I decided to make a little tip collection for everyone out there who
wants to script better.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'>This isn't a tutorial for <span class=SpellE>newbies</span> because I
didn't explain all the commands I've used here; and don't intend to.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'>If you want to have a script that works better, here are some tips to
improve its performance.<o:p></o:p></p>

<p class=MsoNormal align=center dir=LTR style='text-align:center;direction:
ltr;unicode-bidi:embed'><b><i><span style='font-size:14.0pt'><u2:p>&nbsp;</u2:p></span></i></b></p>

<p class=MsoNormal align=center dir=LTR style='text-align:center;direction:
ltr;unicode-bidi:embed'><b><i><u><span style='font-size:14.0pt'>Neat Scripting<u2:p></u2:p></span></u></i></b><o:p></o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><u2:p>&nbsp;</u2:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'>The first step is to learn how to write the script correctly and
efficiently.<o:p></o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><u2:p>&nbsp;</u2:p></p>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>* Don't use excessive Braces { } where you don't need them,
and you only need them when there's more then one line in the command.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span>The <span
class=GramE>{ Brace</span> means &quot;Begin&quot; and the } Brace means
&quot;End&quot; so if there's only one line to the event or command, you don't
need to give the script a beginning and end command.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span>For example: </p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='color:red'>ON</span> *<span class=GramE>:text</span>:*:*:
{ <span style='color:red'>if</span> (<span style='color:#339966'>$nick</span> <span
style='color:fuchsia'>=</span> Blah) { do something here } }</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>Which the scrip reads like this: <span
style='color:red'>ON</span> *<span class=GramE>:text</span>:*:*: <span
style='color:blue'>Begin-event</span> <span style='color:red'>if</span> (<span
style='color:#339966'>$nick</span> <span style='color:fuchsia'>= </span>Blah) <span
style='color:#3366FF'>Begin-if</span><span style='color:blue'> </span>do
something here <span style='color:blue'>End-if </span><span style='color:#3366FF'>End-event</span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>So as you see, you don't need to tell it where to
begin and end if there's only one line.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>So this would better:</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='color:red'>ON</span> *<span class=GramE>:text</span>:*:*:
<span style='color:red'>if</span> (<span style='color:#339966'>$nick</span> <span
style='color:fuchsia'>=</span> Blah) do something here </p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>Now besides the fact that it's useless to put
excessive Braces, they all use more CPU.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>That's because the <span class=GramE>{ Begin</span>
Brace is actually a command that calls a procedure to check for the } End Brace
(and run all the commands between of course).</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>It doesn't take a lot of CPU of course, but it's about
the same amount as calling an alias (see &quot;Saving CPU/memory usage&quot;).</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><o:p>&nbsp;</o:p></p>

</div>

</div>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><u2:p>&nbsp;</u2:p></p>

<div style='border:double windowtext 1.5pt;padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>* If you are making aliases that call stuff
so you want have to write a lot of code, then do it right.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  
</span>Here's an example from an MDX tutorial I've read somewhere:</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span class=GramE>alias</span> <span
style='color:fuchsia'>-l </span><span class=SpellE>mdx</span> {<span
style='color:red'> return </span><span style='color:#339966'>$+</span>(&quot;,<span
style='color:#339966'>$scriptdir</span>,mdx.dll,&quot;) }</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span class=GramE>alias</span> <span
style='color:fuchsia'>-l </span>Views {<span style='color:red'> return </span><span
style='color:#339966'>$+</span>(<span style='color:#339966'>$<span
class=SpellE>scriptdir<span style='color:windowtext'>,Views.mdx</span></span></span>)
}</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span class=SpellE><span class=GramE><span
style='color:red'>dll</span></span></span> <span style='color:#339966'>$<span
class=SpellE>mdx</span></span> <span class=SpellE>SetControlMDX</span> Dialog
ID <span class=SpellE>ListView</span> Style &gt; <span style='color:#339966'>$views</span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>Now as you can see in the end you
still have to use the /<span class=SpellE>dll</span> command with both aliases,
and add the &gt; prefix there.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>So if you think about it, you could
add these commands to your aliases and make them call each <span class=GramE>other
:</span> </p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='color:black'>Alias</span><span
style='color:fuchsia'> -l </span><span class=SpellE>mdx</span> <span
class=GramE>{ <span class=SpellE><span style='color:red'>dll</span></span></span>
<span style='color:#339966'>$+</span>(&quot;,<span style='color:#339966'>$scriptdir</span>,mdx.dll,&quot;)
<span style='color:#339966'>$1-</span> }</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>Alias <span style='color:fuchsia'>-l </span>views
<span class=GramE>{ <span class=SpellE><span style='color:red'>mdx</span></span></span>
<span style='color:#339966'>$1-</span> &gt; <span style='color:#339966'>$+</span>(<span
style='color:#339966'>$<span class=SpellE>scriptdir<span style='color:windowtext'>,views.mdx</span></span></span>)
}</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span class=GramE><span
style='color:red'>views</span></span> <span class=SpellE>SetControlMDX</span>
Dialog ID <span class=SpellE>ListView</span> Style</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>This way you can save yourself a lot
of writing, and it will look more organized.<span lang=HE dir=RTL><o:p></o:p></span></p>

</div>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><span lang=HE dir=RTL><o:p>&nbsp;</o:p></span></p>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span>* One $+ is
enough, looks much better and you can add whatever you want with a <span
class=GramE>comma :</span><span lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span><span
style='mso-spacerun:yes'>   </span><span class=GramE><span style='color:red'>notice</span></span>
<span style='color:#339966'>$nick</span> &lt;&gt; Account created: ftp:// <span
style='color:#339966'>$+</span> <span style='color:#339966'>$nick $+</span> : <span
style='color:#339966'>$+ $<span class=SpellE>iif</span></span>(<span
style='color:#339966'>$2</span>,<span style='color:#339966'>$2</span>,<span
style='color:blue'>%ftp.defaultpass</span>) <span style='color:#339966'>$+</span>
@ <span style='color:#339966'>$+</span> <span style='color:blue'>%<span
class=SpellE>ftp.server</span> </span><span style='color:#339966'>$+</span> : <span
style='color:#339966'>$+</span> <span style='color:blue'>%<span class=SpellE>ftp.port</span>
</span><span style='color:#339966'>$+</span> / &lt;&gt;<span lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span><span
style='mso-spacerun:yes'>   </span><span style='color:red'>notice</span> <span
style='color:#339966'>$nick</span> &lt;&gt; Account created: <span
style='color:#339966'>$+</span>(ftp://,<span style='color:#339966'>$nick</span>,:,<span
style='color:#339966'>$iif</span>(<span style='color:#339966'>$2</span>,<span
style='color:#339966'>$2</span>,<span style='color:blue'>%ftp.defaultpass</span>),@
,<span style='color:blue'>%<span class=SpellE>ftp.server<span style='color:
windowtext'>,:,</span>%ftp.port</span></span>,/ &lt;&gt;)<o:p></o:p></p>

</div>

</div>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><u2:p>&nbsp;</u2:p></p>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>* Use %<span class=SpellE>vars</span> that have
meaning, so you can return after a few weeks and remember what each %<span
class=SpellE>var</span> contains.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span>Look at the
next tip for a good example… Why not call that %cc variable %<span class=GramE>result
?</span> <span class=GramE>or</span> just %channels ?<span lang=HE dir=RTL><o:p></o:p></span></p>

</div>

</div>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><u2:p><span dir=LTR></span><span dir=LTR></span>&nbsp;</u2:p><span
lang=HE dir=RTL><o:p></o:p></span></p>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span>* Don't use
the | <span class=GramE>separator !</span> It can get very confusing if you<span
class=GramE>&nbsp; look</span> back at the script a month from now. Every
command should have its own line:</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span><span
style='color:red'><span style='mso-spacerun:yes'> </span>Alias</span> com-<span
class=SpellE>chan</span> { <span style='color:red'>if</span> (<span
style='color:#339966'>$1</span>) { <span class=SpellE><span style='color:red'>var</span></span>
<span style='color:blue'>%a</span> <span style='color:fuchsia'>=</span> <span
style='color:#339966'>$<span class=SpellE>comchan</span></span>(<span
style='color:#339966'>$1</span>,0) | <span style='color:red'>if</span> (<span
style='color:blue'>%a</span> <span style='color:fuchsia'>&gt;</span> 0) { <span
style='color:red'>while</span> (<span style='color:#339966'>$<span
class=SpellE>comchan</span></span>(<span style='color:#339966'>$1</span>,<span
style='color:blue'>%a</span>)) { .<span class=SpellE><span style='color:red'>var</span></span>
<span style='color:blue'>%cc</span> <span style='color:fuchsia'>=</span> <span
style='color:#339966'>$<span class=SpellE>addtok</span></span>(<span
style='color:blue'>%cc</span>, <span style='color:#339966'>$comchan</span>(<span
style='color:#339966'>$1</span>,<span style='color:blue'>%a</span>), 44) | <span
class=SpellE><span style='color:red'>dec</span></span> <span style='color:blue'>%a</span>
} <span style='color:red'>echo</span> <span style='color:#339966'>$nick</span>
Common Channels: <span style='color:blue'>%cc</span> } } | <span
style='color:red'>else</span> { <span style='color:red'>return</span> } }<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-bidi-font-size:14.0pt'><span
style='mso-spacerun:yes'>   </span>This looks like a mess, and in a few weeks
it will be pretty hard to follow.<u2:p></u2:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-bidi-font-size:14.0pt'><span
style='mso-spacerun:yes'>   </span>Here's a better way of scripting it:<u2:p></u2:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-bidi-font-size:14.0pt;color:red'>Alias</span><span
style='mso-bidi-font-size:14.0pt'> </span>com-<span class=SpellE>chan</span> {<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='color:red'><span
style='mso-spacerun:yes'>  </span><span class=GramE>if</span></span> (<span
style='color:#339966'>$1</span>) {</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span><span
style='color:red'><span style='mso-spacerun:yes'>  </span><span class=SpellE><span
class=GramE>var</span></span></span> <span style='color:blue'>%a</span> <span
style='color:fuchsia'>=</span> <span style='color:#339966'>$<span class=SpellE>comchan</span></span>(<span
style='color:#339966'>$1</span>,0)<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>    </span><span
style='color:red'>If</span> (<span style='color:blue'>%a</span> <span
style='color:fuchsia'>&gt;</span> 0) {<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='font-size:14.0pt'><span
style='mso-spacerun:yes'>    </span></span><span style='color:red'><span
style='mso-spacerun:yes'>  </span><span class=GramE>while</span></span> (<span
style='color:#339966'>$<span class=SpellE>comchan</span></span>(<span
style='color:#339966'>$1</span>,<span style='color:blue'>%a</span>))<span
style='font-size:14.0pt'> </span>{<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>        </span><span
class=SpellE><span class=GramE><span style='color:red'>var</span></span></span>
<span style='color:blue'>%cc</span> <span style='color:fuchsia'>=</span> <span
style='color:#339966'>$<span class=SpellE>addtok</span></span>(<span
style='color:blue'>%cc</span>, <span style='color:#339966'>$comchan</span>(<span
style='color:#339966'>$1</span>,<span style='color:blue'>%a</span>), 44)<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='font-size:14.0pt'><span
style='mso-spacerun:yes'>      </span></span><span style='color:red'><span
style='mso-spacerun:yes'>  </span><span class=SpellE><span class=GramE>dec</span></span></span>
<span style='color:blue'>%a</span><o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>      </span>}</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>      </span><span
class=GramE><span style='color:red'>echo</span></span> <span style='color:#339966'>$nick</span>
Common Channels: <span style='color:blue'>%cc</span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>    </span>}</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span>}</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span><span
class=GramE><span style='color:red'>else</span></span> { <span
style='color:red'>return</span> }</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>}</p>

</div>

</div>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><span style='mso-spacerun:yes'>                   </span></p>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>* Don't use generalized events like ON *<span
class=GramE>:text</span>:*:*: if you don't have to. Try to at least pin point
it to specific match text or location like ON *<span class=GramE>:text</span>:*:?:</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span>It's a waste
of resources for the event to work and process its lines, where there's no
chance for it to work.<o:p></o:p></p>

</div>

</div>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><u2:p>&nbsp;</u2:p></p>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>* Use the level prefixes to prevent events from
working where they're not needed:</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'> </span><span
style='mso-spacerun:yes'> </span><span style='color:red'>On</span> <span
style='color:fuchsia'>me:</span>*<span class=GramE>:Join</span>:*: Echo –a This
works when you join any channel</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'> </span><span
style='color:red'><span style='mso-spacerun:yes'> </span><span class=GramE>On <span
style='color:fuchsia'>!</span></span></span>*:Join:*: Echo –a This works when
anyone but you joins the channel</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'> </span><span
style='color:red'><span style='mso-spacerun:yes'> </span>On </span><span
style='color:fuchsia'>@</span>*<span class=GramE>:Join</span>:*: Echo –a This
works when you're <span class=SpellE>oped</span> on the channel someone just
joined.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'> </span>Just remember
that Events work like If-Else statements, if you have more then one event of
the same type in the same file, the script will run through them by their
order, and if the first event triggers, it will halt all other events of the
same type.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'> </span><span
style='mso-spacerun:yes'> </span><span style='color:red'>On</span> *<span
class=GramE>:text</span>:*:*: echo –a <span class=SpellE>yeap</span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='color:red'><span
style='mso-spacerun:yes'> </span><span style='mso-spacerun:yes'> </span>On </span>*<span
class=GramE>:text</span>:*check*:*: echo –a test</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'> </span>The second
event won't run even if the word &quot;Check&quot; is in the line. But if the
second line would come first:</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='color:red'><span
style='mso-spacerun:yes'> </span><span style='mso-spacerun:yes'> </span>On</span>
*<span class=GramE>:text</span>:*check*:*: echo –a test</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='color:red'><span
style='mso-spacerun:yes'> </span><span style='mso-spacerun:yes'> </span>On </span>*<span
class=GramE>:text</span>:*:*: echo –a <span class=SpellE>yeap</span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'> </span>The second event
will trigger if the word &quot;Check&quot; doesn't appear in the text.</p>

</div>

</div>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'>&nbsp;</u2:p></p>

<div style='border:double windowtext 1.5pt;padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>* Keep your script organized. Keep
event types and aliases together, and try to sort on a way that you will
remember, I would suggest alphabetical order.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'> 
</span>The order in a script is very important for you to keep track of what's
going on while the script gets bigger and messier.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  
</span><span class=GramE>Using ;Comments</span> is a good advice to help you
read the script.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  
</span>For example:<o:p></o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><u2:p>&nbsp;</u2:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='mso-spacerun:yes'> </span><span class=GramE>;Raw</span><u2:p></u2:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='mso-spacerun:yes'> </span><span class=GramE>raw</span> *:*: echo -s
$numeric $1-<span style='mso-spacerun:yes'>  </span><o:p></o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><u2:p>&nbsp;</u2:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='mso-spacerun:yes'> </span><span lang=ES style='mso-ansi-language:ES'>;CTCP<u2:p></u2:p><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span lang=ES style='mso-ansi-language:
ES'><span style='mso-spacerun:yes'> </span>ctcp *:*:*: Echo -a CTCP $1-<o:p></o:p></span></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span lang=ES style='mso-ansi-language:
ES'><u2:p>&nbsp;</u2:p><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span lang=ES style='mso-ansi-language:
ES'><span style='mso-spacerun:yes'> </span></span><span class=GramE>;Events</span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='mso-spacerun:yes'> </span><span class=GramE>on</span> *:<span
class=SpellE>conenct</span>:<u2:p></u2:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='mso-spacerun:yes'> </span><span class=GramE>on</span> *:kick:#:</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='mso-spacerun:yes'> </span><span class=GramE>on</span> *:open:?:</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='mso-spacerun:yes'> </span><span class=GramE>on</span> *:text:*:*:</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='mso-spacerun:yes'> </span><span class=GramE>on</span> *:quit:<o:p></o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><u2:p>&nbsp;</u2:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='mso-spacerun:yes'> </span><span class=GramE>;Dialogs</span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='mso-spacerun:yes'> </span><span class=GramE>;Dialog</span> Test</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='mso-spacerun:yes'> </span>Dialog Test {<o:p></o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><u2:p>&nbsp;</u2:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='mso-spacerun:yes'> </span>}</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='mso-spacerun:yes'> </span><span class=GramE>on</span> *:<span
class=SpellE>dialog:Test:init</span>:*:</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='mso-spacerun:yes'> </span><span class=GramE>on</span>
*:dialog:Test:iclose:*:</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='mso-spacerun:yes'> </span><span class=GramE>on</span> *:<span
class=SpellE>dialog:Test:sclick</span>:*:<o:p></o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><u2:p>&nbsp;</u2:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='mso-spacerun:yes'> </span><span class=GramE>;Aliases</span> <o:p></o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><u2:p>&nbsp;</u2:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='mso-spacerun:yes'> </span>Alias –l Blah</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='mso-spacerun:yes'> </span>Alias –l Something</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='mso-spacerun:yes'> </span>Alias –l Test<o:p></o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><u2:p>&nbsp;</u2:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'> 
</span>You see, it can look a lot nicer, and you will be able to go through
your script easily even while it bigger and bigger.<o:p></o:p></p>

</div>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><u2:p>&nbsp;</u2:p></p>

<p class=MsoNormal align=center dir=LTR style='text-align:center;direction:
ltr;unicode-bidi:embed'><span class=SpellE><b><i><u><span style='font-size:
14.0pt'>Addon</span></u></i></b></span><b><i><u><span style='font-size:14.0pt'>
Tips<u2:p></u2:p></span></u></i></b><o:p></o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><u2:p>&nbsp;</u2:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'>When you make an <span class=SpellE>addon</span>, remember that there
are probably other scripts loaded. You need to follow some simple rules, so it
won't interfere with the other scripts.<o:p></o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><u2:p>&nbsp;</u2:p></p>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>* Try to avoid using the /halt command in your custom
aliases.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span>The /halt command
will not only halt the current alias, but the entire parent event that called
it.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span>Unless you
know what you're doing, and you really intend to stop all the processes of that
event, just use /return command instead.</p>

</div>

</div>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'>&nbsp;</p>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>* You can try using <span class=GramE>the !</span> <span
class=GramE>prefix</span> when calling a default command to make sure it calls <span
class=SpellE>mIRC's</span> default command and not an alias:</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span>For example: </p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span><span
style='color:fuchsia'>!</span><span style='color:red'>join</span> #channel</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span><span
style='color:fuchsia'>!</span><span style='color:red'>notice</span> Nick blah<o:p></o:p></p>

</div>

</div>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><u2:p>&nbsp;</u2:p></p>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>* Use only local variables with the /<span
class=SpellE>var</span> command instead of /set or just %<span class=SpellE>var</span>
= value.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span>Remember that
if the user has a full script,<span class=GramE>&nbsp; it</span> might have
used most of the common variable names you would like to use.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span>Because of
this, remember to create the variable before you do a Boolean check on it,
example:</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span><span
style='color:red'><span style='mso-spacerun:yes'> </span>Alias</span> Blah {</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>     </span><span
class=SpellE><span style='color:red'>Var</span></span> <span style='color:blue'>%check</span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>     </span><span
style='color:red'>If</span> (<span style='color:#339966'>$1</span> <span
style='color:fuchsia'>=</span> blah) <span class=SpellE>var</span> <span
style='color:blue'>%blah</span> = <span class=SpellE>yeap</span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>     </span><span
style='color:red'>If</span> (<span class=GramE><span style='color:fuchsia'>!</span><span
style='color:blue'>%</span></span><span style='color:blue'>check</span>) <span
style='color:red'>return</span> nope</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>     </span><span
style='color:red'>Else</span> <span class=SpellE>yeap</span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span>}</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span>You can see
here: the variable %blah in the beginning, so the script will use this local
variable. If I didn't set it up, and $1 wasn't equal to &quot;blah&quot; it
would have checked if there's a global variable called %check.<o:p></o:p></p>

</div>

</div>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><u2:p>&nbsp;</u2:p></p>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>* If you want to set any global setting that will be
saved for further use, then you can always use .<span class=SpellE>ini</span>
files, to store data, and Hash tables, if it's only temporary.<o:p></o:p></p>

</div>

</div>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><u2:p>&nbsp;</u2:p><o:p></o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><u2:p>&nbsp;</u2:p></p>

<p class=MsoNormal align=center dir=LTR style='text-align:center;direction:
ltr;unicode-bidi:embed'><b><i><u><span style='font-size:14.0pt'>Saving CPU/
Memory usage<u2:p></u2:p></span></u></i></b><o:p></o:p></p>

<p class=MsoNormal align=center dir=LTR style='text-align:center;direction:
ltr;unicode-bidi:embed'><b><i><span style='font-size:14.0pt'><u2:p>&nbsp;</u2:p></span></i></b></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'>Saving CPU and memory usage is only relevant when you have really long
loops, or have events that you know that are going process a lot of data, like
ON TEXT events.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'>You won't notice most of these tips if you don't have any time consuming
loops or events.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'>The best way to check <span class=GramE>yourself</span>, is to make a
loop that will repeat itself about 10000 times, and in it try all sorts of ways
to do what you want, and then see how many ticks it takes for the loop to
finish. Ex:</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><span style='color:red'>Alias </span>Test {</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><span style='mso-spacerun:yes'>   </span><span class=SpellE><span
style='color:red'>Var</span></span> <span style='color:blue'>%ticks</span> <span
style='color:fuchsia'>=</span> <span style='color:#339966'>$ticks</span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><span style='mso-spacerun:yes'>   </span><span class=SpellE><span
style='color:red'>Var</span></span> <span style='color:blue'>%a</span> <span
style='color:fuchsia'>=</span> 1</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><span style='mso-spacerun:yes'>   </span><span style='color:red'>While</span>
(<span style='color:blue'>%a</span> <span style='color:fuchsia'>&lt;</span>
10000) {</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><span style='mso-spacerun:yes'>       </span><span class=GramE>;The</span>
method you're checking comes here</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><span style='mso-spacerun:yes'>   </span>}</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><span style='mso-spacerun:yes'>   </span><span style='color:red'>Echo</span>
<span style='color:fuchsia'>–a</span> <span style='color:#339966'>$<span
class=GramE>calc<span style='color:windowtext'>(</span></span>$ticks</span> - <span
style='color:blue'>%ticks</span>)</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'>} </p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'>Just remember that 1000 ticks are equal to about 1 second. <o:p></o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><u2:p>&nbsp;</u2:p></p>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>* When using multiple arguments in an IF sentence, it
would be good to sort them in a logical order.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span>This is
because the IF sentence evaluates the arguments from left to right.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span>So, if for
example you have an IF sentence with multiple arguments using the AND
(&amp;&amp;) operator:</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span><span
style='color:red'>IF</span> (Blah <span class=SpellE><span style='color:fuchsia'>isin</span></span>
<span style='color:blue'>%<span class=GramE>check</span></span>) <span
style='color:fuchsia'>&amp;&amp;</span> (<span style='color:#339966'>/<span
class=SpellE>msg</span></span> <span class=SpellE>isin</span> <span
style='color:blue'>%check</span>)</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span>And you know
that the most important thing to check is if the command /<span class=SpellE>msg</span>
<span class=GramE>is</span> in the line %check then it's better to put the /<span
class=SpellE>msg</span> argument first, and if it doesn't exist the script will
move on:<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span><span
style='color:red'>IF</span> (/<span class=SpellE>msg</span> <span class=SpellE><span
style='color:fuchsia'>isin</span></span> <span style='color:blue'>%check</span>)
<span style='color:fuchsia'>&amp;&amp;</span> (<span style='color:#339966'>Blah</span>
<span class=SpellE>isin</span> <span style='color:blue'>%check</span>)<span
style='mso-spacerun:yes'>  </span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span>This kind of
logic is good for arguments of the same kind, but if you have a more CPU
consuming argument, like a $<span class=GramE>read(</span><span class=SpellE>file.txt,w</span>,*blah*)
, you should leave it to the end, even if it's more &quot;important&quot;
logically.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span>You don't want
the script to run too many CPU consuming $identifiers or aliases if there's
another simpler argument that could rule them out and stop the processing of
the IF statement.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span></p>

</div>

</div>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><span style='mso-spacerun:yes'> </span><o:p></o:p></p>

<u2:p></u2:p>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>* Don't give the same argument twice in an IF-ELSE
sentence if it can be assumed from the first argument, ex:<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span><span
style='color:red'>If</span> (<span style='color:#339966'>$4</span>) <span
style='color:fuchsia'>&amp;&amp;</span> (<span style='color:#339966'>$5</span>)
{ }</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span><span
class=SpellE><span style='color:red'>Elseif</span></span> (<span class=GramE><span
style='color:fuchsia'>!</span><span style='color:#339966'>$</span></span><span
style='color:#339966'>5</span>) { }</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span>In the first
IF sentence you don't need to check if $4 exists, because if $5 exists we can
assume there's a $4.<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span>And in the
second line, you don't have to check if $5 doesn't exist, because if the first
line fails then you can assume that $5 doesn't exist.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span>So this would
be better scripted like this:</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='color:red'><span
style='mso-spacerun:yes'>   </span>If</span> (<span style='color:#339966'>$5</span>)
{ }</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span><span
style='color:red'>Else </span>{ }</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span>Just remember
that every calculation and every argument uses resources.<o:p></o:p></p>

</div>

</div>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><u2:p>&nbsp;</u2:p></p>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>* Combine similar IF-Else sentences if you are trying
to evaluate similar sentences or data. Here's an example:</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span><span
class=SpellE><span class=GramE><span style='color:red'>var</span></span></span>
<span style='color:blue'>%format </span><span style='color:fuchsia'>=</span>
Hi*there*</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span><span
class=GramE><span style='color:red'>if</span></span> (<span style='color:blue'>%format
</span><span class=SpellE><span style='color:fuchsia'>iswm</span></span> <span
style='color:#339966'>$1-</span>) <span style='color:red'>return </span>1</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span><span
class=SpellE><span class=GramE><span style='color:red'>var</span></span></span>
<span style='color:blue'>%format </span><span style='color:fuchsia'>=</span> Hi
my name is*how*everyone*</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span><span
class=GramE><span style='color:red'>if</span></span> (<span style='color:blue'>%format
</span><span class=SpellE><span style='color:fuchsia'>iswm</span></span> <span
style='color:#339966'>$1-</span>)<span style='mso-spacerun:yes'>  </span><span
style='color:red'>return</span> 2</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span><span
class=SpellE><span class=GramE><span style='color:red'>var</span></span></span>
<span style='color:blue'>%format </span><span style='color:fuchsia'>=</span>
Hi*everyone*<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span><span
class=GramE><span style='color:red'>if</span></span> (<span style='color:blue'>%format
</span><span class=SpellE><span style='color:fuchsia'>iswm</span></span> <span
style='color:#339966'>$1-</span>)<span style='mso-spacerun:yes'>  </span><span
style='color:red'>return</span> 3</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'> </span><span
style='mso-spacerun:yes'>  </span><span class=SpellE><span class=GramE><span
style='color:red'>var</span></span></span> <span style='color:blue'>%format </span><span
style='color:fuchsia'>=</span> Hello*everyone*</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span><span
class=GramE><span style='color:red'>if</span></span> (<span style='color:blue'>%format
</span><span class=SpellE><span style='color:fuchsia'>iswm</span></span> <span
style='color:#339966'>$1-</span>)<span style='mso-spacerun:yes'>  </span><span
style='color:red'>return</span> 4</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span>You can see
that there are a few words that repeat in these lines, these are: <span
class=GramE>Hi ,</span> Hello, and everyone.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>    </span>So, instead of
making the script go through all the line formats, it would be better to group
them into groups, with similar matches, so it will have <span class=GramE>less
arguments</span> to calculate.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span>Remember that
it's easier for the script to check a certain item in the text then searching
for a <span class=SpellE>wildmatch</span>.<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span><span
style='color:red'>If</span> (<span style='color:#339966'>$1</span> <span
style='color:fuchsia'>=</span> Hi) {</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span><span
style='color:red'><span style='mso-spacerun:yes'>  </span><span class=SpellE><span
class=GramE>var</span></span></span> <span style='color:blue'>%format </span><span
style='color:fuchsia'>=</span> *there*</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>     </span><span
class=GramE><span style='color:red'>if</span></span> (<span style='color:blue'>%format
</span><span class=SpellE><span style='color:fuchsia'>iswm</span></span> <span
style='color:#339966'>$2-</span>) <span style='color:red'>return</span> 1</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>     </span><span
class=SpellE><span class=GramE><span style='color:red'>var</span></span></span>
<span style='color:blue'>%format </span><span style='color:fuchsia'>=</span> Hi
my name is*how*everyone*</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>     </span><span
class=GramE><span style='color:red'>if</span></span> (<span style='color:blue'>%format
</span><span class=SpellE><span style='color:fuchsia'>iswm</span></span> <span
style='color:#339966'>$2-</span>)<span style='mso-spacerun:yes'>  </span><span
style='color:red'>return</span> 2</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>     </span><span
class=SpellE><span class=GramE><span style='color:red'>var</span></span></span>
<span style='color:blue'>%format </span><span style='color:fuchsia'>=</span>
Hi*everyone*</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>     </span><span
class=GramE><span style='color:red'>if</span></span> (<span style='color:blue'>%format
</span><span class=SpellE><span style='color:fuchsia'>iswm</span></span> <span
style='color:#339966'>$2-</span>)<span style='mso-spacerun:yes'>  </span><span
style='color:red'>return</span> 3</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span>}</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span><span
class=SpellE><span class=GramE><span style='color:red'>var</span></span></span>
<span style='color:blue'>%format </span><span style='color:fuchsia'>=</span>
Hello*everyone*</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span><span
class=GramE><span style='color:red'>if</span></span> (<span style='color:blue'>%format
</span><span class=SpellE><span style='color:fuchsia'>iswm</span></span> <span
style='color:#339966'>$1-</span>)<span style='mso-spacerun:yes'>  </span><span
style='color:red'>return</span> 4</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span>Now the
script does exactly the same thing, but now if the sentence doesn't start with
the word Hi, it won't evaluate all the arguments that have that word.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span>Notice that
because I've already checked the first word, all the other if sentences try to
match the rest of text from the second word.<o:p></o:p></p>

</div>

</div>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><span dir=RTL><u2:p></span><span lang=HE dir=RTL><span dir=RTL></span>&nbsp;</u2:p></span></p>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>* Regular expression lines are much harder for the CPU
then regular Wild Match expressions.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span>If you are
searching for a certain line or match in an ON TEXT event, it would be better
to use regular &quot;if&quot; sentences with <span class=SpellE>iswm</span> and
<span class=SpellE>isin</span> rather then a $<span class=SpellE>regex</span>
expression.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span>After you've
found the match, you could start using $<span class=SpellE>regex</span>
expression to get the data you want from the line. But the time and CPU
consuming work is matching the text in the ON TEXT event. </p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span>I gave the ON
TEXT event as an example of a loop that works constantly on almost every line
received from the server<o:p></o:p></p>

</div>

</div>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><u2:p>&nbsp;</u2:p></p>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 1.0pt 1.0pt 1.0pt'>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 1.0pt 1.0pt 1.0pt'>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 1.0pt 1.0pt 1.0pt'>*<span style='mso-spacerun:yes'>   </span>Avoid
putting in unnecessary calculations. Here's an example of a size calculator
that calculates file sizes from Mb, Kb etc. to bytes:</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 1.0pt 1.0pt 1.0pt'><span style='mso-spacerun:yes'>      </span><span
style='color:#339966'>$<span class=GramE>calc<span style='color:windowtext'>(</span></span>$replace</span>(<span
style='color:#339966'>$remove</span>(<span style='color:#339966'>$1,</span>b),k,*
1024,m,* 1024 ^2,g,* 1024 ^3))</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 1.0pt 1.0pt 1.0pt'><span style='mso-spacerun:yes'>     </span>Although
this looks very nice and easy, it still needs to calculate 1024 ^2 and 1024 ^3
every time it calculates Mb or <span class=SpellE><span class=GramE>Gb</span></span>
values.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 1.0pt 1.0pt 1.0pt'><span style='mso-spacerun:yes'>     </span>This can
start to show its effects when you have a very long loop, like searching a
directory, or a dialog list.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 1.0pt 1.0pt 1.0pt'><span style='mso-spacerun:yes'>     </span>It is
better to evaluate them yourself, and save the computer some time and effort:</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 1.0pt 1.0pt 1.0pt'><span style='mso-spacerun:yes'>      </span><span
style='color:#339966'>$<span class=GramE>calc<span style='color:windowtext'>(</span></span>$replace</span>(<span
style='color:#339966'>$remove</span>(<span style='color:#339966'>$1,</span>b),k,*
1024,m,* 1048576,g,* 1073741824))<o:p></o:p></p>

</div>

</div>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><u2:p>&nbsp;</u2:p></p>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>* Sometimes it's better to use a regular loop and a
regular If (V1 <span class=SpellE>iswm</span> V2) sentence, rather than looping
through certain $identifiers that have <span class=SpellE>Wildmatch</span>
options in them.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span>The best way
to explain this is by an example using $<span class=SpellE>hget</span> to find
certain items in a HASH table.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span>For example,
look at both these loops:<o:p></o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><u2:p>&nbsp;</u2:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span class=SpellE><span style='color:red'>Var</span></span>
<span style='color:blue'>%a</span> <span style='color:fuchsia'>=</span> 1</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span class=GramE><span style='color:red'>while</span></span>
(<span style='color:#339966'>$<span class=SpellE>hfind</span></span>(<span
class=SpellE>HashTable</span>,*wildcard*,<span style='color:blue'>%<span
class=SpellE>a<span style='color:windowtext'>,w</span></span></span>)) {<span
style='mso-spacerun:yes'>   </span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span><span
class=GramE>;Do</span> stuff here</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span><span
class=GramE><span style='color:red'>inc</span></span> <span style='color:blue'>%a</span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>}<o:p></o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><u2:p>&nbsp;</u2:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span class=SpellE><span style='color:red'>Var</span></span>
<span style='color:blue'>%a</span> <span style='color:fuchsia'>=</span> 1</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span class=GramE><span style='color:red'>while</span></span>
(<span style='color:#339966'>$<span class=SpellE>hget</span></span>(<span
class=SpellE>HashTable,<span style='color:blue'>%a</span></span>).item) {</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='color:red'><span
style='mso-spacerun:yes'>  </span><span class=SpellE><span class=GramE>var</span></span></span>
<span style='color:blue'>%item</span> <span style='color:fuchsia'>=</span> <span
style='color:#339966'>$v1</span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span><span
class=GramE><span style='color:red'>if</span></span> (*wildcard* <span
class=SpellE><span style='color:fuchsia'>iswm</span></span> <span
style='color:blue'>%item</span>) {<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>    </span><span
class=GramE>;Do</span> stuff here</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span>}</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span><span
class=GramE><span style='color:red'>inc</span></span> <span style='color:blue'>%a</span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>}<o:p></o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><u2:p>&nbsp;</u2:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span>Although the
first loop looks much neater and exploits the $<span class=SpellE>hfind</span>
identifier to find you all the matching items, it will still take about twice
as much time to resolve.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span>That happens
because the $<span class=SpellE>hfind</span> identifier tries each time to find
the next matching item, but it starts each time from the beginning of the Hash
table. So if you have a lot of items that match the wildcard it will go over
the <span class=SpellE>the</span> entire Hash table over and over.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span>But the second
loop will just go over the Hash table once, and find all the matches.<span
style='mso-spacerun:yes'>  </span><o:p></o:p></p>

</div>

</div>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><u2:p>&nbsp;</u2:p></p>

<div style='border:double windowtext 1.5pt;padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='mso-spacerun:yes'> </span>* Try not to use $identifiers in a while
loop's argument. If you know that the $identifier will return a constant value
that won't be changed in the loop's process then it's better to set the
$identifiers value to a %variable, and then use the %variable as the argument.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   
</span>That's because the loop will evaluate the $identifier on each run to
check if the value hasn't changed.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   
</span>Just to show you how much CPU you can change:</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='color:red'>Alias</span>
test {</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'> 
</span><span class=SpellE><span class=GramE><span style='color:red'>var</span></span></span>
<span style='color:blue'>%ticks</span> <span style='color:fuchsia'>=</span> <span
style='color:#339966'>$ticks</span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'> 
</span><span class=SpellE><span class=GramE><span style='color:red'>var</span></span></span>
<span style='color:blue'>%a</span><span style='color:fuchsia'> =</span> <span
style='color:#339966'>1</span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'> 
</span><span class=GramE><span style='color:red'>while</span></span> (<span
style='color:blue'>%a</span><span style='color:fuchsia'> &lt;</span> <span
style='color:#339966'>$lines</span>(servers.ini)) {</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   
</span><span class=GramE><span style='color:red'>inc</span></span> <span
style='color:blue'>%a</span> </p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'> 
</span>}</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'> 
</span><span class=GramE><span style='color:red'>echo</span></span> <span
style='color:fuchsia'>-a</span> <span style='color:#339966'>$calc</span>(<span
style='color:#339966'>$ticks</span> - <span style='color:blue'>%ticks</span>)</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>}</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>This little alias will take 1297 ticks
(my servers.ini has 976 lines)<span lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>But if I'd put the $lines value in a %variable,
and use the %variable in the argument:<span lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='color:red'>Alias</span>
test {<span lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span><span
style='mso-spacerun:yes'>  </span><span class=SpellE><span class=GramE><span
style='color:red'>var</span></span></span> <span style='color:blue'>%ticks</span>
<span style='color:fuchsia'>=</span> <span style='color:#339966'>$ticks</span><span
lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span lang=HE><span
dir=LTR></span><span style='mso-spacerun:yes'> </span></span><span
style='color:red'><span style='mso-spacerun:yes'> </span><span class=SpellE><span
class=GramE>var</span></span> </span><span style='color:blue'>%a</span> <span
style='color:fuchsia'>=</span> 1<span lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span><span
style='mso-spacerun:yes'>  </span><span class=SpellE><span class=GramE><span
style='color:red'>var</span></span></span> <span style='color:blue'>%lines</span><span
style='color:fuchsia'> =</span> <span style='color:#339966'>$lines</span>(servers.ini)<span
lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span><span
style='mso-spacerun:yes'>  </span><span class=GramE><span style='color:red'>while</span></span><span
style='color:red'> </span>(<span style='color:blue'>%a</span> <span
style='color:fuchsia'>&lt;</span> <span style='color:blue'>%lines</span>) {<span
lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span
style='color:red'><span dir=LTR></span><span style='mso-spacerun:yes'>   
</span><span class=GramE>inc</span> </span><span style='color:blue'>%a</span> </p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'> 
</span>}</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'> 
</span><span class=GramE><span style='color:red'>echo</span></span> <span
style='color:fuchsia'>-a</span> <span style='color:#339966'>$calc</span>(<span
style='color:#339966'>$ticks</span> - <span style='color:blue'>%ticks</span>)</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>}</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span lang=HE dir=RTL><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>This takes only 16 ticks to process. And
that's because it doesn't have to process the $lines identifier 976 times.<span
lang=HE dir=RTL><o:p></o:p></span></p>

</div>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><span lang=HE dir=RTL><o:p>&nbsp;</o:p></span></p>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span class=GramE><span dir=LTR></span><span dir=LTR></span>*<span
style='mso-spacerun:yes'>  </span>Don't</span> hesitate to store data that you
get from $identifiers into variables. <span class=GramE>mIRC</span>
$identifiers and aliases are little procedures that calculate things, and
return the data you requested. But each time you call it, it recalculates.<span
lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span><span
style='mso-spacerun:yes'>    </span><st1:City><st1:place>Reading</st1:place></st1:City>
from files takes a lot of CPU usage too, so if you are reading the same thing,
or different parts of the same line, it would be better to store it in a %var.<span
lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span><span
style='mso-spacerun:yes'>    </span>For an example, here's something that reads
settings from the mirc.ini file:<span lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span><span
style='mso-spacerun:yes'>    </span><span class=GramE><span style='color:red'>if</span></span>
(<span style='color:#339966'>$<span class=SpellE>gettok</span></span>(<span
style='color:#339966'>$<span class=SpellE>readini</span></span>(mirc.ini,options,n7),2,44)
<span style='color:fuchsia'>=</span> 1) { do stuff }<span lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span><span
style='mso-spacerun:yes'>    </span><span class=GramE><span style='color:red'>if</span></span>
(<span style='color:#339966'>$<span class=SpellE>gettok</span></span>(<span
style='color:#339966'>$<span class=SpellE>readini</span></span>(mirc.ini,options,n7),3,44)
<span style='color:fuchsia'>=</span> 1) { do stuff }</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>    </span><span
class=GramE><span style='color:red'>if</span></span> (<span style='color:#339966'>$<span
class=SpellE>gettok</span></span>(<span style='color:#339966'>$<span
class=SpellE>readini</span></span>(mirc.ini,options,n7),16,44) <span
style='color:fuchsia'>=</span> 1) { do stuff }</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>    </span><span
class=GramE><span style='color:red'>if</span></span> (<span style='color:#339966'>$<span
class=SpellE>gettok</span></span>(<span style='color:#339966'>$<span
class=SpellE>readini</span></span>(mirc.ini,options,n7),19,44) <span
style='color:fuchsia'>=</span> 1) { do stuff }</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   </span>Now if it
would be on an On Dialog Init event, that wouldn't be too bad because it only
loads once. But it would still be better to read from the file once, and then evaluate
that line over and over:</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>    </span><span
class=SpellE><span style='color:red'>Var</span></span> <span style='color:blue'>%line</span>
= <span style='color:#339966'>$<span class=SpellE><span class=GramE>readini</span></span></span><span
class=GramE>(</span>mirc.ini,options,n7)<span style='mso-spacerun:yes'> 
</span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>    </span><span
class=GramE><span style='color:red'>if</span></span> (<span style='color:#339966'>$<span
class=SpellE>gettok</span></span>(<span style='color:blue'>%line</span>,2,44) <span
style='color:fuchsia'>=</span> 1) { do stuff }</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>    </span><span
class=GramE><span style='color:red'>if</span></span> (<span style='color:#339966'>$<span
class=SpellE>gettok</span></span>(<span style='color:blue'>%line</span>,3,44) <span
style='color:fuchsia'>=</span> 1) { do stuff }</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>    </span><span
class=GramE><span style='color:red'>if</span></span> (<span style='color:#339966'>$<span
class=SpellE>gettok</span></span>(<span style='color:blue'>%</span>l<span
style='color:blue'>ine</span>,16,44) <span style='color:fuchsia'>=</span> 1) {
do stuff }</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>    </span><span
class=GramE><span style='color:red'>if</span></span> (<span style='color:#339966'>$<span
class=SpellE>gettok</span></span>(<span style='color:blue'>%line</span>,19,44) <span
style='color:fuchsia'>=</span> 1) { do stuff }<o:p></o:p></p>

</div>

</div>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><u2:p>&nbsp;</u2:p></p>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<div style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>* Dialog lists are very slow. If you have a very large
list that needs to be listed, or filtered, list it in a @window first and then
filter it back to the dialog's list.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span>Although it
might sound strange because you're actually listing it twice, it's faster.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span>For an
example, make a dialog called test:</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>Dialog Test {</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span>Size -1 -1 380
200</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span>Option <span
class=SpellE>dbu</span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span>List 2, 10 32
120 160, size sort </p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span>Button
&quot;OK&quot;, 1, 285 180 42 13, ok, default</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>}<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span dir=RTL><u2:p></span><span lang=HE dir=RTL><span
dir=RTL></span>&nbsp;</u2:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>Now try the 2 ways, we'll calculate the amount of
Ticks (1000 ticks = about 1 sec) that pass from the beginning of the alias to
the end…<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>Try the /did –a line:<o:p></o:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><u2:p>&nbsp;</u2:p></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span class=GramE><span style='color:red'>alias</span></span>
test {</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span><span
class=SpellE><span class=GramE><span style='color:red'>var</span></span></span>
<span style='color:blue'>%ticks</span> <span style='color:fuchsia'>=</span> <span
style='color:#339966'>$ticks</span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span><span
class=SpellE><span class=GramE><span style='color:red'>var</span></span></span>
<span style='color:blue'>%b</span> <span style='color:fuchsia'>= </span>1</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span><span
style='color:red'>While</span> (<span style='color:blue'>%b</span> <span
style='color:fuchsia'>&lt;</span> 10000) {</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>    </span><span
style='color:red'>Did</span> <span style='color:fuchsia'>-a </span>test 2 Test <span
class=GramE>This</span> <span style='color:#339966'>$+</span> <span
style='color:blue'>%b</span><o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>    </span><span
style='color:red'>Inc</span> <span style='color:blue'>%b</span><o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span>}<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span><span
class=GramE><span style='color:red'>echo</span></span> <span style='color:fuchsia'>-a
</span><span style='color:#339966'>$calc</span>(<span style='color:#339966'>$ticks</span>
- <span style='color:blue'>%ticks</span>)<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>}<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span dir=RTL><u2:p></span><span lang=HE dir=RTL><span
dir=RTL></span>&nbsp;</u2:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>Load the dialog (/dialog –m Test <span class=SpellE>Test</span>)
and then type /test … I got 1078 Ticks<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>Now <span class=GramE>lets</span> try the other way:<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span class=GramE><span style='color:red'>alias</span></span>
test2 {</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span><span
class=SpellE><span class=GramE><span style='color:red'>var</span></span></span>
<span style='color:blue'>%ticks</span> <span style='color:fuchsia'>=</span> <span
style='color:#339966'>$ticks</span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span><span
class=GramE><span style='color:red'>window</span></span> <span
style='color:fuchsia'>-h</span> @test</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span><span
class=SpellE><span class=GramE><span style='color:red'>var</span></span></span>
<span style='color:blue'>%b</span> <span style='color:fuchsia'>=</span> 1</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span><span
style='color:red'>While</span> (<span style='color:blue'>%b</span> <span
style='color:fuchsia'>&lt;</span> 10000) {<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>    </span><span
class=SpellE><span class=GramE><span style='color:red'>aline</span></span></span>
@test <span class=SpellE>Test</span> This <span style='color:#339966'>$</span>+
<span style='color:blue'>%b</span><o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>    </span>Inc <span
style='color:blue'>%b</span><o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span>}<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span><span
class=GramE><span style='color:red'>filter</span></span> <span
style='color:fuchsia'>-o</span> @test <span class=SpellE>test</span> 2<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span><span
class=GramE><span style='color:red'>close</span></span> <span style='color:
fuchsia'>-@</span> @test <o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  </span><span
class=GramE><span style='color:red'>echo</span></span> <span style='color:fuchsia'>-a</span>
<span style='color:#339966'>$calc</span>(<span style='color:#339966'>$ticks</span>
- <span style='color:blue'>%ticks</span>)<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>}<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'><span dir=RTL><u2:p></span><span lang=HE dir=RTL><span
dir=RTL></span>&nbsp;</u2:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>Load the dialog (/dialog –m Test <span class=SpellE>Test</span>)
and then type /test2 … I got 515 Ticks<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>So we can clearly see that this method is twice as
fast, although we've opened a hidden window, listed into it, then copied all
that is in that window to the dialog with the /filter command, and then closed
the window.<o:p></o:p></p>

<u2:p></u2:p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>Now if you want to use /filters with your dialog it
would be the <span class=GramE>same,</span> and it's actually better to filter
the list to a @window and then back again, than filtering the list to itself.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:solid windowtext .5pt;padding:0in;mso-padding-alt:
1.0pt 4.0pt 1.0pt 4.0pt'>I'd advise to have a hidden window that has the same
information as the list has, and then filter that window into the dialog.</p>

</div>

</div>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><o:p>&nbsp;</o:p></p>

<div style='border:double windowtext 1.5pt;padding:1.0pt 4.0pt 1.0pt 4.0pt'>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>* You should remember that calling
aliases is also time consuming&nbsp;and can use up your CPU.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>  
</span>I'm not saying you shouldn't use aliases, but you could take in mind
that you don't have to use a lot of little one lined aliases in your script if
you want to reduce the time it takes to process you script.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>Here's an example, I'll do exactly the
same thing, but I'll add aliases to call some of the commands:</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='color:red'>Alias</span>
test {</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'> 
</span><span class=SpellE><span class=GramE><span style='color:red'>var</span></span></span>
<span style='color:blue'>%ticks </span><span style='color:fuchsia'>=</span> <span
style='color:#339966'>$ticks</span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'> 
</span><span class=SpellE><span class=GramE><span style='color:red'>var</span></span></span>
<span style='color:blue'>%a</span><span style='color:fuchsia'> = </span>1</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='mso-spacerun:yes'> </span><span style='color:red'><span
style='mso-spacerun:yes'> </span><span class=GramE>while</span> </span>(<span
style='color:blue'>%a</span><span style='color:fuchsia'> &lt; </span>20000) {</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   
</span><span style='color:red'><span style='mso-spacerun:yes'> </span><span
class=SpellE><span class=GramE>var</span></span> </span><span style='color:
blue'>%check</span> <span style='color:fuchsia'>=</span> a</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>   
</span><span style='color:red'><span style='mso-spacerun:yes'> </span><span
class=GramE>if</span> </span>(<span style='color:blue'>%check</span><span
style='color:fuchsia'> = </span>a) <span class=SpellE><span style='color:red'>var</span></span>
<span style='color:blue'>%check </span><span style='color:fuchsia'>=</span> b</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'>    
</span><span class=GramE><span style='color:red'>inc</span></span> <span
style='color:blue'>%a</span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'> 
</span>}</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'> 
</span><span class=GramE><span style='color:red'>echo</span></span> <span
style='color:fuchsia'>-a </span><span style='color:#339966'>$calc</span>(<span
style='color:#339966'>$ticks</span> - <span style='color:blue'>%ticks</span>)</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>}</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>This is a simple enough alias, just
loops around a couple of thousands of times. This echoed a value of 1094 ticks
on my PC.</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>Now if we take out the contents of the
while loop, and put them in a separate alias and then call it, look what
happens:<span lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='color:red'>Alias</span>
test {<span lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span><span
style='mso-spacerun:yes'>  </span><span class=SpellE><span class=GramE><span
style='color:red'>var</span></span></span> <span style='color:blue'>%ticks </span><span
style='color:fuchsia'>=</span> <span style='color:#339966'>$ticks</span><span
lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span><span
style='mso-spacerun:yes'>  </span><span class=SpellE><span class=GramE><span
style='color:red'>var</span></span></span> <span style='color:blue'>%a</span><span
style='color:fuchsia'> = </span>1<span lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span><span
style='mso-spacerun:yes'>  </span><span class=GramE><span style='color:red'>while</span></span>
(<span style='color:blue'>%a</span> <span style='color:fuchsia'>&lt;</span>
20000) {<span lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span><span
style='mso-spacerun:yes'>   </span><span style='color:red'><span
style='mso-spacerun:yes'> </span>test2</span><span lang=HE dir=RTL
style='color:red'><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span><span
style='mso-spacerun:yes'>    </span><span class=GramE><span style='color:red'>inc</span></span><span
style='color:red'> </span><span style='color:blue'>%a</span><span lang=HE
dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span><span
style='mso-spacerun:yes'>  </span>}<span lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span><span
style='mso-spacerun:yes'>  </span><span class=GramE><span style='color:red'>echo</span></span>
<span style='color:fuchsia'>-a</span> <span style='color:#339966'>$calc</span>(<span
style='color:#339966'>$ticks</span> - <span style='color:blue'>%ticks</span>)<span
lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span>}<span
lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='color:red'>Alias</span>
test2 {</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'> 
</span><span class=SpellE><span class=GramE><span style='color:red'>var</span></span></span>
<span style='color:blue'>%check</span> <span style='color:fuchsia'>=</span> a</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'> 
</span><span class=GramE><span style='color:red'>if</span></span> (<span
style='color:blue'>%check</span> <span style='color:fuchsia'>= </span>a) <span
class=SpellE><span style='color:red'>var</span></span><span style='color:blue'>
%check</span> <span style='color:fuchsia'>= </span>b<span lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span>}<span
lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>Now it echoed a value of 1266 ticks. I
know it's not a lot, but that's a lot for just calling a single alias that does
the exact same thing.<span lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>And look what happens if I <span
class=GramE>brake</span> the test2 alias into another alias:<span lang=HE
dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='color:red'>Alias</span>
test {<span lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span><span
style='mso-spacerun:yes'>  </span><span class=SpellE><span class=GramE><span
style='color:red'>var</span></span></span> <span style='color:blue'>%ticks</span>
<span style='color:fuchsia'>=</span> <span style='color:#339966'>$ticks</span><span
lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span><span
style='mso-spacerun:yes'>  </span><span class=SpellE><span class=GramE><span
style='color:red'>var</span></span></span> <span style='color:blue'>%a</span><span
style='color:fuchsia'> =</span> 1<span lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span><span
style='mso-spacerun:yes'>  </span><span class=GramE><span style='color:red'>while</span></span>
(<span style='color:blue'>%a</span> <span style='color:fuchsia'>&lt;</span>
20000) {<span lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span><span
style='mso-spacerun:yes'>   </span><span style='color:red'><span
style='mso-spacerun:yes'> </span>test2</span><span lang=HE dir=RTL
style='color:red'><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span
style='color:red'><span dir=LTR></span><span style='mso-spacerun:yes'>   
</span><span class=GramE>inc</span> </span><span style='color:blue'>%a</span><span
lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span><span
style='mso-spacerun:yes'>  </span>}<span lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span lang=HE><span
dir=LTR></span><span style='mso-spacerun:yes'> </span></span><span
style='color:red'><span style='mso-spacerun:yes'> </span><span class=GramE>echo</span>
</span><span style='color:fuchsia'>-a</span> <span style='color:#339966'>$calc</span>(<span
style='color:#339966'>$ticks</span> - <span style='color:blue'>%ticks</span>)<span
lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span>}<span
lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='color:red'>Alias</span>
test2 {</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='mso-spacerun:yes'> 
</span><span class=SpellE><span class=GramE><span style='color:red'>var</span></span></span>
<span style='color:blue'>%check</span> <span style='color:fuchsia'>=</span> a</p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='mso-spacerun:yes'> </span><span style='color:red'><span
style='mso-spacerun:yes'> </span><span class=GramE>if</span> </span>(<span
style='color:blue'>%check</span><span style='color:fuchsia'> =</span> a) <span
style='color:red'>test3</span><span lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span>}<span
lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span style='color:red'>Alias</span>
test3 {<span lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span><span
style='mso-spacerun:yes'>  </span><span class=SpellE><span class=GramE><span
style='color:red'>var</span></span></span> <span style='color:blue'>%check</span><span
style='color:fuchsia'> =</span> b<span lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span dir=LTR></span><span dir=LTR></span>}<span
lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>Now it returns 1406 ticks… we lost
another 150 ticks just because we called another alias.<span lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed;border:none;mso-border-alt:double windowtext 1.5pt;padding:0in;
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>Now we see here that at a 20000 loop
each alias called adds us about 200 ticks (0.2 seconds or 20% in this example).
And that is just for calling the alias, no matter what it contains.<span
lang=HE dir=RTL><o:p></o:p></span></p>

</div>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><span lang=HE dir=RTL><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><span lang=HE dir=RTL><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><span dir=LTR></span><span dir=LTR></span>&nbsp;<span lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'>Written by <span class=SpellE>Yochai</span> <span class=SpellE><span
class=GramE>Timmer</span></span><span class=GramE><span
style='mso-spacerun:yes'>  </span><span class=SpellE>Yochai@Dorot.org.il</span></span><span
lang=HE dir=RTL><o:p></o:p></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><span dir=LTR></span><span dir=LTR></span><span
style='mso-spacerun:yes'>     </span><span lang=HE dir=RTL><o:p></o:p></span></p>

</div>

</body>

</html>