Luchik
Player-
Content count
9 -
Joined
-
Last visited
Community Reputation
55 Up And ComingAbout Luchik
-
Rank
Newcomer
Recent Profile Visitors
1,723 profile views
-
У тебя слишком много всякой ненужной бяки) /script bubl = -1 for i=1, 30 do b = UnitBuff("player", i) if b then if string.find(c, "Spell_Holy_DivineIntervention") then bubl = i break end end end if bubl == -1 then CastSpellByName("Divine Shield") else CancelPlayerBuff(bubl) end Это скопировать в макрос /script bubl = -1 for i=1, 30 do b = UnitBuff("player", i) if b then if string.find(c, "Spell_Holy_DivineIntervention") then bubl = i break end end end if bubl == -1 then CastSpellByName("Divine Shield") else CancelPlayerBuff(bubl) end А это с форматированием
-
Не раз обсуждалось (даже в этой теме) SpellStopCasting()
-
Проверить, кастуешь ли ты что-либо нет, но есть возможность проверить, не кастуешь ли ты определенный спелл (а точнее экшн)Функция IsCurrentAction(N) возвращает истину, если ты кастуешь заклинание с номером N на панели действий, и возвращает ложь если ты его не кастуешь.То есть если твоя флешка находится на экшн баре с номером 25 (правый верхний угол), то обращение будет IsCurrentAction(25)Конечно можно схитрить и в цикле проверять, не нажат ли любой из экшенов. Но тогда есть вероятность зацепить "автоатаку" или включающийся спелл (такие как стелс у рог, ауры у паладинов, аспекты у хатов и т.д.)
-
Все, что вы хотели знать о макросах, но боялись спросить
Luchik replied to Luchik's topic in Модификации, макросы и аддоны
Буду дополнять первый пост ссылками) -
Все, что вы хотели знать о макросах, но боялись спросить
Luchik replied to Luchik's topic in Модификации, макросы и аддоны
Можно) На ваниле свои причуды с проверкой дальности спеллов, но проверять можноВ соседней теме "ищу макрос" я скинул макрос на ресуррект, посмотриНачну тогда писать руководство в блог) Буду отписываться тут по мере появления новых записей) -
Все, что вы хотели знать о макросах, но боялись спросить
Luchik posted a topic in Модификации, макросы и аддоны
Обновлено: Список подготовленных частей найдете внизу поста. Рекомендуется чтение по порядку ==================== Как любителя побегать (делать квесты и ходить в инсты) в несколько окон, меня некоторое время назад заинтересовал вопрос макросов на ванилу. Долгое время бродя по забугорным форумам, описаниям функций АПИ, я вполне разобрался с тем, что на ваниле можно писать в макросах, а что нет (что-то приходится выносить в аддоны, макросом не написать)По просьбе согильдейца решил создать тему и поделиться некоторым приобретенным опытом.Начнем с простого и дойдем до более интересных вопросов.В. Почему у меня не работают мои макросы с БК/ЛК/Каты/Панд?О. Потому что синтаксис написания макросов существенно изменился. Начиная с БК, основным материалом создания макросов являются слэш-команды (/petattack, /stopspellcast) и т.д. На ваниле нет 95% этих слешкоманд, и все макросы, по большей части, начинаются со /script или /run (это команда выполнения блока кода на Lua)В. Получается, что здесь я не могу сделать то, что делали мои макросы на БК/ЛК/Кате/Пандах?О. Чаще всего можете, потому что слешкоманды, по большей части, представляют собой упрощенный доступ к функциям АПИ. Например вместо команды /stopspellcast здесь используется функция SpellStopCasting()В. А что такое АПИ?О. АПИ (API), применительно к ВоВ в частности, это набор функций, с помощью которых можно выполнять определенные игровые действия. На воввики вы найдете полный список доступных вам функций и их описание. Но не все функции можно вызывать через макрос или аддон, в списке присутствует определенное число защищенных методов, которые может вызывать только близовский интерфейс (то есть сама игра)В. Получается, что использование АПИ даст мне больше возможностей, по сравнению с привычными мне слеш-командами?О. В общем да, использование АПИ дает существенные преимущества перед использованием обычных слеш-команд. Расплатой за это, однако, служит размер самого макроса (в символах). А как вы знаете, по умолчанию он не может превышать 255. (Об этом ниже)В. То есть мои возможности практически безграничны? Что я не смогу делать с помощью макроса?О. Вы не сможете двигаться с помощью макроса (функции передвижения защищены), А так же не сможете написать макрос для автолута (особенно обидно если вы rogue и вам надоело щелкать по луту прошаренных карманов). Все остальное в той или иной степени реализуемо с помощью макросов.B. Хорошо. А что мне нужно знать, чтобы начать делать свои макросы?О. В первую очередь, вам пригодится школьный курс информатики, где вас учили рисовать кружочки в цикле на экране с помощью Бейсик или Паскаль. А так же знание названий и возможностей самих функцийВ. Но я не умею программировать! Неужели нет другого способа?О. На самом деле можете. Если вы можете сформировать в голове порядок действий, какие действия выполняются за какими и при каких условиях, то вы можете написать мини программу-макрос.В. А еще вопрос. Я смогу написать макрос, чтобы нажать один раз и смотреть, как мой персонаж сам производит действия одно за другим?О. Нет. Макрос выполняется один раз за нажатие. Если в нем предусмотрено выполнение нескольких действий, вам, скорее всего, придется нажать на макрос несколько раз (обычно по количеству выполняемых действий). Исключение составляют макросы отправки сообщений в чат или каст нескольких заклинаний без ГКД (Общий кулдаун на все спеллы - 1.5с).Макросов на одновременную активацию какого-либо итема и каста спелла сделать нельзя, поскольку активация итема в большинстве случаев вызывает ГКД.В. Ротация моего персонажа очень простая. Мне все время приходится нажимать одни и те же кнопки, особенно в инстах. Я же смогу написать общую ротацию своего персонажа и нажимать только одну кнопку?О. Да, сможетеВ. Но мой крутой макрос не вмещается в положенные 255 символов! Значит макросы на ваниле все таки не так полезны?О. Это значит что вы еще не скачали аддон SuperMacro, который позволяет расширить размер макроса с 255 до 7000 символов. Этот аддон мастхэв если вы решили сделать макрос посерьезней, чем простая комбинация действий вроде "Привет *помахать*"В. Теперь вроде более или менее понятно. С чего мне начать писать свои макросы?О. Начните с ответа в этой теме =======================================Список подготовленных частей:1. Введение. 2. Первый полезный макрос. 3. Макрос на автохил (прист). 4. Немного теории о типах данных и паладинский макрос на автобаф. 5. Общие переменные на несколько макросов, улучшение логики авто-макросов. -
Про https://db.valkyrie-wow.org/?item=16058 совсем забыли) Добавьте тоже)
-
Если нужно просто взять в таргет, то можно брейкать цикл в момент когда находим цель с черепом. тогда таргет останется на черепе. А остальные абилки юзать уже по этому таргету /run for t=1,20 do TargetNearestEnemy(); if GetRaidTargetIndex("target")==8 then break; end end
-
Вот это скопируй в макрос: /script if UnitHealth("target")==0 and UnitMana("player")>3000 and IsActionInRange(1) then CastSpellByName("Resurrection (Rank 6)"); SendChatMessage("Resurrecting [%t]","RAID"); endДля наглядности напишу сюда с форматированием./script if UnitHealth("target")==0 and UnitMana("player")>3000 and IsActionInRange(1) then CastSpellByName("Resurrection (Rank 6)"); SendChatMessage("Resurrecting [%t]","RAID"); end Там где проверка на ману, поставь значение, которое требуется для каста заклинания воскрешения:UnitMana("player")>3000, там скорее всего не 3000 будет а меньше, плюс ко всему сам спелл "воскрешение" у тебя должен стоять на каком-нибудь экшн баре. в примере который я скинул он находится на первом номере (кнопка 1 по умолчанию), то есть если у тебя твое воскрешение находится на экшн баре 26 (правый верхний угол), то ты напишешь IsActionInRange(26) Список номеров экшенов по расположению:
