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
Latest topics
» Guide install Janus IRC
Sat Dec 03, 2016 3:46 am by Chief

» Guide install Anope in Centos 7
Sat Nov 19, 2016 7:24 am by Chief

» mIRCx IRC Network Config
Tue Oct 18, 2016 10:52 pm by Chief

» מדריך התקנה מירק על ubuntu 14.04
Mon Sep 19, 2016 2:40 am by Chief

» Guide install srvx 1.4.1-rc1  in ubuntu
Fri Aug 26, 2016 5:02 pm by Chief

» Guide install Inspircd
Fri Aug 19, 2016 8:21 am by Chief

» config Inspircd+atheme 7.2.4
Mon Aug 01, 2016 2:21 am by Chief

» מדריך התקנה SRVX Services על Centos 7
Sat Jul 16, 2016 9:58 pm by Chief

» Guide All protection4.7
Fri Jul 15, 2016 2:31 pm by Chief

May 2017
MonTueWedThuFriSatSun
1234567
891011121314
15161718192021
22232425262728
293031    

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

מספר הודעות : 289
Join date : 2009-09-12
Age : 36
מיקום : www.mIRCx.co.il

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