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

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

MyDC.ru _ DC-клиенты _ Отсылка в ЛС скачивающим у меня

Автор: ZBY 4.6.2009, 22:35

Есть ли такой скрипт: захожу на хаб; тем, кто у меня скачивает, отсылается ЛС с определенным текстом; отсылается один раз за сессию (моё нахождение на хабе)?
Или что-то подобное может есть, попробую переделать

Автор: Setuper 4.6.2009, 23:16

Это возможно, однако существуют некие трудности.

Существует 2 вида соединений: актив и пассив.
При активе, пользователь, который хочет что-то скачать, отсылает пользователю, с которого он хочет качать, команду чтобы тот соединился с ним по указанному в команде ip и порту.
При пассиве, пользователь, который хочет что-то скачать, отсылает пользователю, с которого он хочет качать, команду для того, чтобы пользователь, с которого он хочет качать, отослал команду об активном соединении.

Отсюда возникает проблема: допустим мы делаем данную фишку для активного соединения. Тогда при пассивом соединении получится, что это сообщение отошлётся не тому, с кого качают, а тому, кто качает!

Автор: ZBY 4.6.2009, 23:24

А можно ли тогда сделать такое для активного соединения? Дело в том, что на нашем локальном хабе все пользуются только актив, и в общем-то для пассива мне не нужно

Автор: Setuper 4.6.2009, 23:34

Что значит: "отсылается один раз за сессию" ??

Автор: ZBY 4.6.2009, 23:37

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

Автор: Setuper 4.6.2009, 23:41

Ну это само собой.
У хаба нет возможности отследить скачивание каждого файла. Есть только возможность отследить установку соединения между пользователями, и пока это соединение будет установлено будут качаться файлы. А для скачки ли устанавливалось соединение, или просто так посмотреть, хаба вовсе не заботит, его дело направить пользователей для их соединения между собой. Скачка не производится через хаб, а происходит между пользователями напрямую!!!


Код
local sMsg = "*** Connecting: [NICK]"
local sBot = "Bot"

function ConnectToMeArrival(tUser, sData)
  local sNick = sData:match"(%S+) %S+$"
  if sNick then
    Core.SendPmToNick(sNick, sBot, tostring(sMsg:gsub("%[NICK%]", tUser.sNick)))
  end
end

Автор: ZBY 5.6.2009, 0:30

ммм... запускаю скрипт, пользователь скачивает, но текст ему не приходит((
он точно работающий?

Автор: Setuper 5.6.2009, 0:32

В активе текст приходит тому, с кем устанавливается соединение, в пассиве наоборот

Автор: ZBY 5.6.2009, 8:22

и у меня и у него актив, никаких сообщений ни у кого нет((

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

Автор: Wariner 5.6.2009, 8:27

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

Автор: ZBY 5.6.2009, 8:33

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

а с клиента значит никак не сделать?

Автор: Setuper 5.6.2009, 12:47

Команды об инициализации скачки проходят через хаб.

Ну думаю, что у клиента хватит функционала для реализации подобного трюка.

Автор: FallenAngel 5.6.2009, 15:20

offtop наверн..
2Setuper-даж у ГрейЛинка не хватит функционала?..

Автор: Setuper 5.6.2009, 15:24

На грее можно сделать, но для этого надо писать собственную либу.