News
:
READ THE
RULES
Home
Forum
Help
Search
Calendar
Login
Register
Welcome,
Guest
. Please
login
or
register
.
Did you miss your
activation email?
September 07, 2010, 11:12:41 PM
1 Hour
1 Day
1 Week
1 Month
Forever
Login with username, password and session length
Light Blue
Light Navy
Light Silver
Light Turquoise
Light Green
Light Olive
Light Golden
Light Brown
Light Red
Light Rose
Light Lilac
Light Violet
The PtokaX Portal
>
Forum
>
Lua 5.1.x Scripts (for PtokaX 0.4.0.0 and newer)
>
Conversion Requests
>
Membercount
Pages: [
1
]
Go Down
« previous
next »
Print
Author
Topic: Membercount (Read 96 times)
0 Members and 1 Guest are viewing this topic.
Yahoo
Lord
Karma: +32/-14
Offline
Posts: 265
People Say "I Dont Know English"
Membercount
«
on:
July 19, 2010, 07:33:18 PM »
Is it possible for someone to convert this script to latest API. It will be great
Code:
-- Member Count
-- Made by Madman
-- Requested by SwapY
-- Small bugfix, report by Markitos
-- Small changes by NL
Members = {}
function Main()
-- Make file
local file = io.open("Members.dat")
if file then
file:close()
else
local file = io.open("Members.dat", "w+")
file:write("Members = {\n}")
file:close()
end
-- Load file
LoadFromFile("Members.dat")
end
function ChatArrival(curUser, data)
local data = string.sub(data, 1, -2)
local s,e,cmd = string.find(data, "%b<>%s+[%!%+%?%#](%S+)")
if cmd == "membercount" then -- find cmd
SendToAll(data)
local RegC, OnlineC, ActiveC, vCount = 0,0,0,0
for count,_ in pairs(frmHub:GetRegisteredUsers()) do -- Get regged users
RegC = count -- RegC is count
end
for count,oUser in pairs(frmHub:GetOnlineRegUsers()) do -- Get online reg users
OnlineC = count
if oUser.bActive then -- If user is Active
-- Add to table
if Members[oUser.sName] == nil then
Members[oUser.sName] = {Active = 1}
SaveToFile("Members.dat", Members, "Members")
else
if not Members[oUser.sName].Active then
Members[oUser.sName].Active = 1
SaveToFile("Members.dat", Members, "Members")
end
end
end
end
for name,_ in pairs(Members) do -- Get names from tables
if Members[name].Active then -- Get the Active
ActiveC = ActiveC+1 -- Count them
end
if Members[name].LastSeen then -- Get thoose who are offline
if Members[name].LastSeen == os.date("%Y-%m-%d") then -- Check if they has todays date
vCount = vCount+1 -- if they do, count
else -- if not
Members[name].LastSeen = nil -- Remove from table
SaveToFile("Members.dat", Members, "Members") -- Save
end
end
end
SendToAll(frmHub:GetHubBotName(), "" ..RegC.. " registered users, " ..ActiveC.. " active, " ..vCount.. " visited the hub in last 24 hrs, " ..OnlineC.. " currently online")
return 1
end
end
function NewUserConnected(curUser)
if frmHub:isNickRegged(curUser.sName) then -- Is user reg?
if Members[curUser.sName] and Members[curUser.sName].LastSeen then -- Is user in table with LastSeen
Members[curUser.sName].LastSeen = nil -- Delte it
end
if curUser.bActive then -- Is user active?
-- Add to table
if Members[curUser.sName] == nil then
Members[curUser.sName] = {Active = 1}
else
Members[curUser.sName].Active = 1
end
end
SaveToFile("Members.dat", Members, "Members") -- Save it
end
end
OpConnected = NewUserConnected
function UserDisconnected(curUser)
if frmHub:isNickRegged(curUser.sName) then -- Is user reg?
-- Add to table
if Members[curUser.sName] == nil then
Members[curUser.sName].LastSeen = {os.date("%Y-%m-%d")}
else
Members[curUser.sName].LastSeen = os.date("%Y-%m-%d")
end
SaveToFile("Members.dat", Members, "Members") -- Save it
end
end
OpDisconnected = UserDisconnected
-- Serialize by nErBoS
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 pairs(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 SaveToFile(file , table , tablename)
local handle = io.open(file,"w+")
handle:write(Serialize(table, tablename))
handle:flush()
handle:close()
end
function LoadFromFile(filename)
local f = io.open(filename)
if f then
local r = f:read("*a")
f:flush()
f:close()
local func,err = loadstring(r)
if func then x,err = pcall(func) end
end
end
Thanks In Advance
Logged
"BoRN FIGhTEr"
TZB
Double Ace
Karma: +12/-0
Offline
Posts: 141
||-T-z-B-||
Re: Membercount
«
Reply #1 on:
July 24, 2010, 12:26:43 PM »
Code:
-- This script is converted with PtokaX LUA API Converter v0.9b at 07/24/10 15:46:18
-- Member Count
-- Made by Madman
-- Requested by SwapY
-- Small bugfix, report by Markitos
-- Small changes by NL
Members = {}
function OnStartup()
-- Make file
local file = io.open("Members.dat")
if file then
file:close()
else
local file = io.open("Members.dat", "w+")
file:write("Members = {\n}")
file:close()
end
-- Load file
LoadFromFile("Members.dat")
end
function ChatArrival(curUser,data)
local data = string.sub(data, 1, -2)
local s,e,cmd = string.find(data, "%b<>%s+[%!%+%?%#](%S+)")
if cmd == "membercount" then -- find cmd
Core.SendToAll(data)
local RegC, OnlineC, ActiveC, vCount = 0,0,0,0
for count,_ in pairs(RegMan.GetRegs()) do -- Get regged users
RegC = count -- RegC is count
end
for count,oUser in pairs(Core.GetOnlineRegs(true)) do -- Get online reg users
OnlineC = count
if Core.GetUserValue(oUser,10) then -- If user is Active
-- Add to table
if Members[oUser.sNick] == nil then
Members[oUser.sNick] = {Active = 1}
SaveToFile("Members.dat", Members, "Members")
else
if not Members[oUser.sNick].Active then
Members[oUser.sNick].Active = 1
SaveToFile("Members.dat", Members, "Members")
end
end
end
end
for name,_ in pairs(Members) do -- Get names from tables
if Members[name].Active then -- Get the Active
ActiveC = ActiveC+1 -- Count them
end
if Members[name].LastSeen then -- Get thoose who are offline
if Members[name].LastSeen == os.date("%Y-%m-%d") then -- Check if they has todays date
vCount = vCount+1 -- if they do, count
else -- if not
Members[name].LastSeen = nil -- Remove from table
SaveToFile("Members.dat", Members, "Members") -- Save
end
end
end
Core.SendToAll("<"..SetMan.GetString(21).."> " ..RegC.. " registered users, " ..ActiveC.. " active, " ..vCount.. " visited the hub in last 24 hrs, " ..OnlineC.. " currently online")
return true
end
end
function UserConnected(curUser)
if RegMan.GetReg(curUser.sNick) then -- Is user reg?
if Members[curUser.sNick] and Members[curUser.sNick].LastSeen then -- Is user in table with LastSeen
Members[curUser.sNick].LastSeen = nil -- Delte it
end
if Core.GetUserValue(curUser,10) then -- Is user active?
-- Add to table
if Members[curUser.sNick] == nil then
Members[curUser.sNick] = {Active = 1}
else
Members[curUser.sNick].Active = 1
end
end
SaveToFile("Members.dat", Members, "Members") -- Save it
end
end
OpConnected = UserConnected
function UserDisconnected(curUser)
if RegMan.GetReg(curUser.sNick) then -- Is user reg?
-- Add to table
if Members[curUser.sNick] == nil then
Members[curUser.sNick].LastSeen = {os.date("%Y-%m-%d")}
else
Members[curUser.sNick].LastSeen = os.date("%Y-%m-%d")
end
SaveToFile("Members.dat", Members, "Members") -- Save it
end
end
OpDisconnected = UserDisconnected
-- Serialize by nErBoS
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 pairs(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 SaveToFile(file , table , tablename)
local handle = io.open(file,"w+")
handle:write(Serialize(table, tablename))
handle:flush()
handle:close()
end
function LoadFromFile(filename)
local f = io.open(filename)
if f then
local r = f:read("*a")
f:flush()
f:close()
local func,err = loadstring(r)
if func then x,err = pcall(func) end
end
end
RegConnected = UserConnected
RegDisconnected = UserDisconnected
Simple converter did the trick.
Logged
gigahub.no-ip.biz:666
Pages: [
1
]
Go Up
Print
« previous
next »
Jump to:
Please select a destination:
-----------------------------
Forum
-----------------------------
=> News
-----------------------------
PtokaX
-----------------------------
=> FAQ section
=> Support
=> Bugs
=> Feature Proposals
-----------------------------
Lua 5.1.x Scripts (for PtokaX 0.4.0.0 and newer)
-----------------------------
=> Request for scripts
=> Conversion Requests
=> Finished Scripts
=> Help with scripts
=> HOW-TO's
=> AllInOne Scripts
===> DiXBoT
=====> DiXBoT - Support
=====> DiXBoT - Bug Reports
=====> DiXBoT - Feature Requests
=====> DiXBoT - Custom modules
=====> DiXBoT - General
=====> DiXBoT Manager
===> Grimoire
=====> Grimoire - Bugs
=====> Grimoire - Requests
=====> Grimoire - Support
===> PtokaX Remote Admin
=====> Support
=====> Bug reports
=====> Feature requests
===> PGE
===> Terminator 2nd Generatation
=====> Bug reports
=====> Feature requests
=====> Support
=====> GUI
-----------------------------
Development Section
-----------------------------
=> PtokaX Development Versions
=> HOW-TO's
===> HOW-TO requests
=> LUA & PtokaX-Scripting-Interface
=> Extensions for PXLUA
=> Lua tools
=> Your Developing Problems
-----------------------------
Client-based LUA scripting
-----------------------------
=> HOWTOs
===> Request for HOWTOs
=> Your Developing Problems
=> Finished Scripts
=> Request for scripts
=> General discussion
-----------------------------
Stuff
-----------------------------
=> The PtokaX Admins' Hub
=> Guest Area
=> Offtopic
=> Your opinions about the forum
=> Links
=> Oldies but Goldies
-----------------------------
Archive
-----------------------------
=> Archived News
=> Archived 5.1 boards
===> AllInOne Scripts
=====> DiXBoT
=======> DiXBoT - Support
=======> DiXBoT - Bug Reports
=======> DiXBoT - Feature Requests
=======> DiXBoT - Custom modules
=======> DiXBoT - General
=====> Grimoire
=======> Grimoire - Bugs
=======> Grimoire - Requests
=======> Grimoire - Support
=====> Terminator
=====> RoboCop
=======> RoboCop - Support
=======> RoboCop - Requests
=======> RoboCop - Bugs
=====> Leviathan
=======> Leviathan - Support
=======> Leviathan - Requests
=======> Leviathan - Bugs
=====> Guardian 5
=====> P§ÿGúârÐ Edition
=====> LawMaker
=====> DESTiNATiON
=======> DESTiNATiON Bugs
=======> DESTiNATiON Support
=======> DESTiNATiON Feature Requests
===> HOW-TO's
=====> Old HOW-TO's
===> Help with scripts
===> Finished Scripts
===> Conversion Requests
===> Request for scripts
=> Archived 5.0 boards
===> Finished Scripts
===> Request for scripts
===> Help with scripts
===> AllInOne Scripts
=====> Guardian 5
=====> Terminator
=====> RoboCop
=======> Requests
=======> Bug reports
=======> Support
=====> Grimoire
=======> Grimoire - Bugs
=======> Grimoire - Requests
=======> Grimoire - Support
=> Archived 4.0 boards
===> Request for Lua 4 scripts
===> Finished Lua 4 scripts
===> Help with Lua 4 scripts
===> ChannelBot
Loading...