PtokaX forum

Archive => Archived 4.0 boards => Finished Lua 4 scripts => Topic started by: c h i l l a on 26 January, 2004, 19:53:56

Title: Chat Stats
Post by: c h i l l a on 26 January, 2004, 19:53:56
--Chat stats by chill for xjr13sp.
--Serialisation by RabidWombat


cmd1 = "+showstats" -- Main Command

Max1 = 10 -- How Many to chatters are shown of eahc genre.

howToSort = 1 -- Stands for the sorting either 1= least first, 2 = highest first.

StatsFile = "ChatStats.txt"
StatsFolder = "txt"
ChatStats = {}
dofile(StatsFolder.."/"..StatsFile)

chatEmotions = {
[":)"] = 1,
[":-)"] = 1,
[":("] = 1,
[":-("] = 1,
[";)"] = 1,
[";-)"] = 1,
[":-p"] = 1,
[":p"] = 1,
[":D"] = 1,
[":-D"] = 1,
}


function Main()
SetTimer(1000*60*5)
StartTimer()
end

function OnTimer()
WriteTable(ChatStats,"ChatStats",StatsFile)
end

function DataArrival(curUser,data)
if strsub(data,1,1) == "<" then
if not ChatStats[curUser.sName] then
ChatStats[curUser.sName] = {}
ChatStats[curUser.sName].words = 0
ChatStats[curUser.sName].chars = 0
ChatStats[curUser.sName].emotions = 0
end
data = strsub(data,strlen(curUser.sName)+4,strlen(data)-1)
curName = curUser.sName
gsub(data,"(%S+)",function(w)
ChatStats[curName].chars = ChatStats[curName].chars + strlen(w)
if chatEmotions[w] then
ChatStats[curName].emotions = ChatStats[curName].emotions + 1
else
ChatStats[curName].words = ChatStats[curName].words + 1
end
end)
curName = nil

local _,_,word1 = strfind(data,"^(%S+)")

if word1 and STATSFUNC[word1] then
SendToAll(STATSFUNC[word1]())
end

end
end

---------------------------------------------------------------------------------------

-- TABLE FUNCTIONS

---------------------------------------------------------------------------------------
STATSFUNC = {
[cmd1] = function()
TCopy = {}

for i,v in ChatStats do

tinsert(TCopy,{i,v})

end

local msg = "-----  Current Chat Stats ------\r\n\r\n\tTop "..Max1.." Char Stats\r\n\r\n"
if howToSort == 1 then
sort(TCopy,function(a,b) return(a[2].chars < b[2].chars) end)
else
sort(TCopy,function(a,b) return(a[2].chars > b[2].chars) end)
end
for i = 1,Max1 do
if TCopy[i] then
msg = msg.."\t# "..i.."  -  "..TCopy[i][1]..", with "..TCopy[i][2].chars.." chars.\r\n"
end
end

if howToSort == 1 then
sort(TCopy,function(a,b) return(a[2].words < b[2].words) end)
else
sort(TCopy,function(a,b) return(a[2].words > b[2].words) end)
end
msg = msg.."\r\n\tTop "..Max1.." Word Stats\r\n\r\n"
for i = 1,Max1 do
if TCopy[i] then
msg = msg.."\t# "..i.."  -  "..TCopy[i][1]..", with "..TCopy[i][2].words.." words.\r\n"
end
end

if howToSort == 1 then
sort(TCopy,function(a,b) return(a[2].emotions < b[2].emotions) end)
else
sort(TCopy,function(a,b) return(a[2].emotions > b[2].emotions) end)
end
msg = msg.."\r\n\tTop "..Max1.." Emotion Stats\r\n\r\n"
for i = 1,Max1 do
if TCopy[i] then
msg = msg.."\t# "..i.."  -  "..TCopy[i][1]..", with "..TCopy[i][2].emotions.." emotions.\r\n"
end
end

return(msg)
end,
}

---------------------------------------------------------------------------------------

-- Write Tables

---------------------------------------------------------------------------------------
function WriteTable(table,tablename,file)
local handle = openfile(StatsFolder.."/"..file,"w")
Serialize(table,tablename,handle)
  closefile(handle)
end
--------------------------------------------
function Serialize(tTable,sTableName,hFile,sTab)
sTab = sTab or "";
write(hFile,sTab..sTableName.." = {\n");
for key,value in tTable do
local sKey = (type(key) == "string") and format("[%q]",key) or format("[%d]",key);
if(type(value) == "table") then
Serialize(value,sKey,hFile,sTab.."\t");
else
local sValue = (type(value) == "string") and format("%q",value) or tostring(value);
write(hFile,sTab.."\t"..sKey.." = "..sValue);
end
write(hFile,",\n");
end
write(hFile,sTab.."}");
end
Title:
Post by: BlazeXxX on 26 January, 2004, 20:17:12
chilla,
Nice to see this script, but have some doubts to ask.

I am using Guib's standalone chat scripts script, which is already built in with the Channelbot.

My Question is, Does this script use less resources than Guib's one?

If it is, i will grab it ;)
Title:
Post by: c h i l l a on 26 January, 2004, 20:43:06
well, I don't know guibs one..
the source using parts in this script, are

1. Memory whne haveing many users chatting.
2. the data parsing. the gsub function. I quiets slow acrtually.
3. when showing the top chatters. This sorst a table 3 times, also depending on how mayn users you have it will take longer or less long.

but I can't think of any optimazions, right now.
Works okey in my little 50 users hub.

around 100 KB at the moment
Title:
Post by: c h i l l a on 26 January, 2004, 20:52:34
Just checked guibs channel bot, but I would need to check it mor to find the stats part.

but since I doesn't have table indexing, its already slower in that part.
else I can't say, only the script would need major rewriting.
Title: Hi...c h i l l a!!
Post by: WickeD on 27 January, 2004, 20:46:57
Can you fix the chatstats script that you have write so when one user type the command +showstats in mainchat it is only shown for that user and not for all users???


//WickeD
Title:
Post by: BlazeXxX on 28 January, 2004, 11:06:22
Hi wicked,
Just do this..

Find this bit of code in DataArrival part:

if word1 and STATSFUNC[word1] then
SendToAll(STATSFUNC[word1]())
end

Replace it as :

if word1 and STATSFUNC[word1] then
SendPmToNick(STATSFUNC[word1]())
end


That will send the stats to the user in his pm.
If it doesn't work get back to me..
Title: Hi..BlazeXxX!
Post by: WickeD on 28 January, 2004, 12:09:48
I do not want the massage to go in a PM to the user! I want it to go in a PM in main chat to the user! So only the user that type the command can see it in the main chat!

Here are the script I use!


--------------------------------------------------------------------
--Chat stats by chill for xjr13sp.
--Serialisation by RabidWombat


cmd1 = "!showchatstats"   -- Main Command

Max1 = 10      -- How Many to chatters are shown of eahc genre.

howToSort = 2   -- Stands for the sorting either 1= least first, 2 = highest first.

StatsFile = "ChatStats.txt"
StatsFolder = "txt"
ChatStats = {}
dofile(StatsFolder.."/"..StatsFile)

chatEmotions = {
   [":)"] = 1,
   [":-)"] = 1,
   [":("] = 1,
   [":-("] = 1,
   [";)"] = 1,
   [";-)"] = 1,
   [":-p"] = 1,
   [":p"] = 1,
   [":D"] = 1,
   [":-D"] = 1,
}


function Main()
   SetTimer(1000*60*5)
   StartTimer()
end

function OnTimer()
   WriteTable(ChatStats,"ChatStats",StatsFile)
end

function DataArrival(curUser,data)
   if strsub(data,1,1) == "<" then
      if not ChatStats[curUser.sName] then
         ChatStats[curUser.sName] = {}
         ChatStats[curUser.sName].words = 0
         ChatStats[curUser.sName].chars = 0
         ChatStats[curUser.sName].emotions = 0
      end
      data = strsub(data,strlen(curUser.sName)+4,strlen(data)-1)
      curName = curUser.sName
      gsub(data,"(%S+)",function(w)
         ChatStats[curName].chars = ChatStats[curName].chars + strlen(w)
         if chatEmotions[w] then
            ChatStats[curName].emotions = ChatStats[curName].emotions + 1
         else
            ChatStats[curName].words = ChatStats[curName].words + 1
         end
      end)
      curName = nil

      local _,_,word1 = strfind(data,"^(%S+)")

      if word1 and STATSFUNC[word1] then
         SendToAll(STATSFUNC[word1]())
      end

   end
end

---------------------------------------------------------------------------------------

--   TABLE FUNCTIONS

---------------------------------------------------------------------------------------
STATSFUNC = {
   [cmd1] = function()
      TCopy = {}

      for i,v in ChatStats do

         tinsert(TCopy,{i,v})

      end

      local msg = "-----  Current Chat Stats ------\r\n\r\n\tTop "..Max1.." Chat Stats\r\n\r\n"
      if howToSort == 1 then
         sort(TCopy,function(a,b) return(a[2].chars < b[2].chars) end)
      else
         sort(TCopy,function(a,b) return(a[2].chars > b[2].chars) end)
      end
      for i = 1,Max1 do
         if TCopy then
            msg = msg.."\t# "..i.."  -  "..TCopy[1]..", with "..TCopy[2].chars.." chars.\r\n"
         end
      end

      if howToSort == 1 then
         sort(TCopy,function(a,b) return(a[2].words < b[2].words) end)
      else
         sort(TCopy,function(a,b) return(a[2].words > b[2].words) end)
      end
      msg = msg.."\r\n\tTop "..Max1.." Word Stats\r\n\r\n"
      for i = 1,Max1 do
         if TCopy then
            msg = msg.."\t# "..i.."  -  "..TCopy[1]..", with "..TCopy[2].words.." words.\r\n"
         end
      end

      if howToSort == 1 then
         sort(TCopy,function(a,b) return(a[2].emotions < b[2].emotions) end)
      else
         sort(TCopy,function(a,b) return(a[2].emotions > b[2].emotions) end)
      end
      msg = msg.."\r\n\tTop "..Max1.." Emotion Stats\r\n\r\n"
      for i = 1,Max1 do
         if TCopy then
            msg = msg.."\t# "..i.."  -  "..TCopy[1]..", with "..TCopy[2].emotions.." emotions.\r\n"
         end
      end

      return(msg)
   end,
}

---------------------------------------------------------------------------------------

--   Write Tables

---------------------------------------------------------------------------------------
function WriteTable(table,tablename,file)
   local handle = openfile(StatsFolder.."/"..file,"w")
   Serialize(table,tablename,handle)
     closefile(handle)
end
--------------------------------------------
function Serialize(tTable,sTableName,hFile,sTab)
   sTab = sTab or "";
   write(hFile,sTab..sTableName.." = {\n");
   for key,value in tTable do
      local sKey = (type(key) == "string") and format("[%q]",key) or format("[%d]",key);
      if(type(value) == "table") then
         Serialize(value,sKey,hFile,sTab.."\t");
      else
         local sValue = (type(value) == "string") and format("%q",value) or tostring(value);
         write(hFile,sTab.."\t"..sKey.." = "..sValue);
      end
      write(hFile,",\n");
   end
   write(hFile,sTab.."}");
end

--------------------------------------------------------------------

//WickeD
Title:
Post by: c h i l l a on 28 January, 2004, 12:35:53
it's added, and luckily I know now how to access a variable in outerscope, gave me some headaches ;).

--Chat stats by chill
--Serialisation by RabidWombat

