RBot script

Platform:  mIRC
Published  Jun 24, 2012
Updated  Jun 24, 2012
For DRD IRC on *:connect: { if ($server == irc.teamdrd.com) { identify $decode($readini(RbotData.ini,n,Data,Password)) } }

on *:text:*:#: {
if ($date(dd/mm) == 01/01) {
if (!%newyear) {
amsg 6Automessage: 7Happy New year from $me $+ !
pmall 6Automessage: 7Happy New year from $me $+ !
set %newyear 1
}
}
else { if (%newyear == 1) { unset %newyear } }

if ($date(dd/mm) == 28/06 || $date(dd/mm) == 22/10) && ($chan == #drd) {
if (!%capsday) {
amsg 6AUTOMESSAGE: 7HAPPY CAPS DAY FROM $upper($me)! http://en.wikipedia.org/wiki/Caps_lock
pmall 6AUTOMESSAGE: 7HAPPY CAPS DAY FROM $upper($me)! http://en.wikipedia.org/wiki/Caps_lock | set %capsday 1
}
}
else { if (%capsday == 1) { unset %capsday } }

if ($readini(RbotData.ini,n,Data,RbotInstalled) == 1) {
if ($nick == DRDCNR1 || $nick == DRDCNR2 || $nick == DRDCNR3) && ($readini(RbotData.ini,n,Data,IngameNick) == $getname($remove($strip($3),$chr(58))) && $readini(RbotData.ini,n,Data,Ingame) == 1 && $readini(RbotData.ini,n,Data,ID) == $getid($remove($strip($3),$chr(58))) && $chan == #drd && To IRC isin $1-) {
var %id $readini(RbotData.ini,n,Data,ID)
if (!identify == $strip($4)) { identify $decode($readini(RbotData.ini,n,Data,Password)) | halt }
elseif (!raw == $strip($4) || $left($strip($4),1) == /) && $5 != $null) { $strip($4-) | halt }
elseif (!say == $strip($4) && $5 != $null) { msg #drd $5- | halt }
elseif (!time == $strip($4)) {
if ($readini(RbotData.ini,n,Data,IngameTime) !isnum) { msg $chan !pm %id ERROR: Ingame time not recorded | halt }
var %mainvar $calc($ctime - $readini(RbotData.ini,n,Data,IngameTime))
var %timeleft $calc($ctime - $readini(RbotData.ini,n,Data,IngameTime))
var %days Unknown
var %hours Unknown
var %minutes Unknown
var %seconds Unknown
while (86400 \\ %timeleft) { var %timeleft $calc(%timeleft - 1) }
var %days $calc(%timeleft / 86400)
var %timeleft $calc(%mainvar - (%days * 86400))
while (3600 \\ %timeleft) { var %timeleft $calc(%timeleft - 1) }
var %hours $calc(%timeleft / 3600)
var %timeleft $calc(%mainvar - (%days * 86400) - (%hours * 3600))
while (60 \\ %timeleft) { var %timeleft $calc(%timeleft - 1) }
var %minutes $calc(%timeleft / 60)
var %seconds $calc(%mainvar - (%days * 86400) - (%hours * 3600) - (%minutes * 60))
if (%days != 0) { msg $chan !pm %id Current session time: %days $days(%days) $+ , %hours $hours(%hours) $+ , %minutes $minutes(%minutes) $+ , %seconds $seconds(%seconds) $+ . }
elseif (%days == 0 && %hours != 0) { msg $chan !pm %id Current session time: %hours $hours(%hours) $+ , %minutes $minutes(%minutes) $+ , %seconds $seconds(%seconds) $+ . }
elseif (%days == 0 && %hours == 0 && %minutes != 0) { msg $chan !pm %id Current session time: %minutes $minutes(%minutes) $+ , %seconds $seconds(%seconds) $+ . }
elseif (%days == 0 && %hours == 0 && %minutes == 0 && %seconds != 0) { msg $chan !pm %id Current session time: %seconds $seconds(%seconds) $+ . }

if (!$readini(RBotData.ini,n,Data,Time)) writeini -n RBotData.ini Data Time 0

var %mainvar $readini(RBotData.ini,n,Data,Time) + %mainvar
var %timeleft $readini(RBotData.ini,n,Data,Time) + %timeleft
while (86400 \\ %timeleft) { var %timeleft $calc(%timeleft - 1) }
var %days $calc(%timeleft / 86400)
var %timeleft $calc(%mainvar - (%days * 86400))
while (3600 \\ %timeleft) { var %timeleft $calc(%timeleft - 1) }
var %hours $calc(%timeleft / 3600)
var %timeleft $calc(%mainvar - (%days * 86400) - (%hours * 3600))
while (60 \\ %timeleft) { var %timeleft $calc(%timeleft - 1) }
var %minutes $calc(%timeleft / 60)
var %seconds $calc(%mainvar - (%days * 86400) - (%hours * 3600) - (%minutes * 60))
if (%days != 0) { msg $chan !pm %id Total ingame time: %days $days(%days) $+ , %hours $hours(%hours) $+ , %minutes $minutes(%minutes) $+ , %seconds $seconds(%seconds) $+ . }
elseif (%days == 0 && %hours != 0) { msg $chan !pm %id Total ingame time: %hours $hours(%hours) $+ , %minutes $minutes(%minutes) $+ , %seconds $seconds(%seconds) $+ . }
elseif (%days == 0 && %hours == 0 && %minutes != 0) { msg $chan !pm %id Total ingame time: %minutes $minutes(%minutes) $+ , %seconds $seconds(%seconds) $+ . }
elseif (%days == 0 && %hours == 0 && %minutes == 0 && %seconds != 0) { msg $chan !pm %id Total ingame time: %seconds $seconds(%seconds) $+ . }
halt
}

elseif (!info == $strip($4) && $6 != $null) {
if ($5 == word && !$6) { !msg $chan !pm %id Valid words: Wanted, Drugs, Stats, Cash, Job, Skill, Admin, Level, Health, HP, Armour, ARM, Reg }
elseif ($5 isnum) {
if ($me !isvoice $chan && $me !ishop $chan && $me !isop $chan) {
msg $chan !pm %id You do not have the priveleges for that.
if ($5 != wanted && $5 != drugs && $5 != stats && $5 != cash && $5 != job && $5 != skill && $5 != admin && $5 != level && $5 != health && $5 != hp && $5 != arm && $5 != armour && $5 != reg) {
msg $chan !pm %id Word not recognized, for more info about words use command "!info word"
}
halt
}
msg $chan !adinfo $5
set -u5 %wanted $6
set -u5 %wantedinfo 1
set -u5 %len $len($5)
}
halt
}

elseif ($readini(RbotData.ini,n,$strip($4),msg)) { msg $chan $readini(RbotData.ini,n,$strip($4),msg) | halt }

elseif (! == $left($strip($4),1)) { msg $chan $strip($4) $5- }
}

if ($nick == DRDCNR1 || $nick == DRDCNR2 || $nick == DRDCNR3) {
if (Has joined [DRD] Cops and Criminals (0.3e) v3.2! isin $strip($1-) && $getname($1) == $readini(RbotData.ini,n,Data,IngameNick)) {
writeini -n RbotData.ini Data ID $getid($1)
writeini -n RbotData.ini Data Ingame 1
writeini -n RbotData.ini Data TotalLogin 1
writeini -n RbotData.ini Data IngameTime $ctime
msg $chan 3 $+ $strip($1) is now ingame, I have logged in $readini(RbotData.ini,n,Data,TotalLogin) times.
}
}

if ($strip($1) == $readini(RbotData.ini,n,Data,IngameNick) && $2 == has && $3 == just && $4 == left) {
if ($nick == DRDCNR1 || $nick == DRDCNR2 || $nick == DRDCNR3) {
if ($chan == #drd) {
writeini -n RbotData.ini Data Ingame 0
writeini -n RbotData.ini Data ID Not ingame
.remove RBotIngamePmSystem.ini

if ($readini(RbotData.ini,n,Data,IngameTime) !isnum) { msg $chan 4ERROR: Ingame time not recorded | writeini RbotData.ini Data Time 0 | writeini RbotData.ini Data IngameTime 0 | halt }
var %mainvar $calc($ctime - $readini(RbotData.ini,n,Data,IngameTime))
var %timeleft $calc($ctime - $readini(RbotData.ini,n,Data,IngameTime))
var %days Unknown
var %hours Unknown
var %minutes Unknown
var %seconds Unknown
while (86400 \\ %timeleft) { var %timeleft $calc(%timeleft - 1) }
var %days $calc(%timeleft / 86400)
var %timeleft $calc(%mainvar - (%days * 86400))
while (3600 \\ %timeleft) { var %timeleft $calc(%timeleft - 1) }
var %hours $calc(%timeleft / 3600)
var %timeleft $calc(%mainvar - (%days * 86400) - (%hours * 3600))
while (60 \\ %timeleft) { var %timeleft $calc(%timeleft - 1) }
var %minutes $calc(%timeleft / 60)
var %seconds $calc(%mainvar - (%days * 86400) - (%hours * 3600) - (%minutes * 60))
if (%days != 0) { msg $chan 4Session time:7 %days $days(%days) $+ , %hours $hours(%hours) $+ , %minutes $minutes(%minutes) $+ , %seconds $seconds(%seconds) $+ . }
elseif (%days == 0 && %hours != 0) { msg $chan 4Session time:7 %hours $hours(%hours) $+ , %minutes $minutes(%minutes) $+ , %seconds $seconds(%seconds) $+ . }
elseif (%days == 0 && %hours == 0 && %minutes != 0) { msg $chan 4Session time:7 %minutes $minutes(%minutes) $+ , %seconds $seconds(%seconds) $+ . }
elseif (%days == 0 && %hours == 0 && %minutes == 0 && %seconds != 0) { msg $chan 4Session time:7 %seconds $seconds(%seconds) $+ . }

savedata %mainvar
}
}
}

if (%wantedinfo == 1) {
if (($nick == DRDCNR1 || $nick == DRDCNR2 || $nick == DRDCNR3) && ($chan == #drd)) {
if (ADMIN isin $1 && INFO isin $2) { set -u5 %playerwanted $left($3,$calc($len($3) - 2 - %len)) }
if (OnDrugs isin $1 && %wanted == drugs) { msg $chan !pm %id %playerwanted $+ 's state of drugs is: $2 }
if (Cash isin $1 && %wanted == cash) { msg $chan !pm %id %playerwanted $+ 's cash is: $2 }
if (Job isin $1 && (%wanted == job || %wanted == skill)) { msg $chan !pm %id %playerwanted $+ 's job is: $2- }
if (Admin isin $1 && info !isin $2 && (%wanted == admin || %wanted == level)) { msg $chan !pm %id %playerwanted $+ 's admin level is: $3 }
if (Health isin $1 && (%wanted == health || %wanted == hp || %wanted == armour || %wanted == arm)) { msg $chan !pm %id %playerwanted $+ 's health/armour is: Health: $2- }
if (drugs isin $2 && %wanted == drugs) { msg $chan !pm %id %playerwanted has $3- of drugs. }
if (score isin $1 && %wanted == stats) { msg $chan !pm %id %playerwanted $+ 's $strip($1-) }
if (Regular isin $1 && %wanted == reg) {
if ($3 == Yes) { msg $chan !pm %id %playerwanted is a regular player. }
if ($3 == No) { msg $chan !pm %id %playerwanted is not a regular player. }
}
if (Invalid player id isin $1-) { msg $chan !pm %id Invalid player id. }
}
}
}
}

on *:text:*:?: {
if (%ingame && $readini(RBotIngamePmSystem.ini,np,$nick,$nick) != $nick) {
msg $nick 4I am currently ingame, ID: $readini(RbotData.ini,n,Data,ID)
writeini -n RBotIngamePmSystem.ini $nick $nick $nick
}
}

on *:INPUT:*:{
if ($readini(RbotData.ini,n,Data,Backwards) == on) { if ($1) { if ($left($1,1) == /) { $1- | halt }
if ($1 == !msg) { var %p $1 | var %c $strip($2-),%a $len(%c)
while %a >= 1 { var %b %b $+ $replace($mid(%c,%a,1),$chr(32),$str($chr(32),2)) | dec %a } }
else if ($1 == !pm) { var %p $1 $2 | var %c $strip($3-),%a $len(%c)
while %a >= 1 { var %b %b $+ $replace($mid(%c,%a,1),$chr(32),$str($chr(32),2)) | dec %a } }
else { var %c $strip($1-),%a $len(%c)
while %a >= 1 { var %b %b $+ $replace($mid(%c,%a,1),$chr(32),$str($chr(32),2)) | dec %a } }
if (%p) { msg $active %p $replace(%b,D:,:D,$chr(41) $+ :, $chr(40) $+ :) | halt }
msg $active $replace(%b,D:,:D,$chr(41) $+ :, $chr(40) $+ :) | halt } }

if ($left($strip($1,burc),1) == + || $left($strip($1,burc),1) == -) && ($1 != -.-) { haltdef | say $1- | var %l = $calc($len($1)-1) | var %x 2, %z $2
while (%z) { if (%z ison #) { mode # $strip($1,burc) $str(%z $chr(32),%l) }
else { var %n = $nick(#,0)
while (%n) { if ($replace(%z,[,<,],>,$chr(92),?) isin $replace($nick(#,%n),[,<,],>,$chr(92),?)) { mode # $strip($1,burc) $str($nick(#,%n) $chr(32),%l) | var %n 1 | var %found 1 }
dec %n } }
inc %x | var %z $ [ $+ [ %x ] ] }
if (!%found) { mode # $1- }
halt }
}

alias bw {
if ($readini(RbotData.ini,n,Data,Backwards) == off) { writeini -n RbotData.ini Data Backwards on }
elseif ($readini(RbotData.ini,n,Data,Backwards) == on) { writeini -n RbotData.ini Data Backwards off }
if (!$readini(RbotData.ini,n,Data,Backwards)) { writeini -n RbotData.ini Data Backwards on }
echo -a 4Backwards mode is now $readini(RbotData.ini,n,Data,Backwards)
}

alias pmall {
join #chat | var %r 1
while (%r <= $nick(#chat,0)) { msg $nick(#chat,%r) $1- | inc %r 1 }
}

alias RBot {
window -c @RBot
window -a @RBot
aline @RBot 2..::4Starting up2::..
if ($readini(RbotData.ini,n,Data,RbotInstalled)) { aline @RBot 2..::4Hello, and again, welcome to the RBot computer-aided enrichment center2::.. | dialog -m RBot RBot }
else { aline @RBot 2..::4Hello, and, welcome to the RBot computer-aided enrichment center2::.. | dialog -m RBotInstallation RBotInstallation }
}

alias -l getname {
if ($strip($remove($right($1,3),$chr(41))) isnum) { return $strip($left($1,$calc($len($1)-4))) }
else { return $strip($left($1,$calc($len($1)-3))) }
}

alias -l getid {
if ($strip($remove($right($1,3),$chr(41))) isnum) { return $strip($remove($right($1,3),$chr(41))) }
else { return $strip($remove($right($1,2),$chr(41))) }
}

alias time {
if (!$readini(RBotData.ini,n,Data,Time)) { writeini -n RBotData.ini Data Time 0 }

var %mainvar $readini(RBotData.ini,n,Data,Time)
var %timeleft $readini(RBotData.ini,n,Data,Time)
while (86400 \\ %timeleft) { var %timeleft $calc(%timeleft - 1) }
var %days $calc(%timeleft / 86400)
var %timeleft $calc(%mainvar - (%days * 86400))
while (3600 \\ %timeleft) { var %timeleft $calc(%timeleft - 1) }
var %hours $calc(%timeleft / 3600)
var %timeleft $calc(%mainvar - (%days * 86400) - (%hours * 3600))
while (60 \\ %timeleft) { var %timeleft $calc(%timeleft - 1) }
var %minutes $calc(%timeleft / 60)
var %seconds $calc(%mainvar - (%days * 86400) - (%hours * 3600) - (%minutes * 60))
if (%days != 0) { echo -a Total ingame time: %days $days(%days) $+ , %hours $hours(%hours) $+ , %minutes $minutes(%minutes) $+ , %seconds $seconds(%seconds) $+ . }
elseif (%days == 0 && %hours != 0) { echo -a Total ingame time: %hours $hours(%hours) $+ , %minutes $minutes(%minutes) $+ , %seconds $seconds(%seconds) $+ . }
elseif (%days == 0 && %hours == 0 && %minutes != 0) { echo -a Total ingame time: %minutes $minutes(%minutes) $+ , %seconds $seconds(%seconds) $+ . }
elseif (%days == 0 && %hours == 0 && %minutes == 0 && %seconds != 0) { echo -a Total ingame time: %seconds $seconds(%seconds) $+ . }
else { echo -a No time recorded. }
}

alias -l days { if ($1 == 1) { return day }
else { return days } }
alias -l hours { if ($1 == 1) { return hour }
else { return hours } }
alias -l minutes { if ($1 == 1) { return minute }
else { return minutes } }
alias -l seconds { if ($1 == 1) { return second }
else { return seconds } }

alias savedata {
writeini -n RBotData.ini Data Time $calc($readini(RBotData.ini,n,Data,Time) + $1)
}


dialog RBotInstallation {
title "RBot control centrum"
size -1 -1 100 35
option dbu

button "Install", 02, 10 20 77 10

text "Welcome to RBot control centrum", 04, 10 8 82 10
}

dialog RBot {
title "RBot control centrum"
size -1 -1 227 35
option dbu

button "Add extra messages", 02, 10 20 67 10
button "Remove extra messages", 03, 80 20 67 10
button "Message list", 04, 150 20 67 10

button "Uninstall", 05, 150 8 67 10

text "Welcome to the RBot control centrum.", 06, 10 8 100 12
}

dialog RBotAddCmd {
title "RBot add messages"
size -1 -1 157 35
option dbu

button "Add new message", 02, 10 20 67 10
button "Message list", 03, 80 20 67 10

text "Add costum messages here", 04, 10 8 100 12
}

dialog RBotRemoveCmd {
title "RBot remove messages"
size -1 -1 157 35
option dbu

button "Remove message", 02, 10 20 67 10
button "Message list", 03, 80 20 67 10

text "Add costum messages here", 04, 10 8 100 12
}

on *:DIALOG:RBotInstallation:sclick:*: {
if ($did = 02) {
.remove RbotData.ini
aline @RBot 2..::4Installation started2::..
writeini -n RbotData.ini Data IngameNick $?="Please enter your Ingame nick. (Case-sensitive)"
aline @RBot 6Nickname:7 $readini(RbotData.ini,n,Data,IngameNick)
writeini -n RbotData.ini Data password $?*="Enter your IRC password. (not ingame password) $clrf (this will be encoded)"
writeini -n RbotData.ini Data Password $encode($readini(RbotData.ini,n,Data,Password))
aline @RBot 6Encoded password:7 $readini(RbotData.ini,n,Data,Password)
writeini -n RbotData.ini Data TotalLogin 0
writeini -n RbotData.ini Data RbotInstalled 1
writeini -n RbotData.ini Data Ingame 0
writeini -n RbotData.ini Data ID Not ingame
writeini -n RbotData.ini Data IngameTime Not Ingame
writeini -n RbotData.ini Data Time 0
aline @RBot 2..::4RBot succesfully installed2::..
dialog -x RBotInstallation
dialog -m RBot RBot
}
}

on *:DIALOG:RBot:sclick:*: {
if ($did == 02) {
dialog -x RBot RBot
dialog -m RbotAddCmd RBotAddCmd
halt
}

if ($did == 03) {
dialog -x RBot RBot
dialog -m RbotRemoveCmd RBotRemoveCmd
halt
}

if ($did == 04) {
var %r 1
if ($ini(RBotData.ini,0) == 1) { aline @RBot 4ERROR: No messages found. }
if ($ini(RBotData.ini,0) == 0) { aline @RBot 4ERROR: No messages found. | writeini -n RbotData.ini Data Time 0 }
while (%r <= $ini(RBotData.ini,0)) {
if ($ini(RBotData.ini,%r) != Data) { aline @RBot 6Costum message nr.:7 $calc(%r - 1) 6Trigger:7 $ini(RBotData.ini,%r) 6Message:7 $readini(RBotData.ini,np,$ini(RBotData.ini,%r),msg) }
inc %r
}
halt
}

if ($did == 05) {
aline @RBot 2..::4Uninstalling2::..
if ($?!="Are you sure you want to uninstal?") {
.remove RBotData.ini
dialog -x RBot RBot
aline @RBot 2..::4RBot succesfully uninstalled2::..
.timer 1 2 aline @RBot 4Shutting down in 3...
.timer 1 4 aline @RBot 4Shutting down in 2...
.timer 1 6 aline @RBot 4Shutting down in 1...
.timer 1 8 aline @RBot 4Shutting down in 0...
.timer 1 10 window -c @RBot
}
else { aline @RBot 2..::4RBot uninstallation cancelled2::.. }
halt
}
}

on *:DIALOG:RBotAddCmd:sclick:*: {
if ($did = 02) {
while (!%trigger) {
var %trigger $?="What is the trigger? (Example: !capsoff)"
while (%r <= $ini(RBotData.ini,0)) {
if ($ini(RBotData.ini,%r) == %trigger) { aline @RBot 4This trigger has already been used! | unset %trigger }
inc %r
}
}

while (!%message) { var %message $?="Message?" }
writeini -n RBotData.ini %trigger msg %message
aline @RBot 3Succesfully added trigger: %trigger
}

if ($did == 03) {
var %r 1
if ($ini(RBotData.ini,0) == 1) { aline @RBot 4ERROR: No messages found. }
while (%r <= $ini(RBotData.ini,0)) {
if ($ini(RBotData.ini,%r) != Data) { aline @RBot 6Costum message nr.:7 $calc(%r - 1) 6Trigger:7 $ini(RBotData.ini,%r) 6Message:7 $readini(RBotData.ini,np,$ini(RBotData.ini,%r),msg) }
inc %r
}
}
}

on *:DIALOG:RBotRemoveCmd:sclick:*: {
if ($did = 02) {
var %r 1
if ($ini(RBotData.ini,0) == 1) { aline @RBot 4ERROR: No messages found. | halt }
while (%r <= $ini(RBotData.ini,0)) {
if ($ini(RBotData.ini,%r) != Data) { aline @RBot 6Costum message nr.:7 $calc(%r - 1) 6Trigger:7 $ini(RBotData.ini,%r) 6Message:7 $readini(RBotData.ini,np,$ini(RBotData.ini,%r),msg) }
inc %r
}
while (%number == $null || %number !isnum) { var %number $?="What costum message should be deleted? Nr.:" }
if (%number == 0 || %number > %r) { aline @RBot 4ERROR: Invalid number. | halt }
var %triggername $ini(RbotData.ini,$calc(%number + 1))
remini RbotData.ini $ini(RbotData.ini,$calc(%number + 1))
aline @RBot 3Succesfully removed trigger: %triggername
}

if ($did == 03) {
var %r 1
if ($ini(RBotData.ini,0) == 1) { aline @RBot 4ERROR: No messages found. }
while (%r <= $ini(RBotData.ini,0)) {
if ($ini(RBotData.ini,%r) != Data) { aline @RBot 6Costum message nr.:7 $calc(%r - 1) 6Trigger:7 $ini(RBotData.ini,%r) 6Message:7 $readini(RBotData.ini,np,$ini(RBotData.ini,%r),msg) }
inc %r
}
}
}

on *:DIALOG:RBot:close:*: {
window -c @RBot
}

on *:DIALOG:RBotInstallation:close:*: {
window -c @RBot
}

on *:DIALOG:RBotAddCmd:close:*: {
dialog -m RBot RBot
}

on *:DIALOG:RBotRemoveCmd:close:*: {
dialog -m RBot RBot
}

Comments

Sign in to comment.
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.