Код
-- This script is converted with PtokaX LUA API Converter v0.9 at 08/07/08 17:10:05
-- данный скрипт добавляет в описание пользователей название их сети, профиль и IP.
-- by e-ploko API2
Minutes = 1
tProfileTag = {
[1] = "[Master]",
[2] = "[Moderator]",
[3] = "[Operator]",
[4] = "[VIP]",
[5] = "[Reg]",
[0] = "[SUAdmin]",
[-1] = "[Unreg]"
}
-- список подсетей и описания, вставляемое в тэг.
RangeDesc = {
[1]="10.0.0.0-10.0.0.255-[ISP]",
[2]="10.135.0.0-10.135.255.255-[Eth_2_Микрор-н]",
[3]="10.132.0.0-10.132.255.255-[Eth_3_Бутырки]",
[4]="10.142.0.0-10.142.255.255-[Eth_Агропром]",
[5]="10.146.0.0-10.146.255.255-[Eth_ишневая]",
[6]="10.156.0.0-10.156.255.255-[Eth_орошиловка]",
[7]="10.150.0.0-10.150.255.255-[Eth_ысоковольтная]",
[8]="10.157.0.0-10.157.255.255-[Eth_Грибоедова]",
[9]="10.147.0.0-10.147.255.255-[Eth_Дягилево]",
[10]="10.134.0.0-10.134.255.255-[Eth_Кальное]",
[11]="10.137.0.0-10.137.255.255-[Eth_Керамзавод]",
[12]="10.138.0.0-10.138.255.255-[Eth_Мехзавод]",
[13]="10.136.0.0-10.136.255.255-[Eth_Михшоссе_2]",
[14]="10.133.0.0-10.133.255.255-[Eth_Михшоссе]",
[15]="10.160.0.0-10.160.255.255-[Eth_Новоселов_33]",
[16]="10.129.0.0-10.129.255.255-[Eth_Окт.гор-к]",
[17]="10.153.0.0-10.153.255.255-[Eth_Павлова]",
[18]="10.130.0.0-10.130.255.255-[Eth_Полевая]",
[19]="10.144.0.0-10.144.255.255-[Eth_Приокский]",
[20]="10.128.0.0-10.128.255.255-[Eth_Радищева]",
[21]="10.141.0.0-10.141.255.255-[Eth_Соколовка]",
[22]="10.145.0.0-10.145.255.255-[Eth_Солнечная]",
[23]="10.148.0.0-10.148.255.255-[Eth_Чкалова]",
[24]="10.151.0.0-10.151.255.255-[Eth_Шевченко]",
[25]="10.131.0.0-10.131.255.255-[Eth_Шлаковый]",
[26]="10.152.0.0-10.152.255.255-[Eth_Электрозаводская]"
-- и т.д.
}
OnStartup = function()
tmr = TmrMan.AddTimer(5000 * Minutes)
end
OnTimer = function(tmr)
for id,user in pairs(Core.GetOnlineUsers(true)) do
Userover = user
if user.sMyInfoString ~= nil then
local descript,userip = nil,calcip(Userover.sIP)
if userip ~= 0 then
for index,descIP in pairs(RangeDesc) do
local _,_,startRange,endRange,RangeDescript = string.find(descIP, "(.*)-(.*)-(.*)")
startRange = calcip(startRange)
endRange = calcip(endRange)
if userip>=startRange and userip<=endRange then
descript = RangeDescript
end
end
if descript == nil then descript = "[?]"
end
end
local s,e,name,desc,speed,email,share = string.find(user.sMyInfoString, "$MyINFO $ALL (%S+)%s+([^$]*)$ $([^$]*)$([^$]*)$([^$]+)")
local descript = tProfileTag[user.iProfile].." "..descript
Core.SendToAll("$MyINFO $ALL "..name.." "..descript.." "..desc.."$ $"..speed.."$"..email.."$"..share.."$")
end
end
end
-- функция РАСЧЁТА адреса IP
function calcip(ipcalc)
local _,_,a,b,c,d = string.find(ipcalc, "(%d+).(%d+).(%d+).(%d+)")
local calc = 0
if (tonumber(a) and tonumber(b) and tonumber(c) and tonumber(d)) then
calc = a*16777216 + b*65536 + c*256 + d
return calc
else return 0
end
end
--end