Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Kорзина _ Инфо В Чате (как На Verlihub)

Автор: West 8.12.2008, 0:00

- [::] Your info:
- [::] Nick: West
- [::] Class: Operator (3)
- [::] IP: 77.244.36.184
- [::] Country Code: --


Как ето зделать на Птоху 0.4.1.1

Автор: *FoxMalder* 8.12.2008, 1:51

http://mydc.ru/topic240.html?view=findpost&p=1404 или 7 сообщение =)

Автор: West 8.12.2008, 2:47

это нето. там стат полный. А мне нужен маленкий как я просил

Автор: *FoxMalder* 8.12.2008, 4:21

оч сложно сделать так как хочется ;)


CODE

sMsg=[[
<Hub-Security>
- [::] Your info:
- [::] Nick: [NICK]
- [::] IP: [IP]
- [::] Class: [PROFILE]

]]
sBot=nil
bNewApi=true
sOwner="Setuper"

profiles={
[-1]="Незарегистрированный пользователь",
[0]="Админ",
[1]="ОПератор",
[2]="VIP",
[3]="Пользователь"
}

function Main()
bNewApi=false
if not sBot then sBot=frmHub:GetHubBotName() end
end

function OnStartup()
if not sBot then sBot=(SetMan.GetString(21) or "Hub-Security") end
end

function NewUserConnected(tUser)
sMsg=string.gsub(sMsg,"%[HUBNAME%]",frmHub:GetHubName())
sMsg=string.gsub(sMsg,"%[OWNER%]",sOwner)
sMsg=string.gsub(sMsg,"%[BOTNAME%]",frmHub:GetHubBotName())
sMsg=string.gsub(sMsg,"%[ONLINE%]",TimeOnline(frmHub:GetUpTime()))
sMsg=string.gsub(sMsg,"%[SHARE%]",GetNormalShare(frmHub:GetCurrentShareAmount()+tUser.iShareSize))
sMsg=string.gsub(sMsg,"%[NICK%]",tUser.sName)
sMsg=string.gsub(sMsg,"%[IP%]",tUser.sIP)
sMsg=string.gsub(sMsg,"%[SHARESIZE%]",GetNormalShare(tUser.iShareSize))
sMsg=string.gsub(sMsg,"%[PERCENT%]",SharePerc(tUser,frmHub:GetCurrentShareAmount()))
sMsg=string.gsub(sMsg,"%[PROFILE%]",profiles[tUser.iProfile])
sMsg=string.gsub(sMsg,"%[TAG%]",tUser.sTag)
sMsg=string.gsub(sMsg,"%[DESC%]",tUser.sDescription~="" and tUser.sDescription or "не выбрано")
sMsg=string.gsub(sMsg,"%[EMAIL%]",tUser.sEmail~="" and tUser.sEmail~=" " and tUser.sEmail or "не выбран")
sMsg=string.gsub(sMsg,"%[CONNECTION%]",tUser.sConnection)
tUser:SendData(sMsg)
end

function UserConnected(tUser)
Core.GetUserAllData(tUser)
sMsg=string.gsub(sMsg,"%[HUBNAME%]",SetMan.GetString(0))
sMsg=string.gsub(sMsg,"%[OWNER%]",sOwner)
sMsg=string.gsub(sMsg,"%[BOTNAME%]",SetMan.GetString(21))
sMsg=string.gsub(sMsg,"%[ONLINE%]",TimeOnline(Core.GetUpTime()))
sMsg=string.gsub(sMsg,"%[SHARE%]",GetNormalShare(Core.GetCurrentSharedSize()+tUser.iShareSize))
sMsg=string.gsub(sMsg,"%[NICK%]",tUser.sNick)
sMsg=string.gsub(sMsg,"%[IP%]",tUser.sIP)
sMsg=string.gsub(sMsg,"%[SHARESIZE%]",GetNormalShare(tUser.iShareSize))
sMsg=string.gsub(sMsg,"%[PERCENT%]",SharePerc(tUser,Core.GetCurrentSharedSize()))
sMsg=string.gsub(sMsg,"%[PROFILE%]",profiles[tUser.iProfile])
sMsg=string.gsub(sMsg,"%[TAG%]",tUser.sTag)
sMsg=string.gsub(sMsg,"%[DESC%]",tUser.sDescription~="" and tUser.sDescription or "не выбрано")
sMsg=string.gsub(sMsg,"%[EMAIL%]",tUser.sEmail~="" and tUser.sEmail~=" " and tUser.sEmail or "не выбран")
sMsg=string.gsub(sMsg,"%[CONNECTION%]",tUser.sConnection)
Core.SendToUser(tUser,sMsg)
end