----------------------------------------------------------
----------------------------------------------------------
cmd1 = "+showstats" -- Main Command
Max1 = 10 -- How Many top chatters are shown of each genre.
ChatConf = {
howToSort = 1, -- Stands for the sorting either 1= least first, 2 = highest first.
howToSend = 1, -- 1 = Sends to all, 2 = Sends to user.
}
----------------------------------------------------------
----------------------------------------------------------
StatsFile = "ChatStats.txt"
StatsFolder = "txt"
----------------------------------------------------------
----------------------------------------------------------

---------------------------------------------------------------------------------------

-- MAIN SCRIPT

---------------------------------------------------------------------------------------
ChatStats = {}
dofile(StatsFolder.."/"..StatsFile)
----------------------------------------------------------
chatEmotions = {
[":)"] = 1,
[":-)"] = 1,
[":("] = 1,
[":-("] = 1,
[";)"] = 1,
[";-)"] = 1,
[":-p"] = 1,
[":p"] = 1,
[":D"] = 1,
[":-D"] = 1,
}
----------------------------------------------------------
function Main()
SetTimer(1000*60*5)
StartTimer()
end
----------------------------------------------------------
function OnTimer()
WriteTable(ChatStats,"ChatStats",StatsFile)
end
----------------------------------------------------------
function DataArrival(curUser,data)

if strsub(data,1,1) == "<" then

if not ChatStats[curUser.sName] then
ChatStats[curUser.sName] = {}
ChatStats[curUser.sName].words = 0
ChatStats[curUser.sName].chars = 0
ChatStats[curUser.sName].emotions = 0
end

data = strsub(data,strlen(curUser.sName)+4,strlen(data)-1)

gsub(data,"(%S+)",function(w)
ChatStats[%curUser.sName].chars = ChatStats[%curUser.sName].chars + strlen(w)
if chatEmotions[w] then
ChatStats[%curUser.sName].emotions = ChatStats[%curUser.sName].emotions + 1
else
ChatStats[%curUser.sName].words = ChatStats[%curUser.sName].words + 1
end
end)

local _,_,word1 = strfind(data,"^(%S+)")

if word1 and STATSFUNC[word1] then
if ChatConf.howToSend == 1 then
SendToAll(STATSFUNC[word1]())
elseif ChatConf.howToSend == 2 then
curUser:SendData(STATSFUNC[word1]())
end
end

end
end
---------------------------------------------------------------------------------------

-- SORTING TABLE

---------------------------------------------------------------------------------------
function doSortTable(table,field)
if ChatConf.howToSort == 1 then
if field == "ALL" then
sort(table, function(a,b) return((a[2].chars + a[2].words + a[2].emotions)  < (b[2].chars + b[2].words + b[2].emotions)) end)
else
sort(table, function(a,b) return(a[2][%field] < b[2][%field]) end)
end
elseif ChatConf.howToSort == 2 then
if field == "ALL" then
sort(table, function(a,b) return((a[2].chars + a[2].words + a[2].emotions)  > (b[2].chars + b[2].words + b[2].emotions)) end)
else
sort(table, function(a,b) return(a[2][%field] > b[2][%field]) end)
end
end
return table
end
---------------------------------------------------------------------------------------

-- TABLE FUNCTIONS

