PtokaX 0.5.0.1 Mod, Модификация PtokaX от alex82 |
Здравствуйте, гость ( Вход | Регистрация )
PtokaX 0.5.0.1 Mod, Модификация PtokaX от alex82 |
4.3.2013, 17:39
Сообщение
#21
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
Поскольку исходники PtokaX нынче доступны в полном объеме (включая проекты Visual Studio), у многих анонимусов руки так и чешутся запилить форк сего замечательного хабсофта. Я оказался в их числе PtokaX 0.5.0.1 Mod Версия: 0.5.0.1 Модификация: mod 11 Операционная система: Windows, Linux Описание: Решил выложить на всеобщее обозрение свою модификацию PtokaX под кодовым названием PtokaX Mod. Список изменений относительно оригинальной версии выглядит так: mod 11 Добавлено: Расширение протокола CTM2HUB. Добавлено: Задержка перед отправкой $Lock (которая якобы помогает при DDoS-атаках). mod 10 Исправлено: Неверные названия некоторых стран, возвращаемые функцией IP2Country.GetCountryName. Добавлено: Возможность получения названия страны по коду с помощью функции IP2Country.GetCountryName. Исправлено: Предупреждения при компиляции версии, хранящей пароли в зашифрованном виде. Исправлено: Компиляция библиотеки SHA-2 под новыми версиями gcc. mod 9 Исправлено: Профиль юзера устанавливался до успешной проверки пароля, что представляло собой потенциальную уязвимость (перенесено из тестовой версии). Исправлено: Неполный IP-адрес отображался как некорректный в тех случаях, когда юзер, использующий IPv6, отправлял адрес IPv4 в команде (перенесено из тестовой версии несмотря на то, что суть бага мне не совсем ясна). Исправлено: Права доступа для файлов и папок в *nix (перенесено из тестовой версии). Исправлено: Возможные падения GUI-версии хаба при закрытии окон (перенесено из тестовой версии). Исправлено: Неверные размеры массивов в коде редактора скриптов (перенесено из тестовой версии). Исправлено: Невозможность использования в командах адресов IPv6, чья длина превышает 15 символов (перенесено из тестовой версии). Исправлено: Ошибки в командах !rangeban и !rangeunban. Добавлено: Автозапуск скрипта locale.lua. mod 8 Изменено: Отныне юзеры с одинаковыми профилями не смогут банить друг друга. Данное изменение не относится к юзерам с профилем 0 (Master): эти засранцы по-прежнему могут банить кого угодно. Добавлено: Ограничение продолжительности временных банов. В GUI данная опция находится на вкладке "Настройки банов". ID для SetMan.(G/S)etNumber - 114. Добавлено: Опция, позволяющая менять интервал между служебными циклами. Уменьшение интервала снижает скорость отклика хаба на действия юзеров, однако это также приводит к некоторому повышению нагрузки на процессор. В GUI данная опция находится на вкладке "Больше настроек". ID для SetMan.(G/S)etNumber - 115. Исправлено: Ошибка в linux-версии хаба, приводившая к некорректной работе таймеров с интервалом, не кратным одной секунде. Исправлено: Окончательное решение вопроса локалей. Теперь локаль устанавливается изнутри Ptokax. В связи с этим былы добавлены 2 параметра настроек. ID для SetMan.(G/S)etString - 37 (Windows) и 38 (NIX). В GUI доступна только локаль Windows. Поскольку в Windows локаль устанавливается только для текущего модуля (т.е. выполняем setlocale() в PtokaX.exe - локаль меняется только для PtokaX.exe, выполняем setlocale() в lua.dll - локаль меняется только для lua.dll), необходимость в скрипте locale.lua никуда не делась. Добавлено: Установка автозапуска хаба при выполнении make install. Добавлено: Цели uninstall, on и off в makefile. Цели make on и make off позволяют включить и отключить автозагрузку хаба соответственно. Цель make uninstall используется для удаления файлов хаба (при этом удаляются только исполняемые файлы и ссылки автозапуска, рабочую директорию необходимо удалить вручную). mod 7 Исправлено: Проверка прав доступа при создании банов с помощью команды $Kick. mod 6 Добавлено: Команда !reloadcountry, позволяющая перезагрузить базы IP-To-Country. Команда доступна юзерам с профилем 0. Добавлено: Функция Core.BotMyINFO(sBotNick, sBotMyINFO), позволяющая изменить $MyINFO бота, зарегистрированного из скрипта. Полная проверка синтаксиса $MyINFO не производится. Исправлено: Максимальное значение параметра "Ограничение входа юзеров" в GUI. Удалено: Бессмысленная опция "Отключать клиенты, отправляющие $Supports с ошибками". При ближайшем рассмотрении выяснилось, что "ошибками" считается лишний пробел в конце команды. Код, отвечающий за определение этой "ошибки" сохранен, поскольку он влияет на обработку магического байта, и в этом, возможно, есть некий смысл. Добавлено: Опция, позволяющая отключить обработку магического байта. При включении заработает отображение пола в GreylinkDC, но могут появиться ошибки коммуникации между разными клиентами, поскольку при использование старшей половины байта каждый разработчик DC-клиента извращался как мог. Исправлено: Функция os.clock под Linux. Теперь она работает так же, как под Windows - возвращает время с момента запуска хаба с точностью до миллисекунды. По умолчанию данный костыль включен, отключается в stdinc.h. Изменено: При корректной остановке хаба всем юзерам рассылается сообщение о перезапуске. Раньше это сообщение отправлялось лишь при выполнении команды !restart. Изменено: Время последнего входа зарегистрированного юзера обновляется не только при его входе на хаб, но и при выходе. Добавлено: Переменная iOnlineTime, отображающее время, проведенное зарегистрированным юзером на хабе (в секундах). Переменная обновляется при выходе юзера, а также при вызове RegMan.UpdateTimes() (см. ниже). Добавлено: Функция RegMan.UpdateTimes(), обновляющая значения iLastEnter и iOnlineTime в профилях зарегистрированных юзеров, находящихся на хабе. iOnlineTime вычисляется с учетом текущего времени и значения iLastEnter, а iLastEnter устанавливается равным текущему времени. Добавлено: Функция RegMan.SetTimes(sNick, iRegDate, iLastEnter, iOnlineTime), позволяющая вручную установить время регистрации, время последнего входа и время онлайн для указанного зарегистрированного юзера. Перенесены некоторые изменения из PtokaX 0.5.0.2 mod 5 Исправлено: Падение хаба при загрузке банов. (перенесено из тестовой версии) Исправлено: Корректное завершение работы при помощи os.exit(). (перенесено из тестовой версии) Добавлено: В makefile добавлена рекурсия для компиляции tinyxml. Теперь его не нужно собирать отдельно перед сборкой PtokaX (перенесено из тестовой версии) Исправлено: Ошибка в скрипте init.d Исправлено: Ошибки в русском языковом файле. Его можно пилить вечно, и все равно будет кривой :( mod 4 Исправлено: Ошибки в функции Core.HideUserKey Исправлено: Несколько ошибок в настройках прав доступа для незарегистрированных. Испорчено: Опция "Не проверять IP в командах DC" в профиле незарегистрированного юзера. Теперь она игнорируется, и, как следствие, IP всегда проверяется. Это не баг, это фича. Добавлено: Костыль, исправляющий регистрочувствительность кириллических ников в некоторых версиях Linux. По умолчанию отключен, включается в stdinc.h Исправлено: Команда restart скрипта init.d mod 3 Добавлено: Обработка ошибок при загрузке XML-файлов. Если в одном из файлов есть синтаксическая ошибка, программа сообщает об этом и аварийно завершает работу вместо того, чтобы втихую загрузить значения по умолчанию. Исправлено: Кодировка, указанная в заголовках XML-файлов. Исправлено: Если хаб не смог запуститься (например, по причине занятости всех указанных портов), настройки будут сохранены, что даст возможность исправить их. Добавлено: Функция Core.HideUserKey(tUser, bHide), позволяющая скрыть ключ юзера. Исправлено: Добавление/удаление ключей при изменении зарегистрированных юзеров. Исправлено: Несколько ошибок в настройках прав доступа для незарегистрированных. Добавлено: Функция Core.IsolateUser(tUser, bState), позволяющая изолировать юзера от главного чата. Изолированный юзер не видит сообщений других юзеров, а они, соответственно, не видят сообщения изолированного юзера. Добавлено: Функция Core.SendToNonisolated(sData), отправляющая данные всем неизолированным юзерам (см. предыдущий пункт). Используется аналогично Core.SendToAll(sData). Исправлено: В сборке x64 отключено использование больших адресов. Теперь хаб не падает при запуске скриптов. Как результат - в сборке нельзя использовать библиотеки, предназначенные для оригинальной PtokaX 0.5.0.1. Исправлено: Компиляция под Debian и Ubuntu различных архитектур. Надеюсь, в этот раз исправил правильно. Исправлено: В скрипте для init.d исключена возможность повторного запуска демона, а также исправлена передача ему переменных окружения. mod 2 Изменено: В сборках x86 отключено использование инструкций SSE для совместимости с некоторыми не очень свежими процессорами от AMD. Исправлено: Установка размеров окон при различных размерах системных шрифтов. Исправлено: Компиляция под Debian. Исправлено: Небольшая ошибка в makefile при выполнении цели install. Исправлено: Скрипт locale.lua Исправлено: Пропущенные функции и параметры в scripting-interface.txt mod Исправлено: При нажатии кнопки "Принять" настройки не сохранялись в файл (подозреваю, что кое-кто считает это фичей, а не багом). Изменено: К черту бинарный бред. Список зарегистрированных юзеров снова хранится в файле XML. Изменено: Для 32-разрядной версии метод вызова функций изменен на cdecl, что позволило испльзовать библиотеки, предназначенные для Lua-AIO и RusHub. Изменено: Положение и размеры кнопок на вкладке "Статистика". Изменено: Отключено открытие скрипта по двойному клику в списке. Глубокого смысла в этом нет, просто мне так удобнее . Исправлено: Доведен до ума файл русской локализации. Добавлено: В профиль зарегистрированного юзера добавлены дата регистрации, дата последнего входа и один текстовый параметр для хранения произвольных данных. В связи с этим в таблицу зарегистрированного юзера были добавлены поля iRegDate, iLastEnter и sCustom. Для установки поля sCustom используется функция RegMan.SetCustom(sNick, sString). Поле sCustom может отсутствовать. Изменено: При сохранении настроек в файл записываются все параметры, а не только те, значения которых отличаются от значений по умолчанию. Добавлено: Проверка прав доступа для команды !stats. Добавлено: Блокировка неизвестных команд. Отключается на вкладке "Дополнительно". Добавлено: Возможность отключения приветствия (Этот хаб работает под управлением...). Включается на вкладке "Дополнительно" Имя параметра в настройках - ShowWelcome, ID для SetMan.(S/G)etBool - 57. Изменено: Отключение проверки ключа вынесено в настройки. В связи с этим был удален ключ командной строки /nokeycheck. Добавлено: Возможность отключения сжатия zlib. Отключается на вкладке "Больше настроек". Изменено: Профиль по умолчанию для юзеров, регистрируемых с помощью GUI. Добавлено: Функция print. В GUI-версии функция выводит текст в окно ошибок скриптов, в консольной - в главный чат юзерам с профилем Master. Исправлено: Самодеятельность TinyXML, касающаяся обработки пустых символов. Несколько пустых символов подряд заменялись одним пробелом. По непонятной причине неразрывный пробел также считался пустым символом. Исправлено: При запуске принудительно устанавливается локаль "C" для чисел. Это поможет избежать проблем с сохранением дробных чисел если сервер, на котором работает хаб, настраивали жопой. Добавлено: Версия PtokaX, хранящая пароли в зашифрованном (SHA-256) виде. Изменено: Настройки по умолчанию. Строковые параметры переведены на русский. Изменено: Список стран IP-To-Country: Добавлены коды стран, названия стран переведены на русский. Добавлено: Сообщения об ошибках скриптов отправляются операторам. Добавлено: Возможность отключения отображения трассировки стека Lua в ошибках скриптов. Добавлено: Параметр bZPipe, отображающий поддержку юзером сжатия. Код для Core.GetUserData - 64 Исправлено: Устранено мелькание окна консоли при вызове функций os.execute и io.popen. Добавлено: Настройка прав доступа для незарегистрированных юзеров. Добавлено: Альтернативный синтаксис для функции регистрации бота: Core.RegBot(sNick, sMyINFOString, bHaveKey). Полная проверка синтаксиса $MyINFO не производится. Добавлено: Функция Core.HideUser(tUser, bHide), позволяющая скрыть юзера из списка. Добавлено: Функции Core.GetDCStats, Core.GetNetStats. Добавлено: События BadPassArrival и ValidateDenideArrival. Исправлено: При загрузке настроек из файла строковые настройки заменялись настройками по умолчанию в тех случаях, когда длина сохраненной строки равна нулю, а длина строки по умолчанию больше нуля. По этой причине в предыдущих версиях мода было невозможно переключить язык на английский, а в оригинальной версии - удалить адрес перенаравления. Исправлено: Изменение паролей зарегистрированных юзеров. Исправлено: Если длинные MyINFO отправляются только разрешенным профилям, а профиль юзера позволяет ему получать полные MyINFO, то боты, зарегистрированные скриптами, становились видны ему только после переподключения к хабу. Добавлено: Функция Core.UserNoQuit(tUser, bState), позволяющая подавить команду $Quit при выходе юзера. Кому-то функция может показаться бессмысленной, однако я знаю наверняка, для чего я ее добавил. Возможно, и вы когда-нибудь узнаете . 0.5.0.1_mod11_x86.rar ( 7.36 мегабайт ) Кол-во скачиваний: 65 0.5.0.1_mod11_x64.rar ( 6.3 мегабайт ) Кол-во скачиваний: 71 0.5.0.1_mod11_src.zip ( 1.05 мегабайт ) Кол-во скачиваний: 66 Старые версии
0.5.0.1_mod10_x86.rar ( 7.38 мегабайт )
Кол-во скачиваний: 2 0.5.0.1_mod10_x64.rar ( 6.3 мегабайт ) Кол-во скачиваний: 2 0.5.0.1_mod10_src.zip ( 1.05 мегабайт ) Кол-во скачиваний: 4 0.5.0.1_mod10_hashpass.rar ( 3.85 мегабайт ) Кол-во скачиваний: 2 Остальные версии можно найти в моей шаре на хабе MyDC Как правильно обновляться... ...с оригинальной версии на mod: Первым делом конвертируем базу из бинарного формата в xml. Делать это нужно на оригинальной версии, поскольку скрипт использует для конвертирования API хаба. Затем останавливаем хаб, открываем файл cfg/Profiles.xml, и добавляем профиль для незарегистрированных юзеров: Длиннокод Код <Profile> <Name>Unreg</Name> <Permissions>00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 0000000000000000000</Permissions> </Profile> Если Вы обновляетесь с версии 0.4.x.x, работавшей под Windows, у Вас может возникнуть еще одна проблема: в списке зарегистрированных юзеров обнаружится большое число юзеров с одним и тем же ником, но в разных регистрах. При удалении каждого повторяющегося юзера, GUI-версия PtokaX будет выдавать сообщение. Если Вам лень клацать кнопку "OK" 10500 раз, можете убить птоку диспетчером задач, и использовать для первого запуска консольную версию - она удалит дублирующихся юзеров тихо, а сообщения об удалении сохранит в файл system.log ...с PtokaX 0.5.0.0 mod3 на PtokaX 0.5.0.1 mod: Останавливаем хаб, добавляем в настройки профиль незарегистрированных юзеров (см. предыдущий пункт), запускаем хаб. Всё ...с mod на оригинальную версию: Останавливаем хаб, удаляем из конфига профиль незарегистрированных юзеров. После этого можно обновлять бинарники и запускать хаб - PtokaX сама сконвертирует базу регистраций в бинарный формат, а также удалит все ненужные (и даже некоторые нужные ) настройки. ...с обычной версии на версию, хеширующую пароли: Просто заменяем бинарники, и запускаем хаб. При запуске все пароли будут хешированы автоматически. ...с версии, хеширующей пароли, на обычную версию: Останавливаем хаб, заменяем бинарники, удаляем базу регистраций, запускаем хаб, и просим всех юзеров зарегистрироваться по-новой. Ну да, а Вы что думали? Расшифровать хешированные пароли невозможно. Именно по этой причине включение хеширования паролей производится таким извращенным способом. Версия, хранящая пароли в зашифрованном виде: 0.5.0.1_mod11_hashpass.rar ( 3.84 мегабайт ) Кол-во скачиваний: 12 Как это работает Пароли хранятся в виде Код |<Хэш пароля в hexadecimal-формате> Символ | в начале пароля нужен для того, чтобы PtokaX могла отличить шифрованные пароли от нешифрованных. Если при загрузке базы какие-либо пароли не соответствуют данному формату, они автоматически хешируются. Это позволяет не париться при переходе на шифрованную базу и при добавлении аккаунтов прямо в XML-файл.Следует помнить, что хешированные пароли расшифровать нельзя. Т.е вы не сможете сконвертировать базу обратно. Никак не сможете. СОВСЕМ никак. Также следует помнить, что зарегистрированных юзеров теперь нельзя редактировать с помощью PXControl, PRA, и им подобных. И да, если Ваш скрипт регистрации запрашивает старый пароль при его изменении, Вам придется прикрутить к нему библиотеку sha2. В архиве только exe'шник, все остальное берем из основного дистрибутива. Скрипт для конвертирования бинарной базы обратно в XML: GetBaseBack.lua ( 1.22 килобайт ) Кол-во скачиваний: 102 Если Вы переходите на данную версию с более новой, хранящей настройки и список скриптов в файлах .pxt, то Вам будет полезен конвертер: settings_back.lua ( 7.42 килобайт ) Кол-во скачиваний: 27 TODO По-человечески исправить отрисовку GUI. Думаю, многие заметили, что внешний вид окна оригинальной птоки сильно портится если по нему провести окном другого приложения. Сильнее всего эффект заметен в Windows 7 на упрощенных темах оформления. Связано это с тем, что PPK не до конца осилил создание GUI с помощью чистого WinAPI. Проблема в том, что я знаю WinAPI еще хуже, поэтому я даже не представляю, как это исправить. Поэтому я поступил следующим образом - убрал свойство WS_CLIPCHILDREN главного окна. После этого глюки с перерисовкой дочерних элементов исчезли, но они стали сильно мигать при изменении размеров окна. Перенести из PtokaX 0.5.0.0 mod 4 (этот мод никогда не выкладывался, поскольку я не закончил его) событие IsRegistered(). Оно используется для хранения аккаунтов во внешних БД, и в вышеназванной модификации вполне себе работало. Но в версии 0.5.0.1 PPK так отрефакторил ту часть кода, что добавить его стало некуда. Возможно, когда-нибудь я таки решусь на переделку. Исправить странные глюки в работе функции SendToNonisolated. Иногда при изменении прав профилей сообщения, отправленные с помощью этой функции начинают получать все юзеры, включая изолированных. Причину пока не выяснил. P.S. Не забывайте сообщать о найденных ошибках Версии, основанные на PtokaX 0.5.0.0 mod 3 Исправлено: При изменении настроек главного бота или ОпЧата из GUI, бот со старым ником оставался в списке юзеров до перезапуска хаба. Изменено: Профиль по умолчанию для юзеров, регистрируемых с помощью GUI. Добавлено: Альтернативный синтаксис для функции регистрации бота: Core.RegBot(sNick, sMyINFOString, bHaveKey). Полная проверка синтаксиса $MyINFO не производится. Добавлено: Возможность отключения сжатия zlib. Отключается на вкладке "Больше настроек". Изменено: Отключение проверки ключа вынесено в настройки. В связи с этим был удален ключ командной строки /nokeycheck. Исправлено: Незначительные исправления в языковом файле. Изменения в библиотеках: Устранено мелькание окна консоли при вызове функций os.execute и io.popen. mod 2 Исправлено: Самодеятельность TinyXML, касающаяся обработки пустых символов. Несколько пустых символов подряд заменялись одним пробелом. По непонятной причине неразрывный пробел также считался пустым символом. Добавлено: Функции Core.GetDCStats, Core.GetNetStats и Core.GetMemStats. Добавлено: Консольная версия PtokaX, хранящая пароли в зашифрованном (SHA-256) виде. Добавлено: Функция print. В GUI-версии функция выводит текст в окно ошибок скриптов, в консольной - в главный чат юзерам с профилем Master. Добавлено: Сообщения об ошибках скриптов отправляются юзерам с профилем Master. Исправлено: Пропущенные строки в языковом файле. Изменения в библиотеках: В библиотеке Lua параметры LUA_PATH_DEFAULT и LUA_CPATH_DEFAULT изменены на более каноничные, что позволит избежать проблем при подключении некоторых библиотек. Из Lua удалены костыли, добавленные для совместимости с библиотеками Lua-AIO. В связи с этим были удалены библиотеки iup, tcps и udps. Заменена библиотека iconv. Добавлены библиотеки sha1 и sha2. mod 1 Изменено: Для 32-разрядной версии метод вызова функций изменен на cdecl, что позволило испльзовать библиотеки, предназначенные для Lua-AIO и RusHub Изменено: Положение и размеры кнопок на вкладке "Статистика" Изменено: Отключено открытие скрипта по двойному клику в списке. Глубокого смысла в этом нет, просто мне так удобнее Исправлено: Доведен до ума файл русской локализации Изменено: Настройки по умолчанию. Строковые параметры переведены на русский Изменено: Список стран IP-To-Country: Добавлены коды стран, названия стран переведены на русский Добавлено: В никах запрещены символы от \0 до \31 Добавлено: Блокировка неизвестных команд. Отключается на вкладке "Дополнительно" Добавлено: Проверка прав доступа для команд !stats и !memstats Добавлено: События BadPassArrival и ValidateDenideArrival Добавлено: Параметр bZPipe, отображающий поддержку юзером сжатия. Код для Core.GetUserData - 64 Изменено: При сохранении настроек в файл записываются все параметры, а не только те, значения которых отличаются от значений по умолчанию Добавлено: Возможность отключения приветствия (Этот хаб работает под управлением...). Включается на вкладке "Дополнительно" Имя параметра в настройках - ShowWelcome, ID для SetMan.(S/G)etBool - 57 Изменено: К черту бинарный бред. Список зарегистрированных юзеров снова хранится в файле XML Исправлено: Ошибка IPToCountry - первый и последний адрес диапазона не считались его частью Исправлено: При нажатии кнопки "Принять" настройки не сохранялись в файл (подозреваю, что кое-кто считает это фичей, а не багом ) ptokax_0.5.0.0_mod3_x86.rar ( 8.69 мегабайт ) Кол-во скачиваний: 284 ptokax_0.5.0.0_mod3_x64.rar ( 4.79 мегабайт ) Кол-во скачиваний: 92 ptokax_0.5.0.0_mod3_src.zip ( 1.06 мегабайт ) Кол-во скачиваний: 52 Консольная версия, хранящая пароли в зашифрованном виде: ptokax_0.5.0.0_mod3_hashpass_sha2.rar ( 1.79 мегабайт ) Кол-во скачиваний: 7 Предыдущая версия, шифрующая пароли алгоритмом MD5: PtokaX_console_hashpass.rar ( 278.28 килобайт ) Кол-во скачиваний: 11 Дополнительную информацию можно найти во втором сообщении данной темы
|
|
|
2.9.2013, 15:14
Сообщение
#22
|
|
Глубина-глубина, я не твой… Отпусти меня, глубина… Группа: Пользователи Сообщений: 199 Регистрация: 13.10.2010 Из: Михайловск Пользователь №: 7 882 Спасибо сказали: 23 раза |
Где то тут читал что при использовании PtokaX 0.5.0.0 greylink отображает значки всех юзеров в женском роде, в этой сборке есть такое? И вообще это как то исправляется?
|
|
|
2.9.2013, 15:58
Сообщение
#23
|
|
7 квадратиков Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз |
Есть. Исправляется отключением показа пола в грейлинке.
|
|
|
7.10.2013, 22:36
Сообщение
#24
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 6 Регистрация: 26.2.2012 Пользователь №: 10 338 Спасибо сказали: 0 раз |
В старых версиях Ptokax Такого не было.... Скорее всего это баг какой то
|
|
|
15.12.2013, 16:51
Сообщение
#25
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 5 Регистрация: 9.12.2013 Пользователь №: 12 227 Спасибо сказали: 0 раз |
Доброго времени суток.
Вышло несколько тестовых и стабильных версий Ptokax с момента публикации шапки. С вниманием слежу за Вашими модами на их основе. Пожалуйста, обновите моды на актуальные версии. Благодарю. |
|
|
3.3.2014, 8:55
Сообщение
#26
|
|
Участник Группа: Пользователи Сообщений: 38 Регистрация: 24.11.2008 Из: Москва Пользователь №: 1 186 Спасибо сказали: 5 раз |
To Alex82: Пора выкладывать Mod 4, он же уже готов!
Ты мне давал дистр, я потестил - норм, единственное, нужно обязательно предупредить что создается новый профиль "UnReg", а то будет как у меня первый раз)) |
|
|
13.3.2014, 0:11
Сообщение
#27
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
Выложил PtokaX 0.5.0.1 mod. Список изменений выглядит внушительно, однако большинство из них было перенесено из предыдущих модов.
Обновление заняло чуть больше времени, чем планировалось. Связано это с тем, что PPK - большой любитель рефакторинга. Код версии 0.5.0.1 внешне настолько сильно отличается от предыдущей, что при попытке сравнить код двух версий WinMerge кричал, что это совершенно другая программа, после чего сразу же пытался застрелиться . Будем надеяться, что в этой версии PPK таки довел ООПность кода до совершенства, и следующие обновления будут проходить легче. |
|
|
13.3.2014, 20:01
Сообщение
#28
|
|
Продвинутый участник Группа: Пользователи Сообщений: 176 Регистрация: 11.7.2008 Пользователь №: 171 Спасибо сказали: 182 раза |
Тестирую новый мод. (Win7- 86-GUI). Всё работает, но. При попытке изменения масштаба окна GUI ловлю крэш PtokaX.
|
|
|
14.3.2014, 10:42
Сообщение
#29
|
|
Участник Группа: Пользователи Сообщений: 38 Регистрация: 24.11.2008 Из: Москва Пользователь №: 1 186 Спасибо сказали: 5 раз |
Уже наметил один глюк в GUI x86: в некоторых окнах настроек не умещаются нижние строки параметров, а размер окошка увеличить нельзя.
Например: "Основные настройки-Больше настроек" "Дополнительно" - самый нижний параметр "Приветствие" Проверю на версии x64, если там все нормально то отпишу. UPDATE Нашел еще одну проблему при компиляции на дебиане 7.0 x32... в результате не компилиться. Раскрывающийся текст Код In file included from /root/ptokax.5mod/core/stdinc.h:85:0, from /root/ptokax.5mod/core/hashRegManager.cpp:21: /root/ptokax.5mod/core/pxstring.h:42:2: note: string::string(const int64_t&) /root/ptokax.5mod/core/pxstring.h:41:2: note: string::string(const uint64_t&) /root/ptokax.5mod/core/pxstring.h:40:2: note: string::string(const int32_t&) /root/ptokax.5mod/core/pxstring.h:39:2: note: string::string(const uint32_t&) /root/ptokax.5mod/core/pxstring.h:38:2: note: string::string(const string&) /root/ptokax.5mod/core/pxstring.h:36:2: note: string::string(const char*) <near match> /root/ptokax.5mod/core/pxstring.h:36:2: note: no known conversion for argument 1 from 'time_t {aka long int}' to 'const char*' /root/ptokax.5mod/core/hashRegManager.cpp:721:69: error: call of overloaded 'string(time_t&)' is ambiguous /root/ptokax.5mod/core/hashRegManager.cpp:721:69: note: candidates are: In file included from /root/ptokax.5mod/core/stdinc.h:85:0, from /root/ptokax.5mod/core/hashRegManager.cpp:21: /root/ptokax.5mod/core/pxstring.h:42:2: note: string::string(const int64_t&) /root/ptokax.5mod/core/pxstring.h:41:2: note: string::string(const uint64_t&) /root/ptokax.5mod/core/pxstring.h:40:2: note: string::string(const int32_t&) /root/ptokax.5mod/core/pxstring.h:39:2: note: string::string(const uint32_t&) /root/ptokax.5mod/core/pxstring.h:38:2: note: string::string(const string&) /root/ptokax.5mod/core/pxstring.h:36:2: note: string::string(const char*) <near match> /root/ptokax.5mod/core/pxstring.h:36:2: note: no known conversion for argument 1 from 'time_t {aka long int}' to 'const char*' make: *** [/root/ptokax.5mod/obj/hashRegManager.o] Error 1
Причина редактирования: оверквотинг удалён
|
|
|
14.3.2014, 20:23
Сообщение
#30
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
Karumo,
По поводу первого. Настройки совсем не влазят? Скриншот можно? А насчет второго - линупс не перестает меня удивлять. Компилятор нового дебиана настолько отличается умом и сообразительностью, что не знает, что long int это int32_t (для которого есть соответствующая функция в pxstring.cpp), и пытается преобразовывать его в char . Даже не знаю, что тут посоветовать. Кстати, mod4 собирался под этой же осью? Если да, то я тем более ничего не понимаю - код, на который ругается компилятор, переехал из mod4 без каких-либо изменений. |
|
|
15.3.2014, 11:43
Сообщение
#31
|
|
Продвинутый участник Группа: Пользователи Сообщений: 176 Регистрация: 11.7.2008 Пользователь №: 171 Спасибо сказали: 182 раза |
To alex82
Вопросы по scripting-interface: 1. Не нашел функцию RegMan.SetCustom(sNick, sString) (забыл дописать?) 2. Не нашел как использовать iRegDate, iLastEnter (согласно добавлению в этом моде) В GUI при регистрации/изменения параметров зарегистрированного пользователя неплохо бы прикрутить кнопку редактирования доп. информации о пользователе (согласно RegMan.SetCustom(sNick, sString)). Например: если поле пустое (не заполнено), то в RegisteredUsers.xml оно будет отсутствовать. |
|
|
15.3.2014, 12:14
Сообщение
#32
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
Tsd,
1. Ага. Исправлю когда буду пересобирать архивы. 2. Вызвать RegMan.GetReg, и в таблице, которую вернет функция, будут эти два поля. Их значения устанавливаются хабом, и менять их из Lua нельзя. Цитата Например: если поле пустое (не заполнено), то в RegisteredUsers.xml оно будет отсутствовать. Оно так и работает - если вызвать RegMan.SetCustom c пустой строкой, параметр удалится из RegisteredUsers.xml
|
|
|
15.3.2014, 12:32
Сообщение
#33
|
|
Продвинутый участник Группа: Пользователи Сообщений: 176 Регистрация: 11.7.2008 Пользователь №: 171 Спасибо сказали: 182 раза |
Так?
RegMan.SetCustom(sNick, sString) |
|
|
15.3.2014, 12:40
Сообщение
#34
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
Ну а как же еще? 2 аргумента всего, трудно ошибиться. Если вызвать так:
Код RegMan.SetCustom("testuser", "Проверяем дополнительное текстовое поле") то поле установится. Если так - Код RegMan.SetCustom("testuser", "") то удалится
|
|
|
15.3.2014, 13:50
Сообщение
#35
|
|
Глубина-глубина, я не твой… Отпусти меня, глубина… Группа: Пользователи Сообщений: 199 Регистрация: 13.10.2010 Из: Михайловск Пользователь №: 7 882 Спасибо сказали: 23 раза |
на debian 6 тоже самое, может на ubuntu 10.10 попробовать?))
Причина редактирования: оверквотинг удалён
|
|
|
15.3.2014, 19:09
Сообщение
#36
|
|
Участник Группа: Пользователи Сообщений: 38 Регистрация: 24.11.2008 Из: Москва Пользователь №: 1 186 Спасибо сказали: 5 раз |
Karumo, По поводу первого. Настройки совсем не влазят? Скриншот можно? А насчет второго - линупс не перестает меня удивлять. Компилятор нового дебиана настолько отличается умом и сообразительностью, что не знает, что long int это int32_t (для которого есть соответствующая функция в pxstring.cpp), и пытается преобразовывать его в char . Даже не знаю, что тут посоветовать. Кстати, mod4 собирался под этой же осью? Если да, то я тем более ничего не понимаю - код, на который ругается компилятор, переехал из mod4 без каких-либо изменений. Вот скрины про глюки, о которые я писал: Скриншоты Мод4 я как-то не успел опробовать на линуксе... в понедельник попробую собрать новый мод на debian 6 x64... может прокатит... P.S. Инструкции в readme-ru.txt выполнял, все пакеты скомпелились, но как доходит до make птохи: уже писал что пишет. До этого, месяц назад ставил mod3 вообще без проблем скомпелился... |
|
|
16.3.2014, 7:30
Сообщение
#37
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
Выоложил mod2. Список изменений в первом посте.
|
|
|
16.3.2014, 13:51
Сообщение
#38
|
|
Участник Группа: Пользователи Сообщений: 38 Регистрация: 24.11.2008 Из: Москва Пользователь №: 1 186 Спасибо сказали: 5 раз |
|
|
|
18.3.2014, 14:46
Сообщение
#39
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
Снова вылезли глюки с локалями. Если на сервере по умолчанию стоит локаль UTF-8, а затем с помощью скрипта переключить ее на однобайтовую (например ru_RU.CP1251), hashRegManager перестанет видеть зарегистрированных юзеров с кириллическими никами. Чтобы этого избежать, нужно переключать локаль не скриптом lua, а тем скриптом, что отвечает за запуск хаба (control_script в дистрибутиве или файл /etc/init.d/ptokax, когда хаб уже установлен на сервер). Для этого нужно добавить в скрипт следующее:
Код LANG=ru_RU.CP1251 а затем удалить нафиг скрипт locale.lua, и перезапустить хаб. Для Windows все вышесказанное неактуально, поскольку там приложения при запуске всегда получают локаль "C". Перезалил архив с исходниками, предварительно поправив control_script и удалив locale.lua. |
|
|
19.3.2014, 5:30
Сообщение
#40
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
Вылез еще один косяк. Теперь, когда исходники нормально компилятся под Debian, они перестали компилиться под Ubuntu .
Компилятор ругается на функцию string::string(const long int & i32Number), которая была добавлена по той причине, что Debian не знает, что long int это int32_t и пытается преобразовать его в char *. Ubuntu же знает как правильно преобразовать типы, и ему не нравится, что в коде присутствует как string::string(const int64_t & i64Number) так и string::string(const long int & i32Number): Код /root/ptokax51/core/pxstring.h:44:2: ошибка: <string::string(const int64_t&)> cannot be overloaded with <string::string(const long int &)> Вопрос к знатокам: как правильно разрулить данную ситуацию? Можно ли при сборке исходников определить, под каким именно дистрибутивом оно собирается? Чтобы потом сделать что-то типа #ifdef DEBIAN #endif. И еще один косяк. Установка локали, описанная в предыдущем посте, не работает в Ubuntu 12 - вне зависимости от значения переменной LANG, присваиваемого в скрипте запуска, PtokaX запускается с локалью по умолчанию (в моем случае это ru_UA.UTF-8). Единственное решение, которое я вижу - установить локаль непосредственно из PtokaX. Для этого открываем файл core/ServerManager.cpp и заменяем Код setlocale(LC_ALL, ""); наКод setlocale(LC_ALL, "ru_RU.CP1251"); P. S. Все эти пляски с бубном уже начинают сказочно доставлять, и скоро, по видимому, я начну отпускать сальные шутки про rm -rf /* и последующую установку туда шindoшs. |
|
|
19.3.2014, 10:43
Сообщение
#41
|
|
Глубина-глубина, я не твой… Отпусти меня, глубина… Группа: Пользователи Сообщений: 199 Регистрация: 13.10.2010 Из: Михайловск Пользователь №: 7 882 Спасибо сказали: 23 раза |
debian 7 64 bits
Код ~/ptokax# make mkdir -p /root/ptokax/obj g++ -Wall -Wno-unknown-pragmas -Wno-format -O2 -D_FORTIFY_SOURCE=2 -fomit-frame-pointer -pipe -fstack-protector -Itinyxml -I/usr/include -I/usr/include/lua5.1 -c /root/ptokax/core/colUsers.cpp -o /root/ptokax/obj/colUsers.o In file included from /root/ptokax/core/stdinc.h:85:0, from /root/ptokax/core/colUsers.cpp:21: /root/ptokax/core/pxstring.h:44:2: error: 'string::string(const int64_t&)' cannot be overloaded /root/ptokax/core/pxstring.h:42:2: error: with 'string::string(const long int&)' make: *** [/root/ptokax/obj/colUsers.o] Ошибка 1 |
|
|
Похожие темы
|
Сейчас: 27.11.2024, 2:12 |