Модератор форума: staford11  
Использование Lua скриптов.
mikel17
Скаут
Цитата Punisher45 ()
Не надо придумывать велосипед и перебирать все возможные баблы и прочее. UnitCastingInfo возвращает переменную о защищенности каста, true(1) - защищенный false(0) - не защищен. Ну например можно это использовать в простенькой проверке в блоке условия:
Код
spell, _, _, _, _, _, _, _, interrupt = UnitCastingInfo("unit")
if spell and not interrupt then
CastSpellByName("Зуботычина")
end

Можеш вставить эту проверку UnitCastingInfo в этот скрипт ? Я не могу понять куда  её вставить. В луа новичок.
Код
function Kick(self, elapsed)
  local v1, v2, v3, v4, v5, v6, v7
  v1 = { "target", "focus", "mouseover", "targettarget", "pettarget", "arena1", "arena2", "arena3", "arena4", "arena5", "arenapet1", "arenapet2", "arenapet3", "arenapet4", "arenapet5" }
  for i = 1, #v1 do
    if UnitExists(v1[i]) and UnitCanAttack("player", v1[i]) then
      v2, _, _, _, _, v3, _, _, v4 = UnitCastingInfo(v1[i])
      v5 = { 1766 }
      v6 = { 0.5 }
      for j = 1, #v5 do
        if GetSpellCooldown(v5[j]) == 0 and IsSpellInRange(GetSpellInfo(v5[j]), v1[i]) == 1 then
          if v4 == false or v4 == true and v5   [j]== 47481 then
            v7 = v3/1000 - GetTime()
            if v7 <= v6 [j]then
              CastSpellByName(GetSpellInfo(v5[j]), v1[i])
            end
          end
        end
      end
    end
  end
end

CreateFrame("Frame", "KickFrame")
KickFrame:SetScript("OnUpdate", Kick)
Сообщение # 2341 отредактировано mikel17 - Воскресенье, 11.06.2017, 23:14
sixsixsix999
Скаут
Цитата mikel17 ()
Я не могу понять куда  её вставить

она уже есть в коде, читай хотя бы что в коде написано:

Код
v4 = UnitCastingInfo
Сообщение # 2342 написано 11.06.2017 в 23:18
mikel17
Скаут
Цитата sixsixsix999 ()
она уже есть в коде, читай хотя бы что в коде написано:Код
v4 = UnitCastingInfo
 Я затестил на цирцле(фан) функция не работает бьет каст в бабл, мастер аур и тд
Сообщение # 2343 написано 11.06.2017 в 23:51
sixsixsix999
Скаут
Цитата mikel17 ()
на цирцле(фан) функция не работает бьет каст в бабл, мастер аур и тд

проверь код у себя в сдм, возможно где-то есть лишние пробелы, потому что у меня не бьёт касты в баблы и всё остальное
Сообщение # 2344 написано 11.06.2017 в 23:53
Fqlolxl
Скаут
Здравствуйте. Может кто-то подсказать каким образом можно описать в скрипте использование определенного предмета противником (именно предмета, а не заклинания)? Несколько раз пролистал статьи wowprogramming по api и ивентам но ничего подходящего не нашел. Самый грубый пример использования: тринкет - блайнд. Рассчитываю на вашу помощь).
И еще один вопрос. есть ли какие-то различия между скриптами на 3.3.5а и 5.4.8?
Сообщение # 2345 отредактировано Fqlolxl - Понедельник, 12.06.2017, 04:39
xGhostx
Скаут
Цитата Fqlolxl ()
Здравствуйте. Может кто-то подсказать каким образом можно описать в скрипте использование определенного предмета противником (именно предмета, а не заклинания)? Несколько раз пролистал статьи wowprogramming по api и ивентам но ничего подходящего не нашел. Самый грубый пример использования: тринкет - блайнд. Рассчитываю на вашу помощь).
использование предметов вызывают привязаные к ним заклинания. тринкет например, это спелл "PvP-аксессуар"
Сообщение # 2346 написано 12.06.2017 в 13:07
mikel17
Скаут
Цитата sixsixsix999 ()
проверь код у себя в сдм, возможно где-то есть лишние пробелы, потому что у меня не бьёт касты в баблы и всё остальное


у меня PQR
Сообщение # 2347 написано 12.06.2017 в 13:57
Fqlolxl
Скаут
xGhostx, спасибо за разъяснение. Может теперь кто то проверить данный скрипт на наличие ошибок? Возможности проверить самому пока нет.
Код
SpellBase = {"Каждый за себя", "PVP-аксессуар"}
SpellFrame = CreateFrame("Frame", "FrameSpell", UIParent);
SpellFrame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED");
SpellFrame:SetScript("OnEvent", function(self, event, arg1, arg2, ...)
if(event=="COMBAT_LOG_EVENT_UNFILTERED") then
    for s = 1,#SpellBase do
     local v1, v2, v3
        v1 = { "target", "focus", "mouseover", "targettarget", "pettarget", "arena1", "arena2", "arena3", "arena4", "arena5", "arenapet1", "arenapet2", "arenapet3", "arenapet4", "arenapet5" }
        for i = 1, #v1 do
      if UnitExists(v1[i]) and UnitCanAttack("player", v1[i]) then
            local name = UnitName("player")
            if arg2 == "SPELL_CAST_SUCCESS" and name ~= arg4 and name == arg7 and arg10 == SpellBase [s]then
            local enabled = GetSpellCooldown("Ослепление")
            v2 = { 48160, 48125, 48300, 53382, 48676, 48672 }
            for j=1,#v2 do
               v3 = UnitDebuff(v1[i], v2[j])
                if v3 == 0 then
                        if enabled == 0 then
                        CastSpellByName("Ослепление", v1[i])
   end
   end
   end
   end
   end
   end
   end
end
end)

И опрос знатокам: как можно описать условие того, что целью заклинания является именно мой персонаж? Возможно конечно сделать проверку на то кто находится в таргете противника, но это черевато проблемами, т.к. в 3с если ты, например дашь рефлект в отцу, кастующуюся по фокусу в твоего хила то можешь отправиться в могилу за последующее время отката рефлекта.
Сообщение # 2348 отредактировано Fqlolxl - Вторник, 13.06.2017, 00:33
sixsixsix999
Скаут
Цитата mikel17 ()
у меня PQR

что же ты сразу не сказал?) с PQR я к сожалению не знаком
Сообщение # 2349 написано 13.06.2017 в 12:22
mikel17
Скаут
Цитата sixsixsix999 ()
что же ты сразу не сказал?) с PQR я к сожалению не знаком

я слышал там нужна какая-то программа для запуска сдм на цирцле, не подскажеш что за прога ?
Гагарин у меня не работает, поскольку процесор AMD
Сообщение # 2350 отредактировано mikel17 - Среда, 14.06.2017, 14:29
Punisher45
Капрал
Цитата Fqlolxl ()
опрос знатокам: как можно описать условие того, что целью заклинания является именно мой персонаж?

