|
Главная | Клиентские скрипты (greylink) - Форум | Среда, 18.12.2024, 07:25
Клиентские скрипты (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. запуск командой
Сообщение отредактировал 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 = {}
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 сделал так и тут поменял 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 ошибка на месте
|
|
|
|
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
|
|
|
|
|
|
|