Модератор форума: staford11  
Использование Lua скриптов.
Punisher45
Капрал
Цитата rival123 ()
Товарищи, нужна помощь.
Не смог уместить все в один макрос (bind pad). Как можно решить мою проблему? Можно как-то запускать одновременно 2 макроса?
Возможно где-то было уже, но поиск работает очень криво. Не нашел.


Пользуюсь SDM на кате, там есть режим скрипта, где кол-во символов практически неограничено, попробуй в BP поискать что-то похожее (по моему там лимит на 1000 символов в режиме просто макроса)
Сообщение # 2191 написано 02.04.2017 в 15:30
Omaygad
Скаут
Цитата Punisher45 ()
Элементарно


Код
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  
if UnitBuff("player","Слово силы: Щит")  then
CancelUnitBuff("player","Слово силы: Щит");
elseif UnitBuff("player","Божественное покровительство")  then
CancelUnitBuff("player","Божественное покровительство");
end
CastSpellByName("Слово Тьмы: Смерть")
end    
end        
end        
end)

Вроде срабатывает именно когда только Слово силы щит и Божественное покровительство , нормально снимает их и швд проходит на изи , но допустим если будут ещё баффы от пенанса или ещё от чего либо , просто снимает Слово силы щит , только его а божественное покровительство остаётся и в итоге даёт паладин репитанс , скрипт снимает Слово силы щит даёт швд , а Божественное покровительство осталось и ты стоишь в репитансе ;((((
Можно исправить или доработать ???
Сообщение # 2192 отредактировано Omaygad - Понедельник, 03.04.2017, 11:43
Punisher45
Капрал
Цитата Omaygad ()
Вроде срабатывает именно когда только Слово силы щит и Божественное покровительство , нормально снимает их и швд проходит на изи , но допустим если будут ещё баффы от пенанса или ещё от чего либо , просто снимает Слово силы щит , только его а божественное покровительство остаётся и в итоге даёт паладин репитанс , скрипт снимает Слово силы щит даёт швд , а Божественное покровительство осталось и ты стоишь в репитансе ;((((
Можно исправить или доработать ???


Да, конечно, легко, я просто не учел что в блоке условия elseif не выполняется если предыдущее условие верно, отсюда и кансель только щита. Хотя может причина и не в этом, не знаю, пробуй так:

Код
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  
if UnitBuff("player","Слово силы: Щит")  then
CancelUnitBuff("player","Слово силы: Щит");
end
if UnitBuff("player","Божественное покровительство")  then
CancelUnitBuff("player","Божественное покровительство");
end
CastSpellByName("Слово Тьмы: Смерть")
end    
end        
end        
end)

Если там тебя еще какая-то чепуха щилдит, скажи какая, я допишу и её
Сообщение # 2193 отредактировано Punisher45 - Понедельник, 03.04.2017, 23:51
xGhostx
Скаут
Цитата Punisher45 ()
if UnitBuff("player","Слово силы: Щит")  thenCancelUnitBuff("player","Слово силы: Щит");
так как в CancelUnitBuff встроен поиск, проверка UnitBuff лишняя.
------------------------------------

ищу функцию, которая отвечает есть ли лут в мобе, она еще курсор меняет на три мешка, желтые/серые..
в апи уверен на 99% что такой нету. но в клиенте гдето ведь должна быть? вот мне её адрес или имя, если кто знает.
Сообщение # 2194 написано 04.04.2017 в 07:38
Punisher45
Капрал
Цитата xGhostx ()
проверка UnitBuff лишняя

Не знал, ну да ладно, сам уберет

Цитата xGhostx ()
ищу функцию, которая отвечает есть ли лут в мобе

GetNumLootItems() возвращает интовскую переменную о количестве лута в лут окне, если ноль или nil то соответственно лута нет
Ну а вообще, я так понял, что тебе нужна функция которая определяла бы по маус оверу есть лут в трупе моба или нет еще ДО того как ты его вообще полутаешь, я сомневаюсь что это реально
Сообщение # 2195 отредактировано Punisher45 - Вторник, 04.04.2017, 13:19
Omaygad
Скаут
Цитата Punisher45 ()
Если там тебя еще какая-то чепуха щилдит, скажи какая, я допишу и её
Спасибо работает , слушай а не мог бы ты ещё кое-что сделать , короче этот скрипт срабатывает тогда когда я именно вражескую цель держу в таргете , тоесть допустим кидает паладин покояние я должен его держать в таргете что бы швд сработало , если допустим я его напа или своего или же себя буду держать в таргете и он даст мне покаяние то швд не сработает , не мог бы ты исправить эту фигню ???
Сообщение # 2196 написано 04.04.2017 в 14:17
Punisher45
Капрал
Цитата Omaygad ()
Спасибо работает , слушай а не мог бы ты ещё кое-что сделать , короче этот скрипт срабатывает тогда когда я именно вражескую цель держу в таргете , тоесть допустим кидает паладин покояние я должен его держать в таргете что бы швд сработало , если допустим я его напа или своего или же себя буду держать в таргете и он даст мне покаяние то швд не сработает , не мог бы ты исправить эту фигню ???


Код
SWD = CreateFrame("Frame", "SWD", UIParent);        
SWD:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED")        
SWD:SetScript("OnEvent", function(self, event, arg1, arg2)        
SpellBase = {"Дезориентирующий выстрел","Грубый прием","Превращение","Покаяние","Ослепление","Ошеломление","Ненасытная стужа"}   
local cd = GetSpellCooldown("Слово Тьмы: Смерть")    
local CUB =  CancelUnitBuff
local CSBN = CastSpellByName
for v = 1,#SpellBase do        
local args = {arg1, arg2}  
if cd == 0 then        
if (arg1 == "target" and arg2 == SpellBase[v]) then
CUB("player","Слово силы: Щит");
CUB("player","Божественное покровительство");
CSBN("Слово Тьмы: Смерть")
end
if (arg1 == "focus" and arg2 == SpellBase[v]) then
CUB("player","Слово силы: Щит");
CUB("player","Божественное покровительство");
CSBN("Слово Тьмы: Смерть","focus")  
end
if (arg1 == "arena1" and arg2 == SpellBase[v]) then
CUB("player","Слово силы: Щит");
CUB("player","Божественное покровительство");
CSBN("Слово Тьмы: Смерть","arena1")   
end
if (arg1 == "arena2" and arg2 == SpellBase[v]) then
CUB("player","Слово силы: Щит");
CUB("player","Божественное покровительство");
CSBN("Слово Тьмы: Смерть","arena2")  
end
if (arg1 == "arena3" and arg2 == SpellBase[v]) then
CUB("player","Слово силы: Щит");
CUB("player","Божественное покровительство");
CSBN("Слово Тьмы: Смерть","arena3")   
end
if (arg1 == "arena4" and arg2 == SpellBase[v]) then
CUB("player","Слово силы: Щит");
CUB("player","Божественное покровительство");
CSBN("Слово Тьмы: Смерть","arena4")
end
if (arg1 == "arena5" and arg2 == SpellBase[v]) then
CUB("player","Слово силы: Щит");
CUB("player","Божественное покровительство");
CSBN("Слово Тьмы: Смерть","arena5")  
end
end
end        
end)


Пробуй такое, не гарантирую, что будет работать
Сообщение # 2197 отредактировано Punisher45 - Вторник, 04.04.2017, 18:00
rival123
Скаут
Цитата rival123 ()
Товарищи, нужна помощь. Не смог уместить все в один макрос (bind pad). Как можно решить мою проблему? Можно как-то запускать одновременно 2 макроса?
Возможно где-то было уже, но поиск работает очень криво. Не нашел.

Друзья, все еще нужна помощь. Ничего не нашел
Сообщение # 2198 написано 04.04.2017 в 18:52
xGhostx
Скаут
Цитата Punisher45 ()
GetNumLootItems()
да, это не то.
Цитата Punisher45 ()
Ну а вообще, я так понял, что тебе нужна функция которая определяла бы по маус оверу есть лут в трупе моба или нет еще ДО того как ты его вообще полутаешь, я сомневаюсь что это реально
мешки же на курсор стявятся, значит в клиенте есть инфа, а если есть инфа, значит реально.
Цитата Punisher45 ()
SWD = CreateFrame("Frame", "SWD", UIParent); ..........
Код
local SWD = CreateFrame("Frame")
SWD:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED")
SWD:SetScript("OnEvent", function(_, _, unit, spell)
if GetSpellCooldown("Слово Тьмы: Смерть") ~= 0 or not UnitCanAttack(unit,"player") then return end
for _,s in ipairs({"Дезориентирующий выстрел","Грубый прием","Превращение","Покаяние","Ослепление","Ошеломление","Ненасытная стужа"} do
if spell == s then
CancelUnitBuff("player","Слово силы: Щит")
CancelUnitBuff("player","Божественное покровительство")
CastSpellByName("Слово Тьмы: Смерть",unit)
end
end
end)
Цитата rival123 ()
Товарищи, нужна помощь. Не смог уместить все в один макрос (bind pad). Как можно решить мою проблему? Можно как-то запускать одновременно 2 макроса?
создаешь первый макрос с именем к примеру: "macro1", текстом: "/bp", биндить его необязательно, но FastTrigger в окне бинда, ему поставить нужно.
создаешь второй макрос с любым именем и текстом: "/click BindPadFastMacro macro1". биндишь на клавишу и теперь по нажатию на этот макрос будут работать оба.
Сообщение # 2199 написано 04.04.2017 в 23:20
Omaygad
Скаут
Цитата xGhostx ()
local SWD = CreateFrame("Frame")SWD:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED")
SWD:SetScript("OnEvent", function(_, _, unit, spell)
if GetSpellCooldown("Слово Тьмы: Смерть") ~= 0 or not UnitCanAttack(unit,"player") then return end
for _,s in ipairs({"Дезориентирующий выстрел","Грубый прием","Превращение","Покаяние","Ослепление","Ошеломление","Ненасытная стужа"} do
if spell == s then
CancelUnitBuff("player","Слово силы: Щит")
CancelUnitBuff("player","Божественное покровительство")
CastSpellByName("Слово Тьмы: Смерть",unit)
end
end
end)
Вообще перестал работать скрипт =(((((

Добавлено (05.04.2017, 07:31)
---------------------------------------------

Цитата Punisher45 ()
SWD = CreateFrame("Frame", "SWD", UIParent);        SWD:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED")        
SWD:SetScript("OnEvent", function(self, event, arg1, arg2)        
SpellBase = {"Дезориентирующий выстрел","Грубый прием","Превращение","Покаяние","Ослепление","Ошеломление","Ненасытная стужа"}   
local cd = GetSpellCooldown("Слово Тьмы: Смерть")    
local CUB =  CancelUnitBuff
local CSBN = CastSpellByName
for v = 1,#SpellBase do        
local args = {arg1, arg2}  
if cd == 0 then        
if (arg1 == "target" and arg2 == SpellBase[v]) then
CUB("player","Слово силы: Щит");
CUB("player","Божественное покровительство");
CSBN("Слово Тьмы: Смерть")
end
if (arg1 == "focus" and arg2 == SpellBase[v]) then
CUB("player","Слово силы: Щит");
CUB("player","Божественное покровительство");
CSBN("Слово Тьмы: Смерть","focus")  
end
if (arg1 == "arena1" and arg2 == SpellBase[v]) then
CUB("player","Слово силы: Щит");
CUB("player","Божественное покровительство");
CSBN("Слово Тьмы: Смерть","arena1")   
end
if (arg1 == "arena2" and arg2 == SpellBase[v]) then
CUB("player","Слово силы: Щит");
CUB("player","Божественное покровительство");
CSBN("Слово Тьмы: Смерть","arena2")  
end
if (arg1 == "arena3" and arg2 == SpellBase[v]) then
CUB("player","Слово силы: Щит");
CUB("player","Божественное покровительство");
CSBN("Слово Тьмы: Смерть","arena3")   
end
if (arg1 == "arena4" and arg2 == SpellBase[v]) then
CUB("player","Слово силы: Щит");
CUB("player","Божественное покровительство");
CSBN("Слово Тьмы: Смерть","arena4")
end
if (arg1 == "arena5" and arg2 == SpellBase[v]) then
CUB("player","Слово силы: Щит");
CUB("player","Божественное покровительство");
CSBN("Слово Тьмы: Смерть","arena5")  
end
end
end        
end)
Я так понимаю , только на арене должен работать , в не арены не будет ???
Сообщение # 2200 написано 05.04.2017 в 07:31
Punisher45
Капрал
Цитата Omaygad ()
Я так понимаю , только на арене должен работать , в не арены не будет ???


Будет. По фокусу и по таргету одновременно, а на арене - еще и по всем существующим аренафреймам, такая, знаешь, попытка сделать что-то универсальное

Добавлено (05.04.2017, 16:50)
---------------------------------------------

Цитата xGhostx ()
мешки же на курсор стявятся, значит в клиенте есть инфа, а если есть инфа, значит реально.

А кто тебе сказал, что это все исполняется через оболочку скриптового языка lua? Тут надо рыть и копать, я не думаю, что именно в этой теме кто-то будет этим заниматься, ну а так, удачи конечно же
Сообщение # 2201 написано 05.04.2017 в 16:50
prn
Скаут
ищу функцию, которая отвечает есть ли лут в мобе, она еще курсор меняет на три мешка, желтые/серые..
в апи уверен на 99% что такой нету. но в клиенте гдето ведь должна быть? вот мне её адрес или имя, если кто знает.

ну если тебе надо,при наведении мышкой на труп моба проверять меняет ли курсор внешний вид на мешки то можно сделать перехват SetCursor(http://wowprogramming.com/docs/api/SetCursor)  фуцнкцией hooksecurefunc (http://wowprogramming.com/docs/api/hooksecurefunc),посмотреть тип курсора если это мешки то есть лут,также  есть функции для работы с курсором мыши возможно в них что то есть,
если надо просто при наведении мыши на труп моба определять есть ли лут,то хз есть ли вообще инфа в клиенте о луте моба без нажатия по его трупу,а если и есть то надо уже перебирать в памяти искать firstob nextobj ,сравнивать с тем что под курсором или в таргете,дальше по офсетам на структуру о итемах,почти все оффсеты для клиентов есть на ownedcore.com,
Сообщение # 2202 отредактировано prn - Среда, 05.04.2017, 17:41
Omaygad
Скаут
Цитата Punisher45 ()
Будет. По фокусу и по таргету одновременно, а на арене - еще и по всем существующим аренафреймам, такая, знаешь, попытка сделать что-то универсальное

Хорошо я тебя понял , приеду с работы протестирую и на арене и в не арены , потом отпишу тебе .
Сообщение # 2203 написано 05.04.2017 в 19:54
Punisher45
Капрал
Цитата Omaygad ()
Хорошо я тебя понял , приеду с работы протестирую и на арене и в не арены , потом отпишу тебе .

Ну как успехи?
Сообщение # 2204 написано 06.04.2017 в 20:36
Wphero
Скаут
ребят помогите !!! играю на 3.3.5 есть пкр ikick запускаю, вылезает окно "прекращение работы ikick и полоска загрузки ,над полоскай написано  виндовс осущевстляет устанения этой ошибки . 3сек горит и все закрывается. может драйвера обнавить какие то надо кто знает???
Сообщение # 2205 отредактировано Wphero - Пятница, 07.04.2017, 01:17
Punisher45
Капрал
Цитата Wphero ()
ребят помогите !!! играю на 3.3.5 есть пкр ikick запускаю, вылезает окно "прекращение работы ikick и полоска загрузки ,над полоскай написано  виндовс осущевстляет устанения этой ошибки . 3сек горит и все закрывается. может драйвера обнавить какие то надо кто знает???


Разве в 2к17 есть хоть один рабочий айкик пусть даже на 3.3.5? Не слышал, чтобы это программа до сих пор жива была. Пробуй обычным скриптом на автокик касты резать
Сообщение # 2206 написано 07.04.2017 в 17:00
Rextown
Скаут
Доброго времени суток
В общем такая просьба, скиньте пожалуйста кто-нибудь анлокер для 4.3.4 (Для Circle)

Добавлено (10.04.2017, 17:17)
---------------------------------------------
И снова здравствуйте)
В общем такой вопрос, будет ли работать данный скрипт



Или же его вот такого вида сделать?


Далее
Скрипт на авторефлект, который несколько страниц назад выкладывал "Valvedoto"


Будет ли он активироваться на арене, если кастуется даже не в меня, а, например, в моего напарника?
И будет ли он работать, если каст по мне идет через фокус?
Мне нужно чтобы рефлект активировался только в том случае, если кастуется именно в меня.И не важно берут меня в таргет или кастуют по мне через фокус
Просто я тут уже спрашивал на эту тему, мне сказали что это реализовать невозможно.Но может мастера нашли все таки способ

И последнее
Вот скрипт на сбивание тотемов через взятие их в таргет


Как реализовать через ивенты чтобы тоттемы сбивались автоматом, и их не нужно было в ручную брать в таргет
Просто я в этом вообще не шарю((
Сообщение # 2207 отредактировано Rextown - Понедельник, 10.04.2017, 17:19
Punisher45
Капрал
Цитата Rextown ()
И снова здравствуйте)В общем такой вопрос, будет ли работать данный скрипт

Или же его вот такого вида сделать?


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

Код
function Kick(self, elapsed)
local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target")
local enabled = GetSpellCooldown("Зуботычина")
local inRange = IsSpellInRange("Зуботычина","target")
local spellfocus, _, _, _, _, endTimefocus, _, _, interruptfocus = UnitCastingInfo("focus")
local inRangefocus = IsSpellInRange("Зуботычина","focus")
local finish = endTime/1000 - GetTime()
local finishfocus = endTimefocus/1000 - GetTime()
local spellbase ={"Вспышка света","Божественный свет","Быстрое исцеление","Великое исцеление","Свет небес"}
for i=1,#spellbase do
if spell == spellbase [i]and interrupt == false and enabled == 0 and inRange == 1 and finish <= 0.3 then
CastSpellByName("Зуботычина")
end
if spellfocus == spellbase [i]and interruptfocus == false and enabled == 0 and inRangefocus == 1 and finishfocus <= 0.3 then
CastSpellByName("Зуботычина","focus")
end
end
end
CreateFrame("Frame", "KickFrame")
KickFrame:SetScript("OnUpdate", Kick)

По поводу рефлекта не знаю, что-то вроде такого:

Код
function Reflekt(self, elapsed)
local spellt, _, _, _, _, endTimet, _, _, interruptt = UnitCastingInfo("target")
local spellf, _, _, _, _, endTimef, _, _, interruptf = UnitCastingInfo("focus")
local spella1, _, _, _, _, endTimea1, _, _, interrupta1 = UnitCastingInfo("arena1")
local spella2, _, _, _, _, endTimea2, _, _, interrupta2 = UnitCastingInfo("arena2")
local spella3, _, _, _, _, endTimea3, _, _, interrupta3 = UnitCastingInfo("arena3")
local spella4, _, _, _, _, endTimea4, _, _, interrupta4 = UnitCastingInfo("arena4")
local spella5, _, _, _, _, endTimea5, _, _, interrupta5 = UnitCastingInfo("arena5")
local finisht = endTimet/1000 - GetTime()
local finishf = endTimef/1000 - GetTime()
local finisha1 = endTimea1/1000 - GetTime()
local finisha2 = endTimea2/1000 - GetTime()
local finisha3 = endTimea3/1000 - GetTime()
local finisha4 = endTimea4/1000 - GetTime()
local finisha5 = endTimea5/1000 - GetTime()
local SpellBase = {"Сглаз","Стрела Хаоса","Смерч""Превращение","Жертвенный огонь","Выброс лавы"}
local enabled = GetSpellCooldown("Отражение заклинания")
for i=1,#SpellBase do
   if spellt == SpellBase [i]and interruptt == false and enabled == 0 and finisht <= 0.2 then
       RunMacro("Отражение")
    end
    if spellf == SpellBase [i]and interruptf == false and enabled == 0 and finishf <= 0.2 then
       RunMacro("Отражение")
    end
    if spella1 == SpellBase [i]and interrupta1 == false and enabled == 0 and finisha1 <= 0.2 then
       RunMacro("Отражение")
    end
    if spella2 == SpellBase [i]and interrupta2 == false and enabled == 0 and finisha2 <= 0.2 then
       RunMacro("Отражение")
    end
    if spella3 == SpellBase [i]and interrupta3 == false and enabled == 0 and finisha3 <= 0.2 then
       RunMacro("Отражение")
    end
    if spella4 == SpellBase [i]and interrupta4 == false and enabled == 0 and finisha4 <= 0.2 then
       RunMacro("Отражение")
    end
    if spella5 == SpellBase [i]and interrupta5 == false and enabled == 0 and finisha5 <= 0.2 then
       RunMacro("Отражение")
    end
end
end
CreateFrame("Frame", "ReflektFrame")
ReflektFrame:SetScript("OnUpdate", Reflekt)

Макрос "Отражение":
/equip пукалка1
/equip пукалка2
/cast Отражение заклинания

или через готовый эквип набор с уже выставленными там одноруком и щитом
/equipset название твоего сета
/cast Отражение заклинания

Добавлено (11.04.2017, 16:16)
---------------------------------------------

Цитата Rextown ()
Как реализовать через ивенты чтобы тоттемы сбивались автоматом, и их не нужно было в ручную брать в таргетПросто я в этом вообще не шарю((

Насчет болезненной темы с тотемами ,могу сказать, что еще со времен бк, тотемы можно выбирать только вручную, ибо из-за вечнобомбящих шаманов близзарды отключили возможность выбора напрямую тотема через макросы. Я тоже думал немного на эту тему, и у меня есть личная наработка, но какой-то очевидный способ качественно выбрать тотем без переборов тотема через фрейм фокуса/таргета мне неизвестен) Вот тебе код, может пригодится


Код
/run function Tote(self, elapsed) local buff = UnitBuff("focus", "Эффект тотема заземления") if buff then for i = 0, 6 do TargetNearestEnemy() name = UnitName("target") end if name == "Тотем заземления" then CastSpellByName("Слово Тьмы: Смерть") end end end
/run CreateFrame("Frame", "ToteFrame")
/run ToteFrame:SetScript("OnUpdate", Tote)

писал это давно, не знаю работает ли вообще
Сообщение # 2208 отредактировано Punisher45 - Вторник, 11.04.2017, 16:08
Rextown
Скаут
Ага, спасибо
А вот смотри "for i=1,#spellbase do
if spell == spellbase (квадратная скобка)i(квадратная скобка)and"
Что тут означает "i"? И нужно ли после (квадратная скобка)i(квадратная скобка) ставить пробел? 
[] не получилось поставить в посте((
Сообщение # 2209 отредактировано Rextown - Вторник, 11.04.2017, 18:45
Punisher45
Капрал
Цитата Rextown ()
Ага, спасибоА вот смотри "for i=1,#spellbase do
if spell == spellbase (квадратная скобка)i(квадратная скобка)and"
Что тут означает "i"? И нужно ли после (квадратная скобка)i(квадратная скобка) ставить пробел? 
[] не получилось поставить в посте((

i это переменная цикла-счетчик
конструкция for i=1,#spellbase do обозначает что цикл будет обходить массив с 1 элемента до конца массива) Это все можно почитать в пособиях по lua. Да, этот гадский форум частенько хавает пробелы или еще какие то гадости делает с кодом, ничего не могу поделать(((
Сообщение # 2210 написано 11.04.2017 в 20:10
Rextown
Скаут
Punisher45,  а можешь кинуть сайтик, где можно почитать о Luа?Желательно на русском, а то я английский весьма посредственно знаю
Сообщение # 2211 написано 11.04.2017 в 20:47
Punisher45
Капрал
Цитата Rextown ()
а можешь кинуть сайтик

http://www.lua.ru/doc/

читал тут когда нужно было
Сообщение # 2212 написано 11.04.2017 в 21:11
Rextown
Скаут
После переустановки клиента, Анлокер перестал видеть процесс
Клиент скачивал с сайта PandaWow.
Если переименовать ярлык с PandaWoW-32 на "WoW", начинает вылезать ошибка 0xc000005 при попытке войти в игру
Версия клиента соответственно 5.4.8

UPD

Добавил в исключения DEP, вроде все заработало

Добавлено (12.04.2017, 04:29)
---------------------------------------------
Punisher45, Блин, что-то рефлект вообще не работает.А автокик работает только по фокусу, на таргет 0 внимания

Сообщение # 2213 отредактировано Rextown - Среда, 12.04.2017, 03:30
Punisher45
Капрал
Цитата Rextown ()
После переустановки клиента, Анлокер перестал видеть процесс
Клиент скачивал с сайта PandaWow.
Если переименовать ярлык с PandaWoW-32 на "WoW", начинает вылезать ошибка 0xc000005 при попытке войти в игру
Версия клиента соответственно 5.4.8

UPD

Добавил в исключения DEP, вроде все заработало
Добавлено (12.04.2017, 04:29)
---------------------------------------------
Punisher45, Блин, что-то рефлект вообще не работает.А автокик работает только по фокусу, на таргет 0 внимания
ну я же их не тестировал. так набросал и все) Сегодня может попробую потестить и поправить, но не знаю, лень как-то

Добавлено (12.04.2017, 13:58)
---------------------------------------------
Цитата Rextown ()
Блин, что-то рефлект вообще не работает

Короче, насчет рефлекта... отследить направление спела выпущеного твоей целью нереально, а значит рефлект определенного заклинания от определенной цели которая выпускает его ИМЕННО В ТЕБЯ невозможен(по крайней мере я не знаю такого способа). Но для пвп дуелей 1х1 возможен такой вариант, когда нет никого кроме 1 цели которая в твоем таргете, для арены такой скрипт почти бесполезен


Код
function REFL(self, elapsed)
if UnitExists and UnitCastingInfo("target") then
local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target")
local finish = endTime/1000 - GetTime()
local enabled = GetSpellCooldown("Отражение заклинания")
local enabled2 = GetSpellCooldown("Боевой крик")
local power = UnitPower("player")
local SpellBase = {"Сглаз","Стрела Хаоса","Смерч","Превращение","Жертвенный огонь","Выброс лавы"}  
for i=1,#SpellBase do                
if spell == SpellBase [i]and finish <= 0.6 then
if power < 15 and enabled2 == 0 then
CastSpellByName("Боевой крик")
end
index = GetShapeshiftForm()
if index ~= 1 and index ~= 2 then
CastSpellByName("Оборонительная стойка")
end  
if enabled == 0 then
if GetInventorySlotInfo("MainHandSlot") ~= 71362 then  -- здесь вместо 71362 вписываешь id своего однорука
EquipItemByName(71362)         -- здесь вместо 71362 вписываешь id своего однорука
EquipItemByName(67061)         -- здесь вместо 67061 вписываешь id своего щита
end
CastSpellByName("Отражение заклинания")
end  
end  
end  
end   
end                 
CreateFrame("Frame", "REFLFrame")
REFLFrame:SetScript("OnUpdate", REFL)

Потестил, вроде кое как работает. После рефлекта тебе придется вручную одевать двурук или что ты там носишь(и в каком спеке гоняешь), помни об этом

Добавлено (12.04.2017, 14:48)
---------------------------------------------
Цитата Rextown ()
А автокик работает только по фокусу, на таргет 0 внимания

Не знаю почему, но работает только двумя раздельными функциями, такое впечатление что вызов функции UnitCastingInfo можно делать лишь один раз из 1 функции, а иначе в следующие пременные записывается мусор или nil


Код
function Kick(self, elapsed)
local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target")
if spell and UnitExists("target") then
local enabled = GetSpellCooldown("Зуботычина")
local inRange = IsSpellInRange("Зуботычина","target")
local finish = endTime/1000 - GetTime()
local spellbase ={"Вспышка света","Божественный свет","Быстрое исцеление","Великое исцеление","Свет небес"}
for i=1,#spellbase do
if spell == spellbase [i]and interrupt == false and enabled == 0 and inRange == 1 and finish < 0.3 then
CastSpellByName("Зуботычина")
end
end
end
end
CreateFrame("Frame", "KickFrame")
KickFrame:SetScript("OnUpdate", Kick)

function Kick2(self, elapsed)
local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("focus")
if spell and UnitExists("focus") then
local enabled = GetSpellCooldown("Зуботычина")
local inRange = IsSpellInRange("Зуботычина","focus")
local finish = endTime/1000 - GetTime()
local spellbase ={"Вспышка света","Божественный свет","Быстрое исцеление","Великое исцеление","Свет небес"}
for i=1,#spellbase do
if spell == spellbase [i]and interrupt == false and enabled == 0 and inRange == 1 and finish < 0.3 then
CastSpellByName("Зуботычина")
end
end
end
end
CreateFrame("Frame", "Kick2Frame")
Kick2Frame:SetScript("OnUpdate", Kick2)

и да, форум постоянно бьет код
spellbase и  i в скобках должно быть вместе, без пробела.
Сообщение # 2214 отредактировано Punisher45 - Среда, 12.04.2017, 14:57
Rextown
Скаут
Punisher45, А посмотри пожалуйста вот эти 2 скрипта, они оба будут работать?


И вот второй

Сообщение # 2215 отредактировано Rextown - Среда, 12.04.2017, 18:50
killes02
Скаут
Помогите с скриптами для профилей PqRдля Авара на арену cбивания кастов и отрожения заклинаний.
Сообщение # 2216 написано 12.04.2017 в 18:53
Punisher45
Капрал
Цитата Rextown ()
if UnitDebuff("party1", "Дезориентирующий выстрел")then
if enabled==0 then
if inRange==1 then
RunMacro("Интервейн")

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

или в этом и соль, разрядить трапу?)
но выглядит рабочим, не знаю.
Сообщение # 2217 отредактировано Punisher45 - Среда, 12.04.2017, 19:10
Rextown
Скаут
Punisher45,  Ну да, словить трапу, которая предназначалась для моего хиллера

Добавлено (12.04.2017, 21:05)
---------------------------------------------
Блин, опять лажа с процессом игры началась

После переименования экзешника с PandaWoW или же uWoW в просто WoW, перестал запускаться Warcraft вообще. Выскакивает ошибка 0xc000005. Думал что после добавления в исключение DEP все будет нормально, но WoW запустился только один раз, потом опять ошибка вылазила
А если не переименовывать процесс, то Анлокер тупо его не видит
Подумал что это из-за того что на папку стоит ограничение "только для чтения", попытался его снять, но почему то не получается 
Есть у кого идеи как это все исправить?

Сообщение # 2218 написано 12.04.2017 в 21:05
Punisher45
Капрал
Цитата Rextown ()
Есть у кого идеи как это все исправить?

Скачай какую то туфту вроде dllinjector и найди в инете либу с анлокером и вручную ее вкатывай в клиент, большинство читов привязаны к имени процесса Wow.exe так что есть вариант изменить имя процесса, если это возможно. Так же в те же читы всегда вшит анлокер, WoW+ ohack и другие
Сообщение # 2219 написано 12.04.2017 в 21:23
Valvedoto
Скаут
Есть скрипт на выбивания из инвиза рог/фералов/найтэльфов. Как заставить его работать по арена фреймам? То есть, ты допустим бьешь таргет арена1, внезапно арена3 юзает ваниш, скрипт должен арена3 выбить из ваниша. Кто нибудь знает как реализовать подобное?
Сообщение # 2220 написано 12.04.2017 в 22:20
Поиск: