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

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

Показано с 1 по 7 из 7
  1. #1
    Эксперт
    Регистрация
    26.12.2019
    Сообщений
    581
    Поблагодарил(а)
    26
    Получено благодарностей: 59 (сообщений: 44).
    Репутация: 59

    Нужен аддон

    Чтобы когда я беру кого-то в фокус - анонсило в групп: Focus "Ник" - "Класс".
    Последний раз редактировалось Worldwidex; 02.01.2021 в 20:57.
    Игрок может сменить сервер, но не намерение.
    "Починим сервер вместе!"

  2. #2
    Заблокирован
    Регистрация
    09.06.2016
    Адрес
    Rivne, Ukraine
    Сообщений
    908
    Поблагодарил(а)
    244
    Получено благодарностей: 412 (сообщений: 237).
    Репутация: 412

  3. #3
    Эксперт
    Регистрация
    26.12.2019
    Сообщений
    581
    Поблагодарил(а)
    26
    Получено благодарностей: 59 (сообщений: 44).
    Репутация: 59
    Цитата Сообщение от Sproody Посмотреть сообщение
    Спамит по 50 раз - выкидывает из игры и убивает персонажа.(

    - - - Updated - - -

    Уже не 1 раз сталкиваюсь чтобы сделать 1-кратность какого-то действия в аддоне вместо спама, может кто-нибудь закрепит гайд как это делать?
    1: Способ это таймеры когда есть кулдауны и таймауты
    2: Когда их нету ... ?
    Последний раз редактировалось Worldwidex; 02.01.2021 в 21:05.
    Игрок может сменить сервер, но не намерение.
    "Починим сервер вместе!"

  4. #4
    Гуру
    Регистрация
    18.07.2014
    Сообщений
    457
    Поблагодарил(а)
    210
    Получено благодарностей: 339 (сообщений: 117).
    Репутация: 339
    Код:
    Spam = {}
    function Spam:AntiSpam(time, id)
        if GetTime() -
            (id and (self["lastAntiSpam" .. tostring(id)] or 0) or
                self["lastAntiSpam"] or 0) > (time or 2.5) then
            if id then
                self["lastAntiSpam" .. tostring(id)] = GetTime()
            else
                self["lastAntiSpam"] = GetTime()
            end
            return true
        else
            return false
        end
    end
    Код:
    if Spam:AntiSpam(time, id) then
        ...
    end
    time - время минимального повторения, id - любой стринг/число для идентификации повторения (например spellId или GUID)

  5. #5
    Эксперт
    Регистрация
    26.12.2019
    Сообщений
    581
    Поблагодарил(а)
    26
    Получено благодарностей: 59 (сообщений: 44).
    Репутация: 59
    Цитата Сообщение от Arsum Посмотреть сообщение
    time - время минимального повторения, id - любой стринг/число для идентификации повторения (например spellId или GUID)
    Т.е. мне нужно объявить сначала где-то локальные id и time?
    А то что-то не срабатывает
    Игрок может сменить сервер, но не намерение.
    "Починим сервер вместе!"

  6. #6
    Гуру
    Регистрация
    18.07.2014
    Сообщений
    457
    Поблагодарил(а)
    210
    Получено благодарностей: 339 (сообщений: 117).
    Репутация: 339
    Код:
    local GetTime, SendChatMessage = GetTime, SendChatMessage
    local UnitExists, UnitName, UnitClass = UnitExists, UnitName, UnitClass
    local PATTERN = "Focus: $name $class"
    local frame = CreateFrame("frame")
    local Spam = {}
    function Spam:AntiSpam(time, id)
        if GetTime() -
            (id and (self["lastAntiSpam" .. tostring(id)] or 0) or
                self["lastAntiSpam"] or 0) > (time or 2.5) then
            if id then
                self["lastAntiSpam" .. tostring(id)] = GetTime()
            else
                self["lastAntiSpam"] = GetTime()
            end
            return true
        else
            return false
        end
    end
    frame:RegisterEvent("PLAYER_FOCUS_CHANGED")
    frame:SetScript("OnEvent",function()
        if UnitExists("focus") and UnitExists("player") then
            local name = UnitName("focus")
            local class = UnitClass("focus")
            if name and name ~= "" and class and Spam:AntiSpam(0.1, name..class) then
                SendChatMessage(PATTERN:gsub("$name",name):gsub("$class",class),"PARTY")
            end
        end
    end)
    ваще вот так должно работать, я хз как у тебя по 50 раз в сек спамит
    Последний раз редактировалось Barsoom; 03.01.2021 в 05:17.

  7. 1 пользователь сказал cпасибо Barsoom за это полезное сообщение:

    Worldwidex (03.01.2021)

  8. #7
    Эксперт
    Регистрация
    26.12.2019
    Сообщений
    581
    Поблагодарил(а)
    26
    Получено благодарностей: 59 (сообщений: 44).
    Репутация: 59
    Да спасибо, теперь всё работает
    Игрок может сменить сервер, но не намерение.
    "Починим сервер вместе!"

Похожие темы

  1. Нужен адон истории арен для солоки
    от всебред в разделе Аддоны
    Ответов: 0
    Последнее сообщение: 28.11.2019, 06:36
  2. Нужен аддон для профф
    от МечтаТаурена в разделе Аддоны
    Ответов: 3
    Последнее сообщение: 11.04.2018, 03:01
  3. Ответов: 1
    Последнее сообщение: 01.05.2017, 10:02
  4. Ответов: 1
    Последнее сообщение: 30.04.2017, 22:07
  5. Ответов: 5
    Последнее сообщение: 21.10.2016, 09:07

Ваши права

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