Модератор форума: staford11 |
Форум Хитрости Пиратских серверов Читы для WoW Использование Lua скриптов. |
Использование Lua скриптов. |
Код SWD = CreateFrame("Frame", "SWD", UIParent); SWD:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED") SWD:SetScript("OnEvent", function(self, event, arg1, arg2) SpellBase = {"Дезориентирующий выстрел","Грубый прием","Превращение","Покаяние","Ослепление","Ошеломление","Ненасытная стужа"} local cd = GetSpellCooldown("Слово Тьмы: Смерть") for v = 1,#SpellBase do local args = {arg1, arg2} if (arg1 == "target" and arg2 == SpellBase[v]) then if cd == 0 then CastSpellByName("Слово Тьмы: Смерть") end end end end) Просьба к знатокам , помогите исправить данный скрипт , он работает не как надо , то-есть если взять в цель охотника и он даст Дезориентирующий выстрел , то Слово Тьмы: Смерть сработает , а если я буду держать в цели другого игрока , будь то напарник мой или же напарник врага , то проигнорирует .
Сообщение # 2131 написано 13.03.2017 в 05:09
|
Сообщение # 2134 написано 14.03.2017 в 10:30
|
Помоги мне вписать всё это в код , что бы было так не важно где я бы не был пусть то будет бг , пусть арена , да хоть элвинский лес , но что бы когда в меня летит скатер допустим ну или же что вписанно в макросе , я контратаковал скилом швд , даже если у меня в таргете был бы свой таргет , спасибками не абижу , а если вообще от души запилишь и будет всё отточено работать то могу подогнать аккаунт с 1к + репой тут на wow jp , ну об этом уже в лс , да и оскрипте тоже можем там поговорить .
Сообщение # 2135 написано 14.03.2017 в 16:47
|
Помоги мне вписать всё это в код , что бы было так не важно где я бы не был
пусть то будет бг , пусть арена , да хоть элвинский лес , но что бы когда в меня летит скатер допустим ну или же что вписанно в макросе , я контратаковал скилом швд , даже если у меня в таргете был бы свой таргет , спасибками не абижу , а если вообще от души запилишь и будет всё отточено работать то могу подогнать аккаунт с 1к + репой тут на wow jp , ну об этом уже в лс , да и оскрипте тоже можем там поговорить . а вот это сделать нельзя,в рамках скриптов тк как все отслеживания кастов можно делать только по target mouseover arena и тд,а когда ты стоишь в эльвене и в тебя кто-то чтото кастует при этом он ненаходится у тебя в фокусе маусовере или таргете событие UNIT_SPELLCAST_SUCCEEDED просто не будет срабатывать |
а вот это сделать нельзя,в рамках скриптов тк как все отслеживания кастов можно делать только по target mouseover arena и тд,а когда ты стоишь в эльвене и в тебя кто-то чтото кастует при этом он ненаходится у тебя в фокусе маусовере или таргете событие UNIT_SPELLCAST_SUCCEEDED просто не будет срабатывать
Сообщение # 2137 написано 14.03.2017 в 22:07
|
Помоги мне вписать всё это в код , что бы было так не важно где я бы не был пусть то будет бг , пусть арена , да хоть элвинский лес , но что бы когда в меня летит скатер допустим ну или же что вписанно в макросе , я контратаковал скилом швд , даже если у меня в таргете был бы свой таргет , спасибками не абижу , а если вообще от души запилишь и будет всё отточено работать то могу подогнать аккаунт с 1к + репой тут на wow jp , ну об этом уже в лс , да и оскрипте тоже можем там поговорить . Код swd = CreateFrame("Frame", "swd", UIParent); 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 destGUID == UnitGUID("player") then if spellName == "Покаяние" or spellName == "Дезориентирующий выстрел" or spellName == "Ослепление" or spellName == "Превращение" or spellName == "Ошеломление" then RunMacro("SWD") end end end end end swd:SetScript("OnEvent", ev) swd:UnregisterEvent("COMBAT_LOG_EVENT_UNFILTERED") swd:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED") Создать макрос SWD с содержанием Код Для арены /cast [target=arena1]Слово Тьмы: Смерть По фокусу /cast [target=focus]Слово Тьмы: Смерть Вот этот берет в цель врага сразу же запоминает его фокусом и возвращает обратно таргет в последний таргет ( происходит очень быстро, незаметно можно сказать) + кастует швд в цель которую мы только что зафокусили. Тоже на арене норм /stopcasting /targetenemy /focus /targetlasttarget /cast [target=focus]Слово Тьмы: Смерть
Сообщение # 2138 написано 15.03.2017 в 05:18
|
В общем вставил твой скрипт
Код swd = CreateFrame("Frame", "swd", UIParent); 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 destGUID == UnitGUID("player") then if spellName == "Покаяние" or spellName == "Дезориентирующий выстрел" or spellName == "Ослепление" or spellName == "Превращение" or spellName == "Ошеломление" then RunMacro("SWD") end end end end end swd:SetScript("OnEvent", ev) swd:UnregisterEvent("COMBAT_LOG_EVENT_UNFILTERED") swd:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED") Код /stopcasting /targetenemy /focus /targetlasttarget /cast [target=focus]Слово Тьмы: Смерть Запустил Unlocker , далее в чате прописал /sdm run swd , зашел во второе окно магом , кастую шип не какой реакции скрипта =( , в чём проблема ? p/s мб в скайпе спишимся там через демонстрацию экрана всё покажу ???
Сообщение # 2139 написано 15.03.2017 в 14:20
|
В общем я так понял я без скрипта , играю на циркле . (p/s мб есть у кого нормальный на швд скрипт , скиньте в лс обменяю на аккаунт от wow jp с 1к репой)
Сообщение # 2142 написано 16.03.2017 в 02:06
|
Я только что на логон1 х100 протестил свой скрипт все работает просто прекрасно, значит плохо копируешь или делаешь что-то не так. Повторюсь что использую биндпад.
Сообщение # 2143 написано 16.03.2017 в 04:56
|
Я только что на логон1 х100 протестил свой скрипт все работает просто прекрасно, значит плохо копируешь или делаешь что-то не так. Повторюсь что использую биндпад. Код Создать макрос SWD с содержанием Код Для арены /cast [target=arena1]Слово Тьмы: Смерть По фокусу /cast [target=focus]Слово Тьмы: Смерть Вот этот берет в цель врага сразу же запоминает его фокусом и возвращает обратно таргет в последний таргет ( происходит очень быстро, незаметно можно сказать) + кастует швд в цель которую мы только что зафокусили. Тоже на арене норм /stopcasting /targetenemy /focus /targetlasttarget /cast [target=focus]Слово Тьмы: Смерть Как это такой макрос создать один . Или имеется ввиду создать вот такой макрос ? Код /stopcasting /targetenemy /focus /targetlasttarget /cast [target=focus]Слово Тьмы: Смерть Код /cast [target=arena1]Слово Тьмы: Смерть По фокусу /cast [target=focus]Слово Тьмы: Смерть И если можно скинь ссылку на свой бинд панд и какой у тебя Unloker на него если можно тоже ссылку . сам я пользуюсь Super Duper Macro играю на Fun Logon1 circle |
Да вот такой. Я просто дал тебе сразу 3 макроса, чтобы ты протестировал какой лучше себя покажет. 1 макрос для арены, 2 по фокусу, 3 и для пвп и для бг и для арены. на циркуле логон1 все точно пашет, я на фане и х100 протестировал сегодня.
Ребята помогите пожалуйста, пытаюсь написать автованиш ивент (UNIT_ENERGY), все вроде работает хорошо, но как добавить проверку на определенные способности? Чтобы ваниш юзался не от любого изменения энергии противника, а брал в счет название способности? Пробовал прикрутить UnitCastingInfo, но это кажется не то. |
Смотри в Bind Pad я вставил скрипт вот такой , ну который ты дал .
Код swd = CreateFrame("Frame", "swd", UIParent); 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 destGUID == UnitGUID("player") then if spellName == "Покаяние" or spellName == "Дезориентирующий выстрел" or spellName == "Ослепление" or spellName == "Превращение" or spellName == "Ошеломление" then RunMacro("SWD") end end end end end swd:SetScript("OnEvent", ev) swd:UnregisterEvent("COMBAT_LOG_EVENT_UNFILTERED") swd:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED") Далее создал в обычных макросах " не Bind Pad " Макрос вот такой , тоже твой. Код /stopcasting /targetenemy /focus /targetlasttarget /cast [target=focus]Слово Тьмы: Смерть Далее запустил свой анлокер , у меня это Ohack Как теперь запустить сам скрипт ??? Если можешь зайди в игру на Logon 1 Fun Circle , там проще будет общаться , ну или-же Skype . |
Кратко :
Нужен скрипт(или луа макро) на перевешивание дот когда прокнула трыня(на спд). Не кратко: Я ШП, ротация : 2 доты, палец. Прописал через иф нот ЮнитДебаф("таргет", "Дебаф") зен КастСпеллБайНейм("Дебаф") энд Теперь, что я хочу.. Вот скастовал я свои гадости на нежеланного врага, тут у меня прокает трыня, допустим ТБЛ(там +1200 СПД), теперь как граммотный ШП я должен обновить свои гадости т.к под проками они куда более опасны, как прописать !? Всё уже продумал, вот не знаю... ![]() Вот есть впринципе идея,не знаю какими командами осуществить, нужно было бы поставить кд на строчку, чтобы юзал строчку, и потом её кидал в кд на секунд 30 например: иф ЮнитБафф("плаер", "ТБЛ") зен КастСпеллБайНейм("Палец") - И вот щас, какую-нибудь бы команду, что-бы Если палец скастован, строчка кидается в КД на 30 секунд. Не знаю, по моему это единственный вариант, по крайней мере, я, пока еще ничего более продуктивного не смог придумать |
я бы так сделал в примитивной форме
--глобальные переменные t_pain=0 t_vamp=0 WD = CreateFrame("Frame", "SWD", UIParent); SWD:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED") SWD:SetScript("OnEvent", function(self, event, arg1, arg2) if (arg1 == "player" and arg2 == 'Прикосновение вампира') and UnitBuff('player','Название бафа от тринки') then t_vamp=1 end if (arg1 == "player" and arg2 == 'Боль') and UnitBuff('player','Название бафа от тринки') then t_pain=1 end end а дальше по коду проверка надо ли обновлять или вообще кастить if (tpain=0 and UnitBuff('player','Название бафа от тринки')) or (UnitDeBuff('target','Дебаф от боли')==nil) then кастим дотку end Добавлено (21.03.2017, 10:35) --------------------------------------------- смысл понятен наверно,если мы скастили доту под бафом от тринки то в переменную записывается 1,дальше перед кастом если тпайн=0 и есть баф от тринки или вообще нет дебафа от дотки то кастим пайн это в очень простой форме в идеале надо хранить таблицу с гуидами целей на которые были наложены доты и под какими бафами были наложены,а потом находить в этой таблице гуид текущей цели и сравнивать с таблицей дальше уже принимать решение обновлять или нет |
prn, спасибо большое, отлично придумал!
Прочитал скрипт,с виду работающая штучка!) Должно быть профитно. Не могу потестить, вставил вот так вот в скрипт, выдаёт Эррор. Вот это вставил: --глобальные переменные t_pain=0 t_vamp=0 WD = CreateFrame("Frame", "SWD", UIParent); SWD:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED") SWD:SetScript("OnEvent", function(self, event, arg1, arg2) if (arg1 == "player" and arg2 == 'Прикосновение вампира') and UnitBuff('player','Прилив мощи') then t_vamp=1 end if (arg1 == "player" and arg2 == 'Слово Тьмы: Боль') and UnitBuff('player','Прилив мощи') then t_pain=1 end end if (t_pain=0 and UnitBuff('player','Прилив мощи')) or (UnitDeBuff('target','Прикосновение вампира')==nil) then CastSpellByName("Прикосновение вампира") end Вот такую ошибку выдаёт: ("tst" - это название макроса в который я вбиваю скрипт(через аддон hack) Syntax error in "tst" at line 16 [string"tst"]:16:')' expected (to close'('at line 7) near 'if'
Сообщение # 2156 написано 21.03.2017 в 13:51
|
Привет
пытаюсь создать функцию Test(), которая выдает true в течение 5 секунд после использования мною спела false в остальных случаях просьба знающим людям поправить код ошибок не выдает, но Test() всегда false, а timer всегда nil Код local timer --создаем функцию function Test() if timer==nil or GetTime() > timer then return false else return true end end --если условия выполняются (игрок использует spell), то переменной timer присваивается значение Getime() + 5 local function test_OnEvent(self,event,...) if event == "COMBAT_LOG_EVENT_UNFILTERED" then local _, eventType, _, srcName, srcFlag, _, _, _, _, spell = select(1, ...) if eventType == "SPELL_CAST_SUCCESS" and srcName == UnitName("player") and spell == "spell" then local timer = GetTime() + 5 end end end local frame = CreateFrame("Frame", "testFrame"); frame:SetScript("OnEvent", test_OnEvent); frame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED"); |
if eventType == "SPELL_CAST_SUCCESS" and srcName == UnitName("player") and spell == "spell" then local timer = GetTime() + 5 end timer = GetTime() + 5 end Добавлено (22.03.2017, 13:50)
Сообщение # 2159 написано 22.03.2017 в 13:50
|
я так понял, пкр разблокирует только тот код, который прописывается в его xml файлах(он еще отображается в самой проге), а унлокер с гагарина 1.7, разблокирует только макросы. но оба варианта отстойнишие ведь? нету такого чтоб аддоны разблокировал?
хотел както связать с аддоном, но как нарошна, если с разблоченого макроса или с пкр скрипта юзнуть функцию или переменную с созданного аддона, то интерфейс ругается и просит заблочить аддон.. Добавлено (23.03.2017, 16:47) там функция и не нужна посути, достаточно лишь переменной timer, ну и проверки (timer-GetTime() > 0) и это зря, когда свои спеллы отслеживаете, то лучше юзать "UNIT_SPELLCAST_SUCCEEDED" с проверкой плеера и спелла. намного шустрее будет. Добавлено (23.03.2017, 16:59) там нужно подключать ооочень сложную формулу, чтоб был профит, и срабатывать она будет крайне редко. без нее в 99% случаях дпс снизится, если конечно ты не зеленый с задоненными тринями. |
| |||