Перейти к содержимому


- - - - -

Макросы - особый вид искусства.


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 87

#1 Raven

Raven
  • Седой Дракон

  • Power User
  • 5 553 сообщений
  • Пол:Мужчина
  • Город:Русь
  • Интересы:Родные, друзья, работа, учёба, самосовершенствование.....

Отправлено 31.08.2006 - 18:28

Кто писал более или менее сложные макросы. Делимся опытом, придумываем новые)

#2 fansycom

fansycom
  • Изучает местность

  • Пользователь
  • 68 сообщений
  • Пол:Мужчина
  • Город:Лазоревый....

Отправлено 31.08.2006 - 18:34

Прозьба:
кто знает как сделать макросу чтоб менять щит\меч на двухручное оружие отпишитесь!!

#3 P1oneer

P1oneer
  • artemqa

  • Power User
  • 4 610 сообщений
  • Пол:Мужчина
  • Город:Солнцево

Отправлено 31.08.2006 - 18:38

Все время хотел попробовать макросы, но не знаю как(


и ваще что такой макрос? можно описание?

#4 Raven

Raven
  • Седой Дракон

  • Power User
  • 5 553 сообщений
  • Пол:Мужчина
  • Город:Русь
  • Интересы:Родные, друзья, работа, учёба, самосовершенствование.....

Отправлено 31.08.2006 - 18:40

Грубо говоря в программировании макрос - это замена определённого стандартного набора действий или следующих друг за другом операций одной функцией или включающей группу операций операцией.

#5 Romchik

Romchik
  • Time to Blitz!

  • Пользователь
  • 1 689 сообщений
  • Пол:Мужчина
  • Город:Машины
  • Интересы:Регби,Греко-Римская борьба

Отправлено 31.08.2006 - 18:50

Для тех,кто только начинает,выкладываю руководство по написанию простеньких макросов

Сообщение отредактировал Romchik: 23.09.2006 - 22:12


#6 Raven

Raven
  • Седой Дракон

  • Power User
  • 5 553 сообщений
  • Пол:Мужчина
  • Город:Русь
  • Интересы:Родные, друзья, работа, учёба, самосовершенствование.....

Отправлено 31.08.2006 - 18:51

Ромчик, я тебе очень доверяю, но не мог бы ты просто выложить макрос целико в сообщении или что там у тебя?)))))

#7 Romchik

Romchik
  • Time to Blitz!

  • Пользователь
  • 1 689 сообщений
  • Пол:Мужчина
  • Город:Машины
  • Интересы:Регби,Греко-Римская борьба

Отправлено 31.08.2006 - 18:54

там оооочень много написанно.но могу выложить целиком.




Инвентарь и Предметы    
Использовать предмет:
/script UseContainerItem(bag, slot);
• Bag – это номер сумки, от 0 до 4, где 0 – начальная сумка.
• Slot – это номер слота в сумке от 1 до 20.
Макрос автоматически использует предмет в заданной сумке на заданном месте, полезен при использовании алхимии или просто при переодевании тринкетов.



Бой    
Макросы для помощи танку:
Самый простой макрос для атаки цели которую атакует выбранный заранее танк:
/assist %t
/script AttackTarget();
Этот макрос слишком простой и не может покрыть всего того функционала который необходим зачастую в быстро протекающем бое, попробуем сделать более сложный вариант макроса, разделив при этом часть автоматической выборки подходящего танка, и часть фокуса на цели выбранного танка:
---- Для выбора танка ----
/script LeaderPlayerName = UnitName("target") or UnitName("party1") or "";
/script DEFAULT_CHAT_FRAME:AddMessage("######## Set main assist to: " .. LeaderPlayerName);
---- Для атаки цели танка ----
/script AssistByName(LeaderPlayerName or UnitName("party1") or UnitName("player"));
/script DEFAULT_CHAT_FRAME:AddMessage("######## Assisting ".. LeaderPlayerName .. " with target " .. (UnitName("target") or "NO TARGET"));
При использовании первого макроса, в памяти интерфейса запоминается ник выбранного игрока, что бы при нажатии второго макроса, выбиралась цель ранее запомненного танка, не зависимо от того где он находится, не нужно использовать первый макрос каждый раз, только один раз для начальной установки танка.
Но это два макроса, они будут занимать два слота на вашем интерфейсе, хотя они и очень удобные. Попробуем совместить оба макроса в один не потеряв при этом функциональности. Макрос будет выглядеть следующим образом:
/script p=PAsi or""u=UnitName;t="target"c=IsControlKeyDown()if©then p=u(t)or u("party1")or""else AssistByName(p)end;DEFAULT_CHAT_FRAME:AddMessage("######## "..(c and("Set assist: "..p)or("Assisting "..p.." with "..(u(t)or"NO TARGET"))))PAsi=p
Тот же макрос в более удобном для чтения виде, так как выше приведенный, не читаем из за оптимизации под длину в 255 символов:
/script
p=PAsi or"";
u=UnitName;
t="target";
c=IsControlKeyDown();
if© then
p=u(t) or u("party1") or ""
else
AssistByName(p)
end;
DEFAULT_CHAT_FRAME:AddMessage("######## "..
(c and
("Set assist: "..p)
or
("Assisting "..p.." with "..(u(t) or "NO TARGET"))));
PAsi=p;
Итак, как же пользоваться этим макросом:
Для установки нужного танка, удерживая Ctrl кликните на иконку использования макроса.
Обычный клик на иконку использования макроса выберет необходимую цель.
Модификация этого макроса с возможностью колдовства разных заклинаний на цель выбранного танка (выбрано заклинание Полиморф, что может быть заменено на любое другое):
/script t=Tg1 or""c=IsControlKeyDown()if©then t=UnitName("target")or""else TargetByName(t)if(IsShiftKeyDown())then CastSpellByName('Polymorph')end end ChatFrame1:AddMessage("######## "..(c and("Tg1 set to: "..t)or("Targeting: "..t)))Tg1=t
Тот же макрос в удобном виде:
/script
t=Tg1 or""
c=IsControlKeyDown()
if© then
t=UnitName("target")or""
else
TargetByName(t)
if(IsShiftKeyDown()) then
CastSpellByName('Polymorph')
end
end
DEFAULT_CHAT_FRAME:AddMessage("######## "..
(c and
("Tg1 set to: "..t)
or
("Targeting: "..t)))
Tg1=t
Итак, как же пользоваться этим макросом:
Для установки нужного танка, удерживая Ctrl кликните на иконку использования макроса.
Обычный клик на иконку использования макроса выберет необходимую цель.
Если удерживая Shift кликнуть на иконку использования макроса, то персонаж начнет колдовать выбранное заклинание (полиморф) на текущую цель выбранного ранее танка.

Макросы для уничтожения тотемов:
Простейший вариант:
/target Totem
/cast Moonfire(Rank 1)
Более сложный вариант:
/script u=UnitName;
s=strfind;
t="target";
for i = 1,10,1 do TargetNearestEnemy()
if (not UnitCanAttack("player",t))then
break;
end;
if ((s(u(t),"Totem") or s(u(t),"Ward")) and not s(UnitCreatureType(t),"Human")) then
CastSpellByName("Shoot");
break;
end;
end;

Таймер:
/script if IsAltKeyDown() then L1="Instance Start"; T1=GetTime();
M=format("Timer Set [%s]",L1); else N=GetTime(); D=N-T1;
M=format("Time Elapsed - [%s]: %02dh:%02dm:%02ds",L1, D/3600,mod((D/60),60), mod(D,60)); end
SendChatMessage(M,"SAY");
Макрос отсчитывает время с момента установки начального времени отсчета, что бы установить оное, нужно зажав Alt кликнуть на иконку использования макроса. При использовании макроса, выдается искомое время с точностью до секунды.

Макросы для петов    
Атака петом:
Простой макрос атаки пета по выбранной цели
/script PetAttack();
Более продвинутый вариант:
/target player
/assist
/script PetAttack();

Атака специальным заклинанием пета (например Dash):
/script PetAttack(); CastPetAction(4);

Команды для пета:
Список всех команд пету
/script PetAggressiveMode();
/script PetDefensiveMode();
/script PetPassiveMode();
/script PetFollow();
/script PetAttack();
/script PetStopAttack();
/script CastPetAction(X);
• Для последней строки, X – номер заклинания пета в панели управления петом.

Колдовство страха и одновременное отключение атаки пета:
/cast Fear(Rank #)
/script PetFollow();

Воин:
Battle stance -> Mocking blow:
/script texture,name,isActive,isCastable = GetShapeshiftFormInfo(1); if isActive then CastSpellByName("Mocking Blow()"); else CastSpellByName("Battle Stance()"); end;
Требуется минимум 2 нажатия.

Defensive stance -> Taunt:
/script texture,name,isActive,isCastable = GetShapeshiftFormInfo(2); if isActive then CastSpellByName("Taunt()"); else CastSpellByName("Defensive Stance()"); end;
Требуется минимум 2 нажатия.

ВНИМАНИЕ,ЧТОБЫ ИСПОЛЬЗОВАТЬ МАКРОС,СКОПИРУЙТЕ В ОТДЕЛЬНЫЙ ДОКУМЕНТ И ВЫСТАВИТЕ ЕГО В 1 СТРОЧКУ.ЗАТЕМ КОПИРУЙТЕ В ВОВ

Сообщение отредактировал Romchik: 31.08.2006 - 18:57


#8 Raven

Raven
  • Седой Дракон

  • Power User
  • 5 553 сообщений
  • Пол:Мужчина
  • Город:Русь
  • Интересы:Родные, друзья, работа, учёба, самосовершенствование.....

Отправлено 31.08.2006 - 18:59

Спасибо. Это очень похоже на паскаль, похоже он и есть. Придётся вспоминать этот древний язык школьного курса обучения))) Есть ещё предположение что это препроцессорные дерективы, только упрощённые за счёт макросов(тогда это Си++, так скорее всего и есть, потому что у них линуксы сервера, а они с Си++ дружат). Интересно, если просто на Си писать будет работать? Есть ли описание переменных и их свойств конкретно для WoW'а?

#9 Raven

Raven
  • Седой Дракон

  • Power User
  • 5 553 сообщений
  • Пол:Мужчина
  • Город:Русь
  • Интересы:Родные, друзья, работа, учёба, самосовершенствование.....

Отправлено 31.08.2006 - 19:09

Надо с этими ещё разобраться. Тема создана с целью понять что зачем и написать то что мы поняли, а затем можем создать что-то навроде методички и писать собственные макросы. (их ведь можно продавать)))))))

#10 fansycom

fansycom
  • Изучает местность

  • Пользователь
  • 68 сообщений
  • Пол:Мужчина
  • Город:Лазоревый....

Отправлено 31.08.2006 - 19:17

Ну как ты се это представляешь????
сообщение в чате
- у меня в продаже мкросы!!подхади покупай
Врядли ктото купит...

Сообщение отредактировал fansycom: 31.08.2006 - 19:19


#11 anjolio

anjolio
  • Пользователь

  • Пользователь
  • 167 сообщений
  • Пол:Мужчина
  • Город:Солнцево, Волынская 4
  • Интересы:фотография, linux, спорт

Отправлено 31.08.2006 - 19:20

Ну почему в чате? на форуме за WM..=)

#12 Raven

Raven
  • Седой Дракон

  • Power User
  • 5 553 сообщений
  • Пол:Мужчина
  • Город:Русь
  • Интересы:Родные, друзья, работа, учёба, самосовершенствование.....

Отправлено 31.08.2006 - 19:21

Вообще-то так и делают. Прграммирование -то знаешь ли совсем не просто. Вот ты сейчас сможешь во всём этом разобраться? А написать после этого что-нибудь своё? Сколько у тебя займёт времени это действо. Есть платные макросы, есть бесплатные и так уже давно)))) (для друзей завсегда бесплатно :)

#13 Heretic

Heretic
  • Новичок

  • Динозавр Форума
  • 35 сообщений

Отправлено 01.09.2006 - 19:49

Просмотр сообщенияRaven (31.8.2006, 20:21) писал:

Вообще-то так и делают. Прграммирование -то знаешь ли совсем не просто. Вот ты сейчас сможешь во всём этом разобраться? А написать после этого что-нибудь своё? Сколько у тебя займёт времени это действо. Есть платные макросы, есть бесплатные и так уже давно)))) (для друзей завсегда бесплатно :)
может кто дать локу макрос что мой фел или ссука сами тотемы валили простй атакой? =)

Сообщение отредактировал Heretic: 01.09.2006 - 19:49


#14 Brenor

Brenor
  • And shаll they know no Fear...

  • Пользователь
  • 781 сообщений
  • Пол:Мужчина
  • Город:5й Лаборатории
  • Интересы:Я, WoW, Спортивный туризм, Nightwish, Лето, девушки :megalol:

Отправлено 19.09.2006 - 07:39

Кстать Рав прав :)
Ето реально паскаль ну или похож лана ща достанем тетрадку и почитаемммм

З.Ы. онию ещё на ява скипте бы делали чтоб наиболее умных выявлять и брать в фирму :)

Сообщение отредактировал Brenor: 19.09.2006 - 07:40


#15 алукард

алукард
  • Пользователь

  • Пользователь
  • 274 сообщений
  • Пол:Мужчина

Отправлено 22.09.2006 - 20:42

не хочутся показатся дураком(а придётся )а чё это такое?

Сообщение отредактировал алукард: 22.09.2006 - 20:42


#16 Brenor

Brenor
  • And shаll they know no Fear...

  • Пользователь
  • 781 сообщений
  • Пол:Мужчина
  • Город:5й Лаборатории
  • Интересы:Я, WoW, Спортивный туризм, Nightwish, Лето, девушки :megalol:

Отправлено 22.09.2006 - 20:52

ето (грубо говоря) кнопочка в которую заключаеться определённое действие или их набор :)
ну а вообще ето программа тока маленькая но ето етого не менее сложная чем другие
понятно?)

#17 алукард

алукард
  • Пользователь

  • Пользователь
  • 274 сообщений
  • Пол:Мужчина

Отправлено 22.09.2006 - 21:48

:) ага понял :)

#18 алукард

алукард
  • Пользователь

  • Пользователь
  • 274 сообщений
  • Пол:Мужчина

Отправлено 29.09.2006 - 11:50

люди помогите  как их сделать???

#19 Romchik

Romchik
  • Time to Blitz!

  • Пользователь
  • 1 689 сообщений
  • Пол:Мужчина
  • Город:Машины
  • Интересы:Регби,Греко-Римская борьба

Отправлено 29.09.2006 - 12:53

смотри всю тему.выше я выложил как написать простые макросы

#20 Hermes24

Hermes24
  • Пользователь

  • Динозавр Форума
  • 353 сообщений
  • Пол:Мужчина
  • Город:Люберцы

Отправлено 29.09.2006 - 14:29

удалите пост,по обкору ошибся темой

Сообщение отредактировал Hermes24: 29.09.2006 - 14:31


#21 Grassi

Grassi
  • Новичок

  • Пользователь
  • 23 сообщений

Отправлено 05.10.2006 - 12:19

А есть ли макрос который быстро переключает с пати чата на гильд чат? а то изза этого постоянно проблемы(

#22 Romchik

Romchik
  • Time to Blitz!

  • Пользователь
  • 1 689 сообщений
  • Пол:Мужчина
  • Город:Машины
  • Интересы:Регби,Греко-Римская борьба

Отправлено 05.10.2006 - 12:25

есть.написать его довольно легко )

#23 Grassi

Grassi
  • Новичок

  • Пользователь
  • 23 сообщений

Отправлено 07.10.2006 - 08:07

Ну, кому как( Я например вообще не знаю как их писать(((
Максимум эмоции на макросы перетащить(

#24 Romchik

Romchik
  • Time to Blitz!

  • Пользователь
  • 1 689 сообщений
  • Пол:Мужчина
  • Город:Машины
  • Интересы:Регби,Греко-Римская борьба

Отправлено 07.10.2006 - 22:40

оплачу вов и напишу тебе этот макрос

#25 Grassi

Grassi
  • Новичок

  • Пользователь
  • 23 сообщений

Отправлено 14.10.2006 - 12:49

Просмотр сообщенияRomchik (7.10.2006, 23:40) писал:

оплачу вов и напишу тебе этот макрос
Ок)

#26 BIVIS

BIVIS
  • Изучает местность

  • Пользователь
  • 70 сообщений
  • Пол:Мужчина
  • Город:Нагатино

Отправлено 24.10.2006 - 03:57

вот ссылка на макросы http://warcraft.net....o...6&Itemid=37

Сообщение отредактировал BIVIS: 24.10.2006 - 09:09


#27 Megasens

Megasens
  • Пользователь

  • Пользователь
  • 101 сообщений

Отправлено 14.11.2006 - 18:33

Прочитал, но : надо мне допустим связку -  чардж-хамстинг, чардж делает, а потом ек. В ла2 это решалось командой decay - задержка, здесь подобное есть?

#28 timberwoof

timberwoof
  • Новичок

  • Пользователь
  • 19 сообщений

Отправлено 14.11.2006 - 23:13

попробуй /script StopSpellcasting(); между командами. Как раз между двумя инстант кастами и ставь эту строку.

#29 Heretic

Heretic
  • Новичок

  • Динозавр Форума
  • 35 сообщений

Отправлено 21.01.2007 - 18:53

После последних патчей отрубились все мои макросы у всех чаров
Подскажите макрос чтоб колдовать любой спел ,а потом спел который не чекает мировой кд,и наоборот чтоб сначала такой спел ,а потом любой др-й =)

#30 Легионер

Легионер
  • Just for CSKA Moskow

  • Пользователь
  • 653 сообщений
  • Пол:Мужчина
  • Город:Красногорье
  • Интересы:Linkin Park, мяч и World of Warcraft. Больше ничего ненадо. EU OFF Deathwing Legioner Human Priest.

Отправлено 21.01.2007 - 21:56

А возможноли создать макрос, лечащий именно вариора (или другого танка) и просто изменять класс того, кого собираюсь лечить? Просто надоело в рейде щелкать на того, другого, третьего!




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей