| Модератор форума: staford11 |
| Форум Хитрости Пиратских серверов Читы для WoW Использование Lua скриптов. |
| Использование Lua скриптов. |
Прям максимально доступно сделал туториал. 1. http://pikucha.ru/idEhV 2. http://pikucha.ru/idEhX 3. http://pikucha.ru/idEhY 4. http://pikucha.ru/idEhZ Выставляешь обычный макрос на панельку, разблочиваешь луа анлокером клиент и жмякаешь когда нужно. Картинки что то не добавляется, так что так покопируй посмотри всё сделал по скринам, макрос на панельку никак вынести не могу Добавлено (14.10.2014, 12:37)
Сообщение # 271 написано 14.10.2014 в 12:37
|
На 3 скрин посмотри на синию стрелку. Button macro это обычный макрос, который отлично выносится на панель, а 3 строчка script создает уже скрипт который надо запускать. Скорее всего поэтому ты и не можешь вынести макрос.
Сообщение # 272 написано 14.10.2014 в 20:01
|
unction FuryRotation(self,elapsed) local powa = UnitPower("player",1) local name1, _, _, powerCost1 = GetSpellInfo("Кровожадность") local name2, _, _, powerCost2 = GetSpellInfo("Вихрь") local name3, _, _, powerCost3 = GetSpellInfo("Мощный Удар") if GetSpellCooldown(name1) == 0 and powa >= powerCost1 then CastSpellByName(name1) elseif GetSpellCooldown(name2) == 0 and powa >= powerCost2 then CastSpellByName(name2) end if UnitBuff("player", "Сокрушить!") and powa >= powerCost3 then CastSpellByName(name3) end if powa > 50 then CastSpellByName("Удар Героя") end end if not FuryRotationFrame then CreateFrame("Frame", "FuryRotationFrame") FuryRotationFrame:SetScript("OnUpdate", FuryRotation) end что бы довести до идеальной ротации надо ввести проверку кд кровожадности и вихря, что бы мощный удар юзался под прок только тогда, когда кровожадность и вихрь на кд. так сказать приоритет) ну и для полного счастья юзать казнь когда у цели не более 20% хп очень прошу помочь) |
Доброго времени суток. Возможно кто-то уже нашел луа анлокер для 6.0.2 очень очень нужен, возможно есть какая инфа по нему. В вове обновилась файловая система, и резонный вопрос собственно- возможно ли будет вообще разблокировть луа?
Сообщение # 278 написано 16.10.2014 в 18:41
|
Сделать так, чтобы весь код скрипта выполнялся не чаще (допустим), чем раз в 3 миллисекунды. Для этого вводим дополнительную переменную(к примеру с названием timer), и аккумулируем в ней значения elapsed. Когда значение переменной timer достигнет нужной отметки (допустим это будет значение 0,3 (3 миллисекунды)) - код сработает. Пример реализации: Код timer = 0 function lol(self, elapsed) timer = timer + elapsed if timer < 0.3 then return else timer = 0 вот сюда вставляем часть кода скрипта которую необходимо выполнить, либо вызов другой функции, содержащей необходимый код end end
Сообщение # 282 написано 22.10.2014 в 01:06
|
Подскажите, пожалуйста, как сделать, чтобы эти два скрипта работали одновременно? Создал макрос: /sdm run 1 /sdm run 2, скрипты называются 1 и 2, по отдельности работают, но вместе если пишу в макрос, работает только тот, который последним написан. Может как-то по-другому можно написать, чтобы они работали одновременно или в один их объединить? Скрипты вот:
Сообщение # 285 написано 22.10.2014 в 19:39
|
Сообщение # 286 написано 22.10.2014 в 19:46
|
Kelwin, мог бы помочь, а не пафосные ответы писать.
В любом случае разобрался.
Сообщение # 288 написано 24.10.2014 в 20:13
|
Ребят,пожалуйста помогите с скриптом на отражения заклинания на варриора (3.3.5) Cкрипт просто не работает,не могу понять почему.Заранее спасибо
SpellBase = {"Превращение"} SpellFrame = CreateFrame("Frame", "FrameSpell", UIParent); SpellFrame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED"); SpellFrame:SetScript("OnEvent", function(self, event, arg1, arg2, ...) if(event=="COMBAT_LOG_EVENT_UNFILTERED") then for s = 1,#SpellBase do local name = UnitName("player") if arg2 == "SPELL_CAST_SUCCESS" and name ~= arg4 and name == arg7 and arg10 == SpellBase[s] then local enabled = GetSpellCooldown("Отражение заклинания") if enabled == 0 then CastSpellByName("Отражение заклинания") print(arg1,arg2,...) end end end end end)
Сообщение # 293 написано 27.10.2014 в 20:12
|
Господа, если вы нуждаетесь в помощи и желаете получить качественный результат, проявляйте уважение и постите код в code, а также не забывайте о табуляции.
spice28, переменные arg4, arg7 и arg10 у тебя не были объявлены. По логике вещей в строке SpellFrame:SetScript("OnEvent", function(self, event, arg1, arg2, ...) перед ... необходимо продолжить объявление вплоть до arg10. Или непосредственно сделать присвоение в коде функции, пример: Код _, arg4, _, _,arg7, _, _, arg10 = ... |
переменные arg4, arg7 и arg10 у тебя не были объявлены. По логике вещей в строке SpellFrame:SetScript("OnEvent", function(self, event, arg1, arg2, ...) перед ... необходимо продолжить объявление вплоть до arg10. Или непосредственно сделать присвоение в коде функции, пример: К сожалению я ни черта не понимаю ,как все это сделать грамотно.Я знаю ,это звучит очень нагло,но не могли бы вы помочь написав готовый скрипт.
Сообщение # 295 написано 27.10.2014 в 22:33
|
Данный скрипт писал не я, поэтому указываю исключительно на явные недостатки. Попробуй вставить: Код if(event=="COMBAT_LOG_EVENT_UNFILTERED") then _, arg4, _, _,arg7, _, _, arg10 = ... for s = 1,#SpellBase do Код if(event=="COMBAT_LOG_EVENT_UNFILTERED") then for s = 1,#SpellBase do
Сообщение # 296 написано 27.10.2014 в 22:57
|
Код local ScriptAddon = CreateFrame("Frame", "ScriptAddon", nil) function ScriptAddon:OnEvent(event, ...) -- functions created in "object:method"-style have an implicit first parameter of "self", which points to object self[event](self, ...) -- route event parameters to ScriptAddon:event methods end ScriptAddon:SetScript("OnEvent", ScriptAddon.OnEvent) ScriptAddon:RegisterEvent("UNIT_SPELLCAST_START") function ScriptAddon:UNIT_SPELLCAST_START(unit) local spell, rank, displayName, icon, startTime, endTime, isTradeSkill = UnitCastingInfo(unit) if not spell then return end if displayName == "Превращение" then self:SetScript("OnUpdate", self.OnUpdate) self.unit = unit self.total = 0 self.endTime = endTime/1000 -- this is equal to GetTime() at which the cast will end self.unitName = UnitName(unit) end end function ScriptAddon:OnUpdate(elapsed) self.total = self.total + elapsed -- only call function every 50ms to improve performance if self.total >= 0.00 then self.total = 0 local spell, rank, displayName, icon, startTime, endTime, isTradeSkill = UnitCastingInfo(self.unit) if endTime and endTime/1000 - GetTime() <= 0.2 then -- stop using performance heavy onupdate function if no spellcast is currently going on self:SetScript("OnUpdate", nil) TargetUnit(self.unit) CastSpellByName("Слово Тьмы: Смерть") elseif self.endTime-0.2 <= GetTime() then -- lost Unit (changed target e.g.), guessing cast timer self:SetScript("OnUpdate", nil) TargetUnit(self.unitName) CastSpellByName("Слово Тьмы: Смерть") end end end Вот он скрипт на швд полиморфа:) А теперь вопрос к опытному скриптеру: Может подредактировать этот скрипт, чтобы он давал швд не только в полиморф, но и в седакт,блайнд,скаттер? Жду помощи:D P.S. от + не откажусь (кому помог со скриптом)
|
Столько скриптов крутых выложили, ребят может есть у кого автофейк киков.(не скриптовых инсант, а обычных)
upd Почему то spellstopcasting() не стопает каст, для проверки вбивал простую абилку, каст продолжается. Пошел другим путем через JumpOrAscendStart() при проверке обычной абилкой персонаж прыгает тем самым стопая каст, однако кик проходит. Скрипт реагирует уже на свершившееся действие, так как у интераптов гораздо меньше флайтайм чем у блайндов скатеров итд кик проходит. Код 10/29 04:12:02.177 SPELL_CAST_SUCCESS,0x000000000000091A,"Gmnil",0x10548,0x0000000000032829,"Milahz",0x511,44572,"Глубокая заморозка",0x10 10/29 04:12:02.267 SPELL_CAST_SUCCESS,0x0000000000032829,"Milahz",0x511,0x000000000000091A,"Gmnil",0x10548,32379,"Слово Тьмы: Смерть",0x20 10/29 04:12:02.267 SPELL_DAMAGE,0x0000000000032829,"Milahz",0x511,0x000000000000091A,"Gmnil",0x10548,32379,"Слово Тьмы: Смерть",0x20,1251,0,32,0,0,0,nil,nil,nil 10/29 04:12:02.267 SPELL_AURA_APPLIED,0x0000000000000000,nil,0x80000000,0x0000000000032829,"Milahz",0x511,32409,"Слово Тьмы: Смерть",0x20,DEBUFF 10/29 04:12:02.363 SPELL_AURA_APPLIED,0x000000000000091A,"Gmnil",0x10548,0x0000000000032829,"Milahz",0x511,44572,"Глубокая заморозка",0x10,DEBUFF 0.186 флайтайм дипа Код 10/29 04:12:58.605 SPELL_CAST_START,0x0000000000032829,"Milahz",0x511,0x0000000000000000,nil,0x80000000,48063,"Великое исцеление",0x2 10/29 04:13:01.003 SPELL_CAST_SUCCESS,0x000000000000091A,"Gmnil",0x10548,0x0000000000032829,"Milahz",0x511,2139,"Антимагия",0x40 10/29 04:13:01.017 SPELL_CAST_FAILED,0x0000000000032829,"Milahz",0x511,0x0000000000000000,nil,0x80000000,48063,"Великое исцеление",0x2,"Прервано" 10/29 04:13:01.017 SPELL_INTERRUPT,0x000000000000091A,"Gmnil",0x10548,0x0000000000032829,"Milahz",0x511,2139,"Антимагия",0x40,48063,"Великое исцеление",2 10/29 04:13:01.017 SPELL_AURA_APPLIED,0x000000000000091A,"Gmnil",0x10548,0x0000000000032829,"Milahz",0x511,55021,"Антимагия - немота",0x40,DEBUFF и всего лишь 0.014 флайтайм кика Так же попробовал через MoveForwardStart() и MoveForwardStop() - тоже самое. Несмотря на то что многие активно рекламируют автофейки, да и сам я видел ребят которые действительно скриптами фейкают(несколько секунд втыкая потом почему каст стопнулся) не представляю как эти скрипты могут работать. Правда тестировал ночью при пинге в 9мс на фане циркуля, может днем флайтайм увеличивается у киков. Быть может просто нужен spellstopcasting(), но у меня он почему то не работает. |
| |||



