Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Шатер Тетушки Акары. > Add-ons > Макросы |
Автор: Wintorez 20.03.2005 - 22:23 |
Сделал себе макросы для вара, смена оружия для Retalation и instant-ударов. Постоянно он ходит с dual wield, для вышеназванных абилок происходит смена на двуручник и затем обратно. Пример для Overpower (с Retalation-макросом может и не будет вместе работать, не успел доделать и потестить, надо вставить проверку на тип оружия в экипе): /script PickupInventoryItem(17);PickupContainerItem(4,2);UseContainerItem(4,1); /cast Overpower(Rank 1); /in 1 /script UseContainerItem(4,1);UseContainerItem(4,2); Соответственно, все вводится без пробелов, пробел только после команд (/script, /cast и т.п.). Каждая команда, кроме команд-параметров (в последней строке /script является параметром к /in), начинается с новой строки. Сумки нумеруются справа налево, бэкпак - 0, левая сумка - 4. Ячейки в сумках нумеруются слева направо и сверху вниз, начиная с 1. Ячейки в equip: 16 - main hand, 17 - off-hand. Команда Pickup симулирует левый клик, Use - правый клик. /in <second> <command> [argument].... - после паузы в X секунд выполняет команду <command> с заданными параметрами или без таковых. Дробные числа в качестве секунд не прокатили, т.е. юзаем целые. Пример для Execute: /script PickupInventoryItem(17);PickupContainerItem(4,2);UseContainerItem(4,1); /cast Execute(Rank 1); /in 1 /script UseContainerItem(4,1);UseContainerItem(4,2); Пример для Retalation: /script PickupInventoryItem(17);PickupContainerItem(4,2);UseContainerItem(4,1); /cast Retalation; /in 15 /script UseContainerItem(4,1);UseContainerItem(4,2); В последнем примере время действия абилки 15 секунд, соответственно после этого произойдет смена оружия на дуал-вилд. Retalation не имеет ранка, смотрите синтаксис. Для того, чтобы юзать Overpower и Execute во время действия Retalation, можно воспользоваться условием типа oi=(GetInventoryItemLink("player",17)); if (oi) then end; Но я это потестить не успел, когда сделаю - напишу. GL, макросы рулят |
Автор: Caryon 21.03.2005 - 12:38 |
Я тоже думал сделать макрос для переключения на даггер при амбуше/бакстабе для роги, а потом обратно. Вопрос такой: переключение осуществляется мгновенно? Я пока пользуюсь аддоном, там переключение на кнопке, и такое впечатление, что оно занимает некоторое время. |
Автор: Dice 21.03.2005 - 13:01 |
Настоятельно рекомендую тестить макросы, взяв в руки дешёвое оружие. Например, купив у вендора. /script PickupInventoryItem(16); /script PickupInventoryItem(17); Это макрос для свопа (мейнхэнд в оффхэнд и наоборот). Сам не пробовал, но нстаивают, что верно. Попробую сегодня. Также предлагают такой вариант: /script PickupInventoryItem(16); /script PickupInventoryItem(17, 1); /script PickupInventoryItem(17); /script PickupInventoryItem(16, 1); Какой лучше и какой ваще работает - хз. |
Автор: Wintorez 22.03.2005 - 05:02 |
2Caryon: Переключение работает мгновенно, если это первое переключение. После каста переключение не работает, нужна задержка в 1 секунду. 2Dice: Не совсем понял насчет дешевого оружия... Зачем? Тох, не будет так работать. Вот тебе макрос для смены офф на майн (естественно оба оружия должны быть оне-ханд): /script PickupInventoryItem(16);PickupInventoryItem(17);PickupInventoryItem(16); Еще раз повторяю, команда Pickup эмулирует одиночный левый клик мышкой. Второй макрос вообще хз, что значит (17,1) - что такое 1 в параметре номера слота в инвентори??? Слоты в инвентори имеют порядковый номер, от 1 до 19 вроде, причем 18 ето нижний тринкет. Я не знаю точную нумерацию слотов, кроме 16-18, но второй макрос бред имхо. |
Автор: Dice 22.03.2005 - 09:58 |
2Wintorez: Серёг, насчёт первого макроса - я сам тыщу раз переспросил, так как кажется, что не хватает одной строки. На самом деле всё работает (я про первый), а про второй - сам не понимаю, что там написано. Тестить с дешёвым оружием, так как в случае ошибки возможно случайная продажа предметов вендору или уничтожение предмета. О таком тоже читал - народ периодически ноет по этому поводу. А вообще, вот рулезные программулинки (надо установить обе, чтобы работали): автоматически меняют оружие при смене стойки (у роги: нормал/стелс; у ворриора - разные stance и т.д.) Просто супер. Причём на каждое состояние можно повесить три комплекта, которые переключаются одной кнопкой. Я в полном восторге от проги, всем милишникам крайне рекомендую. |
Автор: Dice 22.03.2005 - 10:02 |
В предыдущем посте первый файл, здесь второй. Ставить надо оба. Ридми элементарный - почитайте, там разбираться нех делать. |
Автор: Wintorez 22.03.2005 - 11:06 |
2Dice: Не знаю Тох, я тестил то, что в первом макросе, у меня после этого сворд висел на курсоре, а не в руке был. Хотя знаешь, возможно, я его как часть макроса тестил, у меня там сумки задействованы... |
Автор: GinniE 1.04.2005 - 18:16 |
блин, задолался пишу /script UseContainerItem(1,1); /cast Backstab(Rank 7); /in 1 /script UseContainerItem(1,1); - ругается на то, что маст даггер еквиппед, хотя вепоны меняются пишу /script UseContainerItem(1,1); /in 1 /cast Backstab(Rank 7); /in 1 /script UseContainerItem(1,1); все меняется, ни на что не ругается, но бэк не проходит.... F1 plz |
Автор: Poul 1.04.2005 - 20:21 |
2GinniE: А чего ты этим макросом добиться хочешь? Он у тебя только юзает випон, смены тут не прописано. Плюс, юзать даггер из main hand, это 16-й слот, а ты пытаешься его прямо из сумки заюзать. |
Автор: GinniE 2.04.2005 - 02:29 |
дык он сразу кидается из сумки в майн ханд |
Автор: Poul 2.04.2005 - 15:18 |
2GinniE: Зато тратит на это секунду. /in 1 и /cast back разбей на 2 строки. |
Автор: Wanderer 8.04.2005 - 12:07 |
Товарищи, кто-нить для мага писал макросы? хотелось бы посмотреть, а то как-то в лаге умирать заипало |
Автор: Poul 8.04.2005 - 12:09 |
2Strange Guest: Думаешь в лаге поможет? Все равно 1 макрос = 1 каст, и никак иначе. |
Автор: Caryon 11.05.2005 - 10:46 |
Такой вопрос. Может ли скрипт определить, что я нахожусь под влиянием спелла fear/poly? Хочу сделать аддон, который автоматически кастует антифеар/антиполи. |
Автор: gluk 14.06.2005 - 09:39 |
Тэк, вопрос к умным: нужен скрипт, который одним нажатием кнопочки Дизмаунтит меня и вводит в стелс. Если же я не на маунте - я просто вхожу в стелс, если я в стелсе - выводит оттуда. скачал такой аддон - нифига не работает.. http://www.warcraftrealms.com/mods/Mfiend-1500-1.1.zip Дело в том, что нигде нет описания к нему, поэтому и не разобрался.. Там написано вот это... - <Bindings> <Binding name="MFiend Trigger" header="MFiend">MF_DismountAndStealth();</Binding> </Bindings> ну и - <Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/ C:ProjectsWoWBinInterfaceFrameXMLUI.xsd"> <script file="MFiend.lua" /> - <Frame name="MFiend_Frame"> - <scripts> <OnLoad>MFiend_OnLoad();</OnLoad> </Scripts> </Frame> </Ui> Подскажите? |
Автор: Caryon 14.06.2005 - 10:12 | ||
То, что ты написал - это xml файл, просто интерфейс. Надо lua смотреть. Вобщем должно быть что-то типа такого:
В первую функцию, разумеется, своего маунта надо вписАть. Все это навскидку, и надо тестить. |
Автор: alsimon 6.12.2005 - 18:48 |
наработки СДГ орда... макросы для хиллеров и декурсеров... Для начала всем хилерам в рейде надо подсоеденится к каналу Heal. Делается это коммандой /join Heal Ну а дальше вы начинаете выполнять свою работу будь то хилинг мт, хилинг ат или же просто хилинг своей группы. Если наблюдаются проблемы с маной а бой обещяет быть долгим вы юзаете первый макрос, тем самым давая знать, что вы не в состоянии держать своего подопечного здоровым. Следует заметить, что по любому поводу спамить прозьбой о замене не стоит... Т.е. если например ваш маг/рог или еще кто наагрил, а у вас нету маны -- не стоит спамить в канала об этом, пусть умрет спокойно за свою ошибку. Другое дело если вы весите на одном из танков. Отдельно стоит обратить внимание на использование макросов при хиллинге боссов. Тут история отдельная. Обычно рейдлидер выделяет 4-6 хилеров только на хил мт. Далее хиллеры разбиваются на две группы, группа 1 и группа 2. Далее члены каждой из групп получают свои внутригрупповые номера. Далее каждый из них получает свой порог маны. Для группы хиллеров из 3х человек пороги будут выглядить так: Первый хиллер будет хилить до 75% маны. Второй хиллер будет хилить до 50% маны. Третий хиллер будет хилить до 25% маны. Для группы из 2х хилеров так: Первый хилит до 66% маны. Второй хилит до 33% маны. Как только у хилера заканчиватся мана он просит себя заменить первым макросом. Как только вся группа проходит свои пороги их сменяет вторая группа. Что делать тем, у кого полная мана из другой группы - решать им, это может быть подхил случайно получивших по голове и тд и тп, стоит только помнить что к тому моменту как может подойти ваша очередь вы должны будете быть с первой маной. Ситуация для примера. Есть 2 группы хилров по 3 человека. Первая группа доходит до третьего хилера, у него заканчиватся порог маны - его заменяет первый хиллер из второй группы. В это время у хилера №1 из группы №1 уже полная мана, а впереди еще 3 человека из ротации - что ему делать? Решать ему, но он вполне может еще процентов 30% маны потратить на подхил рейда. Макросы: Макрос на прозьбу о замене: Код: /6 ### Нужна замена на < %t > ### /oomГде /6 - это номер канала Heal. Макрос с сообщением о готовности заменить: Код: /6 *** Заменил на < %t > *** /readyГде /6 - это номер канала Heal. В принципе текст макроса может быть любым, тут принципиальны только две вещи: 1. Спец символы в начале и конце строки (### - прозьба о замене, *** - замена) 2. Указание цели на ком. |
Автор: alsimon 6.12.2005 - 18:54 |
Речь пойдёт об Addon Decursive Код: ## Interface: 1500 ## Title: Decursive ## Author: Quu ## Description: This is a raid cleaning mod. The idea behind this is to itterate though the raid party, and cure who ever needs it. It also work on teams, but was written with raids in mind. Pets were added since some debuffs are PBAoE. В стандартном функционале нет возможности забиндить клавишу "декурсить только свою партию в рейде". После добавления этих строчек - такая функциональность появится. Пока /команду свою ещё не пробовал добавлять \decursive\Bindings.xml Код: <Binding name="RBCLEAN_OWN" header="DECURSIVE">dcr_Clean_Own();</Binding> \decursive\localization.lua Код: BINDING_NAME_RBCLEAN_OWN = "Clean Own Group"; \decursive\decursive.lua Код: -- Очищает только свою партию function Dcr_CleanArray_Own(UnitArray, LastChecked) Dcr_debug("Checking array"); -- this is just to save us from going to far local partyMax = GetNumRaidMembers() + 4; if (LastChecked >= partyMax) then LastChecked = 0; end local i; Dcr_debug( "Starting the check at 1"); for i = 1, 4 do if (Dcr_CureUnit(UnitArray[i])) then return true, i; end; end return false, 0; end Код: -- Вызывает очищение только своей партии function Dcr_Clean_Own() ----------------------------------------------------------------------- -- first we do the setup, make sure we can cast the spells ----------------------------------------------------------------------- if ( not Dcr_Spell_Book) then Dcr_errln(DCR_NO_SPELLS); return false; end local canCastSpell = false; local spellName, spellID; for spellName, spellID in Dcr_Spell_Book do local last_cast, cooldown; last_cast, cooldown = GetSpellCooldown(spellID, SpellBookFrame.bookType) if (cooldown ~= 0) then Dcr_debug( "Spell not ready... "..spellName); else canCastSpell = true; end end if (not canCastSpell) then Dcr_errln(DCR_NO_SPELLS_RDY); return false; end ----------------------------------------------------------------------- ----------------------------------------------------------------------- -- then we see what our target looks like, if freindly, check them ----------------------------------------------------------------------- local targetEnemy = false; local targetName = nil; local cleaned = false; local resetCombatMode = false; if (UnitExists("target")) then -- if we are currently targeting something if (Dcr_CombatMode) then Dcr_debug("when done scanning... if switched target reset the mode!"); resetCombatMode = true; end if (UnitIsFriend("target", "player") or UnitIsCharmed("target")) then -- try cleanign the current target first cleaned = Dcr_CureUnit("target"); -- we are targeting a player, save the name to switch back later targetName = UnitName("target"); else -- we are targeting an enemy... switch back when done targetEnemy = true; end end; ----------------------------------------------------------------------- ----------------------------------------------------------------------- -- now we check the partys (raid and local) ----------------------------------------------------------------------- -- try to clean self if (not cleaned) then cleaned = Dcr_CleanSelf(); end -- try to clean the parties if (not cleaned) then cleaned, Dcr_LastUnitChecked = Dcr_CleanArray_Own(Dcr_Unit_Array, Dcr_LastUnitChecked); end; -- after 1.5.0 this will replace the other tests --if (not cleaned) then -- cleaned, Dcr_LastPetChecked = Dcr_CleanArray(Dcr_PEt_Array, Dcr_LastPetChecked); --end; ----------------------------------------------------------------------- ----------------------------------------------------------------------- -- ok... done with the cleaning... lets try to clean this up -- basically switch targets back if they were changed ----------------------------------------------------------------------- if (targetEnemy) then -- we had somethign "bad" targeted if (not UnitIsEnemy("target", "player")) then -- and we scanned a pet, cast dispell magic, or some how broke target... switch back Dcr_debug("targeting enemy"); TargetLastEnemy(); if (resetCombatMode) then -- resetCombatMode is the fix Dcr_DelayTimer = Dcr_SpellCombatDelay; Dcr_debug("done... now we wait for the leave combat event"); end end -- now that we are back on the enemy.... -- lets see if we want to cast dispell magic if nothing was cleaned if (Dcr_CastDispellMagic and (not cleaned)) then if (not UnitIsFriend("target", "player")) then -- becasue neaturals can be attacked local spellName; for spellName in Dcr_Enemy_SpellArray do if (Dcr_Spell_Book[spellName]) then Dcr_println(string.gsub(DCR_DISPELL_ENEMY, "$s", spellName)); local spellID = Dcr_Spell_Book[key]; CastSpell(spellID, SpellBookFrame.bookType); cleaned = true; end end end end elseif (targetName) then -- we had a freindly targeted... switch back if not still targeted if ( targetName ~= UnitName("target") ) then TargetByName(targetName); end else -- we had nobody targeted originally if (UnitExists("target")) then -- we scanned a pet ClearTarget(); end end if (not cleaned) then Dcr_println( DCR_NOT_CLEANED); Dcr_LastUnitChecked = 0; Dcr_LastPetChecked = 0; end return cleaned; end |
Автор: alsimon 6.12.2005 - 18:55 |
Новая версия: возможность задать классы, которые нужно декурсить/диспелить возможность включать и выключать декурс рейда возможность забиндить декурс только своей группы возможность сделать свою группу приоритетной перед рейдом Больше ничего пока в голову не приходит. Вызывается: посмотреть настройки Код: /dec ? включить/выключить каждый из классов: Код: /dec {class}+ /dec {class}- {class}={'DRU', 'HUN', 'MAG', 'PAL', 'PRI', 'ROG', 'SHA', 'LOC', 'WAR'} включить/выключить приоритет группы над рейдом Код: /dec G+ /dec G- включить/выключить декурс рейда Код: /dec R+ /dec R- |
Автор: MoNK 6.12.2005 - 19:40 |
Если выключаешь декурс рейда, декурс группы сохраняется? |
Автор: Reebok 15.04.2007 - 13:50 |
Люди напишите ПЛИЗ скрипт на: Снять лук Снять стрелы Буду примного благодарен Мне говорили что есть какая то каманда на снятие шмотки но я её не нашол нигда =(( |
Автор: Darvin 15.04.2007 - 16:15 |
/script PickupInventoryItem(slotId) где slotId это: AmmoSlot 0 MainHandSlot 16 SecondaryHandSlot 17 RangedSlot 18 /script PutItemInBackpack(y); у - в какую сумку ложим |
Автор: Reebok 15.04.2007 - 20:36 |
Ой спасибо терь буду читерить ) |
Автор: Reebok 15.04.2007 - 21:08 |
огромное при огромное спасибо ) |