Что написать в игре в warcraft

Пожалуйста, обратите внимание, что это не имеет никакого эффекта
на скрипт.

Функции являются обязательным (в ArcEmu), чтобы сделать этот сценарий рабочим. Функция начинается с function и закрывается end значением. После слова «function» есть пространство и там вы можете поместить ваше название функции, далее идут -(). Скобки, известны как аргументы. Они в основном решают, какой бит данных передается на мир WOW от ArcEmu-мира. Вот пример функции;

function FunctionName(Unit, Event)
— Это функция!
end

Обратите внимание, что ключевое слово «function» пишется с маленькой буквы. Использование большой буквы «F» (или любой другой буквы) приведет к тому что система, не признает ее за функцию. То же самое для имен функций, аргументов и т.д.

Ну как упоминалось ранее, они являются аргументами. Почти в каждой функции, которые вы используете как Lua Scripter вы будете использовать значения внутри этих скобок. Существуют различные аргументы для различных событий. Вот наиболее распространенные:

Игрофильмы Warcraft: Экранизация книг и хроник в хронологии! История Варкрафт

GeneralCreatureEvent(Unit, Event[, pMisc])
GossipOnTalkEvent(Unit, Event, player)
GossipOnSelectEvent(Unit, Event, player, id, intid, code, pMisc)

Квадратные скобки указывают факультативный выбор. (Unit, Event)может быть использован вместо (Unit, Event, pMisc) например.

Создание вашей первой функции.

В соответствии с традицией, ваша первая функция/сценарий будет «Привет Мир!».

function HelloWorld()
print(«Привет Мир!»)
print(«Это мой первый сценарий LUA!»)
end

Вас интересует что я сделал? Ну, во-первых, я создал функцию HelloWorld без аргументов. Обратите внимание, что я еще добавил пару круглых скобках. Это является обязательным для каждой функции которую вы создаете. В первой строке, функция HelloWorld () ничего не делает, кроме как рассказать Lua, что мы начинаем новую функцию, которую мы обозначили под названием «HelloWorld», и что он не имеет аргументов.

Далее идет print скобки кавычки. Внутри этих кавычек вы пишете тот текст который вы хотите видеть.

Если вы сохраните этот код в HelloWorld.lua и поместите его в вашу папку / scripts , а затем открыть ArcEmu-World, она будет печатать в консоль:

Привет Мир!»)
Это мой первый сценарий LUA!

Скучно да? Это не полезно, так что мы будем двигаться немного дальше.

Ваш первый gossip скрипт.

В WoW, когда вы говорите с NPC, он дает вам разные варианты. Такие, как: «Да, я готов», и так далее. Это называется gossip. И это то, что мы собираемся создать сейчас. Прежде всего, необходимо создать NPC .

После создания NPC установите ему флаг 1. Это можно сделать через базу данных либо через команду в игре ( .npc flag 1 ).

Теперь создайте новый файл lua и напишите в нем

