Модератор форума: staford11  
Использование Lua скриптов.
Punisher45
Капрал
Цитата Valvedoto ()
upd. Протестил на циркуле просто пишет "нельзя применить к этой цели" во время ухода в инвиз.

Об этом я и талдычу, во время перехода в инвиз ничего нельзя влепить, ни таунт ни что либо еще, но раз там все работает, то я хз. Багоюз он и есть багоюз)
Сообщение # 2251 написано 17.04.2017 в 21:20
prn
Скаут
Цитата sess ()
можно ли определить скорость передвижения, если в клиенте нет GetUnitSpeed?

бк или ванила?

1) posX, posY = GetPlayerMapPosition("unit"), получить координаты,посмотреть координаты через t сек posx1,posy1(вешаем все это на onupdate) получить расстояние пройденное
sqrt( (x-x1)^2+(y-y1)^2 ну и получить скорость smile не тестил
2) можно прочитать значение скорости из памяти найдя его в читенджине ,адрес скорости будет статический
Сообщение # 2252 отредактировано prn - Вторник, 18.04.2017, 14:34
Karolik
Скаут
if macros["spellreflect"]
and cdRemains(23920) > 4
and not UnitBuffID("player", 23920)  then 
ResetMacros()
MacroStatusFrameUpdate()
if not IsTwoHanderEquiped() then
EquipTwoHander()
end
end 
if cdRemains(23920) == 0
and macros["spellreflect"] then 
local t = StringSplicer(GetCVar("SRtargs")) 
for i=0,#t do 
local SRTarget = t 

if SRTarget == "debug" 
and rage >= 10 then
if not IsOneHandAndShieldEquiped() then
EquipOneHandAndShield()
end
_castSpell(23920)
end

if UnitExists(SRTarget )
and UnitCanAttack("player", SRTarget ) ~= nil  
and UnitCastingInfo(SRTarget) 
and rage >= 10 then

local castName,_,_,_,castStartTime,castEndTime,_,_,castNotInterruptable = UnitCastingInfo(SRTarget)
local timeSinceStart = (GetTime() * 1000 - castStartTime) / 1000
local castTime = castEndTime - castStartTime
local currentPercent = timeSinceStart / castTime * 100000

if currentPercent >= 70  then
if not IsOneHandAndShieldEquiped() then
EquipOneHandAndShield()
end
_castSpell(23920)
end
end 
end 
end

меняет оружие, но не рефлектит,в чем проблема? и куда прописать отмену бш?
Сообщение # 2253 написано 18.04.2017 в 14:35
Punisher45
Капрал
Цитата Karolik ()
меняет оружие, но не рефлектит,в чем проблема? и куда прописать отмену бш?


Попробуй CastSpellByID(id) или CastSpellByName("name")

отмена бш
if UnitBuff("player","Вихрь клинков") then
CancelUnitBuff("player","Вихрь клинков")
end

вписываешь в свои блоки перед кастом рефлекта _castSpell(23920) или как то так

а вообще насколько я помню, все переменные начинающиеся с нижнего подчеркивания, зарезервированы от использования, поэтому тут какая то чушь, попробуй убрать подчеркивания перед кастспелл
Сообщение # 2254 отредактировано Punisher45 - Вторник, 18.04.2017, 15:25
Karolik
Скаут
if macros["fastcharge"]
and cdRemains(100) > 4  then
ResetMacros()
MacroStatusFrameUpdate()
end
if cdRemains(100) == 0
and macros["fastcharge"] then
local t = StringSplicer(GetCVar("FCtargs"))
for i=0,#t do
local FCtargs= t

if UnitExists(FCtargs)
and UnitCanAttack("player", FCtargs) ~= nil   then

_castSpell(100, FCtargs)
end
end
end

что тут не так? почему не пашет?и что такое FCtargs
Сообщение # 2255 отредактировано Karolik - Среда, 19.04.2017, 00:02
xGhostx
Скаут
Цитата prn ()
1) posX, posY = GetPlayerMapPosition("unit"), получить координаты,посмотреть координаты через t сек posx1,posy1(вешаем все это на onupdate) получить расстояние пройденноеsqrt( (x-x1)^2+(y-y1)^2 ну и получить скорость не тестил
в каждой зоне своя координатная сетка, поэтому не вариант.
Цитата Karolik ()
что тут не так? почему не пашет?и что такое FCtargs
это всего лишь кусок кода.  другая часть, возможно, написана в аддоне, ну или в том же пкре, но управление сделано через макросы и cvar.
Сообщение # 2256 написано 19.04.2017 в 00:18
Karolik
Скаут
Цитата xGhostx ()
это всего лишь кусок кода.  другая часть, возможно, написана в аддоне, ну или в том же пкре, но управление сделано через макросы и cvar.
да вроде в pqr это весь скрипт на фаст чардж

Добавлено (19.04.2017, 00:29)
---------------------------------------------
а вот что во вкладке макрос

Код
if not MacroInit then
   MacroInit = true

   CreateFont("cpoworksPvP")
   cpoworksPvP:SetFont("Fonts\\calibrib.ttf",12,"OUTLINE") 
   cpoworksPvP:SetJustifyH("LEFT")
   
   if cpoworksPvP:GetFont()~=nil then 
        if StatusFrame==nil then 
          StatusFrame=CreateFrame("Frame")
          StatusFrame:ClearAllPoints() 
          StatusFrame:SetHeight(12)
          StatusFrame:SetWidth(300)
          StatusFrame:Show() 
          StatusFrame.text=StatusFrame:CreateFontString( nil,"BACKGROUND","cpoworksPvP")
          StatusFrame.text:SetAllPoints()
          StatusFrame:SetPoint("TOP",ChatFrame1, 0,40) 
          StatusFrame:SetScript("OnUpdate",StatusFrame_OnUpdate)
          StatusFrame:EnableMouse(true) 
          StatusFrame:SetMovable(true)
          StatusFrame:RegisterForDrag("LeftButton") 
          StatusFrame:SetScript("OnDragStart",StatusFrame.StartMoving) 
          StatusFrame:SetScript("OnDragStop",StatusFrame.StopMovingOrSizing) 
          StatusFrame.text:SetText("|cffFFBE69Macros: |cffb73737None".."     "..BurstModeText())
        end
        SLASH_STATUSFRAME1="/statusframe" 
      SlashCmdList.STATUSFRAME=function() 
           if StatusFrame:IsShown()then 
               StatusFrame:Hide()
          else 
               StatusFrame:Show()
          end 
        end 
   end 

   function MacroStatusFrameUpdate()
        if StatusFrame==nil then 
         return false 
       end;
       local MacroEnabled=false;
       if macros["toggle"]then 
         MacroEnabled=GetCVar("zugqa")
       end 
       if not MacroEnabled then 
         macroKeys={"spellreflect", "fastkick", "fastcharge", "fastintercept"} 
         for i=1, #macroKeys do 
           if macros[macroKeys[i]]then 
             MacroEnabled = macroKeys 
           [i]end 
         end 
       end 
       
       local function X(E2NZK,WNWWe)
         return E2NZK:upper()..WNWWe:lower()
       end 
       local MacroStatusTextString=(MacroEnabled)and "|cffFFBE69Macros: |cFF00FF00"..MacroEnabled:gsub("(%a)([%w_']*)",X)or"|cffFFBE69Macros: |cffb73737None" 
       StatusFrame.text:SetText(MacroStatusTextString.."     "..BurstModeText())
       return true 
   end 

   macros = {
            ["spellreflect"]=false,
            ["toggle"]=false,
            ["fastkick"]=false,
            ["fastcharge"]=false,
            ["fastintercept"]=false,
            }
   
   function ResetMacros()
        macros["spellreflect"]=false
      macros["fastkick"]=false
      macros["fastcharge"]=false
      macros["fastintercept"]=false
      macros["toggle"]=false
   end
            
   if lastMacro == nil then lastMacro=0 end
   
   SLASH_SPELLREFLECT1="/SPELLREFLECT" 
   SLASH_SPELLREFLECT2="/SR" 
   function SlashCmdList.SPELLREFLECT(Msg) 
      if not macros["spellreflect"]then 
            ResetMacros()
            if not GetCVar("SRtargs") then 
              RegisterCVar("SRtargs",nil)
          end 
          if string.len(Msg)>0 then 
              SetCVar("SRtargs",Msg)
          else 
              SetCVar("SRtargs","mouseover, focus, target")
          end
         macros["spellreflect"]=true;
         lastMacro=GetTime()
         MacroStatusFrameUpdate()
       elseif (GetTime() - lastMacro) > 2 then 
            macros["spellreflect"]=false
            MacroStatusFrameUpdate()
         end 
   end
   
   SLASH_FASTKICK1="/FASTKICK" 
   function SlashCmdList.FASTKICK(Msg) 
      if not macros["fastkick"]then 
            ResetMacros()
            if not GetCVar("FKtargs") then 
              RegisterCVar("FKtargs",nil)
          end 
          if string.len(Msg)>0 then 
              SetCVar("FKtargs",Msg)
          else 
              SetCVar("FKtargs","mouseover, focus, target")
          end
         macros["fastkick"]=true;
         lastMacro=GetTime()
         MacroStatusFrameUpdate()
       elseif (GetTime() - lastMacro) > 2 then 
            macros["fastkick"]=false
            MacroStatusFrameUpdate()
         end 
   end
   
   SLASH_FASTCHARGE1="/FASTCHARGE" 
   function SlashCmdList.FASTCHARGE(Msg) 
      if not macros["fastcharge"]then 
            ResetMacros()
            if not GetCVar("FCtargs") then 
              RegisterCVar("FCtargs",nil)
          end 
          if string.len(Msg)>0 then 
              SetCVar("FCtargs",Msg)
          else 
              SetCVar("FCtargs","mouseover, focus, target")
          end
         macros["fastcharge"]=true;
         lastMacro=GetTime()
         MacroStatusFrameUpdate()
       elseif (GetTime() - lastMacro) > 2 then 
            macros["fastcharge"]=false
            MacroStatusFrameUpdate()
         end 
   end
   
   SLASH_FASTINTERCEPT1="/FASTINTERCEPT" 
   function SlashCmdList.FASTINTERCEPT(Msg) 
      if not macros["fastintercept"]then 
            ResetMacros()
            if not GetCVar("FItargs") then 
              RegisterCVar("FItargs",nil)
          end 
          if string.len(Msg)>0 then 
              SetCVar("FItargs",Msg)
          else 
              SetCVar("FItargs","mouseover, focus, target")
          end
         macros["fastintercept"]=true;
         lastMacro=GetTime()
         MacroStatusFrameUpdate()
       elseif (GetTime() - lastMacro) > 2 then 
            macros["fastintercept"]=false
            MacroStatusFrameUpdate()
         end 
   end
   
   SLASH_SETUPMACROS1="/SETUPMACROS" 
   function SlashCmdList.SETUPMACROS(Msg) 
      print("Setting up Macros")

      
      if not GetMacroInfo("Spell Reflect") then
         CreateMacro("Spell Reflect", 1, "#showtooltip Spell Reflection \n/spellreflect target", 1)
      end
      if not GetMacroInfo("Fast Kick") then
         CreateMacro("Fast Kick", 1, "#showtooltip Pummel \n/fastkick target", 1)
      end
      if not GetMacroInfo("Fast Charge") then
         CreateMacro("Fast Charge", 1, "#showtooltip Charge \n/fastcharge target", 1)
      end
      if not GetMacroInfo("Fast Intercept") then
         CreateMacro("Fast Intercept", 1, "#showtooltip Intercept \n/fastintercept target", 1)
      end
      
      
   end
   
   

end
Сообщение # 2257 отредактировано Karolik - Среда, 19.04.2017, 00:31
xGhostx
Скаут
Цитата Karolik ()
а вот что во вкладке макрос
FCtargs = "unit" указаный в макросе "Fast Charge", по умолчанию этот макрос создается с текстом: "#showtooltip Charge \n/fastcharge target", значит юнит это "target".
про остальное сказать сложно, скрипт все еще не весь показан.
Сообщение # 2258 написано 19.04.2017 в 06:27
prn
Скаут
Цитата xGhostx ()
prn ()1) posX, posY = GetPlayerMapPosition("unit"), получить координаты,посмотреть координаты через t сек posx1,posy1(вешаем все это на onupdate) получить расстояние пройденноеsqrt( (x-x1)^2+(y-y1)^2 ну и получить скорость не тестил
в каждой зоне своя координатная сетка, поэтому не вариант.
xGhostx
, ну почему же не вариант,для скрипта факт стоит/бежит вполне подойдет,а если уж надо скорость, например можно вписать коэф dx dy для основных арен бг их там не так уж и много,других вариантов без чтения памяти незнаю
Сообщение # 2259 написано 19.04.2017 в 12:30
Valvedoto
Скаут
Цитата Karolik ()
да вроде в pqr это весь скрипт на фаст чардж

В этом ппаблик профиле все должно работать если, ты ничего не трогал. Сетапишь макросы /SETUPMACROS у тебя появляется 4 макроса которые ты используешь по назначению
Сообщение # 2260 написано 19.04.2017 в 12:58
Punisher45
Капрал
Кто обьяснит зачем нужен pqr если все то же самое можно сделать внутри клиента?
Сообщение # 2261 написано 19.04.2017 в 13:38
Karolik
Скаут
может кто написать скрипт на фаст чардж и интерцепт?для пкр

Добавлено (19.04.2017, 14:36)
---------------------------------------------
что тут не так?

Код
if  cdRemains(61490) > 4  then 

   if  GetShapeshiftForm() ~= 1 then
      CastShapeshiftForm(1)
   end
    if macros["fastintercept"] then

   ResetMacros()
   MacroStatusFrameUpdate()
   end
end 
if cdRemains(61490) == 0
and macros["fastintercept"]
and rage >= 10  then 
   local t = StringSplicer(GetCVar("FItargs")) 
   for i=0,#t do 
      local FItargs= t 
      
      
      [i]if UnitExists(FItargs)
      and UnitCanAttack("player", FItargs) ~= nil   then
         if  GetShapeshiftForm() ~= 3 then
            CastShapeshiftForm(3)
         end
         _castSpell(61490, FItargs)
      end 
   end 
end

вроде полный код

Добавлено (19.04.2017, 15:32)
---------------------------------------------
когда прописал /SETUPMACROS то открываеться луа ошибка 


Код
Message: [string " function pqrFunc0() if not FuncLoaded then..."]:443: CreateMacro() failed, already have 36 macros
Time: 04/19/17 12:31:49
Count: 389
Stack: [C]: in function `CreateMacro'
[string " function pqrFunc0() if not FuncLoaded then..."]:443: in function `?'
Interface\FrameXML\ChatFrame.lua:4049: in function <Interface\FrameXML\ChatFrame.lua:3997>
[C]: in function `ChatEdit_ParseText'
Interface\FrameXML\ChatFrame.lua:3660: in function `ChatEdit_SendText'
Interface\FrameXML\ChatFrame.lua:3698: in function `ChatEdit_OnEnterPressed'
[string "*:OnEnterPressed"]:1: in function <[string "*:OnEnterPressed"]:1>

Locals: (*temporary) = "Spell Reflect"
(*temporary) = 1
(*temporary) = "#showtooltip Spell Reflection 
/spellreflect target"
(*temporary) = 1
Сообщение # 2262 написано 19.04.2017 в 15:32
xGhostx
Скаут
Цитата prn ()
ну почему же не вариант,для скрипта факт стоит/бежит вполне подойдет,а если уж надо скорость, например можно вписать коэф dx dy для основных арен бг их там не так уж и много,других вариантов без чтения памяти незнаю


это нужно писать скрипт, бегать с ним собирать данные, хранить где-то таблицу с этими данными. да ну не вариант..
да и плюс ко всему, таким образом можно получить скорость только плеера и группы/рейда. тогда уж по талантам и аурам проще будет вычислить скорость.

Цитата Punisher45 ()
Кто обьяснит зачем нужен pqr если все то же самое можно сделать внутри клиента?

для winXP другого анлокера вроде и нету.
Сообщение # 2263 написано 19.04.2017 в 18:25
Punisher45
Капрал
Цитата xGhostx ()
для winXP другого анлокера вроде и нету.


Кто-то еще в 17 году на хрюше сидит, хех)
Сообщение # 2264 написано 19.04.2017 в 18:27
amidimpos
Скаут
Здравствуйте, нужна помощь.
Есть скрипт на авара, на превосходство.
Код
function Destroy(self, elapsed)
                    local enabled = GetSpellCooldown("Ïðåâîñõîäñòâî")
                    local rage = UnitPower("player")                    
                    local inRange = IsSpellInRange("Ïðåâîñõîäñòâî", "target")                    
                    if UnitBuff("player","Âêóñ êðîâè") then                    
                     if enabled == 0 and inRange == 1 and rage >= 15 then                    
                      RunMacro("Ïðåâîñõîäñòâî")                   
                     end                    
                    end                    
end                    
CreateFrame("Frame", "DestroyFrame")
DestroyFrame:SetScript("OnUpdate", Destroy)
 По аналогичному принцыпу, пишу на Казнь (по проку внезапная смерть) , но не работает. Уже кучу вариантов перепробовал. Помогите сделать что бы скрипт сам бил и превосходство и казнь по проку.
И еще, возможно ли сделать скрипт, что бы когда у противника меньше 20% ХП, Казнь кастовалась автоматически? Перечитал все 76 страниц форума, находил предположительно как это сделать, но не получалось. ПОмогите пожалуйстац
Сообщение # 2265 написано 21.04.2017 в 11:31
Punisher45
Капрал
Цитата amidimpos ()
Здравствуйте, нужна помощь.

Подскажи на каком ты патче играешь, и чуть позже напишу тебе

Хотя, пофиг. Сам вставишь нужные значения стоимости спелов


Код
local war = CreateFrame("Frame")
war:SetScript("OnUpdate", function(_,e)
if UnitExists("target") and UnitAffectingCombat("player") == 1 then
local enabled = GetSpellCooldown("Казнь")
local enabled2 = GetSpellCooldown("Превосходство")
local usable2 = IsUsableSpell("Превосходство")
local usable = IsUsableSpell("Казнь")
local rage = UnitPower("player")  
local inRange = IsSpellInRange("Превосходство", "target")
   if enabled == 0 and usable and rage >= 15 and inRange then
      CastSpellByName("Казнь")
   end
   if enabled2 == 0 and usable2 and rage >= 15 and inRange then
      CastSpellByName("Превосходство")
   end
end
end)


может надо кому, накатал недавно что-то вроде ротации со стенсденсом для армса, ката циркуль

Код
local war = CreateFrame("Frame")
war:SetScript("OnUpdate", function(_,e)
if UnitExists("target") and UnitAffectingCombat("player") == 1 and IsSpellInRange("Превосходство", "target") == 1 then
local enabled = GetSpellCooldown("Казнь")
local enabled2 = GetSpellCooldown("Превосходство")
local enabled3 = GetSpellCooldown("Смертельный удар")
local enabled4 = GetSpellCooldown("Удар колосса")
local enabled5 = GetSpellCooldown("Мощный удар")
local enabled6 = GetSpellCooldown("Удар героя")
local enabled7 = GetSpellCooldown("Стойка берсерка")
local enabled8 = GetSpellCooldown("Боевая стойка")
local enabled9 = GetSpellCooldown("Кровопускание")
local enabled10 = GetSpellCooldown("Ярость берсерка")
local enabled11 = GetSpellCooldown("Боевой крик")
local usable = IsUsableSpell("Казнь")
local usable2 = IsUsableSpell("Превосходство")
local usable3 = IsUsableSpell("Смертельный удар")
local usable4 = IsUsableSpell("Удар колосса")
local usable5 = IsUsableSpell("Мощный удар")
local usable6 = IsUsableSpell("Удар героя")
local usable7 = IsUsableSpell("Кровопускание")
local stance = GetShapeshiftForm()
local rage = UnitPower("player")

   if not UnitDebuff("target","Кровопускание",nil,"PLAYER") and enabled9 == 0 then
     if stance ~= 1 and enabled9 == 0 and enabled8 == 0 then CastSpellByName("Боевая стойка") end
     if stance == 1 then
     CastSpellByName("Кровопускание")
     end
   end

   if UnitBuff("player","Вкус крови") or usable2 and rage >= 5 and enabled2 == 0 then
      if stance ~= 1 and enabled8 == 0 then CastSpellByName("Боевая стойка") end  
         CastSpellByName("Превосходство")
   end
   
   if enabled10 == 0 then
      CastSpellByName("Ярость берсерка")
   end

   if rage < 20 and enabled11 == 0 then
      CastSpellByName("Боевой крик")
   end

   if usable3 and enabled3 == 0 then
      if stance ~= 3 and enabled7 == 0 then CastSpellByName("Стойка берсерка") end  
         CastSpellByName("Смертельный удар")
   end

   if  enabled4 == 0 or UnitBuff("player","Внезапная смерть") and rage >= 20 then
      if stance ~= 3 and enabled7 == 0 then CastSpellByName("Стойка берсерка") end   
        CastSpellByName("Удар колосса")
   end

   if usable4 and enabled4 == 0 then
      if stance ~= 3 and enabled7 == 0 then CastSpellByName("Стойка берсерка") end   
        CastSpellByName("Удар колосса")
   end

   if rage > 80 or UnitBuff("player","Смертельное спокойствие") then
      if usable6 and enabled6 == 0 then
         if stance ~= 3 and enabled7 == 0 then CastSpellByName("Стойка берсерка") end
            CastSpellByName("Удар героя")
      end  
   end

   if enabled == 0 and usable then
      if stance ~= 3 and enabled7 == 0 then CastSpellByName("Стойка берсерка") end
         if enabled == 0 then
         CastSpellByName("Казнь")
         end
   end
   if enabled4 ~= 0 and enabled3 ~= 0 and enabled5 == 0 and usable5 then
      if stance ~= 3 and enabled7 == 0 then CastSpellByName("Стойка берсерка") end
      if stance == 3 then   
        CastSpellByName("Мощный удар")
     end
   end
      CastSpellByName("Боевая стойка")
end
end)
Сообщение # 2266 отредактировано Punisher45 - Понедельник, 24.04.2017, 14:08
sess
Скаут
Цитата prn ()
ну почему же не вариант,для скрипта факт стоит/бежит вполне подойдет,а если уж надо скорость, например можно вписать коэф dx dy для основных арен бг их там не так уж и много,других вариантов без чтения памяти незнаю

можно поподробнее на счет арен бг?

В инстах, на бг и арене GetPlayerMapPosition("player") выдает нули. Хотелось бы узнать бежит ли перс или стоит на месте
Сообщение # 2267 написано 25.04.2017 в 15:50
prn
Скаут
GetPlayerMapPosition("player") точно нули и в открытом мире? и что за сервер у тебя?
а вот так что
SetMapToCurrentZone()
local x,y=GetPlayerMapPosition("player") ?
Сообщение # 2268 отредактировано prn - Вторник, 25.04.2017, 23:27
Rextown
Скаут
Йо
Может кто написать скрипт на рефлект кровавого ужаса?

Что-то вроде
Если на цели бафф Кровавый ужас
Проверка на доступность рефлекта
КастСпелБайНейм Отражение заклинания

Заранее спасибо

И еще, инстантные спелы же поймать не возможно?(Ванишем/кошем/рефлектом/зеленкой и прочей фигней)
Сообщение # 2269 написано 26.04.2017 в 00:57
Punisher45
Капрал
Цитата Rextown ()
И еще, инстантные спелы же поймать не возможно?(Ванишем/кошем/рефлектом/зеленкой и прочей фигней)


по идее все зависит от флайтайма на твоем сервере(и от твоего пинга) ивент UNIT_SPELLCAST_SUCCEDED вполне спокойно хендлит инстантные касты, так что успеет скрипт прожать что там надо зависит только от пинга и флайтайма отслеживаемой бяки
Так что это вполне реально, только не всегда может корректно работать
Сообщение # 2270 отредактировано Punisher45 - Среда, 26.04.2017, 20:44
hellowrogue
Скаут
Может кто помочь? Скачал BindPad, вписал скрипт, жму запуск, но он не запускается, в чем может быть проблема?
Сообщение # 2271 написано 26.04.2017 в 23:05
Karolik
Скаут
есть скрипт или прога ,что бы чарджить за вара ближе?

Добавлено (29.04.2017, 04:44)
---------------------------------------------
кому не сложно киньте скриптов на ханта или из чего их сделать?

Сообщение # 2272 написано 29.04.2017 в 04:44
Kieg
Сержант
Нужна помощь, как всунуть условие, если активен талант?

http://wow.gamepedia.com/API_GetTalentInfoByID 

Returns information about a talent.
talentID, name, texture, selected, available, spellID, unknown, row, column, known = GetTalentInfoByID(talentID, talentGroup[, isInspect, inspectedUnit])

GetTalentInfoByID(talentID, talentGroup[, isInspect, inspectedUnit]) - етой строчкой играю на легионе
Сообщение # 2273 написано 02.05.2017 в 20:38
Punisher45
Капрал
Цитата Kieg ()
Нужна помощь, как всунуть условие, если активен талант?


какое условие, какой талант, с какой целью, активен в баффах или просто выученный?
Сообщение # 2274 написано 03.05.2017 в 21:50
Kieg
Сержант
Вот он

В спелбуке пасивки нету, как спел отдельно , тоже нету, он только есть в талантах.

Нужно примерно для условие

if talent is know then ...

Где talent условие что талант активен/вибран
Сообщение # 2275 написано 04.05.2017 в 08:22
Punisher45
Капрал
Цитата Kieg ()
Germination

В спелбуке пасивки нету, как спел отдельно , тоже нету, он только есть в талантах.

Нужно примерно для условие

if talent is know then ...

Где talent условие что талант активен/вибран


Я не пойму, ты хочешь отслеживать прок этого таланта или что? Потому что талант будет активен ВСЕГДА пока у тебя активна ветка с ним, в таком случае твое условие более чем бесполезно, а вообще если ты подробнее опишешь что делает прок этого таланта, то тебе смогут помочь быстрее
(я просто не играл на аддонах новее катаклизма)
Сообщение # 2276 отредактировано Punisher45 - Пятница, 05.05.2017, 19:25
sanfishman22
Капрал
ребят, помогите. Нужен скрипт на каст по цели фокуса если нет на нём дебафа, если можно без выбора в таргет его, вот только что то не так тут, к примеру:

Код
/run if (not UnitDebuff("focustarget", "Правосудие света", nil, "PLAYER")) and GetSpellCooldown("Правосудие света")==0 then RunMacroText("/cast Правосудие света") end

и добавить бы проверку на расстояние типо UnitInRange("focustarget") типо так, знающие помогите
Сообщение # 2277 написано 05.05.2017 в 22:07
Punisher45
Капрал
Цитата sanfishman22 ()
ребят, помогите. Нужен скрипт на каст по цели фокуса если нет на нём дебафа, если можно без выбора в таргет его, вот только что то не так тут, к примеру:
Код
/run if (not UnitDebuff("focustarget", "Правосудие света", nil, "PLAYER")) and GetSpellCooldown("Правосудие света")==0 then RunMacroText("/cast Правосудие света") end

и добавить бы проверку на расстояние типо UnitInRange("focustarget") типо так, знающие помогите

Чем такая конструкция не устраивает?


Код
if not UnitDebuff("focustarget", "Правосудие света", nil, "PLAYER") and GetSpellCooldown("Правосудие света") == 0 and IsSpellInRange("Правосудие света", "focustarget") == 1 then CastSpellByName("Правосудие света","focustarget") end

UnitInRange("юнитид") валидно только для членов пати/рейда и тут не катит, поэтому обычной проверки на рендж спела должно хватить
Сообщение # 2278 отредактировано Punisher45 - Пятница, 05.05.2017, 22:26
sanfishman22
Капрал
Punisher45, спасибо, помог. Вроде всё устраивает, от души.

Добавлено (05.05.2017, 22:56)
---------------------------------------------
Код
/run if (not UnitBuff("focus", "Частица Света", nil, "PLAYER")) then RunMacroText("/cast  [target=focus]Частица света") end

или лучше так как ты показал?
Код
/run if not UnitBuff("focus", "Частица Света", nil, "PLAYER") and GetSpellCooldown("Частица Света") == 0 and IsSpellInRange("Частица Света", "focus") == 1 then CastSpellByName("Частица Света","focus") end

Если чо поправь, вдруг не так. Подразумевается использовать в рейде на бг, так же и тот скрипт что высше с правосудием
Сообщение # 2279 отредактировано sanfishman22 - Пятница, 05.05.2017, 22:59
Punisher45
Капрал
Цитата sanfishman22 ()
Добавлено (05.05.2017, 22:56)
---------------------------------------------
Код
/run if (not UnitBuff("focus", "Частица Света", nil, "PLAYER")) then RunMacroText("/cast  [target=focus]Частица света") end

или лучше так как ты показал?
Код
/run if not UnitBuff("focus", "Частица Света", nil, "PLAYER") and GetSpellCooldown("Частица Света") == 0 and IsSpellInRange("Частица Света", "focus") == 1 then CastSpellByName("Частица Света","focus") end

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


Да как хочешь, и то и то будет работать

Вот тебе еще 1 полезный скрипт для ассиста холипалом

Код
if IsUsableSpell("Молот гнева") and GetSpellCooldown("Молот гнева") == 0 and IsSpellInRange("Молот гнева", "focustarget") then CastSpellByName("Молот гнева","focustarget") end

При желании можно его и на апдейт повесить

Код
local molot = CreateFrame("Frame")
molot:SetScript("OnUpdate", function(_,e)
if IsUsableSpell("Молот гнева") and GetSpellCooldown("Молот гнева") == 0 and UnitExists("focustarget") and UnitIsDead("focustarget") ~= 1 and IsSpellInRange("Молот гнева", "focustarget") then CastSpellByName("Молот гнева","focustarget") end
end)
Сообщение # 2280 отредактировано Punisher45 - Суббота, 06.05.2017, 09:21
Поиск: