myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
История благодарностей участнику Ksan. Спасибо сказали: 657
Дата поста: В теме: За сообщение: Спасибо сказали:
12.10.2010, 22:05 Pm To Offline
API1 | Личка в оффлаин
averon.nv, есть более удобный скрипт. Попробуй его.
Ни разу никаких проблем не было.
AfLc
11.10.2010, 2:58 SMS_Cost
для определения стоимости SMS на короткие номера
UPD-2: Перезалил скрипт в первом сообщении, подкорректировав ещё пару символов в строке 107 (из-за них некоторые запросы могли уронить скрипт с ошибкой на 108 строке).
DEN 007
10.10.2010, 4:13 Скрипт, Заставить регистрироваться
Заставить юзера регистрироваться
1. Сем90, прекрасный способ разогнать своих юзеров! Браво!
2. Есть более разумные и гуманные способы, например:
- нерегенный не может писать в чате и-или в привате,
- не может искать,
- не может качать,
- ему в меню доступно мало что...
3. Можешь эти пункты сочетать в разных пропорциях и тихо-ненавязчиво, без шума, треска и киков потихоньку заставить региться, если уж тебе это очень надо.
Грубая сила - не наш путь, если ты не задался целью оставить в хабе только админов.
DEN 007
7.10.2010, 17:01 DiapasonGag
тихая заглушка по диапазону (удобно против динамич. IP)
У меня данный скрипт стоит вторым, после GagMeSoftly..
И да, этот скрипт лучше держать повыше.
Dimon21, infection
7.10.2010, 4:00 DiapasonGag
тихая заглушка по диапазону (удобно против динамич. IP)
Ага, точно, спасибо, что подсказал, пока другие не скачали. big_smile.gif
Я там сокращал длинный список диапазонов, взяв только начало, и закрыл автоматом таблицу через end, а не фигурной скобкой, так как перед этим тем же занимался и с другими функциями, обрезая и дописывая end

Перезалил в первом сообщении, исправив опечатку.
Dimon21
7.10.2010, 1:57 Заглушка Чата и ЛС (Диапозон)
infection, ладно, уговорил, только что выложил отдельной темой скриптик под твои запросы.
infection
7.10.2010, 1:53 DiapasonGag
тихая заглушка по диапазону (удобно против динамич. IP)
Название скрипта: DiapasonGag.lua
Версия: 1.2
Платформа: PtokaX 0.4.1.*+
API: API 2
Автор: Ksan (aka Trans)
Город: Томск
Дата написания: 04-04-2010 (начальная версия - в декабре 2009г)

Описание:
- В скрипте встроенная таблица с диапазонами для заглушки - начало диапазона и конец диапазона.
- При старте скрипта проверяется наличие на хабе юзеров с заглушенных диапазонов, при обнаружении такие ники заносятся в таблицу.
- при входе юзера с таких диапазонов сообщает админу о его приходе (через меню можно отменить этот показ), добавляет ник таблицу,
- далее при попытке написать в чат и приват сначала проверяется наличие в таблице заглуш. ников, если да, то сообщение до остальных юзеров не дойдёт. Админу приходит извещение о попытке написать в чат или приват заглушенным юзером (через меню можно отменить этот показ)
- Извещение о заглушке в чате по выбору через меню можно отправить в чат или в приват админа. Извещение о заглушке в привате админу приходит всегда в приват.
- Имеется таблица команд, которые юзеру разрешено использовать даже при заглушке.
- Имеется таблица ников-исключений.
- Опов не глушит.
В принципе, можно было бы сохранять таблицу заглуш. ников в файл, но особой нужды в этом нет, ибо таблица при старте скрипта заполняется сразу же.
PS: Скрипт был написан давно, и здесь только малая часть возможностей, специально выдрал в пользу голодающих "одминов" (а остальное пусть лучше послужит тихо, контрразведка не любит шума). Думаю, аналогичные скрипты есть на форуме, но пусть и этот посидит скромненько рядом с гигантами мысли...может, пригодится кому.

UPD1: (2010-10-19) Скрипт исправлен, проверен и перезалит.
Приношу свои извинения за невероятно халтурную работу при первом выкладывании. :(
Скрипт тогда собирал в конце бессонной ночи над другим скриптом, и умудрился такие ляпы пропустить..
UPD2: (2013-09-04) Скрипт исправлен, перезалит. Была ошибка - один из флагов был подменён другим и показ захода юзера из заглушенного диапазона не отключался.
UPD3: (2017-03-13) К моему дикому смущению, снова обнаружилась ошибка, исправил и перезалил.
И да, заодно ещё кое-какие небольшие изменения добавил (надеюсь, без ошибок).
Благодарю CyberGhost404 за обнаружение ошибки!
Nickolya, Tsd, Invisible, rival, Saymon21, Dimon21, dimetro, SKIFI, shur49, infection, AfLc
2.10.2010, 11:45 RSS.Feed.Bot.V2.3.Final.LUA5-PtokaX_API2
RSS-ленты под API2 (можно много лент и HTML-просмотр)
DEN 007, ну как знаешь, лично я не нахожу в этом ничего особенного, у меня проц загружается максимум до 60% на несколько секунд...Это естественно при одновременном открывании (или парсинге) нескольких страничек в интернете, а если ты запихал еще больше...Сомневаюсь, что твой проц жаловался тебе. big_smile.gif
Хотя можно попытаться кэшировать от имени админа каждую ленту по отдельности. Для этого есть ключ "force", то есть, можно запускать чтение ленты от имени админа с этим ключом.
Пример: !obzor force
При этом лента прокэшируется принудительно, даже если была только что перед этим кэширована, но содержание ленты тоже свалится в твой приват. big_smile.gif А проц всё равно будет так же загружен, но на более короткий срок. Это вся разница.
valdis73
2.10.2010, 11:11 SMS_Cost
для определения стоимости SMS на короткие номера
В скрипте в предыдущей строке (в данном случае - строка 111):
Код
_,_, msg1, digit1, msg2 = string.find(msg, "(По сообщениям пользователей) <strong>&asymp;(%d+)</strong>( руб.)")

нужно заменить вот это (%d+) на это (%d+%.*%d*), получится:
Код
_,_, msg1, digit1, msg2 = string.find(msg, "(По сообщениям пользователей) <strong>&asymp;(%d+%.*%d*)</strong>( руб.)")


Просто мне при тестировании не попадались приблизительные суммы от пользователей с десятичной дробью. Кстати, в строке 111 в скрипте в конце уже мной был помещен предусмотрительно запасной код для замены (за комментами).

Перезалил подкорректированный скрипт в первом сообщении.
Saymon21, striker, DEN 007
1.10.2010, 3:23 SMS_Cost
для определения стоимости SMS на короткие номера
Название: SMS_Cost.lua
Платформа: PtokaX 0.4.1.x
Версия: 1.0
API: API 2
( скрипт создан по мотивам скрипта kaspersky_API2.lua от RAND(i)M )
Автор SMS-версии скрипта: Ksan (aka Trans)
Дата написания: 01-10-2010
Город: Томск
Библиотека: для работы скрипта требуется библиотека LuaSocket

Описание: Скрипт для проверки стоимости SMS на короткие номера. Сами знаете, что иногда объявленная сумма в реале оборачивается невероятным размером, так что проверить никогда не лишне.
Примечание: Не факт, что вы запрашиваемую информацию получите обязательно, так как либо не на все номера есть данные, либо данные засорили пользовательскими данными (на сайте видно на некоторых номерах, как пользователи изгалялись...например, можете проверить номера 1111 или 1010)
Сайт для работы скрипта.

UPD: Перезалил, подкорректировав под новый текст от сайта.
UPD-2: Перезалил, подкорректировав пару символов в строке 107 (из-за них некоторые запросы могли уронить скрипт с ошибкой на 108 строке).
..
Nickolya, Invisible, PomanoB, Saymon21, ™Wizard™, striker, RAND(i)M, DEN 007
29.9.2010, 18:27 Скрипт для отключения чата
Вот только что загрузил тему с нужным тебе скриптом СЮДА.
infection
29.9.2010, 18:26 TotalGag
для аварийной заглушки всего хаба (кроме определенных лиц)
Название: TotalGag
Версия: 1.0
Платформа: PtokaX 0.4.1.x
API: API 2
Автор: Ksan (aka Trans)
Дата написания: 16-03-2010
Назначение: Для экстренной заглушки всего хаба (и чата и привата), когда нет иного способа быстро пресечь спам или иное нарушение. Админов, опов и отдельные ники из таблицы не заглушит (это регулируется ниже таблицами). Заглушать могут профили из таблицы скрипта.
Дополнительно: При заглушке все сообщения, не пропущенные в чат (но НЕ приват), всё равно будут видны админам. Заглушка-разглушка - одной и той же кнопкой.

UPD: -- исправлена ошибка, из-за которого при тотальной заглушке юзер мог видеть свое сообщение вместо привата в чате. big_smile.gif
Nickolya, Invisible, valdis73, Dimon21, Djessa, infection, MIKHAIL, zeusby
28.9.2010, 16:14 Требуются подсказки знатоков
Да хосспади, откуда вы беретесь такие?
Прёте и прёте из какой-то дыры с желанием переделать Птоку, Грейлинк, Флайлинк, ещё какую там хрень, а сами нифига не умеете, вам бы всё клянчить и клянчить переделать, а потом начинаете этими переделками спамить нам же!
Что вас там не устраивает, мать вашу хреновы "одминчеги"? Первое же сообщение на форуме и уже про переделку клиента!

PS: Ибо достали!
Может, подобные темы сразу в корзину отправлять начинать пора уже?
переподвыподверт
27.9.2010, 21:25 PtokaX
DcHub
1. Почему тему открыл в разделе "Другие хабы"? Ведь это про Птоку у тебя речь, и есть раздел для Птоки. Лучше перенести.
2. Называй тему более содержательно, а то выглядит глупо...например - "Птока и FreeBSD", так понятнее было бы.
3. Мне кажется, на фряху нет особо успешных установок.
Lamo
25.9.2010, 17:25 RSS.Feed.Bot.V2.3.Final.LUA5-PtokaX_API2
RSS-ленты под API2 (можно много лент и HTML-просмотр)
1. Сорри, при переводе на АПИ2 пропустил...в строке 670 (в скрипте из первого сообщения):
Код
toFeedSpy("Юзер: "..user.sName.." запросил новую RSS-ленту.\r\n\t\t Лента: "..feed.."\r\n\t\t Описание: "..desc);

надо user.sName заменить на user.sNick. Должно получиться так:
Код
toFeedSpy("Юзер: "..user.sNick.." запросил новую RSS-ленту.\r\n\t\t Лента: "..feed.."\r\n\t\t Описание: "..desc);

Я проверил - работает.

Файл в первом сообщении перезалит.

2. Насчёт занесения в базу - скрипт очень тяжёлый, написан старомодно и очень трудно проследить, что куда и для чего. Я лично не возьмусь, пожалуй, по крайней мере, пока нет желания big_smile.gif. К сожалению, да, при перезапуске скрипта кэш обнуляется и снова нужно перекэшировать, хотя при запросе отдельного юзера отдельной ленты кэширование конкретной ленты всё равно произведётся.

3. Я сегодня всю ночь парился с автоматизированием кэширования при запуске и через определенное время по таймеру.
Всё вроде сделал, но потом обнаружил, что если меня нет (как админа, которому нужно послать информацию о процессе кэширования) на хабе при запуске скрипта (так может случиться, когда перезапускаешь хаб или компьютер, и ты ещё не успел попасть на хаб), то скрипт валится за отсутствием табличного юзера...Пока отложил на потом, когда придумаю, как кэшировать без отсыла информациии.

PS: Если кто-то сможет эти 2 последних пункта решить положительно, я буду только рад.
valdis73
24.9.2010, 2:16 RSS.Feed.Bot.V2.3.Final.LUA5-PtokaX_API2
RSS-ленты под API2 (можно много лент и HTML-просмотр)
Название: RSS.Feed.Bot.V2.3.Final.LUA5-PtokaX_API2
Платформа: PtokaX 0.4.1.x
API: API 2
Версия: 2.3
Автор: S.t.0.n.e d.b
Переводчик с API 1 на API 2 (и подкорректировал html-дизайн): Ksan (г.Томск)
Прикрутил другую библиотеку (и решил проблему с UTF-8): Nickolya (г.Тула)
Дата переделки: 24-09-2010
Библиотека: для работы скрипта требуется библиотека LuaSocket

Описание:
- можно одновременно прикрутить ленты из разных сайтов,
- админ может кэшировать сразу все ленты для ускорения доступа к ним,
- можно генерировать ленты в виде html-страничек и просматривать их через сервер хаба по ссылке,
- кому не нравится дизайн, может сам переделать, используя настройки скрипта big_smile.gif
- к скрипту прилагаю папки и образцы лент со своего хаба (одна из лент чисто томская, так что с интернета не получится взглянуть на сам сайт) для наглядного примера, как создавать ленты.

Примечание: для *nix-платформ потребуется другая библиотека, а где и как её добыть - обсудите в теме.

PS: Надеюсь, что с этим скриптом тема RSS-лент хоть на какое-то время станет неактуальной.
UPD: Перезалил скрипт, исправив небольшую ошибочку.
Nickolya, intlive, Invisible, PomanoB, valdis73, Saymon21, DEN 007, Unique
22.9.2010, 1:12 User Info 1.0 (русская Версия)
API2 | Скрипт для просмотра информации о юзерах
1. Про какой из скриптов речь? в теме 2 скрипта.
2. Если ты пропишешь путь точно как показал Nickolya, без импровизаций, база создастся и при первом же заходе юзера дополнится информацией (в обоих скриптах).
3. Если речь про последний скрипт в теме (UserInfo_1.2.lua), то если ты путь и название файла напишешь вот так (без промежуточной папки "tbl"):
Код
fFile = debug.getinfo(1).source:match("^@(.+\\).-$"):gsub("\\","/").."userinfo.tbl",    -- Имя файла с базой
то тоже всё будет окей. Но если доп. папку tbl, указанный в скрипте, создашь заранее вручную, то, возможно, скрипт тоже отработает нормально.
4. Если скрипт из первого сообщения, то без изменений отработает нормально при винде, а если ты на линуксе, то в пути файла надо слэш один и прямой, то есть, "/", а не "\\". Но тоже лучше путь указать как в пункте 2 (точнее, как показал Nickolya).
5. Почему у тебя не показывает меню - фиг знает, попробуй продвигай вверх, может, скрипт или бот какой мешает.
Marc
20.9.2010, 23:58 MyDc
API2 | Скрипт новостей с данного форума
Думаю, в функции
Код
function RepChars(sMsg, bNum)
нужно добавить такой участок:
Код
    sMsg = string.gsub (sMsg, "&#*34;", "\"")
    sMsg = string.gsub (sMsg, "&#*60;", "<")
    sMsg = string.gsub (sMsg, "&#*62;", ">")
    sMsg = string.gsub (sMsg, "&#*41;", ")")
    sMsg = string.gsub (sMsg, "&#*91;", "[")
    sMsg = string.gsub (sMsg, "&#*93;", "]")
Только после решёток # нужно убрать будет звёздочки *
Возможно, подобные добавки придётся позже ещё делать по мере необходимости.
Цитата
И напрягает то, что он иногда одни и те же новости по нескольку раз отсылает.
Так делает только когда скрипт перезапускаешь. Он не сохраняет полученные данные, чтоб сравнивать, изменилось что или нет за 10 последних минут, и при каждом перезапуске память обнуляется и он сканирует форум с нуля.

PS: Добавил вышепредложенные строчки, перезапустил, - отработал правильно, показывает как надо.
Nickolya, Tsd, ImDim
27.8.2010, 12:53 Проблема с хабом на PtokaX 0.4.1.2
Проблема с хабом на PtokaX 0.4.1.2 - Сильно лагает
1. Это надо было показать раньше, до перезагрузки, хоть можно было бы посмотреть, какой скрипт сколько памяти занимал..
2. Короче, когда и если снова станет все тормозить, вспомни мой совет.
3. Я тебе удивляюсь ещё раз....у тебя столько скриптов, и нет ни одного мало-мальски похожего на антирекламу...Или у тебя там правила настолько либеральные, что антиреклама нафиг не нужна?
sania
27.8.2010, 12:45 Антибаннер
борьба с программами-вымогателями посредством DC++
Посмотри в скрипте, куда он обращается, их и скорми Касперскому.
Других вариантов и не может быть, я думаю..
sania
27.8.2010, 0:13 Hub Menu
API2 | Меню для встроенных команд PtokaX
Продолжай в теме другого скрипта.
xXx-Portal
26.8.2010, 22:29 Проблема с хабом на PtokaX 0.4.1.2
Проблема с хабом на PtokaX 0.4.1.2 - Сильно лагает
1. Попробуй отключить вот эти скрипты разом:

Статистика чата
Ekzekutor последний
rus_ShoutStats 2.0 LUA 5.1x [Strict][API 2]
BombSetuper
Рекорды

и проверь работу хаба.
2. Если лагов не стало, начинай по одному скрипту подключать из этого списка и проверять на лаги...не спеши, в одну секунду не узнаешь...
Если обнаружишь, что какой-то скрипт стал тормозить хаб, отключи его, и продолжай проверять следующие (вдруг там не один лагающий скрипт).
3. Когда и если обнаружишь лагающие скрипты, тогда и продолжишь разговор.
4. И, кстати, неплохо бы и названия скриптов игр сюда написать.
То, что "так и было задумано", не оправдывает избыточность скриптов.

PS: Хотя у меня самого скриптов намного больше (их 43, но из игр только Викторина), у меня хабы не тормозят, хотя один из них работает 221 день, другой - 83 дня, третий, правда, часто перезапускается, он у меня экспериментальная площадка для первых двух. big_smile.gif Скрипты везде одинаковые.
sania
26.8.2010, 18:32 Анти реклама!
voronf4
26.8.2010, 18:03 Немогу зайти на хаб
Сколько раз уже писали по этому поводу....в клиенте напиши адрес своего хаба 127.0.0.1 или просто dchub://localhost
Это если твой хаб на твоем компе.
saber
25.8.2010, 0:56 RegisteredUsers.xml
Скачай скрипт отсюда, будет сохранять настройки каждые 5 минут.
Не помню, что, но есть какая-то мелкая закавыка именно с версией 0.4.1.2 (какую-то настройку не сохраняет вроде), но работать будет.

PS: Оп-с, запоздал, да и скрипт из предыдущего сообщения как раз исправленный.
Ольга
15.8.2010, 20:52 Нужен скрипт блокировки скачивания
Запрети им дышать, они тогда не смогут и файллисты качать..
Намёк понятен?
мамин_парень
10.8.2010, 22:30 Ищю скрипт
Скрипт
Вот накропал скрипт, заменяет описание юзера в списке на название его профиля, как просил автор темы.
Раскрывающийся текст
Код
--- Скрипт замены описания юзера на данном хабе на профиль юзера (мастер, оператор, вип, рег и незарегистрированный юзер)
--- Название скрипта - ProfileToDescr.lua
--- Написан чисто переделкой скрипта NoDescAdv от Alex82
--- Автор переделки - Ksan (г.Томск)
--- Дата: 10-08-2010
----------------------

iSendTimer = 1000    -- Время отправки MyINFO, ms

tTimers = {}
tUsers = {}

function OnStartup()
    for i,v in pairs(Core.GetOnlineUsers(true)) do
        MyINFOArrival(v,v.sMyInfoString)
    end
end

function GetNickListArrival(user,data)
    tTimers[TmrMan.AddTimer(iSendTimer, "SendAllInfo")] = user.sNick
end

function MyINFOArrival(user,data)
    tUsers[user.sNick] = true
    tTimers[TmrMan.AddTimer(iSendTimer, "SendInfo")] = user.sNick
    collectgarbage("collect")
end

function SendAllInfo(tmr)
    local user = Core.GetUser(tTimers[tmr],true)
    if user then
        for i,v in pairs(Core.GetOnlineUsers(true)) do
            if tUsers[v.sNick] then
                local tUsr = Core.GetUser(tTimers[tmr],true)
                if tUsr then
                    sProfile = (ProfMan.GetProfile(v.iProfile) and ProfMan.GetProfile(v.iProfile).sProfileName) or "Незарегистрированный юзер"
                    Core.SendToUser(user,"$MyINFO $ALL "..v.sNick.." "..sProfile..(v.sMyInfoString:match("%$MyINFO%s$ALL%s%S+%s.-(%b<>%$.+)$") or v.sMyInfoString:match("%$MyINFO%s$ALL%s%S+%s.-(%$.+)$")))
                end
            end
        end
    end
    tTimers[tmr] = nil
    TmrMan.RemoveTimer(tmr)
    collectgarbage("collect")
end

function SendInfo(tmr)
    local user = Core.GetUser(tTimers[tmr],true)
    if user then
        sProfile = (ProfMan.GetProfile(user.iProfile) and ProfMan.GetProfile(user.iProfile).sProfileName) or "Незарегистрированный юзер"
        Core.SendToAll("$MyINFO $ALL "..user.sNick.." "..sProfile..(user.sMyInfoString:match("%$MyINFO%s$ALL%s%S+%s.-(%b<>%$.+)$") or user.sMyInfoString:match("%$MyINFO%s$ALL%s%S+%s.-(%$.+)$")))
    end
    tTimers[tmr] = nil
    TmrMan.RemoveTimer(tmr)
end

PS: Я сначала подумал было, что Артём прислал аналогичный скрипт, потом скачал и понял, что не так. Но лучше бы при отправлении ссылки добавить, для чего скрипт (это Артёму)

PPS: Пока лучше не ставить, при перезаходе показывает перезашедшему для всех один профиль - его профиль... (перезаход - имею в виду кнопку Перезайти, а если просто закрыть клиент и снова открыть, то всё нормально). Это попытаюсь исправить.

PPPS: Всё, исправил, скрипт годен к употреблению и является лекарством. big_smile.gif
Егор Владимирович
10.8.2010, 17:57 Не работает хаб
Ты нас держи в курсе, когда получится. Порадуемся вместе. big_smile.gif
Demest
7.8.2010, 20:12 Хочу провести на хабе жеребьевку ФИФА Чемп мира
или лигу чемп всеравно
Ну вот, не успел я...ну чтоб не пропала работа, всё же закину сюда big_smile.gif
Имеется уже расставленный список команд. Нужно к ним прикрепить случайно выбранные ники участников.
Список участников заполняешь ручками в скрипте, через меню запускаешь команду, в чате выдаст случайно расставленный список.
Теперь их присваиваешь к командам сверху вниз подряд:

команда-1 = участник по списку в чате-1
команда-2 = участник по списку в чате-2
..и т.д.

Делаешь это прилюдно.

Раскрывающийся текст
Код
--[[
    Скрипт случайной расстановки представленного списка.
    Название: RandomList.lua
    API: 2
    Автор: Ksan (г.Томск)
    Дата написания: 07-08-2010
--]]

-- Ниже ники нужно вписать свои, какие нужно рассортировать
tNicks = {
    "Ник-1",
    "Ник-2",
    "Ник-3",
    "Ник-4",
    "Ник-5",
    "Ник-6",
    "Ник-7",
    "Ник-8",
    "Ник-9",
    "Ник-10",
    "Ник-11",
    "Ник-12",
}

math.randomseed(os.time())

function OpConnected(tUser)
    Core.SendToUser(tUser, "$UserCommand 1 3 << АДМИНКА >>\\Расстановка ников по случайному выбору$<%[mynick]> !randomnicks|")
end
    
function ChatArrival(tUser, sData)
    local sData = sData:sub(1,-2)
    local sCmd = sData:match("%b<>%s+(.*)$")
    if sCmd and sCmd == "!randomnicks" then
        tTable = tNicks
        Core.SendToAll("\nСлучайно расставленный список участников:\n")
        for n = 1, #tTable do
            t = math.random(#tTable)
            sNick = tTable[t]
            Core.SendToAll(sNick)
            table.remove(tTable, t)
            math.randomseed(os.time())  -- для гарантированной случайности :)
        end
        Core.SendToAll("\n")
        return true
    end
end
van21
6.8.2010, 0:20 Хочу провести на хабе жеребьевку ФИФА Чемп мира
или лигу чемп всеравно
Да вообще по алфавиту распредели их и все.
Это прокатит нормально, если ники участников уже зафиксированы.
van21
1.8.2010, 23:01 Может кто-нибудь разбанит? :)
Наблюдается целенаправленное доставание админа.
Результат предсказуем. И правилен.
Развлекайтесь другими способами, не задевающими админов и юзеров.
Saymon21
31.7.2010, 20:10 Не пускает на хаб определенный ник.
В чем проблемма? Что случилось?
1. Учись правильно выбирать определения...Не на канал, а на хаб, это тебе не ИРЦ.
2. Пусть твой юзер откроет в клиенте Избранные хабы, там - свойства того самого хаба, куда не пускает его, и в свойствах пусть удалит чужой ник.
3. Затем пусть снова заходит со своего ника.
SoK.
30.7.2010, 22:45 Новая сказка про репку
Так как тема как бы про воспитание, выскажу свое, возможно, поверхностное мнение, ибо сильно никогда над этим не думал...Советская система воспитания отрицается по определению, ибо советская, старое дореволюционнное воспитание - его некому доводить до воспитанников, система оборвалась и растворилась в эмиграции либо в советской школе, а постсоветская выросла на дрожжах жизнерадостного молодого капитализма с его меркантильностью и практицизмом + перенятые с запада методики (что-то хорошее, что-то, может, и не очень)...
Но тем не менее, из-за неумных оформителей правильных книжек (текст-то тот же самый, что и был и 30 и 100 лет назад) нельзя делать глобальные выводы. Видел я и детсады, и школы...в детсадах воспитание всяко правильнее, чем в школах. А в школах нынче скорее ученики воспитывают учителей, чем наоборот...вот это грустно.
Nickolya
28.7.2010, 12:50 Скрипт статистики для админов
Статистические данные о посещаемости
Добавил строку для очистки памяти.
Перезалил в предыдущем сообщении.
Желательно скачать исправленный скрипт.
Invisible, valdis73
28.7.2010, 12:22 Скрипт статистики для админов
Статистические данные о посещаемости
Вот набросал скриптик статистики по IP и по никам.
То есть, записывает в таблицу и в файл - сколько раз заходили с того или иного айпи или ника, а также сохраняет дату-время первого захода и последнего захода (дата-время - чтоб знать, за какое время были совершены столько заходов).
Выглядят таблицы так:
Код
tNicks = {
    ["Типа-тест"] = {
        [1] = "28-07-2010 16:07",
        [2] = 2,
        [3] = "28-07-2010 16:08",
    },
    ["Ksan"] = {
        [1] = "28-07-2010 16:08",
        [2] = 2,
        [3] = "28-07-2010 16:09",
    },
}

tIPs = {
    ["192.168.1.2"] = {
        [1] = "28-07-2010 16:07",
        [2] = 4,
        [3] = "28-07-2010 16:09",
    },
}

Папка и файлы под таблицы создаются при первом запуске.
Как посмотреть - пока не стал делать вывод через меню, но можно открыть таблицу с файла обычным блокнотом и увидеть картину. big_smile.gif
Не знаю, надо ли делать вывод.
Nickolya, Invisible, valdis73, мамин_парень
26.7.2010, 16:39 Скрипт статистики для админов
Статистические данные о посещаемости
Нет, там чисто гистограмма по количеству посетителей на каждый момент (каждые полчаса), без всяких деталей. Число и время. Ну и сам график.
valdis73, мамин_парень
26.7.2010, 15:23 Скрипт статистики для админов
Статистические данные о посещаемости
Один из вариантов - тут.
Показывает график посещений столбцами за каждые полчаса.
Получается наглядная гистограмма.
valdis73, мамин_парень
23.7.2010, 10:21 Сообщение юзерам с нулевой шарой
Сообщение юзерам с нулевой шарой
Вообще-то скриптик из этого сообщения как раз именно это и делает - при входе сообщает о шаре и больше ничего не делает...только я там в одном слове одну букву вместо заглавной написал строчную, потому и не работал скрипт, сейчас поставил проверил и исправил, работает.
Вот эту строку
Код
if tUser.iSharesize < iSharaB then

надо заменить на эту
Код
if tUser.iShareSize < iSharaB then

и всё будет работать. Требуемую шару и текстовку можете переделать под себя.
Nickolya
7.7.2010, 15:21 Чем отличается ?
При полном бане с забаненного IP на хаб не попадут даже админы, даже если у них стоит в профиле галочка "Заходить с забаненных IP", не говоря уже о простых юзерах.
Соответственно, при простом бане такие заходы возможны, даже юзер, если стоит эта самая галочка в профиле. Так что следите за галочками, а то ваши баны могут оказаться бесполезными.
Drakula
7.7.2010, 13:19 MixMsg
Перемешивает буквы в сообщениях, но смысл не теряется.
Название: MixMsg_api2.lua
API: API 2
Версия: 1.0
Автор: Ksan (aka Trans)
Дата написания: 28-05-2010
Место проживания автора: г.Томск (Россия)

Описание: Скрипт перемешивания букв слов сообщений, получая достаточно внятный текст (на определенное количество минут).
Эта же фраза, только написанная с помощью скрипта:
Цитата
Скирпт пееремишавния букв слов собоещний, поулчая дотстачоно внтяный текст (на опеределнное коилечтсво минут).

Применяется как админами ко всему чату или отдельному юзеру, так и отдельными юзерами (включая и админов) к себе самому (однако при массовом применении админов и випов (это регулируемо) не трогает).
При повторном применении команды до срока действие прекращается сразу.
Ник адресата в измененном сообщении не меняется, также не меняются магнеты и ссылки на сайты, не трогает скрипт и стандартно сделанные смайлы (которые между двумя двоеточиями), так что иногда юзеры даже не замечают, что буквы перемешаны, а кто замечает, думает, что опечатался. big_smile.gif
Скрипт из разряда развлекательных.
Nickolya, ustas, FallenAngel, Drakula, Saymon21, DEN 007
7.7.2010, 11:53 Скрипт предупреждения ботом хаба
Оформил отдельной темой, добавив в скрипт кик от имени бота (вместо ника опа) или вовсе без автора.
Искать тут.
Nickolya
7.7.2010, 11:28 BotForOp
Писать, предупреждать и кикать от имени бота
Название скрипта: BotForOp_api2.lua
API: PtokaX API 2
Версия: 1.0
Автор: Ksan (aka Trans)
Дата написания: 07-07-2010
Место проживания автора: г.Томск (Россия)

Описание: Возможности (всё это - от имени бота):
- писать в чат соообщения
- писать юзеру в чате тихо (видит только он)
- писать юзеру в чате громко (видят все)
- писать юзеру в приват
- предупреждать юзера (видят все)
- кикать - 1. если с причиной - от имени бота, 2. если поле для причины оставить пустым - без автора, но с дежурной фразой "Не доставай!"
- помощь по командам этого скрипта (в приват) - важно, когда хочешь написать в чат многострочное сообщение, которое через меню не отправишь

Права (кто может применять сии команды):
- предупреждение и кик - кто имеет право на кики
- всё остальное - кто может банить

Написан по большей части на основании приёмов и кодов других скриптёров. Сейчас уже трудно что-то своё внести. big_smile.gif
Nickolya, ustas, Invisible, rival, Saymon21, ramzes, shur49, -Alex-, stailzoRE, AfLc
7.7.2010, 9:40 Скрипт предупреждения ботом хаба
Вот накалякал...точнее, выдрал из своего скрипта спешал фор Ю.
Возможности (всё это - от имени бота):
- писать в чат соообщения
- писать юзеру в чате тихо (видит только он)
- писать юзеру в чате громко (видят все)
- писать юзеру в приват
- предупреждать юзера (видят все)
- помощь по командам этого скрипта (в приват) - важно, когда хочешь написать в чат многострочное сообщение, которое через меню не отправишь

Права (кто может применять сии команды):
- предупреждение - кто имеет право на кики
- всё остальное - кто может банить
Раскрывающийся текст
Код
--- Скриптик для предупреждений и сообщений от бота
--- Название: BotForOp_api2.lua
--- Накалякал Ksan из Томска для Милены Питерской, сидя на плечах гигантов-скриптёров..

sHelp = " ***  Помощь по командам (важно при писании в чат сообщений с несколькими строками от имени бота):\n\t!frombottouserpm НИК ТЕКСТ_СООБЩЕНИЯ - сообщение в приват юзера от имени бота\n\t!frombottousermc НИК ТЕКСТ_СООБЩЕНИЯ  - тихое сообщение в чате юзеру от имени бота (видит только этот юзер)\n\t!frombottousermcall НИК ТЕКСТ_СООБЩЕНИЯ  - громкое сообщение в чате юзеру (видно всем)\n\t!frombottochat ТЕКСТ_СООБЩЕНИЯ  - сообщение в чате от имени бота (видно всем)\n\t!warn НИК ТЕКСТ_СООБЩЕНИЯ  - предупреждение юзера в чате (видят все)\n\t!helpforwarn  -  получение этой самой помощи по командам"

function OnStartup()
    sBot = SetMan.GetString(21)
end

function UserConnected(tUser)
    local t = ProfMan.GetProfilePermissions(tUser.iProfile)
    if t then
        if t.bTempBan then
            Core.SendToUser(tUser, "$UserCommand 1 2 << АДМИНКА >>\\От имени бота\\Юзеру в приват от бота..$<%[mynick]> !frombottouserpm %[nick] %[line:Текст сообщения]|")
            Core.SendToUser(tUser, "$UserCommand 1 2 << АДМИНКА >>\\От имени бота\\Юзеру в чат от бота (тихо)..$<%[mynick]> !frombottousermc %[nick] %[line:Текст сообщения]|")
            Core.SendToUser(tUser, "$UserCommand 1 2 << АДМИНКА >>\\От имени бота\\Юзеру в чат от бота (громко)..$<%[mynick]> !frombottousermcall %[nick] %[line:Текст сообщения]|")
            Core.SendToUser(tUser, "$UserCommand 1 1 << АДМИНКА >>\\От имени бота\\Сообщение в чате от бота..$<%[mynick]> !frombottochat %[line:Текст сообщения]|")
            Core.SendToUser(tUser, "$UserCommand 1 1 << АДМИНКА >>\\От имени бота\\Помощь по командам$<%[mynick]> !helpforwarn|")
        end
        if t.bKick then
            Core.SendToUser(tUser, "$UserCommand 1 2 << АДМИНКА >>\\От имени бота\\Предупреждение в чате..$<%[mynick]> !warn %[nick] %[line:Причина]|")
        end
    end
end
OpConnected = UserConnected
RegConnected = UserConnected

function ChatArrival(tUser, sData)
    Core.GetUserAllData(tUser)
    local t = ProfMan.GetProfilePermissions(tUser.iProfile)
    local sData = sData:sub(1,-2)
    local s,e, sCmd = string.find(sData, "^%b<>%s+(%S+)")
    local s,e, sParam = string.find(sData, "^%b<>%s+%S+%s+(.+)")
    if t then
        if t.bTempBan then  
            if sCmd and sCmd == "!frombottouserpm" then
                local s,e, sNick, sMsg = string.find(sParam, "^(%S+)%s+(.+)$")
                if sNick and sMsg then
                    local CurUser = Core.GetUser(sNick)
                    if CurUser then
                        Core.GetUserData(CurUser, 16)
                        FromBot(CurUser, sMsg)
                        FromBot(tUser, "Юзеру "..sNick.." отправлено в приват сообщение: "..sMsg)
                    else
                        ToUser(tUser, "Ошибка: юзер "..sNick.." не найден на хабе")
                    end
                else
                    ToUser(tUser, "Ошибка синтаксиса. Синтаксис: !frombottouserpm <ник> <текст сообщения>")
                end
                return true
            end
            if sCmd and sCmd == "!frombottousermc" then
                local s,e,sNick, sMsg = string.find(sParam, "^(%S+)%s+(.+)$")
                if sNick and sMsg then
                    local CurUser = Core.GetUser(sNick)
                    if CurUser then
                        Core.GetUserData(CurUser, 16)
                        ToUser(CurUser, sNick..":  ***  "..sMsg)
                        ToUser(tUser, sNick..":  ***  "..sMsg)
                    else
                        ToUser(tUser, "Ошибка: юзер "..sNick.." не найден на хабе")
                    end
                else
                    ToUser(tUser, "Ошибка синтаксиса. Синтаксис: !frombottousermc <ник> <текст сообщения>")
                end
                return true
            end
            if sCmd and sCmd == "!frombottousermcall" then
                local s,e, sNick, sMsg = string.find(sParam, "^(%S+)%s+(.+)$")
                if sNick and sMsg then
                    local CurUser = Core.GetUser(sNick)
                    if CurUser then
                        Core.GetUserData(CurUser, 16)
                        FromBotToChat(sNick..":  ***  "..sMsg)
                    else
                        ToUser(tUser,"Ошибка: юзер "..sNick.." не найден на хабе")
                    end
                else
                    ToUser(tUser, "Ошибка синтаксиса. Синтаксис: !frombottousermcall <ник> <текст сообщения>")
                end
                return true
            end
            if sCmd and sCmd == "!frombottochat" then
                local sMsg = sParam
                if sMsg then
                    FromBotToChat(sMsg)
                else
                    ToUser(tUser, "Ошибка: Нет текста сообщения")
                end
                return true
            end
            if sCmd and sCmd == "!helpforwarn" then
                FromBot(tUser, sHelp)
                return true
            end
        end
        if t.bKick then
            if sCmd and sCmd == "!warn" then
                local s,e, sNick, sMsg = string.find(sParam, "^(%S+)%s+(.+)$")
                if sNick and sMsg then
                    local CurUser = Core.GetUser(sNick)
                    if CurUser then
                        Core.GetUserData(CurUser, 16)
                        FromBotToChat(sNick..":  ***  Вам предупреждение: "..sMsg)
                    else
                        ToUser(tUser, "Ошибка: юзер "..sNick.." не найден на хабе")
                    end
                else
                    ToUser(tUser, "Ошибка: Вы не ввели ник или причину!")
                end
                return true
            end
        end
    end
    collectgarbage("collect")
end

function FromBot(user, msg)
    Core.SendPmToUser(user, sBot, msg)
end

function ToUser(user, msg)
    Core.SendToUser(user, "<"..sBot.."> "..msg)
end

function FromBotToChat(msg)
    Core.SendToAll("<"..sBot.."> "..msg)
end

Вот думаю, может, кинуть это отдельной темкой (но вроде слишком незначительная вещь, чтоб тратить на неё место на форуме)..
Milena, Saymon21
4.7.2010, 21:26 Скрипт Release для PtokaX 0.4.1.x
нужен скрипт аля Release or Request (by jiten) под API2
Тут принято "спасибо" выражать нажатием кнопки одноимённой под ником того, кого благодаришь.
мамин_парень
2.7.2010, 4:50 Protector
API2 | бот всё в одном
Попробуй в этой функции закомментить (то есть, сделать неактивной) одну строку (в нижепоказанном коде я уже закомментил эту строку):
Код
function ValidateNickArrival(tUser, sData)
    if tUsers[tUser.sIP] then
        CheckBans(tUser)
--        AutoRegCheck(tUser)
    end    
end

Может, прокатит..
diss
24.6.2010, 2:40 DC for Windows mobile т.п.
Есть PocketDC, но очень неудобен в использовании, к тому же есть глючок в сохранении настроек - после ввода ника, пароля, описания всё это позже сдвигается в соответствующих окошках с одного на другое и запаришься потом снова это прописывать...
А так - вполне рабочий софт, можно эмулировать до 50 гб шары, есть приват, столбцы разные в списке юзеров. Да, ещё, - одновременно можно сидеть только на 1 хабе, приходится перезаходить.
Я сидел на нём некоторое время. Автор, похоже, забил на него, с 2007 года нет изменений. Поищи в интернете по названию, скачай и поставь, может, тебе понравится. Кстати, кроме него для ВинМобила нет другого клиента. По крайней мере, в марте ещё не было.
TommyKaira
22.6.2010, 19:51 Скрипт "Народная мудрость"
API2
Вот версия скрипта с добавлением минимального необходимого периода между "мудростями", чтоб не злоупотребляли.
Паузу можно задать как в секундах, так и в минутах.
Nickolya, prokazzza, ramzes, ProGeTTo
16.6.2010, 16:08 Antibot
API2 | Скрипт против ботов
Полагаю, он имеет в виду, что юзеру присылается картинка, нарисованная ASCII-символами, а в картинке - числа. Я тоже уже думал над таким вариантом, но я не сторонник таких ограничений, поэтому не стал делать.
Это реально сделать, реально сделать и разные картинки одних и тех же чисел, но игра не стоит свеч. Чем не устраивает обычная математическая задача?... (это я уже Дракуле) Типа чтоб круто было?
Drakula
10.6.2010, 21:56 BanMsg
API2 | Выводит инфу в чат
Вредный совет.
Менять нужно только там, где необходимо. Иначе в чат сообщения пойдут голосом бота, но от имени админа...И будет глупо.
Вот одна строка, как пример, где бездумная замена приведёт к конфузу:
Код
Core.SendToAll("<"..sBot.."> "..tUser.sNick.." навсегда забанил юзера с ником: "..sNick.." по причине: "..sReason)

Я думаю, вопрошающий товарищ с непроизносимым ником теперь сам догадается, в каких местах нужно поменять и что на что..
Invisible, Accelerator
7.6.2010, 18:12 Запрет снятия банов, поставленных другими людьми
Я думаю, запрет должен касаться только тех банов, которые поставили коллеги одного уровня, или выше..
Например, ОП не может снять бан другого ОПа или мастера(он же админ).
А мастер должен иметь право снимать любой бан ОПов, разве что пусть не сможет снять баны другого мастера (иногда же бывает их больше одного)
bot9ra
5.6.2010, 14:50 очень не плохая идея если возможно!
А можно тебе тоже дать идею?
А попробуй-ка ты сам поизучать Луа, писать скрипты и изучить настройки Птоки, это ведь всё же не университет кончать.
Ещё одному разбирающемся хоть сколько-то в скриптах мы будем только рады.
А идеи подкидывать - не мешки ворочить..
мамин_парень
24.5.2010, 22:03 AntiReclama_by_Ksan
Тихая антиреклама чата и привата с удалённым управлением
Прошу прощения за второе сообщение подряд, но тема не апнулась при внесении изменений в первое сообщение.
Короче, скрипт капитально изменен и добавлен в первое сообщение.
Жду комментов.
Nickolya, Kingston, Dimon21, X-Sky, мамин_парень
23.5.2010, 21:41 Нужен скрипт описания.
Замена описания делается легко, но я противник тотального принудительного однообразия, поэтому не стану помогать. big_smile.gif Да и подозреваю, что отсыл измененных описаний каждого и всем - несколько может оказаться напряжно, в отличие от отсыла подмененного описания только одного или нескольких юзеров - всем. Хотя тут могу оказаться не правым, не проверял.
Надо - изучи темы, скриптыподмены описаний и сам сделай.
forZejkee
14.5.2010, 11:12 Вопросы по скриптам
Мелкие вопросы
Цитата(Saymon @ 21.3.2010, 18:13) *
Вот рабочий пример функции которая позволяет юзеру выбирать отсылать ли ему сообщение при входе или нет.
Автор Nickolya

[attachment=4268:Example.lua]

От себя выражаю огромное спасибо Nickolya. big_smile.gif


Скрипт работает только до первой перезагрузки (скрипта). Вот более правильный код (сравни со своим):
Раскрывающийся текст
Код
sOurFileWay = Core.GetPtokaXPath().."scripts/somefile.txt"    -- путь к файлу
tTableData = {}

function OnStartup()
    if loadfile(sOurFileWay) then
        dofile(sOurFileWay)
    end
end

function OnExit()
    SaveToFile(sOurFileWay, tTableData, "tTableData")    -- сохраняем при выходе
end

function UserConnected(user)
    -- меню:
    Core.SendToUser(user, "$UserCommand 1 3 Информация\\получать$<%[mynick]> +ИзменитьСтатус on|")
    Core.SendToUser(user, "$UserCommand 1 3 Информация\\не получать$<%[mynick]> +ИзменитьСтатус off|")
    
    if not tTableData[user.sNick] then    -- проверяем на отсутствие ника в таблице и если его там нет то отсылаем ему информацию
        Core.SendToUser(user, "..........")
    end
end
OpConnected = UserConnected
RegConnected = UserConnected

function ChatArrival(user, sData)
    local sCmd, sOption = sData:match"%b<>%s+[!%+%*](%S+)%s*(%S*).*|$"    -- отлавливаем команду и аругмент после нее
    if sCmd == "ИзменитьСтатус" then    -- если наша команда
        if not sOption then    -- если вдруг отсутствует статус в команде
            Core.SendToUser(user, "*** Вы не ввели статус команды!")
        elseif sOption == "on" then    -- если опция после команды on то
            if not tTableData[user.sNick] then    -- если ника нет в таблице то он получает инфу
                Core.SendToUser(user, "*** Вы и так получаете информацию при входе!")
            else
                tTableData[user.sNick] = nil    -- иначе удаляем ник из таблицы
                SaveToFile(sOurFileWay, tTableData, "tTableData")
                Core.SendToUser(user, "*** Теперь вы получаете информацию при входе!")
            end
        elseif sOption == "off" then    -- если опция после команды off то
            if tTableData[user.sNick] then    -- если ник в таблице
                Core.SendToUser(user, "*** Вы и так ничего не получаете при входе!")
            else
                tTableData[user.sNick] = true    -- иначе добавляем ник в таблицу
                SaveToFile(sOurFileWay, tTableData, "tTableData")
                Core.SendToUser(user, "*** Теперь вы не получаете информацию при входе!")
            end
        else    -- если опции нет или она какая-то странная
            Core.SendToUser(user, "*** Неверный статус команды!")
        end
        return true
    end
end
Saymon21
12.5.2010, 22:33 Добавьте пожалуйста
Я не знаю, как ты базу заполнял, но у меня в таком виде работает нормально, и по запросу, и автоматом. Если попробуешь и снова не получится (не верю я, что не получится), то просто закомментишь строку отправления команды в меню.
А вот, собственно, и сам код:
Раскрывающийся текст
Код
local sBot = "xxx"

local iTimer = 30 -- в минутах

tMessarray = {
    " :huh: ",
    " :ignoring: ",
    " Через меню можно вызвать FAQ - ответы на частые вопросы.",
    " Желающие зарегистрироваться в хабе могут это сделать через меню \"Регистрация\"",
}
math.randomseed(os.time())

function OnStartup()
    tmr = TmrMan.AddTimer (iTimer*60*1000)
end

function OnTimer(tmr)
    Core.SendToAll("<"..sBot.."> "..tMessarray[math.random(1,#tMessarray)])
end

function UserConnected(tUser)
    Core.SendToUser(tUser, "$UserCommand 1 3 Запрос$<%[mynick]> !запрос&#*124;")   -- в этой строке в конце нужно удалить звездочку *
end
OpConnected,RegConnected = UserConnected,UserConnected

function ChatArrival(tUser, sData)
    local sData = sData:sub(1,-2)
    local s,e, sMsg = sData:find("^%b<>%s(.*)$")
    if sMsg:find("!запрос") then
        Core.SendToAll("<"..sBot.."> "..tMessarray[math.random(1,#tMessarray)])  -- если надо отправить всем в чат
--        Core.SendToUser(tUser, "<"..bot.."> "..messarray[math.random(1,#messarray)])  --  если надо отправить только запрашивающему в чат, открываешь спереди эту строку и аналогично закрываешь (ставишь 2 этих знака --) предыдущую строку
        return true
    end
end

Для большей степени случайности добавил ещё одну строку:
Цитата
math.randomseed(os.time())

Да, чуть не забыл, в это строке надо удалить в конце звёздочку:
Код
Core.SendToUser(tUser, "$UserCommand 1 3 Запрос$<%[mynick]> !запрос&#*124;")

Думаю, из-за этого конца у тебя и не работало меню (я сам забыл в предыдущем скрипте пририсовать звёздочку)
denis
12.5.2010, 18:25 Добавьте пожалуйста
Оп-с, забыл в одном месте исправить переменную.
В предыдущем сообщении подправил.
denis
12.5.2010, 6:42 приветствия для каждого ника
Никак вы не поймёте, что человек хочет, чтоб у каждого юзера было своё приветствие, по крайней мере, у тех, кто в базе приветствий...Независимо от профиля.
В скрипте в предыдущем сообщений уже заложена такая возможность - вместо профилей в таблице нужно прописать ники желающих получать своё приветствие в таком виде:
Код
["Это_ник_юзера"] = "Тут приветствие этого юзера",
А в целом скрипт может выглядеть так:
Раскрывающийся текст
Код
local sBot = SetMan.GetString(21)

sHelloMessages = {
["TROJAN"] = "     Подтянув Галстук, Аккуратно Причесан и Одет в Черном, Блестящем Смокинге. Главный Администратор хаба Открыл Дверь.. и вошел в главный зал хаба! Предклонитесь Перед Богом Хаба.. и Он благословит вас- мы Приветствуем тебя, о TROJAN!",  -- ДобАвляем свои привеТствиЯ кому надо!
["Не-TROJAN"] = " Поприветствуем Модератора Не-TROJAN!",
["Ksan"] = " А вот и Ksan! Как мы тебе рады, заходи, раздевайся и будь как дома! :) ",
["Test_user"]  = " Вау, кто к нам пришёл, - сам Test_user! Как мы тебе рады, заходи, раздевайся и будь как дома! :) ",
}

function UserConnected(tUser)
    local sHelloMes = sHelloMessages[tUser.sNick]
    if sHelloMes then
        Core.SendToNick(tUser.sNick,"<"..sBot.."> ••• "..sHelloMes.."! •••")
        Core.SendToAll("<"..sBot.."> ••• "..sHelloMes.."! •••")
    end
end
OpConnected = UserConnected
RegConnected = UserConnected

А в базу заносит ник и приветствие к нику по просьбе самого юзера сам админ. В принципе, можно и через меню вносить, но это уже значительно усложнит скрипт.
Nickolya, FallenAngel, Invisible, CrazyCat, мамин_парень
12.5.2010, 5:07 Добавьте пожалуйста
Попробуй:
Раскрывающийся текст
Код
local sBot = "xxx"

local iTimer = 30 -- в минутах

tMessarray = {
[[ ]],

}

function OnStartup()
    tmr = TmrMan.AddTimer (iTimer*60*1000)
end

function OnTimer(tmr)
    Core.SendToAll("<"..sBot.."> "..tMessarray[math.random(1,#tMessarray)])
end

function UserConnected(tUser)
    Core.SendToUser(tUser, "$UserCommand 1 3 Запрос$<%[mynick]> !запрос|")
end
OpConnected,RegConnected = UserConnected,UserConnected

function ChatArrival(tUser, sData)
    local sData = sData:sub(1,-2)
    local s,e, sMsg = sData:find("%b<>%s(.*)$")
    if sMsg:find("!запрос") then
        Core.SendToAll("<"..sBot.."> "..tMessarray[math.random(1,#tMessarray)])  -- если надо отправить всем в чат
--        Core.SendToUser(tUser, "<"..bot.."> "..messarray[math.random(1,#messarray)])  --  если надо отправить только запрашивающему в чат
    end
end
denis
9.5.2010, 11:24 Дисконектер
Цитата(Serx @ 9.5.2010, 11:21) *
значит в конечном итоге так:
Код
ExNicks = {"ник1","ник2",}

function ValidateNickArrival(tUser,data)
  for i = 1, #ExNicks do
    if (not tUser.sNick == ExNicks[i]) then
      Core.SendToUser(tUser, "Хаб на реконструкции")
      Core.Disconnect(tUser)
    end
  end
end

UserConnected, RegConnected = ValidateNickArrival, ValidateNickArrival


спасибо Setuper и Ksan

Ты опять путаешь людей.. :(
Надо вот так:
Код
if not (tUser.sNick == ExNicks[i]) then

Будь внимательнее, плиз! NOT вне скобок!
Drakula
8.5.2010, 21:08 PtokaX Linux
А чтоб смешнее было.
X-Sky
8.5.2010, 20:58 Дисконектер
Вот это:
Код
tUser.sNick == ExNicks[i]
заключи в скобки:
Код
(tUser.sNick == ExNicks[i])
Serx, Drakula
8.5.2010, 10:46 AntiReclama_by_Ksan
Тихая антиреклама чата и привата с удалённым управлением
Название скрипта: AntiReclama_by_Ksan.lua
(с удалённым управлением всего и вся через меню)
API: PtokaX API 2
Автор: Ksan (aka Trans)
Дата написания: (07-08)-05-2010
Место проживания автора: г.Томск (Россия)

Версия: 1.0
Описание: Скрипт антирекламы (чат и приват)
Особенности: возможность выбора некоторых опций через меню (заглушка полная или нет, кикать или дисконнектить, зафлуживать приват рекламщиков или нет), реклама тихая, то есть, рекламщик думает, что реклама прошла, несмотря на пинки и зафлуживание, а при режиме заглушки "0" (отмена флуда и киков разных) и вовсе не заметит подвоха. Регистронезависимость.
Примечание: для работы скрипта должна присутствовать папка со вспомогательными файлами с таблицами, уже заполненными

Вариантов реагирования 5:
-- Тихая заглушка без доп. акций (режим "Zero")
-- Зафлуживание рекламщика + дисконнект
-- Зафлуживание + кик
-- Просто дисконнект
-- Просто кик
Общее для всех вариантов - рекламщику кажется, что реклама всё-таки прошла куда надо.
Все варианты переключаются между собой через меню скрипта.

Версия 2.0

••• Изменения:
- при первом запуске необходимые файлы и папка для них создаются автоматически;
- через админское меню можно добавлять-удалять рекламные, исключений и флудовые
шаблоны, а также просматривать списки всех этих шаблонов;
- при добавлении-удалении шаблонов скрипт теперь не надо перезапускать:
- решена проблема обхода антирекламы вводом в сообщение слов из таблицы исключений;
- добавлено блокирование IP в чате и приватах (с возможностью отмены через меню). Отдельные IP можно вносить в исключения, как и любое другое слово;
- добавлены разнообразные статусные сообщения: в Опчат при перезапуске скрипта и при
смене режимов, и в любое время можно посмотреть текущие настройки, получив в
приват через меню;
- добавлена возможность отключения отправки в Опчат сообщений о рекламе (может оказаться полезной при частых отлавливаемых спамах)
- изменен метод получения рандомного ника отправителя для зафлуживания;
- некоторая оптимизация кода (надеюсь).

••• Примечания:
- структура таблиц несколько иная, чем в предыдущей версии и в большинстве других антиреклам, возможно, придётся шаблоны набивать по-новой.
Но я поступил проще - шаблонами старого вида заполнил нужные таблицы (с учётом измененных названий таблиц, естественно) и запустил скрипт. После чего в каждую таблицу добавил шаблон (любой). После этого одноразового действия (для каждой таблицы шаблонов) таблицы сохраняются уже в как нужно.
- при отсутствии ТАБЛИЦ шаблонов сообщений для зафлуживания привата рекламщика скрипт будет падать с сообщением вроде этого: ......PtokaX-0.4.1.1\scripts\Anti_Reclama_api2.lua:461: bad argument #1 to 'random' (interval is empty) (номер строки может оказать у вас иным), поэтому желательно, чтоб в таблице был хотя бы один образец сообщения.

••• Советы для малоопытных:
- шаблоны вбивайте максимально укороченные, но достаточные для отлова рекламы. Не нужно в шаблонах оставлять интернет-префиксы типа dchub://, http:// и www (разве что только в исключениях). Если вы запрещаете любые ссылки, то да, можете внести эти префиксы отдельно, а в дальнейшем в шаблонах их отсекайте.
- для блокирования рекламы ссылок с реферрерами (с бонусами рекламщику за заход по его ссылке) во многих случаях поможет шаблон ?ref=


••• Пошла версия 2.1:

- добавлен 6-й вариант реагирования - "Предупреждение" (при режиме "0")

UPD 2: Поменял местами 2 строки (описание ниже в сообщении #10), чтоб сначала отрабатывала функция общей антирекламы, а потом уже, если не было этой отработки, проверка сообщения функцией проверки IP-рекламы.
UPD 3: Добавлена возможность предупреждать рекламщика в привате бота при попытке рекламы (в режиме "0"). Это тоже можно переключать через меню скрипта.

Дата изменения: 27-12-2010
Nickolya, intlive, Wariner, FallenAngel, Tsd, zip2002, Karumo, rival, Kingston, wasd, Saymon21, X-Sky, SAG, Тёмич, доктор ливси, Rei_Volia, STIVAN, pol_91, ProGeTTo, stone, AfLc, мамин_парень
5.5.2010, 5:27 Функции Для Разработчиков
склад полезных функций
Ещё одна функция приведения к нижнему регистру (ранее нигде не встречал):

Код
function StringLower(arg)
    os.setlocale"Russian_Russia.1251"  -- (русс.локаль)
    arg = string.lower(arg)
    os.setlocale("C")  -- (возврат на станд.локаль)
    return arg
end

Работает как с кириллицей, так и с латиницей.
Аналогично же и для приведения к верхнему регистру:

Код
function StringUpper(arg)
    os.setlocale"Russian_Russia.1251"  -- (русс.локаль)
    arg = string.upper(arg)
    os.setlocale("C")  -- (возврат на станд.локаль)
    return arg
end


PS: Уж больно подозрительно простенький код получился, но работает. Если у кода есть побочные вредные эффекты, умные товарищи, надеюсь, не пропустят и подскажут. big_smile.gif
MIKHAIL
4.5.2010, 0:34 Блок по тегу
Скрипт блокировки по тегу
Так, на будущее...тут принято тыкать на кнопку "Спасибо", если благодарен кому-то за помощь. big_smile.gif
valdis73
30.4.2010, 17:52 Логотип для RusHub'а
ваши варианты и предложения
Хосспади, люди шуток уже не понимают...куда мир катится. Там же русским по белому написано:
Цитата
xDDDDD
а это до сего дня было кучей улыбок..Что-то в мире изменилось?
bot9ra
30.4.2010, 1:41 Логотип для RusHub'а
ваши варианты и предложения
Типа лёгкая разминка перед сообщением:

RuSHuB - некая попытка игры в симметрию;
R'' - но тут знак секунды ('') скорее всего воспримется как знак дюйма big_smile.gif А секунда типа как признак быстрой загрузки и работы. big_smile.gif

Разминка закончилась.

А вообще, у меня на бумаге были попытки поиграть разного рода противоположнонаправленными стрелками - типа скачивание-отдача.. стрелки - вниз-вверх, направо-налево, узкие, широкие, стилизованные до почти неузнаваемости, похожие на реальные стрелы от лука..и т.д. Но всё это не стал даже переносить на комп, чтоб показать, так как они меня не удовлетворили, а недоконченное я не люблю показывать. А вот направление мысли изложил, может, у кого-то лучше получится.

PS: Возвращаясь к бегущему R от Николя - мне думается, от этой картинки надо оставить ТОЛЬКО букву (или человечка), остальное - фон, нижняя часть, обрамляющий квадрат - всё это, думаю, лишнее...
Ещё раз выражу своё мнение - знак должен быть очень простым! Самые запоминающиеся - самые простые.
Nickolya, bot9ra
20.4.2010, 17:29 Проверка ников на запретные слова
verlihub
Сравните:
Код
BotName = "Bot"
и
Код
VH:KickUser(botname, nick, "Реклама в нике")

Переменная с ником бота не совпадает по написанию в двух этих строках.
Nickolya
9.4.2010, 23:09 NoDescAdv
API2 | Удаление рекламы из описания юзеров
Скрипт захватывает и подменяет описания с рекламой только при своём запуске-перезапуске, а когда юзер перезаходит или заходит новый юзер при запущенном скрипте, реклама светится без проблем.
Поэтому вот решение (очень простое) - добавьте функцию UserConnected с таким содержанием:
Код
function UserConnected(tUser)
    Core.GetUserAllData(tUser)
    MyINFOArrival(tUser,tUser.sMyInfoString)
end
RegConnected = UserConnected
OpConnected = UserConnected


PS: Хмм, как мне подсказал автор, этот же результат достигается увеличением в настройках параметра iSendTimer. Я поставил 1000 вместо 500 и теперь даже при заходе-перезаходе юзера скрипт отрабатывает своё назначение..
Saymon21, sergius_s
8.4.2010, 23:07 Network Separation
API1, API2 | Скрипт разделения сетей пользователей
1. Попробуй так: замени строки 242 и 243 на эти 2 строки:
Код
            tIPSeparation[i][k]["sFrom"] = CountIP(l.sFrom)
            tIPSeparation[i][k]["sTo"] = CountIP(l.sTo)

И проверь работу скрипта.
2. Если не прокатит (хотя это нужно в любом случае сделать), тогда в таблице с диапазонами сетей оставь только сеть 1. Сеть номер 2 практически равна сети номер 0 (то есть, любой диапазон, не входящий в сеть номер 1). Просто закомменти вторую сеть.
И ещё - исправление (удаление функции SRArrival) в первом моем совете остаётся в силе.
Ольга
27.1.2010, 15:57 "Словарь" интернета
вот такое вот разочарование
Привыкшие к украинскому языку на русском языке обычно пишут И вместо Ы ...
Но это всего лишь частный случай, а тема поднята правильно. И особенно эта проблема заметна в чатах хабов.
Отмазки типа "это же всего лишь чат" не принимаю. Кто может писать правильно и уважает свой язык, пишет правильно везде и всегда.
X-Sky
26.1.2010, 22:30 Антимат Из Хуббы
API2
"Может, пора что-то в консерватории менять?" (с) Жванецкий.
Я смотрю, у тебя ни один скрипт не работает, хотя у всех они работают.
Может, начнёшь с нуля? Забей и забудь, всё, что "знаешь", и начни с нуля, как будто увидел Птоку и луа-скрипты первый раз. И внимательно-внимательно читай сообщения знатоков, авторов скриптов и сами скрипты. Где-то же должна скрываться первопричина твоих проблем.
Wariner
14.11.2009, 15:01 Викторина с титулами
API2
Бери отсюда.
Там много интересного добавлено плюс твои титулы есть (больше 100). big_smile.gif
mwnn
1.11.2009, 9:49 Network Separation
API1, API2 | Скрипт разделения сетей пользователей
Вот на всякий случай кладу этот же, но урезанный до минимума, скрипт...
Для тех, у кого возникли проблемы с работой скрипта в *nix'ах по той или иной причине, а разделение сетей необходимо.
Поиск-скачивание невозможно между сетями намертво, никакого меню нет.
При входе юзеру отправляется сообщение о разделении сетей и возможности качать только в пределах своей сети (текст напишете сами, как найдете нужным)

Перезалил.
Исправил кое-что мелкое (хотя из-за этого мелкого мог работать неправильно)
Nickolya
14.10.2009, 7:51 Выбран Оператором
надолго ли - ваш прогноз))
Удивляюсь я автору темы...Он всё время крутится вокруг собственной персоны, если речь не идет о проблемах со скриптом. Однако, сильные же у него проблемы с окружающим миром!
По существу темы - я помню, как автор раньше высказывался резко против админов (опов) и даже показывал логи, как он их доставал (хотя цель показа была направлена против админов). Надеюсь, и полагаю, что обязательно найдется аналогичный же юзер и на его голову, и он поймёт, как был неправ раньше, будучи юзером.
Админская (опская) работа - неблагодарная. Юзеру не стоит руководствоваться при оценке админа только личными обидами (это так, задним числом автору).
Wariner, mariner, X-Sky
18.9.2009, 2:20 CountGraphic
API2 | Диаграмма посещаемости хаба по запросу отправляется в приват
Хорошо, уговорили, сегодня переведу и кину в первом сообщении переведенный на API 1 скрипт, вечерком (сейчас у меня 6 утра, спешу на работу). big_smile.gif

PS: Добавил в первый пост скрипт под API 1, предварительно исправив один косячок (раньше при старте инициировался приват не того бота). Теперь оба скрипта в одном архиве.
PSS: 2thehawk: Ты забыл, наверно, создать (или скопировать из архива) папку с первоначальным файлом для таблицы графика.
thehawk
15.9.2009, 9:28 TEST
А я и не знал, что было такое ограничение big_smile.gif
Наверно. можно и без сообщений чтоб могли благодарить. Это же позитифф, а разве можно позитифф ограничивать?! big_smile.gif
LaLa
15.9.2009, 6:30 TEST
Кстати, у нас в городе была известная форумчанка с ником LaLa, очень даже умница...
Это не ты был? big_smile.gif
Nickolya, LaLa
15.9.2009, 5:58 Gagbyshare
API2 | Гаг по шаре
2prapor:
Сорри, это моя ошибка...в шапке функции:
Код
function Core.ToArrival(tUser,sData)
убери "Core.", должно быть так:
Код
function ToArrival(tUser,sData)

Когда сюда писал код, я проверял на старом АПИ, там это прокатывало. Сейчас проверил на новом, только тогда понял, что забыл убрать лишнее...
prapor
9.9.2009, 16:11 У вас нет прав на просмотр этой темы
У вас нет прав на просмотр этого сообщения
FBR, FallenAngel
6.9.2009, 5:54 CountGraphic
API2 | Диаграмма посещаемости хаба по запросу отправляется в приват
Название скрипта: CountGraphic
Версия API: API 2
Автор: Trans (изм. на Ksan)
Описание: Каждые полчаса (по умолчанию) записывает в файл таблицу со столбцами графика посещаемости (наполнненности) хаба, при запросе через меню отправляет в приват график от 1 суток до 30 ( админ, ник которого вписан в настройках скрипта, может запросить график до 365 суток).
Запросы начнут удовлетворяться не ранее, чем через сутки. big_smile.gif
В силу особенностей текстового режима клиента столбцы графика добавляются сверху вниз и столбец расположен горизонтально. в начале столбца дата-время, в конце - число юзеров.
Для просмотра удобнее уменьшать масштаб содержания окна через CTRL+колесико_мышки.
Полагаю, что представляет интерес для анализа динамики наполнения хаба по времени суток, по дням и месяцам...и вообще, просто для интереса. big_smile.gif

PS Исправил ошибку, внесенную при корректировке скрипта, перезалил.

Апгрейд:
--- Версия 1.3 (08-09-09 20:20)
--- Теперь в таблицу записывается только дата-время и число, а столбцы строятся при отправке по запросу
--- При выдаче по запросу столбец за нулевой час суток строится из других элементов для выделения насыщенностью цвета, и рядом с числом юзеров пишется дата
--- Исправлена ошибка в условии с профилем юзера - вместо квадратных скобок были круглые big_smile.gif
--- Эта версия совместима с предыдущей, то есть, ранее созданная часть таблицы будет обрабатываться одинаково с последующими частями и выдаваться корректно по запросу.
Так что если у кого таблица уже есть, то не заменяйте пустой из моего архива.

--- (18-09-09 19:40)
--- Исправил 1 косячок (раньше при старте инициировал приват не того бота)
--- Добавил скрипт под API 1.
--- Теперь оба скрипта в 1 архиве.

Картинки ниже - из предыдущей версии.


Вот примеры (одна картинка без изменения масштаба, вторая - с уменьшением):
[attachment=3171:CountGraph_1.jpg] [attachment=3172:CountGraph_2.jpg]

P.S.: У архивного файла расширение почему-то при скачивании оказывается не .RAR, а .ZIP (хотя я закачивал именно с .RAR). Так что если у кого-то архив не раскрывается с ошибкой, переименуйте расширение на .RAR (вместо .ZIP) и пробуйте снова.
Nickolya, intlive, dimetrius, FBR, Invisible, степашка, district, denis, PomanoB, valdis73, Andrew Frost, 12345, Saymon21, X-Sky, thehawk, Pro009, Cyber_voodoo, AfLc, GULAM33, мамин_парень
25.8.2009, 17:17 Network Separation
API1, API2 | Скрипт разделения сетей пользователей
Найди вот эту функцию:
function MakeStatusMsg(curUser)
и в теле функции закомментируй (то есть, поставь по 2 знака тире -- спереди) 3 строки эти:
Код
    if iUsersNetwork ~= 0 then
        sMsg = sMsg..". Диапазоны вашей сети: "..tDiaps[iUsersNetwork]
    end
FBR
6.8.2009, 13:04 Викторина
API2
Да не парьтесь вы. Вот получите готовую викторину.
Изменения:
1. Периодические объявления в чат о количестве играющих и на какой вопрос сейчас отвечают, с предложением присоединиться и как это сделать. (об этом писал в своем предыдущем сообщении)
2. Одинокий игрок не может наращивать очки, хотя отвечать на вопросы может.
3. Всякие там таблицы-списки с топами и очками выводятся в отдельный приват, а не будут загромождать общий чат или игру.
4. Увеличена база.
FallenAngel, Артём, TiGRpp, striker, AfLc
4.8.2009, 9:44 нужен скрипт
2skonda:

Вот тебе то, что надо (это модернизированный вариант скрипта из предыдущего сообщения) :
HelloBotAkaVerliHub_1.1_api2.lua
skonda
4.7.2009, 7:10 Простой скрипт регистрации от NRJ
API2 | Скрипт просто регистрирует
Название: RegBot.by.NRJ
Версия: v. 1.2 (22/09/06)
Автор: NRJ
Версия API: API1, API2
Описание:

Простой скрипт регистрации

Команды:
!regme <pass> - зарегистрироваться
!passwd <new_pass> - изменить пароль (встроенная команда)
!unreg - удалить регистрацию

Changelog:

Перевёл на API 2 - Trans
(и убрал генерируемый пароль, причина - очень часто юзеры не запоминают его, а также удалил отсылку
в приват напоминания о регистрации, уж очень раздражает, ну, и добавил, как всегда, комменты почти
к каждой строке для понимания процесса)

**1.2**
- незарегистрированные пользователи при входе на хаб получают сообщение о неоходимости регистрации
- добавлена команда !reghelp

**1.1**
- добавлена команда !unreg
- добавлено меню для зарегистрированного пользователя

Комментарий от автора темы:

Причина перевода и помещения сюда этого скрипта в том, что другие доступные тут скрипты слишком замудрёные и
набиты излишествами, и половина из них вдобавок со скрытым кодом. Пусть будет на выбор и простой надёжный
скрипт от старого доброго NRJ! big_smile.gif
Скрипт небольшой, это от моих комментов он увеличился в объеме big_smile.gif
Добавил и оригинальный скрипт (API1)
district, denis, LOKI, striker, доктор ливси, vanga96, Yamakasi
25.6.2009, 15:07 Hub Menu
API2 | Меню для встроенных команд PtokaX
Я не спорю насчет динамических, но ведь скрипт делался не под ваш хаб, а для всех. Можно просто дополнить парой команд бана ника и все.
Кстати, насчет динамических - надо заглушать их незаметной заглушкой по IP на 1 сутки, а не банить. Пусть думают, что они небанимые.
X-Sky
23.5.2009, 13:57 Ipgag V.3.01
API1 | навороченная заглушка юзеров
Цитата(степашка @ 23.5.2009, 13:08) *
это понятно. но я говорил именно про перекрёстную функциональность. такую функцию встречал на нескольких ресурсах. весьма удобно. кстати не мог бы приложить свою переделку сюда? спасибо

Пожалуйста! В скрипте места, где изменены или добавлены строки или закомментены, в конце добавлен коммент для понимания изменений. И ещё - скрипт настроен для использования некоторых команд юзерами VIP-профиля (хелп, заглушка через ник, снятие заглушки через ник), так что учтите этот момент (вдруг кто будет использовать как есть).

PS: Забыл указать - для API 1
PPS: (13-08-09) Перезалил (исправил ошибку оригинального скрипта, связанную с лишним полем в сообщении. Подробнее в сообщении №42). Правда, исправление касается только закомментированного куска, так что если кто использует скрипт только в "тихом" виде, то можно не суетиться насчет изменений. Исправил ещё в 2 местах в слове GetOpChatName маленькую букву "с" на большую "С" (при снятии заглушки до срока это могло привести к падению скрипта с соответствующей ошибкой).
степашка
16.4.2009, 10:58 Stoptrep
API2 | Запрещает говорить больше N сообщений подряд в чате
Цитата(fly @ 13.2.2009, 18:36) *
Добавить бы еще таблицу исключения для ников. Если не трудно. Пожалуйста.

Вот, пользуйся. Добавлено исключение из проверки по профилям, по никам и по IP. Не знаю, как получилось для API 2, но у меня на API 1 работает. big_smile.gif
Invisible, доктор ливси

11 страниц V  « < 7 8 9 10 11 >
RSS Сейчас: 3.5.2024, 17:53