<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
	<link rel="self" type="application/atom+xml" href="https://forum.eggheads.org/app.php/feed/topic/16538" />

	<title>egghelp/eggheads community</title>
	<subtitle>Discussion of eggdrop bots, shell accounts and tcl scripts.</subtitle>
	<link href="https://forum.eggheads.org/index.php" />
	<updated>2009-01-14T12:43:12-04:00</updated>

	<author><name><![CDATA[egghelp/eggheads community]]></name></author>
	<id>https://forum.eggheads.org/app.php/feed/topic/16538</id>

		<entry>
		<author><name><![CDATA[ultralord]]></name></author>
		<updated>2009-01-14T12:43:12-04:00</updated>

		<published>2009-01-14T12:43:12-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=86923#p86923</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=86923#p86923"/>
		<title type="html"><![CDATA[linsert and something else]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=86923#p86923"><![CDATA[
i know some of my procs have to fixed to simplier.. <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_razz.gif" width="15" height="15" alt=":P" title="Razz"> some day i must to do.. but atm i cant i havent time :/ and i must find this issue but i cant all of my tests is broken :/<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=8360">ultralord</a> — Wed Jan 14, 2009 12:43 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[nml375]]></name></author>
		<updated>2009-01-14T11:00:15-04:00</updated>

		<published>2009-01-14T11:00:15-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=86922#p86922</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=86922#p86922"/>
		<title type="html"><![CDATA[linsert and something else]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=86922#p86922"><![CDATA[
To me, it looks like you are doing pretty much the same thing over and over in the code, making it unnecessary complex with deep conditional-constructs.<br><br>In many cases, isolating dominant conditions helps making the code alot more manageable:<div class="codebox"><p>Code: </p><pre><code>if {$channel == $g_pickupchan} { if {$g_shutupchan == 0} {  if {$g_active == 1} {...  } else {   putserv "NOTICE $nick :[g_txt addme3]"  } } else {  putserv "NOTICE $nick :[g_txt addme4]" }}## considder using this instead:if {$channel != $g_pickupchan} { return 0}if {$g_shutupchan != 0} { putserv "NOTICE $nick :[g_txt addme4]" return 0}if {$g_active != 1} { putserv "NOTICE $nick :[g_txt addme3]" return 0}...</code></pre></div>Also, I'm not sure what purpose <em class="text-italics">g_quality</em> has, as I really can't see much difference between the codeblocks.. possibly other than one requires voice/op and the other doesn't? <br>Further, both of those blocks look.. rather messy, doing the very same <strong class="text-strong">lsearch</strong>'es over and over.<br><br>Also, in a few places, you've left out the <strong class="text-strong">puthelp</strong>/<strong class="text-strong">putserv</strong> command when trying to send a notice to the channel.<br><br>More, you have a test whether <em class="text-italics">nick</em> == <em class="text-italics">g_serverholder</em>, yet you try to remove both <em class="text-italics">nick</em> and <em class="text-italics">g_serverholder</em> from the lists - which should mean you are doing the same work over and over again. And to be honest, I can't see any differences in the code in the two blocks here either.<br><br>Now, I'm not trying to rant at your code or such, but I would suggest you try and "compact" and "group" your code. That is, try avoiding doing the very same tasks in 5 different places if you don't need to;<ul><li>The added voice/op-check when <em class="text-italics">g_quality</em> is set to 1 could simply be merged into a single conditional statement, rather than having two identical blocks doing the very same thing (apart for the added voice/op-check).</li><li>Rather than doing one <strong class="text-strong">lsearch</strong> to see whether the item exists in the list, and then do a second one to store the index, save it to a variable first and then test it.</li></ul>Doing these steps may not instantly fix your problems, but it would make it easier to find them as the code generally gets easier to read.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=8052">nml375</a> — Wed Jan 14, 2009 11:00 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[ultralord]]></name></author>
		<updated>2009-01-14T09:15:48-04:00</updated>

		<published>2009-01-14T09:15:48-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=86919#p86919</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=86919#p86919"/>
		<title type="html"><![CDATA[linsert and something else]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=86919#p86919"><![CDATA[
thnx. i change that you said and nothing.. also i modified my previus proc to :<br><div class="codebox"><p>Code: </p><pre><code>proc g_addme { nick uhost handle channel team } {  global g_teamaserver g_teambserver g_playernumber g_findadmin g_serverholder addid addteama addteamb  g_lastinfoteama g_lastinfoteamb ids g_last g_last2 g_spamchannel g_spamchannel2 g_spamchannel3 g_spamchanneltest g_spamchannel4 g_spamchannel5 g_spamchannel6 g_spamchannel7 g_spamchannel8 g_spamchannel9 g_maxpl g_pickupchan g_active g_quality g_shutupchan g_playerleft  set channel [string tolower $channel]  if { $channel == $g_pickupchan } {     if { $g_shutupchan == 0 } {      if { $g_active == 1 } {if { $nick == $g_serverholder } {        set team [string tolower $team]set nick [g_charfilter $nick]        if { $team == "" } {          set numberteama [lsearch -exact $g_teamaserver $nick ]          set numberteamb [lsearch -exact $g_teambserver $nick ]          set ispresent [expr $numberteama + $numberteamb]          if { $ispresent == -2 } {            if { [llength $g_teambserver] &lt; [llength $g_teamaserver] } {              set team b            } else {              set team a            }          } else {            putserv "NOTICE $nick :[g_txt addme1]"            return 0          }        }        if { $g_quality == 1 } {          if { ( [isvoice $nick $channel] ) || ( [isop $nick $channel] ) } {            if { ( [lsearch -exact $team a ] &gt;-1 ) &amp;&amp; ( [lsearch -exact $g_teamaserver $nick ] &lt;0 ) &amp;&amp; ( [llength $g_teamaserver] &lt; [expr $g_maxpl/2] ) } {              set g_teamaserver [linsert $g_teamaserver end $nick ]              if {[lsearch -exact $g_teambserver $nick ] &gt;-1 } {                set playerindex [lsearch -exact $g_teambserver $nick ]                set g_teambserver [lreplace $g_teambserver $playerindex $playerindex ] if {[set idx [lsearch -exact $g_teamaserver $g_serverholder]] &gt;= 0} {  set g_teamaserver [lreplace $g_teamaserver $idx $idx] } elseif {[set idx [lsearch -exact $g_teambserver $g_serverholder]] &gt;= 0} {  set g_teambserver [lreplace $g_teambserver $idx $idx] } }              set g_playernumber [expr [llength $g_teamaserver]+[llength $g_teambserver]]              g_settopic            } elseif { ( [lsearch -exact $team b] &gt;-1 ) &amp;&amp; ( [lsearch -exact $g_teambserver $nick ] &lt;0 ) &amp;&amp; ( [llength $g_teambserver] &lt; [expr $g_maxpl/2] ) } {              set g_teambserver [linsert $g_teambserver end $nick ]              if {[lsearch -exact $g_teamaserver $nick ] &gt;-1 } {                set playerindex [lsearch -exact $g_teamaserver $nick ]                set g_teamaserver [lreplace $g_teamaserver $playerindex $playerindex ] if {[set idx [lsearch -exact $g_teamaserver $g_serverholder]] &gt;= 0} {  set g_teamaserver [lreplace $g_teamaserver $idx $idx] } elseif {[set idx [lsearch -exact $g_teambserver $g_serverholder]] &gt;= 0} {  set g_teambserver [lreplace $g_teambserver $idx $idx] } }              set g_playernumber [expr [llength $g_teamaserver]+[llength $g_teambserver]]              g_settopic            } else {              putserv "NOTICE $nick :[g_txt addme1]"            }            if { $g_playernumber == $g_maxpl } {              g_launchgame              set g_quality 0            } elseif { $g_playernumber &gt; [expr $g_maxpl - $g_playerleft] } {              set g_playerneeded [expr $g_maxpl -$g_playernumber]              putserv "NOTICE $channel :[g_txt start5] $channel !! [g_txt separator2] $g_playerneeded [g_txt start6]"NOTICE $g_spamchanneltest :[g_txt start5] $channel !! [g_txt separator2] $g_playerneeded [g_txt start6]"            }          } else {            putserv "NOTICE $nick :[g_txt addme2]"          }        } elseif { $g_quality == 0 } {          if { ( [lsearch -exact $team a ] &gt;-1 ) &amp;&amp; ( [lsearch -exact $g_teamaserver $nick ] &lt;0 ) &amp;&amp; ( [llength $g_teamaserver] &lt; [expr $g_maxpl/2] ) } {            set g_teamaserver [linsert $g_teamaserver end $nick ]            if {[lsearch -exact $g_teambserver $nick ] &gt;-1 } {              set playerindex [lsearch -exact $g_teambserver $nick ]              set g_teambserver [lreplace $g_teambserver $playerindex $playerindex ]            }            set g_playernumber [expr [llength $g_teamaserver]+[llength $g_teambserver]]            g_settopic          } elseif { ( [lsearch -exact $team b] &gt;-1 ) &amp;&amp; ( [lsearch -exact $g_teambserver $nick ] &lt;0 ) &amp;&amp; ( [llength $g_teambserver] &lt; [expr $g_maxpl/2] ) } {            set g_teambserver [linsert $g_teambserver end $nick ]            if {[lsearch -exact $g_teamaserver $nick ] &gt;-1 } {              set playerindex [lsearch -exact $g_teamaserver $nick ]              set g_teamaserver [lreplace $g_teamaserver $playerindex $playerindex ]            }            set g_playernumber [expr [llength $g_teamaserver]+[llength $g_teambserver]]            g_settopic          } else {            putserv "NOTICE $nick :[g_txt addme1]"          }          if { $g_playernumber == $g_maxpl } {            g_launchgame          } elseif { $g_playernumber &gt; [expr $g_maxpl - $g_playerleft] } {            set g_playerneeded [expr $g_maxpl - $g_playernumber]            putserv "NOTICE $channel :[g_txt start5] $channel !! [g_txt separator2] $g_playerneeded [g_txt start6]"putserv "NOTICE $g_spamchanneltest :[g_txt start5] $channel !! [g_txt separator2] $g_playerneeded [g_txt start6]"          }        }} else {set team [string tolower $team]        set nick [g_charfilter $nick]        if { $team == "" } {          set numberteama [lsearch -exact $g_teamaserver $nick ]          set numberteamb [lsearch -exact $g_teambserver $nick ]          set ispresent [expr $numberteama + $numberteamb]          if { $ispresent == -2 } {            if { [llength $g_teambserver] &lt; [llength $g_teamaserver] } {              set team b            } else {              set team a            }          } else {            putserv "NOTICE $nick :[g_txt addme1]"            return 0          }        }        if { $g_quality == 1 } {          if { ( [isvoice $nick $channel] ) || ( [isop $nick $channel] ) } {            if { ( [lsearch -exact $team a ] &gt;-1 ) &amp;&amp; ( [lsearch -exact $g_teamaserver $nick ] &lt;0 ) &amp;&amp; ( [llength $g_teamaserver] &lt; [expr $g_maxpl/2] ) } {              set g_teamaserver [linsert $g_teamaserver end $nick ]              if {[lsearch -exact $g_teambserver $nick ] &gt;-1 } {                set playerindex [lsearch -exact $g_teambserver $nick ]                set g_teambserver [lreplace $g_teambserver $playerindex $playerindex ]              }              set g_playernumber [expr [llength $g_teamaserver]+[llength $g_teambserver]]              g_settopic            } elseif { ( [lsearch -exact $team b] &gt;-1 ) &amp;&amp; ( [lsearch -exact $g_teambserver $nick ] &lt;0 ) &amp;&amp; ( [llength $g_teambserver] &lt; [expr $g_maxpl/2] ) } {              set g_teambserver [linsert $g_teambserver end $nick ]              if {[lsearch -exact $g_teamaserver $nick ] &gt;-1 } {                set playerindex [lsearch -exact $g_teamaserver $nick ]                set g_teamaserver [lreplace $g_teamaserver $playerindex $playerindex ]              }              set g_playernumber [expr [llength $g_teamaserver]+[llength $g_teambserver]]              g_settopic            } else {              putserv "NOTICE $nick :[g_txt addme1]"            }            if { $g_playernumber == $g_maxpl } {              g_launchgame              set g_quality 0            } elseif { $g_playernumber &gt; [expr $g_maxpl - $g_playerleft] } {              set g_playerneeded [expr $g_maxpl -$g_playernumber]              putserv "NOTICE $channel :[g_txt start5] $channel !! [g_txt separator2] $g_playerneeded [g_txt start6]"NOTICE $g_spamchanneltest :[g_txt start5] $channel !! [g_txt separator2] $g_playerneeded [g_txt start6]"            }          } else {            putserv "NOTICE $nick :[g_txt addme2]"          }        } elseif { $g_quality == 0 } {          if { ( [lsearch -exact $team a ] &gt;-1 ) &amp;&amp; ( [lsearch -exact $g_teamaserver $nick ] &lt;0 ) &amp;&amp; ( [llength $g_teamaserver] &lt; [expr $g_maxpl/2] ) } {            set g_teamaserver [linsert $g_teamaserver end $nick ]            if {[lsearch -exact $g_teambserver $nick ] &gt;-1 } {              set playerindex [lsearch -exact $g_teambserver $nick ]              set g_teambserver [lreplace $g_teambserver $playerindex $playerindex ]            }            set g_playernumber [expr [llength $g_teamaserver]+[llength $g_teambserver]]            g_settopic          } elseif { ( [lsearch -exact $team b] &gt;-1 ) &amp;&amp; ( [lsearch -exact $g_teambserver $nick ] &lt;0 ) &amp;&amp; ( [llength $g_teambserver] &lt; [expr $g_maxpl/2] ) } {            set g_teambserver [linsert $g_teambserver end $nick ]            if {[lsearch -exact $g_teamaserver $nick ] &gt;-1 } {              set playerindex [lsearch -exact $g_teamaserver $nick ]              set g_teamaserver [lreplace $g_teamaserver $playerindex $playerindex ]            }            set g_playernumber [expr [llength $g_teamaserver]+[llength $g_teambserver]]            g_settopic          } else {            putserv "NOTICE $nick :[g_txt addme1]"          }          if { $g_playernumber == $g_maxpl } {            g_launchgame          } elseif { $g_playernumber &gt; [expr $g_maxpl - $g_playerleft] } {            set g_playerneeded [expr $g_maxpl - $g_playernumber]            putserv "NOTICE $channel :[g_txt start5] $channel !! [g_txt separator2] $g_playerneeded [g_txt start6]"putserv "NOTICE $g_spamchanneltest :[g_txt start5] $channel !! [g_txt separator2] $g_playerneeded [g_txt start6]"}}}      } else {        putserv "NOTICE $nick :[g_txt addme3]"      }    } else {      putserv "NOTICE $nick :[g_txt addme4]"    }  }}</code></pre></div>but nothing wotking ok.. but my nick is on g_teamaserver or g_teambservers doesnt removed.. :/<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=8360">ultralord</a> — Wed Jan 14, 2009 9:15 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[speechles]]></name></author>
		<updated>2009-01-14T07:25:21-04:00</updated>

		<published>2009-01-14T07:25:21-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=86918#p86918</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=86918#p86918"/>
		<title type="html"><![CDATA[linsert and something else]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=86918#p86918"><![CDATA[
<blockquote class="uncited"><div>and i have that error when i add<div class="codebox"><p>Code: </p><pre><code>Tcl error [g_addme]: syntax error in expression "[set idx [lsearch -exact $g_teamaserver $g_serverholder]] =&gt;...": extra tokens at end of expression</code></pre></div>thnx again..</div></blockquote><blockquote class="uncited"><div>&lt; &gt; &lt;= &gt;=<br>    Boolean less, greater, less than or equal, and greater than or equal. Each operator produces 1 if the condition is true, 0 otherwise. These operators may be applied to strings as well as numeric operands, in which case string comparison is used. </div></blockquote>Change the: =&gt; to look like this: &gt;=<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=8138">speechles</a> — Wed Jan 14, 2009 7:25 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[ultralord]]></name></author>
		<updated>2009-01-14T03:06:28-04:00</updated>

		<published>2009-01-14T03:06:28-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=86917#p86917</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=86917#p86917"/>
		<title type="html"><![CDATA[linsert and something else]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=86917#p86917"><![CDATA[
thnx again.. so.. i try again with 2 codes to fix my issue but nothing.. look one proc ( with that proc i add nicks on teamaserver teambserver)<br><br><div class="codebox"><p>Code: </p><pre><code>proc g_addme { nick uhost handle channel team } {  global g_teamaserver g_teambserver g_playernumber addid addteama addteamb g_serverholder g_lastinfoteama g_lastinfoteamb ids g_last g_last2 g_spamchannel g_spamchannel2 g_spamchannel3 g_spamchanneltest g_spamchannel4 g_spamchannel5 g_spamchannel6 g_spamchannel7 g_spamchannel8 g_spamchannel9 g_maxpl g_pickupchan g_active g_quality g_shutupchan g_playerleft  set channel [string tolower $channel]  if { $channel == $g_pickupchan } {     if { $g_shutupchan == 0 } {      if { $g_active == 1 } {        set team [string tolower $team]        set nick [g_charfilter $nick]        if { $team == "" } {          set numberteama [lsearch -exact $g_teamaserver $nick ]          set numberteamb [lsearch -exact $g_teambserver $nick ]          set ispresent [expr $numberteama + $numberteamb]          if { $ispresent == -2 } {            if { [llength $g_teambserver] &lt; [llength $g_teamaserver] } {              set team b            } else {              set team a            }          } else {            putserv "NOTICE $nick :[g_txt addme1]"            return 0          }        }        if { $g_quality == 1 } {          if { ( [isvoice $nick $channel] ) || ( [isop $nick $channel] ) } {            if { ( [lsearch -exact $team a ] &gt;-1 ) &amp;&amp; ( [lsearch -exact $g_teamaserver $nick ] &lt;0 ) &amp;&amp; ( [llength $g_teamaserver] &lt; [expr $g_maxpl/2] ) } {              set g_teamaserver [linsert $g_teamaserver end $nick ]              if {[lsearch -exact $g_teambserver $nick ] &gt;-1 } {                set playerindex [lsearch -exact $g_teambserver $nick ]                set g_teambserver [lreplace $g_teambserver $playerindex $playerindex ] if {[set idx [lsearch -exact $g_teamaserver $g_serverholder]] =&gt; 0} {  set g_teamaserver [lreplace $g_teamaserver $idx $idx]               }              set g_playernumber [expr [llength $g_teamaserver]+[llength $g_teambserver]]              g_settopic            } elseif { ( [lsearch -exact $team b] &gt;-1 ) &amp;&amp; ( [lsearch -exact $g_teambserver $nick ] &lt;0 ) &amp;&amp; ( [llength $g_teambserver] &lt; [expr $g_maxpl/2] ) } {              set g_teambserver [linsert $g_teambserver end $nick ]              if {[lsearch -exact $g_teamaserver $nick ] &gt;-1 } {                set playerindex [lsearch -exact $g_teamaserver $nick ]                set g_teamaserver [lreplace $g_teamaserver $playerindex $playerindex ] if {[set idx [lsearch -exact $g_teambserver $g_serverholder]] =&gt; 0} {  set g_teambserver [lreplace $g_teambserver $idx $idx]               }              set g_playernumber [expr [llength $g_teamaserver]+[llength $g_teambserver]]              g_settopic            } else {              putserv "NOTICE $nick :[g_txt addme1]"            }            if { $g_playernumber == $g_maxpl } {              g_launchgame              set g_quality 0            } elseif { $g_playernumber &gt; [expr $g_maxpl - $g_playerleft] } {              set g_playerneeded [expr $g_maxpl -$g_playernumber]              putserv "NOTICE $channel :[g_txt start5] $channel !! [g_txt separator2] $g_playerneeded [g_txt start6]"NOTICE $g_spamchanneltest :[g_txt start5] $channel !! [g_txt separator2] $g_playerneeded [g_txt start6]"            }          } else {            putserv "NOTICE $nick :[g_txt addme2]"          }        } elseif { $g_quality == 0 } {          if { ( [lsearch -exact $team a ] &gt;-1 ) &amp;&amp; ( [lsearch -exact $g_teamaserver $nick ] &lt;0 ) &amp;&amp; ( [llength $g_teamaserver] &lt; [expr $g_maxpl/2] ) } {            set g_teamaserver [linsert $g_teamaserver end $nick ]            if {[lsearch -exact $g_teambserver $nick ] &gt;-1 } {              set playerindex [lsearch -exact $g_teambserver $nick ]              set g_teambserver [lreplace $g_teambserver $playerindex $playerindex ]            }            set g_playernumber [expr [llength $g_teamaserver]+[llength $g_teambserver]]            g_settopic          } elseif { ( [lsearch -exact $team b] &gt;-1 ) &amp;&amp; ( [lsearch -exact $g_teambserver $nick ] &lt;0 ) &amp;&amp; ( [llength $g_teambserver] &lt; [expr $g_maxpl/2] ) } {            set g_teambserver [linsert $g_teambserver end $nick ]            if {[lsearch -exact $g_teamaserver $nick ] &gt;-1 } {              set playerindex [lsearch -exact $g_teamaserver $nick ]              set g_teamaserver [lreplace $g_teamaserver $playerindex $playerindex ]            }            set g_playernumber [expr [llength $g_teamaserver]+[llength $g_teambserver]]            g_settopic          } else {            putserv "NOTICE $nick :[g_txt addme1]"          }          if { $g_playernumber == $g_maxpl } {            g_launchgame          } elseif { $g_playernumber &gt; [expr $g_maxpl - $g_playerleft] } {            set g_playerneeded [expr $g_maxpl - $g_playernumber]            putserv "NOTICE $channel :[g_txt start5] $channel !! [g_txt separator2] $g_playerneeded [g_txt start6]"putserv "NOTICE $g_spamchanneltest :[g_txt start5] $channel !! [g_txt separator2] $g_playerneeded [g_txt start6]"          }        }      } else {        putserv "NOTICE $nick :[g_txt addme3]"      }    } else {      putserv "NOTICE $nick :[g_txt addme4]"    }  }}}}</code></pre></div>and i have that error when i add<div class="codebox"><p>Code: </p><pre><code>Tcl error [g_addme]: syntax error in expression "[set idx [lsearch -exact $g_teamaserver $g_serverholder]] =&gt;...": extra tokens at end of expression</code></pre></div>thnx again..<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=8360">ultralord</a> — Wed Jan 14, 2009 3:06 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[speechles]]></name></author>
		<updated>2009-01-13T21:17:22-04:00</updated>

		<published>2009-01-13T21:17:22-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=86915#p86915</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=86915#p86915"/>
		<title type="html"><![CDATA[linsert and something else]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=86915#p86915"><![CDATA[
<blockquote class="uncited"><div>and i have one last problem the problem is when i split like speechles the g_teamaserver or g_teambserver the problem is from others of my procs because is "reading" all the nicks</div></blockquote>This is because it lacks the join necessary.<div class="codebox"><p>Code: </p><pre><code>set g_teamaserver [split $g_teamaserver]set g_teambserver [split $g_teambserver]If {[set founda [lsearch -exact  $g_teamaserver $g_serverholder]] != -1} {   set g_teamaserver [lreplace $g_teamaserver $founda $founda]} elseif {[set foundb [lsearch -exact $g_teambserver $g_serverholder]] != -1} {   set g_teambserver [lreplace $g_teambserver $foundb $foundb]}set g_teamaserver [join $g_teamaserver]set g_teambserver [join $g_teambserver]</code></pre></div>Possibly? If there is still an issue, remove both pairs of set lines containing [splits] and [joins] (or simply use nml375's code) and try again. One of these ways has to work.. *crosses fingers*<br>note: the only way it wouldn't would be case insensitive detection. So if your using [string tolower] anywhere you might need to do it to the list and target before attempting the lsearch (it lacks -nocase option for some reason).<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=8138">speechles</a> — Tue Jan 13, 2009 9:17 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[ultralord]]></name></author>
		<updated>2009-01-13T20:46:15-04:00</updated>

		<published>2009-01-13T20:46:15-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=86913#p86913</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=86913#p86913"/>
		<title type="html"><![CDATA[linsert and something else]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=86913#p86913"><![CDATA[
thnkx again for all answers.. i try these ways to do my work.. and i have one last problem the problem is when i split like speechles the g_teamaserver or g_teambserver the problem is from others of my procs because is "reading" all the nicks but the only thing what i want is to set 4 nicks of 5 (nick1 nick2 nick3 nick4 nick5) on g_teamaserver or g_teambserver if g_serverholder is one of these nicks(1...5)<br><br>thanks for all your opinion i unterestand now how it works lsearch .. but how i can do that ?<br><br><br>i have many confusions heh i havent so much time to do all the things but i try :/<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=8360">ultralord</a> — Tue Jan 13, 2009 8:46 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[speechles]]></name></author>
		<updated>2009-01-13T19:20:37-04:00</updated>

		<published>2009-01-13T19:20:37-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=86912#p86912</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=86912#p86912"/>
		<title type="html"><![CDATA[linsert and something else]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=86912#p86912"><![CDATA[
<blockquote class="uncited"><div>@speechles:<br>Oh btw, my code is coherent, whereas yours isn't  *nag*  <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_wink.gif" width="15" height="15" alt=";)" title="Wink"></div></blockquote>Mine is simplified on purpose to show ultralord how to do this himself. I wasn't trying to show off or anything, just trying to be helpful was all. Not to stray off topic or anything, but yes, I do believe ultralord has some confusion regarding strings vs lists.  <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_razz.gif" width="15" height="15" alt=":P" title="Razz"><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=8138">speechles</a> — Tue Jan 13, 2009 7:20 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[nml375]]></name></author>
		<updated>2009-01-13T19:17:55-04:00</updated>

		<published>2009-01-13T19:17:55-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=86911#p86911</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=86911#p86911"/>
		<title type="html"><![CDATA[linsert and something else]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=86911#p86911"><![CDATA[
I believe this is straying away from the topic and turning into a mere academic question.<br><br>Needless to say, earlier posts by ultralord do suggest he is treating it as a list, adding elements with <strong class="text-strong">linsert</strong>.<br>And by iterate, I'm referring to the next time the command is executed...<br><br>@speechles:<br>Oh btw, my code is coherent, whereas yours isn't  *nag*  <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_wink.gif" width="15" height="15" alt=";)" title="Wink"><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=8052">nml375</a> — Tue Jan 13, 2009 7:17 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[speechles]]></name></author>
		<updated>2009-01-13T19:08:53-04:00</updated>

		<published>2009-01-13T19:08:53-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=86910#p86910</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=86910#p86910"/>
		<title type="html"><![CDATA[linsert and something else]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=86910#p86910"><![CDATA[
<div class="codebox"><p>Code: </p><pre><code>foreach {nick6 nick7 nick8 nick9 nick10} [split $g_teambserver ]  {} </code></pre></div>Seeing this illustrates the author is converting a string $g_teambserver into a list to be iterated through the foreach. Meaning the author expects $g_teambserver to be a string, yet wants the ease of use provided by list commands. This is why I think the problem hasn't been solved yet.<br><br>Also, why would my code iterate? It's meant be replace his entire code, the foreach, everything. Only thing I left out were two [joins] at the bottom to return the two lists to strings. Mostly because I'm confused at this point.. laff<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=8138">speechles</a> — Tue Jan 13, 2009 7:08 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[nml375]]></name></author>
		<updated>2009-01-13T19:03:42-04:00</updated>

		<published>2009-01-13T19:03:42-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=86909#p86909</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=86909#p86909"/>
		<title type="html"><![CDATA[linsert and something else]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=86909#p86909"><![CDATA[
speechles, you do realize that the next time you iterate your code, you'll be splitting a list, not a string (assuming it has not been converted back into a string somewhere else) ?  <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_wink.gif" width="15" height="15" alt=";)" title="Wink"><br><br>Or simply, since we're lreplacing all over, I figured it'd be a list all of the time...<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=8052">nml375</a> — Tue Jan 13, 2009 7:03 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[speechles]]></name></author>
		<updated>2009-01-13T19:07:18-04:00</updated>

		<published>2009-01-13T18:56:16-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=86908#p86908</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=86908#p86908"/>
		<title type="html"><![CDATA[linsert and something else]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=86908#p86908"><![CDATA[
<blockquote class="uncited"><div><div class="codebox"><p>Code: </p><pre><code>if { $g_serverholder == $nick10 } {set idx [lsearch -exact $g_teambserver $nick10]if {$idx != -1} {set g_teambserver [lreplace $g_teambserver $idx $idx]} </code></pre></div></div></blockquote>Upon deconstructing this, one wonders why we test if $g_serverholder equals $nick10, just to lsearch for $nick10. You realize if $g_serverholder == nickANY, then we can just search using $g_serverholder. There doesn't need to be this elaborate nested if to accomplish it either. The foreach, converting into 5 elements, then compare using an elaborate if-then procedure, just to in the end lreplace the thing out. Boy, what a long road when the short one is so obvious. Let me point you towards a much cleaner, elegant and simpler solution.<div class="codebox"><p>Code: </p><pre><code># split here once for simplicity, this creates a list# remember when i asked if you were doing this# on a string or list? we want a list.set g_teamaserver [split $g_teamaserver]set g_teambserver [split $g_teamaserver]# search each list a and b and return the lindex# position for each into founda and foundbset founda [lsearch -exact  $g_teamaserver $g_serverholder]]set foundb [lsearch -exact $g_teambserver $g_serverholder]]# if we have positive lsearches (found it!) let's remove it from# the list on either of them.If {$founda != -1} { set g_teamaserver [lreplace $g_teamaserver $founda $founda] }If {$foundb != -1} { set g_teambserver [lreplace $g_teambserver $foundb $foundb] }</code></pre></div>This accomplishes the same thing with far less code expended.<br><br>@nml375, haw, we almost said the exact same thing simultaneously <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_wink.gif" width="15" height="15" alt=";)" title="Wink"> but you forgot to split. You forgot about his funky foreach that does nothing except span the value into 5 variables.<div class="codebox"><p>Code: </p><pre><code>foreach {nick1 nick2 nick3 nick4 nick5} [split $g_teamaserver ]  {}foreach {nick6 nick7 nick8 nick9 nick10} [split $g_teambserver ]  {} </code></pre></div>So I assume the greater part of the problem is the confusion of lists vs strings.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=8138">speechles</a> — Tue Jan 13, 2009 6:56 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[nml375]]></name></author>
		<updated>2009-01-13T18:48:32-04:00</updated>

		<published>2009-01-13T18:48:32-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=86907#p86907</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=86907#p86907"/>
		<title type="html"><![CDATA[linsert and something else]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=86907#p86907"><![CDATA[
You are indeed nesting your if-constructs, pretty much preventing any actions unless <em class="text-italics">g_serverholder</em> is equal to <em class="text-italics">nick1</em>. At that case, making the rest of the code useless.<br><br>Also, that huge block of code could really be condensed to something much smaller, making use of the fact that we're using variables..<br><div class="codebox"><p>Code: </p><pre><code>... if {[set idx [lsearch -exact $g_teamaserver $g_serverholder]] =&gt; 0} {  set g_teamaserver [lreplace $g_teamaserver $idx $idx] } elseif {[set idx [lsearch -exact $g_teambserver $g_serverholder]] =&gt;0} {  set g_teambserver [lreplace $g_teambserver $idx $idx] }...</code></pre></div>Basically, if we get a positive hit in the first <strong class="text-strong">lsearch</strong>, do the replacement in <em class="text-italics">g_teamaserver</em>. If we don't, move on and test <em class="text-italics">g_teambserver</em> in the same manner...<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=8052">nml375</a> — Tue Jan 13, 2009 6:48 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[nml375]]></name></author>
		<updated>2009-01-13T18:35:02-04:00</updated>

		<published>2009-01-13T18:35:02-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=86906#p86906</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=86906#p86906"/>
		<title type="html"><![CDATA[linsert and something else]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=86906#p86906"><![CDATA[
Most likely, you are nesting your if-constructs in an improper way..<br>Indenting your code would probably make this easier to spot..<br>I'm going to have a deeper look at the code, and get back later.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=8052">nml375</a> — Tue Jan 13, 2009 6:35 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[ultralord]]></name></author>
		<updated>2009-01-13T18:31:23-04:00</updated>

		<published>2009-01-13T18:31:23-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=86905#p86905</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=86905#p86905"/>
		<title type="html"><![CDATA[linsert and something else]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=86905#p86905"><![CDATA[
ok.. sorry for any truble. if i make anyone.. i made that proc<br><br><div class="codebox"><p>Code: </p><pre><code>proc g_findadmin { } {      global g_pickupchan nick1 nick2 nick3 players g_players nick4 g_plstats g_teambserver g_teamaserver nick5 nick6 g_serverholder nick7 nick8 nick9 nick10 g_lastinfoteama g_lastinfoteambforeach {nick1 nick2 nick3 nick4 nick5} [split $g_teamaserver ]  {}foreach {nick6 nick7 nick8 nick9 nick10} [split $g_teambserver ]  {}if { $g_serverholder == $nick1 } {set idx [lsearch -exact $g_teamaserver $nick1]if {$idx != -1} {set g_teamaserver [lreplace $g_teamaserver $idx $idx]} else { if { $g_serverholder == $nick2 } {set idx [lsearch -exact $g_teamaserver $nick2]if {$idx != -1} {set g_teamaserver [lreplace $g_teamaserver $idx $idx]   } else {if { $g_serverholder == $nick3 } {set idx [lsearch -exact $g_teamaserver $nick3]if {$idx != -1} {set g_teamaserver [lreplace $g_teamaserver $idx $idx]} else {if { $g_serverholder == $nick4 } {set idx [lsearch -exact $g_teamaserver $nick4]if {$idx != -1} {set g_teamaserver [lreplace $g_teamaserver $idx $idx]} else {if { $g_serverholder == $nick5 } {set idx [lsearch -exact $g_teamaserver $nick5]if {$idx != -1} {set g_teamaserver [lreplace $g_teamaserver $idx $idx]} else {if { $g_serverholder == $nick6 } {set idx [lsearch -exact $g_teambserver $nick6]if {$idx != -1} {set g_teambserver [lreplace $g_teambserver $idx $idx]} else {if { $g_serverholder == $nick7 } {set idx [lsearch -exact $g_teambserver $nick7]if {$idx != -1} {set g_teambserver [lreplace $g_teambserver $idx $idx]} else {if { $g_serverholder == $nick8 } {set idx [lsearch -exact $g_teambserver $nick8]if {$idx != -1} {set g_teambserver [lreplace $g_teambserver $idx $idx]} else {if { $g_serverholder == $nick9 } {set idx [lsearch -exact $g_teambserver $nick9]if {$idx != -1} {set g_teambserver [lreplace $g_teambserver $idx $idx]} else {if { $g_serverholder == $nick10 } {set idx [lsearch -exact $g_teambserver $nick10]if {$idx != -1} {set g_teambserver [lreplace $g_teambserver $idx $idx]}}}}}}}}}}}}}}}}}}}}}</code></pre></div>but doesnt work.. i want to remove the g_serverholder nick from the list teamaserver or teambserver ( teamaserver has 5 nicks = nick1 nick2 nick3 nick4 nick5 ) and teambserver the same..<br><br>thanks but i have some problems with other things and i cant fix that <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_sad.gif" width="15" height="15" alt=":(" title="Sad"><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=8360">ultralord</a> — Tue Jan 13, 2009 6:31 pm</p><hr />
]]></content>
	</entry>
	</feed>
