Модератор форума: staford11  
Использование Lua скриптов.
DreamlØlz
Скаут
Цитата tobmaps ()
А что плохого в переборе всех целей? Всё равно можно проверить дистанцию до каждой в цикле и вернуть исходный таргет в конце. Это происходит настолько быстро что даже не заметите вообще переключение таргетов.

тотемы можно и проще килять ...
Сообщение # 1861 написано 01.08.2016 в 15:20
Kieg
Сержант
Цитата DreamlØlz ()
тотемы можно и проще килять ...

Подкинеш идею?
Сообщение # 1862 написано 02.08.2016 в 17:04
mopf5
Скаут
Челики хелпаните , давно не играл в вов , что случилось с циркулем и ювовом? нигде не работает ни супердупермакро ни биндпад , как писать скрипты ? через что ?

Добавлено (06.08.2016, 02:54)
---------------------------------------------
если что скрипт для 3.3.5 (юшошик) авто кик в 0.2 до конца каста

Сообщение # 1863 написано 06.08.2016 в 02:54
Lev1
Скаут
помогите плиз https://cloud.mail.ru/home/Wow%202016-06-08%2011-41-59-645.avi
Сообщение # 1864 написано 13.08.2016 в 11:37
DreamlØlz
Скаут
Цитата Kieg ()
Подкинеш идею?
Смысла мне делать это просто так ? Уже говорил тут мусор кидают.
Сообщение # 1865 написано 13.08.2016 в 15:35
qorvo
Скаут
Заинтересовала идея использования способности без собственного участия. Простой пример: party1 пишет макросом в чат "боп", player дает ему боп. Возможно ли подобное? Первое, что приходит в голову - использование способности, когда party1 афк. Пример: party1 пишет /афк, player юзает боп. То же самое можно делать через днд, более подходящих эвентов, чем UnitIsAFK и UnitIsDND, в голову не пришло. Хотелось бы все же через чат. Спасибо.
Сообщение # 1866 отредактировано qorvo - Понедельник, 15.08.2016, 12:40
angelfoz
Скаут
Привет помоги с скриптом хочу что бы на фросте когда прокает пронзающий ветер оно само его юзало ... вот попробовал так не работает...помоги плиз:) BuffF= CreateFrame("Frame", "BuffFrame", UIParent);
BuffF:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED");
BuffF:SetScript("OnEvent", function(self, event, arg1, arg2, ...)
if(event=="COMBAT_LOG_EVENT_UNFILTERED") then
if UnitBuff("player","Уничтожение!") then
local enabled = GetSpellCooldown("Воющий ветер")
if enabled == 0 then
inRange = IsSpellInRange("Воющий ветер", "target")
if inRange==1 then
local runic power = UnitPower("player")
if runic power >= 15 then
RunMacroText("/cast Воющий ветер")
end
end
end
end
end
end)
Сообщение # 1867 отредактировано angelfoz - Вторник, 16.08.2016, 13:29
DreamlØlz
Скаут
Цитата angelfoz ()
Привет помоги с скриптом хочу что бы на фросте когда прокает пронзающий ветер оно само его юзало ... вот попробовал так не работает...помоги плиз:) BuffF= CreateFrame("Frame", "BuffFrame", UIParent);BuffF:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED");
BuffF:SetScript("OnEvent", function(self, event, arg1, arg2, ...)
if(event=="COMBAT_LOG_EVENT_UNFILTERED") then
if UnitBuff("player","Уничтожение!") then
local enabled = GetSpellCooldown("Воющий ветер")
if enabled == 0 then
inRange = IsSpellInRange("Воющий ветер", "target")
if inRange==1 then
local runic power = UnitPower("player")
if runic power >= 15 then
RunMacroText("/cast Воющий ветер")
end
end
end
end
end
end)

Код
local f = CreateFrame"frame"

local OnUpdate = function(self) return CastSpellByID(51411) end