function TimeOnline(iSec)
local iCount, iTime, sResult, sSumb = 0, 0, "", ""
if tonumber(iSec) then
iCount = tonumber(iSec)
else
iCount = 0
end
if iCount >= 60 then
iTime = math.floor(iCount / 60)
if iTime <= 20 then
if iTime == 1 then return tostring(iTime).." минуту"
elseif iTime > 1 and iTime < 5 then return tostring(iTime).." минуты"
else return tostring(iTime).." минут" end
else
local iTmp = tonumber(string.sub(tostring(iTime), string.len(tostring(iTime)), -1))
if iTmp == 1 then return tostring(iTime).." минуту"
elseif iTmp > 1 and iTmp < 5 then return tostring(iTime).." минуты"
else return tostring(iTime).." минут" end
end
else
return "1 минуту"
end
end

function SharePerc(tUser,s)
local iSharePerc=100
if (tUser.iShareSize+s)~=0 then
iSharePerc=math.floor(100*tUser.iShareSize/(tUser.iShareSize+s))
end
if tUser.iShareSize==0 then
return "0%%"
else
if iSharePerc < 1 then
return "<1%%"
else
return tostring(iSharePerc).."%%"
end
end
end

function GetNormalShare(iShare)
local iCount = 0
if tonumber(iShare) then
iCount = tonumber(iShare)
else
iCount = 0
end
if iCount >= 1099511627776 then return tostring(math.floor(1000 * iCount / 1099511627776) / 1000).." TБ"
elseif iCount >= 1073741824 then return tostring(math.floor(1000 * iCount / 1073741824) / 1000).." ГБ"
elseif iCount >= 1048576 then return tostring(math.floor(1000 * iCount / 1048576) / 1000).." МБ"
elseif iCount >= 1024 then return tostring(math.floor(1000 * iCount / 1024) / 1000).." КБ"
else return tostring(iCount).." Б"
end
end

RegConnected=UserConnected

function OpConnected(tUser)
if bNewApi then UserConnected(tUser)
else NewUserConnected(tUser) end
end

Автор: Sephiroth_Lukaw 8.12.2008, 6:12

Код
function UserConnected(tUser)
local Profile = (ProfMan.GetProfile(tUser.iProfile) and ProfMan.GetProfile(tUser.iProfile).sProfileName) or "Unreg"
Core.SendToUser(tUser,"\n[::] Your info: \n[::] Nick: "..tUser.sNick.." \n[::] Class: "..Profile.." ("..tUser.iProfile..") \n[::] IP: "..tUser.sIP.." \n[::] Country Code: "..tostring(IP2Country.GetCountryCode(tUser.sIP)))
end
RegConnected = UserConnected
OpConnected = UserConnected

Автор: West 8.12.2008, 9:55

Вау!!! Спасибо. а можно еще
[::] IP: 77.244.36.184
[::] Country Code: ??

Что бы в место *??* было UA ну и у людей с разных стран отображалась своя страна ?

Автор: Sephiroth_Lukaw 8.12.2008, 11:30

Код
function UserConnected(tUser)
local Profile = (ProfMan.GetProfile(tUser.iProfile) and ProfMan.GetProfile(tUser.iProfile).sProfileName) or "Unreg"
Core.SendToUser(tUser,"\n[::] Your info: \n[::] Nick: "..tUser.sNick.." \n[::] Class: "..Profile.." ("..tUser.iProfile..") \n[::] IP: "..tUser.sIP.." \n[::] Country Code: "..tostring(IP2Country.GetCountryName(tUser)))
end
RegConnected = UserConnected
OpConnected = UserConnected

Цитата
было UA ну и у людей с разных стран отображалась своя страна ?
По идее так, но как работает GetCountryName, не знаю.

