Здравствуйте, гость ( Вход | Регистрация )
| Дата поста: | В теме: | За сообщение: | Спасибо сказали: | ||
|---|---|---|---|---|---|
| 5.2.2012, 17:38 |
Протокол IPv6 в протоколе NMDC Спецификация и тестирование IPv6 в NMDC |
Ты изобрёл свой велосипед. Этот велосипед уже изобретён и называется ADC протокол. Вместо того чтобы адаптировать NMDC хаб на работу с каким-то расширением, лучше адаптировать работу хаба на одновременное взаимодействие по двум протокола NMDC и ADC. Получится тоже самое. То есть, хочешь ipv6 - переходи на ADC! Нужно продвигать новый протокол, а не продолжать накручивать что-то на старый. |
Otshelnik-Fm | ||
| 4.2.2012, 15:37 |
Сборка Rushub на платформе SUN (Oracle). OpenSolaris, Nexenta для x86 Патч для Rushub 2.3.8 |
Попробуй сейчас скачать из trunk и собрать, должно собираться безо всяких патчей |
KT315 | ||
| 4.2.2012, 0:56 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
функцией table.remove можно удалить только элементы с числовым ключом. В твоём случае следует делать так: Код tTable["nick"] = nil |
LoT | ||
| 2.2.2012, 18:23 |
Ipv6 Test Hub RusHub |
Если подключаться к хабу по локальному ipv6 (::1), то должно пахать. Кстати, для ipv6 я исправил выхлоп в лог при возникновении ошибки (в ревизии 675), так как раньше показывалась не та ошибка, поэтому диагноз возникновения ошибки мог быть неправильным. Только что проверил... Действительно была ошибка, из-за которой хаб сбрасывал ipv6 соединение. Устранил её только что. Качайте исходники из trunk - теперь должно входить по ipv6 Кстати, для тестирования ipv6 можно использовать консольного клиента stress-test, но только для NMDC, для ADC он ещё не адаптирован. |
mariner, PomanoB, KT315, CrazyKiller | ||
| 1.2.2012, 21:53 |
Логотип для RusHub'а ваши варианты и предложения |
Ну да, вопрос уже давно был решён, и изменять иконку никто не собирается. Вообще говоря логотипом является картинка с двумя буквами RH в соответствующих цветах: http://rushub.org/ |
KT315 | ||
| 31.1.2012, 17:21 |
Стресс тест для хаба |
Такая ошибка действительно была. Бери из trunk версию, там это уже исправлено |
CrazyKiller | ||
| 31.1.2012, 9:59 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
Такое возможно только если между хабом и юзером нету активного сетевого оборудования, которое меняет mac-адрес. |
MIKHAIL | ||
| 29.1.2012, 0:39 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
на быстродействие никак не повлияет, ибо хаб всё равно будет впихивать в стек этот id при вызове OnTimer, просто этот id не используется |
MIKHAIL | ||
| 29.1.2012, 0:22 |
Особенности приготовления PtokaX Некоторые особенности работы скриптов на данном хабе |
Могу ещё добавить до кучи, что возможен случай, когда при входе не будет выполняться скриптовая функция ValidateNickArrival. Происходить это будет в том случае, если клиент поддерживает характеристику QuickList |
Enyby | ||
| 29.1.2012, 0:13 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
Во-первых, tmr тут вовсе не функция, а переменная. Во-вторых, в lua всякая переменная, которая не объявлена как локальная, является глобальной. В-третьих, по внегласному правилу обращелние к локальным переменным происходит быстрее чем к глобальным. В-четвертых, в указанном примере переменная tmr в функции OnStartup является глобальной, а переменная в функции OnTimer является локальной, то есть это разные переменные в разных областях видимости. Чтобы не путаться в них следует называть их по-разному: Код function OnStartup() tmr = TmrMan.AddTimer(60000) end ... function OnTimer(id) ... end |
MIKHAIL | ||
| 26.1.2012, 22:38 |
RusHub: Запрет неразрывного пробела rushub |
Ksan, Ты думаешь я ему ни подсказываю? Пожалуйста не обижайся на мою критику, я иногда бываю резок, когда дело касается нюансов. Отчасти я так сказал только для того чтобы ты обратил внимание на нюансы, а не пытался заменить код на более простой, но менее функциональный. Теперь аналог этого кода для птохи, для того чтобы можно было попробовать как это работает: Код local sBot = "Bot" function ChatArrival(tUser, sData) if tUser.iProfile == -1 or tUser.iProfile == 3 then local sText = sData:sub(#tUser.sNick + 4, -2) if sText:find"\160" then SendToUser(tUser, "*** Использование неразрывного пробела в тексте запрещено!", sBot) return true end end end function ToArrival(tUser, sData) if tUser.iProfile == -1 or tUser.iProfile == 3 then local sTo, sText = sData:sub(1, -2):match("^%$To:%s+(%S+)%s+From:%s+(.*)") if sText:find"\160" then SendToUser(tUser, "*** Использование неразрывного пробела в тексте запрещено!", sBot, sTo) return true end end end function SendToUser(tUser, sMsg, sNick, sSender) if sSender and sNick then Core.SendToUser(tUser, (("$To: %s From: %s $<%s> %s"):format(tUser.sNick, sSender, sNick, sMsg))) elseif sNick then Core.SendToUser(tUser, (("<%s> %s"):format(sNick, sMsg))) end end P.S. Для того чтобы набрать неразрывный пробел нужно включить Num Lock и, удерживая alt, набрать 0160 на расширенной клавиатуре, после этого отпустить alt. |
ShadoWx | ||
| 25.1.2012, 18:31 |
HubTopic Скрипт показывающий ваш текст в строке состояния |
Код Core.GetConfig("sHubBot") заменить на Код Config.sHubBot или на Код Config["sHubBot"] кому как больше нравится.Однако в любом случае это не ошибка, а всего лишь предупреждение |
CrazyKiller | ||
| 18.1.2012, 21:15 |
Единая платформа для скриптов Обсуждения вопроса создания единой платформы скриптов |
В русхабе это делается очень просто, тем более на последней версии. скрипт1: Код function OmMyINFO(tUser, sData) tUser.sDesc = "Новое описание" end скрипт2: Код function OmMyINFO(tUser, sData) tUser.sMode = "P" end Нечто универсальное считаю неправильным, ибо функционал даёт очень разные возможности. Конечно можно сделать нечто универсальное, но это может ухудшить работу. |
Enyby | ||
| 18.1.2012, 10:05 |
Что такое хороший хаб? Немного рассуждений на тему критериев качества хаба |
Полностью согласен. Добавлю. 1) В целях безопасности (при не шифрованных передачах) в MOTD не следует отправлять IP пользователя, а также порты подключения. 2) Стоит отметить и игру в викторину, которая проходит в чате. Следует сделать вход в эту игру, чтобы викторина "флудила" в чате (или личке), только если ты в неё вошёл. |
Enyby | ||
| 16.1.2012, 22:50 |
Вопросы по RusHub Технические вопросы |
Изменились уровни логирования, поэтому в старой версии файла у тебя настройка: iMaxLevel = 0 (настройку iMaxErrLevel можно удалить, она теперь содержится в iMaxLevel). Система логирования теперь такая: FATAL - критическая ошибка (уровень 0); ERROR - ошибка (уровень 1); WARN - предупреждение (уровень 2); INFO - информационное сообщение (уровень 3); DEBUG - отладочное сообщение (уровень 4); TRACE - трейс сообщение (уровень 5). Параметр iMaxLevel показывает текущий уровень логирования (по умолчанию теперь 3). При этом уровень логирования позволяет логировать и всё события, которые ниже уровнем. Например, если у нас стоит уровень логирования 3 (INFO), то будут логироваться события INFO, WARN, ERROR и FATAL. Если уровень логирования 5 (TRACE), то логируются все события. Поэтому поставь уровень логирования iMaxLevel = 3, и логи должны появятся. |
dimajak | ||
| 15.1.2012, 17:22 |
RusHub Кроссплатформенный консольный DC хаб |
rushub v 2.3.8 lua plugin v 2.7 Added: Добавлена возможность установки параметров MyINFO. Текущие параметры: sDesc - описание пользователя (строка); Added: Добавлена возможность установки из Lua своих параметров следующих типов данных: строки, числа, логические. Added: Сообщения в логах хаба стали более наглядными. Добавился констроль строк и уровни логирования: FATAL - критическая ошибка (уровень 0); Added: Добавлена поддержка поиска и соединения клиентов в ADC. Fixed: Устранен баг в UDP поиске (не работал UDP поиск). Fixed: Устранен баг с таймерами в lua (функция Core.AddTimer не вызывалась RunTime, а могла вызываться только непосредственно в событии OnStartup). Fixed: Устранен баг в пути, по которому пишутся логи lua плагина. Fixed: Произведена локальная оптимизация и рефакторинг, а также уменьшено потребление памяти хабом. |
Nickolya, mariner, Артём, Maximum, PomanoB, KT315, Alexey, CrazyKiller, Saymon21, dimajak | ||
| 7.1.2012, 21:41 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
То есть ты хочешь обойтись без копирования строки? В таком случае нужно использовать таблицу Код local sData1 = {"text"} local sData2 = sData1 -- копирование по ссылке Использование: Код print(sData1[1]) print(sData2[1]) |
MIKHAIL | ||
| 3.1.2012, 20:06 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
Разницы между Код function GetData(sData) и Код GetData = function(sData) быть не может, ибо lua интерпретатор транслирует первый вариант во второй (см. документацию или исходный код lua). Проводить тесты тут бессмысленно. |
MIKHAIL | ||
| 29.12.2011, 22:52 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
Ну по-моему всё равно корявый метод. Кстати, вот ещё пара методов тогда до кучи: Код function floor(num, precision) precision = math.pow(10, precision) return math.floor(tonumber(num) * precision + 0.5) / precision end function ceil(num, precision) precision = math.pow(10, precision) return math.ceil(tonumber(num) * precision - 0.5) / precision end floor(456.456556, 3) -- 456.457 ceil(456.456556, 3) -- 456.457 |
MIKHAIL | ||
| 29.12.2011, 11:09 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
Такой метод округления не хорошо использовать, так как возможен вариант, когда целая част состоит не из одной цифры, а например из 2 или 3 Код n = 356.3695876 Лучше использовать функцию format: Код string.format("%.3f", 356.3695876) -- 356.370 |
MIKHAIL | ||
| 20.12.2011, 13:23 |
RusHub. Пакеты для Ubuntu 10.04 |
Ага. Разумно. Сделал. |
Alexey | ||
| 19.12.2011, 10:46 |
Ваши Вопросы И Предложения По Поводу Форума |
Пора наверное поставить новогоднюю шапку на форуме |
Nickolya | ||
| 8.12.2011, 10:45 |
Переобъявление переменной |
Код local a = {} local b = a a = nil Создаётся таблица, и записывается в переменную "a" ссылка на эту таблицу. В переменную "b" копируется ссылка на эту же самую таблицу (НЕ КОПИРУЕТСЯ сама таблица!). Далее уничтожается ссылка переменной "a" на эту таблицу. Однако на таблицу остаётся ссылка переменной "b", поэтому таблица не будет уничтожена сборщиком мусора. Пример, показывающий, что мы действительно имеем дело с одной таблице и двумя ссылками на эту таблицу (то есть под таблицу память выделена 1 раз): Код local a = {v = 5} local b = a print(a.v) -- напечатает "5" print(b.v) -- напечатает "5" b.v = 6 print(a.v) -- напечатает "6" print(b.v) -- напечатает "6" a.v = 7 print(a.v) -- напечатает "7" print(b.v) -- напечатает "7" То есть, в данном примере переменные "a" и "b" равнозначны, так как ссылаются на одну и ту же таблицу (на одну и ту же память), и для изменения данных по этой памяти мы можем использовать как переменную "a", так и переменную "b". Другими словами: действие b = a не приводит к копированию таблицы, оно лишь создаёт новую ссылку на уже существующую таблицу. |
MIKHAIL | ||
| 6.12.2011, 10:39 |
Переобъявление переменной |
То что мы присваиваем переменной tPlayers значение nil не означает, что мы стираем из памяти таблицу, на которую указывала эта пременная до этого. Этим действием мы только удаляем ссылку на эту таблицу, а если на таблицу никто не ссылается, то таблица в скором времени будет удалена из памяти сборщиком мусора. Если же мы пишем tPlayers = {}, то это означает, что мы создаём новую (пустую) таблицу и присваиваем переменной tPlayers ссылку на новую таблицу, при этом опять же, если на старую таблицу никто не ссылается, то таблица в скором времени будет удалена из памяти сборщиком мусора. |
dimajak | ||
| 24.10.2011, 15:34 |
Ошибки текущей версии хаба Обнаруженные ошибки публикуются в этой теме |
Раньше выставлялся 0, если шары нет. По всей видимости для nmdc протокола это правильно, однако для adc протокола параметр шары может отсутствовать, то есть равен nil. Поэтому в предверии внедрения adc баг перешёл в фичу. |
Saymon21 | ||
| 23.10.2011, 18:20 |
RusHub Кроссплатформенный консольный DC хаб |
rushub v 2.3.7 lua plugin v 2.6 Added: Добавлено использование системы сборки GNU Autotools. Added: Добавлена настройка iMaxSendSize, отвечающая за максимальный размер буфера отсылки (по умолчанию 2818047). При превышении этого размера пользователь отключается от хаба. Fixed: Устранена повторная отсылка команды $Hello. Fixed: Устранена уязвимость, при помощи которой можно было выкинуть с хаба зарегистрированного пользователя. Fixed: Частичный рефакторинг кода. |
Nickolya, mariner, Артём, PomanoB, KT315, Sekretchik, CrazyKiller, Saymon21, Sorrow | ||
| 21.10.2011, 18:23 |
Проблема с хабом после установки роутера |
udp нужно указывать в случае активного поиска со стороны хаба (специальные скрипты поиска у пользователей). А для того чтобы искалось в клиенте на той же машине, что и сервер нужно либо в пассиве искать, либо бросать порты. |
Accelerator | ||
| 19.10.2011, 10:56 |
Вопросы по RusHub Технические вопросы |
Magneto 2 раза отсылает версию. Для чего это сделано не знаю, но русхаб отключает после повторной отсылки команд стадии входа, так как это часть огромной системы антифлуда. Atlant, можешь убрать повторную отсылку команды $Version в Magneto? У меня даже в коде есть коммент, что верлик хочет версию, без нее кикает. А птоха - да, не проверяет. Верлик хочет версию, но не проверяет её значение. |
Mangust | ||
| 19.10.2011, 8:01 |
Вопросы по RusHub Технические вопросы |
Тот кто писал Magneto допустил ошибку в версии. Magneto отправляет на хаб версию 1.0091, а по NMDC протоколу нужно отправлять версию 1,0091, то есть дробная и целая част должна быть отделена запятой, а не точкой. Чтобы включить проверку в русхабе, достаточно написать небольшой скриптик: Код function OnVersion() return true end |
Mangust | ||
| 2.10.2011, 1:36 |
ChatHistorySQL История чата (MySQL) |
Ksan | |||
1 2 3 > »
|
Сейчас: 7.2.2012, 14:19 |