local OnEvent = function(self, event, ...)
   local unit = ...
   if unit~="player" then return end
   if event=="UNIT_AURA" then
      local i = 1
      while true do
         local spellId = select(11, UnitDebuff("unit", i))
         if not spellId then break end
         if spellId==59052 then
            self:SetScript("OnUpdate", OnUpdate)
         end
         i = i + 1
      end
   elseif event=="UNIT_SPELLCAST_SUCCEEDED" then
      local spell = select(2, ...)
      if spell==select(1, GetSpellInfo(51411)) then
         self:SetScript("OnUpdate", nil)
      end
   end
end

f:SetScript("OnEvent", OnEvent)
f:RegisterEvent("UNIT_AURA")
f:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED")
Сообщение # 1868 написано 17.08.2016 в 15:58
angelfoz
Скаут
Dreamlolz не работает... sad
Сообщение # 1869 написано 19.08.2016 в 00:12
chaosway
Рыцарь
angelfoz, Он какую то хрень написал... Хз че там бафы какие сам подставь

Код
function Frost(self, elapsed)
                    local enabled = GetSpellCooldown("Воющий ветер")              
                    local inRange = IsSpellInRange("Воющий ветер", "target")                    
                    if UnitBuff("player","Уничтожение") then                    
                     if enabled == 0 and inRange == 1 then                    
                      RunMacroText("/cast Воющий ветер")                    
                     end                    
                    end                    
end                    
CreateFrame("Frame", "FrostFrame")
FrostFrame:SetScript("OnUpdate", Frost)
Сообщение # 1870 отредактировано chaosway - Суббота, 20.08.2016, 17:08
sanfishman22
Капрал
ребят, можно ли переделать скрипт на шилд, что бы шилдовал пати в ПП. Этот же шилдует рейд.

Код
/run for r=0,24 do GetNumRaidMembers(); if (UnitHealth("raid"..r)/UnitHealthMax("raid"..r)) <=1 and IsSpellInRange("Слово силы: Щит", "raid"..r) and (not UnitBuff("raid"..r, "Слово силы: Щит")) and (not UnitDebuff("raid"..r, "Ослабленная душа")) then CastSpellByName("Слово силы: Щит","raid"..r) end end

Есть вот такой, но он какой то кривой и не всегда шилдует, не могу понять причину. Может кто помочь?

Код
/run for r=1,5 do GetNumPartyMembers(); if (UnitHealth("party"..r)/UnitHealthMax("party"..r))<0.95 then CastSpellByName("Омоложение") end end; TargetLastEnemy();
На омоложение правда, но СС Щит подставляю, он чот вобще криво работает
Сообщение # 1871 отредактировано sanfishman22 - Воскресенье, 21.08.2016, 14:38
Yollowow
Скаут
Есть ли скрипт на паладина 3.3.5, автофейк или ловить сайленсы мастер аур или скатер и трапы сакрами?
И на дк автокик не сбивает пенанс(Исповедь), возможно чтобы сбивал?
Сообщение # 1872 написано 21.08.2016 в 20:09
staford11
^s†af0rd f0rever^
sanfishman22, переписал под группу:
Код
/run for r=0,4 do GetNumPartyMembers(); if (UnitHealth("party"..r)/UnitHealthMax("party"..r)) <=1 and IsSpellInRange("Слово силы: Щит", "party"..r) and (not UnitBuff("party"..r, "Слово силы: Щит")) and (not UnitDebuff("party"..r, "Ослабленная душа")) then CastSpellByName("Слово силы: Щит","party"..r) end end
Победоносная @ Галакронд
Мои сборки под 3.3.5а 12340

Исправительные работы: в наличии.
Сообщение # 1873 написано 22.08.2016 в 11:42
sanfishman22
Капрал
Цитата staford11 ()
sanfishman22, переписал под группу:
Код
/run for r=0,4 do GetNumPartyMembers(); if (UnitHealth("party"..r)/UnitHealthMax("party"..r)) <=1 and IsSpellInRange("Слово силы: Щит", "party"..r) and (not UnitBuff("party"..r, "Слово силы: Щит")) and (not UnitDebuff("party"..r, "Ослабленная душа")) then CastSpellByName("Слово силы: Щит","party"..r) end end


Спасибо, отлично работает только 1 проблема, меня не щитует, а остальных щитует и возможно ли
Код
/run t="raid"; s=1; e=GetNumRaidMembers(); if e==0 then t="party"; s=0; e=GetNumPartyMembers() end; m=0; w=f; for i=s,e do if i==0 then tt="player" else tt=t..i end; if UnitExists(tt) and UnitInRange(tt)==1 and UnitIsDeadOrGhost(tt)~=1  then a=UnitHealthMax(tt)-UnitHealth(tt); if a>m then m=a w=tt end end end; if m>1000 then RunMacroText("/target "..w.."") end

сделать чтоб автовыбор самой просевшей цели был + пинанс. Ибо приходится тыкать скрипт+пинанс
И ещё, не могу понять почему не хочет работать молния, только после вписания в макрос LB её, содержимое макроса LB /cast [modifier:shift] цепная молния /cast [nomod:shift] молния где ошибка?
Код
function FuryRotation(self,elapsed)

if (not UnitDebuff("target", "Огненный шок")) then
CastSpellByName("Огненный шок")
elseif GetSpellCooldown("Выброс лавы") == 0 and UnitDebuff("target", "Огненный шок") then
CastSpellByName("Выброс лавы")
elseif GetSpellCooldown("Молния") == 0 and UnitDebuff("target", "Огненный шок") and GetSpellCooldown("Выброс лавы") > 0 then
RunMacro("LB")
end

end

if not FuryRotationFrame then
CreateFrame("Frame", "FuryRotationFrame")
FuryRotationFrame:SetScript("OnUpdate", FuryRotation)
end

Вместо runmacro надо вписать CastSpellByName ? не дружу с луа вобще) пытаюсь что то переписать с других скриптов не всегда получается.
как добавить каст вампира за 1.25 сек до окончания?

Код
/run if not UnitDebuff("target", "Прикосновение вампира") then  
CastSpellByName("Прикосновение вампира")  
end  

if not UnitDebuff("target", "Всепожирающая чума") then  
CastSpellByName("Всепожирающая чума","target")
end  
   
if UnitDebuff("target", "Прикосновение вампира")  
and UnitDebuff("target", "Всепожирающая чума")
then  
CastSpellByName("Пытка разума","target")
end
с меня благодарочка
Сообщение # 1874 отредактировано sanfishman22 - Понедельник, 22.08.2016, 15:00
staford11
^s†af0rd f0rever^
Цитата sanfishman22 ()
Спасибо, отлично работает только 1 проблема, меня не щитует

Тут уже нужна отдельная проверка для себя лично, потому что сам игрок не входит в party1..party4:
Код
/run for r=1,4 do GetNumPartyMembers(); if (UnitHealth("party"..r)/UnitHealthMax("party"..r)) <=1 and IsSpellInRange("Слово силы: Щит", "party"..r) and (not UnitBuff("party"..r, "Слово силы: Щит")) and (not UnitDebuff("party"..r, "Ослабленная душа")) then CastSpellByName("Слово силы: Щит","party"..r) end end if (UnitHealth("player")/UnitHealthMax("player")) <=1 and IsSpellInRange("Слово силы: Щит", "player") and (not UnitBuff("player" "Слово силы: Щит")) and (not UnitDebuff("player", "Ослабленная душа")) then CastSpellByName("Слово силы: Щит","player") end

Цитата sanfishman22 ()
сделать чтоб автовыбор самой просевшей цели был + пинанс. Ибо приходится тыкать скрипт+пинанс

Код
/run t="raid"; s=1; e=GetNumRaidMembers(); if e==0 then t="party"; s=0; e=GetNumPartyMembers() end; m=0; w=f; for i=s,e do if i==0 then tt="player" else tt=t..i end; if UnitExists(tt) and UnitInRange(tt)==1 and UnitIsDeadOrGhost(tt)~=1  then a=UnitHealthMax(tt)-UnitHealth(tt); if a>m then m=a w=tt end end end; if m>1000 then RunMacroText("/target "..w.." /cast Исповедь") end

Цитата sanfishman22 ()
И ещё, не могу понять почему не хочет работать молния

Полагаю, причина в том, что макрос кривой:
Код
function FuryRotation(self,elapsed)

if (not UnitDebuff("target", "Огненный шок")) then
CastSpellByName("Огненный шок")
elseif GetSpellCooldown("Выброс лавы") == 0 and UnitDebuff("target", "Огненный шок") then
CastSpellByName("Выброс лавы")
elseif GetSpellCooldown("Молния") == 0 and UnitDebuff("target", "Огненный шок") and GetSpellCooldown("Выброс лавы") > 0 then
RunMacroText("/cast [mod:shift] Цепная молния;  [nomod]Молния")
end

end

Цитата sanfishman22 ()
как добавить каст вампира за 1.25 сек до окончания?

Насколько я помню, возвращаемое значение duration в этой функции - оставшееся время действия спелла, но могу ошибаться:
Код
/run _,_,_,_,_, duration,_,_,_,_,_  = UnitDebuff("target", "Прикосновение вампира")
if ((not (UnitDebuff("target", "Прикосновение вампира"))) or (duration <= 1.25)) then  
CastSpellByName("Прикосновение вампира")  
end  

if not UnitDebuff("target", "Всепожирающая чума") then  
CastSpellByName("Всепожирающая чума","target")
end  
   
if UnitDebuff("target", "Прикосновение вампира")  
and UnitDebuff("target", "Всепожирающая чума")
then  
CastSpellByName("Пытка разума","target")
end
Победоносная @ Галакронд
Мои сборки под 3.3.5а 12340

Исправительные работы: в наличии.
Сообщение # 1875 написано 22.08.2016 в 16:33
sanfishman22
Капрал

Код
/run for r=1,4 do GetNumPartyMembers(); if (UnitHealth("party"..r)/UnitHealthMax("party"..r)) <=1 and IsSpellInRange("Слово силы: Щит", "party"..r) and (not UnitBuff("party"..r, "Слово силы: Щит")) and (not UnitDebuff("party"..r, "Ослабленная душа")) then CastSpellByName("Слово силы: Щит","party"..r) end end if (UnitHealth("player")/UnitHealthMax("player")) <=1 and IsSpellInRange("Слово силы: Щит", "player") and (not UnitBuff("player" "Слово силы: Щит")) and (not UnitDebuff("player", "Ослабленная душа")) then CastSpellByName("Слово силы: Щит","player") end
Message: [string "for r=1,4 do GetNumPartyMembers(); if (UnitHealth("party"..r)/U..."]:1: ')' expected near '"Слово силы: Щит"'
Time: 08/22/16 17:14:41
Count: 1
Stack:
: in function `RunScript'
Interface\FrameXML\ChatFrame.lua:1996: in function `?'
Interface\FrameXML\ChatFrame.lua:4049: in function `ChatEdit_ParseText'
Interface\FrameXML\ChatFrame.lua:3660: in function `ChatEdit_SendText'
Interface\FrameXML\ChatFrame.lua:2477: in function <Interface\FrameXML\ChatFrame.lua:2470>
: in function `RunMacroText'
Interface\FrameXML\SecureTemplates.lua:378: in function `handler'
Interface\FrameXML\SecureTemplates.lua:529: in function <Interface\FrameXML\SecureTemplates.lua:478>
: in function `Click'
Interface\FrameXML\ChatFrame.lua:1413: in function `?'
Interface\FrameXML\ChatFrame.lua:4031: in function `ChatEdit_ParseText'
Interface\FrameXML\ChatFrame.lua:3660: in function `ChatEdit_SendText'
Interface\FrameXML\ChatFrame.lua:2477: in function <Interface\FrameXML\ChatFrame.lua:2470>
: in function `UseAction'
Interface\FrameXML\SecureTemplates.lua:310: in function `handler'
Interface\FrameXML\SecureTemplates.lua:529: in function `SecureActionButton_OnClick'
Interface\FrameXML\ActionButton.lua:40: in function `ActionButtonUp'
[string "ACTIONBUTTON11"]:4: in function <[string "ACTIONBUTTON11"]:1>

Locals: (*temporary) = "for r=1,4 do GetNumPartyMembers(); if (UnitHealth("party"..r)/UnitHealthMax("party"..r)) <=1 and IsSpellInRange("Слово силы: Щит", "party"..r) and (not UnitBuff("party"..r, "Слово силы: Щит")) and (not UnitDebuff("party"..r, "Ослабленная душа")) then CastSpellByName("Слово силы: Щит","party"..r) end end if (UnitHealth("player")/UnitHealthMax("player")) <=1 and IsSpellInRange("Слово силы: Щит", "player") and (not UnitBuff("player" "Слово силы: Щит")) and (not UnitDebuff("player", "Ослабленная душа")) then CastSpellByName("Слово силы: Щит","player") end"

А на вот этот, не реагирует, спамит в чат и все,при 3-5 нажатий быстро дисконит

Код
/run _,_,_,_,_, duration,_,_,_,_,_  = UnitDebuff("target", "Прикосновение вампира")
if ((not (UnitDebuff("target", "Прикосновение вампира"))) or (duration <= 1.25)) then  
CastSpellByName("Прикосновение вампира")  
end  

if not UnitDebuff("target", "Всепожирающая чума") then  
CastSpellByName("Всепожирающая чума","target")
end  
   
if UnitDebuff("target", "Прикосновение вампира")  
and UnitDebuff("target", "Всепожирающая чума")
then  
CastSpellByName("Пытка разума","target")
end
Сообщение # 1876 отредактировано sanfishman22 - Понедельник, 22.08.2016, 17:18
Yollowow
Скаут
Ребят помогите со скриптом пожалуйста, скайп skrubz95
Сообщение # 1877 написано 22.08.2016 в 17:35
staford11
^s†af0rd f0rever^
sanfishman22, забыл запятую в одном месте:
Код
/run for r=1,4 do GetNumPartyMembers(); if (UnitHealth("party"..r)/UnitHealthMax("party"..r)) <=1 and IsSpellInRange("Слово силы: Щит", "party"..r) and (not UnitBuff("party"..r, "Слово силы: Щит")) and (not UnitDebuff("party"..r, "Ослабленная душа")) then CastSpellByName("Слово силы: Щит","party"..r) end end if (UnitHealth("player")/UnitHealthMax("player")) <=1 and IsSpellInRange("Слово силы: Щит", "player") and (not UnitBuff("player","Слово силы: Щит")) and (not UnitDebuff("player", "Ослабленная душа")) then CastSpellByName("Слово силы: Щит","player") end

Цитата sanfishman22 ()
А на вот этот, не реагирует, спамит в чат и все,при 3-5 нажатий быстро дисконит

Что именно спамит в чат?
Победоносная @ Галакронд
Мои сборки под 3.3.5а 12340

Исправительные работы: в наличии.
Сообщение # 1878 написано 22.08.2016 в 19:24
sanfishman22
Капрал
Цитата staford11 ()
Что именно спамит в чат?
if ((not (UnitDebuff("target", "Прикосновение вампира"))) or (duration <= 1.25)) then
CastSpellByName("Прикосновение вампира")
end

if not UnitDebuff("target", "Всепожирающая чума") then
CastSpellByName("Всепожирающая чума","target")
end

if UnitDebuff("target", "Прикосновение вампира")
and UnitDebuff("target", "Всепожирающая чума")
then
CastSpellByName("Пытка разума","target")
end

первую строку не спамит 
Код
/run _,_,_,_,_, duration,_,_,_,_,_  = UnitDebuff("target", "Прикосновение вампира")


и пинанс по самой просевшей цели не даёт и не выбирает в цель,ошибку тоже никакую не выбивает

Код
/run t="raid"; s=1; e=GetNumRaidMembers(); if e==0 then t="party"; s=0; e=GetNumPartyMembers() end; m=0; w=f; for i=s,e do if i==0 then tt="player" else tt=t..i end; if UnitExists(tt) and UnitInRange(tt)==1 and UnitIsDeadOrGhost(tt)~=1  then a=UnitHealthMax(tt)-UnitHealth(tt); if a>m then m=a w=tt end end end; if m>1000 then RunMacroText("/target "..w.." /cast Исповедь") end
Сообщение # 1879 отредактировано sanfishman22 - Понедельник, 22.08.2016, 20:45
staford11
^s†af0rd f0rever^
sanfishman22, где-то пробелы лишние идут, все в одну строку перевел, теперь должно быть нормально.
Код
/run _,_,_,_,_,duration,_,_,_,_,_  = UnitDebuff("target", "Прикосновение вампира") if ((not (UnitDebuff("target", "Прикосновение вампира"))) or (duration <= 1.25)) then CastSpellByName("Прикосновение вампира") end if not UnitDebuff("target", "Всепожирающая чума") then CastSpellByName("Всепожирающая чума","target") end if (UnitDebuff("target", "Прикосновение вампира")) and (UnitDebuff("target", "Всепожирающая чума")) then CastSpellByName("Пытка разума","target") end

Второй скрипт:
Код
/run t="raid"; s=1; e=GetNumRaidMembers(); if e==0 then t="party"; s=0; e=GetNumPartyMembers() end; m=0; w=f; for i=s,e do if i==0 then tt="player" else tt=t..i end; if UnitExists(tt) and UnitInRange(tt)==1 and UnitIsDeadOrGhost(tt)~=1  then a=UnitHealthMax(tt)-UnitHealth(tt); if a>m then m=a w=tt end end end; if m>1000 then RunMacroText("/target "..w.."") CastSpellByName("Исповедь","target") end
Победоносная @ Галакронд
Мои сборки под 3.3.5а 12340

Исправительные работы: в наличии.
Сообщение # 1880 написано 23.08.2016 в 11:53
sanfishman22
Капрал
Цитата staford11 ()
/run t="raid"; s=1; e=GetNumRaidMembers(); if e==0 then t="party"; s=0; e=GetNumPartyMembers() end; m=0; w=f; for i=s,e do if i==0 then tt="player" else tt=t..i end; if UnitExists(tt) and UnitInRange(tt)==1 and UnitIsDeadOrGhost(tt)~=1 then a=UnitHealthMax(tt)-UnitHealth(tt); if a>m then m=a w=tt end end end; if m>1000 then RunMacroText("/target "..w.."") CastSpellByName("Исповедь","target") end
этот так как надо работает, толькто что тестили, а вот
Цитата staford11 ()
/run _,_,_,_,_,duration,_,_,_,_,_ = UnitDebuff("target", "Прикосновение вампира") if ((not (UnitDebuff("target", "Прикосновение вампира"))) or (duration <= 1.25)) then CastSpellByName("Прикосновение вампира") end if not UnitDebuff("target", "Всепожирающая чума") then CastSpellByName("Всепожирающая чума","target") end if (UnitDebuff("target", "Прикосновение вампира")) and (UnitDebuff("target", "Всепожирающая чума")) then CastSpellByName("Пытка разума","target") end
вроде работает, но не проверяет на время, и Прикосновение вампира кастует дважды, то есть Кидает прикосновение и видно сразу не понимает что оно кинулось и снова кидает прикосновение и тогда уже кастует пытку и смотрит за Всепожирающая чума. Не было времени тестить пару дней,так как работа.
Сообщение # 1881 отредактировано sanfishman22 - Четверг, 25.08.2016, 02:44
Hakosuka
Скаут
Всем привет) Подскажите возможно реализовать квикликаст как в доте 2 для АОЕ спелов например таких как у варлоков: Неистовство Тьмы, Огненный ливень и тд. Что бы когда нажимаешь на клавишу спел автоматом юзался под курсор мыши..? Возможно адон какой-нибудь есть или же можно как-то через скрипт сделать.. Буду очень-очень благодарен..))
Сообщение # 1882 написано 25.08.2016 в 19:03
staford11
^s†af0rd f0rever^
sanfishman22, попробуйте:

