Search
 
 

Display results as :
 


Rechercher Advanced Search

Web Applications
install Joomla Wordpress Phpbb Drupal FluxBB PunBB osCommerce simple-machines MYBB moodle vBulletin Dolphin-v.7.1.1 PHPNUKE XOOPS
Services
install BorkNet Services X3 Services Anope Atheme Services Srvx IRC Srervices
IRCD
install Snircd IRCU INSPIRCD UNREAL Nefarious Bircd Bahamut Asuka Charybdis
TCL SCRIPT
TCL SCRIPT FOR EGGDROP Allprotection4.7 Antiproxy
Bots
Bots install FishBot bobot++ Eggdrop janus Omega Security Services Botnix Bopm
Keywords

Latest topics
» מדריך התקנה WORDPRESS על FREEBSD11
Mon Jul 17, 2017 2:50 am by Chief

» מדריך התקנה postgreSQL && phpPgAdmin על FREEBSD11
Sun Jul 16, 2017 4:23 pm by Chief

» מדריך התקנה PHPMYADMIN על FREEBSD11
Sat Jul 15, 2017 5:44 am by Chief

» mIRCx IRC Network Config
Fri Jul 07, 2017 12:57 pm by Chief

» מדריך איך מתקינים DESKTOP על FREEBSD
Fri Jul 07, 2017 12:44 pm by Chief

» מדריך התקנה FTP SERVER על FREEBSD
Mon Jul 03, 2017 3:52 am by Chief

» install inspircd in freebsd 11
Sat Jul 01, 2017 11:57 pm by Chief

» מדריך התקנה FEDORA 25
Sat Jul 01, 2017 7:59 pm by Chief

» מדריך התקנה מערכת הפעלה FREEBSD
Sat Jun 24, 2017 12:59 am by Chief

July 2017
MonTueWedThuFriSatSun
     12
3456789
10111213141516
17181920212223
24252627282930
31      

Calendar Calendar

Affiliates
free forum

Affiliates
free forum


Clear-Chanlev Script for QuakeNet

View previous topic View next topic Go down

Clear-Chanlev Script for QuakeNet

Post  Admin on Fri Jan 20, 2012 4:39 pm

Code:

; ClearChanlev script by doomie
;  #help.script @ QuakeNet
;
;
; You can use this script by typing:
;
;        /clearchanlev [-r] #channel
;
;  Note, that you must be authed and owner of #channel.
;
;  Flags:
;          * -r ... Resets the script, i.e. cleans everything up. One usually doesn't need that flag, however, if something didn't work,
;                    one can use it. 
;
;
;  Example output:
;
;      ClearChanlev: -----------------------------
;      ClearChanlev: Now beginning to remove all chanlevs from channel #channel except yours!
;      ClearChanlev: Receiving own auth now!
;      ClearChanlev: ...done.
;      ClearChanlev: Saving chanlev now...
;      ClearChanlev: ...done.
;      ClearChanlev: There are 2 lines to send. This will take approximatly 4 seconds. Removing...
;      ClearChanlev: ...done.
;      ClearChanlev: Cleaned up!
;      ClearChanlev: -----------------------------
;

; Returns the milliseconds between every message sent to Q
; If you excess flood, you should increase this value to 4000 or even 5000.
alias -l ClearChanlev.Delay { return 3000 }

; $1 = #channel
;
; flags:
;  -c --complete = deletes the complete chanlev, inclusive owner. This will
;                  result in Q parting. This option is disabled.
;  -r --reset    = resets the scripts in case something didn't work the last time.
alias ClearChanlev {
  echo -s ClearChanlev: -----------------------------
  var %i = 1, %c, %ClearChanlev.Complete = 0, %r, %ClearChanlev.Force = 0, %ClearChanlev.Channel
  while (%i <= $0) {
    %c = $ [ $+ [ %i ] ]
    if (%c == -c) || (%c == --complete) {
      echo -s ClearChanlev: The %c option to remove Q is disabled, it is ignored.
      ; %ClearChanlev.Complete = 0
    }
    elseif (%c == -r) || (%c == --reset) {
      %ClearChanlev.Force = 1
    }
    elseif ($left(%c, 1) == $chr(35)) {
      %ClearChanlev.Channel = %c
    }
    inc %i
  }
  if (%ClearChanlev.Global) {
    if (%ClearChanlev.Force == 0) {
      echo -s ClearChanlev: ClearChanlev is currently running. If this is not the case, please use the -r flag (i.e. /clearchanlev -r #channel)
      echo -s ClearChanlev: -----------------------------
      return
    }
    else {
      unset %ClearChanlev.Global
      echo -s ClearChanlev: ClearChanlev reseted.
    }
  }
  if (!%ClearChanlev.Channel) {
    echo -s ClearChanlev: No channel specified.
    return
  }
  %r = $rand(1,1000)
  set %ClearChanlev.Global %ClearChanlev.Channel %ClearChanlev.Complete %r
  echo -s ClearChanlev: Now beginning to remove all chanlevs from channel %ClearChanlev.Channel $iif(%ClearChanlev.Complete, inclusive, except) yours!
  echo -s ClearChanlev: Receiving own auth now!
  .timerClearChanlevCleanUp 1 60 ClearChanlev.CleanUp
  .who $me n%nat, $+ %r
}

raw 354:*: {
  if ($2 == $gettok(%ClearChanlev.Global, 3, 32)) && ($3 == $me) {
    haltdef
    set %ClearChanlev.Global %ClearChanlev.Global $4
  }
}

raw 315:*: {
  if (%ClearChanlev.Global) && ($2 == $me) {
    haltdef
    if ($gettok(%ClearChanlev.Global, 4, 32) == 0) {
      echo -s ClearChanlev: You are NOT authed.
      ClearChanlev.CleanUp
    }
    else {
      echo -s ClearChanlev: ...done.
      set %ClearChanlev.Global %ClearChanlev.Global 0
      .msg Q chanlev $gettok(%ClearChanlev.Global, 1, 32)
    }
  }
}

alias -l ClearChanlev.GotMessages {
  if (!$exists(ClearChanlev $+ $gettok(%ClearChanlev.Global, 3, 32) $+ .txt)) {
    echo -s ClearChanlev: File does not exist!
    ClearChanlev.CleanUp
    return
  }
  if ($lines(ClearChanlev $+ $gettok(%ClearChanlev.Global, 3, 32) $+ .txt) == 0) {
    echo -s ClearChanlev: No chanlev to remove!
    ClearChanlev.CleanUp
    return
  }
  if ($gettok(%ClearChanlev.Global, 5, 32) == 0) {
    echo -s ClearChanlev: You are NOT owner of this channel. Aborting!
    ClearChanlev.CleanUp
    return
  }
  echo -s ClearChanlev: There are $lines(ClearChanlev $+ $gettok(%ClearChanlev.Global, 3, 32) $+ .txt) lines to send. This will take $&
    approximatly $calc($lines(ClearChanlev $+ $gettok(%ClearChanlev.Global, 3, 32) $+ .txt) * $ClearChanlev.Delay / 1000) seconds. Removing...
  .play Q ClearChanlev $+ $gettok(%ClearChanlev.Global, 3, 32) $+ .txt $ClearChanlev.Delay
}

alias -l ClearChanlev.CleanUp {
  .remove ClearChanlev $+ $gettok(%ClearChanlev.Global, 3, 32) $+ .txt
  unset %ClearChanlev.*
  .timerClearChanlevCleanUp off
  echo -s ClearChanlev: Cleaned up!
  echo -s ClearChanlev: -----------------------------
}

; $1- = message from Q
alias -l ClearChanlev.Interpret {
  if (%ClearChanlev.Global) {
    if (Username*Flags*Last join*Last changed iswm $1-) {
      echo -s ClearChanlev: Saving chanlev now...
      set %ClearChanlev.Global %ClearChanlev.Global 1
    }
    elseif (You do not have sufficient access on* iswm $1-) {
      echo -s ClearChanlev: You do not have sufficied access on the specified channel!
      ClearChanlev.CleanUp
    }
    elseif (End of list. == $1-) {
      echo -s ClearChanlev: ...done.
      set %ClearChanlev.Global $puttok(%ClearChanlev.Global, 0, 6, 32)
      if ($numtok(%ClearChanLev.Users,32)) {
        write -il1 ClearChanlev $+ $gettok(%ClearChanlev.Global, 3, 32) $+ .txt REMOVEUSER $gettok(%ClearChanlev.Global, 1, 32) %ClearChanLev.Users
        unset %ClearChanlev.Users
      }
      ClearChanlev.GotMessages
    }
    elseif (Channel * is unknown or suspended. iswm $1-) {
      echo -s ClearChanlev: Channel is not known or suspended. Aborting.
      ClearChanlev.CleanUp
    }
    elseif ($gettok(%ClearChanlev.Global, 6, 32) == 1) {
      if ($1 == $gettok(%ClearChanlev.Global, 4, 32)) {
        if (n !isin $2) {
          set %ClearChanlev.Global $puttok(%ClearChanlev.Global, 0, 5, 32)
          return
        }
        else {
          set %ClearChanlev.Global $puttok(%ClearChanlev.Global, 1, 5, 32)
        }

        if ($gettok(%ClearChanlev.Global, 2, 32) == 0) {
          return
        }
        else {
          write ClearChanlev $+ $gettok(%ClearChanlev.Global, 3, 32) $+ .txt CHANLEV $gettok(%ClearChanlev.Global, 1, 32) $chr(35) $+ $1 $replace($2,+,-)
          return
        }
      }
      else {
        if (n isin $2) {
          ; do not remove owners - do not change unless you know what you are doing!
          return
          ; write -il1 ClearChanlev $+ $gettok(%ClearChanlev.Global, 3, 32) $+ .txt CHANLEV $gettok(%ClearChanlev.Global, 1, 32) $chr(35) $+ $1 $replace($2,+,-)
        }
        else {
          set %ClearChanlev.Users $addtok(%ClearChanLev.users,$chr(35) $+ $1,32)
          if ($numtok(%ClearChanlev.Users,32) == 18) {
            write -il1 ClearChanlev $+ $gettok(%ClearChanlev.Global, 3, 32) $+ .txt REMOVEUSER $gettok(%ClearChanlev.Global, 1, 32) %ClearChanlev.Users
            unset %ClearChanlev.Users
          }
        }
      }
    }
  }
}

on ^*:Notice:*:?: {
  if ($nick == Q) && (%ClearChanlev.Global) {
    haltdef
    ClearChanlev.Interpret $1-
  }
}

on ^*:Text:*:?: {
  if ($nick == Q) && (%ClearChanlev.Global) {
    haltdef
    ClearChanlev.Interpret $1-
  }
}

on *:PLAYEND:{
  if ($nopath($filename) == ClearChanlev $+ $gettok(%ClearChanlev.Global, 3, 32) $+ .txt) {
    echo -s ClearChanlev: ...done.
    ClearChanlev.Cleanup
  }
}
http://script.quakenet.org/wiki/Clear-Chanlev_Script_for_QuakeNet
avatar
Admin
Admin

מספר הודעות : 288
Join date : 2009-09-12
Age : 37
מיקום : mIRCX IRC Network

View user profile http://mircx.forumotion.net

Back to top Go down

View previous topic View next topic Back to top

- Similar topics

 
Permissions in this forum:
You cannot reply to topics in this forum