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

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

MyDC.ru _ Готовые скрипты для PtokaX _ Tophubber's

Автор: Jaska 4.6.2008, 20:08

Название скрипта: TopHubbers
Версия скрипта: API 1 - 2.01 , API 2 - 2.9a
Версия API: API 1 и 2
Автор: jiten
Перевод: NRJ
Перевод под API 2: Jaska
Описание скрипта: Топ юзеров по времени онлайн на хабе.



 _NewAPI_TopHubber__s.zip ( 3.9 килобайт ) : 323
 TopHubbers_2.01_API1.lua ( 9.7 килобайт ) : 151
 

Автор: Infernus-pro 5.6.2008, 13:53

Посмотрел скрипт, существует ошибочка синтаксическая )
[16:46] Синтаксис [NewAPI]TopHubber's.lua:1: unexpected symbol near 'Э'
Уберите просто если что вот это и все будет работать)):
Этот скрипт и не только можно найти на портале для администратора хаба: http://mydc.ru/
И почему то меню доступно только адмниу, у рега его нету, не подскажешь как исправить? Скрипт профили пользователей тоже самое реги не видят меню только админ.

Приношу свои извинения. Скрит переводил глубокой ночью big_smile.gif В обоих скриптах забыл про то что в новом API функция не NewUserConnect а просто UserConnect. Строчку

Цитата
Этот скрипт и не только можно найти на портале для администратора хаба: http://mydc.ru/
удалять совершенно необязательно достаточно всего лишь закомментировать "--"
Цитата
-- Этот скрипт и не только можно найти на портале для администратора хаба: http://mydc.ru/
впрочем я это исправил уже. Качайте корректную версию)

Автор: Infernus-pro 6.6.2008, 13:18

ммм опять проблемка)) у юзера отображается меню и все норм робит а у мастера шыш))) помоги плиз, хороший скрипт)

Исправил. Пробуй

Автор: Infernus-pro 8.6.2008, 7:41

Все хорошо работает спасибо)

Автор: NikseR 18.11.2008, 16:16

Все супер! Интересны некоторые доработки автора в плане оформления. Спасибо. Но остался все тот же недостаток - в топе почему-то не показывается, сколько лет юзер провел на хабе! Месяцы, дни, часы, минуты - есть, а годов нет. У нас, к примеру, юзер просидел на хабе 2 года с небольшим - да, в топе он первый, но не разобрать сколько он уже сидит - 1 год, 2 или 5 лет:

Цитата
1. 0 месяц(ев), 30 дней, 4 час(ов), 26 мин 2 м. 11/17/08 21:32:15 11/17/08 21:33:37 Бог Онлайна ---- Оффлайн ---- User1
2. 8 месяц(ев), 28 дней, 20 час(ов), 55 мин 0 м. 11/18/08 16:03:34 11/18/08 16:03:32 Бог Онлайна << Онлайн! >> User2

Вот и разбери, кто из них больше просидел :(

Автор: Wariner 18.11.2008, 20:45

Дело в этой функции

Код
MinutesToTime = function(iSeconds, bSmall)
    local T = os.date("!*t", tonumber(iSeconds*60));
    local sTime = string.format("%i месяц(ев), %i дней, %i час(ов), %i мин", T.month-1, T.day-1, T.hour, T.min)
    if bSmall then
        for i in string.gmatch(sTime, "%d+") do
            if tonumber(i) == 0 then sTime = string.gsub(sTime, "^"..i.."%s(%S+),%s", "") end
        end
    end
    return sTime
end

Видимо авторы скрипта не предполагали что кто-то может просидеть год...
Методом небольшого тыка лечится исправлением строчки
Код
local sTime = string.format("%i месяц(ев), %i дней, %i час(ов), %i мин", T.month-1, T.day-1, T.hour, T.min)

на
Код
    local sTime = string.format("%i год(лет), %i месяц(ев), %i дней, %i час(ов), %i мин", T.year-1970, T.month-1, T.day-1, T.hour, T.min)

Автор: NikseR 18.11.2008, 21:35

Wariner, спасибо дружище, теперь все как надо ))) Да я и сам, честно говоря, создавая 2 года назад хаб, не думал, что кто-то столько насидит big_smile1.gif
ЗЫ: Для полной красоты в таблице надо еще одно "\t" поставить перед Сессией, чтобы сдвинуть ее вправо. Т.е. должно вот так получиться:

Код
\t\t\t\tСессия

Автор: Blade 19.11.2008, 14:28

Помогите плз, у меня не запускается пишет
[16:27] Синтакс ...\Рабочий стол\ptokax\scripts\[NewAPI]TopHubber's.lua:6: attempt to index global 'SetMan' (a nil value)

Версия Ptokax 0.3.6.0

Автор: Setuper 19.11.2008, 14:37

этот скрипт под новые версии PtokaX, а у тебя старая. Качай новую версию отсюда: http://mydc.ru/r/?http://www.ptokax.org

Автор: Blade 19.11.2008, 14:43

Цитата(Setuper @ 19.11.2008, 16:37) *
этот скрипт под новые версии PtokaX, а у тебя старая. Качай новую версию отсюда: http://mydc.ru/r/?http://www.ptokax.org


Спасибо за ответ.
А нет ли похожего скрипта для моей версии? Дело в том что у меня уже настроена прога, диапазоны ip и т.д. Поэтому не хотелось бы менять на новую версию и все настраивать заново.

Автор: eXrnd 19.11.2008, 16:43

Спасибо, отредактировал и поставил себе big_smile.gif

Автор: Wariner 19.11.2008, 21:41

Цитата(Blade @ 19.11.2008, 14:43) *
А нет ли похожего скрипта для моей версии? Дело в том что у меня уже настроена прога, диапазоны ip и т.д. Поэтому не хотелось бы менять на новую версию и все настраивать заново.

Качаем из первого поста.

Автор: Blade 20.11.2008, 0:13

К сожалению не работает. Может дело в том что у меня на хабе нет регистрации по никам?
У меня в птоке выходит это
[02:12] Синтакс ...Рабочий стол\ptokax\scripts\TopHubbers_2.01_API1.lua:247: 'string.gfind' was renamed to 'string.gmatch'

Автор: Setuper 20.11.2008, 1:53

хехе... дело в языке LUA.
переходим на версию PtokaX хотя бы 0.3.6.0, которая работает на lua 5.1, версии ниже 0.3.6.0 работают на lua 5.0 или даже 4.0, под данные версии уже давно не пишутся скрипты, то есть вы сидите на старье big_smile.gif

Автор: Blade 20.11.2008, 12:32

Цитата(Setuper @ 20.11.2008, 3:53) *
хехе... дело в языке LUA.
переходим на версию PtokaX хотя бы 0.3.6.0, которая работает на lua 5.1, версии ниже 0.3.6.0 работают на lua 5.0 или даже 4.0, под данные версии уже давно не пишутся скрипты, то есть вы сидите на старье big_smile.gif



У меня версия 0.3.6.0 а lua 5.1.2 написано.



Установил новую версию Ptokax, теперь все работает. Спасибо всем за помощь!

Автор: Blade 21.11.2008, 17:53

Появилась следующая проблема:

У меня моргнул свет и комп перезагрузился, затем включаю хаб а рейтинги у всех сбились, т.е. у меня было 15 часов online а стало 3. Почему он не сохраняет статистику? Как можно сделать чтобы он ее сохранял?

Автор: Sephiroth_Lukaw 21.11.2008, 19:32

Он её держит в памяти, а сохраняет только при отключении скрипта. Естественно отключение PC собъёт статистику(хотя, при резком его отключении много чего может сбиться, так что лучше иметь бесперебойник), как вариант делать сохранение раз в n минут - по таймеру.
Для API2 такой код вставь:

Код
function OnStartup()
TmrMan.AddTimer(240000)
end
function OnTimer()
local hFile = io.open(tSettings.fOnline, "w+") Serialize(tOnline, "tOnline", hFile); hFile:close()
end
поправьте меня, если что.

Автор: Strannik 27.11.2008, 0:34

Со всеми изменениями под API 2

 _NewAPI_TopHubber__s.rar ( 3.87 килобайт ) : 95
 

Автор: emk HABICH 35 9.8.2009, 20:17

Всё отлично но скажите как сделать чтобы не в лс а в главный чат отсылалось и видно было тока тому кто дал запрос


Автор: truth 20.10.2009, 22:28

Стянул архив, который любезно предоставил Strannik. Но все равно временное сохранение не работает, вроде.

Цитата
Появилась следующая проблема:

У меня моргнул свет и комп перезагрузился, затем включаю хаб а рейтинги у всех сбились, т.е. у меня было 15 часов online а стало 3. Почему он не сохраняет статистику? Как можно сделать чтобы он ее сохранял?

Такая же проблема. Проверьте пожалуйста скрипт.. может где ошибка..
TmrMan.AddTimer(240000) - это время, через которое данные сохраняются?

Автор: m3gap1x3L 23.11.2009, 12:47

А можно сделать так , чтобы он
[
============================================================
<<< Статистика >>>
============================================================
» Ник пользователя: m3gap1x3L
» Общее время на хабе: 1 мин
» Прогноз онлайна* на неделю: 7 мин
» Среднее время на хабе в сутки: 1 мин
» Текущий ранг: Заглянувший

* Администрация хаба не несёт ответственности
за несбывшиеся прогнозы онлайна. «TopHubber's» v. 2.9a
* Статистика обновляется ежеминутно.
============================================================

эту инфу показывал при входе на хаб юзера ?

Кто может сразу сделать готовый скрипт , выкладывайте тут .

Автор: Wariner 23.11.2009, 14:34

попробуй изменить это

Код
        else
            tOnline[user.sNick] = { Julian = os.time(os.date("!*t")), Enter = os.date(), SessionTime = 0, TotalTime = 0, Leave = os.date() }
        end
    end

на это
Код
        else
            tOnline[user.sNick] = { Julian = os.time(os.date("!*t")), Enter = os.date(), SessionTime = 0, TotalTime = 0, Leave = os.date() }
        end
        BuildStats(user, user.sNick)
    end