Модератор форума: staford11  
Использование Lua скриптов.
chaosway
Рыцарь
Khenny, попробуй так, если в моусовере увидит тотем то ударит болью по нему

Код
function Totem(self)      
name = UnitName("mouseover")
if name == "Опаляющий тотем" or name == "Тотем ветроступа" then
CastSpellByName("Слово тьмы: Боль" , "mouseover")
end  

CreateFrame("Frame", "frameB")    
frameB:SetScript("OnUpdate", Totem)


Добавлено (18.11.2015, 19:58)
---------------------------------------------
GaTaX, Два твоих скрипта рефлекта не работали, потому что это 2 разных скрипта но на каждом из них одинаковая функция "function Reflect(self, elapsed)". Работает только один из них, тот который ты запустил позднее. Тебе нужно изменить название функции, например "function Reflectfocus(self, elapsed)" во всех местах где написана эта функция, тогда работать будут оба скрипта

Добавлено (18.11.2015, 19:59)
---------------------------------------------
snup5, Твой скрипт можно улучшить, добавлением условия наличия прока триней или талантов
Сообщение # 1291 отредактировано chaosway - Среда, 18.11.2015, 20:00
UnitIsGhost
Скаут
Khenny, я чуть по другому ищу лоухп:
Код
local function hP(unit) return UnitHealthMax(unit) - UnitHealth(unit) end
local rNum,grouP,mem,memHP,TarFoc = GetNumPartyMembers(),"party","player",0,{"target","focus"}
if GetNumRaidMembers() > 0 then rNum,grouP = GetNumRaidMembers(),"raid" end
for i=0,rNum do
   local m=grouP..tostring(i) if i=0 then m="player" end
   if UnitInRange("player",m) and UnitIsFriend(m) and not UnitIsDeadOrGhost(m)
   and hP(m) >= memHP then mem,memHP = m,hP(m) end
end
for _,v in ipairs(TarFoc) do
   if UnitExists(v) and UnitIsFriend(v) and UnitInRange("player",v) and not UnitPlayerOrPetInRaid(v)
   and not UnitPlayerOrPetInParty(v) and not UnitIsDeadOrGhost(v) and hP(v) >= memHP then mem,memHP = v,hP(v) end
end
if memHP > 15000 then CastSpellByName("Имя закл..", mem) end

я тоже с таблицами на вы, а точнее не знаю как добавлять туда, так было бы еще проще через один фор. а еще можно добавить туда петов группы/рейда.
Сообщение # 1292 отредактировано UnitIsGhost - Четверг, 19.11.2015, 13:18
zlory
Рыцарь
Парни те скрипты что в первом посту на кик например  они для любой версии wow или тока для 3.3.5,?Просто играю на 6.1.2 и что-то не работает.
Сообщение # 1293 отредактировано zlory - Суббота, 21.11.2015, 00:47
alexdubovyck
Рыцарь
Доходчиво про таблицы тут: http://www.tutorialspoint.com/lua/lua_tables.htm

• Wowjp: Моя темка
• Yt: youtube.com/@LuaNaZakaz
• Discord: discord.gg/Jgmf7AJ
• Vk: vk.com/luanazakaz
• Telegram: t.me/LuaNaZakaz
• Boosty: boosty.to/luanazakaz
Сообщение # 1294 написано 21.11.2015 в 03:07
snup5
Скаут
хочу сделать скрипт для БГ для ханта когда ДК тянет ханта срабатывает Сдерживание и через 2-сек срабатывает Леденая ловушка
есть пример но тут срабатывает только сдерживание Леденая ловушка не срабатывает подскажите что я не доделал или что пропустил 

OneScriptForVanish = CreateFrame("Frame", "OneScriptForVanish", UIParent); 
OneScriptForVanish:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED") 
OneScriptForVanish:SetScript("OnEvent", function(self, event, arg1, arg2) 
VanishSpellOne = {"Хватка смерти"} 
for v = 1,#VanishSpellOne do 
local args = {arg1, arg2} 
if (arg1 == "target" and arg2 == VanishSpellOne[v]) then 
CastSpellByName("Сдерживание")
local timer = 0 
local sec = 2
timer = timer + elapsed 
if timer >= sec then
CastSpellByName("Леденая ловушка")
timer = 0
end 
end
end 
end)
Сообщение # 1295 написано 21.11.2015 в 03:47
UnitIsGhost
Скаут
с таблицами я разобрался, однако в их использовании усомнился. много текста для их редактирования, гораздо проще создать функцию с переменным юнитом и с действием к нему и вызывать её вместо добавления в таблицу. другое дело если найти готовую таблицу, в стандартном интерфейсе не знаю, но в аддонах типа грид/хилбот такая должна быть, искать надо.
Сообщение # 1296 написано 21.11.2015 в 09:40
zlory
Рыцарь
-
Сообщение # 1297 отредактировано zlory - Понедельник, 23.11.2015, 01:06
chaosway
Рыцарь
zlory, посмотри ошибки
Сообщение # 1298 написано 22.11.2015 в 10:05
Khenny
Скаут
Как сделать белый список для скрипта на кик?
Сообщение # 1299 написано 23.11.2015 в 20:10
Just_Owen
Капрал
посоветуйте нормальный LUA Unlocker (gagarin 1.5-1.7 не предлагать лаги !) smile
Скайп Apokalipcic1
Сообщение # 1300 написано 23.11.2015 в 20:24
chaosway
Рыцарь
Khenny, Что значит белый список? P.S. На тотемы сработал скрипт как надо?

Добавлено (25.11.2015, 18:42)
---------------------------------------------
Just_Owen, Лаги вроде как из за системы) На win xp например вообще не лагает с гагарином)

Сообщение # 1301 написано 25.11.2015 в 18:42
Khenny
Скаут
chaosway, т.е. только касты из этого списка будут сбиваться, остальные игнорироваться. Знаю что можно перечислить туеву хучу переменных, где каждой переменной соответствует свой каст, но хочется более лаконичный вариант.
Насчет скрипта на сбитие тотемов, еще не довелось проверить, как проверю - отпишу.
И еще, есть у меня загвоздка. Есть (оператор это называется?) speed, groundSpeed, flightSpeed, swimSpeed = GetUnitSpeed("player"), где если игрок стоит на месте, то speed == 0 (проверял через print), вот только если я использую это в условии else then, то нихрена оно, почему-то, не == 0, кто знает в чем причина?

Добавлено (27.11.2015, 19:18)
---------------------------------------------
И еще, знает кто где взять обновленный для оффа SuperDuperMacro или аналог?

Сообщение # 1302 написано 27.11.2015 в 19:18
chaosway
Рыцарь
Khenny
Код
if spell == "Спелл" or spell== "Спелл" or spell == "Спелл" or spell== "Спелл" or spell== "Спелл" then
Сообщение # 1303 написано 28.11.2015 в 21:46
subaru0813
Скаут
Здорова парни. Видел давно ферала, который спамил[шредом-полоснуть] в лицо, сбоку и т.д. Подскажите, есть ли такой скрипт, и если да, помогите написать. Щедрое вознагрождение. Предоплата. Заранее спасибо!
Сообщение # 1304 отредактировано subaru0813 - Понедельник, 30.11.2015, 17:02
rol2605
Скаут
Люди добрые можите помочь со скриптом для лока! Нужно чтоб не меня диспелил ,а допустим напарника по арене ну или было бы здорово чтоб обоих ,что можно придумать:?!