На уровне функций апи - никак, насколько я знаю
Сообщение # 2351 написано 14.06.2017 в 20:25
Babladin007
Скаут
Привет, подскажите пожалуйсто, как мне к скрипту на диспел добавить проверку дополнительных дебафов, допустим я указал при условии что еесть нейтрализующий яд, я юзаю диспел на пати/себя, как добавить проверку на условный дебаф, чтоб при условии его наличия не давал диспел ) можно в лс, буду очень признателен.
Сообщение # 2352 написано 14.06.2017 в 23:12
Fqlolxl
Скаут
Babladin007,
Signature:
name, rank, icon, count, dispelType, duration, expires, caster, isStealable, nameplateShowPersonal, spellID, canApplyAura, isBossDebuff, _, nameplateShowAll, timeMod, value1, value2, value3 = UnitDebuff("unit", index [, "filter"]) or UnitDebuff("unit", "name" [, "rank" [, "filter"]])
В дальнейшем советую использовать wowprogramming и искать там.
Сообщение # 2353 отредактировано Fqlolxl - Четверг, 15.06.2017, 20:05
mikel17
Скаут
помогите вставить в этот автокик проверку if InteruptEverything чтобы не сбивать все подряд а выбрать только нужные заклинания 
Код
function Kick(self, elapsed)
  local v1, v2, v3, v4, v5, v6, v7
  v1 = { "target", "focus", "mouseover", "targettarget", "pettarget", "arena1", "arena2", "arena3", "arena4", "arena5", "arenapet1", "arenapet2", "arenapet3", "arenapet4", "arenapet5" }
  for i = 1, #v1 do
    if UnitExists(v1[i]) and UnitCanAttack("player", v1[i]) then
      v2, _, _, _, _, v3, _, _, v4 = UnitCastingInfo(v1[i])
      v5 = { 57994 }
      v6 = { 0.5 }
      for j = 1, #v5 do
        if GetSpellCooldown(v5[j]) == 0 and IsSpellInRange(GetSpellInfo(v5[j]), v1[i]) == 1 then
          if v4 == false or v4 == true and v5 [j]== 47481 then
            v7 = v3/1000 - GetTime()
            if v7 <= v6  [j]then
              CastSpellByName(GetSpellInfo(v5[j]), v1[i])
            end
          end
        end
      end
    end
  end
end

CreateFrame("Frame", "KickFrame")
KickFrame:SetScript("OnUpdate", Kick)

у меня PQR , в нем есть вот такие условия 
Код
InteruptEverything = true  --Set to true to interupt everything.

--The bot will only interupt the below spells if the above setting is set to false.
InteruptList = {   --Here you need to add the spell ids of what you want to interupt. seperate with comma
      49276,48782,48785,50464,48378,48443,48071,48063,49273,55458,53007,59172,53759,48160,60043 --Lesser Healing Wave : Rank 9

}
Сообщение # 2354 написано 17.06.2017 в 12:31
ponkal
Скаут
может кто годный пкр на вара/энха/дк скинуть? 548
Сообщение # 2355 написано 18.06.2017 в 22:14
sixsixsix999
Скаут
Решил попробовать сделать скрипт на автодиспелл для хпала, но не работает. Скрипт должен делать следующее: если у меня > 50% хп и у юнита из базы v1, на котором висит дебаф из debuffbase, тоже > 50% хп, то каст "очищение" на нужный юнит. Проверка на хп необходима, что бы диспелл не спамился в те моменты, когда нужно хилить. Еще хотелось бы добавить проверку на враждебность таргета, что бы скрипт не пытался диспелить с врагов (очищение диспелит только с союзников)
Вот код, который я сделал:
Код
function Dispell(self, elapsed)
local v1, debuffbase
  v1 = { "target", "player", "party1", "party2", "party3", "party4", "party5" }
  for i = 1, #v1 do
if UnitHealth("player")/UnitHealthMax("player") > 0.50 and UnitHealth(v1[i])/UnitHealthMax(v1[i]) > 50 then                    
      debuffbase = {"Кольцо льда", "Лик смерти", "Глубокая заморозка", "Превращение", "Молот правосудия"}
      for j = 1, #debuffbase do
        if IsSpellInRange("Очищение", v1[i]) == 1 and UnitDebuff(v1[i], debuffbase[j]) then
              CastSpellByName("Очищение", v1[i])
            end
          end
        end
      end
    end
CreateFrame("Frame", "DispellFrame")
DispellFrame:SetScript("OnUpdate", Dispell)


Код "слепил" из частей скриптов, которые есть в этой теме ну и добавил своего не много, укажите на ошибки пожалуйста и помогите их исправить, что бы всё заработало smile Базу дебафов уже собрал, не стал вставлять её полностью сюда)
Если вдруг в теме уже выкладывался скрипт на диспелл определенных дебафов с определенных юнитов, то скиньте ппожалуйста, с меня плюсик smile
Сообщение # 2356 отредактировано sixsixsix999 - Среда, 21.06.2017, 11:42
Fqlolxl
Скаут
sixsixsix999, немного смущает условие
Код
UnitHealth(v1[i])/UnitHealthMax(v1[i]) > 50 then
это отношение не может быть больше единицы, насколько я понимаю
Сообщение # 2357 написано 25.06.2017 в 11:37
VxtMkr
Скаут
Сообщение # 2358 написано 25.06.2017 в 21:15
sixsixsix999
Скаут
всем спасибо за ответы, чуть позже проверю всё и отпишу о результате smile

Добавлено (26.06.2017, 02:04)
---------------------------------------------
отлично работает, спасибо за помощь smile плюсики кинул)

Добавлено (27.06.2017, 17:07)
---------------------------------------------
ребят, кто поможет найти и исправить ошибку?
Код
function Dispell(self, elapsed)
  local v1, v2, v3, v4
  v1 = { "target", "player", "party1", "party2", "party3", "party4", "party5" }
    for i = 1, #v1 do
    if UnitExists(v1[i]) and not UnitDebuff(v1[i],"Смерч") then
        v2 = {"Кольцо льда", "Лик смерти", "Глубокая заморозка", "Превращение", "Молот правосудия", "Обморожение", "Ледяная стрела", "Конус холода", "Ледяные оковы", "Ненасытная стужа", "Замедление", "Стрела ледяного огня", "Окоченение", "Глубинный ужас", "Ментальный крик", "Калечащий яд", "Нейтрализующий яд VII", "Гнев деревьев", "Символ пламени тьмы", "Страх", "Соблазн", "Неистовство тьмы", "Огненный шлейф", "Всепожирающая чума", "Оковы земли", "Эффект замораживающей стрелы", "Дыхание дракона", "Щит мстителя", "Жертвенный огонь", "Укус змеи", "Удержание", "Зараженные раны", "Хватка земли", "Вой ужаса", "Ледяной шок", "Ночной кошмар", "Шип", "Покаяние", "Сеть"}
      for j = 1, #v2 do
          if UnitHealth("target") / UnitHealthMax("target") * 100 >= 50 and UnitHealth(v1[i]) / UnitHealthMax(v1[i]) * 100 >= 50 and UnitDebuff(v1[i], v2[j]) and not UnitDebuff(v1[i],"Нестабильное колдовство") and IsSpellInRange("Очищение", v1[i]) == 1 then
            CastSpellByName("Очищение", v1[i])
         end
   for с = 1, #v1 do
    if UnitExists(v1[с]) and not UnitDebuff(v1[с],"Смерч") then
         v3 = {"Кольцо льда", "Обморожение", "Ледяная стрела", "Конус холода", "Стрела ледяного огня", "Окоченение","Калечащий яд", "Удержание", "Зараженные раны", "Хватка земли", "Пронзительный вой", "Аура ледяной ловушки", "Засада", "Осквернение"}
         for f = 1, #v3 do
          if UnitHealth(v1[с]) / UnitHealthMax(v1[с]) * 100 >= 25 and UnitDebuff(v1[с], v3[f]) and GetSpellCooldown("Длань свободы")==0 and IsSpellInRange("Длань свободы", v1[с]) == 1 then
            CastSpellByName("Длань свободы", v1[с])
      end
   for e = 1, #v1 do
    if UnitExists(v1[e]) and not UnitDebuff(v1[e],"Смерч") then
      v4 = {"Смертельный удар", "Прицельный выстрел", "Нейтрализующий яд VII", "Зараженные раны", "Пронзительный вой", "Подрезать сухожилия", "Засада", "Раскол брони"}
      for b = 1, #v4 do
          if UnitHealth(v1[e]) / UnitHealthMax(v1[e]) * 100 <= 35 and not UnitDebuff(v1[e],"Воздержанность") and GetSpellCooldown("Длань защиты")==0 and IsSpellInRange("Длань защиты", v1[e]) == 1 and UnitDebuff(v1[e], v4[b]) then
            CastSpellByName("Длань защиты", v1[e])
        end
        end
        end
      end
    end
  end
end
end
end
end
end

CreateFrame("Frame", "DispellFrame")
DispellFrame:SetScript("OnUpdate", Dispell)


попытался добавить боп и фридом к диспеллу, работает, но сильно падает фпс, как только беру кого нибудь в таргет.
для бопа и фридома отдельные базы дебафов, я попытался сделать всё что приходило на ум, но к сожалению в синтаксисе шарю не сильно sad
прошу знатоков помочь smile с меня плюсик
Сообщение # 2359 отредактировано sixsixsix999 - Вторник, 27.06.2017, 17:10
snup5
Скаут

Код
function Suww(elapsed)
for bag = 0,4,1 do for slot = 1, 32, 1 do     
local name = GetContainerItemLink(bag,slot)
    
if name and string.find(name,"название хлама") then
    
PickupContainerItem(bag,slot)
DeleteCursorItem()
end
end
end
return true
end
CreateFrame("Frame", "frameB")   
frameB:SetScript("OnUpdate", Suww)
этот скрипт удаляет один хлам не нужный с инвентаря как добавить условие еше на пару вещей что-бы удалял

пробовал так не хочет ошибка

Код
if name and string.find(name,"название хлама", and string.find(name,"название хлама") then
Сообщение # 2360 написано 28.06.2017 в 10:37
ganus1993
Сержант
snup5,  /run for bag = 0,4 do for slot = 1,GetContainerNumSlots(bag) do local item = GetContainerItemLink(bag,slot) if item and item:find("хлам") then PickupContainerItem(bag,slot) DeleteCursorItem() end end end
Серые вещи
/script ClearCursor()local g,i,j,s,a,b=gsub;for i=0,4 do for j=1,GetContainerNumSlots(i)do s=GetContainerItemLink(i,j)if(s)then a,b,s=GetItemInfo(g(g(s,".*\124H",""),"\124h.*","" ))if(s==0)then PickupContainerItem(i,j)DeleteCursorItem()end;end; end;end
Белые вещи
/run for bag = 0,4,1 do for slot = 1, 32, 1 do local name = GetContainerItemLink(bag,slot); if name and string.find(name,"cffffffff") then PickupContainerItem(bag,slot); DeleteCursorItem(); end; end; end
Зелёные вещи
/run for bag = 0,4,1 do for slot = 1, 32, 1 do local name = GetContainerItemLink(bag,slot); if name and string.find(name,"cff1eff00") then PickupContainerItem(bag,slot); DeleteCursorItem(); end; end; end
Пишу макросы и профили PQR
Моя подборка пве скриптов-ротаций 3.3.5
Сообщение # 2361 написано 28.06.2017 в 19:28
snup5
Скаут
Цитата ganus1993 ()
snup5, /run for bag = 0,4 do for slot = 1,GetContainerNumSlots(bag) do local item = GetContainerItemLink(bag,slot) if item and item:find("хлам") then PickupContainerItem(bag,slot) DeleteCursorItem() end end endСерые вещи
/script ClearCursor()local g,i,j,s,a,b=gsub;for i=0,4 do for j=1,GetContainerNumSlots(i)do s=GetContainerItemLink(i,j)if(s)then a,b,s=GetItemInfo(g(g(s,".*\124H",""),"\124h.*","" ))if(s==0)then PickupContainerItem(i,j)DeleteCursorItem()end;end; end;end
Белые вещи
/run for bag = 0,4,1 do for slot = 1, 32, 1 do local name = GetContainerItemLink(bag,slot); if name and string.find(name,"cffffffff") then PickupContainerItem(bag,slot); DeleteCursorItem(); end; end; end
Зелёные вещи
/run for bag = 0,4,1 do for slot = 1, 32, 1 do local name = GetContainerItemLink(bag,slot); if name and string.find(name,"cff1eff00") then PickupContainerItem(bag,slot); DeleteCursorItem(); end; end; end
макрос мне не походит мне нужно просто чтобы он удалял 3 вещи которые я укажу а скрипт я лепил с этих макросов что вы выложили
вот первый макрос он удаляет 1 хлам можно туда добавить еще 2 хлама ?
Сообщение # 2362 написано 29.06.2017 в 08:54
Punisher45
Капрал
Цитата snup5 ()
макрос мне не походит мне нужно просто чтобы он удалял 3 вещи которые я укажу а скрипт я лепил с этих макросов что вы выложиливот первый макрос он удаляет 1 хлам можно туда добавить еще 2 хлама ?

Капитан очевидность подсказывает, что если погуглить, то на первой же ссылке (а именно на близовском батл нет) лежит уже готовый код



Так же под его мудрым руководством можно догадаться, что достаточно создать три макроса с этим кодом, где в каждом будет определенная ненужная шмотка

либо так:

Сообщение # 2363 отредактировано Punisher45 - Четверг, 29.06.2017, 17:24
Fqlolxl
Скаут
sixsixsix999, а значение party5 в массиве это что должно значить? Насколько я помню группа в вов состоит из 5 человек, т.е. { "player" "party1" "party2" "party3"
"party4" }
Возможно, если выпилить "party5" то и фпс садиться не будет. Как проверите отпишитесь пожалуйста в теме.
Сообщение # 2364 написано 29.06.2017 в 18:17
sixsixsix999
Скаут
Fqlolxl,
ок попробую
ну а вообще дополнительные базы дебафов я правильно вписал? я просто подозреваю, что из-за возможных ошибок в синтаксисе фпс падает. всё таки я начинающий в этом деле, но учусь быстро smile
щас попробую без party5 и отпишу

Добавлено (29.06.2017, 19:09)
---------------------------------------------
теперь скрипт вообще ничего не делает, фпс стабильный... не знаю в чем дело

Сообщение # 2365 отредактировано sixsixsix999 - Четверг, 29.06.2017, 18:39
VxtMkr
Скаут


Цитата sixsixsix999 ()
сильно падает фпс


Причина - неправильное построение вложенных циклов и перепутанные итераторы.

Цитата sixsixsix999 ()
UnitExists(v1[с])


Если перебираешь массив v1, то итератор, который внутри квадратных скобок, всегда должен быть из его родного цикла, здесь это - i. Боп лучше кидать не по дебафам + хп юнита, а проверяя в бою ли он + хп, меньше нагрузка.

Код
function Dispell(self, elapsed)
  local v1, v2, v3
  v1 = { "player", "target", "targettarget", "mouseover", "mouseovertarget", "party1", "party2", "party3", "party4" }
  for i = 1, #v1 do
    if UnitExists(v1[i]) and UnitCanAttack("player", v1[i]) == nil and UnitDebuff(v1[i],"Смерч") == nil then
      v2 = {"Кольцо льда", "Лик смерти", "Глубокая заморозка", "Превращение", "Молот правосудия", "Обморожение", "Ледяная стрела", "Конус холода", "Ледяные оковы", "Ненасытная стужа", "Замедление", "Стрела ледяного огня", "Окоченение", "Глубинный ужас", "Ментальный крик", "Калечащий яд", "Нейтрализующий яд VII", "Гнев деревьев", "Символ пламени тьмы", "Страх", "Соблазн", "Неистовство тьмы", "Огненный шлейф", "Всепожирающая чума", "Оковы земли", "Эффект замораживающей стрелы", "Дыхание дракона", "Щит мстителя", "Жертвенный огонь", "Укус змеи", "Удержание", "Зараженные раны", "Хватка земли", "Вой ужаса", "Ледяной шок", "Ночной кошмар", "Шип", "Покаяние", "Сеть"}
      v3 = {"Кольцо льда", "Обморожение", "Ледяная стрела", "Конус холода", "Стрела ледяного огня", "Окоченение","Калечащий яд", "Удержание", "Зараженные раны", "Хватка земли", "Пронзительный вой", "Аура ледяной ловушки", "Засада", "Осквернение"}
      for j = 1, #v2 do
        if UnitHealth("player") / UnitHealthMax("player") * 100 >= 50 and UnitHealth(v1[i]) / UnitHealthMax(v1[i]) * 100 >= 50 and UnitDebuff(v1[i], v2[j]) and UnitDebuff(v1[i], "Нестабильное колдовство") == nil and IsSpellInRange("Очищение", v1[i]) == 1 then
          CastSpellByName("Очищение", v1[i])
        end
      end
      for j = 1, #v3 do
        if UnitHealth(v1[i]) / UnitHealthMax(v1[i]) * 100 >= 25 and UnitDebuff(v1[i], v3[j]) and GetSpellCooldown("Длань свободы") <= 2 and IsSpellInRange("Длань свободы", v1[i]) == 1 then
          CastSpellByName("Длань свободы", v1[i])
        end
      end
      if UnitAffectingCombat(v1[i]) and UnitHealth(v1[i]) / UnitHealthMax(v1[i]) * 100 <= 35 and UnitDebuff(v1[i],"Воздержанность") == nil and GetSpellCooldown("Длань защиты") <= 2 and IsSpellInRange("Длань защиты", v1[i]) == 1 then
        CastSpellByName("Длань защиты", v1[i])
      end
    end
  end
end

CreateFrame("Frame", "DispellFrame")
DispellFrame:SetScript("OnUpdate", Dispell)

Добавлено (29.06.2017, 20:02)
---------------------------------------------

Цитата snup5 ()
можно туда добавить еще 2 хлама ?


Вариант через таблицу, с возможностью удаления неограниченного количества определенных вещей. Для безопасности вырубил возможность удаления белого и зеленого шмота. Что бы включить, нужно булеву переменную ["Имя вещи"] = false заменить на ["Имя вещи"] = true, соблюдая нижний регистр.

Код
function Suww(elapsed)
  -- 9d9d9d - серые, cffffffff - белые, cff1eff00 - зеленые
  local v1 = { ["9d9d9d"] = true, ["cffffffff"] = false, ["cff1eff00"] = false, ["Большой медвежий зуб"] = true, ["Имя вещи"] = true }
  for bag = 0, 4, 1 do
    for slot = 1, GetContainerNumSlots(bag), 1 do
      local v2 = GetContainerItemLink(bag, slot)
      if v2 then
        for i, j in pairs(v1) do
          if string.find(v2, i) and j then
            ClearCursor()
            PickupContainerItem(bag, slot)
            DeleteCursorItem()
          end
        end
      end
    end
  end
end

CreateFrame("Frame", "frameB")   
frameB:SetScript("OnUpdate", Suww)
Сообщение # 2366 написано 29.06.2017 в 20:02
sixsixsix999
Скаут
VxtMkr, спасибо большое за помощь) теперь буду знать про итераторы smile насчет бопа - боп спасает только от физ урона, и дебафы для бопа я подобрал именно от миликов, не хотелось бы юзать боп против кастеров)
Сообщение # 2367 написано 29.06.2017 в 22:26
snup5
Скаут
Цитата Punisher45 ()
/run a=string.find for b=0,4 do for s=1,32 do n=GetContainerItemLink(b,s);if n and a(n,"название шмотки1") or a(n,"название шмотки2") or a(n,"название шмотки3") then PickupContainerItem(b,s);DeleteCursorItem();end;end;end;
 ты проверял его ?
А за or спасибо
Вот рабочий

Код
function Suwwwq(elapsed)
for bag = 0,4,1 do
for slot = 1, 32, 1 do  
local name = GetContainerItemLink(bag,slot)   
if name and a(name,"Сырой шалфокунь") or name and a(name,"Белый ром Ромси") or name and a(name,"Сырой радужный тунец") then
PickupContainerItem(bag,slot)
DeleteCursorItem()
end
end
end
return true
end
CreateFrame("Frame", "frameB")   
frameB:SetScript("OnUpdate", Suwwwq)
Сообщение # 2368 отредактировано snup5 - Пятница, 30.06.2017, 01:36
Punisher45
Капрал
Цитата snup5 ()
ты проверял его ?


нет конечно, не было времени
у меня для всякой подобной хрени всегда был аддон trashcan
Сообщение # 2369 написано 01.07.2017 в 14:01
Fqlolxl
Скаут
Может кто подсказать как описать проверку на класс юнита? В плане, воин, шаман, друид и т.п. Покопался в api, ничего кроме неописанных функций не нашел.
Сообщение # 2370 написано 02.07.2017 в 20:05
Поиск: