Вот полезный материал, в который можно вникать , даже нужно =)
Макросы в вов написаны на языке 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.