function Dispel(self, elapsed)
local inRange = IsSpellInRange("Пожирание магии", "target")
local Range = IsSpellInRange("Запрет чар", "target")
local enable = GetSpellCooldown(48011)
local enabl = GetSpellCooldown(19647)
local pl = "player"
local power = UnitPower("pet", 0)
if enable == 0 and power >= 390 and inRange == 1 then
if UnitDebuff(pl, "Страх") or UnitDebuff(pl, "Жертвенный огонь") or UnitDebuff(pl, "Лик смерти") or UnitDebuff(pl, "Порча") or UnitDebuff(pl, "Неистовство тьмы") or UnitDebuff(pl, "Вой ужаса") or UnitDebuff(pl, "Вой ужаса") or UnitDebuff(pl, "Превращение") or UnitDebuff(pl, "Ледяные оковы") or UnitDebuff(pl, "Молот правосудия") or UnitDebuff(pl, "Покояние") or UnitDebuff(pl, "Сглаз") or UnitDebuff(pl, "Ментальный крик") or UnitDebuff(pl, "Соблазн") then
CastSpellByName("Пожирание магии", "player")
end
end
if enabl == 0 and power >= 200 and Range == 1 then
if UnitCastingInfo("target") or UnitChannelInfo("target") then
CastSpellByName("Запрет чар", "target")
end
end
end
CreateFrame("Frame", "DispelFrame")
DispelFrame:SetScript("OnUpdate", Dispel)
Сообщение # 1305 отредактировано rol2605 - Среда, 02.12.2015, 12:35
MRSKABEL7564
Скаут
/run if GetSpellCooldown("Шаг сквозь тень")==0 and IsSpellInRange("Шаг сквозь тень","focus") and (UnitCastingInfo("focus") or UnitChannelInfo("focus")) then CastSpellByName("Шаг сквозь тень") end
Суть в том, что хочу чтобы при спаме прожимался ШС по фокусу когда кастует фокус. Но срабатывает по таргету, когда кастует фокус! Не знаю что делать. Помогите  sad
Сообщение # 1306 написано 03.12.2015 в 17:57
Esdescon
Скаут
ребят нужен скрипт для вара на вефлект (смерча и глубокой заморозки )
ещё чтоб когда рага набиралась до 85 к примеру он спускал на Удар Героя. буду очень благодарен .
Сообщение # 1307 написано 03.12.2015 в 18:48
Kieg
Сержант
/run if GetSpellCooldown("Шаг сквозь тень")==0 and IsSpellInRange("Шаг сквозь тень","focus")==1 and (UnitCastingInfo("focus") or UnitChannelInfo("focus")) then CastSpellByName("Шаг сквозь тень","focus") end
Сообщение # 1308 написано 04.12.2015 в 15:09
MRSKABEL7564
Скаут
Господа, на днях у меня с приятелем зашел разговор о такой "штуке" как: (не придумал как по другому назвать :D) поворот к цели. Наслышаны о таком скрипте\макросе или чтобы то небыло. Суть которого, заключалась в том, что будучи кастером сражаясь с миликом всегда держать камеру на нем, как бы он не умудрялся спрятаться к вам за спину, дабы спел всегда докастовывался. И никуда, кроме как в этот раздел, я не могу обратиться, по скольку считаю это одним из lua-скриптов. Поделитесь информацией об этом "чуде".
Сообщение # 1309 написано 05.12.2015 в 00:31
DiSq
Рыцарь
MRSKABEL7564, как-то сам наблюдал такую штуку на арене, но в API такого "разворота" нет, нечто подобное использовано в функционале FollowUnit, персонаж поворачивается и начинает бежать, последнее нам не нужно. Боюсь тут одним lua никак не обойтись.

Называется это вроде как автофейсингом.
Сообщение # 1310 написано 05.12.2015 в 20:40
Po[I]SoN
[ CLICK ♥ + ✔ ]
Возможно ли с помощью этих фич, сдавать квесты не делая их ?
GG WP - Фразы великих людей.
Сообщение # 1311 написано 06.12.2015 в 07:07
staford11
^s†af0rd f0rever^
Цитата Po[I]SoN ()
Возможно ли с помощью этих фич, сдавать квесты не делая их ?
Нет, конечно же. Такое и с подменой пакетов сейчас не сделать нигде.
Победоносная @ Галакронд
Мои сборки под 3.3.5а 12340

