Здравствуйте, гость ( Вход | Регистрация )
Отправлено: 30.3.2016, 17:41 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
Раньше время им заниматься было, а теперь времени нет. Все мы взрослеем, у всех у нас меняются жизненные приоритеты. Возможно, когда-нибудь я продолжу писать бесплатно, но не сейчас |
Форум: Новости форума · Просмотр сообщения: #47148 · Ответов: 12 · Просмотров: 21 236 |
Отправлено: 28.3.2016, 16:21 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
Так и надо сделать |
Форум: Новости форума · Просмотр сообщения: #47139 · Ответов: 12 · Просмотров: 21 236 |
Отправлено: 15.1.2015, 10:24 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
когда ты пишешь Код local function SerializeToString(tTable, sTableName, sTab) ты сразу определяешь имя функции, и это имя может сразу использоваться внутри функции но когда ты пишешь Код local SerializeToString = function(tTable, sTableName, sTab) ты сначала определяешь анонимную функцию (функцию без имени), выполняешь её, и только потом присваиваешь переменной SerializeToString эту функцию. То есть присвоение происходит уже после выполнения тела анонимной функции, поэтому если в теле используется переменная SerializeToString, то она еще не определена: Код local f1 = function() print(f1) end local function f2() print(f2) end f1() -- nil f2() -- function: 0x803f00 |
Форум: Программирование на Lua · Просмотр сообщения: #46761 · Ответов: 1049 · Просмотров: 988 185 |
Отправлено: 17.12.2014, 10:12 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
А может мне за вас ещё всё исправить? Что вы несёте! Я программист! Высказал своё мнение о том что та инструкция лучше чем все ваши вместе взятые. Вы и сами должны знать о том что у вас там не так. У вас многие теги вообще не описаны. Мало конкретных примеров. Пишите что данные идут через udp, а они идут через TCP. По вашей инструкции программу не написать. Мне приходилось много гуглить. И после того как я нашёл эту инструкцию всё встало на свои места. Читайте внимательно. В моей программе нет ничего противозаконного. То что она не раздаёт - это временный факт. Который не выгоден не только хабам, но и пользователям этой программы. Я же не могу сразу написать звездолёт. Пишу по частям...как могу. И так должны спасибо говорить. Могу сказать Вам как java программист java программисту, что Ваш код просто ужасен. Макаронный код, похожий на код студента. По поводу каких-то ошибок в описании могу сказать, что возможно Вы сами еще не до конца разобрались в протоколе и путаете механизмы активного и пассивного поиска. |
Форум: Всё о Direct Connect · Просмотр сообщения: #46695 · Ответов: 26 · Просмотров: 29 592 |
Отправлено: 27.11.2014, 13:56 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
А не проще ли завести репозиторий для мода, и делать мерж изменений в него, а не гемороится с файлами и не прикреплять постоянно исходники в архивах? Тогда достаточно будет дать ссылку на репозиторий, и тот, кому надо, сможет выкачать исходники. Кстати, бинарники релизов можно тоже в репозиторий в отдельную ветку кидать. |
Форум: Технические вопросы по PtokaX · Просмотр сообщения: #46584 · Ответов: 112 · Просмотров: 108 087 |
Отправлено: 20.10.2014, 10:24 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
Да, действительно, find - это лишнее, ведь у нас остался 1 символ. Простое сравнение уместнее. |
Форум: Программирование на Lua · Просмотр сообщения: #46520 · Ответов: 33 · Просмотров: 48 957 |
Отправлено: 31.8.2014, 9:38 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
Обратите внимание на характеристику QuickList. Если хаб поддерживает данную характеристику, и вы отсылаете её на хаб, то последовательность входа немного другая. В частности, на хаб не следует отсылать команду $ValidateNick. см. Последовательность входа на хаб, который поддерживает характеристику QuickList |
Форум: Ваши проекты · Просмотр сообщения: #46477 · Ответов: 6 · Просмотров: 10 502 |
Отправлено: 4.8.2014, 10:18 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
Ничего непонятно. В Lua по ссылке передаются только table, function, thread и userdata Строки не передаются по ссылке, а копируются! Код local str = "str" local t = {[1] = "test"} local tData = { [str] = str, ["t"] = t } print(tData["t"][1]) -- "test" t[1] = "test1" print(tData["t"][1]) -- "test1", так как таблица t передана по ссылке в таблицу tData print(tData[str]) -- "str" str = "str1" print(tData[str]) -- nil, так как в таблице tData нет ключа "str1" (строки всегда копируются) |
Форум: Программирование на Lua · Просмотр сообщения: #46450 · Ответов: 1049 · Просмотров: 988 185 |
Отправлено: 3.8.2014, 12:40 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
Перехватить копирование откуда и куда? Метод метатаблицы __newindex отвечает за вставку в таблицу данных для НОВОГО ключа. Другими словами, если ключ в таблице уже существует, то присвоение этому ключу нового значения НЕ повлечет за собой вызов метода __newindex. Пример: Код local str = "copying" local tData = { [1] = 1 } setmetatable(tData, { __newindex = function(self, key, value) print(key, value) rawset(self, key, value) end }) tData[str] = str -- сработает метод __newindex, так как в таблице нет ключа str tData[str] = "str" -- метод __newindex НЕ сработает, так как в таблице уже есть ключ str Вариант обхода этого - это присвоение значения nil: Код tData[str] = str -- сработает метод __newindex, так как в таблице нет ключа str tData[str] = nil -- затираем предыдущее значение tData[str] = "str" -- сработает метод __newindex, так как в таблице нет ключа str Другой вариант (возможно более грамотный) - это хранить данные не в текущей таблице, а в таблице метатаблицы : Код local str = "copying" local tData = {} setmetatable(tData, { tTable = {}; -- таблица для хранения данных __newindex = function(self, key, value) print(key, value) getmetatable(self).tTable[key] = value end; __index = function(self, key) return getmetatable(self).tTable[key] end; }) tData[1] = 1 tData[str] = str tData[str] = "str" |
Форум: Программирование на Lua · Просмотр сообщения: #46448 · Ответов: 1049 · Просмотров: 988 185 |
Отправлено: 1.8.2014, 15:04 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
Это делается при помощи метатаблицы: Код local str = "copying" local tbl = {[1] = "one_more_copying"} local tData = { [1] = 1 } setmetatable(tData, { __newindex = function(self, key, value) print(key, value) -- печатаем устанавливаемые ключ и значение rawset(self, key, value) -- непосредственная установка значения end }) tData[str] = str tData[tbl[1]] = tbl[1] |
Форум: Программирование на Lua · Просмотр сообщения: #46446 · Ответов: 1049 · Просмотров: 988 185 |
Отправлено: 30.7.2014, 10:40 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
Да, некоторые настройки пока не меняются налету, и адрес в их числе. Даже на вики этот момент описан. |
Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #46443 · Ответов: 150 · Просмотров: 144 659 |
Отправлено: 13.7.2014, 9:42 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
Код assert(loadstring("tData = {\"some_data\"}"))() print(tData[1]) -- some_data |
Форум: Программирование на Lua · Просмотр сообщения: #46429 · Ответов: 1049 · Просмотров: 988 185 |
Отправлено: 12.7.2014, 18:30 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
Обратный слеш используется как символ для экранирования (экранирует следующий символ). Для того чтобы написать в строке обратный слеш нужно его самого заэкраноровать. Другими словами нужно написать 2 обратных слеша, тогда интерпретатор преобразует его в один слеш в строке. |
Форум: Боты "все в одном" [PtokaX] · Просмотр сообщения: #46425 · Ответов: 215 · Просмотров: 206 353 |
Отправлено: 20.5.2014, 9:56 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
Для онлайн банов такой способ подойдет, а вот массово забанить диапазоны ip, которых нет на хабе не выйдет |
Форум: DC-клиенты · Просмотр сообщения: #46344 · Ответов: 13 · Просмотров: 13 734 |
Отправлено: 19.5.2014, 10:03 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
В Грейлинке можно написать такой скрипт, который лез бы в файл, брал диапазоны ip, и для каждого ip из взятого диапазона отсылал бы команду на хаб. |
Форум: DC-клиенты · Просмотр сообщения: #46340 · Ответов: 13 · Просмотров: 13 734 |
Отправлено: 18.5.2014, 19:26 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
Банит и глушит именно хаб, клиент только посылает команду хабу, а хаб уже все делает. Если хаб не поддерживает это, то в одностороннем порядке (только со стороны клиента) невозможно ничего сделать. Правда может речь идёт о черных списках на стороне клиента, то есть ситуация, когда конкретно ты добавляешь в своём клиенте человека в черный список, и сообщения от этого человека, добавленного в черный список, твой клиент игнорирует, а все остальные клиенты хаба по-прежнему видят сообщения этого человека, тогда да, тут все от клиента зависит, например, во флайлинке щелкаешь правой кнопкой по человеку и щелкаешь "Игнорировать пользователя по нику" |
Форум: DC-клиенты · Просмотр сообщения: #46335 · Ответов: 13 · Просмотров: 13 734 |
Отправлено: 6.4.2014, 11:26 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
Цитата Код filename = arg[0] Чем для ptokax не устраивает функция Core.GetPtokaXPath ? |
Форум: Помощь по скриптам для PtokaX · Просмотр сообщения: #46284 · Ответов: 2 · Просмотров: 7 002 |
Отправлено: 5.4.2014, 23:11 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
Проверил на 2.4.0[beta], у меня все работает. Главное чтобы у клиента был файл, который ищем. Напомню, что через хаб (по TCP) проходят только результаты пассивного поиска, результаты же активного поиска идут между клиентами напрямую по UDP протоколу. Для того чтобы ловить активные поисковые запросы хаб прикидывается клиентом и рассылает всем клиентам команду активного поиска, а при помощи UDP сервера принимает от этих пользователей результаты поиска. Код function OnAny(UID, sData, iType) if sData:find('$SR',1,true) then print(iType) -- 5 - $SR (UDP), 4 - $SR (TCP) print(sData) end end function OnChat(tUser, sData) if sData:find".*!search" then Core.SendToAll("$Search 10.10.10.1:1209 F?T?0?9?TTH:DZDHTKOTCYUEZPMCQMN7NJ4SZUSCFXLKCRJTX2Q|") end end |
Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #46280 · Ответов: 150 · Просмотров: 144 659 |
Отправлено: 26.3.2014, 15:40 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
К сожалению в отличие от Lua, в котором есть GC, СИ не может похвастаться такой фичей, поэтому для освобождения памяти нужно вызывать со стороны Lua закрытие курсора. На пару вызовов закрытие практически никак не скажется, но если курсор юзать в каком-нибудь цикле, то может рано или поздно закончиться память |
Форум: Дополнительные библиотеки для PtokaX · Просмотр сообщения: #46254 · Ответов: 78 · Просмотров: 112 802 |
Отправлено: 18.3.2014, 12:58 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
Ошибка говорит, что не может найти функцию module. Функция module - это глобальная Lua функция, которая появилась в Lua начиная с версии 5.0 На какой версии PtokaX запускается скрипт? |
Форум: Готовые скрипты для PtokaX · Просмотр сообщения: #46200 · Ответов: 19 · Просмотров: 20 932 |
Отправлено: 9.3.2014, 20:15 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
Никак. Тип userdata не имеет какой-то определенной структуры в Lua. Структура определяется программистом при помощи метатаблиц. Цитата Тип userdata (пользовательские данные) позволяет хранить любые данных из C в переменных Lua. Значение этого типа является ссылкой на блок физической памяти и не имеет предопределенных операций в Lua, за исключением присваивания и проверки на равенство |
Форум: Программирование на Lua · Просмотр сообщения: #46178 · Ответов: 1049 · Просмотров: 988 185 |
Отправлено: 6.12.2013, 9:22 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
Да, действительно написал не по lua правилам (сделал присвоение по с++ правилам ). Надо было написать так: Код local tCmds, tOpChat = {}, {} Ну да, tOpChat задаётся в OnStartup, поэтому я и написал, что не понятно как такое могло произойти. Видимо действительно автор что-то поменял. |
Форум: Скрипты для RusHub'а · Просмотр сообщения: #46005 · Ответов: 6 · Просмотров: 11 558 |
Отправлено: 3.12.2013, 11:18 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
заменить Код local tCmds, tOpChat на Код local tCmds, tOpChat = {} Хотя не совсем понятно как такое могло произойти |
Форум: Скрипты для RusHub'а · Просмотр сообщения: #45994 · Ответов: 6 · Просмотров: 11 558 |
Отправлено: 2.12.2013, 9:26 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
Код --AutoRegCheck(tUser) |
Форум: Боты "все в одном" [PtokaX] · Просмотр сообщения: #45985 · Ответов: 93 · Просмотров: 100 838 |
Отправлено: 24.11.2013, 9:52 | |
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 |
Кстати, не плохая идея обновить список модераторов. Wariner вообще не появляется уже который год. Заменить его на Артёма или Ksan-а. Тем более Артём уже является модератором двух разделов. |
Форум: Общалка aka Флуд · Просмотр сообщения: #45967 · Ответов: 14 · Просмотров: 16 800 |
Открытая тема (есть новые ответы) Открытая тема (нет новых ответов) Горячая тема (есть новые ответы) Горячая тема (нет новых ответов) |
Опрос (есть новые голоса) Опрос (нет новых голосов) Закрытая тема Тема перемещена |
|
Сейчас: 23.11.2024, 4:38 |