------------------------------------------------------------------------------------------------------------ -- crazy bot by plop V:±8436.brainless.474638.get_my_pills -- marvelous string reverse function by lua guru rabidwombat -- lot of folks are gonne need meditation if this bot releases it's powers -- no i didn't have 2 much time, it was a great way 2 learn 2 manipulate strings -- multiline fixed by chiller ------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------ -- keep the filename as it is (zcrazy.lua), it has this name 2 try and make sure it is procest as last by ptokax -- if you don't make sure it's executed as last it whill mess up all commands send to the other bot's -- if you still get problems/conflicts with other bot's change the trigger 2 @crazy and it should work fine -- if then you still encounter problems, blame the creator of the other bot(s), not me ------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------ -- warrenty: don't blame me if your users loose there mind. -- if they do, there are some rooms availeble here in the institute -- if they behave they'll get a painted window on the wall just like me -- use it @ there own risk. ------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------ ---- V4.1 -- added: binary -- added: hexadecimal -- added: morse code -- added: morse code beeps -- added: replace nick for a random other nick from the hub ------------------------------------------------------------------------------------------------------------ ---- V4.2 -- added: spam bacon and eggs -- fixed: double used command ------------------------------------------------------------------------------------------------------------ ---- V4.3 -- fixed: forgot to add a command to enable the spam,bacon eggs mode ------------------------------------------------------------------------------------------------------------ -- replace this for the name of your operator bot Bot = "-Bure-" -- nick's which crazy bot uses 2 speak NAME = "-OPChat-" ---"place_a_nick_here" NAME2 = "-VIPChat-" ---"place_another_nick_here" -- 1 = shows nick in the userlist, 0 = hiding SHOW = 0 -- default mode wich is starts in MODE = 25 -- put this on 1 to start it default in random mode, otherwise 0 RANDOM = 0 -- if you set this to 1 it will start the moment you launch the bot, better to keep it on 0 CRAZY = 0 -- table for teased nicks best to keep this 1 empty. TEASED = {} -- table for levels to be teased ([level_number]=1) TEASEL = {[-1]=1} -- teaser mode on start 0 = every1, 1 = user, 2 = level. TEASER = 0 -- letter replacer (["original_letter"]="replaced_by") aka build your own replace table LETTER = {["a"]="i"} -- typo error level. the higher you set this the less typo's will be made. RD = 10 --command name use @crazy for glory securitaz TRIGGER = "!crazy" ------------------------------------- controll settings -- bot can be controlled by: -- 0 = icecube/testdrive all operators, -- 1 = icecube/testdrive only operators given by nick in the table below, (NICKS) -- 2 = icecube/testdrive only operators given by nick loaded from file. (FILE) -- 3 = testdrive use profiles given in table below (LEVEL) PTOKAX = 3 -- nicks of operators which may controll crazy aka PTOKAX mode 1 NICKSL = { "ploperator" , "needles", "nurse_betty", "pills", "even_more_pils" } -- location/filename of the text file with the operator nicks you wanne load which may control crazy. aka PTOKAX mode 2 FILE = "op's.lst" -- userlevel which may control crazy (only for testdrive+) aka PTOKAX mode 3 LEVELL = { [0]=1 , [1]=1 } ------------------------- end of setting starting the real stuff, no need 2 edit anything below this line, unless you find a bug. function Main() if PTOKAX == 1 then LoadOps1() elseif PTOKAX == 2 then LoadOps2() elseif PTOKAX == 3 then LoadOps3() end if SHOW == 1 then frmHub:RegBot(NAME) end local num = gsub(date(), "%D", "") randomseed(tonumber(num)) end function DataArrival(user, data) sssst =0 if PTOKAX == 0 then if user.bOperator ~= nil then Commands(user, data) if sssst ==1 then return 1 end end elseif PTOKAX == 1 or PTOKAX == 2 then if NICKS[user.sName] then Commands(user, data) if sssst ==1 then return 1 end end else if LEVELL[user.iProfile] then Commands(user, data) if sssst ==1 then return 1 end end end if CRAZY == 1 then CheckRanNick(user) if not strfind(data, "$.+") then if TEASER == 1 then if TEASED[user.sName] then MixModes(user, data) return 1 end elseif TEASER == 2 then if TEASEL[user.iProfile] then MixModes(user, data) return 1 end else MixModes(user, data) return 1 end end end end function Commands(user, data) data = strsub(data, 1, (strlen(data)-1)) s,e,cmd,onoff,who= strfind(data,"%b<>%s(%S+)%s(%S+)%s(.+)") if who == nil then s,e,cmd,onoff= strfind(data,"%b<>%s(%S+)%s(%S+)") end local found = 0 if (cmd == TRIGGER) then if COMMANDS[onoff] then return call(COMMANDS[onoff], {user,data,who}) else user:SendData(Bot, "Wrong syntax, take a look at "..TRIGGER.." help for more info |" ) sssst =1 end end end function MixModes(user, data) data = gsub (data, "\r\n", "$") data = strsub(data, 1, (strlen(data)-1)) if RANDOM == 1 then MODE = random(17) end if MODES[MODE] then call (MODES[MODE], {user,data}) return 1 end end function CheckRanNick(user) if MODE ~= 24 and tM24Users then tM24Users = nil elseif MODE == 24 then if not tM24Users then tM24Users = {} tM24Users.a,tM24Users.t = GetUsers() elseif tM24Users.t[user.sName] == nil then tinsert(tM24Users.a, user.sName) tM24Users.t[user.sName] = 1 end end end function GetUsers() local tTmp={} local aTmp={} for a,b in GetProfiles() do for c,d in GetUsersByProfile(b) do tinsert(aTmp, d) aTmp[d] = 1 end end return aTmp, tTmp end function strrev(str) if(strlen(str) < 2) then return str; else str = gsub(str, "^(.)(.*)(.)$", function(a, b, c) return c..strrev(b)..a; end, 1); return str; end end function DoSend1(m1) m1 = gsub (m1, "$+","\r\n") SendToAll(m1) end function DoSend2(m1, m2) m1 = gsub (m1, "$+","\r\n") m2 = gsub (m2, "$+","\r\n") SendToAll(m1, m2) end function LoadOps1() NICKS= {} for i=1, getn(NICKSL) do NICKS[NICKSL[i]] = 1 end end function LoadOps2() NICKS={} readfrom(FILE) while 1 do local line = read() if line == nil then break end NICKS[line] = 1 end readfrom() end function LoadOps3() LEVEL = {} for i=1, getn(LEVELL) do LEVEL[LEVELL[i]] = 1 end end STATS = { [1] = "reversing full lines", [2] = "reversing the message", [3] = "reversing the words", [4] = "flipping full lines", [5] = "flipping the nicks", [6] = "flipping the message", [7] = "reversing the nicks", [8] = "reversing the order of the words", [9] = "randomising the order of the words", [10] = "converting the nick to camel script", [11] = "converting full lines to camel script", [12] = "converting the message to camel script", [13] = "custom replacer" , [14] = "elite talk", [15] = "old style elite talk", [16] = "breezer talk", [17] = "typo on error level "..RD, [18] = "randomising the order of all the characters in the message", [19] = "randomising the nick", [20] = "morse code", [21] = "crazy morse code", [22] = "ascii to binairy", [23] = "ascii to hexadecimal", [24] = "random nick", [25] = "spam bacon and eggs" } COMMANDS = { on = function(user, data) CRAZY = 1 user:SendData(Bot, "Crazy mode enabled |" ) sssst =1 end , off = function(user, data) CRAZY = 0 user:SendData(Bot, "Crazy mode disabled |" ) sssst =1 end , full = function(user, data) MODE = 1 user:SendData(Bot, "Full lines will be reversed |" ) sssst =1 end , msg = function(user, data) MODE = 2 user:SendData(Bot, "Only the message will be reversed |" ) sssst =1 end , words = function(user, data) MODE = 3 user:SendData(Bot, "Single words will be reversed |" ) sssst =1 end , flipfull = function(user, data) MODE = 4 user:SendData(Bot, "Full lines will be flipped |" ) sssst =1 end , flipnick = function(user, data) MODE = 5 user:SendData(Bot, "Nicks will be flipped |" ) sssst =1 end , flip = function(user, data) MODE = 6 user:SendData(Bot, "Only the message will be flipped |" ) sssst =1 end , nick = function(user, data) MODE = 7 user:SendData(Bot, "Nicks will be reversed |" ) sssst =1 end , order = function(user, data) MODE = 8 user:SendData(Bot, "Order of the words will be reversed |" ) sssst =1 end , randomorder = function(user, data) MODE = 9 user:SendData(Bot, "Randomises the order of the words |" ) sssst =1 end , camelnick = function(user, data) MODE = 10 user:SendData(Bot, "Changes the nick to camel script |" ) sssst =1 end , camelfull = function(user, data) MODE = 11 user:SendData(Bot, "Changes the full line to camel script |" ) sssst =1 end , camel = function(user, data) MODE = 12 user:SendData(Bot, "Changes the message to camel script |" ) sssst =1 end , elite = function(user, data) MODE = 14 user:SendData(Bot, "Changes the message to elite talk |" ) sssst =1 end , eliteold = function(user, data) MODE = 15 user:SendData(Bot, "Changes the message to old style elite talk |" ) sssst =1 end , breezer = function(user, data) MODE = 16 user:SendData(Bot, "Changes the message to breezer talk |" ) sssst =1 end , mental = function(user, data) MODE = 18 user:SendData(Bot, "Randomises the order of all the characters in the message |" ) sssst =1 end , randomisenick = function(user, data) MODE = 19 user:SendData(Bot, "Randomises the nick |" ) sssst =1 end , morse = function(user, data) MODE = 20 user:SendData(Bot, "morse code |" ) sssst =1 end , morselong = function(user, data) MODE = 21 user:SendData(Bot, "morse code |" ) sssst =1 end , binary = function(user, data) MODE = 22 user:SendData(Bot, "ascii to binary |" ) sssst =1 end , hexadecimal = function(user, data) MODE = 23 user:SendData(Bot, "ascii to hexadecimal |" ) sssst =1 end , randomnick = function(user, data) MODE = 24 user:SendData(Bot, "random nick |" ) sssst =1 end , spam= function(user, data) MODE = 25 user:SendData(Bot, "spam bacon eggs |" ) sssst =1 end , help = function(user, data) CrazyHelp(user) sssst =1 end , show = function(user, data) frmHub:RegBot(NAME) sssst =1 end , hide = function(user,data) frmHub:UnregBot(NAME) sssst =1 end , replace = function(user, data, who) if who ~= nil then local s,e,a,b=strfind(who, "(%S)%s*(%S*)") if a ~= nil then if LETTER[a] then user:SendData(Bot, a.. " is removed from the replacer table |" ) LETTER[a]=nil sssst =1 elseif b ~= "" then LETTER[a]=b user:SendData(Bot, a.. " is added to the replace table and will be replaced by a "..b.." |" ) sssst =1 else user:SendData(Bot, "I need 1 more character |" ) sssst =1 end else user:SendData(Bot, "Pls give 2 characters|") sssst =1 end else MODE = 13 user:SendData(Bot, "Letter replacer activated |" ) sssst =1 end end , typo = function(user, data,who) if tonumber(who) then RD = tonumber(who) end MODE = 17 user:SendData(Bot, "Changes the message with typo's (error level: "..RD..") |" ) sssst =1 end , showreplace = function(user,data) line = "\r\n\r\n The replace table\r\n original character --> replaced by\r\n" for a,b in LETTER do line=line.." "..a.." --> "..b.."\r\n" end user:SendPM(Bot, line.."|") sssst =1 end, status = function(user, data) if CRAZY == 0 then if TEASER == 0 then user:SendData(Bot, "I would start in "..STATS[MODE].."|" ) sssst =1 elseif TEASER == 2 then user:SendData(Bot, "I would start in "..STATS[MODE].." and teasing the next levels|" ) for a,b in TEASEL do user:SendData(Bot, (GetProfileName(a) or "unregistered").." users|") end sssst =1 else user:SendData(Bot, "I would start in "..STATS[MODE].." and teasing the next people|" ) for a,b in TEASED do user:SendData(Bot, a) end sssst =1 end else if TEASER == 0 then user:SendData(Bot, "I'm running in "..STATS[MODE].."|" ) sssst =1 elseif TEASER == 2 then user:SendData(Bot, "I'm running in "..STATS[MODE].." and teasing the next levels|" ) for a,b in TEASEL do user:SendData(Bot, (GetProfileName(a) or "unregistered").." users|") end sssst =1 else user:SendData(Bot, "I'm running in "..STATS[MODE].." and teasing the next people|" ) for a,b in TEASED do user:SendData(Bot, a) end sssst =1 end end end , random = function(user,data,who) if who == nil then user:SendData(Bot, "Wrong syntax, use "..TRIGGER.." random on/off |" ) sssst =1 elseif who == "on" then RANDOM = 1 user:SendData(Bot, "Get ready, random mode enabled |" ) sssst =1 elseif who == "off" then RANDOM = 0 user:SendData(Bot, "Order restored, random mode disabled |" ) sssst =1 else user:SendData(Bot, "Wrong syntax, use "..TRIGGER.." random on/off |" ) sssst =1 end end , teaser = function(user,data,who) if who == nil then user:SendData(Bot, "Wrong syntax, use "..TRIGGER.." teaser on/off |" ) sssst =1 elseif who == "on" then TEASER = 1 user:SendData(Bot, "Nick teaser mode enabled |" ) sssst =1 elseif who == "off" then TEASER = 0 user:SendData(Bot, "Nick teaser mode disabled |" ) sssst =1 else user:SendData(Bot, "Wrong syntax, use "..TRIGGER.." teaser on/off |" ) sssst =1 end end , level = function(user,data,who) if who == nil then user:SendData(Bot, "Wrong syntax, use "..TRIGGER.." level on/off |" ) sssst =1 elseif who == "on" then TEASER = 1 user:SendData(Bot, "Level teaser mode enabled |" ) sssst =1 elseif who == "off" then TEASER = 0 user:SendData(Bot, "Level teaser mode disabled |" ) sssst =1 elseif tonumber(who) then who = tonumber(who) if GetProfileName(who) or who == -1 then if TEASEL[who] then TEASEL[who]=nil user:SendData(Bot, (GetProfileName(who) or "unregistered").." removed from the level teaser(by number)|") sssst =1 else TEASEL[who]=1 user:SendData(Bot, (GetProfileName(who) or "unregistered").." added to the level teaser(by number)|") sssst =1 end else user:SendData(Bot, "Wrong syntax, level doesn't excist |" ) sssst =1 end elseif tonumber(who) == nil then if GetProfileIdx(who) ~= -1 then if TEASEL[GetProfileIdx(who)] then TEASEL[GetProfileIdx(who)]=nil user:SendData(Bot, who.." removed from the level teaser(by name)|") sssst =1 else TEASEL[GetProfileIdx(who)]=1 user:SendData(Bot, who.." added to the level teaser(by name)|") sssst =1 end elseif who =="unreg" then if TEASEL[-1] then TEASEL[-1]=nil user:SendData(Bot, "unregistered removed from the level teaser(by name)|") sssst =1 else TEASEL[-1]=1 user:SendData(Bot, "unregistered added to the level teaser(by name)|") sssst =1 end else user:SendData(Bot, "Wrong syntax, profile name doesn't excist |" ) sssst =1 end else user:SendData(Bot, "Wrong syntax, use "..TRIGGER.." level on/off/level |" ) sssst =1 end end , addnick = function(user,data,who) if who == nil then user:SendData(Bot, "Wrong syntax, use "..TRIGGER.." addnick |" ) sssst =1 else if TEASED[who] then user:SendData(Bot, who.." is allready on the tease list |" ) sssst =1 else TEASED[who]=1 user:SendData(Bot, who.." will be teased |" ) sssst =1 end end end , delnick = function(user,data,who) if who == nil then user:SendData(Bot, "Wrong syntax, use "..TRIGGER.." delnick |" ) sssst =1 else if TEASED[who] then TEASED[who] = nil user:SendData(Bot, who.." will not be teased anymore |" ) sssst =1 else user:SendData(Bot, who.." was currently not teased |" ) sssst =1 end end end , shownicks = function(user,data,who) user:SendData(Bot, "Current teased users are |" ) for a,b in TEASED do user:SendData(Bot, a) end sssst =1 end , speak = function(user,data,who) if who == nil then user:SendData(Bot, "Wrong syntax, make me atleast say something |" ) sssst =1 else who = gsub (who, "\r\n", "$") DoSend2(NAME, who) sssst =1 end end , zpeak = function(user,data,who) if who == nil then user:SendData(Bot, "Wrong syntax, make me atleast say something |" ) sssst =1 else who = gsub (who, "\r\n", "$") DoSend2(NAME2, who) sssst =1 end end } MODES = { [1] = function(user, data) msg2 = strrev(data) DoSend1(msg2) end , [2] = function(user, data) s,e,msg= strfind(data,"%b<>%s(.+)") DoSend2(user.sName, strrev(msg)) end , [3] = function(user, data) s, e, msg = strfind(data, "%b<>%s(.+)") local line = gsub(msg, "(%S+)", function(word) return strrev(word) end) DoSend2(user.sName, line) end , [4] = function(user, data) msg2 = gsub(data, "(.)(.)", "%2%1") DoSend1(msg2) end , [5] = function(user, data) s,e,msg= strfind(data,"%b<>%s(.+)") who = gsub(user.sName, "(.)(.)", "%2%1") DoSend2(who, msg) end , [6] = function(user, data) s,e,msg= strfind(data,"%b<>%s(.+)") msg2 = gsub(msg, "(.)(.)", "%2%1") DoSend2(user.sName, msg2) end , [7] = function(user, data) s,e,msg= strfind(data,"%b<>%s(.+)") who = strrev(user.sName) DoSend2(who, msg) end , [8] = function(user, data) s,e,msg= strfind(data,"%b<>%s(.+)") _, count = gsub(msg, " ", " ") local line = "" for i=1,(count+1) do s,e,msg2,msg3 = strfind(msg,"(.+)%s(.+)") if msg3 == nil then line = (line.." "..msg) else line = (line.." "..msg3) msg = strsub(msg, 1, (strlen(msg2))) end end DoSend2(user.sName, line) end , [9] = function(user, data) s,e,msg= strfind(data,"%b<>%s(.+)") _, count = gsub(msg, " ", " ") local lines = {} local line = "" count = count+1 for i=1,(count) do s,e,msg2,msg3 = strfind(msg,"(.+)%s(.+)") if msg3 == nil then tinsert(lines, msg) else tinsert(lines, msg3) msg = strsub(msg, 1, (strlen(msg2))) end end for i=1,(count) do j = random(count) line = lines[j].." "..line tremove(lines,j) count = count -1 end DoSend2(user.sName, line) end , [10] = function(user, data) s,e,msg3= strfind(data,"%b<>%s(.+)") msg = tostring(user.sName) count = strlen(msg) local lines = {} local line = "" if updown == nil then updown = 0 end for i=1,(count) do msg2 = strsub(msg, -1, (strlen(msg))) if strlen(msg) == 1 then tinsert(lines, msg) else tinsert(lines, msg2) msg = strsub(msg, 1, (strlen(msg)-1)) end end for i=1,(count) do if updown == 0 then lines[i] = strupper(lines[i]) updown = 1 else lines[i] = strlower(lines[i]) updown =0 end line = lines[i]..line end DoSend2(line, msg3) end , [11] = function(user, data) msg = data count = strlen(msg) local lines = {} local line = "" if updown == nil then updown = 0 end for i=1,(count) do msg2 = strsub(msg, -1, (strlen(msg))) if strlen(msg) == 1 then tinsert(lines, msg) else tinsert(lines, msg2) msg = strsub(msg, 1, (strlen(msg)-1)) end end for i=1,(count) do if updown == 0 then lines[i] = strupper(lines[i]) updown = 1 else lines[i] = strlower(lines[i]) updown =0 end line = lines[i]..line end DoSend1(line) end , [12] = function(user, data) s,e,msg= strfind(data,"%b<>%s(.+)") count = strlen(msg) local lines = {} local line = "" if updown == nil then updown = 0 end for i=1,(count) do msg2 = strsub(msg, -1, (strlen(msg))) if strlen(msg) == 1 then tinsert(lines, msg) else tinsert(lines, msg2) msg = strsub(msg, 1, (strlen(msg)-1)) end end for i=1,(count) do if updown == 0 then lines[i] = strupper(lines[i]) updown = 1 else lines[i] = strlower(lines[i]) updown =0 end line = lines[i]..line end DoSend2(user.sName, line) end , [13] = function(user, data) s,e,msg3= strfind(data,"%b<>%s(.+)") msg3 = gsub(msg3, "(.)", function(letter) return Replace(letter, LETTER) end) DoSend2(user.sName, msg3) end , [14] = function(user,data) s,e,msg3= strfind(data,"%b<>%s(.+)") msg3 = gsub(msg3, "(.)", function(letter) return Replace(letter, ELITE, " ") end) DoSend2(user.sName, msg3) end , [15] = function(user,data) s,e,msg3= strfind(data,"%b<>%s(.+)") msg3 = gsub(msg3, "(.)", function(letter) return Replace(letter, ELITEOLD) end) DoSend2(user.sName, msg3) end , [16] = function(user,data) s,e,msg3= strfind(data,"%b<>%s(.+)") msg3 = gsub(strlower(msg3), "(.)", function(letter) return Replace(letter, BREEZ) end) DoSend2(user.sName, msg3) end , [17] = function(user,data) s,e,msg3= strfind(data,"%b<>%s(.+)") msg3 = gsub(strlower(msg3), "(.)", function(letter) return Typo(letter) end) DoSend2(user.sName, msg3) end , [18] = function(user, data) s,e,msg= strfind(data,"%b<>%s(.+)") count = strlen(msg) local lines = {} local line = "" for i=1,(count) do msg2 = strsub(msg, -1, (strlen(msg))) if strlen(msg) == 1 then tinsert(lines, msg) else tinsert(lines, msg2) msg = strsub(msg, 1, (strlen(msg)-1)) end end for i=1,(count) do j = random(count) line = lines[j]..line tremove(lines,j) count = count -1 end DoSend2(user.sName, line) end , [19] = function(user, data) s,e,msg3= strfind(data,"%b<>%s(.+)") msg = tostring(user.sName) count = strlen(msg) local lines = {} local line = "" for i=1,(count) do msg2 = strsub(msg, -1, (strlen(msg))) if strlen(msg) == 1 then tinsert(lines, msg) else tinsert(lines, msg2) msg = strsub(msg, 1, (strlen(msg)-1)) end end for i=1,(count) do j = random(count) line = lines[j]..line tremove(lines,j) count = count -1 end DoSend2(line, msg3) end , [20] = function(user,data) s,e,msg3= strfind(data,"%b<>%s(.+)") msg3 = gsub(strlower(msg3), "(.)", function(letter) return Replace(letter, MORSE, " ") end) DoSend2(user.sName, msg3) end , [21] = function(user,data) s,e,msg3= strfind(data,"%b<>%s(.+)") msg3 = gsub(strlower(msg3), "(.)", function(letter) return Replace(letter, MORSELONG, " ") end) DoSend2(user.sName, msg3) end , [22] = function(user,data) s,e,msg3= strfind(data,"%b<>%s(.+)") msg3 = gsub(strlower(msg3), "(.)", function(letter) return Replace(letter, BINARY, " ") end) DoSend2(user.sName, msg3) end , [23] = function(user,data) s,e,msg3= strfind(data,"%b<>%s(.+)") msg3 = gsub(strlower(msg3), "(%S)", function(letter) return tohex(letter) end) DoSend2(user.sName, msg3) end , [24] = function(user,data) s,e,msg3= strfind(data,"%b<>%s(.+)") DoSend2(tM24Users.a[ (random(getn(tM24Users.a))) ], msg3) end , [25] = function(user,data) s,e,msg3= strfind(data,"%b<>%s(.+)") msg3, c = gsub(strlower(msg3), "(%S+)", function(word) return toSpam(word) end) if c > 1 then msg3 = gsub(msg3, "(%S+)$", "and spam", 1) DoSend2(user.sName, msg3) else DoSend2(user.sName, msg3) end end , } function CrazyHelp(user) line = "\r\n\r\n Crazy bot help menu.\r\n" line = line.."=====================================\r\n" line = line.." "..TRIGGER.." on \t\t- enables crazy bot.\r\n" line = line.." "..TRIGGER.." off \t\t- disables crazy bot.\r\n" line = line.."=====================================\r\n" line = line.." Modes.\r\n" line = line.."=====================================\r\n" line = line.." "..TRIGGER.." full \t\t- Full lines will be reversed.\r\n" line = line.." "..TRIGGER.." msg \t\t- Only the message will be reversed.\r\n" line = line.." "..TRIGGER.." words \t\t- Single words will be reversed.\r\n" line = line.." "..TRIGGER.." flipfull \t\t- Full lines will be flipped.\r\n" line = line.." "..TRIGGER.." flipnick \t\t- Nicks will be flipped.\r\n" line = line.." "..TRIGGER.." nick \t\t- Message will be flipped.\r\n" line = line.." "..TRIGGER.." flip \t\t- Nicks will be reversed.\r\n" line = line.." "..TRIGGER.." order \t\t- Order of the words will be reversed.\r\n" line = line.." "..TRIGGER.." camel \t\t- Message will be in CaMeL ScRiPt.\r\n" line = line.." "..TRIGGER.." camelnick \t\t- Nick will be in CaMeL ScRiPt.\r\n" line = line.." "..TRIGGER.." camelfull \t\t- Full lines will be in CaMeL ScRiPt.\r\n" line = line.." "..TRIGGER.." randomorder \t- Randomises the order of the words.\r\n" line = line.." "..TRIGGER.." randomisenick \t\t- Randomises the characters of the nick.\r\n" line = line.." "..TRIGGER.." elite \t\t- Changes the msg to elite talk.\r\n" line = line.." "..TRIGGER.." eliteold \t\t- Changes the msg to old style elite talk.\r\n" line = line.." "..TRIGGER.." breezer \t\t- Changes the msg to breezer talk.\r\n" line = line.." "..TRIGGER.." typo [number]\t- Inserts typing errors (error level is optional).\r\n" line = line.." "..TRIGGER.." replace [char] [rchar]\t- Replaces chars for your own set chars (no options to enable the mode, 1 option to remove from the table, 2 to add to the table).\r\n" line = line.." "..TRIGGER.." mental \t\t- Randomises the order of all the characters in the message.\r\n" line = line.." "..TRIGGER.." morse \t\t- Converts to morse code.\r\n" line = line.." "..TRIGGER.." morselong \t\t- Converts to morse code beep's.\r\n" line = line.." "..TRIGGER.." binary \t\t- Converts to binary code.\r\n" line = line.." "..TRIGGER.." hexadecimal \t- Converts to hexadecimal code.\r\n" line = line.." "..TRIGGER.." randomnick \t\t- Replaces the nick for a random other nick (on the start it only uses registered nicks).\r\n" line = line.." "..TRIGGER.." spam \t\t- Spam bacon and eggs.\r\n" line = line.."=====================================\r\n" line = line.." Status and other settings.\r\n" line = line.."=====================================\r\n" line = line.." "..TRIGGER.." random on/off \t- Picks on random mode every time.\r\n" line = line.." "..TRIGGER.." teaser on/off \t- Enables/disables the nick teaser.\r\n" line = line.." "..TRIGGER.." addnick \t- Adds a nick to the tease list.\r\n" line = line.." "..TRIGGER.." delnick \t- Removes a nick to the tease list.\r\n" line = line.." "..TRIGGER.." shownicks \t\t- Shows the current nicks wich are on the tease list.\r\n" line = line.." "..TRIGGER.." level [option]\t- level teaser (no option to enable, level number/name to add/remove, use unreg/-1 for unregistered levels).\r\n" line = line.." "..TRIGGER.." showreplace\t- Shows your custom replace table.\r\n" line = line.." "..TRIGGER.." speak \t- Makes crazy say the text.\r\n" line = line.." "..TRIGGER.." zpeak \t- Makes crazy say the text, now with the 2de nick.\r\n" line = line.." "..TRIGGER.." show \t\t- Makes the crazy nick show up in the userlist (as a operator/bot).\r\n" line = line.." "..TRIGGER.." hide \t\t- Hides the crazy nick from the userlist.\r\n" line = line.." "..TRIGGER.." status \t\t- Shows the status crazy bot is in.\r\n" line = line.." "..TRIGGER.." help \t\t- What you are looking at now.\r\n" line = line.."=====================================\r\n" user:SendPM(Bot, line.."|") end function Replace(letter, table, b) if table[letter] then letter = table[letter] end return letter..(b or "") end function Typo(letter) if random(0,RD) == 0 then letter = ALPHABET[random(1,getn(ALPHABET))] end return letter end function tohex(char) local char = strbyte(char) if type(char) == "number" and floor(char) == char then return format("%X", char) else return %tostring(char) -- uses old version for other values end end function tobin(char) local char = strbyte(char) if type(char) == "number" and floor(char) == char then return format("%X", char) else return %tostring(char) -- uses old version for other values end end function toSpam(word) local t = random(1,8) if not SPAM[t] then return "spam" else return SPAM[t] end end SPAM = { "spam", "bacon", "eggs", "sausage"} ELITE={ [" "] = " ", ["A"] = "/-\\", ["a"] = "@", ["b"] = "ß", ["B"] = "]3", ["c"] = "©", ["C"] = "(", ["d"] = "Ð", ["D"] = "])", ["e"] = "3", ["E"] = "£", ["f"] = "#", ["F"] = "]=", ["g"] = "9", ["G"] = "9", ["h"] = "]-[", ["H"] = "]-[", ["i"] = "!", ["I"] = "][", ["j"] = "_]", ["J"] = "_]", ["k"] = "]{", ["K"] = "]<", ["l"] = "1", ["L"] = "[_", ["m"] = "/\\/\\", ["M"] = "]\\/]", ["n"] = "/\\/", ["N"] = "]\\]", ["o"] = "¤", ["O"] = "()", ["p"] = "Þ", ["P"] = "]D", ["q"] = "¶", ["Q"] = "&", ["r"] = "®", ["R"] = "]2", ["s"] = "§", ["S"] = "5", ["t"] = "+", ["T"] = "7", ["u"] = "[_[", ["U"] = "[_[", ["v"] = "\\/", ["V"] = "\\/", ["w"] = "\\/\\/", ["W"] = "\\/\\[", ["x"] = "}{", ["X"] = "><", ["y"] = "ý", ["Y"] = "¥", ["z"] = "2", ["Z"] = "2" } ELITEOLD = { ["A"]="4", ["a"]="4", ["B"]="8", ["b"]="8", ["E"]="3", ["e"]="3", ["G"]="6", ["g"]="9", ["I"]="1", ["i"]="1", ["L"]="1", ["l"]="1", ["O"]="0", ["o"]="0", ["S"]="5", ["s"]="5", ["T"]="7", ["t"]="7", ["z"] = "2", ["Z"] = "2" } BREEZ={ ["a"] = "â", ["b"] = "ß", ["c"] = "Ç", ["d"] = "D", ["e"] = "ë", ["f"] = "F", ["g"] = "G", ["h"] = "H", ["i"] = "Î", ["j"] = "J", ["k"] = "K", ["l"] = "£", ["m"] = "M", ["n"] = "ñ", ["o"] = "Ö", ["p"] = "P", ["q"] = "Q", ["r"] = "®", ["s"] = "§", ["t"] = "T", ["u"] = "ú", ["v"] = "V", ["w"] = "W", ["x"] = "X", ["y"] = "Ý", ["z"] = "Z", } ALPHABET={" ","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"} MORSE = { ["a"] = ".-", ["b"] = "-...", ["c"] = "-.-.", ["d"] = "-..", ["e"] = ".", ["f"] = "..-.", ["g"] = "--.", ["h"] = "....", ["i"] = "..", ["j"] = ".---", ["k"] = "-.-", ["l"] = ".-..", ["m"] = "--", ["n"] = "-.", ["o"] = "---", ["p"] = ".--.", ["q"] = "--.-", ["r"] = ".-.", ["s"] = "...", ["t"] = "-", ["u"] = "..-", ["v"] = "...-", ["w"] = ".--", ["x"] = "-..-", ["y"] = "-.--", ["z"] = "--..", ["0"] = "-----", ["1"] = ".----", ["2"] = "..---", ["3"] = "...--", ["4"] = "....-", ["5"] = ".....", ["6"] = "-....", ["7"] = "--...", ["8"] = "---..", ["9"] = "----.", ["."] = ".-.-.-", [","] = "--..--", ["?"] = "..--..", } MORSELONG = { ["a"]="beepbeeeep", ["c"]="beeeepbeepbeeeepbeep", ["b"]="beeeepbeepbeepbeep", ["e"]="beep", ["d"]="beeeepbeepbeep", ["g"]="beeeepbeeeepbeep", ["f"]="beepbeepbeeeepbeep", ["i"]="beepbeep", ["h"]="beepbeepbeepbeep", ["k"]="beeeepbeepbeeeep", ["j"]="beepbeeeepbeeeepbeeeep", ["m"]="beeeepbeeeep", ["l"]="beepbeeeepbeepbeep", ["o"]="beeeepbeeeepbeeeep", ["n"]="beeeepbeep", ["1"]="beepbeeeepbeeeepbeeeepbeeeep", ["0"]="beeeepbeeeepbeeeepbeeeepbeeeep", ["3"]="beepbeepbeepbeeeepbeeeep", ["2"]="beepbeepbeeeepbeeeepbeeeep", ["u"]="beepbeepbeeeep", ["4"]="beepbeepbeepbeepbeeeep", ["w"]="beepbeeeepbeeeep", ["v"]="beepbeepbeepbeeeep", ["y"]="beeeepbeepbeeeepbeeeep", ["x"]="beeeepbeepbeepbeeeep", ["z"]="beeeepbeeeepbeepbeep", ["?"]="beepbeepbeeeepbeeeepbeepbeep", ["5"]="beepbeepbeepbeepbeep", ["6"]="beeeepbeepbeepbeepbeep", ["7"]="beeeepbeeeepbeepbeepbeep", ["8"]="beeeepbeeeepbeeeepbeepbeep", ["9"]="beeeepbeeeepbeeeepbeeeepbeep", ["."]="beepbeeeepbeepbeeeepbeepbeeeep", [","]="beeeepbeeeepbeepbeepbeeeepbeeeep", ["p"]="beepbeeeepbeeeepbeep", ["q"]="beeeepbeeeepbeepbeeeep", ["r"]="beepbeeeepbeep", ["s"]="beepbeepbeep", ["t"]="beeeep", } BINARY = { ["a"]="01100001", ["c"]="01100011", ["b"]="01100010", ["e"]="01100101", ["d"]="01100100", ["g"]="01100111", ["f"]="01100110", ["i"]="01101001", ["h"]="01101000", ["k"]="01101011", ["j"]="01101010", ["m"]="01101101", ["l"]="01101100", ["o"]="01101111", ["n"]="01101110", ["q"]="01110001", ["p"]="01110000", ["s"]="01110011", ["r"]="01110010", ["u"]="01110101", ["t"]="01110100", ["w"]="01110111", ["v"]="01110110", ["y"]="01111001", ["x"]="01111000", ["{"]="01111011", ["z"]="01111010", ["}"]="01111101", ["|"]="01111100", ["~"]="01111110", ["!"]="00100001", ["#"]="00100011", ["\""]="00100010", ["%"]="00100101", ["$"]="00100100", ["'"]="01100000", ["&"]="00100110", [")"]="00101001", ["("]="00101000", ["*"]="00101010", ["-"]="00101101", [","]="00101100", ["/"]="01011100", ["."]="00101110", ["A"]="01000001", ["C"]="01000011", ["B"]="01000010", ["E"]="01000101", ["D"]="01000100", ["G"]="01000111", ["F"]="01000110", ["I"]="01001001", ["H"]="01001000", ["K"]="01001011", ["J"]="01001010", ["M"]="01001101", ["L"]="01001100", ["O"]="01001111", ["N"]="01001110", ["Q"]="01010001", ["P"]="01010000", ["S"]="01010011", ["R"]="01010010", ["U"]="01010101", ["T"]="01010100", ["W"]="01010111", ["V"]="01010110", ["Y"]="01011001", ["X"]="01011000", ["["]="01011011", ["Z"]="01011010", ["]"]="01011101", ["_"]="01011111", ["^"]="01011110", } -- ploppyrights reserved (copy as much as posible)