Автор: West 8.12.2008, 19:55

GetCountryName, а это куда надо встовлять?


После переустановки скрипта,вобще пишет
[::] Country Code: Unknown
:(

Автор: Sephiroth_Lukaw 8.12.2008, 20:04

Он во втором коде вставлен, для [::] Country Code:, но будет ли он возвращать US и т.п. я не знаю.

Автор: Setuper 8.12.2008, 20:46

хехе.
Неужели не понятно, что для того, чтобы определялась страна нужна база стран и ip адресов.

Установка базы ip-to-country:
1). Качаем архив отсюда: http://mydc.ru/r/?http://ip-to-country.webhosting.info/downloads/ip-to-country.csv.zip или отсюда  ip_to_country.csv.zip ( 712.33 килобайт ) : 66
2). Распаковываем его содержимое в папку PtokaX/cfg

big_smile.gif

Автор: West 8.12.2008, 21:10

А былоб прикольно,а может просто в папку с птохой залить GetCountryName и оно будет читать?

Автор: Setuper 8.12.2008, 21:17

Я всё написал что и как делать. Не ужели непонятно?

Автор: West 8.12.2008, 21:44

Всё зделал всёравно

[::] Country Code: Unknown .

Значит не получеться скрипт зделать :( bad_smile.gif

Автор: Setuper 8.12.2008, 21:51

Я что не по русски написал? Что-то не пойму, что тут не понятного. Качаем архив по любой из представленных ссылок. Распаковываем этот архив и получаем файл ip-to-country.csv. После этого открываем папку с PtokaX, далее открываем папку cfg и копируем туда этой файл.

Автор: West 8.12.2008, 21:58

всё палучилось,спасибо

Автор: Sephiroth_Lukaw 8.12.2008, 22:00

Цитата
- [::] Your info:
- [::] Nick: Sephiroth_Lukaw
- [::] Class: Unreg (-1)
- [::] IP: *.*.*.*
- [::] Country Code: Russian Federation
Прикольно, спасибо Setuper'у!

Автор: Nissan_GT 10.12.2008, 12:20

Сделайте такой скрипт на API 1!! Буду очень признателен boss.gif



Сделайте плиз такой скрипт для API 1 заранее спасибо

Автор: Setuper 10.12.2008, 12:33

на апи1 нет таких возможностей как на апи2 !!!

Автор: data_trevel 14.12.2008, 15:06

Блин пацаны у меня проблема с этим скриптом всем юзерам рассылает только мою информацию а некаждому свою.
Что делать подскажите плиз

Автор: Sephiroth_Lukaw 14.12.2008, 15:11

Не может такого быть. Пользователь входит, приходит информация о нём.
upd. Её видит, только он.

Автор: data_trevel 14.12.2008, 15:28

ну мне многие говорили я его отключил пока не разберусь что с ним

Вот смотри

Цитата
- [::] Your info:
- [::] Nick: data_trevel
- [::] IP: 10.224.80.223
- [::] Class: Unreg


это мне написало а это написало другому:
Цитата
<Lelik> вот что мне написало твою инфу big_smile.gif
- [::] Your info:
- [::] Nick: data_trevel
- [::] IP: 10.224.80.223
- [::] Class: Unreg

Автор: Sephiroth_Lukaw 14.12.2008, 15:38

http://mydc.ru/topic851.html?view=findpost&p=6212

Автор: data_trevel 14.12.2008, 22:48

все заработало!!!

Автор: Lpein 16.12.2008, 13:39

у меня локальный адрес, начинается он 172.20... Будет Country Code работать?

Автор: sphinx 18.12.2008, 12:05

Цитата(Lpein @ 16.12.2008, 13:39) *
у меня локальный адрес, начинается он 172.20... Будет Country Code работать?

Не будет.

Автор: Lpein 20.12.2008, 14:20

А можно как нибуть добавить в таблицу свои диапазоны адресов?

Автор: sphinx 21.12.2008, 1:01

Почему бы и нет? попробуй big_smile.gif

Автор: Lpein 27.12.2008, 13:20

А как правильно это зделать? например мой локальный ип 172.20.21.41 и мне надо внести в базу 172202141?

Автор: Артём 27.12.2008, 13:45

у меня почемуто эта база вообще не хочет работать beat_plaster.gif

Автор: West 6.1.2009, 14:19

что пишет ?

Автор: Nickolya 6.1.2009, 14:30

Цитата(Lpein @ 27.12.2008, 13:20) *
А как правильно это зделать? например мой локальный ип 172.20.21.41 и мне надо внести в базу 172202141?

Нет, формула расчета ипа видна в некоторых функциях скриптов(s1, s2, s3, s4 - 1-4 цифры ip соответственно):
s1*(256^3) + s2*(256^2) + s3*256 + s4 = s1*16777216 + s2*65536 + s3*256 + s4

Код
function CountIP(sIP)
    local _,_, IP1, IP2, IP3, IP4 = string.find(sIP, "^(%d+)%.(%d+)%.(%d+)%.(%d+)")
    if IP1 and IP2 and IP3 and IP4 then
        local IP1, IP2, IP3, IP4 = tonumber(IP1), tonumber(IP2), tonumber(IP3), tonumber(IP4)
        local Count = (IP1 * 16777216) + (IP2 * 65536) + (IP3 * 256) + (IP4)
        return Count
    end
end

Автор: Setuper 7.1.2009, 2:31

или вот: http://mydc.ru/ipb.html?s=&showtopic=334&view=findpost&p=2543

Автор: Tamerlan 19.1.2009, 14:36

Народ поставил этот скрипт Всё работает,но только что мне дописать в скрипте,что бы после строчки [:::] Country Code: Russian Federation был пропуск,а то когда пишут в чате всё получается вместе..ЗАРАНЕЕ СПАСИБО!!!

Автор: Sephiroth_Lukaw 19.1.2009, 20:07

Какой пропуск? Так:

Код
function UserConnected(tUser)
local Profile = (ProfMan.GetProfile(tUser.iProfile) and ProfMan.GetProfile(tUser.iProfile).sProfileName) or "Unreg"
Core.SendToUser(tUser,"\n[::] Your info: \n[::] Nick: "..tUser.sNick.." \n[::] Class: "..Profile.." ("..tUser.iProfile..") \n[::] IP: "..tUser.sIP.." \n[::] Country Code: "..tostring(IP2Country.GetCountryName(tUser)).."\n")
end
RegConnected = UserConnected
OpConnected = UserConnected
?(\n в конце добавил)

Автор: Tamerlan 19.1.2009, 20:24

Опа дружище спасибо огромное!!!а то я всё перепробывал!!!!!

Автор: Артём 2.2.2009, 23:05

Цитата(Setuper @ 8.12.2008, 20:46) *
хехе.
Неужели не понятно, что для того, чтобы определялась страна нужна база стран и ip адресов.

Установка базы ip-to-country:
1). Качаем архив отсюда: http://mydc.ru/r/?http://ip-to-country.webhosting.info/downloads/ip-to-country.csv.zip или отсюда  ip_to_country.csv.zip ( 712.33 килобайт ) : 66
2). Распаковываем его содержимое в папку PtokaX/cfg

big_smile.gif


beat_brick.gif всё сделал как тут написано....и нечего bad_smile.gif ...а в чём дело немогу понять

Автор: Tamerlan 12.2.2009, 16:54

а не могли бы пожалуйста дописать в этот скрипт,что бы показывало ещё: сколько Хаб в онлайне,Общая шара хаба и Сколько посетителей на хабе???? Если конечно это можно!

Автор: Setuper 12.2.2009, 16:56

Это есть в других скриптах. Смотри в разделе готовые скрипты.

Автор: Tamerlan 12.2.2009, 17:02

я пробывал прописать в этот скрипт мне пишет при коннекте Статистика.lua:3: attempt to index global 'user' (a nil value) ??????

Автор: ForZ 25.2.2009, 4:52

Зделайте плиз чтобы показыволо


- [::] Your info:
- [::] Nick: West
- [::] Class: Operator (3)
- [::] IP: 77.244.36.184
- [::] Country Code: -- UA иле у Руссово RU плиз

Автор: Setuper 25.2.2009, 12:02

Всю тему полностью прочитать лень?
http://mydc.ru/ipb.html?s=&showtopic=851&view=findpost&p=6212