Код
/run _,_,_,_,_,duration,_,_,_,_,_ = UnitDebuff("target", "Прикосновение вампира") if (duration <= 1.25) then CastSpellByName("Прикосновение вампира") end if not UnitDebuff("target", "Всепожирающая чума") then CastSpellByName("Всепожирающая чума","target") end if (UnitDebuff("target", "Прикосновение вампира")) and (UnitDebuff("target", "Всепожирающая чума")) then CastSpellByName("Пытка разума","target") end
Победоносная @ Галакронд
Мои сборки под 3.3.5а 12340

Исправительные работы: в наличии.
Сообщение # 1883 написано 25.08.2016 в 19:51
sanfishman22
Капрал
staford11staford11staford11staford11staford11
Цитата staford11 ()
/run _,_,_,_,_,duration,_,_,_,_,_ = UnitDebuff("target", "Прикосновение вампира") if (duration <= 1.25) then CastSpellByName("Прикосновение вампира") end if not UnitDebuff("target", "Всепожирающая чума") then CastSpellByName("Всепожирающая чума","target") end if (UnitDebuff("target", "Прикосновение вампира")) and (UnitDebuff("target", "Всепожирающая чума")) then CastSpellByName("Пытка разума","target") end

Такс, пытку кастует, но если я кидаю прикосновение вампира и всепожирающую чуму, заканчивается чума или вампир дальше идёт Ошибка LUA:
Message: [string "_,_,_,_,_,duration,_,_,_,_,_ = UnitDebuff("..."]:1: attempt to compare nil with number
Time: 08/26/16 18:21:07
Count: 9
Stack: [string "_,_,_,_,_,duration,_,_,_,_,_ = UnitDebuff("..."]:1: in main chunk
[C]: in function `RunScript'
Interface\FrameXML\ChatFrame.lua:1996: in function `?'
Interface\FrameXML\ChatFrame.lua:4049: in function `ChatEdit_ParseText'
Interface\FrameXML\ChatFrame.lua:3660: in function `ChatEdit_SendText'
Interface\FrameXML\ChatFrame.lua:2477: in function <Interface\FrameXML\ChatFrame.lua:2470>
[C]: in function `RunMacroText'
Interface\FrameXML\SecureTemplates.lua:378: in function `handler'
Interface\FrameXML\SecureTemplates.lua:529: in function <Interface\FrameXML\SecureTemplates.lua:478>
[C]: in function `Click'
Interface\FrameXML\ChatFrame.lua:1413: in function `?'
Interface\FrameXML\ChatFrame.lua:4031: in function `ChatEdit_ParseText'
Interface\FrameXML\ChatFrame.lua:3660: in function `ChatEdit_SendText'
Interface\FrameXML\ChatFrame.lua:2477: in function <Interface\FrameXML\ChatFrame.lua:2470>
[C]: in function `UseAction'
Interface\FrameXML\SecureTemplates.lua:310: in function `handler'
Interface\FrameXML\SecureTemplates.lua:529: in function <Interface\FrameXML\SecureTemplates.lua:478>

Locals: (*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to compare nil with number"
Сообщение # 1884 написано 26.08.2016 в 18:23
s3ek
Скаут
Здравствуйте.

Подскажите пожалуйста. Каким образом можно запилить в макрос строку следующего содержания:

Код
/run if IsUsableSpell("заклинание") and IsSpellInRange("заклинание","focus")==1 then RunMacroText("/cast  [target=focus,harm,nodead]заклинание") end


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

Уважаемый Tobmaps подсказал следующее:
Цитата
Делай таймер или давай циклу определенное количество попыток.

После совета понял, я - идиот.
Далее мучать человека в личку стесняюсь.

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

Может быть можно запилить макрос на условие /run if not("Цель вне зоны")/
Поделитесь пожалуйста примером макроса не зацикливающегося если фокус вне зоны действия способности.
Сообщение # 1885 отредактировано s3ek - Пятница, 26.08.2016, 21:53
grai555
Скаут
Спасибо!
#include
Сообщение # 1886 написано 27.08.2016 в 21:31
tobmaps
Капрал
Цитата s3ek ()
Делай таймер или давай циклу определенное количество попыток.
Я имел в виду что-то типа:

Код
if not frame then
   frame = CreateFrame("Frame")
end

local WrongFacing = false
local FacingTimer = 0

function DoScheludedStuff()
    if WrongFacing and GetTime() > FacingTimer then
        WrongFacing = false
    end 
end

RunMacroText("/rep 0.1 /run DoScheludedStuff()")

local onEvent = function(self, event, ...)
    if event == "UI_ERROR_MESSAGE" then
        local errorText = select(1, ...)
        if errorText == "Цель должна быть перед вами." then
            WrongFacing = true
            FacingTimer = GetTime() + 0.1
        end
    end
end

frame:SetScript("OnEvent", onEvent)
frame:UnregisterEvent("UI_ERROR_MESSAGE")
frame:RegisterEvent("UI_ERROR_MESSAGE")


Это код для скрипта Super Duper Macro. Для запуска также нужен аддон типа переделанного SlashIn (3.3.5а) для отработки по таймеру, либо делать всеми обожаемым здешним способом "по обновлению фрейма", что немного громоздко в плане написания скриптов с ним. 

Эта часть из моей ротации на шамана, однако использовалось не для каста, а для поворачивания героя в сторону врага используя Click To Move (правда эту часть и почти всё остальное вырезал). Это лишь пример и нужно переделывать под себя.
reverse engineering your soul... балуюсь C++, C#, SQL, LUA. Владыка 1C. Окончательно забил на emuDev
Сообщение # 1887 написано 28.08.2016 в 11:20
gett_lock
Скаут
Ребят помогите со скриптом, надо чтоб дота обновлялась на таргете за секунду до окончания своего действия, к примеру дота действует на таргете 15 сек, и чтоб когда оставалась 1 сек до ее спадения то дота обновлялась бы на таргете.
Сообщение # 1888 написано 28.08.2016 в 12:54
sanfishman22
Капрал
Цитата gett_lock ()
Ребят помогите со скриптом, надо чтоб дота обновлялась на таргете за секунду до окончания своего действия, к примеру дота действует на таргете 15 сек, и чтоб когда оставалась 1 сек до ее спадения то дота обновлялась бы на таргете.
ты хоть бы читал тему, на этой же странице боремся с этим, чот ошибку даёт
Цитата staford11 ()
Код
/run _,_,_,_,_,duration,_,_,_,_,_ = UnitDebuff("target", "Прикосновение вампира") if (duration <= 1.25) then CastSpellByName("Прикосновение вампира") end if not UnitDebuff("target", "Всепожирающая чума") then CastSpellByName("Всепожирающая чума","target") end if (UnitDebuff("target", "Прикосновение вампира")) and (UnitDebuff("target", "Всепожирающая чума")) then CastSpellByName("Пытка разума","target") end
Сообщение # 1889 написано 28.08.2016 в 13:42
toplok91
Скаут
А у меня не запускаются BindBP и BindPad пишет красным цветом "отключен"
Что делать? 
клиент увова
Сообщение # 1890 написано 28.08.2016 в 18:33
Поиск: