Live dc++ forum
Форма входа
Логин:
Пароль:
Главная | Клиентские скрипты (greylink) - Страница 7 - Форум | Суббота, 20.04.2024, 09:05
[ Новые сообщения · Участники · Правила форума · Поиск
Форум » >> » DC++ » Клиентские скрипты (greylink)
Клиентские скрипты (greylink)
hmuryДата: Воскресенье, 05.10.2008, 10:58 | Сообщение # 1
Генерал-лейтенант
Сообщений: 599
Репутация: 32
Статус: Offline
Сайт посвященный Луа http://www.lua.ru
Форум с готовыми скриптами на http://mydc.ru
Еще один форум на http://adrium.ipbfree.com

мой знакомый, Chaser, написал скрипт "объявление на хабе"

Code
dcpp = {}
spamtable = {}
-- spamtable= { ["dc.ru"] = { 0, 10, "sample" } , ["localhost"] = { 0, 12, "hello there!" } }

function spam(hubname, timeout, text)
           spamtable[hubname] = { 0, timeout, text }
end

function dcpp.OnTimer()
           for hubname, hubentry in pairs(spamtable) do
                   if (hubentry[1] == 0) and (hubentry[3] ~= "") then
                           hubentry[1] = hubentry[2]
                           DC():SendPublicMessage(hubname, hubentry[3])
                   else
                           hubentry[1] = hubentry[1] - 1
                   end
           end
           return nil
end

text =          "Спам-бот. Запуск спама на хабе с периодом 600 секунд:\r\n"
text = text ..  "/lua spam(\"dc.ufanet.ru\", 600, \" ТУТ ВАШЕ СООБЩЕНИЕ \")\r\n"
text = text ..  "\r\n"
text = text ..  "Чтобы отключить спам на хабе, наберите\r\n"
text = text ..  "/lua spam(\"dc.ufanet.ru\", 0, \"\")\r\n"
text = text ..  "\r\n"
text = text ..  "Адрес хаба надо писать в точности, как в столбце 'Сервер'\r\n"
text = text ..  "в списке 'Избранных хабов'\r\n"

DC():MessageBox(text, "spam.lua", "ok", "info")
DC():RunTimer(1)

это надо вставить в блокнот и сохранить в папку Scripts с именем spam.lua, обязательно в кодировке utf-8. запуск командой

Code
/luafile spam.lua


Сообщение отредактировал livedc - Четверг, 19.03.2009, 20:19
 
SMTДата: Среда, 10.06.2009, 07:29 | Сообщение # 91
Генерал-лейтенант
Сообщений: 514
Репутация: 28
Статус: Offline
Quote
"%sмля%s",

ты поставил пробелы вокруг слова. поэтому бот пропускает такие фразы
<test> мля
<test> сука,мля тупая
 
SMTДата: Среда, 10.06.2009, 07:38 | Сообщение # 92
Генерал-лейтенант
Сообщений: 514
Репутация: 28
Статус: Offline
Quote (AniNerbe)
я хотел бы в стартап пелинка засунуть бота который бы не давал пользователю писать мат в чат и который бы раз в сутки отсылал в общаг ратио и аптайм

ратио кое-как можно вывести командой
/lua DC():SendPublicMessage(dc_huburl, DC():GetSetting("TotalUpload") .. " / " .. DC():GetSetting("TotalDownload"))
но красиво форматировать mb/gb - нужен ещё код

а вот uptime придётся считать внутри скрипта
и переменная dc_huburl не работает из startup.lua - ещё нет хабов при старте.
поэтому придётся отслеживать подключения/отключения и вести таблицу подключенных хабов.
в-общем скрипт на это будет очень громоздким

Quote (AniNerbe)
spam.lua пишет с заданным периодом спам в общий чат заданного хаба
бота запустил, но что то он по прошествию 10 минут в чат ничего такова не написал
кто нить может проверить этого бота?

а ты написал текст объявления?

/luafile spam.lua
/lua spam(5, "??")

после этих команд каждые 5 секунд в чате появляется ??

 
SetuperДата: Среда, 10.06.2009, 13:30 | Сообщение # 93
Майор
Сообщений: 98
Репутация: 6
Статус: Offline
Quote (SMT)
ты поставил пробелы вокруг слова. поэтому бот пропускает такие фразы

Я написал пример. А чтобы бот не пропускал указанный фразы, ведь можно написать ещё несколько шаблонов:

Code
"^мля",
"[%c%p]мля"


lua master
 
Derk_B_PДата: Воскресенье, 14.06.2009, 01:44 | Сообщение # 94
Лейтенант
Сообщений: 49
Репутация: 2
Статус: Offline
Реально ли написать скрипт, который бы не давал качать пользователю с определенным тегом?

 
SMTДата: Воскресенье, 14.06.2009, 01:46 | Сообщение # 95
Генерал-лейтенант
Сообщений: 514
Репутация: 28
Статус: Offline
Quote (Derk_B_P)
Реально ли написать скрипт, который бы не давал качать пользователю с определенным тегом?

lua нет, только ChatBot.dll
 
Derk_B_PДата: Воскресенье, 14.06.2009, 01:59 | Сообщение # 96
Лейтенант
Сообщений: 49
Репутация: 2
Статус: Offline
Вдруг найдётся энтузиаст, которому понравиться моя идея. И он напишет ChatBot.dll.

Суть идеи:
Отсекать пользователей с тегами старых клиентов (DC++ v:670-708), которые не поддерживают мультисегментную скачку. И отсылая им ЛС.

Пример из жизни:
Пользователь, с клиентом DC++ 694, качает у вас файл, размером 5гб. Поскольку его клиент не поддерживает мультисегментную скачку, он будет все 100% файла качать только с вас. Тем самым, нагружая винт и занимая слот. Другое дело, если с вас качает пользователь с клиентом, поддерживающим мультисегментную скачку. Он быстро найдёт N альтернативных источников и скачает файл.




Сообщение отредактировал Derk_B_P - Воскресенье, 14.06.2009, 02:07
 
sphinxДата: Понедельник, 15.06.2009, 09:08 | Сообщение # 97
Рядовой
Сообщений: 17
Репутация: 0
Статус: Offline
Как с помощью скрипта вывести кол-во юзеров на хабе?
 
SMTДата: Понедельник, 15.06.2009, 10:44 | Сообщение # 98
Генерал-лейтенант
Сообщений: 514
Репутация: 28
Статус: Offline
Quote (sphinx)
Как с помощью скрипта вывести кол-во юзеров на хабе?

команда, выполненная в чате, пишет в системный лог (строку статуса)

/lua DC():PrintDebug(#DC():GetUsers(dc_huburl))

или в чат:

/lua DC():SendPublicMessage(dc_huburl, "Users: " .. #DC():GetUsers(dc_huburl))

 
sphinxДата: Понедельник, 15.06.2009, 22:24 | Сообщение # 99
Рядовой
Сообщений: 17
Репутация: 0
Статус: Offline
Спасибо. А название хаба? нужно не ip, а именно название.
 
SetuperДата: Понедельник, 15.06.2009, 23:30 | Сообщение # 100
Майор
Сообщений: 98
Репутация: 6
Статус: Offline
Как у тебя записано в избранных хабах, так и будет отображаться. Другого увы не дано.

lua master
 
sphinxДата: Вторник, 16.06.2009, 00:04 | Сообщение # 101
Рядовой
Сообщений: 17
Репутация: 0
Статус: Offline
Это понятно, а как получить название в скрипте?
 
deityДата: Вторник, 16.06.2009, 00:13 | Сообщение # 102
Полковник
Сообщений: 238
Репутация: 4
Статус: Offline
и что теперь делать? все работало ...а после 5.81 x64 стало так
MoonADC.0.8.5.7.rar
Прикрепления: 7090881.jpg (17.4 Kb)


Сообщение отредактировал deity - Вторник, 16.06.2009, 00:23
 
SetuperДата: Вторник, 16.06.2009, 02:02 | Сообщение # 103
Майор
Сообщений: 98
Репутация: 6
Статус: Offline
Дело в том, что изменились переменные.
вместо cid теперь uid.
CID - это Client ID и используется в протоколе ADC
UID - это User ID - идентификатор пользователя, который устанавливает и использует грей

cid заменили на uid для того, чтобы не было путаницы))

поэтому строку 60:

Code
s=string.gsub(s,"%[CID%]",tUser.CID)

следует заменить, например, на строку:
Code
s=string.gsub(s,"%[CID%]",tUser.IO)

=)

А вообще, я уже давно хотел в принципе переписать бота, да вот только руки никак не доходят


lua master
 
deityДата: Среда, 17.06.2009, 00:11 | Сообщение # 104
Полковник
Сообщений: 238
Репутация: 4
Статус: Offline
Setuper,
работает, спа.
 
sphinxДата: Среда, 17.06.2009, 13:32 | Сообщение # 105
Рядовой
Сообщений: 17
Репутация: 0
Статус: Offline
В общем, пожелание для авторов. Добавить в переменную dc_huburl не только адрес, а и остальные параметры хаба. Еще неплохо бы иметь возможность коннекта/дисконнекта к хабу с помощью скрипта.
 
Форум » >> » DC++ » Клиентские скрипты (greylink)
Поиск:


В движке поковырялся LiveDC :p © 2024
Сделать бесплатный сайт с uCoz