Looking for a Texter bot ,
Explaination;
PtokaX DC Hub 0.3.2.6 TestDrive 4\scripts\Textfiles
In scripts folder is texterbot.lua that locates text files in files folder.
User types - divx in main chat and gets in Pm to User the requested info in that file.
Anyone ?
* UPDATED *
try it now
--ShowInfo v1.0 by latinmusic == poweroperator 18/04/2003
--Based on TrickerBot 2 by ?Ptaczek?
--Based on a few lines of DirtyBot made by Dirty Finger
--This script read several files from a table and display them to a single user when he type the appropiate command...
--The directory --> Files <-- must exist inside of PtokaX Script Directory...
--The files --> rules.txt, net.txt, logo.txt and news.txt <-- must exist inside Files Directory...
--Enjoy
BotName = "?-=Admin=-?"
Files = {
["?codec"] = "Files/codec.txt",
["?news"] = "Files/news.txt",
["?faq"] = "Files/faq.txt",
-- ["?rules"] = "Files/rules.txt", --If you're using DirtyBot, don't uncomment this line
}
function Main()
frmHub:RegBot(BotName)
end
function DataArrival(user, data)
if( strsub(data, 1, 1) == "<" ) then
data=strsub(data,1,strlen(data)-1)
s,e,msg = strfind( data, "%b<>%s+(%S+)" )
for key, value in Files do
if( strfind( strlower(msg), key) ) then
s,e,msg,where = strfind(data, "<"..user.sName..">%s+(%S+)%s+(.+)")
-- where must be main or pm
txtToShow, x = gsub(value, "%b[]", user.sName)
-- SendToAll( data ) -- Now the command will not sent to all
Show(user, TheFile, pm)
return 1
end
end
end
end
function Show(user, TheFile, where)
readfrom(txtToShow, "r")
local message = ""
while 1 do
local line = read()
if line == nil then break
else
message = message..line.."\r\n"
end
end
if strlower(where) == "main" then
user:SendData(BotName, message)
elseif strlower(where) == "pm" then
user:SendPM(BotName, message)
end
readfrom()
end
Hope it does what you want...
Tks ,
Working ok But Appreciate PM to User instead of result in main chat ..
gate :D
here you are, this should do all and more.
-- texter bot by plop
-- shows text files from a folder named text.
-- doesn't mather what prefix is used.
-- if the file excist it shows.
Bot = "something"
function Main()
frmHub:RegBot(Bot)
end
function DataArrival(user, data)
data=strsub(data,1,strlen(data)-1)
if( strsub(data, 1, 1) == "<" ) then
s,e,cmd = strfind(data,"%b<>%s+(%S+)")
cmd = strsub(cmd, 2,strlen(cmd))
if readfrom("text/"..cmd..".txt") then
showtext(user, cmd)
return 1
end
elseif(strsub(data, 1, 4) == "$To:") then
s,e,cmd = strfind(data,"$To:%s+%S+%s+From:%s+%S+%s+$%b<>%s+(%S+)")
cmd = strsub(cmd, 2,strlen(cmd))
if readfrom("text/"..cmd..".txt") then
showtext(user, cmd)
return 1
end
end
end
function showtext(user, cmd)
lines = "\r\n\r\n"
readfrom("text/"..cmd..".txt")
while 1 do
local line = read()
if line == nil then
readfrom()
break
end
lines = lines..line.."\r\n"
end
user:SendPM(Bot, lines.." |")
end
plop
Nice one plop... Was thinking in that direction but
became lazy... :-)
QuoteOriginally posted by NightLitch
Nice one plop... Was thinking in that direction but
became lazy... :-)
well took some minutes 2 make but the result is even lazyer. lol
plop
Tks Plop
Just what I needed
:D
how can i read the random line
a faster way is this func.
function ReadHelp(file)
local handle = openfile(FDFolder.."/"..file, "r")
local contents = gsub(read(handle, "*a"),strchar(10), "\r\n")
closefile (handle)
return contents
end
QuoteOriginally posted by c h i l l a
a faster way is this func.
function ReadHelp(file)
local handle = openfile(FDFolder.."/"..file, "r")
local contents = gsub(read(handle, "*a"),strchar(10), "\r\n")
closefile (handle)
return contents
end
thx, sure is a lot easyer/shorter that way.
-- texter bot by plop
-- thx 2 chilla for the faster routine for opening the files
-- shows text files from a folder named text.
-- doesn't mather what prefix it used.
-- if the file excist it shows.
Bot = "something"
FDFolder = "text"
function Main()
frmHub:RegBot(Bot)
end
function DataArrival(user, data)
data=strsub(data,1,strlen(data)-1)
if( strsub(data, 1, 1) == "<" ) then
s,e,cmd = strfind(data,"%b<>%s+(%S+)")
cmd = strsub(cmd, 2,strlen(cmd))
if readfrom(FDFolder.."/"..cmd..".txt") then
showtext(user, cmd)
return 1
end
elseif(strsub(data, 1, 4) == "$To:") then
s,e,cmd = strfind(data,"$To:%s+%S+%s+From:%s+%S+%s+$%b<>%s+(%S+)")
cmd = strsub(cmd, 2,strlen(cmd))
if readfrom(FDFolder.."/"..cmd..".txt") then
showtext(user, cmd)
return 1
end
end
end
function showtext(user, file)
local handle = openfile(FDFolder.."/"..file..".txt", "r")
local contents = gsub(read(handle, "*a"),strchar(10), "\r\n")
closefile (handle)
user:SendPM(Bot, "\r\n"..contents.."\r\n|")
end
plop
This script do I want to get to work! I do not work!
Can eny one help mee to get this script to work?
--ShowInfo v1.0 by latinmusic == poweroperator 18/04/2003
--Based on TrickerBot 2 by ?Ptaczek?
--Based on a few lines of DirtyBot made by Dirty Finger
--This script read several files from a table and display them to a single user when he type the appropiate command...
--The directory --> Files <-- must exist inside of PtokaX Script Directory...
--The files --> rules.txt, net.txt, logo.txt and news.txt <-- must exist inside Files Directory...
--Enjoy
BotName = "Info-Box"
Files = {
["?codec"] = "Files/codec.txt",
["?news"] = "Files/news.txt",
["?faq"] = "Files/faq.txt",
-- ["?rules"] = "Files/rules.txt", --If you're using DirtyBot, don't uncomment this line
}
function Main()
frmHub:RegBot(BotName)
end
function DataArrival(user, data)
if( strsub(data, 1, 1) == "<" ) then
data=strsub(data,1,strlen(data)-1)
s,e,msg = strfind( data, "%b<>%s+(%S+)" )
for key, value in Files do
if( strfind( strlower(msg), key) ) then
s,e,msg,where = strfind(data, "<"..user.sName..">%s+(%S+)%s+(.+)")
-- where must be main or pm
txtToShow, x = gsub(value, "%b[]", user.sName)
-- SendToAll( data ) -- Now the command will not sent to all
Show(user, TheFile, pm)
return 1
end
end
end
end
function Show(user, TheFile, where)
readfrom(txtToShow, "r")
local message = ""
while 1 do
local line = read()
if line == nil then break
else
message = message..line.."\r\n"
end
end
if strlower(where) == "main" then
user:SendData(BotName, message)
elseif strlower(where) == "pm" then
user:SendPM(BotName, message)
end
readfrom()
end
I get this error massage:
Syntax error: bad argument #1 to `strlower' (string expected, got nil)
stack traceback:
1: function `strlower' [C]
2: function `Show' at line 47 [file `...m\ptokaX 0.330 build 15.25\scripts\Info-Box.lua']
3: function `DataArrival' at line 29 [file `...m\ptokaX 0.330 build 15.25\scripts\Info-Box.lua']
----------------------------------------------------------
//WickeD
QuoteOriginally posted by WickeD
This script do I want to get to work! I do not work!
Can eny one help mee to get this script to work?
---snip-----
I get this error massage:
Syntax error: bad argument #1 to `strlower' (string expected, got nil)
stack traceback:
1: function `strlower' [C]
2: function `Show' at line 47 [file `...m\ptokaX 0.330 build 15.25\scripts\Info-Box.lua']
3: function `DataArrival' at line 29 [file `...m\ptokaX 0.330 build 15.25\scripts\Info-Box.lua']
----------------------------------------------------------
//WickeD
that is because u didn't use the full command....
for example:
?codec pm
?codec main
it looks like "pm" or "main" is required in this script. (kinda lame)
replace the show function in yours with this one and it will default to main unless pm is specified:
function Show(user, TheFile, where)
readfrom(txtToShow, "r")
local message = ""
while 1 do
local line = read()
if line == nil then break
else
message = message..line.."\r\n"
end
end
where = where or "main"
if strlower(where) == "main" then
user:SendData(BotName, message)
elseif strlower(where) == "pm" then
user:SendPM(BotName, message)
end
readfrom()
end
hope this helps...
-BH
I get this error:
Syntax error: `=' expected;
last token read: `he' at line 5 in file `C:\Program\ptokaX 0.330 build 15.25\scripts\Info-Box.lua'
In this Script:
--ShowInfo v1.0 by latinmusic == poweroperator 18/04/2003
--Based on TrickerBot 2 by ?Ptaczek?
--Based on a few lines of DirtyBot made by Dirty Finger
--This script read several files from a table and display them to a single user
when he type the appropiate command...
--The directory --> Files <-- must exist inside of PtokaX Script Directory...
--The files --> rules.txt, net.txt, logo.txt and news.txt <-- must exist inside
Files Directory...
--Enjoy
BotName = "[Bot]Info-Box"
Files = {
["?infolista"] = "Files/infolista.txt",
["?v?der"] = "Files/v?der.txt",
["?rippadvd"] = "Files/rippadvd.txt",
["?subtitles"] = "Files/subtitles.txt",
["?codec"] = "Files/codec.txt",
["?vlc"] = "Files/vlc.txt",
["?dataume?"] = "Files/dataume?.txt",
["?dataweb"] = "Files/dataweb.txt",
["?teleadress"] = "Files/teleadress.txt",
["?tidningar"] = "Files/tidningar.txt",
["?priser"] = "Files/priser.txt",
["?isp"] = "Files/isp.txt",
["?annonser"] = "Files/annonser.txt",
["?s?kmotor"] = "Files/s?kmotor.txt",
["?crackar"] = "Files/crackar.txt",
["?nysl?ppt"] = "Files/nysl?ppt.txt",
["?fakefiler"] = "Files/fakefiler.txt",
["?mcaff?r"] = "Files/mcaff?r.txt",
["?mcclub"] = "Files/mcclub.txt",
["?bilaff?r"] = "Files/bilaff?r.txt",
["?k?rkort"] = "Files/k?rkort.txt",
["?tvprog"] = "Files/tvprog.txt",
["?svar"] = "Files/svar.txt",
["?promille"] = "Files/promille.txt",
["?hashing"] = "Files/hashing.txt",
["?mplayer"] = "Files/mplayer.txt",
["?sfv"] = "Files/sfv.txt",
["?vitmakt"] = "Files/vitmakt.txt",
["?regler"] = "Files/regler.txt",
["?l?mnahub"] = "Files/l?mnahub.txt",
["?staff"] = "Files/staff.txt",
["?uppgift"] = "Files/uppgift.txt",
["?share"] = "Files/share.txt",
["?slots"] = "Files/slots.txt",
["?hub"] = "Files/hub.txt",
["?bot"] = "Files/bot.txt",
["?dmz"] = "Files/dmz.txt",
["?clienter"] = "Files/clienter.txt",
["?router"] = "Files/router.txt",
["?firewall"] = "Files/firewall.txt",
["?dc++color"] = "Files/dc++color.txt",
["?faq"] = "Files/faq.txt",
["?forum"] = "Files/forum.txt",
["?e-post"] = "Files/e-post.txt",
["?kickad"] = "Files/kickad.txt",
["?bannad"] = "Files/bannad.txt",
}
function Main()
frmHub:RegBot(BotName)
end
function DataArrival(user, data)
if( strsub(data, 1, 1) == "<" ) then
data=strsub(data,1,strlen(data)-1)
s,e,msg = strfind( data, "%b<>%s+(%S+)" )
for key, value in Files do
if( strfind( strlower(msg), key) ) then
s,e,msg,where = strfind(data, "<"..user.sName..">%s+(%S+)%s+(.+)")
-- where must be main or pm
txtToShow, x = gsub(value, "%b[]", user.sName)
-- SendToAll( data ) -- Now the command will not sent to all
Show(user, TheFile, pm)
return 1
end
end
end
end
function Show(user, TheFile, where)
readfrom(txtToShow, "r")
local message = ""
while 1 do
local line = read()
if line == nil then break
else
message = message..line.."\r\n"
end
end
where = where or "main"
if strlower(where) == "main" then
user:SendData(BotName, message)
elseif strlower(where) == "pm" then
user:SendPM(BotName, message)
end
readfrom()
end
Why??
lol...
--ShowInfo v1.0 by latinmusic == poweroperator 18/04/2003
--Based on TrickerBot 2 by ?Ptaczek?
--Based on a few lines of DirtyBot made by Dirty Finger
--This script read several files from a table and display them to a single user
when he type the appropiate command...
--The directory --> Files <-- must exist inside of PtokaX Script Directory...
--The files --> rules.txt, net.txt, logo.txt and news.txt <-- must exist inside
Files Directory...
should be...
--ShowInfo v1.0 by latinmusic == poweroperator 18/04/2003
--Based on TrickerBot 2 by ?Ptaczek?
--Based on a few lines of DirtyBot made by Dirty Finger
--This script read several files from a table and display them to a single user when he type the appropiate command...
--The directory --> Files <-- must exist inside of PtokaX Script Directory...
--The files --> rules.txt, net.txt, logo.txt and news.txt <-- must exist inside Files Directory...
somehow u wraped the words..
:D
-BH
It works now! But!!! It shows in Main-Chat! And I want it to bee shown i a PM to the user that write the command!
Can you help mee whit that to my m8??
//WickeD
change:
where = where or "main"
to:
where = where or "pm"
then u can still make it go to main... but defaults to pm
:D
-BH
Now it works fine my m8!
Thx a lot my m8!!!!
=)
//WickeD
QuoteOriginally posted by WickeD
Now it works fine my m8!
Thx a lot my m8!!!!
=)
//WickeD
no problem.. happy i could help. :)
-BH