<?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/20324" />

	<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>2017-04-25T05:52:06-04:00</updated>

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

		<entry>
		<author><name><![CDATA[gembels]]></name></author>
		<updated>2017-04-25T05:52:06-04:00</updated>

		<published>2017-04-25T05:52:06-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=106196#p106196</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=106196#p106196"/>
		<title type="html"><![CDATA[[RESOLVED] Need help making script recycle]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=106196#p106196"><![CDATA[
when calling a proc you need follow the arg after that in anywhere and pass the global variable if you need it.<br><br>try this<div class="codebox"><p>Code: </p><pre><code>pub_word Landslyde "*!*@*" Landslyde "#channel" ok</code></pre></div><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12028">gembels</a> — Tue Apr 25, 2017 5:52 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Landslyde]]></name></author>
		<updated>2017-04-22T21:40:19-04:00</updated>

		<published>2017-04-22T21:40:19-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=106180#p106180</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=106180#p106180"/>
		<title type="html"><![CDATA[[RESOLVED] Need help making script recycle]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=106180#p106180"><![CDATA[
willyw:<br><br>I edited the initial post and provided the entire script.  I added in two places:<br><div class="codebox"><p>Code: </p><pre><code>#############################################pub_word # this doesnt work#############################################</code></pre></div>So in <div class="codebox"><p>Code: </p><pre><code>proc noone_gotit {} {   global winuse chan letters ansonoff   if {$ansonoff} {     putserv "PRIVMSG $chan :Nobody got it...it\'s \0034$letters"   } else {      putserv "PRIVMSG $chan :Nobody got it...\0034losers!"   }   unbind pub - $letters pub_gotit   set winuse 0    set chan ""    pub_word}</code></pre></div>I get this error:<div class="codebox"><p>Code: </p><pre><code>wrong # args: should be "pub_word nick uhost handle channel ?arg ...?"</code></pre></div>So, if I add this as such to the proc noone_gotit {}:<div class="codebox"><p>Code: </p><pre><code>proc noone_gotit {} {   global winuse chan letters ansonoff   if {$ansonoff} {     putserv "PRIVMSG $chan :Nobody got it...it\'s \0034$letters"   } else {      putserv "PRIVMSG $chan :Nobody got it...\0034losers!"   }   unbind pub - $letters pub_gotit   set winuse 0    set chan ""    pub_word {nick uhost handle channel args}}</code></pre></div>I get the same error:<div class="codebox"><p>Code: </p><pre><code>wrong # args: should be "pub_word nick uhost handle channel ?arg ...?"</code></pre></div>And to this point, that's where I am. Stuck in the mud and spinning wheels.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12386">Landslyde</a> — Sat Apr 22, 2017 9:40 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[willyw]]></name></author>
		<updated>2017-04-22T09:29:11-04:00</updated>

		<published>2017-04-22T09:29:11-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=106177#p106177</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=106177#p106177"/>
		<title type="html"><![CDATA[Re: Need help making script recycle]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=106177#p106177"><![CDATA[
<blockquote class="uncited"><div>...<br>Here's his game code in its entirety:<br></div></blockquote>With only a fast glance, it doesn't look like that is the whole script.  <br>There's no pub bind for !word  .<br>So ...  what else is missing?    <br><br>Also, there is an addition... you commented that it is the part that doesn't work.<br>So ... what else is added?<br><br>In other words - your best bet would be to post the original script "in its entirety"  (  <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_smile.gif" width="15" height="15" alt=":)" title="Smile">  )   .   No edits.  No changes.  The whole thing.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=10420">willyw</a> — Sat Apr 22, 2017 9:29 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Landslyde]]></name></author>
		<updated>2017-04-24T23:18:10-04:00</updated>

		<published>2017-04-15T21:05:10-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=106113#p106113</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=106113#p106113"/>
		<title type="html"><![CDATA[[RESOLVED] Need help making script recycle]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=106113#p106113"><![CDATA[
This is an old word game script by Murf. What i'm trying to do (and can't) is make it so that when a word is either NOT guessed or IS guessed, I want the game to start over without the chatters having to constantly type !word to start a new game. I just want it to continue.<br><br>I've tried inserting pub_word at the ends of the main procs, but it never goes back to that proc pub_word. So i don't know what to do.<br><br>Here's his game code in its entirety:<br><div class="codebox"><p>Code: </p><pre><code>##################  Written by Murf 10/10/97 ####################                                                           #### Requires wordlist.txt and wscore file                     #### I have included a wordlist file, but if you want to write #### your own, the format is                                   ## ## &lt;word to scramble&gt;:&lt;clue&gt;                                 ####                                                           ####                                                           ####                                                           ####  The only  commands are:                                  ####                                                           ####  !word       -- starts the game                           ####  !score      -- spews the top ten scorers                 ####  !wordswitch -- turns it on or off                        ####  !wordanswer -- turn the answer on or off                 ####           Check www.blueday.org/eggdrop.html              ####           Contact murf@mindless.com with questions        ################################################################### NOTES# Scores are kept globally# Scores are only kept for those in the bot's user list.# The special user used to track various things, is added#   by the script.## REVISION HISTORY# Feb 12 2006--Fixed the score, it didn't work with under 10 entries -- Mat# Mar 26 2002   --  Fixed adding new channel # Dec 18 2000   --  Fixed the score again. It was totally broken, not listing#                   anything close to the top 10 scorers#               --  fixed problem with possible duplicate entries in the score#                   file is users change case of their nicks# July 9 2000   --  Added switch to say/not say the answer if no one gets it.#--  Got rid of all the 'putchan's# July 2 2000 -- Fixed bug in the_score that didn't account for # less than 10 people in the score list.#--Fixed bug in the_score that failed to check for #non-existent score file.## BINDSbind pub -|- !score the_scorebind pub -|- !word pub_wordbind time - "05 03 % % %" wo_refresh_timebind msg o !wordgame word_onoffbind msg o !wordanswer answer_onoff## VARIABLES, set these.# This is the file that holds the wordlist, set it to whateverset wlistfile /home/gronk/eggdrop/scripts/wordlist.txt# This file keeps scores again call it whatever set wscorefile /home/gronk/eggdrop/scripts/wscore# This special user is added to the bots userlist and used to track# where each chan is in the wordlistset specuser specialwd# Say the answer if no one gets it# 0 is don't say it / 1 is say itset ansonoff 1## ----------------Leave the rest alone----------------------------------# This variable tells whether the script is being run.  It will only allow# the game to be played in one channel at a time, otherwise too many timers# too much confusion.# Occasionally, the script may become confused during desynchs and says its # running when it isn't. You must reset this variable to 0. Don't worry# it doesnt happen often.  Obviously leave it set to 0 hereset winuse 0# This variable is the place in the wordlist.  Its initialized to 0 don't# mess with it.  I tried randomizing this, but found this worked better,# but its not hard to randomize if you like that better.set word_list_count 0# On off switch for the annoying people# 0 is off/ 1 is onset glonoff 1# Global channel variable, initialized to null, leave aloneset chan ""# Initializes global wordlist to null, leave it aloneset words ""# ----------CODE--------------------------------------------------------# Procedure to turn on/off whether the answer is given if no one# gets it.proc answer_onoff {nick uhost handle args} {  global ansonoff botnick  set onoff [string tolower [ string trim [lindex [split $args] 0] "{}" ]]  if {$onoff == "on"} {  set ansonoff 1putserv "NOTICE $nick :Wordgame will now tell you losers the answers ;-P"return}   if {$onoff == "off"} { set ansonoff 0putserv "NOTICE $nick :Wordgame will no longer tell you losers the answers"return}   putserv "NOTICE $nick :USAGE: /msg $botnick !wordanswer on\/off"   return}# Had to add an on off switch cause some pple started annoying meproc word_onoff {nick uhost handle args} {  global botnick glonoff  set onoff [string tolower [ string trim [lindex [split $args] 0] "{}" ]]  if {$onoff == "on"} {  set glonoff 1putserv "NOTICE $nick :Wordgame is turned on"return}   if {$onoff == "off"} { set glonoff 0putserv "NOTICE $nick :Wordgame is turned off"return}   putserv "NOTICE $nick :USAGE: /msg $botnick !wordswitch on\/off"   return}# This is the main proc, it spews the word and sets the timers to do the # rest.proc pub_word {nick uhost handle channel args} {   global wscorefile wlistfile words word_list_count answer winuse \chan letone lettwo letters specuser glonoff   if {$glonoff == 0} {putserv "PRIVMSG $channel :Sorry, wordgame is turned off, try again later"return   }    set chn [string tolower $channel]   if {$word_list_count == 0} {       if {![validuser $specuser]} {          set channels [channels]          adduser $specuser specuser!special@word.special.org          foreach chann $channels {             setuser $specuser XTRA wcount.$chann 0          }       }       set word_list_count [getuser $specuser XTRA wcount.$chn]       if {$word_list_count == ""} {          setuser $specuser XTRA wcount.$chn 0          set $word_list_count 0       }         set words ""       set fd [open $wlistfile r]       while {![eof $fd]} {          lappend words [gets $fd]       }       close $fd   }   if {($winuse == 1) &amp;&amp; ([string compare $chn $chan] != 0)} {      putserv "PRIVMSG $chn :Sorry, they're already playing in $chan, go join in. I'll tell em your coming, $nick."    return 0   } elseif {($winuse == 1) &amp;&amp; ([string compare $chn $chan] == 0)} {         putserv "PRIVMSG $chan :HEY! One word at a time!"     return 0   } elseif {$winuse == 0} {      set chan $chn      set winuse 1      set word_pair [lindex $words $word_list_count]      set answer [lindex [split $word_pair :] 1]      set word_split [split $word_pair :]      set letters [lreplace $word_split 1 1]      set let_split [split $letters {}]      set letone [lindex $let_split 0]      set slettwo $letone      set slettwo [join [lappend slettwo [lindex $let_split 1]]]      regsub { } $slettwo {} lettwo      set i [llength $let_split]      set smixed ""      set tmixed ""      for {set j 0} {$j &lt; $i} {incr j} {        set k [rand [llength $let_split]]         set smixed $tmixed        set smixed [lappend smixed [lindex $let_split $k]]        set let_split [lreplace $let_split $k $k]        regsub { } $smixed {} tmixed      }      set mixed $tmixed      bind pub - $letters pub_gotit      putserv "PRIVMSG $chan :Unscramble ---&gt; \0036 $mixed "      incr word_list_count       if {$word_list_count &gt;= [expr [llength $words] -1]} {         set word_list_count "0"      }      setuser $specuser XTRA wcount.$chn $word_list_count      utimer 60 noone_gotit       utimer 15 clue_1      utimer 30 clue_2      utimer 45 clue_3   }}# All the timers expired and no one got it. Spew to chan.proc noone_gotit {} {   global winuse chan letters ansonoff   if {$ansonoff} {     putserv "PRIVMSG $chan :Nobody got it...it\'s \0034$letters"   } else {      putserv "PRIVMSG $chan :Nobody got it...\0034losers!"   }   unbind pub - $letters pub_gotit   set winuse 0    set chan ""    #############################################   pub_word # this doesnt work   #############################################}# List of things to say when a validuser winsset winsay {"must be a fluke""you rule!!""how's that VD comin along?""can I be your friend?""you're such a badass!""must have gotten all the easy ones!""but you still suck!""you must be on \0034fire!!""cheater!"}# Somebody won, spew to chan and update score file. Scores are kept for both# daily and cumulative.  Once anyone hits 500 all scores are reset.proc pub_gotit {nick uhost handle channel args} {   global wscorefile words letters answer  winuse chan winsay   putserv "PRIVMSG $chan :Woohoo $nick!! You got it...\0034$letters"   kill_timers      unbind pub - $letters pub_gotit   if {![validuser $handle]} {     set winuse 0     set chan ""     return 0   }   if {![file exists $wscorefile]} {set fd [open $wscorefile w]close $fd   }   set fd [open $wscorefile r]   set j 0   while {![eof $fd]} {     lappend score [gets $fd]     set j [incr j]    }   set i [expr $j - 1]   set score [lreplace $score $i $i]   close $fd   for {set k 0} {$k &lt; $i} {incr k 3} {     set scnick [lindex $score $k]     if {[string tolower $handle] == [string tolower $scnick]} {        set newd [expr [lindex $score [expr $k + 1]] + 1]        set newf [expr [lindex $score [expr $k + 2]] + 1]        set score [lreplace $score [expr $k + 1] [expr $k + 2] $newd $newf]        set dscore [lindex $score [expr $k + 1]]        set rand_say [lindex $winsay [rand [llength $winsay]]]        putserv "PRIVMSG  $chan :$nick you've won $dscore times today, $rand_say"        if {$newf == 500} {          putserv "PRIVMSG $chan :OH MY GAWD!! $scnick just scored 500 since time began!"          set score [lreplace $score 1 2 0 0]          for {set k 1} {$k &lt; $i} {incr k 2} {            set score [lreplace $score $k $k 0]    incr k            set score [lreplace $score $k $k 0]          }          putserv "PRIVMSG $chan :\001ACTION sprinkles bot dust and time begins again!"        }        set winuse 0        set chan ""        set fd [open $wscorefile w]        foreach line $score {          puts $fd $line        }         close $fd        return 0     }     }   putserv "PRIVMSG $chan :$nick this is your first ever win!!!...Don't you feel pathetic!"   set score [lappend score $handle]   set score [lappend score 1]   set score [lappend score 1]   set fd [open $wscorefile w]     foreach line $score {       puts $fd $line     }   close $fd   set winuse 0   set chan ""   #############################################   pub_word # this doesnt work   #############################################}}proc the_score {nick uhost handle channel args} {  global botnick wscorefile words answer winuse chan  if {($winuse == 1) &amp;&amp; ($chan == $channel)} {    putserv "PRIVMSG $chan :Sheesh! Can't you see we're playing here!!"  return 0  }  if {![file exists $wscorefile]} {    putserv "PRIVMSG $chan : No one has scored yet!"    return  }  set fd [open $wscorefile r]  set j 0   while {![eof $fd]} {     lappend score [gets $fd] incr j   }   set i [expr $j - 1]   set score [lreplace $score $i $i]   close $fd   set looptest [llength $score]   for {set k 0} {$k &lt; $looptest} {incr k 3} {      set wosnick [lindex $score $k]       set dscore [lindex $score [expr $k + 1]]      set fscore [format "%d" [lindex $score [expr $k + 2]]]      lappend tempsortscore [format "%.20d %d %s" $fscore $dscore $wosnick]   }   set tempsortscore [lsort -decreasing $tempsortscore]   for {set i 0} {$i &lt; 10} {incr i} {      set tiscore [lindex $tempsortscore $i]  if {$tiscore != ""} {  set newtempsortscore [string trimleft [lindex $tiscore 0] 0]      append sortscore [format "\0034 %s\.\003 %s\(%d\/%d\)  " [expr {$i + 1}] [lindex $tiscore 2] $newtempsortscore [lindex $tiscore 1]]     }   }   set slength [llength $sortscore]   putserv "PRIVMSG $channel :The top 10 Scramble scorers are (Total/Daily):"   putserv "PRIVMSG $channel :$sortscore"}# Give clue wordproc clue_1 {} {   global chan answer   set clue $answer   putserv "PRIVMSG $chan :Clue ---&gt;\00312  $clue"}# Give first letter of the wordproc clue_2 {} {   global chan letone   set clue $letone   putserv "PRIVMSG $chan :First letter ---&gt;\00312  $clue"}# Give the second letterproc clue_3 {} {   global chan lettwo   set clue $lettwo    putserv "PRIVMSG $chan :First two letters ---&gt;\00312  $clue"}# Kill all remaining timers when someone wins.proc kill_timers {} {   global chan   foreach j [utimers] {     if {[lindex $j 1] == "noone_gotit"} {        killutimer [lindex $j 2]     }     if {[lindex $j 1] == "clue_1"} {        killutimer [lindex $j 2]     }     if {[lindex $j 1] == "clue_2"} {        killutimer [lindex $j 2]     }     if {[lindex $j 1] == "clue_3"} {        killutimer [lindex $j 2]     }   }   return 0}# Its 3:00 am, clear the daily scores.proc wo_refresh_time {m h d mo y} {  global wscorefile   set fd [open $wscorefile r]  set j 0  while {![eof $fd]} {     lappend score [gets $fd]     set j [incr j]    }  set i [expr $j - 1]  set score [lreplace $score $i $i]  close $fd  set score [lreplace $score 1 1 0]  for {set k 1} {$k &lt; $i} {incr k 3} {     set score [lreplace $score $k $k 0]  }  set fd [open $wscorefile w]  foreach line $score {      puts $fd $line  }   close $fd  return 1}putlog "Wordgame by murf loaded"</code></pre></div>If anyone can help me with this, I'd appreciate you. Thanks.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12386">Landslyde</a> — Sat Apr 15, 2017 9:05 pm</p><hr />
]]></content>
	</entry>
	</feed>
