Приветствуем вас на форуме проекта WoW Circle. Если вы читаете это, значит не зарегистрировались у нас. Для того, чтобы получить доступ к расширенным возможностям нашего форума нажмите сюда и пройди регистрацию, которая не займет у вас много времени. После регистрации будут доступны новые, более расширенные, возможности.
Обжалование бана (LUA / WOWAPI)

Упомянутые в теме пользователи:

Показано с 1 по 1 из 1
  1. #1
    Новичок
    Регистрация
    24.08.2018
    Сообщений
    1
    Поблагодарил(а)
    0
    Получено благодарностей: 3 (сообщений: 1).
    Репутация: 3

    Обжалование бана (LUA / WOWAPI)

    1. Ifoundavoice
    2. 24.08.2018
    3. Warden Anticheat
    4. Warden Anticheat Violation: Lua Unlocker (CheckId: 800)
    5. Обстоятельства >
    6. --- >

    Обстоятельства:
    Бан на месяц. Некритично, но все-таки, чтобы разобраться в ситуации и просто поделиться опытом, думаю, будет полезно для других игроков, которые занимаются написанием своих аддонов (LUA / WOWAPI).

    На определенном персонаже (выше) со следующим набором аддонов:

    включенные аддоны

    Atlas
    Atlas_Transportation
    Atlas_DungeonLocs
    Bartender4
    BulkMail2Inbox
    ButtonFacade
    ClassIcons
    Doom_CooldownPulse
    Gatherer
    Gatherer_HUD
    Ace3
    MoveAnything
    NeedToKnow
    OmniCC
    OneBag3
    OneBank3
    Postal
    PowerAuras
    SexyMap
    SlideBar
    SDM
    !Swatter
    !MoncaiCompare
    + 1 мой
    [свернуть]

    ...в произвольное время (зависимость не найдена, с виду случайным образом) начала появляться ошибка LUA с информированием о том, что функция TargetNearest не может быть вызвана аддоном. Зная, что функция TargetNearest в принципе может вызываться только интерфейсом Blizzard (точнее вызываться то может, а исполняться нет) и не найдя зависимости с установленными аддонами, предположил, что возможно она может понадобиться разве что в Gatherer и то с большой натяжкой.

    Сделал поиск по тексту значения 'TargetNearest' в папке Interface\AddOns и с удивлением не обнаружил ни единой записи. Что в принципе означает, что не один из аддонов в коде не использовал эту функцию. И я до сих пор не знаю что именно вызывало эту ошибку LUA.

    Мне не хотелось отключать аддоны по-одному, так как это просто неэффективно из-за спонтанности возникновения данной ошибки (могла появиться через час игры, могла через 5 минут, а могла и не появиться вовсе). Поэтому, владея LUA и опытом написания аддонов я решил: Так как в коде самой ошибки не пишется, каким именно аддоном она вызвана, поэтому я просто перепишу функцию TargetNearest, а конкретно сделаю обертку над ней. Что я и сделал, добавив в свой аддон следующий код:

    Код:
    local origTargetNearest = TargetNearest
    TargetNearest = function(...)
    	DEFAULT_CHAT_FRAME:AddMessage("TargetNearest is called", 1.0, 0.0, 0.0);
    	DEFAULT_CHAT_FRAME:AddMessage(debug.traceback(), 1.0, 0.0, 0.0);
    	origTargetNearest(...)
    end
    Что должен делать этот код:
    1. Сохранять ссылку на оригинальную функцию TargetNearest.
    2. Присваивать функции TargetNearest новую, мою функцию.
    3. Вызывать мою функцию каждый раз, когда происходит вызов функции TargetNearest.
    4. Что делает моя функция:
    - Выводит красным цветом, что "TargetNearest вызвана"
    - Выводит красным цветом полную цепочку вызова функции (код: debug.traceback()). В программировании это называется stack trace, с помощью которого я бы мог проследить в каком точно месте возникает данная ошибка.
    5. Вызывать оригинальную функцию TargetNearest.

    Вот собственно и все. После обновления моего аддона и перегрузки интерфейса (/reload) меня выкидывает.

    --------------
    После прочтения FAQ и захода в личный кабинет я обнаружил причину:
    "Warden Anticheat Violation: Lua Unlocker (CheckId: 800) (забанил Warden Anticheat)"
    Загуглил, что такое Lua Unlocker. Это программа, которая разблокирует защищенные функции WoW API, которые могут использоваться только интерфейсом Blizzard.

    Я понимаю, почему сработал Warden Anticheat. Судя по всему, по триггеру 800 (CheckId: 800). Хоть это и ложное срабатывание в данном случае, но фраза "лучше перебдеть, чем недобдеть" в данном случае весьма уместна. Но, на всякий случай, если Warden все-таки сохраняет в логах файл с кодом, на которые срабатывают триггеры, вот номер строки, на которой находится код в файле в качестве подтверждения его безобидности: 73.

    Я также понимаю, что вряд ли с этим будут разбираться ГМ, так как забанил Warden и не у всех есть знания в программировании.

    Своей вины я не признаю. Потому что, я, как игрок, пользовался возможностями, которые предоставлены клиентом. Написание оберток вокруг стандартных функций WOWAPI является обычной практикой в написании аддонов. В данном случае, чтобы избежать бана, мне, как игроку, требовалось знать технические принципы работы античита Warden, чего естественно я знать не мог. С моральной точки зрения, считаю, что предупреждения было бы достаточно (не от Warden конечно, который банит по внесенным правилам автоматически, а от одного из ГМ, возможно, после разрешения ситуации).

    Поэтому, пусть это история просто послужит опытом для других: Не писать обертки вокруг защищенных функций (Protected Functions), на них срабатывает Warden.

  2. 3 пользователей сказали cпасибо Александр М. за это полезное сообщение:

    megadick (25.08.2018),NoGoodLife (03.12.2019),Полицевский (24.08.2018)

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 03.01.2015, 21:39
  2. Нарушение пользователю Сова Радужнaя: Оскорбления пользователей
    от Сова Радужная в разделе Нарушители форума
    Ответов: 1
    Последнее сообщение: 26.09.2014, 16:52
  3. Ответов: 1
    Последнее сообщение: 09.05.2014, 16:51
  4. Ответов: 1
    Последнее сообщение: 09.02.2014, 18:31
  5. Ответов: 7
    Последнее сообщение: 08.12.2012, 20:31

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •