mIRC Home    About    Download    Register    News    Help

Print Thread
#145610 25/03/06 12:46 PM
Joined: Mar 2006
Posts: 5
X
Nutrimatic drinks dispenser
OP Offline
Nutrimatic drinks dispenser
X
Joined: Mar 2006
Posts: 5
Hey guys

I've got a problem with updating the address list on channels, and I've noticed, mirc does NOT update the /WHO list for channels if you reconnect and have the option 'keep channels open' enabled. It does not do it even if it doesn't have the list.

First I thought it might have been because I had an older version of mirc (6.16) but today I've upgraded to see if it was fixed in there, but it still won't work.

It works fine if I close the channel windows every time before reconnecting, but that defeats the purpose of 'keep channels open' :tongue:

Thanks for your time

Last edited by xLadyHawkx; 25/03/06 12:47 PM.
#145611 26/03/06 02:18 PM
Joined: Feb 2005
Posts: 681
M
Fjord artisan
Offline
Fjord artisan
M
Joined: Feb 2005
Posts: 681
mIRC doesn't automatically do a /who to fill the IAL. It does
a /names and /mode .. someone plz correct me if I'm wrong.

#145612 26/03/06 08:38 PM
Joined: Dec 2002
Posts: 1,541
L
Hoopy frood
Offline
Hoopy frood
L
Joined: Dec 2002
Posts: 1,541
it does do a /names upon join by default yes


Those who fail history are doomed to repeat it
#145613 27/03/06 06:10 AM
Joined: Mar 2006
Posts: 5
X
Nutrimatic drinks dispenser
OP Offline
Nutrimatic drinks dispenser
X
Joined: Mar 2006
Posts: 5
i know it doesn't do a /who list on connect by default, but it does if you do

on *:join:#: { if ($nick == $me) { who $chan } }

i use it in my clonescanner to update the IAL list because /NAMES doesn't do that. Though i found out it will not update that /who list if you have 'keep channels open'

#145614 27/03/06 12:31 PM
Joined: Feb 2005
Posts: 681
M
Fjord artisan
Offline
Fjord artisan
M
Joined: Feb 2005
Posts: 681
Code:
on ME:*:JOIN:#:who #


I've used that for years. I don't normally have Keep channels open
selected but I selected it and disconnected several times and that
worked every time.

#145615 27/03/06 01:08 PM
Joined: Feb 2003
Posts: 3,432
S
Hoopy frood
Offline
Hoopy frood
S
Joined: Feb 2003
Posts: 3,432
If you join many channels at the same time, then that will flood you out or lag you badly..


if ($me != tired) { return } | else { echo -a Get a pot of coffee now $+($me,.) }
#145616 27/03/06 01:20 PM
Joined: Feb 2005
Posts: 681
M
Fjord artisan
Offline
Fjord artisan
M
Joined: Feb 2005
Posts: 681
I've never had a problem with that, but you could use a timer.

on ME:*:JOIN:#:.timerWho. $+ # 1 $chan(0) if ( # ischan) who #

#145617 27/03/06 01:58 PM
Joined: Jan 2003
Posts: 2,523
Q
Hoopy frood
Offline
Hoopy frood
Q
Joined: Jan 2003
Posts: 2,523
As a sidenote, putting channel names directly inside a timer can cause problems and even be exploited in certain cases. The reason is that a string like #$something (which is a valid channel name) will be evaluated (try //echo -a #$me to see what I mean). If $something is $findfile() or worse, an alias that does something potentially dangerous and that the malicious channel creator knows you have, there will be a problem. The easiest way is to use $encode/$decode with the 'm' parameter:
Code:
on ME:*:JOIN:#:.timerWho. $+ # 1 $chan(0) if ($decode( $encode(#,m) ,m) ischan) who $!v1


/.timerQ 1 0 echo /.timerQ 1 0 $timer(Q).com
#145618 27/03/06 02:23 PM
Joined: Feb 2005
Posts: 681
M
Fjord artisan
Offline
Fjord artisan
M
Joined: Feb 2005
Posts: 681
//echo -a #$me <--

mIRCManiac <--

heh I did not know that, I do now .. thanks for that. smile

~ Edit ~
Maybe this should be reported as a bug?

Last edited by mIRCManiac; 27/03/06 02:48 PM.
#145619 27/03/06 03:01 PM
Joined: Jan 2003
Posts: 2,523
Q
Hoopy frood
Offline
Hoopy frood
Q
Joined: Jan 2003
Posts: 2,523
It's actually a feature, at least for $1, $2 etc: the 5th example in the Aliases page of the help file explains.


/.timerQ 1 0 echo /.timerQ 1 0 $timer(Q).com
#145620 27/03/06 05:45 PM
Joined: Feb 2005
Posts: 681
M
Fjord artisan
Offline
Fjord artisan
M
Joined: Feb 2005
Posts: 681
Looking at the example in the help file, the echo above
shoud've been prefixed with a hash (#mIRCManiac) and
it wasn't (mIRCManiac).

//join #$me

mIRCManiac Illegal channel name

This one worked though
//tokenize 32 $me | echo -a #$1 <--

#mIRCManiac <--

Last edited by mIRCManiac; 27/03/06 05:48 PM.
#145621 28/03/06 12:06 AM
Joined: Feb 2006
Posts: 546
J
Fjord artisan
Offline
Fjord artisan
J
Joined: Feb 2006
Posts: 546
it only works for $N tokens smile for others it simply evaluates them normally :S

oh i was thinking of some identifier the other day that could be used to escape whatever follows it. something like $*text evaluating to text (i chose $* since it would have to be something that can never be made a custom alias, i.e. you cant have a custom identifier named *text. $* would return $null by this logic. of course this would break existing scripts that use $*.. but maybe its about time he got rid of that? :P)

so anyway, if such an identifier was made it could be used like so: //timer 1 $chan(0) if ($* $+ # ischan) who $!v1

of course the possibility of # containing parentheses could mess around with the if condition, but maybe special behavior for this hypothetical $* could be implemented? so to clarify, $* [ $+ stuff ] = stuff (and $* is the first suitable identifier i could think of for this laugh). i didnt think this deserved its own post in the features forum lol

another practical example: //timer 1 3 kick # $nick

instead of the workarounds to prevent the exploits qwerty mentioned, my theoretical $* could be put to use:

//timer 1 3 kick $!* $+ # $!* $+ $nick


"The only excuse for making a useless script is that one admires it intensely" - Oscar Wilde
#145622 28/03/06 10:19 AM
Joined: Apr 2004
Posts: 871
Sat Offline
Hoopy frood
Offline
Hoopy frood
Joined: Apr 2004
Posts: 871
Personally, I think your suggested idea is not going to be that effective, because you have to escape every space-separated word that could possibly be evaluated, that way (as opposed to, for example, using a custom $escape(<whole line>) identifier which could be built with $encode+$decode), so escaping whole arbitrary lines will still be a pain.

I still think that a much more elegant solution would be a non-evaluation switch to the commands that double-evaluate by default (link)..


Saturn, QuakeNet staff

Link Copied to Clipboard