PtokaX forum

Archive => Archived 4.0 boards => Finished Lua 4 scripts => Topic started by: pHaTTy on 12 October, 2003, 16:03:10

Title: TexterBot
Post by: pHaTTy on 12 October, 2003, 16:03:10
Here is my TexterBot from the last forum :o)

-- Jason 0.5 fixed, by Phatty
-- Jason 0.1 wrote on 5th October 2k3
-- You can add ur own files
-- For example make a file named help.txt in the docs folder and then type in main !show help
-- ATM you cant make files with spaces like....Friday the 13th.txt <<< this will not work, but will add soon :)
-- Don't forget to make a folder named docs inside script folder
-- Added no such file error
-- Added who-to now, !show   =  example !show pmme test
-- There is pmme, me, or all
-- Added !lock
-- Added !version
-- Added self prefix
-- Fixed 1 line read only

Bot = "J???"
Version = "0.5"

mcmd="#"

Blacklist={}

function Main()
frmHub:RegBot(Bot)
end

function WhileRead(user,data)
while 1 do
line = read()
line = read("*a")
if line == nil then
user:SendData(Bot,"I know of no such file")
break end
if to == "me" then
user:SendData(Bot,line)
elseif to == "all" then
SendToAll(Bot,line)
elseif to == "pmme" then
user:SendPM(Bot,line)
end
readfrom()
return 1
end
end

function LockOut(user)
if arg == "on" then
user:SendData(Bot,"You have blacklisted: "..to)
Blacklist[to]=1
buser = GetItemByName(to)
buser:SendPM(Bot,"You have been blacklisted")
return 1
elseif arg == "off" then
user:SendData(Bot,"You have removed "..to.." from the blacklist")
Blacklist[to]=nil
buser = GetItemByName(to)
buser:SendPM(Bot,"You have been removed from the blacklist")
return 1
end
end


function DataArrival(user,data)
if strsub(data, 1, 1) == "<" then
data=strsub(data,1,strlen(data)-1)
s,e,cmd,to,arg = strfind(data,"%b<>%s+(%S+)%s+(%S+)%s+(%S+)")

if cmd == mcmd.."show" then
if Blacklist[user.sName]==nil then
readfrom("docs/"..arg..".txt")
WhileRead(user,data)
return 1
else
user:SendData(Bot,"I am denying you access to this command")
return 1
end
elseif cmd == mcmd.."lock" then
if user.bOperator then
LockOut(user)
return 1
end
end
end

s,e,cmd = strfind(data,"%b<>%s+(%S+)")
if cmd == mcmd.."version" then
user:SendData(Bot,"I am Jason "..Version..", by Phatty")
return 1
end
end


l8rr,, enjoy

-phatty
Title:
Post by: pHaTTy on 12 October, 2003, 16:04:25
Ooops little mistake


-- Jason 0.5, by Phatty
-- Jason 0.1 wrote on 5th October 2k3
-- You can add ur own files
-- For example make a file named help.txt in the docs folder and then type in main !show help
-- ATM you cant make files with spaces like....Friday the 13th.txt <<< this will not work, but will add soon :)
-- Don't forget to make a folder named docs inside script folder
-- Added no such file error
-- Added who-to now, !show   =  example !show pmme test
-- There is pmme, me, or all
-- Added !lock
-- Added !version
-- Added self prefix
-- Fixed 1 line read only

Bot = "J???"
Version = "0.5"

mcmd="#"

Blacklist={}

function Main()
frmHub:RegBot(Bot)
end

function WhileRead(user,data)
while 1 do
line = read("*a")
if line == nil then
user:SendData(Bot,"I know of no such file")
break end
if to == "me" then
user:SendData(Bot,line)
elseif to == "all" then
SendToAll(Bot,line)
elseif to == "pmme" then
user:SendPM(Bot,line)
end
readfrom()
return 1
end
end

function LockOut(user)
if arg == "on" then
user:SendData(Bot,"You have blacklisted: "..to)
Blacklist[to]=1
buser = GetItemByName(to)
buser:SendPM(Bot,"You have been blacklisted")
return 1
elseif arg == "off" then
user:SendData(Bot,"You have removed "..to.." from the blacklist")
Blacklist[to]=nil
buser = GetItemByName(to)
buser:SendPM(Bot,"You have been removed from the blacklist")
return 1
end
end


function DataArrival(user,data)
if strsub(data, 1, 1) == "<" then
data=strsub(data,1,strlen(data)-1)
s,e,cmd,to,arg = strfind(data,"%b<>%s+(%S+)%s+(%S+)%s+(%S+)")

if cmd == mcmd.."show" then
if Blacklist[user.sName]==nil then
readfrom("docs/"..arg..".txt")
WhileRead(user,data)
return 1
else
user:SendData(Bot,"I am denying you access to this command")
return 1
end
elseif cmd == mcmd.."lock" then
if user.bOperator then
LockOut(user)
return 1
end
end
end

s,e,cmd = strfind(data,"%b<>%s+(%S+)")
if cmd == mcmd.."version" then
user:SendData(Bot,"I am Jason "..Version..", by Phatty")
return 1
end
end

Title:
Post by: Jabo on 10 November, 2003, 17:08:26
Is there any way to change "!" in !show to something else like * or +......?
Title:
Post by: pHaTTy on 10 November, 2003, 17:10:19
do you mean all the command to +

change the line at top saying mcmd = "#"

to

mcmd = "+" or whatever prefix you want ;)
Title:
Post by: Jabo on 10 November, 2003, 17:13:48
thanks (uk-kingdom)pH?tt?......really appreciate all the help.

Title:
Post by: pHaTTy on 10 November, 2003, 17:16:07
QuoteOriginally posted by Jabo
thanks (uk-kingdom)pH?tt?......really appreciate all the help

np at all
Title:
Post by: Jabo on 10 November, 2003, 19:30:29
Ok.....I now have a problem....I thought by changing the cmd sign from ! to * would fix my prob but it didn't.  Whenever I type *show brady......brady is my .txt file in the docs folder under scripts......nothing happens.  Is there something that I am not doing right.
Title:
Post by: pHaTTy on 10 November, 2003, 19:32:14
its

*show brady
Title: texterBot by pH?tt?
Post by: [G-T-E]Gate? on 20 November, 2003, 09:51:27
Jo pH?tt?

On earlier versions on PtokaX I was able to use EvilBot as my text trigger. But since TD4 came out they dont compliment eachother.
So with ur TexterBot that helps out alot. Nice work.
One thing though, instead of
cmd (Prefix)show divx  

Can u make it possible to just use
cmd (Prefix)divx   (text comes  to user in PM automatically)
Or
cmd (Prefix)show divx  (text comes  to user in PM automatically)

Thinking of just making it easier for the users when writing .
Would really appreciate it and I too hope that ppl will keep this forum really active..........
Title:
Post by: plop on 20 November, 2003, 13:23:44
try changing the WhileRead for this 1.
function WhileRead(user,data)
while 1 do
line = read("*a")
if line == nil then
user:SendData(Bot,"I know of no such file")
break end
if to == "me" then
user:SendData(Bot,line)
elseif to == "all" then
SendToAll(Bot,line)
elseif to == "pmme" then
user:SendPM(Bot,line)
elseif to == nil then
user:SendPM(Bot,line)
end
readfrom()
return 1
end
end
not tested so hope it works.

plop
Title:
Post by: pHaTTy on 20 November, 2003, 13:35:25
hah yep that will work, im getting slow.............lol