Друид

Обмен опытом по созданию ротаций
eminsk
Сообщения: 205
Зарегистрирован: 19 фев 2016, 17:15

Re: Друид

Сообщение eminsk » 25 ноя 2019, 01:38

бфа медведь кот сова хил.rar
(39.43 КБ) 51 скачивание

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

function CheckUseItem(itemId)
local status = false;
local count = GetItemCount(itemId);
    if (count or 0) > 0 then
        local start,duration,enable = GetItemCooldown(itemId);
        if start == 0 and duration == 0 and enable then
            status = true;
        end
end
return status;
end
AzeriteSpells = {}

local function GetAzeriteSpells()
  local slotIDs = {1, 3, 5} -- Inventory slots with azerite talents
  for _,slot in ipairs(slotIDs) do
    if GetInventoryItemID("player",slot)~=nil then
      local itemLocation = ItemLocation:CreateFromEquipmentSlot(slot)
      if C_AzeriteEmpoweredItem.IsAzeriteEmpoweredItem(itemLocation) then
        local  allTierInfo = C_AzeriteEmpoweredItem.GetAllTierInfo(itemLocation)
        for _, tier in ipairs(allTierInfo) do
          for _, azeritePowerID in ipairs(tier.azeritePowerIDs) do
            if C_AzeriteEmpoweredItem.IsPowerSelected(itemLocation, azeritePowerID) then
              AzeriteSpells[C_AzeriteEmpoweredItem.GetPowerInfo(azeritePowerID).spellID]=true
            end
          end
        end
      end
    end
  end
end

local Eye = CreateFrame("Frame")
Eye:RegisterEvent("PLAYER_ENTERING_WORLD")
Eye:RegisterEvent("PLAYER_EQUIPMENT_CHANGED")
Eye:RegisterEvent("PLAYER_SPECIALIZATION_CHANGED")
Eye:RegisterEvent("AZERITE_EMPOWERED_ITEM_SELECTION_UPDATED")
Eye:SetScript("OnEvent", 
  function(self, event, ...)
    if event == "PLAYER_EQUIPMENT_CHANGED" then
      GetAzeriteSpells()
    elseif event == "AZERITE_EMPOWERED_ITEM_SELECTION_UPDATED" then
      GetAzeriteSpells()
    elseif event == "PLAYER_SPECIALIZATION_CHANGED" then
      GetAzeriteSpells()
    elseif event == "PLAYER_ENTERING_WORLD" then
      GetAzeriteSpells()
      Eye:UnregisterEvent("PLAYER_ENTERING_WORLD")
    end
  end
)
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

stormi47855
Сообщения: 212
Зарегистрирован: 25 ноя 2016, 10:13

Re: Друид

Сообщение stormi47855 » 02 дек 2019, 07:48

eminsk писал(а):
25 ноя 2019, 01:38
бфа медведь кот сова хил.rar

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

function CheckUseItem(itemId)
local status = false;
local count = GetItemCount(itemId);
    if (count or 0) > 0 then
        local start,duration,enable = GetItemCooldown(itemId);
        if start == 0 and duration == 0 and enable then
            status = true;
        end
end
return status;
end
AzeriteSpells = {}

local function GetAzeriteSpells()
  local slotIDs = {1, 3, 5} -- Inventory slots with azerite talents
  for _,slot in ipairs(slotIDs) do
    if GetInventoryItemID("player",slot)~=nil then
      local itemLocation = ItemLocation:CreateFromEquipmentSlot(slot)
      if C_AzeriteEmpoweredItem.IsAzeriteEmpoweredItem(itemLocation) then
        local  allTierInfo = C_AzeriteEmpoweredItem.GetAllTierInfo(itemLocation)
        for _, tier in ipairs(allTierInfo) do
          for _, azeritePowerID in ipairs(tier.azeritePowerIDs) do
            if C_AzeriteEmpoweredItem.IsPowerSelected(itemLocation, azeritePowerID) then
              AzeriteSpells[C_AzeriteEmpoweredItem.GetPowerInfo(azeritePowerID).spellID]=true
            end
          end
        end
      end
    end
  end
end

local Eye = CreateFrame("Frame")
Eye:RegisterEvent("PLAYER_ENTERING_WORLD")
Eye:RegisterEvent("PLAYER_EQUIPMENT_CHANGED")
Eye:RegisterEvent("PLAYER_SPECIALIZATION_CHANGED")
Eye:RegisterEvent("AZERITE_EMPOWERED_ITEM_SELECTION_UPDATED")
Eye:SetScript("OnEvent", 
  function(self, event, ...)
    if event == "PLAYER_EQUIPMENT_CHANGED" then
      GetAzeriteSpells()
    elseif event == "AZERITE_EMPOWERED_ITEM_SELECTION_UPDATED" then
      GetAzeriteSpells()
    elseif event == "PLAYER_SPECIALIZATION_CHANGED" then
      GetAzeriteSpells()
    elseif event == "PLAYER_ENTERING_WORLD" then
      GetAzeriteSpells()
      Eye:UnregisterEvent("PLAYER_ENTERING_WORLD")
    end
  end
)
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
брат а можно хоть какоето описание таланты какие брал к примеру и что меняют переключатели в каждой ветке -_-

Byefar
Сообщения: 9
Зарегистрирован: 27 май 2016, 08:11

Re: Друид

Сообщение Byefar » 23 фев 2020, 08:10

Народ подскажите, как сделать так чтоб Звездопад кастовался сразу в таргет.

Reqqque
Сообщения: 104
Зарегистрирован: 01 дек 2018, 20:28

Re: Друид

Сообщение Reqqque » 23 фев 2020, 13:11

Byefar писал(а):
23 фев 2020, 08:10
Народ подскажите, как сделать так чтоб Звездопад кастовался сразу в таргет.
В таргет нельзя, можно только под курсором
/cast [@cursor] Звездопад

Byefar
Сообщения: 9
Зарегистрирован: 27 май 2016, 08:11

Re: Друид

Сообщение Byefar » 23 фев 2020, 21:40

А как тогда сделать, чтоб бот кастовал Звездопад, а куда его применять я сам уже выбирал, в том плане что когда появляется зеленый круг области Звездопада, чтоб бот остонавливалься и ждал пока я сам выберу и нажму. А не перебивал каст. Надеюсь, както понятно обрисовал проблему.

Reqqque
Сообщения: 104
Зарегистрирован: 01 дек 2018, 20:28

Re: Друид

Сообщение Reqqque » 24 фев 2020, 03:57

Byefar писал(а):
23 фев 2020, 21:40
А как тогда сделать, чтоб бот кастовал Звездопад, а куда его применять я сам уже выбирал, в том плане что когда появляется зеленый круг области Звездопада, чтоб бот остонавливалься и ждал пока я сам выберу и нажму. А не перебивал каст. Надеюсь, както понятно обрисовал проблему.
Просто поставить цель на звездопаде таргет
Когда бот дойдет до него и сможет его кастануть он не будет перебивать, а будет ждать каста если выше по приоритету в ротации нету спелов которые он может нажать

lilaa
Сообщения: 16
Зарегистрирован: 03 сен 2019, 12:52

Re: Друид

Сообщение lilaa » 24 фев 2020, 12:49

Изображение
либо начало ротации, либо к каждой способности, которая не должна сбивать звездопад

Kopcap4g
Сообщения: 54
Зарегистрирован: 06 янв 2019, 19:00

Re: Друид

Сообщение Kopcap4g » 08 мар 2020, 17:37

Сборка Баланс Легион 7.3.5 Не судите строго ;)
Вложения
Баланс.rar
(4.42 КБ) 4 скачивания

Anry
Сообщения: 2
Зарегистрирован: 04 мар 2020, 17:10

Re: Друид

Сообщение Anry » 15 мар 2020, 09:13

Под бфа 8.2 есть?

grettens
Сообщения: 2
Зарегистрирован: 12 мар 2020, 17:31

Re: Друид

Сообщение grettens » 15 мар 2020, 19:16

eminsk писал(а):
25 ноя 2019, 01:38
бфа медведь кот сова хил.rar

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

function CheckUseItem(itemId)
local status = false;
local count = GetItemCount(itemId);
    if (count or 0) > 0 then
        local start,duration,enable = GetItemCooldown(itemId);
        if start == 0 and duration == 0 and enable then
            status = true;
        end
end
return status;
end
AzeriteSpells = {}

local function GetAzeriteSpells()
  local slotIDs = {1, 3, 5} -- Inventory slots with azerite talents
  for _,slot in ipairs(slotIDs) do
    if GetInventoryItemID("player",slot)~=nil then
      local itemLocation = ItemLocation:CreateFromEquipmentSlot(slot)
      if C_AzeriteEmpoweredItem.IsAzeriteEmpoweredItem(itemLocation) then
        local  allTierInfo = C_AzeriteEmpoweredItem.GetAllTierInfo(itemLocation)
        for _, tier in ipairs(allTierInfo) do
          for _, azeritePowerID in ipairs(tier.azeritePowerIDs) do
            if C_AzeriteEmpoweredItem.IsPowerSelected(itemLocation, azeritePowerID) then
              AzeriteSpells[C_AzeriteEmpoweredItem.GetPowerInfo(azeritePowerID).spellID]=true
            end
          end
        end
      end
    end
  end
end

local Eye = CreateFrame("Frame")
Eye:RegisterEvent("PLAYER_ENTERING_WORLD")
Eye:RegisterEvent("PLAYER_EQUIPMENT_CHANGED")
Eye:RegisterEvent("PLAYER_SPECIALIZATION_CHANGED")
Eye:RegisterEvent("AZERITE_EMPOWERED_ITEM_SELECTION_UPDATED")
Eye:SetScript("OnEvent", 
  function(self, event, ...)
    if event == "PLAYER_EQUIPMENT_CHANGED" then
      GetAzeriteSpells()
    elseif event == "AZERITE_EMPOWERED_ITEM_SELECTION_UPDATED" then
      GetAzeriteSpells()
    elseif event == "PLAYER_SPECIALIZATION_CHANGED" then
      GetAzeriteSpells()
    elseif event == "PLAYER_ENTERING_WORLD" then
      GetAzeriteSpells()
      Eye:UnregisterEvent("PLAYER_ENTERING_WORLD")
    end
  end
)
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
изза твоего кода аддон ломается и приходится все переустанавливать.а если не ставить код он тупо спамит омоложение без остановки.

Ответить

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

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