Сегодня мы хотели бы поделиться с вами переводом нескольких постов с
r/classicwow, в которых пользователи рассказывали об интересных макросах, которые позволяют украсить и разнообразить отыгрыш персонажа. Один из них даже даст вам возможность поиграть в покер. В актуальном WoW и Classic работают одинаковые правила для подобных команд, поэтому данная подборка будет работать в любой версии игры.
Макросы для ролевой игры
Пользователь
RavenholdtArena предложил несколько интересных макросов, который отлично подойдут для RP серверов.
Бросок монеты/e небрежно подбрасывает золотую монету.
/run C_Timer.After(1, function() SendChatMessage(GetRandomArgument("ловит монету, орёл.","ловит монету, решка."),"emote") end)
Макрос позволит вам узнать результат подбрасывания монеты. Шанс выпадения орла/решки случаен. Вы можете изменить текст на тот, который вам больше нравится.
«Игрок» небрежно подбрасывает золотую монету.
«Игрок» ловит монету, орёл.Бросок костей/e бросает пару изношенных костей.
/run C_Timer.After(1, function() SendChatMessage("выбрасывает "..random(1,6).." и "..random(1,6)..".", "emote") end)
Макрос генерирует два случайных числа от 1 до 6.
«Игрок» бросает пару изношенных костей.
«Игрок» выбрасывает 3 и 4.Тоже самое, только отображает сразу 3 значения.
/run local t={"1","2","3","4","5","6"} a,b,c,d,e,f,g="выбрасывает ",t,", ",t," и ",t,"." m=a..b[random(1,6)]..c..d[random(1,6)]..e.. f[random(1,6)]..g SendChatMessage(m, "emote")
Тоже самое, только с двадцатигранной костью.
/e выбрасывает странную двадцатигранную кость.
/run local f1,f2,f3,m="выбрасывает ",{"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20"},"." m=f1..f2[random(1,20)]..f3 SendChatMessage(m, "emote")
Посмотреть на часы/e достает маленькие серебряные карманные часы.
/run C_Timer.After(1, function() SendChatMessage("отмечает время, "..(date("%H:%M.")),"emote") end)
Макрос отобразит текущее серверное время. Это полезно, если вы хотите играть с выключенными часами на карте.
«Игрок» достает маленькие серебряные карманные часы.
«Игрок» отмечает время, 11:35.Показать/Спрятать Шлем/Плащ/run ShowHelm(not ShowingHelm())
/run ShowCloak(not ShowingCloak())
Макрос покажет/спрячет ваш шлем или плащ. Вы можете разделить его на два отдельных макроса или привязать к способностям, например, показывать шлем, когда принимаете оборонительную стойку.
Достать/убрать оружиеМакрос повторяет действие стандартной клавиши Z. В отличие от кнопки, вы можете задать конкретные действия. ToggleShealth(1) убирает ваше оружие, 2 достает оружие ближнего боя, 3 достает оружие дальнего боя. Это позволит, например, разбойнику достать кинжалу, когда он использует незаметность.
Камера от первого лицаДанные макросы отключат интерфейс, первый приблизит камеру, а второй отдалит.
/console cameraDistanceMoveSpeed 50
/console ActionCam full
/run CameraZoomIn(500)
/run ToggleFrame(UIParent)
/console cameraDistanceMoveSpeed 8.5
/console ActionCam off
/run CameraZoomOut(200)
/run ToggleFrame(UIParent)
СкриншотЭтот макрос позволяет сделать скриншот. Вы можете комбинировать его, например, с предыдущими.
Проверка языка/run local s,g,f=select,GetLanguageByIndex,DEFAULT_CHAT_FRAME.editBox;local c,d,dd,r,rr=f.languageID,s(2,g(2)),g(2),s(2,g(1)),g(1);if d then f.languageID=(c==d and r or d);print("Ваш язык : \124cff88ff44"..(c==d and rr or dd));end;
Макрос отобразит текущий активный язык.
Макросы для игры в покер
Пользователь
gwyac придумал способ поиграть в покер без использования аддонов. Для этого он создал два макроса. Как они работают:
- Первый макрос создает колоду карт и перетасовывает ее. Lua запоминает эти карты для второго макроса. Карты являются текстом, где заглавная буква является ее достоинством, а маленькая мастью.
- Второй макрос многофункционален. Первое нажатие – раздает две карты каждому участнику группы через личные сообщения. Последующие нажатия отправляют флоп (первые 3 карты), тёрн (4ая карта) и ривер (5ая) в чат группы.
- Возможность мухлевать отсутствует, потому что у дилера есть информация о всех стартовых руках игроков.
- Макросы не поддерживают ставки, их нужно делать самостоятельно и отдельно.
- Правила Техасского холдема.
- Карты отображаются только один раз, поэтому если у вас часто пишут в чат, то найдите способ записать их.
- Макросы будут работать, если у вас в группе есть еще хотя бы один человек.
- Замените {'h','d','c','s'} на {'ч','б','т','п'} в макросе ниже, если хотите буквы мастей на русском.
Макрос на перетасовку:
/run c={2,3,4,5,6,7,8,9,10,'J','Q','K','A'};s={'h','d','c','s'};u={};d={};k=1;for i=1,4 do for j=1,13 do u[j+13*(i-1)]=c[j]..s.." " end end;for i=1,52 do n=math.random(#u);d=u[n];table.remove(u,n) end;print("Done.");n=GetNumSubgroupMembers();m=nil
Макрос на раздачу:
/run if k==1 then for i=1,n do SendChatMessage(d[k]..d[k+1],"WHISPER",nil,GetUnitName("party"..i));k=k+2 end;m="" elseif m and k<2*n+6 then if m=="" then m=d[k]..d[k+1];k=k+2 end;m=m..d[k];k=k+1;SendChatMessage(m,"PARTY") else print("Shuffle!") end
Макросы на охотника для полного погружения в ролевую игру
Пользователь, который поделился первыми командами в этой статье, пошел дальше и
создал макросы, которые позволят использовать некоторые способности вместе с эмоциями, которые воспроизводят уникальные озвученные фразы. Их будут слышать все игроки.
- Можно спокойно «спамить» кнопку с макросом, звук будет воспроизводится только в первый раз.
- У некоторых есть шанс на звук.
- Некоторые воспроизводят разные звуки.
- Работают для всех рас и полов, изменения делать не нужно.
#showtooltip
/e бросает PET-NAME обглоданную кость
/cast feed pet
/use FOOD-NAME
#showtooltip
/cast Отпустить питомца
/run TeM=TeM or GetTime()-5 if (GetTime()-TeM)>5 then DoEmote("farewell") TeM=GetTime() end
Пример#showtooltip
/petdefensive
/run TeM=TeM or GetTime()-5 if (GetTime()-TeM)>5 then DoEmote("helpme") TeM=GetTime() end
Пример#showtooltip
/petattack
/run TeM=TeM or GetTime()-2 if (GetTime()-TeM)>2 then DoEmote(GetRandomArgument("whistle","attacktarget","","","")) TeM=GetTime() end
ПримерПример#showtooltip
/petstay
/run TeM=TeM or GetTime()-3 if (GetTime()-TeM)>3 then DoEmote("wait") TeM=GetTime() end
Пример#showtooltip
/petfollow
/run TeM=TeM or GetTime()-3 if (GetTime()-TeM)>3 then DoEmote("followme") TeM=GetTime() end
Пример#showtooltip
/cast Звериный гнев
/run TeM=TeM or GetTime()-10 if (GetTime()-TeM)>10 then DoEmote("charge") TeM=GetTime() end
Пример#showtooltip
/cast Устрашение
/run TeM=TeM or GetTime()-10 if (GetTime()-TeM)>10 then DoEmote("charge") TeM=GetTime() end
Пример#showtooltip
/cast Быстрая стрельба
/run TeM=TeM or GetTime()-10 if (GetTime()-TeM)>10 then DoEmote("openfire") TeM=GetTime() end
Пример#showtooltip
/cast Осветительная ракета
/run C_Timer.After(2, function() DoEmote("incoming") end)
Пример#showtooltip
/cast Укус мангуста
/run TeM=TeM or GetTime()-3 if (GetTime()-TeM)>3 and random(100)<10 then DoEmote("roar") TeM=GetTime() end
Пример#showtooltip
/cast Прицельный выстрел
/run TeM=TeM or GetTime()-3 if (GetTime()-TeM)>3 and random(100)<5 then DoEmote("threaten") TeM=GetTime() end
Пример#showtooltip
/cast Distracting Shot
/run TeM=TeM or GetTime()-3 if (GetTime()-TeM)>3 and random(100)<20 then DoEmote("taunt") TeM=GetTime() end
Пример#showtooltip
/cast revive pet
/run TeM=TeM or GetTime()-10 if (GetTime()-TeM)>10 then DoEmote("oom") TeM=GetTime() end
ПримерЕсли вам нравится идея, то вы можете сделать подобные для других классов.
Провокация:
#showtooltip
/cast taunt
/run TeM=TeM or GetTime()-3 if (GetTime()-TeM)>3 and random(100)<10 then DoEmote("taunt") TeM=GetTime() end
Дразнящий удар:
#showtooltip
/cast Дразнящий удар
/run TeM=TeM or GetTime()-3 if (GetTime()-TeM)>3 and random(100)<75 then DoEmote("taunt") TeM=GetTime() end
Рывок:
#showtooltip
/cast charge /run TeM=TeM or GetTime()-5 if (GetTime()-TeM)>5 and random(100)<30 then DoEmote("charge") TeM=GetTime() end
Боевой крик:
#showtooltip
/cast Боевой крик
/run TeM=TeM or GetTime()-3 if (GetTime()-TeM)>3 then DoEmote(GetRandomArgument(""cheer","roar","","","","","","","","")) TeM=GetTime() end
Деморализующий крик:
#showtooltip
/cast Деморализующий крик
/run TeM=TeM or GetTime()-3 if (GetTime()-TeM)>3 then DoEmote(GetRandomArgument(""laugh","roar","","","","","","","","")) TeM=GetTime() end
Ни шагу назад:
#showtooltip
/cast Ни шагу назад
/run TeM=TeM or GetTime()-3 if (GetTime()-TeM)>3 and DoEmote("healme") TeM=GetTime() end
#showtooltip
/cast Похищение жизни
/run TeM=TeM or GetTime()-3 if (GetTime()-TeM)>3 and random(100)<10 then DoEmote("healme") TeM=GetTime() end
#showtooltip
/cast Похищение маны
/run TeM=TeM or GetTime()-3 if (GetTime()-TeM)>3 and random(100)<10 then DoEmote("oom") TeM=GetTime() end
#showtooltip
/cast Лик смерти
/run TeM=TeM or GetTime()-5 if (GetTime()-TeM)>5 then DoEmote("threaten") TeM=GetTime() end
Черный список
Пользователь
iconoclast_emperor поделился отличной идеей, как можно использовать простой макрос, чтобы разнообразить свой игровой процесс.
"Я всегда хотел поиграть за разбойника на PvP сервере, но с одним условием – никогда не атаковать первым. Это сделало PvP в открытом мире невероятно интересным. Каждый раз, когда кто-то пытался меня ганкнуть, я вносил его имя в свой макрос:
/target “имяигрока1”
/target “имяигрока2”
И т.д.
При виде вражеского игрока, я использую этот макрос и если он становится моей целью, то я превращаю его жизнь в ад. Не выпускаю из контроля, жду его возрождения, чтобы повторно убить и т.д. Если игрок не стал целью после нажатия макроса, то я просто прохожу мимо. Это в разы увеличило мой интерес от игры, а нападать на игроков, которые полностью этого заслуживают – сплошное удовольствие."
Продажа хлама
Макрос немного другого формата, но будет очень полезен для игроков, которые по каким-то причинам не хотят устанавливать аддоны. Он позволяет продать все серые предметы в один клик и узнать количество полученного золота.
/run local c,i,n,v=0;for b=0,4 do for s=1,GetContainerNumSlots(b)do i={GetContainerItemInfo(b,s)}n=i[7]if n and string.find(n,"9d9d9d")then v={GetItemInfo(n)}q=i[2]c=c+v[11]*q;UseContainerItem(b,s)print(n,q)end;end;end;print(GetCoinText(c))
local c,i,n,v=0;
for b=0,4 do -- Для каждой из 4 сумок...
for s=1,GetContainerNumSlots(b) do -- Для каждой ячейки...
i = {GetContainerItemInfo(b,s)} -- пусть i будет предметом в слоте
n = i[7] -- пусть n будет именем предмета
if n and string.find(n,"9d9d9d") then -- и если качество серое...
v = {GetItemInfo(n)} -- пусть v будет информация о предмете
q = i[2] -- пусть q будет количеством предметов в этой ячейке
c = c + v[11]*q; -- добавить цену предмета в ячейке в счетчик
UseContainerItem(b,s) -- продать предмет торговцу
print(n,q) -- отображает название предметов и сколько было продано
end;
end;
end;
print(GetCoinText(c)) -- отображает общее количество полученного золота