Страница 1 из 2

Таланты персонажа: проверка наличия.

Добавлено: 26 янв 2019, 18:53
deNoor
В ротации в белом поле своего кода нужно вставить это (или обновить вручную вдумчиво, если уже делаете реакцию на события).

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

Talents = {{}, {}, {}, {}, {}, {}, {}}
Talents.pvp = {}

local function GetTalents()
  for tier=1,7 do
    for value=1,3 do
      Talents[tier][value] = (select(4, GetTalentInfo(tier, value, 1)))
    end
  end
  for slotN, talentID in ipairs (C_SpecializationInfo.GetAllSelectedPvpTalentIDs()) do
    Talents.pvp[talentID] = true
  end
end

local Eye = CreateFrame("Frame")
Eye:RegisterEvent("PLAYER_ENTERING_WORLD")
Eye:RegisterEvent("PLAYER_SPECIALIZATION_CHANGED")
Eye:RegisterEvent("PLAYER_TALENT_UPDATE")
Eye:SetScript("OnEvent", 
  function(self, event, ...)
    if event == "PLAYER_TALENT_UPDATE" then
      GetTalents()
    elseif event == "PLAYER_SPECIALIZATION_CHANGED" then
      GetTalents()
    elseif event == "PLAYER_ENTERING_WORLD" then
      GetTalents()
      Eye:UnregisterEvent("PLAYER_ENTERING_WORLD")
    end
  end
)

function inPvP()
  return C_PvP.IsWarModeActive() or C_PvP.IsPVPMap()
end
Дальше в ротации можно добавлять проверки типа "пользовательский код с галкой bool и выбором TRUE", где в поле вставляется Talents[row][position].
Например: Talents[5][2]
TalentsExample.jpg
TalentsExample.jpg (24.4 КБ) 14700 просмотров
Тут row это тир (строчка) в окне талантов, а position это номер 1, 2, 3 таланта, который можно выбрать в этой строчке:
TalentsIngame.jpg
TalentsIngame.jpg (92.57 КБ) 14700 просмотров
Если талант в ячейке выбран, то для его позиции в таблице будет true.

Проверить, правильно ли сейчас эта таблица видит ваши текущие таланты можно, написав в чат это + Enter:

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

/dump Talents
Для конкретного таланта:

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

/dump Talents[5][2]

Для проверки пвп таланта та же схема пользовательского условия, но вложенная таблица Talents.pvp[talentID]
Например: Talents.pvp[3506]
ID пвп таланта нужно смотреть в игре с аддоном IDtip или на вовхеде.
Помните, что выбранные пвп таланты определяются всегда, но работают только с активным вармодом или в пвп-инстансах. Вам нужно в проверке добавлять определение вармода
C_PvP.IsWarModeActive() — возвращает true или false в зависимости от вашего статуса вармода.
C_PvP.IsPVPMap() — возвращает true или false в зависимости от нахождения на пвп карте. Должно помочь определять пвп-инстансы.
Проверка обоих случаев объединена в функцию inPvP(), которую нужно вызывать вместе с проверкой пвп таланта.
Кто пвпшится, тот сам найдёт, как правильно определяется активный пвп режим, при котором пвп таланты работают.

Для вывода только таблицы пвп талантов:

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

/dump Talents.pvp
Для проверки наличия конкретного пвп таланта:

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

/dump Talents.pvp[3506]
Пример условия с пвп талантом:

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

inPvP() and Talents.pvp[3506]

Re: (пве) Таланты персонажа: проверка наличия.

Добавлено: 26 янв 2019, 22:45
Lil
Ух, теперь F1-F4 освободятся под что-нибудь другое :D

Re: (пве) Таланты персонажа: проверка наличия.

Добавлено: 17 апр 2019, 13:30
deNoor
Добавлены пвп таланты в виде вложенной таблицы внутри пве талантов. Изменения отражены в функции и добавлены пояснения с инструкциями в первом посте.
Получение и обновление при смене пвп талантов тоже автоматическое.

Re: Таланты персонажа: проверка наличия.

Добавлено: 03 май 2019, 02:38
uaz266
Проще же можно сделать,одна строчка и программа будет сама проверять доступен этот талант или нет

Re: Таланты персонажа: проверка наличия.

Добавлено: 10 май 2019, 05:56
nefas
какая строчка то ?

Re: Таланты персонажа: проверка наличия.

Добавлено: 21 ноя 2022, 02:06
EnterBrain
Добавлена проверка из коробки для всех дополнений.
Изображение

просмотреть таблицу талантов можно в игре: /dump PlayerTalents

Re: Таланты персонажа: проверка наличия.

Добавлено: 21 ноя 2022, 08:36
максим
после этой обновы перестал работать бот на личе! не знаю в чем дело чекни плиз

Re: Таланты персонажа: проверка наличия.

Добавлено: 21 ноя 2022, 09:08
EnterBrain
максим писал(а):
21 ноя 2022, 08:36
после этой обновы перестал работать бот на личе! не знаю в чем дело чекни плиз
Каком именно личе и какие симптомы?

Re: Таланты персонажа: проверка наличия.

Добавлено: 21 ноя 2022, 09:16
максим
бот не определяется игрой даже переключателей нет сверху! На вотлк классик, что странно на ритейл версии все норм работает. а на классической не как работать не хочет даже через собственный аддон, вчера все нормально определялось!

Re: Таланты персонажа: проверка наличия.

Добавлено: 21 ноя 2022, 09:19
максим
EnterBrain писал(а):
21 ноя 2022, 09:08
максим писал(а):
21 ноя 2022, 08:36
после этой обновы перестал работать бот на личе! не знаю в чем дело чекни плиз
Каком именно личе и какие симптомы?
в Дискрорде тоже пару человек это обсуждали вот я и подумал что не по моей вине бот отьехал!