mIRC Homepage
Posted By: neophyte get channel info - 27/04/03 09:08 AM
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.
Posted By: DaveHope Re: get channel info - 27/04/03 09:24 AM
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...
Posted By: Watchdog Re: get channel info - 27/04/03 03:12 PM
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
Posted By: neophyte Re: get channel info - 28/04/03 01:04 PM
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.
Posted By: KingTomato Re: get channel info - 28/04/03 01:19 PM
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...
Posted By: _D3m0n_ Re: get channel info - 28/04/03 01:53 PM
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:
Code:
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 .....

Code:
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
Posted By: neophyte Re: get channel info - 29/04/03 12:58 AM
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!
Posted By: guesseyder Re: get channel info - 29/04/03 06:50 AM
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.
© mIRC Discussion Forums