Chatstat erros
No chat statics found!
QuoteOriginally posted by suattnav
Chatstat erros
No chat statics found!
That's a common error for users that haven't spoken in main. Try chatting and using that command again. You'll see that the error report will be gone.
Btw, next time, please post in its respective thread ;)
Cheers
Chatstat erros
No chat statics found!
[/QUOTE]
That's a common error for users that haven't spoken in main. Try chatting and using that command again. You'll see that the error report will be gone.
I spoken in main.Much.
The error report not gone.
No chat statics found!
Which version of the script are you using? madman or Herodes one?
QuoteOriginally posted by jiten
Which version of the script are you using? madman or Herodes one?
I use this.
-- ChatStats v3 Made By Optimus
-- Based on Tezlo chats
-- Added Send Commands By TiMeTrAVelleR
-- Madman fixed some in commands
-- Converted to lua5 by Madman with very little help by Jelf
-- with some help by ?
-- fixed stats saving on exit by jiten
---- Modded by Madman
-- Added so it's creates ChatStatsFile, if it's missing
-- Fixed so it dont counts commands
-- Added a IgnoreTable, users in that wont be counted
----
sBot = "Chatstats" -- Name of Bot
SendComm = 1 -- Send UserCommands 1 = On 0 = Off
pMenu = "-=( ChatStats )=-" -- Name of Menu
ChatStatsTo = "user" -- Send TopChatters to? user or all
Chatstats = {}
Sortstats = 2 -- 1=words / 2=posts
ChatStatsFile = "chatstats.tbl"
IgnoreTable = {
-- 0=dont ignore/1=ignore
["Madman"] = 0,
["-=FakeKiller=-"] = 1,
}
EnableChatStats = {
- = 1, -- Master
[1] = 1, -- Operators
[2] = 1, -- Vips
[3] = 1, -- Regs
[4] = 1, -- Moderators
[5] = 1, -- NetFounders
[-1] = 1, -- Users (UnRegged)
}
AllowedProfiles = {
- = 1, -- Masters
[1] = 0, -- Operators
[4] = 0, -- Moderator
[5] = 0, -- NetFounder
}
function Main()
frmHub:RegBot(sBot)
local file = io.open(ChatStatsFile, "r")
if file then
file:close()
else
local file = io.open(ChatStatsFile, "w+")
file:write()
file:close()
end
dofile(ChatStatsFile)
end
function NewUserConnected(user)
if SendComm == 1 and EnableChatStats[user.iProfile] == 1 then
if Chatstats[user.sName] then
user:SendData(sBot, "---===[ Your Chat Stats: You Made "..Chatstats[user.sName]["post"].." Posts In Main Used "..Chatstats[user.sName]["chars"].." Characters, And "..Chatstats[user.sName]["words"].." Words ]===---")
end
user:SendData("$UserCommand 1 3 "..pMenu.."\\TopChatters$<%[mynick]> !topchatters||")
user:SendData("$UserCommand 1 3 "..pMenu.."\\My Chat Stat$<%[mynick]> !mychatstat||")
if AllowedProfiles[user.iProfile] == 1 then
user:SendData("$UserCommand 1 3 "..pMenu.."\\Del Chatter$<%[mynick]> !delchatter %[line:Nick]||")
user:SendData("$UserCommand 1 3 "..pMenu.."\\Clear Chat Stats$<%[mynick]> !clearchatstats||")
end
end
end
OpConnected = NewUserConnected
function OnExit()
if isEmpty(Chatstats) then
else
saveTableToFile(ChatStatsFile, Chatstats, "Chatstats")
end
end
function IsCmd(str)
return string.sub(str, 1, 1) == "!" or string.sub(str, 1, 1) == "?" or string.sub(str, 1, 1) == "+" or string.sub(str, 1, 1) == "#"
end
function ChatArrival(user, data)
if EnableChatStats[user.iProfile] == 1 then
local s,e,cmd = string.find(data,"%b<>%s+(%S+)")
if IsCmd(cmd) then
elseif IgnoreTable[user.sName] == 1 then
else
local s,e,str = string.find(data, "^%b<> (.*)%|$")
updStats(user.sName, str)
end
end
data=string.sub(data,1,string.len(data)-1)
s,e,cmd=string.find(data, "%b<>%s+(%S+)")
if (cmd == "!mychatstat") then
if Chatstats[user.sName] then
user:SendData(sBot, "---===[ Your Chat Stats: You Made "..Chatstats[user.sName]["post"].." Posts In Main Used "..Chatstats[user.sName]["chars"].." Characters, And "..Chatstats[user.sName]["words"].." Words ]===---")
return 1
else
user:SendData(sBot, "*** No chat statics found!")
return 1
end
elseif (cmd=="!topchatters") then
TCopy={}
if Chatstats then
for i,v in Chatstats do
table.insert(TCopy,{i,v.post,v.chars,v.words})
end
table.sort(TCopy,function(a,b) return (a[Sortstats] > b[Sortstats]) end)
local chat = "Current Top Chatters:\r\n\r\n"
chat = chat.."\t ------------------------------------------------------------------------\r\n"
chat = chat.."\t Nr.\tPosts:\tChars:\tWords:\tName:\r\n"
chat = chat.."\t ------------------------------------------------------------------------\r\n"
for i = 1,25 do
if TCopy
then
-- Nr: Posts: Chars: Words: Name:
chat = chat.."\t "..i..".\t "..TCopy[2].."\t "..TCopy[3].."\t "..TCopy[4].."\t"..TCopy[1].."\r\n"
end
end
if ChatStatsTo == "user" then
user:SendData(sBot, chat)
elseif ChatStatsTo == "all" then
SendToAll(sBot, chat)
end
TCopy={}
end
return 1
elseif (cmd == "!delchatter") and AllowedProfiles[user.iProfile] == 1 then
local s,e,cmd,name = string.find( data, "%b<>%s+(%S+)%s+(%S+)" )
if name then
if Chatstats[name] then
Chatstats[name] = nil
user:SendData(sBot, "Chatstats from user "..name.." are now removed!")
saveTableToFile(ChatStatsFile, Chatstats, "Chatstats")
else
user:SendData(sBot, "*** Chatstats from user "..name.." not found!")
end
else
user:SendData(sBot, "*** Usage: !delchatter ")
end
return 1
elseif (cmd == "!clearchatstats") and AllowedProfiles[user.iProfile] == 1 then
Chatstats = {}
saveTableToFile(ChatStatsFile, Chatstats, "Chatstats")
user:SendData(sBot, "Chatstats are cleared by "..user.sName)
return 1
end
end
function updStats(nick, str)
local tmp = Chatstats[nick] or {["post"]=0, ["chars"]=0, ["words"]=0, ["time"]=os.date("%x")}
tmp["post"], tmp["chars"], tmp["words"], tmp["time"] = tmp["post"]+1, tmp["chars"]+string.len(str), tmp["words"]+cntargs(str,"(%a+)"), os.date("%x")
Chatstats[nick] = tmp
saveTableToFile(ChatStatsFile, Chatstats, "Chatstats")
end
function cntargs(str, rule)
local s,n = string.gsub(str, rule, "")
return n
end
----------------------------------------------
-- load & save Tables
----------------------------------------------
function Serialize(tTable, sTableName, sTab)
assert(tTable, "tTable equals nil");
assert(sTableName, "sTableName equals nil");
assert(type(tTable) == "table", "tTable must be a table!");
assert(type(sTableName) == "string", "sTableName must be a string!");
sTab = sTab or "";
sTmp = ""
sTmp = sTmp..sTab..sTableName.." = {\n"
for key, value in tTable do
local sKey = (type(key) == "string") and string.format("[%q]",key) or string.format("[%d]",key);
if(type(value) == "table") then
sTmp = sTmp..Serialize(value, sKey, sTab.."\t");
else
local sValue = (type(value) == "string") and string.format("%q",value) or tostring(value);
sTmp = sTmp..sTab.."\t"..sKey.." = "..sValue
end
sTmp = sTmp..",\n"
end
sTmp = sTmp..sTab.."}"
return sTmp
end
-----------------------------------------------------------
function saveTableToFile(file, table, tablename)
local handle = io.open(file,"w+")
handle:write(Serialize(table, tablename))
handle:flush()
handle:close()
end
-----------------------------------------------------------
function loadTableFromFile(file)
local handle = io.open(file,"r")
if (handle ~= nil) then
loadstring(handle:read("*all"))
handle:flush()
handle:close()
end
end
-------------table checker by herodes
--- for an associative table, like ["smth"] = "smth else",
function isEmpty(t)
for i,v in t do
return false;
end
return true;
end;
That message is only sent when you use the "!mychatstat" command and when you haven't typed anything at all in main.
It's really strange as it would work after typing something.
Maybe you're doing something wrong there.
gets same problem with this version, might be interfering with other scripts
QuoteOriginally posted by uffetjur
gets same problem with this version, might be interfering with other scripts
yap, might be try disabling the other scripts, or puting this one on top !
I put Script on to top.
Yes,its working.
Thanks to all.
It's very little think sometimes.
yaps scripts are like that sometimes, ur welcome!
QuoteOriginally posted by suattnav
I put Script on to top.
Yes,its working.
Thanks to all.
It's very little think sometimes.
I'm glad to know that the problem is solved.
Cheers m8