rendered paste body; BUSHTARION HELP : Use /bushhelp to turn it on/off.
; Allow people to trigger the script.
on 1:INPUT:*: {
if (($left($1-, 1) == <) && ($len($1-) != 1)) {
bushhelp.parse 0 $1-
/halt
}
if ((%g_bushhelp) && ($left($1-, 1) == >) && ($len($1-) != 1)) {
bushhelp.parse 1 $1-
/halt
}
if (%g_F9 && $left($$1-, 1) != / ) {
var %text = $1-
; To copy/paste incomings.
if ( *[*]*[*]*Attacking* iswm %text ) { %text = 5 $+ %text $+ }
if ( *[*]*[*]*Defending* iswm %text ) { %text = 3 $+ %text $+ }
if ( *[*]*Unknown* iswm %text ) { %text = 10 $+ %text $+ }
if ( Total:* iswm %text ) { %text = 2 $+ %text $+ }
; To copy/paste battle reports.
if ( *allied*hostile* iswm %text ) || ( *allied*stole* iswm %text ) || ( You gained* iswm %text ) || ( You stole isin %text ) { %text = 3 $+ %text $+ }
if ( *hostile*allied* iswm %text ) || ( *hostile*stole* iswm %text ) || ( You lost* iswm %text ) { %text = 5 $+ %text $+ }
if ( Distracted:* iswm %text ) || ( Disabled:* iswm %text ) || ( Bribed:* iswm %text ) || ( Dead:* iswm %text ) { %text = 2 $+ %text $+ }
; To display the text if non empty.
if (%text) { /say %text }
/halt
}
}
on 1:NOTICE:*:*: {
if (((%g_bushhelp) || ($nick == $me)) && ($left($1-, 1) == >) && ($len($1-) != 1)) {
bushhelp.parse 2 $1-
}
}
on 1:TEXT:*:#PSA: {
if ((%g_bushhelp) && ($left($1-, 1) == >) && ($len($1-) != 1)) {
bushhelp.parse 3 $1-
}
}
on 1:TEXT:*:?: {
if ((%g_bushhelp) && ($left($1-, 1) == >) && ($len($1-) != 1)) {
if ($nick == $me) { bushhelp.parse 4 $1- }
else { bushhelp.parse 5 $1- }
}
}
; Private script.
alias -l bushhelp.display {
var %line, %tok, %limit = 5, %list = $1
var %i = 0, %m = $numtok(%list, 95) , %n
if (($2 != 0) && (%m > %limit)) {
%n = %limit + 1
%list = $instok(%list, 0, %n, 95)
}
else { %n = %m }
while (%i < %n) {
inc %i
%tok = $gettok(%list, %i, 95)
if (%tok == -1) { /break }
elseif (%tok == 0) {
%line = Only first %limit results displayed out of %m $+ .
}
else { %line = $read(BushtarionUnits.txt, %tok) }
if (2 // %i) {
%line = 10 $+ %line $+
}
else { %line = 2 $+ %line $+ }
if ($2 == 0) { echo -a %line }
elseif ($2 == 1) { say %line }
elseif ($2 == 2) { .a $nick %line }
elseif ($2 == 3) { msg $chan %line }
elseif ($2 == 4) { msg $target %line }
else { msg $nick %line }
}
}
; Private script.
alias -l bushhelp.parse {
if ($1 == 0) {
var %i = 0, %n = $numtok($2-, 60), %res
while (%i < %n) {
inc %i
bushhelp.seek < $+ $gettok($2-, %i, 60)
%res = $addtok(%res, $result, 95)
}
}
else {
var %i = 0, %n = $numtok($2-, 62), %res
while (%i < %n) {
inc %i
bushhelp.seek > $+ $gettok($2-, %i, 62)
%res = $addtok(%res, $result, 95)
}
}
if (%res == $null) { %res = -1 }
bushhelp.display %res $1
}
; Private script.
alias -l bushhelp.seek {
var %seek = $right($1-, -1) $+ *, %found = 0
var %line = 0, %temp, %res
while (%line != 1) {
%temp = $read(BushtarionUnits.txt, twpn, %seek, %line )
%line = $readn
if (%line == 0) { /break }
%res = $addtok(%res, %line, 95)
inc %line
inc %found
}
/return %res
}
; Turn the script on/off.
alias bushhelp {
if (!%g_bushhelp) { %g_bushhelp = 0 }
%g_bushhelp = $not(%g_bushhelp)
switch %g_bushhelp Bushtarion Help
}
; Turn the script on/off.
alias F9 {
if (!%g_F9) { %g_F9 = 0 }
%g_F9 = $not(%g_F9)
switch %g_F9 Bushtarion Coloured Reports
}
;____________________________________________________________
alias mass+ {
.massop
.massvoice
}
alias mass- {
.massdeop
.massdevoice
}
alias massop {
if ($1) { var %chan = $1 } | else { var %chan = $active }
var %total = $nick(%chan,0,a,o), %i = 1
while (%i <= %total) {
var %nicks = %nicks $nick(%chan,%i,a,o)
if ($numtok(%nicks,32) == 6) {
mode %chan +oooooo %nicks
unset %nicks
}
inc %i
}
if (%nicks) { mode %chan +oooooo %nicks }
}
alias massdeop {
if ($1) { var %chan = $1 } | else { var %chan = $active }
var %total = $nick(%chan,0,o),%i = 1
while (%i <= %total) {
if ($nick(%chan,%i,o) != $me) {
var %nicks = %nicks $nick(%chan,%i,o)
if ($numtok(%nicks,32) == 6) {
mode %chan -oooooo %nicks
unset %nicks
}
}
inc %i
}
if (%nicks) { mode %chan -oooooo %nicks }
}
alias massvoice {
if ($1) { var %chan = $1 } | else { var %chan = $active }
var %total = $nick(%chan,0,a,v), %i = 1
while (%i <= %total) {
var %nicks = %nicks $nick(%chan,%i,a,v)
if ($numtok(%nicks,32) == 6) {
mode %chan +vvvvvv %nicks
unset %nicks
}
inc %i
}
if (%nicks) { mode %chan +vvvvvv %nicks }
}
alias massdevoice {
if ($1) { var %chan = $1 } | else { var %chan = $active }
var %total = $nick(%chan,0,v),%i = 1
while (%i <= %total) {
if ($nick(%chan,%i,v) != $me) {
var %nicks = %nicks $nick(%chan,%i,v)
if ($numtok(%nicks,32) == 6) {
mode %chan -vvvvvv %nicks
unset %nicks
}
}
inc %i
}
if (%nicks) { mode %chan -vvvvvv %nicks }
}