Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Служебные скрипты [PtokaX] _ Hider

Автор: alex82 26.3.2014, 12:30

Название: Hider
Версия: 1.02
Требования: PtokaX 0.5.0.1 mod 4 или новее, Lua 5.1
Зависимости: нет

Автор: alex82

Описание:
Данный скрипт предназначен для различных издевательств над никами юзеров - скрытия из списка, переименования, удаления ключей. Он активно использует функции, добавленные в PtokaX mod, и поэтому несовместим с оригинальной PtokaX.

Возможности скрипта:
Скрытие самого себя или других юзеров. В скрипте имеется список профилей, которые всегда видят скрытых юзеров. Также есть возможность показаться отдельным юзерам. В отличие от других аналогичных скриптов, этот скрывает юзеров совершенно беспалевно - присутствие скрытого юзера на хабе невозможно определить даже с помощью ботов, имеющих такую функцию. Счетчики юзеров и общей шары также обрабатываются

Переименование себя или других юзеров. Переименованные юзеры могут свободно общаться в чате и личках (в том числе с другими переименованными юзерами). При переименовании скрипт копирует $MyINFO переименовываемого юзера, заменяя при этом ник, а затем скрывает его из списка, и регистрирует бота с новым именем юзера.

Скрытие ключей юзеров. Казалось бы, бессмысленная функция, поскольку можно обойтись и без нее, создав отдельный профиль оператора без ключа. Но во-первых, некоторые права даются только с ключом (команды !stats и !debug, сообщения об ошибках скриптов), Во-вторых, при добавлении профиля появляются некоторые проблемы - при добавлении операторских профилей приходится перемещать остальные профили вниз, и, как результат, править базу регистраций. Дело в том, что PtokaX проверяет иерархию профилей, и не дает производить операции над юзерами, чей профиль выше Вашего (т.е. имеет меньший номер). А в-третьих, нет смысла добавлять профиль ради скрытия ключа одного юзера big_smile.gif

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

Скрытые и переименованные юзеры видят свой основной ник в списке. Код, исправляющий это, есть в скрипте, но он закомментирован, поскольку с ним появляется другая проблема - если юзер скрыт или переименован, он не будет видеть в личках собственных сообщений.

При перезапуске скрипта, юзеры, которые могут видеть отдельно взятых скрытых юзеров, не увидят их до переподключения к хабу. Код, отвечающий за это есть в скрипте, он не работает из-за того, что PtokaX нарушает последовательность отправки команд. Исправляется при помощи костылей с таймерами.

 hider_1.02.zip ( 11.26 килобайт ) : 60

Автор: Karumo 26.3.2014, 13:15

alex82,
Первый глюк, если запускаешь скрипт при переименованом юзере то вылетает с ошибкой:

Код
Синтаксис C:\Ptokax HUB\scripts\hider.lua:250: attempt to index local 'user' (a nil value)
stack traceback:
    C:\Ptokax HUB\scripts\hider.lua:250: in function <C:\Ptokax HUB\scripts\hider.lua:133>

Лечится заменой переменной "user" например на "usr"
Код
    -- Инициализируем переименованных юзеров
    for nick,v in pairs(tRenamed) do
        local user = Core.GetUser(nick)
        if user then
            Core.GetUserData(user, 67)
            Core.HideUser(user,true)
            usr = Core.GetUser(v[1])   -- там где меняем user на usr
            if usr then                         -- там где меняем user на usr
                Core.Disconnect(usr) -- там где меняем user на usr
            end
            Core.RegBot(v[1],v[2],(v[3] and not tHiddenKey[user.sNick] and not user.bHiddenKey))
        end
    end

Автор: alex82 26.3.2014, 13:58

Исправил

Автор: WINS 26.3.2014, 17:41

Если переименовываешь сам себя, то вернуть свой ник можно только после переподключения. так задумано иль издержки макаронного кода? big_smile.gif

Автор: alex82 26.3.2014, 18:44

WINS,

Проверил. Ник вернулся сразу. Что именно пишет скрипт? Ошибки есть?

Автор: WINS 26.3.2014, 19:07

Ошибок нуль. Не реагирует никак пока не переподключишься. Скрипт на самый верх задрирал. (ос дебиан 6, на вин ща проверю)

адд: на вин тот же эффект, скрипт полностью оригинальный, птока мод5 вин86 свежескачанная.
Надо на флайлинке попробовать, мож грей тупит...

адд: на флае все нормуль, долбаный грей, опять лишний шум из-за него big_smile.gif

Автор: Dani_Filth 20.4.2014, 12:36

Пытался скрыться на хабе,вот что выдало

Код
[20:34] Синтаксис E:\Soft\Хаб\Рабочий хаб\0.4.1.2\scripts\hider.lua:508: bad argument #2 to 'GetUserData' (it's not valid id)


и в чате команду пропустил

Автор: Alexey 20.4.2014, 19:11

Это нормально. Так и должно быть у пользователей, не читающих описание скрипта.
Считаю, что автору стоит исключить возможность запуска скрипта в неподходящем окружении.

Автор: prapor 26.7.2014, 15:36

alex82, Привет. Скажи, а будут ли новые посты твоих скриптов с новыми функциями в интерфейсе Lua, для твоей МОДной птохи? feel_good.gif