—[[
Мой первый сценарий!

— Variables
local NPC_ID = YourEntryID

Замените YourEntryID на ид вашего NPC.

Переменная данных, которое хранит определенную часть данных. В отличие от C + +, нет типами переменных в Lua. Кроме того, нет необходимости беспокоиться о неподписанных / Подпись переменных.

Переменная создается путем ввода строки в сценарий. Эта строка может быть почти везде, однако, оно не может быть ключевым словом или именем функций.

Кроме того, переменные могут быть только буквенно-цифровые и подчеркивания или дефис в них. Вы можете использовать эти символы:

a b c d e f g h i j k l m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
1 2 3 4 5 6 7 8 9 0
_

Обратите внимание, что переменные чувствительны к регистру. MY_VAR не то же самое, как my_var или My_VaR.

Глобальная переменная может переходить от одного сценария к другому, так что это может вызвать проблемы. Лучше всего использовать локальные переменные, которые остаются внутри текущего сценария, для уменьшения помех.

Хорошие имена переменных:

My_Var = 1
myVar = 2

Неверное имя переменных:

%MyVar = 1
My.Var = 2
MyexampleGossipOnTalk (Unit, Event, player). Эти аргументы являются стандартными для OnTalk события сплетни. Мероприятие OnTalk сплетни первого меню в диалоге который вы видите, когда вы говорите с NPC.

—[[
Мой первый сценарий!
]]
— Variables
local NPC_ID = YourEntryID

— On Triggers
function exampleGossipOnTalk(Unit, Event, player)
end

Обратите внимание, что я добавил end ниже функции. Мы должны закончить каждую функцию, которая будет создана, или Lua будет бросать ошибку. Теперь, когда мы создали функцию, давайте добавим RegisterUnitEvent. Обычно, если вы создаете босса, вы будете использовать RegisterUnitEvent(), но так как мы делаем Gossip NPC, мы используем RegisterUnitGossipEvent. Отметим, что это учитывается. Добавляйте это под соответствующий раздел;


RegisterUnitGossipEvent(NPC_ID, 1, exampleGossipOnTalk)

RegisterUnitGossipEvent () имеет четыре аргумента: ID, Event ID и имя функции. Вы можете использовать переменные для ID Event ID и событий, поэтому я добавил NPC_ID переменной вместо ID.


RegisterUnitGossipEvent(ID, EVENT_ID, FUNCTION_NAME)

Сейчас этот сценарий будет регистрироваться как пустая функция, когда вы говорите с NPC. Это что-то, но это бесполезно. Итак, давайте начнем его конкретизацию.


function exampleGossipOnTalk(Unit, Event, player)
end

Как мы видели выше, заявления идут между функцией и концом (function и end), например, так.


function exampleGossipOnTalk(Unit, Event, player)
— Заявления суда
end

Добавлено (01.10.2012, 02:01)
———————————————
Чтобы начать создание gossip меню, Lua должен знать, что мы создаем меню, мы создаем оболочку, используя: GossipCreateMenu() заявление.


:GossipCreateMenu(TEXT_ID, player, INTID)

Обратите внимание, что :GossipCreateMenu() имеет двоеточие перед ним; это означает, что требуется Unit. По умолчанию, Группа ‘Unit’. Это не нужно менять, если мы имеем дело с несколькими НПС в один сценарий; Мы вернемся к этому позже. Давайте добавим наше заявление в функцию.


function exampleGossipOnTalk(Unit, Event, player)
Unit:GossipCreateMenu(100, player, 0)
end

Вы видите, что я использовал ‘100 ‘для текста ID. Это значение по умолчанию: «Привет, . Чем я могу вам помочь?». Он может быть изменен, глядя в соответствующей таблице в вашей базе данных. Я установил Intid ‘0 ‘, потому что это то, что все первые меню устанавливаются на; 0. Это делает логический смысл.

Читайте также:  Как отключить время в варкрафте

Так что теперь мы создали меню, которое отображает «Привет, . Чем я могу вам помочь? ‘. Это все еще довольно непрактичный сценарий и не поможет никому. Чтобы сделать этого NPC полезным, давайте добавим несколько вариантов, :GossipMenuAddItem ()


:GossipMenuAddItem(ICON_ID, MENU_CONTENT, INTID[, CODE])

Это утверждение может сбить вас с толку; INTID? CODE? ICON_ID? Что это такое? Ну, ICON_IDs как вы видите рядом с текстом, когда вы открываете меню. Есть несколько различных значков, идентификаторов перечисленных ниже;

0 = Chat bubble
1 = Bag
2 = Wings
3 = Book
4 = Cog/Gear
5 = Cog/Gear
6 = Bag with coin
7 = Chat bubble with «. »

Когда вы пишете в MENU_CONTENT, вы можете покрасить его. Вы можете использовать его, положив |ср######, где #S ваш шестнадцатеричный цвет (Web Color Chart — Hexadecimal — by VisiBone Дополнительная информация) и добавление |г в конце.


:GossipMenuAddItem(0, «|cfFFFFFF White! |r», 1, 0)

INTID? Ну, когда вы используете функцию OnSelect, INTID используется, чтобы определить, какое меню было открыто. Таким образом, вы должны использовать уникальные IntIDs для каждого выбора меню или сценария иначе они не будут работать. Кроме того, IntID используется в числовой форме.

CODE является дополнительным . вариантом .. , которые могут быть пропущены. Они используется только, когда вы хотите, загрузить CodeBox. Это не будет объяснено в этом учебнике, и вам придется поэкспериментировать, чтобы получить его рабочим. Само собой разумеется, оставить его на 0.
Я добавлю несколько вариантов Gossip Menu..

function exampleGossipOnTalk(Unit, Event, player)
Unit:GossipCreateMenu(100, player, 0)
Unit:GossipMenuAddItem(0, «Телепорт меня в столицу.», 1, 0)
Unit:GossipMenuAddItem(0, «Удалить болезнь после воскрешения.», 2, 0)
Unit:GossipMenuAddItem(0, «Выход.», 3, 0)
end

Это добавляет три варианта нашего меню, Телепорт меня в столицу, Удалить болезнь после воскрешения, и вариант, чтобы закрыть меню. Тем не менее, это не будет работать. Мы создали меню, но, мы не сможем послать его к игроку. Для этого мы добавим: GossipSendMenu() команду.


Unit:GossipSendMenu(player)

Что делает нашу функцию такой:

function exampleGossipOnTalk(Unit, Event, player)
Unit:GossipCreateMenu(100, player, 0)
Unit:GossipMenuAddItem(0, «Телепорт меня в столицу.», 1, 0)
Unit:GossipMenuAddItem(0, «Удалить болезнь после воскрешения.», 2, 0)
Unit:GossipMenuAddItem(0, «Выход.», 3, 0)
Unit:GossipSendMenu(player)
end

Давайте добавим это к остальной части нашего кода:

—[[
Мой первый сценарий!
]]
— Variables
local NPC_ID = ид нпс

— On Triggers
function exampleGossipOnTalk(Unit, Event, player)
Unit:GossipCreateMenu(100, player, 0)
Unit:GossipMenuAddItem(0, «Телепорт меня в столицу.», 1, 0)
Unit:GossipMenuAddItem(0, «Удалить болезнь после воскрешения.», 2, 0)
Unit:GossipMenuAddItem(0, «Выход.», 3, 0)
Unit:GossipSendMenu(player)
end

— RegisterUnitEvents
RegisterUnitGossipEvent(NPC_ID, 1, «exampleGossipOnTalk»)

У нас получилось! Однако, это только показывает меню. Варианты не будут работать, вы будете иметь возможность видеть их, но если вы нажмете на них, ничего не произойдет. Вы должны прописать ему, что делать. И мы делаем это с нашей второй функцией; OnSelect


exampleGossipOnSelect(Unit, Event, player, id, intid, code, pMisc)

Это ничего не значит для вас на данный момент, не так ли? Давайте создадим еще одну функцию.

—[[
Мой первый сценарий!
]]
— Variables
local NPC_ID = ид нпс

— On Triggers
function exampleGossipOnTalk(Unit, Event, player)
Unit:GossipCreateMenu(100, player, 0)
Unit:GossipMenuAddItem(0, «Телепорт меня в столицу.», 1, 0)
Unit:GossipMenuAddItem(0, «Удалить болезнь после воскрешения.», 2, 0)
Unit:GossipMenuAddItem(0, «Выход.», 3, 0)
Unit:GossipSendMenu(player)
End
function exampleGossipOnSelect(Unit, Event, player, id, intid, code, pMisc)
end

— RegisterUnitEvents
RegisterUnitGossipEvent(NPC_ID, 1, «exampleGossipOnTalk»)

И добавить RegisterUnitGossipEvent под OnTalk

—[[
Мой первый сценарий!
]]
— Variables
local NPC_ID = ид нпс

— On Triggers
function exampleGossipOnTalk(Unit, Event, player)
Unit:GossipCreateMenu(100, player, 0)
Unit:GossipMenuAddItem(0, «Телепорт меня в столицу.», 1, 0)
Unit:GossipMenuAddItem(0, «Удалить болезнь после воскрешения.», 2, 0)
Unit:GossipMenuAddItem(0, «Выход.», 3, 0)
Unit:GossipSendMenu(player)
End
function exampleGossipOnSelect(Unit, Event, player, id, intid, code, pMisc)
end

— RegisterUnitEvents
RegisterUnitGossipEvent(NPC_ID, 1, «exampleGossipOnTalk»)
RegisterUnitGossipEvent(NPC_ID, 2, exampleGossipOnSelect)

Итак, давайте добавим первый вариант (из 3) наших новых функций.

function exampleGossipOnSelect(Unit, Event, player, id, intid, code, pMisc)
if (intid == 1) then
player:Teleport(MapID, x, y, z)
player:GossipComplete()
end
end


if (intid == 1) then

Он используется, чтобы проверить, если определенные условия. Помните, когда мы добавили варианты, и мы должны были определить уникальный номер? Это было intid. Таким образом, если intid, я выбрал 1 («Телепорт меня в столицу!”), То мы запустим эту часть сценария.


player:Teleport(MapID, x, y, z)

Эти значения говорят о том что они телепортируют игрока по введенным координатам.
Для примера я возьму Shattrat. Его координаты.


MapID: 1
X: -9101.980469
Y: 1612.902832
Z: 21

Так что это будет выглядеть так:


player:Teleport(1, -9101.980469, 1612.902832, 21) — Это не точные координаты шаттрат.

Теперь мы знаем, что это делает, и мы будем двигаться дальше;
Player:GossipComplete(). Это довольно просто и не требует весь абзац, чтобы объяснить это. Он просто закрывает меню.

Подождите, у нас есть два end? Да, мы сделали все правильно. «if» заявление необходимо положить конец, так как Lua не может определить, когда он закончился.
Давайте посмотрим что у нас получилось.

function exampleGossipOnSelect(Unit, Event, player, id, intid, code, pMisc)
if (intid == 1) then
player:Teleport(1, -9101.980469, 1612.902832, 21)
player:GossipComplete()
end
end

Таким образом, мы понимаем, что это все делает? Хорошо. Давайте перейдем на следующий intid; Удалить болезнь после воскрешения.

function exampleGossipOnSelect(Unit, Event, player, id, intid, code, pMisc)
if (intid == 1) then
player:Teleport(1, -9101.980469, 1612.902832, 21)
player:GossipComplete()
end
if (intid == 2) then
end
end

Читайте также:  Warcraft 3 pokemon defense гайд

Как вы можете видеть, мы создали другую, петлю. На этот раз, она работает, только если intid равен 2. Таким образом, в этой функции мы хотим удалить ауру болезнь после воскрешения. Теперь идем на wowhead.com и находим там ид ауры 15007.
Смотрим что у нас получается.

function exampleGossipOnSelect(Unit, Event, player, id, intid, code, pMisc)
if (intid == 1) then
player:Teleport(1, -9101.980469, 1612.902832, 21)
player:GossipComplete()
end
if (intid == 2) then
if (player:HasAura(15007) == true) then
player:SendBroadcastMessage(«Болезнь после воскрешения была удалена. Будьте осторожны в следующий раз!»)
player:RemoveAura(15007)
player:GossipComplete()
else
player:SendBroadcastMessage(«У вас нет болезни после воскрешения!»)
player:GossipComplete()
end
end
end

Что мы тут видим. Я добавил


RemoveAura().

HasAura() проверяет есть ли на вас эта аура.
RemoveAura() снимает эту ауру.

Так же я добавил player:SendBroadcastMessage объяснять что это делает я не буду. Так как это понятно наглядно.

Конечно, вы все равно должны добавить end для «if» и «function».

Итак, теперь у нас есть два intids, давайте посмотрим на нашу функцию сейчас, и добавить последнюю.

function exampleGossipOnSelect(Unit, Event, player, id, intid, code, pMisc)
if (intid == 1) then
player:Teleport(1, -9101.980469, 1612.902832, 21)
player:GossipComplete()
end
if (intid == 2) then
if (player:HasAura(15007) == true) then
player:SendBroadcastMessage(«Болезнь после воскрешения была удалена. Будьте осторожны в следующий раз!»)
player:RemoveAura(15007)
player:GossipComplete()
else
player:SendBroadcastMessage(«У вас нет болезни после воскрешения!»)
player:GossipComplete()
end
end
if (intid == 3) then
player:GossipComplete()
end
end

Мы просто добавили в intid 3: GossipComplete(), потому что опция стоит, чтобы закрыть окно.

Теперь посмотрим что у нас получилось.

—[[
Мой первый сценарий!
]]
— Variables
local NPC_ID = ид нпс

— On Triggers
function exampleGossipOnTalk(Unit, Event, player)
Unit:GossipCreateMenu(100, player, 0)
Unit:GossipMenuAddItem(0, «Телепорт меня в столицу.», 1, 0)
Unit:GossipMenuAddItem(0, «Удалить болезнь после воскрешения.», 2, 0)
Unit:GossipMenuAddItem(0, «Выход.», 3, 0)
Unit:GossipSendMenu(player)
end
function exampleGossipOnSelect(Unit, Event, player, id, intid, code, pMisc)
if (intid == 1) then
player:Teleport(1, -9101.980469, 1612.902832, 21)
player:GossipComplete()
end
if (intid == 2) then
if (player:HasAura(15007) == true) then
player:SendBroadcastMessage(«Болезнь после воскрешения была удалена. Будьте осторожны в следующий раз!»)
player:RemoveAura(15007)
player:GossipComplete()
else
player:SendBroadcastMessage(«У вас нет болезни после воскрешения!»)
player:GossipComplete()
end
end
if (intid == 3) then
player:GossipComplete()
end
end
RegisterUnitGossipEvent(NPC_ID, 1, «exampleGossipOnTalk»)
RegisterUnitGossipEvent(NPC_ID, 2, exampleGossipOnSelect)

Молодцы! Вы создали свой первый сценарий функционирования. Или, по крайней мере, с помощью этого учебника. Сохраните его как TeleporterNPC.lua и поместить его в папку scripts. Поставьте нпс и перезагрузите сервер, и наслаждайтесь вашим первым сценарием!

Таким образом, вы знаете, как использовать If и elseif но, используя следующее довольно сложно читать ну и как то однообразно;

if (var == true) then
Weee()
end
if (var == false) then
Awww()
end
if (var == nil) then
WTFITSHOULDNTBENIL()
end

Вместо этого, вы можете заменить 2й и 3й if на elseIf, в зависимости от ситуации. elseIf в основном удаляет последующие if и заканчивается так, что они легко читаются. Вот наглядным пример.

if (var == true) then
Wee()
elseif (var == false) then
Awww()
elseif (var == nil) then
WTFITSHOULDNTBENIL()
end

Как вы можете видеть, это гораздо легче читать, чем предыдущие.

Ну что же. Вот и конец этого учебника. Вторая часть будет более позже.

Так же если вы будете использовать lua скрипты с русскими символами не забываем ставить кодировку UTF-8

Всем удачного изучения этого языка.

Если у вас есть какие то либо вопросы то не стесняйтесь задавайте их.

There is nothing better than .LUA

Источник: wowjp.net

Наиболее популярные скрипты для WOW

Звезда активнаЗвезда активнаЗвезда активнаЗвезда не активнаЗвезда не активна

Наверняка многие игроки не раз сталкивались с необходимостью выполнять множество однообразных действий в игре. Давайте подумаем, что можно с этим сделать.

На самом деле разработчики это предусмотрели и добавили в игровой движок возможность избавиться от такого рода работы, для этого нужно использовать скрипты для wow. Проблема в том, что не все игроки знают об этом, в данной статье мне хотелось бы рассказать о наиболее популярных скриптах для wow.

Некоторая информация. в движке вов любая команда выполняется через слеш — «/действие».

Список скриптов для wow

Первым таким подарком от разработчиков является скрипт, который поможет обменять абсолютно любое количество баджей в один клик. Итак приступим.

Создайте макрос (команда /macro ) и впишите туда следующее (без кавычек):

» /script local function buy (n,q) for i=1,100 do if n==GetMerchantItemInfo(i) then BuyMerchantItem(i,q) end end end buy («Emblem of Heroism»,140) «

В последних скобочках мы вписываем название вашей эмблемки и количество без ошибок, язык эмблемки зависит от того, какой у вас клиент.

2) Сломался рекаунт? Он больше не отображает правильную информацию про ДПС и ХПс? Рекаунт одним словом работает не правильно? Скрипт для ремонта рекаунта ниже.

По схеме описанной выше сделайте новый макрос. Напоминаю, что макросы из общего списка макросов (тавтология во как) можно вытаскивать на панельки, это очень удобно. Пишем без кавычек.

3) Скрипт на добавление игроков в гильдию. Не нужно им злоупотреблять.

4) Существует необходимость линкануть предмет в макрос?

» / run local _,x = GetItemInfo (ID); SendChatMessage(» текст до линка «..x..»! текст после линка», «CHANNEL», nil , 6); » (без пробела после первого слеша)

Там, где указан «ID» — вставляем id вашей шмотки, (айди вещей можно найти в базе знаний)
Дальше указываем канал, в который нужно дать линк, интересно, но на разных чарах «all» канал под разными цифрами — где 6, где 5.

Читайте также:  Как назвать гильдию в варкрафте

5) Скрипт на выход из группы

6) Полная перезагрузка интерфейса без релога

7) Скрипт для отдаления камеры от персонажа или его ездового (летающего) животного.

» /console cameraDistanceMaxFactor 3.4 «

Оговорюсь, но его нужно использовать вновь после релога или входа в игру.

8) Скрипт для отмены дуэли вов:

9) На пиратках часто бывает так, после того, как вы стали призраком, подбегаете к телу а реснуться нельзя, этот скрипт должен помочь.

10) В свое время у меня было много твинков и гильдий созданных на них, цель была одна — место. Так вот не один раз приходилось заходить в игру двумя окнами, так как назначить офнутого персонажа ГМом было нельзя, этот скрипт может помочь.

11) Не редко может помочь хилу на арене. Берем напарника в таргет.

» /target «имя» (без кавычек)

12) Выбор цели цели.

Так же макросы могут помочь и в управлении петами ваших персонажей.

13) Наиболее популярные команды для петов.

а) Ваш пет атакует ваш таргет.

б) Пет просто бегает за вами.

в) Ваш пет застынет на месте и не будет ничего делать

г) Бывают ситуации, когда панель управления питомцем пропадает, в частности я сталкивался с этим во время игры за своего варлока и ДК. Исправить это можно скриптом ниже.

14) А этот скрипт автоматически изучает все недостающие спеллы у тренера.

/ run LoadAddOn»Blizzard_TrainerUI» f=ClassTrainerTrainButton f.e = 0 if f:GetScript»OnUpdate» then f:SetScript(«OnUpdate», nil)else f:SetScript(«OnUpdate», function(f,e) f.e=f.e+e if f.e>.01 then f.e=0 f:Click() end end)end

15) Довольно-таки забавный макрос, часто им пользовался. Если у вас есть множество маунтов и хочется внести в игру разнообразие вписываем в начале макроса команду, а затем перечисляем маунтов (заклинаний, вещей). Теперь вы тоже знаете макрос на вызов случайного маунта.

/castrandom Black Drake Mount, Brown Kodo, Armored Brown Bear (Для русского клиента — аналогично русские названия маунтов, но обязательно с большой буквы)