---------------------------------------------------------------------------------------
STATSFUNC = {
[cmd1] = function()

local sTable = {}
foreach(ChatStats, function(i,v) tinsert(%sTable,{i,v}) end)
local msg = "-----  Current Chat Stats ------\r\n"

sTable = doSortTable(sTable,"ALL")
msg = msg.."\r\n\tTop "..Max1.." Overall Stats\r\n\r\n"
for i = 1,Max1 do
if sTable[i] then
msg = msg.."\t# "..i.."  -  "..sTable[i][1]..", "..(sTable[i][2].chars + sTable[i][2].words + sTable[i][2].emotions).." overall,  "..sTable[i][2].chars.." chars, "..sTable[i][2].words.." words, "..sTable[i][2].emotions.." emotions.\r\n"
end
end
sTable = doSortTable(sTable,"chars")
msg = msg.."\r\n\tTop "..Max1.." Char Stats\r\n\r\n"
for i = 1,Max1 do
if sTable[i] then
msg = msg.."\t# "..i.."  -  "..sTable[i][1]..", with "..sTable[i][2].chars.." chars.\r\n"
end
end
sTable = doSortTable(sTable,"words")
msg = msg.."\r\n\tTop "..Max1.." Word Stats\r\n\r\n"
for i = 1,Max1 do
if sTable[i] then
msg = msg.."\t# "..i.."  -  "..sTable[i][1]..", with "..sTable[i][2].words.." words.\r\n"
end
end
sTable = doSortTable(sTable,"emotions")
msg = msg.."\r\n\tTop "..Max1.." Emotion Stats\r\n\r\n"
for i = 1,Max1 do
if sTable[i] then
msg = msg.."\t# "..i.."  -  "..sTable[i][1]..", with "..sTable[i][2].emotions.." emotions.\r\n"
end
end
return(msg)

end,
}
---------------------------------------------------------------------------------------

-- Write Tables

---------------------------------------------------------------------------------------
function WriteTable(table,tablename,file)
local handle = openfile(StatsFolder.."/"..file,"w")
Serialize(table,tablename,handle)
  closefile(handle)
end
--------------------------------------------
function Serialize(tTable,sTableName,hFile,sTab)
sTab = sTab or "";
write(hFile,sTab..sTableName.." = {\n");
for key,value in tTable do
local sKey = (type(key) == "string") and format("[%q]",key) or format("[%d]",key);
if(type(value) == "table") then
Serialize(value,sKey,hFile,sTab.."\t");
else
local sValue = (type(value) == "string") and format("%q",value) or tostring(value);
write(hFile,sTab.."\t"..sKey.." = "..sValue);
end
write(hFile,",\n");
end
write(hFile,sTab.."}");
end
Title: Yes....Chilla!!
Post by: WickeD on 28 January, 2004, 16:55:22
Thx!!!!  Love you for all your help!!!!  ;)

//WickeD
Title:
Post by: c h i l l a on 28 January, 2004, 19:03:01
ahahaha,

thanks Wicked ;),

I could help you a lot more, if you were ...
a woman ,175, blond and had a fine body.
ahmm.. nope hair color doesn't matter.
Title:
Post by: [NL]trucker on 29 January, 2004, 11:25:24
actuallly chilla i had q few probs with this one.

the name emoticon wasn,t spelled right and when i tried to fix it by adding a c to it [you had emotions ]

i messed up the script somehow.

when i tried to chance this :

cmd1 = "+showstats"   -- Main Command
Max1 = 10      -- How Many top chatters are shown of each genre.
ChatConf = {
   howToSort = 1,   -- Stands for the sorting either 1= least first, 2 = highest first.
   howToSend = 1,   -- 1 = Sends to all, 2 = Sends to user.
}


into this:

cmd1 = "+showstats"   -- Main Command
Max1 = 10      -- How Many top chatters are shown of each genre.
ChatConf = {
   howToSort = 2,   -- Stands for the sorting either 1= least first, 2 = highest first.
   howToSend = 1,   -- 1 = Sends to all, 2 = Sends to user.
}


it gave me some errors wich i dindt record [stupid me]
Title:
Post by: c h i l l a on 29 January, 2004, 13:30:07
try this one...

--Chat stats by chill
--Serialisation by RabidWombat

----------------------------------------------------------
----------------------------------------------------------
ChatConf = {
bot = "-ChatStats-", -- The Name of the bot.
cmd1 = "+showstats", -- Shows the Stats.
Max1 = 10, -- How Many top chatters are shown of each genre.
howToSort = 2, -- Stands for the sorting either 1= least first, 2 = highest first.
howToSend = 1, -- 1 = Sends to all, 2 = Sends to user, 3 = PM to the user, 4 = PM to the user and regs a bot.
StatsFile = "ChatStats.txt", -- The Filename
StatsFolder = "txt", -- The Folder
}
----------------------------------------------------------
----------------------------------------------------------

---------------------------------------------------------------------------------------

-- MAIN SCRIPT

---------------------------------------------------------------------------------------
ChatStats = {}
dofile(ChatConf.StatsFolder.."/"..ChatConf.StatsFile)
----------------------------------------------------------
chatEmotions = {
[":)"] = 1,
[":-)"] = 1,
[":("] = 1,
[":-("] = 1,
[";)"] = 1,
[";-)"] = 1,
[":-p"] = 1,
[":p"] = 1,
[":D"] = 1,
[":-D"] = 1,
}
----------------------------------------------------------
function Main()
frmHub:UnregBot(ChatConf.bot)
if ChatConf.howToSend == 4 then
frmHub:RegBot(ChatConf.bot)
end
SetTimer(1000*60*5)
StartTimer()
end
----------------------------------------------------------
function OnTimer()
WriteTable(ChatStats,"ChatStats",ChatConf.StatsFile)
end
----------------------------------------------------------
function DataArrival(curUser,data)

if strsub(data,1,1) == "<" then

if not ChatStats[curUser.sName] then
ChatStats[curUser.sName] = {}
ChatStats[curUser.sName].words = 0
ChatStats[curUser.sName].chars = 0
ChatStats[curUser.sName].emotions = 0
end

data = strsub(data,strlen(curUser.sName)+4,strlen(data)-1)

gsub(data,"(%S+)",function(w)
ChatStats[%curUser.sName].chars = ChatStats[%curUser.sName].chars + strlen(w)
if chatEmotions[w] then
ChatStats[%curUser.sName].emotions = ChatStats[%curUser.sName].emotions + 1
else
ChatStats[%curUser.sName].words = ChatStats[%curUser.sName].words + 1
end
end)

local _,_,word1 = strfind(data,"^(%S+)")

if word1 and STATSFUNC[word1] then
if ChatConf.howToSend == 1 then
SendToAll(ChatConf.bot,STATSFUNC[word1]())
elseif ChatConf.howToSend == 2 then
curUser:SendData(ChatConf.bot,STATSFUNC[word1]())
elseif (ChatConf.howToSend == 3) or (ChatConf.howToSend == 4) then
curUser:SendPM(ChatConf.bot,STATSFUNC[word1]())
end
end

end
end
---------------------------------------------------------------------------------------

-- SORTING TABLE

---------------------------------------------------------------------------------------
function doSortTable(table,field)
if ChatConf.howToSort == 1 then
if field == "ALL" then
sort(table, function(a,b) return((a[2].chars + a[2].words + a[2].emotions)  < (b[2].chars + b[2].words + b[2].emotions)) end)
else
sort(table, function(a,b) return(a[2][%field] < b[2][%field]) end)
end
elseif ChatConf.howToSort == 2 then
if field == "ALL" then
sort(table, function(a,b) return((a[2].chars + a[2].words + a[2].emotions)  > (b[2].chars + b[2].words + b[2].emotions)) end)
else
sort(table, function(a,b) return(a[2][%field] > b[2][%field]) end)
end
end
return table
end
---------------------------------------------------------------------------------------

-- TABLE FUNCTIONS

