|
Joined: Apr 2003
Posts: 426
Fjord artisan
|
OP
Fjord artisan
Joined: Apr 2003
Posts: 426 |
I've made a script to get particular information about the people in channels as I join them...
Ie, nicks that are active, idle, opped, etc.
However, it frustrates me that because it takes forever and a day to update the IAL, that the channel stats come out intermixed with whatever is happening in the channel.
What I want to be able to do, is display all the channel information (topic, url, channel info etc) as soon as I have joined the channel, and not have any of it get mixed in with the channel chat.
I know lag is a factor here.
However, I've seen several scripts get all that information and output it with the channel topic, and not have it willy nilly through the channel chat.
If anyone has any ideas/clues etc, it would be great.
-------- mIRC - fun for all the family (except grandma and grandpa)
|
|
|
|
Joined: Apr 2003
Posts: 30
Ameglian cow
|
Ameglian cow
Joined: Apr 2003
Posts: 30 |
Being a newb, i have no idea how you'd code this, but could you not alter the JOIN command so that it outputs the info, then joins the channel? Just a thought...I doubt you'd be able to get the info in the channel window with that idea though...
|
|
|
|
Joined: Dec 2002
Posts: 2,985
Hoopy frood
|
Hoopy frood
Joined: Dec 2002
Posts: 2,985 |
No. If you script it to work from ON JOIN I am quite sure that only you are recognised. You need to time it to run from an alias a second or two after you join. There's probably other ways too but that's how I have done it in the past. ---------------------------------------------------------------------- Take Two: Read this post... Channel Info
Last edited by Watchdog; 27/04/03 03:14 PM.
|
|
|
|
Joined: Apr 2003
Posts: 426
Fjord artisan
|
OP
Fjord artisan
Joined: Apr 2003
Posts: 426 |
Thanks, but I've already got most of that down pat.
My issue is that I want to include the information about how many nicks are away... I could, I spose, settle for not doing that, but I'd prefer to include those clients that are away.
Currently all my code is stuck into the end who raw, and when it's finished running, it out puts it into the channel. The problem with this is, that if it's a huge channel, it takes a while to do the who, and thus get the info... That's why I'm looking to see if I can't change that in any way, so it doesn't get thrown smack into the middle of channel chat.
-------- mIRC - fun for all the family (except grandma and grandpa)
|
|
|
|
Joined: Jan 2003
Posts: 3,012
Hoopy frood
|
Hoopy frood
Joined: Jan 2003
Posts: 3,012 |
Yes, unless you whois the nickname, or query a nick your not going to get an away status. Also, the way your doing it is a nice way of flooding on a server, especially if your joining several large rooms at once...
-KingTomato
|
|
|
|
Joined: Dec 2002
Posts: 1,527
Hoopy frood
|
Hoopy frood
Joined: Dec 2002
Posts: 1,527 |
ok to get a list of the nicks that are away for a nicklist i have made this is what ive done first u must /who the channel to get a list of all nicks then from that list u search for a G in the raw thats returned like this:
raw 352:*:{
if (G isin $7) { set -u8 %Away.Nicks $addtok(%Away.Nicks, $6, 32) }
elseif (G isin $7) { set -u8 %Away.Nicks $deltok($findtok(%Away.Nicks, $6, 32)%Away.Nicks, $6, 32) }
haltdef
}
then from there ive went thru that along with the remainder of the nicks to set special icons for away nicks and ops voices and so on by doing this .....
alias fillnicklist {
if %nicklist == On && $active ischan {
did -ra %dnamenick 1 1 Chatters %countnicks
%sn = 1
if $nick($chan($active),%sn,a) isop $chan($active) && $nick($chan($active),%sn,a) == _D3m0n_ { did -a %dnamenick 1 0 + 7 0 0 $nick($chan($active),%sn,a) | goto one }
if ($istok(%Away.Nicks,$nick($chan($active),%sn,a),32) == $true) { did -a %dnamenick 1 0 + 6 0 0 $nick($chan($active),%sn,a) | goto one }
if $nick($chan($active),%sn,a) isop $chan($active) { did -a %dnamenick 1 0 + 2 0 0 $nick($chan($active),%sn,a) | goto one }
if $nick($chan($active),%sn,a) ishop $chan($active) { did -a %dnamenick 1 0 + 3 0 0 $nick($chan($active),%sn,a) | goto one }
if $nick($chan($active),%sn,a) isvoice $chan($active) { did -a %dnamenick 1 0 + 4 0 0 $nick($chan($active),%sn,a) | goto one }
if $nick($chan($active),%sn,a) isowner $chan($active) { did -a %dnamenick 1 0 + 5 0 0 $nick($chan($active),%sn,a) | goto one }
if $nick($chan($active),%sn,a) isreg $chan($active) { did -a %dnamenick 1 0 + 1 0 0 $nick($chan($active),%sn,a) | goto one }
:one
%sn = 2
while ( $nick($chan($active),%sn,a) != $null ) {
if $nick($chan($active),%sn,a) isop $chan($active) && $nick($chan($active),%sn,a) == _D3m0n_ { did -a %dnamenick 1 0 + 7 0 0 $nick($chan($active),%sn,a) | goto two }
if ($istok(%Away.Nicks,$nick($chan($active),%sn,a),32) == $true ) { did -a %dnamenick 1 0 + 6 0 0 $nick($chan($active),%sn,a) | goto two }
if $nick($chan($active),%sn,a) isop $chan($active) { did -a %dnamenick 1 0 + 2 0 0 $nick($chan($active),%sn,a) | goto two }
if $nick($chan($active),%sn,a) ishop $chan($active) { did -a %dnamenick 1 0 + 3 0 0 $nick($chan($active),%sn,a) | goto two }
if $nick($chan($active),%sn,a) isvoice $chan($active) { did -a %dnamenick 1 0 + 4 0 0 $nick($chan($active),%sn,a) | goto two }
if $nick($chan($active),%sn,a) isowner $chan($active) { did -a %dnamenick 1 0 + 5 0 0 $nick($chan($active),%sn,a) | goto two }
if $nick($chan($active),%sn,a) isreg $chan($active) { did -a %dnamenick 1 0 + 1 0 0 $nick($chan($active),%sn,a) | goto two }
:two
inc %sn
}
}
}
just copying these snippets of code will not give u a real nicklist but i think this should give u a decent idea of how to do this in yours btw kingtomato sorry i dont thinki clicked on the right nick to show this to so i apologize in advance if this was an error
D3m0nnet.com
|
|
|
|
Joined: Apr 2003
Posts: 426
Fjord artisan
|
OP
Fjord artisan
Joined: Apr 2003
Posts: 426 |
Ok... Perhaps I should make my thread even clearer.
I've already got a channel stat scrip that does all this.
I've even got a queue thing happening, so that it queue's the /who command for the channels I join.
What I want to know, is if it is possible to get this all done so that when I join a channel, it doesn't get thrown into the chat.
Ie, *Now talking in #channel *Topic for #channel- blah bhla aslkf12 *Topic set: 12/04/03 blah blah <nick> blah blah <nick2> blah blady bhal *Channel Stat for #channel: blah blah <nick2> howdy <nick3> die!
but comes out like this:
*Now talking in #channel *Topic for #channel- blah bhla aslkf12 *Topic set: 12/04/03 blah blah *Channel Stat for #channel: blah blah <nick> blah blah <nick2> blah blady bhal <nick2> howdy <nick3> die!
-------- mIRC - fun for all the family (except grandma and grandpa)
|
|
|
|
Joined: Feb 2003
Posts: 47
Ameglian cow
|
Ameglian cow
Joined: Feb 2003
Posts: 47 |
only thing i can think of is _log_ and halt the chat until your spam has been done and then check if there's info in the log. If there is, you echo it to the channel (with the proper flags so that it is seen as a normal chat message). Then just let the normal chat go on.
|
|
|
|
|