Модератор форума: staford11  
Использование Lua скриптов.
Imperor228
Скаут
Цитата Nyll2 ()
слишком много текста, Не стал читать Я так понимаю тебе нужно кастить скилл на соперника на арене не меняя таргет? У тебя есть функция к примеру http://wowprogramming.com/docs/api/CastSpellByName там есть параметр Target у параметра таргет есть типы список типов тут: http://wowprogramming.com/docs/api_types#unitID

Cпасибо! Сейчас прочитаю.
Сообщение # 1711 написано 30.05.2016 в 19:18
Retly
Скаут
кто подскажет авто ваниш что бы можно запихнуть было в lua тоисть сделать аддоном, то что написал acc не работает аддоном был бы благодарен
Сообщение # 1712 написано 30.05.2016 в 19:44
Esdescon
Скаут
Нужен работающий скрипт.

Его действия (когда на тебе дебаф он должен противопоставить какой то скил) Реакция должна быть быстрой .

Возможно ли такое ?
Сообщение # 1713 написано 31.05.2016 в 13:13
chaosway
Рыцарь
Esdescon
Код
function Mucks(self, elapsed)
if UnitDebuff("player","Указать гадость(дэбаф)") or UnitDebuff("player","Указать гадость(дэбаф)") then                    
                    local enabled = GetItemCooldown("Медальон Орды")                    
                    if enabled == 0 then                    
                     RunMacroText("/use Медальон орды")                    
                    end                    
end                        
end                    
CreateFrame("Frame", "MucksFrame")
MucksFrame:SetScript("OnUpdate", Mucks)
Сообщение # 1714 написано 31.05.2016 в 16:23
Retly
Скаут
TwoScriptForVanish = CreateFrame("Frame", "TwoScriptForVanish", UIParent);
TwoScriptForVanish: RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
TwoScriptForVanish:SetScript("OnEvent", function(self, event, ...)
VanishSpellTwo = {"Ослепление", "Подлый трюк", "Удар по почкам", "Ошеломление", "Лик смерти", "Глубокая заморозка"} -- Вписываем название спеллов вот так "Название",
for x = 1,#VanishSpellTwo do
local args = {...}
if (arg10 == VanishSpellTwo [x]and arg2 == "SPELL_CAST_SUCCESS" and arg7 ==UnitName("player")) then
CastSpellByName("Исчезновение")
end
end
end)


может кто добавить выключатель? в него и включатель? через команду

Добавлено (31.05.2016, 17:00)
---------------------------------------------

Цитата Retly ()
TwoScriptForVanish = CreateFrame("Frame", "TwoScriptForVanish", UIParent);
TwoScriptForVanish: RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
TwoScriptForVanish:SetScript("OnEvent", function(self, event, ...)
VanishSpellTwo = {"Ослепление", "Подлый трюк", "Удар по почкам", "Ошеломление", "Лик смерти", "Глубокая заморозка"} -- Вписываем название спеллов вот так "Название",
for x = 1,#VanishSpellTwo do
local args = {...}
if (arg10 == VanishSpellTwo [x]and arg2 == "SPELL_CAST_SUCCESS" and arg7 ==UnitName("player")) then
CastSpellByName("Исчезновение")
end
end
end)


CreateFrame("Frame", "DestroyFrame")
DestroyFrame:SetScript("OnUpdate", Destroy)
function ss(self)
if spellON["Destroy"] == false then
spellON["Destroy"] = true
print("on")
elseif spellON["Destroy"] == true then
spellON["Destroy"] = false
print("off")
end
end
SLASH_SS1 = '/ss';
SlashCmdList["SS"] = ss
вот включатель выключатель соедините по правильному
дальше буду сам делать
Сообщение # 1715 написано 31.05.2016 в 17:00
Esdescon
Скаут
Цитата chaosway ()
function Mucks(self, elapsed)
if UnitDebuff("player","Указать гадость(дэбаф)") or UnitDebuff("player","Указать гадость(дэбаф)") then                    
                    local enabled = GetItemCooldown("Медальон Орды")                    
                    if enabled == 0 then                    
                     RunMacroText("/use Медальон орды")                    
                    end                    
end                        
end                    
CreateFrame("Frame", "MucksFrame")
MucksFrame:SetScript("OnUpdate", Mucks)


chaosway, Сколько раз не делал в макросе (он просто его спамит) пытался на разных патчах .
Сообщение # 1716 написано 31.05.2016 в 20:26
chaosway
Рыцарь
Esdescon, Только сейчас на офе пробовал, всё работает... На лк аналогично
Сообщение # 1717 написано 31.05.2016 в 23:06
Nyll2
Скаут
Цитата Esdescon ()
RunMacroText("/use Медальон орды")

Объясните мне как нубу в Lua да и вообще в этой сфере. Зачем вы юзаете ранмакро, если есть функция UseItemByName? :)

Добавлено (31.05.2016, 23:19)
---------------------------------------------
Цитата chaosway ()
Только сейчас на офе пробовал

И не жалко вот людям аккаунты терять на оффе...
Сообщение # 1718 отредактировано Nyll2 - Вторник, 31.05.2016, 23:20
chaosway
Рыцарь
Nyll2, да разницы нету в игре, ацтань. И дай мне патч или че у тебя там на дамаг
Сообщение # 1719 написано 31.05.2016 в 23:26
Esdescon
Скаут
Объясните по человечески (как привести макрос в рабочее состояние) или что то по другому надо делать ?

Тест делаю на патче лк .
Сообщение # 1720 написано 01.06.2016 в 00:10
Nyll2
Скаут
Вот вам моя версия реагирования на различные ауры: http://paste2.org/86pJPnOG
Как она работает, есть массив CheckSpell, в него можно записывать различные скиллы и реагирование на них.
Например, можно записать роговское Ослепление и чтоб при срабатывании на нас данного скилла, автоматически юзалась тринька "Медальон Альянса".
Код
[2094] = {"ITEM", "Медальон Альянса"}

Т.е. Думаю логически понятно что шаблон добавления предметов такой:
Код
[SPELL_ID or SPELL_NAME] = {"TYPE (Item or spell)", "ID or Name"},

Вот еще один пример добавления роговского Ослепление
Код
["Ослепление"] = {"ITEM", "Медальон Альянса"},

Точно так же можно добавить реагирование скиллом:
Код
["Ослепление"] = {"SPELL", 59752},


Ну а так-как мне было лень заходить в игру и тестить все это, по этому я думаю вы сами сможете поменять принты на нужные вам функции.
Сообщение # 1721 отредактировано Nyll2 - Среда, 01.06.2016, 00:46
Esdescon
Скаут
[2094] = {"SPELL", 59752},
["Ошеломление"] = {"ITEM", "Медальон Альянса"}

Немного этого не понял.
Я так понимаю можно записать по разному (потому что в одном вы указали ид спела а в другом просто тупо написали название).

Добавлено (01.06.2016, 01:44)
---------------------------------------------
И каким образом мне привести его в действие ? Через что?

Сообщение # 1722 отредактировано Esdescon - Среда, 01.06.2016, 01:38
Nyll2
Скаут
Цитата Esdescon ()
Я так понимаю можно записать по разному (потому что в одном вы указали ид спела а в другом просто тупо написали название).

Да, можно записывать как название так и ID скилов. Только не нужно забывать о типах данных, если вы записуете цифры то не нужно их брать в кавычки, если вы записуете строку, а именно данные которые имеют тип String, то их обязательно нужно брать в кавычки. Хоть Lua не такой язык как тот ж Си (в плане типов), но тут тоже есть мелкие правила для типов данных.

Цитата Esdescon ()
И каким образом мне привести его в действие ? Через что?

Через Аддон, ну или какой либо эмулятор аддона. Но дабы не заниматься сексом с "эмуляторами" проще составить аддон, это дело 5-10 секунд.
п.с Нужно не забывать что у меня не выставлены основные функции для запуска Скилов и Предметов, на их месте стоят просто принты, их тоже нужно поменять.

