Skip to content
MSN Addons

Code for this text file

A TG007 community discussion started by nyt1972.

Discussion 52 posts
Page 3 of 3
Open
Topic #5787 · 52 published posts · 4,049 views

Thats great, thanx a lot, I want that when I type !show Heading1, so it needs to starts Heading when and if I type !stop then it stop this.

 

Suppose heading1 is a long topic and I want to stop it or may be pause and resume.

 

hope u will get my point now.

; mq and mdeq by Pete®tje 2004, used for slowing messages via queueing them
alias mq { 
 inc %mq_pointer 
 hadd -m mq %mq_pointer $1- 
 %mq = $addtok(%mq,%mq_pointer,32) 
 if (!$timer(mq)) { .timermq -m 1 $iif(%delay_mq,%delay_mq,400) mdeq } 
} 
alias mdeq { 
 if ($hget(mq,0).item == 0) { unset %mq* } 
 else { 
   var %item = $gettok(%mq,1,32) 
   %mq = $deltok(%mq,1,32) 
   msg $hget(mq,%item) 
   hdel mq %item 
   if (%mq) { .timermq -m 1 $iif(%delay_mq,%delay_mq,400) mdeq } 
   else { unset %mq_pointer } 
 } 
} 
on *:TEXT:!show *:*: {
 var %ll = 1
 while ($read(mydir\list.txt,%ll)) {
   var %f = $ifmatch , %r = $read(mydir\ $+ %f, s, [ $+ $2 $+ ]) , %l = $calc($readn + 1)
   while ($read(mydir\ $+ %f,%l)) {
     %r = $ifmatch
     if ([*] !iswm %r) mq $target %r
     else break
     inc %l
   }
   inc %ll
 }
}
on *:TEXT:!pause:*: { .timermq off | msg $target To resume type !resume }
on *:TEXT:!resume:*: .timermq -m 1 $iif(%delay_mq,%delay_mq,400) mdeq
on *:TEXT:!stop:*: { hfree mq | msg $target Que Cleared. }

 

Not the most efficient way, but it is the quickest way.

Thanks for your effort, I see these two error message in status window

 

* /set: line too long (line 5, mycode.mrc)

-

* /msg: insufficient parameters (line 13, mycode.mrc)

that would happen if you have a lot of text, so i think you do :P

But before the pause and resume things it was working fine.

hey TGK where u gone, I really need you. Am I bothering too much?

; mq and mdeq by Pete®tje 2004, used for slowing messages via queueing them
alias mq { 
inc %mq_pointer 
hadd -m mq %mq_pointer $1- 
%mq = $addtok(%mq,%mq_pointer,32) 
if (!$timer(mq)) { .timermq -m 1 $iif(%delay_mq,%delay_mq,400) mdeq } 
} 
alias mdeq { 
if ($hget(mq,0).item == 0) { unset %mq* } 
else { 
var %item = $gettok(%mq,1,32) 
%mq = $deltok(%mq,1,32) 
msg $hget(mq,%item) 
hdel mq %item 
if (%mq) { .timermq -m 1 $iif(%delay_mq,%delay_mq,400) mdeq } 
else { unset %mq_pointer } 
} 
} 
on *:TEXT:!show *:*: {
var %ll = 1
while ($read(mydir\list.txt,%ll)) {
var %f = $ifmatch , %r = $read(mydir\ $+ %f, s, [ $+ $2 $+ ]) , %l = $calc($readn + 1)
while ($read(mydir\ $+ %f,%l)) {
%r = $ifmatch
if ([*] !iswm %r) mq $target %r
else break
inc %l
}
inc %ll
}
}
on *:TEXT:!pause:*: { .timermq off | msg $target To resume type !resume }
on *:TEXT:!resume:*: .timermq -m 1 $iif(%delay_mq,%delay_mq,400) mdeq
on *:TEXT:!stop:*: { hfree mq | unset %mq* | msg $target Que Cleared. }
on *:LOAD: unset %mq*

 

try that.

Thanks it do work, but when I pause and resume or stop it for few time and re-run it again then it give this error

 

/msg: insufficient parameters (line 13, mycode.mrc)

weird, it shouldn't do that, sorry, not to sure what i can say or do cause that is how the code should work, if it doesn't work that way, then there is no real recommendation i can give for it.

Could it be bcoz if I pause it and then I try to restart the previous text still exisits in the queue. I mean not using the !resume command to restart from the previous position but the !show Heading1 command.

 

Shouldn't the queue need to be cleared at start.

Edited Jan 25, 2006 10:13 AM by nyt1972

yea that would cause it. You need to do !presume, i guess i you should use this, which will solve your problem.

 

; mq and mdeq by Pete®tje 2004, used for slowing messages via queueing them
alias mq { 
inc %mq_pointer 
hadd -m mq %mq_pointer $1- 
%mq = $addtok(%mq,%mq_pointer,32) 
if (!$timer(mq)) { .timermq -m 1 $iif(%delay_mq,%delay_mq,400) mdeq } 
} 
alias mdeq { 
if ($hget(mq,0).item == 0) { unset %mq* } 
else { 
var %item = $gettok(%mq,1,32) 
%mq = $deltok(%mq,1,32) 
msg $hget(mq,%item) 
hdel mq %item 
if (%mq) { .timermq -m 1 $iif(%delay_mq,%delay_mq,400) mdeq } 
else { unset %mq_pointer } 
} 
} 
on *:TEXT:!show *:*: {
if ($hget(mq,0).item > 0) { msg $target Sorry there is already a !show going. To clear it, please type !stop other type !resume to continue the current !show going. | return }
var %ll = 1
while ($read(mydir\list.txt,%ll)) {
var %f = $ifmatch , %r = $read(mydir\ $+ %f, s, [ $+ $2 $+ ]) , %l = $calc($readn + 1)
while ($read(mydir\ $+ %f,%l)) {
%r = $ifmatch
if ([*] !iswm %r) mq $target %r
else break
inc %l
}
inc %ll
}
}
on *:TEXT:!pause:*: { .timermq off | msg $target To resume type !resume }
on *:TEXT:!resume:*: .timermq -m 1 $iif(%delay_mq,%delay_mq,400) mdeq
on *:TEXT:!stop:*: { hfree mq | unset %mq* | msg $target Que Cleared. }
on *:LOAD: unset %mq* 

 

Basically all i did was make it so that the user needs to either use !resume or !stop before it will allow another !show again.

Thank you dear,

 

Its working fine now.