- ; ClearChanlev script by doomie
- ; #help.script @ QuakeNet
- ;
- ;
- ; You can use this script by typing:
- ;
- ; /clearchanlev [-c|-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.
- ; * -c ... If you use this flag, the script will remove you from the channel aswell. This means, that Q will leave the channel
- ; completly. Note that you can _NOT_ reverse 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.
- ; -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) {
- %ClearChanlev.Complete = 1
- }
- 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) {
- 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
- }
- }
clearchanlev
By: sc | Date: Aug 6 2009 12:38 | Format: None | Expires: never | Size: 7.25 KB | Hits: 1220
Latest pastes
1 hours ago
11 hours ago
1 days ago
2 days ago
2 days ago