Добавлено (01.06.2016, 01:55)
---------------------------------------------

Цитата chaosway ()
Nyll2, да разницы нету в игре

Эм, ну на самом деле есть smile
Сообщение # 1723 отредактировано Nyll2 - Среда, 01.06.2016, 01:53
Esdescon
Скаут
Сложно xD (Особенно ещё и аддон делать). Подумал я тут (месяцок пройдёт может и разберусь).
Сообщение # 1724 отредактировано Esdescon - Среда, 01.06.2016, 01:59
Nyll2
Скаут
Цитата Esdescon ()
Сложа xD (Особенно ещё и аддон делать). Подумал я тут (месяцок пройдёт может и разберусь).

А что там аддон делать?
Вот на... https://mega.nz/#!T9xEDC4T!Ry0a2gmKkzdAVtVUrRsmgdPpliTPSq-IkMjPzTB1XIE
Сообщение # 1725 написано 01.06.2016 в 02:01
Esdescon
Скаут
Теперь нужно с макросом повозится (что да как работает). К примеру как его потом запустить в игре?
Сообщение # 1726 написано 01.06.2016 в 02:06
Nyll2
Скаут
Цитата Esdescon ()
Теперь нужно с макросом повозится (что да как работает). К примеру как его потом запустить в игре?

макросы не нужны, вписал скиллы, проставил за место принтов функции Юзайтем и Кастспелл и все.
Сообщение # 1727 написано 01.06.2016 в 02:09
Retly
Скаут
а мне как я понял не помогут?
Сообщение # 1728 написано 01.06.2016 в 08:23
Nyll2
Скаут
Цитата Retly ()
а мне как я понял не помогут?

На предыдущей страницы я выложил "пример" как и что делается, и тот функционал который нужно тебе - там есть.
Сообщение # 1729 написано 01.06.2016 в 10:06
Esdescon
Скаут
Я только понять не могу (какой отвечает за кастера а какой за триньку) .

1. За триньку?
2. За кастера?
Сообщение # 1730 написано 01.06.2016 в 10:53
chaosway
Рыцарь
У меня горит с Esdescon,  я же дал тебе полностью рабочий скрипт. Я ПРОВЕРИЛ ДАЖЕ НА ОФЕ И НА ПИРАТКАХ ЛК! ВСЁ РАБОТАЕТ ИДЕАЛЬНО, НО ТЫ ГОВОРИШЬ ЧТО НЕ РАБОТАЕТ, А ОКАЗЫВАЕТСЯ У ТЕБЯ НЕ БЫЛО АДДОНА????????????? ТЫ ЧТО ЕГО ПРОСТО В ЧАТ ПЫТАЛСЯ ВПИХНУТЬ? ИЛИ В ШКОЛЬНУЮ ТЕТРАДКУ ПЕРЕПИСАЛ???????
Сообщение # 1731 написано 01.06.2016 в 10:55
Esdescon
Скаут
Через аддон (макрос). Отдельный аддон я не пробнул сделать .

Добавлено (01.06.2016, 12:03)
---------------------------------------------

Цитата chaosway ()
У меня горит с Esdescon,  я же дал тебе полностью рабочий скрипт. Я ПРОВЕРИЛ ДАЖЕ НА ОФЕ И НА ПИРАТКАХ ЛК! ВСЁ РАБОТАЕТ ИДЕАЛЬНО, НО ТЫ ГОВОРИШЬ ЧТО НЕ РАБОТАЕТ, А ОКАЗЫВАЕТСЯ У ТЕБЯ НЕ БЫЛО АДДОНА????????????? ТЫ ЧТО ЕГО ПРОСТО В ЧАТ ПЫТАЛСЯ ВПИХНУТЬ? ИЛИ В ШКОЛЬНУЮ ТЕТРАДКУ ПЕРЕПИСАЛ???????


Приношу свои извинения (он работает). Но мне бы хотелось всё таки сделать что то типа авто ваниша (чтобы скилы уходили в никуда).
Сообщение # 1732 написано 01.06.2016 в 12:03
chaosway
Рыцарь
Esdescon, Это на швд, подставляй сюда свои спеллы
 
Код
Swd = CreateFrame("Frame")
local ev = function(self, event, ...)
if (event == "COMBAT_LOG_EVENT_UNFILTERED") then
local timestamp, type, sourceGUID, sourceName, sourceFlags, destGUID, destName = select(1, ...)
if (type == "SPELL_CAST_SUCCESS") then
local spellId, spellName = select(9, ...)
if spellName == "Ослепление" or spellName == "Покаяние" or spellName == "Дезориентирующий выстрел" and destGUID == UnitGUID("player") then
CastSpellByName("Слово тьмы: Смерть")
end
end
end
end
swd:SetScript("OnEvent", ev)
swd:UnregisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
swd:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")

Добавлено (01.06.2016, 12:41)
---------------------------------------------
Retly, по твоему выключателю, можно сделать так: Делаешь левый скрипт с таким же названием эвента как и в твоем. И когда ты включишь его, то первый выключится автоматически. Можешь сделать это на макросы типа /sdm run scripton и второй /sdm scriptoff

Сообщение # 1733 написано 01.06.2016 в 12:41
Esdescon
Скаут
function Mucks(self, elapsed)
if UnitDebuff("player","Указать гадость(дэбаф)") or UnitDebuff("player","Указать гадость(дэбаф)") then                    
                    local enabled = GetItemCooldown("Медальон Орды")                    
                    if enabled == 0 then                    
                     RunMacroText("/use Медальон орды")                    
                    end                    
end                        
end                    
CreateFrame("Frame", "MucksFrame")
MucksFrame:SetScript("OnUpdate", Mucks)

Пробнул его (при дебафе просто лагает и ничего больше) после того как он спадёт всё нормально.
Сообщение # 1734 написано 01.06.2016 в 12:54
chaosway
Рыцарь
Esdescon, ты медальон орды прожимаешь? Или спелл какой то? Если спел, то local enabled = GetItemCooldown("Медальон Орды") должно быть GetSpellCooldown

Добавлено (01.06.2016, 13:29)
---------------------------------------------
И вообще скинь тот, что ты пытаешься использовать

Сообщение # 1735 написано 01.06.2016 в 13:29
Esdescon
Скаут
Понял свою ошибку. Всё работает .
Сообщение # 1736 отредактировано Esdescon - Среда, 01.06.2016, 13:51
mmx6661
Скаут
Ребят подскажите как проверить скриптом рейд на определенный Buff
На  Debuff нашел но переделать его не получилось

Код
/run t="raid"; nps=1; npe=GetNumRaidMembers(); if npe==0 then t="party"; nps=0; npe=GetNumPartyMembers() end; w=nil; m=0; for i=nps,npe do if i==0 then tt="player" else tt=t..i end; if UnitExists(tt) and UnitInRange(tt)==1 and UnitIsDeadOrGhost(tt)~=1 then for j=1,40 do d={UnitDebuff(tt,j)}; if d~=nil and (d[5]=="Magic" or d[5]=="Poison" or d[5]=="Disease") and d[7]>m then w=tt; m=d[7] end end end end; if w~=nil then RunMacroText("/cast [@"..w.."] Очишение духа") end
Если не затруднит подскажите хотя бы направление куда топать читать =)
Сообщение # 1737 отредактировано mmx6661 - Среда, 01.06.2016, 14:21
chaosway
Рыцарь
mmx6661, UnitBuff("target", "Каска"); UnitDebuff("target", "Проклятие")
Сообщение # 1738 написано 01.06.2016 в 14:42
mmx6661
Скаут
chaosway, ну на сколько я понимаю таким образом мы проверяем таргет, а не рейд, мне нужно чтобы скрипт как с примером дебафа искал, мой баф на рейде и если его нету на игроке накладывал его.
Сообщение # 1739 написано 01.06.2016 в 14:51
chaosway
Рыцарь
mmx6661, ..... Тут нужно добавить картинку фэйспалм
Сообщение # 1740 написано 01.06.2016 в 15:44
Поиск: