rendered paste bodyON *:START:{
hmake x.c.aidt
if ( $exists($scriptdir $+ info\x.c.aidt.txt) == $true ) { hload x.c.aidt " $+ $scriptdir $+ info\x.c.aidt.txt $+ " }
echo -s $x.hmake(aid.gold.amnt)
echo -s $x.hmake(aid.gold.time)
echo -s $x.hmake(aid.gold.comm)
echo -s $x.hmake(aid.rune.amnt)
echo -s $x.hmake(aid.rune.time)
echo -s $x.hmake(aid.rune.comm)
echo -s $x.hmake(aid.sold.amnt)
echo -s $x.hmake(aid.sold.time)
echo -s $x.hmake(aid.sold.comm)
echo -s $x.hmake(aid.food.amnt)
echo -s $x.hmake(aid.food.time)
echo -s $x.hmake(aid.food.comm)
}
ON *:EXIT:{
hsave x.c.aidt " $+ $scriptdir $+ info\x.c.aidt.txt $+ "
echo -s $x.hsave(aid.gold.amnt)
echo -s $x.hsave(aid.gold.time)
echo -s $x.hsave(aid.gold.comm)
echo -s $x.hsave(aid.rune.amnt)
echo -s $x.hsave(aid.rune.time)
echo -s $x.hsave(aid.rune.comm)
echo -s $x.hsave(aid.sold.amnt)
echo -s $x.hsave(aid.sold.time)
echo -s $x.hsave(aid.sold.comm)
echo -s $x.hsave(aid.food.amnt)
echo -s $x.hsave(aid.food.time)
echo -s $x.hsave(aid.food.comm)
}
ON *:TEXT:@set aidtime*:#:{
if ( $hget(x. $+ $xchan($chan) $+ .user.levl,$xuser($nick,$3)) < 90 ) { notice $nick No council access! | halt }
if ( $2 !isnum ) { notice $nick specify a number in hours please | halt }
hadd x.c.aidt $xchan($chan) $calc($2 * 3600)
notice $nick Length of time for aid requests to show in red has been changed to $2 hrs
}
ON *:TEXT:@need*:#:{
if ( $x.login($nick,$chan) != $null ) { notice $nick $x.login($nick,$chan) | halt }
if ( $num($2) !isnum ) { halt }
if ( $3 == gc || gold isin $3 || coin isin $3 ) { record.aid $nick $chan gold gc $2 $4- | halt }
if ( sold isin $3 || troop isin $3 || army isin $3 || men isin $3 || boy isin $3 ) { record.aid $nick $chan sold soldiers $2 $4- | halt }
if ( rune isin $3 ) { record.aid $nick $chan rune runes $2 $4- | halt }
if ( food isin $3 || bush isin $3 || hay isin $3 ) { record.aid $nick $chan food bushels $2 $4- | halt }
notice $nick Syntax: 7@need amount7 resource - e.g. @need 5k gc
}
;-- record.aid $nick $chan resourcedb resource amount comment
alias record.aid {
var %prov = $hget(x. $+ $xchan($2) $+ .user.prov,$xuser($1,$2))
var %amt = $calc($hget(x. $+ $xchan($2) $+ .aid. $+ $3 $+ .amnt,$replace(%prov,$chr(32),$chr(59))) + $num($5))
hadd x. $+ $xchan($2) $+ .aid. $+ $3 $+ .amnt $replace(%prov,$chr(32),$chr(59)) %amt
hadd x. $+ $xchan($2) $+ .aid. $+ $3 $+ .time $replace(%prov,$chr(32),$chr(59)) $gmt
if ( $6- != $Null ) { hadd x. $+ $xchan($2) $+ .aid. $+ $3 $+ .comm $replace(%prov,$chr(32),$chr(59)) $6- }
if ( $hget(x. $+ $xchan($2) $+ .aid. $+ $3 $+ .amnt,$replace(%prov,$chr(32),$chr(59))) > $num($5) ) {
msg $2 10 $tnum(%amt) $4 14total $chr(124) 10 $+ %prov 14 $+ $chr(124) 14 $+ $hget(x. $+ $xchan($2) $+ .aid. $+ $3 $+ .comm,$replace(%prov,$chr(32),$chr(59)))
halt
}
notice $1 $2 $+ : Aid request of10 $num($5) $4 recorded, %prov
}
ON *:TEXT:@clearaid*:#:{
if ( $x.login($nick,$chan) != $null ) { notice $nick $x.login($nick,$chan) | halt }
if ( $2 == $null ) {
clear.aid $hget(x. $+ $xchan($chan) $+ .user.prov,$xuser($nick,$chan)) $chan gold
clear.aid $hget(x. $+ $xchan($chan) $+ .user.prov,$xuser($nick,$chan)) $chan sold
clear.aid $hget(x. $+ $xchan($chan) $+ .user.prov,$xuser($nick,$chan)) $chan food
clear.aid $hget(x. $+ $xchan($chan) $+ .user.prov,$xuser($nick,$chan)) $chan rune
notice $nick $chan $+ : All your requests have been cleared
}
if ( gc isin $2 || gold isin $2 || coin isin $2 ) { clear.aid $chan gold $hget(x. $+ $xchan($chan) $+ .user.prov,$xuser($nick,$chan)) | notice $nick $chan $+ : All your requests for gold have been cleared }
if ( sold isin $2 || troop isin $2 || army isin $2 || men isin $2 || boy isin $2 ) { clear.aid $chan sold $hget(x. $+ $xchan($chan) $+ .user.prov,$xuser($nick,$chan)) | notice $nick $chan $+ : All your requests for soldiers have been cleared }
if ( rune isin $2 ) { clear.aid $chan rune $hget(x. $+ $xchan($chan) $+ .user.prov,$xuser($nick,$chan)) | notice $nick $chan $+ : All your requests for runes have been cleared }
if ( food isin $2 || bush isin $2 || hay isin $2 ) { clear.aid $chan food $hget(x. $+ $xchan($chan) $+ .user.prov,$xuser($nick,$chan)) | notice $nick $chan $+ : All your requests for food have been cleared }
}
;-- clear.aid $chan resourcedb province
alias clear.aid {
hdel x. $+ $xchan($1) $+ .aid. $+ $2 $+ .amnt $replace($3-,$chr(32),$chr(59))
hdel x. $+ $xchan($1) $+ .aid. $+ $2 $+ .time $replace($3-,$chr(32),$chr(59))
hdel x. $+ $xchan($1) $+ .aid. $+ $2 $+ .comm $replace($3-,$chr(32),$chr(59))
}
ON *:TEXT:@sent*:{
if ( $x.login($nick,$chan) != $null ) { notice $nick $x.login($nick,$chan) | halt }
if ( $num($2) !isnum ) { halt }
if ( $3 == gc || gold isin $3 || coin isin $3 ) { echo $reduce.aid($nick,$chan,$4-,$2,gold,gc) | halt }
if ( sold isin $3 || troop isin $3 || army isin $3 || men isin $3 || boy isin $3 ) { echo $reduce.aid($nick,$chan,$4-,$2,sold,soldiers) | halt }
if ( rune isin $3 ) { echo $reduce.aid($nick,$chan,$4-,$2,rune,runes) | halt }
if ( food isin $3 || bush isin $3 || hay isin $3 ) { echo $reduce.aid($nick,$chan,$4-,$2,food,bushels) | halt }
notice $nick Syntax: 7@sent amount 7resource 7province/user - e.g. @sent $nick 5k gc - you can also paste text from in-game
}
ON *:TEXT:We have sent*to*:#:{
if ( $x.login($nick,$chan) != $null ) { notice $nick $x.login($nick,$chan) | halt }
var %s = $calc($pos($1-,to,1) + 3)
var %e = $calc($pos($1-,$chr(40),1) - 1)
var %prov = $replace($mid($1-,%s,$calc(%e - %s)),$chr(32),$chr(59))
if ( Gold Coin isin $1- ) {
var %amt = $gettok($1-,$calc($findtok($1-,gold,1,32) - 1),32)
if ( $num(%amt) isnum ) { reduce.aid $nick $chan %prov %amt gold gc }
}
if ( Rune isin $1- ) {
msg $chan amtr is %amtr
var %amtr = $gettok($1-,$calc($findtok($1-,runes,1,32) - 1),32)
if ( %amtr == $null ) { var %amtr = $gettok($1-,$calc($findtok($1-,rune,1,32) - 1),32) }
if ( %amtr > 1 ) { var %s = s }
if ( $num(%amtr) isnum ) { echo $reduce.aid($nick,$chan,%prov,%amtr,rune,rune $+ %s) }
msg $chan amtr is %amtr
}
if ( soldier isin $1- ) {
var %amts = $gettok($1-,$calc($findtok($1-,soldiers,1,32) - 1),32)
if ( %amts == $null ) { var %amts = $gettok($1-,$calc($findtok($1-,soldier,1,32) - 1),32) }
if ( %amts > 1 ) { var %s = s }
if ( $num(%amts) isnum ) { echo $reduce.aid($nick,$chan,%prov,%amts,sold,soldier$+ %s) }
}
if ( bushel isin $1- ) {
var %amtb = $gettok($1-,$calc($findtok($1-,bushels,1,32) - 1),32)
if ( %amtb == $null ) { var %amtb = $gettok($1-,$calc($findtok($1-,bushel,1,32) - 1),32) }
if ( %amtb > 1 ) { var %s = s }
if ( $num(%amtb) isnum ) { echo $reduce.aid($nick,$chan,%prov,%amtb,food,bushel $+ %s) }
msg $chan amtb is %amtb
}
}
;-- reduce.aid $nick $chan receipient amount resourcedb resource
alias reduce.aid {
var %r = $x.match($2,$replace($3,$chr(59),$chr(32)),prov)
var %r = $replace(%r,$chr(32),$chr(59))
if ( %r == $null ) { notice $1 Couldn't find matching prov/found more than one matching prov. Please specify. | halt }
var %amnt = $calc($hget(x. $+ $xchan($2) $+ .aid. $+ $5 $+ .amnt,%r) - $num($4))
if ( %amnt > 0 ) {
hadd x. $+ $xchan($2) $+ .aid. $+ $5 $+ .amnt %r %amnt
msg $2 14Thanks for aiding.10 $replace(%r,$chr(59),$chr(32)) 14still wants10 $tnum(%amnt) $6
}
if ( %amnt <= 0 ) {
clear.aid $2 $5 %r
notice $1 $2 $+ : Thanks for aiding! Request filled.
}
}
ON *:TEXT:@listaid*:#:{
if ( gold isin $1- || gc isin $1- || coin isin $1- ) { listaid $chan gold gc | goto done }
if ( sold isin $1- || troop isin $1- || army isin $1- || men isin $1- || boy isin $1- ) { listaid $chan sold soldiers | goto done }
if ( rune isin $1- ) { listaid $chan rune runes | goto done }
if ( food isin $1- || bush isin $1- || hay isin $1- ) { listaid $chan food bushels | goto done }
listaid $chan gold gc
listaid $chan sold soldiers
listaid $chan rune runes
listaid $chan food bushels
goto done
:done
msg $chan 14 $str(-,20) All listed $str(-,20)
}
;-- list.aid $chan resourceDB resourcename
alias listaid {
var %n = 1
while ( $hget(x. $+ $xchan($1) $+ .aid. $+ $2 $+ .amnt,%n).item ) {
var %prov = $hget(x. $+ $xchan($1) $+ .aid. $+ $2 $+ .amnt,%n).item
var %i = 1
while ( $hget(x. $+ $xchan($1) $+ .user.prov,%i).item ) {
if ( $hget(x. $+ $xchan($1) $+ .user.prov,%i).data == $replace(%prov,$chr(59),$chr(32)) ) { var %nick = $hget(x. $+ $xchan($1) $+ .user.prov,%i).item }
inc %i
}
var %time = $calc($gmt - $hget(x. $+ $xchan($1) $+ .aid. $+ $2 $+ .time,%prov))
if ( %time < $hget(x.c.aidt,$xchan($1)) ) { msg $1 10 $+ $tnum($hget(x. $+ $xchan($1) $+ .aid. $+ $2 $+ .amnt,%prov)) $3 14 $+ $chr(124) 10 $+ $replace(%prov,$chr(59),$chr(32)) 14 $+ $chr(40) $+ $no.hl(%nick) $+ $chr(41) $chr(124) $duration(%time,3) $chr(124) $hget(x. $+ $xchan($1) $+ .aid. $+ $2 $+ .comm,%prov) }
if ( %time >= $hget(x.c.aidt,$xchan($1)) ) { msg $1 10 $+ $tnum($hget(x. $+ $xchan($1) $+ .aid. $+ $2 $+ .amnt,%prov)) $3 14 $+ $chr(124) 10 $+ $replace(%prov,$chr(59),$chr(32)) 14 $+ $chr(40) $+ $no.hl(%nick) $+ $chr(41) $chr(124) 04 $+ $duration(%time,3) 14 $+ $chr(124) $hget(x. $+ $xchan($1) $+ .aid. $+ $2 $+ .comm,%prov) }
inc %n
}
}
---------------------------------------------------------------------------------
xbot.aliases.mrc
-----------------------------------------------------------------------------------
;-- $xuser($nick,$chan) ; returns username for a logged-in address ; xbot.admin.mrc, xbot.kd.db.mrc
alias xuser { return $hget(x. $+ $hget(x.cname.c,$2) $+ .addr.user,$address($1,1)) }
;-- $xchan($chan) ; returns channel db number for a #channel ; xbot.admin.mrc, xbot.kd.db.mrc
alias xchan { return $hget(x.cname.c,$1) }
;-- $no.hl(testing,test) ; returns te!sting ; xbot.kd.db.mrc, xbot.aid.mrc
alias no.hl { return $left($1,3) $+ $chr(39) $+ $right($1,-3) }
;-- $hl(testing,test) ; returns orange "test" in "testing" ; xbot.kd.db.mrc
alias hl { return $replace($1,$2,7 $+ $2 $+ 10) }
;-- $x.login($nick,$chan) ; checks if $nick is logged in, returns $null if he is ; xbot.admin.mrc, xbot.kd.db.mrc
alias x.login {
if ( $xuser($1,$2) == $null ) { return Login/register first! 7/msg $me xbot login $2 Username 7Password or 7/msg $me xbot register $2 ChannelCode 7Username 7Password }
}
;-- $num(5,000k) ; returns 5000000 ; xbot.aid.mrc
alias num {
var %n = $remove($1,$chr(44))
if ( k !isin %n && m !isin %n ) { return %n }
if ( k isin %n ) { return $calc($remove(%n,k) * 1000 ^ $count(%n,k)) }
if ( m isin %n ) { return $calc($remove(%n,m) * 1000000 ^ $count(%n,m)) }
}
;-- $tnum(5000000); returns 5,000,000 ; xbot.aid.mrc
alias tnum {
if ( $1 >= 1000000 ) { return $calc($1 / 1000000) $+ m }
if ( $1 >= 1000 ) { return $calc($1 / 1000) $+ k }
if ( $1 < 1000 ) { return $1 }
}
;-- $x.match($chan,user/prov string,user/prov) ; returns complete username/province, returns $null if more than one match ; xbot.aid.mrc
alias x.match {
;logged-in nicknames
if ( $3 == user ) { var %u = $xuser($2,$1) }
if ( $3 == prov ) { var %u = $hget(x. $+ $xchan($1) $+ .user.prov,$xuser($2,$1)) }
if ( %u != $null ) { goto done }
;search by complete username/province
var %i = 1
while ( $hget(x. $+ $xchan($1) $+ .user.prov,%i).item ) {
if ( $2 == $hget(x. $+ $xchan($1) $+ .user.prov,%i).data || $2 == $hget(x. $+ $xchan($1) $+ .user.prov,%i).item ) {
if ( $3 == user ) { var %c = $hget(x. $+ $xchan($1) $+ .user.prov,%i).item }
if ( $3 == prov ) { var %c = $hget(x. $+ $xchan($1) $+ .user.prov,%i).data }
}
inc %i
}
if ( %c != $null ) { goto done }
;search by partial username/province
var %i = 1
while ( $hget(x. $+ $xchan($1) $+ .user.prov,%i).item ) {
if ( $2 isin $hget(x. $+ $xchan($1) $+ .user.prov,%i).data || $2 isin $hget(x. $+ $xchan($1) $+ .user.prov,%i).item ) {
if ( %p != $null ) { return $null }
if ( $3 == user ) { var %p = $hget(x. $+ $xchan($1) $+ .user.prov,%i).item }
if ( $3 == prov ) { var %p = $hget(x. $+ $xchan($1) $+ .user.prov,%i).data }
}
inc %i
}
:done
if ( %p != $null ) { return %p }
if ( %u != $null ) { return %u }
if ( %c != $null ) { return %c }
return $null
}
;-- $x.hsave(user.pass) ; saves hash table for all channels on EXIT ; xbot.admin.mrc, xbot.kd.db.mrc
alias x.hsave {
var %n = 1
while ( %n <= $finddir($scriptdir $+ info,*,0) ) {
var %dir = $finddir($scriptdir $+ info,*,%n)
var %c = $remove(%dir,$scriptdir $+ info\)
hsave x. $+ %c $+ . $+ $1 " $+ %dir $+ \ $+ $1 $+ .txt $+ "
inc %n
}
return xBot: Hash table " $+ $1 $+ " saved
}
;-- $x.hmake(user.pass) ; makes and loads hash table for all channels on START ; xbot.admin.mrc, xbot.kd.db.mrc
alias x.hmake {
var %n = 1
while ( %n <= $finddir($scriptdir $+ info,*,0) ) {
var %dir = $finddir($scriptdir $+ info,*,%n)
var %c = $remove(%dir,$scriptdir $+ info\)
hmake x. $+ %c $+ . $+ $1
if ( $exists(%dir $+ \ $+ $1 $+ .txt) == $true ) { hload x. $+ %c $+ . $+ $1 " $+ %dir $+ \ $+ $1 $+ .txt $+ " }
inc %n
}
return xBot: Hash table " $+ $1 $+ " created
}