Код
--[[::::::::::::::::::: (с) 2010 by Saymon :::::::::::::::::::::::::::::
Название: InfoMenu
Версия API: API2
Автор: Saymon
Описание: Скрипт показывает информацию о хабе и о юзере в меню.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::]]
HubOwner = "Admin" -- Владелец хаба
InetProvayder = "РосИнтел(сайт www.rosintel.ru)" --Интернет провайдер
HubCity = "Новомосковск" -- Город хаба
HubName = SetMan.GetString(0)
sMenu = "Информация для"
YearInitial = "2009" -- Год в котором был открыт хаб
YearFlowing = "2010"
local tProfiles = { -- Кому будет доступно меню. 1 - Да. 0 - Нет.
[0] = 1, -- NetFounder
[1] = 1, -- Admin
[2] = 1, -- Moderator
[3] = 1, -- Operator
[4] = 1, -- VIP
[5] = 1, -- Reg
[-1] = 1, -- Незарегистрированный юзер
}
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
tProfileName = { -- Названия профилей.
[0] = "Главный администратор",
[1] = "Admin",
[2] = "Moderator",
[3] = "Operator",
[4] = "VIP",
[5] = "Зарегистрированный пользователь",
[-1] = "Незарегистрированный пользователь",
}
--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
function GetNormalShare(s)
s = tonumber(s) or 0
if s >= 1125899906842624 then return (math.floor(1000 * s / 1125899906842624) / 1000).." ПБ"
elseif s >= 1099511627776 then return (math.floor(1000 * s / 1099511627776) / 1000).." TБ"
elseif s >= 1073741824 then return (math.floor(1000 * s / 1073741824) / 1000).." ГБ"
elseif s >= 1048576 then return (math.floor(1000 * s / 1048576) / 1000).." МБ"
elseif s >= 1024 then return (math.floor(1000 * s / 1024) / 1000).." КБ"
else return s.." Б" end
end
function GetUserReg(sNick)
local tRegUser = RegMan.GetReg(sNick)
if user then
return "Ваш пароль: "..tUser.sPassword..""
end
return "n/a"
end
function GetNormalTime(s) -- форматирование времени
s=tonumber(s) or 0
local r=""
if s>=31104000 then r=math.floor(s/31104000).." г. " s=math.fmod(s,31104000) end
if s>=2592000 then r=r..math.floor(s/2592000).." мес. " s=math.fmod(s,2592000) end
if s>=86400 then r=r..math.floor(s/86400).." д. " s=math.fmod(s,86400) end
if s>=3600 then r=r..math.floor(s/3600).." ч. " s=math.fmod(s,3600) end
if s>=60 then r=r..math.floor(s/60).." мин. " s=math.fmod(s,60) end
return r..s.." сек."
end
function ModeRec(tUser)
if Core.GetUserValue(tUser,10) then
return "Активный"
elseif Core.GetUserValue(tUser,0) == "P" then
return "Пассивный"
else
return "Proxy"
end
end
function Client(tUser)
if not Core.GetUserValue(tUser,6) or not Core.GetUser(tUser.sNick,true).sClientVersion then
return "n/a"
else
return Core.GetUserValue(tUser,6)
end
end
function Hubs(tUser)
if not Core.GetUserValue(tUser,17) or Core.GetUserValue(tUser,17) == 0 then
if not Core.GetUserValue(tUser,1):find("H%d+,S") then
local a,b,c = Core.GetUserValue(tUser,1):match("H:(%d+)/(%d+)/(%d+)")
a,b,c = tonumber(a or 0),tonumber(b or 0),tonumber(c or 0)
--local
hubs = a+b+c
else
hubs = Core.GetUserValue(tUser,1):match("H(%d+),S")
end
return hubs
else
return Core.GetUserValue(tUser,17)
end
end
function Slots(tUser)
if not Core.GetUserValue(tUser,21) or Core.GetUserValue(tUser,21) == 0 then
local slots = Core.GetUserValue(tUser,1):match("S:(%d+)")
return tonumber(slots)
else
return Core.GetUserValue(tUser,21)
end
end
function UserConnected(tUser)
local InformMenu = "$UserCommand 0 3|"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Добро пожаловать, "..tUser.sNick.."$<%[mynick]> ||"..
"$UserCommand 0 3|"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\ Информация о хабе$<%[mynick]> ||"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Название хаба:\t"..HubName.." $<%[mynick]> ||"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Описание хаба:\t"..(SetMan.GetString(5) or "n/a").."$<%[mynick]> ||"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Топик:\t"..(SetMan.GetString(10) or "n/a").."$<%[mynick]> ||"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Владелец:\t"..HubOwner.."$<%[mynick]> ||"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Город хаба:\t"..HubCity.."$<%[mynick]> ||"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Интернет провайдер:\t"..InetProvayder.."$<%[mynick]> ||"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Сейчас на хабе:\t"..Core.GetUsersCount().." пользователей онлайн$<%[mynick]> ||"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Из них администрации:\t"..#Core.GetOnlineOps().." представителей онлайн $<%[mynick]> ||"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Общая шара хаба составляет:\t"..GetNormalShare(Core.GetCurrentSharedSize()).."$<%[mynick]> ||"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Время непрерывной работы хаба:\t"..GetNormalTime(Core.GetUpTime()).."$<%[mynick]> ||"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Время и дата на сервере:\t"..os.date("%H:%M / %d %b %Y").."$<%[mynick]> ||"..
"$UserCommand 0 3|"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\ Информация о вас$<%[mynick]> ||"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Ваш ник:\t"..tUser.sNick.."$<%[mynick]> ||"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Ваш пароль:\t"..(tUser.iProfile ~= -1 and RegMan.GetReg(tUser.sNick).sPassword or "-").."$<%[mynick]> ||"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\IP / Страна:\t"..tUser.sIP.." / "..tostring(IP2Country.GetCountryName(tUser)).."$<%[mynick]> ||"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Ваше описание:\t"..(Core.GetUser(tUser.sNick,true).sDescription or "n/a").."$<%[mynick]> ||"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Ваша шара:\t"..GetNormalShare(Core.GetUserValue(tUser,16)).."$<%[mynick]> ||"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Ваш E-Mail:\t"..(Core.GetUser(tUser.sNick,true).sEmail or "n/a").."$<%[mynick]> ||"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Ваш профиль на хабе:\t"..tProfileName[tUser.iProfile].."$<%[mynick]> ||"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Ваш режим подключения:\t"..ModeRec(tUser).."$<%[mynick]> ||"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Ваш клиент:\t"..Client(tUser).." "..(Core.GetUser(tUser.sNick,true).sClientVersion or "n/a").."$<%[mynick]> ||"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\DC тег:\t"..(Core.GetUser(tUser.sNick,true).sTag or "n/a").."$<%[mynick]> ||"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Вы на:\t"..Hubs(tUser).." хабах$<%[mynick]> ||"..
"$UserCommand 1 3 "..sMenu.." "..tUser.sNick.."\\Инфо о вас и о хабе\\Количество ваших слотов составляет:\t"..Slots(tUser).."$<%[mynick]> ||"..
"$UserCommand 0 3|"
Core.SendToUser(tUser,"$UserCommand 1 3 <•><•><•><•><•><•><•><•><•> $<%[mynick]> ||")
Core.SendToUser(tUser,"$UserCommand 1 3 «¤•°"..HubName.."°•¤» © "..YearInitial.." - "..YearFlowing.."$<%[mynick]> ||")
Core.SendToUser(tUser,"$UserCommand 1 3 <•><•> Меню пользователя <•><•> $<%[mynick]> ||")
if tProfiles[tUser.iProfile] == 1 then
Core.SendToUser(tUser, InformMenu)
end
end
OpConnected = UserConnected
RegConnected = UserConnected
function OnError(s)
local h=io.open("errors.log","a+")
if h then
h:write(os.date()..": "..s.."\r\n")
h:close()
end
if Core then
Core.SendToOpChat(s)
else
SendToOpChat(s)
end
end