10. maj 2002 - 13:52Der er
14 kommentarer og 1 løsning
Script til mirc....
Hey...
Er der en der kan finde ud af at lave et script som kan finde ud af hvor mange ops der er inde på en bestemt channel og hvor mange der er i alt. Bare ved at skrive f.eks /idlers #channel
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
I prefer doing a /who #channel to get the channel's stat, such as how many ircop, how many users are away etc. Althought it's slow, but there is no other way to do it :)
You collects the information from the /who replies, which is raw 352. The format for the reply is:
<channel> <user> <host> <server> <nick> <H|G>
[@|+] :<hopcount> <real name>
So you need parm number 7 ($7) to check whether the user is an ircop, whether the user is away or still here :)
And after all those counting and stuffs, I'm sure you want a result. So, use raw 315, which is the reply of 'End of /who' to echo out the result (or do whatever you want to it :)
Here's an example code, simply put it in your remote and everything will work fine :) Alternally download the uncommented code here, and load it into your remotes (/load -rs filename.mrc)
#cs on raw 352:*: { haltdef ;halt the default, so the /who replies won't show up.. if (H isin $7) { inc %cs.here } ;H is users here and not away if (G isin $7) { inc %cs.gone } ;G is away users if ($chr(42) isin $7) { inc %cs.ircop } ;$chr(42) is the char '*', which indicates an IrcOp }
raw 315:*: { haltdef ;same thing, it halts the default. if (%cs.here == $null) { set %cs.here 0 } if (%cs.gone == $null) { set %cs.gone 0 } if (%cs.ircop == $null) { set %cs.ircop 0 } ;this check if any of the variable don't have a value, then it will set to as 0 :)
echo -a Channel stat for $2 $+ : echo -a Here > %cs.here echo -a Away > %cs.gone echo -a IRCop > %cs.ircop echo -a OP > $nick($2,0,o) echo -a Voice > $nick($2,0,v,o) echo -a Regular > $nick($2,0,r) echo -a Total > $nick($2,0) ;echo out the results. ;notice the $nick identifier, and the $2. $2 is the channel's name, and ;$nick($2,0,o) will return the amount of the channel's operator, ;$nick($2,0,v,o) will return the amount of voiced user not including operators, ;$nick($2,0,r) return the amount of regular user and lastly $nick($2,0) return ;total user :) unset %cs.* ;unset the variables, to clean up :) .disable #cs ;disable the group, so when you do /who next time, the result will show up :) } #cs end
Are you wonderin' what are those #cs thingie? Well, those are group. I put the codes in group so you can easily turn it on and off. You can use the popup below to echo channel's stat easily, just put it in remote section :)
menu channel { ChanStat:.enable #cs | who # }
Or here's another way, use an alias, as usual, put it in remote :)
alias chanstat { ;format - /chanstat #channelname if ($1 ischan) { .enable #cs | who $1 } else { echo -a ** /chanstat <#channel> } }
hmm, dette ville nok være en lille bitte smule smartere:
statschan { if ($1 == $null) { echo -a Du mangler at skrive en kanal (/statschan #kanal) | halt } set %stat.i 0 while %stat.i != $nick($1,0) { inc %stat.i if ($nick($1,%stat.i) isop $1) { inc %stat.ops } elseif ($nick($1,%stat.i) isvoice $1) { inc %stat.voices } else { inc %stat.users } } echo -a Der er: %stat.ops ops, %stat.voices voiced og %stat.users alm. brugere, (i alt $calc( %stat.ops + %stat.voices + %stat.users ) brugere) i $1 unset %stat.* }
(så går dit mirc ikke i stå i et uendelig loop hvis ikke du skriver #channel efter /statschan)
(uendelige loops KAN dog brydes med ctrl+break, men du kan jo ligesågodt bruge mit "forbedrede" script)
alias power { var %i = 1 while (%i <= $chan(0)) { if ($me isop $chan(%i)) { inc %opped | inc %owned $nick($chan,0,rv) } inc %all $nick($chan,0) inc %i } say [Power status]: $+([,%opped,/,%owned,/,%all,] ( $+ $round($calc(%owned / %all * 100),2) $+ % $+ )) | unset %opped %owned %all }
Og se rlidt mer kvikt ud hvis du spørger mig :-) Det skal så ind i Remote (ALT+R), så skriver du simpelt bare /power
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.