16) Макрос Спешиваться.

17) Кастует спелл, указанный в макросе. Например:

18) Очень полезный макрос, который позволит вам одним кликом повесить сразу несколько бафов на цель.

/target SolBadGuy
/castsequence reset=5 Молитва духа, Молитва стойкости, Молитва защита от темной магии.

19) Возвращаем себе первоначальный облик. Неважно кто вы дру, шп, вар или еще кто-нибудь.

Источник: click-wow.ru

Тикеты ГМ — как писать и как общаться

Хотя разработчики игры постоянно выявляют баги и ошибки в игре, встретить их можно довольно часто: провалиться под пол или текстуры, убежать в страхе за стену,… да мало ли что может случиться в игре. К тому же встречаются игроки, которые благодаря нечестным методам игры или просто нарушениям правил пользования создают невыносимые условия для других игроков. И тогда приходится обращаться к Гейм мастерам или ГМам. Но к сожалению, далеко не все игроки знают, как нужно правильно писать тикет – заявку на рассмотрение вопроса, чтобы проблема была решена максимально быстро и эффективно. Более того, неправильно составив заявку и общаясь с ГМом после получения ответа, кое-кто даже рискует угодить во временный бан=) Правила и рекомендации по правильному составлению тикетов довольно подробно изложены на официальном сайте Близзард, но я попробую изложить их с точки зрения игрока.

1. Максимально четко формулируйте свой вопрос, описывайте проблему.
Полная и четкая информация позволит ГМу принять правильное решение и быстро помочь вам.

Я застрял!!11 Что делать помогите!!11

Здравствуйте. Я провалился под текстуры в Лесу Террокар, координаты 33.44

Явно, что второй тикет гораздо более предпочтителен, а по объему ненамного больше.

2. Вежливость.
Вежливость в общении с ГМ не менее важна, чем вежливость общения с другими игроками. Сами ГМы очень редко нарушают правила этикета и общаются вежливо, но если разговаривать с ними в «быдловатом стиле», то вы рискуете не только остаться с нерешенной проблемой, но и угодить во временный бан. Но это не значит, что вы должны общаться с ними на «Вы», употреблять лишь литературные выражения. Нет, ГМы – нормальные ребята, с которыми можно пошутить и поболтать, если не выходить за рамки адекватного общения. Хотя и ГМы тоже не всегда ангелы, на первых стадиях становления русскоязычного WoW часто встречались ГМы, которые не могли связать двух слов по-русски.

3. Пишите только по делу и если вам действительно нужна помощь.
Многие проблемы решаются поиском по внутриигровой справке, постановкой на БГ или перезагрузкой компьютера. Уважайте время других людей и не злоупотребляйте их терпением. Конечно, вы имеете право на получение помощи лично от ГМа, но иногда ожидание ответа занимает в разы больше времени, чем перезапуск игры.

И уж точно не стоит пытаться обмануть ГМа, прося сделать что-то явно «противозаконное». Такого рода попытки всегда караются минимум однодневным баном. Яркий пример такого рода попыток – написание тикета на передачу предмета человеку, которого не было в рейде. Так недавно попался один из моих согильдийцев=) Не стоит бояться писать тикеты ГМам, они не полицейские мира Варкрафт, а помощники, готовые прийти на помощь. Помните о здравом смысле и вежливости и никогда обращение в службу внутриигровой поддержки не станет для вас трагедией!=)

Источник: www.mmohelper.ru