Вот полезный материал, в который можно вникать , даже нужно =)

Макросы в вов написаны на языке Lua(wwwlua.org). Lua - маленький и быстрый, но достаточно мощный язык написанный на Си. Поэтому, зная хотя бы основы Си? вы без труда разберётесь в этом нехитром деле - написание макросов для вов.

Наберите в строке чата /macros - откроется список макросов, тычем кнопку new, потом придумываем имя, выбираем картинку, потом вводим код. Стоп, а что собственно вводить? Ну что ж, подумаем вообще, зачем нам всё это, правильно, для автоматизации наших действий. Первое что приходит в голову это говорить вашей группе кого атаковать:

Код:

/p Atacking %t

(%t подставляет имя выделенного вами персонажа.)

Хорошо, теперь допустим мы маг, кто играл магом - знает какая это беда кастить полиморф в группе, когда члены группы, по несогласованности, начинают атаковать и частенько под руку попадается овечка.

Код:

/p Polymorphing! DONT atack %t!
/cast Polymorph (Rank X)

(X - это уровень вашего заклинания)

Идём дальше. Нужен скрипт, который лечил и предупреждал остальных хилеров, что вы уже лечите эту цель:

Код:

/script if ((UnitName("target") ~= nil) AND (UnitIsFriend("player", "target"))
then SendChatMessage("Healing (+n)!", "PARTY", "COMMON", UnitName("target") ); end
/cast SpellName (Rank X)

Думаю понятно, описание функции смотрите ниже.

Ещё один полезный макрос:

Код:

/script ToggleBag(0);
/script ToggleBag(1);
/script ToggleBag(2);
/script ToggleBag(3);
/script ToggleBag(4);

Открывает/закрывает все сумки полезно перебиндить на "b".

Приведу основные функции:

Хотя это всё функции, некоторые из них являться только информационными, а некоторые, влияют непосредственно на игру, поэтому я разделил всё на методы и свойства, для удобства.

----------------------------------------------[Методы]

--[действия]--

AttackTarget();

Пример: AttackTarget();

Описание: Атакует выделенного персонажа.

CastSpellByName(spellname)

Пример: CastSpellByName("Demon Skin");

Описание: Кастует указанное заклинание

TargetUnit(targetcode);

Пример: TargetUnit("player");

Описание: Выделяет персонажа указанного в параметре "player", "party1".."party5", "npc", "target".

TargetUnitsPet(targetcode);

Пример: TargetUnitsPet("player");

Описание: Выделяет пэта указанного персонажа.

TargetLastEnemy();

Пример: TargetLastEnemy();

Описание: Выделяет последнего атакованного персонажа.

AssistUnit(target)

Пример: AssistUnit("target");

Описание: Помогает атаковать персонажу, указанному в параметре.

AssistByName(target)

Пример: AssistByName("Marco");

Описание: Помогает атаковать персонажу с именем указанным в параметре.

FollowUnit(target)

Пример: FollowUnit("target");

Описание: Следует за персонажем указанным в параметре.

FollowUnitByName(target)

Пример: FollowByName("Beeblebrox");

Описание: Следует за персонажем с именем указанным в параметре.

ToggleBag(bagnumber)

Пример: ToggleBag(0);

Описание: Открывает/закрывает сумку сумки расположены: 4-3-2-1-0. 0 это бэкпак.

--[группа и взаимодействия]--

InviteByName(target)

Пример: InviteByName(GetSlashCmdTarget(msg));

Описание: Приглашает в группу персонажа с именем указанным в параметре.

UninviteByName(target)

Пример: UninviteByName(GetSlashCmdTarget(msg));

Описание: Удаляет из группы персонажа с именем указанным в параметре.

InitiateTrade(target)

Пример: InitiateTrade("target");

Описание: Приглашает к торговле персонажа указанного в параметре.

InspectUnit(target)

Пример: InspectUnit("target");

Описание: Показывает информацию о персонаже.

BeginTrade();

Описание: Согласиться на торговлю.

CancelTrade();

Описание: Отказаться от торговли.

AcceptGroup()

Описание: Согласиться на приглашение в группу.

DeclineGroup()

Описание: Отказаться от группы

PromoteToPartyLeader(unit);

Описание: Делает лидером указанного игрока.

LeaveParty()

Описание: Покинуть группу.

AddFriend(name)

Описание: Добавить друга.

RemoveFriend(name)

Описание: Удалить друга

AddOrDelIgnore(name);

Описание: Добавляет/удаляет игрока из игнор-листа.

Duel(name)

Описание: Вызывает на дуэль игрока.

CancelDuel();

Описание: Отменяет дуэль.

SetLootMethod(methodstring, player)

Описание: Устанавливает способ лута: "freeforall","roundrobin","master".

LootSlot(slotidnumber, 0)

Пример: LootSlot(((LOOTFRAME_NUMBUTTONS - 1) * (LootFrame.page - 1)) + this:GetID(), 0);

Описание: Лутит указанный предмет

--[Движения]--

MoveForwardStart(starttime);

Описание: Игрок начинает бежать вперёд.

MoveForwardStop(time);

Описание: Игрок прекращает бежать вперёд.

MoveBackwardStart(starttime);

Описание: Игрок начинает бежать назад.

MoveBackwardStop(stoptime);

MoveBackwardStop(arg1);

Описание: Игрок прекращает бежать назад.

TurnLeftStart(starttime);

Описание: Игрок начинает бежать влево.

TurnLeftStop(arg1);

Описание: Игрок прекращает бежать влево.

TurnRightStart(starttime);

Описание: Игрок начинает бежать вправо.

TurnRightStop(stoptime);

Описание: Игрок прекращает бежать вправо.

StrafeLeftStart(StartTime);

Описание: Игрок начинает стрэйфить влево.

StrafeLeftStop(stoptime);

Описание: Игрок прекращает стрэйфить влево.

StrafeRightStart(starttime);

Описание: Игрок начинает стрэйфить вправо.

StrafeRightStop(stoptime);

Описание: Игрок прекращает стрэйфить вправо.

Jump();

Описание: Заставляет игрока прыгать.

SitOrStand()

Описание: Заставляет присесть/встать

--[гильдия]--

AcceptGuild()

Описание: Принимает приглашение в гильдию.

DeclineGuild()

Описание: Отказывается от приглашение в гильдию.

GuildInviteByName(player);

Описание: Приглашение в гильдию для игрока, имя которого указанно в параметре.

GuildUninviteByName(player)

Описание: Выгоняет из гильдии игрока, имя которого указанно в параметре.

GuildPromoteByName(player)

Описание: Увеличивает статус игрока, имя которого указанно в параметре.

GuildDemoteByName(player)

Описание: Уменьшает статус игрока, имя которого указанно в параметре.

GuildSetLeaderByName(player)

Описание: Делает лидером игрока, имя которого указанно в параметре.

GuildSetMOTD(message)

Описание: Устанавливает приветственное сообщение.

GuildLeave()

Описание: Покинуть гильдию.

--[пэт]--

PetAttack();

Описание: Заставляет вашего пэта атаковать.

PetAbandon();

Описание: Бросить вашего пэта.

PetRename(name)

Описание: Переименовать вашего пэта.

PetPassiveMode();

Описание: Переключает вашего пэта в пассивный режим.

PetDefensiveMode()

Описание: Переключает вашего пэта в защитный режим.

PetAggressiveMode()

Описание: Переключает вашего пэта в агрессивный режим.

PetWait()

Описание: Останавливает вашего пэта в пассивный режим.

PetFollow()

Описание: Заставляет вашего пэта следовать за вами.

--[разное]--

SendChatMessage(msg, mode, language, channel);

Пример: SendChatMessage(msg, "WHISPER", this.language, lastTell);

Описание: Отправляет сообщение mode:"SAY", "YELL", "PARTY", "AFK", "DND", language: "COMMON", "DRACONIC", "ORCISH" ...

RandomRoll(low,high);

Пример: RandomRoll("1","100");

Описание: Выдаёт случайное число, удобно при розыгрыше сундуков.

PlaySound(filename);

Пример: PlaySound("BAGMENUBUTTONPRES");

Описание: Проигрывает звуковой файл.

Screenshot();

Описание: Делает скриншот.

ForceLogout()

Описание: Усиленный дисконнект.

Logout()

Описание: Дисконнект.

Quit()

Описание: Выход из игры

----------------------------------------------[Свойства]

UnitName(string)

Пример: target = UnitName("target");

Описание: Возвращает имя игрока

GetFriendInfo(friendid)

Пример: name, level, class, area, connected = GetFriendInfo(friendIndex);

Описание: Возвращает информацию о друге.

UnitXP(target)

Пример: local currXP = UnitXP("player");

Описание: Возвращает опыт игрока

UnitXPMax(target)

Пример: local nextXP = UnitXPMax("player");

Описание: Показывает максимальный опыт игрока.

GetUnitMoney(target)

Пример: if ( UnitMoney("player") >= moneyCost ) then

Описание: Показывает количество денег игрока.

UnitExists(unitname)

Пример: if ( UnitExists(unit) and UnitIsPlayer(unit) ) then

Описание: Возвращает true если персонаж существует.

UnitIsPlayer(unitname)

Пример: if ( UnitExists(unit) and UnitIsPlayer(unit) ) then

Описание: Возвращает true если персонаж является игроком.

PetCanBeAbandoned()

Описание: Возвращает true если пэт может быть брошен.

UnitIsUnit(unitnamea, unitnameB)

Пример: UnitIsUnit("target", "pet")

Описание: Возвращает true если unitnamea является unitnameB

UnitReaction("target", "player")

Пример: UnitReaction("target", "player")

Описание: Возвращает тип поведения: neutral hostile, friendly.

GuildInfo()

Описание: Показывает инфо о гильдии

GetPartyMember(index[or id])

Пример: GetPartyMember(3)

Описание: Возвращает имя члена партии.

UnitIsPartyLeader(unitname)

Пример: UnitIsPartyLeader("target")

Описание: Возвращает true если персонаж лидер группы.

GetLootMethod()

Пример: lootMethod, lootMaster = GetLootMethod();

Описание: Возвращает тип и мастера(если есть) лута

UnitInParty(unitname)

Пример: UnitInParty("target")

Описание: Возвращает true если персонаж входит в группу.

GetPlayerMapPosition(playerid);

Пример: playerX, playerY = GetPlayerMapPosition("player");

Описание: Возвращает ваши координаты.

GetCorpseMapPosition();

Пример: corpseX, corpseY = GetCorpseMapPosition();

Описание: Возвращает координаты вашего тела.

//-------------------------------------[chanel]

LeaveChannelByName(channelname)

LeaveChannelByName("Trade");

Leaves the channel with the specified name.

ListChannelByName(channelname)

ListChannelByName("trad")

Lists all of the channels that match the specified regular expression.

ListChannels()

ListChannels();

Lists all of the channel.

SetChannelPassword(username, password)

SetChannelPassword("Xiphoris","cantkeepassecret")l

Changes the password of the current channel if that is a legal action.

ChannelModerator(channel,player)

ChannelModerator("uimods","Kelthan");

Sets the specified player as the channel moderator.

ChannelUnmoderator(channel, player)

ChannelUnmoderator("uimods", "xiphoric");

Takes the specified user away from the moderator status.

ChannelMute(channel, player)

ChannelMute("uimods","zileas");

Turns off the specified player's ability to speak in a channel.

ChannelUnmute(channel,player)

ChannelUnmute("uimods", "marco");

Unmutes the specified user from the channel.

ChannelInvite(channel,player)

ChannelInvite("cutestelves","glorfindel");

Invites the specified user to the chatroom.

ChannelKick(channel,player)

ChannelKick("bigllamas", "Strong_Bad_Is_Geh");

Kicks the specified user from the channel.

ChannelBan(channel,player)

ChannelBan("uimods", "alexyoshi")

Bans a player from the specified channel.

ChannelUnban(channel, player)

ChannelUnban("uimods", "kat");

Unbans a player from a channel.

ChannelToggleAnnouncements(channel);

ChannelToggleAnnouncements(channel);

Sets the channel to display announcements.