---------------------------------------------------------------------------------------
STATSFUNC = {
[ChatConf.cmd1] = function()

local sTable = {}
foreach(ChatStats, function(i,v) tinsert(%sTable,{i,v}) end)
local msg = "-----  Current Chat Stats ------\r\n"

sTable = doSortTable(sTable,"ALL")
msg = msg.."\r\n\tTop "..ChatConf.Max1.." Overall Stats\r\n\r\n"
for i = 1,ChatConf.Max1 do
if sTable[i] then
msg = msg.."\t# "..i.."  -  "..sTable[i][1]..", "..(sTable[i][2].chars + sTable[i][2].words + sTable[i][2].emotions).." overall,  "..sTable[i][2].chars.." chars, "..sTable[i][2].words.." words, "..sTable[i][2].emotions.." emotions.\r\n"
end
end
sTable = doSortTable(sTable,"chars")
msg = msg.."\r\n\tTop "..ChatConf.Max1.." Char Stats\r\n\r\n"
for i = 1,ChatConf.Max1 do
if sTable[i] then
msg = msg.."\t# "..i.."  -  "..sTable[i][1]..", with "..sTable[i][2].chars.." chars.\r\n"
end
end
sTable = doSortTable(sTable,"words")
msg = msg.."\r\n\tTop "..ChatConf.Max1.." Word Stats\r\n\r\n"
for i = 1,ChatConf.Max1 do
if sTable[i] then
msg = msg.."\t# "..i.."  -  "..sTable[i][1]..", with "..sTable[i][2].words.." words.\r\n"
end
end
sTable = doSortTable(sTable,"emotions")
msg = msg.."\r\n\tTop "..ChatConf.Max1.." Emotion Stats\r\n\r\n"
for i = 1,ChatConf.Max1 do
if sTable[i] then
msg = msg.."\t# "..i.."  -  "..sTable[i][1]..", with "..sTable[i][2].emotions.." emotions.\r\n"
end
end
return(msg)

end,
}
---------------------------------------------------------------------------------------

-- Write Tables

---------------------------------------------------------------------------------------
function WriteTable(table,tablename,file)
local handle = openfile(ChatConf.StatsFolder.."/"..file,"w")
Serialize(table,tablename,handle)
  closefile(handle)
end
--------------------------------------------
function Serialize(tTable,sTableName,hFile,sTab)
sTab = sTab or "";
write(hFile,sTab..sTableName.." = {\n");
for key,value in tTable do
local sKey = (type(key) == "string") and format("[%q]",key) or format("[%d]",key);
if(type(value) == "table") then
Serialize(value,sKey,hFile,sTab.."\t");
else
local sValue = (type(value) == "string") and format("%q",value) or tostring(value);
write(hFile,sTab.."\t"..sKey.." = "..sValue);
end
write(hFile,",\n");
end
write(hFile,sTab.."}");
end
Title:
Post by: [NL]trucker on 29 January, 2004, 19:37:59
chilla

it is working fine now but i have one request left

could you make it so that it is onley sown to the user who asks for it?
this can be in main no need for sending an pm .;-)
Title:
Post by: c h i l l a on 29 January, 2004, 19:45:46
just read the head of the script again..

howToSend = 1,      -- 1 = Sends to all, 2 = Sends to user, 3 = PM to the user, 4 = PM to the user and regs a bot.

;)
Title:
Post by: [NL]trucker on 29 January, 2004, 19:53:17
chilla

sorry m8 you,re right think it is to late for me need to get some sleep to think straight again :-))
Title: Wierd
Post by: Snoris on 21 February, 2004, 00:01:16
 1:  function `write' [C]
   2:  function `Serialize' at line 152 [file `D:\Freedom][Haninge\scripts\Chatstats.lua']
   3:  function `WriteTable' at line 146 [file `D:\Freedom][Haninge\scripts\Chatstats.lua']
   4:  function `OnTimer' at line 51 [file `D:\Freedom][Haninge\scripts\Chatstats.lua']

Did take a look at it..But I dont know anything of this =))

*LINE 51*
WriteTable(ChatStats,"ChatStats",ChatConf.StatsFile)
*LINE 146*
Serialize(table,tablename,handle)
*LINE 152*
write(hFile,sTab..sTableName.." = {\n");

Well whats the problem=))
And YES...I have a *.TXT file in the TEXT folder with the right name =)