myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
161 страниц V   1 2 3 > » 

Setuper
Отправлено: 30.3.2016, 17:41


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46


Раньше время им заниматься было, а теперь времени нет.
Все мы взрослеем, у всех у нас меняются жизненные приоритеты.
Возможно, когда-нибудь я продолжу писать бесплатно, но не сейчас big_smile.gif
  Форум: Новости форума · Просмотр сообщения: #47148 · Ответов: 12 · Просмотров: 10 807

Setuper
Отправлено: 28.3.2016, 16:21


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46


Так и надо сделать big_smile.gif
  Форум: Новости форума · Просмотр сообщения: #47139 · Ответов: 12 · Просмотров: 10 807

Setuper
Отправлено: 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 · Просмотров: 631 327

Setuper
Отправлено: 17.12.2014, 10:12


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46


Цитата(Master255 @ 17.12.2014, 2:59) *
А может мне за вас ещё всё исправить? Что вы несёте! Я программист! Высказал своё мнение о том что та инструкция лучше чем все ваши вместе взятые. Вы и сами должны знать о том что у вас там не так. У вас многие теги вообще не описаны. Мало конкретных примеров. Пишите что данные идут через udp, а они идут через TCP. По вашей инструкции программу не написать. Мне приходилось много гуглить. И после того как я нашёл эту инструкцию всё встало на свои места.

Читайте внимательно. В моей программе нет ничего противозаконного. То что она не раздаёт - это временный факт. Который не выгоден не только хабам, но и пользователям этой программы. Я же не могу сразу написать звездолёт. Пишу по частям...как могу. И так должны спасибо говорить.


Могу сказать Вам как java программист java программисту, что Ваш код просто ужасен. Макаронный код, похожий на код студента.

По поводу каких-то ошибок в описании могу сказать, что возможно Вы сами еще не до конца разобрались в протоколе и путаете механизмы активного и пассивного поиска.
  Форум: Всё о Direct Connect · Просмотр сообщения: #46695 · Ответов: 26 · Просмотров: 15 649

ВАЖНО: PtokaX 0.5.0.1 Mod
Setuper
Отправлено: 27.11.2014, 13:56


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46


А не проще ли завести репозиторий для мода, и делать мерж изменений в него, а не гемороится с файлами и не прикреплять постоянно исходники в архивах? Тогда достаточно будет дать ссылку на репозиторий, и тот, кому надо, сможет выкачать исходники. Кстати, бинарники релизов можно тоже в репозиторий в отдельную ветку кидать.
  Форум: Технические вопросы по PtokaX · Просмотр сообщения: #46584 · Ответов: 112 · Просмотров: 66 522

Setuper
Отправлено: 20.10.2014, 10:24


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46


Да, действительно, find - это лишнее, ведь у нас остался 1 символ.
Простое сравнение уместнее.
  Форум: Программирование на Lua · Просмотр сообщения: #46520 · Ответов: 33 · Просмотров: 31 565

Setuper
Отправлено: 31.8.2014, 9:38


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46


Обратите внимание на характеристику QuickList.
Если хаб поддерживает данную характеристику, и вы отсылаете её на хаб, то последовательность входа немного другая. В частности, на хаб не следует отсылать команду $ValidateNick.

см. Последовательность входа на хаб, который поддерживает характеристику QuickList
  Форум: Ваши проекты · Просмотр сообщения: #46477 · Ответов: 6 · Просмотров: 5 976

Setuper
Отправлено: 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 · Просмотров: 631 327

Setuper
Отправлено: 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


Другой вариант (возможно более грамотный) - это хранить данные не в текущей таблице, а в таблице метатаблицы big_smile.gif :
Код
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 · Просмотров: 631 327

Setuper
Отправлено: 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 · Просмотров: 631 327

Setuper
Отправлено: 30.7.2014, 10:40


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46


Да, некоторые настройки пока не меняются налету, и адрес в их числе. Даже на вики этот момент описан.
  Форум: Технические вопросы по RusHub'у · Просмотр сообщения: #46443 · Ответов: 150 · Просмотров: 91 763

Setuper
Отправлено: 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 · Просмотров: 631 327

Setuper
Отправлено: 12.7.2014, 18:30


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46


Обратный слеш используется как символ для экранирования (экранирует следующий символ). Для того чтобы написать в строке обратный слеш нужно его самого заэкраноровать. Другими словами нужно написать 2 обратных слеша, тогда интерпретатор преобразует его в один слеш в строке.
  Форум: Боты "все в одном" [PtokaX] · Просмотр сообщения: #46425 · Ответов: 215 · Просмотров: 138 763

Setuper
Отправлено: 20.5.2014, 9:56


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46


Для онлайн банов такой способ подойдет, а вот массово забанить диапазоны ip, которых нет на хабе не выйдет
  Форум: DC-клиенты · Просмотр сообщения: #46344 · Ответов: 13 · Просмотров: 7 570

Setuper
Отправлено: 19.5.2014, 10:03


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46


В Грейлинке можно написать такой скрипт, который лез бы в файл, брал диапазоны ip, и для каждого ip из взятого диапазона отсылал бы команду на хаб.
  Форум: DC-клиенты · Просмотр сообщения: #46340 · Ответов: 13 · Просмотров: 7 570

Setuper
Отправлено: 18.5.2014, 19:26


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46


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

Правда может речь идёт о черных списках на стороне клиента, то есть ситуация, когда конкретно ты добавляешь в своём клиенте человека в черный список, и сообщения от этого человека, добавленного в черный список, твой клиент игнорирует, а все остальные клиенты хаба по-прежнему видят сообщения этого человека, тогда да, тут все от клиента зависит, например, во флайлинке щелкаешь правой кнопкой по человеку и щелкаешь "Игнорировать пользователя по нику"
  Форум: DC-клиенты · Просмотр сообщения: #46335 · Ответов: 13 · Просмотров: 7 570

Setuper
Отправлено: 6.4.2014, 11:26


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46


Цитата
Код
filename = arg[0]
это при запуске lua интерпретатора из командной строки. Это скорее относиться к отдельному lua интерпретатору, а не встроенному в ptokax.

Чем для ptokax не устраивает функция Core.GetPtokaXPath ?
  Форум: Помощь по скриптам для PtokaX · Просмотр сообщения: #46284 · Ответов: 2 · Просмотров: 3 800

Setuper
Отправлено: 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 · Просмотров: 91 763

Setuper
Отправлено: 26.3.2014, 15:40


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46


К сожалению в отличие от Lua, в котором есть GC, СИ не может похвастаться такой фичей, поэтому для освобождения памяти нужно вызывать со стороны Lua закрытие курсора.
На пару вызовов закрытие практически никак не скажется, но если курсор юзать в каком-нибудь цикле, то может рано или поздно закончиться память big_smile.gif
  Форум: Дополнительные библиотеки для PtokaX · Просмотр сообщения: #46254 · Ответов: 78 · Просмотров: 75 552

Setuper
Отправлено: 18.3.2014, 12:58


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46


Ошибка говорит, что не может найти функцию module.
Функция module - это глобальная Lua функция, которая появилась в Lua начиная с версии 5.0

На какой версии PtokaX запускается скрипт?
  Форум: Готовые скрипты для PtokaX · Просмотр сообщения: #46200 · Ответов: 19 · Просмотров: 12 067

Setuper
Отправлено: 9.3.2014, 20:15


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46


Никак.
Тип userdata не имеет какой-то определенной структуры в Lua. Структура определяется программистом при помощи метатаблиц.

Цитата
Тип userdata (пользовательские данные) позволяет хранить любые данных из C в переменных Lua. Значение этого типа является ссылкой на блок физической памяти и не имеет предопределенных операций в Lua, за исключением присваивания и проверки на равенство

http://www.lua.ru/doc/2.2.html
  Форум: Программирование на Lua · Просмотр сообщения: #46178 · Ответов: 1049 · Просмотров: 631 327

Setuper
Отправлено: 6.12.2013, 9:22


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46


Да, действительно написал не по lua правилам (сделал присвоение по с++ правилам big_smile.gif ).

Надо было написать так:
Код
local tCmds, tOpChat = {}, {}

Ну да, tOpChat задаётся в OnStartup, поэтому я и написал, что не понятно как такое могло произойти. Видимо действительно автор что-то поменял.
  Форум: Скрипты для RusHub'а · Просмотр сообщения: #46005 · Ответов: 6 · Просмотров: 6 618

Setuper
Отправлено: 3.12.2013, 11:18


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46


заменить
Код
local tCmds, tOpChat
на
Код
local tCmds, tOpChat = {}


Хотя не совсем понятно как такое могло произойти
  Форум: Скрипты для RusHub'а · Просмотр сообщения: #45994 · Ответов: 6 · Просмотров: 6 618

Setuper
Отправлено: 2.12.2013, 9:26


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46


Код
--AutoRegCheck(tUser)
  Форум: Боты "все в одном" [PtokaX] · Просмотр сообщения: #45985 · Ответов: 93 · Просмотров: 66 813

Setuper
Отправлено: 24.11.2013, 9:52


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46


Кстати, не плохая идея обновить список модераторов. Wariner вообще не появляется уже который год. Заменить его на Артёма или Ksan-а. Тем более Артём уже является модератором двух разделов.
  Форум: Общалка aka Флуд · Просмотр сообщения: #45967 · Ответов: 14 · Просмотров: 9 632

161 страниц V   1 2 3 > » 

New Posts  Открытая тема (есть новые ответы)
No New Posts  Открытая тема (нет новых ответов)
Hot topic  Горячая тема (есть новые ответы)
No new  Горячая тема (нет новых ответов)
Poll  Опрос (есть новые голоса)
No new votes  Опрос (нет новых голосов)
Closed  Закрытая тема
Moved  Тема перемещена
 

RSS Сейчас: 29.3.2020, 11:04