Модератор форума: staford11  
Использование Lua скриптов.
sess
Скаут
Привет
возник вопрос: можно ли указать задержку в использовании способности?
например, в ситуации, когда цель использует какую-то мгновенную абилку z, чтобы прожималась моя абилка, но не сразу а через секунду?

в теории, надо создать фрейм для ловли z и присвоить переменной x значение GetTime(), и потом создать еще фрейм (onevent или onupdate?), перетащить туда значение x, поставив условие GetTime() - x>=1 для юза абилы
но к сожалению мои знания слишком ограничены, потому надеюсь на помощь местных профессионалов;)
Сообщение # 631 отредактировано sess - Понедельник, 16.02.2015, 17:51
Kelwin
Сержант
sess, правильно мыслишь. Существует несколько способов реализации.
На свое усмотрение можешь добавить кучу проверок (кд, расстояние, цель/фокус и т.д.). Все это есть в примерах других скриптов этой темы.
Сообщение # 632 отредактировано Kelwin - Вторник, 17.02.2015, 04:28
sess
Скаут
Цитата Kelwin ()
Код

ошибка
Код
Message: [string "function Frame123_OnEvent(self,event,...) ..."]:19: Usage: Frame123:SetScript("type", function)
Time: 02/16/15 19:56:58
Count: 4
Stack: [C]: in function `SetScript'
[string "function Frame123_OnEvent(self,event,...) ..."]:19: in main chunk
[C]: in function `RunScript'
Сообщение # 633 отредактировано sess - Понедельник, 16.02.2015, 19:59
Attacked123
Скаут
Выложите кому не жалко скрипт на горн по кд и авто призыв пета (воскрешение мертвых)с проверкой на кд и пристутствие пета.Буду очень благодарен.
Сообщение # 634 написано 16.02.2015 в 23:25
light117
Рыцарь
Цитата Attacked123 ()
Выложите кому не жалко скрипт на горн по кд и авто призыв пета (воскрешение мертвых)с проверкой на кд и пристутствие пета.Буду очень благодарен.

Вроде так попробуй
Код
function Gorn(self)   
             enabled = GetSpellCooldown("Зимний горн")   
             if not UnitBuff("player", "Зимний горн") and enabled == 0 then             
            CastSpellByName("Зимний горн")     
             end   
end   

CreateFrame("Frame", "frameB")   
frameB:SetScript("OnUpdate", Gorn)
Нажатие на кнопку "запомнить пароль" не поможет вам запомнить пароль
Сообщение # 635 написано 17.02.2015 в 00:22
Attacked123
Скаут
Ребафает как баф спадает,по кд что бы бафало надо(
Сообщение # 636 написано 17.02.2015 в 00:54
Kelwin
Сержант
Цитата sess ()
ошибка

Проверь новую версию в пред посте под спойлером. Скобка была пропущена.

Добавлено (17.02.2015, 04:33)
---------------------------------------------

Цитата Attacked123 ()
Ребафает как баф спадает,по кд что бы бафало надо(

Код
local total = 0  
function WHorn(self,elapsed)  
       local spell = "Зимний горн"  
       total = total + elapsed  
       if total < 1 then  
           return  
       else  
           total = 0  
       end  
       if (GetSpellCooldown(spell) == 0) then  
           CastSpellByName(spell)  
       end  
end  
CreateFrame("Frame", "WHornFrame")    
WHornFrame:SetScript("OnUpdate", WHorn)
Сообщение # 637 написано 17.02.2015 в 04:33
light117
Рыцарь
Цитата Attacked123 ()
Ребафает как баф спадает,по кд что бы бафало надо(

Разве на это не используется гкд? Я думаю это критично

Добавлено (17.02.2015, 11:03)
---------------------------------------------
P.S. Тогда достаточно убрать из скрипта условие not UnitBuff("player", "Зимний горн")

Нажатие на кнопку "запомнить пароль" не поможет вам запомнить пароль
Сообщение # 638 написано 17.02.2015 в 11:03
Kelwin
Сержант
Цитата light117 ()
Разве на это не используется гкд?

Он говорил об использовании горна по его кулдауну. Действие горна - 2 минуты, кулдаун - 15 секунд. Каждое использование горна накапливает руническую силу, в связи с этим появляется необходимость постоянно его прожимать.
Сообщение # 639 написано 17.02.2015 в 16:20
light117
Рыцарь
Цитата Kelwin ()
Он говорил об использовании горна по его кулдауну. Действие горна - 2 минуты, кулдаун - 15 секунд. Каждое использование горна накапливает руническую силу, в связи с этим появляется необходимость постоянно его прожимать.

Это то да, но будет весьма глупо, когда в бою тебе потребуется быстро "убивать" противника, и в это время твой скрипт будет бафать горн и занимать очень важное гкд... Это критично на высоких рейтингах

Добавлено (17.02.2015, 18:19)
---------------------------------------------
P.S.
- Забери его от меня!
- ....
- Бл*, почему ты не забрал? Теперь меня убили
- Не мог забрать, я горн бафал
Нажатие на кнопку "запомнить пароль" не поможет вам запомнить пароль
Сообщение # 640 отредактировано light117 - Вторник, 17.02.2015, 18:22
Kelwin
Сержант
Цитата light117 ()
Это то да, но будет весьма глупо, когда в бою тебе потребуется быстро "убивать" противника, и в это время твой скрипт будет бафать горн и занимать очень важное гкд... Это просто глупо на высоких рейтингах

Белое и черное у каждого свое. Мы не знаем с какой целью и в каких условиях будет использоваться скрипт, поэтому лучше воздержаться от преждевременных заявлений о глупости его использования.
Сообщение # 641 написано 17.02.2015 в 18:32
light117
Рыцарь
Ладно, его дело
Нажатие на кнопку "запомнить пароль" не поможет вам запомнить пароль
Сообщение # 642 написано 17.02.2015 в 19:50
Attacked123
Скаут
У меня был чтоб обновлял по истечению бафа,вот и попросил по кд что бы.А на пета что нибудь можно придумать?Что бы автоматом призывался с проверкой на кд и присутствие.
Сообщение # 643 написано 18.02.2015 в 16:01
light117
Рыцарь
Разве кд не начитает отсчет, только после смерти пета? Или это увов?
Нажатие на кнопку "запомнить пароль" не поможет вам запомнить пароль
Сообщение # 644 написано 18.02.2015 в 17:51
Attacked123
Скаут
Что на циркле что на ювове бывает забагивает.
Сообщение # 645 написано 18.02.2015 в 18:23
SuperSerious
Сержант
Всем доброго времени суток, в общем вопрос такой:
Искал я тут ответ на данный вопрос и так не понял его решения.
Короче, вот голый текст скрипта:
Код
SpellBase = {""}  
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 name = UnitName("player")  
if arg2 == "SPELL_CAST_SUCCESS" and name ~= arg4 and name == arg7 and arg10 == SpellBase[s] then  
local enabled = GetSpellCooldown("")  
if enabled == 0 then  
CastSpellByName("")  
end  
end  
end  
end  
end)


Хотелось бы спросить, если вписать в спелбазу Лик смерти, а в CastSpellByName("") вписать Шедоумелд(Слиться с тенью - рассовая у Ночных эльфов) будет, естественно, ловится как и дк койл, так и локовский. Хотелось бы спросить, что можно проделать, чтобы ловился только локовский койл? И как то я натолкнулся на видос один, там где ферал друид в облике кота бежал навстречу локу, а тот отдал ему койл. Койл словился,хотя шедоумелд работает если твой персонаж стоит на месте.
Спасибо заранее smile
Сообщение # 646 написано 21.02.2015 в 13:54
Kelwin
Сержант
Цитата SuperSerious ()
можно проделать, чтобы ловился только локовский койл?

В данной теме уже было предоставлено решение. Можете найти и ознакомиться.
Сообщение # 647 написано 21.02.2015 в 15:11
SuperSerious
Сержант
Цитата Kelwin ()
В данной теме уже было предоставлено решение. Можете найти и ознакомиться.


Цитата SuperSerious ()
Искал я тут ответ на данный вопрос и так не понял его решения.


Не очень понял про аргументы, т.к я новичок в этом деле и прошу как-нибудь по-понятней объяснить..
Сообщение # 648 отредактировано SuperSerious - Суббота, 21.02.2015, 19:04
light117
Рыцарь
Этот скрипт вроде бы и не рабочий, ты его проверял?
P.S. Спеллы можно записывать и по id
Нажатие на кнопку "запомнить пароль" не поможет вам запомнить пароль
Сообщение # 649 написано 21.02.2015 в 19:36
SuperSerious
Сержант
Цитата light117 ()
Этот скрипт вроде бы и не рабочий, ты его проверял?


Все работает на циркуле, фералом ловлю контроли)
А можно спросить, куда вписывать ID спеллов?
Сообщение # 650 написано 21.02.2015 в 20:35
temaivaaaa
Скаут
Никто не подскажет скрипт на вара (Баш)
Суть в том допустим если цель кастует , скрипт нечего не делает а как я одену щит с пухой он кикнет т.е я сам одеваю и он кикает гдето но потерял (
Сообщение # 651 написано 24.02.2015 в 00:04
PaulDousen
Рыцарь
Цитата SuperSerious ()
А можно спросить, куда вписывать ID спеллов?


SpellBase = {"spellnameORid","spellnameORid","spellnameORid","spellnameORid","spellnameORid","spellnameORid","spellnameORid"}

итд
Сообщение # 652 написано 24.02.2015 в 15:12
Pachela13
Скаут
Доброго времени суток. Помогите пожалуйста сделать скрипт, который будет давать, сап, чип шот, удар по почкам и т.д. мгновенно после использования трини противником.

Новый или на основе одного из этих скриптов:

function BuffSrc(self)
enabled = GetSpellCooldown("Ослепление")
inRange = IsSpellInRange("Ослепление", "target")
if UnitBuff("target", "Медальон Орды")
CastSpellByName("Ослепление")
end
end

CreateFrame("Frame", "frameB")
frameB:SetScript("OnUpdate", BuffSrc)

----------------------------------------------------------------------------------------------------

SpellBase = {"Медальон Орды"}
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 name = UnitName("player")
if arg2 == "SPELL_CAST_SUCCESS" and name ~= arg4 and name == arg7 and arg10 == SpellBase[s] then
local enabled = GetSpellCooldown("Ослепление")
if enabled == 0 then
CastSpellByName("Ослепление")
print(arg1,arg2,...)
end
end
end
end
end)

Почему то оба не работают.
За ранее выражаю свою огромную благодарность.
P.S. с меня (+)
Сообщение # 653 отредактировано Pachela13 - Вторник, 24.02.2015, 15:35
light117
Рыцарь
чет вообще вов поднадоел)
Нажатие на кнопку "запомнить пароль" не поможет вам запомнить пароль
Сообщение # 654 написано 24.02.2015 в 17:41
Pachela13
Скаут
Помогите тем кому он еще интересен)
Сообщение # 655 написано 24.02.2015 в 18:03
SuperSerious
Сержант
Цитата Pachela13 ()
который будет давать, сап, чип шот, удар по почкам и т.д. мгновенно после использования трини противником.

Код
if not frame then
frame = CreateFrame("Frame")
end
local onEvent = function(self, event, ...)
if (event == "COMBAT_LOG_EVENT_UNFILTERED") then
local timestamp, type, sourceGUID, sourceName, sourceFlags, destGUID, destName, destFlags = select(1, ...)
if (type == "SPELL_CAST_SUCCESS") then
local spellId, spellName, spellSchool = select(9, ...)
if spellName == "Каждый за себя" or spellName == "PvP-аксессуар" and UnitName("target") == sourceName then
if UnitName("target") == sourceName then
CastSpellByName ("Ослепление")
else
if UnitIsEmeny("target", "player") then
ClearTarget()
RunMacro ("Target")
end
end
end
if spellName == "Ослепление" and UnitName("player") == destName then
CastSpellByName ("Исчезновение")
CastSpellByName ("Исчезновение")
CastSpellByName ("Исчезновение")
end
end
end
end
frame:SetScript("OnEvent", onEvent)
frame:UnregisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
frame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
frame:UnregisterEvent("UNIT_SPELLCAST_SUCCEEDED")
frame:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED")


Попробуй вписать вместо CastSpellByName ("Ослепление") - CastSpellByName ("Удар по почкам","Подлый трюк","Ослепление")
А если не прокнет, то попробуй так:
CastSpellByName ("Ослепление")
CastSpellByName ("Удар по почкам")
CastSpellByName ("Подлый трюк") То есть дополнить вниз на 2 строки.
И да, как видишь, этот скрипт сразу даёт контроль при юзе трини и ловит блайнд соперника.

Добавлено (24.02.2015, 22:02)
---------------------------------------------
PaulDousen, То есть, я могу вписать так: SpellBase = {"1234567"}?
1234567 - ID спелла которого мне нужно(это я образно представил)

Сообщение # 656 отредактировано SuperSerious - Вторник, 24.02.2015, 22:00
Pachela13
Скаут
Спасибо большое.

Еще один вопрос - почему когда добавляю скрипты поднимается пинг? Как это исправить?
Сообщение # 657 написано 25.02.2015 в 00:15
mmx6661
Скаут
Помогите разобраться пожалуйста
/run if not UnitDebuff("target", "Прикосновение вампира") then CastSpellByName("Прикосновение вампира") end
/run local _,a,_ = GetSpellCooldown("Всепожирающая чума") if (a == 0) then CastSpellByName("Всепожирающая чума") end
/run local _,d,_ = GetspellCooldown("Пытка разума") if (d == 0) and UnitDebuff("target", "Прикосновение вампира") and UnitDebuff("Всепожирающая чума") then RunMacroTex("/cast [nochanneling:Пытка разума] Пытка разума") end

Первая строчка работает дальше не хочет, в чем моя ошибка ???
Сообщение # 658 отредактировано mmx6661 - Среда, 25.02.2015, 02:16
Attacked123
Скаут
local total = 0
function BShout(self,elapsed)
local spell = "Боевой крик"
total = total + elapsed
if total < 1 then
return
else
total = 0
end
if (GetSpellCooldown() == 0) then
CastSpellByName(Боевой крик)
end
end
CreateFrame("Frame", "BShoutFrame")
BShoutFrame:SetScript("OnUpdate", BShout)
Что нужно добавить чтоб когда висит командирский крик ни ребафало?
Сообщение # 659 написано 25.02.2015 в 03:53
steeki
Скаут
Ребята есть скрипт на дк, ловить петом трапу?
Сообщение # 660 написано 25.02.2015 в 10:25
Поиск: