Здравствуйте, гость ( Вход | Регистрация )
Дата поста: | В теме: | За сообщение: | Спасибо сказали: | ||
---|---|---|---|---|---|
19.12.2013, 20:14 |
Посылка команд процессу |
Nickolya, я думаю, что ему важен не сам bat-файл, а именно перезагрузка текстовых файлов Птоки. А про bat он написал только потому, что не знал, что бы ещё придумать такого, чтоб перезагрузить эти самые файлы. Как-то так, я думаю. Дальше моя экстрасенсорика не может углубиться. |
Nickolya | ||
2.12.2013, 13:12 |
Protector API2 | бот всё в одном |
Dani_Filth, хы, помог я, а спасибо другому? Как-то нелогично.. Я не любитель вытягивать спасибки, но тут явно напрашивается претензия. Нужно быть внимательнее. Извините! |
Артём, Dani_Filth | ||
1.12.2013, 20:01 |
Protector API2 | бот всё в одном |
Dani_Filth, попробуйте вот в этой функции Код function ValidateNickArrival(tUser, sData) закомментить строку if tUsers[tUser.sIP] then CheckBans(tUser) AutoRegCheck(tUser) end end Код AutoRegCheck(tUser) |
Setuper | ||
17.11.2013, 21:05 |
Сохранение и загрузка таблиц в файл (из файла) |
1. Попробуйте заняться чем-нибудь попроще.. 2. Либо начните с изучения чужих скриптов, их на этом форуме тьма-тьмущая. |
daslex | ||
1.11.2013, 18:05 |
Current_Weather_All_Cities Выводит текущую погоду автом. в чат и по запросу, любые города |
Скрипт с изменениями выложен в сообщении #1. UPD-7: - пришлось перелопатить скрипт из-за изменений на странице погоды, в том числе и кодировки символов. - теперь для городов США уверенно отсутствуют архивные температуры. На сайте архивных данных сильно изменили представление страницы именно для США, для них необходимо отдельно парсить страницы и вытаскивать архив. Начал было делать эту работу, почти добил, потом подумал - а нафиг это надо кому, зачем эта лишняя работа, и забил. А так уже давно мог бы выложить исправленный скрипт, но так получилось, сорри.. плюс лень одолела в последнее время (но это скорее минус). Дата заливки последней версии: 2013-11-01 19:00 (мск.) |
KCAHDEP | ||
22.10.2013, 5:35 |
Open Dc Hub Unix/Linux |
Стоял у нас Северский хаб как раз в те годы на этом самом ОпенДЦ-хабе.. Убожество редкостное (я чрезвычайно редко говорю такие слова, но это самое подходящее для данного случая), минимальная возможность управления (в смысле - очень мало команд, для подсчёта хватает пальцев одной руки). Даже YnHub по сравнении с ним - вершина гениальности.. При наличии других хабов сидеть на ОпенХабе - это всего лишь для выпендривания.. |
Артём, мамин_парень | ||
3.10.2013, 19:21 |
Информер API2 | Показывает сообщения по таймеру в назначенный день |
Не, он же для protax спрашивает.. |
Артём | ||
28.9.2013, 18:58 |
Скрипт выводящий раз в час сообщение |
Ahton, по-моему, таких кусков кода (сообщение в чат по таймеру) в скриптах форума сотня, не меньше.. Но вот ради практики написал на скорую руку спешал фор ю небольшой скриптик, делающий только то, что вы просите. Код local iTime = 3600 -- это 1 час tMessages = { -- при необходимости только одного сообщения, можно в списке оставить только одно, либо написать все одинаковыми текстами [1] = "Тестовое сообщение номер 1", [2] = "Тестовое сообщение номер 2", [3] = "Тестовое сообщение номер 3", } function OnStartup() TmrMan.AddTimer(iTime*1000, "MessageToChat") end function MessageToChat() Core.SendToAll(tMessages[math.random(#tMessages)]) end function OnError(s) Core.SendToOpChat(s) end Примечание: в таблицу можно вписать любое количество любых сообщений (разных), будет выводить в случайном порядке через каждый час одно из них. Если надо только одно-единственное, то в списке оставьте только одно, либо в каждый пункт впишите одно и то же сообщение. В конце скрипта функция, отправляющая в опчат сообщение с ошибкой скрипта, если по ходу работы свалится. Скрипт мной не проверен, напишите сюда, как проверите. |
мамин_парень | ||
4.9.2013, 14:24 |
DiapasonGag Диапазон гаг |
Строка 80: Код if tAdmin and bFlag2 then должна выглядеть так:Код if tAdmin and bFlag3 then Это моя ошибка (в исходном скрипте для PtokaX та же ошибка, там уже исправил и перезалил). |
Артём | ||
1.8.2013, 0:32 |
Crazy_Writer Разные юзеры вводят разные слова и получаем готовую фразу |
Скрипт-игра, аналог настольной из докомпьютерной эры, которую играли с карандашом и бумагой. Название: Crazy_Writer (Сумасшедший писатель) Платформа: PtokaX API: 2 Автор: Ksan Дата создания: 2013-07-30 Дата изменения: 2014-08-24 Город: Томск Комментарии к скрипту: 1. База из слов, добавляемых юзерами, при вызове фразы она получается путём составления из случайного набора из таблиц + с использованием ников из списка юзеров (тоже случайные). 2. Добавляемые через меню слова проходят проверку: - на мат (антимат достаточно простой, но вы можете сами добавить слова и исключения, если есть желание и руки прямые), - на соответствие требуемым частям речи (прилагательные/причастия, наречия, глаголы, снова прилагательные/причастия (но в винительном падеже)), - на кириллические символы (слова с другими символами и знаками не пройдут), - антимат отключаемый (в настройках) для хабов, где мат приемлем, - вводимые юзерами новые слова копируются в опчат (отключаемо в настройках), чтоб при необходимости кто-нибудь мог удалить или перенести в соответствующую группу то, что пропустила встроенная автопроверка (нет в мире совершенства), - удалять слова могут только профили, указанные в скрипте. 3. Для работы скрипта необходимо наличие папки "Crazy_Writer" с файлом, в котором есть база антимата (запретные слова и исключения к ним), а также файл с уже имеющимися таблицами слов для фраз (я приложил к скрипту начальную базу), которые можно и нужно продолжать заполнять через меню (юзерами и админами). При отсутствии последнего файла он создастся при первом запуске скрипта, но базу придётся добавлять, а при отсутствии файла антимата скрипт будет работать в режиме "без антимата". UPD: - теперь по-умолчанию берутся ники только пишущих в чате, но через меню можно поменять источник ников вместо чата на список юзеров (и обратно при желании). Из списка - удобно для хаба с малопишущими в чате юзерами, из чата - удобно, когда чат достаточно живой, - ники, взятые из чата, сохраняются в файл (в том числе и при отключении скрипта), при выходе юзера из хаба его ник удаляется из базы, то же самое делается при включении скрипта - в списке остаются только онлайн-ники, - теперь через меню можно узнать количество слов в базе (вывод размера каждой таблицы) (могут все), - а также можно посмотреть сами слова (отдельно каждый список), но размер списка может оказаться слишком длинным (если неленивые юзеры и админы хаба оказались), поэтому вывода не будет, если больше определённого числа слов (сейчас стоит 50, но вы можете увеличить/уменьшить сами) (могут только ОПы), - при запуске (например, если база уже существует от первой версии скрипта) проверяются таблицы слов на корректность ввода (в таблице прилагательных/причастий в именительном падеже (для первого слова в фразе) первая буква заглавная, остальные строчные, в других таблицах все слова из строчных букв; кстати, это же проверяется и при вводе) Примеры результатов из чата: Цитата [00:33:50] <Crazy_Writer> Лопоухий Hedgehogs глумливо лечит горбатого Mokizmezu64 [02:39:39] <Crazy_Writer> Бесподобный mike9410 шаловливо округляет смешного emissary Дата заливки последней версии: 2014-08-26 13:20 (мск.) |
Nickolya, ustas, Tsd, Артём, rival, dimetro, KCAHDEP | ||
17.7.2013, 20:03 |
Fuck2UnReg API1, API2 | Скрипт ограничений для незарегистрированных юзеров |
Marc: 1. Попробуйте так - функцию function ConnectToMeArrival в скрипте закомментите (целиком, все строки функции), а вместо неё вставьте вот эту: Код function ConnectToMeArrival(tUser, sData) И сообщите тут, получилось запретить или нет.local sNick = tUser.sNick if tUser.iProfile == -1 and not tUsers[sNick] and tConfig["bDownload"] == 1 then Core.SendPmToUser(tUser, sBot, "*** "..sNick..", поиск и скачивание для незарегистрированных пользователей запрещены! Зарегистрируйтесь, пожалуйста!") return RETURN end end 2. Остаётся невыясненным вопрос - ваши незарегистрированные юзеры - не из локальной ли они сети? То есть, не принадлежат ли они диапазону, который в скрипте в исключениях в самом начале? Хотя, если запрет привата/чата работает для незарегенных, то вопрос снимается.. 3. А вообще, скрипт написан так, чтоб удовлетворить и API 1 и API 2, потому трудновато воспринимается. Лучше бы его переписать строго под API 2, ибо вряд ли кто уже сидит с API 1. И вот что у меня получилось (скрипт под API 2): Код -- что запрещаем при старте скрипта (1 - запрещено) tConfig = { ["bMainChat"] = 1, -- главный чат ["bPM"] = 1, -- лички ["bDownload"] = 1, -- скачку } -- диапазоны IP, на которых не применяются правила блокировки tAllowedRanges = { ["127.0.0.1"]= "127.0.0.255", -- localhost } local tTemp = {} local tUsers = {} function OnStartup() sBot = SetMan.GetString(21) DoTemp() local tUsersOnline = Core.GetOnlineUsers() for i, tUser in ipairs(tUsersOnline) do UserConnected(tUser) end end function UserConnected(tUser) local sNick = tUser.sNick tUsers[sNick] = checkIP(tUser.sIP) end OpConnected,RegConnected = UserConnected,UserConnected function UserDisconnected(tUser) local sNick = tUser.sNick tUsers[sNick] = nil end RegDisconnected,OpDisconnected = UserDisconnected,UserDisconnected function ChatArrival(tUser, sData) local sNick = tUser.sNick if tUser.iProfile == -1 and not tUsers[sNick] and tConfig["bMainChat"] == 1 then Core.SendPmToUser(tUser, sBot, "*** "..sNick..", главный чат для незарегистрированных пользователей запрещен, сообщение не отправлено! Зарегистрируйтесь, пожалуйста!") return true end end function ToArrival(tUser, sData) local sNick = tUser.sNick if tUser.iProfile == -1 and not tUsers[sNick] and tConfig["bPM"] == 1 then Core.SendPmToUser(tUser, sBot, "*** "..sNick..", приватные сообщения для незарегистрированных пользователей запрещены, сообщение не отправлено! Зарегистрируйтесь, пожалуйста!") return true end end function ConnectToMeArrival(tUser, sData) local sNick = tUser.sNick if tUser.iProfile == -1 and not tUsers[sNick] and tConfig["bDownload"] == 1 then Core.SendPmToUser(tUser, sBot, "*** "..sNick..", поиск и скачивание для незарегистрированных пользователей запрещены! Зарегистрируйтесь, пожалуйста!") return true end end SearchArrival = ConnectToMeArrival MultiConnectToMeArrival = ConnectToMeArrival RevConnectToMeArrival = ConnectToMeArrival SRArrival = ConnectToMeArrival UDPSRArrival = ConnectToMeArrival function DoTemp() for a,b in pairs(tAllowedRanges) do tTemp[(computeIP(a))] = computeIP(b) end end function computeIP(sIP) local _,_,a,b,c,d = string.find(sIP, "(%d+).(%d+).(%d+).(%d+)") return a*16777216 + b*65536 + c*256 + d end function checkIP(sIP) local iIP = computeIP(sIP) if iIP then for startRange,endRange in pairs(tTemp) do if (iIP >= startRange) and (iIP <= endRange) then return true end end end end function OnError(s) Core.SendToOpChat(s) end Удачи! UPD: Добавил в версию из пункта 3 строку Код SearchArrival = ConnectToMeArrival |
Marc | ||
16.6.2013, 22:16 |
Current_Weather_All_Cities Выводит текущую погоду автом. в чат и по запросу, любые города |
KCAHDEP, нужно строку 196 (по скрипту на форуме) Код bArchive, sErr = GetData(sHubCity) написать так Код bArchive, sErr = GetData(sHubCity, sChatCity) Естественно, выше в настройках должна присутствовать строка Код local sChatCity = "Каменск-Шахтинский" Не пойму, из каких соображений пропустил раньше, и почему у меня Томск работал в таком виде. PS: Исправил скрипт, перезалил в первом сообщении. Дата перезаливки последней версии: 2013-06-16 23:30 (мск.) |
Артём, KCAHDEP | ||
16.6.2013, 15:43 |
Current_Weather_All_Cities Выводит текущую погоду автом. в чат и по запросу, любые города |
UPD-6: - добавил возможность выбрать любой город/посёлок мира (но оставил возможность просмотра жёстко привязанных к меню городов)...для этого пришлось писать отдельный скрипт (он здесь не представлен) для выборки из сайта погоды и сборки в таблицу списков всех городов со странами и областями. - в архиве есть папка с обязательными файлами (таблицы городов и цифровых кодов городов (последнее - для архивных температур)) Дата заливки последней версии: 2013-06-16 16:35 (мск.) |
KCAHDEP | ||
9.6.2013, 18:28 |
От: Скрипт приветствия Motd От темы с ID: 5053 |
RoL, может, вам пора уже начинать изучать содержание этого форума? Ткните сюда, полазайте по разделам, подразделам и темам, и вы найдёте всё, что душа захочет (кроме слишком специфических скриптов на одного человека, конечно, как с вашим баланс-скриптом), в том числе и аналог скрипта МОТД для Птоки. И прекращайте тут просить, обвинять и снова просить! Не смешите людей. И да, прекращайте писать "луя", не бесите уже! Язык называется Луа (Lua), и это слово не склоняется никаким образом! Никто из нас не учил этот язык в школе, универе или ещё в каких-то учебных заведениях, всему учимся тут. Пора и вам, хватит попрошайничать, оскорблять и тупить. И следите за своей речью...за русской речью! Напишите хотя пару предложений без ошибок в половине слов.. Извините, уже невтерпёж на это смотреть.. :( |
Артём, Littlemuk | ||
7.6.2013, 15:36 |
Cкрипт проверки баланса хз как описать |
RoL, я фигею с вас.. :(( |
мамин_парень | ||
3.6.2013, 15:21 |
Пассивный режим |
valera_, и с каким профилем это делаете? Короче (я уже спать, поэтому не стану дожидаться вашего ответа), по скрипту сообщение получит только тот, кто либо незарегистрированный, либо регистрирован, но он простой юзер.. |
valera_ | ||
21.5.2013, 5:26 |
Новые скрипты для птохи - новые вариации на старые темы |
baltica, и да, кстати, в варианте скрипта newgag.lua, который я показал выше (думаю, и в оригинале так же), командой заглушки/разглушки может служить любое другое !слово, а не только !gag или !ungag, так как по коду достаточным условием заглушки является наличие ника в таблице заглушки. Поэтому лучше так и сделать, а в дальнейшем попытаться нарастить мощность скрипта дополнительными фишками-удобствами...в частности, добавить меню, сохранение таблицы в файл, возможность добавить срок заглушки, причину заглушки и т.д. и т.п.. То есть, на базе этого скрипта учиться кодировать на Луа.. Все эти фишки уже давно реализованы в полной мере в других скриптах форума (и вы вполне можете ими пользоваться), но вам, раз желаете самостоятельно научиться писать, советую прислушаться и продолжить наращивать этот скрипт. Вся мощь данного форума к вашим услугам, берите скрипты, изучайте.. Удачи! |
мамин_парень | ||
19.5.2013, 23:07 |
Новые скрипты для птохи - новые вариации на старые темы |
baltica, у вас странная манера написания скриптов.. я даже не уверен, все ли они работают и правильно ли.. Если бы вы выложили на этом форуме, то можно было бы поговорить на эту тему, а так...где-то далеко-далеко лежат какие-то скрипты - а нам-то что до них? тут своих хватает...вот когда они станут частью нашего форума, вот тогда и можно принять всерьёз. Так, навскидку, - нет проверки (или проверок) прав на команду, сомнительные регулярки... пример: Код local nick = sData:match("!gag%s-(%S-)|") Я скрипты на рабочесть не проверял, изучил через Нотепад++ только один (newgag.lua), вот на основании этого и. Кстати, этот скрипт я бы написал так: Обозначения переменных оставил как есть. Сообщения о разглушке (юзеру и в общий чат) счёл ненужными. Код local bot = "Hub-Security" А вообще, гагать юзеров через эту штатную команду (!gag/!ungag) - позапрошлый век! Писать скрипт под такую команду сейчас - только разве что для тренировки..gg = {} local tProfiles = { [0] = 1, [1] = 1, [2] = 0, [3] = 0, [-1] = 0, } function ChatArrival(tUser, sData) if tProfiles[tUser.iProfile] == 1 and sData:find("!gag") then local nick = sData:match"^%b<>%s+%S+%s+(%S+)|" if not gg[nick] then gg[nick] = true else Core.SendToNick(tUser.sNick, "<"..bot.."> Этот юзер уже заглушен.") end return true elseif tProfiles[tUser.iProfile] == 1 and sData:find("!ungag") then local nick = sData:match"^%b<>%s+%S+%s+(%S+)|" if not gg[nick] then Core.SendToNick(tUser.sNick, "<"..bot.."> Этот юзер и так не заглушен.") else gg[nick] = nil end return true elseif tProfiles[tUser.iProfile] == 0 and gg[tUser.sNick] then return true end end |
ustas, мамин_парень | ||
19.5.2013, 8:50 |
Checker API2 | Детектор чата и привата |
valera_, я не знаю, как надо постараться, чтоб получить такую ошибку, да ещё с ™.. Я скачал скрипт из первого сообщения, добавил в начале ник админа (чтоб было кому отправить в приват), и далее вместо отправки в опчат сделал отправку в приват админу (строку отправки уже показал выше). Как при таком случае можно получить такую ошибку, и как потом его исправить, я не знаю. Просто делай всё как я сказал, и не должно быть ошибок. UPD: Если проблема решена, вы должны тут написать, КАК вы её решили, в чём была ошибка.. И нехорошо удалять сообщение с проблемой и писать вместо него, типа всё, проблема решена.. Нужно добавлять ниже, как я делаю, не удаляя предыдущий текст. |
valera_ | ||
19.5.2013, 5:25 |
Checker API2 | Детектор чата и привата |
valera_, первоисточник у меня работает без проблем. Скачал, запустил и выдаёт всё, что от него требуется.. Цитата [09:10:58] <..OpChat_Test> *** Юзер Test_User сказал подозрительную фразу: 109.227.235.80 Что до проблемы с твоим вариантом даже со скобками, я не знаю, почему там ошибка вылетает, но это легко решается подстановкой нужных данных вместо %s : Код Core.SendPmToNick(Nick, sBot," *** Юзер "..tUser.sNick.." сказал подозрительную фразу: "..sMsg) И выдаст тоже правильный ответ:Цитата [09:21:11] <Checker> *** Юзер Test_User сказал подозрительную фразу: 109.227.235.80 UPD.: Внимательнее изучив ту ошибку, понял, как надо было строить фразу для привата юзеру: Код Core.SendPmToNick(sNick, sBot, (" *** Юзер %s сказал подозрительную фразу: %s"):format(tUser.sNick, sMsg)) Проверено, |
мамин_парень, valera_ | ||
16.5.2013, 2:16 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
MIKHAIL, ну разве что сразу в таблицу будете записывать целиком полную дату одной строкой (в смысле - одним значением).. ну и забирать так же. Ну я не знаю, как образована ваша таблица, это я как пример говорю. Только вопрос - а для чего вам такая головная боль на пустом месте? (я про ваши попытки сократить строку вывода даты за счёт сокращения количества упоминаний хедера таблицы) Забейте, ваша экономия выеденного яйца не стоит.. |
MIKHAIL | ||
3.4.2013, 15:14 |
WhoIsNew + WhoIs_Rest-Api Добывает WHOIS-информацию по IP |
Saymon21, к тому времени уже скрипты были готовы, и я уже был не в состояни начинать менять всё. Я был очень уставший. Может, позже. Работает и ладно. Там посмотрим, будет настроение, изучу тему. PS: На всякий случай прикрепил к первому сообщению библиотеку JSON, точнее, луа-скрипт json.lua (должен лежать там же, где все библиотеки). |
мамин_парень | ||
3.4.2013, 0:54 |
WhoIsNew + WhoIs_Rest-Api Добывает WHOIS-информацию по IP |
Скрипт просмотра через админское меню хаба WHOIS-информации по IP (вводом IP либо через онлайн-ник) В результате получаем диапазон, к которому принадлежит вводимое IP, название сети, страну, город и ещё кое-какие данные этой сети. Представлены 2 версии скрипта. Название1: Whois_Rest-api.lua Версия: 1.0 Название2: WhoisNew_&_Rest-api.lua Версия: 2.0 Платформа: PtokaX API: API 2 Авторы: Saymon21 (г.Чебоксары) & Ksan (г.Томск) Дата: 01-04-2013 Библиотеки: Для работы требуются библиотеки Lua Socket и В папку библиотек (scripts\libs\ для Windows_PtokaX и папка библиотек операционной системы для Linux_PtokaX) требуется положить модуль для работы с JSON (файл Комментарии: 1. Скрипт Whois_Rest-api.lua - это просто переделка под PtokaX скрипта whois.lua под Русхаб от Saymon21. Плюс добавлена возможность получать диапазон подсети, в который попадает анализируемый IP. Этот скрипт без меню, команда для выполнения в чате: !whois опция Опцией может быть как IP, так и -h, при этом выдаст сообщение с помощью (на английском). 2. Скрипт WhoisNew_&_Rest-api.lua - переделка моего же скрипта WhoIs.lua с заменой метода получения основных данных на метод из скрипта от Saymon21, но диапазон подсети получается старым методом. Скрипт снабжён меню и двуязычен - то есть, при входе проверяется страна пребывания пользователя скрипта и отсылается меню на русском или английском (для русскоязычного меню в скрипте имеется таблица из нескольких стран СНГ). То же самое - со всеми сообщениями скрипта. Локальному пользователю (тому, кто сидит на том же компе, где хаб, или в одной домашней сети с ним) отправит англоязычный текст и меню. 3. Оба скрипта (так как метод получения основных данных один), скорее, подходят как резервный к моему первому, либо он - как резервный к этим двум, так как некоторые данные могут быть не получены (например, страна или город), так что лучше иметь под рукой по 2 скрипта с разными методами. 4. Первый из двух - для любителей работать с командной строкой, второй - с меню. 5. На всякий случай прикрепил к сообщению библиотеку JSON, точнее, луа-скрипт json.lua. Просьба отписываться о работе скриптов. |
Tsd, Артём, valdis73, Saymon21, SKIFI, KCAHDEP, мамин_парень | ||
18.3.2013, 22:04 |
Ddos Информация к размышлению |
Тема стала больше походить на срач между шакалами и гиенами...вроде бы и разные животные, а на деле одинаково противные твари. Что защитники наркоты, что так называемые "борцы" с ними, что ддосеры, что спамеры, что апологеты великих арийцев...Все воняют. Для некоторых - борьба со злом незаконными методами всегда кончается плохо. И никогда не решает поставленную задачу, только даёт временное ощущение превосходства. |
Nickolya | ||
18.3.2013, 19:43 |
Ddos Информация к размышлению |
Гыы...он возомнил себя Спайдерменом.. |
Nickolya | ||
5.2.2013, 12:53 |
Заткни Меня Нежно API2 | Оригинальная заглушка для юзеров |
tammi_0909, попробуй ещё этот скрипт, там нет такого. |
tammi_0909 | ||
29.1.2013, 13:42 |
XenoPhobia Скрипт для защиты от потенциальных прокси-спамеров из других стран |
Yamakasi, ну, ребятки, если вы взялись держать хаб и ставить туда скрипты, должны уж как минимум знать, где это ваше меню.. или найти его. Неужели надо учить админа хаба азбуке? И насчёт версии хаба 0.5.0.0 ничего не скажу, я делал на версии 0.4.1.2.. |
Yamakasi | ||
29.1.2013, 12:58 |
XenoPhobia Скрипт для защиты от потенциальных прокси-спамеров из других стран |
Yamakasi, а у вас лежит в нужном месте база стран и диапазонов? В первом сообщении в самом начале в абзаце Дополнительно написано про это. А вот эта фраза вообще непонятна: Цитата и норма, и нет не флагов и не меню Если вы про упоминаемые мной в первом сообщении флажки, то это всё просто указания через меню - банить кого-то или нет, глушить или нет..а слово флажок это просто термин для таких меток в скрипте, исходя из которых кто-то банится или глушится...или нет. Зависит от того, что вы выбрали в меню. А меню находится по умолчанию настроек скрипта в • Сервис / << АДМИНКА >> / Ксенофобия.. Если вы сменили этот путь на свой, ищите по своему пути. |
Yamakasi | ||
21.1.2013, 13:21 |
Rss_NewsRu Скрипт для чтения лент новостей с сайта http://www.NEWSru.com/ |
KCAHDEP, это вас Бог наказывает за неблаговидные дела.. Покайтесь и просите прощения у тех, кого обидели. |
Артём | ||
13.1.2013, 15:39 |
NetSeparator Не даст качать, если помегабайтная плата за трафик на внешке. |
reidel_viktor, изучить меню скрипта. Там есть команда отключения предупреждений. |
мамин_парень | ||
19.12.2012, 4:50 |
Surdo_Isolation Почти универсальный скрипт заглушек с богатым меню и возможностями |
Пофиксил вышеобсуждённую проблему, перезалил (точнее, дозалил) файл (старый остался доступен) в первом сообщении. Тем не менее, обнаружилась и осталась не пофиксенной в силу большой трудозатратности и возможного увеличения нагрузки на хаб другая фишка, суть которой не стану тут описывать. P.S.: Файл залит в виде RAR-архива, но скачивается почему-то как ZIP-архив и, естественно, не разархивируется. Поэтому после скачивания расширение файла нужно сразу поменять на .rar Время заливки нового файла: 19-12-2012 05:30 Мск. |
Stym | ||
17.12.2012, 19:05 |
Surdo_Isolation Почти универсальный скрипт заглушек с богатым меню и возможностями |
Stym, а вы скрипт держите ниже других скриптов, как я советовал в первом сообщении? Цитата Примечания: Раскрывающийся текст - Скрипт держать ниже других скриптов, работающих с сообщениями юзеров. Я вот только что поставил на отдельном хабе и проверил скрипт из первого сообщения - антимат работает как надо - в режиме 1 (замена словом только мата) мат заменяет на слово [•ценZура•], вместо него поставил *** - тоже работает (другие режимы тоже работают). Цитата [22:49:55] <Тест-юзер> проверка антимата: [•ценZура•] [22:52:52] <Тест-юзер> проверка антимата: [***] [22:53:27] <Тест-юзер> проверка антимата: *** [22:57:59] <Тест-юзер> Я такой матершинник, мне даже говорить об этом противно! ••• И да, помните, в конфиг-файле есть таблица профилей, для кого мат разрешён (пишу на всякий случай). Ну и, напоследок, - если до этого скрипта (выше в списке скриптов) стоит другой антимат, то сработает он, а не обсуждаемый. |
Stym | ||
9.10.2012, 19:21 |
NewsMix API2 | Новости с двух сайтов |
Booth, библиотеку берите отсюда. Не обращайте внимания, что она для Русхаба, для вашей Птоки тоже пойдёт. Та библиотека, что у вас сейчас стоит, она годится для более ранних версий Птоки, но не для вашей. |
Booth | ||
4.8.2012, 15:12 |
Скрипт кол-во скачиваний Объем: 0 Скачан: 0 раз Раздающие: 1 Качающие: 2 3 В раздаче |
Эту твою требуемую информацию выдаёт клиент, а не хаб. Вот если написать скрипт для клиентского АПИ и получать через него информацию по запросу с хаба (естественно, скриптом)...Но ведь не заставишь каждого посетителя ставить твой скрипт принудительно. Да и не факт, что есть возможность запроса с хаба клиенту. |
мамин_парень | ||
17.6.2012, 1:09 |
Скрипты API 2. Защита хаба. Базы TTH Скрипты защиты от спама, флуда, рекламы, порно |
Пипец скрипты.. Кто скачает посмотрит, поймёт, о чём я...если вообще понимает что-то в скриптах. Извините. И да, автору - комменты, вопросы и пожелания здесь принято писать в теме, а не лезть куда-то в ВК. |
мамин_парень | ||
17.5.2012, 7:19 |
Объединю свой хаб с другими |
Mellon, Ameet, вы стоите друг друга, может, вам объединиться? Может, это ваша судьба? Подумайте над этим! Но только, ради бога, оставьте нас в покое! |
ke(x)one | ||
13.5.2012, 3:13 |
Погода для нескольких городов API1, API2 | Скрипт погоды для нескольких городов |
FIGO, специально сейчас скачал скрипт, поставил, ничего не изменяя, запустился нормально. Тыкнул в меню на Харьков - показал погоду на Харьков. Что я не так делал? Хотя кое-что я изменил, но об этом ниже (ещё ниже, в послании Артёму) и оно не касается твоей проблемы. Я полагаю, что у тебя в 9-й строке в середине выражения вместо точки стоит запятая: Код local sBot = SetMan.GetString(21) -- Имя бота Исправь на точку и запусти, если больше ничего не менял, будет работать, думаю.PS: Артём, у тебя в архиве текстовый файл имеет сдвоенное расширение - ".txt.txt", надо бы подправить, а то при первом включении говорит, что не нашёлся файл. И правильно говорит, я не глянул и запустил, и получил эту ошибку. |
Артём | ||
8.5.2012, 22:50 |
помогите переделать скрипт для Ptokax |
N3RO, вместо Код Core.SendToAll("Текст") пишешь Код Core.SendToUser(curUser, "Текст") в тех местах, где тебе надо получать только юзеру вместо всех. |
N3RO | ||
24.4.2012, 13:40 |
Тест хаба |
Verd, всё это можно без тестирования сказать: 1. Пропусная способность - примерно 250 юзеров на реальный 1 мбит/с - комфортное существование (можно и больше, но с возрастанием числа юзеров начнутся подтормаживания). Соответственно, на 10 мбит/с (но реальных, а не заявленных) - около 2 тыс. Ну тут возможны разные мнения, но приблизительно так и будет. 2. Скорость - не знаю, о чём ты, но если я правильно понял, то всё зависит от твоих скриптов и их настроек. И читай предыдущий пункт. 3. Насчёт атак - практически нет защиты, если ты не платишь деньги какой-нибудь сторонней специализированной организации, занимающейся защитой чужих серверов от атак типа DoS/DDoS. Ты можешь только предпринять некоторые половинчатые меры в помощью скриптов либо команды хаба о переходе на "псевдо-спящий" режим (есть скрипт для этого - http://mydc.ru/topic5101.html ). Возможно, кто-нибудь ещё добавит на эту тему.. 4. Флуд - регулируется только настройками хаба, или скриптами опять же. Или политикой администрации хаба вкупе со скриптами и настройками. PS: И да, горячие споры вокруг моего ответа выше считаю открытыми. |
Verd | ||
15.4.2012, 21:13 |
IP INFO v 1.0 Получаем информацию об ip с ripe.net |
-=Zion=-, тогда можешь использовать этот скрипт. |
-=Zion=- | ||
26.3.2012, 4:33 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
MIKHAIL, если эти 2 файла входят в один скрипт (вызываются при запуске одного скрипта), то нет никаких проблем - работаешь с этими переменными, как родными. Они и есть родные, ибо принадлежат одному скрипту (головному. вызывающему оба файла). А если переменные принадлежат двум разным скриптам, то это весьма проблемно, если у тебя не Русхаб. |
MIKHAIL | ||
4.3.2012, 3:56 |
Несколько Слов О Захватах И Регулярных Выражениях исключительно для разработчиков |
MIKHAIL: Код local sFilePath = "http://sHostName/sDir1/sDir2/sDir3/sDirN/sFileName.sExt" local sFileName = sFilePath:gsub(".-/", "") |
MIKHAIL | ||
2.3.2012, 15:42 |
Defend Chat API 2 | Полностью автоматическая защита чата от спама |
alex82, насчёт "отлавливая команду..." - вопрос - если она (команда) есть - бот, или наоборот, если нет такой команды - бот? |
мамин_парень | ||
24.2.2012, 22:24 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
Код Core.SendToUser(tUser, ("Доброй ночи %s"):format(sMsg)) AirKobra45, тут %s означает, что при выводе сообщения вместо шаблона %s подставится очередная переменная из списка, идущего как аргумент выражения format, в данном случае подставится sMsg (оно должно быть уже создано до этого). Так же можно использовать несколько таких %s, и при каждом встреченном в сообщении %s вместо него подставится очередная переменная из аргументов format'а. Пример: Код Core.SendToUser(tUser, ("<%s> Доброй, ночи %s! Твоё IP: %s, твоя шара: %s"):format(sBot, sNick, sIP, sShara)) Значения переменных sBot, sNick, sIP, sShara уже должны быть известны перед применением.Выведет в чате, например, это: Цитата <Страшный_Бот> Доброй ночи, AirKobra45! Твоё IP: 10.20.30.40, твоя шара: 1234567890 |
ustas, AirKobra45 | ||
22.2.2012, 20:56 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
MIKHAIL, да. Достаточно вот этого, если твой хаб на АПИ 2: Код function OnError(s) Core.SendToOpChat(s) end |
MIKHAIL | ||
16.2.2012, 10:03 |
Дисконнект юзеров с хаба |
Naum_Off, по совокупности твоей информации делаю вывод - у тебя Птока стала отправлять слишком много меню, ты перестарался с набивкой хаба скриптами и развлечениями.. 1. Относительно тебя самого - удали из папки скриптов все невключенные скрипты в отдельную папку "ОТключенные скрипты", если они тебе ещё могут понадобиться...дело в том, что если у тебя стоит, к примеру, скрипт HubMenu, то он отправляет тебе как админу список всех скриптов - и работающих и отключенных - и у каждого скрипта в меню есть ещё подменю - отключить, включить, передвинуть вверх/вниз, перезапустить...а сколько других скриптов ещё.. Когда клиент перегружен менюшками, с какого-то количества их (думаю, объёма в кб), он тупо отключается от хаба. Можешь проверить - отключить какие-то скрипты с кучей строк меню - ты перестанешь слетать. 2. То же самое и для юзеров. У них не будет HubMenu и других админских менюшек, но ты мог их перегрузить менюшками развлекательного характера типа "Действия" или иными скриптами с меню. 3. Короче, если подтвердится моя версия, пересмотри своё отношение к хабу и юзерам. Может, оно того не стоит - такое количество скриптов/развлекалок? PS: Это только версия. Но у меня такое было, долго не мог понять причину, почему меня после захода сразу скидывает как админа, а как юзер спокойно захожу.. А причина оказалась та, которую изложил выше. |
Naum_Off | ||
15.2.2012, 16:17 |
Script_Matrix Скриптовая матрица-заготовка |
-- Скриптовая матрица-заготовка Название: Script_Matrix.lua Платформа: PtokaX API-2 Доктрина: "Были бы кости, мясо нарастёт." -- Когда то и дело пишешь скрипты, то также приходится то и дело писать одни и те же функции и коды, и зачастую приходится их вытаскивать/копировать из собственных же (бывает и из чужих) скриптов. Вот снова решил было написать скрипт и задумался - а почему я каждый раз лезу куда-то копировать уже написанное, пора собрать черновую заготовку скриптов и уже начинать сразу с него писать, всё меньше работы. -- Да и заодно новичкам будет легче ориентироваться, что к чему в скриптах (хотя бы самое простое) Описание: -- почти готовая к разным действиям заготовка скрипта -- достаточно только инициировать нужные переменные и отслеживать за их правильным применением -- всё, что между кавычками, можно менять по своему усмотрению -- все ненужные функции и объявления переменных можно закомментить или удалить -- можно добавить свои переменные и функции (само собой, данная матрица далеко (и очень далеко!) не всеобъемлюща) -- это просто первичная заготовка, но пригодится даже опытным скриптерам (если их устроит принятые в данной матрице обозначения и иные мелочи) Всё равно приходится выцеплять/копировать части кода со своих/чужих скриптов, так почему бы это всё не держать рядышком в корзиночке. PS: -- Данная матрица даже как заготовка несовершенна, ибо нет в мире совершенства, однако я понимаю, что можно увеличить универсальность данной матрицы, если добавить туда кучу других функций (штатных и самописных) и обращаться к ним при необходимости, используя флаги (есть флаг - используется, нет - проходим мимо). Но это уже другая песня. -- И да, я помню, что Alex82 тоже аналогичную тему создавал. Но то его тема, а это моя. Тем более, я давно собирался сам, просто руки не доходили. UPD: - исправил одну грубую синтаксическую ошибку в 85-й строке, перезалил. |
Nickolya, Артём, rival, TiGRpp, Littlemuk | ||
11.2.2012, 17:44 |
Есть ли такой скрипт? изменить адрес хаба |
Пора бы уже знать, что на клиенте ты ничего не можешь менять с хаба, хоть тресни.. Посылать каждому при каждом входе в личку и в чате оповещение о новом адресе, пусть помнят и держат под рукой. И так до тех пор, пока не перейдёте на новый адрес. И поспеши, а то можешь остаться без юзеров, если вдруг сегодня/завтра старый домен умрёт. |
dj hoodo | ||
10.2.2012, 6:07 |
NetSeparator Не даст качать, если помегабайтная плата за трафик на внешке. |
UPD: -- а вот и первый апдейт.. -- обнаружил ошибку в детектировании и анализе при $ConnectToMe и исправил. -- заодно добавил в сообщение с предупреждением показ юзеру ника того, с кем он безуспешно пытается соединиться; -- и для тестового режима на всякий случай сделал сохранение списка тех, кто с внешки (при запуске скрипта список обнуляется, чтоб не дублировались ники при каждом сохранении). Это сохранение можно отключить в настройках. Время перезаливки: 2012-02-10 07:05 (МСК) |
мамин_парень | ||
8.2.2012, 17:54 |
NetSeparator Не даст качать, если помегабайтная плата за трафик на внешке. |
Скрипт регулирования поиска и скачивания между юзерами двух разных сетей (внешки и локали) (аналог NetworkSeparation, только для частного случая, но код свой) Название: NetSeparator Платформа: PtokaX API: 2 Автор: Ksan (aka Trans) Город: Томск Дата: 2012-02-08 Примечания: - 2 варианта скриптов: ---- NetSeparator_AutoUpd - с возможностью автоматического и ручного обновления с сайта списка диапазонов местных сетей ---- NetSeparator - без оного (то есть, список заранее прописываешь в таблицу в нужном формате и при необходимости вручную обновляешь) - Для работы скриптов требуется папка NetSeparator с двумя файлами, в одном диапазоны, в другом - ники (открывших внешку и отключивших показ предупреждений при скачке). ---- при запуске при отсутствии таблицы с местными диапазонами автообновляемый скрипт сам полезет обновляться при наличии ресурса, содержащего диапазоны местных сетей (адрес нужно прописать в настройках), а когда обновится, входит в рабочий режим, если и обновиться не может, то выпадает в осадок, сообщив о ситуации админам (при наличии нужной таблицы скрипт продолжит работать, даже если в дальнейшем обновления провалятся) ---- необновляемый скрипт при запуске тоже проверяет наличие файла с таблицей диапазонов, если не находит, то сообщает админам и самоотключается. - Меню: для внешних юзеров - только ОТКЛ/ВКЛ сообщений с предупреждениями, для местных, кроме этого, ещё в меню есть возможность открыться внешке и посмотреть свой статус. ---- админу отправляется отдельное меню в админский раздел - для ручного обновления с сайта (NetSeparator_AutoUpd) -- И да, чуть не забыл - та ошибка, которая иногда проявлялась в НетворкСепаратион в виде предупреждений не тому юзеру, здесь отсутствует. -- И ещё - в этом скрипте юзеры с внешки открыты для местных, то есть, для них нет разделения сетей, им не надо заморачиваться насчёт этого. Так что дело только за местными. Nota Bene: Скрипт писался под свои хабы (хабы нашего города), где весь город и область (грубо говоря) с бесплатным трафиком, у большинства пользоватлей и с внешним интернетом нет проблем, но есть часть населения, сидящие на тарифах с помегабайтной оплатой трафика. Мало, но есть, раньше было больше. И скрипт писался как раз для разграничения в хабах двух сетей (условно говоря) - Томской сети и всего остального интернета. Благо, у нас есть ресурс ТомскНет, где как раз лежит постянно обновляемый список наших сетей и диапазонов, чем я и воспользовался для своего скрипта...для одного из них. Да и второй скрипт, хоть и не автообновляется, но там тоже юзается та же база. Напоминаю, скрипт сейчас работает только на 2 стороны (на 2 группы сетей). а не на произвольное число групп сетей. Если у кого-то аналогичная или близкая ситуация, думаю, сможете приспособить скрипт под себя. Библиотека: Для автоматического обновления базы с сайта для скрипта NetSeparator_AutoUpd требуется библиотека Lua Socket Таблица диапазонов хранится в таком виде: Код tNets = { ["91.211.184.0"] = { -- начало диапазона [1] = "91.211.184.255", -- конец диапазона [2] = "1540601856", -- начало (числовой вид) [3] = "1540602111", -- конец (числовой вид) }, ["193.150.68.0"] = { [1] = "193.150.68.255", [2] = "3247850496", [3] = "3247850751", }, } PS: Есть нюанс, не зависящий от скрипта - при поиске, если ищущий клиент в активном режиме, то он получит свои результаты в любом случае, даже у того, кто закрыт (и наоборот, кто закрыт, получит свои результаты даже с внешки, если он сам актив), то есть, поиск ограничивается только для пассива. Со скачиванием этой проблемы нет. Если найдутся те, кто будет юзать скрипт, просьба потом отписаться тут. UPD: -- а вот и первый апдейт.. -- обнаружил ошибку в детектировании и анализе при $ConnectToMe и исправил. -- заодно добавил в сообщение с предупреждением показ юзеру ника того, с кем он безуспешно пытается соединиться; -- и для тестового режима на всякий случай сделал сохранение списка тех, кто с внешки (при запуске скрипта список обнуляется, чтоб не дублировались ники при каждом сохранении). Это сохранение можно отключить в настройках. Время перезаливки: 2012-02-10 07:05 (МСК) |
Tsd, ShadoWx, AfLc, мамин_парень | ||
7.2.2012, 0:03 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
MIKHAIL | |||
1.2.2012, 9:31 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
Как бы и Птока 0.4.2.0 умеет, судя по ченчлогам. Тут уже писали и не раз. |
MIKHAIL | ||
27.1.2012, 14:18 |
StatPX Lite API2 | Веб-статистика хаба, чат-ранг, статистика местоположения юзеров |
Sergius`, открываешь скрипт, находишь функцию UserConnected(user), там находишь строку Код SendMOTD(user) и вместо этого вписываешь это: Код if user.iProfile ~= -1 then SendMOTD(user) end |
Sergius` | ||
26.1.2012, 20:29 |
RusHub: Запрет неразрывного пробела rushub |
Setuper, как у тебя всё запутано! Извини, даже после твоего пояснения я не понял, то ли ты там описал небрежно, то ли что..Не хочется развивать разбор этих нюансов.. Что до обвинений меня - так помогайте сами, человек уже запарил чат хаба Майдц, мой приват там же, я хоть пытаюсь помочь, а те, кто занимается Русхабом, упорно делают вид, что не замечают его просьбы. И тут ты появился только после того, когда я что-то не так подсказал. Как понимаю, так и подсказываю. ShadoWx, вот тебе работающий на Птоке код: Код function ChatArrival(tUser, sData) Попытайся переделать его под себя. Хотя вроде они похожи.local sMsg = sData:match("^%b<>%s(.-)$") if sMsg:find"" then Core.SendToNick("ShadoWx", "Неразрывный перенос") return true elseif sMsg:find" " then Core.SendToNick("ShadoWx", "Неразрывный пробел") return true end end |
ShadoWx | ||
26.1.2012, 14:43 |
Список пользователей |
fmit, ну этот вариант (без таблицы, проверка с подстановкой каждого префикса в одной строке) у меня сразу был готов, но я хотел с таблицей, на будущее. Тогда вот: Код local sBotMsg = "<"..SetMan.GetString(21).."> *** Просьба добавить к нику префикс и перезайти. Если у вас ADSL - припишите к нику спереди префикс [ADSL], если FTTB - то [FTTB]. Пример:\n [ADSL]Александр, [FTTB]4uMa и т.д." -- текст можно переделать на свой function ValidateNickArrival(tUser, sData) if not tUser.sNick:find"^%[ADSL%]" and not tUser.sNick:find"^%[FTTB%]" then Core.SendToUser(tUser, sBotMsg) Core.Disconnect(tUser) end end |
fmit | ||
26.1.2012, 13:20 |
СКРИПТ ЗАГЛУШКИ |
Ищите сами. Здесь вам не детский сад. 1. Наверху страницы справа увидишь ПОИСК и окошко поисковое. Слова для поиска подберите опытным путём. 2. А ещё на форуме есть каталог тем. Каталог разбит на понятные для любого разделы. Полазай. |
Nickolya, shullz, Littlemuk | ||
25.1.2012, 4:04 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
Автоматически. Но не потому, что local tContains, а потому, что они задействованы только для выполнения данного цикла. А если внутри этого цикла запустишь ещё один цикл с переменными с такими же наименованиями, они всё равно не будут путаться. |
MIKHAIL | ||
25.1.2012, 3:50 |
XenoPhobia Скрипт для защиты от потенциальных прокси-спамеров из других стран |
Скрипт для защиты от потенциальных прокси-спамеров (да и не только прокси) из других стран Название: XenoPhobia (Ксенофобия) Платформа: PtokaX API: 2 Автор: Ksan (aka Trans) Местоположение: г.Томск Дата: 25-01-2012 Дополнительно: Для работы скрипта необходима база стран и диапазонов, и она должна лежать в папке CFG в корневой папке Птоки. Скорее всего, она у вас уже есть, хотя, может, и устарела слегка. Последнюю версию можно Описание: -- если включен флажок бана, то банит (просто не пускает на хаб) юзеров из стран из отдельной таблицы (флажок ставится/снимается через меню) -- если включен флажок заглушки, то заглушает те страны, которых нет в списке исключений (флажок ставится/снимается через меню) -- но из этих стран не глушит те диапазоны, которые в исключениях (к диапазонам можно добавлять комментарии) -- также не глушатся ники, которые есть в исключениях (к никам можно добавить комментарии) -- отдельные IP тоже можно вносить в исключения (как диапазон, у которого начало и конец совпадают с данным IP) -- при показе страны заходящего на хаб или пишущего сообщение юзера показывается полное название страны + аббревиатура кода, например, так: "Россия (RU)". Так же и при просмотре списка. -- можно посмотреть списки исключений - страны, диапазоны, ники и список забаненных стран. -- все вышеуказанные операции производятся через меню, не останавливая скрипт и не открывая файлы блокнотом -- в коде присутствует примитивное предупреждение о рекламе (если в приватном сообщении у юзера из заглушенной страны имеется точное совпадение хотя бы одного слова из таблицы меток (tMarkers), то это сообщение скрипт покажет операторам/админам в приват). Поэтому вносите туда выражения только однозначные, например, "http://" и/или "dchub://", скрипт не антиреклама и не антимат, поэтому слова-исключения не предусмотрены -- сообщения юзеров заглушенных стран (не исключенных тем или иным способом) в чате видит только сам юзер и операторы/админы Примечания: -- скрипт написан практически без проверки корректности ввода (дабы не усложнять и не загромождать код), так что следите за своими руками, при неправильном вводе просто отмолчится, хотя ничего в таблицы не добавит и не убавит. -- в таблицы страны вносятся ТОЛЬКО в виде двухбуквенных кодов стран латинскими буквами, например: RU , но по ходу работы скрипт сам определяет полное название страны и при необходимости сообщает его (при выводе таблицы или в текущих сообщениях) -- текстовку скрипта можете изменять по своему усмотрению, но для этого вы должны хорошо понимать суть этого участка кода -- можно удалить из исключений все страны, даже свою, и добавить только диапазоны нужные, это ограничит любое общение всем, кроме своего окружения, например, локалки -- при запуске скрипта должны быть в наличии папка "XenoPhobia" и в ней 2 файла - один для динамических таблиц и второй - с полными названиями стран. Если файлы при запуске скрипта не обнаружатся, скрипт сообщит об этом, но сам останется в режиме ожидания, периодически проверяя их наличие, и при появлении файлов сразу же входит в нормальный режим. PS: -- чуть не забыл сказать - таблицу с полными названиями стран взял из скрипта CountryStats (автор - alex82). PPS: -- вдогонку - при первом запуске не забудьте заранее внести свой ник в список исключений (соблюдая структуру таблицы, как в представленных примерах), руками, а не через меню, иначе случайно можете оказаться без управления хабом, особенно это важно для тех, у кого хаб управляется удалённо. Картинки из жизни скрипта (списки в реале слегка форматированные, но тут это не будет видно): Список стран в исключениях Код [07:32:41] <Ксенофоб> *** Список разрешённых стран: 1: Армения (AM) 2: Азербайджан (AZ) 3: Болгария (BG) 4: Беларусь (BY) 5: Эстония (EE) 6: Европейский Союз (EU) 7: Грузия (GE) 8: Израиль (IL) 9: Киргизия (KG) 10: Казахстан (KZ) 11: Литва (LT) 12: Латвия (LV) 13: Польша (PL) 14: Россия (RU) 15: СССР (SU) 16: Таджикистан (TJ) 17: Туркмения (tm) 18: Украина (UA) 19: Узбекистан (UZ) Список невъездных стран Код [01:33:03] <Ксенофоб> *** Список забаненных стран: 1: Бразилия (BR) 2: Китай (CN) 3: Дания (DK) 4: Испания (ES) 5: Индия (IN) 6: Италия (IT) 7: США (US) 8: Вьетнам (VN) Список разрешённых диапазонов Код [07:34:46] <Ксенофоб> *** Список разрешённых диапазонов: 1: 176.65.48.0 -- 176.65.55.255 [ INTERNET-NET, Томск ] 2: 78.139.249.42 -- 78.139.249.42 [ TOMTEL-NET, Томск ] 3: 172.16.0.0 -- 172.31.255.255 [ Локалка ] 4: 90.188.95.153 -- 90.188.95.153 [ It's me! ] 5: 10.0.0.0 -- 10.255.255.255 [ Локалка ] 6: 46.161.144.0 -- 46.161.159.255 [ NTS-ETTH, Томск ] 7: 127.0.0.0 -- 127.255.255.255 [ Компьютер с хабом ] 8: 192.168.0.0 -- 192.168.255.255 [ Локалка ] Список ников-исключений Код [07:05:56] <Ксенофоб> *** Список ников-исключений: 1: Тест [ Просто так ] 2: Indy[wrk] [ Админ ] 3: Indy [ It's me! ] 4: Спорт [ ] 5: Ksan [ Админ ] 6: TestNick [ Тестер ] Граница на замке! UPD 1: -- добавил "бан" отдельных стран (юзеры оттуда не будут допускаться на хаб) с возможностью добавления/удаления стран в этот список через меню (2-буквенный код страны) и просмотр этого списка -- также добавил флажок включения этого бана (флажок можно ставить/снимать через меню) -- и добавлен флажок такой же относительно заглушек стран, включая и меню -- незначительно оптимизировал код -- таблицы/файлы совместимы с предыдущей версией скрипта, достаточно просто ещё добавить через меню страны в таблицу банов -- после перезапуска скрипта перезайти необходимо (добавлены новые пункты в меню) UPD 2: (версия 1.1) -- добавил в меню "Показывать/нет непускание" (иногда достают тупые многочасовые попытки зайти из невъездной страны, как, например, сегодня из Китая (CN)) -- скрипт перезалит. -- удалил первую версию (которая без бана). Если через меню отключить баны, то версия скрипта 1.1 работает как первая. UPD 3: (версия 1.2) -- по просьбе Артёма добавил блокирование поиска/скачивания для определённых стран ("спамоопасных"). Добавление/удаление/просмотр этих стран - через меню, как и в предыдущих случаях. -- разная косметическая мелочь. Дата последнего апдейта: 2013-04-26 19:10 (МСК) |
Nickolya, ustas, rival, Inkvizitor_ks, WINS, Mellon, AfLc, tammi_0909, Nikolaevich | ||
22.1.2012, 7:05 |
SuspendHub Блокирование хаба от входящих (защита от внешних атак) |
Артём, мамин_парень | |||
13.1.2012, 20:13 |
TotalGag для аварийной заглушки всего хаба (кроме определенных лиц) |
MIKHAIL, ага, есть такое, спасибо, что подсказал! Это потому, что я Код ToArrival = ChatArrival добавил в последний момент по просьбе кое-кого, не догадавшись проверить работу скрипта с изменением.Исправляется так - вместо кода: Код if sUngagable[tUser.sNick] ~= 1 and bFlag then нужно вот это (тут всего 1 строка перемещена)Core.SendToUser(tUser, "<"..tUser.sNick.."> "..sMsg) if not (sData:match("From:") and sData:match("To:")) then Core.SendToOps("<"..tUser.sNick.."> ••• "..sMsg) end return true end Код if sUngagable[tUser.sNick] ~= 1 and bFlag then if not (sData:match("From:") and sData:match("To:")) then Core.SendToOps("<"..tUser.sNick.."> ••• "..sMsg) Core.SendToUser(tUser, "<"..tUser.sNick.."> "..sMsg) end return true end А строку Код ToArrival = ChatArrival оставить включенным.UPD: -- перезалил исправленный скрипт в первом сообщении. |
MIKHAIL | ||
10.1.2012, 5:23 |
SuspendHub Блокирование хаба от входящих (защита от внешних атак) |
Скрипт блокирования хаба от входящих юзеров (вариант защиты от внешних атак) Название: SuspendHub.lua Версия: 1.0 Платформа: PtokaX API: API 2 Автор: Ksan (aka Trans) Город: Томск, Россия Дата: 10-01-2012 Описание: 1. Если вы заметили, что ваш хаб атакуют, то через меню можете заблокировать хаб для всех входящих. По умолчанию - на 5 минут (это регулируется в настройках хаба), также в меню есть блокирование на желаемое время (тоже в минутах). Разблокирование через меню либо по прошествию заданного времени. При блокировании хаб извне будет казаться отключенным, с соответствующими сообщениями, а сидящие в хабе ничего не почувствуют, всё будет работать в обычном режиме. 2. Есть в скрипте и код блокирования без срока, но это опасно в случае вылета из хаба последнего оператора/админа - будет некому разблокировать хаб вплоть до его перезагрузки (а для удалённых хабов в некоторых случаях и это может оказаться проблемой). Для включения команды блокирования без срока нужно раскомментировать код в 2-х местах - в отправке меню и в исполняемом коде 3. Сообщения о блокировании/разблокировании приходят автору команды и в Опчат. Текстовку можете менять по своему вкусу. |
Nickolya, ustas, Tsd, Артём, stoparik, Cyber_voodoo, shur49, bENNY!, nafig, Ust, PAUK | ||
8.1.2012, 0:04 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
MIKHAIL, Ну и заодно - И да, чуть не забыл - |
MIKHAIL | ||
5.1.2012, 18:57 |
RegmeEmail API2 | Регистрация через e-mail |
Ameet, находишь в скрипте вот такой код: Код function GetPass() и вместо него копируешь отсюда этот: math.randomseed(os.time()) return tostring(math.random(100, 99999999)) end Код local sPass = "" tAbc = { "0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K", "L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f", "g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z", } function GetPass() math.randomseed(os.time()) sPass = tAbc[math.random(#tAbc)] -- 1-я буква пароля local iPass = math.random(4, 7) -- длина пароля = [(от 4 до 7) + 1] for i = 1, iPass do sPass = sPass..tAbc[math.random(#tAbc)] end return sPass end Тут в этой строке регулируется и создаётся произвольная длина пароля: Код local iPass = math.random(4, 7) Вместо 4 и 7 можешь писать другие разумные размеры длины пароля. Только нужно учитывать, что 1 символ уже создался в предыдущей строке.PS: Можно было обойтись без предварительной таблицы символов tAbc, но тогда код стал бы громоздче. UPD: Так, наверно, эту переменную - local sPass - надо объявить заранее, до использования в function GetPass(), иначе не уверен, что вытащится по return.. Поэтому в код внёс поправку небольшую. |
Ameet | ||
3.1.2012, 4:48 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
1. MIKHAIL, изящность достигается не этим, не твоими "блошиными" исследованиями, ей-богу! Я уже писал тебе выше. Твои скрипты пашут с производительностью в 1 млн вычислений в секунду? Тогда да, твои экзерсисы оправданы. А если ты пишешь то же, что и мы, то забей, займись чем-то более полезным. Просто пиши, как умеешь...остальное придёт с практикой 2. И да, ты выше спрашивал про function, отвечаю - нет разницы. Это вопрос предпочтений. Лично я пишу всегда так: Код function GetData(sData) Цитата [01:40:49] * 10 [01:40:49] * 11 Enyby, а ты проверял только 1 раз? Проверь несколько раз, удивишься. Вот у меня с 4 раз: Тык сюда: Цитата [08:41:58] 6 [08:41:58] 6 [08:42:22] 6 [08:42:22] 6 [08:42:40] 5 [08:42:40] 6 [08:43:08] 6 [08:43:08] 6 Разница чисел у тебя и у меня, думаю, только из-за разных процессоров. И вообще, иногда надо думать и о красоте, особенно когда нет практически разницы между способами в скорости. Разница в микросекунды и наносекунды не считаются. |
Enyby, MIKHAIL | ||
1.1.2012, 9:01 |
Kinozal_tv API2 | Скрипт новостей с трекера |
MIKHAIL, эти файлы у тебя могут лежать и в другом месте. Проверь, нет ли у тебя в папке с Птокой где-нибудь ещё одной папки libs.. |
MIKHAIL | ||
29.12.2011, 1:42 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
Код Stroka:sub(3,4) - тут от строки Stroka выделяется кусок от 3-го по 4-е число символов.Для изучаемого числа 0.141592654 это будет пропуск первых двух символов "0." и захват цифр "14" из "141592654" Можно брать и отрицательные значения для этих аргументов: Код Stroka:sub(3,-4) - тут у нас захватятся с 3-го по 4-е с конца, то есть, получим число "141592"Знак минус при аргументе означает - с конца строки. |
MIKHAIL | ||
29.12.2011, 1:25 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
MIKHAIL, заранее не парься. Пиши скрипт спокойно. Вот когда появятся проблемы, тогда и будем решать. И да, ты смотри моё предыдущее сообщение, я там подправил кое-что. |
MIKHAIL | ||
28.12.2011, 23:43 |
Вопросы Разработчикам Скриптов вопросы по скриптам (мелкие вопросы) |
MIKHAIL, а ещё есть это: Код local Pi = 3.141592654 -- твоё обрабатываемое число local sUnit = "" -- единица измерения, в данном случае пусто (а может быть и метр, и процент и что угодно) Core.SendToAll(string.format("%0.2f %s", Pi, sUnit)) -- где 2f - нужное число знаков после запятой, то есть, 2 в данном случае PS: в числе Пи надо было точку вместо запятой. А ещё можно так: Код local Pi = 3.141592654 local M, N = math.modf(Pi) -- получение целой части числа и дробной части Core.SendToAll(M.."."..tostring(N):sub(3,4)) -- получаем 3.14 Это для представления. А для выполнения матем. операций в дальнейшем нужно применить команду Код tonumber(вышеполученное строчное выражение) Например, продолжая предыдущий код (который с выводом числа в чат) - заменяем вывод в чат на эту строку: Код Core.SendToAll(tostring(tonumber(M.."."..tostring(N):sub(3,4))*10)) -- получаем 31.4 Тут происходит вот что - сначала соединяем и получаем в строковом виде 2 части (вторая часть только с двумя значащими цифрами после запятой) числа вновь, превращаем это полученное в числовой вид и умножаем на 10 и выводим результат в чат, превратив снова в строковый вид (чтоб убедиться в правильности метода). |
MIKHAIL | ||
27.12.2011, 17:01 |
Public PHP hublist (Хаблист) by Enyby Публичный открытый хаблист на PHP |
Цитата(Mellon) раз вы не тролль то я сделаю предположение что вам до 20. На баш! PS: [To All] И вообще, ребятки, зачем вы мучаете животное? Забейте (забаньте?) его и хватит его бред читать. |
Артём | ||
27.12.2011, 16:51 |
Tiny Hublist Программа для создания хаблистов |
Mellon, хосспади, какое-то невнятное бормотание и бред сумасшедшего ты пишешь. Может, просто промолчишь и за умного сойдёшь? Никогда не поверю, что человек, пишущий ТАК, способен написать хоть 10 строк кода без ошибок, неважно на каком языке...если русским-то не владеет и логика дико страдает. |
Артём, PomanoB | ||
27.12.2011, 3:37 |
WhoisNew Через меню хаба добывает WHOIS-информацию об IP |
UPD-5: - Перезалил, чуть-чуть изменив одну строчку (причина - маленькое изменение на странице результатов сайта, приведшее к неработе скрипта). Теперь скрипт работает. PS: Сорри, что так долго не исправлял...просто руки не доходили, а реально пришлось вносить всего лишь пустяковое изменение.. |
striker | ||
26.12.2011, 15:11 |
Постоянно Зависает Работающая Ptokax 0.4.1.1 An error occured in the application |
Fe(one)X, разбирайся лучше, почему хаб зависает. Просто так ничего не бывает. У всех нормально пашет, и у тебя пахал столько времени, и вдруг стал виснуть....что-то тут не так у тебя. Не факт, что следующая версия не будет зависать. Так что разберись с этим сначала. |
bENNY! | ||
23.12.2011, 22:06 |
Нужен скрипт для вкл/выкл чата |
Достаточно полазать по разделам. |
мамин_парень | ||
22.12.2011, 2:15 |
Current_Weather_All_Cities Выводит текущую погоду автом. в чат и по запросу, любые города |
UPD: - добавил показ текущей даты/времени местности (правда, на сервере погоды время отстаёт минут аж на 5 , но всё же...) - исключил вывод данных при получении ошибки с сайта (чтоб все города не получали одну и ту же погоду) - небольшие косметические малозаметные изменения, улучшающие работу скрипта. Скрипт перезалил в сообщении #1. UPD: - убрал показ даты/времени для вывода в чат местной погоды (зачем местным показывать их время, тем более, не очень точное) Скрипт перезалил в сообщении #1. |
ustas | ||
19.12.2011, 11:57 |
Current_Weather_All_Cities Выводит текущую погоду автом. в чат и по запросу, любые города |
UPD: Выявился неучтённый момент - в архивных данных могут оказаться 2 года через запятую с одинаковой температурой Max. или Min., и при попадании такого случая скрипт падает. Что сегодня и случилось с Владивостоком. Хорошо, хоть сам город не пострадал. Код подправил, скрипт перезалил в сообщении #1. UPD-2: Сделал косметическую подправку - восход/заход солнца разделил на 2 строки, а то слишком длинная получалась: Код Солнце: восход: 09:52 заход: 16:42 Скрипт перезалил в сообщении #1. |
striker | ||
15.12.2011, 6:24 |
Current_Weather_All_Cities Выводит текущую погоду автом. в чат и по запросу, любые города |
Наконец-то собрался и переделал скрипт. Причина - полное изменение структуры страницы на сайте. Пришлось всё перелопатить. Плюс добавил показ восхода/захода солнца. Дата заливки: 15-12-2011 06:25 (мск.) Качайте из первого сообщения темы. |
rival, Dan Claimant | ||
9.12.2011, 1:46 |
Как настроить поиск на винде 7 начальной |
Ты когда научишься описывать свою проблему в сообщении, а не в заголовке темы? Заголовок - только чтоб обозначить, о чём пойдёт тема, а суть проблемы описывают в первом сообщении! Дурдом какой-то. И ещё - тут КАПСОПИСЦАМ не помогают. И напоследок - винда тут ни при чем, да хоть на MacOS сиди.. |
мамин_парень | ||
8.12.2011, 2:51 |
Несколько Слов О Захватах И Регулярных Выражениях исключительно для разработчиков |
Попробуй внедрить в свой скрипт эту процедуру (названия переменных можешь изменить как тебе понравится): Код t = {} for k, v in sMsg:gmatch("<pubDate>.-</pubDate>") do local s = v:match("<pubDate>(.-)</pubDate>") t[k] = s end При выполнении все строки, содержащее нужную тебе информацию (в данном случае время/дату) сохранятся в таблицу t Потом сможешь вытаскивать их когда и как тебе угодно, например, так: Код local sTime = t[1] дальше это вставляешь в своё выводимое сообщение в нужное место. |
MIKHAIL | ||
3.12.2011, 13:12 |
От: Mellon DC Hub List От темы с ID: 5060 |
Как вариант - А.П.Чехов. "Письмо учёному соседу": Цитата ..Вы сочинили и напечатали в своем умном соченении, как сказал мне о. Герасим, что будто бы на самом величайшем светиле, на солнце, есть черные пятнушки. Этого не может быть, потому что этого не может быть никогда. Как Вы могли видеть на солнце пятны, если на солнце нельзя глядеть простыми человеческими глазами, и для чего на нем пятны, если и без них можно обойтиться?.. |
-=ДЕМОН=- | ||
3.12.2011, 12:30 |
От: Mellon DC Hub List От темы с ID: 5060 |
Mellon, как тебе удаётся написать такие предложения - в 100 слов? И ещё: Цитата ты об этом мало что знаешь (так как тебя тогда не было) Интересно было бы услышать комментарии оппонента на эту тему. |
-=ДЕМОН=- | ||
2.12.2011, 16:42 |
помогите сделать скрипт |
max666: Цитата Да мне трудно потому что я в это не вникал и не собираюсь !!!! В этом вся суть твоя. Потому и не хотят тебе помогать. И вообще, если ты такой пустяк не можешь и даже не хочешь сделать, то нафиг ты хаб завёл, спрашивается?! |
Артём | ||
8.11.2011, 16:31 |
Сдвиг таймеров для частного случая Периодическая инициализация действий со сдвигом по времени |
Товарищ один (Akvilon) попросил помощи, и вот кидаю частное решение (хотя расширить никто не мешает). Цель - периодическая инициализация действий со сдвигом по времени (например, 2 сообщения в чат, разнесенных по времени на полчаса, то есть, общий период - 1 час) Код local iTime = 1 -- в данном случае - это 1 час function OnStartup() tmr1 = TmrMan.AddTimer(iTime*3600000) end function OnTimer(tmr) if tmr == tmr1 then Core.SendToAll("Бла-бла-бла!") tmr2 = TmrMan.AddTimer(iTime*30000) elseif tmr == tmr2 then Core.SendToAll("Шурум-бурум-тяп-ляп!") TmrMan.RemoveTimer(tmr2) end end Возможно, решение уже где-то есть, а возможно, ещё кому-то пригодится. |
rival | ||
8.11.2011, 10:50 |
Запрет поиска определенныхслов\выражений |
WINS, думаю, если тебе надо не пропускать поисковый запрос, то, наверно, нужно вместо бана юзера достаточно просто проигнорить его запрос через Код return true в функции обработки поискового запроса. |
WINS, мамин_парень | ||
7.11.2011, 21:49 |
Запрет поиска определенныхслов\выражений |
WINS: Цитата нужен дроп поиска определенных слов, а там бан Не вижу проблему. Переделать бан в дроп быстрее, чем писать ответ сюда. Код Код Core.Disconnect(tUser) вместо кода бана. |
WINS, мамин_парень | ||
6.11.2011, 21:10 |
Запрет поиска определенныхслов\выражений |
WINS, ищи по слову Antisearch тут на форуме через поисковую форму.. |
WINS | ||
30.10.2011, 22:57 |
время входа на хаб задержка при соединении |
MaxFox, вот маленький скриптик, точнее, 2. Первый отправишь для проверки наличия галочек, которые ты не можешь найти (про отправку юзерам майинфо). Если тебе в чате напишет при этом хотя бы один раз true, то запусти второй скриптик, он снимет все 4 галочки. Код local sAdmin = "MaxFox" for i = 13, 16 do Core.SendToNick(sAdmin, tostring(SetMan.GetBool(i))) end Код local sAdmin = "MaxFox" for i = 13, 16 do Core.SendToNick(sAdmin, tostring(SetMan.GetBool(i, false))) end После второго скрипта запусти ещё раз первый скрипт для проверки (если пришлось использовать второй) UPD-1: Исправил одну букву в первом скрипте. Попробуй по-новой. UPD-2: Проверил - работает. UPD-3: Сейчас заходил к тебе - вход 6 секунд при 14 600 юзерах был. |
мамин_парень | ||
30.10.2011, 21:45 |
время входа на хаб задержка при соединении |
MaxFox, ты ведь всё-таки не снял галочки (ну если линукс, то не поставил нули в файлике настроек) в настройках "Моя информация"! Я тебе зря, что ли, писал про это?! Иначе я ни у кого не видел бы всякие тэги, описания и иной мусор у 21 тысячи юзеров... Убери их, и будет у тебя рай. UPD: Во, Алексей уже показал.. |
мамин_парень, valera_ | ||
11.10.2011, 16:44 |
DDD++ – лёгкий и быстрый DC++ клиент Преднастроенный клиент с готовыми списками хабов |
Только я не понял, зачем здесь рекламировать клиента, который собран конкретно под ЛивКомм? Там у вас (ну или у них), что, негде рекламить? Они тут сидят? Или тут их филиал? По-моему, это уже перебор, извини.. |
mariner, Артём, PomanoB, KT315, Saymon21 | ||
7.10.2011, 17:58 |
Администрация Скрипт Статус Модератора или Master по Ип |
reidel_viktor, вот сварганил только что, получай тут. Даже если и есть такой скрипт, мой не будет лишним, думаю.. |
reidel_viktor, ImDim | ||
7.10.2011, 17:56 |
Reg_over_IP Скрипт привязки профиля к постоянному IP |
Скрипт привязки профиля к постоянному IP (другими словами - автоматическая (без ввода пароля) авторизация руководящего состава по постоянному IP) Название: Reg_over_IP.lua Платформа: PtokaX API: API 2 Автор: Ksan Город: Томск, Россия Дата: 07-10-2011 Если у админа, оператора или випа постоянное IP, то они смогут заходить на хаб под постоянным или любым ником, не авторизуясь вообще, и профиль у них всё равно останется тем же самым (админ, оператор или вип) В скрипте в таблицу прописываются IP и профиль, привязанные друг к другу. То есть, ему не придётся заботиться и о пароле. Сообщение о приходе такого юзера приходит в опчат (и/или главному админу - в скрипте есть закомментенная строка для этого) UPD: -= Внимание! =- UPD-2: UPD-3: Скрипт переделан, залит и доступен снова. Прошу прощения за доставленные неудобства! Примечания: 1. Теперь для работы скрипт обязательно наличие двух вспомогательных файлов в отдельной папке. Туда вынесены 2 таблицы: в одной должны быть IP+профили, в другой таблице будут находиться не желающие добровольно исчезать из списка юзеров ники вышедших из хаба юзеров из первого списка (ради которых и сделан скрипт). Они будут принудительно скрыты из списка. Это костыль, но других, более изящных, путей я не нашёл) 2. О пароле можно не заботиться, скрипт при входе нашего юзера зарегистрирует его временно с паролем, равным его IP. Например, "127.0.0.1" При выходе юзера из хаба эта регистрация снова удалится из базы Птоки, ник будет свободен для захода и регистрации любым юзером. 3. В теле скрипта встроенная небольшая таблица - tFixNicks - туда нужно внести резервные ники для администратора хаба (чтоб по ходу экспериментов со скриптом или просто если использует скрипт для своего входа), чтоб случайно не остаться без заргенного админского ника (из этой таблицы ники скрипт не разрегистрирует ни при выходе юзера из хаба, ни при отключении самого скрипта) Помните, скрипт только для тех, у кого постоянный IP (опы, випы и операторы). Мастеру тоже можно, но только на свой страх и риск. Дата последней заливки: 20-11-2011 17:45 (мск.) |
ustas, PomanoB, darkangel17, CrazyKiller, DEN 007 | ||
|
Сейчас: 23.11.2024, 0:21 |