Live dc++ forum
Форма входа
Главная | Клиентские скрипты (greylink) - Форум | Среда, 18.12.2024, 07:25
[ Новые сообщения · Участники · Правила форума · Поиск
  • Страница 1 из 14
  • 1
  • 2
  • 3
  • 13
  • 14
  • »
Клиентские скрипты (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
 
SetuperДата: Воскресенье, 05.10.2008, 20:56 | Сообщение # 2
Майор
Сообщений: 98
Репутация: 6
Статус: Offline
Название: MoonADC bot
Тип: Мултибот
Автор: Setuper
Версия: 0.8.5.6
Язык: Lua 5.1.3

Возможности:
1) Бот ranker - бот для скрытого набивания чат рагнов на хабе под управлением PtokaX. Основан на уязвимости скрипта чат-рангов.
2) Бот connector - бот отсылающий после входа на хаб в чат сообщение, например такое: "Всем привет!".
3) Бот chatbot - чат бот. Ищет в сообщениях чата предопределённую в настройках фразу и выводит свою фразу.
4) Бот pmbot - pm бот. Такой же бот, как и чат-бот, только для лички.
5) Бот statbot - пока отсутствует.

Скопируйте содержимое данного архива в папку scripts.

Бот запускается при старте программы greylink.
Команда принудительного запуска: /luafile startup.lua
Команда остановки скрипта: /lua dcpp = {}

Прикрепления: MoonADC.0.8.5.7.rar (10.1 Kb)


lua master

Сообщение отредактировал Setuper - Понедельник, 29.12.2008, 10:25
 
deityДата: Воскресенье, 23.11.2008, 12:26 | Сообщение # 3
Полковник
Сообщений: 238
Репутация: 4
Статус: Offline
скачал бота для 5,42
MoonADC
Code
Main={
      ["ranker"]=0,
      ["connector"]=0,
      ["chatbot"]=1,
      ["pmbot"]=0,
      ["statbot"]=0

сделал так и тут
Code
["192.168.0.100"]={
поменял 192.... на один из хабов из избранного на dchub://10....
больше ничего не менял
запускаю грей и

помогите, что сделать нужно?


Сообщение отредактировал deity - Воскресенье, 23.11.2008, 13:20
 
SetuperДата: Понедельник, 24.11.2008, 11:18 | Сообщение # 4
Майор
Сообщений: 98
Репутация: 6
Статус: Offline
Возможно удалена таблица фраз и ответов Say1.

Проверьте не поставили, ли вы в своём хабе ["Say"]=nil
Ставить nil нужно, только напротив той строчки, напротив которой написан комментарий !!!

В вашем случае должно быть так:

Code
ChatBot={
     ["bOn"]=1, -- 1-вкл., 0-выкл. бота
     ["iVer"]=90, --вероятность ответа
     ["tDelay"]={1,2}, --задержки перед отправкой (в сек)

      ["tAllHubs"]={ -- таблица всех хабов. Если следующий параметр ["Say"]~=nil, то таблица для отдельных хабов ["tHubs"] не работает.
      ["Say"]=nil, -- <-- СТАВИМ nil ТОЛЬКО ТУТ
      ["iTimer"]=-1, -- не трогаем этот параметр
      ["sMsg"]="", -- не трогаем этот параметр
        ["sHub"]="" -- не трогаем этот параметр
     },

     ["tHubs"]={

      ["ваш_адрес_хаба"]={ -- адрес хаба (в соответствие с настройками в избранных хабах)
       ["Say"]=Say1, -- <-- ТУТ НЕ НАДО СТАВИТЬ nil !!!!!
       ["iTimer"]=-1, -- не трогаем этот параметр
       ["sMsg"]="", -- не трогаем этот параметр
      },

     }
}


lua master
 
deityДата: Понедельник, 24.11.2008, 11:40 | Сообщение # 5
Полковник
Сообщений: 238
Репутация: 4
Статус: Offline
все равно ошибка.
http://bestpics.ru/viewpic/ScreenShot00186.jpg
уже оставил два хаба на автозапуске в клиенте и пробовал удалить запись в скрипте о втором хабе( только смещается с 147 до 139 линии ошибка)

Code
-------------------------------------------------------------------------------
ChatBot={
        ["bOn"]=1, -- 1-вкл., 0-выкл. бота
        ["iVer"]=90, --вероятность ответа (в <img src="http://src.ucoz.net/sm/1/wacko.gif" border="0" align="absmiddle" alt="wacko">
        ["tDelay"]={1,2}, --задержки перед отправкой (в сек)

         ["tAllHubs"]={ -- таблица всех хабов. Если следующий параметр ["Say"]~=nil, то таблица для отдельных хабов ["tHubs"] не работает.
         ["Say"]=nil, -- nil - отключить таблицу всех хабов (иначе ставь Say1)
         ["iTimer"]=-1, -- не трогаем этот параметр
         ["sMsg"]="", -- не трогаем этот параметр
           ["sHub"]="" -- не трогаем этот параметр
        },

        ["tHubs"]={

         ["dchub://dc.crossnet.ru"]={ -- адрес хаба (в соответствие с настройками в избранных хабах)
          ["Say"]=Say1, -- таблица фраз/ответов
          ["iTimer"]=-1, -- не трогаем этот параметр
          ["sMsg"]="", -- не трогаем этот параметр
         },

        }
}

-- таблица фраз и ответов
Say1= {
        {
         ["q"] = {"hi","хай","пр[иею]ве[тд]","даров","здрав","добрый вечер","вечер добрый","доброго вечера","добрый день","доброго дня","день добрый","доброе утро","утро доброе"},
         ["a"] = {"Привет :-)","Приветствую","[NICK]: здарова =)","[NICK]: и тебе здравствуй","Салют! :))"},
        },
        {
         ["q"] = {"bye","п[оа]ка","бай","до%s*свидания"},
         ["a"] = {"удачи","[NICK]: счастливо","пока","66"},
        },
        {
         ["q"] = {"lol","дщд"},
         ["a"] = {" :-D"},
        },
        {
         ["q"] = {" :-D"},
         ["a"] = {" =)"," :)"},
        },
        {
         ["q"] = {"слот","slot"},
         ["a"] = {"А что предложешь взамен?","1 слот=100 руб. торгуйся, уступлю дешевле","Только под запись. Могу тебя записать на послезавтра. Хочешь?","в очередь!","хи-хи, а тебе точно можно доверить слот, вернёшь потом?","не дам! но если расскажешь анекдот, то подумаю :)"},
        },
        {
         ["q"] = {"пожалуйст","please","плиз"},
         ["a"] = {"ути-пути, какие мы вежливые"},
        },
        {
         ["q"] = {"спасиб","спс","сенкс","сэнкс","thank"},
         ["a"] = {"ути-пути, какие мы вежливые", "за такое обращение ничего не жалко"},
        },
        {
         ["q"] = {"спс"},
         ["a"] = {"краткость - сестра таланта?"},
        },
        {
         ["q"] = {"кач"},
         ["a"] = {"не понял","чего?"},
        },
        {
         ["q"] = {"эээ"},
         ["a"] = {"че разэкался?","[NICK]: че тебе?","бббееееее"},
        },
        {
         ["q"] = {"жди","ждешь"},
         ["a"] = {"фигасе! Дождаться невозможно"},
        },
        {
         ["q"] = {"жду"},
         ["a"] = {"не поверишь, сам жду. Давай ждать вместе"},
        },
        {
         ["q"] = {"бот"},
         ["a"] = {"Как ты догадался?","Меня раскрыли!","Не совсем :-D","Да что ты знаешь о ботах?","Примерно так. Но не совсем"},
        },
        {
         ["q"] = {"говно","гавно"},
         ["a"] = {"где гавно? кто гавно?"},
        },
        {
         ["q"] = {"мудак","мудила"},
         ["a"] = {"Кто действительно тут мудак, так это ты!","мудила у тебя дома сидит и трахается с твоей матерью"},
        },
        {
         ["q"] = {"сука"},
         ["a"] = {"кроме тебе, не вижу тут больше сук!"},
        },
        {
         ["q"] = {"[aо]хуел","[ао]хуеть"},
         ["a"] = {"хуеть будешь ты, когда у коня будешь сосать!"},
        },
        {
         ["q"] = {"ебан"},
         ["a"] = {"похоже, что у тебя ебало ебанулось с ебла"},
        },
        {
         ["q"] = {"хуй"},
         ["a"] = {"дать пососать?","дать отсосать?","сам ты хуй"},
        },
        {
         ["q"] = {"бля"},
         ["a"] = {"на псарни они - запомни это!"},
        },
        {
         ["q"] = {"ебло"},
         ["a"] = {"твоё ебливое ебло уже заебало"},
        },
        {
         ["q"] = {"ебать"},
         ["a"] = {"ебать будешь свою тёлку, если есть чем..."},
        },
        {
         ["q"] = {"?"},
         ["a"] = {"А почему ты спрашиваешь?","Я на глупые вопросы не отвечаю!","Дурацкий вопрос, подумай","этот вопрос мне?","не понял вопроса!","Я сёня туплю. Повторите что вы сказали?"},
        },
        {
         ["q"] = {"а"},
         ["a"] = {"занимаюсь сексом с девушкой, а ты меня отвлекаешь!!!","я ща в магазин за водярой! го со мной","по 100 грамм го?","Я тебя видел на прошлой недели с пивом и квасом!","А мы знакомы??","Правда что-ли","К чему это ты","бе-бе-бе","Не тупи!","Какого ..я?","Какойто не в тему разговор","Эх... что то у нас сегодня не клеится разговор","Чёрт, мне пора.  фильм начинается","я ща варю яйца страуса! не отвлекай меня!","Я тебя видел на прошлой недели с пивом!","как жизнь? гавно? я согласен с тобой","[NICK]: И не лень тебе было расшаривать [SHARE] байт","[NICK]: Твой ник [NICK]! Ты знаешь что он означает?","го все ко мне суп жрать!","менты секут сенешний разговор","кто воздух испортил?","Мне не нужны ни \"да\", ни \"нет\", - Мне нужен доступ в Интернеt","Билл-гей.Тсс...","Яубьютогоктосломалмойпробел!","Давно хочу купить память, но всё время забываю","хаха","жгём по полной...","чета скучно с вами((","почему тут пишут всякую туфту? не понимаю я","[NICK]: ооо... ты бот?","всем привет","скучно... ужас!","подкине пару фраз нищему боту..."},
        },
}

-------------------------------------------------------------------------------
-- Далее ничего не трогаем --
-------------------------------------------------------------------------------

MainFunc["chatbot"].OnPublicMessage = function(tUser,sData)
        if ChatBot.bOn==1 and ChatBot.iVer>=math.random(1,100) then
         if tUser.ME~="1" then
             if ChatBot.tAllHubs.Say then
               for j,tbl in pairs(ChatBot.tAllHubs.Say) do
            if ChatBot:Find2(cid,tUser,sData,tbl) then return true end
           end
             else
               for i,v in pairs(ChatBot.tHubs) do
                 if i==tUser.HL then
                   for j,tbl in pairs(v.Say) do
                     if ChatBot:Find(tUser,sData,tbl,i) then return true end
                   end
                 end
               end
             end
         end
        end
end

MainFunc["chatbot"].OnTimer = function()
        if ChatBot.bOn==1 then
           if ChatBot.tAllHubs.Say then
             if ChatBot.tAllHubs.iTimer>=0 then
           if ChatBot.tAllHubs.iTimer==0 then DC():SendPublicMessage(ChatBot.tAllHubs.sHub,ChatBot.tAllHubs.sMsg) end
           ChatBot.tAllHubs.iTimer=ChatBot.tAllHubs.iTimer-1
          end
           else
             for i,v in pairs(ChatBot.tHubs) do
               if v.iTimer>=0 and v.Say then
                 if v.iTimer==0 then DC():SendPublicMessage(i,v.sMsg) end
                 ChatBot.tHubs[i].iTimer=ChatBot.tHubs[i].iTimer-1
               end
             end
         end
        end
end

function ChatBot:Find(tUser,sData,tbl,i)
        for _, v in pairs(tbl["q"]) do
         if string.find(Sys:ToLower(sData),"("..Sys:ToLower(v)..")") then
          self.tHubs[i].iTimer=self.tDelay[math.random(1, table.getn(self.tDelay))]
          self.tHubs[i].sMsg=Sys:Tags(tUser,DC():ToUtf8(tbl["a"][math.random(1, table.getn(tbl["a"]))]),sData)
          return true
         end
        end
end

function ChatBot:Find2(cid,tUser,sData,tbl)
        for _, v in pairs(tbl["q"]) do
         if string.find(Sys:ToLower(sData),"("..Sys:ToLower(v)..")") then
          self.tAllHubs.iTimer=self.tDelay[math.random(1, table.getn(self.tDelay))]
          self.tAllHubs.sMsg=Sys:Tags(tUser,DC():ToUtf8(tbl["a"][math.random(1, table.getn(tbl["a"]))]),sData)
          self.tAllHubs.sHub=tUser.HL
          return true
         end
        end
end


Сообщение отредактировал deity - Понедельник, 24.11.2008, 11:43
 
SetuperДата: Понедельник, 24.11.2008, 12:01 | Сообщение # 6
Майор
Сообщений: 98
Репутация: 6
Статус: Offline
Ошибка выскакивает только при автозапуске скрипта при старте программы. После перезапуска скрипта командой /luafile startup.lua - всё работает!!!

В старых версиях этой ошибки не было при старте. Видимо дело в грее. Ещё один баг грея.


lua master
 
deityДата: Понедельник, 24.11.2008, 12:10 | Сообщение # 7
Полковник
Сообщений: 238
Репутация: 4
Статус: Offline
может сделать отложенный запуск скрипта секунд на 10?
а чтобы убрать окно запуска скрипта потреть вот это все надо?
Code
DC():RunTimer(1)
DC():PrintDebug(DC():ToUtf8("Боты запущены."))
DC():MessageBox(DC():ToUtf8("Программа: greylinkDC++ "..Version.."\r\nДиректория программы: "..DC():ToUtf8(DC():GetAppPath()).."\r\nЗапущены следующие боты:\r\n"..sBM), DC():ToUtf8("MoonADC++ Bot (Lua 5.1.3) by Setuper"), "ok", "warning")
 
SetuperДата: Понедельник, 24.11.2008, 13:26 | Сообщение # 8
Майор
Сообщений: 98
Репутация: 6
Статус: Offline
DC():RunTimer(1) - эту строку стирать нельзя!!!
DC():PrintDebug(DC():ToUtf8("Боты запущены.")) - эту строчку можно стереть, она отправляет сообщение о запуске бота в статусную строку (в ту строку, где и ошибки пишутся)
DC():MessageBox(DC():ToUtf8("Программа: greylinkDC++ "..Version.."\r\nДиректория программы: "..DC():ToUtf8(DC():GetAppPath()).."\r\nЗапущены следующие боты:\r\n"..sBM), DC():ToUtf8("MoonADC++ Bot (Lua 5.1.3) by Setuper"), "ok", "warning") - эта строка отвечает за вывод окна с запущеными ботами.

Добавлено (24.11.2008, 13:26)
---------------------------------------------
Ошибка возникает, не при автозапуске, а непосредственно после входа на хаб. Видимо это реакция на отправку стартового сообщения бота или отправку ботом MOTD'а. Почему-то возникает совсем необъяснимая с точки зрения здравого смысла ошибка, в старых версиях грея её не было.

Видимо грей скриптом lua не может обработать отправленное сообщение ботом непосредственно во время входа на хаб.


lua master

Сообщение отредактировал Setuper - Понедельник, 24.11.2008, 13:27
 
deityДата: Вторник, 09.12.2008, 11:49 | Сообщение # 9
Полковник
Сообщений: 238
Репутация: 4
Статус: Offline
спасибо, скрипт в ручном запуске работает( окно запуска бота тоже убралось) , осталось только опцию автозапуска отладить

Добавлено (03.12.2008, 15:39)
---------------------------------------------
пытался заставить работать MoonADC bot с RSX++ - нифига не получилось,не автоматом ни руками, результат LUA Error: attempt to call a nil value

Добавлено (09.12.2008, 11:49)
---------------------------------------------

Quote (Setuper)
овсем необъяснимая с точки зрения здравого смысла ошибка, в старых версиях грея её не было.

5.48
ошибка на месте sad
 
SetuperДата: Вторник, 09.12.2008, 13:19 | Сообщение # 10
Майор
Сообщений: 98
Репутация: 6
Статус: Offline
Странно, что раньше этой ошибки не было, хотя она должна была себя проявить.

Ошибка исправляется следующим образом: надо поменять местами таблицы ChatBot и Say1, то есть написать сначала таблицу Say1, а потом ChatBot. Дело в том, что в таблице ChatBot используется таблица Say1, то так как Say1 ещё не инициализирована, то в таблице ChatBot она будет равна nil.


lua master

Сообщение отредактировал Setuper - Вторник, 09.12.2008, 13:34
 
deityДата: Пятница, 19.12.2008, 13:53 | Сообщение # 11
Полковник
Сообщений: 238
Репутация: 4
Статус: Offline
Quote (Setuper)
Ошибка исправляется следующим образом

вот это другое дело, теперь все работает,спасибо!
----------------------------------------------------
только при запуске клиента сразу(один раз) пишет что-нибудь из набора Say , не дожидаясь слова-триггера...

Добавлено (19.12.2008, 13:53)
---------------------------------------------
такт как сделать то, чтобы включенный один chatbot.func при запуске клиента не посылал сразу в чат при входе на хаб как должен делать connector.func , а молчал, выдавая сообщения только на тригерные слова?

Сообщение отредактировал deity - Вторник, 09.12.2008, 18:37
 
SetuperДата: Пятница, 19.12.2008, 15:50 | Сообщение # 12
Майор
Сообщений: 98
Репутация: 6
Статус: Offline
Это происходит из-за того, что скрипт реагирует на хаб-бота, который при входе, например, отправляет какое-то приветственное сообщение или MOTD.

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

Исправляется это так:

Открываем файл chatbot.func, дописываем в самом начале строчки:

Code
iStartTime=os.time() --время запуска скрипта
iDelayStart=10 --задержка в выполнении при звпуске скрипта (в сек)

После этого меняем в функции MainFunc["chatbot"].OnPublicMessage строку:

Code
if ChatBot.bOn==1 and ChatBot.iVer>=math.random(1,100) then

на строку:
Code
if os.time()>iStartTime+iDelayStart and ChatBot.bOn==1 and ChatBot.iVer>=math.random(1,100) then

А также меняем в функции MainFunc["chatbot"].OnTimer:

Code
if ChatBot.bOn==1 then

на:
Code
if os.time()>iStartTime+iDelayStart and ChatBot.bOn==1 then


lua master
 
deityДата: Пятница, 19.12.2008, 16:05 | Сообщение # 13
Полковник
Сообщений: 238
Репутация: 4
Статус: Offline
Quote (Setuper)
Открываем файл chatbot.func, дописываем в самом начале строчки:
Code
iStartTime=os.time() --время запуска скрипта
iDelayStart=10 --задержка в выполнении при звпуске скрипта (в сек)

в самом начале теперь
Code
-- таблица фраз и ответов
Say1= {
     {

не понял куда это вписывать
 
SetuperДата: Пятница, 19.12.2008, 16:08 | Сообщение # 14
Майор
Сообщений: 98
Репутация: 6
Статус: Offline
прямо первыми строчками, перед этой таблицей:
Code
iStartTime=os.time() --время запуска скрипта
iDelayStart=10 --задержка в выполнении при запуске скрипта (в сек)
-- таблица фраз и ответов
Say1= {
       {
...


lua master

Сообщение отредактировал Setuper - Пятница, 19.12.2008, 16:09
 
deityДата: Пятница, 19.12.2008, 16:14 | Сообщение # 15
Полковник
Сообщений: 238
Репутация: 4
Статус: Offline
и получаем ошибку 78 это if os.time()>iStartTime+iDelayStart and ChatBot.bOn==1 and ChatBot.iVer>=math.random(1,100) then
98 - if os.time()>iStartTime+iDelayStart and ChatBot.bOn==1 then
 
  • Страница 1 из 14
  • 1
  • 2
  • 3
  • 13
  • 14
  • »
Поиск:


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