Модератор форума: staford11  
Использование Lua скриптов.
randomqqz
Скаут
Цитата printf ()
Прям максимально доступно сделал туториал.
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)
---------------------------------------------
дайте ссылку на рабочий SDM, я решил скачать из шапки, но там кнопка "NEW" не нажимается даже

Сообщение # 271 написано 14.10.2014 в 12:37
printf
Скаут
Цитата randomqqz ()
всё сделал по скринам, макрос на панельку никак вынести не могу


На 3 скрин посмотри на синию стрелку. Button macro это обычный макрос, который отлично выносится на панель, а 3 строчка script создает уже скрипт который надо запускать. Скорее всего поэтому ты и не можешь вынести макрос.
Сообщение # 272 написано 14.10.2014 в 20:01
randomqqz
Скаут
Цитата printf ()
Button macro это обычный макрос, который отлично выносится на панель

я знаю, может быть у меня что-то с аддоном... просто никак не выносится и не юзается через команду
Сообщение # 273 написано 14.10.2014 в 21:11
Kelwin
Сержант
Цитата randomqqz ()
дайте ссылку на рабочий SDM, я решил скачать из шапки, но там кнопка "NEW" не нажимается даже


тыц
Сообщение # 274 написано 14.10.2014 в 23:39
FL1CKER
Скаут
Есть у кого рабочий LUA Unlocker для 6.0.2?
Сообщение # 275 написано 15.10.2014 в 18:39
Kelwin
Сержант
Цитата Fuckyouz ()
/run if UnitDebuff("player", "Глубокая заморозка") then RunMacroText("/cast Скачок")


Код
/run if UnitDebuff("player", "Глубокая заморозка") then RunMacroText("/cast Скачок") end
Сообщение # 276 написано 15.10.2014 в 20:45
randomqqz
Скаут
Цитата Kelwin ()
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

Цитата randomqqz ()
что бы довести до идеальной ротации надо ввести проверку кд кровожадности и вихря, что бы мощный удар юзался под прок только тогда, когда кровожадность и вихрь на кд. так сказать приоритет) ну и для полного счастья юзать казнь когда у цели не более 20% хп

очень прошу помочь)
Сообщение # 277 отредактировано randomqqz - Четверг, 16.10.2014, 17:11
FL1CKER
Скаут
Доброго времени суток. Возможно кто-то уже нашел луа анлокер для 6.0.2 очень очень нужен, возможно есть какая инфа по нему. В вове обновилась файловая система, и резонный вопрос собственно- возможно ли будет вообще разблокировть луа?
Сообщение # 278 написано 16.10.2014 в 18:41
slavasss
Скаут
Как сделать что бы скрипты не лагали !?
Сообщение # 279 отредактировано slavasss - Воскресенье, 19.10.2014, 14:29
Kelwin
Сержант
Цитата slavasss ()
Как сделать что бы скрипты не лагали !?

Реализовать таймер и осуществлять проверку в соответствии с необходимым интервалом работы скрипта.

Как варианты: cнизить граф. настройки или приобрести более мощное железо.
Сообщение # 280 отредактировано Kelwin - Понедельник, 20.10.2014, 02:40
slavasss
Скаут
Kelwin,
Цитата Kelwin ()
Реализовать таймер и осуществлять проверку в соответствии с необходимым интервалом работы скрипта.


Не понял...
?????
Сообщение # 281 написано 22.10.2014 в 00:33
Kelwin
Сержант
Цитата slavasss ()
Не понял...
?????


Сделать так, чтобы весь код скрипта выполнялся не чаще (допустим), чем раз в 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
jokerru
Скаут
Цитата FL1CKER ()
Есть у кого рабочий LUA Unlocker для 6.0.2?

Могу поделиться ссылкой на него. В личку пиши.

А что с авто ШВД для 4.3.4 никто помочь не сможет???
Сообщение # 283 отредактировано jokerru - Среда, 22.10.2014, 01:15
Justqwerty
Скаут
Приветствую всех)
Может кто поделиться скриптом на ваниш именно для ат? biggrin
И может есть у кого скрипт на автошвд для 3.3.5а?)
Именно чтобы на арене работал...)
Сообщение # 284 написано 22.10.2014 в 17:59
Placebо
English Summer Rain
Подскажите, пожалуйста, как сделать, чтобы эти два скрипта работали одновременно? Создал макрос: /sdm run 1 /sdm run 2, скрипты называются 1 и 2, по отдельности работают, но вместе если пишу в макрос, работает только тот, который последним написан. Может как-то по-другому можно написать, чтобы они работали одновременно или в один их объединить? Скрипты вот:

Сообщение # 285 написано 22.10.2014 в 19:39
Justqwerty
Скаут
Цитата Placebо ()
Подскажите, пожалуйста, как сделать, чтобы эти два скрипта работали одновременно?

Вот прямо сейчас задался таким вопросом) тоже надеюсь, что помогут...
Я вот хочу например на дк автокик+стан пета, когда меньше 3к хп и еще парочку.
Сообщение # 286 написано 22.10.2014 в 19:46
Kelwin
Сержант
Цитата Placebо ()
Может как-то по-другому можно написать, чтобы они работали одновременно или в один их объединить? Скрипты вот:

Без тэга [code] никто смотреть твой код не будет. Табуляцию в студию.
Сообщение # 287 написано 23.10.2014 в 23:11
Placebо
English Summer Rain
Kelwin, мог бы помочь, а не пафосные ответы писать.
В любом случае разобрался.
Сообщение # 288 написано 24.10.2014 в 20:13
Kelwin
Сержант
Цитата Placebо ()
Kelwin, мог бы помочь, а не пафосные ответы писать.

Я мог бы помочь. Но если ты просишь помощи, будь добр соблюдать правила "хорошего тона". Зачем заставлять кодеров ломать глаза? eek
Сообщение # 289 написано 24.10.2014 в 21:09
Justqwerty
Скаут
Цитата Placebо ()
В любом случае разобрался.

Можешь в лс написать как ты 2 скрипта объеденил?
Сообщение # 290 написано 25.10.2014 в 10:39
cheathelpme
Скаут
Народ а можно написать скрипт на кик шамана на арене 3х3 чтобы он кикал когда кто то кастует. Что то target=arena 1,2,3
Или ставил граундинг
Сообщение # 291 отредактировано cheathelpme - Суббота, 25.10.2014, 19:48
Find200
Скаут
Цитата jokerru ()
Есть у кого рабочий LUA Unlocker для 6.0.2?

Могу поделиться ссылкой на него. В личку пиши.

Можешь в лс скинуть
Сообщение # 292 написано 27.10.2014 в 15:43
spice28
Скаут
Ребят,пожалуйста помогите с скриптом на отражения заклинания на варриора (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
Kelwin
Сержант
Господа, если вы нуждаетесь в помощи и желаете получить качественный результат, проявляйте уважение и постите код в code, а также не забывайте о табуляции.

spice28, переменные arg4, arg7 и arg10 у тебя не были объявлены. По логике вещей в строке SpellFrame:SetScript("OnEvent", function(self, event, arg1, arg2, ...) перед ... необходимо продолжить объявление вплоть до arg10. Или непосредственно сделать присвоение в коде функции, пример:
Код
_, arg4, _, _,arg7, _, _, arg10 = ...
Сообщение # 294 отредактировано Kelwin - Понедельник, 27.10.2014, 22:03
spice28
Скаут
Цитата Kelwin ()
переменные arg4, arg7 и arg10 у тебя не были объявлены. По логике вещей в строке SpellFrame:SetScript("OnEvent", function(self, event, arg1, arg2, ...) перед ... необходимо продолжить объявление вплоть до arg10. Или непосредственно сделать присвоение в коде функции, пример:

К сожалению я ни черта не понимаю ,как все это сделать грамотно.Я знаю ,это звучит очень нагло,но не могли бы вы помочь написав готовый скрипт.
Сообщение # 295 написано 27.10.2014 в 22:33
Kelwin
Сержант
Цитата spice28 ()
Я знаю ,это звучит очень нагло,но не могли бы вы помочь написав готовый скрипт.

Данный скрипт писал не я, поэтому указываю исключительно на явные недостатки. Попробуй вставить:
Код
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
Justqwerty
Скаут
Код
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. от + не откажусь biggrin (кому помог со скриптом)
Сообщение # 297 отредактировано Justqwerty - Вторник, 28.10.2014, 11:32
temaivaaaa
Скаут
Ювов х125 , закрыли скрипты? никто не вкурсе?
Сообщение # 298 написано 28.10.2014 в 13:22
wardaince
Скаут
Цитата spice28 ()
Ребят,пожалуйста помогите с скриптом на отражения заклинания на варриора
+ Ребят,пожалуйста скиньте скрипт на отражение. C меня +++
Сообщение # 299 написано 28.10.2014 в 20:37
printf
Скаут
Столько скриптов крутых выложили, ребят может есть у кого автофейк киков.(не скриптовых инсант, а обычных)

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(), но у меня он почему то не работает.
Сообщение # 300 отредактировано printf - Среда, 29.10.2014, 04:42
Поиск: