как работает ActiveLossOfControl?

Аспи
Сообщения: 25
Зарегистрирован: 24 мар 2024, 22:44

как работает ActiveLossOfControl?

Сообщение Аспи » 17 фев 2025, 20:46

Кто может объяснить как это реализовать на длань свободы.
Понятно что данный код надо писать в нижнем поле.

Код: Выделить всё

function ActiveLossOfControl(typenumber, duration)
    local type = "STUN_MECHANIC"
    if typenumber == 1 then
        type = "STUN_MECHANIC"
    elseif typenumber == 2 then
        type = "DISARM"
    elseif typenumber == 3 then
        type = "PACIFYSILENCE"
    elseif typenumber == 4 then
        type = "SILENCE"
    elseif typenumber == 5 then
        type = "PACIFY"
    elseif typenumber == 6 then
        type = "ROOT"
    elseif typenumber == 7 then
        type = "STUN"
    elseif typenumber == 8 then
        type = "FEAR_MECHANIC"
    elseif typenumber == 9 then
        type = "FEAR"
    elseif typenumber == 10 then
        type = "CHARM"
    elseif typenumber == 11 then
        type = "CONFUSE"
    elseif typenumber == 12 then
        type = "POSSESS"
    elseif typenumber == 13 then
        type = "SCHOOL_INTERRUPT"
    end
    
    for i = 1, C_LossOfControl.GetActiveLossOfControlDataCount() do
        local data = C_LossOfControl.GetActiveLossOfControlData(i)
        if data then
            if data.locType == type then
                if duration ~= nil and data.startTime and data.duration then
                    local expirationTime = data.startTime + data.duration
                    if expirationTime > duration then
                        return true
                    end
                else
                    return true
                end
            end
        end
    end
    return false
end
а вот пользовательском коде не понял
пробовал ActiveLossOfControl(typenumber, duration) TRUE ротация виснет
пробовал ActiveLossOfControl TRUE спамит по откату

Аспи
Сообщения: 25
Зарегистрирован: 24 мар 2024, 22:44

Re: как работает ActiveLossOfControl?

Сообщение Аспи » 17 фев 2025, 22:16

следом вопрос как это юзать на союзников?

noname123
Сообщения: 208
Зарегистрирован: 19 мар 2020, 09:15

Re: как работает ActiveLossOfControl?

Сообщение noname123 » 18 фев 2025, 08:58

Аспи писал(а):
17 фев 2025, 20:46
пробовал ActiveLossOfControl(typenumber, duration) TRUE ротация виснет
Ну конечно она у тебя зависнет, ты не указал то что проверяешь. В твоём случае "typenumber" и "duration" должны являться конкретной единицей для проверки.
"typenumber" - номер типа контроля (из перечисленных в коде).
"duration" - соответственно минимальная длительность этого контроля (например если поставить 4, то будет срабатывать на контроль от 4 секунд и более)
Аспи писал(а):
17 фев 2025, 20:46
Кто может объяснить как это реализовать на длань свободы.
ActiveLossOfControl(6,4) TRUE
6 это тип контроля "ROOT" из пользовательского кода.
4 это количество минимального оставшегося времени контроля.
Аспи писал(а):
17 фев 2025, 22:16
следом вопрос как это юзать на союзников?
Твой пользовательский код проверяет только тебя, на союзников он работать не будет.

Если ты хочешь с союзников снимать замедление, то можешь это делать через проверку скорости бега.
Вот пример как это на монахе реализовано.
Изображение
(0;100) это данные скорости бега. Больше нуля чтобы не срабатывало когда чар стоит на месте и меньше 100% скорости. Максимальную скорость можешь изменить под свои нужды (лично я у себя ставил 50). Руты которые стопают полностью снимать через этот код не получится, поэтому дебафы придётся записывать самостоятельно если есть в этом необходимость.

Аспи
Сообщения: 25
Зарегистрирован: 24 мар 2024, 22:44

Re: как работает ActiveLossOfControl?

Сообщение Аспи » 18 фев 2025, 12:06

Спасибо проверю.
Я так и понял, только не понял за время.
Я читал этот пост про скорость.
А у тебя была такая проблема юзается когда идёшь спиной? Я так понял там надо исключить от 35 до 36.

noname123
Сообщения: 208
Зарегистрирован: 19 мар 2020, 09:15

Re: как работает ActiveLossOfControl?

Сообщение noname123 » 18 фев 2025, 13:33

Аспи писал(а):
18 фев 2025, 12:06
А у тебя была такая проблема юзается когда идёшь спиной? Я так понял там надо исключить от 35 до 36.
Да, хождение назад тоже будет определяться как замедленная скорость. Исключение данного порога решит проблему, но тут надо понимать что этот расчёт будет работать только при условии что у тебя бег будет равен 100% скорости (т.е. у тебя нету ни одного модификатора на увеличение скорости передвижения). Если допустим у тебя какие то вещи дают прибавку к скорости передвижения, то этот порог от 35 до 36 будет смещён на допустим от 36 до 37 и т.д. В случае самостоятельного использования ты можешь контролировать это зная что у тебя нету модификаторов к скорости бега, но если ты планируешь снимать замедление с союзников, то из-за наличия данного модификатора на шмотках у союзника этот костыль работать уже не будет и его ходьба назад будет иметь другой числовой порог и соответственно будет тригерить на себя использование твоей длани свободы. Когда я использовал это с учётом моих союзников, то убирал порог 35-40 (или 30-40, не помню уже точно) и никаких неудобств не замечал.

Аспи
Сообщения: 25
Зарегистрирован: 24 мар 2024, 22:44

Re: как работает ActiveLossOfControl?

Сообщение Аспи » 18 фев 2025, 14:43

Спасибо огромное за отзывчивость.
Единственный момент интересует в том посте на монаха, там на скриншоте где исключения 35 и 36.
(0;35] и [36;100)
Скобки так должны быть или
(0;35) И (36;100)
(Может быть это зависит от того что между ними or или anb)

noname123
Сообщения: 208
Зарегистрирован: 19 мар 2020, 09:15

Re: как работает ActiveLossOfControl?

Сообщение noname123 » 18 фев 2025, 16:24

Аспи писал(а):
18 фев 2025, 14:43
Спасибо огромное за отзывчивость.
Единственный момент интересует в том посте на монаха, там на скриншоте где исключения 35 и 36.
(0;35] и [36;100)
Скобки так должны быть или
(0;35) И (36;100)
(Может быть это зависит от того что между ними or или anb)
Да без проблем.
Ты правильно подметил, там опечатка в скрине. Должно два значения быть через "or". (0;35) or [36;100) получается определяет до 35 и от 36.
Круглая скобка это значение до этой цифры не включая её, квадратная включает в себя указанное значение.

Аспи
Сообщения: 25
Зарегистрирован: 24 мар 2024, 22:44

Re: как работает ActiveLossOfControl?

Сообщение Аспи » 20 фев 2025, 11:21

Чё то у мня не пошло с проверкой ROOT.

Код: Выделить всё

ActiveLossOfControl(6,4) TRUE
Все равно вся ротацыя останавливается.
Может есть рабочий вариант.

noname123
Сообщения: 208
Зарегистрирован: 19 мар 2020, 09:15

Re: как работает ActiveLossOfControl?

Сообщение noname123 » 20 фев 2025, 21:13

Аспи писал(а):
20 фев 2025, 11:21
Чё то у мня не пошло с проверкой ROOT.

Код: Выделить всё

ActiveLossOfControl(6,4) TRUE
Все равно вся ротацыя останавливается.
Может есть рабочий вариант.
Изображение

Код: Выделить всё

function ActiveLossOfControl(typenumber, duration)
    local type = "STUN_MECHANIC"
    if typenumber == 1 then
        type = "STUN_MECHANIC"
    elseif typenumber == 2 then
        type = "DISARM"
    elseif typenumber == 3 then
        type = "PACIFYSILENCE"
    elseif typenumber == 4 then
        type = "SILENCE"
    elseif typenumber == 5 then
        type = "PACIFY"
    elseif typenumber == 6 then
        type = "ROOT"
    elseif typenumber == 7 then
        type = "STUN"
    elseif typenumber == 8 then
        type = "FEAR_MECHANIC"
    elseif typenumber == 9 then
        type = "FEAR"
    elseif typenumber == 10 then
        type = "CHARM"
    elseif typenumber == 11 then
        type = "CONFUSE"
    elseif typenumber == 12 then
        type = "POSSESS"
    elseif typenumber == 13 then
        type = "SCHOOL_INTERRUPT"
    end
    
    for i = 1, C_LossOfControl.GetActiveLossOfControlDataCount() do
        local data = C_LossOfControl.GetActiveLossOfControlData(i)
        if data then
            if data.locType == type then
                if duration ~= nil and data.startTime and data.duration then
                    local expirationTime = data.startTime + data.duration
                    if expirationTime > duration then
                        return true
                    end
                else
                    return true
                end
            end
        end
    end
    return false
end
Перепроверь, на всякий случай и сам код скинул. А версия какая игры на которой ты это делаешь ?

Аспи
Сообщения: 25
Зарегистрирован: 24 мар 2024, 22:44

Re: как работает ActiveLossOfControl?

Сообщение Аспи » 21 фев 2025, 12:37

Походу ты прав. Версия игры у меня лич, на драконе сегодня попробую.
Как я понял
C_LossOfControl.GetActiveLossOfControlDataCount() вот этот запрос на 3.3.5 отсутствует походу и из-за этого все стопается.

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей