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

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

MyDC.ru _ Сетевые скрипты [PtokaX] _ StatPX Lite

Автор: alex82 8.9.2010, 5:18

StatPX Lite

Версия: 1.01 beta
Версия API: API2
Системные требования:
PtokaX 0.4.x.x, Lua 5.1
База данных IP-To-Country
Библиотека Lua-GD ( http://mydc.ru/topic2356.html )
Веб-сервер (напр. Apache)

Автор: alex82

Описание: Скрипт представляет собой переделанный и дополненный StatPX. Основные отличия от оригинала:
* удалена база данных юзеров (со всеми вытекающими отсюда последствиями - топ хабберов и статистика посещаемости также пошли под нож)
* добавлено отображение страны юзера в списках
* добавлен топ стран
* тобавлен топ юзеров по количеству сообщений в чате


Возможности скрипта:

Статистика хаба:
учёт рекордов по размеру шары и количеству пользователей
* топ пользователей по размеру шары
* топ стран
* топ пользователей по количеству сообщений в главном чате

Web-статистика:
* топик хаба
* общая статистика хаба - время непрерывной работы, количество пользователей, общий размер шары, рекорды по размеру шары и количеству пользователей, количество забаненных пользователей
* ограничения хаба - минимальная шара, минимум слотов, и.т.д
* лог главного чата с поддержкой смайлов
* список пользователей онлайн
* топ пользователей по размеру шары
* топ пользователей по количеству сообщений в главном чате
* список забаненных пользователей
* список заглушек скрипта GagMe ( http://mydc.ru/topic1627.html )
* поддержка скинов

Скриншоты
http://mydc.ru/r/?http://fastpic.ru/view/9/2010/0908/b0f9fd434f21e31d197a08bba590f651.png.html http://mydc.ru/r/?http://fastpic.ru/view/9/2010/0908/67cbc046567e3eda5e97372542268cd6.png.html http://mydc.ru/r/?http://fastpic.ru/view/9/2010/0908/9123c7f5daa38bbec87e7279fa3b9866.png.html http://mydc.ru/r/?http://fastpic.ru/view/9/2010/0908/1eb885df691f3a56b4aec9598595ab7a.png.html http://mydc.ru/r/?http://fastpic.ru/view/9/2010/0908/44ef745823c8179ebb4c7eed7918bb0e.png.html http://mydc.ru/r/?http://fastpic.ru/view/9/2010/0908/b0cde76a05b603372b02158166baf6fd.png.html http://mydc.ru/r/?http://fastpic.ru/view/9/2010/0908/bc5ce01ee4ce846f53d8df8c5f834136.png.htmlhttp://mydc.ru/r/?http://fastpic.ru/view/9/2010/0908/1baa840bd6f806521d4a0e146f512ca2.png.html


Скачать:
 StatPX_Lite_1.01_beta.rar ( 36.4 килобайт ) : 744

Старые версии
 StatPX_Lite_1.00_beta2.rar ( 34.34 килобайт ) : 135


Флаги стран:
 flags.rar ( 260.78 килобайт ) : 345


Смайлы:
 smiles.rar ( 8.91 килобайт ) : 294

Автор: alex82 8.9.2010, 5:23

Часто задаваемые вопросы

Вопрос: Зачем было удалять базу данных пользователей? Кому она мешала?
Ответ: Это сделано для того, чтобы сделать возможной работу скрипта на крупных инет-хабах - из-за засорения БД динамическими IP-адресами, StatPX становился неработоспособным уже через несколько дней использования. Данный скрипт лишен этого недостатка.

Вопрос: В какую папку надо положить папки со смайлами и флагами чтобы они отображались на сайте?
Ответ: В ту же папку, в которую сохраняются сгенерированные html-страницы

Вопрос: Как сделать так, чтобы страницы статистики могли видеть юзеры из сети?
Ответ: Для этого необходимо установить веб-сервер (например Apache), и указать в качестве пути сохранения страниц корневую директорию веб-сервера

Вопрос: Как заставить работать пункт "Последний зарегистрировавшийся юзер" на главной странице?
Ответ: Для этого необходимо добавить в скрипт регистрации код, записывающий ник зарегистрировавшегося юзера в файл lastreg.txt, находящийся в папке StatPX_Lite. Код должен выглядеть примерно так:
Код
        local lastreg = io.open(Core.GetPtokaXPath().."scripts/StatPX_Lite/lastreg.txt","w")
        if lastreg then
            lastreg:write(user.sNick)
            lastreg:close()
        end
К примеру, в скрипт Registrator этот код нужно добавить сразу после строк:
Код
        if tCfg.ShowToAll then
            ToAll("Поприветствуем нового зарегистрировавшегося участника - "..user.sNick.."!")
        end

Скины

pixabella green
Автор стиля: pixabella
Адаптация для StatPX: alex82
http://mydc.ru/r/?http://fastpic.ru/view/9/2010/0909/a0024dd2c2959a6270144e9e23ece3ae.jpg.html http://mydc.ru/r/?http://fastpic.ru/view/9/2010/0909/4e67b4b79b2caf9da62c8faa16c7d7be.jpg.html http://mydc.ru/r/?http://fastpic.ru/view/9/2010/0909/ed678f8fd2783212f0fa505e233c99d0.jpg.html http://mydc.ru/r/?http://fastpic.ru/view/9/2010/0909/727660daed7bd6e1a7c58766d25680f5.jpg.html http://mydc.ru/r/?http://fastpic.ru/view/9/2010/0909/fb9f21efa7aaa85d3ea2d8f26e661779.jpg.html http://mydc.ru/r/?http://fastpic.ru/view/9/2010/0909/fbdbecd96cf8c640258758a21a352f71.jpg.html http://mydc.ru/r/?http://fastpic.ru/view/9/2010/0909/c908cdbebfa15efc5cfb1497ad21adf3.jpg.html http://mydc.ru/r/?http://fastpic.ru/view/9/2010/0909/a58ae70f7218f98a33d378373f2ff88a.jpg.html
 pixabella_green.rar ( 672.34 килобайт ) : 165


pixabella pink
Автор стиля: pixabella
Адаптация для StatPX: alex82
http://mydc.ru/r/?http://fastpic.ru/view/9/2010/0909/c8db2d7127af0c000aa1b3c1f2853a66.jpg.html http://mydc.ru/r/?http://fastpic.ru/view/9/2010/0909/13718368d58a99d60676337e2f0629ae.jpg.html http://mydc.ru/r/?http://fastpic.ru/view/9/2010/0909/21c3723ba346b4dcbf034777d93f4f6a.jpg.html http://mydc.ru/r/?http://fastpic.ru/view/9/2010/0909/4eb5a1cbf9586d8067ea6a8613790fcf.jpg.html http://mydc.ru/r/?http://fastpic.ru/view/9/2010/0909/9a1499e86fbc1c29239b044c660c4d7c.jpg.html http://mydc.ru/r/?http://fastpic.ru/view/9/2010/0909/880af3490ef934d7d85e598537d25eb3.jpg.html http://mydc.ru/r/?http://fastpic.ru/view/9/2010/0909/a6056e3fc83f4a7092651479a87c6ffe.jpg.html http://mydc.ru/r/?http://fastpic.ru/view/9/2010/0909/27905ff3fa2aa9f14913c052a4312c5d.jpg.html
 pixabella_pink.rar ( 735.29 килобайт ) : 48


Автор: Saymon 8.9.2010, 13:47

alex82, ммм, а как всётаки дело с запилкой под рус хаб? Не решился ещё?big_smile.gif

Автор: *FoxMalder* 8.9.2010, 14:33

из-за скрипта хаб лагает ужасно... хотя он и кушает всего 4мб но цп поднимается на 25% и сообщения доходят спустя 3-5 секунд

Автор: alex82 8.9.2010, 16:26

*FoxMalder*

Сколько юзеров на хабе?

Автор: Invisible 8.9.2010, 18:48

Уважаемый alex82. Огромное спасибо тебе за скрипт, но хотелось бы маленькую вещичку добавить. Рядом с Рангом чтобы отобразилось сколько сообщений отправленно. В данный момет выглядит вот так:

Цитата
Ваш ник: [NetRR]ArchAngel™
Ваш IP-адрес: 127.0.0.1
Профиль: Администратор
Чат-ранг: Младший лейтенант


а хотелось бы вот так:

Цитата
Ваш ник: [NetRR]ArchAngel™
Ваш IP-адрес: 127.0.0.1
Профиль: Администратор
Чат-ранг: Младший лейтенант (10262 сообщ.)

Автор: alex82 8.9.2010, 18:55

Invisible

Найди кусок кода:

Код
    {"%[RANK%]",[[
    result = result:gsub("%[RANK%]",tChatRank[user.sNick] and GetRank(tChatRank[user.sNick]) or "нет")]]},

После него добавь:
Код
    {"%[MESSAGES%]",[[
    result = result:gsub("%[MESSAGES%]",tChatRank[user.sNick] or 0)]]},

Теперь можно использовать переменную [MESSAGES] в сообщении дня

Автор: *FoxMalder* 8.9.2010, 21:09

Цитата(alex82 @ 8.9.2010, 17:26) *
*FoxMalder*

Сколько юзеров на хабе?

на тот момент было где то 1600-1800 юзеров

Автор: alex82 8.9.2010, 21:54

*FoxMalder*

Покрути эти опции:


Код
    ForceUpdate = 10, -- Количество отключений/подключений пользователей, после которого будет произведено внеочередное обновление статистики

Код
    CountryStatsUpdate = 10,    -- Число подключений, по достижении которого будет обновлен топ стран. Рекомендуется увеличить значение параметра на хабах с онлайном более 1000


Поставь около 50 в обеих.

Автор: alex82 9.9.2010, 17:18

Выложил 2 скина. Подробности во втором посте.

Автор: Error404 9.9.2010, 23:43

[00:42] Синтаксис C:\Server\HUBServer\scripts\config.lua:16: attempt to concatenate global 'path' (a nil value) как это исправить

Автор: mariner 10.9.2010, 0:15

А ты в config.lua задал переменную path?

Автор: alex82 10.9.2010, 4:18

Error404

Даже представляю, куда могла деться переменная, обьявленная в самом начале скрипта. amazing.gif
Может ты сам ее удалил? Или пытаешься подсунуть птоке файл конфигурации отдельно от скрипта?

Цитата(mariner @ 10.9.2010, 0:15) *
А ты в config.lua задал переменную path?
Она задается глобально в StatPX_Lite.lua


Доступна версия 1.00 beta2. Изменения:

* Исправлена ошибка в функции перезагрузки шаблонов
* Добавлена возможность использовать в сообщении дня переменной [MESSAGES], отвечающей за количество сообщений текущего юзера.
* Удален отладочный код, приводящий к периодическому получению сообщения об ошибке "Ошибка StatPX Lite: upd"
* Удалены неиспользуемые настройки, оставшиеся от StatPX
* Незначительные исправления скина Default
* Добавлен скин Simple
* Более оптимальные настройки по умолчанию

Автор: Ksan 10.9.2010, 10:16

Наверно, лучше было бы в строке 267 (StatPX_Lite.lua):

Код
tHubStat.Start = os.time(T)
вместо остайм (время включения скрипта) прописать время первого запуска хаба (это ведь обычно не сопадающие даты), у меня, например, хаб работает уже 5-й год, а при запуске скрипта и далее он будет как будто только-только родился.
У меня эта строка выглядит так:
Код
tHubStat.Start = 1157432400
Но если ты согласен с моим предложением, то, наверно, стоит и подумать над механизмом ввода этого времени в удобоваримом для простого админа виде (либо внести в меню команду для калькуляции). Представляю себе и 2 варианта по выбору при запуске: считать время работы хаба с этого момента или внести (подсчитать) более корректное и древнЕе.

Автор: Error404 10.9.2010, 12:15

проста не так распаковал вот и не хватает файлов теперь мне нормально все рботает спасибо за скрипт

Автор: alex82 10.9.2010, 16:08

Ksan

Вообще-то время запуска хаба устанавливается в строке 36, и только при первом запуске:

Код
    if not tHubStat.Start then tHubStat.Start = os.time() end

А 267 строка - это и есть та самая функция установки времени запуска в "удобоваримом" формате.
http://mydc.ru/r/?http://fastpic.ru/view/9/2010/0910/d04b717b5b975dc5092c7fad2da60d1f.jpg.htmlhttp://mydc.ru/r/?http://fastpic.ru/view/9/2010/0910/e5d020cfd2db9c4fbfbe10d1398c0c79.jpg.html

В связи с этим у меня предложение: давайте будем хоть немного вникать в суть прежде чем писать сообщения.

И еще. Давайте не будем устанавливать километровые подписи.

Автор: Ksan 11.9.2010, 0:09

1. Уговорил, уже сделано, я не заметил. Но можно про это сказать и попроще, без тыкания в глаза. Я ведь всего лишь старался помочь улучшить и не трогал твои амбиции.
2. Что до подписи - что тебе там не нравится? текст или картинка? Текстовая часть маленькая, и ей уже сто лет в субботу, а картинку (хаб-бар) я добавил только за 5 минут до предыдущего сообщения, причем, она из набора, предложенного тобой в скрипте HubBanner. Если считаешь слишком большим, зачем было давать такую? И ещё - эту картинку сам не вижу в подписи, оценить её не могу в комплексе (сижу за натом, потому, может..картинка на моём компе).
Ладно, сменил на узкую. Хотя все равно не вижу. Да и фиг с ней..

Автор: Alexey 11.9.2010, 1:15

Цитата(Ksan @ 11.9.2010, 1:09) *
Если считаешь слишком большим, зачем было давать такую? И ещё - эту картинку сам не вижу в подписи, оценить её не могу в комплексе (сижу за натом, потому, может..картинка на моём компе).

А фоновую картинку с надписью "sample", которая была в образце, заменить нечем?

Цитата(Ksan @ 11.9.2010, 1:09) *
Ладно, сменил на узкую. Хотя все равно не вижу. Да и фиг с ней..

По-прежнему широкую вижу.

Автор: Ksan 11.9.2010, 1:54

Я выбрал картинку, которая с названием моего хаба. Почему тут Сэмпл, не знаю. Да, там есть пара картинок с сэмплом, но была с названием хаба, которую я и выбирал.
Фиг знает как, но второй раз я опять сунул предыдущую картинку, оказывается. Тем не менее, тема сэмпла меня удручает, ибо я вижу название хаба.
Вот снова поставил уж точно другую. big_smile.gif Узкая полоска. Название - ub_ft.png

Автор: Saymon 11.9.2010, 14:15

alex82, а как идея добавить статистику основное клиенты используемые пользователями? big_smile.gif
Так же интересно как добавить в вэб стату после
Последний зарегистрировавшийся пользователь: ***.

Лидер рейтинга топа шары (ник, шара)
Лидер рэйтинга чат ранга (ник, число сообщений)

И можно добавить в мотд тоже самое
Последний зарегистрировавшийся пользователь: ***.
Лидер рейтинга топа шары (ник, шара)
Лидер рэйтинга чат ранга (ник, число сообщений)

Автор: alex82 11.9.2010, 18:42

Saymon
Открываем Raw.lua, находим:

Код
        local f = io.open (tWebFiles.TopShare , "w")
перед этим добавляем:
Код
        if tCopy[1] then sTopShare = tCopy[1].Name.." ("..FormatSize(tCopy[1].Share)..")" end

Открываем Web.lua, находим:
Код
                :gsub("%[BANNED%]",sBanned)
после чего добавляем
Код
                :gsub("%[TOPSHARE%]",sTopShare or "?")
                :gsub("%[TOPCHAT%]",tCountryStats and tCountryStats[1] and tCountryStats[1][1].." ("..tCountryStats[1][1].." сообщ.)" or "?")

И заменяем:
Код
    WebstatUpdateTime=FormatDate2(os.time())
    BuildMainStat(user)
    BuildOnline()
на
Код
    WebstatUpdateTime=FormatDate2(os.time())
    BuildOnline()
    BuildMainStat(user)

PS. Работоспособность не проверял.
PPS. Для сообщения дня напишу чуть позже

Автор: Saymon 11.9.2010, 19:14

alex82, Спасибо. Пока ещё не добавил в код, то что ты написал, но при просмотре общей статистики через меню вышло

[20:12] Синтаксис ...r\ptokax0.4.1.1\scripts\StatPX_Lite.lua:226: attempt to call global 'UpdateUserStats' (a nil value)

Автор: Ksan 12.9.2010, 15:27

При отлюченной веб-статистике скрипт падает, когда запрашиваешь общую статистику через меню хаба.
[19:07:09] <StatPX_Lite> Ошибка: /home/p2phub/PtokaX/scripts/StatPX_Lite.lua:226: attempt to call global 'UpdateUserStats' (a nil value)

Там обращение к несуществующей функции (возможно, она задумывалась, но не дописалась). Вот участок кода:

Код
tCmdFunc = {
    [tCmd.MainStat] = {"Stats",function(user,data)
        if not(tWebCfg.Enable) then
            UpdateUserStats()
        end

Закомментил строку с вызовом функции UpdateUserStats() - общую статистику в личку выдает и не падает, но не знаю, насколько она свежая. (Upd: свежую выдаёт, только что проверил)
Веб-статистику отключил, так как пока нет связи с сисадмином удаленного сервера, чтоб обговорить насчет веба.

Автор: alex82 12.9.2010, 18:18

Saymon, Ksan

Это мусор, оставшийся от StatPX.

Правильным будет удалить эти строки:

Код
        if not(tWebCfg.Enable) then
            UpdateUserStats()
        end

Автор: Saymon 13.9.2010, 2:20

Лидер рейтинга чат ранга: RU (RU сообщ.).

Код
:gsub("%[TOPCHAT%]",tCountryStats and tCountryStats[1] and tCountryStats[1][1].." ("..tCountryStats[1][1].." сообщ.)" or "?")

а лидер чата как?big_smile.gif)

Автор: alex82 13.9.2010, 18:44

Мдя, и в самом деле, фигню сморозил. extreme_sexy_girl.gif

Ладно, теперь серьезно. Находим в Raw.lua:

Код
    local f = io.open (tWebFiles.ChatRank, "w")
перед этим добавляем:
Код
if tTemp[1] then sTopChat = tTemp[1][1].." ("..tTemp[1][2].." сообщ.)" end
Теперь вместо той фигни, что ты процитировал, пишем:
Код
:gsub("%[TOPCHAT%]",sTopChat or "?")

Автор: goncharov08 15.9.2010, 16:42

как и где добавлять страны? а то у меня Россию вообще не видет"пишит Местоположение Не известно "

Автор: Saymon 17.9.2010, 22:03

В какой-то из версий StatPX делал сохранение числа юзеров и шары хаба в текстовый файл, дабы потом вытянуть в пхп.
Не подскажешь как тут сделать сохранение общего числа юзеров и шары в отдельный текстовик?big_smile.gif

Автор: alex82 18.9.2010, 6:20

Saymon

Шаблон shortstat.tpl. Переменные те же, что и в mainstat.tpl, за исключением ограничений хаба. И не забудь включить его в настройках скина.

Автор: Saymon 18.9.2010, 10:05

alex82, так совсем не то что нужно.

Автор: alex82 18.9.2010, 13:04

Saymon

Ну так обьясни подробнее, что нужно.

Автор: Saymon 18.9.2010, 13:16

alex82,
Вообщем, по таймеру, которому происходит обновление общей статистики нужно сделать сохранение в отдельный текстовый файл простого кода например

Код
<a href="/hubstat/stat.php">Хаб <font color="red">( (число_юзеров, шара ТБ...) )</font></a>

Ну соответственно показать число юзеров и шару. Причём, текстовый файл по идее должет быть в совсем другой дериктории, не в той, в которую сохраняются сгенерированные страницы. Потом как бы выводить информацию из этого текстовика средствами пхп на страничку другова сайта.

Вот это самое я помню ты говорил как делать в какой-то из версий StatPX. Сейчас не могу вспомнить.

Автор: alex82 18.9.2010, 13:26

Напиши в shortstat.tpl:

Код
<a href="/hubstat/stat.php">Хаб <font color="red">( (Юзеров: [TOTALUSERS], шара: [TOTALSHARE]) )</font></a>
Потом в настройках скина включи страницу краткой статистики:
Код
    ShortStat = y,    -- Генерировать страницу краткой статистики для размещения на главной странице сайта (шаблон shortstat.tpl)
Потом пропиши абсолютный путь и имя файла в переменной tWebFiles.ShortStat.

PS. Принцип работы краткой статистики был таким изначально, так что это актуально для любой версии.

Автор: Saymon 18.9.2010, 13:43

alex82, Спасибо, и так попробую. Помучавшись с фтп нашёл таки бекап StatPX в котором делали несколько по другому. Сейчас думал тоже сделать что-то подобное.
Привожу пример костыля:

Раскрывающийся текст
Код
--###################################################################################
--ФУНКЦИИ WEB-СТАТИСТИКИ

function BuildWebStat(user)
    WebstatUpdateTime=FormatDate(os.time(os.date("*t")))
    if ScriptStopped then
        WebstatUpdateTime=WebstatUpdateTime.." (скрипт остановлен)"
    end
    BuildDailyUsers()
    BuildMainStat(user)
--    --Добавление инфы Общий объем 494.322 GB и Пользователей: 6 на главную страничку сайта на сайт в нужное место вставляем <?php echo file_get_contents("D:/htdocs/dc/userbaza/dat.txt") ?>
        local f = io.open("D:/Direct Connect/DC Server/CooLHuB_Server/scripts/StatPX/dat.txt","w")
    if f then
        f:write("<div class=\"top_info\" style=\"margin-top:50px;\"><H3><font color=\"green\"><b>Сейчас на хабе около <span>"..Core.GetUsersCount().." пользователей онлайн</b></span> Из них операторов "..#Core.GetOnlineOps().."<br /> Общий обьём шары около <font color=\"green\">"..GetNormalShare(Core.GetCurrentSharedSize()).."</font></div>")
        f:close()
    end
    ---
    BuildOnline()
    BuildBans()

Исходя из этого думаю сам дальше разберусь big_smile.gif Спасибо ещё раз.


Вообщем сделал себе big_smile.gif
Раскрывающийся текст
Код
function BuildWebStat(user)
    WebstatUpdateTime=FormatDate2(os.time())
    local f = io.open("D:/htdocs/magnet.portal/linkstat.txt","w")
    if f then
        f:write("Хаб <font color=\"red\">("..Core.GetUsersCount().." / "..GetNormalShare(Core.GetCurrentSharedSize())..")</font></a>")
        f:close()
    end
    local s = io.open("D:/htdocs/magnet.portal/linkstat_title.txt","w")
    if s then
        s:write("Сейчас на нашем хабе около "..Core.GetUsersCount().." пользователей онлайн. Общий размер шары хаба составляет около "..GetNormalShare(Core.GetCurrentSharedSize()).."")
        s:close()
    end
    BuildOnline()
    BuildMainStat(user)
    if tWebCfg.ChatRank then
        BuildChatRank()
    end

Автор: dka 20.9.2010, 9:41

Ребят помогите, короче не знаю в каком файле прописать чтобы на сервер сохранялись страницы статы.
Спасибо, разобрался просто забыл что и где менять

Автор: dka 21.9.2010, 11:45

Уважаемый автор скрипта никак не могу понять что нужно изменить в настройках, чтобы на веб-странице отображалось больше пользователей которые пишут в чат(чатранг) подскажите пожалуйста

Автор: Saymon 21.9.2010, 11:49

очевидно config.lua

Код
ChatRank = y,    -- Включить топ пользователей по числу сообщений в чате (чат-ранг)


Код
    ChatRank = {    -- Профили, участвующие в чат-ранге.
        [0] = y,    -- Master
        [1] = y,    -- Operator
        [2] = y,    -- VIP
        [3] = y,    -- Reg
        [4] = y,
        [5] = y,
        [-1] = y,    -- Unreg
    },

Автор: dka 21.9.2010, 12:06

Спасибо помогло big_smile.gif

Автор: TROJAN 27.9.2010, 18:28

123

Автор: alex82 27.9.2010, 18:51

Скины будут работать на любом вебсервере, способном раздавать файлы в сеть. bad_smile.gif

Автор: Ksan 29.9.2010, 20:57

У меня в странице общей статистики хаба пишется про последнего зарегенного юзера, но там всегда вместо юзера вопросительный знак. Поискал, откуда что берется, нашёл только в файле mainstat.tpl вот этот параметр, которым обозначается ник последнего зарегенного юзера - [TEXTFILE_lastreg]
И всё. Откуда это берется, не смог найти. Похоже, это тоже остаток от урезания скрипта.
Хотелось бы в таком случае как-то закомментить эту строку воообще, но не знаю, как в этом файле комментить (не знаю нужного символа)..

Автор: Saymon 29.9.2010, 21:12

Если оно не нужно - удали из mainstat.tpl
Если же нужно - прочитай 2 пост

Автор: alex82 30.9.2010, 5:46

Это не остаток урезания, а результат добавления.

Прочитать FAQ гордость не позволяет?

Автор: Ksan 30.9.2010, 12:30

Я читал ФАК, но давно, тогда эта проблема (с последним регенным) не была актуальна, потому не запомнил.
И не надо хамить, авторство и мастерство не дают тебе права так вести себя!

Автор: dka 7.10.2010, 10:09

у меня проблема с обновлением веб-странице лога главного чата. пробывал перезапустить как сервер так и скрипт в птоке но результата нет. в чем может быть проблема, остальные страницы нормально регенирируются.

Автор: Saymon 7.10.2010, 10:19

config.lua

Код
ChatLog = y,    -- Включение лога чата (y - включено, n - отключено).
    ChatUpdate = 1,    -- Время обновления лога главного чата, в минутах.
    ChatSize = 30,    -- Число сообщений в веб-логе чата.

Автор: dka 7.10.2010, 10:31

В скрипте ничего не менял. так и стоит

Автор: Ksan 7.10.2010, 16:59

Лог главного чата обновляется только при появлении сообщений.
Если что-то писали и не появилось в логе, значит, по каким-то условиям сообщение не попало туда...например, это была команда.

Автор: dka 8.10.2010, 7:07

Так раньше все нормально было, и в основном общение у меня идет, а не команды.

Автор: Saymon 8.10.2010, 16:53

dka, Ну тогда можно подумать, что ты что-то где-то ковырял и допустил ошибку. Рассказывай. big_smile.gif


Автор: dka 12.10.2010, 16:18

Спасибо всем кто помог, решили мне проблему

Автор: TROJAN 12.10.2010, 20:35

123

Автор: Saymon 12.10.2010, 20:58

Второй пост или гугл, а далее нотепад.

Автор: alex82 13.10.2010, 4:39

Могу адаптировать для StatPX любой шаблон web-сайта. Но возьмусь за это только в том случае, если шаблон мне понравится, и будет валидно сверстан.

Автор: alex82 24.10.2010, 15:38

Доступна версия 1.01 beta

Изменения:

Исправлено отображение символов $ и | в веб-логе чата
Добавлена возможность отправки сгенерированных страниц на удаленный FTP-сервер
Переписаны некоторые функции (обработка команд, отправка меню)
Исправлена ошибка, приводящая к увеличению числа сообщений в графиках главного чата при отправке команд
В чат-лог добавлена фильтрация kick-сообщений
Исправлена ошибка, не позволявшая просматривать статистику хаба при отключенной веб-статистике
Исправлено определение адресов локальной сети при генерации некоторых страниц веб-статистики
Добавлена возможность изменения стиля ссылки на текущую страницу
Исправлено экранирование символов переноса строки в веб-логе чата
И еще много-много мелких изменений

Автор: LOPD 28.10.2010, 21:08

Ошибка StatPX_Lite.lua:206: attempt to call global 'GetChatRank' (a nil value) не понел в чём проблема вроде работал норм и тут ошибка.

Автор: alex82 28.10.2010, 21:28

Цитата(LOPD @ 28.10.2010, 21:08) *
Ошибка StatPX_Lite.lua:206: attempt to call global 'GetChatRank' (a nil value) не понел в чём проблема вроде работал норм и тут ошибка.
Заменяем в строке 206
Код
GetChatRank
на
Код
GetRank


Автор: b0g0m0l 6.11.2010, 20:13

а как можно эту статистику к dle прикрутить

Автор: DEN 007 25.11.2010, 15:18

Ручками, на уровне базы данных ни как( так как скрипт использует простые хтмл... если дле стоит на том же хосте что и хаб... то можно создать модуль (тобишь будет генерирвать луа скрипт) шаблончик немного проравить и переделать сохранение с хтмл в пхп. и будет тебе счастье.!

Автор: dka 29.11.2010, 12:46

Код
.../PtokaX/scripts/StatPX/Functions/Graph.lua:9: module 'gd' not found:                                                                                                              
        no field package.preload['gd']                                                                                                                                                                              
        no file '/home/jackm/PtokaX/libs/gd.lua'                                                                                                                                                  
        no file '/home/jackm/PtokaX/scripts/gd.lua'                                                                                                                                              
        no file '/home/jackm/PtokaX/scripts/libs/gd.lua'                                                                                                                                          
        no file './gd.lua'                                                                                                                                                                                          
        no file '/usr/local/share/lua/5.1/gd.lua'                                                                                                                                                                    
        no file '/usr/local/share/lua/5.1/gd/init.lua'                                                                                                                                                              
        no file '/usr/local/lib/lua/5.1/gd.lua'                                                                                                                                                                      
        no file '/usr/local/lib/lua/5.1/gd/init.lua'                                                                                                                                                                
        no file '/usr/share/lua/5.1/gd.lua'                                                                                                                                                                          
        no file '/usr/share/lua/5.1/gd/init.lua'                                                                                                                                                                    
        no file '/home/jackm/PtokaX/libs/gd.so'                                                                                                                                                  
        no file '/home/jackm/PtokaX/scripts/gd.so'                                                                                                                                                
        no file '/home/jackm/PtokaX/scripts/libs/gd.so'                                                                                                                                          
        no file './gd.so'                                                                                                                                                                                            
        no file '/usr/local/lib/lua/5.1/gd.so'                                                                                                                                                                      
        no file '/usr/lib/lua/5.1/gd.so'                                                                                                                                                                            
        no file '/usr/local/lib/lua/5.1/loadall.so'

операционка Gentoo в чем трабла и как решить??

Автор: ustas 29.11.2010, 13:40

нужен модуль

Цитата
Библиотека Lua-GD ( http://mydc.ru/topic2356.html )

Автор: Saymon 29.11.2010, 13:42

ustas, для никса это не то...

Автор: Alexey 29.11.2010, 13:49

В StatPX/config.lua измени значение переменной Graph на n.
Можно ещё коммент после объявления этой переменной почитать...

Автор: JackM 29.11.2010, 15:39

изменив "Graph на n" помогло, скрипт заработал, но хотелось бы полноценно
может кто поделится информацией как проще скомпилить lua-gd?

нашел альтернативу, установил с оверлея, теперь проблема в другом

- error loading module 'gd' from file '/home/jackm/PtokaX/libs/gd.so':
/home/jackm/PtokaX/libs/gd.so: неправильный класс ELF: ELFCLASS64

есть идеи?

Решение найдено. http://mydc.ru/topic4087.html?view=findpost&p=35228

Автор: ProGeTTo 30.12.2010, 14:04

Нашел глюку.
В стате по "Топ-стран" показывает только локалку, останьное помечает как "Не известно", как исправить?

Автор: mariner 30.12.2010, 14:18

поставить iptocountry в директорию птоки. Это такая база данных в которой есть привязка ip-диапазона к стране

Автор: Saymon 30.12.2010, 14:18

наверно установить базу IP-to-Country и перезапустить хаб

Автор: ProGeTTo 30.12.2010, 14:46

Цитата(mariner @ 30.12.2010, 15:18) *
поставить iptocountry в директорию птоки. Это такая база данных в которой есть привязка ip-диапазона к стране

а где её брать?
-------------------------
уже не надо, нашел. Спасибо.

Автор: Saymon 30.12.2010, 14:51

http://mydc.ru/r/?http://ip-to-country.webhosting.info/
закинь в cfg и перезапусти птоку...

Автор: -slava- 3.1.2011, 5:22

Подскажите пожалуйста как вырезать пункт Ограничения???

Автор: alex82 5.1.2011, 18:54

-slava-
Открыть mainstat.tpl, и убрать ненужное.

Автор: NoviX 21.1.2011, 18:37

а как его поставить? surrender.gif

Автор: viento 30.1.2011, 20:19

Цитата(alex82 @ 8.9.2010, 5:23) *
Вопрос: Как заставить работать пункт "Последний зарегистрировавшийся юзер" на главной странице?
Ответ: Для этого необходимо добавить в скрипт регистрации код, записывающий ник зарегистрировавшегося юзера в файл lastreg.txt, находящийся в папке StatPX_Lite. Код должен выглядеть примерно так:
Код
        local lastreg = io.open(Core.GetPtokaXPath().."scripts/StatPX_Lite/lastreg.txt","w")
        if lastreg then
            lastreg:write(user.sNick)
            lastreg:close()
        end
К примеру, в скрипт Registrator этот код нужно добавить сразу после строк:
Код
        if tCfg.ShowToAll then
            ToAll("Поприветствуем нового зарегистрировавшегося участника - "..user.sNick.."!")
        end

извините куда в этом вот скрипте это вставить?
Прячем большой код под спойлер или в codebox!
Код
--[[

    RegMe 1.0f LUA 5.11 [Strict][API 2]
    
    By Mutor    04/07/07
    
    Саморегистрация\Смена пароля
    
    RegMe Command Help

    Команды        Описание
    !rmhelp        Помощь
    !regme        Регистрация  
    !passwd        смена пароля  
    
    перевел и добавил функцию сообщения о новою юзере Mariner. Enjoy...
    
]]

--//--
-- Запретить поиск и передачу файлов для нерегистрированных юзеров? true = да/false = нет
local RegOnly = false
-- Запретить общий чат нерегистрированным юзерам? true = да/false = нет
local RegChat = false
-- Запретить приватные сообщения нерегистрированным юзерам? true = да/false = нет [приватные месэйджи операторам не блокируются]
local RegPms = false
-- Сообщать о входе нерегистрированных юзеров оператору? true = да/false = нет
local Report = false
-- Кто получает сообщения о нерегистрированных логинах и ошибках [только если report = true]
local OpNick = "evoll"
--//--


local Bot,Scp,Pfx = SetMan.GetString(21),"RegMe",SetMan.GetString(29):sub(1,1)
local Menu,SubMenu = SetMan.GetString(0),"Регистрация"
local BlockMsg = "\r\n\r\n\tUnregistered users may not chat, pm, search or transfer files in this hub.\r\n"..
"\tYou may pm operators for assistance. You may also self-register by typing.\r\n"..
"\t!regme <password> or use context menu commands [right click].\r\n\r\n"

UserConnected = function(user)
    SendCmds(user)
    if user.iProfile == -1 then
        if Report then
            OnError("Незарегестрированный юзер: "..user.sNick.." зашел на "..SetMan.GetString(0))
        end
        if RegOnly then
            return Core.SendToUser(user,"<"..Bot.."> "..BlockMsg..RegCmds["rmhelp"](user,data,cmd))
        end
    end
end
OpConnected,RegConnected = UserConnected,UserConnected

ChatArrival = function(user,data)
    local _,_,cmd = data:find("%b<> %p(%w+)")
    if cmd then
        cmd = cmd:lower()
        if cmd and RegCmds[cmd] then
            return Core.SendPmToUser(user,Bot,RegCmds[cmd](user,data,cmd)), true
        end
    else
        local _,_,to,from = string.find(data,"^$To: (%S+) From: (%S+)")
        if to and from then
            if RegPms and user.iProfile == -1 then
                local prof = Core.GetUser(to)
                if prof then
                    if not Core.GetUserValue(prof,11) then
                        return Core.SendPmToUser(user,to,"<"..Bot.."> "..BlockMsg),true
                    end
                else
                    return true
                end
            end
        else
            if RegChat and user.iProfile == -1 then
                return Core.SendToUser(user,"<"..Bot.."> "..BlockMsg),true
            end
        end
    end
end
ToArrival = ChatArrival

ConnectToMeArrival = function(user, data)
    if RegOnly and user.iProfile == -1 then
        local CtmMsg = "\t*Пожалуйста, удалите этот файл из очереди.*"
        return Core.SendToNick(user.sNick,"<"..Bot.."> "..BlockMsg..
        CtmMsg:gsub(" ",string.char(160)).."\r\n\r\n|"),true
    end
end
RevConnectToMeArrival = ConnectToMeArrival

SearchArrival = function (user, data)
    if RegOnly and user.iProfile == -1 then
        local SrMsg = "\t*Пожалуйста, закроте окно поиска.*"
        local _,_,search = string.find(data,"([^%?]+)|$")
        search = search or ""
        local res = "Незарегистрированный юзер"..string.char(92)..user.sNick..", поиск "..
        "отключен для тебя."..string.rep("\t",75)..search
        return Core.SendToUser(user,"$SR "..SetMan.GetString(21).." "..res.." 0 0/0"..
        SetMan.GetString(0).." ("..Core.GetHubIP()..":"..SetMan.GetString(4)..")"),
        Core.SendToUser(user,"<"..Bot.."> "..BlockMsg..
        SrMsg:gsub(" ",string.char(160)).."\r\n\r\n|"),true
    end
end

OnError = function(msg)
    local user = Core.GetUser(OpNick)
    if user then
        Core.SendToUser(user,"<"..Bot.."> "..msg)
    end
end

SendCmds = function(user)
    local Prof = "Unregistered User"
    if user.iProfile > -1 then
        Prof = ProfMan.GetProfile(user.iProfile).sProfileName
    end
    for i,v in pairs(RegCmds) do
        local desc,arg1,arg2 = RegCmds[i]()
        Core.SendToNick(user.sNick,"$UserCommand 1 1 "..SubMenu.."\\"..
        desc.."$<%[mynick]> "..Pfx..i..arg1.."|")
        Core.SendToNick(user.sNick,"$UserCommand 1 2 "..SubMenu.."\\"..
        desc.."$<%[mynick]> "..Pfx..i..arg2.."|")
    end
    Core.SendToUser(user,"<"..Bot.."> "..Prof.."'s "..Scp.." команды "..
    "включены. Для регистрации воспользуйтесь меню.")
end

FormatSize = function(int)
    local i,u,x = tonumber(int) or 0,{"","K","M","G","T","P"},1
    while i > 1024 do i,x = i/1024,x+1 end return string.format("%.2f %sB.",i,u[x])
end

RegCmds = {
    regme = function(user,data,cmd)
        if user then
            local nick = user.sNick
            if user.iProfile ~= -1 then
                return "Твой ник, "..nick..", уже зарегестрирован."
            elseif Core.GetUserAllData(user) then
                local _,_,pwd = data:find("%b<> %p%w+ (%S+)|$")
                if pwd then
                    if nick:find("[%c\$\|\<\>\:\?\*\"\/\\]") then
                        return "Ник содержит запрещенные символы. "..
                        "Пожалуйсто, введите другой."
                    end
                    if pwd:find("[%c\$\|\<\>\:\?\*\"\/\\]") then
                        return "Пароль содержит запрещенные символы. "..
                        "Пожалуйсто, введите другой."
                    end
                    local hub = SetMan.GetString(0)
                    local addy = SetMan.GetString(2)..":"..SetMan.GetString(3)
                    local share,ip = FormatSize(user.iShareSize),user.sIP
                    local slots = user.iSlots or 0
                    local mode = "Пассив"
                    if user.bActive then mode = "Актив" end
                    if user.sMode and user.sMode == "5" then mode = "Socks5" end
                    local opmsg = "\r\n\r\n\tЗарегистрировался новый юзер\r\n"..
                    "\tвот детали регистрации:\r\n"..
                    "\t"..string.rep("=",22).."\r\n"..
                    "\tНик:\t"..nick.."\r\n"..
                    "\tПароль:\t"..pwd:gsub(".","x").."\r\n"..
                    "\tШара:\t"..share.."\r\n"..
                    "\tIP:\t"..ip.."\r\n"..
                    "\tРежим работы:\t"..mode.."\r\n"..
                    "\tОткрыто слотов:\t"..slots.."\r\n"
                    RegMan.AddReg(nick, pwd, 3)
                    Core.SendToOps("<"..Bot.."> "..opmsg)
                    Core.SendToAll("<"..Bot.."> Поприветствуем нового зарегестрировавшегося пользователя "..nick.."!;)")
                    return "\r\n\r\n\tПриветствую. Вы удачно "..
                    "зарегистрировались.\r\n\t"..string.rep("=",40).."\r\n"..
                    "\tНазвание хаба:\t"..hub.."\r\n"..
                    "\tАдрес хаба:\t"..addy.."\r\n"..
                    "\tНик:\t"..nick.."\r\n"..
                    "\tПароль:\t"..pwd.."\r\n\r\n"..
                    "\t"..string.rep("=",40).."\r\n"..
                    "\tПожалуйста обратите внимание на эту информацию.\r\n"..
                    "\tПожалуйста перезайдите на хаб, чтобы активизировать ваш статус.\r\n"
                else
                    return "Ошибка! Использовать: "..Pfx..cmd.." <пароль>"
                end
            end
        else
            return "Зарегистрироваться"," %[line:Пароль]"," %[line:Пароль]"," <password>>"
        end
    end,
    passwd = function(user,data,cmd)
        if user then
            if user.iProfile == -1 then
                return "Твой ник, "..user.sNick..", не зарегестрирован."
            elseif Core.GetUserAllData(user) then
                local _,_,oldpass,newpass = data:find("%b<> %p%w+ (%S+) (.+)|$")
                if oldpass and newpass then
                    local pwd,prof = RegMan.GetReg(user.sNick).sPassword,user.iProfile
                    if pwd and prof then
                        if oldpass:lower() ~= pwd:lower() then
                            return "Неверный пароль. "..
                            "Попробуйте снова. [case insensitive]"
                        end
                        if newpass:find("[%c\$\|\<\>\:\?\*\"\/\\]") then
                            return "Пароль содержит запрещенные символы. "..
                            "Пожалуйста, введите другой."
                        end
                        if newpass:lower() == oldpass:lower() then
                            return "Вы не можете поменять пароль на такой же! "..
                            "Пожалуйста, введите другой."
                        end
                        RegMan.ChangeReg(user.sNick, newpass, prof)
                        return "Вы успешно сменили пароль с  "..
                        oldpass.." на "..newpass
                    end
                else
                    return "Ошибка! Использовать: ."..Pfx..cmd.." <старый пароль> <новый пароль>"
                end
            end
        else
            return "Сменить пароль"," %[line:Текущий пароль] %[line:Новый пароль]",
            " %[line:Текущий пароль] %[line:Новый пароль]"," <old password> <new password>"
        end
    end,
    rmhelp = function(user,data,cmd)
        if user then
            local reply = "\r\n\r\n\t"..Scp.." Help\r\n\r\n\tКоманды\t\tОписание\r\n"..
            "\t"..string.rep("=",40).."\r\n"
            for i,v in pairs(RegCmds) do
                local desc = RegCmds[i]()
                reply = reply.."\t"..Pfx..string.format("%-15s",i).."\t"..desc.."\r\n"
            end
            return reply.."\n\t"..string.rep("=",40).."\r\n\r\n"
        else
            return "Справка","",""
        end
    end,
    }

Автор: DEN 007 30.1.2011, 20:23

viento,
А зачем скрипт смены ника в статистеке?

Автор: viento 31.1.2011, 12:38

Цитата(DEN 007 @ 30.1.2011, 20:23) *
viento,
А зачем скрипт смены ника в статистеке?

какой есть. я в луа слабо секу) и свое чтото написать не могу а только лишь подправить и то не везде. да и лишние скрипты плодить тоже не охота. куда там вставить код чтобы это работало?

Автор: ProGeTTo 31.1.2011, 22:45

добавил новые звания в топ чатеров

звания
tRanks = { -- Звания чат-ранга. Звания должны добавляться от меньшего к большему
{1, "Новичек"},{20,"Начинающий"},{100,"Участник"},{200,"Бывалый"},{500,"Писака"},{1000,"Житель чата"},{2500, "Наследник"},{5000,"Местная гопота"},{7500,"Мэр чата"},{10000,"Президент чата"},{15000,"Бог чата"},
}

теперь при получении кем либо нового звания админам в чат выдает ошибку:
Код
[**:**:**] <[K.o.S]> Ошибка StatPX Lite: ... ХАБ\PtoKax 0.4.1.1\scripts\StatPX_Lite.lua:206: attempt to call global 'GetChatRank' (a nil value)

вот кусок скрипта, где он нашел какуюто неисправность:
тык
if (tAccess.ChatRank[user.iProfile] and ((tWebCfg.Enable and tWebCfg.ChatRank) or tCfg.ChatRank)) then
if tChatRank[user.sNick] then
tChatRank[user.sNick] = tChatRank[user.sNick]+1
else
tChatRank[user.sNick] = 1
end
if tCfg.ShowRecords and tData.ChatRankNum[tChatRank[user.sNick]] then
Core.SendToAll("<"..(SetMan.GetBool(18) and SetMan.GetString(21) or "Hub-Security").."> "..user.sNick.." набрал "..tChatRank[user.sNick].." сообщений и получает звание \""..GetChatRank(tChatRank[user.sNick]).."\".")
end
end

if (tWebCfg.Enable and tWebCfg.ChatLog) or MOTDChat then
local save = true
if #data > tCfg.ChatMax then save = false
else
local n = 1
for _ in data:gmatch("\n") do

возможно понял почему ({2500, "Наследник"} между 2500, и "Наследник" пробел, жду следующего получения звания для проверки
нет, дело не в этом, жду помощи

Автор: Nickolya 31.1.2011, 23:08

По всей видимости случайно попутно снесли функцию GetChatRank, о чем и говорит ошибка (попытка вызвать глобальную GetChatRank (нулевое значение)).
Попробуй вставь это в конец скрипта:

Код
function GetChatRank(num)
    for i = #tRanks, 1, -1 do
        if num >= tRanks[i][1] then
            return tRanks[i][2]
        end
    end
    return tRanks[1][2]
end

Автор: ProGeTTo 31.1.2011, 23:13

Цитата(Nickolya @ 1.2.2011, 0:08) *
По всей видимости случайно попутно снесли функцию GetChatRank, о чем и говорит ошибка (попытка вызвать глобальную GetChatRank (нулевое значение)).

extreme_sexy_girl.gif непомогло, в сам скрипт в конец самый втыкнул, 0 результата
Код
[23:11:45] <[K.o.S]> Ошибка StatPX Lite: ... ХАБ\PtoKax 0.4.1.1\scripts\StatPX_Lite.lua:631: attempt to get length of global 'tChatRanks' (a nil value)

даже попробывал обновить скрипт, выдрав его из 1-го поста, ничего не поменялось
Код
[23:17:22] <[K.o.S]> Ошибка StatPX Lite: ... ХАБ\PtoKax 0.4.1.1\scripts\гStatPX_Lite.lua:206: attempt to call global 'GetChatRank' (a nil value)

Автор: viento 1.2.2011, 20:09

ну а мне кто подскажет куда тот кусок скрипта впихнуть?

Автор: Saymon 1.2.2011, 20:17

viento, а тему кто прочитает?

Автор: STIVAN 21.3.2011, 12:57

Со скином "pixabella green" где написать правила пишет что в TEXTFILE_rules а где этот файл лежит ненайду

все ненад

Автор: CrazyKiller 7.6.2011, 22:25

Цитата(STIVAN @ 21.3.2011, 13:57) *
Со скином "pixabella green" где написать правила пишет что в TEXTFILE_rules а где этот файл лежит ненайду

все ненад


ну если нашол решение, подскажи другим ! big_smile.gif

Разобрался ! still_dreaming.gif

Спасибо Второй Пост, НАМЕК, смотрите на Код Последний Зарегистрированный ! big_smile.gif

Автор: CrazyKiller 9.6.2011, 18:34

Сделал Смайлы от FlyLinkDC++ для Лог главного чата !
Инструкция внутри !
Может кому пригодится !

 Smile_FlyLimkDC__.rar ( 432.36 килобайт ) : 25

Автор: CrazyKiller 10.6.2011, 23:11

Прикрутил значки на странички Онлайн и Топ Шаре !

Определяет Клиент программы DC++ и вставляет в столбик рядом с названием клиента и версии !

Кому нужен, вылажу описание как сделать ! big_smile.gif

Автор: Артём 11.6.2011, 0:56

CrazyKiller, ты выкладывай, а там уже сами решат, кому надо, а кому нет и скачают.

Автор: CrazyKiller 12.6.2011, 16:56

Иконки Клиентов рядом с названием Клиента+Версия !

На скине от pixabella green !

Примерный Скрин


Перед редактирование нужна удалить debug_Raw.lu


1)Скрипт Web.lua
Находим функцию ONLINE_START,ONLINE_END

в ней находим строку
Код
:gsub("%[CLIENT%]","\")\n\t\t\t\tf:write(tClients[tCopy[i].Client] and tClients[tCopy[i].Client] or tCopy[i].Client,\" \",tCopy[i].Version)\n\t\t\t\tf:write(\"")


и перед ней добавляем строку
Код
:gsub("%[DCTAGS%]","\")\n\t\t\t\tf:write(tClients[tCopy[i].Client] and tClients[tCopy[i].Client] or tCopy[i].Client)\n\t\t\t\tf:write(\"")



После всего сохраняем скрипт, и идём дальше !

2) Открываем файл online.tpl

Заменяем
это
Код
<th nowrap="nowrap">Клиент</th>

на это
Код
<th nowrap="nowrap" colspan="2">Клиент</th>


Добавляем перед строкой
Код
<td width="160" align="center" valign="middle" nowrap="nowrap">[CLIENT]</td>

вот это
Код
<td width="26" align="center" valign="middle" nowrap="nowrap"><img src="dctags/[DCTAGS].png" width="20" height="20" border="0" /></td>


Сохраняем !
Качаем Иконки Клиентов
 dctags.rar ( 68.95 килобайт ) : 29


помещаем в корень сайта StatPX Lite.

Запускаем Скрипт и радуемся ! big_smile.gif




Вопрос !
Кто подскажет как сделать чтоб на странице Online ?

определял Количество пользователей на хабе в нумерации, как в МаинСтате !

Типа вот такого !

Автор: Charodei1 13.6.2011, 0:41

удалено

Автор: CrazyKiller 13.6.2011, 22:09

Прикрутил страничку hublist от TinyHublist! ( Скин pixabella Green )
Скрипт hublist http://mydc.ru/topic4811.html?p=38554#entry38554

Примерный Скрин


Спасибо кускам строк Saymon'y !

1) Открываем tinyhublist.lua

и добавляем в начале скрипта !
Кусок Кода
Код
tSoftWare = {
    ["PtokaX"] = "<a href=\"http://www.ptokax.org\" target=\"_blank\" title=\"Перейти на домашную страницу\">PtokaX",
    ["RusHub"] = "<a href=\"http://rushub.org\" target=\"_blank\" title=\"Перейти на домашную страницу\">RusHub",
    ["YnHub"] = "<a href=\"http://ynhub.org/\" target=\"_blank\" title=\"Перейти на домашную страницу\">YnHub",
    ["VerliHub"] = "<a href=\"http://www.verlihub-project.org/doku.php?id=start\" target=\"_blank\" title=\"Перейти на домашную страницу\">VerliHub",
    ["Eximius"] = "<a href=\"http://eximius.rs2soft.nl/\" target=\"_blank\" title=\"Перейти на домашную страницу\">Eximius",
    ["HexHub"] = "<a href=\"http://nemesis.te-home.net/HeXHub/\" target=\"_blank\" title=\"Перейти на домашную страницу\">HexHub",
    ["FlexHubBeta 0.1"] = "<a href=\"http://www.flexhub.org/forum/\" target=\"_blank\" title=\"Перейти на домашную страницу\">FlexHub",
}
tSofticon = {
    ["PtokaX"] = "<img src=\"/soft_img/ptokax.png\"",
    ["RusHub"] = "<img src=\"/soft_img/rushub.png\"",
    ["YnHub"] = "<img src=\"/soft_img/ynhub.png\"",
    ["VerliHub"] = "<img src=\"/soft_img/verlihub.png\"",
    ["Eximius"] = "<img src=\"/soft_img/eximius.png\"",
    ["HexHub"] = "<img src=\"/soft_img/hexhub.png\"",
    ["FlexHubBeta 0.1"] = "<img src=\"/soft_img/flexhub.png\"",
}


Находим
Код
:gsub("{ROWSTYLE}",even and "even" or "odd")

меняем на
Код
:gsub("{ROWSTYLE}",even and "stat-row1" or "stat-row2")


После куска кода
Код
:gsub("{FLAG}",v.Country == "??" and "unknown" or v.Country:lower())

Добавляем 2 куска кода
Код
:gsub("{HUBICON}",(tSofticon[v.Info.HubSoft]   or (v.Info.HubSoft and v.Info.HubSoft or "n/a")))
:gsub("{HUBSOFT}",(tSoftWare[v.Info.HubSoft]   or (v.Info.HubSoft and v.Info.HubSoft or "n/a")))

Примерно должен быть так !
Примерный КОД
Код
                        :gsub("{ROWSTYLE}",even and "stat-row1" or "stat-row2")
                        :gsub("{STATE}",v.Info.Online and "online" or "offline")
                        :gsub("{STATE_STRING}",v.Info.Online and "Онлайн" or "Оффлайн")
                        :gsub("{DESCRIPTION}",v.Info.Descr and v.Info.Descr:htmlescape():gsub("%%","%%%%") or "")
                        :gsub("{NAME}",v.Info.Name and v.Info.Name:htmlescape():gsub("%%","%%%%") or v.Addr)
                        :gsub("{ADDRESS}",v.Addr)
                        :gsub("{USERS}",v.Info.Users or "?")
                        :gsub("{SHARE}",v.Info.Share and FormatSize(tonumber(v.Info.Share),true) or "?")
                        :gsub("{MAXUSERS}",v.Info.MaxUsers or "?")
                        :gsub("{MINSHARE}",v.Info.MinShare and (v.Info.MinShare > 0 and FormatSize(tonumber(v.Info.MinShare)) or "не ограничено") or "?")
                        :gsub("{MINSLOTS}",v.Info.MinSlots and (v.Info.MinSlots > 0 and v.Info.MinSlots or  "не ограничено") or "?")
                        :gsub("{MAXHUBS}",v.Info.MaxHubs and (v.Info.MaxHubs > 0 and v.Info.MaxHubs or  "не ограничено") or "?")
                        :gsub("{PINGDATE}",os.date("%H:%M:%S",v.Time))
                        :gsub("{PINGDATE_([^}]+)}",function(fstr) return os.date(fstr,v.Time) end)
                        :gsub("{COUNTRY_CODE}",v.Country)
                        :gsub("{COUNTRY}",tCountry[v.Country] or "Неизвестно")
                        :gsub("{FLAG}",v.Country == "??" and "unknown" or v.Country:lower())
                        :gsub("{HUBICON}",(tSofticon[v.Info.HubSoft]   or (v.Info.HubSoft and v.Info.HubSoft or "n/a")))
                        :gsub("{HUBSOFT}",(tSoftWare[v.Info.HubSoft]   or (v.Info.HubSoft and v.Info.HubSoft or "n/a")))


Сохраняем скрипт tinyhublist.lua
и качаем сам шаблон hublist
папку soft_img в корень сайта
файл hublist.tpl в папку шаблон TinyHublist
 DopHublist.rar ( 7.6 килобайт ) : 33


в конфиге TinyHublist
Название Темы
Код
Theme = "hublist"


ну почти все, осталось добавить строку в шаблоне StatPX Lite, header.tpl
Код
<li><a href="hublist.html?#34;>hublist</a></li>

Прошу сильно не бить, и не кричать, если что не так, луче подскажите, исправим вместе !

Автор: Pank1 31.8.2011, 7:30

Что за ошибка? [2011-08-31 11:59:53]: C:\PtokaX\hub\scripts\StatPX_Lite.lua:206: attempt to call global 'GetChatRank' (a nil value) Решение проблемы нашол в одном из постов...

Автор: laid18 18.9.2011, 23:45

Кто подскажет как в mainstat.tpl сделать вывод по типу вот такого онлайна

Администраторов: 1
Модераторов: 2
V.I.P: 171
Зарегистрированных: 1232
Гостей: 1960

Автор: reidel_viktor 1.10.2011, 6:37

Ребят сразу два вопроса:
1 - У меня стоит бот Hubbabot. Можно ли как нить сделать что бы в списке банов были баны именно из базы HubbaBot ?
2 - Местоположение пользователей, у менЯ городская сеть около 1000 пользователей. есть подсети. как бы сдеоать что бы не было так Локальная сеть 192.168.0.0 - 192.168.255.255, а как пример например: 192.168.10.0 - 192.168.10.255 - Амурская д10,д12,д14 ?



Автор: Alexey 1.10.2011, 11:15

Этот функционал не предусмотрен, но самому реализовать никто не запрещает. Если очень захотеть — можно в космос полететь!

Сомневаюсь, что кто-то будет это делать за тебя. Особенно первый пункт и особенно бесплатно.

Автор: darkangel17 3.10.2011, 11:29

По второму пункту, опишу как сделал я.

1. Сначала нужно отредактировать ip-to-country.csv

Для примера имеем микрорайон с диапазоном ip-адресов 10.9.1.1 - 10.9.255.255

Очищаем ip-to-country.csv и делаем там запись вида

Цитата
"168362241","168427519","TH","THA","THAILAND"


Что такое 168362241 и 168427519?

Эти значения берутся из формулы: i1*16777216+i2*65536+i3*256+i4

Где i1.i2.i3.i4 начальный и конечный ип адрес диапазона

Получаем:
10*16777216+9*65536+1*256+1=168362241 Начальный
10*16777216+9*65536+255*256+255=168427519 Конечный

"TH","THA","THAILAND" это страна, ассоциированная с данным микрорайоном.

Для каждого последующего микрорайона следует использовать свою страну. Эти данные можно взять из оригинального ip-to-country.csv

Новый ip-to-country.csv заработает только после перезапуска хаба.

2. Далее следует отредактировать файл Country.lua.

Находим сокращение TH, которое соответствует Тайланду, и, записываем название нашего микрорайона.

Цитата
tCountry = {
TH = "9 микрорайон",
}


После добавления всех микрорайонов получаем примерно такую таблицу big_smile.gif


Автор: reidel_viktor 4.10.2011, 2:51

[quote name='darkangel17' date='3.10.2011, 13:29' post='40400']

Огромное спасибо все получилось http://mydc.ru/ipb.html?act=attach&type=post&id=6081 Спасибо big_smile.gif



 

Автор: Aleksions 17.10.2011, 0:59

А кто точно может сказать, куда точно и какой файл нужно совать ?
Бо у меня что-то оно как-то не работает

Автор: Sergius` 27.1.2012, 14:06

Подскажите, как скрыть MOTD скрипта незарегистрированным пользователям и возможно ли это?
Если возможно подскажите, пожалуйста, как это сделать!

Автор: Ksan 27.1.2012, 14:18

Sergius`, открываешь скрипт, находишь функцию UserConnected(user), там находишь строку

Код
        SendMOTD(user)
и вместо этого вписываешь это:
Код
        if user.iProfile ~= -1 then
            SendMOTD(user)
        end

Автор: DemonHunter614 17.2.2012, 22:35

Мне из всего нужна только веб статистика.
Как убрать сообщение дня и менюшку?

Автор: Ksan 17.2.2012, 22:58

DemonHunter614, а если просто посмотреть конфиг скрипта?
Это в файле config.lua из папки скрипта.
1. И там для отмены отсыла МОТД строку

Код
MOTD = y,
заменяешь на строку
Код
MOTD = n,

2. Для отмены отправки меню юзерам находишь в том же файле конфига таблицу tAccess.Stats и там все значения для всех профилей меняешь на "n". Если хочешь, чтоб и админы не получали меню (управляющие), то там же ниже в таблице Control делаешь так же.

Автор: Артём 8.3.2012, 16:08

Может кому пригодятся анимационные смайлы...
 smiles.rar ( 500.94 килобайт ) : 19

Раскрывающийся текст
Вопрос: В какую папку надо положить папки со смайлами и флагами чтобы они отображались на сайте?
Ответ: В ту же папку, в которую сохраняются сгенерированные html-страницы

открываем папку StatPX_Lite/config.lua
Место этого:
Код
tSmiles = {
    ["biggrin.gif"] = {":D", ":-D", ":=D"},
    ["blink.gif"] = {"oO", "o.O", "o_O", "оО", "о.О", "о_О"},
    ["confused.gif"] = {":S", ":-S", ":=S", ":confused:"},
    ["cry.gif"] = {":'(", ":'-(", ":'=(", ":cry:"},
    ["lol.gif"] = {":lol:", ":LOL:", "LOL"},
    ["sad.gif"] = {":(", ":-(", ":=("},
    ["shock.gif"] = {"O.O", "O_O", "О.О", "О_О", ":shock:"},
    ["smiley.gif"] = {":)", ":-)", ":=)"},
    ["tongue.gif"] = {":P", ":-P", ":=P"},
    ["wink.gif"] = {";)", ";-)", ";=)"},
    ["woohoo.gif"] = {"8-D", "8=D", ":woohoo:"},

Делаем так...
Код
tSmiles = {
    ["!!!.bmp"] = {":!!!:"},
["!!.bmp"] = {":!!:"},
["!.bmp"] = {":!:"},
["!$$.bmp"] = {":???:"},
["!$.bmp"] = {":?:"},
["!Abiohazard.bmp"] = {":зараза:"},
["!Aradiation.bmp"] = {":радиация:"},
["!goto.bmp"] = {":вперёд:"},
["!man.bmp"] = {":чувак:"},
["!women.bmp"] = {":чувиха:"},
["!no mat.bmp"] = {":цензура:"},
["!Stop.bmp"] = {":стоп:"},
["!toleft.bmp"] = {":влево:"},
["!toright.bmp"] = {":вправо:"},
["!Wmoon.bmp"] = {":луна:"},
["!Wsun.bmp"] = {":солнце:"},
["!Wrain.bmp"] = {":гроза:"},
["!XP.bmp"] = {":ХР:"},
["+-1.bmp"] = {":-1:"},
["+1.bmp"] = {":+1:"},
["+Beer.gif"] = {":пыво:"},
["+cup.bmp"] = {":кубок:"},
["+Gift.bmp"] = {":подарок:"},
["+hrtred.gif"] = {":сердце:"},
["hearts.bmp"] = {":сердца:"},
["+Kiss.gif"] = {":чмок:"},
["+medal.bmp"] = {":орден:"},
["+PM.bmp"] = {":ЛС:"},
["+Rose.bmp"] = {":+роза:"},
["0bomb.gif"] = {":бомба:"},
["0boyan.bmp"] = {":баян:"},
["0clock.bmp"] = {":часы:"},
["0coffee.bmp"] = {":чифир:"},
["0dynamic.bmp"] = {":звук:"},
["0flame.bmp"] = {":огонь:"},
["0ganj.bmp"] = {":ганж:"},
["0gunAK.bmp"] = {":АК:"},
["0gunM16.bmp"] = {":М16:"},
["0idea.bmp"] = {":идея:"},
["0martini.bmp"] = {":40%:"},
["0melody.bmp"] = {":ноты:"},
["0pizza.bmp"] = {":пицца:"},
["0pyrate.bmp"] = {":флак:"},
["0star_red.bmp"] = {":звезда:"},
["0teddy.bmp"] = {":тедди:"},
["0tort.bmp"] = {":торт:"},
["0TV.bmp"] = {":ТВ:"},
["0PC.bmp"] = {":ПиСи:"},
["0wall.bmp"] = {":стена:"},
["0WC.bmp"] = {":толчок:"},
["Smile2.gif"] = {":)"},
["Smile1.bmp"] = {"=]"},
["kind.bmp"] = {":добрый:"},
["podarok.bmp"] = {"O_O"},
["so_happy.gif"] = {":доволен:"},
["smile_cruel.gif"] = {">:)"},
["smile_cruel2.bmp"] = {">)"},
["smile_mad.bmp"] = {">B)"},
["smilehe.bmp"] = {":хи:"},
["smilehee.bmp"] = {":хе-хе:"},
["happy1.gif"] = {":аххаха:"},
["Happy2.gif"] = {"8-)"},
["Happy3.bmp"] = {":рад:"},
["applause.bmp"] = {":хлопаю:"},
["Happy4.gif"] = {":урра:"},
["Happy5.bmp"] = {":Э"},
["happy6.gif"] = {":-D", ":D", ":=D"},
["happyvery.gif"] = {":veryhappy:"},
["happy_niger.bmp"] = {":|)"},
["Lol1.gif"] = {":лол:"},
["Lol2.gif"] = {":эххе:"},
["Lol3.bmp"] = {":гг:"},
["Lol4.bmp"] = {":Ыыы:"},
["Lol5.bmp"] = {":ааа:"},
["Lol6.bmp"] = {":пацталом:"},
["blink1.bmp"] = {";)"},
["blink2.bmp"] = {";-)"},
["blink3.bmp"] = {"В-)"},
["cool1.bmp"] = {"В-."},
["cool2.bmp"] = {"ВD"},
["plevok.bmp"] = {":тьфу:"},
["beee.bmp"] = {":бе:"},
["beee1.gif"] = {":}"},
["beee2.gif"] = {":Р"},
["beee3.bmp"] = {":Ь"},
["blush1.bmp"] = {"^_^"},
["blush2.gif"] = {":-."},
["blush6.bmp"] = {":ой:"},
["angel.gif"] = {"0:)"},
["blush5.gif"] = {":паинька:"},
["blush4.gif"] = {":ля-ля:"},
["whistle.gif"] = {":свищу:"},
["sad2.bmp"] = {":хз:"},
["Hm1.bmp"] = {":Хмм:"},
["Hm2.bmp"] = {":хм:"},
["sad1.bmp"] = {":("},
["sad5.gif"] = {"O~O"},
["sad3.bmp"] = {"|("},
["Sad6.bmp"] = {"|:|"},
["blush3.gif"] = {":нупжлст:"},
["pray.bmp"] = {":молюсь:"},
["cry!.bmp"] = {":'("},
["cry.bmp"] = {":плакалъ:"},
["crylol.bmp"] = {":рыдаю:"},
["bad1.gif"] = {":$"},
["bad2.bmp"] = {">_<"},
["bad3.bmp"] = {"8[]"},
["facepalm.bmp"] = {":facepalm:"},
["bad4.gif"] = {":фингал:"},
["bad5.gif"] = {"8$"},
["sick1.bmp"] = {":sick:"},
["sick2.gif"] = {":блювать:"},
["sick3.bmp"] = {":грипп:"},
["Frozen.gif"] = {":замэрз:"},
["crazy_niger.bmp"] = {"(8D"},
["crazy0_o.bmp"] = {"8&amp;"},
["crazy.gif"] = {":гы:"},
["crazy1.bmp"] = {"%&amp;"},
["crazy2.bmp"] = {":[)"},
["crazy_tooth.bmp"] = {"8-Э"},
["crazy3.gif"] = {"%D"},
["crazy_mad.bmp"] = {">8D"},
["diablo1.bmp"] = {"}:-D>"},
["cruel1.gif"] = {">:("},
["cruel2.bmp"] = {">>:("},
["cruel3.gif"] = {">8@"},
["cruel4.bmp"] = {">:(]"},
["cruel5.bmp"] = {";$"},
["cruelvery.gif"] = {">:@"},
["diablo2.gif"] = {">:/"},
["diablohmm.bmp"] = {">:-|"},
["diablored.bmp"] = {":diablored:"},
["diabloblack.bmp"] = {":diabloblack:"},
["surprise1.gif"] = {"8|"},
["Surprise2.gif"] = {"8o"},
["surprise3.gif"] = {"8'"},
["strah1.bmp"] = {":ужоснах:"},
["strah2.gif"] = {":ужос:"},
["amazement.bmp"] = {":челюсть отвисла:"},
["strah4.bmp"] = {":жубы штучат:"},
["shout1.bmp"] = {"8O"},
["shout_happy.gif"] = {"8D"},
["nagolove.gif"] = {":Topsy:"},
["sleep1.gif"] = {":сплю:"},
["sleep2.bmp"] = {":дремлю:"},
["sleep3.gif"] = {":зеваю:"},
["mm1.bmp"] = {":ммм:"},
["mm2.gif"] = {":мм:"},
["sigh.bmp"] = {":слушаю:"},
["telephon.bmp"] = {":телефон:"},
["hi.bmp"] = {":превед:"},
["bye.gif"] = {":бб:"},
["1th.bmp"] = {":1ыйнах:"},
["2nd.bmp"] = {":2ойнах:"},
["3rd.bmp"] = {":3ийнах:"},
["man.bmp"] = {":головастик:"},
["a_cat.gif"] = {":кот:"},
["a_dog.gif"] = {":пёс:"},
["suslik.bmp"] = {":суслик:"},
["kroleg.bmp"] = {":кролег:"},
["kolhozneg.bmp"] = {":колхознег:"},
["russian.bmp"] = {":мужик:"},
["download.gif"] = {":качаю:"},
["fhyu.bmp"] = {":фхуу:"},
["big boss.bmp"] = {":босс:"},
["proud.bmp"] = {":гордый:"},
["resent.bmp"] = {":танувас:"},
["rich.bmp"] = {"$)"},
["alien.bmp"] = {":гуманоид:"},
["shrek.bmp"] = {":шрэк:"},
["cyclope.bmp"] = {"O-)"},
["Zombie.bmp"] = {":зомби:"},
["kruger.bmp"] = {":Крюгер:"},
["witch.gif"] = {":ведьма:"},
["vampire.bmp"] = {":упырь:"},
["girl_bad.gif"] = {":злайа:"},
["elf.bmp"] = {":эльф:"},
["viking.gif"] = {":викинг:"},
["king.gif"] = {":король:"},
["joker.gif"] = {":шут:"},
["clown.bmp"] = {":o)"},
["girl_princess.gif"] = {":прынцесса:"},
["Flirt1.bmp"] = {":флирт:"},
["Flirt2.bmp"] = {";*"},
["flirt brunette.bmp"] = {":брюнетка:"},
["Love1.bmp"] = {":лав:"},
["crazy_love.bmp"] = {"8P"},
["Love2.bmp"] = {":поцелуй:"},
["Love3.bmp"] = {":влюблён:"},
["kiss.bmp"] = {":*"},
["love_kiss.bmp"] = {":кисс:"},
["Rose1.gif"] = {":с розой:"},
["Rose2.bmp"] = {":в зубах:"},
["gift.bmp"] = {":респект:"},
["girl_alcohol.bmp"] = {":пьанайа:"},
["smokecool.bmp"] = {":q"},
["drugs.bmp"] = {":>"},
["rest.gif"] = {":отдых:"},
["dance.gif"] = {":дэнс:"},
["party.bmp"] = {":party:"},
["gum.gif"] = {":бубльгум:"},
["pop-corn.bmp"] = {":в кино:"},
["guitarist.bmp"] = {":гитарист:"},
["shout.gif"] = {":ару:"},
["rocker.gif"] = {":рокер:"},
["rockerhayer.bmp"] = {":хайер:"},
["punk1.gif"] = {":панк:"},
["raper.bmp"] = {":рэпер:"},
["Baby.bmp"] = {":дитё:"},
["popa.bmp"] = {":попа:"},
["bag.bmp"] = {":bag:"},
["Givy.bmp"] = {":Гиви:"},
["lumumba.gif"] = {":лумумба:"},
["niger.bmp"] = {":нигер:"},
["user.bmp"] = {":юзер:"},
["read.bmp"] = {":читаю:"},
["rulez.gif"] = {":рулесы:"},
["botanik1.gif"] = {"B|"},
["botanik2.gif"] = {":ботаник:"},
["kenny.bmp"] = {":Кенни:"},
["rip3.bmp"] = {":без кожи:"},
["apstenur.gif"] = {":апстену:"},
["Suicid.gif"] = {":суицид:"},
["death.bmp"] = {":смерть:"},
["rip2.bmp"] = {":помер:"},
["rip1.gif"] = {":роджер:"},
["pirate1.bmp"] = {":пират:"},
["pirate2.bmp"] = {":головорез:"},
["kick.bmp"] = {":гопнег:"},
["kachok.gif"] = {":качок:"},
["superman.gif"] = {":супермэн:"},
["pilot.gif"] = {":пилот:"},
["trinity.bmp"] = {":Тринити:"},
["gun tommy.bmp"] = {":томмиган:"},
["ment.gif"] = {":мент:"},
["doctor.bmp"] = {":санитар:"},
["comando.bmp"] = {":ВДВ:"},
["security.bmp"] = {":секьюрити:"},
["ninja.gif"] = {":нинзя:"},
["hide.bmp"] = {":спряталсо:"},
["au!.bmp"] = {":ау:"},
["ku-ku.gif"] = {":куку:"},
["search1.bmp"] = {":Шэрлок:"},
["search2.gif"] = {":ищу:"},
["v nosu.gif"] = {":в носу:"},
["dnt spk.bmp"] = {":Х"},
["secret.gif"] = {":секрет:"},
["nono.bmp"] = {":не шали:"},
["recall.bmp"] = {":эй:"},
["victory.gif"] = {":победа:"},
["cool3.gif"] = {":класс:"},
["cool4.gif"] = {":кул:"},
["yes!.gif"] = {":йес!:"},
["yo.gif"] = {":йоу:"},
["Р_Rose.bmp"] = {":розочка:"},
["Р.bmp"] = {":пять:"},
["Р_vo.bmp"] = {":во!:"},
["Р_cooll.bmp"] = {":Vm:"},
["Р_coolr.bmp"] = {":mV:"},
["Р_diablo.bmp"] = {":вилы:"},
["Р_dulya.gif"] = {":фига:"},
["Р_fuckU2.bmp"] = {":фак:"},
["Р_gun.bmp"] = {":ствол:"},
["Р_gun1.bmp"] = {":револьвер:"},
["Р_kick.bmp"] = {":кулак:"},
["Р_kosyak.bmp"] = {":косяк:"},
["Р_left.bmp"] = {":вот там:"},
["Р_OK.bmp"] = {":ОК:"},
["Р_rup.bmp"] = {":рулез:"},
["Р_rdown.bmp"] = {":сакс:"},
["Р_rockleft.bmp"] = {":\_/m"},
["Р_rockright.bmp"] = {":m\_/"},
["Р_rrockl.bmp"] = {":\m/_"},
["Р_rrockr.bmp"] = {":_\m/"},
["Р_sekira.bmp"] = {":секира:"},
["Р_stop.bmp"] = {":стой:"},
["Р_U.bmp"] = {":ты:"},
["Р_victory.bmp"] = {":виктори:"},
["troll.gif"] = {"troll"},
}

Автор: Littlemuk 8.3.2012, 17:06

Цитата(Артём @ 8.3.2012, 17:08) *
Может кому пригодятся анимационные смайлы...
 smiles.rar ( 500.94 килобайт ) : 19

Раскрывающийся текст
Вопрос: В какую папку надо положить папки со смайлами и флагами чтобы они отображались на сайте?
Ответ: В ту же папку, в которую сохраняются сгенерированные html-страницы

открываем папку StatPX_Lite/config.lua
Место этого:
Код
tSmiles = {
    ["biggrin.gif"] = {":D", ":-D", ":=D"},
    ["blink.gif"] = {"oO", "o.O", "o_O", "оО", "о.О", "о_О"},
    ["confused.gif"] = {":S", ":-S", ":=S", ":confused:"},
    ["cry.gif"] = {":'(", ":'-(", ":'=(", ":cry:"},
    ["lol.gif"] = {":lol:", ":LOL:", "LOL"},
    ["sad.gif"] = {":(", ":-(", ":=("},
    ["shock.gif"] = {"O.O", "O_O", "О.О", "О_О", ":shock:"},
    ["smiley.gif"] = {":)", ":-)", ":=)"},
    ["tongue.gif"] = {":P", ":-P", ":=P"},
    ["wink.gif"] = {";)", ";-)", ";=)"},
    ["woohoo.gif"] = {"8-D", "8=D", ":woohoo:"},

Делаем так...
Код
tSmiles = {
    ["!!!.bmp"] = {":!!!:"},
["!!.bmp"] = {":!!:"},
["!.bmp"] = {":!:"},
["!$$.bmp"] = {":???:"},
["!$.bmp"] = {":?:"},
["!Abiohazard.bmp"] = {":зараза:"},
["!Aradiation.bmp"] = {":радиация:"},
["!goto.bmp"] = {":вперёд:"},
["!man.bmp"] = {":чувак:"},
["!women.bmp"] = {":чувиха:"},
["!no mat.bmp"] = {":цензура:"},
["!Stop.bmp"] = {":стоп:"},
["!toleft.bmp"] = {":влево:"},
["!toright.bmp"] = {":вправо:"},
["!Wmoon.bmp"] = {":луна:"},
["!Wsun.bmp"] = {":солнце:"},
["!Wrain.bmp"] = {":гроза:"},
["!XP.bmp"] = {":ХР:"},
["+-1.bmp"] = {":-1:"},
["+1.bmp"] = {":+1:"},
["+Beer.gif"] = {":пыво:"},
["+cup.bmp"] = {":кубок:"},
["+Gift.bmp"] = {":подарок:"},
["+hrtred.gif"] = {":сердце:"},
["hearts.bmp"] = {":сердца:"},
["+Kiss.gif"] = {":чмок:"},
["+medal.bmp"] = {":орден:"},
["+PM.bmp"] = {":ЛС:"},
["+Rose.bmp"] = {":+роза:"},
["0bomb.gif"] = {":бомба:"},
["0boyan.bmp"] = {":баян:"},
["0clock.bmp"] = {":часы:"},
["0coffee.bmp"] = {":чифир:"},
["0dynamic.bmp"] = {":звук:"},
["0flame.bmp"] = {":огонь:"},
["0ganj.bmp"] = {":ганж:"},
["0gunAK.bmp"] = {":АК:"},
["0gunM16.bmp"] = {":М16:"},
["0idea.bmp"] = {":идея:"},
["0martini.bmp"] = {":40%:"},
["0melody.bmp"] = {":ноты:"},
["0pizza.bmp"] = {":пицца:"},
["0pyrate.bmp"] = {":флак:"},
["0star_red.bmp"] = {":звезда:"},
["0teddy.bmp"] = {":тедди:"},
["0tort.bmp"] = {":торт:"},
["0TV.bmp"] = {":ТВ:"},
["0PC.bmp"] = {":ПиСи:"},
["0wall.bmp"] = {":стена:"},
["0WC.bmp"] = {":толчок:"},
["Smile2.gif"] = {":)"},
["Smile1.bmp"] = {"=]"},
["kind.bmp"] = {":добрый:"},
["podarok.bmp"] = {"O_O"},
["so_happy.gif"] = {":доволен:"},
["smile_cruel.gif"] = {">:)"},
["smile_cruel2.bmp"] = {">)"},
["smile_mad.bmp"] = {">B)"},
["smilehe.bmp"] = {":хи:"},
["smilehee.bmp"] = {":хе-хе:"},
["happy1.gif"] = {":аххаха:"},
["Happy2.gif"] = {"8-)"},
["Happy3.bmp"] = {":рад:"},
["applause.bmp"] = {":хлопаю:"},
["Happy4.gif"] = {":урра:"},
["Happy5.bmp"] = {":Э"},
["happy6.gif"] = {":-D", ":D", ":=D"},
["happyvery.gif"] = {":veryhappy:"},
["happy_niger.bmp"] = {":|)"},
["Lol1.gif"] = {":лол:"},
["Lol2.gif"] = {":эххе:"},
["Lol3.bmp"] = {":гг:"},
["Lol4.bmp"] = {":Ыыы:"},
["Lol5.bmp"] = {":ааа:"},
["Lol6.bmp"] = {":пацталом:"},
["blink1.bmp"] = {";)"},
["blink2.bmp"] = {";-)"},
["blink3.bmp"] = {"В-)"},
["cool1.bmp"] = {"В-."},
["cool2.bmp"] = {"ВD"},
["plevok.bmp"] = {":тьфу:"},
["beee.bmp"] = {":бе:"},
["beee1.gif"] = {":}"},
["beee2.gif"] = {":Р"},
["beee3.bmp"] = {":Ь"},
["blush1.bmp"] = {"^_^"},
["blush2.gif"] = {":-."},
["blush6.bmp"] = {":ой:"},
["angel.gif"] = {"0:)"},
["blush5.gif"] = {":паинька:"},
["blush4.gif"] = {":ля-ля:"},
["whistle.gif"] = {":свищу:"},
["sad2.bmp"] = {":хз:"},
["Hm1.bmp"] = {":Хмм:"},
["Hm2.bmp"] = {":хм:"},
["sad1.bmp"] = {":("},
["sad5.gif"] = {"O~O"},
["sad3.bmp"] = {"|("},
["Sad6.bmp"] = {"|:|"},
["blush3.gif"] = {":нупжлст:"},
["pray.bmp"] = {":молюсь:"},
["cry!.bmp"] = {":'("},
["cry.bmp"] = {":плакалъ:"},
["crylol.bmp"] = {":рыдаю:"},
["bad1.gif"] = {":$"},
["bad2.bmp"] = {">_<"},
["bad3.bmp"] = {"8[]"},
["facepalm.bmp"] = {":facepalm:"},
["bad4.gif"] = {":фингал:"},
["bad5.gif"] = {"8$"},
["sick1.bmp"] = {":sick:"},
["sick2.gif"] = {":блювать:"},
["sick3.bmp"] = {":грипп:"},
["Frozen.gif"] = {":замэрз:"},
["crazy_niger.bmp"] = {"(8D"},
["crazy0_o.bmp"] = {"8&"},
["crazy.gif"] = {":гы:"},
["crazy1.bmp"] = {"%&"},
["crazy2.bmp"] = {":[)"},
["crazy_tooth.bmp"] = {"8-Э"},
["crazy3.gif"] = {"%D"},
["crazy_mad.bmp"] = {">8D"},
["diablo1.bmp"] = {"}:-D>"},
["cruel1.gif"] = {">:("},
["cruel2.bmp"] = {">>:("},
["cruel3.gif"] = {">8@"},
["cruel4.bmp"] = {">:(]"},
["cruel5.bmp"] = {";$"},
["cruelvery.gif"] = {">:@"},
["diablo2.gif"] = {">:/"},
["diablohmm.bmp"] = {">:-|"},
["diablored.bmp"] = {":diablored:"},
["diabloblack.bmp"] = {":diabloblack:"},
["surprise1.gif"] = {"8|"},
["Surprise2.gif"] = {"8o"},
["surprise3.gif"] = {"8'"},
["strah1.bmp"] = {":ужоснах:"},
["strah2.gif"] = {":ужос:"},
["amazement.bmp"] = {":челюсть отвисла:"},
["strah4.bmp"] = {":жубы штучат:"},
["shout1.bmp"] = {"8O"},
["shout_happy.gif"] = {"8D"},
["nagolove.gif"] = {":Topsy:"},
["sleep1.gif"] = {":сплю:"},
["sleep2.bmp"] = {":дремлю:"},
["sleep3.gif"] = {":зеваю:"},
["mm1.bmp"] = {":ммм:"},
["mm2.gif"] = {":мм:"},
["sigh.bmp"] = {":слушаю:"},
["telephon.bmp"] = {":телефон:"},
["hi.bmp"] = {":превед:"},
["bye.gif"] = {":бб:"},
["1th.bmp"] = {":1ыйнах:"},
["2nd.bmp"] = {":2ойнах:"},
["3rd.bmp"] = {":3ийнах:"},
["man.bmp"] = {":головастик:"},
["a_cat.gif"] = {":кот:"},
["a_dog.gif"] = {":пёс:"},
["suslik.bmp"] = {":суслик:"},
["kroleg.bmp"] = {":кролег:"},
["kolhozneg.bmp"] = {":колхознег:"},
["russian.bmp"] = {":мужик:"},
["download.gif"] = {":качаю:"},
["fhyu.bmp"] = {":фхуу:"},
["big boss.bmp"] = {":босс:"},
["proud.bmp"] = {":гордый:"},
["resent.bmp"] = {":танувас:"},
["rich.bmp"] = {"$)"},
["alien.bmp"] = {":гуманоид:"},
["shrek.bmp"] = {":шрэк:"},
["cyclope.bmp"] = {"O-)"},
["Zombie.bmp"] = {":зомби:"},
["kruger.bmp"] = {":Крюгер:"},
["witch.gif"] = {":ведьма:"},
["vampire.bmp"] = {":упырь:"},
["girl_bad.gif"] = {":злайа:"},
["elf.bmp"] = {":эльф:"},
["viking.gif"] = {":викинг:"},
["king.gif"] = {":король:"},
["joker.gif"] = {":шут:"},
["clown.bmp"] = {":o)"},
["girl_princess.gif"] = {":прынцесса:"},
["Flirt1.bmp"] = {":флирт:"},
["Flirt2.bmp"] = {";*"},
["flirt brunette.bmp"] = {":брюнетка:"},
["Love1.bmp"] = {":лав:"},
["crazy_love.bmp"] = {"8P"},
["Love2.bmp"] = {":поцелуй:"},
["Love3.bmp"] = {":влюблён:"},
["kiss.bmp"] = {":*"},
["love_kiss.bmp"] = {":кисс:"},
["Rose1.gif"] = {":с розой:"},
["Rose2.bmp"] = {":в зубах:"},
["gift.bmp"] = {":респект:"},
["girl_alcohol.bmp"] = {":пьанайа:"},
["smokecool.bmp"] = {":q"},
["drugs.bmp"] = {":>"},
["rest.gif"] = {":отдых:"},
["dance.gif"] = {":дэнс:"},
["party.bmp"] = {":party:"},
["gum.gif"] = {":бубльгум:"},
["pop-corn.bmp"] = {":в кино:"},
["guitarist.bmp"] = {":гитарист:"},
["shout.gif"] = {":ару:"},
["rocker.gif"] = {":рокер:"},
["rockerhayer.bmp"] = {":хайер:"},
["punk1.gif"] = {":панк:"},
["raper.bmp"] = {":рэпер:"},
["Baby.bmp"] = {":дитё:"},
["popa.bmp"] = {":попа:"},
["bag.bmp"] = {":bag:"},
["Givy.bmp"] = {":Гиви:"},
["lumumba.gif"] = {":лумумба:"},
["niger.bmp"] = {":нигер:"},
["user.bmp"] = {":юзер:"},
["read.bmp"] = {":читаю:"},
["rulez.gif"] = {":рулесы:"},
["botanik1.gif"] = {"B|"},
["botanik2.gif"] = {":ботаник:"},
["kenny.bmp"] = {":Кенни:"},
["rip3.bmp"] = {":без кожи:"},
["apstenur.gif"] = {":апстену:"},
["Suicid.gif"] = {":суицид:"},
["death.bmp"] = {":смерть:"},
["rip2.bmp"] = {":помер:"},
["rip1.gif"] = {":роджер:"},
["pirate1.bmp"] = {":пират:"},
["pirate2.bmp"] = {":головорез:"},
["kick.bmp"] = {":гопнег:"},
["kachok.gif"] = {":качок:"},
["superman.gif"] = {":супермэн:"},
["pilot.gif"] = {":пилот:"},
["trinity.bmp"] = {":Тринити:"},
["gun tommy.bmp"] = {":томмиган:"},
["ment.gif"] = {":мент:"},
["doctor.bmp"] = {":санитар:"},
["comando.bmp"] = {":ВДВ:"},
["security.bmp"] = {":секьюрити:"},
["ninja.gif"] = {":нинзя:"},
["hide.bmp"] = {":спряталсо:"},
["au!.bmp"] = {":ау:"},
["ku-ku.gif"] = {":куку:"},
["search1.bmp"] = {":Шэрлок:"},
["search2.gif"] = {":ищу:"},
["v nosu.gif"] = {":в носу:"},
["dnt spk.bmp"] = {":Х"},
["secret.gif"] = {":секрет:"},
["nono.bmp"] = {":не шали:"},
["recall.bmp"] = {":эй:"},
["victory.gif"] = {":победа:"},
["cool3.gif"] = {":класс:"},
["cool4.gif"] = {":кул:"},
["yes!.gif"] = {":йес!:"},
["yo.gif"] = {":йоу:"},
["Р_Rose.bmp"] = {":розочка:"},
["Р.bmp"] = {":пять:"},
["Р_vo.bmp"] = {":во!:"},
["Р_cooll.bmp"] = {":Vm:"},
["Р_coolr.bmp"] = {":mV:"},
["Р_diablo.bmp"] = {":вилы:"},
["Р_dulya.gif"] = {":фига:"},
["Р_fuckU2.bmp"] = {":фак:"},
["Р_gun.bmp"] = {":ствол:"},
["Р_gun1.bmp"] = {":револьвер:"},
["Р_kick.bmp"] = {":кулак:"},
["Р_kosyak.bmp"] = {":косяк:"},
["Р_left.bmp"] = {":вот там:"},
["Р_OK.bmp"] = {":ОК:"},
["Р_rup.bmp"] = {":рулез:"},
["Р_rdown.bmp"] = {":сакс:"},
["Р_rockleft.bmp"] = {":\_/m"},
["Р_rockright.bmp"] = {":m\_/"},
["Р_rrockl.bmp"] = {":\m/_"},
["Р_rrockr.bmp"] = {":_\m/"},
["Р_sekira.bmp"] = {":секира:"},
["Р_stop.bmp"] = {":стой:"},
["Р_U.bmp"] = {":ты:"},
["Р_victory.bmp"] = {":виктори:"},
["troll.gif"] = {"troll"},
}

Ну емае! big_smile.gif Два часа назад закончил "синхронизацию" смайлов флайлинка и веб-статистики, а тут нате вам big_smile.gif
Во флайлинке есть названия смайлов на английском. Добавил.
Английские варианты смайлов

Код
tSmiles = {
    ["!!!.bmp"] = {":!!!:"},
    ["!!.bmp"] = {":!!:"},
    ["!.bmp"] = {":!:"},
    ["!$$.bmp"] = {":???:"},
    ["!$.bmp"] = {":?:"},
    ["!Abiohazard.bmp"] = {":зараза:", ":zaraza:"},
    ["!Aradiation.bmp"] = {":радиация:", ":radiation:"},
    ["!goto.bmp"] = {":вперёд:", ":gogo:"},
    ["!man.bmp"] = {":чувак:", ":boy:"},
    ["!women.bmp"] = {":чувиха:", ":girla:"},
    ["!no mat.bmp"] = {":цензура:", ":censored:"},
    ["!Stop.bmp"] = {":стоп:", ":stopp:"},
    ["!toleft.bmp"] = {":влево:", ":left:"},
    ["!toright.bmp"] = {":вправо:", ":right:"},
    ["!Wmoon.bmp"] = {":луна:", ":moon:"},
    ["!Wsun.bmp"] = {":солнце:", ":sun:"},
    ["!Wrain.bmp"] = {":гроза:", ":groza:"},
    ["!XP.bmp"] = {":ХР:"},
    ["+-1.bmp"] = {":-1:"},
    ["+1.bmp"] = {":+1:"},
    ["+Beer.gif"] = {":пыво:", ":pivo:"},
    ["+cup.bmp"] = {":кубок:", ":cubok:"},
    ["+Gift.bmp"] = {":подарок:", ":surpise:"},
    ["+hrtred.gif"] = {":сердце:", ":heart:"},
    ["hearts.bmp"] = {":сердца:", ":hearts:"},
    ["+Kiss.gif"] = {":чмок:", ":kissyy:"},
    ["+medal.bmp"] = {":орден:", ":medal:"},
    ["+PM.bmp"] = {":ЛС:", ":PM:"},
    ["+Rose.bmp"] = {":+роза:", ":+rose:"},
    ["0bomb.gif"] = {":бомба:", ":bomb:"},
    ["0boyan.bmp"] = {":баян:", ":bajan:"},
    ["0clock.bmp"] = {":часы:", ":times:"},
    ["0coffee.bmp"] = {":чифир:", ":tea hard:"},
    ["0dynamic.bmp"] = {":звук:", ":sound:"},
    ["0flame.bmp"] = {":огонь:", ":fire:"},
    ["0ganj.bmp"] = {":ганж:", ":ganje:"},
    ["0gunAK.bmp"] = {":АК:", ":AK:"},
    ["0gunM16.bmp"] = {":М16:", ":M16:"},
    ["0idea.bmp"] = {":идея:", ":idea:"},
    ["0martini.bmp"] = {":40%:"},
    ["0melody.bmp"] = {":ноты:", ":notes:"},
    ["0pizza.bmp"] = {":пицца:", ":pizza:"},
    ["0pyrate.bmp"] = {":флак:", ":flack:"},
    ["0star_red.bmp"] = {":звезда:", ":star:"},
    ["0teddy.bmp"] = {":тедди:", ":teddy:"},
    ["0tort.bmp"] = {":торт:", ":tort:"},
    ["0TV.bmp"] = {":ТВ:", ":TV:"},
    ["0PC.bmp"] = {":ПиСи:", ":PiCi:"},
    ["0wall.bmp"] = {":стена:", ":wall:"},
    ["0WC.bmp"] = {":толчок:", ":toilet:"},
    ["Smile2.gif"] = {":)", ":-)"},
    ["Smile1.bmp"] = {"=]"},
    ["kind.bmp"] = {":добрый:", ":likely:"},
    ["podarok.bmp"] = {"O_O"},
    ["so_happy.gif"] = {":доволен:", ":happined:"},
    ["smile_cruel.gif"] = {">:)"},
    ["smile_cruel2.bmp"] = {">)"},
    ["smile_mad.bmp"] = {">B)"},
    ["smilehe.bmp"] = {":хи:", ":hi-hi:"},
    ["smilehee.bmp"] = {":хе-хе:", ":he-he-he:"},
    ["happy1.gif"] = {":аххаха:", ":ahhaha:"},
    ["Happy2.gif"] = {"8-)"},
    ["Happy3.bmp"] = {":рад:", ":happy:"},
    ["applause.bmp"] = {":хлопаю:", ":applause:"},
    ["Happy4.gif"] = {":урра:", ":yeeeee:"},
    ["Happy5.bmp"] = {":Э"},
    ["happy6.gif"] = {":-D", ":D", ":=D"},
    ["happyvery.gif"] = {":veryhappy:"},
    ["happy_niger.bmp"] = {":|)"},
    ["Lol1.gif"] = {":лол:", ":lol:"},
    ["Lol2.gif"] = {":эххе:", ":hehe:"},
    ["Lol3.bmp"] = {":гг:", ":gg:"},
    ["Lol4.bmp"] = {":Ыыы:", ":bwahhh:"},
    ["Lol5.bmp"] = {":ааа:", ":aaa:"},
    ["Lol6.bmp"] = {":пацталом:", ":pactalom:"},
    ["blink1.bmp"] = {";)"},
    ["blink2.bmp"] = {";-)"},
    ["blink3.bmp"] = {"В-)"},
    ["cool1.bmp"] = {"В-."},
    ["cool2.bmp"] = {"ВD"},
    ["plevok.bmp"] = {":тьфу:", ":tfu:"},
    ["beee.bmp"] = {":бе:", ":fuuu:"},
    ["beee1.gif"] = {":}"},
    ["beee2.gif"] = {":Р"},
    ["beee3.bmp"] = {":Ь", ":fueeh:"},
    ["blush1.bmp"] = {"^_^"},
    ["blush2.gif"] = {":-."},
    ["blush6.bmp"] = {":ой:", ":oops:"},
    ["angel.gif"] = {"0:)"},
    ["blush5.gif"] = {":паинька:", ":painka:"},
    ["blush4.gif"] = {":ля-ля:", ":la-la:"},
    ["whistle.gif"] = {":свищу:", ":svist:"},
    ["sad2.bmp"] = {":хз:", ":hz:"},
    ["Hm1.bmp"] = {":Хмм:", ":Hmm:"},
    ["Hm2.bmp"] = {":хм:", ":hm:"},
    ["sad1.bmp"] = {":("},
    ["sad5.gif"] = {"O~O"},
    ["sad3.bmp"] = {"|("},
    ["Sad6.bmp"] = {"|:|"},
    ["blush3.gif"] = {":нупжлст:", ":please:"},
    ["pray.bmp"] = {":молюсь:", ":molus:"},
    ["cry!.bmp"] = {":'("},
    ["cry.bmp"] = {":плакалъ:", ":cryyen:"},
    ["crylol.bmp"] = {":рыдаю:", ":cryin:"},
    ["bad1.gif"] = {":$"},
    ["bad2.bmp"] = {">_<"},
    ["bad3.bmp"] = {"8[]"},
    ["facepalm.bmp"] = {":facepalm:"},
    ["bad4.gif"] = {":фингал:", ":fingal:"},
    ["bad5.gif"] = {"8$"},
    ["sick1.bmp"] = {":sick:"},
    ["sick2.gif"] = {":блювать:", ":bueee:"},
    ["sick3.bmp"] = {":грипп:", ":gripp:"},
    ["Frozen.gif"] = {":замэрз:", ":zamerz:"},
    ["crazy_niger.bmp"] = {"(8D"},
    ["crazy0_o.bmp"] = {"8&"},
    ["crazy.gif"] = {":гы:", ":gy:"},
    ["crazy1.bmp"] = {"%&"},
    ["crazy2.bmp"] = {":[)"},
    ["crazy_tooth.bmp"] = {"8-Э"},
    ["crazy_mad.bmp"] = {">8D"},
    ["diablo1.bmp"] = {"}:-D>"},
    ["cruel1.gif"] = {">:("},
    ["cruel2.bmp"] = {">>:("},
    ["cruel3.gif"] = {">8@"},
    ["cruel4.bmp"] = {">:(]"},
    ["cruel5.bmp"] = {";$"},
    ["cruelvery.gif"] = {">:@"},
    ["diablo2.gif"] = {">:/"},
    ["diablohmm.bmp"] = {">:-|"},
    ["diablored.bmp"] = {":diablored:"},
    ["diabloblack.bmp"] = {":diabloblack:"},
    ["surprise1.gif"] = {"8|"},
    ["Surprise2.gif"] = {"8o"},
    ["surprise3.gif"] = {"8'"},
    ["strah1.bmp"] = {":ужоснах:", ":scary very:"},
    ["strah2.gif"] = {":ужос:", ":scary:"},
    ["amazement.bmp"] = {":челюсть отвисла:", ":tooth over:"},
    ["strah4.bmp"] = {":жубы штучат:", ":tooth dude:"},
    ["shout1.bmp"] = {"8O"},
    ["shout_happy.gif"] = {"8D"},
    ["nagolove.gif"] = {":Topsy:"},
    ["sleep1.gif"] = {":сплю:", ":sleep:"},
    ["sleep2.bmp"] = {":дремлю:", ":sleepy:"},
    ["sleep3.gif"] = {":зеваю:", ":zevaju:"},
    ["mm1.bmp"] = {":ммм:", ":mmm:"},
    ["mm2.gif"] = {":мм:", ":mm:"},
    ["sigh.bmp"] = {":слушаю:", ":listen:"},
    ["telephon.bmp"] = {":телефон:", ":telephone:"},
    ["hi.bmp"] = {":превед:", ":hello:"},
    ["bye.gif"] = {":бб:", ":bb:"},
    ["1th.bmp"] = {":1ыйнах:", ":1th:"},
    ["2nd.bmp"] = {":2ойнах:", ":2th:"},
    ["3rd.bmp"] = {":3ийнах:", ":3th:"},
    ["man.bmp"] = {":головастик:", ":golovastik:"},
    ["a_cat.gif"] = {":кот:", ":cat:"},
    ["a_dog.gif"] = {":пёс:", ":dog:"},
    ["suslik.bmp"] = {":суслик:", ":suslik:"},
    ["kroleg.bmp"] = {":кролег:", ":rabbit:"},
    ["kolhozneg.bmp"] = {":колхознег:", ":kolhozneg:"},
    ["russian.bmp"] = {":мужик:", ":man:"},
    ["download.gif"] = {":качаю:", ":loaded:"},
    ["fhyu.bmp"] = {":фхуу:", ":fhuu:"},
    ["big boss.bmp"] = {":босс:", ":boss:"},
    ["proud.bmp"] = {":гордый:", ":gordy:"},
    ["resent.bmp"] = {":танувас:", ":goass:"},
    ["rich.bmp"] = {"$)"},
    ["alien.bmp"] = {":гуманоид:", ":humanoid:"},
    ["shrek.bmp"] = {":шрэк:", ":shrek:"},
    ["cyclope.bmp"] = {"O-)"},
    ["Zombie.bmp"] = {":зомби:", ":zombi:"},
    ["kruger.bmp"] = {":Крюгер:", ":Kruger:"},
    ["witch.gif"] = {":ведьма:", ":vedma:"},
    ["vampire.bmp"] = {":упырь:", ":upyr:"},
    ["girl_bad.gif"] = {":злайа:", ":zlaja:"},
    ["elf.bmp"] = {":эльф:", ":elf:"},
    ["viking.gif"] = {":викинг:", ":viking:"},
    ["king.gif"] = {":король:", ":king:"},
    ["joker.gif"] = {":шут:", ":shut:"},
    ["clown.bmp"] = {":o)"},
    ["girl_princess.gif"] = {":прынцесса:", ":princess:"},
    ["Flirt1.bmp"] = {":флирт:", ":loved:"},
    ["Flirt2.bmp"] = {";*"},
    ["flirt brunette.bmp"] = {":брюнетка:", ":girl2:"},
    ["Love1.bmp"] = {":лав:", ":love:"},
    ["crazy_love.bmp"] = {"8P"},
    ["Love2.bmp"] = {":поцелуй:", ":kissed:"},
    ["Love3.bmp"] = {":влюблён:", ":lovely:"},
    ["kiss.bmp"] = {":*"},
    ["love_kiss.bmp"] = {":кисс:", ":kiss:"},
    ["Rose1.gif"] = {":с розой:", ":with roze:"},
    ["Rose2.bmp"] = {":в зубах:", ":tooth roze:"},
    ["gift.bmp"] = {":респект:", ":respect:"},
    ["girl_alcohol.bmp"] = {":пьанайа:", ":drunky:"},
    ["smokecool.bmp"] = {":q"},
    ["drugs.bmp"] = {":>"},
    ["rest.gif"] = {":отдых:", ":sunday:"},
    ["dance.gif"] = {":дэнс:", ":dance:"},
    ["party.bmp"] = {":party:"},
    ["gum.gif"] = {":бубльгум:", ":bublhum:"},
    ["pop-corn.bmp"] = {":в кино:", ":moovie:"},
    ["guitarist.bmp"] = {":гитарист:", ":guitary:"},
    ["shout.gif"] = {":ару:", ":ару:"},
    ["rocker.gif"] = {":рокер:", ":poker:"},
    ["rockerhayer.bmp"] = {":хайер:", ":hayer:"},
    ["punk1.gif"] = {":панк:", ":punk:"},
    ["raper.bmp"] = {":рэпер:", ":rappy:"},
    ["Baby.bmp"] = {":дитё:", ":kind:"},
    ["popa.bmp"] = {":попа:", ":ass:"},
    ["bag.bmp"] = {":bag:"},
    ["Givy.bmp"] = {":Гиви:", ":Givi:"},
    ["lumumba.gif"] = {":лумумба:", ":lumumba:"},
    ["niger.bmp"] = {":нигер:", ":niger:"},
    ["user.bmp"] = {":юзер:", ":user:"},
    ["read.bmp"] = {":читаю:", ":ready:"},
    ["rulez.gif"] = {":рулесы:", ":rulesy:"},
    ["botanik1.gif"] = {"B|"},
    ["botanik2.gif"] = {":ботаник:", ":botanik:"},
    ["kenny.bmp"] = {":Кенни:", ":Kenny:"},
    ["rip3.bmp"] = {":без кожи:", ":skelet:"},
    ["apstenur.gif"] = {":апстену:", ":gowall:"},
    ["Suicid.gif"] = {":суицид:", ":suicide:"},
    ["death.bmp"] = {":смерть:", ":death:"},
    ["rip2.bmp"] = {":помер:", ":deadly:"},
    ["rip1.gif"] = {":роджер:", ":roger:"},
    ["pirate1.bmp"] = {":пират:", ":pirat:"},
    ["pirate2.bmp"] = {":головорез:", ":golovores:"},
    ["kick.bmp"] = {":гопнег:", ":gopneg:"},
    ["kachok.gif"] = {":качок:", ":kachok:"},
    ["superman.gif"] = {":супермэн:", ":superman:"},
    ["pilot.gif"] = {":пилот:", ":pilot:"},
    ["trinity.bmp"] = {":Тринити:", ":Trinity:"},
    ["gun tommy.bmp"] = {":томмиган:", ":tommigun:"},
    ["ment.gif"] = {":мент:", ":cop:"},
    ["doctor.bmp"] = {":санитар:", ":doctor:"},
    ["comando.bmp"] = {":ВДВ:", ":VDV:"},
    ["security.bmp"] = {":секьюрити:", ":security:"},
    ["ninja.gif"] = {":нинзя:", ":ninja:"},
    ["hide.bmp"] = {":спряталсо:", ":hidden:"},
    ["au!.bmp"] = {":ау:", ":au:"},
    ["ku-ku.gif"] = {":куку:", ":kuku:"},
    ["search1.bmp"] = {":Шэрлок:", ":sherlock:"},
    ["search2.gif"] = {":ищу:", ":search:"},
    ["v nosu.gif"] = {":в носу:", ":in nose:"},
    ["dnt spk.bmp"] = {":Х"},
    ["secret.gif"] = {":секрет:", ":secret:"},
    ["nono.bmp"] = {":не шали:", ":nottone:"},
    ["recall.bmp"] = {":эй:", ":hey:"},
    ["victory.gif"] = {":победа:", ":victory:"},
    ["cool3.gif"] = {":класс:", ":klass:"},
    ["cool4.gif"] = {":кул:", ":cool:"},
    ["yes!.gif"] = {":йес!:", ":yes!:"},
    ["yo.gif"] = {":йоу:", ":jou:"},
    ["Р_Rose.bmp"] = {":розочка:", ":rozochka:"},
    ["Р.bmp"] = {":пять:", ":pjat:"},
    ["Р_vo.bmp"] = {":во!:", ":vo!:"},
    ["Р_cooll.bmp"] = {":Vm:"},
    ["Р_coolr.bmp"] = {":mV:"},
    ["Р_diablo.bmp"] = {":вилы:", ":vily:"},
    ["Р_dulya.gif"] = {":фига:", ":dulja:"},
    ["Р_fuckU2.bmp"] = {":фак:", ":fuck:"},
    ["Р_gun.bmp"] = {":ствол:", ":pistol:"},
    ["Р_gun1.bmp"] = {":револьвер:", ":revolver:"},
    ["Р_kick.bmp"] = {":кулак:", ":handa:"},
    ["Р_kosyak.bmp"] = {":косяк:", ":cigarette:"},
    ["Р_left.bmp"] = {":вот там:", ":not here:"},
    ["Р_OK.bmp"] = {":ОК:"},
    ["Р_rup.bmp"] = {":рулез:", ":rules:"},
    ["Р_rdown.bmp"] = {":сакс:", ":suxx:"},
    ["Р_rockleft.bmp"] = {":\_/m"},
    ["Р_rockright.bmp"] = {":m\_/"},
    ["Р_rrockl.bmp"] = {":\m/_"},
    ["Р_rrockr.bmp"] = {":_\m/"},
    ["Р_sekira.bmp"] = {":секира:", ":sekira:"},
    ["Р_stop.bmp"] = {":стой:", ":stop:"},
    ["Р_U.bmp"] = {":ты:", ":you:"},
    ["Р_victory.bmp"] = {":виктори:", ":pvictory:"},
    ["troll.gif"] = {":troll:"},
}


Автор: jekasumy 27.10.2012, 12:42

как его установить под FreeBSD

Автор: Saymon21 27.10.2012, 12:54

Скачать, распаковать из архива, положить всё содержимое в scripts и запустить, ну и если надобно, поставить любой вебсервер и luagd.

Автор: jekasumy 27.10.2012, 22:50

Цитата(Saymon21 @ 27.10.2012, 14:54) *
Скачать, распаковать из архива, положить всё содержимое в scripts и запустить, ну и если надобно, поставить любой вебсервер и luagd.

все это сделано. не запускается только.

pkg_info | grep lua
lua-5.0.3 Small, compilable scripting language providing easy access
lua-5.1.5_4 Small, compilable scripting language providing easy access
lua50-compat-5.1.r5_1 Lua 5.1 package compatibility layer for Lua 5.0.x
lua50-luasocket-2.0.2_1 IPv4 Sockets support for the Lua language
lua51-luasocket-2.0.2_1 IPv4 Sockets support for the Lua language
luasql-mysql-2.1.1_1 Lua interface to MySQL

Автор: Alexey 27.10.2012, 23:15

Цитата(jekasumy @ 27.10.2012, 22:50) *
все это сделано. не запускается только.

Что в логах?

Автор: and_luk 15.11.2012, 15:19

Подскажите пожалуйста, как сделать вот так.


Правлю сам файл lua, ну не получается.

Я не хочу заниматься плагиатом, хочу сделать под себя.
А вот как это сделать, пока не могу понять.

Автор: Артём 15.11.2012, 17:28

and_luk, StatPX_Lite\MOTD.txt пробовал?
P.S.jekasumy, anger.gif убери из подписи своей дурацкий юзербар, в темах где ты со своим дурацким юзербаром отписывался, у меня антивирусник ругается!!! scorn.gif

Автор: Маза 29.12.2012, 21:11

Пожалуйста можно уже взять готовый сайт у вас? а то я не могу сделать блин) пожалуйста

Автор: Артём 29.12.2012, 21:50

Маза, чо-чо? Какой сайт, ты о чём?) В Первом посту всё написано понятно. Читай и делай как там написано.

Автор: KCAHDEP 23.9.2013, 20:06

Заметил такую неприятную особенность при рестарте или выключении/включении скрипта данные в таблице data.tbl не сохраняются, все рекорды, возраст хаба, все сбрасывается, подскажите пожалуйста из-за чего это может был и как с этим бороться?
os debian 7.1
lua 5.1
ptokax 4.1.2

Автор: Alexey 23.9.2013, 20:19

Возможно, у тебя не хватает прав на запись в файл data.tbl.

Автор: KCAHDEP 23.9.2013, 21:17

сейчас поставлю 777 )))

не помогло... :(

Кстати перестал сохранять результаты после того как последний раз упал хаб, а упал он почему то я так понял после того, как мне попытались перенаправить 500 юзеров, скомканно но вот как то так...

Если как то поможет то http://mydc.ru/index.html?showtopic=1329&view=findpost&p=35795 http://mydc.ru/r/?http://clip2net.com/s/5OhaFS

Автор: KCAHDEP 29.9.2013, 11:18

Идей я так понимаю больше нет? Жаль, хороший скрипт, но придется удалить ):

Автор: Alexey 30.9.2013, 19:34

Зачем придумывать новые версии, если предыдущая версия так и не опровергнута?
Ты выложил мало информации о своей проблеме, видимо, не слишком заинтересован в её решении. А если тебе всё-равно, то другим и подавно. Никто не расстроится, если ты удалишь скрипт.

Автор: RoL 8.12.2013, 8:14

И как это устронить?

Цитата
[19:27:26] /var/ptokax/scripts/StatPX_Lite.lua:206: attempt to call global 'GetChatRank' (a nil value)

Автор: RoL 8.12.2013, 22:53

Скажите как устронить эту проблему http://mydc.ru/r/?http://f3.s.qip.ru/17hKVg80N.png ?? Дело в том что ввеблоги магнет сылка отоброжаеться не правильно

Автор: and_luk 26.12.2013, 9:54

Ребят, подскажите пожалуйста... файлы для веб стата генеряца в cp1251 как сменить кодировку на utf-8 ?

Автор: Nickel89 8.6.2014, 13:32

Подскажите вопрос таков:
В confige

Цитата
tLocal = { -- Диапазоны локальной сети
{"10.42.0.0","10.42.0.255",},
{"31.148.0.0","31.148.127.255"},
{"46.187.0.0","46.187.127.255"},
{"95.141.224.0","95.141.231.255"},
{"213.88.0.0","213.88.127.255"},
}



При добавление базы стран IpToCountry, в статистике, мой ник - Местоположение - "Не известно"

мой ип при подключение к хабу 10.42.0.50

Автор: Артём 9.6.2014, 0:28

Nickel89, скрипт перезапускал после добавления своего диапазона?

Автор: Nickel89 10.6.2014, 15:56

Цитата(Артём @ 9.6.2014, 1:28) *
Nickel89, скрипт перезапускал после добавления своего диапазона?


Обязательно! и скритп и хаб и комп --- непашет! ((((

Автор: Артём 10.6.2014, 19:12

Nickel89, а что именно должно "пахать"? А то я не пойму.

Автор: Nickel89 10.6.2014, 22:47

Цитата(Артём @ 10.6.2014, 20:12) *
Nickel89, а что именно должно "пахать"? А то я не пойму.



Захожу в статистику - открываю вкладку "юзеры онлайн" там мой ник ( ип 10.42.0.50 ) местоположение - неизвестно!

должно писать локально! after_boom.gif

Автор: Артём 10.6.2014, 23:54

Nickel89, в твоём первом сообщение ошибка.

Цитата
tLocal = { -- Диапазоны локальной сети
{"10.42.0.0","10.42.0.255",},
{"31.148.0.0","31.148.127.255"},
{"46.187.0.0","46.187.127.255"},
{"95.141.224.0","95.141.231.255"},
{"213.88.0.0","213.88.127.255"},
}

ты поставил лишнюю запятую, может уберёшь и заработает big_smile.gif

P.S. хотя, это и в моём скрипте да и в шапке так, запятая...

Автор: Nickel89 11.6.2014, 12:32

Цитата(Артём @ 11.6.2014, 0:54) *
Nickel89, в твоём первом сообщение ошибка.

ты поставил лишнюю запятую, может уберёшь и заработает big_smile.gif

P.S. хотя, это и в моём скрипте да и в шапке так, запятая...



Уберал не помогало beat_brick.gif beat_brick.gif

Автор: Артём 15.6.2014, 19:05

Nickel89, а с чего ты взял что должно писать в мотд Локалка? big_smile.gif

Автор: Nickel89 17.6.2014, 17:25

Цитата(Артём @ 15.6.2014, 20:05) *
Nickel89, а с чего ты взял что должно писать в мотд Локалка? big_smile.gif



Все готова! в базе IP-To-Country - прописал - "167772160","184549375","ripencc","762480000","LN","RUS","Russian Federation" after_boom.gif
IP-To-Country
# FILE FORMAT IPV4
# ================
#
# --------------------------------------------------------------
# All lines beginning with either "#" or whitespace are comments
# --------------------------------------------------------------
#
# IP FROM IP TO REGISTRY ASSIGNED CTRY CNTRY COUNTRY
# "1346797568","1346801663","ripencc","20010601","il","isr","Israel"
#
# IP FROM & : Numerical representation of IP address.
# IP TO Example: (from Right to Left)
# 1.2.3.4 = 4 + (3 * 256) + (2 * 256 * 256) + (1 * 256 * 256 * 256)
# is 4 + 768 + 13,1072 + 16,777,216 = 16,909,060
#
# REGISTRY : apcnic, arin, lacnic, ripencc and afrinic
# Also included as of April 22, 2005 are the IANA IETF Reserved
# address numbers. These are important since any source claiming
# to be from one of these IPs must be spoofed.
#
# ASSIGNED : The date this IP or block was assigned. (In Epoch seconds)
# NOTE: Where the allocation or assignment has been transferred from
# one registry to another, the date represents the date of first
# assignment or allocation as received in from the original RIR.
#

"LN","RUS","Russian Federation" - LN = "Локальная сеть"
Страны
AU = "Австралия", AT = "Австрия", AZ = "Азербайджан", AX = "Аландские острова", AL = "Албания", DZ = "Алжир", 
UM = "Внешние малые острова (США)", VI = "Американские Виргинские острова", AS = "Американское Самоа", AI = "Ангилья", 
AO = "Ангола", AD = "Андорра", AQ = "Антарктида", AG = "Антигуа и Барбуда", AR = "Аргентина", AM = "Армения", AW = "Аруба", 
AF = "Афганистан", BS = "Багамы", BD = "Бангладеш", BB = "Барбадос", BH = "Бахрейн", BZ = "Белиз", BY = "Беларусь", 
BE = "Бельгия", BJ = "Бенин", BM = "Бермуды", BG = "Болгария", BO = "Боливия", BA = "Босния и Герцеговина", 
BW = "Ботсвана", BR = "Бразилия", IO = "Британские территории в Индийском океане", VG = "Британские Виргинские острова", 
BN = "Бруней", BF = "Буркина Фасо", BI = "Бурунди", BT = "Бутан", VU = "Вануату", VA = "Ватикан", GB = "Великобритания", 
HU = "Венгрия", VE = "Венесуэла", TL = "Восточный Тимор", VN = "Вьетнам", GA = "Габон", HT = "Гаити", GY = "Гайана", 
GM = "Гамбия", GH = "Гана", GP = "Гваделупа", GT = "Гватемала", GN = "Гвинея", GW = "Гвинея-Бисау", DE = "Германия", 
GI = "Гибралтар", HN = "Гондурас", HK = "Гонконг", GD = "Гренада", GL = "Гренландия", GR = "Греция", GE = "Грузия", 
GU = "Гуам", DK = "Дания", CD = "ДР Конго", DJ = "Джибути", DM = "Доминика", DO = "Доминиканская Республика", 
EU = "Европейский Союз", EG = "Египет", ZM = "Замбия", EH = "Западная Сахара", ZW = "Зимбабве", IL = "Израиль", 
IN = "Индия", ID = "Индонезия", JO = "Иордания", IQ = "Ирак", IR = "Иран", IE = "Ирландия", IS = "Исландия", 
ES = "Испания", IT = "Италия", YE = "Йемен", KP = "КНДР", CV = "Кабо-Верде", KZ = "Казахстан", KY = "Каймановы острова", 
KH = "Камбоджа", CM = "Камерун", CA = "Канада", QA = "Катар", KE = "Кения", CY = "Кипр", KG = "Киргизия", KI = "Кирибати", 
CN = "Китай", CC = "Кокосовые острова", CO = "Колумбия", KM = "Коморские Острова", CR = "Коста-Рика", CI = "Кот-д’Ивуар", 
CU = "Куба", KW = "Кувейт", LA = "Лаос", LV = "Латвия", LS = "Лесото", LR = "Либерия", LB = "Ливан", LY = "Ливия", 
LT = "Литва", LI = "Лихтенштейн", LU = "Люксембург", MU = "Маврикий", MR = "Мавритания", MG = "Мадагаскар", 
YT = "Майотта", MO = "Аомынь", MK = "Македония", MW = "Малави", MY = "Малайзия", ML = "Мали", MV = "Мальдивы", 
MT = "Мальта", MA = "Марокко", MQ = "Мартиника", MH = "Маршалловы Острова", MX = "Мексика", MZ = "Мозамбик", 
MD = "Молдова", MC = "Монако", MN = "Монголия", MS = "Монтсеррат", MM = "Мьянма", NA = "Намибия", NR = "Науру", 
NP = "Непал", NE = "Нигер", NG = "Нигерия", AN = "Нидерландские Антильские острова", NL = "Нидерланды", NI = "Никарагуа", 
NU = "Ниуэ", NC = "Новая Каледония", NZ = "Новая Зеландия", NO = "Норвегия", AE = "ОАЭ", OM = "Оман", 
CX = "Остров Рождества", CK = "Острова Кука", HM = "Херд и Макдональд", PK = "Пакистан", PW = "Палау", PS = "Палестина", 
PA = "Панама", PG = "Папуа — Новая Гвинея", PY = "Парагвай", PE = "Перу", PN = "Острова Питкэрн", PL = "Польша", 
PT = "Португалия", PR = "Пуэрто-Рико", CG = "Республика Конго", RE = "Реюньон", RU = "Россия", RW = "Руанда", 
RO = "Румыния", US = "США", SV = "Сальвадор", WS = "Самоа", SM = "Сан-Марино", ST = "Сан-Томе и Принсипи", 
SA = "Саудовская Аравия", SZ = "Свазиленд", SJ = "Шпицберген и Ян-Майен", MP = "Северные Марианские острова", 
SC = "Сейшельские Острова", SN = "Сенегал", VC = "Сент-Винсент и Гренадины", KN = "Сент-Киттс и Невис", 
LC = "Сент-Люсия", PM = "Сен-Пьер и Микелон", RS = "Сербия", CS = "Сербия и Черногория", SG = "Сингапур", SY = "Сирия", 
SK = "Словакия", SI = "Словения", SB = "Соломоновы Острова", SO = "Сомали", SD = "Судан", SR = "Суринам", 
SL = "Сьерра-Леоне", SU = "СССР", TJ = "Таджикистан", TH = "Таиланд", TW = "Тайвань", TZ = "Танзания", TG = "Того", 
TK = "Токелау", TO = "Тонга", TT = "Тринидад и Тобаго", TV = "Тувалу", TN = "Тунис", TM = "Туркмения", TR = "Турция", 
UG = "Уганда", UZ = "Узбекистан", UA = "Украина", UY = "Уругвай", FO = "Фарерские острова", FM = "Микронезия", 
FJ = "Фиджи", PH = "Филиппины", FI = "Финляндия", FK = "Фолклендские острова", FR = "Франция", GF = "Французская Гвиана", 
PF = "Французская Полинезия", TF = "Французские Южные и Антарктические Территории", HR = "Хорватия", CF = "ЦАР", 
TD = "Чад", ME = "Черногория", CZ = "Чехия", CL = "Чили", CH = "Швейцария", SE = "Швеция", LK = "Шри-Ланка", 
EC = "Эквадор", GQ = "Экваториальная Гвинея", ER = "Эритрея", EE = "Эстония", ET = "Эфиопия", ZA = "ЮАР", 
KR = "Республика Корея", GS = "Южная Георгия и Южные Сандвичевы острова", JM = "Ямайка", JP = "Япония", 
BV = "Остров Буве", NF = "Остров Норфолк", SH = "Остров Святой Елены", TC = "Тёркс и Кайкос", WF = "Уоллис и Футуна", 
LN = "Локальная сеть",

Автор: aleksei1122 10.10.2014, 9:27

Цитата(RoL @ 8.12.2013, 16:14) *
И как это устронить?

такая-же ошибка вылазиет. редко,но скрипт-то падает.
cегодня там какойта юзер немного поспамил
Цитата
[10/10/14:10:33:34] <Roach_D> 9н76нннг89
[10/10/14:10:33:37] <Roach_D> ъ
[10/10/14:10:33:47] <Roach_D> .
но и до этого было чтото типа такого ,Но без падений.
вот статистика падений.последний раз до cегодня было как видно 7 марта.
Код
[2013-07-09 00:31:51]: C:\Program Files\PtokaX\scripts\StatPX_Lite.lua:206: attempt to call global 'GetChatRank' (a nil value)
[2014-01-08 11:32:12]: C:\Program Files\PtokaX\scripts\StatPX_Lite.lua:206: attempt to call global 'GetChatRank' (a nil value)
[2014-02-25 03:43:36]: C:\Program Files\PtokaX\scripts\StatPX_Lite.lua:206: attempt to call global 'GetChatRank' (a nil value)
[2014-03-07 22:18:28]: C:\Program Files\PtokaX\scripts\StatPX_Lite.lua:206: attempt to call global 'GetChatRank' (a nil value)
[2014-10-10 10:34:13]: C:\Program Files\PtokaX\scripts\StatPX_Lite.lua:206: attempt to call global 'GetChatRank' (a nil value)


вот сеня смотрю флай написал
Код
Ошибка StatPX Lite: C:\Program Files\PtokaX\scripts\StatPX_Lite.lua:206: attempt to call global 'GetChatRank' (a nil value)

вот тот кусок кода,больше фраза нигде не нашлась
Код
Core.SendToAll("<"..(SetMan.GetBool(18) and SetMan.GetString(21) or "Hub-Security").."> "..user.sNick.." набрал "..tChatRank[user.sNick].." сообщений и получает звание \""..GetChatRank(tChatRank[user.sNick]).."\".")

Автор: taylor 10.10.2014, 9:49

в которую папку флаги зикидать нужно ??

Автор: Артём 10.10.2014, 12:57

taylor, честно!?! начинаешь кумарить...
Ты читаешь вообще темы со скриптами или тупо скачал, не понял, задал вопрос и ждёшь ответ!?!

Цитата
Вопрос: В какую папку надо положить папки со смайлами и флагами чтобы они отображались на сайте?
Ответ: В ту же папку, в которую сохраняются сгенерированные html-страницы

Автор: fenrir 14.11.2014, 6:19

Поделитесь опытом установки сабжа на debian 7 lua 5.2 последняя птока. Не запускается скрипт нивкакую. Как праавильно указать путь к папке генерации страницы?

Автор: aleksei1122 23.11.2014, 11:25

скажите пожалст,что надо поправить-добавить,чтобы скрипт писал в логе чата не только время и дату,но и ip юзера,отправившего сообщение.

Код
ChatTime = "%ip:%D:%H:%M:%S",    -- Формат времени в веб-логе чата.

все работает ,кроме ip )

Автор: Артём 24.11.2014, 1:30

aleksei1122, а ты внимательно читаешь? написано же ChatTime, с какого перепугу должен там работать показ IP?

Возможно здесь нужно править. строки 511 - 527 в самом скрипте StatPX_Lite.lua
Код
    {"%[CHATLOG%]",MOTDChat and [[
    if tData.ChatLogUpdate then
        tData.ChatLog = ""
        local maxn = #tChatLog
        local minn = maxn-tCfg.ChatLogSize
        if minn < 1 then minn = 1 end
        for i = minn,maxn do
            if tChatLog[i] then
                tData.ChatLog = tData.ChatLog.."]]..MOTDChat:gsub("%c",function(char) return "\\"..char:byte() end):gsub("\\\"","\\%1")
                        :gsub("%[TIME%]","\"..os.date(tCfg.ChatTime,tChatLog[i][1])..\"")
                        :gsub("%[NICK%]","\"..(tChatLog[i][2] and MOTDChatNick:gsub(\"%%[NICK%%]\",tChatLog[i][2]) or \"\")..\"")
                        :gsub("%[MESSAGE%]","\"..tChatLog[i][3]..\"")..[["
            end
        end
        tData.ChatLogUpdate = false
    end
    result = result:gsub("%[CHATLOG%]",tData.ChatLog:gsub("%%","%%%%"),1)]] or ""},

Автор: =Alexandr= 4.7.2015, 21:27

Ребят, как установить Tiny Hublist ?) Подскажите пожалуйста, я чайник :-(

Автор: Triks 24.8.2015, 15:54

Цитата(=Alexandr= @ 4.7.2015, 21:27) *
Ребят, как установить Tiny Hublist ?) Подскажите пожалуйста, я чайник :-(

Интересует этот же вопрос, специально зарегистрировался, если кто знает стукните в аську 2343324

Автор: Dani_Filth 27.8.2015, 10:52

Ребят привет. Не сколько вопросов к вам по этому скрипту.
1. Как сделать что бы последние зарегестрированы пользователи отображались на статистике если у меня стоит хуба ?
2.Можно ли сделать так что бы статистика ещё была доступна и с телефона просмотреть ?

Автор: Артём 3.9.2015, 10:32

Dani_Filth, 1 - не понял, 2 - конечно можно, есть же Web-статистика, ставишь, настраиваешь, а потом просто открываешь с телефона браузер и вводишь ссылку на свой ресурс и смотришь big_smile.gif

Автор: Ksan 9.1.2017, 1:32

Почему-то вдруг скрипт стал ошибаться на 1 час. Например, в графиках (в 24-часовых) время последней отметки кажет 04:00, а реальное время - 05:00.
Эта ошибка появилась где-то между 5 и 8 января. Как-то не особо обращал внимание на время, но вот обнаружил и проверил отметки времени в чатлогах (последняя отмеченная запись с правильным временем - как раз 5 января, дальше не было сохранённых комментов). То есть, ошибка глобальная - и в логах и в графиках, везде. Вот, например, сейчас вижу в веб странице скрипта в главном окне строку:

Цитата
Статистика обновлена 9 янв в 4:24. Обновляется раз в 5 минут.

А должно быть время 5:24.
Время на самом компьютере показывает правильно. Откуда берётся время минус 1 час (или в каком месте скрипта появляется ошибка), не смог понять с ходу при просмотре скрипта и его частей. Тем более, в чужом сложном скрипте трудно разбираться.
ОС - Винда 10.

Автор: dimetro 10.1.2017, 2:40

Цитата(Ksan @ 9.1.2017, 1:32) *
Почему-то вдруг скрипт стал ошибаться на 1 час. Например, в графиках (в 24-часовых) время последней отметки кажет 04:00, а реальное время - 05:00.
Эта ошибка появилась где-то между 5 и 8 января. Как-то не особо обращал внимание на время, но вот обнаружил и проверил отметки времени в чатлогах (последняя отмеченная запись с правильным временем - как раз 5 января, дальше не было сохранённых комментов). То есть, ошибка глобальная - и в логах и в графиках, везде. Вот, например, сейчас вижу в веб странице скрипта в главном окне строку:
А должно быть время 5:24.
Время на самом компьютере показывает правильно. Откуда берётся время минус 1 час (или в каком месте скрипта появляется ошибка), не смог понять с ходу при просмотре скрипта и его частей. Тем более, в чужом сложном скрипте трудно разбираться.
ОС - Винда 10.

Работает точно и правильно. Ось: Вин. Сервер 2012 secret_smile.gif

Автор: alex82 10.1.2017, 22:17

Ksan, если вызвать os.date(), какой будет ответ?

Автор: Ksan 10.1.2017, 22:36

alex82, похоже, ответ будет аналогичный...
Вот сообщение от другого скрипта, использующего эту команду ( os.date() ):

Цитата
[19:00:01] <-Bot-> Время хаба: 18:00:00, сегодня 10 января, вторник..


Похоже, дело не в вашем скрипте (StatPX Lite), а в Птоке (не хочется думать, что в системе). Нужно попробовать перезагрузить систему или Птоку для начала, может, исправится..
Попозже проверю, когда народу на хабе будет меньше.

P.S.: Пикантный нюанс в том, что до этого всё было без проблем.

UPD:
Во, теперь всё нормально! Перезагрузил комп, тем более, как раз обновления к системе подошли и требовалась перезагрузка.. Хотя, возможно, для обсуждаемой проблемы было бы достаточно перезапустить Птоку.. но уже не узнать..
Цитата
[04:35:00] <-Bot-> Время хаба: 04:34:59, сегодня 11 января, среда..

Автор: Brains 15.6.2018, 0:56

Всех приветствую! Подскажите пожалуйста. С переходом с Win на Ubuntu 14.04 возникла проблема, в плане истории чата. Сам файл data.tbl читает и отображает информацию на хабе, но новые сообщения из чата не сохраняет. Права выставлены, хаб стартует из под root как служба. Были у кого похожие проблемы?