Исправительные работы: в наличии.
Сообщение # 1312 написано 06.12.2015 в 11:07
cheburator2000
Скаут
-
Сообщение # 1313 отредактировано cheburator2000 - Воскресенье, 26.06.2016, 02:57
Чилавикпоук
Скаут
Напишите кто скрипт на написание тикета с текстом 123 и его отменой) ПЛЗ
Сообщение # 1314 написано 06.12.2015 в 21:21
tobmaps
Капрал
Цитата DiSq ()
Боюсь тут одним lua никак не обойтись.
Делал такой трюк на кате для моих мультибокс машанов которые передвигались за врагом при помощи http://wowprogramming.com/docs/api/InteractUnit и стопались через одновременный вызов http://wowprogramming.com/docs/api/TurnLeftStart и http://wowprogramming.com/docs/api/TurnLeftStop если соблюдены условия http://wowprogramming.com/docs/api/IsUsableSpell и http://wowprogramming.com/docs/api/IsSpellInRange . Проверку на дальность спела использовал через спелл с 25-метровой дальностью дабы враг не успевал отойти от прокаста т.к. вкачан тал на дальность, т.е. дальности даже с запасом.
Конечно приходилось спамить кнопку вызова макроса чтобы шаманы делали попытку подойти к врагу, а в нем у меня были вшиты сапопальные LUA ротации для мультибокса через SDM которые заставляют 5ти шаманов делать больной прокаст во врага, снимают бафы с противников под ноль и вредные дебафы с союзников, сбивают касты всем в радиусе поражения и втыкают тотемы по необходимости. Собственно спам кнопки был необходим чтобы персонажи своевременно поворачивались на врага, т.к. время реакции у InteractUnit немного запоздалое и за целью бегающей вокруг шаманов было следить крайне непросто, впрочем это легко компенсировалось http://ru.wowhead.com/spell=51490 . Пробовал вшивать InteractUnit (+ остановку естественно) в саму ротацию, т.е. на автонажатие - идея оказалась крайне плохой, хотя и было забавно наблюдать как шаманы сами бегают и пуляют врага вообще без участия игрока, но пришлось на кнопке follow для мультибокса вшивать остановку скрипта, а ведь иногда же нужно чтобы передивигая шаманов за главарем ротация не останавливалась (т.к. на кате есть баф на каст во время передвижения), да и контроллировать такое самовольное передвижение шамов было проблематично, чуть не ту цель выделил и понеслись в освояси, так что оставил по кнопке.
reverse engineering your soul... балуюсь C++, C#, SQL, LUA. Владыка 1C. Окончательно забил на emuDev
Сообщение # 1315 написано 07.12.2015 в 08:22
Fqlolz
Скаут
function Blid(self, elapsed)
local CD = GetSpellCooldown("Кровопускание")
local rage = UnitPower("player", 1)
local inRange = IsSpellInRange("Кровопускание", "target")
if not UnitDebuff("target", "Кровопускание") and CD == 0 and inRange == 1 and rage >= 10 then CastSpellByName("Кровопускание", "target")
end
end
CreateFrame("Frame", "BlidFrame")
BlidFrame:SetScript("OnUpdate", Blid)

function Blid(self, elapsed)
local CD = GetSpellCooldown("Подрезать сухожилия")
local rage = UnitPower("player", 1)
local inRange = IsSpellInRange("Подрезать сухожилия", "target")
if not UnitDebuff("target", "Подрезать сухожилия") and CD == 0 and inRange == 1 and rage >= 7 then CastSpellByName("Подрезать сухожилия", "target")
end
end
CreateFrame("Frame", "BlidFrame")
BlidFrame:SetScript("OnUpdate", Blid)

Как их совместить ?
Сообщение # 1316 написано 08.12.2015 в 04:51
Kieg
Сержант
Цитата Fqlolz ()
function Blid(self, elapsed)local CD = GetSpellCooldown("Кровопускание")
local rage = UnitPower("player", 1)
local inRange = IsSpellInRange("Кровопускание", "target")
if not UnitDebuff("target", "Кровопускание") and CD == 0 and inRange == 1 and rage >= 10 then CastSpellByName("Кровопускание", "target")
end
end
CreateFrame("Frame", "BlidFrame")
BlidFrame:SetScript("OnUpdate", Blid)

function Blid(self, elapsed)
local CD = GetSpellCooldown("Подрезать сухожилия")
local rage = UnitPower("player", 1)
local inRange = IsSpellInRange("Подрезать сухожилия", "target")
if not UnitDebuff("target", "Подрезать сухожилия") and CD == 0 and inRange == 1 and rage >= 7 then CastSpellByName("Подрезать сухожилия", "target")
end
end
CreateFrame("Frame", "BlidFrame")
BlidFrame:SetScript("OnUpdate", Blid)

Как их совместить ?
function Blid(self, elapsed)
local rage = UnitPower("player", 1)
if not (UnitDebuff("target", "Кровопускание")) and GetSpellCooldown("Кровопускание")==0 and IsSpellInRange("Кровопускание", "target")==1 and rage >= 10 then CastSpellByName("Кровопускание", "target")
end
if not (UnitDebuff("target", "Подрезать сухожилия")) and GetSpellCooldown("Подрезать сухожилия")==0 and IsSpellInRange("Подрезать сухожилия", "target")==1 and rage >= 7 then CastSpellByName("Подрезать сухожилия","target")
end
end
CreateFrame("Frame", "BlidFrame")
BlidFrame:SetScript("OnUpdate", Blid)
Сообщение # 1317 отредактировано Kieg - Среда, 09.12.2015, 17:22
rival123
Скаут
Ребят, а кто может помочь с написание простого скриптика, который берет в фокус 2ого игрока на арене и будет менять фокус в зависимости от того, какой у меня таргет? Т.е. в таргете у меня arena1, тогда в фокус arena2; если arena2 в таргете, то фокус - arena1
Сообщение # 1318 написано 11.12.2015 в 14:00
Lewas
Скаут
Ребята подскажите точнее подправте скрипт
Очень сложный: версия wow 1.12
1. у меня есть скрипт я его выделил
http://s019.radikal.ru/i605/1512/27/caab86a70c8a.jpg
2. через созданный адон я его запускаю - все стандартно
http://s017.radikal.ru/i436/1512/42/e21c94017c75.jpg
При нажатии он создает душу, если есть душа кидает в цель.
А если цели нет, но есть камень душ то, происходит ошибка выберите цель как обычно при бафах
Вопрос: не могу сделать чтоб кидалось на ближайшего (в пределах 30 метров - дальности заклинания) жреца, друида или паладина (только эти 3 класса) без выбора цели.
Сообщение # 1319 написано 11.12.2015 в 22:58
staford11
^s†af0rd f0rever^
Lewas, для проверки на класс используй UnitClass:
Код
_,class,_ = UnitClass("target");
if (class == "DRUID" or class == "PALADIN" or class == "PRIEST") then
     ...
end

Для проверки дистанции можно использовать следующие варианты:
1. IsSpellInRange - проверка на дальность для выбранного заклинания. Предположим, у заклинания дальность действия 40 метров, тогда скрипт сработает на расстоянии от 1 до 40 метров до цели.
Код
inRange1 = IsSpellInRange(ID заклинания, "spell", "target")
if (inRange1) then
     ...
end

2. CheckInteractDistance - проверка на дальность для взаимодействия. Максимальное расстояние - 28 метров (возможно, в ванилле меньше, информации по этому нет).
Код
inRange2 = CheckInteractDistance("target", 4);
if (inRange2) then
     ...
end
Победоносная @ Галакронд
Мои сборки под 3.3.5а 12340

Исправительные работы: в наличии.
Сообщение # 1320 написано 12.12.2015 в 12:15
Поиск: