Модератор форума: staford11  
Использование Lua скриптов.
temaivaaaa
Скаут
Никто не поможет с скриптом на вара ? авто кик с авто еквипом
Сообщение # 391 написано 01.01.2015 в 16:50
Evisceratos
Скаут
Какой сейчас анлокер Луа не палица на серкле?
Сообщение # 392 написано 05.01.2015 в 11:17
DiSq
Рыцарь
Цитата Evisceratos ()
Какой сейчас анлокер Луа не палица на серкле?

Gagarin 1.7
Сообщение # 393 написано 05.01.2015 в 17:19
Twilly
Скаут
Ребят, поделитесь пожалуйста рабочим SDM для wowcircle , буду благодарен
Сообщение # 394 написано 05.01.2015 в 20:44
PaulDousen
Рыцарь
Цитата Necrofobianx ()
может есть возможность в скобки впихнуть айди спелла Избиение 3 уровня?


Есть, можно, только нужно отслеживать не только наличие дебафа, но и его стаки:

if select(4,UnitBuff("player",GetSpellInfo(84586))) then RunMacroText("/cast Жетон победы гладиатора Катаклизма") end

Добавлено (06.01.2015, 05:15)
---------------------------------------------
Цитата Tolannn3 ()
Тоже интересует скрипт подобного рода, но только чтобы отслеживал 3 стака стрелы ледяного огня на цели.


Тоже самое что описал выше

Добавлено (06.01.2015, 05:26)
---------------------------------------------
Цитата Den40rus ()
Что изменить или добавить в


Добавить вычитание текущего времени из времени истекания дебафа

Код
Deduff = CreateFrame("Frame", "DeBuffFrame", UIParent);    
Deduff:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED");    
Deduff:SetScript("OnEvent", function(self, event, arg1, arg2, ...)
local enabled = GetItemCooldown("Медальон Орды")    
    if(event=="COMBAT_LOG_EVENT_UNFILTERED") then
     if select(7,UnitDebuff("player",GetSpellInfo(IDДебафа))) - GetTime() == 777 --Указывать на какой секунде дебафа использовать
     or select(7,UnitDebuff("player",GetSpellInfo(IDДебафа))) - GetTime() == 777 --Указывать на какой секунде дебафа использовать
      then    
       if enabled == 0    
        then RunMacroText("/use Медальон орды")   
       end    
      end    
     end    
    end)
Сообщение # 395 отредактировано PaulDousen - Вторник, 06.01.2015, 05:38
Den40rus
Скаут
Цитата PaulDousen ()
Deduff = CreateFrame("Frame", "DeBuffFrame", UIParent);    
Deduff:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED");    
Deduff:SetScript("OnEvent", function(self, event, arg1, arg2, ...)
local enabled = GetItemCooldown("Медальон Орды")    
    if(event=="COMBAT_LOG_EVENT_UNFILTERED") then
     if select(7,UnitDebuff("player",GetSpellInfo(IDДебафа))) - GetTime() == 777 --Указывать на какой секунде дебафа использовать
     or select(7,UnitDebuff("player",GetSpellInfo(IDДебафа))) - GetTime() == 777 --Указывать на какой секунде дебафа использовать
      then    
       if enabled == 0    
        then RunMacroText("/use Медальон орды")   
       end    
      end    
     end    
    end)

После этого скрипта Wow зависает намертво
Сообщение # 396 написано 06.01.2015 в 15:44
PaulDousen
Рыцарь
Цитата Den40rus ()
После этого скрипта Wow зависает намертво


Какая версия клиента и какой дебаф
Сообщение # 397 написано 06.01.2015 в 17:41
PaulDousen
Рыцарь
Цитата Necrofobianx ()
должно получиться Избиение 3 уровня и еще к тому же дописывать что при 3 стаках?

Указать что должно быть 3 стака

Код
if select(4,UnitBuff("player",GetSpellInfo(84586))) == 3 then RunMacroText("/cast Жетон победы гладиатора Катаклизма") end
Сообщение # 398 отредактировано PaulDousen - Вторник, 06.01.2015, 18:59
PaulDousen
Рыцарь
Цитата Necrofobianx ()
Да все работает. Большое спасибо. Лайкну чтоли...сегодня же Сочельник.


Нз, обращайся
Сообщение # 399 написано 06.01.2015 в 19:05
PaulDousen
Рыцарь
Цитата Necrofobianx ()
Можно ли в скрипт добавить чтобы реагировал он только на мой дебаф ?


/run if (not UnitDebuff("target", "Кровопускание", "PLAYER")) then RunMacroText("/cast [stance:2/3] Боевая стойка; Кровопускание;") end
/run if UnitDebuff("target", "Кровопускание", "PLAYER") then RunMacroText("/cast Смертельный удар") end
/run if (not UnitDebuff("target", "Смертельный удар", "PLAYER"))then RunMacroText("/cast [stance:2/3] Боевая стойка; Кровопускание;") end
/cancelaura Длань защиты
/cast Размашистые удары
/startattack
Сообщение # 400 написано 06.01.2015 в 20:05
PaulDousen
Рыцарь
Цитата Necrofobianx ()
Проверил твой скрипт,по кд юзается Кровопускание если кнопку спамить,короче говоря обновляется Кровопускание при каждом нажатии,а Смертельный удар вообще не тыкается


3ю строку удали
Сообщение # 401 написано 06.01.2015 в 20:35
PaulDousen
Рыцарь
Цитата Necrofobianx ()
Я так уже делал,0 эффекта.


Скобки я и не заметил
/run if not UnitDebuff("target", "Кровопускание", "PLAYER") then RunMacroText("/cast [stance:2/3] Боевая стойка; Кровопускание;") end
поменяй на 1ю строку
Сообщение # 402 написано 06.01.2015 в 20:41
PaulDousen
Рыцарь
Цитата Necrofobianx ()
Скорее всего проблема в самом "Player" ,видимо он не в том месте должен писаться...


Домой приеду напишу, с фильтром верно все

Добавлено (06.01.2015, 21:56)
---------------------------------------------
http://wowprogramming.com/docs/api/UnitDebuff
Уже многие в личку написали что значит select, отвечу всем

Через функция select() я указываю какую сигнатуру(читай ретурн функции) надо использовать (по ссылке вверху "Signature")
К примеру фунция UnitDebuff() возвращает следующее:
name, rank, icon, count, dispelType, duration, expires, caster, isStealable, shouldConsolidate, spellID, canApplyAura, isBossDebuff, value1, value2, value3
Это и есть сигнатура функции.

Пример:
if select(4,UnitBuff("player",GetSpellInfo(84586))) == 3
Я выбрал сигнатуру count(колличество) и она должна равняться 3 что бы выполнялось условие.

Для получения сигнатуры функции в игре достаточно использовать функцию print().
Например:
/script print(UnitDebuff("target","Название дебафа"))
или
/script print(UnitBuff("player","Название бафа"))
Вводить в чат.
Сообщение # 403 отредактировано PaulDousen - Вторник, 06.01.2015, 22:06
Den40rus
Скаут
Цитата PaulDousen ()
Какая версия клиента и какой дебаф

wow 3.3.5a дебаф "Молот правосудия" (id853) сервер: wowcircle x5
Сообщение # 404 написано 06.01.2015 в 22:23
PaulDousen
Рыцарь
Цитата Den40rus ()
wow 3.3.5a дебаф "Молот правосудия" (id853) сервер: wowcircle x5


Кинь на цель дебаф и введи в чат /script print(UnitDebuff("target","Молот правосудия")) пришли результат
Сообщение # 405 написано 06.01.2015 в 22:27
Den40rus
Скаут
Цитата PaulDousen ()
Кинь на цель дебаф и введи в чат /script print(UnitDebuff("target","Молот правосудия")) пришли результат


Я тебе в лс написал рабочий скрипт к нему надо добавить проверку на время ( есть мысль по поводу
local finish = endTime/1000 - GetTime()
if finish <= 0.7 then
Только переделать эту команду на начало а не конец

Добавлено (06.01.2015, 22:37)
---------------------------------------------

Цитата PaulDousen ()
Кинь на цель дебаф и введи в чат /script print(UnitDebuff("target","Молот правосудия")) пришли результат


Я играю за Дк) немогу кинь стан паловский)
Сообщение # 406 написано 06.01.2015 в 22:37
PaulDousen
Рыцарь
Цитата Den40rus ()
Я тебе в лс написал рабочий скрипт к нему надо добавить проверку на время ( есть мысль по поводу
local finish = endTime/1000 - GetTime()
if finish <= 0.7 then
Только переделать эту команду на начало а не конец


Я увидел. Но я не знаю в каком порядке возвращает функция значения, поэтому попросил выполнить то что указал выше

Добавлено (06.01.2015, 22:40)
---------------------------------------------

Цитата Den40rus ()
Я играю за Дк) немогу кинь стан паловский)


Придется найти способ +)
Сообщение # 407 написано 06.01.2015 в 22:40
Den40rus
Скаут
Цитата PaulDousen ()
Придется найти способ +)


Способ нашел) Ниче не именилось впринципе ) вообще ничего) скрипт ввел в чат и 0 эффекта)
Сообщение # 408 написано 06.01.2015 в 22:49
PaulDousen
Рыцарь
Цитата Den40rus ()
Способ нашел) Ниче не именилось впринципе ) вообще ничего) скрипт ввел в чат и 0 эффекта)


И не должно, в чат должно было написать ответ функции. После того как ввел. Там же было что то? Попробуй это
/script print(UnitDebuff("player","Молот правосудия"))
Сообщение # 409 отредактировано PaulDousen - Вторник, 06.01.2015, 22:52
Den40rus
Скаут
Цитата PaulDousen ()
И не должно, в чат должно было написать ответ функции. После того как ввел. Там же было что то? Попробуй это
/script print(UnitDebuff("player","Молот правосудия"))


Так же в чат ничего не выводится

Добавлено (06.01.2015, 23:11)
---------------------------------------------
Цитата PaulDousen ()
/script print(UnitDebuff("player","Молот правосудия"))
\

Вообщем я прописал скрипт /script print(UnitDebuff("target","Черная чума"))

и в чате появилось : Черная чума
Interface\Icons\Spell_Shadow_NetherCloak 0
Disease 21 27500.543 player nil nil 51735

Добавлено (06.01.2015, 23:23)
---------------------------------------------
Все тормозить начинает после добавления команды time

Сообщение # 410 отредактировано Den40rus - Вторник, 06.01.2015, 23:12
DiSq
Рыцарь
Код
#show Смертельный удар   
/run if (not UnitDebuff("target", "Кровопускание", nil, "PLAYER"))then RunMacroText("/cast [stance:2/3] Боевая стойка; Кровопускание;") end   
/run if UnitDebuff("target", "Кровопускание", nil, "PLAYER")then RunMacroText("/cast Смертельный удар") end   
/cancelaura Длань защиты   
/cast Размашистые удары   
/startattack


Или максимальный ранк подставляй туда. Щас должно работать
Сообщение # 411 отредактировано DiSq - Среда, 07.01.2015, 01:08
PaulDousen
Рыцарь
Цитата Necrofobianx ()
Можешь еще разок посмотреть что не так ?


Как буду дома, а буду дома завтра

Добавлено (07.01.2015, 01:35)
---------------------------------------------

Цитата Den40rus ()
Вообщем я прописал скрипт


После Disease видимо идет оставшееся время

Добавлено (07.01.2015, 01:39)
---------------------------------------------
/run if UnitDebuff("target", GetSpellInfo(94009), "player") == nil then RunMacroText("/cast [stance:2/3] Боевая стойка; Кровопускание;") end
/run if UnitDebuff("target", GetSpellInfo(94009), "player") then RunMacroText("/cast Смертельный удар") end

пробуй

Сообщение # 412 написано 07.01.2015 в 01:39
PaulDousen
Рыцарь
Цитата DiSq ()
Или максимальный ранк подставляй туда. Щас должно работать


Удачная мысль, совсем забыл об этом
Сообщение # 413 написано 07.01.2015 в 03:23
Den40rus
Скаут
Цитата PaulDousen ()
После Disease видимо идет оставшееся время


Да я думаю ты прав) Как теперь вставить все это в скрипт)

Deduff = CreateFrame("Frame", "DeBuffFrame", UIParent);
Deduff:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED");
Deduff:SetScript("OnEvent", function(self, event, arg1, arg2, ...)
if(event=="COMBAT_LOG_EVENT_UNFILTERED") then
if UnitDebuff("player","Молот правосудия") or UnitDebuff("player","Смерч") or UnitDebuff("player","Удар по почкам") then
local enabled = GetSpellCooldown("Каждый за себя")
if enabled == 0 then
RunMacroText("/use Каждый за себя")
end
end
end
end)

Я знаю в java есть команда timeout ... незнаю есть ли что о подобное в луа ? так бы вставить задержку перед RunMacroText("/use Каждый за себя")
Сообщение # 414 отредактировано Den40rus - Среда, 07.01.2015, 03:49
Kelwin
Сержант
Den40rus, скриптуй через OnUpdate.
Сообщение # 415 написано 07.01.2015 в 05:44
PaulDousen
Рыцарь
Цитата Den40rus ()
Все тормозить начинает после добавления команды time


Можно без лишних функций, просто добавь что условие должно выполняться если время дебафа меньше/больше нужного кол-ва секунд.
Сообщение # 416 написано 07.01.2015 в 07:48
Den40rus
Скаут
Цитата PaulDousen ()
Можно без лишних функций, просто добавь что условие должно выполняться если время дебафа меньше/больше нужного кол-ва секунд.


Я был бы очень благодарен если бы ты написал это условие
Сообщение # 417 написано 07.01.2015 в 14:26
PaulDousen
Рыцарь
Цитата Den40rus ()
Я был бы очень благодарен если бы ты написал это условие


if select(5,UnitDebuff("player","Черная чума") >= 20 и т.д

Для проверки попал ли бы селектом в нужный ответ введи /script print(select(5,UnitDebuff("player","Черная чума")))
Первыми в чате должны появиться цифры времени до окончания
Сообщение # 418 написано 08.01.2015 в 01:46
cheburator2000
Скаут
Может ли кто сделать скрипт-макрос для роги на "Маленькие хитрости")) Например во время спама (хемо) "Кровоизлияние" по кд юзались Маленькие хитрости на напа... Буду очень-очень благодарен happy
Сообщение # 419 написано 08.01.2015 в 02:37
Kelwin
Сержант
Код
#showtooltip Hemmorhage
/run local s = "Tricks of the Trade" if GetSpellCooldown(s)==0 and IsSpellInRange(s, "party1") then CastSpellByName(s, "party1") end CastSpellByName("Hemorrhage", "target")
Сообщение # 420 отредактировано Kelwin - Четверг, 08.01.2015, 08:12
Поиск: