Avatar billede finntoft Nybegynder
10. maj 2002 - 13:52 Der 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

På forhånd tak
Avatar billede pacman Nybegynder
10. maj 2002 - 16:00 #1
jeg kan godt, men du skal forklare lidt nærmere?, "hvor mange ops der er på en bestemt channel og hvor mange der er i alt"..

"i alt?".. i hele verden eller hvad?.. hehe
sorry hvis det bare er mig der ikke kan læse det ordenligt, men kan du forklare lidt nærmere?

og hvorfor siger du "/idlers #channel" ?..
du skrev ikke noget om at scriptet skulle finde hvem der idler?.. hmm..
Avatar billede finntoft Nybegynder
10. maj 2002 - 16:56 #2
Det jeg mener er at jeg mangler et script hvor man skriver /statschan #channel .... Det er nok bere end "/idlers #channel"

Og når du skriver det skal din finde ud af hvor mange der er inde på den channel og hvor mange der har op inde på den channel.

Håber du bedre kan forstå mig nu...
Avatar billede NanoQ Nybegynder
11. maj 2002 - 13:40 #3
2 Stats Scanner...

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)
    Avatar billede NanoQ Nybegynder
    11. maj 2002 - 13:41 #4
    #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 :)
    Avatar billede NanoQ Nybegynder
    11. maj 2002 - 13:41 #5
    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
    Avatar billede NanoQ Nybegynder
    11. maj 2002 - 13:41 #6
    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> }
    }
    Avatar billede NanoQ Nybegynder
    11. maj 2002 - 13:42 #7
    betragt det hele som ét indlæg.. pga. noglt MTU problemer, kan jeg ikke poste indlæg længere end disse :)
    Avatar billede NanoQ Nybegynder
    11. maj 2002 - 13:42 #8
    Avatar billede pacman Nybegynder
    12. maj 2002 - 18:00 #9
    jeg begynder at skrive et nu... som kan det du beder om, finntoft..
    Avatar billede pacman Nybegynder
    12. maj 2002 - 18:42 #10
    smid dette ind i dine aliases (alt+a):

    statschan {
      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.*
    }


    og så skriver du bare
    /statschan #channel
    men det kræver at du rent faktisk ER i kanalen..
    Avatar billede pacman Nybegynder
    12. maj 2002 - 18:43 #11
    (det giver dig antal ops, antal voiced og antal alm. brugere, og i alt)
    Avatar billede pacman Nybegynder
    12. maj 2002 - 18:56 #12
    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)
    Avatar billede finntoft Nybegynder
    12. maj 2002 - 20:35 #13
    1000 Tak for det pacman...
    Avatar billede pacman Nybegynder
    12. maj 2002 - 20:48 #14
    Anytime!
    Avatar billede dj_raprap Nybegynder
    10. september 2003 - 09:19 #15
    Pacman, aaalt for mange elseif's :p

    Bare en opdatering:


    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
    Avatar billede Ny bruger Nybegynder

    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.

    Loading billede Opret Preview
    Kategori
    IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

    Log ind eller opret profil

    Hov!

    For at kunne deltage på Computerworld Eksperten skal du være logget ind.

    Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

    Du kan også logge ind via nedenstående tjenester